0% found this document useful (0 votes)
108 views8 pages

Developing IoT Applications Challenges and Frameworks

This document summarizes an article that reviews frameworks for developing Internet of Things (IoT) applications. It begins by introducing IoT and discussing the challenges of developing IoT applications, which involve dealing with heterogeneous devices and software. It then discusses how IoT application frameworks can help simplify and manage the complex development process. The document reviews several existing frameworks and toolkits for developing IoT applications. Finally, it highlights the need for future work to improve frameworks and better support the software engineering of IoT applications.

Uploaded by

H Shekarlab
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
108 views8 pages

Developing IoT Applications Challenges and Frameworks

This document summarizes an article that reviews frameworks for developing Internet of Things (IoT) applications. It begins by introducing IoT and discussing the challenges of developing IoT applications, which involve dealing with heterogeneous devices and software. It then discusses how IoT application frameworks can help simplify and manage the complex development process. The document reviews several existing frameworks and toolkits for developing IoT applications. Finally, it highlights the need for future work to improve frameworks and better support the software engineering of IoT applications.

Uploaded by

H Shekarlab
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

IET Cyber-Physical Systems: Theory & Applications

Special Issue: Reliability and Quality Control for Cyber-Physical


Systems

Developing IoT applications: challenges and ISSN 2398-3396


Received on 31st May 2017
Accepted on 27th September 2017
frameworks E-First on 16th March 2018
doi: 10.1049/iet-cps.2017.0068
www.ietdl.org

Itorobong S. Udoh1 , Gerald Kotonya1


1School of Computing and Communications, Lancaster University, Bailrigg, Lancaster LA1 4YW, Lancaster, UK
E-mail: [email protected]

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 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 study 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.

1 Introduction IoT applications have been developed and deployed in several


domains such as transportation and logistics, healthcare, retail and
The central idea of the Internet of things (IoT) is to connect supply chain, industry and environment [5, 6]. Despite their
existing and future physical objects to the Internet. Teixeira et al. pervasiveness, developing IoT applications remains challenging
[1] describe the IoT as the integration of large numbers of real and time-consuming. This is because it involves dealing with
world objects into the Internet, with the aim of turning high-level several related issues, such as lack of proper identification of roles
interactions with the physical world into a matter as simple as of various stakeholders, as well as the lack of appropriate
interacting with the virtual world. IoT creates an interconnection frameworks to address the large-scale and heterogeneity in IoT
between the physical world of things with the virtual world of systems [7]. Another major challenge is the difficulty in achieving
information. With IoT, physical world objects can be embedded effective programming abstractions at different technology layers,
with identification, sensing, networking and computing capabilities ranging from device software to middleware services and end-user
that will allow them to communicate with one another over the applications [8]. These difficulties increase the development time,
Internet to accomplish some objectives [2]. Everyday objects (these resources and delay the deployment of the IoT applications. The
include electronic devices, e.g. mobile phones, advanced complexity of IoT applications implies that it is inappropriate to
technological systems, e.g. automobiles and objects one may not develop one in an ad hoc manner and as a result, a framework is
naturally think as electronics such as clothes, trees and books) will required. An IoT application framework can simplify the difficult
share information, providing a wealth of intelligence for planning process of coping with heterogeneous devices and software
and making context-related decisions. Transforming everyday components, overcoming the complexities of distributed system
objects into smart objects holds enormous promises and benefits technologies, handling a high volume of data, designing an
such as improving the quality of our lives and optimising business architecture for the application, implementing it in a program,
processes. Ultimately, the goal of IoT is to enable ‘things’ to be writing specific code to validate the application, and finally
connected anytime, anywhere, with anything and anyone, using deploying it. A number of researchers have proposed several IoT
any path/network and any service [3]. The complete actualisation application frameworks with each having its own strength and
of this vision will require significant research advancement in weakness. A study of the various application development
technologies from which IoT has its root and other emerging frameworks for IoT is an important step for designing and
technologies. developing a high-quality IoT application.
A number of these underlying technologies are not completely There is a growing number of frameworks for IoT application
new. Technologies such as radio frequency identification (RFID), development. However, there are little research efforts that survey
machine-to-machine (M2M) communication, wireless sensor and these frameworks. Nonetheless, surveys such as [9, 10] explored
actuator networks and pervasive computing, have been applied to and examined programming platforms. The survey in [9] considers
several application domains, ranging from industrial and the architectural perspective of IoT programming platforms such as
manufacturing context for assets tracking to consumer electronics Works with Nest [11], Allseen Alljoyn [12] and ARM mbed IoT
for automation and monitoring. Vermesan and Friess [3] broadly Device Platform [13]. The authors propose a taxonomy that
grouped IoT technologies into three categories. Technologies that identifies the essential architectural aspect of these IoT
(i) enable things in IoT systems to share and acquire contextual programming platforms. In [10], the authors present a review of
information, (ii) enable things in IoT systems to process contextual embedded device programming languages and polyglot
information, and (iii) improve the quality attributes of IoT systems. programming. The authors discuss some of the requirements for an
The first two categories are jointly understood as the functional IoT programming platform, with a general survey on the existing
building blocks of IoT. The third category is not a functional but IoT programming platforms. These surveys do not capture recent
rather the generally accepted requirements, without which the IoT application development frameworks and toolkits such as [4, 7,
penetration of the IoT would be severely reduced. IoT enabling 8, 14–18] that supports the software engineering approach of
technologies will be powered by IoT applications in delivering the developing IoT applications. Furthermore, surveys on IoT
benefits of IoT [4].

