<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Analysis of Non-Functional Service Properties for Transactional Workflow Management</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Katharina Hahn</string-name>
          <email>khahn@mi.fu-berlin.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Heinz Schweppe</string-name>
          <email>schweppe@mi.fu-berlin.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute for Mathematics and Computer Science, Freie Universit ̈at Berlin</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>With the encapsulation of functionality in services, many applications are nowadays built on composite Web-Services. Those are specified using workflow execution languages, such as BPEL, which represent the structure of the composition. However, they do not integrate transactional guarantees such as failure-atomicity. It is up to the application designer to define appropriate failure handling mechanisms. Transactional coordination specified for Web-Services lacks the possibility to map structural patterns of the execution semantics. In this paper, we analyze workflow patterns in the presence of non-functional (especially transactional) properties of services in order to provide appropriate forwardand backward recovery mechanisms. We identify workflow adaptations to support transactional execution in the presence of dynamic service binding. This is done by adapting the structure of the workflow and identifying non-functional preference relations for service alternatives.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Web-Services (WS) allow for applications to be built upon heterogeneous and
possibly distributed components connected through standard protocols.
Encapsulation of functionality whose implementation is transparent through a
standardized interface supports reusability and interoperability between different
soft- and hardware platforms. Assembling different services allows for new
valueadded composite services. Their composition and thus their structure is defined
through the arrangement of services in workflows. Especially through the
possibly physical distribution of several services, it is indispensable to be able to cope
with failures of different kinds to guarantee correct execution. This implies the
assurance, that the workflow will not result in any inconsistent state, which
cannot be healed. Failure handling is either done through forward-recovery by still
allowing the workflow to successfully complete or backward-recovery by resetting
the system to a previously consistent state.</p>
      <p>Workflow execution and transactional coordination for WS have often been
two separate concerns. The execution of workflows is usually defined in BPEL,
and controlled by workflow engines (e.g. [1]). Those provide support for the
design, execution, visualization and analysis of workflows but do not support
transactional guarantees. Transactional coordination has been specified by the
WS-Transaction Framework WS-Tx [13] which offers means for coordination
of different services. It specifies two different coordination types for short- and
long-running activities. As blocking situations are to be avoided especially for
long-running business activities, relaxed atomicity requirements and convenient
backward-recovery mechanisms are employed to guarantee consistent execution.
As with most advanced transaction models (ATM) proposed for asynchronous
and decentralized transaction processing, WS-Tx lacks the flexibility to map
different structural patterns to different transaction semantics.</p>
      <p>By considering non-functional (i.e., in this context transactional ) properties of
WS, transactional coordination of services can be reasonably integrated with
workflow management. Gaaloul et al. [9] employ an event-calculus to verify
transactional behavior of composite WS. Transactional properties of services,
such as compensatability and redoability, are used to formally model their
behavior. Normal execution dependencies between services which represent their
correlation as well as transactional dependencies to model situations in which
failures occur are used to validate the execution of the workflow. If the validation
fails, the designer is asked to alter or add constraints until consistent execution
can be guaranteed. While this verification is indispensable for correct workflow
execution, it is statically done before or after the execution. However, this limits
the visions and possibilities of workflow engines to dynamically bind services at
runtime. Dynamical changes of the workflow during runtime are not captured.
Our contribution is the analysis of transactional workflow patterns along with
transactional service properties. We are thereby able to provide means for
transactional workflow execution: By adapting the structural design of the workflow
according to the deployed scenario, we ensure correct execution in the presence
of dynamic service binding. Thus, we integrate forward-recovery by substitution
of services with different transactional properties at runtime. This increases the
chances of successful execution in case of failure. Additionally, we illustrate the
influence of transactional properties on the preference relation of services.</p>
      <p>We will recurrently refer to the following application scenario of a travel
agency. As a special offer, the agency promotes a trip to Berlin, including
transportation to Berlin, accommodations and ticket reservation for the Blue Man
Group BMG (www.blueman.com).</p>
      <p>Accomodation
Transportation</p>
      <p>BMG-Ticket</p>
      <p>Reservation
CRS</p>
      <p>AND
