SlideShare une entreprise Scribd logo
1  sur  65
Télécharger pour lire hors ligne
Designing Internet of
Things
MAHDI HOSSEINI MOGHADDAM
MILAD MOVAHEDIN
About US
Mahdi Hosseini Moghaddam
Education:
Industrial Experiences:
Milad Movahedin
Education:
Industrial Experiences:
Goal of This Presentation
Is not:
◦ Business model of IoT
◦ Security of IoT
◦ Application of IoT
Is:
◦ A general architecture for IoT
◦ How to Create a prototype
◦ An overview of some IoT platform
◦ More suitable programming language for IoT
Caution
oI cannot explain everything
oYou cannot get every detail
oTry to get a big picture
oGet some useful keyword
oConnect it with your daily work
Definitions
Internet of things: that we refer to this as IoT.
Wireless Sensor Network: that we refer to this as WSN.
Machine learning: that we refer to this as ML, is a system that can learn from data
Embedded System: is a sort of computer system often with real-time computing constraints.
Content of this presentation
IoT Overview
IoT Architecture
◦ Hardware device
◦ Protocols
◦ Platforms
◦ Etc
Open source Platforms
Programming Languages of choice
Demo
Introduction
• The term Internet of Things was first used
by Kevin Ashton in 1999.
• Refers to uniquely identifiable objects
(things) and their virtual representations in
an Internet-like structure
IoT Forecasts
IoT ecosystem
IoT ecosystem(2)
Complex and heterogeneous
resources and networks
Wireless Sensor Network
• The networks typically run Low Power
Devices
• Consist of one or more sensors, could be
different type of sensors (or actuators)
WSN
IoT Stack
Device Layer
oDevices 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.
oEmbedded device has a chip or a circuitry called microcontroller that has all the necessary
ingredients to power or control the device. Ingredients typically include a memory chip, an
embedded processor , IO and network ports etc.
oIt may also have a small OS running like Linux that enables us to drive the device. The ability to
control the device and make it talk to the network is one of key aspects in IoT .
Microcontrollers and Computers
Sensors
oSensors are devices that detect events and
read changes in its environment.
oThe sensed information can be viewed in a
console connected to another device like
desktop or mobile. Sensors come in
connected form and a single form.
oConnected 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
Tagged Devices
oRadio Frequency Identification (RFID) tags
are smart bar codes that identifies the
device or a product and works in
conjunction with the RFID reader to track
the product information and send it
across the network.
oNear Field Communication (NFC) enables
devices to communicate with each other
over shorter radio frequencies. It works
more like RFID, but the device with NFC
protocol can act both as a reader and a
tag and therefore it can also be used as a
two way communication.
Device for Prototyping
Device for Prototyping
A Sample
Communication Layer
Devices will communicate with
communication layer to setup
network connectivity and send
data to the Internet.
Communication protocols
oWi-Fi
oRFID
oCellular
oNFC
oBluetooth LE
oZigBee
oEthernet
Application Protocol
MQTT: MQ Telemetry Transport (MQTT) is a lightweight message oriented middleware (MOM) that is
based on publish/subscribe model. The protocol is designed to be used for machine- to-machine
communication that involves small data footprint.
CoAP: The Constrained Application Protocol (CoAP), as the name suggests it is a protocol used with
resource constrained devices and networks.
AMQP: Advanced Message Queuing Protocol (AMQP) is another popular message oriented
middleware that has slowly made its place in the world of IoT . The protocol supports both queue
based and pub/sub messaging model.
AllJoyn: AllJoyn is a collaborative open-source software framework that makes it easy for devices to
discover , publish/broadcast itself and communicate with each other . AllJoyn was created to
promote interoperability and seamless integration between devices and application through a set of
core features.
DDS: DDS (Data Connectivity Standard) is part of OMG IoT standards, which enables network
interoperability for connected machines, enterprise systems, and mobile device.
PubSub
PubSub(2)
PubSub(3)
PubSub supports Broadcast
MQTT
MQTT(2)
oMessage Queueing Telemetry Transport
oA lightweight publish/subscribe protocol standard for traditional networks
oData-centric – Separates Data (Payload) from Metadata (Topic)
MQTT Topics & Wildcards
Topics are hierarchical (like filesystem path):
– /wsn/sensor/R1/temperature
– /wsn/sensor/R1/pressure
– /wsn/sensor/R2/temperature
– /wsn/sensor/R2/pressure
A Subscriber can use wildcards in topics:
– /wsn/sensor/+/temperature
– /wsn/sensor/R1/+
– /wsn/sensor/#
MQTT Messages
MQTT QoS Levels
MQTT - Clean Session flag
When CONNECT-ing to the MQTT Broker the
client can say:
– CleanSession = 1
o Forget all the session settings and subscriptions on connect and disconnect
o So essentially every reconnect will be like a new session
– CleanSession = 0
Do not clean
MQTT - Retain flag
oIf message PUBLISH-ed with Retain flag set to 1 - the MQTT broker will remember it as a last
published value on the topic.
oThis is useful for systems with low update frequency, so new clients will not need to wait for last
known value.
MQTT over WebSocket
oMQTT for the browsers
oJavaScript API
oSend MQTT packets over WS frames
oSupport binary data
oFallbacks for older browsers w/o WS support
MQTT books
MQTT-S Overview
oDesigned to be very similar to MQTT.
– i.e. uses MQTT semantics
oClients are WSN nodes, which communicate via a gateway to a broker on IP network.
oThe gateway may just translate messages between MQTT-S and MQTT , so the broker is a
normal MQTT broker.
oDesigned to work on any WSN architecture/transport.
MQTT-S
MQTT-S QoS
Core Platform Layer
The core platform layer provides a set of capabilities to connect, collect, monitor and control millions
of devices. Core platform consists of:
oProtocol Gateway: Typically the communication is channelized to the messaging platform or
middleware like MQTT or AQMP .
oIoT Messaging Middleware: Messaging middleware is a software or an appliance that allows senders
(publishers) and receivers (consumer’ s consuming the information) to distribute messages in a
loosely coupled manner without physically connected to each other.
oData Storage: The data storage component deals with storage of continuous stream of data from
devices. Typically, a NoSQL database or high performance optimized storage is used for storing data.
oData Aggregation and filter: The IoT core platform deals with raw data coming from multiple devices
and not all data needs to be consumed and treated equally by your application. As part of your IoT
application, you need to design this carefully as what data needs to be consumed and what data
might not be relevant in that context.
Analytics Platform Layer
The Analytics platform layer provides a set of key capabilities to analyze large volumes of
information, derive insights and enable applications to take required action.
oStream Processing: Real time stream processing is about processing streams of data from
devices (or any source) in real time, analyze the information, do computations and trigger
events for required actions. Stream processing platform like Apache Spark Streaming enables
you to write stream jobs to process streaming data using Spark API.
oMachine Learning: Machine learning process typically consists of 4 phases understanding the
problem definition and the expected business outcome, data cleansing and analysis, model
creation, training and evaluation. This is an iterative process where models are continuously
refined to improve its accuracy.
Cognitive Platform Layer
oCognitive computing are systems that are designed to make computers think and learn like
human brain. Such a system is trained on a set of information or data, so that it can understand
the context and help in making informed decisions.
oCognitive systems in the context of IoT would play a key role in future. Imagine 10 years down
the line where every piece of system is connected to the internet and probably an integral part
of everyday lives and information being shared continuously, how you would like to interact with
these smart devices which surround you.
oA good example can be of a 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.
Solution Layer
Solutions can be broken down into 2 parts – Solution Templates and Applications.
Solution Layer(2)
oSolution 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.
oAs an example, for a connected car solution, the abstract data model could be a vehicle’ s
runtime data + GPS data + asset data of the vehicle, which constitutes the device metamodel
and the application data model.
oOne can use solution templates to build application based on customer requirements.
IoT Security and Management
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.
oDevice 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 gateway.
oMonitoring 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.
oDeployment: Deployment of IoT applications needs to be looked at holistically, right from IoT
devices, networks and topology, cloud services and end solutions and taking care of end to end
security.
IoT and Open Source
Open Source Device SDKs
The open source IoT platform provides support for wide variety of protocols like MQTT, AXMP
and HTTP protocol. For MQTT , we can leverage the Eclipse based Paho library for connecting
any device to the core platform or open source library like cyclon.js which makes it easier to
connect various devices using Node.js. We really liked the cyclone.js library and the extensions
provided by the library to support various devices.
Apache Kafka
Apache Kafka service provides us with a highly scalable, low latency, fast and distributed publish-
subscribe messaging system. Similar to any publish-subscribe messaging system, Kafka maintains
feeds of messages in categories called topics. Producers publish data to topics and consumers
subscribe to topics to read messages. Kafka can retain messages after the specified time interval
has elapsed, unlike other messaging system which deletes messages as soon as they are
consumed.
Cassandra
Apache Cassandra can be used for storing the continuous stream of data coming from devices.
Kafka consumer can be created in order to listens to a specified topic, consumes the message
and stores the message in one of the Cassandra tables. Cassandra also can be used for historical
data analysis to gain insights on various usages, aggregations and computations, build
correlations and to develop our machine learning models iteratively for anomaly detection and
predictive analytics.
ApacheSpark Streaming
Apache Spark streaming component from Apache Spark project adds real time data stream
processing and data transformation for further processing by systems. It provides stack of
libraries including SQL and DataFrames, MLlib for machine learning, GraphX, and Spark
Streaming. Apache Spark streaming supports real time processing as well as batch updates on
top of Spark engine, which makes it perfect choice for applications which requires responding to
real time events and batch processing via Hadoop jobs for complex data analysis.
ApacheSpark MLlib
Apache Spark MLlib service is used to build machine learning models or combine multiple
machine learning models using a standardized API. Building a machine learning models require a
series of step as discussed earlier –like cleansing and transformation, creating feature vectors,
correlation, splitting up data in training and test sets, selecting algorithms for building up
required models (prediction, classification, regression, etc.) and iteratively training the model for
required accuracy.
Custom Rules and Events
Apache Zeppelin project can be used to quickly build an interactive data analytics dashboard.
Zeppelin has built-in support for Spark integration and SparkSQL.
Programming Language of choice
C
It makes sense that a language first
developed to program telephone
switches would be a reasonable choice
for embedded system development. It's
available on nearly every advanced
embedded system platform that exists.
For some platforms where it's not
directly available, it's still the basis for
the dedicated language used in the
SDK.
C++
When the programming world began
moving toward object-oriented
languages in the early 1980s,
procedural languages such as Fortran,
Cobol, and C seemed destined to fade
into obscurity. C++ kept the spare
nature of C but added data abstraction,
classes, and objects. All of these
features make C++ a popular choice for
those who are writing embedded and
IoT code for Linux systems.
JAVA
Java was written to be an object-
oriented language that is incredibly
portable: There are very, very few
hardware dependencies built into the
compiler. In order to get the specific,
fine control over particular pieces of
hardware, Java depends on hardware-
support libraries that are called from
the generic code.
JavaScript
JavaScript is, as the name implies, a
scripting language that is heavily used
for building Web-fronted applications. If
you wanted to use the Apache server
on a Raspberry Pi to gather data from a
network of Arduino-based sensors, for
example, JavaScript would be a good
starting point for the effort.
Python
Python has become one of the "go-to"
languages in Web development, and its
use has spread to the embedded
control and IoT world. Python is very
flexible in many ways. For example, it is
an interpreted language that can either
be submitted to a run-time compiler or
run through one of several pre-
compilers so that compact executable
code may be distributed.
The thing that makes Python good for
programming teams, though, is its
emphasis on readability.
GO
Go was developed at Google and is
available on a wide variety of
processors and platforms. While it is
one of the many languages that owes a
debt to C, there are a number of ways
in which it's superior to C for certain
types of embedded programming.
Go supports concurrent input, output,
and processing on many different
channels. Used correctly, this allows the
coordination of an entire fleet of
sensors and actuators.
RUST
Rust was developed at Mozilla. Like the
rest of Mozilla's software, Rust is an open
source project that is evolving quickly.
Rust shares many of Go's qualities,
though it does solve one major problem
of Go. Because Go doesn't automatically
share information between the different
"channel" data structures, a program can
develop something called a "race
condition." It's basically a runaway
situation in which a system can spiral out
of control because different processes are
working at odds with one another. Rust
includes functions that eliminate race
conditions, making it a less-risky language
than Go for highly concurrent programs.
Erlang
Erlang is a multi-purpose programming
language used primarily for developing
concurrent and distributed systems. It
began as a proprietary programming
language used by Ericsson for
telephony and communications
applications. Released as open source
in 1998, Erlang has become more
popular in recent years thanks to its use
in high profile projects, such as the
Facebook chat system, and in
innovative open source projects, such
as the CouchDB document-oriented
database management system.
Erlang(2)
oIdeal platform for Large-Scale (C1M to C10M) PubSub systems
oIdeal for implementation of Gateways & Proxies
oEasy ZigBee, MQTT & MQTT-S protocol handling using bit-syntax & binary comprehensions
oVery easy to port to ARM-based Embedded Linux systems (not only RPi & BeagleBone/Board,
but also professional SBCs)
oUnique concurrency support
oPerfect for messaging platform
Julia
Julia is a high-level, high-performance
dynamic programming language for
technical computing, with syntax that is
familiar to users of other technical
computing environments. It provides a
sophisticated compiler, distributed
parallel execution, numerical accuracy,
and an extensive mathematical
function library.
Book to consider
Demo Time

