64
Roma, 22 Gennaio 2005 Roma, 22 Gennaio 2005 La settimana delle Libertà digitali @ LinuxClub La settimana delle Libertà digitali @ LinuxClub OpenCDN: una architettura espandibile OpenCDN: una architettura espandibile per Home Netcasting per Home Netcasting Alessandro Falaschi Alessandro Falaschi ... ovvero: come predicare a milioni di persone ... ovvero: come predicare a milioni di persone dalla cucina di casa propria dalla cucina di casa propria

ovvero: come predicare a milioni di persone dalla cucina ... · Interfaccia Web Darwin Streaming Server RICHIESTA HTTP GET Darwin Adaptation Layer FILE DI CONFIGURAZIONE DEI RELAY

  • Upload
    lamnhan

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

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 Client­ServerArchitettura Client­ServerUn 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 Multi­Hop risultanteTopologia Multi­Hop 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 Web­Cache, attuata mediante gerarchia di ProxyEvoluzione delle Web­Cache, 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 (Darwin­QT, Real o WM) un dispositivo (Darwin­QT, 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 XML­RPCXML­RPC

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

HTTPXML­RPC

XML­RPC

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  ri­e  solo  l'ultima  ha  capacità  di  Relay,  ma  dopo  un  mese  occorre  ri­scaricare 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 On­Demand, ne Se usato per clip On­Demand, 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 XML­RPCXML­RPC

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 XML­RPCInterfaccia XML­RPC

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 XML­RPC Implementa i metodi XML­RPC 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 XML­RPCchiamate XML­RPC

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 XML­RPCXML­RPC 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

XML­RPC 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 re­inviare­invia 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

XML­RPC 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 ri­registrazioni di tanto in tanto, in occasione delle ri­registrazioni

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...