Bróker de Mensajería

Antes de explicar qué es y en qué consiste un bróker de mensajería, vamos a aclarar dos conceptos que ayudarán a entenderlo mejor.

 Middleware

Es un software que ayuda a interactuar o comunicarse entre diferentes aplicaciones, facilitando las conexiones y sincronizaciones, abstrayendo la complejidad de las redes de conexiones, sistemas operativos y lenguajes de programación.

Debes tener en cuenta que existen diferentes tipos de middleware debido a las diferentes formas en que pueden ser aplicados. Aquí solo trataremos el orientado a mensajes, el cual se explicará en el siguiente punto.

Middleware orientado a mensajes (MOM)

Se trata de una infraestructura basada en un software o hardware que soporta el envío y recibo de mensajes entre sistemas. Permitiendo aplicaciones basadas en módulos ser distribuidas sobre una plataforma heterogénea, reduciendo la complejidad de los múltiples sistemas operativos y redes de comunicación.

Ventajas Interoperabilidad
Fiabilidad
Seguridad
Escalabilidad
Rendimiento
Inconvenientes Agregar un componente adicional, bróker de mensajería
El conjunto del sistema sea más complejo
Más costoso de mantener
En un sistema síncrono, quizá pueda provocar un bajo rendimiento, aunque ofrece la posibilidad de agrupar mensajes y dar una respuesta pseudo sincrónica única

Bróker de mensajería

Una vez explicados y entendidos estos dos conceptos anteriores ya estás preparado para que sea más fácil entender qué es un bróker de mensajería.
Posiblemente muchos de vosotros habréis escuchado hablar de este concepto, haciéndose referencias a RabbitMQ, Apache Kafka y SQS, los cuales, son los bróker de mensajería más populares actualmente.

¿Qué es?

Se puede definir como un middleware orientado a mensajes, actuando como un agente de transferencia de mensajes, intercambiándolos entre diferentes aplicaciones, pudiendo ser estas aplicaciones: emisores o receptores. Se encarga de traducir los mensajes de los productores a los consumidores. Estos mensajes son elementos que han sido formalmente definidos entre las diferentes aplicaciones que se comunican. También proporciona la validación, transformación y enrutamiento de los mensajes.
Además, actúa como un mediador entre las comunicaciones de las aplicaciones, minimizando el grado de conocimiento entre ellas. De esta forma, se obtiene un efectivo desacoplamiento.

¿Que nos proporciona?

Asincronicidad

Al usar un sistema MOM, un cliente puede enviar un mensaje a un destino administrado por el proveedor. La llamada invoca los servicios del proveedor para enrutar y entregar el mensaje. Una vez que ha enviado el mensaje, el cliente puede continuar haciendo otro trabajo, con la confianza de que el proveedor conservará el mensaje hasta que un cliente receptor lo recupere, haciendo posible crear un sistema de componentes débilmente acoplados.
Además, la mayoría de los sistemas MOM asíncronos proporcionan almacenamiento persistente para hacer una copia de seguridad de la cola de mensajes. Esto significa que el emisor y el receptor no necesitan conectarse a la red al mismo tiempo, resolviendo así los problemas con la conectividad intermitente. Es decir, si la aplicación del receptor falla por alguna razón, se acumulan en la cola de mensajes para su posterior procesamiento cuando el receptor se reinicia.

Enrutamiento

Existen muchas implementaciones de MOM. Algunas de ellas permiten que el propio bróker de mensajería se haga cargo de la lógica de enrutamiento, mientras que otras dependen de las aplicaciones del cliente. Proporcionando así la difusión o multidifusión de mensajes.

Transformación

En un sistema middleware basado en mensajes, el mensaje recibido en el consumidor no necesita ser idéntico al mensaje enviado desde un productor. Estos sistemas tienen inteligencia incorporada pudiendo transformar los mensajes, para que coincidan con los requisitos del consumidor. Una aplicación puede enviar un mensaje en su propio formato nativo y diferentes aplicaciones pueden recibir una copia del mensaje en su propio formato nativo. Muchos sistemas modernos de MOM proporcionan herramientas sofisticadas de transformación de mensajes (o mareo) que permite especificar reglas de transformación.

Referencias

   ≡   Message-oriented middleware: Wikipedia   ≡   Message broker: Wikipedia   ≡   Message broker: Techopedia   ≡