Sei sulla pagina 1di 45

Enterprise IoT Stack

Enterprise IoT stack is a set of core capabilities and services that enable
us to build IoT applications.
IoT Stack
IoT Stack Comprises of many layers starting with devices which communicate and send data to a core platform
layer through different protocols based on the communication strategy.
The core platform provides a set of key services to allow the devices to connect securely, store and replicate the
data for fault tolerance and provide scalable technologies to accommodate millions of connected devices when
required.
Once the data is made available the analytics platform layer lets you analyze large volumes of data in real time and
batch/offline mode and discover actionable insights.
The cognitive layer allows connected products to learn from behavior and insights and provide a natural extension
to ones digital life.
On the top of stack, we have the solutions layer which provides end to end consumer or industrial IoT applications,
developed using the various stack services.
The IoT stack should also address security and management of IoT applications. The requirements include device
management, device security, secure bi-directional communication between devices and IoT platform, application
security, network topologies, service management aspects, deployment and simulation.
Device Layer
Devices are the things of Internet of Things. Every device around us has a potential to connect to internet and
provide us with some useful information.
What kind of devices can fit the scheme of things?
They are termed embedded devices which are equipped to read, process and send information over the internet.
Embedded devices has a chip or a circuitry called microcontroller that has all the necessary ingredients to power
or control the device.
Ingredients include a memory chip, an embedded processor, IO and network ports etc. it may also have a small OS
running like Linux that enables us to drive the device.
Controller boards can be embed in any object around us to make it a more real time talking object. Objects can
emit data about itself.
Examples of embedded devices include
sensors, mobile phones and tablets, personal gadgets, home automation devices, gateways, printers,
Device Layer
healthcare industry devices like glucometer, heart rate and BP monitors, imaging system, fitness bands, emergency
response systems, medication reminder device, voice devices signaling a condition etc.
Automotive industry devices like tire pressure monitor or a bigger concept like connected cars to drive road safety
measures,
supply chain industry devices like RFID reader and tags that enable efficient tracking of inventory during
distribution,
energy and utilities industry devices like smart grids, smart meters that helps monitoring and load balancing
energy utilization,
Home automation industry devices like thermostat, home cam, smoke alarm, connected door lock etc.
Device Layer
Sensors:
Sensors are devices that detect events and read changes in its environment, it can be a rotation and vibrations from
machines, motion detection or temperature readings.
Sensors can be programmed to sense the required environmental parameters that need to be monitored and convert
them into meaningful data.
Sensors by itself do not have input and output control or functions.
Sensed information can be viewed in a console connected to another device like desktop or mobile.
Sensor’s come in connected form and a single form, connected sensors are network of sensor nodes that capture
information from the physical object or resource within a particular area and send it across over the network.
Example: a collection of smart water sensors that measure quality of water and indicate pollution levels by sensing
different polluting ingredients in the water.
Where as a single sensor is a standalone device that emits signals based on the target objects movement. It could be also
as simple as making an alert beep at regular intervals.
Ex: a medicine bottle may have a sensor that alerts with a beep to indicate the patient that it is now the time to take the
medicine.
Information from the sensor is transmitted via a device gateway. Some sensors may have a capability to directly transmit
the information to the internet.
Sensors are low powered device and often equipped with a small longer life battery that runs from months or even years.
Some sensors are even powered using solar energy.
Device Layer
Actuators:
Actuators are devices that act with the physical world based on the input received and carry out the required
action. The action can be a motion, lighting, emitting sound, controlling power etc.
An example would be the connected door locks, which can be controlled(locked or unlocked) using remote control
device and actuator being responsible for controlling the movement of the lock motor.
Tagged devices or object:
Radio Frequency Identification, tags are attached to the products and the reader scans the tag and extracts the
product information and sends the data over the network or the cloud which can be then further analyzed in real
time or offline. This concept works on radio frequencies.
Manufacturing, retail and supply chain industries long started using this concept.
Automotive industry vehicles are tracked with RFID during the inspection process.
Aviation and healthcare also started using this tech.
Device Layer
Near Field Communication enables devices to communicate with each other over shorter radio frequencies. The
devices with NFC protocol can act both as a reader and a tag and therefore it can also be used as a two way
communication.
Ideal use case for NFC is the contact less payment where one can use a NFC enabled smart phone and tap it to the
payment terminal device to make the payment.
Your card details are securely stored in the mobile and read by the payment terminal device. Both your smart
phone and the payment terminal uses NFC to communicate with each other.
Beacons are another form of tagged devices that transmit signals or broadcast its location information using
Bluetooth LE to the nearby Bluetooth enabled device. A smart phone can detect the beacon device and trigger an
application to perform some function.
Ex: a person enters a retail store with a beacon installed denim department and your smartphone detects the
beacon signal and launches a beacon enabled app that show you the list of jeans brands available in the
department.
Communication happens on low radio frequency using Bluetooth LE or Smart Bluetooth that consumes less
energy.
Device Layer
Devices for prototyping:
There exists devices to prototype or test your IoT use cases. These are controller boards some of them are arduino,
raspberry PI, Intel Galileo, BeagleBone etc.
Using these boards you can create a small prototype to demonstrate the working of IoT sitting at home. These
devices can also be used to build commercial connected products.
Communication Layer
Devices will communicate with communication layer to setup network connectivity and send data to the internet.
Here we will discuss about communication strategies, communication and application protocols, industry
protocols.
Communication Strategy:
It will depict how devices will communicate with the internet to transmit. There are two communication strategies
 One for the devices that can directly connect with the internet.
 One for the devices that are unable to route data directly to the internet due to protocol incompatibility. Devices
