¿Qué es una cola de mensajes?
Una cola de mensajes es un componente de middleware de mensajería que permite intercambiar información entre aplicaciones y servicios independientes.
Fondo negro y azul
¿Qué es una cola de mensajes?

Una cola de mensajes es un componente de las soluciones de middleware de mensajería que permite intercambiar información entre aplicaciones y servicios independientes. Las colas de mensajes almacenan "mensajes" (paquetes de datos que las aplicaciones crean para que otras aplicaciones los consuman) en el orden en el que se transmiten hasta que la aplicación consumidora pueda procesarlos. Esto permite que los mensajes esperen de forma segura hasta que la aplicación receptora esté preparada, por lo que si hay un problema con la aplicación de red o receptora, los mensajes en la cola de mensajes no se pierden.

Este modelo, conocido como mensajería asíncrona, evita la pérdida de datos y permite que los sistemas sigan funcionando si fallan los procesos o las conexiones. De esta forma, los desarrolladores pueden mantener los procesos y las aplicaciones separados, y sus comunicaciones autocontenidas y basadas en sucesos para que la arquitectura sea más fiable.

Las colas de mensajes están disponibles en las soluciones de mensajería a través de numerosas opciones de despliegue, por ejemplo, los dispositivos físicos optimizados, los servicios de cloud, los mainframes y como software.

Ventajas

Las soluciones de colas de mensajes se utilizan ampliamente en todos los sectores y ofrecen múltiples beneficios tanto para los desarrolladores como para los administradores de sistemas, incluidos los siguientes:

  • Entrega de mensajes fiable: el uso de una cola de mensajes garantiza que los mensajes críticos para la empresa entre las aplicaciones no se pierdan y que solo se entreguen al destinatario una vez. Con esta característica en vigor, la lógica de prevención de pérdidas o deduplicación adicional es innecesaria.

  • Conectividad entre aplicaciones: algunas soluciones de colas de mensajes pueden manejar el cifrado de mensajes, la transaccionalidad y otros aspectos de la comunicación entre las aplicaciones y los servicios. Esto simplifica el desarrollo de aplicaciones y permite que arquitecturas dispares trabajen juntas.

  • Versatilidad: las soluciones de colas de mensajes admiten varios lenguajes, como Java, Node\.js, COBOL, C/C++, Go, .NET, Python, Ruby y C#, así como a un buen número de interfaces de programación de aplicaciones (API) y protocolos, por ejemplo, MQTT, AMQP y REST, entre otros.

  • Resiliencia: la mensajería asíncrona garantiza que los errores específicos de la aplicación no afecten al sistema. Si un componente en el sistema se bloquea, los demás podrán continuar interactuando con los mensajes de cola y de proceso. Esto disminuye la posibilidad de que la estabilidad de todo el sistema se vea afectada por el error de una parte.

  • Seguridad mejorada: una cola de mensajes puede identificar y autenticar todos los mensajes y, en algunas soluciones de colas de mensajes, se puede definir para cifrar mensajes en reposo, en tránsito o de extremo a extremo. Esto contribuye a la seguridad general de las aplicaciones y/o la infraestructura.

  • Transferencias de archivos integradas: algunas soluciones de colas de mensajes incluyen características adicionales como, por ejemplo, la capacidad de transferir archivos. Se pueden utilizar como alternativa al FTP en las empresas donde se utiliza este tipo de soluciones.
Casos de uso

Los entornos informáticos de las empresas actuales son complejos y altamente descentralizados. La mensajería facilita la integración de aplicaciones y servicios en diversas plataformas, ya que proporciona una única infraestructura de mensajería compartida sólida y segura. Protege contra la pérdida de datos y garantiza que los sistemas sigan funcionando incluso con una conectividad inestable.

Las colas de mensajes son especialmente adecuadas para integrar sistemas de back-end locales con servicios de cloud. En las arquitecturas de cloud, las aplicaciones a menudo se desglosan en pequeños componentes independientes. Esto hace que sea más fácil diseñarlas y codificarlas, así como gestionar su rendimiento. Las colas de mensajes permiten que estas aplicaciones desacopladas basadas en el cloud se comuniquen entre sí o con sistemas locales.

