¿Qué es un intermediario de mensajes?

11 de octubre de 2021

¿Qué es un intermediario de mensajes?

Un intermediario de mensajes es un software que permite a aplicaciones, sistemas y servicios comunicarse e intercambiar información, incluso si están escritos en distintos idiomas o se implementan en plataformas diferentes, traduciendo mensajes entre protocolos de mensajería formales.

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 centrarse 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 como 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 disociación de procesos y servicios dentro de los sistemas.

Para proporcionar un almacenamiento fiable de mensajes y una entrega garantizada, los intermediarios de mensajes suelen confiar en una subestructura o componente denominada cola de mensajes que almacena y ordena los mensajes hasta que las aplicaciones consumidoras pueden procesarlos. En una cola de mensajes, los mensajes se almacenan en el orden exacto en el que se transmitieron y permanecen en la cola hasta que se confirma su recepción.

La mensajería asíncrona se refiere al tipo de comunicación entre aplicaciones que hacen posible los intermediarios de mensajes. Evita la pérdida de datos valiosos y permite que los sistemas sigan 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 entreguen una vez (y solo una vez) en el orden correcto en relación con otros mensajes.

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

Vista aérea de autopista

Mantenga su cabeza en la nube

Reciba el boletín semanal Think para obtener orientación de expertos sobre cómo optimizar la configuración multinube en la era de la IA.

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: es el patrón de distribución utilizado en las colas de mensajes con una relación de uno a uno entre el emisor y el receptor del mensaje. Cada mensaje en la cola se envía a un solo destinatario y se consume solo una vez. Se recurre a la mensajería punto a punto cuando se debe actuar sobre un mensaje una sola vez. Algunos 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 sola vez.

Mensajes de publicación/suscripción: 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 tipo difusión, en el que existe una relación de uno a muchos entre el emisor 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 pub/sub sería apropiado para su uso en este escenario.

AI Academy

Cómo prepararse para la IA con la nube híbrida

El plan de estudios, dirigido por los principales líderes de pensamiento de IBM, está diseñado para ayudar a los líderes empresariales a adquirir los conocimientos necesarios para priorizar las inversiones en IA que pueden impulsar el crecimiento.

Intermediarios de mensajes en arquitecturas en la nube

Las aplicaciones nativas de la nube están diseñadas para aprovechar los beneficios inherentes del cloud computing, incluida la flexibilidad, la escalabilidad y la implementación rápida. Estas aplicaciones están formadas por componentes pequeños, discretos y reutilizables denominados microservicios. Cada microservicio se implementa y puede ejecutarse independientemente de los demás. Esto significa que cualquiera de ellos puede actualizarse, escalarse o reiniciarse sin afectar a otros servicios del sistema. A menudo empaquetados en contenedores, los microservicios trabajan juntos para formar una aplicación completa, aunque cada uno tiene su propia pila, incluida una base de datos y un modelo de datos que pueden ser diferentes de los demás.

Los microservicios deben disponer de un medio de comunicación entre sí para funcionar de manera coordinada. Los intermediarios de mensajes son uno de los mecanismos que utilizan para crear esta espina dorsal de comunicaciones compartidas.

Los intermediarios de mensajes se utilizan 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 proporciona un mayor control sobre las comunicaciones entre servicios, garantizando que los datos se envían de forma segura, fiable y eficaz entre los componentes de una aplicación. Los intermediarios de mensajes pueden desempeñar un papel similar en la integración de entornos multinube, lo que permite la comunicación entre cargas de trabajo y tiempos de ejecución que residen en diferentes plataformas. También son muy adecuados para su uso en la computación sin servidor, en la que los servicios individuales alojados en la nube se ejecutan bajo demanda en función de cada solicitud.

Agentes de mensajes frente a API

Las API REST se utilizan normalmente 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á comunicarse a través de un conjunto de operadores y solicitudes sin estado compartidos 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 comuniquen entre sí.

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

Los intermediarios de mensajes permiten la comunicación asincrónica entre los servicios para que el servicio remitente no tenga que esperar a la respuesta del servicio receptor. Esto mejora la tolerancia a fallos y la resiliencia en los sistemas en los que se emplean. Además, el uso de intermediarios de mensajes facilita la escalabilidad de los sistemas, ya que un patrón de mensajería pub/sub puede admitir fácilmente un número cambiante de servicios. Los agentes de mensajes también realizan un seguimiento de los estados de los consumidores.

Intermediarios de mensajes vs. plataformas de transmisión de eventos

Mientras que los intermediarios de mensajes pueden admitir dos o más patrones de mensajería, incluidas 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 de tiempo 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 corredores de mensajes, pero menos funciones que garanticen la tolerancia a fallos (como el reenvío de mensajes), así como capacidades más limitadas de enrutamiento y puesta en 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 utiliza en la arquitectura orientada a servicios (SOA) implementada 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 todos los servicios y aplicaciones de la arquitectura pueden compartir. Podría, por ejemplo, traducir las solicitudes que recibe de un protocolo (como XML) a otro (como JSON). Los ESB 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 de ESB son complejas y pueden resultar difíciles de integrar y caras de mantener. Es difícil solucionarlos cuando se producen problemas en los 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 ESB que proporcionan una funcionalidad similar (un mecanismo para las comunicaciones entre servicios) de forma más sencilla y a menor coste. Son adecuados para su uso en las arquitecturas de microservicios que se han vuelto más frecuentes a medida que los ESB han caído en desgracia.

Casos de uso de intermediarios de mensajes

La implementación de intermediarios de mensajes puede dar respuesta a una amplia variedad de necesidades empresariales en todos los sectores y dentro de diversos entornos informáticos empresariales. Son útiles siempre y cuando se requiera una comunicación fiable entre aplicaciones y una entrega de mensajes garantizada.

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

  • Transacciones financieras y procesamiento de pagos: es crucial asegurarse de que los pagos se envíen una sola vez. El uso de un intermediario de mensajes para gestionar los datos de estas transacciones ofrece la garantía de que la información de pago no se perderá ni se duplicará accidentalmente, proporciona prueba de recepción y permite que los sistemas se comuniquen de forma fiable incluso cuando las redes intermediarias están caídas.

  • Procesamiento y cumplimiento de pedidos de comercio electrónico: si realiza negocios en línea, la solidez de la reputación de su marca depende de la fiabilidad de su sitio web y su plataforma de comercio electrónico. La capacidad de los intermediarios de mensajes para mejorar la tolerancia a fallos y garantizar que los mensajes se consuman una vez y sólo una vez los convierte en una opción natural para procesar pedidos en línea.

  • Protección de datos altamente confidenciales en reposo y en tránsito: si su sector está muy regulado o su empresa se enfrenta a importantes riesgos de seguridad, elija una solución de mensajería con funciones de cifrado de extremo a extremo.
Soluciones relacionadas
IBM MQ

Habilite una mensajería de alto rendimiento, seguridad y entrega garantizada para su empresa.

Explore IBM MQ
Servicios de consultoría en la nube

Acelere la agilidad y el crecimiento empresarial: modernice continuamente sus aplicaciones en cualquier plataforma utilizando nuestros servicios en la nube y de consultoría. 

Explore los servicios de consultoría en la nube
Software y soluciones de IBM Integration

Conecte, automatice y libere el potencial empresarial con el software de la plataforma de integración.

 

Explore el software y las soluciones de integración
Dé el siguiente paso

Conecte aplicaciones de forma dinámica, segura y fiable a través de una red de mensajería, lo que permite a su empresa crear aplicaciones basadas en mensajes y eventos de acoplamiento flexible a escala.

    Explore IBM MQ Descubra el software y las soluciones de integración de IBM