MQTT, il protocollo dell’IoT

Se siete professionisti dell'IoT, prima o poi, avete avuto a che fare con grosse quantità di dati e comunicazione in tempo reale. Questo connubio può essere un incubo se non si utilizzano gli strumenti giusti e si rischia di perdere molte ore di lavoro per trovare soluzioni accettabili. In questo articolo vedremo come utilizzare uno dei protocolli di comunicazione migliori attualmente disponibili. Una soluzione altamente performante integrabile anche nel caso di progetti già realizzati.

Introduzione

MQTT (ISO/IEC PRF 20922) è un protocollo binario di trasmissione dati client-server leggero, semplice e realizzato per essere implementato rapidamente anche in progetti già finiti. Queste caratteristiche lo rendono ideale per essere usato in molteplici situazioni come per esempio gli ambienti di comunicazione Macchina-Macchina (M2M) e l'Internet delle Cose, dove è maggiormente richiesto un certo risparmio sia nel codice eseguito sui dispositivi sia nella banda di comunicazione per interscambio dati in condizioni critiche come la comunicazione in tempo reale. MQTT è attualmente usato da un po tutti i servizi cloud e si candida a diventare il protocollo di riferimento per la trasmissione massiccia di dati in tempo reale.

Storia del protocollo

MQTT è stato creato da Andy Stanford-Clark e Arlen Nipper quando lavoravano rispettivamente per l'IBM e per la Arcom nel 1999. L'acronimo non avrebbe un vero e proprio significato, normalmente è identificato come MQ Telemetry Transport, dove MQ starebbe per un prodotto sviluppato da IBM per il quale fu inventato questo protocollo. Spesso si associa MQ a Message Queue ma impropriamente poiché non c'è una vera coda di messaggi anche se si può usare anche in questo modo.

L'intento degli autori era quello di realizzare un protocollo che riducesse al minimo il consumo delle batterie e il minimo utilizzo di banda nelle comunicazioni tra dispositivi. Secondo i loro scopi questo protocollo avrebbe dovuto essere semplice da implementare, con un certo grado di affidabilità, leggero nel consumo di dati trasmessi e agnostico (cioè indipendente dalla piattaforma di implementazione). Nel tempo, ciò che era nato per sistemi proprietari ed un uso interno alla società ha trovato terreno fertile nell'IoT. Nel 2010, infatti, è stato reso pubblico e senza costi di licenza.

Dopo tre anni dalla pubblicazione fu annunciato che MQTT sarebbe stato standardizzato dalla OASIS, un'organizzazione con lo scopo di promuovere e regolarizzare gli standard come AMQP, SAML, ecc. Nell'ottobre del 2014 MQTT è finalmente stato standardizzato e attualmente è disponibile la versione 3.1.1.

Il modello Publish/Subscribe

Vediamo meglio cos'è MQTT. Il modello su cui si basa è il publish/subscribe che è un'alternativa al modello client/server dove il client comunica direttamente con un endpoint, cioè il server. In MQTT, invece, si possono mantenere separati i client tra loro in modo che un certo client (che prende il nome di "publisher") possa inviare un determinato messaggio mentre altri client possono riceverlo (si chiameranno "subscriber"). In questo modo il publisher e il subscriber possono ignorare l'esistenza di altri client. In più, viene aggiunto un nuovo attore, un client filtro (detto "broker"), una specie di client proxy, in grado di poter filtrare e distribuire le comunicazioni tra publisher e subsciber. E' il broker che gestisce il flusso dati. Con il termine client si indicano i publisher, i subscriber o entrambi. Uno schema riassuntivo lo potete vedere in figura 1.

Figura 1: mqtt-schema

Figura 1: schema del mqtt

Tutta questa infrastruttura non necessita di sincronizzazione, cioè i client possono girare anche non contemporaneamente (time decoupling) e dispositivi e processi non devono interrompersi durante la ricezione o la trasmissione dei dati. In soldoni siamo in presenza di un protocollo estremamente potente, col quale [...]

Iscriviti e ricevi GRATIS
Speciale Pi

Fai subito il DOWNLOAD (valore 15€) GRATIS

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2630 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

3 Commenti

  1. Giovanni Di Maria Giovanni Di Maria 13 aprile 2017
  2. Maurizio Di Paolo Emilio Maurizio Di Paolo Emilio 14 aprile 2017
  3. Giovanni Di Maria Giovanni Di Maria 14 aprile 2017

Scrivi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Iscriviti e ricevi GRATIS
Speciale Pi

Fai subito il DOWNLOAD (valore 15€) GRATIS