Fluxos de trabalho 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á.

Fluxos de trabalho do Amazon SWF

O que é um fluxo de trabalho?

Usando o Amazon Simple Workflow Service (Amazon SWF), você pode implementar aplicativos distribuídos e assíncronos como fluxos de trabalho. Fluxos de trabalho coordenam e gerenciam a execução de atividades que podem ser executadas de forma assíncrona em vários dispositivos de computação e que podem apresentar processamento em sequência e em paralelo.

Ao projetar um fluxo de trabalho, você analisa seu aplicativo para identificar suas tarefas de componente. No Amazon SWF, essas tarefas são representadas por atividades. A ordem em que as atividades são realizadas é determinada pela lógica de coordenação do fluxo de trabalho.

Um exemplo de fluxo de trabalho simples: um aplicativo de comércio eletrônico

Por exemplo, a figura a seguir mostra um simples fluxo de trabalho de processamento de pedidos de comércio eletrônico envolvendo pessoas e processos automatizados.

Visão geral do exemplo de fluxo de trabalho

Esse fluxo de trabalho começa quando um cliente faz um pedido. Ele inclui quatro tarefas:

  1. Verifique a ordem.

  2. Se o pedido for válido, cobrar o cliente.

  3. Se o pagamento for feito, enviar o pedido.

  4. Se o pedido for enviado, salvar os detalhes do pedido.

As tarefas nesse fluxo de trabalho são sequenciais: um pedido deve ser verificado antes que um cartão de crédito possa ser debitado; um cartão de crédito deve ser debitado com sucesso antes que um pedido possa ser enviado e um pedido deve ser enviado antes que ele possa ser registrado. Mesmo assim, como o Amazon SWF oferece suporte a processos distribuídos, essas tarefas podem ser executadas em diferentes locais. Se as tarefas forem de natureza programática, elas também poderão ser escritas em diferentes linguagens de programação ou usando diferentes ferramentas.

Além do processamento sequencial de tarefas, o Amazon SWF também suporta fluxos de trabalho com processamento paralelo de tarefas. Tarefas paralelas são realizadas ao mesmo tempo e podem ser concluídas de forma independente por diferentes aplicativos ou operadores humanos. Seu fluxo de trabalho toma decisões sobre como proceder depois que uma ou mais tarefas paralelas tiverem sido concluídas.

Registro e execução do fluxo de trabalho

Depois que a lógica de coordenação e as atividades tiverem sido projetadas, você registrará esses componentes como tipos de fluxo de trabalho e atividade no Amazon SWF. Durante o registro, você especifica para cada tipo um nome, uma versão e alguns valores de configuração padrão.

Somente os tipos de atividade e fluxo de trabalho registrados podem ser usados com o Amazon SWF. No exemplo de comércio eletrônico, você registraria o tipo de fluxo de trabalho CustomerOrder e os tipos de atividades VerifyOrder, ChargeCreditCard, ShipOrder e RecordCompletion.

Depois de registrar seu tipo de fluxo de trabalho, você poderá executá-lo sempre que quiser. Uma execução de fluxo de trabalho é uma instância em execução de um fluxo de trabalho. No exemplo de comércio eletrônico, uma nova execução de fluxo de trabalho é iniciada com cada pedido do cliente.

Uma execução de fluxo de trabalho pode ser iniciada por qualquer processo ou aplicativo, até mesmo por outra execução de fluxo de trabalho. No exemplo de comércio eletrônico, o tipo de aplicativo que inicia o fluxo de trabalho depende de como o cliente efetua o pedido. O fluxo de trabalho pode ser iniciado por um site ou aplicativo móvel ou por um representante de atendimento ao cliente usando um aplicativo interno da empresa.

Com o Amazon SWF, você pode associar um identificador - chamado de workflowId - às execuções do seu fluxo de trabalho, para que possa integrar os identificadores de negócios existentes ao seu fluxo de trabalho. No exemplo de comércio eletrônico, cada execução do fluxo de trabalho pode ser identificada usando o número da fatura do cliente.

Além do identificador que você fornece, o Amazon SWF associa um identificador exclusivo gerado pelo sistema - um runId - a cada execução de fluxo de trabalho. O Amazon SWF permite que apenas uma execução de fluxo de trabalho com esse identificador seja executada em um determinado momento; embora você possa ter várias execuções de fluxos de trabalho do mesmo tipo, cada execução de fluxo de trabalho tem um runId distinto.

Consulte também

Histórico do fluxo de trabalho do Amazon SWF