the popular Niagara IoT workbench
1
. The AHU con-
trols supply and return air flows and several character-
istics of each flow are measured. The measurements
are typically cyclically collected, analysed and actua-
tor values are computed. The calculations often fol-
low the flow of material in the system (in this case,
the flow of air).
One example application for the AHU engine is
depicted in Figure 2. This shows the flow of data
from one processing element to another passing the
control among the devices indicating that the dataflow
paradigm can be used efficiently for these types of ap-
plications.
This flow-like nature of IoT data is indicated in
scientific sources. Several realistic use cases in differ-
ent application domains are presented in (Yasumoto
et al., 2016) to argue for the dataflow paradigm. In
the domain of high-speed computing, the dataflow de-
sign environments are most widely used, according
to (Milutinovi
´
c et al., 2015). Finally, (Giang et al.,
2015) use distributed dataflow for their framework
where each device executes only part of the full ac-
tor network. All these characteristics indicate that the
dataflow paradigm can be used efficiently for IoT ap-
plications.
An approach alternative to the dataflow model
is the component-based model, illustrated here by
ThingML (Harrand et al., 2016). The component-
based model concentrates on the components, their
interfaces with each other and their functional de-
scription which is often state machine-based. The
component-based model is not able to expose the par-
allelism existing in the system to the degree provided
by the dataflow model. While IoT systems are rarely
as demanding with regards to processing performance
as signal processing applications which is the main
use case for the dataflow model, the extreme scala-
bility required by the large amount of endpoints (e.g.
sensors, actuators, etc.) often makes server imple-
mentation challenging. Automatic generation of par-
allel implementation facilitated by the dataflow model
may simplify these server implementations signifi-
cantly.
This paper is structured as follows. Section 2 de-
scribes the base system we chose for our dataflow-
based IoT design environment and how we propose
to extend it. Section 3 discusses a key component
of the extended system, the heterogeneous dataflow
compiler. Conclusions and further work are proposed
in section 4.
1
https://www.tridium.com/
2 Orcc IoT EXTENSIONS
Today, there are literally hundreds of IoT platforms
proposed. These software stacks offer data inges-
tion/sending from/to the endpoints, data management,
visualisation and device management features, in-
cluding alarms. Some are offered as installable soft-
ware packages, some are cloud services. So far no
dominant player emerged in the field, making appli-
cation development a risky investment.
The approach to IoT application development,
presented in this paper, is to take a high-level ap-
plication model and generate code from this model
for the target platforms. Following the considerations
presented in section 1, we have chosen the dataflow
paradigm as high-level application model and devel-
oped the DFL to represent the applications.
Instead of developing the environment from
scratch, existing dataflow/component design environ-
ments were analysed. The following environments
were studied: Node-RED, Internet of Things Work-
bench (IBM), Spacebrew, TASTE, Cam
´
el
´
eon, Vorto,
ANKHOR FlowSheet and Orcc. The analysis re-
sulted in the selection of the open RVC-CAL Com-
piler (Orcc) (Yviquel et al., 2013; Sourceforge, 2014)
as base development environment. The main advan-
tages of Orcc over the evaluated systems are the fol-
lowing:
• It is completely open-source under the BSD li-
cense.
• Its compiler backends are able to generate code
for a wide variety of targets from FPGAs to rel-
atively high-end runtimes like Java. Orcc does
not enforce any mandatory runtime unlike sys-
tems like Node-RED enforces web runtime.
2
.
• It is based on the Eclipse platform that makes it
highly extensible.
• Its data formats have been standardised (ISO/IEC,
2012). This standard describes the dataflow net-
work’s representation in XML format that Orcc
implements.
After having selected Orcc as base system, a gap
analysis was performed among the features required
for the IoT dataflow and those offered by Orcc. The
most relevant gaps were the following:
• Orcc backend code generation is strictly homoge-
neous. When code is generated for an application
dataflow network, one backend is selected and all
the code is generated by that backend. This does
not satisfy the heterogeneity requirement of IoT
systems. The IoT version of Orcc must be able
2
https://nodered.org/
Dataflow-based Heterogeneous Code Generator for IoT Applications
427