that are unable to connect directly to internet make use of gateway or hub.
Device Gateway:
Gateway is a device that connects incompatible networks or protocols and provides a mean to connect devices to
the internet.
Ex low powered devices like sensors connect to a gateway through say Z-wave or Bluetooth LE protocol which in
turn will communicate with the broadband router to route the messages to the internet. A broadband router could
use WI-FI to connect to internet. Protocols like ZigBee are not equipped to talk to internet directly and therefore
gateway device is used. The gateway will translate the incoming ZigBee data into IP data that can be then routed to
the internet.
Communication Layer
Smart Gateway:
They are also called edge gateways because they are at the edge of the device. They are smart because they have
local storage and embedded application to analyze or filter the data close to the device. This is also called fog
computing.
Advantage: reduced network traffic, bandwidth increase
Smartphone as a gateway:
A device can talk to a smartphone through say Bluetooth protocol and the data can be then channelized to cellular
network through SIM card. this way a smartphone can act as a gateway and eliminates the need of having a
dedicated gateway device or a broadband router.
A limitation to this approach is that smartphone by itself will not automate the process of data communication
from the device to internet. A manual intervention is required to setup the process of communication through an
app on the phone.
Communication Layer
Direct Connectivity:
Certain devices have the capability to directly connect to the internet without the need of any gateway. It could be
either through Wi-Fi or cellular network.
Microcontrollers are equipped with Wi-Fi capability that enables devices to broadcast itself over the internet.
Device-to-device:
Another form is device-to-device communication. This form of communication defers the process of relaying data
to internet.
Devices communicate with each other to form a mesh network. Devices communicate to collect information,
report their existing states, send alerts or perform discovery routines.
Ex: a home security system may connect with a nearby alarm system to alert if someone approaches a door. The
alert then can be sent to the internet so that if you are outside the home, you can get the status update.
API Connectivity:
In this approach, devices communicate its state to an internet service provider which then uses an API(often a
REST URL)to communicate to other service provider which then triggers action to another device.
Communication Layer
API is the acronym for Application Programming Interface, which is a software intermediary that allows two
applications to talk to each other.
When you use an application on your mobile phone, the application connects to the Internet and sends data to a
server. The server then retrieves that data, interprets it, performs the necessary actions and sends it back to your
phone. The application then interprets that data and presents you with the information you wanted in a readable
way. This is what an API is - all of this happens via API.
Imagine you’re sitting at a table in a restaurant with a menu of choices to order from. The kitchen is the part of the
“system” that will prepare your order. What is missing is the critical link to communicate your order to the kitchen
and deliver your food back to your table. That’s where the waiter or API comes in. The waiter is the messenger – or
API – that takes your request or order and tells the kitchen – the system – what to do. Then the waiter delivers the
response back to you; in this case, it is the food.
searching flights online
• what if you are not using the airline’s website––a channel that has direct access to the information? What if you
are using an online travel service, such as Kayak or Expedia, which aggregates information from a number of
airline databases?
• The travel service, in this case, interacts with the airline’s API. The API is the interface that, like your helpful
waiter, can be asked by that online travel service to get information from the airline’s database to book seats,
baggage options, etc. The API then takes the airline’s response to your request and delivers it right back to the
online travel service, which then shows you the most updated, relevant information.
Communication Layer
Communication Protocols:
Two forms of communication protocols
one that provides direct internet connectivity and
Wi-Fi,
Ethernet
Cellular
another that requires some form of gateway to route the data to internet.
Bluetooth LE
RFID
NFC
ZigBee/Z-wave
Communication Layer
Wi-Fi:
With Wi-Fi protocol you can connect any device securely to a Wi-Fi gateway using security options supported by
the gateway.
Disadvantage:
Wi-Fi devices consumes a lot of power and may not be a good option when it comes to connecting small
constrained devices as it can quickly become an overhead for these devices.
Ethernet:
Ethernet provides a wired option where devices need to be physically connected to communicate over the
network.
Disadvantage:
This option might work for connected solutions like home/office where devices are generally fixed but this is not
an option for most of the IoT applications as it makes device immovable.
Cellular:
Cellular communication protocols include the connectivity options like 2G,3G,4G,LTE etc that our phone uses to
connect to the cellular network.
Communication Layer
Disavantage:
This requires a data subscription package from a cellular network provider. From an IoT perspective, a device
should not solely depend on cellular protocol but also allow itself to connect to other protocols like Bluetooth LE
or Wi-Fi so as to use existing connectivity options wherever available.
Bluetooth LE:
It’s a power efficient version of the standard Bluetooth protocol. New generation mobile platforms support
Bluetooth LE with which Bluetooth LE devices can connect to Bluetooth LE mobiles instantly and can connect to
the cloud platform or interact with the mobile applications.
Ex smart watches can use Bluetooth LE to connect to the smart phone to send data to the cloud for further
analysis.
RFID:
RFID protocol is used to communicate data between RFID tags and readers.
Ex: products are tagged by RFID tags and device gateway is installed at entry and exit points which also act as a
reader. The data is read by the reader and sent over to the cloud platform which can trigger warning like say,
authorized or unauthorized movement of a particular asset/product.
Communication Layer
NFC:
NFC is similar to RFID protocol with an exception that the NFC device can act as a tag as well as a reader. NFC is
also used for peer to peer communication between devices, like NFC enabled smartphones which can share data if
the devices are near to each other.
NFC enabled phones can communicate with other NFC enabled devices and appliances like washing machine,
microwave etc by installing the required application on the phone which can help control the device remotely.
ZigBee/Z-wave:
ZigBee/Z-wave protocols are used with devices having constrained environment like low processing power,
memory and battery life. These protocols are typically used in home automation to create smart homes.
They operate on low frequency radio networks.
Zigbee and z-wave cannot directly connect to internet as they do not support IP networking. You would need a
gateway device to route data to internet.
Communication Layer
Communication Layer
Publish/Subscribe architecture:
In this architecture, a client needing data(known as subscriber) registers its interests with a server(also known as
broker) the client producing data (know as publisher) sends the data to a server and this server forwards the fresh
data to the subscriber.
Communication Layer
APPLICATION PROTOCOLS:
MQTT:
MQ Telemetry Transport is a lightweight message oriented middleware that is based on publish/subscribe model.
The protocol is designed to be used for machine-to-machine communication.
It works on the basis of hub/spoke topology.
IoT devices are clients that connect to MQTT broker over TCP. The client devices subscribe to messages published
on a single or multiple topics. Topics itself can be structured hierarchically allowing to design an appropriate
taxonomy specific to a particular domain, say home automation.
MQTT broker supports multiple concurrent connections involving large number of devices. This protocol is widely
used in a resource constrained devices and networks where high bandwidth is an issue.
Another variant is MQTT-SN that is designed to be used with sensor networks. Its application where data packet
loss during transmission is not an issue.
MQTT-SN works on a UDP transport.
Communication Layer
APPLICATION PROTOCOLS:
MQTT:
Message Queue Telemetry Transport Protocol is an application layer protocol designed for resource constrained
devices.
it uses a topic based publish-subscribe architecture. this means that when a client publishes a message M to a
particular
topic T, then all the clients subscribed to the topic T will receive the message M.
MQTT relies on TCP/IP.
Communication Layer
APPLICATION PROTOCOLS:
(CoAP)Constrained Application Protocol:
CoAP is an application layer protocol designed for communication of resource constrained devices.
This protocol is based on representational state transfer(REST) architecture and supports request-response model
like HTTP.
in addition to request response model CoAP also supports publish subscribe architecture using an extended GET
method.
Publish-subscribe model of CoAP uses Universal Resource Identifies instead of topics. this means that subscribers
will subscribe to a particular resource indicated by the URI U. when a publisher publishes data D to the URI U, then
all the subscribers are notified about the new value as indicated in D.
Communication Layer
Communication Layer
APPLICATION PROTOCOLS:
ALLJOYN:
Its an open source software framework originally developed by qualcomm that’s being promoted by the AllSeen
Alliance as a way for IoT devices to discover and communicate with each other.
Its designed to allow for a single app or service to interact with multiple IoT devices, such as lights, heating systems
security cameras and wearables.
Communication Layer
APPLICATION PROTOCOLS:
DDS:
The Data Distribution Service (DDS™) is a middleware protocol and API standard for data-centric connectivity from
the Object Management Group® (OMG®). It integrates the components of a system together, providing low-latency
data connectivity, extreme reliability, and a scalable architecture that business and mission-critical Internet of
Things (IoT) applications need.
Example:
Volkswagen’s Driver Assistance and Integrated Safety system uses DDS to combine radars, laser range finders, and
video to assist safe operation. It tracks the driver’s eyes, shown here, to detect drowsiness. It also detects lane
departures, avoids collisions, and helps keep the car in its lane.
Example:
In a distributed system, middleware is the software layer that lies between the operating system and applications.
It enables the various components of a system to more easily communicate and share data. It simplifies the
development of distributed systems by letting software developers focus on the specific purpose of their
applications rather than the mechanics of passing information between applications and systems.
Communication Layer
APPLICATION PROTOCOLS:
AMQP
THIS PROTOCOL SUPPORTS BOTH QUEUE BASED AND PUB/SUB MESSAGGIN MODEL.
IT OPERATES ON TCP TRANSPORT AND ENSURES RELIABLE MESSAGE DELIVERY
IT ALSO PROVIDES INTEROPERABILITY

