2.3 Contesto
2.4.1 Modello per la rappresentazione della granularit` a con
Un modello per la rappresentazione della granularit`a `e stato fornito nell’ar- ticolo [9] in relazione per`o unicamente al parametro tempo. Il modello `e fornito allo scopo di estendere il linguaggio SQL per la gestione di dati tem- porali TSQL. All’interno di un database sono memorizzati dati a differenti granularit`a, definite dall’utente. C’`e bisogno quindi di fornire delle funzioni di trasformazione tra diversi livelli di granularit`a.
Il dominio temporale `e un insieme di punti temporali utilizzati per definire ed interpretare concetti legati al tempo. E’un insieme T totalmente ordinato di punti temporali con relazione d’ordine ≤. Le porzioni del dominio tem- porale sono raggruppate in aggregazioni chiamate granuli. La granularit`a `e una funzione di mapping G che associa numeri interi a granuli tale che:
• se i < j e G(i) e G(j) sono non vuote, allora ogni elemento di G(i) ≤ G(j);
• se i < k < j e G(i) e G(j) sono non vuote, allora G(k) `e non vuota e
• G(0), l’origine di G, `e non vuota.
Il primo requisito implica che i granuli all’intero di una stessa granularit`a sia- no non sovrapposti e totalmente ordinati, con l’ordinamento ereditato dagli interi. Il secondo assicura che il set di interi mappato nei granuli sia continuo;
il terzo rappresenta una convenzione. I granuli descritti con una granularit`a possono essere aggregati tra loro per formare granuli pi`u ampi provenienti da una granularit`a pi`u grossa. Le conversioni tra granularit`a possono essere:
• regolari: quando un granulo pi`u grosso `e formato sempre dallo stesso numero di granuli pi`u fini (es. giorni → settimana, una settimana `e sempre composta da 7 giorni);
• irregolari: quando un granulo pi`u grosso `e formato da un numero va- riabile di granuli pi`u fini (es. giorni → mese, un mese pu`o avere 28, 29, 30, 31 giorni).
Le conversioni tra due granularit`a si effettuano utilizzando la funzione sca- le(g,H) dove g `e un dato misurato alla granularit`a G e sar`a trasformato in un dato h con granularit`a H. Per descrivere le relazioni tra due granularit`a H e G, vengono introdotti i concetti di coarser than, finer than e incompatibilit`a. Date due granularit`a H e G:
• H si dice “coarser than” G e G `e detta “finer than” H, se per ogni granulo h ∈ H esiste un set di granuli S ⊆ G tale che h = ∪g∈Sg. Se G
`e finer o coarser than H, allora le due granularit`a si dicono comparabili.
• altrimenti H `e G sono incomparabili.
Nello svolgimento di operazioni tra dati di diversa granularit`a, gli operandi devono prima essere convertiti alla stessa granularit`a e poi le operazioni pos- sono essere eseguite. Si assume che g ∈ G e h ∈ H siano due elementi alla granularit`a indicata e un’operazione o un predicato binario tra elementi. F sia una granularit`a pi`u fine di entrambe le granularit`a G ed H, e C una granularit`a pi`u grossa sia di G che di H. L’operazione h g pu`o essere gestita nei seguenti modi:
Incompatibilit`a: viene segnalato un errore di compatibilit`a tra le due granularit`a;
Semantica dell’operatore di sinistra: svolge l’operazione alla granula- rit`a del primo operando:
g h = g scale(h, G)
Semantica dell’operatore di destra: svolge l’operazione alla granularit`a del secondo operando:
g h = scale(g, H) h
Semantica pi`u fine: svolge l’operazione alla granularit`a pi`u fine tra le due. Se le due granularit`a non sono comparabili la effettua ad una granularit`a pi`u fine di entrambe: g h =
g scale(h, G) se G `e pi`u f ine di H scale(g, H) h se H `e pi`u f ine di G
scale(g, F ) scale(h, F ) se H e G non sono comparabili
Semantica pi`u grossa: svolge l’operazione alla granularit`a pi`u grossa tra le due. Se le due granularit`a non sono comparabili la effettua ad una granularit`a pi`u grossa di entrambe:
g h =
g scale(h, G) se G `e pi`u grossa di H scale(g, H) h se H `e pi`u grossa di G
scale(g, C) scale(h, C) se H e G non sono comparabili
Grafo delle granularit`a
La struttura pi`u adatta per la descrizione delle relazioni tra le diverse gra- nularit`a `e l’utilizzo di un DAG (Directed Acyclic Graph) per ogni parametro da rappresentare, in cui i nodi rappresentano le granularit`a e gli archi le rela- zioni tra di esse. Le granularit`a nel grafo sono legate dalla relazione di “finer
than” e “coarser than”, ma pu`o anche essere specificata una funzione di con- versione tra le granularit`a legate da ogni arco. Nel grafo deve sempre essere presente una granularit`a che sia pi`u fine di ogni granularit`a rappresentata. Questa granularit`a prende il nome di chronon, indicata con ⊥, e rappresenta la precisione del dato.
Nell’articolo [5] il modello descritto `e esteso oltre che ai dati temporali a quelli spaziali. Viene inoltre fornito un modello UML della granularit`a dei dati, che descriva i concetti di granuli e granularit`a e le relazioni di coarser than, finer than in riferimento a dati spazio-temporali.
Framework granulare e
proattivo per l’adattivit`a
Le applicazioni adattive hanno lo scopo di modificare automaticamente e di- namicamente il proprio comportamento sulla base di cambiamenti rilevati da opportuni parametri contestuali. Il contesto `e definito come l’insieme del- le informazioni che posssono essere utilizzate per rappresentare lo stato di un’entit`a. Un’entit`a `e una persona, un luogo, o un oggetto che `e considera- to rilevante nell’interazione tra un utente e un’applicazione, inclusi l’utente e l’applicazione stessi. Il contesto `e solitamente descritto da un insieme di parametri, relativi al dominio di esecuzione dell’applicazione e che si riferi- scono alle principali enti`a che entrano in gioco nello svolgimento dell’appli- cazione stessa. Per utilizzare dati contestuali all’interno di un’applicazione `
e necessario fornire una descrizione formale del contesto e delle entit`a che lo compongono. In generale, come mostrato in figura 3.1, le principali entit`a contestuali da modellizzare sono le seguenti:
• utente: colui che accede all’applicazione. Pu`o avere diversi ruoli e quindi diversi permessi per eseguire operazioni all’interno del sistema (es. amministratore di sistema, utente semplice ecc.);
• canale: `e l’insieme degli strumenti fisici che permettono all’utente di accedere all’applicazione ed `e quindi caratterizzato dal dispositivo e dal
Figura 3.1: Contesto di esecuzione
canale per mezzo dei quali avviene la connessione con l’applicazione;
• applicazione: `e caratterizzata da un’interfaccia astratta attraverso la quale l’utente pu`o interagire con il sistema ed `e connessa a servizi con- creti, con specifiche propriet`a ed operazioni, offerti da diversi service provider;
• ambiente: rappresenta tutto ci`o che non appartiene al sistema vero e proprio, ma ne condiziona il comportamento.
Vengono forniti in letteratura diversi modelli per la rappresentazione for- male del contesto, modellizzando ogni entit`a rilevante sottoforma di classe UML e descrivendone le relazioni.
La principale limitazione dei modelli per la rappresentazione del conte- sto esistenti `e la mancanza di una correlazione tra i parametri ed il loro il livello di dettaglio. A seconda di specifiche condizioni contestuali potrebbe essere necessario svolgere operazioni a diverso livello di dettaglio, oppure il livello di dettaglio con cui `e descritto il dato potrebbe determinare modifiche
nello svolgimento del processo. Inoltre, come descritto nel dettaglio nella sezione successiva, lavorare con dati ad un livello di dettaglio non idoneo per l’applicazione in esecuzione comporta inefficienze temporali, energetiche ed operazionali.
Lo scopo di questo lavoro `e quello di realizzare un framework adattivo che descriva e utilizzi i dati del contesto in relazione al loro livello di dettaglio.