Upload
adelina-clementino-regueira
View
224
Download
1
Embed Size (px)
Citation preview
Tecnologias Relacionadas
• Web Services• SOAP (Simple Object Access Protocol)• HTTP (HyperText Markup Language)• UDDI (Universal Description, Discovery and Integration)• XML (eXtensible Markup Language)• XSD (XML Schema Documents)
WSDL
• Uma definição:
– A WSDL é uma especificação que permite descrever Web Services segundo um formato XML.
Descrição dos Serviços
• Através da descrição do Web Services o provedor de serviços publica as especificações necessárias para o cliente invocar um serviço.
Independência de plataforma
• O cliente não precisa saber qual a linguagem do programação ou plataforma de execução em que o provedor de serviços está baseado.
• A descrição do serviço em conjunto com a infra-estrutura SOAP adjacente encapsula detalhes tanto no lado do cliente quanto no lado do provedor.
WSDL e XML
• Um documento WSDL é um documento XML que descreve Web Services como um conjunto de pontos de serviço (endpoints) que operam baseados em trocas de mensagens.
• As operações e mensagens relativas a um serviço são descritas de forma abstrata e em seguida ligados a protocolos de rede e formatos de mensagens concretos como o objetivo de definir um ponto de serviço .
WSDL é extensível
• WSDL é uma linguagem extensível e permite a descrição de pontos de serviço e suas mensagens independentemente de que formato de mensagens ou protocolo de rede é utilizado na comunicação.
Arquitetura WS
• Camadas– Descoberta – Publicação (UDDI /direta)– Descrição dos serviços (WSDL)– Troca de Mensagens baseadas em XML (SOAP)– Rede (HTTP, SMTP, FTP)
Interface e Implementação
• O uso de WSDL na arquitetura de Web Services é em geral dividido em duas partes:– interface do serviço – implementação do serviço.
• Cada parte pode ser definida de maneira independente e conseqüentemente reutilizada por outras aplicações.
Interface de Serviço
• Especificação de interface de serviço é uma descrição de serviço reutilizável que pode ser instanciada e implementada por diferentes implementações de serviços.
• Semelhante a IDL (CORBA).
Elementos da Interface de Serviço• Tipos (types)
– Definem os tipos de dados que são utilizados para descrever as mensagens. Para melhor interoperabilidade e independência de plataforma indica-se o uso de XSD (XML Schema Documents)
<types> <schema targetNamespace="http://example.com/stockquote.xsd“ xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all> <element name="tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice"> ...
</element> </schema>
</types>
• Mensagens (message) – Representam uma definição abstrata dos dados
que serão transmitidos. Uma mensagem é composta por diferentes partes lógicas que estão associadas com uma definição contida em um sistema de tipos.
<message name=“itemInformation”><part name=“theElement” element=“aliarForItem” />
</message>
Elementos da Interface de Serviço
• Tipos de portas (portType) – São conjuntos de operações abstratas, cada uma
contendo mensagens de entrada e saída..... > <portType name="StockQuotePortType">
<operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation>
</portType> ...
Elementos da Interface de Serviço
• Operações (operation) – Definição abstrata de uma ação que um serviço
pode executar.... > <portType name="StockQuotePortType">
<operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation>
</portType> ...
Elementos da Interface de Serviço
• Ligações (binding) – Especificam protocolos concretos além de especificações
de formatação de dados para as operações e mensagens definidas em um tipo de porta particular.
– <binding name="StockQuoteSoapBinding“ type="tns:StockQuotePortType"> <soap:binding style="document“ transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding>
Elementos da Interface de Serviço
Implementação do Serviço
• A implementação de serviço é um documento WSDL que descreve como uma interface particular é implementada por um determinado provedor de serviços. Os elementos que fazem parte da implementação do serviço são ports e services.
Implementação do Serviço
• Porta (port) – Especifica um endereço para uma ligação,
definindo então um endpoint único. <port name="StockQuotePort“
binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/></port>
Implementação do Serviço
• Serviço (service)– Modela um Web Service agregando um
conjunto de portas relacionados entre si. <wsdl:definitions .... >
<wsdl:service name="nmtoken"> <wsdl:port .... /> </wsdl:service>
</wsdl:definitions>
WSDL
• As definições de interface e implementação de serviços podem fazer parte de um mesmo documento WSDL .
• Um documento WSDL contém elementos que possuem significado para um Web Service.
Elementos da WSDL para seu XSD
definitions documentation message portTypeinput outputfault operationservice bindingport
Estrutura de um Documento WSDL
• Um documento WSDL é um conjunto de definições. Há um elemento “definitions” na raiz e outras definições no interior
This example uses a fixed XML format instead of the SOAP encoding Example 1 SOAP 1.1 Request/Response via HTTP [2]
<?xml version="1.0"?> <definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl“ xmlns:tns="http://example.com/stockquote.wsdl“ xmlns:xsd1="http://example.com/stockquote.xsd“ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/“ xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetNamespace="http://example.com/stockquote.xsd“ xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType> <all> <element name="tickerSymbol" type="string"/> </all> </complexType> </element> <element name="TradePrice">
Definitions:Define a raiz do
documento WSDL
types:Define os tipos de dados que serão utilizados para
trocar mensagens
types:Indica-se o
padrão XSD
Cont.
<element name="TradePrice"> <complexType> <all> <element name="price" type="float"/> </all> </complexType> </element> </schema> </types> <message name="GetLastTradePriceInput"> <part name="body" element="xsd1:TradePriceRequest"/> </message> <message name="GetLastTradePriceOutput"> <part name="body" element="xsd1:TradePrice"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <fault name= “..... /> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType>
message:Definição abstrata dos dados enviados
e recebidos
portType:Define um conjunto de
operações disponíveis em uma determinada portaoperation:
Nomeia as operações de entrada e saída e ainda podem descrever erros
(fault)
fault:Leyout de retorno de qualquer falha
Cont.
<binding name="StockQuoteSoapBinding“ type="tns:StockQuotePortType"> <soap:binding style="document“ transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first service </documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address location="http://example.com/stockquote"/> </port> </service> </definitions>
binding:Especifica o protocolo e o
formato de dados para operações e mensagens
definidas por uma portTypeInput/output:Descreve os elementos que
uma operação usa como parâmetros de entrada e
saída
service:Modela um Web Services agregando um conjunto de
portas relacionadasdocumentation:
Textos ou elementos adicionais, informativos,
utilizados para documentação
port:Especifica o
endereço de um binding