<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Combining Eclipse IoT Technologies for a RPI3-Rover along with Eclipse Kuksa*</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Robert H o¨ttger</string-name>
          <email>robert.hoettger@fh-dortmund.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mustafa O¨ zcelik o¨rs</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Philipp Heisig</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lukas Krawczyk</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pedro Cuadra</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carsten Wolff</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>All authors are with IDiAL Institute, Dortmund University of Applied Sciences and Arts</institution>
          ,
          <addr-line>Otto-Hahn-Str. 23, 44227 Dortmund</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <fpage>101</fpage>
      <lpage>106</lpage>
      <abstract>
        <p>- Developing open source software has proven to provide benefits to customers and OEMs vise versa [1]. IoT and Cloud development activities have already been around for decades and huge communities have grown among an immense variety of applications. However, the vehicle domain just recently approaches the connected era and still faces many challenges stemming from security, safety, reliability, real-time, or more demands. Such demands are also the reason for mandatory adaptations of existing technologies. Hence, Kuksa, i.e. an open-source platform, addresses such specific demands of the connected vehicle era and further uses and extends existing technologies to ease development, analysis, and activities for IoT and Cloud-based approaches for vehicles and provide a basis for new application fields. This paper presents a comprehensive description of technologies and their specifics towards secure data transmission and device management services.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        IoT and Cloud platforms are estimated to count more
