Introducing G2.ai, the future of software buying.Try now

¿Qué es el middleware orientado a mensajes? ¿Cómo funciona?

8 de Noviembre de 2024
por Keerthi Rangan

Las empresas, instituciones y tecnologías están cambiando constantemente, por lo que los sistemas de software que las sirven deben adaptarse a ellas.

Los sistemas modernos funcionan en entornos complejos con múltiples lenguajes de programación, plataformas de hardware y sistemas operativos. Con la evolución continua, las empresas necesitan implementaciones dinámicas y ágiles con fiabilidad 24/7, alto rendimiento y seguridad.

La forma más fácil de integrar componentes de software dispares no es hacerlos todos iguales, sino proporcionar una capa que les permita comunicarse a pesar de sus diferencias. Esta capa, conocida como middleware, permite la interacción de componentes desarrollados de manera independiente que se ejecutan en diferentes plataformas en red.

Un tipo de middleware que es beneficioso para el paso de mensajes es el middleware orientado a mensajes (MOM). MOM proporciona un mecanismo independiente de la plataforma para que las aplicaciones intercambien mensajes usando software de cola de mensajes de manera asincrónica. Esto significa que las aplicaciones pueden comunicarse independientemente de si se ejecutan en los mismos o diferentes sistemas.

El procesamiento impulsado por mensajes es necesario para una configuración cliente/servidor que emplea una aplicación de broker de mensajes única. Un cliente entrega un mensaje al broker de mensajes, que gestiona varios mensajes de diversos clientes y los pasa a la aplicación de servidor relevante. El middleware establece una capa de conectividad que protege a los desarrolladores de las complejidades de múltiples sistemas operativos y tecnologías de red.

MOM permite la comunicación asincrónica al pasar mensajes entre aplicaciones en lugar de llamar directamente. Esto tiene varias ventajas, incluyendo desacoplar aplicaciones para que no dependan unas de otras, aumentar la fiabilidad y escalabilidad, y reducir la complejidad.

Importancia del middleware orientado a mensajes

MOM es especialmente útil cuando ocurren cambios masivos en una empresa, como la introducción de diferentes sistemas y componentes. Reconstruir la infraestructura de TI y asegurarse de que todos los servicios antiguos y nuevos funcionen sin problemas consume tiempo y recursos.

MOM aborda estos desafíos y mejora la comunicación entre varios sistemas y aplicaciones sin renovar la infraestructura de TI de la organización.

Las empresas que inician un nuevo servicio, se suscriben a un nuevo servicio o atraviesan una adquisición o fusión pueden recurrir a soluciones MOM para crear sistemas cohesivos sin afectar a otros componentes de sus redes.

En resumen, el middleware orientado a mensajes permite una mensajería asincrónica rápida y confiable y la entrega de mensajes, incluyendo alertas de recepción y controles de transacciones. MOM es una solución empresarial adecuada si los sistemas distribuidos de una organización están dispersos, tienen conectividad de red inadecuada o tienen requisitos estrictos de flexibilidad, escalabilidad y confiabilidad.

Los sistemas MOM son una excelente manera de acomodar implementaciones dispersas ya que son flexibles y duraderos.

¿Quieres aprender más sobre Software de Cola de Mensajes (MQ)? Explora los productos de Cola de Mensajes (MQ).

¿Cómo funciona el middleware orientado a mensajes?

El middleware de mensajería mejora la comunicación entre componentes para sistemas de TI complejos y facilita el desarrollo en un entorno distribuido.

La cola de mensajes es un componente crucial en las plataformas de middleware orientado a mensajes. La cola de mensajes ayuda a los sistemas basados en MOM a retener mensajes en la arquitectura. Con la ayuda de colas, una arquitectura de middleware orientado a mensajes puede enviar y recibir datos.

Arquitectura de Middleware Orientado a Mensajes

Las colas también son necesarias para desarrollar la comunicación asincrónica en una arquitectura de middleware orientado a mensajes. La cola almacena mensajes en un orden particular usando el estándar de primero en entrar, primero en salir (FIFO). El mensaje enviado inicialmente a la cola será el primero en ser recuperado de la cola usando FIFO.

La identidad de una cola, su tamaño, el umbral de guardado de la cola, el mecanismo de filtrado de mensajes y otras propiedades son configurables. En la mayoría de las circunstancias, cada aplicación tiene su propia cola; sin embargo, en algunos casos, la configuración permite compartir colas. Los sistemas de middleware orientado a mensajes pueden soportar una variedad de colas.

Los modelos de mensajería más populares en las arquitecturas de middleware orientado a mensajes son los modelos de publicación/suscripción (pub/sub) y punto a punto (P2P). Ambos enfoques dependen del intercambio de mensajes a través de una cola. Un sistema típico combina estos enfoques para lograr varios objetivos y metas de mensajería.