Contenu connexe

Tendances

15CS81 Module1 IoT
15CS81 Module1 IoT15CS81 Module1 IoT
15CS81 Module1 IoTGanesh Awati
 
Ug 3 1 r19 cse syllabus
Ug 3 1 r19 cse syllabusUg 3 1 r19 cse syllabus
Ug 3 1 r19 cse syllabusSubbuBuddu
 
Bhadale group of companies data science project implementation catalogue
Bhadale group of companies data science project implementation catalogueBhadale group of companies data science project implementation catalogue
Bhadale group of companies data science project implementation catalogueVijayananda Mohire
 
DNA computing based stream cipher for internet of things using MQTT protocol
DNA computing based stream cipher for internet of things using MQTT protocol DNA computing based stream cipher for internet of things using MQTT protocol
DNA computing based stream cipher for internet of things using MQTT protocol IJECEIAES
 
Iot lecture notes_hyd
Iot lecture notes_hydIot lecture notes_hyd
Iot lecture notes_hydKishore5511
 
Data Modelling and Knowledge Engineering for the Internet of Things
Data Modelling and Knowledge Engineering for the Internet of ThingsData Modelling and Knowledge Engineering for the Internet of Things
Data Modelling and Knowledge Engineering for the Internet of ThingsCory Andrew Henson
 
