Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t...

58
Computación Cluster y Grid Computación Cluster y Grid Computación Cluster y Grid Sistemas Middleware Sistemas Middleware 1 1

Transcript of Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t...

Page 1: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Computación Cluster y GridComputación Cluster y Grid

Computación Cluster y Grid

Sistemas MiddlewareSistemas Middleware

11

Page 2: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Contenidos

1. Arquitecturas distribuidas: Conceptos2. Middleware:

Abstracciones y modelos de programaciónInfraestructuras

3. Tipos de middlewares:Middlewares basados en objetosMiddlewares basados en transaccionesMiddlewares basados en mensajes

4. Arquitecturas orientadas a servicios:Integración: Legacy systems y otras tecnologíasOrquestación y coordinación de serviciosEvolución y tendencias

Computación Cluster y Grid2

Page 3: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Arquitecturas Distribuidasqu tectu as st bu das

Sistema y Arquitecturay q

Computación Cluster y Grid3

Page 4: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Desarrollo de Grandes Sistemas Distribuidos

Sistema: Conjunto de elementos (distribuidos), relacionados entre sí, que llevan a cabo una función o t li bl ll dtarea, no realizable por ellos por separado.Arquitectura: La estructura organizativa de un sistema:

Descrita de forma top-down.Formada por una serie de elementos de los cuales se define:

Sus propiedades (externas): ¿qué hacen?Sus propiedades (externas): ¿qué hacen?Las relaciones entre sí.

Computación Cluster y Grid4

Page 5: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Objetivos de Diseño de una Arquitectura

El diseño de la arquitectura debe proporcionar las funcionalidades requeridas por el sistema:

Funcionalidades de negocio.Funcionalidades de sistema.Requisitos derivados: No son funcionales, pero sí de sistema y afectan a muchos elementos del mismo.Prestaciones y otras característicasPrestaciones y otras características.

D b li i d d d i t id d b tDebe cumplir propiedades de integridad y robustez.Debe permitir la evolución y mantenimiento del i tsistema.

Computación Cluster y Grid5

Page 6: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

¿Cómo Se Diseña e Implementa una Arquitectura?

El diseño se basa en vistas (a la UML):Lógica, funcional, procesos, implementación, …Despliegue: Más próxima a su implantación física, que considera dónde se ejecuta cada elemento del sistema y cómo estos elementos se envían las peticionescómo estos elementos se envían las peticiones.

La forma de poder realizar el despliegue depende lo queLa forma de poder realizar el despliegue depende lo que tengamos por debajo (la “plataforma” sobre la cual desarrollamos). Para ello necesitamos dos partes:desarrollamos). Para ello necesitamos dos partes:

El modelo conceptual de cada uno de los elementos. Abstracciones tales como: objetos, servicios, mensajes, …L i f t t d l t l í b l l d llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar la posible solución.

Computación Cluster y Grid6

Page 7: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Middleware: Conceptosdd e a e Co ceptos

Modelos de Programación e gInfraestructuras

Computación Cluster y Grid7

Page 8: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Modelos de Programación

El d ll d li i di t ib id i lEl desarrollo de aplicaciones distribuidas requiere el uso de nuevos modelos (paradigmas) de programación:programación:

Todos ellos arrancan de un substrato común: “Intercambio de mensajes en base a protocolos deIntercambio de mensajes en base a protocolos de comunicaciones”.Pero, por encima de eso hacen falta de finir unaPero, por encima de eso hacen falta de finir una serie de abstracciones, orientadas a:

Simplificar el desarrollo (detección de errores y verificación)Ocultar detalles de bajo nivel (hardware y protocolos)Aproximar las técnicas y herramientas de desarrollo a las características del dominio de aplicacióncaracterísticas del dominio de aplicación

Estas abstracciones se pueden encontrar implementadas en una o varias tecnologías.p g

Computación Cluster y Grid8

Page 9: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Modelos de Programación

L l ió d l d ll dLa evolución del desarrollo de sistemas (distribuidos) ha ido progresando en diferentes Abstraccionesp getapas de abstracción:

Funcionalidades básicas (intercambio de mensajes en

Abstracciones de Alto Nivel

(intercambio de mensajes en base a un protocolo)Encapsulamiento en llamadas a

Llamadas a Procedimientos

procedimientos remotos (RPCs)Modelos de programación con un mayor grado de abstracción:

Mensajesun mayor grado de abstracción:

¿Qué elementos definen?¿Cómo interactúan?

API: Sockets

Substrato de paso de mensajes (protocolos)

Computación Cluster y Grid9

Page 10: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Modelos de Programación

Abstracciones/modelos de programación de alto nivel:Modelos de objetos distribuidos: Extensión del modelo RPC sobre la teoría de objetos.Modelo transaccional distribuido: Control de atomicidad de una serie de llamadas remotasde una serie de llamadas remotas.Modelo de mensajes asíncronos: El procesamiento de peticiones está diferido apoyándose sobre colas depeticiones está diferido, apoyándose sobre colas de peticiones pendientes.

Computación Cluster y Grid10

Page 11: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Infraestructura

La posibilidad de desarrollar un modelo de programación concreto se basa en la existencia de una i f t t d l i l tinfraestructura de apoyo que lo implemente.Esta infraestructura:

Implica nuevas capas de software que soporten las correspondientes abstracciones.D fi (h t i t t ) t l l jDefine (hasta cierto punto) aspectos como los lenguajes de programación o las estructuras de datos.Debe mantener estructuras de información de gestiónDebe mantener estructuras de información de gestión (metadatos).Debe considerar aspectos no funcionales: prestacionesDebe considerar aspectos no funcionales: prestaciones, robustez, administración, mantenimiento, …Se apoyan en la estandarización de sus componentes y p y p yherramientas.

Computación Cluster y Grid11

Page 12: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Infraestructura

L i f t t i d l dif tLas infraestructuras asociadas a los diferentes modelos de programación son:

M d l d bj t di t ib id B k d bj tModelos de objetos distribuidos Brokers de objetos (e.g., CORBA)Modelo transaccional distribuido MonitoresModelo transaccional distribuido Monitores transaccionales (e.g., Tuxedo)Modelo de mensajes asíncronos Brokers deModelo de mensajes asíncronos Brokers de mensajes (e.g., MQSeries)

Computación Cluster y Grid12

Page 13: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Middleware

C i t i f t t d t dConsiste en una infraestructura adaptada para un modelo de programación concreto.P d i l iPuede incluir:

Se concibe como un entorno de desarrollo y ejecución l tcompleto.

Servicios y funcionalidades adicionales.Aspectos como hardware sistema operativo oAspectos como hardware, sistema operativo o lenguajes deben abstraerse. El middleware debe ser consciente de ellos, soportarlos pero nos los oculta.consciente de ellos, soportarlos pero nos los oculta.

Computación Cluster y Grid13

Page 14: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Middlewares: Tiposdd e a es pos

DOM / TOM / MOM

Computación Cluster y Grid14

Page 15: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Middleware

L i f t t i d l dif tLas infraestructuras asociadas a los diferentes modelos de programación son:

Di t ib t d Obj t Middl (DOM)Distributed Object Middleware (DOM):Modelos: Objetos distribuidos Infraestructura: Brokers de objetosInfraestructura: Brokers de objetos

Transaction Oriented Middleware (TOM):Modelo: Transacciones distribuidasInfraestructura: Monitores transaccionales

Message Oriented Middleware (MOM):Modelo: Mensajes asíncronosInfraestructura: Brokers de mensajes

Computación Cluster y Grid15

Page 16: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Objetos: Motivación

L t ió d l i d RPCLa extensión de los mecanismos de RPC a una programación orientada a objetos dio lugar a los modelos de objetos distribuidosmodelos de objetos distribuidos.Esto permite que:

L ét d t tá i d bj tLos métodos remotos están asociados a objetos remotos.Solución más natural para desarrollo orientado aSolución más natural para desarrollo orientado a objetos.Admite modelos de programación orientada aAdmite modelos de programación orientada a eventos.

Computación Cluster y Grid16

Page 17: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Objetos: Modelo de Programación

C t í tiCaracterísticas:Nivel de abstracción para la comunicación de los objetos distribuidos Oculta:objetos distribuidos. Oculta:

Localización de objetos.Protocolos de comunicación.Protocolos de comunicación.Hardware de computadora.Sistemas Operativos.

Modelo de objetos distribuidos: Describe los aspectos del paradigma de objetos que es aceptado por la tecnología: Herencia Interfaces Excepcionestecnología: Herencia, Interfaces, Excepciones, Polimorfismo, ...Recogida de basura (Garbage Collection): DeterminaRecogida de basura (Garbage Collection): Determina los objetos que no están siendo usados para a liberar recursos.

Computación Cluster y Grid17

Page 18: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Objetos: Conceptos Clave

Facetas de un objeto:La descripción del interfaz: ¿Qué puede hacer?

Lenguajes de definición: IDLRepositorios de interfaces (descubrimiento dinámico [reflexión] y validación de referencias)validación de referencias).En la fase de compilación de un interfaz IDL se genera un identificador de interfaz.

