Shared cache parsing and pre-fetch
First Claim
1. A method, including the steps of:
- receiving a web document at a shared cache from a web server or mass storage for communicating said web document to a web client for display;
parsing, by said shared cache, said web documents for reference to embedded objects;
determining if said embedded objects are already maintained in said shared cache; and
periodically refreshing said embedded objects by selecting at least one cached object actually present in said shared cache, and for the selected object, requesting from said web server a new copy of the selected object without need for a command from said web client.
11 Assignments
0 Petitions
Accused Products
Abstract
The invention provides a method and system for reducing latency in reviewing and presenting web documents to the user. A cache coupled to one or more web clients request web documents from web servers on behalf of those web clients and communicates those web documents to the web clients for display. The cache parses the web documents as they are received from the web server, identifies references to any embedded objects, and determines if those embedded objects are already maintained in the cache. If those embedded objects are not in the cache, the cache automatically pre-fetches those embedded objects from the web server without need for a command from the web client. The cache maintains a two-level memory including primary memory and secondary mass storage. At the time the web document is received, the cache determines if any embedded objects are maintained in the cache but are not in primary memory. If those embedded objects are not in primary memory, the cache automatically pre-loads those embedded objects from secondary mass storage to primary memory without need for a request from the web client. Web documents maintained in the cache are periodically refreshed, so as to assure those web documents are not stale. The invention is applied both to original requests to communicate web documents and their embedded objects from the web server to the web client, and to refresh requests to communicate web documents and their embedded objects from the web server to the cache.
146 Citations
15 Claims
-
1. A method, including the steps of:
-
receiving a web document at a shared cache from a web server or mass storage for communicating said web document to a web client for display;
parsing, by said shared cache, said web documents for reference to embedded objects;
determining if said embedded objects are already maintained in said shared cache; and
periodically refreshing said embedded objects by selecting at least one cached object actually present in said shared cache, and for the selected object, requesting from said web server a new copy of the selected object without need for a command from said web client.
-
-
2. A computer controlled method for reducing access delays associated with accesses to a proxy cache, said proxy cache having a mass storage, a memory and at least one central processor unit (CPU), said mass storage and said memory for storing a plurality of cached objects received from a network from at least one server, said method including steps of:
-
providing, by said proxy cache, a specified web document from said at least one server responsive to a request from a client;
parsing, by said proxy cache, said specified web document to identify a set of embedded references;
determining, by said proxy cache, which of said set of embedded references reference a set of not-cached-objects not in said plurality of cached objects;
requesting, by said proxy cache and independent of an additional request from said client, one or more of said set of not-cached-objects responsive to the step of determining;
receiving, by said proxy cache, said one or more of said set of not-cached-objects;
adding, by said proxy cache, said one or more of said set of not-cached-objects to said plurality of cached objects; and
periodically refreshing said embedded objects by selecting at least one cached object actually present in said proxy cache, and for the selected object, requesting from said server a new copy of the selected object without need for a command from said client. - View Dependent Claims (3, 4, 5, 6)
receiving, by said proxy cache, said request from said client for said specified web document from said at least one server;
requesting, by said proxy cache, said specified web document from said at least one server;
receiving, by said proxy cache, said specified web document;
adding, by said proxy cache, said specified web document to said plurality of cached objects; and
sending, by said proxy cache, said specified web document to said client to satisfy said request.
-
-
4. The computer controlled method of claim 2, wherein the step of requesting one or more of said set of not-cached-objects includes requesting a plurality of said set of not-cached-objects in parallel.
-
5. The computer controlled method of claim 2, further including steps of:
-
receiving, by said proxy cache, a new request identifying one of said set of embedded references; and
sending, by said proxy cache, a requested object from said plurality of cached objects, said requested object responsive to said new request.
-
-
6. The computer controlled method of claim 2, whereby said set of embedded references is selected from the group consisting of a reference to numerical data, a reference to textual data, a reference to multimedia data, a reference to audio data, a reference to video data, a reference to program data, or a reference to a web document.
-
7. A system, including
a shared cache coupled to at least one web server and coupled to a plurality of web clients, said shared cache being capable of receiving requests for web documents from said web clients, requesting said web documents from said web server or mass storage, receiving said web documents from said web server or mass storage, and communicating said web documents to said web clients; -
said shared cache including;
means for parsing said web documents for references to embedded objects;
means for determining if said objects are already maintained in said shared cache; and
means for periodically refreshing said embedded objects by selecting at least one cached object actually present in said shared cache, and for requesting, for the selected object and from said web server, a new copy of the selected object without need for a command from said web clients.
-
-
8. A proxy cache having a central processing unit (CPU) and a memory coupled to said CPU for reducing access delays associated with accesses to said proxy cache, said proxy cache having a mass storage, said mass storage and said memory for storing a plurality of cached objects received from a network from at least one server, said proxy cache includes:
-
a cache mechanism configured to provide a specified web document from said at least one server responsive to a request from a client;
a parse mechanism configured to parse said specified web document to identify a set of embedded references;
a selection mechanism configured to select which of said set of embedded references reference a set of not-cached-objects not in said plurality of cached objects, said set of embedded references determined by the parse mechanism;
a pre-fetch mechanism configured to request, independently of an additional request from said client, one or more of said set of not-cached-objects responsive to the selection mechanism;
a reception mechanism configured to receive said one or more of said set of not-cached-objects requested by the pre-fetch mechanism;
a cache insertion mechanism configured to add said one or more of said set of not-cached-objects to said plurality of cached objects after receipt by the reception mechanism; and
a cache refresh mechanism configured to periodically refresh said plurality of cached objects by selecting at least one cached object actually present in said proxy cache, and for the selected object, requesting from said server a new copy of the selected object without need for a command from said client. - View Dependent Claims (9, 10)
-
-
11. A shared cache, including
means for parsing web documents, said web documents being received from a web server or mass storage, for references to embedded objects; -
means for determining if said objects are already maintained in said shared cache; and
means for periodically refreshing said embedded objects by selecting at least one cached object actually present in said shared cache, and for requesting, for the selected object and from said web server, a new copy of the selected object without need for a command from said web client.
-
-
12. A computer program product including:
-
a computer usable storage medium having computer readable code embodied therein for causing a computer, having a memory and a mass storage, to reduce access delays associated with accesses to a proxy cache, said mass storage and said memory for storing a plurality of cached objects received from a network from at least one server, said computer readable code including;
computer readable program code configured to cause said computer to effect a cache mechanism configured to provide a specified web document from said at least one server responsive to a request from a client;
computer readable program code configured to cause said computer to effect a parse mechanism configured to parse said specified web document to identify a set of embedded references;
computer readable program code configured to cause said computer to effect a selection mechanism configured to select which of said set of embedded references reference a set of not-cached-objects not in said plurality of cached objects, said set of embedded references determined by the parse mechanism;
computer readable program code configured to cause said computer to effect a pre-fetch mechanism configured to request, independently of an additional request from said client, one or more of said set of not-cached-objects responsive to the selection mechanism;
computer readable program code configured to cause said computer to effect a reception mechanism configured to receive said one or more of said set of not-cached-objects requested by the pre-fetch mechanism;
computer readable program code configured to cause said computer to effect a cache insertion mechanism configured to add said one or more of said set of not-cached-objects to said plurality of cached objects after receipt by the reception mechanism; and
computer readable program code configured to cause said computer to effect a cache refresh mechanism configured to periodically refresh said plurality of cached objects by selecting at least one cached object actually present in said proxy cache, and for the selected object, requesting from said server a new copy of the selected object without need for a command from said client. - View Dependent Claims (13, 14)
-
-
15. A computer program product including:
-
a computer data signal embodied in a carrier wave having computer readable code embodied therein for causing a computer, having a memory and a mass storage, to reduce access delays associated with accesses to a proxy cache, said mass storage and said memory for storing a plurality of cached objects received from a network from at least one server, said computer readable code including;
computer readable program code configured to cause said computer to effect a cache mechanism configured to provide a specified web document from said at least one server responsive to a request from a client;
computer readable program code configured to cause said computer to effect a parse mechanism configured to parse said specified web document to identify a set of embedded references;
computer readable program code configured to cause said computer to effect a selection mechanism configured to select which of said set of embedded references reference a set of not-cached-objects not in said plurality of cached objects, said set of embedded references determined by the parse mechanism;
computer readable program code configured to cause said computer to effect a pre-fetch mechanism configured to request, independently of an additional request from said client, one or more of said set of not-cached-objects responsive to the selection mechanism;
computer readable program code configured to cause said computer to effect a reception mechanism configured to receive said one or more of said set of not-cached-objects requested by the pre-fetch mechanism;
computer readable program code configured to cause said computer to effect a cache insertion mechanism configured to add said one or more of said set of not-cached-objects to said plurality of cached objects after receipt by the reception mechanism; and
computer readable program code configured to cause said computer to effect a cache refresh mechanism configured to periodically refresh said plurality of cached objects by selecting at least one cached object actually present in said proxy cache, and for the selected object, requesting from said server a new copy of the selected object without need for a command from said client.
-
Specification