SlideShare une entreprise Scribd logo
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

Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
Heithem Abbes
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
Lilia Sfaxi
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
Heithem Abbes
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
ENSET, Université Hassan II Casablanca
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
ENSET, Université Hassan II Casablanca
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
Heithem Abbes
 
Sockets
SocketsSockets
Sockets
Heithem Abbes
 
chapitre 6 Android 2.pptx
chapitre 6 Android 2.pptxchapitre 6 Android 2.pptx
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
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
Lilia 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 Services
Lilia Sfaxi
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
Lilia Sfaxi
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
ENSET, Université Hassan II Casablanca
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
ENSET, Université Hassan II Casablanca
 
JNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory InterfacesJNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory Interfaces
benouini rachid
 
Rapport projet final system reparti
Rapport projet final system repartiRapport projet final system reparti
Rapport projet final system reparti
Cheikh Tidiane DIABANG
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
DNG Consulting
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
Lilia Sfaxi
 
Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI JavaZakaria Bouazza
 

Tendances (20)

Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
eServices-Tp2: bpel
eServices-Tp2: bpeleServices-Tp2: bpel
eServices-Tp2: bpel
 
Servlets et JSP
Servlets et JSPServlets et JSP
Servlets et JSP
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Support Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFISupport Web Services SOAP et RESTful Mr YOUSSFI
Support Web Services SOAP et RESTful Mr YOUSSFI
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 
Sockets
SocketsSockets
Sockets
 
chapitre 6 Android 2.pptx
chapitre 6 Android 2.pptxchapitre 6 Android 2.pptx
chapitre 6 Android 2.pptx
 
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
 
Tp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPELTp3 - Application SOA avec BPEL
Tp3 - Application SOA avec BPEL
 
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
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
JNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory InterfacesJNDI Java Naming Derectory Interfaces
JNDI Java Naming Derectory Interfaces
 
Rapport projet final system reparti
Rapport projet final system repartiRapport projet final system reparti
Rapport projet final system reparti
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
eServices-Tp1: Web Services
eServices-Tp1: Web ServiceseServices-Tp1: Web Services
eServices-Tp1: Web Services
 
Introduction aux-sockets
Introduction aux-socketsIntroduction aux-sockets
Introduction aux-sockets
 
Présentation de RMI Java
Présentation de RMI JavaPrésentation de RMI Java
Présentation de RMI Java
 

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.pdf
SamirBoulguant1
 
Ch3_Couche application.pptx
Ch3_Couche application.pptxCh3_Couche application.pptx
Ch3_Couche application.pptx
OthmaneMansouri1
 
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 php
Gautier DUMAS
 
ITN_Module_3.pptx
ITN_Module_3.pptxITN_Module_3.pptx
ITN_Module_3.pptx
serieux1
 
8-socket.pdf
8-socket.pdf8-socket.pdf
8-socket.pdf
StyvePola1
 
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
 
Acs chap 1
Acs chap 1Acs chap 1
Acs chap 1
sabinhino
 
Soap
SoapSoap
CTT La suite Collaborative Zimbra
CTT La suite Collaborative ZimbraCTT La suite Collaborative Zimbra
CTT La suite Collaborative Zimbra
Chiheb Ouaghlani
 
SSL.TLS.pptx
SSL.TLS.pptxSSL.TLS.pptx
SSL.TLS.pptx
kohay75604
 
Informatique Mobile d'Entreprise
Informatique Mobile d'EntrepriseInformatique Mobile d'Entreprise
Informatique Mobile d'Entreprise
Sébastien Letélié
 
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
hamidlahrach
 
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
CHOUAIB 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 AS
Mrabtei 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 python
Mariem 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érique
Mariem ZAOUALI
 
Chap4 Récursivité en python
Chap4 Récursivité en pythonChap4 Récursivité en python
Chap4 Récursivité en python
Mariem ZAOUALI
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en python
Mariem ZAOUALI
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
Mariem ZAOUALI
 
Chap1 Introduction à python
Chap1 Introduction à pythonChap1 Introduction à python
Chap1 Introduction à python
Mariem ZAOUALI
 
Tp1 design patternappliques
Tp1 design patternappliquesTp1 design patternappliques
Tp1 design patternappliques
Mariem ZAOUALI
 
Cours 1 les principes de base
Cours 1 les principes de baseCours 1 les principes de base
Cours 1 les principes de base
Mariem 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 Matlab
Mariem ZAOUALI
 
Comment retrouver la forme récursive
Comment retrouver la forme récursiveComment retrouver la forme récursive
Comment retrouver la forme récursive
Mariem 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 / Tunisie
Mariem ZAOUALI
 
TP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / TunisieTP4 Atelier C++ /GL2 INSAT / Tunisie
TP4 Atelier C++ /GL2 INSAT / Tunisie
Mariem ZAOUALI
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / Tunisie
Mariem ZAOUALI
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / Tunisie
Mariem ZAOUALI
 
TP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / TunisieTP1 Atelier C++/ GL2 INSAT / Tunisie
TP1 Atelier C++/ GL2 INSAT / Tunisie
Mariem 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
 

Dernier

Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Institut de l'Elevage - Idele
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Institut de l'Elevage - Idele
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
imed53
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
Institut de l'Elevage - Idele
 
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
sieousse95
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Institut de l'Elevage - Idele
 
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Alternative - Complément  au Tramway et 3ème lien de la ville de Québec  Alternative - Complément  au Tramway et 3ème lien de la ville de Québec
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Daniel Bedard
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
Institut de l'Elevage - Idele
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
Institut de l'Elevage - Idele
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
Institut de l'Elevage - Idele
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
Institut de l'Elevage - Idele
 

Dernier (11)

Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
 
Accompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de productionAccompagner les éleveurs dans l'analyse de leurs coûts de production
Accompagner les éleveurs dans l'analyse de leurs coûts de production
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
 
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
 
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...Leviers d’adaptation au changement climatique, qualité du lait et des produit...
Leviers d’adaptation au changement climatique, qualité du lait et des produit...
 
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Alternative - Complément  au Tramway et 3ème lien de la ville de Québec  Alternative - Complément  au Tramway et 3ème lien de la ville de Québec
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
 
Accompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermièreAccompagner les porteurs de projets en transformation fermière
Accompagner les porteurs de projets en transformation fermière
 
Reconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la fermeReconquête de l’engraissement du chevreau à la ferme
Reconquête de l’engraissement du chevreau à la ferme
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
 
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivoresCOUPROD Une méthode nationale commune à l’ensemble des filières herbivores
COUPROD Une méthode nationale commune à l’ensemble des filières herbivores
 

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