Focus

Progettazione Intelligente di Applicazioni Interattive Multi-Dispositivi basate su Servizi attraverso il Supporto di Modelli di Compiti

In questo focus viene descritto un ambiente innovativo di supporto alla progettazione di applicazioni interattive multi-dispositivi basate su servizi. Tale ambiente utilizza vari livelli di astrazione per la descrizione di applicazioni interattive e consente la composizione di servizi, che possono essere annotati.
Attualmente, i servizi Web sono sempre più usati per supportare l'accesso remoto e distribuito a funzionalità applicative, abilitando così al loro uso una vasta gamma di applicazioni interattive. Tuttavia, quando il supporto per l'utente (ossia le applicazioni interattive) viene sviluppato, sfruttando i servizi esistenti, tale supporto è spesso basato su soluzioni ad-hoc poco generali che non considerano il punto di vista dell'utente, producendo così soluzioni di scarsa usabilità.
Le soluzioni basati su BPMN (Business Process Modelling Notation) e BPEL (Business Process Execution Language) sono spesso usate in approcci basati su SOA (Service-Oriented Architecture), ma si focalizzano su una composizione diretta dei servizi, in cui l'output di un servizio diventa l'input per un altro, per creare servizi complessi. Pertanto, tali approcci forniscono un supporto minimo allo sviluppo di applicazioni in grado di interagire efficacemente con gli utenti ed eseguire la composizione di servizi accedendo ai servizi stessi, elaborandone l'informazione associata e presentando i relativi risultati agli utenti finali.
Uno dei maggiori vantaggi delle descrizioni logiche di applicazioni interattive è che esse permettono agli sviluppatori di evitare di dover gestire una serie di dettagli di basso livello associati ai linguaggi di implementazione. Pertanto, l'obiettivo del nostro approccio è di fornire ai progettisti che vogliono sfruttare il potenziale dei servizi Web all'interno delle loro applicazioni interattive, un approccio sistematico in grado di gestire efficacemente gli specifici problemi sollevati dalle applicazioni interattive quando vengono accedute tramite molteplici dispositivi.
Il nostro metodo è basato sull'uso di descrizioni logiche di applicazioni interattive con l'utente. Per meglio supportare tale approccio è stato anche sviluppato un ambiente automatico associato, MARIAE (Model-based lAnguage foR Interactive Applications Environment), in grado di supportare le varie fasi. Il nostro approccio sfrutta diversi livelli di astrazione per la descrizione dell'interfaccia utente (i compiti, la descrizione astratta e quella concreta). Inoltre, nella nostra soluzione è anche possibile utilizzare informazioni aggiuntive connesse con l'interfaccia utente stessa e associate ai servizi Web (le cosiddette "annotazioni" dei servizi). I modelli dei compiti descrivono le varie attività che devono essere supportate da un'applicazione interattiva, insieme alle relazioni che sussistono tra tali attività. Nel nostro approccio la descrizione dei compiti viene effettuata sfruttando il ConcurTaskTrees (CTT), una notazione largamente utilizzata anche grazie alla disponibilità del relativo ambiente automatico pubblico, CTTE (CTT Environment). Utilizzando MARIAE, è possibile stabilire un'associazione tra compiti (o task) elementari (cioè task che non possono essere ulteriormente decomposti) presenti nel modello dei compiti e le corrispondenti operazioni specificate nei servizi Web. Questa associazione (che coinvolge solo i task di sistema, ossia i task che vengono eseguiti dall'applicazione) è facilitata nel CTT, in quanto le diverse allocazioni dei task sono rappresentate in maniera differente e quindi i task di sistema sono facilmente identificabili. Infatti, supponendo di utilizzare una opportuna granularità per specificare il modello dei compiti, questa associazione ha il vantaggio di far ereditare in maniera consistente ed automatica le relazioni temporali tra i vari task anche alle associate operazioni dei servizi Web. Questo aspetto è molto importante in quanto le relazioni temporali nel modello dei compiti dovrebbero essere identificate tenendo in considerazione la prospettiva dell'utente.
Una volta che il modello dei compiti e i servizi Web sono connessi, può essere generata una prima versione della descrizione astratta, la quale può essere ulteriormente editata dai progettisti. Quando viene raggiunto un livello soddisfacente di raffinamento, la descrizione astratta può essere trasformata in una descrizione concreta (ossia: dipendente dalla piattaforma).
I progettisti possono anche includere annotazioni associate ai servizi web, le quali forniscono suggerimenti (anche parziali) sulle possibili relative interfacce utente. Al livello astratto di interfaccia utente le annotazioni possono specificare ad esempio definizioni di raggruppamenti, regole di validazione di input, elementi opzionali/obbligatori, relazioni tra i dati (conversioni, unità, enumerazioni), linguaggi. A livello concreto le annotazioni possono fornire informazioni sui nomi dei campi di input, contenuto per l'help, messaggi di errore o di warning e indicazioni sulle regole che definiscono come presentare le varie informazioni (ad esempio formati, modelli di progettazione, etc.)
Quando deve essere progettata un'applicazione multi-dispositivo, i modelli creati con i linguaggi indipendenti dalla piattaforma dovrebbero anche considerare le caratteristiche della modalità target di interazione. Infatti, nel modello dei compiti si potrebbero avere compiti che dipendono da una specifica modalità (ad esempio selezionare una posizione all'interno di una mappa e/o mostrare un video sono attività associate alla modalità grafica) e che quindi verranno ignorati se non possono essere supportati. Ad esempio, nel caso in cui la piattaforma considerata supporti solo la modalità vocale i compiti strettamente dipendenti dalla modalità grafica non saranno considerati. Pertanto, per ogni piattaforma target è possibile focalizzarsi solo sui compiti rilevanti e derivare poi la corrispondente descrizione astratta che diviene a sua volta input per ottenere una più raffinata descrizione dell'interfaccia, utilizzando lo specifico linguaggio concreto disponibile per ogni piattaforma target. C'è da notare che poiché i linguaggi concreti condividono un vocabolario astratto comune, questa attività è più semplice che gestire un numero di linguaggi di implementazione dipendenti dalla modalità.
Il nostro strumento automatico MARIAE (che può essere liberamente scaricato su Internet) è correntemente in grado di supportare la progettazione e l'implementazione di applicazioni interattive basate su servizi per varie classi di dispositivi: desktop grafico, dispositivi mobili che supportano la modalità grafica, piattaforma vocale, piattaforma multimodale (grafico e vocale).
Questo ambiente è stato sviluppato all'interno del progetto ServFace, il cui obiettivo era di creare una metodologia ingegnerizzata dei servizi e guidata dai modelli, per costruire applicazioni interattive basate su servizi, sfruttando le annotazioni dell'interfaccia utente e la composizione dei servizi stessi. Il progetto è iniziato nel 2008 ed è finito nel 2010. Le organizzazioni coinvolte sono state: ISTI-CNR, SAP AG (Coordinatore del progetto), Technische Universität Dresden, Università di Manchester, W4. (Fabio Paternò, Carmen Santoro, Lucio Davide Spano)

Immagini: