¿Qué es un intermediario de mensajes?

Un intermediario de mensajes es un software que permite a las aplicaciones, sistemas y servicios comunicar entre sí e intercambiar información.

Para ello, el agente de mensajes traduce los mensajes entre protocolos de mensajería formales. Esto permite que los servicios interdependientes “hablen” entre sí directamente, incluso si fueron escritos en diferentes lenguajes o implementados en diferentes plataformas.

Los intermediarios de mensajes son módulos de software dentro de soluciones de middleware de mensajería o middleware orientado a mensajes (MOM). Este tipo de middleware proporciona a los desarrolladores un medio estandarizado para manejar el flujo de datos entre los componentes de una aplicación para que puedan enfocarse en su lógica central. Puede servir como una capa de comunicaciones distribuidas que permite que las aplicaciones que abarcan múltiples plataformas se comuniquen internamente.

Los intermediarios de mensajes pueden validar, almacenar, enrutar y entregar mensajes a los destinos apropiados. Sirven de intermediarios entre otras aplicaciones, permitiendo a los remitentes emitir mensajes sin saber dónde están los receptores, si están activos o no, o cuántos hay. Esto facilita el desacoplamiento de procesos y servicios dentro de los sistemas.

Para proporcionar un almacenamiento de mensajes confiable y una entrega garantizada, los intermediarios de mensajes a menudo dependen de una subestructura o componente llamado cola de mensajes que almacena y ordena los mensajes hasta que las aplicaciones consumidoras puedan procesarlos. En una cola de mensajes, los mensajes se almacenan en el orden exacto en que se transmitieron y permanecen en la cola hasta que se confirma la recepción.

La mensajería asíncrona se refiere al tipo de comunicación entre aplicaciones que posibilitan los corredores de mensajes. Previene la pérdida de datos valiosos y permite que los sistemas continúen funcionando incluso ante los problemas intermitentes de conectividad o latencia comunes en las redes públicas. La mensajería asíncrona garantiza que los mensajes se entregarán una vez (y sólo una vez) en el orden correcto con respecto a otros mensajes.

Los intermediarios de mensajes pueden comprender gestores de colas para manejar las interacciones entre múltiples colas de mensajes, así como servicios que proporcionan enrutamiento de datos, traducción de mensajes, persistencia y funcionalidades de gestión del estado del cliente.

Modelos de intermediarios de mensajes

Los intermediarios de mensajes ofrecen dos patrones básicos de distribución de mensajes o estilos de mensajería:

Mensajería punto a punto: Este es el patrón de distribución empleado en las colas de mensajes con una relación uno a uno entre el remitente y el receptor del mensaje. Cada mensaje en la cola se envía a un solo destinatario y se consume solo una vez. La mensajería punto a punto se requiere cuando se debe actuar sobre un mensaje solo una vez. Ejemplos de casos de uso adecuados para este estilo de mensajería incluyen el procesamiento de nóminas y transacciones financieras. En estos sistemas, tanto los remitentes como los receptores necesitan una garantía de que cada pago se enviará una vez y solo una vez.

Publicar o suscribir mensajes: En este patrón de distribución de mensajes, a menudo denominado "pub/sub", el productor de cada mensaje lo publica en un tema y varios consumidores de mensajes se suscriben a los temas de los que desean recibir mensajes. Todos los mensajes publicados en un tema se distribuyen a todas las aplicaciones suscritas a él. Se trata de un método de distribución de tipo broadcast, en el que existe una relación de uno a muchos entre el editor del mensaje y sus consumidores. Si, por ejemplo, una aerolínea difundiera actualizaciones sobre los horarios de aterrizaje o el estado de retraso de sus vuelos, varias partes podrían hacer uso de la información: el personal de tierra que realiza el mantenimiento y el reabastecimiento de combustible de la aeronave, los manipuladores de equipaje, los asistentes de vuelo y los pilotos que se preparan para el próximo viaje del avión, y los operadores de pantallas visuales que notifican al público. Un estilo de mensajería de publicación/suscripción sería adecuado para su uso en este escenario.

