The selection of services represents a combinatorial problem if multiple crite- ... solution would result in an exponentially rising effort for a rising number of.
QoS-based Selection of Services: The Implementation of a Genetic Algorithm Michael C. Jaeger and Gero M¨ uhl TU Berlin, Institute of Telecommunication Systems Sek. FR 6-10, Franklinstrasse 28/29, D-10587 Berlin, Germany {mcj|gmuehl}@cs.tu-berlin.de
Abstract. In today’s businesses we can see the trend that service-oriented architectures (SOA) represent the main paradigm for IT infrastructures. In this setting, software offers its functionality as an electronic service to other software in a network. In order to realise more complex tasks or business processes that are comprised of individual services, compositions of these are formed. Thus, several research efforts cover the creation of service compositions, including their modelling, development and provision. In this setting, individual services must be selected that perform the tasks of the composition. This selection can consider the quality-of-service (QoS). This paper discusses the optimisation problem when selecting services while considering different QoS characteristics. For this problem, we investigate the application of a genetic algorithm. Based on previous research work, the implementation of this algorithm is tested in our simulation environment SENECA in order to compare its performance with other approaches. Furthermore we use the simulation environment in order to determine the impact of different parameters (e.g. mutation rate, fitness function) on the optimisation capability of the genetic algorithm.
1
Introduction
Service-oriented architectures (SOA) became a trend in today’s businesses for realising the interoperation of heterogeneous computer systems. This approach allows functionality offered by different systems to be tied together regardless of their underlying platforms. A main characteristic of the SOA is the use of common interaction protocols, interface description languages, and platform independent data types [4]. An important part in this area is the composition of services. The idea is to invoke individual services in a predefined arrangement in order to provide a more complex service. This idea resembles the task/process orientation of modern businesses, and several efforts exist today that discuss the design and development of service compositions. One research area in this field covers how to process the quality-of-service (QoS). The support of the QoS is important, because response time, cost or availability reflect natural business interests. A QoS-processing SOA allows businesses to express their demands and to make sure their requirements are fulfilled. Two main questions exist when dealing
with the QoS: a) What is the resulting QoS of the composition based on the QoS of the involved services, and b) how can the resulting QoS be optimised by selection of the optimal services for the composition? Regarding the first point, we have already published research work that explains the aggregation of individual QoS statements when forming compositions [5]. Regarding the second point, several authors including us have discussed the problem of selecting services taking multiple criteria into account [9, 13, 12, 6]. The selection of services represents a combinatorial problem if multiple criteria are considered at once. Thus, a brute-force approach for finding the optimal solution would result in an exponentially rising effort for a rising number of candidates. Therefore, we propose the application of heuristic approaches. In addition to the heuristics, we have also presented a simulation environment that stochastically produces problem instances in order to test different algorithms. For this paper, we present the results from the simulation of a genetic algorithm when applied to the selection problem. In conjunction with our previous research, our particular contributions are: – Comparison of a genetic algorithm with other heuristic approaches. This comparison has been conducted in our simulation environment SENECA [7]. – Investigation of the impact of different parameters of the implemented algorithm on the resulting QoS optimisation performance. The remainder of this paper is organised as follows: At first, an overview about the aggregation of QoS is given in Sections 2 and 3. Then, in Section 4, we discuss the QoS-aware selection and how a genetic algorithm is implemented. In Section 5, a simulation of the genetic algorithm and a comparison with other heuristics are presented. The paper ends with related work presented in Section 6 and our conclusions in Section 7.
2
QoS in Service Compositions
For the aggregation of the QoS in compositions based on the QoS of individual services we have introduced and discussed an aggregation method in previous work [5]. Very briefly, a block structured language is used to model the composition. The types of blocks used in this model were derived from the workflow patterns by van der Aalst et al. [11]. Based on this structural model, the aggregation can be performed at the level of each building block, i.e., not the entire composition is relevant at once, but the local pattern elements. To perform the aggregation, the building blocks are stepwise collapsed into one remaining QoS statement that covers the composition. In our case, a statement gives only maximal or minimal limits and thus always represents an approximation of the actually delivered QoS during runtime. Statements about the actually delivered QoS must involve the distribution of executed services in conditional cases and are also possible with such a kind of aggregation model.
Block structured languages have the disadvantage that they cannot adequately represent arbitrary flow structures, such as arbitrary GOTO-statements. Kiepuszewski et al. discuss the limitations of these languages and also present transformations from some arbitrary structures to referring structured elements [8]. For this work, the approach to use structured flow descriptions provides a feasible method for the aggregation of the QoS in a simulation environment which involves the limitation not to cover some cases of unstructured flows. For a detailed discussion about the aggregation of particular QoS characteristics we also refer to our previous work [5]. The proposed aggregation method and the upcoming model of the QoS-based selection is not limited to particular QoS characteristics. However, the upcoming simulation (cf. Section 5) considers concrete QoS characteristics, because previous research has shown that value ranges and the nature of the QoS measure (i.e. relative or absolute) have an impact on the optimisation capability [7]. The considered measures are response time, cost, reputation, which represents the average ranking given by users of the service, and availability, which denotes a probability for successfully invoking the service.
3
QoS-based Selection of Services
A selection algorithm identifies an assignment of service candidates to the tasks in the composition considering selection criteria, for which we consider the QoS. If just a single criterion is considered, this task is trivial: the candidate offering the best QoS is assigned. If more than one criterion is considered at once, a multiple criteria decision problem arises: Lee [9] has explained the N P -hardness of the basic problem by mapping it onto a multiple-choice knapsack-problem (MCKP). Zeng et al. [13] propose to use integer linear programming methods for solving the problem. Yu and Lin propose applying an algorithm for solving MCKPs which is based on a dynamic programming approach [12]. The mapping onto the MCKP presumes that the composition can be mapped to an execution path that represents an execution sequence, because a MCKP problem formulation requires to have a globally applying aggregation function. In order to avoid this presumption, we model the problem differently from the knapsack problem. Our problem model is based on the structural patterns of the aggregation method. A criteria independent and structure aware problem model is formulated as follows [7]: – A set of tasks T = {t1 , t2 , . . . , ta } where the number a represents the total number of tasks. Then, we have the outcome of a discovery process which is a set of candidate-sets U = {S1 , S2 , . . . , Sa } each holding the set of candidates Si = {si1 , si2 , . . . , sibi }, i = 1, . . . , a, for a particular task ti ∈ T. The variable bi denotes the number of candidates found for a particular task. – Different QoS characteristics are denoted with an index from 1 to q, with q denoting the total number of QoS characteristics. Then, a QoS-vector or -tuple is used to represent a candidate that holds the different QoS values
.
denoted by the index n, n = 1, . . . , q: sij = (sij 1 , sij 2 , .., sij q ) with index i = 1, . . . , a denoting the referring task and index j = 1, . . . , bi denoting the number of the according candidate at task i. In summary, the set U represents a set of sets of vectors or tuples. – For each considered QoS characteristic the referring value of the QoS vector is subject to an optimisation function which depends on the direction of the characteristic. The direction denotes whether a smaller or larger value represents a better quality. Thus, the optimisation criterion demands to find the optimal – minimal or maximal – resulting QoS value aggregated by our aggregation method f : {minimise|maximise} f (U) Then, one or more QoS categories can be relevant for expressing a constraint. Depending on the direction of the considered QoS category with index n, the constraint denotes anupper or lower bound for the resulting aggregated value: {cn > |cn