SlideShare a Scribd company logo
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

More Related Content

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

Cac Es3 2009
Cac Es3 2009Cac Es3 2009
Cac Es3 2009
Marco Loregian
 
Big Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di MelenBig Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di Melen
comunicareonline
 
Google File System - GFS
Google File System - GFSGoogle File System - GFS
Google File System - GFS
Gabriele Lombari
 
The Google File System
The Google File SystemThe Google File System
The Google File System
Alessandra Zullo
 
Slide Soru - Collana Seminari CRS4 2015
Slide Soru - Collana Seminari CRS4 2015Slide Soru - Collana Seminari CRS4 2015
Slide Soru - Collana Seminari CRS4 2015
CRS4 Research Center in Sardinia
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Steve Maraspin
 
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...festival ICT 2016
 
Apache Hadoop: Introduzione all’architettura ed approcci applicativi
Apache Hadoop: Introduzione all’architettura ed approcci applicativiApache Hadoop: Introduzione all’architettura ed approcci applicativi
Apache Hadoop: Introduzione all’architettura ed approcci applicativi
Dario Catalano
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRS
Manuel Scapolan
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]
gioacchinolonardo
 
Definire, configurare ed implementare soluzioni scalabili su sistemi di Cloud...
Definire, configurare ed implementare soluzioni scalabili su sistemi di Cloud...Definire, configurare ed implementare soluzioni scalabili su sistemi di Cloud...
Definire, configurare ed implementare soluzioni scalabili su sistemi di Cloud...
festival ICT 2016
 
Hadoop SAR
Hadoop SARHadoop SAR
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Walter Volpi
 
Big data - stack tecnologico
Big data -  stack tecnologicoBig data -  stack tecnologico
Big data - stack tecnologico
Consulthinkspa
 
ASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cacheASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cache
Andrea Dottor
 
Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologico
Massimo Romano
 
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
DavideFegez
 

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

Cac Es3 2009
Cac Es3 2009Cac Es3 2009
Cac Es3 2009
 
Big Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di MelenBig Data e la forza degli eventi - Intervento di Melen
Big Data e la forza degli eventi - Intervento di Melen
 
Google File System - GFS
Google File System - GFSGoogle File System - GFS
Google File System - GFS
 
The Google File System
The Google File SystemThe Google File System
The Google File System
 
Slide Soru - Collana Seminari CRS4 2015
Slide Soru - Collana Seminari CRS4 2015Slide Soru - Collana Seminari CRS4 2015
Slide Soru - Collana Seminari CRS4 2015
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
 
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
festival ICT 2013: Gestire criticità in maniera efficiente per liberare slot ...
 
Apache Hadoop: Introduzione all’architettura ed approcci applicativi
Apache Hadoop: Introduzione all’architettura ed approcci applicativiApache Hadoop: Introduzione all’architettura ed approcci applicativi
Apache Hadoop: Introduzione all’architettura ed approcci applicativi
 
Corso Java 3 - WEB
Corso Java 3 - WEBCorso Java 3 - WEB
Corso Java 3 - WEB
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRS
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]
 
Database Data Aggregator
Database Data AggregatorDatabase Data Aggregator
Database Data Aggregator
 
Definire, configurare ed implementare soluzioni scalabili su sistemi di Cloud...
Definire, configurare ed implementare soluzioni scalabili su sistemi di Cloud...Definire, configurare ed implementare soluzioni scalabili su sistemi di Cloud...
Definire, configurare ed implementare soluzioni scalabili su sistemi di Cloud...
 
Hadoop SAR
Hadoop SARHadoop SAR
Hadoop SAR
 
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
Master Informatica del Testo – Edizione elettronica - Arezzo - 2012
 
Big data - stack tecnologico
Big data -  stack tecnologicoBig data -  stack tecnologico
Big data - stack tecnologico
 
Office & VBA - Giorno 8
Office & VBA - Giorno 8Office & VBA - Giorno 8
Office & VBA - Giorno 8
 
ASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cacheASP.NET, ottimizziamo con la cache
ASP.NET, ottimizziamo con la cache
 
Big data stack tecnologico
Big data stack tecnologicoBig data stack tecnologico
Big data stack tecnologico
 
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
Utilizzo di tecnologie big data per addestramento di metamodelli matematici p...
 

More from Marco Loregian

Undo for Mobile Phones Does Your Mobile Phone Need an Undo Key? Do You?
Undo for Mobile Phones Does Your Mobile Phone Need an Undo Key? Do You?Undo for Mobile Phones Does Your Mobile Phone Need an Undo Key? Do You?
Undo for Mobile Phones Does Your Mobile Phone Need an Undo Key? Do You?
Marco Loregian
 
