lunes, 11 de enero de 2016

5.3.2 WSDL (Web Services Description Language). El Lenguaje de Descripción.

Un WSDL es la especificación estándar de funcionamiento y datos de un servicio Web XML. WSDL se maneja a través  de un contrato, conocido también como Service Description, que es un documento XML que contiene información relacionada al servicio Web  XML y los paquetes de datos que el servicio Web  XML maneja, tanto de entrada como de salida.
De cierta forma WSDL específica los datos requeridos por el servicio, su comportamiento, y sus datos de retorno; actúa como un contrato de intercambio de paquetes de datos entre el consumidor de servicios Web XML y el servicio Web XML.
WSDL también contiene las referencias a las direcciones asociadas con el servicio Web XML, mismas que dependerán del protocolo utilizado para consumir el servicio.
El documento WSDL es un documento XML; el elemento raíz es llamado definitions, y contiene cinco nodos hijos que muestran la forma en que está definido el servicio Web XML. Dichos elementos hijo son los siguientes:
  •  Types. Define los tipos de datos utilizados para el intercambio de mensajes entre el consumidor y el servicio.
  • Message. Describe los mensajes que serán comunicados entre el consumidor y el servicio.
  •  portType. Identifica el conjunto de operaciones que realiza el servicio, y los mensajes involucrados en dichas operaciones.
  •  Binding. Específica los detalles de protocolo para el intercambio de mensajes entre las operaciones, describiendo cómo traducir contenido abstracto a un formato estándar.
  •   Service. Agrupa aquellos puertos que estén relacionados, y que implementan un Web service.
  • Para generar un WSDL, se utiliza la utilería wsdl.exe con la siguiente sintaxis:
  •   Wsdl /l:Lenguaje /n:NombreNamespace URL_Servicio


Donde Lenguaje es el lenguaje que se desea utilizar, NombreNamespace es el nombre del espacio de nombres a generarse en el WSDL, y URL_Servicio es el URL del servicio Web XML a partir del cual se generará WSDL.
La ejecución de wsdl.exe sobre el servicio Web XML producirá un programa generado en el lenguaje especificado, que deberá ser compilado como librería para su uso programático. Dicho programa contendrá la misma funcionalidad del servicio Web XML, con todas las especificaciones descriptivas.
Este es un ejemplo de un documento WSDL donde <message> específica el mensaje individual XML que son transformados entre computadoras, en este caso “getWeatherRequest” and “getWeatherResponse”, y  <service> específica que el servicio esta disponible vía SOAP.
<?xml version="1.0" encoding="UTF8"?>
<definitions name="WeatherService"
targetNamespace="http://www.ecerami.com/wsdl/WeatherService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.ecerami.com/wsdl/WeatherService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<message name="getWeatherRequest">
<part name="zipcode" type="xsd:string"/>
</message>
<message name="getWeatherResponse">
<part name="temperature" type="xsd:int"/>
</message>
<portType name="Weather_PortType">
<operation name="getWeather">
<input message="tns:getWeatherRequest"/>
<output message="tns:getWeatherResponse"/>
</operation>
</portType>
<binding name="Weather_Binding" type="tns:Weather_PortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getWeather">
<soap:operation soapAction=""/>
<input>
     <soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:weatherservice" use="encoded"/>
</input>
<output>
    <soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:weatherservice" use="encoded"/>
</output>
</operation>
</binding>
<service name="Weather_Service">
<documentation>WSDL File for Weather Service</documentation>
<port binding="tns:Weather_Binding" name="Weather_Port">
<soap:address
location="http://localhost:8080/soap/servlet/rpcrouter"/>
</port>
</service>
</definitions>

No hay comentarios:

Publicar un comentario