Você está na página 1de 16

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

HTTP

+

XML

Integração de aplicações sobre a Internet HTTP + XML Diagrama: H. Voormann Autor: Osvaldo Santos

Diagrama: H. Voormann

Autor: Osvaldo Santos

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

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

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

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

Protocolo de comunicação baseado em XML que funciona sobre HTTP É simples e extensível Permite

Autor: Osvaldo Santos

Envelope Header Body Documento (payload) Fault
Envelope
Header
Body
Documento
(payload)
Fault

Envelope: é a raíz do documento soap e contém normalmente os namespaces e estilo de codificação

Header: cabeçalho opcional que pode conter informação adicional, por exemplo para os nós intermédios

Body: elemento obrigatório que 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

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

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

Pedido

<soap:Body> <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

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

Linguagem baseada en XML que permite descrever Web services Define a localização do Web service

Autor: Osvaldo Santos

WSDL – Estrutura das mensagens

portType message types binding
portType
message
types
binding

portType: descreve o web service, as operações que podem ser efectuadas e as mensagens envolvidas

message: define os dados envolvidos numa operação (mais ou menos equivalente aos parâmetros de funções 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

<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

<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

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

UDDI - Universal Description, Discovery and Integration É um directório para gerir informações sobre Web services

Autor: Osvaldo Santos

Autor: Osvaldo Santos

Autor: Osvaldo Santos

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