WO2006003318A1 - 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
WO2006003318A1
WO2006003318A1 PCT/FR2005/001449 FR2005001449W WO2006003318A1 WO 2006003318 A1 WO2006003318 A1 WO 2006003318A1 FR 2005001449 W FR2005001449 W FR 2005001449W WO 2006003318 A1 WO2006003318 A1 WO 2006003318A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
server
request
main
navigation software
Prior art date
Application number
PCT/FR2005/001449
Other languages
English (en)
Inventor
Vania Joloboff
Ravindra Nath Mulukutla
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 US11/570,660 priority Critical patent/US20070271318A1/en
Priority to EP05777323A priority patent/EP1761876A1/fr
Publication of WO2006003318A1 publication Critical patent/WO2006003318A1/fr

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

Definitions

  • the present invention relates to a method and a device for processing queries generated by navigation software to obtain, from an information server, a main information set and secondary information sets associated with the set of information.
  • main information More specifically, the present invention is in the field of accelerating the obtaining of information from a telecommunications network such as the Internet.
  • the state of the art offers different solutions. These are, for example, the use of cache memory, the download command a priori information that may be requested later.
  • the object of the invention is to solve the disadvantages of the prior art by proposing a method and a device for processing queries generated by at least one navigation software for obtaining information from a network such as, for example, the Internet network which enable faster access to this information without the need for proxy servers with significant memory space.
  • the invention proposes a method for processing queries generated by a browser to obtain, from an information server hosting information sets, a main information set and sets of secondary information associated with the main set of information, the navigation software is associated with a memory storing the main and secondary information sets received by the navigation software, characterized in that the method comprises steps, performed by an agent of:
  • the invention relates to a device for processing queries generated by a browser to obtain, from an information server hosting information sets, a main information set and sets of secondary information associated with the main information set, the navigation software is associated with a memory storing the main and secondary information sets received by the navigation software, characterized in that the device comprises:
  • determination means for each set of secondary information determined if the secondary information set hosted by the information server is different from the set of secondary information stored in the memory associated with the navigation software; means for receiving a request generated by the navigation software for obtaining a set of secondary information associated with the main set of information,
  • the proxy is a proxy server connected to at least one browser software via a first telecommunication network
  • the information server is connected to the proxy server via a proxy server.
  • a second telecommunication network whose information transfer rate is less than the information transfer rate of the first telecommunication network.
  • the present invention makes it possible to manage several navigation software and reduces the inconveniences related to the throughput of the second telecommunication network.
  • the determination of a previous reception by the navigation software of the main information set and the determination of the sets of secondary information associated with the main information set are performed by the proxy from an updated table from previous requests made by the browser software and the table further includes for each set of secondary information timestamp information.
  • the various determinations are made in a simple manner by the proxy without requiring a significant memory allocation to it.
  • the determination of a difference between the set of secondary information hosted by the information server and the set of secondary information stored in the memory associated with the browser is broken down into:
  • the difference determination is performed quickly and does not require the completion of complex operations by the agent.
  • the request generated by the navigation software for obtaining a set of secondary information is a conditional request comprising a timestamp of the last modification of said set of secondary information known from the software of navigation and the other predetermined timestamp is the timestamp included in the conditional request.
  • the proxy Knowing the timestamp of the last modification of the known secondary information set of the navigation software, the proxy has reliable information to determine whether the requested secondary information set has been modified.
  • the navigation software for obtaining a set of secondary information associated with the main information set if the request generated by the navigation software for obtaining a set of secondary information associated with the main information set is received before the timestamp of the last modification of said set of secondary information is received, it delays the transfer of the request to the information server.
  • the identifiers of the secondary sets are transferred in a single message to the information server and the information server transfers said message to a time stamp server which determines the last modification of each secondary set. included in the message.
  • the invention also relates to the computer program stored on an information carrier, said program comprising instructions for implementing the method described above, when it is loaded and executed by a computer system.
  • FIG. . 1 represents the architecture of the information transfer acceleration system according to the invention
  • FIG. 2 shows a schematic view of the proxy server according to the invention
  • FIG. 3 shows an exemplary timestamp table used by the present invention
  • FIG. 4 represents the algorithm executed by the proxy server according to the present invention.
  • Fig. 1 represents the architecture of the information transfer acceleration system according to the invention.
  • the information transfer acceleration system comprises a proxy server 10 to which clients are connected via a telecommunication network 14. Each customer has a navigation software 11. A software of Navigation 11 provides access to web pages in accordance with HTTP 1.1.
  • HTTP is the acronym for HyperText Transfer Protocol.
  • the HTTP 1.1 protocol is described in detail in the recommendation of Naturally, other protocols may be used in the present invention.
  • the telecommunication network 14 is for example a telecommunication network such as a wired or radio local network having a high rate.
  • FIG. 1 only two Web browsing software l ia and 11b are shown. These navigation software are hosted on the computers, personal assistants, or even the mobile phones of the clients of the local network 14. Of course, a larger number of web browsers 11 are connected to the proxy server 10.
  • a proxy server is conventionally called a "proxy" server.
  • the proxy server 10 is an intermediary between the different users of the local network 14 and another telecommunications network 18 such as the Internet network.
  • the navigation software 11 connects to the proxy server 10 and forwards a request for it. obtaining a main information set such as a web page.
  • the proxy server 10 then connects to the information server 12 that the browser 11 client seeks to attach and transmits the request.
  • the information server 12 gives the web page to the proxy server 10, which will in turn transmit the web page to the navigation software 11.
  • the navigation software 11 is associated with cache memories that store the information previously received via of the Internet network 18.
  • main web pages or sets of information, as well as the different objects, or sets of secondary information, associated with these web pages received by a browser 11, are stored in the cache memory of the computer comprising the navigation software 11 having requested this information. These pages and objects are thus accessible by this navigation software 11.
  • the information server 12 is associated with a time stamp server 15.
  • the information server 12 is able to process static web pages and / or dynamic web pages.
  • a static web page is a page whose content is stored at a predetermined address of the information server 12.
  • a dynamic web page is a page whose program that allows the composition of this page is stored at a predetermined address of the server of information 12.
  • the time stamping server 15 is able to time stamp the last modification made on the various objects associated with a web page.
  • a single information server 12 is shown for the sake of simplification. Of course, several information servers are accessible via the Internet network 18.
  • a time stamping server 15 is integrated with each information server 12 with which it is associated and therefore constitutes a module of it.
  • a timestamp server is associated with each of the web servers.
  • a time stamp server is associated with a plurality of web servers connected to the time stamp server via the Internet network 18.
  • the proxy server 10 upon receiving the request for obtaining a web page, the proxy server 10 is able to check whether objects, or sets of secondary information, are associated with the Web page, or set of main information, requested.
  • the proxy server 10 is able to transfer to the information server 12 hosting the requested web page, a request to obtain timestamp information of the last modifications made on the different objects being associated with the requested web page.
  • the request for obtaining timestamp information is for example and without limitation an HTTP 1.1 compliant request for obtaining a timestamp page and is addressed to the information server 12.
  • This timestamp page comprises an identifier of the timestamp server 15 associated with the information server 12 as well as the identifiers of the different objects associated with the requested web page.
  • the information server 12 is able to redirect such a request to the time stamping server 15.
  • the time stamp server 15 is able to execute the script or in other words the program associated with this page.
  • the time stamp server 115 timestamps the last modification of each object associated with the requested web page and returns, for each of these objects, the timestamp information to the proxy server 10 via the information server 12.
  • the proxy server 10 from this timestamp information, updates a timestamp table such as for example that shown in FIG. 3 and redirects or not the requests for obtaining the objects associated with the requested page to the information server 12.
  • each computer having a navigation software 11 has a proxy 10 capable of executing the method as described in the present invention.
  • the telecommunication network 14 is therefore not necessary.
  • Fig. 2 represents a schematic view of the proxy server according to the invention.
  • the proxy server 10 comprises a processor 100 connected via a communication bus 101 to a ROM 104, a random access memory 103, a mass storage means such as a hard disk 104, a network interface 106 with the telecommunication network 14, a network interface 107 with the telecommunication network 18 and a man-machine interface 105.
  • a processor 100 connected via a communication bus 101 to a ROM 104, a random access memory 103, a mass storage means such as a hard disk 104, a network interface 106 with the telecommunication network 14, a network interface 107 with the telecommunication network 18 and a man-machine interface 105.
  • the processor 100 is able to receive, via the network interface 106, requests for obtaining Web pages, or sets of main information, generated by web browsers 11.
  • the processor 100 is able to determine if sets of secondary information are associated with these web pages using a timestamp table for each navigation software associated with it. These time stamp tables are stored in the hard disk 104.
  • the processor 100 is able to obtain, via the network interface 107, timestamp information on the sets of secondary information.
  • the processor 100 is able to redirect or not depending on the timestamp information obtained, requests for obtaining sets of secondary information generated by web browsers 11.
  • the human machine interface 105 is for example constituted by a screen , a keyboard and / or a mouse and among other things makes it possible to define the duration of the delays as used in the algorithm of FIG. 4.
  • Fig. 3 shows an exemplary timestamp table used by the present invention.
  • a time stamp table is associated with each navigation software associated with the proxy server 10.
  • the table of FIG. 3 consists of four columns marked 30 to 33 and three lines marked 35 to 37. In column 30, are referenced the URLs of the various pages previously visited by the user of the browser software associated with the proxy server 10.
  • column 31 the different sets of secondary information associated with the previously visited web pages are referenced. This information is more precisely objects such as images, audiovisual sequences or others.
  • Column 31 is updated at step E416 of the algorithm of FIG. 4 which will be described later.
  • Column 32 includes the timestamp of the secondary information sets associated with the web pages previously visited and recorded in column 31.
  • Column 32 is updated at step E410 of the algorithm of FIG. 4 which will be described later.
  • the timestamps included in this column are representative of the dates and times of the last modifications of the known secondary information sets of the proxy server 10.
  • Column 33 includes the date and time of receipt of the timestamp information included in column 32.
  • Column 33 is updated at step E411 of the algorithm of FIG. 4 which will be described later.
  • the timestamp table For each visited web page, the timestamp table includes as many rows as sets of secondary information or objects associated with it. According to our example, three objects 01, 02, 03 are associated with the web page of address www.sili.fr.
  • Fig. 4 represents the algorithm executed by the proxy server according to the present invention.
  • the algorithm of FIG. 4 is executed at each reception of a request made by a navigation software 11 associated with the proxy server 10 to obtain a Web page or objects associated with a Web page of an information server such as by For example, the information server 12 of FIG. 1.
  • a request for obtaining a set of information I is received by the network interface 106 and retransmitted to the processor 100 of the proxy server 10.
  • the set of information is a set of information main or a secondary information set associated with a main information set.
  • This request is preferably and in a nonlimiting manner a request of type "GET" compliant with the HTTP 1.1 protocol.
  • This request is alternatively compliant with the HTTP 1.0 protocol.
  • the processor 100 checks whether the requested information set is a primary set of information such as a web page or a set of secondary information such as an object associated with a web page.
  • the processor 100 checks whether in the request of the set of information I is included a reference field comprising the identifier, denoted R, of the set of information principal of which the identifier of the requested information set has been obtained. This field is called "Referencing" Header Field in the HTTP 1.1 protocol.
  • step E402. the processor 100 verifies whether the page has previously been received by the browser software that issued the request.
  • the processor 100 checks whether the identifier of the requested page is included in the column 30 of the table of FIG. 3 of the client that generated the request.
  • the processor 100 updates the timestamp table in step E403 by creating a new line, for example line 35, and inserting in the column 30 the identifier of the requested page.
  • This identifier is for example the URL www.sili.fr.
  • the processor 100 transfers the request GET on the Internet network 18 to the step E404 via the network interface 107.
  • step E402 the processor 100 checks whether identifiers of sets of secondary information, or objects, associated with the main set of information, or web page, are known to the proxy server 10. For this, the processor 100 checks if identifiers are included in column 31 of FIG. 3. If not, the processor 100 proceeds to step E412 and transfers the GET request to the Internet 18 via the network interface 107.
  • the processor 100 proceeds from step E405 to step E406. At this step, the processor 100 reads in the timestamp table the different objects associated with the identifier of the web page included in the request and forms a request destined for the information server. 12 to obtain a web page.
  • the request is for example a request of type GET.
  • This request includes the identifier of the timestamping server 15 associated with the server 12 as well as the different identifiers of the different objects read in the timestamp table.
  • the request includes the identifiers of the objects 01, 02 and 03.
  • the information server 12 Upon receipt of this request, the information server 12 transfers this request to the timestamp server 15.
  • This request addresses a dynamic page.
  • the timestamping server 15 executes the script associated with the requested web page and then forms the content of this page.
  • the script associated with this page is according to the invention a script that inserts, in the web page, the date and time of the last modification of each object identified in the request.
  • the processor 100 activates a counter noted tempo.
  • the proxy server 10 receives the dynamic page including the date and time of the last modification of each object identified in the request.
  • step E409 the timer
  • the processor 100 updates at the steps E410 and E411 the columns 32 and 33 of FIG. 3. For example, the processor 100 inserts column 32 line 35, the date of the last modification of the object 01, the 02/06/2004 at 8:00, column 32, line 36 the date of the last modification of the object 02, the
  • the processor 100 also inserts in column 33 the date and time of reception of the dynamic page. This date and time of receipt is the date and time of the internal clock of the proxy server 10. This is for example the 04/06/04 at 8:00.
  • the processor 100 transfers the request GET on the Internet network 18 to the step E412 via the network interface 107. This operation performed, the processor 100 returns to the step E400 and waits for the reception of a new request to process.
  • step E401 If, during the test of step E401, it is determined that in the request of the set of information I is included a reference field comprising the identifier, denoted R, of the main set of information from which the identifier of the requested information set has been obtained, the processor 100 proceeds to step E413.
  • the processor 100 checks at this step whether or not the web page to which the requested object refers is known from the proxy server 10. For this, the processor 100 checks whether the identifier R is included in the column 30 of FIG. 3.
  • the processor 100 proceeds to the step E414 and transfers the request GET on the Internet network 18 via the network interface 107.
  • processor 100 proceeds to step E415.
  • the processor 100 checks whether identifiers of sets of secondary information, or objects, associated with the main set of information, or Web page, are known to the proxy server. For this, the processor 100 checks whether identifiers are included in the column 31 of FIG. 3. If not, processor 100 proceeds to step E416 and updates the timestamp table of FIG. 3. More specifically, the processor 100 creates a new line and inserts the identifier I of the requested page. The processor 100 then puts in step E417 the timestamp and date / time fields of obtaining the columns 32 and 33 to the zero value for this new line.
  • the processor 100 transfers the request GET to the Internet network 18 at step E418. This operation performed, the processor 100 returns to step E400 and waits for the reception of a new request to be processed.
  • step E415 the processor 100 determines that object identifiers associated with the web page are known to the proxy server 10.
  • the processor 100 proceeds to the step E419.
  • the processor 100 calculates, for each associated object, the variable
  • V representative of the difference between the current date and time of the proxy server 10 and respectively each date and time stored in the column 33 of the table of FIG. 3.
  • step E420 the processor 100 checks in step E420 if the variable V is less than a predetermined threshold noted "maxdelay".
  • a date and time considered as not fresh that is to say when the variable V is greater than the predetermined threshold "maxdelay "it will not be taken into account.
  • the predetermined threshold is 24 hours and the date and time of receipt of the request received in step E400 is June 6, 2004 at 1OhOO, objects 01, 02 and 03 are considered as old and therefore likely to have been modified. If the date and time of receipt of the request received at step E400 is June 4, 2004 at 18:00, objects 01, 02 and 03 are considered as recent and therefore may not have been modified.
  • step E421 checks whether the timer activated in step E407 of the present algorithm is active or not. This check verifies whether a request has been made for obtaining a new object before the page requested in step E406 has been received. If so, the processor 100 returns to step E419 and repeats steps E419 to E421 a predetermined number of times representative of a waiting time for reception of the page requested in step E406 or as long as the variable V is greater than the predetermined threshold maxdelay.
  • step E421 This check holds an object request on hold when a request for timestamp information has been previously requested and not yet received. It should be noted here that, alternatively, the present algorithm does not include step E421.
  • step E407 If the timer activated in step E407 has been deactivated in step E409, the processor 100 goes from step E421 to E422 and transfers the GET request to the Internet network 18. This operation performed, the processor 100 returns to step E400 and waits for the reception of a new request to be processed.
  • step E423 If the variable V is below the predetermined threshold "maxdelay", the processor 100 goes from step E420 to step E423 and checks whether the requested object in the request is valid or not. The verification is done according to dates and times. These dates and times correspond to the date and time that are included in the GET type request received in step E400 as well as the date and time included in column 32 of FIG. 3. Indeed, the request received in step E400 is a conditional request. This request is for example a request of the type "If -Modified-Since" ":” HTTP-date according to the protocol HTTP 1.1.
  • the processor 100 reads from the time stamp table of FIG. 3 the timestamp information of the object Ol of the column line 32. This date being equal to the date included in the request, the object requested has not been changed since the date and time included in the conditional GET request.
  • the processor 100 proceeds to step E424 and generates a "304 not Modified" response message conforming to the HTTP 1.1 protocol.
  • the client software upon receipt of such a message, consults the cache memory associated with it and thus obtains the requested object.
  • the processor 100 proceeds to step E425 and transfers the GET request to the Internet network 18. This operation performed, the processor 100 returns to step E400 and waits for the reception of a new request treat.
  • other information such as a code, a digital signature, or a tattoo allocated to each modification of an object are used to check whether a change has been made or not.
  • the time stamping table of FIG. 4 does not include line 33 and the verification of the freshness of the information is performed with counter triggers when receiving active pages.

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’information 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