Características del middleware orientado a mensajes

El middleware orientado a mensajes es una excelente manera de facilitar la comunicación entre diferentes componentes de software. Es independiente de la plataforma y permite una forma versátil de intercambio de mensajes. Algunas de las características clave del middleware orientado a mensajes son las siguientes:

  • Mensajería asincrónica: Cuando una aplicación de destino está desconectada o ocupada, el sistema guarda temporalmente las colas de mensajes con esta funcionalidad. La mayoría de los sistemas asincrónicos ofrecen almacenamiento para la copia de seguridad de la cola de mensajes, permitiendo que los remitentes y receptores se conecten a las redes simultáneamente. También resuelve problemas causados por la conectividad intermitente.
  • Entrega asegurada de mensajes: Las aplicaciones que envían mensajes no necesitan conectarse a la red simultáneamente. MOM asegura la entrega de mensajes cuando se establecen enlaces y la aplicación receptora emite una consulta para los mensajes transmitidos.
  • Enrutamiento: Las colas de mensajes se utilizan en muchos sistemas MOM para el enrutamiento. Cuando está habilitado, algunos empoderan a la capa de mensajes para suministrar lógica de enrutamiento. En contraste, otros dependen de las aplicaciones cliente para proporcionar información de enrutamiento, y algunos requieren un híbrido de los dos enfoques.
  • Transformación: Las plataformas MOM con inteligencia integrada pueden modificar y enrutar información para adaptarse a las demandas del origen o del destinatario. Además, muchas soluciones basadas en MOM ofrecen potentes capacidades de transformación de mensajes que permiten a los programadores definir reglas para acciones fáciles de arrastrar y soltar en la interfaz gráfica de usuario.
  • Soporte de transacciones: MOM proporciona soporte de transacciones y está íntimamente conectado con los servicios de transacciones. Cuando los servicios de transacciones están disponibles, pueden participar en una transacción MOM.
  • Servicios de notificación: Aunque MOM permite la transmisión de mensajes asincrónicos, la aplicación remitente podría querer conocer el estado de entrega del mensaje en algunos casos. Como resultado, MOM da al remitente la opción de revisar las respuestas, dejar que otro servicio las gestione o ignorarlas por completo. Algunos sistemas MOM también pueden registrar mensajes para ofrecer pistas de auditoría.
  • Características adicionales: Otros aspectos que la mayoría de los sistemas MOM proporcionan incluyen aprovisionamiento y monitoreo, mensajería unificada, escalado dinámico, comunicación segura, herramientas de gestión y control, calidad de servicio flexible e interacción con otros dispositivos.

Tipos de middleware

El middleware es la capa que permite que diferentes componentes de software interactúen entre sí, pero ¿cuáles son los diferentes tipos de middleware? ¿Y cuáles son algunas razones para elegir cada uno? Discutamos esto a continuación.

  • Middleware orientado a mensajes es una arquitectura que permite la recepción y retransmisión de mensajes entre componentes de aplicaciones. Soporta la implementación de software en varias plataformas y simplifica el proceso de desarrollo de aplicaciones que abarcan múltiples sistemas operativos y protocolos de red. Tiene varias ventajas sobre otras opciones de middleware (como la codificación lógica) y es una de las formas de middleware más extensamente utilizadas.
  • Middleware de objetos, también conocido como broker de solicitudes de objetos, permite a las aplicaciones intercambiar objetos y acceder a servicios a través de un sistema orientado a objetos. En resumen, controla la comunicación de objetos en un sistema de computación distribuida.
  • Middleware de llamada a procedimiento remoto (RPC), o middleware basado en RPC, permite que los procedimientos en una aplicación invoquen procedimientos en otras aplicaciones como si fueran llamadas locales. Este middleware incluye un mecanismo de enlace que localiza operaciones remotas y las hace disponibles de manera transparente para los clientes. El middleware basado en RPC históricamente manejaba sistemas basados en procedimientos, pero ahora incorpora componentes basados en objetos.
  • Middleware de procesamiento de transacciones (TP) incluye sistemas como monitores de procesamiento de transacciones y servidores de aplicaciones web. Su objetivo es crear un entorno para desarrollar e implementar diversas aplicaciones.
  • Middleware de base de datos permite el acceso directo a bases de datos. Ayuda a lograr una interacción directa con bases de datos e incluye varias puertas de enlace de bases de datos y opciones de conexión.
  • Middleware embebido, o middleware de integración, ayuda a las empresas a desarrollar y ofrecer un mejor marco de integración a través de un programa o interfaz de hardware. Sirve como un puente entre aplicaciones embebidas y el sistema operativo en tiempo real.
  • Portales, también conocidos como portales empresariales, no son técnicamente middleware. Sin embargo, se clasifican como middleware ya que permiten la integración de front-end y promueven la interacción entre una máquina cliente y plataformas de back-end.
  • Middleware centrado en contenido adquiere contenido a través de la abstracción proveedor-consumidor y se aplica ampliamente en sistemas basados en contenido. Es comparable al middleware de publicación/suscripción, otro software frecuentemente utilizado como componente de aplicaciones basadas en la web.

