Abstract
With Internet of Things applications growing in size and popularity, physical sensor networks are more often running multiple complex applications. It becomes increasingly important to maintain these event-driven programs on embedded systems. Traditionally, event-driven applications such as sensor network applications are written using an imperative style of programming where different callback routines are registered to handle events. As the application complexity grows, the inverted control flow and reliance on shared global state makes this style of programming hard to maintain. Furthermore, sensor network applications are inherently distributed and are written by manually managing code-bases of sub-Applications that go on all nodes separately. If security is important, the programmer needs to manually interface with low-level security primitives because there is no built-in notion of components. We propose a more maintainable approach where the developer essentially writes a first-order FRP program, containing code fragments in an embedded subset of C. From this FRP program, we generate efficient C code to be run on every node. Every module of the FRP program is compiled to a separate C module, making it easy to deploy modules to different nodes, and to enhance the security of the application by isolating modules from other software running on the nodes. Our implementation is based on a Scala EDSL that we use to let the user conveniently embed fragments of C code. The annotated C code gets compiled to Sancus, a security architecture for IoT nodes that supports the secure and distributed execution of the generated modules.
Original language | English |
---|---|
Title of host publication | REBLS 2017 - Proceedings of the 4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems, co-located with SPLASH 2017 |
Publisher | Association for Computing Machinery, Inc |
Pages | 15-20 |
Number of pages | 6 |
ISBN (Electronic) | 9781450355155 |
DOIs | |
Publication status | Published - 23 Oct 2017 |
Event | 4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems, REBLS 2017 - Vancouver, Canada Duration: 23 Oct 2017 → … |
Conference
Conference | 4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems, REBLS 2017 |
---|---|
Country/Territory | Canada |
City | Vancouver |
Period | 23/10/17 → … |
Keywords
- DSL
- Functional Reactive Programming
- Scala