# Location-Aware Web Service Composition Based on the Mixture Rank of Web Services and Web Service Requests

Authors: Junwen Lu; Guanfeng Liu; Keshou Wu; Wenjiang Qin
Journal: Complexity
 (2019)

---

## Abstract

Web service composition is widely used to extend the function of web services. Different users have different requirements of QoSs (Quality of Services) making them face many problems. The requirement of a special QoS may be a hard requirement or a soft requirement. The hard requirement refers to the QoS which must be satisfied to the user, and the soft one means that the requirement is flexible. This paper tries to solve the service composition problem when there are two kinds of requirements of QoSs. To satisfy various kinds of requirement of the QoS, we propose a composition method based on our proposed framework. We give an analysis from composition models of services and from related QoE (Quality of Experience) of web services. Then, we rank the service candidates and the service requests together. Based on the ranking, a heuristics is proposed for service selection and composition-GLLB (global largest number of service requests first, local best fit service candidate first), which uses “lost value” in the scheduling to denote the QoE. Comparisons are used to evaluate our method. Comparisons show that GLLB reduces the value ofNUR (Number of Unfinished service Requests),FV (Failure Value), andAFV (Average Failure Value).


---

## Body

## 1. Introduction

In recent years, high-performance hardware and software resources make the Cloud widely used by companies and departments. Cloud computing is based on Visualization and Service-Oriented Architecture (SOA). The goal of Cloud computing is to optimize the usage of physical and software resources, improve flexibility, and automate management [1]. When web services come into Cloud, they enhance services by service composition. The QoSs of the web service decides whether the Cloud can satisfy the requirement of the user. Typically, QoS requirements include execution time, scalability, high availability, trust, security, and so on [2].A successful web service in service-oriented Cloud computing, not only tries to provide functionality as request, but also ensures to satisfy the requirement of QoSs [3]. Different users have diverse requirements to various QoSs [4]. For example, when users download files from the Internet, they always prefer to a web service with higher bandwidth; but when users transform money between banks, security is the most important QoS.A web service only provides a single functionality for user. Web service composition enhances the ability of the Cloud, which combines multiple web services together to form a new functionality. At the same time, it also brings problems for the scheduling of web services [5]. Quality of Experience (QoE) is a measure of the level of customer satisfaction of a service provider [6]. While QoS is to illustrate the quality of services, which contains several attributes of the services. When users have many service composition requests, the selection order of web services influences the scheduling result of others, which have diverse value in QoE.A. Jula et al. summarize nine targets for the web service selection [7], including (1) user requirement satisfaction; (2) qualitative to quantitative transformation of QoS parameters; (3) algorithm improvements; (4) introducing data storage and indexing structures; (5) self-adaptability, automaticity, increasing reliability, and accuracy, and quality assurance; (6) proposing an improvised QoS mathematical model; (7) revenue maximization; (8) optimization of the service discovery process; (9) proposing new frameworks and structures. Most of time, those nine targets are influenced by each other, such that (3) algorithm improvements always influence (5) self-adaptability. In this paper, we try to consider multiple aspects, especially for (1), (2), (3), and (8).When some requirements of QoS attributes are flexible (soft), the service composition problem becomes more difficult [8]. Because the flexible requirement of QoS attributes makes the selection of web service more widely, and it is difficult to decide which web service is the right selection. For example, if we assign a web service request with a web service which has a higher value in QoS attribute than the requirement, it may make others web service requests which need higher values in QoS attribute cannot be satisfied. If we assign a web service request with a web service which just satisfies the lowest requirement, the system may have low performance for the whole system, and the service may have lower value in QoE, especially when there are enough web services. The main problem of this paper is to schedule the web services when (1) the web service has different QoS attributes; (2) the service composition request has various requirements to diverse QoS attributes (hard or soft); (3) there are different functions for QoE to QoS for various kinds of requirements.The main contributions of the paper are as follows:(1) we give a framework of web service composition; (2) we discuss web service composition methods from the QoE; (3) a new ranking of web services and requests is proposed; (4) a heuristic is proposed for web service selection and composition.The rest of the paper is organized as follows. In the next section, we give an overview of web services from various aspects, such as the attributes, the preference of users, and web service composition methods. Section3 describes the framework of web service composition. Section 4 discusses the service composition from the QoE. Section 5 gives a new ranking method for web services and requests. At the same time, the section also proposes a web service selection and a composition heuristic. Section 6 explains the simulation environment and the simulation results. Section 7 presents the conclusion and the future work.


## 2. Related Work

The difficulty of web service composition comes from many aspects. Those reasons are as follows:(1)
There are many kinds of QoS attributes about the web services [8, 9]. Those QoS attributes include execution time, reliability, availability, reputation, price, trust degree, and so on. Even a QoS attribute consists of multiple subattributes [2].(2)
There are many structures for the service composition request; the basis structures include sequence structure, parallel structure, loop structure, and case structure. And for a real service composition request, it is always a mixture of those structures that makes the service composition problem more difficult.(3)
The value of QoS attribute also has different kinds and it is difficult to get the accuracy value. The value may belong to Boolean, numerical, or even a scope. Some QoS attributes belong to objective and others belong to subjective. For the objective value, such as reputation, it is difficult to get the accurate value of the related QoS attributes.(4)
Some QoS attributes influence each other [10]. Service-dependent QoSs can be partial and full dependencies. One example is the execution time which always influences the reputation.(5)
Different users have diverse preferences to QoS attributes [4, 11–13]. Because of various targets of different users, users have diverse preferences to the QoS. In other words, even for the same QoS attributes, different users have unlike QoEs [14].Because of the above-mentioned reasons, service composition is difficult. Researchers also have proposed some methods from different aspects.Some researchers have given some service composition methods through recommendation. C. Xi et al. [15] use a novel collaborative filtering-based web service recommender system to help users to select the web service. The system takes account of the location information and QoS values and then clusters users and services. A recommendation is suggested based on the Cluster result. Q. Yu [16] proposes CloudRec to find out different community of users and services from large scale data. The service community is based on the inherent Cloud-related features, and it can help to estimate the QoS of unknown services. W. Denghui et al. [17] divide the QoS into two categories: global and local. Different methods are used to the two categories for a reliable web service composition recommendation approach. Global QoS dimensions are used to calculate the global QoS value of service composition. Then the credibility of service composition is computed with the distance of the execution result and the advertised QoS value. The lowest QoS value in all service units is selected in the local QoS dimension. The credibility of local QoS dimensions is got from the credible user experience. Web service evaluation result is the composition of the weight of user preference with the credible QoS information. The service with the highest score is chosen in the service selection.Considering the preference of different users, researchers also give some new composition methods. To maximize (or at least ensure an acceptable) QoE, while ensuring fairness among users, H. Tobias et al. [4] propose a QoE fairness index F to solve this problem. S. Zhang et al. [18] try to help the user to find the top k composition services to satisfy the composition request, which has diverse preferences to different kinds of QoS. The preference-aware service dominance is used to denote the preference. A multi-index based algorithm is used to calculate the local service selection and top-k composite services are selected under a dominant number-aware service ranking in global optimization. According to the QoS preference of a user, H. Wang et al. [19] propose to integrate both the quantitative and qualitative preference to calculate the user similarity. They seek similar users by using user similarity service recommendation based on the idea of collaborative filtering.Evolutionary algorithms are widely used in the web service composition. Y. Yu et al. [20] try to solve the service composition problem under distributed environment. They use a network coordinate system to estimate the time on the communication link between service providers and end users. And they propose a new GP-based (Genetic Programming) approach which considers multiple QoS constraints simultaneously. Z. Ding et al. [21] try to select and compose web services via a genetic algorithm (GA) and they combine those QoSs as a fitness function. They also give a transaction and QoS-aware selection approach. C. Cremene et al. [22] perform an analysis of several state-of-the-art multiobjective evolutionary algorithms. Those methods include Nondominated Sorting Genetic Algorithm II (NSGA-II), Strength Pareto Evolutionary Algorithm 2 (SPEA2), Multiobjective Multistate Genetic Algorithm (MOMS-GA), Differential Evolution (DE), multiobjective DE version called Generalized Differential Evolution (GDE3), and so on. Simulation results show that GDE3 algorithm yields the best performances on this problem.Even the same value of QoS, various users have diverse QoEs. The reason is that different users have different targets. QoE also has been used in the service composition. Most of research focuses on the relation between the QoS and QoE. B. Upadhyaya et al. [6] provide an approach to extract a user’s perception of the QoSs from user reviews on services (QoEs) and use such information to compose services. According to the QoEs of different users, they select a particular service from a pool of services and recommend the best service execution path in a composited service.Some researchers also pay attention to the fact that some requirements of QoSs are flexible [8, 14]. In other words, if the value of the QoS attribute cannot satisfy the requirement, it just loses something, such as QoE and reputation. C. Lin et al. [8] proposed a QoS-based service selection (RQSS) algorithm to help users to find feasible web services according to the functionalities and the QoS of users’ requirements. If no web service could exactly satisfy users’ requirements, the RQSS recommends prospective service candidates to users by relaxing QoS constraints.Other methods, such as ant colony [23] algorithm, liner approaches [24], and social network management [25], are also used in the service composition. Q. Wu et al. [23] model the problem of service composition problem as a constrained directed acyclic graph. They use the ant colony optimization algorithm to seek a near-to-optimal solution. S. Bharathan et al. [24] address the service composition in a multicloud environment. They propose an Integer Linear programming model where violations in global constraints are permitted but with an associated penalty. W. Chen et al. [25] use linked social service-specific principles based on linked data principles to publish services on the open web as linked social services. Based on complex network theories, they construct the global social service network following linked social service-specific principles. They used the global social service network to provide linked social services as a service.Different from the prior work, we consider the environment when the requirements are a mixture of hard requirements and soft (relaxable) requirements. We try to discuss the service composition from the relation of QoS and QoEs, different from most of past work, which often composites services from the QoSs of the service. This also makes the task have diverse performance in QoE. S. Chakhar [26] just takes account of “hard” nonfunctional requirement in the scheduling after considering the function requirement. Different to [26], we try to consider the hard requirement and flexible (soft in [26]) requirement of functional requirement and nonfunctional requirement at the beginning. Most important of all, we consider the QoE of the service providers and service requesters together. We try to discuss the service composition from the QoEs of users, different from most of past work, which often composites services from the QoSs of the service.


## 3. SLA Service Composition Architecture

Our test data and the proposed method are implemented based on the framework shown in Figure1. Users use “user interface” to submit the requirement of the abstract services, the requirement of QoSs, and the related QoE functions. The abstract services indicate which kind of services that users need. The requirement of the QoS illustrates the requirement of the value of QoS. The QoE function gives the relation between the QoS attribute and the QoE. In our paper, those requirements include hard requirement and soft requirement. Service providers register service information to the system through UDDIe [27]. The information includes the identification of abstract services, the QoS of related services, the number of related services, and so on. The Data Set Center keeps and checks the information from the user and the service provider. The service provider registers service information (service name, QoSs) to the Data Set Center, and user provides the service requirement (service name, QoSs; QoEs) to Data Set Center through user interface. According to the QoS and the QoE function, Converter converts the QoS attribute value into QoE value. Different kinds of QoS requirement have different QoE function. Different to most of research, this paper ranks the service request and the service provider together which helps us to make decision in the Allocation (Section 4). Allocation schedules the web service providers to the web service requests (Section 5.3). The three modules (Converter, Ranking, and Allocation) work together to provide SLA (Service-Level Agreement) service composition for provider. A service-level agreement is a commitment between a service providers and users. SLA also supports the hard requirement and soft requirement. It makes various users may give diverse QoE value for the same QoS according to the SLA.Figure 1
System overview of service composition.


## 4. Web Service Ranking Based on Hard/Soft Requirement of Different Attributes

As discussed in Section2, the web service has many attributes and even every attribute has many subattributes. The ranking problem is defined as multiple criteria decision making (MCDM). There are three fundamental approaches to solving MCDM problems: Analytic Hierarchy Process (AHP), Multiple Attribute Utility Theory (MAUT), and outranking. Most of methods are based on the three methods.


### 4.1. QoS Model

In the paper, we consider five QoSs and they are execution time, reliability, availability, reputation, and price [4, 8, 14, 17].(i)
Execution time: the execution time of the service requestsr is the time from a service s has allocated tosr to the time that thesr has been finished.(ii)
Reliability: the reliability of the services is the probability that a request is correctly responded as the request of the user in the expected time.(iii)
Availability: the availability of the services is the probability that a service request exists or is ready to use within the expected time.(iv)
Reputation: reputation is used to reduce the impact of malicious attacks. The value of service reputation gets from customer’s subjective scores and objective judgment to the credibility of QoS advertisement information (Bayesian Learning Theory) [4].(v)
Price: the cost is involved in requesting and using the service (Unit: USD/10 min).More kinds of QoS, such as trust degree, operability, and delay, also can be added to our framework as the method introduced in the following.There areM abstract services (formula (1)) and every abstract service has different numbers of candidate services. The abstract service sm (1≤m≤M) has nsm candidate services (formula (2)). SCm is the relative QoSs of different candidate services of the abstract service sm. svm,svid denotes thesvidth service candidate of the abstract service sm (formula (3), 1≤m≤M). QoSm,svid is the QoS set of thesvidth service candidate of the abstract service sm (formula (4), 1≤svid≤nsm). Et(m,svid), Rel(m,svid), Avm,svid, Repm,svid, and Pr(m,svid) are the values of QoSs for the execution time, reliability, availability, reputation, and price, respectively.(1)S=s1,s2…,sm,…sM(2)NSm=ns1,ns2…,nsm,…nsM(3)SCm=svm,1,…svm,svid,…,svm,nsm(4)QoSm,svid=Etm,svid,Relm,svid,Avm,svid,Repm,svid,Prm,svidThere areN service composition processes (requests) from the users (formula (5), 1≤n≤N). Formula (6) indicates which kind of abstract service thenth service composition process needs. If sa(n,rid) equals 1 (1≤rid≤M), it means that thenth service composition process needs themth abstract service. At the same time, a vector of QoS requirements is listed in formula (7). RQoSn,rid is the QoS requirement ofnth service composition process tomth abstract service. Ret(n,rid), Rrel(n,rid), Ravn,rid, Rrepn,rid, and Rpr(n,rid) are the requirement of the QoS of the execution time, reliability, availability, reputation, and price, respectively. Formula (8) computes the total number of candidate services to the abstract service sm.Mis the kinds of abstract services.(5)SP=sp1,sp2…,spn,…spN(6)SAn=san,1,san,2…,san,rid,…san,M(7)RQoSn,rid=Retn,rid,Rreln,rid,Ravn,rid,Rrepn,rid,Rprn,rid(8)summ=∑rid=1Msan,rid


### 4.2. Different QoE to QoS

The value of QoE is a function to the related QoS of the candidate service. Figure2 shows that some typical functions in the true system, X axis indicates the value of QoSs, and Y axis indicates the benefit for the user to the special QoS (QoE). Figures 2(a)–2(d) show the relations between the QoS and the QoE whose QoSs belong to benefit QoS (positive QoS) that higher value always brings better result. Figures 2(e)–2(h) show the QoS value that belongs to cost QoS (negative QoS) that higher value always brings negative effort to the user.Figure 2
QoS versus QoE.
(a) (b) (c) (d) (e) (f) (g) (h)The QoE functionQoEvm,svid,n,rid of the QoS is(9)QoEvm,svid,n,rid=QoEfQoSm,svid,RQoSn,ridQoSm,svid is the QoS set of thesvidth service candidate of the abstract service sm and RQoSn,rid is the QoS requirement ofnth service composition process tomth abstract service.The value of QoE also can be categorized into four kinds: Boolean, numerical, unordered set, and range type. According to [28], same as the value of QoS, all of them can be transformed into numerical. In this paper, the hard requirement can be taken as the Figure 2(c) or Figure 2(g), and the soft requirement can be taken as Figure 2(b) or Figure 2(f).


## 4.1. QoS Model

In the paper, we consider five QoSs and they are execution time, reliability, availability, reputation, and price [4, 8, 14, 17].(i)
Execution time: the execution time of the service requestsr is the time from a service s has allocated tosr to the time that thesr has been finished.(ii)
Reliability: the reliability of the services is the probability that a request is correctly responded as the request of the user in the expected time.(iii)
Availability: the availability of the services is the probability that a service request exists or is ready to use within the expected time.(iv)
Reputation: reputation is used to reduce the impact of malicious attacks. The value of service reputation gets from customer’s subjective scores and objective judgment to the credibility of QoS advertisement information (Bayesian Learning Theory) [4].(v)
Price: the cost is involved in requesting and using the service (Unit: USD/10 min).More kinds of QoS, such as trust degree, operability, and delay, also can be added to our framework as the method introduced in the following.There areM abstract services (formula (1)) and every abstract service has different numbers of candidate services. The abstract service sm (1≤m≤M) has nsm candidate services (formula (2)). SCm is the relative QoSs of different candidate services of the abstract service sm. svm,svid denotes thesvidth service candidate of the abstract service sm (formula (3), 1≤m≤M). QoSm,svid is the QoS set of thesvidth service candidate of the abstract service sm (formula (4), 1≤svid≤nsm). Et(m,svid), Rel(m,svid), Avm,svid, Repm,svid, and Pr(m,svid) are the values of QoSs for the execution time, reliability, availability, reputation, and price, respectively.(1)S=s1,s2…,sm,…sM(2)NSm=ns1,ns2…,nsm,…nsM(3)SCm=svm,1,…svm,svid,…,svm,nsm(4)QoSm,svid=Etm,svid,Relm,svid,Avm,svid,Repm,svid,Prm,svidThere areN service composition processes (requests) from the users (formula (5), 1≤n≤N). Formula (6) indicates which kind of abstract service thenth service composition process needs. If sa(n,rid) equals 1 (1≤rid≤M), it means that thenth service composition process needs themth abstract service. At the same time, a vector of QoS requirements is listed in formula (7). RQoSn,rid is the QoS requirement ofnth service composition process tomth abstract service. Ret(n,rid), Rrel(n,rid), Ravn,rid, Rrepn,rid, and Rpr(n,rid) are the requirement of the QoS of the execution time, reliability, availability, reputation, and price, respectively. Formula (8) computes the total number of candidate services to the abstract service sm.Mis the kinds of abstract services.(5)SP=sp1,sp2…,spn,…spN(6)SAn=san,1,san,2…,san,rid,…san,M(7)RQoSn,rid=Retn,rid,Rreln,rid,Ravn,rid,Rrepn,rid,Rprn,rid(8)summ=∑rid=1Msan,rid


## 4.2. Different QoE to QoS

The value of QoE is a function to the related QoS of the candidate service. Figure2 shows that some typical functions in the true system, X axis indicates the value of QoSs, and Y axis indicates the benefit for the user to the special QoS (QoE). Figures 2(a)–2(d) show the relations between the QoS and the QoE whose QoSs belong to benefit QoS (positive QoS) that higher value always brings better result. Figures 2(e)–2(h) show the QoS value that belongs to cost QoS (negative QoS) that higher value always brings negative effort to the user.Figure 2
QoS versus QoE.
(a) (b) (c) (d) (e) (f) (g) (h)The QoE functionQoEvm,svid,n,rid of the QoS is(9)QoEvm,svid,n,rid=QoEfQoSm,svid,RQoSn,ridQoSm,svid is the QoS set of thesvidth service candidate of the abstract service sm and RQoSn,rid is the QoS requirement ofnth service composition process tomth abstract service.The value of QoE also can be categorized into four kinds: Boolean, numerical, unordered set, and range type. According to [28], same as the value of QoS, all of them can be transformed into numerical. In this paper, the hard requirement can be taken as the Figure 2(c) or Figure 2(g), and the soft requirement can be taken as Figure 2(b) or Figure 2(f).


## 5. QoS Normalization for QoSs of the Service Candidates and the Requirement of QoSs of the Service Requests

In this section, first of all, we normalize the QoS of service and the request to QoS of the service request, then we rank the service and service request; at last, a heuristic is proposed for service selection and composition.


### 5.1. QoS Normalization of the Service and the Service Request

The hypotheses in the paper are that, for the special abstract servicesm, the total number of the service candidates is nsm (formula (2)), those service candidates are listed in the set SCm (formula (3)), and the QoS of those service candidates is listed in the set QoSm,svid (formula (4)); to the special service process spn, the request to different abstract services is listed in the set SAn (formula (6)), and the requirement of the QoS of the abstract service is listed in the set RQoSn,rid (formula (7)). Then the problem is how to assign services candidates to the service request under different kinds of requirement (hard and flexible) of the QoS. Past work mainly uses aggregation functions to schedule those services [4, 8, 9, 15]. A service composition request has many service requests to different abstract services. A service request refers to a detailed request to an abstract service. Before using the aggregation function, normalization of QoS is executed to make the values of different QoSs have the same scope (between 0 and 1).Most of work for the normalization of the QoS is to the service, such as [8], not to the service request. In the paper, we consider two aspects simultaneously: QoS of service and the requirement of QoS of the service request. Such as execution time, we consider Etm,svid (1≤svid≤nsm) and Ret(n,m) (1≤n≤N,1≤m≤M) as a new set ET (formula (10)). Etm,svid and Ret(n,m) are the requirement of execution time from the service requesters and the execution time from service providers.(10)ET=Etm,svid∣1≤svid≤nsm∪Retn,m∣1≤m≤MRel(n,m), Rav(n,m), Rrep(n,m), and Rpr(n,m) mean the provided reliability, availability, reputation, and price from the services providers, respectively. Rrel(n,m), Rav(n,m), Rrep(n,m), and Rpr(n,m) mean the requirement of the QoS to reliability, availability, reputation, and price from service requesters, respectively. We make similar considerations for the other QoSs:(11)REL=Relm,svid∣1≤svid≤nsm∪Rreln,m∣1≤m≤MAV=Avm,svid∣1≤svid≤nsm∪Ravn,m∣1≤m≤MREP=Repm,svid∣1≤svid≤nsm∪Rrepn,m∣1≤m≤MPR=Prm,svid∣1≤svid≤nsm∪Rprn,m∣1≤m≤MTo make different values of QoSs of the service candidate and QoS requirements of the service request in the same range, Gaussian method [29, 30] is used to normalize them for feature extraction. It cannot only map those values to the interval [0,1], but also better avoid the influence of abnormal values (such as high value or low value) compared with other normalization methods. The detail can be described as follows:SupposeetiEt is an element of ET (formula (10)), we normalize it to noiEt: (12)noiEt=0.5+eliEt-ET¯2×3σETwherenoiEt is normalized value of etiEt, ET- is the average value of ET, and σET is the standard deviation of ET. Prior work [30, 31] shows that 99% data can be mapped into [0,1]. If the value is less than 0, we set it to 0; if the value is more than 1, we set it to 1.SupposenoiRel, noiAv, noiRep, noiPr are one element ofREL,AV,REP, andPR, respectively. REL-, AV-, REP-, and PR- are the average value ofREL,AV,REP, andPR, respectively. σREL, σAV, σREP, and σPR are the standard deviation ofREL,AV,REP, andPR, respectively. Similar to the method about execution time, we normalize the four elements as follows:(13)noiRel=0.5+eliRel-REL¯2×3σRELnoiAv=0.5+eliAv-AV¯2×3σAVnoiRep=0.5+eliRep-REP¯2×3σREPnoiPr=0.5+eliPr-PR¯2×3σPRIf the value is not in the range[0,1], we also use the same method to deal with the data to noiET.According to whether a larger value of QoS attribute means a better service, the QoS attributes can be categorized into two kinds: cost (negative) QoS or benefit (positive) QoS. Reliability, availability, and reputation belong to benefit QoS, execution time, and price belongs to cost QoS. For the cost QoSs, we transform them as follows so that make larger value of the related QoSs also means a better service:(14)notiEt==1-noiEt=1-0.5+eliEt-ET¯2×3σET=ET¯-eliEt2×3σET+0.5notiPr=1-noiPr=1-0.5+eliPr-PR¯2×3σPR=PR¯-eliPr2×3σPR+0.5The above two formulas also have a scope of[0,1].


### 5.2. Service Selection and Composition

For service composition, we give different weights to the five QoS attributes according to the condition of the whole system. Our model can extend to the services with more than five QoS attributes, but here we consider those important attributes only. The final rank of the service (or service request)Sm:(15)Scoim=WEtm×notiEt+WRelm×noiRel+WAvm×noiAv+WRepm×noiRep+WPrm×notiPriare the unique identifier of services (including service request and service provider).m is the unique identifier of abstract services. WEtm, WRe;m, WAvm, WRepm, and WPrm are the different weights of the five QoS attributes: execution time, reliability, availability, reputation, and price. Various researchers use diverse methods to set the weight. Those methods are classified into two kinds: weights decided by the user and those decided by the system. Our method belongs to the latter. Those parameters are listed as(16)tot=∑i=1summNumi,mEt+∑i=1summNumi,mRel+∑i=1summNumi,mAv+∑i=1summNumi,mRep+∑i=1summNumi,mPrWEtm=∑n=1summNumi,mEttotWRelm=∑i=1summNumi,mReltotWAvm=∑i=1summNumi,mAvtotWRepm=∑i=1summNumi,mReptotWRpm=∑i=1summNumi,mPrtotwhere ∑i=1summNumi,mEt is the number of services which cannot satisfy the service request from the view of the execution time; summ (see formula (8)) is the total number of the request to the abstract service sm.∑ i = 1 s u m m N u m i , m R e l, ∑i=1summNumi,mAv, ∑i=1summNumi,mRep, and ∑i=1summNumi,mPr are the numbers of services which cannot satisfy the service requests from the view of reliability, availability, reputation, and price, respectively.


### 5.3. Service Selection

