150 likes | 287 Views
GVTS. Global Virtual TupleSpace. Nicola Zanella. Obiettivi. Fornire un’astrazione di spazio di tuple condiviso Concetto di gruppo Presence awareness e gestione profili. Scenario. Uso una MANET. La comunicazione avviene tra dispositivi Eterogenei Mobili Contesto
E N D
GVTS Global Virtual TupleSpace Nicola Zanella
Obiettivi • Fornire un’astrazione di spazio di tuple condiviso • Concetto di gruppo • Presence awareness e gestione profili
Scenario Uso una MANET • La comunicazione avviene tra dispositivi • Eterogenei • Mobili • Contesto • Che cambia dinamicamente • Senza infrastrutture di rete quali cavi, access point…
Mobile Ad-hoc NETwork • Nodi mobili che collaborano per fornirsi servizi • Topologia dinamica • Problemi: mobilità dei nodi, perdita di • pacchetti, dispositivi diversi
Presence awareness • Ogni nodo riceve le informazioni su coloro che • appartengono alla sua rete • Le informazioni sono incapsulate nel • concetto di profilo • Tramite un servizio che lavora ad intervalli regolari • è possibile sapere non solo chi ci sia ma anche ci • sia arrivato o se ne sia andato
esempio di tupla Cos’è uno spazio di tuple • Insieme strutturato di relazioni • Operazioni di prelievo, deposito, lettura • Pattern matching • Semantica non deterministica <“user 1”, “message”, “OK”, 12:57> <Nicola, “ESP KH2”, “2000$”, AMEX> <“Sensore 123”, “Rilievo 12”, 36°C>
LME ME ME ME ME ME ME LME LME Managed Entity Locality Manager Entity Allocation and Group Aware Pervasive Environment • Gli LME forniscono il supporto al • Group and view management • Routing • per gestire gli ME
GVTS: modello adottato Lo spazio di tuple è partizionato su un numero ristretto di membri detti SuperPeer, e gli altri, detti Peer, si rivolgono ai primi per le loro operazioni: in, read e out
Spazio di tuple GVTS GVTS e AGAPE APPLICATION SuperPeerTupleManager ServerManagers PeerTupleManager ClientManagers AGAPE Il SuperPeer viene mappato sopra un LME e un Peer su un ME Ci si concentra solo sui protocolli delle primitive
OutRequest OutResponse LME1 ME1 Timeout e ritrasmissioni La primitiva OUT Req1 LME1 <?,?,?> Tabella delle richieste pendenti
RdRequest RdResponse LME1 ME1 Timeout e ritrasmissioni La primitiva READ Req1 LME1 <?,?,?> Tabella delle richieste pendenti
InRequest InResponse Ack LME1 ME1 Timeout e ritrasmissioni La primitiva IN Res1 ME1 <?,?> Req1 LME1 <?,?> Tabella delle risposte pendenti Tabella delle richieste pendenti Ack1 LME1 <?,?> Tabella degli ack pendenti
Le primitive non annotate • Ogni primitiva consente di -- specificare l’LME destinatario oppure -- lasciare decidere il supporto Si cicla sugli LMEdisponibili Aspettando il MULTICAST su agape...
Un applicazione di GVTS: SuSi • Supporto alla Sicurezza • Test delle primitive e protocolli applicativi
Sviluppi Futuri • Autoregolazione dei tempi di ritrasmissione e del numero di tentativi per ogni primitiva • Aggiunta di altre primitive(ad esempio In All) • Supporto alla replicazione di tuple e coordinamento opportuno lato LME