Courtiers de messages

menu icon

Courtiers de messages

Les courtiers de messages sont une technologie de communication entre applications qui permet de créer un mécanisme d'intégration commun pour prendre en charge des architectures cloud natives basées microservices, sans serveur ou hybrides.

Qu'est-ce qu'un courtier de messages ?

Un courtier de messages est un logiciel qui permet aux applications, aux systèmes et aux services de communiquer entre eux et d'échanger des informations. Pour ce faire, le courtier de messages traduit les messages entre les protocoles de messagerie formels. Ainsi, des services interdépendants peuvent communiquer directement entre eux, même s'ils ont été écrits dans des langages différents ou mis en œuvre sur des plateformes différentes.

Les courtiers de messages sont des modules logiciels faisant partie de solutions basées sur un logiciel intermédiaire (middleware) de messagerie ou orienté message (MOM). Ce type de logiciel intermédiaire fournit aux développeurs un moyen normalisé de gérer le flux de données entre les composants d'une application, afin qu'ils puissent se concentrer sur sa logique centrale. Il peut servir de couche de communication répartie qui permet aux applications couvrant plusieurs platesformes de communiquer en interne.

Les courtiers de messages peuvent valider, stocker, acheminer et distribuer les messages aux destinations appropriées. Ils servent d'intermédiaires entre d'autres applications, permettant aux expéditeurs d'envoyer des messages sans savoir où se trouvent les destinataires, s'ils sont actifs ou non, ni connaître leur nombre, ce qui facilite le découplage des processus et des services au sein des systèmes.

Afin d'assurer le stockage fiable des messages et d'en garantir la distribution, les courtiers de messages reposent généralement sur une sous-structure ou un composant appelé file d'attente de messages, qui stocke et ordonne les messages jusqu'à ce que les applications consommatrices puissent les traiter. Dans une file d'attente de messages, les messages sont stockés selon l'ordre exact dans lequel ils ont été transmis et y restent jusqu'à ce que leur réception soit confirmée.

La messagerie asynchrone (15:11) fait référence au type de communication entre applications que les courtiers de messages rendent possible. Elle évite la perte de données importantes et permet aux systèmes de continuer à fonctionner, même en cas de problèmes de connectivité intermittente ou de temps d'attente, courants sur les réseaux publics. La messagerie asynchrone garantit que les messages seront distribués une fois (et une seule) dans l'ordre correct par rapport aux autres messages.

Les courtiers de messages peuvent inclure des gestionnaires de files d'attente pour gérer les interactions entre plusieurs files d'attente de messages, ainsi que des services assurant des fonctionnalités de routage de données, de conversion de messages, de persistance et de gestion de l'état des clients.

Modèles de courtier de messages

Les courtiers de messages offrent deux modèles de distribution de messages de base ou types de messagerie :

  • Messagerie point-à-point : Il s'agit du modèle (pattern) de distribution utilisé dans les files d'attente de messages avec une relation un à un entre l'expéditeur et le destinataire du message. Chaque message de la file d'attente est envoyé à un seul destinataire et n'est utilisé qu'une fois. La messagerie point-à-point est utilisée lorsqu'un message ne doit être traité qu'une seule fois. Le traitement des salaires et des transactions financières sont des exemples de cas d'utilisation appropriés pour ce style de messagerie. Dans ces systèmes, les expéditeurs et les destinataires doivent avoir la garantie que chaque paiement sera envoyé une fois et une seule.
  • Messagerie de publication/abonnement : Dans ce pattern de distribution des messages, souvent appelé « publication/abonnement », le créateur de chaque message le publie dans une rubrique, plusieurs consommateurs de messages s'abonnant aux rubriques dont ils veulent recevoir les messages. Tous les messages publiés dans une rubrique sont distribués à toutes les applications qui y sont abonnées. Il s'agit d'une méthode de distribution de type diffusion, dans laquelle il existe une relation de type « un à plusieurs » entre le diffuseur du message et ses consommateurs. Si, par exemple, une compagnie aérienne devait diffuser des mises à jour sur les heures d'atterrissage ou les retards de ses vols, plusieurs parties pourraient utiliser l'information : les équipes au sol chargées de maintenance et du ravitaillement des avions, les bagagistes, les hôtesses de l'air et les pilotes qui préparent le prochain vol, ainsi que les opérateurs des affichages visuels informant le public. Un style de messagerie publication/abonnement serait approprié dans ce scénario.