There are two steps for the service selection:(1) the first step decides which abstract service will be allocated first; (2) the second step decides assign which service candidate to the service request of the selected abstract services.Algorithm1 gives the first step. First of all, we calculate the number of service requests to diverse abstract services (Line 1). Then, we sort the value in descending order. First of all, we schedule the abstract service which has the maximum value in the number of the service requests to different abstract service. The reason is if there are some service requests that cannot be satisfied, we can delete those service processes (Step 3.2, in Algorithm 1); those service processes maybe also include other service requests to other abstract services.Algorithm 1
1. Calculate the number of all the service candidates (Summ); 2.[MID,Mvalue]=sort({summ∣1≤m≤M}); //summ is number of service candidates, sort summ in descending order; //MID is a set of the abstract service ID //Mvalue is a set of the number of the service requests to different abstract services. 3. Form=1:M 3.1[mapc-r,unr]=schhard(abstractservicesm); //for the abstract servicesm, find a schedule method; //this step supposes that every requirement to the QoS is a hard requirement; //mapc-r is a map between the service candidate of the abstract service sm and service request to the abstract servicesm; //unr is a service request set that cannot be satisfied; 3.2 Delete the service process that includes the abstract servicesm and the request to the abstract servicesm cannot be satisfied; EndFor 4. Form=1:M 4.1[mapc-r,unr]=schsoft(abstractservicesm) //this step considers the requirement to the QoS that is relaxable; //mapc-r is a map between the service candidate of the abstract service sm and service request to the abstract servicesm; //unr is a service request set that cannot be satisfied; 4.2 Delete the service process that includes the abstract servicesm and the request to the abstract servicesm that cannot be satisfied; 5. EndforFirst of all, we suppose every requirement of the QoS attribute is a hard requirement; “schhard(abstractservicesm)” is used to find the service selection result (Steps 3.1 and 3.2, in Algorithm 1). Algorithm 2 gives the details. If there are service requests which cannot get the right services, soft requirement is considered and “schsoft(abstractservicesm)” is used to find the service selection result (Steps 4.1 and 4.2, in Algorithm 1). Algorithm 3 provides the details.Algorithm 2:Schhard (abstract service sm).
//GLLB 1. Calculate the weights of different QoSs according to formulas in Sections5.1 and 5.2; 2. Calculate the aggregation value for the service candidate and service request of the abstract servicesm; 3.SCO={Scoim∣1≤i≤(nsm+summ)}; 4.[tp,ID,Val=sort(SCO)]; // sortSCO in descending order; //tp can be a service candidate (=”candidate”) or a service request (=”request”); //ID records the ID for the service candidate or the service request; //Valrecords the value of aggregation function for the service candidate or the service request; 5. Select the first service composition requestsr 6. Get the left positionlp and the right position rp; 7.minmore=+∞, selectr=-1; 8. Forpos=lp:rp If the service candidateScoposm can satisfy sr for all the QoS minmoretemp=mvalue(Scoposm,sr); Ifminmoretemp< minmore minmore=minmoretemp; selectr=Scoposm; Endif EndIf Endfor 9. Ifselectr=-1 Assignselectr to sr; EndIf //minmore records the total value of the QoS of the web service that which is more than the requirement of the service request under the condition that all of requirements of the service composition request have been satisfied. 10.pos=rp+1; //search from the position of the end of the right position; 11. While (pos<(nsm+summ)) 11.1 IfScoposm can satisfy the requirement of QoS when we suppose every requirement is hard selectr=Scoposm; Assignselectr to sr; Break; EndIf EndWhileAlgorithm 3:Schsoft (abstract service sm).
// GLLB 1. Calculate the weight of different QoS according to formulas in Sections5.1 and 5.2; 2. Calculate the aggregation value for the service candidate and service request of the abstract servicesm; 3.SCO=Scoim∣1≤(nsm+summ); 4.tp,ID,Val=sort(SCO); //sortSCO in descending order; //tp can be a service candidate (=“candidate”) or a service request (=“request”); //ID indicates the one for the service candidate or the service request; //Valindicates the value of aggregation function for the service candidate or the service request; 5.Select service composition request sr that cannot find a service candidate in Algorithm 2 (Algorithm2) 6. Get the left positionlp and the right position rp; 7.minlost=+∞, selectr=-1; 8. Forpos=lp:rp If service candidateScoposm can satisfy sr for all the QoS minlostemp=slost(Scoposm,sr); Ifminlosttemp< minlost minlost=minlosttemp; selectr=Scoposm; Endif EndIf Endfor 9. Ifselectr=-1 Assignselectr tosr; EndIf //minmore records the total value of the QoS of the web service that is more than the requirement of the web service request under the condition that all of the hard requirements of the service request have been satisfied. 10.pos=rp+1; //search from the position of the end of the right position; 11. While (pos<nsm+summ) 11.1 IfScoposm can satisfy the hard requirement of QoS of sr selectr=Scoposm; Assignselectr to sr; Break; EndIf EndWhileAfter we sort the SCO (line 3, in Algorithm2) in descending order, we can consider the problem as two problems: selecting which service composition request and selecting which service candidate to the selected service request.( 1 ) The first problem decides which service request that we select first. “Largest First” is used to select the first service composition request. It means we always select the service request which has the largest value of the aggregation function. We select the “Largest First” because if the service request has a larger value in aggregation function, then it always has more difficult to find a service candidate that satisfies the requirement of the QoS attributes.( 2 ) The second problem decides which service candidate that we first try to check for the selected service request. “Local” means the service candidate whose position is near to the service request according to the value of aggregation function. In other words, there is no much difference in the value of aggregation function between those service candidates and the service requests. In the system, we give “Local” in this way: it has two directions, left or right. For the left, from the position of the service request, visiting left one by one, after it finds some service candidates and stops until it finds a service request or to the end of left again; for the right, from the position of the service request (Global view decides the service request), visiting right one by one, after it finds some service candidates or to the end of the right and stops until it finds a service request again. For the local view, we can check the best service (Local Best First Check) candidate. The service candidate who has a higher value of aggregation value does not always mean it can satisfy the service request with lower aggregation value. Some service requests may have the hard requirement of the QoS. Even some service candidates which have a lower value of aggregation function also can satisfy the service request which has a higher value of aggregation function by relaxing some requirements of soft QoSs. If a service request cannot get a service candidate in the left and the right, it will search all service candidates.In summary, our method is GLLB (global largest number of service request first, local “best fit” service candidate first). For the service composition request, the one which has the largest aggregation function value will be selected first; the service candidate, the one which is the “best fit”, will be selected. “Best fit” has two aspects of meaning.When we suppose every requirement of QoS attribute is hard, we select the service candidate that would have the lowest lost value (See formulas (18)~(22)). We suppose there are a web service candidatewsc and a web service requestwsr, and QoSs of wsc and QoS requirement ofwsr have been normalized. hardwsr indicates the requirement of the related QoS that is relaxable. If EThwsr equals 0, it is a hard requirement; otherwise (being equal to 1), it is a flexible requirement, similar to others QoS attributes. If there are many service candidates that can satisfy the requirement when we suppose they are hard requirements, we will select the service candidate which has the smallest value in mvalue(formula (20)), which has the smallest average lost value in the QoS. moren is the number of QoSs which is better than the requirement. Formula (21) calculates the lost value of execution time, same to all cost QoS attributes; formula (22) calculates the lost value of reliability, same to others benefit QoS attributes. If we cannot get a service candidate, we will go to the next step.(17)wsc=ETwsc,Relwsc,Avwsc,Repwsc,Prwsc(18)wsr=ETwsr,Relwsr,Avwsr,Repwsr,Prwsr(19)hardwsr=EThwsr,Relhwsr,Avhwsr,Rephwsr,Prhwsr(20)mvalueQoSwsc,QoSwsr=∑moreQoSwsc,QoSwsrmoren(21)moreETwsc,ETwsr=+∞,ifETwsc≤ETwsr;ETwsc-ETwsr,ifETwsc>ETwsr;(22)moreRelwsc,Relwsr=+∞,ifRelwsc≥Relwsr;Relwsr-Relwsc,ifRelwsc<Relwsr;For the service requests which have not been assigned web services when we suppose every requirement of QoS attributes is hard, we will consider the soft requirement of QoS attributes. We add a new parameter to calculate the loss of the soft QoS attribute(slost)when a web service candidate cannot satisfy the requirement of the relaxable QoS attribute. Formula (23) is used to calculate the loss for the cost QoS attribute (execution time, similar to price) and formula (24) is used to calculate the loss for the benefit QoS attribute (reliability, similar to availability, and reputation). In fact, we take the lost value as the QoE of the scheduling. Formula (25) gives the totally lost value in the soft QoS attribute. Formula (26) gives the method of calculating of average loss of soft requirements. sofutnum is the number of the resources whose QoS attributes do not satisfy the requirement. The related formulas are as follows:(23)lostETwsc,ETwsr=0,ifETwcs≤ETwsr;ETwsc-ETwsr,ifETwsc>ETwsr;(24)lostRelwsc,Relwsr=0,ifRelwsc≥Relwsr;Relwsr-Relwsc,ifRelwsc<Relwsr;(25)lostvaluewsc,wsr=lostETwsc,ETwsr+lostRelwsc,Relwsr+lostAvwsc,Avwsr+lostRepwsc,Repwsr+lostPrwsc,Prwsr(26)slostwsc,wsr=+∞,iftherearehardrequirementscannotbesatisified;lostvaluesofutnum,iftherearesoftrequirementcannotbesatisfied;The details of our scheduling algorithms are listed in Algorithms2 and 3. Step 3.1 (in Algorithm 1) is the second step which is in charge of scheduling the abstract service sm. “schhard(abstractservicesm)” (Algorithm 2) is the service composition method when we suppose every requirement of the QoS attribute is a hard requirement. First of all, we calculate the weight of different QoSs according to formulas in Section 5.1 (Step 1, in Algorithm 2), and calculate the aggregation value of the service candidate and the service request use the formulas in Section 5.2 (Step 2, in Algorithm 2). Then, we list all the values in a set SCO, and we sort the SCO in descending order. Three values are returned and they are setstp,ID, andVal. “tp” has two possible values, if it equals “candidate”; it is a service candidate of the abstract service sm; at this time, the value inID is the service candidate andVal is the related value of aggregation function; if it equals “request”, it is a service request to the abstract service sm. At this time, the value ofID is the service request andVal is the related value of aggregation function. First, we will search the best fit service candidate between the left positionlp and the right positionrp(Step 6 -9, in Algorithm 2).minmore records the minimum value in the function of mvalue andselectr records the selected service candidates. If we can find some service candidates that can satisfy all the requirement when we suppose every requirement of the QoS attribute is a hard requirement, we will select the service candidate which has minimum value in the function of mvalue (Step 8, in Algorithm 2; formula (20)). If we cannot get a service candidate between the left position and the right position, we will search from the end of the right position until we find a service candidate which can satisfy all the requirements of the QoS under the assumption that every requirements of the QoS attribute which belongs to the hard requirement (Step 11, in Algorithm 2) have been satisfied.Algorithm3 is the service selection method for the soft requirement of QoS attributes under the method of GLLB. We will first search the best fit service candidate between the left position lp and the right position rp (Steps 6-9, in Algorithm 3).minlost records the minimum value in the function of slost (Formula (26)) andselectr records the selected service candidate. If we can find some service candidates that can satisfy all the requirement when we suppose every requirement of the QoS attribute is a hard requirement, we will select the service candidate which has minimum value in the function of slost (Step 8, Algorithm 3; formula (26)). If we cannot get a service candidate between the left position and the right position which can satisfy the hard requirement of the QoS attribute, we will search from the end of the right position until we find a service candidate which can satisfy all the requirement of the QoS, under the supposition that we can give up some soft requirements (Step 11, Algorithm 3).


### 5.4. Complexity Analysis of GLLB

