SlideShare a Scribd company logo
1 of 16
Download to read offline
Bringing Comet
    to Plone
        KSS + Eventpush
 A first quick and dirty approach

       dr_jnut & ramonski


        http://plone.org
• „Comet is a giant Hack“
  - Jacob Rus

• use mechanisms unforseen by browser
  Vendors and unspecified by web standards
Traditional Web
        Applications

• Page-by-page web
• Pages load on user request
• No real time
AJAX Web Application

• Updating parts of the page with JS
• Closes each connection after a response is
  served
• No real time
Ajax with polling
• Browser polls regulary the server for
  updates.
• Wastes server resources and bandwith.
• No real real time
• Trade-off between latency and server
  load
Comet Web Application

• Sending data to the client without explicit
  request
• Rely on persistent connection between
  server and client
• REAL real time!!!
2 Strategies

• Streaming
  - Single persistent connection
• Long Polling
  - New request for each event
  - No response until an event occurs
„Forever Frame“
         IFrame
           streaming approach


• Gradually filled with script tags to be
  executed in the browser
• Rendered incrementally, so each script tag
  is executed as it is received.
• Can grow to an unreasonable size...
eventPush
 ClientSide         HttpWizard    Zope/Plone

                     HTTP proxy




eventPush iFrame     /@@feeder
HttpWizard internals
                               Proxy
                            (rewrites URI)


           VirtualHost
            www.plone.org                    Backend

Frontend                    eventPush

           VirtualHost
            www.plone.net
eventPush fileupload
 ClientSide        HttpWizard    Zope/Plone

 Upload iframe      HTTP proxy




eventPush iFrame    /@@feeder
File upload in HttpWizard
                                        FileUpload
                                           hook
                                  4.
                                                     3.
                                                               4.
                                          Proxy
                                 2.    (rewrites URI)
                                                          5.
                VirtualHost
           1.    www.plone.org                                      Backend

Frontend                               eventPush

                VirtualHost
                 www.plone.net
DEMO Time
How will this evolve?

• HTML 5 draft from WHATWG *
• Introduces server-sent events
• Much more straightforward
• Avoids comet downsides
  * Web Hypertext Application Technology Working Group
Links

• http://plone.org
• Buildout:
  https://svn.plone.org/svn/collective/
  plonekss/eventPush/buildout/trunk
Thanks to...

• KSS guys (__gotcha, ree et al.)
• Lovely systems
• Berggasthof Piz-Buin
• idSoftware (Q3 Rocketarena)
• beer in all variants

More Related Content

What's hot

Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSocketsRoland M
 
GWT Web Socket and data serialization
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serializationGWTcon
 
Introduction to Web Sockets
Introduction to Web SocketsIntroduction to Web Sockets
Introduction to Web SocketsJumping Bean
 
Google Chromebook for the Enterprise: Yeah or Meh?
Google Chromebook for the Enterprise: Yeah or Meh?Google Chromebook for the Enterprise: Yeah or Meh?
Google Chromebook for the Enterprise: Yeah or Meh?Ericom Software
 
Web performance across the HTTP to HTTPS transition
Web performance across the HTTP to HTTPS transitionWeb performance across the HTTP to HTTPS transition
Web performance across the HTTP to HTTPS transitionseanwalbran
 
Asynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and JavaAsynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and JavaJames Falkner
 
1تقرير
1تقرير1تقرير
1تقريرtech1010
 
$PENK->{'YAPC::Tiny'};
$PENK->{'YAPC::Tiny'};$PENK->{'YAPC::Tiny'};
$PENK->{'YAPC::Tiny'};Ping-Hsun Chen
 
Using WebSockets with ColdFusion
Using WebSockets with ColdFusionUsing WebSockets with ColdFusion
Using WebSockets with ColdFusioncfjedimaster
 
Push the web with HTML5
Push the web with HTML5Push the web with HTML5
Push the web with HTML5Stoyan Zhekov
 

What's hot (20)

Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSockets
 
GWT Web Socket and data serialization
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serialization
 
The HTML5 WebSocket API
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket API
 
WebSockets and Java
WebSockets and JavaWebSockets and Java
WebSockets and Java
 
