Reliability Analysis of Service Composition with Service Pools and Optimal Configuration of Service Pool Size

Reliability Analysis of Service Composition with Service Pools and Optimal Configuration of Service Pool Size

Pan He (Chongqing University, China) and Qi Xie (Chongqing University, China)
DOI: 10.4018/978-1-4666-2854-0.ch015


The reliability of applications in Cloud will be highly affected by the reliability of underlying service component. Service pools with redundant services are mainly used to improve the reliability of service composition. This chapter proposes an optimal service pool size configuration method aiming at minimizing the overall cost or response time of service composition while meeting certain reliability constraints. The reliability, cost, and response time analysis of service composition with multiple service pools is first analyzed using probability analysis method and architecture-based approach. After that, the optimization problem is presented and classified into three categories. For single-objective problems, a dynamic programming algorithm is presented to get near-optimal solutions. For multi-objective problems, a hybrid genetic algorithm is proposed to search nondominated sets of solutions. This hybrid genetic algorithm employs a sensitivity-based local search operator. Empirical studies results showed that the algorithms could find optimal solutions for the three kinds of problems and they outperformed the exiting approaches including greedy selection method and traditional genetic algorithms.
Chapter Preview

1. Introduction

As the service oriented architecture (SOA) turns out to be a great choice to build business applications(Li et al., 2010), web services and service composition have aroused the attention from both researchers and developers. For example, Google has published a variety of online APIs for users to invoke through standard format as json or xml, including map services(Google, 2012) and so on; there are dozens of services providing weather information throughout the world(WebXml, 2012). While could computing becomes more and more popular (Yang et al., 2012), web service and service compositions also appear to be the fundamental technologies in the Cloud computing environment since they could be invoked through the network (Yang, 2011). For instance, Amazon has delivered a set of services that together form a reliable, scalable, and inexpensive computing platform in the Cloud (Amazon, 2012). To deliver high reliable and sustainable services in Cloud environment, the reliability analysis and optimization of service composition has been a great concern to many researchers. Different from the traditional software components, web service in a composition could be replaced by other services with similar functionality in the runtime. To improve the reliability of web services and the corresponding composition, there are primarily two approaches (Dai et al., 2009). One is to reselect the service to use in the runtime (Zeng et al., 2004), but it is not feasible due to the time complexity of service discovery and selection, which may interrupt the service execution. The other is to rank services in advance and pre-select the service with the highest reliability (Wen et al., 2009). However, the pre-selected service might be unavailable during the runtime, so redundant services should be registered as backups (Zheng & Lyu, 2009). As a result, service pool has become the usual approach to improve the reliability perceived from the user side (Wang et al., 2009). Service pool is a set of redundant services with similar functionality and works like the traditional redundancy mechanism for a single service. Multiple service pools would be registered for different services in a single composition and the services pools are independent from each other.

The size of a service pool refers to the number of redundant services in the pool. Like traditional redundancy mechanism, reliability improvement could be achieved in runtime by increasing the service pool size for each service in a composition. However, increasing service pool size also brings more cost and decreases the overall performance. To achieve a balance between reliability and cost, it is a natural question of how to choose the appropriate size for each service pool in a composition. Existing works on optimal service pool size configuration mainly has three problems: 1) service pool size is determined from experiments without providing an analytical method on the service pool reliability evaluation. 2) Unlike traditional software systems which run on a single machine, response time is also an important measure for service composition or other distributed software systems. However, existing work don’t consider the opposite impact of pool size change on service pool reliability and performance. 3) Only the local reliability is taken into consideration when choosing the pool size, while ignoring the whole service composition’s reliability.

Complete Chapter List

Search this Book: