SlideShare a Scribd company logo
HTTP Server PushHTTP Server Push
TechniquesTechniques
www.folio3.com@folio_3
Folio3 – OverviewFolio3 – Overview
www.folio3.com @folio_3
Who We Are
 We are a Development Partner for our customers
 Design software solutions, not just implement them
 Focus on the solution – Platform and technology agnostic
 Expertise in building applications that are:
Mobile Social Cloud-based Gamified
What We Do
 Areas of Focus
 Enterprise
 Custom enterprise applications
 Product development targeting the enterprise
 Mobile
 Custom mobile apps for iOS, Android, Windows Phone, BB OS
 Mobile platform (server-to-server) development
 Social Media
 CMS based websites for consumers and enterprise (corporate, consumer,
community & social networking)
 Social media platform development (enterprise & consumer)
Folio3 At a Glance
 Founded in 2005
 Over 200 full time employees
 Offices in the US, Canada, Bulgaria & Pakistan
 Palo Alto, CA.
 Sofia, Bulgaria
 Karachi, Pakistan
Toronto, Canada
Areas of Focus: Enterprise
 Automating workflows
 Cloud based solutions
 Application integration
 Platform development
 Healthcare
 Mobile Enterprise
 Digital Media
 Supply Chain
Some of Our Enterprise Clients
Areas of Focus: Mobile
 Serious enterprise applications for Banks,
Businesses
 Fun consumer apps for app discovery,
interaction, exercise gamification and play
 Educational apps
 Augmented Reality apps
 Mobile Platforms
Some of Our Mobile Clients
Areas of Focus: Web & Social Media
 Community Sites based on
Content Management Systems
 Enterprise Social Networking
 Social Games for Facebook &
Mobile
 Companion Apps for games
Some of Our Web Clients
HTTP Server PushHTTP Server Push
TechniquesTechniques
www.folio3.com @folio_3
Agenda
 Existing HTTP Protocol Architecture
 Traditional Methods for Server Push
 Polling
 Long Polling / Comet
 Pushlets / Streaming
 Comet in detail
 Possible issues with Comet and their solutions
 Comet Demonstration : MediaMorph
 Where does HTML5 fit-in?
 HTML 5 Server Sockets
Existing HTTP Protocol Architecture
 Existing HTTP
 Stateless protocol
 Request – Response … The end !
 Client initiated communication, Always !
 Server is forgetful
 AJAX comes for help
Traditional Methods : Polling
 Polling
 Periodic requests by the client
 Time between requests would always be N time units
Traditional Methods : Polling
 Merits
 Works better with very high frequency updates
 May suit a very fast / frequent updating system
 Very simple to implement, mostly easiest of all methods
 Works with ancient systems too
Traditional Methods : Polling
 De-Merits
 Too much network overhead
 At times slower than expected results
 The updates would always come after N time units
 Possibly too many unnecessary requests
 Possible browser performance degradation on the client
side
 Does not allow cross-domain access
Traditional Methods : Long Polling
 Long Polling / Comet
 Client requests and waits for the server to respond
 The server only responds back when there is any update or
data available
Traditional Methods : Long Polling
 Merits
 Behaves very similar to what a real server push
mechanism would do
 Immediate response in case of an update from the server
 Comparative to Polling very low network overhead and
request count
 Works with most old and new systems
 Works even with IE 6 !!!
Traditional Methods : Long Polling
 De-Merits
 Slightly more complex to implement than polling
 May not work well with very frequent updates
 Needs special server & client configurations
 Needs to take into account the Read Timeout
enforcements by intermediate gateway or proxies
 Does not allow cross-domain access
Traditional Methods : Streaming
 Streaming / Pushlet
 One request to the server
 Infinitely long response with continuous messages from
the server
 Client does not talk back unless with a new request
 Javascript <Script> tag enclosed code snippets
 Script tag’s URL would be a comet server side URL.
Sending Javascript code snippets time to time.
Traditional Methods : Streaming
 Merits
 Behaves very similar to what a real server push
mechanism would do
 Allows cross-domain implementations, since javascript
urls can be cross-domain
 Immediate response in case of an update from the server
 Possibly very low network overhead
 Negligible request count
Traditional Methods : Streaming
 De-Merits
 May not be supported by some old systems
 May cause browser memory overhead because of a long