Courtiers de messages dans les architectures de cloud

Les applications natives cloud tirent parti des avantages inhérents au cloud computing, y compris la flexibilité, l'évolutivité et le déploiement rapide. Ces applications sont composée de petits composants discrets et réutilisables appelés microservices. Chaque microservice est déployé et peut s'exécuter indépendamment des autres. Cela signifie que chacun d'entre eux peut être mis à jour, mis à l'échelle ou redémarré sans affecter les autres services du système. Souvent placés dans des conteneurs, les microservices fonctionnent ensemble pour former une application complète, bien que chacun ait sa propre pile, y compris une base de données et un modèle de données qui peuvent être différents des autres.

Les microservices doivent avoir un moyen de communiquer entre eux, afin de fonctionner de concert. Les courtiers de messages sont l'un des mécanismes qu'ils utilisent pour créer ce réseau principal de communications partagées.

Les courtiers de messages sont souvent utilisés pour gérer les communications entre les systèmes sur site et les composants cloud dans les environnements de cloud hybride. L'utilisation d'un courtier de messages permet de mieux contrôler les communications interservices, en garantissant que les données sont envoyées de manière sûre, fiable et efficace entre les composants d'une application. Les courtiers de messages peuvent jouer un rôle similaire dans l'intégration d'environnements multicloud, en permettant la communication entre les charges de travail et les environnements d'exécution résidant sur des plateformes différentes. Ils sont également bien adaptés à l'informatique sans serveur, dans laquelle des services individuels hébergés dans le cloud sont exécutés à la demande.

Courtiers de messages versus API

Les API REST sont couramment utilisées pour les communications entre les microservices. Le terme Representational State Transfer (REST) définit un ensemble de principes et de contraintes que les développeurs peuvent suivre lors de la création de services Web. Les services qui y adhèrent pourront communiquer via un ensemble d'opérateurs et de demandes sans état partagés et uniformes. L' interface de programme d'application (Application Programming Interface, ou API) désigne le code sous-jacent qui, s'il est conforme aux règles REST, permet aux services de communiquer entre eux.

Les API REST utilisent le protocole HTTP pour communiquer. HTTP étant le protocole de transport standard de l'Internet public, les API REST sont largement connues, fréquemment utilisées et largement interopérables. Toutefois, HTTP est un protocole de demande/réponse. Il est donc préférable de l'utiliser dans des situations qui nécessitent une demande/réponse synchrone. Cela signifie que les services effectuant des demandes via des API REST doivent être conçus pour attendre une réponse immédiate. Si le client qui reçoit la réponse est hors service, le service d'envoi est bloqué pendant qu'il attend la réponse. La reprise en ligne et la logique de traitement des erreurs doivent être intégrées aux deux services.

Les courtiers de messages permettent des communications asynchrones entre les services, de sorte que le service expéditeur ne doit pas attendre la réponse du service destinataire, ce qui améliore la tolérance aux pannes et la résilience des systèmes dans lesquels ils sont employés. En outre, l'utilisation de courtiers de messages facilite la mise à l'échelle des systèmes, car un modèle de messagerie publication/abonnement peut facilement prendre en charge un nombre variable de services. Les courtiers de messages suivent également les états des consommateurs.

Courtiers de messages versus plateformes de diffusion d'événements en flux

Alors que les courtiers de messages peuvent prendre en charge au moins deux modèles de messagerie, y compris les files d'attente de messages et le modèle publication/abonnement, les plateformes de diffusion d'événements en flux ne proposent que des modèles de distribution de type publication/abonnement. Conçues pour être utilisées avec de gros volumes de messages, les plateformes de diffusion d'événements en flux sont facilement extensibles. Elles sont capables de classer les flux d'enregistrements dans des catégories appelées rubriques et de les stocker pendant une durée prédéterminée. Toutefois, contrairement aux courtiers de messages, ces plateformes ne peuvent pas garantir la distribution des messages ni savoir quels consommateurs ont reçu les messages.

