Atores do Amazon SWF - Amazon Simple Workflow Service

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á.

Atores do Amazon SWF

O que é um ator no Amazon SWF?

No decorrer de suas operações, o Amazon SWF interage com vários tipos diferentes de atores programáticos. Esses atuadores podem ser iniciadores de fluxo de trabalho, agentes de decisão ou operadores de atividade. Esses atores se comunicam com o Amazon SWF por meio de sua API. Você pode desenvolver esses atuadores em qualquer linguagem de programação.

O diagrama a seguir mostra a arquitetura do Amazon SWF, incluindo o Amazon SWF e seus atores.

As diferentes entidades ou "atores" em um fluxo de trabalho do Amazon SWF.

Iniciadores de fluxo de trabalho

Um iniciador de fluxo de trabalho é qualquer aplicativo capaz de iniciar execuções de fluxo de trabalho. No exemplo de comércio eletrônico, um iniciador de fluxo de trabalho pode ser o site no qual o cliente faz um pedido. Outro iniciador de fluxo de trabalho pode ser um aplicativo ou sistema móvel usado por um representante de atendimento ao cliente para fazer o pedido em nome do cliente.

Agentes de decisão

Um agente de decisão é uma implementação da lógica de coordenação de um fluxo de trabalho. Agentes de decisão controlam o fluxo de tarefas da atividade em uma execução de fluxo de trabalho. Sempre que uma alteração ocorre durante uma execução de fluxo de trabalho, como a conclusão de uma tarefa, uma tarefa de decisão, incluindo o histórico de fluxo de trabalho inteiro, é transmitida a um agente de decisão. Quando o decisor recebe a tarefa de decisão do Amazon SWF, ele analisa o histórico de execução do fluxo de trabalho para determinar as próximas etapas apropriadas na execução do fluxo de trabalho. O decider comunica essas etapas de volta ao Amazon SWF usando decisões. Uma decisão é um tipo de dados do Amazon SWF que pode representar várias ações seguintes. Para obter uma lista das possíveis decisões, acesse Decisão na Referência de API do Amazon Simple Workflow Service.

Veja a seguir um exemplo de uma decisão no formato JSON, o formato no qual ela é transmitida para o Amazon SWF. Essa decisão agenda uma nova tarefa de atividade.

{ "decisionType" : "ScheduleActivityTask", "scheduleActivityTaskDecisionAttributes" : { "activityType" : { "name" : "activityVerify", "version" : "1.0" }, "activityId" : "verification-27", "control" : "digital music", "input" : "5634-0056-4367-0923,12/12,437", "scheduleToCloseTimeout" : "900", "taskList" : { "name": "specialTaskList" }, "scheduleToStartTimeout" : "300", "startToCloseTimeout" : "600", "heartbeatTimeout" : "120" } }

Um agente de decisão recebe uma tarefa de decisão quando a execução de fluxo de trabalho é iniciada e sempre que uma alteração de estado ocorre nessa execução. Os decisores continuam a avançar na execução do fluxo de trabalho recebendo tarefas de decisão e respondendo ao Amazon SWF com mais decisões até que o decisor determine que a execução do fluxo de trabalho está concluída. Em seguida, ele responde com uma decisão para encerrar a execução de fluxo de trabalho. Após o encerramento da execução do fluxo de trabalho, o Amazon SWF não agendará tarefas adicionais para essa execução.

No exemplo de comércio eletrônico, o agente de decisão determina se cada etapa foi realizada corretamente e, em seguida, agenda a próxima etapa ou gerencia quaisquer condições de erro.

Um agente de decisão representa um único processo ou thread de computador. Vários agentes de decisão podem processar tarefas para o mesmo tipo de fluxo de trabalho.

Operadores de atividade

Um operador de atividade é um processo ou thread que realiza as tarefas de atividade que fazem parte do seu fluxo de trabalho. A tarefa de atividade representa uma das tarefas que você identificou no seu aplicativo.

Para usar uma tarefa de atividade no seu fluxo de trabalho, você deve registrá-la usando o console do Amazon SWF ou a ação RegisterActivityType.

Cada funcionário de atividade pesquisa o Amazon SWF em busca de novas tarefas que sejam apropriadas para serem executadas por esse funcionário; determinadas tarefas podem ser executadas somente por determinados funcionários de atividade. Depois de receber uma tarefa, o activity worker processa a tarefa até a conclusão e, em seguida, informa ao Amazon SWF que a tarefa foi concluída e fornece o resultado. Depois disso, o operador de atividade faz uma sondagem em busca de uma nova tarefa. Os operadores de atividades associados a uma execução de fluxo de trabalho continuam dessa maneira, processando tarefas até a execução de fluxo de trabalho propriamente dita seja concluída. No exemplo de comércio eletrônico, os operadores de atividade são processos e aplicativos independentes usados por pessoas, como processadores de cartão de crédito e funcionários de depósitos, que realizam etapas individuais no processo.

Um operador de atividade representa um único processo (ou thread) de computador. Vários operadores de atividade podem processar tarefas do mesmo tipo de atividade.

Intercâmbio de dados entre atuadores

Dados de entrada podem ser fornecidos para uma execução de fluxo de trabalho quando esta é iniciada. Da mesma forma, dados de entrada podem ser fornecidos aos operadores de atividade quando eles agendam tarefas de atividade. Quando uma tarefa de atividade é concluída, o trabalhador da atividade pode retornar os resultados para o Amazon SWF. Da mesma forma, um agente de decisão poderá relatar os resultados de uma execução de fluxo de trabalho quando essa execução estiver concluída. Cada ator pode enviar e receber dados do Amazon SWF por meio de cadeias de caracteres, cuja forma é definida pelo usuário. Dependendo do tamanho e da sensibilidade dos dados, você pode passar os dados diretamente ou passar um ponteiro para os dados armazenados em outro sistema ou serviço (como o Amazon S3 ou o DynamoDB). Tanto os dados passados diretamente quanto os ponteiros para outros armazenamentos de dados são registrados no histórico de execução do fluxo de trabalho; no entanto, o Amazon SWF não copia nem armazena em cache nenhum dos dados de armazenamentos externos como parte do histórico.

Como o Amazon SWF mantém o estado de execução completo de cada execução de fluxo de trabalho, incluindo as entradas e os resultados das tarefas, todos os atores podem ser stateless. Como resultado, o processamento do fluxo de trabalho é altamente escalável. À medida que a carga no seu sistema crescer, basta adicionar mais atuadores para aumentar a capacidade.