list of script tags executed on the page
 Client is unable to send new request parameters in
normal scenarios
 All post-event logic needs to be written on the server side
 Proxy servers could buffer responses causing issues
Possible issues with Comet and their solutions
 Read timeout
 Orphaned requests
 Very frequent updates – Hybrid Poll – Push.
Comet DemonstrationComet Demonstration
www.folio3.com @folio_3
Where does HTML5 fit-in?
 HTML5 offers many solutions addressing issues with existing
architectures
 One of the solutions is WebSockets
 WebSockets address almost all issues with the existing
systems
HTML5 WebSockets
 HTML5 WebSockets
 Provides bi-directional, full-duplex communications channels
 New URL schems

ws:// - For Plain WebSocket

wss:// - For Secure WebSocket
 Very low network overhead
 Only one request, true full-duplex communication
 Still a long way to go. It is substantial infrastructural change
How HTML5 WebSockets Work ?
 Four step lifecycle
 Browser Requests
 Server Responds with Acknowledgement Tokens
 Connection Establishment for Two way communication
 Connection closed by either party
Contact
 For more details about our
services, please get in touch with
us.
contact@folio3.com
US Office: (408) 365-4638
www.folio3.com

More Related Content

What's hot

Migration Tips & Tricks
Migration Tips & TricksMigration Tips & Tricks
Migration Tips & Tricks
Laura England
 
F1_Design Mission Critical Enterprise Applications with Power Automate and Do...
F1_Design Mission Critical Enterprise Applications with Power Automate and Do...F1_Design Mission Critical Enterprise Applications with Power Automate and Do...
F1_Design Mission Critical Enterprise Applications with Power Automate and Do...
serge luca
 
HTTP Response Codes | Errors
HTTP Response Codes | ErrorsHTTP Response Codes | Errors
HTTP Response Codes | Errors
Siddharth Sharma
 
Gone in 4 seconds web performance optimization
Gone in 4 seconds   web performance optimizationGone in 4 seconds   web performance optimization
Gone in 4 seconds web performance optimization
Yohan Totting
 
Connect front end to back end using SignalR and Messaging
Connect front end to back end using SignalR and MessagingConnect front end to back end using SignalR and Messaging
Connect front end to back end using SignalR and Messaging
Particular Software
 
AWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows Server
AWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows ServerAWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows Server
AWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows Server
Amazon Web Services
 
SharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for AlfrescoSharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for Alfresco
Zia Consulting
 
WordPress vs Other Content Management System
WordPress vs Other Content Management SystemWordPress vs Other Content Management System
WordPress vs Other Content Management System
HTS Hosting
 
Ainars Galvans - Hints on complex system performance optimization
Ainars Galvans - Hints on complex system performance optimizationAinars Galvans - Hints on complex system performance optimization
Ainars Galvans - Hints on complex system performance optimization
DevConFu
 
Decoupled cms sunshinephp 2014
Decoupled cms sunshinephp 2014Decoupled cms sunshinephp 2014
Decoupled cms sunshinephp 2014
Lukas Smith
 
Groundspeed Presentation at the OWASP NY/NJ
Groundspeed Presentation at the OWASP NY/NJGroundspeed Presentation at the OWASP NY/NJ
Groundspeed Presentation at the OWASP NY/NJ
Felipe M
 
Jmp206 Web Services Bootcamp Final Draft
Jmp206   Web Services Bootcamp Final DraftJmp206   Web Services Bootcamp Final Draft
Jmp206 Web Services Bootcamp Final Draft
Bill Buchan
 

What's hot (12)

Migration Tips & Tricks
Migration Tips & TricksMigration Tips & Tricks
Migration Tips & Tricks
 
F1_Design Mission Critical Enterprise Applications with Power Automate and Do...
F1_Design Mission Critical Enterprise Applications with Power Automate and Do...F1_Design Mission Critical Enterprise Applications with Power Automate and Do...
F1_Design Mission Critical Enterprise Applications with Power Automate and Do...
 
HTTP Response Codes | Errors
HTTP Response Codes | ErrorsHTTP Response Codes | Errors
HTTP Response Codes | Errors
 
Gone in 4 seconds web performance optimization
Gone in 4 seconds   web performance optimizationGone in 4 seconds   web performance optimization
Gone in 4 seconds web performance optimization
 