Introduction to Web Sockets
Introduction to Web SocketsIntroduction to Web Sockets
Introduction to Web Sockets
 
Web Sockets
Web SocketsWeb Sockets
Web Sockets
 
WebSockets in JEE 7
WebSockets in JEE 7WebSockets in JEE 7
WebSockets in JEE 7
 
Intro to WebSockets
Intro to WebSocketsIntro to WebSockets
Intro to WebSockets
 
Google Chromebook for the Enterprise: Yeah or Meh?
Google Chromebook for the Enterprise: Yeah or Meh?Google Chromebook for the Enterprise: Yeah or Meh?
Google Chromebook for the Enterprise: Yeah or Meh?
 
Web performance across the HTTP to HTTPS transition
Web performance across the HTTP to HTTPS transitionWeb performance across the HTTP to HTTPS transition
Web performance across the HTTP to HTTPS transition
 
Asynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and JavaAsynchronous Web Programming with HTML5 WebSockets and Java
Asynchronous Web Programming with HTML5 WebSockets and Java
 
1تقرير
1تقرير1تقرير
1تقرير
 
$PENK->{'YAPC::Tiny'};
$PENK->{'YAPC::Tiny'};$PENK->{'YAPC::Tiny'};
$PENK->{'YAPC::Tiny'};
 
HTTPS and HTTP/2
HTTPS and HTTP/2HTTPS and HTTP/2
HTTPS and HTTP/2
 
Http Status Report
Http Status ReportHttp Status Report
Http Status Report
 
WebSockets with Spring 4
WebSockets with Spring 4WebSockets with Spring 4
WebSockets with Spring 4
 
Web Sockets - HTML5
Web Sockets - HTML5Web Sockets - HTML5
Web Sockets - HTML5
 
Using WebSockets with ColdFusion
Using WebSockets with ColdFusionUsing WebSockets with ColdFusion
Using WebSockets with ColdFusion
 
Jetty and Tomcat
Jetty and TomcatJetty and Tomcat
Jetty and Tomcat
 
Push the web with HTML5
Push the web with HTML5Push the web with HTML5
Push the web with HTML5
 

Viewers also liked

Module 1 Speaking Review
Module 1 Speaking ReviewModule 1 Speaking Review
Module 1 Speaking Reviewmwhitmire
 
Presentations1
Presentations1Presentations1
Presentations1Volskaya_E
 
EuroPython 2008: Tear down the walls (of virtual worlds)
EuroPython 2008: Tear down the walls (of virtual worlds)EuroPython 2008: Tear down the walls (of virtual worlds)
EuroPython 2008: Tear down the walls (of virtual worlds)Christian Scholz
 
Collaboration Assignment How to Email Students PPT
Collaboration Assignment How to Email Students PPTCollaboration Assignment How to Email Students PPT
Collaboration Assignment How to Email Students PPTmwhitmire
 
How to market Open Source projects the Web2.0 way
How to market Open Source projects the Web2.0 wayHow to market Open Source projects the Web2.0 way
How to market Open Source projects the Web2.0 wayChristian Scholz
 
Getting started in spanish presentation
Getting started in spanish presentationGetting started in spanish presentation
Getting started in spanish presentationmwhitmire
 

Viewers also liked (7)

Module 1 Speaking Review
Module 1 Speaking ReviewModule 1 Speaking Review
Module 1 Speaking Review
 
Presentations1
Presentations1Presentations1
Presentations1
 
EuroPython 2008: Tear down the walls (of virtual worlds)
EuroPython 2008: Tear down the walls (of virtual worlds)EuroPython 2008: Tear down the walls (of virtual worlds)
EuroPython 2008: Tear down the walls (of virtual worlds)
 
Collaboration Assignment How to Email Students PPT
Collaboration Assignment How to Email Students PPTCollaboration Assignment How to Email Students PPT
Collaboration Assignment How to Email Students PPT
 
How to market Open Source projects the Web2.0 way
How to market Open Source projects the Web2.0 wayHow to market Open Source projects the Web2.0 way
How to market Open Source projects the Web2.0 way
 
Marketing Problema
Marketing ProblemaMarketing Problema
Marketing Problema
 
Getting started in spanish presentation
Getting started in spanish presentationGetting started in spanish presentation
Getting started in spanish presentation
 

