Un intermediario de mensajes (también conocido como intermediario de integración o motor de interfaz [1] ) es un módulo de programa informático intermediario que traduce un mensaje del protocolo de mensajería formal del remitente al protocolo de mensajería formal del receptor. Los intermediarios de mensajes son elementos de las redes de telecomunicaciones o de ordenadores en los que las aplicaciones de software se comunican intercambiando mensajes definidos formalmente. [1] Los intermediarios de mensajes son un componente básico del middleware orientado a mensajes (MOM), pero normalmente no sustituyen al middleware tradicional como MOM y la llamada a procedimiento remoto (RPC). [2] [3]
Un intermediario de mensajes es un patrón arquitectónico para la validación, transformación y enrutamiento de mensajes. Media la comunicación entre aplicaciones [ vague ] , minimizando el conocimiento mutuo que las aplicaciones deben tener entre sí para poder intercambiar mensajes, implementando de manera efectiva el desacoplamiento . [4]
El objetivo principal de un intermediario es recibir mensajes entrantes de las aplicaciones y realizar alguna acción sobre ellos. Los intermediarios de mensajes pueden desacoplar puntos finales, cumplir requisitos no funcionales específicos y facilitar la reutilización de funciones intermediarias. Por ejemplo, un intermediario de mensajes puede utilizarse para gestionar una cola de carga de trabajo o una cola de mensajes para varios receptores, lo que proporciona almacenamiento fiable, entrega garantizada de mensajes y, tal vez, gestión de transacciones.
Los siguientes son otros ejemplos de acciones que podría gestionar el bróker: [2] [3]
Los intermediarios de mensajes se basan generalmente en una de dos arquitecturas fundamentales: hub-and-spoke y bus de mensajes. En el primero, un servidor central actúa como el mecanismo que proporciona servicios de integración, mientras que en el segundo, el intermediario de mensajes es una columna vertebral de comunicación o un servicio distribuido que actúa en el bus . [3] Además, se puede utilizar un enfoque multi-hub más escalable para integrar múltiples intermediarios. [3]
Los intermediarios de mensajes diseñados específicamente para lograr comunicaciones limitadas en el tiempo con predictibilidad de extremo a extremo permiten el desarrollo de sistemas en tiempo real que requieren predictibilidad de ejecución . Con frecuencia, los sistemas con requisitos en tiempo real implican interacción con el mundo real ( robótica , automatización de vehículos , radio definida por software , etc.).
La especificación CORBA en tiempo real de Object Management Group proporciona una base teórica para las tecnologías de comunicaciones predecibles al imponer los siguientes requisitos:
A los efectos de esta especificación, la “previsibilidad de extremo a extremo” de la puntualidad en un sistema CORBA de prioridad fija se define como:
• respetar las prioridades de los hilos entre el cliente y el servidor para resolver la contención de recursos durante el procesamiento de las invocaciones CORBA;
• limitar la duración de las inversiones de prioridad de subprocesos durante el procesamiento de extremo a extremo;
• limitar las latencias de las invocaciones de operaciones