Servicios Web

SOA y los Servicios Web

La arquitectura SOA es independiente de la tecnología utilizada. Puede implementarse mediante el uso de un amplio elenco de tecnologías entre las que se incluyen DCOM, CORBA o Servicios Web.
SOA puede ser implementado mediante el uso de uno o más de estos protocolos. La clave es, tal y como se ha comentado anteriormente, la existencia de servicios independientes con interfaces perfectamente definidas y que pueden ser invocados para efectuar sus tareas de una forma estándar sin que sea necesario conocer el funcionamiento interno de los mismos. Ha sido precisamente el gran auge de los Servicios Web el que ha hecho resurgir el concepto de SOA.

Los Servicios Web se han convertido en el estandarte de SOA, ya que esta tecnología posee un conjunto de características que permiten cubrir todos los principios de la orientación a servicios, no como otras posibles tecnologías de implementación como colas de mensajes o CORBA.
Cuando la arquitectura SOA se implementa mediante el uso de Servicios Web se utilizan los principios y tecnologías básicos de éstos; SOAP como lenguaje de intercambio, WSDL como lenguaje para la descripción de los servicios y UDDI para la publicación o registro de los mismos. En el dibujo que se muestra a continuación, se puede ver la estructura básica de funcionamiento.

soapuddiwsdl.PNG

Cuatro son los elementos fundamentales a la hora de desarrollar servicios web: XML, SOAP, WSDL y UDDI.

  • XML, eXtensible Markup Language. Metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML permite definir la gramática de lenguajes específicos. Tiene un papel muy importante ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.
  • SOAP, Simple Object Access Protocol. La especificación SOAP indica cómo se deben codificar los mensajes que circularán entre las dos aplicaciones. La especificación SOAP define dos modelos de mensajes:
    • Un mensaje que se enviará desde la aplicación cliente a la aplicación servidor, solicitando la ejecución de un método al que se pasan una serie de parámetros.
    • Un mensaje que se enviará desde la aplicación servidor al cliente, y que contendrá datos XML con los resultados de la ejecución del método solicitado.
  • WSDL, Web Services Description Language. Permite describir los distintos métodos o funciones que están disponibles en un servicio web, así como su signatura, es decir, el número de argumentos o parámetros que se les debe pasar, y el tipo de dato que devolverá la función como resultado. Se establece una equivalencia entre el documento WSDL y un “contrato” que especifica los servicios que el servidor se compromete a ofrecer al cliente, siempre que éste los solicite de la forma adecuada. Los documentos WSDL deben estar disponibles en el servidor web que ofrece los servicios.
  • UDDI, Universal Description, Discovery and Integration. Se trata de un sistema de referencia encargado de posibilitar la localización de servicios. Éste proyecto adquiere mayor importancia conforme aumentan el número de servicios disponibles, si bien no es uno de los componentes básicos de la tecnología sobre la que se construye el paradigma de los servicios web.

En la arquitectura de servicios web existen tres roles claramente diferenciados:

  • Cliente del servicio: Es el que solicita la ejecución del servicio web, y por lo tanto el que lo consume.
  • Proveedor del servicio: Es el encargado de implementar el servicio web y ofrecerlo a los clientes.
  • Registro del servicio: Es un repositorio donde se almacenan las descripciones de los servicios, para que así los clientes puedan buscar el servicio web que mejor se adapte a sus necesidades.

La secuencia de ejecución es la siguiente:

  1. El proveedor del servicio da de alta el servicio web en el registro. Para ello, el proveedor almacena en el registro el documento de descripción.
  2. El solicitante del servicio busca en el registro un servicio web que pueda adaptarse a sus necesidades.
  3. Una vez seleccionado el servicio, el solicitante lo invoca mediante el envío de un mensaje SOAP, en el cual se indica la acción a realizar y los datos de entrada.
  4. El servicio web recibe la petición y ejecuta la funcionalidad. Para finalizar envía un mensaje SOAP al solicitante con los resultados obtenidos.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License