You are on page 1of 11

Page 1 of 11 IET Cyber-Physical Systems: Theory & Applications

This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

Developing IoT applications: Challenges and Frameworks.

Itorobong S. Udoh 1*, Gerald Kotonya 2


1
School of Computing and Communications, Lancaster University, Bailrigg, Lancaster LA1 4YW, Lancaster,
United Kingdom
2
School of Computing and Communications, Lancaster University, Bailrigg, Lancaster LA1 4YW, Lancaster,
United Kingdom
*
i.udoh@lancaster.ac.uk

Abstract: Internet of Things (IoT) is creating new opportunities for developing innovative applications by leveraging on
existing and new technologies. In recent years, a variety of consumer and industrial IoT applications have been developed
and deployed. Despite much progress, developing IoT applications is still a complex, time-consuming and a challenging
activity. This is because IoT systems involve a wide range of hardware and software components, depending on a variety of
communication and distributed system technologies. Many IoT application frameworks of varying approaches, have been
developed to manage the complexities of developing IoT applications. However, there remains a paucity of surveys on
these IoT application development frameworks. This paper presents a comprehensive review and a comparative analysis of
existing IoT application development frameworks and toolkits, illustrating their strengths and weaknesses. This study will
assist in finding the most appropriate IoT application development paradigm for the desired IoT application. Finally, future
research directions are highlighted to improve existing and future frameworks and toolkits for IoT applications.

Technologies that (i) enable things in IoT systems to share


1. Introduction and acquire contextual information, (ii)enable things in IoT
The central idea of Internet of things (IoT) is to systems to process contextual information, and (iii) improve
connect existing and future physical objects to the internet. the quality attributes of IoT systems. The first two
The authors in [1] describes the IoT as the integration of categories are jointly understood as the functional building
large numbers of real world objects onto the Internet, with blocks of IoT. The third category is not a functional but
the aim of turning high-level interactions with the physical rather the generally accepted requirements, without which
world into a matter as simple as interacting with the virtual the penetration of the IoT would be severely reduced. IoT
world . IoT creates an interconnection between the physical enabling technologies will be powered by IoT applications
world of things with the virtual world of information. With in delivering the benefits of IoT [4].
IoT, physical world objects can be embedded with IoT applications have been developed and deployed
identification, sensing, networking and computing in several domains such as transportation and logistics,
capabilities that will allow them to communicate with one healthcare, retail and supply chain, industry and
another over the Internet to accomplish some objectives [2]. environment[5],[6]. Despite their pervasiveness, developing
Everyday objects (these include electronic devices e.g. IoT applications remains challenging and time-consuming.
mobile phones, advanced technological systems e.g. This is because it involves dealing with several related
automobiles and objects one may not naturally think as issues, such as lack of proper identification of roles of
electronic such as clothes, trees and books) will share various stakeholders, as well as the lack of appropriate
information, providing a wealth of intelligence for planning frameworks to address the large scale and heterogeneity in
and making context related decisions. Transforming IoT systems [7]. Another major challenge is the difficulty in
everyday objects into smart objects holds enormous achieving effective programming abstractions at different
promises and benefits such as improving the quality of our technology layers, ranging from device software to
lives and optimising business processes. Ultimately, the goal middleware services and end user applications [8]. These
of IoT is to enable “things” to be connected anytime, difficulties increase the development time, resources and
anywhere, with anything and anyone, using any delay the deployment of the IoT applications. The
path/network and any service [3]. The complete complexity of IoT applications implies that it is
actualization of this vision will require significant research inappropriate to develop one in an ad hoc manner and as a
advancement in technologies from which IoT has its root result, a framework is required. An IoT application
and other emerging technologies. framework can simplify the difficult process of coping with
A number of these underlying technologies are not heterogeneous devices and software components,
completely new. Technologies such as RFID (Radio overcoming the complexities of distributed systems
Frequency Identification), machine-to-machine(M2M) technologies, handling a high volume of data, designing an
communication, wireless sensor and actuator networks and architecture for the application, implementing it in a
pervasive computing, have been applied to several program, writing specific code to validate the application,
application domains, ranging from industrial and and finally deploying it. A number of researchers have
manufacturing context for assets tracking to consumer proposed several IoT application frameworks with each
electronics for automation and monitoring. The authors in [3] having its own strength and weakness. A study of the
broadly grouped IoT technologies into three categories. various application development framework for IoT is an

IET Review Copy Only


1
IET Cyber-Physical Systems: Theory & Applications Page 2 of 11
This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

