Actinium: A RESTful runtime container for scriptable Internet of Things applications

Programming Internet of Things (IoT) applications is challenging because developers have to be knowledgeable in various technical domains, from low-power networking, over embedded operating systems, to distributed algorithms. Hence, it will be challenging to find enough experts to provide software for the vast number of expected devices, which must also be scalable and particularly safe due to the connection to the physical world. To remedy this situation, we propose an architecture that provides Web-like scripting for low-end devices through Cloud-based application servers and a consistent, RESTful programming model. Our novel runtime container Actinium (Ac) exposes scripts, their configuration, and their lifecycle management through a fully RESTful programming interface using the Constrained Application Protocol (CoAP). We endow the JavaScript language with an API for direct interaction with mote-class IoT devices, the CoapRequest object, and means to export script data as Web resources. With Actinium, applications can be created by simply mashing up resources provided by CoAP servers on devices, other scripts, and classic Web services. We also discuss security considerations and show the suitability of this architecture in terms of performance with our publicly available implementation.

[1]  Michele Zorzi,et al.  Web Services for the Internet of Things through CoAP and EXI , 2011, 2011 IEEE International Conference on Communications Workshops (ICC).

[2]  Jonathan W. Hui,et al.  Marionette: using RPC for interactive development and debugging of wireless embedded networks , 2006, 2006 5th International Conference on Information Processing in Sensor Networks.

[3]  Simon Mayer,et al.  Moving Application Logic from the Firmware to the Cloud: Towards the Thin Server Architecture for the Internet of Things , 2012, 2012 Sixth International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing.

[4]  Erik Wilde,et al.  A resource oriented architecture for the Web of Things , 2010, 2010 Internet of Things (IOT).

[5]  Peter I. Corke,et al.  Darjeeling, a feature-rich VM for the resource poor , 2009, SenSys '09.

[6]  Adam Dunkels,et al.  A Low-Power CoAP for Contiki , 2011, 2011 IEEE Eighth International Conference on Mobile Ad-Hoc and Sensor Systems.

[7]  Luca Mottola,et al.  Programming wireless sensor networks , 2011, ACM Comput. Surv..

[8]  David E. Culler,et al.  The dynamic behavior of a data dissemination protocol for network programming at scale , 2004, SenSys '04.

[9]  Michele Zorzi,et al.  SYNAPSE++: Code Dissemination in Wireless Sensor Networks Using Fountain Codes , 2010, IEEE Transactions on Mobile Computing.

[10]  Dirk Timmermann,et al.  A Lightweight SOAP over CoAP Transport Binding for Resource Constraint Networks , 2011, 2011 IEEE Eighth International Conference on Mobile Ad-Hoc and Sensor Systems.

[11]  Carsten Bormann,et al.  The Constrained Application Protocol (CoAP) , 2014, RFC.

[12]  David E. Culler,et al.  IP is dead, long live IP for wireless sensor networks , 2008, SenSys '08.

[13]  Yi-Hsuan Tu,et al.  EcoCast: Interactive, object-oriented macroprogramming for networks of ultra-compact wireless sensor nodes , 2011, Proceedings of the 10th ACM/IEEE International Conference on Information Processing in Sensor Networks.

[14]  John K. Ousterhout,et al.  Scripting: Higher-Level Programming for the 21st Century , 1998, Computer.

[15]  K. Kuladinithi,et al.  Implementation of CoAP and its Application in Transport Logistics , 2011 .

[16]  Eric Rescorla,et al.  Datagram Transport Layer Security , 2006, RFC.

[17]  Adam Dunkels,et al.  Full TCP/IP for 8-bit architectures , 2003, MobiSys '03.

[18]  Pascal Thubert,et al.  Compression Format for IPv6 Datagrams over IEEE 802.15.4-Based Networks , 2011, RFC.

[19]  Mani B. Srivastava,et al.  Design and implementation of a framework for efficient and programmable sensor networks , 2003, MobiSys '03.

[20]  Gilles Grimaud,et al.  The Web of Things: Interconnecting Devices with High Usability and Performance , 2009, 2009 International Conference on Embedded Software and Systems.

[21]  Philip Levis,et al.  Maté: a tiny virtual machine for sensor networks , 2002, ASPLOS X.

[22]  Adam Dunkels,et al.  Run-time dynamic linking for reprogramming wireless sensor networks , 2006, SenSys '06.

[23]  Eduardo Tovar,et al.  Nano-CF: A coordination framework for macro-programming in Wireless Sensor Networks , 2011, 2011 8th Annual IEEE Communications Society Conference on Sensor, Mesh and Ad Hoc Communications and Networks.

[24]  David E. Culler,et al.  Design and implementation of a high-fidelity AC metering network , 2009, 2009 International Conference on Information Processing in Sensor Networks.

[25]  Wei Hong,et al.  TinyDB: an acquisitional query processing system for sensor networks , 2005, TODS.

[26]  Erik Wilde,et al.  Putting Things to REST , 2007 .

[27]  Saurabh Bagchi,et al.  Zephyr: efficient incremental reprogramming of sensor nodes using function call indirections and difference computation , 2009 .

[28]  Carsten Bormann,et al.  Observing Resources in CoAP , 2010 .