Azioni

MQTT

Da SmartHome.

MQTT (Message Queuing Telemetry Transport)[modifica]

e' un protocollo di comunicazione machine-to-machine (M2M) che implementa un architettura publish/subscribe, inoltre è estremamente leggero, Consta semplicemente di un’intestazione che definisce la tipologia di messaggio, un argomento testuale e infine un payload.

MQTT definisce due tipologie di entità nella rete: un message broker e un certo numero di client. Il broker altro non è che un server ricevente tutti i messaggi dai client per poi indirizzare tali messaggi ai client di destinazione pertinenti. Per client si intende qualsiasi cosa sia in grado di interagire con il broker per l’invio e la ricezione di messaggi. Un client, dunque, può essere un sensore IoT oppure un’applicazione in un data center che processa dati IoT.

  • Il client si connette al broker e può effettuare la sottoscrizione a ogni argomento di riferimento dei messaggi del broker. Questa connessione può essere una semplice TCP/IP o una TLS crittografata per i messaggi sensibili;
  • Il client pubblica messaggi relativi a un argomento inviandoli al broker.

Dato che i messaggi MQTT sono organizzati per argomento, gli sviluppatori di applicazioni IoT hanno la flessibilità di specificare che determinati client possano interagire esclusivamente con determinati messaggi.

L’applicazione può utilizzare ogni formato di dati per il carico, come JSON, XML, binario crittografato o Base64, fintanto che i client destinatari possono analizzare il payload.

Nella sua essenza un architettura Publish/Subscribe prevede 4 elementi principali:

  • Un agent con il ruolo di Publisher: che invia messaggi al broker indirizzati ad uno specifico Topic
  • Un agent con il ruolo di Subscriber: che riceve messaggi dal broker provenienti da uno specifico Topic
  • Un Broker di comunicazione: un elemento centrale che orchestra tutti i processi di comunicazione e gestisce il ciclo di vita dei topic e dei messaggi
  • Un Topic: un canale di comunicazione dedicato.