You are on page 1of 56

Joo

Santanna Camila Brito

1. 2. 3.

Introduo Web Services Servios Web Arquitetura


1. 2. 3. 4.

4. 5. 6.

Servio de Diretrio Coordenao Referncias

Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)

Fornece uma forma uma infra-estrutura para manter uma forma mais rica e mais estruturada e interoperabilidade entre clientes e servidores. Cliente e servidores podem interagir sem superviso humana. Servios web no podem ser acessados diretamente pelos navegadores. Usam requisies HTTP para provocar a execuo de um programa

Servios web podem ser fornecidos por servidores web, porem seus servidores no precisam ser servidores web. Servidor web != servios web ( web services)
Servidor web : servio de http bsico Servio web : Servios baseados nas operaes denidas

na sua interface...

1. 2. 3.

Introduo Web Services Servios Web Arquitetura


1. 2. 3. 4.

4. 5. 6.

Servio de Diretrio Coordenao Referncias

Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)

Registro (Repositrio) Busca o servio Publica a interface Descrio e localizao do servio Invoca servio Provedor do servio(servidor) Resposta Consumidor do servio ( cliente) [1]

O servio web denido pela sua interface A Interface consiste em um conjunto de operaes que podem ser usadas por um cliente na internet A principal caracterstica da maioria dos servios web processar mensagens SOAP formatadas em XML Uma alternativa ao SOAP a estratgia REST. Cada servio web usa sua prpria descrio para tratar das caractersticas especcas das mensagens que recebe.

Servios web podem ser combinados :


Podemos juntar um conjunto de servios que

combinados oferecem servios com muito mais funcionalidades que os servios operando isoladamente.

Quanto ao padro de comunicao :


Em geral os servios web usam o padro

requisio e resposta sncrona. Mensagens assncronas tambm so possveis

1. 2. 3.

Introduo Web Services Servios Web Arquitetura


1. 2. 3. 4.

4. 5. 6.

Servio de Diretrio Coordenao Referncias

Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)

Aplicaes Servio de Diretrio Servios Web Segurana Coreograa

Descries de Servio(em WSDL)

SOAP

URIs (URLs ou URNs)

XML

HTTP, SMTP ou outro transporte [2]

URI (Uniform Resource Identier)


URL Inclui informaes de localizao do recurso.

Requisio HTTP XML

Ex: Nome de domnio do servidor de um recurso que est sendo nomeado URN Independentes da localizao, contam com um servio de pesquisa para fazer o mapeamento para os URLs dos recursos

Representao de dados Empacotamento de mensagens

Acessa Web Service URI Cliente HTTP, SMTP, TCP, UDP SOAP Mensagem XML

Fonte: Autor

1. 2. 3.

Introduo Web Services Servios Web Arquitetura


1. 2. 3. 4.

4. 5. 6.

Servio de Diretrio Coordenao Referncias

Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)

Aplicaes Servio de Diretrio Servios Web Segurana Coreograa

Descries de Servio(em WSDL)

SOAP

URIs (URLs ou URNs)

XML

HTTP, SMTP ou outro transporte [2]

Simple Object Access Protocol. Extenso do XML-RPC da userland. HTTP, SMTP, TCP ou UDP meio de transporte para uma mensagem SOAP Especica:
Como representar o contedo de mensagens individuais com

XML Combinao de mensagens para produo de padro de requisio e resposta Regras de processamento de XML Como HTTP e SMTP devem ser usados para comunicar mensagens SOAP

Mensagens SOAP:
Uma mensagem transportada em um envelope SOAP Dentro do envelope temos um cabealho opcional e um corpo. Tanto o cabealho quanto o corpo possuem elementos

internos

envelope cabealho
Elemento do cabealho

corpo
Elemento do corpo
[2]

Mensagens SOAP:
Os cabealhos das mensagens podem ser usados para

estabelecer o contexto necessrio para um servio, ou para manter um log de auditoria. Um intermedirio pode interpretar e atuar sobre as informaes presentes nos cabealhos das mensagens O corpo da mensagem transporta um documento XML para um ws particular. Os elementos XML envelope, cabealho e corpo , juntamente com outros atributos e elementos de SOAP, so denidos como um esquema de espao de nomes XML do protocolo SOAP

Mensagens SOAP:
Uma mensagem SOAP pode ser utilizada para transmitir um

documento ou para suportar comunicao cliente servidor. Um documento a ser comunicado colocado diretamente dentro do elemento corpo, junto com uma referncia a um esquema XML contendo a descrio do servio ( que dene os nomes e tipos usados no documento). Esse tipo de mensagem pode ser enviado de maneira sncrona ou de forma assncrona. Para comunicao cliente / servidor , o elemento corpo contm uma requisio( request ) ou uma resposta (reply) .