important step for designing and developing a high-quality RFID (Radio Frequency Identification) and its applications.
IoT application. The authors in [16] provide many identification techniques
There is a growing number of frameworks for IoT that are available for IoT such as Ubiquitous Codes (uCode)
application development. However, there is little research and electronic Product codes (EPC). Closely associated with
efforts that surveys these frameworks. Nonetheless, surveys IoT identification is addressing. Addressing methods of IoT
such as [9][10] explored and examined programming objects include IPv6 and 6LoWPAN. Since identification
platforms. The survey in [9] considers the architectural methods are not globally unique, addressing methods assists
perspective of IoT programming platforms such as Works in uniquely identifying IoT Objects.
with Nest [11], Allseen Alljoyn [12] and ARM mbed IoT Sensor networks will perform an important role in
Device Platform[13]. The authors propose a taxonomy that IoT systems. They represent the interface between the
identifies the essential architectural aspect of these IoT physical and the virtual world. While [17] addresses the
programming platforms. In [10], the authors present a evolution and application of Wireless Sensor Network
review of embedded device programming languages and (WSN) in IoT, the authors in [18] discuss the use of Wi-Fi
polyglot programming. The authors discuss some of the WSN in IoT vertical domains, which include smart
requirements for an IoT programming platform, with a agriculture, smart grid and intelligent environmental
general survey on the existing IoT programming platforms. protection. Another fundamental technology for IoT is the
These surveys do not capture recent IoT application communication technology. It aims at connecting
development frameworks and toolkits such as [4], [8], [34]- heterogeneous devices together to deliver a set of specific
[39] that supports the software engineering approach of IoT operations. A review of several communication
developing IoT applications. Furthermore, surveys on IoT technologies and a detailed illustration of how objects with
application development framework have been limited to the different communication protocols can be coupled together
programming environment. to provide the desired functionalities are presented in [19].
This paper aims to provide a comprehensive survey The middleware abstracts the functionalities of things
on the state of the art framework that manages IoT as services and aids in addressing some of the key IoT
application development from the conception phase to the challenges such as interoperability, integration,
deployment, presenting their supported features and heterogeneity, scalability, security and privacy and context-
limitations. This study will review and compare the different awareness. The survey of [20] outlined the requirements for
approaches used in developing IoT applications. IoT middleware (such as resource discovery, service
This paper has been organised into six major sections. discovery, resource management and data management) and
While the second section describes the IoT technological presented a detailed review of IoT middleware solutions
architecture, the third section presents the important IoT against the identified requirements. Emerging technologies
applications requirements. Section IV focuses on the such as big data analytics [21] and fog computing [22] are
challenges of building IoT application. Section V provides a accelerating the progress towards bringing IoT into our daily
comprehensive review of the existing IoT application lives. From a structural perspective, these enabling
development frameworks. Finally, Section VI summarises technologies constitute the IoT technology layered
the paper and outlines future improvements. architecture as shown in Fig.1.
It is worth noting that IoT components (hardware,
communication, software and data) are not restricted to a

Fig. 1. IoT Technology Architecture.


particular layer. For example, the software component can
2. Internet of Things Technological Ecosystem be found in the physical layer as device application, in the
There are several published papers that address the communication layer as edge applications, in the platform
enabling technologies of IoT. In [14] [15], the authors layer as cloud applications and in the application layer as
present the IoT identification technologies focusing on end user applications

2
IET Review Copy Only
Page 3 of 11 IET Cyber-Physical Systems: Theory & Applications
This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

In order to provide high-quality services to the end Intelligent things and system of systems are the
users, IoT system's design and development must be quality building blocks of Internet of things [26]. IoT applications
driven. Therefore, quality attributes such as reliability, will power IoT enabling technologies in transforming
security and adaptability must be identified and clearly everyday objects into smart objects that can understand and
defined across all the levels of IoT technology architecture obtain intelligence by making or enabling context related
to achieve the system purpose. decisions, resulting in the execution of tasks independently
Clearly defining the boundaries between layers is a without human intervention. Achieving this requires IoT
difficult challenge because the abstraction layer are often application to be designed and developed with intelligent
intermixed and in some cases, an IoT component across the decision-making techniques such as context-aware
different layers can be integrated together. For instance, an computing service, predictive analytics, complex event
IoT application can be implemented as both a device processing and behavioural analytics.
application and an edge application.
3.4. Real time
3. IoT Application Requirements
The nature of the technology architecture contributes A number of IoT domains requires the timely
to the essential requirements of IoT applications. Based on delivery of data and services. For instance, consider IoT in
the characteristics of IoT technology ecosystem such as scenarios such as telemedicine, patient care and vehicle-to-
heterogeneity, enormous scale, high volume of data and vehicle communications where a delay in seconds can have
dynamism as described in [3],[6],[20], a set of essential dangerous consequences Environments where operations are
requirements for IoT applications is described. These time-critical will require IoT applications that provide on-
requirements combined with quality attributes as defined in time delivery of data and services.
[23] can be used to develop a set of high-level requirements
for IoT applications. The list is not exhaustive but includes 3.5. Regulation Compliant
the vitally essential requirements.
IoT applications may collect sensitive personal
3.1. Security information about people daily activities such as detailed
household energy usage profile and travel history. Many
Privacy, trust, confidentiality and integrity are people consider this information as confidential. When such
considered important security principles for IoT due to the information is exposed to the Internet, there is a possibility
large number of devices, services and people connected to of privacy leakage and this could affect the privacy of the
the internet [24]. These principles are the top priority and individual. In order not to violate the privacy of people, IoT
essential requirements for IoT applications [25]. Since IoT applications must be compliant with the privacy
application uses data in various forms, speed and from a requirements established by law such as EU data protection
variety of sources, it is important it incorporates trust rules [27], otherwise, they could be prohibited.
mechanisms that enforce privacy and confidentiality. In
addition, IoT application must integrate mechanisms to 4. Challenges of IoT Application Development
check for the integrity of data to avoid the erroneous IoT’s application requirements as previously
operation of IoT applications. described combined with the inherent qualities of IoT
technology infrastructure makes the development of IoT
3.2. Adaptability application not an easy task. These characteristics create a
set of challenges for the IoT application stakeholders as
IoT systems will consist of several nodes, which will discussed below:
be resource constrained mobile and wirelessly connected to
the Internet. Due to factors such as poor connectivity and 4.1. Inherently Distributed
power shortage, nodes can be connected and disconnected
from the system arbitrarily. Furthermore, the state, location IoT applications are typically distributed across
and computing speed of these nodes can change several component systems. Basically, some IoT application
dynamically. All these factors can make IoT systems to be components will be implemented in the cloud/fog. While
extremely dynamic. In a physical environment that is highly functionalities such as real-time analysis and data
dynamic, IoT application needs to be self-adaptive to acquisition are implemented in the IoT device, the
manage the communication between the nodes and the application components that allows the end users to interact
services using them. [3] presents that IoT applications need with the IoT system will be implemented, usually as a
to designed and developed in a way that it can efficiently separate web, mobile or standalone application. IoT
and effectively react in a timely manner to the continuously applications may also be distributed over a wide and varying
changing context in accordance with, for instance, business geographical area [10]. As they are distributed, the classical
policies or performance objectives that are defined by approach of a centralised development methodology dealing
humans. IoT applications should be self-optimizing, self- with all these software components may no longer be
protecting, and self- configuring, resilient and energy- applicable. In addition, designing and implementing
efficient. distributed applications capable of taking consistent
decisions from non-centralised resources is not always an
3.3. Intelligence easy task.

