cloud computing service composition and search based on semantic

14
Cloud Computing Service Composition and Search Based on Semantic Cheng Zeng, Xiao Guo, Weijie Ou, and Dong Han State Key Lab of Software Engineering, Wuhan University, 430072, China [email protected], [email protected], [email protected], [email protected] Abstract. In this paper, we put forward a matching algorithm SMA between cloud computing services of multiple input/output parameters, which considers the semantic similarity of concepts in parameters based on WordNet. Moreover, a highly efficacious service composition algorithm Fast-EP and the improved FastB+-EP are presented. Then QoS information is utilized to rank the search results. At last, we show through experiment that our approach has better efficiency of service composition than traditional approaches. Keywords: Cloud computing, Web services, Service composition. 1 Introduction At present, cloud computing services can be provided by various forms such as public/utility computing, XaaS, MSP or others and hardwares can even been taken as services to set up scalable virtual machine. However, they all have not a unified standard and even different providers have their own patent-protected APIs, developing tools, virtualization layer, governance characteristics and so on. Thus, customers cannot easily extract their data and programs from one site to run on another. Concern about the difficulty of extracting data from the cloud is preventing some organizations from adopting cloud computing. This situation hinders the progress of cloud computing or crossing cloud applications. Another reason is most of current cloud computing services are limited to data-centered cloud storage and cloud search. These types of services are simple and their requirements for unified management and crossing cloud interaction are not urgent. However, in the near future, these requirements about how to utilize data such as data processing, data analyzing, data mining and so on will be more and more, and the complexity will be also higher. Single cloud computing service can not satisfy them and service composition will become more important. The precondition of cloud computing service composition is to have a service description with unified standard to introduce its functionality and interface. Many manufacturers have provided cloud computing services with Web Services description language (WSDL), such as EC2, S3 of Amazon, Google Search, etc. But in cloud computing era, the traditional WSDL could not fully meet the requirement of cloud This work is supported by the National Basic Research 973 Program of China No.2010CB310806, Doctor Subject Fund of Education Ministry No.20070486064 and Wuhan ChenGuang Youth Sci.\&Tech. Project No. 200850731369. M.G. Jaatun, G. Zhao, and C. Rong (Eds.): CloudCom 2012, LNCS 5931, pp. 290–300, 2012. © Springer-Verlag Berlin Heidelberg 2012

Upload: others

Post on 03-Feb-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Cloud Computing Service Composition and Search Based on Semantic∗

Cheng Zeng, Xiao Guo, Weijie Ou, and Dong Han

State Key Lab of Software Engineering, Wuhan University, 430072, China [email protected], [email protected], [email protected],

[email protected]

Abstract. In this paper, we put forward a matching algorithm SMA between cloud computing services of multiple input/output parameters, which considers the semantic similarity of concepts in parameters based on WordNet. Moreover, a highly efficacious service composition algorithm Fast-EP and the improved FastB+-EP are presented. Then QoS information is utilized to rank the search results. At last, we show through experiment that our approach has better efficiency of service composition than traditional approaches.

Keywords: Cloud computing, Web services, Service composition.

1 Introduction

At present, cloud computing services can be provided by various forms such as public/utility computing, XaaS, MSP or others and hardwares can even been taken as services to set up scalable virtual machine. However, they all have not a unified standard and even different providers have their own patent-protected APIs, developing tools, virtualization layer, governance characteristics and so on. Thus, customers cannot easily extract their data and programs from one site to run on another. Concern about the difficulty of extracting data from the cloud is preventing some organizations from adopting cloud computing. This situation hinders the progress of cloud computing or crossing cloud applications. Another reason is most of current cloud computing services are limited to data-centered cloud storage and cloud search. These types of services are simple and their requirements for unified management and crossing cloud interaction are not urgent. However, in the near future, these requirements about how to utilize data such as data processing, data analyzing, data mining and so on will be more and more, and the complexity will be also higher. Single cloud computing service can not satisfy them and service composition will become more important.

The precondition of cloud computing service composition is to have a service description with unified standard to introduce its functionality and interface. Many manufacturers have provided cloud computing services with Web Services description language (WSDL), such as EC2, S3 of Amazon, Google Search, etc. But in cloud computing era, the traditional WSDL could not fully meet the requirement of cloud

∗ This work is supported by the National Basic Research 973 Program of China

No.2010CB310806, Doctor Subject Fund of Education Ministry No.20070486064 and Wuhan ChenGuang Youth Sci.\&Tech. Project No. 200850731369.

M.G. Jaatun, G. Zhao, and C. Rong (Eds.): CloudCom 2012, LNCS 5931, pp. 290–300, 2012. © Springer-Verlag Berlin Heidelberg 2012

Cloud Computing Service Composition and Search Based on Semantic 291

computing services description. QoS and service price will be necessary and play more important roles in service search and service composition for cloud computing services. Most early research of web services studied how to store and search web services efficiently [1, 2]. These efforts usually focus on only a single service. Recently, the applications of web services are becoming more and more widespread, but it is often that there is no single web service which satisfies the request. Thus, the research about web service composition begins to emerge.

Ya-mei[3] adopts status evolution algorithm while LiLi[4] uses traditional work-flow technology to web service composition. [5, 6] analyze the dependency relationship between inputs and outputs extracted from operators of different services to construct Service Dependency Graph (SDG), and then transform the web service composition to related problems in graph theory. The above methods use in-memory algorithms for web service composition which will have to load lots of web services information into memory during computing service composition so that they are limited by the amount of available physical memory. When the number of web services is very large, the efficiency of these methods will greatly reduce.

Recently, many researchers begin to utilize some mature techniques in relational database to solve the service composition problem. Utkarsh[10] builds virtual tables for input/output parameters of web services to manage service interfaces, and uses multi-thread pipeline executive mechanism to improve the efficiency of web services search, so the service composition problem is transformed into query optimization in database. In [7], the web service composition is computed in advance and stored in tables of relational database system and pre-computing and searching are done by SQL statements. But it only considers the simplest status which abstracts each service as single operator and input/output parameter. The abstraction will limit the universality and practicability. Florian[8] looks service composition as a problem of selecting query plans where each service composition between any two services corresponds to a join operator. Thus, the mechanism of physical accessing plan selecting in relational database could be utilized to resolve the problem. These above methods can be applied to a large number of web services and have not additional requirement for the available amount of physical memory. However, both the efficiencies and the precision of service composition with them are not high. Though similar concepts are considered in [7], it needs to manually maintain an ontology table and the method only adapts to the simplified web service but not even slightly complicated interfaces.

Despite the fact that both cloud computing service and traditional web service currently are described with WSDL, there is risk that all systems built with the above methods will have to be rebuilt when the description standard of cloud computing service is updated. In this paper, we put forward a new storage strategy for web services which will be adaptable to flexibly extend for future cloud computing service and can greatly improve the efficiency of service composition. Moreover, we also present a service matching algorithm SMA and a service composition algorithm Fast-EP for those services of multiple input/output parameters. And SMA considers the similar concepts based on WordNet in the process of service matching. For the search results, we use QoS information to rank search results. At last, we show through experiment that our approach has better efficiency of service composition than traditional approaches. In addition, we further optimize our algorithms during the experiment to achieve higher performance.

292 C. Zeng et al. 2 Cloud Computing Services Storage and Search Framework

Traditional web services are described with semi-structured WSDL which are stored and managed in UDDI. The processing efficiency of semi-structured data is obviously lower than structured data so that current services search and service composition technology in UDDI can’t adapt to the requirement of large number of web services operating. In this paper, we parse WSDL documents of web services which are automatically crawled or manually wrapped from internet, and then decompose and process main elements of WSDL to respectively store in different tables of relational database, shown in Fig.1. The main elements include service name, function description, operators and input/output parameters. This kind of storage strategy will be able to flexibly extend to adapt to new web service description standard for future cloud computing service, and improve the efficiency of service composition.

Fig. 1. Cloud Computing Services Storage and Search Framework

In fig.1, Service Main Table (SMT), Service Operator Table (SOT) and Service

Parameter Table (SPT) are used to store the main elements for each Web services. Concept similarity relationships are pre-computed based on WordNet (Introduced in section 3.1) and stored in Concept Similarity Table (CST) for improving the efficiency in the process of service matching. We can calculate the matching relationship between different web services based on their input/output parameters by using those data in the

Cloud Computing Service Composition and Search Based on Semantic 293

above tables, and store all results with high matching degree into One-way Matching Table (OMT). Automatic service composition module analyzes all data in OMT, calculates all possible service composition and stores related results into Service Composition Table (SCT) and Composition Path Table (CPT). When there is a new service search request, where system supplies 2 kinds of search modes including keywords, input/output definition and Intelligent Ranking Module will extend key concepts in search condition based on CST and search matched single or composite services in database. QoS Table will be used to filter or rank returned services in which QoS considers the following three elements and is recorded every time interval for long-term analysis.

z Response Time: the time interval between when a service is requested and when it is delivered;

z Availability: the percentage of time that a service is available during some time interval;

z Reliability: the probability that a request is correctly served. 3 Automatic Web Service Composition Based on Semantic

3.1 Web Service Matching Algorithm (SMA)

The matching process between any two web services is the base of service composition. The matching results will be stored in OMT. The principle of service matching is that output parameters of a service operator can match input parameters of another service operator. In this paper, we transform service matching problem into semantic similarity calculating between concepts of input and output parameters corresponding to different service operators.

Each web service possibly contains several operators of different functions so that the processed objects of service compositon actually are their operators. We measure the matching degree ܯ ݐ◌ ሺ ଵ , ଶሻ between different service operators op1 and op2 by calculating semantic similarity between concept set ଵ in output parameters of operator op1 and concept set ଶ in input parameters of operator op2.

ת భ , మ ሺ ሻ൫ భ , మെ◌ת భ, మ൯ ܯ ݐ◌ ሺ ଵ, ଶሻ

െ◌ൗ

, మ

(1)

ᇱᇱ

ݓ ݎ ◌ ◌ െ◌ൗ ةܯܭ ◌ ◌ ◌ ሺܥ�,ܥ�ሻۄ൫ܥ�אଵ,ܥ�אଶ൯

In the above formula, KM denotes classical Kuhn-Munkres algorithm, and ◌ ◌ ◌ ൫ܥ�,ܥ�

ᇱdenotes the semantic similarity between any two concepts ܥ�,�ܥ

in ଵand ଶ,

respectively. תభ,మrepresents the amount of same concept between ଵ and ଶwhile

� భ,మrepresents the amount of all different concepts. �is a constant between 0 to 1

when the intersection between ଵand ଶis null after deleting same concepts from

294 C. Zeng et al.

them, otherwise െ◌ൗ0. Semantic similarity function [9] based on WordNet is utilized to calculate the similarity between different concept sets.

Cloud Computing Service Composition and Search Based on Semantic 295

ᇱฏ ฏ

◌� ◌൬1�2�መቀܥ�,ܥ��ቁ൰െ◌ ◌� ◌ ሺ�ෙ◌ ቀܥ�,ܥ��ቁሻᇱ

◌ ◌ ◌൫ܥ�,ܥ�൯െ◌ൗ

◌ ݔ◌ ◌ ◌ ◌

ฏ (2)

�ෙ◌ ቀܥ�,ܥ��ቁെ◌ൗ ܣ ◌ ◌ሺܥ��

ሻ/ ܣ ◌ ◌ሺܥ�ሻ��ቀܥ�,ܥ��ቁ െ◌ൗ ܣ ◌ ◌ቀܥ��ቁ െ◌

ܣ ◌ ◌ሺܥ�ሻ

ᇱฏฏᇱ ܣ ◌ ◌ሺܥሻെ◌ൗ

ఘ�

◌ାଶ

ฏᇱWhere ܥ�� is the lowest common ancestors of concept ܥ� and ܥ�while ◌ ݔ◌ ◌ ◌ ◌ is their longest distance in WordNet. APS(C) and ��denote priori score and the descendant number of concept C, respectively. Priori score is like the probability that a concept is chosen. �ෙ◌ and �� respectively correspond different processes of concept

generalization and concept specialization. Detailed mathematical introduction of formula (2) can be found in [9]. Because ◌ ◌ ◌ ൫ܥ� ൯ᇱܥ, is frequently invoked during the process of calculating ܯ ݐ◌ ሺଵ, ଶሻ, we pre-compute CST for avoiding repeatedly processing.

By the above way, we calculate semantic matching degree between any two web services. Of course, the precondition is that the output parameters set of a service operator must be the subset of input parameters set of another service operator. Otherwise, the two services cannot be matched. As long as ܯ ݐ◌ ሺଵ, ଶሻis bigger than a certain threshold, it will be stored into OMT. It means that OMT stores all web services pairs with better semantic matching and their matching direction.

3.2 Service Composition Path Computing

We could look all data in OMT as a weighted directed graph where each node denotes a web service and each edge denotes the semantic matching degree between two web services. Thus, the service composition problem is simplified to find all reachable paths of two nodes in the graph. Concern that we don’t only calculate the shortest path here, because the least services for a composite service do not imply that the QoS is the best or service price is the lowest.

In database domain, finding all reachable paths is a recursive query problem and the time complexity is O(N3) where N is the amount of tuples in OMT. EP-JOIN algorithm[7] reduces the time complexity to O(N2). In the paper, we present a Fast-EP algorithm by improving EP-JOIN and the time complexity is further reduced to O(N*log(N)). The pseudo code of Fast-EP algorithm is shown as follows:

Algorithm:Fast-EP

Input: {matched services pairs in OMT}; Output: {composite services in SCT, service composition paths in CPT, new operators in SOT and new parameters in SPT}.

296 C. Zeng et al.

1. Sequentially scanning OMT, select a tuple E(i)=WS(m)→WS(n); //m, n are operator ID

2. Insert E(i) into CPT;

Cloud Computing Service Composition and Search Based on Semantic 297

3. Select all path from CPT where CP_END_OPID=m, the returned set is represented as S1;

4. Select all path from CPT where CP_START_OPID=n, the returned set is represented as S2;

5. If (count(S1)≧ count(S2)) { 6. SN=0; 7. For each path S1(u)=WS(q)→WS(m){ //0<u≦count(S1); q is operator ID 8. insert WS(q)→WS(n) and SC_degree(q, n)= SC_degree(q, m)*

SC_degree(m, n) into SCT; 9. insert WS(q)→WS(n) into CPT; 10. Transform WS(q)→WS(n) as a new operator, and insert relevant

information into SOT, SPT, respectively 11. Flag=0; 12. For each path S2(v)=WS(n)→WS(p){ //0<v≦count(S2); p is operator ID 13. If (Flag==0 and SN<count(S2)+1){ //Sn controls the times of loop 14. insert WS(m)→WS(p) and SC_degree(m, p)= SC_degree(m, n)*

SC_degree(n, p) into SCT; 15. insert WS(m)→WS(p) into CPT; 16. Transform WS(m)→WS(p) as a new operator, and insert relevant

information into SOT, SPT, respectively 17. } 18. Flag=1;SN++; 19. insert WS(q)→WS(p) into SCT; 20. } } 21. } else {The inner and outer loop will exchange, the codes are omitted. 22. }

In Fast-EP algorithm, each composite service is taken as a new web service with only

one operator and its relevant information is stored into SOT and SPT. Thus, when users search web services, the system can directly match input and output in SPT, but ignore whether the web service is a composite service. This will improve search efficiency.

4 Web Service Search and Result Ranking

4.1 Web Service Search with SQL Statements

The simplest web service search method is to use full-text index technique in traditional text search domain, where all concepts in each WSDL corresponding to a web service are extracted and concentrated on a text. The method could fast find all web services with same keywords and rank the results based on keywords matching degree. However, it ignores the input/output constraint of web services and concept semantic so that the precision ratio and the recall ratio are all very low. Thus, we present an approach with higher accuracy to realize web service search in this section.

We provide structured service search mode, namely to import keywords for service input/output, respectively. Then these keywords are extended based on concept similarity. Each keyword gains the Top(k) most similar concepts in CST to construct a

298 C. Zeng et al.

set. We let ሺ ◌�ሻ, ሺ ◌�ሻdenote the similar concepts set of ith, jth keyword of service input and output, respectively. The service search condition can be improved as follows:

�െ◌ൗש୧◌ୀଵinput:൫ a א ሺ ◌�ሻ൯and ቀoutput:୨◌ୀଵש b א ൫ ◌�൯ቁ

(3)

where I, J are the amounts of keywords corresponding to service input and output in initial search condition, respectively. In order to be easily understood, we give a simple example. Suppose k=1, the initial search condition is input=’A1, A2’ and output=’B’. We get ሺ ◌ଵሻെ◌ൗሼܣଵ,ܣଵ′ሽ, ሺ ◌ଶሻെ◌ൗሼܣଶ,ܣଶ′ሽ and ሺ ◌ଵሻെ◌ൗሼ ܤ,ܤ ሽbased on CST where ܣଵ ܤ ,′ଶܣ , is the most similar concept of A1, A2 and B, respectively. So the improved search condition is: (input=’ ܣଵ ’ or input=’ ܣଵ ’) and (input=’ ܣଶ ’ or input=’ ܣଶ′’) and (output=’B’ or input=’ ܤ ’). Thus, we could use a single SQL statement to realize service search. By this way, we could even enhance the service search mode to SQL statement with more complicated relation in the future, such as (input=’A’ or (input=’B’ and output=’E’)) and (output=’C’ and not output=’D’) where all customized concepts will be automatically extended.

