During the last years the use of Service Level Agreements (SLA) is on the rise to describe the rights and obligations of parties involved in service provisioning (typically the service consumer and the service provider). Amongst other information, SLAs have associated a set of service metrics on which some Service Level Objectives (SLOs) can be guaranteed to either the consumer or the provider. Such SLOs usually have associated compensations (penalty or reward) as consequence of under or overfulfilling them. However, although this is a common practice in industry, existing research proposals towards the automation of the SLA management do not consider the associated compensations.
In this article we provide: (i) a characterization model for compensations that consider both, penalties and rewards; (ii) an automated technique to validate SLAs taking into consideration the compensations; (iii) a tooling support that implements our validation technique; and (iv) a validation of our proposal by modelling and analysing the compensations of more than twenty SLAs of real-world scenarios. As result, our technique was proved to be useful for detecting mistakes that are typically derived not only from the manual specification of SLAs in natural language; but also from the complex nature of compensations definitions.
In order to have an anonymous demostration of the tool with a preloaded workspace of SLA samples, please go to this link.
Please note that by default a user-friendly form representing the agreement is shown. In order to see the iAgree version, you need to follow the following steps:
In order to register and have a persistent workspace please go to this link. In such a case, you can import the demo workspace by typing in the console (with the advanced mode activated) the following command:
generateDemoWorkspace 2017-12-Compensations
# | Organization | SLA Ids |
---|---|---|
A01 | GNWT | A01G01-A01G23 |
A02 | Amazon | A02G01-A02G07 |
A03 | Rackspace | A03G01-A03G14 |
A04 | OVH | A04G01-A04G02 |
A05 | MS Azure | A05G01-A05G52 |
A06 | Joyent | A06G01 |
A08 | HostEurope | A08G01 |
A09 | Factobyte | A09G01 |
A10 | CloudClockSC | A10G01 |
A11 | Cisco | A11G01 |
A12 | CDMon | A12G01 |
A13 | GoogleCE | A13G01-A13G03 |
A14 | Verizon | A14G01-A14G19 |
A15 | GoGrid | A15G01 |
A16 | Sandetel | A16G01-A16G06 |
A17 | Geronte | A17G01-A17G37 |
A18 | Kerala | A18G01-A18G10 |
A19 | GSANetwork | A19G01-A19G04 |
The full agreement dataset can be found here.
Term | Definition |
---|---|
SLA | Service Level Agreement |
SLO | Service Level Objective |
Guarantor | Party that guarantee the SLOs of an SLA to the other party (beneficiary) |
Beneficiary | Party that benefits from the SLOs of an SLA that are guaranteed by the other party (guarantor) |
SLO unfulfilling | When the guarantor does not hold what an SLO established in the SLA |
SLO overfulfilling | When the guarantor provide more service level than an SLO established in the SLA |
Compensation | Consequence of unfulfilling (penalty) or overfulfilling (rewards) SLOs of an SLA |
Penalty | Compensation from the guarantor to the beneficiary |
Reward | Compensation from the beneficiary to the guarantor |
Compensable SLA | SLAs that include at least a compensation action, either a penalty or a reward |
Compensation validity | A compensation is said to be valid if it is well defined in order to avoid undesirable consequences (i.e. specifying all the required information and without mistakes). That is specially important if the action derived from the compensation is automated. |
AWS EC2 | Amazon Web Service – Elastic Compute Cloud |
MUP | Monthly Uptime Percentage |
GNWT | Government of the Northwest Territories |
EDP | Elapsed Days Percentage |
PIP | Penalty Invoice Percentage |
Metrics (Mm) | Set of al values for a metric m. |
Utility Function (Um) | Function that associates an utility to each of the values of a service metric; i.e. it defines which metric values are more interesting for a given party. |
Utility Precedence | Precedence relation defined on a service metric that denotes that a value of the service metrric is less interesting than other, using an utility function defined for the same metric. |
Compensation Function (CFm) | Function that associates a compensation to each of the values of a service metric. Penalties are modeled as positive compensations; and rewards as negative compensations. |
Compensation Regions | A compensation Function defines three compensation regions, namely: penalized, rewarded, and neutral. |
Penalized region | A region of values for a service metric that have an associated penalty. |
Neutral region | A region of values for a service metric that have not associated neither a penalty nor a reward. |
Rewarded region | A region of values for a service metric that have an associated reward. |
Compensable Guarantee (CG) | A guarantee that includes either a penalty, a reward, or both. |
Constraint Satisfaction Problems (CSP) | A CSP is defined as a triple (V,D,C) of a set of variables (V), their domains (D) and a number of constraints (C). A solution of a CSP is an assignment of values to the variables in V from their domains in D so that all the constraints in C are fulfilled. A CSP that has at least one solution is called satisfiable (SAT), and there are a number of solvers that can automatically check the satsifiability of a CSP through the operation solve. |
WS-Agreement | A standard specification that provides a framework to define SLA languages. |
iAgree | A WS-Agreement compliant SLA language developed by the authors in previous works. |
map(CF) | Function to map a compensation function into a CSP. |
c | Compensation unit |
Pcond,i Pval,i | Penalty condition and value, respectively |
Rcond,i Rval,i | Reward condition and value, respectively |
HRS | number of Human Resource Substitutions |