IET Cyber-Phys. Syst., Theory Appl., 2018, Vol. 3 Iss. 2, pp. 65-72 65
This is an open access article published by the IET under the Creative Commons Attribution -NonCommercial License
(http://creativecommons.org/licenses/by-nc/3.0/)
Fig. 1  IoT technology architecture

application development framework have been limited to the It is worth noting that IoT components (hardware,
programming environment. communication, software and data) are not restricted to a particular
This paper aims to provide a comprehensive survey on the layer. For example, the software component can be found in the
state-of-the-art framework that manages IoT application physical layer as device application, in the communication layer as
development from the conception phase to the deployment, edge applications, in the platform layer as cloud applications and in
presenting their supported features and limitations. This study will the application layer (APL) as end-user applications.
review and compare the different approaches used in developing To provide high-quality services to the end users, IoT system's
IoT applications. design and development must be quality driven. Therefore, quality
This paper has been organised into six major sections. While attributes such as reliability, security and adaptability must be
the second section describes the IoT technological architecture, the identified and clearly defined across all the levels of the IoT
third section presents the important IoT application requirements. technology architecture to achieve the system purpose.
Section IV focuses on the challenges of building IoT applications. Clearly defining the boundaries between layers is a difficult
Section V provides a comprehensive review of the existing IoT challenge because the abstraction layer is often intermixed and in
application development frameworks. Finally, Section VI some cases, an IoT component across the different layers can be
summarises the paper and outlines future improvements. integrated together. For instance, an IoT application can be
implemented as both a device application and an edge application.
2 IoT technological ecosystem
There are several published papers that address the enabling
3 IoT application requirements
technologies of IoT. In [19, 20], the authors present the IoT The nature of the technology architecture contributes to the
identification technologies focusing on radio frequency essential requirements of IoT applications. Based on the
identification (RFID) and its applications. Koshizuka and characteristics of the IoT technology ecosystem such as
Sakamura [21] provide many identification techniques that are heterogeneity, enormous scale, high volume of data and dynamism
available for IoT such as ubiquitous codes (uCode) and electronic as described in [3, 6, 25], a set of essential requirements for IoT
product codes. Closely associated with IoT identification is applications is described. These requirements combined with
addressing. Addressing methods of IoT objects include IPv6 and quality attributes as defined in [28] can be used to develop a set of
6LoWPAN. Since identification methods are not globally unique, high-level requirements for IoT applications. The list is not
addressing methods assists in uniquely identifying IoT objects. exhaustive but includes the vitally essential requirements.
Sensor networks will perform an important role in IoT systems.
They represent the interface between the physical and the virtual 3.1 Security
world. While [22] addresses the evolution and application of a
wireless sensor network (WSN) in IoT, Li et al. [23] discuss the Privacy, trust, confidentiality and integrity are considered
use of WiFi WSN in IoT vertical domains, which include smart important security principles for IoT due to the large number of
agriculture, smart grid and intelligent environmental protection. devices, services and people connected to the internet [29]. These
Another fundamental technology for IoT is the communication principles are the top priority and essential requirements for IoT
technology. It aims at connecting heterogeneous devices to deliver applications [24]. Since the IoT application uses data in various
a set of specific IoT operations. A review of several forms, speed and from a variety of sources, it is important it
communication technologies and a detailed illustration of how incorporates trust mechanisms that enforce privacy and
objects with different communication protocols can be coupled confidentiality. In addition, IoT application must integrate
together to provide the desired functionalities are presented in [24]. mechanisms to check for the integrity of data to avoid the
The middleware abstracts the functionalities of things as erroneous operation of IoT applications.
services and aids in addressing some of the key IoT challenges
such as interoperability, integration, heterogeneity, scalability, 3.2 Adaptability
security and privacy and context-awareness. The survey of [25]
outlined the requirements for IoT middleware (such as resource IoT systems will consist of several nodes, which will be resource
discovery, service discovery, resource management and data constrained mobile and wirelessly connected to the Internet. Due to
management) and presented a detailed review of IoT middleware the factors such as poor connectivity and power shortage, nodes
solutions against the identified requirements. Emerging can be connected and disconnected from the system arbitrarily.
technologies such as big data analytics [26] and fog computing Furthermore, the state, location and computing speed of these
[27] are accelerating the progress towards bringing IoT into our nodes can change dynamically. All these factors can make IoT
daily lives. From a structural perspective, these enabling systems to be extremely dynamic. In a physical environment that is
technologies constitute the IoT technology layered architecture as highly dynamic, IoT application needs to be self-adaptive to
shown in Fig. 1. manage the communication between the nodes and the services
using them. Vermesan and Friess [3] present that IoT applications
66 IET Cyber-Phys. Syst., Theory Appl., 2018, Vol. 3 Iss. 2, pp. 65-72
This is an open access article published by the IET under the Creative Commons Attribution -NonCommercial License
(http://creativecommons.org/licenses/by-nc/3.0/)
need to designed and developed in a way that it can efficiently and in features and capabilities but also for other reasons such as the
effectively react in a timely manner to the continuously changing manufacturer's and vendors' products and quality of service
context in accordance with, for instance, business policies or requirements since they do not always follow the same standards
performance objectives that are defined by humans. IoT and protocols [33]. Device and communication heterogeneity can
applications should be self-optimising, self-protecting, and self- make the portability of IoT applications difficult to achieve.
configuring, resilient and energy-efficient.
4.3 Data management
3.3 Intelligence
The data generated from these heterogeneous devices are generally
Intelligent things and system of systems are the building blocks of in huge volume, in various forms, and are generated at different
IoT [30]. IoT applications will power IoT enabling technologies in speeds. IoT applications will often make critical decisions based on
transforming everyday objects into smart objects that can the data collected and processed. Sometimes, these data can be
understand and obtain intelligence by making or enabling context- corrupted for various reasons such as the failure of a sensor,
related decisions, resulting in the execution of tasks independently introduction of an invalid data by a malicious user, delay in data
without human intervention. Achieving this requires IoT delivery and wrong data format. Consequently, IoT application
application to be designed and developed with intelligent decision- developers are faced with the challenge of developing methods that
making techniques such as context-aware computing service, establish the presence of invalid data and new techniques that
predictive analytics, complex event processing and behavioural capture the relationship between the data collected and the decision
analytics. to be made.

3.4 Real time 4.4 Application maintenance


A number of IoT domains requires the timely delivery of data and IoT applications will be executed on distributed systems consisting
services [25]. For instance, consider IoT in scenarios such as of millions of devices interacting in rich and complex ways.
telemedicine, patient care and vehicle-to-vehicle communications Gartner predicted that 26 billion devices would be connected to the
where a delay in seconds can have dangerous consequences. Internet by 2020 [34]. Since IoT applications will be distributed
Environments, where operations are time-critical, will require IoT over a wide geographical area, there are concerns relating to the
applications that provide on-time delivery of data and services. feasibility of application deployment that supports corrective and
adaptive maintenance. The codes running on these devices will
3.5 Regulation compliant have to be debugged and updated regularly. However, maintenance
operations present a number of challenges. Allowing devices to
IoT applications may collect sensitive personal information about support remote debugging and application updates poses
people's daily activities such as detailed household energy usage significant privacy and security challenges. In addition, interactive
profile and travel history. Many people consider this information as debugging may be difficult due to the limited bandwidth of these
confidential. When such information is exposed to the Internet, devices.
there is a possibility of privacy leakage, and this could affect the
privacy of the individual. In order not to violate the privacy of 4.5 Humans in the loop
people, IoT applications must be compliant with the privacy
requirements established by law such as EU data protection rules Many IoT applications are human-centric applications, i.e. humans
[31], otherwise, they could be prohibited. and objects will work in synergy [35]. However, the dependencies
and interactions between humans and objects are yet to be fully
4 Challenges of IoT application development harmonised. Humans in the loop have their advantages. For
example, in healthcare, incorporating models of various human
IoT's application requirements as previously described combined activities and assisted technologies in the homes of the elderly can
with the inherent qualities of the IoT technology infrastructure improve their medical conditions. However, IoT applications that
makes the development of IoT application, not an easy task. These model human behaviour is a significant challenge, as it requires
characteristics create a set of challenges for the IoT application modelling of complex behavioural, psychological and
stakeholders as discussed below. physiological aspects of human nature [36]. New research is
necessary to incorporate human behaviours in IoT application
4.1 Inherently distributed design and to understand the underlying requirements and complex
dependencies between IoT applications and humans.
IoT applications are typically distributed across several component
systems. Basically, some IoT application components will be
implemented in the cloud/fog. While functionalities such as real- 4.6 Application inter-dependency
time analysis and data acquisition are implemented in the IoT An inter-dependency problem may arise when several IoT
device, the application components that allow the end users to applications share services from real-world objects. Consider two
interact with the IoT system will be implemented, usually as a IoT applications running concurrently in a home: an energy
separate web, mobile or standalone application. IoT applications management application for regulating the energy consumption of
may also be distributed over a wide and varying geographical area the electrical and electronic appliances and a health-care
[10]. As they are distributed, the classical approach of a centralised application for monitoring the vital signs of the occupants of the
development methodology dealing with all these software house. To reduce the cost of deployment and channel contention,
components may no longer be applicable. In addition, designing these applications share the information from the sensors in the
and implementing distributed applications capable of taking home. However, integrating both applications is challenging since
consistent decisions from non-centralised resources is not always each application has its own assumptions about the real world and
an easy task. may have no knowledge of how the other application works. For
example, the home health care application may detect depression
4.2 Deep heterogeneity and decide to turn ON all the lights. On the other hand, the energy
management application may decide to turn OFF lights when no
One of the major challenges in the realisation of IoT applications is motion is detected. Detecting and resolving such dependency
the interoperability among IoT devices using a variety of problems is important for the correctness of operation of
technologies [32]. IoT applications involve interactions among interacting IoT systems [37].
heterogeneous devices, providing and consuming services
deployed in a heterogeneous network (such as fixed, wireless and
mobile). This heterogeneity emanates not only from the difference

IET Cyber-Phys. Syst., Theory Appl., 2018, Vol. 3 Iss. 2, pp. 65-72 67
This is an open access article published by the IET under the Creative Commons Attribution -NonCommercial License
(http://creativecommons.org/licenses/by-nc/3.0/)
4.7 Multiple stakeholders concern literature [14–16], but the lack of a thorough performance
evaluation for IoT applications is still an open issue [24].
The development of IoT applications involves various stakeholders
with different and sometimes conflicting concerns and
expectations. Patel and Cassouc [7] identified the stakeholders of 5 Review of existing IoT application framework
IoT application development, which include domain expert, IoT application development is an active research area. Several
software designer, application developer, device developer and frameworks have been proposed and implemented recently. These
network manager. These stakeholders have to address issues that frameworks are diverse in their approach and scope. In this section,
are attributed to the life-cycle phases of an IoT application such as we present the most interesting IoT application development
design, implementation, deployment and evolution. The lack of frameworks:
mechanisms to address the concerns of the various stakeholders
and the special skill and expertise required by the stakeholders to i. IDeA – IoT DevProcess and AppFramework
identify components and to understand the system contributes to ii. FRASAD – framework for sensor application development
the challenges facing IoT application development. iii. D-LITe – distributed logic for IoT services
iv. IoTLink – an IoT prototyping toolkit
4.8 Quality evaluation v. IoT application framework powered by WebRTC
Since IoT applications are currently being integrated into the daily vi. DataTweet Framework
activities of our lives and sometimes used in critical situations with vii IoTSuite
little or no tolerance for errors and failures, it therefore means that .
the overall system quality is important and must be thoroughly vii RapIoT
evaluated to guarantee that it is of high quality before being i.
deployed. However, evaluating quality attributes such as
performance is a key challenge since it depends on the The selected frameworks have been recently published and
performance of many components as well as the performance of designed specifically for IoT applications. Table 1 shows the
the underlying technologies. The performance evaluation of the comprehensive summary of these frameworks. Details of the
individual underlying technologies has been reported in the identified frameworks are discussed below.

Table 1 Summary of IoT application frameworks and toolkits


Framework Development Technology Essential Tool Support for application life cycle
methodology layer characteristics support Requirements Design Implementation Testing Deployment
engineering and
maintenance
IDeA model-based application • support reusability yes ✗ ✓ ✗ ✗ ✗
systems and platform of components
layer • generation of — — — — — —
application system
models to help
stakeholders identify
components and
understand the
system
FRASAD model driven physical layer • addresses the yes ✗ ✓ ✓ ✗ ✗
development heterogeneity and
complexity exhibited
by sensor nodes and
their operating
systems
• improves the — — — — — —
reusability, flexibility
and maintainability of
sensor software
D-LITe micro- physical • supports yes ✗ ✓ ✗ ✗ ✓
programming Layer interoperability
among
heterogeneous
nodes
• supports the — — — — — —
reconfiguration and
reprogramming of
nodes with minimum
human intervention
IoTSuite model driven APL • supports the yes ✓ ✓ ✓ ✗ ✓
development automation of the
application
development
lifecycle
• flexibility to extend — — — — — —
an application with a
new technology open
source

68 IET Cyber-Phys. Syst., Theory Appl., 2018, Vol. 3 Iss. 2, pp. 65-72
This is an open access article published by the IET under the Creative Commons Attribution -NonCommercial License
(http://creativecommons.org/licenses/by-nc/3.0/)

Framework Development Technology Essential Tool Support for application life cycle
methodology layer characteristics support Requirements Design Implementation Testing Deployment
engineering and
maintenance
IoTLink model driven application and • addresses yes ✗ ✓ ✓ ✗ ✗
development platform layer interoperability
issues between
heterogeneous IoT
components
• rapid and easy — — — — — —
generation of IoT
application
prototypes by
stakeholders with
limited
programming
experience
• accelerate the — — — — — —
development time
of IoT applications
WebRTC component physical layer • supports device- yes ✗ ✓ ✗ ✗ ✗
based based to-device
Framework development • manages — — — — — —
heterogeneous
network of devices
• provides — — — — — —
interactive drag
and drop panel
editor for end user
applications
DataTweet not clear. application, • open source APIs yes ✗ ✓ ✓ ✗ ✗
Platform and for common IoT
communication functionalities
layer. • integration of — — — — — —
information-centric
networking
• interoperability — — — — — —
with the M2M
standard.
• support security — — — — — —
mechanisms in IoT
application design
• promotes cross — — — — — —
domain IoT
application
RapIoT event-driven physical and • supports the yes ✗ ✗ ✓ ✗ ✓
programming platform layers development of
collaborative
applications
• reuse of deployed — — — — — —
devices for
different application
without
reprogramming

5.1 IDeA – IoT DevProcess and AppFramework research project, called IoT-A [17]. IDeA addresses the concerns of
the various stakeholders (device expert, domain specialist, IoT
IDeA [4] adopts a model-based systems engineering methodology requirements engineer, IoT application engineer and IoT
for IoT application development, focusing on the design phase. It deployment manager) using Views and ViewPoints. To promote
consists of a method called IoT DevProcess and a supporting tool reusability of model elements, IDeA uses IoT model libraries, a
called IoT AppFramework. SysML package used for containing model elements, such as
IDeA provides high-level abstractions to address the devices or resources, which can be reused by stakeholders when
heterogeneity of hardware devices and software components in the modelling IoT applications. The IoT application Viewpoints,
system model through a SysML profile named SysML4IoT. SysML4IoT, and the model library make up the IoT
SysML4IoT aids stakeholders to deal with the system complexity AppFramework.
and unambiguously communicates the system model. Furthermore, The IoT DevProcess is an extension of the object-oriented
it promotes reusability and interoperability amongst software system engineering method, which basically allocates activities to
components and systems. The profile is strongly based on the IoT predefined stakeholders, provides modifications and inclusion of
domain model of the reference model introduced by a European existing activities and artefacts.

IET Cyber-Phys. Syst., Theory Appl., 2018, Vol. 3 Iss. 2, pp. 65-72 69
This is an open access article published by the IET under the Creative Commons Attribution -NonCommercial License
(http://creativecommons.org/licenses/by-nc/3.0/)
IDeA was used in designing a smart building IoT application D-LITe provides a tool to program each node. It uses finite state
system that makes offices more comfortable for its employees and transducer to describe the IoT application logic (AL) and a
in reducing the energy consumption in the building system, which description language SALT (simple AL description using
consists of several buildings, each one with one or more floors and transducers) to configure nodes. SALT and a messaging service
each floor with several rooms. One of the major limitations of this allow the D-LITe nodes to collaborate and interact with each other.
framework is that it requires all the stakeholders to have a deep
understanding of the IoT-A domain model. 5.4 IoTLink – an IoT prototyping toolkit

5.2 FRASAD – framework for sensor application IoTLink [38] is a development toolkit based on model-driven
development development that allows stakeholders with limited programming
skills to create IoT application models using a graphical domain-
FRASAD [8] is a node-centric software architecture and a rule- specific language. Using visual notations, IoT developers can
based programming model that allow designers to describe IoT specify application components in a platform-independent model,
applications. It uses the multi-layered model driven architecture which then can be converted into a platform-specific model.
(MDA) for its architectural design. At the highest abstraction level, The platform independent meta-model of IoTLink is structured
a domain-specific language (DSL) enabled by rule-based into four layers. The first layer is primarily responsible for the
programming model uncouples the programming language and the abstraction of heterogeneous connection to the various sensors.
execution model used by the underlying operating system (OS). This layer also provides specific communication technologies and
This architecture integrates the traditional architecture of sensor a uniform interface for the components in the other layers. The
nodes [hardware layer (HL), hardware abstraction layer (HAL) and second layer determines the specific state of physical objects by
OS layer (OSL)] with two new upper layers: the OS abstraction processing the data of the sensors. This layer is important because
layer (OAL) and APL. it may be necessary to combine several types of sensors to sense
The goal of the APL and OAL layers is to offer a higher level of some physical events. The third layer uses the object-oriented
abstraction and portability when hiding the lower platform. At the paradigm to abstract domain objects and their attributes from the
APL, the platform independent model (PIM) of MDA, using a DSL physical objects they represent. The fourth layer exposes the
designed at this layer, captures the application's logic and identified domain objects to the AL and to the persistence storage.
requirements through a mapping process. The OAL translates IoTLink provides a visual editor that allows users to define
generic applications written using the DSL into the equivalent OS- concrete IoT application prototypes. Developers can select
specific implementation. Given the OS-specific platform model, a concrete components across the four layers, and connect them
transformation process is defined to translate the PIM to a together. The generated model can be transformed into a Java
platform-specific model (PSM) in the OSL. The OS-specific source code, which can be further developed by an experienced
libraries and the hardware-specific PSM in the two lower layers, developer. IoTLink toolkit supports rapid prototyping development
HL and HAL are used in the generation of the binary codes that and allows developers to easily develop IoT application model
drive the sensor nodes. visually and automatically generate a Java source codes based on
FRASAD supports the interaction between an upper layer and the model. However, it does not allow developers to check for the
the next lower layer through a predefined interface. Every layer is integrity and completeness of the application model before the
encapsulated into a component. IoT applications are built on top of generation of the Java source codes.
this architecture independent of the underlying platform, and a
translator/compiler over the OS layer deals with the complexity of 5.5 IoT application framework powered by WebRTC
the translations between both abstraction levels. In this way,
FRASAD takes an application model as an input and transparently This framework [39] is a web-based application framework and
transforms it into the equivalent final platform-specific application. network architecture for rapidly developing distributed IoT
FRASAD also provides a graphical user interface (UI), code applications. The framework provides a web-based UI with
generation components and supporting tools were included to help interactive virtual input/out (I/O) ports and a runtime environment
developers to design, implement, optimise and test the IoT for IoT device emulation. The network architecture provides
application. In evaluating FRASAD, there is a need to extend the support for the local computation and direct device-to-device
programming model and the framework to more operating systems connection.
and various kinds of IoT applications. A network of IoT devices that adopts this network architecture
uses WebRTC data channels to enable direct device-to-device
5.3 D-LITe – distributed logic for IoT services communication for devices that support the WebRTC stack and the
data channel API. For devices that do not support the WebRTC
D-LITe [18] is a distributed framework for designing IoT stack and the data channel API, the device-to-device connection is
applications and deploying them over a set of heterogeneous relayed using an HTTP-RTCWeb proxy. The proxy server enables
devices and platforms. It allows developers to build and deploy IoT direct device-to-device communication between devices that
applications as a collaboration of logical units between nodes. support WebRTC peer signalling and devices that do not. It is
D-LITe adopts the choreography approach in combining typically deployed on a gateway node to devices that do not
services by autonomous nodes. With choreography, the framework support WebRTC peer signalling. All devices that participate in
can allow each node to independently react to changes in the direct device-to-device connections maintain a persistent signalling
context and assigns a unit of the entire IoT application to each channel to a device registrar server. The registrar server facilitates
participating node, using processing capabilities that are closest to device discovery and exchange of signalling messages. It maintains
the source of the request. This arrangement reduces the network a device directory database that maps unique device IDs to Web
bandwidth, thus saving energy. Socket signalling connections. The signalling channel is only used
The principle of operation of D-LITe is inspired by the observer for device discovery and WebRTC signalling.
and the strategy design pattern. With the observer design pattern, The main component of this framework is implemented as a
this framework allows nodes to subscribe to other nodes that web application, which provides all the features necessary to model
publish data. Adopting the strategy design pattern approach, D- the non-trivial IoT devices in a browser. The application consists of
LITe can dynamically change a node's operation. Each node two main components: UI and device runtime environment. For
contains a static piece of code that provides access to the dynamic performance and security reasons, the two components are
component of the IoT application, which can be configured on the designed to run in separate JavaScript contexts. The UI provides a
fly. A rule analyser manages this dynamic component. The rule means to display a collection of widgets arranged in virtual control
analyser performs the execution of a set of rules that represents a panels and allows users to interact with the application. The device
node's expected behaviour. These set of rules can be set and runtime environment simulates an IoT device. The environment
changed dynamically in the network. manages a collection of virtual ports, which emulates I/O ports
found on physical hardware devices.
70 IET Cyber-Phys. Syst., Theory Appl., 2018, Vol. 3 Iss. 2, pp. 65-72
This is an open access article published by the IET under the Creative Commons Attribution -NonCommercial License
(http://creativecommons.org/licenses/by-nc/3.0/)
This framework enforces developers to build IoT AL in providing support to the development of collaborative applications
JavaScript resulting into codes that are not easily portable to real by defining a set of data primitives. RapIoT primitives
embedded devices. (information sensed by sensors and actions performed by actuators
and displays) simplifies the development of IoT systems that uses a
5.6 Datatweet framework network of devices that are distributed across several users and
environments by providing a low coupling interface between the
DataTweet [40] is an IoT application development framework that IoT device and the AL. This allows an IoT device to accommodate
provides a mechanism for decoupling an IoT AL from common different applications without reprogramming it.
IoT functionalities such as discovery, configuration and service The development toolkit of RapIoT consists of the following
management and registration. This framework provides an open components: (i) RapEmbedded: an Arduino library that defines and
source API for the common functionalities, which allows implements RapIoT primitives on IoT devices; (ii) RapMobile: a
developers to concentrate more on the end-user centric aspect of multi-platform mobile app that primarily serves as the gateway
the IoT application. The API significantly reduces the amount of layer between the hardware devices and the RapIoT cloud service.
written code and ultimately the time to complete the application. It also supports the discovery and configuration of IoT devices. (iii)
The framework mainly consists of two components: (i) AL and RapCloud: it consists of the cloud service, a JavaScript library and
(ii) common service entity (CSE). The AL supports all the the Rapcloud API. This component enables the development of IoT
activities involved in designing the UI of the application. It applications that communicate with the hardware devices.
provides an interface through which end-users can interact with the Basically, the RapEmbedded library on the Arduino board
IoT application. This interface contains features such as semantic implements the specific RapIoT primitives for each IoT device.
search (basic and advanced), updating configuration and sending Instances of these primitives are broadcasted using the RapMobile
commands to actuators. The AL functionalities are primarily and made available through a simple API provided by RapCloud.
implemented by RESTful web services. The steps for developing IoT application using this toolkit
The CSE is responsible for the identification and combination includes (i) device development, (ii) application development, (iii)
of several common functionalities required in the development of application deployment, (iv) device appropriation and (v)
an IoT application. These functionalities include security application appropriation. The RapIoT approach facilitates the
mechanisms by design to protect the privacy of the end users, development of collaborative applications. However, it cannot be
collection proxies to manage the large range of communication used for IoT applications whose behaviour cannot be captured
protocols, and configuration management. The CSE interacts with using simple RapIoT primitives.
the hardware devices and provides a standard API to developers.
To promote cross-domain/use cases IoT application scenarios,
this framework can allow the CSE of a particular domain to be
6 Conclusion and future research directions
connected to embedded devices belonging to a different domain of IoT applications are increasingly being deployed in several
operations. Furthermore, The AL belonging to one application can domains such as health, transportation and agriculture. Unlike
be made to communicate with the CSE of another application, thus conventional software applications, IoT applications depend on a
enabling horizontal IoT use cases. However, in industrial heterogeneous mix of technologies and components. Moreover,
applications, this feature may be difficult to achieve. IoT stakeholders require expertise in the underlying technologies
and would need to clearly understand the domain knowledge.
5.7 IoTSuite framework These factors make the development of IoT applications complex,
time-consuming and challenging. Hence, the need for an IoT
IoTSuite [41] is a toolkit for the rapid development of IoT framework.
applications. It provides a set of tools that reduce the development This paper introduces the IoT technology stack and describes
effort at various phases of an IoT application development process the important requirements of IoT applications. It then explores the
by providing automation. It supports the automation of tasks at the challenges in developing IoT applications and reviews the existing
different phases of IoT application development. Developing an development frameworks that manage the complexity of building
IoT application using the IoTSuite framework involves the IoT applications, highlighting their strengths and weaknesses.
following steps in developing IoT applications: (i) domain This survey shows that a number of development frameworks
vocabulary specification, (ii) vocabulary specification compilation, have been developed to ease the process of building IoT
(iii) application architecture specification, (iv) architecture applications. These frameworks differ from each other in many
specification compilation, (v) AL implementation, (vi) target aspects and similar to each other in several other aspects, and most
deployments specification, (vii) generation of a map from a set of of them are still works in progress. It is observed that the majority
computational services to a corresponding set of devices, (vii) of the frameworks focus on the speed of developing IoT
device drivers implementation, (viii) linking and evolution. applications, ignoring the quality of the application during
IoTSuite basically comprises the following components to help development. There is a need to integrate quality control
stakeholders develop IoT applications rapidly: (i) an editor that mechanisms in these frameworks that can help in generating IoT
allows stakeholders with limited programming experience to write applications with high quality. In addition, dynamic detection and
high-level textual specifications. (ii) A compiler that parses high- integration of heterogeneous devices/services and new
level specifications and translates them into code that can be used technologies need to be investigated and implemented in these
by other components in the system.(iii) A mapper module that frameworks.
generates a mapping from computational services to devices. (iv) A
linker module that integrates a code generated by the various
phases of compilation into a set of platform-specific packages for 7 References
devices, specified in the deployment specification. (v) A runtime [1] Teixeira, T., Hachem, S., Issarny, V., et al.: ‘Service oriented middleware for
system, which leverages existing middleware platforms and the internet of things: a perspective’. Proc. 4th European Conf. on Towards a
Service-based Internet, 2011, pp. 220–229
responsible for the distributed execution of an IoT application. [2] Whitmore, A., Agarwal, A., Da Xu, L.: ‘The internet of things – a survey of
IoTSuite simplifies the process of developing IoT application topics and trends’, Inf. Syst. Front., 2015, 17, (2), pp. 261–274
by providing automation at various stages of the application [3] Vermesan, O., Friess, P.: ‘Internet of things: converging technologies for
lifecycle. However, there is a need to integrate a mechanism for smart environments and integrated ecosystems’ (River Publishers, 2014)
[4] Costa, B., Pires, P.F., Delicato, F.C.: ‘Modeling IoT applications with
testing the design and implementation of IoT application developed SysML4IoT’. 2016 42nd Euromicro Conf. on Software Engineering and
using this framework for faults and errors. Advanced Applications (SEAA), 2016
[5] Patel, K.K., Patel, S.M.: ‘Internet of things-IOT: definition, characteristics,
architecture, enabling technologies, application & future challenges’, Int. J.
5.8 RapIoT framework Eng. Sci. Comput., 2016, 6, (5), pp. 6122–6131
[6] Miorandi, D., Sicari, S., De Pellegrini, F., et al.: ‘Internet of things: vision,
RapIoT [42] is a set of integrated tools that facilitate the rapid applications and research challenges’, AdHoc Netw., 2012, 10, (7), pp. 1497–
prototyping of IoT applications by non-experts. It aims at 1516

IET Cyber-Phys. Syst., Theory Appl., 2018, Vol. 3 Iss. 2, pp. 65-72 71
This is an open access article published by the IET under the Creative Commons Attribution -NonCommercial License
(http://creativecommons.org/licenses/by-nc/3.0/)
[7] Patel, P., Cassou, D.: ‘Enabling high-level application development for the [25] Razzaque, M.A., Milojevic-Jevric, M., Palade, A., et al.: ‘Middleware for
Internet of things’, J. Syst. Softw., 2015, 103, pp. 62–84 internet of things: a survey’, IEEE Internet Things J., 2016, 3, (1), pp. 70–95
[8] Nguyen, X.T., Tran, H.T., Baraki, H., et al.: ‘FRASAD: a framework for [26] Simmhan, Y., Perera, S.: ‘Big data analytics platforms for real-time
model-driven IoT application development’. 2015 IEEE 2nd World Forum on applications in IoT’, in ‘Big data analytics’ (Springer, New Delhi, 2016), pp.
Internet of Things (WF-IoT), 2015 115–135
[9] Rahman, L.F., Ozcelebi, T., Lukkien, J.J.: ‘Choosing your IoT programming [27] Chiang, M., Zhang, T.: ‘Fog and IoT: an overview of research opportunities’,
framework: architectural aspects’. 2016 IEEE 4th Int. Conf. on Future IEEE Internet Things J., 2016, 3, (6), pp. 854–864
Internet of Things and Cloud (FiCloud), 2016 [28] ISO: 25010, Systems and software engineering – system and software product
[10] Krishnamurthy, J., Maheswaran, M.: ‘Programming frameworks for internet quality requirements and evaluation (SQuaRE)-system and software quality
of things’, in ‘Internet of things, principles and paradigms’ (Morgan models
Kaufmann Publishers, Massachusetts, 2016), pp. 79–102 [29] Lin Yu, W., Zhang, N., et al.: ‘A survey on internet of things: architecture,
[11] ‘Works with Nest’, https://developer.nest.com, accessed 15 February 2017 enabling technologies, security and privacy, and applications’, IEEE Internet
[12] ‘Alljoyn’, https://allseenalliance.org, accessed 15 February 2017 Things J., 2017, PP, (99), p. 1
[13] ‘mbed’, http://www.mbed.com/en, accessed 18 February 2017 [30] Kortuem, G., Kawsar, F., Fitton, D., et al.: ‘Smart objects as building blocks
[14] Colitti, W., Steenhaut, K., De Caro, N., et al.: ‘Evaluation of constrained for the internet of things’, IEEE Internet Comput., 2010, 14, (1), pp. 44–51
application protocol for wireless sensor networks’. Proc. 18th IEEE Workshop [31] TE Commission: 2012. ‘Protection of personal data’. Available at http://
on Local and Metropolitan Area Networks (LANMAN), 2011, pp. 1–6 ec.europa.eu/justice/data-protection
[15] Siekkinen, M., Hiienkari, M., Nurminen, J.K., et al.: ‘How low energy is [32] Sarkar, A., Nambi, S.N., Prasad, R., et al.: ‘DIAT: a scalable distributed
bluetooth low energy? Comparative measurements withZigBee/802.15.4’. architecture for IoT’, IEEE Internet Things J., 2015, 2, (3), pp. 230–239
Proc. IEEE Wireless Communications and Network Conf. Workshops [33] Bellavista, P., Cardone, G., Corradi, A., et al.: ‘Convergence of MANET and
(WCNCW), 2012, pp. 232–237 WSN in IoT urban scenarios’, IEEE Sens. J., 2013, 13, (10), pp. 3558–3567
[16] Uckelmann, D.: ‘Performance measurement and cost benefit analysis for [34] Gartner: ‘Gartner says the Internet of things installed base will grow to 26
RFID and internet of things implementations in logistics’, in ‘Quantifying the billion units by 2020’, 2013
value of RFID and the EPCglobal architecture framework in logistics’ [35] Stankovic, J.: ‘Research directions for the internet of things’, IEEE Internet
(Springer, New York, NY, USA, 2012), pp. 71–100 Things J., 2014, 1, (1), pp. 3–9
[17] Bassi, A.: ‘Enabling things to talk’ (Springer, Berlin, New York, 2016) [36] Sousa Nunes, D., Zhang, P., Sa Silva, J.: ‘A survey on human-in-the-loop
[18] Cherrier, S., Ghamri-Doudane, Y., Lohier, S., et al.: ‘D-LITe: building internet applications towards an internet of all’, IEEE Commun. Surv. Tutor., 2015, 17,
of things choreographies’ 2016.<ohal-01422433> (2), pp. 944–965
[19] Jia, X., Feng, O., Fan, T., et al.: ‘RFID technology and its applications in the [37] Munir, S., Stankovic, J.: ‘Depsys: dependency-aware integration of systems
internet of things (IoT)’. Proc. 2nd IEEE Int. Conf. Consumer Electronics, for smart homes’. Proc. ACM/IEEE Int. Conf. on Cyber-Physical System,
Communications and Networks (CECNet), Yichang, China, 21–23 April April 2014
2012, pp. 1282–1285 [38] Pramudianto, F., Kamienski, C.A., Souto, E., et al.: ‘IoTLink: an internet of
[20] Sun, C.: ‘Application of RFID technology for logistics on the internet of things prototyping toolkit’. 2014 IEEE Int. Conf. on Ubiquitous Intelligence
things’, AASRI Procedia, 2012, 1, pp. 106–111 and Computing, 2014
[21] Koshizuka, N., Sakamura, K.: ‘Ubiquitous ID: standards for ubiquitous [39] Janak, J., Schulzrinne, H.: ‘Framework for rapid prototyping of distributed
computing and the internet of things’, IEEE Pervasive Comput., 2010, 9, (4), IoT applications powered by WebRTC’. 2016 Principles, Systems and
pp. 98–101 Applications of IP Telecommunications (IPTComm), 2016
[22] Yinbiao, S., Lee, K., Lanctot, P.: Internet of things: wireless sensor networks', [40] Datta, S.K., Bonnet, C.: ‘Easing IoT application development through
White Paper, International Electrotechnical Commission, http://www. iec.ch, dataTweet framework’. 2016 IEEE 3rd World Forum on Internet of Things
(2014) (WF-IoT), 2016
[23] Li, L., Hu, X., Ke, C., et al.: ‘The applications of WiFi-based wireless sensor [41] Soukaras, D., Patel, P., Songz, H., et al.: ‘IoTSuite: a toolsuite for prototyping
network in internet of things and smart grid’. Proc. IEEE Conf. on Industrial internet of things applications’, 2015
Electronics and Applications (ICIEA), 2011, pp. 789–793 [42] Mora, S., Gianni, F., Divitini, M.: ‘Rapiot toolkit: rapid prototyping of
[24] Al-Fuqaha, A., Guizani, M., Mohammadi, M., et al.: ‘Internet of things: a collaborative internet of things applications’. 2016 Int. Conf. on Collaboration
survey on enabling technologies, protocols and applications’, IEEE Commun. Technologies and Systems, 2016
Surv. Tutor., 2015, 17, (4), pp. 2347–2376

72 IET Cyber-Phys. Syst., Theory Appl., 2018, Vol. 3 Iss. 2, pp. 65-72
This is an open access article published by the IET under the Creative Commons Attribution -NonCommercial License
(http://creativecommons.org/licenses/by-nc/3.0/)

You might also like