ChapterPDF Available

Open Service Platforms for IoT

Authors:

Abstract and Figures

With the advent of Internet of Things (IoT), anything on earth with embedded processor, storage, and communication technology can communicate with each other. IoT can interconnect billions and trillions of devices on earth. This is considered as next revolution in the world of internet. It is expected that this revolution will drastically improve quality of daily life, will bring new forms of collaboration, interaction, and activities. IoT is not considered a single technology, but it is an aggregation of various underlying technologies, making the application development task bit challenging. In order to cope up with this challenge, number of vendors are coming up with IoT platforms for application development. IoT platforms provide support for connecting, storing, computing, and analysing data from heterogeneous devices. This chapter, presents a reference architecture for IoT service platforms, outline a set of service and architectural requirements for IoT platform, and review four major IoT platforms (AWS IoT platform, IBM Watson platform, Microsoft Azure IoT Platform, and Google Cloud Platform) from these requirements viewpoint. Further, gaps and issues in present IoT platforms are discussed with future research directions.
Content may be subject to copyright.
43© Springer Nature Switzerland AG 2020
M. Alam et al. (eds.), Internet of Things (IoT), S.M.A.R.T. Environments,
https://doi.org/10.1007/978-3-030-37468-6_3
Chapter 3
Open Service Platforms forIoT
PreetiAgarwal andMansafAlam
Abstract With the advent of Internet of Things (IoT), anything on earth with
embedded processor, storage, and communication technology can communicate
with each other. IoT can interconnect billions and trillions of devices on earth. This
is considered as next revolution in the world of internet. It is expected that this revo-
lution will drastically improve quality of daily life, will bring new forms of collabo-
ration, interaction, and activities. IoT is not considered a single technology, but it is
an aggregation of various underlying technologies, making the application develop-
ment task bit challenging. In order to cope up with this challenge, number of ven-
dors are coming up with IoT platforms for application development. IoT platforms
provide support for connecting, storing, computing, and analysing data from hetero-
geneous devices. This chapter, presents a reference architecture for IoT service plat-
forms, outline a set of service and architectural requirements for IoT platform, and
review four major IoT platforms (AWS IoT platform, IBM Watson platform,
Microsoft Azure IoT Platform, and Google Cloud Platform) from these require-
ments viewpoint. Further, gaps and issues in present IoT platforms are discussed
with future research directions.
Keyword Internet of Things (IoT) · IoT platform reference architecture · IoT
platform service requirements · IoT platform architectural requirements
3.1 Introduction
The term “Internet of Things” was rst coined by Kevin Ashton in 1999 (Ashton
2009). According to IoT concept, every sensor, every device, and every software
can be connected to each other. These devices can communicate remotely with
each other via. IoT platform. The main idea behind IoT was to provide ubiquitous
P. Agarwal (*) · M. Alam
Department of Computer Science, Jamia Millia Islamia, New Delhi, India
e-mail: malam2@jmi.ac.in
44
computing with minimum human intervention (Al-Fuqaha etal. 2015; Atzori etal.
2010). The concept gained popularity by embedding processors, storage and
communication technology in devices, and these technologies converted devices
into smart devices. Smart devices are now capable of sensing the environment, stor-
ing information, and can also communicate with each other, eliminating human in
the loop. Enabling interaction, collaboration and communication among various
devices has foster application development in many domains such as healthcare,
smart homes, agriculture, trafc, and energy management (Asghari etal. 2019). In
order, to provide centralized control over these smart devices, number of vendors
came up with different platforms. At present, market is ooded with IoT platforms,
and identifying a suitable one for a particular application is a big challenge (Agarwal
and Alam 2019). Some of the popular platforms are AWS IoT, IBM Watson,
Microsoft Azure, Google cloud IoT.The main objective of this chapter is:
To provide general IoT reference architecture,
Identify key service and architectural requirements for IoT platforms,
Review four most popular IoT platforms from requirements view point,
Present gaps and challenges to be addressed by future IoT platforms.
The structure of chapter is as follows: Sect. 3.2 gives general IoT reference archi-
tecture, Sect. 3.3 provides key service and architectural requirements of the plat-
form. Section 3.4 discusses four case studies of the most popular IoT platforms
AWS IoT, Microsoft Azure IoT, Google Cloud IoT, and IBM Watson IoT from
requirements viewpoint. Finally, Sect. 3.5 presents challenges and open research
directions to be addressed by future IoT platform.
3.2 IoT Reference Architecture
IoT is considered next revolution in World Wide Web. To provide Quality of Service
(QoS), special consideration need to be taken to while dening its architecture
(Fahmideh and Zowghi 2020). Many IoT architectures have been presented in litera-
ture, but the most accepted one is four layer architecture consisting of: sensor layer,
gateway and network layer, service management layer, and application layer (Yaqoob
etal. 2017), as shown in Fig.3.1. Each layer is described in following subsections.
3.2.1 Sensor Layer
The rst layer, called as sensor layer or perception layer. It consist of sensors and
actuators, that sense the environment, collect information for processing to gain
useful insights. Different kind of sensors can be deployed at this layer, like tempera-
ture, motion, humidity, sensing events etc. At this layer heterogeneous devices are
deployed in plug and play manner. The perception layer digitalizes, creates secure
P. Agarwal and M. Alam
45
channel, and transfer data to the next layer. This layer is major source of big data to
be processed by next layers.
3.2.2 Gateway andNetwork Layer
The gateway and network layer transfers data created through secure channels by
the sensor layer to the above layer. Various wireless technologies such as Zigbee,
RFID, Wi-Fi, etc. are used to transmit data. Furthermore, storage and processing of
data needs to be addressed at this layer. One of the possible solution for storage is
cloud. Multiple cloud based storage solutions for IoT generated big data exist (Khan
etal. 2017; Alam and Shakil 2016). Different ways to process both structured and
unstructured data exist (Alam 2012). Most of the data management as well as
resource management is carried out at this layer. Many algorithms for efcient
resource management can be deployed (Ali etal. 2019).
3.2.3 Service Management Layer
Management or Middleware layer binds a service with its requestor. This layer pro-
vides features that enables the IoT application programmers to work with the sensor
objects in a seamless manner, without any concern to underlying hardware. Also,
this layer processes received data, make smart decisions, and based on decisions
• Provide services required by customer.
• Span various sectors such as Smart Home, Smart
Healthcare, Smart Transportaon, etc.
Applicaon Layer
Provide IoT applicaon programmers with
hardware abstracon.
• Provide features for analysing data.
Management and
Service Layer
Connect IoT devices with cloud technologies.
Number of communicaon protocols like Zigbee,
WiFi, Bluetooth, etc. work at this layer.
Gateway and
Network Layer
Device sense the enviroment.
Transfers event through secure channel.
Sensor and
Connecvity
Layer
Fig. 3.1 IoT architectural layers
3 Open Service Platforms forIoT
46
deliver the services over the network through protocols. Various analytical solutions
can be applied at this layer to provide intelligent decisions.
3.2.4 Application Layer
The application layer provides the requested services to its users. For example, the
application layer can provide acceleration and heart beat values to the medical care
provider for its patient to continuously monitor them. This layer has ability to pro-
vide superior services to meet the user’s need. The application layer provide ser-
vices to many sectors such as smart home, smart healthcare, smart transportation,
industrial automation and smart energy management.
3.3 IoT Platform Requirements
IoT platform is a responsible for integrating devices on network for different appli-
cations through software packages. IoT Platforms are deployed on service manage-
ment layer of the IoT architecture. The platforms provide users a layer of abstraction,
hiding the implementation details. IoT platforms provides an ecosystem upon which
different smart applications can be built (Tiwana 2013).
Like other software’s, IoT platforms also need to satisfy certain user require-
ments. These user requirements are divided into service requirements and architec-
tural requirements (Razzaque et al. 2015; da Cruz et al. 2018). The service
requirements can be functional and non-functional, as shown in Fig.3.2.
3.3.1 Service Requirements
Service requirements can be classied as functional and non-functional. Functional
requirements describe the required functionalities of the IoT platform, whereas non-
functional requirements focus on providing QoS parameters (Razzaque etal. 2015).
The various functional requirements are described as follows:
Resource Discovery: The IoT connects heterogeneous devices in dynamic envi-
ronment. There must be some automated mechanism to publish, discover, and
subscribe to resources in centralized manner. In order to carry out this task mid-
dleware platform maintains a registry component in which devices register them-
selves using necessary API’s. After registration the device becomes discoverable
to other devices in the network. The registered device can publish metadata about
its services. Even other devices in the network can query the device by suitable
query mechanism, can surf the required services and resources provided by the
P. Agarwal and M. Alam
47
device. To explore services provided by a device semantic match making mecha-
nism is used (Fabisch and Henninger 2019). The various challenges associated
with discovery includes interoperability (Nitti etal. 2017), security (Zhang etal.
2017), and unique addressing (Cheng etal. 2015).
Resource Management: To provide QoS, it is required to deploy certain module
on IoT platform to manage resources. Resources need to be monitored, sched-
uled and allocated in a fair, conict free manner (Razzaque etal. 2015) by the
platform. To carry out this task platforms must maintain data about device bat-
tery time, memory usage, processing power, and other relevant information for
efcient resource management (da Cruz etal. 2018).
Data Management: Data management plays a vital role in any application
development. In case of IoT, data refers to the data sensed by the IoT devices.
IoT platform is required to provide data management services which include data
acquisition, data processing, querying and visualisation.
Data Acquisition: IoT platforms acquire data sensed by devices from various
sources. The sensed data can be structured or semi-structured (Cheng et al.
2015). Following are the main sources of data captured by the platform (Santana
etal. 2018; Khan etal. 2015):
Real time data about physical devices such as trafc, city maps, citizen’s data.
Data available in form of software such as libraries, codes, documents.
Historically stored data in the form of logs, historic actions.
Funconal
Requirements
•Resource Discovery
•Resource Management
•Data Management
•Data Acquision
•Data Cleaning
•Data Storing
•Data Processing
•Query Processing
•Data Visualizaon
•Event Processing
•Code Management
Non-
Funconal
Requirements
•Scalability
•Timeliness
•Availability
•Security
•Privacy
•Ease of deployement
Architectural
Requirements
•Programming Abstacon
•Interoperable
•Service Based
•Adapve
•Context Aware
•Autonomous
•Distributed
Fig. 3.2 IoT platform
requirements
3 Open Service Platforms forIoT
48
The challenges associated with designing data acquisition are addressing, scal-
ability, conguration, security and interoperability of objects (Apolinarski
etal. 2014).
Data Cleaning: This data acquired through sensors may be incomplete, incon-
sistent, noisy or irrelevant. To increase the reliability of the system it is required
to be cleaned and preprocessed for further execution. The algorithms for anom-
aly detection (Cheng etal. 2015), maintaining semantic consistency, data nor-
malization (Silva etal. 2018), and data ltering (Petrolo et al. 2014; Filipponi
etal. 2010) need to be designed. Some platforms even employ strategies that
allow users to collect data of interest only by ltering irrelevant data through
algorithms (Soldatos etal. 2015).
Data Storing: It deals with storing the data acquired through the sensors. IoT
platform is mainly responsible for managing huge volume and variety of IoT
sensed data. Mainly relational databases and No SQL databases are used for stor-
age (Fahmideh and Zowghi 2020). Relational databases are used for structural,
transactional data. No SQL databases are used for dynamically changing schema.
Some of the popular choices of No SQL databases are Hadoop, CouchDB,
HBases, and MangoDB.
Data Processing: This includes the power of IoT platform to analyses sensor
data for meaningful inferences. Data is usually analyzed in two modes: Real time
analytics or Streaming mode, and batch processing or historical analysis (Al-
Fuqaha etal. 2015). In real time analytics the concern is over timely efcient
processing of fast running IoT stream data. Some of the technologies that sup-
port fast streaming data are Apache Spark, Storm. Historic analysis deals with
processing batch of historically stored sensor data and nding inferences in it.
Data mining techniques such as classication, regression and clustering can be
done on data to nd classes, groups or abnormalities, trends in acquired sensor
data.
Query Processing: It is the process for querying the data stored in the IoT plat-
form. Querying mechanism also uses publish/subscribe mechanism like data
acquisition (Cheng etal. 2015). The query can be a simple query or complex
query aggregating data from multiple databases.
Data Visualization: in response to users query on stored data, visualization tech-
niques provide graphical view of the analysis results. Results can be in form of
dashboards, maps or reports.
Event Processing: The function of the platform is to process event successfully.
Event is nothing, but a change in environment, which is captured by sensor, and
requires certain action to be taken over it. Usually event processing is required to
be carried out in real time (Cretu 2012). The platform should provide exibility to
the users in terms of executing own code and dene event conditions (Sarhan
2019). The main challenges associated with event processing in IoT platform is to
combine data from multiple sensor stream in different forms and combine them
for one common goal. Events are usually represented in form of ontologies enabled
by metadata for their correct interpretations (Fahmideh and Zowghi 2020).
P. Agarwal and M. Alam
49
Code Management: IoT platform plays an important role in deploying code for
IoT applications. For this code allocation, and migration services are required
(da Cruz etal. 2018). Code allocation deals with selecting appropriate sensor
devices and executing code on that particular sensor device. Code migration
deals with providing portable facilities for migrating code on different program-
ming services.
Non –functional requirements: The various non-functional requirements are
described as follows:
Scalability: The IoT platform needs to accommodate large number of devices.
The IoT platform must provide features that can add any number of devices, and
can remove any number of devices (Al-Fuqaha etal. 2015). Adding large number
of devices must maintain QoS (da Cruz etal. 2018)
Timeliness: Event processing mainly rely on timely execution on data. Most of
the events require real time processing. Real time means execution of data
quickly, without any delay. The time required for processing is critical and is
determined by different applications processing them.
Availability: For critical applications 24X7 availability of the platform is must.
The platform must be available for services, even it is facing internal failures
(Razzaque etal. 2015). The recovering time from failure should be very small,
not affecting the system performance. Reliability and availability both are impor-
tant factors and deals with fault tolerance.
Security and privacy: Another important requirement of IoT platform is to pro-
vide security to the user’s data. Most of the applications require to store user’s
personal data and information such as GPS cation, password, etc. Proper security
mechanisms need to be deployed to protect user’s information during transmis-
sion and storage to protect it from malicious attacks. Proper security and privacy
preserving mechanisms need to be deployed at both functional and non- functional
level (Al-Fuqaha etal. 2015).
Ease of deployment: IoT platforms are used for end user application deploy-
ment. Most of the time they are used by application developers to integrate their
own device. So, it is required from platform to be user friendly, to be easily inte-
gral with device, and must not require lot of expertise. Must be easy to install and
set up.
3.3.2 Architectural Requirements
Architectural requirements supports application development. It deals with the
requirements which can ease the application development task, such as program-
ming abstraction from hardware implementation, inbuilt API’s, libraries. The major
architectural requirements are as follows:
3 Open Service Platforms forIoT
50
Programming Abstraction: The application developing programming interface
of an IoT platform must be able to hide the internal working of the system. At the
time of designing the IoT platform, it is required to design the level of abstraction
to be provided to the different level of users.
Interoperable: An IoT platform must be able to interoperate heterogeneous
devices, technologies and diverse applications. These heterogeneous devices
must be able to communicate with each other, exchange information, and can
work collaboratively to achieve nal goal. Interoperability can be achieved at
network, semantic, and syntactic level (Fahmideh and Zowghi 2020).
Service based: IoT platforms must support service-based framework, where
new service interfaces for diverse applications can be easily added, without
affecting the underlying hardware interfaces. Service oriented framework pro-
vides exible architecture for building diverse applications.
Adaptive: IoT platform architecture should be capable of adapting itself to
changing environment. IoT applications usually work in dynamic environment.
So, it is required that platform should incorporate this dynamicity in its
architecture.
Context Aware: Context awareness adds value to the information sensed by the
IoT devices. Context awareness means IoT device must be capable of capturing
user’s information and device information for providing more meaningful
inferences.
Autonomous: All devices in IoT environment must work in self-governing
mode. They must be able to work autonomously in collaboration with other
devices in the network without human intervention (Gubbi etal. 2013; Wang
etal. 2010). Automaticity can be provided by embedded intelligence, analytics,
and autonomous agents (Guo etal. 2011).
Distributed: In order to support distributive applications like transportation,
trafc. The IoT platform must be able to provide distributed, decentralised pro-
cessing. Platform must support functions that can be performed in physically
distributed infrastructure environment.
3.4 Case Study ofIoT Service Platforms
The market is overwhelmed with number of IoT middleware platforms. Out of hun-
dreds of IoT platforms, this chapter presents case study of four most popular plat-
forms namely: Amazon Web Service (AWS) IoT, Microsoft Azure IoT, Google
Cloud Platform, IBM Watson IoT. Each one of the following is discussed with
requirements viewpoint.
P. Agarwal and M. Alam
51
3.4.1 Amazon Web Service (AWS IoT)
AWS IoT platform is developed by Amazon Web Services (AWS IoT 2019). It can
connect millions of IoT devices through secure gateway. It is an integration of large
number of middleware technologies working collaboratively. AWS has lot of inbuilt
technologies supporting integration with heterogeneous devices, capturing data,
securely transmission on cloud, support for device authorization and authentication,
analytics tools. Besides these, AWS also supports number of third party applica-
tions. The technologies supported by AWS, to satisfy service and architectural
requirements of the platform are given below.
Functional Requirements AWS follows publish subscribe mechanism for
resource discovery. Each device connects to AWS via. gateway through secure
channel protocols. Data is then passed through Rules Engine, which transforms data
and pass it to the cloud services. At cloud end, Dynamo DB for NoSQL storage is
deployed, lambda functions are used for event management. AWS supports dash-
boards for visualisation of data.
Non-functional Requirements AWS can scale millions of devices. It intercon-
nects devices irrespective of their underlying architecture using API’s and SDK’s. It
supports large number of programming language, and supports code migration. It
can integrate with large number of Operating system through command line inter-
face. Each device is authenticated and authorised using certicate, and is assigned
unique ID.Data during transmission is secured through encryption and decryption.
Overall AWS is easy to deploy, and uses pay as you use policy.
Architectural Requirements AWS provides programming abstraction, as user
can program in any language. AWS has support for large number of interfaces. It has
high fault tolerance and availability. Things Shadow maintains data related to device
such as identication, location. It has centralized architecture, but supports distrib-
uted processing with Elastic MapReduce. The different features corresponding to
requirements are summarized in Table3.1.
3.4.2 Microsoft Azure IoT
Microsoft Azure IoT is developed by Microsoft (Azure IoT | Microsoft Azure 2019).
It is considered to be only hybrid cloud service solution. Unlike, AWS IoT it can
support pre-congured solutions. Azure has one of the powerful articial intelli-
gence support engine. It has number tools and technologies for securing capturing
data, storing, and processing data. In response to various service and architectural
requirements, various tools and technologies deployed are discussed below.
3 Open Service Platforms forIoT
52
Functional Requirements Each device registers itself with azure directory ser-
vice, which provides it a unique identication. Load balancing by azure platform is
carried out both at local as well as global level. Supports both NoSQL storage for
semi structured data, as well as support for SQL storage. It supports large azure
analytics engine. Number of powerful tools for visualisation are also available.
Supports real time event processing and code management.
Non-functional Requirements Azure can be scaled to large number of devices.
Supports both real time as well as historic processing of data. In order to improve
Table 3.1 AWS IoT features
Service requirements
Functional requirements
Resource
discovery
Publish and subscribe mechanism via. Message broker on device gateway
through MQTT or HTTP protocol
Resource
management
Things registry is used to manage resources allocated with each device.
Elastic load balancing to manage load in network
Data management Amazon simple storage service (S3) provides scalable storage, dynamo DB
provides NoSql databases, lambda for virtualization
Query processing Rules engine using SQL language for message processing
Data visualization Dashboards for visualization
Event processing Amazon Kenesis for real time event processing. Simple notication service
is used for event notications. Lambda functions can trigger different events
Code management Through in built SDK’s can code in any language
Non-functional requirements
Scalability Can scale billions of heterogeneous devices
Timeliness Amazon Kenesis with Kenesis analytics is used for real time processing
Availability 24 × 7
Security and
privacy
Certicates for authentication, supports encryption decryption of data, user
can dene its own security rules and policies
Ease of
deployment
Easy. With just registration
Architectural requirements
Programming
abstraction
Command line Interface is compatible with number of OS such as
windows, Linux, and OSX.AWS SDK’s allow user to program in any
language
Interoperable Rules engine makes it interoperable with other services
Service based Support for large number of API’s and SDK’s make architecture service
based
Adaptive Not very adaptive friendly platform
Context-
Awareneness
Things shadow maintain current state information of device
Autonomous Each device can autonomously collaborate with other devices to exchange
data using its unique identication number
Distributed It has centralized architecture, but uses elastic MapReduce for processing
P. Agarwal and M. Alam
53
availability, back up mechanism is deployed to make system fault tolerant. To pro-
vide device authentication, two way secure protocol is deployed.
Architectural Requirements Azure can be deployed either in windows, or linux
platform. It has support for number of programming languages such as python, java,
PHP, Node.js, etc. To interconnect large number of heterogeneous devices with dif-
ferent underlying architecture, number of inbuilt SDK’s and APIs are available.
Mean Time to Failure is quite low. Supports decentralized serverless architecture.
The service and architectural requirements of Microsoft azure are summarized in
Table3.2.
3.4.3 Google Cloud Platform
Google Cloud Platform (GCP) is developed by Google. It can connect heteroge-
neous IoT devices. It can support lightweight applications. It is considered to be
server less architecture. GCP has support for large number of analytics libraries like
tensor ow, etc. GCP is one of the powerful emerging IoT platform supporting large
number of features, including support mobile applications. Various features sup-
porting functional, non-functional and architectural requirements are given below:
Functional Requirements GCP uses publish subscribe mechanism for resource
discovery. A registry of device is maintained. It supports BigTable storage solution,
and rebase solution for real time processing of the event. Supports large number of
programming languages interface.
Non-functional Requirements Can scale millions of devices. In order to make
system fault tolerant, it deploys back up mechanism. Security and privacy is pro-
vided by authorisation and authentication of device. Firebase solution deals with the
timeliness of the event execution. It supports large number of machine libraries like
tensorow to provide intelligent solutions.
Architectural Requirements GCP provides good programming abstraction by
supporting large number of programming languages. Context aware applications
are easy to deploy as each device in the network can be tracked by unique ID, and
location. Suitable for lightweight mobile apps as well as client web applications. It
uses centralized architectural approach.
The Service and architectural requirements of Google Cloud Platform are sum-
marized in Table3.3.
3 Open Service Platforms forIoT
54
3.4.4 IBM Watson IoT
IBM Bluemix platform is recently named as IBM Watson IoT platform. It supports
large number of cognitive analytics, and considered one of the popular platform for
researchers (IBM Knowledge Center 2019). The various technologies provided by
IBM Watson in view of functional, non-functional and architectural requirements
are as follows:
Functional Requirements Each device in the network is connected via. Message
broker through secure gateway. Each device is assigned a unique organisation ID.It
supports both SQL databases and NoSql databases. Cognitive engine is deployed
Table 3.2 Microsoft Azure features
Service requirements
Functional requirements
Resource
discovery
Not much support for resource discovery
Resource
management
Azure active directory. Supports both global level and local level load
balancing
Data management Support storage using Cosmos DB and processing, support for in-motion
analytics. Data can also be stored in blob storage and Postgre storage
Query processing Azure analytics through SQL syntax
Data visualization Dashboards, power BI, web apps
Event processing Support for predictive analytics, user can set a thresholds and alert limits
through event hub
Code management Supports code migration
Non-functional requirements
Scalability Scalability of ten million devices per instance
Timeliness Support both historic and real time processing. Supports stream analytics
Availability 24×7. supports fault localization. Maintains backup to improve reliability
Security and
privacy
Device authentication through two way secure protocol
Ease of
deployment
Medium level difculty
Architectural requirements
Programming
abstraction
Can scale with number of programming languages and command line
interface through inbuilt tools and technologies
Interoperable Agent libraries, SDK’s allow interoperability within heterogeneous systems
Service based Provides certain pre- congured solutions. Support number of architectures
like event driven, microservices, n-tier, web-queue, and worker
Adaptive MTTR is very low
Context-
awareness
Azure active directory
Autonomous Heterogeneous devices can work autonomously in collaboration to each
other
Distributed Decentralized serverless architecture
P. Agarwal and M. Alam
55
for query processing. Dashboards and Jupyter notebook for visualization. Supports
both historic and real time event processing.
Non-Functional Requirements can scale millions of devices. Kafka REST APIs
are used to provide timeliness of event processing. Provide authentication, authori-
sation mechanism through protocols, with support for risk management. Platform is
quite easy to deploy, making it popular choice among researchers.
Architectural Requirements Supports large number of programming language.
Usually Node Red editor is used for programming. Suitable for deploying context
aware apps. Supports large number of SDKs. Can be used to build lightweight as
well as web apps. It has centralized architecture with support for distributed
processing. The service and architectural requirements for IBM Watson are sum-
marized in Table3.4.
Table 3.3 Google Cloud platform features
Service requirements
Functional requirements
Resource discovery Uses pub/ sub scheme. Devices register through device id. Maintains
registry of devices
Resource
management
Devices managed through device drivers and protocol bridge. Deploy
resource allocation
Data management Cloud BigTable is used for data storage. Firebase database for real time
processing. Supports both historic and real time data processing
Query processing BigQuery is use for query processing
Data visualization Dashboards
Event processing Firebase database for real time event time processing
Code management Support number of programming languages and libraries
Non-functional requirements
Scalability Can scale millions of devices
Timeliness Real time processing though rebase
Availability 24 × 7. Fault tolerance through backup
Security and
privacy
Authentication, authorization of device
Ease of
deployment
Easy
Architectural requirements
Programming
abstraction
Number of programming languages
Interoperable Number of libraries, lightweight libraries, APIs, SDK
Service based Supports mobile apps, and end to end applications
Adaptive Not very adaptive
Context-
Awareneness
With each device there is unique id, state information, telemetry
Autonomous Each device with unique id can send stream of telemetry
Distributed Centralized approach
3 Open Service Platforms forIoT
56
3.5 Challenges andOpen Research Problems
The IoT Platforms, still have lot of research challenges that need to be addressed in
future research. The various challenges and open research problems related to IoT
platforms are discussed below:
Need for improved and more accurate models for resource discovery. IoT plat-
form needs to address large number of request in timely and accurate manner.
The present registry methods such as distributed, hybrid, or probabilistic does
not fully cater this requirement (Teixeira et al. 2011). So, there is a need for
designing better resource discovery models.
Table 3.4 IBM Watson features
Service requirements
Functional requirements
Resource
discovery
Message broker for secure device registration via. Gateway
Resource
management
Each device registers through unique organization id
Data management Cloudant NoSql DB for real time processing. Data lake for SQL storage.
DB2 for long term schema storage
Query processing Has cognitive engine for providing data analytics capability. Supports
machine learning. Supports both predictive and prescriptive analytics
Data visualization Dashboards, support jupyter notebook
Event processing Support historic and real time event processing
Code management Supports code migration
Non-functional requirements
Scalability Can scale millions of devices
Timeliness Real time processing through no SQL event streaming and Kafka REST
APIs
Availability High availability
Security and
privacy
Unique authentication code for device identication. Supports risk
management. Secure communication via. Protocols
Ease of
deployment
Easier to deploy
Architectural requirements
Programming
abstraction
User can choose own programming language and architecture. Red node
visual programming editor
Interoperable Large number of SDK’s
Service based Framework supports client side application, mobile micro apps
Adaptive Can adapt to changing environment
Context-
awareneness
Stores device id, last activity, geographic location
Autonomous Each device has unique social id and can autonomously collaborate with
each other
Distributed Centralized architecture with support for distributed processing
P. Agarwal and M. Alam
57
Need for more efcient resource scheduling and management policies. Conict
of resources among IoT devices is a very common scenario. At present very few
IoT platforms deploy strategies for resource conict resolution. So, this is one of
the area which need to be addressed in the future.
More focus on support for data ltering. Data aggregation and ltering is one of
the major steps in analysis. Most of the platforms provide data aggregation solu-
tion, but very few support on ltering of relevant and irrelevant data.
Support for data compression. IoT generates huge amount of data, requiring
large amount of storage. Proper data compression solutions can be deployed to
reduce the amount of storage required.
Support for changing business logic or IoT environment. Business logic and
requirements keep on changing with time. Proper code allocation and migration
strategies need to be deployed with support for rmware update.
Support for Hard real time processing is required. Soft real time processing of
events is done efciently IoT. But, still addressing Hard time event is a
challenge.
Seamless replacement of modules to provide reliability in case of faults and fail-
ures is still a challenge.
Service provising in case of failure to improve availability of a platform in seam-
less manner needs to be addressed in future research.
Human intervention is required for deployment of devices on IoT platform.
There is a need for pre-congured solutions to address this issue and reduce
human efforts, making things automated and ease for deployment.
Need to address syntactic and semantic interoperability. Most of the IoT plat-
forms provide hardware interoperability with lesser focus on syntactic and
semantic interoperability.
Need for more dynamic rules and policies for making deployed system adaptable
to run time environment.
3.6 Conclusion
In IoT scenario heterogeneous devices are connected and work collaboratively to
achieve a particular goal. At the lowest layer, lies the resource constrained sensors,
that senses the environment. To convert this information into meaningful insights,
the data through sensors need to be stored and processed. All these packages need
to be consolidated into one platform called as IoT platform. Number of vendors are
available in the market with different requirements and specications. Choosing the
right one according to the need of application is the major key factor in successful
deployment of application. The IoT platforms have come a long way, still they need
to work on certain aspects to provide better functionality like security, resource
provision, making more user friendly, easy device discovery, deployment and inte-
gration, better storage and resource management policies.
3 Open Service Platforms forIoT
58
References
Agarwal, P., & Alam, M. (2019). Investigating IoT middleware platforms for smart application
development. arXiv preprint arXiv, 1810, 12292.
Alam, M. (2012, December). Cloud Algebra for handling unstructured data in cloud database
management system. International Journal on Cloud Computing: Services and Architecture
(IJCCSA), 2(6) ISSN: 2231 – 5853 [Online], 2231 – 6663 [Print], https://doi.org/10.5121/
ijccsa.2012.2603, Taiwan.
Alam, M., & Shakil, K.A. Presented “Big Data analytics in Cloud environment using Hadoop.
In International conferences on Mathematics, Physics & Allied sciences-2016, March 03–05,
2016, Goa.
Al-Fuqaha, A., Guizani, M., Mohammadi, M., Aledhari, M., & Ayyash, M. (2015). Internet of
things: A survey on enabling technologies, protocols, and applications. IEEE Communications
Surveys & Tutorials, 17(4), 2347–2376.
Ali, S.A., Affan, M., & Alam, M. (2019). A study of efcient energy management techniques
for Cloud Computing environment. 2019 9th International conference on Cloud Computing,
Data Science & Engineering (Conuence) (pp.13–18), Noida, India. https://doi.org/10.1109/
CONFLUENCE.2019.8776977.
Apolinarski, W., Iqbal, U., & Parreira, J.X. (2014, March). The GAMBAS middleware and SDK
for smart city applications. In 2014 IEEE International conference on pervasive computing and
communication workshops (PERCOM WORKSHOPS) (pp.117–122). IEEE.
Asghari, P., Rahmani, A.M., & Javadi, H.H. S. (2019). Internet of things applications: A system-
atic review. Computer Networks, 148, 241–261.
Ashton, K. (2009). That ‘internet of things’ thing. RFID Journal, 22(7), 97–114.
Atzori, L., Iera, A., & Morabito, G. (2010). The internet of things: A survey. Computer Networks,
54(15), 2787–2805.
AWS IoT. (2019). Retrieved September 12, 2019, from https://docs.aws.amazon.com/iot/index.
html
Azure IoT | Microsoft Azure. (2019). Retrieved September 12, 2019, from https://azure.microsoft.
com/en-in/overview/iot/
Cheng, B., Longo, S., Cirillo, F., Bauer, M., & Kovacs, E. (2015, June). Building a big data plat-
form for smart cities: Experience and lessons from santander. In 2015 IEEE International con-
gress on Big Data (pp.592–599). IEEE.
Cretu, L.G. (2012). Smart cities design using event-driven paradigm and semantic web. Informatica
Economica, 16(4), 57.
da Cruz, M.A., Rodrigues, J. J. P., Al-Muhtadi, J., Korotaev, V. V., & de Albuquerque, V.H. C.
(2018). A reference model for internet of things middleware. IEEE Internet of Things Journal,
5(2), 871–883.
Fabisch, M., & Henninger, S. (2019). ESPRESSO–systemic standardisation approach to empower
smart cities and communities. Smart Cities in Smart Regions, 2018, 115.
Fahmideh, M., & Zowghi, D. (2020). An exploration of IoT platform development. Information
Systems, 87, 101409.
Filipponi, L., Vitaletti, A., Landi, G., Memeo, V., Laura, G., & Pucci, P. (2010, July). Smart city:
An event driven architecture for monitoring public spaces with heterogeneous sensors. In 2010
Fourth International Conference on Sensor Technologies and Applications (pp. 281–286).
IEEE.
Gubbi, J., Buyya, R., Marusic, S., & Palaniswami, M. (2013). Internet of Things (IoT): A vision,
architectural elements, and future directions. Future Generation Computer Systems, 29(7),
1645–1660.
Guo, B., Zhang, D., & Wang, Z. (2011, October). Living with internet of things: The emergence of
embedded intelligence. In 2011 International conference on internet of things and 4th interna-
tional conference on cyber, physical and social computing (pp.297–304). IEEE.
P. Agarwal and M. Alam
59
IBM Knowledge Center. (2019). Retrieved September 12, 2019, from https://www.ibm.com/
suport/knowledgcenter/SSQP8H/iot/overview/architecture.html
Khan, Z., Anjum, A., Soomro, K., & Tahir, M.A. (2015). Towards cloud based big data analytics
for smart future cities. Journal of Cloud Computing, 4(1), 2.
Khan, S., Shakil, K.A, & Alam, M. (2017). Cloud based Big Data Analytics: A survey of current
research and future directions, Big Data Analytics (pp629–640). Springer, Print ISBN: 978-
981- 10-6619-1, Electronic ISBN: 978–981-10- 6620-7.
Nitti, M., Pilloni, V., Giusto, D., & Popescu, V. (2017). Iot architecture for a sustainable tourism
application in a smart city environment. Mobile Information Systems, 2017.
Overview of Internet of Things | Solutions | Google Cloud. (2019). Retrieved September 12, 2019,
from https://cloud.google.com/solutions/iot-overview
Petrolo, R., Loscri, V., & Mitton, N. (2014, August). Towards a smart city based on cloud of things.
In Proceedings of the 2014 ACM international workshop on wireless and mobile technologies
for smart cities (pp.61–66). ACM.
Razzaque, M.A., Milojevic-Jevric, M., Palade, A., & Clarke, S. (2015). Middleware for internet of
things: A survey. IEEE Internet of Things Journal, 3(1), 70–95.
Santana, E.F. Z., Chaves, A.P., Gerosa, M.A., Kon, F., & Milojicic, D.S. (2018). Software plat-
forms for smart cities: Concepts, requirements, challenges, and a unied reference architecture.
ACM Computing Surveys (CSUR), 50(6), 78.
Sarhan, A. (2019). Cloud-based IoT platform: Challenges and applied solutions. In Harnessing
the Internet of Everything (IoE) for accelerated innovation opportunities (pp. 116–147).
Hershey: IGI Global.
Silva, B.N., Khan, M., & Han, K. (2018). Internet of things: A comprehensive review of enabling
technologies, architecture, and challenges. IETE Technical Review, 35(2), 205–220.
Soldatos, J., Kefalakis, N., Hauswirth, M., Serrano, M., Calbimonte, J.P., Riahi, M., etal. (2015).
Openiot: Open source internet-of-things in the cloud. In Interoperability and open-source
solutions for the internet of things (pp.13–25). Cham: Springer.
Teixeira, T., Hachem, S., Issarny, V., & Georgantas, N. (2011, October). Service oriented middle-
ware for the internet of things: A perspective. In European conference on a service-based
internet (pp.220–229). Berlin/Heidelberg: Springer.
Tiwana, A. (2013). Platform ecosystems: Aligning architecture, governance, and strategy. Oxford:
Newnes.
Wang, H., Zhou, X., Zhou, X., Liu, W., Li, W., & Bouguettaya, A. (2010, December). Adaptive
service composition based on reinforcement learning. In International conference on service-
oriented computing (pp.92–107). Berlin/Heidelberg: Springer.
Yaqoob, I., Ahmed, E., Hashem, I.A. T., Ahmed, A.I. A., Gani, A., Imran, M., & Guizani, M.
(2017). Internet of things architecture: Recent advances, taxonomy, requirements, and open
challenges. IEEE Wireless Communications, 24(3), 10–16.
Zhang, K., Ni, J., Yang, K., Liang, X., Ren, J., & Shen, X.S. (2017). Security and privacy in smart
city applications: Challenges and solutions. IEEE Communications Magazine, 55(1), 122–129.
3 Open Service Platforms forIoT
... The functional requirements mentioned most often in the literature are security and privacy, data management, standardization, interfaces, data visualization, and resource discovery (Fersi, 2015;Mijuskovic et al., 2021;Oliveira et al., 2016). On the other hand, non-functional requirements encompass interoperability, scalability, real-time processing, timeliness, modularity, context awareness, and quality of service (Agarwal & Alam, 2020;Al-Fuqaha et al., 2015;Mijuskovic et al., 2021). However, the requirements can broadly vary based on the distinct type of SCP they study. ...
Conference Paper
Full-text available
The notion of Smart Cities (SCs) has gained significant attention in recent years as cities become increasingly connected, integrated, and technologically advanced. Smart City Platforms (SCPs) are an important element of this movement representing the backbone for collecting, processing, and analyzing urban data streams from peripheral devices and systems in a city. This study seeks to identify the key dimensions and characteristics of SCPs. Based on existing literature, we craft a taxonomy following Nickerson et al.'s (2013) guidelines. The resulting SCP taxonomy contributes to the literature on SCs by offering a set of characterizations of SCPs that provide a framework to analyze SCPs and identify types of SCPs.
... The advent of sensors and their integration with various cloud storage has further enhanced the field [18,19]. It has opened the door for new applications of autonomous HAR [20]. The pace at which data from wearable sensors is growing soon will outpace the capacity of traditional technologies [21]. ...
... These technologies are mostly implemented in a cloud-based environment (AWS EC2, Microsoft Azure). Thus, there are some cloud-based commercial ready-made IoT solutions, like FIWARE [23,24], AWS IoT [25] or IBM Watson IoT platform [26] available to developers to this end. ...
Article
Information and communication technologies backbone of a smart city is an Internet of Things (IoT) application that combines technologies such as low power IoT networks, device management, analytics or event stream processing. Hence, designing an efficient IoT architecture for real-time IoT applications brings technical challenges that include the integration of application network protocols and data processing. In this context, the system scalability of two architectures has been analysed: the first architecture, named as POST architecture, integrates the hyper text transfer protocol with an Extract-Transform-Load technique, and is used as baseline; the second architecture, named as MQTT-CEP, is based on a publish-subscribe protocol, i.e. message queue telemetry transport, and a complex event processor engine. In this analysis, SAVIA, a smart city citizen security application, has been deployed following both architectural approaches. Results show that the design of the network protocol and the data analytic layer impacts highly in the Quality of Service experimented by the final IoT users. The experiments show that the integrated MQTT-CEP architecture scales properly, keeps energy consumption limited and thereby, promotes the development of a distributed IoT architecture based on constraint resources. The drawback is an increase in latency, mainly caused by the loosely coupled communication pattern of MQTT, but within reasonable levels which stabilize with increasing workloads.
Article
The Internet-of-Things (IoT) presents itself as an emerging technology, which is able to interconnect a massive number of heterogeneous smart objects. Several complex data-driven applications, such as smart cities applications, home automation, health monitoring, etc., have been realized through the existence of these ubiquitous networks of smart objects. The ability to remotely update the devices forming an IoT network is of paramount importance, as it enables adding new functionality in their firmware, either for resolving software bugs and security vulnerabilities or for application re-purposing, without the need to physically access them. In this work, we present a flexible Compilation-as-a-Service and Remote-Programming-as-a-Service platform that jointly offers cloud-based compilation and Firmware-Over-The-Air (FOTA) update functionalities for deployed IoT devices, in a reliable and secure manner. Our system is capable of easily supporting various embedded operating systems and heterogeneous hardware platforms. We describe the system architecture and elaborate on the implementation details of all system components. In addition, we perform an extensive performance evaluation of a Proof-of-Concept (PoC) deployment of our system and discuss results in terms of system response, scalability and resource utilization.
Article
The Internet of Things (IoT) is a model where devices and applications interact together to provide smart services in different contexts like smart homes, or smart vehicles. One of the challenges of IoT is the diversity of vendors who provide the IoT devices and the IoT applications. Such diversity leads to reduced utilization of the provided computing resources within IoT computing platforms, due to the different hardware requirements of each vendor for his developed applications, and their corresponding devices. Thus, the same computing resources could be duplicated in the same IoT platform, with minor variations, to fit different vendors needs. Such duplication revsults in extra costs on the application vendors, and reduced utilization of those computing resources. Another consequence of such diversity is the lack of a common interface for communication across IoT devices and applications from different vendors. Such common interface should present a level of abstraction that would hide both the vendor-specific and the IoT platform-specific implementation details, to provide seamless integration of new IoT devices and applications within an IoT platform. This paper presents a novel architecture for an IoT computing platform, namely Hub-OS, for managing devices and applications from different vendors with efficient utilization of computing resources. IoT devices and applications could be easily integrated without the need to modify either Hub-OS software components, or the vendor-specific applications and devices. Furthermore, Hub-OS could host IoT applications that demand real-time processing if needed. To evaluate Hub-OS, we implemented one case study for a smart vehicle, and conducted a quantitative evaluation using varied configurations. Our quantitative evaluation shows that Hub-OS can integrate applications and devices from different vendors, with reduced latency, reduced CPU usage, efficient IoT application startup and migration times.
Article
Full-text available
IoT (Internet of Things) platforms are key enablers for smart city initiatives, targeting the improvement of citizens’ quality of life and economic growth. As IoT platforms are dynamic, proactive, and heterogeneous socio-technical artefacts, systematic approaches are required for their development. Limited surveys have exclusively explored how IoT platforms are developed and maintained from the perspective of information system development process lifecycle. In this paper, we present a detailed analysis of 63 approaches. This is accomplished by proposing an evaluation framework as a cornerstone to highlight the characteristics, strengths, and weaknesses of these approaches. The survey results not only provide insights of empirical findings, recommendations, and mechanisms for the development of quality aware IoT platforms, but also identify important issues and gaps that need to be addressed.
Chapter
Full-text available
Developing IoT projects from scratch requires a lot of knowledge and expertise; moreover, it takes a very long time to be developed. It can be hard for starters and even senior developers to perfect every aspect of an IoT project in a timely manner. These aspects include hardware, communication, data storage, security, integration, application, data processing, and analysis. This chapter introduces a cloud-based platform that is concerned with data storage, device management, data processing, and integration with external systems, all while providing high level of security and allowing for future scaling. This platform should accelerate and simplify the development of IoT projects by lowering the entry barrier and offloading some of the burden off developers to give them more time to focus on other aspects such as hardware and applications. The authors discuss many implementation issues in the functional and design perspective that may guide others to make their own platforms from this insight view.
Chapter
Full-text available
The advent of the digital age has led to a rise in different types of data with every passing day. In fact, it is expected that half of the total data will be on the cloud by 2016. This data is complex and needs to be stored, processed, and analyzed for information that can be used by organizations. Cloud computing provides an apt platform for big data analytics in view of the storage and computing requirements of the latter. This makes cloud-based analytics a viable research field. However, several issues need to be addressed and risks need to be mitigated before practical applications of this synergistic model can be popularly used. This paper explores the existing research, challenges, open issues, and future research direction for this field of study.
Article
Full-text available
Recent years have witnessed tremendous growth in the number of smart devices, wireless technologies, and sensors. In the foreseeable future, it is expected that trillions of devices will be connected to the Internet. Thus, to accommodate such a voluminous number of devices, scalable, flexible, interoperable, energy-efficient, and secure network architectures are required. This article aims to explore IoT architectures. In this context, first, we investigate, highlight, and report premier research advances made in IoT architecture recently. Then we categorize and classify IoT architectures and devise a taxonomy based on important parameters such as applications, enabling technologies, business objectives, architectural requirements, network topologies, and IoT platform architecture types. We identify and outline the key requirements for future IoT architecture. A few prominent case studies on IoT are discovered and presented. Finally, we enumerate and outline future research challenges.
Article
Full-text available
In the past few years, the Smart Cities concept has become one of the main driving forces for the urban transition towards a low carbon environment, sustainable economy, and mobility. Tourism, as one of the fastest growing industries, is also an important generator of carbon emissions; therefore, the recently emerging sustainable tourism concept is envisioned as an important part of the Smart Cities paradigm. Within this context, the Internet-of-Things (IoT) concept is the key technological point for the development of smart urban environments through the use of aggregated data, integrated in a single decisional platform. This paper performs the first analysis on the feasibility of the use of an IoT approach and proposes a specific architecture for a sustainable tourism application. The architecture is tailored for the optimisation of the movement of cruise ship tourists in the city of Cagliari (Italy), by taking into consideration factors such as transport information and queue waiting times. A first set of simulations is performed using 67-point of interest, real transportation data, and an optimisation algorithm.
Article
Internet of Things (IoT) is considered as an ecosystem that contains smart objects equipped with sensors, networking and processing technologies integrating and working together to provide an environment in which smart services are taken to the end users. The IoT is leading numerous benefits into the human life through the environment wherein smart services are provided to utilize every activity anywhere and anytime. All these facilities and services are conveyed through the diverse applications which are performed in the IoT environment. The most important utilities that are achieved by the IoT applications are monitoring and consequently immediate decision making for efficient management. In this paper, we intend to survey in divers IoT application domains to comprehend the different approaches in IoT applications which have been recently presented based on the Systematic Literature Review (SLR) method. The aim of this paper is to categorize analytically and statistically, and analyze the current research techniques on IoT applications approaches published from 2011 to 2018. A technical taxonomy is presented for the IoT applications approaches according to the content of current studies that are selected with SLR process in this study including health care, environmental monitoring, smart city, commercial, industrial and general aspects in IoT applications. IoT applications are compared with each other according to some technical features such as Quality of Service (QoS), proposed case study and evaluation environments. The achievements and disadvantages of each study is discussed as well as presenting some hints for addressing their weaknesses and highlighting the future research challenges and open issues in IoT applications.
Article
Internet of Things (IoT) is a term used to describe an environment where billions of objects, constrained in terms of resources (“things”), are connected to the Internet, and interacting autonomously. With so many objects connected in IoT solutions, the environment in which they are placed becomes smarter. A software, called middleware, plays a key role since it is responsible for most of the intelligence in IoT, integrating data from devices, allowing them to communicate, and make decisions based on collected data. Then, considering requirements of IoT platforms, a reference architecture model for IoT middleware is analyzed, detailing the best operation approaches of each proposed module, as well as proposes basic security features for this type of software. This paper elaborates on a systematic review of the related literature, exploring the differences between the current Internet and IoT-based systems, presenting a deep discussion of the challenges and future perspectives on IoT middleware. Finally, it highlights the difficulties for achieving and enforcing a universal standard. Thus, it is concluded that middleware plays a crucial role in IoT solutions and the proposed architectural approach can be used as a reference model for IoT middleware.
Article
Internet of Things (IoT) has become a continuously growing concept with the advancements of ubiquitous computing, wireless sensor networks, and machine-to-machine (M2M) communication. IoT connects heterogeneous physical devices and enables communication among them over the Internet via uniquely addressable identifiers. This paper delivers an overview of IoT in the context of the architecture and related technologies. However, IoT does not adhere to a universal architecture. Hence, it describes widely accepted architectural designs, further elaborated with the corresponding communication protocols and standards. Moreover, highly prevalent protocols and standards are summarized, so that the reader can gain an overall view of IoT. Furthermore, it describes some identified solutions and future directions towards overcoming the challenges present in the IoT paradigm. Finally, the paper concludes with some applications of IoT, in order to realize the feasibility of IoT concept in real-world scenarios.