Accueil les sujets Files d'attente de messages : une introduction Qu'est-ce qu'une file d'attente de messages ?
Une file d'attente de messages est un composant de middleware de messagerie qui permet à des applications et à des services indépendants d'échanger des informations.
Arrière-plan noir et bleu
Qu'est-ce qu'une file d'attente de messages ?

Une file d'attente de messages est un composant de middleware de messagerie qui permet à des applications et à des services indépendants d'échanger des informations. Les files d'attente de messages stockent les « messages », des paquets de données que les applications créent pour que d'autres applications les consomment, dans l'ordre où ils sont transmis jusqu'à ce que l'application consommatrice puisse les traiter. Cela permet aux messages d'attendre en toute sécurité jusqu'à ce que l'application de réception soit prête. S'il y a un problème avec le réseau ou l'application de réception, les messages dans la file d'attente ne sont pas perdus.

Ce modèle, appelé messagerie asynchrone, évite la perte de données et permet aux systèmes de continuer à fonctionner en cas d'échec de procédure ou de connexion. Cela permet aux développeurs de maintenir des processus et des applications distinctes, en gardant leurs communications autonomes et guidées par les événements afin de rendre l'architecture plus fiable.

Les files d'attente de messages sont disponibles dans les solutions de messagerie à travers de nombreuses options de déploiement, y compris les appareils physiques optimisés, les services cloud, les mainframes, et en tant que logiciel.

Avantages

Les solutions de files d'attente de messages sont largement utilisées dans tous les secteurs et peuvent offrir un éventail d'avantages aux développeurs ainsi qu'aux administrateurs système, notamment :

  • Livraison de messages fiable : L'utilisation d'une file d'attente de messages peut assurer que les messages critiques entre les applications ne seront pas perdus et qu'ils ne seront livrés au destinataire qu'une seule fois. Avec cette fonction, le dédoublonnage ou la logique de prévention des pertes sont inutiles.

  • Connectivité inter-applications : Certaines solutions de file d'attente de messages peuvent traiter le chiffrement des messages, la transactionnalité et d'autres aspects de la communication entre applications et services. Cela simplifie le développement d'application et permet à des architectures disparates de travailler ensemble.

  • Polyvalence : Les solutions de files d'attente de messages peuvent prendre en charge plusieurs langages tels que Java, Node.js, COBOL, C/C++, Go, .NET, Python, Ruby, et C#. Elles peuvent également prendre en charge un grand nombre de protocoles et d'API comme MQTT, AMQP, et REST, et autres.

  • Résilience : La messagerie asynchrone garantit que les erreurs propres à l'application n'auront pas d'incidence sur le système. Si un composant du système se bloque, tous les autres peuvent continuer à interagir avec la file d'attente et à traiter les messages. Cela réduit le risque que la stabilité de l'ensemble du système soit affectée par la défaillance d'un seul élément.

  • Sécurité améliorée : Une file d'attente de messages peut être en mesure d'identifier et d'authentifier tous les messages et, dans certaines solutions, elle peut être configurée pour chiffrer les messages au repos, en transit ou de bout en bout. Cela peut contribuer à la sécurité globale des applications et/ou de l'infrastructure.

  • Transferts de fichiers intégrés : Certaines solutions de files d'attente de messages incluent des fonctionnalités supplémentaires, telles que la possibilité de transférer des fichiers. Cela peut être utilisé comme une alternative au protocole FTP dans les entreprises où ces solutions sont utilisées.
Cas d'utilisation

Les environnements informatiques des entreprises d'aujourd'hui sont complexes et fortement décentralisés. La messagerie facilite l'intégration des applications et des services sur diverses plateformes en fournissant un réseau principal de messagerie partagé unique, robuste et sécurisé. Cela protège contre la perte de données et assure que les systèmes continueront à fonctionner même si la connectivité est instable.

Les files d'attente de messages sont particulièrement adaptées à l'intégration de systèmes dorsaux sur site à des services cloud. Dans les architectures cloud, les applications sont souvent réparties en petits composants indépendants. Cela simplifie leur conception et leur codage, et permet aussi de gérer leurs performances plus facilement. Les files d'attente de messages permettent à ces applications cloud découplées de communiquer entre elles ou avec les systèmes locaux.

