IBM MQ es una familia de productos de middleware orientados a mensajes que IBM lanzó en diciembre de 1993. Originalmente se llamaba MQSeries y pasó a llamarse WebSphere MQ en 2002 para unirse a la suite de productos WebSphere . En abril de 2014, pasó a llamarse IBM MQ . Los productos que se incluyen en la familia MQ son IBM MQ, IBM MQ Advanced, IBM MQ Appliance, IBM MQ para z / OS e IBM MQ en IBM Cloud. IBM MQ también tiene opciones de implementación en contenedores.
MQ permite que las aplicaciones independientes y potencialmente no concurrentes en un sistema distribuido se comuniquen de forma segura entre sí mediante mensajes. MQ está disponible en una gran cantidad de plataformas (tanto IBM como no IBM), incluyendo z / OS ( mainframe ), IBM i , Transaction Processing Facility , UNIX ( AIX , HP-UX , Solaris ), HP NonStop , OpenVMS , Linux y Microsoft Windows .
Los componentes centrales de MQ son:
Los programas integrados con IBM MQ utilizan una interfaz de programa de aplicación (API) coherente en todas las plataformas.
MQ admite mensajería punto a punto y publicación-suscripción .
Las API soportadas directamente por IBM incluyen:
También hay API adicionales (no admitidas oficialmente) a través de terceros, que incluyen:
Un tiempo de entrega : MQ usos una vez y sólo una vez la entrega. Esta calidad de servicio normalmente evita la pérdida o la duplicación de mensajes.
Mensajería asincrónica : MQ proporciona a los diseñadores de aplicaciones un mecanismo para lograr una arquitectura no dependiente del tiempo. Los mensajes se pueden enviar de una aplicación a otra, independientemente de si las aplicaciones se están ejecutando al mismo tiempo. Si una aplicación de receptor de mensajes no se está ejecutando cuando un remitente le envía un mensaje, el gestor de colas retendrá el mensaje hasta que el receptor lo solicite. El orden de todos los mensajes se conserva, de forma predeterminada, está en orden FIFO de recepción en la cola local dentro de la prioridad del mensaje.
Transformación de datos : por ejemplo, Big Endian a Little Endian o EBCDIC a ASCII . Esto se logra mediante el uso de salidas de datos de mensajes . Las salidas son aplicaciones compiladas que se ejecutan en el host del gestor de colas y son ejecutadas por el software IBM MQ en el momento en que se necesita la transformación de datos.
Marco de arquitectura basada en mensajes : IBM MQ permite la recepción de mensajes para "activar" la ejecución de otras aplicaciones.
Gama de API : implementa la API estándar de Java Message Service (JMS) y también tiene su propia API patentada, conocida como Message Queue Server Interface (MQI), que precedió a JMS varios años de existencia. A partir de la versión 8.0.0.4, MQ también admite la API MQ Light.
Agrupación : varias implementaciones de MQ comparten el procesamiento de mensajes, lo que proporciona equilibrio de carga.
Los administradores de colas se comunican con el mundo exterior a través de:
Esto se basa en un canal . Cada gestor de colas utiliza uno o más canales para enviar y recibir datos a otros gestores de colas. Un canal es unidireccional; se requiere un segundo canal para devolver datos. En una red basada en TCP / IP, un canal envía o recibe datos en un puerto específico.
Tipos de canales:
Cuando un canal de recepción recibe un mensaje, se examina para ver a qué gestor de colas y a qué cola está destinado. En el caso de una falla en las comunicaciones, MQ puede restablecer automáticamente una conexión cuando se resuelva el problema.
El escucha es la interfaz de red de la aplicación para el gestor de colas. El oyente detecta las conexiones de los canales entrantes y gestiona la conexión de los canales de envío a los canales de recepción. En una red TCP / IP, el oyente "escuchará" las conexiones en un puerto específico.
Tipos de cola:
Un mensaje se coloca en una cola remota. Los mensajes van a una cola de transmisión de almacenamiento temporal asociada con un canal. Al colocar un mensaje en una cola remota, el mensaje se transmite a través del canal remoto. Si la transmisión tiene éxito, el mensaje se elimina de la cola de transmisión. Al recibir un mensaje, el gestor de colas de recepción examina el mensaje para determinar si el mensaje es para sí mismo o si debe ir a otro gestor de colas. Si es el gestor de colas de recepción, se comprobará la cola necesaria y, si existe, el mensaje se colocará en esta cola. De lo contrario, el mensaje se coloca en la cola de mensajes no entregados.. MQ tiene características para administrar la transmisión eficiente de datos a través de una variedad de medios de comunicación. Por ejemplo, los mensajes se pueden agrupar hasta que una cola alcanza una profundidad determinada.
Aunque la cola es FIFO, se ordena en función de la recepción en la cola local, no de la confirmación del mensaje del remitente. Los mensajes se pueden priorizar y, de forma predeterminada, la cola se prioriza en orden de llegada. Las colas solo estarán en secuencia de adición si el mensaje se agrega localmente. La agrupación de mensajes se puede utilizar para garantizar que un conjunto de mensajes esté en un orden específico, aparte de eso, si la secuencia es crítica, es responsabilidad de la aplicación colocar los datos de la secuencia en el mensaje o implementar un mecanismo de reconocimiento a través de una cola de retorno. En realidad, los pedidos se mantendrán en configuraciones sencillas.
El otro elemento de un gestor de colas es el registro . Cuando se coloca un mensaje en una cola o se realiza un cambio de configuración, los datos también se registran. En caso de falla, el registro se utiliza para recrear objetos dañados y recrear mensajes. Sólo persistentes mensajes se vuelven a crear cuando se pierden un fallo occurs- mensajes "no persistentes". Los mensajes no persistentes se pueden enviar a través de un canal configurado en un modo rápido, en el que la entrega no está asegurada en caso de falla del canal.
MQ admite registros tanto circulares como lineales.
La información se puede recuperar de las colas sondeando la cola para verificar los datos disponibles a intervalos adecuados o, alternativamente, MQ puede desencadenar un evento, lo que permite que una aplicación cliente responda a la entrega de un mensaje.
IBM MQ ofrece una variedad de soluciones para satisfacer la disponibilidad:
Administrador de colas de datos replicados (RDQM / 'Easy HA' - MQ Advanced solo en distribuidos): replicación síncrona entre tres servidores que comparten una dirección IP flotante.
Clústeres de gestores de colas : los grupos de dos o más gestores de colas en uno o más equipos se definen en un clúster, lo que proporciona una interconexión automática y permite que las colas se compartan entre ellos para el equilibrio de carga y la redundancia.
Grupos de colas compartidas (solo z / OS): en un entorno de cola compartida, una aplicación puede conectarse a cualquiera de los gestores de colas dentro del grupo de colas compartidas. Dado que todos los gestores de colas del grupo de colas compartidas pueden acceder al mismo conjunto de colas compartidas, la aplicación no depende de la disponibilidad de un gestor de colas en particular. Esto proporciona una mayor disponibilidad si un gestor de colas se detiene porque todos los demás gestores de colas del grupo de compartición de colas pueden seguir procesando la cola.
Gestores de colas de varias instancias (disponibles a partir de la versión 7.0.1): las instancias del mismo gestor de colas se configuran en dos o más equipos con sus colas y metadatos que residen en el almacenamiento compartido. Al iniciar varias instancias, una se convierte en la instancia activa y las otras instancias se vuelven en espera. Si la instancia activa falla, una instancia en espera que se ejecuta en una computadora diferente toma el control automáticamente.
Nombre de la versión | Fecha de lanzamiento |
---|---|
IBM MQ 9.2 LTS | 23 de julio de 2020 [6] |
IBM MQ 9.1 LTS | 27 de julio de 2018 [7] |
IBM MQ en IBM Cloud | 13 de marzo de 2018 [8] |
IBM MQ para HPE Nonstop 8.0 | 23 de junio de 2017 |
IBM MQ 9.0 LTS | 2 de junio de 2016 [9] |
IBM MQ 8.0 | 23 de mayo de 2014 |
WebSphere MQ 7.5 | 15 de junio de 2012 |
WebSphere MQ 7.1 | Noviembre de 2011 |
WebSphere MQ 7.0 z / OS | Junio de 2008 |
WebSphere MQ 7.0 (distribuido, iSeries) | Mayo de 2008 |
WebSphere MQ 6.0 z / OS | Junio de 2005 |
WebSphere MQ 6.0 (distribuido, iSeries) | Mayo de 2005 |
WebSphere MQ 5.3 z / OS | Junio de 2002 |
WebSphere MQ 5.3 (distribuido, iSeries) | Junio, julio, octubre, noviembre de 2002 |
MQSeries 5.2 (distribuido) | Dic. De 2000 |
MQSeries para OS / 390 V5.2 | Noviembre de 2000 |
MQSeries para AS / 400 V5.1 | Julio-agosto de 2000 |
MQSeries para OS / 390 V2.1 | Febrero de 1999 |
MQSeries 5.1 | Abril (NT), junio de 1999 |
MQSeries para AS / 400 V4.2 | Febrero de 1998 |
MQSeries 5.0 | Octubre de 1997 |
MQSeries para MVS / ESA 1.2 | 29 de agosto de 1997 [10] |
MQSeries para MVS 1.1.4, | Junio de 1996 |
MQSeries 2.2 (Sun OS / Solaris, DC / OSx) | Junio, julio de 1996 |
MQSeries 2.0 Windows NT | 2T 1996 |
MQSeries 2.2 (HP, SCO) | 4T 1995 |
MQSeries para MVS 1.1.3 | Mayo de 1995 |
MQSeries 2.0 (OS / 2, AIX) | Febrero de 1995 (el comienzo del fin de ezBridge) |
MQM / 400 V3 | 4T 1994 |
ezBridge Transact para MQSeries 3.0 | Julio de 1994 |
MQSeries para MVS 1.1.2 | Junio de 1994 |
MQM / 400 V2.3 | Febrero / abril de 1994 |
ezBridge Transact para MQSeries | Marzo, septiembre, noviembre, DSA |
MQSeries para MVS V1.1.1 | 31 de diciembre de 1993 |
La siguiente tabla se aplica al software MQ. El dispositivo MQ tiene fechas de ciclo de vida diferentes para el firmware y el hardware que las de la tabla. [11]
Nombre de la versión | Disponibilidad general | Fin de marketing | Fin del soporte |
---|---|---|---|
IBM MQ 9.1 | 23 de julio de 2018 | - | - |
IBM MQ 9.0 | 02-junio-2016 | 17 de septiembre de 2021 | 30 de septiembre de 2021 |
IBM MQ 8.0 | 13 de junio de 2014 | 17-abr-2020 | 30-abr-2020 |
WebSphere MQ 7.5 | 06-julio-2012 | 16-dic-2016 | 30-abr-2018 |
WebSphere MQ 7.1 | 25 de noviembre de 2011 | 12 de julio de 2016 | 30-abr-2017 |
Con la llegada de las computadoras, IBM vio la oportunidad de aplicar nueva tecnología a la necesidad de conmutación de mensajes.
A principios de la década de 1960, IBM comercializó el Sistema de control de comunicaciones IBM 7740 y el Control de transmisión programado IBM 7750, que eran sistemas de conmutación de mensajes programables.
El IBM System / 360 se anunció en abril de 1964 y con él vinieron los métodos de acceso a las comunicaciones como BTAM y QTAM (Métodos de acceso de telecomunicaciones básicos y en cola). En 1971, TCAM, el método de acceso a las telecomunicaciones , ofreció a sus usuarios una forma más avanzada de conmutación o enrutamiento de mensajes. TCAM fue ampliamente aceptado, especialmente en las industrias financiera y de corretaje. Admitía mensajería asincrónica, como con el MQ posterior. TCAM 3.0 agregado en colas de mensajes de disco reutilizables para recuperación poco después, como con MQ. Se podría utilizar un programa PL / I de alto nivel para acceder a conjuntos de datos TRANSITORIOS (colas de mensajes dinámicos). Al leer un mensaje de un conjunto de datos transitorio, ese mensaje se eliminó de la cola, como con un READ sin exploración con MQ.
A finales de la década de 1970, aparecieron los sistemas de gestión de transacciones, cada uno de los cuales intentaba alcanzar una posición de liderazgo en la industria. Dentro de IBM, CICS e IMS fueron elegidos como productos estratégicos para abordar la necesidad de gestión de transacciones. Tanto en CICS como en IMS, cada uno tenía su versión de conmutación de mensajes, siendo IMS un sistema en cola de front-end y CICS con su función de datos transitorios como posible base para la conmutación de mensajes. [ cita requerida ]
CICS se estableció como un sistema de gestión de transacciones popular en el período de tiempo 1968-1971. Aquellos usuarios que habían adoptado TCAM por sus capacidades de manejo de mensajes ahora querían un uso combinado de TCAM con CICS. En diciembre de 1971, IBM anunció el soporte CICS de TCAM como parte del producto CICS / OS-Standard, que se entregará en diciembre de 1972. Para los clientes interesados, esto les permitió utilizar TCAM por sus fortalezas en el manejo de mensajes y también tener terminales conectados a TCAM. o las computadoras interactúan con las aplicaciones en línea de CICS. [ cita requerida ]
En enero de 1973, TCAM continuó siendo compatible con CICS / OS-Standard Versión 2.3. Sin embargo, el soporte de TCAM se omitió en el lanzamiento inicial de CICS / VS, anunciado en febrero de 1973 y entregado en junio de 1974. Huelga decir que muchos clientes de CICS-TCAM no estaban contentos con la dirección de ese producto.
Con una presión considerable de los clientes de CICS-TCAM, el soporte CICS de TCAM se restableció en el producto CICS / VS 1.1, a partir de septiembre de 1974. Además del soporte DCB anterior, con este restablecimiento del soporte TCAM, CICS comenzó a admitir el acceso TCAM a través de VTAM, también conocido como soporte ACB. El soporte de CICS TCAM ACB se suspendió a partir del producto CICS / ESA Versión 3 en 1990.
En 1992, IBM anunció un nuevo producto llamado MQSeries. Esta marca se renombró más tarde a WebSphere MQ (a veces abreviado como WMQ) en 2002 para admitir el nombre de la familia WebSphere y el producto. En 2014, pasó a llamarse IBM MQ. MQ iba a ser la extensión de la funcionalidad TCAM de los sistemas exclusivos de IBM a todas las demás plataformas. MQ tiene una arquitectura que permite que sistemas heterogéneos se comuniquen entre sí (por ejemplo, IBM, HP, Sun, Tandem, etc.). MQ se puede utilizar con sistemas CICS para enviar y recibir datos hacia / desde cualquier otro sistema apto para MQ. MQ se puede utilizar para iniciar el trabajo en un sistema CICS o una transacción CICS puede iniciar el trabajo en otro sistema CICS o no CICS.
IBM MQ ahora admite 80 entornos diferentes y se ha convertido en el producto líder de enrutamiento / conmutación de entrega asegurada de mensajes en la industria. [12]
IBM MQ se puede utilizar como base para crear arquitecturas orientadas a servicios . Existen varias opciones de productos adicionales para ayudar a convertir programas heredados en servicios web funcionales mediante el uso de MQ. Las empresas más grandes y heterogéneas a menudo aparecen como una federación de dominios algo autónomos basados en líneas de negocio, áreas funcionales o de gobierno. En tales entornos, algunos servicios pueden compartirse o reutilizarse solo dentro de un único dominio, mientras que otros pueden compartirse o reutilizarse en toda la empresa. IBM MQ proporciona los medios por los que existe comunicación entre líneas de negocio o dominios de negocio separados de otro modo.
Un producto relacionado en la familia de productos IBM MQ, llamado IBM Integration Bus (anteriormente WebSphere Message Broker) , permite un conjunto diverso y sólido de extensiones para arquitecturas basadas en colas. Con IBM Integration Bus, los usuarios pueden implementar un front-end de WebServices, completo con soporte de archivos WSDL que puede interactuar con cualquier aplicación basada en colas.