Você está na página 1de 16

Web Services

Integração de aplicações sobre a Internet

HTTP
+
XML
Diagrama: H. Voormann

Autor: Osvaldo Santos


Exemplo prático usando HTTP (sem SOAP)
http://ws.cdyne.com/ip2geo/ip2geo.asmx?op=ResolveIP

GET http://ws.cdyne.com/ip2geo/ip2geo.asmx/ResolveIP?ipAddress=193.137.66.129&licenseKey=0 HTTP/1.1


Host: ws.cdyne.com

<?xml version="1.0" encoding="utf-8"?>


<IPInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://ws.cdyne.com/IP2Geo">
<City>Castelo Branco</City>
<StateProvince>06</StateProvince>
<Country>Portugal</Country>
<Latitude>39.816696166992188</Latitude>
<Longitude>-7.5</Longitude>

<AreaCode>0</AreaCode>
<Certainty>90</Certainty>
</IPInformation>

Autor: Osvaldo Santos


Web Services: motivação

• Suponha que uma determinada aplicação necessita de:


– Conhecer em tempo real as cotações de diversas moedas
estrangeiras
– Receber pagamentos por cartão de crédito
– Enviar mensagens SMS
– Saber a localização geográfica dos clientes pelo seu IP
– Conhecer em tempo real a cotação de acções
– Conhecer em tempo real os preços de produtos

• Uma solução: Web services


• Serviços fornecidos por entidades externas, sendo
geralmente pagos
Autor: Osvaldo Santos
Web Services: introdução

• O W3C define Web services como “um sistema de


software concebido para suportar interacções entre
máquinas diferentes sobre uma rede”

• Baseia-se em três tecnologias fundamentais:


– SOAP - Simple Object Access Protocol
– WSDL - Web Services Description Language
– UDDI - Universal Description, Discovery and
Integration

Autor: Osvaldo Santos


SOAP - Simple Object Access Protocol

• Protocolo de comunicação
baseado em XML que funciona
sobre HTTP
• É simples e extensível
• Permite a comunicação entre
aplicações diferentes
• Basicamente define formatos
para o envio de mensagens
• É independente da plataforma,
sistema operativo, aplicação e
linguagem
• Passa facilmente através de
firewalls
Autor: Osvaldo Santos
SOAP – Estrutura das mensagens

• Envelope: é a raíz do documento


Envelope soap e contém normalmente os
namespaces e estilo de codificação
Header
• Header: cabeçalho opcional que
Body pode conter informação adicional,
Documento por exemplo para os nós intermédios
(payload)
• Body: elemento obrigatório que
Fault contém o documento a ser enviado
para o destino final
• Fault: elemento usado para
transportar informação de erros ou
estado

Autor: Osvaldo Santos


SOAP – estrutura de uma mensagem em XML
<?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:Header>
...
</soap:Header>

<soap:Body>
...
<soap:Fault>
...
</soap:Fault>
</soap:Body>

</soap:Envelope>
Autor: Osvaldo Santos
SOAP – exemplo de mensagens
<?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>
Pedido <m:GetPrice xmlns:m="http://www.w3schools.com/prices">
<m:Item>Apples</m:Item>
</m:GetPrice>
</soap:Body>

</soap:Envelope>

<?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">

Resposta <soap:Body>
<m:GetPriceResponse xmlns:m="http://www.w3schools.com/prices">
<m:Price>1.90</m:Price>
</m:GetPriceResponse>
</soap:Body>

</soap:Envelope>
Autor: Osvaldo Santos
WSDL - Web Services Description Language

• Linguagem baseada en XML


que permite descrever Web
services

• Define a localização do Web


service e as operações (ou
métodos) que este providencia

• A versão WSDL 2.0 é uma


recomendação W3C desde
Junho de 2007

Autor: Osvaldo Santos


WSDL – Estrutura das mensagens

• portType: descreve o web service, as


operações que podem ser efectuadas e
as mensagens envolvidas
portType
message
• message: define os dados envolvidos
numa operação (mais ou menos
types equivalente aos parâmetros de funções
binding nas linguagens de programação)
• types: define os tipos de dados usados
no Web service
• binding: define o formato das
mensagens e detalhes do protocolo de
cada port

Autor: Osvaldo Santos


WSDL – exemplo de parte de um documento WSDL

<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>

<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>

<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>

Fonte: w3c Autor: Osvaldo Santos


WSDL – exemplo de binding

<binding type="glossaryTerms" name="b1">


<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation>
<soap:operation
soapAction="http://example.com/getTerm"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>

Fonte: w3c Autor: Osvaldo Santos


WSDL – tipos de operações

• One-way: a operação recebe um pedido mas não devolve


uma resposta
• Request-response: a operação recebe um pedido e devolve
uma resposta
• Solicit-response: a operação pode enviar um pedido e
espera por uma resposta
• Notification: a operação pode enviar uma mensagem e não
espera por uma resposta

Autor: Osvaldo Santos


UDDI - Universal Description, Discovery and
Integration
• É um directório para gerir
informações sobre Web
services disponíveis na Internet
• Usa os dados disponibilizados
em documentos WSDL de Web
services
• Permite aos clientes encontrar
Web services disponibilizados
por fornecedores e saber as
formas de interagir com eles

Autor: Osvaldo Santos


UDDI – Exemplo: directório eSigma

Autor: Osvaldo Santos


Especificações adicionais
•WS-Security: define a utilização das tecnologias XML
Encryption e XML Signature para garantir a segurança da troca de
mensagens SOAP (a alternativa é usar HTTPS)

•WS-Reliability: um protocolo para garantir fiabilidade na troca de


mensagens entre Web services (proposto pela OASIS)

•WS-ReliableMessaging : um protocolo para garantir fiabilidade


na troca de mensagens entre Web services (proposto pela
Microsoft, BEA e IBM)

•WS-Addressing: uma forma de descrever o endereço de origem e


destino das mensagens SOAP

•WS-Transaction: procedimentos para o processamento de


transacções
Autor: Osvaldo Santos

Você também pode gostar