FR2871595A1 - Procede et dispositif de traitement de requetes generees par un logiciel de navigation - Google Patents

Procede et dispositif de traitement de requetes generees par un logiciel de navigation Download PDF

Info

Publication number
FR2871595A1
FR2871595A1 FR0406437A FR0406437A FR2871595A1 FR 2871595 A1 FR2871595 A1 FR 2871595A1 FR 0406437 A FR0406437 A FR 0406437A FR 0406437 A FR0406437 A FR 0406437A FR 2871595 A1 FR2871595 A1 FR 2871595A1
Authority
FR
France
Prior art keywords
information
request
server
navigation software
main
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0406437A
Other languages
English (en)
Other versions
FR2871595B1 (fr
Inventor
Vania Joloboff
Ravindra Nath Mulukutla
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Groupe Silicomp SA
Original Assignee
Groupe Silicomp SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Groupe Silicomp SA filed Critical Groupe Silicomp SA
Priority to FR0406437A priority Critical patent/FR2871595B1/fr
Priority to PCT/FR2005/001449 priority patent/WO2006003318A1/fr
Priority to US11/570,660 priority patent/US20070271318A1/en
Priority to EP05777323A priority patent/EP1761876A1/fr
Publication of FR2871595A1 publication Critical patent/FR2871595A1/fr
Application granted granted Critical
Publication of FR2871595B1 publication Critical patent/FR2871595B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

L'invention concerne un procédé et un dispositif de traitement de requêtes générées par un logiciel de navigation pour obtenir, d'un serveur d'informations, un ensemble d'informations principal et des ensembles d'informations secondaires associés, au logiciel de navigation est associée une mémoire mémorisant les ensembles d'informations reçus. Selon l'invention un mandataire reçoit une requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations principal, détermine si l'ensemble d'informations principal a été précédemment reçu et dans l'affirmative, détermine pour chaque ensemble d'informations secondaire si l'ensemble d'informations secondaire hébergé par le serveur d'informations est différent de l'ensemble d'informations secondaire mémorisé dans la mémoire associée au navigateur, reçoit une requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations secondaire et transfère ou non la requête vers le serveur d'informations selon le résultat de la détermination de différence.

Description

La présente invention concerne un procédé et un dispositif de traitement
de requêtes générées par un logiciel de navigation pour obtenir, d'un serveur d'informations, un ensemble d'informations principal et des ensembles d'informations secondaires associés à l'ensemble d'informations principal.
Plus précisément, la présente invention se situe dans le domaine de l'accélération de l'obtention d'informations d'un réseau de télécommunication tel que le réseau Internet.
Pour accélérer la vitesse d'obtention d'informations du réseau Internet, l'état de la technique propose différentes solutions. Ce sont, par exemple, l'utilisation de mémoire cache, la commande de téléchargement a priori d'informations susceptibles d'être demandées ultérieurement.
Ces techniques, utilisées par des serveurs mandataires auxquels sont reliés les clients accédant au réseau Internet, nécessitent de disposer de serveurs mandataires pourvus d'un espace mémoire important et donc augmentent le coût des serveurs mandataires.
L'invention a pour but de résoudre les inconvénients de l'art antérieur en proposant un procédé et un dispositif de traitement de requêtes générées par au moins un logiciel de navigation pour obtenir des informations d'un réseau tel que par exemple le réseau Internet qui permettent d'accélérer l'accès à ces informations sans qu'il soit nécessaire de disposer de serveurs mandataires pourvus d'un espace mémoire important.
A cette fin, selon un premier aspect, l'invention propose un procédé de traitement de requêtes générées par un logiciel de navigation pour obtenir, d'un serveur d'informations hébergeant des ensembles d'informations, un ensemble d'informations principal et des ensembles d'informations secondaires associés à l'ensemble d'informations principal, au logiciel de navigation est associée une mémoire mémorisant les ensembles d'informations principaux et secondaires reçus par le logiciel de navigation, caractérisé en ce que le procédé comporte des étapes, effectuées par un mandataire de: - réception d'une requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations principal, - transfert de la requête vers le serveur d'informations, détermination si l'ensemble d'informations principal a été précédemment reçu par le logiciel de navigation et dans l'affirmative: - détermination des ensembles d'informations secondaires associés à l'ensemble d'informations principal, - détermination pour chaque ensemble d'informations secondaire déterminé si l'ensemble d'informations secondaire hébergé par le serveur d'informations est différent de l'ensemble d'informations secondaire mémorisé dans la mémoire associée au logiciel de navigation, - réception d'une requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations secondaire associé à l'ensemble d'informations principal, - transfert ou non de la requête vers le serveur d'informations selon le résultat de l'étape de détermination de différence pour l'ensemble d'informations secondaire dont l'obtention est requise.
Corrélativement, l'invention concerne un dispositif de traitement de requêtes générées par un logiciel de navigation pour obtenir, d'un serveur d'informations hébergeant des ensembles d'informations, un ensemble d'informations principal et des ensembles d'informations secondaires associés à l'ensemble d'informations principal, au logiciel de navigation est associée une mémoire mémorisant les ensembles d'informations principaux et secondaires reçus par le logiciel de navigation, caractérisé en ce que le dispositif comporte: - des moyens de réception d'une requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations principal, - des moyens de transfert de la requête vers le serveur d'informations, - des moyens de détermination si l'ensemble d'informations principal a été précédemment reçu par le logiciel de navigation et dans l'affirmative: - des moyens de détermination des ensembles d'informations secondaires associés à l'ensemble d'informations principal, - des moyens de détermination pour chaque ensemble d'informations secondaire déterminé si l'ensemble d'informations secondaire hébergé par le serveur d'informations est différent de l'ensemble d'informations secondaire mémorisé dans la mémoire associée au logiciel de navigation, - des moyens de réception d'une requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations secondaire associé à l'ensemble d'informations principal, des moyens de transfert ou non de la requête vers le serveur d'informations selon le résultat de l'étape de détermination de différence pour l'ensemble d'informations secondaire dont l'obtention est requise.
Ainsi, il n'est pas nécessaire d'allouer une mémoire importante au mandataire pour accélérer l'obtention d'informations. En déterminant quels sont les ensembles d'informations secondaires associés à un ensemble d'informations principal, et en vérifiant si les ensembles d'informations secondaires sont différents de ceux précédemment obtenus par le logiciel de navigation, il est possible d'éviter qu'un nombre trop important de requêtes soient transmises vers le serveur d'informations.
Selon un autre aspect de l'invention, le mandataire est un serveur mandataire relié à au moins un logiciel de navigation par l'intermédiaire d'un premier réseau de télécommunication, le serveur d'informations est relié au serveur mandataire par l'intermédiaire d'un second réseau de télécommunication dont le débit de transfert d'informations est moindre que le débit de transfert d'informations du premier réseau de télécommunication.
Ainsi, la présente invention permet de gérer plusieurs logiciels de navigation et réduit les inconvénients liés au débit du second réseau de télécommunication.
Selon un autre aspect de l'invention, la détermination d'une précédente réception, par le logiciel de navigation, de l'ensemble d'informations principal et la détermination des ensembles d'informations secondaires associés à l'ensemble d'informations principal sont effectuées par le mandataire à partir d'une table mise à jour à partir de requêtes précédentes effectuées par le logiciel de navigation et la table comporte en outre pour chaque ensemble d'informations secondaire des informations d'horodatage.
Ainsi, les différentes déterminations sont réalisées de manière simple par le mandataire sans nécessiter une allocation de mémoire importante à celui-ci.
Selon un autre aspect de l'invention, la détermination d'une différence entre l'ensemble d'informations secondaire hébergé par le serveur d'informations et l'ensemble d'informations secondaire mémorisé dans la mémoire associée au navigateur se décompose en: - un transfert d'identifiants des ensembles secondaires déterminés vers le serveur d'informations, - la réception pour chaque identifiant d'un ensemble d'informations secondaire d'un horodatage de la dernière modification dudit ensemble d'informations secondaire, - la mémorisation des horodatages reçus, - la comparaison de chaque horodatage reçu avec un autre horodatage prédéterminé.
Ainsi, la détermination de différence est effectuée rapidement et ne nécessite pas la réalisation d'opérations complexes par le mandataire.
Selon un autre aspect de l'invention, la requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations secondaire est une requête conditionnelle comprenant un horodatage de la dernière modification dudit ensemble d'informations secondaire connue du logiciel de navigation et l'autre horodatage prédéterminé est l'horodatage compris dans la requête conditionnelle.
Connaissant ainsi l'horodatage de la dernière modification de l'ensemble d'informations secondaire connue du logiciel de navigation, le mandataire dispose d'une information fiable pour déterminer si l'ensemble d'informations secondaire demandé a été modifié.
Selon un autre aspect de l'invention, si la requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations secondaire associé à l'ensemble d'informations principal est reçue avant que l'horodatage de la dernière modification dudit ensemble d'informations secondaire ne soit reçu, on retarde le transfert de la requête vers le serveur d'informations.
Selon un autre aspect de l'invention, les identifiants des ensembles secondaires sont transférés dans un unique message vers le serveur d'informations et le serveur d'informations transfère ledit message à un serveur d'horodatage qui détermine la dernière modification de chaque ensemble secondaire compris dans le message.
Ainsi, le nombre de requêtes et la quantité d'informations transmises sur le second réseau de télécommunication sont réduits.
L'invention concerne aussi le programme d'ordinateur stocké sur un support d'informations, ledit programme comportant des instructions permettant de mettre en oeuvre le procédé précédemment décrit, lorsqu'il est chargé et exécuté par un système informatique.
Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante d'un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels: la Fig. 1 représente l'architecture du système d'accélération de transfert d'informations selon l'invention; la Fig. 2 représente une vue schématique du serveur mandataire selon l'invention; la Fig. 3 représente un exemple de table d'horodatage utilisée par la présente invention; la Fig. 4 représente l'algorithme exécuté par le serveur mandataire selon la présente invention.
La Fig. 1 représente l'architecture du système d'accélération du transfert d'informations selon l'invention.
Le système d'accélération du transfert d'informations selon la présente invention comprend un serveur mandataire 10 auquel sont reliés des clients par l'intermédiaire d'un réseau de télécommunication 14. Chaque client dispose d'un logiciel de navigation 11. Un logiciel de navigation 11 permet d'accéder à des pages Web conformément au protocole HTTP 1.1. HTTP est l'acronyme de HyperText Transfer Protocol. Le protocole HTTP 1.1 est décrit en détail dans la recommandation de l'IETF RFC 2616. Bien entendu, d'autres protocoles peuvent être utilisés dans la présente invention.
Le réseau de télécommunication 14 est par exemple un réseau de télécommunication tel qu'un réseau local filaire ou radio ayant un débit élevé. En Fig. 1, seulement deux logiciels de navigation Web 11 a et 1l b sont représentés. Ces logiciels de navigation sont hébergés sur les ordinateurs, les assistants personnels, voire les téléphones mobiles des clients du réseau local 14. Bien entendu, un nombre plus important de navigateurs Web 11 sont reliés au serveur mandataire 10.
Un serveur mandataire est classiquement appelé serveur "proxy". Le serveur mandataire 10 est un intermédiaire entre les différents utilisateurs du réseau local 14 et un autre réseau de télécommunication 18 tel que le réseau Internet. Lorsqu'un utilisateur se connecte au réseau Internet 18 à l'aide de son logiciel de navigation 11 ou navigateur Web configuré pour utiliser le serveur mandataire 10, le logiciel de navigation 11 se connecte au serveur mandataire 10 et lui transfère une requête pour l'obtention d'un ensemble d'informations principal tel qu'une page Web. Le serveur mandataire 10 se connecte ensuite au serveur d'informations 12 que le logiciel de navigation 11 client cherche à joindre et lui transmet la requête. Le serveur d'informations 12 donne la page Web au serveur mandataire 10, qui va à son tour transmettre la page Web au logiciel de navigation 11.
Aux logiciels de navigation 11 sont associées des mémoires caches qui mémorisent les informations précédemment reçues par l'intermédiaire du réseau Internet 18. Plus précisément, les pages Web ou ensembles d'informations principaux, ainsi que les différents objets, ou ensembles d'informations secondaires, associés à ces pages Web reçues par un logiciel de navigation 11, sont mémorisés dans la mémoire cache de l'ordinateur comprenant le logiciel de navigation Il ayant demandé ces informations. Ces pages et objets sont ainsi accessibles par ce logiciel de navigation 11.
Le serveur d'informations 12 est associé à un serveur d'horodatage 15. Le serveur d'informations 12 est apte à traiter des pages Web statiques et/ou des pages Web dynamiques. Une page Web statique est une page dont le contenu est mémorisé à une adresse prédéterminée du serveur d'informations 12. Une page Web dynamique est une page dont le programme qui permet la composition de cette page est mémorisé à une adresse prédéterminée du serveur d'informations 12.
Le serveur d'horodatage 15 est apte à horodater la dernière modification effectuée sur les différents objets associés à une page Web.
En Fig. 1, un seul serveur d'informations 12 est représenté par souci de simplification. Bien entendu, plusieurs serveurs d'informations sont accessibles par l'intermédiaire du réseau Internet 18. Dans un mode préféré de réalisation, un serveur d'horodatage 15 est intégré à chaque serveur d'informations 12 auquel il est associé et constitue donc un module de celui-ci. En variante, un serveur d'horodatage est associé à chacun des serveurs Web.
Dans un autre mode de réalisation, un serveur d'horodatage est associé à une pluralité de serveurs Web reliés au serveur d'horodatage par l'intermédiaire du réseau Internet 18.
Selon l'invention, à la réception de la requête pour l'obtention d'une page Web, le serveur mandataire 10 est apte à vérifier si des objets, ou ensembles d'informations secondaires, sont associés à la page Web, ou ensemble d'informations principal, demandée. Le serveur mandataire 10 est apte à transférer au serveur d'informations 12 hébergeant la page Web demandée, une requête pour obtenir des informations d'horodatage des dernières modifications effectuées sur les différents objets étant associés à la page Web demandée. La requête pour obtenir des informations d'horodatage est par exemple et de manière non limitative une requête conforme au protocole HTTP 1.1 pour l'obtention d'une page d'horodatage et est adressée au serveur d'informations 12. Cette page d'horodatage comporte un identifiant du serveur d'horodatage 15 associé au serveur d'informations 12 ainsi que les identifiants des différents objets associés à la page Web demandée.
Le serveur d'informations 12 est apte à rediriger une telle requête vers le serveur d'horodatage 15.
Le serveur d'horodatage 15 est apte à exécuter le script ou en d'autres termes le programme associé à cette page. Le serveur d'horodatage 115 horodate la dernière modification de chaque objet associé à la page Web demandée et retourne, pour chacun de ces objets, les informations d'horodatage au serveur mandataire 10 par l'intermédiaire du serveur d'informations 12.
Le serveur mandataire 10, à partir de ces informations d'horodatage, met à jour une table d'horodatage telle que par exemple celle représentée en Fig. 3 et redirige ou non les requêtes pour l'obtention des objets associés à la page demandée vers le serveur d'informations 12.
Il est à remarquer ici que dans un autre mode de réalisation, chaque ordinateur disposant d'un logiciel de navigation 11, dispose d'un mandataire 10 apte à exécuter le procédé tel que décrit dans la présente invention. Dans cette variante, le réseau de télécommunication 14 n'est donc pas nécessaire.
La Fig. 2 représente une vue schématique du serveur mandataire selon l'invention.
Le serveur mandataire 10 comporte un processeur 100 relié par l'intermédiaire d'un bus de communication 101 à une mémoire morte ROM 102, une mémoire vive 103, un moyen de stockage de masse tel qu'un disque dur 104, une interface réseau 106 avec le réseau de télécommunication 14, une interface réseau 107 avec le réseau de télécommunication 18 et une interface homme machine 105.
Lors de la mise en service du serveur mandataire 10, les instructions du programme correspondant à l'algorithme de la Fig. 4 sont chargées de la mémoire morte 102 en mémoire vive 103 et sont exécutées par le processeur 100.
Le processeur 100 est apte à recevoir par l'intermédiaire de l'interface réseau 106 des requêtes d'obtention de pages Web, ou ensembles d'informations principaux, générées par des navigateurs Web 11. Le processeur 100 est apte à déterminer si des ensembles d'informations secondaires sont associés à ces pages Web à l'aide d'une table d'horodatage pour chaque logiciel de navigation lui étant associé. Ces tables d'horodatage sont mémorisées dans le disque dur 104. Le processeur 100 est apte à obtenir, par l'intermédiaire de l'interface réseau 107, des informations d'horodatage sur les ensembles d'informations secondaires. Le processeur 100 est apte à rediriger ou non en fonction des informations d'horodatage obtenues, des requêtes d'obtention des ensembles d'informations secondaires générées par des navigateurs Web 11.
L'interface homme machine 105 est par exemple constituée d'un écran, d'un clavier et/ou d'une souris et permet entre autres de définir la durée des temporisations telles qu'utilisées dans l'algorithme de la Fig. 4.
La Fig. 3 représente un exemple de table d'horodatage utilisée par la présente invention.
Selon l'invention, une table d'horodatage est associée à chaque logiciel de navigation associé au serveur mandataire 10.
Dans la table telle que représentée à la Fig. 3, une seule page Web est référencée. Bien entendu, un nombre beaucoup plus important de pages Web sont référencées dans la table d'horodatage. Ces pages Web correspondent à des pages Web préalablement visitées par l'utilisateur du logiciel de navigation 11 associé au serveur mandataire 10.
La table de la Fig. 3 est constituée de quatre colonnes notées 30 à 33 et de trois lignes notées 35 à 37.
Dans la colonne 30, sont référencées les URL des différentes pages préalablement visitées par l'utilisateur du logiciel de navigation associé au serveur mandataire 10.
Dans la colonne 31, les différents ensembles d'informations secondaires associés aux pages Web préalablement visitées sont référencés. Ces informations sont plus précisément des objets tels que des images, des séquences audiovisuelles ou autres. La colonne 31 est mise à jour à l'étape E416 de l'algorithme de la Fig. 4 qui sera décrit ultérieurement.
La colonne 32 comprend l'horodatage des ensembles d'informations secondaires associés aux pages Web préalablement visitées et enregistrées dans la colonne 31. La colonne 32 est mise à jour à l'étape E410 de l'algorithme de la Fig. 4 qui sera décrit ultérieurement. Les horodatages compris dans cette colonne sont représentatifs des dates et heures des dernières modifications des ensembles d'informations secondaires connues du serveur mandataire 10.
La colonne 33 comprend la date et l'heure de la réception des informations d'horodatage comprises dans la colonne 32. La colonne 33 est mise à jour à l'étape E411 de l'algorithme de la Fig. 4 qui sera décrit ultérieurement.
Pour chaque page Web visitée, la table d'horodatage comprend autant de lignes que d'ensembles d'informations secondaires ou objets qui lui sont associés. Selon notre exemple, trois objets 01, 02, 03 sont associés à la page Web d'adresse www.sili.fr.
La Fig. 4 représente l'algorithme exécuté par le serveur mandataire selon la présente invention.
L'algorithme de la Fig. 4 est exécuté à chaque réception d'une requête effectuée par un logiciel de navigation 11 associé au serveur mandataire 10 pour l'obtention d'une page Web ou d'objets associés à une page Web d'un serveur d'informations tel que par exemple le serveur d'informations 12 de la Fig. 1.
A l'étape E400, une requête pour l'obtention d'un ensemble d'informations I est reçue par l'interface réseau 106 et retransmise au processeur 100 du serveur mandataire 10. L'ensemble d'informations est un ensemble d'informations principal ou un ensemble d'informations secondaire associé à un ensemble d'informations principal. Cette requête est préférentiellement et de manière non limitative une requête de type "GET" conforme au protocole HTTP 1.1. Cette requête est en variante conforme au protocole HTTP 1.0.
A l'étape E401, le processeur 100 vérifie si l'ensemble d'informations demandé est un ensemble d'informations principal tel qu'une page Web ou un ensemble d'informations secondaire tel qu'un objet associé à une page Web. Par exemple, lorsque la requête est conforme au protocole HTTP 1.1, le processeur 100 vérifie si dans la requête de l'ensemble d'informations I est inclus un champ de référence comprenant l'identifiant, noté R, de l'ensemble d'informations principal duquel l'identifiant de l'ensemble d'informations demandé a été obtenu. Ce champ est appelé Champ d'en-tête "Referer" dans le protocole HTTP 1.1.
Si l'ensemble d'informations demandé est un ensemble d'informations principal, le processeur 100 passe à l'étape E402. A cette étape, le processeur 100 vérifie si la page a précédemment été reçue par le logiciel de navigation ayant émis la requête. Par exemple, le processeur 100 vérifie si l'identifiant de la page demandée est compris dans la colonne 30 de la table de la Fig. 3 du client ayant généré la requête. Dans la négative, le processeur 100 met à jour à l'étape E403 la table d'horodatage en créant une nouvelle ligne, par exemple la ligne 35, et en insérant dans la colonne 30 l'identifiant de la page demandée. Cet identifiant est par exemple l'URL www.sili.fr. Cette opération effectuée, le processeur 100 transfère à l'étape E404 la requête GET sur le réseau Internet 18 par l'intermédiaire de l'interface réseau 107.
Si l'identifiant compris dans la requête est identifié dans la table d'horodatage, et plus précisément dans la colonne 30 de la Fig. 3, le processeur 100 passe de l'étape E402 à l'étape E405. A cette étape, le processeur 100 vérifie si des identifiants d'ensembles d'informations secondaires, ou objets, associés à l'ensemble d'informations principal, ou page Web, sont connus du serveur mandataire 10. Pour cela, le processeur 100 vérifie si des identifiants sont compris dans la colonne 31 de la Fig. 3. Dans la négative, le processeur 100 passe à l'étape E412 et transfère la requête GET sur le réseau Internet 18 par l'intermédiaire de l'interface réseau 107.
Si des identifiants sont compris dans la colonne 31 de la Fig. 3, le processeur 100 passe de l'étape E405 à l'étape E406. A cette étape, le processeur 100 lit dans la table d'horodatage les différents objets associés à l'identifiant de la page Web compris dans la requête et forme une requête à destination du serveur d'informations 12 pour l'obtention d'une page Web. La requête est par exemple une requête de type GET. Cette requête comprend l'identifiant du serveur d'horodatage 15 associé au serveur 12 ainsi que les différents identifiants des différents objets lus dans la table d'horodatage.
Selon l'exemple de la table de la Fig. 3, la requête comprend les identifiants des objets 01, 02 et 03.
A la réception de cette requête, le serveur d'informations 12 transfère cette requête au serveur d'horodatage 15. Cette requête adresse une page dynamique. Le serveur d'horodatage 15 exécute le script associé à la page Web demandée et forme alors le contenu de cette page. Le script associé à cette page est selon l'invention un script qui insère, dans la page Web, la date et l'heure de la dernière modification de chaque objet identifié dans la requête.
A l'étape suivante E407, le processeur 100 active un compteur noté tempo.
A l'étape suivante E408, le serveur mandataire 10 reçoit la page dynamique comprenant la date et l'heure de la dernière modification de chaque objet identifié dans la requête.
A la réception de la page dynamique, le processeur 100 désactive à l'étape E409 le compteur tempo.
Cette opération effectuée, le processeur 100 met à jour aux étapes E410 et E411 les colonnes 32 et 33 de la Fig. 3. Par exemple, le processeur 100 insère colonne 32 ligne 35, la date de la dernière modification de l'objet 01, soit le 02/06/2004 à 8H00, colonne 32, ligne 36 la date de la dernière modification de l'objet 02, soit le 02/06/2004 à 8H25, colonne 32, ligne 37 la date de la dernière modification de l'objet 03, soit le 02/06/2004 à 10H40. Le processeur 100 insère aussi dans la colonne 33 la date et l'heure de la réception de la page dynamique. Cette date et heure de réception est la date et l'heure de l'horloge interne du serveur mandataire 10. C'est par exemple le 04/06/04 à 8H00.
Cette opération effectuée, le processeur 100 transfère à l'étape E412 la requête GET sur le réseau Internet 18 par l'intermédiaire de l'interface réseau 107. Cette opération effectuée, le processeur 100 retourne à l'étape E400 et attend la réception d'une nouvelle requête à traiter.
Si, lors du test de l'étape E401, il est déterminé que dans la requête de l'ensemble d'informations I est inclus un champ de référence comprenant l'identifiant, noté R, de l'ensemble d'informations principal duquel l'identifiant de l'ensemble d'informations demandé a été obtenu, le processeur 100 passe à l'étape E413.
Le processeur 100 vérifie à cette étape si la page Web à laquelle se réfère l'objet demandé est connue ou pas du serveur mandataire 10. Pour cela, le processeur 100 vérifie si l'identifiant R est compris dans la colonne 30 de la Fig. 3.
Si l'identifiant n'est pas compris dans la colonne 30, le processeur 100 passe à l'étape E414 et transfère la requête GET sur le réseau Internet 18 par l'intermédiaire de l'interface réseau 107.
Si l'identifiant est compris dans la colonne 30, le processeur 100 passe à l'étape E415. A cette étape, le processeur 100 vérifie si des identifiants d'ensembles d'informations secondaires, ou objets, associés à l'ensemble d'informations principal, ou page Web, sont connus du serveur mandataire. Pour cela, le processeur 100 vérifie si des identifiants sont compris dans la colonne 31 de la Fig. 3. Dans la négative, le processeur 100 passe à l'étape E416 et met à jour la table d'horodatage de la Fig. 3.
Plus précisément, le processeur 100 crée une nouvelle ligne et insère l'identifiant I de la page demandée. Le processeur 100 met ensuite à l'étape E417 les champs horodatage et date/heure d'obtention des colonnes 32 et 33 à la valeur nulle pour cette nouvelle ligne.
Cette opération effectuée, le processeur 100 transfère à l'étape E418 la requête GET sur le réseau Internet 18. Cette opération effectuée, le processeur 100 retourne à l'étape E400 et attend la réception d'une nouvelle requête à traiter.
Si à l'étape E415, le processeur 100 détermine que des identifiants d'objets, 5 associés à la page Web sont connus du serveur mandataire 10, le processeur 100 passe à l'étape E419.
A cette étape, le processeur 100 calcule, pour chaque objet associé, la variable V représentative de la différence entre la date et l'heure courantes du serveur mandataire 10 et respectivement chaque date et heure mémorisées dans la colonne 33 10 de la table de la Fig. 3.
Cette opération effectuée, le processeur 100 vérifie à l'étape E420 si la variable V est inférieure à un seuil prédéterminé noté "maxdelay". Cette vérification permet d'introduire la notion de fraîcheur des informationsd'horodatage de la colonne 32. En effet, une date et heure considérées comme non fraîches, c'est-à-dire lorsque la variable V est supérieure au seuil prédéterminé "maxdelay", elle ne sera pas prise en compte. Par exemple, si le seuil prédéterminé est de 24 heures et la date et heure de réception de la requête reçue à l'étape E400 est le 6 juin 2004 à 1Oh00, les objets 01, 02 et 03 sont quant à eux considérés comme anciens et donc susceptibles d'avoir été modifiés. Si la date et heure de réception de la requête reçue à l'étape E400 est le 4 juin 2004 à 18h00, les objets 01, 02 et 03 sont quant à eux considérés comme récents et donc susceptibles de ne pas avoir été modifiés.
Si la variable V est supérieure au seuil prédéterminé "maxdelay", le processeur 100 passe à l'étape E421 et vérifie si la temporisation activée à l'étape E407 du présent algorithme est active ou non. Cette vérification permet de vérifier si une requête a été effectuée pour l'obtention d'un nouvel objet avant que la page demandée à l'étape E406 ait été reçue. Dans l'affirmative, le processeur 100 retourne à l'étape E419 et réitère les étapes E419 à E421 un nombre prédéterminé de fois représentatif d'un délai d'attente de réception de la page demandée à l'étape E406 ou tant que la variable V est supérieure au seuil prédéterminé maxdelay.
Cette vérification permet de mettre en attente une requête d'objet lorsqu'une requête pour l'obtention d'information d'horodatage a été précédemment demandée et pas encore reçue. Il est à remarquer ici qu'en variante, le présent algorithme ne comporte pas d'étape E421.
Si la temporisation activée à l'étape E407 a été désactivée a l'étape E409, le processeur 100 passe de l'étape E421 à E422 et transfère la requête GET sur le réseau Internet 18. Cette opération effectuée, le processeur 100 retourne à l'étape E400 et attend la réception d'une nouvelle requête à traiter.
Si la variable V est inférieure au seuil prédéterminé "maxdelay", le processeur 100 passe de l'étape E420 à l'étape E423 et vérifie si l'objet demandé dans la requête est valide ou non.
La vérification est effectuée en fonction de dates et d'heures. Ces dates et heures correspondent à la date et heure qui sont comprises dans la requête de type GET reçue à l'étape E400 ainsi que la date et heure comprises dans la colonne 32 de la Fig. 3. En effet, la requête reçue à l'étape E400 est une requête conditionnelle. Cette requête est par exemple une requête de type "If Modified-Since" ":" HTTP-date conforme au protocole HTTP 1.1.
Par exemple, si l'objet demandé est l'objet 01 et la date et l'heure comprises dans la requête GET est "Tue 01 Jun 2004 08:00:00 GMT", le processeur 100 lit dans la table d'horodatage de la Fig. 3 les informations d'horodatage de l'objet 01 de la ligne 35 colonne 32. Cette date étant égale à la date comprise dans la requête, l'objet demandé n'a pas été modifié depuis la date et l'heure comprises dans la requête GET conditionnelle.
Si l'objet n'a pas été modifié, le processeur 100 passe à l'étape E424 et génère un message de réponse de type "304 not Modified" conforme au protocole HTTP 1.1. Le logiciel client, à la réception d'un tel message, consulte la mémoire cache qui lui est associée et obtient ainsi l'objet demandé.
Si l'objet a été modifié, le processeur 100 passe à l'étape E425 et transfère la requête GET sur le réseau Internet 18. Cette opération effectuée, le processeur 100 retourne à l'étape E400 et attend la réception d'une nouvelle requête à traiter.
Dans une variante de réalisation, au lieu d'utiliser des informations d'horodatage pour déterminer si un ensemble d'informations secondaire a été ou non modifié, d'autres informations telles qu'un code, une signature digitale ou un tatouage alloués à chaque modification d'un objet sont utilisés pour vérifier si une modification a été ou non effectuée.
Selon une autre variante de réalisation, la table d'horodatage de la Fig. 4 ne comprend pas de ligne 33 et la vérification de la fraîcheur des informations est effectuée avec des déclenchements de compteurs lors de la réception de pages actives.
Bien entendu, la présente invention n'est nullement limitée aux modes de réalisation décrits ici, mais englobe, bien au contraire, toute variante à la portée de 5 l'homme du métier.

Claims (9)

REVENDICATIONS
1) Procédé de traitement de requêtes générées par un logiciel de navigation pour obtenir, d'un serveur d'informations hébergeant des ensembles d'informations, un ensemble d'informations principal et des ensembles d'informations secondaires associés à l'ensemble d'informations principal, au logiciel de navigation est associée une mémoire mémorisant les ensembles d'informations principaux et secondaires reçus par le logiciel de navigation, caractérisé en ce que le procédé comporte des étapes, effectuées par un mandataire de: - réception d'une requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations principal, - transfert de la requête vers le serveur d'informations, - détermination si l'ensemble d'informations principal a été précédemment reçu par le logiciel de navigation et dans l'affirmative: - détermination des ensembles d'informations secondaires associés à l'ensemble d'informations principal, - détermination pour chaque ensemble d'informations secondaire déterminé si l'ensemble d'informations secondaire hébergé par le serveur d'informations est différent de l'ensemble d'informations secondaire mémorisé dans la mémoire associée au logiciel de navigation, - réception d'une requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations secondaire associé à l'ensemble d'informations principal, - transfert ou non de la requête vers le serveur d'informations selon le résultat de l'étape de détermination de différence pour l'ensemble d'informations secondaire dont l'obtention est requise.
2) Procédé selon la revendication 1, caractérisé en ce que le mandataire est un serveur mandataire relié à au moins un logiciel de navigation par l'intermédiaire d'un premier réseau de télécommunication, le serveur d'informations est relié au serveur mandataire par l'intermédiaire d'un second réseau de télécommunication dont le débit de transfert d'informations est moindre que le débit de transfert d'informations du premier réseau de télécommunication.
3) Procédé selon la revendication 1 ou 2, caractérisé en ce que l'étape de détermination d'une précédente réception, par le logiciel de navigation, de l'ensemble d'informations principal et l'étape de détermination des ensembles d'informations secondaires associés à l'ensemble d'informations principal sont effectuées par le mandataire à partir d'une table mise à jour à partir de requêtes précédentes effectuées par le logiciel de navigation et en ce que la table comporte en outre pour chaque ensemble d'informations secondaire des informations d'horodatage.
4) Procédé selon la revendication 3, caractérisé en ce que l'étape de détermination d'une différence entre l'ensemble d'informations secondaire hébergé par le serveur d'informations et l'ensemble d'informations secondaire mémorisé dans la mémoire associée au navigateur se décompose en sous-étapes de: - transfert d'identifiants des ensembles secondaires déterminés vers le serveur d'informations, - réception pour chaque identifiant d'ensemble d'informations secondaire d'un horodatage de la dernière modification dudit ensemble secondaire, - mémorisation des horodatages reçus, - comparaison de chaque horodatage reçu avec un autre horodatage prédéterminé.
8) Procédé selon la revendication 4, caractérisé en ce que la requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations secondaire est une requête conditionnelle comprenant un horodatage de la dernière modification dudit ensemble d'informations secondaire connue du logiciel de navigation et en ce que l'autre horodatage prédéterminé est l'horodatage compris dans la requête conditionnelle.
9) Procédé selon la revendication 4 ou 5, caractérisé en ce que si la requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations secondaire associé à l'ensemble d'informations principal est reçue avant que l'horodatage de la dernière modification dudit ensemble d'informations secondaire ne soit reçu, le procédé comporte une étape d'attente du transfert de la requête vers le serveur d'informations.
7) Procédé selon l'une quelconque des revendications 4 à 6, caractérisé en ce que les identifiants des ensembles d'informations secondaires sont transférés dans un unique message vers le serveur d'informations et en ce que le serveur d'informations transfère ledit message à un serveur d'horodatage qui détermine la dernière modification de chaque ensemble d'informations secondaire compris dans le message.
8) Dispositif de traitement de requêtes générées par un logiciel de navigation pour obtenir, d'un serveur d'informations hébergeant des ensembles d'informations, un ensemble d'informations principal et des ensembles d'informations secondaires associés à l'ensemble d'informations principal, au logiciel de navigation est associée une mémoire mémorisant les ensembles d'informations principaux et secondaires reçus par le logiciel de navigation, caractérisé en ce que le dispositif comporte: des moyens de réception d'une requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations principal, - des moyens de transfert de la requête vers le serveur d'informations, - des moyens de détermination si l'ensemble d'informations principal a été précédemment reçu par le logiciel de navigation et dans l'affirmative: des moyens de détermination des ensembles d'informations secondaires associés à l'ensemble d'informations principal, - des moyens de détermination pour chaque ensemble d'informations secondaire déterminé si l'ensemble d'informations secondaire hébergé par le serveur d'informations est différent de l'ensemble d'informations secondaire mémorisé dans la mémoire associée au logiciel de navigation, - des moyens de réception d'une requête générée par le logiciel de navigation pour l'obtention d'un ensemble d'informations secondaire associé à l'ensemble d'informations principal, - des moyens de transfert ou non de la requête vers le serveur d'informations selon le résultat de l'étape de détermination de différence pour l'ensemble d'informations secondaire dont l'obtention est requise.
9) Programme d'ordinateur stocké sur un support d'informations, ledit programme comportant des instructions permettant de mettre en oeuvre le procédé selon l'une quelconque des revendications 1 à 7, lorsqu'il est chargé et exécuté par un système informatique.
FR0406437A 2004-06-15 2004-06-15 Procede et dispositif de traitement de requetes generees par un logiciel de navigation Expired - Fee Related FR2871595B1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR0406437A FR2871595B1 (fr) 2004-06-15 2004-06-15 Procede et dispositif de traitement de requetes generees par un logiciel de navigation
PCT/FR2005/001449 WO2006003318A1 (fr) 2004-06-15 2005-06-13 Procede et dispositif de traitement de requetes generees par un logiciel de navigation
US11/570,660 US20070271318A1 (en) 2004-06-15 2005-06-13 Method and Device for Processing Requests Generated by Browser Software
EP05777323A EP1761876A1 (fr) 2004-06-15 2005-06-13 Procede et dispositif de traitement de requetes generees par un logiciel de navigation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0406437A FR2871595B1 (fr) 2004-06-15 2004-06-15 Procede et dispositif de traitement de requetes generees par un logiciel de navigation

