Servicios Web Capítulo 8: Conceptos básicos de Coordinación de Servicios Pedro J. Álvarez [email protected] José Ángel Bañares [email protected] http://iaaa.cps.unizar.es/docencia/SWDoct.html Departamento de Informática e Ingeniería de Sistemas Índice – Capítulo 8 Interacción entre servicios Introducción a los protocolos de coordinación Descripción de protocolos de coordinación Clasificación de los protocolos Infraestructura de protocolos de coordinación Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 2 Índice – Capítulo 8 Interacción entre servicios Introducción a los protocolos de coordinación Descripción de protocolos de coordinación Clasificación de los protocolos Infraestructura de protocolos de coordinación Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 3 Introducción a los protocolos de coordinación Interacción entre servicios Cliente de Servicios Proveedor de Servicio Objetos Aplicación (cliente) Invocación Búsqueda Objetos Aplicación (servicio) Publicación Pila de Estándares de Servicios Web Núcleo del Registro UDDI Descripciones de Servicios Registro de Servicios Estándares de Propósito General – Infraestructura Común Estándares básicos (SOAP, WSDL, UDDI, etc.) XML Protocolos de Transporte (HTTP, TCP/IP, SMTP,etc.) Copyright Springer Verlag Berlin Heidelberg 2004 Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 4 Introducción a los protocolos de coordinación Interacción entre servicios Cliente de Servicios Proveedor de Servicio Objetos Aplicación (cliente) Invocación Objetos Aplicación (servicio) “La infraestructura básica está pensada para interacciones simples e independientes, pero…” (Fabio Casati et. Col.) Búsqueda Publicación Se necesitan: Pila de Estándares de Servicios Web - Formalismos capaces de describir las interacciones entre los servicios Web - AbstraccionesDescripciones que declaren propiedades adicionales de Servicios requeridas por las interacciones de Servicios - InfraestructuraRegistro a nivel de middleware para interpretar y ejecutar estas descripciones formales Núcleo del Registro UDDI Estándares de Propósito General – Infraestructura Común Estándares básicos (SOAP, WSDL, UDDI, etc.) XML Protocolos de Transporte (HTTP, TCP/IP, SMTP,etc.) Copyright Springer Verlag Berlin Heidelberg 2004 Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 5 Introducción a los protocolos de coordinación Interacción entre servicios Pila de Estándares de Servicios Web Estándares de Dominio de Aplicación Estándares de Interacción – Infraestructura Lógica Composición y flujo (BPEL4WS, WSFL, Xlang, etc.) Coordinacion e Integración (WS-Coordination) Estándares de Propósito General – Infraestructura Común Estándares básicos (SOAP, WSDL, UDDI, etc.) XML Protocolos de Transporte (HTTP, TCP/IP, SMTP,etc.) Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 6 Índice – Capítulo 8 Interacción entre servicios Introducción a los protocolos de coordinación Descripción de protocolos de coordinación Clasificación de los protocolos Infraestructura de protocolos de coordinación Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 7 Introducción a los protocolos de coordinación Coordinación entre servicios Cliente House hunting service Packaging service Shipment service Flight reservation service Proveedor 1: solicitaPresupuesto (servicio Web) 2: encargaPedido receive orderGoods invoke checkLocalStock inStock=false invoke checkShipAvailable Phone line installation service inStock=true shippingAvail=true Internet DSL line installation service send cancelOrder 3: realizaPago send confirmOrder Copyright Springer Verlag Berlin Heidelberg 2004 Definiciones: ¾ En aplicaciones reales, la interacción entre clientes y servidores consta de una secuencia ordenada de operaciones (conversación) ¾ No todas las posibles secuencias ordenadas son válidas, por ejemplo, no se puede encargar un pedido previamente a solicitar su presupuesto ¾ El conjunto de conversaciones válidas se describe en un protocolo de coordinación Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 8 Introducción a los protocolos de coordinación Coordinación entre servicios Cliente House hunting service Packaging service Shipment service Flight reservation service Proveedor 1: solicitaPresupuesto (servicio Web) 2: encargaPedido receive orderGoods invoke checkLocalStock inStock=false invoke checkShipAvailable Phone line installation service inStock=true shippingAvail=true Internet DSL line installation service send cancelOrder 3: realizaPago send confirmOrder Copyright Springer Verlag Berlin Heidelberg 2004 Implicaciones: ¾ Desde el punto de vista del proveedor, es necesario describir sus protocolos (WSDL no ofrece abstracciones para su descripión) y disponer de capacidad de gestionar varias conversaciones concurrentemente ¾ Desde el punto de vista del cliente, su lógica interna debe integrar la gestión de las conversaciones en las que está involucrado (secuenciamiento, variables de correlación, etc.) Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 9 Introducción a los protocolos de coordinación Coordinación entre servicios Cliente House hunting service Packaging service Shipment service Flight reservation service Proveedor 1: solicitaPresupuesto (servicio Web) 2: encargaPedido receive orderGoods invoke checkLocalStock inStock=false invoke checkShipAvailable Phone line installation service Internet DSL line installation service inStock=true shippingAvail=true send cancelOrder send confirmOrder 3: realizaPago Copyright Springer Verlag Berlin Heidelberg 2004 Interés actual: ¾ ¿Cómo describir la lógica interna de un cliente que implementa una conversación concreta? (lenguajes de programación convencionales, flujos, ¿privado?...) ¾ Descripción de protocolos de coordinación (semejante a la descripción en WSDL de las interfaces de los servicios...¿WSCI?, ¿WSCL?) ¾ Automatizar el control a partir de las descripciones de los protocolos + Infraestructura de coordinación capaz de interpretar y ejecutar los protocolos (WS-Coordination, Linda,...) Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 10 Índice – Capítulo 8 Interacción entre servicios Introducción a los protocolos de coordinación Descripción de protocolos de coordinación Conversación entre un cliente y un servicio Web Conversación entre múltiples servicios Web Clasificación de los protocolos Infraestructura de protocolos de coordinación Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 11 Descripción de protocolos de coordinación Conversación entre un cliente y un servicio Web solicitaPresupuesto Estado de la conversación Presupuesto solicitado encargaPedido Copyright Springer Verlag Berlin Heidelberg 2004 cancelaPedido Pedido cancelado Pedido encargado realizaPago Pedido completado Operación del servicio Web Máquinas de estado para el modelado de conversaciones a partir de las operaciones ofertadas por la interfaz del servicio Web (WSDL) Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 12 Descripción de protocolos de coordinación Conversación entre múltiples servicios Web servicio Web 1: solicitaPresupuesto servicio Web 2: encargaPedido Cliente 3:confirmaPedido 4: realizaPago Proveedor Copyright Springer Verlag Berlin Heidelberg 2004 Problema: ambas entidades imponen restricciones sobre la secuencia ordenada de operaciones (conversaciones multi-party) Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 13 Descripción de protocolos de coordinación Conversación entre múltiples servicios Web (II) Mensajes intercambiados servicio Web 1: solicitaPresupuesto servicio Web 2: encargaPedido Cliente 3:confirmaPedido 4: realizaPago Roles Proveedor Copyright Springer Verlag Berlin Heidelberg 2004 Orden de la secuencia de operaciones Descripción de protocolos de coordinación Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 14 Descripción de protocolos de coordinación Conversación entre múltiples servicios Web (III) 1: solicitaPresupuesto servicio Web servicio Web 2: encargaPedido Cliente Proveedor 4: confirmaPedido 5: realizaPago 7: compruebaDetallesEnvio 3: confirmaStockDisponible 6:encargaEnvío 8: confirmaEnvío Copyright Springer Verlag Berlin Heidelberg 2004 Almacén 9: confirmaEnvío servicio Web Generalización de conversaciones multi-party Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 15 Descripción de protocolos de coordinación Conversación entre múltiples servicios Web (IV) Mensajes intercambiados 1: solicitaPresupuesto servicio Web servicio Web 2: encargaPedido Cliente Proveedor 4: confirmaPedido 5: realizaPago 7: compruebaDetallesEnvio Roles 3: confirmaStockDisponible 6:encargaEnvío 8: confirmaEnvío Copyright Springer Verlag Berlin Heidelberg 2004 Almacén 9: confirmaEnvío servicio Web Descripción de protocolos de coordinación Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) Orden de la secuencia de operaciones 16 Descripción de protocolos de coordinación Conversación entre múltiples servicios Web (V) Mensajes intercambiados 1: solicitaPresupuesto servicio Web servicio Web No obstante, describir protocolos es más complejo: 2: encargaPedido - expresar alternativas en la conversación por condiciones en Cliente Proveedor tiempo de ejecución 4: confirmaPedido - excepciones - restricciones de tiempo 5: realizaPago 7: compruebaDetallesEnvio - propiedades de correlación entre los mensajes 3: confirmaStockDisponible Roles -… 6:encargaEnvío 8: confirmaEnvío Copyright Springer Verlag Berlin Heidelberg 2004 Almacén 9: confirmaEnvío servicio Web Descripción de protocolos de coordinación Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) Orden de la secuencia de operaciones 17 Descripción de protocolos de coordinación Conversación entre múltiples servicios Web (VI) ¿Qué formalismos nos permiten describir protocolos de coordinación? “No existe consenso en cómo expresar estas conversaciones entre servicios…“ (Fabio Casati et. Col.) …aunque están emergiendo lenguajes estándar de descripción de protocolos (roles, mensajes, secuencia de mensajes, …). Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 18 Descripción de protocolos de coordinación Conversación entre múltiples servicios Web (VI) Cliente Proveedor Almacén solicitaPresupuesto encargaPedido confirmaStockDisponible confirmaPedido realizaPago encargaEnvío compruebaDetallesEnvio confirmaEnvío ConfirmaEnvío Copyright Springer Verlag Berlin Heidelberg 2004 Diagrama de Secuencia Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 19 Descripción de protocolos de coordinación Conversación entre múltiples servicios Web (VII) Cliente Proveedor Almacén solicitaPresupuesto (al Proveedor) encargaPedido (al Proveedor) confirmaStockDisponible (al Almacén) Almacén confirma confirmarPedido realizaPago (al Proveedor) (al Cliente) Almacén cancela cancelaPedido (al Cliente) encargaEnvío (al Almacén) (al Cliente) confirmaEnvío (al Almacén) Copyright Springer Verlag Berlin Heidelberg 2004 compruebaDetallesEnvío confirmaEnvío (al Proveedor) Diagrama de Actividades Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 20 Índice – Capítulo 8 Interacción entre servicios Introducción a los protocolos de coordinación Descripción de protocolos de coordinación Clasificación de los protocolos Infraestructura de protocolos de coordinación Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 21 Protocolos de coordinación Clasificación de los protocolos … Finanzas Comunicaciones Salud Fabricación Infraestructura de protocolos Soporte para protocolos transacciones, fiabilidad, seguridad,… Middleware de servicios Web (e.g., SOAP routers) Protocolos Verticales. (específicos del dominio de Aplicación) Por ejemplo, RosettaNet, XCBL y parte de ebXML Protocolos Horizontales (protocolos middleware), abstracciones de alto nivel para soportar protocolos verticales. Por ejemplo, WS-Coordination y WS-Transaction Mensajes SOAP Copyright Springer Verlag Berlin Heidelberg 2004 Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 22 Índice – Capítulo 8 Interacción entre servicios Introducción a los protocolos de coordinación Descripción de protocolos de coordinación Clasificación de los protocolos Infraestructura de protocolos de coordinación ¾ ¾ ¾ Ideas generales: Objetivo y herramientas software Herramientas (Controladores y Módulos de soporte) Requisitos de estandarización Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 23 Infraestructura de protocolos de coordinación Ideas generales Objetivo: alcanzar un elevado grado de automatización en la ejecución de conversaciones válidas conforme protocolos (horizontales o verticales) Herramientas software: ¾ Controlador (conversation controller) Encamina cada mensaje de la conversación al receptor adecuado Verifica que los mensajes intercambiados se ajusten a la especificación del protocolo ¾ Módulos de soporte (protocol handler) Implementan funcionalidad genérica aplicable a diferentes protocolos (nivel de infraestrutura middleware de servicios Web) o específica de un protocolo (nivel de protocolo) Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 24 Infraestructura de protocolos de coordinación Herramientas: Controlador Proveedor de servicio Middleware Objeto para P1 Clientes invocan al servicio a través de una dirección única P1 Objeto para P2 Objeto para P3 Objeto para P4 Objeto para P5 Copyright Springer Verlag Berlin Heidelberg 2004 P1 P2 P3 Controlador de la conversación P4 P2, P3 Cliente del servicio Cliente del servicio P4, P5 P5 Conversión Id a Objeto Cliente del servicio El controlador redirige los mensajes a los correspondientes objetos (estado conversación) Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 25 Infraestructura de protocolos de coordinación Herramientas: Controlador (II) Proveedor de servicio Contenedor de EJB EJB EJB SOAP router (con controlador) EJB Conversión Id a Objeto EJB HTTP Server EJB Mensajes SOAP sobreHTTP Objetivo: estandarizar la forma de integrar identificadores de conversación en los mensajes intercambiados Copyright Springer Verlag Berlin Heidelberg 2004 Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 26 Infraestructura de protocolos de coordinación Herramientas: Módulos de soporte Implementación del Servicio Web (A) Dirección de B Ports de referencia Implementación del Servicio Web (B) Rol de B Rol de A Módulo de soporte (A) Dirección de A Módulo de soporte (B) Mensajes (protocolo) Controlador conversación Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) Controlador conversación 27 Infraestructura de protocolos de coordinación Cliente del servicio Objeto (implementación SW) Módulos de soporte Lógica protocolo, codificación, ... Objeto (implementación SW) Lógica de Aplicación Módulos de soporte seguridad, transacciones, ... Módulos de soporte Lógica protocolo, codificación, ... Módulos de soporte Middleware Controlador seguridad, transacciones, ... Controlador Copyright Springer Verlag Berlin Heidelberg 2004 Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) Protocolos Horizontales Proveedor de servicio Protocolos Verticales Coordinación distribuida 28 Infraestructura de protocolos de coordinación Cliente del servicio Objeto (implementación SW) Módulos de soporte Lógica protocolo, codificación, ... Objeto (implementación SW) Lógica de Aplicación Módulos de soporte seguridad, transacciones, ... Módulos de soporte Lógica protocolo, codificación, ... Módulos de soporte Middleware Controlador Copyright Springer Verlag Berlin Heidelberg 2004 Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) seguridad, transacciones, ... Protocolos Horizontales Proveedor de servicio Protocolos Verticales Coordinación centralizada 29 Infraestructura de protocolos de coordinación Objeto (implementación SW) Módulos de soporte Lógica protocolo, codificación, ... Cliente del servicio Creación de Contextos Lógica de Aplicación Módulos de soporte seguridad, transacciones, ... Objeto (implementación SW) Módulos de soporte Lógica protocolo, codificación, ... Módulos de soporte Middleware Controlador Copyright Springer Verlag Berlin Heidelberg 2004 Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) seguridad, transacciones, ... Protocolos Horizontales Proveedor de servicio Protocolos Verticales Problemas coordinación 30 Infraestructura de protocolos de coordinación Requisitos de estandarización Objetivos: ¾ ¾ ¾ ¾ Identificadores de conversación en los mensajes SOAP (correspondencia entre mensajes intercambiados y conversaciones) Lenguaje estándar de descripción de protocolos (WSCI, WSCL, etc.) Infraestructura común para la coordinación que facilite la conversación entre servicios Web (gestión de conversaciones) (WS-Coordination, WS-CAF, Linda, etc.) Protocolos horizontales que ofrezcan soporte a propiedades adicionales (WSTransaction, WS-CAF, Linda Múltiples restriciones, etc.) Arquitectura orientada a servicios Web: Conceptos y estándares Departamento de Informática e Ingeniería de Sistemas (Univ. Zaragoza) 31