IP Library Granted Patent US 8,312,222
Granted Patent B1
US 8,312,222 · App. 12/208,934 · Granted Nov 13, 2012

Event-driven regeneration of pages for web-based applications

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 8,312,222
App. No.
12/208,934
Granted
Nov 13, 2012
Kind
B1
Abstract

Systems and methods for invalidating and regenerating pages. In one embodiment, a method can include detecting content changes in a content database including various objects. The method can include causing an invalidation generator to generate an invalidation based on the modification and communicating the invalidation to a dependency manager. A cache manager can be notified that pages in a cache might be invalidated based on the modification via a page invalidation notice. In one embodiment, a method can include receiving a page invalidation notice and sending a page regeneration request to a page generator. The method can include regenerating the cached page. The method can include forwarding the regenerated page to the cache manager replacing the cached page with the regenerated page. In one embodiment, a method can include invalidating a cached page based on a content modification and regenerating pages which might depend on the modified content.

Claims (57)

1. A system for invalidating and regenerating cached pages, the system comprising:

a processor; and

a computer readable storage medium in communication with the processor and carrying instructions which when executed by the processor cause the processor to:

detect a content change in a content database accessible by a content manager, the content manager being communicatively connected to an invalidation generator, wherein the content change comprises a modification to one or more objects stored in the content database;

cause the invalidation generator to generate one or more invalidations based on the modification to the one or more objects stored in the content database;

communicate the one or more invalidations to a dependency manager, wherein the dependency manager and the content manager reside on one or more computers in a network environment;

based on the one or more invalidations, generate one or more page invalidation notices to notify a cache manager that one or more pages stored in a page cache managed by the cache manager have been invalidated based on a dependency hierarchy associated with the one or more objects whose modification has been detected, wherein the generating is performed by the dependency manager, the dependency manager being communicatively connected to the cache manager;

forward the one or more page invalidation notices from the dependency manager to the cache manager;

based on the one or more page invalidation notices, determine if any cached page is subject to regeneration;

send a page regeneration request to a page generator to regenerate a cached page;

regenerate the cached page with the modified one or more objects;

forward the regenerated page to the cache manager; and

replace the cached page with the regenerated page in the page cache managed by the cache manager.

2. The system of claim 1 , wherein the cached page is dependent upon at least one object.

3. The system of claim 2 wherein a dependency or dependencies between the cached page and the at least one object are stored in a dependency database accessible by the dependency manager.

4. The system of claim 1 wherein the instructions further cause the processor to store one or more dependencies discovered during the regenerating step.

5. The system of claim 1 wherein the instructions which cause the processor to regenerate the cached page with the modified one or more objects further cause the processor to discover one or more dependencies.

6. The system of claim 5 wherein each of the one or more dependencies comprises a first reference to the cached page and a second reference to at least one object.

7. A method for invalidating cached pages, comprising:

at a computer implementing an invalidation generator, detecting a content change in a content database accessible by a content manager, the content manager being communicatively connected to the invalidation generator, wherein the content change comprises a modification to one or more objects stored in the content database;

in response to the modification to the one or more objects, causing the invalidation generator to generate one or more invalidations based on the modification to the one or more objects stored in the content database;

communicating the one or more invalidations from the invalidation generator to a dependency manager, wherein the dependency manager and the content manager reside on one or more computers in a network environment;

determining that one or more pages stored in a page cache managed by a cache manager have been invalidated based on a dependency hierarchy associated with the one or more objects whose modification has been detected, wherein the determining is performed by the dependency manager, the dependency manager being communicatively connected to the cache manager;

generating one or more page invalidation notices for the one or more pages, wherein the generating is performed by the dependency manager; and

forwarding the one or more page invalidation notices from the dependency manager to the cache manager.

8. The method of claim 7 further comprises determining whether a cached page stored in the page cache is affected by the modification to the one or more objects stored in the content database.

9. The method of claim 8 , wherein the cached page is dependent upon at least one object.

10. The method of claim 9 wherein the dependency or dependencies between the cached page and the at least one object are stored in a dependency database accessible by the dependency manager.

11. The method of claim 7 further comprising:

causing the invalidation generator to generate an additional invalidation based on another modification to the one or more objects stored in the content database;

communicating the additional invalidation to the dependency manager;

generating another invalidation notice to notify the cache manager that one or more pages stored in the page cache have been invalidated based on the dependency or dependencies to the one or more objects whose modification has been detected; and

forwarding the additional page invalidation notice to the cache manager wherein an overlapping modification has occurred.

12. A method of claim 7 , further comprising regenerating a cached page, the regenerating comprising:

receiving a page invalidation notice that the cached page has been invalidated based on the dependency hierarchy associated with the one or more objects whose modification has been detected;

sending a page regeneration request to a page generator;

regenerating the cached page with the modified one or more objects;

forwarding the regenerated page to the cache manager; and

replacing the cached page with the regenerated page in the page cache managed by the cache manager.

13. The method of claim 12 further comprising storing one or more dependencies discovered during the regenerating step.

14. The method of claim 12 wherein regenerating the cached page with the modified one or more objects comprises discovering one or more dependencies.

15. The method of claim 14 wherein each of the one or more dependencies comprises a first reference to the cached page and a second reference to at least one object.

16. A computer program product comprising at least one non-transitory computer readable medium storing instructions translatable by at least one processor to perform:

detecting a content change in a content database accessible by a content manager, the content manager being communicatively connected to an invalidation generator, wherein the content change comprises a modification to one or more objects stored in the content database;

causing the invalidation generator to generate one or more invalidations based on the modification to the one or more objects stored in the content database;

communicating the one or more invalidations to a dependency manager, wherein the dependency manager and the content manager reside on one or more computers in a network environment;

generating one or more page invalidation notices to notify a cache manager that one or more pages stored in a page cache managed by the cache manager have been invalidated based on a dependency hierarchy associated with the one or more objects whose modification has been detected, wherein the generating is performed by the dependency manager, the dependency manager being communicatively connected to the cache manager; and

forwarding the one or more page invalidation notices from the dependency manager to the cache manager.

17. The computer program product of claim 16 , wherein the instructions are further translatable by the at least one processor to perform:

determining whether a cached page stored in the page cache is affected by the modification to the one or more objects stored in the content database.

18. The computer program product of claim 17 , wherein the cached page is dependent upon at least one object.

19. The computer program product of claim 18 wherein a dependency or dependencies between the cached page and the at least one object are stored in a dependency database accessible by the dependency manager.

20. The computer program product of claim 16 , wherein the instructions are further translatable by the at least one processor to perform:

causing the invalidation generator to generate an additional invalidation based on another modification to the one or more objects stored in the content database;

communicating the additional invalidation to the dependency manager;

generating another invalidation notice to notify the cache manager that one or more pages stored in the page cache have been invalidated based on a dependency or dependencies to the one or more objects whose modification has been detected; and

forwarding the additional page invalidation notice to the cache manager wherein an overlapping modification has occurred.

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 Sep 30, 2008
From: MARTIN, JOHN H.; HELGREN, MATTHEW; FUNG, KIN-CHUNG; SCHEEVEL, MARK R.
To: VIGNETTE CORPORATION
Reel/Frame 021610/0575 →