SlideShare a Scribd company logo
1 of 40
Download to read offline
API Design and WebSocket 
WoT Next? 
@frankgreco
Background 
§ Director of Technology @ Kaazing 
§ Chairman NYJavaSIG (javasig.com) 
§ Largest JUG in North America 
8,000+ members 
§ Financial Services, Architecture, Cloud 
§ frank.greco@kaazing.com, @frankgreco
A Primary Tenet of Computing 
History 
History 
If History Repeats Itself, Is There No Future?
A Trip Down Memory Lane… 
In the beginning…
Enterprise – “inside the firewall” (1980’s – early 90’s) 
tcp 
Client-Server
Web – “over the firewall” (early 90’s – 2011) 
http tcp 
web server 
and/or 
app server 
app protocols 
Not efficient or effective for event-based systems…
But Modern Applications are Dynamic and Event-based 
FX trading 
Monitoring 
Stock trading Utilities trading 
XaaS 
Logistics Notification Compliance 
Betting & bidding 
Voting In-store & online Collaboration
Legacy Web 
u Designed for document transfer – HTTP 
ü Short-lived Request / Response interaction 
u Bidirectional, but half-duplex 
ü Traffic flows in only one direction at a time 
u Stateless 
ü Large amounts of metadata resent for each 
request 
The Web was not originally designed for 
“real-time”, event-based services…
WebSocket – “TCP for the Web” 
u IETF Protocol and W3C JavaScript API for real-time, 
bi-directional, always-on connections 
u RFC 6455 – Dec 2011 
u Easily add event-based data to web apps 
ü ws://mycompany.com/collaboration_svc 
ü wss://anothercompany.com/marketdata 
u Avoids polling 
u Avoids HTTP meta-data overhead 
u Shares port with HTTP (80/443) 
u Traverses Firewalls
The WebSocket Handshake
For Event-based Web Communication… 
Legacy HTTP vs WebSocket 
http:// ws:// 
u Application-level Socket over the Web 
u Supported by all Modern Browsers 
u Event-based Applications
W3C WebSocket JavaScript API
W3C WebSocket JavaScript API 
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?
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 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? 
How do I handle 
entitlements? ACL?
Browser and Native Applications 
JMS XMPP AMQP B2B FTP VNC MQTT etc 
WebSocket 
TCP/IP 
Internet 
WebSocket 
Gateway 
WebSocket 
Gateway 
Protocol Layering is Possible 
WebSocket is a 
Transport layer
Simplicity is a 
Useful 
Abstraction! 
Simplicity enables 
Innovation 
Complexity 
Innovation 
Higher Level APIs Reduce Complexity
Higher Level APIs (over WebSocket) for JavaScript 
So if you can layer application protocols and 
APIs over WebSocket, what do you have? 
u Easier WebSocket programmability 
u Event-driven applications over the web 
u Event-driven APIs over the web 
u Not necessary to open non-standard ports 
u Web infrastructure now truly “disappears” 
u Reduction in complexity 
u Further opportunities to innovate 
u Mobile + cloud + HTML5/WebSocket 
u Internet of Things -> Web of Things 
u “Imagination is Everything”
Publish/Subscribe 
Java Message Service (JMS) 
over 
WebSocket 
For Example…
Java Message Service (JMS) 
u Java EE Message Oriented Middleware 
u JMS 1.0 2001, JMS 1.1 2002, JMS 2.0 2013 
u Asynchronous Messaging vs. RPC 
u Loosely coupled vs. Tightly coupled 
u Pub/Sub, Topics, Queues 
u Transactions, Reliable
Basic JMS 
conn = createConnection(); 
sess = conn.createSession(); 
topic = jndiContext.lookup(topic); 
pub = sess.createProducer(topic); 
pub.send(“hey Frank”); 
conn = createConnection(); 
sess = conn.createSession(); 
topic = jndiContext.lookup(topic); 
sub = sess.createConsumer(topic); 
sub.setMessageListener(this); 
… 
public void onMessage(Message m) { 
String s = m.getText(); 
… do stuff… 
} 
conn = createConnection(); 
sess = conn.createSession(); 
topic = jndiContext.lookup(topic); 
sub = sess.createConsumer(topic); 
sub.setMessageListener(this); 
… 
public void onMessage(Message m) { 
String s = m.getText(); 
… do stuff… 
} 
conn = createConnection(); 
sess = conn.createSession(); 
topic = jndiContext.lookup(topic); 
sub = sess.createConsumer(topic); 
sub.setMessageListener(this); 
… 
public void onMessage(Message m) { 
String s = m.getText(); 
… do stuff… 
} 
msg 
broker
JMS Over the Web (JavaScript) 
Browser app - 100 msg/sec 
over port 80/443
What WebSocket is Not 
u It is not a New AJAX 
AJAX was a lovable hack 
u It is not a Push mechanism 
WebSocket is full-duplex, bi-directional 
u It is not a Messaging system 
It’s an agnostic wire protocol 
It’s a low-level transport API 
u It is not a Replacement for HTTP 
HTTP is still great for static, cacheable info
What’s next for WebSocket?
Internet of Things (IoT) 
+ 
Heterogeneity + Scale + Usability 
Futures
The World is Naturally Event-based (“real-time”) 
Presentation Music 
Communication 
Logistics 
Big 
Data 
Risk 
Management 
Home 
Security 
Health 
Monitoring 
Intelligent 
Appliances 
Local 
Transportation 
Monitoring/ 
Management 
Remote 
control
Let’s Take 1 Step Back to go 2 Steps Ahead… 
u Internet – Global system of interconnected networks 
that use IP to communicate 
u Internetworking – Connecting one network with another 
through a series of Gateways that provide a common 
method of communication
The Web 
u A popular application service on the Internet 
u Based on TCP/IP 
u Advantages 
§ Application deployment simplified – URI 
§ Interoperable open standards and specifications 
§ Ease of programmability – scripting 
§ Global reach and Economy of scale 
§ Accessed by ubiquitous Browsers and also non-Browsers 
u Two major protocols 
HTTP (1988/1999) and WebSocket (2007/2011)
The Hidden Web – Most of the Web is Not Visible 
browsers 
APIs 
http://thumbs.dreamstime.com/x/iceberg-23503494.jpg
Now… IoT, IIoT and M2M 
u A riff on “Ubiquitous Computing” (“Pervasive”) 
• Mark Weisner PARC 1988 
u Its early so there’s different definitions 
• Similar to early days of Cloud Computing 
u M2M has been around for decades. 
• Primarily proprietary embedded systems and typically 
point-to-point (RPC) 
u IoT/IIoT (Industrial IoT) 
• Adds Internet connectivity 
• Networks of M2M systems connected via IP
IoT/IIoT – Connectivity isn’t Sufficient 
u No formal API standards 
u Many protocol standards – interoperability low 
u No common, wide-reaching frameworks 
u No composition possibilities 
u Difficult to leverage economies of scale 
u Barrier to entry is high for millions of app developers 
u Also… we’re in a cloud, mobile, web api world
u IoT – Internet of Things 
• Embedded computing endowed with Internet connectivity 
u WoT – Web of Things 
• Application and Services layer over IoT 
Developers! 
u Apply the benefits of the Web to IoT 
u WoT is a uniform interface to access IoT functionality 
u Provides the abstraction for control/monitoring (sensors/ 
actuators) 
u Accelerates innovation 
u Deployment, development, interoperability, economy of 
scale… 
IoT 
WoT 
Here’s Where the Web Comes In
But Is HTTP the Right Choice? 
u Disadvantages of HTTP Request/Response 
u Lack of resiliency and robustness 
u Enterprise events retrieved by resource intensive polling 
techniques 
• Much bandwidth is wasted 
• Information can be delayed 
u Composite services brittle and lack transactionality 
u Enterprises learned advantages of ESB 10+ years ago 
u See failures of CORBA, Sun RPC, etc. 
u Clumsy AJAX/Comet workarounds to simulate real-time
History Repeats Itself… 
RPC 
Asynchronous 
RPC 
Messaging 
REST 
Asynchronous 
REST 
Messaging 
ESB ISB? 
Enterprise Web/WoT 
• 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?...
The Message is the Medium 
“…terse, self-classified 
messages, networking overhead 
isolated to a specialized tier of 
devices, and publish/subscribe 
relationships are the only way 
to fully distill the power of the 
coming Internet of Things” – 
Francis daCosta
Typically an App 
Server and DB 
App Server is 
probably not the 
right 
architecture 
Data Flow – Human Web vs WoT 
Human 
Web 
WoT 
Large data to client 
Small data to server 
Do human-readable protocols make sense for non-humans?
GW 
GW 
GW 
IoT/IIoT 
WoT 
WoT 
WoT 
Event Gateway Architecture
Event Gateway Architecture – Future Directions 
GW 
GW 
GW 
GW 
GW 
GW 
Aggregator nodes 
GW 
• Scalability 
• Querying 
• Performance 
• Manageability 
• Composition 
• Circles of Trust 
• Event processing 
• CDN++
Demos 
Click to Edit Master Title Style
Thank You! 
@frankgreco