We analyze our method for one special abstract servicesm from three steps:(1)
Calculating the weight of different QoSs (formulas in Section5). The number of the candidate services is summ, the number of service requests is numm, and we only pay attention to five QoS attributes. So, the complexity is O(5∗numm∗summ).(2)
Computing the normalized quality values of all service candidates and service requests. The complexity of calculating average value isO(numm∗summ), and the complexity of calculating standard deviation is also O(numm∗summ). We take account of five QoS attributes, so the complexity is O(5∗numm∗summ).(3)
The core of GLLB (Algorithms2 and 3). Under the worst case, every service request will check every service candidate, so the complexity is O(numm∗summ).And thus, in generally, the complexity of our method is(27)O5∗numm∗summ+O5∗numm∗summ+Onumm∗summ=Onumm∗summFor all the abstract services, suppose the total number of the abstract services isM; the complexity is O(M∗numm∗summ).


## 5.1. QoS Normalization of the Service and the Service Request

The hypotheses in the paper are that, for the special abstract servicesm, the total number of the service candidates is nsm (formula (2)), those service candidates are listed in the set SCm (formula (3)), and the QoS of those service candidates is listed in the set QoSm,svid (formula (4)); to the special service process spn, the request to different abstract services is listed in the set SAn (formula (6)), and the requirement of the QoS of the abstract service is listed in the set RQoSn,rid (formula (7)). Then the problem is how to assign services candidates to the service request under different kinds of requirement (hard and flexible) of the QoS. Past work mainly uses aggregation functions to schedule those services [4, 8, 9, 15]. A service composition request has many service requests to different abstract services. A service request refers to a detailed request to an abstract service. Before using the aggregation function, normalization of QoS is executed to make the values of different QoSs have the same scope (between 0 and 1).Most of work for the normalization of the QoS is to the service, such as [8], not to the service request. In the paper, we consider two aspects simultaneously: QoS of service and the requirement of QoS of the service request. Such as execution time, we consider Etm,svid (1≤svid≤nsm) and Ret(n,m) (1≤n≤N,1≤m≤M) as a new set ET (formula (10)). Etm,svid and Ret(n,m) are the requirement of execution time from the service requesters and the execution time from service providers.(10)ET=Etm,svid∣1≤svid≤nsm∪Retn,m∣1≤m≤MRel(n,m), Rav(n,m), Rrep(n,m), and Rpr(n,m) mean the provided reliability, availability, reputation, and price from the services providers, respectively. Rrel(n,m), Rav(n,m), Rrep(n,m), and Rpr(n,m) mean the requirement of the QoS to reliability, availability, reputation, and price from service requesters, respectively. We make similar considerations for the other QoSs:(11)REL=Relm,svid∣1≤svid≤nsm∪Rreln,m∣1≤m≤MAV=Avm,svid∣1≤svid≤nsm∪Ravn,m∣1≤m≤MREP=Repm,svid∣1≤svid≤nsm∪Rrepn,m∣1≤m≤MPR=Prm,svid∣1≤svid≤nsm∪Rprn,m∣1≤m≤MTo make different values of QoSs of the service candidate and QoS requirements of the service request in the same range, Gaussian method [29, 30] is used to normalize them for feature extraction. It cannot only map those values to the interval [0,1], but also better avoid the influence of abnormal values (such as high value or low value) compared with other normalization methods. The detail can be described as follows:SupposeetiEt is an element of ET (formula (10)), we normalize it to noiEt: (12)noiEt=0.5+eliEt-ET¯2×3σETwherenoiEt is normalized value of etiEt, ET- is the average value of ET, and σET is the standard deviation of ET. Prior work [30, 31] shows that 99% data can be mapped into [0,1]. If the value is less than 0, we set it to 0; if the value is more than 1, we set it to 1.SupposenoiRel, noiAv, noiRep, noiPr are one element ofREL,AV,REP, andPR, respectively. REL-, AV-, REP-, and PR- are the average value ofREL,AV,REP, andPR, respectively. σREL, σAV, σREP, and σPR are the standard deviation ofREL,AV,REP, andPR, respectively. Similar to the method about execution time, we normalize the four elements as follows:(13)noiRel=0.5+eliRel-REL¯2×3σRELnoiAv=0.5+eliAv-AV¯2×3σAVnoiRep=0.5+eliRep-REP¯2×3σREPnoiPr=0.5+eliPr-PR¯2×3σPRIf the value is not in the range[0,1], we also use the same method to deal with the data to noiET.According to whether a larger value of QoS attribute means a better service, the QoS attributes can be categorized into two kinds: cost (negative) QoS or benefit (positive) QoS. Reliability, availability, and reputation belong to benefit QoS, execution time, and price belongs to cost QoS. For the cost QoSs, we transform them as follows so that make larger value of the related QoSs also means a better service:(14)notiEt==1-noiEt=1-0.5+eliEt-ET¯2×3σET=ET¯-eliEt2×3σET+0.5notiPr=1-noiPr=1-0.5+eliPr-PR¯2×3σPR=PR¯-eliPr2×3σPR+0.5The above two formulas also have a scope of[0,1].


## 5.2. Service Selection and Composition

For service composition, we give different weights to the five QoS attributes according to the condition of the whole system. Our model can extend to the services with more than five QoS attributes, but here we consider those important attributes only. The final rank of the service (or service request)Sm:(15)Scoim=WEtm×notiEt+WRelm×noiRel+WAvm×noiAv+WRepm×noiRep+WPrm×notiPriare the unique identifier of services (including service request and service provider).m is the unique identifier of abstract services. WEtm, WRe;m, WAvm, WRepm, and WPrm are the different weights of the five QoS attributes: execution time, reliability, availability, reputation, and price. Various researchers use diverse methods to set the weight. Those methods are classified into two kinds: weights decided by the user and those decided by the system. Our method belongs to the latter. Those parameters are listed as(16)tot=∑i=1summNumi,mEt+∑i=1summNumi,mRel+∑i=1summNumi,mAv+∑i=1summNumi,mRep+∑i=1summNumi,mPrWEtm=∑n=1summNumi,mEttotWRelm=∑i=1summNumi,mReltotWAvm=∑i=1summNumi,mAvtotWRepm=∑i=1summNumi,mReptotWRpm=∑i=1summNumi,mPrtotwhere ∑i=1summNumi,mEt is the number of services which cannot satisfy the service request from the view of the execution time; summ (see formula (8)) is the total number of the request to the abstract service sm.∑ i = 1 s u m m N u m i , m R e l, ∑i=1summNumi,mAv, ∑i=1summNumi,mRep, and ∑i=1summNumi,mPr are the numbers of services which cannot satisfy the service requests from the view of reliability, availability, reputation, and price, respectively.


## 5.3. Service Selection