Procédé et dispositif de traitement de requêtes générées par un logiciel de navigation
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 œuvre 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 riETF RPC 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 l ia et 11b 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 11 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. II 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 "Référer" 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, 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 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 informations d'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 à 1OhOO, 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 Ol 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 Ol 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 l'homme du métier.

Claims

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, - détermination si l'ensemble d'informations est un ensemble d'informations principal ou un ensemble d'informations secondaire, la détermination étant effectuée en vérifiant si un champ de référence à un ensemble d'informations principal est compris dans la requête reçue,
- si l'ensemble d'informations est un ensemble d'informations principal, transfert de la requête vers le serveur d'informations,- détermination, si l'ensemble d'informations est un 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 logiciel de navigation, ' - 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 si l'ensemble d'informations est un ensemble d'information principal le procédé comporte en outre les étapes de détermination des ensembles d'informations secondaires associés à l'ensemble d'informations principal à partir d'une table mise à jour à partir de requêtes précédentes effectuées par le logiciel de navigation, et de mise à jour de la table avec des informations d'horodatage pour chaque ensemble d'informations secondaire.
4) Procédé selon la revendication 3, caractérisé en ce que la mise à jour de la table avec des informations d'horodatage pour chaque ensemble d'informations secondaire 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.
5) 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'é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 est effectuée en comparant l'horodatage de l'ensemble d'informations secondaire avec l'horodatage compris dans la requête conditionnelle.
6) 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,
- des moyens de détermination si l'ensemble d'informations est un ensemble d'informations principal ou un ensemble d'informations secondaire, la détermination étant effectuée en vérifiant si un champ de référence à un ensemble d'informations principal est compris dans la requête reçue,
- des moyens de transfert de la requête vers le serveur d'informations si l'ensemble d'informations est un ensemble d'informations principal ,
- des moyens de détermination, si l'ensemble d'informations est un 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 logiciel de navigation,
- 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 œuvre le procédé selon l'une quelconque des revendications 1 à 7, lorsqu'il est chargé et exécuté par un système informatique.
PCT/FR2005/001449 2004-06-15 2005-06-13 Procede et dispositif de traitement de requetes generees par un logiciel de navigation WO2006003318A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
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 (2)

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
FR0406437 2004-06-15