4.2 Ranking of Service Search Results

If the system has a large number of web services, how to fast rank the returned services will be very significative. In this paper, we provide a ranking mode based on QoS. If the results contain composite services, their matching degrees will also be considered.

With the algorithm in section 3.1, it is feasible in theory that search results are ranked based on semantic similarity degree. But the response time do not satisfy the search requirement in real time. It will be the goal of our future work. In this paper, we provide the results ranking based on QoS. If the results contain composite services, their matching degrees will also be considered.

Traditional methods considered QoS in the process of web services discovery or composition [11, 12]. The reason is that they compute service composition in real time. The dynamics of QoS and the changeability of user requirement will make the problem more complicated. In fact, the possible service composition statuses are finite and static which are pre-computed and stored in our system. The approach of separable considering service composition, QoS will simplify the problem and improve the efficiency of composite service search. Moreover, QoS and service price could even be respectively stored in different tables because they play even greater roles for cloud computing services. For example, it doesn’t matter for user that the QoS of invoked cloud computing services is relatively poor as long as service price is the lowest in the debug phase of web application developing. On the contrary, the importance of QoS will be more than service price after web application is released. The separable storing will increase the flexibility of web service search and returned results ranking according to user requirement.

5 Experiments

The experiment aim is to verify the feasibility and efficiency of our approach and contrast the performance of our algorithms with those in [5, 7]. We use the nearly same hardware and software environment as [7]. e.g. We ran experiments on a 3.0 GHz

Cloud Computing Service Composition and Search Based on Semantic 299

Pentium IV machine with 1 GB memory running Windows XP Professional, and all algorithms are implemented in C and compiled using the Visual C++ compiler. But the used database is the free PostgreSQL 8.4.

Because the amount of current cloud computing services is small, our web services dataset uses traditional web services from seekda1 and webxml2 . We get the QoS information by soapUI3 or crawling from seekda directly. And all service prices are generated with random number between 1 and 100.

Fig. 2. The performance of SMA

Fig. 3. The performance comparing of three service composition algorithms

At first, we test the performance of web services matching algorithm (SMA) which is ignored in [7]. Moreover, [7] suppose that each web service has only one operator, and each operator has only one input/output parameter. But in our experiment, all web service descriptions come from real WSDL so that the number of operators and input/output parameters in most of web services is more than 1 and the algorithm complexity is higher. Fig.2 shows the performance of SMA in different scales of dataset where all concept similarities in CMT have been pre-computed. We find that the original SMA algorithm is time-consuming because the amount of web service pairs

1 http://seekda.com/ 2 http://www.webxml.com.cn 3 http://www.soapui.org/

300 C. Zeng et al.

matched is very big. Thus, we optimize SMA algorithm, called SMA-RD algorithm, by removing those operators with same input/output parameters, storing concepts similarity relation in memory and so on. At last, the algorithm performance is improved more than doubled.

We compared the computing time of three web service composition algorithms: the EP-Join [7] and our Fast-EP, FastB+-EP. The number of web services changes from 1,000 to 10,000. Because the algorithm complexity of EP-Join is O(N2) while that of Fast-EP is O(N*logN), we can see in Fig.3 that Fast-EP algorithm results in better performance than EP-Join algorithm, and this difference increases as the number of web services increases. But we discover that Fast-EP needs to execute write-operator from memory to database every time when it finds a service path meeting requirement. This is actually a redundant I/O consuming. Thus, we use a heap in memory for storing those service paths found every time and create a B+ tree index in memory on the heap. When all service paths are found, the heap will be written to database one-time so that the I/O consuming is greatly reduced and the performance of algorithm is increased again. The new algorithm by improving Fast-EP is called FastB+-EP. Fig.3 shows the performance comparing among the 3 algorithms. For facilitating the expression, Fast-EP is used to replace FastB+-EP in the following introduction.

Fast-EP algorithm is invoked and the relevant results are stored in SOT and SPT before web service searches. Therefore, it will not affect the response time of search in real time. When a new service is registered, the system will firstly calculate the possible one-way matching relation between new service and all services in database and store them into OMT, and then invoke Fast-EP algorithm to supplement the new composite service paths and relevant information in SCT and CPT. The time complexity is O(K*logN) where K is the amount of new tuples in OMT and N is sizeof(SCT).