A Review on Privacy and Security Challenges in the Internet of Things (IoT) t...
A Review on Privacy and Security Challenges in the Internet of Things (IoT) t...A Review on Privacy and Security Challenges in the Internet of Things (IoT) t...
A Review on Privacy and Security Challenges in the Internet of Things (IoT) t...IJCSIS Research Publications
 
Ensemble of Probabilistic Learning Networks for IoT Edge Intrusion Detection
Ensemble of Probabilistic Learning Networks for IoT Edge Intrusion Detection Ensemble of Probabilistic Learning Networks for IoT Edge Intrusion Detection
Ensemble of Probabilistic Learning Networks for IoT Edge Intrusion Detection IJCNCJournal
 
Technology Behind IoT (JNTUK - Unit - 1)
Technology Behind IoT (JNTUK - Unit - 1)Technology Behind IoT (JNTUK - Unit - 1)
Technology Behind IoT (JNTUK - Unit - 1)FabMinds
 
A novel architecture for lightweight block cipher, piccolo
A novel architecture for lightweight block cipher, piccoloA novel architecture for lightweight block cipher, piccolo
A novel architecture for lightweight block cipher, piccoloeSAT Journals
 
System design of multiprotocol iot
System design of multiprotocol iotSystem design of multiprotocol iot
System design of multiprotocol iotDev Bhattacharya
 
