1. Uma introdução sobre
SOA – Service Oriented Architecture
Waldemir Cambiucci
Arquiteto de Soluções twitter.com/wcamb
Microsoft Brasil blogs.msdn.com/wcamb
1
2. Agenda
Visão Software + Serviços
Arquitetura Orientada a Serviços
Algumas questões sobre serviços
Conclusões
Recursos
2
3. Objetivos da sessão
Apresentar uma introdução sobre projetos de
arquiteturas orientadas a serviço (SOA)
Apresentar algumas questões de
desenvolvimento envolvidas em projetos de
SOA.
3
5. Evolução no Enterprise
Agilidade no Enteprise
Eficiência no Enterprise Serviços
Aplicações
Consolidação Compostas
de Infra-estrutura
SOA
Web
Rodando o Services
negócio Crescimento
Transformações
de negócio do negócio
EDI, ETL, Racionalização
EAI de software
Velocidade e
TI dinâmica
Agilidade
Integração Ponto-
a-Ponto
5
6. Visão Software + Serviços
O poder da escolha
Combinação entre infra-estrutura local e infra-
estrutura remota.
Infra-estrutura
+ Infra-estrutura
auto-hospedada na nuvem
(on-premise) (off-premise, in the cloud)
6
7. Visão Software + Serviços
Segurança e Privacidade
Personalização
Visibilidade e Controle
Acessibilidade aos Dados
Alcance Global
+
Facilidade de Provisionamento
Agilidade para o Negócio
Planejamento de Capacidade e Gerênciamento
7
8. Exemplo de projeto Software + Serviços
Marketplace de imagens na nuvem
Dados relacionais normalizados e
dados desestruturados
Consultas complexas sobre todos
os dados
Processamento de consultas
sobre tipos ricos, como spatial
Aplicação Web Análise de dados on-premise e
de clientes off-premise
WPF App para SharePoint App
gerenciamento de fotos Gerenciamento corporativo
Sincronização de dados Scale-free
Clientes conectados Alta disponibilidade
ocasionalmente Geo distribuição
Elevado alcance
Desenvolvimento ágil
8
9. Desafios do mundo real com S+S
Níveis de operação diferenciados;
Suporte a diferentes dispositivos, protocolos, formatos
de dados e contratos de operação.
Cuidados com o versionamento, sincronização e a governança
de todo o ambiente (on-premise + off-premise).
Considere um boa disciplina de desenvolvimento.
O ALM nunca foi tão importante!
Ao longo do projeto, espere mudanças!
9
11. O que é SOA?
Estilo de arquitetura onde funcionalidades de
aplicações existentes são disponibilizadas na
forma de serviços.
Serviços são:
Orientados a mensagens;
Desacoplados em relação ao cliente/consumidor;
Descritos através de contratos de operação, de
mensagens e de dados;
11
12. Arquitetura de Referência SOA
Organização de camadas para serviços e workflows
Consume
User Directed
Presentation Services
Management and Governance
Design and Development
Compose
Security and Identity
Collaboration Services
User Interaction
Composition Services
Business Information
Messaging
Process Integration
Compose Services Services
Services
Business Transaction
Connectivity Services
Expose
Existing Systems
12
13. Arquitetura de Referência SOA
Organização de camadas para serviços e workflows
Consume
User Directed
Visual Studio. Patterns & Practices, MSF
SharePoint Server, .NET CF, ASP.NET/AJAX, Silverlight, WPF
System Center, MOF, Partners
Compose SharePoint Server & Live Communications Server
User Interaction
Active Directory
SharePoint Server, WF, CAB
BizTalk Server
BizTalk Server
SQL Server Windows
Compose WF
WCF
Business Transaction
BizTalk Server, WCF
Expose
Existing Systems
13
14. Arquitetura de Referência SOA
Existem vários cenários possíveis com o uso de serviços
Entre os cenários mais comuns citamos:
Web Services de aplicações SaaS/Corporativas
Serviços para aplicações Web 2.0
Serviços para aplicações de negócio intranet e/ou
cliente/servidor
Serviços baseados em filas de mensagens
Serviços baseados em workflows e máquinas de
estado
14
15. Exemplo de cenário de serviços
Web Services de aplicações SaaS/Corporativas
Rede Rede Privada
Perímetro
Banco de
Dados
Corporativo
Serviço A
Aplicações LOB
Aplicação Externa Serviço
Roteador
de
Perímetro
Serviço B
15
16. Exemplo de cenário de serviços
Aplicações intranet
Cliente
Proxy Proxy Proxy
ServiçoA ServiçoB ServiçoC
Escolha dos
bindings
corretos Named Pipe
TCP MSMQ
Hosting de
serviços no
IIS/WAS
ServiçoA.svc ServiçoB.svc ServiçoC.svc
Serviço A Serviço B Serviço C
Worker Process
WAS - Windows Activation Services
16
17. Encadeamento de serviços IIS IIS
ASP.NET Web Application ASP.NET Web Application
Web Server Web Server Propagação
de
credenciais,
authn, authz
Windows Service Windows Service
Business Service Business Service
Application Server Application Server
Windows Service Windows Service Windows Service
Processing Processing Processing
Service Service Service
Processing Server Processing Server Processing Server
17
18. Cenários com fila de mensagens
Bindings como NetMsmqBinding e o
MsmqIntegrationBinding permitem a entrega através
de filas de mensagens, para soluções assíncronas.
Cliente Fila MSMQ
WCF
Dispatcher
Proxy Service
msg
MSMQ
Channel
Listener
WCF
Dispatcher
Service
18
19. Patterns de workflows e serviços
Alguns patterns descritos para workflows,
processos e serviços:
Desenvolvimento orientado a processos (workflow)
Separação entre contratos e implementação (reuso)
Migração de processos de forma transparente entre
máquinas e hospedeiros (hosts)
Aplicações compostas e serviços
Processos conversacionais
Soluções baseadas no tratamento de estados
Monitoração de processos, monitoração de
atividades de negócio.
19
20. Arquitetura de Referência SOA
Existem vários aspectos de arquitetura na definição de serviços
Qual será o modelo/template de serviço?
Qual será a granularidade dos serviços?
Qual será o modelo/template de workflow?
Qual será o modelo/template de segurança?
Qual será o modelo de instrumentação e monitoração?
Qual será o modelo de tratamento de exceções?
Qual será o modelo de consumo de serviços?
Como será obtido o reuso de serviços?
Entre outras questões…
20
21. Questões de uma arquitetura SOA
Desafio Recomendações
Template de serviço WCF oferece uma série de templates, Escolher também o binding mais
entre eles: adequado. Os mais comuns são
• WCF Service Library wsHttpBinding e
• WCF Service Application NetTcpBinding, mas avalie em
• Sequential Workflow Service Library função da performance e do
cliente consumidor.
Granularidade de Envolve muito mais uma visão de Uma elevada granularidade
serviço negócio do que aspectos técnicos. pode gerar uma maior latência
no encadeamento de serviços.
Template de workflow WF oferece templates sequências e de Templates como o Workflow
máquinas de estado para atividades em Activity Library e o Sequential
workflows. Avaliar o uso de workflows Workflow Service Library são
como serviços. muito importantes.
Modelo de segurança Podemos tratar aspectos como O WCF Security
Autenticação, Autorização, Identidade, Guidance é leitura
Impersonation, Delegation, Segurança obrigatória!
por mensagem e Segurança por
transporte.
21
22. Questões de uma arquitetura SOA
Desafio Recomendações
Instrumentação Utilizar Health Monitoring e o How to: Use Health Monitoring to
System.Web.Management para Instrument a WCF Service for
instrumentação de serviços WCF. Security
http://msdn.microsoft.com/en-
us/library/cc949048.aspx
Tratamento de Avaliar o Exception Handling Enterprise Library 4.1 – October 2008
exceções Application Block (EAB) e o WCF e Enterprise Library 4.1 – Hands On
Fault Handling Labs – March 2008
Consumo de serviços Aplicações Compostas são PRISM 2.0 oferece a CAL – Composite
exemplos de interfaces para o App. Library
consumo de serviços. http://compositewpf.codeplex.com/
Container / Hoster de Os mais comuns são IIS + WAS. A escolha do host determina os
serviços “Dublin” no futuro. (Markusc) bindings suportados. Atenção!
Reuso de serviços Na plataforma Microsoft, ESB 2.0 Repositório de serviços, barramentos
sobre BizTalk Server 2009 oferece dinâmicos e ferramentas de
serviços dinâmicos via Resolver, governança colaboram para um
Itinerary e Roteamento de maior reuso de serviços no ambiente
Mensagens. corporativo.
22
23. Ferramentas recomendadas na plataforma
Microsoft
Enterprise Library 4.1 – October 2008
http://www.microsoft.com/downloads/details.aspx?familyid
=1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en
Hands-On Labs for Enterprise Library 4.1 – March 2009
http://www.microsoft.com/downloads/details.aspx?FamilyI
D=AB3F2168-FEA1-4FC2-B40C-
7867D99D4B6A&displaylang=en
Composite Application Guidance for WPF and
Silverlight – Feb 2009
http://msdn.microsoft.com/en-us/library/dd458809.aspx
23
24. Composite Application Guidance for WPF
v2.0 – Fev.2009
Composite Application Guidance for WPF and Silverlight
http://msdn.microsoft.com/en-us/library/dd458809.aspx
24
25. Exemplo de solução no Visual Studio
Cada módulo
independente é uma
parte de composição
da interface.
http://www.codeplex.com/CompositeWPF/
25
26. Desafios do mundo real com SOA
Procure identificar o melhor cenário que
atenda sua solução (web, intranet, restfull, b2b,
web 2.0)
Escolha o template de serviço WCF/WF mais
indicado, sem esquecer:
Tratamento de exceção, monitoração, logging, recuperação,
transferência de dados, segurança, bindings, etc.
WCF Service Library, State Machine Workflow Services
Library e Sequential Workflow Service Library são boas
dicas.
26
27. Desafios do mundo real com SOA
EntLib 4.1, Prism 2.0, Web Services Security
Guidance, App Arch Guide 2.0 são ferramentas
importantes!
Barramento de serviços, repositórios e patterns
de EAI
Avalie sempre a real necessidade de sua solução.
Mantenha uma evolução gradual.
Cada projeto SOA é único!
27
29. Conclusões
Uma TI dinâmica envolve soluções híbridas,
com cenários diversos e integrados.
Vários cenários de soluções comportam o uso
de serviços, assim como seus vários desafios.
Uma plataforma na nuvem estende
funcionalidades e recursos do ambiente local.
Serviços estarão on-premise e off-premise.
29
30. Recomendações gerais…
Sempre iniciar uma arquitetura SOA a partir das
necessidades de negócio, com foco na agilidade do
negócio;
Considerações sobre latência e tempos de reposta são
muito importantes;
O desenvolvimento ágil, com entregas de valor de
forma incremental evita surpresas;
Considere e desenvolva esperando mudanças;
Não sub-estimar os esforços com governança de SOA;
Não sub-estimar o impacto na organização.
30
31. Artigos
Creating And Consuming Web Feeds, by Jon Flanders
http://msdn.microsoft.com/en-us/magazine/dd569753.aspx
An Introduction To RESTful Services With WCF, by Jon Flanders
http://msdn.microsoft.com/en-us/magazine/2009.01.servicestation.aspx
Real-World WF : Best Practices For Windows Workflow
Foundation Apps, by Josh Lane
http://msdn.microsoft.com/en-us/magazine/dd252947(printer).aspx
Cloud Computing : Building Distributed Applications With .NET
Services, by Aaron Skonnard
http://msdn.microsoft.com/en-us/magazine/dd569759(printer).aspx
31
32. Recursos
Windows Azure Tools for Microsoft Visual Studio (July 2009 CTP)
http://www.microsoft.com/downloads/details.aspx?FamilyID=8d75d4f7-77a4-4adf-
bce8-1b10608574bb&displaylang=en
Windows Azure Software Development Kit (July 2009 CTP)
http://www.microsoft.com/downloads/details.aspx?familyid=AA40F3E2-AFC5-484D-
B4E9-6A5227E73590&displaylang=en
Microsoft .NET Services SDK (July 2009 CTP)
http://www.microsoft.com/downloads/details.aspx?FamilyID=38d8cf79-fc39-4aef-
b3fd-ef280f2e9fa6&displaylang=en
Windows Azure Platform Training Kit (August 2009 CTP)
http://www.microsoft.com/downloads/details.aspx?FamilyID=413E88F8-5966-4A83-
B309-53B7B77EDF78&displaylang=en
Wcamb’s Blog Tags: [Azure Services Platform] [ Windows Azure]
http://blogs.msdn.com/wcamb/archive/tags/Azure+Services+Platform/default.aspx
32
33. 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
33