
CRAFTER relies on Causal Reinforcement Learning (CRL) for enabling self-adaptive IoT systems. This is achieved by (i) using causal discovery to generate causal graphs showing cause-effect relationships in IoT systems, and (ii) using Reinforcement Learning for taking adaptation actions at runtime. CRAFTER is evaluted on a metaverse scenario involving the Louvre museum.
Properties of smart spaces, devices, virtual sensors, and applications and their QoS requirements in JSON format. CRAFTER is built using Java to emulate IoT sensors (112 in total, based on real sensor workloads), processing nodes, and IoT applications. These components are packaged as Docker containers. The networking infrastructure is configured using Mininet and consists of 11 nodes:
- 2 Edge nodes for data processing
- 1 node hosting the data exchange system
- 1 node for hosting Metaverse applications
- 7 nodes for deploying IoT sensors.
Communication among the different components is achieved via MQTT and using the EMQX message broker. CRAFTER’s RL agent is designed and trained using the Stable-baselines3 library and the Gymnasium environment. The causal-learn library is used to extract causakl graphs from IoT datasets.
CRAFTER’s high-level architecture is shown below:
