ESB (Enterprise Service Bus)

ESB (Enterprise Service Bus) Expliqué :

L’ESB (Enterprise Service Bus) est une plateforme d’intégration normalisée qui combine la messagerie, les services web, la transformation des données et un acheminement intelligent pour connecter de manière fiable et coordonner l’interaction d’un grand nombre d’applications hétérogènes avec une intégrité transactionnelle. On peut également le définir comme un modèle d’architecture logicielle utilisé pour concevoir et mettre en œuvre la communication entre des applications logicielles interagissant mutuellement dans une architecture orientée services (SOA).

Architecture

En l’absence d’une architecture orientée ESB, les systèmes hétérogènes peuvent être intégrés en utilisant une architecture alternative (point 2 point) . Cependant, ce genre d’architecture est difficile à mettre à l’échelle et à entretenir. De plus, l’ajout d’une nouvelle application nécessiterait des personnalisations d’interface pour toutes les autres applications/systèmes interagissant.

ESB (entreprise service bus)
Point 2 Poiint VS ESB

L’architecture ESB

Dans une architecture ESB, les applications sont connectées de manière indirecte via l’ESB, plutôt que d’être directement connectées les unes aux autres. L’ESB (Enterprise Service Bus) est responsable de toute la logique intégrée nécessaire pour permettre aux systèmes d’interagir et de s’intégrer.

L’ESB est un composant essentiel pour l’intégration de systèmes et la gestion des services au sein d’une application.

Les principales fonctionnalités que l’on retrouve dans une ESB :

Voici quelques-unes des fonctionnalités essentielles d’une architecture orientée ESB :

Découplage

L’une des choses les plus importantes que vous puissiez réaliser via un ESB est de désolidariser les clients des fournisseurs de services.

Gestion des messages : L’ESB permet la transmission, la réception et la gestion des messages entre les différentes applications et services au sein de l’entreprise. Il doit être capable de traiter différents formats de messages, tels que XML, JSON, et d’autres protocoles de communication.

Amélioration des messages

L’ESB vous permet d’isoler le client et d’apporter des modifications de base au message.

Par exemple, modifier le format de date du message entrant ou ajouter des données informatives aux messages.

Transformation des messages / Conversion protocole de transport : L’ESB doit être capable de convertir les messages d’un format à un autre, ce qui facilite la communication entre des systèmes hétérogènes.

Par exemple, XML en JSON, XML en objets Java.

Routage des messages : Il doit être en mesure de diriger les messages vers les destinations appropriées en fonction de règles de routage prédéfinies. Cela permet d’acheminer les messages vers les applications ou les services adéquats.

Gestion des erreurs : L’ESB doit être capable de détecter et de gérer les erreurs qui surviennent lors de la transmission ou du traitement des messages. Il peut également mettre en place des mécanismes de gestion des transactions pour garantir l’intégrité des données.

Sécurité : La sécurité est un aspect crucial. L’ESB doit pouvoir authentifier les utilisateurs, chiffrer les données sensibles et mettre en place des mécanismes de contrôle d’accès pour protéger les informations confidentielles.

Surveillance et journalisation : Il est important de surveiller les activités de l’ESB, de collecter des journaux d’événements et de générer des rapports pour analyser les performances et le comportement de l’ESB.

Interopérabilité : L’ESB doit être capable de communiquer avec différents types de systèmes, tels que des applications héritées, des services web, des bases de données, etc. Il doit donc prendre en charge divers protocoles de communication.

Gestion des versions : Il est essentiel de gérer les versions des services et des interfaces pour éviter les conflits lors de mises à jour ou d’évolutions.

Extensibilité : L’ESB doit permettre l’ajout de nouvelles fonctionnalités, connecteurs et adaptateurs pour s’adapter aux besoins changeants de l’entreprise.

Gestion des transactions

L’ESB offre la capacité de fournir une seule unité de travail pour une demande commerciale, offrant un cadre pour la coordination de plusieurs systèmes disparates.

Intégration avec des outils tiers : Il peut être nécessaire d’intégrer l’ESB avec d’autres outils tels que des systèmes de gestion de la relation client (CRM), des systèmes de gestion des ressources humaines (RH), ou des systèmes de gestion de projets.

Administration et gestion : L’ESB doit offrir des fonctionnalités d’administration, de configuration et de surveillance pour simplifier la gestion quotidienne.

Chorégraphie des processus et orchestration des services

L’ESB gère le flux de processus et les services métier complexes pour effectuer une requête business.

La chorégraphie des processus concerne les services métier, tandis que l’orchestration des services est la capacité à gérer la coordination de leurs mises en œuvre réelles. Il est également capable d’abstraire les services métier des services réellement mis en œuvre.

