Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR OPTIMISATION OF THE MANAGEMENT OF A SERVER CACHE WHICH MAY BE CONSULTED BY CLIENT TERMINALS WITH DIFFERING CHARACTERISTICS
Document Type and Number:
WIPO Patent Application WO/2006/111452
Kind Code:
A1
Abstract:
The invention relates to a method for optimisation of the management of a server cache for dynamic pages which may be consulted by client terminals with differing characteristics which requires the provision of discrete versions (10) of a dynamic page in the cache. According to the method, when a terminal requests (11) a dynamic page, a verification step (12) for the presence of at least one version of the dynamic page in the cache is carried out, such that if the verification is positive the following complementary steps are carried out: procurement (13) of a set of characteristics specific to the type of client terminal, determination (14) of a subset of necessary characteristics from amongst the specific characteristics for the reproduction of the dynamic page on a client terminal, search (15), among the version(s) of the dynamic page in the cache for a suitable version using the subset of necessary characteristics and allocation (16) of the suitable version to the client terminal.

Inventors:
LECOQ ELOUAN (FR)
PERRON JULIEN (FR)
Application Number:
PCT/EP2006/061062
Publication Date:
October 26, 2006
Filing Date:
March 27, 2006
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
STREAMEZZO (FR)
LECOQ ELOUAN (FR)
PERRON JULIEN (FR)
International Classes:
G06F17/30; H04L29/08
Domestic Patent References:
WO2001086511A22001-11-15
Foreign References:
US20040003117A12004-01-01
EP1207463A22002-05-22
Attorney, Agent or Firm:
Bioret, Ludovic (16b Rue De Jouanet, Rennes Cedex 7, FR)
Download PDF:
Claims:
REVENDICATIONS
1. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques pouvant être consultées par des terminaux clients de types différents, et nécessitant en conséquence des instances (10) distinctes d'une page dynamique, dans ledit cache, caractérisé en ce que lorsqu'un terminal requiert (11) une page dynamique, on met en œuvre une étape (12) de vérification de la présence d'au moins une instance de la page dynamique dans le cache, de telle façon que si la vérification est positive, on met en œuvre les étapes complémentaires : d'obtention (13) d'un ensemble de caractéristiques spécifiques du type du terminal client ; de détermination (14), parmi les caractéristiques spécifiques, d'un sousensemble de caractéristiques nécessaires, pour la restitution de la page dynamique sur un terminal client; de recherche (15), parmi la ou les instances de la page dynamique dans le cache, d'une instance possible, utilisant le sousensemble de caractéristiques nécessaires; d'affectation (16) de l'instance possible au terminal client.
2. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon la revendication 1, caractérisé en ce que si ladite étape (12) de vérification est négative, on met en œuvre les étapes supplémentaires de : génération (17) d'au moins une instance de ladite page dynamique dans ledit cache pour un sousensemble de caractéristiques spécifiques du type dudit terminal client ; affectation de ladite instance générée audit terminal client.
3. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconque des revendications 1 et 2, caractérisé en ce que ledit cache se présente sous la forme d'une table comprenant pour chaque adresse d'une page dynamique au moins une première liste d'entrées contenant au moins une caractéristiques propre audit terminal client, et au moins une deuxième liste d'entrées contenant pour au moins une desdites caractéristiques de ladite première liste, au moins une valeur de cache valide nécessaire pour la restitution d'une page dynamique sur ledit terminal client.
4. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconques des revendications 1 à 3, caractérisé en ce que ladite étape (12) de vérification de la présence d'au moins une instance (10) de ladite page dynamique dans ledit cache comprend les sousétapes suivantes de : recherche (13) si pour l'adresse de ladite page dynamique requise par ledit terminal client, au moins une desdites caractéristiques dudit sous ensemble de caractéristiques propres audit terminal client est présente dans ladite première liste d'entrées dudit cache ; et si au moins une desdites caractéristiques dudit terminal client est trouvée dans ladite première liste d'entrées : recherche (15) si pour chacune desdites caractéristiques dudit sousensemble de caractéristiques nécessaires pour la restitution de ladite page dynamique requise par ledit terminal, il existe au moins une valeur de cache valide dans ladite deuxième liste d'entrées dudit cache ; et si pour l'adresse de ladite page dynamique requise aucune desdites caractéristiques dudit sous ensemble de caractéristiques propres audit terminal client n'est présente dans ladite première liste d'entrées ou si ladite étape (14) de recherche d'au moins une valeur de cache valide dans ladite deuxième liste d'entrées dudit cache n'a pu aboutir pour lesdites caractéristiques dudit sousensemble de caractéristiques nécessaires pour la restitution de ladite page dynamique: ajout (18) dans ladite première liste d'entrées d'au moins une caractéristique dudit sousensemble de caractéristiques pour l'adresse de ladite page dynamique requise par ledit terminal client, et • génération (19), dans ladite deuxième liste d'entrées dudit cache, d'au moins une valeur de cache valide pour ladite au moins une caractéristique dudit sousensemble de caractéristiques nécessaire ajoutée dans ladite première liste.
5. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconque des revendications 1 à 4, caractérisé en ce que lesdites instances distinctes d'une page dynamique sont accessibles dans ledit cache pour une durée prédéterminée.
6. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconque des revendications 1 à 5, caractérisé en ce que ladite requête d'une page dynamique par ledit terminal client est prise en compte par ledit serveur de pages dynamiques après une étape préliminaire positive d'identification du type dudit terminal client par ledit serveur de pages dynamiques.
7. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconque des revendications 1 à 6, caractérisé en ce que lesdites caractéristiques dudit sousensemble de caractéristiques nécessaires pour la restitution d'une page dynamique sur un terminal client sont directement déterminées par ledit serveur en fonction du type dudit terminal client requérant auprès de lui ladite page dynamique.
8. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconque des revendications 1 à 7, caractérisé en ce que lesdites caractéristiques dudit sousensemble de caractéristiques nécessaires pour la restitution d'une page dynamique sur un terminal client sont préalablement déterminées par ledit terminal client qui les transmet directement dans chacune de ses requêtes audit serveur de pages dynamiques.
9. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconque des revendications 1 à 7, caractérisé en ce ledit terminal client transmet lesdites caractéristiques dudit sousensemble de caractéristiques nécessaires pour la restitution d'une page dynamique sur un terminal serveur d'hébergement prédéterminé et transmet audit serveur de pages dynamiques l'adresse dudit serveur d'hébergement à laquelle ce dernier pourra venir chercher lesdites caractéristiques dudit sousensemble de caractéristiques propres audit terminale client.
10. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconque des revendications 2 à 9, caractérisé en ce que pour chaque instance de ladite page dynamique générée, on ajoute dans ledit cache toutes les valeurs des variables utilisées par ladite page générée et calculées en fonction dudit sousensemble de caractéristiques spécifiques du type dudit terminal client.
11. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconque des revendications 2 à 10, caractérisé en ce que ladite étape de génération d'au moins une instance de ladite page dynamique dans ledit cache comprend une sousétape préliminaire de détermination d'au moins une caractéristique et d'au moins une valeur de ladite caractéristique, essentielles pour ladite étape de génération.
12. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconque des revendications 1 à 11, caractérisé en ce que lesdites pages dynamiques sont des pages de contenu multimédia comprenant au moins une donnée du type appartenant au groupe comprenant au moins : du texte ; des images ; du son ; de la vidéo.
13. Procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'une quelconque des revendications 1 à 12, caractérisé en ce que lesdits terminaux clients sont de types différents appartenant au groupe comprenant au moins : les terminaux mobiles de télécommunications et/ou radiocommunications ; les terminaux fixes ; les terminaux de streaming. et en ce que ledit serveur de pages dynamiques générant un contenu est du type : serveur fixe ; serveur mobile ; serveur de streaming.
14. Programme d'ordinateur comprenant des instructions de programme pour l'optimisation de la gestion d'un cache d'un serveur de pages dynamiques pouvant être consultées par des terminaux clients de types différents, et nécessitant en conséquence des instances distinctes d'une page dynamique, dans ledit cache, caractérisé en ce que, lorsqu'un terminal requiert une page dynamique, on met en œuvre une étape de vérification de la présence d'au moins une instance de ladite page dynamique dans ledit cache, de telle façon que si la vérification est positive, il met en œuvre les étapes complémentaires de : obtention d'un ensemble de caractéristiques spécifiques du type dudit terminal client ; détermination, parmi lesdites caractéristiques spécifiques, d'un sous ensemble de caractéristiques nécessaires, pour la restitution de ladite page dynamique sur un terminal client ; recherche, parmi la ou lesdites instances de ladite page dynamique dans ledit cache, d'une instance possible, utilisant ledit sousensemble de caractéristiques nécessaires; affectation de ladite instance possible audit terminal client ; lorsque ledit programme fonctionne sur un ordinateur.
15. Programme d'ordinateur comprenant des instructions de programme pour l'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon la revendication 13, caractérisé en ce que si ladite vérification est négative, il met en œuvre les étapes suivantes de : génération d'au moins une instance de ladite page dynamique dans ledit cache pour un sousensemble de caractéristiques spécifiques du type dudit terminal client; affectation de ladite instance générée audit terminal client ; lorsque ledit programme fonctionne sur un ordinateur.
16. Dispositif d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques pouvant être consultées par des terminaux clients de types différents, et nécessitant en conséquence des instances distinctes d'une page dynamique, dans ledit cache, caractérisé en ce qu'il comprend des moyens de vérification de la présence d'au moins une instance de ladite page dynamique dans ledit cache lorsqu'un terminal client requiert une page dynamique, et : des moyens d'obtention d'un ensemble de valeurs de caractéristiques spécifiques du type dudit terminal client; de moyens de détermination, parmi lesdites caractéristiques spécifiques, d'un ensemble de valeurs pour ledit sousensemble de caractéristiques nécessaires, pour la restitution de ladite page dynamique sur un terminal ; des moyens de recherche, parmi la ou lesdites instances de ladite page dynamique dans ledit cache, d'une instance possible, utilisant ledit ensemble de valeurs dudit sousensemble de caractéristiques nécessaires; des moyens d'affectation de ladite instance possible audit terminal client ; des générations d'au moins une instance de ladite page dynamique dans ledit cache pour ledit ensemble de valeur dudit sousensemble de caractéristiques spécifiques du type dudit terminal client ; de façon que si au moins une instance de ladite page dynamique est présente dans ledit cache, lesdits moyens d'affectation affecte ladite instance de ladite page dynamique audit terminal client la requérant et, si aucune instance de ladite page dynamique n'est présente dans ledit cache, lesdits moyens de génération génère au moins une instance de ladite page requise dans ledit cache pour un sousensemble de caractéristiques spécifiques dudit terminal client.
17. Serveur de pages dynamiques générant un contenu caractérisé en ce qu'il comprend un dispositif selon la revendication 16 assurant une optimisation de la gestion d'au moins un cache dudit serveur de pages dynamiques pouvant être consultées par des terminaux mobiles de types différents, et nécessitant en conséquence des instances distinctes d'une page dynamique, dans ledit cache.
Description:
Procédé d'optimisation de la gestion d'un cache de serveur pouvant être consulté par des terminaux clients de caractéristiques différentes

