Message Oriented Middleware (MOM) Java Message Service (JMS)



Documents pareils
Message Oriented Middleware (MOM) Java Message Service (JMS) Didier DONSEZ

MOM: Concepts & Applications

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

TD sur JMS ) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?

Messagerie asynchrone et Services Web

Plan du cours. Systèmes et applications asynchrones Middleware à message. Architecture distribuée. Objectifs du cours

Des solutions J2EE open source professionnelles adaptées à votre système d information d entreprise

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

Urbanisme du Système d Information et EAI

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Les nouvelles architectures des SI : Etat de l Art

Software Engineering and Middleware A Roadmap

Le 09 et 10 Décembre 09

Fusion : l interopérabilité chez Oracle

Mettez les évolutions technologiques au service de vos objectifs métier

Introduction aux intergiciels

Introduction à WebSphere MQ

Auto-évaluation Aperçu de l architecture Java EE

Intégration de systèmes client - serveur Des approches client-serveur à l urbanisation Quelques transparents introductifs

Rapport de veille technologique

Mise en œuvre des serveurs d application

JF SMA'14. A3 - Agent Anytime Anywhere. une plateforme à agents distribués Oct l'expertise middleware.

Intégration de systèmes

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

MQPerf un outil de diagnostic en mode SaaS des performances optimales du MOM JORAM

Introduction à la conception de systèmes d information

Chapitre Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties

LA VAGUE EAI (ENTREPRISE APPLICATION INTEGRATION)

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Le livre blanc de l EAI Intégration des Applications d E n t r e p r i s e. octobre 99

Infrastructure à Clé Publique (PKI Public Key Infrastructure)

L intégration d applications unifiée par les Services Web et XML Réconcilier J2EE.NET EIS et mainframes

1. Introduction. Bases de données Réparties, Fédérées et Réplication. Plan. Bibliographie du cours

Module BDR Master d Informatique (SAR)

Analyse des techniques et des standards pour l interopérabilité entre plateformes

EAI. De l intégration à l e-business. Novembre François Rivard consultant senior Tél :

Plan du cours. Autres modèles pour les applications réparties Introduction. Mode de travail. Introduction

Comment tirer profit des web services dans le monde réel Un document eforce France Mars 2003

Introduction aux applications réparties

Introduction à la plateforme J2EE

Transactionnel et transactionnel réparti. Source R.CHEVANCE G.Gardarin

NFP111 Systèmes et Applications Réparties

Fiche de l'awt Intégration des applications

Le modèle client-serveur

Nouvelles technologies pour l intégration : les ESB

Les Architectures Orientées Services (SOA)

CALENDRIER DES FORMATIONS

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Description de la formation

Programmation Web Avancée Introduction aux services Web

Réussir la mise en œuvre d une solution de portail d entreprise.

SOA : une brique de la 4 ième génération de l architecture informatique? Hervé Crespel Président du club urba-ea

INSTITUT NATIONAL POLYTECHNIQUE DE GRENOBLE

LES SOLUTIONS OPEN SOURCE RED HAT

10. Base de données et Web. OlivierCuré

Urbanisation des Systèmes d'information

Journée IJD. Moussa Tari Bako Bachir. 25 juin 2012 ARLES/INRIA. Introduction Travail Chez ARLES

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

Groupe Eyrolles, 2004 ISBN :

Introduction aux «Services Web»

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Formations et Certifications. Serveur Infrastructure

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Microsoft Exchange en quelques mots

Approche dirigée par les modèles pour la génération d une chorégraphie distribuée à partir d un processus d orchestration BPMN

Présentation d'un MOM open-source

BMC Middleware Management

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

CATALOGUE DE FORMATIONS

12 décembre Mineure SOA Cours 6. Olivier BESNARD Consultant sénior Practice Architecture des Systèmes d Information

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

WebSphere MQ & Haute Disponibilité

Petite définition : Présentation :

Cahier des charges (CDC)

Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription

Remote Method Invocation en Java (RMI)

Introduction aux. services web 2 / 2

Architectures d'intégration de données

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Applications et Services WEB: Architecture REST

NSY102. Conception de logiciels Intranet Introduction

La reconquête de vos marges de manœuvre

DataPower SOA Appliances

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

L'EAI (Enterprise Application Intégration)

Business Process Execution Language

Le cadre des Web Services Partie 1 : Introduction

Bases de données documentaires et distribuées Cours NFE04

Dafoe Présentation de la plate-forme UIMA

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

PROJET : ETNIC ESB JANUS. Guide technique : WS-Notification - Clustering. BULL Services et Solutions

Plan. Department of Informatics

Android et le Cloud Computing

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Transcription:

http://www-adele.imag.fr/~donsez/cours Message Oriented Middleware (MOM) Java Message Service (JMS) Didier DONSEZ Université Joseph Fourier (Grenoble 1) IMA IMAG/LSR/ADELE Didier.Donsez@imag.fr Didier.Donsez@ieee.org

http://www-adele.imag.fr/~donsez/cours Message Oriented Middleware (MOM) Didier DONSEZ Université Joseph Fourier (Grenoble 1) IMA IMAG/LSR/ADELE Didier.Donsez@imag.fr Didier.Donsez@ieee.org

3 Motivations Modèle Client-Serveur!"#$! %&'"#!( Une alternative : la messagerie inter-application &" )!#&!* #& +!#,-#-./#

Motivations 4 Applications (passage à très grande échelle) 00# 10")!* /2+++ -%/20&/+++,#"#!&) #%* )!!!& *$,)!,* 3 )45 40"5#* &&##)6./&&" #!7*!&" #&&#& &)7* +++

Principe 5 Messagerie inter-application 8"!& 1!! )% 9* Files de Messages (Message Queueing) &" "#0&# 1!)++#* # 1&& 1!!& # 10&!!&!!& #".& #" :&! Avantages %&!# )0&&&3 587* %&!!&#!%&)"!"*

Principe des Files de Messages (i) 6 1 1

Principe des Files de Messages (ii) 7 1 1

Principe des Files de Messages (iii) 8 2 2

Principe des Files de Messages (iv) 9 2 2

Modèles de messageries 10 Routage de Message!& 1##& 1!!&!&#"!!&""#0'&" : "" &'!!%&&&#"!#" Modèles ; " )!#*""!&& %&-,! "!%&#00:&! %&-,!!&)%#!%&-%%* "!%&#00:&!!!! #" ) 1<!=+&#1,7* -! &-,

Modèle des Message Queues 11 1 1 2 1 2 2

Modèle Publication-Souscription 12 1 2 1 2

Publication-Souscription sur des topics hiérarchiques 13

Publication-Souscription par le contenu 14 1!" #!" 2 2 1 $"% " & " "$"% " & " #!"

Modèle Requête-Réponse 15 Implémente le modèle Client-Serveur #' * ) #' ( & ") # req res " # " & "

Modèles de messageries 16 Routage hiérarchiques de Messages :&>&&#&"#'"?#!%&#!.#.& 0#0/# "!& #1#&--- ) +++*---@" #1! + + + + + + + +,, " " # # && ## **,, " " # # && ## ** # # && ## **

Architecture d un MOM 17 Client MOM &#"'!": A#" Serveurs MOM & #"'!# "%&3 8& ##7 "#!#"!&)!"#* Administrateur/Contrôleur du MOM &&&0& #0&!& # #0&!&# )!#7*

18 Implémentation Architecture & & " & " & " & " & " & " & " - * % - * - * : QoS!%&.%& :&1&&,7

19 Architecture d un MOM -- #( #( &&" " -- #( #( &&" " -- ## * * %. " / 0 # % 1 "2 3 -- # # "" -- ## * * %. " /

