stringtranslate.com

Mensajería de Yakarta

La API de mensajería de Jakarta (anteriormente Java Message Service o API JMS ) es una interfaz de programación de aplicaciones (API) de Java para middleware orientado a mensajes . Proporciona modelos de mensajería genéricos, capaces de manejar el problema productor-consumidor , que se pueden utilizar para facilitar el envío y la recepción de mensajes entre sistemas de software . [1] Jakarta Messaging es parte de Jakarta EE y se definió originalmente mediante una especificación desarrollada en Sun Microsystems antes de ser guiada por el Java Community Process . [2]

Idea general de la mensajería

La mensajería es una forma de comunicación distribuida acoplada de forma flexible , donde en este contexto el término "comunicación" puede entenderse como un intercambio de mensajes entre componentes de software. Las tecnologías orientadas a mensajes intentan relajar la comunicación acoplada de forma estrecha (como los sockets de red TCP , CORBA o RMI ) mediante la introducción de un componente intermediario. Este enfoque permite que los componentes de software se comuniquen entre sí de forma indirecta. Los beneficios de esto incluyen que los remitentes de mensajes no necesitan tener un conocimiento preciso de sus receptores.

Las ventajas de la mensajería incluyen la capacidad de integrar plataformas heterogéneas, reducir los cuellos de botella del sistema, aumentar la escalabilidad y responder más rápidamente al cambio. [3]

Historial de versiones

Actualmente, JMS 2.0 se mantiene bajo el Proceso de la Comunidad Java como JSR 343. [15]

JMS 3.0 se encuentra en fase de desarrollo inicial como parte de Jakarta EE. [16]

Elementos

Los siguientes son elementos JMS: [17]

Proveedor de JMS
Una implementación de la interfaz JMS para middleware orientado a mensajes (MOM). Los proveedores se implementan como una implementación JMS de Java o como un adaptador a un MOM que no sea Java.
Cliente JMS
Una aplicación o proceso que produce y/o recibe mensajes.
Productor/editor de JMS
Un cliente JMS que crea y envía mensajes.
Consumidor/suscriptor de JMS
Un cliente JMS que recibe mensajes.
Mensaje JMS
Un objeto que contiene los datos que se transfieren entre clientes JMS.
Cola JMS
Un área de preparación que contiene mensajes que se han enviado y están esperando ser leídos (por un solo consumidor). Como sugiere el nombre de la cola, los mensajes se entregan en el orden en que se envían. Una cola JMS garantiza que cada mensaje se procese solo una vez.
Tema de JMS
Un mecanismo de distribución para publicar mensajes que se envían a múltiples suscriptores.

Modelos

La API de JMS admite dos modelos distintos:

Modelo punto a punto

En el sistema de mensajería punto a punto , los mensajes se enrutan a consumidores individuales que mantienen colas de mensajes entrantes. Este tipo de mensajería se basa en el concepto de colas de mensajes , remitentes y receptores. Cada mensaje se dirige a una cola específica y los clientes receptores extraen mensajes de las colas establecidas para almacenar sus mensajes. Si bien cualquier número de productores puede enviar mensajes a la cola, se garantiza que cada mensaje se entregará y será consumido por un consumidor. Las colas retienen todos los mensajes que se les envían hasta que se consumen o hasta que caducan. Si no hay consumidores registrados para consumir los mensajes, la cola los retiene hasta que un consumidor se registre para consumirlos.

Modelo de publicación y suscripción

El modelo de publicación y suscripción permite publicar mensajes sobre un tema de mensajes en particular. Los suscriptores pueden manifestar su interés en recibir mensajes publicados sobre un tema de mensajes en particular. En este modelo, ni el editor ni el suscriptor se conocen entre sí. Una buena analogía para esto es un tablón de anuncios anónimo.

JMS proporciona una forma de separar la aplicación de la capa de transporte para proporcionar datos. Las mismas clases Java se pueden utilizar para comunicarse con diferentes proveedores JMS mediante la información de la Interfaz de nombres y directorios de Java (JNDI) para el proveedor deseado. Las clases primero utilizan una fábrica de conexiones para conectarse a la cola o al tema y luego rellenan y envían o publican los mensajes. En el lado receptor, los clientes reciben o se suscriben a los mensajes.

Esquema URI

