IT202000017023A1 - Metodo per distribuire file attraverso una content delivery network basato anche su algoritmi di intelligenza artificiale, sistema telematico e server che consentono di implementarlo - Google Patents

Metodo per distribuire file attraverso una content delivery network basato anche su algoritmi di intelligenza artificiale, sistema telematico e server che consentono di implementarlo Download PDF

Info

Publication number
IT202000017023A1
IT202000017023A1 IT102020000017023A IT202000017023A IT202000017023A1 IT 202000017023 A1 IT202000017023 A1 IT 202000017023A1 IT 102020000017023 A IT102020000017023 A IT 102020000017023A IT 202000017023 A IT202000017023 A IT 202000017023A IT 202000017023 A1 IT202000017023 A1 IT 202000017023A1
Authority
IT
Italy
Prior art keywords
server
content
parent
pop
request
Prior art date
Application number
IT102020000017023A
Other languages
English (en)
Inventor
Giovanni Proscia
Sergio Ambrogio Bruno Carulli
Philippe Ange Michel Tripodi
Antonio Gregorio Corrado
Original Assignee
Mainstreaming S P A
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mainstreaming S P A filed Critical Mainstreaming S P A
Priority to IT102020000017023A priority Critical patent/IT202000017023A1/it
Priority to US17/371,633 priority patent/US11528536B2/en
Priority to EP21185377.5A priority patent/EP3940557B1/en
Priority to ES21185377T priority patent/ES2961983T3/es
Publication of IT202000017023A1 publication Critical patent/IT202000017023A1/it
Priority to US18/078,345 priority patent/US20230104788A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/485End-user interface for client configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23103Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23116Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving data replication, e.g. over plural servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

