Article Preview
TopIntroduction
Web service is autonomous software system which can be advertised, located and accessed through messages transmitted using Internet protocols (Liangzhao, Boualem et al. 2004). In general, abstract service is used to describe a group of functionally equivalent concrete services. Many Web services implement same functionality but different nonfunctional characteristics, i.e., QoS parameters. A composite service is composed of some abstract services, each of them can be bound one or more concrete services to satisfy the QoS constraints imposed by the SLA (Tao, Yue et al. 2007).
Web services operate autonomously in highly variable environments. It is likely that the actual QoS values of services may deviate from the initial estimates (Gianpaolo, Leandro et al. 2012). In the worst case, the result of deviations from estimated QoS and actual execution profiles of composite service might not be compliant with the agreed SLA. Such dynamic nature of Web services initiates the need to renew the bindings between abstract services and concrete services. Many approaches monitor the QoS for the running services and re-estimate various qualities attributes’ parameters expected for the composite service. When a large deviation from estimated values and actual running status is monitored, then the slice of the service workflow that still has to be executed will be determined, simply referred to as rebinding slice (Gerardo, Massimiliano et al. 2008). In finally, a new execution plan will be revised for the rebinding slice at runtime according to the current execution status (i.e., the actual QoS delivered by successfully completed services) (Danilo and Barbara et al. 2007; Lina, Simon et al. 2013; Marie, Roberto et al. 2013).
However, above researches assume that the tasks (In the rest of paper, we use task and abstract service inter-changeably) are independent with each other in the workflow, the binding between task and concrete service is unrelated with other tasks. They ignore a potential fact: there may be existing correlations among Web services that influence the quality of each other. Consider a travel planner composite service as shown in Figure 1a. Each task has several candidate services, with price of these services in Figure 1b. Suppose the hotel Holiday Inn gives a special price (100 instead of 200) if the payment tool user chosen is HSBC credit card, due to the partnership between them. If we assume independence between individual services, then we cannot get the discount price. This means that there is potential correlation between payment and hotel task. On the other hand, if Hilton Hotel and Southern Airlines are clients of HSBC, due to network environment (all the operations are finished inside the bank HSBC), the response time will be shorter and operations will be more reliability. Therefore, ignore the correlations among individual services would negatively affect the result of composite service selection or reselection. Currently, some dependencies among services are studied and modeled. But these approaches assume the correlations have already existed (Lina, Simon et al. 2012; Peter and Maria 2010) or service providers have declared the correlations in the services specification (Hua, Fei et al. 2010; Fei, Dongming et al. 2010). They only introduce the QoS description mode supporting service correlation or some correlation-based composite service selection method. Despite presenting an array of correlation-based modeling methods, there is no serious discussion about how to extract the correlations. This would directly limit application scope of correlation-aware modeling methods.
Figure 1. “Travel Planner” composite service