Publications (2)

Publication Number Publication Date
FR2871595A1 true FR2871595A1 (fr) 2005-12-16
FR2871595B1 FR2871595B1 (fr) 2007-08-03

Family

ID=34947146

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0406437A Expired - Fee Related FR2871595B1 (fr) 2004-06-15 2004-06-15 Procede et dispositif de traitement de requetes generees par un logiciel de navigation

Country Status (4)

Country Link
US (1) US20070271318A1 (fr)
EP (1) EP1761876A1 (fr)
FR (1) FR2871595B1 (fr)
WO (1) WO2006003318A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2901386A1 (fr) * 2006-05-16 2007-11-23 Personnalite Numerique Sas Soc Support personnel de memoire de masse portatif et systeme informatique d'acces securise a un reseau par des utilisateurs.

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235326A1 (en) * 2007-03-21 2008-09-25 Certeon, Inc. Methods and Apparatus for Accelerating Web Browser Caching
CN103051722B (zh) * 2012-12-26 2015-10-14 新浪网技术(中国)有限公司 一种确定页面是否被劫持的方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253234B1 (en) * 1997-10-17 2001-06-26 International Business Machines Corporation Shared web page caching at browsers for an intranet
US20030061272A1 (en) * 1997-06-02 2003-03-27 Balachander Krishnamurthy Method and apparatus for cache validation for proxy caches
US6601090B1 (en) * 1999-06-25 2003-07-29 Nortel Networks Limited System and method for servicing internet object accessess from a coupled intranet
US6744452B1 (en) * 2000-05-04 2004-06-01 International Business Machines Corporation Indicator to show that a cached web page is being displayed

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505230B1 (en) * 1999-05-14 2003-01-07 Pivia, Inc. Client-server independent intermediary mechanism
US20020046262A1 (en) * 2000-08-18 2002-04-18 Joerg Heilig Data access system and method with proxy and remote processing
US20040073604A1 (en) * 2002-10-11 2004-04-15 Kazuhiro Moriya Cache control method of proxy server with white list

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030061272A1 (en) * 1997-06-02 2003-03-27 Balachander Krishnamurthy Method and apparatus for cache validation for proxy caches
US6253234B1 (en) * 1997-10-17 2001-06-26 International Business Machines Corporation Shared web page caching at browsers for an intranet
US6601090B1 (en) * 1999-06-25 2003-07-29 Nortel Networks Limited System and method for servicing internet object accessess from a coupled intranet
US6744452B1 (en) * 2000-05-04 2004-06-01 International Business Machines Corporation Indicator to show that a cached web page is being displayed

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2901386A1 (fr) * 2006-05-16 2007-11-23 Personnalite Numerique Sas Soc Support personnel de memoire de masse portatif et systeme informatique d'acces securise a un reseau par des utilisateurs.

