Ideato circa 20 anni fa da Arlen Nipper e Andy Stanford-Clark (IBM), MQTT (Message Queue Telemetry Transport) si è affermato come il protocollo di comunicazione più diffuso nell’IoT industriale, per la sua natura di meccanismo snello e intelligente data dalla leggerezza ed efficienza di banda.
Entrambi gli specialisti stavano cercando di capire come ottenere più informazioni su una larghezza di banda limitata, rendendo i tempi di risposta dalle loro apparecchiature di controllo sul campo ancora più veloci.
Obiettivo centrato, tanto più nel più recente scenario dell’IoT, dell’elettronica embedded e dei device industriali interconnessi che vede un enorme quantità di dati da gestire.
Nel 2016 l’ente transnazionale OASIS (Organization for the Advancement of Structured Information Standards) ha dichiarato che il protocollo MQTT è lo standard di riferimento per la comunicazione per l’Internet delle Cose.
A sua volta la versione MQTT 3.1.1 rilasciata da OASIS è stata approvata anche dai comitati tecnici dell’ISO (International Organization for Standardization) e dell’IEC (International Electrotechnical Commission), introducendo lo standard ISO/IEC 20922. Ad Aprile del 2019 OASIS ha rilasciato le specifiche della versione 5.0.
Il modello di scambio dei messaggi
A differenza di HTTP (l’altro più diffuso protocollo di comunicazione basato su TCP/IP), che si basa su un modello request/response, l’MQTT utilizza il meccanismo publish/subscribe per scambiare messaggi tramite un apposito “message broker”. Anziché inviare messaggi a un determinato set di destinatari, i mittenti pubblicano i messaggi su un certo argomento (topic) sul message broker, Ogni destinatario si iscrive agli argomenti che lo interessano e il message broker lo distribuisce a i destinatari (ogni qual volta che un nuovo messaggio viene pubblicato su quel determinato argomento). In questo modo è molto semplice configurare una messaggistica uno-a-molti. Di fatto viene permessa una comunicazione asincrona tra oggetti, integrando diverse sorgenti. Questo sistema alleggerisce di molto la banda, consentendo di trasferire soltanto le informazioni utili, rendendo scalabile il sistema, requisito ormai fondamentale per l’installazione di impianti interconnessi.
I punti di forza
Il successo del protocollo MQTT in ambito IoT/M2M deriva da una serie di importanti caratteristiche. Vediamo brevemente le principali.
Codifica binaria
MQTT prevede l’utilizzo di una codifica binaria efficiente per la serializzazione dei messaggi. La dimensione della parte fissa dell’header dei messaggi MQTT è costituita da 2 bytes, il che equivale ad un bassissimo overhead. Ciò rende l’MQTT un protocollo ideale per lo scambio di grosse quantità di dati in piccoli pacchetti, su reti poco performanti.
Consumi ridotti
MQTT ha prestazioni indipendenti rispetto alla tipologia e al formato dei dati scambiati. È pensato infatti per la comunicazione in modalità quasi real-time, tra dispositivi eterogenei caratterizzati da ridotte capacità computazionali e spesso alimentati a batteria. È il caso ad esempio delle applicazioni M2M con reti ad elevata latenza e banda disponibile limitata o costosa.
Comunicazione orientata agli eventi
MQTT assume un modello di comunicazione Publish/Subscribe orientato agli eventi. Tale modello non impone ai client di effettuare un polling verso il server per verificare la presenza di nuove informazioni. Grazie alla presenza del Message Broker, il protocollo MQTT garantisce un perfetto disaccoppiamento tra chi pubblica (publisher) e chi consuma (subscriber) le informazioni, supportando sia i casi d’uso in cui i client sono sempre connessi (“always-connected”) sia quelli in cui, a causa dell’inaffidabilità della rete sottostante, gli stessi possono disconnettersi e riconnettersi continuamente (“sometimes-connected”).
Qualità del servizio
Altro aspetto tecnologicamente significativo di MQTT è rappresentato dalla possibilità di utilizzare tre diversi livelli di QoS (Quality of Service), che publisher e subscriber possono negoziare attraverso il Broker in fase di connessione, a seconda delle specifiche.
Sicurezza
Non ultimo, dal punto di vista della sicurezza con MQTT si possono implementare meccanismi di autenticazione, sfruttando la possibilità di trasferire nome utente e password all’interno dei messaggi trasmessi. È possibile anche utilizare tecniche dia cifratura della comunicazione ad esempio con connessioni TLS (Transport Layer Security).
Le soluzioni MQTT di SENECA
Nell’ambito degli apparati SENECA MQTT è supportato da datalogger, controllori, gateway/router ed HMI multifunzione. In aggiunta a OPC UA, http post e altri standard questa tecnologia potenza la diffusione dell’IIoT
Gli integratori di sistemi, i costruttori di macchine e di tecnologie possono beneficiare immediatamente del fatto che con MQTT i dati provenienti da un dispositivo industriale che comunica su Ethernet industriale o fieldbus, possono essere trasmessi ai sistemi IT / IoT in modo semplice e sicuro.
Inoltre, al di là delle dinamiche di generazione dei dati, grazie a MQTT i datalogger, i gateway, i controllori e gli HMI che lo supportano consentono di integrare e analizzare i dati provenienti da macchine, gli impianti e installazioni, al fine migliorare la produttività, la sostenibilità e i processi decisionali,