Mise en place d’un Bridge avec TIBCO EMS

Interface Gem - Tutoriels ESB miaffo.net

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.

QUEUE TOPIC Tutoriels ESB miaffo.net
QUEUE TOPIC Tutoriels ESB miaffo.net

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).

Bridge miaffo.net tutoriels ESB
Bridge miaffo.net tutoriels ESB

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

Interface Gem - Tutoriels ESB miaffo.net
Interface Gem – Tutoriels ESB miaffo.net

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *