Cenários de implementação de serviços com WCF - Parte 6 : Serviços para Workflow

Serviços para Workflow

Olá pessoal, tudo certo?

Mais um cenário, importante na discussão sobre orquestração, coordenação de processos e fluxos de trabalho: serviços para workflows.

Em arquiteturas orientadas a serviços, é comum o uso de serviços de negócios que encapsulam um série de funcionalidades, disponibilizando esses recursos através de um firewall (em intranets) ou diretamente para clientes na internet. Como benefícios dessa publicação temos um melhor reuso, manutenção, isolação, tolerância a falhas, distribuição e escalabilidade.

Interfaces WCF tornam esse encapsulamento mais fácil, através da definição clara de contratos de mensagens e questões sobre o transporte e segurança. Porém, não temos uma definição sobre a ordem das chamadas ou execução desses serviços dentro da aplicação. Com o .NET 3.0 foi introduzido também o WF - Windows Workflow Foundation, que oferece mecanismos para a construção de workflows e pode ser hosteado em aplicações Windows. Com o uso de workflows ou fluxos de trabalhos, é possível coordenadar as atividades de negócio e requisições de serviços, sendo o método ideal para organizar chamadas para serviços WCF em processos de longa duração.

O .NET 3.5 trouxe novas funcionalidades e entre elas, uma maior facilidade para o consumo de serviços WCF a partir de fluxos de trabalho em WF. Isso tornou a integração WCF + WF muito mais direta e de fácial programação. Também com o .NET 3.5 temos o recurso de serviços duráveis, onde o estado de uma instância de serviço é automaticamente salvo entre chamadas. Isso torna possível a re-hidratação de uma mesma instância de serviço em diferentes máquinas.

A figura a seguir ilustra uma integração WF / WCF, onde um fluxo de trabalho consome uma funcionalidade exportado por um serviços WCF:

 image

Podemos publicar um workflow em qualquer tipo de aplicações Windows. Alguns exemplos de implementação são:

  • Uma aplicações cliente Windows que oferece um workflow que coordena chamadas para serviços WCF remotos, publicados no IIS, WAS ou um Windows NT Service;
  • Uma aplicação ASP.NET que inicia um workflow para coordenar chamadas para serviços WCF remotos publicados em Windows NT Services atrás do firewall de um intranet.

Um video interessante sobre exportação de WF como services WCF é encontrado aqui:

Building WCF Services Using Workflow Foundation
Ref.: https://www.microsoft.com/uk/msdn/nuggets/nugget/285/wf-v35-building-wcf-services-using-workflow-foundation.aspx

Para finalizar, outro cenário típico para a aplicação de workflows é a aprovação e geração de documentos. Um artigo que ilustra bem esse exemplo é dado a seguir:

Crie fluxos de trabalho para obter dados e criar documentos
Ref.: https://msdn.microsoft.com/pt-br/magazine/cc534981.aspx

Nesses últimos dias, passamos pelas principais características de cada cenário, comuns em ambientes corporativos e soluções de negócio.

Aproveito para agradecer ao amigo Rogério Cordeiro , pelas discussões e questões levantadas até aqui. Em breve, vamos ter algumas surpresas como resultado dessas discussões.

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

Waldemir.

Technorati Tags:  SOA , WCF , Services,Workflow