Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CONTENT REFRESHING METHOD AND RELATED CACHE, TERMINAL, SERVERS AND COMPUTER SOFTWARE
Document Type and Number:
WIPO Patent Application WO/2008/047053
Kind Code:
A1
Abstract:
The invention relates to a content refreshing method in a system comprising a network cache (5), a content server (7), terminals (1, 2) associated with local caches (3, 4), contents associated with expiry dates indicated by the server being stored in the first and second caches, said method comprising: defining a time frame having a predetermined size different from zero containing the expiry date associated with the content; compelling the local caches to request, at different moments respectively determined in the window, the refreshment of the content at each network cache; compelling the network cache to request from the server the refreshment of the content at the latest when the first cache receives the first refreshment request.

Inventors:
LEVESQUE THIERRY (FR)
ROY DAVID (FR)
Application Number:
PCT/FR2007/052191
Publication Date:
April 24, 2008
Filing Date:
October 17, 2007
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
FRANCE TELECOM (FR)
LEVESQUE THIERRY (FR)
ROY DAVID (FR)
International Classes:
H04L29/06; G06F17/30
Foreign References:
US20040068579A12004-04-08
US20020007404A12002-01-17
US6157930A2000-12-05
US20060136669A12006-06-22
US20040068579A12004-04-08
Other References:
DINGLE A ET AL: "Web cache coherence", COMPUTER NETWORKS AND ISDN SYSTEMS, NORTH HOLLAND PUBLISHING. AMSTERDAM, NL, vol. 28, no. 11, May 1996 (1996-05-01), pages 907 - 920, XP004018195, ISSN: 0169-7552
Attorney, Agent or Firm:
DEMAURE, Pierre-Yves (38-40 Rue du Général Leclerc, Issy Moulineaux Cedex 9, FR)
Download PDF:
Claims:

REVENDICATIONS

1. Procédé pour le rafraîchissement de contenus dans un système (R) comportant un premier cache (5) associé à un serveur (7) de contenus et relié à au moins un second cache (3, 4) associé à un terminal (1 ,2), comprenant les étapes suivantes :

- stocker, par le premier cache associé au serveur et par le second cache associé au terminal, un contenu (CONT), une date d'expiration associée audit contenu et indiquée par le serveur lors de la transmission du contenu, et une fenêtre temporelle débutant à Exp - δa et expirant à Exp + δb, avec Exp étant la date d'expiration associée au contenu, δa et δb étant des valeurs déterminées, et au moins une valeur parmi δa et δb étant non nulle ;

- déterminer par le second cache associé au terminal, dans ladite fenêtre temporelle, un instant donné (t1) ; et - émettre par le second cache associé au terminal, audit instant déterminé, une requête de rafraîchissement du contenu ;

- émettre par le premier cache associé au serveur une requête de rafraîchissement du contenu à un instant déterminé, la borne supérieure de cet instant déterminé étant l'instant de réception par le premier cache de la première requête de rafraîchissement en provenance d'un second cache.

2. Procédé selon la revendication 1 , selon lequel le système comprend une pluralité de seconds caches associés à des terminaux, et selon lequel on contraint certains au moins des seconds caches associés audits terminaux à requérir, à des instants distincts respectivement déterminés (t1 , t2) dans ladite fenêtre temporelle, le rafraîchissement dudit contenu auprès du premier cache.

3. Procédé selon la revendication 1 ou la revendication 2, selon lequel au moins l'une des valeurs δa et δb est délivrée par le serveur (7).

4. Procédé selon l'une des revendications précédentes, selon lequel δa est strictement supérieur à 0.

5. Procédé selon la revendication 4, selon lequel la requête de rafraîchissement dudit contenu est émise par le premier cache (5) auprès du serveur (7) à l'instant Exp - δa.

6. Procédé selon la revendication 4 ou la revendication 5, selon lequel le serveur (7), lorsqu'il reçoit, en provenance du premier cache (5), une requête relative audit contenu (CONT) entre les instants Exp - δa et Exp, affecte au contenu une nouvelle date d'expiration (Exp2) postérieure à la date d'expiration Exp + δb et transmet ledit contenu avec ladite nouvelle date d'expiration ainsi affectée.

7. Procédé selon l'une des revendications précédentes, selon lequel la requête de rafraîchissement du premier cache est déclenchée par la première réception, dans la fenêtre temporelle, d'une requête d'un second cache.

8. Procédé selon l'une des revendications précédentes, selon lequel l'instant déterminé (t1) dans la fenêtre temporelle (F1 ) auquel un second cache (3) requiert le rafraîchissement d'un contenu est déterminé par un tirage d'aléa propre audit second cache (3) ou au terminal (1) qui lui est associé.

9. Cache (5) associé à un serveur (7) de contenus dont certains au moins sont associés à des dates d'expiration respectives indiquées par le serveur lors de la transmission du contenu, et adapté pour être relié au serveur de contenus et à au moins un terminal, ledit cache comprenant : - des moyens de stockage (6) d'un contenu, de la date d'expiration associée audit contenu, et d'une fenêtre temporelle débutant à Exp - δa et expirant à Exp + δb, avec Exp étant la date d'expiration associée au contenu, δa et δb étant des valeurs déterminées, et δa étant strictement supérieur à 0 ; - des moyens pour requérir auprès du serveur (7) le rafraîchissement du contenu à un instant déterminé, la borne supérieure de cet instant déterminé étant l'instant de réception par le premier cache de la première requête de rafraîchissement en provenance d'un second cache.

10. Terminal (1 ,3), adapté pour être relié à un serveur (7) de contenus dont certains au moins sont associés à des dates d'expiration respectives indiquées par le serveur lors de la transmission du contenu, ledit terminal comprenant : - des moyens de stockage d'un contenu, d'une date d'expiration associée audit contenu, et d'une fenêtre temporelle (F1 ) débutant à Exp - δa et expirant à Exp + δb, avec Exp étant la date d'expiration associée au contenu, δa et δb étant des valeurs déterminées reçues en provenance du serveur, et δa et/ou δb étant non nul ; - des moyens pour déterminer dans ladite fenêtre temporelle, un instant donné (t1 ) ; et

- des moyens pour émettre, audit instant déterminé, une requête de rafraîchissement du contenu auprès du serveur.

11. Serveur de contenus (7), adapté pour être relié à un cache (5) associé au serveur, ledit serveur comprenant :

- des moyens de stockage d'au moins un contenu en association avec une date d'expiration indiquée par le serveur lors de la transmission du contenu et avec une fenêtre temporelle débutant à Exp - δa et expirant à Exp + δb, avec Exp étant la date d'expiration associée au contenu, δa et δb étant des valeurs déterminées, et δa étant strictement supérieur à

0 ;

- des moyens de rafraîchissement adaptés pour, lorsqu'il reçoit une requête en provenance du cache et relative audit contenu entre les instants Exp - δa et Exp, affecter une nouvelle date d'expiration postérieure à la date d'expiration Exp + δb et transmettre ledit contenu avec ladite nouvelle date d'expiration affectée.

12. Programme d'ordinateur à installer dans un cache (5) associé à un serveur (7) de contenus dont certains au moins sont associés à des dates d'expiration respectives indiquées par le serveur lors de la transmission du contenu, et adapté pour être relié au serveur de contenus et à au moins un terminal, ledit programme comprenant des instructions pour mettre en œuvre lors d'une exécution du programme par des moyens de traitement dudit cache, les étapes d'un procédé selon l'une des revendications 1 à 8 et incombant au premier cache, δa étant strictement supérieur à 0.

13. Programme d'ordinateur à installer dans un terminal (1 ,3) adapté pour être relié à un serveur (7) de contenus dont certains au moins sont associés à des dates d'expiration respectives indiquées par le serveur lors de la transmission du contenu, ledit programme comprenant des instructions pour mettre en œuvre lors d'une exécution du programme par des moyens de traitement dudit terminal, les étapes d'un procédé selon l'une des revendications 1 à 8 et incombant au second cache.

14. Programme d'ordinateur à installer dans un serveur (7) de contenus, adapté pour être relié à un cache (5) associé au serveur, ledit programme

comprenant des instructions pour mettre en œuvre lors d'une exécution du programme par des moyens de traitement dudit serveur, les étapes suivantes :

- stocker au moins un contenu (CONT) en association avec une date d'expiration, indiquée par le serveur lors de la transmission du contenu et une fenêtre temporelle (F1 ) débutant à Exp - δa et expirant à Exp + δb, avec Exp étant la date d'expiration associée au contenu, δa et δb étant des valeurs déterminées, et δa étant strictement supérieur à 0 ;

- suite à la réception d'une requête en provenance du cache (5) et relative audit contenu entre les instants Exp - δa et Exp, affecter une nouvelle date d'expiration postérieure à la date d'expiration Exp + δb et transmettre ledit contenu avec ladite nouvelle date d'expiration affectée.

Description:

PROCEDE DE RAFRAICHISSEMENT DE CONTENUS, CACHE, TERMINAL, SERVEURS ET PROGRAMMES D'ORDINATEUR ASSOCIES

La présente invention concerne le domaine des réseaux de télécommunications mettant en œuvre des techniques de rafraîchissement de contenus délivrés chacun en association avec une date d'expiration respective.

La présente invention concerne particulièrement de tels réseaux comprenant au moins un serveur de contenus S, des terminaux T1 , T2, ... Tn associés à des caches locaux respectifs CL1 , CL2, ...CLn et un cache réseau CR interposé entre le serveur S et les caches locaux CL1 , CL2, ... CLn des terminaux T1 , T2, ... Tn.