3
IET Review Copy Only
IET Cyber-Physical Systems: Theory & Applications Page 4 of 11
This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

4.2. Deep Heterogeneity underlying requirements and complex dependencies


between IoT application and humans.
One of the major challenges in the realisation of IoT
applications is the interoperability among IoT devices using 4.6. Application Inter-dependency
a variety of technologies [28].IoT applications involve
interactions among heterogeneous devices, providing and Inter-dependency problem may arise when several
consuming services deployed in a heterogeneous network IoT applications share services from real world objects.
(such as fixed, wireless and mobile). This heterogeneity Consider two IoT applications running concurrently in a
emanates not only from the difference in features and home: an energy management application for regulating the
capabilities but also for other reasons such as the energy consumption of the electrical and electronics
manufacturer’s and vendors’ products and QoS appliances and a health care application for monitoring the
requirements since they do not always follow the same vital signs of the occupants of the house. To reduce the cost
standards and protocols. [29].Device and communication of deployment and channel contention, these applications
heterogeneity can make the portability of IoT applications share the information from the sensors in the home.
difficult to achieve. However, integrating both applications is challenging since
each application has its own assumptions about the real
4.3. Data Management world and may have no knowledge of how the other
application works. For example, the home health care
The data generated from these heterogeneous devices application may detect depression and decide to turn ON all
are generally in huge volume, in various forms, and are the lights. On the other hand, the energy management
generated at different speeds. IoT application will often application may decide to turn OFF lights when no motion
make critical decisions based on the data collected and is detected. Detecting and resolving such dependency
processed. Sometimes, these data can be corrupted for problems is important for the correctness of operation of
various reasons such as the failure of a sensor, introduction interacting IoT systems [33].
of an invalid data by a malicious user, delay in data delivery
and wrong data format. Consequently, IoT application 4.7. Multiple Stakeholders Concern
developers are faced with the challenge of developing
methods that establish the presence of invalid data and new The development of IoT applications involves
techniques that capture the relationship between the data various stakeholders with different and sometimes
collected and the decision to be made. conflicting concerns and expectations. [34] identified the
stakeholders of IoT application development, which include;
4.4. Application Maintenance domain expert, software designer, application developer,
device developer and network manager. These stakeholders
IoT applications will be executed on distributed have to address issues that are attributed to the life-cycle
systems consisting of millions of devices interacting in rich phases of an IoT application such design, implementation,
and complex ways. Gartner predicted that 26 billion devices deployment and evolution. The lack of mechanisms to
would be connected to the Internet by 2020[30]. Since IoT address the concerns of the various stakeholders and the
applications will be distributed over a wide geographical special skill and expertise required by the stakeholders to
area, there are concerns relating to the feasibility of identify components and to understand the system
application deployment that supports corrective and contributes to the challenges facing IoT application
adaptive maintenance. The codes running on these devices development.
will have to be debugged and updated regularly. However,
maintenance operations present a number of challenges. 4.8. Quality Evaluation
Allowing devices to support remote debugging and
application updates poses significant privacy and security Since IoT applications are currently being integrated
challenges. In addition, interactive debugging may be into the daily activities of our lives and sometimes used in
difficult due to the limited bandwidth of these devices. critical situations with little or no tolerance for errors and
failures. Therefore, it means that the overall system quality
4.5. Humans in the Loop is important and must be thoroughly evaluated to guarantee
that it is of high quality before being deployed. However,
Many IoT applications are human-centric evaluating quality attributes such as performance is a key
applications, i.e. humans and objects will work in synergy challenge since it depends on the performance of many
[31]. However, the dependencies and interactions between components as well as the performance of the underlying
humans and objects are yet to be fully harmonised. Humans technologies. The performance evaluation of the individual
in the loop have its advantage. For example, in healthcare, underlying technologies have been reported in the various
in-cooperating models of various human activities and literature [35][36][37], but the lack of a thorough
assisted technologies in the homes of the elderly can performance evaluation for IoT applications is still an open
improve their medical conditions. However, IoT issue. [30]
applications that model human behaviour is a significant
challenge, as it requires modelling of complex behavioural, 5. Review of Existing IoT Application Framework
psychological and physiological aspects of human nature
IoT Application development is an active research
[32]. New research is necessary to in-cooperate human
area. Several frameworks have been proposed and
behaviours in IoT application design and to understand the
4
IET Review Copy Only
Page 5 of 11 IET Cyber-Physical Systems: Theory & Applications
This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

