Implementazione
Considerando l’obbiettivo della relazione, in questa sezione verranno presentati i principali linguaggi e le principali tecnologie utilizzate senza entrare nei dettagli implementativi.
Physical Layer
La Centralina di zona è stata sviluppata utilizzando il linguaggio C++ sfruttando il framework Wiring mentre il Gateway di blocco è stato sviluppato utilizzando Node-RED.
Digital Twins Layer
Per la modellazione dei Digital Twins si è sfruttato il linguaggio Digital Twins Definition Language (DTDL) mentre per lo sviluppo della Azure Function si è utilizzato C#.
Application Layer
Considerando che ogni microservizio, seguendo i principi dello stile architetturale, può essere implementato utilizzando lo stack tecnologico più adeguato, si è fatto uso del linguaggio Java per il microservizio Automation Management e di Kotlin per i restanti. Le principali librerie e framework utilizzati sono stati:
- Kafka Clients, per l’interazione con l’event broker
- Ktor, per la realizzazione delle API REST
- Kmongo, per l’interazione con MongoDB
- JaCaMo, per lo sviluppo del sistema multi-agente presente nel microservizio Automation Management
- Vert.X, per lo sviluppo del microservizio API Gateway
- RxKotlin, per agevolare la gestione e il mapping del flusso degli eventi nel microservizio Digital Twins Event Gateway