Similar to COMET in Plone

Codecamp Iasi-26 nov 2011 - Html 5 WebSockets
Codecamp Iasi-26 nov 2011 - Html 5 WebSocketsCodecamp Iasi-26 nov 2011 - Html 5 WebSockets
Codecamp Iasi-26 nov 2011 - Html 5 WebSocketsFlorin Cardasim
 
Codecamp iasi-26 nov 2011-web sockets
Codecamp iasi-26 nov 2011-web socketsCodecamp iasi-26 nov 2011-web sockets
Codecamp iasi-26 nov 2011-web socketsCodecamp Romania
 
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019Viktor Todorov
 
Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Arun Gupta
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyJim Jagielski
 
Websockets at tossug
Websockets at tossugWebsockets at tossug
Websockets at tossugclkao
 
TakeDownCon Rocket City: WebShells by Adrian Crenshaw
TakeDownCon Rocket City: WebShells by Adrian CrenshawTakeDownCon Rocket City: WebShells by Adrian Crenshaw
TakeDownCon Rocket City: WebShells by Adrian CrenshawEC-Council
 
Comet from JavaOne 2008
Comet from JavaOne 2008Comet from JavaOne 2008
Comet from JavaOne 2008Joe Walker
 
Hacking Client Side Insecurities
Hacking Client Side InsecuritiesHacking Client Side Insecurities
Hacking Client Side Insecuritiesamiable_indian
 
Real-Time Web applications with WebSockets
Real-Time Web applications with WebSocketsReal-Time Web applications with WebSockets
Real-Time Web applications with WebSocketsStanislav Zozulia
 
Going Live! with Comet
Going Live! with CometGoing Live! with Comet
Going Live! with CometSimon Willison
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspectiveshwetank
 
"Hidden difficulties of debugger implementation for .NET WASM apps", Andrii R...
"Hidden difficulties of debugger implementation for .NET WASM apps", Andrii R..."Hidden difficulties of debugger implementation for .NET WASM apps", Andrii R...
"Hidden difficulties of debugger implementation for .NET WASM apps", Andrii R...Fwdays
 
Server-Side Programming Primer
Server-Side Programming PrimerServer-Side Programming Primer
Server-Side Programming PrimerIvano Malavolta
 
A web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentationA web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentationJustin Dorfman
 
Apache HTTPD 2.4 Reverse Proxy: The Hidden Gem
Apache HTTPD 2.4 Reverse Proxy: The Hidden GemApache HTTPD 2.4 Reverse Proxy: The Hidden Gem
Apache HTTPD 2.4 Reverse Proxy: The Hidden GemJim Jagielski
 
HTTP/2 - How it's changing web performance
HTTP/2 - How it's changing web performanceHTTP/2 - How it's changing web performance
HTTP/2 - How it's changing web performanceMateus Prado
 
TR14-05_Martindell.pdf
TR14-05_Martindell.pdfTR14-05_Martindell.pdf
TR14-05_Martindell.pdfTomTom149267
 

Similar to COMET in Plone (20)

Codecamp Iasi-26 nov 2011 - Html 5 WebSockets
Codecamp Iasi-26 nov 2011 - Html 5 WebSocketsCodecamp Iasi-26 nov 2011 - Html 5 WebSockets
Codecamp Iasi-26 nov 2011 - Html 5 WebSockets
 
Codecamp iasi-26 nov 2011-web sockets
Codecamp iasi-26 nov 2011-web socketsCodecamp iasi-26 nov 2011-web sockets
Codecamp iasi-26 nov 2011-web sockets
 
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
The Recording HTTP Proxy: Not Yet Another Messiah - Bulgaria PHP 2019
 
Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
 
Websockets at tossug
Websockets at tossugWebsockets at tossug
Websockets at tossug
 
TakeDownCon Rocket City: WebShells by Adrian Crenshaw
TakeDownCon Rocket City: WebShells by Adrian CrenshawTakeDownCon Rocket City: WebShells by Adrian Crenshaw
TakeDownCon Rocket City: WebShells by Adrian Crenshaw
 
Comet from JavaOne 2008
Comet from JavaOne 2008Comet from JavaOne 2008
Comet from JavaOne 2008
 