La mise en file d'attente des messages augmente la résilience de l'architecture car les messages peuvent être persistants. Cela signifie qu'ils sont stockés sur disque jusqu'à ce que le service de réception du message en confirme le traitement. Les files d'attente de messages peuvent être utilisées dans des scénarios qui exigent un haut niveau de sécurité, de tolérance aux pannes et d'exactitude, comme le traitement des transactions financières, la réservation de vols ou la mise à jour des dossiers médicaux des patients.

Elles peuvent également être utilisées pour permettre aux applications et aux systèmes résidant dans différents clouds (qu'ils soient publics  ou privés) de communiquer, même s'ils se trouvent dans des pays ou sur des continents différents. L'utilisation d'une file d'attente de messages augmente la tolérance aux pannes et peut être utilisée pour éviter que les données ne soient dupliquées ou perdues dans des systèmes géographiquement et techniquement disparates. Comme chaque service au sein du système est découplé, ou logiquement séparé des autres, chacun peut continuer à fonctionner si d'autres services ou applications tombent en panne ou s'arrêtent.

Les files d'attente de messages fonctionnent sur des applications disparates telles que les terminaux mobiles, l'Internet des objets et les enregistrements de systèmes de transactions traditionnels. Ils prennent également en charge des plateformes variées (machines virtuelles et conteneurs) et peuvent permettre l'intégration entre les applications existantes et les solutions les plus récentes.

File d'attente de messages et...

File d'attente de messages et pub/sub
Les files d'attente de messages utilisent un modèle de messagerie point à point, dans lequel une application (appelée l'expéditeur) soumet un message à la file d'attente et une autre application (appelée le destinataire) reçoit le message de la file d'attente et le consomme. L'expéditeur et le consommateur doivent être étroitement liés l'un à l'autre et chaque message ne doit être consommé qu'une seule fois.

Si vos applications nécessitent que les messages soient distribués à plusieurs parties, il est possible d'utiliser plusieurs files d'attente de messages combinées, ou un modèle de messagerie publication/abonnement (pub/sub).

Dans la messagerie pub/sub, l'application qui produit le message est appelée éditeur et les applications qui le consomment sont les abonnés. Chaque message est publié sur un thème, et chaque application qui s'abonne à ce thème reçoit une copie de tous les messages publiés sur ce thème.

La plupart des solutions de middleware de messagerie prennent en charge à la fois les modèles de file d'attente de messages (point-à-point) et les modèles de messagerie pub/sub.

File d'attente de messages et bus de messages
Un bus de messages (un type de bus de service d'entreprise) permet aux services d'avoir un accès omniprésent aux données tout en garantissant qu'ils restent découplés et indépendants au sein d'une architecture système distribuée. Lorsque vous utilisez un bus de messages, tous les services ou applications doivent partager des types de données, un ensemble de commandes et des protocoles de communication communs (bien qu'ils puissent être écrits dans des langages différents). Les consommateurs peuvent déterminer la manière dont ils utilisent les messages.

Si des applications découplées doivent communiquer via un bus de messages, les messages doivent être transformés pour être tous du même type. En revanche, les files d'attente de message transportent les messages, qu'ils soient de types identiques ou différents.

File d'attente de messages et services Web
Les applications peuvent communiquer directement via les services Web ou des API basées sur des protocoles standards, comme le protocole SOAP (« Simple Object Access Protocol ») ou le protocole HTTP, plutôt que via un middleware de messagerie. Les services web sont largement utilisés dans les systèmes distribués, ils sont relativement simples et faciles à mettre en œuvre, ce qui fait d'eux une alternative intéressante aux files d'attente de messages dans certains cas d'utilisation et scénarios.

Cependant, à la différence des files d'attente de messages, les services Web ne peuvent pas garantir la livraison du message. Si le serveur fait défaut ou si la connexion échoue, vous devez faire en sorte que le client soit en mesure de gérer l'erreur. De plus, les services web ne disposent pas de modèles de distribution pub/sub. Le middleware de messagerie offre une plus grande tolérance aux pannes et une meilleure capacité à gérer un trafic important ou des rafales d'activités.

Pour savoir quand utiliser les API, quand utiliser la messagerie ou quand utiliser les deux, voir « Une introduction aux API et à la messagerie ».

File d'attente de messages et bases de données
Les bases de données peuvent être utilisées comme alternative aux files d'attente de messages dans certaines situations, mais la plupart des temps elles servent à des fins différentes et ne sont pas facilement interchangeables. Les bases de données sont le plus couramment utilisées pour l'archivage, et elles permettent d'accéder aux mêmes informations encore et encore. Les files d'attente de messages ne peuvent pas être utilisées à des fins d'archivage. Une fois qu'un message a été consommé, il est supprimé de la file d'attente.

Il est possible de concevoir une fonctionnalité de type file d'attente de messages dans une base de données, mais cela demande de grandes connaissances et de gros efforts de codage. Les bases de données ne peuvent être utilisées que pour reproduire des structures de file d'attente simples et ne sont pas extensibles pour des applications plus importantes. 

Découvrez « Un bref aperçu du paysage des bases de données » pour plus d'informations sur les bases de données et sur leurs capacités.

Message-queuing-as-a-service

La mise en file d'attente de messages est traditionnellement gérée par des équipes dédiées au sein du service informatique. Mais la livraison « en tant que service », en utilisant une file d'attente de messages hébergée dans le cloud, peut permettre aux individus ou aux utilisateurs de la ligne de métier (LOB) de demander des changements à l'infrastructure de messagerie de leur propre chef, par le biais d'un portail, ce qui peut accroître l'agilité.

La file d'attente de messages en tant que service fonctionne naturellement bien dans les architectures sans serveur ou de microservices courantes dans le développement cloud natif. Parce qu'il est proposé dans un modèle de service hébergé dans le cloud, le fournisseur de cloud gère l'ensemble de la mise à disposition, de l'installation et de la maintenance de votre infrastructure de messagerie, et celle-ci est hébergée dans le cloud.

Tutoriels

Ces tutoriels vous aideront si vous débutez dans le développement d'applications qui communiquent via IBM MQ :

Ces ressources supplémentaires vous apporteront un aperçu plus complet :

Solutions connexes
IBM Cloud Pak for Integration

IBM Cloud Pak for Integration combine l'automatisation de l'IA et un ensemble complet d'outils d'intégration pour connecter les applications et les données dans n'importe quel environnement cloud ou sur site.

Explorer Cloud Pak for Integration
Solutions de cloud hybride

Découvrez comment les solutions cloud hybrides créées avec IBM Cloud peuvent aider votre organisation à migrer vers le cloud, à moderniser les applications existantes et à créer de nouvelles applications cloud natives.

Explorer les solutions de cloud hybride
Ressources Qu'est-ce qu'un middleware ?

Un middleware accélère le développement des applications distribuées en simplifiant la connectivité entre les applications, les composants d'application et les sources de données back-end.

Que sont les API REST ?

Les API REST constituent un moyen souple et léger d'intégrer des applications et sont devenues la méthode la plus courante pour connecter des composants dans les architectures de microservices.

Une introduction aux API et à la messagerie

Apprenez quand utiliser les API, quand utiliser la messagerie, ou quand utiliser les deux.

Pour aller plus loin

IBM Cloud Pak for Integration® est une plateforme d'intégration hybride qui applique la fonctionnalité d'automatisation de l'IA en boucle fermée pour prendre en charge plusieurs styles d'intégration. La plateforme offre un ensemble complet d'outils d'intégration au sein d'une expérience unique et unifiée pour connecter les applications et les données dans n'importe quel environnement cloud ou sur site. Les fonctionnalités de Cloud Pak for Integration permettent de supprimer les silos de données et les actifs de l'entreprise sous forme d'API, de connecter les applications sur le cloud et sur site, et de protéger l'intégrité des données en cours grâce à la messagerie d'entreprise.

Explorer IBM Cloud Pak for Integration