• Non ci sono risultati.

Aura[47, 69] si propone come framwork per la creazione di applicazioni perva- sive che possano sfruttare in modo ottimale le risorse presenti nell’ambiente, senza dover affrontare i problemi di eterogeneit`a e variabilit`a nelle capacit`a dei dispositivi.

Nel framework di Aura confluiscono i lavori passati del gruppo: Odyssey, di cui abbiamo ampiamente parlato sopra, e Coda[64, 66], un file system “nomade”. Grazie a Coda l’utente pi`u accedere ai propri dati da qualsiasi computer, anche in presenza di collegamenti di rete lenti e non affidabili; im- plementa perci`o una adattivit`a “trasparente” all’applicazione, basata (come per Odyssey) sulla qualit`a dei dati.

La particolarit`a di Aura `e che i concetti di adattivit`a e context awareness sono spostati ad un livello superiore rispetto a quello comune delle applicazio- ni. Questo nasce dalla considerazione che in ambienti pervasivi l’eterogeneit`a di risorse `e cos`ı alta che una singola applicazione non pu`o essere utilizzata in modo adeguato su tutte le piattaforme. Al contrario, per ogni piattaforma (hardware e software) sono gi`a esistenti applicazioni specifiche che sfruttano appieno le sue caratteristiche. Per fare un esempio, un editor di testo tra- dizionale ha molte pi`u funzioni di uno per smartphone; quest’ultimo per`o permette di sfruttare il touchpad del dispositivo mobile.

Se un utente vuole lavorare su un documento probabilmente preferir`a utilizzare due applicazioni differenti, che sfruttano tutte le caratteristiche del dispositivo, piuttosto che una unica ma difficile da usare sullo smartphone e con poche funzioni sul desktop.

L’idea di Aura `e di definire l’adattivit`a a livello di “Task”. Un task `e un lavoro che l’utente pu`o voler fare: visualizzare un video, modificare un testo, etc. Per ogni task esisteranno varie applicazioni capaci di eseguirlo: basti pensare a tutti i tipi di editor di testo presenti in commercio o alla moltitudine di media player gratuiti utilizzabili.

Con Aura, in base alle risorse attualmente disponibili all’utente, `e pos- sibile decidere quale applicazione utilizzare per un particolare task. A tut- ti i dettagli sottostanti ci pensa il framework: spostare i file nell’ambiente attuale, convertirli in un formato adatto per l’applicazione corrente, etc.

3.2.1

I casi d’uso principali

Vediamo ora due scenari tenuti in considerazione durante lo sviluppo di Aura[47]. Come per Odyssey questi esempi rappresentano una parte signifi- cativa dei requisiti considerati durante lo sviluppo del framework.

Immaginiamo un utente in aeroporto, in attesa della chiamata di imbarco per il proprio volo. Ha appena finito di modificare una presentazione e deve inviarla via email ad un collega il prima possibile. La presentazione, per`o, `e molto grande perch´e piena di immagini, e la rete wireless dell’aeroporto lenta perch´e in molti stanno navigando su internet. Aura si accorge che, a quella velocit`a, l’utente non riuscirebbe ad inviare la presentazione completa prima dell’imbarco. Consultando l’elenco dei voli in partenza e la copertura wireless dell’edificio il sistema si accorge che al gate 15 la copertura `e buona, la rete libera e non ci sono voli in partenza n´e in arrivo. Consiglia perci`o all’utente di spostarsi al gate 15, per terminare l’invio dell’email prima della chiamata d’imbarco. Analogamente, quando l’invio delle email `e quasi terminato, Aura informa l’utente che pu`o nuovamente spostarsi al gate originario in attesa della propria chiamata.

Il secondo scenario vede un utente nel suo ufficio, che sta ultimando le modifiche alla presentazione per un meeting che si terr`a tra non molto in un edificio vicino. Non ha ancora terminato il lavoro, ma `e gi`a in ritardo; perci`o si incammina, portando con se il proprio PDA. Aura si accorge del movimen- to, e trasferisce la presentazione non ancora terminata sul dispositivo mobile; in questo modo l’utente pu`o completare le ultime modifiche durante il viag-

Figura 3.3: L’architettura di Aura Con te xt Obse rve r Environment Manager Supplier (text) Emacs Supplier (video) Xanim ... Prism

Task support,user intent, high-level proactivity

Other Aura runtime support Spectra

Remote execution

Coda

Nomadic file access

Linux Kernel Intelligent networking

Network weather monitoring, network proactivity

Odyssey

Resource monitoring, adaption

gio. Attraverso la lista degli appuntamenti si accorge inoltre del meeting, ed inizia a scaricare il software per la presentazione sul terminale della stanza in cui si terr`a. Quando l’utente arriva al meeting il sistema ha gi`a provveduto ad accendere il proiettore e a spostare le ultime modifiche sul computer della stanza, in modo che questi riesca ad iniziare la presentazione in orario.

3.2.2

Architettura di Aura

Il concetto chiave di Aura `e il Task : con esso si definisce una azione ben precisa dell’utente: preparare una presentazione, leggere le email, scrivere un documento, etc. Ad ogni Task sono associati dei programmi (chiamati in seguito supplier) che permettono all’utente di eseguire l’azione, ed i file necessari per completare quel particolare lavoro. All’interno della descrizione del task trovano posto anche le politiche di “conversione” dei file tra differenti supplier.

