FR 2841079 A1 20031219 FR 0207355 A 20020614 PROCEDE DE DIFFUSION D'APPLICATION HTML DESCRIPTION Domaine technique L'invention se situe dans le domaine des procédés d'extraction à partir d'un ou plusieurs serveurs puis de diffusion, dans un flux MPEG d'applications pouvant comprendre une arborescence de fichiers, et pour lesquels des liens logiques dits liens de navigation d'une part et liens d'inclusion d'autre part existent entre des fichiers constituant ensemble l'application. Arrière plan technologique. L'arrière plan technologique de l'invention suppose la connaissance de données préalables que l'on peut trouver dans des documents de référence faisant partie des connaissances générales de l'Homme du métier notamment les documents dont la liste suit : Titre du document Référence du document ou contenu DVB Multimedia Home DVB MHP TAM232 rl6 Platform Hypertext Transfer RFC 2616 HTTP 1. 1 Protocol (HTTP) http://www.w3.org/Protocols/ rfc2616/rfc2616.html Uniform Resource RFC 2396 Identifier (URI) http://www.ietf.org/rfc/rfc2 396. txt Spécification HTML HTML 4.01 Specification http://www.w3.org/MarkUp/ The Extensible HyperText XHTML 1.0 : The Extensible Markup Language HyperText Markup Language A Reformulation of HTML 4 in XML 1.0 http://www.w3.org/TR/xhtmll/ Extensible Markup Langage XML - W3C recommendation http://www.w3.org/TR/1998/re c-xml-19980210 La description de l'état de la technique et de l'invention suppose également connues des abréviations employées de façon courante par l'Homme du métier. L'emploi de ces abréviations est si courant que l'Homme du métier comprend mieux ce qui lui est exposé avec l'emploi de ces abréviations qu'avec l'emploi des expressions complètes. Une liste de ces abréviations correspondant généralement à des sigles en anglais est donnée ci-après. DSM-CC (Data Storage Media Command and Control) commande et contrôle de stockage de données média DVB (Digital Vidéo Broadcasting)/ diffusion vidéo numérique XLET Objets applicatifs permettant d'exécuter des appplets JAVA qui peuvent avoir accès à des ressources d'un décodeur [DVB-MHP; DVB-HTML] HTML (HyperText Markup Language) Langage permettant la désignation de liens entre textes HTTP (HyperText Transfert Protocol) protocole de transfert de textes dans lesquels sont définit des liens vers d'autre textes IHM Interface Homme Machine MIME (Multipurpose Internet Mail Extensions) Extension permettant notamment de connaître la définition du contenu d'un fichier MHP Multimedia Home Platform MPEG Moving Picture Experts Group OCG Object Carousel Generator Générateur d'objet en caroussel SSL Socket Secure Layer TLS Transport Layer Security URI Uniform Resource Identifier de caractère permettant l'identification d'une ressource URL Uniform Resource Locator, localisation d'un document par son protocole, machine, répertoire, nom du document WWW World Wide Web XHTML The Extensible HyperText Markup Language Enfin, il convient de préciser quelques termes utilisés dans le présent document : Abonné ou Utilisateur d'une application HTML utilisateur exécutant l'application à l'aide d'un final navigateur intégré à un décodeur numérique Application Application HTML : Ensemble des pages et de l'arborescence du site Document ou Tout fichier accessible sur un serveur fichier http distant par une URL Document URL complète déterminant le point d'accueil d'entrée du site Document inclus Document inclus dans une page ou composante principale : image, son , document incluse secondaire, application. Un document inclus vient s'insérer dans la page sans intervention grâce à des instructions d'un programme de présentation de la page contenant notamment l'URL du document inclus et des consignes pour situer le document inclus dans la page en cours. Document ou Document accessible à partir d'une fichier lié ou page principale par click sur un pointé hyperlien Document ou Document ou fichier accessible par un fichier click sur un hyperlien et qui n'est principal inclus dans aucun autre document Dynamicité La dynamicité d'un document permet de signaler à l'OCG les documents susceptibles de nécessiter une mise à jour plus fréquente Page Document principal Priorité la priorité d'un document détermine sa fréquence de diffusion. Ainsi, un document de priorité haute sera diffusé plus fréquemment qu'un document de priorité faible Proxy Serveur passerelle vers internet Site ensemble de pages servies par le serveur WEB URL complète d'une page d'accueil, associée à des paramètres de profondeur et de définition des limites du site Typiquement une application est composée d'une pluralité de pages HTML, dites pages interactives. Pour télécharger une application, on utilise des protocoles TCP/IP tels que HTTP (hyper text transfer protocol). L'application est transmise depuis un serveur HTTP, vers un serveur de diffusion d'applications (Broadcast Application Servers-BAS) sous forme d'une arborescence de fichiers puis encapsulée en modules, contenant chacun un ou plusieurs fichiers, dans un protocole de transfert d'objets en carrousel tel que "protocole Object Carousel" et insérée dans un flux MPEG diffusé par exemple par un satellite ou par le câble. Selon la technique antérieure, un protocole tel que DSM-CC Object Carousel respecte la structure arborescente de l'application. La diffusion au moyen d'un tel protocole respecte les propriétés du système de fichiers (arborescence de répertoires) et permet l'encapsulation dans des sections MPEG. L'arborescence de l'application est une arborescence de répertoires, ces répertoires contenant les différents fichiers de l'application. Ainsi, par exemple, on pourra avoir un répertoire racine auquel on donne un niveau 0 auquel sont rattachés des fichiers de niveau 0 et des répertoires de niveau 1. Les répertoires de niveau 1 contiennent des fichiers de niveau 1 et des répertoires de niveau 2 et ainsi de suite. En général les répertoires sont organisés par type de contenu, par exemple un répertoire d'images contiendra toutes les images de l'application, les fichiers correspondants ont une terminaison ".gif", un autre répertoire contiendra les produits son, etc.. Ce protocole selon la technique antérieure est adapté à la diffusion d'une arborescence de systèmes de gestion de fichiers, mais ne permet nullement d'optimiser la diffusion dès lors que des dépendances, sous la forme de liens de navigation, également appelés hyper-liens, apparaissent entre ces fichiers, ce qui est le cas d'une application HTML. Par ailleurs des composantes incluses (images applets, son, etc... cette liste n'étant pas limitative) pointées par un lien d'inclusion dans un fichier HTML (ou fichier principal), nécessaire à l'élaboration de la page interactive ne sont pas diffusées de manière optimale dans un mode qui ne prend en compte que l'arborescence de fichiers. En effet, l'utilisateur final ne pourra disposer effectivement de la page qu'après un temps correspondant à un, ou plusieurs cycles de diffusion, si certaines composantes incluses nécessaires à l'affichage d'une page sont localisées dans un répertoire très éloignés du répertoire racine. Ainsi du point de vue de l'utilisateur le temps d'accès à une page peut être très long et décourager l'accès. La reconstitution d'un document principal ne pourra être effectuée que lorsque tous les fichiers inclus, par exemple images ou sons, auront été réceptionnés. Brève description de l'invention. Avant de décrire l'invention, des éléments de vocabulaire qui seront employés pour la description sont définis dans le tableau suivant. Priorité La priorité d'un document détermine sa fréquence de diffusion Profondeur La profondeur d'un document est définie par le nombre minimal de clicks de souris, ou équivalents, nécessaires pour y accéder à partir de la page d'accueil. La page d'accueil ainsi que ses composantes incluses ont une profondeur 0 Règles Règles définissant les limites de d'aspiration téléchargement d'un site Règle de Règle définissant la priorité et/ou la regroupement dynamicité de fichiers Par rapport à l'état de la technique qui vient d'être décrit, l'invention vise à optimiser la diffusion d'une application, de façon à ce qu'un utilisateur final puisse disposer de l'application et des pages qui la composent dans les délais les plus brefs, puis à ce que les passages d'une page en cours à une page immédiatement suivante (selon les liens de navigation, page en amont ou en aval de la page en cours) puissent être les plus rapides possibles. L'invention part du constat que le rattachement par exemple d'une composante incluse à une page principale peut être connu par l'analyse syntaxique et sémantique des données incluses dans le fichier principal associé à cette page et des différents fichiers qui la composent. Ainsi on sait par exemple, par consultation du fichier HTML décrivant la page principale, que la page principale contient un certain nombre de composantes incluses et il est possible de trouver les fichiers correspondant à ces composantes dans les différents répertoires composant ensemble l'application grâce aux données contenues dans le fichier HTML et décrivant ces fichiers Selon l'invention, si par exemple, une page d'accueil de l'application contient des composantes incluses, les fichiers constituant ces composantes incluses dans la page d'accueil sont regroupés dans un même module de diffusion, ou dans plusieurs modules contigus, si un seul module ne suffit pas à contenir les fichiers correspondants. Ainsi selon l'invention une application n'est pas diffusée selon une arborescence de répertoires mais selon une arborescence logique en fonction du contenu de l'application et de la répartition de ce contenu dans les différentes pages de l'application. Selon l'invention, une page de niveau 0 sera par exemple la page d'accueil de l'application, et les composantes incluses contenues dans cette page auront également un niveau 0. Cette page et ses composantes incluses seront insérées dans un ou plusieurs modules de diffusion contigus. Les pages suivantes de niveau logique 1 par rapport à la page 0, sont les pages que l'on peut appeler par un lien de navigation à partir de la page 0. Cette ou ces pages de niveau 1, ainsi que leurs composantes incluses éventuelles seront de la même manière préparées pour être incluses dans un ou plusieurs modules, et ainsi de suite. En résumé, l'invention est relative à un procédé de diffusion, à partir d'un centre de diffusion vers des décodeurs de télévision numérique d'une application composée par un ensemble de fichiers contenant des données constituant ensemble des pages interactives, chaque page ayant un contenu affichable constitué par un fichier principal et des composantes incluses éventuelles, des liens d'inclusion permettant l'affichage ou l'exécution de composantes incluses éventuelles, pour obtenir la totalité de la page interactive, des liens de navigation pointant chacun vers un fichier principal d'une page interactive de profondeur supérieure ou inférieure, une page d'accueil ayant un niveau de profondeur 0, une page de niveau 1 étant une page que l'on peut appeler par un lien de navigation à partir de cette page de profondeur 0, et plus généralement une page de profondeur n étant une page que l'on peut appeler avec au minimum n liens de navigation à partir de la page d'accueil de profondeur 0, le procédé comportant une étape préalable de réception du ou des fichiers nécessaires à la constitution d'une pluralité de pages interactives avec leurs composantes incluses éventuelles, ces fichiers formant ensemble une application ou une partie de l'application correspondant à des pages ayant des niveaux de profondeur inférieurs à un niveau prédéterminé caractérisé en ce qu'il comprend en outre les étapes ci-après : a) analyse sémantique et syntaxique du contenu des fichiers principaux de l'application afin d'identifier les liens d'inclusion et les liens de navigation, une composante incluse et le fichier principal auquel elle est associé étant retenu comme ayant le même niveau de profondeur, et classement des différents fichiers par niveau de profondeur, b) constitution de modules de diffusion, les fichiers nécessaires à la constitution d'une page interactive complète avec ses éventuelles composantes incluses étant inclus dans un ou, si nécessaire, plusieurs modules. Le procédé peut comporter en outre l'une ou plusieurs des étapes ci-après: c) définition d'un profil de diffusion contenant notamment des instructions d'ordre de diffusion pour que chaque page interactive et ses composantes incluses éventuelles soient diffusées avec un niveau de priorité choisit parmi au moins deux niveaux de priorité, d) diffusion des modules avec une fréquence qui est une fonction de l'ordre de priorité prédéfini. al) attribution d'un niveau de dynamicité à au moins une partie des pages interactives, les modules contenant des pages plus souvent modifiées que d'autres ayant un plus grand niveau de dynamicité que les modules contenant des pages moins souvent modifiées. a2) modification sélective de liens d'accès (URL) de navigation et/ou d'inclusion dans au moins une page interactive pour rendre la totalité ou au moins une première partie de l'application accessible dans un mode diffusion, et éventuellement rendre accessible une seconde partie de l'application par une voie de retour. a3) analyse quantitative des information contenues dans chaque fichier, et en fonction des résultats de cette analyse, suppression des pages de profondeur 1 ou supérieur à 1 en commençant par la suppression des pages de profondeur la plus grande, jusqu'à ce que la quantité d'information à diffuser restante soit égale ou inférieure à une limite quantitative prédéterminée. a4) modification de l'application pour y introduire des instructions permettant à un logiciel de gestion d'une mémoire cache d'un décodeur numérique recevant l'application, d'identifier les liens de navigation entre la page courante affichée et des pages que l'on peut atteindre par les liens de navigation de cette page courante, et de commander le chargement dans la mémoire cache desdites pages et de leurs composantes incluses éventuelles. a5) introduction dans l'application d'instructions permettant, en cas d'accès à la seconde partie de l'application par la voie de retour, un retour automatique au mode diffusion en cas de demande d'accès à une page qui fait partie des pages diffusées. De préférence le niveau de priorité défini à l'étape c) est une fonction décroissante de la profondeur de la page interactive. Le niveau de priorité peut aussi être une fonction croissante de la dynamicité. Le niveau de priorité défini à l'étape c) peut aussi être une fonction du niveau de dynamicité et/ou de profondeur de la page interactive contenue dans le module. On note que selon l'invention, ce que l'on appelle l'aspiration de l'application est le transfert des fichiers constituant ensemble l'application, ou une partie de celle-ci, d'un site initial d'accès, typiquement un serveur WEB, vers un centre de traitement pour diffusion. Le site initial de stockage peut être un serveur distant ou se situer dans le centre de traitement. Lorsque l'application comporte un grand nombre d'octets, et que son aspiration ou sa diffusion risque de saturer les possibilités de la plate-forme de diffusion ou les possibilités d'un décodeur numérique vers lequel est diffusée l'application, il est avantageux de prévoir une limite maximum à la quantité d'information qui sera aspirée ou diffusée. Pour cela on procède en plus de l'analyse sémantique et syntaxique des fichiers constituant ensemble l'application à une analyse quantitative des informations associées à chaque fichier, et en fonction des résultats de cette analyse on peut décider de stopper l'aspiration dès que la quantité d'information aspirée dépasse la limite quantitative prédéterminée. De préférence, la fréquence de diffusion d'un module est d'autant plus grande que la priorité attribuée est importante. Selon un mode de réalisation, les niveaux de priorité sont fixés de façon à ce qu'une page de profondeur p, et ses composantes incluses éventuelles ait toujours un niveau de priorité qui ne soit pas supérieur au niveau de priorité d'une page de profondeur inférieure à p. De préférence, il est attribué aux modules de diffusion de l'application un niveau de dynamicité, les modules contenant des pages plus souvent modifiées que d'autre ayant un plus grand niveau de dynamicité que les modules contenant des pages moins souvent modifiées. Brève description des dessins Un exemple de réalisation du procédé selon l'invention sera maintenant décrit en regard des dessins annexés dans lesquels : - la figure 1 représente schématiquement l'environnement logiciel et matériel d'un outil d'aspiration et de diffusion d'application selon l'invention, - la figure 2 représente schématiquement différents modules de fonctions de l'outil d'aspiration et de diffusion d'application selon l'invention et leurs rapports avec d'autres modules et avec des interfaces d'entrée de données de paramétrage. - les figures 3A et 3B représentent respectivement les ordres initiaux et finaux de groupement d'une application avant aspiration et après aspiration. - la figure 4 représente un exemple d'un organigramme d'un algorithme permettant l'analyse syntaxique et sémantique des liens de navigation pour effectuer le regroupement des fichiers constituant ensemble l'application ou une partie de l'application par niveau de profondeur. Description d'exemples de réalisation La figure 1 représente schématiquement l'environnement logiciel et matériel d'un outil d'aspiration et de diffusion d'application selon l'invention. L'invention concerne un procédé d'aspiration et de diffusion d'application à partir d'un serveur HTTP 1. Ce serveur peut être mis en communication par une liaison bidirectionnelle 2 avec une unité de calcul constituant une plate-forme intermédiaire 3. L'unité de calcul 3 contient des moyens de mémoire 5 en eux-mêmes connus qui sont en relation avec une interface homme machine 4 (IHM), par exemple un clavier et des moyens de visualisation ou de transformation de son ou d'image en grandeur électrique, permettant notamment l'introduction manuelle de commandes de données ou de paramètres nécessaires à la commande ou au paramétrage des données de l'application qui seront traitées par le procédé de l'invention. Le procédé selon l'invention est implémenté sous forme d'un logiciel stocké dans les moyens de mémoire 5 de l'unité de calcul 3. Des liaisons 6,7 permettent la transmission des instructions et des données avec un module de génération d'objet en carrousel 8 et l'interface 4 respectivement. Les instructions et les données élaborées par le module de génération d'objet en carrousel 8 sont transmises à un multiplexeur 9 par l'intermédiaire d'une liaison 10. A partir du multiplexeur 10 les instructions et les données sont transmises, par exemple sous forme de flux MPEG vers des terminaux 11, par exemple des décodeurs numériques associés de façon connue à des récepteurs de télévision numérique ou à des appareils d'enregistrement. Cette transmission entre le multiplexeur 9 et un terminal 11 peut être effectuée soit par une voie de diffusion large 12, par exemple une liaison par satellite ou une liaison câblée ou encore par une liaison restreinte 13 sous forme d'une voie de retour entre le terminal 11 et le multiplexeur 9. Cette voie de retour peut être par exemple une ligne du réseau téléphonique commuté. La figure 2 représente schématiquement les blocs logiciels constituant ensemble l'outil d'aspiration et de diffusion d'application et ses liaisons à l'intérieur de l'unité de calcul 3 vers un bloc de navigation 15. L'outil d'aspiration et de diffusion d'application est composé essentiellement de deux blocs, un bloc d'aspiration 17 et un bloc de diffusion 18. Le bloc d'aspiration 17 comporte une unité 21 de stockage des paramètres d'aspiration, accessible par l'interface 4 ou par une unité de programme 23. L'unité de programme 23 délivre des instructions à une unité d'aspiration 25 qui aspire et organise le stockage des données en provenance du serveur HTTP 1. Le bloc de diffusion 18 comporte une unité 20 de stockage des paramètres de diffusion, accessible par l'interface 4 ou par l'unité de programme 23. Les données stockées dans les unités 21, 25 peuvent être visualisées sur un écran ou entendues sur un haut parleur par l'intermédiaire du bloc logiciel 15 de navigation. Un opérateur peut ainsi contrôler les données aspirées et diffusées. Un exemple d'aspiration et de diffusion d'une application sera maintenant commenté en liaison avec les figures 3A et 3B. A des fins d'explication, les fichiers avec extension "htm" ou "html" sont dénommés fichiers principaux. Ils constituent le corps de pages interactives respectives. Les fichiers dont l'identité comporte une extension "gif" ou autres sont dit "composantes incluses". Néanmoins, tout document accessible par un clic sur un lien de navigation et non pointé par un lien d'inclusion est un fichier (ou document) principal. Cela peut être le cas pour une image. La figure 3A représente le répertoire d'une application présente sur un site. Dans cet exemple didactiquement simple, le répertoire comprend à partir d'une racine "dir" 00, deux répertoires 01 et 02 et deux fichiers, par exemple 001 pour une page d'accueil et 002 contenant des données de présentation d'une société. Le premier répertoire 01 contient des fichiers images ayant une extension "gif" et qui sont des composantes incluses, et l'autre répertoire 02 contient des fichiers ayant une extension "htm(l)" et qui sont des fichiers principaux de présentation de produits. Le répertoire 01 d'images contient par exemple une image 011 pour un logo, une image 012 pour un fond et une image 013 relative à un premier produit. Le répertoire pour des produits 02 comporte deux fichiers, l'un 021 contenant des informations sur le premier produit et l'autre 022 sur un second produit. L'analyse syntaxique et sémantique des fichiers constituant l'application permet à partir des liens d'inclusion de reconnaître et de déterminer l'ensemble des fichiers nécessaires à la constitution d'une page affichable. Cette analyse permet aussi à partir des liens de navigation de reconnaître et de déterminer le niveau de profondeur d'une page, c'est à dire le nombre minimal de lien(s) de navigation séparant une page d'accueil de niveau de profondeur 0 de la page considérée. On peut ainsi regrouper les différents fichiers pour les insérer dans des modules contenant chacun une page et ses composantes incluses. La figure 3B représente les modules formés à partir de l'analyse. Dans le cas présent l'analyse a permis de reconnaître que le fichier principal 001 est associé à une page interactive d'accueil PO, par exemple, parce qu'elle porte le nom "default.htm" ou "index.htm" et que cette page PO contient des liens d'inclusion pointant vers des composantes incluses, le logo 011 et le fond 012. Elle permet également de reconnaître que cette page contient trois liens de navigation, le premier vers le fichier principal 002 de présentation de la société, le deuxième vers le fichier principal 021 de premier produit et le troisième vers le fichier principal 022 de second produit. On sait ainsi qu'il y a deux pages de niveau 1, une page P2 et une page P3. Dans ces conditions les fichiers 001, 011 et 012 sont regroupés pour être inclus dans un module 100 de profondeur 0 auquel est attribué une priorité par exemple haute. Cela signifie que ce module 100 sera diffusé avec une fréquence plus grande qu'un module ayant une priorité plus faible. Ce module regroupe la page d'accueil composée par le fichier 001 et les composantes incluses dans cette page d'accueil PO composées dans ce cas des fichiers 011 et 012. L'analyse de la page P3 associée au fichier principal 021 de premier produit permet de reconnaître que cette page contient un lien d'inclusion vers l'image de premier produit 013. Le fichier 021 et la composante incluse 013 qui est une image sont insérés dans un module 300 de profondeur 1. Le fichier 002 qui constitue une page liée P2 par un lien de navigation à la page d'accueil PO est inclus dans un module de diffusion 200 de profondeur 1. Des flèches entre la page PO et les pages P3 et P2 respectivement, symbolisent les liens de navigation. Dans un but de simplicité on s'arrête pour cet exemple au niveau de profondeur 1. Si un ou plusieurs liens de navigation d'une page de profondeur 1 pointaient vers des pages de profondeur 2, ces pages seraient incluses dans des modules additionnels de profondeur 2, et ainsi de suite de manière itérative. Un exemple de réalisation d'une analyse syntaxique et sémantique des liens de navigation et d'inclusion sera maintenant commenté en liaison avec la figure 4. Comme montré dans la figure 4, l'analyse syntaxique et sémantique des liens de navigation pour repérer les différentes pages et déterminer le niveau de profondeur de chaque page s'opère de façon itérative de la façon suivante. Dans une première itération, la page d'accueil PO de profondeur 0 par convention est détectée par exemple par détection d'un fichier dénommé "default.htm" ou "index.htm". Lors des itérations suivantes les il pages de profondeur 1 seront analysées successivement, puis les i2 pages de profondeur 2, jusqu'à arriver à la dernière page des ij pages de profondeur j, j étant le niveau de profondeur maximum. Pour la page d'accueil de niveau de profondeur 0, la variable N est positionnée à 0. La page d'accueil est alors analysée sémantiquement selon l'étape 31. Les liens de navigation, notés {Lni}N, apparaissant dans cette page d'accueil sont détectés selon l'étape 31 puis mémorisés selon l'étape 32. La valeur i est incrémenté de 1 à chaque inscription nouvelle d'un lien de navigation. Il est à noter que cette variable i est à dissocier de la variable que l'on a utilisée plus haut pour se référer au nombre de pages par niveau de profondeur. Les liens de navigation sont typiquement repérés par la présence d'une sémantique du type ( bla bla bla ). Il est ensuite vérifié selon une étape 33 que ces liens de navigation ou plus précisément les fichiers qu'ils pointent, n'ont pas déjà été pointés lors d'une itération précédente de l'algorithme. Pour cela on établit un ensemble {E} des fichiers pointés jusqu'à l'itération courante. S'il existe de tels fichiers qui ont déjà été pointés dans une itération précédente de l'algorithme, alors il ne sont pas pris en compte. Cela permet d'éviter d'accorder à un même fichier plusieurs niveaux de profondeur différents. L'effacement desdits fichiers déjà inscrits est effectué à une étape 34. On attribue aux fichiers restants un niveau de profondeur (N + 1) et les informations qui identifient ces fichiers sont stockés stockées dans l'ensemble {E} à l'étape 35. On réitère ensuite les étapes 30-35 après avoir incrémenté la variable N de la valeur 1 selon l'étape 36. Cela veut dire que l'on recommence ces étapes pour l'ensemble des liens de navigation inclus dans la ou les pages de niveau N + 1. On recommence l'itération jusqu'à ce qu'on ne détecte plus aucun lien de navigation dans les fichiers pointés par des liens de navigation inclus dans des pages de niveau immédiatement inférieurs auquel cas l'algorithme termine son déroulement à une étape 37. L'outil d'aspiration effectue les tâches suivantes : Il adresse une requête HTTP au serveur distant. Le contenu de la requête est défini de façon détaillée dans HTPP1-1 RFC 2616. La requête contient notamment les informations suivantes : - l'URL demandée, - l'entête HTTP "user-agent", qui permet au serveur d'identifier la nature du navigateur client, - le champ "si modifié depuis" "if-modifiedsince" qui permet une mise à jour conditionnelle limitée aux modifications intervenues dans le document aspiré entre la date courante de l'aspiration et la date précédente d'aspiration du même document si le document a déjà été aspiré, - les informations éventuelles d'authentification sur le serveur et sur un éventuel proxy (serveur passerelle vers internet) (authentification basic par encodage b64). Afin de sécuriser les échanges entre le serveur web et le site d'aspiration, il convient de préciser le HTTP sécurisé employé, par exemple SSL ou TLS. Seule la méthode GET est utilisée par le client HTTP inclus dans l'aspirateur de sites. Les scripts associés aux formulaires, qui nécessitent une saisie sur le navigateur client, ne sont pas aspirés. La réponse HTTP du serveur au client contient notamment : - le code retour HTTP, - les informations relatives au document : - son type MIME (text/html, image/gif, ...), - sa longueur, - sa date de création, - sa date d'expiration, - le contenu du document, Le code retour signale le résultat de la requête ("OK" (Accordé) ou "document non modifié", ou "redirection" si le document a une nouvelle URL, ou encore "erreur"). Les informations de dates sont utilisées par l'outil d'aspiration pour gérer la mise à jour du document, tandis que le type MIME sera utilisé dans la suite de la chaîne de diffusion par le protocole DSMCC géré par l'OCG. L'outil d'aspiration : - reçoit et stocke localement les pages d'un ou de plusieurs sites ainsi que les informations qui s'y rapportent (contenu, dates, longueur...), - analyse l'entête HTTP afin de déterminer les informations ci dessus, les erreurs ou les redirections éventuelles. - parcourt le code HTML afin de : # calculer les dépendances et ainsi effectuer les requêtes HTTP pour le reste des documents nécessaires, # déterminer les XLETs utilisées par l'application HTML. A partir des étapes ci dessus, l'outil reproduit ainsi l'image physique de l'arborescence d'un serveur HTTP distant ainsi qu'une base de données regroupant les attributs des documents. L'outil d'aspiration est configurable par l'opérateur à l'aide de l'interface 4 afin de : - limiter éventuellement le contenu aspiré à partir du ou des sites distants en fonction d'une profondeur, ou d'une taille de données, ou d'une liste d'expressions régulières d'URLs ou encore en rejetant certains types de contenus, ou enfin par combinaison de ces différents modes de limitations, - déclencher, de façon automatique, l'aspiration d'un site distant donné selon une périodicité ou des dates prédéterminées. Le tableau suivant décrit le profil d'un site et les données en sortie de l'outil d'aspiration. Les paramètres d'entrée sont configurables globalement ou personnalisables pour chaque site. Outil d'aspiration Paramètres Les paramètres de connexion : d'entrée le serveur hébergeant le site à aspirer les paramètres d'authentification éventuels (login et mot de passe) l'adresse du proxy de connexion éventuel et les paramètres d'authentification éventuels la temporisation (time-out) de connexion le nombre de tentatives de connexions après échec Les paramètres d'aspiration: l'URL de la page d'accueil du site aspiré la profondeur d'aspiration désirée le nombre maximal de fichiers à aspirer la limite de taille totale du site la limite de taille pour chaque document composant le site les limites de téléchargements expressions régulières des URLs et types MIME des documents autorisés l'identification du navigateur client ou agent utilisateur l'action à effectuer en cas de liens non valide ou non autorisé La date de la précédente aspiration complétant la condition "if-modifiedsince" permettant une aspiration conditionnelle lors d'une mise à jour Les droits d'accès aux XLETs, lesquels seront contrôlés lors du parcours du code HTML Données Le site (l'application HTML): en sortie - l'arborescence du site aspiré et son contenu - les document HTML réécris : les liens non aspirés sont remplacés par une URL http://, par une page par défaut ou supprimés. Une description du contenu : les informations relatives à chaque document (type, taille, ...) les dépendances entre les documents composant le site aspiré Les XLETs utilisés Un fichier journal comportant le détail des opérations effectuées et les erreurs éventuelles. Ces paramètres d'entrée et sortie ou au moins certains d'entre eux peuvent être saisis à partir de l'IHM qui comporte les boîtes de dialogues nécessaires. Lors de l'aspiration, une fenêtre d'état informe l'opérateur de l'avancement de l'aspiration. Une fois l'aspiration effectuée, l'opérateur a la possibilité de visualiser le contenu aspiré grâce au navigateur intégré 15. Il peut ainsi contrôler le bon téléchargement du contenu. En cas de mise à jour, seuls les documents modifiés depuis l'aspiration précédente sont récupérés. La phase regroupement optimisation sera maintenant décrite. L'outil de regroupement effectue les tâches suivantes. Il s'agit essentiellement d'un processus de regroupement des données afin de permettre une optimisation de la diffusion vers un navigateur implémenté au niveau du terminal 11. L'outil de regroupement effectue les calculs suivants à partir des données obtenues par l'outil d'aspiration et des règles de mise en diffusion saisies par l'opérateur : (a) Regroupement de chaque page interactive et des composantes incluses dans cette page interactive. Ce regroupement fait l'objet d'un module de diffusion. Si un même document se retrouve inclus dans plusieurs pages, (par exemple dans le cas d'une image de logo), ce document sera rattaché au premier module de profondeur la plus faible et de priorité la plus élevée. Ce regroupement est obtenu par l'analyse sémantique et/ou syntaxique des fichiers. Dans le cas d'une inclusion ces liens sont constitués par des liens d'inclusion, pointant vers une composante incluse à charger avec la page interactive, cette composante incluse pouvant être notamment : - une image, - un fichier multimédia, par exemple une image ou du son ou de la vidéo - une application exécutable dans la page interactive, - tout autre document texte ou binaire. (b)- attribution des paramètres de diffusion aux documents principaux et dans des cas particuliers aux documents inclus. Ces paramètres sont : - la priorité qui désigne la fréquence de diffusion (par exemple : haute, normale, faible), c'est à dire l'importance du document. - la dynamicité qui permet de signaler à l'OCG les documents susceptibles de nécessiter une mise à jour plus fréquente. Elle est destinée à minimiser le coût du processus de mise à jour de l'application diffusée. Le fait que les documents nécessitant une mise à jour plus fréquente soient signalés par une valeur de dynamicité permet un regroupement de ces documents au niveau de l'OCG. L'attribut de dynamicité permet de signaler à l'OCG les documents susceptibles de changer plus fréquemment que le reste de l'application. Ceci permettra à l'OCG d'organiser l'application dans le carrousel afin de minimiser le délai de mise en sections de l'application. On peut considérer que sur un site Web, en général plus de 80% du site reste inchangé lors d'une mise à jour. Si les documents ayant une grande dynamicité sont regroupés alors la mise à jour n'affecte que 20% des modules au niveau de l'OCG. Elle peut avoir deux valeurs : "dynamique" ou "statique", cette dernière étant la valeur par défaut. Les actions d'association et d'attribution de paramètres s'effectuent en fonction de règles définies par l'opérateur. Ces règles permettent de : - Associer un document inclus à un document principal. - Attribuer une priorité en fonction des critères profondeur et/ou taille et/ou type et/ou date de modification et/ou expression régulière appliquée à l'URL. Afin d'automatiser le calcul des attributs de diffusion, l'opérateur définit, à partir de l'IHM, des règles de regroupement. Il peut, en fonction de critères définis ci dessous, associer une priorité et/ou une dynamicité à un ou plusieurs documents, et associer ou dissocier un document inclus à un document principal (Il s'agira généralement d'image inclue dans plusieurs documents principaux ou de cas plus spécifiques, fond d'écran de taille importante à désolidariser de sa page de rattachement qui doit garder une priorité haute). Critère Exemple Profondeur Profondeur 0 et 1 : priorité haute, profondeur 2 : normale, profondeur 3 et plus : faible URL /image/background.gif : priorité faible /annonces/index.html : priorité faible Expression *advert* : priorité faible (publicités) régulière Date Date de modification > 10 jours : priorité normale Type MIME Type image/* priorité faible Liste de Taille > 300 Ko et image/* : priorité critères (et/ou) faible Les règles sont de préférence applicables aux documents principaux et appliquées de manière transparente aux dépendances. En plus des données relatives à l'application il sera diffusé des instructions destinées au décodeur qui reçoit l'application. Ainsi il sera diffusé par exemple des instructions ayant pour but de permettre un chargement d'une mémoire cache du décodeur en fonction de la page affichée en cours. Ces instructions permettront à un logiciel de gestion d'une mémoire cache d'un décodeur numérique, d'identifier les liens de navigation entre la page courante affichée et des pages que l'on peut atteindre par les liens de navigation de cette page courante. Les instructions permettront au décodeur numérique de rechercher en priorité dans le flux MPEG de diffusion de l'application les modules contenant les pages de profondeur immédiatement supérieure ou inférieure si la profondeur de la page affichée en cour est différente de 0. Après identification il sera commandé le chargement dans la mémoire cache desdites pages de profondeur immédiatement supérieure ou inférieure et de leurs composantes incluses éventuelles. La diffusion des instructions pour permettre le chargement anticipé de la mémoire cache n'est nécessaire que si les décodeurs numériques ne comportent pas de logiciel remplissant déjà cette fonction. De cette façon au niveau de l'utilisateur la navigation, en particulier la durée d'affichage d'une page appelée à partir de la page en cours sera raccourcie puisque les pages que l'on peut appeler à partir de la page en cours seront déjà en cours de chargement ou chargées dans la mémoire cache. D'autres instructions permettront au décodeur de déterminer que des pages non diffusées sont accessibles par la voie de retour. Le code de l'application est réécrit selon le mode d'accès aux différents documents constituant l'application. Les liens identifiés sont modifiés afin d'être utilisés par le décodeur de télévision numérique. Un lien de navigation modifié comportera notamment une indication permettant au décodeur de connaître le mode de diffusion du document pointé par le lien, et donc de le charger soit en utilisant la voie de retour, soit en le prenant dans le flux de diffusion. Notamment la sémantique protocolaire d'adressage sera modifiée de "http://" en "dvb ://" dansle cas de la présence d'une page ou autre document dans le flux de diffusion, ou restera "http://" dans le cas ou le chargement doit se faire par la voie de retour. La répartition éventuelle de l'application sur différentes voies physiques d'accès permet d'utiliser au mieux la bande passante disponible dans le mode de diffusion large. Les documents auquel l'accès est le plus souvent demandé sont diffusés dans le flux. Les documents plus rarement consultés ou nécessitant une interaction avec le serveur hébergeant l'application originale, ie, avant aspiration, sont accédés par la voie de retour. Lors de la navigation utilisant la voie de retour, des instructions permettent de reconnecter de façon automatique le décodeur sur la voie à diffusion large si un document demandé au cours de cette navigation sur cette voie de retour est aussi accessible par la voie à diffusion large. REVENDICATIONS 1. Procédé de diffusion, à partir d'un centre de diffusion vers des décodeurs de télévision numérique d'une application composée par un ensemble de fichiers contenant des données constituant ensemble des pages interactives, chaque page ayant un contenu affichable constitué par un fichier principal et des composantes incluses éventuelles, des liens d'inclusion éventuels permettant l'affichage ou l'exécution de composantes incluses, pour obtenir la totalité de la page interactive, des liens de navigation pointant chacun vers un fichier principal d'une page interactive de profondeur supérieure ou inférieure, une page d'accueil ayant un niveau de profondeur 0, une page de niveau 1 étant une page que l'on peut appeler par un lien de navigation à partir de cette page de profondeur 0, et plus généralement une page de profondeur n étant une page que l'on peut appeler avec au minimum n liens de navigation à partir de la page d'accueil de profondeur 0, le procédé comportant une étape préalable de réception du ou des fichiers nécessaires à la constitution d'une pluralité de pages interactives avec leurs composantes incluses éventuelles, ces fichiers formant ensemble une application ou une partie de l'application correspondant à des pages ayant des niveaux de profondeur inférieurs à un niveau prédéterminé caractérisé en ce qu'il comprend en outre les étapes ci-après : a) analyse sémantique et syntaxique du contenu des fichiers principaux de l'application afin d'identifier les liens d'inclusion et les liens de navigation, une composante incluse et le fichier principal auquel elle est associé étant retenu comme ayant le même niveau de profondeur, et classement des différents fichiers par niveau de profondeur, b) constitution de modules de diffusion, les fichiers nécessaires à la constitution d'une page interactive complète avec ses éventuelles composantes incluses étant inclus dans un ou si nécessaire, plusieurs modules. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre des étapes de : c) définition d'un profil de diffusion contenant notamment des instructions d'ordre de diffusion pour que chaque page interactive et ses composantes incluses éventuelles soient diffusées avec un niveau de priorité choisit parmi au moins deux niveaux de priorité, d) diffusion des modules avec une fréquence qui est une fonction de l'ordre de priorité prédéfinit. 3. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre une étape de : al) attribution d'un niveau de dynamicité à au moins une partie des pages interactives, les modules contenant des pages plus souvent modifiées que d'autres ayant un plus grand niveau de dynamicité que les modules contenant des pages moins souvent modifiées. 4. Procédé selon la revendication 2, caractérisé en ce que le niveau de priorité défini à l'étape c) est une fonction décroissante de la profondeur de la page interactive. 5. Procédé selon la revendication 3, caractérisé en ce que le niveau de priorité est une fonction croissante de la dynamicité. 6. Procédé selon la revendication 3 dépendant de la revendication 2, caractérisé en ce que le niveau de priorité défini à l'étape c) est une fonction du niveau de dynamicité et/ou de profondeur de la page interactive contenue dans le module. 7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce qu'il comprend en outre une étape de : a2) modification sélective de liens d'accès (URL) de navigation et/ou d'inclusion dans au moins une page interactive pour rendre la totalité ou au moins une première partie de l'application accessible dans un mode diffusion, et éventuellement rendre accessible une seconde partie de l'application par une voie de retour. 8. Procédé selon l'une des revendications 1 à 7, caractérisé en ce qu'il comprend en outre une étape : a3) analyse quantitative des information contenues dans chaque fichier, et en fonction des résultats de cette analyse, de - suppression des pages de profondeur 1 ou supérieur à 1 en commençant par la suppression des pages de profondeur la plus grande, jusqu'à ce que la quantité d'information à diffuser restante soit égale ou inférieure à une limite quantitative prédéterminée. 9. Procédé selon, l'une des revendications 1 à 8, caractérisé en ce qu'il comporte une étape de : a4) modification de l'application pour y introduire des instructions permettant à un logiciel de gestion d'une mémoire cache d'un décodeur numérique recevant l'application, d'identifier les liens de navigation entre la page courante affichée et des pages que l'on peut atteindre par les liens de navigation de cette page courante, et de commander le chargement dans la mémoire cache desdites pages et de leurs composantes incluses éventuelles. 10. Procédé selon l'une des revendications 6 à 9, caractérisé en ce qu'il comporte une étape : a5) introduction dans l'application d'instructions permettant, en cas d'accès à la seconde partie de l'application par la voie de retour, un retour automatique au mode diffusion en cas de demande d'accès à une page qui fait partie des pages diffusées.