Dynamic throttling systems and services
First Claim
1. A method of dynamically determining whether to allow access to data in a distributed electronic environment, comprising:
- receiving a request for data to a Web service controlling access to the data;
parsing the request to determine at least one token associated with the request;
forwarding the token to a throttling module configured to analyze aggregate request frequency related to the token and determine whether to allow access to the data using a rule corresponding to the token of the request, the aggregate request frequency corresponding to any related request received by any of a plurality of servers being operable to provide access to the data in response to the request, at least a portion of the aggregate request frequency having been propagated to the throttling module by any of the plurality of servers being operable to provide access to the data in response to the request;
forwarding the request to one of the plurality of servers in order to provide access to the data when the throttling module returns a decision to allow access; and
returning a response indicating that access will not be provided in response to the request when the throttling module returns a decision not to allow access.
1 Assignment
0 Petitions
Accused Products
Abstract
A lightweight throttling mechanism allows for dynamic control of access to resources in a distributed environment. Each request received by a server of a server group is parsed to determine tokens in the request, which are compared with designated rules to determine whether to process or reject the request based on usage data associated with an aspect of the request, the token values, and the rule(s) specified for the request. The receiving of each request can be broadcast to throttling components for each server such that the global state of the system is known to each server. The system then can monitor usage and dynamically throttle requests based on real time data in a distributed environment.
81 Citations
25 Claims
-
1. A method of dynamically determining whether to allow access to data in a distributed electronic environment, comprising:
-
receiving a request for data to a Web service controlling access to the data; parsing the request to determine at least one token associated with the request; forwarding the token to a throttling module configured to analyze aggregate request frequency related to the token and determine whether to allow access to the data using a rule corresponding to the token of the request, the aggregate request frequency corresponding to any related request received by any of a plurality of servers being operable to provide access to the data in response to the request, at least a portion of the aggregate request frequency having been propagated to the throttling module by any of the plurality of servers being operable to provide access to the data in response to the request; forwarding the request to one of the plurality of servers in order to provide access to the data when the throttling module returns a decision to allow access; and returning a response indicating that access will not be provided in response to the request when the throttling module returns a decision not to allow access. - View Dependent Claims (2, 3)
-
-
4. A method of determining whether to allow access to a resource in an electronic environment, comprising:
-
receiving an incoming client request for access to a resource; parsing the client request to determine at least one parameter associated with the client request; forwarding at least the parameter to a throttling module configured to analyze individual client aggregate usage history related to the parameter and determine whether to allow the client access to the resource using a rule corresponding to the parameter of the request, the individual client aggregate usage history in aggregate corresponding to any related request by the client received by any related component across the electronic environment being operable to provide access to the resource, at least a portion of the individual client aggregate usage history having been propagated to the throttling module by any related component across the electronic environment being operable to provide access to the resource; forwarding the client request in order to provide access to the resource when the throttling module returns a decision to allow access; and returning a response indicating that access will not be provided in response to the client request when the throttling module returns a decision not to allow access. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for determining whether to allow access to a resource in an electronic environment, comprising:
-
a processor; and a memory device including instructions that, when executed by the processor, cause the processor to; receive an incoming client request for access to a resource; parse the client request to determine at least one parameter associated with the client; forward at least the parameter to a throttling module configured to analyze individual client aggregate usage history related to the parameter and determine whether to allow the client access to the resource using a rule corresponding to the parameter of the request, the individual client aggregate usage history in aggregate corresponding to any related request by the client received by any related component across the electronic environment being operable to provide access to the resource, at least a portion of the individual client aggregate usage history having been propagated to the throttling module by any related component across the electronic environment being operable to provide access to the resource; forward the client request in order to provide access to the resource when the throttling module returns a decision to allow access; and return a response indicating that access will not be provided in response to the client request when the throttling module returns a decision not to allow access. - View Dependent Claims (18, 19, 20)
-
-
21. A system for dynamically determining whether to allow access to data in a distributed electronic environment, comprising:
-
a processor; and a memory device including instructions that, when executed by the processor, cause the processor to; receive an incoming client request for data to a Web service controlling access to the data; parse the client request to determine at least one token associated with the client; forward the token to a throttling module configured to analyze individual client aggregate usage history related to the token and determine whether to allow the client access to the data using a rule corresponding to the token of the request, the individual client aggregate usage history corresponding to any related request by the client received by any of a plurality of servers being operable to provide access to the data in response to the request, at least a portion of the individual client aggregate usage history having been propagated to the throttling module by any of a plurality of servers being operable to provide access to the data in response to the request; forward the client request to one of the plurality of servers in order to provide access to the data when the throttling module returns a decision to allow access; and return a response indicating that access will not be provided in response to the client request when the throttling module returns a decision not to allow access.
-
-
22. A computer program product embedded in a computer readable non-transitory medium for determining whether to allow access to a resource in an electronic environment, comprising:
-
program code for receiving a client request for access to a resource; program code for parsing the request to determine at least one parameter associated with the request; program code for forwarding at least the parameter to a throttling module configured to analyze aggregate usage history related to the parameter and determine whether to allow access to the resource using a rule corresponding to the parameter of the request, the aggregate usage history in aggregate corresponding to any related amount of requests by a client received by any related component across the electronic environment being operable to provide access to the resource, at least a portion of the aggregate usage history having been propagated to the throttling module by any related component across the electronic environment being operable to provide access to the resource; program code for forwarding the request in order to provide access to the resource when the throttling module returns a decision to allow access; and program code for returning a response indicating that access will not be provided in response to the request when the throttling module returns a decision not to allow access. - View Dependent Claims (23, 24, 25)
-
Specification