SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
APPLICATIONS RÉPARTIES
CHAPITRE 4 : MESSAGE ORIENTED
MIDDLEWARE (MOM) : JMS COMME
EXEMPLE
Mariem ZAOUALI
Les principes de base
TP 1: Design Patterns appliqués
aux systèmes distribués
01
Architectures réparties: du
client/serveur au Cloud
Computing
02
Objets répartis :
RMI/CORBA
TP 2: RMI
03
Intergiciels orientés
messages : JMS
TP 3: JMS
04
05
06
Plan du module
2
07
Frameworks Labs :
Spring et ASP
TP 4 : Architecture micro-
services
Architecture micro-
services : Spring et ASP
(Exposés)
Architecture
microservices: Spring
et ASP (Exposés)
Plan du cours
Motivation01
02
03
3
Présentation de JMS
Les modes d’envoi
04 Démo : ActiveMQ
MOTIVATION
Your Date Here Your Footer Here
1
4
Motivation
Your Date Here Your Footer Here 5
Alors que dans les technologies RPC telles que RMI ou CORBA il y a une
communication synchrone directe entre un objet client et un objet serveur,
JMS introduit une couche de médiation entre un ou plusieurs producteurs et
un ou plusieurs consommateurs.
Un producteur de message va créer un message et utiliser une
implémentation JMS pour l’envoyer.
• Un consommateur va en contrepartie lire le message (le consommer).
PRESENTATION DE JMS
Your Date Here Your Footer Here
2
6
Java Messaging Service
•JMS est une API standard de
Java EE (Enterprise Edition).
•Elle permet de fournir à java
une implémentation de MOM
(Message Oriented
Middleware) ou intergiciel de
communication par messages,
en quelque-sorte un service
de mail pour applications.
Your Date Here Your Footer Here 7
Java Messaging Service
L’usage de JMS dans l’entreprise
•Mode point à point de
circulation des documents :
Your Date Here Your Footer Here 8
•Mode de communication par les
alertes à plusieurs destinataires
(informations de bourse à des
courtiers, ou bien des anomalies
réseau en télécommunications…)
Your Date Here Your Footer Here 9
Java Messaging Service
L’usage de JMS dans l’entreprise
Java Messaging Service
Communication à plusieurs
•Alors que dans les
technologies RPC telles que
RMI ou CORBA il y a une
communication synchrone
directe entre un objet client et
un objet serveur
•JMS introduit une couche de
médiation entre un ou
plusieurs producteurs et un ou
plusieurs consommateurs
Your Date Here Your Footer Here 10
Java Messaging Service
Communication à plusieurs
Your Date Here Your Footer Here 11
JMS RPC (RMI, CORBA etc)
Un producteur de message va créer un
message et utiliser une
implémentation JMS pour l’envoyer.
Un consommateur va en contrepartie
lire le message (le consommer).
Une communication RPC nécessitera de
nombreux liens point à point entre
clients et serveurs
Attention à ne plus parler de clients et de
serveurs pour les consommateurs
et les producteurs, car en quelque sorte
tous les producteurs et
consommateurs sont vus comme des
clients par le courtier (“broker”)
JMS
Java Messaging Service
Communication à plusieurs
Your Date Here Your Footer Here 12
VS
Java Messaging Service
Communication à plusieurs
Your Date Here Your Footer Here 13
La communication s’établira au travers
de deux segments : par exemple
entre A et B, A établira une
communication avec le courtier JMS,
ensuite B
fera de même, à un instant pouvant
être différé. (asynchrone)
Java Messaging Service
Communication à plusieurs
Your Date Here Your Footer Here 14
Le courtier peut en effet stocker des
messages de façon persistante
(comme la notion de la boîte à lettres)
La boîte à lettre est dite dans JMS
Destination qui peut avoir deux
types Queue ou Topic, selon que
l’on est en mode point à point ou en
diffusion
LES MODES D’ENVOI
Your Date Here Your Footer Here
3
15
Mode d’envoi
•Un mode de communication en point à point avec un
stockage temporaire dans une boîte aux lettre
appelée Queue, où un producteur va déposer un
message lu ultérieurement par un consommateur
•Un mode communication par événements, ou en
mode publication/ abonnement
(“publish/subscribe”), où 0 ou plusieurs
consommateurs écoutent sur un même canal de
diffusion appelé Topic, alimenté par un ou plusieurs
producteurs.
Your Date Here Your Footer Here 16
Mode d’envoi
Destinations
Envoi avec JMS Envoi avec TCP, UDP
Les destinations de type
Queue ou Topic évitent au
producteur et au
consommateur de connaître
leurs adresses respectives
Elles assurent la transparence
de localisation
Echange uniquement des
informations sous forme de
messages.
Avec les sockets, on doit
connaître
le port et le nom des
machines pour communiquer.
Les modèles RPC (CORBA,
RMI, SOAP, ...), on partage des
interfaces
Your Date Here Your Footer Here 17
Mode d’envoi
Notion de connexion et de session
•La connexion assure la fiabilité :
• Lorsque l’on utilise des sockets, un mode
connecté précise que le client et le serveur doivent
échanger une poignée de main (handshake) avant
de rentrer en communication.
Ce protocole assure que les deux parties sont
disponibles au moment de la communication.
Your Date Here Your Footer Here 18
La connexion JMS joue exactement ce rôle :
elle assure la fiabilité entre un client JMS et
son courtier, et l’on peut récupérer les
exceptions si la connexion est défaillante.
Mode d’envoi
Connexion : ConnectionFactory
•Pour envoyer un message, il faut disposer d’une
ConnectionFactory, et connaître d’autre part le
nom d’une destination, Queue ou Topic
La ConnectionFactory utilise le design pattern de
la fabrique et permet plusieurs connexions
concurrentes.
Your Date Here Your Footer Here 19
Pourquoi on utilise une ConnectionFactory?
• Elle encapsule tous les paramètres d’initialisation de la
connexion.
• La fabrique permet alors aux clients JMS de disposer
d’une configuration pré-établie puisque la fabrique
contient les paramètres d’initialisation
Mode d’envoi
Connexion : ConnectionFactory
•La ConnectionFactory peut provenir d’un
annuaire JNDI ou être crée à partir de paramètres
de configuration.
• La destination peut également être stockée dans
un annuaire JNDI.
Your Date Here Your Footer Here 20
Mode d’envoi
Session et QoS
•La connexion assure la Qualité de service (QoS):
• Une connexion peut ouvrir plusieurs sessions
•Une session est définie à l’intérieur d’une connexion
comme une délimitation temporelle permettant de
grouper des envois ou des réceptions de messages
avec des propriétés spécifiques :
• mode transactionnel ou non, priorités des messages,
séquence des messages, gestion des accusés de
réception.
Your Date Here Your Footer Here 21
DÉMO
Your Date Here Your Footer Here
4
22
JMS provider
Your Date Here Your Footer Here 23
Les scénarios
•Dans JMS, un Topic implémente la sémantique de
publication et d'abonnement. Lorsque vous
publiez un message, il est envoyé à tous les
abonnés (subscribers) intéressés.
•un à plusieurs abonnés recevront une copie du
message..
Your Date Here Your Footer Here 24
Les scénarios
•Une Queue JMS est une destination 1 à 1 des
messages.
•Les messages envoyés dans Queue sont stockés
sur disque ou en mémoire jusqu'à ce que
quelqu'un les récupère ou expire..
Your Date Here Your Footer Here 25
JMS provider
Your Date Here Your Footer Here 26
JMS provider
•Décompressez le package dans un répertoire de
votre choix
•Accédez au répertoire bin du répertoire ainsi
décompressé
•Lancer activemq.bat start
Your Date Here Your Footer Here 27
JMS provider
•Félicitations ! Tu as lancé activemq
•Consultez la page http://localhost:8161/admin/
•Username et mdp : admin
Your Date Here Your Footer Here 28
ActiveMQ : live demo
•Fork your repo from my github!
•https://github.com/MariemZaouali/queue_test
Your Date Here Your Footer Here 29
Exercice
•Créer un projet hello world simulant un Topic
avec Activemq
•Une inspiration
(https://github.com/tomitribe/JMS-1.1-PubSub-
Queue-Example-with-ActiveMQ)
Your Date Here Your Footer Here 30
THANK YOU!
Do you have any questions?
31