Undo in Context-aware Collaborative Ubiquitous-Computing Environments
Undo in Context-aware Collaborative Ubiquitous-Computing EnvironmentsUndo in Context-aware Collaborative Ubiquitous-Computing Environments
Undo in Context-aware Collaborative Ubiquitous-Computing Environments
Marco Loregian
 
CSCW and Web 2.0: are We in?
CSCW and Web 2.0: are We in?CSCW and Web 2.0: are We in?
CSCW and Web 2.0: are We in?
Marco Loregian
 
Sistemi Context-aware: Esercitazione 4
Sistemi Context-aware: Esercitazione 4Sistemi Context-aware: Esercitazione 4
Sistemi Context-aware: Esercitazione 4
Marco Loregian
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
Marco Loregian
 
Sistemi Context Aware Esercitazione 1
Sistemi Context Aware   Esercitazione 1Sistemi Context Aware   Esercitazione 1
Sistemi Context Aware Esercitazione 1
Marco Loregian
 
Mobile Social Software
Mobile Social SoftwareMobile Social Software
Mobile Social Software
Marco Loregian
 

More from Marco Loregian (7)

Undo for Mobile Phones Does Your Mobile Phone Need an Undo Key? Do You?
Undo for Mobile Phones Does Your Mobile Phone Need an Undo Key? Do You?Undo for Mobile Phones Does Your Mobile Phone Need an Undo Key? Do You?
Undo for Mobile Phones Does Your Mobile Phone Need an Undo Key? Do You?
 
Undo in Context-aware Collaborative Ubiquitous-Computing Environments
Undo in Context-aware Collaborative Ubiquitous-Computing EnvironmentsUndo in Context-aware Collaborative Ubiquitous-Computing Environments
Undo in Context-aware Collaborative Ubiquitous-Computing Environments
 
CSCW and Web 2.0: are We in?
CSCW and Web 2.0: are We in?CSCW and Web 2.0: are We in?
CSCW and Web 2.0: are We in?
 
Sistemi Context-aware: Esercitazione 4
Sistemi Context-aware: Esercitazione 4Sistemi Context-aware: Esercitazione 4
Sistemi Context-aware: Esercitazione 4
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Sistemi Context Aware Esercitazione 1
Sistemi Context Aware   Esercitazione 1Sistemi Context Aware   Esercitazione 1
Sistemi Context Aware Esercitazione 1
 
Mobile Social Software
Mobile Social SoftwareMobile Social Software
Mobile Social Software
 

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

  • 1. 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
  • 2. 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 ?
  • 3. 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
  • 4. Un sistema context- aware deve • Raccogliere • Elaborare • Produrre informazioni relative al contesto ...ed agire in base ad esse
  • 5. 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...
  • 6. Modellare il contesto Rappresentazione computabile del dominio applicativo • Il problema è trovare un modello • adatto (uniforme) • flessibile • espressivo ...allo stesso tempo
  • 7. 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]
  • 8. 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
  • 9. Esempi • Esprimo i contesti nella forma • Location (chris, entering, room 123) • Temperature (room 123, “=”, 15 C) • Sister (venus, serena) nome del argomenti predicato
  • 10. 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”
  • 11. 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)
  • 13. 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)
  • 14. 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...
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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à
  • 20. 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]
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. Attributi • Location (stanza, ...) • Identity (persona, dispositivo, oggetto) • Activity (riunione, lezione, ...) • Space (privato, condiviso) • Time (validità di un dato) • Device (caratteristiche di un dispositivo)
  • 25. Uso degli attributi • Creazione di cartelle virtuali (viste) identificate con un path comprensibile (tipo/valore) • Queries sulle tag (con operatori booleani) • ...
  • 26. 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
  • 27. Implementazione Architettura MS = Mount Server FS = File Server (accesso al disco fisico)
  • 28. 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)
  • 29. File Server • Gestione dei dati su supporto fisico • Conversione formato documenti • Meccanismo basato su grafi di conversione • Trasparente per chi sviluppa l’applicazione
  • 30. Deployment del CFS • Il CFS è un servizio di Gaia • Altri servizi: gestione eventi, presenza utenti, autenticazione, ... • Può interagire con altre applicazioni
  • 31. Applicazioni di test • Data browser • Registro presenze • Juke-box • Archivio articoli • Visore GIF per PDA • Greeting engine
  • 32. Homework • Leggere i due articoli segnalati come riferimenti • Contribuire al SITI blog www.siti.disco.unimib.it/blog !
  • 33. 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