Intermediarios de mensajes en arquitecturas en la nube

Las aplicaciones nativas de la nube están diseñadas para aprovechar los beneficios inherentes de la computación en la nube, incluyendo la flexibilidad, la escalabilidad y el despliegue rápido. Estas aplicaciones están compuestas por componentes pequeños, discretos y reutilizables llamados microservicios. Cada microservicio se despliega y puede ejecutar independientemente de los demás. Esto significa que cualquiera de ellos puede actualizar, escalar o reiniciar sin afectar a otros servicios del sistema. A menudo empaquetados en contenedores, los microservicios trabajan juntos para comprender una aplicación completa, aunque cada uno tiene su propia pila, incluyendo una base de datos y un modelo de datos que pueden ser diferentes de los demás.

Los microservicios deben tener un medio de comunicación entre sí para poder funcionar en conjunto. Los intermediarios de mensajes son uno de los mecanismos que emplean para crear esta red troncal de comunicaciones compartidas.

Los intermediarios de mensajes se emplean a menudo para gestionar las comunicaciones entre los sistemas locales y los componentes de la nube en entornos de nube híbrida.  El uso de un intermediario de mensajes brinda un mayor control sobre las comunicaciones entre servicios, lo que garantiza que los datos se envíen de forma segura, confiable y eficiente entre los componentes de una aplicación. Los intermediarios de mensajes pueden desempeñar un papel similar en la integración de entornos multinube,  permitiendo la comunicación entre cargas de trabajo y tiempos de ejecución que residen en diferentes plataformas. También son adecuados para su uso en computación sin servidor, en la que los servicios individuales alojados en la nube se ejecutan bajo demanda por solicitud.

Agentes de mensajes frente a APIs

Las APIs REST se emplean comúnmente para las comunicaciones entre microservicios. El término Transferencia de Estado Representacional (REST) define un conjunto de principios y restricciones que los desarrolladores pueden seguir al crear servicios web. Cualquier servicio que se adhiera a ellos podrá comunicar a través de un conjunto de operadores y solicitudes sin estado compartidos y uniformes. La interfaz de programación de aplicaciones (API) denota el código subyacente que, si se ajusta a las reglas REST, permite que los servicios se hablen entre sí.

Las APIs REST emplean el Protocolo de transferencia de hipertexto (HTTP) para comunicar. Dado que HTTP es el protocolo de transporte estándar de la Internet pública, las APIs REST son ampliamente conocidas, se emplean con frecuencia y son ampliamente interoperables. Sin embargo, HTTP es un protocolo de solicitud/respuesta, por lo que se emplea mejor en situaciones que requieren una solicitud/respuesta sincrónica. Esto significa que los servicios que realizan solicitudes a través de las APIs REST deben estar diseñados para esperar una respuesta inmediata. Si el cliente que recibe la respuesta está inactivo, el servicio de envío se bloqueará mientras espera la respuesta. La lógica de conmutación por error y manejo de errores debe integrar en ambos servicios.

Los intermediarios de mensajes habilitan las comunicaciones asíncronas entre servicios para que el servicio de envío no tenga que esperar a la respuesta del servicio de recepción. Esto mejora la tolerancia a fallas y la resiliencia en los sistemas en los que están empleados. Además, el uso de intermediarios de mensajes facilita el escalado de los sistemas, ya que un patrón de mensajería pub/sub puede soportar fácilmente un número cambiante de servicios. Los intermediarios de mensajes también realizan un seguimiento de los estados de los consumidores.

Intermediarios de mensajes frente a plataformas de transmisión de eventos

Mientras que los intermediarios de mensajes pueden soportar dos o más patrones de mensajería, incluyendo colas de mensajes y pub/sub, las plataformas de transmisión de eventos solo ofrecen patrones de distribución de estilo pub/sub. Diseñadas para su uso con grandes volúmenes de mensajes, las plataformas de transmisión de eventos son fácilmente escalables. Son capaces de ordenar flujos de registros en categorías y almacenarlos durante un período predeterminado. Sin embargo, a diferencia de los intermediarios de mensajes, las plataformas de transmisión de eventos no pueden garantizar la entrega de mensajes ni rastrear qué consumidores han recibido mensajes.

