Service Composition in a Cloud Computing Environment
Abstract
Today, composite services can be constructed by combining and coordinating a set of independent services in a process referred to as a service composition. Due to their dependencies on external components, composite services are especially dependent on a reliable hosting environment. The next generation service delivery platform, cloud computing, is emerging as a hosting environment that can support these service compositions better than a traditional hosting environment. This is mainly due to cloud's virtual environment and features such as resource elasticity. However, today's service composition methodologies do not consider the cloud computing environment. The purpose of this thesis is to study the aspects of cloud computing that must be considered in service composition processes. This is done by investigating the effect of the cloud environment on service compositions. The results from our investigation show that the cloud environment solely supports service compositions. Furthermore, we identify that today's service composition methodologies must consider certain aspects of cloud computing, especially the non-functional properties of services, in order to fully exploit the benefits of cloud computing. To further support composite services, we propose an extension to existing service description languages, e.g. WSDL, to take advantage of the cloud's possibilities to describe the non-functional properties of services. This enables automated service compositions to discover component services based on non-functional properties as well as the traditional functional properties.Finally, we propose a service composition solution that increases the dynamicity of service compositions in the cloud environment. The solution benefits from the cloud service managers' ability to live-monitor the state of every service hosted in the cloud. By distributing monitoring data of the component services that constitute a composition to a composition framework, the framework can dynamically repair and optimize the composition. A prototype implementation serves as a proof of concept to show that this live-monitoring data enables a composite service to substitute component services based on their performance.