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.

Feedbox - ServerPush Implementierung

2,159 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Feedbox - ServerPush Implementierung

  1. 1. Feedbox Clemens Heimlich & Martin Wöginger
  2. 2. HTTP-Serverpush
  3. 3. Wer sind wir • Clemens Heimlich http://openweb-berlin.de/ • Martin Wöginger http://www.exasoft.net/mw/
  4. 4. Erfahrungen • Palabea: Community mit Videochat, Skype ähnliches Kommunikationsfenster • dailyme: mobiles Video • i2-Proxy • Sixbreak: Online - Quiz
  5. 5. Daten in Realtime vom Server zum Client
  6. 6. Kommunikation • Simplex • Half-Duplex • Full-Duplex
  7. 7. TCP Übertragungsebene
  8. 8. Http ist ein Client/ Server Protokoll
  9. 9. HTTP Request/ Response Paradigma
  10. 10. HTTP Request/ Response Paradigma
  11. 11. Daten in Realtime vom Server zum Client!!!
  12. 12. Polling • einfache Implementierung • hohe Serverlast • hohe Latenzzeit, die sich aus dem Pollinginterval ergibt
  13. 13. Polling • einfache Implementierung • hohe Serverlast • hohe Latenzzeit, die sich aus dem Pollinginterval ergibt
  14. 14. Polling • einfache Implementierung • hohe Serverlast • hohe Latenzzeit, die sich aus dem Pollinginterval ergibt
  15. 15. Juggernaut • simpel • Flash basiert • propietäres Protokoll
  16. 16. Comet • Beschreibung einer Lösung • Sammlung HTTP Techniken • Low Latency Data
  17. 17. Streaming • HTTP/1.1 Response • Transfer-Encoding chunked
  18. 18. Forever Frame • hidden iframe • lädt im Hintergrund • schlechte Userexperience mit Internet Explorer
  19. 19. XHR mit Streaming- Response • XMLHttpRequest • bietet beste Performance • wieder IE: erst ab Explorer 8 • xhr.onreadystatechange
  20. 20. Probleme mit http/1.1 'Transfer-Encoding chunked' • Proxies • PEP: Performance Enhancing Proxy • Firewalls • Download only
  21. 21. Long Polling • HTTP/1.0 Response • Content-Length Header
  22. 22. Long Polling
  23. 23. Long Polling • kompatibler • Reaktion möglich • etwas höhere Latenzzeit gegenüber Streaming • mehr Overhead
  24. 24. Comet Server • Connection Managment: Threading • Erlang, C, Python und Java
  25. 25. Off-board Comet vs. On-board Comet
  26. 26. Serverlösungen • Orbited • Glassfish • Jetty • http://cometdaily.com/maturity.html
  27. 27. noch mal die Aufgabenstellungen • Quiz • Spiel einladen • Fragen beantworten • Fragen synchron ausliefern
  28. 28. Eigene Lösung • HTTP • Port 80 • Einfachheit und Flexibilität bei der Nutzung • hohe Skalierbarkeit der serverseitigen Anwendung
  29. 29. Feedbox
  30. 30. Feedbox fcgi • Autor: Andreas Heimlich, www.heimb.de • in C geschriebene fcgi - Anwendung • fixed threaded
  31. 31. Protokolle
  32. 32. Bosh • Bidirectional-streams Over Synchronous HTTP • XMPP Erweiterung • XML basierend • Long Polling
  33. 33. XMPP • offener Standard • komplett • erweiterbar • komplex • verbose
  34. 34. Bayeux • cometd.org (Dojo Foundation) • JSON • Publish - Subscribe • de facto Standard: Basis der meisten Comet Lösungen
  35. 35. Stomp • Streaming Text Orientated Messaging Protocol • einfach & straight forward • 8 Kommandos
  36. 36. SEND destination:/queue/a hello queue a ^@
  37. 37. gesammelte Probleme • Mobile Client: RAM • Browser: HTTP Connection Limit • Push Server: Ticket Hijacking
  38. 38. Aber: Comet ist ein Hack!!!
  39. 39. WebSockets
  40. 40. Google Wave
  41. 41. Neue Anforderungen • Chat, Notifications, Mulitplayer- Spiele, Collaboration, Live Ticker, Reporting, Monitoring, Rich User Interface • Tunneling (anderer Protokolle wie XMPP)
  42. 42. Fragen & Antworten ?
  43. 43. Danke!!

×