Data-Driven Service Composition in Enterprise SOA Solutions: A Petri Net Approach
ABSTRACT Under Service Oriented Architecture (SOA), service composition is used to integrate service components together to meet new business needs. In this paper, we propose a novel data-driven method to provide service composition guidance to implement given requirements. Based on the relations between business domain data and service domain data, we generate additional data mediations according to three composition rules. With these data relations and composition rules, we propose a Petri-net based approach to the composition of services. In our approach, all the in/output messages of the service operations are modeled as colored places, and service operations themselves are modeled as transitions with input/output places. We first generate a Service Net (SN) that contains all operations in a given service portfolio, and then use Petri-net decomposition techniques to derive a subnet of SN, and this subnet meets the need of the business requirement. Our work can be seen as an effort to bridge the gap between business and service domains.
- Citations (20)
-
Cited In (0)
-
Article: Service-Oriented Computing: Key Concepts and Principles
[show abstract] [hide abstract]
ABSTRACT: Traditional approaches to software development - the ones embodied in CASE tools and modeling frameworks - are appropriate for building individual software components, but they are not designed to face the challenges of open environments. Service-oriented computing provides a way to create a new architecture that reflects components' trends toward autonomy and heterogeneity. We thus emphasize SOC concepts instead of how to deploy Web services in accord with current standards. To begin the series, we describe the key concepts and abstractions of SOC and the elements of a corresponding engineering methodology.Faculty Publications. -
Conference Proceeding: Service-oriented architecture and business process choreography in an order management scenario: rationale, concepts, lessons learned.
Companion to the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2005, October 16-20, 2005, San Diego, CA, USA; 01/2005 -
SourceAvailable from: citeseerx.ist.psu.edu
Article: HTN planning for Web Service composition using SHOP2
[show abstract] [hide abstract]
ABSTRACT: Automated composition of Web Services can be achieved by using AI planning techniques. Hierarchical Task Network (HTN) planning is especially well-suited for this task. In this paper, we describe how HTN planning system SHOP2 can be used with OWL-S Web Service descriptions. We provide a sound and complete algorithm to translate OWL-S service descriptions to a SHOP2 domain. We prove the correctness of the algorithm by showing the correspondence to the situation calculus semantics of OWL-S. We implemented a system that plans over sets of OWL-S descriptions using SHOP2 and then executes the resulting plans over the Web. The system is also capable of executing information-providing Web Services during the planning process. We discuss the challenges and difficulties of using planning in the information-rich and human-oriented context of Web Services.Web Semantics: Science, Services and Agents on the World Wide Web.
Page 1
686IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, VOL. 7, NO. 3, JULY 2010
Data-Driven Service Composition in Enterprise SOA
Solutions: A Petri Net Approach
Wei Tan, Yushun Fan, MengChu Zhou, Fellow, IEEE, and
Zhong Tian
Abstract—Under Service Oriented Architecture (SOA), service composi-
tion is used to integrate service components together to meet new business
needs. In this paper, we propose a novel data-driven method to provide ser-
vice composition guidance to implement given requirements. Based on the
relations between business domain data and service domain data, we gen-
erateadditionaldatamediationsaccordingtothreecompositionrules.With
these data relations and composition rules, we propose a Petri-net based
approach to the composition of services. In our approach, all the in/output
messages of the service operations are modeled as colored places, and ser-
vice operations themselves are modeled as transitions with input/output
places. We first generate a Service Net (SN) that contains all operations in
a given service portfolio, and then use Petri-net decomposition techniques
to derive a subnet of SN, and this subnet meets the need of the business re-
quirement. Our work can be seen as an effort to bridge the gap between
business and service domains.
Note to Practitioners—Web services composition is an emerging area for
business process automation. This work presents a novel framework to
compose web services from the perspective of data. It is based on colored
Petri nets and a newly proposed concept called Service Net. The proposed
method represents both data relations and service composition rules with
colored Petri nets. If a business requirement is given with input/output
data, we convert the Service Net into a reduced one, and decompose it
into subnets that can be candidate composition solutions. A real-life case
is used to illustrate the feasibility of the proposed concepts and method.
Our method can be readily used in industrial web service composition for
business automation.
Index Terms—Colored Petri nets, data-driven, service net (SN), web ser-
vice composition.
I. INTRODUCTION
Web service composition is considered to be a key factor in stim-
ulating the web evolving from an information-delivering center to a
functionofferingplatformtobettersupportautomateduse.Itisofgreat
importance in the emerging paradigm of Service Oriented Architecture
Manuscript received February 04, 2009; revised June 04, 2009; accepted
September 01, 2009. Date of publication November 24, 2009; date of current
version July 02, 2010. This paper was recommended for publication by
Associate Editor B. Turchiano and Editor Y. Narahari upon evaluation of
the reviewers’ comments. This work was supported in part by an IBM Ph.D.
Fellowship, in part by the National Science Foundation of China (60674080),
in part by the National 863 Program of China under Contract 2007AA04Z150
and Contract 2008AA04Z109, in part by Ministry of Education of China under
Changjiang Scholars Program, and in part by the National Basic Research
Program of China (2006CB705407).
W. Tan is with the Computation Institute, University of Chicago and the Ar-
gonne National Laboratory, Chicago, IL 60637 USA (e-mail: wtan@mcs.anl.
gov).
Y. Fan is with the Department Automation, Tsinghua University, Beijing
100084, China (e-mail: fanyus@tsinghua.edu.cn).
M. Zhou is with the Department of Electrical and Computer Engineering,
New Jersey Institute of Technology, Newark, NJ 07102 USA, and also with
School of Electro-Mechanical Engineering, Xidian University, Xi’an, 710071,
China (e-mail: zhou@njit.edu).
Z. Tian is with the IBM Software Group, China Development Laboratories,
Beijing 100094, China (e-mail: tianz@cn.ibm.com).
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/TASE.2009.2034016
(SOA) [1], because reusability is a key issue in SOA to ensure scala-
bility and productivity. When new business requirements emerge, so-
lution designers should devise a composite process that makes the best
use of existing services, and SOA provides a way to glue all compo-
nents together with least augmentation or modification. Service com-
position techniques provide ways to devise a composition of services,
which fulfills the requirement. There are a number of studies on auto-
matic web service composition, but there is not much on the linkage
between requirements and services.
In this paper, we propose a data-based approach to provide guidance
for service (or process) composition with a given service portfolio in
mind. The data relations between business domain and service domain
are explored and data mediation constructs are added to bridge the ex-
isting artifacts. We use colored Petri nets as a formalism to represent
the data relations. Based on this formalism, three composition rules,
i.e., sequential, parallel, and choice composition rules, are proposed.
Then, we present a formal method to derive service compositions that
satisfythe requirement with respectto the input/output data types. This
method is based on a Petri net decomposition technique. A prototype
system is developed to test the validity of the proposed approach. To
the best of our knowledge, we for the first time present a Petri-net de-
composition based approach and integrated system that utilize the data
relation in business/service portfolio to derive composite services.
II. RELATED WORK
Currentresearchonservicecompositionmethodscanbedividedinto
two categories, i.e., top-down and bottom-up. The former focuses on
building new solutions from scratch [2], [3]. It addresses well the issue
of how to reflect the requirements and to refine them into finer grain
of abstraction such that programmers can take over to implement. It
ignores the fact that enterprise solutions are built on top of an existing
IT infrastructure. Designers need extra help in putting the solution de-
sign in the context of current IT infrastructure, including the current
service portfolio. Bottom up approaches mainly focus on the auto-
matic service composition methods. They can further be classified into
logic[4]–[14],optimization[15]–[19],andautomata-basedapproaches
[20]–[22].
Alogic-basedapproachassumesthatserviceprovidersgivesemantic
descriptions of the service, e.g., input, output, precondition, and effect.
The survey in [23] describes the problem of automatic service compo-
sition as a five tuple ???????????? in which ? is the set of all pos-
sible system states, ?? and ? are the initiate and goal state regarding
the service composition. ? is the set of all possible actions (i.e., all the
service operations), ? ? ? ? ? ? ? defines the precondition and ef-
fect for each action. Then, if we start from the initiate (or goal) state,
with all the possible actions in ?, various AI-planning methods can be
used to derive a feasible plan to the goal (or initiate) state. Researchers
usually use ontology modeling language like OWL-S [24] to add se-
manticannotationsonwebservicedescription.Then,situationcalculus
[4], [9], PDDL [5], rule-based approach like SWORD [10] and HTN
[6] are used to derive feasible solution(s). A Petri net-based planning
framework is proposed in [9]. This framework is based on state-space
analysis.
Optimization-based approaches are used to derive composite ser-
vices that achieve the best quality-of-service (QoS). Usually, the QoS
constraints include local constraints (constraints imposed on a single
service) and global ones (constraints imposed on multiple services),
and therefore two selection approaches are used to solve these two
kinds of constraints, respectively [19]. Optimization methods like
linear programming [15], [17] and genetic algorithm [16] are used to
solve the QoS constraints and yield feasible and optimal solution(s).
1545-5955/$26.00 © 2010 IEEE
Authorized licensed use limited to: UNIV OF CHICAGO LIBRARY. Downloaded on July 01,2010 at 20:25:25 UTC from IEEE Xplore. Restrictions apply.
Page 2
IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, VOL. 7, NO. 3, JULY 2010687
An automata-based approach uses automata to describe the behavior
of target composite service as well as participant services. The key of
this approach is computing a delegator that coordinates the activities
from those participant services such that the overall behavior corre-
sponds to the composite service. If a delegator exists, the behavior of
the target composite service can be achieved by synthesizing the par-
ticipant services and delegating their individual behaviors [20]–[22].
However, current solutions have limitations when they are used in
real business scenarios. First, most of them assume a coherent repre-
sentation of requirement (target service) and participant services. Few
consider the gap between business and service domains. As we can
see in Section III, business service domains usually have different do-
main models with different aspects of concern. This gap hampers the
effectiveuseofthelogic,optimizationandautomata-basedapproaches.
Second, many approaches use ontology to describe the behavior of
services and related data. However, nowadays in most enterprises, se-
mantic information of their web services is still missing. The logic-
based approach needs much additional effort in adding semantic tags
on top of the current web service standard stack.
On the one hand, current solutions need a more ideal usage scenario
than the one in reality. On the other hand, service portfolio contains
abundant data to be investigated and used. We believe that from these
data, much guidance can be derived to help service composition. We
also believe that our data-driven solution is a lightweight approach that
can be used in conjunction with other approaches.
III. PROBLEM STATEMENT
In software tools such as IBM WebSphere Business Modeler [25]
and WebSphere Integration Developer [26], composite services can be
directlyderivedfrombusinessprocesses.Itseemsthatbusinessrequire-
ments represented bybusiness processescan be directlytransformed to
refined processes realized by available services. In practice, however,
some gaps remain.
First, the model elements of a business process and a service com-
position are not identical. In practice, there are various kinds of spec-
ifications, languages and notations to model a business process and a
service composition [17], [18], [21], [23], [27], [33], [34]. Second, the
data model in business and service domains are heterogeneous. There-
fore, direct or indirect mappings between them are required to give an
integrated and coherent view of the two domains. The third reason is
more critical. Without proper guidance from the service domain, there
is no guarantee that the refined process model can be implemented by
available services. Hence, it would be the best if we can generate cer-
tain operational guidance from the existing service portfolio to help
refine a business domain process into a customized process that can be
implemented by existing services to a greater extent.
On the one hand, the difficulties mentioned above hamper the effec-
tive and efficient utilization of available services. On the other hand,
service portfolio contains abundant information to be further investi-
gated. For example,WSDL (Web Services DescriptionLanguage) [28]
files contain the input/output data type of operations, and WSDL files
with associated data definition schemas contain the relations among
these data types, such as aggregation and generalization. From these
data relations, guidance can be derived to help service composition.
A. Domains and Data Relations
Variouslanguages existformodeling, andwe needacommon one to
represent the artifacts. Colored Petri nets [29] capture both control and
dataaspectsofaprocess.Inthispaper,weusethemasacommonmodel
forboth businessprocessesas wellasservices.Due tospace limitation,
we omit the introduction of colored Petri nets. One can refer to [29],
[35] for more information.
Fig. 1. Domains and data relations.
There are two domains involved in the scenario of service composi-
tion,i.e.,businessandservice.Businessdomainisalsoknownasthere-
quirement specification domain in which requirements are represented
bybusinessprocessesconsistingofabstractactivitieswithinput/output
data. Service domain is also known as the implementation domain in
whichaserviceismodeledbyasetofoperationswithinput/outputdata
modeled as messages in WSDL.
We borrow the ideas from UML class diagram and type definition
in XML schema; here, we concern two kinds of relations, i.e., in-do-
main relation and cross-domain relation. From now on, the data types
in business domain are denoted with uppercase strings, while those in
service domain with lowercase strings.
Before we start to define data relations, we would like to emphasize
the difference between data and data type. A data type defines a set of
values that a data element can take. Since this paper is about service
composition at build-time (instead of at runtime), we focus on “data
type” instead of “data.” Therefore, except those otherwise noted, the
term data also refers to data type throughout this paper. For example,
whenwetalkabout“datarelations”wemeantherelationsbetweentwo
data types.
1) In-Domain Relations:
1) Aggregation: has-a relation.
2) Generalization: is-a relation.
3) Generation: the relation between input and output data types of a
business activity or service operation is defined as generation.
Let us explain with a real life example, i.e., an ADSL order pro-
cessing service (AOPS) provided by a telecommunication company.
This example is taken from a real customer case in IBM SOA solution
in telecom industry. In Fig. 1, the upper part is a segment extracted
form WSDL file. Operation generate_worksheet receives ADSL ap-
plication order (data type order) and generates a worksheet (data type
worksheet).Datatypeworksheetrepresentsthework-itemstofulfillthe
order, and it aggregates inhouse_ws thatrepresents thework-items un-
dertaken in a customer’s house. Data type order is the generalization
of nl_order that represents new-telephone-line-plus-ADSL business.
With this information the data structure in service domain is derived
and illustrated in the lower part of Fig. 1. In a business domain, there
are two data types ORDER and WORKSHEET, a business requirement
is expressed as ORDER generates WORKSHEET (ORDER ? WORK-
SHEET).
2) Cross-Domain Relation: Since we intend to make the best of ex-
isting services to meet the needs of business requirements, ideally data
types in service domain should be the implementation of those in busi-
ness domain. We note that realization is defined as a primitive in UML
Authorized licensed use limited to: UNIV OF CHICAGO LIBRARY. Downloaded on July 01,2010 at 20:25:25 UTC from IEEE Xplore. Restrictions apply.
Page 3
688IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, VOL. 7, NO. 3, JULY 2010
Fig. 2. Colored Petri Net (CPN) representation of generation, aggregation and
generalization relations.
2.0 specification, and it signifies the specification-implementation re-
lation between two model elements. Thus here we use realization as a
cross-domain relation to signify that one data type in a service domain
directly implements one data type in a business domain. For example,
in Fig. 1, data type order in the service domain is the realization of
data type ORDER in the business domain. In the following part of this
paper, a pair of data types, one’s name in lower case and the other in
upper case, have a realization relation between them.
Given that the granularity of business data is usually coarser than
that of service data, a complete realization relation between them is not
guaranteed. In order to model an incomplete one, we use two stereo-
types to extend the realization relation, i.e., partial and specialized.
1) Partial realization describes the case that service data realizes a
part of business data. For example, in Fig. 1, inhouse_ws is a part
of worksheet, which realizes WORKSHHET. Thus, we define in-
house_ws as the partial realization of WORKSHEET.
2) Specialized one describes the case that service data realizes a spe-
cial kind of business data. For example, in Fig. 1, nl_order is a
special class of order, which realizes ORDER. Thus, we define
nl_order as the specialized realization of ORDER.
Fig. 1 illustrates all the data relations we have discussed and gives
the notations to model these relations. For simplicity, we only present
the UML model while actual data definition in XML is omitted.
B. Problem Formulation
InSectionIII-A,weuseUMLnotationtoexpressdatarelations.Due
to space limit, we show only the graph presentation of UML class di-
agrams and in this section, we will show their corresponding Petri-net
constructs.Webelievethatthisformalismissufficientforthecomplete-
ness of this paper and a more formal presentation of the type definition
for colored Petri nets can be found in [29].
To align with the requirement of process composition, we use Col-
ored Petri nets to represent all the data relations in service domain, as
illustrated in Fig. 2. The notation of a place (for example, order) rep-
resents the color set attached to it. The color set, in turn, represents a
data type associated with this place. A hollow transition represents the
generation relation between two data types (order can generate work-
sheet); a solid one represents the generalization/aggregation relations
(worksheet is the aggregation of inhouse_ws and line_ws; and order is
the generalization of adsl_order and nl_order). For simplicity, we omit
the arc expressions that represent the token consuming relation when a
connecting transition fires. In our model, each arc will either consume
exactly one token of the input place’s data type or yield one token of
the output place’s data type, when a connecting transition fires.
To address the challenge of service composition from the perspec-
tive of data, first, we define the ideal property that a composite service
should satisfy. Since a composite service is represented by a colored
Petri net, we define data coherency on a colored Petri net.
Fig. 3. Service composition: problem formulation.
Definition 1: [Data Coherency] A colored Petri net ? is data co-
herent w.r.t. given business/service portfolio, if every transition in ?
either represents an operation in service portfolio, and transforms an
input data type into an output data type; or represents the aggregation
or generalization relationship among data types.
Remark: ? is data coherent if every transition ? in ? represents a
kind of data relations, as shown in Fig. 2.
Based on the formalization of process and data, we have the fol-
lowing problem statement (Fig. 3).
Requirement is expressed as a colored Petri net with a single tran-
sition ?, the data type of the input and output places of ? is denoted as
? and ?, respectively. So the requirement can be simply expressed as
? ? ?.Operationsinserviceportfoliocanalsobeexpressedas? ? ?,
i.e., the operation consumes one instance of data type ? and yields one
instance of data type ?.
Our goal is to find a collection of operations in a large service port-
folio.TheseoperationsconnecttoformacoloredPetrinet?.Asshown
in Fig. 3, data type attached to one place is denoted as an underlined
string.
? is a valid composition of the requirement ? ? ? if:
1) ? takes ? as its only input and ? as its only output.
2) ? is data coherent.
3) ? has some additional properties, to be stated in Section V-B.
Before addressingthe problem of service composition, we introduce
in Section IV data-driven composition rules used to refine processes in
a business domain into processes in a service domain.
IV. DATA-DRIVEN COMPOSITION RULES
The composition and transformation rules in this paper are all ex-
pressed with graph transformation formalism. It is intuitive enough to
understand, and more details on graph transformation can be found in
[30]. The sequential, parallel and choice composition rules correspond
to the sequential, parallel, and conditional routings given in Workflow
Net [31].
1) Sequential Composition Rule: The sequential composition rule
is illustrated in Fig. 4. For a business requirement ? ? ?, if there are
two operations in service portfolio, ? ? ? and ? ? ?, we can refine
the business requirement into a process realized by existing services,
i.e., ? ? ? ? ?.
2) Parallel Composition Rule: We explain this rule through an ex-
ample in Fig. 5. If ? ? ??? ??, ? ? ??? ??, and we have two oper-
ations ??? ? ????? ? ???, the requirement ? ? ? can be realized
by the AND collection of ??? ? ????? ? ???, with two additional
mediation transitions as represented by black rectangles. With media-
tion transitions, ? is decomposed to ??and ??, and ? to ??and ??.
3) Choice Composition Rule: This rule is related to data general-
ization as explained via Fig. 6. In a business domain, we have a re-
quirement ? ? ?, while in a service domain, we have two operations
??? ? ???? ? ?? ?? ? ?? ? ????? ? ?? ?
ment ? ? ? can be realized by the XOR (exclusive OR) collection
of ??? ? ???? ? ??, with two additional mediation transitions as
?. Then, require-
Authorized licensed use limited to: UNIV OF CHICAGO LIBRARY. Downloaded on July 01,2010 at 20:25:25 UTC from IEEE Xplore. Restrictions apply.
Page 4
IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, VOL. 7, NO. 3, JULY 2010689
Fig. 4. Sequential composition rule.
Fig. 5. Parallel composition rule.
Fig. 6. Choice composition rule.
represented by black rectangles. With mediation transitions, data type
? is specified to either ?? or ??.
In the composition rules we illustrate in this section, there are direct
mappings between business data and service data. Nevertheless, usu-
ally there is no existing service data that realizes some business data.
Hence, we need to add newly created service data to make the data
structure coherent. These newly created service data can be regarded
as virtual data type to facilitate service composition. For example, in
Fig. 5, if there is no service data type ???? that directly realizes ????,
we should create virtual data type ? and ? from the partial realization
data types of ? and ?, s.t. ? ? ??? ??, ? ? ??? ??, then ? ? ?
is refined to the AND collection of ??? ? ????? ? ???. Another cir-
cumstance is that, if ?, ?, ?? and ?? exist, but ?? and ?? do not exist
in service portfolio, we should manually add ??and ??as virtual data
types in the service domain to indicate that there is a missing opera-
tion ?? ? ?? in service portfolio to fulfill the requirement ? ? ?.
We believe that a virtual data type can be a powerful tool to better glue
together business data and service data, and further glue together busi-
ness requirement and service operations. In this paper, we concentrate
on the approach and algorithm for data-driven service composition.
Fig. 7. Generation rules for AWSP.
V. DATA-DRIVEN SERVICE COMPOSITION
Based on the data relations and composition rules, we are now ready
to solve the problem formulated in Section III-B. That is, if a business
requirement is represented as ? ? ?, find a service composition from
service portfolio to realize it.
A. Preliminary Definitions
Some definitions are given as follows.
Definition2: [AcyclicWellStructuredProcess(AWSP)]AnAcyclic
Well Structured Process is defined as follows.
1) A transition with one single input place and one single output
place is an AWSP.
2) All Petri nets obtained by using transformation rules 1–3 in Fig. 7
are AWSPs.
Based on the composition rules in Section IV, we give the definition
of a Service Net and the method to derive it given a service portfolio.
Definition 3: [Service Net (SN)] A Service Net ?? with respect
to a service portfolio and data mediation is a colored Petri net
???????????, where
1) ? is a finite set of data types modeled as color sets;
2) ? is a finite set of places;
3) ? is a finite set of transitions. ? ? ??? ?? where ?? is the set
of operation transitions, and ?? is the set of mediation ones;
4) ? is a finite set of arcs;
5) ? is a color function defined from ? into ?. ? is injective, i.e.,
????? ? ????? ? ?? ? ???
An SN can be constructed in the following way.
1) Data relations and mediations are modeled with mediation
transitions.
2) Service operations are modeled with operation transitions.
3) Places attached with identical data type are merged into a single
one.
Note that??is data coherent since transitions represent data media-
tion or transformation. Any subnet of ?? is also data coherent. An SN
after any refinement process in Figs. 4–6 is still so.
Definition 4: [Conflict place] ?? ? ? in ?? ? ?????? ?????
is a set of conflict places if ?? ? ??, ???? ? ? and ??? ?? ??
Aservicenetisconflict-freeiffitdoesnotcontainanyconflictplaces,
i.e., ?? ?
.
Definition 5: [Connectivity between two nodes] In a Petri net
???????, given ????? ? ? ? ?, connectivity relation ???????? ?
true iff ????????????? ? ? ? ? such that ????????? ? ? for
? ? ? ? ? ? ?, and ? ?? ? ? ?? ?? ??for ? ? ??? ? ?.
.
B. Derive AWSP From Service Net
With the definitions given in Section V-A, the problem raised in
Section III-B can be interpreted more formally.
Authorized licensed use limited to: UNIV OF CHICAGO LIBRARY. Downloaded on July 01,2010 at 20:25:25 UTC from IEEE Xplore. Restrictions apply.
Page 5
690IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, VOL. 7, NO. 3, JULY 2010
Fig. 8. Illustration of the decomposition algorithm.
Definition 6: [Feasible solution] Given a service portfolio and ser-
vice composition requirement ? ? ?, ? is a feasible solution if:
1) ? takes ? as its only input and ? as its only output;
2) ? is data coherent w.r.t. the given service portfolio; and
3) ? is an AWSP, and is conflict-free.
Remarks:
Why are these requirements imposed on a feasible solution?
1) The solution should consume data ? and yield data ?, given the
requirement ? ? ?;
2) Data coherent: because we are addressing the service composi-
tion problem from the perspective of data, the composite process
should represent the data relations in a service portfolio;
3) Well-structuredness and conflict-freeness are favorable properties
of business processes. We also require the solution to be acyclic
because a cyclic structure represents iterative processing of the
same type of data. Therefore, for computational simplicity, we
generate acyclic solutions, but in an execution phase the process
can be cyclic.
We have the following problem formulation and steps to generate a
feasible solution.
Input: ? ? ?.
Output: An AWSP, data coherent ?, which is a sub graph of service
net ??, with ? as its input and ? as its output, and contains no conflict
place.
Step 1. Construct a service net ?? given a service portfolio and data
mediations in business/service domain, as given in Definition 3;
Step 2. Derive a Reduced Service Net ??from ??;
Step 3. Decompose ?? into subnets, each of which contains no
conflict place; and
Step 4. Check each of the decomposed nets derived from Step 3 to
decide whether it is a feasible solution.
These steps are further explained as follows.
Definition 7: [Reduced Service Net (RSN)] A reduced service net
?? ? ?????????? of service net ?? ? ??????? with respect to
inputdatatype? andoutputdatatype?,or??????????,isasubgraph
of ??,s.t., ?? ? ? ??, ? ? ?????ifin??,?????? ? ?????? ?
????.
Remark:when??isreducedto??,anyoperations,datamediations
and data types that are not on a path from data type ? to data type ? are
eliminated. We reduce an SN in order to remove the unrelated parts,
and the reduction process can be done by slightly modifying the graph
traverse algorithm.
The branches after each conflict place represent options from which
wecanchoosefordataprocessing.AsnippetofRSNisshowninFig.8.
Place??isaconflictplace.Hence,datatype?attachedto??canbepro-
cessed by operation ??or ??, or the XOR-join of operations ?????????.
An RSN must be decomposed into a set of subnets that do not con-
tain any conflict places. Simply speaking, each time a conflict place
is encountered, one branch is selected as the active one, and the other
branches are removed. As Fig. 8 illustrates, three subnets are generated
because ?? has three succeeding transitions (??? and ??? are grouped
and treated as one single branch).
When there are more than one conflict place in an RSN, the decom-
position is more complicated. If there are ? conflict places each with
? branches,possiblywehave??distinctivesubnets.Weuseselection
value to decide which branch to choose for each conflict place. One se-
lectionvaluecorrespondstoonesituationofdecomposition,andweuse
decompositionalgorithmtogetonesubnetforeachvaluation.Now, we
give function definitions used in a decomposition algorithm.
Definition 8: [Selection Value] Given a reduced service net
?? ? ??????? in which ?? ? ?????????????? ? ?, and
??
all transitions in ??
?
? ? ???????????????? ?, ?? ? ? ? ?? ????? is defined as the set of
????? ? ???? ??? ? ????????
????? is a finite set of ?-tuples. Each tuple ? in ????? is an or-
dered list of transitions, and each transition is an output transition of a
conflict place, that is
????? ? ????? ???? ???????? ???? ? ???????? ? ??????
Each ? ? ???? ???? ???????? ? ? ????? is a selection value (or
? value) w.r.t. conflict place set ??.
For ? ? ???? ???? ???????? ? ? ?????, we define:
?
???? ? ??? ?
Authorized licensed use limited to: UNIV OF CHICAGO LIBRARY. Downloaded on July 01,2010 at 20:25:25 UTC from IEEE Xplore. Restrictions apply.
Page 6
IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, VOL. 7, NO. 3, JULY 2010 691
For example, in Fig. 8, ?? ? ????, then
????? ?????????????????
????? ?????????????????????????
If we define ?? ? ?????, ?? ? ????? ? ?????, then
?
???? ? ????
?
???? ? ????
We also define the ? relation among transitions, ?? ? ?? iff ? ? ?,
or ?? and ?? belongs to the same group of a mediation transition. For
example, in Fig. 8, ??? ? ???. We use it later in our decomposition
algorithm such that mediation transitions are treated as one group.
Algorithm 1: [Decomposition Algorithm] The decomposition algo-
rithm is intuitively explained as follows. For each conflict place, it re-
moves all the unwanted branches according to a given selection value.
First, for each conflict place, the branches not selected are isolated (the
outmost ForEach procedure). Afterwards all the source places in the
net are examined; and they are deleted with their succeeding transi-
tions or marked as dead, till no new node can be removed/marked (the
outmost While procedure).
VI. EFFECTIVENESS AND EFFICIENCY ANALYSIS
A. Solution Effectiveness
Theorem 1: [Solution effectiveness] Given a service net ?? and a
requirement ? ? ?, if there is a feasible solution w.r.t requirement
? ? ?, the decomposition algorithm can find it.
Fig. 9. Methods to reduce computation complexity.
Proof: Suppose that there is a feasible solution ?. Then, ? must
be a subnet of ??, because ?? contains all the data relations in this
service portfolio. Our decomposition algorithm finds all ASWP and
conflict-freesubnetsof??byiteratingonallpossibleselectionvalues,
and we denote the derived subnets set as ?????. Because ? is also
ASWP and conflict-free, therefore, ? ? ????? and that is, once there
is a feasible solution, our decomposition algorithm can find it.
B. Complexity Analysis
Thecomplexityofeachrunofthedecompositionalgorithmequalsto
the complexity of traversing the reduced service net, i.e., ???? ??????
where ? and ? are the vertex and edge sets of the reduced service net,
respectively.
If RSN contains ? OR-split places, each with ? branches, we have
??selection values. In the worst case, from each value we run the
decomposition algorithm and obtain one distinctive subnet. Thus, we
can have ??subnets altogether. In the worst case, the computational
complexity is ????? ? ? ???? ? ???, i.e., ?????.
In practice m and n are usually not large. Moreover, it is observed
that some selection values may derive nonfeasible subnets, and some
different values derive identical subnets. By detecting these circum-
stances, many selection values can be simply ignored.
One circumstance is death path elimination, i.e., to detect whether
different selection values lead to the same decomposition.
As shownin Fig. 9(a), if ? ? ????????(? stands forarbitrary value),
whenweapplythedecompositionalgorithmonthenet,???isremoved.
We can conclude that once ??? selects ??, the selection value of ???,
i.e.,
ferent selection values will lead to the same decomposition result, and
by using this fact we do not have to run the decomposition algorithm
for each selection value.
The other circumstance is lack-of-synchronization detection, i.e., to
detect whether one valuation will derive nonfeasible subnets. When
we run the decomposition algorithm, if ? ?, ???? ? ?? (?? ?
is a dead source place) ? (?? ?
not contain any conflict place), then this subnet must be the one with
lack-of-synchronization. At this point, the algorithm can stop and we
conclude that no feasible solution will be derived from this selection
value. In Fig. 9(b), ????? ? ?, ???
?? ?
Therefore, lack-of-synchronization is detected and we can conclude
this ? value does not yield any feasible solution.
?????? does not make a difference on the result. So many dif-
??? ?
?? s.t. any path from ? to ? does
???and ??is a dead source place;
???, and all paths from ? to ??do not contain any conflict place.
Authorized licensed use limited to: UNIV OF CHICAGO LIBRARY. Downloaded on July 01,2010 at 20:25:25 UTC from IEEE Xplore. Restrictions apply.
Page 7
692IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, VOL. 7, NO. 3, JULY 2010
Fig. 10. The service portfolio with data relations
VII. AN EXAMPLE
Based on the proposed concepts and algorithms, we have developed
a prototype system called Data-driven Service Composition System
(DSCS). The implementation details of this system can be found from
our previously published paper [32].
We take the AOPS example mentioned in Section I to illustrate the
validity of the proposed approach. The service portfolio and data rela-
tions in AOPS are shown in Fig. 10. For simplicity, we omit the unre-
lated data/relations so that in the next step RSN equals SN. The opera-
tion and mediation transitions are explained as follows:
????, ????
Mediation transition, to classify order into two
subtypes, i.e., ADSL order (adsl_order) and
new-telephone-line order (nl_order).
??
Operation transition, to search a corresponding
worksheet according to an order. The worksheet
has to be already generated before the search can
return a meaningful result.
?????
Operation transition, to generate a worksheet based
on an ADSL/new-telephone-line order.
????
Mediation transition, to decompose worksheet
into two parts, i.e., line worksheet (line_ws) and
in-house worksheet (inhouse_ws).
????
Mediation transition, to compose line and in-house
worksheet confirmation (line_con/inhouse_con)
into worksheet confirmation (ws_con).
?????
Operation transition, to carry through line/in-house
construction work based on the given worksheet,
and return a corresponding confirmation form.
??
Operation transition, to search an in-house
worksheet according to its corresponding line one.
??
Operation transition, to generate a customer receipt
(cus_rec) based on a worksheet confirmation
(ws_con).
The requirement is ORDER?CUS_REC (given an ADSL business
order, do all the necessary operations and return a customer receipt).
As shown in Fig. 10, given this portfolio in which service opera-
tions are modeled as operation transitions and data relations modeled
with mediation transitions, an SN is easily obtained by merging the
places attached with identical data type into a single one. We use two
eclipsestogroupplaceslabeledwithorderandworksheet,respectively,
to demonstrate the merge of places. Fig. 11 illustrates the RSN (same
asSN,inthiscase)anddecomposednetsdisplayedinPetri-NetKernel.
The uppermost net is the RSN.
From top to bottom, the second to fourth nets in Fig. 11 illustrate
three subnets decomposed from RSN. They are solution candidates.
The second net corresponds to the ? value (????, ??) or (????, ??).
The third net corresponds to ? value ???????. They are both feasible
service composition candidates. The fourth net corresponds to the ?
value ??????.In the fourth net, lack-of-synchronization is encountered,
and therefore it is not a feasible solution. Thus we obtain two feasible
ones based on the proposed data-driven approach.
In the mean time, we find that the second net is a satisfactory so-
lution. The result for service composition is made up of three steps,
i.e., Apply, Construct and Offering. In step Apply, AOPS receives cus-
tomer’s ADSL order and generates a worksheet according to the type
of business; in step Construct, AOPS undertakes required construction
work according to the worksheets’ content and generates confirmation
forms; and in step Offering, it delivers a receipt to the customer.
Later on, if we manually check the third net, we find that it does not
fulfill the requirement since operation ?? does a search job instead of
a worksheet generation job. Therefore, it is not a satisfactory solution
although it is a feasible one from the perspective of data flow.
Through this example we can see that data-driven approach is well
suited for service composition as long as the business/service data and
their relations are available.
VIII. DISCUSSION
In the proposed data-driven approach, we use a subnet decompo-
sition technique to generate all conflict-free solutions. Note that our
definition of conflict-freeness (Definition 4) allows choices over medi-
ation transitions such that a generic data type can be classified into all
itschild types. We believe that the decomposition-based approach is an
efficient way to find feasible solutions. If a desired solution is required
to have conflicts, users can easily change the definition of selection
value (see Definition 8) from one to multiple branches for each conflict
place. By this means, more subnets are obtained and can contain cyclic
nets if choices are allowed.
Although our algorithm can be easily adapted to this scenario that
allows choice places, when we introduce our approach we still adopt
the conflict-free option because of:
1) Less computation complexity. Allowing arbitrary combination of
choicesamongbrancheswillincreasethecomputationcomplexity
from ????? to ????????, i.e., ??????;
2) Compactness and intuitiveness to users. When each choice place
selectsmultiplebranches, many meaninglesssolutions will result.
For example, in the AOPS example in Section VII, if we allow
choice places, then the RSN (see the upmost net in Fig. 11) itself
is a candidate solution but obviously this net is an undesired one.
Although the candidate solutions generated by the conflict-freeness
constraint do not contain loop and choice (again, it may contain choice
Authorized licensed use limited to: UNIV OF CHICAGO LIBRARY. Downloaded on July 01,2010 at 20:25:25 UTC from IEEE Xplore. Restrictions apply.
Page 8
IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, VOL. 7, NO. 3, JULY 2010 693
Fig. 11. The reduced service net and decomposition results of AOPS (in Petri-Net Kernel).
over sub types of data), they offer the “backbones” that can be further
refined(e.g.,byaddingchoicebranchesorloop)byusers.Thisassump-
tion is realistic since: 1) the choice branches occur in different candi-
date solutions we give and it is easy to combine them; 2) more inputs
from process designers are needed to decide, which branches to select
andwhentostartandterminatealoop;and3)inourpracticeofbusiness
process engineering, every solution generated by automatic algorithms
must be examined and refined before it is put into real execution.
Therefore, our solution approach can be extended to the scenario
that allows choices and loops. However, in this paper, we focus on a
conflict-free approach to quickly identify the relevant part inside the
service portfolio and generate solution backbones. These backbones
can be combined and merged to form needed solutions that can contain
choices and loops when required.
IX. CONCLUSION
It is necessary to have a way that enhances the reusability of service
portfolio by generating composition guidance when fulfilling a busi-
ness requirement. This research can be seen as an important step to-
wardstheefforttobridgethegapbetweenbusinessandservicedomains
in building enterprise SOA solutions. We utilize data relations in both
domains, and add data mediation constructs to make the data model
in these domains complete and coherent. We devise three composition
rules, i.e., sequential, parallel and choice, based on the augmented data
model. Based on the data relations and composition rules we propose a
formal method to derive all the possible composition candidates given
a service portfolio. First, we obtain a connected service net from the
service portfolio; then we reduce it with respect to the given require-
ment (i.e., the input/output signature); next we decompose the reduced
one into subnets, each of which represents a composition candidate. A
prototype system is developed and an example is given to validate our
methodology.
The contributions of this paper are summarized as follows.
1) Alightweightapproachmakingthebestuseoftheexistingservice
portfolioinenterpriseSOAsolutionsispresented.Itdoesnotneed
additional semantic information. What we need is data type and
data relation definition in business/service domain. Such informa-
tion can be obtained by parsing WSDL files, XML schemas, and
the UML class definitions in a business domain. Minor effort is
needed to set up the cross-domain data relations, and add neces-
sary data mediations.
2) No existing work tackles the problem of service composition
using Petri-net decomposition. This idea can be seen as a com-
bination of the bottom-up and top-down approaches in service
composition domain. That is, the generation of a service net is a
bottom-up way to give a compact representation of the service
portfolio. The decomposition of a service net is a top-down
way to derive solution candidates with a desired structure. The
introduction of service nets has two advantages: a) a service net
regarding a service portfolio can be reused for multiple service
composition requests and b) when new services are added or
Authorized licensed use limited to: UNIV OF CHICAGO LIBRARY. Downloaded on July 01,2010 at 20:25:25 UTC from IEEE Xplore. Restrictions apply.
Page 9
694IEEE TRANSACTIONS ON AUTOMATION SCIENCE AND ENGINEERING, VOL. 7, NO. 3, JULY 2010
services retire, it can be modified incrementally and does not
need to be built from the scratch.
3) Our approach does not preclude the integration with other ap-
proaches, e.g., semantic and rule-based ones. The solution ob-
tained by our approach provides hints to find a satisfactory one.
Even when no feasible one is derived, in the decomposed nets we
can find fragments that may be relevant to a final solution.
Future work includes building a more comprehensive data model
to derive better solutions, and validating our approach via service li-
braries such as ITIL (Information Technology Infrastructure Library)
and SCOR (Supply-Chain Operations Reference-model), or artificially
generatedlarge-scaleservicenetworks[12].Ourworkdoesnotaddress
how the generated Petri nets are to be executed in a workflow engine.
One feasible solution is to transform the resultant Petri nets into BPEL
processes such that they can be executed in a compliant engine. Well
established methods, for example, the one proposed in [17] and [33]
can be used to serve this purpose. We will also seek the applications
of the proposed method to other web services in transportation, e-com-
merce, workflow, and manufacturing [36]–[41].
ACKNOWLEDGMENT
The first author thanks F. Rao, R. Fang, and L. Wang, all from IBM
ChinaResearchLaboratory,fortheconstructivediscussionswiththem.
REFERENCES
[1] M. N. Huhns and M. P. Singh, “Service-oriented computing: Key con-
cepts and principles,” IEEE Internet Comput., vol. 9, pp. 75–81, Jan.
–Feb. 2005.
[2] O. Zimmermann, V. Doubrovski, J. Grundler, and K. Hogg, “Service-
oriented architecture and business process choreography in an order
management scenario: Rationale, concepts, lessons learned,” in Proc.
Conf. Object Oriented Program. Syst. Languages Appl., San Diego,
CA, 2005, pp. 301–312.
[3] J. Ricken, “Top-down modeling methodology for model-driven SOA
construction,” in Proc. Move to Meaningful Internet Systems 2007:
OTM 2007 Workshops, Vilamoura, Portugal, 2007, pp. 323–332.
[4] S. McIlraith and T. Son, “Adapting golog for composition of semantic
web services,” in Proc. 8th Int. Conf. Principles and Knowledge
Representation and Reasoning (KR-02), Toulouse, France, 2002, pp.
482–493.
[5] D. McDermott, “Estimated-Regression planning for interactions with
web services,” in Proc. AI Planning Syst. Conf. (AIPS’02), Toulouse,
France, 2002, pp. 204–211.
[6] E. Sirin, B. Parsia, D. Wu, J. Hendler, and D. Nau, “HTN planning for
web service composition using SHOP2,” J. Web Semantics, vol. 1, pp.
377–396, 2004.
[7] J.CardosoandA.Sheth,“Semantice-workflowcomposition,”J.Intell.
Inf. Syst., vol. 21, pp. 191–225, Nov. 2003.
[8] E. Sirin, J. Hendler, and B. Parsia, “Semi-automatic composition of
web services using semantic descriptions,” in Proc. 1st Workshop Web
Services: Modeling, Architecture and Infrastructure, Angers, France,
2003, pp. 17–24.
[9] S. Narayanan and S. A. McIlraith, “Simulation, verification and auto-
matedcompositionofwebservices,”inProc.11thInt.WorldWideWeb
Conf., Honolulu, HI, 2002, pp. 77–88.
[10] S. R. Ponnekanti and A. Fox, “SWORD: A developer toolkit for web
service composition,” in Proc. 11th Int. World Wide Web Conf. (Alter-
nate Paper Tracks), Honolulu, HI, 2002, pp. 83–107.
[11] A. B. Williams, A. Padmanabhan, and M. B. Blake, “Experimentation
with local consensus ontologies with implications for automated
service composition,” IEEE Trans. Knowl. Data Eng., vol. 17, pp.
969–981, 2005.
[12] S.-C. Oh, D. Lee, and S. R. T. Kumara, “Effective web service com-
position in diverse and large-scale service networks,” IEEE Trans. Ser-
vices Comput., vol. 1, pp. 15–32, 2008.
[13] S. Kona, A. Bansal, M. B. Blake, and G. Gupta, “Generalized seman-
tics-basedservicecomposition,”inProc.IEEEInt.Conf.WebServices,
Beijing, China, 2008, pp. 219–227.
[14] F. Lecue and A. Delteil, “Making the difference in semantic web ser-
vice composition,” in Proc. 22nd AAAI Conf. Arti. Intell., 2007, pp.
1383–1388.
[15] D. Ardagna and B. Pernici, “Dynamic web service composition with
QoS constraints,” Int. J. Business Process Integr. Manage., vol. 1, pp.
233–243, 2006.
[16] G. Canfora, M. D. Penta, R. Esposito, and M. L. Villani, “An approach
for QoS-aware service composition based on genetic algorithms,”
in Proc. Conf. Genetic Evol. Comput., Washington, DC, 2005, pp.
1069–1075.
[17] P. Xiong, Y. Fan, and M. Zhou, “QoS-aware web service configura-
tion,” IEEE Trans. Syst., Man, Cybern.: Part A, vol. 38, pp. 888–895,
Jul. 2008.
[18] P.Xiong, Y. Fan,and M. Zhou,“Web service configurationundermul-
tiple quality-of-service attributes,” IEEE Trans. Autom. Sci. Eng., vol.
6, pp. 311–321, Apr. 2009.
[19] L. Zeng, B. Benatallah, A. H. H. Ngu, M. A. D. M. Dumas, J. A. K. J.
Kalagnanam, and H. A. C. H. Chang, “QoS-aware middleware for web
services composition,” IEEE Trans. Softw. Eng., vol. 30, pp. 311–327,
2004.
[20] D. Berardi, D. Calvanese, G. De Giacomo, M. Lenzerini, and M. Me-
cella,“Automaticcompositionofe-servicesthat exporttheirbehavior,”
inProc.1stInt.Conf.ServiceOrientedComput.(ICSOC),Trento,Italy,
2003, pp. 43–58.
[21] Z. Dang, O. H. Ibarra, and J. W. Su, “On composition and lookahead
delegation of e-services modeled by automata,” Theor. Comput. Sci.,
vol. 341, pp. 344–363, Sep. 2005.
[22] E. Gerede, R. Hull, O. H. Ibarra, and J. Su, “Automated composition
of e-services: Lookaheads,” in Proc. 2nd Int. Conf. Service Oriented
Comput., New York, 2004, pp. 252–262.
[23] J. Rao and X. Su, “A survey of automated web service composition
methods,” in Proc. 1st Int. Workshop on Semantic Web Services and
Web Process Composition, San Diego, CA, 2004, pp. 43–54.
[24] OWL-S: Semantic Markup for Web Services, W3C, 2004. [Online].
Available: http://www.w3.org/Submission/OWL-S/
[25] IBM WebSphere Business Modeler, 2007. [Online]. Available: http://
www-306.ibm.com/software/integration/wbimodeler/
[26] IBM Websphere Integration Developer, 2007. [Online]. Available:
http://www-306.ibm.com/software/integration/wid/
[27] N. Milanovic and M. Malek, “Current solutions for web service com-
position,” IEEE Internet Comput., vol. 8, pp. 51–59, 2004.
[28] Web Services Description Language (WSDL), W3C, 2001. [Online].
Available: http://www.w3.org/TR/wsdl
[29] K. Jensen, ColouredPetri Nets: Basic Concepts, Analysis Methodsand
Practical Use.Berlin, Germany: Springer-Verlag, 1995, vol. 2.
[30] G. Rozenberg, Handbook of Graph Grammars and Computing by
Graph Transformation., Singapore: World Scientific, 1997.
[31] W. M. P. Van der Aalst, “The application of Petri nets to workflow
management,” J. Circuits Syst. Comput., vol. 8, pp. 21–66, 1998.
[32] W.Tan,Z.Tian,F.Rao,L.Wang,andR.Fang,“Processguidedservice
composition in building SOA solutions: A data driven approach,” in
Proc. 2006 IEEE Int. Conf. Web Services, 2006, pp. 558–568.
[33] S. Hinz, K. Schmidt, and C. Stahl, “Transforming BPEL to Petri
nets,” in Proc. 3rd Int. Conf. Business Process Manage., 2005, pp.
220–235.
[34] W. Tan, Y. Fan, and M. Zhou, “A Petri net-based method for com-
patibility analysis and composition of web services in business process
executionlanguage,” IEEE Trans. Autom. Sci.Eng., vol. 6, pp. 94–106,
2009.
[35] B. Hruz and M. C. Zhou, Modeling and Control of Discrete Event Dy-
namic Systems. New York: Springer, 2007.
[36] Y. Fang, C. J. Jiang, and Z. H. Zhang, “A mobile navigation service
platform based on traffic information grid,” Int. J. Services Oper. Inf.,
vol. 1, pp. 23–37, 2006.
[37] Y. Y. Du, C. J. Jiang, and M. C. Zhou, “A Petri nets based correctness
analysis of internet stock trading systems,” IEEE Trans. Syst., Man,
Cybern.–Part C, vol. 38, no. 1, pp. 93–99, 2008.
[38] Z. J. Ding, J. L. Wang, and C. J. Jiang, “An approach for synthesis
Petri nets for modeling and verifying composite web service,” J. Inf.
Sci. Eng., vol. 24, no. 5, pp. 1309–1328, 2008.
[39] L. Cao, L. Dai, and M. C. Zhou, “Metasynthesis: M-space, M-in-
teraction and M-computing for open complex giant systems,” IEEE
Trans. Syst., Man, Cybern.–Part A, vol. 39, no. 5, pp. 1007–1021,
Sep. 2009.
[40] Z. Li, H. Hu, and A. Wang, “Design of liveness-enforcing supervisors
forflexiblemanufacturingsystemsusingPetrinets,”IEEETrans. Syst.,
Man, Cybern.–Part C, vol. 37, no. 4, pp. 517–526, 2007.
[41] N. Wu, M. C. Zhou, and Z. Li, “Resource-oriented Petri net for dead-
lock avoidance in flexible assembly systems,” IEEE Trans. Syst., Man,
Cybern.–Part A, vol. 38, 1, pp. 56–69, Jan. 2008.
Authorized licensed use limited to: UNIV OF CHICAGO LIBRARY. Downloaded on July 01,2010 at 20:25:25 UTC from IEEE Xplore. Restrictions apply.
View other sources
Hide other sources
-
Available from Mengchu Zhou · 26 Oct 2012
-
Available from simflow.net