split</p>
      <p>AND
join</p>
      <p>Confirm</p>
      <p>XOR
split</p>
      <p>PayCC
PayCh</p>
      <p>The workflow of the agency, as created by the designer, is shown in Figure 1.
At first, a customer is asked to specify its requests (CRS ), i.e. date of the trip,
number of travelling persons and other personal preferences. The workflow then
parallely (intended by the AND-split) books Accommodation(s), Transportation
to Berlin and back, and reserves tickets for the BMG show (BMG-Ticket
Reservation). The threads are then synchronized, and if all are completed, the
customer agrees on the legal terms and the booked tickets are printed (Confirm).
Finally, the payment is performed, either by credit card (PayCC ) or by cash
(PayCh). Note that this time, as intended by the XOR-split, one and only one
branch is supposed to complete. So far, the workflow specifies the execution of
services, but it does not yet define the behavior in the presence of any service
failure.</p>
      <p>The rest of the paper is structured as follows: In Section 2 related work is
presented. Section 3 contains the transactional model of service composition and
Section 4 the transactional guarantees. In Section 5 and 6 we present the results
of our analysis and their application. We conclude in Section 7.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>Many advanced transaction models (ATM) have been proposed which support
transactional processing in distributed and heterogeneous databases [14]. These
use less strict notions of atomicity and isolation in order to avoid blocking
situations. Although they are very powerful, they are not capable to integrate
structural requirements of complex applications in one transaction. Mobile
transaction models (such as [11, 16]), which are to be deployed in more volatile
environments, are able to cope with failures due to frequent disconnections. However,
they do not consider different structural patterns of cooperation of services as
well. Failure handling through forward-recovery and thus dynamic service
binding at runtime has been proposed, e.g. by [17]. But this concept focuses on one
specific failure situation to replace one service with another rather than ensuring
transactional execution of the whole workflow. Transactional service properties
are not considered.</p>
      <p>Fauvet et. al [8] propose a high level operator for composing Web-Services
according to transactional properties. Transactional execution relies on the
tentative hold protocol (THP). Services are distinguished according to their additional
capabilities: Support of 2PC, compensatability or neither. While this approach
is interesting and powerful it differs inherent in the examination of transactional
properties. Our work mainly differs in the approach, as we integrate transactional
composition in existing standards, such as workflow patterns.</p>
      <p>In order to verify the execution of Web-Service workflows, several formalisms
have been used, such as petri nets [12] or finite-state-machines [3]. These
introduce powerful means to formally verify the execution of composite Web-Services
but do not consider the possibility to dynamically adjust workflows at runtime.
Gaaloul et al. [9] use an event based-approach to model transactional
composite services. As it provides suitable means to specify transactional behavior, we
use this formalism in our work. However, this work does not explore dynamical
adaptations of the workflow.</p>
      <p>Dynamic service binding can only be performed if services can be discovered
and matched at runtime. We refer to existing approaches, such as UDDI or
group-based service discovery (GSD) [4] (an approach for discovering services in
mobile environments) for discovery and description languages such as OWL-S
[6] or Diane Service Description DSD [15] for matching.</p>
      <p>We also want to relate to the work done in the area of workflow scheduling,
which identifies the problem of finding correct execution sequences for workflow
activities, obeying inherent constraints, e.g. temporal or causality constraints
[2, 5]. Other approaches focus on minimizing communication costs or ensuring
prearranged QoS obligations defined in service level agreements [7]. As opposed
to those, our work focuses on the analysis in order to reschedule activities to
guarantee transactional correctness.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Transactional Composition of Services</title>
      <p>In this section, we specify the components of a transactional composite service
model. The model is used to illustrate the transactional behavior of services and
composite services to define the attempted transactional guarantees (Section 4).
It is based on the event-algebra presented in [9].
3.1</p>
      <sec id="sec-3-1">
        <title>Service Model</title>
        <p>In order to focus on its transactional behavior, a service is modeled as a
statemachine. Each service has at least the following states: initial, active, completed,
cancelled and failed. If a service can be compensated for, it also has a
compensated state, as for example in Figure 2. If a service is completed, then it
is successfully executed and its changes are visible. The states cancelled, failed
and compensated indicate, that service execution has not successfully completed,
thus no changes are made persistent.</p>
        <p>Transitions between these states are either internally or externally triggered.
Internal transitions (indicated by solid lines in Figure 2) are triggered through
the execution of the service itself, e.g. complete or fail. External transitions
(represented by dashed lines), e.g. activate, are triggered by an external entity,
such as another service, the workflow management system or the application.</p>
        <p>Initial</p>
        <p>Completed
activate
cancel
Cancelled</p>
        <p>Active
fail
complete
redo
Failed
compensate
Compensated
Composite services (e.g., our example in Figure 1) consist of a set of component
services and a set of axioms which defines their correlation. It has to be stated
which event triggers the activation of each service but additionally what happens
in case services fail. Regular execution is defined by normal execution
dependencies, i.e. the completion of a service triggers the activation of another. In Figure
1, normal execution dependencies between CRS and all services within the
ANDpattern (Transportation, Accommodation and BMG-Ticket Reservation) exist,
as the completion of CRS triggers the activation of those.</p>
        <p>Additionally, failure handling mechanisms, such as executing an alternative,
cancelling or compensating for a service have to be explicitly specified. Those are
referred to as transactional execution dependencies. In our example, the failure of
any service within the AND-pattern triggers the cancellation of the other services
within the pattern. As those should either all be completed or none. Additionally,
PayCh is an alternative for PayCC, if PayCC fails. So far, it is up to the designer,
to explicitly define failure handling for each situation. Through the analysis of
workflow patterns in the presence of transactional service properties, we want
to automate this process.
3.3</p>
      </sec>
      <sec id="sec-3-2">
        <title>Workflow Patterns</title>
        <p>Formally, a workflow pattern is a function that given a set of transactional
services returns a control flow [18]. In the following, we exemplary present three
common workflow patterns and their characteristics.1
SEQUENCE Two services arranged in sequence state that one service is
enabled after the completion of its preceding one. The invocation of both services is
done in a single control thread. Arranging services Si and Sj in sequence always
infers a normal execution dependency (see Section 3.2) between Si and Sj .
AND Using an And-split, the designer parallelizes the control flow. Contained
services are executed inependently from each other. The control flow is
synchronized at the join-point and the subsequent workflow is activated as soon as all
services have completed. In our example, Accomodation, Transportation and
BMG-Ticket Reservation are executed in parallel.</p>
        <p>XOR Based on any control data, one branch out of many is chosen to continue
the execution of the workflow. As these branches are never executed in parallel,
the workflow is continued as soon as one branch completes. Referring to our
example, PayCC and PayCh in the Xor pattern are alternatives. We will show
in Section 5, that transactional properties of services also influences the choice
of which one to prefer.</p>
        <p>The definition of these patterns does not initially specify any failure handling
yet. Transactional workflow patterns are workflow patterns which are augmented
with transactional dependencies as introduced in Section 3.2. We state, that if
transactional execution of the workflow is desired, that dependencies are to be
automatically added to workflow patterns. So far, in our example, cancellation
dependencies are to be added among the services in the AND-pattern
(Accommodation, Transportation and Ticket Reservation), as either all of them are to
1 Due to space limitations, we restrict the presentation to three patterns.
be completed or none. Considering the XOR-pattern, PayCh is to be specified as
an alternative for PayCC, so in case PayCC fails, PayCh is executed. However,
these transactional execution dependencies are also influenced by the
transactional properties of services which are specified in the following section.
3.4</p>
      </sec>
      <sec id="sec-3-3">
        <title>Transactional Service Properties</title>
        <p>In order to be able to decouple the completion of services in time, we regard the
following non-functional properties. We examine the transactional properties
that have been considered for flexible transactions. Additionally, we introduce
the property of consistent completion, that to the best of our knowledge, has not
been considered for transactional service composition so far.</p>
        <p>Compensatability A service S is considered to be compensatable (denoted as
S.comp = 1 and S.comp = 0 accordingly for non-compensatable services which
are sometimes referred to as pivot services) if there exists a service C which
semantically undoes the effects of S. A cancellation of a booked tour is the
compensating service for the booking itself. In the employed model,
compensatability is expressed through a compensate-transition and a compensated -state
(see Figure 2). Compensatability indicates, whether the effects of a service can
be undone after completion.</p>
        <p>Redoability A redoable service S (denoted as S.redo = 1) will definitely
complete if its activation is repeated a positive number of n times. This is e.g.
important, when considering the compensating service: Assuming the
compensatability of a service, it is also assumed, that the compensating action will
complete (i.e. not fail). Redoability of a service is modeled through a redo-transition
(see Figure 2). Once invoked the completion of the service can be guaranteed.
Through the inclusion of a service in the workflow, a designer states, whether
the completion of the service is inevitable for the completion of the workflow.
It is vice versa assumed, that a service is only allowed to be completed if the
workflow is completed. E.g., no hotel room is allowed to be booked, if the whole
trip is not booked. However, some services may allow for inconsistent
completion, i.e. they complete although the workflow may be cancelled. This is usually
given by the consistency demands or the semantics of the service. Consider e.g. a
printing service or a registration services at a conference: If the payment will not
be pursued two days after registration the latest, then the registration will be
deleted. We therefore introduce the following transactional property of services:
Consistent Completion A service S demanding consistent completion
(denoted as S.consCompl = 1) needs recovery in case the workflow is rolled back.
Thus, its completion infers the completion of the workflow.2 A service, that is
allowed to complete inconsistently (S.consCompl = 0) does not need recovery,
in case the workflow execution fails. Thus it states, whether the effects of a
service have to be undone after completion in case of backward-recovery.
2 The completion of the workflow does not infer completion of the service, as
alternatives might exist.</p>
        <p>
          Referring to our example of the travel agency, BMG-ticket reservation reserves
tickets for the show at a certain date. The tickets have to be picked up one hour
before the show starts at the latest. Otherwise, the reservation is deleted. As it
demands interaction outside the workflow, the completion of this service does
not necessarily need to be recovered in case the booking of the whole trip fails.
An arbitrary combination of these properties is possible, although the
compensatability of a service is disregarded in case of inconsistent completion. We denote
the transactional properties of a service as a triple PS defined as follows:
Accordingly, a service S with PS = (
          <xref ref-type="bibr" rid="ref1 ref1">0, 1, 1</xref>
          ) is a service which is not
compensatable, demands consistent completion and is redoable.
        </p>
        <p>These non-functional properties also influence the transactional dependencies
that are added to the workflow: A compensation dependency may only exist, if
the service is compensatable. Additionally, if a service does not need consistent
completion, a compensation depency is not needed.</p>
        <p>Based on the this model, we will now introduce the transactional guarantees
that we support when dealing with transactional workflows.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Transactional Model</title>
      <p>Blocking of resources is contra productive in the environment of loosely
coupled services. In order to avoid blocking situations, different notions of relaxed
atomicity e.g., semantic atomicity [10] and semi-atomicity [19], which allow
the commitment of subtransactions at different times have been proposed for
database transactions. Convenient backward-recovery mechanisms ensure that
already committed subtransactions are recovered in case of failure. In the model
of flexible transactions [19], semi-atomicity is validated by reviewing the order of
subtransactions according to their non-functional properties: The commitment of
compensatable subtransactions precedes the commitment of non-compensatable
subtransactions. As their commitment infers the commitment of the whole
transaction, it is only followed by redoable subtransactions.</p>
      <p>We adapt the model of semi-atomicity defined for flexible transactions and
extend it to comprise transactional workflow management. Through specifying
the workflow with accepted termination states (ATS), the designer implicitly
defines representational sets of services whose completion represents the successful
execution of the workflow. Note that multiple sets exists, as alternatives or
multiple ATS may exist, e.g. PayCC or PayCh in Figure 1. We aim at semi-atomic
execution of the workflow, which is according to the presented transactional
properties in Section 3.4 defined as follows.</p>
      <p>Semi-Atomicity Semi-Atomicity of a composite service whose execution is
represented by a workflow with defined ATS is ensured if
– either all services belonging to one valid execution path to an ATS are
completed and all services which are not included on that path and demand
consistent completion are not completed
– or no service demanding consistent completion is completed.</p>
      <p>This relaxes semi-atomicity as defined for flexible transactions as it disregards
backward-recovery for services which may complete inconsistently.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Effects of Transactional Properties</title>
      <p>In this section, we present the general effects, that transactional service
properties take on the workflow execution.</p>
      <p>Execution Order and Type Initially, the order of the execution is given
through the workflow pattern itself. However, depending on the services
involved, this given order endangers the semi-atomic execution as non-curable
failures might occur. Depending on the non-functional properties of the concrete
services, the order within a pattern can be sequential (i.e. Si before Sj ), parallel
or in any order (i.e. Si before Sj or Sj before Si but not parallel). The execution
type is either independent thus, no coordination has to take place, or
coordinated, indicating, that their execution has to be coordinated in a sub-transaction
(e.g., using 2PC) to guarantee that either all or none of them are completed.
Generally, we aim at independent execution trying to avoid blocking situations.
Recovery Mechanism When backward-recovery is pursued, the workflow
management system is in charge to take the appropriate measures. Those measures
are determined through transactional properties of the executed services which
indicate which services have to be compensated.</p>
      <sec id="sec-5-1">
        <title>Transactional Pattern Property In order to analyze the whole workflow,</title>
        <p>we group services being included in one pattern (indicated by dashed lines in
Figure 1) and regard the transactional properties of the pattern. Its properties
are derived by the properties of the included services.</p>
        <p>Let W P (S) be a workflow pattern, including the set of elements S.3 The
transactional properties of the pattern are denoted just as the transactional
service properties: W P (S).comp, W P (S).consCompl and W P (S).redo. According
to the transactional properties of included services, we introduce the derived
property of c-compensatability :
A pattern is regarded to be c-compensatable (denoted as W P (S).cComp = 1),
if all of the executed services which demand consistent completion are
compensatable and all contained patterns are c-compensatable. This states, whether a
pattern is backward-recoverable.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Analysis of Workflow Patterns</title>
      <p>In this section present our results of the analysis of transactional service
properties within the AND-pattern and the XOR-pattern.4
3 Elements of S are either services or contained patterns.
4 Due to space limitations, we omit the analysis results for other common patterns,
such as Sequence, OR and N-OUT-OF-M.
All services aggregated in an AND-pattern have to be completed in order activate
the subsequent workflow. Thus, the properties of all services are important.</p>
      <p>Initially, the execution of the included services is decoupled. If services
registered at runtime expose the following transactional properties, than their
execution has (as opposed to originally intended) be ordered 5 to preserve semi-atomic
execution. Recall, that the properties of a service S, are denoted as:</p>
      <p>PS = (S.comp, S.consCompl, S.redo)</p>
      <p>
        If within the AND-pattern, there exists
1. at least one non-redoable service Si with PSi = (∗, ∗, 0) and one service Sj
with PSj = (
        <xref ref-type="bibr" rid="ref1 ref1">0, 1, 1</xref>
        ),
2. or if there is at least one service Si with PSi = (∗, 0, 0) and one
noncompensatable service Sj with PSj = (0, 1, ∗),
3. or if there is at least one compensatable, non-redoable service Si with PSi =
(1, ∗, 0) and one non-compensatable service with PSj = (0, 1, ∗)
then, the execution of Si has to precede the execution of Sj (Si → Sj ). Otherwise,
in case Sj completes but Si fails, the semi-atomicity of the workflow is harmed
as in all stated cases, Sj cannot be recovered.
      </p>
      <p>
        If at least two included services Si and Sj are non-compensatable, need
consistent completion and are not redoable: PSi = PSj = (
        <xref ref-type="bibr" rid="ref1">0, 1, 0</xref>
        ) then their
execution has to be coordinated within a subtransaction. Otherwise, in case of failure
of one and completion of the other, the workflow is in an inconsistent execution
state which cannot be recovered.
      </p>
      <p>The transactional property of the AND-pattern is determined through the
transactional properties of all included services. The AND-pattern W PAND
– is compensatable, if and only if all included services are compensatable:</p>
      <p>W PAND(S).comp = 1 ⇔ ∀Si ∈ S : Si.comp = 1
– needs consistent completion, as soon as one service needs consistent
completion: W PAND(S).consCompl = 1 ⇔ ∃Si ∈ S : Si.consCompl = 1
– is redoable, if all included services are redoable:</p>
      <p>W PAND(S).redo = 1 ⇔ ∀Si ∈ S : Si.redo = 1
– c-compensatable, if all included services are either compensatable or allow
for inconsistent completion:</p>
      <p>W PAND(Si).cComp = 1 ⇔ ∀Si ∈ S : Si.comp = 1 ∨ Si.consCompl = 0
If the pattern in c-compensatable, then all services which demand consistent
completion are compensatable.</p>
      <p>
        Consider again our example (Figure 1). Assume CRS and Conf irm are local
services with PCRS = PConfirm = (
        <xref ref-type="bibr" rid="ref1 ref1 ref1">1, 1, 1</xref>
        ). Additionally, a transportation service
T with PT = (
        <xref ref-type="bibr" rid="ref1">0, 1, 0</xref>
        ) and ticket reservation R with PR = (0, 0, 0) are bound.
5 Ordering prevents coordination in a sub-transaction (and thus blocking).
According to the previous analysis (case 2), the completion of R has to precede T
to ensure semi-atomicity. Considering PP ayCC = (
        <xref ref-type="bibr" rid="ref1 ref1">1, 1, 0</xref>
        ) and PP ayCh = (
        <xref ref-type="bibr" rid="ref1 ref1 ref1">1, 1, 1</xref>
        ),
the XOR-pattern is redoable, although PayCC is not redoable.
      </p>
      <p>
        The accommodation-service A is discovered at runtime. Consider the
following alternatives: A1 with PA1 = (
        <xref ref-type="bibr" rid="ref1 ref1">0, 1, 1</xref>
        ), A2 with PA2 = (
        <xref ref-type="bibr" rid="ref1 ref1">1, 1, 0</xref>
        ) and A3 with
PA3 = (
        <xref ref-type="bibr" rid="ref1">0, 1, 0</xref>
        ). Considering those, the following modifications of the workflow
are performed: If A1 is included, T and A1 are aligned in sequence due to the
first case of the ordering constraints of the AND-pattern (Figure 3.a). If A2
registeres at runtime, then the execution of T and A2 is parallelized, as shown in
Figure 3.b. If service A3 is included, then a sub-transaction coordinating T and
A3 will be necessary (as stated in the analysis) to preserve semi-atomicity .
a)
b)
      </p>
      <p>CRS
CRS</p>
      <p>R
AND</p>
      <p>T</p>
      <p>A2
R</p>
      <p>T</p>
      <p>A1</p>
      <p>Confirm
AND
As opposed to the AND-pattern, one and only one service of the XOR-pattern
is completed. For the following analysis, we consider alternatives of services. I.e.,
we disregard situations, in which the choice is not dependent on transactional
properties rather than other criteria.</p>
      <p>The type and order of the XOR-pattern is not changed through dynamically
bound services as only one service is executed at time. The transactional pattern
properties are determined differently than for an AND pattern. As it cannot be
previously to execution stated which service will complete, the pattern properties
can only be previously determined for the following (not all) cases. Otherwise
they cannot be determined until execution. The XOR-pattern
– is compensatable, if all included services are compensatable. It is
non-compensatable, if all included services are non-compensatable.</p>
      <p>W PXOR(S).comp = 1 ⇐ ∀Si ∈ S : Si.comp = 1</p>
      <p>W PXOR(S).comp = 0 ⇐ ∀Si ∈ S : Si.comp = 0
– needs consistent completion, if all included services demand consistent
completion. If none of the included services demands consistent completion, the
pattern allows for inconsistent completion.</p>
      <p>W PXOR(S).consCompl = 1 ⇐ ∀Si ∈ S : Si.consCompl = 1</p>
      <p>W PXOR(S).consCompl = 0 ⇐ ∀Si ∈ S : Si.consCompl = 0