Las colas de mensajes aumentan la resiliencia de la arquitectura, porque los mensajes pueden tener persistencia. Esto significa que se almacenan en disco hasta que el servicio que recibe el mensaje confirme el proceso. Las colas de mensajes se pueden utilizar en escenarios que requieren altos niveles de seguridad, tolerancia a errores y precisión, por ejemplo, procesos de transacciones financieras, reserva de billetes de avión o actualización de historiales de pacientes en la asistencia sanitaria.

Las colas de mensajes también se pueden utilizar para que las aplicaciones y los sistemas que residen en diferentes clouds (ya sea un cloud público o un cloud privado) puedan comunicarse, aunque estén ubicados en diferentes países o incluso en continentes remotos. El uso de una cola de mensajes aumenta la tolerancia a errores, además de impedir que los datos se dupliquen o se pierdan en sistemas geográfica y técnicamente dispares. Como cada servicio en el sistema está desacoplado, o lógicamente separado de los demás, cada uno puede seguir funcionando si los otros servicios o aplicaciones fallan o se bloquean.

Las colas de mensajes funcionan en distintas aplicaciones, por ejemplo, en aplicaciones móviles, de IoT y de registros de sistemas transaccionales tradicionales. También admiten varias plataformas, por ejemplo, máquinas virtuales y contenedores, además de habilitar la integración entre las aplicaciones heredadas y las últimas soluciones actuales.

Cola de mensaje frente a…

Cola de mensajes frente a pub/sub
Las colas de mensajes utilizan un patrón de mensajería de punto a punto, donde una aplicación (llamada remitente) envía un mensaje a la cola y otra aplicación (llamada destinatario) recibe el mensaje de la cola y lo consume. Debe haber una relación de uno a uno estrechamente acoplada entre el remitente y el consumidor, y cada mensaje debe consumirse solo una vez.

Si sus aplicaciones requieren la distribución de mensajes a varias partes, se pueden combinar varias colas de mensajes o se puede usar un modelo de mensajería de publicación/suscripción (pub/sub).

En la mensajería de pub/sub, la aplicación que genera el mensaje se denomina aplicación de publicación y las aplicaciones que la consumen son los suscriptores. Cada mensaje se publica en un tema y cada aplicación que se suscribe a ese tema obtiene una copia de todos los mensaje publicados en él.

La mayoría de las soluciones de middleware de mensajería admiten los modelos de cola de mensajes (punto a punto) y de mensajería de pub/sub.

Cola de mensajes frente al bus de mensajes
Un bus de mensajes (un tipo de bus de servicio empresarial o ESB) permite que los servicios tengan una acceso generalizado a los datos, a la vez que garantiza que permanezcan desacoplados e independientemente operativos dentro de una arquitectura de sistemas distribuidos. Cuando utiliza un bus de mensajes, todos los servicios o aplicaciones deben compartir tipos de datos comunes, un conjunto de mandatos común y protocolos de comunicación comunes (aunque estén escritos en diferentes lenguajes). Los consumidores pueden determinar cómo utilizan los mensajes.

Si las aplicaciones desacopladas se van a comunicar a través de un bus de mensajes, los mensajes deben transformarse para que todos sean del mismo tipo. En cambio, las colas de mensajes transportan mensajes, independientemente de si son del mismo tipo o no.

Colas de mensajes frente a servicios web
Las aplicaciones pueden comunicarse directamente a través de servicios web o API basadas en protocolos estándar, por ejemplo, el protocolo de acceso a objetos simple (SOAP) o HTTP, en lugar de a través de middleware de mensajería. Los servicios web se utilizan ampliamente en los sistemas distribuidos, relativamente simples y fáciles de implementar, lo que los convierte en una alternativa viable a las colas de mensajes en determinados casos de uso y escenarios.

