28.01.2015 Views

Semantics, Verification, and Implementation of Workflows ... - YAWL

Semantics, Verification, and Implementation of Workflows ... - YAWL

Semantics, Verification, and Implementation of Workflows ... - YAWL

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Abstract<br />

Workflow systems aim to provide automated support for the conduct <strong>of</strong> certain<br />

business processes. Workflow systems are driven by workflow specifications<br />

which among others, capture the execution interdependencies between various<br />

activities. These interdependencies are modelled by means <strong>of</strong> different control<br />

flow constructors, e.g., sequence, choice, parallelism <strong>and</strong> synchronisation. It has<br />

been shown in the research on workflow patterns that the support for <strong>and</strong> the<br />

interpretation <strong>of</strong> various control flow constructs varies substantially across workflow<br />

systems. Two <strong>of</strong> the most problematic patterns relate to the OR-join <strong>and</strong><br />

to cancellation.<br />

An OR-join is used in situations when we need to model “wait <strong>and</strong> see” behaviour<br />

for synchronisation. Different approaches assign a different (<strong>of</strong>ten only<br />

intuitive) semantics to this type <strong>of</strong> join, though they do share the common theme<br />

that synchronisation is only to be performed for active paths. Depending on<br />

context assumptions this behaviour may be relatively easy to deal with, though<br />

in general its semantics is complicated, both from a definition point <strong>of</strong> view (in<br />

terms <strong>of</strong> formally capturing a desired intuitive semantics) <strong>and</strong> from a computational<br />

point <strong>of</strong> view (how does one determine whether an OR-join is enabled).<br />

Many systems <strong>and</strong> languages struggle with the semantics <strong>and</strong> implementation <strong>of</strong><br />

the OR-join because its non-local semantics require a synchronisation depending<br />

on an analysis <strong>of</strong> future execution paths. This may require some non-trivial reasoning.<br />

The presence <strong>of</strong> cancellation features <strong>and</strong> other OR-joins in a workflow<br />

further complicates the formal semantics <strong>of</strong> the OR-join. The cancellation feature<br />

is commonly used to model external events that can change the behaviour<br />

<strong>of</strong> a running workflow. It can be used to either disable activities in certain parts<br />

<strong>of</strong> a workflow or to stop currently running activities. Even though it is possible<br />

to cancel activities in workflow systems using some sort <strong>of</strong> abort function, many<br />

workflow systems do not provide direct support for this feature in the workflow<br />

language. Sometimes, cancellation affects only a selected part <strong>of</strong> a workflow <strong>and</strong><br />

other activities can continue after performing a cancellation action. As cancellation<br />

occurs naturally in business scenarios, comprehensive support in a workflow<br />

language is desirable. We take on the challenge <strong>of</strong> providing formal semantics,<br />

verification techniques as well as an implementation for workflows with those<br />

features.<br />

This thesis addresses three interrelated issues for workflows with cancellation<br />

regions <strong>and</strong> OR-joins. The concept <strong>of</strong> the OR-join is examined in detail in the<br />

context <strong>of</strong> the workflow language <strong>YAWL</strong>, a powerful workflow language designed<br />

to support a collection <strong>of</strong> workflow patterns <strong>and</strong> inspired by Petri nets. The ORiii

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!