SlideShare a Scribd company logo
IOT and System Platform
From Concepts to Code
Andy Robinson
Avid Solutions
Introductions
1/10/2016 2
Introductions
• Andy Robinson​
• Information Solutions Consultant with Avid
Solutions in Raleigh
• 2 years as Principal at Phase 2 Automation​ in
Taiwan
• 10 years with Avid Solutions
• 5 years with Monsanto/Solutia in Decatur, AL
and Houston, TX​
• ​Co-Founder of aaOpenSource
• The Archestranaut
1/10/2016 3
Overview
1/10/2016 4
Overview/One-Eyed People
I am NOT an expert
In the land of the blind
…the one eyed man is king
1/10/2016 5
Overview/My Definition of IOT
What would/could you do differently if the cost to send data to/from
your system approached $0?
1/10/2016 6
Sensor Transmitter
I/O
Channel
Complex
Machine
Gateway
Data
Server
Visualization
Alarming
Storage
Overview/Parts and Pieces
• Many Moving Pieces
Clients
Data
Transmission/
Receipt
Servers
Storage
Visualization
Analytics
Notifications
1/10/2016 7
Overview/Data Transmission
• Two Core Pieces
• Transport
• TCP – connection oriented, packets are confirmed and retransmitted if failed
• UDP - connectionless , fire and forget
• Protocol
• HTTP
• XMPP
• CoAP
• AMQP
• MQTT
1/10/2016 8
Overview/Data Transmission/HTTP
• Same core protocol as web page delivery
• Uses a RESTful pattern (GET/POST)
• Client-Server with Request/Response
1/10/2016 9
Overview/Data Transmission/HTTP
• Benefits
• Easy path through firewalls (HTTP/80, HTTPS/443)
• Out of the box transport security with SSL/TLS
• Very well known so easy to get started
1/10/2016 10
Overview/Data Transmission/HTTP
• Drawbacks
• Huge overhead from headers 700-800 bytes1 (should be better with HTTP/2)
• RESTful patterns are inherently slow and require polling
(1) http://dev.chromium.org/spdy/spdy-whitepaper
1/10/2016 11
Overview/Data Transmission/XMPP
• eXtensible Messaging and Presence Protocol
• XML over TCP
• Originally started as a chat protocol to support contact lists and
presence
• Ask Eliot Landrum anything
https://en.wikipedia.org/wiki/XMPP
1/10/2016 12
Overview/Data Transmission/XMPP
• Benefits
• Open standard
• Flexible
• Very mature (originated in 1999)
https://en.wikipedia.org/wiki/XMPP
1/10/2016 13
Overview/Data Transmission/XMPP
• Drawbacks
• No QOS inherent at the protocol layer
• Higher network overhead due to XML being text based
https://en.wikipedia.org/wiki/XMPP
1/10/2016 14
Overview/Data Transmission/CoAP
• Constrained Object Access Protocol
• UDP but similar to HTTP with RESTful functions
(GET/PUT/POST/DELETE)
• Asynchronous communications model
• Client-Server
http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117
http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm
1/10/2016 15
Overview/Data Transmission/CoAP
• Benefits
• Ultra small header (4 bytes) leads to ultra small packet sizes
• DTLS for security
• Combined with LWM2M for robust device management
• Discovery methods built into protocol
• Great for ultra low power, ultra low bandwidth
• Datagram packet model can work over non IP transports like SMS
• IETF Standard
1/10/2016 16
http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117
http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm
Overview/Data Transmission/CoAP
• Drawbacks
• Core protocol is client-server with server initiated communications 
requires inbound packets to client device  security concerns
• As single client to single server there is no built-in concept of data broadcast
1/10/2016 17
http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117
http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm
Overview/Data Transmission/AMQP
• Advanced Message Queue Protocol
• Originally developed by big financial orgs for middleware messaging
• Message oriented binary protocol typically over TCP
• OASIS Standard
https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol
1/10/2016 18
Overview/Data Transmission/AMQP
• Benefits
• Built for resiliency and scaling
• Load balancing patterns
• Messages can contain payload and metadata
• Powerful routing patterns
• Security based on SSL/TLS
1/10/2016 19
Overview/Data Transmission/AMQP
• Drawbacks
• Not lightweight – built with servers and fat networks in mind (60 byte
minimum packet size)
• Can be complex to implement client – thanks Paolo for SBLite
1/10/2016 20
Overview/Data Transmission/MQTT
• Message Queue Telemetry Transport
• Created by IBM to support oil pipeline telemetry data over slow,
unreliable networks
• TCP Transport
• Publish-Subscribe with Broker Model
1/10/2016 21
http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117
http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm
Overview/Data Transmission/MQTT
• Benefits
• Very small header (7 bytes) leads to very small packet sizes
• TLS for security
• Great for low power, low bandwidth
• No incoming connection to client  much more secure
• 3 levels of QOS
• OASIS Standard
1/10/2016 22
http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117
http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm
Overview/Data Transmission/MQTT
• Benefits - Small size and low overhead
1/10/2016 23
https://mobilebit.wordpress.com/2013/05/03/rest-is-for-sleeping-mqtt-is-for-mobile/
Overview/Data Transmission/MQTT
• Drawbacks
• TCP is connection oriented so more complex to put device to sleep (MQTT-S
supports UDP)
• No standard model for metadata and discoverability
• No standard method for device management
http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117
http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm
1/10/2016 24
Overview/Data Transmission/Winner
• And the best protocol is…the one that matches your requirements and
capabilities
• One of many comparisons
• www.slideshare.net/paolopat/mqtt-iot-protocols-comparison
• Would also love to talk about DDS (ultra high performance, data-centric)
• ….. but let’s talk about MQTT
1/10/2016 25
MQTT – The Details
1/10/2016 26
MQTT/Details/Transport
• Utilizes single, duplex, persistent TCP connection for transport
• Client connects to broker and broker sends data back down the
connection
• Broker NEVER connects directly to client. Security Win!
• Client can use SSL/TLS to connect to Broker. Security Win!
• Many brokers support authentication and ACL
Client
Broker
(Server)
1/10/2016 27
MQTT/Details/Communication Model
• Pub/Sub with Central Broker
• Conceptually similar to Mxaccess in System Platform
http://www.codeproject.com/KB/IP/PubSubUsingWCF/pubsub.png
1/10/2016 28
MQTT/Details/Broker
• Broker is meeting point for publishers and subscribers
• Many different brokers available
• Run locally or in the cloud
1/10/2016 29
MQTT/Details/Broker
• Local
• mosquitto – The old man of the brokers, full featured, easy, single exe
• GnatMQ – written in C#, open source
• HiveMQ – extra features, commercial, extensible
• Mosca – node.js, open source
• Verne.MQ – written in Erlang, scalable and resilient, open source
1/10/2016 30
MQTT/Details/Broker
• Cloud
• CloudMQTT – uses mosquitto
• Verne.MQ - extensible, highly available
• Public testers – test.mosquito.org, broker.mqtt-dashboard.com, …
1/10/2016 31
MQTT/Details/Topics
• Mailboxes organized into folders
• “/” separates the folders
• Wildcards
• Single Level  “+”
• home/+/temp
home/1/temp
home/2/temp
• Multi-Level  “#”
• /home/#
home/1/temp
home/2/temp
home/1/rh
home/2/rh1/10/2016 32
MQTT/Details/Topics vs Queues
Feature Topics Queues
Big Idea Real Time Asynchronous FIFO/Stack
Dropped Data Can Be OK (but QOS) Never Ok
Pub/Sub Yes Partial (only one client)
Applications Sensor Data
Alarms
Alarms
Events
Value History
“Client”
Broker
Topics
Queue
Value
Alarms
Events
HMI
Historical Values,
Alarms, Events
HMI
HMI
HMI
Publish Subscribe
Timestamped Values
Alarms
Events
1/10/2016 33
MQTT – The Code
1/10/2016 34
MQTT/Code/Client Library
• You only need a client library to pub and sub .. unless you want to run
a broker too
• Client libraries for almost every language
• Best C# library is M2MQTT from Paolo Patierno
• Open Source
• Full Featured
• Nuget Package Available
1/10/2016 35
MQTT/Code/Pseudocode
Create Client
Set Options (ClientID, SSL/TLS?, QOS, Credentials)
Connect to Single Broker by Name or IP Address
…..
Subscribe to Topic(s)  Receive Callback for Subscribed Topic
….
Publish UTF-8 encoded binary data to Topic(s)
1/10/2016 36
MQTT/Code/System Platform/Publish
… Declarations….
configHost = "localhost";
configclientID = Me.Tagname;
MQTTClient = new uPLibrary.Networking.M2Mqtt.MqttClient(configHost);
MQTTClient.Connect(configclientID);
if (MQTTClient.IsConnected) then
Topic = "data/" + Me.Tagname + "/value";
MQTTClient.Publish(Topic,System.Text.Encoding.UTF8.GetBytes(Me.Value));
endif;
1/10/2016 37
MQTT/Code/System Platform/Subscribe
• Not possible due to requirement for callback registration
• But you can use the AOT – been there done that.. mostly
_mqttClient.MqttMsgPublishReceived += _mqttClient_MqttMsgPublishReceived;
_mqttclient.subscribe(Topic)
…
void _mqttClient_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
{
Process new message e
}
1/10/2016 38
MQTT – The Demos
1/10/2016 39
MQTT/Demo
• Demo 1 – Publishing simple data from System Platform
1/10/2016 40
MQTT/Demo
• Demo 2 – Publishing complex data from System Platform
1/10/2016 41
MQTT/Demo
• Demo 3 – Subscribing to Data “in” System Platform
1/10/2016 42
MQTT/Demo
• Demo 4 – MQTT  Wonderware Historian (no System Platform)
1/10/2016 43
MQTT/Demo
• Demo 5 – MQTT  Node-Red  ??
• MQTTWarn
1/10/2016 44
amqp
apns
asterisk
carbon
dbus
dnsupdate
emoncms
file
freeswitch
gss
http
instapush
irccat
linuxnotify
log
mqtt
mqttpub
mysql
mysql_dynamic
mythtv
nma
nntp
nsca
osxnotify
osxsay
pastebinpub
pipe
prowl
pushalot
pushbullet
pushover
redispub
rrdtool
slack
sqlite
smtp
syslog
twilio
twitter
xbmc
xmpp
xively
zabbix
MQTT – Resources
1/10/2016 45
MQTT/Resources
• MQTT.org
• Paolo! - m2mqtt.wordpress.com/
• Eclipse paho- www.eclipse.org/paho/
• AMQP on Microsoft Azure - github.com/ppatierno/azuresblite
• Talk to Alvaro Martinez about the new OI Server for MQTT!
• aaOpenSource Github Repo
github.com/aaOpenSource/aaMQTT
1/10/2016 46
Wrap-Up
1/10/2016 47
Wrap-Up/Takeaways
• Just a seed
• No solutions, just ideas
• Take these concepts and scale up
• Consuming public MQTT data – weather? Energy prices?
• Disconnected warehouse with no VPN – real situation with current customer
• We are all now composers, not luthiers
1/10/2016 48
Wrap-Up/Upcoming Talks
• October 8 – Avid Solutions, Atlanta
• IOT – similar talk
• Basic of good security hygiene
• October 20 – All Things Open – Raleigh
• Dear Open Source: Please help. Love, Manufacturing
1/10/2016 49
Wrap-Up/Contact
• Andy Robinson
arobinson@avidsolutionsinc.com
@archestranaut
@aaOpenSource
github.com/aaopensource
1/10/2016 50