Sin embargo, a diferencia de las colas de mensajes, los servicios web no pueden garantizar la entrega del mensaje. Si falla el servidor o la conexión, debe desarrollar la capacidad para manejar el error dentro del cliente. Los servicios web también carecen de modelos de distribución de pub/sub. El middleware de mensajería ofrece una mayor tolerancia a errores y una mayor capacidad para manejar el tráfico intenso o los picos de actividad.

Para obtener más información sobre cuándo utilizar las API, cuándo utilizar la mensajería o cuándo utilizar ambas, consulte "Una introducción a las API y la mensajería".

Cola de mensajes frente a bases de datos
Las bases de datos se pueden usar como una alternativa a las colas de mensajes en determinadas situaciones, pero gran parte del tiempo sirven para diferentes propósitos y no son fácilmente intercambiables. Las bases de datos son las más utilizadas para el almacenamiento y permiten acceder a la misma información una y otra vez. Las colas de mensajes no se pueden utilizar con fines de almacenamiento. Una vez que se ha consumido un mensaje, se elimina de la cola.

Es posible una funcionalidad de tipo cola de mensajes en una base de datos, pero requiere una gran cantidad de conocimientos y trabajo de codificación. Las bases de datos solo se pueden usar para replicar estructuras de cola simples y no son escalables para aplicaciones más grandes. 

Consulte "Una breve descripción del entorno de la base de datos" para obtener más información sobre bases de datos y sus prestaciones.

Colas de mensajes como servicio

La gestión de la cola de mensajes recae tradicionalmente sobre equipos dedicados del departamento de TI. No obstante, la entrega "como servicio" (usando una cola de mensajes alojada en el cloud) puede permitir que usuarios individuales o de línea de negocio (LOB) soliciten cambios en la infraestructura de mensajería por su cuenta, a través de un portal, lo que puede aumentar agilidad.

La cola de mensajes como servicio funciona bien en las arquitecturas sin servidor o de microservicios que son comunes en el desarrollo nativo en el cloud. Como se ofrece en un modelo de servicio alojado en el cloud, el proveedor de cloud se encarga de todo el suministro, la instalación y el mantenimiento de su infraestructura de mensajería, y está alojado en el cloud.

Tutoriales

Estos tutoriales le ayudarán si no tiene experiencia en el desarrollo de aplicaciones que se comunicar a través de IBM MQ:

Estos recursos adicionales le darán una visión general más completa:

Soluciones relacionadas
IBM Cloud Pak for Integration

IBM Cloud Pak for Integration combina la automatización de IA y un conjunto completo de herramientas de integración para conectar aplicaciones y datos en cualquier entorno de cloud o local.                     

Explore Cloud Pak for Integration
Soluciones de cloud híbrido

Descubra cómo las soluciones de cloud híbrido creadas con IBM Cloud pueden ayudar a su organización a migrar al cloud, a modernizar las aplicaciones existentes y a crear nuevas aplicaciones nativas en cloud.

Explore las soluciones de cloud híbrido
Recursos ¿Qué es el middleware?

El middleware acelera el desarrollo de aplicaciones distribuidas al simplificar la conectividad entre aplicaciones, componentes de aplicaciones y orígenes de datos de fondo.

¿Qué son las API REST?

Las API REST proporcionan una forma flexible y ligera de integrar aplicaciones. Han surgido como el método más común para conectar componentes en arquitecturas de microservicios.

Una introducción a las API y la mensajería

Aprenda cuándo utilizar las API, cuándo utilizar la mensajería o cuándo utilizar ambas.

Dé el siguiente paso

IBM® Cloud Pak for Integration es una plataforma de integración híbrida que aplica la funcionalidad de la automatización de IA de bucle cerrado para dar soporte a varios estilos de integración. La plataforma proporciona un conjunto completo de herramientas de integración en una única experiencia unificada para conectar aplicaciones y datos a través de cualquier entorno de cloud o local. Las prestaciones de Cloud Pak for Integration desbloquean silos de datos empresariales y activos como API; conectan aplicaciones locales y en el cloud; y protegen la integridad de los datos sobre la marcha con mensajería empresarial.

Explore IBM Cloud Pak for Integration