Seminar on Intelligent Personal Assistant based on Internet of Things approach
Seminar on Intelligent Personal Assistant based on Internet of Things approachSeminar on Intelligent Personal Assistant based on Internet of Things approach
Seminar on Intelligent Personal Assistant based on Internet of Things approachKarthic C M
 

Tendances (20)

Lecture 10
Lecture 10Lecture 10
Lecture 10
 
DATA INTEGRITY AUDITING WITHOUT PRIVATE KEY STORAGE FOR SECURE CLOUD STORAGE
DATA INTEGRITY AUDITING WITHOUT PRIVATE KEY STORAGE  FOR SECURE CLOUD STORAGEDATA INTEGRITY AUDITING WITHOUT PRIVATE KEY STORAGE  FOR SECURE CLOUD STORAGE
DATA INTEGRITY AUDITING WITHOUT PRIVATE KEY STORAGE FOR SECURE CLOUD STORAGE
 
15CS81 Module1 IoT
15CS81 Module1 IoT15CS81 Module1 IoT
15CS81 Module1 IoT
 
Ug 3 1 r19 cse syllabus
Ug 3 1 r19 cse syllabusUg 3 1 r19 cse syllabus
Ug 3 1 r19 cse syllabus
 
Lecture 17
Lecture 17Lecture 17
Lecture 17
 
Internet of things
Internet of thingsInternet of things
Internet of things
 
Bhadale group of companies data science project implementation catalogue
Bhadale group of companies data science project implementation catalogueBhadale group of companies data science project implementation catalogue
Bhadale group of companies data science project implementation catalogue
 
DNA computing based stream cipher for internet of things using MQTT protocol
DNA computing based stream cipher for internet of things using MQTT protocol DNA computing based stream cipher for internet of things using MQTT protocol
DNA computing based stream cipher for internet of things using MQTT protocol
 
Iot lecture notes_hyd
Iot lecture notes_hydIot lecture notes_hyd
Iot lecture notes_hyd
 
COMPARATIVE STUDY BETWEEN VARIOUS PROTOCOLS USED IN INTERNET OF THING
COMPARATIVE STUDY BETWEEN VARIOUS  PROTOCOLS USED IN INTERNET OF THINGCOMPARATIVE STUDY BETWEEN VARIOUS  PROTOCOLS USED IN INTERNET OF THING
COMPARATIVE STUDY BETWEEN VARIOUS PROTOCOLS USED IN INTERNET OF THING
 
Iot intro
Iot introIot intro
Iot intro
 
Data Modelling and Knowledge Engineering for the Internet of Things
Data Modelling and Knowledge Engineering for the Internet of ThingsData Modelling and Knowledge Engineering for the Internet of Things
Data Modelling and Knowledge Engineering for the Internet of Things
 
A Review on Privacy and Security Challenges in the Internet of Things (IoT) t...
A Review on Privacy and Security Challenges in the Internet of Things (IoT) t...A Review on Privacy and Security Challenges in the Internet of Things (IoT) t...
A Review on Privacy and Security Challenges in the Internet of Things (IoT) t...
 
Syslog Technologies
 Syslog Technologies Syslog Technologies
Syslog Technologies
 
Ensemble of Probabilistic Learning Networks for IoT Edge Intrusion Detection
Ensemble of Probabilistic Learning Networks for IoT Edge Intrusion Detection Ensemble of Probabilistic Learning Networks for IoT Edge Intrusion Detection
Ensemble of Probabilistic Learning Networks for IoT Edge Intrusion Detection
 
Technology Behind IoT (JNTUK - Unit - 1)
Technology Behind IoT (JNTUK - Unit - 1)Technology Behind IoT (JNTUK - Unit - 1)
Technology Behind IoT (JNTUK - Unit - 1)
 
A novel architecture for lightweight block cipher, piccolo
A novel architecture for lightweight block cipher, piccoloA novel architecture for lightweight block cipher, piccolo
A novel architecture for lightweight block cipher, piccolo
 
System design of multiprotocol iot
System design of multiprotocol iotSystem design of multiprotocol iot
System design of multiprotocol iot
 
575 579
575 579575 579
575 579
 
Seminar on Intelligent Personal Assistant based on Internet of Things approach
Seminar on Intelligent Personal Assistant based on Internet of Things approachSeminar on Intelligent Personal Assistant based on Internet of Things approach
Seminar on Intelligent Personal Assistant based on Internet of Things approach
 

En vedette

Navidad retamar
Navidad retamarNavidad retamar
Navidad retamarsarini80
 
Stylam industries ltd multibagger-jun-2016
Stylam industries ltd   multibagger-jun-2016Stylam industries ltd   multibagger-jun-2016
Stylam industries ltd multibagger-jun-2016sublimefinancialadvisory
 
Word Fun1t+What is this? คำศัพท์เกี่ยวกับสัตว์ต่างๆ1+ป.1+110+dltvengp1+54word...
Word Fun1t+What is this? คำศัพท์เกี่ยวกับสัตว์ต่างๆ1+ป.1+110+dltvengp1+54word...Word Fun1t+What is this? คำศัพท์เกี่ยวกับสัตว์ต่างๆ1+ป.1+110+dltvengp1+54word...
Word Fun1t+What is this? คำศัพท์เกี่ยวกับสัตว์ต่างๆ1+ป.1+110+dltvengp1+54word...Prachoom Rangkasikorn
 