There are two steps for the service selection:(1) the first step decides which abstract service will be allocated first; (2) the second step decides assign which service candidate to the service request of the selected abstract services.Algorithm1 gives the first step. First of all, we calculate the number of service requests to diverse abstract services (Line 1). Then, we sort the value in descending order. First of all, we schedule the abstract service which has the maximum value in the number of the service requests to different abstract service. The reason is if there are some service requests that cannot be satisfied, we can delete those service processes (Step 3.2, in Algorithm 1); those service processes maybe also include other service requests to other abstract services.Algorithm 1
1. Calculate the number of all the service candidates (Summ); 2.[MID,Mvalue]=sort({summ∣1≤m≤M}); //summ is number of service candidates, sort summ in descending order; //MID is a set of the abstract service ID //Mvalue is a set of the number of the service requests to different abstract services. 3. Form=1:M 3.1[mapc-r,unr]=schhard(abstractservicesm); //for the abstract servicesm, find a schedule method; //this step supposes that every requirement to the QoS is a hard requirement; //mapc-r is a map between the service candidate of the abstract service sm and service request to the abstract servicesm; //unr is a service request set that cannot be satisfied; 3.2 Delete the service process that includes the abstract servicesm and the request to the abstract servicesm cannot be satisfied; EndFor 4. Form=1:M 4.1[mapc-r,unr]=schsoft(abstractservicesm) //this step considers the requirement to the QoS that is relaxable; //mapc-r is a map between the service candidate of the abstract service sm and service request to the abstract servicesm; //unr is a service request set that cannot be satisfied; 4.2 Delete the service process that includes the abstract servicesm and the request to the abstract servicesm that cannot be satisfied; 5. EndforFirst of all, we suppose every requirement of the QoS attribute is a hard requirement; “schhard(abstractservicesm)” is used to find the service selection result (Steps 3.1 and 3.2, in Algorithm 1). Algorithm 2 gives the details. If there are service requests which cannot get the right services, soft requirement is considered and “schsoft(abstractservicesm)” is used to find the service selection result (Steps 4.1 and 4.2, in Algorithm 1). Algorithm 3 provides the details.Algorithm 2:Schhard (abstract service sm).
//GLLB 1. Calculate the weights of different QoSs according to formulas in Sections5.1 and 5.2; 2. Calculate the aggregation value for the service candidate and service request of the abstract servicesm; 3.SCO={Scoim∣1≤i≤(nsm+summ)}; 4.[tp,ID,Val=sort(SCO)]; // sortSCO in descending order; //tp can be a service candidate (=”candidate”) or a service request (=”request”); //ID records the ID for the service candidate or the service request; //Valrecords the value of aggregation function for the service candidate or the service request; 5. Select the first service composition requestsr 6. Get the left positionlp and the right position rp; 7.minmore=+∞, selectr=-1; 8. Forpos=lp:rp If the service candidateScoposm can satisfy sr for all the QoS minmoretemp=mvalue(Scoposm,sr); Ifminmoretemp< minmore minmore=minmoretemp; selectr=Scoposm; Endif EndIf Endfor 9. Ifselectr=-1 Assignselectr to sr; EndIf //minmore records the total value of the QoS of the web service that which is more than the requirement of the service request under the condition that all of requirements of the service composition request have been satisfied. 10.pos=rp+1; //search from the position of the end of the right position; 11. While (pos<(nsm+summ)) 11.1 IfScoposm can satisfy the requirement of QoS when we suppose every requirement is hard selectr=Scoposm; Assignselectr to sr; Break; EndIf EndWhileAlgorithm 3:Schsoft (abstract service sm).
// GLLB 1. Calculate the weight of different QoS according to formulas in Sections5.1 and 5.2; 2. Calculate the aggregation value for the service candidate and service request of the abstract servicesm; 3.SCO=Scoim∣1≤(nsm+summ); 4.tp,ID,Val=sort(SCO); //sortSCO in descending order; //tp can be a service candidate (=“candidate”) or a service request (=“request”); //ID indicates the one for the service candidate or the service request; //Valindicates the value of aggregation function for the service candidate or the service request; 5.Select service composition request sr that cannot find a service candidate in Algorithm 2 (Algorithm2) 6. Get the left positionlp and the right position rp; 7.minlost=+∞, selectr=-1; 8. Forpos=lp:rp If service candidateScoposm can satisfy sr for all the QoS minlostemp=slost(Scoposm,sr); Ifminlosttemp< minlost minlost=minlosttemp; selectr=Scoposm; Endif EndIf Endfor 9. Ifselectr=-1 Assignselectr tosr; EndIf //minmore records the total value of the QoS of the web service that is more than the requirement of the web service request under the condition that all of the hard requirements of the service request have been satisfied. 10.pos=rp+1; //search from the position of the end of the right position; 11. While (pos<nsm+summ) 11.1 IfScoposm can satisfy the hard requirement of QoS of sr selectr=Scoposm; Assignselectr to sr; Break; EndIf EndWhileAfter we sort the SCO (line 3, in Algorithm2) in descending order, we can consider the problem as two problems: selecting which service composition request and selecting which service candidate to the selected service request.( 1 ) The first problem decides which service request that we select first. “Largest First” is used to select the first service composition request. It means we always select the service request which has the largest value of the aggregation function. We select the “Largest First” because if the service request has a larger value in aggregation function, then it always has more difficult to find a service candidate that satisfies the requirement of the QoS attributes.( 2 ) The second problem decides which service candidate that we first try to check for the selected service request. “Local” means the service candidate whose position is near to the service request according to the value of aggregation function. In other words, there is no much difference in the value of aggregation function between those service candidates and the service requests. In the system, we give “Local” in this way: it has two directions, left or right. For the left, from the position of the service request, visiting left one by one, after it finds some service candidates and stops until it finds a service request or to the end of left again; for the right, from the position of the service request (Global view decides the service request), visiting right one by one, after it finds some service candidates or to the end of the right and stops until it finds a service request again. For the local view, we can check the best service (Local Best First Check) candidate. The service candidate who has a higher value of aggregation value does not always mean it can satisfy the service request with lower aggregation value. Some service requests may have the hard requirement of the QoS. Even some service candidates which have a lower value of aggregation function also can satisfy the service request which has a higher value of aggregation function by relaxing some requirements of soft QoSs. If a service request cannot get a service candidate in the left and the right, it will search all service candidates.In summary, our method is GLLB (global largest number of service request first, local “best fit” service candidate first). For the service composition request, the one which has the largest aggregation function value will be selected first; the service candidate, the one which is the “best fit”, will be selected. “Best fit” has two aspects of meaning.When we suppose every requirement of QoS attribute is hard, we select the service candidate that would have the lowest lost value (See formulas (18)~(22)). We suppose there are a web service candidatewsc and a web service requestwsr, and QoSs of wsc and QoS requirement ofwsr have been normalized. hardwsr indicates the requirement of the related QoS that is relaxable. If EThwsr equals 0, it is a hard requirement; otherwise (being equal to 1), it is a flexible requirement, similar to others QoS attributes. If there are many service candidates that can satisfy the requirement when we suppose they are hard requirements, we will select the service candidate which has the smallest value in mvalue(formula (20)), which has the smallest average lost value in the QoS. moren is the number of QoSs which is better than the requirement. Formula (21) calculates the lost value of execution time, same to all cost QoS attributes; formula (22) calculates the lost value of reliability, same to others benefit QoS attributes. If we cannot get a service candidate, we will go to the next step.(17)wsc=ETwsc,Relwsc,Avwsc,Repwsc,Prwsc(18)wsr=ETwsr,Relwsr,Avwsr,Repwsr,Prwsr(19)hardwsr=EThwsr,Relhwsr,Avhwsr,Rephwsr,Prhwsr(20)mvalueQoSwsc,QoSwsr=∑moreQoSwsc,QoSwsrmoren(21)moreETwsc,ETwsr=+∞,ifETwsc≤ETwsr;ETwsc-ETwsr,ifETwsc>ETwsr;(22)moreRelwsc,Relwsr=+∞,ifRelwsc≥Relwsr;Relwsr-Relwsc,ifRelwsc<Relwsr;For the service requests which have not been assigned web services when we suppose every requirement of QoS attributes is hard, we will consider the soft requirement of QoS attributes. We add a new parameter to calculate the loss of the soft QoS attribute(slost)when a web service candidate cannot satisfy the requirement of the relaxable QoS attribute. Formula (23) is used to calculate the loss for the cost QoS attribute (execution time, similar to price) and formula (24) is used to calculate the loss for the benefit QoS attribute (reliability, similar to availability, and reputation). In fact, we take the lost value as the QoE of the scheduling. Formula (25) gives the totally lost value in the soft QoS attribute. Formula (26) gives the method of calculating of average loss of soft requirements. sofutnum is the number of the resources whose QoS attributes do not satisfy the requirement. The related formulas are as follows:(23)lostETwsc,ETwsr=0,ifETwcs≤ETwsr;ETwsc-ETwsr,ifETwsc>ETwsr;(24)lostRelwsc,Relwsr=0,ifRelwsc≥Relwsr;Relwsr-Relwsc,ifRelwsc<Relwsr;(25)lostvaluewsc,wsr=lostETwsc,ETwsr+lostRelwsc,Relwsr+lostAvwsc,Avwsr+lostRepwsc,Repwsr+lostPrwsc,Prwsr(26)slostwsc,wsr=+∞,iftherearehardrequirementscannotbesatisified;lostvaluesofutnum,iftherearesoftrequirementcannotbesatisfied;The details of our scheduling algorithms are listed in Algorithms2 and 3. Step 3.1 (in Algorithm 1) is the second step which is in charge of scheduling the abstract service sm. “schhard(abstractservicesm)” (Algorithm 2) is the service composition method when we suppose every requirement of the QoS attribute is a hard requirement. First of all, we calculate the weight of different QoSs according to formulas in Section 5.1 (Step 1, in Algorithm 2), and calculate the aggregation value of the service candidate and the service request use the formulas in Section 5.2 (Step 2, in Algorithm 2). Then, we list all the values in a set SCO, and we sort the SCO in descending order. Three values are returned and they are setstp,ID, andVal. “tp” has two possible values, if it equals “candidate”; it is a service candidate of the abstract service sm; at this time, the value inID is the service candidate andVal is the related value of aggregation function; if it equals “request”, it is a service request to the abstract service sm. At this time, the value ofID is the service request andVal is the related value of aggregation function. First, we will search the best fit service candidate between the left positionlp and the right positionrp(Step 6 -9, in Algorithm 2).minmore records the minimum value in the function of mvalue andselectr records the selected service candidates. If we can find some service candidates that can satisfy all the requirement when we suppose every requirement of the QoS attribute is a hard requirement, we will select the service candidate which has minimum value in the function of mvalue (Step 8, in Algorithm 2; formula (20)). If we cannot get a service candidate between the left position and the right position, we will search from the end of the right position until we find a service candidate which can satisfy all the requirements of the QoS under the assumption that every requirements of the QoS attribute which belongs to the hard requirement (Step 11, in Algorithm 2) have been satisfied.Algorithm3 is the service selection method for the soft requirement of QoS attributes under the method of GLLB. We will first search the best fit service candidate between the left position lp and the right position rp (Steps 6-9, in Algorithm 3).minlost records the minimum value in the function of slost (Formula (26)) andselectr records the selected service candidate. If we can find some service candidates that can satisfy all the requirement when we suppose every requirement of the QoS attribute is a hard requirement, we will select the service candidate which has minimum value in the function of slost (Step 8, Algorithm 3; formula (26)). If we cannot get a service candidate between the left position and the right position which can satisfy the hard requirement of the QoS attribute, we will search from the end of the right position until we find a service candidate which can satisfy all the requirement of the QoS, under the supposition that we can give up some soft requirements (Step 11, Algorithm 3).


## 5.4. Complexity Analysis of GLLB

We analyze our method for one special abstract servicesm from three steps:(1)
Calculating the weight of different QoSs (formulas in Section5). The number of the candidate services is summ, the number of service requests is numm, and we only pay attention to five QoS attributes. So, the complexity is O(5∗numm∗summ).(2)
Computing the normalized quality values of all service candidates and service requests. The complexity of calculating average value isO(numm∗summ), and the complexity of calculating standard deviation is also O(numm∗summ). We take account of five QoS attributes, so the complexity is O(5∗numm∗summ).(3)
The core of GLLB (Algorithms2 and 3). Under the worst case, every service request will check every service candidate, so the complexity is O(numm∗summ).And thus, in generally, the complexity of our method is(27)O5∗numm∗summ+O5∗numm∗summ+Onumm∗summ=Onumm∗summFor all the abstract services, suppose the total number of the abstract services isM; the complexity is O(M∗numm∗summ).