More Related Content

What's hot

Sync IT Presentation 3.16
Sync IT Presentation 3.16Sync IT Presentation 3.16
Sync IT Presentation 3.16
Marcus Grimaldo
 
Tutorial: IPv6-only transition with demo
Tutorial: IPv6-only transition with demoTutorial: IPv6-only transition with demo
Tutorial: IPv6-only transition with demo
APNIC
 
Ceph Day Amsterdam 2015 - Deploying flash storage for Ceph without compromisi...
Ceph Day Amsterdam 2015 - Deploying flash storage for Ceph without compromisi...Ceph Day Amsterdam 2015 - Deploying flash storage for Ceph without compromisi...
Ceph Day Amsterdam 2015 - Deploying flash storage for Ceph without compromisi...
Ceph Community
 
Routing security - Budapest 2011
Routing security - Budapest 2011Routing security - Budapest 2011
Routing security - Budapest 2011
Wardner Maia
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
Moises Silva
 
Bandwidth control approach - Cisco vs Mikrotik on Multitenancy
Bandwidth control approach - Cisco vs Mikrotik on MultitenancyBandwidth control approach - Cisco vs Mikrotik on Multitenancy
Bandwidth control approach - Cisco vs Mikrotik on Multitenancy
Olaf Reitmaier Veracierta
 