More Related Content

What's hot

Google Cloud Platform (GCP)
Google Cloud Platform (GCP)Google Cloud Platform (GCP)
Google Cloud Platform (GCP)Chetan Sharma
 
Azure architecture
Azure architectureAzure architecture
Azure architectureAmal Dev
 
DEV323_Introduction to the AWS CLI
DEV323_Introduction to the AWS CLIDEV323_Introduction to the AWS CLI
DEV323_Introduction to the AWS CLIAmazon Web Services
 
Cloud Computing.pptx
Cloud Computing.pptxCloud Computing.pptx
Cloud Computing.pptxSubid Biswas
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud PlatformSujai Prakasam
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices Bozhidar Bozhanov
 
AWS Snowball Edge and AWS Greengrass for Fun and Profit (STG388) - AWS re:Inv...
AWS Snowball Edge and AWS Greengrass for Fun and Profit (STG388) - AWS re:Inv...AWS Snowball Edge and AWS Greengrass for Fun and Profit (STG388) - AWS re:Inv...
AWS Snowball Edge and AWS Greengrass for Fun and Profit (STG388) - AWS re:Inv...Amazon Web Services
 
Monitoring real-life Azure applications: When to use what and why
Monitoring real-life Azure applications: When to use what and whyMonitoring real-life Azure applications: When to use what and why
Monitoring real-life Azure applications: When to use what and whyKarl Ots
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platformdhruv_chaudhari
 
