ESB (Enterprise Service Bus)

menu icon

ESB (Enterprise Service Bus)

Dans ce guide, découvrez l'ESB, un composant essentiel de l'architecture SOA, ses avantages et son rapport avec l'architecture des microservices.

Qu'est-ce qu'un ESB ?

Un ESB, ou bus de service d'entreprise, est un modèle permettant à un composant logiciel centralisé d'effectuer des intégrations à des systèmes de back-end. Il peut aussi effectuer des conversions de modèles de données, établir une connectivité en profondeur, assurer un routage et envoyer des demandes. Il rend ces intégrations et les conversions disponibles en tant qu'interfaces de service en vue d'une réutilisation par de nouvelles applications. Le modèle ESB est généralement implémenté à l'aide d'un environnement d'exécution et d'un ensemble d'outils d'intégration spécialement conçus pour garantir une productivité optimale.

ESB et SOA

Un ESB est un composant essentiel de l'architecture SOA, ou architecture orientée services, apparue à la fin des années 1990. L'architecture SOA rend les composants logiciels réutilisables via des interfaces de service. Ces interfaces utilisent des normes de communication communes leur permettant d'être rapidement incorporées à de nouvelles applications sans qu'il soit nécessaire d'effectuer une intégration approfondie à chaque fois.

Chaque service d'une architecture SOA incarne le code et les intégrations de données nécessaires à l'exécution d'une fonction métier complète et discrète (par exemple, la vérification du crédit d'un client, le calcul d'un prêt mensuel ou le traitement d'une demande de prêt hypothécaire). Les interfaces de service fournissent un couplage lâche, ce qui signifie qu'elles peuvent être appelées même si vous ne savez pas comment l'intégration est implémentée. Les services sont exposés à l'aide de protocoles réseau standard tels que SOAP (Simple Object Access Protocol)/HTTP ou JSON/HTTP pour envoyer des demandes de lecture ou de modification de données. Les services sont publiés d'une manière qui permet aux développeurs de les trouver rapidement et de les réutiliser pour assembler de nouvelles applications.

Ces services peuvent être créés à partir de rien mais sont souvent créés en exposant des fonctions à partir de systèmes d'enregistrement existants en tant qu'interfaces de service. C'est là que naît le besoin d'un ESB. Les systèmes et systèmes d'enregistrement existants utilisent généralement des protocoles anciens et des formats de données propriétaires qui doivent être traduits et intégrés pour fonctionner avec les protocoles de réseau SOA. Un ESB exécute ces conversions et ces intégrations instantanément. Vous pouvez implémenter une architecture SOA sans ESB, mais les propriétaires d'applications seront alors contraints de trouver leur propre solution pour exposer les interfaces de service. C'est un travail conséquent, même si les interfaces sont éventuellement réutilisables, et pose un problème de maintenance non négligeable pour l'avenir.

Pour plus d'informations sur l'architecture SOA et sur le rôle qu'y joue un ESB, voir " Introduction à l'architecture SOA (architecture orientée services)".

Avantages

En théorie, un ESB centralisé offre la possibilité de normaliser et de simplifier considérablement la communication et l'intégration de services dans l'entreprise. Les coûts matériels et logiciels peuvent être partagés, la mise à disposition des serveurs n'est nécessaire qu'une seule fois, et une seule équipe de spécialistes peut être chargée de développer et de gérer les intégrations, avec une formation si nécessaire.

Les développeurs peuvent utiliser un protocole unique pour "parler" à l'ESB et émettre des commandes qui dirigent les interactions entre les services. Ils laissent à l'ESB le soin de convertir les commandes, d'acheminer les messages et de transformer les données si nécessaire pour exécuter les commandes. Pour les développeurs, cela signifie une intégration beaucoup moins longue leur permettant de consacrer beaucoup plus de temps à configurer et à améliorer leurs applications. La réutilisation de ces intégrations d'un projet à l'autre offre en aval des gains de productivité et des économies encore plus élevés.

