Small logo of ETH main building ETH Zurich : Computer Science : Pervasive Computing : Distributed Systems : Education : Student Projects : Abstract

Actinium: An App Server for the Smart Home (B)

Status: Abgeschlossen

Abstract—As the Internet of Things is continuously growing, managing and maintaining its devices and applications becomes a significant and challenging task. Californium is a modular CoAP framework written in Java, which provides a flexible, layered architecture to realize Web-like client/server applications for devices. We introduce an extension that allows users to dynamically install and uninstall applications and application modules, so called "apps," at runtime. Furthermore, the extension provides scripting support. For this, our project integrates Mozilla's Rhino JavaScript framework and an app server into the Californium framework.


Today's homes encompass a notably large collection of electronic devices and appliances. While the Internet is unabatedly growing and extending to the physical world, all kinds of appliances are being incorporated into it. In the future, freezers, light switches, and thermostats will be part of this Internet of Things. A household is going to be a collection of smart appliances, interconnected and interacting with each other.

Together with each appliance, an app can be shipped that controls the appliance and augments its functionality. For instance, pricing information form the smart grid could adjust the temperature of a freezer or an app could monitor the total load of our power outlets to optimize energy costs. With support for scripting, end-user could customize these apps or even create them by themselves. We assume a Web-like infrastructure of devices that export their functionality through RESTful Web Services. Powerful appliances, such as the router or TV set, will be able to host the apps. This project is devoted to design an app server that provides convenient deployment, configuration, and monitoring of applications.


In a first step, the student shall integrate Rhino into Californium. This allows Californium to interpret JavaScript scripts. The apps shall be (un-)loadable at runtime and export their configuration and output (e.g., status or intermediate results) as CoAP resources.

Next, the student shall develop an API that allows JavaScript apps to use Californium's CoAP stack. Server aspects shall be mapped to CoAP resources, which can be defined in the script together with their handler functions. Client functionality shall be provided through an object similar to AJAX's xmlHttpRequestObject that provides the same functionality for CoAP.

Finally, the student shall evaluate the app server. On the one hand, the performance must be benchmarked: All application logic is stripped from the devices, so that their processing power is unutilized. This reduces complexity and hardware requirements, but introduces communication overhead. On the other hand, the design space could be limited. For examination, the student shall create different application kernels that are typical for the Internet of Things and wireless sensor networks (e.g., data collection, actuation, and control loops).

Student/Bearbeitet von: Martin Lanter
Contact/Ansprechpartner: Matthias Kovatsch

ETH ZurichDistributed Systems Group
Last updated July 3 2014 03:56:50 PM MET ko