Technique de distribution d'un contenu vers un utilisateur
L'invention concerne une technique de distribution d'un contenu vers un utilisateur a partir de dispositifs de distribution de contenus L'invention se situe dans les domaines des télécommunications et plus particulièrement dans le domaine de la distribution de contenus
II existe des techniques permettant à un utilisateur d'un terminal d'obtenir un contenu après d'un serveur de distribution de contenus Afin de garantir une disponibilité du contenu, il est possible de l'obtenir à partir d'une pluralité de serveurs de distribution de contenus dans un réseau de communication ou de pairs disposant au moins une partie du contenu dans un réseau P2P, pour
"Peer-To-Peer" Le terminal obtient simultanément les données à partir de plusieurs serveurs ou pairs L'éventuelle redondance introduite par ces serveurs ou par ces pairs permet d'augmenter la disponibilité effective du contenu II s'agit par exemple de faire varier le nombre de serveurs ou de pairs impliqués dans la distribution du contenu afin de fournir une qualité donnée Cette qualité donnée est recherchée mais n'est pas garantie Par ailleurs, une mesure de la qualité, réseau ou bien telle que ressentie par l'utilisateur est complexe à réaliser, une pluralité de serveurs étant impliquée dans la distribution du contenu De plus, une décision n'est prise qu'en réaction à des mesures de la qualité de faible niveau L'utilisateur ressent alors cette baisse de qualité et se trouve non satisfait
Un des buts de l'invention est de remédier à des insuffisances/inconvénients de l'état de la technique et/ou d'y apporter des améliorations
Selon un premier aspect, l'invention a pour objet un procédé de distribution d'un contenu vers un utilisateur, comprenant les étapes suivantes mises en œuvre par un premier dispositif de distribution de contenus, dit dispositif secondaire
- une étape d'obtention en provenance de l'utilisateur d'au moins un indicateur de qualité relatif à une distribution d'une partie dudit contenu vers ledit utilisateur par un deuxième dispositif de distribution de contenus, dit dispositif primaire ,
- une étape de détection d'un événement susceptible d'affecter la distribution du contenu par le dispositif primaire vers l'utilisateur, à partir d'au moins des indicateurs de qualité relatifs a au moins une distribution de contenus par ledit dispositif primaire , - une étape de commande de transfert du dispositif primaire vers le dispositif secondaire a destination de l'utilisateur, en vue d'une distribution par le dispositif secondaire de parties dudit contenu non distribuées par le dispositif primaire
Ainsi, le procède de distribution de contenus permet de détecter une baisse de qualité en se basant sur des mesures effectuées par au moins un utilisateur auquel un contenu est en cours de diffusion à partir du dispositif primaire Ceci permet d'anticiper des actions a prendre pour garantir une qualité de réception a l'utilisateur Les dispositifs de distribution de contenus peuvent être des
serveurs de distributions de contenus Ils peuvent également être des pairs dans un réseau de type "peer-to-peer" ou P2P Le terminal de l'utilisateur peut être un pair du reseau P2P dans ce cas, il peut jouer les deux rôles, terminal et serveur
Le procédé est remarquable en ce que le dispositif secondaire est récepteur de ces mesures et peut de ce fait prendre le relais du dispositif primaire pour la distribution du contenu
En effet, de manière classique, le dispositif ou le pair distribuant un contenu est récepteur des mesures effectuées par le terminal de l'utilisateur Grâce au procédé de distribution de contenus selon l'invention, des mauvais ressentis des utilisateurs liés à une dégradation de la qualité sont ainsi évités, le procédé de distribution de contenus anticipant un problème à venir et proposant une solution au heu de réagir suite au problème Ainsi, il n'est pas nécessaire dans un tel cas d'introduire une redondance en prévoyant une pluralité de dispositifs afin de garantir que la qualité visée sera atteinte On limite ainsi les redondances nécessaires dans le réseau de communication Par ailleurs, la charge processeur du dispositif primaire distribuant le contenu est diminuée puisque ce dernier n'est pas en charge de la collecte des mesures, ni de leur analyse II n'est plus à la fois juge et partie dans la sécurisation du procédé de distribution de contenu Le dispositif secondaire dispose de ressources processeur disponibles pour réaliser ces tâches Le chemin emprunté dans le réseau entre l'utilisateur et le dispositif secondaire étant a priori différent de celui entre l'utilisateur et le dispositif primaire, une fois le transfert de la session du dispositif primaire vers le dispositif secondaire effectué, la qualité de la distribution du contenu ne peut que s'améliorer De plus, la supervision de la qualité de la distribution d'un contenu est moins complexe à mettre en place dans une telle architecture que dans un réseau de communication où une pluralité de serveurs ou de pairs sont impliqués dans la distribution du contenu La supervision de la qualité de la distribution d'un contenu est alors déterministe et maîtrisée par le réseau Dans un réseau impliquant une pluralité de serveurs ou de pairs, la supervision puis la décision de changement de serveur ou de pair sont généralement réalisées par le terminal lui-même Les changements de serveurs et de pairs par un ensemble de terminaux peuvent alors entraîner des oscillations de la charge des liens et des serveurs, ce qui peut empêcher la fourniture du service de distribution de contenu alors que la charge nominale du système n'est pas encore atteinte
Le procédé de distribution est particulièrement adapté pour une mise en œuvre dans un réseau de communication de type CDN, pour "Content Delivery Network"
Selon une caractéristique particulière, l'événement appartient au groupe comprenant une diminution de qualité affectant la distribution de contenus par le dispositif primaire, une diminution de qualité affectant la distribution du contenu par le dispositif primaire vers l'utilisateur, une coupure d'échanges avec le dispositif primaire, une atypie dans des données de synthèse déterminées pour le dispositif primaire par rapport a celles d'autres dispositifs de distribution de contenus
Ainsi, une décision de transfert peut être prise sur différents critères, déterminés soit pour l'utilisateur concerné, soit pour un ensemble d'utilisateurs en relation avec le dispositif primaire.
Selon une autre caractéristique particulière, le procédé comprend en outre une étape d'obtention du contenu et une étape de distribution d'un autre contenu préalablement à l'étape de distribution du contenu.
Le dispositif secondaire est apte à mettre en œuvre des étapes préliminaires à la distribution du contenu avant ou parallèlement à l'envoi de la commande de transfert. Il peut notamment avoir été sélectionné en raison d'une distribution en cours de ce contenu vers d'autres utilisateurs. Une fois la session de l'utilisateur avec le dispositif primaire transférée, il peut alors prendre immédiatement le relais dans la distribution du contenu, en reprenant la distribution à partir de parties non distribuées par le dispositif primaire. L'utilisateur ne ressent alors dans le pire cas qu'une interruption de courte durée dans la distribution du contenu. Il est également possible pour le dispositif secondaire d'insérer un autre contenu, en tant que contenu d'attente. Selon encore une autre caractéristique particulière, la commande de transfert comprend une notification dudit événement à l'utilisateur.
Ainsi, l'information apportée à l'utilisateur est améliorée.
Corrélativement, l'invention a également pour objet un procédé d'obtention d'un contenu par un utilisateur, comprenant les étapes suivantes mises en œuvre par ledit utilisateur : - une étape de découverte d'un premier dispositif de distribution de contenus, dit dispositif primaire, et d'un deuxième dispositif de distribution de contenus, dit dispositif secondaire, aptes à distribuer ledit contenu ;
- une étape de réception d'au moins une partie du contenu en provenance du dispositif primaire ;
- une étape de transmission à destination du dispositif secondaire d'au moins un indicateur de qualité relatif à la distribution d'une partie dudit contenu vers ledit utilisateur par le dispositif primaire ;
- une étape de réception d'une commande de transfert du dispositif primaire vers le dispositif secondaire, en vue d'une distribution par le dispositif secondaire de parties dudit contenu non distribuées par le dispositif primaire. Selon un deuxième aspect, l'invention concerne un dispositif de distribution de contenus vers un utilisateur, comprenant :
- des moyens d'obtention en provenance de l'utilisateur d'au moins un indicateur de qualité relatif à une distribution d'une partie dudit contenu vers ledit utilisateur par un autre dispositif de distribution de contenus, dit dispositif primaire ;
- des moyens de détection d'un événement susceptible d'affecter la distribution du contenu par le dispositif primaire vers l'utilisateur à partir d'indicateurs de qualité relatifs à au moins une distribution de contenus par le dispositif primaire ,
- des moyens de commande de transfert de l'utilisateur du dispositif primaire vers ledit dispositif, en vue d'une distribution par ledit dispositif de parties dudit contenu non distribuées par le dispositif primaire
Selon un troisième aspect, l'invention concerne un dispositif d'obtention d'un contenu comprenant
- des moyens de découverte d'un premier dispositif de distribution de contenus, dit dispositif primaire, et d'un deuxième dispositif de distribution de contenus, dit dispositif secondaire, aptes à distribuer ledit contenu ,
- des moyens de réception d'au moins une partie du contenu en provenance du dispositif primaire ,
- des moyens de transmission à destination du dispositif secondaire d'au moins un indicateur de qualité relatif à la distribution d'une partie dudit contenu vers ledit utilisateur par le dispositif primaire ,
- des moyens de réception d'une commande de transfert du dispositif primaire vers le dispositif secondaire, en vue d'une distribution par le dispositif secondaire de parties dudit contenu non distribuées par le dispositif primaire
Selon un quatrième aspect, l'invention concerne un système de distribution de contenu comprenant des dispositifs de distribution de contenus et au moins un dispositif d'obtention d'un contenu tels que décrit précédemment
Selon un cinquième aspect, l'invention concerne un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de distribution d'un contenu tel que décrit précédemment par un dispositif de distribution de contenus, lorsque ce programme est exécuté par un processeur
Selon un sixième aspect, l'invention concerne un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé d'obtention d'un contenu tel que décrit précédemment par un dispositif d'obtention d'un contenu, lorsque ce programme est exécuté par un processeur L'invention sera mieux comprise à l'aide de la description suivante d'un mode de réalisation particulier des procédés de l'invention, en référence aux dessins annexés sur lesquels la figure 1 représente un système de distribution de contenus dans son environnement selon un mode particulier de réalisation de l'invention , la figure 2 représente un schéma simplifié des étapes des procédés mis en œuvre pour la distribution de contenus selon un mode particulier de réalisation de l'invention ,
la figure 3 représente un dispositif de distribution de contenus selon un mode particulier de réalisation de l'invention , la figure 4 représente un dispositif d'obtention d'un contenu selon un mode particulier de réalisation de l'invention , - la figure 5 représente un exemple de contenu reçu par un terminal selon un mode particulier de réalisation de l'invention
Un système 1 de distribution de contenus dans son environnement va être décrit en relation avec la figure 1 selon un mode particulier de réalisation
Le système 1 de distribution de contenus comprend une pluralité de serveurs de distribution de contenus, dont deux d'entre eux S 1 , S2 sont représentés sur la figure 1 , à destination d'une pluralité d'utilisateurs Ul, U2 Par la suite, on désigne par la même référence aussi bien le terminal que l'utilisateur de ce terminal Les contenus à distribuer sont répartis sur les serveurs Sl,
S2 de distribution de contenus et des serveurs de contenus S3, S4, S5 Les serveurs Sl, S2 de distribution et les serveurs de contenus S3, S4, S5 constituent une partie d'un réseau de distribution de contenu CDN ou "Content Dehvery Network" en anglais Un réseau CDN est constitué de serveurs reliés en réseau à travers un réseau de communication de type Internet ou tout autre type de réseau, par exemple un réseau mobile Ces serveurs coopèrent afin de mettre à disposition des utilisateurs du contenu multimédia ou des données Les serveurs coopèrent entre eux afin de satisfaire des requêtes émises par des utilisateurs en vue d'un accès à un contenu ou à des données et distribuent aux utilisateurs le contenu ou les données en retour L'article "A taxonomy and survey of Content Dehvery Networks" de M Pathan et al , Technical Report, GRIDS-TR-2007-4,
Gπd Computing and Distπbuted Systems Laboratory, The University of Melbourne, Austraha 12
February, 2007, présente un état de l'art de ce type de réseau II est bien entendu que seule une partie du réseau CDN utilisée dans le cadre de la description de ce mode de réalisation est représentée sur la figure 1
Sur la figure 1 sont représentés à titre indicatif des contenus Cl, C2, C3 répartis sur ces différents serveurs S1-S5 Les contenus peuvent être de différents types II peut s'agir de contenus diffusés en temps réel, de contenus multimédias susceptibles d'être obtenus à la demande, de contenus multimédias susceptibles d'être diffusés en mode de lecture en continu ou "streaming" en anglais, de contenus d'actualités au format RSS, de livres multimédias On considère par la suite que les contenus sont divisés en blocs élémentaires Un contenu peut être reparti sur différents serveurs Un numéro de bloc du contenu permet d'identifier un bloc donné du contenu Un bloc index « Index Cl » permet d'obtenir des informations sur la localisation des blocs de données sur les différents serveurs Par exemple, pour le contenu Cl , le bloc index indique que les blocs de données bl a b20 sont disponibles sur les serveurs Sl et S5, les blocs b21 a b50 sur le serveur S3,
les blocs b51 à b360 sur les serveurs S3 et S5, les blocs b361 à b480 sur le serveur S5, les blocs b400 à b480 sur les serveurs Sl et S4
Le serveur S l de distribution de contenus comprend les blocs bl à b20 et les blocs b400 à t>480 du contenu Cl Le serveur de contenus S3 comprend les blocs b21 à b50 et les blocs b51 à b360 du contenu Cl, le contenu C2 Le serveur de contenus S4 comprend les blocs b400 à b480 du contenu Cl et le contenu C3 Le serveur de contenus S5 comprend les blocs bl à b20, les blocs b51 a b360, les blocs b361 a b480 du contenu Cl
II est souligné ici que la répartition des contenus, des blocs de données n'est donnée qu'à titre d'exemple illustrant la mise en œuvre des procédés de sélection, de distribution de contenus et d'obtention de contenus
Sur la figure 1 est également représenté un serveur catalogue P, proposant aux utilisateurs Ul, U2 différents contenus Cl, C3 dans un catalogue C
Les différentes étapes des procédés mettant en œuvre l'invention, c'est-à-dire le procédé de sélection mis en œuvre par un serveur catalogue, celui de distribution d'un contenu mis en œuvre par un serveur de distribution de contenus et celui d'obtention d'un contenu par un terminal selon un mode particulier de réalisation de l'invention vont maintenant être décrites en relation avec la figure 2 II est à noter que toutes les étapes ne sont pas représentées sur la figure 2 afin de ne pas complexifier celle-ci
Dans une étape Fl du procédé d'obtention de contenus, l'utilisateur Ul requiert une distribution du contenu Cl au serveur catalogue P par un message Req(Cl) La requête Req(Cl) est reçue par le serveur catalogue P dans une étape El du procédé de sélection Toujours dans cette étape El, le serveur catalogue P détermine des serveurs aptes à distribuer le contenu Cl Par serveur apte à distribuer le contenu, on entend un serveur présentant de bonnes conditions de disponibilité, de charge ou bien situé à proximité du terminal requérant la distribution du contenu Dans une étape E2 du procédé de sélection, le serveur catalogue P transmet à l'utilisateur Ul une réponse Resp(Cl ,Sl,S2) comprenant l'adresse du serveur Sl , dit serveur primaire, et une adresse contentUrl du contenu Cl dans le réseau de communication ou URL pour "Uniform Resource
Locator" La réponse Resp(Cl,Sl,S2) comprend également une commande en vue de la transmission par le terminal Ul au serveur S2, dit serveur secondaire, d'indicateurs de qualité relatifs à la distribution du contenu Cl par le serveur primaire Sl II est à noter que le serveur S2 fait partie des serveurs de distribution de contenus aptes à distribuer le contenu Cl Par exemple, le serveur S2 peut être en cours de distribution du contenu Cl vers un autre utilisateur
On se place par la suite dans le cas particulier ou la commande de transmission d'indicateurs de qualité comprend un programme interprétable par le terminal de l'utilisateur Ul , par exemple sous forme de code AJAX, pour "Asynchronous JavaScript and XML", comprenant
des instructions logicielles pour transmettre au serveur S2 des mesures ou des indicateurs de qualité relatifs à la distribution du contenu C l à l'utilisateur Ul par le serveur primaire S l
Dans une étape F2 du procédé d'obtention du contenu Cl, l'utilisateur Ul obtient la réponse Resp(C,S l ,S2) en provenance du serveur catalogue P L'utilisateur Ul découvre ainsi deux serveurs Sl, S2, aptes à distribuer le contenu
Dans une étape Gl du procédé de distribution, le serveur primaire S l obtient le contenu Cl dans le réseau CDN en consultant le bloc index du contenu Cl puis à partir des serveurs de contenus Cette étape Gl n'est pas plus précisément détaillée, étant donné qu'elle met en œuvre des mécanismes classiques des réseaux de type CDN Puis, l'utilisateur Ul obtient des ensembles de blocs de données du contenu Cl, cette phase d'obtention étant symbolisée sur la figure 2 par une flèche double entre l'utilisateur Ul et le serveur primaire S 1
Dans une étape F3 du procédé d'obtention, l'utilisateur Ul détermine des indicateurs de qualité, également appelés indicateurs de performance, relatifs à la distribution d'un ensemble de blocs de données du contenu Cl Par indicateur de qualité, on entend une mesure effectuée par l'utilisateur Ul suite à la livraison d'un ensemble de blocs II peut s'agir d'une qualité mesurée ou d'une qualité ressentie par l'utilisateur Ul De tels indicateurs de qualité sont par exemple un nombre de paquets perdus, une mesure de gigue, un retard, un score d'opinion moyenne (MOS) pour des contenus audio ou vidéo, un changement de débit du lien entre le serveur primaire S l et l'utilisateur Ul , un indicateur représentatif de la charge processeur du terminal Ul, un indicateur représentatif d'un taux de disponibilité d'une mémoire du terminal Ul, De tels indicateurs de qualité sont par exemple collectés pour une connexion RTP, pour «Real-time Transport», et transmis dans des messages RTCP XR, pour «RTP Control Protocol Extended Report» Ils peuvent également être collectés pour une session de « streaming » et transmis dans des messages de contrôle de session multimédia, par exemple RTSP, pour « Real Time Streaming Protocol » Dans ce cas, les indicateurs sont généralement remontés dans des blocs XML au format "W3C Extended log format"
Toujours dans cette étape F3, l'utilisateur Ul transmet au serveur secondaire S2, tel qu'indiqué dans la réponse Resp(C l ,S l ,S2), un rapport de mesure Meas-Rep(Cl ,S l) comprenant un identifiant de session, un identifiant du contenu C l , un identifiant du serveur primaire S l , un numéro de bloc courant et les indicateurs de qualité déterminés Ce rapport de mesure peut être transmis à l'aide d'un protocole de message hypertexte tel que http, pour "HyperText Transfer Protocol", par exemple un message GET L'identifiant de session permet de regrouper les différents rapports de mesure relatifs à une seule session Le message Meas-Rep(C l ,S l ) est reçu par le serveur secondaire S2 dans une étape G2 II est a noter que le serveur destinataire des rapports de mesure n'est pas le serveur en charge de la
distribution du contenu C l vers l'utilisateur Ul Le serveur secondaire S2 est disponible pour recevoir et traiter les rapports de mesure La supervision de la distribution du contenu est ainsi particulièrement simple à mettre en place
Dans le mode de réalisation ici décrit, le serveur secondaire S2 agrège dans cette étape G2 les indicateurs de qualité reçus à des indicateurs de qualité relatifs à la distribution du contenu
Cl à l'utilisateur U l et à des indicateurs de qualité relatifs à des distributions de contenu par le serveur primaire S 1 Tel que représenté sur la figure 2, le serveur secondaire S2 reçoit également des indicateurs de qualité Meas-Rep(C3,Sl ) relatifs à la distribution du contenu C3 par le serveur primaire Sl à l'utilisateur U2 II est à noter que le serveur secondaire S2 reçoit également des indicateurs de qualités de sessions entre des utilisateurs et d'autres serveurs que le serveur primaire
S l Le serveur secondaire S2 est ainsi un élément d'un système de surveillance réparti où chaque serveur distribue des contenus à des clients et surveille une partie des sessions de chacun des autres serveurs Le serveur secondaire S2 dispose ainsi de données pour déterminer des métadonnées ou données de synthèse représentatives de l'activité du service de distribution de contenu Ces métadonnées sont par exemple le nombre de serveurs impliqués dans la fourniture du service, une valeur représentative de l'activité du service déterminée à partir d'une variation du nombre de sessions dans le temps, la charge relative des serveurs les uns par rapports au autres, une valeur représentative d'un fonctionnement général du service, une valeur représentative d'un fonctionnement de chaque serveur, une valeur de QoS générale du réseau déterminée à partir des taux de pertes de paquets, des délais et de la gigue, une valeur de QoE fournie par chaque serveur à partir des taux de pertes de paquets, des délais et de la gigue
Une seule transmission d' un rapport de mesure est représentée sur la figure 2 afin de ne pas complexifier la figure 2 II est bien entendu que ces rapports de mesure sont transmis régulièrement par le terminal Ul et que le serveur secondaire S2 réitère l'étape G2 à réception de nouveaux rapports de mesure
A partir de ces indicateurs de qualité agrégés à différents niveaux, au niveau d'un utilisateur ou au niveau d'un serveur primaire, le serveur secondaire S2 détecte un événement dans une étape G3 Cet événement peut être une diminution de qualité affectant le serveur primaire S 1 , une diminution de qualité affectant la distribution du contenu C l vers l'utilisateur Ul , une coupure d'échanges avec le serveur primaire S l , une atypie dans les métadonnées décrivant le fonctionnement du serveur primaire S l par rapport aux autres serveurs A titre d'exemple d'atypie, on peut citer une valeur de gigue dix fois plus grande sur la session entre l'utilisateur Ul et le serveur primaire S 1 que sur les autres sessions Une telle valeur de gigue reflète une surcharge du serveur primaire S 1 Dans ce cas, les données relatives aux sessions passent en moyenne plus de temps dans les files d'attente, ce qui rend très variable le délai entre le traitement applicatif des données et leur émission sur le reseau Cette liste est bien entendu non exhaustive
Dans le cas où l'événement est la détection d'une diminution de qualité affectant la distribution du contenu Cl vers l'utilisateur Ul ou la détection de la coupure des échanges de l'utilisateur Ul avec le serveur primaire Ul , le serveur secondaire S2 transmet dans l'étape G3 à l'utilisateur Ul une commande SW(Cl, S 1 ,S2) de transfert de sa session ou de son contexte du serveur primaire S 1 vers le serveur secondaire S2
Dans le cas où l'événement est la détection d'une diminution de qualité affectant le serveur primaire Sl , le serveur secondaire S2 transmet dans l'étape G3 à l'ensemble des utilisateurs
U1 ,U2 ayant transmis des indicateurs de qualité relatifs à la distribution d'une contenu par le serveur primaire S l une commande SW(Cx,Sl ,S2) de transfert de leurs sessions ou contextes respectifs du serveur primaire Sl vers le serveur secondaire S2
Dans le cas où l'événement est la détection d'une atypie dans les métadonnées décrivant le fonctionnement du serveur primaire S 1 par rapport aux autres serveurs, le serveur secondaire S2 transmet dans l'étape G3 soit une commande à destination d'un des utilisateurs, soit une commande à destination d'un groupe d'utilisateurs, afin de décharger le serveur primaire Sl Plus précisément, pour ces différents cas, la commande de transfert SW(C1 ,S1,S2) est une commande de redirection de la session ou du contexte que l'utilisateur Ul a établi avec le serveur primaire S 1 pour la distribution du contenu C 1 vers le serveur secondaire S2
Parallèlement, si le serveur secondaire S2 n'a pas le contenu Cl de disponible, il obtient ce contenu Cl dans une étape G4 du procédé de distribution de contenu de façon similaire à l'étape Gl du même procédé
La commande de transfert est reçue par l'utilisateur Ul dans une étape F4 du procédé d'obtention Le traitement à effectuer par le terminal Ul à réception de cette commande de transfert peut également être compris dans le code AJAX reçu lors de l'étape F2 du procédé d'obtention Toujours dans cette étape F4, l'utilisateur Ul transfère la session établie avec le serveur primaire Sl pour la distribution du contenu Cl vers le serveur secondaire S2
La diffusion du contenu Cl peut reprendre du serveur secondaire U2 vers l'utilisateur Ul a partir du numéro de bloc courant contenu dans le dernier rapport de mesure transmis La diffusion du contenu Cl peut redémarrer immédiatement ou bien après la diffusion d'un contenu
C2 d'attente Ainsi, il est possible d'anticiper l'apparition d'une dégradation de la qualité telle que ressentie par l'utilisateur et de basculer la session vers un serveur secondaire, lui-même prêt à prendre le relais L'utilisateur ne ressent pas la dégradation de qualité et obtient le contenu recherché à partir éventuellement de deux serveurs A un instant donné, seuls deux serveurs sont impliqués dans la distribution du contenu vers un utilisateur et la supervision de celle-ci, limitant ainsi le nombre de serveurs impliques Le serveur secondaire S2 dispose de ressources processeur pour superviser la qualité de la distribution du contenu Cl On exploite également des rapports de
mesure transmis par d'autres utilisateurs pour détecter un problème général susceptible d'affecter le serveur primaire S 1
La description a été faite dans le cas d'un réseau de type CDN Le procédé est également applicable à tout réseau de communication de type Internet De façon plus générale, les serveurs primaire Sl et secondaire S2 sont des dispositifs de distributions de contenus Le terminal Ul peut, quant à lui, jouer dans certains cas le rôle de serveur de distribution de contenus
Par exemple, le terminal Ul peut être un pair dans un réseau de type "peer-to-peer" ou P2P II joue dans ce cas aussi bien le rôle du terminal que celui du serveur de distribution de contenus
Toujours à titre d'exemple, le dispositif de distribution de contenus primaire Sl est un serveur, le dispositif de distribution de contenus secondaire S2 est un pair du réseau P2P
La présence du serveur catalogue P est optionnelle des catalogues de contenus, par exemple de type "Internet Media Guide" sont accessibles de nombreuses manières Ils peuvent notamment être diffusés en ligne en même temps que d'autres contenus
Dans un mode de réalisation particulier, les échanges de messages se font sous la forme de requêtes de type "Web services", tel que spécifié par le W3C, pour « World Wide Web Consortium », dans la spécification WSDL Les échanges s'effectuent sous la forme d'appel de fonctions ou de procédures codées en XML Dans un mode de réalisation particulier, l'utilisateur Ul découvre les deux serveurs S l ,
S2, aptes à distribuer le contenu, par un service d'attribution d'adresse de réseaux tel que DHCP, pour " Dynamic Host Configuration Protocol" ou par un service de résolution d'URL, tel que DNS, pour "Domain Name System" Dans ce mode de réalisation particulier, le serveur catalogue P n'est pas présent Dans un mode de réalisation particulier, le programme exécutable peut être installé à l'initialisation ou téléchargé sur le terminal Ul Dans ce cas, la réponse Resp(Cl ,S l ,S2) comprend un identifiant du contenu Cl, un identifiant du serveur de distribution de contenus Sl , en tant que serveur primaire, et un identifiant du serveur de distribution de contenus S2, en tant que serveur secondaire II est également possible de prévoir dans la commande de transfert un identifiant d'un troisième serveur de distribution de contenus, non représenté sur la figure 1 , auquel les rapports de mesure sont adressés une fois le transfert sur le serveur secondaire S2 effectué, ce dernier devenant à son tour serveur primaire
La commande de transfert peut comprendre en outre une notification de l'événement détecté a destination de l'utilisateur Ul Ceci permet d'informer l' utilisateur du transfert en cours et d'améliorer ainsi son information
Dans une variante au mode de réalisation décrit précédemment, le serveur S2 mémorise au cours de l'étape G2 les indicateurs de qualité agrégés qu'il a déterminés dans une base de données, non représentée sur la figure 1. Cette base de données est utilisée par le serveur catalogue P pour déterminer lors de l'étape El du procédé de sélection des serveurs S 1-S2 de distribution de contenu aptes à distribuer le contenu Cl . Il peut ainsi sélectionner des serveurs de distribution de contenus aptes à distribuer le contenu Cl en fonction d'indicateurs de qualité observés dans des distributions de contenu préalables.
Le contenu Cl tel que reçu par le terminal Ul est représenté schématiquement à la figure
5. Les blocs bl à b360 ont été reçus du serveur primaire S l , puis le transfert a eu lieu. Le terminal Ul a alors reçu du serveur secondaire S2 le contenu C2, en tant que contenu d'attente, puis la distribution du contenu Cl a repris à partir du bloc de données b361 jusqu'au bloc de données b480. Le contenu d'attente C2 est bien entendu optionnel.
Nous allons maintenant décrire un dispositif de distribution de contenus 200 selon un mode particulier de réalisation en relation avec la figure 3. Le dispositif 200 de distribution de contenus comprend :
- un module 202 de distribution de contenu à destination d'utilisateurs ;
- un module 206 d'obtention en provenance d'un utilisateur d'au moins un indicateur de qualité relatif à une distribution d'une partie dudit contenu vers ledit utilisateur par un autre dispositif de distribution de contenus, dit dispositif primaire ; - un module 204 de détection d'un événement susceptible d'affecter la distribution du contenu par le dispositif primaire vers l'utilisateur à partir d'indicateurs de qualité relatifs à au moins une distribution de contenus par le dispositif primaire ;
- un module 208 de commande de transfert de l'utilisateur du dispositif primaire vers ledit dispositif, en vue d'une distribution par ledit dispositif de parties dudit contenu non distribuées par le dispositif primaire.
Le module 206 est en outre agencé pour agréger les indicateurs de qualité reçus à des indicateurs de qualité relatifs à la distribution d'un contenu à l'utilisateur et à des indicateurs de qualité relatifs à des distributions de contenu par le dispositif primaire.
Le dispositif 200 de distribution de contenus est destiné à être intégré dans des serveurs de distributions de contenus S l , S2.
Dans certains des modes de réalisation décrits précédemment, notamment lorsque le terminal de l'utilisateur Ul joue un rôle de serveur de distribution de contenus, le dispositif 200 de distribution de contenus peut être intégré dans un terminal Ul .
Nous allons maintenant décrire un dispositif d'obtention de contenu 300 selon un mode particulier de réalisation en relation avec la figure 4.
Un tel dispositif 300 d'obtention d'un contenu comprend :
- un module 304 de découverte d'un premier dispositif de distribution de contenus, dit dispositif primaire, et d'un deuxième dispositif de distribution de contenus, dit dispositif secondaire, aptes à distribuer ledit contenu ;
- un module 306 de réception d'au moins une partie du contenu en provenance du dispositif primaire ;
- un module 308 de détermination d'au moins un indicateur de qualité relatif à la distribution d'une partie dudit contenu vers ledit utilisateur par le dispositif primaire ;
- un module 302 d'émission et de réception, agencé pour transmettre au moins un indicateur de qualité déterminé et pour recevoir une commande de transfert du dispositif primaire vers le dispositif secondaire, en vue d'une distribution par le dispositif secondaire de parties dudit contenu non distribuées par le dispositif primaire.
Dans un mode de réalisation, le module 304 est agencé pour requérir une distribution du contenu Cl auprès d'un serveur catalogue P et obtenir en retour une réponse comprenant l'adresse du dispositif primaire Sl , une adresse contentUrl du contenu C l dans le réseau de communication, une requête en vue de la transmission au dispositif secondaire S2 d'indicateurs de qualité relatifs à la distribution du contenu Cl par le dispositif primaire S l.
Le dispositif 300 d'obtention d'un contenu est destiné à être intégré dans le terminal de l'utilisateur Ul .
Les modules 202, 204, 206, 208 du dispositif 200 de distribution de contenus sont agencés pour mettre en œuvre les étapes du procédé de distribution de contenu précédemment décrit exécutées par le dispositif de distribution de contenus. Il s'agit de préférence de modules logiciels comprenant des instructions logicielles pour faire exécuter celles des étapes du procédé de distribution précédemment décrit, mises en œuvre par un dispositif de distribution de contenus. L'invention concerne donc aussi : - un programme pour dispositif de distribution de contenus, comprenant des instructions de programme destinées à commander l'exécution des étapes du procédé de distribution précédemment décrit qui sont exécutées par ledit dispositif, lorsque ledit programme est exécuté par un processeur de celui-ci ;
- un support d'enregistrement lisible par un dispositif de distribution de contenus sur lequel est enregistré le programme pour dispositif de distribution de contenus.
Les modules 302, 304, 306, 308 du dispositif d'obtention de contenu 300 sont agencés pour mettre en œuvre les étapes du procédé d'obtention de contenu précédemment décrit exécutées par le dispositif d'obtention de contenu. Il s'agit de préférence de modules logiciels comprenant des instructions logicielles pour faire exécuter celles des étapes du procédé d'obtention précédemment décrit, mises en œuvre par un dispositif. L'invention concerne donc aussi :
- un programme pour dispositif d'obtention d'un contenu, comprenant des instructions de programme destinées à commander l'exécution des étapes du procédé d'obtention de contenu précédemment décrit qui sont exécutées par ledit dispositif, lorsque ledit programme est exécuté par un processeur de celui-ci ; - un support d'enregistrement lisible par un dispositif d'obtention d'un contenu sur lequel est enregistré le programme pour dispositif d'obtention de contenu.
Les modules logiciels peuvent être stockés dans ou transmis par un support de données. Celui-ci peut être un support matériel de stockage, par exemple un CD-ROM, une disquette magnétique ou un disque dur, ou bien un support de transmission tel qu'un signal électrique, optique ou radio, ou un réseau de télécommunication.
L'invention concerne également un système 1 de distribution de contenu comprenant des dispositifs de distribution de contenus et au moins un dispositif d'obtention d'un contenu, tels que décrits précédemment.