## 6. Experiment Results and Discussions

In the simulation, we will compare our method to RQSS [8], MDSC (Multidimension Service Composition) [28], and RASC (Rank Aggregation Service Composition) [32]. RQSS [8] helps user discover feasible web services based on functionalities and QoS requirements. RQSS recommends prospective service candidates to users by relaxing QoS constraints if no available web service could exactly fulfill users’ requirements. MDSC [28] first normalizes those QoS parameters and then uses the improved Euclidean Distance to select the web service which meets the requirement (in the simulation, we suppose every part has the same weight). RASC [32] uses Rank Aggregation methods to solve the web service composition.Although there are many kinds of structures of the service composition, such as the cycle, sequence structure, parallel structure, loop structure, and case structure, we just pay attention to the sequence structure. All other structures can be transformed into sequence structures by some methods [28, 29].


### 6.1. Simulation Environment

We utilize the Matlab language to implement these algorithms and ran them on an Intel Pentium (R) D 3.4 Ghz, 4 GB RAM desktop PC with 100 MB/s Ethernet card, Window 8. In the simulation, we consider five QoS attributes which have been discussed before: execution time, reliability, availability, reputation, and price. The value of each QoS attribute is randomly generated with a uniform distribution in a range, as shown in Algorithm3. These ranges are also used in some researches [28]. In the simulation, we assume that the execution times of all services are less than 100ms. And most of services are robust enough. Therefore, the reliability and availability of service are ranging from 0.95 to 0.99999. Those settings are reasonable for web services [32]. In addition, the reputation has range of [1,10] and the price has range of [1,100]. These assumptions are also used in [8] and they are reasonable in various applications and different environments.The QoS constraint is generated as the last column in Table1. The method also was used in [28], but there is some difference.CF is the constraint factor and it has a range of [0,1]. The values of relative QoS attributes are random in the range of the last column in Table 1 and they follow the uniform distribution. It can be used to represent the strength of a QoS constraint. If a requirement of the QoS is a soft one: a lower value ofCF always means a lower of the QoS constraint (the QoE is same to the Figure 2(b) or Figure 2(f)). When the QoS is in the scope of the last column of Table 1, the QoE of relative QoS is 1. If a requirement of the QoS is a hard one, the QoE is the same to Figure 2(c) or Figure 2(g). If the QoS is not in the scope of the last column of Table 1, the QoE would be 0; otherwise, it is 1.Table 1
Values of five QoSs.
QOS QoS Range QoS Constraint Execution time [1,100] [1+99∗CF,100] Reliability [0.95,0.9999] [0.95,0.9999-0.0499∗CF] Availability [0.95,0.9999] [0.95, 0.9999-0.0499∗CF] Reputation [1,10] [1, 10-9∗CF] Price [1,100] [1+99∗CF,100]We will give comparisons from the execution time (ET), the number of the unfinished web service requests (NUR), the total value of failure to QoS attributes (FV), and the average failure to the QoS attributes (AFV). There are 500 abstract services and 2000 service processes to those abstract services. The possibility of a service process including an abstract service is 1%. We will evaluate the value ofCF changed from 0.6 to 0.1 with a step of -0.1. The number of service candidates to every abstract service is changed from 20 to 30 with a step of 2. Every QoS has 75% possibility that it belongs to the hard requirement. The evaluated values in the following section are the average values of 50 times executions.


### 6.2. Execution Time

Figure3 is the execution times of different methods under various numbers of service candidates and diverse values ofCF. The values of X axes are NSC (number of service candidates) and the values of Y axis are execution times. All methods have the same trends:ET increases with the increasing ofCF and the number of service candidates. The reason is that, with the increasing ofCF, the service request needs to check more service candidates, and with the increasing of the number of the service candidates, the service request has more chances to select.Figure 3
The execution time of different methods.
(a)
NSCversusET(s) whenCF=0.6 (b)
NSCversusET(s) whenCF=0.5 (c)
NSCversusET(s) whenCF=0.4 (d)
NSCversusET(s) whenCF=0.3 (e)
NSCversusET(s) whenCF=0.2 (f)
NSCversusET(s) whenCF=0.1In general, RASC always has the largest value inET and its average value under all the conditions is 39.8603 (s); GLLB always has the lowest value inET and its average value is 3.6867 (s). GLLB only has 9.25% execution time to RASC. To RQSS and MDSC, the GLLB average value is reduced by 59.59% and 59.70%, respectively.RASC has the largest value inET, the reason is the calculations of the Kendall Tau Distance between the service request and the service candidates needs much time [32]. The execution time is a polynomial function to the number of service candidates. RQSS and MDSC do not lead to any difference in the execution time, and the execution times of them are a linear function to the number of the service candidates. The ranking of GLLB reduces the time to search all the service candidates. Most of time, GLLB only needs searching between the left and the right of the service request. By the way, in the simulation, we may spend some time to get the normalize value (Section 5.1), but we can get in before scheduling, so the execution time of GLLB does not include the time to get the relative normalize time. A tradeoff way is to get those data (average value; standard deviation) from the past record.


### 6.3. Comparison of the Number of Unfinished Web Service Requests in Finding a Feasible Composition

Figure4 shows the number of unfinished service requests (NUR) of the four methods under different numbers of service candidates and various values ofCF. The values of X axes are the number of service candidates and the values of Y axes are the values ofNUR. The four methods involved in the comparison have the same patterns:NUR drops with the reducing of the number of service candidates and the value ofCF. The reasons are as follows: with the dropping of the number of service candidates, there are fewer service candidates for the service request; at the same time, with the dropping ofCF, the stronger requirements of QoSs are made, and the more service requests cannot get the required services. GLLB always has the lowest value inNURand it has an average value of 1039. The other three methods have the same performance inNURbasically. The averageNURof RQSS, RASC, and MDSC is 1346, 1372, and 1390, respectively. To RQSS, RASC, and MDSC, the GLLB average id reduced by 22.81%, 24.27%, and 25.25%, respectively.Figure 4
The number of unfinished web service requests.
(a)
NSCversusNURwhenCF=0.6 (b)
NSCversusNURwhenCF=0.5 (c)
NSCversusNURwhenCF=0.4 (d)
NSCversusNURwhenCF=0.3 (e)
NSCversusNURwhenCF=0.2 (f)
NSCversusNURwhenCF=0.1GLLB has the lowest value inNURbecause of the policy: when we suppose, every requirement is a hard requirement, we try to find the service candidate which has the nearest value to all the QoS, the policy makes the best fit service candidate always be selected first, and it makes the left service requests have more opportunities to get the required service candidates.


### 6.4. Comparison of Average Violated Quality Value (AVQV) to the QoS Requirement

Figure5 shows the failure value to the QoS requirement (FV) of the four methods under different numbers of service candidates and different values ofCF. The values of X axes are the number of service candidates and the value of Y axis are the value ofFV. The four methods behave same patterns: they all drop with the reducing of the number of service candidates and the value ofCF.Figure 5
The total Failure value to the soft QoSs of different methods.
(a)
NSC versusFV whenCF = 0.6 (b)
NSC versusFV whenCF = 0.5 (c)
NSC versusFV whenCF = 0.4 (d)
NSC versusFV whenCF = 0.3 (e)
NSC versusFV whenCF = 0.2 (f)
NSC versusFV whenCF = 0.1GLLB always has the lowest value inFV and it has an average value of 1190. The other three methods do not show much different performance inFV. The averageFVof RQSS, RASC, and MDSC is 2012, 2007, and 2091, respectively. To RQSS, RASC, and MDSC, the average value of FV in the case of using GLLB is enhanced by 79.80%, 79.36%, and 86.86%, respectively.GLLB has the lowest value inFV because: when we suppose all the requirement of the QoSs are hard, we try to find the service candidates which are the nearest to the service candidates; this makes other service requests have more chances to get the right service candidate which can satisfy all the requirement; no matter they belong to the hard requirement or the soft requirement; if GLLB finds that a service process cannot get the right service candidate in the first step, we always try to find the service candidate when the scheduling has the lowest value inFV.Figure6 shows the average failure value to the QoS requirement (AFV) of the four methods under different numbers of service candidates and different value ofCF. The value of X axis is the number of service candidates and the value of Y axis is the value ofAFV. The four methods show the same patterns: they all have a dropping tendency when the number of service candidates and the value ofCF are reducing.Figure 6
The Average failure value to the soft QoSs of different methods.
(a)
NSC versusAFV whenCF = 0.6 (b)
NSC versusAFV whenCF = 0.5 (c)
NSC versusAFV whenCF = 0.4 (d)
NSC versusAFV whenCF = 0.3 (e)
NSC versusAFV whenCF = 0.2 (f)
NSC versusAFV whenCF = 0.1GLLB always has the lowest value inAFV and it has an average value of 0.1360. The other three methods do not show much different performance inAFV. The averageAFVof RQSS, RASC, and MDSC is 0.2443, 0.2444, and 0.2543, respectively.AFV of GLLB is only about 55.67%, 55.65%, and 53.48% to theAFV of RQSS, RASC, and MDSC.GLLB has the lowest value inAFVbecause it has the lowest value inFV (Figure 5) and it also has the lowest value inNUR(Figure 4).


