ovvero: come predicare a milioni di persone dalla cucina ... · Interfaccia Web Darwin Streaming...
Transcript of ovvero: come predicare a milioni di persone dalla cucina ... · Interfaccia Web Darwin Streaming...
Roma, 22 Gennaio 2005Roma, 22 Gennaio 2005
La settimana delle Libertà digitali @ LinuxClubLa settimana delle Libertà digitali @ LinuxClub
OpenCDN: una architettura espandibileOpenCDN: una architettura espandibile
per Home Netcastingper Home Netcasting
Alessandro FalaschiAlessandro Falaschi
... ovvero: come predicare a milioni di persone... ovvero: come predicare a milioni di persone
dalla cucina di casa propriadalla cucina di casa propria
La riappropriazione del broadcast come meta strategicaLa riappropriazione del broadcast come meta strategica
La rete annulla l'esigenza La rete annulla l'esigenza della della intermediazioneintermediazione nei nei mediamedia
L'intermediazione allontana produttore L'intermediazione allontana produttore e consumatore, aumenta i costi, e e consumatore, aumenta i costi, e diviene lei merce di scambiodiviene lei merce di scambio
Nel mercato televisivo la merce è la nostra attenzione, venduta agli Nel mercato televisivo la merce è la nostra attenzione, venduta agli inserzionisti pubblicitariinserzionisti pubblicitari
L'attitudine umana L'attitudine umana all'emulazione, fa della TV all'emulazione, fa della TV l'eroinal'eroina dei popoli dei popoli
Per vendere la nostra attenzione ci Per vendere la nostra attenzione ci tengono lì incollati, deprivandoci del tengono lì incollati, deprivandoci del diritto di espressione, impedendo la diritto di espressione, impedendo la circolazione delle opinionicircolazione delle opinioni
Il Il consumatoreconsumatore è il è il nuovo proletarionuovo proletario, e la sua azione di , e la sua azione di resistenzaresistenza è: è:
Consumo criticoConsumo critico
BoicottaggioBoicottaggio
Uso di Software Libero e rifiuto di ciò che lo ignoraUso di Software Libero e rifiuto di ciò che lo ignora
Inversione della valenza pubblicitaria: non li comperate!Inversione della valenza pubblicitaria: non li comperate!
Dove va la società dell'informazione ?Dove va la società dell'informazione ?
Mentre vogliono venderci videofonini come se Mentre vogliono venderci videofonini come se non aspettassimo altro, grazie alla rete esistono non aspettassimo altro, grazie alla rete esistono da tempo migliori strumenti di comunicazione, da tempo migliori strumenti di comunicazione, come messenger e videoconferenzacome messenger e videoconferenza
Tra qualche anno, ognuno a casa propria, sarà Tra qualche anno, ognuno a casa propria, sarà normale incontrarsi con gli amici in una normale incontrarsi con gli amici in una videoconferenza di gruppo, dopo averli notati videoconferenza di gruppo, dopo averli notati sul messengersul messenger
E se mandiamo la videoconferenza in E se mandiamo la videoconferenza in streaming, cosa c'è di diverso rispetto ad streaming, cosa c'è di diverso rispetto ad un talk show televisivo, con invitati via un talk show televisivo, con invitati via satellite ?satellite ?
Problema: il Live Streaming non è Problema: il Live Streaming non è ScalabileScalabile
Architettura ClientServerArchitettura ClientServerUn elevato numero di Client accede al medesimo Un elevato numero di Client accede al medesimo contenutocontenutoSi incorre presto nell'esaurimento della CPU e Si incorre presto nell'esaurimento della CPU e della banda in uscita, od anche di quella di ultimo della banda in uscita, od anche di quella di ultimo migliomiglio
Soluzione MulticastSoluzione MulticastNon è detto che i router periferici lo Non è detto che i router periferici lo supportino e/o lo abilitinosupportino e/o lo abilitinoGli ISP non fanno peering multicastGli ISP non fanno peering multicastSussiste il problema di assegnazione Sussiste il problema di assegnazione degli indirizzi, che ostacola il peeringdegli indirizzi, che ostacola il peering
ROUTER MULTICAST
Internet
LAN
Soluzione: Application Level MulticastSoluzione: Application Level Multicast
Si adottano agenti Si adottano agenti bifrontebifronte, contemporaneamente , contemporaneamente Client e Server, con funzioni diClient e Server, con funzioni di
Una scelta appropriata dell'Una scelta appropriata dell'albero di albero di distribuzionedistribuzione tra Relay ottimizza l'impegno delle tra Relay ottimizza l'impegno delle risorse di rete ed il carico della sorgenterisorse di rete ed il carico della sorgente
RelayRelay
RelayRelay
RelayRelay
ClientClientClientClient
RelayRelay (ponte) ritrasmettendo quanto (ponte) ritrasmettendo quanto ricevonoricevonoSplittingSplitting (suddivisione) replicando il flusso (suddivisione) replicando il flusso multimediale per tutti i client a vallemultimediale per tutti i client a valle
Problemino: (ONE)Problemino: (ONE) non è pensabile non è pensabile stabilire una distribuzione stabilire una distribuzione ad hocad hoc per ogni per ogni nuovo evento !nuovo evento !
Topologia MultiHop risultanteTopologia MultiHop risultante
FirstHopFirstHop
ViewerViewer
ViewerViewer
GlobalGlobalTransitTransit RegionalRegional
TransitTransit
RegionalRegionalLastHopLastHop
LastHopLastHop
LastHopLastHop
ViewerViewerViewerViewer
ViewerViewerViewerViewer
ViewerViewer
OriginOrigin
InternetInternet
LAN-ALAN-A
LAN-DLAN-D
LAN-BLAN-B
LAN-CLAN-C
PrimoPrimoMiglioMiglio
UltimoUltimoMiglioMiglio
UltimoUltimoMiglioMiglio
Content Delivery NetworkContent Delivery Network
Evoluzione delle WebCache, attuata mediante gerarchia di ProxyEvoluzione delle WebCache, attuata mediante gerarchia di Proxy
SCALE:SCALE: possono essere raggiunti molti più clients possono essere raggiunti molti più clientsREACH:REACH: i client prelevano i contenuti a partire da surrogati loro i client prelevano i contenuti a partire da surrogati loro vicinivicini
Valore Aggiunto: Valore Aggiunto: SCALESCALE andand REACHREACHOra il client è Ora il client è IGNAROIGNARO del proxy del proxy
Delivery:Delivery: la consegna dei contenuti tra Relay e verso i Clients, la consegna dei contenuti tra Relay e verso i Clients, la tecnologia del Relayla tecnologia del RelayDistribution:Distribution: lo sviluppo della topologia della rete di Relay lo sviluppo della topologia della rete di Relay
Componenti del servizio Componenti del servizio CDN:CDN:
Request Routing:Request Routing: come la richiesta di un client è instradata come la richiesta di un client è instradata verso il surrogato miglioreverso il surrogato miglioreAccounting:Accounting: come tariffare il servizio, raccogliere i Logs come tariffare il servizio, raccogliere i Logs
ProxyProxy
SurrogatoSurrogato
Necessità di una Infrastruttura ComuneNecessità di una Infrastruttura Comune
Le diverse tecnologie di streaming (Le diverse tecnologie di streaming (WMWM, , QTQT, , RealReal) sono ) sono spesso spesso incompatibiliincompatibili dal punto di vista dal punto di vista
Esiste il rischio di incorporare la Esiste il rischio di incorporare la tecnologiatecnologia nell' nell'architetturaarchitettura, , favorendo la diffusione della tecnologia dominante, a favorendo la diffusione della tecnologia dominante, a discapito di tutte le altrediscapito di tutte le altre
dei dei codeccodec (WM, MPEG, QT, REAL) (WM, MPEG, QT, REAL)
del del controllocontrollo (RTSP, MMS) (RTSP, MMS)
del del trasportotrasporto (RTP, RDT) (RTP, RDT)
Open Content Delivery Network – OpenCDNOpen Content Delivery Network – OpenCDN
Nata nell'ambito della Task Force Nata nell'ambito della Task Force NETCASTNETCAST di TERENA, per lo di TERENA, per lo sviluppo di un canale di Live Streaming Accademicosviluppo di un canale di Live Streaming Accademico
Realizza il piano di controllo della Realizza il piano di controllo della Distribuzione Distribuzione in modo indipendente in modo indipendente dalla tecnologia di Streamingdalla tecnologia di Streaming
Si basa sulla esistenza di tre entità:Si basa sulla esistenza di tre entità:
RRDMRRDM – controllo di – controllo di RRequest equest RRouting & outing & DD istribution istribution MManagementanagement
First Hop Relay First Hop Relay radice della distribuzioneradice della distribuzioneNodoNodo di streaming che a sua volta può essere un di streaming che a sua volta può essere un
Transit RelayTransit Relay serve altri Nodiserve altri Nodi
Portale di Annuncio Portale di Annuncio – dove si rivolgono i viewers– dove si rivolgono i viewers
OriginOrigin – conferiscono i contenuti – conferiscono i contenuti
Last Hop Relay Last Hop Relay serve direttamente i viewersserve direttamente i viewers
Architettura del Nodo di OpenCDNArchitettura del Nodo di OpenCDN
OpenCDN OpenCDN INGLOBA INGLOBA un dispositivo (DarwinQT, Real o WM) un dispositivo (DarwinQT, Real o WM) di Streaming in un di Streaming in un piano di controllopiano di controllo che ne permette la che ne permette la configurazione remotaconfigurazione remota
I Nodi si contattano l'uno con l'altro chiedendo di realizzare un I Nodi si contattano l'uno con l'altro chiedendo di realizzare un Relay Relay PULLPULL – ossia il ricevente richiede i contenuti del chiamante – ossia il ricevente richiede i contenuti del chiamante
Uno Uno STRATO DI ADATTAMENTOSTRATO DI ADATTAMENTO interagisce con il interagisce con il dispositivo, ed offre una dispositivo, ed offre una APIAPI indipendente dalla tecnologia indipendente dalla tecnologia
Uno Uno STRATO DI CONTROLLOSTRATO DI CONTROLLO interagisce con RRDM e con interagisce con RRDM e con gli altri nodi, mediante messaggi gli altri nodi, mediante messaggi XMLRPCXMLRPC
I parametri delle chiamate remote sono espressi in I parametri delle chiamate remote sono espressi in XMLXML, , trasportati trasportati nel bodynel body di messaggi di messaggi HTTPHTTPEsistono librerie e moduli che realizzano la Esistono librerie e moduli che realizzano la serializzazioneserializzazione XML XML dei parametri di chiamata per i linguaggi più diffusidei parametri di chiamata per i linguaggi più diffusi
RemoteRemoteProcedureProcedureCallCall
PORTALEPORTALE RRDMRRDM
NODONODO
NODONODO
Apple Darwin SSApple Darwin SS
NODONODO
Real Helix USReal Helix USControl LayerControl Layer
Control LayerControl LayerControl LayerControl Layer
Adaptation LayerAdaptation LayerAdaptation LayerAdaptation Layer
Adaptation LayerAdaptation LayerMicrofott WMSMicrofott WMS{
Architettura del Nodo di OpenCDNArchitettura del Nodo di OpenCDN
Consentono l'uso Consentono l'uso congiunto di differenti congiunto di differenti
tecnologie di Streamingtecnologie di Streaming
CDN Control LayerCDN Control LayerAdaptation LayerAdaptation Layer
La La SEPARAZIONESEPARAZIONE nei due strati nei due strati funzionalifunzionali
e la e la REALIZZAZIONEREALIZZAZIONE di un diverso di un diverso Adaptation Layer per i diversi dipositiviAdaptation Layer per i diversi dipositivi
ClientClient
OpenCDN NodeOpenCDN Node
HTTPXMLRPC
XMLRPC
Nodo Darwin Streaming ServerNodo Darwin Streaming Server
Apple rilascia il suo Streaming Server (Apple rilascia il suo Streaming Server (DSSDSS) come ) come OpenSourceOpenSource
RTPRTP per il trasporto e per il trasporto e RTSPRTSP per il controllo per il controllo
Può erogare in Può erogare in MULTICASTMULTICAST (es. LAN di destinazione) (es. LAN di destinazione)
E' gestito mediante una E' gestito mediante una INTERFACCIA WEBINTERFACCIA WEB
Encoding in formato Encoding in formato MPEG4MPEG4 con con MPEG4IPMPEG4IP
L'Interfaccia di gestione è consiste in un server WEB L'Interfaccia di gestione è consiste in un server WEB in in PERLPERL che invia comandi HTTP a DSSche invia comandi HTTP a DSS
Darwin Streaming ServerDarwin Streaming Server
RICHIESTA HTTP GET
Interfaccia Web di AmministrazioneInterfaccia Web di Amministrazione
FILE DI CONFIGURAZIONE DEI RELAY
I I comandi sono stati analizzati con locomandi sono stati analizzati con lo sniffer sniffer ETHEREALETHEREALIl controllo dei relay attivi si basa su un Il controllo dei relay attivi si basa su un FILEFILE XMLXML generato dal Perl e letto dal Server generato dal Perl e letto dal Server
Controlla Darwin modificando il Controlla Darwin modificando il FILE XMLFILE XML e generando richieste e generando richieste HTTP GET HTTP GET è realizzato in è realizzato in PERLPERL ed offre una ed offre una APIAPI che implementa le che implementa le primitive sottostantiprimitive sottostanti
Do_RelayDo_RelayNo_RelayNo_Relay
Query_BandQuery_BandServer_StatusServer_StatusClient_StatsClient_StatsRelay_StatsRelay_Stats
}
}}
GESTIONE DEI MEDIAGESTIONE DEI MEDIA
CONFIGURAZIONE RELAYCONFIGURAZIONE RELAY
STATISTICHE D'USOSTATISTICHE D'USO
L'Adaptation Layer per DSS L'Adaptation Layer per DSS EMULAEMULA il funzionamento della sua il funzionamento della sua Interfaccia WebInterfaccia Web
Darwin Streaming ServerDarwin Streaming Server
RICHIESTA HTTP GET
Darwin Adaptation LayerDarwin Adaptation Layer
FILE DI CONFIGURAZIONE DEI RELAY
API
Nodo Strato di Adattamento per DSSNodo Strato di Adattamento per DSS
Mk_MountMk_Mount
NewNewTermTerm } Costruttore/CleanUpCostruttore/CleanUp
Application Programming InterfaceApplication Programming Interface
Nodo Helix Streaming ServerNodo Helix Streaming ServerReal rilascia tre versioni del suo Universal Server (Helix)Real rilascia tre versioni del suo Universal Server (Helix)
e solo l'ultima ha capacità di Relay, ma dopo un mese occorre rie solo l'ultima ha capacità di Relay, ma dopo un mese occorre riscaricare la chiave di licenza di provascaricare la chiave di licenza di prova
Helix Universal Server EvaluationHelix Universal Server Evaluation
Helix Universal ServerHelix Universal Server
Immisione parametridi controllo
Browser WebBrowser Web
Helix Server BasicHelix Server BasicOpenSource Helix DNA ServerOpenSource Helix DNA Server
Visualizza parametrioperativi
Le primitive di controllo dello streaming sono fuori standard, ma i relay Le primitive di controllo dello streaming sono fuori standard, ma i relay divengono attivi con latenza minoredivengono attivi con latenza minore
Se usato per clip OnDemand, ne Se usato per clip OnDemand, ne effettua il cachingeffettua il caching
Lo stesso demone risponde in HTTP, Lo stesso demone risponde in HTTP, ed offre una interfaccia WEB di ed offre una interfaccia WEB di configurazioneconfigurazione
L'Adaptation Layer per Helix L'Adaptation Layer per Helix EMULAEMULA un Browser web ed un Browser web ed impartisce “alla cieca” i comandi per il suo controlloimpartisce “alla cieca” i comandi per il suo controllo
Helix Universal ServerHelix Universal Server
Helix Adaptation LayerHelix Adaptation LayerAPI
Nodo Strato di Adattamento per HelixNodo Strato di Adattamento per Helix
Immisione comandidi controllo
Si utilizza il modulo Perl Si utilizza il modulo Perl LWP::UserAgentLWP::UserAgent
Offre la medesima Offre la medesima APIAPI realizzata per Darwin realizzata per Darwin
Nodo Control LayerNodo Control Layer
Anch'esso realizzato in Anch'esso realizzato in PERLPERL
OpenCDN OpenCDN Control LayerControl Layer
StatusNode Query
No Relay
Do Relay
RRDM
DO RELAYDO RELAYNO RELAYNO RELAY } GESTIONE DEL MEDIAGESTIONE DEL MEDIA
NODE QUERYNODE QUERYSTATUSSTATUS } STATISTICHE D'USOSTATISTICHE D'USO
<?xml version="1.0"?> <methodCall><methodName>NoRelay</methodName> <params> <param> <value> <struct> <member> <name>Program</name> <value> <string>rtsp://prova.mp4</string> </value> </member> </struct> </value> </param> </params> </methodCall>
Comunica con RRDM e con gli altri Comunica con RRDM e con gli altri nodi con chiamate nodi con chiamate XMLRPCXMLRPC
Mantiene Mantiene memoriamemoria dei propri nodi dei propri nodi DownStreamDownStreamImplementa i metodi seguenti, invocabili Implementa i metodi seguenti, invocabili dalle altre entità:dalle altre entità:
Usa la Usa la APIAPI dell'Adaptation Layer per dell'Adaptation Layer per controllare lo controllare lo SSSSGestisce la Gestisce la recursionerecursione dei Transit dei Transit
AI NODI
Struttura Complessiva di un Nodo DarwinStruttura Complessiva di un Nodo Darwin
Darwin Streaming ServerDarwin Streaming Server
RICHIESTA HTTP GET
OpenCDN Control LayerOpenCDN Control LayerStatus
Node Query
No Relay
Do Relay
Interfaccia XMLRPCInterfaccia XMLRPC
Interfaccia PERLInterfaccia PERL
Interfaccia HTTPInterfaccia HTTP
AdaptationAdaptationLayerLayer
Application Programming Interface
FILE DI CONFIGURAZIONEDEI RELAY
Sviluppo della distribuzioneSviluppo della distribuzione
Ogni nodo annuncia uno o più Ogni nodo annuncia uno o più FOOTPRINT,FOOTPRINT, che individuano che individuano l'insieme dei nodi che si intendono servirel'insieme dei nodi che si intendono servire
Un Footprint è rappresentato in alternativa da:Un Footprint è rappresentato in alternativa da:Un prefisso di rete IP (simile a una riga di routing table)Un prefisso di rete IP (simile a una riga di routing table)Un suffisso di Nome di Dominio (di prossima realizzazione)Un suffisso di Nome di Dominio (di prossima realizzazione)
Un Footprint può essere:Un Footprint può essere:DirettoDiretto > il nodo agisce come LAST HOP RELAY> il nodo agisce come LAST HOP RELAYIndirettoIndiretto > il nodo agisce come TRANSIT RELAY> il nodo agisce come TRANSIT RELAY
I Footprint sono I Footprint sono annidatiannidati, permettendo di individuare la , permettendo di individuare la topologia della distribuzionetopologia della distribuzione
FootPrint e RoutingFootPrint e Routing
Esempi di FEsempi di Footprint:ootprint:
151.100.122.0/24 = i computer del mio Dipartimento151.100.122.0/24 = i computer del mio Dipartimento
0.0.0.0/20.0.0.0/2 64.0.0.0/2 = FootPrint globale di 2° ordine 64.0.0.0/2 = FootPrint globale di 2° ordine 128.0.0.0/2 128.0.0.0/2 192.0.0.0/2 192.0.0.0/2 .uniroma1.it = i computer del mio Ateneo.uniroma1.it = i computer del mio Ateneo
I Footprint permettono di svolgere funzioni di routing a livello applicativoI Footprint permettono di svolgere funzioni di routing a livello applicativo
Questo insieme può essere ordinato Questo insieme può essere ordinato dal meno al più specifico,dal meno al più specifico, individuando così l'instradamento individuando così l'instradamento dal centro alla periferiadal centro alla periferia
Noto l'indirizzo di un viewer, si individuano tutti i nodi che hanno Noto l'indirizzo di un viewer, si individuano tutti i nodi che hanno annunciato un footprint che lo racchiudeannunciato un footprint che lo racchiude
FootprintsFootprints
TransitTransit
FirstHopFirstHop
Last HopLast HopLast HopLast Hop
ClientClient
ClientClient
ClientClientClientClient
OriginOrigin
FOOTPRINT INDIRETTOFOOTPRINT INDIRETTO
FootprintsFootprints
TransitTransit
FirstHopFirstHop
Last HopLast HopLast HopLast Hop
ClientClient
ClientClient
ClientClientClientClient
SorgenteSorgente
FOOTPRINT DIRETTOFOOTPRINT DIRETTO
Request Routing and Distribution ManagmentRequest Routing and Distribution Managment
Memorizza i Memorizza i Relay attiviRelay attivi per i diversi Programmi, ed i per i diversi Programmi, ed i DownStreamDownStream diretti a cui propagare il diretti a cui propagare il TearDownTearDown
Individua i nodi coinvolti per l'indirizzo del viewer richiedente, e ne Individua i nodi coinvolti per l'indirizzo del viewer richiedente, e ne stabilisce l'ordinamento in base alla stabilisce l'ordinamento in base alla specificitàspecificità dei footprint dei footprint
Memorizza le Memorizza le FootprintFootprint annunciate dai Nodi annunciate dai Nodi
Implementa i metodi XMLRPC Implementa i metodi XMLRPC usati per offrire il servizio al usati per offrire il servizio al portaleportale
REGISTERREGISTER
SETUPSETUP } GESTIONE OPENCDNGESTIONE OPENCDN
STATUSSTATUSIPCIPC } ACCESSO AI DATIACCESSO AI DATITEARDOWNTEARDOWN
Realizzato anch'esso in Realizzato anch'esso in PERLPERL
PUBLISHPUBLISH
Un Un secondo processosecondo processo non forkato mantiene i dati delle registrazioni, non forkato mantiene i dati delle registrazioni, dei Relay attivi e dei Downstreamdei Relay attivi e dei Downstream
L'RRDM usa il modulo L'RRDM usa il modulo Net::ServerNet::Server di Perl, e risponde a più richieste di Perl, e risponde a più richieste di di SetUp SetUp contemporaneecontemporanee
La La comunicazione interprocessocomunicazione interprocesso è attuata a sua volta mediante è attuata a sua volta mediante chiamate XMLRPCchiamate XMLRPC
I contenuti delle I contenuti delle strutture dati sono strutture dati sono accessibili accessibili dall'esternodall'esterno
Esecuzione concorrenteEsecuzione concorrente
Chi desidera apportare contenuti, deve disporre a sua volta di Chi desidera apportare contenuti, deve disporre a sua volta di uno streaming server e di un encoderuno streaming server e di un encoder
Metadata registati dalla OriginMetadata registati dalla Origin
Deve quindi mandare in esecuzione un processo che Deve quindi mandare in esecuzione un processo che periodicamente comunica all'RRDM i periodicamente comunica all'RRDM i metadatametadata che descrivono i che descrivono i propri contenuti, comepropri contenuti, come
Indirizzo delle SSIndirizzo delle SSNote su chi lo mette in lineaNote su chi lo mette in lineaDescrizione sommariaDescrizione sommaria
Banda necessariaBanda necessariaFormato video – dimensione e frame rateFormato video – dimensione e frame rateFormato audioFormato audio
e di scegliere tra i contenuti e di scegliere tra i contenuti annunciati dalle Originannunciati dalle Origin
Permette di invocare i metodi Permette di invocare i metodi di di SETUPSETUP o di o di TEARDOWNTEARDOWN
restituisce l'indirizzo a cui rivolgersi per prelevare il contenuto richiestorestituisce l'indirizzo a cui rivolgersi per prelevare il contenuto richiesto
Pagina di TestPagina di Test
Fasi OperativeFasi Operative
L'RRDM conosce il Footprint di tutti i Nodi, e può determinare L'RRDM conosce il Footprint di tutti i Nodi, e può determinare il più il più idoneoidoneo a servire un determinato client, e quali nodi di transito a servire un determinato client, e quali nodi di transito coinvolgerecoinvolgere
Quando un client fa richiesta di un contenuto presso il Portale, Quando un client fa richiesta di un contenuto presso il Portale, questo questo invoca il servizioinvoca il servizio OpenCDN all'RRDM OpenCDN all'RRDM
Quando un Quando un NodoNodo si attiva, comunica le sue Footprint all' si attiva, comunica le sue Footprint all'RRDMRRDM
Al termine della configurazione dei Nodi interessati, l'RRDM Al termine della configurazione dei Nodi interessati, l'RRDM comunica l'esitocomunica l'esito al Portale, e questo al Client al Portale, e questo al Client
Se un nuovo Client giace in una Footprint Se un nuovo Client giace in una Footprint già servitagià servita, l'RRDM non , l'RRDM non esegue le fasi di configurazione remotaesegue le fasi di configurazione remota
Quando una Quando una OriginOrigin si attiva, pubblica presso l' si attiva, pubblica presso l'RRDMRRDM i metadata dei i metadata dei contenuti che offrecontenuti che offre
Fasi OperativeFasi Operative
REGISTRAZIONEREGISTRAZIONE
SETUPSETUP
TEARDOWNTEARDOWN
I I Nodi Nodi contattano l' contattano l'RRDMRRDM dichiarando: dichiarando:
Il Portale invia una richiesta di servizio all'RRDMIl Portale invia una richiesta di servizio all'RRDM
Al termine dell'evento trasmesso, il Portale richiede Al termine dell'evento trasmesso, il Portale richiede all'RRDM di all'RRDM di LIBERARE LE RISORSELIBERARE LE RISORSE
L'RRDM provvede alla L'RRDM provvede alla SODDISFAZIONE DELLA SODDISFAZIONE DELLA RICHIESTARICHIESTAI'RRDM comunica al Portale l'indirizzo del Last HopI'RRDM comunica al Portale l'indirizzo del Last Hop
FORMATO/PROTOCOLLOFORMATO/PROTOCOLLO gestiti gestiti FOOTPRINTSFOOTPRINTS serviti serviti
REGISTER
REGISTER RESP
Client Last Hop OriginPortal RRDM
HTTP GET
DO RELAY
Client Last Hop OriginPortal RRDM
SETUP
PLAYRTP
DO RELAY RESPSETUP RESP
HTTP RESPPLAY
RTP
NO RELAY
Client Last Hop OriginPortal RRDMTEARDOWN
NO RELAY RESPTEARDOWN RESP
PUBLISH
RESPONSE
Le Origin pubblicano i metadataLe Origin pubblicano i metadata
Web TVWeb TVPortalePortale
RRDMRRDM
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop RelayLast Hop RelayLast Hop Relay
ClientClient
Il Client visita il Portale e richiede lo streaming della web tvIl Client visita il Portale e richiede lo streaming della web tv
Richiesta di ServizioRichiesta di Servizio
Web TVWeb TVPortalePortale
RRDMRRDM
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop RelayLast Hop RelayLast Hop Relay
ClientClient
Il Portale inoltra la richiesta all'RRDMIl Portale inoltra la richiesta all'RRDM
Richiesta di ServizioRichiesta di Servizio
Web TVWeb TVPortalePortale
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop Relay
ClientClient
Last Hop RelayLast Hop Relay
L'RRDM contatta il Last Hop pertinente indicandogli la risorsa da ricevereL'RRDM contatta il Last Hop pertinente indicandogli la risorsa da ricevere
RRDMRRDM
Richiesta di ServizioRichiesta di Servizio
Web TVWeb TVPortalePortale
RRDMRRDM
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop RelayLast Hop RelayLast Hop Relay
ClientClient
Lo streaming raggiunge il surrogato Last HopLo streaming raggiunge il surrogato Last Hop
Richiesta di ServizioRichiesta di Servizio
PlayPlay
RTPRTP
Web TVWeb TVPortalePortale
RRDMRRDM
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop RelayLast Hop RelayLast Hop Relay
ClientClient
Il Last Hop conferma all'RRDM l'esito dell'operazioneIl Last Hop conferma all'RRDM l'esito dell'operazione
Richiesta di ServizioRichiesta di Servizio
Web TVWeb TVPortalePortale
RRDMRRDM
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop RelayLast Hop RelayLast Hop Relay
ClientClient
L'RRDM inoltra la risposta al PortaleL'RRDM inoltra la risposta al Portale
Richiesta di ServizioRichiesta di Servizio
Web TVWeb TVPortalePortale
RRDMRRDM
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop RelayLast Hop RelayLast Hop Relay
ClientClient
Il Portale comunica al Client l'indirizzo della risorsa presso il SurrogatoIl Portale comunica al Client l'indirizzo della risorsa presso il Surrogato
Richiesta di ServizioRichiesta di Servizio
Web TVWeb TVPortalePortale
RRDMRRDM
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop RelayLast Hop RelayLast Hop Relay
ClientClient
Lo streaming raggiunge il ClientLo streaming raggiunge il Client
Richiesta di ServizioRichiesta di Servizio
PlayPlay
Web TVWeb TVPortalePortale
RRDMRRDM
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop RelayLast Hop RelayLast Hop Relay
ClientClient
Il Portale inoltra la richiesta del Client all'RRDMIl Portale inoltra la richiesta del Client all'RRDM
Surrogato già attivoSurrogato già attivo
ClientClient
1
22
Web TVWeb TVPortalePortale
RRDMRRDM
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop RelayLast Hop RelayLast Hop Relay
ClientClient
L'RRDM risponde con l'indirizzo del Surrogato già attivoL'RRDM risponde con l'indirizzo del Surrogato già attivo
23
24
ClientClient
Surrogato già attivoSurrogato già attivo
Web TVWeb TVPortalePortale
RRDMRRDM
Last Hop RelayLast Hop Relay Last Hop RelayLast Hop RelayLast Hop RelayLast Hop Relay
ClientClient
Lo streaming raggiunge il secondo ClientLo streaming raggiunge il secondo Client
ClientClient
Surrogato già attivoSurrogato già attivo
PlayPlay
Recursione per i TRANSIT RELAYRecursione per i TRANSIT RELAY
L'RRDM dialoga con un solo nodo, il L'RRDM dialoga con un solo nodo, il FIRST HOPFIRST HOP, relativo alla , relativo alla Footprint meno specifica per il viewer da servireFootprint meno specifica per il viewer da servire
RRDMRRDM
First HopFirst Hop
Last HopLast Hop
Quando la recursione raggiunge il Quando la recursione raggiunge il LAST HOPLAST HOPl'esito risale lungo l'esito risale lungo il pathil path che si è creato che si è creatol'RRDM l'RRDM è notificatoè notificato di tutti i nuovi di tutti i nuovi surrogati attivisurrogati attivi
Il Il FirstHopFirstHop riceve un elenco di possibili riceve un elenco di possibili downstreamersdownstreamers, ed , ed assume per loro il ruolo che aveva l'RRDMassume per loro il ruolo che aveva l'RRDM
Può essere il Può essere il più specificopiù specifico Nodo già attivo Nodo già attivoRicorda il downstream prescelto per poter propagare Ricorda il downstream prescelto per poter propagare il il TearDown/NoRelayTearDown/NoRelay
Adattamento alle Condizioni di CaricoAdattamento alle Condizioni di Carico
Prima di contattare un Nodo, questo viene Prima di contattare un Nodo, questo viene sondatosondato inviando un inviando un treno di pacchetti treno di pacchetti UDPUDP (uno ogni 100 msec per 2 sec) (uno ogni 100 msec per 2 sec)
OpenCDN può realizzare un OpenCDN può realizzare un bilanciamento di caricobilanciamento di carico tra i Nodi, e tra i Nodi, e rispondere alle variazioni delle rispondere alle variazioni delle condizioni della rete condizioni della rete
Le chiamate Le chiamate XMLRPCXMLRPC viaggiano in viaggiano in TCPTCPSe un nodo è Se un nodo è DOWNDOWN, occorre attendere il , occorre attendere il timeout!timeout!
Più sondaggi sono svolti Più sondaggi sono svolti in paralleloin parallelo, ed i nodi , ed i nodi ordinatiordinati in base alla in base alla latenza, in modo da privilegiarelatenza, in modo da privilegiare
il il meno caricomeno caricoquello con quello con migliori condizionimigliori condizioni di rete di rete
UDP ProbeUDP Probe
Processo Figlioin ascolto
UDPProcesso Padre
in ascolto
TCP
XMLRPC Probe
Nodo CDNNodo CDN
Il nodo è in ascolto anche su di un Il nodo è in ascolto anche su di un socket UDPsocket UDP, che , che reinviareinvia al al mittente i pacchetti ricevutimittente i pacchetti ricevuti
L'invio e la ricezione degli L'invio e la ricezione degli UDP PROBEUDP PROBE è realizzata da un secondo è realizzata da un secondo processo figlioprocesso figlio, che comunica con il padre mediante un socket TCP , che comunica con il padre mediante un socket TCP interno al nodo (interno al nodo (figura seguentefigura seguente))
UDP Probe – 2UDP Probe – 2
Processo Figlioin ascolto
UDPProcesso Padre
in ascolto
TCPNodo CDNNodo CDN
XMLRPC Probe
Processo Padrein ascolto
TCP
Processo Figlio
UDP
TCPProcesso Figlio
UDP
TCPProcesso Figlio
UDP
TCP ......
Probe Probe Probe
Nodi CDN
Esito Probe
RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient Il Client effettua la richiestaIl Client effettua la richiesta
PortalePortale
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
Web TVWeb TVOriginOrigin
GetGet
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
Il Portale inoltra la richiesta all'RRDMIl Portale inoltra la richiesta all'RRDMClientClient
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
SetupSetupWeb TVWeb TVOriginOrigin
PortalePortale RRDMRRDM Web TVWeb TV
TransitTransit
Last HopLast HopLast HopLast Hop
L'Origin del contenuto richiesto sonda L'Origin del contenuto richiesto sonda i Nodi per conto di RRDMi Nodi per conto di RRDM
ClientClient
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
OriginOriginFindRootFindRoot
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
L'Origin rapporta sul FirstHop vincitoreL'Origin rapporta sul FirstHop vincitoreClientClient
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
Web TVWeb TVOriginOriginWinnerWinner
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient L'RRDM invia una DoRelay alL'RRDM invia una DoRelay alNodo vincitoreNodo vincitore
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
Web TVWeb TVOriginOrigin
DoRelayDoRelay
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient Lo streaming raggiunge il TransitLo streaming raggiunge il Transit
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
Web TVWeb TVOriginOrigin
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient Il Transit verifica lo stato dei candidatiIl Transit verifica lo stato dei candidati
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
Web TVWeb TVOriginOrigin
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient Il Transit invia una DoRelay alIl Transit invia una DoRelay alNodo che ha risposto per primoNodo che ha risposto per primo
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
Web TVWeb TVOriginOrigin
DoRelayDoRelay
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient Lo streaming raggiunge il Lo streaming raggiunge il Last Hop sceltoLast Hop scelto
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
Web TVWeb TVOriginOrigin
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient Le chiamate DoRelay vengono chiuseLe chiamate DoRelay vengono chiuseIl Portale risponde al ClientIl Portale risponde al Client
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
Web TVWeb TVOriginOrigin
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient Lo streaming raggiunge il ClientLo streaming raggiunge il Client
Topologia Gerarchica e AdattativaTopologia Gerarchica e Adattativa
TransitTransit
Web TVWeb TVOriginOrigin
Resilienza rispetto alle condizioni dinamicheResilienza rispetto alle condizioni dinamiche
Resistenza ai Resistenza ai rebootreboot dell'RRDM dell'RRDM
se l'RRDM viene fatto ripartire, se l'RRDM viene fatto ripartire, si perdono tutti i datisi perdono tutti i dati registrati registrati da Nodi ed Origin!da Nodi ed Origin!
Resistenza rispetto ai Resistenza rispetto ai crashcrash dei Nodi ed alle dei Nodi ed alle Network OutagesNetwork Outagesse un nodo con un Relay attivo va se un nodo con un Relay attivo va fuori lineafuori linea, i dati dell'RRDM , i dati dell'RRDM divengono divengono obsoletiobsoleti, ed i Viewer rischiano di essere diretti verso , ed i Viewer rischiano di essere diretti verso un un binario mortobinario morto
Prima di fornire al Viewer l'indirizzo di un Prima di fornire al Viewer l'indirizzo di un surrogato attivosurrogato attivo, , RRDM RRDM lo interrogalo interroga mediante probe UDP relativamente mediante probe UDP relativamente all'effettivo funzionamento del Relayall'effettivo funzionamento del Relay
presso Nodi ed Origin viene eseguito un diverso processo che presso Nodi ed Origin viene eseguito un diverso processo che periodicamenteperiodicamente rinnovarinnova le registrazioni le registrazioni
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient
Un client richiedeUn client richiedeun contenuto per un contenuto per il quale già esisteil quale già esisteun surrogato idoneoun surrogato idoneo
TransitTransit
Web TVWeb TVOriginOrigin
Relisienza rispetto a Nodi fallaciRelisienza rispetto a Nodi fallaci
ClientClient
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient
RRDM interrogaRRDM interrogail surrogatoil surrogatorispetto al suorispetto al suocorretto corretto funzionamentofunzionamento
TransitTransit
Web TVWeb TVOriginOrigin
ClientClient
Relisienza rispetto a Nodi fallaciRelisienza rispetto a Nodi fallaci
Woking ?Woking ?
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient
In presenza diIn presenza dirisposta negativarisposta negativasi provano i nodisi provano i nodialternativi oppurealternativi oppuresi riparte da zerosi riparte da zero
TransitTransit
Web TVWeb TVOriginOrigin
ClientClient
Relisienza rispetto a Nodi fallaciRelisienza rispetto a Nodi fallaci
FailureFailure
Woking ?Woking ?
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient
Il FirstHop èIl FirstHop ètuttora funzionantetuttora funzionantee viene delegato ae viene delegato aproseguire laproseguire ladistribuzionedistribuzione
TransitTransit
Web TVWeb TVOriginOrigin
ClientClient
Relisienza rispetto a Nodi fallaciRelisienza rispetto a Nodi fallaci
DoRelayDoRelay
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient
Un diverso LastHopUn diverso LastHopè pronto a ricevereè pronto a ricevereil contenutoil contenuto
TransitTransit
Web TVWeb TVOriginOrigin
ClientClient
Relisienza rispetto a Nodi fallaciRelisienza rispetto a Nodi fallaci
DoRelayDoRelay
DoRelayDoRelay
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient
Relisienza rispetto a Nodi fallaciRelisienza rispetto a Nodi fallaci
TransitTransit
Web TVWeb TVOriginOrigin
Le chiamate Le chiamate DoRelay vengonoDoRelay vengonochiuse ed il Portalechiuse ed il Portalerisponde alrisponde alClientClientClientClient
PortalePortale RRDMRRDM
TransitTransit
Last HopLast HopLast HopLast Hop
ClientClient
Relisienza rispetto a Nodi fallaciRelisienza rispetto a Nodi fallaci
TransitTransit
Web TVWeb TVOriginOrigin
Lo streaming Lo streaming raggiungeraggiungeil Clientil Client
ClientClient
Infrastruttura di autenticazioneInfrastruttura di autenticazione
Necessaria perchè la partecipazione ad OpenCDN è libera, Necessaria perchè la partecipazione ad OpenCDN è libera, spontanea e.... spontanea e.... incoraggiata!incoraggiata! In assenza di autenticazione, è facile In assenza di autenticazione, è facile per qualunque per qualunque follettofolletto immettere in rete entità immettere in rete entità fasullefasulle, ed inviare a , ed inviare a quelle buonequelle buone comandi fuorvianti! comandi fuorvianti!
Si basa sulla conoscenza, da parte di tutte le entità (portale, RRDM, Si basa sulla conoscenza, da parte di tutte le entità (portale, RRDM, Nodi, Origin) di un Nodi, Origin) di un segreto condiviso, segreto condiviso, utilizzato in fase di utilizzato in fase di registrazione per ricevere un registrazione per ricevere un tokentoken
Il Il tokentoken viene quindi allegato a tutti i comandi successivi, e viene quindi allegato a tutti i comandi successivi, e modificatomodificato di tanto in tanto, in occasione delle riregistrazioni di tanto in tanto, in occasione delle riregistrazioni
In presenza di comportamenti scorretti, viene modificata la In presenza di comportamenti scorretti, viene modificata la password, e tutte le entità a cui non è stata comunicata password, e tutte le entità a cui non è stata comunicata non possono non possono aggiornare il tokenaggiornare il token, e vengono estromesse, e vengono estromesse
Installazione e ConfigurazioneInstallazione e Configurazione
La distribuzione contiene un La distribuzione contiene un READMEREADME con le istruzioni di con le istruzioni di installazione e configurazioneinstallazione e configurazione
E' attivo su E' attivo su SourceForgeSourceForge un un server CVSserver CVS per lo sviluppo per lo sviluppo cooperativo ed il reperimento della versione correntecooperativo ed il reperimento della versione corrente
Circa ogni mese, sono rilasciate delle versioni aggiornateCirca ogni mese, sono rilasciate delle versioni aggiornate
Files di configurazione permettono di indicare il valore dei Files di configurazione permettono di indicare il valore dei parametri operativiparametri operativi delle entità delle entità
Presso Presso http://labtel.ing.uniroma1.it/opencdnhttp://labtel.ing.uniroma1.it/opencdn è attivo un RRDM è attivo un RRDM pubblico pressoil quale registrare le proprie entità e verificarne il pubblico pressoil quale registrare le proprie entità e verificarne il funzionamentofunzionamento
FuturoFuturo
Sviluppo dell'Adaptation Layer per altre piattaformeSviluppo dell'Adaptation Layer per altre piattaforme
Aggiunta di Nodi in giro per la reteAggiunta di Nodi in giro per la rete
Sviluppo delle features mancantiSviluppo delle features mancantiUso di thread anziché processi figliUso di thread anziché processi figliGenerazione del grafico della topologia risultanteGenerazione del grafico della topologia risultanteFootprint come suffissi di DominioFootprint come suffissi di DominioSviluppo di una interfaccia grafica di configurazioneSviluppo di una interfaccia grafica di configurazione
Attualmente presenti presso:Attualmente presenti presso:opencdn.uniroma1.itopencdn.uniroma1.itocdn.mirror.garr.itocdn.mirror.garr.itlaboratori TiLablaboratori TiLabtv.funet.fitv.funet.fi
Mi chiedono il supporto per windows media server: ma se lo scrivessero !Mi chiedono il supporto per windows media server: ma se lo scrivessero !
Coinvolgimento di soggetti produttori di contenutiCoinvolgimento di soggetti produttori di contenuti
Aging delle registrazioni e rimozione delle entità assentiAging delle registrazioni e rimozione delle entità assentiSviluppo di una modalità push per i relay di DarwinSviluppo di una modalità push per i relay di Darwin
Dibattiti culturali, eventi musicali, cDibattiti culturali, eventi musicali, centri socialientri sociali......
Laboratori di ricerca, ISP, carriers, Laboratori di ricerca, ISP, carriers, operatori telefonici...operatori telefonici...