A framework designed to run experiments and application test on real and emulated IoT environments. Paper to the code available here: https://dl.acm.org/doi/10.1145/3368235.3368832
- Apache Kafka
 - Apache Flink
 - Flink fork for edge
 
- Linux operating system (on all machines)
 - dnsmasq
 - qemu
 - qemu-system-arm (and others if required by virtual machine)
 - openssh (on all machines)
 - iproute2 (on all machines)
 - timesyncd (on all machines)
 - Recommended: ntp server in testbed topology
 
- Python 3.7
 - requests Python module
 
- Properly prepared VM images
 - Necessary files for qemu emulation (kernel, device tree)
 - Copy bridge.conf to /etc/qemu/ that includes "allow br0" (or whatever interface you want to use)
 
- To use the framework import iot_api.py
 - Configure experiments using a .properties file and Python code (examples can be found in the framework folder)
 - For virtual testbeds, prepared disk images must be available (RSA key needs to be installed, JRE must be installed and if needed Apache Flink too)
 - More information on how to use the API can be found in the docs
 - Flink and Kafka folders are part of the project but can also be replaced by newer versions
 
- Include automatic generation of VMs into NS3 setups
 - Add Microcontroller support
 - Add automatic setup of docker testbench
 - Flink data graphs to mirror topology
 - Add Kafka/Flink combinations, where Kafka producers run on VMs and Flink consumes on local host