implemented recently. These frameworks are diverse in their 5.2. FRASAD- Framework for Sensor Application
approach and scope. In this section, we present the most Development.
interesting IoT application development frameworks:
(i) IDeA- IoT DevProcess and AppFramework FRASAD [8] is a node-centric software architecture and a
(ii)FRASAD-Framework for Sensor Application rule-based programming model that allow designers to
Development describe IoT applications. It uses the multi-layered Model
Driven Architecture (MDA) for its architectural design. At
(iii)D-LITe-Distributed Logic for Internet of Things the highest abstraction level, a Domain Specific Language
sErvices (DSL) enabled by rule-based programming model uncouples
(iv) IoTLink- An Internet of Things Prototyping Toolkit the programming language and the execution model used by
(v) IoT Application Framework powered by WebRTC the underlying operating system.
This architecture integrates the traditional
(vi) DataTweet Framework
architecture of sensor nodes (Hardware Layer (HL),
(vii) IoTSuite Hardware Abstraction Layer (HAL) and Operating System
(viii) RapIoT Layer (OSL)) with two new upper layers: the Operating
System Abstraction Layer (OAL) and Application Layer
The selected frameworks have been recently (APL).
published and designed specifically for IoT applications. The goal of the APL and OAL layers is to offer a
Table I in the Appendix shows the comprehensive summary higher level of abstraction and portability when hiding the
of these frameworks. Details of the identified frameworks lower platform. At the APL, the Platform Independent
are discussed below: Model (PIM) of MDA, using a DSL designed at this layer,
captures the application’s logic and requirements through a
5.1. IDeA- IoT DevProcess and AppFramework mapping process. The OAL translates generic applications
written using the DSL into the equivalent operating system-
IDeA [4] adopts a model based systems engineering specific implementation. Given the OS-specific platform
methodology for IoT application development, focusing on model, a transformation process is defined to translate the
the design phase. It consists of a method called IoT PIM to a Platform Specific Model (PSM) in the OSL. The
DevProcess and a supporting tool called IoT AppFramework. OS-specific libraries and the hardware specific PSM in the
IDeA provides high-level abstractions to address the two lower layers, HL and HAL are used in the generation of
heterogeneity of hardware devices and software components the binary codes that drives the sensor nodes.
in the system model through a SysML profile named FRASAD supports the interaction between an upper
SysML4IoT. SysML4IoT aids stakeholders to deal with the layer and the next lower layer through a predefined interface.
system complexity increases the understanding and Every layer is encapsulated into a component. IoT
communicates the system model in an unambiguous. applications is built on top of this architecture independent
Furthermore, it promotes reusability and interoperability of the underlying platform, and a translator/compiler over
amongst software components and systems. The profile is the OS layer deals with the complexity of the translations
strongly based on the IoT Domain Model of the reference between both abstraction levels. In this way, FRASAD takes
model introduced by a European research project, called an application model as input and transparently transforms it
IoT-A [38].IDeA addresses the concerns of the various into the equivalent final platform specific application.
stakeholders( Device Expert, Domain Specialist, IoT FRASAD also provides a graphical user interface (GUI),
requirements Engineer, IoT Application Engineer and IoT code generation components and supporting tools were
Deployment Manager)using Views and ViewPoints. To included to help developers to design, implement, optimise,
promote reusability of model elements, IDeA uses IoT and test the IoT application. In evaluating FRASAD, there is
model libraries, a SysML package used for containing a need to extend the programming model and the framework
model elements, such as devices or resources, which can be to more operating systems and various kinds of IoT
reused by stakeholders when modelling IoT applications. applications.
The IoT application Viewpoints, SysML4IoT, and the model
library makes up the IoT AppFramework. 5.3. D-LITe- Distributed Logic for Internet of
The IoT DevProcess is an extension of the OOSEM(Object- Things sErvices
Oriented System Engineering Method), which basically
allocates activities to predefined stakeholders, provide D-LITe[39] is a distributed framework for designing
modifications and inclusion of existing activities and IoT applications and deploying them over a set of
artefacts. heterogeneous devices and platforms. It allows developers
IDeA was used in designing a smart building IoT to build and deploy IoT applications as a collaboration of
application system that makes offices more comfortable for logical units between nodes.
its employees and at the same time, reducing the energy D-LITe adopts the choreography approach in
consumption in a building system, which consists of several combining services by autonomous nodes. With
buildings, each one with one or more floors and each floor choreography, the framework can allow each node to
with several rooms. One of the major limitations of this independently react to changes in the context and assigns a
framework is that it requires all the stakeholders to have a unit of the entire IoT application to each participating nodes,
deep understanding of the IoT-A domain model. using processing capabilities that are closest to the source of