SENSOR DEVICES THAT GENERATES LOADS OF DATA IS STREAMED TO AMQ servers which is then consumed by
receivers to perform monitoring and analytics.
Core Platform Layer
Core platform layer provides a set of capabilities to connect, collect, monitor and control millions of devices.
Components of core platform layer are,
• Protocol gateway
• IoT Messaging Middleware
• Data Storage
• Data Aggregation and filter
Core Platform Layer
Protocol gateway
• An Enterprise IoT platform supports one protocol end to end like AQMP or MQTT.
• Then how do I make devices which doesn’t speak AQMP or MQTT
• One option is to use a device gateway that convert device proprietary protocols to the protocol supported by
the platform for communication.
• But here lies a problem that is if device gateway doesnot support the protocol supported by the IoT stack then
• Solution is protocol gateway, which converts device proprietary protocols to the protocols supported by the IoT
stack.
Core Platform Layer
IoT messaging Middleware:
• Messaging Middleware is a software that allows senders(publishers) collected data to be distributed to
receivers(consumers) in terms of messages.
• A message middleware allow multiple consumers to receive messages from a single publisher or a single
consumer can send messages to multiple senders.
• IoT messaging middleware platform needs to provide various device management aspects like
registering the devices,
enabling storage of device meta-model,
secure connectivity for devices,
storage of device data
dashboard to view connected devices
fault tolerance.
• A device meta-model can be visualized as a set of meta-data about the device, parameters( input and output)
and functions(send, receive) that a device may emit or consume.
Core Platform Layer
Data storage:
data storage component deals with storage of continuous stream of data from devices and enable faster
retrieval of data.
data storage component is also responsible for replicating data across servers to ensure high availability
and no single point of failure.
NoSQL databases are used for storing data, for fast retrieval of data data model and schema are designed
properly for ex: if you are storing data from a connected car every minute, your data can be broken down in ids
and values, the id field would not change for a connected car instance but values would keep on changing ex: like
speed=60km/hour, speed=65km/hour etc. in that case instead of storing key=value, you can store key=value1,
value2 and soon.
the data represents a sequence of values for a specific attribute over a period of time. This concept is
referred to as time series and database which supports these requirements is called as time series database.

