Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, VOL. 13, NO.

1, MARCH 2016 113

A Formal Model of QoS-Aware Web Service


Orchestration Engine
Yong Wang

Abstract—QoS-aware applications can satisfy not only the func- In this paper, we focus on WSO, exactly, the QoS-aware
tional requirements of the customers, but also the QoS require- WSO engine (runtime of WSO) and its formal model. A QoS-
ments. QoS-aware Web service orchestration translates the QoS aware WSO enables the customers to be satisfied with not only
requirements of the customers into those of its component Web
services. In a system viewpoint, we discuss issues on QoS-aware their functional requirements, but also their QoS requirements,
Web service orchestration and design a typical QoS-aware Web such as performance requirements, reliability requirements,
service orchestration engine called QoS-WSOE. More impor- security requirements, etc. A single execution of a WSO is
tantly, we establish a formal model of QoS-WSOE based on actor called a WSO instance (WSOI). A QoS-aware WSO engine
systems theory. Within the formal model, we use a three-layered provides runtime supports for WSOs with assurance of QoS
pyramidal structure to capture the requirements of the customers
with a concept named QoS-aware WSO service, characteristics of implementations. These runtime supports include lifetime
QoS-WSOE with a concept named QoS-aware WSO system, and operations on a WSO instance, queue processing for requests
structures and behaviors of QoS-WSOE with a concept named from the customers and incoming messages delivery to a WSO
QoS-aware WSO behavior. Conclusions showing that a system instance.
with QoS-aware WSO behavior is a QoS-aware WSO system and WS and WSO are with a continuously changing and evolving
further can provide QoS-aware WSO Service are drawn.
environment. The customers, the requirements of the cus-
Index Terms—Web services, Web service orchestration, Web tomers, and the component WSes are all changing dynamically.
service orchestration engine, actor systems, QoS, formal model.
To assure safe adaptation to dynamically changing and evolving
I. I NTRODUCTION requirements, it is important to have a rigorous semantic model
of the system: the component WSes, the WSO engine that pro-
W EB SERVICE (WS) is a new distributed component
which emerged about ten years ago, which uses WSDL
[12] as its interface description language, SOAP [22] as
vides WSO instance management and invocation of the compo-
nent WSes, the customer accesses, and the interactions among
these elements. Using such a model, designs can be analyzed to
its communication protocol and UDDI [11] as its directory clarify assumptions that must be met for correct operation.
service. Because WS uses the Web as its provision platform, it We design a typical QoS-aware WSO engine in which main
is suitable to be used to develop cross-organizational business functions of a QoS-aware WSO runtime are implemented,
integrations. called QoS-WSOE in this paper. An architecture of QoS-
Cross-organizational business processes are usual forms WSOE is given, and more importantly, a formal model of
in e-commerce that orchestrate some business activities into QoS-WSOE is established based on the actor systems theory
a workflow. WS Orchestration (WSO) provides a solution [7], [8], [14]. In the formal model, we introduce the notion of
for such business process based on WS technologies, hereby QoS-aware WSO Service, QoS-aware WSO System, and
representing a business process where business activities are QoS-aware WSO Behavior. And we draw conclusions that:
modeled as component WSes (a component WS is correspond- (1) if a QoS-aware WSO engine is a QoS-aware WSO System,
ing to a business activity, it may be an atomic WS or another then it provides QoS-aware WSO Service for customers; (2) if
composite WS). a QoS-aware engine has QoS-aware WSO Behavior, then it is
From a WS viewpoint, WSO provides a workflow-like pat- a QoS-aware WSO System and further provides QoS-aware
tern to orchestrate existing WSes to create a new composite WSO Service.
WS, and embodies the added values of WS. In particular, we This paper is organized as follows. In section 2, we intro-
use the term WSO, rather than another term – WS Composition, duce the related works. The actor computational model and the
because there are also other WS composition patterns, such as three layered pyramidal architecture are introduced in section 3.
WS Choreography (WSC) [17]. However, about WSC and the We illustrate a WS composition example called BuyingBooks
relationship of WSO and WSC [23], we do not explain more, in section 4. We design QoS-WSOE in section 5. And in
because it is not the focus of this paper. section 6, a formal model of QoS-WSOE is established. Finally,
Manuscript received June 24, 2015; revised September 21, 2015 and we conclude our work and point out future works.
November 14, 2015; accepted December 7, 2015. Date of publication
December 9, 2015; date of current version March 9, 2016. The associate edi-
tor coordinating the review of this paper and approving it for publication was
M. Sloman. II. R ELATED W ORKS
The author is with the College of Computer Science and Technology,
The main efforts on WSO of the industry were trying
Beijing University of Technology, Beijing 100124, China (e-mail:
wangy@bjut.edu.cn). to establish a uniform WSO description language specifica-
Digital Object Identifier 10.1109/TNSM.2015.2507166 tion, such as the early WSFL [18], XLANG [31], and lately
1932-4537 © 2015 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.
See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
114 IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, VOL. 13, NO. 1, MARCH 2016

converged WS-BPEL [16]. Such WSO description languages Actor [7], [14] is a basic concurrent computing model and
based on different mathematical models have constructs to can be used in reasoning about open distributed systems [8].
model invocation of WSes, manipulate information transferred In [33] and [34], actors were used to reason about middleware
between WSes, control execution flows of these activities and of resource management in distributed computing and even
inner transaction processing mechanisms. The WSO descrip- QoS-aware middleware. Our works follow the works above,
tion language can be used to define various WSOs under especially [34]. That is, in this paper, we adopt the way for
different requirements and acts as a so-called meta language. formalization of open distributed systems in [34] which uses
WSOs described by such meta languages actually are pure texts a pyramidal refinement to capture the concepts of customer
and must be enabled by the meta language interpreter called requirements, system requirements, system behaviors and their
WSO engine, such as the famous open source ActiveBPEL [1], relationships. Our work focuses on QoS-aware WSO engine, a
ReSpecT tuple centres based WS-BPEL engine [2], a multi- software system different to the multimedia resource manage-
agent system based WS-BPEL engine [3] and event-driven ment middleware in [34] with respect to different QoS aspects
architecture based WS-BPEL engine [4]. and QoS management, different system functions and architec-
In industry, there have been many research works to give ture, different system components and behaviors. That is, the
the meta languages correctness verifications based on different formal model in this paper is a different one from that in [34].
theoretical tools [6]. [35] formalized WS-BPEL [16] with
Petri-Net. [10] used process algebra to give WS-BPEL a
theoretical foundation. [20] established a calculus to ver- III. ACTORS AND THE T HREE L AYERED P YRAMIDAL
A RCHITECTURE
ify correctness of WS-BPEL. Semantics and verifications
of WS-BPEL were researched in [24]. [5] used a kind of An actor [7], [14] is a basic concurrent computation unit
formal specification to orchestrate WSes. Blite [25] was a which encapsulates a set of local states, a control thread and
prototypical orchestration language equipped with a formal a set of local computations. It has a unique mail address
operational semantics. Dumez et al [26] proposed a model- and maintains a mail box to receive messages sent by other
driven approach supporting formal verification for web service actors. Through processing the messages stored in the mail box
composition protocols. Ning et al [27] used enhanced logic sequentially, an actor computes locally and blocks when its mail
Petri nets to verify web service composition. Nagamouttou box is empty.
[28] utilized enhanced stacked automata model to verify for During processing a message from its mail box, an actor may
web services composition. Ardagna [29] used a model-based perform three candidate actions: (1) (send) sending messages
approach to verify dependability certification of services. asynchronously to other actors; (2)(create) creating new actors
Unlike these formalizations, our formal model focuses on with new behaviors; (3)(ready) becoming ready again to pro-
the correctness of the WSO engine, that is, correctness of cess the next message from the mail box or block if the mail
a runtime system of WSO, but not correctness of the meta box is empty.
languages. Note that synchronization [13] can also be achieved among
QoS-aware WSO engine can process not only the functional actors. Also there are many works to abstract at a high-level
requirements modeled by the WSO description language, but from aspects of distributed computing, such as policy manage-
also the QoS requirements of the customers. For example, a ment [9], interaction policies [30], resource management [33],
WSO must complete within three hours and the cost running communication and coordination of agents [15], worldwide
some WSO must be under twenty dollars. A QoS-aware WSO computing [32], etc.
translates the QoS requirements of the customers into QoS The actor computational model can be used to reason about
requirements of component WSes. Such a translation is accom- the behavior of a computer system, especially the behavior of
plished by the implementation of the so-called QoS-aware a distributed system [33]. [34] uses actors to reason about the
Service Selection Algorithm (QSSA). There have been many behavior of QoS-aware distributed middleware and presents a
kinds of such service selection algorithms, such as [37], which so-called pyramidal structure to capture the concepts of cus-
used the so-called local service selection approach and the tomer requirements, system requirements, system behavior and
global allocation approach based on integer programming, and their relationships. Our works are greatly inspired by this pyra-
another one in [36], which modeled the service selection prob- midal structure and are with the similar goal but different
lem (SSP) in two ways: one defined SSP as a multi-dimensional system. That is, our QoS-aware WSO Engine called QoS-
multi-choice 0-1 knapsack problem (MMKP) based on combi- WSOE has similar requirements, but different behavior, with
natorial model and the other captured SSP as a multi-constraint the QoS-aware distributed middleware in [34], just because they
optimal path problem (MCOP) based on graph model, and are different systems in nature.
gave heuristic algorithms of the two ways. We do not research
SSP itself, but use the implementation of a QSSA above as a
IV. A B OOKSTORE WSO IN THE B UYING B OOKS
component of our WSO engine QoS-WSOE.
E XAMPLE
Note that QoS-aware WSO implies that the WSes involved
in this WSO also must be QoS-aware. In this paper, we In this section, we give a so-called BuyingBooks example
assume that the WSes are all QoS-aware. About QoS of WS, for the scenario of cross-organizational business process inte-
the readers please refer to [19] and [21]. [19] also involved gration and use a so-called BookStore WSO to illustrate some
implementations of QoS-aware WSes. related concepts, such as WSO, activity, etc. And we use the

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
WANG: A FORMAL MODEL OF QoS-AWARE WEB SERVICE ORCHESTRATION ENGINE 115

