Patrones de Integración - us

21
12/05/2013 1 Arquitectura e Integración de Sistemas Software Departamento de Lenguajes y Sistemas Informáticos Patrones de Integración BLOQUE II: Integración de Sistemas Software Tema 9 Curso 2012/2013 Introducción Patrones de integración Bibliografía Índice

Transcript of Patrones de Integración - us

Page 1: Patrones de Integración - us

12/05/2013

1

Arquitectura e Integración de Sistemas Software

Departamento de Lenguajes y

Sistemas Informáticos

Patrones de Integración

BLOQUE II: Integración de Sistemas Software

Tema 9

Curso 2012/2013

Introducción

Patrones de integración

Bibliografía

Índice

Page 2: Patrones de Integración - us

12/05/2013

2

Introducción

Patrones de integración

Bibliografía

Índice

IntroducciónEjemplo

Una empresa quiere hacer que varias de sus herramientas trabajen juntas ofreciendo una nueva funcionalidad.

Han decidido usar mensajería para llevar a cabo la integración.

Problemas:

¿Cómo diseñar una solución adecuada?

¿Cómo describir la solución de integración?

Page 3: Patrones de Integración - us

12/05/2013

3

Introducción

¡Una idea!

Usar un conjunto de soluciones predefinidas para problemas recurrentes (patrones).

Usar un vocabulario consistente y una notación visual para describir soluciones de integración a gran escala e independientes de la tecnología usada.

Introducción

Un patrón es una solución general para un problema que aparece con frecuencia en un dominio determinado.

Un patrón no es una solución completa sino un una guía/esqueleto que debe ser adaptado para cada problema específico.

Idea intuitiva: “Cuando te encuentres este problema, aplica esta solución”.

Problema Solución

Page 4: Patrones de Integración - us

12/05/2013

4

Introducción

Introducción

Page 5: Patrones de Integración - us

12/05/2013

5

Introducción

Patrones de integración Patrones básicos

Canales de mensajes

Construcción de mensajes

Enrutamiento de mensajes

Manipulación de mensajes

Extremos de mensajería

Gestión del sistema

Resumen

Bibliografía

Índice

Message channel

¿Cómo puede una aplicación comunicarse con otra usando mensajería?

Conectar la aplicación usando un canal de mensajes (messagechannel), donde una aplicación escribe información en un extremo del canal y la otra lee la información en el otro extremo.

Page 6: Patrones de Integración - us

12/05/2013

6

Message (I)

¿Cómo pueden dos aplicaciones conectadas por un canal de mensajes intercambiar información?

Empaquetar la información en un mensaje (message), un conjunto de datos que el sistema de mensajería puede transmitir a través de un canal de mensajes.

Message (II)

Un mensaje consta de dos partes básicas:

• Cabecera. Información usada por el sistema de mensajería para describir los datos que se están transmitiendo (origen, destino, etc.)

• Cuerpo. Contenido del mensaje. Generalmente es ignorado por el sistema de mensajería y es enviado tal cual.

Este sistema es similar al usado en las redes de comunicaciones.

Page 7: Patrones de Integración - us

12/05/2013

7

Pipes and filters

¿Cómo podemos ejecutar tareas de procesamiento complejas sobre un mensaje manteniendo la independencia y la flexibilidad?

Usar el estilo arquitectónico tuberías y filtros (pipes and filters) para dividir tareas de procesamiento largas en una secuencia de pasos pequeños e independientes (filtros) que son conectados por canales de mensajes (tuberías).

Message router

¿Cómo podemos desacoplar pasos de procesamiento individuales de manera que los mensajes puedan pasar por distintos filtros dependiendo de una serie de condiciones?

Insertar un tipo especial de filtro, enrutador de mensajes (message router), que consume un mensaje de un canal de mensajes y lo redirige a diferentes canales en función de una serie de condiciones.

Page 8: Patrones de Integración - us

12/05/2013

8

Message translator

¿Cómo pueden sistemas con formatos de datos diferentes comunicarse entre sí usando mensajería?

Usar un tipo especial de filtro, un traductor de mensajes (messagetranslator), entre otros filtros o aplicaciones para traducir de un formato a otro.

