Progetto PERMESSO Progetto PERMESSO PERsistent MESSagging in ad hOc networks Presentazione di Elisabetta Visciotti Progetto di Gruppo di: Manuela Bassetti, Agnese Dal Monte e Elisabetta Visciotti Reti di Calcolatori LS – AA Prof. Antonio Corradi Tutor del progetto: Eugenio Magistretti
2AgendaAgenda Introduzione Scenario Applicativo Specifiche e Scelte Progettuali Struttura Generale Discovery Ingresso nella Manet Uscita dalla Manet Presenza nella Manet Risultati Sperimentali Chatting asincrono con Persistent Server Invio Messaggi Asincroni Risultati Sperimentali Ricezione Messaggi Asincroni Risultati Sperimentali Conclusioni e Sviluppi futuri
3 Scenario Applicativo Manet (Mobile Ad Hoc Network) Sistema di comunicazione dati Basato su trasmissioni radio Assenza di infrastruttura La topologia della rete può cambiare in maniera casuale Scarsa affidabilità del mezzo di comunicazione Dispositivi Mobili Dispositivi mobili diversi: laptop, palmare, smartphone,... Capacità di elaborazione limitata, memoria e risorse a disposizione ridotte.
4 Specifiche e Scelte Progettuali Specifiche di progetto Utilizzo della J2ME Utilizzo di UDP come protocollo di trasporto Comunicazione attraverso l’interfaccia wireless Creazione di protocolli ad-hoc Assunzioni semplificative Dispositivi a distanza 1-hop Rete Manet pre-esistente Dispositivi con IP fisso Scelte JVM utilizzata: J9 di IBM con configurazione CDC 1.1 e Personal Profile Database per memorizzare i dati locali: db4o 6.3 Pocket PC Emulatore per portatili: Nokia Series 80 Platform SDK. Tool di sviluppo: NetBeans IDE e plug-in NetBeans CDC Mobility Pack 5.5.1
5 Struttura generale Servizio di Discovery Chat Sincrono Senza Persistent Server Chat Asincrono Con Persistent Server Relazione Amicizia Servizio di Presenza Nel seguito saranno approfonditi: Servizio di Discovery Servizio di Presenza Chat Asincrono con Persistent Server
6 Servizio di Discovery: Ingresso nella Manet Servizio di Discovery: Ingresso nella Manet Controlla e notifica in ogni istante l’ingresso degli utenti nella Manet Si basa sullo scambio di messaggi tra i nodi già presenti nella Manet e il nodo entrante: Il nodo entrante invia un messaggio in broadcast I nodi presenti nella rete rispondono in modalità unicast se interessati Nodo entrante Nodo Amico Persistent Server DISCOVERY ACK_DISCOVERY Nodo DISCOVERY ACK_DISCOVERY Nodo
7 Permette di gestire l’uscita di un nodo dalla Manet L’utente che intende andare via avvisa i nodi presenti nella rete con un messaggio in broadcast. Servizio di Discovery: Uscita dalla Manet Servizio di Discovery: Uscita dalla Manet Nodo uscente Nodo Amico Persistent Server EXIT Nodo EXIT
8 Per garantire migliore qualità di servizio ogni nodo, periodicamente, invia in broadcast la conferma della sua presenza nella rete Servizio di Discovery: Presenza nella Manet Servizio di Discovery: Presenza nella Manet Nodo Nodo Amico Persistent Server Nodo PRESENCE completare il protocollo di discovery nel caso in cui alcuni nodi non abbiano ricevuto il broadcast iniziale Tale estensione permette di: monitorare e aggiornare i partecipanti alla Manet così da avere una visione complessiva degli utenti presenti far fronte ad eventuali cadute dei nodi MISSING_DISCOVERY Servizio utilizzato sia per i nodi generici sia per il Persistent Server, volendo realizzare un P ersistent dinamico, ossia in grado di poter entrare e uscire dalla Manet durante l’applicazione. Persistent Server Nodo MISSING_DISCOVERY
9 I messaggi DISCOVERY a volte non erano ricevuti da tutti i nodi presenti nella Manet, con conseguenze negative: per l’aggiornamento della lista dei contatti online per la ricezione dei messaggi asincroni L’introduzione del servizio di Presenza ha permesso di far fronte a tali problemi Servizio di Discovery: Risultati Sperimentali Servizio di Discovery: Risultati Sperimentali Nodo entrante DISCOVERY ACK_DISCOVERY Nodo 68 ms E’ stato calcolato:
10 Permette ad un utente, connesso alla Manet, di mandare messaggi ad utenti momentaneamente non connessi alla rete Tali messaggi saranno consegnati: ad un’entità dedicata denominata Persistent Server (con memoria illimitata) Oppure agli altri nodi presenti sulla rete (servizio best-effort) Il servizio di chat asincrono con Persistent Server prevede due fasi: Invio dei messaggi da memorizzare al Persistent Server Ricezione dei messaggi memorizzati nel Persistent Server Chatting Asincrono Chatting Asincrono
11 L’utente connesso alla Manet potrebbe decidere di: eliminare dai propri contatti un amico offline scrivere un messaggio ad un amico offline Per entrambe le operazioni verranno creati OFFLINE_MESSAGES che saranno inseriti in un buffer locale Chatting Asincrono con Persistent Server: Invio Messaggi Asincroni Chatting Asincrono con Persistent Server: Invio Messaggi Asincroni Nodo uscente Persistent Server SEND_OFFLINE_MESSAGE ACK_PERSISTENT_MESSAGE è a conoscenza della presenza del Persistent Server nella rete Al massimo 2 ritrasmissioni nel caso in cui il Persistent Server non abbia risposto o non si è a conoscenza della sua presenza nella rete REQUEST_MEMORY_MESSAGE ACK_PERSISTENT_MESSAGE Nel caso in cui l’utente volesse uscire e l’amico è ancora offline tali messaggi saranno inviati al Persistent Server. Per l’invio abbiamo due fasi: Nella prima fase abbiamo un Protocollo di contrattazione:
12 Nella seconda fase abbiamo il Protocollo di invio: Chatting Asincrono con Persistent Server: Invio Messaggi Asincroni Chatting Asincrono con Persistent Server: Invio Messaggi Asincroni Nodo uscente OFFLINE_MESSAGES ACK_OFFLINE_MESSAGES Persistent Server Al massimo 3 ritrasmissioni
13 E’ stato calcolato il tempo tra: Chatting Asincrono con Persistent Server: Risultati Sperimentali Chatting Asincrono con Persistent Server: Risultati Sperimentali OFFLINE_MESSAGES Nodo uscente ACK_OFFLINE_MESSAGES Persistent Server SEND_OFFLINE_MESSAGE ACK_PERSISTENT_MESSAGE 1163 ms
14 Il nodo che entra nella Manet e riceve il messaggio ACK_DISCOVERY o MISSING_DISCOVREY dal Persistent Server controlla se quest’ultimo ha messaggi da recapitargli Nel caso il Persistent Server abbia dei messaggi sarà attivato un protocollo di richiesta e ricezione dei messaggi da parte del nodo interessato Chatting Asincrono con Persistent Server: Ricezione Messaggi Asincroni Chatting Asincrono con Persistent Server: Ricezione Messaggi Asincroni Nodo entrante Persistent Server REQUEST_OFFLINE_MESSAGE OFFLINE_MESSAGES ACK_OFFLINE_MESSAGES Al massimo 2 ritrasmissioni Al massimo 3 ritrasmissioni I messaggi offline ricevuti possono essere: messaggi che indicano che tale contatto è stato cancellato dalla lista dell’amico o messaggi testuali
15 E’ stato calcolato il tempo tra: Chatting Asincrono con Persistent Server: Risultati Sperimentali Chatting Asincrono con Persistent Server: Risultati Sperimentali Nodo entrante Persistent Server REQUEST_OFFLINE_MESSAGE OFFLINE_MESSAGES 338 ms
16 Conclusioni Utilizzando un supporto di comunicazione best-effort sono state inserite: conferme di presenza periodica ritrasmissioni per i messaggi scambiati per avere servizi affidabili e con una maggiore qualità di servizio Ci sono state delle limitazioni nell’uso delle risorse avendo a disposizione dispositivi con limitata capacità di elaborazione e memoria Sviluppi Futuri Replicazione: per il servizio fornito dal Persistent Server Sicurezza: inserimento di un livello di cifratura sui messaggi Scalabilità: analisi del funzionamento e delle prestazioni in una dense Manet. Conclusioni e Sviluppi Futuri Conclusioni e Sviluppi Futuri