Conceptos básicos de Coordinación de Servicios

Anuncio
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
Descargar