Introduction to GCP (Google Cloud Platform)
Introduction to GCP (Google Cloud Platform)Introduction to GCP (Google Cloud Platform)
Introduction to GCP (Google Cloud Platform)Pulkit Gupta
 
Cloud Migration Strategy and Best Practices
Cloud Migration Strategy and Best PracticesCloud Migration Strategy and Best Practices
Cloud Migration Strategy and Best PracticesQBurst
 
Introduction to Amazon Elastic File System (EFS)
Introduction to Amazon Elastic File System (EFS)Introduction to Amazon Elastic File System (EFS)
Introduction to Amazon Elastic File System (EFS)Amazon Web Services
 
Understanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformDr. Ketan Parmar
 
Building an E-Commerce Business on AWS
Building an E-Commerce Business on AWSBuilding an E-Commerce Business on AWS
Building an E-Commerce Business on AWSAmazon Web Services
 

What's hot (20)

AWS PPT.pptx
AWS PPT.pptxAWS PPT.pptx
AWS PPT.pptx
 
Google Cloud Platform (GCP)
Google Cloud Platform (GCP)Google Cloud Platform (GCP)
Google Cloud Platform (GCP)
 
Azure architecture
Azure architectureAzure architecture
Azure architecture
 
DEV323_Introduction to the AWS CLI
DEV323_Introduction to the AWS CLIDEV323_Introduction to the AWS CLI
DEV323_Introduction to the AWS CLI
 
Cloud Computing.pptx
Cloud Computing.pptxCloud Computing.pptx
Cloud Computing.pptx
 
Azure storage
Azure storageAzure storage
Azure storage
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
 
Cloud Migration Workshop
Cloud Migration WorkshopCloud Migration Workshop
Cloud Migration Workshop
 