Connect front end to back end using SignalR and Messaging
Connect front end to back end using SignalR and MessagingConnect front end to back end using SignalR and Messaging
Connect front end to back end using SignalR and Messaging
 
AWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows Server
AWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows ServerAWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows Server
AWS Webcast - Launch & Learn: Amazon EC2 for Microsoft Windows Server
 
SharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for AlfrescoSharePoint, Office, and Outlook Integrations for Alfresco
SharePoint, Office, and Outlook Integrations for Alfresco
 
WordPress vs Other Content Management System
WordPress vs Other Content Management SystemWordPress vs Other Content Management System
WordPress vs Other Content Management System
 
Ainars Galvans - Hints on complex system performance optimization
Ainars Galvans - Hints on complex system performance optimizationAinars Galvans - Hints on complex system performance optimization
Ainars Galvans - Hints on complex system performance optimization
 
Decoupled cms sunshinephp 2014
Decoupled cms sunshinephp 2014Decoupled cms sunshinephp 2014
Decoupled cms sunshinephp 2014
 
Groundspeed Presentation at the OWASP NY/NJ
Groundspeed Presentation at the OWASP NY/NJGroundspeed Presentation at the OWASP NY/NJ
Groundspeed Presentation at the OWASP NY/NJ
 
Jmp206 Web Services Bootcamp Final Draft
Jmp206   Web Services Bootcamp Final DraftJmp206   Web Services Bootcamp Final Draft
Jmp206 Web Services Bootcamp Final Draft
 

Similar to HTTP Server Push Techniques

Cloud Services helping in cloud service to be fully knowledgably .pptx
Cloud Services helping in cloud service to be fully knowledgably .pptxCloud Services helping in cloud service to be fully knowledgably .pptx
Cloud Services helping in cloud service to be fully knowledgably .pptx
terewog808
 
Developing Profitable APIs - John Fraser - Platform A
Developing Profitable APIs - John Fraser - Platform ADeveloping Profitable APIs - John Fraser - Platform A
Developing Profitable APIs - John Fraser - Platform A
auexpo Conference
 
Magical Performance tuning with Gomez
Magical Performance tuning with GomezMagical Performance tuning with Gomez
Magical Performance tuning with Gomez
mcsaha
 
Are You Ready For More Visitors Cognizant Gomez Jan20
Are You Ready For More Visitors   Cognizant  Gomez Jan20Are You Ready For More Visitors   Cognizant  Gomez Jan20
Are You Ready For More Visitors Cognizant Gomez Jan20
Compuware APM
 
The Evolution of a Scrappy Startup to a Successful Web Service
The Evolution of a Scrappy Startup to a Successful Web ServiceThe Evolution of a Scrappy Startup to a Successful Web Service
The Evolution of a Scrappy Startup to a Successful Web Service
Poornima Vijayashanker
 
How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - English
Koombea
 
Show Me the Money: Connecting Performance Engineering to Real Business Results
Show Me the Money: Connecting Performance Engineering to Real Business ResultsShow Me the Money: Connecting Performance Engineering to Real Business Results
Show Me the Money: Connecting Performance Engineering to Real Business Results
Correlsense
 
Applying a Methodical Approach to Website Performance
Applying a Methodical Approach to Website PerformanceApplying a Methodical Approach to Website Performance
Applying a Methodical Approach to Website Performance
PostSharp Technologies
 
Platform as a Service overview
Platform as a Service overviewPlatform as a Service overview
Platform as a Service overview
Miguel Pastor
 
Designing Products for the Cloud
Designing Products for the CloudDesigning Products for the Cloud
Designing Products for the Cloud
Steve Keifer
 
From web interface to the database:Monitor all that matters
From web interface to the database:Monitor all that mattersFrom web interface to the database:Monitor all that matters
From web interface to the database:Monitor all that matters
ManageEngine, Zoho Corporation
 
SWsoft Hosting Solutions for SaaS
SWsoft Hosting Solutions for SaaSSWsoft Hosting Solutions for SaaS
SWsoft Hosting Solutions for SaaS
webhostingguy
 
IT Modernization For Process Modernization
IT Modernization For Process ModernizationIT Modernization For Process Modernization
IT Modernization For Process Modernization
Dheeraj Remella
 
Application Performance Lecture
Application Performance LectureApplication Performance Lecture
Application Performance Lecture
Vishwanath Ramdas
 
load speed problems of web resources on the client side classification and ...
 load speed problems of web resources on the client side  classification and ... load speed problems of web resources on the client side  classification and ...
load speed problems of web resources on the client side classification and ...
INFOGAIN PUBLICATION
 
T3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of ExcellenceT3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of Excellence
veehikle
 
PHP Symfony MicroServices Migration @MeeticTech
PHP Symfony MicroServices Migration @MeeticTechPHP Symfony MicroServices Migration @MeeticTech
PHP Symfony MicroServices Migration @MeeticTech
meeticTech
 
Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2
Brandon Watson
 
Meeting Archive: A Simple Step to Gain 33% Performance Improvements in Reques...
Meeting Archive: A Simple Step to Gain 33% Performance Improvements in Reques...Meeting Archive: A Simple Step to Gain 33% Performance Improvements in Reques...
Meeting Archive: A Simple Step to Gain 33% Performance Improvements in Reques...
Meghan Weinreich
 
Three SOA Case Studies
Three SOA Case StudiesThree SOA Case Studies
Three SOA Case Studies
Paul Fremantle
 

Similar to HTTP Server Push Techniques (20)

Cloud Services helping in cloud service to be fully knowledgably .pptx
Cloud Services helping in cloud service to be fully knowledgably .pptxCloud Services helping in cloud service to be fully knowledgably .pptx
Cloud Services helping in cloud service to be fully knowledgably .pptx
 
Developing Profitable APIs - John Fraser - Platform A
Developing Profitable APIs - John Fraser - Platform ADeveloping Profitable APIs - John Fraser - Platform A
Developing Profitable APIs - John Fraser - Platform A
 
Magical Performance tuning with Gomez
Magical Performance tuning with GomezMagical Performance tuning with Gomez
Magical Performance tuning with Gomez
 
Are You Ready For More Visitors Cognizant Gomez Jan20
Are You Ready For More Visitors   Cognizant  Gomez Jan20Are You Ready For More Visitors   Cognizant  Gomez Jan20
Are You Ready For More Visitors Cognizant Gomez Jan20
 
The Evolution of a Scrappy Startup to a Successful Web Service
The Evolution of a Scrappy Startup to a Successful Web ServiceThe Evolution of a Scrappy Startup to a Successful Web Service
The Evolution of a Scrappy Startup to a Successful Web Service
 
How to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - EnglishHow to be Successful with Responsive Sites (Koombea & NGINX) - English
How to be Successful with Responsive Sites (Koombea & NGINX) - English
 
Show Me the Money: Connecting Performance Engineering to Real Business Results
Show Me the Money: Connecting Performance Engineering to Real Business ResultsShow Me the Money: Connecting Performance Engineering to Real Business Results
Show Me the Money: Connecting Performance Engineering to Real Business Results
 
Applying a Methodical Approach to Website Performance
Applying a Methodical Approach to Website PerformanceApplying a Methodical Approach to Website Performance
Applying a Methodical Approach to Website Performance
 
Platform as a Service overview
Platform as a Service overviewPlatform as a Service overview
Platform as a Service overview
 
Designing Products for the Cloud
Designing Products for the CloudDesigning Products for the Cloud
Designing Products for the Cloud
 
From web interface to the database:Monitor all that matters
From web interface to the database:Monitor all that mattersFrom web interface to the database:Monitor all that matters
From web interface to the database:Monitor all that matters
 
SWsoft Hosting Solutions for SaaS
SWsoft Hosting Solutions for SaaSSWsoft Hosting Solutions for SaaS
SWsoft Hosting Solutions for SaaS
 
IT Modernization For Process Modernization
IT Modernization For Process ModernizationIT Modernization For Process Modernization
IT Modernization For Process Modernization
 
Application Performance Lecture
Application Performance LectureApplication Performance Lecture
Application Performance Lecture
 
load speed problems of web resources on the client side classification and ...
 load speed problems of web resources on the client side  classification and ... load speed problems of web resources on the client side  classification and ...
load speed problems of web resources on the client side classification and ...
 
