Message Queue 4.3 es una versión secundaria que incluye varias mejoras de funciones y errores corregidos. En esta sección se describen las nuevas funciones incluidas en esta versión:
Message Queue 4.3 incluye un nuevo servicio UMS (Universal Messaging Service) y una API de mensajería que permiten acceder a Message Queue desde cualquier dispositivo con http. Como resultado, prácticamente cualquier aplicación puede comunicarse con otras aplicaciones y aprovechar la fiabilidad y el envío garantizado de la mensajería JMS. Además, el servicio UMS ofrece una mayor escalabilidad para la mensajería JMS, lo que permite aumentar el número de clientes de mensajería hasta proporciones de escala de Internet.
La siguiente figura muestra la arquitectura UMS básica:
UMS, que se ejecuta en un servidor web, es un servicio independiente de la plataforma y con lenguaje neutro. El servicio UMS actúa como una puerta de enlace entre cualquier aplicación cliente no JMS y un proveedor JMS. Recibe mensajes enviados con la API UMS, los transforma en mensajes JMS y los produce en destinos del proveedor JMS mediante el protocolo nativo del proveedor. De modo similar, extrae mensajes de destinos del proveedor JMS, los transforma en mensajes de texto o SOAP y los envía a clientes no JMS según lo soliciten los clientes mediante la API UMS.
La API UMS, sencilla, independiente del lenguaje y basada en protocolo, admite tanto aplicaciones web como no basadas en web, y puede usarse con lenguajes de secuencias de comandos y de programación. La API está disponible en dos modelos: una API de mensajería sencilla que utiliza un protocolo de tipo REST (REpresentational State Transfer), y una API de mensajería XML que incrusta el protocolo en un encabezado de mensaje SOAP. En ambos modelos, la API sólo necesita una solicitud http para enviar o recibir un mensaje.
La sencillez y flexibilidad de la API UMS permite que aplicaciones AJAX, .NET, Python, C, Java y de otro tipo puedan enviar mensajes de texto o SOAP (con adjuntos) a destinos JMS o recibir mensajes de destinos JMS. Por ejemplo, las aplicaciones Python pueden comunicarse con aplicaciones .NET, las aplicaciones de iPhone pueden comunicarse con aplicaciones Java, etc.
Para Message Queue 4.3, el servicio UMS sólo admite Message Queue como proveedor JMS.
La función del servicio UMS va más allá que una simple puerta de enlace, descrita anteriormente. Admite sesiones cliente con estado y sin estado. Si lo solicita el cliente, el servicio UMS mantendrá el estado de sesión de la aplicación cliente en varias solicitudes de servicio. El servicio UMS puede utilizar autenticación administrada por contenedor, o configurarse para autenticar los clientes mediante el agente de Message Queue, o ambos. El servicio UMS también admite transacciones, lo que permite a las aplicaciones cliente confirmar o deshacer varias solicitudes de servicio como una única unidad atómica.
El servicio UMS admite un gran número de clientes en una única conexión con el agente de Message Queue, lo que reduce la carga de los servicios de conexión del agente y permite una escalabilidad máxima. Además, la capacidad del servicio UMS puede aumentarse con escalado horizontal, lo que permite trabajar con cargas de mensajes de escala de Internet.
En el cliente, gracias a la sencillez de la API UMS basada en protocolo, no se necesitan bibliotecas de cliente. Como resultado, la API puede ampliarse en el futuro para aplicar nuevas funciones JMS sin necesidad de actualizar las aplicaciones del cliente.
Para utilizar el servicio UMS debe implementar UMS en un contenedor web compatible con las especificaciones Servlet 2.4 o posterior, iniciar el agente de Message Queue, crear los destinos correspondientes y escribir una aplicación de mensajería que utilice la API UMS para enviar o recibir mensajes.
El archivo UMS imqums.war, incluido en Message Queue 4.3, se instala en la siguiente ubicación, según la plataforma:
Puede cambiar el nombre del archivo .war según sus necesidades.
Tabla 1–5 Ubicación del archivo imqums.war
Plataforma |
Ubicación de imqums.war |
---|---|
Solaris |
/usr/share/lib/imq |
Linux |
/opt/sun/mq/share/lib |
AIX |
IMQ_HOME/lib |
Windows |
IMQ_HOME\lib |
Cuando haya implementado el archivo imqums.war en un contenedor web en localhost:puerto, podrá consultar la documentación de UMS en:
http://localhost:puerto/imqums
De lo contrario, puede encontrar la documentación de UMS como se indica a continuación:
Para obtener información acerca de la configuración de UMS, consulte https://mq.dev.java.net/4.3-content/ums/config.html.
Si necesita documentación sobre la API UMS, consulte https://mq.dev.java.net/4.3-content/ums/protocol.html.
Para ver ejemplos de programación en diferentes lenguajes, consulte https://mq.dev.java.net/4.3-content/ums/examples/README.html.
Actualmente, los siguientes contenedores web admiten UMS:
Sun GlassFish Enterprise Server, Versión 2.1 y Versión 3 Prelude
Tomcat, versiones 5.5 y 6.0
Message Queue 4.3 incluye paquetes para la plataforma AIX y el instalador correspondiente.
La implementación AIX de Message Queue admite el siguiente software:
AIX v 6.1 o posterior (se admiten versiones anteriores de AIX mediante el paquete Unix/Java Only)
Admisión de DB2
Compilador C/C++ IBM XL V9.0
JDK 1.5 o superior
Si necesita instrucciones de instalación, consulte el Capítulo 4, AIX Installation, de la Sun Java System Message Queue 4.3 Installation Guide.
En la plataforma AIX, los archivos de Message Queue se instalan en un único directorio raíz de Message Queue, IMQ_HOME. IMQ_HOME se refiere al directorio mqInstallHome/mq, mqInstallHome es el directorio raíz de la instalación especificado al instalar el producto (de manera predeterminada, es home-directory /MessageQueue).
La estructura de directorios de Message Queue resultante es la misma que en Windows (consulte la sección Windows del Apéndice A, Distribution-Specific Locations of Message Queue Data de Sun GlassFish Message Queue 4.4 Administration Guide.)
Message Queue es compatible con la plataforma AIX, incluida la C-API de Message Queue. Si necesita instrucciones para generar y compilar aplicaciones C en la plataforma AIX, consulte XREF.
Message Queue 4.3 incluye un nuevo instalador para distribuciones basadas en zip, en lugar de distribuciones de paquete nativo. El instalador permite instalar las nuevas distribuciones .zip de Message Queue para la plataforma AIX.
El nuevo instalador extrae los archivos .zip de Message Queue en cualquier directorio para el que el usuario tenga derechos de escritura (no son necesarios privilegios root) y también permite registrar la instalación de Message Queue con Sun Connection.
Para minimizar el tamaño de los paquetes de descarga, Java Runtime no se incluye en la distribución basada en zip (la mayoría de sitios ya lo tienen). Por lo tanto, el comando installer requiere que se especifique un JDK o JRE, ya sea mediante la variable de entorno JAVA_HOME o utilizando la opción -j en la línea de comando, como se muestra a continuación:
$ installer -j ruta-JDK/JRE
ruta-JDK/JRE es la ruta del JDK o JRE especificado.
Message Queue 4.3 será compatible con las siguientes plataformas adicionales:
Oracle 11g
Windows Server 2008
Message Queue 4.3 incluye las siguientes mejoras adicionales:
La estructura de directorios de la instalación de Message Queue en Windows se ha modificado con respecto a versiones anteriores, para que sea igual que en la plataforma AIX. En el futuro, esta estructura de directorios se utilizará también en Solaris y Linux para facilitar el uso de varias instalaciones en un único equipo y las actualizaciones automáticas de Message Queue mediante Sun Connection; un servicio de Sun que facilita el control, la organización y el mantenimiento de hardware y software de Sun (consulte Compatibilidad del instalador con el registro en Sun Connection).
Pueden utilizarse las siguientes propiedades nuevas para configurar un agente:
Tabla 1–6 Propiedades de envío y enrutamiento de agente
Propiedad |
Tipo |
Valor predeterminado |
Descripción |
---|---|---|---|
imq.transaction.producer.maxNumMsgs |
Entero |
1000 |
El número máximo de mensajes que un productor puede procesar en una única transacción. Se recomienda que el valor sea inferior a 5000 para evitar que se agoten los recursos. |
imq.transaction.consumer.maxNumMsgs |
Entero |
100 |
El número máximo de mensajes que un consumidor puede procesar en una única transacción. Se recomienda que el valor sea inferior a 1000 para evitar que se agoten los recursos. |
imq.persist.jdbc.connection.limit |
Entero |
5 |
El número máximo de conexiones que pueden estar abiertas en la base de datos. |
Se han añadido claves de datos compuestas y un atributo nuevo a la API JMX:
Se ha añadido un atributo NextMessageID al Destination Monitor MBean para proporcionar el ID de mensaje JMS del siguiente mensaje que debe enviarse a un consumidor.
Se ha añadido una clave NextMessageID para datos compuestos al Consumer Manager Monitor MBean para proporcionar el ID de mensaje JMS del siguiente mensaje que debe enviarse al consumidor.
Se ha añadido una clave NumMsgsPending para datos compuestos al Consumer Manager Monitor MBean para proporcionar el número de mensajes que se han enviado al consumidor.
Si necesita más información, consulte el Capítulo 3, Message Queue MBean Reference de Sun GlassFish Message Queue 4.4 Developer’s Guide for JMX Clients.
El comando para obtener una lista de las suscripciones duraderas:
list dur [-d topicName]
se ha mejorado para poder especificar el nombre de tema. Si no se especifica ningún tema, el comando muestra todas las suscripciones duraderas de todos los temas, incluidas las que contengan caracteres comodín.