Abstract

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.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.