Method and system for automatically caching dynamic content based on a cacheability determination
First Claim
1. A system for caching which receives a request from a requester and builds, by collecting one or more parts from one or more sources, a response to that request, the response comprising a composite of the one or more parts, at least one of the parts comprising dynamic content, each part having one or more attributes characterizing the part, the attributes indicating the cacheability of the part, the system for caching the response comprising:
- an attribute analyzer for determining the attributes of the parts of the a response;
cacheability analyzer for examining the attributes to determine cacheability of the response, wherein the attributes include at least one of a time variance setting of dynamic content, a user'"'"'s identify, or a location of dynamic content, and making a cacheability determination based upon that examination; and
means for caching the response based upon that cacheability determination.
1 Assignment
0 Petitions
Accused Products
Abstract
A caching system and method are disclosed that allow for the caching of web pages that have dynamic content. The caching system and method utilize a cacheability analyzer that analyzes responses based on time, content, user identification, and macro hierarchy. The caching system only caches those responses having dynamic content that are deemed cacheable. The method for caching dynamic content includes identifying parts of a response to a request for dynamic content from a requestor and attributes associated with the parts. The attributes are examined to determine cacheability of the response. A cacheability is made based on the determination and the response may be cached based upon that cacheability determination.
260 Citations
94 Claims
-
1. A system for caching which receives a request from a requester and builds, by collecting one or more parts from one or more sources, a response to that request, the response comprising a composite of the one or more parts, at least one of the parts comprising dynamic content, each part having one or more attributes characterizing the part, the attributes indicating the cacheability of the part, the system for caching the response comprising:
-
an attribute analyzer for determining the attributes of the parts of the a response;
cacheability analyzer for examining the attributes to determine cacheability of the response, wherein the attributes include at least one of a time variance setting of dynamic content, a user'"'"'s identify, or a location of dynamic content, and making a cacheability determination based upon that examination; and
means for caching the response based upon that cacheability determination. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. In a system which receives a request from a requestor and dynamically builds, by collecting one or more parts from one or more sources, a response to that request, the response comprising a composite of the one or more parts, at least one of the parts comprising dynamic content, each part having one or more attributes characterizing the part, the attributes indicating the cacheability of the part, a method for caching the response comprising the steps of:
-
a) identifying the parts of the response and their associated attributes, wherein the attributes include at least one of a time variance setting of dynamic content, a user'"'"'s identify, or a location of dynamic content;
b) examining the attributes to determine cacheability of the response; and
c) making a cacheability determination based upon that examination; and
d) caching the response based upon the cacheability determination. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
a1. creating a composite set of attributes based upon the individual attributes of the individual parts, the composite attribute set providing a characterization of the cacheability of the response; and
in step b, examining the attribute composite set to determine cacheability of the response.
-
-
16. The method of claim 13 wherein, in step c, the cacheability determination comprises a plurality of flags.
-
17. The method of claim 16 wherein each request has one or more properties, wherein, in step c, the cacheability determination further comprises at least one flag indicating that the response is cacheable and further comprises at least one flag indicating that the applicability of the response for serving in response to a subsequent request is based upon the one or more properties of the subsequent request.
-
18. The method of claim 17 wherein one of the request properties is the identity of the requester, wherein the cacheability determination comprises at least one flag indicating that the response is cacheable and at least one flag indicating that the applicability of the response for serving to subsequent requesters is based upon the subsequent requester identity property.
-
19. The method of claim 17 wherein one or more of the request properties is the characteristics of the requestor'"'"'s browser, wherein the cacheability determination comprises at least one flag indicating that the response is cacheable and at least one flag indicating that the applicability of the response for serving to subsequent requesters is based upon the subsequent requester browser characteristic properties.
-
20. The method of claim 17 wherein one of the request properties is the requested language, wherein the cacheability determination comprises at least one flag indicating that the response is cacheable and at least one flag indicating that the applicability of the response for serving in response to subsequent requests is based upon the requested language property of the subsequent request.
-
21. The method of claim 16 wherein the cacheability determination further comprises at least one flag indicating that the response is cacheable and at least one flag indicating that the validity of the response for serving to subsequent requests is based upon a determination of whether any of the parts on the one or more sources has been modified since the response was cached.
-
22. The method of claim 13 wherein step b further comprises analyzing the attributes to determine whether any of the attributes indicate that response causes important side effects and wherein step c further comprises making a determination that the response is not cacheable if any of the attributes indicate that response causes important side effects.
-
23. The method of claim 13 wherein step b further comprises analyzing the attributes to determine whether any of the attributes indicate that the response uses time variant data and wherein, in step c, the cacheability determination comprises at least one flag for indicating that the response is cacheable and is valid for serving to subsequent requests for a determined length if any of the attributes indicate that response uses time variant data.
-
24. The method of claim 13 wherein step c further comprises the step of creating a caching strategy comprising a plurality of flags, and further wherein step d caches the caching strategy flags along with the associated response.
-
25. A computer usable medium, for use in a computer which receives a request from a requestor and dynamically builds, by collecting one or more parts from one or more sources, a response to that request, the response comprising a composite of the one or more parts, at least one of the parts comprising dynamic content, each part having one or more attributes characterizing the part, the attributes indicating the cacheability of the part, the computer usable medium having computer readable program code embodied in the medium for causing the computer to perform method steps for caching the response comprising the method steps of:
-
a) identifying the parts of the response and their associated attributes, wherein the attributes include at least one of a time variance setting of dynamic content, a user'"'"'s identify, or a location of dynamic content;
b) examining the attributes to determine cacheability of the response; and
c) making a cacheability determination based upon that examination;
d) caching the response based upon that cacheability determination. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
a1. creating a composite set of attributes based upon the individual attributes of the individual parts, the composite attribute set providing a characterization of the cacheability of the response; and
in step b, examining the attribute composite set to determine cacheability of the response.
-
-
28. The computer usable medium of claim 25 wherein, in step c, the cacheability determination comprises a plurality of flags.
-
29. The computer usable medium of claim 28 wherein each request has one or more properties, wherein, in step c, the cacheability determination further comprises at least one flag indicating that the response is cacheable and further comprises at least one flag indicating that the applicability of the response for serving in response to a subsequent request is based upon the one or more properties of the subsequent request.
-
30. The computer usable medium of claim 29 wherein one of the request properties is the identity of the requester, wherein the cacheability determination comprises at least one flag indicating that the response is cacheable and at least one flag indicating that the applicability of the response for serving to subsequent requesters is based upon the subsequent requester identity property.
-
31. The computer usable medium of claim 29 wherein one or more of the request properties is the characteristics of the requestor'"'"'s browser, wherein the cacheability determination comprises at least one flag indicating that the response is cacheable and at least one flag indicating that the applicability of the response for serving to subsequent requesters is based upon the subsequent requestor browser characteristic properties.
-
32. The computer usable medium of claim 29 wherein one of the request properties is the requested language, wherein the cacheability determination comprises at least one flag indicating that the response is cacheable and at least one flag indicating that the applicability of the response for serving in response to subsequent requests is based upon the requested language property of the subsequent request.
-
33. The computer usable medium of claim 28 wherein the cacheability determination further comprises at least one flag indicating that the response is cacheable and at least one flag indicating that the validity of the response for serving to subsequent requests is based upon a determination of whether any of the parts on the one or more sources has been modified since the response was cached.
-
34. The computer usable medium of claim 25 wherein step b further comprises analyzing the attributes to determine whether any of the attributes indicate that response causes important side effects and wherein step c further comprises making a determination that the response is not cacheable if any of the attributes indicate that response causes important side effects.
-
35. The computer usable medium of claim 28 wherein step b further comprises analyzing the attributes to determine whether any of the attributes indicate that the response uses time variant data and wherein, in step c, the cacheability determination comprises at least one flag for indicating that the the response is cacheable and is valid for serving to subsequent requests for a determined length if any of the attributes indicate that response uses time variant data.
-
36. The computer usable medium of claim 25 wherein step c further comprises the step of creating a caching strategy comprising a plurality of flags, and further wherein step d caches the caching strategy flags along with the associated response.
-
37. In a system for receiving requests from requestors and serving responses to those requests, the system having a cache for holding previously served responses for serving to subsequent requests, at least some of the responses comprising dynamic content, a cached response retrieval system for retrieving a cached response comprising:
-
a cache control unit having means for receiving a request and means for determining whether the cache contains a candidate cached response appropriate for that request;
a cached response analyzer for analyzing the candidate cached response, the cached response analyzer determining the validity of the candidate cached response;
whereby the system serves the candidate cached response if the cached response analyzer determines that the candidate cached response is valid, wherein the validity of the candidate of the cache response is determined based on at least one of a time variance setting of dynamic content, a user'"'"'s identity, and a location of dynamic content. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44)
-
-
45. For use in a system for receiving requests from requestors and serving responses to those requests, the system having a cache for holding previously served responses for serving to subsequent requests, at least some of the responses comprising dynamic content, a method for retrieving a cached response comprising the steps of:
-
receiving a request;
determining whether the cache contains a candidate cached response appropriate for that request;
analyzing a candidate cached response; and
determining the validity of the candidate cached response, whereby the system serves the candidate cached response if, during step d, candidate cached response is determined valid, wherein the validity of the candidate of the cache response is determined based on at least one of a time variance setting of dynamic content, a user'"'"'s identity, and a location of dynamic content. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52)
-
-
53. A computer usable medium for use in a computer for receiving requests from requesters and serving responses to those requests the computer having a cache for holding previously served responses for serving to subsequent requests, at least some of the responses comprising dynamic content, the computer usable medium having computer readable program code embodied in the medium for causing the computer to perform method steps for retrieving a cached response comprising the method steps of:
-
a) receiving a request;
b) determining whether the cache contains a candidate cached response 10 appropriate for that request;
c) analyzing a candidate cached response;
d) determining the validity of the candidate cached response, whereby the computer serves the candidate cached response if, during step d, the candidate cached response is determined valid, wherein the validity of the candidate of the cache response is determined based on at least one of a time variance setting of dynamic content, a user'"'"'s identity, and a location of dynamic content; and
e) determining the applicability of the candidate cached response to the requestor. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60)
-
-
61. A system which receives a request from a requestor and serves a response to that request, the response comprising a composite of the one or more parts, at least one of the parts comprising dynamic content, the system comprising:
-
means for receiving a request from a requestor;
a cache for holding previously served cached responses;
a cache control unit for comparing the request against the cached response and for identifying a candidate cached response;
a cached response analyzer for determining whether the candidate cached response should be served to the request;
a response builder for a building response;
a cacheability analyzer for analyzing the built response and determining its cacheability, wherein the cacheability is determined based on at least one of a time variance setting of dynamic content, a user'"'"'s identity, and a location of dynamic content;
means for caching, in the cache, the response based upon that cacheability determination; and
means for serving the response or candidate cached response to the request. - View Dependent Claims (62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72)
whereby the serving means serves the candidate cached response if the cached response analyzer determines that the candidate cached response is both applicable and valid.
-
-
63. The system of claim 62 wherein the request has request properties, one of the request properties being a requester identity, wherein the applicability analyzer determines whether the candidate cached response is applicable for serving to the request based upon the requester identity.
-
64. The system of claim 62 wherein the response builder builds responses from parts from one or more sources, wherein the parts of each candidate cached response each has a last modified date, wherein the cached response analyzer has a validity analyzer for comparing the parts of the candidate cached response last modified dates to the last modified dates of the parts comprising the response on the one or more sources.
-
65. The system of claim 61 wherein cached response comprises caching strategy flags, wherein the cached response analyzer comprises an applicability analyzer for analyzing the caching strategy flags related to the request and a validity analyzer for analyzing the caching strategy flags related to the response.
-
66. The system of claim 61 wherein each part has one or more attributes characterizing the part, the attributes indicating the cacheability of the part, wherein the response builder comprises an attribute analyzer for creating a composite set of attributes based upon the individual attributes of the individual parts, the composite attribute set providing a characterization of the cacheability of the response;
- and further wherein the cacheability analyzer examines the attribute composite set to determine cacheability of the response.
-
67. The system of claim 61 wherein the cacheability analyzer creates a caching strategy comprising a plurality of flags.
-
68. The system of claim 67 wherein each request has one or more properties, wherein the caching strategy comprises at least one flag indicating that the response is cacheable and at least one flag indicating that the applicability of the response for serving to subsequent requests is based upon the one or more properties of the subsequent request.
-
69. The system of claim 67 wherein the caching strategy comprises at least one flag indicating that the response is cacheable but its validity is based upon whether any of the parts on the one or more sources has been modified since the response has been cached.
-
70. The system of claim 61 wherein the cacheability analyzer analyzes the attributes to determine whether any of the attributes indicate that the response causes important side effects and makes a determination that the response is not cacheable if any of the attributes indicate that the response causes important side effects.
-
71. The system of claim 61 wherein the cacheability analyzer analyzes the attributes to determine whether any of the attributes indicate that the response uses time variant data and makes a determination that the response is only cacheable for a determined length of time if any of the attributes indicate that the response uses time variant data.
-
72. The system of claim 61 wherein the cacheability analyzer further comprises means for creating a caching strategy comprising a plurality of flags, and further wherein the means for caching caches the caching strategy flags along with the associated response.
-
73. A method for use in a system which receives a request from a requestor and serves a response to that request, the response comprising a composite of the one or more parts, at least one of the parts comprising dynamic content, the system having a cache for holding previously served cached responses, each of the cached responses having an address, the method comprising the steps of:
-
a) receiving a request from a requestor;
b) comparing the request against the cached response and for identifying a candidate cached response;
c) determining whether the candidate cached response should be served to the request;
d) if so, serving the cached response;
e) if not, building a new response to the request;
f) analyzing the built response and determining its cacheability, wherein the cacheability is determined based on at least one of a time variance setting of dynamic content, a user'"'"'s identity, and a location of dynamic content;
g) caching, in the cache, the response based upon that cacheability determination; and
h) serving the response or candidate cached response to the request. - View Dependent Claims (74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 87)
-
-
84. A computer usable medium for use in a computer which receives a request from a requester and serves a response to that request, the response comprising a composite of the one or more parts, at least one of the parts comprising dynamic content, the computer having a cache for holding previously served cached responses, each of the cached responses having an address, the computer usable medium having computer readable program code embodied in the medium for causing the computer to perform method steps of:
-
a) receiving a request from a requestor;
b) comparing the request against the cached response and for identifying a candidate cached response;
c) determining whether the candidate cached response should be served to the request;
d) if so, serving the cached response;
e) if not, building a new response to the request;
f) analyzing the built response and determining its cacheability, wherein the cacheability is determined based on at least one of a time variance setting of dynamic content, a user'"'"'s identity, and a location of dynamic content;
g) caching, in the cache, the response based upon that cacheability determination; and
h) serving the response or candidate cached response to the request. - View Dependent Claims (85, 86, 88, 89, 90, 91, 92, 93, 94)
-
Specification