8) Otherwise, the BookStore calls the shipment service of


RailwayCorp for the shipment of book. Then the process
is ended.
Each business process is implemented by a WSO, for exam-
ple, the BookStore WSO and BuyerAgent WSO implement
BookStore process and BuyerAgent process respectively. Each
WSO invokes external WSes through its activities directly.
And each WSO is published as a WS to receive the incoming
messages.

B. The Bookstore WSO


The BookStore WSO described by WS-BPEL is given in the
appendix.
The flow of BookStore WSO is as Fig. 1 shows. There are
several receive-reply activity pairs and several invoke activities
in the BookStore WSO. The QoS requirements are not included
in the WS-BPEL description, because these need an extension
of WS-BPEL and are out of the scope of this paper. In the
request message from the BuyerAgent WSO, the QoS require-
ments, such as the whole execution time threshold and the
additional charges, can also be attached, not only the functional
parameters.
Another related specification is the WSDL description of the
interface WS for BuyingBooks WSO. Because we focus on WS
composition, this WSDL specification is omitted.
Fig. 1. The BuyingBooks Example.
V. A RCHITECTURE OF A T YPICAL Q O S-AWARE WSO
BookStore WSO to explain the formal model we established in E NGINE , Q O S-WSOE
the following. In this section, we firstly analyze the requirements of a WSO
Engine. And then we discuss problems about QoS management
of WS and define the QoS aspects used in this paper. Finally,
A. A BuyingBooks Example we give the architecture of QoS-WSOE and discuss the state
An example is BuyingBooks as Fig. 1 shows. We use this transition of a WSO instance.
BuyingBooks example throughout this paper to illustrate con-
cepts and mechanisms in WS Composition.
A. Requirements for a WSO Engine and QoS Management
In Fig. 1, there are four organizations: BuyerAgent,
of WS
BookStore, RailwayCorp, and AirlineCorp. And each organi-
zation has one business process. Exactly, there are two busi- As the introduction above says, a WSO description language,
ness processes, the business processes in RailwayCorp and such as WS-BPEL, has:
AirlineCorp are simplified as just WSes for simpleness with- • basic constructs called atomic activities to model invo-
out loss of generality. We introduce the business process of cation to an external WS, receiving invocation from an
BookStore as follows, and the process of BuyerAgent can be external WS and reply to that WS, and other inner basic
understood as contrasts. functions;
1) The BookStore receives request of list of books from the • information and variables exchanged between WSes;
buyer through BuyerAgent. • control flows called structural activities to orchestrate
2) It sends the list of books to the buyer via BuyerAgent. activities;
3) It receives the selected book list by the buyer via • other inner transaction processing mechanisms, such as
BuyerAgent. exception definitions and throwing mechanisms, event
4) It calculates the price of the selected books. definitions and response mechanisms.
5) It sends the price of the selected books to the buyer via Therefore, a WSO described by WS-BPEL is a program with
BuyerAgent. WSes as its basic function units and must be enabled by a WSO
6) It gets payments for the books from the buyer via engine. An execution of a WSO is called an instance of that
BuyerAgent. WSO. The WSO engine can create a new WSO instance accord-
7) If the payments are greater than 100dollar, then the ing to information included in a request of a customer via the
BookStore calls the shipment service of AirlineCorp for interface WS (Note that a WSO is encapsulated as a WS also.)
the shipment of books. of the WSO. Once a WSO instance is created, it has a thread

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
116 IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, VOL. 13, NO. 1, MARCH 2016

Fig. 2. Architecture of QoS-WSOE.

of control to execute independently according to its definition QoS, availability QoS, and so on. In this paper, we use a cost-
described by a kind of description language, such as WS-BPEL. effective QoS approach. That is, cost QoS is used to measure
During its execution, it may create activities to interact with the costs of one invocation of a WS while response time QoS is
WSes outside and also may do inner processings, such as local used to capture effectiveness of one invocation of a WS. In the
variable assignments. When it ends execution, it replies to the following, we assume all WSes are aware of cost-effective QoS.
customer with its execution outcomes.
In order to provide the adaptability of a WSO, the bindings
B. Architecture of QoS-WSOE
between its activities and WSes outside are not direct and static.
That is, WSes are classified according to ontologies of specific According to the requirements of a WSO engine discussed
domains and the WSes belonging to the same ontology have above, the architecture of QoS-WSOE is given as Fig. 2 shows.
same functions and interfaces, and different access points and In the architecture of QoS-WSOE, there are external com-
different QoS. To make this possible, from a system viewpoint, ponents, such as Client, WS of a WSO, UDDI and compo-
a name and directory service – UDDI [11] is necessary. All nent WSes, and inner components, including WSO Instance
WSes with access information and QoS information are reg- Manager, WSO Instances, Activities, and Service Selector.
istered into a UDDI which classifies WSes by their ontologies Among them, WS of a WSO, UDDI, WSO Instance Manager
to be discovered and invoked in future. UDDI should provide and Service Selector are permanent components and Client,
multi interfaces to search WSes registered in for its users, for component WSes, WSO Instances, Activities are transient com-
example, a user can get information of specific set of WSes by ponents. Component WSes are transient components since they
providing a service ontology and specific QoS requirements via are determined after a service selection process is executed by
an interface of the UDDI. Service Selector.
The above mechanisms make QoS-aware service selection Through a typical requirement process, we illustrate the
possible. In a QoS-aware WSO engine, after a new WSO functions and relationships of these components.
instance is created, the new WSO instance firstly selects its 1) A Client submits its requests including the WSO ontol-
component WSes according to the QoS requirements provided ogy, input parameters and QoS requirements to the WS of
by the customer and ontologies of component WSes defined a WSO through SOAP protocol.
in the description file of the WSO by WS-BPEL (the descrip- 2) The WS transmits the requirements from a SOAP mes-
tion of QoS and ontologies of component WSes by WS-BPEL, sage sent by the Client to the WSO Instance Manager
needs an extension of WS-BPEL, but this is out of the scope of using private communication mechanisms.
this paper). 3) The WSO Instance Manager creates a new WSO Instance
About QoS of a WS [19], [21], there are various QoS including its Activities and transmits the input parameters
aspects, such as performance QoS, security QoS, reliability and the QoS requirements to the new instance.

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
WANG: A FORMAL MODEL OF QoS-AWARE WEB SERVICE ORCHESTRATION ENGINE 117

Fig. 3. State Transitions of a WSO Instance.

Fig. 4. State Transitions of an Activity.

4) The instance transmits ontologies of its component WSes


and the QoS requirements to the Service Selector to per-
form a service selection process via interactions with a
UDDI. If the QoS requirements can not be satisfied, the
instance replies to the Client to deny this time service.
5) If the QoS requirements can be satisfied, each activity in
the WSO Instance is bound to an external WS.
6) The WSO Instance transmits input parameters to each
activity for an invocation to its binding WS.
7) After the WSO Instance ends its execution, that is, every
invocation to its component WSes by activities in the
WSO Instance is returned, the WSO Instance returns the
execution outcomes to the Client.

Fig. 5. State Transitions of a BookStore WSOI and Its Activities.


C. WSO Instance—An Execution of A WSO
An execution of a WSO is called a WSO instance (WSOI).
Based on the state transitions of a WSOI and an activity
A WSOI is created when the WSO Instance Manager receive a
as shown in Fig. 3 and Fig. 4, we can get the state transi-
new request (including the functional parameters and the QoS
tions of a BookStore WSOI as Fig. 5 illustrates when the QoS
requirements).
requirements of the request are satisfied.
As Fig. 3 shows, once a WSOI is created, the WSOI is in
the Waiting state. Then the WSO Instance Manager requires the
Service Selector to perform a service selection process to select
suitable component services. If the QoS requirements can not
D. The Glossary and the Symbols Used in This Paper
be satisfied, the WSOI transits to Denied state, otherwise, the
WSOI transits to the Granted state. When the WSOI starts to Components in Fig. 2 are all defined as actors. Some of
execute, that is, the first activity is executed, the WSOI is in these actors used in the following are Client Actor (CA),
the state of Servicing and executes according to the definition WSO Instance Manager Actor (WSOIM), WSO Instance Actor
of the WSO. Finally, the WSOI ends to execute, that is, every (WSOI), Activity Actor (AA), Service Selector Actor (SS),
activity of the WSOI is completed, the WSOI is with the state component WS Actor (WS).
of Completed. We follow the symbol convention in [33] and [34]. Some are
Every instance of an activity (we do not distinguish the following, and others are introduced when we need.
uses of an activity and an activity instance) is included in a C denotes a system configuration.
WSOI. When a WSOI is granted, all activities are in the state of Cast (C) denotes the set of names of actors existing in C.
Preparing. In addition, an activity is with the state of Invoking get State(C, a) denotes the state of actor a in C.
when it is the executing turn of this activity. Once this activity get A(C, a, t) gets the value of tag t of actor a in C.
is completed, that is, it gets the outcomes of the invocation to set A(C, a, t, v) sets the value of tag t of actor a in C with a
the external WS, it is in the Returned state. The state transitions value v.
is illustrated in Fig. 4. a : s denotes an actor with a name a and a state s.

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
118 IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, VOL. 13, NO. 1, MARCH 2016

b  MessageT ype( paras)@a denotes a message with a (1) there is a unique transition τ in π where W S O Req
type MessageT ype sent from actor a to actor b with optional is accepted for service and the QoS requirements qos of
parameters paras. W S O Req can be satisfied;
trigger
a : s[, a  M] −−−−→ a : s  , MC if condition (2) or there is a unique transition τ in π where W S O Req is
e f f ect rejected, only because the QoS requirements qos of W S O Req
denotes a transition rule, where a : s is an actor with name a can not be satisfied when W S O Req arrives.
and state s, a  M is a message to actor a with content M, s 
is the new state of actor a, trigger is the event triggering this
rule, e f f ect is the effect of this rule such as set A(C, a, t, v), B. QoS-Aware WSO System
MC is the queue of (possible empty) messages sent in this rule, When a W S O Req message is sent to the WSOIM, the
condition is the condition of occurrence of this rule. WSOIM creates a new WSOI. Now we give the definition of
l
τ :C − → C  denotes a transition, C = sour ce(τ ) is the WSOI.
source configuration, C  = target (τ ) is the target configura- Definition 4.4 (WSOI: WSO Instance): A WSOI is defined
tion, and l is the label of the transition rule applied. as a 4-tuples W S O I = W S O Request = W S O Req,
π = [Ci −
li
→ Ci+1 |i ∈ Nat] denotes a computation path, W S O I State = state,
which is a possibly infinite sequence of transitions. A As = W S O A As,
li Out put Parameter s = ops, where W S O Req is the WSO
π(i) = Ci −
→ Ci+1 is called ith transition of π or ith stage
Request, state is the state of the WSOI, ops denotes
of π .
the output parameters of the WSOI, and A As is activity
actors included in the WSOI. state ranges over the set
VI. F ORMAL M ODEL OF Q O S-WSOE {W aiting, Granted, Denied, Servicing, Completed},
In this section, we will introduce the formal model of where W aiting denotes that a WSOI is created and is waiting
QoS-WSOE. We establish a pyramidal formal structure of QoS- for further processing, Granted denotes that a WSOI request
WSOE, including QoS-aware WSO Service to model the is accepted and the QoS requirements can be satisfied, Denied
requirements of the customers, QoS-aware WSO System to denotes that a WSO request is rejected because the QoS
capture the properties of QoS-aware WSO engine, and QoS- requirements can not be satisfied, Servicing denotes that a
aware WSO Behavior to capture the behaviors of QoS-aware WSOI is under running, and Completed denotes that a WSOI
WSO engine. is completed in running and the QoS requirements are satisfied.
Definition 4.5 (WSOI Functions): To manipulate a WSOI,
the following functions are defined:
A. QoS-Aware WSO Service (1) get W S O Req(W S O I ) = W S O Req denotes the func-
Let us use a WSO ontology W S O range over the set of tion to get the WSO Request contained in the WSO instance
WSO ontologies W S O Ontologies, and let a request from the W SO I;
customer W S O Req range over the set of requests W S O Reqs. (2) get State(W S O I ) = state denotes the function to get
Definition 4.1 (WSO Request): A WSO Request actor the state of the WSO instance W S O I ;
W S O Req is defined as a 4-tuples W S O Req = Client I d = (3) get A As(W S O I ) = A As denotes the function to get the
αcl , W S O Ontology = W S O, I nput Parameter s = i ps, set of activity actors contained in the WSO instance W S O I ;
QoS = qos, where αcl is the client ID, W S O is the WSO (4) get Out put Parameter s(W S O I ) = ops denotes the
ontology requested, i ps is the input parameters of the WSO function to get the output parameters of the WSO instance
ontology, and qos is the QoS requirements. W SO I;
Definition 4.2 (WSO Request Functions): To manipulate a (5) cr eateN ew A AN ame(W S O I ) creates a new AA name;
WSO Request W S O Req, we define the following functions: (6) get W S O I (C, αcl ) = W S O I denotes the function to get
(1) getClient I d(W S O Req) = αcl denotes the function to a WSO instance W S O I with a Client ID αcl from the config-
get the Client ID; uration C, since a WSO instance and a WSO Request are with
(2) get W S O Ontology(W S O Req) = W S O denotes the 1:1 relation.
function to get the WSO ontology; We define AA as follows.
(3) get I nput Parameter s(W S O Req) = i ps denotes the Definition 4.6 (AA: Activity Actor): An AA is defined as a
function to get the input parameters; 7-tuples A A = A AN ame = aa N ame,
(4) get QoS(W S O Req) = qos denotes the function to get W S O I I d = αcl ,
the QoS requirements; QoS = qos A A ,
(5) get W S O Req(C, αcl ) = W S O Req denotes the function I nput Parameter s = i ps A A ,
to get a WSO Request with a Client ID αcl from a configura- Out Parameter s = ops A A ,
tion C. A AState = state A A ,
Definition 4.3 (QoS-aware WSO Service): A system S pro- W S = ws, where aa N ame is the name of the AA, αcl denotes
vides a QoS-aware WSO Service over W S O Ontologies and the ID of a WSO instance, qos A A is the QoS requirements of
W S O Reqs iff for every configuration C of S, if there is an the AA, i ps A A is the input parameters of the AA, ops A A is
undelivered request W S O Req in C, then along any path π of the output parameters of the AA, state A A is the state of the
C, exactly one of the following properties holds: AA, and ws is the WS bound after a service selection process.

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
WANG: A FORMAL MODEL OF QoS-AWARE WEB SERVICE ORCHESTRATION ENGINE 119

state A A ranges over {Pr eparing, I nvoking, Retur ned}, Definition 4.11 (QoS-Allocate Function): The QoS-allocate
where Pr eparing denotes that an AA is created by a WSOI and function translates the QoS requirements of a WSOI into the
is waiting for invoking a WS, I nvoking denotes that an AA is QoS requirements of its WSes implemented by some kind of
now invoking a WS, and Retur ned denotes that the invocation QSSA, such as in [21] and [19], with an effect of binding AAs
from an AA to a WS is completed. in the WSOI to WSes selected. The QoS-allocate function is
Definition 4.7 (AA Functions): To manipulate an AA, we defined as follows:
define the following functions: ResponseT imeW S O I × CostW S O I →
(1) get A A(W S O I , aa N ame) = A A denotes the function n
(ResponseT imeW Si × CostW Si ) where W S O I has
to get an activity actor A A with a name aa N ame contained i=1 
in the WSO instance W S O I ; n WSes and 1 ≤ i ≤ n and denotes the QoS-allocate
(2) get A A(C, αcl , aa N ame) = A A denotes the function to function.
get an activity actor A A with a name aa N ame contained in the Definition 4.12 (AA-InputParametersGenerate Function):
WSO instance αcl from a configuration C; The AA-InputParametersGenerate function maps the input
(3) get A AQoS(A A) = qos A A denotes the function to get parameters of a WSOI to those of AAs. The AA-
the QoS requirements of an AA A A; InputParametersGenerate is defined as follows:
(4) get I nput Parameter s(A A) = i ps A A denotes the func- 
n
i psW S O I → (i psW Si ) where W S O I has n WSes
tion to get the input parameters of an AA A A; i=1 
(5) get Out put Parameter s(A A) = ops A A denotes the and 1 ≤ i ≤ n, where represents the AA-InputParameters
function to get the output parameters of an AA A A; Generate function.
(6) get A AState(A A) = state A A denotes the function to get Definition 4.13 (WSOI-OutputParametersGenerate
the state of an AA A A; Function): The WSOI-OutputParametersGenerate func-
(7) get A AN ame(A A) = aa N ame denotes the function to tion maps the output parameters of AAs to those of WSOI. The
get the name of an AA A A; WSOI-OutputParametersGenerate is defined as follows:
n
(8) get W S O I I d(A A) = αcl denotes the function to get the (opsW Si ) → opsW S O I where W S O I has n WSes
WSOI ID of an AA A A; i=1 
(9) get W S(A A) = ws denotes a function to get the WS and 1 ≤ i ≤ n. where represents the WSOI-Output
bound to an AA A A. ParametersGenerate function.
WS is defined as follows. Definition 4.14 (WSOI Constraints φW S O I ): The WSOI
Definition 4.8 (WS: Web Service): A WS is determined by Constraints φW S O I includes:
a pair W S O I d = αcl , W S I d = aa N ame, where αcl denotes (1) A system S satisfies φW S O I ,φW S O I (S), just if for every
the ID the a WSOI, and aa N ame denotes the name aa N ame of computation π of S, φW S O I (π ) holds.
AA that the WS bound. Since a WS is out of the management (2) φW S O I (π )holds, just if for every transition τ of π ,
domain of the WSOI, we assume that a WS is always able to φW S O I (τ ) holds, and
process the invocation of its customers, such as an AA. (2-a) A WSOI in some configuration C with the state
Definition 4.9 (WS Functions): To manipulate A WS, we W aiting will eventually be granted or be denied.
define the following functions: (∀i ∈ Nat)(C = sour ce(π(i))
(1) get W S(A A) = ws denotes the function to get the WS ∧ get State(get W S O I (C, αcl )) = W aiting)
bound of an AA A A; ⇒ (∃ j ∈ Nat)(C  = sour ce(π(i + j + 1))
(2) get W Ses(W S O I ) = wses denotes the function to get ∧ get State(get W S O I (C  , αcl )) ∈ {Granted, Denied})
WSes included in a WSOI W S O I ; (2-b) A WSOI in some configuration C with the state
(3) get W S(W S O I , aa N ame) = ws denotes the function to Granted will eventually be in servicing and be completed.
get the WS bound to the AA with a name aa N ame contained (∀i ∈ Nat)(C = sour ce(π(i)) ∧
in the WSO instance W S O I . get State(get W S O I (C, αcl )) = Granted)
(4) get W S(C, αcl , aa N ame) = ws denotes the function to ⇒ (∃ j, j  ∈ Nat)(C  = sour ce(π(i + j + 1)),
get a WS ws bound to an AA with a name aa N ame contained C  = sour ce(π(i + j  + 1))
in the WSO instance αcl from a configuration C; ∧ get State(get W S O I (C  , αcl )) = Servicing
Definition 4.10 (QoS Requirements of WS and WSOI): We ∧ get State(get W S O I (C  , αcl )) = Completed),
use a cost-effectiveness couple ResponseT ime × Cost to cap- where C  is the target configuration of C and C  is the target
ture the QoS requirements of WS and WSOI. If a WSOI has configuration of C  .
n WSes: ws1 , . . . , wsn , then there is the following relation (3) φW S O I (τ ) holds for τ : C → C  , just if
between the WSOI and its WSes: (3-a) For a WSOReq in some configuration C, once the cor-
 n responding WSOI is created, then the WSOReq and all AAs in
CostW S O I = (Costwsi ),
i=1 the WSOI are constant.
n (∀W S O Req ∈ W S O Reqs ∩ Cast (C))
ResponseT imeW S O I = max(ResponseT imewsi ).
i=1 (get W S O Req((get W S O I (C, W S O Req))
Since all AAs included in a WSOI are executed in parallel = get W S O Req(get W S O I (C  , W S O Req))
by default, we can get the above equations if we ignore the ∧ (∀A A ∈ get A As(get W S O I (C, W S O Req))
causalities of messages sending among the AAs. (∀A A ∈ get A As(get W S O I (C  , W S O Req))

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
120 IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, VOL. 13, NO. 1, MARCH 2016

get W S O I I d(A A) = get W S O I I d(A A )) WSOI-OutputParametersGenerate function, WSO Request


∧ (∃A A ∈ get A As(get W S O I (C  , W S O Req)) functions, WSOI functions, AA functions and WS functions,
get A AN ame(A A) = get A AN ame(A A )))) iff (1)S satisfies φW S O I (S) and φW W (S); (2) for C ∈ S,
(3-b) For any WSOreq in some configuration C, if the state if there is an undelivered request W S O Req with param-
of the corresponding WSOI is W aiting, then the WSOI may eters αcl , W S O, i ps, qos, then along any path π of C
still be in a state W aiting, or in a new state Granted, or in a there is a unique stage i transition: π(i) = C → C  to pro-
new state Denied; if the state of the corresponding WSOI is cess W S O Req, and there is a newly created WSO instance
Denied, then the WSOI will keep in the state Denied; if the W S O I = get W S O I (C, αcl ), with parameters:
corresponding WSOI is in a state Granted, then it will still • get W S O Req(W S O I ) = W S O Req;
be in a state Granted or in a new state Servicing; if the corre- • get State(W S O I ) = W aiting;
sponding WSOI is still in the state Servicing, the it will still be • get Out put Parameter s(W S O I ) = nil;
in a state Servicing or in a new state Completed; if the state • for ∀A A ∈ get A As(W S O I ),
of the corresponding WSOI is Completed, then the WSOI will – get A AQoS(A A) = nil;
keep in the state Completed. These transitions are expressed – get I nput Parameter s(A A) = nil;
as Fig. 3 illustrates. – get Out put Parameter s(A A) = nil;
(∀W S O Req ∈ W S O Reqs ∩ Cast (C)) – get A AState(A A) = Pr eparing;
get State(get W S O I (C, W S O Req)) = W aiting – get W S O I I d(A A) = αcl ;
⇒ get State(get W S O I (C  , W S O Req)) – get W S(A A) = nil;
∈ {W aiting, Granted, Denied}, – get A AState(A A)
and = cr eateN ew A AN ame(W S O I ).
get State(get W S O I (C, W S O Req)) = Denied Theorem 4.1 (Service2System) If a system S is a QoS-aware
⇒ get State(get W S O I (C  , W S O Req)) = Denied, WSO System as Definition 4.16 shows, then this system S
and provides QoS-aware WSO Service as defined in Definition 4.3.
get State(get W S O I (C, W S O Req)) = Granted Proof: We firstly see that if there is an undelivered request
⇒ get State(get W S O I (C  , W S O Req)) W S O Req for any C in S, according to definition 4.16, a
∈ {Granted, Servicing}, new WSO instance W S O I is created and C −
+
→ C W aiting .
and + +
get State(get W S O I (C, W S O Req)) = Servicing Then C W aiting −→ C Granted or C W aiting − → C Denied according
⇒ get State(get W S O I (C  , W S O Req)) to Definition 4.14, if in C Denied , a reply is sent to the customer
+
∈ {Servicing, Completed}, to reject the request; if in C Granted , then C Granted −
→ C Servicing
and +
and C Servicing −
→ CCompleted . Thus, W S O Req is assured to be
get State(get W S O I (C, W S O Req)) = Completed just accepted or just rejected.
⇒ get State(get W S O I (C  , W S O Req)) = Completed. QoS-Allocate function, φW S O I , φW W and Definition 4.8
Where C  is the target configuration of C after the state guarantee that the QoS requirements are satisfied in case that
transition. W S O Req is accepted. 
(3-c) If the corresponding WSOI of any WSOReq in some
configuration C is denied, then the WSes included in the WSOI
C. QoS-Aware WSO Behavior
will always be nil, that is, after a service selection process exe-
cuted for this WSOI, the QoS requirements of the WSOReq can In this section, we will specify the behavior of actors in
not be satisfied. Fig. 2, including their states, messages exchanged among them
get State(get W S O I (C, W S O Req)) = Denied and their transition rules. Then we define the concept of
⇒ (∀ws ∈ get W Ses(get W S O I (C, W S O Req)) QoS-aware WSO Behavior and draw two conclusions.
∧ get W Ses(get W S O I (C  , W S O Req))) WSOI, AA and WS are defined in the above section includ-
ws = nil ing their states. Now we will explain WSOIM and SS. The
Definition 4.15 (WSOI-WS Constraints φW W ): A system S functions of WSOIM are creating WSOIs when incoming
satisfies φW W ,φW W (S), just if for every computation π of S, requests from CA arrive. We assume that WSOIM are always
φW W (π ) holds, iff for any WS included in the corresponding ready for servicing. And the functions of SS are providing
WSO of any WSOReq in some configuration C is not nil, QoS-aware service selection processing for WSOIs and SS is
then the WSOI will be in a state Granted, or Servicing, or also always ready for servicing.
Completed, that is, We define the messages exchanged among these actors as
(∀ws ∈ get W Ses(get W S O I (C, W S O Req)))ws = nil Table. 1 illustrates.
⇒ get State(get W S O I (C, W S O Req)) The followings are the transition rules for WSOIM and
∈{Granted, Servicing, Completed} WSOI.
Definition 4.16 (QoS-aware WSO System): A system S (1) Rule for WSOIM creating new WSOI: when the WSOIM
is a QoS-aware WSO System, with respect to request receives a incoming request message, then a new WSOI is cre-
W S O Req in W S O Reqs, the above functions including ated and a service selection processing message will be sent
QoS-Allocate function, AA-InputParametersGenerate function, from the new WSOI to the SS.

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
WANG: A FORMAL MODEL OF QoS-AWARE WEB SERVICE ORCHESTRATION ENGINE 121

TABLE I
R EQUEST-R EPLY AND N OTIFICATION M ESSAGES D EFINITION

W S O I M : W S O I M State, get State(W S O I ) = Granted,


W S O I M  wsoReq(αcl , W S O, qos, i ps)@CA get Out put Parameter s(W S O I ) = nil,
−−−−−−−−−→ ∀A A ∈ get A As(W S O I ){
e f f ectnewW S O I
get A AQoS(A A) = QoS Allocate(A A),
W S O I M : W S O I M State ,
get I nput Parameter s(A A)
SS  select (qos, W S O)@WSOI.
= A A − I nput Parameter sGenerate(A A),
Where e f f ectnewW S O I = new(W S O I );
get Out put Parameter s(A A) = nil,
set A(wsoiU ), and
get A AState(A A) = Pr eparing,
wsoiU = W S O I {
get W S O I I d(A A) = αcl ,
get W S O Req(W S O I ) = W S O Req,.
get W S(A A) = ServiceSelection(A A),
get State(W S O I ) = W aiting,.
get A AState(A A) = aa N ame}},
get Out put Parameter s(W S O I ) = nil,.
where QoS Allocate(A A) denotes the requirements after a
∀A A ∈ get A As(W S O I ){.
service selection processing by SS, A A − I nput Parameter s
get A AQoS(A A) = nil,.
Generate(A A) denotes input parameters generation of AA
get I nput Parameter s(A A) = nil,.
from the WSOI, ServiceSelection(A A) denotes the WS
get Out put Parameter s(A A) = nil,.
bound to the AA after a service selection processing by SS,
get A AState(A A) = Pr eparing,.
set A is the set value function. .
get W S O I I d(A A) = αcl , get W S(A A) = nil,.
(3) Rule for WSOI processing reply from AA: when a WSOI
get A AState(A A) = cr eateN ew A AN ame(WSOI)}}.
in a state Granted or Servicing receives a reply message
Where set A is the set value function and selection select is
invokeAck from an AA, then it will be in a new state Servicing.
the service selection processing message.
W S O I : {Granted, Servicing},
(2) Rules for WSOI processing reply from SS: after a service W S O I  invoke Ack()@AA
selection process is executed by the SS, a reply message from → W S O I : Servicing.
the SS to the WSOI is sent. If the QoS requirements can not be (4) Rules for WSOI processing notification from AA: when
satisfied, then the WSOI is in a new state Denied and a denied a WSOI in a state Servicing receives a notification message
reply message is sent from the WSOI to the customer. If the from an AA, if all AAs included in the WSOI are in state
QoS requirements can be satisfied, then the WSOI is in a new Retur ned, then the WSOI will be in a new state Completed
state Granted and a granted reply message is sent from the and a completed reply message will be sent from the WSOI to
WSOI to the customer and a invoke message will be sent to any the customer.
AA included in the WSOI from the WSOI. W S O I : Servicing,
W S O I : W aiting, W S O I  noti f y(A A = [State = Retur ned])@AA
W S O I  select Reply(W S O I = [State = Denied])@SS −−−−−−−−−−−−→ W S O I : Completed,
→ W S O I : Denied, e f f ectcompleted W S O I
C A  denied(W S O, qos)@WSOI, C A  completed(W S O, qos, ops)@WSOI.
is the rule for WSOI to reject the request. And the following Where (∀A A ∈ get A As(W S O I ))
rule is for WSOI to accept the request. get A AState(A A) = Retur ned and
W S O I : W aiting, e f f ectcompleted W S O I = set A(completedW S O I U ),
W S O I  select Reply(W S O I = and
[State = Granted])@SS completedW S O I U = W S O I {
−−−−−−−−−−→ get W S O Req(W S O I ) = W S O Req,
e f f ectgranted W S O I get State(W S O I ) = Completed,
W S O I : Granted, get Out put Parameter s(W S O I )
C A  granted(W S O, qos)@WSOI, = W S O I − Out put ParametersGenerate(W S O I ),
(∀A A ∈ get A As(W S O I ))A A  invoke()@WSOI. ∀A A ∈ get A As(W S O I ){
Where e f f ectgranted W S O I =set A(grantedW S O I U ), and get A AQoS(A A) = qos A A ,
grantedW S O I U = W S O I { get I nput Parameter s(A A) = i ps A A ,
get W S O Req(W S O I ) = W S O Req, get Out put Parameter s(A A)

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
122 IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, VOL. 13, NO. 1, MARCH 2016

= Results Fr omW S(A A), The following is the transition rule for WS to accept an invo-
get A AState(A A) = Retur ned, cation from an AA: when a WS receives an invoke request mes-
get W S O I I d(A A) = αcl , sage from its binding AA, it will do some inner computations
get W S(A A) = ws, and send an invokeReply reply message to its binding AA.
get A AN ame(A A) = aa N ame}}, W S : W SState, W S  invoke(i ps)@AA
where Results Fr omW S(A A) denotes the results after → W S : W SState , A A  invoke Reply(ops)@WS.
a WS invocation, W S O I − Out put ParametersGenerate Definition 4.17 (QoS-aware WSO Behavior): A system S
(W S O I ) denotes output parameters generation of WSOI from has QoS-aware WSO Behavior, with respect to architecture as
the AAs. Fig. 2 shows and actors WSOIM, WSOI, AAs, WSes, SS, if
When a WSOI in a state Servicing receives a notification (1) for C in S, states of actors in C are just in accordance
message from an AA, if there is an AA included in the WSOI with definitions of states of actors; (2) for C in S, messages
is not in state Retur ned, then the WSOI will keep the state in C are just as Table I define; (3) for every computation π
Servicing. in S, π obeys the transition rules defined for WSOIM, WSOI
W S O I : Servicing, and AA.
W S O I  noti f y(A A = [State = Retur ned])@AA Theorem 4.2 (System2Behavior): If a system S has QoS-
→ W S O I : Servicing. aware WSO Behavior as Definition 4.17 defines, Then S is a
Where (∃A A ∈ get A As(W S O I ))get A AState(A A) = QoS-aware WSO System as Definition 4.16 defines.
Retur ned. Proof: By the states definition of actors WSOIM, WSOI,
The following is the transition rule for SS to process request AAs, WSes, SS, message definitions as Table I defined and the
from WSOI: when the SS receives a select request message transition rule defined for WSOIM, WSOI and AA, we can see
from a WSOI, then a reply message selectReply will be sent to that(1)φW S O I (S) and φW W (S) hold; (2) for C ∈ S, if there is an
the WSOI for denying the request or granting the request. undelivered request W S O Req, a new WSO instance W S O I is
SS : SSState, assured to be created. 
SS  select (qos, W S O)@WSOI
Theorem 4.3 (Service2Behavior): If a system S has QoS-
→ SS : SSState ,
aware WSO Behavior as Definition 4.17 defines, then S pro-
(W S O I  select Reply
vides QoS-aware WSO Service as defined in Definition 4.3.
(W S O I = [State = Denied])@SS
or W S O I  select Reply Proof: By Theorem 4.1 and Theorem 4.2. 
(W S O I = [State = Granted])@SS).
The followings are the transition rules for AA. D. Behavior of QoS-Aware BookStore WSO
(1) Rule for AA to process request from WSOI: an AA in The behavior of QoS-aware BookStore WSO in Fig. 1 is
a state Pr eparing receives a request message invoke from embodied by the following transition rules as Fig. 5 shows.
its WSOI, then it will be in a new state I nvoking, send an (1) This is the transition rule for the WSOIM accepting the
invokeAck reply message to the WSOI, and send an invoke request,
request message to its binding WS. W S O I M : W S O I M State,
A A : Pr eparing, W S O I M  wsoReq(αcl , W S O, qos, i ps)@CA
A A  invoke()@WSOI −−−−−−−−−→ W S O I M : W S O I M State ,
→ A A : I nvoking, e f f ectnewW S O I
W S O I  invoke Ack()@AA, W S  invoke(i ps)@AA. SS  select (qos, W S O)@WSOI.
(2) Rule for AA to process reply from WS: when an AA in W S O I is a BookStore WSOI, and
a state I nvoking receives an invokeReply reply message from (2) is the transition rule for rejecting the WSOI,
its binding WS, it will be in a new state Retur ned and send a SS : SSState,
notify notification message to its WSOI. SS  select (qos, W S O)@WSOI
A A : I nvoking, A A  invoke Reply(ops)@WS → SS : SSState ,
−−−−−−−−−→ A A : Retur ned, (W S O I  select Reply
e f f ectr etur ned A A (W S O I = [State = Denied])@SS).
W S O I  noti f y(A A = [State = Retur ned])@AA. W S O I is the BookStore WSOI, and
Where e f f ectr etur ned A A = set A(r etur ned A AU ), and (3) is the transition rule for notifying the reject message to
r etur ned A AU = A A{ CA,
get A AQoS(A A) = qos A A , W S O I : W aiting,
get I nput Parameter s(A A) = i ps A A , W S O I  select Reply(W S O I = [State = Denied])@SS
get Out put Parameter s(A A) = Results Fr omW S(A A), → W S O I : Denied,
get A AState(A A) = Retur ned, C A  denied(W S O, qos)@WSOI.
get W S O I I d(A A) = αcl , W S O I is the BookStore WSOI.
get W S(A A) = ws, get A AState(A A) = aa N ame}, Or the request is accepted,
where Results Fr omW S(A A) denotes the results after a WS (1) is the transition rule for the WSOIM accepting the
invocation. request,

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
WANG: A FORMAL MODEL OF QoS-AWARE WEB SERVICE ORCHESTRATION ENGINE 123

W S O I M : W S O I M State, Calculatethe Price, Send Priceo f Books,


W S O I M  wsoReq(αcl , W S O, qos, i ps)@CA Get Payments, Shi pbyT rainor Shi pby Air }, and
−−−−−−−−−→ W S O I M : W S O I M State , (8) is the transition rule for WSOI to transit to the
e f f ectnewW S O I
“Completed” state,
SS  select (qos, W S O)@WSOI.
W S O I : Servicing,
W S O I is the BookStore WSOI, and
W S O I  noti f y(A A = [State = Retur ned])@AA
(2) is the transition rule for granting the WSOI,
−−−−−−−−−−−−→ W S O I : Completed,
SS : SSState, e f f ectcompleted W S O I
SS  select (qos, W S O)@WSOI C A  completed(W S O, qos, ops)@WSOI.
→ SS : SSState , W S O I is the BookStore WSOI,
W S O I  select Reply A A ∈ {Send Listo f Books, ReceiveSelected Books,
(W S O I = [State = Granted])@SS). Calculatethe Price, Send Priceo f Books,
W S O I is the BookStore WSOI, and Get Payments, Shi pbyT rainor Shi pby Air }.
(3) is the transition rule for creating and invoking the AAs, Naturally, QoS-aware BookStore WSO has QoS-aware
W S O I : W aiting, W S O I WSO behavior, and further provides QoS-aware WSO Service
 select Reply(W S O I = [State = Granted])@SS according to Theorem 4.3.
