Message-oriented middleware

In informatica, un Message-Oriented Middleware (in italiano middleware orientato ai messaggi), più comunemente noto come MOM, è un'infrastruttura client/server che, distribuendo un'applicazione tra più piattaforme eterogenee,[1] ne incrementa l'interoperabilità, la portabilità e la flessibilità.

Tale infrastruttura semplifica lo sviluppo di applicazioni che usano sistemi operativi e protocolli di rete diversi, permettendo al programmatore di ignorare i dettagli degli stessi.[1][2] Ciò viene ottenuto grazie a delle API che coprono diverse piattaforme e tipologie di rete.

Il software MOM risiede sia sul client che sul server e consente l'esecuzione di chiamate asincrone fra gli stessi. I messaggi inviati verso client non disponibili vengono memorizzati in apposite code[1] che li conservano fin quando essi non sono nuovamente pronti per la ricezione. Tale meccanismo nasconde al programmatore l'implicita natura master/slave del meccanismo client/server. Il MOM si occupa anche di garantire che l'ordine dei messaggi inviati sia coerente con l'ordine con cui questi vengono ricevuti.[1]

I MOM rientrano nella categoria dei software per la comunicazione tra applicazioni tramite message-passing asincrono, differenziandosi dai software basati invece sulla metafora richiesta-risposta (request/response).

Nonostante la maggior parte dei MOM siano basati su un sistema di code di messaggi,[1] ne esistono anche implementazioni basate su sistemi di messaggistica broadcast o multicast.

Protocolli a livello applicativo per i MOM

[modifica | modifica wikitesto]
  1. ^ a b c d e Cos'è il middleware? | IBM, su www.ibm.com, 12 giugno 2023. URL consultato il 25 settembre 2024.
  2. ^ Negin M, Che cos'è il middleware?, su SnapLogic, 18 maggio 2023. URL consultato il 25 settembre 2024.
  3. ^ OASIS AMQP versione 1.0, sezioni 2.6.7-2.6.8". OASIS AMQP Technical Committee.
  4. ^ Johansson, Leif (18 aprile 2005). "XMPP as MOM". Greater NOrdic MIddleware Symposium (GNOMIS). Oslo: University of Stockholm.
  5. ^ stomp.github.io, https://stomp.github.io/stomp-specification-1.2.html. URL consultato il 25 settembre 2024.