O documento apresenta uma introdução sobre o Windows Workflow Foundation (WF), abordando o que é WF, seus benefícios, cenários recomendados e não recomendados de uso, integração com WCF e novidades no WF 4.0.
Desenvolvimento de Software na Plataforma Microsoft .NET
AAB304 - Windows Workflow Foundation - wcamb
1. Uma introdução sobre
WF – Windows Workflow
Foundation
Waldemir Cambiucci
Arquiteto de Soluções twitter.com/wcamb
Microsoft Brasil blogs.msdn.com/wcamb
1
2. Agenda
O que é o WF?
Cenários recomendados de utilização
Cenários não recomendados de utilização
Integração WF+WCF
Novidades do WF 4.0
Conclusões
Publicação: Outubro/2009
2
3. Objetivos da Sessão
Apresentar uma introdução sobre o
WF – Windows Workflow Foundation.
Apresentar aspectos de integração entre WF e
WCF – Windows Communication Foundation.
Apresentar alguns recursos do WF 4.0.
3
4. O que é o WF?
WF – Windows Workflow Foundation é um framework
de desenvolvimento do .NET Framework, que permite
a construção de workflows e máquinas de estado para
a coordenação de atividades em aplicações diversas.
Parte integrante do .NET Framework desde a versão
3.0, o WF suporta uma série de cenários, controles de
fluxo e máquinas de estado.
4
5. .NET Framework 3.5 SP1
.NET ADO.NET
Entity
ADO.NET Data
Services
ASP.NET
Dynamic Data
ASP.NET
Routing
Framework Framework
.NET Framework 3.5
Principais REST AJAX LINQ RSS
recursos do
POX ATOM JSON +BCL
.NET
Framework. .NET Framework 3.0
Card
WCF WPF WF Space
.NET Framework 2.0
Web
ADO.NET CLR Services
ASP.NET
6. O que é o WF?
O que é um workflow?
Um conjunto de atividades que coordena pessoas
e/ou software, organizadas em alguma forma de
fluxo de trabalho.
Flowcharts Diagramas de estados
6
7. O que é o WF? Visual Designer
• Workflows executam dentro de
Um Workflow
um processo host: qualquer
aplicação ou servidor Uma atividade
Componentes Custom Activity Library
• Base Activity Library: atividades
Windows
“Out-of-box” e base para customizações
• Runtime Engine: Gerenciamento de Workflow Foundation
Workflow e estado de execução Base Activity Library
• Runtime Services: Camada de
comunicação e conectividade Runtime Engine
• Visual Designer: módulo gráfico para
construção e composição
Runtime Services
• Desenvolvedores podem construir
suas próprias Custom Activity Libraries Host Process
7
8. O que é o WF?
No Visual Studio,
Workflow o WF é construido
WF de forma visual
8
9. Benefícios
Entre os principais benefícios do WF citamos:
Ferramenta visual para a construção de workflows,
processos e máquinas de estado;
Suporte a uma série de atividades, controles de
fluxo, laços, estruturas condicionais, escopo
transacional, entre outros;
Disponibilidade de inúmeros templates integrados
ao Visual Studio 2008;
Integração completa com interfaces de serviços em
WCF – Windows Communication Foundation;
Suporte para diversos hospedeiros de processos,
como IIS, Windows Service, Dublin, WAS, etc.
9
10. Cenários exemplo
Veja um cenário Camada de
genérico de uso de Apresentação
(WPF)
WCF, WF e WPF no
.NET Framework
Camada de
processos ou
workflows
(WF)
Camada de
serviços (WCF)
Camada de
Aplicações
(LoB)
10
11. Cenários recomendados
O WF é indicado para cenários de coordenação
de atividades no escopo da aplicação ou no
domínio da solução, suportando:
escopo transacional
long running workflow
integração de serviços
integração de máquinas de estado
cenários de orquestração de web services
exposição de web services como workflows
11
12. Cenários não recomendados
O WF não é recomendado para cenários com:
grande volume de transformação de mensagens;
necessidade de integração de diversos adaptadores ou diferentes
plataformas;
presença de mecanismos de monitoração, inspeção de
mensagens ou composição dinâmica de chamadas.
Nesses casos, deve-se avaliar a necessidade de um núcleo
EAI – Enterprise Application Integration, como oferecido
pelo BizTalk Server 2009, por exemplo.
Para a composição de serviços dinâmicos, com patterns de
roteamento, transformação e itinerário de mensagens,
devemos avaliar um barramento de serviços (ESB).
12
13. Interoperabilidade na plataforma
Microsoft
Interop in the Cloud: .NET Services do Windows Azure
Access Control Service Bus Federated Services
Interop In the Box: BizTalk Server / BizTalk ESB Toolkit 2.0
LOB applications: B2B standards: Message buses: Heritage (IBM): Other formats:
SAP XML WebSphere MQ CICS, IMS SQL Server
Siebel Applications EDI (EDIFACT, ANSI X12, MSMQ/MSMQT 3270, APPC SharePoint
PeopleSoft Enterprise HIPAA) TIBCO Rendezvous COBOL, RPG Oracle DBMS
JD Edwards OneWorld AS2 TIBCO Enterprise DB2, VSAM File, FTP
JD Edwards Enterprise One SWIFT Message Service HTTP, SOAP
HL7 POP3/SMTP
RosettaNet
Interop in the Framework: WCF / WF
Unified Protocols: Messaging & Metadata: Security, Reliability & Transactions: Web 2.0
ASMX SOAP, WS-Addressing, MTOM WS-Security, WS-SecureConversation, WS-Trust POX
WSE WSDL, WS-MetadataExchange, WS-Reliable Messaging, WS-Coordination, REST
.NET Remoting WS-Policy WS-AtomicTransaction JSON
COM+ RSS/ATOM
MSMQ
13
14. Anatomia de um serviço no WCF
Metadata
Cliente
Bv
Endpoint Serviço
Bv C B A Mensagem A B C Bv
A B C Bv
Proxy
Address Binding Contract ServiceHost<T>()
Endpoint
(Onde) (Como) (O quê)
14
15. Integração WCF+WF
Com o .NET 3.0, um workflow
WF podia interagir com serviços
apenas através de interfaces
Web Services, ou seja, a
integração com WCF não era
nativa.
Invocando um
Web Service com
os recursos do
.NET 3.0
15
16. Integração WCF+WF
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.
Para a exportação
do worfklow
como um serviço
Para o consumo
de um serviço a
partir do
workflow
16
17. WCF + WF = Workflow Services
Total suporte a diversos cenários de integração
WCF+WF
WCF Service
WF Workflow
WCF endpoint
Client External Service
WCF endpoint
External Service
17
18. Integração WCF+WF
Podemos consumir
serviços WCF a partir de
workflows em WF
Serviço
WCF
A B C Bv
A B C Bv
Workflow
WF
18
19. Integração WCF+WF
Podemos expor workflows
WF através de interfaces de
serviços em WCF
Cliente
WCF
Bv
Bv C B A
A B C Bv
Workflow
A B C WF Bv
19
20. Novidades do WF 4.0
Melhorias na Atividades
WF declarativos Base customizadas
Activity Library simplificadas
Melhorias no
Fluxo de dados
Runtime/designer
20
21. Workflows Declarativos
A definição do programa é somente dado
Arquivo XML facilmente manipulável
Possibilidade de várias ferramentas
Visio Armazenado em qualquer lugar
arquivo, DB, nuvem, etc.
DSL
Representação em vários formatos
C# XAML, C#, Visio, DSL, etc.
21
22. Base Activity Library
.NET 4.0 traz novas atividades, além de melhorias
Flow Control Collection Outras
Flowchart AddToCollection Assign
ForEach RemoveFromCollection InvokeMethod
Parallel ExistsInCollection Persist
ParallelForEach ClearCollection TryCatch
DoWhile ... CompensableActivity
Pick Interop
… ...
Microsoft está planejando disponibilizar novas
atividades no CodePlex
22
23. Flow Chart Model
Flowcharts é um meio termo entre o modelo
sequencial e a máquina de estado
Controle do fluxo de
processamento com ifs, loops, etc
Permite retornar o fluxo para
atividades anteriores
23
24. Modelo de Programação Simplificado
Maior facilidade para:
Hospedar e rodar as instâncias dos workflows
Gerenciar bookmarks
Criar atividades customizadas
Trafegar e armazenar dados
24
25. Criação de atividades customizadas
Novo modelo de programação
WorkflowElement
Activity CodeActivity NativeActivity
25
26. WF 4.0 Data Flow Constructs
Arguments Utilizado para definir o fluxo de dados das atividades;
Cada um tem uma direção: input, output, ou
input/output.
Variables Armazenamento de dados dentro de uma atividade;
Podem ter vários escopos dentro do workflow
Expressions Funcionam como funções, recebem parâmetros, realizam
alguma operação e retornam algum valor
26
28. Conclusões
WF suporta diferentes cenários para workflows,
máquinas de estado e orquestração de serviços e
processos no domínio da aplicação.
Podemos implementar regras de negócio e fluxos de tomada
de decisão através de workflows em WF, com grande
produtividade.
Cenários baseados em EAI – Enterprise Application
Integration ou ESB – Enterprise Service Bus podem
compor workflows implementados em WF.
Devemos avaliar as reais necessidades de
interoperabilidade e composição de processos em
nossas soluções.
28
29. Recursos
WCF and WF Services in the .NET Framework 4.0 and
"Dublin"
http://msdn.microsoft.com/en-us/magazine/2009.01.net40.aspx
The Workflow Way: Understanding Windows
Workflow Foundation
http://msdn.microsoft.com/en-us/library/dd851337.aspx
A Developer's Introduction to Windows Workflow
Foundation (WF4) in .NET 4 Beta 1
http://msdn.microsoft.com/en-us/library/ee342461.aspx
A Developer’s Introduction to Windows
Communication Foundation (WCF) .NET 4 Beta 1
http://msdn.microsoft.com/pt-br/library/ee354381(en-us).aspx
29
30. Recursos (cont.)
ArqBR.Groups
http://arqbr.groups.live.com/
ArqCasts no Channel9/Brasil
http://channel9.msdn.com/brasil/
ebook Arquitetura de Soluções
http://blogs.msdn.com/wcamb/archive/2009/10/01/ebook-
sobre-arquitetura-de-solu-es.aspx
Centro de Arquitetura MSDN
http://msdn.microsoft.com/pt-br/architecture/default.aspx
30