Páginas filhas
  • 4. WSDL(Web Services Description Language)

é uma linguagem baseada em XML utilizada para descrever Web Services funcionando como um contrato do serviço. Trata-se de um documento escrito em XML que além de descrever o serviço, especifica como acessá-lo e quais as operações ou métodos disponíveis.

Foi submetido ao W3C por Ariba, IBM e Microsoft em março de 2001 sendo que seu primeiro rascunho foi disponibilizado em julho de 2002.

A versão atual é 2.0; a versão 1.1 não foi endossada pelo W3C. O WSDL 1.2 foi renomeado para 2.0 e aceita todos os métodos de requisição HTTP (não apenas GET e POST).

WSDL é utilizado para definir serviços como uma coleção de endpoints (endereços de rede), ou portas. A definição abstrata de portas e mensagens são separadas do uso concreto de instâncias, permitindo o reuso de definições. Uma porta é definida por associação a um endereço de rede com um binding reutilizável, e uma coleção de portas definidas como serviço. Mensagens são descrições abstratas dos dados a serem trocados.

Recursos são expostos pelo Web Services Interoperability (WS-I Basic Profile) e framework WSRF.

Indice

Composição do WSDL


Serviço


Pode ser visto como um container para conjunto de funções de sistema que foram expostos a protocolo baseado em web;

Porta


Não é nada além da definição do endereço ou ponto de conexão para o Web Service. É representado tipicamente por uma URL simples com http;

Binding


Especifica a interface, define o estilo de SOAP binding (RPC ou Document) e transporte (protocolo SOAP). Seções de binding também definem as operações;

Tipo de porta


O elemento define um web service, as operações que podem ser executadas, e as mensagens trocadas para executar a operação;

Operação


Cada operação pode ser comparada à um método ou chamada de função em uma linguagem de programação tradicional. Aqui as ações soap são definidas e o tipo de mensagem é codificado;

Mensagem


Tipicamente, uma mensagem corresponde a uma operação. A mensagem contém as informações necessárias para executar a operação;

Elemento


Definidos com a tag, consistem em um nome único e tipo de dado. Seu propósito é descrever um dado e definir uma tag que delimite os dados enviados;

Arquivos XSD


Elementos podem ser definidos em um esquema XML - XSD (XML Schema Definition). Pode estar no mesmo arquivo WSDL ou em arquivo separado.

Exemplo


<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://jaxws.eaimock.bruno.totvs.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://jaxws.eaimock.bruno.totvs.com/" name="EAIService">
	<types/>
	<message name="receiveMessage">
		<part name="xml" type="xsd:string"/>
	</message>
	<message name="receiveMessageResponse">
		<part name="return" type="xsd:string"/>
	</message>
	<portType name="EAIService">
		<operation name="receiveMessage">
			<input message="tns:receiveMessage"/>
			<output message="tns:receiveMessageResponse"/>
		</operation>
	</portType>
	<binding name="EAIServicePortBinding" type="tns:EAIService">
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
		<operation name="receiveMessage">
				<soap:operation soapAction=""/>
				<input>
						<soap:body use="literal" namespace="http://jaxws.eaimock.bruno.totvs.com/"/>
				</input>
				<output>
						<soap:body use="literal" namespace="http://jaxws.eaimock.bruno.totvs.com/"/>
				</output>
		</operation>
	</binding>
	<service name="EAIService">
		<port name="EAIServicePort" binding="tns:EAIServicePortBinding">
				<soap:address location="http://touros:80/eaimock-webservice/services/eai"/>
		</port>
	</service>
</definitions>

Para saber mais


http://www.w3schools.com/xml/xml_wsdl.asp

https://www.w3.org/TR/wsdl

http://www.service-architecture.com/articles/web-services/web_services_description_language_wsdl.html