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. First, we will introduce aicas’ JamaicaVM and Jamaica-IoT products, which form the basis execution environment for our examples and showcases. JamaicaVM is a Java 8 compliant Virtual Machine, which runs on virtually any 32 & 64 bit platform. Besides extended support for specialized RTOS like QNX, VxWorks, etc. it also implements the Real-Time Specification for Java (RTSJ). Based on that real-time JVM, Jamaica-IoT implements an OSGi-based middleware, which is extended with strict resource management and isolation mechanisms for bundles and applications. Consequently, the combination of JamaicaVM/IoT forms a perfect candidate and environment for an open and dynamic real-time platform. As next, we will introduce and discuss several theoretical and practical aspects of real-time systems design and implementation especially emphasizing on topics like programmability, access control, scheduling, isolation, feasibility analysis, etc. Thereby, we will consistently lead back to potentialities but also questions and issues arising within dynamic real-time environments, like the suggested one with JamaicaVM/IoT. Consequently, some basic examples will demonstrate actual sensor data processing and simple actuator control in real-time. We will compare applications performance and robustness with and without real-time capabilities especially in overload situations, which are throughout expectable in open environments.
At the end, we will recapitulate and draw conclusions on appropriate system and applications design for supporting dynamic and flexible IoT scenarios with (real-time) performance requirements.