MOM vs. RPC

El mecanismo de comunicación que empleamos para vincular los diferentes componentes de una aplicación distribuida es una consideración importante al diseñarla. Algunos sistemas de middleware, como los servicios web, soportan dos marcos de comunicación clave: middleware orientado a mensajes (MOM) y llamada a procedimiento remoto (RPC).

MOM vs. RPC

Con el middleware orientado a mensajes, los consumidores de servicios pueden separarse física y temporalmente de los proveedores de servicios. Las interacciones entre proveedores y consumidores son asincrónicas, ya que intercambian mensajes de colas de mensajes definidas.

Ejemplos de implementación de MOM incluyen IBM Web Sphere MQ y Microsoft Message Queuing (MSMQ). Los sistemas de mensajería asincrónica eliminan la necesidad de que la aplicación espere la respuesta: simplemente transmite el mensaje y ejecuta sus actividades asincrónicas.

Otra característica de MOM es su Modo Offline, que permite que el cliente y el proveedor de servicios se desconecten en cualquier momento sin perder ningún mensaje en la cola.

Pueden recuperar todos los mensajes pendientes una vez que vuelven a estar en línea. Además, MOM soporta una arquitectura impulsada por eventos; el administrador puede clasificar a los clientes según su acuerdo de nivel de servicio (SLA) y solicitar diferentes niveles de Calidad de Servicio (QoS). Sin embargo, esto hace que los sistemas MOM demanden dispositivos intensivos en recursos, particularmente en términos de memoria, para retener colas continuas de mensajes recibidos pero aún no procesados.

Por otro lado, RPC proporciona comunicación sincrónica entre componentes para solicitar la ejecución de servicios remotos. Los consumidores deben dejar de usar el servicio hasta que obtengan una respuesta de la fuente.

MOM y RPC tienen beneficios y desventajas. Los sistemas MOM son más resistentes a fallos que los sistemas RPC, permitiendo que los solicitantes de servicios continúen procesando mientras los proveedores de servicios actúan sobre sus solicitudes. Desarrollar aplicaciones basadas en MOM es más difícil ya que la distribución no es tan clara para el desarrollador como lo es con los RPC.

Estándares de MOM

Históricamente, ha habido una escasez de regulaciones que gobiernen la implementación del middleware orientado a mensajes; esto ha planteado problemas. La mayoría de los proveedores líderes tienen versiones con interfaces de programación de aplicaciones (API) y herramientas de administración.

La especificación XATMI del grupo X/Open es una de las pautas de larga data para aplicaciones basadas en MOM. Define claramente las API para interacciones entre procesos. Las implementaciones conocidas incluyen el middleware Enduro/X de ATR Baltic y Oracle Tuxedo.

El Protocolo Avanzado de Colas de Mensajes (AMQP) es un punto de referencia que describe los protocolos y formatos utilizados por los elementos de software participantes para garantizar la interoperabilidad. AMQP utiliza esquemas de enrutamiento flexibles, incluyendo paradigmas de mensajería punto a punto, fan-out, publicación/suscripción y solicitud-respuesta. AMQP ofrece gestión de transacciones, colas, seguridad, administración, agrupación, federación y soporte multiplataforma heterogéneo.

La Arquitectura de Alto Nivel (HLA IEEE 1516) es un estándar de interoperabilidad de simulación desarrollado por el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). Especifica una gama de servicios accesibles a través de una API en C++ o Java.

El estándar define intercambios de información basados en pub/sub. Los intercambios de datos sincronizados, las instalaciones de avance de tiempo y los puntos de sincronización también se basan en el tiempo de simulación lógico. Los servicios adicionales incluyen optimización de distribución de datos, transferencia de propiedad y gestión y monitoreo de sistemas participantes.

El entorno de programación Java ofrece una API estándar llamada Java Message Service (JMS) para enviar y recibir mensajes de manera independiente del proveedor utilizando el lenguaje de programación Java. La API JMS reduce la experiencia de mensajería empresarial necesaria para que un desarrollador Java construya aplicaciones de mensajería extensas mientras mantiene cierta portabilidad entre implementaciones de proveedores JMS.

El Protocolo Extensible de Mensajería y Presencia (XMPP) es un protocolo de comunicaciones basado en lenguaje de marcado extensible (XML) para middleware orientado a mensajes. El protocolo, diseñado para ser flexible, también se está utilizando para sistemas pub/sub, señalización para VoIP, transferencia de archivos, video, plataformas de redes sociales y aplicaciones de Internet de las Cosas (IoT) como redes inteligentes.

