Cosa significa la locuzione "Internet of Things" (Internet delle cose)? La risposta dipende molto dalla posizione che ciascuno di noi occupa nella catena di approvvigionamento. Molti hanno tentato di spiegarla e le definizioni riflettono spesso le esigenze dei rispettivi settori e ordini del giorno. Tuttavia, gli ingegneri di hardware e software ne comprendono subito l'elemento essenziale: la creazione di prodotti che siano interconnessi. Di conseguenza, i sistemi integrati svolgeranno, e svolgono già, un ruolo fondamentale nello sviluppo dell'IoT. In questo articolo esamineremo Internet e i protocolli nuovi ed esistenti a supporto degli sforzi per la realizzazione dell'IoT. Prima di prendere in considerazione questi protocolli, occorre definire l'argomento principale, poiché le attività del dispositivo finale detteranno la maggior parte dei requisiti relativi ai protocolli da utilizzare.
Differenza tra IoT di consumo e IoT industriale
I requisiti software per i dispositivi IoT industriali e quelli di consumo possono differire notevolmente. Anche se questi due ambiti possono condividere un kernel e servizi di basso livello comuni, il middleware richiesto dalle rispettive applicazioni può essere enormemente diverso. L'IoT industriale, ovvero un nodo WSN, rappresenta uno stack di software per un dispositivo IoT industriale, ad esempio un nodo di sensori wireless (WSN, Wireless Sensor Node). Questo dispositivo a basso consumo energetico e a costi ridotti può essere alimentato interamente a batteria. In genere, un simile dispositivo utilizza un processore a 32 bit. Può utilizzare anche un processore a 8 o 16 bit ma, in tal caso, gli stack di comunicazione devono essere eseguiti su moduli aggiuntivi. Di solito questo genere di dispositivo utilizza un protocollo di rete ad alta efficienza, ad esempio 6LoWPAN, per ridurre i tempi di trasmissione e consentire il risparmio di energia. Può inoltre comunicare su brevi distanze in modalità wireless mediante Bluetooth. In quanto nodo edge, richiede il trasferimento dei dati dalla rete wireless a una rete basata su IP (rete Internet pubblica o locale) e utilizza una rete Ethernet o Wi-Fi a basso consumo.
Ovviamente, i requisiti software per questo dispositivo sono di gran lunga superiori. Potrebbe essere necessario l'uso di una Java VM o perfino di un protocollo di mercato verticale. Purtroppo, l'IoT di consumo è molto frammentato in termini di protocollo di mercato verticale (protocollo di applicazione). Molte aziende stanno proponendo soluzioni proprietarie. Nel mercato del consumo domestico, ad esempio:
Vi sono altri esempi, come lo standard di comunicazione PLC (Power Line Communication): HomePlug e HomeGrid. Anche nel mercato verticale medico organizzazioni come Continua Alliance, IHE (Integrating the HealthCare Enterprise) o IEEE stanno sviluppando e proponendo degli standard.
Micrium non offre simili protocolli. Un produttore di apparecchiature i cui prodotti devono essere compatibili con uno di questi protocolli IoT di consumo deve registrarsi con queste organizzazioni e quindi integrare tali protocolli nella propria applicazione di prodotti.
Nell'IoT industriale, le iniziative guidate dal mercato non sono così numerose. L'attività maggiore in questo ambito è definita Industrial Internet Consortium (IIC), i cui membri fondatori sono AT&T, Cisco, GE, Intel e IBM. Oltre a IIC, tuttavia, lo sviluppo di dispositivi e sistemi IoT è pressoché esclusivamente proprietario. Ecco perché attualmente la conoscenza di Internet e dei protocolli Internet (IP) è così importante per gli sviluppatori di sistemi integrati. Protocollo Internet (IP)
L'utilizzo della tecnologia IP è fondamentale per l'IoT poiché consente l'interoperabilità dei sistemi. Questa caratteristica potrebbe non apparire così determinante oggi ma, con l'evolversi dell'IoT, l'interoperabilità dei sistemi diventerà una delle principali funzionalità in grado di generare profitti. Ethernet/Wi-Fi e 6LoWPAN dipendono in gran parte da IPv4 e IPv6.
Protocolli IP utilizzati in IoT
È certamente possibile creare un sistema IoT con tecnologie Web esistenti, anche se sarebbe meno efficiente dei protocolli più recenti. HTTP(S) e WebSocket sono standard comuni, insieme a XML o JavaScript Object Notation (JSON) nel payload. Quando si utilizza un browser Web standard (client HTTP), JSON fornisce un livello di astrazione per gli sviluppatori Web al fine di creare un'applicazione Web Stateful con una connessione duplex persistente a un server Web (server HTTP) mantenendo aperte due connessioni HTTP.
HTTP
HTTP è la base del modello client-server utilizzato per il Web. Il metodo più sicuro per implementare HTTP nel proprio dispositivo IoT è quello di includere solo un client, senza server. In altre parole, la sicurezza è maggiore se il dispositivo IoT può avviare connessioni a un server Web, ma non è in grado di ricevere richieste di connessione. Dopotutto, non è auspicabile che macchine esterne abbiano la possibilità di accedere alla rete locale dove i dispositivi IoT sono installati.
WebSocket
WebSocket è un protocollo che fornisce la comunicazione full-duplex su una singola connessione TCP su cui i messaggi possono essere inviati tra client e server e fa parte della specifica HTML 5. Lo standard WebSocket semplifica molto la complessità della gestione delle connessioni e della comunicazione Web bidirezionale. L'utilizzo di WebSocket in abbinamento al protocollo HTTP è una buona soluzione per i dispositivi IoT in grado di sostenere i payload HTTP.
XMPP
XMPP (Extensible Messaging and Presence Protocol) è un buon esempio di una tecnologia Web esistente che trova un nuovo impiego nello spazio IoT.
Il protocollo XMPP ha origine dalle tecnologie di messaggistica istantanea e informazioni sulla presenza e si è esteso a chiamate vocali e video, collaborazione, middleware leggero, aggregazione di contenuti e indirizzamento generalizzato di dati XML. Attualmente tale protocollo si contende la gestione su vasta scala di grandi elettrodomestici quali macchine per il lavaggio, l'asciugatura, la refrigerazione e così via.
I punti di forza del protocollo XMPP sono l'indirizzamento, la sicurezza e la scalabilità, che lo rendono la soluzione ideale per applicazioni IoT orientate al mercato del consumo.
HTTP, WebSocket e XMPP sono solo esempi di tecnologie utilizzate per IoT. Anche altri gruppi stanno lavorando senza sosta per sviluppare soluzioni adatte alle nuove sfide presentate da IoT.
Protocolli dedicati per IoT
Molti esperti IoT definiscono i dispositivi IoT dei sistemi vincolati perché ritengono che tali dispositivi debbano essere più economici possibile e utilizzare le MCU di dimensioni minori disponibili sul mercato, pur mantenendo la capacità di eseguire uno stack di comunicazione.
Attualmente, l'adattamento di Internet per IoT costituisce una delle maggiori priorità per molti enti di standardizzazione globale.
Se il sistema in uso non richiede le caratteristiche di TCP e può sussistere con le più limitate funzionalità UDP, la rimozione completa del modulo TCP aiuta a ridurre considerevolmente le dimensioni totali dell'ingombro del codice del prodotto. Questo è un vantaggio di cui l'universo IoT può usufruire grazie a 6LoWPAN (per WSN) e CoAP (protocollo Internet leggero). CoAPAnche se l'infrastruttura Web è disponibile e utilizzabile per dispositivi IoT, è troppo pesante per la maggior parte delle applicazioni IoT. Nel luglio 2013, IETF ha rilasciato il Constrained Application Protocol (CoAP) per l'utilizzo con reti e nodi (vincolati) con perdita di dati e a basso consumo energetico (LLN). CoAP, come HTTP, è un protocollo RESTful. CoAP è semanticamente allineato con HTTP e dispone perfino di una mappatura one-to-one bidirezionale con HTTP. I dispositivi di rete sono vincolati da microcontroller di dimensioni minori con piccole quantità di memoria flash e RAM, mentre i vincoli su reti locali, ad esempio 6LoWPAN, sono dovuti a percentuali di errore di pacchetto elevate e a una bassa velocità di elaborazione (decine di kilobit al secondo). CoAP può essere un buon protocollo per dispositivi a batteria o con approvvigionamento energetico. Caratteristiche di CoAP: CoAP utilizza UDP Poiché CoAP utilizza UDP, alcune delle funzionalità TCP sono replicate direttamente in CoAP. Ad esempio, CoAP distingue tra messaggi confermabili (che richiedono un riconoscimento) e non confermabili.
|