−−−−−−−−−−→
e f f ectgranted W S O I
W S O I : Granted, C A  granted(W S O, qos)@WSOI, VII. C ONCLUSIONS AND F UTURE W ORKS
(∀A A ∈ get A As(W S O I ))A A  invoke()@WSOI. In this paper, we have discussed issues on QoS-aware WSO
W S O I is the BookStore WSOI, and design a typical QoS-aware WSO engine called QoS-
A A ∈ {Send Listo f Books, ReceiveSelected Books, WSOE. Mainly, a formal model of QoS-WSOE based on actor
Calculatethe Price, Send Priceo f Books, systems theory is established. In the formal model, a three-
Get Payments, Shi pbyT rainor Shi pby Air }, and layered pyramidal structure is adopted to capture the require-
(4) is the transition rule for invoking the AAs, ments of the customers with a concept named QoS-aware WSO
A A : Pr eparing, Service, characteristics of QoS-WSOE with a concept named
A A  invoke()@WSOI QoS-aware WSO System, and behaviors of QoS-WSOE with a
→ A A : I nvoking, W S O I  invoke Ack()@AA, concept named QoS-aware WSO Behavior and a fine relation-
W S  invoke(i ps)@AA. ship among these three layers is established. I hope this paper
W S O I is the BookStore WSOI, can be a guidance for implementing a real QoS-aware WSO
A A ∈ {Send Listo f Books, ReceiveSelected Books, Engine with correctness assurance.
Calculatethe Price, Send Priceo f Books, In future, a more practical WSO engine including more
Get Payments, Shi pbyT rainor Shi pby Air }, properties, such as security, will be pursued.
W S = get W S(A A), and
(5) is the transition rule for AAs to receive the invoking
reply, VIII. A PPENDIX
W S : W SState, W S  invoke(i ps)@AA T HE B OOK S TORE WSO D ESCRIBED BY WS-BPEL
→ W S : W SState , A A  invoke Reply(ops)@WS.
A A ∈ {Send Listo f Books, ReceiveSelected Books,
Calculatethe Price, Send Priceo f Books, process name=“BookStore”
Get Payments, Shi pbyT rainor Shi pby Air }, targetNamespace=“http://example.wscs.com
W S = get W S(A A), and /2011/ws-bp/bookstore”. . .
(6) is the transition rule for AAs to end the invoking, partnerLinks
A A : I nvoking, A A  invoke Reply(ops)@WS partnerLink name=“BSAndBA”. . . /
−−−−−−−−−→ A A : Retur ned, partnerLink name=“BSAndRC”. . . /
e f f ectr etur ned A A
partnerLink name=“BSAndAC”. . . /
W S O I  noti f y(A A = [State = Retur ned])@AA.
/partnerLinks
W S O I is the BookStore WSOI,
variables
A A ∈ {Send Listo f Books, ReceiveSelected Books,
variable name=“RequestListofBooks”
Calculatethe Price, Send Priceo f Books,
messageType=“lns:requestListofBooks”/
Get Payments, Shi pbyT rainor Shi pby Air },
variable name=“RequestListofBooksResponse”
W S = get W S(A A), and
messageType=“lns:requestListofBooksResponse”/
(7) is the transition rule for AAs to transmit the reply to
variable name=“ListofBooks”
WSOI,
messageType=“lns:listofBooks”/
W S O I : {Granted, Servicing},
variable name=“ListofBooksResponse”
W S O I  invoke Ack()@AA
messageType=“lns:listofBooksResponse”/
→ W S O I : Servicing.
variable name=“SelectListofBooks”
W S O I is the BookStore WSOI,
messageType=“lns:selectListofBooks”/
A A ∈ {Send Listo f Books, ReceiveSelected Books,
variable name=“SelectListofBooksResponse”

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
124 IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, VOL. 13, NO. 1, MARCH 2016

messageType=“lns:selectListofBooksResponse”/ receive
variable name=“Price” partnerLink=“BSAndBA”
messageType=“lns:price“/ portType=“lns:bookStore4BuyerAgent-
variable name=“PriceResponse” Interface”
messageType=“lns:priceResponse”/ operation=“opPays” variable=“Pays”
variable name=“Pays” /receive
messageType=“lns:pays”/ reply
variable name=“PaysResponse” partnerLink=“BSAndBA”
messageType=“lns:paysResponse”/ portType=“lns:bookStore4BuyerAgent-
variable name=“ShipmentByTrain” Interface”
messageType=“lns:shipmentByTrain”/ operation=“opPays”
variable name=“ShipmentByTrainResponse” variable=“PaysResponse”
messageType=“lns:shipmentByTrainResponse”/ ifcondition getVariable(’Price’)
variable name=“ShipmentByAir”  100 /condition
messageType=“lns:shipmentByAir”/ invoke
variable name=“ShipmentByAirResponse” partnerLink=“BSAndAC”
messageType=“lns:shipmentByAirResponse”/ portType=“ans:airlineCorp4BookStore-
/variables Interface”
sequence operation=“opShipmentByAir”
receive inputVariable=“ShipmentByAir”
partnerLink=“BSAndBA” outputVariable=“ShipmentByAirResponse”
portType=“lns:bookStore4BuyerAgent- else
Interface” invoke
operation=“opRequestListofBooks” partnerLink=“BSAndRC”
variable=“RequestListofBooks” portType=“rns:railwayCorp4BookStore-
createInstance=“yes” Interface”
/receive operation=“opShipmentByTrain”
invoke inputVariable=“ShipmentByTrain”
partnerLink=“BSAndBA” outputVariable=“ShipmentByTrain-
portType=“bns:buyAgent4BookStore- Response”
Interface” /else/if
operation=“opReceiveListofBooks” /sequence
inputVariable=“ListofBooks” /process
outputVariable=“ListofBooksResponse”
/invoke
R EFERENCES
receive
partnerLink=“BSAndBA” [1] Active Endpoints. (2011). Active BPEL [Online]. Available:
http://www.activevos.com/
portType=“lns:bookStore4BuyerAgent- [2] M. Coabano, E. Denti, A. Ricci, and M. Viroli, “Designing a BPEL
Interface” orchestration engine based on ReSpecT tuple centres,” in Proc. 4th
operation=“opSelectListofBooks” Int. Workshop Found. Coord. Lang. Softw. Archit. (FOCLASA), 2005,
pp. 139–158.
variable=“SelectListofBooks” [3] M. Viroli, E. Denti, and A. Ricci, “Engineering a BPEL orchestration
/receive engine as a multi-agent system,” in Proc. 4th Int. Workshop Found.
reply Coord. Lang. Softw. Archit. (FOCLASA), 2005, pp. 226–245.
[4] W. Chen, J. Wei, G. Wu, and X. Qiao, “On the move to meaningful
partnerLink=“BSAndBA” internet systems: OTM 2008,” in Developing a concurrent service orches-
portType=“lns:bookStore4BuyerAgent- tration engine based on event-driven architecture. Berlin Heidelberg:
Interface” Springer, 2008, vol. 5331, pp. 675–690.
[5] C. Mahmoudi and F. Mourlin, “Web service orchestration driven by
operation=“opSelectListofBooks” formal specification,” in Proc. 7th Int. Conf. Syst. (ICONS’12), 2012,
variable=“SelectListofBooksResponse” pp. 116–122.
/reply [6] D. Kovač and D. Trček. (2013). A Survey of Web Services
Orchestration and Choreography With Formal Models [Online].
!–inner activity: calculate the price Available: http://www.softec.si/pdf/kovac-damjan.survey.pdf
of selected books– [7] G. Agha, “Actors: A model of concurrent computation in distributed sys-
invoke tems,” Ph.D. dissertation, MIT Lab. Comput. Sci., Cambridge, MA, USA,
1986.
partnerLink=“BSAndBA” [8] G. Agha, T. Prasanna, and Z. Reza, “Actors: A model for reasoning about
portType=“bns:buyAgent4BookStore- open distributed systems,” in Formal Methods for Distributed Processing:
Interface” A Survey of Object-Oriented Approaches. Cambridge, U.K.: Cambridge
Univ. Press, 2001.
operation=“opReceivePrice” [9] M. C. Astley, “Customization and composition of distributed objects:
inputVariable=“Price” Policy management in distributed software architectures,” Ph.D. dis-
outputVariable=“PriceResponse” sertation, Dept. Comput. Sci., Univ. Illinois at Urbana-Champaign,
Champaign, IL, USA, 1999.

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.
WANG: A FORMAL MODEL OF QoS-AWARE WEB SERVICE ORCHESTRATION ENGINE 125

[10] J. Cámara et al., “Formalizing WSBPEL business processes using process [28] D. Nagamouttou, I. Egambaram, M. Krishnan, and P. Narasingam, “A
algebra,” Electron. Notes Theor. Comput. Sci., vol. 154, no. 1, pp. 159– verification strategy for web services composition using enhanced stacked
173, 2006. automata model[J],” SpringerPlus, vol. 4, no. 1, pp. 1–13, 2015.
[11] L. Clement, A. Hately, and C. Riegen, “UDDI version 3.0.2,” OASIS [29] C. A. Ardagna, R. Jhawar, and V. Piuri, “Dependability certification of
Draft, 2004. services: A model-based approach,” Computing, vol. 97, no. 1, pp. 51–78,
[12] R. Chinnici et al., Web Services Description Language (WSDL) Version 2015.
2.0—Part 1: Core Language, W3C Recommendation, 2007. [30] D. C. Sturman, “Modular specification of interaction policies in dis-
[13] S. Frølund, Coordinating Distributed Objects: An Actor-Based Approach tributed computing,” Ph.D. dissertation, Dept. Comput. Sci., Univ.
to Synchronization. Cambridge, MA, USA: MIT Press, 1996. Illinois at Urbana-Champaign, Champaign, IL, USA, 1996.
[14] C. Hewitt, “View control structures as patterns of passing messages,” [31] S. Thatte. (2001). XLANG: Web services for busi-
J. Artif. Intell., vol. 8, no. 3, pp. 323–346, 1977. ness process design. Microsoft. [online]. Available:
[15] M. W. Jang, “Efficient communication and coordination for large-scale http://www.gotdotnet.com/team/xml_wsspecs/xlangc/default.htm
multi-agent systems,” Ph.D. dissertation, Dept. Comput. Sci., Univ. [32] C. A. Varela, “Worldwide computing with universal actors: Linguistic
Illinois at Urbana-Champaign, Champaign, IL, USA, 2006. abstractions for naming, migration, and coordination,” Ph.D. dissertation,
[16] D. Jordan and J. Evdemon, Web Services Business Process Execution Dept. Comput. Sci., Univ. Illinois at Urbana-Champaign, Champaign, IL,
Language Version 2.0, OASIS Standard, wsbpel-v2.0-OS, 2007. USA, 2001.
[17] N. Kavantzas et al., Web Services Choreography Description Language [33] N. Venkatasubramanian, “An adaptive resource management architecture
Version 1.0, W3C Candidate Recommendation, 2005. for global distributed computing,” Ph.D. dissertation, Dept. Comput. Sci.,
[18] F. Leymann. (2001). Web services flow language, web Univ. Illinois at Urbana-Champaign, Champaign, IL, USA, 1998.
page [online]. 30(2), 95–102. Available: http://www- [34] N. Venkatasubramanian, C. Talcott, and G. Agha, “A formal model for
4.ibm.com/software/solutions/webservices/pdf/WSFL.pdf reasoning about adaptive QoS-enabled middleware,” ACM Trans. Softw.
[19] K. Lee et al., “QoS for web services: Requirements and possible Eng. Methodol., vol. 13, no. 1, pp. 86–147, 2004.
approaches,” W3C Notes, 2003. [35] P. Wohed et al., “Analysis of web service composition languages: The
[20] A. Lapadula, R. Pugliese, and F. Tiezzi, “A calculus for orchestration of case of BPEL4WS,” Comput. Sci., vol. 4421, pp. 33–47, 2007.
web services,” Comput. Sci., vol. 4421, pp. 33–47, 2007. [36] T. Yu, Y. Zhang, and K. Lin, “Efficient algorithms for web services selec-
[21] A. Mani and A. Nagarajan, “Understanding quality of service for web tion with end-to-end QoS,” ACM Trans. Web, vol. 1, no. 1, pp. 1–26,
services,” IBM developerWorks, 2002. 2007.
[22] N. Mitra and Y. Lafon, SOAP Version 1.2—Part 0: Primer, 2nd ed., W3C [37] L. Zeng and B. Benatallah, “QoS-aware middleware for web services
Recommendation, 2007. composition,” IEEE Trans. Softw. Eng., vol. 30, no. 5, pp. 311–327, May
[23] C. Pelz, “Web services orchestration and choreography,” IEEE Comput., 2004.
vol. 36, no. 10, pp. 46–52, Oct. 2003.
[24] G. G. Pu et al., “Towards the semantics and verification of BPEL4WS,”
Electron. Notes Theor. Comput. Sci., vol. 151, no. 2, pp. 33–52, 2006. Yong Wang received the Ph.D. degree from Beihang
[25] A. Lapadula, R. Pugliese, and F. Tiezzi, “Using formal methods to Univiersity, Beijing, China. He is an Associate
develop WS-BPEL applications,” Sci. Comput. Programm., vol. 77, no. 3, Professor with the College of Computer Science
pp. 189–213, 2012. and Technology, Beijing University of Technology,
[26] C. Dumez, M. Bakhouya, J. Gaber, M. Wack, and P. Lorenz, “Model- Beijing, China. His research interests include dis-
driven approach supporting formal verification for web service composi- tributed computing and distributed systems.
tion protocols,” J. Netw. Comput. Appl., vol. 36, no. 4, pp. 1102–1115,
2013.
[27] Y. H. Ning, Y. Y. Du, and S. X. Yu, “Service compositon based on
enhanced logic petri nets,” J. Appl. Sci., vol. 14, no. 19, pp. 2246–2257,
2014.

Authorized licensed use limited to: Instituto Nacional De Telecomunicações (INATEL). Downloaded on August 05,2022 at 22:03:26 UTC from IEEE Xplore. Restrictions apply.

You might also like