SlideShare a Scribd company logo
© 2013 Kaazing Corporation. All Rights Reserved.
1
Controlling Physical Devices on
the Real Time Web
David Witherspoon
Prashant Khanal
Sep 25, 2013
© 2013 Kaazing Corporation. All Rights Reserved.
About Us
§  Prashant Khanal
§  Software Engineer – Kaazing
§  Prashant.Khanal@kaazing.com
§  Twitter: @ipras
§  David Witherspoon
§  Software Engineer – Kaazing
§  David.Witherspoon@kaazing.com
§  Twitter: @dpwspoon
© 2013 Kaazing Corporation. All Rights Reserved.
Demo!
© 2013 Kaazing Corporation. All Rights Reserved.
Agenda
§  Requirements for the IoT
§  Creating a reference architecture for IoT
§  Live Demos, Live Demos, Live Demos
§  Source Code, Source Code, Source Code
§  WoT and IoT
© 2013 Kaazing Corporation. All Rights Reserved.
Internet of Things
Ubiquitous/Pervasive
Heterogeneous
Highly Interconnected
Event-Driven/Real Time
Identifiable Components
Always On
Scalable
Manageable
© 2013 Kaazing Corporation. All Rights Reserved.
Raspberry Pi
Image source: http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html
© 2013 Kaazing Corporation. All Rights Reserved.
Raspberry Pi Resources
§  RaspberryPi.org
§  Wheezy (OS)
§  Oracle JVM
§  Pi4J (Raspberry Pi Java Library)
© 2013 Kaazing Corporation. All Rights Reserved.
Demo!
© 2013 Kaazing Corporation. All Rights Reserved.
Demo Setup
© 2013 Kaazing Corporation. All Rights Reserved.
Raspberry Pi Controlling the Light Directly
© 2013 Kaazing Corporation. All Rights Reserved.
Raspberry Pi Controlling the Light Directly
© 2013 Kaazing Corporation. All Rights Reserved.
Raspberry Pi Controlling the Light Directly
© 2013 Kaazing Corporation. All Rights Reserved.
Raspberry Pi Controlling the Light Directly
© 2013 Kaazing Corporation. All Rights Reserved.
Demo Setup
© 2013 Kaazing Corporation. All Rights Reserved.
Raspberry Pi Reading from a Toggle Switch
© 2013 Kaazing Corporation. All Rights Reserved.
Raspberry Pi Reading from a Toggle Switch
© 2013 Kaazing Corporation. All Rights Reserved.
Raspberry Pi Reading from a Toggle Switch
© 2013 Kaazing Corporation. All Rights Reserved.
Demo Setup
© 2013 Kaazing Corporation. All Rights Reserved.
Messaging for the IoT
§  Messaging Style
§  Interconnected / Bidirectional
§  Dynamic States (Could be on or off)
§  Messaging Protocol Requirements
§  Identity
§  Data formats
§  Transactions
§  Acknowledgments
§  And more …
© 2013 Kaazing Corporation. All Rights Reserved.
Message Systems/Protocols for the IoT
§  Java Message Service (JMS)
§  Standard messaging API
§  Vendor independent
§  Pub / Sub
§  Loosely Coupled
© 2013 Kaazing Corporation. All Rights Reserved.
Controlling the Light Remotely Using Pub-Sub
© 2013 Kaazing Corporation. All Rights Reserved.
Demo!
© 2013 Kaazing Corporation. All Rights Reserved.
LightJmsTcpController Using JMS to Control a Light
© 2013 Kaazing Corporation. All Rights Reserved.
LightJmsTcpController Using JMS to Control a Light
© 2013 Kaazing Corporation. All Rights Reserved.
LightJmsTcpController Using JMS to Control a Light
© 2013 Kaazing Corporation. All Rights Reserved.
LightJmsTcpController Using JMS to Control a Light
© 2013 Kaazing Corporation. All Rights Reserved.
ToggleJmsTcpListener Using JMS to Send Events
© 2013 Kaazing Corporation. All Rights Reserved.
ToggleJmsTcpListener Using JMS to Send Events
© 2013 Kaazing Corporation. All Rights Reserved.
Controlling the Light Remotely Using Pub-Sub
© 2013 Kaazing Corporation. All Rights Reserved.
Challenges with TCP
§  Isolated networks
§  Firewalls
§  Ports
§  Web browsers
© 2013 Kaazing Corporation. All Rights Reserved.
How to Extend This to the Web
© 2013 Kaazing Corporation. All Rights Reserved.
Controlling the Light Remotely Using Pub-Sub Over the Web
© 2013 Kaazing Corporation. All Rights Reserved.
HTML5 WebSocket: TCP for the Web
§  Standard Protocol (IETF): RFC-6455
§  Standard API:
§  W3C: JavaScript
§  JSR 356: Java EE
§  Single socket, full-duplex
§  Low overhead: <1% of HTTP
§  Low latency: low milliseconds
§  SSL support
Full duplex
© 2013 Kaazing Corporation. All Rights Reserved.
Protocol Layering
TCP
JMS XMPP AMQP B2B FTP VNC mktdata etc
Browsers, Native Applications and IoT Devices
WebSocket
Gateway
Internet
WebSocket
Gateway
© 2013 Kaazing Corporation. All Rights Reserved.
Controlling the Light Remotely Using Pub-Sub Over the Web
© 2013 Kaazing Corporation. All Rights Reserved.
Demo!
© 2013 Kaazing Corporation. All Rights Reserved.
WebSocket with Brokers
© 2013 Kaazing Corporation. All Rights Reserved.
WebSocket with Brokers
© 2013 Kaazing Corporation. All Rights Reserved.
WebSocket with Brokers
© 2013 Kaazing Corporation. All Rights Reserved.
Internet of Things
© 2013 Kaazing Corporation. All Rights Reserved.
Internet of Things == Web of Things
© 2013 Kaazing Corporation. All Rights Reserved.
The Architecture
© 2013 Kaazing Corporation. All Rights Reserved.
The Web of Things
© 2013 Kaazing Corporation. All Rights Reserved.
WebSocket Powering the Web of Things
WS
WS
WS
WS WS WS
WS
WS
WS
© 2013 Kaazing Corporation. All Rights Reserved.
Extending Protocols to the Web of Things
MQTT/WS
AMQP/WS
JMS/WS
STOMP/WS
XMPP/WS
© 2013 Kaazing Corporation. All Rights Reserved.
Raspberry Pi Resources
§  RaspberryPi.org
§  http://www.raspberrypi.org/
§  Wheezy (OS)
§  http://www.raspberrypi.org/downloads
§  Oracle JVM on the Pi
§  http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html
§  Pi4J (Raspberry Pi Java Library)
§  http://pi4j.com/
© 2013 Kaazing Corporation. All Rights Reserved.
Find Out More
§  The Zinger – Blog:
§  http://blog.kaazing.com
§  HTML5 Developer Conference
§  October 22-23, 2013, San Francisco, Moscone North
§  JMS WebSocket Tutorial
§  http://tutorial.kaazing.com
§  More developer content
§  http://developer.kaazing.com
§  RC Car / Light and Switch Code
§  https://github.com/dpwspoon/kaazingPi
§  The Definitive Guide to HTML5 WebSocket, (Apress, 2013)
§  First comprehensive guide on WebSocket
§  Use WSK214 for 40% of the e-book
47
© 2013 Kaazing Corporation. All Rights Reserved.
© 2013 Kaazing Corporation. All Rights Reserved.
The End

