Composición de servicios

Anuncio
Composición de servicios
Composición estática
ECSDI
LSI-FIB-UPC c b e a
Curso 2015/2016
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
1 / 38
Índice
1
Introducción
2
Descripción de Servicios
3
Estrategias de composición
4
Implementación de composiciones
5
Problemas
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
2 / 38
Introducción
1
Introducción
2
Descripción de Servicios
3
Estrategias de composición
4
Implementación de composiciones
5
Problemas
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
3 / 38
Introducción
Servicios
El número de servicios web disponibles en internet crece cada dı́a
www.programableweb.com tiene más de 8000 apis de SW
El desarrollo de aplicaciones en entornos abiertos puede
aprovechar servicios comunes
Se pueden desarrollar nuevas aplicaciones componendo servicios
El esfuerzo de desarrollo de las aplicaciones se ve reducido
La filosofı́a de análisis y diseño de aplicaciones debe adaptarse
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
4 / 38
Introducción
Programación con servicios
El sentido de la programación basada en servicios (o agentes) es
poder usarlos como componentes
Cada servicio individual realiza una (o varias) tareas concretas
La unión de servicios siguiendo diferentes flujos permite
implementar diferentes soluciones
La unión de servicios (o agentes) para obtener una solución se
denomina composición
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
5 / 38
Introducción
Programación con servicios
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
6 / 38
Descripción de Servicios
1
Introducción
2
Descripción de Servicios
3
Estrategias de composición
4
Implementación de composiciones
5
Problemas
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
7 / 38
Descripción de Servicios
Descripción de servicios
Han aparecido y se están desarrollando diferentes tecnologı́as
para definir servicios que permitan hacer su composición
Las principales alternativas se solapan pero no son iguales
Están en diferentes procesos de estandarización
Están apoyadas por diferentes compañı́as
Están dirigidas a diferentes nichos de aplicación
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
8 / 38
Descripción de Servicios
Service Component Architecture (SCA)
La unidad es el componente
El servicio o servicios que se desarrollan son accesibles mediante
una interfaz
El componente puede referenciar a otros componentes
El componente tiene elementos configurables que modifican su
comportamiento
Un componente puede estar formado a su vez por otros
componentes
El proceso especifico a realizar dicta como se han de conectar
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
9 / 38
Descripción de Servicios
Service Component Architecture (SCA)
ECSDI
(LSI-FIB-UPC cbea)
Componente
Composición de servicios
Referencias
Servicios
Propiedades
Configurables
Curso 2015/2016
10 / 38
Descripción de Servicios
Service Component Architecture
Desacopla la composición de los detalles de invocación
Es agnóstico al lenguaje/tecnologı́a (C++, java, PHP, XML,
BPEL)
Puede utilizar diferentes mecanismos de comunicación
Puede integrar elementos basados en otras tecnologı́as (RMI,
RPC, CORBA, ...)
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
11 / 38
Descripción de Servicios
Service Component Architecture
Ventajas
Poco dependiente de la tecnologı́a
Enfocado a su portabilidad
IBM, Oracle, SAP, Red Hat
Varias implementaciones Open Source
Estándar OASIS (open SCA)
Desventajas
No considera la eficiencia de las aplicaciones
No considera la interoperabilidad
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
12 / 38
Descripción de Servicios
SOAML
Service Oriented Architecture
Modelling Language
(SOAML) es un perfil UML y
un metamodelo para la
definición de arquitecturas
orientadas a servicios
Extiende UML para poder
definir todos los elementos
que necesita una arquitectura
orientada a servicios
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
13 / 38
Descripción de Servicios
SOAML
Como identificar servicios (qué proveen, qué dependencias
tienen)
Como especificar servicios (capacidades funcionales, protocolos,
intercambio de información)
Definición de proveedores y consumidores (conexiones, uso de
capacidades)
Polı́ticas de uso y provisión de servicios
Esquemas de clasificación de servicios/organización/restricciones
Requerimientos de los servicios y su uso
Enlace con otros metamodelos UML
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
14 / 38
Descripción de Servicios
SOAML
El elemento principal es el participante
Los participantes pueden ser proveedores o consumidores
Los servicios se definen a través de puertos (puntos de conexión)
Los puertos definen puntos de provisión y consumo de servicios
El acceso a los servicios se define a partir de:
Una interfaz UML (unidireccional)
Una interfaz de servicio (bidireccional)
Un contrato de servicio (bidireccional)
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
15 / 38
Descripción de Servicios
SOAML
Ventajas
Abarca todos los elementos de diseño/especificación
Adaptable a diferentes tecnologı́as
Se puede traducir a SCA
Desventajas
Fases iniciales de implantación (primera versión 2012)
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
16 / 38
Estrategias de composición
1
Introducción
2
Descripción de Servicios
3
Estrategias de composición
4
Implementación de composiciones
5
Problemas
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
17 / 38
Estrategias de composición
Estrategias de composición
Estas tecnologı́as permiten definir cómo son los componentes y
cómo se organizarán
Permiten definir el proceso de negocio especificando:
El orden potencial de ejecución de la composición
Los datos compartidos por los servicios
Qué servicios estarán involucrados y cómo
(interacciones/relación)
Cómo se tratarán las excepciones (quién/cómo)
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
18 / 38
Estrategias de composición
Estrategias de composición
El último paso del proceso es establecer como la composición se
implementará al ejecutarla
Existen diferentes posibilidades:
Para el flujo de ejecución:
Prefijado
Generado automáticamente a partir de la tarea a resolver
Para los servicios involucrados
Servicios prefijados
Servicios provistos por un servicio de directorio (coincidencia
sintáctica/semántica)
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
19 / 38
Estrategias de composición
Estrategias de composición - Orquestación
Supone que un ente organizador ejecutará la composición
(motor de orquestación)
Define el flujo desde la perspectiva de un único integrante
(orquestador)
Una orquestación define:
La lógica de ejecución
El orden de las interacciones
Cómo los componentes interactuarán a nivel de mensaje
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
20 / 38
Estrategias de composición
Estrategias de composición - Orquestación
Motor de
Orquestación
Orquestación
WS1
WS3
WS2
WS4
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
21 / 38
Estrategias de composición
Estrategias de composición - Coreografı́a
El control está distribuido entre los participantes
Define el flujo desde la perspectiva de todas las partes
Cada participante conoce el comportamiento de los otros (con
los que colabora)
Hay una visión común de los elementos que definen el estado
La coreografı́a describe la secuencia de mensajes que
intercambian múltiples participantes
Cada participante describe el rol que tiene en la interacción
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
22 / 38
Estrategias de composición
Estrategias de composición - Coreografı́a
Coreografía
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
23 / 38
Implementación de composiciones
1
Introducción
2
Descripción de Servicios
3
Estrategias de composición
4
Implementación de composiciones
5
Problemas
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
24 / 38
Implementación de composiciones
Estrategias de composición - Implementación
La implementación de la composición puede ser programática
(hardcoded)
Es mas ventajoso utilizar lenguajes de composición:
Independencia del lenguaje de los servicios
Adaptación al cambio en el flujo de ejecución del servicio
compuesto
Lenguajes utilizados:
WS-BPEL (Web Sevices Process Execution Language) (OASIS)
WS-CDL (Web Sevices Choreography Description Language)
(W3C)
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
25 / 38
Implementación de composiciones
Lenguajes de composición - WS-BPEL
Se basa en la descripción de los servicios mediante WSDL (Web
Services Description Language)
Permite definir:
Procesos ejecutables: Especificación de los detalles del flujo de
ejecución
Procesos abstractos: Descripción de procesos generales que
permiten dejar elementos por especificar (a instanciar)
El lenguaje para los procesos ejecutables incluye todos los
elementos de un lenguaje de programación para procesos
(invocación, recepción, envı́o de mensajes, excepciones,
secuencias, flujos paralelos, bucles, alternativas, ...)
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
26 / 38
Implementación de composiciones
Lenguajes de composición - WS-BPEL
Definición del acceso al servicio desde el exterior con WSDL
Definición de puertos, operaciones, mensajes, ...
El servicio se obtiene como la ejecución de un proceso definido
en WS-BPEL
Este proceso define cómo y cuándo se ejecutarán los servicios
(envio de mensajes), como se guardará el estado, excepciones,
fallos, ...
La forma de invocación a los servicios viene de su descripción
(WSDL)
El proceso es ejecutado por el motor de orquestación
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
27 / 38
Implementación de composiciones
WS-BPEL - Elementos
<process name="ProcessName">
<!-- Definition of roles of process participants -->
<partnerLinks> ... </partnerLinks>
<!-- Data and state variables used within the process -->
<variables> ... </variables>
<!-- Correlation comment -->
<correlationSets> ... </correlationSets>
<!-- Exception management -->
<faultHandlers> ... </faultHandlers>
<!-- Message and timeout event handler -->
<eventHandlers> ... </eventHandlers>
<!-- Processing steps -->
<sequence>
</sequenece>
activities*
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
28 / 38
Implementación de composiciones
WS-BPEL - Ejemplo - Servicio de reserva de viajes
1
2
3
4
5
6
7
8
ECSDI
Una petición inicia el proceso
Invocación al servicio de reserva de
mensaje)
Guardar respuesta vuelo
Invocación al servicio de reserva de
mensaje)
Guardar respuesta alojamiento
Invocación al servicio de reserva de
mensaje)
Guardar respuesta coche
Generar y enviar mensaje respuesta
(LSI-FIB-UPC cbea)
vuelos (envio/recepción
alojamiento (envio/recepción
coche (envio/recepción
a la petición
Composición de servicios
Curso 2015/2016
29 / 38
Implementación de composiciones
WS-BPEL - Ejemplo - Servicio de reserva de viajes
BPEL (Viaje)
Cliente
Recepción
Puerto
Respuesta
ECSDI
(LSI-FIB-UPC cbea)
Invocación
Puerto
WS
Avión
Invocación
Puerto
WS
Hotel
Invocación
Puerto
WS
Coche
Composición de servicios
Curso 2015/2016
30 / 38
Implementación de composiciones
WS-BPEL - Ejemplo - Servicio de reserva de viajes
<process name="AgenteViajes">
<partnerLinks>
<partnerLink name="ClientPort" ... />
<partnerLink name="AereolineaPort" ... />
... />
<variables>
<variable name="AereoIn" messageType="AerolineaServ" ... />
<variable name="AereoOut" messageType="AerolineaServ" ... />
... />
<sequence>
<receive name="inicio" partnerLink="ClientPort"
operation="obtenerOferta" variable="datosEntrada" ... />
<assign> <copy> <from> $datosEntrada.aereo </from>
<to> $AereoIn </to> ... />
<invoke partnerLink="AereolineaPort" operation="reservaAereo"
inputVariable="AereoIn" ouputVariable="AereoOut" ... />
...
<reply partnerLink="ClientPort" operation="obtenerOferta"
variable= ...
... />
</process>
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
31 / 38
Implementación de composiciones
Lenguajes de composición - WS-CDL
Se basa en la descripción de los servicios mediante WSDL (Web
Services Description Language)
No permite definir procesos ejecutables, es un lenguaje de
definición
Permite definir las interacciones entre los diferentes participantes
de la composición (coreografı́a)
Cada interacción puede implementarse a partir de mecanismos
diferentes (por ejemplo WS-BPEL)
Permite la interoperabilidad entre servicios al ser independiente
de la implementación de las interacciones
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
32 / 38
Implementación de composiciones
WS-CDL - Ejemplo - Servicio de reserva de viajes
WD-CDL (Viaje)
WS
Avión
<choreography name="viaje"
...
Cliente
WS
Viaje
<interaction
<participate toRole="..."
fromRole="..."
<exchange action="..."
informationType="..."
<record
name="..."
<source variable="..."
<target variable="..."
WS
Hotel
WS
Coche
ECSDI
(LSI-FIB-UPC cbea)
...
</choreography>
Composición de servicios
Curso 2015/2016
33 / 38
Problemas
1
Introducción
2
Descripción de Servicios
3
Estrategias de composición
4
Implementación de composiciones
5
Problemas
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
34 / 38
Problemas
Problemas de la Orquestación/Coreografı́a
Tienden a obtener composiciones estáticas
Son sensibles al fallo de los servicios (el fallo de un solo servicio
acaba el proceso)
La complejidad de los procesos los hacen difı́ciles de diseñar y
depurar
Los servicios son modelados al mismo nivel de abstracción y
granularidad independientemente de su complejidad o función
Suele haber poco conocimiento acerca del contexto de las
interacciones (normas/regulaciones)
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
35 / 38
Problemas
Problemas de la Orquestación/Coreografı́a
e-Business
El manejo del flujo de ejecución en entornos abiertos no es trivial
No todos los servicios pertenecen a la misma organización
No podemos asumir que todas las partes cumplirán su cometido
correctamente
¿Deberı́a ser necesario un acuerdo previo entre las partes?
¿Tratamiento de servicios esenciales de terceras partes que dejan
de funcionar?
¿Tratamiento de la evolución de aplicaciones y procesos?
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
36 / 38
Problemas
Problemas de la Orquestación/Coreografı́a
e-Business
Los objetivos y procesos de las aplicaciones evolucionan con el
tiempo
Diseño: No se pueden prever todas las posibles interacciones
Implantación: Se deberı́a suponer una composición dinámica
Gestión: Cambio/adaptación/evolución deberı́an ser un
elemento natural
Las tecnologı́as a usar deberı́an
Permitir adaptarse a un entorno cambiante
Permitir la reconfiguración sencilla de los procesos
Permitir la adaptación dinámica a las necesidades
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
37 / 38
Problemas
Composición - Flexibilidad - Adaptación
Uso de metodologı́as de inteligencia artificial, teorı́a de
instituciones y organizaciones
De este modo:
Se pueden tener maneras más flexibles de modelar las
interacciones
Se puede abstraer por encima de los detalles de bajo nivel
Distinguir entre el QUE hacer del COMO hacerlo
Se puede describir mejor el contexto (estado)
Se puede describir el cambio que suponen las interacciones en el
contexto
ECSDI
(LSI-FIB-UPC cbea)
Composición de servicios
Curso 2015/2016
38 / 38
Descargar