Corso di Reti di Calcolatori LS Prof. A. Corradi A.A. 2005/2006 Proxy-based infrastructure for LBS tailoring Presentazione di: Marco Mantovani – matr. 0000228726 Referente progetto: Carlo Giannelli Agenda • • • • • • • • • • Scenario. Obiettivo. Architettura. Topologia della rete. Tecnologie utilizzate. Formato dei contenuti. Tailorer. Servizio di Proxy per il client. Comunicazione proxy-proxy. Conclusioni e sviluppi futuri. 2 Scenario • Crescente diffusione di dispositivi wireless. • Interesse a servizi location-based. • Problema: dispositivi eterogenei. – Vincoli di banda più o meno stringenti. – Dimensioni del display varie. • Necessità di adattare il contenuto al dispositivo (tailoring). 3 Obiettivo • Realizzare un’infrastruttura per il tailoring del contenuto di servizi LBS. • Il tailoring deve essere basato sia su caratteristiche del dispositivo sia su preferenze espresse dall’utente. • Implementare, sull’infrastruttura, il servizio VMT (Virtual Museum Tour). • L’infrastruttura sarà basata su proxy. 4 Architettura VMT Server LBS Server 2 LBS Server N PROXY Client A Client B Client C • Client: applicazione su dispositivo mobile. • Server: contiene i contenuti, catalogati secondo informazioni geografiche. 5 • Proxy: entità incaricata di eseguire il tailoring. Servizio di una richiesta • Il client contatta il proxy. • Il proxy recupera il contenuto dal server. • Il proxy esegue DNS Server il tailoring. • Il proxy risponde al client. VMT Server Risorse Tailorer PROXY Client 6 Topologia della rete Client B Macro-area 1 Proxy 2 DNS Server Proxy 1 VMT Server Client C Macro-area 2 • • • • Spazio servito suddiviso in macro-aree. Un proxy per ogni macro-area. Rete cablata tra proxy e server. Rete wireless tra clent e proxy. 7 Tecnologie utilizzate • XML e XSLT per la rappresentazione e la resa grafica dei contenuti. • Web Server (Tomcat 5.5) per il server. • Web Services (Jboss 4.0.4 CR2 + Axis 1.3) per il Proxy: – Comunicazione client-proxy. – Comunicazione proxy-proxy. • • • • Jess per la gestione delle policy di tailoring. BTProximity (su Linux) per il posizionamento. Java (JDK 1.5) come linguaggio comune. Browser web XSmiles sul client. 8 Formato dei contenuti • Esigenze: – Facile resa grafica sul client. – Capacità descrittiva del contenuto per agevolare il tailoring. • Soluzione adottata: XML! – Trasformazione in HTML sul client. – Trasformazione XSLT per il tailoring. • Scarsa efficienza nell’uso della banda rispetto ad una codifica binaria. – Problema trascurabile in una rete locale. – Possibilità di comprimere i dati. 9 Formato dei contenuti • Esempio: <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" title="prova" href="stylesheet.xslt" ?> <document xml:base="http://..../LBSserver/" stylesheet="stylesheet.xslt"> <body> <audio language="ITA" quality="1" src="…" /> … <box> <text language="ITA" length="1“>Benvenuto!</text> <text language="ENG" length="1“>…</text> <text language="ITA" length="2“>…</text> <media type="video" language="ENG" quality="3" src="…" /> <media type="img" quality="1" src="…" /> </box> … 10 Tailorer • Il tailorer è il componente che costituisce il meccanismo del tailoring. • E’ basato su un trasformatore XSLT. • I suoi parametri sono configurati dal gestore delle regole (Jess), in base a: – Caratteristiche del dispositivo. – Preferenze espresse dall’utente. – Modalità selezionata dal client. • Seleziona gli elementi giusti (in base ai parametri) da inviare al client dal documento XML originale ricevuto dal server. 11 Tailorer • Principio di funzionamento. Regole Settaggio parametri Contenuto “tailorato” Contenuto da “tailorare” 12 XSLT Tailorer Servizio proxy per il client • • • • Il client deve contattare il proxy. Il formato dei dati è XML. Scelta di utilizzare un Web Service. Vantaggi derivanti dall’impiego di un container J2EE (servizi). • L’interfaccia del servizio è la seguente: 13 Servizio proxy per il client • Diagramma delle interazioni. 14 Servizio proxy per il client • Tutte le operazioni implementano la modalità request-response: – register() e request() si aspettano un valore di ritorno. – retrieveMyState() – il clent deve essere bloccato fino al completamento del trasferimento dello stato. – Gli altri metodi potrebbero essere asincroni (one-way), ma con request-response possono ricevere eccezioni in caso di problemi. 15 Stato del client • Lo stato è composto da: – Caratteristiche del dispositivo (display, banda). – Preferenze specificate dall’utente. PROXY 1 PROXY 2 • Tali informazioni sono tutte dinamiche. STATO • Lo stato del client è mantenuto in maniera decentralizzata presso il proxy di competenza retrieveMyState dell’area in cui si trova. • Quando il client cambia macro-area, lo stato Client deve essereClient recuperato dal proxy precedente. • Dopo un certo periodo di inattività, un demone (cleaner) cancella lo stato (fatti) di un client. 16 Comunicazione proxy-proxy • Quando un client si accorge di aver cambiato macro-area contatta il nuovo proxy, invocando il metodo retrieveMyState(). • A quel punto il nuovo proxy contatta il vecchio proxy, sfruttando un altro Web Service esposto. • Tale Web Service ha la seguente interfaccia: 17 Comunicazione proxy-proxy • Diagramma delle interazioni. 18 Conclusioni e sviluppi futuri • E’ stata creata un’infrastruttura basata su proxy per il tailoring di contenuti relativi a servizi location-based. • L’infrastruttura supporta più servizi. • E’ stato implementato il servizio VMT. • Sono stati adottati accorgimenti per ottenere un’infrastruttura il più possibile robusta. • Non sono stati presi in considerazione aspetti di availability. – Possibile fusione con il progetto parallelo. 19 Conclusioni e sviluppi futuri • Stack bluetooth poco maturi. – Legame con Linux per il posizionamento (limita la portabilità). – Utilizzo di altri sistemi di posizionamento? • Client multipiattaforma (.NET?) se ci si slega da Linux. • Possibilità di supportare la persistenza dello stato dei client. 20 FINE Proxy-based infrastructure for LBS toiloring