R E Q U E S T

env:envelope env:body

xmlns:env =namespace URI for SOAP envelopes

m:exchange

xmlns:m = namespace URI of the service description


m:arg1 Hello m:arg2 World

R E S P O N S E

env:envelope env:body

xmlns:env =namespace URI for SOAP envelopes

m:exchangeResponse

xmlns:m = namespace URI of the service description


m:arg1 Hello m:arg2 World

[2]

Cabealhos SOAP:
Se destinam a serem utilizados por intermedirios para

adicionar funcionalidades no servio que trata da mensagem transportada no corpo correspondente. Entretanto 2 aspectos dessa utilizao no cam claros na especicao SOAP:
1 Questo : Como usar os cabealhos em um middleware de mais alto nvel, um cabealho poderia conter: Identicador de transao para uso em um servio de transao Identicador de mensagem para relacionar uma mensagem com outras Uma assinatura digital , nome de usurio etc...

Cabealhos SOAP:
Entretanto 2 aspectos dessa utilizao no cam claros na

especicao SOAP:

2 Questo: Como as mensagens sero direcionadas por meio de um conjunto de intermedirios para o destinatrio nal . Por exemplo uma mensagem http poderia ser redirecionada por meio de um encadeamento de servidores proxies , alguns dos quais poderiam assumir o papel SOAP.

Transporte SOAP: As mensagens SOAP so independentes do tipo de transporte usado. Seus envelopes no contm nenhuma referencia ao endereo de destino. Fica a cargo do http ( ou qualquer outro protocolo usado para transporte) especicar um endereo de destino.

POST /examples/stringer endpoint address Host: www.cdk4.net Content-Type: applica?on/soap+xml Ac?on: hCp://www.cdk4.net/examples/stringer#exchange <env:envelope xmlns:env= namespace URI for SOAP envelope <env:header> </env:header> <env:body> </env:body> </env:Envelope>

ac-on

Os cabealhos http especicam o endereo do ponto nal (o URI do receptor nal) e a ao a ser executada O Parmetro action se destina a otimizar o envio revelando o nome da operao sem analisar a mensagem SOAP.
[2]

Soap message

HTTP header

Transporte SOAP: Como o protocolo http sincrono ele usado para respostas ( http get) a uma solicitao SOAP( http post). A separao da denio do envelope SOAP das informaes sobre como e para onde elas devem ser enviadas torna possvel usar uma variedade de protocolos subjacentes diferentes. Mas essa vantagem tambm uma desvantagem. Isso implica que o desenvolvedor deve estar envolvido nos detalhes do protocolo de transporte escolhido.

Exemplo de cdigo de request ( HTTP POST)


POST /InStock HTTP/1.1 Host: www.example.org Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPrice> <m:StockName>IBM</m:StockName> </m:GetStockPrice> </soap:Body> </soap:Envelope> [3]

Exemplo de cdigo de Response ( HTTP GET)


HTTP/1.1 200 OK Content-Type: application/soap+xml; charset=utf-8 Content-Length: nnn <?xml version="1.0"?> <soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> <soap:Body xmlns:m="http://www.example.org/stock"> <m:GetStockPriceResponse> <m:Price>34.5</m:Price> </m:GetStockPriceResponse> </soap:Body> </soap:Envelope> [3]

Comunicao convel: Os WSs no possuem um protocolo que envie mensagem de maneira convel ( TCP ). Foram feitos alguns trabalhos nesse sentido para fornecer comunicao conavel de mensagens SOAP com distribuio garantida , sem duplicao e com ordem de mensagens asseguradas. Duas especicaes concorrentes foram fornecidas por Ferris e Langworthy(2004) e Evans et al.(2003).

Avanos no endereamento e no direcionamento do protocolo SOAP: Desaos:


Como tornar o SOAP independente do Transporte subjacente usado Como especicar uma rota a ser seguida por uma mensagem SOAP por

WS- Routing( Nielsen e Thatte , 2001)

meio de um conjunto de intermedirios

Passando por rewalls: Os servios web se destinam a serem usados por clientes de uma organizao que acessam servidores de outros pela internet. Organizaes costuma utilizar rewalls para ltragens de trafego No geral os rewalls permitem a passagem de trafego http e SMTP Isso torna o uso de WS conveniente .

SOAP com JAVA: API java para desenvolvimento de WS = JAX RCP Oculta todos os detalhes do protocolo SOAP tanto de clientes como de servios A implementao do servio executada com um servlet dentro de um container servlet O continer inclui um despachante(dispatcher) e Skeletons

SOAP com JAVA:


client process Request server process

client program

client stub procedure Communication module

Reply

server stub procedure Communication dispatcher module service procedure

