9
Multiagent and Grid Systems – An International Journal 3 (2007) 9–17 IOS Press
Using genetic algorithm to implement cost-driven web service selection Lei Cao, Minglu Li and Jian Cao Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai 200240, China E-mail:
[email protected]; {li-ml,cao-jian}@cs.sjtu.edu.cn
Received 6 May 2006 Revised 14 August 2006; 15 September 2006 Accepted 9 October 2006
Abstract. Web services composition has been one of the hottest research topics. But with the ever-increasing number of functional similar web services being made available on the Internet, there is a need to be able to distinguish them using a set of well-defined Quality of Service (QoS) criteria. The cost is the primary concern of many business processes. This paper proposes a new solution using Genetic Algorithm (GA) to implement cost-driven web service selection. GA is utilized to optimize a business process composed of many service agents (SAgs). Each SAg corresponds to a collection of available web services provided by multiple service providers to perform a specific function. Service selection is an optimization process taking into account the relationships among the services. Better performance has been gotten using GA in the paper than using a local service selection strategy. The global optimal solution might also be achieved with proper GA parameters. Keywords: Genetic Algorithm, web service selection, multi-agent system, cost-driven
1. Introduction Web services are self-describing software applications that can be advertised, located, and used across the Internet using a set of standards such as SOAP, WSDL, and UDDI [1]. A single web service is most likely inadequate to serve the customers’ business needs; it takes a selection of various web services composed together to form a business process. Web services composition [2] has been one of the hottest research topics in this new field. However, with the ever-increasing number of functional similar web services being made available on the Internet, there is a need to be able to distinguish them using a set of well-defined Quality of Service (QoS) criteria. QoS is a broad concept that encompasses a number of non-functional properties such as cost, response time, availability, reliability, and reputation [3]. These properties apply to both standalone web services and web services composed of other web services (i.e., composite web services). Typically, cost
and time are two primary factors that customers are concerned about. The challenge is to select the services that not only satisfy the individual requirements but also best fit the overall composed business process. Therefore, the entire business process needs to be optimized prior to execution. The philosophy of Genetic Algorithm (GA) [4] mimics the evolution process of “the survival of the fittest” in nature. GA is a parallel global optimization algorithm with high robustness, and it is not restricted by the nature of the optimization problem, such as continuity and differentiability. Only the objective function and the corresponding fitness level influence the direction of search, so it is very suited to those complicated optimization problems that cannot be handled efficiently by traditional optimization algorithms (methods of calculus or techniques of exhaustive search). This paper proposes a new solution using GA to implement cost-driven web service selection. It takes the cost as the primary concern of many business processes. Using an integer string to represent a web services
ISSN 1574-1702/07/$17.00 2007 – IOS Press and the authors. All rights reserved
10
L. Cao et al. / Using genetic algorithm to implement cost-driven web service selection
Fig. 1. Model architecture.
composition, the best one is the string that leads to the lowest cost. A service selection model using GA is proposed to optimize a business process composed of many service agents (SAgs). Individual SAg corresponds to a collection of available web services provided by multiple service providers to perform a specific function. Service selection using GA is an optimization process taking into account the relationships among the services. The web service selection model proposed in this paper is based on a multi-agent platform, which is a distributed environment. All agents cooperate with each other to accomplish the optimization process. The remainder of the paper is organized as follows. Section 2 describes GA utilized in the web service selection model. In Section 3, a service selection case is presented. Section 4 discusses related work. Finally, Section 5 concludes the paper.
2. GA utilized in Web service selection model 2.1. Web service selection model architecture The web service selection model is based on a multiagent platform, which is composed of multiple components (See Fig. 1). 1. Service Agent (SAg) corresponds to a list of web services that have the specific function. Its ca-
pability depends on the specific function. SAg possesses all useful information about these web services, such as cost, response time, and so on. In order to facilitate dynamic selection, up-todate information concerning parameters that affect the decision of web service activation must be gathered. 2. UDDI agent (UAg) is the broker of inner SAgs when asking for outer UDDI registry. SAg might get information about required web services via UAg. 3. Information agent (IAg) is the information center of the model. All SAgs must register themselves with it. Qos values of all web services in SAg are also stored in IAg. When Qos values of some web services change, SAg will update them in IAg with push way in time. It can ensure that IAg has the updated QoS values of all related web services. 4. Service composition agent (SCAg) is responsible for administering the composite business process as a services flow (SF). Using the modeling tool, users can model the SF in advance. The model is composed of many predefined or customized SAgs. GA module is the core of SCAg. GA module will get related QoS values of web services in the model from IAg. Before the composite business process is instantiated, SCAg will activate GA module to optimize the service selection to get the final executable SF.
L. Cao et al. / Using genetic algorithm to implement cost-driven web service selection
5. ACL channel [5] is the communication bus among these agents mentioned above. 2.2. Problem objective function There are two kinds of service cost: (1) The service itself is a kind of merchandise. It might be an information-providing service. Its execution needs paying. In this paper it is called service execution cost and denoted cost(exec); (2) The service helps clients merchandise. Its provider might be retailer, travel agency or others. It provides a purchasing interface for the clients. After the service is executed successfully, the purchasing cost is generated. It is also called service generation cost and denoted cost(gene). This paper assumes that one service has only one type of cost. Therefore the service cost can only be either service execution cost or service generation cost. For example, the service cost in the following case actually refers to service generation cost. For the sake of simplicity, this paper will not explicitly distinguish them and denote both of them service cost in the following sections. When the cost becomes the sole primary factor that customers are concerned about, the service selection is equivalent to a single-objective optimization problem. There are mainly two kinds of service flow. 2.2.1. Pipeline service flow For a pipeline services flow that has N steps (N SAgs in an execution path, < S 1 , S2 , . . . , SN >), it only has one type structure: sequence one. The control flow will come through all its SAgs, and only one proper web service in each SAg will be chosen to bind to. The symbol S ij denotes the j th service of Si . The size of Si means the number of web services it has. Given that Cij denotes the selection of web service S ij to execute by S i (value ‘1’ stands for selected and ‘0’ stands for not selected), the following constraints must be satisfied: size (Si ) Cij = 1, ∀i = {1, . . . , N } j=1 (1) size (Si ) = |Si | Cij ∈ [0, 1] The overall cost of the SF is equal to the summation cost of all its components. cos t(SF ) =
(Si ) N size i=1
j=1
(cos t(Sij ) ∗ Cij )
size (Si ) = |Si |, ∀i ∈ [1, . . . , N ] The objective function is: M in cos t(SF )
(2)
11
2.2.2. Hybrid service flow For a hybrid services flow that has N steps (No more than N SAgs in an execution path, < S1 , S2 , . . . , SN >), this paper assumes it has four type structures: sequence one, parallel one, conditional branching one and iterative one. Since the iterative structure can be gotten from the former three ones, we don’t give it consideration here. For some SAgs linked by conditional branching structure, only one of them can be passed by the control flow at one execution. The symbol CFi denotes the selection of SAg S i to execute in one execution path. It will have the value ‘1’ if S i is selected, otherwise the value ‘0’. The size of S i means the number of web services it has. Same as the definitions given in Section 2.2.1, the symbol S ij denotes the j th service of Si and the symbol C ij denotes the selection of web service S ij to execute by S i . The overall cost of the hybrid SF is described as follows: (Si ) N size
(cos t(Sij )∗CFi ∗ Cij ) (3) size (Si ) = |Si |, ∀i ∈ [1, . . . , N ] CFi ∈ [0, 1], ∀i ∈ [1, . . . , N ] cos t(SF ) =
i=1
j=1
Thus the hybrid SF has some different execution path. The overall cost of each execution path can always be represented by the summation cost of its subset components. cos t(SF ) =
(Si ) M size i=1
j=1
(cos t(Sik ) ∗ Cij )
size (Si ) = |Si |, ∀i ∈ [1, . . . , N ] M N
(4)
The objective function is also: M in cos t(SF ) 2.3. GA module The philosophy of GA mimics the evolution process of “the survival of the fittest” in nature. A fitness function is firstly defined to evaluate the quality of an individual, called a chromosome, which represents a solution to the optimization problem. GA starts with a randomly initialized population. The population then evolves through a repeated routine, called a generation, in which GA employs operators such as selection, crossover, and mutation borrowed from natural genetics to improve the fitness of individuals in the population. In each generation, chromosomes are evaluated by the fitness function. After a number of generations, highly fit individuals, which are analogous to good solutions to a given problem, will emerge.
12
L. Cao et al. / Using genetic algorithm to implement cost-driven web service selection
2.3.1. Solution representation The representation scheme determines how the problem is structured in GA and also influences the genetic operators that are used. Which kind of solution representation is used in GA depends on characteristics of the optimization problem. Traditional GA encodes each problem solution into a binary string, called chromosome, which facilities studying GA by schema theorem. However, the binary encoding is not humanreadable, which makes it difficult to develop efficient genetic operators that can make good use of the specialized knowledge for the service selection problem. The integer encoding provides a convenient and natural way of expressing the mapping from representation to solution domain. With integer encoding, the interpretation of the solution representation for service selection is straightforward, so the integer encoding is used in this paper. The solution to service selection is encoded into a vector of integers, where the ith element of an individual is k if the k th web service in SAgi is selected. For example, the service flow has four SAgs {S 1 , S2 , S3 , S4 }, each of which has four candidate services, and one possible individual is [1 4 2 3]. Then the corresponding composite service is {S11 , S24 , S32 , S43 }, which means the 1 th service of , the 4th service of , the 2 th service of and the 3 th of are selected concurrently. 2.3.2. Fitness function The fitness function is responsible for evaluating a given individual and returning a value that represents its worth as a candidate solution. The returned value is typically used by the selection operator to determine which individual instances will be allowed to move on to the next round of evolution, and which will instead be eliminated. Highly fit individuals, relative to the whole population, have a higher probability of being selected for mating, whereas less fit individuals have a correspondingly low probability of being selected. To facilitate the selection operation in GA, the global minimization problem is usually changed into a global maximization problem. Through transforming Eq. (2) or Eq. (4), the proper fitness function for the service selection problem can be obtained: N size U − (Si ) cos t(SF ) < U i=1 j=1 (5) F = ( cos t(Sij ) ∗ Cij ) 0 cos t(SF ) U Where U should select an appropriate positive number to ensure the fitness of all good individuals are pos-
itive in the feasible solution space. On the other hand, U can also be utilized to adjust the selection pressure of GA. When U is increased, the relative fitness of good individuals is reduced, so the selection pressure is decreased, which can prevent the evolution process from premature convergence to get trapped into local minimums. But a too large U will slow down the evolution process, therefore the computing time will increase. 2.3.3. Population initialization The population initialization creates the first population and determines the starting point for the GA search routine. An individual is generated by randomly selected web service for each SAg of the services flow, and the newly generated individual is immediately checked to see whether the corresponding solution satisfies the constraints. If any of the constraints is violated, then the generated individual is regarded as invalid and discarded. The process is repeated until enough individuals are generated. The population size pop size ∈ [20, 100] is generally recommended. 2.3.4. Genetic operators GA uses selection operator to select the superior and eliminate the inferior. The individuals are selected according to their fitness – the more suitable the more chances they have to reproduce. For the service selection problem, the popular Roulette wheel method is used to select individuals to breed. This method selects individuals to reproduce based on their relative fitness, and the expected number of offspring is approximately proportional to that individual’s performance, i.e. if one individual is twice as fit as another, then it is twice as likely to be selected and so on. At the same time, it is hoped the fittest individual can be retained in the offspring, so an Elitism reservation strategy is applied, which always passes the fittest individual to the next generation, i.e. the individual with the highest fitness does not take part in crossover and mutation operation, instead it is used to replace the offspring with the lowest fitness generated by the crossover and mutation operation. GA uses crossover operator to breed new individuals by exchanging partial chromosome of the mated parents in stochastic mode. The crossover probability pc ∈ [0.5, 1.0] is generally recommended. The purpose of crossover is to maintain the qualities of the solution set, while exploring a new region of the feasible solution space. For the service selection problem, the single-point crossover operator is used: single crossover point is generated in the mated parents
L. Cao et al. / Using genetic algorithm to implement cost-driven web service selection
13
Fig. 2. Crossover operator and Mutation operator.
Fig. 3. A pipeline services flow.
at random, and then the two parents exchange the tail portion after the crossover point to create two new offspring (See Fig. 2). After each crossover operation, the offspring are immediately checked to see whether the corresponding solutions are valid. If any of constraints is violated, then both offspring are discarded and the crossover operation for the mated parents is retried. If the valid offspring still cannot be obtained after a certain number of retries, the crossover operation for these two parents is given up to avoid a possible infinite loop. GA uses mutation operator to add diversity to the solution set by replacing an allele of a gene by another in some chromosomes in stochastic mode. The mutation probability p m ∈ [0, 0.05] is generally recommended. The purpose of mutation operation is to avoid losing useful information in the evolution process. From another point of view, the mutation operation can improve the local search performance of GA. Together with crossover operation they complete the local and global search of the solution space. For the service selection problem, the stochastically selected SAg is randomly bound to a web service different from the original one (See Fig. 2). After an offspring is mutated, it is also immediately checked to see whether the corresponding solution is valid. If any of constraints is violated, then the mutated offspring is discarded and the mutation op-
eration for the offspring is retried. Because the mutation operation is carried out at a very small probability, the probability of generating invalid solution is also very small. Even if the invalid solution is generated, a valid solution can be easily obtained through a number of retries. 3. A case study and the implementation This paper assumes that there are twenty tasks in a pipeline SF and each of them can be accomplished by a service agent (SAg) (See Fig. 3). The SF may be a practical “Travel arrangement” composite service. Each kind of services might have multiple providers, and a service provider (SP) could provide several kinds of services. Relationships among those SPs are assumed as follows: 1. No direct business competing relationship: They could cooperate with each other to complete a business. 2. Rational business competing relationship: They could cooperate with each other to complete a business. 3. Non-rational business competing relationship: They could never cooperate with each other to complete a business.
14
L. Cao et al. / Using genetic algorithm to implement cost-driven web service selection Table 1 Services cost
SAg1 SAg2 SAg3 SAg4 SAg5 SAg6 SAg7 SAg8 SAg9 SAg10 SAg11 SAg12 SAg13 SAg14 SAg15 SAg16 SAg17 SAg18 SAg19 SAg20
WS1 642 1025 435 1314 1763 2077 521 1451 603 808 822 1786 986 1483 781 1588 875 1536 1640 1437
WS2 683 1093 472 1393 1799 2075 539 1447 645 829 839 1795 947 1465 755 1553 870 1531 1644 1427
WS3 642 1063 474 1308 1732 2057 512 1410 661 814 839 1796 953 1408 759 1595 819 1525 1649 1439
WS4 691 1083 454 1367 1752 2089 549 1449 605 822 802 1769 943 1404 742 1528 868 1591 1692 1418
WS5 616 1091 407 1390 1714 2016 502 1452 604 885 801 1720 935 1483 790 1585 895 1551 1635 1403
WS6 663 1015 410 1349 1746 2061 580 1457
WS7 612 1078 480 1385 1768 2046 579 1427
WS8
WS9
WS10
WS11
WS12
WS13
WS14
WS15
1011 424 1350 1741 2092 525 1430
1356 1732 2073
1327 1719 2051
1749 2083
1707 2090
2079
2098
2007
1443
1474
1408
1464
1427
1493
1432
868 841 1787 975 1492 751 1545 884 1555 1619 1442
811 870 1714 912 1465 758 1591 851 1575 1685 1495
814 831 1756 927
1747 926
1782 909
1703 924
1765 960
991
920
991
775 1580 877 1518 1697 1408
763 1591 858 1502 1660 1442
778
772
767
732
773
852 1504 1671 1457
848 1532 1603 1478
832 1576 1692 1484
882 1697 1410
1408
1452
Table 2 Constraint library 1 2 3 4 5 6
CONSTRAINT { B(SAg1) = 1, B(SAg3) = 2 } { B(SAg12) = 2, B(SAg15) = 2 } { B(SAg2) = 2, B(SAg4) = 3, B(SAg5) = 4 } { B(SAg9) = 2, B(SAg18) = 5 } { B(SAg8) = 2, B(SAg10) = 5 } { B(SAg3) = 6, B(SAg5) = 4, B(SAg7) = 3, B(SAg11) =5 }
4. Fellowship in business alliance: They are willing to cooperate with each other to complete a business, and they would promise their common customers that some kind of discount will be given for their fellowship. Due to these business rules, there are different relationships among the services in a business process. These relationships must be taken into account when the final services are selected as part of the optimization process. 3.1. Initial data In Table 1, it is shown that each SAg might have various candidate numbers from 5 to 15 predefined at random. Different choices of web services in each SAg might have different cost. Each SAg’s maximum cost is marked with red color and minimum cost with blue color. For Eq. (5), the summation of all SAgs’ maximum cost is taken as the constant U , and gotten $24385 as the value of U . The individual fitness can be regarded
TYPE Special Special Special Special Special Invalid
ACTION Modify (Discount = 0.1) Modify (Discount=0.2) Modify (Discount=0.2) Modify (Discount=0.1) Modify (Discount=0.2) Discard
as how much can be saved after the SF execution if the travel agency has been given the money U to arrange the traveler’s trip. If the local selection strategy is used, a final services sequence might be gotten as follows: { SAg1:WS7, SAg2:WS8, SAg3:WS5, SAg4:WS3, SAg5:WS12, SAg6:WS15, SAg7:WS5, SAg8:WS11, SAg9:WS1, SAg10:WS1, SAg11:WS5, SAg12:WS11, SAg13:WS10, SAg14: WS4, SAg15:WS13, SAg16: WS4, SAg17:WS3, SAg18:WS9, SAg19:WS11, SAg20: WS5 } And its overall cost is the summation of all SAgs’ minimum cost, so it equals to $22777. In this case, the individual fitness is $1608. According to some given business rules, constraints and corresponding actions are defined (See Table 2). For the special individual, its fitness should be modified with the discount given. And for the invalid individual, it will be discarded. The expression { B(SAg-i) = m, B(SAg-j) = n } means that the i th SAg binds to its mth service and the j th SAg binds to its nth service concurrently. In the paper, some GA parameters are given as follows:
L. Cao et al. / Using genetic algorithm to implement cost-driven web service selection
15
Fig. 4. Experiment results.
1. Solution representation: Integer encoding (serial number of services in SAg starting from zero) 2. Population size: pop size = 40 3. Crossover probability: p c = 0.8 4. Mutation probability: p m = 0.05 5. Maximum generations: Gen max = 2000 6. Evolution procedure The initial population is randomly generated. After generations, the final optimal solution is gotten: [1 2 2 3 4 15 5 2 2 5 5 2 10 4 2 4 3 5 11 5] It is also represented as { SAg1:WS1, SAg2:WS2, SAg3:WS2, SAg4:WS3, SAg5:WS4, SAg6:WS15, SAg7:WS5, SAg8: WS2, SAg9:WS2, SAg10:WS5, SAg11:WS5, SAg12:WS2, SAg13:WS10, SAg14:WS4, SAg15:WS2, SAg16:WS4, SAg17:WS3, SAg18: WS5,SAg19:WS11, SAg20:WS5 }. The solution fitness is $3193. The GA evolution process can be seen from Fig. 4(a). The best fitness of the population has a rapid increase at the beginning of the evolution process then convergences slowly. It also means the overall cost of the SF is generally decreasing with the evolution process. For better solution, the whole optimization process can be repeated for a number of times (100 times in this paper, and different initial population in each time), and the best one in all final solutions is selected as the ultimate solution to the service selection problem. The result can be seen from Fig. 4(b). The red line represents the solution using local selection strategy, which has also been given 100 opportunities like the GA solution. The blue curve represents all best solutions at 100 GA
tests. Apparently, all best solutions using GA have better fitness than those solutions using local selection strategy. In addition, the fact about their similar fitness proves that GA could find the global optimal solution to the service selection problem and it has the high robustness.
4. Related work In [2], authors present a framework SELF-SERV for declarative web services composition using statecharts. Their service selection method uses a local selection strategy. The service selection is determined independently to other tasks of the composite services. It is only locally optimal. In [6], authors make research on the end-to-end QoS issues of composite service by utilizing a QoS broker that is responsible for coordinating the individual service component to meet the quality constraint. Authors design the service selection algorithms used by QoS brokers to meet the end-to-end QoS constraints. The service selection problem is modeled as the Multiple Choice Knapsack Problem (MCKP). Authors give three algorithms and recommend the Pisinger’s algorithm as the best one. But their solution is usually too complex for run-time decisions. In [7], authors present a constraint-based approach to temporal-aware web service procurement (WSP) by using constraint programming (CP), which endows their proposal with a declarative way to specify demands and offers so that the procurement tasks can be carried out by means of constraint satisfaction problems (CSP).
16
L. Cao et al. / Using genetic algorithm to implement cost-driven web service selection
The point of view in this paper is different from their perspective, which is interested in the procurement of web services whose demands and offers are temporalaware. This paper is interested in the problem of finding an optimal execution path of services in the context of a workflow. In [8], authors present a middleware platform which addresses the issue of selecting web services for the purpose of their composition in a way that maximizes user satisfaction expressed as utility functions over QoS attributes, while satisfying the constraints set by the user and by the structure of the composite service. Two selection approaches are described and compared: one based on local (task-level) selection of services, and the other based on global allocation of tasks to services using integer programming (IP). If the number of tasks and candidate services is not very large, the computation cost of global planning by IP is acceptable. But if the problem scale becomes large, the IP approach can not act well. In [9], authors model the web service composition (WSC) problem as a mixed integer linear programming (MILP) problem where local constraints,i.e., constraints for component web services, and global constraints, i.e., constraints for the whole application, can be specified. Their approach proposed the formulation of the optimization problem as a global optimization, not optimizing separately each possible execution path as in other approaches. The MILP approach bases on solid optimization theory, and it has simple computation steps. But it is not applicable to large-scale WSC problem. In some actual business service flows, multiple complex relationships exit among the candidate services, and co-selection of these services would change their QoS values. Such constraints will make the objective function of MILP hard to get the global maximum value. In [10], authors present the Web Services Outsourcing Manager (WSOM) framework via a mathematical model for dynamic business processes configuration using existing web services to meet customers’ requirements, and propose a novel mechanism to map a service selection space {0,1} to utilize global optimization algorithms - Genetic Algorithms. The binary encoding is adopted in the algorithm, but it is not human-readable. When the business process is complicated, the chromosome will be too lengthy. Moreover, GA utilization in the service selection is not given in detail, especially about how the relationships among the services will affect the global optimization.
5. Conclusion and future work A single web service is most likely inadequate to serve the customers’ business needs; it takes a selection of various web services composed together to form a business process. The cost is the primary concern of many business processes. This paper proposes a new solution using GA to implement cost-driven web service selection. Using an integer string to represent web services composition, the best one is the string that leads to the lowest cost. Service selection is an optimization process taking into account the relationships among the services. Seen from the experiment result, better performance can be gotten than that using a local service selection strategy. The global optimal solution can be achieved with GA within short time. In future, more QoS criteria besides cost will be considered as the objectives of service selection and multi-objective global optimization using GA will be implemented. Acknowledgements This paper has been supported by the grand project of the Science and Technology Commission of Shanghai Municipality (No. 05dz15005), the 973 project (No. 2003CB317005) of China, Special Project for World Expo 2010 Shanghai Science (2005BA908B09) and Chinese NSF Project (No. 60503041). References [1]
[2]
[3]
[4] [5] [6]
[7]
F. Curbera et al., Unraveling the Web Services: An introduction to SOAP, WSDL, and UDDI, IEEE Internet Computing, Mar/Apr issue 6(2) (2002), 86–93. B. Benatallah, M. Dumas, Q.Z. Sheng and A.H. Ngu, Declarative composition and peer-to-peer provisioning of dynamic web services, in: Proceedings of the International Conference on Data Engineering (ICDE), San Jose CA, USA, February 2002, 297–308. J. O’Sullivan, D. Edmond and A. ter Hofstede, What’s in a Service? Distributed and Parallel Databases 12(2–3) (September 2002), 117.133. Stuart Russell, Peter Norvig: Artificial Intelligence: A Modern Approach (Second Edition), Prentice Hall, 2002. FIPA Specifications (http://www.fipa.org). T. Yu and K.J. Lin, Service Selection Algorithms for Composing Complex Services with Multiple QoS Constraints. In: Proceedings of International Conference on ServiceOriented Computing, Amsterdam, Netherlands, December 12–15, 2005, 130–143. O. Martin-Diaz, A. Ruize-Cortes, A. Duran and C. Muller: An Approach to Temporal-Aware Procurement of Web Services. In: Proceedings of International Conference on ServiceOriented Computing, Amsterdam, Netherlands, December 12–15, 2005, 170–184.
L. Cao et al. / Using genetic algorithm to implement cost-driven web service selection [8]
L. Zeng, B. Benatallah et al., QoS-aware Middleware for Web Services Composition, IEEE Transactions on Software Engineering 30(5) (2004), 311–327. [9] D. Ardagna and B. Pernici, Global and Local QoS Constraints Guarantee in Web Service Selection, In: Proceedings of Business Process Management Workshops 2005, Nancy, France, September 5, 2005, 32–46. [10] L.-J. Zhang and B. Li, Requirements Driven Dynamic Services Composition for Web Services and Grid Solutions, Journal of Grid Computing 2(2) (June 2004), 121–140.
Authors’ Bios Lei Cao is a Ph.D. candidate in Department of Computer Science and Engineering, Shanghai Jiao Tong University, China. His research interests focus on grid computing, web services, and workflow.
17
Minglu Li got his Ph.D. degree from Shanghai Jiao Tong University in 1996. He is a full professor and associate director in Department of Computer Science and Engineering, Shanghai Jiao Tong University, China. Now he also is a director of IBM-SJTU Grid computing center and Web Services research center of Shanghai Jiao Tong University, Grid expert of Ministry of Education, P.R. China, and expert-in-chief of ShanghaiGrid project. His main research topics include grid computing, image processing, and ecommerce. Jian Cao got his Ph.D. degree from Nanjing University of Science and Technology in 2000. He is an associate professor in Department of computer science and technology, Shanghai Jiao Tong University, China. His main research topics include service computing, cooperative information system and software engineering. He has published more than fifty papers.