lationSet is defined by 1) the primitive data type that
will be used and 2) the rule set (one per message type).
The correlationSet is associated with communication
activities. Each correlationSet can only be initialized
once and, if we use it in an Invoke, we have to define
when the Correlation is established: in the sending
operation, in response, or in both. The Correlation-
Sets property defines, through XPATH, the message
elements exchanged by processes that identifies each
conversation (i.e., each process instance).
The WS-BPEL standard supports extensibility, by
allowing namespace-qualified attributes to appear in
any WS-BPEL element and by allowing elements
from other namespaces to appear within WS-BPEL
defined elements. In addition, WS-BPEL provides
two explicit extension constructs: extensionAssign-
Operation and extensionActivity.
All extensions used in a process must be declared.
This statement is made by inserting into the Exten-
sions construct language the namespaces associated
with the extensions and the MustUnderstand attribute
with the value yes or no, which states whether the pro-
cess execution engine has to support the extension.
There are two different options to realize an ex-
tension (Kopp et al., 2011). With a ”BPEL Language
Transformation”, extension constructs are translated
into standard BPEL constructs. The generated stan-
dard BPEL code can be deployed on a process execu-
tion engine that ignores the extension. With the other
option, the ”BPEL runtime engine”, the extension is
realized by changing the process execution engine in
order to support the additional functionalities.
3.5 XSL Transformations
Extensible Stylesheet Language Transformations
(XSLT) (Clark et al., 2007) is a specification that de-
fines the syntax and semantics of a language to trans-
form and render XML documents. XSLT is designed
for use as part of the Extensible Stylesheet Language
(XSL), which is a style language for XML. XSL in-
cludes an XML vocabulary to specify formatting and
uses XSLT to describe the document transformation.
4 RELATED WORK
In our work, we use context with the same meaning
as George et al. (George and Ward, 2008; George,
2008). These authors define context as an environ-
ment state, which is external to the process, whose
value can change independently of the process lifecy-
cle, and can influence process execution.
Traditionally, context information is obtained ac-
cording to a synchronous request/response paradigm,
and business processes use it in predefined points.
They use context information to: (i) determine the ser-
vices that compose processes (Yu and Su, 2009), (ii)
choose between multiple implementations for a spe-
cific service (Ranganathan and McFaddin, 2004), or
(iii) determine whether a service should participate in
future compositions (Karastoyanova et al., 2005).
In (Wieland et al., 2007), the authors propose an
extension to WS-BPEL, named Context4BPEL, in or-
der to explicitly model how context influences work-
flows. The Context4BPEL is defined according to the
WS-BPEL extension mechanisms. This extension in-
cludes mechanisms to: (1) manage context events to
allow the asynchronous reception of events; (2) query
context data, and (3) evaluate transition conditions
based on context data. However, Context4BPEL is
realized as a ”BPEL Runtime Extension” and conse-
quently also needs that the process execution engine
supports it. In addition, the context information man-
agement depends on the Nexus platform.
In (Wieland et al., 2009), the authors propose
a WS-BPEL extension that includes reference vari-
ables. With this kind of variables, the services can
exchange pointers to variables instead of their val-
ues. Pointers are represented with EPRs. Accord-
ing to the value of an attribute of the extension, ref-
erences are evaluated (1) upon activation of Scope,
(2) before variables are used, (3) periodically, or (4)
through an event sent from a external service. This ex-
tension is realized as a ”BPEL Language Transforma-
tion”, replacing references with WS-BPEL variables,
inserting links to partners and interaction activities.
The type (4) of references evaluation is similar to our
work: the transformation adds a constructor onEvent
to the process definition. However, these authors do
not state how the external service addresses the event
to the onEvent web service. Additionally, references
evaluation depends on the RRS Service (Reference
Resolution Service), a specific service available on
the platform the authors propose.
George et al. (George and Ward, 2008; George,
2008) also propose a solution based on context vari-
ables. These authors extend WS-BPEL by adding
new attributes to variables. However, the process def-
inition must also contain explicitly the Invoke oper-
ation to realize the subscription. To realize the ex-
tension, they use a ”BPEL Runtime Extension” op-
tion, by changing the process execution engine, and
they distinguish process instances through the Muse
Apache platform (Apache Muse, 2013).
InternetofThingsAwareWS-BPELBusinessProcess
507