SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
WebSocket Perspectives
and
Vision for the Future
Frank Greco - @frankgreco
Director of Technology, Kaazing

Oct 2013
Outline
§ 

Brief Background on WebSocket

§ 

Layered Approach to Web Protocols

§ 

The Web beyond the Browser – XaaS

§ 

The Internet of Things and WebSocket

§ 

Demos

© 2013 Kaazing Corporation
Me…
§ 
§ 
§ 
§ 

§ 
§ 
§ 

Director of Technology @ Kaazing
Chairman NYJavaSIG (javasig.com)
Largest Java UG in North America
7,500+ members
Chair NYHTML5
1,500+ members
Email: frank.greco@kaazing.com
Twitter: @frankgreco
Yell: “Hey Frank!”

© 2013 Kaazing Corporation
Welcome HTML5 (aka The New Web)
§ 
§ 
§ 
§ 
§ 

Users are Demanding more from Apps
UI/UX Requirements are more sophisticated
Browser Enhancements and Evolution
API Explosion
Web no longer just about Documents… even partial or
pseudo documents

The New Web is a Programmatic Foundation for Rich,
Reliable and Really Cool Apps

© 2013 Kaazing Corporation
Welcome HTML5 (aka The New Web)
§ 
§ 
§ 
§ 
§ 

Users are Demanding more from Apps
UI/UX Requirements are more sophisticated
Browser Enhancements and Evolution
API Explosion
Web no longer just about Documents… even partial or
pseudo documents

The New Web is a Programmatic Foundation for Rich,
Reliable and Really Cool Apps

But…
© 2013 Kaazing Corporation
HTTP – Not Designed for an Event-Driven World…
§ 

Designed for document transfer
- 

§ 

Bidirectional, but half-duplex
- 

§ 

Short-lived Request / Response interaction
Traffic flows in only one direction at a time

Stateless
- 

Large amounts of metadata resent for each request

Yes, HTTP 2.0 will be better, but the
Web was not originally designed for
“real-time”, event-based services…
© 2013 Kaazing Corporation
WebSocket
• 
• 
• 
• 
• 
• 
• 
• 
• 

“Real-Time”, bi-directional connectivity
IETF Protocol - RFC 6455 – Dec 2011
W3C API
Easily add event-based capability to web apps
Avoids polling (and resource consumption)
Avoids HTTP meta-data overhead
Shares port with HTTP (80/443)
Peer protocol to HTTP (both use TCP)
The Most Important API in “HTML5”

© 2013 Kaazing Corporation
WebSocket Standards
§ 

IETF Formal Protocol (RFC 6455)
- 
- 

§ 

Event-driven JavaScript API
Full-duplex communication protocol

W3C API – Candidate Recommendation
- 

§ 

Java JSR 356

http://www.w3.org/TR/websockets/

Integrates HTTP addressing
- 

ws://yourcompany.com/collaboration_svc

- 

wss://anothercompany.com/marketdata_svc

Traverses firewalls, proxies, routers securely
§  Text and Binary
§  Leverages Cross-Origin Resource Sharing (CORS)
§ 

© 2013 Kaazing Corporation
The WebSocket Handshake

© 2013 Kaazing Corporation
WebSocket Frames
§ 
§ 
§ 

Frames have a few header bytes
Data may be text or binary
Frames from client to server are masked
(XORed w/ random value) to avoid black hats with old proxies

§ 

Use TLS in production – avoids a lot of issues…

© 2013 Kaazing Corporation
What WebSocket is Not
• 

It is not a New AJAX

AJAX was a lovable hack

• 

It is not a Push mechanism

WebSocket is full-duplex, bi-directional

• 

It is not a Messaging system

It’s an agnostic wire protocol
It’s a low-level transport API

• 

It is not a Replacement for HTTP
HTTP is still great for static,
cacheable info

© 2013 Kaazing Corporation
WebSocket Projects, OSS, Vendors
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 