Contenu connexe

Tendances

Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Heithem Abbes
 
Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI JavaZakaria Bouazza
 
Chp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOAChp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOALilia Sfaxi
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EEInes Ouaz
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes LogicielsGhazouani Mahdi
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services WebLilia Sfaxi
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les basesAntoine Rey
 
Angular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTAngular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTtayebbousfiha1
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partageraliagadir
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesLilia Sfaxi
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 

Tendances (20)

Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI Java
 
Chp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOAChp1- Introduction aux Technologies Web et SOA
Chp1- Introduction aux Technologies Web et SOA
 
Sockets
SocketsSockets
Sockets
 
Rapport Sockets en Java
Rapport Sockets en JavaRapport Sockets en Java
Rapport Sockets en Java
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
TP2 RMI
TP2 RMITP2 RMI
TP2 RMI
 
Introduction JavaEE
Introduction JavaEEIntroduction JavaEE
Introduction JavaEE
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes Logiciels
 
Chp3 - Les Services Web
Chp3 - Les Services WebChp3 - Les Services Web
Chp3 - Les Services Web
 
Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les bases
 
Angular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTAngular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHT
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Observer pattern
Observer patternObserver pattern
Observer pattern
 
Spring Boot RestApi.pptx
Spring Boot RestApi.pptxSpring Boot RestApi.pptx
Spring Boot RestApi.pptx
 