[2]

SOAP com JAVA: Outra opo popular para a implementao de WS em java o projeto Axis da apache software foundation O Apache Axis um framework de cdigo aberto, baseado na linguagem Java e no padro XML, utilizado para construo de web services no padro SOAP. Alm da verso para Java, existe uma implementao baseada na linguagem C++. O Axis disponibiliza dois modos para "expor" os mtodos de uma classe atravs de web services. O modo mais simples utiliza os arquivos JWS (Java Web Service) do Axis.

SOAP com JAVA: Outro mtodo utiliza um arquivo WSDD (Web Service Deployment Descriptor), que descreve com detalhes como sero criados os web services a partir dos recursos (classes Java) existentes. Tambm possvel, atravs do Axis, gerar automaticamente o arquivo WSDL (Web Service Description Language)

1. 2. 3.

Introduo Web Services Servios Web Arquitetura


1. 2. 3. 4.

4. 5. 6.

Servio de Diretrio Coordenao Referncias

Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)

RMI: Cliente usa uma referncia de objeto

remoto para invocar uma operao em um objeto remoto Servio web: Cliente usa URI para invocar uma operao no recurso nomeado por esse URI Servios web no podem criar instncias de objetos remotos Servios web no suportam servants

1. 2. 3.

Introduo Web Services Servios Web Arquitetura


1. 2. 3. 4.

4. 5. 6.

Servio de Diretrio Coordenao Referncias

Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)

Aplicaes Servio de Diretrio Servios Web Segurana Coreograa

Descries de Servio(em WSDL) Descries de Servio(em WSDL) SOAP

URIs (URLs ou URNs)

XML

HTTP, SMTP ou outro transporte [2]

Denies de Interface: so necessrias para permitir que os clientes se comuniquem com os servios Em WS, as denies de interface fazem parte de uma descrio servio mais geral que especica duas caractersticas adicionais:

Como as mensagens devem ser comunicadas O URI do servio

A descrio de servio forma um acordo entre cliente e servidor quanto ao servio oferecido So usadas para gerar stubs de cliente

Um servio pode ser especicado em termos dos tipos de mensagens que enviar e receber, ou em termos das operaes que suporta A escolha do mtodo de comunicao do provedor de servio, portanto especicado na descrio do servio URI especicado dentro da descrio de servio
Evita servio vinculador ou atribuio de nomes separado URI no pode ser alterado aps publicao da descrio URN aceita a troca de local Procedimento indireto no

nvel da referncia

message name = ShapeList_newShape

types: Web Services Description Language) message: descrio omes de destino WSDL (conjunto de ndo conjunto de part name = GraphicalObject_1 part name = mensagens a serem trocadas = result Utiliza XML type tns:GraphicalObject type = xsd:int Separa parte abstrata da parte concreta

message name=ShapeList_newShapeResponse

definitions types message interface bindings services

[1]

Espao de nomes

Estilo de Estilo documento requisio-resposta abstrato

como concreto

onde

message name = ShapeList_newShape

Binding: escolha de protocolos message name=ShapeList_newShapeResponse Interface (portType): conjunto de operaes Service: escolha do endereo do ponto nal ou
part name = GraphicalObject_1 part name = result Cada operao deve especicar o padro de troca de type = tns:GraphicalObject type = xsd:int

do mensagens servidor

[1] [1] Nome definitions

definitions definitions types types types In-Out


In-Only

Mensagens enviadas por operation Servidor newShape name = Cliente Distribuio Mensagem de falha services interface bindings message services bindings message pattern = In-Out interface services interface bindings message Requisio Resposta Pode substituir Resposta Input m Requisio essage = tns:ShapeList_newShape Nenhuma mensagem de falha Pode substituir Resposta

Espao de nomes output de como Estilo Robust In-Only Requisio message = tns:ShapeList_newShapeResponse Garantida Pode ser enviada Espao de nomes Estilo de como Estilo Estilo Espao de nomes documento requisio-resposta Estilo de Estilo documento requisio-resposta Out-In Resposta Requisio documento requisio-resposta abstrato abstrato Out-Only Requisio abstrato
Robust Out-Only Requisio Garantida

como

onde onde onde

concreto Nenhuma mensagem de falha concreto


Pode ser enviada

concreto

binding name = ShapeListBinding type = tns:ShapeList service soap: binding transport=URI de n ame= MyShapeListService esquemas para estilo soap/http style = rpc end point name = ShapeListPort operation binding = tns:ShapeListBinding name = newShape input soap:address location = service URI soap: body encoding, namespace output soap:body encoding, namespace soap: operation soapAction [2]

1. 2. 3.

Introduo Web Services Servios Web Arquitetura


1. 2. 3. 4.

4. 5. 6.

Servio de Diretrio Coordenao Referncias

Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)