Les plateformes de diffusion d'événements en flux offrent une plus grande évolutivité que les courtiers de messages, mais moins de fonctions garantissant la tolérance aux pannes (comme le renvoi des messages), ainsi que des fonctionnalités plus limitées de routage et de mise en file d'attente des messages.

Plus d'infos sur l'architecture événementielle.

Courtier de messages versus bus ESB

Un bus de service d'entreprise (ESB) est un pattern d'architecture parfois utilisé dans les architectures orientées services mises en œuvre dans les entreprises. Dans un bus ESB, une plateforme logicielle centralisée combine les protocoles de communication et les formats de données en un « langage commun » que tous les services et applications de l'architecture peuvent partager. Il peut, par exemple, convertir les demandes qu'il reçoit d'un protocole (tel que XML) dans un autre (tel que JSON). Les bus ESB transforment les contenus de leurs messages à l'aide d'un processus automatisé. La plateforme logicielle centralisée gère également d'autres logiques d'orchestration, telles que la connectivité, le routage et le traitement des demandes.

Les infrastructures ESB sont cependant complexes, peuvent être difficiles à intégrer, et leur maintenance peut s'avérer coûteuse. Il est difficile de les dépanner lorsque des problèmes surviennent dans les environnements de production, leur mise à l'échelle n'est pas simple et leur mise à jour est fastidieuse.

Les courtiers de messages constituent une alternative « légère » aux bus ESB qui fournissent une fonctionnalité similaire (un mécanisme de communication interservices), plus simplement et à moindre coût. Ils sont bien adaptés aux architectures de microservices qui se sont répandues à mesure que les bus ESB perdaient leur attrait.

Cas d'utilisation des courtiers de messages

La mise en œuvre de courtiers de messages permet de répondre à une multitude de besoins métier dans tous les secteurs et dans divers environnements informatiques d'entreprise. Ils sont utiles quand et là où il est nécessaire de disposer d'une communication entre applications fiable et de garantir la distribution des messages.

Les courtiers de messages sont généralement utilisés dans les scénarios suivants :

  • Opérations financières et traitement des paiements : Il est essentiel que les paiements soient envoyés une fois et une seule. L'utilisation d'un courtier de messages pour gérer les données de ces transactions offre la garantie que les informations relatives aux paiements ne seront ni perdues ni accidentellement dupliquées, fournit une preuve de réception et permet aux systèmes de communiquer de manière fiable même lorsque des réseaux intermédiaires sont hors service.
  • Traitement et exécution de commandes de e-commerce : Si vous avez une activité commerciale en ligne, la force de la réputation de votre marque dépend de la fiabilité de votre site Web et de votre plateforme de commerce électronique. La capacité des courtiers de messages à améliorer la tolérance aux pannes et à garantir que les messages sont consommés une fois et une seule fait d'eux un choix naturel pour le traitement des commandes en ligne.
  • Protection des données hautement sensibles au repos et en transit : Si votre secteur est très réglementé ou que votre entreprise est confrontée à des risques élevés en matière de sécurité, optez pour une solution de messagerie dotée de fonctionnalités de chiffrement de bout en bout.

Courtiers de messages et IBM Cloud

Les courtiers de messages prennent une importance nouvelle à mesure que les organisations modernisent leurs applications dans leur parcours vers le cloud. La plupart des entreprises les plus prospères au monde, dont 85 % des entreprises du classement Fortune 100, s'appuient sur les fonctionnalités de courtier de messages d'IBM, qui prennent en charge les environnements de développement agiles actuels, les infrastructures de microservices et le cloud hybride, ainsi qu'un large éventail de types de système et d'exigences de connectivité.

Pour aller plus loin : Plus d'infos sur IBM Cloud Pak for Integration, qui repose sur la fonctionnalité de base IBM MQ, solution de messagerie d'entreprise de premier plan.

Commencez par créer un compte IBM Cloud dès aujourd'hui.