Implementación de los métodos: ¿Cómo lo hace?Resguardos: Stub/SkeletonRepositorios de implementaciones (activación bajo demandaRepositorios de implementaciones (activación bajo demanda, asocia nombres e implementaciones)La información depende del estado del objeto:

Activado: Nombre Servidor/Puerto o Dir. MemoriaNo Activado: Nombre Path al ejecutable o biblioteca

Tiene un efecto importante en la gestión de ciclos de vidaTiene un efecto importante en la gestión de ciclos de vida.

Computación Cluster y Grid18

Page 19: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Objetos: Conceptos Clave

Facetas de un objeto (cont.):Atributos y variables de estado: ¿Cómo se instancia?

Hace uso de referencias a objetos (implementación + estado)En CORBA se controlan por medio de adaptadores de objetosTipos según persistencia:Tipos según persistencia:

Referencias volátiles: Válidas mientras se ejecuta el código que la implementa (proceso, por ejemplo)Referencias persistentes: Válidas a lo largo de varias ejecuciones. Su utilización requiere:1 Asociación (referencia implementación) La referencia1. Asociación (referencia, implementación). La referencia

contiene la información necesario para consultar el repositorio de implementaciones.

2 El t d d l i t i ti2. El estado de la instancia se tiene que recuperar: Externalización + reencarnación.

Computación Cluster y Grid19

Page 20: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Objetos: Middleware

A t l t i t t t l í d d ll dActualmente existen tres tecnologías de desarrollo de sistemas distribuidos basados en objetos:

ANSA (1989 1991) f l i t i t tóANSA (1989-1991) fue el primer proyecto que intentó desarrollar una tecnología para modelizar sistemas distribuidos complejos con objetosdistribuidos complejos con objetos.DCOM/COM+ de Microsoft.CORBA de OMGCORBA de OMG.Tecnologías Java de Sun Microsytems:

Remote Method Invocation (RMI).( )Enterprise Java Beans (EJB).Jini.

fDiferentes entornos de trabajo propietarios.

Computación Cluster y Grid20

Page 21: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Monitor Transaccional: Motivación

Los modelos básicos de interacción distribuida (e.g., RPCs) presentan una serie de problemas:

Si una operación está compuesta por 2 o más servidores las solicitudes del cliente a ellos son consideradas independientemente (a pesar de ser parte de la mismaindependientemente (a pesar de ser parte de la misma operación de alto nivel).

Cliente servidor 1Cliente servidor 1Cliente servidor 2

La recuperación ante errores la debe articular particularmente cada cliente.Es difícil asegurar la robustez del sistema ante diferentes

i d f llescenarios de fallo.

Computación Cluster y Grid21

Page 22: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Monitor Transaccional: Modelo de Programación

Descripción de abstracciones de más alto nivel (soportadas por una sintaxis específicas) denominadas t itransaccionesCumplen las propiedades ACID:

Atomicity (Atomicidad): La transacción se realiza completa o no se realiza nada.C i t (C i t i ) L t d t iConsistency (Consistencia): Los estados anterior y posterior a la transacción son estados estables (consistentes)(consistentes).Isolation (Aislamiento): Los estados intermedios de la transacción son sólo visibles dentro de la propia p ptransacción.Durability (Durabilidad): Las modificaciones realizadas por una transacción completada se mantienen.

Computación Cluster y Grid22

Page 23: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Monitor Transaccional: Conceptos Clave

Estrategias de control transaccional:Arbitraje por medio de marcas de tiempo.Utilización de cerrojos:

Problemas de interbloqueos (detección y prevención)Pé did d di i t l id d dPérdida de rendimiento, granularidad y consumo de recursos

Concurrencia optimista: Fases: Trabajo validación y actualizaciónFases: Trabajo, validación y actualizaciónUso de valores tentativos que se consolidad al finalModelos: Validación hacia adelante y validación hacia atrásProblemas de inanición

Trabajo Validación ActualizaciónjT1

T2T3

Computación Cluster y Grid23

T3T4

Page 24: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Monitor Transaccional: Conceptos Clave

Protocolos de control de transacciones:Transacciones que afectan de forma atómica a objetos

residentes en varios servidores.Uso principal: transacciones distribuidas

Cuando termina la transacción (end-transaction):Si todos los procesadores implicados están de acuerdo, se “ t ”“compromete”Si algún procesador quiere abortarla o está caído, se “aborta”

Protocolo clásico two phase commit (2PC)Protocolo clásico two-phase-commit (2PC)Proceso que ejecuta transacción actúa de coordinadorRequiere almacenamiento estable: (“nunca” pierde laRequiere almacenamiento estable: ( nunca pierde la información)

Computación Cluster y Grid24

Page 25: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Monitor Transaccional: Middleware

Monitores transaccionales:Tuxedo (BEA Systems)MTS (Microsoft)

Especificaciones estándar:X/Open

Por lo general, los middleware existentes soportan funcionalidades adicionales para su integración con otro tipo de plataformas.

Computación Cluster y Grid25

Page 26: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Mensajes: Motivación

¿Qué ocurre si cliente y servidor no se encuentran ejecutando a la vez?

Requiere un elemento que recepcione la petición, la guarde y se la despache al servidor cuando éste se encuentre disponibleencuentre disponible.Se pueden implementar políticas de prioridad, caducidad de mensajes o filtrado de los mismosde mensajes o filtrado de los mismos.Permite modelos de negocio cuya construcción es una secuencia de pasos (ejecutados por diferentes ervidores) p ( j p )para resolver una tarea: Workflows.

Computación Cluster y Grid26

Page 27: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Mensajes: Modelo de Programación

Dentro de los que es un modelo asíncrono de paso de mensajes se pueden ver tres posibles submodelos:

Modelo de mensajes asíncronos: Un elemento del sistema envía un mensaje a un único receptor (que puede ser entregado a posteriori):ser entregado a posteriori):

Cardinalidad 1:1Modelo observador/observable: Se informa aModelo observador/observable: Se informa a determinados elementos del sistema cuando otro elemento cambia su estado:

Cardinalidad 1:NModelo publicación/subscripción: Los elementos no se

l i t í i ib l d trelacionan entre sí, se inscriben a canales de eventos (como generador o receptor de mensajes).

Cardinalidad N:MCardinalidad N:M

Computación Cluster y Grid27

Page 28: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Mensajes: Modelo de Programación

También hay determinados niveles de sincronización y persistencia:

a) Persistente asíncrono: El mensaje se encola en un almacenamiento externo hasta que puede ser entregado, pero el emisor no tiene certeza de su entrega.g

b) Persistente síncrono: El mensaje se almacena en la localización donde está el receptor (aunque no esté activado), y se confirma al emisor la entregase confirma al emisor la entrega

