5 Petri Net-related Functions
Currently implemented Petri net-specific functions:
5.1 Structural Simplification
- If two transitions t_1 and t_2 have the same
preset and postset, one of them can be removed.
- If a transition has a singleton preset and postset, the
transition can be removed (sequence) and the preset and postset can
be merged.
- All places with empty preset and postset (isolated places) are
removed.
These structural reduction rules are implemented in the command-line option
--parameter=simplify, see Invoking BPEL2oWFN). To acheive a
better reduction, combine the parameter with --parameter=novarialbles.
5.2 Abstractions
- To obtain a place/transition Petri net from an open workflow
net the communication places are removed. This abstraction from
communicational behavior is used in all Petri net output formats
except oWFN (--format=owfn).
- The original Petri net semantics [Sta05] consists of high-level
Petri net patterns. However, the models generated from BPEL2oWFN
abstract from data. Therefore all transition guards, arc inscriptions
and arc types were “converted” to low-level constructs: all
transition guards and arc inscriptions were removed (decisions are
now made non-deterministically) and read arcs are “unfolded” to
loops. Due to a new fault management (see Changes and Modulation) the patterns do not contain any reset arcs and is 1-safe.
5.3 Markings
The following places are initially marked to ensure a deadlock-free
model of processes with “reasonable” control-flow (e.g. with an
acyclic link structure):
- the initial place of the process (1.internal.initial),
- the variable places (variable.variablename), and
- the clock (1.internal.clock) if the process embeds an
alarm event handler or a
<wait>
activity.