ENSI –SAR

Pearson
Page 1 sur 78Lecteur de document UniversityLib

ENSI –SAR

Message Oriented Middleware, Java Message Service, Distributed Systems · course

Voir tous les documents en programmation

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