Quality Definition, Negotiation and Assurance (KM-QA)
Quality definition (contract
definition)
Quality negotiation and agreement (contract establishment)
The contract establishment phase concerns the set of activities required for the instantiation of the contract template in an actual contract. This may involve the selection of the contract partner (the service provider), among a set of potential partners, the negotiation of the contract terms between the selected partner and the service consumer, and the agreement to the contract terms. For what concerns contract establishment, this workpackage focusses on novel quality negotiation and agreement techniques as the primarily means to automatically and proactively establish contracts on quality attributes between service requestors (consumers) and providers. QoS contracts are parts of Service Level Agreements (SLAs), which deal with statements about the QoS levels on which the service requestor and the providers reach an agreement.
We identify two main streams for research on service quality negotiation. First, we underline the issue of automated SLA establishment in service compositions. Most of the current work in this field concerns the negotiation between a service consumer and a service provider or the set of providers of functionally equivalent services. Second, research efforts should be devoted to the analysis of innovative negotiation strategies explicitly tailored to the requirements of service-based applications.
Quality assurance (contract enactment)
The contract enactment concerns executing the contract and assuring its satisfaction. In the specific context of contracts on quality aspects, this activity coincides with assuring the satisfaction of quality guarantees negotiated between a service provider and the service requestor. Regarding contract enactment, this workpackage will elaborate novel techniques for the run-time and proactive assurance of quality, such as the (formal) analysis of service specifications during run-time, or the prediction of quality attributes. This is considered both from the service provider point of view (e.g., ensuring that the service is running correctly) as well as from the service requestor point of view (e.g., monitoring on whether the agreed quality is delivered). Of course, if quality assurance has uncovered a contract violation, this could also mean that the contracts have to be re-negotiated in order to adapt the service-based application.
In general, to assure the desired quality of a service-based application, two complementary strategies can be employed: constructive and analytical quality assurance. Where the goal of constructive quality assurance is to prevent the introduction of faults (or defects) while the artifacts are created (in the sense of ‘correctness by construction’), the goal of analytical quality assurance is to uncover faults in the artifacts after they have been created. Three major classes of approaches for analytical quality assurance in service-based applications exist: (i) Testing, the goal of which is to (systematically) execute services or service-based applications with predefined inputs in order to uncover failures, (ii) Monitoring, which observes services or service-based applications as well as their context during their current execution, (iii) Static Analysis, the aim of which is to systematically examine (without execution) an artifact (e.g., a service specification) in order to determine certain properties or to ascertain that some predefined properties are met.