AWS Elastic Compute Cloud (EC2)
AWS Elastic Compute Cloud (EC2) AWS Elastic Compute Cloud (EC2)
AWS Elastic Compute Cloud (EC2)
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
Aws introduction
Aws introductionAws introduction
Aws introduction
 
AWS Snowball Edge and AWS Greengrass for Fun and Profit (STG388) - AWS re:Inv...
AWS Snowball Edge and AWS Greengrass for Fun and Profit (STG388) - AWS re:Inv...AWS Snowball Edge and AWS Greengrass for Fun and Profit (STG388) - AWS re:Inv...
AWS Snowball Edge and AWS Greengrass for Fun and Profit (STG388) - AWS re:Inv...
 
Monitoring real-life Azure applications: When to use what and why
Monitoring real-life Azure applications: When to use what and whyMonitoring real-life Azure applications: When to use what and why
Monitoring real-life Azure applications: When to use what and why
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
 
Introduction to GCP (Google Cloud Platform)
Introduction to GCP (Google Cloud Platform)Introduction to GCP (Google Cloud Platform)
Introduction to GCP (Google Cloud Platform)
 
Cloud Migration Strategy and Best Practices
Cloud Migration Strategy and Best PracticesCloud Migration Strategy and Best Practices
Cloud Migration Strategy and Best Practices
 
Introduction to Amazon Elastic File System (EFS)
Introduction to Amazon Elastic File System (EFS)Introduction to Amazon Elastic File System (EFS)
Introduction to Amazon Elastic File System (EFS)
 
Understanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud PlatformUnderstanding cloud with Google Cloud Platform
Understanding cloud with Google Cloud Platform
 
Azure Cloud PPT
Azure Cloud PPTAzure Cloud PPT
Azure Cloud PPT
 
Building an E-Commerce Business on AWS
Building an E-Commerce Business on AWSBuilding an E-Commerce Business on AWS
Building an E-Commerce Business on AWS
 

Viewers also liked

Node.js Event Emitter
Node.js Event EmitterNode.js Event Emitter
Node.js Event EmitterEyal Vardi
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkFabio Tiriticco
 
webMethods World: How Can You Innovate Even Faster With the Latest webMethods...
webMethods World: How Can You Innovate Even Faster With the Latest webMethods...webMethods World: How Can You Innovate Even Faster With the Latest webMethods...
webMethods World: How Can You Innovate Even Faster With the Latest webMethods...Software AG
 
MQTT簡介與使用開放原始碼
MQTT簡介與使用開放原始碼MQTT簡介與使用開放原始碼
MQTT簡介與使用開放原始碼Wei-Tsung Su
 
WebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceWebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceRick Hightower
 
Node.js Spplication Scaling
Node.js Spplication ScalingNode.js Spplication Scaling
Node.js Spplication ScalingEyal Vardi
 
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over WebsocketIntroduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocketsametmax
 

Viewers also liked (7)

Node.js Event Emitter
Node.js Event EmitterNode.js Event Emitter
Node.js Event Emitter
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 
webMethods World: How Can You Innovate Even Faster With the Latest webMethods...
webMethods World: How Can You Innovate Even Faster With the Latest webMethods...webMethods World: How Can You Innovate Even Faster With the Latest webMethods...
webMethods World: How Can You Innovate Even Faster With the Latest webMethods...
 
MQTT簡介與使用開放原始碼
MQTT簡介與使用開放原始碼MQTT簡介與使用開放原始碼
MQTT簡介與使用開放原始碼
 
WebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST MicroserviceWebSocket MicroService vs. REST Microservice
WebSocket MicroService vs. REST Microservice
 
Node.js Spplication Scaling
Node.js Spplication ScalingNode.js Spplication Scaling
Node.js Spplication Scaling
 
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over WebsocketIntroduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
Introduction to WAMP, a protocol enabling PUB/SUB and RPC over Websocket
 

Similar to API Design and WebSocket

The Web of Things
The Web of ThingsThe Web of Things
The Web of ThingsFrank Greco
 
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
 
Past, Present and Future of WebSocket - HTML5DevConf May 2014
Past, Present and Future of WebSocket - HTML5DevConf May 2014Past, Present and Future of WebSocket - HTML5DevConf May 2014
Past, Present and Future of WebSocket - HTML5DevConf May 2014Frank Greco
 
