Caching dynamic content
First Claim
1. A system for caching dynamically generated content, comprising:
- means for setting input properties of an object using input data values;
means for executing a method of the object, after setting the input properties, thereby setting output properties of the object; and
means for caching the object in a cache after executing the method and setting the output properties, wherein the input properties and the input data values are used to create a key to identify the object in the cache, thereby automatically distinguishing among versions of the object which result from executing the method using different input data values.
3 Assignments
0 Petitions
Accused Products
Abstract
A method, system, and computer program product for caching dynamically generated content (including, but not limited to, dynamically generated Web pages), as well as determining when the cached content should be invalidated or purged. Rather than caching the generated datastream (i.e. the end result of the computations used in the dynamic generation process) as in the prior art, the interim results of computations (such as a generated bean instance or object, where the interim results may be stored using properties and methods) are cached according to the present invention. The input properties used to generate the bean or object, along with the input property values, are used to distinguish among cached instances and thereby identify when a cached instance may be used to respond to a subsequent request for the same content. Re-execution of the business logic of the bean or object may then be avoided, using the cached bean'"'"'s or object'"'"'s output properties to generate the content response. Application-specific, developer-defined criteria may be used in the cache invalidation determination.
542 Citations
51 Claims
-
1. A system for caching dynamically generated content, comprising:
-
means for setting input properties of an object using input data values;
means for executing a method of the object, after setting the input properties, thereby setting output properties of the object; and
means for caching the object in a cache after executing the method and setting the output properties, wherein the input properties and the input data values are used to create a key to identify the object in the cache, thereby automatically distinguishing among versions of the object which result from executing the method using different input data values. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
means for receiving a request for output properties of a particular object;
means for creating a key for the particular object using the input properties and the input data values which are applicable for those input properties when the request is received; and
means for using the key created for the particular object to determine whether the particular object is already available in the cache, and if so, returning, to an issuer of the request, the output properties from the cached particular object.
-
-
16. The system according to claim 1, further comprising:
-
means for checking the cache, responsive to receiving a request for the output properties of a particular object, to see if an already-cached version thereof is available;
means for handling a positive result of the means for checking, further comprising;
means for returning, to an issuer of the request, the output properties from the already-cached version of the object; and
means for handling a negative result of the means for checking, further comprising;
means for activating operation of the means for setting input properties, the means for executing the method, and the means for caching, thereby creating a newly-cached version of the particular object; and
means for returning, to the issuer of the request, the output properties from the newly-cached version of the object.
-
-
17. The system according to claim 16, wherein the means for checking the cache further comprises means for generating the key for the particular object by sorting the input properties by property name, and concatenating the value of each input property to its sorted property name, wherein individual ones of the concatenated property name, value pairs are separated from one another with appropriate separators.
-
18. A method of caching dynamically generated content, comprising steps of:
-
setting input properties of an object using input data values;
executing a method of the object, after setting the input properties, thereby setting output properties of the object; and
caching the object in a cache after executing the method and setting the output properties, wherein the input properties and the input data values are used to create a key to identify the object in the cache, thereby automatically distinguishing among versions of the object which result from executing the method different input data values. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
receiving a request for output properties of a particular object;
creating a key for the particular object using the input properties and the input data values which are applicable for those input properties when the request is received; and
using the key created for the particular object to determine whether the particular object is already available in the cache, and if so, returning, to an issuer of the request, the output properties from the cached particular object.
-
-
33. The method according to claim 18, further comprising the steps of:
-
checking the cache, responsive to receiving a request for the output properties of a particular object, to see if an already-cached version thereof is available;
handling a positive result of the checking step, further comprising the step of;
returning, to an issuer of the request, the output properties from the already-cached version of the object; and
handling a negative result of the checking step, further comprising the steps of;
activating operation of the setting input properties step, the executing the method step, and the caching step, thereby creating a newly-cached version of the particular object; and
returning, to the issuer of the request, the output properties from the newly-cached version of the object.
-
-
34. The method according to claim 33, wherein the step of checking the cache further comprises the step of generating the key for the particular object by sorting the input properties by property name, and concatenating the value of each input property to its sorted property name, wherein individual ones of the concatenated property name, value pairs are separated from one another with appropriate separators.
-
35. A computer program product for caching dynamically generated content, the computer program product embodied on one or more computer-readable media and comprising:
-
computer-readable program code means for setting input properties of an object using input data values;
computer-readable program code means for executing a method of the object, after setting the input properties, thereby setting output properties of the object; and
computer-readable program code means for caching the object in a cache after executing the method and setting the output properties, wherein the input properties and the input data values are used to create a key to identify the object in the cache, thereby automatically distinguishing among versions of the object which result from executing the method using different input data values. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
computer-readable program code means for receiving a request for output properties of a particular object;
computer-readable program code means for creating a key for the particular object using the input properties and the input data values which are applicable for those input properties when the request is received; and
computer-readable program code means for using the key created for the particular object to determine whether the particular object is already available in the cache, and if so, returning, to an issuer of the request, the output properties from the cached particular object.
-
-
50. The computer program product according to claim 35, further comprising:
-
computer-readable program code mean for checking the cache, responsive to receiving a request for the output properties of a particular object, to see if an already-cached version thereof is available;
computer-readable program code means for handling a positive result of the computer-readable program code means for checking, further comprising;
computer-readable program code means for returning, to an issuer of the request, the output properties from the already-cached version of the object; and
computer-readable program code means for handing a negative result of the computer-readable program code means for checking, further comprising;
computer-readable program code means for activating operation of the computer-readable program code means for setting input properties, the computer-readable program code means for executing the method, and the computer-readable program code means for caching, thereby creating a newly-cached version of the particular object; and
computer-readable program code means for returning, to the issuer of the request, the output properties from the newly-cached version of the object.
-
-
51. The computer program product according to claim 50, wherein the computer-readable program code means for checking the cache further comprises computer-readable program code means for generating the key for the particular object by sorting the input properties by property name, and concatenating said the value of each input property to its sorted property name, wherein individual ones of the concatenated property name, value pairs are separated from one another with appropriate separators.
Specification