
IoT e MQTT
Acronimo di Message Queuing Telemetry Transport, è un protocollo di messaggistica leggero ampiamente utilizzato per la comunicazione machine-to-machine e per l’ IoT. Si basa su un modello publish / subscribe, il quale consente ai dispositivi di pubblicare messaggi e di sottoscriversi attraverso un broker.
La sua efficienza lo rende ideale per ambienti con larghezza di banda limitata, connessioni intermittenti o risorse ridotte. Il protocollo supporta la comunicazione asincrona, così da garantire affidabilità e sicurezza anche in condizioni di rete instabili. È molto utilizzato in domotica, monitoraggio industriale e sistemi embedded.
Bi System supporta la logica IoT.
TECH
Come funziona
MQTT adotta il modello publish / subscribe, dove i client non comunicano direttamente tra loro, ma tramite un broker che gestisce l’instradamento dei messaggi. Il client che trasmette pubblica il suo messaggio (payload) in un canale (topic), tutti i client che hanno sottoscritto quel determinato topic riceveranno il payload non appena saranno connessi.
Può essere integrato in browser web con WebSocket Secure (WSS) usando client JavaScript. I messaggi sono incapsulati in pacchetti WSS per la trasmissione sicura. Il protocollo non è RESTful il quale usa il modello richiesta-risposta, ma utilizza una connessione TCP permanente. La versione 5 introduce un meccanismo simile a REST.
Perchè MQTT
Perchè si distingue per la sua capacità di adattarsi a grandi infrastrutture e ambienti multi-tenant. Grazie alla gestione dei topic gerarchici, è possibile strutturare la comunicazione in modo ordinato e modulare, e questo è particolarmente utile in ambienti con migliaia di devices, in smart cities, contesti industriali, o agricoltura di precisione.
Un altro motivo per scegliere questo protocollo è la sua capacità di gestire la qualità del servizio (QoS). I tre livelli di QoS (0, 1, 2) permettono di bilanciare affidabilità e prestazioni in base alle esigenze dell’applicazione: si può scegliere tra consegna “best effort”, conferma di ricezione o garanzia di consegna esatta una sola volta.
Il protocollo consente anche la gestione del flusso dei dati tramite il cosiddetto “Last Will and Testament”, che permette di notificare automaticamente la disconnessione improvvisa di un client. Questo meccanismo è prezioso per rilevare guasti o interruzioni in tempo reale, migliorando la resilienza dell’intero sistema.
Disaccoppiamento spaziale
editori e sottoscrittori non si conoscono direttamente.
- Significato: I publisher (editori) e i subscriber (sottoscrittori) non si devono conoscere né stabilire una connessione diretta.
- Vantaggio: Questo favorisce la scalabilità e la modularità: i dispositivi comunicano senza sapere chi riceverà i messaggi.
- Esempio: Un sensore pubblica dati sulla temperatura e non ha idea di quanti dispositivi li riceveranno, né chi siano.
Disaccoppiamento temporale
non è necessaria la simultaneità della connessione.
- Significato: Non è necessario che publisher e subscriber siano connessi entrambi nello stesso momento.
- Vantaggio: Questo permette che i messaggi vengano archiviati da parte del Broker fino a che il destinatario non è pronto.
- Esempio: Un dispositivo mobile può essere offline e ricevere i messaggi successivamente quando si riconnette.
Disaccoppiamento di sincronizzazione
i messaggi possono essere inviati/recepiti asincronamente.
- Significato: L’invio e la ricezione dei messaggi non devono avvenire in modo sincronizzato.
- Vantaggio: Questo migliora l’efficienza e la reattività del sistema, ogni parte comunica quando può, senza dover aspettare.
- Esempio: Il publisher può continuare ad inviare dati mentre il subscriber li elabora con i suoi tempi.
TECH
Il modello OSI
Nel contesto del modello ISO/OSI, MQTT opera principalmente al livello 7, ovvero il livello applicativo. Qui definisce il formato dei messaggi, le regole di comunicazione tra client e broker, e le modalità di gestione delle sessioni. Tuttavia, per funzionare, MQTT si appoggia a protocolli di livello inferiore: tipicamente utilizza TCP/IP (livelli 4 e 3) per garantire la consegna affidabile dei dati. In alcuni casi, può essere incapsulato anche su TLS (livello 6) per garantire la sicurezza. Sebbene non interagisca direttamente con tutti i livelli del modello OSI, la sua implementazione dipende fortemente dalla corretta configurazione degli strati sottostanti.
L’organo ufficiale che definisce e approva le specifiche del protocollo è OASIS.

TECH
Il Broker per IoT
Il broker MQTT è il cuore del meccanismo alla base del quale c’è l’ IoT e il fulcro dell’architettura publish/subscribe. Riceve i messaggi pubblicati dai client e li instrada verso i destinatari che hanno sottoscritto i relativi topic. Non conserva lo stato dei client, ma gestisce connessioni persistenti e garantisce la consegna secondo il livello di QoS scelto. Il broker semplifica la comunicazione asincrona e consente una distribuzione efficiente dei dati, anche in ambienti con elevata latenza o connettività intermittente.
Il broker può implementare meccanismi di autenticazione (username/password, certificati) e cifratura tramite TLS/SSL per garantire la sicurezza dei dati. Gestisce le sessioni dei client, inclusi parametri come il “clean session” e il “persistent session”, che determinano se mantenere lo stato tra le connessioni. Inoltre, supporta il “Last Will and Testament”, permettendo di notificare eventi critici come disconnessioni improvvise. Queste funzionalità rendono il broker adatto a sistemi mission-critical e applicazioni industriali.
I broker moderni supportano la scalabilità orizzontale tramite clustering e bilanciamento del carico. Possono gestire milioni di messaggi al secondo e migliaia di connessioni simultanee. Offrono API per l’integrazione con sistemi esterni, come database, servizi cloud e piattaforme di analytics. Alcuni broker includono funzionalità avanzate come il filtraggio dei topic, la gestione multi-tenant e il supporto per MQTT v5, rendendoli strumenti versatili per ambienti IoT, smart cities e infrastrutture distribuite.