Node.js appare oggi l’ambiente runtime ideale su cui fare girare applicazioni IoT. Vi spieghiamo perché.

La confusione sulle scelte tecnologiche è direttamente proporzionale all’interesse per il mondo dell’IoT e per gli scenari applicativi connessi. Spindox ritiene che uno degli ambienti più indicati su cui fare girare applicazioni IoT, per non dire quello ideale, sia Node.js. Lo abbiamo adottato in numerosi progetti recenti, anche di complessità elevata, e ne abbiamo fatto uno dei componenti fondamentali del nostro stack tecnologico. Anche in occasione di Hack ’n’ Roll, l’hackathon organizzato a Torino nel maggio scorso, lo abbiamo raccomandato a tutti i partecipanti. E l’autorevole testata online Internet of Business ha celebrato recentemente i fasti di Node.js con un breve intervento di Adrian Bridgwater: Why IoT loves Node.js.
Di che cosa stiamo parlando? Node.js è un ambiente runtime costruito sul motore JavaScript Chrome V8. Traduce quindi JavaScript in codice per Chrome V8. Si tratta di una tecnologia con almeno due vantaggi fondamentali: gestisce un gran numero di eventi in contemporanea, applicando il modello I/O di tipo event-driven asincrono, e richiede una quantità di codice modesta.
Node.js è stato utilizzato per applicazioni IoT fin dal suo debutto, nel 2012. Ma all’inizio l’interesse per questa tecnologia era poco più che hobbistico. In realtà il potenziale di Node.js è enorme, per cui le soluzioni commerciali basate su questo ambiente si stanno moltiplicando. Skycatch realizza con Node.js un sistema di “drone data management” di grande interesse. Il software consente di raccogliere, gestire e analizzare i dati rilevati con il sorvolo di droni. Si tratta di un tipico scenario IoT, caratterizzato da un cospicuo flusso di dati, che devono essere processati in tempo reale e resi disponibili per l’utente tramite interfacce di nuove generazione.
Ma Node.js si trova anche nel cuore di Monet, il cruscotto per il controllo e il monitoraggio dell’energia realizzato da Simens Smart Grid. Si tratta di una piattaforma operativa sul cloud di Microsoft Azure che, attraverso un’interfaccia utente semplice e intuitiva, svolge funzioni di monitoraggio, supervisione, controllo e ottimizzazione dei flussi energetici. Le applicazioni sono sviluppate in HTML5, JavaScript, Node.js e MongoDB su Linux. E ancora: il processore dual-core Intel Edison può essere equipaggiato con il framework di Node.js e permette quindi lo sviluppo di applicazioni IoT con tale tecnologia.
Node.js può essere utilizzato sia a livello del client, sia per lo sviluppo di componenti server. Ed è proprio lato server che dà il meglio di sé, in quando consente di migliorare la performance e ridurre il consumo di memoria. In altri termini, è possibile connettere allo stesso server un numero elevato di client. Senza contare che esistono oggi librerie sempre più ricche di connettori e API, progettati per gestire il dialogo fra software e mondo fisico: sensori, motori, display e ogni altro oggetto. Johnny-Five, per esempio, è un ecosistema vastissimo di questo tipo.