Abstractions for Distributed Event-Driven Applications: Position Paper

The Internet of Things (IoT) requires us to rethink the way distributed event-driven applications are programmed. IoT applications differ from traditional distributed applications on a number of points. First, they are comprised of an order of magnitude more devices that operate within a dynamic network. Second, failure in large dynamic networks is no longer an exceptional state but a given and thus needs to be part of the core semantics when programming such networks. Third, the hardware in these networks is not homogeneous so that a common software stack is impossible. We believe that contemporary event-driven languages do not offer appropriate abstractions to write IoT applications. We propose a novel computational model for programming IoT applications by identifying four key abstractions for designating network nodes and handle failures that facilitate writing large-scale IoT applications.

[1]  Theo D'Hondt,et al.  Ambient-oriented programming in ambientTalk , 2005, OOPSLA '05.

[2]  Theo D'Hondt,et al.  Ambient-Oriented Programming in AmbientTalk , 2006, ECOOP.

[3]  Samuel Madden,et al.  TinyDB: In-Network Query Processing in TinyOS , 2002 .

[4]  Philippe Bonnet,et al.  Querying the physical world , 2000, IEEE Wirel. Commun..

[5]  Chien-Chung Shen,et al.  Sensor Information Networking Architecture , 2000, Proceedings 2000. International Workshop on Parallel Processing.