Università degli Studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria delle Telecomunicazioni Dipartimento di Scienza e Tecnica dell'Informazione e della Comunicazione Favorire l'apporto di contenuti al progetto OpenCDN: sviluppo di un kit per le Origin basato su VLC e configurabile attraverso una web-based GUI Relatore: Candidato: Prof. Alessandro Falaschi Leonardo Cintio Matricola N Anno Accademico 2005/2006
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Lo streaming - Che cos'è ? Una possibile modalità per trasmettere contenuti multimediali su web Primi esperimenti in ambito accademico alla fine degli anni settanta Inizio diffusione negli anni novanta - CPU e componenti hardware performanti - Diffusione banda larga - Di che cosa ha bisogno per poter funzionare ? Architettura di rete Protocolli Applicazioni
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Architettura di rete (1/2) - Struttura di tipo client-server Presenta evidenti limiti di scalabilità Saturazione della banda disponibile nel primo miglio al crescere del numero di richieste da soddisfare contemporaneamente - Struttura di tipo multicast Non costituisce una soluzione valida al di fuori di uno stesso Sistema Autonomo Necessiterebbe di estendere a tutti i router coinvolti tale modalità di indirizzamento
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Architettura di rete (2/2) - Content Delivery Network (CDN) Un insieme di computer collegati attraverso internet che collaborano per la distribuzione di contenuti Repliche di ogni contenuto vengono mantenute sui diversi surrogati Necessità di informazioni dinamiche sullo stato della rete - Elementi costitutivi Content Delivery Infrastructure: insieme dei surrogati che rendono disponibili i contenuti Request-Routing Infrastructure: procedure che guidano il client verso il contenuto richiesto Distribution Infrastructure: muove i contenuti verso i vari surrogati
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio OpenCDN (1/2) - Che cos'è ? Un modello open source di Content Delivery Network Realizza un albero di distribuzione attraverso il quale il contenuto si propaga dalla sorgente verso il client - Entità RRDM (Request Routing & Distribution Manager): - unità di controllo centralizzata - coordina la distribuzione dei contenuti - gestisce le informazioni dinamiche sullo stato delle altre entità Node: - agiscono da relay - si distinguono in First Hop, Transit e Last Hop Origin: - fornitori di contenuti
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio OpenCDN (2/2) - Open source ? Il codice è disponibile su un repository CVS ospitato da - Applicazioni necessarie al funzionamento Origin e Node prevedono l'impiego di streaming server per la propagazione di un contenuto verso il client Attualmente gli streaming server supportati sono: - Darwin Streaming Server di Apple - Helix Universal Streaming Server di Real - Protocolli utilizzati Gli streaming server si basano su un set di protocolli specifici: - Real Time Streaming Protocol (RTSP) - Session Description Protocol (SDP) - Real-time Transport Protocol (RTP) - RTP Control Protocol (RTCP)
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Obiettivi 1 - Valutazione di VideoLAN come streaming server ed encoder Realizzazione della WebTV 2 – Favorire l'apporto di contenuti al progetto OpenCDN Realizzazione di un Content Provider Kit che estenda le funzionalità dell'Origin - prevedendo l'impiego di VideoLAN - fornendo un'interfaccia grafica di configurazione accessibile via web
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio VideoLAN (1/2) - Che cos'è ? Un software che offre funzionalità di: - streaming server - encoder - lettore multimediale
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio VideoLAN (2/2) - Perché è stato scelto ? Open source Disponibile per i più diffusi sistemi operativi Supporto per lo streaming di formati non proprietari - Modalità di impiego Graphic User Interface (GUI) Linea di comando - Utilizzata nel progetto WebTV Interfaccia telnet - Utilizzata per la realizzazione del Content Provider Kit
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il progetto WebTV (1/2) - Che cos'è ? WebTV consente la trasmissione in streaming di canali televisivi Basato su VideoLAN Ospitato su una delle macchine del Laboratorio Telematico - Funzionamento WebTV si compone di: - Una pagina web - Uno script CGI realizzato in Perl Sfrutta il server web Apache per garantire l'interazione tra i due elementi La sorgente di ingresso è una scheda di acquisizione tv VideoLAN è utilizzato sia per la transcodifica dell'ingresso che per la successiva trasmissione
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il progetto WebTV (2/2) - Esempio di richiesta da parte di un client WebTV.pl VideoLAN Invocazione CGI Sessione RTSP/RTP Client Preparazione shell script Preparazione shell script Pagina web del servizio Pagina web del servizio
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (1/11) - Obiettivo Semplificare configurazione e gestione dell'Origin OpenCDN - Limiti dell'entità di Origin Intervento diretto sui file di configurazione - gestione dell'entità - gestione dei contenuti - gestione dell'encoder Necessità di un server web Streaming server supportati - Darwin Streaming Server - Helix Universal Streaming Server - Soluzione Realizzazione del Content Provider Kit
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (2/11) - Estende le funzionalità dell'Origin Utilizzo di VideoLAN con interfaccia telnet - encoder - streaming server Web-based GUI - gestione dell'Origin - gestione dei contenuti - dialogo con VideoLAN -Fasi realizzative Test di compatibilità VideoLAN/Darwin Realizzazione del server web VLCadm Integrazione di VLCadm con l'entità di Origin
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (3/11) 1) Test di compatibilità VideoLAN/Darwin La maggior parte dei Nodi OpenCDN è basata su Darwin Verifica dalle capacità di Darwin come relay avendo per sorgente lo stream generato da VideoLAN - Riga di comando - Interfaccia telnet - Sniffing della sessione RTSP VideoLANDarwin
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (4/11) 1) Test di compatibilità VideoLAN/Darwin Risultati: - La sessione RTSP non si conclude con successo
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (5/11) 1) Test di compatibilità VideoLAN/Darwin Risultati: - Il problema è la diversa sintassi impiegata nella descrizione SDP
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (6/11) 1) Test di compatibilità VideoLAN/Darwin Soluzione: - Modifica al codice sorgente di VideoLAN - Adeguamento alla sintassi utilizzata da Darwin L'ultima versione stabile rilasciata (vlc-0.8.5)utilizza la patch proposta
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (7/11) 2) Realizzazione del server web VLCadm Funzionalità previste - Integrazione con l'interfaccia telnet di VideoLAN - Gestione trasparente della transcodifica - Interfaccia grafica di configurazione Descrizione - Scritto in Perl - Basato sul package - Composto da un set di subroutine - Utilizza un proprio file di configurazione: VLCconfig.pm
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (8/11) 2) Realizzazione del server web VLCadm Il file di configurazione VLCconfig.pm - Prima innovazione al progetto OpenCDN - Package Perl - Variabili per l'utilizzo di VideoLAN con interfaccia telnet - Completa le informazioni sui contenuti memorizzate in OriginConfig.pm
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (9/11) 2) Realizzazione del server web VLCadm Il package VLCadm.pm - Costituisce il server web vero e proprio - Le subroutine che lo compongono possono suddividersi in 4 gruppi current_settings general_settings VLC_settings origin_settings origin_contents edit current_settings general_settings VLC_settings origin_settings origin_contents edit save_config save_content del_content save_config save_content del_content prereq postreq prereq postreq restart_origin
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (10/11) 2) Realizzazione del server web VLCadm Schema delle subroutine current_settings general_settings VLC_settings origin_settings general_settings VLC_settings origin_settings origin_contents prereq postreq prereq postreq edit save_content del_content restart_origin save_config RRDM VideoLAN
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Il Content Provider Kit (11/11) 3) Integrazione di VLCadm con l'Origin Modifiche al codice sorgente - Esecuzione di VLCadm come processo “figlio” dell'Origin
Favorire l'apporto di contenuti al progetto OpenCDN: Scenario sviluppo di un kit per i fornitori di contenuti basato su VLCObiettivi e configurabile attraverso una web-based GUI Realizzazione Conclusioni Leonardo Cintio Conclusioni - WebTV Ampliare il numero di codec supportati - Codec non proprietari: Theora e Vorbis - Streaming HTTP - Content Provider Kit E' stato reso disponibile sul repository CVS del progetto OpenCDN ospitato da Estendere l'interfaccia di configurazione alle altre entità OpenCDN