Menu

Introduzione all’MQTT (Capitolo 1)

3 Giugno 2021
Nessun Commento
mqtt

I concetti base dell’MQTT

MQTT sta per Message Queuing Telemetry Transport. È un semplice e leggero protocollo di messaggistica progettato per essere utilizzato con dispositivi a larghezza di banda ridotta, il che lo rende perfetto per le applicazioni IIoT (Industrial Internet of Things). In questo articolo discuteremo dei concetti base dell’MQTT e lo compareremo con altri protocolli utilizzati nel campo dell’automazione industriale.

Cos’è l’MQTT?

L’MQTT è un protocollo di comunicazione aperto che è stato approvato come uno standard dall’Organizzazione per il Progresso degli Standard di Informazione Strutturate (OASIS) nel 2014. L’organizzazione descrive l’MQTT come un leggero, aperto e semplice protocollo di trasporto della messaggistica di pubblicazione / sottoscrizione, facile da implementare. È una soluzione ottimale per le implementazioni machine-to-machine e IoT in cui si desidera un ingombro ridotto del codice e dove è disponibile una larghezza di banda di rete limitata (pensa wireless!). Alcune delle sue caratteristiche più distintive includono:

  1. Il modello di messagistica di tipo pub/sub (pubblicazione / sottoscrizione);
  2. Un trasporto di messaggistica indipendente dal contenuto del pacchetto (payload);
  3. Traffico di rete limitato con un piccolo sovraccarico di trasporto;
  4. La capacità di recapitare i messaggi almeno, al massimo o esattamente una volta per ottimizzare il modo in cui le informazioni specifiche vengono trasferite;
  5. Il servizio di notifica quando si verifica una disconnessione anomala.

Cosa differenzia l’MQTT dai tradizionali protocolli IoT?

La caratteristica più sorprendente che distingue l’MQTT dai tradizionali protocolli di comunicazione è la sua dipendenza dal modello di pub / sub piuttosto che dall’architettura client / server più familiare. Questo modello alternativo offre alcuni benefici sostanziali che rendono l’MQTT attraente per una varietà di ragioni. In un’implementazione MQTT, sia i publisher che gli subscriber che eseguono una libreria MQTT sono indicati come client.

Nel modello client / server, i client comunicano direttamente con un end-point o un server. I modello di pubblicazione / sottoscrizione separa il mittente del messaggio (editore) dai destinatari (sottoscritti), i publisher e gli subscriber non si conoscono e non stabiliscono mai una connessione diretta. Un terzo componente della connessione, conosciuto come broker, filtra i messaggi in arrivo e li distribuisce agli subscriber appropriati.

Disaccoppiamento

Il disaccoppiamento dei publisher dagli subscriber ha diverse dimensioni che contribuiscono alla flessibilità del protocollo MQTT.

  • La separazione spaziale viene implementata tramite l’utilizzo del broker. I publisher e gli subscriber devono solo sapere come contattare il broker, non l’un l’altro.
  • L’MQTT offre il disaccoppiamento in base al tempo. Ciò significa che un broker può memorizzare i messaggi per i client che non sono in linea e consegnarli quando la risorsa è disponibile.
  • Il disaccoppiamento della sincronizzazione significa che le operazioni sui componenti non devono essere interrotte durante l’attesa di ricevere o pubblicare un messaggio in modo che coincida con la natura asincrona della maggior parte delle librerie client.

Filtraggio

Il filtraggio dei messaggi svolto dal broker è essenziale per l’efficienza dei sistemi utilizzando l’MQTT. Sono disponibili per il broker diverse opzioni di filtraggio.

  • Il filtro basato sull’oggetto utilizza l’oggetto o l’argomento per determinare quali subscriber devono ricevere un messaggio specifico. I clienti si iscrivono al broker per argomenti di interesse. Tutti i client che si iscrivono a un particolare argomento riceveranno tutti i messaggi relativi a quell’argomento.
  • Il filtro basato sul contenuto utilizza il contenuto del messaggio per determinare i destinatari. Il contenuto deve essere noto prima che il messaggio venga inviato e non può essere crittografato o modificato facilmente.
  • Il filtro basato sul tipo si utilizza con il linguaggio orientato agli oggetti e utilizza il tipo di classe di un messaggio o evento per identificare gli subscriber corretti.

L’MQTT gestisce messaggi in un modo sostanzialmente diverso rispetto a un protocollo client / server tradizionale. In un’architettura client / server, ogni messaggio viene consumato da un singolo client, ma nel modello pub / sub molti subscriber possono ricevere lo stesso messaggio. I messaggi in un’implementazione MQTT non rimangono in coda fino a che non vengono consumati come nel caso del modello client / server. È possibile che nessun client elabori i messaggi se non ci sono iscritti per quell’argomento. Gli argomenti possono essere creati in modo dinamico con l’MQTT, che elimina la necessità di creare code con un nome prima che i messaggi possano essere inviati e ricevuti.

I vantaggi dell’MQTT

Le caratteristiche dell’MQTT e del modello pub / sub offrono alcuni vantaggi che dovrebbero essere considerati quando si implementa la comunicazione per i sistemi di automazione industriale. Tra questi ci sono:

  • L’abilità di distribuire informazioni in maniera più efficiente;
  • Scalabilità aumentata attraverso l’abilità di parallelizzare le attività del broker;
  • Leggero sovraccarico e requisiti di archiviazione del codice;
  • Sicurezza basata sul permesso per proteggere la comunicazione;
  • Requisiti minimi di larghezza di banda, consentendo alle organizzazioni di massimizzare le risorse date.

MQTT nelle applicazioni pratiche

L’MQTT è attualmente utilizzato in una grande varietà di implementazioni, in casi d’uso sia industriali che domestici. Un paio di esempi dimostreranno l’utilità di questo protocollo di comunicazione.

I contatori intelligenti vengono utilizzati per monitorare e controllare il consumo energetico domestico con i client MQTT incorporati nel software dell’unità. Il protocollo fornisce la necessaria sicurezza, scalabilità e funzionalità richiesta per i sistemi progettati per rendere intelligente l’utilizzo di energia in tutta la casa.

La Deutsche Bahn AG (gestore delle linee ferroviarie tedesche), è una delle aziende di trasporto più grandi al mondo. L’azienda utilizza l’MQTT per processare i messaggi IoT per i treni a lunga percorrenza, display di testo dinamico che presentano informazioni sui clienti come orari, e nel funzionamento di scale mobili e ascensori nelle stazioni.

L’MQTT promette di diventare sempre più popolare come protocollo, scelto per implementazioni di automazione industriale grazie ai suoi numerosi vantaggi e alla natura open source. È molto più flessibile rispetto al modello client / server, che può sostituire in molti scenari di utilizzo. Se si lavora nel campo dell’automazione industriale è fondamentale conoscere i principi di funzionamento di questo protocollo.

Torna su
Panoramica privacy

Questo sito Web utilizza i cookie in modo che possiamo fornirti la migliore esperienza utente possibile. Le informazioni sui cookie sono memorizzate nel tuo browser ed eseguono funzioni come riconoscerti quando ritorni sul nostro sito Web e aiutare il nostro team a capire quali sezioni del sito Web ritieni più interessanti e utili. Puoi conoscere tutti i dettagli nella pagina privacy policy.