Web Services (WS-I)



¿Que es un Web Services?

Es una interfície capaz de recibir una petición, activar unos procesos y devolver los resultados. Todo esto, en Internet y a través de protocolos de red (HTTP,FTP,SMTP). La comunicación entre los diferentes entornos del Web Services se realiza mediante XML.

Para establecer un diálogo coherente entre el WSC (Web Services Cliente), que envía la petición y recibe la respuesta y el WSS (Web Services Servidor), el que ejecuta el proceso y envía la respuesta, se utiliza SOAP (Simple Objecte Access Protocol), que es una codificación basada en XML.

Un Web Services, en vez de obtener peticiones desde un navegador y devolver páginas web como respuesta, recibe peticiones, mediante un mensaje formateado con SOAP, desde otras aplicaciones realiza la labor que le han pedido y devuelve un mensaje de respuesta también con formato SOAP.

Esquema funcionamiento Web Services

IDEC: Infraestructura de Datos Espaciales de Cataluña

esto implica:

- Independientemente de la arquitectura y lenguajes de programación utilizados tanto en el Web Services cliente como en el Web Services servidor, los dos tendrán que ser capaces de enviar, recibir e interpretar SOAP. Esto se consigue gracias a las diferentes librerías o objetos dedicados a los Web Services y basados en tecnologías como .NET, JAVA, PHP o PERL.
- La necesidad de obtener / dar información sobre qué hace y dónde está el Web Services (UDDI).
- La necesidad de obtener / ofrecer cómo interrogar el Web Services (WSDL).

¿Para qué sirve un Web Services?

Para tener acceso a información y procesos remotos a través de aplicaciones web o desktop.

Esto quiere decir, por ejemplo, que un Web Services puede ser invocado remotamente como una funcionalidad más dentro de una aplicación SIG desktop, con las ventajas que: Es totalmente invisible para el usuario final, al ser un proceso remoto el consumo de recursos es absorbido por el Web Services y la aplicación puede estar desarrollada en cualquier lenguaje y plataforma.

La finalidad de un Web Services, es la de ofrecer, vender o alquilar un proceso y que este pueda ser invocado por otras aplicaciones sin considerar el lenguaje de programación utilizado.

Web Services y aplicación desktop

IDEC: Infraestructura de Datos Espaciales de Cataluña

Web Services vs. OGC Web Services

Se entiende como a OGC Services como la integración de las diversas especificaciones OGC, dedicadas a realizar geoprocesos (WMS, WFS, WCS, WTS, etc...).

Los dos tipos de servicios tienen en común que:

- Utilizan tecnologías como XML y HTTP.
- Ejecutan procesos en el servidor y envían un resultado conocido.


Pero existen dos diferencias básicas:

- Los OGC Web Services, no utilizan los mismos lenguajes de comunicación (SOAP y WSDL). No obstante Se están haciendo esfuerzos para integrarlos.
- Los Web Services han sido concebidos para hacer negocio y los OGC Web Services, no.


Esto ha propiciado, en los primeros, el desarrollo de mecanismos de control y autentificación para gestionar las transacciones y la explotación de los procesos.

SOAP (Simple Object Access Protocol)

Una de las principales razones de su uso es el gran apoyo que ha recibido por parte de la industria. SOAP es el primer protocolo de este tipo que ha sido aceptado prácticamente por todas las grandes compañías de software del mundo, entre las cuales hay Microsoft, IBM, SUN Microsystems, SAP, etc.

Ya hemos comentado que SOAP se utilizará como "plantilla" encargada del diálogo petición - respuesta entre el WSC y el WSS.

SOAP dicta cómo se tienen de empaquetar (organizar), transmitir y definir los datos.

Un mensaje SOAP está definido por tres niveles: ENVELOPE (obligatorio), HEADER (opcional), BODY (obligatorio).

SOAP es muy parecido a una carta: es un sobre (ENVELOPE) que contiene una cabecera (HEADER) con la dirección del receptor del mensaje y con un conjunto de opciones de entrega. Dentro del sobre hay el contenido del mensaje (BODY).

Estructura mensaje SOAP

<ENVELOPE>

<HEADER>

</HEADER>

<BODY>

</BODY>

</ENVELOPE>


  • ENVELOPE:
  • - Es el elemento raíz del documento dentro del cual habrá un elemento (o ninguno) HEADER y un elemento BODY.

    - Tienen que estar identificados con NAMESPACES.

    - No puede ser validado con DTD

  • HEADERS:
  • - Elemento no obligatorio.

    - Permite introducir variables de seguridad en la transmisión del mensaje: autentificación, enrutamiento, etc..

    - El elemento HEADER es procesado antes de entrar dentro del BODY.

  • BODY:
  • - Parte dónde hay toda la información del Web Services a tratar: Métodos y datos.

    - Para describir estos datos, SOAP utiliza XML Schema.

WSDL (Web Services Description Language)

Para poder crear un WSC, necesitamos saber cómo está constituido el WSS, es decir, qué métodos tiene implementados, qué tipos de datos espera recibir y cuál será su respuesta.

WSDL es un documento XML creado para el WSS donde se describe toda esta información.

UDDI (Universal Description Discovery and Integration)

Es un catálogo centralizado, donde es posible registrar y crear Web Services.

Centre de Suport IDEC | Institut Cartogràfic de Catalunya | Parc de Montjuïc- 08038 Barcelona | Tel. +34 93 567 15 00 - Fax. +34 93 567 15 67 e-mail: idec@icc.cat