Developing Iot Applications: Challenges and Frameworks.: Itorobong S. Udoh, Gerald Kotonya
Developing Iot Applications: Challenges and Frameworks.: Itorobong S. Udoh, Gerald Kotonya
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.
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.
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
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.
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.
[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.
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.
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