13
IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 10, NO. 7, NOVEMBER 2008 1393 Service Sharing for Streaming Video Multicast Jianping Wang, Member, IEEE, Dickson K. W. Chiu, Senior Member, IEEE, Qing Li, Senior Member, IEEE, and Minming Li Abstract—In a general context, the sharing of intermediate ser- vice results among different processes is seldom feasible because parameters are often different and there may be transactional and side effects. However, in a streaming video multicast environment, a large number of users often request various similar processing on the same stream. Therefore, service sharing is feasible, with a large potential of savings in processing cost. In this paper, we study the problem of determining the service invocation orders for multiple service composition requests in a streaming video multicast with the aim of maximizing the service sharing. We first formally define the problem. After proving the problem is NP-Complete, we de- velop an optimal algorithm for the base case of two requests. Then for the general case, we develop two heuristic algorithms, namely, a global greedy algorithm and a local greedy algorithm using the op- timal algorithm for the base case as the building block. The global greedy algorithm is designed for a system where the existing ser- vice composition requests can be recomposed with the arrival of a new request. The local greedy algorithm can be used in a system where the existing service composition requests do not change their service composition solutions with the arrival of a new request. We prove that the global greedy algorithm is a 2-approximation algo- rithm in terms of maximizing service sharing. Simulation results show that the greedy algorithms can save more service costs com- pared with a naive algorithm, and are effective compared with the cost lower bound. Index Terms—Greedy algorithm, NP-hard, service cost opti- mization, service invocation order, service-oriented architecture. I. INTRODUCTION S ERVICE-oriented architecture (SOA) is an emerging cross-disciplinary paradigm that is changing the way that applications are designed, delivered and consumed. One fundamental issue in SOA is service composition, which is the capability to quickly compose distributed services into more complex applications. In the literature of service composition, it is generally as- sumed that each service composition request is associated with a given service composition graph, which specifies a set of re- quired services with constraints on the service invocation order for each of them. For example, a service composition graph may Manuscript received November 14, 2007; revised July 17, 2008. Current ver- sion published November 17, 2008. This work was supported in part by grants from the Research Grants Council of the Hong Kong Special Administrative Region, China (Project No. CityU 121107 and CityU 116907). The associate editor coordinating the review of this manuscript and approving it for publica- tion was Dr. S.-H. Gary Chan. J. Wang, Q. Li, and M. Li are with the Department of Computer Science, City University of Hong Kong, Kowloon, Hong Kong (e-mail: jianwang@cityu. edu.hk; [email protected]; [email protected]). D. K. W. Chiu is with the Dickson Computer Systems, Kowloon, Hong Kong (e-mail: [email protected]). Color versions of one or more of the figures in this paper are available online at http://ieeexplore.ieee.org. Digital Object Identifier 10.1109/TMM.2008.2004935 be given as where will be invoked first, followed by and then . Service composition is then to as- sign each required service in the service composition graph to its most appropriate service provider according to certain cri- teria. Service composition with various performance metrics, e.g., load balance, end-to-end delay, guaranteed bandwidth and resource, have been studied in [1]–[10]. In many applications, the required services by the end user may have alternative service invocation orders, thus multiple feasible service composition graphs may exist for one request. Consider an example (see Fig. 1) adapted from [4] where an MPEG video stream for a PDA user undergoes four services: watermarking , incorporation with a background music , transcoding from MPEG to H.261 , and compression . The service dependencies are loosely defined as follows: 1) must be performed before other services and 2) and must be finished before . Under such a loosely-defined service dependency model [4], can be performed either before or after . As a result, two different service invoca- tion orders, thus two different service composition graphs, may exist for such a request: or . For a single-service composition request, either service composition order may work well. In a streaming video multicast application, the end users (des- tinations) may have heterogeneous end devices and require var- ious QoS, thus the streaming video contents delivered to the end users are the results of different service composition re- quests. As shown in Fig. 1, there are two users receiving the streaming video from the same video server. The laptop user only requires watermarking service and background music service while the PDA user requires two more services, namely, transcoding service and compression service . If the service invocation order for each user is independently de- termined, the service composition order for the PDA user may be as shown in Fig. 1(a). As a result, only is shared by those two users and has to be invoked twice. However, if the service composition orders for two users are considered coordinately, the two users can share both service and service as shown in Fig. 1(b). This example demon- strates that exploiting the flexibility of service invocation order may play a significant role on service sharing in a streaming video multicast application. Such an observation motivates the research presented in this paper. In general, cost savings among different service composition requests can be achieved through the following three steps. Step 1: to coordinately determine the service composition graph for each request by controlling the service invoca- tion order for each required service in a request such that the maximum number of shared services among multiple requests is achieved. 1520-9210/$25.00 © 2008 IEEE

Service Sharing for Streaming Video Multicast

Embed Size (px)

Citation preview

Page 1: Service Sharing for Streaming Video Multicast

IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 10, NO. 7, NOVEMBER 2008 1393

Service Sharing for Streaming Video MulticastJianping Wang, Member, IEEE, Dickson K. W. Chiu, Senior Member, IEEE, Qing Li, Senior Member, IEEE,

and Minming Li

Abstract—In a general context, the sharing of intermediate ser-vice results among different processes is seldom feasible becauseparameters are often different and there may be transactional andside effects. However, in a streaming video multicast environment,a large number of users often request various similar processing onthe same stream. Therefore, service sharing is feasible, with a largepotential of savings in processing cost. In this paper, we study theproblem of determining the service invocation orders for multipleservice composition requests in a streaming video multicast withthe aim of maximizing the service sharing. We first formally definethe problem. After proving the problem is NP-Complete, we de-velop an optimal algorithm for the base case of two requests. Thenfor the general case, we develop two heuristic algorithms, namely,a global greedy algorithm and a local greedy algorithm using the op-timal algorithm for the base case as the building block. The globalgreedy algorithm is designed for a system where the existing ser-vice composition requests can be recomposed with the arrival ofa new request. The local greedy algorithm can be used in a systemwhere the existing service composition requests do not change theirservice composition solutions with the arrival of a new request. Weprove that the global greedy algorithm is a 2-approximation algo-rithm in terms of maximizing service sharing. Simulation resultsshow that the greedy algorithms can save more service costs com-pared with a naive algorithm, and are effective compared with thecost lower bound.

Index Terms—Greedy algorithm, NP-hard, service cost opti-mization, service invocation order, service-oriented architecture.

I. INTRODUCTION

S ERVICE-oriented architecture (SOA) is an emergingcross-disciplinary paradigm that is changing the way

that applications are designed, delivered and consumed. Onefundamental issue in SOA is service composition, which is thecapability to quickly compose distributed services into morecomplex applications.

In the literature of service composition, it is generally as-sumed that each service composition request is associated witha given service composition graph, which specifies a set of re-quired services with constraints on the service invocation orderfor each of them. For example, a service composition graph may

Manuscript received November 14, 2007; revised July 17, 2008. Current ver-sion published November 17, 2008. This work was supported in part by grantsfrom the Research Grants Council of the Hong Kong Special AdministrativeRegion, China (Project No. CityU 121107 and CityU 116907). The associateeditor coordinating the review of this manuscript and approving it for publica-tion was Dr. S.-H. Gary Chan.

J. Wang, Q. Li, and M. Li are with the Department of Computer Science,City University of Hong Kong, Kowloon, Hong Kong (e-mail: [email protected]; [email protected]; [email protected]).

D. K. W. Chiu is with the Dickson Computer Systems, Kowloon, Hong Kong(e-mail: [email protected]).

Color versions of one or more of the figures in this paper are available onlineat http://ieeexplore.ieee.org.

Digital Object Identifier 10.1109/TMM.2008.2004935

be given as where will be invoked first,followed by and then . Service composition is then to as-sign each required service in the service composition graph toits most appropriate service provider according to certain cri-teria. Service composition with various performance metrics,e.g., load balance, end-to-end delay, guaranteed bandwidth andresource, have been studied in [1]–[10].

In many applications, the required services by the end usermay have alternative service invocation orders, thus multiplefeasible service composition graphs may exist for one request.Consider an example (see Fig. 1) adapted from [4] where anMPEG video stream for a PDA user undergoes four services:watermarking , incorporation with a background music

, transcoding from MPEG to H.261 , and compression. The service dependencies are loosely defined as follows:

1) must be performed before other services and 2) andmust be finished before . Under such a loosely-defined

service dependency model [4], can be performed eitherbefore or after . As a result, two different service invoca-tion orders, thus two different service composition graphs,may exist for such a request: or

. For a single-service compositionrequest, either service composition order may work well.

In a streaming video multicast application, the end users (des-tinations) may have heterogeneous end devices and require var-ious QoS, thus the streaming video contents delivered to theend users are the results of different service composition re-quests. As shown in Fig. 1, there are two users receiving thestreaming video from the same video server. The laptop useronly requires watermarking service and background musicservice while the PDA user requires two more services,namely, transcoding service and compression service .If the service invocation order for each user is independently de-termined, the service composition order for the PDA user maybe as shown in Fig. 1(a). As a result,only is shared by those two users and has to be invokedtwice. However, if the service composition orders for two usersare considered coordinately, the two users can share both service

and service as shown in Fig. 1(b). This example demon-strates that exploiting the flexibility of service invocation ordermay play a significant role on service sharing in a streamingvideo multicast application. Such an observation motivates theresearch presented in this paper.

In general, cost savings among different service compositionrequests can be achieved through the following three steps.

• Step 1: to coordinately determine the service compositiongraph for each request by controlling the service invoca-tion order for each required service in a request such thatthe maximum number of shared services among multiplerequests is achieved.

1520-9210/$25.00 © 2008 IEEE

Page 2: Service Sharing for Streaming Video Multicast

1394 IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 10, NO. 7, NOVEMBER 2008

Fig. 1. Example of streaming video multicast: (a) two users share a single service � only and (b) two users share two services � and � .

• Step 2: to merge the given service composition graphs suchthat each shared service will only be invoked once.

• Step 3: to assign each required service in the mergedservice composition graph to its most appropriate serviceprovider.

The effort in the literature has been focused on the last twosteps for resource sharing among different service compositionrequests. The work is based on the assumption that the serviceinvocation order for each request is determined independently,thus a service composition graph is generated for each requestindependently.

The feasibility of service sharing from Step 1 is largely ig-nored in the literature. This is because in a general computa-tion context, sharing is seldom feasible since requests often op-erate on different parameters, arrive at totally different times,and sometimes have transactional and side effects. However, astreaming video multicast environment creates massive oppor-tunities for sharing because a number of users request varioussimilar processing on the same stream. In this paper, we studythe problem of determining the service composition orders fora set of given service composition requests each with a looselydefined service dependency, or equivalently, the problem of de-termining service composition graph for each service composi-tion request. Our objective is to maximize the service sharingamong different composition requests. The discussion of theservice composition which is to assign each service to the mostappropriate service provider is out of the scope of this paper. Ourwork focuses on coordinately determining the service composi-tion graphs. The proposed work can be used as a pre-process ofthe literature work on service composition.

To the best of our knowledge, this is the first work to addressservice sharing at the stage of Step 1. The work conducted inthis paper provides more potential for the literature work whichfocuses on resource sharing for multiple requests from Step 2and Step 3.

The rest of the paper is organized as follows. The related workis introduced in Section II. The problem description is given inSection III. The problem complexity is studied in Section IV.

An optimal solution for two service composition requests andtwo greedy algorithms for the general case as well as a costlower bound are presented in Section V. Section VI comparesthe greedy algorithms with the lower bound and a naive algo-rithm by simulation. Section VII discuss the conclusion of thepaper with our future work direction.

II. RELATED WORK

The literature work on service sharing assumes that the ser-vice composition graph for each request is independently gener-ated. Some work focuses on finding partial overlaps among si-multaneous user requests (Step 2) and some other work focuseson assigning each required service in the merged service com-position graph to the most appropriate service provider (Step 3).

The work on finding partial overlaps among simultaneoususer requests can be found in [11]–[14]. In [11], each user re-quest is sent to a microserver as a service composition graph.For each incoming user request, the runtime system uses anevent-driven signal type system to examine the existing tasksand find out whether part of the new request can be fulfilled byexisting computations. Similar work can be found in Pegasussystem [12]. Another approach of identifying common work-flow subgraphs is to find maximum common subgraphs among aset of graphs [13], [14]. Given two graphs and , maximumcommon subgraph isomorphism problem is a NP-Hard problemwhich is to find a largest induced subgraph of G1 isomorphic to asubgraph of G2. Well-known maximum common subgraph iso-morphism algorithms can be found in [15]–[18]. Although weneed to identify the maximum shared services among servicecomposition requests in this paper, the problem to be studied inthis paper is not equivalent to finding maximum common sub-graphs in a set of graphs. Such a difference will be explained inSection III.

Given the service composition graphs, [4], [7], [19],[22]–[25] have discussed the service composition which aimsto save the service (computation) and/or bandwidth (datacommunication) cost in the service composition tree. Such

Page 3: Service Sharing for Streaming Video Multicast

WANG et al.: SERVICE SHARING FOR STREAMING VIDEO MULTICAST 1395

work focuses on Step 3. Specifically, [4], [19], [24] proposerouting algorithms to construct a service composition treewith minimum data communication cost by grafting the newrequest to the closest node in the service composition tree. [25]proposes a distributed algorithm to construct a pure servicemulticast tree where each service branch is directly attachedto its best functionally graftable node and also proposes adistributed algorithm to construct a service composition tree forhybrid service and data multicast which aims to minimize bothservice cost and bandwidth usage. [7] proposes an algorithmto construct the service delivery paths which minimize theweighted sum of computation power for transcoding and thebandwidth consumed on physical links on the overlay network.

III. PROBLEM DESCRIPTION

Before we give the problem description, we would like to ex-plain the necessary conditions of sharing services among dif-ferent service composition requests for the streaming video.

A. Service Sharing Conditions

