Method and apparatus for web caching
First Claim
1. A system for caching of data for a plurality of clients coupled to at least one data source with data resources each identified by a corresponding uniform resource locator (URL);
- and the system comprising;
at least one cache module coupled to selected clients among the plurality of clients to cache data resources requested by the selected clients along with corresponding URLs, and the at least one cache module responsive to update messages identifying URLs of data resources requiring an update, to tag cached copies of the data resources identified in the update messages with a “
stale”
tag to indicate a lack of coherency between the cached copies and originals of the data resources in the at least one data source;
a coherency management module coupled to the at least one data source to monitor data resource copies supplied by the at least one data source in response to requests by the selected clients and to send to the at least one cache module the update messages identifying each URL for which successive requested copies of the corresponding data resource differ from one another;
wherein the at least one cache module includes a first cache module coupled to a first set of selected clients among the plurality of clients and a second cache module coupled to a second set of selected clients among the plurality of clients; and
wherein further the coherency management module includes;
a logger to maintain a log table which correlates the first cache module with the URLs requested by the first set of selected clients and the second cache module with the URL'"'"'s requested by the second set of selected clients;
a signature generator to generate a digital signature for each data resource copy supplied by the at least one data source in response to requests by the first and the second sets of selected clients;
a signature cache to cache the digital signatures generated by the signature generator along with corresponding URLs and to tag with the stale tag each URL for which successive digital signatures for the corresponding data resource differ from one another; and
an updater to send update messages to a corresponding one of the first and second cache module associated with URLs in the log table for which the corresponding signature in the signature cache includes the stale tag and the updater to remove the corresponding stale tags from the signature cache upon sending the update messages.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for web caching is disclosed. The method and apparatus may be implemented in hardware, software or firmware. Complementary cache management modules, a coherency module and a cache module(s) are installed complementary gateways for data and for clients respectively. The coherency management module monitors data access requests and or response and determines for each: the uniform resource locator (URL) of the requested web page, the URL of the requestor and a signature. The signature is computed using cryptographic techniques and in particular a hash function for which the input is the corresponding web page for which a signature is to be generated. The coherency management module caches these signatures and the corresponding URL and uses the signatures to determine when a page has been updated. When, on the basis of signature comparisons it is determined that a page has been updated the coherency management module sends a notification to all complementary cache modules. Each cache module caches web pages requested by the associated client(s) to which it is coupled. The notification from the cache management module results in the cache module(s) which are the recipient of a given notice updating their tag table with a stale bit for the associated web page. The cache module(s) use this information in the associated tag tables to determine which pages they need to update. The cache modules initiate this update during intervals of reduced activity in the servers, gateways, routers, or switches of which they are a part. All clients requesting data through the system of which each cache module is a part are provided by the associated cache module with cached copies of requested web pages.
285 Citations
18 Claims
-
1. A system for caching of data for a plurality of clients coupled to at least one data source with data resources each identified by a corresponding uniform resource locator (URL);
- and the system comprising;
at least one cache module coupled to selected clients among the plurality of clients to cache data resources requested by the selected clients along with corresponding URLs, and the at least one cache module responsive to update messages identifying URLs of data resources requiring an update, to tag cached copies of the data resources identified in the update messages with a “
stale”
tag to indicate a lack of coherency between the cached copies and originals of the data resources in the at least one data source;a coherency management module coupled to the at least one data source to monitor data resource copies supplied by the at least one data source in response to requests by the selected clients and to send to the at least one cache module the update messages identifying each URL for which successive requested copies of the corresponding data resource differ from one another; wherein the at least one cache module includes a first cache module coupled to a first set of selected clients among the plurality of clients and a second cache module coupled to a second set of selected clients among the plurality of clients; and wherein further the coherency management module includes; a logger to maintain a log table which correlates the first cache module with the URLs requested by the first set of selected clients and the second cache module with the URL'"'"'s requested by the second set of selected clients; a signature generator to generate a digital signature for each data resource copy supplied by the at least one data source in response to requests by the first and the second sets of selected clients; a signature cache to cache the digital signatures generated by the signature generator along with corresponding URLs and to tag with the stale tag each URL for which successive digital signatures for the corresponding data resource differ from one another; and an updater to send update messages to a corresponding one of the first and second cache module associated with URLs in the log table for which the corresponding signature in the signature cache includes the stale tag and the updater to remove the corresponding stale tags from the signature cache upon sending the update messages. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
- and the system comprising;
-
9. A method for caching data for a plurality of clients coupled to at least one data source with data resources each identified by a corresponding uniform resource locators (URL);
- and the method comprising the acts of;
caching the data resources together with corresponding URLs requested by the selected clients among the plurality of clients; generating update messages identifying in the requests from the selected clients each URL for which successive requested copies of the corresponding data resource supplied by the at least one data source differ from one another, wherein the generating act further comprises the acts of; creating a digital signature for each data resource copy supplied by the at least one data source in response to requests from the selected clients; caching the digital signatures created in the creating act together with a corresponding URL; labeling with the “
stale”
tag each corresponding URL for which successive digital signatures cached in the act of caching digital signatures differ from one another;producing update messages identifying each URL labeled with a stale tag in the act of labeling; and removing the stale tags from the URLs identified in the update messages produced in the aci of producing; and tagging with a “
stale”
tag the cached copies of the data resources cached in the caching act and identified in the update messages generated in the generating act, and with the stale tag indicating a lack of coherency between the tagged cached copy and corresponding original of the data resource in the at least one data source. - View Dependent Claims (10, 11, 12, 13, 14, 15)
- and the method comprising the acts of;
-
16. Computer software, tangibly embodied in a computer-readable medium for caching data for a plurality of clients coupled to at least one data source with data resources each identified by a corresponding uniform resource locators (URL);
- and the software comprising instructions to perform the following operations;
caching the data resources together with corresponding URLs requested by the selected clients among the plurality of clients; generating update messages identifying in the requests from the selected clients each URL for which successive requested copies of the corresponding data resource supplied by the at least one data source differ from one another, wherein the generating act further comprises the acts of; creating a digital signature for each data resource copy supplied by the at least one data source in response to requests from the selected clients; caching the digital signatures created in the creating act together with a corresponding URL;
labeling with the “
stale”
tag each corresponding URL for which successive digital signatures cached in the act of caching digital signatures differ from one another;producing update messages identifying each URL labeled with a stale tag in the act of labeling; removing the stale tags from the URLs identified in the update messages produced in the act of producing; and tagging with a “
stale”
tag the cached copies of the data resources cached in the caching act and identified in the update messages generated in the generating act, and with the stale tag indicating a lack of coherency between the tagged cached copy and corresponding original of the data resource in the at least one data source. - View Dependent Claims (17, 18)
- and the software comprising instructions to perform the following operations;
Specification