More Related Content

JMS, WebSocket, and the Internet of Things - Controlling Physical Devices on the Real Time Web

  • 1. © 2013 Kaazing Corporation. All Rights Reserved. 1 Controlling Physical Devices on the Real Time Web David Witherspoon Prashant Khanal Sep 25, 2013
  • 2. © 2013 Kaazing Corporation. All Rights Reserved. About Us §  Prashant Khanal §  Software Engineer – Kaazing §  Prashant.Khanal@kaazing.com §  Twitter: @ipras §  David Witherspoon §  Software Engineer – Kaazing §  David.Witherspoon@kaazing.com §  Twitter: @dpwspoon
  • 3. © 2013 Kaazing Corporation. All Rights Reserved. Demo!
  • 4. © 2013 Kaazing Corporation. All Rights Reserved. Agenda §  Requirements for the IoT §  Creating a reference architecture for IoT §  Live Demos, Live Demos, Live Demos §  Source Code, Source Code, Source Code §  WoT and IoT
  • 5. © 2013 Kaazing Corporation. All Rights Reserved. Internet of Things Ubiquitous/Pervasive Heterogeneous Highly Interconnected Event-Driven/Real Time Identifiable Components Always On Scalable Manageable
  • 6. © 2013 Kaazing Corporation. All Rights Reserved. Raspberry Pi Image source: http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html
  • 7. © 2013 Kaazing Corporation. All Rights Reserved. Raspberry Pi Resources §  RaspberryPi.org §  Wheezy (OS) §  Oracle JVM §  Pi4J (Raspberry Pi Java Library)
  • 8. © 2013 Kaazing Corporation. All Rights Reserved. Demo!
  • 9. © 2013 Kaazing Corporation. All Rights Reserved. Demo Setup
  • 10. © 2013 Kaazing Corporation. All Rights Reserved. Raspberry Pi Controlling the Light Directly
  • 11. © 2013 Kaazing Corporation. All Rights Reserved. Raspberry Pi Controlling the Light Directly
  • 12. © 2013 Kaazing Corporation. All Rights Reserved. Raspberry Pi Controlling the Light Directly
  • 13. © 2013 Kaazing Corporation. All Rights Reserved. Raspberry Pi Controlling the Light Directly
  • 14. © 2013 Kaazing Corporation. All Rights Reserved. Demo Setup
  • 15. © 2013 Kaazing Corporation. All Rights Reserved. Raspberry Pi Reading from a Toggle Switch
  • 16. © 2013 Kaazing Corporation. All Rights Reserved. Raspberry Pi Reading from a Toggle Switch
  • 17. © 2013 Kaazing Corporation. All Rights Reserved. Raspberry Pi Reading from a Toggle Switch
  • 18. © 2013 Kaazing Corporation. All Rights Reserved. Demo Setup
  • 19. © 2013 Kaazing Corporation. All Rights Reserved. Messaging for the IoT §  Messaging Style §  Interconnected / Bidirectional §  Dynamic States (Could be on or off) §  Messaging Protocol Requirements §  Identity §  Data formats §  Transactions §  Acknowledgments §  And more …
  • 20. © 2013 Kaazing Corporation. All Rights Reserved. Message Systems/Protocols for the IoT §  Java Message Service (JMS) §  Standard messaging API §  Vendor independent §  Pub / Sub §  Loosely Coupled
  • 21. © 2013 Kaazing Corporation. All Rights Reserved. Controlling the Light Remotely Using Pub-Sub
  • 22. © 2013 Kaazing Corporation. All Rights Reserved. Demo!
  • 23. © 2013 Kaazing Corporation. All Rights Reserved. LightJmsTcpController Using JMS to Control a Light
  • 24. © 2013 Kaazing Corporation. All Rights Reserved. LightJmsTcpController Using JMS to Control a Light
  • 25. © 2013 Kaazing Corporation. All Rights Reserved. LightJmsTcpController Using JMS to Control a Light
  • 26. © 2013 Kaazing Corporation. All Rights Reserved. LightJmsTcpController Using JMS to Control a Light
  • 27. © 2013 Kaazing Corporation. All Rights Reserved. ToggleJmsTcpListener Using JMS to Send Events
  • 28. © 2013 Kaazing Corporation. All Rights Reserved. ToggleJmsTcpListener Using JMS to Send Events
  • 29. © 2013 Kaazing Corporation. All Rights Reserved. Controlling the Light Remotely Using Pub-Sub
  • 30. © 2013 Kaazing Corporation. All Rights Reserved. Challenges with TCP §  Isolated networks §  Firewalls §  Ports §  Web browsers
  • 31. © 2013 Kaazing Corporation. All Rights Reserved. How to Extend This to the Web
  • 32. © 2013 Kaazing Corporation. All Rights Reserved. Controlling the Light Remotely Using Pub-Sub Over the Web
  • 33. © 2013 Kaazing Corporation. All Rights Reserved. HTML5 WebSocket: TCP for the Web §  Standard Protocol (IETF): RFC-6455 §  Standard API: §  W3C: JavaScript §  JSR 356: Java EE §  Single socket, full-duplex §  Low overhead: <1% of HTTP §  Low latency: low milliseconds §  SSL support Full duplex
  • 34. © 2013 Kaazing Corporation. All Rights Reserved. Protocol Layering TCP JMS XMPP AMQP B2B FTP VNC mktdata etc Browsers, Native Applications and IoT Devices WebSocket Gateway Internet WebSocket Gateway
  • 35. © 2013 Kaazing Corporation. All Rights Reserved. Controlling the Light Remotely Using Pub-Sub Over the Web
  • 36. © 2013 Kaazing Corporation. All Rights Reserved. Demo!
  • 37. © 2013 Kaazing Corporation. All Rights Reserved. WebSocket with Brokers
  • 38. © 2013 Kaazing Corporation. All Rights Reserved. WebSocket with Brokers
  • 39. © 2013 Kaazing Corporation. All Rights Reserved. WebSocket with Brokers
  • 40. © 2013 Kaazing Corporation. All Rights Reserved. Internet of Things
  • 41. © 2013 Kaazing Corporation. All Rights Reserved. Internet of Things == Web of Things
  • 42. © 2013 Kaazing Corporation. All Rights Reserved. The Architecture
  • 43. © 2013 Kaazing Corporation. All Rights Reserved. The Web of Things
  • 44. © 2013 Kaazing Corporation. All Rights Reserved. WebSocket Powering the Web of Things WS WS WS WS WS WS WS WS WS
  • 45. © 2013 Kaazing Corporation. All Rights Reserved. Extending Protocols to the Web of Things MQTT/WS AMQP/WS JMS/WS STOMP/WS XMPP/WS
  • 46. © 2013 Kaazing Corporation. All Rights Reserved. Raspberry Pi Resources §  RaspberryPi.org §  http://www.raspberrypi.org/ §  Wheezy (OS) §  http://www.raspberrypi.org/downloads §  Oracle JVM on the Pi §  http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html §  Pi4J (Raspberry Pi Java Library) §  http://pi4j.com/
  • 47. © 2013 Kaazing Corporation. All Rights Reserved. Find Out More §  The Zinger – Blog: §  http://blog.kaazing.com §  HTML5 Developer Conference §  October 22-23, 2013, San Francisco, Moscone North §  JMS WebSocket Tutorial §  http://tutorial.kaazing.com §  More developer content §  http://developer.kaazing.com §  RC Car / Light and Switch Code §  https://github.com/dpwspoon/kaazingPi §  The Definitive Guide to HTML5 WebSocket, (Apress, 2013) §  First comprehensive guide on WebSocket §  Use WSK214 for 40% of the e-book 47
  • 48. © 2013 Kaazing Corporation. All Rights Reserved.
  • 49. © 2013 Kaazing Corporation. All Rights Reserved. The End