Kaazing
Node.js/socket.io/SockJS/engine.io
ActiveMQ
Tomcat
Jetty
Oracle Glassfish
Java EE – JSR 356
Play Framework – Reactive Apps
Rabbit MQ
JBoss
IIS/ASP .NET 4.5
PHP, Objective-C, Ruby, Python, C/C++, JVM-langs…
Many more…

© 2013 Kaazing Corporation
For Real-Time, Event-based Web Communication…

Legacy HTTP vs. WebSocket

Seems like a no-brainer for most apps…
© 2013 Kaazing Corporation
HTML5 WebSocket API

Make sure WS is open
before usage… J

© 2013 Kaazing Corporation
HTML5 WebSocket API

But…

Dealing with WebSocket is like dealing with TCP.
It’s a streams-based model. You need to understand how
to handle streams-based data over the wire.
e.g., How do I do publish/subscribe?

© 2013 Kaazing Corporation
What is Missing?
Where is the Application-level Protocol?
Who handles retries?
How do we handle publish/
subscribe semantics?
How do we handle market data?
How do I handle
entitlements? ACL?

© 2013 Kaazing Corporation

How can we guarantee delivery?
What do we do with slow
consumers, last value cache, etc?
What if the client is not
currently active?
What about partial data?
But wait… Protocol Layering is Possible!
Whoa… Its just like TCP!

Huzzah!

Browser and Native Applications
JMS

XMPP

AMQP

B2B

FTP

VNC

WebSocket
TCP

Internet

WebSocket
Gateway

© 2013 Kaazing Corporation

WebSocket
Gateway

mktdata

etc
Higher Level APIs (over WebSocket) for JavaScript
So if you can layer application protocols and APIs over
WebSocket, what do you have?
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 

Easier WebSocket programmability
Event-driven applications over the web
Event-driven APIs over the web
Not necessary to open non-standard ports
Web infrastructure now truly “disappears”
Reduction in complexity
Further opportunities to innovate
Mobile + cloud + HTML5/WebSocket
Internet of Things -> Web of Things
“Imagination is Everything”

© 2013 Kaazing Corporation
Higher Level APIs Reduces Complexity
Innovation

Simplicity is a
Useful
Abstraction!
Simplicity enables
Innovation
Complexity
© 2013 Kaazing Corporation
Anything Else Missing?
Other Considerations for the Real-World…
Must handle unfriendly
network intermediaries

Need to handle
multiple WS versions

Has to work in multiple DMZs
What about multiple (and
legacy) browser versions?
Bandwidth management

Concerns about open
ports with back-end
service

Can’t have
business logic
in the DMZ

Need highavailability topology

AuthN/AuthZ
Native, HTML5 and
has to work
multiple times hybrid environments
Services architecture
XaaS integration – the
needs to be consistent
Web beyond the browser
Other language libs
Integrate easily with
non-messaging services

All things you need for a real enterprise app
© 2013 Kaazing Corporation
Futures

What’s next for WebSocket?

© 2013 Kaazing Corporation
Explosion of Open Web APIs
§ 

APIs from everywhere

§ 

Over 10K public APIs and even more Mashups
- 
- 

programmableweb.com/apis/directory
Amazon, Facebook, LinkedIn, AT&T, Google, Microsoft,
NYTimes, Orange, SalesForce, Telefonica, Twitter, Visa,
Vodafone, Bloomberg, NYSE, Thomson-Reuters, etc.

§ 

Over time, more will be event-based – NoREST?

§ 

Mashape.com, APIhub.com

§ 

Enterprise and B2B APIs

§ 

Services… Services… Services…

© 2013 Kaazing Corporation
Industry View

© 2013 Kaazing Corporation
Event-based XaaS
Integration as a Service

Monitoring as a Service

Governance as a Service

Identity as a Service
WAN Optimization as a Service
Data Center as a Service
CDN as a Service
Sentiment Analysis
as a Service

Risk Analytics
as a Service