If the streaming video contents of the service compositionrequests are different, such requests can not share any service.For example, suppose that there are two service compositionrequests and each of them requests different streaming videocontents. They both request blurring face service before thestreaming videos are delivered to them. Though both of them re-quest blurring face service, the service has to be invoked twice,one for each request since the input data streams for the videoblurring service from those two requests are different. Givensuch an application nature, when a streaming video server re-ceives streaming video service composition requests, the videoserver can classify them into different groups where requests inone group require the same streaming video content. In otherwords, service composition requests in different groups can notshare any service since they request different streaming videocontent. In this paper, we focus on the determination of the ser-vice invocation order for each request in one group to maximizethe service sharing. Without loss of the generality, let repre-sent the original streaming video content requested by such agroup.

Similarly, if two service composition requests share a service,such two service composition requests must share all precedingservices. Suppose that two requests share all preceding servicesuntil the -th service. Suppose that is the -th service in re-quest 1 and is the -th service in request 2. Then the datastream after the processing of -th service must be forkedinto two data streams, one for and one for . From thispoint, there are two data streams in the network and the fol-lowing services of each request will process a different datastream. Thus, no service sharing can happen for the followingservices of each request.

One interesting concern may be as follow. Suppose that the-th service required in two requests is identical and some of the

preceding services in such two requests may be different. Cansuch two requests potentially share services starting from -thservice? We will address such concern from two cases. If theoutputs of -th services of such two requests are different,they can not share any following services. Let us explain this byusing the aforementioned example in Fig. 1. Suppose that the

service composition order for service composition requestis and the service composition orderfor service composition request is .Suppose that the bitrate of the background music is 196 kbpsand the bitrate of H.261 video is 128 kbps. has to be invokedtwice, one for and one for since the bitrate of the streamingvideo for is different from that for after the first threeservices’ processing. If the outputs of the -th services ofsuch two requests are the same, it means that either the serviceinvocation order of the first services for such two requests willbe fine. In such a case, the flexibility will be described in theservice dependency graph as to be described in Section III-B.This work exactly aims to exploit such flexibility and identifythe service sharing potential.

With such service sharing conditions in mind, we can de-scribe our problem as follows.

B. Problem Description

Suppose that we have a set of avail-able streaming video processing services where the cost to in-voke service is . Suppose that there are service compo-sition requests, , which require the samestreaming video content. Each service composition requestrequires a set of service . The service dependency amongthe services in can be described by a directed acyclic graph(DAG), namely , with a set of nodes and directed arcs whereeach node is associated with a service in , and a directed arcdefines the precedence constraint between two services. Notethat in such a DAG, there is no loop between any two nodes. Be-cause of the one-to-one mapping of a service in and a nodein , we may use the terms service and node interchangeablywhen there is no ambiguity. In this paper, we assume that theservice composition requests are successive service composi-tion [20]. Under such an assumption, a service invocation orderfor can be regarded as a topological sort which is an orderingof the nodes of such that each node comes before all nodeswhich it has arcs to. A topological sort can be represented bya linear array of the service nodes. In general, the topologicalsort for a DAG is not unique. The goal of this research is todetermine a topological sort for each so that the maximumservice sharing can be achieved among the service compositionrequests.

Consider two service composition requests and whereis a topological sort for ,

and is a topological sortfor . If there is a such that for ,then we say that and share the first common services.Consequently, each of the first common services only needsto be invoked once instead of twice because the service resultscan be shared. It is obvious that a larger can lead to a higherpotential of service sharing. Such a relationship can be describedby a tree where each node is associated with a service, the firstnodes, representing the shared services, form common segmentsstarting from the root, and the tree forks into two branches afterthe first nodes with each branch representing a topological sortfor the rest services that cannot be shared.

The above observation can be generalized to multiple servicecomposition requests. Given and for , let

be a set of service invocation

Page 4: Service Sharing for Streaming Video Multicast

1396 IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 10, NO. 7, NOVEMBER 2008

orders where is the service invocation order for , or atopological sort for . Then a service invocation order tree with

leaf nodes can be constructed where each node is associatedwith a service, and the path from the root to a leaf node rep-resents a service invocation order for a request. Assuming thateach service involves a cost , then the sum of the costs forall nodes in the tree represents the cost for the service composi-tion requests under consideration, which is to be minimized.

In general, the constructed tree may not be unique. For ex-ample, a trivial tree is to simply have branches forking at theroot, which has the maximum number of nodes and no servicesharing at all. It can be shown later in Section III-C that, foreach , we can determine a service invocation order treewith the minimum total cost, i.e., representing the minimum ser-vice resource consumption under . Let be the totalcost in the service invocation order tree. Our objective is to findan optimal such that is minimized. We call such aproblem the SIO (Service Invocation Order) Problem.

An equivalent statement of the SIO problem is to maximizethe total shared cost, which is the difference betweenand the cost of a service composition tree where all requests donot share any service except . Consequently, if a service isshared by requests, then we say that the cost saving for sucha sharing is .

The above problem description considers a very general casewhere each request may consist of any subset of services, eachwith an independent DAG. Therefore, even conflicting servicedependencies are allowed, e.g., can have service dependency

and can have service dependency . In prac-tice, the situation may be simpler by having no conflicting prece-dence constraints among different requests. However, from theviewpoint of computational complexity, as to be shown later inthe NP-completeness proof, the problem is still intractable forsuch a simpler case. Therefore, we focus on the general case inthis paper.

Though our problem needs to find the maximum common ser-vices among a set of DAGs, the problem is not equivalent tofinding maximum common subgraphs among a set of graphs.Our work finds the maximum common service among a set ofDAGs by transforming the DAGs while maintaining the serviceprecedence constrains at each DAG. Suppose that there are twoDAGs, and . In , there are 3 nodes, namely,

and two links, one from to and the otherone from to . In , there are also 3 nodes, namely,

and two links, one from to and the other onefrom to . In our problem, the maximum sharing services for

and are . However, the max-imum common subgraph can be found in andcan only be .

C. Construction of Service Invocation Order Tree

Given a feasible set of service invocation orders, a service invocation order tree

with the minimum total cost can be constructed as fol-lows. Recall that we assume that starts with a single nodeassociated with .

• Step 0: Initialization where has a single root nodeassociated with service and .

• Step 1: Let , , and be the root of .

Fig. 2. Service invocation order tree.

• Step 2: If node has a child node that is associated withservice , then , let be that child, and repeatStep 2. Otherwise, go to Step 3.

• Step 3: Generate a new branch rooted at node where eachnode in the branch is associated with a service in startingfrom sequentially.

• Step 4: Stop if . Otherwise, go to Step 1.Fig. 2 illustrates such a service invocation order tree for two

requests with and.

Lemma 1: Given a feasible set of service invocation orders, the above-constructed service invocation order tree has

the minimum total cost under .Proof: The lemma clearly holds if we have to add the re-

quests into the tree in the sequence of ,because each is grafted to the service invocation ordertree at a node where the segment from the root to that nodeis the longest segment that can share with for

.Now we need to show that the lemma still holds if the requests

join the service invocation order tree following any arbitrarysequence. We prove this by induction.

If there is only one request, then is uniquely determined.So the lemma holds. Suppose that the lemma holds for the first

