JMS et ActiveMQ
JMS (Java Messaging Service) est une interface de programmation qui permet d’échanger des messages de façon asynchrone (et plus rarement synchrone en mode point à point) entre applications Java.
Tous les serveurs Jakarta EE fournissent un service JMS lié avec le JCA (Java Connector Architecture).
JMS s’appuie sur un intergiciel (middleware) pour l’implémentation.
Il y a historiquement plusieurs versions de JMS :
Versions |
Dates |
Compléments |
1.0.2b |
juin 2001 |
|
1.1 |
mars 2002 |
|
2.0 |
mars 2013 |
JSR 343 |
2.1 |
Septembre 2017 |
JSR 368 retirée |
JSR 343 : JMS (Java Message Service) 2.0
JSR 368 : JavaTM Message Service 2.1
JMS n’est plus prioritaire pour Java EE 8.
Il faut un fournisseur de service pour JMS.
Voici une liste de fournisseurs open source :
Fournisseur |
Fournisseur |
ActiveMQ |
Apache |
OpenJMS |
Collectif |
JBoss Messaging |
JBoss |
HornetQ |
JBoss |
JORAM/OW2 |
ObjectWeb |
Open Message Queue |
Sun Microsystem |
Il y a aussi des implémentations propriétaires comme BEA Weblogic et Oracle AQ d’Oracle, WebSphere MQ d’IBM et SAP NetWeaver de SAP qui ont leur utilité dans des contextes d’utilisation adaptés.
Pour les exemples illustrant JMS, nous utiliserons ActiveMQ d’Apache (http://activemq.apache.org/) qui supporte JMS depuis la version 1.1 et J2EE 1.4. ActiveMQ
La version 5.17.0 d’Active MQ a été livrée en mars 2021. Cette version supporte aussi AMQP v1.0 et MQTT v3.1. Elle fonctionne avec Spring...