Abstract

To tackle the large scale QoS-based service selection problem, a novel efficient clustering guided ant colony service selection algorithm called CASS is proposed in this paper. In this algorithm, a skyline query process is used to filter the candidates related to each service class, and a clustering based shrinking process is used to guide the ant to the search directions. We evaluate our approach experimentally using standard real datasets and synthetically generated datasets and compared it with the recently proposed related service selection algorithms. It reveals very encouraging results in terms of the quality of solution and the processing time required.

1. Introduction

With the proliferation of the Cloud Computing and Software as a Service (SaaS) concepts, more and more web services will be offered on the web at different levels of quality [1]. There may be multiple service providers competing to offer the same functionality with different quality of service. Quality of service (QoS) has become a central criterion for differentiating these competing service providers and plays a major role in determining the success or failure of the composed application. Therefore, a Service Level Agreement (SLA) is often used as a contractual basis between service consumers and service providers on the expected QoS level. The QoS-based service selection problem aims at finding the best combination of web services that satisfy a set of end-to-end QoS constraints in order to fulfill a given SLA, which is an NP-hard problem [2].

This problem becomes especially important and challenging as the number of functionally equivalent services offered on the web at different QoS levels increases exponentially [3]. As the number of possible combinations can be very huge, based on the number of subtasks comprising the composite process and the number of alternative services for each subtask, using the proposed exact search algorithms [4, 5] to perform an exhaustive search to find the best combination that satisfies a certain composition level SLA is impractical. So, most of the researches are concentrated on heuristic-based algorithms especially the metaheuristic approaches aiming to find near-optimal compositions [6]. In [5], the authors propose heuristic algorithms that can be used to find a near-optimal solution efficiently. The authors propose two models for the QoS-based service composition problem and introduce a heuristic for each model. In [7], the authors present a genetic algorithm for this problem, in which a special relation matrix coding scheme of chromosomes and an evolution function of population are designed. A simulated annealing process is introduced to increase the population diversity. In [8], a new cooperative evolution (coevolution) algorithm consisting of a stochastic particle swarm optimization (SPSO) and a simulated annealing (SA) is presented to solve this problem. As a metaheuristic approach, the ACO algorithm is defined by Dorigo et al. [9], motivated by the intelligent behavior of ant system. It has been applied to solve many problems and obtained satisfying results [10, 11]. The research of its applications for service selection has been also made by several researchers. In [12, 13], the basic principle of ACO is expounded and the service selection based on the QoS is transformed into the problem of finding the optimization path. In [14], a service composition graph is applied to model this problem and an extended ant colony system using a novel ant clone rule is applied to solve it. In [15], an algorithm named multipheromone and dynamically updating ant colony optimization algorithm (MPDACO) is put forward to solve this problem, which includes a global optimization process and a local optimizing process. In [16], the ACO is combined with genetic algorithm to the service selection problem. But, these existing researches for this problem have the following shortcomings. The used construction graphs are static and their information granularities for this problem are too coarse, which makes these algorithms excessively rely on their local search processes. The efficiency of these existing service selection algorithms is not satisfying when the number of candidates becomes large. This is mainly because many redundant candidates exist. If they are not filtered beforehand, lots of search efforts will be wasted at running. Furthermore, if the promising areas are identified early, lots of searching efforts will be saved.

In this paper, the ACO algorithm is extended for solving the QoS based service selection problem, in which an unsupervised clustering process is used for constructing a directed clustering graph to guide the ants making exploration, and a dynamic expanding process is used to enlarge this path for ants making exploitation based on the obtained global information. Furthermore, the Multicriteria Dominance Relationships [17] are introduced to reduce the problem space for ant-based clustering [18] to further improve the service selection efficiency. We have compared our approach with the recently proposed service selection algorithms DiGA [7], SPSO [8], and MPDACO [15]. The performance of these algorithms has been tested on a variety of data sets provided from several real-life situations and synthetically generated datasets. The computational results demonstrate the effectiveness of our approach in comparison to these approaches. This paper is organized as follows. In Section 2, we give the definition of the QoS-based service selection problem and the basic ant colony algorithm. The CASS algorithm including its model and concrete algorithm description is provided in Section 3. Section 4 present experimental studies and compared the CASS with some other recently proposed algorithms. Finally, Section 5 summarizes the contribution of this paper along with some future research directions.

2. Problem Definition and Ant Colony Algorithm

2.1. The QoS-Based Service Selection Problem

For a composite application composed of a set of abstract services that is specified as abstract workflow , each abstract service corresponds to a service class , and consists of all services that deliver the same functionality but potentially differ in terms of QoS values. Since the value of a QoS attribute is published by the service provider, its value may be positive or negative. We use the vector to represent the QoS values of service , and the function determines the published value of the th attribute of the service . Then, the QoS vector for a composite service consisting of service components is defined as , where the is the estimated end-to-end value of the th QoS attribute. Although many different service composition structures may exist in the workflow, we only focus on the sequential structure, since the other structures can be reduced or transformed to the sequential structure, using for example, techniques for handling multiple execution paths and unfolding loops [18]. So the can be computed by aggregating the corresponding published values of component services.

Definition 1 (abstract metaworkflow). For an abstract workflow , it is an abstract metaworkflow if all its contained abstract services need to bind with a candidate service.

Definition 2 (abstract subworkflow). For an abstract metaworkflow , it is an abstract sub-workflow of   if the solution of composite application corresponding to is also a solution of composite application corresponding to .

Definition 3 (feasible selection). For a given abstract workflow and a vector of global QoS constraints , which refer to the user’s requirements are and expressed in terms of a vector of upper (or lower) bounds for different QoS criteria, we consider a selection of concrete services to be a feasible selection, if and only if it contains exactly one service for each service class of a sub-workflow of and its aggregated QoS values satisfy the global QoS constraints; that is, ,   for all  .

In order to evaluate the overall quality of a given feasible selection , a utility function is used which maps the quality vector into a single real value, which is defined as follows: with being the weight of to represent user’s priorities, being the minimum and maximum aggregated values of the th QoS attribute for composite service CS, and denoting an aggregation function that depends on QoS criteria shown as in Table 1.

Definition 4 (service selection). For a given abstract process and a vector of global QoS constraints , the service selection is to find the feasible selection that maximizes the overall utility function value.

2.2. The Ant Colony Optimization Algorithm

In nature, foraging ants communicate indirectly by depositing and sensing pheromone trails. This sets up a positive feedback loop that reinforces promising paths. The ACO algorithm is inspired by this behavior of real ants, in which the artificial ants complete a series of walks of a data structure, known as a construction graph. They lay pheromone trails on this graph edges and choose their path with respect to probabilities that depend on pheromone trails and these pheromone trails progressively decrease by evaporation. In most cases, pheromone trails are updated only after having constructed a complete path and not during the walk, and the amount of pheromone deposited is usually a function of the quality of the path. Furthermore, the probability for an artificial ant to choose an edge often depends not only on pheromones, but also on some problem-specific local heuristics. The classical ACO algorithm is shown as Algorithm 1.

 Set parameters and Initialize pheromone trails
Begin
= ;    //Take cost ;
repeat
  for each ant k do
    construct an assignment ;
    if fit( ) < fit( ) then
     ;
  endfor;
   update pheromone trails;
until the maximum evaluation number is arrived or
  the other termination condition is satisfied;
return   ;
End

At each cycle, each ant constructs a complete assignment and then pheromone trails are updated including the pheromone depositing and evaporating. The fit is a fitness function used to evaluate an assignment. We can see that when using the ACO metaheuristic to solve a new combinatorial optimization problem, one of the main tasks is to model the problem as the search of a feasible minimum cost path over a weighted graph, where the feasibility is defined with respect to a set of constraints.

3. The Clustering Based Ant Colony Algorithm for Service Selection

Obviously, for an application request with service classes and candidate services per class, there are possible combinations to be examined. So, when the number of functionally-equivalent services offered becomes large, how to effectively shrink the solution space and make the search quickly go right direction is very important. In the CASS algorithm, a skyline query process is used to filter the candidates related to each service class, and an unsupervised clustering process is introduced to partition the skyline services in per service class. Then a directed clustering graph is constructed based on clustering result to abstract the search space and used to guide the ants global searching.

Definition 5 (skyline services). The skyline of a service class , denoted by SLS, comprises the set of those services in that are not dominated by any other service; that is, . We regard these services as the skyline services of .

Definition 6 (dominance). Consider a service class and two services , characterized by a set of of QoS attributes. dominates , denoted as , if is as good as or better than in all parameters in and better in at least one parameter in , that is, for all   and .

Since not all services are potential candidates for the solution. Thus, a skyline query can be performed on the services in each class to identify those potential candidates for composition. In the CASS algorithm, the skyline query process is implemented using the fast nondominated process in [19]. If the candidate service number in the skyline of a service class is more than , an unsupervised clustering process is used to discover the similar candidate services, and the candidate service nearest to the cluster center is chosen to represent the service candidates in the th cluster. Then, a directed clustering graph which is used as a represented construction graph for ant colony searching is defined, and   ∣  , with , representing the start point and end point and and being the in-degree and out-degree of node . When eighty percent ants deposit the pheromone along the same path in , an expanding process is used to rebuild a construction graph based on this path for ants making exploitation, where and   ∣  . The pheromone of the new add vertex is set the same as its related cluster center . We can see that each vertex in these two graphs is associated with a binding relationship of a service class and its service instance.

In the CASS algorithm, the ants communicate by laying pheromone on graph vertices. The amount of pheromone on vertex is denoted by . Intuitively, the amount of pheromone represents the learnt desirability of binding the service class with its th service instance. As proposed in the MAX-MIN ant system [10], we explicitly impose lower and upper bounds and on pheromone trails . The goal is to favor a larger exploration of the search space by preventing the relative differences between pheromone trails from becoming too extreme during processing. Also, pheromone trails are set to at the beginning of the algorithm to achieve a higher exploration of the search space during the first cycle. The way for an ant constructing a complete assignment is outlined in Procedure 1.

For a given ant that is building the assignment and is currently at the vertex , its feasible neighborhood in the construction (i.e., CG or EG defined above) is defined as . The probability for this ant to select the vertex in its feasible neighborhood is computed as follows: where is the pheromone factor of vertex , is its heuristic factor, and and are the parameters that determine their relative weights. A main difference with many ACO algorithms is that the heuristic factor depends on the whole current set of visited vertices in . It is inversely proportional to the number of new violated constraints when adding to and computed as follows:

After every ant has constructed a complete assignment, the pheromone trails are updated. All pheromone trails are decreased uniformly in order to simulate evaporation and allow ants to forget bad assignments, and then the best ants of the cycle deposit pheromone. More formally, at the end of each cycle, the quantity of pheromone on each vertex is updated as in Procedure 2, where is the evaporation rate, , and ElitistsofCycle contains the best assignments constructed during the current cycle. The is the quantity of pheromone that should be deposited on vertex . It is defined as follows: We can see that the fitness value of an assignment is decided by both its utility value and whether any constraint has been violated by it. Based on the above descriptions, the framework of CASS algorithm can be formulated as Algorithm 2.

 Set parameters and Initialize pheromone trails
Begin
for  each service class  do
      use the skyline query process to identify its skyline services;
      Clustering the skyline services into several different clusters;
endfor;
 build the clustering graph and make it as the initial construct graph;
repeat
      ElitistsofCycle = ;
      for  each ant   do
          construct an assignment using Procedure 1;
          if fit( )<fit( ) then
            = ;
      endfor;
      find the best   assignments and add them into ElitistsofCycle;
      update pheromone trails using Procedure 2;
      if  (eighty percent ants obtained the same assignment) then
                  use the expanding process to fractionize the construction graph;
      endif.
until the maximum evaluation number is arrived or
    the other termination condition is satisfied;
return   ;
End

Begin
   for  each vertex v in the construction graph  do
     
     if     then   ;
     if     then   ;
   endfor
End

Begin
   ;
  repeat
     Select a vertex from the ant feasible neighborhood with a probability;
     Move the ant to this vertex, = ;
  until ( )
End

In this paper, the ant-based clustering algorithm proposed in [18] is used for the clustering process. Based on the clustering result, a cluster graph is constructed which provides insight into the large scale service selection problem space and is exploited to predict the subspace crucial to search. When a promising search area is identified, a dynamically expanding process is used to fractionize it for ants exploitation, which greatly improves the solving quality.

4. Experimental Evaluation

In this section, we present an experimental evaluation of our approach, focusing on its efficiency in terms of execution time and the quality in terms of the obtained best solution fitness value, and compare it with the recently proposed related algorithms DiGA [7], SPSO [8], and MPDACO [15] on different scale test instances. All algorithms are implemented in C++ language and executed on a Core (i7), 2.93 GHZ, 2 GB RAM computer.

4.1. Experimental Setup

In our evaluation we experimented with two types of datasets. The first is the publicly available updated data set called QWS (http://www.uoguelph.ca/~qmahmoud/qws/index.html), which comprises measurements of nine QoS attributes for 2507 real-world web services used in this paper. These attributes, priorities, and their aggregation functions are shown in Table 1. These services were collected from public sources on the web, including UDDI registries, search engines, and service portals, and their QoS values were measured using commercial benchmark tools. More details about this dataset can be found in [3]. We also experimented with three synthetically generated datasets in order to test our approach with larger number of services and different distributions through a publicly available synthetic generator (http://randdataset.projects.postgresql.org/): (a) a correlated data set (cQoS), in which the values of QoS parameters are positively correlated, (b) an anticorrelated (aQoS) data set, in which the values of the QoS parameters are negatively correlated, and (c) an independent dataset, in which the QoS values are randomly set. Each dataset contains 25000 QoS vectors, and each vector represents the nine QoS attributes of the one web service. Since all other models can be reduced or transformed to the sequential model using the techniques for handling multiple execution paths and unfolding loops [20], the sequential composition model is focused on in this paper. For the purpose of our evaluation, we considered a scenario, where a composite application comprises 10 different service classes. Each of the aforementioned datasets is randomly partitioned into the 10 service classes. Through this way, six different scale test instances are created and shown as in Table 2. The T1, T2, and T3 are built from QWS data set, and the other three are built from our synthesized datasets. Tc4 (2500) denotes a composite application with ten service classes, and each service class contains 2500 candidate services from the correlated data set. We then created several QoS vectors of up to 9 random values to represent the user end-to-end QoS constraints. Each QoS vector corresponds to one QoS based composition request, for which one concrete service needs to be selected from each class, such that the overall utility value is maximized, while all end-to-end constraints are satisfied.

4.2. Comparative Results

We run each algorithm twenty times on each test instance. The termination condition for all the algorithms on each test instance is set based on the maximum candidate evaluation number, which is set as . The colony size is set as 50 and the other parameters of the CASS algorithm are set as follows: , and . The parameters of the other three compared algorithms are set as the same as the original papers. We do not made much effort in finding the best parameter settings and leave this task for a future study based on the I-race package [21]. We run each algorithm twenty times on each test instance. The obtained best, worst, and average fitness values are given in Table 2, and the average consuming time for the compared algorithms on each test instance is shown in Figure 1. In order to show the solutions distribution more clearly, the fitness value obtained by an algorithm for th run is converted to a value using the following rule: where and are the minimum fitness value and maximum fitness value found by all the compared algorithms for this test instance. Then the solutions distribution based on value is shown as in Figure 2. The comparisons of their convergence properties for different scale problem are given in Figure 3.

From Figure 1, we can see that the CASS algorithm is faster than the other three compared algorithms for the test instances Tc4, Ta5, and Ti6 and slower than the other algorithms for T1, T2, and T3. The larger the test instance scale is, the faster it is than the other algorithms. This is mainly because the preprocessing phrase for skyline query process and the clustering process will occupy more proportion of the consuming time when the test instance is not large enough. From Table 2, we can clearly get that the proposed CASS algorithm performed greatly better than the compared algorithms. It obtained smaller upper bound, smaller average and smaller lower bound of fitness value which can be further proved by Figure 2. From this figure, we can see that the values of most solutions obtained by CASS algorithm are better than the average values of the solutions obtained by the other algorithms. The average convergence rate in 20 runs for each algorithm on different scale test instances are shown as in Figure 3 which can indicate the convergence properties of these algorithms explicitly. We can obtain that the CASS algorithm converges not faster than the compared other algorithms, but it is not easily trapped into local optimum and its convergent point is the best. So, we can conclude that the proposed CASS algorithm outperforms the compared methods in terms of the utility score, as well as execution time, and possesses competitive performance for the large scale service selection problem.

5. Conclusions

To tackle the large scale service problem, we propose the CASS algorithm in this paper which is based on the ACO algorithm, the skyline query technique, and the clustering technique. The results of experiment evaluation indicate that our approach excels in both utility and execution time. It not only provides a useful way to solve the service selection problem but also can give a reference for solving other optimization problem. There are a number of research directions that can be considered as useful extensions of this research. We can combine it with some local search strategy or hybrid it with other meteheuristic algorithms. Furthermore, how to tackle the QoS uncertainty during service selection in the CASS algorithm is our next studying problem.

Acknowledgments

This work was supported by NSFC Major Research Program (61100090, 61073062), the Special Fund for Fundamental Research of Central Universities of Northeastern University (110204006), and the Foundation for New Teachers of Education Ministry (20100042120040).