5
IET Review Copy Only
IET Cyber-Physical Systems: Theory & Applications Page 6 of 11
This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

the request. This arrangement reduces the network IoT applications. The framework provides a web-based user
bandwidth, thus saving energy. interface with interactive virtual IO ports and a runtime
The principle of operation of D-LITe is inspired by environment for IoT device emulation. The network
the Observer and the Strategy design pattern. With the architecture provides supports for the local computation and
Observer design pattern, this framework allows nodes to direct device-to-device connection.
subscribe to other nodes that publish data. Adopting the A network of IoT devices that adopts this network
Strategy design pattern approach, D-LITe can dynamically architecture uses WebRTC data channels to enable direct
change a node’s operation. Each node contains a static piece device-to-device communication for devices that supports
of code that provides access to the dynamic component of the WebRTC stack and the data channel API. For devices
the IoT application, which can be configured on the fly. A that do not supports the WebRTC stack and the data channel
rule analyser manages this dynamic component. The rule API, the device-to-device connection is relayed using an
analyser performs the execution of a set of rules that HTTP-RTCWeb proxy. The proxy server enables direct
represents a node’s expected behaviour. These set of rules device-to-device communication between devices that
can be set and changed and dynamically in the network. support WebRTC peer signalling and devices that do not. It
D-LITe provides a tool to program each node. It uses is typically deployed on a gateway node to devices that do
Finite State Transducer (FST) to describe the IoT not support WebRTC peer signalling. All devices that
application logic and a description language SALT (Simple participate in direct device-to-device connections maintain a
Application Logic description using Transducers) to persistent signalling channel to a device registrar server. The
configure nodes. SALT and a messaging service allow the registrar server facilitates device discovery and exchange of
D-LITe nodes to collaborate and interact with each other. signalling messages. It maintains a device directory database
that maps unique device IDs to Web Socket signalling
5.4. IoTLink- An Internet of Things Prototyping connections. The signalling channel is only used for device
Toolkit discovery and WebRTC signalling.
The main component of this framework is implemented in
IoTLink [40] is a development toolkit based on model- form of a web application, which provides all the features
driven development that allows stakeholders with limited necessary to model the non-trivial IoT devices in a browser.
programming skills to create IoT application models using a The application consists of two main components: User
graphical domain-specific language. Using visual notations, Interface (UI) and Device Runtime Environment. For
IoT developers can specify application components in a performance and security reasons, the two components are
platform-independent model, which then can be converted designed to run in separate JavaScript contexts. The UI
into a platform-specific model. provides a means to display a collection of widgets arranged
The platform independent meta-model of IoTLink is into virtual control panels and allows users to interact with
structured into four layers. The first layer is primarily the application. The device runtime environment simulates
responsible for the abstraction of heterogeneous connection an IoT device. The environment manages a collection of
to the various sensors. This layer also provides specific virtual ports, which emulates IO ports found on physical
communication technologies and a uniform interface for the hardware devices.
components in the other layers. The second layer determines This framework enforces developers to build IoT application
the specific state of physical objects by processing the data logic in JavaScript resulting into codes that are not easily
of the sensors. This layer is important because it may be portable to real embedded devices.
necessary to combine several types of sensors to sense some
physical events. The third layer uses the object- oriented 5.6. DataTweet Framework
paradigm to abstracts domain objects and their attributes
from the physical objects they represent. The fourth layer DataTweet [42] is an IoT application development
exposes the identified domain objects to the application framework that provides a mechanism for decoupling an IoT
logic and to the persistence storage. application logic from common IoT functionalities such as
IoTLink provides a visual editor that allows users to discovery, configuration and service management and
define concrete IoT application prototypes. Developers can registration. This framework provides an open source API
select concrete components across the four layers, and for the common functionalities, which allows developers to
connect them together. The generated model can be concentrate more on the end-user centric aspect of the IoT
transformed into a Java source code, which can be further application. The API significantly reduces the amount of
developed by an experienced developer. IoTLink toolkit written code and ultimately the time to complete the
supports rapid prototyping development and allows application.
developers to easily develop IoT application model visually The framework mainly consists of two components: (i)
and automatically generate a Java source codes based on the Application Logic (AL) (ii) Common Service Entity (CSE).
model. However, it does not allow developers to check for The AL supports all the activities involved in designing the
the integrity and completeness of the application model user-interface of the application. It provides an interface
before the generation of the Java source codes. through which end-users can interact with the IoT
application. This interface contains features such as such as
5.5. IoT Application Framework powered by semantic search (basic and advanced), updating
WebRTC configuration and sending commands to actuators. The AL
functionalities are primarily implemented by RESTful web
This framework [41] is a web-based application framework services.
and network architecture for rapidly developing distributed
6
IET Review Copy Only
Page 7 of 11 IET Cyber-Physical Systems: Theory & Applications
This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

