samedi 9 mai 2020

Mise en oeuvre de SOA avec l'ESB: les limites

Dans les premiers styles de mise en œuvre des architectures orientées services (SOA), les services qui composent l’application sont organisés autour d’un bus de services d’entreprise (ESB) qui agit comme socle d’intégration entre eux pour satisfaire les exigences de réutilisation et de modularité. Si ce modèle a permis d’ouvrir les fonctions et les processus de l’entreprise aux partenaires externes, il ne parvient pas à dépasser totalement ses précurseurs monolithiques.  D'un côté, SOA permet de développer, tester et paramétrer les services simultanément, sans devoir subir des cycles de développement monolithiques. De l'autre côté, l’ESB est à son tour atteint du syndrome des monolithes. Les constructeurs y ajoutent de plus en plus de fonctionnalités, en particulier différentes logiques de transformation des formats des données et d’orchestration des services. Il devient ainsi un goulet d’étranglement et un potentiel point de défaillance sur le plan architectural et organisationnel.  Dans cet article, je présente l'architecture orientée service (SOA), suivie d'un exemple d'une implémentation SOA basée sur un bus de services d'entreprise et les problèmes qui en ont découlé.
Exemple d'une architecture SOA

Définition

L'architecture orientée service (SOA) peut être définie comme une façon de bâtir une application logicielle en assemblant plusieurs composantes logicielles autonomes. Un système logiciel bâti suivant ce modèle est essentiellement une collection de services qui communiquent entre eux. La communication peut impliquer une simple transmission de données entre deux services ou la coordination d'une activité par plusieurs services.
Un service SOA est une unité discrète de fonctionnalités accessibles à distance, exploitée et mise à jour de manière indépendante. Autrement dit, c’est une composante d’un système informatisé qui met à disposition de ses consommateurs un accès centralisé à une ou plusieurs fonctions d’affaires. Les consommateurs peuvent être des acteurs humains, du matériel ou des logiciels qui interviennent dans le processus d’affaires que supporte ce service. 
Un service SOA a quatre propriétés selon l'une des nombreuses définitions de SOA:
  • Un service représente logiquement une activité d’affaire de l’entreprise avec un résultat spécifié.
  • Un service est autonome.
  • Le consommateur n’est pas au courant du fonctionnement interne du service, pour lui c’est une boite noire.
  • Un service peut être composé d'autres services sous-jacents. 

Les premiers styles de mise en œuvre de SOA

Les premiers styles d’architecture orientée services sont nés dans les années 2000 de l’exigence forte des systèmes informatiques des grandes entreprises de s’ouvrir à l’externe, en particulier sous la poussée de la mondialisation. Ces entreprises faisaient face à des besoins d’ouverture divers, donc l’ouverture aux clients (commerce électronique et internet), l’ouverture aux employés (intranet d’entreprise), l’ouverture aux partenaires d’affaires, aux fournisseurs, aux agents commerciaux et aux autorités de régulation.
Dans ces premiers styles de SOA, les services qui composent l'application sont organisés autour d’un bus de services d’entreprise (encore appelé ESB, acronyme de l’expression anglaise « Enterprise Service Bus »). L’ESB agit comme un socle d’intégration entre les services pour satisfaire les critères de réutilisation et de modularité, comme on peut voir sur l’exemple de la figure ci-dessus.
Au sein de cette architecture, chaque service est organisé autour d'un processus métier spécifique et utilise un protocole de communication pour échanger avec l'ESB. Ce protocole peut être différent d'un service à l'autre.
Sur notre exemple, on peut voir le bus de services d’entreprise (ou l’ESB) au centre et les services qui gravitent tout autour:  
  • Un premier service ERP qui gère le service après-vente (SAV) et qui communique avec le bus suivant un protocole HTTP.
  • Un second service ERP qui gère la comptabilité. Il est construit avec une technologie J2EE et communique avec le bus suivant deux protocoles JMS et JCA.
  • Le 3e est un service de gestion des commandes. Il est développé avec les technologies .NET et utilise le protocole HTTP pour communiquer avec l’ESB.
  • On a aussi un service boutique en ligne qui utilise aussi le protocole HTTP pour communiquer avec l’ESB.
  • Et d'autres services...
Les services ne se parlent pas directement. Dans une communication entre un service client et un service fournisseur, l’ESB reçoit la requête du client, traduit le message dans un  format compréhensible par le fournisseur avant d’envoyer la requête à ce dernier. Il fait un traitement inverse pour acheminer la réponse du fournisseur au client. L’ESB est au cœur de tous les échanges entre les services. 

Quelques fonctionnalités de l’ESB

Service de transport : supporte et convertit les protocoles de transport entre fournisseur et consommateur de service.
Service de routage : achemine les messages aux destinataires appropriés.
Service de transformations de message : transforme le format de message provenant d’un consommateur dans le format attendu par un fournisseur et vice-versa.
Service de connecteur : capable de se connecter à tout type de ressource ou de service, permettant ainsi de découpler le consommateur au fournisseur de service.  
Services de sécurité et audit : fonctionnalité d’authentification, d’autorisation, de cryptage sur les messages entrants afin de prévenir les usages malicieux du bus de services d’entreprise. La sécurité des messages sortants doit également être assurée afin de satisfaire les exigences de sécurité du consommateur de service.  

Les problèmes rencontrés
La plus grosse problématique rencontrée par cette implémentation de SOA est liée à la technologie. En effet, outre le fait que l'ESB devient potentiellement un point de défaillance pour cette architecture, un autre inconvénient vient du fait que beaucoup de projets SOA sont tirés par des équipes uniquement techniques et par des approches outils. Par exemple, dans certaines entreprises, on dépense des budgets importants pour acheter et déployer un ESB avant même de commencer l’analyse des services, un peu comme si les services allaient apparaître comme par magie une fois le bus d’entreprise (ESB) déployé. 

Conclusion 

L’implémentation de SOA avec un bus de services d'entreprise, que certains ont appelé SOA de première génération, n’a pas permis de résoudre tous les problèmes observés avec les monolithes, d’où l’émergence des architectures micoservices

Pour démarrer avec les microservices, je vous recommande ce cours sur Udemy: Les bases des architectures de microservices


Référence:

1 commentaire:

  1. Nous remercions sincèrement l'auteur de l'article pour cette analyse approfondie sur les limites de SOA et ESB. Bien que sap s4hana ne soit pas mentionné directement, il est clair que cette solution moderne peut potentiellement surmonter certaines de ces limitations grâce à son architecture avancée et à ses capacités intégrées. L'adoption de SAP S/4HANA pourrait apporter des avantages significatifs aux entreprises cherchant à optimiser leurs processus métier et à renforcer leur agilité face aux défis futurs.








    RépondreSupprimer