Regent 2B
Mobile/Wireless
 

16/05/2013

Share    

Internet delle cose: c’è uno standard

OASIS ha scelto MQTT per una messaggistica comune in fase di trasmissione dei dati

Di Internet delle cose se ne parla ormai da anni, dove  i cosiddetti sistemi embedded sono destinati con il tempo a connettersi sempre di più a alle reti e consentire alle organizzazioni di raccogliere informazioni utili per lo svolgimento dei rispettivi processi. Per poter completare pienamente il percorso tecnologico utile a questa rivoluzione da miliardi di dispositivi online è (era) però necessario trovare un protocollo di messaggistica comune. Protocollo che sembra essere stato identificato in MQTT (MQ Telemetry Transport), prescelto da OASIS (Organization for the Advancement of Structured Information Standards) proprio per andare incontro a questa esigenza di standardizzazione, dando vita anche a un comitato tecnico che coinvolgerà diversi operatori del settore.

 

 

La leggerezza al centro

 

In breve MQTT - che ha avuto la sua genesi nel 1999 grazie a un’idea di Andy Stanford-Clark (IBM) e Arlen Nipper  (Eurotech) - viene descritto come un protocollo di messaggistica estremamente leggero progettato per dispositivi limitati e reti a bassa larghezza di banda, alta latenza o sostanzialmente inaffidabili. I principi su cui si basa sono quelli di abbassare al minimo le esigenze in termini di ampiezza di banda e risorse mantenendo nel contempo una certa affidabilità e grado di certezza di invio e ricezione dei dati. E’ il mondo del machine-to-machine e, appunto, dell’Internet delle cose ma, affermano i promotori di questo protocollo, anche di quelle applicazioni mobili per le quali va tenuto in maggior conto il consumo di banda in rete e di energia dei dispositivi.

Il protocollo viene già utilizzato all’interno di sensori in grado di comunicare con un broker attraverso collegamenti satellitari, in ambienti SCADA (Supervisory Control and Data Acquisition), oppure su connessioni occasionali di dispositive medicali, oltre ad ambienti di domotica. Diverse sono quindi le applicazioni che già lo implementano interoperando con vari prodotti che possono godere di caratteristiche di messaggistica così descritte. La prima è la possibilità di pubblicare/sottoscrivere pattern di messaggi per mettere a disposizione una distribuzione da uno a molti e un disaccoppiamento delle applicazioni. Quindi una tecnologia di trasporto dei messaggi agnostica rispetto al contenuto del payload, con l’uso nel contempo del protocollo TCP/IP, alla base di internet così come la conosciamo oggi, per fornire connettività di rete di base.

 

 

Tre livelli di servizio

 

Dal punto di vista delle qualità del servizio tre sono invece i livelli sui quali viene posta l’attenzione e che possono essere prescelti. Il primo è chiamato ‘at most once’ (al massimo una volta), con la distribuzione dei messaggi in base a quanto di meglio garantito dalla rete TCP/IP sottostante. Visto che in questo caso la perdita di messaggi o la loro duplicazione possono comunque verificarsi, l’uso ottimale è identificato con i dati raccolti da sensori ambientali dove non importa se una singola lettura viene smarrita in quanto quella successiva godrà presto di un’altra pubblicazione. Con il livello di servizio ‘at least once’ (almeno una volta) viene invece assicurato l’arrivo dei messaggi, ma possono comunque verificarsi sempre dei duplicati. L’ultimo grado di servizio, quello più elevato, è definito ‘exactly once’ (esattamente una volta), con l’assicurazione che i messaggi arrivino, appunto, esattamente una volta. Ecco che i sistemi di billing possono essere il target ideale, considerato che la duplicazione o perdita di messaggi può portare all’applicazione di tariffe che non corrette. Altre caratteristiche evidenziate di MQTT sono un overhead di trasporto ridotto, grazie a un header a lunghezza fissa da 2 byte, e scambi minimizzati per ridurre il traffico di rete. Infine il protocollo presenta un meccanismo per la notifica alle parti interessate di una disconnessione anormale di un client, utilizzando funzioni battezzate Last Will e Testament.

MQTT supporta infine anche un certo grado di sicurezza considerato che con un suo pacchetto è possibile passare direttamente anche nomi utente e password. Se si vogliono cifrare i dati trasmessi, tra i metodi suggeriti ci sono invece l’affiancamento di SSL (Secure Sockets Layer), il che in ogni caso aggiunge pesantezza al tutto, oppure l’uso di applicazioni di criptatura a monte e a valle della trasmissione.

 

Fonti: mqtt.org, www.ibm.com
 

 

TORNA INDIETRO >>