## 6.1. Simulation Environment

We utilize the Matlab language to implement these algorithms and ran them on an Intel Pentium (R) D 3.4 Ghz, 4 GB RAM desktop PC with 100 MB/s Ethernet card, Window 8. In the simulation, we consider five QoS attributes which have been discussed before: execution time, reliability, availability, reputation, and price. The value of each QoS attribute is randomly generated with a uniform distribution in a range, as shown in Algorithm3. These ranges are also used in some researches [28]. In the simulation, we assume that the execution times of all services are less than 100ms. And most of services are robust enough. Therefore, the reliability and availability of service are ranging from 0.95 to 0.99999. Those settings are reasonable for web services [32]. In addition, the reputation has range of [1,10] and the price has range of [1,100]. These assumptions are also used in [8] and they are reasonable in various applications and different environments.The QoS constraint is generated as the last column in Table1. The method also was used in [28], but there is some difference.CF is the constraint factor and it has a range of [0,1]. The values of relative QoS attributes are random in the range of the last column in Table 1 and they follow the uniform distribution. It can be used to represent the strength of a QoS constraint. If a requirement of the QoS is a soft one: a lower value ofCF always means a lower of the QoS constraint (the QoE is same to the Figure 2(b) or Figure 2(f)). When the QoS is in the scope of the last column of Table 1, the QoE of relative QoS is 1. If a requirement of the QoS is a hard one, the QoE is the same to Figure 2(c) or Figure 2(g). If the QoS is not in the scope of the last column of Table 1, the QoE would be 0; otherwise, it is 1.Table 1
Values of five QoSs.
QOS QoS Range QoS Constraint Execution time [1,100] [1+99∗CF,100] Reliability [0.95,0.9999] [0.95,0.9999-0.0499∗CF] Availability [0.95,0.9999] [0.95, 0.9999-0.0499∗CF] Reputation [1,10] [1, 10-9∗CF] Price [1,100] [1+99∗CF,100]We will give comparisons from the execution time (ET), the number of the unfinished web service requests (NUR), the total value of failure to QoS attributes (FV), and the average failure to the QoS attributes (AFV). There are 500 abstract services and 2000 service processes to those abstract services. The possibility of a service process including an abstract service is 1%. We will evaluate the value ofCF changed from 0.6 to 0.1 with a step of -0.1. The number of service candidates to every abstract service is changed from 20 to 30 with a step of 2. Every QoS has 75% possibility that it belongs to the hard requirement. The evaluated values in the following section are the average values of 50 times executions.


## 6.2. Execution Time

Figure3 is the execution times of different methods under various numbers of service candidates and diverse values ofCF. The values of X axes are NSC (number of service candidates) and the values of Y axis are execution times. All methods have the same trends:ET increases with the increasing ofCF and the number of service candidates. The reason is that, with the increasing ofCF, the service request needs to check more service candidates, and with the increasing of the number of the service candidates, the service request has more chances to select.Figure 3
The execution time of different methods.
(a)
NSCversusET(s) whenCF=0.6 (b)
NSCversusET(s) whenCF=0.5 (c)
NSCversusET(s) whenCF=0.4 (d)
NSCversusET(s) whenCF=0.3 (e)
NSCversusET(s) whenCF=0.2 (f)
NSCversusET(s) whenCF=0.1In general, RASC always has the largest value inET and its average value under all the conditions is 39.8603 (s); GLLB always has the lowest value inET and its average value is 3.6867 (s). GLLB only has 9.25% execution time to RASC. To RQSS and MDSC, the GLLB average value is reduced by 59.59% and 59.70%, respectively.RASC has the largest value inET, the reason is the calculations of the Kendall Tau Distance between the service request and the service candidates needs much time [32]. The execution time is a polynomial function to the number of service candidates. RQSS and MDSC do not lead to any difference in the execution time, and the execution times of them are a linear function to the number of the service candidates. The ranking of GLLB reduces the time to search all the service candidates. Most of time, GLLB only needs searching between the left and the right of the service request. By the way, in the simulation, we may spend some time to get the normalize value (Section 5.1), but we can get in before scheduling, so the execution time of GLLB does not include the time to get the relative normalize time. A tradeoff way is to get those data (average value; standard deviation) from the past record.


## 6.3. Comparison of the Number of Unfinished Web Service Requests in Finding a Feasible Composition

Figure4 shows the number of unfinished service requests (NUR) of the four methods under different numbers of service candidates and various values ofCF. The values of X axes are the number of service candidates and the values of Y axes are the values ofNUR. The four methods involved in the comparison have the same patterns:NUR drops with the reducing of the number of service candidates and the value ofCF. The reasons are as follows: with the dropping of the number of service candidates, there are fewer service candidates for the service request; at the same time, with the dropping ofCF, the stronger requirements of QoSs are made, and the more service requests cannot get the required services. GLLB always has the lowest value inNURand it has an average value of 1039. The other three methods have the same performance inNURbasically. The averageNURof RQSS, RASC, and MDSC is 1346, 1372, and 1390, respectively. To RQSS, RASC, and MDSC, the GLLB average id reduced by 22.81%, 24.27%, and 25.25%, respectively.Figure 4
The number of unfinished web service requests.
(a)
NSCversusNURwhenCF=0.6 (b)
NSCversusNURwhenCF=0.5 (c)
NSCversusNURwhenCF=0.4 (d)
NSCversusNURwhenCF=0.3 (e)
NSCversusNURwhenCF=0.2 (f)
NSCversusNURwhenCF=0.1GLLB has the lowest value inNURbecause of the policy: when we suppose, every requirement is a hard requirement, we try to find the service candidate which has the nearest value to all the QoS, the policy makes the best fit service candidate always be selected first, and it makes the left service requests have more opportunities to get the required service candidates.


## 6.4. Comparison of Average Violated Quality Value (AVQV) to the QoS Requirement

Figure5 shows the failure value to the QoS requirement (FV) of the four methods under different numbers of service candidates and different values ofCF. The values of X axes are the number of service candidates and the value of Y axis are the value ofFV. The four methods behave same patterns: they all drop with the reducing of the number of service candidates and the value ofCF.Figure 5
The total Failure value to the soft QoSs of different methods.
(a)
NSC versusFV whenCF = 0.6 (b)
NSC versusFV whenCF = 0.5 (c)
NSC versusFV whenCF = 0.4 (d)
NSC versusFV whenCF = 0.3 (e)
NSC versusFV whenCF = 0.2 (f)
NSC versusFV whenCF = 0.1GLLB always has the lowest value inFV and it has an average value of 1190. The other three methods do not show much different performance inFV. The averageFVof RQSS, RASC, and MDSC is 2012, 2007, and 2091, respectively. To RQSS, RASC, and MDSC, the average value of FV in the case of using GLLB is enhanced by 79.80%, 79.36%, and 86.86%, respectively.GLLB has the lowest value inFV because: when we suppose all the requirement of the QoSs are hard, we try to find the service candidates which are the nearest to the service candidates; this makes other service requests have more chances to get the right service candidate which can satisfy all the requirement; no matter they belong to the hard requirement or the soft requirement; if GLLB finds that a service process cannot get the right service candidate in the first step, we always try to find the service candidate when the scheduling has the lowest value inFV.Figure6 shows the average failure value to the QoS requirement (AFV) of the four methods under different numbers of service candidates and different value ofCF. The value of X axis is the number of service candidates and the value of Y axis is the value ofAFV. The four methods show the same patterns: they all have a dropping tendency when the number of service candidates and the value ofCF are reducing.Figure 6
The Average failure value to the soft QoSs of different methods.
(a)
NSC versusAFV whenCF = 0.6 (b)
NSC versusAFV whenCF = 0.5 (c)
NSC versusAFV whenCF = 0.4 (d)
NSC versusAFV whenCF = 0.3 (e)
NSC versusAFV whenCF = 0.2 (f)
NSC versusAFV whenCF = 0.1GLLB always has the lowest value inAFV and it has an average value of 0.1360. The other three methods do not show much different performance inAFV. The averageAFVof RQSS, RASC, and MDSC is 0.2443, 0.2444, and 0.2543, respectively.AFV of GLLB is only about 55.67%, 55.65%, and 53.48% to theAFV of RQSS, RASC, and MDSC.GLLB has the lowest value inAFVbecause it has the lowest value inFV (Figure 5) and it also has the lowest value inNUR(Figure 4).


## 7. Conclusion

In the paper, we analyze the service composition problem from the view of QoS and QoE. Then, we rank the service composition requests and the services in order. Based on the rank of them, a service selection and composition method is proposed to meet the environment when there are soft and hard requirements of the QoS attributes of web services. First of all, we take all the requirements of QoS attributes as the hard requirement, if we cannot get the right service candidate; we try to find service candidate by relaxing some QoSs under the permission of the service request.In the Cloud, when there are many Clouds and every Cloud has various kinds of abstract services and different numbers of related abstract services, the service composition problem becomes more difficult. Different QoSs have diverse “overload” values [33]. For the multiple Clouds environment [34], more services and more choices bring more challenge to service composition. We not only want to consider the requirement of every web service, but also want to reduce the number of the related Clouds that involved in the service composition. The problem of service composition under multiple Clouds [34] is the future work of us. Because we need to normalize the QoS, we may optimize our method to ensure them work well just from a small local scope and then work for overall situation. In this paper, we just evaluate our work on a simulation environment; as a future work, we also hope we can evaluate our work on a real web service composition case.



---

*Source: 9871971-2019-04-07.xml*