• Computing Constraints • Low-cost end-devices • Safety-critical concerns • Known for their lack of fault-tolerance mechanisms (e.g. Internet-connection dependency) and several security and privacy issues.
IoT, mostly due to its non-manageable complexity, is in imminent need for autonomic components. Self-Configuring Adapt to dynamically changing environments Self-Optimizing Tune resources and balance workloads to meet service demands Self-Protecting Anticipate, detect, identify, and protect against attacks Self-Healing Discover, diagnose, and act to prevent disruptions Autonomic Computing Ganek, A.G., Corbi, T.A.: The dawning of the autonomic computing era. IBM systems Journal 42(1), 5-18 (2003) Vermesan, O., et al.: Internet of things strategic research roadmap. Internet of things-global technological and societal trends 1(2011), 9{52 (2011)
Runtime Verification Check if the system comply with its specification during runtime Self-Healing Strategies Focus on the self-healing aspect of autonomic computing Visual-defined Self-Healing IoT Systems Ability to visually model diagnosis and recovery/maintenance of health mechanisms to improve IoT systems’ reliability, thus enabling them to be self-healing.
objects: things should be self-aware of their context, and able to self-heal based on transactional properties. Aktas et al. are among the first to use of runtime verification by “applying rule-based pattern detection on the events generated real-time”. But they do not leverage the information collect beyond of reporting to human operators. Leotta et al. uses UML state machines specifications to check the system runtime behaviour correctness. The dependency on a “specification” is infeasible when dealing within dynamic topology environments. Angarita, R.: Responsible objects: Towards self-healing internet of things applications. Proceedings - IEEE International Conference on Autonomic Computing, ICAC 2015 pp. 307-312 (2015) Aktas, M.S., Astekin, M.: Provenance aware run-time verification of things for self-healing Internet of Things applications. Concurrency Computation 31(3), 1-9 (2019) Leotta, M., Ancona, D., Franceschini, L., Olianas, D., Ribaudo, M., Ricca, F.: Towards a Runtime Verification Approach for Internet of Things Systems. In: Proceedings of the International Conference on Web Engineering, vol. 11153, pp. 83-96. Springer International Publishing (2018)
https://github.com/jpdias/node-red-contrib-self-healing Probes Runtime verification nodes. - Timeout - Threshold - Timing Issue - Action check - ... Errors Systems’ misbehaviours caused by faults that can lead to failures. - Action not triggered; - Sensing values missing; - Unexpected behaviours (e.g. lights turning on/off randomly) - ... Recovery & Maintenance of Health Mechanisms Mechanisms to recovery (or contain) errors to maintain the system in a healthy state: - Replacement; - Balancing; - Isolation; - Diversity; - ... Psaier, H., & Dustdar, S. (2011). A survey on self-healing systems Approaches and systems. Computing (Vienna/New York), 91(1), 43–73.
capable of acting as probes and self-healing. • Working similarly to any other Node-RED node. • Ability to deal with both failures at the hardware level (e.g. erroneous sensing values) and services level (e.g. dead MQTT server). • Example nodes: ToggleFlow, ServiceTimeout, ThresholdCheck, Compensate, TestAction
- no support for labels or annotations - lack of multiple inputs - no type-system or static analysis - no proper debugging - no meta-programming features. Nonetheless, we are able to improve systems build with Node-RED by providing a node palette that provides self-healing capabilities.
our research: - Extending the SHEN node palette; - Validate SHEN in other scenarios, with different scale and complexity, according to metrics such as: downtime, mean time to recovery (MTTR), response time,... - Modify Node-RED internals to address some of the identified limitations, such as debugging capabilities. - Expand to other autonomic computing self-* capabilities.
Pedro Dias, Bruno Lima, João Pascoal Faria, André Restivo and Hugo Sereno Ferreira SHEN: Self-Healing Extensions for Node-RED https://github.com/jpdias/node-red-contrib-self-healing Contact email: [email protected]