The emergence of millions of remotely programmable devices in our surroundings will pose significant challenges for software developers. A roadmap from today's cloud-centric, data-centric Internet of Things systems to the Programmable World highlights those challenges that haven't received enough attention.
[Taivalsaari, Mikkonnen: A Roadmap to the Programmable World, IEEE Software, January/February 2017]

Project LiquidIoT

In the LiquidIoT project we have developed concepts, technologies and prototypes for programmable IoT devices. The background assumption of this work is that the edge devices will become strong enough for dynamically installable applications.

Concretely we have developed

  • An IDE for application development, deployment and management
  • An application framework that hosts applications in the devices.
  • A bookkeeping service called resource registry for bookkeeping.

Project XThings

In this project we have concrentrated in multi-device and collaborative applications. We have worked on mechansms on how the applications can used services provides by other devices and also mash-up functionalties of several applications running in different devices.

Top-level architecture of the system

The architecture is presented in the following picture:

The components of this system are the following:

  • The IDE is browser-based which means that the users need only a browser to both develop and deploy applications and monitor status of applications and devices.
  • At start-up devices register them selves to a centralized registry. The identity, address and capabilities of the devices is then stored in the registry.
  • The devices host the applications deployed by the IDE. The deployed applications register the services, called Application Interfaces (AIs), to registry. The devices provide a management interface to IDE. In our prototypes the devices have been Raspberry PIs and Intel Edisons.
  • As the cloud platform, where the applications can send data, we have used IoT-Ticket by Wapice Ltd.
Our current implementation is based on HTTP/REST with an assumption that all components are addressable and accessible from all components. Since, this is not a realistic assumption in all cases we have also tested that the desired implementation can be done by using MQTT.

Selected publications

  • Farshad Ahmadighohandizi and Kari Systä, Application Development and Deployment for IoT Devices, In the proceedings of CLIoT 2016, Vienna, 5.September 2016.
    This paper describes the core functionality of the LiquidIoT system - especially how applications are developed and deployed.
  • Otto Hylli, Anna Ruokonen, Niko Mäkitalo and Kari Systä, Orchestrating the Internet of Things Dynamically. To appear in first International Workshop on Mashups of Things and APIs (MoTA) co-located with MIDDLEWARE 2016, December 2016, Trento, Italy.
    This paper describes how LiquitIoT applications installed in several devices can be orchestrated to implement high-level applicattions.
  • Antero Taivalsaari, Tommi Mikkonen, Roadmap to the Programmable World: Software Challenges in the IoT Era. To appear in IEEE Software, January/February 2017.
    Motivation and background of the research topic