Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Server Push
                  or „How to initiate client side changes from the server
                          without po...
Websocket




Donnerstag, 11. Juni 2009
HTML5




Donnerstag, 11. Juni 2009
var myWebSocket = new(quot;ws://www.websocket.orgquot;);
             myWebSocket.onmessage = function(evt)
         { ale...
Can you use it?




Donnerstag, 11. Juni 2009
IE6 (released 2001) market share May 09:


                                      ~15%

Donnerstag, 11. Juni 2009
No!

Donnerstag, 11. Juni 2009
Then what?




Donnerstag, 11. Juni 2009
Juggernaut




Donnerstag, 11. Juni 2009
needs flash




Donnerstag, 11. Juni 2009
no thanks




Donnerstag, 11. Juni 2009
Comet

Donnerstag, 11. Juni 2009
general technique, no implementation




Donnerstag, 11. Juni 2009
longer connections




Donnerstag, 11. Juni 2009
server and client side components




Donnerstag, 11. Juni 2009
server side




Donnerstag, 11. Juni 2009
traditionally (think Apache):
                            one thread per connection




Donnerstag, 11. Juni 2009
Comet servers
                     reduce server-side resources per connection




                     • Reduce overhead ...
client side




Donnerstag, 11. Juni 2009
asynchronous request




Donnerstag, 11. Juni 2009
hold it!




Donnerstag, 11. Juni 2009
drop connection after receiving something useful




Donnerstag, 11. Juni 2009
then reinitiate connection




Donnerstag, 11. Juni 2009
still request/reponse




Donnerstag, 11. Juni 2009
BUT

                            data flow occurs on the server‘s schedule

                close approximation of the serv...
Implementations




Donnerstag, 11. Juni 2009
Bayeux




Donnerstag, 11. Juni 2009
standard protocol




Donnerstag, 11. Juni 2009
many servers use it

                                 Cometd
                                ErlyComet
                   ...
many client libs use it

                               Dojo (inventor)
                                  jQuery
         ...
combine any server and js lib




Donnerstag, 11. Juni 2009
Jabber




Donnerstag, 11. Juni 2009
JS libs available




Donnerstag, 11. Juni 2009
mature Server




Donnerstag, 11. Juni 2009
scales




Donnerstag, 11. Juni 2009
can hold ten thousands connections on a single server




Donnerstag, 11. Juni 2009
proprietary solutions




Donnerstag, 11. Juni 2009
RMDS2Web Server

                 500.000 concurrent users on single Dell-server

                        quot;most scalab...
APE (Ajax Push Engine)

                                quot;Real time data streamingquot;

                              ...
Who is doing it?




Donnerstag, 11. Juni 2009
Facebook
                            Meebo (Chat)
                                 ...




Donnerstag, 11. Juni 2009
That is all!




Donnerstag, 11. Juni 2009
Reminder:

                            Rails-Konferenz call for papers deadline:



                               1st of ...
Upcoming SlideShare
Loading in …5
×

Server push and Comet (Rails user group Hamburg 2009-06-10)

5,718 views

Published on

This is the short talk I gave at the Rails usergroup Hamburg event on 2009-06-10.

Published in: Technology
  • Check out StreamHub Push Server in this field:

    [http://www.stream-hub.com/]
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Server push and Comet (Rails user group Hamburg 2009-06-10)

  1. 1. Server Push or „How to initiate client side changes from the server without polling every second or so“ Donnerstag, 11. Juni 2009
  2. 2. Websocket Donnerstag, 11. Juni 2009
  3. 3. HTML5 Donnerstag, 11. Juni 2009
  4. 4. var myWebSocket = new(quot;ws://www.websocket.orgquot;); myWebSocket.onmessage = function(evt) { alert( quot;Received Message: quot; + evt.data); }; Donnerstag, 11. Juni 2009
  5. 5. Can you use it? Donnerstag, 11. Juni 2009
  6. 6. IE6 (released 2001) market share May 09: ~15% Donnerstag, 11. Juni 2009
  7. 7. No! Donnerstag, 11. Juni 2009
  8. 8. Then what? Donnerstag, 11. Juni 2009
  9. 9. Juggernaut Donnerstag, 11. Juni 2009
  10. 10. needs flash Donnerstag, 11. Juni 2009
  11. 11. no thanks Donnerstag, 11. Juni 2009
  12. 12. Comet Donnerstag, 11. Juni 2009
  13. 13. general technique, no implementation Donnerstag, 11. Juni 2009
  14. 14. longer connections Donnerstag, 11. Juni 2009
  15. 15. server and client side components Donnerstag, 11. Juni 2009
  16. 16. server side Donnerstag, 11. Juni 2009
  17. 17. traditionally (think Apache): one thread per connection Donnerstag, 11. Juni 2009
  18. 18. Comet servers reduce server-side resources per connection • Reduce overhead per thread • use event libraries • use microthreads (e.g. Erlang) Donnerstag, 11. Juni 2009
  19. 19. client side Donnerstag, 11. Juni 2009
  20. 20. asynchronous request Donnerstag, 11. Juni 2009
  21. 21. hold it! Donnerstag, 11. Juni 2009
  22. 22. drop connection after receiving something useful Donnerstag, 11. Juni 2009
  23. 23. then reinitiate connection Donnerstag, 11. Juni 2009
  24. 24. still request/reponse Donnerstag, 11. Juni 2009
  25. 25. BUT data flow occurs on the server‘s schedule close approximation of the server → client flow Donnerstag, 11. Juni 2009
  26. 26. Implementations Donnerstag, 11. Juni 2009
  27. 27. Bayeux Donnerstag, 11. Juni 2009
  28. 28. standard protocol Donnerstag, 11. Juni 2009
  29. 29. many servers use it Cometd ErlyComet GlassFish Jetty Orbited Persevere ... Donnerstag, 11. Juni 2009
  30. 30. many client libs use it Dojo (inventor) jQuery GWT ... Donnerstag, 11. Juni 2009
  31. 31. combine any server and js lib Donnerstag, 11. Juni 2009
  32. 32. Jabber Donnerstag, 11. Juni 2009
  33. 33. JS libs available Donnerstag, 11. Juni 2009
  34. 34. mature Server Donnerstag, 11. Juni 2009
  35. 35. scales Donnerstag, 11. Juni 2009
  36. 36. can hold ten thousands connections on a single server Donnerstag, 11. Juni 2009
  37. 37. proprietary solutions Donnerstag, 11. Juni 2009
  38. 38. RMDS2Web Server 500.000 concurrent users on single Dell-server quot;most scalable real-time push web systemquot; commercial Donnerstag, 11. Juni 2009
  39. 39. APE (Ajax Push Engine) quot;Real time data streamingquot; open source client and server proprietary protocol (NOT Bayeux) Donnerstag, 11. Juni 2009
  40. 40. Who is doing it? Donnerstag, 11. Juni 2009
  41. 41. Facebook Meebo (Chat) ... Donnerstag, 11. Juni 2009
  42. 42. That is all! Donnerstag, 11. Juni 2009
  43. 43. Reminder: Rails-Konferenz call for papers deadline: 1st of July Donnerstag, 11. Juni 2009

×