2015 12 15_green_life dani da greenlife a #greenleather2016
2015 12 15_green_life dani da greenlife a #greenleather20162015 12 15_green_life dani da greenlife a #greenleather2016
2015 12 15_green_life dani da greenlife a #greenleather2016greenLIFE project
 
2015 12 15_GreenLIFE GRUPPO MASTROTTO sottoprodotti conciari ad alto valore a...
2015 12 15_GreenLIFE GRUPPO MASTROTTO sottoprodotti conciari ad alto valore a...2015 12 15_GreenLIFE GRUPPO MASTROTTO sottoprodotti conciari ad alto valore a...
2015 12 15_GreenLIFE GRUPPO MASTROTTO sottoprodotti conciari ad alto valore a...greenLIFE project
 
ORCID: connecting research and researchers
ORCID: connecting research and researchersORCID: connecting research and researchers
ORCID: connecting research and researchersNobuko Miyairi
 
D3 and tableau integration
D3 and tableau integrationD3 and tableau integration
D3 and tableau integrationRemo Jansen
 

En vedette (11)

Navidad retamar
Navidad retamarNavidad retamar
Navidad retamar
 
appreciation2013
appreciation2013appreciation2013
appreciation2013
 
Stylam industries ltd multibagger-jun-2016
Stylam industries ltd   multibagger-jun-2016Stylam industries ltd   multibagger-jun-2016
Stylam industries ltd multibagger-jun-2016
 
Word Fun1t+What is this? คำศัพท์เกี่ยวกับสัตว์ต่างๆ1+ป.1+110+dltvengp1+54word...
Word Fun1t+What is this? คำศัพท์เกี่ยวกับสัตว์ต่างๆ1+ป.1+110+dltvengp1+54word...Word Fun1t+What is this? คำศัพท์เกี่ยวกับสัตว์ต่างๆ1+ป.1+110+dltvengp1+54word...
Word Fun1t+What is this? คำศัพท์เกี่ยวกับสัตว์ต่างๆ1+ป.1+110+dltvengp1+54word...
 
2015 12 15_green_life dani da greenlife a #greenleather2016
2015 12 15_green_life dani da greenlife a #greenleather20162015 12 15_green_life dani da greenlife a #greenleather2016
2015 12 15_green_life dani da greenlife a #greenleather2016
 
2015 12 15_GreenLIFE GRUPPO MASTROTTO sottoprodotti conciari ad alto valore a...
2015 12 15_GreenLIFE GRUPPO MASTROTTO sottoprodotti conciari ad alto valore a...2015 12 15_GreenLIFE GRUPPO MASTROTTO sottoprodotti conciari ad alto valore a...
2015 12 15_GreenLIFE GRUPPO MASTROTTO sottoprodotti conciari ad alto valore a...
 
ORCID: connecting research and researchers
ORCID: connecting research and researchersORCID: connecting research and researchers
ORCID: connecting research and researchers
 
Decompiladores
DecompiladoresDecompiladores
Decompiladores
 
malik new
malik newmalik new
malik new
 
D3 and tableau integration
D3 and tableau integrationD3 and tableau integration
D3 and tableau integration
 
Developing a sustainable homemade fruit wine enterprise
Developing a sustainable homemade fruit wine enterpriseDeveloping a sustainable homemade fruit wine enterprise
Developing a sustainable homemade fruit wine enterprise
 

Similaire à Designing Internet of things

Internet of Things.pptx
Internet of Things.pptxInternet of Things.pptx
Internet of Things.pptxEshwar Prasad
 
Chapter_1.pptx
Chapter_1.pptxChapter_1.pptx
Chapter_1.pptxAadiSoni3
 
Building Blocks for IoT
Building Blocks for IoTBuilding Blocks for IoT
Building Blocks for IoTBob Marcus
 
What Is Openstack And Its Importance
What Is Openstack And Its ImportanceWhat Is Openstack And Its Importance
What Is Openstack And Its ImportanceLorie Harris
 
BKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryBKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryLinaro
 
IoT ( M2M) - Big Data - Analytics: Emulation and Demonstration
IoT ( M2M) - Big Data - Analytics: Emulation and DemonstrationIoT ( M2M) - Big Data - Analytics: Emulation and Demonstration
IoT ( M2M) - Big Data - Analytics: Emulation and DemonstrationCHAKER ALLAOUI
 
IoT Agent Design Principles
IoT Agent Design PrinciplesIoT Agent Design Principles
IoT Agent Design Principlesardexateam
 
Iot presentation
Iot presentationIot presentation
Iot presentationhuma742446
 
Building a reliable and scalable IoT platform with MongoDB and HiveMQ
Building a reliable and scalable IoT platform with MongoDB and HiveMQBuilding a reliable and scalable IoT platform with MongoDB and HiveMQ
Building a reliable and scalable IoT platform with MongoDB and HiveMQDominik Obermaier
 
Best Skills for IOT Software Developers.pdf
Best Skills for IOT Software Developers.pdfBest Skills for IOT Software Developers.pdf
Best Skills for IOT Software Developers.pdfNishaadequateinfosof
 
Best Skills in Developer of IOT Software in Adequate Infosoft.pdf
Best Skills in Developer of IOT Software in Adequate Infosoft.pdfBest Skills in Developer of IOT Software in Adequate Infosoft.pdf
Best Skills in Developer of IOT Software in Adequate Infosoft.pdfNishaadequateinfosof
 
