WS-Agreement variant WSAG+ValueTypes

About this document

Created by Josef Spillner on 25.04.2011. Updated on 14.06.2011 to account for basic comparison operators and a summary of differences to WSAG+TEXO. Based on previous work by Torsten Schiefer.

Introduction

The Web Services Agreement Specification, WS-Agreement [0], defines a contract language description and management protocol between a provider and a consumer of a service. Both contract templates and stateful negotiated agreements can be modelled. The states range from offered over created (active or violated) to expired. The extensible XML dialect chosen for WS-Agreement, which omits the precise definition of service level objectives, has led to several proposals of WS-Agreement extensions for certain contexts, such as multimedia services. However, for the domain of contract-driven service execution, a simple yet non-ambiguous specialisation of WS-Agreement is needed. Hereby we specify the ValueTypes extension to WS-Agreement. It is of low expressivity due to its restriction to single values and value ranges (referring to [1]), but likewise it is of low complexity for software developers. We differentiate between guaranteeable, quantifiable non-functional properties and service configuration options with functional or behavioural effects of interest to the user. Only the former are considered in this specification.

SLO Specification

WS-Agreement is extended by "value-type" objectives (dubbed WSAG+VT). The objectives refer to non-functional properties which are typed and have a numeric value. The objectives can be mapped from public service descriptions to agreement templates and agreements. The objective specifications are typically placed below the /wsag:Agreement/wsag:Terms/wsag:All/wsag:GuaranteeTerm subtrees. The following standard WS-Agreement clauses will be used. The objectives are of three different types in the template, optionally specified with a metric and combined with an operator. All types are mapped to the regular fixed single-value wsag:CustomServiceLevel statement for the actual agreement during the negotiation process.

Comparison Operators and Units

A comparison operator should be given for all numeric SLOs in the form of wsag:CustomServiceLevel/vt:Operator. If no operator is specified, equality is assumed. The following comparison operator values are available: For unit specifications, the regular mechanism of using /wsag:Agreement/wsag:Terms/wsag:All/wsag:ServiceProperties/wsag:VariableSet applies. Within this section, all expressions of ./wsag:Variable/wsag:@Name refer to SLO names whereas ./wsag:Variable/@wsag:Metric identifies a measurement or aggregation unit.

XML Schema

The following schema formalises the "value-type" objectives. The schema is also available for download.
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vt="http://www.example.org/value-types"
    targetNamespace="http://www.example.org/value-types" attributeFormDefault="qualified" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/2001/XMLSchema" schemaLocation="http://www.w3.org/2001/XMLSchema.xsd"/>
  <xs:complexType name="ValueType">
    <xs:attribute name="ActValue" type="xs:anySimpleType" use="required"/>
    <xs:attribute name="Metric" type="xs:string" use="optional"/>
  </xs:complexType>
  <xs:element name="Range" type="vt:RangeType"/>
  <xs:complexType name="RangeType">
    <xs:complexContent>
      <xs:extension base="vt:ValueType">
        <xs:sequence>
          <xs:element name="MinValue" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
          <xs:element name="MaxValue" type="xs:decimal" maxOccurs="1" minOccurs="1"/>
          <xs:element name="Interval" type="xs:decimal" maxOccurs="1" minOccurs="1"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Options" type="vt:OptionType"/>
  <xs:complexType name="OptionType">
    <xs:complexContent>
      <xs:extension base="vt:ValueType">
        <xs:sequence>
          <xs:element name="Option" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Fix" type="vt:ValueType"/>
</xs:schema>

Implementations

This is a continuously extended list of software artefacts implementing the WSAG+VT specification.

Compatibility Concerns

The WS-Agreement extensions developed within the TEXO research project (WSAG+TEXO) add technical and non-technical information from the Service Level module of the Unified Service Description Language (USDL) to SLA templates and thus to SLAs. From a technical perspective, it represents a subset of WSAG+VT. Operator and unit specifications are identical. However, value specifications are limited to value for single values and pairs of fromValue and toValue for ranges. Enumerations cannot be expressed in WSAG+TEXO. WSAG+TEXO uses wsag:Target within wsag:KPITarget for its SLO specifications, whereas WSAG+VT uses wsag:CustomServiceLevel. It is currently not possible to negotiate a range of values into a narrower range and attach an in-range/out-of-range comparison operator to it. Furthermore, priorities and preferences cannot currently be specified. Several scientific works would benefit from these extensions.

References