Modellazione concettuale di applicazioni Web personalizzate e context-aware Stefano Ceri, Florian Daniel, Federico Facca, Maristella Matera Milano – 18 Novembre ‘04 Estensione WebML - WP7.1
Supporta personalizzazione lungo due dimensioni WebML & Adattività Descrizione generale Linguaggio grafico (e testuale) di modellazione per applicazioni Web data-intensive Supporta personalizzazione lungo due dimensioni Contenuti personalizzati rispetto ad utenti Interfacce ipertestuali personalizzate rispetto a gruppi WebML adattativo Personalizzazione dell’applicazione non solo rispetto all’ identità dell’utente, ma anche rispetto al suo contesto. Dimensioni di adattività (cosa vogliamo ottenere?) Adattamento automatico di contenuti Esecuzione automatica di azioni di navigazione o servizi Adattamento automatico dell’ipertesto (site view) Per ulteriori dettagli: rapporto R.7.1.1
WebML adattativo: Overview Contenitori context-aware Pagine “C” presentano comportamento adattativo Aggiornamento pagina tramite meccanismo di refresh automatico Azioni di adattamento: specificano il comportamento adattativo e sono eseguite a ogni refresh automatico Aree “C” permettono di raggruppare operazioni da eseguire per ogni pagina “C” contenuta Contenitori interni ereditano azioni da quelli esterni
WebML adattativo: Computo di pagine dinamiche
WebML adattativo: Computo di pagine context-aware
Esempio: Primo prototipo P.7.1.1 (mese 20) Strumenti per la produzione di siti Web multicanale personalizzati Scenario di riferimento Portale Agenzia Viaggi: due sotto-scenari Travel Planner (Cefriel/Engineering): ricerca destinazioni e selezione pacchetti viaggio Adattamento della presentazione al contesto Accesso multi-dispositivo Interazione multimodale Travel Assistant (Polimi): informazioni di supporto sul luogo di destinazione Mantenimento modello del contesto Adattamento di contenuti e navigazione
Esempio: Modello dei dati Adattamento di contenuti ed azioni di navigazione automatiche
Esempio: Ipertesto adattativo (frammento semplificato) Adattamento di contenuti ed azioni di navigazione automatiche
Esempio: screenshot prototipo
Implementazione Prototipo Runtime Framework WebML Implementazione Java/Struts Paradigma MVC (Model/View/Controller) Prototipo: soluzione esterna Indipendente dal Runtime Framework di WebML Agisce come filtro di richieste HTTP Implementato a mano Sviluppo futuro: soluzione interna Integrazione nel Runtime Framework Implementazione di primitive e logica di computo Generazione automatica del codice
Deliverable Mese 24 Valutazione del primo prototipo Accesso ai prototipi Approcci adottati dalle unità coinvolte Dimensioni di valutazione (qualitative) Stabilità Scalabilità Sicurezza/Privacy Uso di risorse (System Requirements) Usabilità Performance generale
WP 7.1: I lavori delle unità coinvolte… Polimi Modellazione concettuale di applicazioni Web adattative (multi-versione): estensione di WebML Personalizzazione di contenuti rispetto al profilo utente Engineering Deployment multi-canale di applicazioni WebML Adattamento della presentazione al canale utilizzato Cefriel Deployment multi-modale Sincronizzazione di due canali di deployment separati
WP 7.1: … ed integrazione degli approcci
Multimodalità e context awareness I’m going to talk about an approach we followed in the development of a platform for the delivery of multimodal and ergonomic services Dimostratore MAIS WP 7.1.1: contributo Cefriel
Tematiche di interesse Delivery multimodale di ipertesti Attività Cefriel WP 7.1 Tematiche di interesse Delivery multimodale di ipertesti Progettazione e realizzazione di una piattaforma Che supporti diverse modalità di interazione contemporaneamente anche su dispositivi diversi Per ambienti mobili e nomadici Per applicazioni nuove Delivery context-aware di servizi Per l’erogazione di servizi che si adattino al contesto di fruizione
Delivery multimodale: definizioni di riferimento Vision: “extending the Web to allow multiple modes of interaction” (W3C) Multimodalità per gli ipertesti “Multimodal interaction will enable the user to speak, write and type, as well as hear and see using a more natural user interface than today's single mode browsers” (W3C) Supporto per voce, testo scritto (input e output) e rappresentazione visuale dei contenuti First of all we must decide which kind of applications to erfer to: hypertexts Approccio Server-side Non sono richieste particolari risorse sui dispositivi Non si devono imporre particolari vincoli Semplificare l’uso dei “piccoli” dispositivi portatili Utilizzare più dispositivi contemporaneamente
La piattaforma M3L: architettura M3L Framework M3L documents User Voice gateway TTS ASR VoiceXML Browser Multimodal integrator VoiceXML Servlets HTML browser Developer HTML Visual mode Vocal mode Modello WebML Il multimodal integrator è l’implementazione di un interaction manager (W3C)
Servizi web context-aware Siti Web context-aware OBIETTIVI: Adattare presentazione, navigazione, contenuti al variare delle proprietà dell’ambiente al fine di migliorare l’utilizzo del servizio da parte dell’utente. APPROCCIO: Compliance con WebML tramite utilizzo di properties Gestione di più elementi di contesto riferiti alla particolare situazione Context awareness & situation awareness Esempi di dimensioni del contesto: Dispositivo, Posizione, Stato di movimento, attività, modalità di interazione … SOLUZIONE: Definire delle proprietà di adattamento nella progettazione dell’ipertesto Definire l’ipertesto anche in funzione delle proprietà definite (es. il testo da mostrare se è vera una condizione su una proprietà) Definire delle regole che adattano l’ipertesto (presentazione, navigazione, contenuti, modalità di interazione) in funzione del valore delle variabili di contesto
Le proprietà associate al servizio: esempi Nome proprietà Valori possibili Desktop Palmare Cellulare ... Dispositivo Fermo In movimento ... Stato di movimento Seduto In piedi … Posizione Spare time Attività Working time ... Le dimensioni del contesto abilitano la gestione della situazione
ESEMPIO Servizio e-WebML A Si parla “Attributi” di una data unit SELEZIONE SCROLLING_DETTAGLI MENU_SCELTA Nome rist Indirizzo TO PRENOTAZIONE A Numero Civico Posti disponibili In movimento Menu odierno In movimento Zona Ristorante Ristorante Nome rist SELEZIONA_RIST MENU_SCELTA1 MENU_SCELTA2 DETTAGLI_RIST Indirizzo Numero Civico Si parla “Attributi” di una data unit Tornando al servizio sui ristoranti, il rispetto delle linee guida descritte ha portato ad una classificazione degli attributi. Ad esempio, l’indicazione circa la disponibilità attuale di posti nel ristorante, secondo quanto qui espresso, avviene nel caso in cui l’utente si stia muovendo, idealmente alla ricerca del ristorante stesso; nel caso sia fermo, invece, gli viene fornita l’informazione sulla capienza globale del ristorante. Tutto questo è fatto agendo su un’unica unit. CAPIENZA GLOBALE ad esempio perché l’utente vuole prenotare una cena con tanti invitati! Capienza Desktop Fermo Categoria Posti disponibili Palmare In movimento Menu costo minimo Desktop Zona Ristorante Ristorante Menu odierno Promozione Palmare In movimento Foto LQ Palmare D L Foto HQ Desktop MENU_SCELTA DETTAGLI_PROMO ESEMPIO Zona NEST Ristorante Promozione
L’attività Engineering nel WP7 Gabriele Giunta Milano – 11 Novembre 2004
Dynamic Presentation Manager: una visione d’insieme Il Dynamic Presentation Manager (DPM) è un modulo per la generazione adattiva al contesto di pagine di presentazione Le informazioni da presentare sono dati prodotti dalla logica di business, e la presentazione è funzione dei dati contestuali generati dell’infrastruttura di context-sensing. Sia i dati di business sia i dati contestuali sono espressi in formato XML.
Schema architetturale del DPM (1/2) Business Logic Business DB Stylesheet Repository User Communication XSL Engine Agent Servlet Page Formatter Rule Engine Generic Rules Business dependent DPM
Schema architetturale del DPM (2/2) Il DPM è costituito dai moduli: Page Formatter XSL Engine Rule Engine XSL Stylesheet Repository L’XSL Engine realizza la trasformazione XSLT applicando un foglio di stile ai dati di business. Il risultato di questa trasformazione è la pagina di presentazione. Il Rule Engine seleziona il foglio di stile per l’ XSL Engine dopo l’esecuzione delle regole di presentazione. L’ XSL Stylesheet Repository contiene i fogli di stile dell’applicazione da realizzare.
Schema funzionale del DPM Rule Engine Presentation Rules 2 (DATActx) Business data Page Formatter 1 (rXSLTctx,[ PARAMSctx]) 3 (DATAbss) Context data 5 XSL Engine XSLT Repository 6 4 7 ((X)HTML/WML) Presentation Page
Le regole di generazione della presentazione (1/2) I contenuti vengono adattati in funzione del profilo utente dalla logica di business Le regole adattano la presentazione in funzione del: Configurazione del device Dimensione dello schermo Protocollo applicativo (HTTP/WAP) Stato fisico del device Livello di carica della batteria Movimento Regole di presentazione implementate: Resize del font dei widget; Sostituzione dei widget; Scelta dei colori.
Le regole di generazione della presentazione (2/2) Esempio di un’implementazione JESS (defrule PDADeviceRule (START_PRESENTATION) (CONTEXT USER_ID ?user_id) (CONTEXT CHANNEL http) (CONTEXT DEVICE pda) (CONTEXT SCREENSIZE ?screensize) => (assert (PRESENTATION_COMPONENT (id xsltPDA))) (assert (PRESENTATION_COMPONENT_PARAMETER (id xsltPDA) (name displayWidth)(value ?screensize))))
Deployment multicanale Recommendation System per destinazioni turistiche Lo scenario utilizzato è quello relativo alla Preparazione Viaggio (“Scenario in ambito turistico” ). Sono state modellate con WebML+ le seguenti pagine: Planner Home Country Details Travel Package
Modellazione dei dati in WebML+
Screenshot dell’applicazione multicanale (1/5) * Interazione iniziale attraverso PC *
Screenshot dell’applicazione multicanale (2/5) * Primo cambio di canale: da PC a PDA *
Screenshot dell’applicazione multicanale (3/5) * Secondo cambio di canale: da PDA a Mobile Phone *
Screenshot dell’applicazione multicanale (4/5) * Adattamento al contesto (im movimento) mediante il resize del font *
Screenshot dell’applicazione multicanale (5/5) * Adattamento al contesto (batteria scarica) mediante l’invio di una mail *