# BPMNE4 IoT: A Framework for Modeling, Executing and Monitoring IoT-Driven Processes +
## 4 Related Work
### Using BPMN 2.0 Metamodel As-Is  
This section discusses works that use the BPMN 2.0 metamodel without extending it. Primarily, BPMN 2.0 is used to create a high-level model that may be enhanced with technical details to become executable by a process engine [6; 30]. Ref. [31] presents a BPMN-based approach to manage IoT devices in a Controlled Environment and in Agriculture. To enable interactions with IoT devices (i.e., to enable push and pull interactions) the BPMN script task is used and a sophisticated architecture is proposed. Monitoring IoT-driven BPs based on a web framework developed in Python using the Django framework is proposed. Refs. [37; 38; 39] propose the use of the standard BPMN to capture aspects of Wireless Sensor Networks (WSN) applications. Java and C# code is generated and deployed on the Mote Runner WSN platform. The transformation of the BPMN process model into an executable code is performed with patterns. Ref. [40] proposes modeling business processes with BPMN 2.0 and transforming the resulting process models into artifacts (i.e., Guard-Stage-Milestone (GSM)). The GSM specifications are then deployed and executed on smart objects. For this purpose, a specific infrastructure needs to be set up for each of these objects. [41] suggests using the BPMN resource class to integrate IoT devices as data objects into the model and the BPMN performer class to define the IoT devices involved in the process. To enable their execution, the resulting BPMN 2.0 process models are translated into Callas, an IoT-neutral platform programming code that can be executed by a Callas virtual machine in any IoT device. Ref. [42] focuses on monitoring multi-party IoT-driven BPs. First, the IoT-driven BPs are modeled with standard BPMN 2.0. Then, for each BPMN artifact, an extended GSM (eGSM) model is derived semi-automatically from the process model. Finally, the smart objects are used to transform the BPMN 2.0 artifacts into active entities. An architecture is proposed that enables the monitoring with the above highlighted characteristics. Ref. [43] propose defining IoT-driven BPs in terms of BPMN 2.0 and performing the interaction between IoT devices and BPs based on the Bosch IoT Things Service, thus encapsulating the implementation of the IoT view. Ref. [44] uses BPMN 2.0 to model IoT-driven BPs. An extended BPs architecture for the decentralized process execution over mobile nodes is proposed. [6] presents a modeling approach that uses standard BPMN elements. IoT-driven BPs and low-level real-world data are captured in an ontology. To execute the BPMN models, a microservice architecture is proposed. [21] uses BPMN 2.0 service tasks to represent IoT-driven activities, which are then used by the BPMS to invoke the specific web service resources. Additionally, Ref. [21] proposes a layered architecture for executing and monitoring IoT-driven BPs. All these works argue that BPMN 2.0 itself is capable of modeling IoT-driven BPs without the need to extend the metamodel, as many of the typical BPMN modeling elements (e.g., tasks, events, pools, and lanes) are characteristic for IoT-driven BPs as well [12]. Following such a straightforward approach, however, the involvement of IoT devices is unclear, as BPMN 2.0 does not allow for their explicit representation. Furthermore, the corresponding BP models are difficult to understand due to the ambiguous use of modeling elements (cf. Figure 1). In particular, the resulting IoT-driven BPs lack structure, expressiveness and flexibility. This aggravates both the readability and the comprehensibility of the modeled BP [4; 9; 24]. Moreover, the complex nesting and ambiguous use of the BPMN modeling elements for IoT devices makes any later extensions or changes difficult. As the involvement of IoT devices in BPMN 2.0 does not become evident (_Objective O1_) in most works, BPMN 2.0 is just used as a modeling artifact (cf. Figure 1) that needs to be transformed into an executable language [6].