Merge pull request #6 from Untori/mqtt
continuous-integration/drone/push Build is passing Details

Mqtt
This commit is contained in:
Raffaele Mignone 2020-07-16 19:04:51 +02:00 committed by GitHub
commit 0a28d778f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View File

@ -63,6 +63,13 @@
organization = {{cryptography-cafe}}
}
@online{EclipsePahoMQTT,
title = {Eclipse {{Paho}} - {{MQTT}} and {{MQTT}}-{{SN}} Software},
url = {https://www.eclipse.org/paho/},
urldate = {2020-07-16},
file = {/home/norangebit/Zotero/storage/BC7DTMJT/paho.html}
}
@online{InstallationBetterBibTeX,
title = {Installation :: {{Better BibTeX}} for {{Zotero}}},
url = {https://retorque.re/zotero-better-bibtex/installation/},

View File

@ -45,7 +45,7 @@ dove `H_tcn` è una funzione di Hash con 128 bit di output che utilizza come sep
Dalla chiave rak è possibile generare la chiave rvk e la chiave tck_0, dalle quali è possibile generare le successive tck e quindi tutti i successivi tcn.
### Report
### Report {#sec:report}
Quando viene richiesto di caricare i dati dell'utente, è possibile eseguire l'upload di un report compatto. Infatti grazie alla derivazione deterministica, è possibile inviare tutti gli identificativi utilizzati nel periodo `j1` e `j2`, caricando unicamente la rvk, tck_{j-1}, e i due indici `j1` e `j2`.
Di seguito è illustrato come costruire il report:
@ -366,6 +366,17 @@ interface TCNDataDao {
## Rete
La comunicazione con il server avviene mediante un brocker MQTT fornito da un altro gruppo di studenti.
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.
L'applicazione, all'interno dell'architettura, svolge il ruolo di *publisher* e si occupa della pubblicazione di due tipologie di messaggi:
- ***Messaggi di contatto***:
utilizzati sia nella modalità *A* che nella *B*, permettono di notificare al server un contatto tra due utenti.
Nel caso della modalità *A* viene svolto un invio in *real-time*, mentre nella configurazione *B* l'invio avviene solo dopo aver eseguito l'*upload*.
- ***Messaggi di report***:
utilizzati esclusivamente nella modalità *C*.
Questi messaggi trasportano come *payload* il report TCN discusso nella @sec:report e vengono inviati solo quando l'*upload* è richiesto dall'utente.
# Riferimenti