Exemple multiplateforme d un MOM (IBM MQ-Series) 20 Hétérogénéité de Systèmes et de Réseaux (( &&" " (( &&" " (( &&" " ## * * 00 & & 11 4 # % & "2 3 ## * * 6666 45 45 # # $ $ 1 & "2 3 ## * * 77

Avantages 21 Réutilisation 4#1!& "%&%& Fiable Simple d Utilisation Répandu Supporté par de grands acteurs

Comparaison RPC et MOM 22

Interopérabilité entre MOM 23 Difficulté de faire intéropérer des MOM Pas de standardisation entre les MOM,!0; ;& ##&)!6 *!,0?4B47C!((///+%"+ Des pistes pour l interopérabilité = # ##&/ D+E ##&#" F$ F, F!":#&# 1(#" #"!&"#F,, F

24 Interopérabilité entre MOM -- #( #( &&" " -- #( #( &&" " -- #( #( &&" " -- ## * * %. " / 0 # % 1 "2 3 -- ## * * %. " / 0 # % 1 "2 3 -- ## * * %. " / -- # # ""! " # "$ % Issues : End-to-End Transactional delivery? --"+"+ -- # # ""

Le Transactionnel 25 La consommation et la production de messages peuvent être des actions recouvrables &0&#" #"" %& Elles ne sont effectives qu à la validation d une transaction &"!#:&&# # 1%##&&"!# %#&" "" #&0& La transaction peut être distribuée &)G 4,7*

26 Conséquences du Transactionnel Conception de Requête-Réponse transactionnel & 1#&&!#&! 0"# $ T1 T2 & #"% & & " "#"% & & #"% & * & "#"% & & #"% & * " # " & & "#"% & T3

27 Conséquences du Transactionnel L ordre de consommantion des messages peut être différent de l ordre de production begin T1 T1 produit M1 T1 produit M2 commit T1 begin T2 T2 consomme M1 begin T3 T3 consomme M2 abort T2 commit T3 begin T4 T4 consomme M1 commit T4

Acteurs et Produits 30 BEA Systems IBM - MQ Series $H!&0" MicroSoft - MSMQ (Message Queue Server) &&"84 Level 8 Systems - Falcom MQ!&&,;;, Sybase - DBQ #!, Tibco - TIB/RendezVous #&!&I Sun - Java Messaging Service!&;

31 IBM MQ/Series Leader du marché (66% du marché) Plates-formes @$E!&-0" H!& & )99%&F5(J7* Nombreux modules %&(,%%3 20&/+++

32 MSMQ (MicroSoft Message Queue) Plates-formes NT/2000 (v2) et XP (v3) G &)<!&&!*)D* 4!?44(?44," :&!!,)D* Modèles (v3) -4--4- %5 &-4" & ; 4 )#1"##1%6!*,K,;!99G,;!&

MSMQ (MicroSoft Message Queue) 33 Serveur (v2) L!#!"!&& 0"&!& )&*,!",&& 0"&)&0&#1*,!2!,&& &% # #,,!,,;0",);,* 0&)&,;5,*!M&#" ) 4,* $<!0&)$*J4!)D* Client 3 #/3 N 7,K,;!99G,;!&

Exemple d ASP utilisant MSMQ et MTS! " #$ % & # ' & % (! ) * ) * ' ) # ) +!, # ),* ' ) - $ '. ) / ) +!,/ ) / ) ) 0 0 # %! + 1" $ 2 3 45! 1! 0 0 # 56 0 0 # 1 / % 5177##! 8! ' 9 8! " ' 5: 0 0 % 0 0 # 1$ 4; <= 6: %! + 1" $ 2 3 45! 1! 56: 12 > % 5" 0 5: 12 % 52 0 5: 1' + > % : 1? + + % : 1! 4 0 0 6: 0 0 1" 46: ),- $ '. ),* ) 0 $ " 46@ 1A 45 ) +! + > 156:B 0 $ 2 46@ 1A 45 ) 2 56: 1A 45! + > 156:B ) 35

JORAM (ObjectWeb & Scalagent) 36 MOM JMS );*%,%)4!* &-,!, :F8,!%&,<!#!&#%#&,< C2F!KC #"!# )&F G* Utilisation K&2)"#& *,#&)"#"#!* 7

JORAM (ObjectWeb & Scalagent) 37 Architecture Multi-Serveurs =#! 5. &% # )* 5!&)!:!* 4?44,,57 & &""&&#" #1# &%&#" #&&?#!%&) *,"O!&)F<!*(!, &),@E* 5.#&F,!%&#"O #&

JORAM (ObjectWeb & Scalagent) Architecture Multi-Serveurs 38 Une destination par serveur ( ( 8 8 (( && ( ( 8 8 (( && ( ( 8 8 ( ( 8 8 (( && ( ( 8 8 ( #: # ; ;J 99 % % ## * * ;$ 99 % % ## * *

JORAM (ObjectWeb & Scalagent) Architecture Multi-Serveurs 39 Equilibrage de charge ( ( 8 8 (( && ( ( 8 8 ( ( 8 8 (( && ( ( 8 8 ( #: # ; ;J 99 % % ## * * ;J! 99 % % ## * *

JORAM (ObjectWeb & Scalagent) Architecture Multi-Serveurs 40 Haute disponibilité (1) ( ( 8 8 (( && ( ( 8 8 9 ;J 99 % % ## * * 99 % % % % * * # # * * % % ** ;J! 99 % % ## * * %% " "

JORAM (ObjectWeb & Scalagent) Architecture Multi-Serveurs 41 Haute disponibilité (2) ( ( 8 8 (( && ( ( 8 8 9 ;J 99 % % ## * * 99 % % % % * * # # * * % % ** ;J! 99 % % ## * * %% " "

42 MOM et BDs Nomades (Mobiles) Motivation 8"# 5#!+++ :6#!& "# & "#6& Réplication des BDs &&P %&!& Q Produits "3 #G&& #40#4&& +++

MOM et BDs Nomades (Mobiles) 43 1- Réplication 2- Synchronisation )* + )* + )* +, )* +, - - )* ) -./ & '( )* ) -./ & '(

44 MOM et BDs Nomades (Mobiles) 3- Détection de Collision 4- Reprise sur Erreur )* + )* + )* +, )* +, - - )* ) -./ & '( )* ) -./ & '(

45 MOM et Composants Motivations.&#""!&!# " R"##"#'&:"!)&!!* Modèles +84 S3 T&& F$(F )!#! #" *

http://www-adele.imag.fr/~donsez/cours Java Message Service (JMS) Didier DONSEZ Université Joseph Fourier (Grenoble 1) IMA IMAG/LSR/ADELE Didier.Donsez@imag.fr Didier.Donsez@ieee.org

47 Motivation Messaging Oriented Middleware " -!!& & 1&!#"!!& &"!#:#"##!!+++!#!"""!&&(, "#$%&' () javax.jmx API Java d un client à un serveur MOM #'&#" )** :)%++%*!#0&# 1#" %&-,!)%+*!#6& 1%!&!!!&#%

Architecture JMS 48 &&&&&#!2 javax.jmx!& 1&!#" &"!&F,,#10: 99 #( #( &&" " 99 #( #( &&" " 99 #( #( &&" " 11 && $9 $9 #( #( &&" " <# <# & & 99 %%* *% %## %% ## * * #9 #9 # #4 4 <#1 <#1 %%"* "* # #4#( 4#( ( ( = = = ( ( # <#9 <#9 ## * * # # ** % #. " <# <# %% & & ## * * # ##5 #5 33 % # /. " /

Modèle Point à Point Point-to-Point 49 Concept de Queue =)!&* )*" :,)++0&# 1#" * =& A)***&" #&, && %% & & ## * * && && %% # #.. * *

Modèle Publication-Souscription Publish-Subscribe 50 Concept de Topic (centre d intérêt) =)!&*" :- 4&#-A&" + + %% & & ## * * + + + +

API JMS 51 Superclasses communes a PTP et PubSub 9 # % & " > # > #?.*" "" / '( * " 0 0 0 /$*+) "*"* + 1 0 1 2.$ )* $"") + 3 " ) 4 0.**$)* $"")

Fonctionnement d un client typique JMS 52 Phase d initialisation (setup) &1%6!F8 )!&*%6*!F8 F, )!&*0 & F, &)*+ 1 (+ &0 &)&** #"#:& ##"&&# " Phase de consommation/production de messages #" & #" &

Les objets administrés par le Provider 53 Les objets administrés par le Provider 5!# 1': %&!F8!& 1#"# 5 * 5 #"!& %&!F8!& 1#"# Les objets 5!&&&4(&#F, 0&&!0#0#& &0 0& + *!!)!&*&1/ & 5 0!&&&4(&#F,

54 Rôle!&&&4(&#F, 0&&!0#0#& Cycle de vie &(! &0 + 1 &+ + 0& + *!!)!&*&1/ & #"!%!'#:&&#+!!% "!&&#+ 100!& 1!!% 0"!% &%#

55 0 Rôle "-# 0%&+ 1 &+ 0%&#"! * #0&"##" )""!#* #!0!* +#1#* && 1 #+ & "# +!% #0O#" &!#0!!% -!% "#"

+ 58 représente l objet consommateur des messages 0%!&0 5 3 0 3! "0 0 % 5 0 0 0! "0 0 " % "&!!&+ 0!""*,-0 3 " 0 Réception Synchrone des messages &&"#!" 5 +!%"+! %"+ ( 6!% Réception Asynchrone des messages &&%6"!&"& 10+ &!%6:& 1#" 5 + &!+ & %7+ & + &!% #" &"# +!+ %#& 1%6 + & 5 1&1&#! &&"& + &

59 + 1 représente l objet producteur des messages 0%!&0 5 0 0 0! % 5 1 2 0 1 2! % "&!!&+ 1 0!""*,-0 0 " 1 2 Production des messages 5 0!+ % 5 1 2 2!+ %

Le modèle Point à Point Point-To-Point PTP 60 Classes et interface 9 # % & " > # * " 0 0 + 1 0 + 3.. ) 4 "!&!! ""F,!0!""&!#!&""& 3 #+ 5" &#&& 1##! 1!&&& 1##!# 5 ) 4!"#&&" #& & &")"#/ /!%*

Le modèle Publication-Souscription Publish-Subscribe PubSub 61 Classes et interface 9 # % & " > #? * 0 0 + 1 1 2 + 0 " &"P!%&Q!#:P!#Q &"P Q!#:P ""Q

Le modèle de Messages JMS L interface 3+ C 131 62 Motivation #'&"":&!#,!!&1 U#&)F,&!&-0"+++*,!!&%6F&#"G 5 L interface 3+ C 131-0- > < <$ 2 3 <! < C Structure d un Message )* "!"" #)#*%& # & 1#0#"!)* "!!!&"!!##& "!# 1!&!!!0)!#*!#!!!!&!!&&# 1&#!!)* &#!!&

Le modèle de Messages JMS Les champs d entête 63 Nom des champs d entête 8 + 0 * 9 8 + 0 * + 9: ( ; ( < 1 / 3 0 0 / ( 9# 1 / 3 0 0 / ( 9 = 8 + 0 / 9 > &! & % 2 8 + 0 + * 9 # + # 8 + 0 9 2 8 + 0 * 9 # = +!3 73 % 8 + 0 3 9 # * 8 + 0 9 # + 3 8 + 0 3 9 =! % 8 + 0 1 9!? > @ % Consultation/Modification "#AAA!%7AAA!% VAAA &"#"!# 1

Le modèle de Messages JMS Les champs de propriétés 64 Nom des propriétés!!## "!0!8 + 0 A!#:#"!# 1!& 9 < 4@ #9 < 4@ 9 = = 9 < 4@ #9 < 9 9 < <4@ #9 <( & <4@ 9 # 9 <. * "% 9 9 < "% " 9B!4 %"C! %"D! %"E! % 9 <@ * / ( & " 9 2 #!!!0 "!0!8 + 0 < F (!!!!& 0& ""#"!&"! "!&&## 1!# 1#"G 5&!0 +

Le modèle de Messages JMS Les champs de propriétés 65 Enumération des propriétés / 1 (!%7/ + * 8 + 0 A1 (!% /!0 % Valeur des propriétés 0 D 4(! E 6 0 C 0 4! " "2 " " "# " "0 "# 1!0 " %" ) 1!0 " %" "# 1!0 %" ) 1!0 %" 5 1!!&:AAA1!% &!! 1! 5!!# 1" A&& & 1!+ ( 6 / & 4!%6!#) ") "0 2 " "& " "* "0 "# ; 1!0 "; % "#; ; 1!0 % &#!! 1!%

Le modèle de Messages JMS Le corps (body) du message 66 Sous interfaces de + + 0!#"G 5",7 "& # " A "?# " A " "& # + + "%&#!"-& & "# "4& " "& #& % #?# "4& " "& #& % #& " * % # - B "# "- B " "&?# "- B " "& - B "# & % " & # " % 1 % ; + %6F&- B "# "- B "?# "- B "- B "# ) + %&# )!* & "# % 4& "?2 " 4& "& "##& "# % 5 / " 5 / " CD?2 " 5 / " 5 / " CD - B "# % - B "?#2 " - B "- B "# " 0 + 0&##)' * * 1&&&" & "# % 4& "?2 " 4& "& "## "& # % "&?2 " "& "& - B "# % - B "?#2 " - B "- B "# "

Remarque: Message SOAP sur JMS 67 In a recent "Strategic Planning" research note, Gartner issued a prediction that "by 2004, more than 25 percent of all standard Web services traffic will be asynchronous..." and "by 2006, more than 40 percent of the standard Web services traffic will be asynchronous."

Le modèle de Messages JMS Le corps (body) du message 68 Méthodes &"# )!% &&! Remarque &!# 1" A&&

Le modèle de Messages JMS Le corps (body) du message 69 String textstr = "<?xml version=\"1.0\"?><!doctype person SYSTEM \"person.dtd\">" +"<person><firstname>joe</firstname><lastname>smith</lastname>" +"<salary value=\"10000.0\"><age value=\"38\"></person>"; // l API javax.xml est préférable pour construire le document XML TextMessage textmsg = session.createtextmessage(); textmsg.settext(textstr); MapMessage mapmsg = session.createmapmessage(); mapmsg.setstring("firstname", "Joe"); mapmsg.setstring("lastname", "Smith"); mapmsg.setdouble("salary", 10000.0); mapmsg.setlong("age", 38); Person object = new Person("Joe","Smith", 37); object.setage(38); object.setsalary(10000.0); ObjectMessage objectmsg = session.createobjectmessage(); objectmsg.setobject(object); // Person doit implémeter java.io.serializable Byte[] bytesarray = { 'J','o','e',' ','S','m','i','t','h'}; BytesMessage bytesmsg = session.createbytemessage(); bytesmsg.writebytes(bytesarray); bytesmsg.writeint(38); bytesmsg.writedouble(10000.0); StreamMessage streammsg = session.createstreammessage(); streammsg.writestring("joe"); streammsg.writestring("smith"); streammsg.writelong(38); streammsg.writefloat(10000.0);

Le modèle de Messages JMS Le corps (body) du message 70 TextMessage textmsg = (TextMessage)receivedmsg; String textstr=textmsg.gettext(textstr); System.out.println(textstr); // le document XML peut être parsé MapMessage mapmsg = (MapMessage)receivedmsg; String firstname= mapmsg.getstring("firstname"); String lastname= mapmsg.getstring("lastname"); long age= mapmsg.getlong("age"); double salary= mapmsg.getdouble("salary"); System.out.println(firstname + " " + lastname + " " + age + " " + salary); ObjectMessage objectmsg = (ObjectMessage)receivedmsg; Person object = (Person)objectmsg.getObject(); System.out.println(object.toString()); BytesMessage bytesmsg = (BytesMessage)receivedmsg; Byte[] bytesarray ; int length=bytesmsg.readbytes(bytesarray); long age= bytesmsg.readlong(); double salary= bytesmsg.readdouble(); StreamMessage streammsg = (StreamMessage)receivedmsg; String firstname= streammsg.readstring(); String lastname= streammsg.readstring(); long age= streammsg.readlong(); double salary= streammsg.readdouble(); System.out.println(firstname + " " + lastname + " " + age + " " + salary);

Le modèle de Messages JMS La sélection (filtrage) des messages 71 Motivation &+ 1 &" :&!! &+!0&&" A & 1!#&!0:&0%#+ &" A 0& 1!#& Expressions de sélection -"%&#,;5-N$ #0& )O8" 3 G / 7'& 0 /* ; 3 "'( * "( ; "!% H "I "H J"I J"I H "J")/ 6 / / ( "& K / "( "0 L( ; M( G & & "!& 0 JN8 + 0 JO O'( *! JO O ; 3 JOO %'( * 0 ( ; ( G & & NP 3 J 3! " %P

Exemple : Point à Point La partie commune 72 % #9 "#E "% " #( & " A "# % & F "% " # ( & & " & 8 % " / # ( & & " & 8 % " / F# "% " # F "% " # ( & & " & # ( & & " & F "% " # & # & F "% " # & # & F "% " #. * #. * F "% " #* # " "& # ( & & " & 8 % " / 1 % # "& # 1 % E % & G #& 2 #4& "% ( & " A "F ( & & " & 8 % " / G # ( & & " & 8 % " / % & 3 ( & & " & 8 % " / 1 % F #G # # % & 3 1 % F ( & & " & G # ( & & " & 8 % " / % " ( & & " & F & G # ( & & " & % " &!% & - H ( I 1-0 ; @ F J "% " #* # " & "& # ( & & " & 8 % " / 1 % # "& # 1 % E " ( & & " & 8 % " / 1 % # 1 % F & G # & % " & F ( & & " & "% "F J "% " #* # ". * "& # ( & & " & 8 % " / 1 % # "& # 1 % E " ( & & " & 8 % " / 1 % # 1 % F. * G # & % ". * F ( & & " & "% "F J#J

Exemple : Point à Point Sender 73! "#$$#$ # % #9 & "## A " & 9 "#E "% " #* # & "& # "& 7 % # 7 % # & # 7 % # % & # % & "/ #E % % % #G # & % " % % F % "- B "K "& 7 % K # "& 7 % F % "@ K 7 % K # 7 % F % "; & K & 7 % K # & 7 % F % "5 % & "/ K A "K # % & "/ F & & % F J # "% " #* # % & "& #% CD#E " & % * C6 D% * C DF & # "G ; & % ; & % * C DF 2 + $$ "L 6 #E & % * C D= "@ % @ % * C D* % @ = " "#!% F J & % * C D= "% * C D= " "#" F F J#J

Exemple : Point à Point Receiver synchrone 74 %&! # % #9 / &. * "## A " & 9 "#E "% " # % & A "G!% F "% " #* #+ % & % % % % #E "& # "& 7 % G % " "& K "& 7 % K F / " " & "K # "& 7 % G K = "& 7 % F # 7 % G % "@ K 7 % K F / " " & "K # 7 % G K = 7 % F & # & 7 % G ; & % "- B "K & 7 % K & 7 % F# / " " & "& K # & 7 % G K = & 7 % F A "#G # % "5 % & "/ K A "K F J "% " #* # / &. * #E % % % F 2 + M A "#E % G # % %. * * F + % & % % F J J # "% " #* % & "& #% CD#E ". * % * C6 D% * C DF / &. * F F J#J

Exemple : Point à Point Receiver asynchrone 75 '%&! # % # / ; " & # & " # B% * % A B % ; " & E * # & % % # % #E#9 "+ % & % % % % F#J J # % #9 / &. * "## A " & 9 "#E "% " # % & A "G!% F "% " #* #+ % & % % % % #E "& # "& 7 % G % " "& K "& 7 % K F / " " & "K # "& 7 % G K = "& 7 % F # 7 % G % "@ K 7 % K F / " " & "K # 7 % G K = 7 % F & # & 7 % G ; & % "- B "K & 7 % K & 7 % F# / " " & "& K # & 7 % G K = & 7 % F A "#G # % "5 % & "/ K A "K F J "% " #* #% / &. * #E. * " % ; " & & 2 # / ; " & F 2 + M A "#E#?N# "+ & #N?#J J # "% " #* % & "& #% CD#E ". * % * C6 D% * C DF % / &. * F F J#J

Exemple : Publication Souscription La partie commune 76 % #9 "#E "% " #( & " A "# % & F "% " # ( & & " & 8 % " / #" ( & & " & 8 % " / F# "% " " F "% " # ( & & " & ##" ( & & " & F "% " # & #" & F "% " # + #" + F "% " # #" F "% " #* # " "& ##" ( & & " & 8 % " / 1 % # "& ##" 1 % E % & G #& 2 #4& "% ( & " A "F " ( & & " & 8 % " / G # ( & & " & 8 % " / % & 3 " ( & & " & 8 % " / 1 % F " G # # % & 3 " 1 % F " ( & & " & G #" ( & & " & 8 % " / % " ( & & " & F " & G #" ( & & " & % " &!% & - H ( I 1-0 ; @ F J "% " #* # " + "& #" ( & & " & 8 % " / 1 % # "& #" 1 % E " " ( & & " & 8 % " / 1 % #" 1 % F " + G #" & % " + " F " ( & & " & "% "F J "% " #* # " "& #" ( & & " & 8 % " / 1 % # "& #" 1 % E " " ( & & " & 8 % " / 1 % #" 1 % F " #G #" & % " " F " ( & & " & "% "F J#J

Exemple : Publication Souscription Publisher 77 9 + "#!"#$$#$ # % #9 + "## A " & 9 "#E "% " #* # + "& # "& 7 % # 7 % # & # 7 % # % & # % & "/ #E % % % #G # & % " % % F % "- B "K "& 7 % K # "& 7 % F % "@ K 7 % K # 7 % F % "; & K & 7 % K # & 7 % F % "5 % & "/ K A "K # % & "/ F " + + % F J # "% " #* # % & "& #% CD#E " + % * C6 D% * C DF & # "G ; & % ; & % * C DF 2 + $$ "L 6 #E + % * C D= "@ % @ % * C D* % @ = " "#!% F J + % * C D= "% * C D= " "#" F F J#J

Exemple : Publication Souscription Subscriber synchrone 78!%!! # % #9 / & "## A " & 9 "#E "% " # % & A "G!% F "% " #* #+ % & % % % % #E "& # "& 7 % G % " "& K "& 7 % K F / " " & "K # "& 7 % G K = "& 7 % F # 7 % G % "@ K 7 % K F / " " & "K # 7 % G K = 7 % F & # & 7 % G ; & % "- B "K & 7 % K & 7 % F# / " " & "& K # & 7 % G K = & 7 % F A "#G # % "5 % & "/ K A "K F J "% " #* # / & #E % % % F 2 + M A "#E % G # % % " F + % & % % F J J # "% " #* % & "& #% CD#E " % * C6 D% * C DF / & F F J#J

Exemple : Publication Souscription Subscriber asynchrone 79!'%!! # % # / ; " & # & " #B% * % A B % ; " & E * # & % % # % #E#9 "+ % & % % % % F#J J # % #9 / & "## A " & 9 "#E "% " # % & A "G!% F "% " #* #+ % & % % % % #E "& # "& 7 % G % " "& K "& 7 % K F / " " & "K # "& 7 % G K = "& 7 % F # 7 % G % "@ K 7 % K F / " " & "K # 7 % G K = 7 % F & # & 7 % G ; & % "- B "K & 7 % K & 7 % F# / " " & "& K # & 7 % G K = & 7 % F A "#G # % "5 % & "/ K A "K F J "% " #* #% / & #E " " % ; " & & 2 # / ; " & F 2 + M A "#E#?N# "+ & #N?#J J # "% " #* % & "& #% CD#E " % * C6 D% * C DF % / & F F J#J

Le Transactionnel dans JMS 84 Motivation &&!#""#" # 1 &#&!# 1#%)F4* #""#G # 1%#&"!! &F,## &&P &0 Q ""!!!#&"" API,,&,, " G. G;. G4!. G G; G4! G, G;, G4!,

Modèle Requête-Réponse (i) Request-Reply 85 Principe &-,"# ""% &#-! J- " ##" #! $- " ##0&#" #!#&!#!&)* +++ Non explicitement supporter par JMS "F,0#0&!& &# # "!&! &!):* &"!#1#" 8 + 0 3!0&*!&! &"!# 1#" 8 + 0 *!&""0#& &&

Modèle Requête-Réponse (ii) 86!# 1"!& #J)&;#F,* (( &&"# "# A' ' ) A) %% & & ## * *.. / /!!# # % % / / (( &&"#5 "#5.. / /!!#5 #5 % % / / A'.. "" ' * * #< #< ;!&! #&;!!& W ) A)

Modèle Requête-Réponse (ii) 87 ( ( & & "# "# ' %% & & ## * *.. / /!!# # % % / /.. ""

Modèle Requête-Réponse (ii) 88 ( ( & & "# "# A' %% & & ## * *.. / /!!# # % % / / A'.. "" ' * * <

Modèle Requête-Réponse (ii) 89 %% & & ## * * ( ( & & "# "# ) A) (( &&"#5 "#5.. / /!!#5 #5 % % / /.. "" * * < ) A)

Modèle Requête-Réponse (iii) 90!# 1"!&#$)&4!#F,* %% & & ## * * (( &&"# "# + + Q A % % / / && # # &&"" ' A Q * * #< #< " ' ' ' &X 1!%& #0! * * P * * O

Modèle Requête-Réponse (iii) 91 3 7 3 && "!&#&"#'&#-! &0!&& &# & 3! 0 " % 3! 0 " % # 1#&! +!+ % 0"!&%&!% " &0!&&

Les Destinations Temporaires 92 %6!! 0%!&0 #&## 1 '#!&!#)!%*!'!&%#!""!&!"&!&"#'&-!)!! '(0-) 0# 0%! 0!% 1 # %60# 0%! 0!% 1 #

Ce que JMS n adresse pas 94 En tant qu API Client, JMS n adresse pas #"#!# R&% # 4&!M#!#" F,0!#!M#0")!*#" & # #0 80# 1# 1"!#! &#" '" F,"&!" +, F,M&!&0#&& 1 #" &#!!&" Extensions proposées par des éditeurs de MOM 4!#G 5 7

95 Produits JMS Open Source ou Free F )=+<%&*!((///+%6/%+ (6"!F,!((!6"+ &%+ ( F,)!2 F,*!((///+6#%"+ G"&&!((///+ "&&+ ( Vendeurs.(,5 )!((///+0+"* &&!- F,,"+ <", 8 &!,0/,<,0/+,03 #+,!,0+)0"& 4& 5#+*,)F ;*,!,/0; C,0/!

96 JMS dans J2EE Partie intégrante de J2EE/EJB F8#%6#" F4G, F -

Bibliographie Généralités 97 P.A. Bernstein, E. Newcomer, «Principles of Transaction Processing for the Systems Professional», Ed. Morgan Kaufmann, 1997, ISBN 1-55860-415-4. (-1"(, $23) Patrick Th. Eugster, Pascal A. Felber, Rachid Guerraoui, Anne-Marie Kermarrec, The many faces of publish/subscribe, ACM Computing Surveys, Vol 35, No. 2, June 2003, pp. 114 131. Dave Chappell, Enterprise Service Bus, Pub O'Reilly, June 2004, ISBN 0-596-00675-6, 274 pages

Bibliographie orienté Programmation 98 Alan Dickman, «Designing Applications With Msmq : Message Queuing for Developers», (August 1998), Addison-Wesley Pub Co; ISBN: 0201325810 Neil Crane, «MSMQ From Scratch», 368 pages (December 7, 1999), Que Education & Training; ISBN: 0789721279 Rhys Lewis, «Advanced Messaging Applications with MSMQ and MQSeries», 1 edition (December 17, 1999), Que Education & Training; ISBN: 078972023X Nayan Ruparelia, «MQ Series Messaging», 400 pages (December 2000) Ed Manning Publications Company; ISBN: 1884777988 Alex Homer, David Sussman, «Professional MTS and MSMQ Programming with VB and ASP», Ed Wrox Press Inc, 512 pages (June 1998), ISBN: 1861001460; (-1"(, Scott Grant, Michael P. Kovacs, Meeraj Kunnumpurath, Silvano Maffeis, K. Scott Morrison, Gopalan Suresh Raj, Paul Giotta, «Professional JMS», March 2001, Wrox Press Inc; ISBN: 1861004931 Richard Monson-Haefel & David Chappell, Java Message Service, Oreilly, December 2000, ISBN 0-596-00068-5

Bibliographie Autres 99 Les spécifications JMS!((6++"(!#(6" Site du MOMA (MOM Association)!((///+""-+ Tutorial & 1 "!&#!0 P,24#Q#<!&,6!((///+!+"(Y!&(6(6Z&+"& Benchmark!((///+-+"(6(&!+0"W#[\DN