Você está na página 1de 42

Arquitetura Orientada a Servios

A Evoluo de Estruturas Complexas a partir de Estruturas Simples

Neil Paiva Tizzo GEINFO - 2010

Objetivos

Apresentar a Arquitetura Orientada a Servios (SOA) como uma evoluo natural das tecnologias de desenvolvimento de sistemas distribudos Esboar os conceitos fundamentais de SOA Ilustrar as potencialidades de SOA

Histrico Evolutivo
Movimento dialtico entre presso e alvio Viabilidade econmica
Diminuir custo sem sacrificar a qualidade e a longevidade
Custo de Produo
Qualidade

Evoluo da Computao Distribuda

1. Fase
Cliente/Servidor DCE

2. Fase
CORBA DCOM EJB

3. Fase
MOM

4. Fase
SOA

Problemas das Tecnologias Anteriores


Protocolos proprietrios Falta de interoperabilidade Dependncia de plataforma Falta de flexibilidade Necessidade de desenvolvimento em tempo de Internet

Tpicos
O que SOA Servios Web Protocolo de Comunicao: SOAP Linguagem de Descrio: WSDL Registro de Servios: UDDI Composio de Servios: WS-BPEL

Service Oriented Architecture

O QUE SOA?

SOA Arquitetura Orientada a Servios


Arquitetura de TI para aplicaes do tipo pedidoresposta Funes de aplicao so modularizadas e apresentadas como servios Servios podem ser consumidos por outros servios Servios podem ser compostos

SOA: Caractersticas
Fraco Acoplamento

Composio

Reutilizao

Padronizao

Interoperabilidade

Ciclo de Vida de um SW
Provedor do Servio
4

Mapeia Interface
5 Usa

Cliente do Servio
3

Acha
Publica 1

Registro do Servio

Procura

SERVIOS WEB

Servios Web
Os SW so atualmente a tecnologia mais utilizada para a implementao da arquitetura SOA So otimizados para serem usados por outros programas e no por pessoas o uso ubquo de HTTP que possibilita a adoo dos Servios Web

Servios Web: Padres


Um SW um sistema de software identificado por uma URI, cujas interfaces pblicas e mapeamentos so definidos e descritos usando-se XML Os SW so baseados no seguintes padres:
Protocolo de comunicao: SOAP Linguagem de descrio: WSDL Registro de servios: UDDI Linguagem de composio: WS-BPEL

PROTOCOLO DE COMUNICAO SOAP

SOAP
Originalmente ele define um formato de documento XML que descreve como invocar um mtodo de um pedao remoto de cdigo Define uma forma de transmitir dados atravs de XML e de realizar RPC usando o HTTP como protocolo base Geralmente, SOAP usa o protocolo HTTP, mas outros tipos podem ser usados

Mensagem SOAP
Envelope SOAP Cabealho SOAP Corpo SOAP
o elemento mais elevado equivalente a um envelope do correio convencional

Autenticao Gerenciamento de transao Pagamento e outros

Consiste tipicamente de uma chamada RPC, resposta RPC ou cdigo de erro

Arquitetura do SOAP no Java


Servidor Web A solicitao RPC encaminhada a um objeto Java Processador SOAP Resposta RPC SOAP por HTTP A resposta RPC encaminhada ao processador SOAP Mquina 2

Solicitao RPC SOAP por HTTP Cliente SOAP Mquina 1

Java Virtual Machine Objeto Java

SOAP: Exemplo de Resposta


HTTP/1.1 200 OK Content-Type: text/xml;charset=UTF-8 X-Powered-By: Servlet/2.5 JSP/2.1 Date: Thu, 02 Sep 2010 21:43:32 GMT X-ORACLE-DMS-ECID: 0000IfKPtFxAxGWFLzaQOA1CW1dA000009 Content-Length: 237 X-HTTPAnalyzer-RuleName: Pass through : <?xml version = '1.0' encoding = 'UTF-8'?> <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Body> <ns2:aloVoceResponse xmlns:ns2="http://projetoalovoce/"> <return>Alo, Neil!</return> </ns2:aloVoceResponse> </S:Body> </S:Envelope>

Web Services Description Language

LINGUAGEM DE DESCRIO WSDL

WSDL
Linguagem XML que descreve a interface de um Servio Web Um documento WSDL define o nome de um Servio Web, os nomes de seus mtodos, os argumentos dos mtodos, protocolo de acesso etc. para os SW o que a IDL para o CORBA

<definitions> <types> Descrio dos tipos de dados </types> <messages> Parmetros de entrada e sada </messages> <portType> <operations> Descrio das mensagens de entrada e sada </operations> </portType> <binding> Descrio do protocolo de invocao </binding> <service>