requests where a tree has been obtained with the cost of. Consider the -th request with , which incurs an extra

cost of due to some new nodes added to the tree. Thus thecost of the constructed tree is . From the algo-rithm description, we see that the new nodes added to the treefor are the nodes that cannot be shared with any otherprevious requests. In other words, is the cost that cannot beavoided in any trees. By assumption, is the minimum costrequired for the first requests. Therefore, must bethe minimum cost required for all requests. Thus, the lemmafollows.

IV. PROBLEM COMPLEXITY

In this section, we show that the SIO problem is NP-hard bya reduction from the 3-D matching (3DM) problem which isNP-complete in the strong sense [21].

3DM: Given a set where, , and are

disjoint, we ask whether there is a subset such thatand no elements in agree in any coordinate.

Page 5: Service Sharing for Streaming Video Multicast

WANG et al.: SERVICE SHARING FOR STREAMING VIDEO MULTICAST 1397

Before the formal proof, let us first derive some pre-liminary results. Consider the following set of elements

with beingan integer parameter. For convenience, we call elementsthe special elements. For each , , we constructsix triplets: , , ,

, , . Then we havethe following :

...

will be used to construct the instances of SIO later. Wehave the following properties due to the definition of .

Property 1: In total there are triplets in . There areno two triplets containing two common elements, which can beverified by enumeration.

Property 2: For each , eight special elements are introduced.So the total number of special elements in is wherethe number of special elements in the first position of the tripletsis , and the number of special elements in each of the othertwo positions is .

Then we have the following lemma about using triplets ofto cover the elements in .

Lemma 2: If is a subset of which covers all spe-cial elements of with the restriction that every elementis covered at most once, then covers all but one element of

.Given , for , not being covered, there is

a unique triplet subset of which covers all other elementsof once and only once.

Proof: For each , in order to cover all , one andonly one in has to be covered. This can be verified byenumeration. Then for a given not being covered, all triplets

, for , are used to cover all ,and all , for , are usedto cover all . This shows the uniqueness of the cover fora given .

Similar to , we can construct a set of tripletsby swapping positions one and two for each triplets in ,and by swapping positions one and three for each tripletsin . We refer to such constructions of , and

as W-transformation, X-transformation and Y-transfor-mation, respectively, representing cases of putting into thefirst, second, and third positions of the triplets.

Now we are ready to construct an instance of the SIO problemfor a given 3DM instance with

. It includes three steps.Step 1.

1) Let be an empty set of triplets, for.

2) For each , create a tripletand put it into . Let ,

, and .From the description of Step 1, we see that , and

there is no duplicate element in . Then for each ,there is a sequence of elements , denotedby , in . If , do the W-transformation tocreate a set of triplets . Specifically, in doingthe W-transformation, we use an element to replace each

and use an element to replace each special element, where and are the notations used in the definition

of . We use to denote the set of such triplets over all.

Lemma 3: For the constructed above:1) ;2) contains new (special) elements , and

the new introduced elements in the first, second and thirdpositions of are , , and ,respectively.Proof: As and ,

. Then from Property 1, there are totaltriplets. As all new elements in are special elements, thenumbers in 2) are obtained directly from Property 2.

We also need to do similar X-transformation and Y-transfor-mation on each and each in . For the resultingand , we will have results similar to Lemma 3.

We now formally state Step 2.Step 2:

1) Let be an empty set of triplets.2) For each in , if the corresponding sequence in

has its size larger than one, do W-transformation onand put all the resulting triples in into .

3) For each in , if the corresponding sequence inhas its size larger than one, do X-transformation onand put all the resulting triples in into .

4) For each in , if the corresponding sequence inhas its size larger than one, do Y-transformation onand put all the resulting triples in into .

5) Let .Generalizing Lemma 3, we can see that

1) ;2) the numbers of special elements in the positions one, two

and three of the triples in are identical, which are equalto .

Then we have the following straightforward lemma.Lemma 4: For the above obtained from Steps 1 and 2:

1) ;2) the numbers of different elements in positions one, two and

three of the triplets in are identical, which are;

3) there are no two triples in having two common ele-ments.

Step 3:For each element that appears in the triplets of , we de-

fine a request that needs a common service as the dataorigination point. Let . Then there are

requests in total. For each triplet , wedefine a service that will only be needed by three requests

, and . There are servicesin total. Suppose that there is no precedence constraint among

Page 6: Service Sharing for Streaming Video Multicast

1398 IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 10, NO. 7, NOVEMBER 2008

the services for any request except that has to be processedfirst. Let all services have the same unit cost. Note that in such aproblem, if there is no other service sharing except for , thenthe total cost would be .

The decision version of the SIO problem is to find a serviceinvocation order tree of which the total cost is no more than

.Lemma 5: If, for the given 3DM instance, there is a subset

of which covers all the elements in once and only once,then for the SIO instance, there is a service invocation order treewith total cost no more than .

Proof: For each triplet in , we first select the corre-sponding triplet in . Let the set of all such triplets be denotedas . Because covers all the elements in , coversone and only one elements of each sequence.Then, by Lemma 2 (applied to the replacement operations ofW-, X- and Y-transformations in Step 2), we can find tripletsin consisting of elements not being covered by and cov-ering these elements once and only once. Let these triplets be

. Thus covers all elements in once andonly once.

Now, without loss of generality, assume thatwith for .

Then we can have a service invocation order tree where eachof the services , for , is offered immediatelyfollowing service , which is the root of the tree. In addi-tion, let each such service be shared by three requests

. Thus each such service can be saved twice, andthe total resource sharing would be . For the remainingservices of each request, the service invocation order can bearbitrary. The total cost for such a service invocation order treewould be .

Lemma 6: For the SIO instance, if there is a service invoca-tion order tree with total cost being no more than ,then in the 3DM instance, there is a subset which covers allthe elements in once and only once.

Proof: We have the following observations for the serviceinvocation tree for the SIO instance.

Observation 1. We can see that any shared service, except ,can only immediately follow in the tree. Suppose that this isnot the case. For example, there are two services and beingsequentially shared by at least two requests and . Then thesetwo requests have two common services, implying that the twotriplets, corresponding to and , in having two commonelements, which is a contradiction to claim 3) of Lemma 4.

Observation 2. Each service that immediately follows mustbe shared exactly by three requests, and there are such sharedservices in total. If this is not true, suppose that has childnodes each representing a service shared by three requests,child nodes each representing a service shared by two requests,and child nodes each representing a service not being shared.For such a service invocation tree, the total cost saving is

, which means because the total sharing is atleast . On the other hand, because there are requests intotal, we have . Therefore, we must have

, .Observation 2 implies that there is a subset of which

covers all elements in once and only once.Now, from Lemma 2, as every special element is cov-

ered once and only once, one and only one element of every

Fig. 3. Construction of maximal common DAG ���� �� �.

sequence is not covered by triplets in .Then, they must be covered by triplets in . Let these tripletsbe , and the corresponding triplets in be . Thus everyelement in is covered by once and only once. Thenis the required subset of to cover all elements in .

Based on the Lemmas 5 and 6, the following theorem easilyfollows.

Theorem 1: The SIO problem is NP-hard in the strong sense.

