Presentazione di
Francesco Fiori
Reti di Calcolatori LS
Professor Antonio Corradi
Ingegner Dario Bottazzi
Il progetto si è concentrato sull’adattamento del
framework SAMOA a scenari di emergenza dove la priorità
è la comunicazione tra persone in difficoltà e la rapida
disseminazione di informazioni nonostante le possibili
carenze di infrastrutture per la comunicazione.
Il lavoro svolto verte sullo sviluppo di un servizio per
favorire la comunicazione sia sincrona che asincrona tra
utenti appartenenti a reti sociali differenti oppure non
direttamente connessi in quanto in una situazione di
emergenza è possibile che un singolo nodo rimanga isolato
per un tempo prolungato.
• Socially Aware and
MObile Architecture (SAMOA) è
un middleware che integra un insieme di facilities per
la gestione, la personalizzazione e la propagazione di
una rete sociale a livello applicativo
• SAMOA supporta la creazione di reti sociali
semantiche context-aware tra utenti fisicamente
vicini, con stesse attitudini e interessi
• La rete sociale è centrata sull'utente e utilizza due
tipologie di visibilità di contesto:
• Place visibility
• Profile visibility
• Manager: utenti interessati a
creare una propria rete sociale,
hanno la responsabilità di
definire i confini della località
e scegliere i criteri sui
partecipanti
• Client: tutti gli utenti presenti
all'interno dei confini stabiliti
dal manager, sono i candidati a
diventare i membri della rete
sociale
• Member: sono i client che
entrano a far parte di una rete
sociale
• Social Network Management Layer: fornisce meccanismi per l'estrazione
della rete sociale e per la sua gestione
• Basic Services Layer: fornisce un servizio di nomi, un meccanismo per la
rilevazione di entità presenti nella medesima località e dei metodi per
supportare la comunicazione
• DTN Layer: fornisce il servizio per la gestione di messaggi Delay Tolerant
inviati a entità SAMOA non necessariamente connesse in modo diretto
Durante una situazione di emergenza ci sono tre problematiche da affrontare:
•
Tecnologiche: difficoltà nell'implementare gli adeguati sistemi di comunic
azione
• Sociologiche: devono comunicare gruppi di persone eterogenee
• Organizzative: difficoltà nella gestione di molte informazioni imprecise
Possibile soluzione? La creazione di reti sociali contexaware
tra utenti fisicamente vicini per una rapida diffusione delle
informazioni -> Utilizzo del framework SAMOA
Ulteriore problematica: possibilità che nodi della rete sociale rimangano
isolati per un periodo di tempo prolungato
Possibile soluzione? Implementazione di un servizio aggiuntivo che
permetta di inviare messaggi tra entità non direttamente connesse tramite
un meccanismo di forwarding -> DTN Architecture
• La DTN Architecture si propone come obiettivo la possibilità
di far comunicare tra loro reti indipendenti, mutuamente
incompatibili caratterizzate da ritardi di trasmissione molto
variabili, da periodi di perdita delle connessioni di durata
arbitrariamente lunga, da alti tassi di errore e da forte
asimmetria di trasmissione dei dati nelle due direzioni.
• Fornisce servizi chiave come la memorizzazione, la
ritrasmissione e il forwarding di messaggi asincroni al fine di
garantire l’affidabilità alla comunicazione
• Si basa su due concetti fondamentali:
regione: parte della rete globale che comprende uno o più nodi
gateway: nodo con elevate capacità computazionali che ha il compito di gestire i
messaggi che riceve da altri nodi e di forwardarli
• Il DTN Layer che abbiamo aggiunto all'architettura è
un'estensione di SAMOA, è stato quindi necessario mappare le
strutture tipiche della DTN Architecture con quelle del
middleware:
DTN Architecture
DTN Service
Regione: parte della rete globale che
comprende uno o più nodi
Place-depent Social Network: gli utenti
della regione saranno gestiti tramite il
PSNM
Gateway: nodo con elevate capacità
computazionali che ha il compito di
gestire i messaggi ricevuti da altri nodi e
di effettuarne il forwarding
Manager (sarà anche forwarder): nodo
della rete responsabile della
memorizzazione dei messaggi DT e del
forwarding dei messaggi memorizzati
nella cache ai nodi con cui entra in
prossimità fisica
• Protocollo DTN: comprende tutte le primitive di invio e ricezione
dei messaggi DT
• Un pool di thread per gestire l'invio dei messaggi DT e la
ritrasmissione di pacchetti non giunti a destinazione
• Un pool di thread per gestire la ricezione dei messaggi DT e le
richieste in caso di errore
• Una cache: un database all'interno del quale vengono
memorizzati i messaggi DT. Ha anche il compito di aggiornare il
TTL di ogni messaggio, provvedendo alla cancellazione dei
messaggi scaduti
• Un gestore dello stato per gestire lo stato del protocollo DTN e lo
stato del protocollo di scambio File
• Il DTN Service si occupa dell’invio/ricezione di messaggi DT
• I DT messages vengono memorizzati in una cache per
forwarding futuri anche dopo un certo periodo di tempo
• I ruoli all’interno del DTN Service sono 3:
• sender (sia client che manager)
• receiver (sia client che manager)
• forwarder (solo manager)
• I messaggi DT vengono scambiati in base alla selezione del
profilo dei destinatari, ci sono due differenti livelli di profilo
specificabili dal sender del messaggio:
• Place Profile Target (PP)
• User Profile Target (UP)
• Quando un client entra in prossimità fisica con un manager gli
invia tutti i messaggi DT che ha memorizzato in cache
• Quando due manager entrano in prossimità fisica si inviano
reciprocamente i messaggi DT che hanno memorizzato in cache
• Quando due client entrano in prossimità fisica non avviene
nessuno scambio di messaggi DT. Due client necessitano sempre
dell’intermediazione di un manager.
• Quando un manager riceve un messaggio DT verifica il match
dei profili ed eventualmente inoltra il messaggio al proprio
livello applicativo. Successivamente invia il messaggio agli altri
manager. Infine verifica il match con i profili dei client presenti
nella sua rete sociale (PSN) ed eventualmente provvede alla
consegna ai client del messaggio appena ricevuto.
• La cache è stata realizzata su un database db4o (DataBase For
Objects), un database a oggetti open source su file facilmente
integrabile con Java
• Tutti i messaggi, sia inviati che ricevuti, sia che si tratti di client
che di manager, vengono salvati in cache
• I messaggi devono essere serializzati per essere inseriti in
cache e deserializzati per esser letti e modificati
• Per rendere più leggero l’accesso alla cache i file allegati
vengono salvati esternamente su disco visto che db4o non è
adatto a grosse mole di dati
Record della cache
messageHash
dtnMessageBytes
readable
deleteAfterSend
• Oltre al campo messaggio, ogni tupla del database
contiene altri campi necessari alla gestione:
• message hash
• la flag readable
• la flag deleteAfterSend
• thread TTLController: serve per controllare il time to
live di tutti i messaggi presenti in cache, è un thread
che viene fatto partire dal costruttore della classe
DTNMCache e può esserne specificato l'intervallo tra
un controllo e l'altro
I test sono stati eseguiti su una rete locale utilizzando
quattro computer: 2 manager e 2 client
Test di forwarding:
solo 2 entità connesse alla volta
-> test positivo
Test di carico elevato:
tutte e 4 le entità connesse
Contemporaneamente
-> qualche malfunzionamento
Aspetti negativi sorti dai test:
• bassa velocità di scambio file allegati di grosse dimensioni
(troppi pacchetti persi)
• problemi di gestione vari (failure bizantine) nel test con
tutte e 4 le entità connesse
• discordanze di TTL tra le varie entità: possibili forwarding
per messaggi già ricevuti o scaduti
Aspetti positivi:
• possibilità di comunicazione asincrona
• possibilità di utilizzare SAMOA anche in scenari di
emergenza grazie alla nuove caratteristiche
•SAMOA ha acquisito maggiore affidabilità e dinamicità
• recoverability e reability: consistenza del sistema grazie a
un buon utilizzo degli stati anche in caso di disconnessioni
temporanee
Scarica

Presentazione