TITOLO
Metodo per distribuire file attraverso una Content Delivery Network basato anche su algoritmi di intelligenza artificiale, sistema telematico e server che consentono di implementarlo DESCRIZIONE CAMPO DELL?INVENZIONE
La presente invenzione riguarda un metodo per distribuire contenuti, in particolare file o stream, attraverso una CDN (= Content Delivery Network), nonch? un sistema telematico e server che consentono di implementarlo.
STATO DELLA TECNICA
La fruizione di contenuti, in particolare contenuti multimediali (ad esempio video), attraverso Internet ? in continuo aumento. In continuo aumento ? anche la dimensione in byte, o meglio in Gbyte, dei contenuti fruiti.
Le difficolt? per realizzare la diffusione di tali contenuti aumentano nel caso in cui il contenuto corrisponda a un evento "dal vivo", ossia il contenuto viene creato praticamente contemporaneamente a quando viene fruito.
In generale, difficolt? per realizzare la diffusione di tali contenuti sono dovute al fatto che Internet non era originalmente stata progettata per trasmettere dati sensibili al ritardo di propagazione. Ad esempio, quando una persona guarda film o un evento sportivo, desidera, o meglio necessita, che le immagini arrivino con un ritmo sostanzialmente uniforme; ? estremamente sgradevole che il video proceda a scatti. Fig. 1 mostra un server origine 100 collegato a una CDN 1000 per distribuire contenuti multimediali ad esempio sotto forma di file che detiene. In Fig. 1 si assume, per semplicit?, che il server origine 100 memorizzi al suo interno (interamente) un solo file F da distribuire, e che vi sia un PC (= Personal Computer) 200 di un solo utente che ? interessato a fruire del contenuto del file F.
Secondo una soluzione nota, la distribuzione del file F avviene tramite la CDN 1000 che comprende una pluralit? di server distributori 1100 e 1200 e 1300, anche detti "acquirer", e una pluralit? di server edge 1510, 1520, 1610, 1710; i server edge sono collegati ai server distributori mediante una rete telematica; in generale, i server edge fanno parte di Internet ossia l'intera CDN ? implementata almeno in parte tramite Internet. In Fig.1, si vede che i server edge 1510 e 1520 appartengono a un primo POP 1500 (= Point of Presence) associato a un primo server distributore 1100, il server edge 1610 appartiene a un secondo POP 1600 associato a un secondo server distributore 1200, il server edge 1710 appartiene a un terzo POP 1700 associato a un terzo server distributore 1300; in generale, ciascuno di questi POP comprende un gruppo di server edge e il loro numero ? variabile.
In Fig. 1, il PC 200 ? collegato al server 1510; quando l'utente del PC 200 richiede il file F, il PC 200 lo chiede al server edge 1510; se il server edge 1510 ha gi? memorizzato nella sua memoria il file F lo invia al PC 200 altrimenti lo richiede al server distributore 1100; tipicamente, il server distributore 1100 ha gi? memorizzato nella sua memoria il file F e quindi lo invia al server edge 1510 che a sua volta lo inoltra al PC 200; proprio per la sua funzione di distributore, il server distributore 1100 detiene una copia del file F che ha ricevuto dal server origine 100. Se, secondo questa soluzione nota, un file "nuovo" o "recente" (e quindi non ancora replicato nei server distributori) viene richiesto da un gran numero di persone (ad esempio, vi ? una importante partita di calcio e molti vogliono vederla in tempo reale, ossia mentre si volge), il server origine di questo file si trova inondato di richieste da parte di molti server distributori. Per fare fronte a tali richieste in modo soddisfacente, occorrerebbe dimensionare la CDN, ma soprattutto il server origine, in funzione di possibili picchi di richiesta.
Ovviamente, ci? ? svantaggioso soprattutto perch?, quando il picco di richiesta fosse finito, le risorse (principalmente le risorse hardware) del server origine risulterebbero largamente inutilizzate.
Inoltre, bisogna anche tenere conto che i vari POP possono trovarsi e servire aree geografiche diverse e pi? o meno lontane dal luogo dove si trova (o meglio ? connesso a Internet) il server origine; ad esempio, il server origine pu? trovarsi in Europa e un gran numero di persone interessate al file posso trovarsi sia in Europa che negli USA. Quindi, pu? comunque non essere facile garantire un buon collegamento tra un qualsiasi server distributore e il server origine.
SOMMARIO
Scopo generale della presente invenzione ? migliorare la tecnica nota. Tale scopo generale nonch? altri scopi pi? specifici sono raggiunti grazie alle soluzioni oggetto delle annesse rivendicazioni che formano parte integrante della presente descrizione.
L'idea ? implementare una distribuzione "distribuita" e "flessibile", in particolare basata su una CDN senza server distributori o "acquirer". La presente invenzione si applica sia nel caso in cui i contenuti da distribuire siano file "monolitici" (che possono essere segmentati a esempio a livello di "trasporto"), sia nel caso in cui i contenuti da distribuire siano file "frammentati" (ad esempio a livello "applicativo"), sia nel caso in cui i contenuti da distribuire siano "stream", ossia sequenze indefinite di "frammenti" senza un vero inizio e una vera fine (o meglio di cui non si conosce l'inizio e la fine).
Il cuore della presente invenzione si riferisce a ci? che avviene nella CDN tipicamente quando, all'inizio, un apparecchio telematico d'utente invia a un server edge una richiesta di un contenuto. Una volta che tale richiesta ha iniziato a essere evasa, ossia ? arrivato all'apparecchio telematico d'utente il primo segmento o frammento del contenuto richiesto, gli ulteriori segmenti o frammenti seguiranno all'interno della CDN tipicamente il medesimo percorso del primo (ci? pu? non valere ad esempio se si verifica un guasto nella CDN); il percorso seguito comprende un server edge della CDN e, eventualmente, uno o pi? server "intermediari" della CDN.
Il percorso dei segmenti o dei frammenti all'interno della CDN deriva in prima battuta da uno o pi? calcoli effettuati da uno o pi? server della CDN, in particolare da un server edge e da server "intermediari".
Come sar? pi? chiaro dal seguito, il percorso utilizzato pu? essere influenzato anche da algoritmi di intelligenza artificiale e essere diverso dal percorso calcolato. Ad esempio, attraverso un'analisi basata su intelligenza artificiale, si potrebbe stabilire che un certo server "intermediario" sia da evitare ad esempio per un certo contenuto.
Dal seguito si comprender? che esempi di realizzazione della presente invenzione consentono di ottenere alto throughput e bassissima latenza, ossia possono essere definiti HTULL.
ELENCO DELLE FIGURE
La presente invenzione risulter? pi? chiara dalla descrizione dettagliata che segue da considerare assieme ai disegni annessi in cui:
Fig. 1 mostra uno schema a blocchi di una architettura nota per distribuire contenuti in forma di file;
Fig. 2 mostra uno schema a blocchi di un esempio di realizzazione di una architettura inventiva per distribuire contenuti in forma di file ? si tratta di una situazione esemplificativa; e
Fig. 3 mostra un diagramma di flusso di un esempio di realizzazione di un metodo inventivo per distribuire file.
Come si comprende facilmente, vi sono vari modi di implementare in pratica la presente invenzione che ? definita nei suoi principali aspetti vantaggiosi nelle rivendicazioni annesse e non ? limitata n? dalla descrizione dettagliata che segue n? dai disegni annessi.
DESCRIZIONE DETTAGLIATA
Fig. 2 mostra i medesimi blocchi della Fig. 1 come componenti di una CDN. Tuttavia, i blocchi (ad esempio 1510, 1520, 1610, 1710) che compongono la CDN 2000 di Fig. 2 sono diversi internamente dai blocchi che compongono la CDN 1000 di Fig. 1 pur essendo associati al medesimo riferimento numerico; si pu? dire, essenzialmente, che i blocchi differiscono per il software e/o il firmware che viene eseguito per distribuire file, ossia i contenuti.
Tipicamente, anche la CDN 2000 di Fig. 2 ? implementata tramite Internet come la CDN 1000 di Fig.1. Anche in questo caso, ? possibile che parte della rete telematica sulla quale ? basata la CDN 2000 di Fig. 2 non sia realizzata mediante Internet, ma mediante dei collegamenti privati dedicati (tipicamente ci? potrebbe valere per i collegamenti tra server edge del medesimo POP ed eventualmente i collegamenti tra server edge di POP diversi). E' da notare che, in generale, i collegamenti mostrati in Fig. 2 non sono collegamenti fisici, ma sono i collegamenti logici tra i componenti della CDN.
In Fig. 2, si vede che i server edge 1510 e 1520 appartengono a un primo POP 1500 che verr? chiamato "POP home"; il server edge 1610 appartiene a un secondo POP 1600 che verr? chiamato "POP parent"; il server edge 1710 appartiene a un terzo POP 1700 che verr? chiamato "POP grandparent". In generale, ciascuno dei POP comprende un gruppo di server edge e il loro numero ? variabile. Tutti i server edge hanno il compito primario di dialogare (direttamente o indirettamente con gli apparecchi telematici d'utente degli utenti ? in Fig. 2 ? mostrato un solo apparecchio telematico d'utente 300). Inoltre, secondo alcuni aspetti della presente invenzione, i server edge hanno il compito primario di dialogare tra loro. Infine, secondo alcuni aspetti della presente invenzione, i server edge hanno il compito primario di dialogare con uno o pi? server origine (in Fig. 2 ? mostrato un solo server origine 100).
Nel presente documento (e secondo la presente invenzione), con "POP" si intende un insieme di sistemi informatici (che include anche e soprattutto server edge) che servono gli utenti di una predeterminata area geografica. I componenti di un POP sono tipicamente, ma non necessariamente, situati vicini tra loro. In una medesima data room pu? essere presente pi? di un POP.
Nel seguito, si inizier? la descrizione della presente invenzione facendo riferimento al caso di distribuzione di un file F "monolitico", tipicamente di grosse dimensioni, trascurando il fatto che questo possa essere suddiviso a livello di trasporto in "segmenti" e eventualmente a livello ancora pi? basso in "pacchetti IP". Tale descrizione si applica esattamente anche al caso di distribuzione di un contenuto suddiviso in "frammenti" a livello "applicativo", considerando la equivalenza tra un singolo frammento e il file.
Secondo l'esempio di Fig. 2, l'apparecchio 300 ? collegato al server edge 1510; quando l'utente dell'apparecchio 300 desidera un contenuto C corrispondente a un file F, l'apparecchio 300 chiede il file F al server edge 1510. Se il server edge 1510 ha gi? memorizzato nella sua memoria una copia (totale o parziale) del file F invia la copia all'apparecchio 300 altrimenti la chiede al server edge 1520. Se il server edge 1520 ha gi? memorizzato nella sua memoria una copia (totale o parziale) del file F invia la copia al server edge 1510 altrimenti la chiede al server edge 1610. Se il server edge 1610 ha gi? memorizzato nella sua memoria una copia (totale o parziale) del file F invia la copia al server edge 1520 altrimenti la chiede al server edge 1710. Se il server edge 1710 ha gi? memorizzato nella sua memoria una copia (totale o parziale) del file F invia la copia al server edge 1610 altrimenti la chiede al server origine 100.
Da quanto detto, si comprende che, secondo la presente invenzione, vi ? una sequenza d'inoltro della richiesta del file e un corrispondente "percorso dati" all'interno della CDN dei dati del file (pi? in generale di contenuto) fino all'apparecchio telematico d'utente interessato al file. Si precisa che, in generale, non vi ? un collegamento fisso e predeterminato tra un apparecchio telematico d'utente e un server edge. Infatti, quando un apparecchio telematico d'utente (tramite un opportuno software, tipicamente un "player" oppure un "browser") segnala a una CDN di essere interessato a un contenuto, ? la CDN che determina quale sia il server edge a cui l'apparecchio si deve collegare (e fa in modo che il collegamento avvenga) e chiedere il file oppure i file relativi a questo contenuto. La presente invenzione prescinde da come sia effettuato questo passo preliminare che ? noto in varie forme di realizzazione.
Secondo tre scenari di configurazione (della CDN in relazione al file F) diversi da quanto descritto nel paragrafo precedente (si considerino il collegamenti mostrati con linea tratteggiata in Fig. 2), se uno dei server edge 1510 oppure 1520 oppure 1610 non ha gi? memorizzato nella sua memoria una copia (totale o parziale) del file F, chiede la copia al server origine 100.
Vale la pena di precisare che nell'esempio di Fig. 2, la sequenza d'inoltro della richiesta del file F (e il corrispondente "percorso dati") comprende un server edge (nello specifico il server 1510), due server edge che fungono da "server intermediari" (nello specifico i server 1520 e 1610), un server edge che funge da "server master" (nello specifico il server 1710), e un server origine (nello specifico il server 100).
E' anche possibile che un server edge decida di chiedere la copia del file F a un altro server edge o alternativamente al server origine sulla base di criteri fissi e predeterminati oppure variabili e determinati (da altre persone e/o altri apparecchi) durante il funzionamento della CDN 2000.
La sequenza d'inoltro delle richieste dei file (ad esempio quella precedentemente indicata 1510, 1520, 1610, 1710, 100) pu? essere modificata dinamicamente ad esempio dal gestore della CDN.
In generale, la sequenza d'inoltro di una richiesta di un file dipende dall'apparecchio telematico d'utente, dal server edge che ha ricevuto dall'apparecchio telematico d'utente la richiesta del file e dal server origine (in particolare dalla sua posizione geografica rispetto alla posizione geografica dell'apparecchio telematico d'utente); sulla sequenza d'inoltro pu? poi influire, tipicamente, anche la configurazione della CDN nel periodo di tempo in cui la richiesta di file (pi? in generale di contenuto) viene soddisfatta.
Tipicamente, la sequenza di richiesta dipende dal file. Ad esempio, vi pu? essere una prima sequenza per un primo file e una seconda sequenza per un secondo file. Ci? pu? essere dovuto in particolare al fatto che il primo file sia distribuito da un primo server origine e il secondo file sia distribuito da un secondo server origine.
Come gi? detto, la sequenza d'inoltro delle richieste di un file (e il corrispondente "percorso dati") pu? essere influenzata anche da algoritmi di intelligenza artificiale.
Una possibilit? ?, ad esempio, di utilizzare una base dati real-time e storica per rilevare dei "pattern" relativi a performance e/o errori di un server derivante da un calcolo descritto in precedenza. Se non ? stato individuato alcun pattern "rischioso", il server calcolato verrebbe utilizzato per il contenuto richiesto; al contrario, si potrebbe procedere a scegliere un server diverso. Ad esempio, tale server diverso potrebbe derivare da altri calcoli e/o da ricerche in opportune tabelle o elenchi. Se, secondo questa soluzione inventiva, un contenuto viene richiesto da un gran numero di persone (ad esempio, vi ? una importante partita di calcio e molti vogliono vederla in tempo reale, ossia mentre si volge), il carico delle richieste pu? essere suddiviso tra una pluralit? di "server intermediari".
La corrispondenza tra contenuto C desiderato dall'utente e ad esempio file F, ossia URL o URI del file, viene fatta tipicamente attraverso un programma client eseguito dall'apparecchio telematico d'utente (stessa considerazione vale per l'eventuale corrispondenza tra contenuto e "stream").
Il programma client eseguito dall'apparecchio telematico d'utente potrebbe anche contribuire a scegliere o determinare il server edge a cui richiedere il file.
Nei paragrafi precedenti, ci si ? concentrati sull'inoltro della richiesta file, in particolare del file F.
Tipicamente, se il server 1510 ha memorizzato una copia del file F lo invia all'apparecchio 300 direttamente, se il server 1520 ha memorizzato una copia del file F lo invia all'apparecchio 300 attraverso il server 1510, se il server 1610 ha memorizzato una copia del file F lo invia all'apparecchio 300 attraverso i server 1510 e 1520, se il server 1710 ha memorizzato una copia del file F lo invia all'apparecchio 300 200 attraverso i server 1510 e 1520 e 1610.
Se il file F viene passato da un server ad un altro server, pu? essere vantaggioso che l'altro server lo memorizzi al suo interno per eventuali future richieste.
Gli scenari descritti in precedenza sono da estendere a una pluralit? di utenti con i loro apparecchi telematici d'utente (ad esempio, laptop, desktop, tablet, "smart phone", "smart TV", set-top box, o altri apparecchi elettronici d'utente con capacit? telematiche) per fruire dei contenuti e a una pluralit? di file corrispondenti ai contenuti. Tipicamente, l'origine dei file sar? diversa; ad esempio, i file F1, F2 e F3 avranno come origine un server OS1 e i file F4, F5 e F6 avranno come origine un server OS2.
In generale, il metodo secondo la presente invenzione serve per distribuire contenuti, pi? in particolare contenuti multimediali, ancora pi? in particolare contenuti multimediali per servizi in streaming. In particolare, un contenuto pu? essere in forma di file (monolitico o frammentato) o di "stream" (che ? tipicamente suddiviso in frammenti). Tipicamente, la distribuzione avviene da un server origine (si veda ad esempio 100 in Fig. 2) a una pluralit? di server edge (si veda ad esempio 1510 in Fig.2) attraverso una pluralit? di server intermediari (si veda ad esempio 1520, 1610, 1710 in Fig. 2). I server edge e i server intermediari costituiscono una CDN (si veda ad esempio 2000 in Fig.2) e sono collegati tra loro da una rete telematica, in particolare Internet. Informazioni di configurazione sono memorizzate in ciascun server edge (si veda ad esempio 1510 in Fig. 2) almeno relative a un POP home (si veda ad esempio 1500 in Fig. 2); si tratta del POP a cui appartiene rispettivamente ciascun server edge; le informazioni relative al POP home saranno, tipicamente, il numero di server che lo compongono e il loro indirizzo.
Nel diagramma di flusso 3000 di Fig.3 vi ? un solo blocco 310 di "begin processing" e una serie di blocchi 316 (che segue il blocco 315), 326 (che segue il blocco 325), 336 (che segue il blocco 335) e 350 (che segue i blocchi 334 e 347) di "end processing" a seconda dei casi.
In generale, il metodo comprende i seguenti passi:
a) (blocco 312 in Fig. 3) un server edge riceve da un apparecchio telematico d'utente una richiesta di un file F,
in seguito
b) (blocco 313 in Fig.3) il server edge verifica se detiene una copia del file F,
in seguito
c) (ramo Y del blocco 314 in Fig. 3) se la verifica al passo b ? positiva, il server edge invia (blocco 315 in Fig.3) all'apparecchio telematico d'utente il file F, e
(ramo N del blocco 314 in Fig. 3) se la verifica al passo b ? negativa, il server edge determina (blocco 317 in Fig. 3) un indirizzo di un server neighbour ? il server edge e il server neighbour appartengono a un medesimo POP home,
in seguito se la verifica al passo b ? negativa,
d) (blocco 318 in Fig. 3) il server edge invia all'indirizzo del server neighbour una richiesta del file F;
quindi il server neighbour ? da considerare un server "intermediario". L'indirizzo di cui al passo "c" (blocco 317 in Fig. 3) ? ottenuto effettuando un calcolo, in particolare un calcolo matematico, sul nome del file F tenendo conto delle informazioni di configurazione memorizzate nel server, in particolare nel server edge. Ad esempio, si supponga che il POP, in particolare il POP home, comprenda quattro server; si potrebbe prendere il nome del file (ad esempio solo il "path" o parte del "path"), trasformarlo in numero binario, dividerlo per quattro e considerare il resto della divisione; se il resto ? zero si sceglie come indirizzo un primo dei quattro server, se il resto ? uno si sceglie come indirizzo un secondo dei quattro server, se il resto ? due si sceglie come indirizzo un terzo dei quattro server, se il resto ? tre si sceglie come indirizzo un quarto dei quattro server.
In generale, con il termine "nome del file" si intende l'insieme di uno pi? dei seguenti componenti: "host", "device" o "drive", "path" o "directory", "file", "format" o "extension", versione ? si veda ad esempio Wikipedia. Tipicamente, secondo la presente descrizione, il "nome del file" ? costituito da "host" "path" "file" eventualmente "extension". Analoghe considerazioni valgono per il "nome dello stream" nel caso in cui la presente invenzione viene applicata alla distribuzione di "stream". In generale, il calcolo di cui sopra non deve essere necessariamente effettuato sull'intero "nome", ma potrebbe essere effettuato su una o pi? parti dell'intero "nome", ad esempio semplicemente sul "path". Analoghe considerazioni valgono per i calcoli effettuati su nomi menzionati nel seguito.
E' da notare che secondo alcuni esempi di realizzazione e in certe condizioni, il calcolo di cui al passo "c" potrebbe dare come risultato che il server neighbour coincida con il server edge. In questo caso, il server edge potrebbe inviare la richiesta direttamente a un server parent poich? non ha senso che il server edge chieda il file a se stesso essendo gi? stato verificato che non dispone di una copia.
Questo modo di procedere implica che i file siano suddivisi congruentemente tra i quattro server del POP, in particolare del POP home.
Inoltre, il metodo pu? prevedere anche quanto segue.
Informazioni di configurazione possono essere memorizzate anche nel server neighbour (si veda ad esempio 1520 in Fig. 2) almeno relative a un POP parent (si veda ad esempio 1600 in Fig. 2); si tratta di un POP a cui non appartiene n? il server edge n? il server neighbour (che appartengono al medesimo POP home); le informazioni relative al POP parent saranno, tipicamente, il numero di server che lo compongono e il loro indirizzo.
Il metodo pu? comprende ulteriormente i seguenti passi:
e) (blocco 322 in Fig. 3) il server neighbour riceve dal server edge una richiesta del file F,
in seguito
f) (blocco 323 in Fig. 3) il server neighbour verifica se detiene una copia del file F,
in seguito
g) (ramo Y del blocco 324 in Fig. 3) se la verifica al passo f ? positiva, il server neighbour invia (blocco 325 in Fig. 3) al server edge il file F, e
(ramo N del blocco 324 in Fig. 3) se la verifica al passo f ? negativa, il server neighbour determina (blocco 327 in Fig. 3) un indirizzo di un server parent ? il server neighbour appartiene al POP home e il server parent appartiene al POP parent diverso dal POP home,
in seguito se la verifica al passo f ? negativa,
h) (blocco 328 in Fig. 3) il server neighbour invia all'indirizzo del server parent una richiesta del file F;
quindi anche il server parent ? da considerare un server "intermediario". L'indirizzo di cui al passo "g" (blocco 327 in Fig. 3) si pu? ottenere effettuando un calcolo, in particolare un calcolo matematico, sul nome del file F tenendo conto delle informazioni di configurazione memorizzate nel server, in particolare nel server neighbour. Si pu? fare un calcolo identico o analogo a quello descritto in precedenza. Ma concettualmente, si potrebbe anche fare un calcolo diverso.
Questo modo di procedere implica che i file siano suddivisi congruentemente tra i server del POP, in particolare del POP parent. In base a informazioni di configurazione memorizzate nel server edge (si veda ad esempio 1510 in Fig. 2) e a un calcolo, il server edge potrebbe inviare una richiesta relativa a un file direttamente a un server parent (si veda ad esempio 1610 in Fig.2) di un POP parent (si veda ad esempio 1600 in Fig. 2) diverso dal POP home (si veda ad esempio 1500 in Fig. 2). Questa possibilit? non ? mostrata nel diagramma di flusso 3000 di Fig. 3, ma ? mostrata in Fig. 2 con una linea arcuata e tratteggiata che congiunge 1510 a 1610.
In aggiunta o in alternativa a quanto descritto nel paragrafo precedente, in base a informazioni di configurazione memorizzate nel server edge (si veda ad esempio 1510 in Fig.2), il server edge potrebbe inviare una richiesta relativa a un file direttamente a un server origine (si veda ad esempio 100 in Fig. 2). Questa possibilit? non ? mostrata nel diagramma di flusso 3000 di Fig.3.
Inoltre, il metodo pu? prevedere anche quanto segue.
Informazioni di configurazione possono essere memorizzate anche nel server parent (si veda ad esempio 1610 in Fig. 2) almeno relative a un POP grandparent (si veda ad esempio 1700 in Fig. 2); si tratta di un POP a cui non appartiene n? il server neighbour n? il server parent; le informazioni relative al POP grandparent saranno, tipicamente, il numero di server che lo compongono e il loro indirizzo.
Il metodo pu? comprende ulteriormente i seguenti passi:
i) (blocco 332 in Fig. 3) il server parent riceve dal server neighbour una richiesta del file F,
in seguito
l) (blocco 333 in Fig. 3) il server parent verifica se detiene una copia del file F,
in seguito
m) (ramo Y del blocco 334 in Fig. 3) se la verifica al passo l ? positiva, il server parent invia (blocco 335 in Fig. 3) al server neighbour il file F, e
(ramo N del blocco 334 in Fig. 3) se la verifica al passo l ? negativa, il server parent determina (blocco 337 in Fig. 3) un indirizzo di un server grandparent ? il server parent appartiene al POP parent e il server grandparent appartiene al POP grandparent diverso dal POP parent,
in seguito se la verifica al passo l ? negativa,
n) (blocco 338 in Fig. 3) il server parent invia all'indirizzo del server grandparent una richiesta del file F;
quindi anche il server grandparent ? da considerare un server "intermediario".
L'indirizzo di cui al passo "m" (blocco 337 in Fig. 3) si pu? ottenere effettuando un calcolo, in particolare un calcolo matematico, sul nome del file F tenendo conto delle informazioni di configurazione memorizzate nel server, in particolare nel server parent. Si pu? fare un calcolo identico o analogo a quello descritto in precedenza. Ma concettualmente, si potrebbe anche fare un calcolo diverso.
Questo modo di procedere implica che i file siano suddivisi congruentemente tra i server del POP, in particolare del POP grandparent.
Inoltre, il metodo pu? prevedere anche quanto segue.
Informazioni di configurazione possono essere memorizzate anche nel server grandparent (si veda ad esempio 1710 in Fig. 2) almeno relative a un indirizzo del server origine (si veda ad esempio 100 in Fig.2) per il file F.
Il metodo pu? comprende ulteriormente i seguenti passi:
o) (blocco 342 in Fig. 3) il server grandparent riceve dal server parent una richiesta del file F,
in seguito
p) (blocco 343 in Fig. 3) il server grandparent verifica se detiene una copia del file F,
in seguito
q) (ramo Y del blocco 344 in Fig. 3) se la verifica al passo p ? positiva, il server grandparent invia (blocco 345 in Fig. 3) al server parent il file F, e
(ramo N del blocco 344 in Fig. 3) se la verifica al passo p ? negativa, il server grandparent invia (blocco 347 in Fig. 3) al indirizzo del server origine una richiesta del file F.
In generale, secondo la presente invenzione, si pu? prevedere che un qualsiasi server, in particolare un server edge o un server neighbour o un server parent o un server granparent, inoltri una richiesta di un file a un server intermediario appartenente a un differente POP; in questo senso, il server esterno chiamato in causa pu? essere chiamato "parent" per via del legame logico con il server che lo chiama in causa. Inoltre, il metodo pu? prevedere anche quanto segue.
In generale, secondo la presente invenzione, si pu? prevedere che informazioni di configurazione siano memorizzate in uno o pi? server intermediari almeno relative a indirizzi di server origine per uno o pi? file. In questo caso, a ogni richiesta di un file un server intermediario pu? verificare se ? un server "master" in relazione al file richiesto, e se tale verifica ? positiva e se non detiene una copia del file richiesto, invia al server origine una richiesta di questo file. In effetti, la verifica di cui sopra relativa alla condizione di "master" pu? essere fatta anche a partire del server edge.
Nei paragrafi precedenti, si fa riferimento a calcoli effettuati su nomi di file. Deve essere chiaro che tali calcoli non implicano necessariamente l'uso di tutti i componenti dei nomi di file. Ad esempio, secondo esempi di realizzazione tipici, tali calcoli sono effettuati solo sui path o parte dei path.
Nei paragrafi precedenti, si ? descritto principalmente lo scambio di richieste di file. Ovviamente, a fronte di queste richieste di file, i file devono poi arrivare all'apparecchio telematico dell'utente.
Nel diagramma di flusso 3000 esemplificativo di Fig. 3, ? stato evidenziato solo il primo invio del file F. Il blocco 315 si riferisce all'invio del file F dal server edge all'apparecchio telematico dell'utente. Il blocco 325 si riferisce all'invio del file F dal server neighbour al server edge; seguir? poi un inoltro del file F fino all'apparecchio telematico dell'utente. Il blocco 335 si riferisce all'invio del file F dal server parent al server neighbour; seguir? poi un inoltro del file F fino all'apparecchio telematico dell'utente. Il blocco 345 si riferisce all'invio del file F dal server grandparent al server parent; seguir? poi un inoltro del file F fino all'apparecchio telematico dell'utente. Infine, vi ? / pu? essere un invio del file F a partire dal server origine fino all'apparecchio telematico dell'utente passando attraverso a un certo numero di server (almeno un server).
Come gi? detto, la presente invenzione si applica alla distribuzione sia di file "monolitici", sia di file "frammentati", sia di "stream". Quanto detto nei paragrafi precedenti pu? essere adattato per realizzare metodi di distribuzione di file "frammentati" e metodi di distribuzione di "stream" di cui si dir? meglio oltre.
Metodi di distribuzione uguali o simili a quelli appena descritti possono essere e vengono tipicamente implementati da un sistema telematico che comprendente una pluralit? di server edge e una pluralit? di server intermediari di una CDN innovativa atti a essere collegati tra loro da una rete telematica, in particolare Internet.
Tali server devono essere opportunamente configurati e programmati in modo tale da implementare il metodo desiderato.
Fondamentalmente e concettualmente, all'interno di tale CDN innovativa vi sono due tipologie di server: i server edge (ossia quelli che comunicano con gli apparecchi telematici d'utente) e i server intermediari.
In generale, un server di una tale CDN innovativa comprende:
- una unit? elettronica di comunicazione atta a essere collegata a una rete telematica, in particolare Internet, e
- una unit? elettronica di elaborazione atta a elaborare pacchetti di dati ricevuti e da trasmettere dalla unit? elettronica di comunicazione.
L'unit? elettronica di elaborazione comprende una prima sub-unit? di memoria atta a memorizzare file e una seconda sub-unit? di memoria atta a memorizzare informazioni di configurazione;
Inoltre, l'unit? elettronica di elaborazione ? programmata cos? da operare come server edge o come server intermediario. Infatti, tipicamente, a seconda dei file e degli apparecchi che richiedono i file il ruolo del server pu? cambiare.
Tuttavia, durante il normale funzionamento di tale CDN innovativa, sar? tipico che il medesimo server possa operare sia come server edge (per alcuni file e/o apparecchi telematici d'utente) sia come server intermediario (per alcuni file e/o apparecchi telematici d'utente) Tale doppia funzionalit? ? tipicamente contemporanea, ossia se in un certo intervallo di tempo (ad esempio una decina o un centinaio di minuti) il server si trova a gestire ad esempio i file di due contenuti diversi, in questo intervallo di tempo pu? operare come server edge per le operazioni relative ai file di un primo dei due contenuti e come server intermediario per le operazioni relative ai file di un secondo dei due contenuti.
In generale, un server edge di tale CDN innovativa pu? comprendere:
- una unit? elettronica di comunicazione atta a essere collegata a una rete telematica, e
- una unit? elettronica di elaborazione atta a elaborare pacchetti di dati ricevuti e da trasmettere dall'unit? elettronica di comunicazione.
L'unit? elettronica di elaborazione comprende una prima sub-unit? di memoria atta a memorizzare file e una seconda sub-unit? di memoria atta a memorizzare informazioni di configurazione relative a un POP home del server edge.
Inoltre, l'unit? elettronica di elaborazione ? programmata per evadere richieste di file, e cos? che in risposta a una richiesta di un file detenuto localmente invia il file e che in risposta a una richiesta di un file non detenuto localmente determina un indirizzo di un server neighbour nel medesimo POP home oppure di un server parent in un diverso POP parent effettuando un calcolo su un nome di questo file tenendo conto delle informazioni di configurazione, e causa un invio all'indirizzo del server neighbour o del server parent di una richiesta di questo file.
La seconda sub-unit? di memoria pu? essere atta a memorizzare informazioni di configurazione relative a indirizzi di server origine per uno o pi? file. In questo caso, l'unit? elettronica di elaborazione ? programmata cos? che in risposta a una richiesta di un file non detenuto localmente causa un invio a un indirizzo di server origine una richiesta di questo file.
In generale, un server intermediario di tale CDN innovativa pu? comprendere:
- una unit? elettronica di comunicazione atta a essere collegata a una rete telematica, in particolare Internet, e
- una unit? elettronica di elaborazione atta a elaborare pacchetti di dati ricevuti e da trasmettere dall'unit? elettronica di comunicazione.
L'unit? elettronica di elaborazione comprende una prima sub-unit? di memoria atta a memorizzare file e una seconda sub-unit? di memoria atta a memorizzare informazioni di configurazione relative a un POP home del server intermediario e uno o pi? POP parent del server intermediario.
Inoltre, l'unit? elettronica di elaborazione ? programmata per evadere richieste di file, e cos? che in risposta a una richiesta di un file detenuto localmente invia il file e che in risposta a una richiesta di un file non detenuto localmente determina un indirizzo di un server parent in un POP effettuando un calcolo su un nome di questo file tenendo conto delle informazioni di configurazione, e causa un invio all'indirizzo del server parent di una richiesta di questo file.
La seconda sub-unit? di memoria pu? essere atta a memorizzare informazioni di configurazione relative a indirizzi di un server origine per uno o pi? file. In questo caso, l'unit? elettronica di elaborazione ? programmata cos? che in risposta a una richiesta di un file non detenuto localmente causa un invio a un indirizzo di server origine o distributore una richiesta di questo file.
Nel caso di distribuzione di uno "stream", ossia una sequenza indefinita di "frammenti" senza un vero inizio e una vera fine (o meglio di cui non si conosce l'inizio e la fine), i metodi descritti in precedenza richiedono solo minime modifiche.
In primo luogo, si deve tenere conto che a fronte di un richiesta di uno "stream", nessun server potr? avere una copia integrale, ma solamente copia di uno o pi? frammenti. In effetti, per uno "stream", si pu? pensare che esista un frammento "corrente" che potrebbe essere quello appena generato dal server origine, fornito alla CDN e distribuito tra i suoi server.
Quando un apparecchio telematico d'utente, ad esempio l'apparecchio 300 in Fig. 2, richiede uno stream S a un server edge, ad esempio il server 1510 in Fig.2, comincia la ricerca del frammento "corrente" dello stream S. Con riferimento a Fig. 2, questo potrebbe essere gi? memorizzato nel server 1510 oppure nel server 1520 oppure nel server 1610 oppure nel server 1710 oppure ancora solo nel server origine 100. Una volta inviato all'apparecchio 300 il primo frammento, ossia questo frammento "corrente", la CDN invier? automaticamente i successivi frammenti all'apparecchio 300. Questi frammenti seguiranno sempre il medesimo "percorso dati" all'interno della CDN; nell'esempio di cui sopra, il percorso ?: 100, 1710, 1610, 1520, 1510.
Tale "percorso dati" potrebbe essere gi? costituto in tutto o in parte. Ad esempio, se un altro apparecchio telematico d'utente interessato al medesimo stream S e collegato al server 1510 lo avesse chiesto in precedenza (magari pochi secondi o minuti prima), il "percorso dati" per l'apparecchio 300 sarebbe gi? interamente costituto. Ad esempio ancora, se un altro apparecchio telematico d'utente interessato al medesimo stream S e collegato al server 1520 lo avesse chiesto in precedenza (magari pochi secondi o minuti prima), il "percorso dati" per l'apparecchio sarebbe gi? quasi interamente costituto. Ad esempio ancora, se un altro apparecchio telematico d'utente interessato al medesimo stream S e collegato al server 1610 lo avesse chiesto in precedenza (magari pochi secondi o minuti prima), il "percorso dati" per l'apparecchio 300 sarebbe gi? parzialmente costituto. Ovviamente, se nessun computer utente collegato ai server 1510, 1510, 1610, 1710, avesse chiesto in precedenza lo stream S, il "percorso dati" per il PC 200 sarebbe interamente da costituire e quindi il primo frammento dello stream S, ossia il frammento "corrente", vi sar? una sequenza di richieste che raggiunger? il server origine 100 e una serie di inoltri che partir? dal server origine 100 e raggiunger? l'apparecchio 300.

Claims (14)

RIVENDICAZIONI
1. Metodo per distribuire contenuti, in particolare file o stream, da un server origine (100) a una pluralit? di server edge (1510) attraverso una pluralit? di server intermediari (1520, 1610, 1710),
in cui detti server edge (1510) e detti server intermediari (1520, 1610, 1710) costituiscono una CDN (2000) e sono collegati tra loro da una rete telematica;
in cui informazioni di configurazione sono memorizzate in detto server edge (1510) almeno relative a un POP home (1500);
in cui il metodo comprende i seguenti passi:
a) (312) un server edge (1510) riceve da un apparecchio telematico d'utente (300) una richiesta di un contenuto,
in seguito
b) (313) il server edge (1510) verifica se detiene una copia di detto contenuto oppure una copia di almeno un frammento di detto contenuto,
in seguito
c) (314-Y) se la verifica al passo b ? positiva, detto server edge (1510) invia (315) a detto apparecchio telematico d'utente (300) detta copia, e
(314-N) se la verifica al passo b ? negativa, detto server edge (1510) determina (317) un indirizzo di un server neighbour (1520), in cui detto indirizzo ? ottenuto effettuando un calcolo su un nome di detto contenuto tenendo conto di dette informazioni di configurazione del server edge, in cui detto server edge (1510) e detto server neighbour (1520) appartengono ad un medesimo POP home (1500),
in seguito se la verifica al passo b ? negativa,
d) (318) detto server edge (1510) invia a detto indirizzo di server neighbour una richiesta relativa a detto contenuto;
in cui detto detto server neighbour (1520) ? un server intermediario.
2. Metodo secondo la rivendicazione 1, in cui informazioni di configurazione sono memorizzate in detto server neighbour (1520) almeno relative a un POP parent (1600) per detto contenuto, in cui il metodo comprende ulteriormente i seguenti passi:
e) (322) detto server neighbour (1520) riceve da detto server edge (1510) una richiesta relativa a detto contenuto,
in seguito
f) (323) detto server neighbour (1520) verifica se detiene una copia di detto contenuto oppure una copia di almeno un frammento di detto contenuto,
in seguito
g) (324-Y) se la verifica al passo f ? positiva, detto server neighbour (1520) invia a detto server edge (1510) detta copia, e
(324-N) se la verifica al passo f ? negativa, detto server neighbour (1520) determina (327) un indirizzo di un server parent (1610), in cui detto indirizzo ? ottenuto effettuando un calcolo su un nome di detto contenuto tenendo conto di dette informazioni di configurazione del server neighbour (1520), in cui detto server neighbour (1520) appartiene a detto POP home (1500) e detto server parent (1610) appartiene a detto POP parent (1600) diverso da detto POP home (1500),
in seguito se la verifica al passo f ? negativa,
h) (328) detto server neighbour (1520) invia a detto indirizzo di server parent una richiesta relativa a detto contenuto;
in cui detto server parent (1610) ? un server intermediario.
3. Metodo secondo la rivendicazione 1 oppure 2, in cui in base a informazioni di configurazione memorizzate in detto server edge (1510) e a un calcolo, detto server edge (1510) pu? inviare una richiesta relativa a detto contenuto direttamente a un server parent (1610) di un POP parent (1600) diverso da detto POP home (1500), detto server parent (1610) essendo un server intermediario.
4. Metodo secondo la rivendicazione 1 oppure 2 oppure 3, in cui in base a informazioni di configurazione memorizzate in detto server edge (1510), detto server edge (1510) pu? inviare una richiesta relativa a detto contenuto direttamente a un server origine (100).
5. Metodo secondo la rivendicazione 2 oppure 3 oppure 4 oppure 5, in cui informazioni di configurazione sono memorizzate in detto server parent (1610) almeno relative a un POP granparent (1700) per detto contenuto, in cui il metodo comprende ulteriormente i seguenti passi: i) (332) detto server parent (1610) riceve da detto server neighbour (1520) una richiesta relativa a detto contenuto,
in seguito
l) (333) detto server parent (1610) verifica se detiene una copia di detto contenuto oppure una copia di almeno un frammento di detto contenuto,
in seguito
m) (334-Y) se la verifica al passo l ? positiva, detto server parent (1610) invia a detto server neighbour (1520) detta copia, e (334-N) se la verifica al passo l ? negativa, detto server parent (1610) determina (337) un indirizzo di un server grandparent (1710), in cui detto indirizzo ? ottenuto effettuando un calcolo su un nome di detto contenuto tenendo conto di dette informazioni di configurazione del server parent (1610), in cui detto server parent (1610) appartiene a detto POP parent (1600) e detto server grandparent (1710) appartiene a detto POP grandparent (1700) diverso da detto POP parent (1600),
in seguito se la verifica al passo l ? negativa,
n) (338) detto server parent (1610) invia a detto indirizzo di server grandparent una richiesta relativa a detto contenuto;
in cui detto server grandparent (1710) ? un server intermediario.
6. Metodo secondo la rivendicazione 5, in cui informazioni di configurazione sono memorizzate in detto server granparent (1710) almeno relative a un indirizzo di detto server origine (100) per detto contenuto, in cui il metodo comprende ulteriormente i seguenti passi: o) (342) detto server grandparent (1710) riceve da detto server parent (1610) una richiesta relativa a detto contenuto,
in seguito
p) (343) detto server grandparent (1710) verifica se detiene una copia di detto contenuto oppure una copia di almeno un frammento di detto contenuto,
in seguito
q) (344-Y) se la verifica al passo p ? positiva, detto server grandparent (1710) invia (345) a detto server parent (1610) detta copia, e
(344-N) se la verifica al passo p ? negativa, detto server grandparent (1710) invia (347) a detto indirizzo di server origine una richiesta relativa a detto contenuto.
7. Metodo secondo la rivendicazione 5 oppure 6, in cui un server, in particolare un server neighbour o un server parent o un server granparent, pu? inoltrare una richiesta relativa a detto contenuto a un server intermediario appartenente a un differente POP.
8. Metodo secondo una qualsiasi delle rivendicazioni precedenti, in cui informazioni di configurazione sono memorizzate in detti server intermediari (1520, 1610, 1710) almeno relative a indirizzi di server origine per uno o pi? contenuti, in cui ad ogni richiesta relativa a un contenuto un server intermediario (1520, 1610, 1710) verifica se ? un server master in relazione a detto contenuto, e se detta verifica ? positiva e se non detiene una copia di detto contenuto oppure una copia di almeno un frammento di detto contenuto, invia al server origine (100) una richiesta relativa a detto contenuto.
9. Sistema telematico comprendente una pluralit? di server edge (1510) e una pluralit? di server intermediari (1520, 1610, 1710) di una CDN (2000) atti a essere collegati tra loro da una rete telematica, configurati e programmati in modo tale da implementare il metodo secondo una qualsiasi delle rivendicazioni precedenti.
10. Server edge (1510) di una CDN (2000), comprendente:
- una unit? elettronica di comunicazione atta a essere collegata a una rete telematica, e
- una unit? elettronica di elaborazione atta a elaborare pacchetti di dati ricevuti e da trasmettere da detta unit? elettronica di comunicazione;
in cui detta unit? elettronica di elaborazione comprende una prima subunit? di memoria atta a memorizzare contenuti e/o frammenti di contenuti e una seconda sub-unit? di memoria atta a memorizzare informazioni di configurazione relative a un POP home (1500) del server edge (1510); e
in cui detta unit? elettronica di elaborazione ? programmata per evadere richieste di contenuti, cos? che in risposta a una richiesta di un contenuto detenuto localmente invia il contenuto e che in risposta a una richiesta di un contenuto non detenuto localmente determina un indirizzo di un server neighbour (1520) nel medesimo POP home (1500) effettuando un calcolo su un nome di detto contenuto tenendo conto di dette informazioni di configurazione, e causa un invio a detto indirizzo di server neighbour di una richiesta relativa a detto contenuto.
11. Server edge (1510) secondo la rivendicazione 10,
in cui detta seconda sub-unit? di memoria ? atta a memorizzare informazioni di configurazione relative a indirizzi di server origine (100) per uno o pi? contenuti; e
in cui detta unit? elettronica di elaborazione ? programmata cos? che in risposta a una richiesta di un contenuto non detenuto localmente causa un invio a un indirizzo di server origine una richiesta relativa a detto contenuto.
12. Server intermediario (1520, 1610) di una CDN (2000), comprendente:
- una unit? elettronica di comunicazione atta a essere collegata a una rete telematica, e
- una unit? elettronica di elaborazione atta a elaborare pacchetti di dati ricevuti e da trasmettere da detta unit? elettronica di comunicazione;
in cui detta unit? elettronica di elaborazione comprende una prima subunit? di memoria atta a memorizzare contenuti e/o frammenti di contenuti e una seconda sub-unit? di memoria atta a memorizzare informazioni di configurazione relative a un POP home (1500, 1600) del server intermediario (1520, 1610) e uno o pi? POP parent (1600, 1700) del server intermediario (1520, 1610); e
in cui detta unit? elettronica di elaborazione ? programmata per evadere richieste di contenuti, cos? che in risposta a una richiesta di un contenuto detenuto localmente invia il contenuto e che in risposta a una richiesta di un contenuto non detenuto localmente determina un indirizzo di un server parent (1610, 1710) in un POP parent (1600, 1700) effettuando un calcolo su un nome di detto contenuto tenendo conto di dette informazioni di configurazione, e causa un invio a detto indirizzo di server parent di una richiesta relativa a detto contenuto.
13. Server intermediario (1520, 1610) secondo la rivendicazione 12, in cui detta seconda sub-unit? di memoria ? atta a memorizzare informazioni di configurazione relative a indirizzi di un server origine (100) per uno o pi? contenuti; e
in cui detta unit? elettronica di elaborazione ? programmata cos? che in risposta a una richiesta di un contenuto non detenuto localmente causa un invio a un indirizzo di server origine una richiesta relativa a detto contenuto.
14. Server (1510, 1520, 1610, 1710) di una CDN (2000) comprendente:
- una unit? elettronica di comunicazione atta a essere collegata a una rete telematica, e
- una unit? elettronica di elaborazione atta a elaborare pacchetti di dati ricevuti e da trasmettere da detta unit? elettronica di comunicazione;
in cui detta unit? elettronica di elaborazione comprende una prima subunit? di memoria atta a memorizzare contenuti e/o frammenti di contenuti e una seconda sub-unit? di memoria atta a memorizzare informazioni di configurazione; e
in cui detta unit? elettronica di elaborazione ? programmata cos? da operare come server edge e/o come server intermediario.
IT102020000017023A 2020-07-14 2020-07-14 Metodo per distribuire file attraverso una content delivery network basato anche su algoritmi di intelligenza artificiale, sistema telematico e server che consentono di implementarlo IT202000017023A1 (it)

