Sottoprogetto Sistemi Multimediali
Le caratteristiche già discusse del sistema globale, assieme alla tendenza
attuale delle applicazioni di utilizzare modalità di interazione sempre
più complesse, hanno favorito il diffondersi delle applicazioni che trattano
dati di natura multimediale.
Sfortunatamente le soluzioni architetturali hardware e software di tipo
tradizionale non sembrano sufficienti alle esigenze dei sistemi distribuiti
e delle applicazioni multimediali a motivo delle caratteristiche innovative
che tali applicazioni hanno e dei problemi che sorgono quando l'infrastruttura
di calcolo è di natura eterogenea.
In particolare, tanto i nodi di calcolo che i canali di comunicazione,
da un lato devono essere in grado di fornire elevate prestazioni per soddisfare
in termini assoluti le esigenze computazionali e di trasferimento dei dati
delle nuove applicazioni, e dall'altro devono poter controllare l'impegno
di risorse al fine di garantire la qualit?à dei servizi forniti in presenza
di contesa sulle risorse. Tale requisito, infatti, è di primaria importanza
nel caso delle applicazioni multimediali per la natura dei dati trattati.
Come gi?à accennato in precedenza, le soluzioni a questi problemi non
possono prescindere dalla necessità di mantenere la compatibilità con i
componenti hardware e software di tipo tradizionale. Occorre dunque intervenire
sulle architetture esistenti, individuandone i limiti e identificando soluzioni
che facciano evolvere la struttura dei sistemi senza modifiche radicali.
Sotto questo aspetto un problema fondamentale è quello di rendere effettivamente
disponibili alle applicazioni tutte le potenzialità in termini di prestazioni
dei moderni componenti hardware. A tal fine è possibile individuare tre
ambiti sui quali intervenire.
Un primo aspetto riguarda il bilanciamento architetturale tra i diversi
componenti del sistema che non risulta sempre adeguato rispetto alle esigenze
delle nuove applicazioni. Un secondo aspetto riguarda il software
di base (sistema operativo, software di supporto alle comunicazioni
e supporto linguistico) che è generalmente orientato ad applicazioni più
convenzionali e, in particolare, non fornisce meccanismi per il controllo
delle risorse adatti alle caratteristiche delle applicazioni multimediali.
Infine lo stesso software applicativo richiede algoritmi più efficienti
e l'impiego effettivo dei nuovi meccanismi per la gestione delle risorse
che cominciano ad essere disponibili anche sulle piattaforme più diffuse.
Il sottoprogetto sui Sistemi Multimediali si propone di affrontare queste
tematiche con specifico riferimento all'impiego di sistemi ad alte prestazioni
basati su tecnologia a basso costo per lo sviluppo e l'impiego
di applicazioni multimediali. L'attività riguarda sia aspetti sistemistici
che applicativi e intende affrontare i diversi problemi sia sul piano metodologico
che sperimentale.
Dal momento che nel progetto non si propone di individuare un'unica
soluzione ai problemi descritti, che peraltro sembra irrealistica e di
scarso interesse pratico nell'attuale panorama di sviluppo del mercato,
gli
aspetti di valutazione e la messa a punto degli strumenti di base necessari
alle applicazioni multimediali svolgono un ruolo centrale per tutta la
durata del sottoprogetto.
L'obiettivo generale del sottoprogetto consiste nel progettare e realizzare un sistema client-server ad alte prestazioni per l'accesso a informazioni di natura multimediale incluse informazioni video. Le diverse UR collaboreranno a tale obiettivo affrontando diversi aspetti complementari descritti di seguito. L'impiego di piattaforme hardware simili e di interfacce di programmazione comuni garantirà la possibilità di integrare i prodotti delle diverse UR in modo da pervenire ad uno o più prototipi funzionanti nel corso del progetto. I prototipi via via sviluppati potranno essere utilizzati da tutte le UR per effettuare, nell'ambito delle proprie specifiche attività, una sperimentazione più ampia di quella possibile con le sole risorse locali.
Per la realizzazione del sistema client-server ad alte prestazioni verranno svolte le seguenti attività di ricerca:
* Definizione, implementazione e sperimentazione di una piattaforma
per lo sviluppo di server paralleli. La piattaforma hardware scelta per
tale attività è costituita da reti di workstation interconnesse da reti
ad alte prestazioni. Le UR utilizzeranno reti diverse (ATM, Switched
Ethernet, Myrinet) che consentiranno anche un confronto tra diverse soluzioni
hardware nonché una verifica della possibilità di portare il server su
diverse piattaforme preservando le prestazioni (performance portability).
I principali problemi che verranno affrontati riguarderanno i parametri
di qualità di servizio che devono caratterizzare le funzionalità offerte
dal software di sistema. A tal fine si intende valutare il supporto offerto
dai sistemi operativi più diffusi (UNIX, Windows NT) per garantire livelli
assegnati di qualità da parte dei servizi di sistema. In tale ambito, oltre
alle politiche di scheduling ai diversi livelli, si intende studiare anche
le interazioni tra scheduling, comunicazioni e attività di ingresso/uscita
verso le memorie di massa ad alta velocità.
* Definizione e implementazione di un sistema di ingresso/uscita parallelo
(disk array). Tale attività riguarderà la definizione delle strategie di
gestione per l'accesso ai servizi e le modalità di interfacciamento con
il resto del sistema e le applicazioni. Per la parallelizzazione del sistema
si intende utilizzare ancora una rete di
workstation utilizzando la piattaforma descritta al punto precedente.
La gestione logica del disk array richiederà la definizione di due
distinte politiche di gestione. La prima sarà rivolta al problema della
allocazione delle informazioni nel disk array e quindi della organizzazione
logica del data base. La seconda sarà invece rivolta alla successiva fase
di gestione delle richieste di I/O.
* Gestione di server ad alte prestazioni distribuiti e cooperanti.
Anche in presenza di server paralleli ad alte prestazioni, la dinamicità
dell'ambiente di rete può produrre congestione con conseguente perdita
di prestazioni e funzionalità. Questa attività è dunque complementare a
quella precedentemente descritta. Essa riguarderà le politiche di caching
e mirroring rispetto alle richieste provenienti da sottoinsiemi di utenti
al fine di ottimizzare l'impegno di risorse. Sarà inoltre considerata la
possibilità di utilizzare algoritmi di scheduling distribuiti per gestire
in modo coordinato più server, in modo da evitare fenomeni di sovraccarico
di un singolo server distribuendo le richieste sugli altri. A tale scopo
si estenderà il modello per sistemi Web distribuiti costituito da server
omogenei al caso più comune di server eterogenei.
* Definizione di nuove tecniche di codifica delle informazioni multimediali
per la memorizzazione, la trasmissione, l'analisi e il reperimento per
contenuto, nonch?é di nuovi algoritmi di decompressione.
Verranno studiate tecniche di codifica delle informazioni multimediali
in modo da facilitare il reperimento dei dati e migliorare le prestazioni
globali del sistema. Un altro aspetto su cui si intende lavorare riguarda
ancora le tecniche di codifica delle informazioni multimediali al fine
di rendere possibile la loro trasmissione,
decodifica e visualizzazione in tempo reale anche su piattaforme relativamente
a basso costo. Infine, per quanto riguarda il reperimento di informazioni
nel database, particolare attenzione sarà riservata alla valutazione di
algoritmi di "parsing" di sequenze video. Lo scopo è quello di ottenere
una estrazione del contenuto semantico della sequenza di immagini analizzata.
Tali algoritmi si baseranno sia su caratteristiche statiche delle singole
immagini (colore, texture, ecc.) sia su caratteristiche dinamiche (ad esempio,
asimmetrie dell' "optical
flow"). Successivamente, la semantica verr?à impiegata per costruire
una indicizzazione del video, utile al fine di memorizzazione, ricerca
e navigazione.
* Una certa attenzione verrà data anche alla parte relativa ai client
e all'interfaccia utente. È importante infatti semplificare il più possibile
la struttura hardware-software del terminale utente per motivi di flessibilità,
facilit?à d'uso e costo. In particolare sembra di fondamentale importanza
rendere disponibili attraverso il server gli applicativi di gestione per
i servizi richiesti. Inoltre si intende esplorare anche la possibilità
di rendere più sofisticato il protocollo tra client e server in modo da
graduare la qualità e la quantità di informazione erogata in modo da adeguarsi
alle capacità elaborative e di visualizzazione del client.
* Implementazione sperimentazione e valutazione di applicazioni interattive.
Tale attività è volta a consentire una più ampia sperimentazione delle
tecniche di base che si intende proporre e sviluppare. In particolare,
alcune UR provvederanno a sviluppare applicazioni multimediali di tipo
interattivo in campo didattico per la
realizzazione di "laboratori virtuali" per l'accesso ad informazioni
riguardanti il patrimonio artistico e culturale ("museo virtuale distribuito")
e per la didattica sulle tecniche di OOP.