wsdl web services description language. tecnologias relacionadas web services soap (simple object...

25
WSDL Web Services Description Language

Upload: adelina-clementino-regueira

Post on 07-Apr-2016

224 views

Category:

Documents


1 download

TRANSCRIPT

WSDL

Web Services Description Language

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

Referências

[1] Seely, Scott. SOAP: Cross Platform, Web Services Development, Using XML. New York: Prentice Hall, 2002.

[2] W3C. Web Services Description Language (WSDL) 1.1, [online], 05/06/2002, http://www.w3.org/tr/2001/NOTE=wsdl-20010315.