Progetto PERMESSO PERsistent MESSaging in ad hOc networks Presentazione di Vitalone Giuseppe
PERMESSO - Introduzione Servizio di messaggistica istantanea e persistente allinterno di reti MANET Eterogeneità e dinamicità
PERMESSO - Modelli di comunicazione Modello sincrono interazione real-time Modello asincrono messaggi per utenti offline verranno recapitati in un momento successivo. Memorizzazione può essere: o Centralizzata PersistentServer o Distribuita TRASPARENZA!
Cenni su J2ME Versione ridotta di Java 2 per lo sviluppo di software destinato a dispositivi con ridotte capacità computazionali e di memorizzazione Serializzazione realizzata ad hoc Serializzazione realizzata ad hoc Comportamento di IBM J9 WEME non conforme alle specifiche receive con timeout non funzionante thread separato per chiudere la connessione Comportamento di IBM J9 WEME non conforme alle specifiche receive con timeout non funzionante thread separato per chiudere la connessione
Chatting asincrono SENZA PersistentServer I messaggi sono memorizzati dagli altri nodi Allingresso del destinatario, i nodi eseguono il delivery Chi memorizza i messaggi? Come gestire luscita di un nodo? Come garantire reliability?
Invio di un messaggio ChatForm in modalità asincrona (senza hand-shake) Ogni nodo ha uno spazio riservato ma limitato per i messaggi asincroni memorizzazione locale nessun overhead memorizzazione locale nessun overhead memorizzazione delegata a chi lo mando?? memorizzazione delegata a chi lo mando?? SOLUZIONE 1: … al primo che risponde! SOLUZIONE 2: … VOTAZIONE!
Protocollo di votazione SCORE = Spazio libero Spazio esaurito cancellazione! Porta dedicata
Consegna dei messaggi Richiesta inviata in broadcast finito il discovery Ordine totale Possibile switch a comunicazione sincrona
Gestione delluscita di un nodo In caso di caduta, i messaggi vengono persi Se il nodo desidera uscire votazione per dare in consegna i messaggi memorizzati agli altri nodi Memorizzazione distribuita bilanciata si cerca di non sovraccaricare alcuni nodi lasciandone vuoti altri
effectiveSpaceOfTheBest >= requiredSpace Invio di tutti i messaggi al vincitore yesno && spaceOfTheBest == 0 Invio di un messaggio a testa yes no && spaceOfTheBest == 1 Invio del primo messaggio al vincitore yesno Aggiornamento spazio disponibile per ciascun nodo Invio del primo messaggio al vincitore effectiveSpaceOfTheBest >= requiredSpace Gestione delluscita di un nodo (2)
Gestione delluscita di un nodo - Esempio nodo 0nodo 1nodo 2
Reliability Quale protocollo usare? Negative ack Cumulative ack Positive ack Sleep Ottiene ack ricevuti tutti gli ack || raggiunto max num. ritrasmissioni yes Reinvio messaggi rimanenti no
Reliability - Sequence diagram Un controller per ogni destinatario
Switch tra modalità asincrone Estensione per permettere lo switch alla modalità asincrona con PeristentServer Ricezione messaggio ENTERED invio di tutti i messaggi al PersistentServer e interruzione del thread per la gestione della modalità asincrona sui nodi
Conclusioni e sviluppi futuri Compromesso tra efficacia ed efficienza Buona reliability ma protocolli pesanti (alto numero di messaggi scambiati) difficile luso in reti molto popolate Routing per gestire MANET multi-hop
Fine presentazione!