Building Local-loop Services for Customers
Building Local-loop Services for CustomersBuilding Local-loop Services for Customers
Building Local-loop Services for Customers
GLC Networks
 
Software Defined Datacenter with Proxmox
Software Defined Datacenter with ProxmoxSoftware Defined Datacenter with Proxmox
Software Defined Datacenter with Proxmox
GLC Networks
 
Mikrotik Fastpath vs Fasttrack
Mikrotik Fastpath vs FasttrackMikrotik Fastpath vs Fasttrack
Mikrotik Fastpath vs Fasttrack
GLC Networks
 
BGP on mikrotik
BGP on mikrotikBGP on mikrotik
BGP on mikrotik
Achmad Mardiansyah
 
A new perspective on Network Visibility - RISK 2015
A new perspective on Network Visibility - RISK 2015A new perspective on Network Visibility - RISK 2015
A new perspective on Network Visibility - RISK 2015
Network Performance Channel GmbH
 
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDNTech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
nvirters
 
WebRTC Standards Q&A Live Session 1 by Dan Burnett & Amir Zmora
WebRTC Standards Q&A Live Session 1 by Dan Burnett & Amir ZmoraWebRTC Standards Q&A Live Session 1 by Dan Burnett & Amir Zmora
WebRTC Standards Q&A Live Session 1 by Dan Burnett & Amir Zmora
Amir Zmora
 
IXLeeds 2 Technical Update
IXLeeds 2 Technical UpdateIXLeeds 2 Technical Update
IXLeeds 2 Technical Update
Thomas Mangin
 
IPv6 New RFCs
IPv6 New RFCsIPv6 New RFCs
IPv6 New RFCs
APNIC
 
Network Simulation - Prague 2015
Network Simulation - Prague 2015Network Simulation - Prague 2015
Network Simulation - Prague 2015
Wardner Maia
 
MTCNA : Intro to RouterOS - Part 1
MTCNA : Intro to RouterOS - Part 1MTCNA : Intro to RouterOS - Part 1
MTCNA : Intro to RouterOS - Part 1
GLC Networks
 
Osdc2014 openstack networking yves_fauser
Osdc2014 openstack networking yves_fauserOsdc2014 openstack networking yves_fauser
Osdc2014 openstack networking yves_fauser
yfauser
 
BGP Anomaly Detection
BGP Anomaly DetectionBGP Anomaly Detection
BGP Anomaly Detection
University of Kufa
 
Picking a message queue
Picking a  message queuePicking a  message queue
Picking a message queue
Vladislav Kirshtein
 

What's hot (20)

Sync IT Presentation 3.16
Sync IT Presentation 3.16Sync IT Presentation 3.16
Sync IT Presentation 3.16
 
Tutorial: IPv6-only transition with demo
Tutorial: IPv6-only transition with demoTutorial: IPv6-only transition with demo
Tutorial: IPv6-only transition with demo
 
Ceph Day Amsterdam 2015 - Deploying flash storage for Ceph without compromisi...
Ceph Day Amsterdam 2015 - Deploying flash storage for Ceph without compromisi...Ceph Day Amsterdam 2015 - Deploying flash storage for Ceph without compromisi...
Ceph Day Amsterdam 2015 - Deploying flash storage for Ceph without compromisi...
 