Mais si l'ESB a été déployé avec succès dans de nombreuses entreprises, dans d'autres cas, il s'est avéré être le goulet d'étranglement dans le déploiement de l'architecture SOA. Les modifications ou les améliorations apportées à une intégration déstabilisaient souvent les autres intégrations. Les mises à jour du middleware de l'ESB avaient souvent des répercussions sur les intégrations existantes. En outre, l'ESB étant géré de manière centralisée, les équipes d'applications se sont vite trouvées à devoir attendre leurs intégrations. Au fur et à mesure que le volume des intégrations augmentait, la mise en œuvre de la haute disponibilité et de la reprise après incident pour les serveurs ESB est devenue plus coûteuse. En tant que projet inter-entreprises, l'ESB s'est avéré difficile à financer, ce qui a rendu ces défis techniques beaucoup plus difficiles à résoudre.

En fin de compte, les défis liés à la maintenance, à la mise à jour et à la mise à l'échelle d'un ESB centralisé se sont avérés si formidables et si coûteux que l'ESB a souvent retardé les gains de productivité qu'il devait générer avec la SOA. Il en a résulté une frustration pour les équipes métier qui anticipaient un rythme d'innovation plus soutenu.

Pour découvrir plus en détail l’essor et la chute de l'ESB, lire "The fate of the ESB".

Comparatif de l'ESB et des microservices

L'architecture des microservices permet de diviser les éléments internes d'une application en petites parties qui peuvent être modifiées, mises à l'échelle et administrées de façon indépendante. Les microservices sont apparus et sont montés en puissance avec l'avènement de la virtualisation, du cloud computing, des pratiques de développement Agile et de DevOps. Dans ces contextes, les microservices offrent les atouts suivants :

  • Amélioration de l'agilité et de la productivité des développeurs leur permettant d'incorporer de nouvelles technologies à une partie d'une application sans toucher ni "devoir rattraper" le reste de l'application.
  • Évolutivité plus simple et plus économique, permettant à n'importe quel composant d'être mis à l'échelle indépendamment des autres, ce qui permet une réponse très rapide aux demandes de charge de travail et une utilisation très efficace des ressources informatiques.
  • Résilience accrue, car l'échec d'un composant n'a pas d'impact sur les autres. Chaque microservice peut s'exécuter en fonction de ses propres exigences de disponibilité sans contraindre les autres composants à une exigence de "disponibilité commune maximale".

La même granularité apportée par les microservices à la conception des applications peut être transposée à l'intégration, avec des avantages similaires. C'est l'idée qui sous-tend l'intégration agile, qui divisait l'ESB en composants d'intégration décentralisés à granularité fine, sans interdépendances. Chaque équipe d'application pouvait en disposer et les gérer elle-même.

Pour étudier plus en détail tout ce qui a trait aux microservices, consultez "Microservices: A Complete Guide, "SOA vs. Microservices: What's the difference?"  et regardez la vidéo de Dan Bettinger, " What are Microservices?" :

L'ESB et IBM Cloud

Au fur et à mesure que votre entreprise migre son infrastructure IT informatique vers un cloud hybride, il est très probable que vous devrez transformer de nombreuses charges de travail, y compris celles basées sur les modèles SOA et ESB, pour les transférer vers des modèles de déploiement plus légers et plus flexibles. Ces transformations ne sont qu'une partie de la modernisation des applications dans la transition vers le cloud de toute entreprise.  

Pour aller plus loin :

  • Découvrez comment vous pouvez utiliser, étendre et moderniser vos investissements dans les middleware avec IBM Cloud Pak for Intgration.
  • Découvrez comment connecter toutes vos applications et données sur plusieurs clouds privés et publics pour offrir des expériences client personnalisées en visitant IBM Cloud Integration.

Démarrez en créant un compte IBM Cloud dès aujourd'hui.