Wsdl concepto

3
Web Service: Definición, utilización y estructura del WSDL DEFINICIÓN WSDL (Web Services Description Language) es un protocolo basado en XML que describe los accesos al Web Service. Podríamos decir que es el manual de operación del mismo, porque nos indica cuáles son las interfaces que provee el Servicio web y los tipos de datos necesarios para su utilización. WSDL es el lenguaje propuesto por el W3C para la descripción de Servicios Web y permite describir la interfaz de un servicio web en un formato XML. Una de sus ventajas es que permite separar la descripción abstracta de la funcionalidad ofrecida por un servicio, es decir, de los detalles concretos del mismo, como puede ser el enlace a un protocolo de red o un formato de mensaje concreto que puede ser SOAP, HTTP o MIME. El WSDL describe los servicios Web a través de los mensajes que se intercambian entre el proveedor del servicio y el cliente. UTILIZACIÓN Los pasos que se realizan al consumir el servicio son los siguientes: 1. Lo primero que realiza el cliente al hacer una solicitud al servicio es tomar la definición del archivo WSDL. 2. El servidor entrega el fichero WSDL. Este archivo indica a la petición los métodos y propiedades de ese servicio que están disponibles. 3. El cliente hace la petición en el formato que espera el servidor según las especificaciones del fichero WSDL en el que se dice qué parámetros acepta y de qué tipo. 4. El servidor entrega el resultado de la consulta.

Transcript of Wsdl concepto

Page 1: Wsdl concepto

Web Service: Definición, utilización y estructura del WSDL

DEFINICIÓN

WSDL (Web Services Description Language) es un protocolo basado en XML que describe los accesos al

Web Service. Podríamos decir que es el manual de operación del mismo, porque nos indica cuáles son las

interfaces que provee el Servicio web y los tipos de datos necesarios para su utilización.

WSDL es el lenguaje propuesto por el W3C para la descripción de Servicios Web y permite describir la

interfaz de un servicio web en un formato XML. Una de sus ventajas es que permite separar la descripción

abstracta de la funcionalidad ofrecida por un servicio, es decir, de los detalles concretos del mismo, como

puede ser el enlace a un protocolo de red o un formato de mensaje concreto que puede ser SOAP, HTTP o

MIME.

El WSDL describe los servicios Web a través de los mensajes que se intercambian entre el proveedor del

servicio y el cliente.

UTILIZACIÓN

Los pasos que se realizan al consumir el servicio son los siguientes:

1. Lo primero que realiza el cliente al hacer una solicitud al servicio es tomar la definición del archivo WSDL.

2. El servidor entrega el fichero WSDL. Este archivo indica a la petición los métodos y propiedades de ese

servicio que están disponibles.

3. El cliente hace la petición en el formato que espera el servidor según las especificaciones del fichero

WSDL en el que se dice qué parámetros acepta y de qué tipo.

4. El servidor entrega el resultado de la consulta.

Page 2: Wsdl concepto

ESTRUCTURA

Un ejemplo de la estructura de un documento WSDL es el siguiente:

+ expand source

Donde:

Elemento

WSDL Descripción

<?xml

version=”1.0″>

Un documento WSDL es como cualquier documento XML y se basa en los

esquemas, por lo que debe comenzar con dicha etiqueta.

<definitions> Comienzo del documento, este tag agrupa a todos los demás elementos

<types> Se definen los tipos de datos utilizados en los mensajes. Se utilizan los tipos

definidos en la especificación de esquemas XML.

<message>

Se definen los métodos y parámetros para realizar la operación. Cada message

puede consistir en una o más partes (parámetros). Las partes pueden ser de

cualquiera de los tipos definidos en la sección anterior.

<portType>

Esta sección es la más importante, ya que definen las operaciones que pueden ser

realizadas, y los mensajes que involucran (por ejemplo el mensaje de petición y

el de respuesta).

<binding> Se definen el formato del mensaje y detalles del protocolo para cada portType.

En la etiqueta <definitions> podemos tener los siguientes atributos:

xmlnsc – Namespace al que pertenece el WSDL, http://schemas.xmlsoap.org/wsdl/

name – Podemos tener que el Servicio Web introduzca el nombre del propio servicio en el momento de crear

el WSDL.

Page 3: Wsdl concepto

En realidad, se utiliza la etiqueta <service name=”MiServicioWeb”> para indicar el nombre del servicio,

depende de la antigüedad del servicio y de la tecnología que se haya utilizado para crearlo.

Por tanto, dentro del árbol <service> podemos tener los siguientes atributos e hijos:

name – Como hemos dicho antes, éste atributo indica el nombre del Servicio Web.

<documentation> – Dentro del arbol del Servicio se puede abrir otra etiqueta para incluir una descripción del

servicio.

<port> – Aquí se indica la dirección y el tipo de acceso de los Servicios Web. Podría ser:

1. SOAP con <soap:address location=”http://localhost:8082/MiServicio/Servicio1.wsdl” />

2. HTTP GET con <http:address location=”http://localhost:8082/MiServicio/wsdl/Servicio.jsp” />

+ expand source

Los métodos y parámetros de recepción y entrega de información se envían en elementos con la

etiqueta <message>.

Los métodos se llaman Mensajes y, normalmente, suele haber al menos, uno de entrada y otro de salida.

Si tuviéramos un método llamado getDatos() que recibe un parámetro String con el apellido en el Servicio

Web, la forma de definirlo sería la siguiente:

+ expand source

Los parámetros se expresan de la siguiente forma, <part name=”param1″ type=”xsd:int” /> ó <part

name=”param2″ type=”xsd:float” /> y los tipos de datos que podemos utilizar en un WSDL son los mismos

que podemos usar en un XSD (Schema XML). También es posible definir clases en el servicio y devolver un

parámetro del tipo de esa clase, pero siempre hemos de devolver tipos de datos primarios. Aunque

devolvamos clases personalizadas por nosotros, dichas clases devolverán primitivos en sus métodos y

propiedades.

Para poder indicar si los parámetros son input o output, se utiliza la etiqueta <operation>, dónde se indica el

input message y el message de output. La colección de todas las operaciones (métodos) expuestos por un

servicio se llama portType y se definen dentro de WSDL con la etiqueta <portType>: