Académique Documents
Professionnel Documents
Culture Documents
Jinjun Chen
AbstractWeb service composition lets users create valueadded composite Web services on existent services, where topk composite services are helpful for users to nd a satisfying
composite service efciently. However, with an increasing number
of Web services and users various composition preferences, computing top-k composite services dynamically for different users
is difcult. In view of this challenge, a top-k composite services
selection method is proposed, based on a preference-aware service
dominance relationship. Concretely speaking, rstly, user preferences are modeled with the preference-aware service dominance,
and then, in local service selection, a multi-index based algorithm
is proposed, named Multi-Index, for computing candidate services
of each task dynamically. Then, in global optimization, combined
with a service lattice, top-k composite services are selected under
a dominant number-aware service ranking. At last, an experiment
is presented to verify our method.
Keywords-Web service composition; top-k; preference-aware;
service dominance relationship
I. I NTRODUCTION
A. Current Status of Related Research
Web services constitute a distributed computing infrastructure made up of many different interacting application modules
trying to communicate over private or public networks to virtually form a single logical system [1]. As reusable components,
Web services are meant to be combined to meet business
needs for enterprise applications [2]. With the growing number
of Web services, a signicant number of functionally similar services are provided, making service composition more
challenging, which demands efcient and personalized service
selection techniques for service requesters.
A number of service selection methods have been developed, aiming to achieve a composite service with the best
user desired Quality of Service (QoS), which could be divided
into two categories. On one hand, in some works [3], [4], [5],
Web services are selected depending on a predened objective
function. In this case, a weighting mechanism is leveraged
where users express preferences over different quality parameters as numeric weights. The composite service gaining the
highest value is selected and returned to the user. As its a
rather challenging task for users to transform their preferences
into numeric weights, some researchers have tried solving the
problem using the dominance relationship between services in
[6], [7], [8] (also called skyline [8], full skyline [9] or free
978-0-7695-5025-1/13 $26.00 2013 IEEE
DOI 10.1109/ICWS.2013.20
Scenario Example Consider the scenario in Fig. 2. A manufacture receives an order to deliver some merchandise to a
retailer. He plans to satisfy the order from his own inventory
and request parts from a supplier. Thus, he needs to select
a satisfying supplier from numerous suppliers and two transportation services for merchandise carriage.
76
l
qjmax ws.qj
j=1
(1)
qjmax qjmin
where qjmax and qjmin are the maximum and minimum values
of this service class on the QoS dimension qj . If qjmax =
qjmin , scorei (ws) = 1. More details about normalization could
be referred to [11]. Meanwhile, for selecting top-k composite
services comprehensively, a dominant number is dened for
ranking composite services. For the service ws, its dominant
number is equivalent to the number of services dominated by
ws in UPS.
Example 2 Consider the 6-dimensional service set W S =
{ws1 , ws2 , . . . , ws5 } in TABLE I. For simplicity, all QoS
values are normalized. Among these services, all the services are full skyline services. Given a user preference space
Pui = {q2 , q4 , q5 }, UPS(W S, Pui ) includes ws1 , ws3 , ws5 ,
however, for another user preference space Puj = {q1 , q2 , q3 },
UPS(W S, Puj ) = {ws1 , ws4 , ws5 }.
TABLE I
E XAMPLE OF W EB S ERVICE S ET
Service
ws1
ws2
ws3
ws4
ws5
q1
0.89
0.72
0.58
0.90
0.36
q2
0.71
0.31
0.66
0.52
0.76
q3
0.90
0.45
0.74
0.46
0.80
q4
0.57
0.22
0.92
0.87
0.28
q5
0.63
0.10
0.72
0.67
0.74
q6
0.54
0.93
0.43
0.33
0.25
77
TABLE II
A N E XAMPLE OF Multi-Index FOR COMPUTING UPS
criterion1
criterion2
criterion3
78
The Multi-Index algorithm is shown in Algorithm 1. In Algorithm 1, if the index on P does not exist, it will be generated
by generateIndex(P ) in step 2. Steps 4-9 begin the rst
pruning of the partitions whose maximum values are smaller
than mi. In steps 11-17, we select Web services with the maximum value that equals to ma using getM axServices(pi ),
store them in a separate partition P A , and eliminate the nonskyline services. At last, pi is checked whether to be pruned
away by P artiExisted(pi ), like steps 7-8. The loop repeats
until all services are processed. And then, top-k candidate
services can be selected according to formula (1). Its worth
to note that, Multi-Index maintains multiple indexes which
are most commonly used. As preferences of users in a same
business area are usually similar, the cost of maintenance is not
much. Furthermore, as there are some commercial databases
employing B + -tree structure as a indexing technique, we use
MySQL as the B + -tree infrastructure in this paper.
It is worth to note that, in the lattice of Fig. 4, the parentchild relationship indicates an order of computing skyline
services [7], which could avoid false positive skylines. However, the relationship is not equivalent to the dominance
relationship. For example, {ws12 , ws21 } is a child node of
{ws11 , ws21 }, while the parent node may not dominate the
child node. In order to store a service lattice, a max-heap is
employed. For the lattice in Fig. 4, a heap will be initialized
with the root node {ws11 , ws21 }. The enumerating process
begins with the root node and, in each step, repeats two substeps: 1) get the composite service cpi with the maximum
score; 2) generate the child nodes of cpi and insert them into
the heap. As different parent nodes may have a same child,
a parent table is employed to record the number of parents
that are not processed yet to avoid the node duplication [7].
For example, {ws12 , ws22 } is a child node of {ws12 , ws21 }
and {ws11 , ws22 }. When both parent nodes are scanned,
{ws12 , ws22 } could be inserted into the heap.
Require:
a user preference space P = {p1 , p2 , . . . , pl }, and top-k services
for each task, e.g., W Si = {ws1 , ws2 , . . . , wsk } for ti .
Ensure:
1: Initialize a parent table and a heap T ;
2: while T = do
3:
ni extractN ode(T );
4:
computeDomN umber(ni );
5:
updateDomN umber();
6:
N generateN odes(ni , T );
7:
for all nj N do
8:
(nj ) (nj )-1;
9:
if (nj ) == 0 then
10:
T.add(nj );
11:
end if
12:
end for
13: end while
!
"
79
!
!
"#$%##
&'(%##
"#$%##
&'(%##
!
"#$%##
&'(%##
!#)
(*)
TABLE III
T HE NUMBER OF S KYLINE S ERVICES WITH T WO DATASETS
Dataset
Real
Random
4d
29
91
5d
64
253
6d
108
595
+(,#
7d
170
1391
8d
173
2309
9d
205
3251
10d
/
4772
(-)(*
(-)(*
1 http://www.uoguelph.ca/
3d
8
18
+(,#
qmahmoud/qws/index.html
80
&.
&.
&.
&.
"#$%##
&'(%##
!
(-)(*
(*
!/*#) )
B. Limitation Analysis
In Prole 2 and Prole 4 of Section IV-B, although the consuming time grows with the increasing number of candidate
services and the number of attributes in preference space, the
growth rate is low. However, in Prole 3, when the number of
tasks exceeds 6, the consuming time grows rapidly, which is
caused by the low performance of the service lattice employed
in global optimization whose complexity is O(m l k).
In future, we will try to improve the algorithm for global
optimization.
Prole 4: Performance with the number of candidate services. Fig. 5(c) shows the consuming time with respect to the
number of candidate services for each task. In this prole,
m = 5, l = 4, while n varies from 300 to 1000. With the
number of candidate services increasing, the consuming time
grows. But the growth rate is low, which may be concluded
from the observation that the consuming time is not always in
growth, but sometimes decreases.
Two more proles are also veried. The rst is the number
of skyline services in UPS with the number of all services,
shown in Fig. 7(a). In this prole, the task number is 5, and
the number of attributes in preference space could be 3, 5, 7
and 10, which are denoted by curves with different colors
respectively. Some observations could be got that: 1) with
the number of services growing, the number of services in
UPS increases; 2) the larger the number of attributes is, the
more rapidly the UPS number grows. The other prole is the
consuming time with respect to the value of k, which is shown
in Fig. 7(b). The larger k is, the more composite services the
system returns. In this prole, for the two datasets, the number
of candidate services for each task is 100, the task number is
5, while k varies from 5 to 10. The consuming time grows
rapidly with the value of k increasing.
V. P ERFORMANCE E VALUATION
In this section, we present the complexity and limitation of
our method, elaborate the related works on service selection
and skyline, and show an comparison analysis.
A. Complexity Analysis
The distributed system prototype, shown in Fig. 3, was
implemented for our method. Using this prototype, rst, a user
submits functional requirements and preference attributes. And
81
ACKNOWLEDGEMENT
VI. C ONCLUSION
In this paper, we propose a method to select top-k composite
services with various user preferences. First, a preferenceaware service dominance is presented and, based on the denition, we present the concept User Preference-aware service
Skyline (UPS). In order to compute the UPS dynamically in a
service broker, a Multi-Index algorithm is proposed. We also
propose a dominant number-aware service ranking, which is
combined with a service lattice and a max-heap for the global
optimization. At last, an experiment was conducted with two
datasets to verify our method. An interesting future direction
is to investigate ways to improve the overall performance of
global optimization process.
82