Olá pessoal, tudo certo?
Cada vez mais tenho recebido perguntas sobre o uso de serviços baseados em WCF - Windows Communication Foundation. De fato, existem diversos aspectos de uma camada de serviços que o framework WCF atende muito bem. Entre as principais características aderentes ao modelo temos:
Existem ainda outros recursos importantes no WCF que adicionam ao modelo, como programação unificada para diversos métodos de conexão, controle de comportamentos (behaviors), endpoints e seus componentes, etc. A figura a seguir já é conhecida de todos e apresenta os atores de um serviço no WCF:
Do mesmo modo, o WF - Windows Workflow Foundation trás uma série de recursos para a composição de atividades, introduzindo os conceitos de fluxo de trabalho, permitindo aos desenvolvedores tratarem diversos cenários, como fluxos de trabalho seqüencial, fluxos simples, fluxos baseados em máquinas de estado, com interações humanas, etc.
Portanto, é inevitável que a pergunta sobre o uso integrado de ambos os frameworks aconteça. A pergunta que devemos fazer na sequência é: como isso pode ser feito? e ainda, quais são as armadilhas nessa implementação?
Para a primeira pergunta, um bom artigo que descreve um cenário de integração é este a seguir:
Integrating Windows Workflow Foundation and Windows Communication Foundation (by Jeremy Boyd) Ref.: http://msdn2.microsoft.com/en-us/library/bb266709.aspx
O artigo apresenta um passo-a-passo que pode ser usado como exemplo na integração de serviços WF em WCF em cenários diversos. Vamos usá-lo como guia para apresentar alguns novos pontos de discussão que envolvem os dois framework.
Bastante coisa, não é mesmo?
Relembrando, o Windows Workflow Foundation (WF) oferece uma estrutura geral para a definição de fluxos de trabalho e um mecanismo de controle que permite hospedar esses fluxos de trabalho em execução, além de interagir com eles. Ainda, o Windows Communication Foundation (WCF) fornece uma estrutura geral de criação de sistemas conectados, através de um modelo de programação unificada, completo e consistente, que oferece um conjunto amplo de recursos para a definição de serviços, como vimos acima.
Assim, realmente podemos aplicar esses dois frameworks de forma combinada, criando uma plataforma flexível e adaptável. O WF permite modelar e encapsular a lógica de negócio e os processos de negócio, enquanto o WCF fornece a infra-estrutura de mensagens para a comunicação entre sistemas.
Os passos acima não são o guia definitivo para a implementação de integrações WCF + WF. A idéia do post foi apontar alguns temas envolvidos na construção de soluções sofisticadas, utilizando os dois frameworks. E para relembrar uma outra discussão já feita aqui no blog, segue o link abaixo:
Windows Workflow Foundation - Uma alternativa para a camada de processos numa arquitetura SOA. Ref.: http://blogs.msdn.com/wcamb/archive/2008/02/01/windows-workflow-foundation-uma-alternativa-para-a-camada-de-processos-numa-arquitetura-soa.aspx
Por enquanto é só! Até o próximo post :)
Waldemir.