Computación Cluster y Grid28 © Ion Stioka 2003, Berkeley University

Page 29: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Mensajes: Modelo de Programación

Niveles de sincronización y persistencia (cont.):c) Volátil asíncrono: El envío del mensaje sólo es posible si el

receptor existe y está listo para recibir el mensajereceptor existe y está listo para recibir el mensaje.d) Volátil síncrono (en recepción): El emisor se bloquea hasta que

se confirma la recepción del mensaje (el receptor debe existir, en cualquier caso)

Computación Cluster y Grid29 © Ion Stioka 2003, Berkeley University

Page 30: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Mensajes: Modelo de Programación

Niveles de sincronización y persistencia (cont.):e) Volátil síncrono (en entrega): El emisor se bloquea hasta que

se confirma que al receptor se le ha entregado el mensaje (else confirma que al receptor se le ha entregado el mensaje (el receptor debe existir, en cualquier caso)

f) Volátil síncrono (en respuesta): El emisor se bloquea hasta que el receptor responde al mensaje (el receptor debe exitir, en cualquier caso)

Computación Cluster y Grid30 © Ion Stioka 2003, Berkeley University

Page 31: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Mensajes: Conceptos Clave

Gestión de las colas de mensajes:El destinatario controla el momento en el que procesa los mensajes:

Estar en recepción permanente.Comprobar su “buzón” de entrada periódicamente de forma noComprobar su buzón de entrada periódicamente de forma no bloqueante.Forzar a posibles emisores a enviar mensajes (polling): Especialmente en modelos publicación/subscripción.

Compartición de colas y receptores:Las colas pueden estar compartidas (cualquier recoge el mensaje oLas colas pueden estar compartidas (cualquier recoge el mensaje o todos lo reciben): Determina cuándo se consumen los mensajes.Las colas pueden tener diferente prioridad y un receptor atenderá siempre a la cola más prioritaria. La prioridad se puede definir también a nivel de mensaje.

Computación Cluster y Grid31

Page 32: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Mensajes: Conceptos Clave

Direccionamiento:El direccionamiento de los mensajes se hace por identificador de cola.Permite una gran escalabilidad con “estafetas” i t di l í d l jintermedias en el envío de los mensajes.Se pueden articular mecanismos de tolerancia a fallos en los receptoreslos receptores.

Respaldo del broker de mensajes:El b k d l i t t blEl broker puede usar almacenamiento estable para no perder mensajes si se cae.Tolerancia a fallos a ni el de cola de mensajesTolerancia a fallos a nivel de cola de mensajes.Permite gestionar acuses de recibos o control transaccionaltransaccional.

Computación Cluster y Grid32

Page 33: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Broker de Mensajes: Middleware

Middleware completos de colas de mensajes:MQSeries (IBM)MSMQ (Microsoft)

Servicios de colas de mensajes de otros entornos:JMS (Java)COSS Event/Notification (CORBA)

Un caso especial de los middleware orientados a pmensajes son los SOM (Stream Oriented Middlewares):

Distribución de streams de datos (e.g., vídeo o audio).Gestión de QoS.Problemas de distribución multicast.Soporte RSVP o similares.

Computación Cluster y Grid33

Page 34: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Middlewares: Arquitecturas Orientadas a ServiciosSe c os

SOA / ESB / EAI

Computación Cluster y Grid34

Page 35: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Concepto de ServicioU i i t (d i ) lUn servicio es una tarea (de negocio) que cumple una serie de características:

E tibl ( d li i )Es repetible (se puede realizar varias veces).Es auto-contenida (sin dependencias visibles con otros servicios poco acoplada)servicios, poco acoplada).Está disponible (permanece a la espera hasta que se activa)activa).Es de grano-grueso (tiene una entidad apreciable).

Que tiene asignadas una serie de propiedades:Que tiene asignadas una serie de propiedades:Calidad del servicio.Coste del servicioCoste del servicio.Qué debe generar el servicio (pero no cómo debe hacerlo).)

Computación Cluster y Grid35

Page 36: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Contexto y Estado de un ServicioL i i d b i d di t dLos servicios deben ser independientes de contexto:

N i d i t t d (t d lNo quiere decir que no tengan estado (todo lo contrario por lo general).Quiere decir que sean débilmente acopladosQuiere decir que sean débilmente acoplados(reutilizables en diferentes contextos).

Esta característica hace que se puedan combinar en diferentes escenarios:diferentes escenarios:

La combinación de servicios en sí puede ser otro servicio:

Reservar un vueloReservar un hotelReservar un coche de alquiler

Computación Cluster y Grid36

Page 37: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Interacción con Servicios (I)Cada servicio encapsula unCada servicio encapsula un proceso de negocio (unidad básica de negocio).Participantes:

Proveedor de Servicio:Servicio sin contexto y

ServiceRegistry

Servicio sin contexto y transparente (localización)

Consumidor del ServicioUsa los servicios del

Find Register1

Usa los servicios del proveedor para sus procesos de negocio

Registro de ServiciosServiceProvider

ServiceConsumer

Bind,Execute

2

Registro de ServiciosPone en contacto a proveedor y consumidor.

El consumidor del servicio

3

El consumidor del servicio debe realizar: Find, Bind, Execute

Estructura genérica de los participantes en una solicitud de servicios © Marc Brooks, The MITRE Corporation

Computación Cluster y Grid37

Page 38: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Interacción con Servicios (II)

Se articula por medio de interfaces: oo oo

Integración del Interfaz y del Serviciointerfaces:

De carácter no propietario (mismo servicio mismo interfaz). N

uevo

Nue

voSe

rvic

ioSe

rvic

io

La implementación tras el interfaz puede cambiarse (sin afectar al servicio).

Wra

pper

Wra

pper

Para

Para

Lega

cyLe

gacy

se c o)Por su parte el consumidor tendrá un proxy del interfaz para poder cursar las peticiones

