IOT
IOT
IOT
Group Members:
Saeed Zia BSEF16A519
Ahmad Bilal BSEF16A523
JANUARY 6, 2020
PUNJAB UNIVERSITY COLLEGE OF INFORMATION TECHNOLOGY
Abstract:
The term Internet of Things (IoT) is viewed as dubious and mostly used to describe systems that
connect the physical world to the digital world. Applications in the IoT can extend from
connecting the human body by use of a wearable sensor to a smart city. The appearance of the
Internet of Things carries with it many potential and difficulties. One of the areas of research in
the Internet of Things is software architecture.
Software architecture, as the blue-print of software-intensive systems, abstracts the complexities
of modeling, design, development, and evolution phases of a software to engineer complex IoT
driven systems effectively and efficiently.
IoT components are becoming more and more ubiquitous. Thus, the necessity of architecting IoT
applications is bringing a more attention towards software engineering community. There have
been several proposals of reference architectures for the Internet of Things as a single type of
system. However, given the ambiguity of the term and the diverse applications regarded as being
part of the Internet of Things, it seems unlikely that a one size fits all reference architecture can
exist.
Introduction:
Internet of Things has turned into a popular expression much like Big Data" in the sense that it is
used frequently but seems to be ambiguous to the users of the term. Internet of Things (IoTs) are
being increasingly adopted as a technology and it is enabling platform that interconnects
humans, systems, devices, and things to ensure a connected world that is based on autonomous
systems that can be basic step to digitized societies.
IoT based systems represent a combination of hardware (component and sensor) that is
controlled and manipulated by software (source code and programs) that are interconnected
through the use of network (protocols and connectivity) to enable things that collect, process,
and exchange useful data. For example, a connected home service robot (i.e., hardware) that is
available for control and manipulation through a mobile app (i.e., software) empowers a user to
use the ‘robotic thing’ for cleaning, surveillance and other housekeeping activities.
A recent study on the current state of the IoT has highlighted that approximately 25 billion
devices will be connected to the IoTs by 2020. Another estimation says that the IoT has a potential
economic impact of $11 trillion per year by 2025, which would be equivalent to about 11% of the
world economy. Such predictions encourage companies to invest on IoT based applications and
to build their pillars on IoT in order to achieve their desired value creation and competitive
advantage.
There are two important qualities which are discussed the most in many papers written on
Internet of Things. The first one explains that the IoT is a network. It is always referred to in the
singular form, which may recommend that there is one IoT only. The second most mentioned
characteristic in the definitions refer to the things" in the IoT. These things are physical items.
These physical objects are to be installed with innovation so that they can be associated with the
IoT, must have their state measured and changed, must be uniquely identifiable and can
communicate with each other to achieve greater value and service. This greater value and service
provided by the IoT is either the formation of new functionality previously not possible without
the network of physical objects or the increase of the quality of existing processes with the help
of the IoT.
Before moving on the architectural styles for IoT, let's have a look on the steps which should be
taken to devise architectural solutions for IOT Systems.
1. Identify the Physical Entity being measured. This is done to confirm that the system can
be classified as an IoT solution.
2. Identify the attribute(s) of the physical element that is being measured. This is also done
to check that the system can be classified as an IoT solution.
3. Identify if the sort of IoT Connector(s) present in the solution.
4. Identify the components and the topology of the network.
5. Illustrate the topology in a diagram showing the relationship between parts (one-to-one,
one-to-many, many-to-many).
6. Illustrate the direction of messages passed between the components in a diagram
7. Identify the area of application logic and data storage for the solution. The application
logic and data storage locations do not refer to logic and data needed to network between
nodes, rather it refers to the logic and data that are specific to the solution.
8. Identify the client interaction possibilities of the solution.
9. Make an estimation of the scalability requirement of each component. The scale can be
fixed or potentially increasing.
10. Identify the Internet-Dependency of the solution.
The objective of this investigation is to demonstrate that the physical entity and attributes can
be analyzed to gather important characteristics of IoT solutions to be used for software
architectural styles.
Taxonomy:
Now we will see a taxonomy that demonstrates the architectural concerns on Internet of Things
Systems. A set of representative concepts have been identified and shown in fig. 1.
Architectural Platforms: Most of IoT platforms are cloud- based and open-source. Amazon web
service IoT platform (AWS) dominates the consumer cloud market. AWS provides multiple data
processing services (Amazon S3, Amazon DynamoDB, AWS Lambda, Amazon Kinesis, Amazon
SNS, and Amazon SQS). Microsoft Azure IoT Hub is an example. Its reference architecture is
composed of core platform services and application-level components to facilitate the processing
needs across three major areas of a typical IoT solution like:
(i) Device connectivity
(ii) Data processing, analytics, and management
(iii) Presentation and business connectivity
Architecture Activities: Most discussed activities in architectural level are analysis and
understanding the type of IoT architecture. Each study tries to define its own IoT architecture to
address a specific problem. However, studies reused a special style of architecture that was
mostly layered architecture. Evaluation, description, synthesis are among the superlative used
activities but impact analysis, implementation, recovery, and maintenance are rarely discoursed.
Quality Attributes: The architectural style of an IoT system can have effect on quality attributes
but does not guarantee all of them. The most recognized quality attributes that are supposed to
be satisfied with a proper IoT architecture are scalability, security, interoperability, and
performance. Scalability is an essential attribute as IoT should be capable to perform at an
acceptable level with this scale of devices. Furthermore, security gains a high concern in an IoT
system, in which different components and entities are connected to each other through a
network. Inter-operability helps heterogenous components of IoT to work together efficiently.
Privacy, availability, mobility, reliability, resiliency, and evolvability are positioned in the lower
degree of concern. Resiliency, which is effective handling the failures and is a critical aspect, is
not addressed vastly through primary studies but has a huge capacity to be studied in future
researches.
Solution Classes for IOT:
In order to perform demonstration of the impact of software architectural styles in the IOT while
simultaneously not considering the IOT as one system we will separate the system into different
classes. For this, a number of classifying attributes must be identified. The classification is made
essentially using the dataset of 15 solutions analyzed. The architecture of these solutions might
not be used as classifying attributes. And no quality attribute requirements will explicitly be used
as classifying attributes. Classification is done by comparing the solution for each other. There
are of course many ways in which each solution differs from the next, however the subset are
referred as shown in Table 1:
User interface on The devices at the edge of the network can have a client interface or be
devices controlled by an application on another device.
Sensors and The solutions can either have only sensors or additionally have
Actuators actuators.
Devices connected The devices can be specifically associated to a network or might make
directly to a use of different approaches to interact with the system.
network
Device is stationary This can have an effect on accessibility. If a device is stationary, it will
or mobile probably have a stable connection if this is required.
User interface Some solutions do not come with a user interface application.
application
Data per user or Some solutions provide data gathered for a specific user while other
collective systems provide data collected by all sensors for all users
Number of devices The values can be one, one to few (constrained), numerous.
per user
Devices battery or If the devices use batteries it might be in the best interest to limit
plugged into power computation and communication to the devices as much as possible.
outlet
Devices If all of the devices are constrained to a location for example, a home or
constrained to a a workspace, then certain design choices can be made in order to
location improve scalability.
Autonomous Solutions can show independent conduct, by this we are particularly
behavior inspired in actuators being controlled without the use of human
Interaction.
Table 1: The Classification
All of these characteristics are not used in the classification. We can also see that some of these
attributes are dependent on each other. For instance, the constrained to a location attribute is
false if the devices are not stationary. This will be considered in the classification. Figure 2 shows
the resulting decision tree.
Layered Architecture: The studies designed their layered architecture in different ways, ranged
from 3 to 6 layers. As shown in Fig. 4, a three-layer IoT architecture is composed of the perception
layer, processing and storage layer, and application layer.
Cloud-Based Architecture: Cloud-based architecture has the second position. It uses cloud as the
core of their computational part. It is capable of processing and storing big amount of data and
provide contextual information which make cloud computing as an inseparable part of IoT. A
significant extension of cloud computing is fog computing. It virtualizes the cloud services to the
edge of the network to control the devices in the IoT. Fog is positioned between cloud and IoT
devices and facilitates the devices to communicate with cloud and provides them processing,
storage, and networking services.
Service oriented architectures: Service oriented architectures (SoA) put the service at the centre
of their IoT service design. In fact, the core application component makes the service available
for other IoT components over a network. SOA consists of following three elements.
1. A service provider that is the primary engine underlying the services.
2. A service broker that describes the location of the service and ensures its availability.
3. A service consumer or client that asks the service broker to locate a service and determine
how to communicate with that service.
Microservices Architecture: Building one or multiple applications from a set of different services
is the main goal of Microservice and the SOA approach in the IoT systems. A microservice is a
small application which can be deployed independently, scaled independently, tested
independently and which has a single responsibility. Literally, the microservice architecture
approach utilizes the SoA together with knowledge of software virtualization to overtake the
architecture quality limitations like scalability. In this architectural style, an application is built by
the composition of several microservices.
Restful: Restful provides decouples architecture and light weight communication between
service provider and service consumers, that is suitable for cloud based APIs. Restful can create
loosely coupled services on the web so that it can be easily reused. It further has advantages for
a decentralized and massive-scale service system.
Publish/Subscribe: In Publish/subscribe architectural style publisher sends a message on a
specific topic, regardless of receiver, and a subscriber can subscribe and receive the same topic
asynchronously. The system is generally mediated by a number of brokers which receive
published messages from publishers and send them to subscribers.
Information Centric Networking: Information Centric Networking (ICN) instead, makes the
information as a base of the device communication. ICN matches the application pattern of IoT
systems and provides an efficient and intelligent communication paradigm for IoT.
Conclusion:
IOT architecture process can include few steps (1) first and foremost is to clearly identify the
requirements of the system over next n number of years — what sort of functional and non-
functional requirements are there, what sort of updation and changes are expected to take place
etc. Once requirement collection is done – Considering the key requirements choose the best
architectural style.
The analysis of software architectural styles in the context of the IoT classes has various results.
For some classes it is clear which styles should be chosen in order to get the best quality attribute
effects. However, for the class “Smart Systems”, almost all styles could be used since that class
does not give enough context information. This is a consequence of the variety of solutions in the
IoT. There will most likely always be a “miscellaneous” class which contains all solutions that do
not fit in the other classes.
References:
https://www.researchgate.net/publication/289076981_The_Internet_of_Things_Software_Arc
hitectural_Solutions
https://www.mdpi.com/1999-5903/11/7/153
https://www.researchgate.net/publication/327647352_IoT_Architectural_Styles