diff --git a/bib.bib b/bib.bib index 7d10555..2e8ed2c 100644 --- a/bib.bib +++ b/bib.bib @@ -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/}, diff --git a/documentazione.md b/documentazione.md index 9e5fab8..15a64dd 100644 --- a/documentazione.md +++ b/documentazione.md @@ -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