Você está na página 1de 27

Introdução aos Web Services

Disciplina: Programação Distribuída


Problemas
 Diferentes empresas tendem a utilizar diferentes tecnologias e
soluções.
 Grande problema para integrar todas essas soluções, de forma
automatizada. Algumas tecnologias não são interoperacionais.
 Uma solução para cada tecnologia tornaria isso inviável e caro.
 Mudança de provedor de serviços pede nova implementação.
Solução: Web Services
 Solução para o grande problema de integração visto
anteriormente.
 Independe de tecnologia, sistema operacional e plataforma.
 Qualquer aplicação pode chamar os serviços de outra
aplicação.
 Usam protocolos e padrões abertos, baseados em XML.
Definição Web Services
 Web Services pelo ponto de vista:

 Conceitual: seu emprego representa um modo de integrar


tarefas que compõem um processo de negócio através da
WEB, onde procedimentos estão interligados e são
independentes para atingir um resultado.

 Técnico: software de baixo acoplamento, reutilizável, com


componentes feitos para serem facilmente acessados pela
WEB.
Características Web Services
 Encapsulamento
 Implementações da função não são visíveis
externamente;
 Baixo grau de acoplamento
 Mudanças na implementação de uma função não implica
em mudança na invocação;
 Contratada
 Há informações públicas disponíveis sobre a função, que
possibilitam sua invocação.
Características Web Services
 Podem ser publicados, localizados e invocados através
da Internet;

 Independência
 de linguagem de programação;
 de sistema operacional;

 Fácil integração de sistemas heterogêneos


Características Web Services

 Utilização de protocolos padrões baseados em XML

 SOAP (Simple Object Access Protocol);


 WSDL (Web Services Description Language);
 UDDI (Universal Description, Discovery, and Integration
directory).
SOAP
 Simple Object Access Protocol;
 Protocolo de comunicação entre Web Services.
 Não é suficiente que clientes e fornecedores usem XML
 É necessário definir os tipos da informação que são trocadas; como a
informação é expressa em XML e como será enviada essa informação.
 Criado pela Microsoft em 1998
 Desenvolvido juntamente com IBM, Lotus e UserLand
 Independente de protocolo de transporte
 Protocolos disponibilizados: HTTP, SMTP, FTP, etc
 Mais comum: SOAP sobre HTTP
 Evita problemas com firewalls
SOAP
 Permite chamadas de método remoto e troca de
documentos.

SOAP
Cliente Web Service

SOAP

<? xml version=“1.0” ?>

<operation name=...>
<operation name=...>
SOAP
 Estrutura de uma mensagem SOAP
Define o conteúdo da mensagem e os vários
namespaces que são usados pelo resto da
mensagem.

Header contém
informações de
controle

Contém informação a respeito de métodos e


parâmetros a serem chamados ou respostas
enviadas.
SOAP
 Requisição através de uma mensagem SOAP

POST /soap/servlet/rpcrouter HTTP/1.0


Host: localhost:8070
Content-Type: text/xml
Content-Length: 461
SOAPAction: "“
SOAP
 Resposta a requisição
HTTP/1.1 200 OK
Content-Type: text/xml; charset=”utf-8”
Date: Thu, 08 Feb 2004 01:48:22 GMT
Server: Apache Connector [1.0]
Connection: close
Estilos de Mensagens SOAP

 RPC
 Sincronismo;
 Requisição SOAP é tal como uma chamada de método com
zero ou mais parâmetros;

 Messaging
 Assincronismo;
 Emissor envia uma mensagem SOAP e o receptor determina o
que fazer com ela.
WSDL

 Web Services Description Language

 Desenvolvido pela IBM, Microsoft e Ariba


 Versão 1.0 datada de 2000
 Mantido pela W3C
 World Wide Web Consortium (W3C)
 Focado no desenvolvimento de protocolos comuns
 “Com o objetivo de promover a evolução e assegurar a
interoperabilidade na Web”.
WSDL
 Um WSDL descreve a assinatura das operações
fornecidas por um web service, bem como sua localização,
protocolo utilizado e outras informações.
 Todo web service deve ter sua interface descrita em
WSDL.
 As mensagens SOAP são construídas a partir da
descrição dos serviços em WSDL.
 Uma descrição em WSDL é um documento XML,
podendo ser obtida de forma estática ou dinâmica pelos
clientes.
WSDL
 Estrutura:
<wsdl:definitions ...>
<wsdl:types/>
<wsdl:message name="GetFlightInfoRequest">
<wsdl:part name="airlineName" type="xsd:string"/>
<wsdl:part name="flightNumber" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="GetFlightInfoResponse">
<wsdl:part name="GetFlightInfoReturn“ type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="AirportServicePortType">
<wsdl:operation name="GetFlightInfo">
<wsdl:input message="intf:GetFlightInfoRequest"
name="GetFlightInfoRequest"/>
<wsdl:output message="intf:GetFlightInfoResponse"
name="GetFlightInfoResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AirportServicePortTypeSoapBinding"
type="intf:AirportServicePortType">
<wsdlsoap:binding style="rpc“
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="GetFlightInfo">
...
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AirportServicePortTypeService">
<wsdl:port
binding="intf:AirportServicePortTypeSoapBinding"
name="AirportServicePortType">
<wsdlsoap:address
location="http://acmetravel.com/travelservice"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
UDDI
 Universal Description Discovery and Integration;
 Usado para:
 Descrição, publicação e procura de serviços na WEB, de forma
padronizada.
 Necessário devido ao crescimento do número de Web
Services a serem considerados para a escolha e utilização.
Diretório Integrado
 Na perspectiva de quem utiliza, via navegador Web,
UDDIs podem ser considerados como motores de
pesquisa da Internet
 Porém com interfaces difíceis para o usuário humano, porém
vários sites fornecem meios mais simples para esses usuários.
 Existem APIs para disponibilização para desenvolvedores
interagirem com UDDIs
 Tanto publicação quanto busca a UDDI.
Conceitos Fundamentais - Comparação

Java RMI CORBA Web Services


Registro RMI Registry COS Naming UDDI
Descrição do Serviço Java IDL WSDL
Transporte Java RMI IIOP SOAP
Arquitetura Orientada a
Serviço ( SOA) & Web Services
SOA
 Todos os componentes de software são modelados como
serviços.
 Focada na interface do serviço (organizando-o)
 similar ao desenvolvimento baseado em componentes, mas
focado na composição dos serviços invocados através de uma
rede;
 As aplicações SOA são fracamente acopladas, estando
integradas no nível de interface (contrato).
SOA x Web Services
 Embora freqüentemente usados em conjunto, esses dois
termos não são a mesma coisa.
 SOA
 Abordagem arquitetural que visa construir sistemas a partir de
um conjunto de componentes fracamente acoplados (serviços)
que podem ser combinados dinamicamente.
 Web Services
 Uma abordagem para construir uma SOA
 Refere-se a um conjunto de tecnologias baseadas em XML, que
podem ser usadas para a construção de uma SOA.
SOA
 Papéis:
 Provedor do serviço (provider)
 Solicitante do serviço (requestor)
 Registro do serviço (registry)
 Operações:
 Publish (registro)
 Find (busca)
 Bind (interação C/S)
Modelo de Implementação de WS
(3) Armazena a Serviço Web de
descrição de serviços Corretagem
como padrão e URL
(2) Registra e
Registro de publica o serviço
Serviços
Baseados
(4) Localiza serviços em UDDI
e informações de
utilização

(5) Solicita e obtém WSDL


Interface SOAP
Clientes SOAP
Serviço de Descrição WSDL
(6) Troca de dados usando SOAP RPC/Mensagem
Entrega
Webservice.com
Solicitante de Container de
Serviço
Web Services
(1) Cria interface proxy SOAP e Provedor de
serviço baseado em WSDL Web Services
Web Services em Java

API JAX-WS