SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler 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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

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
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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
 

Último

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
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
 
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
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 

Último (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
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
 
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
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

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