Enterprise Messaging
as a Service

EAI as a Service

© 2013 Kaazing Corporation

Windows Desktop
as a Service
Network as a Service

Trade Clearance as a
Service

Database as a Service
Security as a Service

Testing as a
Service

Notification as a Service

Backup
as a Service
Auditing as a
Service

Analytics as a Service
Telephony as a
Service
History Repeats Itself
RPC

REST

Asynchronous
RPC

Asynchronous
REST

Messaging

Messaging

ESB

ISB

Enterprise

Web

•  Can wait for response
•  Tight coupling
•  Centralized business
processes
•  Vertical interaction
•  Easy to understand (xact)

•  Future response
•  Loose coupling
•  Independent business
processes
•  More complexity (xact)

Did I mention History repeats itself?...
© 2013 Kaazing Corporation
Other Event-based (“real-time”) Systems?
Music

Presentation

Communication

Logistics

Home
Security
Big
Data

Health
Monitoring

Intelligent
Appliances
© 2013 Kaazing Corporation

Remote
control

Local
Transportation

Risk
Management

Monitoring/
Management
Demos
Robin Zimmermann
Robin.Zimmermann@kaazing.com, @robinzim
§ 
§ 
§ 
§ 

© 2013 Kaazing Corporation

Prashant Khanal
Software Engineer – Kaazing
Prashant.Khanal@kaazing.com
Twitter: @ipras

§ 
§ 
§ 
§ 

David Witherspoon
Software Engineer – Kaazing
David.Witherspoon@kaazing.com
Twitter: @dpwspoon
Questions?
frank.greco@kaazing.com

© 2013 Kaazing Corporation

Weitere ähnliche Inhalte

Was ist angesagt?

Connecting Physical Devices to the Web - Event Driven Architecture using WebS...
Connecting Physical Devices to the Web - Event Driven Architecture using WebS...Connecting Physical Devices to the Web - Event Driven Architecture using WebS...
Connecting Physical Devices to the Web - Event Driven Architecture using WebS...Peter Moskovits
 
vlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentationvlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets PresentationVolodymyr Lavrynovych
 
Blockchain as a Service and Hyperledger in 15 Minutes
Blockchain as a Service and Hyperledger in 15 MinutesBlockchain as a Service and Hyperledger in 15 Minutes
Blockchain as a Service and Hyperledger in 15 MinutesStefania Kaczmarczyk
 
WebGL and Real-Time Web Communication
WebGL and Real-Time Web CommunicationWebGL and Real-Time Web Communication
WebGL and Real-Time Web CommunicationPeter Moskovits
 
Getting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in JavaGetting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in JavaArun Gupta
 
Apache Stratos - Building a PaaS using OSGi and Equinox
Apache Stratos - Building a PaaS using OSGi and EquinoxApache Stratos - Building a PaaS using OSGi and Equinox
Apache Stratos - Building a PaaS using OSGi and EquinoxPaul Fremantle
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)Jollen Chen
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stackJohan Edstrom
 
Building Real-Time Enterprise Applications for the Internet of Things
Building Real-Time Enterprise Applications for the Internet of ThingsBuilding Real-Time Enterprise Applications for the Internet of Things
Building Real-Time Enterprise Applications for the Internet of ThingsPeter Moskovits
 
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!Masoud Kalali
 
Your Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsYour Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsKen Tabor
 
Getting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent EventsGetting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent EventsArun Gupta
 
Fluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP ArchiveFluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP ArchivePaul Calvano
 
10 things you can do to speed up your web app today 2016
10 things you can do to speed up your web app today 201610 things you can do to speed up your web app today 2016
10 things you can do to speed up your web app today 2016Chris Love
 

Was ist angesagt? (18)

Connecting Physical Devices to the Web - Event Driven Architecture using WebS...
Connecting Physical Devices to the Web - Event Driven Architecture using WebS...Connecting Physical Devices to the Web - Event Driven Architecture using WebS...
Connecting Physical Devices to the Web - Event Driven Architecture using WebS...
 
vlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentationvlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentation
 
The HTML5 WebSocket API
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket API
 
J web socket
J web socketJ web socket
J web socket
 
Blockchain as a Service and Hyperledger in 15 Minutes
Blockchain as a Service and Hyperledger in 15 MinutesBlockchain as a Service and Hyperledger in 15 Minutes
Blockchain as a Service and Hyperledger in 15 Minutes
 
WebGL and Real-Time Web Communication
WebGL and Real-Time Web CommunicationWebGL and Real-Time Web Communication
WebGL and Real-Time Web Communication
 
Getting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in JavaGetting Started with WebSocket and Server-Sent Events in Java
Getting Started with WebSocket and Server-Sent Events in Java
 
Apache Stratos - Building a PaaS using OSGi and Equinox
Apache Stratos - Building a PaaS using OSGi and EquinoxApache Stratos - Building a PaaS using OSGi and Equinox
Apache Stratos - Building a PaaS using OSGi and Equinox
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(3)
 
Succeding with the Apache SOA stack
Succeding with the Apache SOA stackSucceding with the Apache SOA stack
Succeding with the Apache SOA stack
 
Building Real-Time Enterprise Applications for the Internet of Things
Building Real-Time Enterprise Applications for the Internet of ThingsBuilding Real-Time Enterprise Applications for the Internet of Things
Building Real-Time Enterprise Applications for the Internet of Things
 
HTML5 ADEO
HTML5 ADEOHTML5 ADEO
HTML5 ADEO
 
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
 
Your Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsYour Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web Components
 
Getting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent EventsGetting Started with WebSockets and Server-Sent Events
Getting Started with WebSockets and Server-Sent Events
 
Fluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP ArchiveFluent 2018: Tracking Performance of the Web with HTTP Archive
Fluent 2018: Tracking Performance of the Web with HTTP Archive
 
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
JavaCro'14 - Hybrid mobile apps – deploy Java web application on Android to r...
 
10 things you can do to speed up your web app today 2016
10 things you can do to speed up your web app today 201610 things you can do to speed up your web app today 2016
10 things you can do to speed up your web app today 2016
 

Andere mochten auch

The Web of Things - IoTExpo SF - May 2014
The Web of Things - IoTExpo SF - May 2014The Web of Things - IoTExpo SF - May 2014
The Web of Things - IoTExpo SF - May 2014Frank Greco
 
The Web of Things
The Web of ThingsThe Web of Things
The Web of ThingsFrank Greco
 
The Web of Things in Practice
The Web of Things in PracticeThe Web of Things in Practice
The Web of Things in PracticeDominique Guinard
 
Image Processing
Image ProcessingImage Processing
Image ProcessingRolando
 
Digital Image Processing Fundamental
Digital Image Processing FundamentalDigital Image Processing Fundamental
Digital Image Processing FundamentalThuong Nguyen Canh
 
Biodiversity and its Conservation
Biodiversity and its Conservation Biodiversity and its Conservation
Biodiversity and its Conservation Mahesh Dheravath
 
Image processing
Image processingImage processing
Image processingVarun Raj
 
Introduction to digital image processing
Introduction to digital image processingIntroduction to digital image processing
Introduction to digital image processingHossain Md Shakhawat
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image ProcessingSahil Biswas
 
fog computing ppt
fog computing ppt fog computing ppt
fog computing ppt sravya raju
 
Biodiversity and its Conservation
Biodiversity and its ConservationBiodiversity and its Conservation
Biodiversity and its ConservationAkhil Kollipara
 

Andere mochten auch (15)

WoT framework and use cases
WoT framework and use casesWoT framework and use cases
WoT framework and use cases
 
The Web of Things - IoTExpo SF - May 2014
The Web of Things - IoTExpo SF - May 2014The Web of Things - IoTExpo SF - May 2014
The Web of Things - IoTExpo SF - May 2014
 