Priority Applications (5)

Application Number Priority Date Filing Date Title
IT102020000017023A IT202000017023A1 (it) 2020-07-14 2020-07-14 Metodo per distribuire file attraverso una content delivery network basato anche su algoritmi di intelligenza artificiale, sistema telematico e server che consentono di implementarlo
US17/371,633 US11528536B2 (en) 2020-07-14 2021-07-09 Method of distributing files through a content delivery network based also on artificial intelligence algorithms, telematic system and servers that allow to implement it
EP21185377.5A EP3940557B1 (en) 2020-07-14 2021-07-13 Method of distributing files through a content delivery network based also on artificial intelligence algorithms, telematic system and servers that allow to implement it
ES21185377T ES2961983T3 (es) 2020-07-14 2021-07-13 Procedimiento de distribución de archivos a través de una red de distribución de contenidos basado también en algoritmos de inteligencia artificial, sistema telemático y servidores que permiten su implementación
US18/078,345 US20230104788A1 (en) 2020-07-14 2022-12-09 Method of distributing files through a content delivery network based also on artificial intelligence algorithms, telematic system and servers that allow to implement it

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102020000017023A IT202000017023A1 (it) 2020-07-14 2020-07-14 Metodo per distribuire file attraverso una content delivery network basato anche su algoritmi di intelligenza artificiale, sistema telematico e server che consentono di implementarlo

