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 middleware de messagerie ou un middleware 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 communications distribuées qui permet aux applications réparties sur de multiples plateformes de communiquer entre elles à l'interne.
Les courtiers de messages peuvent valider, stocker, acheminer et distribuer les messages vers les 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, il en découle une simplification du 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 déliverabilité, les courtiers de messages reposent généralement sur une sous-structure ou un composant appelé file d'attente de messages , qui stocke et organise 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'à la confirmation de leur réception.
La messagerie asynchrone (15:11) fait référence au type de communication entre applications facilitée par les courtiers de messages. 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, fréquents sur les réseaux publics. La messagerie asynchrone garantit que les messages seront distribués juste une fois (et non pas plusieurs) 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.
Les courtiers de messages offrent deux modèles de distribution de messages de base ou types de messagerie :
Les applications cloud natives sont construites pour tirer parti des avantages inhérents aux solutions de cloud computing, y compris la flexibilité, l'évolutivité et le déploiement rapide. Ces applications sont conçues à partir 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 aux environnements informatiques sans serveur, dans lesquels des services individuels hébergés dans le cloud sont exécutés à la demande.
Les API REST sont couramment utilisées pour les communications entre 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 (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. Une logique de basculement et de traitement des erreurs doit être intégrée dans les deux services.
Les courtiers de messages permettent des communications asynchrones entre les services, de sorte que le service expéditeur n'a pas besoin d'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 surveillent également les statuts des consommateurs.
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 streaming d'événements 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, les plateformes de streaming d'événements ne peuvent pas garantir la déliverabilité des messages ni savoir quels consommateurs ont reçu les messages.
Les plateformes de streaming d'événements 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.
En savoir plus à propos de l'architecture pilotée par les événements.
Un bus de service d'entreprise (ESB) est un modèle d'architecture parfois utilisé dans les architectures orientées service 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, potentiellement 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 « allégée » aux ESB et proposent une fonctionnalité similaire (un mécanisme de communication interservices), de manière simplifiée et à moindre coût. Ils sont bien adaptés aux architectures de microservices qui se sont répandues à mesure que les ESB perdaient leur attrait.
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 fiable entre applications et de garantir la déliverabilité des messages.
Les courtiers de messages sont généralement utilisés dans les scénarios suivants :
Les courtiers de messages prennent de l'importance à mesure que les organisations modernisent leurs applications dans le cadre de 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, conçus pour prendre en charge les environnements de développement agiles actuels, les infrastructures basées sur les microservices et le cloud hybride, ainsi qu'un large éventail de types de système et d'exigences de connectivité.
Accédez à l'étape suivante : découvrez IBM Cloud Pak pour l'intégration, qui repose sur la capacité de base de IBM MQ, la solution de messagerie d'entreprise leader du marché.
Obtenez un compte IBM Cloud dès aujourd'hui.
IBM MQ offre des fonctionnalités de messagerie adaptées aux besoins des entreprises, qui permettent de déplacer de manière contrôlée et sécurisée les informations entre les applications.
Connectez les applications, les services et les données avec IBM Cloud Pak for Integration, la plateforme d'intégration la plus complète du marché.