The Web of Things
The Web of ThingsThe Web of Things
The Web of Things
 
The Web of Things in Practice
The Web of Things in PracticeThe Web of Things in Practice
The Web of Things in Practice
 
Image Processing
Image ProcessingImage Processing
Image Processing
 
Digital Image Processing Fundamental
Digital Image Processing FundamentalDigital Image Processing Fundamental
Digital Image Processing Fundamental
 
FOG COMPUTING
FOG COMPUTINGFOG COMPUTING
FOG COMPUTING
 
Biodiversity and its Conservation
Biodiversity and its Conservation Biodiversity and its Conservation
Biodiversity and its Conservation
 
Image processing
Image processingImage processing
Image processing
 
Introduction to digital image processing
Introduction to digital image processingIntroduction to digital image processing
Introduction to digital image processing
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image Processing
 
fog computing ppt
fog computing ppt fog computing ppt
fog computing ppt
 
Fog computing
Fog computingFog computing
Fog computing
 
Biodiversity and its Conservation
Biodiversity and its ConservationBiodiversity and its Conservation
Biodiversity and its Conservation
 
PPT OF BIODIVERSITY
PPT OF BIODIVERSITYPPT OF BIODIVERSITY
PPT OF BIODIVERSITY
 

Ähnlich wie WebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SF

SEMINAR (pwa).pptx
SEMINAR (pwa).pptxSEMINAR (pwa).pptx
SEMINAR (pwa).pptxBasitMir10
 
Mobility & Data Strategies
Mobility & Data StrategiesMobility & Data Strategies
Mobility & Data StrategiesSam Basu
 
Building Interactive Virtual Reality Experiences in the Cloud
Building Interactive Virtual Reality Experiences in the CloudBuilding Interactive Virtual Reality Experiences in the Cloud
Building Interactive Virtual Reality Experiences in the CloudAmazon Web Services
 
Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Brandon Watson
 
The History and Status of Web Crypto API (2012)
The History and Status of Web Crypto API (2012)The History and Status of Web Crypto API (2012)
The History and Status of Web Crypto API (2012)Channy Yun
 
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...Codemotion
 
Cloud Computing Overview And Predictions May 2009
Cloud Computing Overview And Predictions   May 2009Cloud Computing Overview And Predictions   May 2009
Cloud Computing Overview And Predictions May 2009Brent Jackson
 
Azure & WP7 at GRDevDay
Azure & WP7 at GRDevDayAzure & WP7 at GRDevDay
Azure & WP7 at GRDevDaySam Basu
 
Create and Publish AR and VR Apps with Amazon Sumerian
Create and Publish AR and VR Apps with Amazon SumerianCreate and Publish AR and VR Apps with Amazon Sumerian
Create and Publish AR and VR Apps with Amazon SumerianAmazon Web Services
 
Windows Azure Platform - Jonathan Wong
Windows Azure Platform - Jonathan WongWindows Azure Platform - Jonathan Wong
Windows Azure Platform - Jonathan WongSpiffy
 
Azure Overview Csco
Azure Overview CscoAzure Overview Csco
Azure Overview Cscorajramab
 
Understanding IaaS Requirements & Design Cloud
Understanding IaaS Requirements & Design CloudUnderstanding IaaS Requirements & Design Cloud
Understanding IaaS Requirements & Design CloudJohn Treadway
 
The WebRTC Continuum - The Next Wave
The WebRTC Continuum - The Next WaveThe WebRTC Continuum - The Next Wave
The WebRTC Continuum - The Next WaveWebRTCConferenceJapan
 
Building Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data GridsBuilding Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data GridsJohn Blum
 
Brocade vADC Portfolio Overview 2016
Brocade vADC Portfolio Overview 2016Brocade vADC Portfolio Overview 2016
Brocade vADC Portfolio Overview 2016Scott Sims
 
Azure Overview Business Model Overview
Azure Overview Business Model OverviewAzure Overview Business Model Overview
Azure Overview Business Model Overviewrramabad
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperSam Basu
 