Fig.4 shows the search performance comparison among In-memory system [5], PSR system [7] and our WSIS system when the numbers of web services and memory sizes change but there is only one user query. It is necessary for in-memory system to compute service composition in real time so that the execution time at large data set is longer than PSR and WSIS. But in-memory system is faster when the numbers of web services is small. And the performance gap of all systems is not big as long as the available physical memory can load all web services information, though both PSR and WSIS pre-compute the service composition, shown in Fig.4 (a). Here, we ignore the time that in-memory system loads all required web services information into memory because it needs to be executed only once. However, when the available physical memory cannot hold all web services information, in-memory system has to frequently switch data between memory and disk and the search performance will also greatly reduce. Fig.4 (b) shows that the search performance of in-memory system sharply reduces while the memory cannot hold more than about 8000 web service that leads to lots of I/O consuming. But the performance reducing for PSR and WSIS is not obvious because they only rely on SQL search speed in database. In Fig.4 (a)(b), PSR and WSIS have almost the same search performance and the former is slightly faster than the latter. The reason is both of them pre-compute the service composition so that it is enough to search by SQL statements. However, WSIS needs an additional join operator because it stores service operators and input/output parameters in different tables for improving the efficiency of service compositing and the commonality for different web service (even cloud computing service) description standards. e.g. When QoS and

Cloud Computing Service Composition and Search Based on Semantic 301

(a) 1G memory (b) 256M memory

Fig. 4. The comparison of services search performance with different memory sizes

Fig. 5. The comparison of search performance with different numbers of queries

service price are added into our system, we only need to create two new tables but do not affect those data in other tables.

Fig.5 shows the similar comparison among the three systems when we fixed the number of web services to 10000 and varied the number of different user queries from 10 to 1000. We observed that the experiment result is similar as described in [7]. In-memory system does not adapt to larger number of user queries. PSR and WSIS have almost same performance but the latter is slightly low. The reason is the same as introduced in the above paragraph.

6 Conclusion

In this paper, we put forward an unconsolidated storage strategy for cloud computing services which can be flexibly extended to adapt to any new service description standard and a high efficiency of service composition algorithm Fast-EP based on the storage strategy. Moreover, a web service matching algorithm SMA is presented. The difference of SMA relative to traditional service composition algorithm is that SMA

302 C. Zeng et al.

considers the semantic similarity between input/output parameters with multiple concepts based on WordNet. QoS information is used to rank the result set. At last, we compare the efficiency of service search, service composition between our approach and traditional approaches.

References

1. Paolucci, M., Kawamura, T., Payne, T.R., Sycara, K.P.: Semantic matching of web services

capabilities. In: First International Semantic Web Conference, Sardinia, Italy, pp. 333–347 (2012)

2. Dong, X., Halevy, A.Y., Madhavan, J., Nemes, E., Zhang, J.: Simlarity search for web services. In: VLDB 2004, Toronto, Canada, August 2004, pp. 372–383 (2004)

3. Xia, Y.-m., Chen, J.-l., Meng, X.-w.: On the Dynamic Ant Colony Algorithm Optimization Based on Multi-pheromone. In: ICIS (2011)

4. Li, L., Chou, W., Guo, W.: Control Flow Analysis and Coverage Driven Testing for Web Services. In: ICWS (2008)

5. Hashemian, S.V., Mavaddat, F.: A graph-Based Approach to Web Services Compositon. In: SAINT (2005)

6. Gu, Z., Li, J., Xu, B.: Automatic Service Composition Based on Enhanced Service Dependency Graph. In: ICWS (2008)

7. Kwon, J., Park, K., Lee, D., Lee, S.: PSR: Pre-computing Solutions in RDBMS for Fast Web Service Composition Search. In: ICWS (2007)

8. Braga, D., Ceri, S., Danielsdf, f., Martinenghi, D.: Optimization of Multi-domain Queries on the Web. In: VLDB (2008)

9. Schickel-Zuber, V., Faltings, B.: OSS: A Semantic Similarity Function based on Hierarchical Ontologies. In: International Joint Conferences on Artificial Intelligence (2007)

10. Srivastava, U.: Query Optimization over Web Services. In: VLDB (2006) 11. Yang, S.W., Shi, M.L.: A Model for Web Service Discovery with QoS Constraints. Chinese

Journal of Computer 28(04), 589–594 (2005) 12. Zeng, L., Benatallah, B., et al.: QoS-Aware Middleware for Web Services Composition.

IEEE Transactions on Software Engineering 30(5) (2004)