IP Library Granted Patent US 7,752,394
Granted Patent B1
US 7,752,394 · App. 11/701,193 · Granted Jul 6, 2010

Method and system for an extensible caching framework

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,752,394
App. No.
11/701,193
Granted
Jul 6, 2010
Kind
B1
Abstract

Systems and methods which provide an extensible caching framework are disclosed. These systems and methods may provide a caching framework which can evaluate individual parameters of a request for a particular piece of content. Modules capable of evaluating individual parameters of an incoming request may be added and removed from this framework. When a request for content is received, parameters of the request can be evaluated by the framework and a cache searched for responsive content based upon this evaluation. If responsive content is not found in the cache, responsive content can be generated and stored in the cache along with associated metadata and a signature formed by the caching framework. This signature may aid in locating this content when a request for similar content is next received.

Claims (38)

1. A method for caching, comprising:

registering a first software module with an extensible caching framework residing on a server computer, the extensible caching framework allowing insertion and removal of one or more software modules designed to evaluate impact of a plurality of parameters associated with requests for content, wherein the first software module is responsible for evaluating a first parameter of the plurality of parameters;

receiving, at the server computer, a request for content from a client computer connected to the server computer;

parsing, by the extensible caching framework, information from the request for content with respect to the first parameter for which the first software module is responsible;

passing the parsed information from the extensible caching framework to the first software module for evaluation of the first parameter;

creating, by the extensible caching framework, a cache file name using data returned by the first software module based on the evaluation of the first parameter by the first software module;

searching for responsive content in a cache using the cache file name created by the extensible caching framework utilizing the data returned by the first software module, wherein if the responsive content is not found in the cache, the extensible caching framework passes the request for content received from the client computer to an application server computer connected to the server computer for dynamic evaluation and content generation and the extensible caching framework stores the responsive content dynamically generated by the application server computer in the cache; and

delivering the responsive content from the server computer to the client computer, wherein the responsive content is responsive to the request for content received from the client computer.

2. The method of claim 1 , further comprising passing a set of configuration variables from the first software module to the extensible caching framework, wherein the set of configuration variables include an interface method for the extensible caching framework to interface with the first software module.

3. The method of claim 1 , further comprising registering a template, wherein the template comprises metadata pertinent to a piece of content or application server.

4. The method of claim 3 , further comprising associating the request for content received from the client computer with the template.

5. The method of claim 4 , wherein the first parameter is defined by the template.

6. The method of claim 5 , further comprising

extracting request data related to the first parameter from the request for content received from the client computer; and

passing the request data to the first software module.

7. The method of claim 6 , wherein the first parameter is a query string variable, a client locale, a cookie variable, form data, a Java bean, or a user defined parameter.

8. The method of claim 1 , wherein searching for responsive content in the cache using the cache file name further comprises comparing the cache file name to a hash table of the cache.

9. The method of claim 1 , wherein the first parameter and the first software module pertain to capabilities of a browser initiating the request.

10. The method of claim 9 , wherein the first parameter is a user-agent string extracted from a header in the request for content received from the client computer.

11. The method of claim 10 , wherein the first software module evaluates the capabilities of the browser using an extensible markup language file.

12. The method of claim 11 , wherein the extensible markup language file defines a list of rules which map the user-agent string to a list of browser capabilities.

13. The method of claim 12 , wherein the list of rules is expandable.

14. The method of claim 1 , further comprising storing template metadata and request metadata in the cache, wherein the template metadata and request metadata are associated with the responsive content.

15. The method of claim 14 , wherein the request metadata is formed from the first software module's evaluation.

16. The method of claim 15 , wherein the request metadata is a list or a hash table.

17. The method of claim 1 , further comprising removing the first software module from the extensible caching framework.

18. A computer program product comprising one or more computer readable storage media storing computer executable instructions translatable by a processor for:

registering a first software module with an extensible caching framework residing on a server computer, the extensible caching framework allowing insertion and removal of one or more software modules designed to evaluate impact of a plurality of parameters associated with requests for content, wherein the first software module is responsible for evaluating a first parameter of the plurality of parameters;

receiving, at the server computer, a request for content from a client computer connected to the server computer;

parsing information from the request for content with respect to the first parameter for which the first software module is responsible;

passing the parsed information to the first software module for evaluation of the first parameter;

creating a cache file name using data returned by the first software module based on the evaluation of the first parameter by the first software module;

searching for responsive content in a cache using the cache file name created utilizing the data returned by the first software module;

if the responsive content is not found in the cache, passing the request for content received from the client computer to an application server computer connection to the server computer for dynamic evaluation and content generation and storing the responsive content dynamically generated by the application server computer in the cache; and

delivering the responsive content from the server computer to the client computer, wherein the responsive content is responsive to the request for content received from the client computer.

19. The program product of claim 18 , further comprising computer executable instructions translatable for passing a set of configuration variables from the first software module to the extensible caching framework, wherein the set of configuration variables include an interface method for the extensible caching framework to interface with the first software module.

20. The program product of claim 18 , further comprising computer executable instructions translatable for returning a status from the first software module to the extensible caching framework, wherein the status indicates whether the extensible caching framework is to map the request to a cache file or the request is subject to dynamic evaluation.

21. The program product of claim 18 , further comprising computer executable instructions translatable for removing the first software module from the extensible caching framework.

Assignments (11)
IP BUSINESS SALE AGREEMENT Recorded Sep 13, 2016
From: OPEN TEXT S.A.
To: OT IP SUB, LLC
Reel/Frame 040019/0627 →
CERTIFICATE OF AMALGAMATION Recorded Sep 13, 2016
From: IP OT SUB ULC
To: OPEN TEXT SA ULC
Reel/Frame 040019/0578 →
CERTIFICATE OF CONTINUANCE Recorded Sep 13, 2016
From: OP IP SUB, LLC
To: IP OT SUB ULC
Reel/Frame 040019/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2011
From: VIGNETTE PARTNERSHIP, LP
To: OPEN TEXT S.A.
Reel/Frame 027483/0205 →
CERTIFICATE OF CONVERSION Recorded Oct 14, 2011
From: VIGNETTE OPERATING, LLC
To: VIGNETTE PARTNERSHIP, LP
Reel/Frame 027066/0773 →
CERTIFICATE OF CONVERSION Recorded Oct 13, 2011
From: VIGNETTE CORPORATION
To: VIGNETTE OPERATING, LLC
Reel/Frame 027091/0009 →
MERGER Recorded Oct 12, 2011
From: VIGNETTE SOFTWARE, LLC
To: VIGNETTE CORPORATION
Reel/Frame 027077/0423 →
INTELLECTUAL PROPERTY PURCHASE AGREEMENT Recorded Jan 14, 2010
From: VIGNETTE LLC (96%)
To: VIGNETTE SOFTWARE LLC
Reel/Frame 023792/0470 →
INTELLECTUAL PROPERTY PURCHASE AGREEMENT Recorded Jan 11, 2010
From: VIGNETTE CORPORATION (96%)
To: VIGNETTE LLC
Reel/Frame 024006/0001 →
INTELLECTUAL PROPERTY PURCHASE AGREEMENT Recorded Jan 11, 2010
From: VIGNETTE CORPORATION (4%)
To: VIGNETTE SOFTWARE LLC
Reel/Frame 023768/0708 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2009
From: RAJKUMAR, N. ISAAC; YOU, PUHONG; CALDWELL, DAVID DEAN; LARSEN, BRETT J.; AFSHAR, JAMSHID; O'CONNELL, CONLETH
To: VIGNETTE CORPORATION
Reel/Frame 022202/0351 →