Routing security - Budapest 2011
Routing security - Budapest 2011Routing security - Budapest 2011
Routing security - Budapest 2011
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
 
Bandwidth control approach - Cisco vs Mikrotik on Multitenancy
Bandwidth control approach - Cisco vs Mikrotik on MultitenancyBandwidth control approach - Cisco vs Mikrotik on Multitenancy
Bandwidth control approach - Cisco vs Mikrotik on Multitenancy
 
Building Local-loop Services for Customers
Building Local-loop Services for CustomersBuilding Local-loop Services for Customers
Building Local-loop Services for Customers
 
Software Defined Datacenter with Proxmox
Software Defined Datacenter with ProxmoxSoftware Defined Datacenter with Proxmox
Software Defined Datacenter with Proxmox
 
Mikrotik Fastpath vs Fasttrack
Mikrotik Fastpath vs FasttrackMikrotik Fastpath vs Fasttrack
Mikrotik Fastpath vs Fasttrack
 
BGP on mikrotik
BGP on mikrotikBGP on mikrotik
BGP on mikrotik
 
A new perspective on Network Visibility - RISK 2015
A new perspective on Network Visibility - RISK 2015A new perspective on Network Visibility - RISK 2015
A new perspective on Network Visibility - RISK 2015
 
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDNTech Tutorial by Vikram Dham: Let's build MPLS router using SDN
Tech Tutorial by Vikram Dham: Let's build MPLS router using SDN
 
WebRTC Standards Q&A Live Session 1 by Dan Burnett & Amir Zmora
WebRTC Standards Q&A Live Session 1 by Dan Burnett & Amir ZmoraWebRTC Standards Q&A Live Session 1 by Dan Burnett & Amir Zmora
WebRTC Standards Q&A Live Session 1 by Dan Burnett & Amir Zmora
 
IXLeeds 2 Technical Update
IXLeeds 2 Technical UpdateIXLeeds 2 Technical Update
IXLeeds 2 Technical Update
 
IPv6 New RFCs
IPv6 New RFCsIPv6 New RFCs
IPv6 New RFCs
 
Network Simulation - Prague 2015
Network Simulation - Prague 2015Network Simulation - Prague 2015
Network Simulation - Prague 2015
 
MTCNA : Intro to RouterOS - Part 1
MTCNA : Intro to RouterOS - Part 1MTCNA : Intro to RouterOS - Part 1
MTCNA : Intro to RouterOS - Part 1
 
Osdc2014 openstack networking yves_fauser
Osdc2014 openstack networking yves_fauserOsdc2014 openstack networking yves_fauser
Osdc2014 openstack networking yves_fauser
 
BGP Anomaly Detection
BGP Anomaly DetectionBGP Anomaly Detection
BGP Anomaly Detection
 
Picking a message queue
Picking a  message queuePicking a  message queue
Picking a message queue
 

Viewers also liked

FacebookProject_Team6_FinalReport
FacebookProject_Team6_FinalReportFacebookProject_Team6_FinalReport
FacebookProject_Team6_FinalReport
Wendy Lally
 
16.09.2014 (2)
16.09.2014 (2)16.09.2014 (2)
16.09.2014 (2)
tolgacelebi
 
What Can I Do with My Degree?
What Can I Do with My Degree?What Can I Do with My Degree?
What Can I Do with My Degree?
Nicole DelVicario
 
Pushback: Information literacy does not mean what you think it means
Pushback: Information literacy does not mean what you think it meansPushback: Information literacy does not mean what you think it means
Pushback: Information literacy does not mean what you think it means
si641
 
літературно мистецький червень2015
літературно мистецький червень2015літературно мистецький червень2015
літературно мистецький червень2015
Юлия Тер-Давлатян
 
літературно мистецький серпень2015
літературно мистецький серпень2015літературно мистецький серпень2015
літературно мистецький серпень2015
Юлия Тер-Давлатян
 
Championship Title Boxing
Championship Title Boxing Championship Title Boxing
Championship Title Boxing
Lola Montelongo
 
літературно мистецький жовтень2015
літературно мистецький жовтень2015літературно мистецький жовтень2015
літературно мистецький жовтень2015
Юлия Тер-Давлатян
 
Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008
Phương Nhung
 
тренінг
тренінгтренінг
тренінг
blondik1289
 
Урок математики
Урок математики Урок математики
Урок математики
blondik1289
 
School management Software
School management SoftwareSchool management Software
School management Software
Globalcampus
 
Adriana Pieterse (2)
Adriana Pieterse (2)Adriana Pieterse (2)
Adriana Pieterse (2)
Adriana Ferreira
 
E learning proposal for a marketing company
E learning proposal for a marketing companyE learning proposal for a marketing company
E learning proposal for a marketing company
Ruwan Weerasinghe
 
Real Estate in Ecommerce age
Real Estate in Ecommerce ageReal Estate in Ecommerce age
Real Estate in Ecommerce age
Krushit Shah
 
Swapnil Bhavsar - Resume
Swapnil Bhavsar - ResumeSwapnil Bhavsar - Resume
Swapnil Bhavsar - Resume
swapnil bhavsar
 
информация по тренингу
информация по тренингуинформация по тренингу
информация по тренингу
blondik1289
 
Обдаровані діти
Обдаровані дітиОбдаровані діти
Обдаровані діти
blondik1289
 
Trends in APN practice engage in the change
Trends in APN practice engage in the changeTrends in APN practice engage in the change
Trends in APN practice engage in the change
Deena Nardi
 

