Le funzionalità di Zerynth Cloud consentono il collegamento alla piattaforma a centinaia di utenti e dispositivi IoT, permettendo di compiere un’ampia varietà di azioni, dalla visualizzazione di dati in tempo reale al debug dell’attività dei loro dispositivi.

Con l’aumentare del numero di dispositivi connessi, la quantità di dati che passa all’interno e all’esterno della piattaforma aumenta rapidamente. Per noi è quindi fondamentale disporre di una pipeline di streaming di dati che riceva, gestisca, filtri e trasformi tutti i dati con le migliori prestazioni possibili.

Questo post offre un’anteprima di cosa sono lo streaming e gli eventi, come vengono trattati sulla nostra piattaforma e come possono essere utili per il monitoraggio dei vostri dispositivi.

Come Zerynth Cloud gestisce i dati 

Ogni organizzazione si basa su dati: l’efficacia delle scelte aziendali e la produttività dipendono fortemente dal modo in cui questi vengono raccolti, gestiti e utilizzati. Ed è questo  il motivo per cui il modo in cui li trattiamo è importante quasi quanto i dati stessi.

Nell’IoT e nell’IIoT le informazioni vengono raccolte sull’edge da sistemi di controllo e da sensori in tempo reale e vengono inviate al cloud attraverso la rete, dove possono essere conservate o utilizzate in vari modi.

A seconda del dispositivo, della rete e di altri requisiti, i dati possono essere inviati in tempo reale o aggregati in batch, oppure ancora possono anche essere mantenuti sull’edge e inviati in un secondo momento. Ad ogni modo, una cosa importante in tutte queste soluzioni è che il timestamp dei dati deve essere corretto e preservato dall’edge al cloud. Viene da sé che un timestamp errato potrebbe potenzialmente fornire una panoramica sbagliata di ciò che sta accadendo a qualsiasi livello.

Oltre ai dati raccolti sull’edge da schede e sensori, c’è un altro tipo di dati che viene generato sia sull’edge che sul cloud: gli eventi.

Che cos’è un evento? 

Nel significato generale del termine, un evento è “un cambiamento significativo di stato” e,in questo contesto, un’informazione prodotta in reazione a qualcosa che è accaduto sull’edge o sul cloud. Gli eventi, infatti, forniscono alcune informazioni sull’attività dei dispositivi, consentendo di capire meglio il loro funzionamento ed eseguire una diagnostica in caso di malfunzionamento. Tutti questi eventi hanno anche un payload con informazioni avanzate sull’evento che si è verificato.

Ad esempio, ogni volta che un dispositivo viene connesso a Zerynth Cloud, viene prodotta una varietà di eventi:

  • Evento di autenticazione del dispositivo, per controllare l’identità del dispositivo;
  • Evento di connessione al cloud, ecc.

La pipeline di Zerynth Cloud

La piattaforma Zerynth Cloud include una pipeline di streaming di dati veloce e affidabile in grado di fornire un elevato throughput e una bassa latenza, grazie al supporto di migliaia di messaggi al secondo. Questa pipeline è stata anche implementata per supportare la tolleranza ai guasti e per essere scalabile sulla nostra piattaforma, il che significa che può offrire un livello di disponibilità molto elevato e adattare le sue prestazioni alla quantità di dati in entrata in qualsiasi momento.

La stessa pipeline viene utilizzata internamente anche per tenere traccia del traffico generato dai dispositivi e dall’utente, registrare gli  errori che si verificano sulla piattaforma e alimentare le integrazioni con servizi di terze parti .

Figura 1. Flusso di funzionamento della piattaforma Zerynth Cloud 

Un’ulteriore vantaggio è la possibilità di isolare e replicare i  dati: in questo modo tutti i dati di un workspace sono sempre separati da quelli degli altri e, in caso di emergenza, sono sempre  disponibili una o più copie delle proprie informazioni. Quando i servizi danneggiati vengono ripristinati, le copie interessate vengono conseguentemente ripristinate e sincronizzate con le altre.

Sia i dati che gli eventi possono essere inoltrati a servizi esterni di terze parti, tramite webhook o una delle altre integrazioni supportate. Una caratteristica importante della nostra pipeline di streaming di dati, inoltre, è la presenza di un meccanismo che, in caso di errore, riprova ad inviare dati ed eventi a servizi esterni per un certo numero di volte fino al completamento dell’operazione. È possibile tenere traccia degli errori che si sono verificati nelle integrazioni attive controllando la sezione Integrazioni dell’applicazione web di Zerynth Cloud.

Figura 2. Visualizzazione su Zerynth Cloud degli errori verificati

Nell’immagine in Figura 2, vengono mostrate più nel dettaglio le informazioni relative agli errori, come ad esempio la data in cui il servizio ha tentato di inviare i dati l’ultima volta, lo stato attuale, quanti tentativi sono rimasti e i payload dettagliati dell’errore che si è verificato. Inoltre, il servizio è in grado di inoltrare i dati utilizzando una frequenza di invio adattiva, che stima la frequenza di invio dei messaggi dei dispositivi e offre un giusto compromesso tra latenza e dimensione del batch.

Gli eventi generati dai dispositivi e dal cloud sono disponibili per la consultazione per un periodo di tempo limitato, consentendo di visualizzare ed eseguire il debug dell’attività dei  dispositivi senza alcun pagamento o servizio aggiuntivo. Dopo questo periodo essi vengono cancellati e diventano non disponibili per la consultazione. Infatti, la pipeline di streaming dei dati di per sé non garantisce la persistenza dei dati, ma nel caso di attivazione del servizio Zerynth Storage, memorizza tutti i dati in un database. Questo è ottimizzato per i dati di tipo timeseries e consente di memorizzare tutti i dati e gli eventi dei dispositivi, al fine di esplorarli storicamente ed eseguire altre operazioni (es. scaricare alcuni dati in un intervallo di tempo specificato, ecc.) .

Se ti interessa la tematica e desideri approfondire le potenzialità del sistema Cloud di Zerynth in contesti reali, ti invitiamo a consultare il nostro materiale tecnico e la pagina relativa ai case study.

Share This Story, Choose Your Platform!

About the Author: Matteo Arre

Matteo è un Full Stack Software Engineer e lavora nel team Cloud di Zerynth. Ha conseguito una laurea in Informatica ed è un appassionato di tecnologia.

Follow Zerynth on

Latest Posts