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.
   346   347   348   349   350   351   352   353   354   355   356