Professional Documents
Culture Documents
net/publication/269572940
CITATIONS READS
27 2,249
11 authors, including:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Carlos Alberto Kamienski on 15 December 2014.
Ferry Pramudianto1, Carlos Alberto Kamienski2, Eduardo Souto3, Fabrizio Borelli4, Lucas L. Gomes5,
Djamel Sadok6, Matthias Jarke7
1
Fraunhofer FIT, Schloss Birlinghoven, St. Augustin, Germany
2,4
Federal University of ABC (UFABC), Santo André, Brazil
3
Federal University of Amazonas (UFAM), Manaus, Brazil
5,6
Federal University of Pernambuco (UFPE), Recife, Brazil
7
RWTH-Aachen, Ahornstr. 55, 52056 Aachen Germany
e-mail: 1ferry.ferry@fit,fraunhofer.de, 2cak@ufabc.edu.br, 3esouto@icomp.ufam.edu.br,
4
fabrizio.borelli@ufabc.edu.br, 5lucas.gomes@gprt.ufpe.br, 6jamel@gprt.ufpe.br, 7jarke@informatik.rwth-aachen.de
Abstract— The Internet of Things (IoT) application which often can be run on a powerful server or PCs often
development is a complex task that requires a wide range is done through middleware with newer programming
of expertise. Currently, the IoT community lacks a languages such as Java and C# since they offer features
development toolkit that enables inexperienced developers that simplify developers’ tasks, easier to maintain, and
to develop IoT prototypes rapidly. Filling this gap, we more forgiving since they utilize garbage collectors. In
propose a development toolkit based on a model-driven addition, developers are required to understand
approach, called IoTLink. IoTLink allows inexperienced heterogeneous communication paradigms and protocols
developers to compose mashup applications through a that are used by embedded devices, as well as enterprise
graphical domain-specific language that can be easily
applications.
configured and wired together to create an IoT applica-
This paper proposes a development toolkit, called
tion. Through visual components, IoTLink encapsulates
the complexity of communicating with devices and services IoTLink, based on model-driven development (MDD)
on the internet and abstracts them as virtual objects that approach that suggest system development should be
are accessible through different communication techno- done by defining the computation independent model
logies. Consequently, it solves interoperability between (CIM) which is refined to Platform-Independent Model
heterogeneous IoT components. Based on the visual model, (PIM), and detailed in a platform-specific model (PSM)
IoTLink is able to generate a complete Java project [3]. By utilizing a high-level model, IoTLink allows
including an extendable Java code. In a controlled inexperienced developers to compose distributed devices
experiment, IoTLink was 42% faster than using a Java and services into mashup [4] and visually define how the
library and able to outperformed the Java library’s user components are combined to represent “Things”. The
satisfactions. model can be transformed into a Java code, which can be
extended by more experienced developers in a further
Keywords—model driven development, mashup, Internet phase of the development. The generated codes may also
of Things, code generation, development tool be run as a standalone application that exposes the
domain objects through different protocols and
I. INTRODUCTION serialization formats, which can be chosen during the
While the number connected things increases rapidly, modeling phase.
the process of developing IoT system prototypes is still a The remainder of the paper is organized as follows.
complex task. It requires expertise in various fields, as Section 2 elaborates the related works including Internet
developers have to deal with various technological of things definition and mashup development. Section 3
challenges such as noise of various sensor components, describes the implementation of IoTLink. Section 4
network protocols and data format interoperability, describes the evaluation using a case study and formal
storing and analyzing a huge amount of data. study, in section 5 we conclude our work and describe
Additionally, the existing development platform used in our plans for IoTLink in the future.
IoT development are designed to support specific group II. RELATED WORKS
of developers such as embedded development or
enterprise application development. Consequently, to A. Internet of things definition and context
create a simple IoT prototype, developers are required to
combine different disintegrated tools and programming The Internet of Things (IoT) is a concept in which
platform. For instance, embedded C and model-driven devices and physical objects are connected and able to
development are often used for embedded system cooperate to achieve some goals. Initially, the term
development [1, 2] since they could work very efficiently ‘Internet of Things’ was coined by Kevin Ashton when
on devices that have very limited computing resources. he worked on P&G's supply chain [1]. Since then IoT
Meanwhile integrating IoT to enterprise applications definitions have been conveyed from different
perspectives, inspired by diverse visions [2]. First, the
“Things” vision focuses on enabling interaction between
physical objects and users. Second, the network-oriented
vision deals with various communication methods
among devices, systems and their users. Third, the
semantic oriented vision focuses on retrieving useful
information from massive and inconsistent data
generated by sensors and another kind of data providers
to support the users.
The Internet of Things European Research Cluster
(IERC) defines IoT as "A dynamic global network
infrastructure with self-configuring capabilities based on
standard and interoperable communication protocols
where physical and virtual “things” have identities, Figure 1. An example of a mashup service for querying a
physical attributes, and virtual personalities and use web service, developed on Yahoo! Pipes.
intelligent interfaces, and are seamlessly integrated into
the information network" [3]. This definition highlights Figure 1 presents an example of a mashup
that IoT is not only concerned with the communication development environment of the Yahoo! Pipes. It
between physical and virtual world but also demands that follows a Flow-Based Programming (FBP) [8] approach
the physical objects become smarter to accomplish for composing the interaction between predefined
autonomous systems that require very little to zero modules. The outputs of one module can be connected to
maintenance. the input of other modules as long as their types are
In terms of application development, high-level compatible. Otherwise, data transformation components
architectures and IoT middleware have been proposed must be introduced. A study evaluated the acceptance of
which has been summarized extensively here [4, 5]. Yahoo! Pipes’ among eight students revealed a good
Among these approaches, Service Oriented Architecture acceptance and a fast learning curve [7]. Moreover,
(SOA) has become popular to ensure horizontal and mashup development has been investigated to involve
vertical integrations among applications and devices. business users, who do not have extensive programming
Recently, cloud-based providers known as the Web experience, to create and share customized business
of Things (WoT) such as Xively (www.xively.com), applications. This approach is proposed to reduce the
OpenSense (open.sen.se), and ThingWorx (www. bottleneck on the IT department, which has to implement
thingworx.com) become quite popular as a platform to different business requirements within a limited period
collect, aggregate, and visualize a large amount of sensor [8, 9]. Allowing non-experts to participate in creating
data. They provide an API store sensor data in the cloud, business applications may help overcoming the time to
perform data analytics and visualize relevant information market demands, which has been increasingly becoming
(e.g., geographical data). Some providers offer a mashup shorter.
development tool for process and visualize sensor An open source project from IBM called Node-RED
streams rapidly. However, only a few of them provide a (nodered.org) adopts a similar approach to develop IoT
support for integrating heterogeneous devices into the mashup that can be deployed on a PC as well as smaller
platform e.g. Xively provides libraries in several platforms such as Raspberry PI (www.raspberrypi.org).
languages to consume their API from devices directly. Their approach relies purely on data flow abstractions
unlike our approach that keeps the abstraction
B. Mashup Development resembling physical objects, which is more natural to
Mashup development is a way of building web interact with from the application development
applications rapidly by aggregating different data sources perspective.
on the web using a graphical development interface [6].
III. IOTLINK CONCEPT & IMPLEMENTATION
Yahoo! Pipes (Figure 1), and DERI Pipes [7] are
examples of mashup development platforms that allow There has been some efforts to define IoT metamodel
end-user developers to compose services by linking which suggest how physical objects could be represented
components with a high level of abstraction. Thus, by software services e.g., Ebbits (www.ebbits.eu) an
mashup development is less flexible than conventional European research project aims at developing IoT
programming language since it reveals less technical platform for business applications, IoT-A, a European
details to ensure the simplicity of the development [6]. research project aim at standardizing IoT architecture.
Because of this reason, mashup development generally IoT-A has investigated the different IoT architectures
targets end-users with minimal development experiences and concludes them as an IoT Architecture Reference
instead of expert developers. Usually, mashup Model (ARM) [9]. Figure 2 illustrates a simplified IoT-A
development is supported by a visual tool such as shown metamodel. It shows that a physical object must be
in Figure 10. uniquely identifiable, has physical qualities that partly
can be observed by sensors, and has some capabilities or
services that could affect the environment. Physical
objects can be represented by virtual objects, which act Java allows us to implement artifacts that can be directly
as their proxy allowing applications to retrieve their compiled and used as proxies for the “Things”.
states and consume their services. Due to these considerations we define IoTLink’s
metamodel as a groundwork for the development of
IoTLink (has been evaluated in [12]). The metamodel
comprises the aforementioned abstraction layers and
specific implementations of each layer. As depicted in
Figure 3, several concrete connections are implemented
and derived from the connections class. The link between
connections and properties could go through concrete
sensor fusion components. The virtual objects can be
serialized through output components. The output
components also allow external applications to interact
with the virtual objects i.e. by consuming their services.
Class Property
baseTopic/virtualobject/[ObjectClass]/[Obj.Id]/[PropName]
baseTopic/virtualobject/[Obj.Id1]/[Obj.Id2]/../[PropName],
where the subsequent object is a child
object of the prior object.