Also Published As

Publication number Publication date
EP1761876A1 (fr) 2007-03-14
FR2871595B1 (fr) 2007-08-03
US20070271318A1 (en) 2007-11-22
WO2006003318A1 (fr) 2006-01-12

Similar Documents

Publication Publication Date Title
US11297017B2 (en) System and method for providing digital media content with a conversational messaging environment
EP2272239A2 (fr) Sélection d un serveur pour acheminer un contenu vers un client en utilisant une redirection de couche d application
EP3603024B1 (fr) Procédé de recommandation d'une pile de communication
FR2979509A1 (fr) Procede et serveur pour le suivi des utilisateurs au cours de leur navigation dans un reseau de communication
WO2016162639A1 (fr) Procédé de lecture en continu sur un équipement client d'un contenu diffusé au sein d'un réseau pair à pair
EP1761876A1 (fr) Procede et dispositif de traitement de requetes generees par un logiciel de navigation
CN115733883B (zh) 一种刷新cdn缓存的方法及装置
FR3061388A1 (fr) Procedes de validation de livraison de contenu et de verification d'une delegation de livraison d'un contenu, dispositifs et produits programme d'ordinateur correspondants.
EP3348043B1 (fr) Procédé et système d'établissement d'un accès à internet par utilisation d'un protocole de communication sans fil en réseau informatique local à partir d'une station cliente mobile
EP2674860B1 (fr) Procédé de traitement de données par un module de navigation
EP2706753B1 (fr) Technique de traitement d'une requête de distribution de contenu
US8615548B1 (en) System and method for deferred data downloading
EP3205067B1 (fr) Diffusion de contenus en streaming dans un réseau pair à pair
EP2446360A1 (fr) Technique de determination d'une chaine de fonctions elementaires associee a un service
FR2918527A1 (fr) Procede et dispositif d'insertion d'une adresse dans une requete
FR3079711A1 (fr) Procede de gestion d'acces a un contenu numerique.
WO2007054657A2 (fr) Procede et dispositif de fourniture d'un identifiant de federation reseau a un fournisseur de service
WO2024068350A1 (fr) Sélection d'un dispositif adapté pour héberger au moins un processus d'une application parmi une pluralité de dispositifs d'une infrastructure de communication, l'application étant instanciée à partir de l'au moins un processus
BE1029303A1 (fr) Procédé et système d'affichage digital
EP2957104B1 (fr) Procédé de sélection de la représentation des segments d'un contenu multimédia transmis sur un réseau de communication
WO2001008043A2 (fr) Procede de telechargement de fichiers, programmes d'ordinateur et dispositif de telechargement correspondant
FR2968871A1 (fr) Procede de traitement de segment de donnees dans un reseau de communication
FR2966310A1 (fr) Decouverte de services web dans un reseau local
SG184587A1 (en) A method and apparatus for caching and retrieving a stream object
FR2858438A1 (fr) Procede d'obtention d'un document numerique dans un reseau pair a pair.

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20110228