34
1 Uma introdução sobre SOA Service Oriented Architecture Waldemir Cambiucci Arquiteto de Soluções Microsoft Brasil twitter.com/wcamb blogs.msdn.com/wcamb

AAB305 - Service Oriented Architecture - wcamb

Embed Size (px)

DESCRIPTION

Introdução ao SOA Service Oriented Architecture Autor: Waldemir Cambiucci Publicação: Outubro/2009

Citation preview

Page 1: 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

Page 2: AAB305 - Service Oriented Architecture - wcamb

2

Agenda

Visão Software + Serviços

Arquitetura Orientada a Serviços

Algumas questões sobre serviços

Conclusões

Recursos

Page 3: AAB305 - Service Oriented Architecture - wcamb

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.

Page 4: AAB305 - Service Oriented Architecture - wcamb

4

Page 5: AAB305 - Service Oriented Architecture - wcamb

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

Page 6: AAB305 - Service Oriented Architecture - wcamb

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)

+

Page 7: AAB305 - Service Oriented Architecture - wcamb

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

+

Page 8: AAB305 - Service Oriented Architecture - wcamb

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

Page 9: AAB305 - Service Oriented Architecture - wcamb

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!

Page 10: AAB305 - Service Oriented Architecture - wcamb

10

Serviços, orquestração, processos, aplicações de

composição, reuso…

Page 11: AAB305 - Service Oriented Architecture - wcamb

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;

Page 12: AAB305 - Service Oriented Architecture - wcamb

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

Page 13: AAB305 - Service Oriented Architecture - wcamb

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

Page 14: AAB305 - Service Oriented Architecture - wcamb

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

Page 15: AAB305 - Service Oriented Architecture - wcamb

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

Page 16: AAB305 - Service Oriented Architecture - wcamb

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

Page 17: AAB305 - Service Oriented Architecture - wcamb

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

Page 18: AAB305 - Service Oriented Architecture - wcamb

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

Page 19: AAB305 - Service Oriented Architecture - wcamb

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.

Page 20: AAB305 - Service Oriented Architecture - wcamb

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

Page 21: AAB305 - Service Oriented Architecture - wcamb

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!

Page 22: AAB305 - Service Oriented Architecture - wcamb

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.

Page 23: AAB305 - Service Oriented Architecture - wcamb

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

Page 24: AAB305 - Service Oriented Architecture - wcamb

24

Composite Application Guidance for WPFv2.0 – Fev.2009

Composite Application Guidance for WPF and Silverlighthttp://msdn.microsoft.com/en-us/library/dd458809.aspx

Page 25: AAB305 - Service Oriented Architecture - wcamb

25

Exemplo de solução no Visual Studio

Cada módulo independente é uma parte de composição

da interface.

http://www.codeplex.com/CompositeWPF/

Page 26: AAB305 - Service Oriented Architecture - wcamb

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.

Page 27: AAB305 - Service Oriented Architecture - wcamb

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!

Page 28: AAB305 - Service Oriented Architecture - wcamb

28

Page 29: AAB305 - Service Oriented Architecture - wcamb

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.

Page 30: AAB305 - Service Oriented Architecture - wcamb

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.

Page 31: AAB305 - Service Oriented Architecture - wcamb

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

Page 32: AAB305 - Service Oriented Architecture - wcamb

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

Page 33: AAB305 - Service Oriented Architecture - wcamb

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

Page 34: AAB305 - Service Oriented Architecture - wcamb

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.