WW LLioio st

ost

o

cursar las peticiones.

Serv

ici

Serv

ici

Com

pues

Com

pues

InterfazInterfazde Serviciode Servicio

ImplementaciónImplementacióndel Serviciodel Servicio

CC

Proxy delProxy delInterfazInterfaz de Serviciode Servicio del Serviciodel ServicioInterfazInterfaz

Consumidor del ServicioConsumidor del Servicio

Computación Cluster y Grid38

Page 39: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Interacción con Servicios (y III)El d l d i t ió ti d á fl iblEl modelo de interacción tiende a ser más flexible que Request/Response:

El id d i i i t iEl consumidor de servicios expresa sus intenciones (Intent)El proveedor de servicios indica su oferta (Offers)El proveedor de servicios indica su oferta (Offers).De alguna forma se articula una mediación para ajustar intenciones y ofertas Se puede hacer porajustar intenciones y ofertas. Se puede hacer por medio de:

Buscar la oferta (entre varias disponibles) que mejor se ajusta a la intención del consumidor.Anunciar cada oferta de diferentes formas (parámetros) de forma que pueda ajustarse a diferentes intenciones.forma que pueda ajustarse a diferentes intenciones.

Los protocolos Intent/Offers requieren la existencia p qde directorios de servicios.

Computación Cluster y Grid39

Page 40: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Escenario IdealL i t ió i i itLa orientación a servicios permite:

A los solicitantes:C bi lib t d i t t l lCombinar con libertad escenarios y contextos en los cuales se usen y combinen servicios.Expresar sus intenciones sobre una necesidad de servicio más pque una petición (sin flexibilidad).

A los proveedores:O i i ió d l i i d ió lOptimización del servicio como centro de atención en el desarrollo. Mejor calidad de servicio y robustez.Oferta de sus servicios a un espectro más amplio de clientes.p pResolución de problemas de localización y conexión.

Respuesta ideal para B2B o B2C y otras interacciones.

Computación Cluster y Grid40

Page 41: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

SOA vs. Objetos DistribuidosA i l t l SOA difi d l bj t di t ib idA nivel conceptual SOA difiere de los objetos distribuidos en que el interfaz de acceso a un servicio es genérico recibe un mensaje en un formato complejo, en lugar de más o menos j p j , gparámetros predeterminados por el interfaz.

Entrada (1 mensaje)Entrada (varios parámetros)Análisis del mensajeEntrada (1 mensaje)

Argumentos de la operaciónConversión de tipos

Entrada (varios parámetros)

Argumentos de la operación

OperaciónOperación Operación

ServicioServicio

Operación

Objeto DistribuidoObjeto Distribuido ServicioServicioObjeto DistribuidoObjeto Distribuido

Computación Cluster y Grid41

Page 42: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Arquitecturas

Arquitectura de aplicación: Solución de cara al negocioSolución de cara al negocio con consume uno o varios servicios de diferentes proveedoresproveedores.

Arquitectura de componentes: Lacomponentes: La implementación de los objetos de negocio asociado

l ía una tecnología determinada.

Arquitectura de servicios: Visión lógica de los servicios disponibles.© David Sprott and Lawrence Wilkes CBDI Forum p© David Sprott and Lawrence Wilkes , CBDI Forum

Computación Cluster y Grid42

Page 43: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

¿Cómo se Implementa una SOA?SOA it t ft é iSOA es una arquitectura software genérica no una tecnología, su implementación puede hacerse por medio de tecnologías concretas:medio de tecnologías concretas:

Servicios WebCORBACORBARESTTecnologías Java (JBI JES)Tecnologías Java (JBI, JES)Otras: (ESB,

Atención: Ni toda SOA está hecha en WS ni todo WS implementa una SOAWS implementa una SOA.

Computación Cluster y Grid43

Page 44: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Tecnologías/Conceptos Asociados (I)L t t l i dLos otros conceptos relacionados son:

ESB (Enterprise Service Bus) tipo de arquitectura basada en estándares que proporciona un motor debasada en estándares que proporciona un motor de mensajes dirigido por eventos. Puede no implementarse con servicios web y puede valer como l t f SOA ( l i t )plataforma para SOA (aunque no exclusivamente).

Implica una tecnología de implantación.SOMA (Service-Oriented Modelling andSOMA (Service Oriented Modelling and Architecture) enfoques formales y metodologías para el desarrollo de soluciones SOA (propuesto por IBM).EII (E t i I f ti I t ti ) dEII (Enterprise Information Integration) proceso de abstracción de datos para el acceso uniforme a los mismos. Incluye y engloba diferentes tecnologías demismos. Incluye y engloba diferentes tecnologías de acceso a datos heterogéneas (ODBC, JDBC, ADO.NET, XQuery) para diferentes procesos de consumo de los mismo desde los clientesconsumo de los mismo desde los clientes.

Computación Cluster y Grid44

Page 45: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Tecnologías/Conceptos Asociados (y II)BPM (B i P M t) t t iBPM (Business Process Management) estrategias de gestión de procesos de negocio. Por medio de un sistema de reglas (o redes) se define la dinámica delsistema de reglas (o redes) se define la dinámica del negocio, por medio de un motor dichas reglas se consultan y aplican. Por último se definen reglas de y p gmonitorización del proceso. EAI (Enterprise Application Integration) propuesta arquitectónica de integración de servicios (anterior a SOA), orientada a los sistemas de información de la propia empresa La finalidad es articular aplicacionespropia empresa. La finalidad es articular aplicaciones del tipo CRM, BI o Supply Chain Management. Se basan en dos tipos de modelos:p

Hub: Sistema central de recepción de información y reenvío.Bus: En un sistema de mensajería del tipo MoM (Message

i t d iddl )oriented middleware)

Computación Cluster y Grid45

Page 46: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Integración de Tecnologíasteg ac ó de ec o og as

Legacy Systems & Integración a nivel de g y y gempresa

Computación Cluster y Grid46

Page 47: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Legacy Systems

Problemática:El grado de acoplamiento esEl grado de acoplamiento es diferente.Los modelos originales de Fichero

d t tinteracción son en base a ficheros.En muchos casos son modelos

de texto

En muchos casos son modelos batch.Otros casos, sustitución de llamadas tipo RPC por WS

Serviciollamadas tipo RPC por WS. Se pueden dar casos de accesos directos a bases de datos (nuevos servicios).

dapta

dor

Ad Cola

Computación Cluster y Grid47

Page 48: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Integración a Nivel de EmpresaR iRequiere:

Resolución de los problemas de interacción (desarrollo (con tecnologías más avanzadas).Definición de la secuenciaDefinición de la secuencia de operaciones de un proceso de negocio.Empaquetado de las operaciones unitarias en servicios.Adopción de una tecnologías de integración de servicios (ESB)(ESB).

© Cape Clear, 2005

Computación Cluster y Grid48

Page 49: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Coordinación de ServiciosCoo d ac ó de Se c os

Orquestación, BPMS & BPELq ,

Computación Cluster y Grid49

Page 50: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Orquestación vs. CoreografíaE i t d té i l i d l tió dExisten dos términos relacionados en la gestión de

servicios:Orquestación (Orchestation): Representa laOrquestación (Orchestation): Representa la ordenación y gestión de servicios desde la perspectiva de un participante (un proceso de negocio). Existe un

l di dsolo coordinador.Coreografía (Choreography): Tiene un ámbito más amplio e implica la coordinación de todos losamplio e implica la coordinación de todos los participantes de un sistema complejo entero. Existe una política en la que varios elementos se coordinan y

j t t íse ajustan entre sí.Una diferencia muy sutil (en el plano teórico).E b t d fi i iEn ambos casos representan definiciones declarativas de cómo se deben realizar uno o varios procesos denominadas a veces como reglas deprocesos, denominadas a veces como reglas de negocio (business rules)

Computación Cluster y Grid50

Page 51: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Gestión de Negocio (I)L i t i l t BPM d i dLos sistemas que implementan BPM, denominados habitualmente Business Process Management System (BPMS) utilizan lenguajes de descripciónSystem (BPMS) utilizan lenguajes de descripción de procesos:

BPEL (Business Process Execution Language)BPEL (Business Process Execution Language)lenguaje XML de orquestación de servicios. Extensión de:

WSFL (de IBM) XLANG (de BizTalk-Microsoft).

Actualmente estandarizado por OASIS.Otros lenguajes son (BPML – Business Process M d li L [ t i ] WS CDL W bModeling Language [anterior], y WS-CDL – Web Services Choreography Description [sin implementación])implementación]).

