Modèle d’architecture ESB
Introduction
L'Enterprise Service Bus (ESB) a été conçu pour sécuriser et structurer les échanges au sein des systèmes d'information.
Cette technologie crée un flux d'information continu et fiable, facilitant l'intégration des applications et répondant aux besoins d'unification des échanges dans un contexte de multiplication des données et d'obsolescence des applications.
Successeur de l'Enterprise Application Integration (EAI), l'ESB s'est imposé face à la complexité croissante des SI, due à l'explosion de la mobilité et des solutions SaaS dans les années 2000.
Utilisant largement les services web, l'ESB permet de gérer les doublons d'applications, l'obsolescence des programmes et les échanges point à point.
Il s'inscrit aujourd'hui dans une Architecture Orientée Services (SOA), répondant aux besoins de flexibilité des entreprises.
Qu’est-ce qu'un ESB ?
L'ESB (Enterprise Service Bus) est une plate-forme d'intégration standardisée qui combine messagerie, services Web, transformation de données et routage intelligent, pour connecter et coordonner de manière fiable l'interaction d'un nombre important d'applications hétérogènes avec intégrité transactionnelle.
L'ESB est donc un modèle d'architecture logicielle qui permet de mettre en relation différentes applications qui n’ont pas été conçues pour fonctionner ensemble. C'est une méthode de médiation inter-applicative.
Une solution ESB utilise des services pour échanger des données. Les messages entre les composants sont transportés dans un Bus applicatif. L’ESB assure le transport, la standardisation, la consolidation et le partage des données.
Dans une architecture ESB, les applications sont connectées indirectement via ESB, plutôt que d'être directement connectées les unes aux autres.

Caractéristiques de l'ESB
En plus d'être basés sur des technologies standards telles que XML ou les services web, les outils ESB intègrent plusieurs caractéristiques communes.
Connectivité
L’intégration d’applications repose sur la connexion entre plusieurs environnements. Cloud, CRM, ERP et autres bases de données doivent pouvoir communiquer facilement avec le bus. La question de la compatibilité se pose.
Les outils ESB possèdent généralement une liste de connecteurs natifs. Ils simplifient les échanges entre les applications et logiciels métier.
Normes et standards
Déployer un ESB revient à homogénéiser le SI en s'appuyant sur des normes et des standards. On compte par exemple les services web parmi les standards utilisés par l'ESB. La majorité de ces outils sont construits sous XML ou JMS. Les protocoles d’échanges sont structurés en SOAP.
Exemples d'utilisation
Une entreprise de commerce électronique souhaite intégrer plusieurs systèmes pour améliorer l'efficacité de ses opérations. Ces systèmes incluent une plateforme de gestion des commandes, un système de gestion des stocks, une solution CRM (Customer Relationship Management), et une passerelle de paiement.
Systèmes à Intégrer
- Gestion des commandes
- Gestion des stocks
- CRM
- Passerelle de paiement
Ce système traite les commandes clients depuis leur réception jusqu'à leur expédition.
Ce système suit les niveaux de stock en temps réel et génère des alertes en cas de niveaux bas.
Le CRM gère les informations clients, incluant les historiques d'achat, les préférences et les interactions de support.
Ce système gère les transactions financières de manière sécurisée pour les paiements en ligne.
Problématiques Sans ESB
Sans l'utilisation d'un ESB, chaque système doit communiquer directement avec les autres. Cela engendre plusieurs défis :
- Communication fragmentée
- Complexité et duplication
- Incohérence des données
Chaque système doit établir et maintenir des connexions individuelles avec les autres systèmes, créant une architecture complexe et difficile à gérer.
Les intégrations point-à-point se multiplient, rendant la maintenance et les mises à jour plus complexes et coûteuses.
Les données peuvent devenir désynchronisées entre les systèmes, entraînant des erreurs et des incohérences.
Implémentation d'un ESB
Pour résoudre ces problèmes, l'entreprise décide de mettre en place un Enterprise Service Bus (ESB). L'ESB centralise et simplifie la communication entre les différents systèmes.
Composants clés de l'ESB
L’architecture ESB repose sur 4 fonctionnalités primordiales :
- Bus de communication
- Adaptateurs
- Moteur de transformation
- Moteur de routage
Le bus transporte les messages entre les différentes applications et services.
L'ESB (Enterprise Service Bus) permet à des applications utilisant différents protocoles de communication (SOAP, REST, JMS, etc.) d'échanger des données entre elles.
Il utilise des adaptateurs qui se chargent de faire la traduction entre les protocoles et formats de données spécifiques à chaque système individuel, afin de les connecter au bus de communication commun.
Il convertit les messages d'un format à un autre pour assurer la compatibilité entre les systèmes.
Ce composant aiguille la destination des messages en fonction des règles de routage définies.
Fonctionnement de l'ESB
Voici un exemple de fonctionnement de l'ESB :
- Nouvelle commande :
- Routage de la commande :
- Validation des stocks :
- Mise à Jour du CRM :
- Traitement du paiement :
Lorsqu'une commande est passée par un client, le système de gestion des commandes envoie les détails de la commande au bus de communication de l'ESB.
L'ESB achemine la commande au système de gestion des stocks pour vérifier la disponibilité des articles commandés.
Le système de gestion des stocks confirme la disponibilité des articles et envoie cette information via le bus à l'ESB.
L'ESB achemine les informations de commande au CRM pour que l'historique client soit mis à jour avec les nouvelles transactions.
Enfin, l'ESB achemine les détails de la commande à la passerelle de paiement pour traiter le paiement en ligne de manière sécurisée.
Avantages de l'ESB
L'utilisation d'un ESB apporte plusieurs avantages :
- Découplage des systèmes
- Simplification des intégrations
- Cohérence des données
- Scalabilité
Chaque système communique via l'ESB sans dépendre directement des autres, permettant ainsi une évolutivité et une flexibilité accrues.
La réduction des intégrations point-à-point simplifie la maintenance et les mises à jour des systèmes.
La centralisation des flux de données réduit le risque de désynchronisation, assurant ainsi la cohérence des informations entre les différents systèmes.
L'ajout de nouveaux systèmes ou services est facilité grâce aux adaptateurs supplémentaires connectés au bus.
Défis potentiels
Cependant, l'implémentation d'un ESB comporte également certains défis :
- Complexité initiale
- Surveillance et gestion
- Sécurité
La mise en place de l'ESB peut nécessiter des compétences spécialisées et une planification minutieuse.
Il est nécessaire de disposer d'outils de surveillance et de gestion pour contrôler les flux de messages et les performances du système.
Assurer la sécurité des données échangées via l'ESB est essentiel, surtout lorsque des informations sensibles telles que les détails de paiement sont en jeu.
En résumé, l'architecture de passerelle de service ESB permet de faciliter la communication entre des applications distribuées en utilisant des protocoles standards et en fournissant des mécanismes pour gérer les erreurs et la sécurité. Elle est particulièrement adaptée aux environnements hétérogènes où les applications sont développées avec différents langages de programmation et utilisent différents protocoles de communication.
Quoique non indispensable, un ESB n'en demeure pas moins une brique à forte valeur ajoutée dans le cadre d'une mise en place d'une architecture orientée service (SOA) mature.