Presentazione di Agnese Dal Monte
Progetto di Gruppo di Manuela Bassetti, Agnese Dal Monte,
Elisabetta Visciotti
Reti di Calcolatori LS – AA. 2006-07
Prof. Antonio Corradi
Tutor del progetto: Eugenio Magistretti

Introduzione
◦ Scenario Applicativo
◦ Specifiche e scelte progettuali
◦ Struttura generale

Chatting sincrono
◦
◦
◦
◦

Apertura conversazione
Scambio di messaggi
Chiusura conversazione
Valutazioni e risultati sperimentali
Amicizia
◦ Ricerca amici per UUID
◦ Valutazioni e risultati sperimentali
◦ Cancellazione di un amico (cenni)

MANET
◦ Mancanza di infrastruttura e di nodi coordinatori
◦ Scarsa affidabilità del mezzo di comunicazione
◦ Frequenti cambiamenti di topologia

Dispositivi portatili
◦ Dispositivi eterogenei (smarthphone, PDA, laptop) a capacità
computazionale e memoria più o meno limitate.
◦ Scarsa autonomia (alimentazione a batteria)
Stato dell’ arte e strumenti
Strumenti proprietari e non standard con forti problemi di compatibilità

Specifiche di progetto
◦
◦
◦
◦

Utilizzo della J2ME
Utilizzo di UDP come protocollo di trasporto
Comunicazione attraverso l’interfaccia wireless 802.11
Creazione di protocolli ad-hoc
Assunzioni semplificative
◦ Dispositivi a distanza 1-hop ed in diretta visibilità
◦ Dispositivi con IP fisso (una volta entrati nella MANET)
◦ Rete MANET preesistente

Scelte
◦ J9 di IMB con configurazione CDC 1.1 e PP
◦ WebSphere Everyplace ME con emulatore Nokia
◦ db4o come database per memorizzare i dati locali
Servizi di
Amicizia
Amicizia per UUID
Amicizia per Profilo
Cancellazione
Chatting Sincrono
instant messaging
tra due amici presenti
contemporaneamente nella
MANET
Chatting Asincrono
messaggistica persistente
tra due amici non presenti
contemporaneamente nella
MANET (in presenza o meno
del Persistent Server)
Servizio di Discovery e Servizio di presenza
Gestione entrata ed uscita dei nodi e rilevazione di eventuali cadute

Il sistema si basa sullo scambio di messaggi Datagram UDP. Per ogni
servizio è stata dedicata una porta nota a priori.
Il servizio permette lo scambio di messaggi tra due amici presenti
contemporaneamente nella MANET.


Specifiche: una porta dedicata al servizio e creazione di un thread
per ogni conversazione  dispatching dei messaggi al thread che gestisce
la specifica conversazione
Scelta: numero massimo di conversazioni apribili (dovuta alle
caratteristiche dei dispositivi: ridotta capacità computazionale, memoria
limitata, problemi di schedulazione dei thread, interfacce grafiche limitate)
Al servizio si accede dalla schermata principale
selezionando il nome
dell’amico online
con cui dei
Apertura
Scambio
si vuole comunicare.
Si aprirà così il pannello
conversazione
messaggi
di conversazione.
Chiusura
conversazione
La conversazione è avviata dopo un protocollo di handshake
Viene visualizzato il
pannello in attesa di
avviare una conversazione.
OPEN_CONVERSATION
ACK_OPEN_ACCEPT
Viene visualizzato il pannello
e avviato il thread dedicato
alla conversazione.
E’ avviato il thread dedicato
alla conversazione.

ACK_OPEN_REFUSE: NodeB ha un numero massimo di conversazioni aperte.

ACK_OPEN_DELETE: NodeB non ha l’utente A nella lista degli amici e ha scelto di
forzare la propria eliminazione dalla lista di A.
Per garantire la visualizzazione FIFO dei messaggi di ogni
conversazione (senza essere però bloccanti) sono stati inseriti:



Un numero di sequenza
◦ Numero di sequenza relativo ai messaggi inviati da un mittente allo specifico
destinatario
Un “algoritmo di ordinamento”
◦ E’ stato creato un buffer locale per ogni conversazione in cui memorizzare i
messaggi giunti fuori sequenza per poi essere visualizzati in ordine all’arrivo
del messaggio atteso o al riempimento del buffer (o allo scadere di un
timeout).
Ack cumulativo
◦ Ogni t messaggi ricevuti viene inviato un ack con l’indicazione del messaggio
atteso. Il mittente conserverà in un buffer locale alla conversazione un
numero limitato di messaggi non confermati e provvederà eventualmente al
rinvio.
Questa fase è importante perché permette di liberare risorse
allocate per la conversazione
Il pannello della
conversazione viene chiuso
CLOSE_CONVERSATION
ACK_CLOSE
Il pannello della
conversazione
viene chiuso e le
risorse liberate.
Le risorse della
conversazione sono liberate
Una volta chiusa la conversazione sarà possibile riaprirla dopo una nuova fase
di handshake.