Chp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées ServicesChp2 - Vers les Architectures Orientées Services
Chp2 - Vers les Architectures Orientées Services
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 

Similaire à Cours 4 intergiciels orientes messages jms

Architecture orientée message.pdf
Architecture orientée message.pdfArchitecture orientée message.pdf
Architecture orientée message.pdfSamirBoulguant1
 
Ch3_Couche application.pptx
Ch3_Couche application.pptxCh3_Couche application.pptx
Ch3_Couche application.pptxOthmaneMansouri1
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_servicesCamus LANMADOUCELO
 
Etat de l’art des communications basées sur Mach (1995)
Etat de l’art des communications basées sur Mach (1995)Etat de l’art des communications basées sur Mach (1995)
Etat de l’art des communications basées sur Mach (1995)Julien SIMON
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
ITN_Module_3.pptx
ITN_Module_3.pptxITN_Module_3.pptx
ITN_Module_3.pptxserieux1
 
Wm674 g formation-ibm-websphere-message-broker-v8-developpement-d-application...
Wm674 g formation-ibm-websphere-message-broker-v8-developpement-d-application...Wm674 g formation-ibm-websphere-message-broker-v8-developpement-d-application...
Wm674 g formation-ibm-websphere-message-broker-v8-developpement-d-application...CERTyou Formation
 
CTT La suite Collaborative Zimbra
CTT La suite Collaborative ZimbraCTT La suite Collaborative Zimbra
CTT La suite Collaborative ZimbraChiheb Ouaghlani
 
Fonctionnement du-courrier-electronique-mta-mda-mua-172-k8qjjn
Fonctionnement du-courrier-electronique-mta-mda-mua-172-k8qjjnFonctionnement du-courrier-electronique-mta-mda-mua-172-k8qjjn
Fonctionnement du-courrier-electronique-mta-mda-mua-172-k8qjjnhamidlahrach
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services webCHOUAIB EL HACHIMI
 
2011-12-04 ASIP Santé RIR "Le projet de service de messagerie sécurisée de sa...
2011-12-04 ASIP Santé RIR "Le projet de service de messagerie sécurisée de sa...2011-12-04 ASIP Santé RIR "Le projet de service de messagerie sécurisée de sa...
2011-12-04 ASIP Santé RIR "Le projet de service de messagerie sécurisée de sa...ASIP Santé
 
Architecture sap web AS
Architecture sap web ASArchitecture sap web AS
Architecture sap web ASMrabtei Ayoub
 

Similaire à Cours 4 intergiciels orientes messages jms (20)

Architecture orientée message.pdf
Architecture orientée message.pdfArchitecture orientée message.pdf
Architecture orientée message.pdf
 
