Proxy-based infrastructure for LBS tailoring Relazione di: Alessandro Antonelli matr. 0000245059 Bologna, 07/01/2008 Overview LBS “Location-based services (LBS) are wireless 'mobile content' services which are to provide location-specific information to mobile users moving from location to location” By Wiki Client mobili (collegamenti wireless) Informazioni legate alla specifica locazione da cui il client le richiede Cambi di posizione del client implicano modifiche al contenuto informativo fornito dal server Target Proxy-Based Tailoring ETEROGENEITA + PREFERENZE = TAILORING Tailoring: adattamento dei servizi in base alle capacità e alle preferenze del client Uso di un proxy per adattare i contenuti informativi forniti dai server Case Study VMT: Virtual Museum Tour Visita ad un museo supportata da servizi multimediali fruibili tramite un dispositivo portatile: pda, laptop, notebook Fornitura di informazioni relative alle opere vicine alla posizione attuale del client Adattamento del servizio in base alle capacità del dispositivo ed alle preferenze dell'utente Regole di adattamento aggiornabili runtime Suddivisione del museo in macroaree servite da un proxy ciascuna Guideline Ci si è preposti come linea guida quella di adottare una netta separazine tra infrastruttura di gestione e fornitura dei contenuti Possibilità di inserire ed eliminare servizi a tempo di esecuzione Sistema di tailoring modulare ed estendibile Coordinamento per la gestione dei server disponibili Necessità di informazioni per poter integrare i nuovi servizi nel sistema Tailoring statico e dinamico Statico: decisione del miglior match tra le capacità/preferenze dell'utente e le risorse disponibili per la locazione corrente Dinamico: adattamento del flusso informativo in erogazione per venire incontro a necessità dinamiche dell'utente Topology •Client •PNS External Area PNS •Proxy •Registry Backbone Proxy1 Proxy2 Registry •Server Server A Server B Server C Backbone 1/3 :::Server::: Entità che fornisce i servizi Deve esporre un'interfaccia di integrazione con il sistema VMT Potenzialmente legacy: bisognerà costruire un wrapper che fornisca la possibilità di integrazione Regole e metaregole File jar per l'adattamento runtime del servizio Backbone 2/3 :::Registry::: Entità di coordinamento e gestione dinamica Visione globale dello stato del sistema Aggiunta, rimozione e modifica di server/servizi Attivazione e disattivazione di proxy Location-awareness: mette in corrispondenza le risorse fornite dai server con l'effettiva disposizione geografica delle opere all'interno del museo Espone un WebService per la registrazione/attivazione (sia per i server che per i proxy) Comunicazione Registry-Proxy in formato proprietario tcp/ip (nessuna necessità di standardizzazione) per notificare i proxy di modifiche alle risorse o ai servizi Backbone 3/3 Nodo cardine dell’architettura Comunicazione con i client (Java RMI) Tailoring: regole fornite dai server (motore di inferenza: DROOLS) Adattamento ed inoltro dei servizi dai server verso i client (adapter) Gestione delle richieste multiple (pooling) Gestione differenziata per utenti paganti e non I Workers informano i server sulle modalità e sui contenuti da erogare :::Proxy::: Proxy Tailoring Module Pooling Module Multicast Module Workers F O R W A R D I N G External Area 1/2 :::PNS::: PNS: Proxy Naming Service Servizio di nomi contestuale Consegna ai Client l’opportuno indirizzo del Proxy atto a servire la relativa macroarea Consente la registrazione/deregistrazione a runtime dei Proxy Possono essere sviluppate politiche di distribuzione di carico in caso di proxy “overlapped” Protocollo di comunicazione socket TCP proprietario(nessuna necessità di standardizzare) External Area 2/2 Dispostivo mobile richiedente fruizione di contenuti multimediali a seconda della prossimità spaziale ad un’opera Struttura modulare: Modulo GPS Utilizzo delle API JSR 179 Notifiche dettate da eventi di prossimità Modulo di Stato :::Client::: HardSet State:caratteristiche che rimangono immutate durante la vista al museo Dinamyc State:racchiude al suo interno l’intero contesto di esecuzione del client(posizione, livello di batteria, livello di banda…) In fase di deploy viene inserita una mappa del museo in modo da poter perpetrare le corrette richieste al Proxy Comunicazione col Proxy tramite Java RMI Workflow Client: recupero della propria posizione tramite GPS Client: interrogazione del servizio di nomi (PNS) Client: notifica di cambio posizione al server rmi del proxy Proxy: tailoring, predisposizione delle strutture per il forwarding e richiesta del servizio al server Server: fornitura del servizio Test Ambiente di simulazione Deployment PC dedicato alla simulazione client ed implementazione PNS PC dedicato per implementazione Server Legacy + Wrapper PC dedicato per implementazione Registry e Proxy Installazione di Tomcat sul server legacy, deploy del wrapper WebService, deploy dei moduli di regole e dell'adattatore Installazione Tomcat sul Registry e deploy del componente WS per gestione Proxy e Server Installazione sul client della mappa, del layer VMT e dell'applicazione grafica per visualizzazione output Generazione di più client per la simulzione Run time Simulazione di Burst di clienti Simulazione di flusso continuo di clienti Test Tempi di risposta del proxy su notifiche di cambiamento di posizione del client 750 Millisecondi Utenti con arrivo intervallato: leggero degrado delle prestazioni 700 650 600 550 500 4 20000 16 128 Worst case scenario – Arrivo Burst: aumento rilevante dei tempi di attesa 16000 14000 Millisecondi 64 #Client 18000 12000 10000 8000 6000 4000 2000 0 4 16 32 #Client 64 96 128 Test Tempi di registrazione al sistema di un client presso il proxy locale al piano di riferimento 1100 1080 1040 Millisecondi Utenti con arrivo intervallato: prestazioni indipendenti dal numero di utenti 1060 1020 1000 980 960 940 920 900 4 16 64 128 #Client 30000 Worst case scenario – Arrivo Burst: aumento rilevante dei tempi di attesa 25000 Millisecondi 20000 15000 10000 5000 0 4 16 32 #Client 64 96 128 Conclusions Tempi di risposta accettabili in condizioni di utilizzo normale, problemi invece con arrivo contemporaneo di molti client Ottima flessibilità in ambito di: Riuso: per quanto riguarda le componanti architetturali e l’estendibilità Operativo: grazie alla gestione modulare del tailoring e dell’adattamento Dominio applicativo: il GPS lo rende utilizzabile anche negli ambienti estesi ed il WiMax fornisce la copertura di comunicazione (zoo, parchi, città d'arte, etc...) Work up: Availability e fault tolerance non prese in considerazione, ma aspetti imprescindibili di un progetto completo Layer di presentazione: l'implementazione attuale è fornita solo di un semplice sistema per il testing