iotcloud_red
adv

Assistiamo sempre più al diffondersi di dispositivi connessi tra loro ed alla rete. Come comunicano?

Protocolli di comunicazione

Tutti i dispositivi connessi ad Internet, o comunque a reti locali, utilizzano il protocollo standard TCP/IP per la comunicazione tra essi. Tale protocollo fa sì che i messaggi siano ricevuti dai corretti destinatari.

Su tali protocolli si poggiano ulteriori protocolli di comunicazione (e.g.: HTTP, MQTT, etc.) che stabiliscono il formato del messaggio, il suo linguaggio, se ad una comunicazione deve corrispondere o meno una notifica, di regole di sicurezza e così via.

IoT

I dispositivi dell’Internet of Things, soprattutto i più semplici, sono spesso sensori, magari alimentati a batteria e dotati di bande limitate. Per interagire con essi, sempre via network, la soluzione più ovvia sembrerebbe il classico protocollo HTTP. Esso, tuttavia, genera una mole di traffico non necessaria. Se, ad esempio, si desidera visualizzare i dati aggiornati si dovrebbe inviare una richiesta al dispositivo che li fornisce e, magari, immediatamente esso si aggiorna, pertanto i dati in nostro possesso sarebbero già obsoleti e dovremmo re-inoltrare una richiesta ulteriore. Si potrebbe, invece ricevere i dati appena aggiornati ma ciò implica traffico anche quando non siamo interessati ad essi.

MQTT

Il protocollo MQTT (Message Queue Telemetry Transport) è un protocollo leggero ottimizzato per situazioni in cui è richiesto un basso consumo di banda e di energia. Fu inventato nel 1999 da Andy Stanford-Clark e Arlen Nipper, ricercatori rispettivamente di IBM e di Arcom, le specifiche sono pubblicate sul sito IBM.

Al centro della comunicazione, secondo MQTT, c’è un server sempre attivo chiamato Broker che riceverà e smisterà i messaggi ricevuti dai vari dispositivi, identificati come client, ai soli dispositivi interessati che potranno, quindi restare in stato di risparmio energetico ed attivarsi solo quando necessario per rilevare i dati ed inviarli al Broker.

Il meccanismo di comunicazione è detto publish-subscribe: i dispositivi si “registrano” (subscribe) al Broker, specificando uno o più topic, argomenti per i quali sono interessati a ricevere dati. Quando un dispositivo “pubblica” i suoi dati li correda anche del topic, specificando, così, dove tali messaggi saranno pubblicati e, quindi consentendo al Broker di determinare a chi smistarli.

Testamento ed ultime volontà

Cosa succede se un dispositivo invia un dato e, successivamente, ha un problema per cui va offline? Gli altri dispositivi avranno dati non aggiornati. In tal caso esiste un setting, una configurazione speciale che il client invia al Broker. Essa è chiamata Last Will and Testament ed informa il Broker di notificare a tutti gli altri dispositivi registrati ai suoi topic l’evento di disconnessione causa problemi.

3 Livelli di servizio

MQTT dispone, a seconda dei casi d’uso di 3 livelli di servizio

  • At most once: messaggio distribuito in base alle capacità della rete. Si usa con i sensori poiché, anche se si perde un pacchetto, la lettura verrà presto rimpiazzata con una successiva.
  • At least once: la ricezione è sempre assicurata ma potrebbero esserci duplicati
  • Exactly once: il messaggio arriva sempre ed una sola volta. Ottimale per i sistemi di fatturazione.