Nelle prime concezioni dell’architettura IoT si immaginava che i dispositivi alla periferia della rete si sarebbero limitati a raccogliere dati.
L’intelligenza per analizzare quei dati e trarne informazioni sarebbe stata concentrata nel cloud, quindi nei datacenter. Si è presto capito che questa architettura non è sostenibile all’aumentare dei device installati e dei dati raccolti. Serve elaborazione anche in periferia e perciò si è diffuso il concetto di edge computing.
Il modello generico di edge computing prevede che i dispositivi e i sensori installati alla estrema periferia della rete comunichino con un device intermedio – il gateway – e non direttamente con il cloud.
Il gateway esegue una prima analisi dei dati raccolti e spesso anche una selezione di quali inviare a monte, verso il cloud. In questo modo è possibile tra l’altro gestire reazioni immediate ai dati raccolti localmente, evidenziare subito connessioni causali fra eventi e garantire un minimo funzionamento del sistema anche in assenza della connessione al cloud centrale.
Non tutte le piattaforme di analytics pensate per le applicazioni IoT supportano elementi di edge computing. Non tutte cioè sono in grado di bilanciare l’elaborazione dei dati tra centro e periferia, considerando i due tipi di elaborazione all’interno di una medesima architettura. Ci sono approcci più cloud-centrici e altri che danno una maggiore autonomia alla periferia.
Un esempio della prima concezione viene da Microsoft, dove il punto di partenza per l’estensione dell’intelligenza alla periferia della rete è Azure Stream Analytics, la piattaforma cloud per l’analisi dei dati IoT. In estrema sintesi, la piattaforma permette di concentrare nel cloud i flussi dati in tempo reale e di applicarvi funzioni di event processing descritte con un linguaggio simile a SQL.
ASA è una soluzione tipicamente cloud ma Microsoft ne ha sviluppato anche una versione da edge computing, per ora in versione ancora preliminare. Il principio è quello di installare una piattaforma software specifica (Azure IoT Edge) su dispositivi perimetrali basati su Windows o Linux. Non devono necessariamente essere PC: la piattaforma è aperta anche a sistemi embedded. In questo modo molte delle funzioni di ASA sono eseguite in locale.
Edge computing con più semplicità
Ci sono soluzioni che puntano su un approccio edge computing più semplice ma anche più trasversale, nel senso che si può implementare su dispositivi anche più semplici dei gateway. Questi non offrono funzioni di analytics sofisticate ma eseguono soprattutto operazioni di valutazione e filtro dei dati raccolti. Tipicamente, queste funzioni servono ad attivare il dialogo verso il cloud solo quando i dati raccolti sono diversi da quelli previsti, cioè sintomo di anomalie nel funzionamento del sistema.
Un esempio di questo approccio è la parte Edge Analytics della Watson IoT Platform, che si basa sul progetto Apache Edgent. Edgent è un modulo che permette di eseguire funzioni di valutazione e filtro su piattaforme Java e Android, ad esempio su device semplici quanto il Raspberry Pi. I dati “normali” restano in locale e solo quelli che soddisfano certe condizioni sono trasmessi a monte.
Qualcosa del genere, ma inserita in una architettura di stream processing più articolata, viene da Oracle con Oracle Edge Analytics (OEA). Anche in questo caso si tratta di una soluzione di edge computing in cui ai dispositivi periferici sono fornite funzioni di analisi di base eseguibili su piattaforma Java SE Embedded. Oracle però pone l’accento sulle funzioni di elaborazione in-memory di OEA e sulla sua integrazione con tutta l’architettura, più ampia, di Oracle Real Time Streaming Analytics.