JORAMJava Open Reliable
Asynchronous Messaging
http://www.scalagent.com
Introduction
JORAM implémente la norme JMS via la plate-forme SCALAGENT
JMS normalise l’accès des programmes Java aux middlewares à messages (Message Oriented Middleware)
Les MOM permettent l’intégration d’applications hétérogènes et indépendantes
Message Oriented Middleware (MOM)
Modèle de communication entre logicielsIntégration de modules hétérogènes distribuésIndépendance (asynchronisme)Fiabilité
NT
Principe de base des MOM
Message QueueingQueues de messages persistantesTransmission des messages asynchrone (stockage des
messages si nécessaire)Reprise après panne
Un émetteur remet son message au système et peut continuer son exécution sans se soucier de l’état du destinataire
Caractéristiques des MOM
Modes de communication Point-à-point (PTP): émetteur, récepteur et queuePublication/Souscription (Pub/Sub): émetteur,
abonné et nœud
Modèle de programmationRéception explicite / implicite
Messages Messages dotés d’attributs et de propriétésPriorités, garantie de délivrance
L’interface Java Message Service (JMS)
API Java d’accès uniforme aux systèmes de messagerie
Provider X
JVM
Client
Client
Client
MQ X MQ XMQ X MQ X
JMS
ClientProvider X
JVM
Client
JMS
La plate-forme SCALAGENT
Bus logiciel à base d’agents communicants
Agents = objets réactifsPersistantsLégers : infrastructure d’exécution partagée au sein d’un serveur d’agents
Modèle événement / réaction asynchroneÉvénement : changement d’état
significatif du système auquel un ou plusieurs agents réagissent
Événement NotificationRéaction fonction dans la classe
Agent
Agent
React
SendTo
Channel
Agent
L’architecture distribuée SCALAGENT
Channel Engine
mq
Channel Engine
mq
AgentAgent
AgentAgent
SendTo React
Ser
ver
A
Server B
Infrastructure basée sur un bus à messagesAcheminement des notificationsExécution de la réaction du destinataireDistribution: forte interconnexion des bus locaux
Les propriétés de la plate-forme
PersistanceSauvegarde des agents et notifications
AtomicitéCohérence garantie par un moniteur transactionnel
Persistance + Atomicité = FiabilitéUne notification est délivrée une et une seule fois
Ordonnancement causalLes notification sont délivrées
selon un ordre causal
B
CA
JORAM
JORAM est l’interface JMS du MOM SCALAGENT Les queues et topics sont des agentsLes messages sont encapsulés dans des notifications
Délivrance asynchroneGarantie de délivranceReprise après panne
Apports de l’infrastructure à agentsArchitecture totalement distribuéeScalabilité
JMS via le MOM ScalagentC
lient
s JM
S
QueueSender
QueueSession
QueueConnection
queue
Clie
nt
1
QueueReceiver
QueueSession
Clie
nt
2
QueueConnection
Connexion TCP
MOM ScalagentMessage JMS
Message JMS
Connexion TCP
Notification
Notification
Agent Proxy
Agent Proxy
Agent Queue
Intégration dans JOnAS
JORAM implémente la partie ASF (Application Server Facilities) de la spéc. JMS
Intégration de JORAM en tant que ressource dans un environnement transactionnel distribué tel qu’un serveur EJB
Envoi et réception de messages dans des transactions gérées par le serveur EJB
Réception asynchrone via les « Message-driven Beans »
Points forts de JORAM
Architecture distribuéeFacilité de mise en oeuvrePassage à l’échelle
Implémentation complète des « Application Server Facilities »
Intégration au serveur EJB JOnAS
EmetteurServeur 2
Serveur 1
Serveur 0
QueueConnectionFactory
Queue
QueueConnectionFactory
Récepteur