– is redoable, if at least one service is redoable. Else, it is non-redoable.</p>
      <p>W PXOR(S).redo = 1 ⇔ ∃Si ∈ S : Si.redo = 1
– is c-compensatable, if all included services are either compensatable or allow
for inconsistent completion.</p>
      <p>W PXOR(S).cComp = 1 ⇐ ∀Si ∈ S : Si.Comp = 1 ∨ Si.consCompl = 0
W PXOR(S).cComp = 0 ⇐ ∀Si ∈ S : Si.comp = 0 ∧ Si.consCompl = 1
The recovery mechanisms to be taken are determined through the executed
service. If the pattern is c-compensatable, then it is backward-recoverable.</p>
      <p>
        According to the workflow, transactional properties of services can be used
to determine a preference relation on which service to include in the
XORpattern. Consider for example Figure 4: At runtime, either branch Si or Sj are
to be taken within the XOR-pattern, before the subsequent workflow Ssubseq
is invoked. Let the transactional properties be PSi = (
        <xref ref-type="bibr" rid="ref1 ref1">1, 1, 0</xref>
        ) (compensatable,
consistent completion, non-redoable) and PSj = (
        <xref ref-type="bibr" rid="ref1 ref1">0, 1, 1</xref>
        ) (non-compensatable,
consistent completion, redoable). According to the previous analysis, the
XORpattern is thus redoable, as Sj is redoable. If Sprev.comp = 1 and Ssubseq.redo =
0 then, Si must be chosen in order to guarantee semi-atomicity. Otherwise, in
case of failure of Ssubseq, the XOR-pattern cannot be recovered. If in contrast
Sprev.comp = 0 and Ssubseq.redo = 1, then the XOR-pattern has to complete
to ensure semi-atomicity. This is given trough the redoability of pattern which
is assured through the presence of Sj (as Sj .redo = 1). Thus, in this case the
choice between those two services does not rely on the transactional properties.
      </p>
      <p>Si</p>
      <p>Sj
Sprev</p>
      <p>XOR</p>
      <p>XOR</p>
      <p>Ssubseq
