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

relazAle

parent 836c7008
No related branches found
No related tags found
No related merge requests found
...@@ -72,14 +72,24 @@ Questo componente della LAN scrive sul broker Mosquitto della BB i valori del se ...@@ -72,14 +72,24 @@ Questo componente della LAN scrive sul broker Mosquitto della BB i valori del se
-DomainManager: -DomainManager:
La classe principale del DomainManager è Domain.java. Essa funge da server REST su Https. La classe principale del DomainManager è Domain.java. Essa funge da server REST su Https.
Espone le rotte che vengono richiamate dalla WebApp per avviare, installare, creare ed eliminare i domini, oltre a fornire servizi per la corretta visualizazione Espone le rotte che vengono richiamate dalla WebApp per avviare, installare, creare ed eliminare i domini, oltre a fornire servizi per la corretta visualizazione delgli elementi in app.
delgli elementi in app.
Prima di operare da server esso effettua una chiamata al nostro repository gitlab per popolare la tabella dei moduli del DB. Prima di operare da server esso effettua una chiamata al nostro repository gitlab per popolare la tabella dei moduli del DB.
In qualità di server si avvale di un threadPoolExecutor e per ogni nuova chiamata istanzia un nuovo thread per servirla. In qualità di server si avvale di un threadPoolExecutor e per ogni nuova chiamata istanzia un nuovo thread per servirla.
A seconda dell'URI richiamato viene istanziato un handler diverso, che verifica il token JWT tramite la classe Helper che a sua volta richiama TokenHandler. A seconda dell'URI richiamato viene istanziato un handler diverso, che verifica il token JWT tramite la classe Helper che a sua volta richiama TokenHandler.
Da qui viene effettuata una chiamata all'istanza di Keycloak per ottenere la chiave pubblica. Dopo di ciò il JWT che era stato precedentemente inviato dalla Da qui viene effettuata una chiamata all'URI della nostra istanza di Keycloak per ottenere la chiave pubblica. Dopo di ciò il body del JWT che era stato precedentemente inviato nel payload della richiesta della Webapp viene firmato con la chiave pubblica e se il risultato è uguale alla firma inviata nel JWT stesso allora l'utente è verificato.
Webapp viene firmato con la chiave pubblica e se il risultato è uguale alla firma inviata nel JWT allora l'utente è verificato. Una volta verificato è possibile ottenere il nome dell'utente e distinguere i domini di cui è utente comune o amministratore. Da questo punto a seconda dei servizi richiesti dalla WebApp si aprono diversi scenari di interazione con il DB ed il CloudApp (Install, Delete, Start, Stop).
Le chiamate si risolvono una volta che il CloudApp risponde al Domain, ossia possiamo considerare la chiamata al CloudApp incapsulata in termini di tempo all'interno della chiamata da parte della WebApp al Domain.
-Luci:
Il microservizio Luci opera in LAN e serve a gestire l'accensione e spegnimento delle lampade nella casa.
la classe principale è Luci.java che opera su un ArrayList di oggetti di tipo Luce.
L'oggetto Luce è definito dal quartetto input, output, stato e nome.
Input è il numero che rappresenta quella sorgente in input della GPIO, ovvero un attuatore.
Output è il numero che rappresenta quello specifico output della GPIO.
Stato è un boolean che corrisponde all'accensione o spegnimento della lampadina.
Nome è il nome della sala a cui appartiene la luce ed è il suo ID.
La classe Subscriber serve a leggere i comandi dai topic ad attuare il comando. Per essere istanziata necessita di un Esecutore, Luci ed il sensore di movimento.
Esecutore è la classe che si occupa di attuare l'accensione a tempo delle luci, sfruttando un timer. Necessita di Luci per attingere all'ArrayList.
## 5.2. Descrizione della UI ## 5.2. Descrizione della UI
......
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