Proxy-based infrastructure for LBS availability
description
Transcript of Proxy-based infrastructure for LBS availability
Proxy-based infrastructure for LBS availability
Reti di Calcolatori L-S
Andrea Licastro
0000231728
Reti di Calcolatori LSAndrea Licastro
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.
Cliente
LBS
Reti di Calcolatori LSAndrea Licastro
Componenti fondamentali
• Il sistema deve prevedere: Client Proxy LBS Sistema di locazione
Client LBSProxy
Ekahau
Reti di Calcolatori LSAndrea Licastro
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 LSAndrea Licastro
Specifiche: …Proxy
• Replicazione proxy • Coordinamento tra le repliche• Availability del servizio• Persistenza delle informazioni• Bilanciamento del carico• QoS
Reti di Calcolatori LSAndrea Licastro
Funzionamento
LBS
Client
Proxy nProxy 2Proxy 1
Macro-area 1 Macro-area 2
Proxy nProxy 2Proxy 1
Client
Stato Client
Reti di Calcolatori LSAndrea Licastro
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 LSAndrea 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 LSAndrea Licastro
Comunicazioni inter-proxy
Proxy A Proxy BMailbox
• 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 LSAndrea 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 LSAndrea Licastro
Recovery
1. Individuazione del guasto tramite timeout o errore lanciato dalla connessione TCP
2. Invio messaggio Recovery3. 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 LSAndrea 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 client3. Invia il messaggio se la struttura non è vuota
Reti di Calcolatori LSAndrea Licastro
Conclusioni
Sistema progettato:• Tollerante ai guasti• Gestisce il carico• Informazioni persistenti• Trasparente ai clientSi è fatto ricorso a:• TokenRing • Repliche proxy• Database replicati con stati parziali• Connessioni TCP