FR 3075541 A1 20190621 FR 1762631 A 20171220 Procede de distribution d'un contenu dans un reseau de distribution de contenus, entite d'origine et entites de distribution correspondantes. 1. DOMAINE TECHNIQUE Le domaine de l'invention est celui des reseaux de distribution de contenus (aussi appeles CDN pour « Content Delivery Network » en anglais, ou encore « reseau de diffusion de contenu »). Plus precisement, l'invention concerne un procede de distribution, par une entite de distribution comprise dans un reseau de distribution de contenus (CDN), d'un contenu mis a disposition par une entite d'origine. 2. ARRIERE-PLAN TECHNOLOGIQUE Il est connu pour un operateur d'utiliser les reseaux de distribution de contenus pour distribuer des contenus dans un reseau de communication. Generalement, ces reseaux comprennent des entites d'origine et des entites de distribution. Les entites d'origine mettent a disposition des contenus qui sont dupliques, par exemple en fonction de leur popularite, sur les entites de distribution qui sont situees pres des destinataires de ces contenus. Les entites de distribution permettent ainsi de ne pas solliciter les entites d'origine et de diminuer les colas d'acheminement. Les reseaux de distribution de contenus sont aujourd'hui utilises pour delivrer plusieurs types de services a destination des utilisateurs finaux (aussi appeles internautes ou clients), notamment : - livraison de contenus multimedias et audiovisuels, de tailles variables suivant les usages et protocoles utilises (streaming, telechargement) ; - la livraison de ces contenus peut se faire en HTTP (« HyperText Transfer Protocol ») ou HTTPS (« HyperText Transfer Protocol Secure »), ce dernier protocole devenant de plus en plus repandu et exige par les fournisseurs de contenus ; - des fonctionnalites avancees peuvent etre necessaires pour rendre le service avec une valeur ajoutee : securisation, acceleration, optimisation et adaptation des contenus, etc. Les services (et les contenus associes) sont &finis par les fournisseurs de contenus et mis en oeuvre, dans la mesure du possible, par les operateurs des reseaux de 2 distribution de contenus (appeles par la suite « operateur CDN ») via l'application de configurations specifiques pour chaque reseau de distribution de contenus. La mise en oeuvre d'un service est de fait limit& a un couple « fournisseur de contenu - operateur CDN ». En d'autres termes, pour implementer (mettre en oeuvre) une fonctionnalite d'un 5 service defini par un fournisseur de contenus, chaque operateur CDN doit appliquer, dans son reseau de distribution de contenus (et plus precisement dans les entites de distribution, aussi appelees « serveurs cache »), une configuration specifique (c'est-adire differente d'un operateur CDN a l'autre) et statique (elle est stock& dans chaque serveur cache) qui definit des parametres d'utilisation de cette fonctionnalite. 10 La question de la scalabilite et de la couverture geographique des utilisateurs finaux (aussi appeles « entites clientes ») par un reseau de distribution de contenus se pose. Pour augmenter la couverture geographique de son reseau et son efficacite, l'operateur CDN a aujourd'hui deux options : 1) deployer de nouveaux serveurs cache dans les zones geographiques non 15 couvertes (cela peut impliquer de devoir deployer ces serveurs cache dans les reseaux des operateurs Internet afin de rendre le reseau de distribution de contenus plus efficace ; c'est l'option retenue par de grands acteurs comme Akamai, Google ou Facebook) ; 2) interconnecter son reseau de distribution de contenus avec celui d'un operateur 20 de CDN tiers. L'option 1) permet a l'operateur CDN de garder la maitrise sur les services qu'il delivre et sur les fonctionnalites offertes. Par contre, cela necessite des deploiements massifs de serveurs cache, demandant de gros investissements et d'importants colas d'operation et de maintenance (hebergement, bande passante reseau, energie, mise a 25 jour, remplacement de materiels). L'option 2) permet de repartir les colas et les revenus entre les operateurs CDN impliques. Mais la generalisation de l'interconnexion des reseaux de distribution de contenus se heurte a la diversite des technologies CDN utilisees par les operateurs CDN. Une interconnexion entre deux reseaux de distribution de contenus n'est possible que si 30 leurs couvertures fonctionnelles sont identiques. Et meme si c'est le cas, la mise en oeuvre du service n'est pas aisee car elle necessite la mise en place d'une configuration 3 specifique et statique (voir discussion plus haut) sur chacun des deux reseaux de distribution de contenus impliques. Ce processus de configuration, qui n'est pas aise, peut etre manuel ou automatise, par exemple via des interfaces de programmation applicative (ou API pour « Application Programming Interface »). Dans le cas ou l'un 5 des deux reseaux de distribution de contenus ne sait pas fournir une des fonctionnalites du service, l'interconnexion entre les deux reseaux de distribution de contenus est tout simplement impossible. En résumé, il n'est pas aise pour un operateur CDN d'interconnecter de facon dynamique son reseau de distribution de contenus a un autre reseau de distribution de 10 contenus, pour etendre la couverture geographique d'un service. La question de la couverture fonctionnelle d'un reseau de distribution de contenus se pose egalement. En effet, dans le cas ou un reseau de distribution de contenus ne sait pas fournir une des fonctionnalites d'un service, l'operateur CDN de ce reseau ne pourra pas etre sollicite par le fournisseur de contenu pour la mise en oeuvre de 15 ce service. Un des buts de la presente invention est de remedier aux insuffisances/inconvenients de l'etat de la technique discutes ci-dessus et/ou d'y apporter des ameliorations. 3. RESUME 20 Dans un mode de realisation particulier de l'invention, il est propose un procede de distribution, par une premiere entite de distribution comprise dans un premier reseau de distribution de contenus, d'un contenu mis a disposition par une entite d'origine, le procede comprenant les &apes suivantes mises en oeuvre par ladite premiere entite de distribution : 25 - reception dune requete d'acces au contenu en provenance dune entite cliente ; - si la requete d'acces est une premiere requete d'acces revue par la premiere entite de distribution pour ledit contenu : * action en tant que proxy : reemission de la requete d'acces aupres de l'entite d'origine ou aupres d'une deuxieme entite de distribution comprise dans un 30 deuxieme reseau de distribution de contenus, reception en retour et 4 retransmission a l'entite cliente d'une reponse comprenant le contenu, et stockage du contenu dans un cache ; et * transmission a l'entite d'origine ou a la deuxieme entite de distribution d'une requete de contexte, puis reception en retour d'une reponse comprenant une 5 description d'un contexte d'execution de la requete d'acces, et stockage de ladite description ; - si la requete d'acces n'est pas ladite premiere requete d'acces mais une requete ulterieure d'acces, utilisation de la description prealablement stock& en vue de realiser une execution de ladite requete ulterieure d'acces. 10 Ainsi, ce mode de realisation particulier de l'invention repose sur une approche tout a fait nouvelle et inventive consistant en une implementation dynamique, sur la premiere entite de distribution (serveur cache) du premier reseau de distribution de contenus (premier CDN), d'une description d'un contexte d'execution d'une requete d'acces a un contenu. En effet, cette description est revue et stock& par la premiere 15 entite de distribution (suite a la reception de la premiere requete d'acces), qui pourra ainsi l'utiliser pour traiter (executer) une requete ulterieure pour le meme contenu. Cette description decrit une ou plusieurs fonctionnalites (d'un service fourni par un fournisseur de contenu), ainsi qu'une configuration qui definit les parametres d'utilisation de cette ou ces fonctionnalite(s). 20 La solution propos& permet donc l'implementation dynamique, sur la premiere entite de distribution, d'une ou plusieurs fonctionnalites non disponibles de facon native sur le premier reseau de distribution de contenus. Dans le cas ou la description est fournie par l'entite d'origine, la solution propos& permet a l'operateur CDN du premier reseau de distribution de contenus d'être 25 sollicite par le fournisseur de contenu pour la mise en oeuvre d'un service, alors que la premiere entite de distribution de ce premier reseau ne dispose pas de maniere native de la ou les fonctionnalites de ce service. De cette facon, cet operateur CDN ameliore la couverture fonctionnelle de son reseau de distribution de contenus. Ceci permet egalement d'eviter au fournisseur de deployer ses propres serveurs avec les colas 30 associes. 5 Dans le cas ou la description est fournie par la deuxieme entite de distribution, la solution propos& permet a l'operateur CDN du deuxieme reseau de distribution de contenus d'etendre sa couverture geographique en s'appuyant sur le premier reseau de distribution de contenus. En d'autres termes, ceci permet de pallier les limitations de la 5 solution connue pour l'interconnexion de reseaux de distribution de contenus, liees aux divergences fonctionnelles entre reseaux (la solution propos& ne necessite pas la mise en place d'une configuration specifique et statique sur chacun des deux reseaux de distribution de contenus impliques dans l'interconnexion). Selon une caracteristique particuliere, la description du contexte d'execution de 10 la requete d'acces comprend : - un descriptif d'une port& dudit contexte d'execution, permettant d'identifier ledit contexte d'execution a partir de ladite requete d'acces ulterieure ; et - un code de traitement de ladite requete ulterieure d'acces. Selon une caracteristique particuliere, la description du contexte d'execution de 15 la requete d'acces comprend en outre un code d'initialisation dudit contexte. Le procede comprend en outre l'etape suivante, mise en oeuvre par la premiere entite de distribution, si la requete d'acces est ladite premiere requete d'acces : execution dudit code d'initialisation, afin d'initialiser une configuration d'execution de ladite requete ulterieure d'acces. 20 Selon une caracteristique particuliere, ledit code de traitement comprend un code d'autorisation de requete, permettant a la premiere entite de distribution, dans ladite &tape d'utilisation, de determiner, a partir d'au moins un element de ladite requete ulterieure d'acces, si ladite entite cliente est autorisee ou non a recevoir le contenu. Selon une caracteristique particuliere, ledit code de traitement comprend un code 25 d'identification de contenu, permettant a la premiere entite de distribution, dans ladite &tape d'utilisation, de calculer, a partir d'au moins un element de ladite requete ulterieure d'acces, un identifiant unique de contenu avec lequel la premiere entite de distribution identifiera le contenu dans le cache. Selon une caracteristique particuliere, ledit code de traitement comprend un code 30 de generation de contenu, permettant a la premiere entite de distribution, dans ladite &tape d'utilisation, si le contenu n'est pas disponible et valide dans le cache, de generer 6 ou aller chercher le contenu a partir d'au moins un element de ladite requete ulterieure d'acces, et de stocker le contenu dans le cache. Selon une caracteristique particuliere, ledit code de traitement comprend un code de debut de livraison, permettant a la premiere entite de distribution, dans ladite ≊ 5 d'utilisation, d'envoyer au moins une information de debut de livraison, vers une premiere autre entite, avant transmission du contenu a l'entite cliente. Selon une caracteristique particuliere, ledit code de traitement comprend un code de fin de livraison, permettant a la premiere entite de distribution, dans ladite ≊ d'utilisation, d'envoyer au moins une information de fin de livraison, vers ladite 10 premiere autre entite ou une deuxieme autre entite, apres transmission du contenu a l'entite cliente. Selon une caracteristique particuliere, une execution dudit code de traitement par la premiere entite de distribution, dans ladite &tape d'utilisation, est effectuee sous au moins une condition de limitation d'acces audit contenu et/ou de limitation de 15 consommation dudit contenu. Dans un autre mode de realisation de l'invention, it est propose un procede de distribution, par une premiere entite de distribution comprise dans un premier reseau de distribution de contenus, d'un contenu mis a disposition par une entite d'origine, le procede comprenant les &apes suivantes mises en oeuvre par 1 'entite d'origine ou une 20 deuxieme entite de distribution comprise dans un deuxieme reseau de distribution de contenus : - reception d'une requete de contexte provenant de ladite premiere entite de distribution ; et - envoi d'une reponse a ladite premiere entite de distribution, ladite reponse 25 comprenant une description d'un contexte d'execution d'une requete d'acces audit contenu en provenance dune entite cliente. Dans un autre mode de realisation de l'invention, it est propose une premiere entite de distribution, comprise dans un premier reseau de distribution de contenus et configure pour une distribution d'un contenu mis a disposition par une entite d'origine, 30 ladite premiere entite de distribution comprenant : 7 - des moyens de reception dune requete d'acces au contenu en provenance dune entite cliente ; - des moyens, actives si la requete d'acces est une premiere requete d'acces revue par la premiere entite de distribution pour ledit contenu, et configures pour : 5 * agir en tant que proxy en effectuant : une reemission de la requete d'acces aupres de l'entite d'origine ou aupres d'une deuxieme entite de distribution comprise dans un deuxieme reseau de distribution de contenus, une reception en retour et une retransmission a l'entite cliente d'une reponse comprenant le contenu, et un stockage du contenu dans un cache ; et 10 * transmettre a l'entite d'origine ou a la deuxieme entite de distribution une requete de contexte, puis recevoir en retour une reponse comprenant une description d'un contexte d'execution de la requete d'acces, et stocker ladite description ; - des moyens, actives si la requete d'acces n'est pas ladite premiere requete d'acces 15 mais une requete ulterieure d'acces, et configures pour utiliser la description prealablement stock& en vue de realiser une execution de ladite requete ulterieure d'acces. Dans un autre mode de realisation de l'invention, it est propose une entite d'origine, comprise dans un deuxieme reseau de distribution de contenus, et 20 comprenant : - des moyens de reception d'une requete de contexte provenant d'une premiere entite de distribution comprise dans un premier reseau de distribution de contenus et configuree pour une distribution d'un contenu mis a disposition par ladite entite d'origine ; et 25 - des moyens d'envoi d'une reponse a ladite premiere entite de distribution, ladite reponse comprenant une description d'un contexte d'execution d'une requete d'acces audit contenu en provenance dune entite cliente. Dans un autre mode de realisation de l'invention, it est propose une deuxieme entite de distribution, comprise dans un deuxieme reseau de distribution de contenus, et 30 comprenant : 8 - des moyens de reception d'une requete de contexte provenant d'une premiere entite de distribution comprise dans un premier reseau de distribution de contenus et configuree pour une distribution d'un contenu mis a disposition par une entite d'origine ; et 5 - des moyens d'envoi d'une reponse a ladite premiere entite de distribution, ladite reponse comprenant une description d'un contexte d'execution d'une requete d'acces audit contenu en provenance dune entite cliente. Dans un autre mode de realisation de l'invention, it est propose un produit programme d'ordinateur qui comprend des instructions de code de programme pour la 10 mise en oeuvre du procede execute par la premiere entite de distribution (dans l'un quelconque de ses differents modes de realisation), lorsque le programme est execute sur un ordinateur. Dans un autre mode de realisation de l'invention, it est propose un produit programme d'ordinateur qui comprend des instructions de code de programme pour la 15 mise en oeuvre du procede execute par l'entite d'origine ou la deuxieme entite de distribution (dans l'un quelconque de ses differents modes de realisation), lorsque le programme est execute sur un ordinateur. 4. LISTE DES FIGURES D'autres caracteristiques et avantages de l'invention apparaitront a la lecture de 20 la description suivante, dorm& a titre d'exemple indicatif et non limitatif, et des dessins annexes, dans lesquels : - les figures 1A et 1B presentent des organigrammes illustrant les procedes mis en oeuvre par une premiere entite de distribution (figure 1A) et une entite d'origine ou une deuxieme entite de distribution (figure 1B), dans un mode de realisation 25 particulier de l'invention ; - les figures 2 a 4 illustrent une premiere implementation des procedes des figures 1A et 1B, dans laquelle la premiere entite de distribution interagit avec l'entite d'origine : o la figure 2 detaillant le traitement d'une premiere requete d'acces ; 30 a la figure 3 detaillant le traitement d'une requete ulterieure d'acces, dans le cas oil le contenu est en cache ; 9 o la figure 4 detaillant le traitement d'une requete ulterieure d'acces, dans le cas oil le contenu n'est pas en cache ; - la figure 5 detaille le traitement d'une premiere requete d'acces dans une deuxieme implementation des procedes des figures 1A et 1B, dans laquelle la 5 premiere entite de distribution interagit avec la deuxieme entite de distribution (et non pas avec l'entite d'origine) ; et - la figure 6 presente la structure dune entite, pouvant etre une entite d'origine ou une entite de distribution (d'un premier ou second reseau de distribution de contenus), selon un mode de realisation particulier de l'invention. 10 5. DESCRIPTION DETAILLEE Sur toutes les figures du present document, les elements et &apes identiques sont designes par une meme reference numerique. On presente maintenant, en relation avec la figure IA, un procede de distribution d'un contenu, mis en oeuvre par une premiere entite de distribution, dans un mode de 15 realisation particulier de l'invention. On suppose que la premiere entite de distribution est comprise dans un premier reseau de distribution de contenus et que le contenu est mis a disposition par une entite d'origine. Dans une &tape 11, la premiere entite de distribution recoit une requete d'acces 20 au contenu en provenance dune entite cliente. Dans une premiere ≊ de test 12, la premiere entite determine s'il s'agit d'une premiere requete d'acces revue par la premiere entite de distribution pour ce contenu. En cas de reponse positive a la premiere ≊ de test 12 (i.e. s'il s'agit d'une premiere requete d'acces), la premiere entite de distribution effectue les &apes 13 et 14 25 puis revient a l'etape 11 pour traiter une nouvelle requete d'acces. Dans l'etape 13, la premiere entite de distribution agit en tant que proxy : - elle reemet la requete d'acces aupres de l'entite d'origine ou aupres d'une deuxieme entite de distribution comprise dans un deuxieme reseau de distribution de contenus ; 30 - elle recoit en retour une reponse comprenant le contenu ; - elle retransmet cette reponse a l'entite cliente ; et 10 - elle stocke le contenu dans un cache. Dans l'etape 14, la premiere entite de distribution transmet a l'entite d'origine ou a la deuxieme entite de distribution une requete de contexte ; puis recoit en retour une reponse comprenant une description d'un contexte d'execution de la requete d'acces ; 5 enfin elle stocke cette description. En cas de reponse negative a la premiere etape de test 12 (i.e. s'il ne s'agit pas d'une premiere requete d'acces mais d'une requete ulterieure d'acces), la premiere entite de distribution effectue une deuxieme etape de test 15 dans laquelle elle determine si le contenu est disponible et valide dans son cache. 10 En cas de reponse positive a la deuxieme etape de test 15 (i.e. si le contenu est disponible et valide dans son cache), la premiere entite de distribution effectue l'etape 16 puis revient a l'etape 11 pour traiter une nouvelle requete d'acces. Dans l'etape 16, la premiere entite de distribution utilise la description prealablement stock& (cf. etape 14) pour realiser une execution de la requete ulterieure d'acces (c'est-a-dire livrer le contenu 15 a l'entite cliente). En cas de reponse negative a la deuxieme etape de test 15 (i.e. si le contenu n'est pas « disponible et valide » dans son cache), la premiere entite de distribution effectue l'etape 17 puis revient a l'etape 11 pour traiter une nouvelle requete d'acces. Dans l'etape 17, la premiere entite de distribution genere ou va chercher (aupres de l'entite 20 d'origine ou aupres de la deuxieme entite de distribution) le contenu a partir d'au moins un element de la requete ulterieure d'acces. Comme illustre sur la figure 1B, le procede mis en oeuvre par l'entite d'origine ou la deuxieme entite de distribution (et donc complementaire de celui decrit sur la figure 1A pour la premiere entite de distribution) comprend : 25 une etape 21 de reception de la requete de contexte provenant de la premiere entite de distribution ; et une etape 22 d'envoi, a la premiere entite de distribution, de la reponse comprenant la description du contexte d'execution d'une requete d'acces au contenu. 30 Premiere implementation 11 On presente maintenant, en relation avec les figures 2 a 4, une premiere implementation des procedes des figures 1A et 1B, dans laquelle la premiere entite de distribution SC1 (aussi appelee par la suite « premier serveur cache ») interagit avec l'entite d'origine SO (aussi appelee par la suite « serveur d'origine »). La premiere entite 5 de distribution SC1 appartient, comme d'autres entites de distributions (autres serveurs cache), a un premier reseau de distribution de contenus reference CDN1. A titre d'exemple illustratif, et comme symbolise par la fleche referencee Oa, on suppose qu'un fournisseur de contenus, proposant le site www.site.com, utilise le premier reseau de distribution de contenus CDN1 pour delivrer ses contenus. Il met en 10 place le serveur d'origine SO, auquel les serveurs cache de ce premier reseau CDN1 (notamment le premier serveur cache SC1) vont s'adresser pour obtenir les ressources a delivrer. Le serveur d'origine SO stocke, pour chaque contenu (ou groupe de contenus), une description d'un contexte d'execution des requetes d'acces a ce(s) contenu(s). On suppose egalement, comme symbolise par la fleche referencee Ob,c, qu'une 15 entite cliente U veut acceder a un contenu, qui est une ressource situ& sur le site www.site.com et dont l'adresse url est http(s)://www.site.com/ressource. A cet effet, l'entite cliente U transmet une requete d'acces au contenu souhaite. Cette requete d'acces est dirigee vers le premier serveur cache SC1, par un moyen bien connu de l'homme du métier et hors du perimetre de la presente solution. 20 La figure 2 detaille le traitement, par le premier serveur cache SC1, de la requete d'acces transmise par l'entite cliente U dans le cas oil il s'agit d'une premiere requete d'acces a ce contenu (cf. &apes 13 et 14 de la figure 1A). Dans ce cas, le contenu n'est pas en cache dans le premier serveur cache SC. Dans une ≊ 1.1, pour eviter toute latence vis-a-vis de l'entite cliente U pour 25 cette premiere requete d'acces a ce contenu (ressource), le premier serveur cache SC1 agit comme simple proxy (par exemple selon le protocole TCP ou HTTP) : - il reemet la premiere requete d'acces de facon transparente aupres du serveur d'origine SO (la methode de redirection de la premiere requete d'acces vers le serveur d'origine SO est hors du perimetre de la presente solution) ; 30 - il recoit en retour une reponse comprenant le contenu ; 12 - it retransmet la reponse a l'entite cliente U, qui obtient ainsi la ressource demand& ; et - it stocke le contenu dans un cache. Dans une etape 1.2a, effectuee par exemple en meme temps que l'etape 1.1, le 5 premier serveur cache SC1 emet une requete de contexte vers le serveur d'origine SO afin d'obtenir une description d'un contexte d'execution de la requete d'acces (cf. plus haut la discussion de la fleche referencee Oa) . Dans une etape 1.2b, le premier serveur cache SC1 recoit en reponse une description d'un contexte d'execution de la requete d'acces, et stocke cette description. 10 Dans une mise en oeuvre particuliere, cette description du contexte d'execution comprend : - un descriptif d'une port& du contexte d'execution : it permet par la suite d'identifier le contexte d'execution a partir d'une requete d'acces ulterieure. En effet, le meme contexte d'execution peut etre appliqué a des requetes d'acces 15 differentes. On definit la port& du contexte par exemple en listant des URLs concernees (liste et/ou expressions regulieres correspondant a plusieurs URLs) ainsi qu'en precisant une duree de vie du contexte (permettant de renouveler les URLs listees a l'expiration de cette duree de vie) ; - un code d'initialisation du contexte : code dont l'execution permet d'initialiser 20 une configuration d'execution d'une requete ulterieure d'acces. Dans le cas oil une configuration globale au contexte, ou commune a plusieurs contextes, est necessaire, le code d'initialisation permet de l'initialiser. Cela peut concerner une configuration liee au fournisseur de contenu (limites en terme de ressources utilisables, mise en place de certificats HTTPS, configuration de parametres 25 utilises par les codes de traitement, etc.) ; et - un code de traitement d'une requete ulterieure d'acces : code dont l'execution permet le traitement de la requete dans les differentes phases de traitement. Il comprend lui-meme plusieurs codes (aussi appeles sous-codes) : o un code d'autorisation de requete : code permettant d'autoriser ou non le 30 premier serveur cache SC1 a traiter une requete ulterieure d'acces. Une execution ulterieure de ce code permet au premier serveur cache SC1, a 13 partir d'au moins un element d'une requete ulterieure d'acces (par exemple l'URL du contenu et l'adresse IP de l'entite cliente), de determiner si l'entite cliente est autorisee ou non a recevoir le contenu ; o un code d'identification de contenu : code permettant, a partir d'un ou 5 plusieurs elements de la premiere requete d'acces (URL du contenu, entetes, adresse IP, etc.) de calculer un identifiant unique de contenu, avec lequel le premier serveur cache SC1 identifiera le contenu dans le cache ; o un code de generation de contenu : code permettant, si le contenu n'est 10 pas « disponible et valide » dans le cache, de le generer a partir d'un ou plusieurs elements de la premiere requete d'acces (URL du contenu, entetes, adresse IP, etc.). On peut envisager d'aller chercher le contenu sur le serveur d'origine SO, ou de generer un nouveau contenu plus adapte (par exemple avec une des techniques suivantes : transcodage 15 d'images ou videos, transpackaging, adaptation de code HTML/javascript, etc.) ; o un code de debut de livraison : code execute au debut de la livraison du contenu, par exemple pour permettre l'envoi dune ou plusieurs informations de debut de livraison vers au moins un premier equipement 20 du fournisseur de contenu (par exemple l'envoi d'informations de suivi (informations de log, informations comptables, etc.) vers un serveur d'analyse), avant transmission du contenu a l'entite cliente U ; o un code de fin de livraison : code execute a la fin de la livraison du contenu, par exemple pour permettre l'envoi dune ou plusieurs 25 informations de fin de livraison vers au moins un deuxieme equipement du fournisseur de contenu (par exemple l'envoi d'informations sur le statut de la livraison (fin, erreurs, etc.) vers un serveur d'analyse (le meme que celui déjà mentionne ou un autre), apres transmission du contenu a l'entite cliente U. Ces informations de statut sont par exemple 30 utilisees pour compter le nombre de sessions actives, pour un contenu et pour un utilisateur. Le nombre de sessions actives est par exemple utilise 14 comme parametre d'entree par le code d'autorisation de requete, qui le compare a une valeur seuil (nombre maximal de sessions actives) ; o ... (on peut envisager d'autres types de codes pour d'autres phases de traitement non listees ici). 5 Les codes mentionnes ci-dessus peuvent se presenter sous plusieurs formes : scripts (python, php, etc.), byte-code (langages de programmation compiles independant de l'architecture d'execution, ex: LUA), binaires (langages de programmation compiles dependant de l'architecture, ex: C), etc. Pour des raisons de performances et de securites, l'execution de ces codes se fait, 10 dans une mise en oeuvre particuliere, dans des conditions ou Faeces et la consommation de ressources (contenus) sont limites (c'est-a-dire sous au moins une condition de limitation d'acces au contenu et/ou de limitation de consommation du contenu) mais adaptables (suivant l'entite cliente, le fournisseur de contenus, un niveau de priorite, etc.). 15 On peut egalement envisager d'executer les codes dans des containers (docker, lxc, rocket, etc.), voire meme que les codes soient directement fournis sous forme de containers executes avec des limitations de ressources. Dans une etape 1.3, le premier serveur cache SC1 execute le code d'initialisation (recu a l'etape 1.2b). Cette execution permet par exemple d'initialiser une configuration 20 HTTPS, avec mise en place des certificats et des cies privees necessaires a la gestion des requetes HTTPS. La figure 3 detaille le traitement, par le premier serveur cache SC1, de la requete d'acces transmise par l'entite cliente U dans le cas ou it s'agit d'une requete ulterieure d'acces et ou le contenu est en cache (cf. etape 16 de la figure 1A). 25 Dans une etape 2.1, le premier serveur cache SC1 identifie le contexte d'execution concerne (et donc egalement le code de traitement associe, c'est-a-dire compris dans la meme description de contexte d'execution, appelee ci-apres « code de traitement selectionne »), au vu de l'URL demand& et en utilisant le ou les descriptif(s) de port& de contexte d'execution qu'il a prealablement recu(s) et stocke(s). Pour 30 memoire, pour chaque premiere requete d'acces revue et trait& conformement au procede de la figure 2, le premier serveur cache SC1 a recu et stocke une description 15 d'un contexte d'execution, comprenant notamment un descriptif d'une port& de ce contexte d'execution (ce descriptif liste par exemple des URLs concernees). Dans une ≊ 2.2, le premier serveur cache SC1 execute le code d'autorisation de requete compris dans le code de traitement selectionne. Si le resultat de cette 5 execution est que la requete d'acces n'est pas autorisee, le premier serveur cache SC1 stoppe le traitement, sinon it poursuit et passe a l'etape 2.3. Dans l'etape 2.3, le premier serveur cache SC1 execute le code d'identification de contenu compris dans le code de traitement selectionne, puis, avec l'identifiant unique de contenu obtenu, determine si le contenu recherché est en cache et valide. Dans 10 le cas de la figure 3, on suppose que le contenu est effectivement en cache et valide, donc le premier serveur cache SC1 passe a l'etape 2.4. Dans l'etape 2.4, le premier serveur cache SC1 execute le code de debut de livraison (par exemple pour envoyer des informations comptables vers un serveur d'analyse SA). 15 Dans une ≊ 2.5, le premier serveur cache SC1 delivre le contenu a l'entite cliente U. Dans une ≊ 2.6, le premier serveur cache SC1 execute le code de fin de livraison (par exemple pour envoyer des informations de statut de livraison vers le serveur d'analyse SA). 20 La figure 4 detaille le traitement, par le premier serveur cache SC1, de la requete d'acces transmise par l'entite cliente U dans le cas ou it s'agit d'une requete ulterieure d'acces et oil le contenu n'est pas en cache (cf. ≊ 17 de la figure 1A). Les &apes 2.1 et 2.2 sont identiques a celles déjà decrites pour la figure 3. Dans l'etape 2.3a, comme dans l'etape 2.3 de la figure 3, le premier serveur 25 cache SC1 execute le code d'identification de contenu compris dans le code de traitement selectionne, puis, avec l'identifiant unique de contenu obtenu, determine si le contenu recherché est en cache et valide, donc le premier serveur cache SC1 passe a l'etape 2.3b. Dans l'etape 2.3b, le premier serveur cache SC1 execute le code de generation de 30 contenu. Par exemple, dans une sous-etape 2.3b', it va chercher le contenu sur le serveur 16 d'origine SO (envoi d'une requete et reception d'une reponse avec le contenu). Puis it stocke le contenu dans un cache. Les &apes 2.4, 2.5 et 2.6 sont identiques a celles déjà decrites pour la figure 3. Deuxieme implementation 5 On presente maintenant, en relation avec la figure 5, une deuxieme implementation des procedes des figures 1A et 1B, dans laquelle la premiere entite de distribution SC1 (aussi appelee par la suite « premier serveur cache ») interagit avec la deuxieme entite de distribution SC2 (aussi appelee par la suite « deuxieme serveur cache »), et non pas avec l'entite d'origine SO. La deuxieme entite de distribution SC2 10 appartient, comme d'autres entites de distributions (autres serveurs cache), a un deuxieme reseau de distribution de contenus reference CDN2. Plus precisement, la figure 5 detaille le traitement d'une premiere requete d'acces dans le cadre de cette deuxieme implementation. A titre d'exemple illustratif, et comme symbolise par la fleche referencee 41, on 15 suppose qu'un fournisseur de contenus, proposant le site www.site.com, utilise le deuxieme reseau de distribution de contenus CDN2 pour delivrer ses contenus. Il met en place le serveur d'origine SO, auquel les serveurs cache de ce deuxieme reseau CDN2 (notamment le deuxieme serveur cache SC2) vont s'adresser pour obtenir les ressources a delivrer (comme symbolise par la fleche referencee 42). 20 On suppose egalement, comme symbolise par la fleche referencee Oa', que le deuxieme serveur cache SC2 stocke, pour chaque contenu (ou groupe de contenus), une description d'un contexte d'execution des requetes d'acces a ce(s) contenu(s). Dans cette deuxieme implementation, et contrairement a la premiere implementation, le serveur d'origine SO ne stocke pas, pour chaque contenu (ou groupe de contenus), une 25 description d'un contexte d'execution des requetes d'acces a ce(s) contenu(s). On suppose enfin, comme symbolise par la fleche referencee Ob,c', qu'une entite cliente U veut acceder a un contenu, qui est une ressource situ& sur le site www.site.com et dont l'adresse url est http(s)://www.site.com/ressource. A cet effet, l'entite cliente U transmet une requete d'acces au contenu souhaite. Cette requete 30 d'acces est dirigee vers le premier serveur cache SC1 (du premier reseau de distribution 17 de contenus CDN1), par un moyen bien connu de l'homme du métier et hors du perimetre de la presente solution. Dans cette deuxieme implementation, le premier serveur cache SC1 effectue des &apes 1.1', 1.2a', 1.2b' et 1.3' qui se deduisent directement des &apes 1.1, 1.2a, 1.2b et 5 1.3 déjà decrites pour la figure 2, en considerant que le deuxieme serveur cache SC2 de la figure 5 y joue le role du serveur d'origine SO dans la figure 2. De meme, dans la deuxieme implementation : - le traitement, par le premier serveur cache SC1 d'une requete d'acces transmise par l'entite cliente U dans le cas ou it s'agit d'une requete ulterieure d'acces et 10 ou le contenu est en cache et valide (dans le premier serveur cache SC1), peut etre deduit directement des &apes 2.1 a 2.6 déjà decrites pour la figure 3, en considerant que le deuxieme serveur cache SC2 y joue le role du serveur d'origine SO dans la figure 3 ; - le traitement, par le premier serveur cache SC1 d'une requete d'acces transmise 15 par l'entite cliente U dans le cas ou it s'agit d'une requete ulterieure d'acces et ou le contenu n'est pas « en cache et valide » (dans le premier serveur cache SC1), peut etre deduit directement des &apes 2.1 a 2.6 déjà decrites pour la figure 4, en considerant que le deuxieme serveur cache SC2 y joue le role du serveur d'origine SO dans la figure 4. 20 Troisieme implementation Dans une troisieme implementation, qui est une variante de la deuxieme implementation : - le serveur d'origine SO et le deuxieme serveur cache SC2 mettent en oeuvre la solution de la premiere implementation (voir les figures 2 a 4), en jouant 25 respectivement le role du serveur d'origine SO et du premier serveur cache SC1 de la premiere implementation. En consequence (puisqu'il s'agit d'une des caracteristiques de la premiere implementation), c'est le serveur d'origine SO qui stocke initialement, pour chaque contenu (ou groupe de contenus), une description d'un contexte d'execution des requetes d'acces a ce(s) contenu(s) ; et 30 le deuxieme serveur cache SC2 (puisqu'il joue le role du premier serveur cache SC1 de la premiere implementation) va ensuite emettre une requete de contexte 18 vers le serveur d'origine SO afin d'obtenir une description d'un contexte d'execution de la requete d'acces (cf. plus haut la discussion de la fleche referencee Oa de la figure 2) ; et - le deuxieme serveur cache SC2 et le premier serveur cache SC1 mettent en 5 oeuvre la solution de la deuxieme implementation (voir la figure 5). Autres implementations D'autres implementations peuvent etre envisages en mettant en cascade plus de deux reseaux de distribution de contenus. En notant CDNi a CDN1 les n reseaux de distribution de contenus en cascade, et SC1 a SCn les serveurs cache correspondants, 10 avec n > 2, on a un systeme dans lequel : - le serveur d'origine SO et le nieme serveur cache SCn mettent en oeuvre la solution de la premiere implementation (voir les figures 2 a 4), en jouant respectivement le role du serveur d'origine SO et du premier serveur cache SC1 de la premiere implementation ; et 15 - chaque couple de serveurs cache (SCk, SCk_i), avec k E fn. - 1 ... 2), met en oeuvre la solution de la deuxieme implementation (voir la figure 5). La figure 6 presente la structure dune entite 61, pouvant etre l'entite d'origine (serveur d'origine) SO, la premiere entite de distribution (premier serveur cache) SC1 ou la deuxieme entite de distribution (deuxieme serveur cache) SC2, selon un mode de 20 realisation particulier de l'invention. Cette entite comprend une memoire vive 612 (par exemple une memoire RAM), une unite de traitement 611, equip& par exemple d'un processeur, et pilot& par un programme d'ordinateur stocks dans une memoire morte 613 (par exemple une memoire ROM ou un disque dur). A l'initialisation, les instructions de code du programme 25 d'ordinateur sont par exemple charges dans la memoire vive 612 avant d'être executees par le processeur de l'unite de traitement 611. Cette figure 6 illustre seulement une maniere particuliere, parmi plusieurs possibles, de realiser les differents algorithmes &taffies ci-dessus, en relation avec les figures 1A, 1B et 2 a 5. En effet, la technique de l'invention se realise indifferemment : 19 - sur une machine de calcul reprogrammable (un ordinateur PC, un processeur DSP ou un microcontroleur) executant un programme comprenant une sequence d'instructions, ou - sur une machine de calcul dediee (par exemple un ensemble de portes logiques 5 comme un FPGA ou un ASIC, ou tout autre module materiel). Dans le cas ou l'invention est implant& sur une machine de calcul reprogrammable, le programme correspondant (c'est-a-dire la sequence d'instructions) pourra etre stocke dans un medium de stockage amovible (tel que par exemple une disquette, un CD-ROM ou un DVD-ROM) ou non, REVENDICATIONS1. Procede de distribution, par une premiere entite de distribution (SC1) comprise dans un premier reseau de distribution de contenus (CDN1), d'un contenu mis a disposition par une entite d'origine (SO), le procede comprenant les &apes suivantes mises en oeuvre par ladite premiere entite de distribution (SC1) : reception (11) dune requete d'acces au contenu en provenance dune entite cliente (U) ; si la requete d'acces est une premiere requete d'acces revue par la premiere entite de distribution pour ledit contenu : * action en tant que proxy (13) : reemission de la requete d'acces aupres de l'entite d'origine ou aupres d'une deuxieme entite de distribution (SC2) comprise dans un deuxieme reseau de distribution de contenus (CDN2), reception en retour et retransmission a l'entite cliente d'une reponse comprenant le contenu, et stockage du contenu dans un cache ; et * transmission (14) a l'entite d'origine ou a la deuxieme entite de distribution d'une requete de contexte, puis reception (14) en retour d'une reponse comprenant une description d'un contexte d'execution de la requete d'acces, et stockage de ladite description ; si la requete d'acces n'est pas ladite premiere requete d'acces mais une requete ulterieure d'acces, utilisation (16, 17) de la description prealablement stock& en vue de realiser une execution de ladite requete ulterieure d'acces. 2. Procede de distribution selon la revendication 1, dans lequel la description du contexte d'execution de la requete d'acces comprend : un descriptif d'une port& dudit contexte d'execution, permettant d'identifier ledit contexte d'execution a partir de ladite requete d'acces ulterieure ; et un code de traitement de ladite requete ulterieure d'acces. 3. Procede de distribution selon la revendication 2, dans lequel la description du contexte d'execution de la requete d'acces comprend en outre un code d'initialisation 21 dudit contexte, et dans lequel le procede comprend en outre l'etape suivante, mise en oeuvre par la premiere entite de distribution, si la requete d'acces est ladite premiere requete d'acces : * execution dudit code d'initialisation, afin d'initialiser une configuration 5 d'execution de ladite requete ulterieure d'acces. 4. Procede de distribution selon l'une quelconque des revendications 2 et 3, dans lequel ledit code de traitement comprend un code d'autorisation de requete, permettant a la premiere entite de distribution, dans ladite ≊ d'utilisation, de determiner, a partir 10 d'au moins un element de ladite requete ulterieure d'acces, si ladite entite cliente est autorisee ou non a recevoir le contenu. 5. Procede de distribution selon l'une quelconque des revendications 2 a 4, dans lequel ledit code de traitement comprend un code d'identification de contenu, permettant 15 a la premiere entite de distribution, dans ladite ≊ d'utilisation, de calculer, a partir d'au moins un element de ladite requete ulterieure d'acces, un identifiant unique de contenu avec lequel la premiere entite de distribution identifiera le contenu dans le cache. 20 6. Procede de distribution selon l'une quelconque des revendications 2 a 5, dans lequel ledit code de traitement comprend un code de generation de contenu, permettant a la premiere entite de distribution, dans ladite ≊ d'utilisation, si le contenu n'est pas disponible et valide dans le cache, de generer ou aller chercher le contenu a partir d'au moins un element de ladite requete ulterieure d'acces, et de stocker le contenu dans le 25 cache. 7. Procede de distribution selon l'une quelconque des revendications 2 a 6, dans lequel ledit code de traitement comprend un code de debut de livraison, permettant a la premiere entite de distribution, dans ladite ≊ d'utilisation, d'envoyer au moins une 30 information de debut de livraison, vers une premiere autre entite, avant transmission du contenu a l'entite cliente. 22 8. Procede de distribution selon l'une quelconque des revendications 2 a 7, dans lequel ledit code de traitement comprend un code de fin de livraison, permettant a la premiere entite de distribution, dans ladite etape d'utilisation, d'envoyer au moins une 5 information de fin de livraison, vers ladite premiere autre entite ou une deuxieme autre entite, apres transmission du contenu a l'entite cliente. 9. Procede de distribution selon l'une quelconque des revendications 2 a 8, dans lequel une execution dudit code de traitement par la premiere entite de distribution, dans 10 ladite etape d'utilisation, est effectuee sous au moins une condition de limitation d'acces audit contenu et/ou de limitation de consommation dudit contenu. 10. Procede de distribution, par une premiere entite de distribution (SC1) comprise dans un premier reseau de distribution de contenus (CDN1), d'un contenu mis a 15 disposition par une entite d'origine (SO), le procede comprenant les etapes suivantes mises en oeuvre par l'entite d'origine ou une deuxieme entite de distribution (SC2) comprise dans un deuxieme reseau de distribution de contenus (CDN2) : reception (21) d'une requete de contexte provenant de ladite premiere entite de distribution ; et 20 envoi (22) d'une reponse a ladite premiere entite de distribution, ladite reponse comprenant une description d'un contexte d'execution d'une requete d'acces audit contenu en provenance dune entite cliente (U). 11. Premiere entite de distribution (SC1), comprise dans un premier reseau de 25 distribution de contenus (CDN1) et configuree pour une distribution d'un contenu mis a disposition par une entite d'origine (SO), ladite premiere entite de distribution (SC1) comprenant : - des moyens de reception dune requete d'acces au contenu en provenance dune entite cliente (U) ; 30 - des moyens, actives si la requete d'acces est une premiere requete d'acces revue par la premiere entite de distribution pour ledit contenu, et configures pour : 23 * agir en tant que proxy en effectuant : une reemission de la requete d'acces aupres de l'entite d'origine ou aupres d'une deuxieme entite de distribution (SC2) comprise dans un deuxieme reseau de distribution de contenus (CDN2), une reception en retour et une retransmission a l'entite cliente 5 d'une reponse comprenant le contenu, et un stockage du contenu dans un cache ; et * transmettre (14) a l'entite d'origine ou a la deuxieme entite de distribution une requete de contexte, puis recevoir (14) en retour une reponse comprenant une description d'un contexte d'execution de la requete d'acces, 10 et stocker ladite description ; des moyens, actives si la requete d'acces n'est pas ladite premiere requete d'acces mais une requete ulterieure d'acces, et configures pour utiliser (16, 17) la description prealablement stock& en vue de realiser une execution de ladite requete ulterieure d'acces. 15 12. Entite d'origine (SO), comprise dans un deuxieme reseau de distribution de contenus (CDN2), et comprenant : des moyens de reception d'une requete de contexte provenant d'une premiere entite de distribution (SC1) comprise dans un premier reseau de distribution de 20 contenus (CDN1) et configuree pour une distribution d'un contenu mis a disposition par ladite entite d'origine (SO) ; et des moyens d'envoi d'une reponse a ladite premiere entite de distribution, ladite reponse comprenant une description d'un contexte d'execution d'une requete d'acces audit contenu en provenance dune entite cliente (U). 25 13. Deuxieme entite de distribution (SC2), comprise dans un deuxieme reseau de distribution de contenus (CDN2), et comprenant : - des moyens de reception d'une requete de contexte provenant d'une premiere entite de distribution (SC1) comprise dans un premier reseau de distribution de 30 contenus (CDN1) et configuree pour une distribution d'un contenu mis a disposition par une entite d'origine (SO) ; et 24 des moyens d'envoi d'une reponse a ladite premiere entite de distribution, ladite reponse comprenant une description d'un contexte d'execution d'une requete d'acces audit contenu en provenance dune entite cliente (U). 5 14. Produit programme d'ordinateur, comprenant des instructions de code de programme pour la mise en oeuvre du procede de l'une quelconque des revendications 1 a 9. 15. Produit programme d'ordinateur, comprenant des instructions de code de 10 programme pour la mise en oeuvre du procede de la revendication 10.