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 nell'applicazione ed 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 l'utente, dopo aver impartito un comando esso venga attutato una ed una sola volta.
## 2.4. Tecniche viste a lezione con cui soddisfare i requisiti
# 3. Approccio tecnologico
## 3.1. Vantaggi dell'uso di un message broker e come lo giudichiamo rispetto alle altre scelte
# 4. Architettura del software
## 4.1. Organizzazione del software (evidenziandone i moduli)
## 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