Method and apparatus for forwarding requests in a cache hierarchy based on user-defined forwarding rules
First Claim
1. A caching device to operate as an intermediary node on a network, the device comprising:
- a cache to store content requestable by a client on the network;
a user interface to enable a user to specify a set of forwarding rules for forwarding requests on the network;
a database to store the set of forwarding rules;
a request processing unit to receive a request from the client;
a rule evaluator to evaluate the set of forwarding rules to identify within the set of forwarding rules a rule which applies to the request, such that the request processing unit attempts to forward the request to a destination selected according to said rule, wherein the rule indicates a host in a defined forwarding hierarchy; and
a rule engine to determine an availability of the host indicated in said rule and, when the host is available, to select the host as a forwarding destination and to cause the request processing unit to forward the request to the host according to said rule, wherein the request processing unit is further to use a timeout period in attempting to establish a connection with the forwarding destination, the timeout period based on information indicative of a responsiveness of the forwarding destination, wherein the information indicative of the responsiveness of the forwarding destination comprises information indicative of a loading on, or a response time of, the forwarding destination, and wherein the timeout period is computed in response to the request being received, wherein, when the request processor is unable to forward the request according to said rule, the rule evaluator resumes evaluating the set of forwarding rules to identify another rule corresponding to the request.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for forwarding requests in a cache hierarchy based on user-defined forwarding rules are described. A proxy cache on a network provides a user interface that enables a user to define a set of forwarding rules for controlling the forwarding of content requests within a cache hierarchy. When the proxy cache receives a content request from a client and the request produces a cache miss, the proxy cache examines the rules sequentially two determine whether any of the user-defined rules applies to the request. If a rule is found to apply, the proxy cache identifies one or more forwarding destinations from the rule and determines the availability of the destinations. The proxy cache then forwards the request to an available destination according to the applicable rule.
88 Citations
46 Claims
-
1. A caching device to operate as an intermediary node on a network, the device comprising:
- a cache to store content requestable by a client on the network;
a user interface to enable a user to specify a set of forwarding rules for forwarding requests on the network;
a database to store the set of forwarding rules;
a request processing unit to receive a request from the client;
a rule evaluator to evaluate the set of forwarding rules to identify within the set of forwarding rules a rule which applies to the request, such that the request processing unit attempts to forward the request to a destination selected according to said rule, wherein the rule indicates a host in a defined forwarding hierarchy; and
a rule engine to determine an availability of the host indicated in said rule and, when the host is available, to select the host as a forwarding destination and to cause the request processing unit to forward the request to the host according to said rule, wherein the request processing unit is further to use a timeout period in attempting to establish a connection with the forwarding destination, the timeout period based on information indicative of a responsiveness of the forwarding destination, wherein the information indicative of the responsiveness of the forwarding destination comprises information indicative of a loading on, or a response time of, the forwarding destination, and wherein the timeout period is computed in response to the request being received, wherein, when the request processor is unable to forward the request according to said rule, the rule evaluator resumes evaluating the set of forwarding rules to identify another rule corresponding to the request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 41)
- a cache to store content requestable by a client on the network;
-
13. A device to operate as an intermediary node on a network, the device comprising:
- a processor;
a network interface to allow the device to communicate on the network; and
a storage facility to store program code for execution by the processor to cause the device to provide a user interface to enable a user to specify a set of forwarding rules, receive a request for content from a client, determine whether the content is cached locally in said device, and in response to a determination that the content is not cached locally in the device, evaluate the set of forwarding rules to identify a rule in the set of forwarding rules which should be applied to the request, determine an availability of a host indicated in said rule and select the host as a forwarding destination for the request when the host is available, utilizing a timeout period in attempting to establish a connection with the forwarding destination, the timeout period based on information indicative of a responsiveness of the forwarding destination, wherein the information indicative of the responsiveness of the forwarding destination comprises information indicative of a loading on, or a response time of, the forwarding destination, and wherein the timeout period is computed in response to the request being received, forward the request on the network according to said rule, and resume evaluating the set of forwarding rules to identify another rule corresponding to the request when the device is unable to forward the request according to said rule. - View Dependent Claims (14, 15, 16, 17, 18, 19, 42)
- a processor;
-
20. An intermediary network node comprising:
- means for receiving a request for content on a network;
means for determining a forwarding destination for the request in a defined forwarding hierarchy, by applying a set of user-specified forwarding rules to the request;
means for determining an availability of a host indicated in said rule and selecting the host as a forwarding destination for the request when the host is available, wherein the means for receiving the request is further to use a timeout period in attempting to establish a connection with the forwarding destination, the timeout period based on information indicative of a responsiveness of the forwarding destination, wherein the information indicative of the responsiveness of the forwarding destination comprises information indicative of a loading on, or a response time of, the forwarding destination, and wherein the timeout period is computed in response to the request being received;
means for forwarding the request according to the determined forwarding destination; and
means for resuming evaluation of the set of forwarding rules to identify another rule corresponding to the request when said forwarding the request is unsuccessful. - View Dependent Claims (21, 22, 43)
- means for receiving a request for content on a network;
-
23. A caching device to operate within a cache hierarchy on a network, the caching device comprising:
- a cache to store content requestable by a client on the network;
a request processing unit to receive a request for content from the client, and to forward the request on the network based on a set of forwarding rules in the event of a cache miss;
a user interface to enable a user to specify the set of forwarding rules, such that the user may specify one or more forwarding rules to indicate a host in the cache hierarchy as a destination for a corresponding request;
a database to store the set of forwarding rules;
a rule evaluator to evaluate the set of forwarding rules in response to the cache miss, to identify a rule in the set of forwarding rules which applies to the request; and
a rule engine to determine an availability of a host indicated in the rule, and to select the host as a forwarding destination for the request when the host is available, wherein the request processing unit is further to use a timeout period in attempting to establish a connection with the forwarding destination, the timeout period based on information indicative of a responsiveness of the forwarding destination, wherein the information indicative of the responsiveness of the forwarding destination comprises information indicative of a loading on, or a response time of, the forwarding destination, and wherein the timeout period is computed in response to the request being received, the rule engine further to indicate to the request processing unit when the host is available to cause the request processing unit to forward the request to the host, wherein, when the request processing unit is unable to forward the request according to said rule, the rule evaluator resumes evaluating the set of forwarding rules to identify another rule corresponding to the request. - View Dependent Claims (24, 25, 26, 27, 28, 44)
- a cache to store content requestable by a client on the network;
-
29. A network caching device to operate within a defined cache hierarchy on a network, the caching device comprising:
- a cache to store content from an origin server on the network;
an application to receive a request for content from a client via the network, and to forward the request on the network based on a set of forwarding rules in the event of a cache miss;
a user interface to enable a user to specify and modify the set of forwarding rules;
a rule encoder to encode into a uniform syntax forwarding rules specified by the user;
a rules database to store the encoded forwarding rules;
a rule evaluator to evaluate the set of forwarding rules sequentially in response to the cache miss, to identify a rule in the set of forwarding rules which applies to the request, by identifying a correspondence between a variable in the request and a variable in the rule, the rule specifying a host within the cache hierarchy as a forwarding destination for the request; and
a rule engine to determine an availability of the host and to select the host as said forwarding destination for the request when the host is available, the rule engine further to indicate the host to the application layer when the host is available, wherein the application is further to use a timeout period in attempting to establish a connection with the forwarding destination, the timeout period based on information indicative of a responsiveness of the forwarding destination, wherein the information indicative of the responsiveness of the forwarding destination comprises information indicative of a loading on, or a response time of, the forwarding destination, and wherein the timeout period is computed in response to the request being received, such that the application layer forwards the request to the host upon successfully establishing the connection, wherein when the application layer is unable to forward the request according to the rule, the rule evaluator resumes evaluating the set of forwarding rules to identify another rule corresponding to the request. - View Dependent Claims (30, 45)
- a cache to store content from an origin server on the network;
-
31. A method of operating a caching device in a cache hierarchy on a network, the method comprising:
- caching content on the network;
providing a user interface to enable a user to specify a set of forwarding rules;
storing the set of forwarding rules;
receiving a request from the client;
evaluating the set of forwarding rules when the request produces a cache miss, to identify a rule in the set of forwarding rules that applies to the request;
determining an availability of a host indicated in the rule;
attempting to establish a connection to the host when the host is available, wherein a timeout period is utilized in attempting to establish a connection with the host, the timeout period based on information indicative of a responsiveness of the host, wherein the information indicative of the responsiveness of the forwarding destination comprises information indicative of a loading on, or a response time of, the forwarding destination, and wherein the timeout period is computed in response to the request being received,;
forwarding the request to the host; and
resuming said evaluating to identify another rule having a correspondence to the request when said attempting to establish the connection is unsuccessful. - View Dependent Claims (32, 33, 34, 35, 36, 46)
- caching content on the network;
-
37. A proxy cache to operate as an intermediary node on a network, the proxy cache comprising:
- a user interface to enable a user to specify a set of forwarding rules for forwarding requests on the network, wherein a rule in said set of forwarding rules can specify a plurality of destinations;
a database to store the set of forwarding rules;
a request processing unit to receive a request at the proxy cache from a client;
a rule evaluator to evaluate the set of forwarding rules to identify a rule in the set of forwarding rules which applies to the request; and
a rule engine to select a destination from among the plurality of destinations based on a delivery factor included in the rule, the delivery factor comprising one of;
a specified distribution method for the request, an indication of a current load on one of the plurality of destinations, or a weighting of the plurality of destinations indicating a preferred distribution of forwarding requests between the plurality of destinations, the rule engine further to cause the request processing unit to forward the request to the destination when the destination is available, wherein the request processing unit is further to use a timeout period in attempting to establish a connection with the forwarding destination, the timeout period based on information indicative of a responsiveness of the forwarding destination, wherein the information indicative of the responsiveness of the forwarding destination comprises information indicative of a loading on, or a response time of, the forwarding destination, and wherein the timeout period is computed in response to the request being received. - View Dependent Claims (38, 39, 40)
- a user interface to enable a user to specify a set of forwarding rules for forwarding requests on the network, wherein a rule in said set of forwarding rules can specify a plurality of destinations;
Specification