Proxy-based infrastructure for LBS availability Reti di Calcolatori L-S Andrea Licastro 0000231728 LBS (Location Based Services) Uno dei più potenti modi per personalizzare servizi mobili, è sfruttare la nozione della posizione del cliente. Le applicazioni LBS potrebbero fornire al visitatore di un museo le informazioni sulle opere della sala in cui si trova, e cambiare in modo trasparente all’utente. LBS Cliente Reti di Calcolatori LS Andrea Licastro Componenti fondamentali • Il sistema deve prevedere: Client Proxy LBS Sistema di locazione Client Ekahau Proxy Reti di Calcolatori LS Andrea Licastro LBS Specifiche: sistema… Il sistema deve: • Dividere lo spazio del museo in macro-aree • Registrare client e assegnarli priorità • Gestire gli spostamenti del client in modo trasparente, adattando il servizio alla posizione • Il sistema di locazione deve essere Ekahau Reti di Calcolatori LS Andrea Licastro Specifiche: …Proxy • • • • • • Replicazione proxy Coordinamento tra le repliche Availability del servizio Persistenza delle informazioni Bilanciamento del carico QoS Reti di Calcolatori LS Andrea Licastro Funzionamento LBS Macro-area 1 Proxy 1 Proxy 2 Macro-area 2 Proxy n Proxy 1 Proxy 2 Stato Client Client Client Reti di Calcolatori LS Andrea Licastro Proxy n Replicazione e Bilanciamento • Si è scelto di gestire le repliche dei proxy in un anello logico (ispirati dal Principio di Minima Intrusione) • Le repliche si coordinano tramite 2 token: uno di registrazione e uno per lo spostamento tra macro-aree • Bilanciamento del carico: si prevede che le registrazioni avvengano compatibilmente alle disponibilità computazionali, al fine di distribuire equamente il carico • La struttura ad anello logico ha tra le sue caratteristiche quella di essere scalabile, in quanto ogni nodo è configurato con le informazioni della sua posizione Reti di Calcolatori LS Andrea Licastro Persistenza informazioni Ogni proxy deve avere conoscenza dei client! Alternative plausibili: • File testo • Struttura volatile replicata • Database PRO: Fault Tolerance CONTRO: Sincronizzazione (troppi messaggi) L’introduzione di uno stato parziale replicato elimina inutili messaggi tra i proxy, mentre la copia a cui il client si è registrato conserva lo stato completo Reti di Calcolatori LS Andrea Licastro Comunicazioni inter-proxy Proxy A Mailbox Proxy B • Il Proxy A invia messaggi al Proxy B facendo uso di una Mailbox • Entrambi i proxy usano Mailbox per prelevare e depositare messaggi dall’anello (comandi, dati, token) • Le Mailbox sono usate anche dai thread interni, necessari per una corretta e parallela esecuzione degli stessi Reti di Calcolatori LS Andrea Licastro Availability Obiettivo: Individuare il guasto in tempi accettabili e procedere all’adattamento della rete e alla suddivisione del clienti “orfani”. Ipotesi semplificative: • Guasto singolo • Corretto funzionamento della rete …altrimenti costo e complessità proibitive. Reti di Calcolatori LS Andrea Licastro Recovery 1. Individuazione del guasto tramite timeout o errore lanciato dalla connessione TCP 2. Invio messaggio Recovery 3. Nodo precedente al nodo caduto riceve il messaggio e si proclama gestore della procedura di recovery 4. Invio di messaggio contenente la nuova struttura dell’anello e variabili per rilevare la mancanza dei token, ed eventuale immissione nel sistema del token perso Reti di Calcolatori LS Andrea Licastro Ripartizione client “orfani” 1. Il gestore del recovery, avendo gli stati parziali di tutti i client, è in grado di prelevare dal proprio DB le informazioni sui client del nodo caduto e di costruire la struttura dati degli “orfani” 2. Inserisce la struttura dati in un messaggio che invia 3. Ogni replica che riceve il messaggio: 1. Preleva il primo client 2. Comunica ai nodi di gestire il client 3. Invia il messaggio se la struttura non è vuota Reti di Calcolatori LS Andrea Licastro Conclusioni Sistema progettato: • Tollerante ai guasti • Gestisce il carico • Informazioni persistenti • Trasparente ai client Si è fatto ricorso a: • TokenRing • Repliche proxy • Database replicati con stati parziali • Connessioni TCP Reti di Calcolatori LS Andrea Licastro