IP Library Granted Patent US 11,329,931
Granted Patent B2
US 11,329,931 · App. 16/700,587 · Granted May 10, 2022

Configurable HTTP request throttling library

Inventor: Radoslav Ivanov Sugarev (Sofia, BG)
Assignee: SAP SE
H04L47/762H04L47/783H04L47/801H04L47/827H04L67/02
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 11,329,931
App. No.
16/700,587
Granted
May 10, 2022
Kind
B2
Abstract

Disclosed herein are system, method, and computer program product embodiments for deploying a configurable throttling library in a cloud platform that throttles requests according to fully customizable parameters across each origin and resource. An administrator can harness the full customization provided by the throttling library to specify increment, decrement, delay, threshold, expiration, and rejection policies. These policies allow administrators to specify parameters guiding throttling on a per-user and a per-resource basis, thus providing significantly enhanced configuration capabilities to the administrator to tailor the throttling to the unique requirements of their applications and the usage thereof.

Claims (88)

1. A computer-implemented method, comprising:

displaying, by one or more processors, a throttling library on a user interface, wherein the throttling library comprises functions configured to customize throttling parameters and throttling policies for origins to resources, wherein the throttling library is an intermediary between web requests to a cloud platform and the resources and wherein the throttling parameters specify configurations for throttling unique to the origins that access the cloud platform and resources accessed by the cloud platform to service web requests from the origins;

deploying, by the one or more processors, a throttling policy that specifies throttling parameters for web requests from origins to resources in the cloud platform;

receiving, by the one or more processors, an input from the user interface, wherein the input comprises the throttling parameters customized based on an origin that accesses the cloud platform and a resource accessed by the cloud platform to service web requests from the origins;

receiving, by the one or more processors, a web request from the origin to access the resource;

determining, by the one or more processors, a permitted request count and a time interval specified in the throttling parameters applicable to the web request based on the origin and the resource;

incrementing, by the one or more processors, a request count associated with the origin and the resource; and

causing, by the one or more processors, a delay in the processing of the web request based on the throttling policy when the request count exceeds the permitted request count in the time interval.

2. The computer-implemented method of claim 1 , further comprising:

determining, by the one or more processors, a decrement policy specified in the throttling parameters comprising a decrement interval and a decrement value; and

decrementing, by the one or more processors, the request count by the decrement value in accordance with the decrement interval.

3. The computer-implemented method of claim 1 , further comprising:

determining, by the one or more processors, a delay policy specified in the throttling parameters comprising an initial delay interval and an increment value that increases the delay upon subsequent web requests; and

causing, by the one or more processors, a second delay in the processing of a second web request, wherein the second delay is the initial delay interval incremented by the increment value.

4. The computer-implemented method of claim 1 , further comprising:

determining, by the one or more processors, a threshold policy specified in the throttling parameters comprising a criterion upon which to begin throttling;

monitoring, by the one or more processors, the resource to determine when the criterion is met; and

commencing, by the one or more processors, throttling when the criterion is met.

5. The computer-implemented method of claim 1 , further comprising:

determining, by the one or more processors, an expiration policy specified in the throttling parameters comprising a criterion upon which to disable throttling;

monitoring, by the one or more processors, the resource to determine when the criterion is met; and

disabling, by the one or more processors, throttling when the criterion is met.

6. The computer-implemented method of claim 1 , further comprising:

determining, by the one or more processors, a rejection policy specified in the throttling parameters comprising a criterion upon which to disable access from the origin to the resource; and

disabling, by the one or more processors, access from the origin to the resource when the criterion is met.

7. The computer-implemented method of claim 1 , further comprising:

placing, by the one or more processors, the web requests in a queue for processing; and

causing, by the one or more processors, a worker thread to process the web requests in the queue by:

passing the web request to the resource;

receiving a response from the resource; and

returning the response to the origin.

8. The computer-implemented method of claim 1 , further comprising:

receiving, by the one or more processors, override code that overrides the origins by providing a customized origin construction; and

incorporating, by the one or more processors, the customized origin construction into the throttling parameters.

9. A system, comprising:

a memory; and

at least one processor coupled to the memory and configured to:

display a throttling library on a user interface, wherein the throttling library comprises functions configured to customize throttling parameters and throttling policies for origins to resources, wherein the throttling library is an intermediary between web requests to a cloud platform and the resources and wherein the throttling parameters specify configurations for throttling unique to the origins that access the cloud platform and resources accessed by the cloud platform to service web requests from the origins;