Viewers also liked (20)

FacebookProject_Team6_FinalReport
FacebookProject_Team6_FinalReportFacebookProject_Team6_FinalReport
FacebookProject_Team6_FinalReport
 
16.09.2014 (2)
16.09.2014 (2)16.09.2014 (2)
16.09.2014 (2)
 
What Can I Do with My Degree?
What Can I Do with My Degree?What Can I Do with My Degree?
What Can I Do with My Degree?
 
Pushback: Information literacy does not mean what you think it means
Pushback: Information literacy does not mean what you think it meansPushback: Information literacy does not mean what you think it means
Pushback: Information literacy does not mean what you think it means
 
літературно мистецький червень2015
літературно мистецький червень2015літературно мистецький червень2015
літературно мистецький червень2015
 
літературно мистецький серпень2015
літературно мистецький серпень2015літературно мистецький серпень2015
літературно мистецький серпень2015
 
Championship Title Boxing
Championship Title Boxing Championship Title Boxing
Championship Title Boxing
 
літературно мистецький жовтень2015
літературно мистецький жовтень2015літературно мистецький жовтень2015
літературно мистецький жовтень2015
 
Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008Bai 1 lam quen voi sql 2008
Bai 1 lam quen voi sql 2008
 
тренінг
тренінгтренінг
тренінг
 
Урок математики
Урок математики Урок математики
Урок математики
 
School management Software
School management SoftwareSchool management Software
School management Software
 
Adriana Pieterse (2)
Adriana Pieterse (2)Adriana Pieterse (2)
Adriana Pieterse (2)
 
PBAlignment
PBAlignmentPBAlignment
PBAlignment
 
E learning proposal for a marketing company
E learning proposal for a marketing companyE learning proposal for a marketing company
E learning proposal for a marketing company
 
Real Estate in Ecommerce age
Real Estate in Ecommerce ageReal Estate in Ecommerce age
Real Estate in Ecommerce age
 
Swapnil Bhavsar - Resume
Swapnil Bhavsar - ResumeSwapnil Bhavsar - Resume
Swapnil Bhavsar - Resume
 
информация по тренингу
информация по тренингуинформация по тренингу
информация по тренингу
 
Обдаровані діти
Обдаровані дітиОбдаровані діти
Обдаровані діти
 
Trends in APN practice engage in the change
Trends in APN practice engage in the changeTrends in APN practice engage in the change
Trends in APN practice engage in the change
 

Similar to IOT and System Platform From Concepts to Code

Open Ethernet: an open-source approach to modern network design
Open Ethernet: an open-source approach to modern network designOpen Ethernet: an open-source approach to modern network design
Open Ethernet: an open-source approach to modern network design
Alexander Petrovskiy
 
From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...
P. Taylor Goetz
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
Lorenzo Miniero
 
Scalable Service-Oriented Middleware over IP
Scalable Service-Oriented Middleware over IPScalable Service-Oriented Middleware over IP
Scalable Service-Oriented Middleware over IP
Dai Yang
 
Protocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDNProtocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDN
Gerardo Pardo-Castellote
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
Alex Moskvin
 
From Device to Data Center to Insights
From Device to Data Center to InsightsFrom Device to Data Center to Insights
From Device to Data Center to Insights
DataWorks Summit/Hadoop Summit
 
Web Services for the Internet of Things
Web Services for the Internet of ThingsWeb Services for the Internet of Things
Web Services for the Internet of Things
Markku Laine
 
100 M pps on PC.
100 M pps on PC.100 M pps on PC.
100 M pps on PC.
Redge Technologies
 
Protocols for internet of things
Protocols for internet of thingsProtocols for internet of things
Protocols for internet of things
Charles Gibbons
 
Protocols for internet of things
Protocols for internet of thingsProtocols for internet of things
Protocols for internet of things
Charles Gibbons
 
Protocols for internet of things
Protocols for internet of thingsProtocols for internet of things
Protocols for internet of things
Charles Gibbons
 
Protocols for internet of things
Protocols for internet of thingsProtocols for internet of things
Protocols for internet of things
Charles Gibbons
 
Internet of Things: Protocols for M2M
Internet of Things: Protocols for M2MInternet of Things: Protocols for M2M
Internet of Things: Protocols for M2M
Charles Gibbons
 
Protocols for internet of things
Protocols for internet of thingsProtocols for internet of things
Protocols for internet of things
Charles Gibbons
 
IBM Aspera overview
IBM Aspera overview IBM Aspera overview
IBM Aspera overview
Carlos Martin Hernandez
 
Mqtt presentation
Mqtt presentationMqtt presentation
Mqtt presentation
Shiang - Chi Lee
 
Securing the Internet of Things
Securing the Internet of ThingsSecuring the Internet of Things
Securing the Internet of Things
Paul Fremantle
 
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
Ceph Community
 
WebRTC DataChannels demystified
WebRTC DataChannels demystifiedWebRTC DataChannels demystified
WebRTC DataChannels demystified
Victor Pascual Ávila
 

Similar to IOT and System Platform From Concepts to Code (20)

Open Ethernet: an open-source approach to modern network design
Open Ethernet: an open-source approach to modern network designOpen Ethernet: an open-source approach to modern network design
Open Ethernet: an open-source approach to modern network design
 
From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...
 
Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019Fuzzing Janus @ IPTComm 2019
Fuzzing Janus @ IPTComm 2019
 
