SOA y Web Services

Posted by Adrián Manso | Posted in | Posted on 12:11

0

El paradigma SOA es muy general y de carácter muy abstracto, sin que establezca una tecnología específica de imple-mentación del mismo.


Una de las tecnologías más destacadas y que con más éxito está llevando a la práctica el paradigma conceptual de SOA son los Web Services.


Arquitectura de servicios web


Para el caso de un Servicio Web (Web Service), el organismo W3C, nos facilita una definición más específica:



“Un servicio web es un sistema software diseñado para soportar la interacción máquina-a-máquina a través de una red y de forma interoperable”



Un servicio web cuenta con una interfaz descrita en un formato procesable por un equipo informático (específicamente en WSDL), a través de la que es posible interactuar con el mismo mediante el intercambio de mensajes SOAP, típicamente transmitidos usando serialización XML sobre HTTP conjuntamente con otros estándares web.


Para conocer el formato, el solicitante consulta a un intermediador, un registro de servicios, donde los proveedores de servicios web publican sus formatos y a los solicitantes se les ofrece un servicio de consulta similar a unas “páginas amarillas”.


SOA y Web Services


W3C ha trabajado en la definición de una arquitectura conceptual de servicios web (http://www.w3.org/TR/ws-arch/) que proporciona un modelo conceptual y un contexto para entender qué se esconde detrás del concepto de Web Service.


Define modelos con-ceptuales que ilustran las principales dimensiones a considerar (mensajería, recursos, servicios y políticas) y conforma los principales aspectos a considerar a la hora de utilizar Web Services (interoperabilidad, fiabilidad, integración, seguridad, transaccionalidad, extensibilidad, gestión y provisión).


Web Services como alternativa para implementar arquitecturas SOA



Los Web Services/Servicios Web NO son SOA.




La diferencia entre ambos términos es conceptual: mientras que SOA define el qué, los Servicios Web definen el cómo. O dicho de otro modo, al igual que es posible aplicar el paradigma de orientación a objetos con Java o C++, el paradigma de orientación a servicios no es exclusivo de los servicios web.



El paradigma de diseño establecido por la “orientación a servicios” pretende ser agnóstico respecto a la implementación.



El concepto de “servicio” en SOA se basa en que los servicios desarrollados son “Servicios de Negocio”, sean desarrollados mediante una tecnología como “servicios web” o bien en otras tecnologías disponibles para ello. En una arquitectura SOA, el foco de interés se pone en el modelado de procesos a partir de piezas reutilizables que configu-ran servicios de negocio, abstrayéndose de la tecnología y forma en la que esos servicios son implementados.



Uno de los principios de SOA vistos anteriormente es la reusabilidad, ¿cómo se logra si no se utilizan servicios web? Se logra no por la posibilidad de reutilizar los componentes software que implementan dichos servicios sino en la medida en que los Servicios de Negocio son involucrados en nuevos y más procesos.



Lo anterior indica que todo nuevo servicio de negocio desarrollado, debe ser puesto a disposición y en conocimiento de las áreas de diseño de procesos. Puesto que el servicio de negocio esta definido en términos del negocio y no de tecno-logía, es fácil hacer referencia e incorporarlo a sus diseños para las áreas de negocio.


Aclarada la diferencia entre los servicios web y las arquitecturas SOA, no obstante hay que dejar claro que los servicios web, por sus especiales características de interoperabilidad, reutilización, modularidad, etc., se ajustan perfectamente a las necesidades y principios de las arquitecturas SOA, lo que, añadido a la universalización de los web services, implementados por la mayoría de empresas de software para un enorme espectro de plataformas y sistemas operativos, lo han convertido en la aproximación más extendida de implementar arquitecturas SOA.


Estándares y protocolos de Web Services en las arquitecturas SOA


Según la definición de Arquitectura de Web Services del W3C (http://www.w3.org/TR/ws-arch/), la lista de estándares y protocolos básicos es la que se muestra en la siguiente figura.


SOA y Web Services


 XML (eXtensible Markup Language), estándar de W3C (http://www.w3.org/xml/) actualmente en su versión 1.1, es un lenguaje de marcado que permite describir información o contenido de forma completamente sepa-rada de su presentación o formato. Junto a él, hay un amplio conjunto de estándares para la definición de len-guajes y validación de documentos (DTD, XSD) y para la transformación y presentación de los mismos (XSL-FO, XSLT).



 SOAP (Simple Object Access Protocol), estándar del W3C (http://www.w3.org/TR/soap/) actualmente en su versión 1.2, que define una gramática XML que describe el formato de los documentos XML a intercambiar entre el solicitante y el proveedor del servicio, en concreto, el formato en el que se “ensobran” las peticiones y res-puestas entre solicitante y proveedor.



 WSDL (Web Services Description Language), actualmente en su versión 2.0 y también estándar del W3C (), que define una gramática XML que permite describir la interfaz de un servicio web, es decir, las funciones y parámetros de entrada y salida necesarios para la invocación de los servicios.



 UDDI (Universal Description Discovery and Integration), en su versión 3.0 y perteneciente a OASIS (http://www.uddi.org), que configura un servicio de registro o servicio de directorio donde llos proveedores de servicios publican sus servicios web y los solicitantes de servicios buscan y encuentran los servicios web acordes a sus necesidades, de forma parecida a como funciona un servicio de “páginas amarillas”.



Junto a los anteriores estándares básicos, es interesante considerar el papel de los perfiles de WS-Interoperability (WS-I), cuyo propósito es promover la interoperabilidad de los servicios web entre plataformas, sistemas operativos y lenguajes de programación.



La organización WS-I centra su labor en la integración de especificaciones, proporcionar aplicaciones de ejemplo, guías y mejores prácticas recomendadas así como recursos de apoyo y herramientas, trabajo cuyos resultados organiza en torno al concepto de “perfiles”. Actualmente se encuentran a disposición los siguientes perfiles:



 WS-I Basic Profile, convenciones sobre mensajería, descripción, descubrimiento y seguridad en los servicios web, introduciendo restricciones y aclaraciones y guías de utilización conjunta de los estándares SOAP 1.1, WSDL 1.1, UDDI 2.0, XML 1.0, XML Schema y HTTP 1.1.


 WS-I Basic Security Profile (BSP), extensión del Basic Profile que cubre la interoperabilidad en términos de seguridad, en la capa de transporte (HTTP sobre TLS), seguridad en la mensajería SOAP y estándar WS-Security.



 WS-I Reliable Secure Profile, relacionado con la interoperabilidad de las especificaciones WS-Reliable Mes-saging, WS-Reliable Exchange y WS-Secure Conversation.


Innumerables estándares vinculados a los web services, siempre en continuo crecimiento:


SOA y Web Services


Considerando los estándares y protocolos anteriores, una arquitectura SOA conformada mediante Servicios Web contará con el siguiente aspecto.


SOA y Web Services


La elección entre las diferentes alternativas tecnológicas a los mismos así como la posible utilización de otros estándares, será objeto de la definición de la arquitectura de referencia de nuestra implementación de arquitectura SOA.


 

Comments Posted (0)

Publicar un comentario