Partilhar via


Cloud Sequential Workflow : um template para workflows na nuvem

Olá pessoal, tudo certo?

Semana passada, estive explorando o CTP de Março do Windows Azure e encontrei alguns templates bem interessantes. Entre os projetos disponíveis temos:

Cloud Service/Web Cloud Services
Cloud Service/Worker Cloud Services
Cloud Service/Web and Worker Cloud Services
Cloud Service/Roles/Cgi Web Role
Cloud Service/Roles/Web Role
Cloud Service/Roles/Worker Role
CloudWorkflow/CloudSequentialWorkflow

Um deles é especialmente indicado para a coordenação de chamadas a serviços na nuvem, o template “Cloud Sequential Workflow”.

Apenas para relembrar, o .NET Framework suporta dois tipos de workflows no Windows Workflow Foundation (WF) , o Sequential Workflow e o State Machine Workflow.

image Um workflow sequencial (ou Sequential Workflow) pode ser entendido como um fluxo de trabalho previsível. Ou seja, sua execução pode ser feita através de condições, loops, delays, a partir de eventos disparados externamente mas no final, o workflow sequencial irá executar suas atividades, condições e regras sempre na sequência, avançando sempre para o final do fluxo e sua completude. Assim, o workflow está no controle do processo. Podemos usar esse tipo de workflow quando queremos implementar a tomada de decisoes dentro do próprio workflow, a partir dos shapes de condições, regras e atividades.

image Um workflow de máquina de estado (ou State Machine Workflow) é um workflow orientado a eventos. Isto significa que o workflow de máquina de estado depende de eventos externos para determinar sua completude ou término. Não temos uma ordem predeterminada de estados executados. Podemos definir os estados possíveis do workflow, assim como as transições possíveis entre seus estados. O workflow irá sempre de um estado para outro, esperando por novos eventos para determinar o próximo estado de transição. Geralmente, as decisões que determinam o estado do workflow acontecem fora do workflow. A máquina de estado define assim a estrutura do workflo, mas o controle reside fora do próprio workflow. Podemos usar um workflow de máquina de estado quando o processo de decisão ocorre fora do workflow, em eventos externos.

Já vimos aqui no blog que o .NET Services do Azure Services Platform possui o Workflow Services, um conjunto de capacidades que permite a hospedagem de workflows do tipo sequencial na nuvem. Veja mais aqui.

Através do template “Cloud Sequential Workflow” podemos construir workflows do tipo sequencial, coordenando o recebimento de chamadas e envio de mensagens para o .NET Services / Service Bus, consumindo os serviços publicados ali. Esse tipo de coordenação torna-se muito interessante quando pensamos na integração de sistemas que usam a nuvem como ponto central, orquestrando mensagens entre serviços. Veja mais sobre esse tipo de cenário no projeto MEBA – Multi-Enterprise Business Application da Microsoft, aqui.

Um exemplo de workflow recebendo uma mensagens via http e fazendo a troca de mensagens com serviços no Service Bus é ilustrado a seguir:

image 
Para a construção de workflows como esse, o Microsoft .NET Services SDK (March 2009 CTP) oferece uma série de shapes novos que são colocados na Toolbox do Visual Studio 2008, como vemos abaixo:

image

Entre os principais shapes, destacamos o CloudServiceBusSend e o CloudServiceBusReceive, que permitem a comunicação com serviços publicados no Service Bus.

Ainda, podemos controlar a sequência de execução através de shapes como IfElse, blocos de sequencia Sequence, Suspend, Terminate e While, para loops e controles de iterações.

Para iniciar seus experimentos, comece instalando o SDK do .NET Services, abaixo:

Microsoft .NET Services SDK (March 2009 CTP)
Ref.: https://www.microsoft.com/downloads/details.aspx?FamilyID=8d1d1d5e-1332-4186-b33f-26d053759e49&displaylang=en

Confira também o blog do time:

Ref.: https://blogs.msdn.com/netservices/

E os artigos (em inglês) a seguir:

Ref.: An Introduction to Microsoft .NET Services for Developers
Ref.: A Developer’s Guide to the Microsoft® .NET Service Bus
Ref.: A Developer’s Guide to the Microsoft® .NET Access Control Service
Ref.: A Developer’s Guide to the Microsoft® .NET Workflow Service

Esse post foi só uma visão rápida sobre o assunto. Em posts futuros, vamos falar mais desse template de workflows na nuvem e alguns exemplos mais interessantes. Aguardem!

Por enquanto é só! Até o próximo post :)

Waldemir.

Comments