Ähnlich wie WebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SF (20)

SEMINAR (pwa).pptx
SEMINAR (pwa).pptxSEMINAR (pwa).pptx
SEMINAR (pwa).pptx
 
Mobility & Data Strategies
Mobility & Data StrategiesMobility & Data Strategies
Mobility & Data Strategies
 
Building Interactive Virtual Reality Experiences in the Cloud
Building Interactive Virtual Reality Experiences in the CloudBuilding Interactive Virtual Reality Experiences in the Cloud
Building Interactive Virtual Reality Experiences in the Cloud
 
Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2
 
The History and Status of Web Crypto API (2012)
The History and Status of Web Crypto API (2012)The History and Status of Web Crypto API (2012)
The History and Status of Web Crypto API (2012)
 
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
Andrea Baldon, Emanuele Di Saverio - GraphQL for Native Apps: the MyAXA case ...
 
Cloud Computing Overview And Predictions May 2009
Cloud Computing Overview And Predictions   May 2009Cloud Computing Overview And Predictions   May 2009
Cloud Computing Overview And Predictions May 2009
 
Azure & WP7 at GRDevDay
Azure & WP7 at GRDevDayAzure & WP7 at GRDevDay
Azure & WP7 at GRDevDay
 
Create and Publish AR and VR Apps with Amazon Sumerian
Create and Publish AR and VR Apps with Amazon SumerianCreate and Publish AR and VR Apps with Amazon Sumerian
Create and Publish AR and VR Apps with Amazon Sumerian
 
Web 2 0 Tools
Web 2 0 ToolsWeb 2 0 Tools
Web 2 0 Tools
 
Windows Azure Platform - Jonathan Wong
Windows Azure Platform - Jonathan WongWindows Azure Platform - Jonathan Wong
Windows Azure Platform - Jonathan Wong
 
Azure Overview Csco
Azure Overview CscoAzure Overview Csco
Azure Overview Csco
 
Understanding IaaS Requirements & Design Cloud
Understanding IaaS Requirements & Design CloudUnderstanding IaaS Requirements & Design Cloud
Understanding IaaS Requirements & Design Cloud
 
The WebRTC Continuum - The Next Wave
The WebRTC Continuum - The Next WaveThe WebRTC Continuum - The Next Wave
The WebRTC Continuum - The Next Wave
 
Building Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data GridsBuilding Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data Grids
 
Brocade vADC Portfolio Overview 2016
Brocade vADC Portfolio Overview 2016Brocade vADC Portfolio Overview 2016
Brocade vADC Portfolio Overview 2016
 
Azure Overview Business Model Overview
Azure Overview Business Model OverviewAzure Overview Business Model Overview
Azure Overview Business Model Overview
 
Modern Web Applications
Modern Web ApplicationsModern Web Applications
Modern Web Applications
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone Developer
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
 

Kürzlich hochgeladen

UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 

Kürzlich hochgeladen (20)

201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 

WebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SF

  • 1. WebSocket Perspectives and Vision for the Future Frank Greco - @frankgreco Director of Technology, Kaazing Oct 2013
  • 2. Outline §  Brief Background on WebSocket §  Layered Approach to Web Protocols §  The Web beyond the Browser – XaaS §  The Internet of Things and WebSocket §  Demos © 2013 Kaazing Corporation
  • 3. Me… §  §  §  §  §  §  §  Director of Technology @ Kaazing Chairman NYJavaSIG (javasig.com) Largest Java UG in North America 7,500+ members Chair NYHTML5 1,500+ members Email: frank.greco@kaazing.com Twitter: @frankgreco Yell: “Hey Frank!” © 2013 Kaazing Corporation
  • 4. Welcome HTML5 (aka The New Web) §  §  §  §  §  Users are Demanding more from Apps UI/UX Requirements are more sophisticated Browser Enhancements and Evolution API Explosion Web no longer just about Documents… even partial or pseudo documents The New Web is a Programmatic Foundation for Rich, Reliable and Really Cool Apps © 2013 Kaazing Corporation
  • 5. Welcome HTML5 (aka The New Web) §  §  §  §  §  Users are Demanding more from Apps UI/UX Requirements are more sophisticated Browser Enhancements and Evolution API Explosion Web no longer just about Documents… even partial or pseudo documents The New Web is a Programmatic Foundation for Rich, Reliable and Really Cool Apps But… © 2013 Kaazing Corporation
  • 6. HTTP – Not Designed for an Event-Driven World… §  Designed for document transfer -  §  Bidirectional, but half-duplex -  §  Short-lived Request / Response interaction Traffic flows in only one direction at a time Stateless -  Large amounts of metadata resent for each request Yes, HTTP 2.0 will be better, but the Web was not originally designed for “real-time”, event-based services… © 2013 Kaazing Corporation
  • 7. WebSocket •  •  •  •  •  •  •  •  •  “Real-Time”, bi-directional connectivity IETF Protocol - RFC 6455 – Dec 2011 W3C API Easily add event-based capability to web apps Avoids polling (and resource consumption) Avoids HTTP meta-data overhead Shares port with HTTP (80/443) Peer protocol to HTTP (both use TCP) The Most Important API in “HTML5” © 2013 Kaazing Corporation
  • 8. WebSocket Standards §  IETF Formal Protocol (RFC 6455) -  -  §  Event-driven JavaScript API Full-duplex communication protocol W3C API – Candidate Recommendation -  §  Java JSR 356 http://www.w3.org/TR/websockets/ Integrates HTTP addressing -  ws://yourcompany.com/collaboration_svc -  wss://anothercompany.com/marketdata_svc Traverses firewalls, proxies, routers securely §  Text and Binary §  Leverages Cross-Origin Resource Sharing (CORS) §  © 2013 Kaazing Corporation
  • 9. The WebSocket Handshake © 2013 Kaazing Corporation
  • 10. WebSocket Frames §  §  §  Frames have a few header bytes Data may be text or binary Frames from client to server are masked (XORed w/ random value) to avoid black hats with old proxies §  Use TLS in production – avoids a lot of issues… © 2013 Kaazing Corporation
  • 11. What WebSocket is Not •  It is not a New AJAX AJAX was a lovable hack •  It is not a Push mechanism WebSocket is full-duplex, bi-directional •  It is not a Messaging system It’s an agnostic wire protocol It’s a low-level transport API •  It is not a Replacement for HTTP HTTP is still great for static, cacheable info © 2013 Kaazing Corporation
  • 12. WebSocket Projects, OSS, Vendors •  •  •  •  •  •  •  •  •  •  •  •  •  Kaazing Node.js/socket.io/SockJS/engine.io ActiveMQ Tomcat Jetty Oracle Glassfish Java EE – JSR 356 Play Framework – Reactive Apps Rabbit MQ JBoss IIS/ASP .NET 4.5 PHP, Objective-C, Ruby, Python, C/C++, JVM-langs… Many more… © 2013 Kaazing Corporation
  • 13. For Real-Time, Event-based Web Communication… Legacy HTTP vs. WebSocket Seems like a no-brainer for most apps… © 2013 Kaazing Corporation
  • 14. HTML5 WebSocket API Make sure WS is open before usage… J © 2013 Kaazing Corporation
  • 15. HTML5 WebSocket API But… Dealing with WebSocket is like dealing with TCP. It’s a streams-based model. You need to understand how to handle streams-based data over the wire. e.g., How do I do publish/subscribe? © 2013 Kaazing Corporation
  • 16. What is Missing? Where is the Application-level Protocol? Who handles retries? How do we handle publish/ subscribe semantics? How do we handle market data? How do I handle entitlements? ACL? © 2013 Kaazing Corporation How can we guarantee delivery? What do we do with slow consumers, last value cache, etc? What if the client is not currently active? What about partial data?
  • 17. But wait… Protocol Layering is Possible! Whoa… Its just like TCP! Huzzah! Browser and Native Applications JMS XMPP AMQP B2B FTP VNC WebSocket TCP Internet WebSocket Gateway © 2013 Kaazing Corporation WebSocket Gateway mktdata etc
  • 18. Higher Level APIs (over WebSocket) for JavaScript So if you can layer application protocols and APIs over WebSocket, what do you have? •  •  •  •  •  •  •  •  •  •  Easier WebSocket programmability Event-driven applications over the web Event-driven APIs over the web Not necessary to open non-standard ports Web infrastructure now truly “disappears” Reduction in complexity Further opportunities to innovate Mobile + cloud + HTML5/WebSocket Internet of Things -> Web of Things “Imagination is Everything” © 2013 Kaazing Corporation
  • 19. Higher Level APIs Reduces Complexity Innovation Simplicity is a Useful Abstraction! Simplicity enables Innovation Complexity © 2013 Kaazing Corporation
  • 20. Anything Else Missing? Other Considerations for the Real-World… Must handle unfriendly network intermediaries Need to handle multiple WS versions Has to work in multiple DMZs What about multiple (and legacy) browser versions? Bandwidth management Concerns about open ports with back-end service Can’t have business logic in the DMZ Need highavailability topology AuthN/AuthZ Native, HTML5 and has to work multiple times hybrid environments Services architecture XaaS integration – the needs to be consistent Web beyond the browser Other language libs Integrate easily with non-messaging services All things you need for a real enterprise app © 2013 Kaazing Corporation
  • 21. Futures What’s next for WebSocket? © 2013 Kaazing Corporation
  • 22. Explosion of Open Web APIs §  APIs from everywhere §  Over 10K public APIs and even more Mashups -  -  programmableweb.com/apis/directory Amazon, Facebook, LinkedIn, AT&T, Google, Microsoft, NYTimes, Orange, SalesForce, Telefonica, Twitter, Visa, Vodafone, Bloomberg, NYSE, Thomson-Reuters, etc. §  Over time, more will be event-based – NoREST? §  Mashape.com, APIhub.com §  Enterprise and B2B APIs §  Services… Services… Services… © 2013 Kaazing Corporation
  • 23. Industry View © 2013 Kaazing Corporation
  • 24. Event-based XaaS Integration as a Service Monitoring as a Service Governance as a Service Identity as a Service WAN Optimization as a Service Data Center as a Service CDN as a Service Sentiment Analysis as a Service Risk Analytics as a Service Enterprise Messaging as a Service EAI as a Service © 2013 Kaazing Corporation Windows Desktop as a Service Network as a Service Trade Clearance as a Service Database as a Service Security as a Service Testing as a Service Notification as a Service Backup as a Service Auditing as a Service Analytics as a Service Telephony as a Service
  • 25. History Repeats Itself RPC REST Asynchronous RPC Asynchronous REST Messaging Messaging ESB ISB Enterprise Web •  Can wait for response •  Tight coupling •  Centralized business processes •  Vertical interaction •  Easy to understand (xact) •  Future response •  Loose coupling •  Independent business processes •  More complexity (xact) Did I mention History repeats itself?... © 2013 Kaazing Corporation
  • 26. Other Event-based (“real-time”) Systems? Music Presentation Communication Logistics Home Security Big Data Health Monitoring Intelligent Appliances © 2013 Kaazing Corporation Remote control Local Transportation Risk Management Monitoring/ Management
  • 27. Demos Robin Zimmermann Robin.Zimmermann@kaazing.com, @robinzim §  §  §  §  © 2013 Kaazing Corporation Prashant Khanal Software Engineer – Kaazing Prashant.Khanal@kaazing.com Twitter: @ipras §  §  §  §  David Witherspoon Software Engineer – Kaazing David.Witherspoon@kaazing.com Twitter: @dpwspoon