Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon
Sommario Introduzione Architettura di SMS - “Simple Mobile Services” Gestione delle pagine lato client e lato server Cache e Bookmark List RMS: Persistenza dei dati sul client MOVE Invio delle Statistiche verso i server push Page Server con interfaccia Web per sviluppatori Conclusioni
Introduzione Il progetto SMS definisce un insieme di servizi fruibili da dispositivi mobili Alto numero di servizi difficoltà per i client di reperire i più consoni Soluzione: Approccio PUSH i server anticipano con criterio l’invio di servizi utili al client Necessità nel client di avere un modulo opportuno per la gestione di tale meccanismo
Architettura di SMS Architettura basata su componenti (peers) Scambio di messaggi attraverso il middleware SMILE Client e server sono implementati in termini di processi SMILE
Architettura di SMILE-JS Protocollo SIP per la connessione tra i nodi Scambio di dati tra componenti mediante il linguaggio di markup JSON Binding tra SMILE e JSON costituisce l’architettura SMILE-JS
Architettura di SMILE-JS (2) SMILE è orientato alla comunicazione tra processi Server centralizzato (Yellow Pages) che supporta il peer discovery tra processi SMILE e la loro pubblicazione
L’approccio “push-based” Lato client, un servizio è realizzato da un insieme di pagine thinlet (un GUI toolkit per Java) scritte in XML Le pagine possono essere scaricate in Modalità pull: paradigma richiesta/risposta classico (es. HTTP/HTML) Modalità push: il server invia pagine senza una esplicita richiesta del client PROBLEMA: la modalità push necessita di Gestione avanzata lato client delle pagine Page Servers “intelligenti” Comunicazione tra client e Page Servers
Page Management nel MOVE MOVE : Mobile Open & Very Easy Applicazione J2ME installata sul client mobile nello scenario SMS Il processo Page Client si occupa di ricevere pagine e richiedere dati (altre pagine, immagini) Persistenza dei dati sul client tramite RMS
Page Management nel MOVE (2) Le pagine hanno una diversa modalità di visualizzazione (concetto di Display Point) Local Services: i servizi veri e propri a disposizione dell’utente Notifications: messaggi di avviso che richiedono immediata attenzione da parte dell’utente Possibile impostare una priorità di invio (alta, media, bassa) Undefined: risorsa usata da altre pagine
Page Management nel MOVE (3) Le pagine sono memorizzate in una struttura di tipo Linked List insieme di nodi collegati tra di loro, dove ogni nodo rappresenta una pagina e loro informazioni Linked List Cache List Bookmark List
Page Management nel MOVE (4) Ciascun nodo rappresenta una pagina attraverso informazioni quali Page ID: identificativo unico della pagina Priority: grado di importanza per le notifiche RMS reference: riferimento al contenuto della pagina Friendly name: nome di presentazione della pagina Service ID: identificativo del servizio a cui la pagina appartiene Icon: una immagine di presentazione Display point: modalità di visualizzazione nel MOVE Hits: statistiche di utilizzo Timestamp: tempo di vita della pagina Version: versione della pagina
Cache List Linked List che contiene tutti i dati ricevuti dal client Meccanismo di ordinamento: Ultimo arrivato è posto in testa alla lista Un nodo richiamato viene posto nuovamente in testa alla lista
Cache List (2) Gli elementi più rilevanti per l’utente saranno in testa alla lista Quelli meno rilevanti in coda In caso di esaurimento della memoria saranno cancellati gli elementi in coda alla lista
Bookmark List Linked List che contiene l’insieme dei servizi preferiti (“MyServices”) dall’utente Numero predefinito di slot disponibili Avviso in caso di esaurimento della memoria Cancellazione manuale degli elementi
Record Management Store Meccanismo che favorisce la persistenza dei dati offerto da J2ME Emula le funzionalità di una memoria di massa Dati salvati come flusso di byte Possibilità di salvataggio di qualsiasi tipo di informazione
Persistenza dei dati Tre distinti Record Store Cache list RMS Ordine dei nodi della cache Bookmark list RMS Ordine dei nodi dei preferiti Pages RMS Contenuto delle pagine Le liste hanno un riferimento agli Item del Pages RMS Save On Exit Incoming Page Pages RMS Cache RMS Bookmark RMS Record ID Reference
Utilizzo della memoria Tipi di memoria interni al MOVE Primaria, della JVM Secondaria, del Page RMS Monitoring della memoria Garbage collector per la memoria Heap Storage statico per l’RMS Possibili politiche di gestione delle memorie
Invio Statistiche Set di informazioni su servizi e pagine presenti nella Cache List del client Intervalli regolari di invio Formato messaggio User ID mittente Lista dei servizi contenuti nel client e loro uso Utile per comportamento “intelligente” dei Page Servers
Page Server Il Page Server è utilizzato per l’invio di pagine o servizi verso i client Implementazione in JSP, Java Servlets e MySQL Invio pagine in modalità Push Invio dati su richiesta del client
Page Server (2) È munito di una interfaccia web che consente di specificare attributi della pagina non ricavati automaticamente Author Context Icon …
Conclusioni Il nostro lavoro si è focalizzato sulla gestione dei servizi e delle pagine in arrivo sull’applicazione lato client nello scenario SMS denominata MOVE Questo consente agli utenti di poter “customizzare” in base alle loro necessità e preferenze i servizi che si vedono arrivare sul dispositivo grazie al meccanismo dell’invio di statistiche Per sviluppare e testare la correttezza lato client dell’applicazione, si è reso necessario implementare un page server che inviasse le pagine dietro richiesta dello sviluppatore