Aplicaes Servio de Servio de Diretrio Segurana Coreograa Diretrio Servios Web Descries de Servio(em WSDL)

SOAP

URIs (URLs ou URNs)

XML

HTTP, SMTP ou outro transporte [2]

Tornar disponvel os servios para os clientes UDDI (Universal Directory and Discovery Service)
Servio de nome (catlogo telefnico organizao) Servio de diretrio (pginas amarelas categoria) Dados so organizados em 4 estruturas que podem

Estrutura de dados

ser acessadas individualmente por meio de um identicador (chave)

businessEntity Informaes legveis para seres humanos sobre o anunciante do servio chave

businessServices businessServices businessServices bindingTemplate Informaes legveis para seres humanos bindingTemplate sobre uma famlia bindingTemplate de servios Informaes sobre as interfaces de servio chave chave

tModel tModel tModel Descries de servio

[2]

Pesquisa (lookup)

Publicao Registros

Get_xxx entidade correspondente a uma chave Find_xxx conjunto de entidades Noticao / assinatura Chave em forma de URI. Ex: uddi:cdk4.net:213 Um ou mais servidores UDDI, cada um com cpia do mesmo conjunto

de dados Dados replicados entre os membros de um registro Cada um deles pode responder s consultas e publicar informaes Alterao de uma estrutura de dados deve ser enviada ao seu proprietrio Esquema de replicao Interao entre servidores

1. 2. 3.

Introduo Web Services Servios Web Arquitetura


1. 2. 3. 4.

4. 5. 6.

Servio de Diretrio Coordenao Referncias

Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)

Aplicaes Servio de Diretrio Servios Web Segurana Coreograa

Descries de Servio(em WSDL)

SOAP

URIs (URLs ou URNs)

XML

HTTP, SMTP ou outro transporte [2]

[4]

Coordenao: um termo utilizado para descrever aspectos da criao de composio de WS Composio um conjunto de WS que colaboram entre si. O termo empregado para representar processos de negcio. Um processo de negocio um conjunto de passos parcialmente ordenados, cujo objetivo uma determinada meta. A coordenao descreve como um WS pode interagir com outros WS WS-Coordination modelo geral para coordenao de servios web

Coreograa: se refere a uma linguagem baseada na WSDL para denir a coordenao Suportar interaes entre servios web gerenciados por diferentes organizaes Fornecer uma descrio global de um conjunto de interaes. Essa descrio cria um contrato entre os participantes. O uso de coreograa comum por um conjunto de WS em colaborao deve resultar em servios mais robustos, com melhor interoperabilidade. Alm disso ca mais fcil desenvolver e integrar novos servios a partir da coreograa criada, tornando o servio global mais til. Choreography Denition Language

Orchestry: Outra forma opcional de trabalhar a coordenao de composies de WS. A orquestrao inclui o comportamento desejado da composio e a ordem das execues denidas a partir de uxos de controle que atravessam organizaes e aplicaes. A orquestrao sempre representa o uxo de eventos da composio a partir do ponto de vista de uma das partes envolvidas. A orquestrao precisa ser exvel e adaptvel para tratar com mudanas eventuais na composio. A exibilidade pode ser obtida realizando a separao entre a lgica do processo de composio e os WS usados.

Tal separao pode ser conseguida usando um motor (engine) de orquestrao. O motor cuida de todo o uxo de processos, chamando os WS apropriados e determinando as prximas etapas que sero executadas.

WS W S D L

1 2
3a 3b 3c
W S D L

WS

Servio de registro e pesquisa Servio de Segurana

WS

WS

[5]

1. 2. 3.

Introduo Web Services Servios Web Arquitetura


1. 2. 3. 4.

4. 5. 6.

Servio de Diretrio Coordenao Referncias

Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)

[1] Figura Participantes da arquitetura orientada a servios, Mendona, I. T. Marques. Abordagem segura de gerenciamento remoto para indstria de utilidades usando servios web, pg. 46, Florianpolis 2011. [2] G. Coulouris; J. Dollimore; T. Kindberg. Distributed systems: concepts and design. 2011 [3] Cdigo fonte http POST SOAP , http://www.w3schools.com/ soap/soap_example.asp, acesso dia 29 de Agosto 2011 [4] Figura de composicao de WS,http://devedge- temp.mozilla.org/viewsource/2002/soap-overview/ index_pt_br.html, acesso dia 29 de Agosto 2011. [5] Figura Orquestramento de WS, Brando, J. E. Malta. Composio de IDSs : Viabilizando o monitoramento de segurana em ambientes de larga escala, pg. 68, Florianpolis 2007.

You might also like