Web Service Rate Limiting via Segmented Interception
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems fail to effectively manage web service hosting environments by limiting bandwidth and processing power, leading to a need for controlling the number of web service programming calls in accordance with service level agreements (SLAs).
Innovation Solution
A method and computing system that intercepts web requests, extracts call-specific data, transmits it to rate limiter servers, calculates total web requests, and determines accessibility based on predetermined access limits, allowing or denying access to prevent overuse.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If additional bandwidth and processing power are provided to handle web service requests, then the system can support more web service calls, but the cost increases and service level agreements may be violated due to uncontrolled usage
Solution Approach 1:
The system performs preliminary rate limit checking before processing web service requests. The rate limit check module intercepts requests and verifies against predetermined limits based on client identifiers, call identifiers, and time windows. This preliminary action prevents excessive resource consumption by rejecting requests that would violate service level agreements, thus controlling bandwidth and processing power usage while maintaining productivity within acceptable boundaries.
2Loss of energy
If rate limiting is implemented to control web service usage, then bandwidth and processing power are managed, but the system complexity increases due to multiple rate limiter servers and coordination mechanisms
Solution Approach 1:
The rate limiting system is segmented into multiple independent rate limiter servers, each responsible for specific rate limit checks. The web service server is divided into distinct modules including a rate limit check module that intercepts requests and a web service module that processes approved requests. This segmentation allows distributed rate limiting functionality while maintaining manageable system complexity through modular design.
Solution Approach 2:
The rate limit check module acts as an intermediary between incoming web service requests and the web service processing module. It intercepts requests, performs rate limit verification against predetermined limits, and either allows or blocks requests before they reach the web service module. This intermediary mechanism simplifies the overall system architecture by centralizing the rate limiting logic in a dedicated component that coordinates with the web service module.
3Ease of operation
If random probability distribution is used to assign web requests to different processing computers, then load balancing is achieved, but there is no control over the number of calls per client violating service level agreements
Solution Approach 1:
Before distributing web requests to processing computers, the system performs preliminary rate limit verification. The rate limit check module extracts client identifiers and call identifiers from incoming requests, determines the current time window, and checks against predetermined rate limits. Only requests that pass this preliminary check are distributed to web service processing modules, ensuring service level agreement compliance while maintaining load distribution.
Solution Approach 2:
The system implements feedback mechanisms where the rate limit check module continuously monitors the number of web service calls made by each client within specific time windows. When approaching predetermined limits, the system adjusts request acceptance accordingly, providing feedback control that ensures service level agreement compliance while still allowing maximum permissible load distribution across processing computers.
Data Source
AI summary
The present invention provides a method and computer system for limiting a number of web service programming calls including intercepting a web request for web service programming from a client and extracting call specific data from the web request. The method and computing system further includes transmitting call specific data to a plurality of rate limiter servers and on the rate limiter servers, calculating a total number of web requests, where the web requests are identified by the call specific data. The method and computing system further includes receiving web request totals from the rate limiter servers and thereby determining accessibility of the client to the web request based on a comparison of the number of web requests for the web service programming relative to a predetermined access limit.