Ch3_Couche application.pptx
Ch3_Couche application.pptxCh3_Couche application.pptx
Ch3_Couche application.pptx
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services
 
Etat de l’art des communications basées sur Mach (1995)
Etat de l’art des communications basées sur Mach (1995)Etat de l’art des communications basées sur Mach (1995)
Etat de l’art des communications basées sur Mach (1995)
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
ITN_Module_3.pptx
ITN_Module_3.pptxITN_Module_3.pptx
ITN_Module_3.pptx
 
8-socket.pdf
8-socket.pdf8-socket.pdf
8-socket.pdf
 
Wm674 g formation-ibm-websphere-message-broker-v8-developpement-d-application...
Wm674 g formation-ibm-websphere-message-broker-v8-developpement-d-application...Wm674 g formation-ibm-websphere-message-broker-v8-developpement-d-application...
Wm674 g formation-ibm-websphere-message-broker-v8-developpement-d-application...
 
Acs chap 1
Acs chap 1Acs chap 1
Acs chap 1
 
Soap
SoapSoap
Soap
 
CTT La suite Collaborative Zimbra
CTT La suite Collaborative ZimbraCTT La suite Collaborative Zimbra
CTT La suite Collaborative Zimbra
 
SSL.TLS.pptx
SSL.TLS.pptxSSL.TLS.pptx
SSL.TLS.pptx
 
Hmailserver
HmailserverHmailserver
Hmailserver
 
Chapitre 1.pdf
Chapitre 1.pdfChapitre 1.pdf
Chapitre 1.pdf
 
Informatique Mobile d'Entreprise
Informatique Mobile d'EntrepriseInformatique Mobile d'Entreprise
Informatique Mobile d'Entreprise
 
Fonctionnement du-courrier-electronique-mta-mda-mua-172-k8qjjn
Fonctionnement du-courrier-electronique-mta-mda-mua-172-k8qjjnFonctionnement du-courrier-electronique-mta-mda-mua-172-k8qjjn
Fonctionnement du-courrier-electronique-mta-mda-mua-172-k8qjjn
 
Architecture réparties et les services web
Architecture réparties et les services webArchitecture réparties et les services web
Architecture réparties et les services web
 
2011-12-04 ASIP Santé RIR "Le projet de service de messagerie sécurisée de sa...
2011-12-04 ASIP Santé RIR "Le projet de service de messagerie sécurisée de sa...2011-12-04 ASIP Santé RIR "Le projet de service de messagerie sécurisée de sa...
2011-12-04 ASIP Santé RIR "Le projet de service de messagerie sécurisée de sa...
 
Protocole Diameter
Protocole DiameterProtocole Diameter
Protocole Diameter
 
Architecture sap web AS
Architecture sap web ASArchitecture sap web AS
Architecture sap web AS
 

Plus de Mariem ZAOUALI

Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonMariem ZAOUALI
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Mariem ZAOUALI
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numériqueMariem ZAOUALI
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en pythonMariem ZAOUALI
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en pythonMariem ZAOUALI
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en pythonMariem ZAOUALI
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à pythonMariem ZAOUALI
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliquesMariem ZAOUALI
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de baseMariem ZAOUALI
 
TP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabTP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabMariem ZAOUALI
 
Comment retrouver la forme récursive
Comment retrouver la forme récursiveComment retrouver la forme récursive
Comment retrouver la forme récursiveMariem ZAOUALI
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieMariem ZAOUALI
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieMariem ZAOUALI
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Mariem ZAOUALI
 

Plus de Mariem ZAOUALI (17)

Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en python
 
Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers Chap6 Manipulation des fichiers
Chap6 Manipulation des fichiers
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en python
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliques
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de base
 
TP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec MatlabTP1 Traitement d'images Génie Logiciel avec Matlab
TP1 Traitement d'images Génie Logiciel avec Matlab
 
Comment retrouver la forme récursive
Comment retrouver la forme récursiveComment retrouver la forme récursive
Comment retrouver la forme récursive
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / Tunisie
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / Tunisie
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / Tunisie
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / Tunisie
 
Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia Graduation Project Presentation _ INSAT Tunisia
Graduation Project Presentation _ INSAT Tunisia
 

