
The Internet of Things (IoT) can transform any object into a smart thing by means of sensors that measure physical properties, which in turn send messages wirelessly over the Internet. Many IoT applications are time-sensitive, i.e. they react to events based on their time context, ranging from industrial control to mobility automation business cases. When sensor messages fail to arrive in a timely fashion, time-sensitive applications can react to timeouts by replacing missing measurements with predictions to maintain timely responses, albeit less accurate. To produce meaningful results, these applications combine measurements based on their time context; a challenging task since sensor messages can be late or lost due to the unreliability and varying delay of wireless IoT systems. Whereas timely measurements can be combined to obtain new results, late measurements can be used to recompute past results that were partially based on predictions, thus improving their accuracy over time. The reactive programming paradigm is a good fit for IoT application development, because reacting to events from data streams very well embodies the intuition behind sensors in a wireless sensor network. However, existing reacting programming frameworks offer limited support for reacting to events based on their time context, which remains a repetitive process that is tedious and error-prone, forcing developers to perform manual checks that result in cross-cutting code fragments. To fill this gap, this paper contributes a suite of programming language concepts to combine and operate on events based on their time context, with which we extend ReactiveX, a state-of-the-art reactive programming framework. We evaluate our extensions by implementing a swarm robotics use case with and without them, and comparing the resulting programs in terms of code size. The results show that using our extensions decreases the resulting code size by 77.7%, thus simplifying the development of time-sensitive IoT applications using reactive programming.
Technology, Science & Technology, Computer Science, Information Systems, time context, reactive programming, SWARM, Engineering, Electrical & Electronic, internet of things, time management, Remote Sensing, Engineering, Computer Science, Theory & Methods, Computer Science, Computer Science, Hardware & Architecture
Technology, Science & Technology, Computer Science, Information Systems, time context, reactive programming, SWARM, Engineering, Electrical & Electronic, internet of things, time management, Remote Sensing, Engineering, Computer Science, Theory & Methods, Computer Science, Computer Science, Hardware & Architecture
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
