IP Library Granted Patent US 7,159,014
Granted Patent B2
US 7,159,014 · App. 09/998,173 · Granted Jan 2, 2007

Method and system for efficient and automated version management of embedded objects in web documents

Assignee: Fineground Networks
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,159,014
App. No.
09/998,173
Granted
Jan 2, 2007
Kind
B2
Abstract

A proxy implements automated version management of objects embedded in a document to eliminate/reduce network delays associated with requests to validate the objects in a browser (or other) cache. In an exemplary embodiment, the proxy obtains the document, assigns a unique URL to an embedded object, assigns an extended cache life to the object (via a header), updates the object's URL reference in the document, and sends the modified document to the user. When the user requests the object, the proxy obtains the object, attaches the new header, and transmits the object to the user. Because of its extended cache life, the object can subsequently be reused without time-consuming validation with the content server. In another embodiment, storage and validation of objects at the proxy (rather than at the cache) achieves reduced (and faster) validation while allowing refreshing prior to expiration.

Claims (80)

1. A method for operating a proxy disposed between a user and a document accessible to said user over a computer network, comprising:

obtaining an electronic document identifiable by a network address of said document, including one or more references to one or more embedded objects, each said one or more embedded objects being identifiable by a preexisting network address therefor;

for at least one of said one or more embedded objects, facilitating storage and re-use thereof from a cache accessible to said user, without requiring user validation of said one or more embedded objects upon said re-use, by specifying a new network address uniquely identifying said one or more embedded objects, and specifying cacheability information for said one or more embedded objects;

modifying said documents by replacing said preexisting address for said one or more embedded objects with said new network address;

transmitting said modified document to said user;

receiving a user request for at least one of said embedded objects; and in response to said request:

transmitting said cacheability information to said requesting user;

evaluating the validity of said requested object, using information from said user request; and

transmitting an outcome of said validity evaluation to said requesting user.

2. The method of claim 1 where said proxy is implemented as an intermediary server located between a computer of said user and a server of said document.

3. The method of claim 1 where said new network address has at least a portion in common with said preexisting network address.

4. The method of claim 1 where modifying said cacheability information includes extending a long expiry date.

5. The method of claim 1 where modifying said cacheability information includes modifying a long maxage parameter.

6. The method of claim 1 where said cacheability information includes a relatively recent last modified date.

7. The method of claim 1 where said cacheability information includes how long said embedded object can be cached without revalidation.

8. The method of claim 1 where said proxy is co-located at a server of said document.

9. The method of claim 8 where said document is dynamically generated at said server.

10. The method of claim 9 where said dynamic generation includes executing a programmatic description of said document in conjunction with data for at least one variable in said programmatic description.

11. The method of claim 1 further comprising storing said one or more embedded objects at said proxy for later use.

12. The method of claim 1 further comprising refreshing said one or more embedded objects using condensation techniques.

13. The method of claim 1 , where transmitting said cacheability information to said requesting user, evaluating the validity of said requested object, and transmitting the outcome of said validity evaluation to said requesting user include:

determining said preexisting network address for said embedded object;

fetching said embedded object from said preexisting network address;

replacing said cacheability information in said embedded object; and

forwarding said embedded object in response to said request.

14. The method of claim 1 , wherein evaluating the validity of said requested object includes validating said embedded object against a content server.

15. The method of claim 1 , wherein transmitting the outcome of said validity evaluation to said requesting user includes instructing said user to use a copy of said embedded object accessible to said user.

16. The method of claim 1 , further comprising transmitting to said user a version of said embedded object.

17. A computer-readable medium comprising program logic instructions for operating a proxy disposed between a user and a document accessible to said user over a computer network, in order to facilitate re-use of objects within said document from a cache without requiring user validation of said objects upon re-use, said instruction when executed:

obtaining an electronic document identifiable by a network address of said document, including one or more references to one or more embedded objects, each said one or more embedded objects being identifiable by a preexisting network address therefor;

for at least one of said one or more embedded objects facilitating storage and re-use thereof from a cache accessible to said user, without requiring user validation of said one or more embedded objects upon said re-use, by specifying a new network address uniquely identifying said one or more embedded objects, and specifying cacheability information for said one or more embedded objects;

modifying said document by replacing said preexisting address for said one or more embedded objects with said new network address;

transmitting said modified document to said user;

receiving a user request for at least one of said embedded objects; and in response to said request:

transmitting said cacheability information to said requesting user;

evaluating the validity of said requested object, using information from said user request; and

transmitting an outcome of said validity evaluation to said requesting user.

