Relatore: Prof. F. Tisato Studente: Torri Debora
Correlatore: Prof. G. Haus Matr.: 391263

 

Riassunto di tesi di laurea in Scienze dell'Informazione
Anno Accademico 1994/95


Acquisizione in tempo reale di oggetti multimediali in un sistema orientato alla performance multimediale

 

Il presente lavoro di tesi, svolto presso il Laboratorio di Informatica Musicale (L.I.M.) del Dipartimento di Scienze dell'Informazione dell'Università degli Studi di Milano, è dedicato alla progettazione e realizzazione prototipale di un sistema distribuito in ambiente Macintosh che permetta la comunicazione tra due differenti sottosistemi. Uno dedicato all'acquisizione di oggetti multimediali (dati MIDI, testi, video, suoni ed immagini digitali), l'altro rappresentato dal MultiMedia Performer (MMP).
Il MultiMedia Performer è un'applicazione per la creazione ed esecuzione di composizioni comprendenti elementi di tipo visuale, testuale e sonoro in senso lato; composizione a cui viene attribuito il nome di partitura multimediale. Si tratta di un sistema basato su di una rete di calcolatori, interfacciati via MIDI, controllato da un "Interprete" che realizza la performance attraverso la generazione e l'invio di comandi MSC (MIDI Show Control) a 5 diversi driver che in funzione di tali messaggi trattano dati specifici per un certo canale mediale.
Il nuovo sistema distribuito, scopo di questo progetto, viene realizzato attraverso la coesistenza della rete MIDI, sopra citata, ed un'altra rete locale mantenuta indipendente e gestita da due programmi, ognuno con compiti differenti. Uno strumento di controllo chiamato "Supervisore" che opera in modo completamente trasparente per l'operatore umano, le cui funzioni principali sono il controllo e la gestione delle risorse disponibili sulla rete. Uno strumento chiamato "Server" che in funzione dei comandi ricevuti dal gestore del sistema (Supervisore) esegue una serie di azioni che possono riguardare l'attivazione o disattivazione di applicazioni (driver, acquisitori), l'avvio o l'interruzione del trasferimento di oggetti multimediali, l'aggiornamento del catalogo dei file disponibili, ecc..

Configurazione logica del MultiMedia Performer

La struttura dell'intero sistema diventa, così molto flessibile. Un computer, in cui è installato il Supervisore, opera come una console di controllo. L'aggiunta di una nuova stazione di lavoro avviene, semplicemente, attraverso l'attivazione di un nuovo Server che comunica la propria esistenza all'applicazione di supervisione. Potrà quindi essere attivato l'interprete del MultiMedia Performer sul computer che controlla la rete, mentre il Server a sua volta sarà in grado di lanciare dei Driver o delle applicazioni per la digitalizzazione di video, audio e immagini oppure per l'acquisizione di dati MIDI e testo.

Configurazione dell'intero sistema distribuito
In tal modo la configurazione logica del sistema potrà essere modificata in funzione delle esigenze dell'utente in accordo con le risorse hardware disponibili e distribuendo in modo adatto il carico dei processi sui nodi della rete.
La principale funzionalità aggiunta al sistema è rappresentata dalla possibilità, per i driver di esecuzione, che sono in grado di trattare solo gli oggetti multimediali presenti in una directory di lavoro settata dall'utente, di disporre anche di quelli memorizzati in dischi remoti. L'operazione di trasferimento che realizza tale servizio non deve in alcun modo intaccare la capacità di esecuzione in tempo reale della partitura multimediale. Questo introduce due nuove problematiche:
o impedire l'esecuzione in contemporanea di due applicazioni che vadano a leggere e/o scrivere sullo stesso disco. Si introdurrebbe, in caso contrario, un eccessivo tempo di inattività dovuto ai continui spostamenti della testina, e nel caso peggiore una frammentazione del disco andando a memorizzare il nuovo file in blocchi di memoria fisicamente non contigui. Ne consegue un eccessivo ed inaccettabile rallentamento in fase di riproduzione della partitura realizzata;
o mantenere la temporizzazione dell'intero sistema realizzata attraverso un unico clock fornito dall'interprete del MultiMedia Performer che deve generare con continuità un messaggio di resincronizzazione sulla base del quale i driver possano regolare la propria esecuzione.
Sono stati, inoltre, realizzati una serie di servizi complementari come la creazione di un catalogo di tutti gli oggetti disponibili sui dischi remoti che viene aggiornato ogni qual volta termina l'acquisizione di un nuovo oggetto multimediale.
Un ambiente di rete che gestisce applicazioni multimediali, come quello descritto, necessita ovviamente di una tecnologia fisica di rete che permetta una velocità di trasferimento elevata; la scelta ideale è apparsa Asynchronous Transfer Mode (ATM). Non disponendo, attualmente di tale protocollo, il prototipo è stato realizzato utilizzando un rete LocalTalk. Essendo ben consapevoli delle notevoli limitazioni imposte dal basso valore del tasso di trasferimento fornito da tale tecnologia è stato necessario rendere l'intero sistema indipendente dal tipo di rete fisica utilizzata realizzando un'interfaccia al protocollo di trasporto rappresentata da una libreria di funzioni. Qualsiasi tipo di modifica all'hardware che implichi modifiche al protocollo che standardizza il livello di trasporto, viene filtrata modificando tale libreria di funzioni.
L'architettura della rete locale comprende oltre all'interfaccia a livello trasporto la definizione di due nuovi protocolli a livello applicazione: il protocollo di supervisione, che gestisce i comandi generali di controllo delle risorse del sistema; ed il protocollo per il trasferimento di oggetti multimediali.
Per permettere la comunicazione tra i nodi della rete le applicazioni realizzate presentano una struttura utile ad implementare, nel contesto della classica impostazione event-driven delle applicazioni Macintosh, un'esecuzione asincrona dei comandi ricevuti; il ciclo principale del programma si occupa di effettuare un'analisi sintattica di tali comandi istanziando le procedure necessarie ad assolvere le richieste, mentre ad alcune procedure attivate a livello di interrupt all'arrivo dei comandi spetta il compito di effettuarne la bufferizzazione o l'immediata esecuzione in funzione della priorità ad essi associata. Per realizzare, invece, la comunicazione tra processi attivi su di una stessa macchina si sono utilizzati gli eventi ad alto livello; particolari tipi di eventi forniti dal sistema operativo che un'applicazione può spedire ad un'altra per passargli informazioni, riceverne o per eseguire operazioni specifiche e che vengono gestiti interamente all'interno del ciclo principale.