JORAM (Java Open Reliable Asynchronous Messaging)
JORAM est l’implantation open-source d’un MOM conforme à l’API JMS 2.0. Il est utilisé dans de nombreuses applications critiques en production dans plus de 60 pays dans le monde. Il est distribué sous licence LGPL par le consortium OW2, et ScalAgent DT en est le principal contributeur.
JORAM est développé sur Linux et Windows. Avec un serveur et un client réalisés entièrement en Java, JORAM est indépendant de toute plateforme. La mise en œuvre de JORAM s’appuie sur une technologie à base d’agents distribués qui lui confère des propriétés uniques en matière d’architecture distribuée, de scalabilité, de configurabilité et de résistance aux pannes.
JORAM est en exploitation dans de nombreux environnements opérationnels où il est utilisé de deux façons complémentaires :
- comme un système de messagerie Java autonome entre des applications développées pour des environnements variés,
- comme un composant de messagerie asynchrone intégré dans un serveur d’applications J2EE.
Architecture flexible
JORAM bénéficie de la nouvelle génération de MOM développée par ScalAgent D.T., une architecture à agents distribuée. Cette architecture innovante permet de développer des applications distribuées à large échelle au-dessus d’Internet en garantissant scalabilité, répartition de charge, flexibilité et disponibilité.
La principale caractéristique de JORAM est son architecture distribuée configurable. JORAM a adopté une architecture dite “snowflake” :
- Une plateforme JORAM est constituée d’un ensemble de serveurs interconnectés par un bus à messages supportant de multiples protocoles.
- Chaque serveur peut gérer un nombre variable de clients JMS.
L’implantation géographique des serveurs comme la distribution des clients est de la responsabilité de l’architecte. Ce choix constitue un premier niveau de configuration, un second niveau correspond au placement des objets de communication JMS (Queue et Topic). Ces paramètres ont un impact important sur les caractéristiques du système en terme de performance, scalabilité et disponibilité.
OSGi
JORAM est maintenant défini comme un ensemble de services OSGi™ afin d’offrir un service de messagerie dynamiquement adaptable :
- Le serveur JORAM est constitué d’un ensemble de bundles OSGi (Il est toujours possible de lancer le serveur comme un programme Java classique).
- Des services additionnels peuvent être ajoutés, démarrés, arrêtés et reconfigurés : protocoles, destinations spécialisées, interface en ligne de commande, console graphique, etc.
Broker MQTT
Le serveur MQTT est, comme le serveur JORAM, une application à base d’agents directement réalisée au dessus de la plateforme ScalAgent :
- un agent persistant gère les contextes d’abonnement (Topics)
- un agent persistant gère les abonnements durables (liés aux clients).
Le serveur MQTT est complètement compatible et interopérable avec la fonction JMS du serveur JORAM, pour une meilleure intégration avec le SI, permettant notamment :
- l’abonnement par JMS à un Topic MQTT, et la réception des messages associés quelle que soit leur provenance ;
- la publication de messages JMS sur un Topic MQTT.