FR 2958768 A1 20111014 FR 1001794 A 20100427 --1 La présente invention concerne un ensemble de procédés techniques permettant aux services et aux sites web l'utilisant, de rendre le contenu de leurs pages optimisé lors de leur consultation sur des écrans haute définition, tout en assurant leur compatibilité sur des écrans standards de tailles différentes et de résolutions inférieures. L'ensemble de ces procédés techniques mis en oeuvre formant une application web (il ne s'agit ni d'un logiciel, ni d'un programme), nous dénommerons cette invention dans la suite de ce document sous le terme d'application HD-WebTM ; nous emploierons l'acronyme HD pour le terme de Haute Définition et nous parlerons de service et/ou de site web compatible HD, c'est-à-dire compatible Haute Définition. L'émergence de la haute définition et son apparition dans l'équipement des ménages avec l'acquisition d'écrans Haute Définition censé améliorer le confort visuel et l'expérience utilisateur lors de la visualisation d'un film, produit l'effet inverse pour la consultation des sites web qui deviennent alors plus petits et plus difficiles à consulter sur des écrans HD (avec de plus l'apparition de marges importantes à gauche et/ou à droite de l'écran dégradant fortement le rendu visuel de ces derniers) voire difficilement lisibles sur des écrans dit full HDTM [1 ] en raison d'images et de caractères devenant alors beaucoup trop réduits. Tous les sites web à l'heure actuelle étant optimisés pour une résolution dite standard de 1024x768 pixels[2] leur consultation sur des écrans de résolutions supérieures qu'ils soient HD ou non s'en voit donc fortement pénalisée. Comme le montre la figure 1, cet inconvénient apparaît dès une résolution d'écran de 1280x1024 pixels et la démocratisation des écrans HD dans les années à venir ne fera que renforcer l'ampleur de ce problème pour l'instant encore émergent. [1] Le terme «full HDTM» ou «1080p» désignant une résolution de 1920X1080 et «HD» ou «720p» une résolution au moins égale à 1366x720 pixels étant des termes commerciaux, nous ne ferons plus cette différence par la suite, le principe premier de cette invention étant de permettre une compatibilité des sites web quelles que soient les définition d'écrans, cela concerne donc toutes les tailles d'écrans présents sur le marché. [2] Cette résolution standard se basant sur la largeur disponible pour des écrans de 1024 pixels de large, après déduction des marges dues à la présence éventuel d'ascenseur vertical à droite de l'écran, est estimée en moyenne à 980 pixels. 2958768 -2 L'utilisation de la technologie HD-WebTM apporte dès à présent une solution technique à ce problème en permettant aux ménages possesseurs d'écrans récents 5 (qu'ils soient HD ou full HDTM), de profiter de sites web en haute définition, tout en donnant la possibilité aux ménages non équipés de tels écrans, de continuer à visualiser ces mêmes sites dans une résolution standard comme ils le font actuellement ; tout ceci bien sûr de manière transparente et automatique sans intervention ni pour l'internaute ni pour la société éditrice du site une fois la solution 10 mise en place. Les sites web utilisant cette invention seront donc compatibles, c'est-à-dire optimisés pour un affichage sur tous les écrans et quelle que soit leur résolutions (voir figure 3); caractéristique technique que nous résumons sous le terme de site web compatible HD et que nous avons employé au début de ce document. 15 N.B : Il faut bien distinguer cette invention de la fonction, présente sur certains logiciels comme les navigateurs web et permettant d'agrandir ou de réduire le texte, les images, ou les pages d'un site internet (fonction communément dénommée sous le terme de « zoom » ou « loupe ») 20 Cette fonction n'ayant en effet rien à voir avec la présente invention, ni dans ses résultats (le zoom ne faisant qu'agrandir les pixels de l'écran, en provoquant un effet de flou si l'image est interpolée, ou de pixellisation si elle ne l'est pas) ni dans les procédés techniques qu'elle utilise : le zoom étant une fonctionnalité du logiciel ou du navigateur web, à savoir une technologie dite « client » qui ne peut à aucun moment 25 intervenir côté «serveur» c'est-à-dire sur la diffusion du contenu en lui-même en fonction de l'écran sur lequel il est utiisé, contrairement à la présente invention. Le procédé faisant l'unicité de la présente invention, et dont le principe est schématisé sur la figure 2, montre de quelle façon l'application HD-WebTM, par le biais 30 du navigateur, communique en temps réel au serveur quel contenu envoyer en fonction de la résolution du moniteur où est consulté le service et/ou le site web. Ce procédé exclusif ouvre des perspectives nouvelles et variées puisqu'en plus de permettre la diffusion de sites web compatibles HD, cette solution permettra également à des services web de diffuser un contenu différent suivant l'écran sur lequel celui-ci est visualisé ; ainsi par exemple, un internaute possédant un écran HD pourra profiter d'extraits vidéos ou d'images en haute définition et un autre ne possédant qu'un écran standard regardera ces même extraits dans une définition plus réduite (ou de simples vignettes dans le cas d'images) tout ceci de manière transparente et automatique, chose impossible à obtenir avec une vulgaire fonction de zoom qui interpolera simplement l'image qui lui est envoyé et nécessitera de plus Zo l'intervention de l'internaute (un clic dans un menu ou sur un bouton de son navigateur par exemple) et qui plus est, de par son principe, ne sera ni portable ni compatible puisque cette fonctionnalité dépendra de sa présence ou non sur tel ou tel navigateur web, contrairement à notre invention qui elle n'est pas tributaire du navigateur installé côté client. 15 De plus, l'utilisation de procédés techniques (que nous détaillerons dans les pages suivantes) développés spécifiquement afin de rendre notre invention également non tributaire de l'environnement technique du service et/ou de site web l'hébergeant, font que cette dernière_sera totalement autonome et non-intrusive, (c'est-à-dire qu'elle ne touchera pas aux fichiers sources du service et ou du site web en question) une fois 20 mise en place côté serveur. Pour ces raisons, en plus d'être d'une parfaite portabilité et compatibilité côté client (c'est-à-dire quel que soit l'équipement de l'utilisateur : écran, système d'exploitation ou navigateur web[31), notre application HD-WebTM le sera également côté serveur, garantissant ainsi au service et/ou au site web l'hébergeant une exploitation pérenne. 25 [3] Bien que dans le cadre d'un usage en haute définition la présence d'un matériel récent soit nécessaire, des tests plus poussés réalés sous plate-f$rme plus ancienne et sous différends 30 systèmes d'expboitations (WIUDOWS®98 , WIUDOW -NT, WINDOWS-2000 , WINDOWS-XP, WINDOWS-VISTA , WINDOWS-7, MAC OSX-PPC /Inte et linux) ainsi que sur la maerités des navigateubs web du marché sortis entre 2000 et 2010® (Internet Explore& 5/6/7/8/9, Netscape 4/5/6, Firefox 1/2/3/4, Opéra 6/7/8/9/10/11, Safari 1/2/314/5, Chrome 1à7 et de tout autres navigateurs basés sur les moteurs précités) ont montré qu'un équipement datant 35 de plusieurs années ne nuit en rien au bon fonctionnement de cette invention. 2958768 -4- Avant de développer en détail l'ensemble des procédés techniques utilisés 5 dans cette invention, il nous faut séparer les procédés techniques constituant l'invention, des procédés techniques servant à implémenter et intégrer cette dernière selon les spécifications du service ou du site web concerné. Nous définirons ainsi cet ensemble comme se composant en deux groupes de procédés techniques distincts 1 °) Le premier groupe formant l'ensemble des procédés techniques communs à l'invention quel que soit l'environnement technique du client, le service, ou le site web concerné, et formant ce que nous appellerons le coeur de l'application. 2°) Le second groupe formant l'ensemble des développements annexes devant participer à l'implémentation et/ou à l'amélioration de l'intégration de l'invention au sein du service ou du site web concerné (environnement technique, logiciel ou autre application déjà présente) en fonction des spécifications du dient. Les procédés techniques du second groupe variant intrinsèquement selon l'environnement technique ou le cahier des charges du client, nous ne développerons ici par conséquent que les procédés techniques appartenant au premier groupe. Le but de l'invention étant de redimensionner les éléments d'un service ou d'un site web selon la résolution de l'écran où ces derniers seraient visionnés, l'application d'un coefficient multiplicateur à ces éléments (à déterminer pour chaque définition d'écran), est donc nécessaire. Les sites web étant basés sur des écrans standards de résolution 1024x768 pixels, nous prendront ce chiffre comme base 1 afin d'obtenir les ratios à appliquer pour chaque résolution d'écran rencontrée sur le marché. Le tableau figure 4, nous indique les résultats obtenus pour les différentes définitions. Une fois ces coefficients déterminés, l'application de ces derniers à chaque éléments du service ou du site web en fonction de la résolution, rend le procédé possible, bien que complexe et fastidieux, puisqu'il faudrait alors appliquer ces coefficients à chaque élément constituant les pages du service ou du site web concerné. Il nous faut donc rendre ce procédé automatique dans son fonctionnement, mais aussi dans son installation, afin que sa mise en oeuvre ne demande aucune connaissance ou intervention technique de la part du client. L'objectif étant de rendre notre application HD-WebTM portable et non-intrusive quelque soit l'environnement technique où cette dernière sera implémentée, ceci afin de pouvoir offrir les services suivants : ù Une mise à niveau des sites web ne supportant pas la haute définition (c'est-à-dire pour tous ceux ayant été initialement développés pour une résolution d'écran de 1024 x768 pixels) sans que le client ait à refaire l'intégralité de son site. ù Une mise à niveau des services et des sites web n'ayant pas développés de solution permettant la diffusion de contenus haute définition et de contenus classiques coexistant efficacement au sein d'une même plate-forme de diffusion, ceci sans avoir à modifier l'installation déjà existante. ù La migration et/ou la conception de services ou de sites web compatibles haute définition sur tous les environnements techniques quel que soit, la plate-forme, le Framework, l'API, ou le langage utilisé par ce service ou ce site web. ù La migration et/ou la conception de services ou de sites web compatibles haute définition, pour des clients ne pouvant ou ne voulant pas donner l'accès aux fichiers sources de leur service ou de leur site web, pour des raisons contractuelles, financières ou de confidentialité. Cette dernière caractéristique étant primordiale compte tenu d'un grand nombre de clients n'étant pas les hébergeurs de leurs propres sites web (cas courant lorsqu'ils en ont sous-traité la conception et/ou la maintenance et se trouvent liés contractuellement) ou bien encore lorsque les services ou les sites web sont gérés par des systèmes de gestion de contenu dits CMS (Content Management System) qui utilisent tous un procédé pour la mise à jour et l'ajout de contenu qui leur est propre. C'est pourquoi les procédés techniques suivants, ainsi que tous ceux mentionnés dans cette invention, ont été développées spécifiquement pour répondre à ces problématiques, afin de rendre notre application HD-WebTM autonome, portable, et non-intrusive, quelque soit l'environnement technique du service ou du site web où cette dernière sera implémentée. Tous les procédés techniques ainsi développés pour la présente invention ont été regroupés en trois catégories pour plus de compréhension 1°) La première catégorie regroupant tous les procédés techniques chargés de récupérer sélectivement côté client, les éléments présents dans les pages du service ou du site web concerné (étape 1), afin de stocker leurs attributs en mémoire û un attribut étant une propriété de mise en forme d'un élément û (étape 2), avant de leur appliquer un des coefficients multiplicateur du tableau figure 4 (étape 3), Zo et redimensionner leur taille selon la taille de l'écran sur laquelle ces derniers vont être visionnés (étape 4), pour enfin les remplacer par des éléments identiques mais dont les attributs ont été définis pour cette nouvelle taille (étape 5). 2°) La seconde catégorie regroupant tous les procédés techniques côté serveur intervenant dans le redimensionnement de chaque éléments (étape 1), 15 selon les tailles d'écrans définies auparavant par le client par un procédé paramétrable (étape 0), puis de regrouper les éléments et les attributs ainsi créés, dans des fichiers et/ou des répertoires dédiés selon leur catégorie d'élément et la taille d'écran à laquelle ils sont destinés (étape 2). 3°) Enfin, la troisième catégorie regroupant les procédés techniques 20 permettant à l'application située côté serveur, de communiquer avec le navigateur web situé côté client, par l'intermédiaire de fonctions utilisant des valeurs booléennes (étape 1), regroupant chaque tailles d'écran dans des variables uniques (étape 2) elles-mêmes regroupées dans une unique fonction d'initialisation (étape 3). Cette fonction pourra ensuite être appelée à tout moment pour communiquer en 25 temps réel au serveur, quels fichiers devront être envoyés au navigateur en fonction de la taille d'écran sur laquelle ces derniers sont visionnés, ceci afin que le serveur web envoie uniquement les fichiers correspondant à cette taille, dans le but d'optimiser la vitesse de chargement des pages du service ou du site web en question. 2.958768 -7 Une fois ces procédés appliqués à tous les attributs des éléments des pages appartenant à une même catégorie, nous pouvons procéder de manière identique pour 5 tous les attributs des éléments des autres catégories ayant été définis dans le contenu des pages du service ou du site web en question. Les procédés techniques utilisés variant légèrement selon les catégories d'éléments auxquels_ces derniers sont appliqués, plutôt que de redétailler chacun d'eux comme nous l'avons fait précédemment, nous expliquerons plutôt le procédé générique employé pour modifier l'ensemble des attributs des éléments de toutes les catégories ayant été définis en dehors du contenu des pages du service ou du site web en question. Il s'agira de procédés techniques que nous regrouperons dans une quatrième et dernière catégorie et qui seront chargés de parcourir tous les fichiers dont les attributs ont été définis pour une résolution de 1024x768 pixels (étape 1), afin de leur appliquer les coefficients multiplicateurs définis dans le tableau de la figure 4 (étape 2), mais cette-fois-ci en prenant en compte les différences de précisions entre les navigateurs du marché lorsque ces dimensions ont été définis en cadratin (em) û un em étant, contrairement au pixel, une unité relative dépendante de la police et de la précision du navigateur l'utilisant (voir figure 5). Ensuite comme nous l'avons fait précédemment, les attributs des éléments ainsi nouvellement définis seront regroupés et générés, soit dans un répertoire unique leur correspondant, soit dans un même répertoire après avoir été renommés (étape 3) pour ensuite être envoyés par le serveur web en fonction de la résolution d'écran détecté par notre application (étape 4), grâce aux procédés techniques appartenant à la troisième catégorie. Enfin, la dernière étape de ce procédé (étape 5), supprimera dynamiquement c'est-à-dire sans toucher aux fichiers d'origine, tous les attributs des éléments définis pour une résolution d'écran de 1024 pixels de largeur ainsi que tous les éléments y faisant référence, pour les remplacer par des instructions appelant des fichiers spécifiques stockés sur le serveur par notre application et définis pour la résolution de l'écran sur lequel le service ou le site web est actuellement visionné (étape 6). 2958768 -8- Toutes ces modifications intervenant, encore une fois, sans qu'il ait été nécessaire de toucher aux fichiers sources du service ou du site web hébergeant cette solution. 5 Notre application HD-WebTM nécessitant simplement d'être uploader sur le serveur web hôte, ou bien sur un serveur web dédié distant, ceci dans le but de libérer la charge du service ou de site web en question qui pourra alors bénéficier sans aucune baisse de performance de cette invention l'affranchissant des contraintes liées aux so différentes tailles d'écrans présentes sur le marché et lui assurant du même coup une compatibilité et une exploitation pérenne, quelle que soit l'évolution des équipements et des standards de diffusion dans le futur. REVENDICATIONS1/3 - 1 °) Procédé d'interaction entre un serveur diffusant des contenus depuis Internet, en particulier un service ou un site web [2], et un client affichant ces contenus dans une interface de navigation et sur un écran, en particulier un écran de grande taille ou un écran HD haute définition [3], caractérisé en ce qu'il déploie et modifie dynamiquement ces contenus proportionnellement à la taille et la définition des écrans sur lesquels ils sont affichés. 2°) Procédé selon la revendication 1, caractérisé en ce qu'il retourne la définition de l'écran utilisée par ledit client audit serveur [A/B], et que le déploiement et la modification desdits contenus s'opèrent dynamiquement et proportionnellement à la définition retournée par l'application en temps réel d'opérations maintenant un rapport constant entre les proportions de ces contenus et des écrans sur lesquels ils sont affichés. 3°) Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il modifie lesdits contenus, et en particulier les attributs des éléments de ces contenus ù un attribut étant une propriété d'un élément et un élément une propriété définissant un type de contenu dans une page web ù en générant de nouveaux attributs calculés et spécifiquement redéfinis pour la taille et la définition des écrans sur lesquels ces contenus seront affichés. 4°) Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il génère lesdits nouveaux attributs desdits contenus en remplaçant leurs anciennes valeurs par des nouvelles calculées suivant un coefficient multiplicateur modifiant leurs propriétés selon la taille et la définition des écrans sur lesquels ces contenus seront affichés.-10- - REVENDICATIONS 213 - 5°) Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il génère lesdits nouveaux attributs desdits contenus en les remplaçant par des attributs de contenus eux-mêmes générés selon des propriétés spécifiquement définies pour la taille et la définition des écrans sur lesquels ces contenus seront affichés. 10 6°) Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il s'exécute en temps réel après l'envoi desdits contenus depuis ledit serveur lorsqu'il s'agit de les modifier, afin que la modification desdits contenus s'opère sans nécessiter leur retour et requérir leur renvoi auprès dudit serveur et 15 dudit client. 7°) Procédé selon les revendications 1 à 5, caractérisé en ce qu'il s'exécute avant l'envoi desdits contenus depuis ledit serveur lorsqu'il s'agit de les remplacer, afin que le remplacement desdits contenus s'opère sans nécessiter leur 20 retour et requérir leur renvoi auprès dudit serveur et dudit client. 8°) Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il collecte, stocke, et génère en mémoire et en cache sur ledit serveur et chez ledit client, lesdits contenus, et en particulier les attributs des éléments 25 desdits contenus à modifier et à remplacer, afin que la modification et le remplacement de ces contenus se fasse en temps réel lors de leurs diffusion, indépendamment de la vitesse de transfert des réseaux où ces contenus sont diffusés.-11- - REVENDICATIONS 3/3 ù 9°) Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que sa mise en oeuvre s'opère automatiquement et en temps réel, indépendamment de l'utilisateur, du système ou du programme diffusant et affichant ces contenus. 10°) Produit programme d'ordinateur, Framework ou Librairie, permettant la mise en oeuvre du procédé, selon l'une quelconque des revendications précédentes. so 11°) Système permettant la mise en oeuvre du procédé selon l'une quelconque des revendications 1 à 9.