The objective of this tutorial is to sensitize the audience for actual problems with real-time sensor data processing and actuator control arising at the edge of current IoT and Fog systems. These are mostly "open" systems allowing a dynamic arrival of applications and functions. Often they must also meet certain performance and QoS criteria for the applications. The attendees of this workshop will learn how to flexibly program performance critical sensor/actuator code with Realtime Java, which can be then dynamically deployed and reliably executed on aicas’ OSGi-based middleware.
The workshop is organized in several stages and milestones, which participants have to reach within bounded times. After each stage, we will have a recap and sync on the latest results, aligning the audience on the next development and experimental steps.
The participants will first implement a simple best-effort application with plain Java without real-time capabilities. The application will use RTSJ raw memory access mechanisms to control LEDs attached to the GPIO pins of embedded devices (provided by aicas). These LEDs must blink with a certain frequency. Attendees will implement and test their functionality with an emulator, and on real devices using aicas’ tools and remote configuration features. All reconfiguration and update procedures on devices happen on the basis of OSGi.
As a next step the edge devices will be stressed with special applications artificially generating a high CPU load. The attendees should notice a unreliable execution and actions of their programs resulting in an unreliable blinking of the LEDs.
In a second try, we will implement the same application with Realtime Java and also relying on the resource management mechanisms of Jamaica-IoT. Now, the users should notice a flawless operation of their code, even in overload and stress situations for their device.
At the end, we will recapitulate and draw conclusions on appropriate system and applications design for supporting dynamic and flexible scenarios with (real-time) performance requirements.