Towards Composition as a Service – A Quality of
Service Driven Approach
Florian Rosenberg, Philipp Leitner, Anton Michlmayr, Predrag Celikovic, Schahram Dustdar
Distributed Systems Group, Technical University Vienna
Argentinierstrasse 8/184-1, 1040 Vienna, Austria
{florian, leitner, anton, celikovic, dustdar}@infosys.tuwien.ac.at
Abstract— Software as a Service (SaaS) and the possibility to
compose Web services provisioned over the Internet are impor-
tant assets for a service-oriented architecture (SOA). However, the
complexity and time for developing and provisioning a composite
service is very high and it is generally an error-prone task. In this
paper we address these issues by describing a semi-automated
“Composition as a Service” (CAAS) approach combined with a
domain-specific language called VCL (Vienna Composition Lan-
guage). The proposed approach facilitates rapid development and
provisioning of composite services by specifying what to compose
in a constraint-hierarchy based way using VCL. Invoking the
composition service triggers the composition process and upon
success the newly composed service is immediately deployed
and available. This solution requires no client-side composition
infrastructure because it is transparently encapsulated in the
CAAS infrastructure.
I. I NTRODUCTION
Over the last years, the Software as a Service (SaaS)
concept has gained momentum as a means to offer software as
well-defined services over the Internet. Implementing SaaS is
typically achieved by leveraging service-oriented architecture
(SOA) design principles such as loose coupling and self-
describing service interfaces. Web services as one technology
for implementing SOAs can help to achieve this vision by
providing standards such as WSDL [1] as service description
language and SOAP [2] as transport protocol.
One of the main benefits of implementing a well-shaped
SOA is the ability to compose new functionality out of
existing services into so-called “composite services”, thus
significantly increasing reuseability of existing services. This
process itself is called composition [3] or orchestration and
needs a composition engine to enact a composed service (or
application)
1
.
Typically, two major issues have to be addressed before
adopting service compositions: Firstly, which composition
approach should be used allowing an adequate description of
functional and non-functional aspects of a composed service?
These include functional aspects such as the services to be
used, non-functional aspects such as Quality of Service (QoS)
concerns as well as the specification of the control and/or data
flow (depending on the composition language). Secondly, how
are these composed services deployed and provisioned to allow
other software artifacts to invoke them?
1
We use the terms composite service, composite application and composi-
tion interchangeably in this paper.
Currently, several approaches to engineer composite appli-
cations exist. The vast majority of developers use a purely
static approach to build a composition by manually selecting
available services and specifying the control flow to define
the composition logic. Static compositions can be built for
example by using WS-BPEL [4] or the Microsoft Windows
Workflow Foundation [5]. The static nature of a composition
poses a real problem, for example, when services need to
be dynamically selected or exchanged from a pool of sim-
ilar services based on changing Quality of Service (QoS)
attributes such as response time, throughput or availability.
So-called dynamic service adaptation mechanisms for static
approaches have been introduced to overcome this problem
and increase availability and fault-tolerance of Web service
compositions [6], [7].
In terms of service deployment and provisioning, a service
composition infrastructure is required to enable the deploy-
ment of composite services and atomic services (if not hosted
otherwise). Currently, most deployment aspects include a
number of (often ’hand-crafted’) tasks leading to a successful
deployment. This process is usually very cumbersome and
error-prone. Especially for small and medium sized enterprises
(or even individuals) the required infrastructure to host com-
posite services is often not available or simply too expensive
in terms of acquisition cost and maintenance.
In this paper we address these two aforementioned issues by
adding the CAAS approach to our VRESCO SOA runtime [8],
[9], [10], [11], [12] and enable the specification of composite
applications with VCL. VRESCO itself provides a uniform
programming model and SOA runtime that addresses issues
such as service publishing, querying, versioning and service
mediation based on a uniform service metadata model. A
detailed description of all the VRESCO aspects is out of scope
of this paper, we refer the interested reader to our previous
work.
The contributions of this paper can be summarized as
follows: Firstly, we put forward a textual domain-specific
language (DSL) named VCL (Vienna Composition Language)
that was developed solely for the purpose of specifying service
compositions. The novelty of VCL is the ability to specify
constraints describing functional and non-functional aspects
of a composition using a constraint hierarchy-based approach.
Quality of service (QoS) is a first-class entity of the DSL
enabling a QoS-aware composition.
IEEE International Conference on Data Engineering
1084-4627/09 $25.00 © 2009 IEEE
DOI 10.1109/ICDE.2009.153
1733
IEEE International Conference on Data Engineering
1084-4627/09 $25.00 © 2009 IEEE
DOI 10.1109/ICDE.2009.153
1733
IEEE International Conference on Data Engineering
1084-4627/09 $25.00 © 2009 IEEE
DOI 10.1109/ICDE.2009.153
1733
Authorized licensed use limited to: Universitatsbibliothek der TU Wien. Downloaded on September 29, 2009 at 07:40 from IEEE Xplore. Restrictions apply.