Message endpoint

¿Cómo puede una aplicación conectarse un canal de mensajes para enviar y recibir mensajes?

Conectar la aplicación a un canal de mensajes usando un extremo de mensajería (message endpoint), un cliente del sistema de mensajería que la aplicación puede usar para enviar y recibir mensajes.

Page 9: Patrones de Integración - us

12/05/2013

9

Introducción

Patrones de integración Patrones básicos

Canales de mensajes

Construcción de mensajes

Enrutamiento de mensajes

Manipulación de mensajes

Extremos de mensajería

Gestión del sistema

Resumen

Bibliografía

Índice

Point-to-point channel

¿Cómo puede la aplicación que envia el mensaje estar segura de que sólo un receptor recibirá el mensaje?

Enviar el mensaje usando un canal punto a punto (point-to-point channel), para asegurar que sólo un receptor recibirá el mensaje.

Page 10: Patrones de Integración - us

12/05/2013

10

Publish-suscribe channel

¿Cómo puede un emisor enviar un evento a todos los receptores interesados?

Enviar el evento a través de un canal publicar-suscribir (publish-subscribe channel), que entrega una copia del evento a cada receptor interesado en el mismo.

Channel adapter

¿Cómo podemos conectar una aplicación cerrada a un sistema de mensajería de manera que pueda enviar y recibir mensajes?

Usar un adaptador (channel adapter) que puede acceder a la API o los datos de la aplicación y publicar mensajes con esos datos en el canal. Así mismo, el adaptador permitirá recibir mensajes e invocar funcionalidad de la aplicación.

Page 11: Patrones de Integración - us

12/05/2013

11

Message bus

¿Qué arquitectura permite a aplicaciones trabajar juntas pero de una forma desacoplada de manera que las aplicaciones puedan ser añadidas o eliminadas sin afectar a las otras?

Estructurar las aplicaciones haciendo uso de un bus de mensajes (MessageBus) que les permita trabajar juntas usando mensajería.

Introducción

Patrones de integración Patrones básicos

Canales de mensajes

Construcción de mensajes

Enrutamiento de mensajes

Manipulación de mensajes

Extremos de mensajería

Gestión del sistema

Resumen

Bibliografía

Índice

Page 12: Patrones de Integración - us

12/05/2013

12

Command message

¿Cómo puede usarse la mensajería para invocar a un procedimiento de otra aplicación?

Usar un mensaje comando (command message) para invocar a un procedimiento de otra aplicación.

Document message

¿Cómo puede la mensajería utilizarse para transferir datos entre aplicaciones?

Usar un mensaje documento (document message) para transferir datos entre aplicaciones.

Page 13: Patrones de Integración - us

12/05/2013

13

Event message

¿Cómo puede usarse la mensajería para transmitir eventos entre aplicaciones?

Usar un mensaje evento (event message) para la notificación asíncrona de eventos entre aplicaciones.

Introducción

Patrones de integración Patrones básicos

Canales de mensajes

Construcción de mensajes

Enrutamiento de mensajes

Manipulación de mensajes

Extremos de mensajería

Gestión del sistema

Resumen

Bibliografía

Índice

Page 14: Patrones de Integración - us

12/05/2013

14

Message filter

¿Cómo puede una aplicación evitar recibir determinados mensajes?

Usar un filtro de mensajes (message filter), para eliminar mensajes no deseados de un canal de acuerdo a unos criterios dados.

Splitter

¿Cómo podemos procesar un mensaje que contiene múltiples elementos, cada uno de los cuales tiene que ser procesado de una forma diferente?

Usar un divisor (splitter) para dividir el mensaje compuesto en un conjunto de mensajes individuales donde cada mensaje contendrá datos que deben ser procesados de forma diferente.

Page 15: Patrones de Integración - us

12/05/2013

15

Aggregator

¿Cómo podemos combinar mensajes individuales de manera que puedan ser procesados como un todo?

Usar un filtro con estado, un agregador (aggregator), para recibir y almacenar mensajes individuales que posteriormente son fusionados en uno sólo.

Introducción

Patrones de integración Patrones básicos

Canales de mensajes

Construcción de mensajes

Enrutamiento de mensajes

Manipulación de mensajes

Extremos de mensajería

Gestión del sistema

Resumen

Bibliografía

Índice

Page 16: Patrones de Integración - us

12/05/2013

16

Content enricher

¿Cómo podemos comunicar una aplicación con otra si el mensaje de origen no tiene toda la información requerida por la aplicación destino?

Usar un tipo específico de transformador, un enriquecedor de contenido (content enricher), para acceder a una fuente de datos externos y añadir información adicional al mensaje.

Content filter

¿Cómo podemos simplificar el trabajo con un mensaje grande cuando sólo nos interesa parte del contenido?

Usar un filtro de contenido (Content Filter) para eliminar los datos no deseados del mensaje.

Page 17: Patrones de Integración - us

12/05/2013

17

Introducción

Patrones de integración Patrones básicos

Canales de mensajes

Construcción de mensajes

Enrutamiento de mensajes

Manipulación de mensajes

Extremos de mensajería

Gestión del sistema

Resumen

Bibliografía

Índice

Messaging gateway

¿Cómo podemos encapsular el acceso al sistema de mensajería desde el resto de la aplicación?

Usar un punto de acceso (messaging gateway), un elemento que envuelve a los métodos del sistema de mensajería y expone métodos específicos del dominio a la aplicación.

Page 18: Patrones de Integración - us

12/05/2013

18

Message dispatcher

¿Cómo pueden múltiples consumidores en un único canal coordinarse para procesar los mensajes?

Crear un distribuidor de mensajes (message dispatcher) que consuma los mensajes del canal y los distribuya entre los responsables de procesarlos.

Introducción

Patrones de integración Patrones básicos

Canales de mensajes

Construcción de mensajes

Enrutamiento de mensajes

Manipulación de mensajes

Extremos de mensajería

Gestión del sistema

Resumen

Bibliografía

Índice

Page 19: Patrones de Integración - us

12/05/2013

19

Control Bus

¿Cómo podemos administrar eficientemente un sistema de mensajería distribuido?

Usar un bus de control (control bus) para gestionar una solución de integración. El bus usa los mismos mecanismos que el sistema de mensajería pero usa sus propios canales y mensajes para transmitir datos relevantes para la gestión y monitorización del sistema.

Introducción

Patrones de integración Patrones básicos

Canales de mensajes

Construcción de mensajes

Enrutamiento de mensajes

Manipulación de mensajes

Extremos de mensajería

Gestión del sistema

Resumen

Bibliografía

Índice

Page 20: Patrones de Integración - us

12/05/2013

20

Resumen

Categoría Patrones

Patrones básicos

Message channelMessagePipes and filtersMessage routerMessage translatorMessage endpoint

Canales de mensajes

Point-to-Point channelPublish-suscribe channelChannel adapterMessage bus

Construcción de mensajesCommand messageDocument messageEvent message

Enrutamiento de mensajesMessage filterSplitterAggregator

Manipulación de mensajesContent enricherContent filter

Extremos de mensajeríaMessaging gatewayMessaging dispatcher

Gestión del sistema Control bus

Introducción

Patrones de integración

Bibliografía

Índice

Page 21: Patrones de Integración - us

12/05/2013

21

Bibliografía

Gregor Hohpe, Bobby Woolf. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

http://www.eaipatterns.com/

All material displayed on this presentation is for teaching and personal use only.

Many of the images that have been used in the presentation are Royalty Freeimages taken from http://www.everystockphoto.com/. Other images have beensourced directly from the Public domain, from where in most cases it is unclearwhether copyright has been explicitly claimed. Our intention is not to infringeany artist’s copyright, whether written or visual. We do not claim ownership ofany image that has been freely obtained from the public domain. In the eventthat we have freely obtained an image or quotation that has been placed in thepublic domain and in doing so have inadvertently used a copyrighted imagewithout the copyright holder’s express permission we ask that the copyrightholder writes to us directly, upon which we will contact the copyright holder torequest full written permission to use the quote or images.

Disclaimer and Terms of Use