Bringing Comet
    to Plone
        KSS + Eventpush
 A first quick and dirty approach

       dr_jnut & ramonski


        ...
• „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...
Ajax with polling
• Browser polls regulary the server for
  updates.
• Wastes server resources and bandwith.
• No real rea...
Comet Web Application

• Sending data to the client without explicit
  request
• Rely on persistent connection between
  s...
2 Strategies

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


• Gradually filled with script tags to be
  executed in the...
eventPush
 ClientSide         HttpWizard    Zope/Plone

                     HTTP proxy




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


           VirtualH...
eventPush fileupload
 ClientSide        HttpWizard    Zope/Plone

 Upload iframe      HTTP proxy




eventPush iFrame    /@...
File upload in HttpWizard
                                        FileUpload
                                           ho...
DEMO Time
How will this evolve?

• HTML 5 draft from WHATWG *
• Introduces server-sent events
• Much more straightforward
• Avoids c...
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)
• be...
Upcoming SlideShare
Loading in...5
×

COMET in Plone

2,868

Published on

COMET is an upcoming method for delivering real-time interaction to a website by using server-push technologies. At the Snow Sprint 2008 Jean-Nicolas Bes and Ramon Bartl worked on making COMET work for the Open Source CMS Plone.

This is their presentation from the final sprint summary.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,868
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
40
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

COMET in Plone

  1. 1. Bringing Comet to Plone KSS + Eventpush A first quick and dirty approach dr_jnut & ramonski http://plone.org
  2. 2. • „Comet is a giant Hack“ - Jacob Rus • use mechanisms unforseen by browser Vendors and unspecified by web standards
  3. 3. Traditional Web Applications • Page-by-page web • Pages load on user request • No real time
  4. 4. AJAX Web Application • Updating parts of the page with JS • Closes each connection after a response is served • No real time
  5. 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. 6. Comet Web Application • Sending data to the client without explicit request • Rely on persistent connection between server and client • REAL real time!!!
  7. 7. 2 Strategies • Streaming - Single persistent connection • Long Polling - New request for each event - No response until an event occurs
  8. 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. 9. eventPush ClientSide HttpWizard Zope/Plone HTTP proxy eventPush iFrame /@@feeder
  10. 10. HttpWizard internals Proxy (rewrites URI) VirtualHost www.plone.org Backend Frontend eventPush VirtualHost www.plone.net
  11. 11. eventPush fileupload ClientSide HttpWizard Zope/Plone Upload iframe HTTP proxy eventPush iFrame /@@feeder
  12. 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
  13. 13. DEMO Time
  14. 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. 15. Links • http://plone.org • Buildout: https://svn.plone.org/svn/collective/ plonekss/eventPush/buildout/trunk
  16. 16. Thanks to... • KSS guys (__gotcha, ree et al.) • Lovely systems • Berggasthof Piz-Buin • idSoftware (Q3 Rocketarena) • beer in all variants
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×