Sistemi context-aware, esercitazione 2 (3 giugno 2009)

33
Un esempio di Context Awareness Esercitazione 2 del corso di Sistemi Context-aware http://www.siti.disco.unimib.it/didattica/sistemica Marco Loregian [email protected]

Transcript of Sistemi context-aware, esercitazione 2 (3 giugno 2009)

Page 1: 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]

Page 2: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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?

Page 3: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

• 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

Page 4: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

Un sistema context-aware deve

• Raccogliere

• Elaborare

• Produrre

informazioni relative al contesto

...ed agire in base ad esse

Page 5: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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...

Page 6: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

Modellare il contesto

• Il problema è trovare un modello

• adatto (uniforme)

• flessibile

• espressivo

...allo stesso tempo

Rappresentazione computabile del

dominio applicativo

Page 7: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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]

Page 8: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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

Page 9: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

Esempi

• Esprimo i contesti nella forma

• Location (chris, entering, room 123)

• Temperature (room 123, “=”, 15 C)

• Sister (venus, serena)nome del predicato argomenti

Page 10: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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”

Page 11: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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)

Page 12: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

Infrastruttura

Page 13: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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)

Page 14: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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...

Page 15: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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

Page 16: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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

Page 17: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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

Page 18: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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

Page 19: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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à

Page 20: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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]

Page 21: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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

Page 22: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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

Page 23: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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

Page 24: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

Attributi

• Location (stanza, ...)

• Identity (persona, dispositivo, oggetto)

• Activity (riunione, lezione, ...)

• Space (privato, condiviso)

• Time (validità di un dato)

• Device (caratteristiche di un dispositivo)

Page 25: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

Uso degli attributi

• Creazione di cartelle virtuali (viste) identificate con un path comprensibile (tipo/valore)

• Queries sulle tag (con operatori booleani)

• ...

Page 26: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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

Page 27: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

ImplementazioneArchitettura

MS = Mount Server

FS = File Server (accesso al disco

fisico)

Page 28: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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)

Page 29: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

File Server

• Gestione dei dati su supporto fisico

• Conversione formato documenti

• Meccanismo basato su grafi di conversione

• Trasparente per chi sviluppa l’applicazione

Page 30: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

Deployment del CFS

• Il CFS è un servizio di Gaia

• Altri servizi: gestione eventi, presenza utenti, autenticazione, ...

• Può interagire con altre applicazioni

Page 31: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

Applicazioni di test

• Data browser

• Registro presenze

• Juke-box

• Archivio articoli

• Visore GIF per PDA

• Greeting engine

Page 32: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

Homework

• Leggere i due articoli segnalati come riferimenti

• Contribuire al SITI blogwww.siti.disco.unimib.it/blog !

Page 33: Sistemi context-aware, esercitazione 2 (3 giugno 2009)

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