SlideShare a Scribd company logo
Enterprise Application
Performance
Server Push Technologies - WebSockets
Solution Architect - Experts Team
Tito Moreira
Performance Hurdles
• Application code
○ Too many accesses to database
○ Poor client-side programming (Client-side polling, JS, CSS, HTML)
• Infrastructure
○ Database
○ Network
Long polling (pull)
Pull - Long Polling using Web requests
Since HTTP is stateless,
the Session and other data
might need to be read from
the database
Pull vs Push technologies
Information about
the connection
(IP, port and
identifier of the
recipient) is stored
in memory
(stateful)
WebSockets
A brief History of WebSockets...
1973
TCP/IP
design
1969
ARPANET
1989
WWW, HTML,
HTTP created
by CERN to
reference
documents in
the Internet
2009
1st draft of
WebSocket
protocol
(hixie)
2010
Chrome,
Safari,
Firefox,
Opera adds
support for
WebSockets
2011 Dec
WebSocket
protocol gets
Internet
Standard
classification.
RFC
published
1997
HTTP/1.1
RFC
published
2015
HTTP/2.0
RFC
published
(TCP
connection
reuse)
Time
WebSocket (RFC 6455) Browser support
WebSockets
• WebSocket is a protocol
○ Allows two-way communication between a client and a server
over TCP/IP
○ The goal of WebSockets is to provide a mechanism to browser
applications that need two-way communication with servers to
avoid opening multiple HTTP connections or using long
polling (AJAX, iframes, etc)
HTTP requests vs WebSockets
Client Server Client Server
Bi-directional messages
Connection Lifecycle
(TCP/IP)
HTTP/REST requests WebSockets
For requests
not sent in the
same TCP
connection
ping! (0x09)
pong!
(0xA)
close
(0x8)
WebSocket vs standard HTTP requests
Source: http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/
• Constant payload 1KB, increasing number of messages
WebSocket vs standard HTTP requests
Source: http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/
• Performance with ≠ payload size for constant number of messages (1000)
WebSockets
• WebSocket handshake is initiated from an HTTP request
• Sub-protocols can be negotiated
When to use Server Push technologies
(WebSockets) ?
Recommended uses for WebSockets
• To implement Functional Requirements
○ When Web Apps need server data that is constantly changing
■ High volatile data change events (Tickers, Price updates, Real Time data, etc)
■ Results from background processing tasks
■ User notifications
■ Communication between Users (collaborative scenarios)
○ Present “small” bits of information to Users as soon it is available
■ Auction prices, Sports updates, tickers, location based data, etc
Recommended uses for WebSockets
• To address Architectural restrictions
○ To get around the infamous 6 connections per host limit.
○ To allow Browsers to access local resources (native)
■ Browser ActiveX/Java plugin migrations
■ Installation of a local service (with a WebSocket server) for providing Biometric
authorization or other events
How to integrate WebSockets
with OutSystems?
For Cloud based WebSocket services
• Pick a WebSocket Cloud service that exposes a server-side API.
■ The Server-side API allows OutSystems Apps to push data
• Usually provide authorization (token based) and transport
security (TLS/SSL)
■ Secure WebSockets (WSS)
• Choose a Cloud Service that implements fallback mechanisms
■ The Client-side script should have fallback to older (more
mainstream) technologies
• Pick the Cloud service that has the lower latency
■ For your target Users
■ For the OS Infrastructure
Integration with OutSystems
Cloud Pusher.com service (example)
Client
(Browser)
Standard
AJAX or
Page view
request
(HTTP 1.1)
Front End
Load Balancer
OutSystems FrontEnd
Servers
WebSocket
Server
(pusher.com)
Pusher.com uses
WS/WSS protocol
To push data
to clients
Client
(Browser)
By using Pusher server-side REST
API, a background process can
publish data to a Client or group of
Clients
Pusher client script
Client
(Browser)
Pusher client script
Client
(Browser)
Pusher client script
HTTP Web request
WebSocket protocol
REST API request
Source: http://www.asp.net/signalr/overview/performance/scaleout-in-signalr
Known WebSocket Cloud services
• Pusher
• PubNub
• Fanout (also works as Reverse Proxy)
• Google App Engine with Channel API
• Hydna
• Firebase + Fire# (server-side C# API)
• Azure Web Apps support WebSockets
...
For self-hosted WebSocket server
• The WebSocket cluster should be in a dedicated infrastructure
○ Don’t install WebSockets server software in the OS FrontEnd Servers
○ It has different resource needs (scales differently than OS FEs)
○ The WebSocket server maintenance and support tasks won’t affect OS
servers and vice-versa
○ Can be migrated to another environment (3rd Party Cloud services)
• Use a WebSocket server that exposes a REST service
○ OS apps will call this service to push data to browser clients
• Implement authorization (tokens or API keys)
○ WebSocket servers that are exposed to the public, should check for an
API Key or Token that is sent by the Client to verify authorized access.
Integration with OutSystems
Self-hosted HA SignalR (example)
Client
(Browser)
A background process can call an
ASP.NET Web API REST service
to publish data to a Client or
group of Clients
Standard AJAX or Page
view requests (HTTP 1.1)WS/WSS protocol
ASP.NET SignalR 2.0
WebSocket Servers
SQL Server Backplane
Load Balancer
Source: http://www.asp.net/signalr/overview/performance/scaleout-in-signalr
OutSystems FrontEnd
Servers
Client
(Browser)
SignalR client script
Client
(Browser)
SignalR client script
HTTP Web request
WebSocket protocol
REST API request
SQL Query
Known self-hosted WebSocket servers
• NodeJS
○ Socket.io, sockJS, FAYE, etc
• ASP.NET SignalR (>= Windows 2012 R2)
• IISNode (Yes! Node inside IIS on a ≠ App pool)
• Jetty (Java)
• websocketd (Linux only)
• SuperSocket (library for custom server in C#)
...
WebSockets considerations
• Compatibility problems with HTTP proxies
○ The WebSocket HTTP Upgrade (normally used for HTTP/SSL) request can be dropped by some (old)
Proxies, making it impossible to establish a connection.
• Security (to prevent man-in-the-middle) for WebSockets
○ Use TLS/SSL for the Web Applications. Most WebSocket frameworks will use the wss:// (TLS/SSL) for the
WebSocket connection too.
• DoS
○ Most Browsers impose a limit between 200-3000 WebSockets. A malicious Site can exhaust the max
connections of the Browser. It’s also possible for a client to DoS a server.
• Authorization/Authentication
○ The WebSocket protocol doesn’t handle authorization or authentication.
○ WebSocket opened from a page with auth doesn’t “automatically” receive any sort of auth
WebSockets considerations (cont.)
• Some WebSocket servers don’t allow cross site connections
although they can be configured (CORS)
○ SignalR (by default) checks Origin header to verify if the Script origin is the same
• Check that you are effectively using WebSockets instead of a
Pull fallback mechanism
○ Most frameworks will fallback quietly to Long Polling if the Browser or Server (SignalR)
don’t support the WebSocket protocol
○ Use Developer Browser tools to check if
WS protocol is effectively used
• Standard not implemented the same
way or not supported by all browsers
○ That’s why using an abstraction client framework (with fallback mechanism) is a good idea!
WebSockets in Action!
(demo)
We’ll be back in 5 min to answer
your questions
Thank you!

More Related Content

What's hot

Cyber Security –PPT
Cyber Security –PPTCyber Security –PPT
Cyber Security –PPTRajat Kumar
 
Cyber Security Fundamentals
Cyber Security FundamentalsCyber Security Fundamentals
Cyber Security Fundamentals
Apurv Singh Gautam
 
Application Security
Application SecurityApplication Security
Application Security
Reggie Niccolo Santos
 
GDPR and Security.pdf
GDPR and Security.pdfGDPR and Security.pdf
Certified Compliance Officer - Presentation Slides
Certified Compliance Officer - Presentation SlidesCertified Compliance Officer - Presentation Slides
Certified Compliance Officer - Presentation Slides
Asia Master Training آسيا ماسترز للتدريب والتطوير
 
Chapter 1 Security Framework
Chapter 1   Security FrameworkChapter 1   Security Framework
Chapter 1 Security Framework
Karthikeyan Dhayalan
 
OWASP Top 10 2021 What's New
OWASP Top 10 2021 What's NewOWASP Top 10 2021 What's New
OWASP Top 10 2021 What's New
Michael Furman
 
Understanding Your Attack Surface and Detecting & Mitigating External Threats
Understanding Your Attack Surface and Detecting & Mitigating External ThreatsUnderstanding Your Attack Surface and Detecting & Mitigating External Threats
Understanding Your Attack Surface and Detecting & Mitigating External Threats
Ulf Mattsson
 
Third-Party Risk Management (TPRM) | Risk Assessment Questionnaires
Third-Party Risk Management (TPRM) | Risk Assessment QuestionnairesThird-Party Risk Management (TPRM) | Risk Assessment Questionnaires
Third-Party Risk Management (TPRM) | Risk Assessment Questionnaires
Corporater
 
Vulnerability Management
Vulnerability ManagementVulnerability Management
Vulnerability Management
asherad
 
information security management
information security managementinformation security management
information security management
Gurpreetkaur838
 
[Ai in finance] AI in regulatory compliance, risk management, and auditing
[Ai in finance] AI in regulatory compliance, risk management, and auditing[Ai in finance] AI in regulatory compliance, risk management, and auditing
[Ai in finance] AI in regulatory compliance, risk management, and auditing
Natalino Busa
 
7 Software Development Security
7 Software Development Security7 Software Development Security
7 Software Development Security
Alfred Ouyang
 
Cyber Resilience
Cyber ResilienceCyber Resilience
Cyber Resilience
Ian-Edward Stafrace
 
Build an Information Security Strategy
Build an Information Security StrategyBuild an Information Security Strategy
Build an Information Security Strategy
Andrew Byers
 
Malware Static Analysis
Malware Static AnalysisMalware Static Analysis
Malware Static Analysis
Hossein Yavari
 
Chapter 3 security part i auditing operating systems and networks
Chapter 3 security part i  auditing operating systems and networksChapter 3 security part i  auditing operating systems and networks
Chapter 3 security part i auditing operating systems and networks
jayussuryawan
 
Cyber Security roadmap.pptx
Cyber Security roadmap.pptxCyber Security roadmap.pptx
Cyber Security roadmap.pptx
SandeepK707540
 
CISSP Prep: Ch 2. Security and Risk Management I (part 2)
CISSP Prep: Ch 2. Security and Risk Management I (part 2)CISSP Prep: Ch 2. Security and Risk Management I (part 2)
CISSP Prep: Ch 2. Security and Risk Management I (part 2)
Sam Bowne
 
CISSP Prep: Ch 1: Security Governance Through Principles and Policies
CISSP Prep: Ch 1: Security Governance Through Principles and PoliciesCISSP Prep: Ch 1: Security Governance Through Principles and Policies
CISSP Prep: Ch 1: Security Governance Through Principles and Policies
Sam Bowne
 

What's hot (20)

Cyber Security –PPT
Cyber Security –PPTCyber Security –PPT
Cyber Security –PPT
 
Cyber Security Fundamentals
Cyber Security FundamentalsCyber Security Fundamentals
Cyber Security Fundamentals
 
Application Security
Application SecurityApplication Security
Application Security
 
GDPR and Security.pdf
GDPR and Security.pdfGDPR and Security.pdf
GDPR and Security.pdf
 
Certified Compliance Officer - Presentation Slides
Certified Compliance Officer - Presentation SlidesCertified Compliance Officer - Presentation Slides
Certified Compliance Officer - Presentation Slides
 
Chapter 1 Security Framework
Chapter 1   Security FrameworkChapter 1   Security Framework
Chapter 1 Security Framework
 
OWASP Top 10 2021 What's New
OWASP Top 10 2021 What's NewOWASP Top 10 2021 What's New
OWASP Top 10 2021 What's New
 
Understanding Your Attack Surface and Detecting & Mitigating External Threats
Understanding Your Attack Surface and Detecting & Mitigating External ThreatsUnderstanding Your Attack Surface and Detecting & Mitigating External Threats
Understanding Your Attack Surface and Detecting & Mitigating External Threats
 
Third-Party Risk Management (TPRM) | Risk Assessment Questionnaires
Third-Party Risk Management (TPRM) | Risk Assessment QuestionnairesThird-Party Risk Management (TPRM) | Risk Assessment Questionnaires
Third-Party Risk Management (TPRM) | Risk Assessment Questionnaires
 
Vulnerability Management
Vulnerability ManagementVulnerability Management
Vulnerability Management
 
information security management
information security managementinformation security management
information security management
 
[Ai in finance] AI in regulatory compliance, risk management, and auditing
[Ai in finance] AI in regulatory compliance, risk management, and auditing[Ai in finance] AI in regulatory compliance, risk management, and auditing
[Ai in finance] AI in regulatory compliance, risk management, and auditing
 
7 Software Development Security
7 Software Development Security7 Software Development Security
7 Software Development Security
 
Cyber Resilience
Cyber ResilienceCyber Resilience
Cyber Resilience
 
Build an Information Security Strategy
Build an Information Security StrategyBuild an Information Security Strategy
Build an Information Security Strategy
 
Malware Static Analysis
Malware Static AnalysisMalware Static Analysis
Malware Static Analysis
 
Chapter 3 security part i auditing operating systems and networks
Chapter 3 security part i  auditing operating systems and networksChapter 3 security part i  auditing operating systems and networks
Chapter 3 security part i auditing operating systems and networks
 
Cyber Security roadmap.pptx
Cyber Security roadmap.pptxCyber Security roadmap.pptx
Cyber Security roadmap.pptx
 
CISSP Prep: Ch 2. Security and Risk Management I (part 2)
CISSP Prep: Ch 2. Security and Risk Management I (part 2)CISSP Prep: Ch 2. Security and Risk Management I (part 2)
CISSP Prep: Ch 2. Security and Risk Management I (part 2)
 
CISSP Prep: Ch 1: Security Governance Through Principles and Policies
CISSP Prep: Ch 1: Security Governance Through Principles and PoliciesCISSP Prep: Ch 1: Security Governance Through Principles and Policies
CISSP Prep: Ch 1: Security Governance Through Principles and Policies
 

Viewers also liked

Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10
OutSystems
 
Sync or swim: the challenge of complex offline apps
Sync or swim:  the challenge of complex offline appsSync or swim:  the challenge of complex offline apps
Sync or swim: the challenge of complex offline apps
OutSystems
 
State of application development - 2017 research report
State of application development - 2017 research reportState of application development - 2017 research report
State of application development - 2017 research report
OutSystems
 
OutSystems - Digital Realities Webinar
OutSystems - Digital Realities WebinarOutSystems - Digital Realities Webinar
OutSystems - Digital Realities Webinar
OutSystems
 
Training Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinarTraining Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinar
OutSystems
 
OutSystems - Bimodal Bakeoff
OutSystems - Bimodal Bakeoff OutSystems - Bimodal Bakeoff
OutSystems - Bimodal Bakeoff
OutSystems
 
OutSystems - Go Fast or Go Home
OutSystems - Go Fast or Go Home OutSystems - Go Fast or Go Home
OutSystems - Go Fast or Go Home
OutSystems
 
Training Webinar - Wireframing made easy
Training Webinar - Wireframing made easyTraining Webinar - Wireframing made easy
Training Webinar - Wireframing made easy
OutSystems
 
Training Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed cachingTraining Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed caching
OutSystems
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
OutSystems
 
Training Webinar: Top front-end techniques for OutSystems
 Training Webinar: Top front-end techniques for OutSystems Training Webinar: Top front-end techniques for OutSystems
Training Webinar: Top front-end techniques for OutSystems
OutSystems
 
App Development Disrupted: Answers and results from the 2017 State Of App Dev...
App Development Disrupted: Answers and results from the 2017 State Of App Dev...App Development Disrupted: Answers and results from the 2017 State Of App Dev...
App Development Disrupted: Answers and results from the 2017 State Of App Dev...
OutSystems
 
Training Webinar: From a bad to an awesome user experience - Training Webinar
Training Webinar: From a bad to an awesome user experience - Training WebinarTraining Webinar: From a bad to an awesome user experience - Training Webinar
Training Webinar: From a bad to an awesome user experience - Training Webinar
OutSystems
 
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsTechnical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
OutSystems
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
Andrew Conner
 
Programming WebSockets - OSCON 2010
Programming WebSockets - OSCON 2010Programming WebSockets - OSCON 2010
Programming WebSockets - OSCON 2010sullis
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
Fabio Tiriticco
 
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho DelchevWebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
mfrancis
 
Application Lifetime Management
Application Lifetime ManagementApplication Lifetime Management
Application Lifetime Management
OutSystems Technical Knowledge
 
Building interactivity with websockets
Building interactivity with websocketsBuilding interactivity with websockets
Building interactivity with websockets
Wim Godden
 

Viewers also liked (20)

Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10Training Webinars - Secret hacks for OutSystems 10
Training Webinars - Secret hacks for OutSystems 10
 
Sync or swim: the challenge of complex offline apps
Sync or swim:  the challenge of complex offline appsSync or swim:  the challenge of complex offline apps
Sync or swim: the challenge of complex offline apps
 
State of application development - 2017 research report
State of application development - 2017 research reportState of application development - 2017 research report
State of application development - 2017 research report
 
OutSystems - Digital Realities Webinar
OutSystems - Digital Realities WebinarOutSystems - Digital Realities Webinar
OutSystems - Digital Realities Webinar
 
Training Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinarTraining Webinar: Cover your bases - a security webinar
Training Webinar: Cover your bases - a security webinar
 
OutSystems - Bimodal Bakeoff
OutSystems - Bimodal Bakeoff OutSystems - Bimodal Bakeoff
OutSystems - Bimodal Bakeoff
 
OutSystems - Go Fast or Go Home
OutSystems - Go Fast or Go Home OutSystems - Go Fast or Go Home
OutSystems - Go Fast or Go Home
 
Training Webinar - Wireframing made easy
Training Webinar - Wireframing made easyTraining Webinar - Wireframing made easy
Training Webinar - Wireframing made easy
 
Training Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed cachingTraining Webinar: Enterprise application performance with distributed caching
Training Webinar: Enterprise application performance with distributed caching
 
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureTraining Webinar: Fitting OutSystems applications into Enterprise Architecture
Training Webinar: Fitting OutSystems applications into Enterprise Architecture
 
Training Webinar: Top front-end techniques for OutSystems
 Training Webinar: Top front-end techniques for OutSystems Training Webinar: Top front-end techniques for OutSystems
Training Webinar: Top front-end techniques for OutSystems
 
App Development Disrupted: Answers and results from the 2017 State Of App Dev...
App Development Disrupted: Answers and results from the 2017 State Of App Dev...App Development Disrupted: Answers and results from the 2017 State Of App Dev...
App Development Disrupted: Answers and results from the 2017 State Of App Dev...
 
Training Webinar: From a bad to an awesome user experience - Training Webinar
Training Webinar: From a bad to an awesome user experience - Training WebinarTraining Webinar: From a bad to an awesome user experience - Training Webinar
Training Webinar: From a bad to an awesome user experience - Training Webinar
 
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsTechnical Webinar: By the (Play) Book: The Agile Practice at OutSystems
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystems
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
 
Programming WebSockets - OSCON 2010
Programming WebSockets - OSCON 2010Programming WebSockets - OSCON 2010
Programming WebSockets - OSCON 2010
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho DelchevWebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
WebSockets and Equinox OSGi in a Servlet Container - Nedelcho Delchev
 
Application Lifetime Management
Application Lifetime ManagementApplication Lifetime Management
Application Lifetime Management
 
Building interactivity with websockets
Building interactivity with websocketsBuilding interactivity with websockets
Building interactivity with websockets
 

Similar to Training Webinar: Enterprise application performance with server push technologies - web sockets

Real time web apps
Real time web appsReal time web apps
Real time web apps
Sepehr Rasouli
 
05.m3 cms list-ofwebserver
05.m3 cms list-ofwebserver05.m3 cms list-ofwebserver
05.m3 cms list-ofwebservertarensi
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
Amazon Web Services
 
web-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
web-servers3952 (1)qwjelkjqwlkjkqlwe.pptweb-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
web-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
20521742
 
Websocket vs SSE - Paris.js - 24/06/15
Websocket vs SSE - Paris.js - 24/06/15Websocket vs SSE - Paris.js - 24/06/15
Websocket vs SSE - Paris.js - 24/06/15
streamdata.io
 
Collector Web Services
Collector Web ServicesCollector Web Services
Collector Web Services
publisyst
 
WebRTC Seminar Report
WebRTC  Seminar ReportWebRTC  Seminar Report
WebRTC Seminar Report
srinivasa teja
 
Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax Push
Doris Chen
 
Securely Publishing Azure Services
Securely Publishing Azure ServicesSecurely Publishing Azure Services
Securely Publishing Azure Services
BizTalk360
 
WP Chap 1 & 2.pptx
WP Chap 1 & 2.pptxWP Chap 1 & 2.pptx
WP Chap 1 & 2.pptx
AnkitaChauhan79
 
Cisco-Wireless-Guest-v10.pptx
Cisco-Wireless-Guest-v10.pptxCisco-Wireless-Guest-v10.pptx
Cisco-Wireless-Guest-v10.pptx
AkashMalkood1
 
Windows 8 Metro apps and the outside world
Windows 8 Metro apps and the outside worldWindows 8 Metro apps and the outside world
Windows 8 Metro apps and the outside world
Prabhakaran Soundarapandian
 
446-FUNDAMENTALS OF WEB FOR NON DEVELOPERS (Useful-Knowledge)
446-FUNDAMENTALS OF WEB FOR NON DEVELOPERS (Useful-Knowledge)446-FUNDAMENTALS OF WEB FOR NON DEVELOPERS (Useful-Knowledge)
446-FUNDAMENTALS OF WEB FOR NON DEVELOPERS (Useful-Knowledge)
nrvalluri
 
Fundamentals of Web for Non-Developers
Fundamentals of Web for Non-DevelopersFundamentals of Web for Non-Developers
Fundamentals of Web for Non-Developers
Lemi Orhan Ergin
 
CNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesCNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application Technologies
Sam Bowne
 
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
Ericom Software
 

Similar to Training Webinar: Enterprise application performance with server push technologies - web sockets (20)

Real time web apps
Real time web appsReal time web apps
Real time web apps
 
05.m3 cms list-ofwebserver
05.m3 cms list-ofwebserver05.m3 cms list-ofwebserver
05.m3 cms list-ofwebserver
 
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
AWS re:Invent 2016: Amazon CloudFront Flash Talks: Best Practices on Configur...
 
web-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
web-servers3952 (1)qwjelkjqwlkjkqlwe.pptweb-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
web-servers3952 (1)qwjelkjqwlkjkqlwe.ppt
 
introduction to web application development
introduction to web application developmentintroduction to web application development
introduction to web application development
 
Websocket vs SSE - Paris.js - 24/06/15
Websocket vs SSE - Paris.js - 24/06/15Websocket vs SSE - Paris.js - 24/06/15
Websocket vs SSE - Paris.js - 24/06/15
 
Collector Web Services
Collector Web ServicesCollector Web Services
Collector Web Services
 
WebRTC Seminar Report
WebRTC  Seminar ReportWebRTC  Seminar Report
WebRTC Seminar Report
 
Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax Push
 
Intro webapps
Intro webappsIntro webapps
Intro webapps
 
Securely Publishing Azure Services
Securely Publishing Azure ServicesSecurely Publishing Azure Services
Securely Publishing Azure Services
 
WP Chap 1 & 2.pptx
WP Chap 1 & 2.pptxWP Chap 1 & 2.pptx
WP Chap 1 & 2.pptx
 
Cisco-Wireless-Guest-v10.pptx
Cisco-Wireless-Guest-v10.pptxCisco-Wireless-Guest-v10.pptx
Cisco-Wireless-Guest-v10.pptx
 
Windows 8 Metro apps and the outside world
Windows 8 Metro apps and the outside worldWindows 8 Metro apps and the outside world
Windows 8 Metro apps and the outside world
 
446-FUNDAMENTALS OF WEB FOR NON DEVELOPERS (Useful-Knowledge)
446-FUNDAMENTALS OF WEB FOR NON DEVELOPERS (Useful-Knowledge)446-FUNDAMENTALS OF WEB FOR NON DEVELOPERS (Useful-Knowledge)
446-FUNDAMENTALS OF WEB FOR NON DEVELOPERS (Useful-Knowledge)
 
Fundamentals of Web for Non-Developers
Fundamentals of Web for Non-DevelopersFundamentals of Web for Non-Developers
Fundamentals of Web for Non-Developers
 
CNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application TechnologiesCNIT 129S - Ch 3: Web Application Technologies
CNIT 129S - Ch 3: Web Application Technologies
 
Cookie
CookieCookie
Cookie
 
Global Windows Azure Bootcamp - San Diego
Global Windows Azure Bootcamp - San DiegoGlobal Windows Azure Bootcamp - San Diego
Global Windows Azure Bootcamp - San Diego
 
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
 

More from OutSystems

Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaInnovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
OutSystems
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyBeyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
OutSystems
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
OutSystems
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutFrom Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
OutSystems
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
OutSystems
 
Fast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationFast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical Application
OutSystems
 
What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?
OutSystems
 
Enrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersEnrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With Layers
OutSystems
 
Using Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksUsing Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous Tasks
OutSystems
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
OutSystems
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
OutSystems
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensSpeed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class Citizens
OutSystems
 
Service Actions
Service ActionsService Actions
Service Actions
OutSystems
 
Responsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseResponsive Ui with Realtime Database
Responsive Ui with Realtime Database
OutSystems
 
Reactive Web Best Practices
Reactive Web Best PracticesReactive Web Best Practices
Reactive Web Best Practices
OutSystems
 
RADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintRADS - Rapid Application Design Sprint
RADS - Rapid Application Design Sprint
OutSystems
 
Pragmatic Innovation
Pragmatic InnovationPragmatic Innovation
Pragmatic Innovation
OutSystems
 
Troubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceTroubleshooting Dashboard Performance
Troubleshooting Dashboard Performance
OutSystems
 
OutSystems Tips and Tricks
OutSystems Tips and TricksOutSystems Tips and Tricks
OutSystems Tips and Tricks
OutSystems
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
OutSystems
 

More from OutSystems (20)

Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaInnovating at the Speed of Business in the High-Bandwidth World of Digital Media
Innovating at the Speed of Business in the High-Bandwidth World of Digital Media
 
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyBeyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
 
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...
 
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutFrom Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
From Core Systems to Mobile Apps: Digital Transformation from the Inside-Out
 
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...
 
Fast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical ApplicationFast and Furious: Modernizing Clinical Application
Fast and Furious: Modernizing Clinical Application
 
What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?What Is Light BPT and How Can You Use it for Parallel Processing?
What Is Light BPT and How Can You Use it for Parallel Processing?
 
Enrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With LayersEnrich Visually Google Map Information With Layers
Enrich Visually Google Map Information With Layers
 
Using Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous TasksUsing Processes and Timers for Long-Running Asynchronous Tasks
Using Processes and Timers for Long-Running Asynchronous Tasks
 
Unattended OutSystems Installation
Unattended OutSystems InstallationUnattended OutSystems Installation
Unattended OutSystems Installation
 
The 4-Layer Architecture in Practice
The 4-Layer Architecture in PracticeThe 4-Layer Architecture in Practice
The 4-Layer Architecture in Practice
 
Speed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class CitizensSpeed up Development by Turning Web Blocks Into First-Class Citizens
Speed up Development by Turning Web Blocks Into First-Class Citizens
 
Service Actions
Service ActionsService Actions
Service Actions
 
Responsive Ui with Realtime Database
Responsive Ui with Realtime DatabaseResponsive Ui with Realtime Database
Responsive Ui with Realtime Database
 
Reactive Web Best Practices
Reactive Web Best PracticesReactive Web Best Practices
Reactive Web Best Practices
 
RADS - Rapid Application Design Sprint
RADS - Rapid Application Design SprintRADS - Rapid Application Design Sprint
RADS - Rapid Application Design Sprint
 
Pragmatic Innovation
Pragmatic InnovationPragmatic Innovation
Pragmatic Innovation
 
Troubleshooting Dashboard Performance
Troubleshooting Dashboard PerformanceTroubleshooting Dashboard Performance
Troubleshooting Dashboard Performance
 
OutSystems Tips and Tricks
OutSystems Tips and TricksOutSystems Tips and Tricks
OutSystems Tips and Tricks
 
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...
 

Recently uploaded

Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 

Recently uploaded (20)

Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 

Training Webinar: Enterprise application performance with server push technologies - web sockets

  • 1. Enterprise Application Performance Server Push Technologies - WebSockets Solution Architect - Experts Team Tito Moreira
  • 2. Performance Hurdles • Application code ○ Too many accesses to database ○ Poor client-side programming (Client-side polling, JS, CSS, HTML) • Infrastructure ○ Database ○ Network
  • 3. Long polling (pull) Pull - Long Polling using Web requests Since HTTP is stateless, the Session and other data might need to be read from the database
  • 4. Pull vs Push technologies Information about the connection (IP, port and identifier of the recipient) is stored in memory (stateful)
  • 5. WebSockets A brief History of WebSockets... 1973 TCP/IP design 1969 ARPANET 1989 WWW, HTML, HTTP created by CERN to reference documents in the Internet 2009 1st draft of WebSocket protocol (hixie) 2010 Chrome, Safari, Firefox, Opera adds support for WebSockets 2011 Dec WebSocket protocol gets Internet Standard classification. RFC published 1997 HTTP/1.1 RFC published 2015 HTTP/2.0 RFC published (TCP connection reuse) Time
  • 6. WebSocket (RFC 6455) Browser support
  • 7. WebSockets • WebSocket is a protocol ○ Allows two-way communication between a client and a server over TCP/IP ○ The goal of WebSockets is to provide a mechanism to browser applications that need two-way communication with servers to avoid opening multiple HTTP connections or using long polling (AJAX, iframes, etc)
  • 8. HTTP requests vs WebSockets Client Server Client Server Bi-directional messages Connection Lifecycle (TCP/IP) HTTP/REST requests WebSockets For requests not sent in the same TCP connection ping! (0x09) pong! (0xA) close (0x8)
  • 9. WebSocket vs standard HTTP requests Source: http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/ • Constant payload 1KB, increasing number of messages
  • 10. WebSocket vs standard HTTP requests Source: http://blog.arungupta.me/rest-vs-websocket-comparison-benchmarks/ • Performance with ≠ payload size for constant number of messages (1000)
  • 11. WebSockets • WebSocket handshake is initiated from an HTTP request • Sub-protocols can be negotiated
  • 12. When to use Server Push technologies (WebSockets) ?
  • 13. Recommended uses for WebSockets • To implement Functional Requirements ○ When Web Apps need server data that is constantly changing ■ High volatile data change events (Tickers, Price updates, Real Time data, etc) ■ Results from background processing tasks ■ User notifications ■ Communication between Users (collaborative scenarios) ○ Present “small” bits of information to Users as soon it is available ■ Auction prices, Sports updates, tickers, location based data, etc
  • 14. Recommended uses for WebSockets • To address Architectural restrictions ○ To get around the infamous 6 connections per host limit. ○ To allow Browsers to access local resources (native) ■ Browser ActiveX/Java plugin migrations ■ Installation of a local service (with a WebSocket server) for providing Biometric authorization or other events
  • 15. How to integrate WebSockets with OutSystems?
  • 16. For Cloud based WebSocket services • Pick a WebSocket Cloud service that exposes a server-side API. ■ The Server-side API allows OutSystems Apps to push data • Usually provide authorization (token based) and transport security (TLS/SSL) ■ Secure WebSockets (WSS) • Choose a Cloud Service that implements fallback mechanisms ■ The Client-side script should have fallback to older (more mainstream) technologies • Pick the Cloud service that has the lower latency ■ For your target Users ■ For the OS Infrastructure
  • 17. Integration with OutSystems Cloud Pusher.com service (example) Client (Browser) Standard AJAX or Page view request (HTTP 1.1) Front End Load Balancer OutSystems FrontEnd Servers WebSocket Server (pusher.com) Pusher.com uses WS/WSS protocol To push data to clients Client (Browser) By using Pusher server-side REST API, a background process can publish data to a Client or group of Clients Pusher client script Client (Browser) Pusher client script Client (Browser) Pusher client script HTTP Web request WebSocket protocol REST API request Source: http://www.asp.net/signalr/overview/performance/scaleout-in-signalr
  • 18. Known WebSocket Cloud services • Pusher • PubNub • Fanout (also works as Reverse Proxy) • Google App Engine with Channel API • Hydna • Firebase + Fire# (server-side C# API) • Azure Web Apps support WebSockets ...
  • 19. For self-hosted WebSocket server • The WebSocket cluster should be in a dedicated infrastructure ○ Don’t install WebSockets server software in the OS FrontEnd Servers ○ It has different resource needs (scales differently than OS FEs) ○ The WebSocket server maintenance and support tasks won’t affect OS servers and vice-versa ○ Can be migrated to another environment (3rd Party Cloud services) • Use a WebSocket server that exposes a REST service ○ OS apps will call this service to push data to browser clients • Implement authorization (tokens or API keys) ○ WebSocket servers that are exposed to the public, should check for an API Key or Token that is sent by the Client to verify authorized access.
  • 20. Integration with OutSystems Self-hosted HA SignalR (example) Client (Browser) A background process can call an ASP.NET Web API REST service to publish data to a Client or group of Clients Standard AJAX or Page view requests (HTTP 1.1)WS/WSS protocol ASP.NET SignalR 2.0 WebSocket Servers SQL Server Backplane Load Balancer Source: http://www.asp.net/signalr/overview/performance/scaleout-in-signalr OutSystems FrontEnd Servers Client (Browser) SignalR client script Client (Browser) SignalR client script HTTP Web request WebSocket protocol REST API request SQL Query
  • 21. Known self-hosted WebSocket servers • NodeJS ○ Socket.io, sockJS, FAYE, etc • ASP.NET SignalR (>= Windows 2012 R2) • IISNode (Yes! Node inside IIS on a ≠ App pool) • Jetty (Java) • websocketd (Linux only) • SuperSocket (library for custom server in C#) ...
  • 22. WebSockets considerations • Compatibility problems with HTTP proxies ○ The WebSocket HTTP Upgrade (normally used for HTTP/SSL) request can be dropped by some (old) Proxies, making it impossible to establish a connection. • Security (to prevent man-in-the-middle) for WebSockets ○ Use TLS/SSL for the Web Applications. Most WebSocket frameworks will use the wss:// (TLS/SSL) for the WebSocket connection too. • DoS ○ Most Browsers impose a limit between 200-3000 WebSockets. A malicious Site can exhaust the max connections of the Browser. It’s also possible for a client to DoS a server. • Authorization/Authentication ○ The WebSocket protocol doesn’t handle authorization or authentication. ○ WebSocket opened from a page with auth doesn’t “automatically” receive any sort of auth
  • 23. WebSockets considerations (cont.) • Some WebSocket servers don’t allow cross site connections although they can be configured (CORS) ○ SignalR (by default) checks Origin header to verify if the Script origin is the same • Check that you are effectively using WebSockets instead of a Pull fallback mechanism ○ Most frameworks will fallback quietly to Long Polling if the Browser or Server (SignalR) don’t support the WebSocket protocol ○ Use Developer Browser tools to check if WS protocol is effectively used • Standard not implemented the same way or not supported by all browsers ○ That’s why using an abstraction client framework (with fallback mechanism) is a good idea!
  • 25. We’ll be back in 5 min to answer your questions

Editor's Notes

  1. WebSockets enable the server and client to maintain a persistent connection, and by doing so, significantly decrease the latency for data that is sent over the network. Prior to WebSockets, communication between the server and client happened entirely through standard HTTP requests, which were never designed to support a persistent connection. (This includes AJAX requests or Real-time communication via XHR long-polling)
  2. WebSockets enable the server and client to maintain a persistent connection, and by doing so, significantly decrease the latency for data that is sent over the network. Prior to WebSockets, communication between the server and client happened entirely through standard HTTP requests, which were never designed to support a persistent connection. (This includes AJAX requests or Real-time communication via XHR long-polling)