V. ALGORITHMS

A. SIO With Two Requests

We first discuss a special case of the SIO problem with tworequests. We show that such a special case can be optimallysolved in polynomial time. Moreover, the algorithm for the two-request case will serve as building blocks for developing thegreedy heuristic algorithms for the general case.

We start with some concepts.For any two DAGs and , we can construct a maximal

common DAG , which represents all shared nodesbetween and and preserves the service dependency in

and for those shared nodes.is constructed as a DAG that has a layered struc-

ture where each layer has a set of nodes, and arcs only existbetween nodes in adjacent layers. In constructing ,we maintain a candidate service set for each DAG, namelyand . Each , for , 2, is initialized with , and willbe updated whenever all preceding nodes of a node in havebeen visited. At any step, if there are common services in and

, a new layer of nodes will be added to where foreach common service , we add a new node in inthe new layer, and add an arc from an upper-layer node to thisnew node if such an arc exists in either or , which guar-antees that the shared nodes in still keep the servicedependency they need to satisfy in original and .

The pseudocode for constructing is given inFig. 3. An example of for two requests and

is given in Fig. 4. Since the construction procedure isessentially to add some of the arcs in and to ,the time for completing the construction is in the order of

, where is the number of arcsin .

Page 7: Service Sharing for Streaming Video Multicast

WANG et al.: SERVICE SHARING FOR STREAMING VIDEO MULTICAST 1399

Fig. 4. Example of maximal common DAG ���� �� �.

From the construction of , we see that nodes in, , 2, are partitioned into two subsets,

and , where each node in has a corre-sponding node in , each node in has nocorresponding node in , and any node incan be put before any node in . We have the fol-lowing properties for .

Theorem 2: For the maximal common DAG , wehave

1) a topological sort for corresponds to a topo-logical sort for with respect to the precedenceconstraints defined in for , 2;

2) a topological sort for appended by a topolog-ical sort for with respect to the precedenceconstraints in , denoted by , is a topologicalsort for for 1, 2;

3) and form an optimal solution forthe SIO problem for the two users.Proof: From the construction of , we see that

inherits all the precedence constraints in thatapply to nodes in , and adds some other precedenceconstraints without causing any contradiction. So (1) holds and2) naturally follows 1) because any node in can beput before any node in in a topological sort. Also forthe construction of , we see that containsall possible services that can be shared by and . There-fore, it has the maximum cost saving. So we have 3).

A topological sort for can be easily obtained byvisiting the nodes layer by layer while the sequence of nodes onthe same layer can be arbitrary.

Given and , we use to denote the total costof nodes in . We see that is also the max-imum cost saving for and .

B. Global Greedy Algorithm

From Theorem 2, we see that the maximum service sharingfor and is determined by their maximal common DAG

. In any solution for the problem with requests,if the common branch for and is a topological sort of

, then we have achieved the maximum servicesharing for and .

Fig. 5. Global greedy algorithm.

In the global greedy algorithm for requests, we firstcalculate for , i.e., the max-imum cost saving for all pairs of two requests and .Then we find a pair , which achieves the maximum

. In the algorithm, we willfirst guarantee that is achieved, then try to optimizeother requests. When choosing , ties can be brokenarbitrarily.

From the case of two requests, we know that if we wantto achieve the maximum service sharing for and , weshould follow the above approach in Theorem 2. Specifically,we need to take a topological sort for as the sharedservices. On the other hand, as long as we have a topologicalsort for in the final solution, we can guaranteethat the maximum possible service sharing for and isachieved, regardless of the topological sort for other requests.This is equivalent to the case where the two requests andare replaced by a new virtual request defined by .This observation motivates the following iterative greedy algo-rithm described in Fig. 5.

Regarding the details of the algorithm, when the greedy algo-rithm stops, we have , each , ,represents the residual DAG of , which are not shared in thesolution among and for , and each re-ferrs to the maximal common DAG among and other DAGs.According to the greedy algorithm for the case with two re-quests, the topological sort of appended with the topo-logical sort of gives the service invocation order forfor .

Obviously, the time complexity of the global greedy algo-rithm is dominated by the calculation of . It takes

, where , tocalculate all initially. Then in each iteration, we needto update new for the newly defined virtual re-quest, and the algorithm takes iterations. So the overalltime complexity is .

The output of the above global greedy algorithm contains aseries of maximal common DAGs. A final service invocationorder tree can be generated based on these maximal commonDAGs, which can be done by the following approach. We firstdo a topological sort for each for , then con-nect them into a tree by the indicator of from the greedy

Page 8: Service Sharing for Streaming Video Multicast

1400 IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 10, NO. 7, NOVEMBER 2008

Fig. 6. Tree construction following the global greedy algorithm.

algorithm. The pseudocode of the tree construction algorithm isgiven in Fig. 6.

Theorem 3: Global greedy algorithm is a 2-approximationalgorithm in terms of maximizing service sharing.

Proof: As we specified in Section III-B, an equivalentstatement of the SIO problem is to maximize the total sharedservice cost, which is the difference between the cost of theoptimal service composition tree and the cost of a servicecomposition tree where all requests do not share any serviceexcept . Let be the total service cost of . The costof a service composition tree where all requests do not shareany service except is .

We now prove that the global greedy algorithm is a 2-ap-proximation algorithm in terms of maximizing the totalshared service cost. We use to denote the cost of theoptimal service invocation order tree for the initial DAG set

, and the cost of the optimal ser-vice invocation order tree for the updated DAG set which isobtained after the -th iteration of the global greedy algorithm.Notice that some of the DAGs in are original DAGs and someare newly generated DAGs after the -th iteration of the globalgreedy algorithm.

Suppose that in the -th iteration, two DAGs and arechosen to be combined together. Then their maximum commonDAG is denoted by in the algorithm. Suppose that thecost of is . After the -th iteration, the cost of unsharedservices of DAGs and is

and such unshared services will no longer be considered in thefollowing iterations. We define to be

. In other words, repre-sents the “committed” service cost at -th iteration of the globalgreedy algorithm.

By using these definitions, we can write the costof the service invocation order tree generated by the globalgreedy algorithm as

(1)

We start the analysis from the first step of the global greedy al-gorithm to see how the “greedy choice” will affect the remainingpossibility of the optimal solution. Suppose is the optimal ser-vice invocation order tree where and share serviceswith other DAGs instead of sharing with each other. Now we

adopt the following two steps to transform the tree and also an-alyze the cost change incurred. In step 1, we isolate the two pathsfor DAGs and so that they only share with the otherpaths. Due to such transformations, service sharing is reduced.However, the reduced service sharing cost will not be more than

, which means the cost increase in the tree will beat most . This claim is guaranteed to be true by thegreedy choice rule. In step 2, we merge these two paths togetherto share the maximum services that they can share. According tothe global greedy algorithm, this change will reduce the cost ofthe tree by . In this way, we have the following relation:

Similarly, we have for.

By summing up these inequalities, we have

According to (1), we have

(2)

On the other hand, we know that

We see that the service cost reduced in the global greedy al-gorithm is and service costreduced in the optimal tree is