The CSE is responsible for the identification and development of IoT systems that uses a network of devices
combination of several common functionalities required in that is distributed across several users and environments by
the development of an IoT application. These functionalities providing a low coupling interface between the IoT device
include security mechanisms by design to protect the and the application logic. This allows an IoT device to
privacy of the end users, collection proxies to manage the accommodate different applications without reprogramming
large range of communication protocols, and configuration it.
management. The CSE interacts with the hardware devices The development toolkit of RapIoT consists of the following
and provides a standard APIs to developers. components: (i) RapEmbedded: an Arduino library that
To promote cross-domain/use cases IoT application defines and implements RapIoT primitives on IoT devices;
scenarios, this framework can allow the CSE of a particular (ii) RapMobile: a multi-platform mobile app that primarily
domain to be connected to embedded devices belonging to a serves as the gateway layer between the hardware devices
different domain of operations. Furthermore, The AL and the RapIoT cloud service. It also supports the discovery
belonging to one application can be made to communicate and configuration of IoT devices. (iii) RapCloud: It consists
with the CSE of another application, thus enabling of the cloud service, a JavaScript library and the Rapcloud
horizontal IoT use cases. However, in industrial applications, API. This component enables the development of IoT
this feature may be difficult to achieve. applications that communicate with the hardware devices.
Basically, the RapEmbedded library on the Arduino board
5.7. DataTweet Framework implements the specific RapIoT primitives for each IoT
device. Instances of these primitives are broadcasted using
IoTSuite [43] is a toolkit for the rapid development the RapMobile and made available through a simple API
of IoT applications. It provides a set of tools that reduces the provided by RapCloud.
development effort at various phases of an IoT application The steps for developing IoT application using this toolkit
development process by providing automation. It supports includes:(i) Device development(ii) Application
the automation of tasks at the different phases of IoT development (iii) Application deployment (iv) Device
application development. Developing an IoT application appropriation (v)Application appropriation. RapIoT
using the IoTSuite framework involves the following steps approach of developing IoT applications facilitates the
in developing IoT applications:(i)domain vocabulary collaborative applications. However, it cannot be used for
specification, (ii) vocabulary specification compilation,(iii) IoT applications whose behaviour cannot be captured using
application architecture specification, (iv) architecture simple RapIoT primitives.
specification compilation, (v) application logic
implementation, (vi) target deployments specification, (vii) 6. Conclusion and Future Research Directions
generation of a map from a set computational services to a IoT applications are increasingly being deployed in
corresponding set of devices, (vii) device drivers several domains such as health, transportation and
implementation, (viii) linking and evolution. agriculture. Unlike conventional software applications, IoT
IoTSuite basically comprises of the following applications depends on a heterogeneous mix of
components to help stakeholders develop IoT applications technologies and components. Moreover, IoT stakeholders
rapidly: (i) An editor that allows stakeholders with limited require expertise in the underlying technologies and would
programming experience to write high-level textual need to clearly understand the domain knowledge. These
specifications.(ii) A compiler that parses high-level factors make the development of IoT application complex,
specifications and translates them into code that can be used time-consuming and challenging. Hence, the need for an IoT
by other components in the system.(iii) A mapper module framework.
that generates a mapping from computational services to This paper introduces the IoT technology stack and
devices.(iv) A linker module that integrates code generated describes the important requirements of IoT applications. It
by the various phases of compilation into a set of platform- then explores the challenges in developing IoT applications
specific packages for devices, specified in the deployment and reviews the existing development frameworks that
specification.(v) A runtime system, which leverages existing manages the complexity of building IoT applications,
middleware platforms and responsible for the distributed highlighting their strengths and weaknesses.
execution of an IoT application. This survey shows that a number of development
IoTSuite simplifies the process of developing IoT frameworks have been developed to ease the process of
application by providing automation at various stages of the building IoT applications. These frameworks differ from
application lifecycle. However, there is a need to integrate a each other in many aspects and similar to each other in
mechanism for testing the design and implementation of IoT several other aspects and most of them are still work in
application developed using this framework for faults and progress. It is observed that majority of the frameworks
errors. focuses on the speed of developing IoT applications,
ignoring the quality of the application during development.
5.8. RapIot Framework There is a need to integrate quality control mechanisms in
these frameworks that can help in generating IoT application
RapIoT [44] is a set of integrated tools that facilitates the with high quality. In addition, dynamic detection and
rapid prototyping of IoT application by non-experts. It aims integration of heterogeneous devices/services and new
at providing support to the development of collaborative technologies need to be investigated and implemented in
applications by defining a set of data primitives. RapIot these frameworks.
primitives (information sensed by sensors and actions
performed by actuators and displays) simplifies the
7
IET Review Copy Only
IET Cyber-Physical Systems: Theory & Applications Page 8 of 11
This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

