Industrial IoT (IIoT) architectures are typically distributed and asynchronous with event-driven communication, e.g. based on the publication (and corresponding subscription) of messages. These asynchronous architectures enhance scalability and tolerance to changes, but raise interoperability issues as the explicit knowledge of the internal structure of the messages and their categorization (topics) is diluted. And this is just one of the challenges IIoT systems face. The heterogeneity of devices at the edge and fog layers and the unexpected changes in the dynamic environment impact their quality of service (QoS). In this talk we will review these challenges and explore how model-based techniques can help to create better IIoT systems faster (e.g. see our modeling editor and code generator for event-driven architectures with AsyncAPI). Indeed, modeling can help in all phases of the IIoT life-cycle. At design time, by facilitating the definition of the message format. At development time by semi-automatically generating client code to read and write correct message payloads. At runtime by monitoring and executing self-adaptation rules that optimize its QoS.
This is the abstract of the keynote I’ll be giving at 3rd International Workshop on Software Engineering Research & Practices for the Internet of Things (SERP4IoT 2021), co-located with ICSE 201. This workshop aims to provide a highly interactive forum for researchers and practitioners to address the challenges of, find solutions for, and share experiences with the development, release, and testing of robust software for IoT devices.
If interested, you can check the slides of the presentation
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. More about me.
Dear Jordi, All, just to mention an aspect which you probably are considering – whether in or out of the scope of this effort:
Well before writing (async) APIs and provisioning implementations, there is the need to clean up any impedance mismatches by way of assuring semantic interoperability. Even within the IOT industry, different audiences and vendors may not refer to the same things or happenings with the same names.
Early takes on the subject by Cory Casanave & Colleagues may be seen in (https://www.slideshare.net/cory.casanave/semantic-modeling-for-information-federation?next_slideshow=2). There’s a more recent proposal for the security ecosystem, but I fail to find it now,
got it … ontologies for interoperability in IT security
https://www.omg.org/cgi-bin/doc.cgi#addsearch=uml%20operational%20threat%20&%20risk%20model
https://github.com/ModelDriven/ThreatRisk
http://models.modeldriven.org/models/ThreatRisk/Threat%20Risk%20Model.html
http://threatrisk.org/drupal/
https://www.omg.org/hot-topics/threat-modeling.htm
That’s very interesting. I entered into the IoT programing first from a hobbyist point of view. Indeed I ran into these challenges like the internal structure of the messages, and basically the immutability on the edge devices, sensors or whatever.
Due to their simplicity for keeping energy, costs, etc, the devices firmware upgrade is often not supported. If a duplex communication between those devices would be possible, the upgrade for new message formats and other contracts could be easily handled from something like a central operating system for all distributed devices.
An IoT system infrastructure is quite similar to a microservices based system, but a very important difference is that in microservices you can upgrade the endpoints and in IoT you don’t. And the other big difference is that creating or removing microservice containers is easy, otherwise handling a broken update in one or thousands of physical IoT devices is the apocalypse.
I’m just digging on just here… Waiting for your updates about this topic.