Las plataformas de transmisión de eventos ofrecen más escalabilidad que los intermediarios de mensajes, pero menos características que garanticen la tolerancia a fallas (como el reenvío de mensajes), así como capacidades más limitadas de enrutamiento y cola de mensajes.

Obtenga más información sobre la arquitectura basada en eventos.

Intermediario de mensajes frente a ESB (bus de servicios empresariales)

Un bus de servicios empresariales (ESB) es un patrón arquitectónico que a veces se emplea en arquitecturas orientadas a servicios (SOAs) implementadas en todas las empresas. En un ESB, una plataforma de software centralizada combina protocolos de comunicación y formatos de datos en un "lenguaje común" que pueden compartir todos los servicios y aplicaciones de la arquitectura. Podría, por ejemplo, traducir las solicitudes que recibe de un protocolo (como XML) a otro (como JSON). Los ESBs transforman sus cargas útiles de mensajes mediante un proceso automatizado. La plataforma de software centralizada también gestiona otras lógicas de orquestación, como la conectividad, el enrutamiento y el procesamiento de solicitudes.

Sin embargo, las infraestructuras ESB son complejas y su integración puede resultar difícil y su mantenimiento costoso. Es difícil solucionarlos cuando los problemas ocurren en entornos de producción, no son fáciles de escalar y la actualización es tediosa.

Los intermediarios de mensajes son una alternativa "ligera" a los ESBs que proporcionan una funcionalidad similar—un mecanismo para las comunicaciones entre servicios—de forma más sencilla y a menor costo. Son adecuados para su uso en las arquitecturas de microservicios que se volvieron más frecuentes a medida que los ESBs caen en desgracia.

Casos de uso de intermediarios de mensajes

La implementación de intermediarios de mensajes puede abordar una amplia variedad de necesidades del negocio en todas las industrias y dentro de diversos entornos de computación empresarial. Son útiles en cualquier momento y lugar donde se requiera una comunicación confiable entre aplicaciones y una entrega segura de mensajes.

Los intermediarios de mensajes a menudo se emplean de las siguientes maneras:

  • Transacciones financieras y procesamiento de pagos: Es crítico estar seguro de que los pagos se envíen una sola vez. El uso de un intermediario de mensajes para manejar los datos de estas transacciones ofrece la seguridad de que la información de pago no se perderá ni se duplicará accidentalmente, proporciona comprobante de recepción y permite que los sistemas se comuniquen de manera confiable incluso cuando las redes intermediarias no están conectadas.

  • Procesamiento y cumplimiento de pedidos de comercio electrónico: Si está haciendo negocios en línea, la fortaleza de la reputación de su marca depende de la confiabilidad de su sitio web y plataforma de comercio electrónico. La capacidad de los intermediarios de mensajes para mejorar la tolerancia a fallas y garantizar que los mensajes se consuman una vez y solo una vez los convierte en una opción natural para usar al procesar pedidos en línea.

  • Protección de datos altamente confidenciales en reposo y en tránsito: Si su industria está altamente regulada o su negocio enfrenta riesgos de seguridad significativos, elija una solución de mensajería con capacidades de cifrado end-to-end.
Soluciones relacionadas
IBM MQ

IBM MQ ofrece capacidades de mensajería de nivel empresarial que mueven información de manera hábil y segura entre aplicaciones.

Explorar IBM MQ
IBM Cloud Pak for Integration

Conecte aplicaciones, servicios y datos con IBM Cloud Pak® for Integration, la plataforma de integración más completa del mercado.

Conozca IBM Cloud Pak for Integration
Dé el siguiente paso

Mueva datos de forma segura y confiable en todas las aplicaciones, servicios y sistemas, en entornos locales y en la nube, con IBM MQ: envío de mensajes solo una vez para proteger su empresa de datos incorrectos y errores de aplicaciones.

Explore MQ Pruebe MQ sin costo