Scarica

Transcript

Scarica
Rapporto trimestrale attività svolta
L’attività di studio e di ricerca che sto svolgendo ha come tema il “Sistema di cooperazione a
distanza Access Grid”. Come proposto in fase di selezione per l’assegnazione della borsa, durante il
primo periodo di lavoro ho portato avanti uno studio approfondito del software sui sistemi operativi
maggiormente in uso, Windows, Linux e OS-X, per comprenderne appieno il funzionamento dal
punto di vista dell’utilizzatore e per far emergere quelli che sono i problemi che più comunemente
incontra l’utente che si approccia ad Access Grid e che spesso sono causa di abbandono del suo
impiego.
Il progetto Access Grid è nato nel 1998 con l’intento di realizzare un sistema che permettesse la
cooperazione a distanza sfruttando le tecnologie a disposizione e che potesse seguire l’evoluzione
dell’hardware e della rete Internet così da permettere collaborazioni sempre più performanti con
l’avanzamento della tecnologia. Access Grid è un software che permette la costruzione di ambienti
cooperativi distribuiti (nodi Access Grid), con lo scopo di rendere il più agevole possibile
l’interazione tra gruppi di lavoro remoti per la realizzazione di convegni scientifici, seminari e
incontri di altro genere. Progettato per la collaborazione group-to-group, non ha un limite stabilito
al numero di nodi che possono collegarsi per partecipare ad un meeting, inoltre da ogni nodo è
possibile mandare più flussi video a seconda del numero di videocamere che si ha a disposizione.
L’interfaccia sviluppata per la gestione e la configurazione di Access Grid è la Venue Client. In
Figura 1 ne è rappresentato uno screenshot effettuato durante una sessione di test. La barra dei
menu visibile in alto è utilizzata per la configurazione del sistema. La barra degli indirizzi serve per
connettersi ad una specifica Virtual Venue, uno spazio virtuale nel quale gli utenti che si trovano
fisicamente in luoghi differenti possono incontrarsi per collaborare con Access Grid. Le icone tra la
barra dei menu e quella degli indirizzi sono utilizzate per le configurazioni più frequenti, tra le
quali: abilitare o disabilitare audio e video e scegliere i servizi. La finestra più grande in alto è
quella che permette di vedere i partecipanti alla sessione, i dati che vengono caricati e resi
disponibili per tutti e le applicazioni disponibili. La finestra di sinistra è quella che permette di
spostarsi tra le virtual rooms disponibili ad un determinato address come ad esempio quella dedicata
ai test per le configurazioni che troviamo sotto la home venue. La finestra più in basso contiene una
chat testuale che permette di scrivere e leggere quello che gli altri partecipanti scrivono.
Figura 1. Venue Client
Il software provvede inoltre alla comunicazione tra gli utenti connessi fornendo tool audio e video,
che rendono possibile vedere e sentire gli altri partecipanti una volta effettuata la connessione. Il
tool utilizzato per la trasmissione video tra gli users è il VIC (sta per Video Conference). E’ un tool
per videoconferenze che permette a gruppi di utilizzatori di trasmettere e ricevere flussi video verso
e da ogni partecipante su una rete IP multicast. L’hardware richiesto per poter utilizzare VIC
consiste di un device per acquisizione video, come una semplice webcam, nel caso in cui si voglia
trasmettere un flusso dal nostro nodo, mentre per ricevere non è necessario alcun hardware
particolare se non quello già utilizzato per Access Grid. La codifica video impostata di default
dipende dal dispositivo hardware utilizzato dal pc per catturare l’immagine. Nel caso in cui la
codifica utilizzata sia la H.261 la qualità dell’immagine è discreta ma la dimensione è piuttosto
piccola. Per avere un miglioramento dell’immagine in qualità e dimensioni, sempre che la banda a
disposizione permetta una bit rate da dedicare al video che va da un minimo di circa 0.8 Mb/s ad un
massimo di 1.5 Mb/s, dobbiamo utilizzare una codifica H.264 anche questa supportata dal tool. In
Figura 2 è rappresentato uno screenshot della finestra nella quale sono visibili i flussi video
provenienti dai vari nodi durante una sessione di test. E’ possibile ingrandire ciascuna immagine,
portandola alla dimensione originale, cliccandoci sopra. Ad esempio per avere una visione più
chiara possibile delle persone che partecipano al meeting o volendo scegliere quelle con le quali si
ha più interesse ad interagire, è possibile cliccare sulle immagini che interessano in modo da
ingrandirle e poi distribuirle ad occupare il monitor o quello che si utilizza come display. Ad ogni
flusso in ingresso sono associate alcune informazioni, quali la bit rate, i frame al secondo ricevuti e
il nome del nodo dal quale proviene il flusso. Sono presenti anche informazioni riguardanti
l’indirizzo (multicast o unicast) verso il quale sono diretti i flussi, la porta e il time to live.
Figura 2. Finestra dei flussi video
L’audio è gestito dal RAT (sta per Robust Audio Tool) la cui finestra permette ai partecipanti di
gestire le opzioni quali il sample rate e la scelta dei codec, poter vedere i flussi in ingresso ed
abilitare o disabilitare il proprio. Sono visibili inoltre i nomi dei dispositivi utilizzati in input ed
output per la gestione dell’audio con il relativo volume. La figura 3 mostra la finestra RAT durante
un collegamento alla Venue Bridgeport raggiungibile dalla Home venue. I triangoli colorati alla
sinistra del nome di ciascun partecipante sono un indicatore della qualità dell’audio. Il colore verde
indica un’alta qualità mentre passando all’arancione e nel caso peggiore al rosso si ha un
deterioramento della qualità. Come per il VIC anche in questo caso compare l’indirizzo verso il
quale è diretto l’audio, la porta e il time to live. Entrambi i tool sono un’evoluzione di VIC e RAT
sviluppati con Mbone.
Figura 3. Robust Audio Tool
L’audio e i video service sono controllati dai service manager, che sono installati su una singola
macchina nel caso in cui il nodo Access Grid abbia una configurazione semplice realizzata ad
esempio da un utente sul proprio desktop o laptop. Nel caso in cui il nodo Access Grid sia invece
configurato per ospitare una sala conferenze, potrebbe esser necessario distribuire i service manager
su macchine distinte e remotizzare i servizi. Una configurazione possibile ad esempio prevede una
macchina per la gestione dell’audio e altre due per gestire il video (quello in input e quello in
output). Nella figura 4 è rappresentato proprio questo caso. Il node sevice, che può essere su una
qualunque delle tre macchine, controlla i service manager i quali a loro volta comunicano con i
service audio e video sulla specifica macchina. Per remotizzare un servizio è sufficiente,
direttamente dalla Venue Client, selezionare ‘add service manager’ e digitare l’indirizzo IP o
l’hostname delle macchine alle quali affidare il particolare servizio. Questa applicazione può
funzionare sia nel caso in cui le macchine facciano parte dello stesso nodo, sia che siano su nodi
differenti ed è utile per varie applicazioni. Se per esempio da un nodo Access Grid per qualche
motivo volessi mandare un flusso video o audio con il mio nome (ovvero come fosse proveniente
da una videocamera del mio nodo) ma con immagini o suoni catturati da un altro pc su un altro
nodo, sarebbe sufficiente conoscere quell’IP. Ancora, se ci fosse la necessità di partecipare ad una
videoconferenza mandando flussi in uscita da stanze fisiche separate ma risultanti sullo stesso nodo.
Node
Management
Service
Manager
Service
Manager
Service
Manager
Video
Video
Producer
Producer
Service
Service
Video
Consumer
Service
Audio
Service
Figura 4. Esempio di struttura logica di un nodo
Il problema che potrebbe nascere nel primo degli esempi presi in considerazione è che
quest’operazione non richiede apparentemente alcun tipo di controllo. Sembrerebbe dunque
sufficiente conoscere un indirizzo IP di una macchina collegata ad Access Grid per poter assumere
il controllo di qualunque service audio o video su quella macchina. Ho intenzione di approfondire
questo aspetto più avanti per capire se ci sia una qualche impostazione che impedisca che ciò
avvenga.
Per testare il software ho installato la Development release 3.2 beta1 di Access Grid sui sistemi
operativi precedentemente citati. Trattandosi di software gratuito, open source, è possibile effettuare
il download direttamente dal sito ufficiale all’URL: http://www.accessgrid.org/sofware. Nel sito
sono disponibili i link per scegliere la versione o la distribuzione sulla quale effettuare
l’installazione del software. Il comportamento sulle tre piattaforme sulle quali ho effettuato i test è
simile, con alcune differenze dovute principalmente alle difficoltà di installazione e configurazione
dei diversi applicativi e ad alcuni problemi che ad esempio ho incontrato su Mac e non su Linux e
Windows e viceversa.
Il primo sistema operativo sul quale ho installato Access Grid è un Mac OS-X con processore Intel.
Diversamente dalle informazioni riportate sul sito ufficiale di Access Grid, ho riscontrato problemi
di compatibilità tra l’ultima versione del software, la 3.2 beta1, con le versioni precedenti alla 10.5
del sistema operativo. In particolare con la versione 10.4, pur avendo effettuato i settaggi necessari
per la configurazione delle periferiche e della Venue Client e aver riavviato Access Grid per esser
sicuro del salvataggio delle modifiche, non è stato possibile ricevere e trasmettere alcun flusso
video. La parte audio funzionava invece correttamente sia per i flussi in ingresso che per quelli in
uscita. Ho effettuato un update del sistema operativo aggiornandolo alla versione 10.5 e in seguito
reinstallato Access Grid 3.2 beta 1. Con la nuova combinazione di software e sistema operativo ho
risolto i problemi inizialmente incontrati.
Per testare il sistema ho effettuato collegamenti alla Virtual Venue sia in modalità multicast che è
quella di default, supportata dalla rete sulla quale lavoro, sia utilizzando un multicast-unicast
bridge. Quest’ultimo potrebbe rendersi necessario in caso di problemi sulla rete multicast dovuti per
esempio al firewall mal configurato o nel caso in cui tale tecnologia non sia supportata dalla rete.
Connettendosi ad Access Grid in modalità Unicast siamo automaticamente connessi al più vicino
(in termini di millisecondi) Unicast Bridge disponibile. Se la rete lo consente è comunque
preferibile utlizzare Access Grid direttamente in modalità Multicast. Il software, infatti, è stato
pensato e realizzato per scambiare dati (audio, video ed altro) sfruttando tale tecnologia. Per questo
motivo non richiede l’utilizzo di un MCU come invece accade con altri sistemi di videoconferenza
e consente di trasmettere e ricevere un elevato numero di flussi video separati. Questi possono esser
distribuiti a piacimento anche su più schermi per dare così ai partecipanti l’idea della presenza fisica
delle persone collegate da remoto. Affinché Access Grid lavori correttamente è necessario che i
firewall siano configurati per permettere il traffico UDP ed il passaggio di indirizzi multicast in
ingresso e in uscita. Il gruppo multicast verso il quale mandiamo pacchetti e dal quale li riceviamo è
quello dei partecipanti connessi alla Virtual Venue. Per regolare l’accesso al gruppo multicast è
possibile utilizzare un certificato X.509 (tema questo che ho intenzione di approfondire in seguito).
Come detto l’alternativa al multicast è quella di utilizzare dei bridge e anche in questo caso ogni
firewall tra il bridge e la Venue Client deve essere configurato per permettere il protocollo
connectionless UDP.
Un aspetto molto importante di Access Grid e che lo distingue da un comune sistema di
videoconferenza con il quale fare semplici video telefonate, è quello delle Shared Application.
Queste, come suggerisce il nome, permettono la cooperazione tra i partecipanti fornendo la
possibilità di condividere documenti quali le presentazioni, ambienti di lavoro come il desktop
nonché poter navigare su pagine web contemporaneamente attraverso lo Shared Browser. Access
Grid non è limitato alle applicazioni che troviamo installate nella Virtual Venue. Ne esistono altre
pronte da installare disponibili tra i Projects sul sito ufficiale di Access Grid e inoltre chi lo volesse
può implementare tramite una interfaccia API, disponibile in linguaggio python, shared application
realizzabili a seconda delle esigenze. Quella che troviamo di default nella Venue Client in seguito
all’installazione su Mac è la Shared Presentation che permette di condividere presentazioni power
point. E’ sufficiente che il partecipante che vuol condividere il proprio documento ppt lo carichi tra
i ‘Data’ e aggiunga nella ‘Application Session’ una nuova Shared Presentation. Gli altri partecipanti
interessati alla condivisione del documento possono a quel punto aprire la presentazione, a patto che
abbiano Power Point installato sul pc, che scorrerà su ciascuno schermo gestita dal presentatore.
Dopo aver preso in esame le applicazioni disponibili per Access Grid su Mac, ho installato lo
Shared Desktop che permette appunto la condivisione del desktop da remoto sia come client che
come server. Affinché possa funzionare correttamente ci sono dei requirements da rispettare: è
necessario per prima cosa installare sulla propria macchina un client VNC (Virtual Network
Computing) e un server VNC, software per il controllo remoto del computer. La procedura
d’installazione dei requirements è riportata sul sito ufficiale www.accessgrid.org e può essere
facilmente seguita per la corretta installazione con un piccolo accorgimento: il nome del server
VNC di cui effettuiamo il download e che l’applicazione cercherà nel path all’avvio, è
OSXvnc.app. Purtroppo, dopo aver proceduto all’installazione seguendo i passi riportati nelle
istruzioni, all’avvio dell’applicazione compare un messaggio d’errore con scritto che non esiste un
server VNC e quindi che non è possibile condividere il proprio desktop. Controllando sul sito web
dal quale ho fatto il download del server mi sono accorto che l’applicativo ha semplicemente
cambiato nome: adesso non si chiama OSXvnc.app bensì Vine Server.app e per questo motivo non
viene riconosciuto. Basta così creare un link simbolico dalla shell per risolvere il problema. Fatto
questo ho provato Shared Desktop con un utente collegato da un pc linux. L’aspetto interessante di
tale feature è che tutte le persone collegate possono lavorare sulla medesima applicazione aperta su
ciascuno screen, prendendo a turno controllo del mouse. Il funzionamento sia come server che
come client non ha dato problemi, se non che l’aggiornamento dell’applicazione su Mac non è
immediato, ovvero è capitato che all’altro utente (su linux) comparisse la possibilità di condividere
il mio desktop quando invece avevo già disabilitato tale opzione. La procedura per il download e
l’installazione dei Requirements e dell’applicazione la descrivo in un howto apposito, soprattutto
per lasciare documentata la risoluzione del bug sul server VNC.
Il successivo sistema operativo sul quale ho installato Access Grid per studiarne il comportamento è
stato Linux. La distribuzione è la Ubuntu 9.10 (Karmic Koala). L’intenzione iniziale era quella di
creare una macchina virtuale di Ubuntu utilizzando un virtualizzatore e lavorare con Access Grid su
questo. Ho così installato sull’host Mac, Virtual Box, liberamente scaricabile dal sito
www.virtualbox.org, creato la macchina virtuale linux e su questa installato Access Grid. Per ciò
che riguarda il funzionamento del software non ho incontrato problemi, che invece ci sono stati nel
far riconoscere a Ubuntu ‘virtualizzato’ le periferiche connesse a Mac, quali l’isight per catturare il
video e le cuffie-microfono usb. Passando ad una webcam Logitech usb risolvo il problema del
video che adesso riesco a trasmettere. Ho provato poi ad utilizzare delle cuffie con microfono a
jack, inserendole nel Mac con un convertitore usb. Avviene così il riconoscimento ma la qualità
dell’audio è pessima. Nel fare prove per testare il sistema Access Grid e acquisire quella familiarità
necessaria a poter fornire in futuro supporto tecnico, devo sempre tener conto del fatto che un
utilizzatore non deve trovarsi di fronte ad un software instabile e sul quale dover operare troppe
configurazioni prima dell’utilizzo. Per questo motivo ho ritenuto opportuno abbandonare l’utilizzo
del virtualizzatore e testare direttamente Access Grid su un pc con sistema operativo Ubuntu 9.10.
L’installazione su una distribuzione Debian & Ubuntu richiede l’utilizzo di una shell ed è per alcuni
aspetti un po’ più complessa rispetto a quanto lo sia sulle altre piattaforme. Per semplificare il
processo d’installazione ad un potenziale utilizzatore ho compilato un howto che lo descrive:
Installazione di Access Grid 3.2 su Linux (Debian & Ubuntu). Durante il primo collegamento ho
riscontrato un problema connesso all’utilizzo dell’audio service RAT. Il tool non riconosceva infatti
la periferica microfono, o meglio, la riconosceva senza però dare la possibilità di impostare
l’utilizzo del dispositivo. Dopo alcuni tentativi di risoluzione del problema non andati a buon fine,
cercando nella documentazione ufficiale ho trovato un documento che descrive come configurare
l’audio service RAT su linux affinché lavori correttamente. Per risolvere il problema è sufficiente
cancellare il file .RATdefault nella directory di Accessgrid, aprire successivamente il tool dalla
shell (e non aprendolo come di prassi tramite Venue Client) e cambiare alcune configurazioni. Sul
sito www.accessgrid.org possiamo trovare un collegamento ad una serie di Howto tra i quali è
presente quello che interessa in questo caso: ‘Setting up rat’. La URL della pagina web che
cerchiamo è la seguente: http://www.vislab.uq.edu.au/research/accessgrid/howto/rat.html.
Durante una sessione di test, ho incontrato un altro inconveniente che potrebbe capitare
all’utilizzatore: scollegando un video device ad esempio una webcam usb, come potrebbe accadere
per errore, mentre questa è in funzionamento (modalità enabled) e successivamente ricollegandola,
non è riconosciuta dal sistema. L’effetto indesiderato che viene a crearsi è quello che la window
nella quale solitamente compare il flusso video che stiamo trasmettendo risulta vuota con soltanto il
messaggio ‘waiting for video’. Le soluzioni possibili che ho trovato sono due: riavviare la macchina
in modo da far caricare nuovamente le impostazioni necessarie oppure disattivare il driver del
dispositivo in questione e attivarlo nuovamente dalla shell.
Le Shared Application che vengono installate con Access Grid su Ubuntu sono la shared
presentation e lo shared browser. Come su Mac anche sul sistema operativo Linux ho installato
shared desktop. I requirements necessari sono al solito un client ed un server VNC: xvnc4viewer e
vnc4server. Alla URL http://www.westgrid.ca/support/collaboration/research/ace/shareddesktop è
descritta la procedura per il download e l’installazione dell’applicazione. Altre due applicazioni che
ho installato sono il recording tool AGVCR per la registrazione delle videoconferenze, che permette
una successiva consultazione in caso di necessità, e la TigerboardAG3. Quest’ultima applicazione
consente di condividere una lavagna virtuale tra i partecipanti al meeting ad esempio per lavorare su
un’immagine da più postazioni. Una volta scaricato il pacchetto, per l’installazione è sufficiente
caricare lo stesso nella sezione ‘Data’ di Access Grid e con il tasto destro del mouse scegliere open
così come suggerito nelle istruzioni.
L’altro sistema operativo sul quale ho installato Access Grid è stato Windows Vista. A differenza
degli altri due presi in esame, per windows esiste la possibilità di installare un pacchetto, chiamato
AccessGrid3 All in one Installer for Windows, che permette appunto di installare Access Grid
(versione 3.2 beta1) più una serie di applicazioni sviluppate separatamente. Durante il processo
d’installazione è necessario scegliere le applicazioni che vogliamo siano disponibili per l’utilizzo,
come ad esempio le varie Shared Application o anche il video service che utilizza il codec H.264 e
permette flussi video di miglior qualità. I tool VIC e RAT funzionano correttamente, garantendo
flussi video e audio di buona qualità. Rispetto ai pacchetti installati su Mac e su Linux, questo
pacchetto contiene molte delle Shared Application disponibili: shared browser, tigerboardAG3,
shared presentation, shared desktop e l’ AGVCR launcher. Grazie al pacchetto All in one Installer,
il funzionamento su Windows è più semplice se comparato alle altre piattaforme, almeno dal punto
di vista dell’utilizzatore. Per la realizzazione di un server AG devo ancora verificare.
Nell’arco di questi tre mesi ho avuto la possibilità di partecipare ad alcune videoconferenze che si
sono tenute nell’Area del CNR di Pisa in un’aula attrezzata appositamente per ospitare tali eventi.
Una in particolare è stata per me più interessante delle altre. I partecipanti all’incontro virtuale
erano un numero importante di ricercatori di tutta Europa che frequentemente hanno la necessità di
confrontare lo stato dei loro studi. Per evitare di viaggiare spesso, risparmiando così tempo e
denaro, hanno scelto di comune accordo la video cooperazione a distanza per la maggior parte dei
loro meeting. Il sistema di video cooperazione che utilizzano ad ogni incontro è Access Grid. Al
meeting vi erano partecipanti da nove postazioni differenti, collegati alla Venue tramite il
Multicast-Unicast Bridge AGCS. Ciascun nodo era stato attrezzato a seconda delle esigenze e del
numero dei partecipanti alla videoconferenza dal particolare nodo. Vi erano infatti postazioni con
molte persone, dotate di videoproiettori, microfoni ambientali, casse acustiche e videocamere per
inquadrature da più punti di vista, come anche nodi con una singola persona collegata dal proprio
desktop con cuffie (per evitare l’eco), un microfono e una webcam. Il nodo ag1-pisa, dal quale ho
partecipato all’incontro, era configurato su un pc con sistema operativo Windows xp con
AccessGrid 3.2 beta 1 più un secondo pc per la gestione di una matrice audio Nexia. Prima
dell’inizio della conferenza vera e propria è stata dedicata una mezz’ora al troubleshooting.
Trattandosi infatti non di un meeting face-to-face, bensì di una sessione con molti partecipanti, i
problemi che avrebbero potuto presentarsi sono da moltiplicarsi per l’elevato numero di nodi.
Problemi non necessariamente di natura tecnica ma anche semplicemente di logistica, come ho
potuto notare. Ad esempio un nodo si era connesso ad una Venue sbagliata, non trovando così
nessuno degli altri partecipanti. Contattato telefonicamente ha semplicemente corretto l’indirizzo
della Venue alla quale collegarsi. Un altro ancora, invece di utilizzare la codifica audio consigliata
(‘linear 16’), ne utilizzava un’altra con l’effetto di introdurre disturbo all’apertura del suo
collegamento audio. Grazie alla chat di testo presente nella Venue, che utilizza il protocollo jabber,
è possibile scambiarsi consigli per risolvere questi inconvenienti. La qualità della conferenza è stata
buona, anche grazie ai corretti settaggi operati in fase di troubleshooting. Ci sono state poche
interruzioni dei flussi video, che ritengo siano ‘fisiologiche’, e soltanto da un sito arrivava un audio
con un po’ di underwater effect molto probabilmente dovuto ad un hardware di qualità non troppo
elevata.
Le altre videoconferenze alle quali ho partecipato non utilizzavano Access Grid ma altri sistemi di
videoconferenza tradizionali H.323, come ad esempio Vconf (il client era il software Polycom), e
mi hanno dato la possibilità di poter fare un primo confronto diretto con altre tecnologie in uso.
Dopo questo primo periodo di studio nel quale ho approfondito il funzionamento del software dal
punto di vista dell’utilizzatore, trovando soluzione ad alcuni problemi incontrati, gli sviluppi futuri
dell’attività riguarderanno i seguenti temi:

Realizzazione e configurazione di un server Access Grid, se possibile su più piattaforme;

L’aspetto della confidenzialità per capire come poter realizzare video cooperazioni
impedendo l’accesso alla Venue ad utenti non autorizzati;

Lo studio dettagliato delle possibilità realizzative di un nodo Access Grid, prendendo in
considerazione l’hardware necessario alla realizzazione di sale di medie e grandi
dimensioni;

L’approfondimento di quello che è l’obiettivo di Access Grid: permettere la costruzione di
ambienti cooperativi distribuiti;

Un confronto con altri sistemi di cooperazione a distanza per comprenderne meglio pregi e
difetti.
Come fatto fino ad ora, ho intenzione di sfruttare le conoscenze acquisite per la stesura di howto
sulle parti più complesse di funzionamento del software e di istruzioni aggiornate in italiano. Inoltre
sarò a disposizione per fornire supporto tecnico a quelle persone o enti, facenti parte della comunità
GARR, che vorranno utilizzare Access Grid.