Cas pratique : L’envoie d’un message via un ESB

Lors de l’envoi d’un message via un ESB, plusieurs paramètres doivent être pris en compte pour garantir une communication efficace et fiable. Voici une liste des principaux paramètres à considérer :

Le message lui-même : Vous devez définir le contenu du message que vous souhaitez envoyer. Cela peut inclure des données, des informations de commande, des identifiants, etc.

Destinataire : Spécifiez le destinataire ou le service qui doit recevoir le message. Cela peut être l’adresse du service, l’URL, le nom du canal, etc.

Expéditeur : Indiquez l’expéditeur du message. Cela peut être l’adresse ou l’identifiant de l’expéditeur.

Sujet ou type de message : Il s’agit d’une étiquette ou d’une catégorie qui identifie le type de message. Cela aide le système à router le message vers le service approprié.

Protocole de transport : Sélectionnez le protocole de transport à utiliser pour l’envoi du message. Cela peut être HTTP, JMS, AMQP, MQTT, etc.

Sécurité : Spécifiez les mécanismes de sécurité, tels que l’authentification, la confidentialité des données, les certificats, pour garantir la sécurité du message.

Options de livraison : Définissez les options de livraison, telles que le mode de livraison (fiabilité, at-least-once, at-most-once, etc.), la gestion des erreurs, la répétition des tentatives, etc.

Encodage du message : Indiquez le format dans lequel le message est encodé, par exemple, JSON, XML, binaire, etc.

Délais et expiration : Spécifiez les délais pour la livraison du message, ainsi que la période d’expiration après laquelle le message n’est plus valide.

Gestion des erreurs : Configurez la manière dont les erreurs seront gérées, telles que la journalisation des erreurs, les alertes, les notifications, etc.

Identification des transactions : Si vous utilisez des transactions, assurez-vous d’identifier la transaction à laquelle le message est associé.

Propriétés du message : Vous pouvez inclure des propriétés supplémentaires dans le message, telles que des en-têtes, des métadonnées, des informations de suivi, etc.

Confirmation de réception : Spécifiez si vous avez besoin d’une confirmation de réception ou d’accusé de réception du message.

Réacheminement : Configurez des règles de réacheminement au cas où le message ne parviendrait pas à destination.

Contrôle de version : Assurez-vous que les versions du message et du contrat sont gérées pour éviter des incompatibilités futures.

Sérialisation/désérialisation : Assurez-vous que le message est correctement sérialisé avant l’envoi et désérialisé lors de la réception.

Sélection du service de médiation : Si votre ESB implique des services de médiation, sélectionnez le service approprié pour acheminer le message. Un service médiateur dans un ESB agit comme une couche intermédiaire qui facilite la communication, la transformation des données et la gestion des processus entre différentes applications ou services. Il joue un rôle clé dans l’intégration des systèmes et la fourniture d’une architecture flexible et évolutive pour les entreprises.

Mécanismes de gestion de la qualité de service : Choisissez les options de garantie de qualité de service, comme la priorité du message, la gestion des conflits, la tolérance aux pannes, etc. Ces paramètres peuvent varier en fonction de l’architecture ESB que vous utilisez et des exigences spécifiques de votre système. Il est essentiel de bien comprendre ces paramètres pour assurer une communication efficace et fiable via un ESB.

Exemple de paramètres (JSON) :


{
   "message": "Contenu du message",
   "destinataire": "ServiceXYZ",
   "expéditeur": "Moi",
   "sujet": "Commande",
   "protocoleTransport": "HTTP",
   "sécurité": {
      "authentification": "Nom d'utilisateur/mot de passe",
      "confidentialité": "Chiffrement SSL",
      "certificat": "Certificat numérique"
   },
   "optionsLivraison": {
      "fiabilité": "Au moins une fois",
      "gestionErreurs": "Réessayer 3 fois",
      "délaiExpiration": "24 heures"
   },
   "encodageMessage": "JSON",
   "délaisExpiration": "24 heures",
   "gestionErreurs": "Journalisation des erreurs",
   "transaction": "TransactionID123",
   "propriétésMessage": {
      "en-tête1": "Valeur1",
      "en-tête2": "Valeur2"
   },
   "confirmationRéception": "Oui",
   "réacheminement": {
      "destinationAlternative": "ServiceBackup",
      "règlesRéacheminement": "En cas d'échec"
   },
   "contrôleVersion": "1.0",
   "sélectionServiceMédiation": "ServiceMédiateurA",
   "gestionQualitéService": {
      "priorité": "Élevée",
      "tolérancePannes": "Oui"
   }
}