# BPMNE4 IoT: A Framework for Modeling, Executing and Monitoring IoT-Driven Processes +
## 4 Related Work
### Extending the BPMN 2.0 Metamodel with IoT-Specific Modeling Elements
[52] provides a BPMN extension that includes (1) a _Sensor Device_ to determine the type of sensor (e.g., temperature sensor, brightness sensor, or pressure sensor), (2) a _Sensor Service_ to define the function of the sensor device (e.g., request sensor data) and (3) a _Handler_ to specify the technology used to communicate with the sensor (e.g., REST-API, MQTT or WiFi). **BPMNE4 CPS**[53] suggests extending the BPMN 2.0 Service Task in the context of Cyber-Physical Systems (CPS). Besides sensor and actuator tasks, the extension introduces the following additional task types (1) _web service tasks_ for web services (i.e., REST-API requests), (2) _embedded service tasks_ for executing software inside the smart device and (3) _cloud service task_ to trigger operations in the cloud. Furthermore, a _pool_ marked with a world symbol is introduced to represent a physical entity. Ref. [54] proposes a BPMN extension to represent location-specific, sensitive information based on sensors (e.g., GPS). The following event types are introduced: (1) the _position achieved event_ that occurs when the participant reaches a predefined location, (2) the _position update event_ to notify the BPMS about the position change and (3) the _conditional positional event_ that occurs when a participant reaches a predefined maximum distance of a location. Ref. [55] extends the BPMN 2.0 pool with a cloud icon labeled as _IoT_ to visually represent the IoT involvement. To represent a human being involved in the IoT pool, additionally, a smiley may attached to the pool. [56] extends the BPMN 2.0 pool, with a cloud as marker to indicate that the pool communicates with a smart scenario (e.g., smart home or smart factory). Note that the marker may contain the label _pub_ for public, _priv_ for private and _hybrid_ for hybrid clouds. Discussion of Related Work  
As a major drawback, all presented approaches do not fully cover IoT-specific characteristics (cf. _Objectives O1 and O2_), but only support common behaviors (i.e., sensing and/or actuating). For example, none of the extensions consider asynchronous and parallel IoT interactions (push/pull) within a task, though this behavior can be frequently observed when controlling actuators [27]. BPMN extensions such as uBPMN, BPMN4 WSN and BPMN4 CPS introduce further task types or events in addition to sensor and actuator tasks. However, these additional language elements are by far too specific (e.g., uBPMN-audio, image, and reader tasks and events) or only support a certain IoT domain, e.g., Wireless Sensor Networks or Cyber-Physical Systems (cf. _Objective O3_). As another drawback, in most cases the extensions are considered solely from a theoretical point of view, but neglect implementation issues [35], i.e., these works describe IoT-specific extensions of the BPMN metamodel, but do not provide an extended BPMN modeler to support process engineers in modeling IoT-driven BPs (cf. _Objectives O7 and O8_). Moreover, the proposed solutions focus on extending the BPMN from a modeling perspective, but the resulting models are not executable (cf. _Objective O4_). Nevertheless, extensions exist that provide both a modeler and an engine with the specifics of the extension as well [46; 47; 51]. As explained, however, these approaches are either too specific, only support a specific domain, or depend on specific IoT technologies, making it difficult to maintain the system. As another drawback none of the extensions introduces a real-time monitoring or a recording approach for IoT-driven BPs in the context of an holistic approach (cf. _Objectives O5 and O6_). As opposed to our framework, none of the discussed works provides a holistic framework for modeling, executing, monitoring and recording IoT-driven BPs. The framework proposes a BPMN extension with IoT-specific modeling elements. However, we have extended BPMN with domain-independent modeling elements, i.e., our extension can be used in any domain.