7. References
[1] T. Teixeira, S. Hachem, V. Issarny, and N. Georgantas. [15] C. Sun, "Application of RFID technology for logistics
Service Oriented Middleware for the Internet of Things: A on the internet of things, AASRI Procedia, vol. 1, pp. 106–
Perspective. Towards a Service-Based Internet Lecture 111, 2012.
Notes in Computer Science, Pages 220-229. [16] N. Koshizuka and K. Sakamura, "Ubiquitous ID:
Standards for Ubiquitous computing and the Internet of
[2] A. Whitmore, A. Agarwal, and L. Da Xu, “The Internet Things," IEEE Pervasive Comput., vol. 9, no. 4, pp. 98–101,
of Things—A survey of topics and trends,” Inf. Syst. Front., Oct.–Dec. 2010.
vol. 17, no. 2, pp. 261– 274, Mar. 2015.
[17]IEC (International Electrotechnical Commission)
[3] O. Vermesan and P. Friess, “Internet of Things: Internet of Things: Wireless Sensor Networks (2014)
Converging Technologies for Smart Environments and
Integrated Ecosystems”, River Publishers, 2014. [18] L. Li, X. Hu, C. Ke, and K. He, “The applications of
WiFi-based wireless sensor network in Internet of things
[4] B. Costa, P. F. Pires, and F. C. Delicato, “Modeling IoT and smart grid,” In Proc. IEEE ICIEA, Jun. 2011, pp. 789–
Applications with SysML4IoT,” 2016 42nd Euromicro 793.
Conference on Software Engineering and Advanced
Applications (SEAA), 2016. [19] A. Al-Fuqaha, M. Guizani, M. Mohammadi, M.
Aledhari, and M. Ayyash, “Internet of Things: A Survey on
[5] K. K. Patel and S. M. Patel, “Internet of Things-IOT: Enabling Technologies, Protocols and Applications,” IEEE
Definition, Characteristics, Architecture, Enabling Communications Surveys & Tutorials, pp. 1–1, 2015.
Technologies, Application & Future Challenges”
International Journal of Engineering Science and [20] M. A. Razzaque, M. Milojevic-Jevric, A. Palade, and S.
Computing, vol. 6, no 5, May 2016. Clarke, “Middleware for Internet of Things: A Survey,”
[6] D. Miorandi, S. Sicari, F. De Pellegrini and I. Chlamtac, IEEE Internet of Things Journal, vol. 3, no. 1, pp. 70–95,
Internet of things: Vision, applications and research 2016.
challenges, AdHoc Networks, Volume 10, Issue 7, [21]Y. Simmhan and S. Perera, “Big Data Analytics
September 2012, Pages 1497-1516, ISSN 1570-8705. Platforms for Real-Time Applications in IoT,” Big Data
Analytics, pp. 115–135, 2016.
[7]P. Patel, and D. Cassou, Enabling high-level application
development for the Internet of Things, Journal of Systems [22]M. Chiang and T. Zhang, “Fog and IoT: An Overview
and Software, Volume 103, May 2015, Pages 62-84, ISSN of Research Opportunities,” IEEE Internet of Things
0164-1212. Journal, vol. 3, no. 6, pp. 854–864, 2016

[8] X. T. Nguyen, H. T. Tran, H. Baraki, and K. Geihs, [23]ISO. 25010, Systems and software engineering –
“FRASAD: A framework for model-driven IoT Application System and software product Quality Requirements and
Development,” 2015 IEEE 2nd World Forum on Internet of Evaluation (SQuaRE)-System and software quality models.
Things (WF-IoT), 2015.
[24] Lin, W. Yu, N. Zhang, X. Yang, H. Zhang and W.
[9] L. F. Rahman, T. Ozcelebi, and J. J. Lukkien, “Choosing Zhao, "A Survey on Internet of Things: Architecture,
Your IoT Programming Framework: Architectural Aspects,” Enabling Technologies, Security and Privacy, and
2016 IEEE 4th International Conference on Future Internet Applications", IEEE Internet of Things Journal, pp. 1-1,
of Things and Cloud (FiCloud), 2016. 2017.

[10] J. Krishnamurthy and M. Maheswaran, “Programming [25] A. Al-Fuqaha, M. Guizani, M. Mohammadi, M.


