top 10 real life websocket use cases & experiences - devoxx uk 2015
TRANSCRIPT
![Page 1: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/1.jpg)
@rich_cullen_75
Top 10 Real-Life WebSocket Use Cases & Experiences
Rich Cullen @rich_cullen_75 kaazing.org/blog kaazing.org
![Page 2: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/2.jpg)
@rich_cullen_75
Top 10 Real-Life WebSocket Use Cases
• A few quick demos
• WebSocket technology background and design goals
• More demos
• Taking this to the next level – Connected Devices
• Production and deployment concerns
• Q&A
![Page 3: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/3.jpg)
@YourTwitterHandle @rich_cullen_75
![Page 4: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/4.jpg)
@rich_cullen_75
The Legacy Web
Browser
Half Duplex
Full duplex
Back-end server
Web
Web Tier Middleware
Legacy Web
![Page 5: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/5.jpg)
@rich_cullen_75
The Shortcomings of HTTP • Designed for transfer and retrieval of static documents
• Extremely verbose
• Stateless – context metadata needs to be provided, adding bloat
• Half duplex
• Client initiated Request/Response model
• Only options for simulating “real-time” are essentially elegant hacks
• Polling
• Long Polling
• AJAX
• Comet
![Page 6: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/6.jpg)
@rich_cullen_75
HTML5 WebSocket: TCP for the Web
Full duplex
• Standard Protocol (IETF): RFC-6455
• Standard API (W3C): JavaScript
• Single socket, full-duplex
• Low overhead: <1% HTTP
• Low latency: low milliseconds
• TLS/SSL support
![Page 7: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/7.jpg)
@rich_cullen_75
The Benefits of WebSocket • Designed as a web transport for higher level business protocols
• Extremely compact and efficient on the wire
• Only web transport to allow bi-directional communication over same TCP
connection
• Full duplex - Provides low latency delivery of text and binary application data in
both directions
• NOT a replacement for all HTTP “transactional” Request/Response communication
(e.g. make use of caching semantics of HTTP)
![Page 8: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/8.jpg)
@rich_cullen_75
Interaction Patterns – The Web Before
HTTP is great for some applications…
Request/Response
Client-to-Server WS HTTP
✓ ✓
![Page 9: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/9.jpg)
@rich_cullen_75
Interaction Patterns – The Web Now
Request/Response
Publish/Subscribe
Broadcast-only
Client-to-Server
Server-to-Client
…but extremely limited and restrictive!
WS HTTP
✓ ✓
WS HTTP
✓ ✗
WS HTTP
✓ ✗
WS HTTP
✓ ✗
WS HTTP
✓ ✗
WS HTTP
✓ ✗
![Page 10: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/10.jpg)
@rich_cullen_75
The Event-Driven Web
Browser
Half Duplex
Full duplex
Back-end server
Web
Web Tier Middleware
Legacy Web
Event-Driven Web
Back-end server WebSocket Server
Web
WebSocket Full duplex
![Page 11: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/11.jpg)
@rich_cullen_75
How Can I Use?
![Page 12: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/12.jpg)
@rich_cullen_75
How Can I Use?
![Page 13: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/13.jpg)
@rich_cullen_75
The WebSocket Handshake
![Page 14: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/14.jpg)
@rich_cullen_75
Protocol Layering
TCP
Your application
XMPP IMAP/SMTP/POP3
![Page 15: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/15.jpg)
@rich_cullen_75
Protocol Layering
TCP
Your application
XMPP IMAP/SMTP/POP3 HTTP
![Page 16: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/16.jpg)
@rich_cullen_75
Protocol Layering
TCP
Your application
XMPP IMAP/SMTP/POP3 HTTP
WebSocket
![Page 17: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/17.jpg)
@rich_cullen_75
WebSocket Clients and Server
![Page 18: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/18.jpg)
@rich_cullen_75
Enterprise Messaging Extended to the Web
![Page 19: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/19.jpg)
@YourTwitterHandle @rich_cullen_75
![Page 20: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/20.jpg)
@rich_cullen_75
Auditing Demo Architecture
![Page 21: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/21.jpg)
@rich_cullen_75
The Next Level
Bridging the Gap Between Hardware and Software
Connected Devices
![Page 22: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/22.jpg)
@rich_cullen_75
Raspberry Pi
Image source: http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html
Image source: http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html
![Page 23: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/23.jpg)
@rich_cullen_75
Demo Setup
![Page 24: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/24.jpg)
@rich_cullen_75
Controlling the Light Remotely
Using Pub-Sub Over the Web
![Page 25: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/25.jpg)
@rich_cullen_75
Light Switch: Range Extended to the Web
![Page 26: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/26.jpg)
@YourTwitterHandle @rich_cullen_75
![Page 27: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/27.jpg)
@rich_cullen_75
Web Remote Controlled Car Architecture
![Page 28: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/28.jpg)
@rich_cullen_75
Telemetry Data Distributed to the Web Over Satellite Network
KWG
Message Broker
JMS WS
JMS WS
![Page 29: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/29.jpg)
@rich_cullen_75
Telemetry Data Distributed to the Web Over Satellite Network
KWG
Message Broker
JMS WS
JMS WS
![Page 30: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/30.jpg)
@rich_cullen_75
About the Quadcopter: DJI Phantom 2
![Page 31: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/31.jpg)
@rich_cullen_75
The Sensor Stack
![Page 32: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/32.jpg)
@rich_cullen_75
Arduino: GPS, thermometer, humidity, compass, accelerometer + Go Pro
![Page 33: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/33.jpg)
@rich_cullen_75
Satellite Terminal: InmarSat – Geostationary Satellites
![Page 34: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/34.jpg)
@rich_cullen_75
Satellite Terminal: InmarSat – Geostationary Satellites
Warning: Microwave radiation���Minimum safe distance: 0.6 metres
![Page 35: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/35.jpg)
@rich_cullen_75
Telemetry Data Distributed to the Web Over Satellite Network
KWG
Message Broker
JMS WS
JMS WS
Java App
![Page 36: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/36.jpg)
@rich_cullen_75
KWG
Message Broker
JMS WS
JMS WS
Java App
Telemetry Data Distributed to the Web Over Satellite Network
![Page 37: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/37.jpg)
@YourTwitterHandle @rich_cullen_75
![Page 38: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/38.jpg)
@rich_cullen_75
End-to-end latency: under 1 second
![Page 39: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/39.jpg)
@YourTwitterHandle @rich_cullen_75
![Page 40: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/40.jpg)
@rich_cullen_75
Connected Car Architecture • ELM-327 microcontroller for translating OBD-II interface at car ECU port • Bluetooth connectivity from ELM-327 to MacBook Pro • USB GPS module on MacBook Pro • jSSC (Java Simple Serial Connector) for Bluetooth and USB access • GoPro camera mounted to windshield for video capture • Java KAAZING Gateway client connected to Gateway for sending diagnostic data
inbound • JavaScript KAAZING Gateway client in browser receiving data for the real-time
dashboard • Google Maps in the top half of the dashboard • Custom SVG in the bottom half of the dashboard
![Page 41: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/41.jpg)
@rich_cullen_75
It’s More Than “Just” the Web
![Page 42: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/42.jpg)
@rich_cullen_75
Connected Devices
![Page 43: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/43.jpg)
@rich_cullen_75
Communicating with WebSocket
WS
WS
WS WS
WS
WS
WS
WS WS
![Page 44: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/44.jpg)
@rich_cullen_75
Communicating with Proprietary Protocols over WebSocket
AMQP/WS
MQTT/WS
JMS/WS
STOMP/WS
XMPP/WS
![Page 45: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/45.jpg)
@rich_cullen_75
Production Concerns
Clients disconnect
Network intermediaries
Locked down firewalls
Millions of users
High availability
Disaster recovery
Device battery life
Integration with existing
security infrastructure
![Page 46: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/46.jpg)
@rich_cullen_75
DO IT! JUST…
Give WebSocket a try
![Page 47: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/47.jpg)
@YourTwitterHandle #DVXFR14{session hashtag} @rich_cullen_75
Questions: https://wall-simple.sli.do/#/event/cmnxxfl0/section/15992/questions
![Page 48: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015](https://reader034.vdocument.in/reader034/viewer/2022042716/55cdf7a8bb61eb98488b4638/html5/thumbnails/48.jpg)
@rich_cullen_75
Thanks for your time Learn more: • WebSocket info and echo service: http://www.websocket.org/
• KAAZING: http://kaazing.org/
• KAAZING on GitHub: https://github.com/kaazing
• Tutorials: http://tutorial.kaazing.com/
• Apache ActiveMQ: http://activemq.apache.org/
• RabbitMQ: https://www.rabbitmq.com/
• Node.js: https://nodejs.org/
• MongoDB: https://www.mongodb.org/