Hacking Client Side Insecurities
Hacking Client Side InsecuritiesHacking Client Side Insecurities
Hacking Client Side Insecurities
 
Real-Time Web applications with WebSockets
Real-Time Web applications with WebSocketsReal-Time Web applications with WebSockets
Real-Time Web applications with WebSockets
 
Going Live! with Comet
Going Live! with CometGoing Live! with Comet
Going Live! with Comet
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
 
"Hidden difficulties of debugger implementation for .NET WASM apps", Andrii R...
"Hidden difficulties of debugger implementation for .NET WASM apps", Andrii R..."Hidden difficulties of debugger implementation for .NET WASM apps", Andrii R...
"Hidden difficulties of debugger implementation for .NET WASM apps", Andrii R...
 
HTTP2
HTTP2HTTP2
HTTP2
 
Transforming WebSockets
Transforming WebSocketsTransforming WebSockets
Transforming WebSockets
 
Server-Side Programming Primer
Server-Side Programming PrimerServer-Side Programming Primer
Server-Side Programming Primer
 
A web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentationA web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentation
 
Apache HTTPD 2.4 Reverse Proxy: The Hidden Gem
Apache HTTPD 2.4 Reverse Proxy: The Hidden GemApache HTTPD 2.4 Reverse Proxy: The Hidden Gem
Apache HTTPD 2.4 Reverse Proxy: The Hidden Gem
 
HTTP/2 - How it's changing web performance
HTTP/2 - How it's changing web performanceHTTP/2 - How it's changing web performance
HTTP/2 - How it's changing web performance
 
TR14-05_Martindell.pdf
TR14-05_Martindell.pdfTR14-05_Martindell.pdf
TR14-05_Martindell.pdf
 

More from Christian Scholz

OPen Government Vortrag Aachen
OPen Government Vortrag AachenOPen Government Vortrag Aachen
OPen Government Vortrag AachenChristian Scholz
 
Vortrag Open Government NRW
Vortrag Open Government NRWVortrag Open Government NRW
Vortrag Open Government NRWChristian Scholz
 
Intro Presenation of Open Platforms Panel at the Community Summit, Hamburg
Intro Presenation of Open Platforms Panel at the Community Summit, HamburgIntro Presenation of Open Platforms Panel at the Community Summit, Hamburg
Intro Presenation of Open Platforms Panel at the Community Summit, HamburgChristian Scholz
 
DataPortabilty TOS&EULA Taskforce
DataPortabilty TOS&EULA TaskforceDataPortabilty TOS&EULA Taskforce
DataPortabilty TOS&EULA TaskforceChristian Scholz
 
OpenID Plugin for repoze.who
OpenID Plugin for repoze.whoOpenID Plugin for repoze.who
OpenID Plugin for repoze.whoChristian Scholz
 
EU Online Surveillance Strategies
EU Online Surveillance StrategiesEU Online Surveillance Strategies
EU Online Surveillance StrategiesChristian Scholz
 
Europython 2008: DataPortability and Python
Europython 2008: DataPortability and PythonEuropython 2008: DataPortability and Python
Europython 2008: DataPortability and PythonChristian Scholz
 
9 ways to spread the word about the Snow Sprint
9 ways to spread the word about the Snow Sprint9 ways to spread the word about the Snow Sprint
9 ways to spread the word about the Snow SprintChristian Scholz
 
Introduction to OpenSocial
Introduction to OpenSocialIntroduction to OpenSocial
Introduction to OpenSocialChristian Scholz
 
The new Second Life Grid Architecture explained
The new Second Life Grid Architecture explainedThe new Second Life Grid Architecture explained
The new Second Life Grid Architecture explainedChristian Scholz
 
The new Second Life Architecture
The new Second Life Architecture The new Second Life Architecture
The new Second Life Architecture Christian Scholz
 

More from Christian Scholz (14)

OPen Government Vortrag Aachen
OPen Government Vortrag AachenOPen Government Vortrag Aachen
OPen Government Vortrag Aachen
 
Vortrag Open Government NRW
Vortrag Open Government NRWVortrag Open Government NRW
Vortrag Open Government NRW
 