frameworks for Internet of Things,” Internet of Things, pp. Aledhari, and M. Ayyash, “Internet of Things: A Survey on
79–102, 2016. Enabling Technologies, Protocols, and Applications,” IEEE
Communications Surveys & Tutorials, vol. 17, no. 4, pp.
[11] “Works with Nest,” https://developer.nest.com, 2347–2376, 2015.
accessed 15 February 2017
[26] G. Kortuem, F. Kawsar, D. Fitton, and V.
[12] “Alljoyn,” https://allseenalliance.org, accessed 15 Sundramoorthy, “Smart objects as building blocks for the
February 2017 Internet of Things,” IEEE Internet Comput., vol. 14, no. 1,
pp. 44–51, Jan./Feb. 2010.
[13] “mbed,” http://www.mbed.com/en, accessed 18
February 2017 [27] TE Commission. (2012). “Protection of personal data,”
[Online]. Available: http://ec.europa.eu/justice/data-
[14] X. Jia, O. Feng, T. Fan, and Q. Lei, "RFID technology protection
and its applications in the internet of things (IoT)," in Proc.
2nd IEEE Int. Conf. Consum.Electron., Commun. [28] C. Sarkar, A. Nambi S. N., R. Prasad, A. Rahim, R.
Netw.(CECNet), Yichang, China, Apr. 21–23, 2012, pp. Neisse and G. Baldini, "DIAT: A Scalable Distributed
1282–1285. Architecture for IoT", IEEE Internet of Things Journal, vol.
2, no. 3, pp. 230-239, 2015.
8
IET Review Copy Only
Page 9 of 11 IET Cyber-Physical Systems: Theory & Applications
This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

[29] P. Bellavista, G. Cardone, A. Corradi, and L. Foschini, framework.” 2016 IEEE 3rd World Forum on Internet of
“Convergence of MANET and WSN in IoT urban Things (WF-IoT) (2016): n. pag. Web.
scenarios,” IEEE Sensors J., vol. 13, no. 10, pp. 3558–3567,
Oct. 2013. [43] D. Soukaras, P. Patel, H. Songz, and S. Chaudhary. “
IoTSuite: A ToolSuite for Prototyping Internet of Things
[30] Gartner, “Gartner says the Internet of Things installed Applications,” 2015.
base will grow to 26 billion units by 2020,” 2013.
[44] S. Mora, F. Gianni and M. Divitini “RapIoT Toolkit:
[31]J. Stankovic, "Research Directions for the Internet of Rapid Prototyping of Collaborative
Things", IEEE Internet of Things Journal, vol. 1, no. 1, pp. Internet of Things Applications,” 2016 International
3-9, 2014. Conference on Collaboration Technologies and
Systems,2016.
[32]D. Sousa Nunes, P. Zhang and J. Sa Silva, "A Survey on
Human-in-the-Loop Applications Towards an Internet of 8. Appendix
All", IEEE Communications Surveys & Tutorials, vol. 17,
no. 2, pp. 944-965, 2015. 8.1. Appendix A: Summary of IoT Frameworks
and Toolkits.
[33] S. Munir and J. Stankovic, “DepSys: Dependency-
aware integration of systems for smart homes,” In Proc. This is a table summarising the important features of the
ACM/IEEE Int. Conf. Cyber Phys. Syst., Apr. 2014. surveyed frameworks and toolkits.

[34] P. Patel, D. Cassou, Enabling high-level application


development for the Internet of Things, Journal of Systems
and Software, Volume 103, May 2015, Pages 62-84, ISSN
0164-1212

[35] W. Colitti, K. Steenhaut, N. De Caro, B. Buta, and V.


Dobrota, “Evaluation of constrained application protocol for
wireless sensor networks,” in Proc. 18th IEEE Workshop
LANMAN, 2011, pp. 1–6.

[36]M. Siekkinen, M. Hiienkari, J. K. Nurminen, and J.


Nieminen, “How low energy is Bluetooth low energy?
Comparative measurements withZigBee/802.15.4,” in Proc.
IEEE WCNCW, 2012, pp. 232–237.

[37] D. Uckelmann, “Performance measurement and cost


benefit analysis for RFID and Internet of Things
implementations in logistics,” in Quantifying the Value of
RFID and the EPCglobal Architecture Framework in
Logistics. New York, NY, USA: Springer-Verlag, 2012, pp.
71–100

[38] A. Bassi, Enabling things to talk. NewYork: Springer-


Verlag Berlin An, 2016.

[39] S. Cherrier, Y. Ghamri-Doudane, S. Lohier, G.


Roussel, “D-LITe: Building Internet of Things
Choreographies” 2016.<hal-01422433>

[40] F. Pramudianto, C. A. Kamienski, E. Souto, F. Borelli,


L. L. Gomes, D. Sadok and M. Jarke, “IoTLink: An Internet
of Things Prototyping Toolkit,” 2014 IEEE International
Conference on Ubiquitous Intelligence and Computing,2014

[41] J.Janak and H. Schulzrinne, “Framework for Rapid


Prototyping of Distributed IoT Applications Powered by
WebRTC,” 2016 Principles, Systems and Applications of IP
Telecommunications (IPTComm),2016.

[42] Datta, Soumya Kanti, and Christian Bonnet. “Easing


IoT application development through DataTweet

9
IET Review Copy Only
IET Cyber-Physical Systems: Theory & Applications Page 10 of 11
This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

Table 1: Summary of IoT Application Frameworks and Toolkits

10
IET Review Copy Only
Page 11 of 11 IET Cyber-Physical Systems: Theory & Applications
This article has been accepted for publication in a future issue of this journal, but has not been fully edited.
Content may change prior to final publication in an issue of the journal. To cite the paper please use the doi provided on the Digital Library page.

11
IET Review Copy Only

You might also like