Publications (1)

Publication Number Publication Date
IT202000017023A1 true IT202000017023A1 (it) 2022-01-14

Family

ID=72709659

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102020000017023A IT202000017023A1 (it) 2020-07-14 2020-07-14 Metodo per distribuire file attraverso una content delivery network basato anche su algoritmi di intelligenza artificiale, sistema telematico e server che consentono di implementarlo

Country Status (4)

Country Link
US (2) US11528536B2 (it)
EP (1) EP3940557B1 (it)
ES (1) ES2961983T3 (it)
IT (1) IT202000017023A1 (it)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11695853B1 (en) 2022-04-07 2023-07-04 T-Mobile Usa, Inc. Content management systems providing zero recovery point objective

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110082982A1 (en) * 2009-10-02 2011-04-07 Limelight Networks, Inc. Content delivery network cache grouping

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742082B1 (en) * 2001-06-12 2004-05-25 Network Appliance Pre-computing streaming media payload method and apparatus
US9167036B2 (en) * 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US7133905B2 (en) * 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US8561116B2 (en) * 2007-09-26 2013-10-15 Charles A. Hasek Methods and apparatus for content caching in a video network
US9178806B2 (en) * 2012-07-31 2015-11-03 Alcatel Lucent High-speed content routing
CN104348722B (zh) * 2013-07-31 2017-12-12 华为技术有限公司 确定内容获取路径、请求处理的方法、装置和系统
CN103986664B (zh) * 2014-05-15 2017-06-27 厦门大学 一种用于片上网络的混合互连Mesh拓扑结构及其路由算法
US9293042B1 (en) * 2014-05-19 2016-03-22 Allstate Insurance Company Electronic display systems connected to vehicles and vehicle-based systems
KR101513643B1 (ko) * 2014-05-26 2015-04-22 엘지전자 주식회사 정보 제공 장치 및 그 방법
EP2958301A1 (en) * 2014-06-16 2015-12-23 Thomson Licensing Method for operating a cache arranged along a transmission path between a client terminal and at least one server, and corresponding cache
US20180205802A1 (en) * 2017-01-13 2018-07-19 Cisco Technology, Inc. Cache Aware Streaming
CN107801086B (zh) * 2017-10-20 2019-01-04 广东省南方数字电视无线传播有限公司 多缓存服务器的调度方法和系统
US11399058B2 (en) * 2018-03-22 2022-07-26 Netskrt Systems, Inc. Immutable ledger method and apparatus for managing the distribution of content
US11589082B2 (en) * 2018-11-27 2023-02-21 Toyota Motor North America, Inc. Live view collection and transmission system
US11470176B2 (en) * 2019-01-29 2022-10-11 Cisco Technology, Inc. Efficient and flexible load-balancing for clusters of caches under latency constraint
US11445225B2 (en) * 2020-10-27 2022-09-13 Akamai Technologies, Inc. Measuring and improving origin offload and resource utilization in caching systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110082982A1 (en) * 2009-10-02 2011-04-07 Limelight Networks, Inc. Content delivery network cache grouping

