Newer
Older
# Introduzione
Il progetto presentato dal gruppo2 si occupa di fornire ad un utente funzionalità di domotica in una LAN, e sono le seguenti: controllo remoto delle luci, sistema di antifurto e metodo di deterrenza delle intrusioni.
# 1. Specifiche funzionali
## 1.1. Controllo tramite sensori ed attuatori
Il sistema nella LAN è costituito da una beaglebone (con attuatori e led) e un arduino (che presenta un sensore di luminosità).
Gli attuatori simulano gli interruttori e i sensori di movimento. Questi ultimi controllano l'attivazione dell'allarme dell'antifurto e, assieme agli interruttori e al sensore di luminosità, lo stato delle luci.
La parte in cloud consiste di un server che fornisce una webapp, dalla quale poter controllare gli elementi della LAN; il servizio di autenticazione con Keycloak; il domain manager, responsabile di mantenere la consistenza dei dati; e il cloud app manager, il quale s'interfaccia con il broker mosquitto che è connesso in bridge con la beaglebone della LAN.
I servizi sono stati resi sicuri con l'implementazione di HTTPS e per il broker con TLS (e WSS).
# 2. Analisi
## 2.1. Installazione del sistema in reti private
L'installazione del sistema avviene senza configurazioni particolari poiché l'uso di mosquitto, con la configurazione da noi impostata, rende il sistema plug-n-play, ovvero è sufficiente collegarlo alla rete per avere le funzionalità disponibili.
## 2.2. Accessibilita' da rete pubblica e da rete privata
Tutti i microservizi comunicano tra di loro grazie a connessioni ai broker mosquitto. I due (???) broker sono connessi tra loro grazie al bridging, che ci permette di effettuare lo scambio di comandi su entrambi i servizi.
Grazie a questa caratteristica, l'accesso può avvenire sia dalla rete pubblica che da quella privata, senza distinzioni.
## 2.3. Caratteristiche del traffico dati da sostenere e vincoli in tempo reale
Essendo un sistema di domotica, è necessario che i comandi impartiti dall'utente vengano attutati una ed una sola volta.
## 2.4. Tecniche viste a lezione con cui soddisfare i requisiti
Per soddisfare i requisiti, e' possibile usare delle chiamate REST o il protocollo MQTT. Entrambe queste modalita' sono utilizzabili poiche' permettono la comunicazione tra servizi diversi.
L'implementazione dei microservizi permette un tempo di installazione minore grazie alla dimensione inferiore dei file. Inoltre la scalabilita' del sistema viene semplificata di molto, infatti ...
# 3. Approccio tecnologico
## 3.1. Vantaggi dell'uso di un message broker e come lo giudichiamo rispetto alle altre scelte
Il message broker risulta fondamentale nello sviluppo di un'applicazione formata da vari microservizi, poiche' permette a questi di registrarsi all'ascolto di topic specifici dai quali ricevere i messaggi degli altri microservizi. In questo modo il lavoro svolto da ognuno e' inferiore rispetto ad un progetto dello stesso tipo che non si avvale dell'utilizzo di mqtt.
L'utilizzo di mosquitto assicura il recapito di oggi messaggio nel numero a noi necessario.
La scelta effettuata risulta migliore rispetto all'uso di chiamate REST perche' ...?
# 4. Architettura del software
## 4.1. Organizzazione del software (evidenziandone i moduli)
- WebServer
- WebApp
- Keycloak
- Domain Manager
- Cloud App Manager
- Broker Mosquitto (smartcity)
- BeagleBone (mosquitto, luci, antifurto, scenari)
- Arduino
## 4.2. Distribuzione delle funzionalita' tra i moduli, attivita' e loro interazione
# 5. Descrizione dell'implementazione
## 5.1. UML delle classi implementate
## 5.2. Descrizione della UI
# 6. Validazione del software
## 6.1. Procedure usate per verificare il corretto funzionamento del sistema