than 1000 worldwide [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Many platforms comprise huge
communities and continuously advance existing or add new
technologies to cope with increasing demands of the
respective domain. The vehicle industry is one of the domains that
just recently enters the open source IoT and Cloud market.
Eclipse IoT [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is one of the biggest communities that hosts
a huge variety of protocol implementations (REST, MQTT,
etc.), cloud back-&amp; front-ends, m2m management, device
management, OTA update methodologies, security and
authentication approaches among others. Eclipse Kuksa [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is
a recent project to fill the missing gaps in order to introduce
respective applications and technologies to vehicles.
      </p>
      <p>The remainder of this paper is organized as follows.
Section II describes the Eclipse Kuksa technologies briefly
upon their utilization, adaption, or extension as well as their
interaction with each other. Section III then presents the IoT
stack of Eclipse Kuksa in more detail. Afterwards, Section IV
outlines specifics about the RPI3 Rover, its hardware, main
components, and applications. Finally, Section V concludes
the current status of the implementations and provides
insights into results that could be obtained from applications
across a use-case with three Rovers. Furthermore, the section
presents issues and topics to be addressed in upcoming work.
loud tfrom</p>
      <p>C laP
Layers &amp;
Bindings
ilcehe tfrom
I-nV laP</p>
    </sec>
    <sec id="sec-2">
      <title>Eclipse</title>
    </sec>
    <sec id="sec-3">
      <title>Ecosystem</title>
      <p>E
D
I
ppA</p>
      <p>CentralGateway/Backbone
CMoontitoronl Ethernet CAoDnAtrSol
CAN</p>
      <p>HeadUnit</p>
      <p>Body</p>
      <p>Control</p>
      <p>Fig. 1. Kuksa Abstract Architecture
in isolated repositories or design and implement applications
for an arbitrary technology stack within the single Che-based
Kuksa IDE. Nevertheless, Eclipse Kuksa has to continuously
check and test versions and updates on the repositories in
order to guarantee stable development and build processes.
adeqKuateetecyhnoloCgieshto aaddlrelsesrenspecgtiveereqsuiremIen-ts.
InFurthermore, the Secure APP Runtime contains several
applications for OTA management or IoT connectivity but also the
applications themselves as well as a corresponding intrusion
detection application.</p>
      <sec id="sec-3-1">
        <title>Applicati - IoT Co - Secure - Applic</title>
      </sec>
      <sec id="sec-3-2">
        <title>Middlew</title>
        <p>- APPST
- Netwo
- Flexibl
- Comm
access</p>
      </sec>
      <sec id="sec-3-3">
        <title>OS layer:</title>
        <p>- Hardw
- Driver
interfa
- Secure</p>
        <sec id="sec-3-3-1">
          <title>Robert Höttger, Johann</title>
          <p>AGL laAyGerLsubset
AGL-Kuksa
yocto image and</p>
          <p>SDK</p>
          <p>In-Vehicle Technology</p>
          <p>Eclipse Leshan
Eclipse Paho /
Mosquitto…
Kuksa.meta-dev
meta-kuksa-dev
Tools debugging, tracing,</p>
          <p>logging
Kuksa.meta
meta-kuksa
tooling recipes
Kuksa.AGL-wrapper
scripts, separate builds
dep. on licenses
(Yocto &amp; Bitbake)
Rover App Instance
build</p>
          <p>MQTT AGL
bindings / lib
Hono AGL
bindings / lib
E.g.
Kuksa.meta</p>
          <p>rover
rover tools (yocto recipes)</p>
          <p>E.g. Rover API
E.g. Rproovjeectr App</p>
          <p>Cloud-Technology</p>
          <p>Eclipse Keti
Eclipse Ditto
Eclipse HawkBit
Eclipse Hono
Cloud Service
(e.g. raw data
consumer)
Che Kuksa IDE</p>
          <p>Eclipse Che</p>
          <p>Cloud-Application Dev</p>
          <p>In-Vehicle Application Dev</p>
          <p>Finally, Figure 4 gives an overview of the layers necessary
for the Kuksa in-vehicle platform. The four layers Boot
Loader, Operating System, Middleware, and Secure App
Runtime are accompanied by Quality of Service Monitoring
and Authentication and Encryption methodologies. Since
the operating systems has been defined by AGL, several
drivers and interfaces are required to implement connectivity
standards like 5G, LTE as well as in-vehicle inferfaces
such as CAN, LIN, automotive ethernet among others. The
middleware layer further consists of in-vehicle and
exvehicle protocol implementations such as MQTT, AMQP,
LWM2M, or eSOC, SOME/IP and others. In addition,
network IDS, communication services and the APPSTACLE
API are mandatory functionalities to guarantee
automotive</p>
        </sec>
        <sec id="sec-3-3-2">
          <title>Special Apps:</title>
          <p>OTOATAdomwannlaogaedrer ApAppAp1p1p</p>
        </sec>
        <sec id="sec-3-3-3">
          <title>IoT Connector</title>
        </sec>
        <sec id="sec-3-3-4">
          <title>Secure App Runtime</title>
        </sec>
        <sec id="sec-3-3-5">
          <title>Application IDS</title>
        </sec>
        <sec id="sec-3-3-6">
          <title>APPSTACLE API</title>
        </sec>
        <sec id="sec-3-3-7">
          <title>Communication Services</title>
        </sec>
        <sec id="sec-3-3-8">
          <title>Network IDS</title>
          <p>Ex-Vehicle</p>
        </sec>
        <sec id="sec-3-3-9">
          <title>TT 2M Protocols</title>
          <p>Q M
M LW… Se SOM …
CO I/EP InP-rVoetohcicolles
Vehicle2Cloud</p>
        </sec>
        <sec id="sec-3-3-10">
          <title>Interface</title>
          <p>5G LTE …Phy/MAC</p>
        </sec>
        <sec id="sec-3-3-11">
          <title>Secure Boot</title>
        </sec>
        <sec id="sec-3-3-12">
          <title>Loader</title>
          <p>t
e
CAN trehn … Interface</p>
          <p>Phy/MAC
E</p>
          <p>In-Vehicle</p>
        </sec>
        <sec id="sec-3-3-13">
          <title>Platform Update</title>
        </sec>
        <sec id="sec-3-3-14">
          <title>Manager</title>
          <p>
            Within the IoT, classical embedded software
development and web development come together. However, both
disciplines have a very different culture: While embedded
software development focus often on reliability and safety,
developing web application development requires speed and
feature richness. Thus, integrating both worlds introduces
several problems. In order to cope with them, the digital
twin metaphor has been proposed. A digital twin allows to
have a digital representation of all capabilities and aspects
that each physical device connected to the internet consists
of. This offers the possibility to access and alter the state of
a device in a controlled manner. Eclipse Ditto [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ] provides a
platform to realize the digital twin metaphor. More precisely,
it provides functionality to address the following aspects:
• Device as a Service: Higher level API to access devices
• State management for digital twins including
notification of state changes
• Digital Twin Management: Provides meta-data based
support to search and select digital twins
          </p>
          <p>The API of Eclipse Ditto is realized as REST-API, which
allows to have a backend-less realization of IoT applications.
In this way, software developers for IoT application can
concentrate on the business logic and user experience without
the hassle to integrate different protocols and device types.
B. Eclipse HawkBit</p>
          <p>
            Eclipse hawkBit [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ] is a backend framework released
under the EPL to roll out software updates to constrained
edge devices. With the challenge of a safe and reliable
remote software update process in mind, the project aims
to provide an uniform update process. This allows to avoid
duplicate work for implementing mechanisms separately in
each software component. Therefore, hawkBit provides a
backend server that can be deployed in any cloud
infrastructure. It helps managing roll out campaigns, e.g. by defining
deployment groups, cascading deployments, emergency stop
of rollouts, and progress monitoring. Further, it offers
several device management interfaces on which management
messages and updates can be exchanged. However, hawkBit
does not provide a client for edge devices by default.
To connect certain devices, an adapter implementation that
understands the protocols is needed. Those protocols in the
Device Management Federation (DMF) API are AMQP,
ODA-DM, and LWM2M. Also software can be delivered
to edge devices through a REST API. At the cloud side,
hawkBit ships a web-based UI for management purposes.
Within the UI, all management functionalities are ready to
use with a few clicks. In regard of the rising IoT cloud
service infrastructure also interfaces for integrating hawkBit
into other applications are accessible. Currently, a REST API
exposes the functionality of the backend server towards other
applications. For a more convenient use, hawkBit also helps
managing roll out campaigns, e. g. by defining deployment
groups, cascading deployments, emergency stop of rollouts,
and progress monitoring. One of the features on the roadmap
is the integration of Eclipse Hono (cf. Section III-D) as DMF
provider.
          </p>
          <p>C. Eclipse Leshan</p>
          <p>
            Eclipse Leshan [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ] is an implementation of the LWM2M
protocol in Java. It provides implementations for the client as
well as for the server side. Leshan uses Eclipse Californium
to communicate via CoAP and relies on Eclipse Scandium
for establishing a datagram transport layer security.
Furthermore, there are libraries available that help people to
implement their own LWM2M server and client side.
D. Eclipse Hono
          </p>
          <p>The Eclipse Hono project provides a platform for the
scalable messaging in the IoT by introducing a middleware
layer between back-end services and devices. Thereby, the
communication to back-end services takes place via the
AMQP protocol. If devices can speak this protocol directly,
they can transparently connect to the middleware. Otherwise,
Hono provides so called protocol adapters, which translate
messages from the according device protocol to AMQP.
In this way, Hono’s core services are decoupled from the
protocols that certain applications are using. Via AMQP 1.0
endpoints, Hono provides APIs that represent four common
communication scenarios of devices in the IoT:
• Registration
• Telemetry
• Event
• Command &amp; Control</p>
          <p>Eclipse Hono consists of different building blocks. The
first are the protocol adapters, which are required to connect
devices that do not speak AMQP natively. Currently, Hono
comes with two protocol adapters: One for MQTT and the
other for HTTP-based REST messages. Custom protocol
adapters can be provided by using Hono’s API. Dispatch
router handles the proper routing of AMQP messages within
Hono between producing and consuming endpoints. The
dispatch router in Hono is based on the Apache Qpid project
and designed with scalability in mind so that it can handle
potentially connections from millions of devices. As such it
do not takes ownership of messages, but rather passes AMQP
packets between different endpoints. This allows a horizontal
scaling to achieve reliability and responsiveness. Event and
commands messages, which need a delivery guarantee, can
be routed through a broker queue. The broker dispatches
messages that need some delivery guarantees. Typically, such
messages are mainly from the command &amp; control API.
The broker is based on the Apache ActiveMQ Artemis
project. While devices are connecting to the Hono server
component, back-end services connecting via subscribing to
specific topics at the Qpid server [10].</p>
          <p>Among the routing of messages, Hono consists of a device
registry for the registration and activation of devices and the
provision of credentials as well as an Auth Server to handle
authentication and authorization of devices. By using an
InfluxDB and a Grafana dashboard, Hono comes also along
with some monitoring infrastructure. Due to its modular
design, also other AMQP 1.0-compatible message broker
than the Apache ActiveMQ Artemis can be used.
E. Eclipse Keti</p>
          <p>Eclipse Keti is an application that allows to authorize the
access of users to resources by applying the attribute based
access control principle. In general, it is used to secure the
communication of RESTful APIs. Whether a user can access
a resource is decided based on evaluating rules with attribute
values as input. An attribute either refers to a user, resource,
or environment variable. Multiple rules can be combined
into a policy that comprises (i) a target that matches a
given request to corresponding policy; (ii) a condition that
contains the specific authorization logic; and (iii) an effect
that specifies the impact an authorization decision.</p>
          <p>Eclipse Keti is realied as a Spring Boot application and
consists of three major components:
• Policy evaluation: Conducts the evaluation of every
authorization request.
• Policy management: Allows to update and maintain the
set of policies.
• Attribute store: Maintains the user and resource
permissions captured using attributes.
In addition, Eclipse Keti relies on spring-security-oauth to
secure its own endpoints.</p>
          <p>F. Keycloak</p>
          <p>Keycloak is an application that allows to manage the
identity of users (authentication) and their access to resources
(authorization). When building an application, Keycloak
allows to delegate the user authentication process to
substantially reduces the related implementation overhead for the
application. It provides an user with single sign on to access
all applications registered at a particular Keycloak instance.
In addition to serving as an identity provider, Keycloak is
also capable of incorporating existing providers, e. g. social
networks. Keycloack supports authentication processes that
rely on the protocols OpenID Connect and version 2.0
of the security assertion markup language. Authorization
is conducted using version 2.0 of the Open Authorization
(OAuth) protocol. By using Keberos, Keycloak allows to link
user information from other identity management systems,
such as LDAP or Active Directory servers. Authentication
and authorization is organized within Keycloack via so-called
realms. A realm comprises a set of registered users as well
as applications. The authentication within a realm is either
realized by supplying a separate identity service or enabling
the access to a set of existing identity providers. Users that
are part of the realm may be federated with other data
by attaching additional identity management systems. The
access to resources is steered by defining roles and assigning
them to users. An admin console provides means to modify
the realm settings, while users can manage their accounts
by using a separate interface. There are a set of Keycloak
client adapters that enable the communication employing the
protocols mentioned above. Depending on the protocol, also
implementations in various programming languages exists,
such as Java and JavaScript. Some of them provide tight
integration with specific platforms, for example Spring Boot
and WildFly.</p>
          <p>G. AGL</p>
          <p>
            AGL (Automotive Grade Linux) is a Linux Foundation
Workgroup dedicated to creating open-source software
solutions for automotive applications. The initial target for AGL
is to provide an IVI (In-Vehicle-Infotainment) system [
            <xref ref-type="bibr" rid="ref14">15</xref>
            ].
For providing this kind of systems, AGL uses Yocto Project’s
building system. Thereby, being able to produce a Linux
System image and a Cross-Developement toolchain [
            <xref ref-type="bibr" rid="ref15">16</xref>
            ].
          </p>
          <p>
            However, in order to integrate Kuksa-specific tools,
software, and functionalities, AGL’s building system was
extended by including three layers on top of AGL:
• meta-kuksa: contains Kuksa’s code base and all its
dependencies that are not included in AGL, e.g. MQTT
libraries.
• meta-kuksa-dev: contains extra packages that are useful
for the development- and testing-only, e.g. Valgrind,
gtest.
• meta-rover: contains all packages needed to enable the
RPI3 Rover’s runtime software. Basically, it provides
recipes for rover-app [
            <xref ref-type="bibr" rid="ref11">12</xref>
            ], rover-web [
            <xref ref-type="bibr" rid="ref12">13</xref>
            ], and their
dependencies in [
            <xref ref-type="bibr" rid="ref13">14</xref>
            ].
          </p>
          <p>
            Furthermore, the Kuksa.AGL-wrapper [
            <xref ref-type="bibr" rid="ref16">17</xref>
            ] is an EPL
licensed repository that holds the scripts to integrate
Kuksaspecific layers with the building system already provided by
AGL.
          </p>
          <p>H. Eclipse Che</p>
          <p>Eclipse Che is an open source EPL licensed
multiuser cloud Integrated Development Environment (IDE) and
workspace server. Typically, it can either be utilized by its
Browser IDE (Frontend, cf. Fig. 5), or by directly connecting
to the resp. workspaces that are realized as customized
docker containers, which bring their complete runtime
environment, e.g. an Ubuntu based installation with Java, Maven,
and/or a C/C++ tool chain. In contrast to typical IDEs, the
concept of having workspaces with runtime stacks allows
to skip the setup time for end-developers by sharing proper
configurations, e.g. with example projects and tutorials. In
Kuksa, Eclipse Che has proven to be a valuable asset for
developing a variety of applications and projects, such as
AGL (services, drivers, or applications such as ACC) for
different hardware platforms, or Spring Boot.</p>
          <p>To investigate, demonstrate, and evaluate the
aforementioned open-source technologies along with the standards
and cloud infrastructure proposed with the Eclipse Kuksa
project, an open-source test platform is developed in form
of a Raspberry Pi 3 based Rover that is shown in Figure 6
and described in the following.</p>
          <p>
            The RPI3-Rover [
            <xref ref-type="bibr" rid="ref13">14</xref>
            ] is a mobile robot that has several
features addressing various tasks such as actuation, sensing,
communication, and visualization. The Rover’s Raspberry Pi
3 features AGL as the operating system, while sensing is
accomplished by getting input from several sensors, such as
infrared proximity sensors, ultrasonic proximity sensors, a
compass, accelerometer, temperature sensor, and a camera.
The Rover also consists of two brushless DC motors for
actuation and an OLED display for visualization. With the
developed software, i.e. the rover-app, the Rover is able
to achieve several tasks such as following another robot in
adaptive cruise control mode, being controlled via a cloud
platform, a wifi-based client, or a bluetooth-based client,
camera streaming, image and sensor processing, sensor
information visualization etc. in a multi-threaded manner.
Additionally, the Rover’s application programming interface
(Rover API) [
            <xref ref-type="bibr" rid="ref10">11</xref>
            ] provides developers with a comprehensive
library for user application development such as the already
developed aforementioned applications.
          </p>
          <p>The Rover has been developed with a complete
opensource work-flow in parallel with Eclipse Kuksa
developments. For its release, the AGL software development kit
(SDK) has been adapted using embedded Linux tools Yocto
build system and BitBake build engine. By using these
tools, necessary dependencies for the Rover are built and
installed for AGL from custom recipes. Thus, the Rover’s
compatibility with AGL and other embedded Linux
distributions is significantly achieved. Furthermore, Eclipse Che
allows to configure Rover’s AGL SDK for easy open-source
development activities.</p>
          <p>Rover is developed especially for developers who want to
address cloud-based communication in cyber-physical
scenerios. Figure 8 shows the test environment setup prepared for
Rover using Rover’s API and relevant open-source
cloudrelated technologies. Rover API utilizes Eclipse Paho MQTT
client implementations in an object oriented manner for
MQTT-based cloud communication. Using this
implementation Rover is able to connect to topics on a cloud instance
that is running Eclipse Hono. Similarly, Rover’s telemetry
interface (shown in Figure 7), a visual MQTT client
implementation that is based on node.js and socket.io, also makes
use of Eclipse Paho MQTT client implementations in order to
connect, publish, and subscribe to the Eclipse Hono instance.
This communication allows multiple Rovers and telemetry
interfaces talk with each other, drive rovers, and visualize
sensor and core utilization information.
In the cloud server side, one of many available applications
is data statistics visualization. Eclipse Hono takes care of
this by storing information that is sent to the ”telemetry”
topic in an InfluxDB database. Although Grafana’s focus
is to visualize cloud data statistics rather than data itself,
a Grafana dashboard is created to filter the raw data itself
for visualization. Thus, Grafana is able to grab that
information from the InfluxDB and display the results in
JSONconfigurable dashboard. The dashboard configured for the
Rover is given as an example in the Figure 9, which involves
the sensor data visualization over time.</p>
          <p>V. CONCLUSIONS</p>
          <p>The Eclipse Kuksa initial public contribution is expected
during Q1 2018. Local tests and use case implementations
along with the Rover have shown that...
• ...the Rover image is extensively smaller (250MB for
Kuksa-AGL compared with 4GB using the Raspbian
OS)
• ...new technologies can be integrated easily without
adjusting the meta-kuksa layer too much
• ...soft real-time applications can be deployed
• ...versioning, issue tracking, and configuration can be
achieved on a modular and fine grained level
• ...browser-based development activities significantly
ease teamwork and leverage the use of required
configurations
• ...the utilization of Eclipse open source IoT
technologies is highly beneficial and allows concentrating on
specifics and innovative constructs
In the later course of the project, a holistic API will be
added to the kuksa-dev layer in order to provide easy
access to the various existing and upcoming technologies.
The authors are looking forward to leverage synergies with
established communities as well as technologies in order to
bring automotive based application development activities to
the next level. Therefore, cloud concepts and Spring Boot
applications can perform complex analyses and simulations
as well as upgrade and update applications for vehicles and
therewith make future driving more beneficial for end-users,
developers, tool suppliers, or even OEMs via a common easy
to use architecture.</p>
          <p>ACKNOWLEDGMENT</p>
          <p>The authors would like to express their appreciation to the
APPSTACLE consortium for sharing experience, expertise,
and knowledge. Special thanks to Johannes Kristan and
Tobias Rawald from Bosch Software Innovations for their
industrial insights into the various Eclipse IoT projects used
in Eclipse Kuksa.
[10] Eclipse Hono: https://www.eclipse.org/hono/, access
February 2018</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] The advantages of open source tools</article-title>
          ,
          <source>Kayla Matthews, jaxenter 21.11</source>
          .
          <year>2017</year>
          , https://jaxenter.com/ advantages-open-source-tools-
          <volume>139026</volume>
          .html,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Create</given-names>
            <surname>Your</surname>
          </string-name>
          <article-title>Own Internet of Things: A survey of IoT platforms, Kiran Jot Singh and Divneet Singh Kapoor</article-title>
          ,
          <source>IEEE Consumer Electronics Magazine (Volume: 6</source>
          , Issue: 2,
          <year>April 2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Open</given-names>
            <surname>Source</surname>
          </string-name>
          <article-title>Software for Industry 4.0</article-title>
          ,
          <string-name>
            <given-names>An</given-names>
            <surname>Eclipse</surname>
          </string-name>
          IoT Working Group collaboration,
          <year>October 2017</year>
          ,
          <article-title>The Eclipse Foundation</article-title>
          , Inc.,
          <source>Made available under the Eclipse Public License 2.0 (EPL-2.0)</source>
          , Online: https://iot.eclipse.org/resources/white-papers/ Eclipse%20IoT%
          <fpage>20White</fpage>
          %
          <fpage>20Paper</fpage>
          %
          <fpage>20</fpage>
          -%
          <source>20Open% 20Source%20Software%20for%20Industry%204</source>
          .0.pdf,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Kuksa</surname>
          </string-name>
          : https://projects.eclipse.org/ proposals/eclipse-kuksa,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>ITEA3</given-names>
            <surname>APPSTACLE Project</surname>
          </string-name>
          : https://itea3.org/project/ appstacle.html,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Automotive</given-names>
            <surname>Grade</surname>
          </string-name>
          Linux: https://www.automotivelinux. org,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Ditto</surname>
          </string-name>
          Project Proposal: https://projects.eclipse. org/proposals/eclipse-ditto
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>[8] Eclipse hawkBit: https://projects.eclipse.org/ proposals/hawkbit, access February 2018</mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Eclipse</given-names>
            <surname>Leshan</surname>
          </string-name>
          : https://www.eclipse.org/leshan/,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Rover</surname>
            <given-names>API</given-names>
          </string-name>
          : https://app4mc-rover.github.io/ rover-app,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Rover</surname>
            <given-names>APP</given-names>
          </string-name>
          : https://app4mc-rover.github.io/ rover-app,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [13] Rover Web: https://app4mc-rover.github.io/ rover-web,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [14] Rover Documentation: https://app4mc-rover.github.io/ rover-docs,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Automotive</given-names>
            <surname>Grade Linux Requirements Specifications</surname>
          </string-name>
          : http: //docs.automotivelinux.org/docs/architecture/ en/dev/reference/AGL_Specifications/agl_spec_ v1.
          <article-title>0_final</article-title>
          .pdf,
          <source>access February</source>
          <year>2018</year>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>Yocto</given-names>
            <surname>Project Software Development Kit (SDK) Developer's Guide</surname>
          </string-name>
          : http://www.yoctoproject.
          <source>org/docs/2</source>
          .1/ sdk-manual/sdk-manual.html
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>[17] AGL-kuksa: https://gitlab.idial.institute/ appstacle/agl-kuksa</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>