Une file d’attente de messages est un composant des solutions middleware qui permet aux applications et services indépendants d’échanger des informations.
Les files d’attente de messages stockent les « messages » ou les paquets de données que les applications créent pour que d’autres applications les utilisent dans l’ordre dans lequel ils sont transmis, et ce jusqu’à ce que l’application consommatrice puisse les traiter. Les messages sont stockés en toute sécurité jusqu’à ce que l’application réceptrice soit prête. En cas de problème lié au réseau ou à l’application réceptrice, les messages conservés dans la file d’attente ne sont pas perdus.
Connu sous le nom de messagerie asynchrone, ce modèle prévient la perte de données et permet aux systèmes de continuer à fonctionner en cas de défaillance des processus ou des connexions. Cela permet aux développeurs de séparer les processus et les applications et de s’assurer que leurs communications restent autonomes et pilotées par des événements, afin de fiabiliser l’architecture.
Les files d’attente de messages proposées par les solutions de messagerie offrent diverses options de déploiement telles que les appliances physiques optimisées, les services cloud, les mainframes et les logiciels.
Les solutions de mise en file d’attente des messages sont largement utilisées dans tous les secteurs. Elles offrent divers avantages aux développeurs et aux administrateurs système. En voici quelques exemples :
L’environnement informatique des entreprises d’aujourd’hui est complexe et décentralisé. La messagerie facilite l’intégration des applications et des services sur diverses plateformes grâce à une seule et même infrastructure partagée, robuste et sécurisée. Cela permet de se prémunir contre la perte de données et de garantir que les systèmes continuent de fonctionner même en cas de connectivité instable.
Les files d’attente de messages sont particulièrement adaptées pour intégrer systèmes de back-end sur site et services cloud. Dans les architectures cloud, les applications sont souvent constituées de petits composants indépendants. Cela facilite leur conception et leur codage, ainsi que la gestion de leur performance. Les files d’attente de messages permettent à ces applications cloud découplées de communiquer entre elles ou avec les systèmes sur site.
Les files d’attente de messages augmentent la résilience de l’architecture, car les messages peuvent être persistants. Ils sont donc stockés sur disque jusqu’à ce que le service qui les reçoit confirme le traitement. Les files d’attente de messages peuvent être utilisées dans des scénarios exigeant un niveau élevé de sécurité, de tolérance aux pannes et de précision comme le traitement des transactions financières, la réservation de vols ou la mise à jour des dossiers médicaux.
Les files d’attente de messages peuvent également être utilisées pour permettre aux applications et aux systèmes hébergés dans différents clouds (qu’il s’agisse d’un cloud public ou d’un cloud privé) de communiquer, même s’ils sont situés dans des pays, voire sur des continents différents. Les files d’attente de messages permettent d’augmenter la tolérance aux pannes et d’empêcher la duplication ou la perte de données dans les systèmes géographiquement et techniquement disparates. Étant donné que les services du système sont découplés ou isolés par une séparation logique, chacun peut continuer à fonctionner si les autres services ou applications échouent ou se bloquent.
Les files d’attente de messages fonctionnent avec diverses applications (par exemple, mobiles, IdO ou enregistrements des systèmes transactionnels traditionnels). Elles prennent également en charge diverses plateformes telles que les machines virtuelles et les conteneurs, et facilitent l’intégration des applications héritées aux solutions les plus récentes.
Les files d’attente de messages suivent un schéma de messagerie point-à-point : une application (appelée expéditeur) envoie un message vers la file d’attente, qui est ensuite récupéré et utilisé par une autre application (appelée destinataire). L’expéditeur et le consommateur doivent être directement couplés, et chaque message peut être consommé une seule fois.
Si vos applications exigent que les messages soient distribués à plusieurs parties, vous pouvez soit combiner plusieurs files d’attente de messages, soit utiliser un modèle de messagerie « publication/abonnement ».
Dans la messagerie publication/abonnement, l’application qui produit le message est appelée éditeur, et les applications qui l’utilisent sont les abonnés. Chaque message est publié sur un sujet, et chaque application abonnée à ce sujet obtient une copie des messages qui y sont publiés.
La plupart des solutions intergicielles de messagerie prennent en charge les deux modèles : file d’attente de messages (point à point) et publication/abonnement.
Le bus de messages est un type d’ESB (Enterprise Service Bus) qui permet aux services d’accéder aux données en tout lieu et à tout moment, tout en restant découplés et fonctionnellement indépendants au sein d’une architecture système distribuée. Avec un bus de messagerie, l’ensemble des services ou applications doivent partager des types de données, un jeu de commandes et des protocoles de communication communs (bien qu'ils puissent être écrits dans différents langages). Les consommateurs peuvent déterminer comment utiliser les messages.
Si des applications découplées doivent communiquer par le biais d’un bus de messages, ces derniers doivent être transformés pour être tous du même type. Les files d’attente de messages, quant à elles, transportent les messages quel que soit leur type.
Au lieu de passer par un intergiciel de messagerie, les applications peuvent communiquer directement par le biais de services Web ou d’API utilisant des protocoles standard tels que Simple Object Access Protocol (SOAP) ou HTTP. Les services Web sont largement utilisés dans les systèmes distribués, qui sont relativement simples et faciles à mettre en œuvre, ce qui en fait une alternative viable aux files d’attente de messages dans certains cas d’utilisation et scénarios.
Cependant, contrairement aux files d’attente de messages, les services Web ne peuvent pas garantir la distribution des messages. En cas de défaillance du serveur ou de la connexion, vous devez mettre en place les fonctionnalités nécessaires pour gérer l’erreur au sein du client. Les services Web ne proposent pas non plus de modèle de distribution publication/abonnement. Les intergiciels de messagerie offrent une plus grande tolérance aux pannes et une meilleure capacité à gérer les trafics lourds et les pics d’activité.
Pour savoir dans quels cas utiliser les API, la messagerie, ou les deux, consultez l’article « An introduction to APIs and messaging ».
Dans certaines situations, les bases de données peuvent être utilisées comme alternative aux files d’attente de messages. Cependant, leur rôle est différent et, la plus part du temps, elles ne sont pas facilement interchangeables. Généralement utilisées à des fins de stockage, les bases de données vous permettent d’accéder indéfiniment aux mêmes informations. Les files d’attente de messages ne peuvent pas être utilisées à des fins de stockage. Une fois consommé, le message est supprimé de la file d’attente.
Il est possible de doter une base de données de fonctionnalités similaires à celles d’une file d’attente de messages, mais le codage est complexe, et le niveau de connaissances requis est élevé. Les bases de données permettent de répliquer uniquement les structures de files d’attente simples et ne sont pas évolutives, ce qui les rend inadaptées aux applications volumineuses.
Pour en savoir plus sur les bases de données et leurs fonctionnalités, consultez l’article « A Brief Overview of the Database Landscape ».
Les files d’attente de messages sont traditionnellement administrées par des équipes dédiées au sein du service informatique. Mais le modèle « à la demande », à savoir une file d’attente de messages hébergée dans le cloud, permet aux utilisateurs particuliers et professionnels de demander eux-mêmes la modification de l’infrastructure de messagerie, par le biais d’un portail, afin de gagner en agilité.
Les files d’attente de messages à la demande sont naturellement compatibles avec les architectures sans serveur ou de type microservices couramment employées dans le développement cloud natif. Comme il s’agit d’un modèle de service hébergé dans le cloud, le fournisseur cloud gère entièrement le provisionnement, l’installation et la maintenance de votre infrastructure de messagerie, qui est hébergée dans le cloud.
Si vous débutez, consultez ces tutoriels pour découvrir comment développer des applications qui communiquent via IBM MQ :
Ces ressources supplémentaires vous donneront un meilleur aperçu :
L’automatisation alimentée par l’IA augmente l’agilité dans les API, les applications, les événements, les fichiers et le B2B/EDI.
Libérez le potentiel de votre entreprise avec les solutions d’intégration IBM qui connectent les applications et les systèmes pour fournir un accès rapide et sécurisé aux données critiques.
Déverrouillez de nouvelles capacités et stimulez l’agilité métier grâce aux services de conseils cloud d’IBM. Découvrez comment co-créer des solutions, accélérer la transformation numérique et optimiser les performances grâce à des stratégies de cloud hybride et à des partenariats d’experts.