What if Things Start to Think - Artificial Intelligence in IoT
What if Things Start to Think - Artificial Intelligence in IoTWhat if Things Start to Think - Artificial Intelligence in IoT
What if Things Start to Think - Artificial Intelligence in IoTMuralidhar Somisetty
 
Io t & amp; industry 4.0,internet of things
Io t & amp; industry 4.0,internet of thingsIo t & amp; industry 4.0,internet of things
Io t & amp; industry 4.0,internet of thingsSumanPramanik7
 

Similaire à Designing Internet of things (20)

iot
iotiot
iot
 
Internet of Things.pptx
Internet of Things.pptxInternet of Things.pptx
Internet of Things.pptx
 
Chapter_1.pptx
Chapter_1.pptxChapter_1.pptx
Chapter_1.pptx
 
FIOT_Uni4.pptx
FIOT_Uni4.pptxFIOT_Uni4.pptx
FIOT_Uni4.pptx
 
Building Blocks for IoT
Building Blocks for IoTBuilding Blocks for IoT
Building Blocks for IoT
 
IoT4Devs (1)
IoT4Devs (1)IoT4Devs (1)
IoT4Devs (1)
 
Unit - 1.pptx
Unit - 1.pptxUnit - 1.pptx
Unit - 1.pptx
 
What Is Openstack And Its Importance
What Is Openstack And Its ImportanceWhat Is Openstack And Its Importance
What Is Openstack And Its Importance
 
BKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryBKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End Story
 
IoT ( M2M) - Big Data - Analytics: Emulation and Demonstration
IoT ( M2M) - Big Data - Analytics: Emulation and DemonstrationIoT ( M2M) - Big Data - Analytics: Emulation and Demonstration
IoT ( M2M) - Big Data - Analytics: Emulation and Demonstration
 
Lec2.pptx
Lec2.pptxLec2.pptx
Lec2.pptx
 
Lec2.pptx
Lec2.pptxLec2.pptx
Lec2.pptx
 
IOT_UNIT-1.pptx
IOT_UNIT-1.pptxIOT_UNIT-1.pptx
IOT_UNIT-1.pptx
 
IoT Agent Design Principles
IoT Agent Design PrinciplesIoT Agent Design Principles
IoT Agent Design Principles
 
Iot presentation
Iot presentationIot presentation
Iot presentation
 
Building a reliable and scalable IoT platform with MongoDB and HiveMQ
Building a reliable and scalable IoT platform with MongoDB and HiveMQBuilding a reliable and scalable IoT platform with MongoDB and HiveMQ
Building a reliable and scalable IoT platform with MongoDB and HiveMQ
 
Best Skills for IOT Software Developers.pdf
Best Skills for IOT Software Developers.pdfBest Skills for IOT Software Developers.pdf
Best Skills for IOT Software Developers.pdf
 
Best Skills in Developer of IOT Software in Adequate Infosoft.pdf
Best Skills in Developer of IOT Software in Adequate Infosoft.pdfBest Skills in Developer of IOT Software in Adequate Infosoft.pdf
Best Skills in Developer of IOT Software in Adequate Infosoft.pdf
 
What if Things Start to Think - Artificial Intelligence in IoT
What if Things Start to Think - Artificial Intelligence in IoTWhat if Things Start to Think - Artificial Intelligence in IoT
What if Things Start to Think - Artificial Intelligence in IoT
 
Io t & amp; industry 4.0,internet of things
Io t & amp; industry 4.0,internet of thingsIo t & amp; industry 4.0,internet of things
Io t & amp; industry 4.0,internet of things
 

Dernier

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 

