Messaging transfiere paquetes de datos de forma confiable, frecuente, inmediata y asíncronamente, usando formatos de datos personalizados.
La desincronización es importante porque se pueden enviar datos sin estar listos para recibirlos aún. El desacoplamiento de los formatos de datos hace que múltiples sistemas puedan recibir mensajes.
Sistemas de Mensajería
Podemos encontrar los siguientes componentes:
Message Channel: Es una conexión particular dentro de un sistema de mensajería que permite a las aplicaciones transmitir información de manera predeterminada y predecible. Un conjunto de canales bien diseñados forman un Message Bus que actúa como un API para un grupo entero de aplicaciones. Una aplicación escribe información al canal y la otra lee información de ese canal particular. Existen diferentes canales de mensajería para los diferentes tipos de información que las aplicaciones quieran transmitir. Para anular las diferencias entre diferentes tipos de datos existen DataTypes Channels, y para mensajes inválidos se utiliza Invalid Message Channel. Existen dos tipos de Message Channels:
- Point-to-Point Channels
- Publish-Subscribe Channels
Message: Es una pieza de datos transmitida como byte-stream a través de una canal que consiste de dos partes básicas:
- Header: información usada por el sistema de mensajería que describe el datos siendo transmitido, su origen, su destino, etc.
- Body: el dato siendo transmitido, generalmente ignorado por el sistema de mensajería y simplemente transmitido como es.
Cualquier dato transmitido dentro de un sistema de mensajería puede ser convertido dentro de uno o más mensajes enviados a través de canales de mensajería.
Tipos de mensaje:
Command Message: invoca un procedimiento en otra aplicación
Document Message: pasa una serie de datos a otra aplicación
Event Message: notificar a una aplicación el cambio en otra
Pipes and Filters: Divide una tarea de procesamiento más grande en una secuencia de pasos independientes más pequeños (filtros) que son conectados por canales (pipes). Estas tareas pueden ser desencriptar mensajes, utilizar un mecanismo de autenticación o eliminar mensajes duplicados. También se pueden procesar en paralelo. Son muy utilizados para tareas de prueba y comparar resultados.
Message Router: Se conectan a múltiples canales de salida (Message Channels). Consumen un mensaje de un Message Channel y república a un diferente Message Channel dependiendo de una serie de condiciones. Si cambia el tipo de mensaje, nuevos componentes de procesamiento son agregados, o cambian las reglas de enrutamiento, solo se debe cambiar el Message Router.
Message Translator:Traduce un formato de dato entre filtros o aplicaciones, ayudando a desacoplar los formatos de datos entre aplicaciones.
Message Endpoint (especialización de Channel Adapter): Una aplicación puede contener un conjunto de código que conecta y une el dominio de mensajería. Conectando una aplicación a un canal de mensajería usando un Message Endpoint, se utiliza un cliente del sistema de mensajería para que la aplicación pueda enviar o recibir mensajes. Esto hace que para la aplicación sea transparente el conocimiento sobre formatos de datos, canales de mensajería o cualquier otro detalle de comunicación, es decir, se encapsula el sistema de mensajería y personaliza el API de mensajería para una aplicación específica o una tarea. Si el sistema de mensajería cambia, solo basta con cambiar el Message Point. Una aplicación puede tener más de un Message Point debido a que un Message Point es específico a un canal.
No hay comentarios:
Publicar un comentario