Le terme message-oriented middleware (MOM), intergiciel à messages en français, désigne une famille de logiciels qui permettent l'échange de messages entre les applications présentes sur un réseau informatique. Les MOM font partie des éléments techniques de base des architectures informatiques.
Ils permettent une forme de couplage faible entre applications.
Transport de messages. Les messages comportent deux parties: l'en-tête technique, utilisée par le MOM et les données qui peuvent être dans n'importe quel format.
Communication asynchrone. L'application émettrice d'un message et l'application réceptrice du message n'ont pas besoin d'être actives en même temps. La file d'attente reçoit le message de l'application émettrice et le stocke jusqu'à ce que l'application réceptrice vienne lire le message.
Routage. Les messages peuvent être routés entre MOM. Par exemple, pour router un message entre deux sites distants disposant chacun d'un MOM installé localement.
Transformation des données. La plupart des MOM permettent de changer le format des données contenues dans les messages pour les adapter à l'application réceptrice. Cette capacité est proche de celle des outils d'EAI (enterprise application integration) dont ils constituent parfois le noyau.
Persistance des messages. Les messages présents dans les files d'attente peuvent être sauvegardés sur un support physique pour en assurer la conservation en cas de panne.
Fiabilité. Chaque message envoyé par une application fait l'objet d'un accusé de réception par le MOM. Chaque application qui consomme un message envoie un accusé de réception au MOM. Couplé avec la persistance, ce mécanisme permet de garantir qu'aucun message ne sera perdu dans son transfert entre les applications.
Les MOM ont deux modes de fonctionnement principaux :
Point à point : une application produit des messages et une application les consomme. Les messages ne sont lus que par un seul consommateur. Une fois qu'un message est lu, il est retiré de la file d'attente.
Publish-subscribe (par abonnement) : les applications consommatrices des messages s'abonnent à un topic (sujet, catégorie de messages). Les messages envoyés à ce topic restent dans la file d'attente jusqu'à ce que toutes les applications abonnées aient lu le message.
Dans le monde Java, l'APIJava Message Service est la norme pour accéder aux fonctionnalités des MOM.
Au niveau protocole :
AMQP (Advanced Message Queuing Protocol) définit un protocole sécurisé, fiable et ouvert pour les MOMs, c'est un standard OASIS depuis , approuvé par l'ISO depuis .
MQTT (MQ Telemetry Transport) offre un protocole publish-subscribe adapté à la communication dans un contexte M2M et IoT où une faible empreinte et une économie de la bande passante sont nécessaires. MQTT est un standard OASIS depuis , approuvé par l'ISO depuis .