Scalable Service-Oriented Middleware over IP
Scalable Service-Oriented Middleware over IPScalable Service-Oriented Middleware over IP
Scalable Service-Oriented Middleware over IP
 
Protocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDNProtocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDN
 
Realtime traffic analyser
Realtime traffic analyserRealtime traffic analyser
Realtime traffic analyser
 
From Device to Data Center to Insights
From Device to Data Center to InsightsFrom Device to Data Center to Insights
From Device to Data Center to Insights
 
Web Services for the Internet of Things
Web Services for the Internet of ThingsWeb Services for the Internet of Things
Web Services for the Internet of Things
 
100 M pps on PC.
100 M pps on PC.100 M pps on PC.
100 M pps on PC.
 
Protocols for internet of things
Protocols for internet of thingsProtocols for internet of things
Protocols for internet of things
 
Protocols for internet of things
Protocols for internet of thingsProtocols for internet of things
Protocols for internet of things
 
Protocols for internet of things
Protocols for internet of thingsProtocols for internet of things
Protocols for internet of things
 
Protocols for internet of things
Protocols for internet of thingsProtocols for internet of things
Protocols for internet of things
 
Internet of Things: Protocols for M2M
Internet of Things: Protocols for M2MInternet of Things: Protocols for M2M
Internet of Things: Protocols for M2M
 
Protocols for internet of things
Protocols for internet of thingsProtocols for internet of things
Protocols for internet of things
 
IBM Aspera overview
IBM Aspera overview IBM Aspera overview
IBM Aspera overview
 
Mqtt presentation
Mqtt presentationMqtt presentation
Mqtt presentation
 
Securing the Internet of Things
Securing the Internet of ThingsSecuring the Internet of Things
Securing the Internet of Things
 
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
Ceph Day SF 2015 - Deploying flash storage for Ceph without compromising perf...
 
WebRTC DataChannels demystified
WebRTC DataChannels demystifiedWebRTC DataChannels demystified
WebRTC DataChannels demystified
 

Recently uploaded

CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
rpskprasana
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
171ticu
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball playEric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
enizeyimana36
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
RadiNasr
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
University of Maribor
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
gerogepatton
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
jpsjournal1
 
Textile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdfTextile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdf
NazakatAliKhoso2
 
The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.
sachin chaurasia
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
MIGUELANGEL966976
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
bijceesjournal
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
Rahul
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
gerogepatton
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
VICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

CSM Cloud Service Management Presentarion
CSM Cloud Service Management PresentarionCSM Cloud Service Management Presentarion
CSM Cloud Service Management Presentarion
 
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样官方认证美国密歇根州立大学毕业证学位证书原版一模一样
官方认证美国密歇根州立大学毕业证学位证书原版一模一样
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball playEric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
 
Textile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdfTextile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdf
 
The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.The Python for beginners. This is an advance computer language.
The Python for beginners. This is an advance computer language.
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdfBPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
BPV-GUI-01-Guide-for-ASME-Review-Teams-(General)-10-10-2023.pdf
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
 
ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024ACEP Magazine edition 4th launched on 05.06.2024
ACEP Magazine edition 4th launched on 05.06.2024
 
International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...International Conference on NLP, Artificial Intelligence, Machine Learning an...
International Conference on NLP, Artificial Intelligence, Machine Learning an...
 
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student MemberIEEE Aerospace and Electronic Systems Society as a Graduate Student Member
IEEE Aerospace and Electronic Systems Society as a Graduate Student Member
 

