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

Cours 4 intergiciels orientes messages jms

  • 1.
    APPLICATIONS RÉPARTIES CHAPITRE 4: MESSAGE ORIENTED MIDDLEWARE (MOM) : JMS COMME EXEMPLE Mariem ZAOUALI
  • 2.
    Les principes debase 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ésentationde JMS Les modes d’envoi 04 Démo : ActiveMQ
  • 4.
    MOTIVATION Your Date HereYour Footer Here 1 4
  • 5.
    Motivation Your Date HereYour 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 YourDate Here Your Footer Here 2 6
  • 7.
    Java Messaging Service •JMSest 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’usagede JMS dans l’entreprise •Mode point à point de circulation des documents : Your Date Here Your Footer Here 8
  • 9.
    •Mode de communicationpar 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 YourDate Here Your Footer Here 3 15
  • 16.
    Mode d’envoi •Un modede 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 avecJMS 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 deconnexion 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 etQoS •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 HereYour Footer Here 4 22
  • 23.
    JMS provider Your DateHere 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 QueueJMS 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 DateHere Your Footer Here 26
  • 27.
    JMS provider •Décompressez lepackage 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 : livedemo •Fork your repo from my github! •https://github.com/MariemZaouali/queue_test Your Date Here Your Footer Here 29
  • 30.
    Exercice •Créer un projethello 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 youhave any questions? 31