T3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of ExcellenceT3 Consortium's Performance Center of Excellence
T3 Consortium's Performance Center of Excellence
 
PHP Symfony MicroServices Migration @MeeticTech
PHP Symfony MicroServices Migration @MeeticTechPHP Symfony MicroServices Migration @MeeticTech
PHP Symfony MicroServices Migration @MeeticTech
 
Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2Cloud Providers Public 030909 V2
Cloud Providers Public 030909 V2
 
Meeting Archive: A Simple Step to Gain 33% Performance Improvements in Reques...
Meeting Archive: A Simple Step to Gain 33% Performance Improvements in Reques...Meeting Archive: A Simple Step to Gain 33% Performance Improvements in Reques...
Meeting Archive: A Simple Step to Gain 33% Performance Improvements in Reques...
 
Three SOA Case Studies
Three SOA Case StudiesThree SOA Case Studies
Three SOA Case Studies
 

More from Folio3 Software

Shopify & Shopify Plus Ecommerce Development Experts
Shopify & Shopify Plus Ecommerce Development Experts Shopify & Shopify Plus Ecommerce Development Experts
Shopify & Shopify Plus Ecommerce Development Experts
Folio3 Software
 
Magento and Magento 2 Ecommerce Development
Magento and Magento 2 Ecommerce Development Magento and Magento 2 Ecommerce Development
Magento and Magento 2 Ecommerce Development
Folio3 Software
 
All You Need to Know About Type Script
All You Need to Know About Type ScriptAll You Need to Know About Type Script
All You Need to Know About Type Script
Folio3 Software
 
Enter the Big Picture
Enter the Big PictureEnter the Big Picture
Enter the Big Picture
Folio3 Software
 
A Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingA Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer Testing
Folio3 Software
 
OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)
Folio3 Software
 
Introduction to Go-Lang
Introduction to Go-LangIntroduction to Go-Lang
Introduction to Go-Lang
Folio3 Software
 
An Introduction to CSS Preprocessors (SASS & LESS)
An Introduction to CSS Preprocessors (SASS & LESS)An Introduction to CSS Preprocessors (SASS & LESS)
An Introduction to CSS Preprocessors (SASS & LESS)
Folio3 Software
 
Introduction to SharePoint 2013
Introduction to SharePoint 2013Introduction to SharePoint 2013
Introduction to SharePoint 2013
Folio3 Software
 
An Overview of Blackberry 10
An Overview of Blackberry 10An Overview of Blackberry 10
An Overview of Blackberry 10
Folio3 Software
 
StackOverflow Architectural Overview
StackOverflow Architectural OverviewStackOverflow Architectural Overview
StackOverflow Architectural Overview
Folio3 Software
 
Enterprise Mobility - An Introduction
Enterprise Mobility - An IntroductionEnterprise Mobility - An Introduction
Enterprise Mobility - An Introduction
Folio3 Software
 
Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
Folio3 Software
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Folio3 Software
 
Introduction to Enterprise Service Bus
Introduction to Enterprise Service BusIntroduction to Enterprise Service Bus
Introduction to Enterprise Service Bus
Folio3 Software
 
NOSQL Database: Apache Cassandra
NOSQL Database: Apache CassandraNOSQL Database: Apache Cassandra
NOSQL Database: Apache Cassandra
Folio3 Software
 
Regular Expression in Action
Regular Expression in ActionRegular Expression in Action
Regular Expression in Action
Folio3 Software
 
Best Practices of Software Development
Best Practices of Software DevelopmentBest Practices of Software Development
Best Practices of Software Development
Folio3 Software
 
Offline Data Access in Enterprise Mobility
Offline Data Access in Enterprise MobilityOffline Data Access in Enterprise Mobility
Offline Data Access in Enterprise Mobility
Folio3 Software
 
Realtime and Synchronous Applications
Realtime and Synchronous ApplicationsRealtime and Synchronous Applications
Realtime and Synchronous Applications
Folio3 Software
 

More from Folio3 Software (20)

Shopify & Shopify Plus Ecommerce Development Experts
Shopify & Shopify Plus Ecommerce Development Experts Shopify & Shopify Plus Ecommerce Development Experts
Shopify & Shopify Plus Ecommerce Development Experts
 
