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.