Apertura conversazione
◦ Permessa solo se entrambi non ne hanno già aperte un numero massimo
◦ L’handshake è utilizzato anche per ristabilire relazioni di amicizia in caso di
inconsistenza dei database (raro)
◦ Nel caso la percentuale di perdita risulti rilevante con più dispositivi, è
possibile impostare ritrasmissioni
◦ Protocollo a timeout

Scambio di messaggi
◦ Esecuzione di stress-test
◦ L’algoritmo permette di ricostruire quasi completamente la sequenza
grazie all’ack cumulativo e al buffer (di 3-5 messaggi), senza essere
bloccante.
◦ E’ gestito il passagio offline (senza fase di chiusura) di un utente

Chiusura della conversazione
◦ E’ prevista una ritrasmissione data l’importanza del liberare le risorse
◦ Protocollo a timeout
Tempi per protocollo (ms)
APERTURA
CHIUSURA
203
212
198
180
176
156
Il servizio permette di stabilire una relazione biunivoca di amicizia con un
altro utente di cui si conosce l’identificativo univoco.
L’UUID dell’utente viene specificato nell’apposita
form. Il sistema gestirà la ricerca (attraverso un
broadcast della richiesta) e l’aggiunta (in caso
di risposta positiva dell’amico).
UUID
specificato
FRIENDSHIP_UUID
UUID
A
Utente B aggiunto
alla lista degli amici.
Ricerca terminata.
FRIENDSHIP_ACK
In caso di rifuto dell’amico sarà
L’utente B accetta la
mandato
comunque il messaggio di
relazione di amicizia:
ack
per
terminare l’attesa. Nel caso
utente
A aggiunto
in
risposta
allacui
listaladegli
amici. dell’amico non sia
data/ricevuta
entro
un
certo
timeout la ricerca viene interrotta.

Reliability: ritrasmissione della richiesta nel caso non si
riceva una risposta entro un timeout.
◦ La percentuale di perdita senza ritrasmissione è bassa, con la
ritrasmissione nulla. (Valutazione da rivedere nel caso di multi-hop e
dense-MANET)
◦ Protocollo a timeout

Inconsistenza tra i database: se l’amico è già in lista verrà
mandato direttamente un messaggio di ack positivo.
Una possibilità sarebbe quella di non interrogare l’utente coinvolto
ma di accettare in ogni caso la richiesta di amicizia. In questo caso si
aumenterebbe l’efficienza in quanto non sarebbe necessario attendere
una risposta dell’utente (anche se solo per un timeout).
Il servizio permette di cancellare un amico online.
L’amico che si desidera rimuovere dalla
propria lista viene specificato nell’apposita
form. Il sistema gestirà l’eliminazione.
Utente B
rimosso
dalla lista
degli amici.
La cancellazione per ora è
gestita come semplice notifica.
FRIENDSHIP_DELETE
L’utente A
rimosso dalla
lista degli
amici.
Il
una
dense-MANET
o
comunque con l’aumentare
delle probabilità di perdita sarà
necessario
introdurre
un
messaggio di ACK e prevedere
almeno una ritrasmissione.

Cause dei maggiori problemi:
◦ Dinamicità della rete e natura best-effort
◦ Caratteristiche dei dispositivi
◦ Funzionalità ristrette e spesso non completamente implementate degli
strumenti disponibili

Principali soluzioni adottate:
◦ Servizio di presenza e ritrasmissioni
◦ Limitato utilizzo delle risorse
◦ Implementazione delle funzioni necessarie o adattamento a quelle
disponibili

Il database db4o non è risultato completamente affidabile per la facilità
con cui viene corrotto o per l’insicura accessibilità dei suoi file.
L’applicazione realizzata riesce comunque a garantire un buon livello di
qualità di servizio e ad essere affidabile per un numero di dispositivi
limitato.

Miglioramento persistenza dati locali
◦ Necessità di far fronte ai problemi rilevati con db4o ad esempio con la
replicazione o adozione di un altro database in cui salvare le informazioni
locali.

Estensione al caso multi-hop
◦ Introduzione di un algoritmo di routing che permetta di recapitare i
messaggi anche ad utenti non in diretta visibilità (ed analisi dei tempi e
delle ritrasmissioni necessarie).

Scalabilità
◦ Analisi del funzionamento e delle prestazioni in una dense-MANET

Sicurezza
◦ Introduzione di meccanismi e politiche per garantire la sicurezza.
Scarica

Presentazione