Software Architecture and Enterprise Integration · notes
Voir tous les documents en génie logiciel
Fiche de révisionRésumé
Rédigée à partir de ce document, puis vérifiée avant publication.
Cette conférence porte sur le concept d'Enterprise Service Bus (ESB), son rôle dans l'intégration des systèmes d'information d'entreprise, ainsi qu'une étude comparative avec d'autres approches telles que l'EAI et la SOA. Elle s'inscrit dans un cours sur les architectures logicielles et les systèmes d'information.
Lorsqu'un utilisateur se connecte à son interface bancaire, plusieurs informations sont affichées : son nom, son solde, ses cartes de crédit ou de débit, une liste de ses transactions récentes, ainsi qu'un chiffre indiquant le nombre de connexions. Ces données proviennent très probablement de systèmes et d'applications différents, chacun exposant ses données via des interfaces variées (HTTP, XML, SOAP, FTP, CSV, etc.).
Par exemple, ces informations peuvent être issues de :
La question qui se pose est : comment faire pour que l'application frontend communique efficacement avec ces différents systèmes ? Il est évident qu'une communication directe avec chacun d'eux est difficile, voire impossible à gérer, surtout lorsque le nombre de systèmes augmente.
Chaque invocation d'un service proposé par un système est représentée par une ligne de communication distincte. Pour un petit nombre d'applications, cela peut encore être gérable, mais dès que le nombre d'applications atteint plusieurs dizaines, la complexité du réseau de communication devient rapidement ingérable.
C'est dans ce contexte que l'Enterprise Service Bus (ESB) intervient. L'ESB a pour rôle d'exposer et d'invoquer les services des systèmes intégrés, en fournissant un point d'accès unique et clairement défini entre chaque système et l'ESB. Ainsi, au lieu d'avoir une multitude de connexions point à point, chaque système communique avec l'ESB, qui centralise et gère les échanges.
Ces trois concepts sont liés mais distincts :
On peut représenter la relation entre ces concepts comme une poupée russe : EAI est la couche extérieure, SOA la couche intermédiaire, et ESB la couche intérieure, correspondant à une implémentation spécifique de la SOA.
L'ESB est une architecture logicielle qui permet l'intégration d'applications et de services d'entreprise, notamment dans des architectures complexes nécessitant une infrastructure middleware. Sa fonction principale est de fournir les connexions entre les applications communicantes, en jouant le rôle de routeur pour contrôler les données échangées.
Le bus agit comme un canal de communication, similaire à un bus d'ordinateur physique, permettant le transfert de données ou l'échange de messages entre services sans nécessiter d'écriture de code spécifique pour chaque interaction.
L'ESB fonctionne comme un système de messagerie géré qui assure :
Souvent, il est nécessaire de transformer les messages en un format interprétable par l'application destinataire. L'ESB peut également modifier le contenu des données ou exécuter des services via un moteur de règles, ce qui lui confère une grande flexibilité dans la gestion des échanges.