Mise en place d’un Bridge.
Bienvenue une fois de plus dans ce nouveau tutoriel pratique pas à pas.
Si la notion de Bridge vous intéresse c’est que vous avez déjà des connaissances sur le standard JMS. Et que vous avez probablement rencontré des limites avec la définition classique de vos files JMS ou de vos topics.
Le bridge permet en effet de surmonter les limitations de la file JMS ou des topics. A cet effet il permet de créer une sorte de pont entre les destinations de types différents ou de même type. On va ainsi créer un système de distribution de messages hybride. Avec ce système il sera alors possible pour un message donné, d’avoir une ou plusieurs destinations. Vous pouvez donc regrouper les destinataires en fonction des sujets d’intérêt (messages sélectifs). Et aussi si on le souhaite en fonction du mode de consommation (push ou pop).
Pour aller plus loin, je vous rappelle ici le standard JMS qui permet de mettre en œuvre 2 modèles de consommation des messages.
Point à Point ou pont à pont
Le premier modèle est en effet le modèle point à point, et c’est le modèle le plus connu et aussi le plus utilisé. Dans ce modèle nous avons 2 entités. Un ou plusieurs producteurs et un seul et unique consommateur. Les 2 entités communiquent au travers d’une file (queue). Chaque message consommé doit impérativement faire l’objet d’une confirmation ou acquittement. Cette confirmation par défaut est implémentée implicitement par le client consommateur. Sinon le message doit être confirmé explicitement pour être supprimé de la file. Sur le principe la communication peut être synchrone ou asynchrone.
Publish subscriber ou Publication souscription
Ce modèle est utilisé pour envoyer des messages de type broadcast c’est-à-dire un producteur peut envoyer un message à un ou plusieurs consommateurs au travers d’un topic. C’est le cas typique d’un service de météorologie qui publie dans un topic la météo à destination de tous les clients qui se sont abonnés au sujet de la météo.
Dans quel cas utiliser l’une ou autre des solutions ?
Un bridge va permettre de créer un modèle hybride entre les type de communication point à point et le modèle de publication/souscription.
Problème
Une agence gouvernementale décide de communiquer avec ses différents partenaires via l’utilisation des listes de diffusion de type queues et topic. Pour cela, Tous les partenaires ne sont pas habilités au même niveau de secret et ne doivent donc pas accéder à la même information. Les informations sont codifiées selon les niveaux de criticité suivants : Attentat, Enlèvement, Séisme, Tempête.
– En interne (G1) on doit être informé de tous les événements indépendants de la criticité.
– A l’extérieur (G2), les partenaires doivent être informés des événements qui concernent les Attentats et Enlèvements.
– Les populations (G3) doivent être informés de la tempête de G4 du séisme.
Solution
Nous allons donc créer un pont avec les informations suivantes. 2 topics (T.ATTENTAT et T.ENLEVEMENT) et 2 queues (Q.POPULATION1 et Q.POPULATION2).
Mise en œuvre
Voici les étapes pratiques de notre article:
- Démarrer le serveur EMS. Pour cela, il faut se rendre dans le dossier d’installation de l’EMS, puis exécuter le fichier : tibemsd.sh. En cas d’erreur, vérifier la configuration du fichier …./tibco/cfgmgmt/ems/data/tibemsd.conf.
./tibemsd.sh
- Démarrer l’interface d’administration TIBCO pour pouvoir se connecter au serveur EMS.
./tibemsadmin64
- Se connecter au serveur EMS
connect tcp://localhost:7222
- créer en suite les entités d’intérêt à savoir queues et topics.
create topic T.ATTENTAT create topic T.ENLEVEMENTdelete create queue Q.POPULATION1 create queue Q.POPULATION2 create bridge source=topic:T.ATTENTAT target=topic:T.ENLEVEMENT create bridge source=topic:T.ATTENTAT target=queue:Q.POPULATION1 selector="sujet=P1" create bridge source=topic:T.ATTENTAT target=queue:Q.POPULATION2 selector="sujet=P2"
Récapitulatif
Références:
[1] – https://github.com/TIBCOSoftware/bw6-plugin-maven/releases
[2] – https://www.tibco.com/resources/datasheet/tibco-businessworks-container-edition
[3] – https://miaffo.net/installation-des-produits-tibco-businessworks-5-partie-1