Dans un tel réseau, par exemple conforme au protocole de communication http (« Hypertext Transfer Protocol ») normalisé par NETF, le serveur S est un serveur gérant des contenus, leur affectant des dates d'expiration respectives et les actualisant régulièrement. A chaque actualisation d'un contenu (ayant lieu généralement à sa date d'expiration), une nouvelle date d'expiration, plus tardive, lui est affectée par le serveur S.

Les contenus peuvent être des données diverses, par exemple des pages html, un fichier, une image, un son, une application logicielle etc.

La date d'expiration associée à un contenu indique le moment à partir duquel les données figurant dans un contenu ne doivent plus être considérées comme fiables par les terminaux exploitant ces contenus.

Les caches sont des dispositifs (par exemple de type serveur proxy) qui comportent une mémoire adaptée pour stocker des contenus et pour les fournir lorsqu'il est à nouveau requis l'accès audit contenu. L'utilisation de caches permet d'accroître les performances du système, en évitant l'envoi de requêtes et/ou de réponse dans de nombreux cas.

Par exemple, soit un terminal T1 effectuant une requête à destination du serveur S pour le contenu C1. Cette requête transite par le cache local CL1 du terminal T1 , qui vérifie que le contenu C1 souhaité ne se trouve pas dans sa mémoire. Si effectivement le contenu C1 est absent de sa mémoire (ou est présent avec un date d'expiration dépassée), la requête est transmise au cache réseau CR, qui vérifie à son tour que le contenu C1 souhaité ne se trouve pas dans sa mémoire M. Si effectivement le contenu C1 est absent de

sa mémoire M (ou est présent avec un date d'expiration dépassée), le cache réseau CR relaie la requête auprès du serveur S. Ce dernier transmet alors le contenu C1 associé à une date d'expiration D1 au cache réseau CR. Le cache réseau CR stocke dans sa mémoire M le contenu C1 associé à sa date d'expiration D1. Puis le cache réseau CR relaie le contenu C1 associé à sa date d'expiration D1 à destination du terminal T1. Le contenu C1 et sa date d'expiration D1 sont stockés dans la mémoire du cache local CL1 du terminal T1.

Si le terminal T2 à son tour effectue une requête à destination du serveur S pour le contenu C1 , cette requête du terminal T2 par le cache local CL2 du terminal T2, qui vérifie que le contenu C1 souhaité ne se trouve pas dans sa mémoire. Si effectivement le contenu C1 est absent de sa mémoire (ou est présent avec un date d'expiration dépassée), la requête est transmise au cache réseau CR, qui vérifie à son tour que le contenu C1 souhaité ne se trouve pas dans sa mémoire M. Si la date de réception de la requête du terminal T2 est inférieure à la date d'expiration D1 associée au contenu C1 et mémorisée dans la mémoire M, le cache réseau CR ne relaie pas la requête auprès du serveur S, mais transmet au terminal T2 une copie du contenu C1 associé à sa date d'expiration D1 tel que stocké dans la mémoire M. Le contenu C1 et sa date d'expiration D1 sont alors stockés dans la mémoire du cache local CL2 du terminal T2.

L'utilisation du cache réseau permet donc de moins solliciter le serveur lorsque plusieurs terminaux effectuent la même requête, et de diminuer la charge du réseau tout en accélérant le traitement des requêtes.

Si l'utilisateur du terminal T2 requiert ultérieurement à nouveau l'accès au contenu C1 , le cache CL2 du terminal T2 vérifie d'abord si le contenu C1 est présent dans sa mémoire et compare la date de cette requête avec la date d'expiration D1 qui lui est associée. Si la date de la requête est inférieure à la date d'expiration D1 , le cache CL2 transmet une copie du contenu C1 tel que mémorisé dans sa mémoire au terminal T2. Sinon, le cache CL2 effectue une demande de rafraîchissement du contenu C1 auprès du cache réseau CR. Lorsque le cache réseau CR reçoit cette requête, si la date d'expiration du contenu C1 alors dans sa mémoire M est antérieure à la requête du terminal

T2, il relaie la requête de rafraîchissement du contenu C1 vers le serveur S, qui transmet alors le contenu C1 mis à jour et associé à une date d'expiration D2 au cache réseau CR. Le cache réseau CR stocke dans sa mémoire M le contenu C1 associé à sa nouvelle date d'expiration D2. Puis le cache réseau CR relaie le contenu C1 associé à sa date d'expiration D2 à destination du terminal T2. Le contenu C1 et sa date d'expiration D2 sont alors stockés dans la mémoire du cache local CL2 du terminal T2. L'utilisation d'un cache local au terminal permet là encore de diminuer la charge du réseau et d'obtenir plus vite la réponse aux requêtes issues du terminal.

Dans certains cas, une demande de rafraîchissement d'un contenu n'est émise par un terminal que lorsque l'utilisateur du terminal requiert l'accès au contenu. Les requêtes de rafraîchissement pour un même contenu en provenance des utilisateurs sont alors généralement naturellement réparties dans le temps.

Cependant un nombre croissant d'applications exécutables dans les caches effectuent de façon systématique des demandes de rafraîchissement relatives à un contenu stocké dans la mémoire du cache, et ce à la date d'expiration associée au contenu. Le cache réseau est alors confronté à une multitude de requêtes similaires reçues au même moment, qui peuvent l'amener à solliciter plusieurs fois le serveur au sujet du même contenu. Il est ainsi rencontré des surcharges réseau et serveur à ces dates d'expiration associées aux contenus.

Il existe donc un besoin pour diminuer la charge du réseau, des caches et serveurs au moment des dates d'expiration associées à des contenus, due notamment aux requêtes systématiques de rafraîchissement desdits contenus.

Le document US 2006/0136669 décrit un procédé pour calculer la périodicité minimale P de rafraîchissement (dit « time-box ») d'un cache suivant des critères internes au cache, par exemple le dimensionnement du cache, le nombre de contenus à rafraîchir dans le cache et le temps nécessaire pour chaque rafraîchissement, ainsi qu'une méthode pour qu'un cache apprenne dynamiquement la périodicité minimale de rafraîchissement.

Ce document ne permet pas de répondre au problème indiqué ci- dessus puisqu'il ne prend pas en considération de date d'expiration propre à

chaque contenu soit indiquée par le serveur lors de la transmission du contenu. En effet, ce document part simplement du principe que l'ensemble des contenus présents dans le cache doit être renouvelé à chaque période P.

La présente invention propose, suivant un premier aspect, un procédé pour le rafraîchissement de contenus, dans un système comportant un premier cache associé à un serveur de contenus et relié à au moins un second cache associé à un terminal, comprenant les étapes suivantes :

- stocker, par le premier cache associé au serveur et par le second cache associé au terminal, un contenu, une date d'expiration associée audit contenu et indiquée par le serveur lors de la transmission du contenu, et une fenêtre temporelle débutant à Exp - δa et expirant à Exp + δb, avec Exp étant la date d'expiration associée au contenu, δa et δb étant des valeurs déterminées, et au moins une valeur parmi δa et δb étant non nulle ;

- déterminer par le second cache associé au terminal, dans ladite fenêtre temporelle, un instant donné ; et

- émettre par le second cache associé au terminal, audit instant déterminé, une requête de rafraîchissement du contenu ;

- émettre par le premier cache associé au serveur une requête de rafraîchissement du contenu à un instant déterminé, la borne supérieure de cet instant déterminé étant l'instant de réception par le premier cache de la première requête de rafraîchissement en provenance d'un second cache.

Un tel procédé permet d'étaler les requêtes de rafraîchissement en provenance des terminaux sur une fenêtre temporelle déterminée et ainsi de limiter les surcharges réseau et serveur au moment de la date d'expiration, tout en assurant la fourniture du contenu réactualisé aux terminaux.

La notion de date d'expiration, telle que fournie par le serveur et correspondant au fonctionnement actuel, est conservée sur la période [Exp - δa, Exp] au cours de laquelle le terminal conserve la contrainte qu'un contenu ne peut être utilisé au-delà de la date Exp. La mise en œuvre de l'invention dans un réseau permet que le réseau puisse être utilisé par des terminaux déjà déployés qui n'intègrent pas l'invention : la période [Exp- δa, Exp- δb] peut être ignorée des caches des terminaux qui n'implémentent pas l'invention : ils considéreront qu'ils doivent rafraîchir leurs données à Exp.

Dans un mode de réalisation, le système comprend une pluralité de seconds caches associés à des terminaux, et on contraint certains au moins des seconds caches associés audits terminaux à requérir, à des instants distincts respectivement déterminés dans ladite fenêtre temporelle, le rafraîchissement dudit contenu auprès du premier cache. Les instants auxquels les terminaux requièrent le rafraîchissement sont donc pilotés de manière à être étalés dans la fenêtre temporelle en vue d'éviter des pics de charge du réseau et du cache réseau.

Dans un mode de réalisation, au moins l'une des valeurs δa et δb est délivrée par le serveur. Cette disposition a pour effet de permettre de piloter le rafraîchissement en fonction de contraintes liées au réseau et inconnues des terminaux et d'adapter la taille de la fenêtre temporelle pour étaler plus ou moins les requêtes de rafraîchissement en fonction de ces contraintes.

Optionnellement, δa est strictement supérieur à 0. Dans un tel cas, la plupart des modifications nécessaires à la mise en œuvre de l'invention sont à implémenter côté réseau.

Dans un mode de réalisation, la requête de rafraîchissement dudit contenu est émise par le premier cache auprès du serveur à l'instant Exp - δa. Cette disposition permet d'accroître la rapidité de traitement des requêtes de rafraîchissement.

Dans un mode de réalisation, le serveur, lorsqu'il reçoit, en provenance du premier cache, une requête relative audit contenu entre les instants Exp - δa et Exp, affecte au contenu une nouvelle date d'expiration postérieure à la date d'expiration Exp + δb et transmet le contenu avec la nouvelle date d'expiration ainsi affectée. Cette disposition consistant à anticiper la mise à jour permet que le premier cache fournisse un contenu mis à jour dès la date d'expiration du contenu.

Dans un mode de réalisation, la requête de rafraîchissement du premier cache est déclenchée par la première réception, dans la fenêtre temporelle, d'une requête d'un second cache. Cette disposition permet de ne procéder au rafraîchissement du contenu par le premier cache que s'il existe une demande de rafraîchissement correspondante en provenance d'un terminal, et évite donc des rafraîchissements inutiles.

Dans un mode de réalisation, l'instant dans la fenêtre temporelle auquel un second cache requiert le rafraîchissement d'un contenu est déterminé par un tirage d'aléa propre audit second cache ou au terminal qui lui est associé. Cette disposition permet de lisser le nombre de requêtes de rafraîchissement des terminaux sur la longueur de la fenêtre temporelle de rafraîchissement.

Suivant un second aspect, l'invention propose un cache associé à un serveur de contenus dont certains au moins sont associés à des dates d'expiration respectives indiquées par le serveur lors de la transmission du contenu, et adapté pour être relié au serveur de contenus et à au moins un terminal, ledit cache comprenant :

- des moyens de stockage d'un contenu, de la date d'expiration associée audit contenu, et d'une fenêtre temporelle débutant à Exp - δa et expirant à Exp + δb, avec Exp étant la date d'expiration associée au contenu, δa et δb étant des valeurs déterminées, et δa étant strictement supérieur à 0 ;

- des moyens pour requérir auprès du serveur le rafraîchissement du contenu à l'instant Exp - δa, ou au plus tard lorsque le cache reçoit, en provenance d'un terminal, une première requête de rafraîchissement relative au contenu, dans la partie de la fenêtre temporelle antérieure à la date d'expiration associée au contenu.

Suivant un troisième aspect, l'invention propose un terminal, adapté pour être relié à un serveur de contenus dont certains au moins sont associés à des dates d'expiration respectives indiquées par le serveur lors de la transmission du contenu, ledit terminal comprenant :

- des moyens de stockage d'un contenu, d'une date d'expiration associée audit contenu, et d'une fenêtre temporelle débutant à Exp - δa et expirant à Exp + δb, avec Exp étant la date d'expiration associée au contenu, δa et δb étant des valeurs déterminées reçues en provenance du serveur, et δa et/ou δb étant non nul ;

- des moyens pour déterminer dans ladite fenêtre temporelle, un instant donné ; et

- des moyens pour émettre, audit instant déterminé, une requête de rafraîchissement du contenu auprès du serveur.

Suivant un quatrième aspect, l'invention propose un serveur de contenus, adapté pour être relié à un cache associé au serveur, ledit serveur comprenant :

- des moyens de stockage d'au moins un contenu en association avec une date d'expiration indiquée par le serveur lors de la transmission du contenu et avec une fenêtre temporelle débutant à Exp - δa et expirant à Exp + δb, avec Exp étant la date d'expiration associé au contenu, δa et δb étant des valeurs déterminées, et δa étant strictement supérieur à 0 ;

- des moyens de rafraîchissement adaptés pour, lorsqu'il reçoit une requête en provenance du cache et relative audit contenu entre les instants Exp - δa et Exp, affecter une nouvelle date d'expiration postérieure à la date d'expiration Exp + δb et transmettre ledit contenu avec ladite nouvelle date d'expiration affectée.

Suivant un cinquième aspect, l'invention propose un programme d'ordinateur à installer dans un cache associé à un serveur de contenus dont certains au moins sont associés à des dates d'expiration respectives indiquées par le serveur lors de la transmission du contenu, et adapté pour être relié au serveur de contenus et à au moins un terminal, ledit programme comprenant des instructions pour mettre en œuvre lors d'une exécution du programme par des moyens de traitement dudit cache, les étapes d'un procédé suivant le premier aspect de l'invention et qui incombent au premier cache associé au serveur.

Suivant un sixième aspect, l'invention propose un programme d'ordinateur à installer dans un terminal adapté pour être relié à un serveur de contenus dont certains au moins sont associés à des dates d'expiration respectives indiquées par le serveur lors de la transmission du contenu, ledit programme comprenant des instructions pour mettre en œuvre lors d'une exécution du programme par des moyens de traitement dudit terminal, les étapes d'un procédé suivant le premier aspect de l'invention et qui incombent au second cache associé à un terminal.

Suivant un septième aspect, l'invention propose un programme d'ordinateur à installer dans un serveur de contenus, adapté pour être relié à un cache du serveur, ledit programme comprenant des instructions pour mettre

en œuvre lors d'une exécution du programme par des moyens de traitement dudit serveur, les étapes suivantes :

- stocker au moins un contenu en association avec une date d'expiration, indiquée par le serveur lors de la transmission du contenu, et une fenêtre temporelle débutant à Exp - δa et expirant à Exp + δb, avec Exp étant la date d'expiration associé au contenu, δa et δb étant des valeurs déterminées, et δa étant strictement supérieur à 0 ;

- suite à la réception d'une requête en provenance du cache et relative audit contenu entre les instants Exp - δa et Exp, affecter une nouvelle date d'expiration postérieure à la date d'expiration Exp+ δb et transmettre ledit contenu avec ladite nouvelle date d'expiration affectée.

D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels : la figure 1 est un réseau dans un mode de réalisation de l'invention ; la figure 2 est un chronogramme illustrant l'enchaînement des étapes d'un procédé de rafraîchissement dans un mode de réalisation de l'invention ;

- la figure 3 indique la version d'un contenu reçu par un terminal en fonction de la date de la requête de rafraîchissement du terminal dans le cas où δa >0 et δb=0.

La figure 1 représente un réseau R interconnectant un serveur 7, un cache réseau 5 et une pluralité de terminaux associés à des caches locaux (parmi lesquels deux terminaux 1 , 2 respectivement associés aux caches locaux 3, 4 sont représentés). Le cache réseau 5 comporte une mémoire 6 et est interposé entre les terminaux 1 , 2 et le serveur 7.

Les caches des terminaux 1 , 2 ou les terminaux sont adaptés pour systématiquement requérir le rafraîchissement des contenus présents dans les mémoires des caches locaux 3, 4. Les caches 3, 4 des terminaux 1 , 2 comportent en outre un moteur d'aléas 9, 10 respectif.

Dans le mode de réalisation décrit, le réseau R est le réseau internet et les communications entre les entités du réseau sont conformes au protocole http.

Le serveur 7 est un serveur de contenus, par exemple un serveur de pages Web. Il est adapté pour réactualiser régulièrement chaque contenu, lui affecter, lors de cette réactualisation, une date d'expiration Exp et deux valeurs numériques δa et δb, positives ou nulles, également mises à jour. Ces valeurs δa et δb définissent une fenêtre temporelle [Exp - δa ; Exp + δb], contenant la date d'expiration du contenu.

Considérons que dans une étape préalable, les utilisateurs des terminaux T1 et T2 aient tous deux requis pour la première fois le contenu CONT. Chacun des terminaux 1 , 2 transmet la requête à son cache local respectif 3, 4 qui la fait suivre au cache réseau 5.

Le cache réseau 5 lorsqu'il reçoit la première de ces deux requêtes, par exemple la requête du terminal 1 , détermine qu'il ne dispose pas du contenu CONT dans sa mémoire 6. Il relaye donc la requête au serveur 7 qui lui transmet en réponse un message comportant la version courante du contenu CONT et trois en-têtes « Date_Expiration », « Marge_avant » et « Marge_arrière » renseignés de la manière suivante : l'en-tête « Date_Expiration » indique une date d'expiration du contenu CONT de valeur Exp1 , l'en-tête « Marge_avant » comporte la valeur δa et l'en-tête « Marge_arrière » comporte la valeur δb.

Lorsque le cache réseau 5 reçoit ce message, il mémorise dans sa mémoire 6 la version courante du contenu CONT et les valeurs Exp1 , δa et δb fournies pour les trois en-têtes « Date_Expiration », « Marge_avant » et « Marge_arrière ». Puis il relaye le message au cache local 3 du terminal 1 , qui à son tour mémorise dans sa mémoire la version courante du contenu CONT et les valeurs Exp1 , δa et δb.

Puis, lorsque le cache réseau 5 reçoit la seconde des deux requêtes, envoyée par le terminal T2 avant (Exp1 - δa), il détermine qu'il dispose du contenu CONT à jour dans sa mémoire 6. Il copie donc la version courante du contenu CONT et les valeurs Exp1 , δa et δb stockées dans sa mémoire 6, puis

envoie cette copie au cache local 4 du terminal 2, qui à son tour mémorise la version courante du contenu CONT et les valeurs Exp1 , δa et δb.

Le serveur 7 est adapté pour que l'actualisation du contenu CONT ait lieu au plus tard à la date (Exp1 - δa), de même que la mise à jour de la date d'expiration associée au contenu CONT qui devient alors Exp2 avec Exp2 > Exp1 + δb.

En référence à la figure 2, le cache réseau 5 lui est adapté pour automatiquement requérir le rafraîchissement du contenu CONT auprès du serveur 7 à la date (Exp1 - δa).

En réponse à cette requête, le serveur 7 transmet au cache réseau 5 un message comportant la version actualisée du contenu CONT et trois entêtes « Date_Expiration », « Marge_Avant » et « Marge_Arrière » renseignés de la manière suivante : l'en-tête « Date_Expiration » indique la date d'expiration de valeur Exp2, l'en-tête « Marge_Avant » comporte la valeur δa et l'en-tête « Marge_Arrière » comporte la valeur δb.

Lorsque le cache réseau 5 reçoit ce message, il mémorise dans sa mémoire 6 la le contenu CONT et les valeurs Exp2, δa et δb indiquées par ce message, à la place des anciennes données relatives au contenu CONT préalablement enregistrées dans la mémoire 6.

Par ailleurs, chaque cache 3, 4 de terminal 1 , 2 est adapté pour déterminer, à l'aide de son moteur d'aléas 9, 10, de façon aléatoire un instant dans une fenêtre temporelle F1 associée au contenu CONT stocké dans la mémoire du cache 3, 4. Cette fenêtre temporelle F1 est ainsi définie : elle débute à la valeur correspondant à l'en-tête « Date_Expiration » (ici Exp1 ) alors stockée en mémoire du cache local pour le contenu CONT à laquelle on retranche la valeur alors stockée en mémoire du cache local pour l'en-tête « Marge_Avant » (ici δa). La fenêtre temporelle F1 expire à la valeur correspondant à l'en-tête « Date-Expiration » (ici Exp1) alors stockée en mémoire du cache local pour le contenu CONT, à laquelle on ajoute la valeur alors stockée en mémoire du cache local pour l'en-tête « Marge_arrière » (ici δb).

En référence à la figure 2, l'instant t1 est l'instant que le cache local 3 du terminal 1 a ainsi déterminé, et l'instant t2 est l'instant que le cache local 4 du terminal 2 a ainsi déterminé.

Le cache 3 du terminal T1 est adapté, pour à l'instant t1 ainsi déterminé dans la fenêtre temporelle F1 , émettre une requête de rafraîchissement relative au contenu CONT alors stocké dans sa mémoire. Cette requête est reçue par le cache réseau 5, qui dispose en mémoire 6 de la version du contenu CONT, dont la date d'expiration Exp2 est supérieure à la date de réception de la requête de rafraîchissement en provenance du cache 3 (Exp2 > Exp1 + δb).

Par conséquent, le cache réseau 5 copie donc la version courante du contenu CONT et des valeurs Exp2, δa et δb stockés dans sa mémoire 6, puis les envoie au cache local 3 du terminal 1 , qui à son tour mémorise la version courante du contenu CONT et les valeurs associées Exp2, δa et δb pour les en-têtes respectifs « Date_Expiration », « Marge_Avant » et « Marge_Arrière », à la place de la version précédente du contenu CONT et des valeurs associées stockées jusqu'alors dans la mémoire du cache local 3.

De la même façon, le cache 4 du terminal T2 est adapté pour à l'instant t2 déterminé dans la fenêtre temporelle F1 de la façon décrite plus haut, émettre automatiquement une requête de rafraîchissement relative au contenu CONT alors stocké dans sa mémoire. Cette requête est reçue par le cache réseau 5, qui dispose en mémoire 6 d'une version du contenu CONT dont la date d'expiration Exp2 est supérieure à la date de réception de la requête de rafraîchissement en provenance du cache 3 (Exp2 > Exp1 + δb).

Par conséquent, le cache réseau 5 copie la version du contenu CONT et des valeurs Exp2, δa et δb stockées dans sa mémoire 6, puis envoie ces copies au cache local 4 du terminal 2, qui à son tour mémorise cette version rafraîchie du contenu CONT et les valeurs rafraîchies associées Exp2, δa et δb pour les en-têtes respectifs « Date_Expiration », « Marge_Avant » et « Marge_Arrière », à la place de la version précédente du contenu CONT et des valeurs associées stockées jusqu'alors dans la mémoire du cache local 4.

En suite, le serveur 7 est adapté pour que l'actualisation du contenu CONT ait lieu au plus tard à la date (Exp2 - δa), de même que la mise à jour

de la date d'expiration associée au contenu CONT qui devient alors Exp3 avec Exp3 > Exp2.

Puis comme précédemment, le cache réseau 5 émet à l'instant Exp2 - δa une requête de rafraîchissement du contenu CONT auprès du serveur 7, qui transmet en réponse un message comprenant une version actualisée du contenu CONT, et des valeurs Exp3, δa δb également mises à jour pour les en-têtes « Date_Expiration », « Marge_Avant » et « Marge_Arrière ».

Et les caches 3, 4 des terminaux 1 , 2 définissent un nouvel instant respectivement t3, t4, au sein d'une fenêtre temporelle F2 = [Exp2 - δa ; Exp2 + δb], auquel émettre leur requête de rafraîchissement du contenu CONT.

Un tel réseau présente ainsi l'avantage d'étaler dans une fenêtre temporelle les demandes de rafraîchissement en provenance des caches locaux des terminaux, tout en garantissant que le cache réseau ait bien une version rafraîchie du contenu à transmettre dès la première requête de rafraîchissement en provenance d'un cache de terminal.

Les valeurs δa et δb sont par exemple définies en fonction de paramètres tels que l'estimation, pour la date d'expiration associée, de la charge du serveur 7, de la charge du réseau, du nombre de terminaux ayant requis le contenu CONT et/ou des performances du réseau. Elles sont par exemple calculées par le serveur 7.

Dans l'exemple ci-dessus, on a considéré que les valeurs des champs « Marge_avant » et « Marge_arrière » étaient constantes et égales respectivement à δa et δb. Bien sûr, ces valeurs peuvent être réactualisées elles-aussi, comme le contenu CONT, par le serveur, lors de l'opération de réactualisation. Et les valeurs réactualisées sont alors mémorisées dans les mémoires du cache réseau 5 et des caches locaux 3, 4 des terminaux 1 , 2. Ces valeurs réactualisées sont alors prises en compte pour définir la future fenêtre de rafraîchissement des terminaux, la future date de rafraîchissement du cache réseau ainsi que la future date de renouvellement du contenu CONT et des en-têtes associés par le serveur 7.

Dans l'exemple décrit ci-dessus, le cache réseau 5 est adapté pour émettre une requête de rafraîchissement à destination du serveur un délai δa avant l'instant correspondant à la date d'expiration courante. Dans un autre

mode de réalisation, il est adapté pour émettre cette requête de rafraîchissement dès la première requête reçue en provenance d'un cache de terminal dans la plage [date d'expiration - δa ; date d'expiration], et en tout état de cause au plus tard à la date d'expiration associée au contenu alors mémorisé dans sa mémoire 6.

Différents types de fenêtre temporelle peuvent être utilisés selon l'invention, en fonction des valeurs retenues pour δa et δb. Par exemple, certaines fenêtres temporelles peuvent débuter à la date d'expiration (δa est alors égale à 0).

Dans un autre mode de réalisation, la fenêtre temporelle peut débuter avant la date d'expiration. On a alors δa >0. L'avantage de cette disposition est que les principaux changements à apporter par rapport au fonctionnement de l'art antérieur sont au niveau du cache réseau et du serveur et non des terminaux, ce qui facilite la mise en œuvre de l'invention. Lorsque δa >0 et δb=0, les terminaux continuent à appliquer la règle de l'art antérieur selon laquelle un document ne doit plus être utilisé au-delà de sa date d'expiration Exp. Ils doivent en outre appliquer la nouvelle règle correspondant à la possibilité d'envoyer une requête de rafraîchissement à partir de la date Exp- δa et jusqu'à Exp.

Un tel cas particulier est représenté en figure 3. On a alors δ= δa >0 et δb=0.

Les fenêtres temporelles successives de rafraîchissement des terminaux sont référencées φ1 , φ2, φ3 etc.

Dans le mode de réalisation à présent considéré en référence à la figure 3, le contenu CONT est un programme quotidien de télévision. Nous allons considérer ci-dessous 3 étapes successives de rafraîchissement.

La première version du contenu CONT telle que gérée par le serveur 7 est le contenu référencé CONT1 sur la figure 3. Elle indique la programmation pour le jour courant de 7h50 à 9h00. Elle est associée à la date d'expiration Exp1 égale à 9h00 et à δ égal à 10 minutes.

Le contenu CONT est actualisé par le serveur 7 au plus tard à la date Exp1- δ, soit à 8h50. La seconde version du contenu CONT est le contenu référencé CONT2 sur la figure 3. Elle indique la programmation de 8h50 à

1OhOO. Elle est associée à la date d'expiration Exp2 égale à 1OhOO et à δ égal à 10 minutes.

Le contenu CONT est actualisé par le serveur 7 au plus tard à la date Exp2- δ, soit 9h50. La seconde version du contenu CONT est le contenu référencé CONT3 sur la figure 3. Elle indique la programmation de 9h50 à 11 h00. Elle est associée à la date d'expiration Exp3 égale à 1OhOO et à δ égal à 10 minutes.

Dans l'exemple considéré en référence à la figure 3, le cache réseau 5 est adapté pour effectuer automatiquement, 10 minutes (qui est la valeur de δ) avant chaque date d'expiration Exp1 , Exp2, Exp3 associée aux versions du contenu CONT successivement en mémoire 6, une demande de rafraîchissement auprès du serveur 7 relative au contenu CONT.

Chaque terminal mettant en œuvre l'invention et associé à un cache local ayant en mémoire le programme CONT sous la forme CONT1 , associé à la date d'expiration de valeur Exp1 (9h00) et à un champ Marge_Avant de valeur δ=10 min est de façon similaire à celle décrite en référence à la figure 2 ci-dessus, adapté pour émettre à un instant déterminé de façon aléatoire au sein des fenêtres temporelles φ1 , φ2, φ3, une requête de rafraîchissement du contenu CONT auprès du cache réseau 5.

Ainsi chaque terminal effectuant, via son cache local, une telle requête pendant la fenêtre temporelle φ1 = [8h50 ; 9h00] se verra retourner par le cache réseau 5 une copie du contenu CONT réactualisé correspondant à la version CONT2 associée à la date d'expiration de valeur Exp2 (1OhOO) et à un champ Marge_Avant de valeur δ=10 min.

Le programme CONT sous sa forme réactualisée CONT2 sera également fourni à tout terminal ne disposant pas du contenu CONT dans son cache local et requérant l'accès au contenu CONT pendant la période [Exp1 - δ ; Exp2 - δ ]=[8h50 ; 9h50] et à chaque terminal n'implémentant pas l'invention, disposant du contenu CONT dans son cache local et effectuant de façon standard une demande de rafraîchissement relative au contenu CONT à la date d'expiration Exp1 =9h00.

De même le programme CONT sous sa forme réactualisée CONT3 sera fourni à tous les terminaux implémentant l'invention pendant la fenêtre

temporelle φ2 = [9h50 ; 1OhOO] suite à une demande de rafraîchissement du contenu CONT. Ce même contenu CONT3 sera par ailleurs fourni à chaque terminal ne disposant pas du contenu CONT dans son cache local et requérant l'accès au contenu CONT pendant la période [Exp2- δ ; Exp3 - δ ]=[9h50 ; 10h50] et à chaque terminal n'implémentant pas l'invention, disposant du contenu CONT dans son cache local et effectuant une demande de rafraîchissement relative au contenu CONT à la date d'expiration Exp2=10h00.

L'invention a été décrite ci-dessus en référence aux figures dans un environnement http. Dans un tel cas, l'information de date d'expiration d'un contenu est fournie par la valeur du champ dit « expires » ou celle du champ « MaxAge » (qui indique une durée et doit être associée à la date courante pour obtenir la date d'expiration).Toutefois, l'invention est applicable à tout environnement réseau gérant des mécanismes de rafraîchissement de cache, par exemple à un environnement mettant en œuvre le protocole de transfert de fichiers ftp (« File Transfert Protocol »), et où l'information de gestion de cache serait fournie avec les données transférées.

Dans un mode de réalisation, certaines au moins des étapes d'un procédé selon l'invention sont mises en œuvre suite à l'exécution par des moyens de traitement d'un terminal, d'un cache local du terminal, du cache réseau et/ou du serveur, d'instructions comprises dans un ou plusieurs programmes d'ordinateur.

La présente invention présente ainsi un mécanisme de rafraîchissement visant à réduire les surcharges réseau et serveur, lorsque les terminaux ou leurs caches locaux sont adaptés pour effectuer des requêtes de rafraîchissement automatiques en fonction de dates d'expiration des contenus spécifiées par le serveur. En effet, la présente invention permet d'étaler sur une fenêtre temporelle, dont la taille est imposée aux terminaux, leurs requêtes de rafraîchissement, et d'assurer que le cache réseau et le serveur soient aptes à fournir un contenu réactualisé en réponse à ces requêtes de rafraîchissement.

Selon l'invention, c'est une entité réseau (via le serveur) qui signale aux terminaux la période de rafraîchissement de leur cache local, tout en maintenant la notion de date d'expiration du contenu.

La mise en œuvre de l'invention dans un réseau est compatible avec la poursuite de l'utilisation du réseau par un parc de terminaux n'implémentant pas eux l'invention. Si un mécanisme d'expiration est déjà connu de ces terminaux, un mode de mise de l'invention peut signaliser des valeurs δa et δb, qui sont ignorées des terminaux qui n'implémentent pas l'invention.

Ces dispositions permet, via les valeurs δa et δb, de piloter les requêtes de rafraîchissement des terminaux en fonction du nombre de terminaux, de la charge acceptable côté serveur et réseau, que les terminaux ignorent.