Impostare un Sistema IoT: 5 errori da evitare
di Fabio Gatti
Il recente appuntamento di Illuminotronica 2017 si è chiuso con un numero elevato di visitatori e un notevole interesse per il settore Internet of Things, dimostrato anche dalle diverse domande poste nel corso dell’evento.
Cosa è questo mondo, cosa posso farci, la sicurezza, quale è la tecnologia giusta: sono i quesiti più frequenti ai quali ho provato a dare una risposta, cercando di far capire agli interlocutori che dietro l’interesse per le novità di un mondo pervaso da oggetti connessi, emergono le difficoltà tipiche dei progetti cutting-edge, ovvero di progetti che utilizzano tecnologie o soluzioni all’avanguardia, con alcune particolarità tipiche del mondo wireless e un numero elevato di sottosistemi intercomunicanti.
Affrontiamo in questo primo appuntamento l’approccio operativo al progetto rimandando ad ulteriori approfondimenti le tematiche relative ai Big Data e alla scelta dei protocolli di comunicazione.
Top 5 common mistakes
Come riportato in Figura 1, da una recente indagine relativa ad un campione rappresentativo di circa 300 aziende del settore tecnologico in Italia, risulta che circa il 70% sta investendo in progetti IOT: è importante ricordare quindi che alcuni errori ricorrenti possono determinare il fallimento del progetto stesso, in quanto le modifiche necessarie per porre in essere le misure correttive possono rendere il progetto antieconomico.
L’interesse per le sfide tecnologiche e per le novità possono portarci a dimenticare che al centro di un progetto deve essere posto il business e la user-experience.
A tal proposito riportiamo uno dei primi esempi di oggetti connessi presentati a CES 2011: il frigorifero Wi-Fi RF4289 di Samsung.
Tale dispositivo presenta diverse caratteristiche:
1.Technology first
- Permette di ascoltare musica
- Permette di vedere i video preferiti
- Consente di scrivere una nota
- Scarica le ricette
- Mostra le previsioni del tempo
- E’ integrato con Google Calendar
- Regola la temperatura interna da remoto
Osserviamo come in questo prodotto il focus sia sulla tecnologia: si tratta di caratteristiche che pongono la connettività e non l’utente al centro del progetto.
È interessante guardare al grafico di Figura 2 che riporta il numero di ricerche relative al prodotto eseguite su Google: ad oggi è pressoché dimenticato.
2. Connectivity outage
In un tipico sistema IoT, i sensori sono collegati al Cloud tramite gateway oppure con accesso diretto, generalmente transitando attraverso un Cloud dell’operatore di rete.
In entrambi i casi, la connettività del dispositivo è normalmente in modalità wireless, utilizzando uno dei diversi protocolli, Wi-Fi, Bluetooth, Zigbee o altro.
È molto comune trovare progetti nei quali la connessione su tratta radio è considerata equivalente a quella cablata, ovvero bassa latenza, alta velocità e nessun errore di trasmissione.
Nella realtà il collegamento radio è affetto da rumore, interferenza e temporanei outage (fuori servizio).
È importante che il progetto affronti, fino dalle specifiche iniziali, la gestione di questi casi prevedendo almeno un comportamento controllato dell’applicativo.
Un esempio tipico è un sistema costituito da un dispositivo (es. un sensore ambientale, un interruttore in un ambiente di domotica) che interagisce con un app tramite un database remoto MQTT come transaction-broker.
In caso di mancanza di connettività il dispositivo non è più raggiungibile: è necessario prevedere quindi una soluzione affinché la mancanza di controllo non diventi una situazione (potenzialmente) catastrofica.
3. La sicurezza
I recenti attacchi informatici realizzati tramite botnet progettati specificatamente per i dispositivi IOT, hanno messo in evidenza le conseguenze di una crescita esponenziale di oggetti connessi e vulnerabili.
I sistemi IoT sono intrinsecamente più esposti a minacce informatiche rispetto alle classiche reti di calcolatori. Innanzitutto si tratta di dispositivi con risorse limitate che non hanno possibilità di installare soluzioni classiche quali antivirus e firewall.
L’interfaccia radio, se non opportunamente progettata, espone inoltre a possibili perdite di informazioni: ricordiamo che i dispositivi IOT sono integrati in reti complesse, la cui sicurezza deve essere garantita sul tutto il perimetro, non soltanto sul core network.
Quale quindi la soluzione? La sicurezza deve essere una specifica di progetto considerata dalle prima fasi di design del sistema.
4. Tecnologie proprietarie
I sistemi IoT sono composti da svariati dispositivi la cui integrazione è garantita dall’utilizzo di protocolli e interfacce standard che svolgono il ruolo di collante e consentono di mantenere il sistema in vita a lungo.
Come si osserva dalla Figura 4, esistono diversi standard: da quelli relativi all’interfaccia radio, a quelli relativi al livello applicativo e al formato dei dati.
Il rispetto di uno standard consente al progettista di non legarsi ad un fornitore particolare, ma di poter scegliere sul mercato le migliori soluzioni e di fare fronte anche ad obsolescenze e miglioramenti tecnologici.
5. Sottovalutare la complessita’
Abbiamo visto come un progetto IOT sia composto da diversi sottosistemi legati da protocolli standard.
Quali sono le competenze tecniche necessarie per affrontare un progetto?
Seguendo la struttura dello stack di comunicazione possiamo elencare le seguenti figure professionali:
Device:
- Progettista firmware
- Progettista hardware
- Progettista RF
Gateway:
- Sistemista
- Progettista TLC
Cloud & App
- Sistemista Linux
- Programmatore OS mobile
Tale lista di competenze unita alla necessaria attrezzatura da laboratorio (pensiamo ad un analizzatore di spettro per la valutazione delle interferenze e l’accordatura delle antenne del dispositivo) rende il progetto antieconomico e fuori dalla portata di una piccola realtà’ industriale o di una start-up.
La soluzione si trova nella ricerca di partner industriali: una opportuna segmentazione del sistema consente di suddividere il progetto in blocchi da affidare all’esterno dell’azienda e integrare successivamente le soluzioni.
Best practice di progetto
Analizzati gli errori comuni, prendiamo in esame un possibile modello di sviluppo.
L’utilizzo di un simulatore consente di arrivare rapidamente e con costi contenuti alla realizzazione di un POC (Proof of Concept) il cui scopo è quello di mostrare il funzionamento complessivo della soluzione al cliente e ottenerne l’approvazione (decisione GO/NO_GO).
Questa pratica, oltre a costituire un de-risking del progetto, consente anche di definire con maggiore precisione le specifiche e consolidare la definizione delle interfacce.
Proprio questo ultimo punto risulta fondamentale per la fasi successive: la definizione di interfacce robuste consente di dividere in blocchi separati il sistema e affrontare la fase di implementazione in parallelo, eventualmente avvalendosi di partner.
Un buon lavoro e il tempo speso in fase di definizione consentono di superare la fase di integrazione, normalmente sottovalutata in fase di pianificazione, e arrivare con successo al test di sistema e al rilascio finale.
Conclusioni
L’Internet of Things è ormai una realtà: siamo passati da sistemi puramente sperimentali a veri prodotti in grado di presentarsi sul mercato.
Tutto questo grazie al consolidamento di alcune tecnologie abilitanti: la maturazione degli standard, lo sviluppo di device computing a basso costo, le tecnologie wireless e la miniaturizzazione dei sensori.
Affrontare un progetto IOT con un approccio sistemico rimane fondamentale: ciò consente di evitare errori comuni e arrivare rapidamente, e con successo, al rilascio del prodotto.