Sistemi context-aware, esercitazione 2 (3 giugno 2009) - Presentation Transcript
Un esempio di
Context Awareness
Esercitazione 2 del corso di Sistemi Context-aware
http://www.siti.disco.unimib.it/didattica/sistemica
Marco Loregian
loregian@disco.unimib.it
Sommario
• Modellazione e uso del contesto
• L’infrastruttura di Gaia [ ]
http://gaia.cs.uiuc.edu/
• Homework Abb
i vi iamo
l’a deo
• References ltr di
vis
a v Gaia
ser olt
to
riv
ede ve a,
rli
?
Introduzione
• 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
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
Rappresentazione
computabile del
dominio applicativo
• Il problema è trovare un modello
• adatto (uniforme)
• flessibile
• espressivo
...allo stesso tempo
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.pdf
http://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
argomenti
predicato
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à
Esempio
applicazione 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
Implementazione
Organizzazione 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
Implementazione
Tagging
• 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)
• ...
Implementazione
Conversione
• 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
Implementazione
Architettura
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 blog
www.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
0 comments
Post a comment