Skip to content
Snippets Groups Projects
Commit bc3f9d22 authored by A C's avatar A C
Browse files

ayeye

parent 9ee844b6
No related branches found
No related tags found
No related merge requests found
...@@ -49,10 +49,10 @@ Anche la manutenibilità migliora. <!-- => spiegare --> ...@@ -49,10 +49,10 @@ Anche la manutenibilità migliora. <!-- => spiegare -->
# 4. Architettura del software # 4. Architettura del software
## 4.1. Organizzazione del software (evidenziandone i moduli) ## 4.1. Organizzazione del software (evidenziandone i moduli)
Il sistema si suddivide in due parti principali: la LAN domestica ed il cloud. Il sistema si suddivide in due parti principali: la LAN domestica ed il cloud, oltre ad un webserver ed un'istanza di KeyCloak per l'autenticazione.
Nella LAN è presente la porzione di sistema che si occupa di comandare le luci, l'allarme e l'apprendimento degli scenari di simulazione. Esso è composto da un BeagleBone sulla quale operano il broker Mosquitto, i microservizi Luci, Allarme e Scenari, e da un'Arduino che espone un sensore di luminosità. Nella LAN è presente la porzione di sistema che si occupa di comandare le luci, l'allarme e l'apprendimento degli scenari di simulazione. Esso è composto da un BeagleBone sulla quale operano il broker Mosquitto, i microservizi Luci, Allarme e Scenari, e da un'Arduino che espone un sensore di luminosità.
In cloud invece sono presenti il DomainManager ed il CloudAppManager che servono ad interrogare il DB e a gestire i microservizi in lan. Inoltre è presente un broker Mosquitto. In cloud invece sono presenti il DomainManager ed il CloudAppManager che servono ad interrogare il DB e a gestire i microservizi in lan. Inoltre è presente un broker Mosquitto a cui sono connessi in bridging quello della BeagleBone e quello della WebApp.
Al corretto funzionamento del sistema partecipano anche un webserver ed un'istanza di KeyCloak per l'autenticazione.
### 4.1.1. Webserver e Webapp ### 4.1.1. Webserver e Webapp
Il Webserver, configurato per usare HTTPS, fornisce la Webapp al client grazie all'uso di API REST. Il Webserver è in grado di gestire molteplici sessioni allo stesso tempo grazie all'implementazione di Threads. Il Webserver, configurato per usare HTTPS, fornisce la Webapp al client grazie all'uso di API REST. Il Webserver è in grado di gestire molteplici sessioni allo stesso tempo grazie all'implementazione di Threads.
...@@ -61,7 +61,7 @@ La Webapp può comunicare con il Message Broker grazie al protocollo MQTT, con i ...@@ -61,7 +61,7 @@ La Webapp può comunicare con il Message Broker grazie al protocollo MQTT, con i
### 4.1.2. Keycloak ### 4.1.2. Keycloak
<!--DA FARE elisa--> <!--DA FARE elisa-->
### 4.1.3. Domain Manager ### 4.1.3. Domain Manager
Il DM è un microservizio che opera in cloud, con funzionalità sia da server REST sia da client che interagisce con il database (DB) dell'intero sistema. Si occupa di soddisfare le richieste provenienti dalla Webapp, controllandone la validità e la consistenza con il DB e inoltrarle al CAM. Dopo aver verificato l'autorizzazione tramite token di Keycloak interagisce con il DB ed effettua la chiamata al CAM. Terminate queste due interazioni, viene servita la risposta alla Webapp. Il DM è un microservizio che opera in cloud, con funzionalità sia da server REST sia da client che interagisce con il database (DB) dell'intero sistema. Si occupa di soddisfare le richieste HTTPS provenienti dalla Webapp, controllandone la validità e la consistenza con il DB e inoltrarle al CloudAppManager richiamando degli URI esposti da esso. Dopo aver verificato l'autorizzazione tramite il token fornito da Keycloak, il DM interagisce con il DB ed effettua la chiamata al CloudAppManager. Terminate queste due interazioni, viene servita la risposta alla Webapp.
=> poco chiaro (Alfredo) => poco chiaro (Alfredo)
### 4.1.4. BeagleBone ### 4.1.4. BeagleBone
- Luci - Luci
...@@ -168,4 +168,4 @@ Dalla Webapp, un utente normale può solamente attivare/disattivare l'antifurto ...@@ -168,4 +168,4 @@ Dalla Webapp, un utente normale può solamente attivare/disattivare l'antifurto
## 6.1. Procedure usate per verificare il corretto funzionamento del sistema ## 6.1. Procedure usate per verificare il corretto funzionamento del sistema
La validazione del software è stata effettuata in modo procedurale sia durante la fase di sviluppo che alla sua fine. La validazione del software è stata effettuata in modo procedurale sia durante la fase di sviluppo che alla sua fine.
Nella fase finale sono stati effettuati test di sistema simulando un ambiente reale: sono stati testati tutti i microservizi assieme alla Webapp e gli altri componenti dell'architettura. Nella fase finale sono stati effettuati test di sistema simulando un ambiente reale: sono stati testati tutti i microservizi assieme alla Webapp e gli altri componenti dell'architettura.
In particolare ogni componente è stato testato in modo autonomo (per verificare che funzionasse correttamente) e in modo combinato (per verificare che funzionasse anche in presenza degli altri componenti). In particolare ogni componente è stato testato in modo autonomo (per verificare che funzionasse correttamente) e in modo combinato (per verificare che funzionasse anche in presenza degli altri componenti).
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment