Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

PETROV / Russel, N., et al. Workflow Control-Flow Patterns. A Revised View

.pdf
Скачиваний:
32
Добавлен:
10.02.2015
Размер:
1.1 Mб
Скачать

Pattern

Score

Motivation

41

(tm)

+

Supported by including a weighted edge after the MI

 

 

 

activity to any subsequent activity.

 

 

 

 

42

(ts)

+

Supported by linking multiple outgoing arcs from an

 

 

 

activity (one for each execution thread required) to

 

 

 

a MergeNode which then directs the various initiated

 

 

 

threads of control down the same branch.

 

 

 

 

43

(exp-t)

+

Supported via the ActivityFinalNode construct.

131

NEPCs

In this evaluation we use the semantics suggested by the ARIS Toolset 6.2 (e.g., the simulator).

Pattern

Score

Motivation

1

(seq)

+

Directly supported, i.e., events can be used to connect

 

 

 

functions in a sequence.

 

 

 

 

2

(par-spl)

+

Supported by the AND-split connector.

3

(synch)

+

Supported by the AND-join connector.

4

(ex-ch)

+

Supported by the OR-split connector. However, no

 

 

 

language is given to describe the conditions for taking

 

 

 

a branch.

5

(simple-m)

+

Supported by the XOR-join connector.

6

(m-choice)

+

Supported by the OR-split connector.

7

(s-sync-m)

+

Supported by the OR-join connector. However, as de-

 

 

 

scribed in [Kin06], the OR-join connector creates a

 

 

 

paradox when combined with loops (i.e. the \vicious

 

 

 

circle"). The desirable semantics would be to wait un-

 

 

 

til no new folder can reach the OR-join. However, one

 

 

 

connector may depend on the other and vice versa.

 

 

 

The ARIS simulator uses a rather odd solution for

 

 

 

this dilemma: the OR-join connector has a time-out

 

 

 

mechanism attached to it. The join waits for a pre-

 

 

 

speci¯ed time and then consumes all folders that are

 

 

 

there.

 

 

 

 

8

(multi-m)

{

Not supported. When using an XOR-join connector

 

 

 

only one incoming folder is expected. Most papers

 

 

 

and books on EPCs state that the XOR-join should

 

 

 

block if multiple folders arrive. However, the ARIS

 

 

 

simulator implements this in a slightly di®erent way.

 

 

 

If multiple folder arrive at exactly the same time, they

 

 

 

are ignored. Otherwise, each folder is passed on.

 

 

 

 

9

(s-disc)

{

Not supported as there is no notion of ignoring subse-

 

 

 

quent folders and then resetting.

 

 

 

10 (arb-c)

+

Directly supported as there are no limitations on the

 

 

 

graph structure.

 

 

 

11 (impl-t)

+

Directly supported. Note that there may be many end

 

 

 

events and only if no element is enabled for a given

 

 

 

instance does the instance terminate.

 

 

 

12 (mi-no-s)

{

This is not supported. There is no explicit notion

 

 

 

of instances and there is no notation for inter-process

 

 

 

connections.

 

 

 

13 (mi-dt)

{

Not supported. The only way to realize this is by

 

 

 

making copies and putting them in parallel.

14 (mi-rt)

{

Not supported.

15 (mi-no)

{

Not supported.

132

Pattern

Score

Motivation

16

(def-c)

{

Not supported. The split and join connectors are exe-

 

 

 

cuted when they become enabled. Therefore, an XOR-

 

 

 

split makes an immediate decision and this choice can-

 

 

 

not be deferred.

 

 

 

 

17

(int-par)

{

Not supported.

18

(milest)

{

Not supported. Although EPCs contain events, it is

 

 

 

not possible to check states and act accordingly.

 

 

 

 

19

(can-a)

{

Not supported. There is no cancellation feature.

20

(can-c)

{

Not supported.

21

(str-l)

{

Not supported. There are only arbitrary cycles.

22

(recur)

{

Not supported.

23

(t-trig)

{

Not supported.

24

(p-trig)

+/{

EPCs allow for multiple input events and these could

 

 

 

be interpreted as persistent triggers. However, since

 

 

 

it is not possible to di®erentiate between the creation

 

 

 

of an instances and subsequent events and there is no

 

 

 

implementation of this concept, we rate this as partial

 

 

 

support.

 

 

 

 

25

(can-r)

{

Not supported. There is no cancellation feature.

26

(can-mi)

{

Not supported.

27

(comp-mi)

{

Not supported.

28

(b-disc)

{

Not supported.

29

(c-disc)

{

Not supported.

30

(s-pjoin)

{

Not supported.

31

(b-pjoin)

{

Not supported.

32

(c-pjoin)

{

Not supported.

33

(g-and-join)

+/{

Most papers and books on EPCs assume that joins

 

 

 

block if multiple folders arrive. However, the ARIS

 

 

 

simulator implements this more like in a Petri net.

 

 

 

 

34

(st-pjoin-mi)

{

Not supported.

35

(c-pjoin-mi)

{

Not supported.

36

(dyn-pjoin-mi)

{

Not supported.

37

(a-sync-m)

+

See pattern 7. The language allows for this. How-

 

 

 

ever, we know of no work°ow management systems

 

 

 

that implement this. Note that the ARIS simulator

 

 

 

uses a rather odd solution: the OR-join connector has

 

 

 

a time-out mechanism attached to OR-joins, i.e., the

 

 

 

join waits for a pre-speci¯ed time and then consumes

 

 

 

all folders that are pending.

38

(g-sync-m)

{

See pattern 7. The language allows for this. How-

 

 

 

ever, we know of no work°ow management systems

 

 

 

that implement this. Note that the ARIS simulator

 

 

 

uses a rather odd solution: the OR-join connector has

 

 

 

a time-out mechanism attached to OR-joins, i.e., the

 

 

 

join waits for a pre-speci¯ed time and then consumes

 

 

 

all folders that are pending.

133

Pattern

Score

Motivation

39

(crit-sec)

{

Not supported. There is no way to create a kind of

 

 

 

mutual exclusion state.

 

 

 

 

40

(int-rout)

{

Not supported.

41

(tm)

{

Not supported. It is impossible to merge a speci¯ed

 

 

 

number of threads into one.

 

 

 

 

42

(ts)

{

Not supported. It is impossible to merge a speci¯ed

 

 

 

number of threads into one.

 

 

 

 

43

(exp-t)

{

Process instances complete only when no remaining

 

 

 

element are enabled.

134