. Based on the above analysis, we have

Therefore, we have , whichmeans the service cost reduced in global greedy algorithm isat least half of the service cost reduced in the optimal solution.

The approximation ratio of the global greedy algorithm interms of maximizing service sharing is tight. This can be shownby the example in Fig. 7 where each service composition requestrequires four services. We assume that the service cost of eachservice is 1. The cost of the optimal tree is 7. Thus, serviceshaving in the optimal solution is services andthe cost saving in the global greedy algorithm is

.

C. Local Greedy Algorithm

The local greedy algorithm determines the service invoca-tion orders for the requests one by one. The algroithm selectsan arbitrary topological sort for request 1, denoted by . For

Page 9: Service Sharing for Streaming Video Multicast

WANG et al.: SERVICE SHARING FOR STREAMING VIDEO MULTICAST 1401

Fig. 7. Example showing that the global greedy algorithm is 2-approximatealgorithm in terms of maximizing service sharing.

each following request , the algorithm derivesthe maximal common DAG between and any for

. Suppose that request can achieve the max-imum sharing with request , the service invocation order forrequest is determined as follows: 1) the services shared with

follow their invocation order in and 2) an arbitrary topog-ical sort result for services in gives the serviceinvocation order for the remaining services. The service invo-cation order in 1) appended by the service invocation order in2) gives . The algorithm repeats until all requests have beenconsidered. When only considering one request at a time, thetime complexity of the local greedy algorithm iswhich is faster than the global greedy algorithm.

D. Lower Bound

A cost lower bound can be obtained by the following idea.We deal with the requests one by one. When consideringrequest , we assume that the first requests are or-ganized in the best way in order to save cost for request .Under such an assumption, the maximum sharing betweenrequest and any request is no more than

. With thisinformation, the minimum cost increase for considering request

can be calculated. Then the cost lower bound for all requestswould be the sum of such minimum cost increase. It can becalculated as follows.

Initialization: Let . Let .

While , do

Begin

End

Theorem 4: The obtained from the above algorithmis a cost lower bound for requests.

Proof: We prove the theorem by induction. Besides thetrivial case of , the theorem is also true for because

is the minimum cost according to Theorem 2.

Now assume that the theorem is true for requests, i.e.,is the minimum possible cost for the first

requests. From the property of maximal DAG, the term

gives the minimum cost increase that has to be incurred exclu-sively to request , regardless of how these requests are or-ganized. Therefore, is the minimum cost for serving theall requests.

In the above lower bound calculation, we handle requests se-quentially one by one. Noticing that different sequences of han-dling the requests would lead to different lower bounds, we canfurther strengthen the lower bound as follows by controling thesequence of handling the requests.

Suppose that we have a cost lower bound forrequests where is a subset of requests with

. To get a lower bound with requests, we need toconsider the requests that are not in . For each request

, let be the maximum possible cost saving of handlingif the system only has the requests in and , which can

be calculated by

In order to have a large lower bound , we preferto add to the lower bound a request with a smaller cost saving.So we identify a request such as ,which leads to a new lower bound as

and . Our computational experimentsin the next section show that the above lower bound is reason-ably tight.

Both the lower bound calculation and the local greedy algo-rithm consider the requests one by one. When considering a newrequest, both algorithms will examine the maximum sharing be-tween the new request and other requests, which have been con-sidered previously. The difference is that for the lower bound,the maximum sharing is based on the DAG of the new requestand the DAG of other requests previously considered, while forthe local greedy algorithm the maximum sharing is based onthe DAG of the new request and the service invocation orders ofother requests which have been considered.

VI. SIMULATION

In this paper, we study the problem of determining the serviceinvocation orders for multiple service requests simultaneouslyin order to achieve the maximum service sharing. In contrast, ifthe service invocation order for each request is determined inde-pendently, it causes more resource usage. Without consideringthe possible service sharing with other requests, if the serviceinvocation order for each request is determined independently,after an arbitrary topological sort is selected for each , a ser-vice invocation order tree can be constructed reflecting the min-imum service cost under the service invocation orders. Such a

Page 10: Service Sharing for Streaming Video Multicast

1402 IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 10, NO. 7, NOVEMBER 2008

procedure is referred to as the naive algorithm. The objectivesof the simulation conducted in work are as follows.

• To study the performance gain between the greedy algo-rithms and the naive algorithm to demonstrate the effec-tiveness of the proposed greedy algorithms.

• To compare the performance gain between the globalgreedy algorithm and the local greedy algorithm. If onlyone request is considered at a time, the local greedy al-gorithm can run faster than the global greedy algorithm.However, the cost saving is not as much as that of theglobal greedy algorithm. The comparison between theglobal greedy algorithm and the local greedy algorithmcan help the system make a decision on whether to recom-pose the existing service composition requests or not uponreceiving a new request.

• To study the relative error between the proposed greedyalgorithms and the lower bound. Due to the NP-complete-ness of the problem, the comparison between the proposedgreedy algorithms and the lower bound will help demon-strate the effectiveness of the proposed algorithms.

A. Simulation Setup

In the simulation, there are requests where varies from 20to 100. There are services in total where varies from 10 to50. The cost of each service is set to 1. The number of servicesthat each request requires is randomly generated in the rangeof to with being a parameter. For each request, theservice dependency is randomly generated where each servicehas incoming links from other services representing the ser-vice dependency where varies in the range of 1 to . After allsuch precedence constraints are generated, we check whether itresults in a DAG. If it is not a DAG, then the problem instanceis dropped and a new one is generated.

For each combination of parameters , , , and , wegenerate 200 instances. For each instance, we solve it using theglobal greedy algorithm, the local greedy algorithm, and thenaive algorithm, respectively, and compute the lower bound ofthe total service cost. The performance of the three algorithms isevaluated by their relative errors compared to the lower bound.Let denote the total service cost obtained by the globalgreedy algorithm and denote the total service cost given bythe lower bound. The relative error of the greedy algorithm isdefined as

Let denote the total service cost obtained by the localgreedy algorithm. The relative error of the local greedy algo-rithm is defined as

Similarly, let denote the total service cost obtained by thenaive algorithm. Then the relative error of the naive algorithmis defined as

Fig. 8. Relative error versus the number of requests when large service sharingexists among requests (� � ��,� � ��).

Fig. 9. Relative error versus the number of requests when the possibility ofservice sharing among requests is moderate (� � ��,� � ��).

B. Simulation Results

We show the relative error of the global greedy algorithm, thelocal greedy algorithm, and the naive algorithm when the possi-bility of service sharing among requests is large, moderate andsmall in Figs. 8, 9, and 10 respectively. In all these three fig-ures, we fix , and vary from 20 to 100. InFig. 8, we fix . Since is only 10 and the number ofservices required by service composition requests varies from5 to 10 , the service sharing possibility among ser-vice composition requests is high. In such a case when large ser-vice sharing exists among requests, we can see that the globalgreedy algorithm can be significantly better than the naive algo-rithm. When , the relative error of the naive algorithmis almost 100% and the global greedy algorithm is around 20%.Notice that the relative error of all these algorithms are subjectto the lower bound. In Fig. 9, we fix and the servicesharing possibility among service composition requests is mod-erate. We can see that the greedy algorithms still outperformthe naive algorithm and the relative error of the global greedyalgorithm is below 10%. In Fig. 10, we fix and the ser-vice sharing possibility among service composition requests issmall. The performance of the global greedy algorithm is veryclose to the lower bound. When changes from 20 to 100, the

