integrating IoT-related technologies into the Jolie language.
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.
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.
Note that the examples for CoAP and MQTT shown in the paper only work in version alpha of the interpreter, since, after that version, operation specific configuration parameters confirmable and method were changed, respectively in messageType and messageCode. The alpha version is available in the previous release section below.
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).
A list of known projects involving the usage of the JIoT interpreter is listed below:
JIoT is a fork of the Jolie language and is released under the GNU Lesser General Public License v3.0. The sources of the project are on Github.