# BPMNE4 IoT: A Framework for Modeling, Executing and Monitoring IoT-Driven Processes +
## 5 BPMN24 IoT-A Holistic Framework for IoT-Driven BPs
### Architecture  
A holistic IoT-driven BPMS supporting the modeling, execution, monitoring and logging of IoT-driven BPs based on BPMNE4 IoT ( [[https://github.com/elmurd0r/bpmne4](https://github.com/elmurd0r/bpmne4) iot]([https://github.com/elmurd0r/bpmne4](https://github.com/elmurd0r/bpmne4) iot), accessed on 20 January 2023)) (see RQ2) necessitates an advanced architecture (_Objectives O4, O5 and O6_). In particular, such an architecture shall implement the behavior of the IoT-specific artifacts and events introduced in Section 5.2. Figure 12 depicts a coarse-grained view on the BPMNE4 IoT architecture, highlighting our contribution in green. Basically, the architecture consists of three main components, i.e., IoT Devices, IoT Middleware and IoT-driven BPMS. **IoT Devices** are used to measure the state of the physical world and to digitize it or to change the state of the physical world (e.g., turn/off the light). IoT devices may include sensors and actuators that, in turn, may be combined into more complex \"things\" such as a smart fridge or smart car. The data collected with IoT devices is made available and may be further exploited. In this context, either the IoT devices themselves provide access to the data or a gateway can be used. Note that any connection to the respective IoT devices or gateways is made through standard security mechanisms to ensure data protection. This becomes necessary, as IoT devices generate a large amount of sensitive data, providing a potential attack surface. Particularly, actuators are frequently affected, as they have the ability to influence the state of the physical world. **IoT Middleware** is responsible for data acquisition, data processing and data storage. As the data formats and access methods (e.g., push or pull) of the various data sources differ significantly, it becomes necessary to use middleware (e.g., Apache Kafka) that is able to cope with this heterogeneity. Moreover, the middleware processes the obtained sensor data, i.e., it transforms the heterogeneous data into a unified from, validates the data, and cleans it (if required). Subsequently, the IoT data needs to be stored to enable access at any point in time. In this context, IoT devices often run on reduced power and send their data only with a limited frequency to keep power consumption low. Consequently, if the data are not immediately stored (e.g., in a database), no data might be available. Moreover, the middleware handles standard security mechanisms such as the encryption of data traffic and authentication. These mechanisms prevent unauthorized access to the IoT data. As a core component of the architecture, the **IoT-driven BPMS** enables the holistic integration of BPM with IoT. In detail, this component comprises the following sub-components. * The _IoT Process Modeler_ enables the modeling of IoT-driven processes. This sub-component is based on bpmn.io ( [[https://bpmn.io/](https://bpmn.io/)]([https://bpmn.io/](https://bpmn.io/)), accessed on 18 January 2023)) extended with the elements and metamodel described in Section 5. To enable the configuration of the IoT characteristics (cf. Section 2.1), the extended properties panel may be used (_Objectives O7 and O8_). Figure 12: Abstract view on System architecture and communication between system components. * The _IoT Process Engine_ executes IoT-driven BPs that contain IoT-specific information. The process model contains both IoT-specific and Non-IoT-specific information to execute the IoT-driven BP. In our proof-of-concept, the open source Javascript workflow engine ( [[https://github.com/paed01/bpmn-engine](https://github.com/paed01/bpmn-engine)]([https://github.com/paed01/bpmn-engine](https://github.com/paed01/bpmn-engine)), accessed on 19 December 2022)) serves as the basis for executing the IoT-driven BPs.