Open Government - Warum?
Open Government - Warum?Open Government - Warum?
Open Government - Warum?
 
OpenData-Vortrag Bochum
OpenData-Vortrag BochumOpenData-Vortrag Bochum
OpenData-Vortrag Bochum
 
Intro Presenation of Open Platforms Panel at the Community Summit, Hamburg
Intro Presenation of Open Platforms Panel at the Community Summit, HamburgIntro Presenation of Open Platforms Panel at the Community Summit, Hamburg
Intro Presenation of Open Platforms Panel at the Community Summit, Hamburg
 
DataPortabilty TOS&EULA Taskforce
DataPortabilty TOS&EULA TaskforceDataPortabilty TOS&EULA Taskforce
DataPortabilty TOS&EULA Taskforce
 
OpenID Plugin for repoze.who
OpenID Plugin for repoze.whoOpenID Plugin for repoze.who
OpenID Plugin for repoze.who
 
EU Online Surveillance Strategies
EU Online Surveillance StrategiesEU Online Surveillance Strategies
EU Online Surveillance Strategies
 
Europython 2008: DataPortability and Python
Europython 2008: DataPortability and PythonEuropython 2008: DataPortability and Python
Europython 2008: DataPortability and Python
 
What is Data Portability?
What is Data Portability?What is Data Portability?
What is Data Portability?
 
9 ways to spread the word about the Snow Sprint
9 ways to spread the word about the Snow Sprint9 ways to spread the word about the Snow Sprint
9 ways to spread the word about the Snow Sprint
 
Introduction to OpenSocial
Introduction to OpenSocialIntroduction to OpenSocial
Introduction to OpenSocial
 
The new Second Life Grid Architecture explained
The new Second Life Grid Architecture explainedThe new Second Life Grid Architecture explained
The new Second Life Grid Architecture explained
 
The new Second Life Architecture
The new Second Life Architecture The new Second Life Architecture
The new Second Life Architecture
 

Recently uploaded

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Recently uploaded (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

COMET in Plone

  • 1. Bringing Comet to Plone KSS + Eventpush A first quick and dirty approach dr_jnut & ramonski http://plone.org
  • 2. • „Comet is a giant Hack“ - Jacob Rus • use mechanisms unforseen by browser Vendors and unspecified by web standards
  • 3. Traditional Web Applications • Page-by-page web • Pages load on user request • No real time
  • 4. AJAX Web Application • Updating parts of the page with JS • Closes each connection after a response is served • No real time
  • 5. Ajax with polling • Browser polls regulary the server for updates. • Wastes server resources and bandwith. • No real real time • Trade-off between latency and server load
  • 6. Comet Web Application • Sending data to the client without explicit request • Rely on persistent connection between server and client • REAL real time!!!
  • 7. 2 Strategies • Streaming - Single persistent connection • Long Polling - New request for each event - No response until an event occurs
  • 8. „Forever Frame“ IFrame streaming approach • Gradually filled with script tags to be executed in the browser • Rendered incrementally, so each script tag is executed as it is received. • Can grow to an unreasonable size...
  • 9. eventPush ClientSide HttpWizard Zope/Plone HTTP proxy eventPush iFrame /@@feeder
  • 10. HttpWizard internals Proxy (rewrites URI) VirtualHost www.plone.org Backend Frontend eventPush VirtualHost www.plone.net
  • 11. eventPush fileupload ClientSide HttpWizard Zope/Plone Upload iframe HTTP proxy eventPush iFrame /@@feeder
  • 12. File upload in HttpWizard FileUpload hook 4. 3. 4. Proxy 2. (rewrites URI) 5. VirtualHost 1. www.plone.org Backend Frontend eventPush VirtualHost www.plone.net
  • 14. How will this evolve? • HTML 5 draft from WHATWG * • Introduces server-sent events • Much more straightforward • Avoids comet downsides * Web Hypertext Application Technology Working Group
  • 15. Links • http://plone.org • Buildout: https://svn.plone.org/svn/collective/ plonekss/eventPush/buildout/trunk
  • 16. Thanks to... • KSS guys (__gotcha, ree et al.) • Lovely systems • Berggasthof Piz-Buin • idSoftware (Q3 Rocketarena) • beer in all variants