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.
The Web Services Agreement Specification, WS-Agreement , 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 ),
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.
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
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.
- ./@wsag:Name: Obligatory. Constructed from the XML-normalised name of the non-functional property and the suffix _GUARANTEE.
- ./@wsag:Obligated: Obligatory. In the usual case, this is set to ServiceProvider.
- ./wsag:GuaranteeTerm/wsag:ServiceLevelObjective/wsag:KPITarget/wsag:KPIName: The XML-normalised name of the non-functional property.
- ./wsag:GuaranteeTerm/wsag:ServiceLevelObjective/wsag:KPITarget/wsag:CustomServiceLevel: The "value-type" objectives as defined below.
- vt:Fix: A fixed numeric value.
- vt:Options: A list of numeric values, from which one must be chosen during negotiation.
- vt:Range: An interval of numeric values, from which one concrete value must be chosen during negotiation. The interval is specified using minimum and maximum numbers
as well as a step size through the attributes "MinValue", "MaxValue" and "Interval".
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.
- gt - greature than (>)
- gte - greature than or equal (>=)
- eq - equal (=)
- lte - less than or equal (<=)
- lt - less than (<)
The following schema formalises the "value-type" objectives.
The schema is also available for download.
<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:attribute name="ActValue" type="xs:anySimpleType" use="required"/>
<xs:attribute name="Metric" type="xs:string" use="optional"/>
<xs:element name="Range" type="vt:RangeType"/>
<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:element name="Options" type="vt:OptionType"/>
<xs:element name="Option" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="Fix" type="vt:ValueType"/>
This is a continuously extended list of software artefacts implementing the WSAG+VT specification.
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
-  WS-Agreement Specification: http://www.ogf.org/documents/GFD.107.pdf
-  J. Spillner: Methodik und Referenzarchitektur zur inkrementellen Verbesserung der Metaqualität einer vertragsgebundenen, heterogenen und verteilten Dienstausführung. Dissertation, 2010.