ex : MongoDB or Cassandra
Core Platform Layer
Data storage layer should also support storage and handling of unstructured and semi structured information,
Ex : information data from equipment manual(unstructured text of information) can be fed into the system and
sensor data from the connected equipment can be correlated with the equipment manual data for raising critical
functional alerts and suggestive corrective measures.
Core Platform Layer
Data aggregation and filter:
Core platform layer deals with raw data coming from multiple devices and not all data needs to be consumed and
treated equally by your applications.
So device gateways can be used, which can filter data before sending it over to the cloud platform. Some time
devices may got directly connected to platform without a device gateway and in some cases device gateway may
not have the computation power to store and filter out volumes of data.
So we use a data filter component with rules to filter out incoming data and we also have a data mapper
component which is used to convert raw data from the devices into an data model which is sed by rest of the
components.
Data aggregation component is responsible for aggregate and enrich the incoming data, for ex: the current from
devices are aggregated with existing asset management software to retrieve warranty information of physical
devices or from a weather station for further analysis.
Analytics platform Layer
Key capabilities of this layer are
• Analyze large volumes of information
• Derive insights
• Enable applications to take required action
Analytics platform Layer
Stream processing:
Real time stream processing is about processing streams of data from devices, analyze the information, do
computations and trigger events for required actions.
Stream processing infrastructure directly interacts with the IoT Messaging Middleware component by listening to
specific topics ie., stream processing infrastructure acts as a subscriber, which consumes messages arriving
continuously at the IoT messaging middleware layer.
It should be scalable, handle large volume of continuous data, provide fault tolerance and support for interactive
queries.
Stream processing after analysis invokes machine learning service.
Machine Learning:
Machine Learning is about how we make computers learn from data using various algorithms without explicitly
programming it, so it can provide the required outcocme- like classifying an email as spam or not spam or
predicting a real estate price based on historical vales and other environmental factors.
Analytics platform Layer
Machine learning types are classified into
• Supervised learning, here labelled data is provided and train the system to learn from it and predict outcomes.
Ex: facebook application automatically recognizing your frnds photo based on your earlier tags or your email
application recognizing spam automatically.
• Unsupervised learning, here unlabeled data is provided and its left to algorithms to find hidden structure in
unlabeled data. Ex: clustering similar news in one bucket
• Reinforcement learning, reinforcement learning is about systems learning by interaction with the environment
rather than being taught.
Ex: a computer playing chess knows what it means to win or lose, but how to move forward in the game to win is
learned over a period of time through interactions with the user.
Machine learning process typically consists of 4 phases
Analytics platform Layer
Actionable insights(events & reporting)
These are set of services that make it easier for invoking the required action based on the analyzed data.
The actions can trigger events, call external services or update reports in real time.
• data is raw and unprocessed information that you see in the form of numerics and text. It can be both
quantitative and qualitative, and you’ll find it in spreadsheets or computer databases. Information, on the other
hand, is data that has been processed, organised and contextualized into a user-friendly format. This can be
reports, dashboards or visualizations.
• An insight is created by analyzing information and then being able to draw conclusions and make decisions from
it.
Cognitive platform Layer
What is cognitive computing?
Cognitive computing are systems that are designed to make computers think and learn like human brain
Cognitive systems can be thought of non-programming systems which learn through the set of information,
training, interactions and a reference data set.
Ex connected car, as soon as you enter the car it should recognize you automatically, adjust your car seats, start the
car and start reading your priority emails.
This is not programmed but learned over a time. The car over a period of time should also provide
recommendations on how to improve the mileage based on your driving patterns.
Ex connected home, a cognitive IoT system can learn from you, set things up for you based on your patterns and
movements, be it waking you up at the right time, to start your coffee vending machines to sending you a
whatsapp message to start washing machine if you missed to start it based on your routine or take care of the
home lighting system based on your family preferences.
Solutions Layer
Solutions Layer
Solutions are broken down into two parts
Solution templates
applications

