Page 351 -
P. 351
13 The Business Process Modeling Notation 349
There are three types of gateways in BPMN: XOR gateways (represented by
an “X”), AND gateways (represented by a “+”), and OR gateways (represented by
an “O”). Moreover, a gateway is said to be a split gateway if it has multiple out-
going flows or a join gateway if it has multiple incoming flows. It may happen that
a gateway is both a split and a join gateway, but this essentially means that there
are two gateways in a single one. If we put together the distinction between the
three types of gateways (XOR, AND, OR) and the distinction between split and
join gateways, we obtain six different types of gateways: XOR-split, XOR-join,
1
AND-split, AND-join, OR-split, and OR-join. These six types of gateways are
similar to the decorators in YAWL.
Like in YAWL, an XOR-split is a decision point. Based on the evaluation con-
ditions, the flow of control will go to exactly one of the outgoing flows of the
XOR-split. For example, Fig. 13.1 has one XOR-split gateway. One of the flows
going out of this gateway is labeled with the condition more trackpoints are needed,
while the other outgoing flow is the default flow, denoted by a stripe through the
flow. The default flow is taken if the condition(s) attached to the other conditional
flow(s) is(are) not fulfilled – in this example the default flow is taken if the condi-
tion more trackpoints are needed is not fulfilled. An XOR-join, on the other hand,
merges two incoming branches into a single one. Figure 13.1 features an XOR-join
just before the task Issue Trackpoint Notice, which merges two incoming paths.
An AND-split splits one thread of execution into two or more parallel threads.
For example, the AND-split on the left-hand-side of Fig. 13.1 starts two threads in
parallel. These threads then join in an AND-join just before task Create Acceptance
Certificate. The AND-join is a synchronization point – it waits for both threads to
complete.
The OR-split (which we do not exemplify) is a hybrid between the XOR-split
and the AND-split, allowing a split into any number of outgoing flows instead of
one (XOR-split) or all (AND-split). Similarly, the OR-join is a hybrid between an
XOR-join and an AND-join, synchronizing all flows that have the control. These
constructs correspond to those of OR-split and OR-join decorators in YAWL. Unlike
YAWL, however, the exact semantics of the OR-join in BPMN is underspecified in
the standard specification. There is also another type of gateway in BPMN called
“complex gateway,” which is not discussed in this chapter.
Finally, BPMN introduces a type of split gateway that corresponds to the
“Deferred Choice” workflow pattern. This is called the “event-based exclusive gate-
way.” The event-based exclusive gateway is similar to the XOR-split (which is also
called data-based exclusive gateway in BPMN). However, instead of the choice
being driven by conditions (which are evaluated based on data), the choice is driven
by two or more events, such that the choice for an outgoing flow is made when the
event on that outgoing flow occurs. Concretely, an event-based exclusive gateway is
1
The BPMN specification uses alternative terms: XOR-splits are exclusive decision gateways,
XOR-joins are exclusive merge gateways, OR-splits are inclusive decision gateways, OR-joins are
inclusive merge gateways, AND-splits are parallel forking gateways, and AND-joins are parallel
joining gateways. Here, we adopt a simpler and more uniform terminology.