Dernier (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 

Designing Internet of things

  • 1. Designing Internet of Things MAHDI HOSSEINI MOGHADDAM MILAD MOVAHEDIN
  • 2. About US Mahdi Hosseini Moghaddam Education: Industrial Experiences: Milad Movahedin Education: Industrial Experiences:
  • 3. Goal of This Presentation Is not: ◦ Business model of IoT ◦ Security of IoT ◦ Application of IoT Is: ◦ A general architecture for IoT ◦ How to Create a prototype ◦ An overview of some IoT platform ◦ More suitable programming language for IoT
  • 4. Caution oI cannot explain everything oYou cannot get every detail oTry to get a big picture oGet some useful keyword oConnect it with your daily work
  • 5. Definitions Internet of things: that we refer to this as IoT. Wireless Sensor Network: that we refer to this as WSN. Machine learning: that we refer to this as ML, is a system that can learn from data Embedded System: is a sort of computer system often with real-time computing constraints.
  • 6. Content of this presentation IoT Overview IoT Architecture ◦ Hardware device ◦ Protocols ◦ Platforms ◦ Etc Open source Platforms Programming Languages of choice Demo
  • 7. Introduction • The term Internet of Things was first used by Kevin Ashton in 1999. • Refers to uniquely identifiable objects (things) and their virtual representations in an Internet-like structure
  • 10. IoT ecosystem(2) Complex and heterogeneous resources and networks
  • 11. Wireless Sensor Network • The networks typically run Low Power Devices • Consist of one or more sensors, could be different type of sensors (or actuators)
  • 12. WSN
  • 14. Device Layer oDevices 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. oEmbedded device has a chip or a circuitry called microcontroller that has all the necessary ingredients to power or control the device. Ingredients typically include a memory chip, an embedded processor , IO and network ports etc. oIt may also have a small OS running like Linux that enables us to drive the device. The ability to control the device and make it talk to the network is one of key aspects in IoT .
  • 16. Sensors oSensors are devices that detect events and read changes in its environment. oThe sensed information can be viewed in a console connected to another device like desktop or mobile. Sensors come in connected form and a single form. oConnected 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
  • 17. Tagged Devices oRadio Frequency Identification (RFID) tags are smart bar codes that identifies the device or a product and works in conjunction with the RFID reader to track the product information and send it across the network. oNear Field Communication (NFC) enables devices to communicate with each other over shorter radio frequencies. It works more like RFID, but the device with NFC protocol can act both as a reader and a tag and therefore it can also be used as a two way communication.
  • 21. Communication Layer Devices will communicate with communication layer to setup network connectivity and send data to the Internet.
  • 23. Application Protocol MQTT: MQ Telemetry Transport (MQTT) is a lightweight message oriented middleware (MOM) that is based on publish/subscribe model. The protocol is designed to be used for machine- to-machine communication that involves small data footprint. CoAP: The Constrained Application Protocol (CoAP), as the name suggests it is a protocol used with resource constrained devices and networks. AMQP: Advanced Message Queuing Protocol (AMQP) is another popular message oriented middleware that has slowly made its place in the world of IoT . The protocol supports both queue based and pub/sub messaging model. AllJoyn: AllJoyn is a collaborative open-source software framework that makes it easy for devices to discover , publish/broadcast itself and communicate with each other . AllJoyn was created to promote interoperability and seamless integration between devices and application through a set of core features. DDS: DDS (Data Connectivity Standard) is part of OMG IoT standards, which enables network interoperability for connected machines, enterprise systems, and mobile device.
  • 28. MQTT
  • 29. MQTT(2) oMessage Queueing Telemetry Transport oA lightweight publish/subscribe protocol standard for traditional networks oData-centric – Separates Data (Payload) from Metadata (Topic)
  • 30. MQTT Topics & Wildcards Topics are hierarchical (like filesystem path): – /wsn/sensor/R1/temperature – /wsn/sensor/R1/pressure – /wsn/sensor/R2/temperature – /wsn/sensor/R2/pressure A Subscriber can use wildcards in topics: – /wsn/sensor/+/temperature – /wsn/sensor/R1/+ – /wsn/sensor/#
  • 33. MQTT - Clean Session flag When CONNECT-ing to the MQTT Broker the client can say: – CleanSession = 1 o Forget all the session settings and subscriptions on connect and disconnect o So essentially every reconnect will be like a new session – CleanSession = 0 Do not clean
  • 34. MQTT - Retain flag oIf message PUBLISH-ed with Retain flag set to 1 - the MQTT broker will remember it as a last published value on the topic. oThis is useful for systems with low update frequency, so new clients will not need to wait for last known value.
  • 35. MQTT over WebSocket oMQTT for the browsers oJavaScript API oSend MQTT packets over WS frames oSupport binary data oFallbacks for older browsers w/o WS support
  • 37. MQTT-S Overview oDesigned to be very similar to MQTT. – i.e. uses MQTT semantics oClients are WSN nodes, which communicate via a gateway to a broker on IP network. oThe gateway may just translate messages between MQTT-S and MQTT , so the broker is a normal MQTT broker. oDesigned to work on any WSN architecture/transport.
  • 40. Core Platform Layer The core platform layer provides a set of capabilities to connect, collect, monitor and control millions of devices. Core platform consists of: oProtocol Gateway: Typically the communication is channelized to the messaging platform or middleware like MQTT or AQMP . oIoT Messaging Middleware: Messaging middleware is a software or an appliance that allows senders (publishers) and receivers (consumer’ s consuming the information) to distribute messages in a loosely coupled manner without physically connected to each other. oData Storage: The data storage component deals with storage of continuous stream of data from devices. Typically, a NoSQL database or high performance optimized storage is used for storing data. oData Aggregation and filter: The IoT core platform deals with raw data coming from multiple devices and not all data needs to be consumed and treated equally by your application. As part of your IoT application, you need to design this carefully as what data needs to be consumed and what data might not be relevant in that context.
  • 41. Analytics Platform Layer The Analytics platform layer provides a set of key capabilities to analyze large volumes of information, derive insights and enable applications to take required action. oStream Processing: Real time stream processing is about processing streams of data from devices (or any source) in real time, analyze the information, do computations and trigger events for required actions. Stream processing platform like Apache Spark Streaming enables you to write stream jobs to process streaming data using Spark API. oMachine Learning: Machine learning process typically consists of 4 phases understanding the problem definition and the expected business outcome, data cleansing and analysis, model creation, training and evaluation. This is an iterative process where models are continuously refined to improve its accuracy.
  • 42. Cognitive Platform Layer oCognitive computing are systems that are designed to make computers think and learn like human brain. Such a system is trained on a set of information or data, so that it can understand the context and help in making informed decisions. oCognitive systems in the context of IoT would play a key role in future. Imagine 10 years down the line where every piece of system is connected to the internet and probably an integral part of everyday lives and information being shared continuously, how you would like to interact with these smart devices which surround you. oA good example can be of a 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.
  • 43. Solution Layer Solutions can be broken down into 2 parts – Solution Templates and Applications.
  • 44. Solution Layer(2) oSolution 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. oAs an example, for a connected car solution, the abstract data model could be a vehicle’ s runtime data + GPS data + asset data of the vehicle, which constitutes the device metamodel and the application data model. oOne can use solution templates to build application based on customer requirements.
  • 45. IoT Security and Management 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. oDevice 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 gateway. oMonitoring 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. oDeployment: Deployment of IoT applications needs to be looked at holistically, right from IoT devices, networks and topology, cloud services and end solutions and taking care of end to end security.
  • 46. IoT and Open Source
  • 47. Open Source Device SDKs The open source IoT platform provides support for wide variety of protocols like MQTT, AXMP and HTTP protocol. For MQTT , we can leverage the Eclipse based Paho library for connecting any device to the core platform or open source library like cyclon.js which makes it easier to connect various devices using Node.js. We really liked the cyclone.js library and the extensions provided by the library to support various devices.
  • 48. Apache Kafka Apache Kafka service provides us with a highly scalable, low latency, fast and distributed publish- subscribe messaging system. Similar to any publish-subscribe messaging system, Kafka maintains feeds of messages in categories called topics. Producers publish data to topics and consumers subscribe to topics to read messages. Kafka can retain messages after the specified time interval has elapsed, unlike other messaging system which deletes messages as soon as they are consumed.
  • 49. Cassandra Apache Cassandra can be used for storing the continuous stream of data coming from devices. Kafka consumer can be created in order to listens to a specified topic, consumes the message and stores the message in one of the Cassandra tables. Cassandra also can be used for historical data analysis to gain insights on various usages, aggregations and computations, build correlations and to develop our machine learning models iteratively for anomaly detection and predictive analytics.
  • 50. ApacheSpark Streaming Apache Spark streaming component from Apache Spark project adds real time data stream processing and data transformation for further processing by systems. It provides stack of libraries including SQL and DataFrames, MLlib for machine learning, GraphX, and Spark Streaming. Apache Spark streaming supports real time processing as well as batch updates on top of Spark engine, which makes it perfect choice for applications which requires responding to real time events and batch processing via Hadoop jobs for complex data analysis.
  • 51. ApacheSpark MLlib Apache Spark MLlib service is used to build machine learning models or combine multiple machine learning models using a standardized API. Building a machine learning models require a series of step as discussed earlier –like cleansing and transformation, creating feature vectors, correlation, splitting up data in training and test sets, selecting algorithms for building up required models (prediction, classification, regression, etc.) and iteratively training the model for required accuracy.
  • 52. Custom Rules and Events Apache Zeppelin project can be used to quickly build an interactive data analytics dashboard. Zeppelin has built-in support for Spark integration and SparkSQL.
  • 54. C It makes sense that a language first developed to program telephone switches would be a reasonable choice for embedded system development. It's available on nearly every advanced embedded system platform that exists. For some platforms where it's not directly available, it's still the basis for the dedicated language used in the SDK.
  • 55. C++ When the programming world began moving toward object-oriented languages in the early 1980s, procedural languages such as Fortran, Cobol, and C seemed destined to fade into obscurity. C++ kept the spare nature of C but added data abstraction, classes, and objects. All of these features make C++ a popular choice for those who are writing embedded and IoT code for Linux systems.
  • 56. JAVA Java was written to be an object- oriented language that is incredibly portable: There are very, very few hardware dependencies built into the compiler. In order to get the specific, fine control over particular pieces of hardware, Java depends on hardware- support libraries that are called from the generic code.
  • 57. JavaScript JavaScript is, as the name implies, a scripting language that is heavily used for building Web-fronted applications. If you wanted to use the Apache server on a Raspberry Pi to gather data from a network of Arduino-based sensors, for example, JavaScript would be a good starting point for the effort.
  • 58. Python Python has become one of the "go-to" languages in Web development, and its use has spread to the embedded control and IoT world. Python is very flexible in many ways. For example, it is an interpreted language that can either be submitted to a run-time compiler or run through one of several pre- compilers so that compact executable code may be distributed. The thing that makes Python good for programming teams, though, is its emphasis on readability.
  • 59. GO Go was developed at Google and is available on a wide variety of processors and platforms. While it is one of the many languages that owes a debt to C, there are a number of ways in which it's superior to C for certain types of embedded programming. Go supports concurrent input, output, and processing on many different channels. Used correctly, this allows the coordination of an entire fleet of sensors and actuators.
  • 60. RUST Rust was developed at Mozilla. Like the rest of Mozilla's software, Rust is an open source project that is evolving quickly. Rust shares many of Go's qualities, though it does solve one major problem of Go. Because Go doesn't automatically share information between the different "channel" data structures, a program can develop something called a "race condition." It's basically a runaway situation in which a system can spiral out of control because different processes are working at odds with one another. Rust includes functions that eliminate race conditions, making it a less-risky language than Go for highly concurrent programs.
  • 61. Erlang Erlang is a multi-purpose programming language used primarily for developing concurrent and distributed systems. It began as a proprietary programming language used by Ericsson for telephony and communications applications. Released as open source in 1998, Erlang has become more popular in recent years thanks to its use in high profile projects, such as the Facebook chat system, and in innovative open source projects, such as the CouchDB document-oriented database management system.
  • 62. Erlang(2) oIdeal platform for Large-Scale (C1M to C10M) PubSub systems oIdeal for implementation of Gateways & Proxies oEasy ZigBee, MQTT & MQTT-S protocol handling using bit-syntax & binary comprehensions oVery easy to port to ARM-based Embedded Linux systems (not only RPi & BeagleBone/Board, but also professional SBCs) oUnique concurrency support oPerfect for messaging platform
  • 63. Julia Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library.