Page 11: Service Sharing for Streaming Video Multicast

WANG et al.: SERVICE SHARING FOR STREAMING VIDEO MULTICAST 1403

Fig. 10. Relative error versus the number of requests when service sharingamong requests is rare (� � ��,� � ��).

Fig. 11. Relative error versus the total number of services.

relative error of the global greedy algorithm is only between 3%and 4%.

Fig. 11 shows the relative errors of the three algorithms vs.the total number of services in the system. In Fig. 11, we fix

, , and vary from 20 to 50. Whenthere are more services in the system and the services requiredin each request is randomly generated, the number of sharedservices among the requests is small. Therefore, the probabilitythat the greedy algorithms miss the potential sharing among dif-ferent requests is small. Thus, relative errors decreases with theincrease of the total number of services.

Fig. 12 shows the relative errors of the three algorithms vs.maximum incoming degree. In Fig. 12, we fix ,

, and vary from 3 to 7. With the increase of ,the relative errors of all three algorithms decreases. With larger

, there are more different results of the topological sort foreach DAG, which gives larger optimization space for our greedyalgorithms. Thus, the performance of the greedy algorithms canbe closer to that of the lower bound.

The above experiments demonstrate the effectiveness of thegreedy algorithms. Our next two experiments are designed todemonstrate the gain of the greedy algorithms over the naive al-gorithm. In Table I, we fix , , and

Fig. 12. Relative error versus the DAG degree �.

TABLE IAVERAGE NUMBER OF SERVICES INVOKED PER REQUEST

vary from 20 to 40. On average, each request requires 5.82services, thus the cost incurred per request is 5.82 since we setthe cost of each service to be 1. Since is much larger than theaverage number of required services in each request, the servicesharing possibility among requests is quite small. Without coor-dinated service invocation orders, on average, the cost incurredper request is 5.11 in the naive algorithm and can only save 12%service resource consumption. However, on average, the cost in-curred per request is only 4.59 in the global greedy algorithmand 27% service resource can be saved. Such a resource savingis significant when computation resource is scarce or when thereare a large number of requests in the system simultaneously. Aswe can expect, when the service sharing possibility among re-quests is larger, the resource sharing of the greedy algorithm canbe larger than that of the naive algorithm.

It is not hard to predict that when the number of feasible ser-vice invocation orders is larger for each request, the potentialgain of the greedy algorithms over the naive algorithm will belarger since the optimization space for the greedy algorithmsis larger. In the final experiment, we randomly generate the setof required services for each request and assume that there is noservice dependency except that which is the data source mustbe executed first. Such an extreme case gives the greedy algo-rithms the largest optimization space. In Fig. 13, we set ,

, and vary from 20 to 50. Fig. 13 shows thegain of the greedy algorithms over the naive algorithm. Whenis large and is fixed, there are more common services amongthe requests. As shown in Fig. 13, the global greedy algorithmcan save costs up to 70% more than the naive algorithm when

is large.

VII. DISCUSSION AND CONCLUSION

In this paper, we study the problem of determining serviceinvocation orders in a streaming video multicast with heteroge-neous service composition requests to minimize the total cost ofinvoked services. The problem is proved to be NP-complete andtwo greedy algorithms are proposed to solve the problem. Com-pared with a naive algorithm which determines the service in-

Page 12: Service Sharing for Streaming Video Multicast

1404 IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 10, NO. 7, NOVEMBER 2008

Fig. 13. Service sharing of the greedy algorithms compared with the naive al-gorithm.

vocation order for each request individually without the consid-eration of sharing among other requests, our greedy algorithmsprovide much better service resource sharing. The effectivenessof the greedy algorithms is numerically shown by the relativeerrors compared to a cost lower bound.

The global greedy algorithm can be applied in two scenarios.First, we can use the global greedy algorithm for a system wheremultiple service composition requests come to the system. Insuch a case, the service invocation orders will be generated co-ordinately at the very beginning for all requests.

Second, it can also be applied to a system where the requestsarrive dynamically and each service composition request willlast for a long time period. In such a system, service recompo-sition for the existing requests with the arrival of a new requestmay be favorable. As a result, upon receiving a new service com-position request, the system can change the service compositionsolutions for existing service composition requests and generatenew service composition solutions for all requests in the system.The global greedy algorithm can be applied to such systems toachieve the maximum service sharing among different requests.

On the other hand, the local greedy algorithm is adequate fora system that prefers to keep the service composition solutionunchanged for existing requests. When a new request arrives, thesystem only makes a service composition solution decision forthe new request. Then the local greedy algorithm can be appliedto such a case.

Combining the global and local greedy algorithm can alsohelp us make a better decision on whether to recompose theservices with each arrival of a new service. In a system whereswitching service composition solutions for the existing re-quests may cause some cost, we can calculate the performancegain of the global greedy algorithm over the local greedyalgorithm, and determine whether the performance gain of aglobal solution can offset the potential cost of switching theexisting requests to the new service composition solutions.

In a system with a large number of service composition re-quests, which is the common scenarios of streaming video ap-plications, the gain of the proposed work is significant since po-tentially a common service will only be invoked once for allrequests instead of being invoked once for each request whichcan reduce the delay that the end user may experience.

This paper only addresses the service invocation order foreach request. With the service invocation order for each request,

the next step is to assign or embed each required service to itsmost appropriate service provider and invoke them accordingto the order. This is one direction of our future work becausethe difference in cost for different service providers may affectthe sharing decisions. The work conducted in this paper pro-vides the maximum potential for service sharing. However, theactual service resource sharing depends on the service compo-sition process. If a shared service is only assigned to one ser-vice provider, then the maximum resource sharing on this ser-vice is achieved. Our work can serve as the pre-process for thetechniques proposed in the literature on service composition formultiple requests [7], [19], [22]–[24]. As widely discussed in theliterature, a service composition request may be associated withthe end-to-end QoS requirement. Thus, though some requestsshare some services, due to the QoS requirement, the sharedservices may be invoked at different service providers, which isdetermined in the service composition. This is another directionof our future work. Last but not the least, we are exploring otheropportunities of service sharing in other application domains.

ACKNOWLEDGMENT

The authors would like to thank the associate editor, Dr.S.-H. G. Chan, the anonymous reviewers, and Dr. B. Yang fortheir constructive comments and valuable help that improvedthe paper.

REFERENCES

[1] B. Raman and R. H. Katz, “Load balancing and stability issues in algo-rithms for service composition,” in Proc. IEEE INFOCOM 2003, Apr.2003, pp. 1477–1487.

[2] J. Jin and K. Nahrstedt, “Source-based QoS service routing in dis-tributed service networks,” in Proc. IEEE Int. Conf. Communications2004 (ICC2004), Jun. 2004, pp. 20–24.

[3] X. Gu, K. Nahrstedt, R. Chang, and C. Ward, “QoS-assured servicecomposition in managed service overlay networks,” in Proc. 23rd IEEEInt. Conf. Distributed Computing Systems (ICDCS 2003), May 2003,pp. 19–22.

[4] J. Jin and K. Nahrstedt, “Resource- and quality-aware application-levelservice multicast,” in Proc. 9th IEEE Int. Workshop on Future Trendsof Distributed Computing Systems (FTDCS 2003), May 2003, pp.198–204.

[5] Z. Abrams and J. Liu, “Greedy is good: On service tree placement forin-network stream processing,” in Proc. ICDCS, 2006.

[6] U. Srivastava, K. Munagala, and J. Widom, “Operator placement forin-network stream query processing,” in Proc. 24th ACM Symp. Prin-ciples of Database Systems (PODS’05), Baltimore, MD, Jun. 2005.

[7] S. Yamaoka, T. Sun, M. Tamai, K. Yasumoto, N. Shibata, and M. Ito,“Resource-aware service composition for video multicast to heteroge-neous mobile users,” in Proc. ACM MSC’05, Singapore, Nov. 2005,pp. 37–46.

[8] D. Chakrabory, A. Joshi, T. Finin, and Y. Yesha, “Service compositionfor mobile environments,” Mobile Networks and Applic., vol. 10, pp.435–451, 2005.

[9] S. Kalasapur, M. Kumar, and B. Shirazi, “Seamless Service Composi-tion (SeSCo) in pervasive environments,” in Proc. ACM MSC’05, Nov.2005, pp. 11–20.

[10] P. Basu, W. Ke, and T. Little, “Scalable service composition in mobilead hoc networks using hierarchical task graphs,” in Proc. 1st Annu.Mediterranean Ad Hoc Networking Workshop, 2002.

[11] J. Liu, E. Cheong, and F. Zhao, “Semantics-based optimization acrossuncoordinated tasks in networked embedded systems,” in Proc. EM-SOFT’05, Jersey City, NJ, Sep. 19–22, 2005, pp. 273–281.

[12] E. Deelman, G. Singh, M. Su, J. Blythe, Y. Gil, C. Kesselman, G.Mehta, K. Vahi, G. Berriman, J. Good, and A. Laity, “Pegasus: Aframework for mapping complex scientific workflows onto distributedsystems,” Scientif. Programm., vol. 13, pp. 219–237, 2005.

[13] A. Goderis and P. Li, “Carole Goble workflow discovery: The problem,a case study from e-Science and a graph-based solution,” in Proc. IEEE2006 Int. Conf. Web Services, Sep. 2006, pp. 312–319.

Page 13: Service Sharing for Streaming Video Multicast

WANG et al.: SERVICE SHARING FOR STREAMING VIDEO MULTICAST 1405

[14] A. Wombacher and M. Rozie, “Piloting an empirical study on measuresfor workflow similarity,” in IEEE 2006 International Conference onServices Computing, Sept. 2006, pp. 94–102.

[15] H. Bunke and K. Shearer, “A graph distance metric based on the max-imal common subgraph,” Pattern Recognit. Lett., vol. 19, no. 3–4, pp.255–259, 1998.

[16] D. Conte, C. Guidobaldi, and C. Sansone, “A comparison of three max-imum common subgraph algorithms on a large database of labeledgraphs,” in Proc. 4th IAPR International Workshop on Graph BasedRepresentations in Pattern Recognition (GbRPR), York, U.K., 2003,pp. 589–607.

[17] M. Kuramochi and G. Karypis, “Frequent subgraph discovery,” inProc. IEEE Int. Conf. Data Mining (ICDM), San Jose, CA, 2001, pp.313–320.

[18] A. Inokuchi, T. Washio, and H. Motoda, “An apriori-based algorithmfor mining frequent substructures from graph data,” in Proc. 4th Eu-ropean Conf. Principles of Data Mining and Knowledge Discovery(PKDD), London, U.K., 2000, pp. 13–23.

[19] J. Jin and K. Nahrstedt, “mc-SPF: An application-level multicast ser-vice path finding protocol for multimedia application,” in Proc. IEEEInt. Conf. Multimedia and Expo (ICME2002), Lausanne, Switzerland,Aug. 2002, pp. 26–29.

[20] K. Nahrstedt and W. Balke, “A taxonomy for multimedia service com-position,” in Proc. 12th Annu. ACM Int. Conf. Multimedia, 2004, pp.88–95.

[21] M. R. Garey and D. S. Johnson, Computers and Intractability: A Guideto the Theory of NP-Completeness. San Francisco, CA: Freeman,1979.

[22] S. Banerjee, Z. Xu, S. Lee, and C. Tang, “Service adaptive multicast formedia distribution networks,” in Proc. 3rd IEEE Workshop on InternetApplications (WIAPP’03), Jun. 2003.

[23] Z. Xu, C. Tang, S. Banerjee, and S. Lee, “RITA: Receiver initiatedjust-in-time tree adaptation for rich media distribution,” in Proc.NOSSDAV ’03, Jun. 2003.

[24] J. Jin and K. Nahrstedt, “On construction of service multicast trees,” inProc. IEEE Int. Conf. Communications (ICC 2003), Anchorage, AK,May 2003.

[25] J. Jin and K. Nahrstedt, “On exploring performance optimizations inWeb service composition,” Lecture Notes in Computer Science 3231pp. 115–124, 2004.

Jianping Wang (M’03) received the B.Sc. and M.Sc.degrees in computer science from Nankai University,Tianjin, China, in 1996 and 1999, respectively, andthe Ph.D. degree in computer science from the Uni-versity of Texas at Dallas in 2003.

She is currently an Assistant Professor at theDepartment of Computer Science, City Universityof Hong Kong. Her research interests include opticalnetworks and wireless networks.

Dickson K. W. Chiu (SM’04) received the B.Sc.(Hons.) degree in computer studies from the Univer-sity of Hong Kong in 1987 and the M.Sc. and Ph.D.degrees in computer science from the Hong KongUniversity of Science and Technology in 1994 and2000, respectively.

From 2001 to 2003, he was an Assistant Professorat the Department of Computer Science, The Chi-nese University of Hong Kong, and in 2006 he was aVisiting Assistant Professor with the Computing De-partment, Hong Kong Polytechnic University. His re-

search interests include information systems, information technologies, and ser-vice computing.

Dr. Chiu is a Senior Member of the ACM.

Qing Li (SM’01) received the B.Eng. degree fromthe Hunan University, Hunan, China, and the M.Sc.and Ph.D. degrees from the University of SouthernCalifornia, Los Angeles, all in computer science.

He is currently a Professor at the City University ofHong Kong. His research interests include databasemodeling, multimedia retrieval and management,web services, and e-learning systems.

Minming Li received the B.E. and Ph.D. degreesfrom the Department of Computer Science andTechnology, Tsinghua University, Beijing, China, in2002 and 2006, respectively.

He is currently an Assistant Professor in theDepartment of Computer Science, City University ofHong Kong. His research interests include wirelessad hoc networks, algorithm design and analysis,combinatorial optimization, and cryptography.