+ All Categories
Home > Technology > Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

Date post: 14-Aug-2015
Category:
Upload: rich-cullen
View: 296 times
Download: 0 times
Share this document with a friend
Popular Tags:
48
@rich_cullen_75 Top 10 Real-Life WebSocket Use Cases & Experiences Rich Cullen @rich_cullen_75 kaazing.org /blog kaazing.org
Transcript
Page 1: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@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

@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

@YourTwitterHandle @rich_cullen_75

Page 4: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@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

@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

@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

@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

@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

@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

@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

@rich_cullen_75

How Can I Use?

Page 12: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@rich_cullen_75

How Can I Use?

Page 13: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@rich_cullen_75

The WebSocket Handshake

Page 14: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@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

@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

@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

@rich_cullen_75

WebSocket Clients and Server

Page 18: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@rich_cullen_75

Enterprise Messaging Extended to the Web

Page 19: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@YourTwitterHandle @rich_cullen_75

Page 20: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@rich_cullen_75

Auditing Demo Architecture

Page 21: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@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

@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

@rich_cullen_75

Demo Setup

Page 24: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@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

@rich_cullen_75

Light Switch: Range Extended to the Web

Page 26: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@YourTwitterHandle @rich_cullen_75

Page 27: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@rich_cullen_75

Web Remote Controlled Car Architecture

Page 28: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@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

@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

@rich_cullen_75

About the Quadcopter: DJI Phantom 2

Page 31: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@rich_cullen_75

The Sensor Stack

Page 32: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@rich_cullen_75

Arduino: GPS, thermometer, humidity, compass, accelerometer + Go Pro

Page 33: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@rich_cullen_75

Satellite Terminal: InmarSat – Geostationary Satellites

Page 34: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@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

@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

@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

@YourTwitterHandle @rich_cullen_75

Page 38: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@rich_cullen_75

End-to-end latency: under 1 second

Page 39: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@YourTwitterHandle @rich_cullen_75

Page 40: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@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

@rich_cullen_75

It’s More Than “Just” the Web

Page 42: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@rich_cullen_75

Connected Devices

Page 43: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@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

@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

@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

@rich_cullen_75

DO IT! JUST…

Give WebSocket a try

Page 47: Top 10 real life WebSocket use cases & experiences - Devoxx UK 2015

@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

@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/


Recommended