1. Domaine de l'invention

Le domaine de l'invention est celui des terminaux serveurs de contenu, par exemple de contenu multimédia, pouvant être accèdes par des terminaux clients possédant des caractéristiques hétérogènes.

Plus précisément, l'invention concerne l'amélioration et l'optimisation de la gestion du service de cache d'un tel terminal serveur de contenu, en fonction des caractéristiques propres au terminal client requérant une ou plusieurs instances d'un contenu prédéterminé auprès du terminal serveur.

2. État de la technique

On connaît de l'état de la technique antérieur, des solutions visant à indexer le cache d'un terminal serveur par l'adresse du terminal client sur le réseau de communication sous-jacent. Une première technique connue de l'art antérieur consiste à indexer le cache du terminal serveur par l'adresse par l'adresse URL (pour « Uniform Resource Locator » en anglais).

Cette technique bien décrite dans la RFC 2068 de la norme http 1.1 (http://www.faqs.org/rfcs/rfc2068.html) possède pour inconvénient principal de ne pas permettre la prise en compte d'un parc hétéroclites de terminaux clients nécessitant un contenu adapté à leur spécificités (taille d'écran, mémoire, etc.). En conséquence, un contenu caché sera renvoyé à l'identique à la suite de toute requête issue de terminaux clients sollicitant une même adresse URL de page de contenu sur le serveur, ce qui rend ce mécanisme de cache http particulièrement inadapté et donc inutilisable dans le contexte de l'invention qui vise justement à prendre en compte les caractéristiques propres à chaque terminal client pour adapter et renvoyer le contenu requis sous une forme la plus adaptée aux contraintes techniques du terminal client.

Une autre technique connue de l'art antérieur propose d'indexer le cache du terminal serveur par l'adresse par l'adresse URL (pour « Uniform Resource

Locator » en anglais) et par les caractéristiques du terminal client à l'origine d'une requête de contenu auprès du serveur. Cette technique traduite dans la section 14.43 de la RFC 2068 définissant la norme http 1.1 (http://www.faqs.org/rfcs/rfc2068.html) ne peut s'appliquer également au problème résolu par l'invention en ce sens qu'elle nécessiterait que le terminal client à l'origine d'une requête de contenu dynamique soit en mesure de transmettre l'ensemble de ses caractéristiques sur des lignes différentes de l'entête http (ou « http Header » en anglais) de sa requête à destination du terminal serveur. Or, aucun terminal client du marché n'est en mesure de proposer une telle approche relativement peut intéressante, car elle imposerait donc de pouvoir maîtriser l'implémentation de la transmission au terminal serveur des caractéristiques par le terminal client, ce que la technique selon l'invention cherche justement à éviter au travers la généricité de la solution proposée.

De plus, une telle technique selon l'art antérieur imposerait que les critères ou caractéristiques techniques des terminaux clients soient fixes ou que les combinaisons de critères des terminaux clients soient dupliquées en début de génération de contenu.

Un autre inconvénient de la norme http est liée au fait qu'elle nécessite de connaître à l'avance l'ensemble des paramètres à mettre dans le cache du terminal serveur, pour un type donné de terminal client à l'origine d'une requête d'une page ou plus généralement d'un contenu dynamique. 3. Objectifs de l'invention

L'invention a notamment pour objectif de pallier ces divers inconvénients de l'état de la technique. Plus précisément, un objectif de l'invention est de fournir un procédé permettant d'optimiser la gestion d'un cache d'un terminal serveur de pages dynamiques pouvant être consultées par des terminaux clients de types différents.

Un autre objectif de l'invention est de fournir un tel procédé qui ne nécessite pas de connaître à l'avance, comme dans les techniques connues de l'art antérieur, l'ensemble des paramètres à mettre dans le cache du terminal serveur,

pour un type donné de terminal client à l'origine d'une requête d'une page ou plus généralement d'un contenu dynamique.

Un objectif supplémentaire de l'invention est de fournir un tel procédé qui autorise une plus forte granularité des éléments mis en cache, relativement au caractéristiques spécifiques d'un terminal client requérant la consultation de pages dynamiques.

Encore un autre objectif de l'invention est de fournir un tel procédé qui soit totalement indépendant du type de terminal et de ses caractéristiques techniques propres, à l'origine d'une requête, et qui autorise donc de traiter aussi bien des requêtes en provenances de terminaux de communication mobiles (par exemple un téléphone mobile ou un assistant personnel numérique (PDA)), que des requêtes en provenance de terminaux fixes (par exemple, un ordinateur ou une tablette PC).

Un dernier objectif de l'invention est de fournir un tel procédé qui soit facile à mettre en œuvre, peu gourmand en temps et en puissance de calcul, tout en restant de coût raisonnable.

4. Résumé de l'invention

Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints selon l'invention à l'aide d'un procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques pouvant être consultées par des terminaux clients de types différents, et nécessitant en conséquence des instances distinctes d'une page dynamique dans le cache. Un tel procédé selon l'invention est tel que avantageusement, lorsqu'un terminal requiert une page dynamique, il met en œuvre une étape de vérification de la présence d'au moins une instance de la page dynamique dans le cache, de telle sorte que si la vérification est positive, les étapes complémentaires suivantes sont mise en œuvre :

- obtention d'un ensemble de caractéristiques spécifiques du type du terminal client ;

- détermination, parmi les caractéristiques spécifiques, d'un sous- ensemble de caractéristiques nécessaires, pour la restitution de la page dynamique sur un terminal client;

- recherche, parmi la ou les instances de la page dynamique dans le cache, d'une instance possible, utilisant le sous-ensemble de caractéristiques nécessaires;

- affectation de l'instance possible au terminal client.

Une telle démarche selon l'invention permet notamment d'envisager un mode de réalisation selon lequel un terminal serveur dispose déjà, de façon pré chargée, d'un ensemble de pages dynamiques pour certains types de terminaux clients aux caractéristiques connues.

Avantageusement, si la vérification est négative, on met en œuvre les étapes supplémentaires de :

- génération d'au moins une instance de la page dynamique dans le cache pour un sous-ensemble de caractéristiques spécifiques du type du terminal client ;

- affectation de l'instance générée au terminal client. Préférentiellement, le cache se présente sous la forme d'une table comprenant pour chaque adresse d'une page dynamique au moins une première liste d'entrées contenant au moins une caractéristiques propre au terminal client, et au moins une deuxième liste d'entrées contenant pour au moins une des caractéristiques de la première liste, au moins une valeur de cache valide nécessaire pour la restitution d'une page dynamique sur le terminal client.

Une telle approche s'avère très efficace en ce sens qu'elle n'impose pas de connaître à l'avance l'ensemble des caractéristiques techniques d'un terminal client à prendre en compte pour la génération du contenu requis par ce dernier.

Ainsi, on peut citer à titre d'exemple la situation suivante dans laquelle un terminal client requiert auprès d'un terminal serveur un contenu dynamique vidéo.

Suite à la requête du terminal client, on regarde alors dans la première liste si la caractéristique du terminal client, notée Cl par exemple et correspondant à

« supporte la vidéo » est présente. Si la réponse est négative, on n'effectue aucun traitement particulier. A l'inverse, en cas de réponse positive, on regarde dans la deuxième liste sur la caractéristique « support le Mpeg-4 » possède une valeur booléenne égale à 1 (oui) ou bien 0 (non). Préférentiellement, l'étape de vérification de la présence d'au moins une instance de la page dynamique dans le cache comprend les sous-étapes suivantes de :

- recherche si pour l'adresse de la page dynamique requise par le terminal client, au moins une des caractéristiques du sous-ensemble de caractéristiques propres au terminal client est présente dans la première liste d'entrées du cache ;

- et si au moins une des caractéristiques du terminal client est trouvée dans la première liste d'entrées :

• recherche si pour chacune des caractéristiques du sous- ensemble de caractéristiques nécessaires pour la restitution de la page dynamique requise par le terminal, il existe au moins une valeur de cache valide dans la deuxième liste d'entrées du cache ;

- et si pour l'adresse de la page dynamique requise aucune des caractéristiques du sous ensemble de caractéristiques propres au terminal client n'est présente dans la première liste d'entrées ou si l'étape de recherche d'au moins une valeur de cache valide dans la deuxième liste d'entrées du cache n'a pu aboutir pour les caractéristiques du sous- ensemble de caractéristiques nécessaires pour la restitution de la page dynamique:

• ajout dans la première liste d'entrées d'au moins une caractéristique du sous-ensemble de caractéristiques pour l'adresse de la page dynamique requise par le terminal client, et

• génération, dans la deuxième liste d'entrées du cache, d'au moins une valeur de cache valide pour au moins l'une des caractéristiques du sous-ensemble de caractéristiques nécessaire ajoutée dans la première liste. Avantageusement, les instances distinctes d'une page dynamique sont accessibles dans le cache pour une durée prédéterminée.

Ainsi, dans l'hypothèse d'un pré chargement du contenu de pages dynamiques à l'intérieur du cache du terminal serveur, en fonction d'un ensemble de caractéristiques techniques propre à des terminaux préalablement et parfaitement identifiés, la durée de persistance des pages dynamiques générées dans le cache du terminal serveur pourra être paramétrée à l'infini, par exemple.

A l'inverse, si le terminal serveur doit pouvoir générer des pages dynamiques pour une très grande diversité de terminaux clients dont le type n'est pas connu à l'avance, la durée de persistance des instances de pages dynamiques générées dans le cache sera paramétrée entre quelques centaines de millisecondes et quelques secondes ou minutes.

De façon avantageuse, la requête d'une page dynamique par un terminal client est prise en compte par le serveur de pages dynamiques après une étape préliminaire positive d'identification du type du terminal client par le serveur de pages dynamiques.

Une telle étape préliminaire permet notamment d'anticiper au niveau de la mise dans le cache du terminal serveur, les caractéristiques du terminal clients qui cherche à se connecter, les caractéristiques essentielles de ce dernier qui seront nécessaires au terminal client pour générer le contenu qui sera éventuellement mise dans le cache.

Préférentiellement, les caractéristiques du sous-ensemble de caractéristiques nécessaires pour la restitution d'une page dynamique sur un terminal client sont directement déterminées par le serveur en fonction du type du terminal client requérant auprès de lui la page dynamique.

Dans ce mode de réalisation, le client qui s'identifie auprès du terminal serveur, puis le terminal serveur reconnaît le type du terminal client qui se connecte à lui et qui détermine ensuite les caractéristiques essentielles du terminal client à prendre en compte pour générer le contenu adéquate, ces dernières n'étant plus nécessairement transmises au terminal serveur par le terminal client.

Dans une variante avantageuse de l'invention, les caractéristiques du sous- ensemble de caractéristiques nécessaires pour la restitution d'une page dynamique sur un terminal client sont préalablement déterminées par le terminal client lui- même, qui les transmet ensuite directement dans chacune de ses requêtes au serveur de pages dynamiques. Une telle variante permet à n'importe quel type de terminal clients dont les caractéristiques techniques ne sont pas connues à l'avance par le terminal serveur, de pouvoir tout de même requérir auprès de ce dernier un contenu de pages dynamiques qui lui soit parfaitement adapté.

De façon également avantageuse, dans une autre variante de l'invention, le terminal client transmet les caractéristiques du sous-ensemble de caractéristiques nécessaires pour la restitution d'une page dynamique sur un terminal serveur d'hébergement prédéterminé et transmet ensuite au terminal serveur de pages dynamiques, l'adresse du serveur d'hébergement à laquelle ce dernier pourra venir chercher les caractéristiques du sous-ensemble de caractéristiques propres au terminale client.

De façon préférentielle, pour chaque instance de la page dynamique générée, on ajoute dans le cache toutes les valeurs des variables utilisées par la page générée et calculées en fonction du sous-ensemble de caractéristiques spécifiques du type du terminal client. De façon également préférentielle, l'étape de génération d'au moins une instance de la page dynamique dans le cache comprend une sous-étape préliminaire de détermination d'au moins une caractéristique et d'au moins une valeur de la caractéristique, essentielles pour l'étape de génération. Il est bien entendu que dans certains cas le cache peut être utilisé et/ou paramétré de façon à fonctionner comme un cache habituel, c'est-à-dire de façon que toutes

les pages requises par un ou plusieurs terminaux soient mises dans le cache pendant une durée prédéterminée.

Avantageusement, les pages dynamiques sont des pages de contenu multimédia comprenant au moins une donnée du type appartenant au groupe comprenant au moins :

- du texte ;

- des images ;

- du son ;

- de la vidéo. De façon avantageuse, les terminaux clients sont de types différents appartenant au groupe comprenant au moins :

- les terminaux mobiles de télécommunications et/ou radiocommunications ;

- les terminaux fixes ; - les terminaux de streaming ; et le serveur de pages dynamiques générant un contenu est du type :

- serveur fixe ;

- serveur mobile ;

- serveur de streaming. On précise ici que par serveur mobile, on entend un terminal mobile pouvant jouer le rôle de serveur de contenu « légers », de façon qu'un terminal client autorisé - un téléphone mobile, par exemple - puisse s'y connecter pour récupérer des données partagées.

Un objectif essentiel du procédé selon l'invention est d'offrir un adaptabilité de la génération du contenu par le terminal serveur, quel que soit le type de ce dernier et quel que soit le type du terminal client effectuant sa requête d'un contenu de page dynamique auprès de ce terminal serveur.

L'invention concerne également un programme d'ordinateur comprenant des instructions de programme pour l'optimisation de la gestion d'un cache d'un serveur de pages dynamiques pouvant être consultées par des terminaux clients de

types différents, et nécessitant en conséquence des instances distinctes d'une page dynamique, dans ledit cache.

Un tel programme et tel que avantageusement, lorsqu'un terminal requiert une page dynamique, il exécute une étape de vérification de la présence d'au moins une instance de la page dynamique dans le cache du terminal serveur, de telle façon que si la vérification est positive, il exécute les étapes complémentaires de :

- obtention d'un ensemble de caractéristiques spécifiques du type du terminal client ; - détermination, parmi les caractéristiques spécifiques, d'un sous- ensemble de caractéristiques nécessaires, pour la restitution de la page dynamique sur un terminal client ;

- recherche, parmi la ou les instances de la page dynamique dans le cache, d'une instance possible, utilisant le sous-ensemble de caractéristiques nécessaires;

- affectation de l'instance possible au terminal client.

De plus, si la vérification est négative, ce programme exécute de façon préférentielle les étapes suivantes de :

- génération d'au moins une instance de la page dynamique dans le cache pour un sous-ensemble de caractéristiques spécifiques du type du terminal client;

- affectation de l'instance générée au terminal client.

L'invention concerne également un dispositif d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques être consultées par des terminaux clients de types différents, et nécessitant en conséquence des instances distinctes d'une page dynamique, dans le cache.

Un tel dispositif comprend avantageusement des moyens de vérification de la présence d'au moins une instance de la page dynamique dans le cache lorsqu'un terminal client requiert une page dynamique, et :

- des moyens d'obtention d'un ensemble de valeurs de caractéristiques spécifiques du type du terminal client;

- de moyens de détermination, parmi les caractéristiques spécifiques, d'un ensemble de valeurs pour le sous-ensemble de caractéristiques nécessaires, pour la restitution de la page dynamique sur un terminal ;

- des moyens de recherche, parmi la ou les instances de la page dynamique dans le cache, d'une instance possible, utilisant l'ensemble de valeurs du sous-ensemble de caractéristiques nécessaires;

- des moyens d'affectation de l'instance possible au terminal client ; - des générations d'au moins une instance de la page dynamique dans le cache pour l'ensemble de valeur du sous-ensemble de caractéristiques spécifiques du type du terminal client.

Ainsi et de façon également avantageuse, si au moins une instance de la page dynamique est présente dans le cache, les moyens d'affectation affecte l'instance de la page dynamique au terminal client la requérant et, si aucune instance de la page dynamique n'est présente dans le cache, les moyens de génération génère au moins une instance de la page requise dans le cache pour un sous-ensemble de caractéristiques spécifiques du terminal client.

Le dispositif selon l'invention a une portée sensiblement équivalente à celle définie du point de vue technique pour le procédé précité.

Enfin, l'invention concerne aussi un serveur de pages dynamiques générant un contenu comprenant de façon avantageuse un dispositif tel que précité, dont le rôle consiste à assurer une optimisation de la gestion d'au moins un cache du serveur de pages dynamiques pouvant être consultées par des terminaux mobiles de types différents, et nécessitant en conséquence des instances distinctes d'une page dynamique, dans le cache.

L'invention s'inscrit donc parfaitement dans un contexte d'optimisation de la gestion d'un cache d'un terminal serveur de contenus générés dynamiquement pouvant être consultés par des clients hétéroclites, identifiés par

un ensemble de caractéristiques, lequel nécessite en conséquence des instances distinctes d'un contenu donné dans le cache.

Ainsi, et de façon résumée, lorsqu'un client requiert un contenu donné auprès d'un terminal serveur de contenus, on vérifie tout d'abord la présence d'au moins une instance du contenu dans le cache et si cette instance est présente, on obtient un ensemble de caractéristiques spécifiques du type dudit client à l'origine de la requête.

On détermine ensuite parmi les caractéristiques spécifiques, un sous-ensemble de caractéristiques nécessaires, pour la restitution du contenu sur le client à l'origine de la requête et on recherche parmi la ou les instances du contenu disponibles dans le cache, une instance possible, utilisant le sous-ensemble de caractéristiques nécessaires, et cela, même si cette instance a été mise dans le cache du terminal serveur, précédemment et pour un autre terminal client. Cette instance est ensuite transmise ou affectée au client. A l'inverse, si cette instance est présente, on génère une instance du contenu pour le terminal client à l'origine de la requête, sur la base d'un sous- ensemble de caractéristiques du terminal client requérant, lesquelles sont identifiées comme nécessaires pour la génération de l'instance et sa transmission au client. On précisera ici de façon avantageuse que le sous-ensemble des caractéristiques nécessaires pour la transmission du contenu dynamique requis au terminal client requérant peut varier en fonction du contenu requit et/ou du type du terminal client lui-même.

On stocke ensuite l'instance de contenu dynamique ainsi généré pendant une période prédéterminée et configurable, à l'intérieur du cache, ainsi que les caractéristiques et les valeurs nécessaires de ces caractéristiques, propres au terminal client, avant de transmettre et/ou d'affecter l'instance de contenu dynamique requis au terminal client. 5. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation

préférentiel de l'invention, donné à titre d'exemple illustratif et non limitatif, faite en référence aux dessins annexés parmi lesquels :

- la figure 1 est un organigramme de la logique de choix d'une instance dans le cache en fonction des caractéristiques du contenu et du type du terminal client ;

- la figure 2 présente les différents composants intervenant dans le procédé de cache selon l'invention, dans une configuration à deux terminaux clients ;

- la figure 3 illustre le mécanisme de requêtage entre un terminal client et le générateur de contenu selon l'invention ; - la figure 4 est un exemple du mécanisme de génération d'un contenu pour un terminal client en fonction d'une caractéristique de ce dernier ;

- la figure 5 illustre le principe de mise dans le cache d'un contenu généré à la figure 4 en fonction d'une caractéristique du terminal client, et de transmission du contenu généré au terminal client ; - la figure 6 donne un exemple du principe de requêtage par un deuxième terminal client, lorsque le cache du terminal serveur n'est pas vide ;

- la figure 7 illustre la transmission d'un contenu par le terminal serveur lorsqu'une instance requise est présente dans le cache de ce dernier ;

- la figure 8 donne un exemple de génération d'un contenu par le terminal serveur et de détermination par ce dernier d'une caractéristique essentielle de génération du contenu parmi les caractéristiques transmises par un terminal client ;

- la figure 9 donne une illustration de la mise dans le cache du terminal serveur d'un contenu généré pour l'exemple de la figure 8 ; - la figure 10 donne un exemple de requêtage du terminal serveur par un deuxième terminal client lorsque le cache n'est pas vide, mais qu'aucune instance ne peut être trouvée dans le cache ;

- la figure 11 illustre le principe de la génération d'une nouvelle instance de cache lorsque le terminal serveur ne dispose pas déjà de l'instance requise dans son cache ;

- la figure 12 illustre une situation dans laquelle un deuxième terminal client requiert un contenu non déjà présent dans la cache, le terminal déterminant lui- même la caractéristique essentielle du client pour la génération du contenu dynamique ; - la figure 13 donne un nouvel exemple d'une requête transmise par un terminal client pour une nouvelle caractéristique ;

- les figures 14 et 15 présentent le principe de la détermination de la nouvelle caractéristique essentielle et de sa valeur associée en réponse à la requête de la figure 13 ; - les figures 16 et 17 présentent la génération dans le cache d'une nouvelle page dynamique suite à une requête d'un deuxième terminal, ayant nécessité la détermination de deux nouvelles caractéristiques essentielles de génération et de détermination des valeurs associées.

6. Description de trois modes de réalisation de l'invention On présente conjointement avec les figures précitées trois modes de réalisation préférés du procédé selon l'invention.

Comme illustré sur la figure 1, qui présente un organigramme du procédé d'optimisation de la gestion d'un cache d'un serveur de pages dynamiques selon l'invention, lorsqu'un terminal requiert (11) une page dynamique, on met en œuvre une étape (12) de vérification de la présence d'au moins une instance de la page dynamique dans le cache, de telle façon que si la vérification est positive, on met en œuvre les étapes complémentaires :

- d'obtention (13) d'un ensemble de caractéristiques spécifiques du type du terminal client ; - de détermination (14), parmi les caractéristiques spécifiques, d'un sous-ensemble de caractéristiques nécessaires, pour la restitution de la page dynamique sur un terminal client;

- de recherche (15), parmi la ou les instances de la page dynamique dans le cache, d'une instance possible, utilisant le sous-ensemble de caractéristiques nécessaires;

- d'affectation (16) de l'instance possible au terminal client.

De plus, si si ladite étape (12) de vérification est négative, on met en œuvre les étapes supplémentaires de :

- génération (17) d'au moins une instance de ladite page dynamique dans ledit cache pour un sous-ensemble de caractéristiques spécifiques du type dudit terminal client ;

- affectation de ladite instance générée audit terminal client.

6.1 Description du principe général du mécanisme de gestion du cache d'un terminal serveur, selon l'invention, pour deux terminaux clients similaires

Comme illustré sur la figure 2, deux clients 21, 22, bien que différents mais avec des caractéristiques compatibles vont partagés le même contenu caché. Dans l'exemple suivant, le client 21, possèdent les caractéristiques notées Cl, C2, et les valeurs Vl, V2 pour ces caractéristiques. Le client 22 possède les caractéristiques techniques notées Cl, C3, et les valeurs Vl, V3 pour ces caractéristiques.

Dans cette configuration et comme illustré sur la figure 3, le client 21 requiert auprès d'un terminal serveur, un contenu A, tout en transmettant dans sa requête 3O 1 ses caractéristiques Cl, C2 et les valeurs Vl, V2 pour ces caractéristiques Cl, C2.

On précise ici que le terminal serveur de contenus au sens de l'invention gère le cache, et pour se faire, comprend deux entités appelées gestionnaire de cache et générateur de contenu, la première gérant les instances de contenus générées par le générateur de contenus. Le gestionnaire 31 de cache du terminal serveur regarde s'il possède des entrées concernant le contenu A requis. Dans le cas de la figure 3, aucune entrée concernant A ne peut être trouvée dans le gestionnaire 31 de cache, ce dernier transmettant alors la requête 3O 2 au générateur de contenu 32 du terminal serveur, pour qu'il génère le contenu A requis au moyen d'un générateur de contenu 33.

Le gestionnaire 33 de contenu génère le contenu A requis après qu'il ait identifié la caractéristique Cl de la requête 3O 2 pour le faire, nécessaire à la génération. Il renvoie alors le résultat de la génération sous la forme d'une requête 44 au gestionnaire de cache, comme illustré sur la figure 4. Tel que présenté sur la figure 5, le gestionnaire 31 de cache stocke le contenu A 51 avec le critère Cl et récupère la valeur Vl associé à Cl pour ce client 21. Puis il renvoi le contenu de la page dynamique A (52) au client 21 l'ayant requise. Le contenu 51 est alors stocké pendant une durée prédéterminée et paramétrable à l'intérieur du gestionnaire de cache du terminal serveur. De façon ultérieure, comme illustré sur les figures 6 et 7, si le client 22 demande à son tour le contenu A au terminal serveur, sous la forme d'une requête 61, le gestionnaire 31 de cache regarde s'il a des entrées concernant A. Dans la présente situation de la figure 6, la requête 61 de contenu A embarque les caractéristiques Cl et C3 et les valeurs Vl et V3 pour ces dernières, relatives au terminal client 22. Pour cette requête 61, le gestionnaire 31 a trouvé une entrée compatible 51 qu'il retourne alors sous la forme d'une requête 71 au terminal client 22. Aucun nouveau contenu n'a été de nouveau généré pour la requête 61 du terminal client 22. En effet, le gestionnaire de cache 31 a été capable de déterminer que pour le client 22, tout comme pour le terminal client 21, seule la caractéristique Cl associée à la valeur Vl, la caractéristique C3 et sa valeur V3 n'ayant aucune incidence en terme de génération de contenu pour le contenu A. En conséquence, le générateur de contenu 31 se contente de retourner au terminal client 22 le contenu A 71 pour lequel une instance 51 a pu être trouvée.

6.2 Description du principe général du mécanisme de gestion du cache d'un terminal serveur, selon l'invention, pour deux terminaux clients distincts en termes de caractéristiques

Comme illustré sur les figures 8 à 10, on traite désormais le cas de deux terminaux clients 81, 82, différents et sans caractéristiques compatibles. De tels clients ne peuvent donc pas partager un même contenu caché correspondant à des contenu

générés en fonction de leur caractéristiques techniques respectives et des valeurs associées respectivement à ces caractéristiques.

Dans cette nouvelle configuration, le client 81 possède les caractéristiques Cl, C2, et les valeurs Vl, V2 pour ces caractéristiques, alors que le terminal client 82, possède des caractéristiques Cl, C2, mais des valeurs possibles V3, V2 pour ces caractéristiques, distinctes des valeurs Vl, V2.

Ainsi et tout comme dans la précédente configuration, comme illustré au travers les figures 8 à 10, le client 81 requiert auprès d'un terminal serveur, un contenu A, tout en transmettant dans sa requête 84i ses caractéristiques Cl, C2 et les valeurs Vl, V2 pour ces caractéristiques Cl, C2.

Le gestionnaire 85 de cache du terminal serveur regarde s'il possède des entrées concernant le contenu A requis. Dans le cas de la figure 8, aucune entrée concernant A ne pouvant être trouvée, le gestionnaire 85 de cache transmet alors la requête 84 2 au générateur de contenu 83 du terminal serveur, pour qu'il génère le contenu A requis au moyen d'un générateur de contenu 86.

Le gestionnaire 86 de contenu génère le contenu A requis après qu'il ait identifié la caractéristique Cl de la requête 84 2 comme étant nécessaire pour la génération. Il renvoie alors le résultat de la génération sous la forme d'une requête 91 au gestionnaire 85 de cache, comme illustré sur la figure 9. Tel que présenté sur la figure 10, le gestionnaire 85 de cache stocke le contenu A 100 avec le critère Cl et récupère la valeur Vl associé à Cl pour ce client 21. Puis il renvoi le contenu de la page dynamique A (101) au client 81 l'ayant requise. Le contenu 100 est alors stocké pendant une durée prédéterminée et paramétrable à l'intérieur du gestionnaire de cache du terminal serveur. Ensuite, comme illustré sur la figure 11, le client 82 requiert à son tour auprès du terminal serveur le même contenu A, comme le terminal client 81 l'avait fait précédemment, mais cette fois, en transmettant dans sa requête HO 1 ses propres caractéristiques Cl et C3, et les valeurs Vl et V3 pouvant être associées à ces dernières.

De nouveau, le gestionnaire 85 de cache regarde s'il a des entrées concernant A compatible avec la requête, c'est-à-dire compatible pour la génération de A, avec au moins certaines caractéristiques essentielles Cl et/ou C3 du terminal client 82 et au moins certaines valeurs possibles pour ces caractéristiques, respectivement.

Dans le présent cas de la figure 11. Le gestionnaire 85 de cache ne trouve pas d'entrée compatible avec la requête HO 1 du terminal client 82 et transmet donc au générateur 83 de contenu du terminal serveur, une requête 110 2 pour que ce dernière génère la page dynamique de contenu A requis par le terminal client 82.

Le gestionnaire 86 de contenu génère le contenu A pour le faire il a eu besoin du critère Cl qu'il a déterminé comme le seul critère à prendre en compte pour la génération du contenu et il retourne au gestionnaire 85 de cache un contenu 121, au moyen d'une requête 120, tel qu'illustrée sur la figure 12. Le gestionnaire 85 de cache stocke alors pendant une durée prédéterminée et également paramétrable, le nouveau contenu A 121 généré avec le critère Cl et récupère la valeur V2 associé à Cl pour ce terminal client 82, avant de renvoyer le contenu A 122 requis au terminal client 82.

6.3 Description du principe général du mécanisme de gestion du cache d'un terminal serveur, selon l'invention, lorsqu'une combinaison de caractéristiques pour la génération de contenu est nécessaire

Comme illustré sur les figures 13 à 17, on traite maintenant le cas de deux terminaux clients différents, sans caractéristique compatible et ne pouvant donc pas partager le même contenu caché, dans le cache du terminal serveur. De plus, dans la présente configuration, le générateur 134 de contenu va devoir prendre en compte et utiliser des combinaisons différentes de critères pour générer le contenu requis par les terminaux client 130 et 132, respectivement.

Plus précisément, dans cette nouvelle configuration pouvant être prise en compte de façon avantageuse par le procédé selon l'invention, le terminal client 130 possède les caractéristiques Cl, C2, et les valeurs Vl, V2 pour ces

caractéristiques, le terminal client 131 possédant pour sa part des caractéristiques Cl, C2, et des valeurs possibles V3, V2 pour ces caractéristiques.

Comme illustré au travers la figure 13, le terminal client 130 émet une requête 135i à destination du gestionnaire 132 de cache du terminal serveur, pour obtenir un contenu B adapté à ces caractéristiques Cl et/ou C2, de valeurs possibles Vl et/ou V2, respectivement. Le gestionnaire 132 de cache regarde alors s'il possède des entrées concernant le contenu B et comme il n'en possède aucune dans l'exemple de la figure 13, il transmet la requête 135 2 au générateur 133 de contenu, lequel 134 génère le contenu B requis, après avoir déterminé que le critère Cl du terminal client 130 devait être impérativement pris en compte pour la génération du contenu B qu'il transmet alors au gestionnaire 132 de cache, au moyen d'une requête 140, comme illustré sur la figure 14.

Le gestionnaire 132 de cache stocke ensuite le contenu B 150 avec le critère Cl et récupère la valeur Vl associé à Cl pour ce terminal client 130, avant de renvoyer le contenu généré 151 audit terminal l'ayant requis, comme présenté sur la figure 15.

Lorsque de façon ultérieure, un terminal client 132 requiert le même contenu B au gestionnaire 132 de cache, au moyen d'une requête 16O 1 , le gestionnaire 132 regarde de nouveau s'il a possède des entrées concernant B qui soient compatibles avec le contenu de la requête 16O 1 . Dans le cas de la figure 16, il n'en trouve pas, le gestionnaire 132 ayant déterminé que pour le terminal client 131, il était nécessaire de considérer les eux caractéristiques Cl et C2 et leurs valeurs possibles V3 et V2 respectivement, pour adapter le contenu requis au terminal client 131. En conséquence, et comme illustré sur la figure 16, le gestionnaire 132 renvoie la requête 16O 2 vers le générateur 133 de contenu, lequel retourne le nouveau contenu B généré au gestionnaire 132 de cache au moyen d'une requête 170, après prise en compte des caractéristiques Cl et C2 pour la génération du contenu B à retourner au terminal client 131.

Le gestionnaire 132 de cache stocke alors le contenu B 171 avec les critères Cl, C2 et récupère la valeur V3,V2 associé à Cl, C2 pour ce terminal

client. 131, avant de lui retourner le contenu B sous la forme d'une requête 172 embarquant le contenu B généré pour ce terminal client.

La figure 1 résume de façon synthétique l'ensemble de ces différentes possibilités précitées d'optimisation du cache d'un terminal serveur, lorsque des terminaux clients requièrent des contenus dynamiques, par exemple multimédia, devant être adaptés à leurs propres caractéristiques techniques, sans toutefois nécessiter une génération systématique du contenu, lorsque celui-ci est déjà présent dans le cache et répond parfaitement à différentes requêtes, mêmes si ces dernières proviennent de terminaux clients différents, mais possédants des caractéristiques communes essentielles à la génération d'un contenu requis.