GVTS Global Virtual TupleSpace Nicola Zanella 1 Obiettivi • Fornire un’astrazione di spazio di tuple condiviso • Concetto di gruppo • Presence awareness e gestione profili 2 Scenario • La comunicazione avviene tra dispositivi – Eterogenei – Mobili Uso una MANET • Contesto – Che cambia dinamicamente – Senza infrastrutture di rete quali cavi, access point… 3 Mobile Ad-hoc NETwork •Nodi mobili che collaborano per fornirsi servizi •Topologia dinamica •Problemi: mobilità dei nodi, perdita di pacchetti, dispositivi diversi 4 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 5 Cos’è uno spazio di tuple <“user 1”, “message”, “OK”, 12:57> <Nicola, “ESP KH2”, “2000$”, AMEX> <“Sensore 123”, “Rilievo 12”, 36°C> esempio di tupla • Insieme strutturato di relazioni • Operazioni di prelievo, deposito, lettura • Pattern matching • Semantica non deterministica 6 Allocation and Group Aware Pervasive Environment ME ME ME ME LME LME Locality Manager Entity ME LME ME Managed Entity Gli LME forniscono il supporto al • Group and view management • Routing per gestire gli ME 7 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 8 GVTS e AGAPE APPLICATION SuperPeerTupleManager Spazio di tuple ServerManagers PeerTupleManager GVTS ClientManagers AGAPE Il SuperPeer viene mappato sopra un LME e un Peer su un ME Ci si concentra solo sui protocolli delle primitive 9 La primitiva OUT LME1 ME1 ID DEST TUPLA Req1 LME1 <?,?,?> Timeout e ritrasmissioni Tabella delle richieste pendenti 10 La primitiva READ LME1 ME1 ID DEST TUPLA Req1 LME1 <?,?,?> Timeout e ritrasmissioni Tabella delle richieste pendenti 11 La primitiva IN ID DEST TUPLA Req1 LME1 <?,?> InRequest InResponse ID DEST TUPLA Res1 ME1 <?,?> Tabella delle risposte pendenti Tabella delle richieste pendenti ME1 ID DEST TUPLA Ack1 LME1 <?,?> Ack LME1 Tabella degli ack pendenti Timeout e ritrasmissioni 12 Le primitive non annotate • Ogni primitiva consente di -- specificare l’LME destinatario oppure -- lasciare decidere il supporto Si cicla sugli LME disponibili Aspettando il MULTICAST su agape... 13 Un applicazione di GVTS: SuSi • Supporto alla Sicurezza • Test delle primitive e protocolli applicativi 14 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 15