deploy a throttling policy that specifies throttling parameters for web requests from origins to resources in the cloud platform;

receive an input from the user interface, wherein the input comprises the throttling parameters customized based on an origin that accesses the cloud platform and a resource accessed by the cloud platform to service web requests from the origins;

receive a web request from the origin to access the resource;

determine a permitted request count and a time interval specified in the throttling parameters applicable to the web request based on the origin and the resource;

increment a request count associated with the origin and the resource; and

cause a delay in the processing of the web request based on the throttling policy when the request count exceeds the permitted request count in the time interval.

10. The system of claim 9 , the at least one processor further configured to:

determine a decrement policy specified in the throttling parameters comprising a decrement interval and a decrement value; and

decrement the request count by the decrement value in accordance with the decrement interval.

11. The system of claim 9 , the at least one processor further configured to:

determine a delay policy specified in the throttling parameters comprising an initial delay interval and an increment value that increases the delay upon subsequent web requests; and

cause a second delay in the processing of a second web request, wherein the second delay is the initial delay interval incremented by the increment value.

12. The system of claim 9 , the at least one processor further configured to:

determine a threshold policy specified in the throttling parameters comprising a criterion upon which to begin throttling;

monitor the resource to determine when the criterion is met; and

commence throttling when the criterion is met.

13. The system of claim 9 , the at least one processor further configured to:

determine an expiration policy specified in the throttling parameters comprising a criterion upon which to disable throttling;

monitor the resource to determine when the criterion is met; and

disable throttling when the criterion is met.

14. The system of claim 9 , the at least one processor further configured to:

determine a rejection policy specified in the throttling parameters comprising a criterion upon which to disable access from the origin to the resource; and

disable access from the origin to the resource when the criterion is met.

15. The system of claim 9 , the at least one processor further configured to:

place the web requests in a queue for processing; and

cause a worker thread to process the web requests in the queue by:

passing the web request to the resource;

receiving a response from the resource; and

returning the response to the origin.

16. The system of claim 9 , the at least one processor further configured to:

receive override code that overrides the origins by providing a customized origin construction; and

incorporate the customized origin construction into the throttling parameters.

17. A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:

displaying a throttling library on a user interface, wherein the throttling library comprises functions configured to customize throttling parameters and throttling policies for origins to resources, wherein the throttling library is an intermediary between web requests to a cloud platform and the resources and wherein the throttling parameters specify configurations for throttling unique to the origins that access the cloud platform and resources accessed by the cloud platform to service web requests from the origins;

deploying a throttling policy that specifies throttling parameters for web requests from origins to resources in the cloud platform;

receiving an input from the user interface, wherein the input comprises the throttling parameters customized based on an origin that accesses the cloud platform and a resource accessed by the cloud platform to service web requests from the origins;

receiving a web request from the origin to access the resource;

determining a permitted request count and a time interval specified in the throttling parameters applicable to the web request based on the origin and the resource;

incrementing a request count associated with the origin and the resource; and

causing a delay in the processing of the web request based on the throttling policy when the request count exceeds the permitted request count in the time interval.

18. The non-transitory computer-readable device of claim 17 , the operations further comprising:

determining, by the one or more processors, a decrement policy specified in the throttling parameters comprising a decrement interval and a decrement value; and

decrementing, by the one or more processors, the request count by the decrement value in accordance with the decrement interval.

19. The non-transitory computer-readable device of claim 17 , the operations further comprising:

determining a delay policy specified in the throttling parameters comprising an initial delay interval and an increment value that increases the delay upon subsequent web requests; and

causing a second delay in the processing of a second web request, wherein the second delay is the initial delay interval incremented by the increment value.

20. The non-transitory computer-readable device of claim 17 , the operations further comprising:

determining a threshold policy specified in the throttling parameters comprising a criterion upon which to begin throttling;

monitoring the resource to determine when the criterion is met; and

commencing throttling when the criterion is met.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2019
From: SUGAREV, RADOSLAV IVANOV
To: SAP SE
Reel/Frame 051153/0170 →
Continuity (1)
Related Publication 20210168091A1 · Jun 3, 2021
Cited By (1)
US 12,580,917