# 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. ## 1.2. Accessibilita' via internet 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