Tabla de Contenidos

Patrones de Integración

Las aplicaciones actuales interaccionan unas con otras y le hacen frente a los siguientes problemas:

Los desarrolladores suelen adoptar las siguientes soluciones:

Elementos

Mensaje

es una estructura de datos, puede ser un string, byte array, registro o un objeto Se puede interpretar como:

Tiene 2 partes:

Canal

Son vías lógicas que conectan los programas y el listado de mensajes.

Se comportan como una colección de mensajes.

Se comparten entre ordenadores.

Múltiples aplicaciones pueden usarlos simultáneamente.

Sender y Receiver

Lo que serían el emisor y el receptor

Sistema de mensajería

El envío de mensajes se realiza a través de un sistema de mensajería. Hay que diferenciar entre sistema de mensajería y una base de datos:

Pasos para transmitir un mensaje

  1. Create: El emeisor crea un mensaje y guarda los datos
  2. Send: el emisor añade el mensaje al canal
  3. Deliver: El sistema de mensajería lo entrega al receptor
  4. Receive: El receptor lee el mensaje del canal
  5. Process: el receptor extrae los datos del mensaje

Conceptos importantes

Por que usar mensajería

Retos del envío asíncrono

El problema de esto es que cambia el modelo de programación ya que estamos hablando de comunicaciones asíncronas. Para solucionar esto se mete un sistema de mensajería con una URL de retorno o leemos de otro sistema de mensajería para que nos confirme la recepción y procesamiento del mensaje. La URL invocaría un servicio para indicar que hemos terminado y continuar.

Implicaciones

Motivación

Resumen

Patrones

Message Channel

Una aplicación necesita comunicarse con otra mediante mensajería, se implementa conectando la aplicación mediante el uso de un canal de mensajes. Una aplicación escribe información en un extremo del canal y otra lee la info del otro extremo.

Message

Se necesita que dos aplicaciones conectadas por un canal de mensajes intercambien informacion. Para ello se empaqueta la info en un mensaje, un conjunto de datos que el sistema de mensajería puede trasnmitir a través del canal.

Pipes and Filters

Se busca ejecutar tareas de procesamiento complejas sobre un mensaje manteniendo la independencia y la flexibilidad. Para ello se usa le estilo arquitectónico de tuberías y filtros para dividir las tareas de procesamiento largas en secuencias de pasos pequeños e independientes llamados filtros que son conectados por canales de mensajes llamados tuberías.

Message Router

Se busca desacoplar pasos de procesamiento individuales de manera que los mensajes puedan pasar por distintos filtros dependiendo de una serie de condiciones.

Message Translator

En sistemas con formatos de datos diferentes se busca comunicarlos entre sí usando mensajería. Apara ello se utiliza un tipo especial de filtro que traduzca los mensajes o aplicaciones para traducir los mensajes de un sistema a otro.

Message Endpoint

Una aplicación se conecta a un canal de mensajería para enviar y recibir mensajes. Para ello se conecta la aplicación a un canal de mensajes utilizando un extremo de mensajería, un cliente del sistema de mensajería que la aplicación puede usar para enviar y recibir mensajes.

point to point

Publish-Suscribe Channel

Un emisor envía un evento a todos los receptores interesados. Se envia el elemento a través del canal publicar-suscribir que entrega una copia del evento a cada receptor interesado en el mismo.

Channel adapter

Se conecta una aplicación cerrada a un sistema de mensajería de manera que pueda enviar y recibir mensajes. Se usa un adaptador que puede acceder a la API o los datos de la aplicación y publicar mensajes con estos datos en el canal. Así mismo, el adaptador permitirá recibir mensajes e invocar funcionalidades de la aplicación.

Message Bus

Permite a aplicaciones trabajar juntas de una forma desacoplada, de manera que las aplicaciones puedan ser eliminadas o añadidas sin afectar a otras.

Command Message

usa la mensajería para invocar un procedimiento de otra aplicación.

Document Message

Utiliza la mensajería para transferir datos entre aplicaciones.

Event Message

Usar la mensajería para transmitir eventos entre aplicaciones. Utiliza un mensaje evento para la notificación asíncrona de eventos entre aplicaciones.

Message Filter

Busca evitar que una aplicación reciba ciertos mensajes. Se usa para eliminar mensajes no deseados de un canal de acuerdo a ciertos criterios dados.

Splitter

Procesa un mensja e que contiene múltiples elementos, troceándolos

Content Enricher

Comunica una aplicación con otra si el mensaje de origen no tiene toda la información requerida para alcanzar el destino.

Messaging Gateway

Hace un salto entre 2 sistemas de mensajerías distintas.

Message Dispatcher

Coordinar a múltiples consumidores en un único canal

Control Bus

Administra eficientemente un sistema de mensajería distribuido. Usa un bus de control 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.