Reti di Calcolatori LS Emiliano Capoccia DEIS Università di Bologna Reti MANET - Reti non strutturate, create e configurate in maniera dinamica - Nodi eterogenei per capacità di calcolo e banda - Alta mobilità (roaming) dei nodi, instabilità delle configurazioni della rete - Obiettivi Scenario computazionale nuovo: necessità di instaurare comunicazione con i nodi vicini senza conoscenza pregressa, in un dato momento ed in una data località Applicazioni collaborative di nuova concezione necessitano di nuovi servizi: - esplorazione dinamica della rete circostante possibilità di comunicare con i nodi vicini possibilità di gestire gruppi, eventualmente partizionati, per supportare funzionalità applicative avanzate Il middleware sviluppato realizza le funzionalità elencate consentendo all’utente di occuparsi solo della implementazione della parte specifica dell’applicazione Comunicazione di base - il middleware è basato sulla JVM e le socket (UDP); ogni nodo deve avere la sua JVM con il middleware installato per poter mettere in esecuzione le applicazioni. L’ipotesi di base IP statico nei nodi (rete non strutturata) - comunicazione punto-punto mediante send/receive ordinarie comunicazione punto-multipunto mediante broadcast in una rete MANET il broadcast raggiunge tutti i nodi direttemente connessi al nodo che effettua il broadcast nel middleware il broadcast è propagato in flooding alle reti vicine, per un raggio limitato e programmabile; il raggio di località si può impostare dinamicamente a runtime, mediante apposito protocollo, e supporta politiche avanzate globali di gestione. Architettura - Struttura stacked, dove GML si appoggia a BSL BSL estende i servizi di comunicazione di base della JVM GML usa la comunicazione avanzata offerta da BSL per introdurre la gestione dei gruppi, il roaming e la rilocazione della gestione - Middleware layered: BSL estensione delle modalità di comunicazione di base implementazione del concetto di località realizza le funzionalità di esplorazione della rete circostante e di comunicazione con i vicini menzionate negli obiettivi estende il broadcast di base fornito dalla JVM con un meccanismo di flooding limitato stateful: soft state comprende informazioni sul vicinato (nodi raggiungibili e loro indirizzo di rete) e durante le comunicazioni mantiene informazioni su messaggi frammentati adattatività: BSL fa affidamento alla ricezione in broadcast dei beacon dei nodi vicini per aggiornare adattativamente lo stato alle variazioni della topologia Esempio di topologia di rete Nodi in visibilità diretta Località; raggio 2 punto di vista di (2) Località; raggio 2 punto di vista di (5) Middleware layered: GML gruppo: insieme di entità interagenti associate, ognuna dotata di un profilo che ne descrive caratteristiche, interessi e capacità - - gruppi partizionati, presenti in insiemi di nodi disgiunti nella rete complessiva GML realizza l’obiettivo di gestione di gruppi: - - creazione di un gruppo (sul nodo gestore) discovery dei gruppi nel vicinato possibilità di associarsi/disassociarsi da un gruppo esistente nel vicinato supporto alla mobilità dei nodi (roaming): viene mantenuto lo stato di associazione ad un gruppo in mobilità un protocollo specifico permette di rilocare la risorsa gruppo (e la sua gestione) ad un diverso nodo nel vicinato (handover) GML (molto) stateful: punto di centralizzazione sul gestore e info di stato estese (composizione dei gruppi, profili,...) Protocollo DISCOVERY BROADCAST - UNICAST manager2 protocollo usato dal nodo per conoscere i gruppi gestiti dai nodi del vicinato client DISCOVERY_REQUEST DISCOVERY_RESPONSE - - - manager1 DISCOVERY_RESPONSE il nodo invia una richiesta (DISCOVERY_REQUEST) in broadcast limitato e si mette in attesa di risposte per un certo periodo la richiesta può riferirsi a gruppi di dato profilo o essere generica (tutti i gruppi) i nodi gestori che ricevono la DISCOVERY_REQUEST i cui gruppi fanno match col profilo richiesto, inviano un messaggio di DISCOVERY_RESPONSE in unicast al richiedente notificandogli la presenza del gruppo Protocollo JOIN(LEAVE) - BROADCAST protocollo usato dal nodo per associarsi(disassociarsi) ad un gruppo presente nel vicinato UNICAST manager membro#2 #1 - del gruppo #n JOIN_REQUEST ACK il nodo invia una richiesta ACK JOIN_REQUEST(LEAVE_REQU EST) in unicast verso il gestore del gruppo e si mette in attesa della risposta il gestore che riceve una richiesta di join(leave) ACK(LEAVE_RESPONSE) risponde al mittente e notifica tutti i membri del gruppo (pub/sub) con un messaggio di ACK(LEAVE_RESPONSE) in unicast ACK - #N comunicazione stateful (messaggi numerati): esecuzione di una routine di callback all’arrivo della risposta ACK(LEAVE_RESPONSE); la richiesta di join(leave) è asincrona non bloccante Protocollo HANDOVER - - BROADCAST UNICAST protocollo usato da un nodo gestore per realizzare la rilocazione della gestione verso un altro nodo del vicinato (tipicamente per batteria prossima a terminare). Protocollo di bidding manager HANDOVER_REQUEST HANDOVER_RESPONSE HANDOVER_RESPONSE il nodo gestore invia una richiesta HANDOVER_REQUEST in broadcast limitato e si mette in attesa di offerte tutti i nodi che ricevono una HANDOVER_REQUEST e possono potenzialmente gestire gruppi, inviano in unicast al richiedente la propria HANDOVER_RESPONSE contente informazioni sulla capacità di prendere in carico la gestione HANDOVER_ACCEPT - il nodo gestore attende le risposte alla propria HANDOVER_REQUEST per un certo intervallo di tempo, allo scadere del quale calcola quale fra i nodi offerenti è il migliore e deve passare a fare da gestore; a quel punto invia in broadcast limitato un messaggio di HANDOVER_ACCEPT contenente l’identità del nuovo gestore e smette di gestire. Rimane tuttavia Limiti del middleware e • C’è un punto diconclusioni centralizzazione nel nodo gestore di ogni gruppo; se tale nodo cade prima di aver effettuato l’handover, parte dei servizi risultano compromessi • • • Anche in presenza di perdita di messaggi di protocollo alcuni nodi possono vedere compromessa la funzionalità di gruppo; il middleware gestisce “besteffort”, senza qualità Il pregio maggiore sta nella scalabilità del middleware e nella adattività dello stesso alle variazioni di topologia della rete In conclusione, il middleware stesso può costituire un valido supporto per applicazioni collaborative che non richiedano qualità di servizio; viceversa, occorre estendere il middleware stesso ed aggiungere in cima ai layer esistenti uno strato che implementi la qualità