Efficient communication between devices and Internet-of-Things (IoT) management platforms is a key challenge for industrial IoT deployments, particularly regarding maintaining distributed state consistency. This thesis addresses a critical architectural limitation within the Astarte IoT platform, focusing on the distribution of user-defined rules, known as “triggers”. The original implementation relied on an inefficient database polling mechanism, which introduced high latency (up to 10-minute delays) and generated unnecessary load on the central database when synchronizing rule state across distributed device-handling processes (DataUpdaters). This work designs, implements, and evaluates a scalable, event-driven notification system to replace the legacy polling approach. The solution leverages the Elixir/Erlang ecosystem’s native clustering capabilities and distributed computing primitives. The implementation achieves performance gains by transforming the notification loop into a parallel fan-out operation. Experimental validation confirmed the effectiveness of this approach for large-scale deployments, demonstrating low-latency rule state synchronization. The final hybrid design uses the rapid, in-memory notification as the primary mechanism, while retaining the original database polling as a guaranteed fallback to ensure eventual consistency. This event-driven mechanism enhances the platform’s responsiveness and scalability.

Una comunicazione efficiente tra i dispositivi e le piattaforme di gestione Internet-of-Things (IoT) rappresenta una sfida chiave per le implementazioni IoT industriali, in particolare per quanto riguarda il mantenimento della consistenza dello stato distribuito. Questa tesi affronta una limitazione architettonica critica all'interno della piattaforma IoT Astarte, concentrandosi sulla distribuzione di regole definite dall'utente, note come "trigger". L'implementazione originale si basava su un inefficiente meccanismo di polling del database, che introduceva un'elevata latenza (con ritardi fino a 10 minuti) e generava un carico inutile sul database centrale durante la sincronizzazione dello stato delle regole tra i processi distribuiti di gestione dei dispositivi (DataUpdaters). Questo lavoro progetta, implementa e valuta un sistema di notifica scalabile ed event-driven per sostituire il precedente approccio basato sul polling. La soluzione sfrutta le capacità native di clustering e le primitive di calcolo distribuito dell'ecosistema Elixir/Erlang. L'implementazione ottiene guadagni prestazionali trasformando il ciclo di notifica in un'operazione di fan-out parallelo. La validazione sperimentale ha confermato l'efficacia di questo approccio per implementazioni su larga scala, dimostrando una sincronizzazione dello stato delle regole a bassa latenza. Il design ibrido finale utilizza la rapida notifica in-memory come meccanismo primario, mantenendo al contempo il polling originale del database come fallback garantito per assicurare la consistenza eventuale (eventual consistency). Questo meccanismo event-driven migliora la reattività e la scalabilità della piattaforma.

A Notification-Oriented System for efficient IoT Device-Platform Communication

NALGI, RICCARDO
2024/2025

Abstract

Efficient communication between devices and Internet-of-Things (IoT) management platforms is a key challenge for industrial IoT deployments, particularly regarding maintaining distributed state consistency. This thesis addresses a critical architectural limitation within the Astarte IoT platform, focusing on the distribution of user-defined rules, known as “triggers”. The original implementation relied on an inefficient database polling mechanism, which introduced high latency (up to 10-minute delays) and generated unnecessary load on the central database when synchronizing rule state across distributed device-handling processes (DataUpdaters). This work designs, implements, and evaluates a scalable, event-driven notification system to replace the legacy polling approach. The solution leverages the Elixir/Erlang ecosystem’s native clustering capabilities and distributed computing primitives. The implementation achieves performance gains by transforming the notification loop into a parallel fan-out operation. Experimental validation confirmed the effectiveness of this approach for large-scale deployments, demonstrating low-latency rule state synchronization. The final hybrid design uses the rapid, in-memory notification as the primary mechanism, while retaining the original database polling as a guaranteed fallback to ensure eventual consistency. This event-driven mechanism enhances the platform’s responsiveness and scalability.
2024
A Notification-Oriented System for efficient IoT Device-Platform Communication
Una comunicazione efficiente tra i dispositivi e le piattaforme di gestione Internet-of-Things (IoT) rappresenta una sfida chiave per le implementazioni IoT industriali, in particolare per quanto riguarda il mantenimento della consistenza dello stato distribuito. Questa tesi affronta una limitazione architettonica critica all'interno della piattaforma IoT Astarte, concentrandosi sulla distribuzione di regole definite dall'utente, note come "trigger". L'implementazione originale si basava su un inefficiente meccanismo di polling del database, che introduceva un'elevata latenza (con ritardi fino a 10 minuti) e generava un carico inutile sul database centrale durante la sincronizzazione dello stato delle regole tra i processi distribuiti di gestione dei dispositivi (DataUpdaters). Questo lavoro progetta, implementa e valuta un sistema di notifica scalabile ed event-driven per sostituire il precedente approccio basato sul polling. La soluzione sfrutta le capacità native di clustering e le primitive di calcolo distribuito dell'ecosistema Elixir/Erlang. L'implementazione ottiene guadagni prestazionali trasformando il ciclo di notifica in un'operazione di fan-out parallelo. La validazione sperimentale ha confermato l'efficacia di questo approccio per implementazioni su larga scala, dimostrando una sincronizzazione dello stato delle regole a bassa latenza. Il design ibrido finale utilizza la rapida notifica in-memory come meccanismo primario, mantenendo al contempo il polling originale del database come fallback garantito per assicurare la consistenza eventuale (eventual consistency). Questo meccanismo event-driven migliora la reattività e la scalabilità della piattaforma.
IoT Platforms
RPC Communication
Notification System
System Architecture
Performance Analysis
File in questo prodotto:
File Dimensione Formato  
Nalgi_Riccardo.pdf

Accesso riservato

Dimensione 1.86 MB
Formato Adobe PDF
1.86 MB Adobe PDF

The text of this website © Università degli studi di Padova. Full Text are published under a non-exclusive license. Metadata are under a CC0 License

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.12608/102089