Cours 4 intergiciels orientes messages jms

  • 1. APPLICATIONS RÉPARTIES CHAPITRE 4 : MESSAGE ORIENTED MIDDLEWARE (MOM) : JMS COMME EXEMPLE Mariem ZAOUALI
  • 2. Les principes de base TP 1: Design Patterns appliqués aux systèmes distribués 01 Architectures réparties: du client/serveur au Cloud Computing 02 Objets répartis : RMI/CORBA TP 2: RMI 03 Intergiciels orientés messages : JMS TP 3: JMS 04 05 06 Plan du module 2 07 Frameworks Labs : Spring et ASP TP 4 : Architecture micro- services Architecture micro- services : Spring et ASP (Exposés) Architecture microservices: Spring et ASP (Exposés)
  • 3. Plan du cours Motivation01 02 03 3 Présentation de JMS Les modes d’envoi 04 Démo : ActiveMQ
  • 4. MOTIVATION Your Date Here Your Footer Here 1 4
  • 5. Motivation Your Date Here Your Footer Here 5 Alors que dans les technologies RPC telles que RMI ou CORBA il y a une communication synchrone directe entre un objet client et un objet serveur, JMS introduit une couche de médiation entre un ou plusieurs producteurs et un ou plusieurs consommateurs. Un producteur de message va créer un message et utiliser une implémentation JMS pour l’envoyer. • Un consommateur va en contrepartie lire le message (le consommer).
  • 6. PRESENTATION DE JMS Your Date Here Your Footer Here 2 6
  • 7. Java Messaging Service •JMS est une API standard de Java EE (Enterprise Edition). •Elle permet de fournir à java une implémentation de MOM (Message Oriented Middleware) ou intergiciel de communication par messages, en quelque-sorte un service de mail pour applications. Your Date Here Your Footer Here 7
  • 8. Java Messaging Service L’usage de JMS dans l’entreprise •Mode point à point de circulation des documents : Your Date Here Your Footer Here 8
  • 9. •Mode de communication par les alertes à plusieurs destinataires (informations de bourse à des courtiers, ou bien des anomalies réseau en télécommunications…) Your Date Here Your Footer Here 9 Java Messaging Service L’usage de JMS dans l’entreprise
  • 10. Java Messaging Service Communication à plusieurs •Alors que dans les technologies RPC telles que RMI ou CORBA il y a une communication synchrone directe entre un objet client et un objet serveur •JMS introduit une couche de médiation entre un ou plusieurs producteurs et un ou plusieurs consommateurs Your Date Here Your Footer Here 10
  • 11. Java Messaging Service Communication à plusieurs Your Date Here Your Footer Here 11 JMS RPC (RMI, CORBA etc) Un producteur de message va créer un message et utiliser une implémentation JMS pour l’envoyer. Un consommateur va en contrepartie lire le message (le consommer). Une communication RPC nécessitera de nombreux liens point à point entre clients et serveurs Attention à ne plus parler de clients et de serveurs pour les consommateurs et les producteurs, car en quelque sorte tous les producteurs et consommateurs sont vus comme des clients par le courtier (“broker”) JMS
  • 12. Java Messaging Service Communication à plusieurs Your Date Here Your Footer Here 12 VS
  • 13. Java Messaging Service Communication à plusieurs Your Date Here Your Footer Here 13 La communication s’établira au travers de deux segments : par exemple entre A et B, A établira une communication avec le courtier JMS, ensuite B fera de même, à un instant pouvant être différé. (asynchrone)
  • 14. Java Messaging Service Communication à plusieurs Your Date Here Your Footer Here 14 Le courtier peut en effet stocker des messages de façon persistante (comme la notion de la boîte à lettres) La boîte à lettre est dite dans JMS Destination qui peut avoir deux types Queue ou Topic, selon que l’on est en mode point à point ou en diffusion
  • 15. LES MODES D’ENVOI Your Date Here Your Footer Here 3 15
  • 16. Mode d’envoi •Un mode de communication en point à point avec un stockage temporaire dans une boîte aux lettre appelée Queue, où un producteur va déposer un message lu ultérieurement par un consommateur •Un mode communication par événements, ou en mode publication/ abonnement (“publish/subscribe”), où 0 ou plusieurs consommateurs écoutent sur un même canal de diffusion appelé Topic, alimenté par un ou plusieurs producteurs. Your Date Here Your Footer Here 16
  • 17. Mode d’envoi Destinations Envoi avec JMS Envoi avec TCP, UDP Les destinations de type Queue ou Topic évitent au producteur et au consommateur de connaître leurs adresses respectives Elles assurent la transparence de localisation Echange uniquement des informations sous forme de messages. Avec les sockets, on doit connaître le port et le nom des machines pour communiquer. Les modèles RPC (CORBA, RMI, SOAP, ...), on partage des interfaces Your Date Here Your Footer Here 17
  • 18. Mode d’envoi Notion de connexion et de session •La connexion assure la fiabilité : • Lorsque l’on utilise des sockets, un mode connecté précise que le client et le serveur doivent échanger une poignée de main (handshake) avant de rentrer en communication. Ce protocole assure que les deux parties sont disponibles au moment de la communication. Your Date Here Your Footer Here 18 La connexion JMS joue exactement ce rôle : elle assure la fiabilité entre un client JMS et son courtier, et l’on peut récupérer les exceptions si la connexion est défaillante.
  • 19. Mode d’envoi Connexion : ConnectionFactory •Pour envoyer un message, il faut disposer d’une ConnectionFactory, et connaître d’autre part le nom d’une destination, Queue ou Topic La ConnectionFactory utilise le design pattern de la fabrique et permet plusieurs connexions concurrentes. Your Date Here Your Footer Here 19 Pourquoi on utilise une ConnectionFactory? • Elle encapsule tous les paramètres d’initialisation de la connexion. • La fabrique permet alors aux clients JMS de disposer d’une configuration pré-établie puisque la fabrique contient les paramètres d’initialisation
  • 20. Mode d’envoi Connexion : ConnectionFactory •La ConnectionFactory peut provenir d’un annuaire JNDI ou être crée à partir de paramètres de configuration. • La destination peut également être stockée dans un annuaire JNDI. Your Date Here Your Footer Here 20
  • 21. Mode d’envoi Session et QoS •La connexion assure la Qualité de service (QoS): • Une connexion peut ouvrir plusieurs sessions •Une session est définie à l’intérieur d’une connexion comme une délimitation temporelle permettant de grouper des envois ou des réceptions de messages avec des propriétés spécifiques : • mode transactionnel ou non, priorités des messages, séquence des messages, gestion des accusés de réception. Your Date Here Your Footer Here 21
  • 22. DÉMO Your Date Here Your Footer Here 4 22
  • 23. JMS provider Your Date Here Your Footer Here 23
  • 24. Les scénarios •Dans JMS, un Topic implémente la sémantique de publication et d'abonnement. Lorsque vous publiez un message, il est envoyé à tous les abonnés (subscribers) intéressés. •un à plusieurs abonnés recevront une copie du message.. Your Date Here Your Footer Here 24
  • 25. Les scénarios •Une Queue JMS est une destination 1 à 1 des messages. •Les messages envoyés dans Queue sont stockés sur disque ou en mémoire jusqu'à ce que quelqu'un les récupère ou expire.. Your Date Here Your Footer Here 25
  • 26. JMS provider Your Date Here Your Footer Here 26
  • 27. JMS provider •Décompressez le package dans un répertoire de votre choix •Accédez au répertoire bin du répertoire ainsi décompressé •Lancer activemq.bat start Your Date Here Your Footer Here 27
  • 28. JMS provider •Félicitations ! Tu as lancé activemq •Consultez la page http://localhost:8161/admin/ •Username et mdp : admin Your Date Here Your Footer Here 28
  • 29. ActiveMQ : live demo •Fork your repo from my github! •https://github.com/MariemZaouali/queue_test Your Date Here Your Footer Here 29
  • 30. Exercice •Créer un projet hello world simulant un Topic avec Activemq •Une inspiration (https://github.com/tomitribe/JMS-1.1-PubSub- Queue-Example-with-ActiveMQ) Your Date Here Your Footer Here 30
  • 31. THANK YOU! Do you have any questions? 31