Sistemi context-aware, esercitazione 2 (3 giugno 2009)
-
Upload
marco-loregian -
Category
Education
-
view
406 -
download
1
Transcript of Sistemi context-aware, esercitazione 2 (3 giugno 2009)
Un esempio di Context Awareness
Esercitazione 2 del corso di Sistemi Context-awarehttp://www.siti.disco.unimib.it/didattica/sistemica
Marco [email protected]
Sommario
• Modellazione e uso del contesto
• L’infrastruttura di Gaia [http://gaia.cs.uiuc.edu/]
• Homework
• References
Abbiamo visto
i video di Gaia
l’altra volta, serve
rivederli?
• Un sistema context-aware si adatta/adegua alla situazione in cui è immerso
• In generale (“nel mondo”) non c’è un riferimento formale (modello) ufficiale (standard) o universale (condiviso, riusabile)
• Né come architettura, né come “idea/concezione” di contesto
Introduzione
Un sistema context-aware deve
• Raccogliere
• Elaborare
• Produrre
informazioni relative al contesto
...ed agire in base ad esse
Tipi di contesto• Fisico (spazio/tempo)
• Ambientale (clima, illuminazione, ...)
• Informativo (listino azionario, notizie del giorno, ...)
• Personale (salute, umore, ...)
• Sociale (relazioni, co-presenza, ...)
• Applicativo (email, siti Web visitati, ...)
• Sistema (stato delle periferiche, ...)
...eccetera...
Modellare il contesto
• Il problema è trovare un modello
• adatto (uniforme)
• flessibile
• espressivo
...allo stesso tempo
Rappresentazione computabile del
dominio applicativo
L’infrastruttura di Gaia
• Architettura basata su:
• context providers (sensori), consumers e synthesizers
• meccanismo subscribe-notify
• predicati nella logica del primo ordine
• sistema a regole
• Dettagli in [1]
Logica del primo ordine
• Predicati su individui di un insieme ma non sui sottoinsiemi
• Congiunzione, disgiunzione, negazione
• Quantificazione esistenziale e universale
• Per un ripasso veloce:http://plato.stanford.edu/entries/logic-classical/http://www.fecundity.com/codex/forallx.pdfhttp://en.wikipedia.org/wiki/First-order_logic (con beneficio d’inventario)http://it.wikipedia.org/wiki/Linguaggio_del_primo_ordine
Esempi
• Esprimo i contesti nella forma
• Location (chris, entering, room 123)
• Temperature (room 123, “=”, 15 C)
• Sister (venus, serena)nome del predicato argomenti
Ontologia di Gaia
• I predicati variano, e coinvolgono parametri di tipo diverso
• Un’ontologia di riferimento permette di controllare la validità (correttezza della forma) dei predicati
• Viene fornita una semantica dei predicati condivisa tra i componenti del sistema, ed “esportabile”
I predicati• Sono consentite tutte le operazioni della
logica del primo ordine
• I componenti del sistema possono invocare funzioni programmate (in C)
• ∃Person s Location (s, Entering, currentRoom())
• Posso derivare contesti
Sound (Room 3234, ‘‘>’’, 40 dB) ∧ Lighting (Room 3234, Stroboscopic) ∧ #People (Room 3234, ‘‘ >’’, 6) ⇒ Social
Activity (Room 3234, Party)
Infrastruttura
Context Providers• Consentono alle applicazioni di avere informazioni complesse
sui contesti, esprimendole ancora come predicati
• Possono inviare informazioni periodicamente, in risposta ad un evento (cambiamento), e/o se interrogati
• Tutti i CP hanno la stessa interfaccia generica
• Valutano i predicati su un insieme finito di valori (decidibilità assicurata)
• Motore di reasoning: XSB
• Ontologia di riferimento in DAML+OIL (evoluto oggi come OWL)
Context Consumers
• Context-aware applications (parti del sistema complesso)
• Ottengono informazioni dai Context Producers
• Ricevono e/o richiedono
• Possono lavorare direttamente coi contesti di base, dei Context Providers, ma spesso può servire qualcosa di più ricco...
Context Synthesizers
• Elaborano informazioni da uno o più Context Providers per generare (inferendo) qualcosa di più complesso
• Basati su regole
• Più di una regola può risultare vera nello stesso momento
• Conflitti generati nel sistema risolti (se possibile) in base a priorità
• Rischio di comportamenti inattesi o impredicibili, caratteristica “classica” dei sistemi a regole
Apprendimento
• I sintetizzatori possono essere migliorati utilizzando tecniche di apprendimento
• Vengono sottoposti a training (ad esempio) monitorando i comportamenti degli utenti e chiedendo feedback sul loro operato
Context History
• Le applicazioni possono sfruttare l’evoluzione dei contesti per riuscire ad adattarsi meglio
• Esempio: correlazione tra i cambiamenti d’umore di un utente e i cambiamenti di contesto
• Utilizzata per l’apprendimento
CP Lookup Service
• Data l’architettura scelta, questo servizio permette ad un Consumer di cercare un Provider (o un Synthesizer) che sia in grado di fornirgli i dati che gli servono
Definire le applicazioni
• Le applicazioni hanno comportamenti diversi in contesti diversi
• Il collegamento contesto → comportamento viene descritto in un file di configurazione che specifica quale metodo invocare quando si verifica un contesto
• Gestione delle priorità
Esempioapplicazione di file system context-aware
• Organizzazione dei dati di un’applicazione in base al contesto
• apertura dei files di un utente (sessione: data cloud) in base alla presenza fisica
• conversione del formato dei files aperti in base allo stato dei dispositivi disponibili
• http://gaia.cs.uiuc.edu/html/videos.htm
• Dettagli in [2]
Caratteristiche del CFS
• mobile users to make their data available to the local space
• context to define what information is important for an activity
• automatically launched applications to find data
• users to inject data into running applications
• users to import application configurations into specific spaces
• data to be accessed in different formats
ImplementazioneOrganizzazione dei dati
• Un namespace per ogni active space (“stanza”), con dentro una cartella per ogni utente localizzato
• Gestione tramite formato XML
• Accesso: File mode vs. Context mode
• vista per navigazione vs. vista filtrata / limitata dal contesto
• su tutto lo spazio
ImplementazioneTagging
• File e directories sono descritte da metadati, usati dalle applicazioni
• File System + DB
• Possibile fare ricerche (velocemente) per trovare i dati necessari
• Definizione condivisa degli attributi
• Es. taggo un file con informazioni sulla location in cui deve essere accessibile
Attributi
• Location (stanza, ...)
• Identity (persona, dispositivo, oggetto)
• Activity (riunione, lezione, ...)
• Space (privato, condiviso)
• Time (validità di un dato)
• Device (caratteristiche di un dispositivo)
Uso degli attributi
• Creazione di cartelle virtuali (viste) identificate con un path comprensibile (tipo/valore)
• Queries sulle tag (con operatori booleani)
• ...
ImplementazioneConversione
• Dispositivi eterogenei ⇒ Tipi dinamici
• Principale fattore: limitazioni nella presentazione
• Il software scritto per un dispositivo “sa” che tipi di documenti può manipolare
• Possibile prevedere funzioni di conversione
ImplementazioneArchitettura
MS = Mount Server
FS = File Server (accesso al disco
fisico)
Mount Server
• Implementa le funzionalità sul database (merge, queries, ...)
• Tabelle di references ai dati distribuiti sui vari dischi (gestiti da FS)
• Vista sul contesto corrente (allegata alle / usata per gestire le richieste), in modo da poter processare
• Gestione temporale dei dati (vd. attributi)
File Server
• Gestione dei dati su supporto fisico
• Conversione formato documenti
• Meccanismo basato su grafi di conversione
• Trasparente per chi sviluppa l’applicazione
Deployment del CFS
• Il CFS è un servizio di Gaia
• Altri servizi: gestione eventi, presenza utenti, autenticazione, ...
• Può interagire con altre applicazioni
Applicazioni di test
• Data browser
• Registro presenze
• Juke-box
• Archivio articoli
• Visore GIF per PDA
• Greeting engine
Homework
• Leggere i due articoli segnalati come riferimenti
• Contribuire al SITI blogwww.siti.disco.unimib.it/blog !
Riferimenti
1. Anand Ranganathan, Roy H. Campbell: An infrastructure for context-awareness based on first order logic. Personal and Ubiquitous Computing 7(6): 353-364 (2003) http://dx.doi.org/10.1007/s00779-003-0251-x
2. Christopher K. Hess, Roy H. Campbell: An application of a context-aware file system. Personal and Ubiquitous Computing 7(6): 339-352 (2003) http://dx.doi.org/10.1007/s00779-003-0250-y