IOT and System Platform From Concepts to Code

  • 1. IOT and System Platform From Concepts to Code Andy Robinson Avid Solutions
  • 3. Introductions • Andy Robinson​ • Information Solutions Consultant with Avid Solutions in Raleigh • 2 years as Principal at Phase 2 Automation​ in Taiwan • 10 years with Avid Solutions • 5 years with Monsanto/Solutia in Decatur, AL and Houston, TX​ • ​Co-Founder of aaOpenSource • The Archestranaut 1/10/2016 3
  • 5. Overview/One-Eyed People I am NOT an expert In the land of the blind …the one eyed man is king 1/10/2016 5
  • 6. Overview/My Definition of IOT What would/could you do differently if the cost to send data to/from your system approached $0? 1/10/2016 6 Sensor Transmitter I/O Channel Complex Machine Gateway Data Server Visualization Alarming Storage
  • 7. Overview/Parts and Pieces • Many Moving Pieces Clients Data Transmission/ Receipt Servers Storage Visualization Analytics Notifications 1/10/2016 7
  • 8. Overview/Data Transmission • Two Core Pieces • Transport • TCP – connection oriented, packets are confirmed and retransmitted if failed • UDP - connectionless , fire and forget • Protocol • HTTP • XMPP • CoAP • AMQP • MQTT 1/10/2016 8
  • 9. Overview/Data Transmission/HTTP • Same core protocol as web page delivery • Uses a RESTful pattern (GET/POST) • Client-Server with Request/Response 1/10/2016 9
  • 10. Overview/Data Transmission/HTTP • Benefits • Easy path through firewalls (HTTP/80, HTTPS/443) • Out of the box transport security with SSL/TLS • Very well known so easy to get started 1/10/2016 10
  • 11. Overview/Data Transmission/HTTP • Drawbacks • Huge overhead from headers 700-800 bytes1 (should be better with HTTP/2) • RESTful patterns are inherently slow and require polling (1) http://dev.chromium.org/spdy/spdy-whitepaper 1/10/2016 11
  • 12. Overview/Data Transmission/XMPP • eXtensible Messaging and Presence Protocol • XML over TCP • Originally started as a chat protocol to support contact lists and presence • Ask Eliot Landrum anything https://en.wikipedia.org/wiki/XMPP 1/10/2016 12
  • 13. Overview/Data Transmission/XMPP • Benefits • Open standard • Flexible • Very mature (originated in 1999) https://en.wikipedia.org/wiki/XMPP 1/10/2016 13
  • 14. Overview/Data Transmission/XMPP • Drawbacks • No QOS inherent at the protocol layer • Higher network overhead due to XML being text based https://en.wikipedia.org/wiki/XMPP 1/10/2016 14
  • 15. Overview/Data Transmission/CoAP • Constrained Object Access Protocol • UDP but similar to HTTP with RESTful functions (GET/PUT/POST/DELETE) • Asynchronous communications model • Client-Server http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117 http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm 1/10/2016 15
  • 16. Overview/Data Transmission/CoAP • Benefits • Ultra small header (4 bytes) leads to ultra small packet sizes • DTLS for security • Combined with LWM2M for robust device management • Discovery methods built into protocol • Great for ultra low power, ultra low bandwidth • Datagram packet model can work over non IP transports like SMS • IETF Standard 1/10/2016 16 http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117 http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm
  • 17. Overview/Data Transmission/CoAP • Drawbacks • Core protocol is client-server with server initiated communications  requires inbound packets to client device  security concerns • As single client to single server there is no built-in concept of data broadcast 1/10/2016 17 http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117 http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm
  • 18. Overview/Data Transmission/AMQP • Advanced Message Queue Protocol • Originally developed by big financial orgs for middleware messaging • Message oriented binary protocol typically over TCP • OASIS Standard https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol 1/10/2016 18
  • 19. Overview/Data Transmission/AMQP • Benefits • Built for resiliency and scaling • Load balancing patterns • Messages can contain payload and metadata • Powerful routing patterns • Security based on SSL/TLS 1/10/2016 19
  • 20. Overview/Data Transmission/AMQP • Drawbacks • Not lightweight – built with servers and fat networks in mind (60 byte minimum packet size) • Can be complex to implement client – thanks Paolo for SBLite 1/10/2016 20
  • 21. Overview/Data Transmission/MQTT • Message Queue Telemetry Transport • Created by IBM to support oil pipeline telemetry data over slow, unreliable networks • TCP Transport • Publish-Subscribe with Broker Model 1/10/2016 21 http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117 http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm
  • 22. Overview/Data Transmission/MQTT • Benefits • Very small header (7 bytes) leads to very small packet sizes • TLS for security • Great for low power, low bandwidth • No incoming connection to client  much more secure • 3 levels of QOS • OASIS Standard 1/10/2016 22 http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117 http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm
  • 23. Overview/Data Transmission/MQTT • Benefits - Small size and low overhead 1/10/2016 23 https://mobilebit.wordpress.com/2013/05/03/rest-is-for-sleeping-mqtt-is-for-mobile/
  • 24. Overview/Data Transmission/MQTT • Drawbacks • TCP is connection oriented so more complex to put device to sleep (MQTT-S supports UDP) • No standard model for metadata and discoverability • No standard method for device management http://www.slideshare.net/rickgaribay/from-the-internet-of-things-to-intelligent-systems-a-developers-primer-garibay-final-34875117 http://www.realtimecommunicationsworld.com/topics/realtimecommunicationsworld/articles/408622-pros-cons-the-major-iot-communications-protocols.htm 1/10/2016 24
  • 25. Overview/Data Transmission/Winner • And the best protocol is…the one that matches your requirements and capabilities • One of many comparisons • www.slideshare.net/paolopat/mqtt-iot-protocols-comparison • Would also love to talk about DDS (ultra high performance, data-centric) • ….. but let’s talk about MQTT 1/10/2016 25
  • 26. MQTT – The Details 1/10/2016 26
  • 27. MQTT/Details/Transport • Utilizes single, duplex, persistent TCP connection for transport • Client connects to broker and broker sends data back down the connection • Broker NEVER connects directly to client. Security Win! • Client can use SSL/TLS to connect to Broker. Security Win! • Many brokers support authentication and ACL Client Broker (Server) 1/10/2016 27
  • 28. MQTT/Details/Communication Model • Pub/Sub with Central Broker • Conceptually similar to Mxaccess in System Platform http://www.codeproject.com/KB/IP/PubSubUsingWCF/pubsub.png 1/10/2016 28
  • 29. MQTT/Details/Broker • Broker is meeting point for publishers and subscribers • Many different brokers available • Run locally or in the cloud 1/10/2016 29
  • 30. MQTT/Details/Broker • Local • mosquitto – The old man of the brokers, full featured, easy, single exe • GnatMQ – written in C#, open source • HiveMQ – extra features, commercial, extensible • Mosca – node.js, open source • Verne.MQ – written in Erlang, scalable and resilient, open source 1/10/2016 30
  • 31. MQTT/Details/Broker • Cloud • CloudMQTT – uses mosquitto • Verne.MQ - extensible, highly available • Public testers – test.mosquito.org, broker.mqtt-dashboard.com, … 1/10/2016 31
  • 32. MQTT/Details/Topics • Mailboxes organized into folders • “/” separates the folders • Wildcards • Single Level  “+” • home/+/temp home/1/temp home/2/temp • Multi-Level  “#” • /home/# home/1/temp home/2/temp home/1/rh home/2/rh1/10/2016 32
  • 33. MQTT/Details/Topics vs Queues Feature Topics Queues Big Idea Real Time Asynchronous FIFO/Stack Dropped Data Can Be OK (but QOS) Never Ok Pub/Sub Yes Partial (only one client) Applications Sensor Data Alarms Alarms Events Value History “Client” Broker Topics Queue Value Alarms Events HMI Historical Values, Alarms, Events HMI HMI HMI Publish Subscribe Timestamped Values Alarms Events 1/10/2016 33
  • 34. MQTT – The Code 1/10/2016 34
  • 35. MQTT/Code/Client Library • You only need a client library to pub and sub .. unless you want to run a broker too • Client libraries for almost every language • Best C# library is M2MQTT from Paolo Patierno • Open Source • Full Featured • Nuget Package Available 1/10/2016 35
  • 36. MQTT/Code/Pseudocode Create Client Set Options (ClientID, SSL/TLS?, QOS, Credentials) Connect to Single Broker by Name or IP Address ….. Subscribe to Topic(s)  Receive Callback for Subscribed Topic …. Publish UTF-8 encoded binary data to Topic(s) 1/10/2016 36
  • 37. MQTT/Code/System Platform/Publish … Declarations…. configHost = "localhost"; configclientID = Me.Tagname; MQTTClient = new uPLibrary.Networking.M2Mqtt.MqttClient(configHost); MQTTClient.Connect(configclientID); if (MQTTClient.IsConnected) then Topic = "data/" + Me.Tagname + "/value"; MQTTClient.Publish(Topic,System.Text.Encoding.UTF8.GetBytes(Me.Value)); endif; 1/10/2016 37
  • 38. MQTT/Code/System Platform/Subscribe • Not possible due to requirement for callback registration • But you can use the AOT – been there done that.. mostly _mqttClient.MqttMsgPublishReceived += _mqttClient_MqttMsgPublishReceived; _mqttclient.subscribe(Topic) … void _mqttClient_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e) { Process new message e } 1/10/2016 38
  • 39. MQTT – The Demos 1/10/2016 39
  • 40. MQTT/Demo • Demo 1 – Publishing simple data from System Platform 1/10/2016 40
  • 41. MQTT/Demo • Demo 2 – Publishing complex data from System Platform 1/10/2016 41
  • 42. MQTT/Demo • Demo 3 – Subscribing to Data “in” System Platform 1/10/2016 42
  • 43. MQTT/Demo • Demo 4 – MQTT  Wonderware Historian (no System Platform) 1/10/2016 43
  • 44. MQTT/Demo • Demo 5 – MQTT  Node-Red  ?? • MQTTWarn 1/10/2016 44 amqp apns asterisk carbon dbus dnsupdate emoncms file freeswitch gss http instapush irccat linuxnotify log mqtt mqttpub mysql mysql_dynamic mythtv nma nntp nsca osxnotify osxsay pastebinpub pipe prowl pushalot pushbullet pushover redispub rrdtool slack sqlite smtp syslog twilio twitter xbmc xmpp xively zabbix
  • 46. MQTT/Resources • MQTT.org • Paolo! - m2mqtt.wordpress.com/ • Eclipse paho- www.eclipse.org/paho/ • AMQP on Microsoft Azure - github.com/ppatierno/azuresblite • Talk to Alvaro Martinez about the new OI Server for MQTT! • aaOpenSource Github Repo github.com/aaOpenSource/aaMQTT 1/10/2016 46
  • 48. Wrap-Up/Takeaways • Just a seed • No solutions, just ideas • Take these concepts and scale up • Consuming public MQTT data – weather? Energy prices? • Disconnected warehouse with no VPN – real situation with current customer • We are all now composers, not luthiers 1/10/2016 48
  • 49. Wrap-Up/Upcoming Talks • October 8 – Avid Solutions, Atlanta • IOT – similar talk • Basic of good security hygiene • October 20 – All Things Open – Raleigh • Dear Open Source: Please help. Love, Manufacturing 1/10/2016 49

