Abstract:
A system and program product for determining a price “P” to bill a customer for a resource. Amounts “U” and “C i ” of the resource provided and committed, respectively, to the customer during the billing period are determined. The price P=F(C i )+G (U−C i ) is determined and billed to the customer, where “F” and “G” are price functions for the resource. Determined is the number of requests for the resource made by the customer during the billing period in excess of “C i ” which were denied. If the number of denied requests exceeds a predetermined threshold, the amount “C i ” for determining the price “P” is increased during a subsequent billing period. The price “P” is billed to the customer for the subsequent billing period based on the increased amount “C i ” and the value “U” during the subsequent billing period, and the functions “F” and “G”.

Description:
[0001]    This application is a continuation application claiming priority to Ser. No. 11/120,709, filed May 3, 2005. 
     
    
     BACKGROUND 
       [0002]    The present invention relates generally to pricing of resources used by a customer, and more particularly to a technique to optimize resource pricing and availability for the customer. 
         [0003]    It is known to charge a customer based on the customer&#39;s amount of usage of a resource such as disk space, bandwidth and processor utilization in the computer and telecommunication fields and energy in other fields. It was also known to charge a basic service fee for a predetermined, guaranteed amount of resource availability, and then add a usage fee for additional consumption. The resource provider does not guarantee that a customer request for the additional resource consumption can be satisfied, and typically charges less per unit of additional, not-guaranteed resource than unit of guaranteed resource. It was known for a contract to specify and fix the basic fee, amount of guaranteed resource availability, and usage fee for additional resource consumption. Also, some contracts may limit the total amount of resources that the customer may consume. Occasionally, the fee arrangement is not optimum for the customer and/or does not meet the customer&#39;s needs. 
         [0004]    The following describes known techniques to determine a bill for a customer based on the customer&#39;s resource utilization. The resource provider uses a known technique to measure the customer&#39;s resource utilization at defined sampling intervals. The measured/sample values “U n ” of resource utilization or consumption at the measurement or sampling intervals can be denoted by (U 1 , U 2 , . . . U n ). (If the measurement interval is very small, this will appear to be a “continuous” measurement). At the end of the billing period, the samples are compiled to determine a final usage value for the entire billing period. The final usage value denoted as “U” for a billing period can be determined based on an equation U=M (U 1 , U 2 , . . . U n ). The function “M” depends on the contract with the customer and can be the average of the sample utilization values “U i ”, the sum of the sample utilization values “U i ”, the (upper) 95th percentile sample utilization value, etc. 
         [0005]    Typically the contract between the customer and the resource provider specifies an amount of resource which the resource provider guarantees or commits to the customer. The contract may also specify an absolute maximum amount of resource that the customer can request from the resource provider. In some cases, the customer may request an amount of resource greater than the amount guaranteed in the contract. Typically, the resource provider will supply this additional amount if it does not exceed the absolute maximum specified in the contract and if this additional amount is available. The situation where the resource provider cannot or will not satisfy a request by a customer for an amount of resource can be represented by the following. If the values of these customer resource requests at each measurement interval are R 1 , R 2 , . . . R n , then, for any measure interval U i ≦R i . 
         [0006]    One reason the resource provider may not provide the requested additional resource is that the resource provider&#39;s total resources may be shared amongst multiple customers, and the customers may be compete with each other for the available resources in excess of their guaranteed amount, if any. For example, in a data processing environment multiple customers may use a common pool of servers, and in a telecommunications environment multiple customers may use a common pool of communication equipment. Thus, U i &lt;R i  when there are not enough resources available at one time to satisfy all requests of all customers, even though R i ≦K, where “K” represents the total pooled amount of resources. If the contract with a customer includes a committed or guaranteed minimum value, any customer request at or below this guaranteed minimum value at any time will be satisfied regardless of requests made by other customers at the same time. Therefore, any customer request at or below this guaranteed minimum value at any time will be satisfied regardless of requests made by other customers at the same time. This committed minimum value can be denoted “C” in the following equations: 
         [0000]      C≦K       If R i ≦C, then the request R i  is always satisfied and U i =R i ,   If C&lt;R i ≦K, then the request R i  is not always satisfied and C≦U i ≦R i ≦K,   If K&lt;R i  then the request R i  is not completely satisfied and C≦U i ≦K&lt;R i .
 
At the end of the billing period, “U” is computed with the equation U=M (U 1 , U 2 , . . . U n ). The price to be paid by the customer is the sum of two pricing elements: (i) the price for a certain amount of committed or guaranteed resource which is a function depending on “C”, i.e. F(C), and (ii) the usage price paid for consumption of the resource above the committed level. This is a fraction of the (excess) resource consumed for which the availability has not been guaranteed. In other words, the charge for the uncommitted resource should be less than the charge for the committed resource, per unit of consumption, because of the risk that the uncommitted resource will not be provided. This price is therefore a function of U−C, i.e. G(U−C). “F” and “G” are monotonicaly increasing functions, and G(x)=0 if x≦0. Thus, the function “G” applies to a fraction of the resource which is not committed. In other words:
         
         [0000]        F ( C+x )+ G ( U −( C+x ))&gt; F ( c )+ G (( U+x )− C ) 
         [0000]    where “x” represents a small increase. The price for (a modest amount of) extra consumption is less than the price for the same increase of the committed amount of resource. 
         [0010]    Typically, the resource provider requires that the customer select a committed amount “C” from a predetermined, discrete set of committed values (C 1 , C 2 , . . . C n ). For example, a committed value of a subscription for electric service may be limited to predetermined, discrete values such as C 1 =3 kWh, C 2 =6 kWh, C 3 =9 kWh, etc. Therefore, the price can be defined by the equation: 
         [0000]        P=F ( C   i )+ G ( U−C   i ) 
         [0000]    where C i  is the committed value selected by the customer from the set of values C 1 , C 2 , . . . C n . 
         [0011]    While the foregoing techniques to determine a fee to charge a customer for use of a resource are effective, these techniques are not always optimum for the customer. 
         [0012]    Accordingly, an object of the present invention is to optimize, for the customer, a contract for resource consumption. 
         [0013]    Another object of the present invention is to dynamically optimize, for the customer, the contract for resource consumption. 
       SUMMARY OF THE INVENTION 
       [0014]    The present invention resides in a system, method and program product for determining a price “P” to bill a customer for a resource. An amount “U” of the resource provided to the customer during the billing period is determined. An amount “C i ” of the resource committed to the customer during the billing period is identified. The price P=F(C i )+G (U−C i ) is determined, where “F” and “G” are price functions for the resource. The price “P” is billed to the customer for the billing period. A determination is made as to the number of requests for the resource which were made by the customer during the billing period in excess of “C i ” which were denied. If the number of denied requests exceeds a predetermined threshold, the amount “C i ” for determining the price “P” is increased during a subsequent billing period. The price “P” is billed to the customer for the subsequent billing period based on the increased amount “C i ” and the value “U” during the subsequent billing period, and the functions “F” and “G”. 
         [0015]    In accordance with a feature of the present invention, a determination is made if the customer requested significantly less resource than “C i ” during the billing period. If so, the amount “C i ” is decreased for determining the price “P” during the subsequent billing period. The price “P” is billed to the customer for the subsequent billing period based on the decreased amount “C i ” and the value “U” during the subsequent billing period, and the functions “F” and “G”. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0016]      FIG. 1  is a block diagram of a distributed system incorporating the present invention. 
           [0017]      FIG. 2  is a flow chart of a contract optimization program within the system of  FIG. 1 . 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0018]    The implementation of the present invention includes a known technique to measure consumption of a resource such as disk space, bandwidth and processor utilization in the computer and telecommunication fields and energy in other fields. The measurement is typically performed at regular (sample) time intervals, during a billing period. Typically, the sample interval is sufficiently short so that the samples, over time, accurately represent the total usage. For example, the measurement can be performed every five minutes during a billing period of a month. 
         [0019]    The measured/sample values “U n ” of resource utilization or consumption at measurement intervals can be denoted by (U 1 , U 2 , . . . U n ). At the end of the billing period, the samples are compiled to determine a final usage value for the entire billing period. The final usage value denoted as “U” for a billing period can be determined based on an equation U=M (U 1 , U 2 , . . . U n ). The function “M” depends on the contract with the customer and can be the average of the sample utilization values “U i ”, the sum of the sample utilization values “U i ”, the (upper) 95th percentile sample utilization value, etc. 
         [0020]    To best utilize the present invention, the contract between the customer and the resource provider specifies an amount of resource which the resource provider guarantees or commits to the customer. The contract may also specify an absolute maximum amount of resource that the customer can request from the resource provider. In some cases, the customer may request an amount of resource greater than the amount guaranteed in the contract. Typically, the resource provider will supply this additional amount if it does not exceed the absolute maximum specified in the contract and if this additional amount is currently available. In one environment where the present invention can be used, there are a pool of resources shared by multiple customers, and the availability of the resource for a customer above the customer&#39;s guaranteed amount depends on the current utilization of the other customers. The situation where the resource provider cannot or will not satisfy a request by a customer for an amount of resource can be represented by the following. If the values of these customer resource requests at each measurement interval are R 1 , R 2 , . . . R n , then, for any measure interval U i ≦R i . Thus, U i &lt;R i  when there are not enough resources available at one time to satisfy all requests of all customers, even though R i ≦K, where “K” represents the total pooled amount of resources. If the contract with a customer includes a committed or guaranteed minimum value, any customer request at or below this guaranteed minimum value at any time will be satisfied regardless of requests made by other customers at the same time. This committed minimum value can be denoted “C” in the following equations: 
         [0000]      C≦K       If R i ≦C, then the request R i  is always satisfied and U i =R i ,   If C&lt;R i ≦K, then the request R i  is not always satisfied and C≦U i ≦R i ≦K,   If K&lt;R i , then the request R i  is not completely satisfied and C≦U i ≦K&lt;R i .
 
At the end of the billing period, “U” is computed with the equation U=M (U 1 , U 2 , . . . U n ). The price to be paid by the customer is the sum of two pricing elements: (i) the price for a certain amount of committed or guaranteed resource which is a function depending on “C”, i.e. F(C), and (ii) the usage price paid for consumption of the resource above the committed level. This is a fraction of the (excess) resource consumed for which the availability has not been guaranteed. In other words, the charge for the uncommitted resource is less than the charge for the committed resource, per unit of consumption, because of the risk that the uncommitted resource will not be provided. This price is therefore a function of U−C, i.e. G(U−C). “F” and “G” are monotonicaly increasing functions, and G(x)=0 if x≦0. The function “G” applies to a fraction of the resource which is not committed. In other words:
         
         [0000]        F ( C+x )+ G ( U −( C+x ))&gt; F ( c )+ G (( U+x )− C ) 
         [0000]    where “x” represents a small increase. The price for (a modest amount of) extra consumption above the committed amount is less than the price for the same increase of the committed amount of resource. 
         [0024]    Preferably, the resource provider requires that the customer select a committed amount “C” from a predetermined, discrete set of committed values (C 1 , C 2 , . . . C n ). For example, a committed value of a subscription for electric service may be limited to predetermined, discrete values such as C 1 =3 kWh, C 2 =6 kWh, C 3 =9 kWh, etc. Therefore, the price “P” can be defined by the equation: 
         [0000]        P=F ( C   i )+ G ( U−C   i ) 
         [0000]    where “C i ” is the committed value selected by the customer from the set of values C 1 , C 2 , . . . C n . 
         [0025]    In accordance with the present invention, the function “P” is dynamically variable at different billing periods. If “b” represents the billing period, the price is “P b ” for this period. Utilization data from the period “b” is analysed, and the parameters for the next billing period are adjusted and the pricing function P (b+1)  is determined for this next billing period. The adjustment to the pricing function dynamically sets the committed amount to a minimum level at which a sufficient percentage of customer requests for resources above the committed amount are satisfied. This optimizes the price for the customer, yet provides sufficient resource availability. 
         [0026]      FIG. 1  illustrates a distributed system which implements the present invention. A customer  10  sends requests R 1 , R 2 , . . . R n  to a resource provider  12  during a billing period. In response, the resource provider  12  supplies resources U 1 , U 2 , . . . U n  to the customer. During the same billing period, the resource provider  12  sends the resource consumption samples along with the corresponding resource requests to a contract optimization program  18  within contract optimization computer  14  to determine the best minimum value C i  to be used. Computer  14  also includes a CPU  15 , operating system  17 , RAM  19 , ROM  21  and storage  23 . The contract optimization program  18  computes the value U=M(U 1 , U 2 , . . . U n ) for this billing period. The contract optimization program  18  passes the value “U” and the minimum value C i  to a billing function  16  which computes the price P=F(C i )+G(U−C i ) based on this value and the value U. By way of example, the billing function  16  can be a program function within program  18  and execute within computer  14 . (Alternately, billing function  16  can be provided by a separate computer.) Finally, the billing function  16  sends a bill with the price “P” to the customer  10 . 
         [0027]    The contract optimization program  18  within the computer  14  optimizes the pricing function to optimize resource pricing and availability for the customer. As mentioned above, a request R i  can either be fulfilled or denied. A denial of a request can be represented by the following function D(x): 
         [0000]        D ( R   i )=0 when the request is satisfied (U i =R i ) 
         [0000]        D ( R   i )=1 when the request is denied (U i &lt;R i ) 
         [0000]    The contract optimization program  18  determines the percentage of denied requests at the end of the billing period. If “n” is the size of the sample (U 1 , U 2 , . . . U n ), a value D representing such a percentage is as follows: 
         [0000]        D =Σ( R   i )/ n    
         [0000]    The customer can specify an acceptable threshold “T”, for example 5%, for the request denial percentage. This threshold depends on the nature of the resource and needs to be agreed with the customer. Below the threshold, the customer will be satisfied from an availability standpoint but perhaps has committed too much resource and is paying too much. Above the threshold, the customer will not be satisfied from an availability standpoint, and the program  18  should increase the committed amount in the contract. The program  18 , according to the present invention, adjusts the parameters for the next billing period in order to determine the new pricing function P (b+1) , as follows: 
       1. If D&gt;T 
       [0028]    There are too many denials. Consequently, the program  18  needs to increase the committed amount. It is therefore necessary to change C i  into C i+1 , where C i+1 &gt;C i . Thus, the new pricing function for the next billing period will be as follows: 
         [0000]        P   (b+1)   =F ( C   i+1 )+ G ( U−C   i+1 ) 
         [0000]    However, if at the same time K&lt;C i+1 , program  18  will adjust “K” so that K=C i+ . 
       2. If D≦T 
       [0029]    From a supply/usage point of view, the customer will be satisfied, but the committed amount may be too high resulting in higher cost to the customer. Therefore, it is beneficial to the customer to determine if the committed amount can be reduced. For this optimization, program  18  uses another function “Da” as follows: 
         [0000]        Da ( R   i )=0 if R i ≦C i −1 
         Da ( R   i )=1 if C i −1&lt;R i ≦C i    
       Da ( R   i )=0 if C i &lt;R i    
       [0030]    Then, program  18  determines a new value “Da”: 
         [0000]        Da=Σ[Da ( R   i )+ D ( R   i )]/ n    
         [0000]    Then, program  18  compares the new value “Da” to the threshold “T”: 
         [0031]    If Da≧T, nothing is changed in the contract. 
         [0032]    If Da&lt;T, C i  will be changed into C i −1 for the next billing period. This results in reducing the customer bill while maintaining an acceptable level of service. The new pricing function will be as follows: 
         [0000]        P   (b+1)   =F ( C   i −1)+ G ( U−C   i−1 ) 
         [0000]    Note that, to avoid “flipping”, it is preferable that the above adjustment is performed only when the condition occurs during multiple consecutive billing periods, for example three consecutive billing periods. 
         [0033]      FIG. 2  illustrates in more detail the contract optimization program  18  within the computer  14 . The resource provider  12  sends to program  18  the values of the customer requests R i  and the customer consumption amounts U i  (step  20 ). Next, program  18  computes variable “D” (step  22 ). Next, program  18  determines whether the value of “D” is greater than the predetermined threshold “T” (step  24 ). If so, this means there are too many denials and consequently, program  18  replaces the minimum value C i  with the next higher value C i+1  (step  26 ). Next, program  18  checks whether this new value C i+1  is greater than the upper contract limit “K” (step  28 ). If so, program  18  changes “K” to C i+1  (step  30 ). After step  30  or if C i+1  is not greater than K, program  18  computes the value “M” (step  32 ) and then, the price P=F(R i )+G(U−C i ) of the resource received by the customer during the billing period (step  34 ). 
         [0034]    Refer again to decision  24  where the value “D” is not greater than the threshold “T”. This means there are not too many denials. So, program  18  determines the value “Da” (step  36 ). Next, program  18  determines whether the value “Da” is less than the threshold “T” (step  38 ). If so, this means not enough requests are above the new minimum value “C i ” so program  18  replaces the new minimum value “C i ” with the next lower value “C i−1 ” in the list (step  40 ). After this step or if “Da” is not less than “T”, program  18  computes the value “M” (step  32 ) and determines the price “P” (step  34 ). 
       Example 
       [0035]    A Company provides the user/customer with Internet access and bills the customer with an invoice based upon the user&#39;s bandwidth consumption. The price paid by the customer contains a fixed subscription fee of $5/month. The fixed fee includes a guaranteed or committed bandwidth specified in the contract as “chunks” of 1 Mb/s using the following table: 
         [0000]                                TABLE 1                       Committed               Bandwidth   Price                           C 1  = 1 Mb/s   $20           C 2  = 2 Mb/s   $38           C 3  = 3 Mb/s   $56           C 4  = 4 Mb/s   $73                        
In addition, the customer may “burst” over the committed bandwidth that the customer reserved. In such a case, the customer pays for the extra consumption at the following rate:
 
         [0000]                                TABLE 2                       Extra bandwidth   Price                           1 Mb/s   $10           2 Mb/s   $20           3 Mb/s   $28           4 Mb/s   $35                        
The billing period is one month. Additionally, the customer defines in the contract an absolute maximum consumption above which the customer cannot obtain. If the customer chooses a contract for a committed bandwidth of 2 Mb/s, then the parameter C i  to be used is C 2 =2 Mb/s according to Table 1 and the function F(C i ) has the value:
 
         [0000]        F (2)=$5+$38=$43 
         [0000]    The “G” function is given by Table 2. Assuming that at the end of the month, the user bursted to 4 Mb/s (that is 2 Mb/s over the reserved rate), the function “G” is: 
         [0000]    
       
         
           
             
               G 
                
               
                 ( 
                 
                   U 
                   - 
                   
                     C 
                     i 
                   
                 
                 ) 
               
             
             = 
             
               
                 G 
                  
                 
                   ( 
                   
                     4 
                     - 
                     2 
                   
                   ) 
                 
               
               = 
               
                 
                   G 
                    
                   
                     ( 
                     2 
                     ) 
                   
                 
                 = 
                 $20 
               
             
           
         
       
     
         [0000]    Finally, the total bill is as follows: 
         [0000]    
       
         
           
             P 
             = 
             
               
                 $43 
                 + 
                 $20 
               
               = 
               $63 
             
           
         
       
     
         [0000]    As described above, “U” is the result of the computation of the “M” function over the samples collected during the billing period. A known method for the determination of “M” is to use the 95th percentile. Thus, from the samples (U 1 , U 2 , . . . U n ), the 5% of the higher values are removed and the maximum value amongst the remaining ones is taken. The upper rate that sets the upper limit is the “K” parameter. If the customer limits the total bandwidth to 4 Mb/s, “K” must be 4 Mb/s. Therefore, the bill of $63 is the maximum the customer will pay for any month. 
         [0036]    Note that, as explained above, the pricing of the contract is determined by the functions “F” and “G”, the choice of the “C i ” value and the “K” upper limit. For a given resource, functions “F” and “G” are defined. The customer selects “C i ” and “K” when the customer signs the contract. Changing the contract consists of changing the choice for “C i ” and “K”. Rather than fixing once and for all the “C i ” and “K” values, the customer agrees with the provider to a service level agreement where at most “T” percent of the request may be denied. Assume that the customer agrees to T=10%. If the average request denial “D” over the billing period is above 10%, this means that the current contract does not meet the service level agreement. The customer uses the burst bandwidth, which is cheaper, to satisfy the customer&#39;s needs. However, as this portion is not guaranteed, the requests may be denied. In this example, too many requests are denied compared to the requested service level. Therefore, C 2 =(2 Mb/s) is replaced by C 3 =(3 Mb/s). The new price becomes for the next billing period: 
         [0000]        P=F (3)+ G ( U− 3) 
         [0000]    If during the next billing period, D≦T, nothing is changed. However, if this is not the case, C 3 =(3 Mb/s) is replaced by C 4 =(4 Mb/s). Assuming that the increase of load is only temporary, it is useful to compute the value Da, which is the percentage of the requests being just above the preceding value, here C 3 . If Da&lt;T, then C 4 =(4 Mb/s) is changed again into C 3 =(3 Mb/s) which is a convenient value to assure the required demand. 
         [0037]    Program  18  can be loaded into computer  14  via a computer readable medium  25  such as a magnetic, optical or DVD disk or be downloaded via the Internet  27 .