Conceitos básicos do AWS Flow Framework: Estrutura do aplicativo - AWS Flow Framework para Java

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Conceitos básicos do AWS Flow Framework: Estrutura do aplicativo

Conceitualmente, um aplicativo do AWS Flow Framework é composto por três componentes básicos: iniciadores de fluxo de trabalho, operadores de fluxo de trabalho e operadores de atividade. Um ou mais aplicativos host são responsáveis por registrar os trabalhadores (fluxo de trabalho e atividade) no Amazon SWF, iniciar os trabalhadores e lidar com a limpeza. Os operadores gerenciam a mecânica de execução do fluxo de trabalho e podem ser implementados em diversos hosts.

Esse diagrama representa um aplicativo básico do AWS Flow Framework:

Esquema de aplicação do AWS Flow Framework
nota

Implementar esses componentes em três aplicativos separados é conveniente do ponto de vista conceitual, mas você pode criar aplicativos para implementar essa funcionalidade de diversas maneiras. Por exemplo, use um aplicativo de host único para os operadores de atividade e fluxo de trabalho ou use hosts separados para atividade e fluxo de trabalho. Você também pode ter vários operadores de atividade, cada um lidando com um conjunto diferente de atividades em hosts separados e assim por diante.

Os três componentes AWS Flow Framework interagem indiretamente enviando solicitações HTTP para o Amazon SWF, que gerencia as solicitações. O Amazon SWF faz o seguinte:

  • Mantém uma ou mais lista de tarefas de decisão, que determinam a próxima etapa a ser realizada por um operador de fluxo de trabalho.

  • Mantém uma ou mais listas de tarefas de atividades, que determinam quais tarefas serão realizadas por um operador de atividade.

  • Mantém um histórico passo-a-passo detalhado da execução do fluxo de trabalho.

Com o AWS Flow Framework, o código do aplicativo não precisa lidar diretamente com muitos dos detalhes mostrados na figura, como o envio de solicitações HTTP para o Amazon SWF. Basta você chamar os métodos do AWS Flow Framework e a estrutura gerencia os detalhes em segundo plano.

Função do operador de atividade

O operador de atividade executa as diversas tarefas que o fluxo de trabalho precisa realizar. Consistem de:

  • A implementação de atividades, que inclui um conjunto de métodos de atividade que realizam tarefas específicas para o fluxo de trabalho.

  • Um objeto ActivityWorker, que usa solicitações de sondagem longa HTTP para sondar o Amazon SWF em busca de tarefas de atividade a serem executadas. Quando uma tarefa é necessária, o Amazon SWF responde à solicitação enviando as informações necessárias para executar a tarefa. Em seguida, o objeto ActivityWorker chama o método de atividade apropriado e retorna os resultados para o Amazon SWF.

Função do operador de fluxo de trabalho

O operador de fluxo de trabalho orquestra a execução das diversas atividades gerencia o fluxo de dados e lida com as atividades com falha. Consistem de:

  • A implementação do fluxo de trabalho, que inclui a lógica de orquestração da atividade, lida com as atividades com falha e assim por diante.

  • Um cliente de atividades, que serve como um proxy para o operador de atividade e permite que o operador de fluxo de trabalho agende atividades para execução de forma assíncrona.

  • Um objeto WorkflowWorker que usa solicitações de pesquisa longa HTTP para pesquisar o Amazon SWF para tarefas de decisão. Se houver tarefas na lista de tarefas do fluxo de trabalho, o Amazon SWF responderá à solicitação retornando as informações necessárias para executar a tarefa. Em seguida, a estrutura executa o fluxo de trabalho para realizar a tarefa e retorna os resultados para o Amazon SWF.

Função do acionador de fluxo de trabalho

O acionador de fluxo de trabalho inicia uma instância de fluxo de trabalho, também chamada de execução de fluxo de trabalho, e pode interagir com uma instância durante a execução para enviar dados adicionais ao operador do fluxo de trabalho ou obter o estado atual do fluxo de trabalho.

O acionador de fluxo de trabalho utiliza um cliente de fluxo de trabalho para iniciar a execução do fluxo de trabalho, interage com o fluxo de trabalho conforme necessário durante a execução e gerencia a limpeza. O iniciador do fluxo de trabalho pode ser um aplicativo executado localmente, um aplicativo da Web, a AWS CLI ou até mesmo o AWS Management Console.

Como o Amazon SWF interage com seu aplicativo

O Amazon SWF medeia a interação entre os componentes do fluxo de trabalho e mantém um histórico detalhado do fluxo de trabalho. O Amazon SWF não inicia a comunicação com os componentes; ele espera pelas solicitações HTTP dos componentes e gerencia as solicitações conforme necessário. Por exemplo:

  • Se a solicitação for de um trabalhador, pesquisando as tarefas disponíveis, o Amazon SWF responderá diretamente ao trabalhador se houver uma tarefa disponível. Para obter mais informações sobre como a sondagem funciona, consulte Sondar tarefas no Guia do desenvolvedor do Amazon Simple Workflow Service.

  • Se a solicitação for uma notificação de um trabalhador de atividade de que uma tarefa está concluída, o Amazon SWF registra as informações no histórico de execução e adiciona uma tarefa à lista de tarefas de decisão para informar ao trabalhador do fluxo de trabalho que a tarefa está concluída, permitindo que ele prossiga para a próxima etapa.

  • Se a solicitação for do trabalhador do fluxo de trabalho para executar uma atividade, o Amazon SWF registra as informações no histórico de execução e adiciona uma tarefa à lista de tarefas de atividades para direcionar um trabalhador de atividade para executar o método de atividade apropriado.

Essa abordagem permite que os trabalhadores sejam executados em qualquer sistema com conexão à Internet, incluindo instâncias do Amazon EC2, data centers corporativos, computadores de clientes e assim por diante. Eles nem precisam utilizar o mesmo sistema operacional. Como as solicitações HTTP são originadas com os operadores, não há necessidade de portas externamente visíveis. Os operadores podem ser executados atrás de um firewall.

Para obter mais informações

Para uma discussão mais completa sobre como o Amazon SWF funciona, consulte o Guia do desenvolvedor do Amazon Simple Workflow Service.