RFC 6167 define un jms: esquema URI para el Servicio de mensajes Java.

Implementaciones de proveedores

Para utilizar JMS, es necesario contar con un proveedor JMS que pueda gestionar las sesiones, las colas y los temas. A partir de la versión 1.4 de Java EE, todos los servidores de aplicaciones Java EE deben incluir un proveedor JMS. Esto se puede implementar mediante la gestión del flujo de entrada de mensajes de la arquitectura del conector Java EE , que se puso a disposición por primera vez en esa versión.

La siguiente es una lista de proveedores JMS comunes:

Véase también

Referencias

  1. ^ Curry, Edward. 2004. "Middleware orientado a mensajes". En Middleware for Communications, ed. Qusay H Mahmoud, 1-28. Chichester, Inglaterra: John Wiley and Sons. doi :10.1002/0470862084.ch1. ISBN 978-0-470-86206-3 
  2. ^ "JSR 914: API de Java Message Service (JMS)". El programa de proceso de la comunidad Java . Consultado el 31 de julio de 2018 .
  3. ^ Richards y otros, páginas 3 a 5.
  4. ^ ab «Java Message Service» (PDF) . Sun Microsystems . 5 de octubre de 1998. Archivado (PDF) desde el original el 24 de febrero de 1999. Consultado el 31 de julio de 2018 .
  5. ^ "Documentación del servicio de mensajes de Java". Sun Microsystems. 30 de octubre de 1998. Archivado desde el original el 24 de febrero de 1999. Consultado el 31 de julio de 2018 .
  6. ^ "Java Message Service Source - Version 1.0.1a". Sun Microsystems. 29 de octubre de 1998. Archivado desde el original (ZIP) el 16 de agosto de 2000. Consultado el 31 de julio de 2018 .
  7. ^ "Java Message Service" (PDF) . Sun Microsystems (publicado el 17 de diciembre de 1999). 9 de noviembre de 1999. Archivado (PDF) desde el original el 23 de agosto de 2000. Consultado el 31 de julio de 2018 .
  8. ^ "Documentación del servicio de mensajes de Java". Sun Microsystems. 23 de diciembre de 1999. Archivado desde el original el 29 de febrero de 2000. Consultado el 31 de julio de 2018 .
  9. ^ "Java Message Service" (PDF) . Sun Microsystems. 27 de agosto de 2001. Archivado (PDF) desde el original el 9 de octubre de 2022 . Consultado el 31 de julio de 2018 .
  10. ^ "Java Message Service" (PDF) . Sun Microsystems. 12 de abril de 2002. Archivado (PDF) desde el original el 9 de octubre de 2022 . Consultado el 31 de julio de 2018 .
  11. ^ "Java Message Service" (PDF) . Oracle . 20 de marzo de 2013. Archivado (PDF) desde el original el 9 de octubre de 2022 . Consultado el 31 de julio de 2018 .
  12. ^ "Versión final de JMS 2.0". Especificación del servicio de mensajes de Java . 9 de junio de 2017 . Consultado el 31 de julio de 2018 .
  13. ^ "Java Message Service" (PDF) . Oracle. 10 de marzo de 2015. Archivado (PDF) desde el original el 9 de octubre de 2022 . Consultado el 31 de julio de 2018 .
  14. ^ "Versión de erratas de JMS 2.0 (Rev a)". Especificación del servicio de mensajes de Java . 5 de julio de 2017 . Consultado el 31 de julio de 2018 .
  15. ^ "JSR 343: Java Message Service 2.0". El programa de procesos de la comunidad Java . Consultado el 31 de julio de 2018 .
  16. ^ Monson-Haefel, Richard (6 de diciembre de 2018). "JMS 3.0: ¡Participe!". Tomitribe . Consultado el 17 de julio de 2020 .
  17. ^ Servicio de mensajes Java (JMS)
  18. ^ "Apache Qpid™: mensajería AMQP de código abierto".
  19. ^ Wallis, Graham. "Elección de un sistema de mensajería: WebSphere MQ frente al bus de integración de servicios de WebSphere Application Server". IBM developerWorks .
  20. ^ "Software de mensajería TIBCO Cloud™ de TIBCO".
  21. ^ "Servicio de mensajes empresariales TIBCO™".

Lectura adicional

Enlaces externos