IP Library Granted Patent US 7,574,500
Granted Patent B2
US 7,574,500 · App. 11/355,193 · Granted Aug 11, 2009

Establishing a cache expiration time to be associated with newly generated output by determining module- specific cache expiration times for a plurality of processing modules

Assignee: Reactivity, Inc.
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,574,500
App. No.
11/355,193
Granted
Aug 11, 2009
Kind
B2
Abstract

Providing an input-dependent output is disclosed. A received message is processed to determine if a previously cached output exists for the received message. If a previously cached output is found, the previously cached output is provided to a destination other than the sender of the received message as output for the received message.

Claims (37)

1. A method for providing an input-dependent output comprising:

processing, at a processor, a received message to determine if a previously cached output exists for the received message;

if the previously cached output is found, providing the previously cached output to a destination other than a sender of the received message as output for the received message; and

processing the received message to produce a newly-generated output if the previously cached output is not found and establishing a cache expiration time for the newly generated output, wherein

said processing the received message to produce a newly-generated output includes processing the received message using a plurality of processing modules, and said establishing the cache expiration time includes determining, for each processing module of said plurality of processing modules, a module-specific cache expiration time to be associated with the newly generated output based at least in part on the processing performed by a corresponding processing module.

2. A method as recited in claim 1 , wherein processing a received message to determine if a previously cached output exists for the received message includes determining if a currently valid previously cached output exists for the received message.

3. A method as recited in claim 2 , wherein determining if a currently valid previously cached output exists for the received message includes determining whether an expiration time associated with a previously cached output for the received message has passed.

4. A method as recited in claim 1 , further comprising processing the received message to produce a newly-generated output if a previously cached output is not found.

5. A method as recited in claim 4 , wherein the newly-generated output is provided as output for the received message.

6. A method as recited in claim 4 , wherein the newly-generated output is cached.

7. A method as recited in claim 1 , further comprising processing the received message, if a previously cached output is not found, to produce a newly generated output based at least in part on data associated with the received message and caching the newly generated output if a subsequent iteration of said processing performed on said data would produce a subsequent output that is the same as the newly generated output.

8. A method as recited in claim 1 , wherein the received message includes data and further comprising processing the received message, if a previously cached output is not found, to produce a newly generated output and caching a portion of the newly generated output, the portion being determined based at least in part on at least a portion of the data, if a subsequent iteration of the processing that generated said portion of the newly generated output would produce a subsequent output in which a corresponding portion of the subsequent output is the same as said portion of the newly generated output.

9. A method as recited in claim 1 , further comprising caching the newly-generated output if a non-zero cache expiration time is established for the newly generated output.

10. A method as recited in claim 1 , wherein the cache expiration time established for the newly generated output is the shortest of the module-specific cache expiration times for the newly generated output.

11. A method as recited in claim 1 , wherein the received message comprises a currently received message and the cached output is based at least in part on processing performed on data included in a previously received message.

12. A method as recited in claim 11 , wherein the processing performed on data included in the previously received message includes at least one of: an operation on said data, an analysis of said data, and a transformation of said data.

13. A method as recited in claim 11 , wherein the data included in the previously received message is the same as corresponding data included in the currently received message.

14. A method as recited in claim 11 , wherein the data included in the previously received message comprises at least in part data from a body or payload portion of the previously received message.

15. A method as recited in claim 11 , wherein the data included in the previously received message comprises at least in part application layer data.

16. A method as recited in claim 1 , wherein the cache is indexed by a received message identifier.

17. A method as recited in claim 1 , wherein each cached output includes a processed message, an associated received message identifier, and an expiration time.

18. A method as recited in claim 1 , further comprising evicting an entry from the cache if the cache is full.

19. A method as recited in claim 1 , further comprising generating a message identifier of the received message.

20. A system for providing an input-dependent output comprising:

a processor configured to receive a message, determine if a previously cached output exists for the received message, and provide the previously cached output to a destination other than a sender of the received message as output for the received message if the previously cached output is found, process the received message to produce a newly-generated output if the previously cached output is not found and establish a cache expiration time for the newly generated output, wherein said processing the received message to produce the newly-generated output includes processing the received message using a plurality of processing modules, and said establishing the cache expiration time includes determining, for each processing module of said plurality of processing modules, a module-specific cache expiration time to be associated with the newly generated output based at least in part on the processing performed by a corresponding processing module; and

a communication interface coupled to the processor and configured to send the previously cached output or the newly-generated output for the received message to the destination other than the sender.

21. A system as recited in claim 20 , wherein the processor is configured to determine if a previously cached output exists for the received message including by determining if a currently valid previously cached output exists for the received message.

22. A system as recited in claim 20 , wherein the processor is further configured to produce a newly generated output, if a previously cached output is not found, based at least in part on data associated with the received message and cache the newly generated output if a subsequent iteration of said processing performed on said data would produce a subsequent output that is the same as the newly generated output.

23. A system as recited in claim 20 , wherein the processor is further configured to cache the newly-generated output if a non-zero cache expiration time is established for the newly generated output.

24. A computer program product for providing an input-dependant output, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:

processing a received message to determine if a previously cached output exists for the received message;

if the previously cached output is found, providing the previously cached output to a destination other than the sender of the received message as output for the received message; and

processing the received message to produce a newly-generated output if the previously cached output is not found and establishing a cache expiration time for the newly generated output,

wherein said processing the received message to produce a newly-generated output includes processing the received message using a plurality of processing modules, and establishing the cache expiration time includes determining, for each processing module of said plurality of processing modules, a module-specific cache expiration time to be associated with the newly generated output based at least in part on the processing performed by a corresponding processing module.

25. A computer program product as recited in claim 24 , wherein processing a received message to determine if a previously cached output exists for the received message includes determining if a currently valid previously cached output exists for the received message.

26. A computer program product as recited in claim 24 , further comprising computer instructions for processing the received message, if a previously cached output is not found, to produce a newly generated output based at least in part on data associated with the received message and caching the newly generated output if a subsequent iteration of said processing performed on said data would produce a subsequent output that is the same as the newly generated output.

27. A computer program product as recited in claim 24 , further comprising computer instructions for caching the newly-generated output if a non-zero cache expiration time is established for the newly generated output.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2012
From: REACTIVITY LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 028628/0059 →
CHANGE OF NAME Recorded Jul 24, 2012
From: REACTIVITY, INC.
To: REACTIVITY LLC
Reel/Frame 028629/0547 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2006
From: RODDY, BRIAN
To: REACTIVITY, INC.
Reel/Frame 017565/0304 →
Continuity (2)
Provisional Application 6065306400 · Feb 14, 2005
Related Publication 20060184656A1 · Aug 17, 2006