AAB305 - Service Oriented Architecture - wcamb
-
Upload
waldemir-cambiucci -
Category
Technology
-
view
955 -
download
5
description
Transcript of AAB305 - Service Oriented Architecture - wcamb
1
Uma introdução sobreSOA – Service Oriented Architecture
Waldemir CambiucciArquiteto de SoluçõesMicrosoft Brasil
twitter.com/wcambblogs.msdn.com/wcamb
2
Agenda
Visão Software + Serviços
Arquitetura Orientada a Serviços
Algumas questões sobre serviços
Conclusões
Recursos
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.
4
5
Evolução no Enterprise
EDI, ETL, EAI
Web Services
SOA
AplicaçõesCompostasConsolidação
de Infra-estrutura
Racionalizaçãode software
Integração Ponto-a-Ponto
Rodando onegócio Crescimento
do negócioTransformações
de negócio
Velocidade e Agilidade
Eficiência no Enterprise
Agilidade no Enteprise
Serviços
TI dinâmica
6
Visão Software + ServiçosO poder da escolha
Combinação entre infra-estrutura local e infra-estrutura remota.
Infra-estruturaauto-hospedada
(on-premise)
Infra-estruturana nuvem
(off-premise, in the cloud)
+
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
+
8
Exemplo de projeto Software + ServiçosMarketplace de imagens na nuvem
Dados relacionais normalizados e dados desestruturados
Consultas complexas sobre todos os dados
Processamento de consultas sobre tipos ricos, como spatial
Análise de dados on-premise e off-premise
Scale-free Alta disponibilidade Geo distribuição Elevado alcance Desenvolvimento ágil
Sincronização de dados Clientes conectados
ocasionalmente
WPF App para gerenciamento de fotos
SharePoint App Gerenciamento corporativo
Aplicação Web de clientes
9
Desafios do mundo real com S+S
Níveis de operação diferenciados;
Suporte a diferentes dispositivos, protocolos, formatosde dados e contratos de operação.
Cuidados com o versionamento, sincronização e a governançade 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!
10
Serviços, orquestração, processos, aplicações de
composição, reuso…
11
O que é SOA?
Estilo de arquitetura onde funcionalidades de aplicações existentes são disponibilizadas naforma 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;
12
Arquitetura de Referência SOAOrganização de camadas para serviços e workflows
Compose User Interaction
Compose Business Transaction
ExposeExisting Systems
ConsumeUser Directed
Presentation Services
Collaboration Services
Composition Services
Business
Process
Services
Information
Integration
Services
Messaging
Services
Connectivity Services
Security
and Id
entity
Managem
ent a
nd G
overn
ance
Desig
n a
nd D
evelo
pm
ent
13
Arquitetura de Referência SOAOrganização de camadas para serviços e workflows
Compose User Interaction
Compose Business Transaction
ExposeExisting Systems
ConsumeUser Directed
SharePoint Server, .NET CF, ASP.NET/AJAX, Silverlight, WPF
SharePoint Server & Live Communications Server
SharePoint Server, WF, CAB
BizTalk Server
WFSQL Server
BizTalk Server
Windows
WCF
BizTalk Server, WCF
Activ
e D
irecto
ry
Syste
m C
ente
r, MO
F, P
artn
ers
Visu
al S
tudio
. Patte
rns &
Pra
ctic
es, M
SF
14
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
Arquitetura de Referência SOAExistem vários cenários possíveis com o uso de serviços
15
Serviço A
Serviço B
Rede PrivadaRede Perímetro
Serviço Roteador de Perímetro
Aplicação Externa
Aplicações LOB
Banco de Dados Corporativo
Exemplo de cenário de serviçosWeb Services de aplicações SaaS/Corporativas
16
Proxy ServiçoA
Proxy ServiçoB
Proxy ServiçoC
Cliente
TCP Named Pipe MSMQ
Worker Process
WAS - Windows Activation Services
ServiçoA.svc ServiçoB.svc ServiçoC.svc
Serviço A Serviço B Serviço C
Exemplo de cenário de serviçosAplicações intranet
Escolha dos bindings corretos
Hosting de serviços no
IIS/WAS
17
Web Server Web Server
Application Server Application Server
Processing Server Processing Server Processing Server
ASP.NET Web Application ASP.NET Web Application
IIS IIS
Business Service Business Service
Windows Service Windows Service
Processing Service
Windows Service
Processing Service
Windows Service
Processing Service
Windows Service
Enca
dea
men
to d
e se
rviç
os
Propagação de
credenciais, authn, authz
18
Cenários com fila de mensagens
Bindings como NetMsmqBinding e o MsmqIntegrationBinding permitem a entrega atravésde filas de mensagens, para soluções assíncronas.
Proxy
Cliente
MSMQChannelListener
Fila MSMQDispatcher
Dispatcher
WCFService
WCFService
msg
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.
20
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…
Arquitetura de Referência SOAExistem vários aspectos de arquitetura na definição de serviços
21
Questões de uma arquitetura SOA
Desafio Recomendações
Template de serviço WCF oferece uma série de templates, entre eles:• WCF Service Library• WCF Service Application• Sequential Workflow Service Library
Escolher também o binding mais adequado. Os mais comuns são wsHttpBinding e NetTcpBinding, mas avalie em função da performance e do cliente consumidor.
Granularidade de serviço
Envolve muito mais uma visão de negócio do que aspectos técnicos.
Uma elevada granularidade pode gerar uma maior latênciano encadeamento de serviços.
Template de workflow WF oferece templates sequências e de máquinas de estado para atividades em workflows. Avaliar o uso de workflows como serviços.
Templates como o Workflow Activity Library e o Sequential Workflow Service Library são muito importantes.
Modelo de segurança Podemos tratar aspectos como Autenticação, Autorização, Identidade, Impersonation, Delegation, Segurança por mensagem e Segurança por transporte.
O WCF SecurityGuidance é leitura obrigatória!
22
Questões de uma arquitetura SOADesafio Recomendações
Instrumentação Utilizar Health Monitoring e o System.Web.Management para instrumentação de serviços WCF.
How to: Use Health Monitoring to Instrument a WCF Service for Security http://msdn.microsoft.com/en-us/library/cc949048.aspx
Tratamento de exceções
Avaliar o Exception Handling Application Block (EAB) e o WCF Fault Handling
Enterprise Library 4.1 – October 2008 e Enterprise Library 4.1 – Hands On Labs – March 2008
Consumo de serviços Aplicações Compostas são exemplos de interfaces para o consumo de serviços.
PRISM 2.0 oferece a CAL – Composite App. Libraryhttp://compositewpf.codeplex.com/
Container / Hoster de serviços
Os mais comuns são IIS + WAS.“Dublin” no futuro. (Markusc)
A escolha do host determina os bindings suportados. Atenção!
Reuso de serviços Na plataforma Microsoft, ESB 2.0 sobre BizTalk Server 2009 oferece serviços dinâmicos via Resolver, Itinerary e Roteamento de Mensagens.
Repositório de serviços, barramentos dinâmicos e ferramentas de governança colaboram para um maior reuso de serviços no ambiente corporativo.
23
Ferramentas recomendadas na plataformaMicrosoft
Enterprise Library 4.1 – October 2008http://www.microsoft.com/downloads/details.aspx?familyid=1643758B-2986-47F7-B529-3E41584B6CE5&displaylang=en
Hands-On Labs for Enterprise Library 4.1 – March 2009http://www.microsoft.com/downloads/details.aspx?FamilyID=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
24
Composite Application Guidance for WPFv2.0 – Fev.2009
Composite Application Guidance for WPF and Silverlighthttp://msdn.microsoft.com/en-us/library/dd458809.aspx
25
Exemplo de solução no Visual Studio
Cada módulo independente é uma parte de composição
da interface.
http://www.codeplex.com/CompositeWPF/
26
Desafios do mundo real com SOA
Procure identificar o melhor cenário queatenda sua solução (web, intranet, restfull, b2b, web 2.0)
Escolha o template de serviço WCF/WF maisindicado, 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.
27
Desafios do mundo real com SOA
EntLib 4.1, Prism 2.0, Web Services Security Guidance, App Arch Guide 2.0 são ferramentasimportantes!
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!
28
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 usode serviços, assim como seus vários desafios.
Uma plataforma na nuvem estendefuncionalidades e recursos do ambiente local. Serviços estarão on-premise e off-premise.
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.
31
Artigos
Creating And Consuming Web Feeds, by Jon Flandershttp://msdn.microsoft.com/en-us/magazine/dd569753.aspx
An Introduction To RESTful Services With WCF, by Jon Flandershttp://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
32
RecursosWindows 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
33
Recursos (cont.)
ArqBR.Groupshttp://arqbr.groups.live.com/
ArqCasts no Channel9/Brasilhttp://channel9.msdn.com/brasil/
ebook Arquitetura de Soluçõeshttp://blogs.msdn.com/wcamb/archive/2009/10/01/ebook-sobre-arquitetura-de-solu-es.aspx
Centro de Arquitetura MSDNhttp://msdn.microsoft.com/pt-br/architecture/default.aspx
34
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.