Arquitetura do WSDL

<port> Referncia localizao do servio </port> </service> </definitions>

Universal Description, Discovery, and Integration

REGISTRO UDDI

UDDI
UDDI um repositrio para descrever, descobrir e integrar servios Esses servios no so necessariamente Web, ou at mesmo no esto relacionados a computadores So estruturados de maneira semelhante a um catlogo telefnico
Pginas brancas Pginas amarelas Pginas verdes tModel

Pginas Brancas
Informao sobre negcios
Nome Descrio do negcio
Potencialmente em vrios idiomas

Informao para contato


Endereo, telefone etc.

Pginas Amarelas
Classificao de servios e entidades de negcios baseada em taxonomias-padro
Standard Industrial Classification (SIC)
7361 = Services - Employment Agencies 7385 = Services - Telephone Interconnect Systems

Uma entidade de negcios pode fornecer vrios servios

Pginas Verdes
Informaes tcnicas sobre o servio Informaes sobre como o servio pode ser acessado Relacionadas aos Servios Web
Endereos Parmetros

No relacionadas aos Servios Web


E-mail FTP CORBA Telefone

tModels (Technical Model)


tModel associa uma descrio de interface a um mapeamento, por exemplo, WSDL Vrios mapeamentos podem se referir mesma interface (tModel)
O setor de transporte areo pode definir uma interface de reserva de passagens padro que pode ser implementada por vrias companhias

tModel: Modelo de Dados


<businessEntity businessKey=ABC>
<name>BBC</name> <description>

<businessService serviceKey=EFG businessKey=ABC>


<name>News</name>

</businessService>

</description>

</businessEntity>
<tModel tModelKey=QRS> <overviewDoc> <overviewRL> http://bbc.co.uk/news?wsdl> </overviewRL> </overviewDoc> </tModel>

<bindingTemplate bindingKey=KLM serviceKey=EFG>


<description>
Web Service

</description> <acessPoint>
http://bbc.co.uk/new

</acessPoint> <tModelInstanceDetails>
< tModelInstanceInfo tModelKey=QRS/>

</tModelInstanceDetails > </bindingTemplate>

APIs (Mensagens SOAP)


API Pesquisa Find things
find_business find_service find_binding find_tModel get_businessDetail get_serviceDetail get_bindingDetail get_tModelDetail

API Publicao Save things


save_business save_service save_binding save_tModel delete_business delete_service delete_binding delete_tModel

Get Details about things

Delete things

security
get_authToken discard_authToken

Web Service Business Process Execution Language

COMPOSIO DE SERVIOS WS-BPEL

Necessidade da Integrao
A composio de Servios Web a habilidade de um negcio em fornecer servios com valor agregado a seus clientes atravs da composio de servios bsicos possivelmente ofertados por diferentes companhias

Dificuldades da Integrao
Coordenar a comunicao assncrona entre servios Relacionar trocas de mensagens entre as partes Manipular/transformar dados trocados pelos parceiros Suportar atividades e transaes de negcios demoradas Prover tratamento de excees consistentemente Lidar com alto grau de autonomia e heterogeneidade dos servios

WS-BPEL
Linguagem de descrio de processos Ambiente de execuo de processos Alto desempenho na execuo de processos de longa durao Monitorao de processos e gerenciamento de ciclo de vida Ambiente para projeto de processos

BPEL: Exemplo de Processo


BPEL Process User

Partner PortType Link

<receive> Partner Link

<invoke>

PortType

Web Service

<reply>

WS-BPEL no JDeveloper

A Evoluo de Estruturas Complexas a Partir de Estruturas Simples


SC1 SC2 SC3 Servios Compostos

SA1

SA2

SA3

SA4

SA5

Servios Atmicos

Recursos do Sistema

CONSIDERAES FINAIS

Porque SOA?

Aplicaes de Servios Web


Comrcio eletrnico (e-Commerce) Negcio eletrnico (e-Business) Governo eletrnico (e-Government) Plataformas de Desenvolvimento
Java .NET

Servios Web Semnticos


Adio de semntica aos padres atuais de Servios Web ou mesmo o desenvolvimento de novos padres Uso de semntica para facilitar a composio manual Uso de semntica para permitir a composio automtica
Animal

Humano:Penlope eEsposaDe Humano:Ulisses

Anfbio

Mamfero

Rptil

Humano

Gato

Lagarto

=Pessoa

Neil Paiva Tizzo neil@pucpcaldas.br

SOA
O que a Web fez para a interao usurio-programa, os Servios Web faro para a interao programaprograma