Web of Things (wiring web objects with Node-RED)
Web of Things (wiring web objects with Node-RED)Web of Things (wiring web objects with Node-RED)
Web of Things (wiring web objects with Node-RED)Francesco Collova'
 
HTML5 WebSocket: The New Network Stack for the Web
HTML5 WebSocket: The New Network Stack for the WebHTML5 WebSocket: The New Network Stack for the Web
HTML5 WebSocket: The New Network Stack for the WebPeter Lubbers
 
IoTaConf 2014 - IoT Connectivity, Standards, and Architecture
IoTaConf 2014 - IoT Connectivity, Standards, and ArchitectureIoTaConf 2014 - IoT Connectivity, Standards, and Architecture
IoTaConf 2014 - IoT Connectivity, Standards, and ArchitectureTodd Montgomery
 
Ethernet base divice control
Ethernet base divice controlEthernet base divice control
Ethernet base divice controlBhushan Deore
 
Javauserguide
JavauserguideJavauserguide
Javauserguidemuniinb4u
 
Internetandjava
InternetandjavaInternetandjava
Internetandjavamuniinb4u
 
JavaInternetlearning
JavaInternetlearningJavaInternetlearning
JavaInternetlearningmuniinb4u
 
Internetandjava
InternetandjavaInternetandjava
Internetandjavamuniinb4u
 
WebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SF
WebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SFWebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SF
WebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SFFrank Greco
 
Web of Things - Connecting People and Objects on the Web
Web of Things - Connecting People and Objects on the WebWeb of Things - Connecting People and Objects on the Web
Web of Things - Connecting People and Objects on the WebDominique Guinard
 

Similar to API Design and WebSocket (20)

The Web of Things
The Web of ThingsThe Web of Things
The Web of Things
 
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
 
Past, Present and Future of WebSocket - HTML5DevConf May 2014
Past, Present and Future of WebSocket - HTML5DevConf May 2014Past, Present and Future of WebSocket - HTML5DevConf May 2014
Past, Present and Future of WebSocket - HTML5DevConf May 2014
 
Web of Things (wiring web objects with Node-RED)
Web of Things (wiring web objects with Node-RED)Web of Things (wiring web objects with Node-RED)
Web of Things (wiring web objects with Node-RED)
 
HTML5 WebSocket: The New Network Stack for the Web
HTML5 WebSocket: The New Network Stack for the WebHTML5 WebSocket: The New Network Stack for the Web
HTML5 WebSocket: The New Network Stack for the Web
 
IoTaConf 2014 - IoT Connectivity, Standards, and Architecture
IoTaConf 2014 - IoT Connectivity, Standards, and ArchitectureIoTaConf 2014 - IoT Connectivity, Standards, and Architecture
IoTaConf 2014 - IoT Connectivity, Standards, and Architecture
 
Ethernet base divice control
Ethernet base divice controlEthernet base divice control
Ethernet base divice control
 
Javauserguide
JavauserguideJavauserguide
Javauserguide
 
Internetandjava
InternetandjavaInternetandjava
Internetandjava
 
ppttips
ppttipsppttips
ppttips
 
ppttips
ppttipsppttips
ppttips
 
Java
JavaJava
Java
 
ppttips
ppttipsppttips
ppttips
 
JavaInternetlearning
JavaInternetlearningJavaInternetlearning
JavaInternetlearning
 
ppt tips
ppt tipsppt tips
ppt tips
 
ppttips
ppttipsppttips
ppttips
 
Internetandjava
InternetandjavaInternetandjava
Internetandjava
 
Cs2305 nol
Cs2305 nolCs2305 nol
Cs2305 nol
 
WebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SF
WebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SFWebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SF
WebSocket Perspectives and Vision for the Future - HTML5DevConf Oct 2013 SF
 
Web of Things - Connecting People and Objects on the Web
Web of Things - Connecting People and Objects on the WebWeb of Things - Connecting People and Objects on the Web
Web of Things - Connecting People and Objects on the Web
 

