SI4IoT (Service Integration for IoT) is a tool that allows the development of IoT applications based on MDE techniques.

Graphical editor


Applied Computing Group, University of Almería, Spain

SI4IoT, is a tool that allows the development of IoT applications based on MDE techniques.


SI4IoT is a solution that allows you to graphically design IoT systems (software and hardware). It consists of an editor that allows end users to create, edit and view IoT system models. The editor is defined by a model that describes the complete structure of an IoT system. SI4IoT is integrated into the Eclipse platform using EMF, Sirius and Acceleo.


The proposed DSL allows the creation of software tools that can then be used by IoT application developers. In our case, we have developed two tools according to the semantics of the DSL. The first consists of a graphic editor created with Sirius, in which a tool palette for modeling IoT scenarios is provided. The second defined software tool that complies with the DSL is a transformation engine, implemented in Acceleo, which allows model-to-text (M2T) transformations to generate code for both the client and the server.


The proposed scenario has three sensors: 1) a motion sensor, 2) a motion sensor, and 3) a contact sensor. It also has three actuators: 1) relay for a light bulb, 2) an alarm Buzzer, and 3) a motor for a blind.

The following images describe the circuit diagram and the application integration diagram.

The following diagrams describe the behavior of the blind, the bulb and the alarm.

To run the tool you must perform the following guidelines. First, Eclipse must be available with the EMF, Sirius and Acceleo add-ons. Second, you must load the metamodel (wsmodel3) and generate the dependencies. Third, a new instance of Eclipse must be opened and the graphical editor ( and the code generator (ws31acceleo) must be opened. Finally, the specific path of the metamodel must be configured in the graphic editor.

For the deployment of the generated software artifacts it is necessary to have the following frameworks. First, the Arduino IDE to load the IoT Nodes code into the NODE MCU ESP8266 cards. Secondly, an MQTT broker must be available to manage the topics used in the applications. Thirdly, Node-Red must be available to execute the "Bridge" flows. Fourth, Ballerina must be available to run REST and Orchestrator services. Finally, an SQL database server such as MySQL must be available.

Video Gallery