Also Published As

Publication number Publication date
EP3940557A1 (en) 2022-01-19
ES2961983T3 (es) 2024-03-14
US20230104788A1 (en) 2023-04-06
EP3940557C0 (en) 2023-09-06
US11528536B2 (en) 2022-12-13
EP3940557B1 (en) 2023-09-06
US20220021945A1 (en) 2022-01-20

Similar Documents

Publication Publication Date Title
US20200304508A1 (en) Method and device for providing authentication in network-based media processing (nbmp) system
US10715485B2 (en) Managing dynamic IP address assignments
CN110290506B (zh) 一种边缘云移动性管理方法及设备
CN101355476B (zh) 一种基于服务器群集的数据文件存储、分发和应用的系统和方法
US20140280859A1 (en) Sharing control system and method for network resources download information
US20200110633A1 (en) Method and apparatus for enhanced assertion management in cloud media processing
US20140188801A1 (en) Method and system for intelligent load balancing
WO2011150830A1 (zh) 获取内容的方法、节点及内容网络
CN103731753A (zh) 个人视频直播流路由系统及方法
CN104519125A (zh) 对于拓扑变化有弹性的分布式按次序负载分布
WO2021042784A1 (zh) 一种基于区块链的域名管理系统
CN108737527A (zh) 一种适用于平台大规模用户访问方法及系统
US11050811B2 (en) System and method for mesh network streaming
Li Retracted: Design and implementation of music teaching assistant platform based on Internet of Things
IT202000017023A1 (it) Metodo per distribuire file attraverso una content delivery network basato anche su algoritmi di intelligenza artificiale, sistema telematico e server che consentono di implementarlo
CN112527901A (zh) 数据存储系统、方法、计算设备及计算机存储介质
CN114928641A (zh) 基于云应用的数据分享方法、装置、电子设备及存储介质
US20140215543A1 (en) Child Node, Parent Node, and Caching Method and System for Multi-Layer Video Network
CN107959704B (zh) 一种数据处理方法及家庭网关
CN109151519B (zh) 一种基于视联网的配置分发方法和系统
EP3902279A1 (en) Audio and video stream distribution method in audio and video stream distribution system, and dynamic parent node
WO2024140698A1 (zh) 一种会话处理方法、系统、装置及存储介质
TW201427450A (zh) 內容遞送網路及同儕網路之流量控制方法及系統
CN107222539A (zh) 一种基于节点竞争时延代价模型的缓存部署方法
CN111478977A (zh) 一种多流媒体融合网关系统及其实现方法