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

Application Kernels for Smart Home Environments (B)

Status: Abgeschlossen

Abstract—The Internet is being extended with physical "things," ranging from cheap environmental sensors to smart household appliances. To foster novel applications leveraging things, the Californium framework already provides a library for the Constrained Application Protocol (CoAP) and an ex-tension to dynamically install and uninstall script-based applications. This project will classify and implement different application kernels for the framework, such as data collection or persisting services. The kernels are used to show prospects and limitations of the general architecture built upon CoAP, scripting languages, and the app model, depending on specific application classes.


The Internet of Things is constantly growing: The network consisting of servers, routers and end nodes is expected to be extended by trillions of smart objects. A concrete use-case of interest are smart household appliances, which are integrated into the Internet. They let us easily and remotely access information about the physical "things" and their environment. Californium, a Java implementation of CoAP, provides a specialized RESTful interface to access the functionality of devices. On top, Mozilla's Rhino JavaScript framework and an application server has been integrated into the framework. With it, users can dynamically install and uninstall "apps" for household appliances to augment their functionality. These applications are hosted on more powerful devices such as routers. This project extends the framework with a variety of generalized application kernels, which in turn consist of modular, parameterizable scripts. In future work, the kernels will serve as an evaluation instrument for the designed application architecture, e.g. for direct comparison with wireless sensor network solutions.


At first, the student finds an adequate classification for the different application types covered by embedded Web services. This is done on the basis of research and where necessary introducing new classification types.

Next, each such application type shall be implemented as an "application kernel," supporting the corresponding core functionality. These kernels should be designed with reusable modules, which can be combined for appropriate and more specialized purposes, similar to Web mashups. Either they are realized as JavaScript apps for the app server or as standalone Java servers when the requirements do not match the scripting approach, e.g., heavy computation or I/O. The documentation of the API is done using Javadoc.

These kernels mainly serve as an evaluation tool for the designed architecture. Nevertheless, at least one demo application shall be implemented going into more detail to show the correctness of the modules. This will be accomplished in form of a "smart thermostat."

Finally, the student has to evaluate the application kernels according to their reliability and performance within an application class.

Student/Bearbeitet von: Gianluca Vinzens
Contact/Ansprechpartner: Matthias Kovatsch

ETH ZurichDistributed Systems Group
Last updated September 13 2012 08:14:58 PM MET ko