AWS Flow Framework 기본 개념: 애플리케이션 구조 - AWS Flow Framework Java용

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Flow Framework 기본 개념: 애플리케이션 구조

개념상 AWS Flow Framework 애플리케이션은 세 가지 기본 구성 요소, 즉 워크플로 시작자, 워크플로 작업자활동 작업자로 구성됩니다. 한 개 이상의 호스트 애플리케이션에서 작업자(워크플로 및 활동)를 Amazon SWF에 등록하고 작업자를 시작하고 정리하는 작업을 담당합니다. 작업자는 워크플로 실행 메커니즘을 처리하며 여러 호스트에서 구현될 수 있습니다.

다음 다이어그램은 기본 AWS Flow Framework 애플리케이션을 나타냅니다.

도식으로 나타낸 AWS Flow Framework 애플리케이션
참고

세 가지 애플리케이션에서 이들 구성 요소를 구현하는 것이 개념상 편리하지만, 애플리케이션을 생성하여 이 기능을 다양한 방식으로 구현할 수 있습니다. 예를 들어 활동 및 워크플로 작업에 대해 단일 호스트 애플리케이션을 사용하거나 별도 활동 및 워크플로 호트를 사용할 수 있습니다. 또한 각기 별도 호스트에서 일련의 다른 활동을 처리하는 등의 작업을 수행하는 여러 개의 활동 작업자를 보유할 수 있습니다.

세 가지 AWS Flow Framework 구성 요소는 요청을 관리하는 Amazon SWF로 HTTP 요청을 전송하여 간접적으로 상호 작용합니다. Amazon SWF는 다음을 수행합니다.

  • 워크플로 작업자가 수행할 다음 작업을 결정하는 하나 이상의 결정 작업 목록을 유지 관리합니다.

  • 활동 작업자가 수행할 작업을 결정하는 하나 이상의 활동 작업 목록을 유지 관리합니다.

  • 상세한 단계별 워크플로 실행 내역을 유지 관리합니다.

AWS Flow Framework에서는 애플리케이션 코드가 HTTP 요청을 Amazon SWF에 전송하는 것과 같이 그림에 표시된 대부분의 세부 정보를 직접 처리할 필요가 없습니다. AWS Flow Framework 메서드를 호출하면 프레임워크가 이면에서 세부 정보를 처리합니다.

활동 작업자의 역할

활동 작업자는 워크플로에서 완수해야 하는 다양한 작업을 수행합니다. 작업자는 다음 요소로 구성되어 있습니다.

  • 워크플로를 위해 특정 작업을 수행하는 일련의 활동 메서드가 포함된 활동 구현

  • ActivityWorker 객체는 HTTP 긴 폴링 요청을 사용하여 수행할 활동 작업에 대해 Amazon SWF를 폴링하는 데 사용됩니다. 작업이 필요한 경우 Amazon SWF는 작업 수행에 필요한 정보를 전송하여 요청에 응답합니다. 그러면 ActivityWorker 객체에서 적절한 활동 메서드를 호출하여 그 결과를 Amazon SWF로 반환합니다.

워크플로 작업자의 역할

워크플로 작업자는 다양한 활동의 실행을 조율하고 데이터 흐름을 관리하며 실패한 활동을 처리합니다. 작업자는 다음 요소로 구성되어 있습니다.

  • 활동 조율 로직을 포함하고 실패한 활동을 처리하는 등의 역할을 하는 워크플로 구현

  • 활동 작업자의 프록시 역할을 하고 워크플로 작업자가 비동기식으로 실행할 활동을 예약할 수 있게 해주는 활동 클라이언트

  • WorkflowWorker 객체는 HTTP 긴 폴링 요청을 사용하여 의사 결정 작업을 위해 Amazon SWF를 폴링합니다. 워크플로 작업 목록에 작업이 있는 경우 Amazon SWF는 작업 수행에 필요한 정보를 반환하여 요청에 응답합니다. 그러면 프레임워크에서는 워크플로를 실행하여 작업을 수행하고 그 결과를 Amazon SWF에 반환합니다.

워크플로 시작자의 역할

워크플로 시작자는 워크플로 실행이라고도 하는 워크플로 인스턴스를 시작하고, 워크플로 작업자에게 추가 데이터를 전송하거나 현재 워크플로 상태를 얻기 위해 실행 중에 인스턴스와 상호 작용할 수 있습니다.

워크플로 시작자는 워크플로 클라이언트를 사용하여 워크플로 실행을 시작하고, 실행 중에 필요에 따라 워크플로와 상호 작용하며, 정리 작업을 합니다. 워크플로 시작자는 로컬에서 실행되는 애플리케이션, 웹 애플리케이션, AWS CLI 또는AWS Management Console일 수 있습니다.

Amazon SWF가 애플리케이션과 상호 작용하는 방식

Amazon SWF는 워크플로 구성 요소 간의 상호 작용을 조정하고 상세한 워크플로 기록을 유지합니다. Amazon SWF는 구성 요소와의 통신을 시작하지 않고 구성 요소의 HTTP 요청을 기다린 다음 필요에 따라 요청을 관리합니다. 예:

  • 요청이 작업자에게서 발신된 것이면 Amazon SWF는 사용 가능 작업에 대해 폴링하면서 작업이 사용 가능한 경우 작업자에게 직접 응답합니다. 폴링 작동 방식에 대한 자세한 내용은 Amazon Simple Workflow Service 개발자 안내서의 태스크 폴링을 참조하십시오.

  • 요청이 활동 작업자가 보낸 작업 완료 알림인 경우 Amazon SWF는 실행 이력에 정보를 기록하고 작업을 결정 작업 리스트에 추가하여 워크플로 작업자에게 작업이 완료되었음을 알림으로써 다음 작업을 계속 진행하도록 합니다.

  • 요청이 워크플로 작업자가 보낸 것으로서 활동을 실행하라는 알림인 경우 Amazon SWF는 실행 이력에 정보를 기록하고 작업을 활동 작업 리스트에 추가하여 활동 작업자에게 적절한 활동 메서드를 실행하도록 지시합니다.

이 접근 방식을 통해 작업자는 Amazon EC2 인스턴스, 기업 데이터 센터, 클라이언트 컴퓨터 등 인터넷이 연결된 모든 시스템에서 실행할 수 있습니다. 작업자는 동일한 운영 체제를 실행할 필요조차 없습니다. HTTP 요청은 작업자에서 시작되므로 외부에 보이는 포트가 필요 없습니다. 따라서 작업자는 방화벽 뒤에서 실행될 수 있습니다.

자세한 정보

Amazon SWF의 작동 방식에 대한 자세한 내용은 Amazon Simple Workflow Service 개발자 안내서를 참조하십시오.