Journal of Software Engineering and Applications, 2012, 5, 711-721
http://dx.doi.org/10.4236/jsea.2012.59084 Published Online September 2012 (http://www.SciRP.org/journal/jsea)
711
Towards an UML Profile for Web Service Composition
Based on Behavioral Descriptions
Ayoub Sabraoui1, Ahmed Ettalbi1, Mohammed El Koutbi1, Abdeslam En-Nouaary2
1Mobile Intelligent Systems Team (MIS), Ecole Nationale Supérieure d’Informatique et d’Nalyse des Systèmes (ENSIAS), Rabat,
Morocco; 2Electrical and Computer Engineering Department, Concordia University, Montreal, Canada.
Email: a.sabraoui@uca.ma, {ettalbi,elkoutbi}@ensias.ma, ennouaar@ece.concordia.ca
Received July 8th, 2012; revised August 11th, 2012; accepted August 23rd, 2012
ABSTRACT
Web service composition is one of the challenging issues that have been investigated over the past decade. It consists of
combining and reusing existing Web services to best suit new user requirements. This paper proposes an UML profile
to compose Web services based on their behavioral aspects. To do so, the web service WSDL files are first transformed
to UML models; then the profile is used to integrate them; finally the MDA approach is adopted to transform the ap-
plied profile into a BPEL process. As such, our method has the advantages of being independent of the Web service
composition language and the UML modeling tool. Finally, a case study is developed in order to show the benefits of
our method.
Keywords: Web Service Composition; UML Profile; MDA; BPEL
1. Introduction
Nowadays, distributed applications are increasingly be-
ing developed in the context of Service Oriented Archi-
tecture (SOA), where the basic unit of computation is
called a service. The Web service technology remains the
standard means for building enterprise applications be-
cause it provides mechanisms that facilitates the interop-
erability between different software applications, and
their executions regardless of the underlying platforms
and/or frameworks [1]. According to W3C [2], a Web
service is defined as a software system designed to sup-
port interoperable machine-to-machine interaction over a
network. The technology basically articulates around the
following three components:
Simple Object Access Protocol (SOAP) provides the
definition of an XML document, which can be used
for exchanging structured and typed information be-
tween service peers in a decentralized distributed en-
vironment [3].
Web Services Description Language (WSDL) is an
XML format for describing network services as a set
of endpoints operating on messages containing either
document-oriented or procedure-oriented information.
The operations and messages are described abstractly,
and then bound to concrete network protocols and
message formats to define an endpoint [4].
Universal Description, Discovery and Integration
(UDDI) focuses on the definition of a set of services
supporting the description and discovery of the Web
services available for clients, and the technical inter-
faces, which may be used to access those services [5].
As such, the Web service technology proposes a high
level of abstraction, which replaces the current models of
applications by a more modular and flexible architecture,
thus allowing their composition and their integration. All
these features help the enterprises overcome the difficul-
ties related to the cost and flexibility of the offered solu-
tions for the electronic exchange of information. More-
over, Web services have functional, non-functional, be-
havioural, and semantic characteristics. The functionality
of Web services is described using interfaces with input
and output parameters. The quality of services like per-
formance is described by the non-functional specification
usually given as cost, response time, availability, security,
reliability, and reputation. The behaviour states, how to
interact with the Web services, in terms of sequences of
input/output interactions, for instance. Web service se-
mantics describe the meaning of the services generally
through the usage of ontology. The description of Web
services exposes the main aspects that enable them to be
published, found, and used by other Web services. They
are also the key elements in composing the Web services
into new ones [6].
The composition of Web services (WSC for short) is
one of the key features advanced by the technology. It
consists of combining existing services to provide a
Copyright © 2012 SciRes. JSEA
Towards an UML Profile for Web Service Composition Based on Behavioral Descriptions
712
richer new composite service to meet some user require-
ments. Such composition requires methods and lan-
guages for basic Web services integration, such as: XML,
XLANG, BPML, WSFL, WSCL, WSCI, BPEL4WS and
WS-CDL. The composition techniques can be classified
into two categories, namely: static service composition and
dynamic service composition. Static composition allows
the requestor to create an abstract model that should be
respected during the execution of the composed Web
service. While the dynamic composition enables select-
ing the atomic Web services automatically and combines
them to create an unlimited number of new Web ser-
vices.
Another way to classify WSC is with regard to the de-
gree of automation (manual, semi-automatic and auto-
matic). Manual composition is completely performed by
a human, semi-automatic composition is carried out with
human assistance, and automatic composition takes place
without any human involvement [6].
There is yet a third classification, which is based on
how the composition is specified, either by orchestration
or by choreography [7]. Orchestration consists of com-
bining available services by adding a central coordinator
(the orchestrator) that is responsible for invoking and
combining the single sub-activities, as illustrated in Fig-
ure 1.
Choreography, however, defines complex tasks via the
definition of the conversation that should be undertaken
by each participant, as shown in Figure 2.
This paper proposes a new method for composing
Web services by defining a “WSComposition profile”
which is an extension of the UML2.2 sequence diagrams
metamodel. The proposed method applies the MDA [8]
to generate the code of the composite Web service in
Business Process Execution Language (BPEL) [9].
Therefore, this profile allows us to represent the behav-
ioral characteristics of Web services, and provides an
easy way to design and compose Web services based on
their behavioral aspect. Basically, our approach consists
of three main steps. In the first step, existing simple Web
services are discovered and located in the Web services
registry. The developer imports the WSDL files of the
Web service 1Web service 2
Coordinate web service
Figure 1. Web services orchestration.
Web service 3Web service 2
Web service 3
Figure 2. Web services choreography.
candidate services and translates them into UML dia-
grams (class diagram and use case diagram). In the sec-
ond step, the modeling of the composite Web services is
allowed by our WSComposition profile. In the third step,
the MDA approach is adopted to automatically transform
the applied profile into a BPEL process. The MDA
transformation rules are expressed in Atlas Transforma-
tion Language (ATL) [10].
Among the composition languages, we chose BPEL
(or BPEL4WS) because it is an XML-based language
and describes the business process interactions based on
Web services, within and between enterprises. A BPEL
process specifies the exact order in which participating
Web services should be invoked. This can be done se-
quentially or in parallel. With BPEL, we can express
conditional behavior; for example, a Web service invoca-
tion can depend on the value of a previous invocation.
We can also construct loops, declare variables, copy and
assign values, define fault handlers, and so on. By com-
bining all these constructs, we can define complex busi-
ness processes in an algorithmic manner [11].
Compared to existing WSC approaches, our method
has the advantages of being independent of both the
WSC language and the UML modeling tool; the user can
implement our WSComposition profile in any UML de-
sign tool, choose any language of composition and any
execution engine to compose services.
Our method offers also a semi-automatic way to com-
pose Web services by assisting the user in the design
stage. It allows the user to maintain some control over
the process with no need for programming knowledge. In
other words, the user can define the modeling and design
process in a graphical way through the WSComposition
profile in order to compose Web services.
The remainder of this paper is structured as follows:
Section 2 gives an overview of the fundamental aspects
on which our proposal is based. Section 3 describes the
WSComposition profile. Sections 4 and 5 present the key
ideas of our approach for WSC. Section 6 gives a case
study for the application of our method. Section 7 is de-
voted to related work. Finally, Section 8 concludes the
paper and presents future work.
2. Our UML Profile for Web Services
Composition
Our aim of designing an UML profile for WSC, is to
provide a standard means for expressing the semantics of
WSC using UML2.2 notation and thus to support ex-
pressing these semantics with UML tools. In addition,
the profile allows a mechanism to model a WSC inde-
pendently of the underlying platforms. Basically, our
UML profile relies on two main levels of abstraction: At
the higher level we have the metamodel of UML2.2 se-
Copyright © 2012 SciRes. JSEA
Towards an UML Profile for Web Service Composition Based on Behavioral Descriptions
Copyright © 2012 SciRes. JSEA
713
by two stereotypes: “Actor” and “WebService”. The lat-
ter stereotype is specialized by the “CordinateWS” one,
which represents the business process.
quence diagrams that defines the basic entities of the
model, whereas at the second level, we have the WS-
Composition UML profile which adapts the previous
metamodel for WSC. On the other hand and in order to manage the mes-
sages exchanged between client and services or those
invoked from other services, we extend the Message
class in three stereotypes: Receive, Reply and Invoke.
2.1. The Metamodel of UML2.2 Sequence
Diagrams
“Receive” element allows business process to wait for
a matching message to arrive. This stereotype has a filled
arrow head.
Here, we present the sequence diagrams metamodel
which constitutes a type of the interaction package of
UML2.2 metamodel. To define our profile we use the
Lifeline, Message and Combined Fragment classes as
defined in OMG UML2.2 [12]: A lifeline is a Named
Element that represents an individual participant in the
Interaction. While Parts and Structural Features may
have multiplicity greater than 1, Lifelines represent only
one interacting entity. Message, however, is a Named
Element that defines one specific kind of communication
between lifelines of an interaction. The message specifies
not only the kind of communication, but also the sender
and the receiver. Sender and receiver are normally two
occurrence specifications (points at the ends of mes-
sages). Finally, combined fragment is an interaction
fragment which defines a combination (expression) of
interaction fragments. A combined fragment is defined
by an interaction operator and corresponding interaction
operands. Through the use of combined fragments the
user will be able to describe a number of traces in a
compact and concise manner.
“Reply” element allows the business process to send a
message in reply to a message that was received by “re-
ceive” stereotype. It has a dashed line with open arrow
head.
“Invoke” element allows the business process to in-
voke a one-way or request-response operation on a port-
type offered by a partner. In the request-response case,
the invoke activity completes when the response is re-
ceived. This stereotype has an open arrow head.
Finally and for managing the workflow of the business
process, we extend the Combined Fragment class in the
“Control Flow” stereotype, which contains an enumera-
tion designating the different kinds of control flow ele-
ments, like sequential, parallel, alternative and iterative
activities.
Beside the aforementioned steretypes, our UML pro-
file uses the enumerated type Activity Element Kind de-
fines a set of available activity types. They are presented
as follows:
2.2. WSComposition UML Profile Sequential activity: defines a list of activities to be per-
formed sequentially in lexical order.
This section presents the WSComposition UML Profile
which is a group of extensions of UML2.2 sequence dia-
grams metamodel. We present some elements that we
extend and specialize to define our Profile, as shown in
Figure 3. On the one hand, we extend the Lifeline class
Parallel activity: specifies one or more activities to be
performed concurrently.
Alternative activity: is used to select one activity for
execution from a set of choices.
1..*
{required}
« stereotype »
WebService
« stereotype »
Coordinat eWS
« stereotype »
Actor
+ interaction 1
+ lifeline *
CombinedFragment
ActivityElement :ActivityElementKind
Sequential
Parallel
Alternative
Iterati ve
<<enumeration>>
ActivityElementKind
Interaction
InteractionOperand
Condition
0..1
« stereotype »
Reply
« stereotype »
Receive
« stereotype »
Invoke
0..1
*
0..1
*
1
*
« stereotype »
ControlFlow
Message
Lifeline
<<profile>>
WSComposition profile
Figure 3. Excerpt of the WSComposition UML profile.
Towards an UML Profile for Web Service Composition Based on Behavioral Descriptions
714
Iterative activity: is used to define that the child activ-
ity is executed while the condition evaluates to true.
3. Our New Method for WSC
This section presents the key ideas of our method to
compose Web services. In our approach, interactions
with a services are modeled as scenarios, thus the com-
position of web services is none other than the composi-
tion of those scenarios. Knowing that the scenario de-
scribes the behavior of a system, our approach is based
on the behavioral characteristics of web services to
compose them. For this reason, we propose two graphical
ways:
3.1. Composing Scenarios Using Operators
In [13], we defined four operators, namely: the sequential,
the alternative, the iterative and the concurrent operators.
The idea consists of composing scenarios that models
partial behaviors using these operators, in order to obtain
one scenario that represents a global behavior of the sys-
tem. Figure 4 shows the graphical application that we
developed to compose scenarios [13].
In this example, we compose three scenarios S1, S2
and S3 as following:
par{S1;or{S2;S3;Price>1000}}
This means S2 and S3 are composed alternatively and
the result is executed concurrently with S1.
3.2. Composing Scenarios Using the
WSComposition UML Profile
Our WSComposition profile Figure 3 extends the UML
2.2 sequence diagrams metamodel and customizes it for
specific requirement of web services composition.
WSComposition profile presents a multiple operators to
model the order of execution of scenarios (interactions
with services). This is the method adopted in this paper
and which we explain in more details in the next sections.
Figure 4. Graphical interface for scenarios composition.
The resulting composite scenario from the application
of each of the two ways represents the composite Web
service which satisfies the client needs.
The interaction between the user and any requested
service can be clearly represented by sequence diagrams
(scenarios) in UML. Consequently, the services compo-
sition amounts composing these scenarios to meet the
client needs. Thus, the idea is to model the WSC by
WSComposition profile which is an extension of the
UML2.2 sequence diagram metamodel and to adopt the
MDA approach to automate the generation of BPEL
process execution code corresponding to the resulting
composite Web service. Our method is independent of
the WSC language and the UML modeling tool. Thus,
the user can choose the UML design tool, the language of
composition and the execution engine to make his/her
composition. In the current version, our method supports
the BPEL language and the EclipseUML tool for UML
design. Figure 5 presents the various steps of our com-
position method.
1) Searching for candidate Web services: the Web
services are searched and located in the Web service reg-
istry. The developer imports the service description rep-
resented in WSDL and translates it into UML diagrams:
classes diagram, use case diagram and sequence dia-
grams.
2) Composition of Web services: in this step the de-
signer use the WSComposition profile to manage the
workflow of the business process. The interaction be-
tween these services and their execution order are mod-
eled by the interaction operators defined in this profile.
3) Adopting the resulting scenario to the WSCompo-
sition UML Profile: the resulting scenario created in the
previous step is in XMI format. This file does not comply
with the WSComposition profile that we will use in the
next step to transform models (WSComposition2BPEL)
according to MDA approach.
Therefore, the purpose of this step is to transform this
XMI file to another one according to our profile. The
advantage of this first transformation is to allow the use
Presentation
of services in
UML
WSDL of composite
web service
Discover web
services
WSDL
Web services composition
Composition
operators
Or
BPEL
processus
Transformation
tool
Adaptation of the
resulting scenario
WSComposition
Profile
Figure 5. Steps of our WSC method.
Copyright © 2012 SciRes. JSEA
Towards an UML Profile for Web Service Composition Based on Behavioral Descriptions 715
of other UML modeling tools than EclipseUML; and
than make the application independent of the used tool.
This transformation is done by the JDOM API [14].
4) Transforming the applied profile into a BPEL
process: in this stage, we adopt the MDA approach to
transform the applied profile into a BPEL process repre-
senting the composite Web service. This transformation
requires the source metamodel (WSComposition profile)
and the target metamodel (BPEL metamodel), the ap-
plied profile, and the transformation rules which can be
expressed by one of the following transformation lan-
guages: OCL [15], YATL [16,17], ATL [10], etc. In our
approach, we choose the ATL language because it is easy
to use, close to the standards and there is a rich set of
tools that have been built for ATL development under
Eclipse.
4. Model Transformation
Mapping specification and defining transformations in
MDA is not an easy task. Authors in [18], proposed a
taxonomy of model transformation, based on the discus-
sions of a working group on model transformation of the
Dagstuhl seminar on Language Engineering for Model-
Driven Software Development. This taxonomy can be
used, among others, to help developers in deciding which
model transformation language or tool is best suited to
carry out a particular model transformation activity.
In this section, we present our proposition for the
specified transformation in the context of MDA. Ac-
cording to this approach, the source and target metamod-
els are based on a common metamodel MOF or EMF
Ecore [19]. The source metamodel is the WSComposi-
tion profile, and the target one is the BPEL metamodel.
This mapping is implemented as a tool on EclipseUML
IDE and the rules of transformation are defined using the
ATL language.
In order to enhance automatic mapping, we define the
rules for transforming the WSComposition profile into
BPEL process as follow:
Rule1 (process and partners): the CordinateWS ele-
ment constitutes the process element in BPEL process.
Actor and WebService elements are mapped to partner-
Links elements which present the different parties that
interact with the business process.
WSComposition
Profile Element
BPEL Process
Element Transformation
“CordinateWS” <process>
<process name="..."
targetNamespace="..."xmlns="..."
...
</process>
“Actor” and
“WebService” <partnerlinks>
<partnerLinks>
<partnerLink name=""
partnerLinkType=""
partnerRole=".."myRole=".."/>
</partnerLinks>
Rule 2 (variable): Variable element defines the data
used by the exchanged message. It is mapped into vari-
able element of BPEL process.
WSComposition
Profile Element
BPEL Process
Element Transformation
“Variable”
<variables>
<variable/>
...
</variables>
<variables>
<variable name="..."
element="..." </variable>
</variables>
Rule 3 (exchanged messages): messages exchanged
between client and services or those invoked from other
services are mapped into receive, reply, or invoke ele-
ments of BPEL process.
WSComposition
Profile Element
BPEL
Process
Element
Transformation
“Receive” <receive>
<receive partnerLink="…"
portType="QName" operation="…"
variable="…" …
</receive>
“Reply” <reply>
<reply …
</reply>
“Invoke” <invoke>
<invoke …
</invoke>
In addition to these basis elements, we have defined
another five rules to transform the control flow into
BPEL elements. The details of these rules are given in
the following:
Rule 4 (sequential activity): Sequential activity de-
fines a list of activities to be performed sequentially in
lexical order, this element is mapped into sequence ele-
ment of BPEL process.
WSComposition
Profile Element
BPEL Process
Element Transformation
“Sequential” <sequence>
<sequence>
<activity1/>
<activity2/>
</sequence>
Rule 5 (parallel activity): Parallel activity is used to
specify one or more activities to be performed concur-
rently, this element is mapped into flow element of
BPEL process.
WSComposition
Profile Element
BPEL Process
Element Transformation
“Parallel” <flow>
<flow>
<activity1/>
<activity2/>
</flow>
Copyright © 2012 SciRes. JSEA
Towards an UML Profile for Web Service Composition Based on Behavioral Descriptions
716
Rule 6 (alternative activity): Alternative activity is
used to select one activity for execution from a set of
choices. This element is mapped into if element of BPEL
process.
WSComposition
Profile Element
BPEL Process
Element Transformation
“Alternative” <if>
<if condition="…">
activity
<elseif condition="…">
activity
</while>
Rule 7 (iterative activity): Iterative activity is used to
define that the child activity is executed while the condi-
tion evaluates to true. The Iterative element is mapped
into while element of BPEL process.
WSComposition
Profile Element
BPEL Process
Element Transformation
“Iterative” <while>
<while condition="…">
activity
</while>
These transformation rules permit the mapping be-
tween two metamodels, which are the WSComposition
profile and the BPEL metamodel. The code in ATL is
generated based on this model transformation can help
the designer to specify how the metamodels are in-
ter-related. This model transformation can also help us to
define a bidirectional mapping, which will be investi-
gated in more details in future papers.
5. Case Study
In this section, we are going to illustrate the application
of our method through a case study. Suppose that a travel
agency proposes to its customers organized trips adapted
to their needs by composing appropriate existing Web
services. The proposed tours contain the transport, the
hosting and the car rent. When the customer decides to
reserve for a tour, he/she can make several choices to get
one of them. To this end, the customer gets access to the
web site of the travel agency which proposes tickets of
plan and train, the rental of cars and the hotel reservation.
Figure 6 presents the business process behavior, which
gathers the various tasks to be achieved by the composi-
tion.
Each reservation is related to a Web service. Services
run in this order with respect to the following conditions:
Flight reservation (WS1), if not train reservation
(WS2).
Hotel reservation (WS3).
Or
Flight reservationTrain reservation
Hotel reservation
Car rent
Figure 6. Business process of the tourist tour reservation.
Car rent (WS4).
1) The first step of our approach: It consists of the
manual selection of the candidate Web services involved
in this composition. These services are represented as
UML diagrams (class diagram, use case diagram and
sequence diagrams) based on their WSDL files. This
allows the requirements capture [20] and the description
of the different interactions.
Figure 7 shows these Web services in terms of class
diagrams. Each diagram represents the Web service with
the operation signature invoked in our example:
The use case diagram in Figure 8 describes the inter-
actions between the user and the various services.
The client expresses his choices through the agency
travel system. Then, the agency system sends them to the
airline company, railways company, car rent company
and hotel reservation systems. Then, it receives the dif-
ferent responses from its partners and sends them back to
the user. Afterwards, the user makes his choice and com-
pletes his reservation.
From the use case diagram above, we can instantiate
some scenarios that are useful for our study. The se-
quence diagram in Figure 9 illustrates the different in-
teractions to book airline ticket.
These interactions remain valid for the other bookings.
For the sake of simplicity, we suppose that the reserva-
tion is made as shown in Figure 10.
2) The second step of our approach: The sequence
diagrams from the previous step give us an overview to
compose them using WSComposition profile, in order to
obtain a single diagram which represents the desired
composite Web service.
We return to our example to define the different sce-
narios of book in the following order and condition:
Booking an airline ticket (S1), if not a train ticket (S2)
“alt” operator.
Booking hotel (S3) and car rental (S4) in parallel
“par” operator.
We merge these scenarios to produce the resulting se-
quence diagram (Sr) of this composition, which repre-
sents the global behavior of the business process.
Then: Sr = alt(S1,S2)+par(S3,S4)
Copyright © 2012 SciRes. JSEA
Towards an UML Profile for Web Service Composition Based on Behavioral Descriptions 717
FlightService
+findFlight(req): FlyList
+getRes(ville,ville,date): Res
CarServ ice
+findAuto(req): CarList
+getRes(date): Res
HotelService
+findChambre(req): RoomList
+getRes(date): Res
TrainService
+findTrain(req): TrainList
+getRes(ville,ville,date): Res
Figure 7. Class diagram of the travel agency.
User
Reservation
Flight reservation
Train reservation
Hotel reservation
Car rent
Figure 8. Use case diagram of the travel agency.
WS1: Flight reservationTravel agency
Request
Request
Ticket List
Ticket List
Selection
Choice
Confirmation
User
Figure 9. Sequence diagram to book airline ticket.
WS1: Flight reservation
Get_res(A-City, B-City, Date)
User
Res_Ok
Figure 10. Simplified sequence diagram.
which mean that we compose S1 and S2 alternately, S3
and S4 in parallel and the two results will be composed
sequentially.
Figure 11 shows the sequence diagram resulting from
this composition.
3) The third step of our approach: The UML model-
ing tool used is the EclipseUML IDE, which permits to
create the different diagrams. These diagrams are in XMI
format. These files does not comply with WSComposi-
tion profile that we will use in the next step to transform
models (WSComposition2BPEL) according to MDA app-
roach. Therefore, the purpose of this step is to transform
this XMI file to another one according to our profile. The
advantage of this first transformation is to allow the use
of other UML modeling tools than EclipseUML; and
then make the application independent of the used tool.
4) The fourth step of our approach: In this step, we
adopt the MDA approach for transforming the applied
profile into BPEL process, which represents the compos-
ite Web service. The transformation definition must be
based on the correspondence between the WSComposi-
tion profile and BPEL models. The rules of transforma-
tion are defined in the ATL language. The transformation
process is illustrated in Figure 12.
In MDA, a metamodel defines the language and proc-
ess from which to form a created model, and all meta-
models are based on a common metamodel MOF or EMF
Ecore.
In this transformation we use the source—WSCompo-
WS1
Flight.Res
Act or
Res_Ok
WS2
Train.Res
WS3
Hotel. Re s
WS4
Car.Rent
Get_res(A, B, Date)
Res_Ok
Alternative Transport choice
Get_res(Date)
Res_Ok
Get_res(Date)
Res_Ok
ParallelHotel& Car
1
1
Cordinate
WS
Make_Res ()
Res_Ok
[Aircraft.Price > 1000]
[Aircraft.Price < 1000]
Get_res(A, B, Date)
Figure 11. The applied profile resulting from composition.
Ecore
transformation
Conform to
Transformation
rules in ATL
BPEL Process
Conform to
BPEL Metamodel
Applied profile
WSComposition
profi le
Figure 12. Transformation process according the MDA
approach.
Copyright © 2012 SciRes. JSEA
Towards an UML Profile for Web Service Composition Based on Behavioral Descriptions
Copyright © 2012 SciRes. JSEA
718
sition profile- Figure 3 and the target—BPEL meta-
model-implemented in Ecore Figure 13.
isfy a single task, has received much attention recently.
Several approaches are proposed to compose Web ser-
vices. In this section, we discuss some of the existing
work that is most relevant to our approach.
The transformation rules from the applied profile to
BPEL process are illustrated in Figure 14.
The CordinateWS element represents the BPEL proc-
ess. Actor and the four Web services are transformed into
“partnerLink” elements.
Our work is most similar to the approaches presented
by [21,22], in which they describe a semi-automatic
process for WSC based on the behavioral aspect. They
propose a method that uses UML Activity models to de-
sign Web service, and MDA to generate executable
specifications in different composition languages. They
propose a metamodels for the target models, and present
case studies to prove the applicability of their methods to
compose Web services. Unlike our method which uses
UML sequence diagrams to design WSC assuming that is
close to the services concept. According to the behavioral
aspect, authors in [23], have formally defined the realis-
tic model for behavioral description, and studied the
computational complexity of four variations of WSC
problems: 1) solving the composition problem of deter-
ministic Web services for a restricted case (when the
coordinator Web service has complete information about
the states of all Web services) is PSPACE-complete; 2)
solving the composition problem of deterministic Web
services for a general case (when the coordinator Web
The Alternative and Parallel control flow elements of
profile are transformed into “if” and “flow” activities of
BPEL process respectively. Both activities are included
in the main activity process named “sequence”.
The Alternative element transformed into “if” activity
contains two blocks: the first is transformed into “if” and
its condition, the second into “else if” and his condition.
The Parallel element is also composed of two blocks
which are transformed into two “sequence” activities
included in the “flow” one.
Finally, the different messages exchanged between
CordinateWS, Actor and Web services are transformed
into “receive”, “relpy” and “invoke” activities depending
on the appropriate context.
6. Related Work
The problem of combining multiple web services to sat-
1..*
partnerLink
name
partner LinkT ype
variable
name
from
messageType
messageExchange
name
catch
faultName
faultVariable
catchAll
correlationSet
name
proprieties
onEvent
partnerLink
onAlarme
extension
nameSpace
mustU nd e rs ta nd
import
nameSpace
location
importType
name
targetNameSpace
partnerLinks
variable s
messageExchanges
faultHandlers
correlationSets
eventHandlers
extensions
Process
sequence
exit
1..*
1..*
0..*
0..1
1..*
0..*
0..*
0..*
1..*
0..1
0..1
0..1
0..1
0..1
0..1
0..1
1..1
wait
invoke
empty
reply
repeatUntil
pick
forEach
compensateScope
assign
rethrow
validate
throw
scope
while
extensionActivity
ifflow
links
link
0..1
1..*
condition
elseif
else
1..1
0..*
0..1
compensate
receive
0..*
Figure 13. A metamodel of the BPEL 2.0 process.
Towards an UML Profile for Web Service Composition Based on Behavioral Descriptions 719
WS1
Flight.Res
Get_res(A, B, Date)
Actor
Res_Ok
WS2
Train.Res
WS3
Hotel.Res
WS4
Car.Rent
Get_res(A, B, Date)
Res_Ok
Alternative Transport choice
[Aircraft.Price < 1000]
[Aircraft.Price > 1000]
Get_res(Date)
Res_Ok
Get_res(Date)
Res_Ok
ParallelHotel & Car
1
1
Cord inateWS
Make_Res ()
Res_Ok
<?xml version="1.0" encoding="ISO-8859-1"?>
<process na me=" WS composition“ xmi:version="2.0“ xmlns="bpel20" >
<partnerLinks>
<partnerLink name =“ Actor" partnerLinkType=“Actor"/>
<partnerLink name =" ws2" partne rLinkType="Class"/>
<partnerLink name =" ws4" partne rLinkType="Class"/>
<partnerLink name =" ws3" partne rLinkType="Class"/>
<partnerLink nam e =" ws1" partne rLinkType="Class"/>
</partnerLinks>
<sequence >
<receive partnerLink=“Actor" operation=“Make_Res()"/>
<if name="Transport choice" ord re="0 ">
<condition ex pression La ngu a ge=" Aircraft price < 1000"/>
<invoke partnerLink="ws 1 " operation =“Ge t_res(A ,B,Da te)"/>
<reply partnerLink=" ws1" opera tion=“Res_OK"/>
<els eif >
<condition expressionLanguage=" Aircraft price > 1000 "/>
<invoke partnerLink="ws2 " operation=“Get_res(A, B,Da te)"/>
<reply pa r tn er L ink ="ws2" operation=“Res_ OK"/>
</e ls e i f >
</if>
<flow name =" Hotel & Car" >
<sequence>
<invoke partnerLink="ws3 " operation=“Get_res(Da te )"/>
<reply pa r tn er L ink ="ws3" operation=“Res_ OK"/>
</sequen ce>
<sequence>
<invoke partnerLink="ws4 " operation=“Get_res(Da te )"/>
<reply pa r tn er L ink ="ws4" operation=“Res_ OK"/>
</sequen ce>
</flow>
<reply pa rtnerLink=“Actor" o peration=“Re s_ OK"/>
</sequen ce>
</process>
WS1
Flight.Res
Get_res(A, B, Date)
Actor
Res_Ok
WS2
Train.Res
WS3
Hotel.Res
WS4
Car.Rent
Get_res(A, B, Date)
Res_Ok
Alternative Transport choice
[Aircraft.Price < 1000]
[Aircraft.Price > 1000]
Get_res(Date)
Res_Ok
Get_res(Date)
Res_Ok
ParallelHotel & Car
1
1
Cord inateWS
Make_Res ()
Res_Ok
<?xml version="1.0" encoding="ISO-8859-1"?>
<process na me=" WS composition“ xmi:version="2.0“ xmlns="bpel20" >
<partnerLinks>
<partnerLink name =“ Actor" partnerLinkType=“Actor"/>
<partnerLink name =" ws2" partne rLinkType="Class"/>
<partnerLink name =" ws4" partne rLinkType="Class"/>
<partnerLink name =" ws3" partne rLinkType="Class"/>
<partnerLink nam e =" ws1" partne rLinkType="Class"/>
</partnerLinks>
<sequence >
<receive partnerLink=“Actor" operation=“Make_Res()"/>
<if name="Transport choice" ord re="0 ">
<condition ex pression La ngu a ge=" Aircraft price < 1000"/>
<invoke partnerLink="ws 1 " operation =“Ge t_res(A ,B,Da te)"/>
<reply partnerLink=" ws1" opera tion=“Res_OK"/>
<els eif >
<condition expressionLanguage=" Aircraft price > 1000 "/>
<invoke partnerLink="ws2 " operation=“Get_res(A, B,Da te)"/>
<reply pa r tn er L ink ="ws2" operation=“Res_ OK"/>
</e ls e i f >
</if>
<flow name =" Hotel & Car" >
<sequence>
<invoke partnerLink="ws3 " operation=“Get_res(Da te )"/>
<reply pa r tn er L ink ="ws3" operation=“Res_ OK"/>
</sequen ce>
<sequence>
<invoke partnerLink="ws4 " operation=“Get_res(Da te )"/>
<reply pa r tn er L ink ="ws4" operation=“Res_ OK"/>
</sequen ce>
</flow>
<reply pa rtnerLink=“Actor" o peration=“Re s_ OK"/>
</sequen ce>
</process>
Figure 14. Transformation of the applied profile into BPEL process.
service has incomplete information about the states of
Web services) is EXPSPACE-complete; 3) solving the
composition problem of non-deterministic Web services
on complete information is EXP-complete and 4) solving
the composition problem of nondeterministic Web ser-
vices on incomplete information (which is the most gen-
eral case) is 2-EXP-complete.
There is another stream of work [24,25] which consid-
ers non-functional aspect like the quality-of-service (QoS)
and the optimization of the WSC problem. In this paper,
QoS parameters are not taken into account in the process
for composing Web services. In another study, we can
take into consideration the user needs in terms of QoS at
the design stage, by extending our WSComposition pro-
file.
The approach in [26] is different from the other exist-
ing work and this paper. It proposes a natural language
interface to Web services, which can be used even by a
novice user who does not know Web service technolo-
gies. Given a user’s natural language request to a com-
posite service, the method generates an abstract work-
flow, which describes the constituent tasks and their
transitions in a composite service. In the design step, our
method gives two graphical ways based on the sequence
diagrams which make it simple and understandable by
even non experienced users.
The semantic approach [27-29] describes the meaning
of the services based on the ontology. It gives a defini-
tion of an automated services composition and discusses
their limitations. In our proposal, the semantic aspect is
not taken into account. Consequently, semantic descrip-
tion presents a good way to increase the automation de-
gree of our method.
Compared to the aforementioned composition methods,
which mainly take into consideration either the semantic
aspect using ontology, the functional aspect which is
described using interfaces with input and output parame-
ters or the non-functional aspect such as QoS, our ap-
proach is essentially based on the behavioral aspect using
WSComposition profile in a graphical way to compose
Web services.
Table 1 shows a brief comparison of some approaches
cited in this paper and our approach.
7. Conclusion and Future Work
This paper introduced a new method for WSC. The pro-
posed approach is based on MDA, and consists of using a
WSComposition profile to model WSC and to generate
Copyright © 2012 SciRes. JSEA
Towards an UML Profile for Web Service Composition Based on Behavioral Descriptions
720
Table 1. Comparison between WSC approaches.
Approaches Degree of automation Design type Aspect Based modeling Output format language
Our approach Semi-automatic Graphical Behavioral Sequence diagram BPEL
Skogan approach Semi-automatic Graphical Functional Activity diagram BPEL and WorkSCo
Bordbar approach Semi-automatic Graphical Behavioral Activity diagram BPEL
Ko approach Automatic Interactive Non-functional and
semantic client-friendly manner OWL-S
Lim approach Automatic Natural languageSemantic Workflow OWL-S
Yue approach Automatic Graphical Semantic and
non-functional OWL-S Colored Petri Nets
an executable model (BPEL process) through transfor-
mation rules, expressed in ATL. The case study pre-
sented here proves the applicability of our method for
WSC.
The existing simple Web services are discovered and
located in the Web service registry. The developer im-
ports the WSDL files of the candidate services and
translates them into UML diagrams (class diagram, use
case diagram and sequence diagrams). A WSComposi-
tion profile extending the UML2.2 sequence diagrams
metamodel is defined; it allows the developer to model
the composition of the Web services basing on the be-
havioral aspects. The MDA approach is adopted to
transform the applied profile into a BPEL process. The
transformation and rules are expressed in ATL to achieve
a mapping from WSComposition profile to BPEL.
Our method has several advantages. It is graphical,
which allows the developer to import descriptions of
exiting Web services (WSDL) and represent them clearly
in class diagrams. Furthermore, our approach is based on
UML but it is independent of the UML modeling tools
and the WSC language used. Another advantage is that
our method gives a semi-automatic way to generate a
BPEL process by adopting the MDA approach. These
features are the keys that make our method simple and
understandable by even non experienced users.
For future improvements, we will study the possibility
to extend our WSComposition profile to take into con-
sideration the user needs in terms of QoS. We will look
into the possibility of using semantic Web services to
automate Web services finder and to offer a better preci-
sion on existing services. Our mapping method is unidi-
rectional, we study the possibility to make it bidirectional
in order to enhance the automation degree.
REFERENCES
[1] W3C Working Group, “Web Services Architecture,”
2004. http://www.w3.org/TR/ws-arch/
[2] W3C Working Draft, “Soap Version 1.2 Part0: Primer,”
2001.
http://w3.org/TR/2001/WD-soap12-part0-20011217
[3] W3C Note, “Web Services Description Language (WSDL)
1.1,” 2001. http://www.w3.org/TR/wsdl
[4] UDDI Spec Technical Committee Draft, “UDDI Version
3.0.2,” 2004.
http://www.oasis-open.org/committees/uddi-spec/doc/spe
c/v3/uddi-v3.0.2-20041019.htm
[5] R. Karunamurthy, “Web Service Composition: Architec-
ture, Frameworks, and Techniques,” Ph.D. Thesis, Con-
cordia University, Montreal, 2009.
[6] C. Pahl and Y. Zhu, “A Semantical Framework for the
Orchestration and Choreography of Web Services,” Elec-
tronic Notes in Theoretical Computer Science, Vol. 151,
No. 2, 2006, pp. 3-18. doi:10.1016/j.entcs.2005.07.033
[7] Object Management Group, “MDA Guide Version 1.0.1,”
2003.
[8] OASIS Standard, “Web Services Business Process Exe-
cution Language Version 2.0,” 2007.
http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-O
S.html
[9] ATLAS group LINA & INRIA, “ATL: Atlas Transfor-
mation Language,” Version 0.2, 2005.
http://www.uio.no/studier/emner/matnat/ifi/INF5120/v05/
undervisningsmateriale/
[10] M. Juric, “Business Process Execution Language for Web
Services,” Packt Publishing Ltd., Birmingham, 2004.
[11] Object Management Group, “OMG Unified Modeling
Language (OMG UML) Superstructure, Version 2.2,”
2009.
http://www.omg.org/spec/UML/2.2/Superstructure/PDF
[12] A. Jakimi, A. Sabraoui, M. Elkoutbi and A. Idri, “A New
Approach for Composing UML Scenarios and Code
Generation,” Proceedings of the IEEE 4th International
Conference on Sciences of Electronics, Technologies of
Information and Telecommunication, Hammamet, Tuni-
sia, 25-29 March 2007.
[13] “JDOM, Version 2.0.0,” 2012. http://www.jdom.org/
[14] Object Management Group, “Object Constraint Language,
OMG Available Specification, Version 2.0,” 2006.
http://www.omg.org/spec/OCL/2.0
[15] O. Patrascoiu, “YATL: Yet Another Transformation Lan-
guage,” Proceedings of the 1st European MDA Workshop,
Copyright © 2012 SciRes. JSEA
Towards an UML Profile for Web Service Composition Based on Behavioral Descriptions 721
MDA-IA, University of Twente, Enschede-Noord, 2004,
pp. 83-90.
[16] O. Patrascoiu, “Model Transformations in YATL. Studies
and Experiments,” Technical Report No. 3-04, University
of Kent, Kent, 2004.
[17] T. Mens, P. Van Gorp, D. Varró and G. Karsai, “A Tax-
onomy of Model Transformation,” Electronic Notes in
Theoretical Computer Science, Vol. 152, 2006, pp. 143-
159. doi:10.1016/j.entcs.2005.10.022
[18] D. Steinberg, F. Budinsky, M. Paternostro and E. Merks,
“EMF: Eclipse Modeling Framework,” 2nd Edition, Ad-
dison-Wesley Professional, New York, 2008.
[19] I. Jacobson, M. Christerson, P. Jonsson and G. Overgaard,
“Object-Oriented Softaware Engineering: A Use Case
Driven Approach,” Addison-Wesley, New York, 1992.
[20] D. Skogan, R. Grønmo and I. Solheim, “Web Service
Composition in UML,” 8th IEEE International Enterprise
Distributed Object Computing Conference, Monterey,
20-24 September 2004, pp. 47-57.
[21] B. Bordbar and A. Staikopoulos, “Modelling and Trans-
formation of Behavioural Aspects of Web Services,” 3rd
Workshop in Software Model Engineering (WiSME), Inc
Conjunction with UML, 2004.
[22] W. Nam, H. Kil and D. Lee, “On the Computational
Complexity of Behavioral Description-Based Web Ser-
vice Composition,” Theoretical Computer Science, Vol.
412, No. 48, 2011, pp. 6736-6749.
doi:10.1016/j.tcs.2011.04.020
[23] J. M. Ko, C. O. Kim and I. H. Kwon, “Quality-of-Service
Oriented Web Service Composition Algorithm and Plan-
ning Architecture,” The Journal of Systems and Software,
Vol. 81, No. 11, 2008, pp. 2079-2090.
doi:10.1016/j.jss.2008.04.044
[24] B. Zibanezhad, K. Zamanifar, R. Sadjady and Y. Ras-
tegari, “Applying Gravitational Search Algorithm in the
QoS-Based Web Service Selection Problem,” Journal of
Zhejiang University, Vol. 12, No. 9, 2011, pp. 730-742.
[25] J. Lim and K. Lee, “Constructing Composite Web Ser-
vices from Natural Language Requests,” Web Semantics:
Science, Services and Agents on the World Wide Web,
Vol. 8, No. 1, 2010, pp. 1-13.
doi:10.1016/j.websem.2009.09.007
[26] Y. Ni and Y. S. Fan, “Model Transformation and Formal
Verification for Semantic Web Services Composition,”
Advances in Engineering Software, Vol. 41, No. 6, 2010,
pp. 879-885. doi:10.1016/j.advengsoft.2010.01.005
[27] H.-N. Talantikite, D. Aissani and N. Boudjlida, “Seman-
tic Annotations for Web Services Discovery and Compo-
sition,” Computer Standards & Interfaces, Vol. 31, No. 6,
2009, pp. 1108-1117. doi:10.1016/j.csi.2008.09.041
[28] S.-H. Yeganeh, J. Habibi, H. Rostami and H. Abolhassani,
“Semantic dweb Service Composition Testbe,” Com-
puters & Electrical Engineering, Vol. 36, No. 5, 2010, pp.
805-817. doi:10.1016/j.compeleceng.2008.04.007
Copyright © 2012 SciRes. JSEA