Multiple IoT Devices Management Solutions–A
1st Khaled Al-Ansari
Computer Science
Princess Sumaya University for Technology
Amman, Jordan
Abstract—Technology helped in changing many things in our
world and currently it is part of many industries like warehouses
management, car manufacturing, etc., also it is part many
day-to-day activities like athletes health tracking, houses power
consumption, etc., all of this is creating a phenomenal demand
that have been seen before and the Internet of Things (IoT) is a
main reason for such a demand.
IoT devices are now almost everywhere and it keep spreading
in different shapes and usages which is creating a new problem
and that is managing those IoT devices specially if they were
from the same type (e.g. smart lamps). In this paper we will talk
about the need of managing multiple IoT devices and what are
the currently used solutions to accomplish this need in order to
get a better user experience when it comes to controlling IoT
Index Terms—Internet of Things, IoT, Operating System, OS,
Mesh Network, Cloud Computing
Technology is helping enhancing many industries and as-
pects of human beings lives through multiple approaches and
one of the most famous approaches is the Internet of Things
(IoT) where devices are built with an architecture ready for
communicating through the internet. Such technologies that
use a wide spread network like the internet is causing in
creating and engaging more devices which is creating new
domains, like smart cities, which eventually caused some new
needs that must be satisfied or it will results problems and will
stop the cycle of development.
Modern problems needs a modern solutions, that’s how we
can describe the ideas that helped building solutions for IoT
where multiple techniques have been used or modified to meet
the IoT structure in order to get a wide range solutions that
can fit in many cases. In this paper we will discuss some of
the most known approaches that handle the communication
between multiple IoT devices and manage it in an orchestral
way, the approaches that we will cover in this survey is
1) Wireless Mesh Networks 2) Cloud based Web APIs 3)
Optimized Operating Systems for IoT devices.
Traditionally a mesh network, also known as meshnet, is a
local network topology infrastructure nodes are connected in a
direct way, dynamic way or just non-hierarchically to as many
other nodes as possible where it leverage such connection to
efficiently route data from/to clients [1].
Fig. 1. Green represent endpoints, orange represent repeaters and blue
represent gateways [2].
Mesh networks are known for being a single-point of
connection but that won’t come in a cheap price, it require a
high-cost hardware and complicated software implementations
to connect the in-between space needed to achieve the device-
to-device communication architecture [2] that mesh networks
were made for. All of this lead to the rise of the Wireless
Mesh Networks (WMNs).
Generally Wireless Mesh Networks are wireless ad-hoc
network made up of radio nodes organized in a mesh topology
that consist of (see Fig 1. for visual explanation):
Gateway: gateways are devices that have connectivity
behind the mesh network and allow the network to
connect to others (e.g. WiFi router).
Repeater (or mesh router): a repeater is a device that
forward messages between end devices (endpoints) in a
mesh network.
Endpoint (or mesh client): endpoints do not route
messages and can be any end-device like laptops, cell
phones, etc.
Like any technology used in this world wireless mesh
networks have its own advantages and disadvantages [4], when
it comes to advantages they are fault tolerant to connectivity
if a device went down and that is possibly the main advantage
behind it, also wireless mesh networks reduce the amount of
wires used in a traditional mesh networks. On the other hand
wireless mesh networks does not offer any kind of central
entity which results in a complex communication and makes
it hard to manage the network.
As previously mentioned one of the emerging problems is
controlling the communication between IoT devices, many
approaches have been discussed in this area where some of
them were focused on the capability of the devices and try
to build an OS that can leverage the IPv6 protocol to make
sure data is sent correctly over HTTP [5] and others tried to
create a new protocol like the CoAP protocol [6] to leverage
HTTP but with less power consumption features while some
researchers are now combining forces with the W3C to treat
the web as the application layer to ease the development of
IoT under the name Web of Things (WoI) [7].
All of the above mentioned approaches and many others
are focused around leveraging the web for communication in
order to get one centralized place for storing and controlling
data along with sending commands which will give a better
experience when it comes to management and measurement
and this where IoT cloud platforms, like AWS IoT (Fig. 2),
comes in hand.
Fig. 2. High level abstraction of AWS IoT platform.
The main benefit of IoT cloud platforms is having a central
place to control any device connected to the the IoT cloud
platforms via a simple Web-API and view the status of the
device from one dashboard. Cloud IoT platform offers many
benefits which include:
Scalability: adding new devices and control the data flow
or even changing the interaction is much simpler and
less time consuming which making scaling up easier than
Data mobility: since the data is stored and process in the
cloud it is easy to view and edit any data via one user
Security: cloud providers guarantee regular updates and
24/7 monitoring against security breaches.
Cost-effectiveness: hardware maintenance and software
development cost will get reduced since most of it will
be handled by the cloud provider.
IoT cloud platforms also offers some social benefits that can
make our life easier and some of it are:
Better co-worker collaboration: central control gives
co-workers a unified knowledge-base.
Virtual personal assistant integration: integrating with
virtual assistants, such as Amazon Alexa, is easier with
the IoT cloud platform which gives more control over the
Time to market: easy implementation led to faster
marketing and money saving for big companies who sells
IoT devices.
IoT cloud platforms are great example of leveraging the
existing web technology while trying to keep the hardware
development as minimal as possible for engineers, IoT cloud
platforms are part of many initiatives that focus on the web to
enhance the IoT in general but the web (or the internet) is not
the only thing that can be used to enhance the IoT experience,
operating systems have a huge stake in the IoT world and
many researchers have worked on enhancing them for a better
IoT workflow even the cloud providers created or invested in
their own operating systems solution and integrated it with the
cloud like the Microsoft Sphere [12] for example. In the next
section we will discuss the operating systems for IoT in more
Fig. 3. Growth in Internet-Connected Devices/Objects by 2020 [14]
IoT devices can be, in many cases, a standalone devices that
operate independently and it is expected to have more than
6.5 billion devices in 2020 (Fig. 3) but to be able to gather
data from this kind of number of devices in a correct and
more reliable way the devices get connect to a WSN where
they behave as sensors and send the data via other devices.
In order to have a better communicate we need an optimized
operating system for IoT devices to keep the interrupts ordered
and protect them from being lost in the same way to be fast
and concurrent for faster communication.
IoT take into consideration every layer of the computing
system layers, starting from the physical layer ending with
the application layer, and that is causing a headache for IoT
creators and maintainers in many cases. One of the most
known issues is the ability of the OS to run on devices with
small size memory which is the case of many IoT devices,
another issue would be having multi-threading as a native
feature inside the OS, full-fledged operating systems like
Linux are known for being powerful but unfortunately they
can’t be installed and run on small devices and that’s why
such operating systems does not work for IoT devices, in this
section we will discuss the problems of a full-fledged operating
systems in the IoT world and how these problems are being
tackled by micro operating systems.
A. Problems of full-fledged OS
Full-fledged operating systems are everywhere and the in-
ternet of things field is no exception from this rule and that is
obvious when you look at the results of surveys like the 2018
IoT Developer Survey by Eclipse IoT Working Group [10],
though such surveys are general and they don’t specify the
type of devices where those operating systems where used on
and that might cause some confusion for the IoT developers
and interest researchers.
1) Hardware Support:For an operating system the wider
the range of devices it support the better the OS would be
for developers and to achieve this goal we need to have a
better understanding about the devices types by looking at
how some researchers [5] classified the IoT devices based on
the hardware we can divide them into two categories:
High-end IoT devices: which includes devices with
enough resources to run a full-fledged operating system
like Linux, e.g. Raspberry Pi, and smartphones.
Low-end IoT devices: simply are devices with resource-
constrained to run full-fledged operating systems, e.g.
Tessel 2 microcontroller (Fig. 4), in Table 1 we can see
that all the classes of low-end devices suffer from low
Fig. 4. Tessel 2, one of the preferred low-end devices for IoT hobbyists and
new learners.
Based on the classification mentioned above we can list
some of software requirements for the full-fledged operating
systems that act as a constraints for low-end devices [9], from
list below we can see why operating systems like Linux can’t
be used for low-end devices:
Memory Requirements: they require a high memory
size, for example Ubuntu for IoT require at least 256 MB
of RAM [11] which is noticeably bigger what low-end
devices have.
CPU Requirements: high and powerful CPUs are essen-
tials that can’t be put inside low-end devices.
High Power Consumption: power consumption is not
negotiable with powerful devices and it require an effi-
cient power supplies which in some case are bigger than
some devices.
Platform Support: simply it is the OS capability of sup-
porting different types of hardware and work efficiently
on all of it.
2) Architecture:on top of the above mentioned reasons the
existing operating systems are monolithic from an architecture
point of view, it guarantee good performance but its a single
point of failure design where we can’t replace a module
when it fails which will result in a whole system crash.
Other design approaches like the micro-kernel and the layered
architectures are better since they are modular and allow
changing component easily and can be beneficial for solving
issues like power consumption which is what IoT devices
3) Programming Model:Programming model is basically
the abstraction of the underlying computer system that allows
for the expression algorithms and data structures, it also decide
what is the supported languages and how the events are
executed, for example Linux is model is written with C so
there is a variety of programming languages and scripting
languages supported which is good for IoT but it also offers
multi-threading which is a bad thing for IoT devices because
it is memory consuming since each thread need to segment a
memory address to be executed.
From what we mentioned above we can know why full-
fledged operating systems are not feasible for low-end devices
where the resources are minimal and the software (OS) have
a limited support for such devices. In the next section we will
discuss more what software related approaches have been done
to pass the issue of operating systems like Linux and what is
the status of those approaches and did they solve the issue.
B. Optimized Operating Systems
When we talk about IoT devices we forget that they are
more than just a mere embedded devices with wireless sensors.
As mentioned before IoT devices, in general, represent the
interconnection of Wireless Sensor Network (WSN) Devices
with the Internet. In simpler words IoT devices, in general,
cannot porcess by itself and need to be communicate with
other devices to pass information and continue working in the
domain it was setup for, being domain-specific devices means
the resources can be as minimal as possible as we discussed
in the previous section (depending on the usage of the device)
which creates a need for more optimized OSs for such devices.
When it comes to optimizing the operating systems for
the IoT devices there are many approaches some of them
aims at pushing down the requirements of existing OSs like
the uClinux [15] but unfortunately such approaches take one
some features that require more resources to keep the device
working, in the uClinux case it has no memory management
unit (MMU) which means there is a need for bigger memory
in order to give each task a single address.
The current approach that many researchers are contributing
to is creating an optimized operating systems, we can also call
them micro operating systems since the requirements for them
are too low, those operating systems can satisfy the low energy
consumption and use the low memory resources which many
IoT devices have as discussed previously, we will discuss the
most used OSs at the moment and they are:
The three operating systems have the same goal but serve
it in a different way for a different type of devices through a
set of features implemented in the OSs (see Table 2). we will
cover, briefly, how each OS work based on the main features
in an OS for IoT.
1) Architecture:The OS architecture is what decide if an
OS is flexible or not to get adapted by multiple devices, for IoT
we discussed that the micro-kernel architecture since change
components is easier which is beneficial for IoT and that’s is
the approach followed by Contiki and RIOT OS.
For TinyOS it is monolithic but in a way that can support
IoT, TinyOS is component-based where each service is de-
composed into a component where the non-used componenets
can be removed from the application and then the final
software will be a wrapper for the hardware then components
communicate through interfaces.
As seen there is two way to support the hardware 1) is
build a customizable OS and 2) is make application layer
customizable for each device.
2) Programming Model:To be able to develop an appli-
cation a programming language should support some features
that can be used, this can be done via the programming model
in the operating system, most of the operating systems for the
IoT are based on C/C++ or a dialect of C which give some
capabilities to the OS and the main capability is threading.
First Contiki, it has a hybrid model based on the Protothread
model that supports both event-driven (where events are stored
are handled in FIFO process) and multi-threading (stackless
threading where the memory usage is almost unseen and the
stack can be shared), this model give the ability to the applica-
tion to control the power consumption where it can go to sleep
if no event is sent and will get back to work when a hardware
interrupt is sent. TinyOS is also event-driven even when it
handles threads since it schedules it using FIFO preemptive
scheduling. In RIOT OS the model is different where it support
pure multi-threading based on POSIX standards for the APIs
via applying the tickless scheduler that allow the OS to work
in the time of the next event unlike the fix-tick schedulers
where it check if there is an event in a fixed time manner.
3) Other Resources:When it comes to other resources like
the hardware support each OS support a range of devices based
on a minimal requirement the developers set for the OSs (see
Table 2), for connectivity the OSs support a variety of network
stacks that support IPv6 for internet connectivity.
When it comes to programming languages as stated before
all of them support C in a way of another, Contiki use a subset
of C while TinyOS use a dialect called NesC and RIOT is
written in C which gives the ability of using C++ [16].
In this paper we tried to cover up the current approaches to
manage multiple IoT devices from different perspective and
saw how it can be done on different levels (or layers) and all
of these layers complete the cycle for better management.
We also conclude that IoT is not just about the devices but
it include the whole cycle starting from the device and end
up with the hosting solutions through the software installed
and the network that move the communication back and forth
between the entities.
At the end we can say that there is no single solution in any
of the levels we covered that can be the best solution that will
rule all of the other solutions, each case needs its own solution
based on the inputs (like the hardware resources) ending up
with the usage (like the end users needs).
I would like to thank my professor, colleagues and friends
who helped me with some ideas and resources for this paper.
Also I would like to the thank every contributor to the Internet
of Things whether they wrote paper, an article to explain an
idea or a software, thank you for making this topic easier to
learn and more fun to discover.
[1] Wikipedia contributors, “Mesh networking”, Wikipedia, The Free Ency-
clopedia., 7 December 2019.
Mesh networking&oldid=929649200
[2] Jeffrey Lee, “Mesh Networking and IoT“, DZone, 10 May 2018. https:
// iot-real
[3] Wikipedia contributors, “Wireless mesh network”, Wikipedia, The
Free Encyclopedia, 20 December 2019.
Wireless mesh network
[4] RF Wireless world, “Advantages and disadvantages of
wireless mesh”.
[5] O. Hahm, E. Baccelli, H. Petersen, and N. Tsiftes, “Operating Systems
for Low-End Devices in the Internet of Things: A Survey“ IEEE Internet
of Things Journal, vol. 3, Issue 5, October 2016.
[6] Z. Shelby, A. Castellani, C. Bormann, “CoAP: An Application Protocol
for Billions of Tiny Internet Nodes“, IEEE Internet Computing, pp. 62-
67, vol. 16, March-April 2012.
[7] D. Guinard, V. Trifa, “Towards the Web of Things: Web Mashups
for Embedded Devices“, International World Wide Web Conferences,
January 2009.
[8] E. Baccelli, O. Hahm, M. G¨
unes, M. W¨
ahlisch and T. C. Schmidt, “RIOT
OS: Towards an OS for the Internet of Things“, 2013 IEEE Confer-
ence on Computer Communications Workshops (INFOCOM WKSHPS),
Turin, 2013, pp. 79-80.
[9] Emmanuel Baccelli, Oliver Hahm, Matthias W¨
ahlisch, Mesut G¨
Thomas Schmidt. “RIOT: One OS to Rule Them All in the IoT“,
[Research Report] RR-8176, 2012. hal-00768685v2
[10] Eclipse Foundation, “Key Trends from the IoT Developer Survey 2018“,
2018. [Online]. Available:
C3%A9/key-trends-iot-developer-survey-2018 [Accessed 11-Jan-2020].
[11] Canonical Ltd, “Ubuntu for IoT Developers documentation“. [Online].
Available: [Accessed 11-Jan-2020].
[12] Microsoft, “Azure Sphere“. [Online]. Available:
com/en-us/services/azure- sphere/ [Accessed 11-Jan-2020].
[13] M. O. Ojo, S. Giordano, G. Procissi, and I. N. Seitanidis, “A Review of
Low-End, Middle-End, and High-End IoT Devices“, IEEE Access, PP.
1-1. 10.1109/ACCESS.2018.2879615, November 2018.
[14] C.Perera, C. H. Liu, S. Jayawardena, M. Chen, “A Survey on Internet of
Things From Industrial Market Perspective“, IEEE ACCESS, 2. 1660-
1679. 10.1109/ACCESS.2015.2389854.
[15] Linux Journal, “uClinux for Linux Programmers“, 2004. [Online].
Available: [Accessed 13-Jan-
[16] P. Gaur, M. Tahiliani, S. Jayawardena, M. Chen, “Operating Systems for
IoT Devices: A Critical Survey“, IEEE Region 10 Symposium, 33-36.
ResearchGate has not been able to resolve any citations for this publication.
Full-text available
Internet of Things (IoT) devices play a crucial role in the overall development of IoT in providing countless applications in various areas. Due to the increasing interest and rapid technological growth of sensor technology, which have certainly revolutionized the way we live today, a need to provide a detailed analysis of the embedded platforms and boards is consequential. This paper presents a comprehensive survey of the recent and most-widely used commercial and research embedded systems and boards in different classification emphasizing their key attributes including processing and memory capabilities, security features, connectivity and communication interfaces, size, cost and appearance, operating system (OS) support, power specifications and battery life and listing some interesting projects for each device. Through this exploration and discussion, readers can have an overall understanding on this area and foster more subsequent studies.
Full-text available
The Internet of Things (IoT) is projected to soon interconnect tens of billions of new devices, in large part also connected to the Internet. IoT devices include both high-end devices which can use traditional go-to operating systems (OS) such as Linux, and low-end devices which cannot, due to stringent resource constraints, e.g. very limited memory, computational power, and power supply. However, large-scale IoT software development, deployment, and maintenance requires an appropriate OS to build upon. In this paper, we thus analyse in detail the specific requirements that an OS should satisfy to run on low-end IoT devices, and we survey applicable operating systems, focusing on candidates that could become an equivalent of Linux for such devices i.e. a one-size-fits-most, open source OS for low-end IoT devices.
Full-text available
The Internet of Things (IoT) embodies a wide spectrum of machines ranging from sensors powered by 8-bits microcontrollers, to devices powered by processors roughly equivalent to those found in entry-level smartphones. Neither traditional operating systems (OS) currently running on internet hosts, nor typical OS for sensor networks are capable to fulfill all at once the diverse requirements of such a wide range of devices. Hence, in order to avoid redundant developments and maintenance costs of IoT products, a novel, unifying type of OS is needed. The following analyzes requirements such an OS should fulfill, and introduces RIOT, a new OS satisfying these demands.
Conference Paper
The future of communication resides in Internet of Things, which is certainly the most sought after technology today. The applications of IoT are diverse, and range from ordinary voice recognition to critical space programmes. Recently, a lot of efforts have been made to design operating systems for IoT devices because neither traditional Windows/Unix, nor the existing Real Time Operating Systems are able to meet the demands of heterogeneous IoT applications. This paper presents a survey of operating systems that have been designed so far for IoT devices and also outlines a generic framework that brings out the essential features desired in an OS tailored for IoT devices.
The Constrained Application Protocol (CoAP) is a transfer protocol for constrained nodes and networks, such as those that will form the Internet of Things. Much like its older and heavier cousin HTTP, CoAP uses the REST architectural style. Based on UDP and unencumbered by historical baggage, however, CoAP aims to achieve its modest goals with considerably less complexity.
Advantages and disadvantages of wireless mesh
  • Rf Wireless World
RF Wireless world, "Advantages and disadvantages of wireless mesh". Advantages-and-Disadvantages-of-Wireless-Mesh-Network.html
Towards the Web of Things: Web Mashups for Embedded Devices
  • D Guinard
  • V Trifa
D. Guinard, V. Trifa, "Towards the Web of Things: Web Mashups for Embedded Devices", International World Wide Web Conferences, January 2009.
RIOT OS: Towards an OS for the Internet of Things
  • E Baccelli
  • O Hahm
  • M Günes
  • M Wählisch
  • T C Schmidt
E. Baccelli, O. Hahm, M. Günes, M. Wählisch and T. C. Schmidt, "RIOT OS: Towards an OS for the Internet of Things", 2013 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS), Turin, 2013, pp. 79-80.
Ubuntu for IoT Developers documentation
  • Canonical Ltd
Canonical Ltd, "Ubuntu for IoT Developers documentation". [Online].