IP Library Granted Patent US 7,305,431
Granted Patent B2
US 7,305,431 · App. 10/261,817 · Granted Dec 4, 2007

Automatic enforcement of service-level agreements for providing services over a network

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,305,431
App. No.
10/261,817
Granted
Dec 4, 2007
Kind
B2
Abstract

The invention deals with the enforcement of Service Level Agreement for the services provided over a client-server network. The invention discloses a method, system and a program product for automatic enforcement of SLAs. This is achieved by automatic metering of requests for service and allocation of resources of the server based on the SLA, current available resources and the needs of the customer.

Claims (42)

1. A method of enabling automatic enforcement of Service Level Agreements (SLAs) in a client-server arrangement over a network, between customers running at least one application utilizing a software service provided by a service provider, said method comprising:

intercepting service requests for said software service from users of said customers to a server of said service provider;

automatically collecting usage statistics on each of said users, wherein said usage statistics comprise at least one of distribution of said requests, number of said requests, and frequency of said requests;

aggregating said usage statistics from said users on a per-customer basis to determine current per-customer usage statistics, wherein each of said customers comprises at least one user;

computing and adjusting allocations of said software service to each of said customers, wherein each allocation to each customer is based on said current per-customer usage statistics, on usage metrics that are specified in a service level agreement with said customer, and on a service capacity of said software service, wherein said service capacity comprises a rate of requests supportable by said server; and

controlling usage of said software service by said customers based on said allocations, wherein said controlling of said usage of said software service further comprises:

queuing said service requests from said customers that exceed said allocations;

dispatching said service requests from said queue to said server at a configurable dispatch rate; and,

modifying said dispatch rate for each of said customers.

2. The method as claimed in claim 1 , wherein said usage statistics are weighted by values of parameters in said service requests.

3. The method as claimed in claim 1 , wherein for each of said customers said usage metrics comprise a guaranteed aggregate throughput in requests per second.

4. The method as claimed in claim 1 , further comprising triggering said modifying of said dispatch rate in response to predefined events, wherein said predefined events comprise at least one of elapsing of a predefined period of time, occurrence of system events and manual instigation of a trigger.

5. The method as claimed in claim 1 , further comprising reporting said per-customer current usage statistics to said server at configurable intervals.

6. The method as claimed in claim 1 , further comprising controlling said usage of said software service through manual intervention.

7. The method as claimed in claim 1 , further comprising modifying SLA limits for any of said customers without having to restart said software service.

8. The method as claimed in claim 5 , wherein said configurable intervals comprise elapsing of fixed time intervals and processing of a fixed number of service requests.

9. The method as claimed in claim 1 , wherein said modifying of said dispatch rates is based upon at least one of the following policies: providing a fair share of said service capacity, maximizing revenue generation, ensuring high resource utilization and minimizing perturbation of the current allocation.

10. The method as claimed in claim 6 , further comprising overriding said allocations and controlling said usage of said software service by sending control messages and setting key parameters for allocation of resources.

11. The method as claimed in claim 9 , further comprising determining or dynamically updating an available service capacity by benchmarking or on the basis of current configuration and the status of utilization of services.

12. The method as claimed in claim 9 , further comprising determining said fair share of said service capacity based on a guaranteed throughput and said available capacity of said server.

13. The method as claimed in claim 12 , further comprising allowing each of said customers to exceed said guaranteed throughput when said server is lightly loaded.

14. A program storage device readable by machine, tangibly embodying a program of instructions executable by said machine to perform a method enabling automatic enforcement of a service level agreement in a system in a client-server arrangement over a network, between customers running at least one application utilizing a software service provided by a service provider, said method comprising:

intercepting service requests for said software service from users of said customers to a server of said service providers;

automatically collecting usage statistics on each of said users, wherein said usage statistics comprise at least one of distribution of said requests, number of said requests, and frequency of said requests;

aggregating said usage statistics from said users on a per-customer basis to determine current per-customer usage statistics, wherein each of said customers comprises at least one user;

computing and adjusting allocations of said software service to each of said customers, wherein each allocation to each customer is based on said current per-customer usage statistics, on usage metrics that are specified in a service level agreement with said customer, and on a service capacity of said software service, wherein said service capacity comprises a rate of requests supportable by said software service; and

controlling usage of said software service by said customers based on said allocations, wherein said controlling of said usage of said software service further comprises:

queuing said service requests from said customers that exceed said allocations;

dispatching said service requests from said queue to said server at a configurable dispatch rate; and,

modifying said dispatch rate for each of said customers.

15. The program storage device of claim 14 , wherein said usage statistics are weighted by values of parameters in said service requests.

16. The program storage device of claim 14 , for each of said customers said usage metrics comprise a guaranteed aggregate throughput in requests per second.

17. The program storage device of claim 14 , further comprising triggering said modifying of said dispatch rate in response to predefined events, wherein said predefined events comprise at least one of elapsing of a predefined period of time, occurrence of system events, and manual instigation of a trigger.

18. The program storage device of claim 14 , wherein said method further comprises reporting said usage statistics of said application for each of said customers to said server at configurable intervals.

19. The program storage device of claim 14 , wherein said method further comprises controlling said usage of said software service through manual intervention.

20. The program storage device of claim 14 , wherein said method further comprises modifying limits of said service level agreement for any of said customers without having to restart said software service.

21. The program storage device of claim 18 , wherein said configurable intervals comprise elapsing of fixed time intervals and processing a fixed number of service requests.

22. The program storage device of claim 14 , wherein said modifying of said dispatch rate is based on at least one of the following policies: providing a fair share of said service capacity, maximizing revenue generation, ensuring high resource utilization, and minimizing perturbation of current allocation.

23. The program storage device of claim 19 , wherein said method further comprises overriding said allocations and controlling said usage of said services by sending control messages and setting key parameters for allocation of resources.

24. The program storage device of claim 22 , wherein said method further comprises determining or dynamically updating an available service capacity of said server by one of benchmarking, current configuration, and status of utilization of services.

25. The program storage device of claim 24 , wherein said method further comprises determining said fair share based on a guaranteed throughput and said available service capacity of said server.

26. The program storage device of claim 25 , wherein said method further comprises allowing said customer to exceed said guaranteed throughput when said server is lightly loaded.

Assignments (3)
CHANGE OF NAME Recorded Dec 6, 2018
From: SNAPCHAT, INC.
To: SNAP INC.
Reel/Frame 047688/0916 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2016
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: SNAPCHAT, INC.
Reel/Frame 037573/0170 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2002
From: KARNIK, NEERAN M.; KUMAR, ARUN; CHAFLE, GIRISH B.; YOUSSEF, ALAA S.; ARORA, RUBY
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 013359/0970 →