Recently uploaded

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...SOFTTECHHUB
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseWSO2
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxMarkSteadman7
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Paige Cruz
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxFIDO Alliance
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceIES VE
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityVictorSzoltysek
 

Recently uploaded (20)

DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 

API Design and WebSocket

  • 1. API Design and WebSocket WoT Next? @frankgreco
  • 2. Background § Director of Technology @ Kaazing § Chairman NYJavaSIG (javasig.com) § Largest JUG in North America 8,000+ members § Financial Services, Architecture, Cloud § frank.greco@kaazing.com, @frankgreco
  • 3. A Primary Tenet of Computing History History If History Repeats Itself, Is There No Future?
  • 4. A Trip Down Memory Lane… In the beginning…
  • 5. Enterprise – “inside the firewall” (1980’s – early 90’s) tcp Client-Server
  • 6. Web – “over the firewall” (early 90’s – 2011) http tcp web server and/or app server app protocols Not efficient or effective for event-based systems…
  • 7. But Modern Applications are Dynamic and Event-based FX trading Monitoring Stock trading Utilities trading XaaS Logistics Notification Compliance Betting & bidding Voting In-store & online Collaboration
  • 8. Legacy Web u Designed for document transfer – HTTP ü Short-lived Request / Response interaction u Bidirectional, but half-duplex ü Traffic flows in only one direction at a time u Stateless ü Large amounts of metadata resent for each request The Web was not originally designed for “real-time”, event-based services…
  • 9. WebSocket – “TCP for the Web” u IETF Protocol and W3C JavaScript API for real-time, bi-directional, always-on connections u RFC 6455 – Dec 2011 u Easily add event-based data to web apps ü ws://mycompany.com/collaboration_svc ü wss://anothercompany.com/marketdata u Avoids polling u Avoids HTTP meta-data overhead u Shares port with HTTP (80/443) u Traverses Firewalls
  • 11. For Event-based Web Communication… Legacy HTTP vs WebSocket http:// ws:// u Application-level Socket over the Web u Supported by all Modern Browsers u Event-based Applications
  • 13. W3C WebSocket JavaScript API 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?
  • 14. 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 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? How do I handle entitlements? ACL?
  • 15. Browser and Native Applications JMS XMPP AMQP B2B FTP VNC MQTT etc WebSocket TCP/IP Internet WebSocket Gateway WebSocket Gateway Protocol Layering is Possible WebSocket is a Transport layer
  • 16. Simplicity is a Useful Abstraction! Simplicity enables Innovation Complexity Innovation Higher Level APIs Reduce Complexity
  • 17. Higher Level APIs (over WebSocket) for JavaScript So if you can layer application protocols and APIs over WebSocket, what do you have? u Easier WebSocket programmability u Event-driven applications over the web u Event-driven APIs over the web u Not necessary to open non-standard ports u Web infrastructure now truly “disappears” u Reduction in complexity u Further opportunities to innovate u Mobile + cloud + HTML5/WebSocket u Internet of Things -> Web of Things u “Imagination is Everything”
  • 18. Publish/Subscribe Java Message Service (JMS) over WebSocket For Example…
  • 19. Java Message Service (JMS) u Java EE Message Oriented Middleware u JMS 1.0 2001, JMS 1.1 2002, JMS 2.0 2013 u Asynchronous Messaging vs. RPC u Loosely coupled vs. Tightly coupled u Pub/Sub, Topics, Queues u Transactions, Reliable
  • 20. Basic JMS conn = createConnection(); sess = conn.createSession(); topic = jndiContext.lookup(topic); pub = sess.createProducer(topic); pub.send(“hey Frank”); conn = createConnection(); sess = conn.createSession(); topic = jndiContext.lookup(topic); sub = sess.createConsumer(topic); sub.setMessageListener(this); … public void onMessage(Message m) { String s = m.getText(); … do stuff… } conn = createConnection(); sess = conn.createSession(); topic = jndiContext.lookup(topic); sub = sess.createConsumer(topic); sub.setMessageListener(this); … public void onMessage(Message m) { String s = m.getText(); … do stuff… } conn = createConnection(); sess = conn.createSession(); topic = jndiContext.lookup(topic); sub = sess.createConsumer(topic); sub.setMessageListener(this); … public void onMessage(Message m) { String s = m.getText(); … do stuff… } msg broker
  • 21. JMS Over the Web (JavaScript) Browser app - 100 msg/sec over port 80/443
  • 22. What WebSocket is Not u It is not a New AJAX AJAX was a lovable hack u It is not a Push mechanism WebSocket is full-duplex, bi-directional u It is not a Messaging system It’s an agnostic wire protocol It’s a low-level transport API u It is not a Replacement for HTTP HTTP is still great for static, cacheable info
  • 23. What’s next for WebSocket?
  • 24. Internet of Things (IoT) + Heterogeneity + Scale + Usability Futures
  • 25. The World is Naturally Event-based (“real-time”) Presentation Music Communication Logistics Big Data Risk Management Home Security Health Monitoring Intelligent Appliances Local Transportation Monitoring/ Management Remote control
  • 26.
  • 27. Let’s Take 1 Step Back to go 2 Steps Ahead… u Internet – Global system of interconnected networks that use IP to communicate u Internetworking – Connecting one network with another through a series of Gateways that provide a common method of communication
  • 28. The Web u A popular application service on the Internet u Based on TCP/IP u Advantages § Application deployment simplified – URI § Interoperable open standards and specifications § Ease of programmability – scripting § Global reach and Economy of scale § Accessed by ubiquitous Browsers and also non-Browsers u Two major protocols HTTP (1988/1999) and WebSocket (2007/2011)
  • 29. The Hidden Web – Most of the Web is Not Visible browsers APIs http://thumbs.dreamstime.com/x/iceberg-23503494.jpg
  • 30. Now… IoT, IIoT and M2M u A riff on “Ubiquitous Computing” (“Pervasive”) • Mark Weisner PARC 1988 u Its early so there’s different definitions • Similar to early days of Cloud Computing u M2M has been around for decades. • Primarily proprietary embedded systems and typically point-to-point (RPC) u IoT/IIoT (Industrial IoT) • Adds Internet connectivity • Networks of M2M systems connected via IP
  • 31. IoT/IIoT – Connectivity isn’t Sufficient u No formal API standards u Many protocol standards – interoperability low u No common, wide-reaching frameworks u No composition possibilities u Difficult to leverage economies of scale u Barrier to entry is high for millions of app developers u Also… we’re in a cloud, mobile, web api world
  • 32. u IoT – Internet of Things • Embedded computing endowed with Internet connectivity u WoT – Web of Things • Application and Services layer over IoT Developers! u Apply the benefits of the Web to IoT u WoT is a uniform interface to access IoT functionality u Provides the abstraction for control/monitoring (sensors/ actuators) u Accelerates innovation u Deployment, development, interoperability, economy of scale… IoT WoT Here’s Where the Web Comes In
  • 33. But Is HTTP the Right Choice? u Disadvantages of HTTP Request/Response u Lack of resiliency and robustness u Enterprise events retrieved by resource intensive polling techniques • Much bandwidth is wasted • Information can be delayed u Composite services brittle and lack transactionality u Enterprises learned advantages of ESB 10+ years ago u See failures of CORBA, Sun RPC, etc. u Clumsy AJAX/Comet workarounds to simulate real-time
  • 34. History Repeats Itself… RPC Asynchronous RPC Messaging REST Asynchronous REST Messaging ESB ISB? Enterprise Web/WoT • 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?...
  • 35. The Message is the Medium “…terse, self-classified messages, networking overhead isolated to a specialized tier of devices, and publish/subscribe relationships are the only way to fully distill the power of the coming Internet of Things” – Francis daCosta
  • 36. Typically an App Server and DB App Server is probably not the right architecture Data Flow – Human Web vs WoT Human Web WoT Large data to client Small data to server Do human-readable protocols make sense for non-humans?
  • 37. GW GW GW IoT/IIoT WoT WoT WoT Event Gateway Architecture
  • 38. Event Gateway Architecture – Future Directions GW GW GW GW GW GW Aggregator nodes GW • Scalability • Querying • Performance • Manageability • Composition • Circles of Trust • Event processing • CDN++
  • 39. Demos Click to Edit Master Title Style