JIoT Project

integrating IoT-related technologies into the Jolie language.


JIoT Project

The Jiot project is aimed at integrating IoT-related technologies into the Jolie language. The final goal is to provide easy-to-use and flexible communication abstractions to interconnect and make interact disparate IoT islands.

With Jolie, programmers can easily change the transport and application protocols to use for a given communication, even at runtime. In the context of the JIoT project, we integrate renowned IoT-related technologies like CoAP (possibly over UDP) and MQTT (possibly over TCP). In addition to application protocol support, JIoT extensions also provide support for both raw, JSON, and XML data transfer formats.

Papers and References

Installation

The final goal of the JIoT project is to integrate its extensions into the official release of the Jolie language. However, while we work towards an official merge, we provide below versioned, standalone installers of the Jolie interpreter integrating the JIoT extensions.

Jolie (and JIoT) requires Java to run. Make sure to have Java 8 or later installed before proceeding.

To install JIoT download one of the releases below, open a shell terminal, access the directory in which you downloaded the installer, and execute java -jar jiot-x.x.jar. The installer may need permissions to write in the directories in which you intend to install Jolie. Please refer to the Jolie website for troubleshooting and further information on the installation process.

Current Release

Previous Releases

Examples

Let us consider a scenario where a controller, programmed in Jolie, communicates with one of many thermostats in a home automation context. In the automation system, thermostats are accessible at the generic address "coap://thermostat/##" where "##" is a two-digit number representing the identifier of a specific device. Thermostats accept two interactions: a GET request on URI "coap://thermostat/##/getTemperature", that returns the current temperature sensed by the thermostat, and a POST request on URI "coap://thermostat/##/setTemperature", that sets the temperature of the HVAC system controlled by the thermostat.

We report below examples that model the described scenario in MQTT and CoAP (click on the related tabs to show the content).

Members

Università di Bologna
  • Maurizio Gabbrielli
  • Saverio Giallorenzo
  • Ivan Lanese
  • Stefano Pio Zingaro

Get the source code

JIoT is a fork of the Jolie language and is released under the GNU Lesser General Public License v2.1. The sources of the project are on Github.