Ventajas del middleware orientado a mensajes

El software de middleware orientado a mensajes simplifica el desarrollo de aplicaciones que abarcan varios paquetes de software y protocolos de red. Protege al desarrollador de aplicaciones de los detalles de los múltiples sistemas operativos y componentes de red.

Los MOMs aumentan la flexibilidad de una arquitectura al ofrecer versiones de API que se expanden sin problemas a través de múltiples plataformas y redes. Esto permite que los programas se comuniquen libremente sin saber en qué sistema o procesador se está ejecutando la otra aplicación.

Veamos otros beneficios de usar MOMs en tu infraestructura.

  • Sencillo y conveniente: Los sistemas basados en MOM son fáciles de usar, lo que facilita a los desarrolladores construir con ellos y, en consecuencia, aumenta la productividad.
  • Racionaliza las operaciones comerciales: Los sistemas MOM ayudan a muchas empresas a mejorar la eficiencia y racionalizar numerosas prácticas comerciales comunes.
  • Adaptable: Los sistemas MOM se integran y comunican sin problemas a través de diversas plataformas, incluso cuando las aplicaciones individuales se ejecutan por separado o de manera asincrónica. Las aplicaciones se mantienen de manera independiente en cada entorno, pero pueden actualizarse individualmente.
  • Amigable para desarrolladores: Los MOMs facilitan a los desarrolladores diseñar muchos tipos de sistemas distribuidos.
  • Independiente del tiempo y la ubicación: Dado que los MOMs encolan datos incluso cuando los suscriptores están desconectados, el remitente y el destinatario no tienen que estar en línea simultáneamente. Además, los remitentes y destinatarios de mensajes están separados por ubicación y pueden moverse de dispositivo a dispositivo en tiempo de ejecución. Corregir software y hardware desde cualquier sitio significa que las operaciones comerciales pueden continuar sin interrupciones.
  • Amplia gama de sistemas de software: El middleware orientado a mensajes soporta una variedad de estructuras de software, incluyendo soporte para aplicaciones móviles, objetos y componentes distribuidos, y comunicación orientada a mensajes.
  • Soporte para sistemas impulsados por eventos: Las soluciones de middleware orientado a mensajes permiten el desarrollo de aplicaciones en una arquitectura impulsada por eventos.
  • Escalabilidad: Los sistemas MOM a menudo escalan de manera efectiva según el número de destinatarios de mensajes. Por ejemplo, si muchos clientes envían solicitudes pero solo un sistema las maneja, puedes escalar la capacidad de procesamiento de transacciones agregando más sistemas que trabajen en la misma cola.

Desventajas del middleware orientado a mensajes

Usar middleware orientado a mensajes tiene numerosos beneficios, pero también hay algunas desventajas.

  • Los MOMs requieren un elemento arquitectónico adicional. La existencia de un agente de transferencia de mensajes o broker es una de las principales desventajas del middleware orientado a mensajes. Agregar componentes puede disminuir el rendimiento de un sistema, aumentando los costos de mantenimiento y la complejidad.
  • Los MOMs tienen altos costos de desarrollo. Muchas organizaciones no pueden operar un sistema de middleware orientado a mensajes debido a los altos costos de desarrollo.
  • Los MOMs necesitan mejoras. Muchos sistemas MOM aún no están completamente diseñados para operaciones óptimas, lo que puede amenazar el rendimiento en tiempo real de un sistema en algunas condiciones.

MOM al rescate

Si deseas mejorar la comunicación entre tus sistemas de software, el middleware orientado a mensajes es una excelente opción. Los sistemas basados en MOM pueden manejar picos de tráfico mientras proporcionan una solución flexible y resistente para implementaciones dispersas.

La aplicación que llama no necesita acceso a sistemas remotos para enviar un mensaje. Un acoplamiento suelto entre cliente y proveedor permite que los sistemas ágiles se expandan y adapten según la demanda.

Aprende cómo el software de análisis de flujo puede ayudar a tu empresa a analizar datos en transferencia entre sistemas o a través de APIs.

Este artículo fue publicado originalmente en 2022. Ha sido actualizado con nueva información.

Keerthi Rangan
KR

Keerthi Rangan

Keerthi Rangan is a Senior SEO Specialist with a sharp focus on the IT management software market. Formerly a Content Marketing Specialist at G2, Keerthi crafts content that not only simplifies complex IT concepts but also guides organizations toward transformative software solutions. With a background in Python development, she brings a unique blend of technical expertise and strategic insight to her work. Her interests span network automation, blockchain, infrastructure as code (IaC), SaaS, and beyond—always exploring how technology reshapes businesses and how people work. Keerthi’s approach is thoughtful and driven by a quiet curiosity, always seeking the deeper connections between technology, strategy, and growth.