The BPMN 2.0 notation is widely used both for modeling and implementing business processes. Even if it is largely adopted, the BPMN standard lacks a formal specification of models’ behavior, leading to misinterpretations of the execution semantics of some tricky modeling elements. This may result in processes that do not fit with designers’ expectations and behave differently from one enactment tool to another. One of the most prominent BPMN elements with an ambiguous treatment in the BPMN standard is the OR-Join gateway. Although various attempts of OR-Join formalization have been proposed in the literature, they either do not fully comply with the prescriptions of the current version of the BPMN standard or do not provide an efficient characterization. To fill this gap, we propose a formalization of the BPMN semantics including the OR-Join behavior as reported in version 2.0 of the standard. Besides, to make it suitable for driving an efficient implementation, we provide an alternative characterization of the formal semantics that determine the OR-Join gateway activation only based on information local to the considered OR-Join element, without the need of knowing the global tokens distribution. The soundness of the approach is given by demonstrating the correspondence of the local semantics to the global one. Through validation experiments conducted on the implementations of the local and global semantics of the OR-Join, we have shown that the local semantics more efficiently determine the gateway activation. Finally, we support designers in precisely understanding the OR-Join behavior via a model animator tool.
Or-Join Animation with MIDA
To increase the confidence of the user with the OR-Join gateway, we implemented its semantics in the MIDA (Multiple Instances and Data Animator) tool. The button below provide links to two implementations of MIDA, the first one uses boolean expressions for regulating the activation of the XOR and OR split gateways. The second implementation provides an interactive version of MIDA where the active path outgoing a split gateway can be set interactively.