Ce guide explique de manière détaillée comment créer un bridge TIBCO EMS, pourquoi l’utiliser et comment l’intégrer dans une architecture ESB.
Qu’est-ce qu’un bridge TIBCO EMS ?
Lorsque l’on utilise le standard JMS, deux modèles de communication sont typiquement disponibles :
- Point-à-point (Queue / File) : un producteur, un consommateur. Chaque message est adressé à une unique file, et consommé par un seul client.
- Publication / Souscription (Topic) : un producteur publie dans un topic, et plusieurs abonnés peuvent recevoir le message. ce modèle est idéal pour une distribution de messages de type «broadcast».
Mais ces modèles seuls peuvent s’avérer limitants selon les besoins : on peut souhaiter mettre en place un système hybride, combinant les files et les topics, ou router un même message vers plusieurs destinataires de types différents. C’est là qu’intervient le concept de bridge dans TIBCO EMS.
Qu’est ce qu’un bridge finalement ?
Un « bridge » ou encore pont permet de configurer, au niveau du serveur EMS, la redirection automatique d’un message envoyé vers une destination source (topic ou queue) vers une ou plusieurs destinations cibles (topic ou queue). Ce mécanisme facilite l’architecture des flux JMS sans modifier la logique applicative.
Pourquoi utiliser un bridge ?
- Permettre qu’un message soit livré à plusieurs consommateurs. Même si certains consomment via queue, d’autres via topic, le point d’entrée reste unique.
- Implémenter un modèle « publication/subscription + queue » : par exemple, un producteur publie sur un topic, tandis que certaines applications consomment via des queues.
- Simplifier la logique applicative : le routage des messages (vers plusieurs destinations, sélection par filtre, typologie queue/topic) est géré par le serveur EMS et non par le code métier.
- Mettre en place des routes de message inter-systèmes, ou organiser des architectures modulaires avec un couplage très faible.
Comportement & particularités des bridges EMS
- Un bridge peut relier un topic vers une queue/topic, ou une queue vers une autre queue/topic. docs.tibco.com
- Une même source peut être bridgée vers plusieurs destinations. docs.tibco.com
- Il est possible d’utiliser des wildcards pour la source (par exemple
topic:foo.*) afin de créer des bridges dynamiques pour plusieurs destinations. docs.tibco.com - Les messages sont copiés vers les destinations cibles. Chaque destination reçoit sa propre copie, avec un nouvel identifiant de message. docs.tibco.com
- Les bridges ne sont pas translatifs : un message envoyé à la source ira uniquement vers les destinations directement liées. Si la destination cible elle-même est source d’un autre bridge, le message n’est pas automatiquement retransmis. docs.tibco.com
- Le filtrage via
selectorpermet d’envoyer des messages à des cibles spécifiques selon des critères (propriétés JMS, etc.), ce qui réduit le bruit et évite une consommation inutile.
Bonnes pratiques & points de vigilance
- Utiliser des topics comme sources dans la majorité des cas, surtout si on veut diffuser à plusieurs destinations puis « bridger » vers des queues pour le traitement ou la persistance. Ceci offre un bon compromis entre flexibilité et durabilité. docs.tibco.com
- Attention aux doublons : si plusieurs bridges couvrent le même message (par exemple via des wildcards qui se recouvrent), le même message peut être livré plusieurs fois à une destination. Ce qui peut poser des problèmes selon la logique métier. docs.tibco.com
- Si votre destination cible est lente à consommer les messages, pensez à activer le flow control sur les deux côtés (source et cible) pour éviter surcharge ou perte de messages.
- Garder la configuration des bridges séparée (via
bridges.conf) peut simplifier la maintenance, surtout dans un contexte d’infrastructure (infra as code, gestion de configuration, versioning…).
Création des destinations
Voici un exemple de création des topics et queues nécessaires :
create topic T.ATTENTAT
create topic T.ENLEVEMENT
create queue Q.POPULATION1
create queue Q.POPULATION2
Créer un bridge
La syntaxe générale dans tibemsadmin est la suivante :
create bridge source=<type>:<sourceName> target=<type>:<targetName> [selector="..."]
Exemple complet avec filtrage :
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'"
Schéma de l’exemple (routage avec selectors)
Le schéma ci-dessous représente le fonctionnement du bridge entre les topics T.ATTENTAT, T.ENLEVEMENT et les queues Q.POPULATION1 / Q.POPULATION2.

Bonnes pratiques
- Utiliser des topics comme sources si plusieurs cibles existent.
- Employer des selectors pour éviter le bruit applicatif.
- Externaliser la configuration dans
bridges.conf. - Activer le flow control pour les consommateurs lents.
- Éviter les recouvrements de wildcards qui créent des doublons.
Conclusion
Les bridges TIBCO EMS sont un outil essentiel pour concevoir des architectures de messagerie fluides, performantes et hautement modulaires. Ils permettent un routage intelligent sans complexité supplémentaire dans les applications clientes.