In this paper, we presented the analysis of non-functional service properties in the
presence of transactional workflow patterns in order to guarantee semi-atomic
execution of workflows. We introduced the property of consistent completion
which has not been considered for transactional workflow execution so far and
adjusted the notion of semi-atomicity to support transactional workflow
execution. By identifying structural adaptations of the workflow and illustrating the
influence of transactional properties on the preference relation of services, we
are able to preserve semi-atomicity if services with different transactional
properties are discovered at runtime. As part of future work, we want to use this
as a foundation for the design and verification of an adaptive workflow engine,
which exploits transactional properties of services to automate transactional
execution, including dynamical changes at runtime, automated failure handling
mechanisms and transactional preference relations.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>ActiveBPEL</given-names>
            <surname>Engine</surname>
          </string-name>
          . http://www.activebpel.org.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>P. C.</given-names>
            <surname>Attie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sheth</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Rusinkiewicz</surname>
          </string-name>
          .
          <article-title>Specifying and Enforcing Intertask Dependencies</article-title>
          .
          <source>In Proceedings of the 19th VLDB Conference</source>
          ,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>T.</given-names>
            <surname>Bultan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Fu</surname>
          </string-name>
          , et al..
          <article-title>Conversation Specification: A New Approach to Design and Analysis of E-service Composition</article-title>
          .
          <source>In WWW '03: Proceedings of the 12th International Conference on World Wide Web</source>
          , New York, NY, USA,
          <year>2003</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Chakraborty</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Joshi</surname>
          </string-name>
          , et al..
          <article-title>Toward Distributed Service Discovery in Pervasive Computing Environments</article-title>
          .
          <source>IEEE Transactions on Mobile Computing</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>H.</given-names>
            <surname>Davulcu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kifer</surname>
          </string-name>
          , et al..
          <article-title>Logic Based Modeling and Analysis of Workflows (Extended Abstract)</article-title>
          .
          <source>In Proceedings of the Seventeenth ACM SIGACT-SIGMODSIGART Symposium on Principles of Database Systems</source>
          , ACM Press,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>M.</given-names>
            <surname>Dean</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Connolly</surname>
          </string-name>
          . et al..
          <source>Web Ontology Language (OWL) Reference Version 1.0</source>
          ,
          <year>2002</year>
          . http://www.w3.org/TR/2002/WD-owl-ref-
          <volume>20021112</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>D.</given-names>
            <surname>Dyachuk</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Deters</surname>
          </string-name>
          .
          <article-title>Service Level Agreement Aware Workflow Scheduling</article-title>
          .
          <source>In Proceedings of International Conference on Services Computing (SCC)</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>M.</given-names>
            <surname>Fauvet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Duarte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dumas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Benatallah</surname>
          </string-name>
          .
          <article-title>Handling transactional properties in web service composition</article-title>
          .
          <source>In WISE</source>
          , pages
          <fpage>273</fpage>
          -
          <lpage>289</lpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>W.</given-names>
            <surname>Gaaloul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rouached</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Godart</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Hauswirth</surname>
          </string-name>
          .
          <article-title>Verifying composite service transactional behavior using event calculus</article-title>
          .
          <source>In Proceedings of the 14th International Conference on Cooperative Information Systems (COOPIS'2007)</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. H.
          <string-name>
            <surname>Garcia-Molina</surname>
          </string-name>
          .
          <article-title>Using semantic knowledge for transaction processing in a distributed database</article-title>
          .
          <source>ACM Transactions Database Syst.</source>
          ,
          <volume>8</volume>
          (
          <issue>2</issue>
          ):
          <fpage>186</fpage>
          -
          <lpage>213</lpage>
          ,
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>A.</given-names>
            <surname>Gupta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Gupta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ghosh</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. M.</given-names>
            <surname>Gore</surname>
          </string-name>
          .
          <article-title>Team Transaction: A New Transaction Model for Mobile Ad Hoc Networks</article-title>
          .
          <source>In ICDCIT</source>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <article-title>Hamadi and Benatallah. A petri net-based model for web service composition</article-title>
          .
          <source>In Proceedings of the 14th Australasian Database Conference (ADC'03)</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>WebServices</surname>
            <given-names>AtomicTransaction</given-names>
          </string-name>
          ,
          <year>2005</year>
          . http://www.ibm.com/developerworks/ library/specification/ws-tx/.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>S.</given-names>
            <surname>Jajodia</surname>
          </string-name>
          and L. Kerschberg, editors.
          <source>Advanced Transaction Models and Architectures</source>
          . Kluwer,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. U.
          <article-title>Ku¨ster and B. K¨onig-Ries. Semantic Service Discovery with DIANE Service Descriptions</article-title>
          .
          <source>In Proceedings of the International Workshop on Service Composition</source>
          , Silicon Valley, USA,
          <year>November 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. G. Pardon and
          <string-name>
            <surname>G. Alonso.</surname>
          </string-name>
          <article-title>CheeTah: a Lightweight Transaction Server for Plugand-Play Internet Data Management</article-title>
          .
          <source>In Proceedings of the 26th International Conference on Very Large Data Bases (VLDB 00)</source>
          , San Francisco, CA, USA,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. M. Sch¨afer, P. Dolog, and
          <string-name>
            <given-names>W.</given-names>
            <surname>Nejdl</surname>
          </string-name>
          .
          <article-title>Engineering Compensations in Web Service Environment</article-title>
          .
          <source>In ICWE</source>
          , pages
          <fpage>32</fpage>
          -
          <lpage>46</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. W. van der Aalst, P. Barthelmess,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ellis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Wainer</surname>
          </string-name>
          .
          <article-title>Workflow Modeling Using Proclets</article-title>
          .
          <source>In Proceedings of the 7th International Conference on Cooperative Information Systems (COOPIS'2000)</source>
          , pages
          <fpage>198</fpage>
          -
          <lpage>209</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>A.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Nodine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Bhargava</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Bukhreset</surname>
          </string-name>
          .
          <article-title>Ensuring Relaxed Atomicity for Flexible Transactions in Multidatabase Systems</article-title>
          . SIGMOD Rec.,
          <volume>23</volume>
          (
          <issue>2</issue>
          ),
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>