EPC Evaluation Results
Evaluation results for EPCs implemented by ARIS Toolset 6.2 against the workflow control-flow patterns
Pattern |
Rating |
Motivation |
Sequence | + | Directly supported, i.e., events can be used to connect functions in a sequence. |
Parallel Split | + | Supported by the AND-split connector. |
Synchronization | + | Supported by the AND-join connector. |
Exclusive Choice | + | Supported by the XOR-split connector. However, no language is given to describe the conditions for taking a branch. |
+ | Supported by the XOR-join connector. | |
Multi-Choice | + | Supported by the OR-split connector. |
Structured Synchronizing Merge | + | Supported by the OR-join connector. However, as described 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 until 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 prespecified time and then consumes all folders that are there. |
Multi-Merge | - | 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 different way. If multiple folders arrive at exactly the same time, they are ignored. Otherwise, each folder is passed on. |
Structured Discriminator | - | Not supported as there is no notion of ignoring subsequent folders and then resetting. |
Arbitrary Cycles | + | Directly supported as there are no limitations on the graph structure. |
Implicit Termination | + | 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. |
Multiple Instances without Synchronization | - | This is not supported. There is no explicit notion of instances and there is no notation for inter-process connections. |
Multiple Instances with a Priori Design-Time Knowledge | - | Not supported. The only way to realize this is by making copies and putting them in parallel. |
Multiple Instances with a Priori Run-Time Knowledge | - | Not supported. |
Multiple Instances without a Priori Run-Time Knowledge | - | Not supported. |
Deferred Choice | - | Not supported. The split and join connectors are executed when they become enabled. Therefore, an XOR-split makes an immediate decision and this choice cannot be deferred. |
Interleaved Parallel Routing | - | Not supported. |
Milestone | - | Not supported. Although EPCs contain events, it is not possible to check states and act accordingly. |
Cancel Activity | - | Not supported. There is no cancellation feature. |
Cancel Case | - | Not supported. |
Structured Loop | - | Not supported. There are only arbitrary cycles. |
Recursion | - | Not supported. |
Transient Trigger | - | Not supported. |
+/- | EPCs allow for multiple input events and these could be interpreted as persistent triggers. However, since it is not possible to differentiate between the creation of an instances an subsequent events and there is no implementation of this concept, we rate this as partial support. | |
Cancel Region | - | Not supported. There is no cancellation feature. |
Cancel Multiple Instance Activity | - | Not supported. |
Complete Multiple Instance Activity | - | Not supported. |
Blocking Discriminator | - | Not supported. |
Cancelling Discriminator | - | Not supported. |
Structured N-out-of-M Join | - | Not supported. |
Blocking N-out-of-M Join | - | Not supported. |
Cancelling N-out-of-M Join | - | Not supported. |
Generalised 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. |
Static Partial Join for Multiple Instances | - | Not supported. |
Cancelling Partial Join for Multiple Instances | - | Not supported. |
Dynamic Partial Join for Multiple Instances | - | Not supported. |
Acyclic Synchronizing Merge | + | See pattern 7. The language allows for this. However, we know of no workflow 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-specified time and then consumes all folders that are pending. |
General Synchronizing Merge | - | See pattern 7. The language allows for this. However, we know of no workflow 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-specified time and then consumes all folders that are pending. |
Critical Section | - | Not supported. There is no way to create a kind of mutual exclusion state. |
Interleaved Routing | - | Not supported. |
Thread Merge | - | Not supported. It is impossible to merge a specified number of threads into one. |
Thread Split | - | Not supported. It is impossible to merge a specified number of threads into one. |
Explicit Termination | - | Process instances complete only when no remaining element are enabled. |