This commit is contained in:
parent
0554f432b1
commit
e3b7e75072
@ -173,7 +173,7 @@ L'ultima modalità, la ***C***, è quella che tutela maggiormente la privacy deg
|
|||||||
- Rotazione dei *tcn*
|
- Rotazione dei *tcn*
|
||||||
- Matching locale
|
- Matching locale
|
||||||
|
|
||||||
La generazione degli *tcn* avviene attraverso una derivazione deterministica come visto nella @sec:tcn-protocol, in modo tale da avere lo stesso livello di privacy di una soluzione randomica, ma con una migliore scalabilità.
|
La generazione dei *tcn* avviene attraverso una derivazione deterministica come visto nella @sec:tcn-protocol, in modo tale da avere lo stesso livello di privacy di una soluzione randomica, ma con una migliore scalabilità.
|
||||||
Mentre il matching locale permette di condividere il minor numero di informazioni possibili e solo quando questo è strettamente necessario.
|
Mentre il matching locale permette di condividere il minor numero di informazioni possibili e solo quando questo è strettamente necessario.
|
||||||
Infatti in questa modalità l'applicazione carica le informazioni sul server solo in seguito alla richiesta delle autorità sanitarie.
|
Infatti in questa modalità l'applicazione carica le informazioni sul server solo in seguito alla richiesta delle autorità sanitarie.
|
||||||
Inoltre a differenza delle prime due modalità è previsto l'upload unicamente dei *tcn* che il dispositivo ha assunto nel tempo, in questo modo il server non è in grado di conoscere o ricavare i contatti avuti dall'utente.
|
Inoltre a differenza delle prime due modalità è previsto l'upload unicamente dei *tcn* che il dispositivo ha assunto nel tempo, in questo modo il server non è in grado di conoscere o ricavare i contatti avuti dall'utente.
|
||||||
@ -194,7 +194,7 @@ Questa caratteristica, unita alle regole stringenti di utilizzo imposte della li
|
|||||||
[^regole-api-apple-google]: Le due società californiane consentono lo sviluppo di applicazioni che fanno uso della loro API solo ad enti governativi e impongo un numero massimo di applicazioni per nazione pari ad uno.
|
[^regole-api-apple-google]: Le due società californiane consentono lo sviluppo di applicazioni che fanno uso della loro API solo ad enti governativi e impongo un numero massimo di applicazioni per nazione pari ad uno.
|
||||||
Dalla documentazione ufficiale non è ben chiaro se questi vincoli riguardino solo la pubblicazione sugli store o anche lo sviluppo.
|
Dalla documentazione ufficiale non è ben chiaro se questi vincoli riguardino solo la pubblicazione sugli store o anche lo sviluppo.
|
||||||
|
|
||||||
## Interazione via bluetooth
|
## Interazione via Bluetooth
|
||||||
|
|
||||||
L'interazione tra l'hardware bluetooth del dispositivo e l'applicazione è stata gestita attraverso l'impiego della libreria *Android Beacon Library* [@AndroidBeaconLibrary] che permette di gestire più facilmente le operazioni con beacon bluetooth.
|
L'interazione tra l'hardware bluetooth del dispositivo e l'applicazione è stata gestita attraverso l'impiego della libreria *Android Beacon Library* [@AndroidBeaconLibrary] che permette di gestire più facilmente le operazioni con beacon bluetooth.
|
||||||
Inoltre per rendere l'applicazione più funzionale, e quindi garantirne il funzionamento anche in background o a schermo spento è stato utilizzato un *foreground service* [@ServicesOverview], che consente di mantenere in *primo piano* le operazioni di trasmissione e scansione anche quando l'applicazione non lo è.
|
Inoltre per rendere l'applicazione più funzionale, e quindi garantirne il funzionamento anche in background o a schermo spento è stato utilizzato un *foreground service* [@ServicesOverview], che consente di mantenere in *primo piano* le operazioni di trasmissione e scansione anche quando l'applicazione non lo è.
|
||||||
@ -292,27 +292,6 @@ $TxPower$ è la potenza di trasmissione nominale che si misurerebbe alla distanz
|
|||||||
Il valore di $TxPower$ deve essere precedentemente ricavato per ogni emettitore e deve essere inviato all'interno del beacon bluetooth.
|
Il valore di $TxPower$ deve essere precedentemente ricavato per ogni emettitore e deve essere inviato all'interno del beacon bluetooth.
|
||||||
Lavorando con dispositivi eterogenei tra di loro non è stato possibile calcolare in modo esatto questo valore, ma si è scelto di utilizzare il valore $-59$ poiché si adattava mediamente a tutti i dispositivi utilizzati in fase di test.
|
Lavorando con dispositivi eterogenei tra di loro non è stato possibile calcolare in modo esatto questo valore, ma si è scelto di utilizzare il valore $-59$ poiché si adattava mediamente a tutti i dispositivi utilizzati in fase di test.
|
||||||
|
|
||||||
## Interfaccia utente
|
|
||||||
|
|
||||||
L'applicazione opera prevalentemente in background, ma comunque è dotata di una serie di elementi grafici che consentono all'utente di interagire con essa.
|
|
||||||
Quando l'applicazione viene avviata per la prima volta l'utente ha la possibilità di scegliere la modalità di funzionamento che desidera utilizzare (si veda @fig:ui-welcome).
|
|
||||||
Una volta compiuta questa scelta viene chiesto all'utente di concedere l'accesso alla posizione.
|
|
||||||
Sebbene l'applicazione non utilizzi il GPS o altri strumenti di posizionamento ciò si rende necessario al fine di abilitare la scansione dei beacon BLE anche in background.
|
|
||||||
|
|
||||||
![Schermata di benvenuto.](fig/welcome.jpg){#fig:ui-welcome width=130}
|
|
||||||
|
|
||||||
La schermata principale dell'applicazione, riportata in @fig:ui-main, si compone di tre elementi:
|
|
||||||
|
|
||||||
- `TextView` che indica la modalità di funzionamento.
|
|
||||||
- `Button` *start/stop* che consente di avviare o stoppare il servizio bluetooth.
|
|
||||||
Questo pulsante viene abilitato unicamente se sono stati concessi i permessi di accesso alla posizione.
|
|
||||||
- `Button` *exposed* consente all'utente di raggiungere l'activity, @fig:ui-upload, attraverso la quale è possibile comunicare al server il proprio stato di contagiato.
|
|
||||||
Nel caso della modalità *B* e *C* vengono caricati sul server anche i dati di contatto presenti sul dispositivo.
|
|
||||||
|
|
||||||
![Schermata principale.](fig/main.jpg){#fig:ui-main width=130}
|
|
||||||
|
|
||||||
![Schermata per l'upload.](fig/upload.jpg){#fig:ui-upload width=130}
|
|
||||||
|
|
||||||
## Memorizzazione ID
|
## Memorizzazione ID
|
||||||
|
|
||||||
In base alla modalità di funzionamento l'applicazione deve memorizzare diversi tipi di dati.
|
In base alla modalità di funzionamento l'applicazione deve memorizzare diversi tipi di dati.
|
||||||
@ -378,7 +357,7 @@ interface TCNDataDao {
|
|||||||
|
|
||||||
## Comunicazione report
|
## Comunicazione report
|
||||||
|
|
||||||
La comunicazione con il server avviene mediante un brocker MQTT fornito da un altro gruppo di studenti.
|
La comunicazione con il server avviene mediante un broker MQTT fornito da un altro gruppo di studenti.
|
||||||
Come implementazione del client MQTT si è scelto di utilizzare *Paho* [@EclipsePahoMQTT], un client realizzato da Eclipse.
|
Come implementazione del client MQTT si è scelto di utilizzare *Paho* [@EclipsePahoMQTT], un client realizzato da Eclipse.
|
||||||
Questa libreria oltre a fornire un client MQTT per la JVM fornisce anche un *service* per Android che permette di sollevare lo sviluppatore da alcuni dettagli implementativi.
|
Questa libreria oltre a fornire un client MQTT per la JVM fornisce anche un *service* per Android che permette di sollevare lo sviluppatore da alcuni dettagli implementativi.
|
||||||
|
|
||||||
@ -445,4 +424,25 @@ fun publish(
|
|||||||
Le funzionalità di rete sono state testate attraverso l'impiego di un broker pubblico (`tcp://broker.hivemq.com:1883`) ed un'istanza locale di *ActiveMQ Artemis* inoltre è stato utilizzato il topic `exposed-test-topic` per la pubblicazione dei messaggi.
|
Le funzionalità di rete sono state testate attraverso l'impiego di un broker pubblico (`tcp://broker.hivemq.com:1883`) ed un'istanza locale di *ActiveMQ Artemis* inoltre è stato utilizzato il topic `exposed-test-topic` per la pubblicazione dei messaggi.
|
||||||
Entrambi i parametri sono stati settati tramite delle costanti e quindi possono essere modificati facilmente.
|
Entrambi i parametri sono stati settati tramite delle costanti e quindi possono essere modificati facilmente.
|
||||||
|
|
||||||
|
## Interfaccia utente
|
||||||
|
|
||||||
|
L'applicazione opera prevalentemente in background, ma comunque è dotata di una serie di elementi grafici che consentono all'utente di interagire con essa.
|
||||||
|
Quando l'applicazione viene avviata per la prima volta l'utente ha la possibilità di scegliere la modalità di funzionamento che desidera utilizzare (si veda @fig:ui-welcome).
|
||||||
|
Una volta compiuta questa scelta viene chiesto all'utente di concedere l'accesso alla posizione.
|
||||||
|
Sebbene l'applicazione non utilizzi il GPS o altri strumenti di posizionamento ciò si rende necessario al fine di abilitare la scansione dei beacon BLE anche in background.
|
||||||
|
|
||||||
|
![Schermata di benvenuto.](fig/welcome.jpg){#fig:ui-welcome width=130}
|
||||||
|
|
||||||
|
La schermata principale dell'applicazione, riportata in @fig:ui-main, si compone di tre elementi:
|
||||||
|
|
||||||
|
- `TextView` che indica la modalità di funzionamento.
|
||||||
|
- `Button` *start/stop* che consente di avviare o stoppare il servizio bluetooth.
|
||||||
|
Questo pulsante viene abilitato unicamente se sono stati concessi i permessi di accesso alla posizione.
|
||||||
|
- `Button` *exposed* consente all'utente di raggiungere l'activity, @fig:ui-upload, attraverso la quale è possibile comunicare al server il proprio stato di contagiato.
|
||||||
|
Nel caso della modalità *B* e *C* vengono caricati sul server anche i dati di contatto presenti sul dispositivo.
|
||||||
|
|
||||||
|
![Schermata principale.](fig/main.jpg){#fig:ui-main width=130}
|
||||||
|
|
||||||
|
![Schermata per l'upload.](fig/upload.jpg){#fig:ui-upload width=130}
|
||||||
|
|
||||||
# Riferimenti
|
# Riferimenti
|
||||||
|
Loading…
Reference in New Issue
Block a user