La API Java Message Service (en español servicio de mensajes Java), también conocida por sus siglas JMS, es la solución creada por Sun Microsystems para el uso de colas de mensajes. Este es un estándar de mensajería que permite a los componentes de aplicaciones basados en la plataforma Java2 crear, enviar, recibir y leer mensajes. También hace posible la comunicación confiable de manera asíncrona.

El servicio de mensajería instantánea también es conocido como Middleware Orientado a Mensajes (MOM por sus siglas en inglés) y es una herramienta universalmente reconocida para la construcción de aplicaciones empresariales.

Dicha API es parte integral de la versión 2 de Java.

Existen dos modelos de la API JMS, los cuales son:

Modelo Punto a Punto (point to point) (P2P): Este modelo cuenta con solo dos clientes, uno que envía el mensaje y otro que lo recibe. Este modelo asegura la llegada del mensaje ya que si el receptor no está disponible para aceptar el mensaje o atenderlo, de cualquier forma se le envía el mensaje y este se agrega en una cola del tipo FIFO para luego ser recibido según haya entrado

Modelo Publicador/Suscriptor (Publish/subscribe): Este modelo cuenta con varios clientes, unos que publican temas o eventos, y los que ven estos temas, a diferencia del modelo punto a punto este modelo tiende a tener más de un consumidor.

Ambos modelos pueden ser síncronos mediante el método receive y asíncronos por medio de un MessageListener.

Implementación

editar

Para enviar o recibir mensajes los clientes tienen que conectarse por medio de los objetos administrados, este nombre lo reciben porque son creados por el administrador (j2eeadmin). Estos implementan las interfaces JMS y se sitúan en el espacio de nombres JNDI (Java Naming and Directory Interface) para que así los clientes puedan solicitarlos.

Hay dos tipos de objetos administrados en JMS:

  • ConnectionFactory: Se usa para crear una conexión al proveedor del sistema de mensajes.
  • Destination: Son los destinos de los mensajes que se envían y el receptor de los mensajes que se reciben.

Mensajes:

Estos son la base de los JMS, se componen de tres elementos.

1.Header: Es la cabecera del mensaje, le sirve a los clientes y a los proveedores para poder identificarlos.

2.Properties: Son propiedades en general para personalizar y/o hacer más específico un mensaje.

3.Body: Es el mensaje en sí mismo, hay varios tipos de “cuerpos” que puede llevar un mensaje:

  • StreamMessage: Contiene un flujo (stream) de datos que se escriben y leen de manera secuencial.
  • MapMessage: Contiene pares nombre-valor.
  • TextMessage: Contiene un String.
  • ObjectMessage: Contiene un objeto que implemente la interfaz Serializable.
  • BytesMessage: Contiene un stream de bytes.

Clientes JMS:

Son clientes todos aquellos que envíen mensajes, como aquellos que los reciban, en algunos textos a los que envían mensajes son llamados proveedores y los que reciben consumidores o clientes. Para enviar o recibir mensajes tienen que tener una serie de pasos :

1.Conseguir un destino, mediante el objeto Destination a través de JNDI.

2.Usar ConnectionFactory para conseguir un objeto Connection.

3.Usar Destination para crear un objeto Session.

Ejemplos de sistemas comerciales de cola de mensajes

editar
  • WebSphere MQ de IBM (antes MQ*Series)
  • Message Queue de Microsoft (MSMQ)
  • Java Message Service de Sun (JMS)
  • Enterprise Message Service de WTF (EMS)

Enlaces externos

editar

📚 Artikel Terkait di Wikipedia

JORAM

abierto (Gnu LGPL) que está certificado para aplicar plenamente la API Java Message Service 1.1 (JMS 1.1). JORAM está disponible para descargar desde mayo de

Apache ActiveMQ

licencia Apache 2.0) que implementa plenamente la especificación de Java Message Service 1.1 (JMS). Ofrece "Características empresariales"​ tales como clustering

Amazon Simple Queue Service

programación, incluidos Java, Ruby, Python, .NET, PHP, Go y JavaScript. En diciembre de 2014 se lanzó un cliente Java Message Service (JMS) 1.1 para Amazon

Apache Kafka

algunos de los sistemas de mensajería convencionales como Java Message Service (JMS), Advanced Message Queuing Protocol (AMQP), etc. Desde la versión 0.11.0

Piggy Market Squeak

Standard Widget Toolkit. Java Platform, Standard Edition. Multi subprocesos, ver hilo (informática). Compatible con Java Message Service. Spring Framework Portal:Software

Enterprise service bus

WebSphere Message Broker) JBoss Fuse Spring Integration Phoenix Service Bus implementación en C#. Apache ServiceMix Zato (open-source, en Python) Java Business

Java Community Process

El Proceso de la Comunidad Java, o Java Community Process, establecido en 1998, es un proceso formalizado el cual permite a las partes interesadas a involucrarse

Java Business Integration

Java Business Integration (JBI) es una especificación desarrollada bajo la Java Community Process (JCP) con el objetivo de implementar en Java una Enterprise