Intermediarios de mensajes

menu icon

Intermediarios de mensajes

Los intermediarios de mensajes son una tecnología de comunicación entre aplicaciones que permite crear un mecanismo de integración común para dar soporte a arquitecturas nativas en cloud, basadas en microservicios, sin servidor y de cloud híbrido.

¿Qué es un intermediario de mensajes?

Un intermediario de mensajes es un software que permite a las aplicaciones, sistemas y servicios comunicarse entre sí e intercambiar información. Para ello, el intermediario de mensajes convierte mensajes entre protocolos de mensajería formal. Esto permite que servicios interdependientes "hablen" entre sí directamente, aunque se hayan escrito en diferentes lenguajes o se hayan implementado 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 de gestionar el flujo de datos entre los componentes de una aplicación, para que puedan centrarse en su lógica principal. Puede servir como una capa de comunicaciones distribuidas que permite comunicarse internamente a las aplicaciones que abarcan varias plataformas.

Los intermediarios de mensajes pueden validar, almacenar, direccionar y entregar mensajes a los destinos adecuados. Sirven como intermediarios entre otras aplicaciones, lo que permite 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 fiable y una entrega garantizada, los intermediarios de mensajes a menudo se basan en una subestructura o un componente denominado 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 han transmitido y permanecen en la cola hasta que se confirme la recepción.

La mensajería asíncrona (15:11) hace referencia al tipo de comunicación entre aplicaciones que permiten los intermediarios de mensajes. Evita la pérdida de datos valiosos y permite que los sistemas sigan funcionando aunque se produzcan los problemas de conectividad o latencia intermitentes que son comunes en las redes públicas. La mensajería asíncrona garantiza que los mensajes se entreguen una vez (y sola una vez) en el orden correcto respecto a los otros mensajes.

Los intermediarios de mensajes pueden incluir gestores de colas para manejar las interacciones entre varias colas de mensajes, así como servicios que proporcionan funciones de direccionamiento de datos, conversión de mensajes, persistencia y gestión de estado del cliente.

Modelos de intermediario 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 que se utiliza en las colas de mensajes con una relación unívoca entre el remitente y el destinatario del mensaje. Cada mensaje de la cola se envía a un solo destinatario y se consume solo una vez. La mensajería punto a punto se invoca cuando se debe actuar a partir de un mensaje solo una vez. Algunos casos de uso adecuados para este estilo de mensajería son, por ejemplo, el proceso de transacciones financieras y de nóminas. En estos sistemas, tanto los remitentes como los destinatarios necesitan una garantía de que cada pago se enviará una vez y solo una vez.
  • Mensajería 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 temas de los que desean recibir mensajes. Todos los mensajes publicados en un tema se distribuyen a todas las aplicaciones suscritas. Se trata de un método de distribución de tipo difusión, donde existe una relación de uno a varios entre el editor del mensaje y sus consumidores. Por ejemplo, si una aerolínea difunde actualizaciones sobre las horas de aterrizaje o el estado de retraso de sus vuelos, varias partes podrían utilizar esta información: el personal de tierra encargado del mantenimiento y el repostaje de los aviones, los manipuladores de equipaje, los auxiliares de vuelo y los pilotos que se preparan para el próximo viaje del avión, y los operadores de las pantallas que informan al público. Un estilo de mensajería pub/sub sería adecuado para su uso en este caso de ejemplo.

Intermediarios de mensajes en las arquitecturas de cloud

Se crean aplicaciones nativas en cloud para aprovechar los beneficios inherentes delcloud computing, por ejemplo, la flexibilidad, la escalabilidad y el despliegue rápido. Estas aplicaciones están formadas por componentes pequeños, discretos y reutilizables denominados microservicios. Cada microservicio se despliega y puede ejecutarse independientemente de los demás. Esto significa que cualquiera de ellos se puede actualizar, escalar o reiniciar sin afectar a los otros servicios del sistema. Los microservicios a menudo se empaquetan en contenedores y trabajan conjuntamente para dar servicio a una aplicación completa, aunque cada uno tiene su propia pila, que incluye una base de datos y un modelo de datos que pueden ser diferentes de los demás.

Los microservicios deben tener una forma de comunicarse entre ellos para poder operar de manera conjunta. Los intermediarios de mensajes son un mecanismo que utilizan para crear esta red troncal de comunicaciones compartidas.

Los intermediarios de mensajes se utilizan a menudo para gestionar las comunicaciones entre sistemas locales y componentes de cloud en entornos de cloud híbrido. La utilización de un intermediario de mensajes proporciona un mayor control sobre las comunicaciones entre servicios, lo que garantiza que los datos se envíen de forma segura, fiable y eficaz entre los componentes de una aplicación. Los intermediarios de mensajes pueden desempeñar un rol similar en la integración de entornos multicloud, lo que permite la comunicación entre cargas de trabajo y tiempos de ejecución que residen en distintas plataformas. También son adecuados para su uso en informática sin servidor, donde se ejecutan servicios individuales alojados en cloud bajo demanda para cada solicitud.

Intermediarios de mensajes frente a API

Las API REST se utilizan habitualmente para las comunicaciones entre microservicios. El término Transferencia de estado representacional (Representational State Transfer, REST) define un conjunto de principios y restricciones que los desarrolladores pueden seguir cuando crean servicios web. Cualquier servicio que los cumpla 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 cumple las reglas REST, permite que los servicios hablen entre sí.