Solutions Template’s

Applications

Customer Requirements
Solutions Layer
Solution templates are common set of services which are developed for specific or generalized use case that
provides a head start to build IoT applications and are extended to build custom IoT applications.
The key component of a solution template is the abstract data model.
Example: for a connected car solution
Solution template consists of remote monitoring, predictive maintenance, geospatial analysis
And the abstract model consists of runtime data of the vehicle, GPS data, asset data of the vehicle
So abstract data model is a combination of device data model and application data model specific to that
domain/industry/verticle use case.
Solutions Layer
Ex: steps required building a predictive maintenance system are
It would require working with existing asset management solutions to identify master data for equipment,
Connect to multiple data sources to extract cleanse normalize, aggregate the data and convert it to a form which
can be consumed by services and develop machine learning models which is used to predict outcomes.
All these common steps and services can be abstracted into a solution template and application provider can use
this template for providing implementations or integrations based on the requirements.
Ex: a manufacturing company already knows what parameters are required for servicing an equipment, what
information needs to be monitored, what is remaining lifecycle of the machinery and what are the factors which
can cause a machine to fail.
This information can be turned into abstract data model.
Machine learning models can be developed and executed that uses this abstract data model to predict machinery
failures.
The only task remaining would be to map the data from the sensors to the abstract model.
IoT security and management:
there are many players involved
• Hardware providers,
• Embedded device manufacturers
• Network providers
• Platform providers
• Solution providers,
• System integrators
Which increase the complexity of integration, security and management. In order to address this complexity an
enterprise IoT stack need to provide a set of capabilities which would ease the overall process and take care of end
to end cross cutting concerns like security and performance.
Device Management
Device management includes aspects like device registration, secure device provisioning and access from device to
cloud platform and cloud platform to device, monitoring and administration, troubleshooting and pushing
firmware and software updates to devices including gateways.
Monitoring and Administration
Monitoring and administration is about managing the lifecycle of the device. The lifecycle operations include
register, start, pause, stop activities and the ability to trigger events/commands to and from devices.
Deployment
This provides an end to end set of tools and environment to design and simulate connected products, deployment
and management of millions of devices, provides device updates, testing network topologies to services and
solutions which build up the IoT applications.

Potrebbero piacerti anche