Sun GlassFish Message Queue 4.4 Notas de la versión

Universal Message Service (UMS)

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.

Arquitectura

La siguiente figura muestra la arquitectura UMS básica:

Figura 1–1 Arquitectura UMS

Ilustración que muestra el servicio UMS como puerta de enlace entre clientes no JMS y un proveedor JMS.

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.

Funciones adicionales

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.

Uso del servicio UMS

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:

Contenedores web compatibles

Actualmente, los siguientes contenedores web admiten UMS: