![Page 1: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/1.jpg)
Message Oriented Middleware
![Page 2: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/2.jpg)
Plan
• Pourquoi un nouveau type de middleware?
• Quelle lignée logicielle ? Historique
• JMS : Java Message Server
• L’implémentation Joram
L’avenir pour ce type de middleware
![Page 3: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/3.jpg)
Pourquoi un nouveau type de middleware?
![Page 4: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/4.jpg)
Intention
Quelles sont les contraintes RPC derrière RMI ?
communication synchrone Client-Serveur
le serveur est prédominant dans la communication
On souhaite
ne pas être bloqué pendant une communication
(asynchrone)
ne pas connaître toujours au préalable ceux avec qui on communique
![Page 5: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/5.jpg)
Exemple l’administration de réseaux
• Gestion à distance de machines, serveurs, hubs, etc
• Notification des événements en cas de panne
![Page 6: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/6.jpg)
Objectifs principaux
– Intégration de modules hétérogènes distribués
– Indépendance (asynchronisme)– Fiabilité
![Page 7: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/7.jpg)
Quelle lignée logicielle ? Historique
Ce que vous connaissez déjà
![Page 8: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/8.jpg)
Quelle lignée logicielle ? Historique
• Communication par message au niveau socket : communication udp et multicast
• Connexions faibles entre objets : le design Pattern Observer Observable
• Programmation Java : interface graphique et gestion d’événements (listeners)
• Et en Corba : le service d’événements
![Page 9: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/9.jpg)
Le service d’événement Corba
![Page 10: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/10.jpg)
Le service de notification d'événements Corba
La plupart des requêtes CORBA se traduisent par l’exécution synchrone d’une opération (le client connaît la référence de l’objet auquel la requête s’adresse et le client ainsi que l’objet doivent être tous deux actifs) et sinon?
Le service d'Evénements ou Event service permet de découpler la communication entre objets.
Mode de communication découplé : lorsque le client et l’objet ne se connaissent pas; lorsque le client et l’objet ne sont pas actifs simultanément.
![Page 11: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/11.jpg)
Communication événementielle
principes de fonctionnement• concepts de base : événements, réactions (traitements associés à l’occurrence d’un événement)
• principe d’attachement : association dynamique entre un nom d’événement et une réaction
• communication anonyme : indépendance entre l’émetteur et les “consommateurs” d’un événement
![Page 12: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/12.jpg)
Un canal d’évènements
Producteur
Producteur
Consommateur
Consommateur
Consommateur
Consommateur
Canal
Flot des évènements
![Page 13: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/13.jpg)
Un canal d’évènements : notification
Producteur
Producteur
Consommateur
Consommateur
Consommateur
Consommateur
Canal
Producteur actif / Consommateur réactifLe canal diffuse les évènements
Push
Push
PushSupplierPushConsumer
void push(in any data) raises(Disconnected);
![Page 14: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/14.jpg)
Un canal d’évènements : demande
Producteur
Producteur
Consommateur
Consommateur
Consommateur
Consommateur
Canal
Producteur réactif / Consommateur actifLe canal procure les évènements
Pull()
Pull()
demandePullSupplier {
//demande de production d’un événement
any pull() raises(Disconnected);
// présence d’un événement
any try_pull(out boolean has_event) raises(Disconnected);
![Page 15: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/15.jpg)
Un canal d’évènements : file d’évènements
Producteur
Producteur
Consommateur
Consommateur
Consommateur
Consommateur
Canal
Producteur actif / Consommateur actifLe canal gère des files d’évènements
Push()
Pull()
![Page 16: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/16.jpg)
Un canal d’évènements : collecte d’évènements
Producteur
Producteur
Consommateur
Consommateur
Consommateur
Consommateur
Canal
Producteur réactif / Consommateur réactifLe canal est une entité active voire intelligente
Pull()
Push()
![Page 17: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/17.jpg)
Principe des MOM
![Page 18: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/18.jpg)
Emetteur Récepteur
Destination
message
Emetteur et récepteur connaissent seulement la destinationPlusieurs émetteurs et récepteurs sur lamême destinationPersistance du message (reçu ou non reçu)Format du message libreAcheminement par un bus de message
![Page 19: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/19.jpg)
Systèmes de messages
• 2 mode de communication– Modèle point à point
• Couplage lâche • Asynchronisme• Communication par message
– Modèle par diffusion• Notification • Diffusion à une liste, un groupe d’intérêt• Surveillance du réseau• Communication par événement
![Page 20: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/20.jpg)
Principe de base des MOM
• Message Queueing–Queues de messages persistantes
–Transmission 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
![Page 21: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/21.jpg)
2 modes
• Mode push– Le serveur diffuse une information– Le récepteur reçoit l’information
• Publicité, spam
• Mode pull– Le serveur livre une information– Le récepteur va chercher l’information
• Consultation méteo
![Page 22: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/22.jpg)
Le message
• Non formatté• Mais on peut utiliser XML
– Et ajouter au contenu : une entête, des propriétés
– Entête peut contenir des informations permettant l’identification et l’acheminement du message
– Propriétés couples utilisables pour sélectionner messages et/ou destinataires
![Page 23: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/23.jpg)
Caractéristiques des MOM
• Modes de communication –Point à point (PTP): émetteur, récepteur et queue
–Publication/Souscription (Pub/Sub): émetteur, abonné et nœud
![Page 24: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/24.jpg)
Caractéristiques des MOM
• Modèle de programmation–Réception explicite / implicite
• Messages –Messages dotés d’attributs et de propriétés–Priorités, garantie de délivrance
![Page 25: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/25.jpg)
Java Message Service
![Page 26: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/26.jpg)
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
![Page 27: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/27.jpg)
Client JMSEmetteur Récepteur
Destination
message
Serveur de messages
Architecture JMS
Client JMS Client JMS
![Page 28: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/28.jpg)
Consumer
Destination
message
Serveur de messages
Architecture JMS
Client JMS
Connection
Session
Producer
Client JMS
Connection
Session
![Page 29: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/29.jpg)
Architecture JMSUne connexion est liée à un serveur de message
Une session existe à l’intérieur d’une connexion
Il peut y avoir plusieurs session par connexion
La session gère le processus global de transmission
Le consommateur/producteur existe seulement à l’intérieur d’une session
Le consommateur/producteur connaît la destination
Le message n’existe qu’à l’intérieur d’une session
![Page 30: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/30.jpg)
2 types de destinations
• Queue pour le point à point– Chaque message n’a qu’un consommateur– Pas de couplage temporel fort
• Topic pour le publish/subscribe– Similaire à un modèle d’événements– Un message peut avoir plusieurs consommateurs par
abonnement– Abonnement et activité du consommateur requise
![Page 31: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/31.jpg)
Point à Point et Publish/ Subscribe
Client1 Client2
queue
send
consumes
acknowledges
Client2publishes
Client1
subscribesdelivers
Client3subscribesdelivers
Le consommateur envoie un reçuLe message est détruit à réception dureçuIl peut y avoir plusieurs consommateursen attente
Un client doit s’abonnerau préalableTous les abonnés reçoivent Le message publié
![Page 32: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/32.jpg)
Le mode Point-à-Point (PTP)
send
receive
Emetteur Récepteur
queue
![Page 33: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/33.jpg)
Le mode Point-à-Point (PTP)
Queue
QueueConnectionFactory
QueueSession
QueueConnection
QueueSession
QueueConnection
+
QueueSender
+
QueueReceiver
sendreceive
Emetteur Récepteur
![Page 34: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/34.jpg)
Etapes du mode Point-à-Point
Emetteur Destinataire
Trouver la queueCréer une connexion et une session
![Page 35: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/35.jpg)
Etapes du mode Point-à-Point
Emetteur Destinataire
Trouver la queueCréer une connexion et une session
Spécialiser une communicationd’envoi sur la queue
![Page 36: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/36.jpg)
Etapes du mode Point-à-Point
Emetteur Destinataire
Trouver la queueCréer une connexion et une session
Spécialiser une communicationD’envoi sur la queue
Spécialiser une communication deRéception sur la queue
![Page 37: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/37.jpg)
Etapes du mode Point-à-Point
Emetteur Destinataire
Trouver la queueCréer une connexion et une session
Spécialiser une communicationD’envoi sur la queue
Spécialiser une communication deRéception sur la queue
Envoyer un message sur la queue
![Page 38: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/38.jpg)
Etapes du mode Point-à-Point
Emetteur Destinataire
Trouver la queueCréer une connexion et une session
Spécialiser une communicationD’envoi sur la queue
Spécialiser une communication deRéception sur la queue
Envoyer un message sur la queue
Demander la réception d’un message
![Page 39: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/39.jpg)
Mode Publication / Souscription (Pub/Sub)
Emetteur Destinataire
Topic
A B
x y
+
TopicPublisher
publish
TopicSubscriber
+
Listener
onMessage
![Page 40: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/40.jpg)
Mode Publication / Souscription (Pub/Sub)
Emetteur Destinataire
Topic
TopicConnectionFactory
A B
x yTopicSession
TopicConnection
TopicSession
TopicConnection
+
TopicPublisher
publish
TopicSubscriber
+
Listener
onMessage
![Page 41: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/41.jpg)
Mode Publication / Souscription (Pub/Sub)
Emetteur Destinataire
Trouver la queueCréer une connexion et une session
Créer un sujet
Se mettre à l’écoute d’un sujet
Préparer un message à écouterPublier un message
![Page 42: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/42.jpg)
Joram: une implémentation de JMS
![Page 43: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/43.jpg)
La plate-forme SCALAGENT
• Bus logiciel à base d’agents communicants
• Agents = objets réactifs– Persistants– Lé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 Notification– Réaction fonction dans la classe
Agent
Agent
React
SendTo
Channel
Agent
![Page 44: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/44.jpg)
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 à messages–Acheminement des notifications–Exécution de la réaction du destinataire–Distribution: forte interconnexion des bus locaux
![Page 45: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/45.jpg)
Les propriétés de la plate-forme
• Persistance– Sauvegarde 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 causal– Les notification sont délivrées
selon un ordre causal
B
CA
![Page 46: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/46.jpg)
JORAM• JORAM est l’interface JMS du MOM SCALAGENT
–Les queues et topics sont des agents–Les messages sont encapsulés dans des notifications
•Délivrance asynchrone•Garantie de délivrance•Reprise après panne
• Apports de l’infrastructure à agents–Architecture totalement distribuée–Scalabilité
![Page 47: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/47.jpg)
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
![Page 48: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/48.jpg)
Points forts de JORAM• Architecture distribuée
–Facilité de mise en oeuvre–Passage à 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
![Page 49: Message Oriented Middleware. Plan Pourquoi un nouveau type de middleware? Quelle lignée logicielle ? Historique JMS : Java Message Server Limplémentation](https://reader035.vdocuments.net/reader035/viewer/2022062417/551d9d81497959293b8bb2cb/html5/thumbnails/49.jpg)
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 »