Publications (1)

Publication Number Publication Date
WO2006003318A1 true WO2006003318A1 (fr) 2006-01-12

Family

ID=34947146

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2005/001449 WO2006003318A1 (fr) 2004-06-15 2005-06-13 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)

Families Citing this family (3)

* 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.
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

Also Published As

Publication number Publication date
US20070271318A1 (en) 2007-11-22
EP1761876A1 (fr) 2007-03-14
FR2871595A1 (fr) 2005-12-16
FR2871595B1 (fr) 2007-08-03

Similar Documents

Publication Publication Date Title
US11297017B2 (en) System and method for providing digital media content with a conversational messaging environment
EP1891794B1 (fr) Modification du mode de service demande par un terminal de communication
US20050044260A1 (en) System and method for delivery of broadband content
WO2008047053A1 (fr) Procede de rafraichissement de contenus, cache, terminal, serveurs et programmes d'ordinateur associes
EP3603024B1 (fr) Procédé de recommandation d'une pile de communication
FR2851389A1 (fr) Procede et dispositif de gestion de requetes dans une architecture du type client-serveur
FR2979509A1 (fr) Procede et serveur pour le suivi des utilisateurs au cours de leur navigation dans un reseau de communication
EP2230612A1 (fr) Génération de recommandations pour un serveur de contenus
WO2006003318A1 (fr) Procede et dispositif de traitement de requetes generees par un logiciel de navigation
EP2436168A2 (fr) Technique de distribution d'un contenu vers un utilisateur
EP2674860B1 (fr) Procédé de traitement de données par un module de navigation
FR2797543A1 (fr) Procede pour faire communiquer un utilisateur avec au moins une base de donnees
EP2706753B1 (fr) Technique de traitement d'une requête de distribution de contenu
WO2002054804A1 (fr) Procede et architecture de communication entre un serveur internet et un equipement de telephonie mobile
US8615548B1 (en) System and method for deferred data downloading
WO2008046827A1 (fr) Procédé de gestion de mémoire dans un terminal client, signal, programme d'ordinateur et terminal correspondants
EP3205067B1 (fr) Diffusion de contenus en streaming dans un réseau pair à pair
FR2918527A1 (fr) Procede et dispositif d'insertion d'une adresse dans une requete
WO2001008043A2 (fr) Procede de telechargement de fichiers, programmes d'ordinateur et dispositif de telechargement correspondant
FR2853788A1 (fr) Procede et dispositif d'acces a un document numerique dans un reseau de communication du type poste a poste
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
WO2023180148A1 (fr) Procédé de traitement de requêtes d'accès à des données, entité, programme d'ordinateur, et support d'informations associés
WO2021176156A1 (fr) Procédé de gestion d'une requête d'accès à un site internet depuis un dispositif d'accès
FR3131489A1 (fr) Système de distribution de contenu Internet personnalisé
WO2007054657A2 (fr) Procede et dispositif de fourniture d'un identifiant de federation reseau a un fournisseur de service

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2005777323

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 11570660

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2005777323

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11570660

Country of ref document: US