Magento and Magento 2 Ecommerce Development
Magento and Magento 2 Ecommerce Development Magento and Magento 2 Ecommerce Development
Magento and Magento 2 Ecommerce Development
 
All You Need to Know About Type Script
All You Need to Know About Type ScriptAll You Need to Know About Type Script
All You Need to Know About Type Script
 
Enter the Big Picture
Enter the Big PictureEnter the Big Picture
Enter the Big Picture
 
A Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer TestingA Guideline to Test Your Own Code - Developer Testing
A Guideline to Test Your Own Code - Developer Testing
 
OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)
 
Introduction to Go-Lang
Introduction to Go-LangIntroduction to Go-Lang
Introduction to Go-Lang
 
An Introduction to CSS Preprocessors (SASS & LESS)
An Introduction to CSS Preprocessors (SASS & LESS)An Introduction to CSS Preprocessors (SASS & LESS)
An Introduction to CSS Preprocessors (SASS & LESS)
 
Introduction to SharePoint 2013
Introduction to SharePoint 2013Introduction to SharePoint 2013
Introduction to SharePoint 2013
 
An Overview of Blackberry 10
An Overview of Blackberry 10An Overview of Blackberry 10
An Overview of Blackberry 10
 
StackOverflow Architectural Overview
StackOverflow Architectural OverviewStackOverflow Architectural Overview
StackOverflow Architectural Overview
 
Enterprise Mobility - An Introduction
Enterprise Mobility - An IntroductionEnterprise Mobility - An Introduction
Enterprise Mobility - An Introduction
 
Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
Distributed and Fault Tolerant Realtime Computation with Apache Storm, Apache...
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Introduction to Enterprise Service Bus
Introduction to Enterprise Service BusIntroduction to Enterprise Service Bus
Introduction to Enterprise Service Bus
 
NOSQL Database: Apache Cassandra
NOSQL Database: Apache CassandraNOSQL Database: Apache Cassandra
NOSQL Database: Apache Cassandra
 
Regular Expression in Action
Regular Expression in ActionRegular Expression in Action
Regular Expression in Action
 
Best Practices of Software Development
Best Practices of Software DevelopmentBest Practices of Software Development
Best Practices of Software Development
 
Offline Data Access in Enterprise Mobility
Offline Data Access in Enterprise MobilityOffline Data Access in Enterprise Mobility
Offline Data Access in Enterprise Mobility
 
Realtime and Synchronous Applications
Realtime and Synchronous ApplicationsRealtime and Synchronous Applications
Realtime and Synchronous Applications
 

Recently uploaded

Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
Sease
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
DianaGray10
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
Fwdays
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
UiPathCommunity
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 

Recently uploaded (20)

Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
From Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMsFrom Natural Language to Structured Solr Queries using LLMs
From Natural Language to Structured Solr Queries using LLMs
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
"Scaling RAG Applications to serve millions of users",  Kevin Goedecke"Scaling RAG Applications to serve millions of users",  Kevin Goedecke
"Scaling RAG Applications to serve millions of users", Kevin Goedecke
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Session 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdfSession 1 - Intro to Robotic Process Automation.pdf
Session 1 - Intro to Robotic Process Automation.pdf
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 