Las API REST utilizan HTTP (Hypertext Transfer Protocol) para comunicarse. Como 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. No obstante, HTTP es un protocolo de solicitud/respuesta, por lo que está especialmente indicado en situaciones que requieren una solicitud/respuesta síncrona. Esto significa que los servicios que realizan solicitudes a través de API REST deben diseñarse para esperar una respuesta inmediata. Si el cliente que recibe la respuesta está inactivo, el servicio remitente se bloqueará mientras espera la respuesta. Debe incorporarse una lógica de gestión de errores y migración tras error en ambos servicios.

Los intermediarios de mensajes permiten la comunicación asíncrona entre servicios, para que el servicio remitente no tenga que esperar la respuesta del servicio receptor. Esto mejora la tolerancia a errores y la resiliencia en los sistemas donde se utilizan. Asimismo, el uso de intermediarios de mensajes facilita el escalado de los sistemas, ya que un patrón de mensajería de publicación/suscripción puede soportar fácilmente el cambio de número de servicios. Los intermediarios de mensajes también realizan un seguimiento del estado de los consumidores.

Intermediarios de mensajes frente a plataformas de streaming

Mientras que los intermediarios de mensajes dan soporte a dos o más patrones de mensajería, incluidas las colas de mensajes y la publicación/suscripción, las plataformas de streaming de sucesos solo ofrecen patrones de distribución de tipo publicación/suscripción. Diseñadas para su uso con grandes volúmenes de mensajes, las plataformas de streaming de sucesos son fácilmente escalables. Pueden ordenar las secuencias de registros en categorías denominadas temas y almacenarlas un periodo de tiempo predeterminado. Sin embargo, a diferencia de los intermediarios de mensajes, las plataformas de streaming de sucesos no pueden garantizar la entrega de mensajes ni realizar un seguimiento de qué consumidores han recibido los mensajes.

Las plataformas de streaming de sucesos ofrecen más escalabilidad que los intermediarios de mensajes, pero menos características que garantizan la tolerancia a errores (como el reenvío de mensajes), y funciones de direccionamiento y colas de mensajes más limitadas.

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

Intermediario de mensajes frente a ESB (bus de servicio empresarial)

Un bus de servicio empresarial (ESB) es un patrón de arquitectura que a veces se utiliza en las arquitecturas orientadas a servicios que se implementan en 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. Por ejemplo, puede convertir las solicitudes que recibe de un protocolo (por ejemplo, XML) a otro (por ejemplo, JSON). Los ESB transforman sus cargas útiles de mensajes utilizando un proceso automatizado. La plataforma de software centralizada también maneja otra lógica de orquestación como, por ejemplo, la conectividad, el direccionamiento y el proceso de solicitudes.

No obstante, las infraestructuras de ESB son complejas y pueden ser difíciles de integrar y costosas de mantener. Cuando se producen problemas en los entornos de producción, son difíciles de resolver, los entornos no son fáciles de escalar y la actualización es tediosa.

Los intermediarios de mensajes son una alternativa "ligera" a los ESB que ofrece una funcionalidad similar (un mecanismo para las comunicaciones entre servicios) más sencilla y con un coste menor. Están especialmente indicados para su uso en las arquitecturas de microservicios, que cada vez son más frecuentes ya que los ESB se han quedado en desuso.

Casos de uso de intermediarios de mensajes

La implementación de los intermediarios de mensajes puede responder a una amplia variedad de necesidades empresariales en todos los sectores y en distintos entornos de informática empresarial. Son muy útiles cuando se requieren una comunicación fiable entre aplicaciones y una entrega de mensajes garantizada.

Los intermediarios de mensajes suelen utilizarse de las siguientes maneras:

  • Operaciones financieras y procesamiento de pagos: es fundamental tener la garantía de que los pagos se envían una vez y una sola vez. La utilización de un intermediario de mensajes para manejar los datos de estas transacciones ofrece la garantía de que la información de pago no se perderá ni se duplicará accidentalmente, ofrece un acuso de recibo y permite que los sistemas se comuniquen de forma fiable aunque las redes intermediarias estén desactivadas.
  • Tramitación y cumplimiento de pedidos de comercio electrónico: si hace negocios en línea, la solidez de la reputación de su marca depende de la fiabilidad de su sitio web y la plataforma de comercio electrónico. La capacidad de los intermediarios de mensajes de mejorar la tolerancia a errores y garantizar que los mensajes se consumen una vez y solo una vez les convierte en la elección natural cuando se procesan pedidos en línea.
  • Protección de datos altamente sensibles en reposo y en tránsito: si pertenece a un sector altamente regulado o su negocio se enfrenta a importantes riesgos de seguridad, elija una solución de mensajería con funciones de cifrado de extremo a extremo.

Intermediarios de mensajes e IBM Cloud

Los intermediarios de mensajes son cada vez más importantes a medida que las organizaciones modernizan sus aplicaciones en la transición al cloud. Muchas de las empresas con más éxito del mundo, incluido el 85 % de Fortune 100, confían en las prestaciones de los intermediarios de mensajes de IBM, que se crean para dar soporte a los actuales entornos de desarrollo ágil, las infraestructuras cloud híbrido basadas en microservicios, y una amplia gama de tipos de sistemas y requisitos de conectividad.

Dé el siguiente paso: Obtenga más información sobre IBM Cloud Pak for Integration, que se basa en la capacidad principal de IBM MQ, la solución de mensajería empresarial líder.

Empiece hoy mismo con una cuenta de IBM Cloud.