Estándares de servicios Web
Fuente http://www.di.uniovi.es/~labra/cursos/Web20/ServiciosWeb.pdf
WSDL (Web Services Description Language)
Es la información XML para la descripción de servicios de red y de un conjunto de puntos finales donde se dan los detalles de la conexión. [4]
WSDL permite describir servicios web Respondiendo preguntas como:
¿Qué puede hacer el servicio? Métodos.
¿Dónde reside? Formato de datos y protocolo.
¿Cómo invocarlo? URI [1]
La relación que tiene este con SOAP es que precisamente los mensajes que describe WSDL son mensajes SOAP.
CARACTERITSITCAS [2]
ü Es una parte de UDDI para proporcionar directorios y descripciones en Internet.
ü Describe servicios de red basados en XML.
ü Proporciona un medio para solicitar peticiones web sin reparar en el protocolo subyacente (ej: SOAP).
ü Complementa SOAP.
ü Define los servicios como una colección de puntos finales de red o “puertos (ports)”.
ü Un conjunto de definiciones WSDL es un grupo de descripción de componentes que se aplican a un único espacio de nombres (“namespace”).
Contiene los siguientes elementos para definir servicios.
ü Types: Tipos de datos usados en los mensajes (XML).
ü Message: Son la definición abstracta (entre el servidor y el cliente) de los datos transmitidos, tanto los mensajes de entrada y salida.
ü PortType: Todas las operaciones abstractas que realiza, definiendo todos los mensajes a intercambiar entre el cliente y el servidor. Puede ser de los tipos (request-Response) en el cual por cada requerimiento se envía una respuesta, (One-Way) Donde el web Service sólo recibe requerimientos pero no envía respuestas, (Solicit- Response) el cual funciona a la inversa de Request-Response Ya que el que soplicita el requerimiento es el servidor en vez del cliente. Y por ultimo (Notification) inverso al One-Way Donde el que manda el mensaje es solo el servidor.
ü Binding: Protocolo concreto y especificaciones de las operaciones del mensaje, define los vínculos de protocolos como SOAP a un tipo de vínculo en particular.
ü Port: Especifica una dirección para el enlace definiendo un único punto de destino.
ü Service: Colección de puntos de destino, en otras palabras se informa el punto de accceso a los servicios para cada uno de los protocolos por medio de un elemento address.
Funcionamiento de los distintos tipos de portType
Fuente http://img.redusers.com/imagenes/libros/lpcu104/capitulogratis.pdf
FUNCIONAMIENTO [4]
Localización de un servicio.
Petición SOAP:
<?xml version=”1.0″ encoding=”utf-8″?>
<soap:Envelope …>
<soap:Body>
<MakeEncRequest …>
<principal>adg@microsoft.com</principal>
<cipher>+oXHdaCXvK…=</cipher>
</MakeEncRequest>
</soap:Body>
</soap:Envelope>
Respuesta SOAP:
<?xml version=”1.0″ encoding=”utf-8″?>
<soap:Envelope …>
<soap:Body>
<MakeEncRequestResponse …>
<MakeEncRequestResult>
Accepted: with nonce=1
</MakeEncRequestResult>
</MakeEncRequestResponse>
</soap:Body>
</soap:Envelope>
Localización del interfaz WSDL.
Descripción Interfaz WSDL :
…
<s:element name=”MakeEncRequest”>
<s:complexType>
<s:sequence>
<s:element … name=”principal” type=”s:string” />
<s:element … name=”cipher” type=”s:base64Binary” />
</s:sequence>
</s:complexType>
</s:element>
….
Peticiones y respuestas codificadas dentro de “sobres” SOAP.
Grupo de Definiciones WSDL [2]
• Un grupo de definición WSDL tiene obligatoria la propiedad targetNAmespace para identificar el espacio de nombres de los componentes que serán definidos.
• Cada componente excepto el de tipo tiene obligatoria la propiedad name.
• Cada componente tiene opcional la propiedad document.
Componente de Descripción de Mensaje [2]
• Se usa para modelar mensajes que se intercambian entre distintos servicios web.
• Una descripción de mensaje incluye un tipo que puede ser usado para indicar entrada, salida, fallo.
• Contiene cero o varias descripciones de partes de mensajes y cada parte contiene la propiedad name.
Componente de Descripción de Vínculo [2]
• Proporciona los detalles de vínculo del componente portType.
• Se usan también para indicar el protocolo de transporte utilizado para el envío de mensajes.
• Una descripción de vínculo tiene obligatorias las propiedades name y type.
EJEMPLO DE WSDL [1]
<? xml version=”1.0”?>
<definitions name=” Pizzas ”
targe tName space=” http : //mafia.it /pizzas.wsdl ”
xml ns : tns=” http : //mafia.it / pizzas.wsdl ”
xml ns : xsd1=” http : //maf ia . it / pizzas.xsd ”
xml ns : soap=” http : // schemas.xml soap.org /wsdl / soap /”
xmlns=” h t t p : // schemas.xml soap.org /wsdl /”>
<t y p e s>
<schema targe tName spac e=” h t t p : //maf ia . i t / pizzas.xsd ”
xmlns=” h t t p : //www.w3 . org /2000/10/XMLSchema”>
<element name=” PrecioPizzaRequest ”>
<complexType>
<a l l>
<element name=” nombrePizza ” type=”string”/>
</ a l l>
<message name=” precioPizzaInput ”>
<p a r t name=” body ” element=” xsd1:PrecioPizzaRequest”/>
</message>
<message name=” precioPizzaOutput ”>
<part name=” body ” element=” xsd1: precio Pizza ”/>
</message>
<portType name=” PizzasPortType ”>
<operation name=” verPrecio ”>
<inputmessage=” t n s : precioPizza Input ”/>
<output message=” tns : precioPizzaOutput ”/>
</ operation>
</ portType>
<binding name=” PizzasSoapBinding ”
type=”tns
izzasPortType”>
<soap: bindingstyle=”document ”
transport=”http: // schemas.xml soap.org / soap / http”/>
<operation name=”precioPizza ”>
<soap: operations o apAction=” http : //mafia.it / Pizzas”/>
<input>
<soap:body use=” literal ”/>
</ input>
<output>
<soap: body use=” literal”/>
</output>
</operation>
</ binding>
<service name=” Pizzas Service”>
<documentation>Ejemplo de servicio</ documentation>
WEBGRAFIA
1. Introducción a los servicios web, Labra Gayo Jose Emilio, Octubre 2006 http://www.di.uniovi.es/~labra/cursos/Web20/ServiciosWeb.pdf, descargado 30/09/08
2. Fundamentos de Internet, URJC – Aplicaciones para la Web, R. Capilla, http://triana.escet.urjc.es/apliweb/SOAP-WSDL-UDDI.pdf, fecha de descarga, 30/09/08
3. http://mit.ocw.universia.net/1.264J/NR/rdonlyres/Civil-and-Environmental-Engineering/1-264JDatabase–Internet–and-Systems-Integration-TechnologiesFa/2C547666-79A4-400A-9E47-70CA5245BFE2/0/1264_lecture_14_F2002.pdf, fecha de descarga, 30/09/08
4. Aplicaciones y Servicios Web (Web Services), Joaquín Salvachúa, Joaquín Salvachúa DIT-UPM, jsalvachua@dit.upm.es. http://internetng.dit.upm.es/ponencias-jing/2004/Web2.pdf, fecha de descarga, 30/09/08.
5. Principios de web service, Lectores@mpediciones.com, http://img.redusers.com/imagenes/libros/lpcu104/capitulogratis.pdf, fecha de descarga, 30/09/08.
6. http://arkadoel.es/programacion/INTRODUCCION_SOAP.pdf , fecha de descarga, 30/09/08.

