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 informáticas donde las aplicaciones de software se comunican mediante el intercambio de 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]
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/9/91/Message_Broker.png/400px-Message_Broker.png)
Propósito, funcionalidad y arquitectura
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, minimizando la conciencia mutua que las aplicaciones deben tener entre sí para poder intercambiar mensajes, implementando efectivamente el desacoplamiento . [4]
El propósito principal de un intermediario es tomar los mensajes entrantes de las aplicaciones y realizar alguna acción en ellos. Los intermediarios de mensajes pueden desacoplar los puntos finales, cumplir con requisitos no funcionales específicos y facilitar la reutilización de funciones intermedias. Por ejemplo, un intermediario de mensajes puede usarse para administrar una cola de carga de trabajo o una cola de mensajes para múltiples receptores, proporcionando almacenamiento confiable, entrega de mensajes garantizada y quizás administración de transacciones. A continuación, se representan otros ejemplos de acciones que podría manejar el corredor: [2] [3]
- Enrutar mensajes a uno o más destinos
- Transforma los mensajes en una representación alternativa
- Realice la agregación de mensajes, descomponga los mensajes en varios mensajes y envíelos a su destino, luego recomponga las respuestas en un solo mensaje para regresar al usuario
- Interactuar con un repositorio externo para aumentar un mensaje o almacenarlo
- Invocar servicios web para recuperar datos
- Responder a eventos o errores
- Proporcionar enrutamiento de mensajes basado en contenido y temas mediante el patrón de publicación-suscripción.
Los agentes de mensajes se basan generalmente en una de dos arquitecturas fundamentales: concentrador y radio y bus de mensajes. En el primero, un servidor central actúa como el mecanismo que brinda los servicios de integración, mientras que en el segundo, el intermediario de mensajes es un backbone de comunicación o servicio distribuido que actúa sobre el bus . [3] Además, se puede utilizar un enfoque de múltiples hubs más escalable para integrar múltiples brokers. [3]
Lista de software de intermediario de mensajes
- Servicios web de Amazon (AWS) Amazon MQ
- Servicios web de Amazon (AWS) Kinesis
- Apache ActiveMQ
- Apache Artemis
- Apache Kafka
- Apache Qpid
- Apache Pulsar
- Cloverleaf (Enovation Lifeline - NL)
- Agente de mensajes de Comverse ( tecnología de Comverse )
- Agente Eclipse Mosquitto MQTT ( Fundación Eclipse )
- Cola de mensajes transaccionales (TMQ) de Enduro / X
- Agente de mensajes de fusión financiera ( Sybase )
- Fuse Message Broker (empresa ActiveMQ)
- Gearman
- Google Cloud Pub / Sub ( Google )
- Agente de HiveMQ HiveMQ MQTT
- Agente de EMQX EMQX MQTT
- HornetQ ( Red Hat ) (ahora parte de Apache Artemis)
- IBM App Connect
- IBM MQ
- Mensajería JBoss ( JBoss )
- JORAM
- Bus de servicio de Microsoft Azure ( Microsoft )
- Microsoft BizTalk Server ( Microsoft )
- MigratoryData (un agente de mensajes muy escalable capaz de resolver el problema C10M, es decir, 1000 veces más escalabilidad que el problema C10k )
- NATS ( Licencia de código abierto del MIT , escrita en Go )
- Abrir cola de mensajes
- Agente de mensajes de Oracle ( Oracle Corporation )
- RabbitMQ ( Licencia pública de Mozilla , escrita en Erlang )
- Redis Un almacén de estructura de datos en memoria de código abierto, que se utiliza como base de datos, caché y agente de mensajes.
- SAP PI ( SAP AG )
- Consuelo PubSub +
- Kit de herramientas de difusión
- Tarantool , una base de datos NoSQL, con un conjunto de procedimientos almacenados para colas de mensajes
- Servicio de mensajes empresariales TIBCO
- Agente de mensajes WSO2
Ver también
- Patrón de publicación-suscripción
- MQTT
- Comparación de software de integración empresarial
- Middleware orientado a mensajes
Referencias
- ^ a b "IB (corredor de integración)" . Glosario de TI . Gartner, Inc . Consultado el 17 de mayo de 2018 . CS1 maint: parámetro desalentado ( enlace )
- ^ a b Kale, V. (2014). "Tecnologías de integración" . Guía de computación en la nube para gerentes de negocios y tecnología: de la computación distribuida a las aplicaciones de software en la nube . Prensa CRC. págs. 107-134. ISBN 9781482219227. Consultado el 17 de mayo de 2018 . CS1 maint: parámetro desalentado ( enlace )
- ^ a b c d Samtani, G .; Sadhwani, D. (2013). "Integración de Brokers y Servicios Web" . En Clark, M .; Fletcher, P .; Hanson, JJ; et al. (eds.). Estrategias y arquitecturas comerciales de servicios web . Presione. págs. 71–84. ISBN 9781430253563. Consultado el 17 de mayo de 2018 . CS1 maint: parámetro desalentado ( enlace )
- ^ Ejsmont, A. (2015). "Procesamiento asincrónico". Escalabilidad web para ingenieros de inicio . Profesional de McGraw Hill. págs. 275-276. ISBN 9780071843669.