Computación Cluster y Grid51

Page 52: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Gestión de Negocio (II)BELPBELP:

Define procesos de negocio interoperables y protocolos de negocio.gPermite componer servicios nuevos a partir de otros.Define estructuras de control (if…then…else, while, sequence, fl )flow)Gestiona variables del proceso y mensajes (entrantes y salientes). SAP Mainframe

CheckInventory

FormulateFulfillment

OfferSubmitOrder

Inventory

CheckCredit

SendResult to

User

Offer

FormulateRejection

CanFulfill?

TransformOrder/

Customer

DetermineDiscount

Portal Java Web App

Computación Cluster y Grid52

Page 53: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Gestión de Negocio (III)

10:00amstart

BPEL Flow<process><variable>

Handle Negative Credit Exception

Discount Service

Get Discount<faultHandlers>

<invoke><flow>

Credit Service InventoryService

Send Credit Application Send Inventory Request<partnerLink>

<invoke>

<flow>

Receive Credit Result Receive Inventory Result<partnerLink> <partnerLink>

<receive>

Determine if Can Fulfill

?

Receive Credit Result Receive Inventory Result

<switch>

<partnerLink> <partnerLink>

</flow>

end03:00pm</process>

© Oracle, SOA – Oracle Development Day

Computación Cluster y Grid53

Page 54: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Gestión de Negocio (y IV)

de u

n or

med

io d

s B

PE

L po

pse)

rg/b

pel/

proc

esos

áfic

o (E

cli

ojec

tec

lipse

.or

dici

ón d

e nt

orno

grá

BP

EL

pro

tp://

ww

w.e

Ed

en ©

htt

Computación Cluster y Grid54

Page 55: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Evolucióno uc ó

Estandarización y Aceptación del y pMercado

Computación Cluster y Grid55

Page 56: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Estándares de SOA/Web Services

Fuente: http://roadmap.cbdiforum.com/reports/protocols/

Computación Cluster y Grid56

Page 57: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Expectativas de Implantación

Computación Cluster y Grid57

Page 58: Computación Cluster y Grid - UPMlaurel.datsi.fi.upm.es/_media/docencia/asignaturas/ccg/...yLif t t d l t l í b l ld llLa infraestructura de apoyo, la tecnología sobre la cual desarrollar

Bibliografía y Referencias

Artículos divulgativos“What is Service Oriented Architecture?” Hao He http://webservices xml com/lpt/a/ws/2003/09/30/soa htmlWhat is Service-Oriented Architecture? . Hao He. http://webservices.xml.com/lpt/a/ws/2003/09/30/soa.html

“Service-Oriented Architecture: A Primer”. Michael S. Pallos. http://www.bijonline.com/PDF/SOAPallos.pdf

“The Benefits of a Service-Oriented Architecture”. M. Stevens. http://www.developer.com/design/article.php/1041191http://www.developer.com/design/article.php/1041191

“Magic Quadrant for the Integrated Service Environment Market” Daryl C. Plummer, David W. McCoy and Charles Abrams (Gartner) http://www.gartner.com/DisplayDocument?doc_cd=137074

EstándaresEstándaresWeb Services Specifications - http://www.w3.org/2002/ws/

OASIS - http://www.oasis-open.org/committees/tc_cat.php?cat=soa

CompañíasMicrosoft - http://msdn.microsoft.com/architecture/soa/

IBM - http://www.ibm.com/developerworks/soa

BEA Systems - http://www.bea.com/content/solutions/soa/

SAP AG - http://www.sap.com/platform/esa/index.epxp p p p

Computación Cluster y Grid58