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.