Editor's Notes

  1. Not going to try to one up what’s been said by many people smarter than me have defined IOT in terms of the technology and the promise for hundreds of trillions of dollars in savings. Instead when I think of IOT I think about a mindset. That mindset being “what would you…”
  2. So when you dive a little deeper you find a lot of moving parts when it comes to tx/rx of IOT data. In this talk I’m going to focus almost exclusively on the data transmission and receipt part. So… let’s get started because I’ve got about 50 slides to get through.. With demos…
  3. Any time you send/receive data over a network you have to consider both the transport and the protocol. For transport you’ve got two primary options, TCP and UDP. The simplistic difference between the two is that TCP confirms receipt of a packet, allowing for retransmission if it doesn’t make it while UDP does not. This makes UDP a lot lighter weight and easier to wake up and send data but you have to deal with a lot of issues yourself. The next part is the protocol. And that’s what I’m about to spend a lot of time talking about. The protocol is how the two ends of the conversation know how to interpret the packets flying back and forth.
  4. So first up, HTTP. This is your old school method for delivering web pages but with a new twist, a RESTFUL pattern. Without getting too far into it, RESTful patterns are a way you can use existing HTTP verbs like GET/POST, etc. and specially formulated URL’s to get data and send data to the server. But fundamentally this is a request/response pattern where every time you want data it’s a new independent transaction as well as sending data.