Professional Documents
Culture Documents
1. 2. 3.
4. 5. 6.
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.
4. 5. 6.
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.
combinados oferecem servios com muito mais funcionalidades que os servios operando isoladamente.
1. 2. 3.
4. 5. 6.
Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)
SOAP
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
Acessa Web Service URI Cliente HTTP, SMTP, TCP, UDP SOAP Mensagem XML
Fonte: Autor
1. 2. 3.
4. 5. 6.
Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)
SOAP
XML
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
m:exchange
R E S P O N S E
env:envelope env:body
m:exchangeResponse
[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.
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).
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
client program
Reply
[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.
4. 5. 6.
Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)
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.
4. 5. 6.
Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)
XML
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:
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
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
[1]
Espao de nomes
como concreto
onde
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
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
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.
4. 5. 6.
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
XML
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
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
[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.
4. 5. 6.
Elementos Iniciais SOAP Web Services x Objetos Distribudos Descries de servio (WSDL)
SOAP
XML
[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
WS
WS
[5]
1. 2. 3.
4. 5. 6.
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.