18. The computer-readable medium of claim 17 where said new network address has at least a portion in common with said preexisting network address.

19. A device configured to facilitate re-use of objects within said document from a cache comprising:

resources for obtaining an electronic document identifiable by a network address of said document, including one or more references to one or more embedded objects, each said one or more embedded objects being identifiable by a preexisting network address therefor;

resources for facilitating storage and re-use of at least one of said one or more embedded objects, from a cache accessible to said user, without requiring validation of said one or more embedded objects upon said re-use, by specifying a new network address uniquely identifying

said one or more embedded objects, and specifying cacheability information for said one or more embedded objects; resources for modifying said document by replacing said preexisting address for said one or more objects with said new network address;

resources for transmitting said modified document to said user;

resources for receiving a user request for at least one of said embedded objects;

resources for transmitting said cacheability information to said requesting user; and

resources for evaluating the validity of said requested object, using information from said user request.

20. The device of claim 19 , further comprising:

resources for transmitting an outcome of said validity evaluation to said requesting user.

21. The device of claim 19 where the device is implemented as an intermediary server located between a computer of said user and a server of said document.

22. The device of claim 19 where said new network address has at least a portion in common with said preexisting network address.

23. A method for operating a proxy disposed between a user and a document accessible to said user over a computer network, in order to facilitate re-use of objects within said document from a cache instead of necessarily requiring downloading said objects upon each use, comprising:

obtaining an electronic document identifiable by a network address of said document, including one or more references to one or more embedded objects, each said one or more embedded objects being identifiable by a network address therefor;

for at least one of said one or more embedded objects, facilitating storage and re-use thereof from a cache accessible to said user, without requesting said one or more embedded objects upon said use, by specifying cacheability information for said one or more embedded objects that permits caching thereof, including an entity tag uniquely identifying said one or more embedded objects, and specifying a required validation of said one or more embedded objects;

transmitting said modified document to said user;

receiving a user request for at least one of said embedded objects; and in response to said request:

transmitting said cacheability information to said requesting user;

evaluating the validity of said requested object, using information from said user request; and

transmitting an outcome of said validity evaluation to said requesting user.

24. The method of claim 23 wherein:

said validity evaluation does not indicate invalidity; and

further comprising instructing said user to use a copy of said embedded object accessible to said user.

25. The method of claim 23 , where:

said validity evaluation indicates invalidity; and

further comprising transmitting to said user a version of said embedded object.

26. A method of managing content delivery comprising:

at a content server proxy, receiving a content request from a user for content provided by a content server;

receiving the content transmitted from the content server to the content server proxy;

dynamically processing the content with the content server proxy, wherein dynamically processing the content comprises,

reassigning a resource locator for an embedded object of the content to a modified resource locator which includes a header having validity data for the embedded object,

modifying the validity data to include a future date, and

modifying each reference to the embedded object contained in the content to the modified resource locator; and

transmitting the dynamically processing the content to the user.

27. The method of claim 26 wherein dynamically processing the content further comprises setting a last modified date of the header for the embedded object.

28. A method of managing content delivery comprising:

at a content server proxy, receiving a content request from a user for content provided by a content server;

receiving the content transmitted from the content server to the content server proxy, wherein the content has an associated resource locator with a header specifying cache control information for the content, the cache control information comprising an expiration date, a last modified date and a cache control field indicating if the content can be cached;

dynamically processing the content with the content server proxy, wherein dynamically processing the content comprises

modifying the header expiration date to a future date,

modifying the header last modified date to a date corresponding to a current date, and

modifying the header cache control field to allow caching of the content; and transmitting the dynamically processing the content to the user.

Assignments (4)
CHANGE OF NAME Recorded Sep 2, 2009
From: FINEGROUND NETWORKS, INC.
To: FINEGROUND NETWORKS LLC
Reel/Frame 023180/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2009
From: FINEGROUND NETWORKS LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 023180/0327 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME, PREVIOUSLY RECORDED ON REEL 012661 FRAME 0083. Recorded May 7, 2009
From: KAUSIK, BALAS NATARAJAN; JAWAHAR, JANARDHANAN
To: FINEGROUND NETWORKS, INC.
Reel/Frame 022659/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2002
From: KAUSIK, BALAS NATARAJAN; JAWAHAR, JANARDHANAN
To: FINEGROUND NETWORKS
Reel/Frame 012661/0083 →
Continuity (2)
Provisional Application 6029592200 · Jun 4, 2001
Related Publication 20020194382A1 · Dec 19, 2002