Aura `e un framework molto complesso, e suddiviso in vari livelli. L’archi- tettura `e rappresentata in figura 3.3; in essa ritroviamo Coda e Odyssey, che fanno da supporto ad un tool, Spectra, di esecuzione remota di applicazioni; questo decide, in base ai dati di contesto, la tecnica di esecuzione remota pi`u adatta nell’ambiente corrente. La parte pi`u interessante sono per`o i livelli su-

periori: Environment Manager, Supplier, Context Observer e Task Manager ; vediamoli in dettaglio[69]

• Task Manager (Prism): questo layer, in cooperazione con l’osserva- tore di contesto, analizza le operazioni dell’utente per capire le sue in- tenzioni senza richiederle esplicitamente, nell’ottica della minimal user distraction; il task manager si accorge, tramite osservazioni sul conte- sto, di spostamenti dell’utente nello spazio e di cambiamenti nel ta- sk eseguito; in base a questo coordina le altre entit`a per modificare automaticamente l’ambiente senza bisogno di richieste esplicite.

Un cambio di ambiente, o in generale di task, prevede la ricerca di un nuovo supplier in grado di eseguire il task nell’ambiente corrente, la raccolta dei file necessari e la conversione di questi per il supplier scelto.

• Service Suppliers: sono le applicazioni vere e proprie, che permet- tono all’utente di eseguire un task. Prerogativa principale di Aura `e quella di utilizzare applicazioni preesistenti senza ulteriori modifiche: l’adattivit`a `e quindi “trasparente” alle applicazioni, che devono solo es- sere inserite in un contenitore per fornire al resto del sistema interfacce standard. Tra queste troviamo anche il meccanismo di conversione di file, che si occupa di estrarre le informazioni utilizzabili dall’attuale ap- plicazione e, una volta modificate, reinserirle nel file iniziale in modo da non perdere quelle non trattate da tale programma.

• Context Observer: fornisce a Prism tutte le informazioni di contesto acquisite; `e un punto chiave della piattaforma, in quanto tante pi`u informazioni offre al task manager, tanto pi`u precisa sar`a la previsione di quest’ultimo.

• Environment Manager: il componente che si occupa di interagire con l’ambiente: trovare il supplier necessario, distribuire le applicazioni, lanciarne l’esecuzione, etc.

3.2.3

Esempi di applicazioni Aura

Riportiamo ora due applicazioni sviluppate con Aura e descritte in [47]; lo scopo di queste `e di supportare la collaborazione all’interno del campus universitario della Carnegie Mellon University.

(a) Screenshot dell’applicazione PHD

(b) Screenshot dell’applicazione Idealink

Figura 3.4: Esempi di applicazioni in Aura

Portable Help Desk PHD `e una applicazione spatial-aware e temporal- aware: conosce l’attuale posizione degli utenti all’interno del campus, ed `e collegata con un database degli eventi pubblici o privati in programma.

Portable Help Desk fornisce una mappa della zona in cui si trova l’utente, dove sono rappresentati i colleghi vicini e alcuni servizi, come le stampanti o i distributori automatici. Permette di conoscere l’attuale posizione dei propri amici ed affianca all’interfaccia grafica (in figura 3.4a) un sistema di riconoscimento vocale per interagire con l’applicazione anche in movimento. Grazie ad Aura PHD offre anche alcuni comportamenti proattivi: ad esempio, se l’utente vuole stampare un documento, PHD pu`o accorgersi se la coda di stampa `e troppo lunga e suggerire all’utente una stampante vicina meno affollata, oppure proporre una stampante vicina al luogo di destinazione per un utente in movimento.

Idealink La seconda applicazione presentata `e un “ambiente di collabora- zione virtuale”, e si propone come sostituto elettronico di una meeting room; il cuore di Idealink `e una lavagna condivisa in cui tutti gli utenti possono scrivere contemporaneamente, come in figura 3.4b. L’applicazione si integra

con PHD per salvare e caricare le preferenze dell’utente e i propri appun- tamenti, e decide automaticamente in quale “meeting virtuale” collegarsi in base ad essi.

Alcuni studi hanno dimostrato che questa applicazione si rivela molto utile, in quanto permette di rendere gli incontri pi`u produttivi ed accorciare i tempi dei meeting.