ENSI SAR
II2-RSR/SLE
Chapitre 4
MOM: Message
Oriented Middleware
PLAN
1.
Introduction : Motivations et principe
2. Mod les de messagerie
3. Architecture
4.
JMS : Java Message Service
5. Exemples de MOM : IBM MQSeries, MSMQ,
JORAM
6. Conclusion : avantages
SR&A --CORBA
2
Motivations
q Le mod le client-serveur ne r pond pas tous les besoins
c Le sch ma de base est synchrone
c La communication est essentiellement 1 vers 1 (ou n vers 1)
c Les entit s (clients, serveurs) sont d sign es explicitement
c Lorganisation de lapplication est peu dynamique
q Les v nements et bus messages fournissent un mod le
adapt des besoins particuliers
c Communication asynchrone
c Communication possible n vers p
c Possibilit de d signation non explicite des entit s
c Organisation dynamique des applications (facilit d volution,
adjonction et retrait dentit s participantes)
ENSI
Syst mes et applications r partis
3
Objectifs des MOM
q On souhaite
c Asynchronisme: ne pas tre bloqu pendant une communication,
c Ne pas conna tre toujours au pr alable ceux avec qui on communique
c Int gration de modules h t rog nes distribu s
c Fiabilit de la d livrance des messages
Ind pendance des canaux de communication / applications
cCouplage faible assur
Les canaux de communications sont ind pendants des applications
R f rence aux canaux plut t quaux adresses de machines
SAR --MOM & JMS
4
Principe
q Messagerie inter-application
c Asynchrone
c Non temps r el
q Files de Messages (Message Queueing)
c Les messages sont mis dans une file d attente persistante (i.e. sur disque)
avant d tre relay s vers l application
c Partage dune file par plusieurs applications
c Priorit des messages
c Filtrage des messages la r ception
q Avantages
c Insensible aux partitions de r seaux (sans fil, satellite, WLAN, &)
c Insensible aux applications non disponibles (temporairement)
ENSI
Syst mes et applications r partis
5
Exemple : administration dun r seau
(surveillance des quipements)
q Probl me
cSurveillance de l tat de machines, syst mes et
applications dans un environnement distribu
cFlot permanent de donn es en provenance de sources
diverses sur le r seau
cModification permanente possible (ajout, suppression,
d placement des quipements)
cPossibilit dacc s des administrateurs depuis nimporte
quel poste de travail
ENSI
Syst mes et applications r partis
6
Solution Client-Serveur
ENSI
Syst mes et applications r partis
7
Solution bus messages
ENSI
Syst mes et applications r partis
8
Solution bus messages
qPropri t s caract ristiques
cLes diff rents l ments administr s mettent des messages
d clench s par des v nements
horloge (surveillance p riodique)
changement d tat ou de configuration
alertes
cUn ou plusieurs processus cycliques (d mons) re oivent ces
notifications et maintiennent l tat courant du syst me
suivi des changements de configuration dynamiques
mission de messages signalant les changements d tat et les mises
jour
statistiques, journal de fonctionnement
ENSI
Syst mes et applications r partis
9
Paradigme MOM (1)
q Communication inter-applications r parties utilisant les messages
c quelconques : aucune hypoth se sur le contenu de messages
Emetteur
(Producteur)
R cepteur
(consommateur)
message
Destination
" Emetteur et r cepteur connaissent
seulement la destination.
" Plusieurs metteurs et r cepteurs sur
la m me destination
" Persistance du message (re u ou non
re u)
" Format du message libre
" Acheminement par un bus de
messages
SAR --MOM & JMS
10
Paradigme de MOM (2)
q Messages stock s dans une file dattente de messages (message queues).
c Principe de store and forward
q Communication asynchrone
c Excellent pour lint gration dapplications.
SAR --MOM & JMS
11
Paradigme de MOM (3)
q MOM garantit la livraison des messages en utilisant un syst me
de FA persistante et fiable.
q Le traitement des messages se fait gr ce au serveur de
messages (messages server)
c Filtrage possible
lors dune
lecture
(consultation par
browse), transformation, logging, &
c R seaux de serveurs de messages
q MOM utilise aussi des services de nommage, de s curit et de
gestion.
SAR --MOM & JMS
12
Communication par messages
q Principes directeurs
c Communication asynchrone
c D signation du destinataire
directe
indirecte (via porte, file de messages)
c Structuration des messages
messages ventuellement typ s
q Interface de programmation
c primitives de base : envoyer - recevoir (send, receive)
c extensions : groupes, d signation associative
q Mise en Suvre, outils
c interface socket sur niveau de transport, IP multicast
c outils de d veloppement encore peu volu s
ENSI
Syst mes et applications r partis
13
Communication par messages : extensions
q Communication de groupe
c groupe = ensemble de destinataires d sign s par nom unique
c gestion dynamique (arriv e - d part ou d faillance de membres)
c probl me (difficile !) : maintien de la coh rence (vue coh rente de la composition du
groupe, ordre causal de r ception, etc.)
c utilit : tol rance aux fautes, travail coop ratif
q Communication anonyme
c les destinataires dun message sont identifi s par leurs propri t s, non par leur nom
c propri t s
d finies par un attribut du message (filtrage)
chaque application consommatrice d finit un crit re sur les messages
consommer
le crit re peut tre une expression bool enne sur les valeurs de champs
du message.
d finies de mani re externe
c ind pendance entre metteurs et r cepteurs
ENSI
Syst mes et applications r partis
14
Mod les de messagerie
q Message Queue
c un message envoy (produit) est consomm par un seul client
q Publication-Souscription
c un message publi est diffus tous les souscripteurs
c Publication-Souscription par le contenu (content based publish-
subscribe)
c un message publi est diffus tous les souscripteurs par rapport au
contenu du message (IBM Gryphon, U. Colorado Siena, &)
q Requ te-R ponse
c Client-Serveur asynchrone
ENSI
Syst mes et applications r partis
15
Mod le des Messages Queues
" Messages
identification unique
typ s ou non
Publicité
persistants ou non
d livr s avec ou sans accus de
r ception
" Queues de messages
identification unique
partag es par les applications
persistantes
ordre sp cifi (total, causal, selon
priorit , etc.)
ENSI
Syst mes et applications r partis
16
Mod le Publication-Souscription
ENSI
Syst mes et applications r partis
17
Publication-Souscription par le
contenu
ENSI
Syst mes et applications r partis
18
Mod le Requ te-R ponse
ENSI
Syst mes et applications r partis
19
Mod le de programmation : mode pull
q R ception explicite des messages (retrait ou pull)
c Les clients viennent p riodiquement prendre leurs messages dans une
bo te aux lettres
c Le consommateur nest pas n cessairement bloqu en labsence de
message
q Les news dinternet, ou le forum de jfod &
c Enregistrement dun client un sujet de discussion,
c Un des clients d cide de poster un message,
c Les utilisateurs leur initiative vont chercher linformation,
c Publish-subscribe, mode pull
ENSI
Syst mes et applications r partis
20
Mod le de programmation: mode push
q R ception des messages de mani re implicite
cAbonnement pr alable du destinataire au service (on peut
filtrer les messages par leurs attributs)
cLors du d p t dun message, chaque destinataire est/sont
inform (s) et ex cute une r action pr d finie (comportant la
lecture du message)
cCest en fait un mod le v nement-r action
q Les listes de diffusion, logiciels de causerie, ( chat )
cAbonnement dun client une liste de diffusion,
cUn des clients d cide de poster un message,
cTous les abonn s re oivent ce message,
ENSI
Syst mes et applications r partis
21
Architecture d un MOM
q Client MOM
c reli de mani re permanente un serveur MOM
c envoie et re oit des messages
q Serveurs MOM
c reli s entre eux de mani re pisodique
r seau mobile, r seau WAN sur lignes d di es, &
c maintiennent des copies des messages
r plication (serveurs primaires, serveurs secondaires)
q Administrateur/Contr leur du MOM
c cr e et surveille les files
c d finit la topologie des interconnexions entre serveurs
c d finit la politique de connexion (p riode, &)
ENSI
Syst mes et applications r partis
22
Architecture d un MOM
ENSI
Syst mes et applications r partis
23
Impl mentation
q Architecture
cCentralis e : Spoke and Hub
cDistribu e : Bus
cPair Pair : Snowflake
q QoS
cDisponibilit , Fiabilit , Passage
l chelle, S curit , &
ENSI
Syst mes et applications r partis
24
Interop rabilit entre MOM
q Difficult de faire int rop rer des MOM
q Pas de standardisation entre les MOM
c Sp cification BMQ : Business Messaging Quality
initiative de Candle (projet ROMA) encourag e par IBM, MicroSoft,
HP, AT&T, & Voir http://www.bqm.org
q Des pistes pour l interop rabilit
c Une autorit : MOMA
Message Oriented Middleware Association
c CORBA 3.0
introduction de la notion de messages asynchrones
c J2EE
JMS javax.jms
API Java permettant des clients d envoyer/recevoir des
messages avec des serveurs impl mentant des JMS SPI
EJB : Message Driven Bean
SAR--CORBA
26
Comparaison RPC et MOM
caract ristique
M taphore
MOM
Courier
Relation temporelle entre
client et serveur
Asynchrone
RPC
T l phone (sans
r pondeur)
Synchrone
Nature du dialogue
File dattente
Requ te-R ponse
Etat op rationnel du
serveur
Pas n cessaire
Obligatoire
Filtrage des messages
Possible
Non
Performances
Lent en cas de s curisation
des messages par criture
sur disque
Plus efficace que MOM car
pas de sauvegarde
SAR--CORBA
27
Acteurs et Produits
q BEA Systems
q IBM - MQ Series
c 25 plateformes
q MicroSoft - MSMQ (Message Queue Server)
c essentiellement NT
q Level 8 Systems - Falcom MQ
c passerelle vers MSMQ et MQ Series
q Sybase - DBQ
c Adaptive Serveur
q Tibco - TIB/RendezVous
c accord avec Oracle pour Oracle 8
q Sun - Java Messaging Service
c API pour les MQ
ENSI
Syst mes et applications r partis
28
Domaines dApplication des MOM
q Diffusion d information (push)
c news, stock quote, ...
q Messagerie inter-bancaire, workflow, ERP, ...
q Synchronisation de BD nomades et r plicat asynchrone (hot standby)
q EAI (Enterprise Application Integration), B2B
q ESB (Enterprise Service Bus)
q Data Warehouse (ETL : Extract Transform Load)
q Collecte des donn es (journaux Firewall, mesures r seaux de capteurs, &)
q D ploiement grande chelle de logiciels (antivirus, &)
q &
SAR --MOM & JMS
29
Syst mes asynchrones : technologies alternatives
q Web asynchrone
c HTTP asynchrone (one way)
Requ te sans r ponse
M mes propri t s que HTTP (fiabilit , s curit , etc.)
q CORBA
c Corba Notification Service
q Communication asynchrone en Java
c JAXM
c JINI
c JMS
SAR --MOM & JMS
30
MOM
Java Message Service : JMS
ENSI
Syst mes et applications r partis
31
Linterface Java Message Service (JMS)
q API Java dacc s uniforme aux syst mes de messagerie dentreprise
ENSI
Syst mes et applications r partis
32
JMS
Java Message Service fait partie de la suite Java EE de Sun, qui fournit un
ensemble de standards dAPIs que les d veloppeurs peuvent utiliser
pour acc der aux caract ristiques de nimporte quel syst me de
messagerie.
Il supporte les mod les Publish/Subscribe et Point-to-Point (Message
Queuing).
ENSI
Syst mes et applications r partis
33
Publicité
MOMs compatibles avec JMS
q ActiveMQ de Apache
q OpenJMS de The OpenJMS Group
q JBoss Messaging de JBoss
q JORAM de Objectweb
q Weblogic de BEA
q Oracle AQ
q SAP NetWeaver WebAS Java JMS de SAP AG
q SonicMQ de Progress Software
q Sun Java System Message Queue
q TIBCO Software
q webMethods Broker Server de webMethods
q WebSphere Application Server dIBM
q WebSphere MQ dIBM (appel pr c demment MQSeries)
SAR--CORBA
34
JMS : Mod les de communication
q Publish-Subscribe :
cM me sch ma
De programme,
Concept identique au Canal de communication
cMais les messages publi s ne sont pas persistants
Les messages publi s ne sont pas connus du
souscripteur avant sa connexion
q Point- -point Queue
cPersistance des messages
cR ception synchrone
ou asynchrone
ENSI
Syst mes et applications r partis
35
Composants dune application JMS
q Fournisseur JMS (MOM)
c Mod le Point- -Point, Pub/sub
c Fonctions administration
q Clients JMS
c Producteur, consommateur
q Objets administr s
c Connection factories: cr ent les connexions entre clients (producteurs et
consommateurs) et JMS providers
Point dacc s un JMS provider
Connection : encapsule une socket TCP/IP entre un client et un serveur JMS
c Destinations
Est un canal de communication
Queue pour le mod le point- -point
Topic pour publish/subscribe
q Messages
ENSI
Syst mes et applications r partis
36
Composants dune application JMS
ENSI
Syst mes et applications r partis
37
Architecture g n rale de JMS
Client JMS
Connection
Session
Consumer
Client JMS
Connection
Session
Producer
message
Destination
Serveur de messages
SAR --MOM & JMS
38
Architecture JMS (3)
q Une connexion est li e un serveur de message
q Une session existe lint rieur dune connexion
q Il peut y avoir plusieurs sessions par connexion
q La session g re le processus global de transmission
q Le consommateur/producteur existe seulement lint rieur dune session
q Le consommateur/producteur conna t seulement la destination
q Le message nexiste qu lint rieur dune session
SAR --MOM & JMS
39
Architecture g n rale de JMS
ENSI
Syst mes et applications r partis
40
JNDI
q JNDI : Java Naming and Directory Interface
q API pour g rer des annuaires de donn es ou dobjets
q Les annuaires peuvent tre g r s par des fichiers ou par des
syst mes dannuaires r partis comme LDAP
q JNDI offre essentiellement deux m thodes :
cBind : qui permet de donner un nom une ressource
cLookup : qui permet de trouver la ressource partir du nom
q JNDI est utilis par RMI, JMS et Java EE
SAR--CORBA
41
Services de JMS
q Ce que d finit JMS
c La cr ation de messages structur s (ent tes, propri t s, corps)
c La connexion a un fournisseur JMS nomm via JNDI
c La r cup ration dune file ou dun sujet nomm s via JNDI
c La production dun message dans une file ou un sujet
c La consommation dun message depuis une file ou un sujet
q Ce qui nest pas d fini par le standard
c Ladministration (cr ation, destruction, vidage...) des files
c Comment sont stock es les files
c La r partition dun fournisseur JMS
c Linterop rabilit entre plusieurs fournisseurs JMS (cf. MOMA : MOM
Association)
c ...
SAR--CORBA
42
Message JMS
q Types de message :
c TextMessage
c MapMessage
c BytesMessage
c StreamMessage
c ObjectMessage
String
<Cl ,Valeur>
flot de bytes
flot type primitifs
Objet s rialis
q Mode de consommation des messages : push et pull
q Persistance, fiabilit , d faillance :
getText(), setText()
setString(), getString()
writeBytes(), readBytes()
writeString(), &
getObject(), setObject()
c Le serveur JMS sarr te &
la remise en tat, tous les messages (persistants) sont de nouveau envoy s &
-> cela engendre donc quun m me message peut tre re u plusieurs fois&
JMS poss de 2 modes:
Messages sauvegard s dans la m moire persistante: PERSISTENT mode ou
NON_PERSISTENT mode
Par d faut le mode est PERSISTENT
De plus, les messages peuvent avoir un time to live
ENSI
Syst mes et applications r partis
43
Anatomie dun message JMS
q Ent tes
c Automatiques
c Param trables
q Propri t s
c Sp cifiques lapplication
c D finies par JMS ou par le MOM
q Charge Utile
c S lecteur de message
c Type de message
ENSI
Syst mes et applications r partis
44
Graphe de classes
ENSI
Syst mes et applications r partis
45
Souscription durable
q Dans le mode publish/subscribe, par d faut, les messages
publi s sont livr s uniquement aux souscripteurs actifs
q Alternativement, il est possible de cr er des souscripteurs
durables
cMessages sont retenus et r cup r s quand les
souscripteurs passent des p riodes non actives aux
p riodes actives
ENSI
Syst mes et applications r partis
46
Etapes du mode Point- -Point
Emetteur
Destinataire
Trouver la queue
Cr er une connexion et une session
Sp cialiser une communication
Denvoi sur la queue
Envoyer un message sur la queue
Sp cialiser une communication de
R ception sur la queue
Demander la r ception dun message
SAR --MOM & JMS
47
Etapes du mode Point- -Point
QueueConnectionFactory connectionFactory = (QueueConnectionFactory)
messaging.lookup("&");
Queue queue = (Queue) messaging.lookup("&");
QueueConnection connection =
connectionFactory.createQueueConnection();
QueueSession session = connection.createQueueSession(&);
QueueSender sender =
session.createSender(queue);
TextMessage msg =
session.createTextMessage();
msg.setText("&");
sender.send(msg);
String selector =
new String("(name = 'Bull') or (name = 'IBM'))");
QueueReceiver receiver =
Publicité
session.createReceiver(queue, selector);
TextMessage msg = (TextMessage) receiver.receive();
SAR --MOM & JMS
48
Mode Publication / Souscription (Pub/Sub)
Emetteur
Destinataire
Trouver la queue
Cr er une connexion et une session
Cr er un sujet
Publier un message
Pr parer un listener de message s pour
l coute
Se mettre l coute dun sujet
SAR --MOM & JMS
49
Mode Publication / Souscription (Pub/Sub)
Emetteur
Destinataire
TopicConnectionFactory connectionFactory =
(TopicConnectionFactory) messaging.lookup("&");
Topic topic = (Topic) messaging.lookup("/A/x");
TopicConnection connection = connectionFactory.createTopicConnection();
TopicSession session =
connection.createTopicSession(false, Session.CLIENT_ACKNOWLEDGE);
TopicPublisher publisher =
session.createPublisher(topic);
publisher.publish(msg);
void onMessage(Message msg) throws
JMSException {
// unpack and handle the message
&
}
TopicSubscriber subscriber =
session.createSubscriber(topic);
Subscriber.setMessageListener(listener);
SAR --MOM & JMS
50
MOM
Exemples de MOM : IBM MQ/Series,
MSMQ et JORAM
ENSI
Syst mes et applications r partis
51
IBM MQ/Series
q Leader du march (66% du march )
q Plates-formes
c>20 plates-formes
c5 protocoles r seaux
clangages (C++, C, Cobol, Java, PL/1, &)
q Nombreux modules
cPublish/Subscribe, Workflow, ...
ENSI
Syst mes et applications r partis
52
Architecture de MQ/Series
ENSI
Syst mes et applications r partis
53
Composants de MQ/Series
q Queue Manager :
c responsable de
envoi des messages pr sents dans sa queue
stockage des messages entrants dans la queue entrante appropri e
c peut tre dans une machine diff rente de celle de lapplication (communication
RPC)
q Message channel : connecte deux queue managers
c Unidirectionnel, fiable
c Chaque bout dun message channel est g r par un agent : responsable de lenvoi
ou de la r ception des messages
q Message
c Ent te
Destination : Queue Manager destination + queue destination
Nom de la queue source
c Utilisation table de routage (destQM,sendQ) QM ID unique dans le syst me
ENSI
Syst mes et applications r partis
54
MSMQ (MicroSoft Message Queue)
q MSMQ est une impl mentation Microsoft de MOM.
q Messages conserv s dans des queues qui sont g r es par
des Queue managers .
ENSI
Syst mes et applications r partis
55
MSMQ
qPlates-formes NT/2000 (v2) et XP (v3)
cR seaux IP et IPX
cIP Multicast (avec PGM pour la tol rance aux pertes) (v3)
cTransport sur HTTP/HTTPS et message enveloppe SOAP (v3)
q Mod les (v3)
cOne-To-One, One-To-Many
cDistribution Lists
cReal-Time Messaging Multicast
cMessage Queuing Triggers
activation dune m thode dun objet COM sur r ception
cSDK MSMQ pour C, C++, ActiveX, MSMQ Explorer
ENSI
Syst mes et applications r partis
56
MSMQ
q Serveur (v2)
c 4 types de serveur
PEC pour Primary Enterprise Controller
informations sur la topologie (sites, liaisons entre sites et RC)
PSC pour Primary Site Controller
informations sur les sites (serveurs, clients et files dattente)
BSC pour Backup Site Controller
secours et quilibrage de charge de PSC
RS pour Routing Server
MSMQ Information Store (MQIS)
r f rentiel (utilise SQL Server ou Active Directory)
c D p t transactionnel de message (MTS)
c 2 Go par file (v2), 1 To par queue (v3)
q Client
c Windows CE, Win9x, &
c SDK MSMQ pour C, C++, ActiveX, MSMQ Explorer
ENSI
Syst mes et applications r partis
57
JORAM : Java Open Reliable Asynchronous
Messaging
q Implantation open source de lAPI cliente JMS
q MOM JMS
c Destination : Pt- -Pt (Queue) et Pub/Sub (Topic)
c Architecture Multi-Serveurs
c Open Source
q Usage double
cService de messagerie autonome pour applications Java
cComposant de messagerie asynchrone int gr dans un serveur
dapplication J2EE (JonAS, JBoss, etc.)
q Utilisation
c Kelkoo (remont e de log)
c Schneider Electric (remont e de mesures de capteurs)
c &
ENSI
Syst mes et applications r partis
58
JORAM
q Architecture Multi-Serveurs
cUne destination par serveur
La ConnectionFactory est connect e au serveur
cEquilibrage de charge (Load Balancing)
La Destination est r pliqu e sur R serveurs (pair pair)
Connexions: TCP, HTTP, SSL, &
Privil gie la consommation locale des messages
Pas dordre global des messages
Ordre local
cHaute disponibilit (High Availability)
Serveur ma tre r pliquant (JGroup) ses queues/topics sur S serveurs esclaves
(S>0)
La ConnectionFactory du client JMS peut basculer du serveur ma tre vers un
des serveurs esclaves
q Bas sur le MOM ScalAgent
ENSI
Syst mes et applications r partis
59
La plate-forme SCALAGENT
q Bus logiciel base dagents communicants
q Agents = objets r actifs
cPersistants
cL gers : infrastructure dex cution partag e au sein dun serveur
dagents
q Mod le v nement / r action asynchrone
c v nement : changement d tat
significatif du syst me auquel
un ou plusieurs agents r agissent
c v nement = Notification
cR action = fonction dans la classe
Agent
Agent
SendTo
Agent
React
Channel
Larchitecture distribu e SCALAGENT
qInfrastructure bas e sur un bus messages
cAcheminement des notifications
cEx cution de la r action du destinataire
cDistribution: forte interconnexion des bus locaux
Agent
Agent
SendTo
Agent
Agent
A
r
e
v
r
e
S
Channel
Engine
Channel
Engine
Publicité
mq
mq
React
S
e
r
v
e
r
B
Les propri t s de la plate-forme
q Persistance
c Sauvegarde des agents et notifications
q Atomicit
c Coh rence garantie par un moniteur transactionnel
q Persistance + Atomicit = Fiabilit
c Une notification est d livr e une et une seule fois
q Ordonnancement causal
c Les notifications sont d livr es
selon un ordre causal
A
C
B
JORAM & Scalagent
q JORAM impl mente la norme JMS via une technologie base
dagents, la plate-forme Scalagent.
q JORAM est linterface JMS du MOM SCALAGENT
cLes queues et topics sont des agents
cLes messages sont encapsul s dans des notifications
D livrance asynchrone
Garantie de d livrance
Reprise apr s panne
q Apports de linfrastructure agents
cArchitecture totalement distribu e
cScalabilit
JMS via le MOM Scalagent
Message JMS
QueueSender
QueueSession
1
t
n
e
i
l
C
MOM Scalagent
S
M
J
s
t
n
e
i
l
C
QueueConnection
Connexion TCP
Agent Proxy
queue
Agent Queue
QueueConnection
Connexion TCP
Agent Proxy
2
t
n
e
i
l
C
QueueSession
QueueReceiver
Message JMS
Int gration dans JOnAS
q JORAM impl mente la partie ASF (Application Server Facilities)
de la sp c. JMS
cInt gration de JORAM en tant que ressource dans un
environnement transactionnel distribu tel quun serveur EJB
cEnvoi et r ception de messages dans des transactions g r es
par le serveur EJB
cR ception asynchrone via les Message-driven Beans
Conclusion : Avantages des MOM
q Int gration de multiples protocoles et des multiples plateformes
q Messages d finis par les utilisateurs
q GMD : Guaranteed Message Delivery
q Equilibrage de charge
q Tol rance de pannes
q Support pour plateformes h t rog nes
q Gestion et configuration sur interfaces graphiques
ENSI
Syst mes et applications r partis
67
R f rences (1)
q Chantal Taconet. Message Oriented Middleware illustrated with JMS. ASR/CSC5002, Telecom
SudParis. 23 octobre 2011.
http://www-inf.it-sudparis.eu/COURS/mari/Diapos/mom-diapos.pdf
q Andr Freyssinet. JORAM, un intergiciel de communication asynchrone. Scalagent Distributed
Technologies. http://joram.ow2.org/doc/ICAR/ICAR06.pdf
q A. Tanenbaum et Marteen van Steen. Distributed Systems-Principles and Paradigms. Pearson-
Prentice Hall. 2002.
q Sacha Krakowiak. Communication par v nements et bus messages. Syst mes et applications
r partis, Master M2-P, Sp cialit G nie Informatique. Polytech' Grenoble RICM-3.
http://proton.inrialpes.fr/~krakowia/Enseignement/M2P-GI/Flips/4-MessagesEvents-1pp.pdf
q Anindya Kumar Jena. Architecture of Message Oriented Middleware. National Institute of
Science & Technology (NIST).
https://rapidshare.com/#!download|779p8|254498855|Architecture_of_Message_Oriented_Mi
ddleware.ppt|465|R~F72905F9B3C51DB1EDC204641CD84C59|0|0
ENSI
Syst mes et applications r partis
68
R f rences (2)
q Jean-michel Douin. JMS,MOM, MDB, Java Message Service, Message-
Oriented Middleware, Message-Driven Bean. Architectures Logicielles Java,
CYCLE APPROFONDISSEMENT C3. Cnam Paris. version 8 mars 2012.
http://java.cnam.fr/iagl/glg204/cours/GLG203_JMS_MDB_jmd.pdf
q Didier DONSEZ. Message Oriented Middleware (MOM), Java Message
Service (JMS). PolyTechGrenoble - LIG/ADELE.
http://www-adele.imag.fr/users/Didier.Donsez/cours
q Philippe ISORCE. tude dun Middleware. D partement
T l communications, Services & Usages. INSA-Lyon.
http://perso.citi.insa-lyon.fr/sfrenot/cours/SID/cours/SID26-
MID_MOM_2.pdf
ENSI
Syst mes et applications r partis
69
Annexe
JMS en pratique (OpenJMS)
ENSI
Syst mes et applications r partis
70
La session au centre
ENSI
Syst mes et applications r partis
71
Context
ENSI
Syst mes et applications r partis
72
Connection
ENSI
Syst mes et applications r partis
73
Session
ENSI
Syst mes et applications r partis
74
Destination (Queue par exemple)
ENSI
Syst mes et applications r partis
75
MessageProducer
ENSI
Syst mes et applications r partis
76
MessageConsumer
ENSI
Syst mes et applications r partis
77
R ception asynchrone : MessageListener
q public class JmsSimpleListener implements MessageListener {
/**
- A simple onMessage method handling received TextMessage.
*
- @param message the received message
*/
public void onMessage(Message message) {
try {
if (! (message instanceof TextMessage) ) {
System.out.println("onMessage() received an unhandled: " + message.getClass().getName());
return;
}
//traitement du message ici &
}
catch (Throwable t) {
System.err.println((t instanceof JMSException) ? "JMSException" : "Throwable" + " Caught in
onMessage(): " + t.getMessage());
}
}
q Remplacer receiver.receive() par listener = new JmsSimpleListener();
receiver.setMessageListener(listener);
ENSI
Syst mes et applications r partis
78
Fabriques encore &
ENSI
Syst mes et applications r partis
79
Queue : un exemple extrait de
http://fiehnlab.ucdavis.edu/staff/wohlgemuth/java/jms-1
ENSI
Syst mes et applications r partis
80