HTTP Server Push Techniques

  • 1. HTTP Server PushHTTP Server Push TechniquesTechniques www.folio3.com@folio_3
  • 2. Folio3 – OverviewFolio3 – Overview www.folio3.com @folio_3
  • 3. Who We Are  We are a Development Partner for our customers  Design software solutions, not just implement them  Focus on the solution – Platform and technology agnostic  Expertise in building applications that are: Mobile Social Cloud-based Gamified
  • 4. What We Do  Areas of Focus  Enterprise  Custom enterprise applications  Product development targeting the enterprise  Mobile  Custom mobile apps for iOS, Android, Windows Phone, BB OS  Mobile platform (server-to-server) development  Social Media  CMS based websites for consumers and enterprise (corporate, consumer, community & social networking)  Social media platform development (enterprise & consumer)
  • 5. Folio3 At a Glance  Founded in 2005  Over 200 full time employees  Offices in the US, Canada, Bulgaria & Pakistan  Palo Alto, CA.  Sofia, Bulgaria  Karachi, Pakistan Toronto, Canada
  • 6. Areas of Focus: Enterprise  Automating workflows  Cloud based solutions  Application integration  Platform development  Healthcare  Mobile Enterprise  Digital Media  Supply Chain
  • 7. Some of Our Enterprise Clients
  • 8. Areas of Focus: Mobile  Serious enterprise applications for Banks, Businesses  Fun consumer apps for app discovery, interaction, exercise gamification and play  Educational apps  Augmented Reality apps  Mobile Platforms
  • 9. Some of Our Mobile Clients
  • 10. Areas of Focus: Web & Social Media  Community Sites based on Content Management Systems  Enterprise Social Networking  Social Games for Facebook & Mobile  Companion Apps for games
  • 11. Some of Our Web Clients
  • 12. HTTP Server PushHTTP Server Push TechniquesTechniques www.folio3.com @folio_3
  • 13. Agenda  Existing HTTP Protocol Architecture  Traditional Methods for Server Push  Polling  Long Polling / Comet  Pushlets / Streaming  Comet in detail  Possible issues with Comet and their solutions  Comet Demonstration : MediaMorph  Where does HTML5 fit-in?  HTML 5 Server Sockets
  • 14. Existing HTTP Protocol Architecture  Existing HTTP  Stateless protocol  Request – Response … The end !  Client initiated communication, Always !  Server is forgetful  AJAX comes for help
  • 15. Traditional Methods : Polling  Polling  Periodic requests by the client  Time between requests would always be N time units
  • 16. Traditional Methods : Polling  Merits  Works better with very high frequency updates  May suit a very fast / frequent updating system  Very simple to implement, mostly easiest of all methods  Works with ancient systems too
  • 17. Traditional Methods : Polling  De-Merits  Too much network overhead  At times slower than expected results  The updates would always come after N time units  Possibly too many unnecessary requests  Possible browser performance degradation on the client side  Does not allow cross-domain access
  • 18. Traditional Methods : Long Polling  Long Polling / Comet  Client requests and waits for the server to respond  The server only responds back when there is any update or data available
  • 19. Traditional Methods : Long Polling  Merits  Behaves very similar to what a real server push mechanism would do  Immediate response in case of an update from the server  Comparative to Polling very low network overhead and request count  Works with most old and new systems  Works even with IE 6 !!!
  • 20. Traditional Methods : Long Polling  De-Merits  Slightly more complex to implement than polling  May not work well with very frequent updates  Needs special server & client configurations  Needs to take into account the Read Timeout enforcements by intermediate gateway or proxies  Does not allow cross-domain access
  • 21. Traditional Methods : Streaming  Streaming / Pushlet  One request to the server  Infinitely long response with continuous messages from the server  Client does not talk back unless with a new request  Javascript <Script> tag enclosed code snippets  Script tag’s URL would be a comet server side URL. Sending Javascript code snippets time to time.
  • 22. Traditional Methods : Streaming  Merits  Behaves very similar to what a real server push mechanism would do  Allows cross-domain implementations, since javascript urls can be cross-domain  Immediate response in case of an update from the server  Possibly very low network overhead  Negligible request count
  • 23. Traditional Methods : Streaming  De-Merits  May not be supported by some old systems  May cause browser memory overhead because of a long list of script tags executed on the page  Client is unable to send new request parameters in normal scenarios  All post-event logic needs to be written on the server side  Proxy servers could buffer responses causing issues
  • 24. Possible issues with Comet and their solutions  Read timeout  Orphaned requests  Very frequent updates – Hybrid Poll – Push.
  • 26. Where does HTML5 fit-in?  HTML5 offers many solutions addressing issues with existing architectures  One of the solutions is WebSockets  WebSockets address almost all issues with the existing systems
  • 27. HTML5 WebSockets  HTML5 WebSockets  Provides bi-directional, full-duplex communications channels  New URL schems  ws:// - For Plain WebSocket  wss:// - For Secure WebSocket  Very low network overhead  Only one request, true full-duplex communication  Still a long way to go. It is substantial infrastructural change
  • 28. How HTML5 WebSockets Work ?  Four step lifecycle  Browser Requests  Server Responds with Acknowledgement Tokens  Connection Establishment for Two way communication  Connection closed by either party
  • 29. Contact  For more details about our services, please get in touch with us. contact@folio3.com US Office: (408) 365-4638 www.folio3.com