|
|
|
|
|
WSDLWSDL son las siglas en inglés de "Lenguaje de Descripción de Servicios Web" (o "Web Services Description Language"), un lenguaje que está basado en XML y que permite la descripción de los servicios web desplegados. WSDL se utiliza también para la localización y ubicación de estos servicios en Internet. Un documento WSDL no es más que un documento XML que describe ciertas características propias de un servicio web, así como su localización y aquellos parámetros y métodos que soporta. Un documento WSDL define un servicio web utilizando a tal fin elementos XML, como:
Un documento WSDL tiene una estructura semejante a la siguiente: <definitions> Los puertos de WSDL<portType> es el elemento XML de WSDL que define el servicio web, así como las operaciones posibles mediante dicho servicio y los mensajes vinculados. <portType> cumple una función análoga a la de una función de biblioteca en programación clásica o a la de una clase en programación orientada a objetos. Los mensajes WSDLEl elemento message define los datos que participan en una operación. Cada mensaje puede tener una o varias partes, y cada parte puede considerarse como si fuera los parámetros que se pasan en la llamada a una función en programación clásica o un método en programación orientada a objetos. Los tipos de datos en WSDLMediante el elemento <types> se definen los tipos de datos utilizados en el servicio web. Para ello, WSDL utiliza XML Schema. Los vínculos en WSDL<binding> define el formato del mensaje y el protocolo para cada uno de los puerto. Ejemplo de un documento WSDL: <message name="obtTerminoDePet"> Vemos como el portType define terminosDeDiccionario como el nombre de un puerto y define obtTermino como el nombre de una operación. Esta operación tiene un mensaje de entrada (es decir, un parámetro) denominado obtTerminoDePet y un mensaje de salida (esto es, un resultado) denominado obtTerminoDeResp. Los elementos message definen los tipos de datos que están asociados a los mensajes. terminosDeDiccionario equivale en programación clásica a una librería de funciones; obtTermino equivale a una función, y obtTerminoDePet y obtTerminoDeResp equivalen respectivamente a los parámetros de entrada y salida. PuertosUn puerto define el punto de conexión a un servicio web. Es posible definirlo como una librería de funciones (en programación clásica) o una clase (en programación orientada a objetos). Puede compararse cada operación que esté definida para un puerto a una función en cualquier lenguaje de programación clásico. Tipos de operaciónExisten varios tipos de operación en WSDL. El tipo más frecuente es el denominado "de petición-respuesta". Disponemos, además, de:
Un ejemplo de operación de tipo unidireccional: <message name="valorNuevo"> En el ejemplo se define una operación unidireccional llamada terminoNuevo, que permite introducir nuevos términos en el diccionario. Utiliza un mensaje de entrada llamado valorNuevo, que maneja los parámetros "termino" y "valor". Sin embargo, no se ha definido salida alguna para la operación. Un ejemplo de operación de tipo petición-respuesta: <message name="obtTerminoDePet"> En el ejemplo se definen 2 mensajes, de entrada y de salida, para la operación obtTermino. EnlacesLos enlaces o vínculos de WSDL (también denominados "bindings") permiten la definición de los formatos de mensaje y de protocolo para los servicios web. Un ejemplo posible de enlace para una operación de tipo petición-respuesta para SOAP sería: <message name="obtTerminoDePet"> El elemento <binding> cuenta con 2 atributos: "name" y "type". Con "name" (se puede utilizar cualquier nombre, sin que coincida necesariamente con el utilizado en la definición de port) se define el nombre del vínculo, y el atributo "type" apunta al puerto del vínculo, que es, en este caso, terminosDeDiccionario. El elemento soap:binding cuenta con 2 atributos: "style" y "transport". "style" puede ser "rpc" o "document". En el ejemplo se ha utilizado "document". "transport" define qué protocolo SOAP se debe utilizar; en el ejemplo, HTTP. "operation" define las operaciones que proporciona el puerto. Para cada se debe especificar la acción SOAP que corresponda. También se debe especificar el método para codificar la entrada (o "input") y la salida (u "output"). En el ejemplo, la codificación es "literal". |
|
Los manuales titulados Introducción a las aplicaciones web, Instalación del servidor web y Servicios web han sido extraídos, con algunas modificaciones, del manual "Desarrollo de aplicaciones web", publicado por la UOC dentro de su máster de software libre, escrito por Carles Mateu i Piñol.
El manual tiene licencia GFDL, la cual otorga permiso para copiar, distribuir y modificar el documento según los términos de la GNU Free Documentation License, Version 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera.
Se puede acceder al documento original en: http://www.uoc.edu/masters/esp/img/873.pdf (versión imprimible) y http://www.uoc.edu/masters/esp/img/692.zip (versión editable, formato zip).
