Server Push Comet

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Server Push Comet - Presentation Transcript

    1. Server Push: Ausliefern von Daten ohne Browser- Anfrage auf Basis einer Comet-Architektur Martin Ruprecht, MAYFLOWER-Donnerstag 06.August 2009 München MAYFLOWER-Donnerstag 24.September 2009 Würzburg
    2. Agenda ❙ Client/ Server-Kommunikation mit AJAX ❙ Einführung in Comet ❙ Notwendigkeit ❙ Comet-Architektur ❙ AJAX vs. Comet ❙ Auswirkungen ❙ Herausforderungen ❙ Comet-Techniken ❙ Application Server ❙ Bayeux Protokoll ❙ Beispiele ❙ Zusammenfassung Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 2
    3. Client/ Server- Kommunikation ❙ synchroner Datenaustausch ❙ eine GET-Anfrage (Request) ❙ eine HTTP-Antwort (Response) ❙ Asynchroner Datenaustausch (AJAX) ❙ Asynchronous JavaScript And XML ❙ Browser kapselt Request in eigenen Thread ❙ Idealfall: reiner Datenaustausch - Teile der Webseite werden aktualisiert ❙ Typischer Einsatz von AJAX: ❙ Autocompletion, Validierung, Tooltipps,... Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 3
    4. Client/ Server- Kommunikation ❙ AJAX-Architektur ❙ Es findet immer ein Request statt ❙ Grenzen von AJAX: ❙ Chat-Anwendungen, Spiele, Live-Daten vom Server Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 4
    5. Einführung in Comet ❙ „The term "Comet" describes the exchanges between a client and a server in which the server, rather than the client, initiates the contact“ (Alex Russell, Dojo project) Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 5
    6. Einführung in Comet ❙ Notwendigkeit Verbleib auf AJAX einer Webseite Zeit zum nächsten Reload Zeit Übersetzt aus: Comet: Making The Web a 2-Way Medium Server Push/ Comet Joe Walker, Direct Web Remoting Lead Developer Architektur © MAYFLOWER GmbH 2009 6
    7. Was ist Comet ❙ Eine Architektur, kein Protokoll ❙ Auch Server Push bzw. HTTP Push genannt ❙ Wichtigstes Merkmal: Server triggert Kommunikation / Datenübertragung zum Client ❙ Typische Anwendungsfälle: ❙ Chat-Anwendungen, Börsentrends, Umfrage- Ergebnisse, Collaboration-Tools, Spiele, Live-Ticker ❙ Google Docs (spreadsheet) ❙ GMail ❙ Zimbra ❙ Facebook Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 7
    8. Comet- Architektur Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 8
    9. AJAX vs. Comet … oder das geht doch mit AJAX auch? ❙ AJAX polling ❙ Requests in sehr kurzen Abständen, um Änderungen vom Server „abzufragen“ ❙ hohe Serverlast entsteht ❙ längere Abstände führen zu Datenverlusten ❙ Comet ❙ Server Push: „Server meldet sich, wenn's was Neues gibt“ ❙ Nur kurz Serverlast ❙ keine Datenverluste Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 9
    10. Auswirkungen ❙ … auf die Programmierung: ❙ der Server triggert die Events ❙ Request- / Response-Verhalten ❙ Anforderungen an den Client ❙ Ready-States ❙ … auf die Anwender: ❙ Bessere Usability, snappy Experience, ... ❙ … auf die Serverumgebung: ❙ Application Server (z.B. Jetty, Persevere, Grizzly, Perbal) Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 10
    11. Herausforderungen ❙ HTTP 1.1 ❙ max. 2 Verbindungen Browser / Domain ❙ Comet: mehrere Verbindungen gleichzeitig ❙ Request- / Response-Ablauf ❙ Apache Server ❙ ein Thread pro Verbindung zum Client ❙ Requests werden so schnell wie möglich abgearbeitet ❙ Datenbank-Transaktionen pro Request ❙ Verbindungsaufbau ❙ Übernahme der Änderungen ❙ Proxies ❙ Caching (wartet bis Antwort komplett ist) Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 11
    12. Technische Umsetzung ❙ Long Polling ❙ Request (XHR, iFrame) ❙ Server verarbeitet die Anfrage sehr langsam ❙ bei Event, sofort Response ❙ neuer Request ❙ Problem mit Proxies wird umgangen Client Server startAsyncQuery() isQueryFinished() sleep time isQueryFinished() sleep time Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 12
    13. Technische Umsetzung ❙ Streaming XHR ❙ persistente Verbindung von Browser zu Server ❙ chunked mode ❙ Forever Frame (<script> Tag in iframe) Client Server openConnection() sendData() sendData() closeConnection() Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 13
    14. Application Server ❙ Inboard ❙ Comet ist Bestandteil der Webserver-Architektur (z. B. DWR Server Framework) ❙ Einfacher für Neuentwicklungen ❙ Skaliert nur bedingt ❙ Comet ist „nur“ ein Teil der Infrastruktur ❙ z. B. Jetty Continous, entkoppelt Thread pro Verbindung Application Server Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 14
    15. Application Server ❙ Outboard ❙ Comet ist entkoppelt vom Webserver und läuft auf einem eigenen Server ❙ verhält sich wie ein Add-On (z.B. CometD Event Bus) ❙ leichte Integration bei bestehenden Environments ❙ Einstieg ist schwieriger Application CometD Server Server Push/ Comet CometD = Comet Daemon Architektur © MAYFLOWER GmbH 2009 15
    16. Bayeux Protokoll ❙ Protokoll für Comet / Standardisierung für Comet ❙ Kommunikation zwischen Bayeux-Client und Bayeux Server ❙ Protokoll basiert auf sog. Publishing und Subscribing von Kanälen (channels) durch Server und Client ❙ Datenaustausch in JSON ❙ Aufbau einer permanenten Verbindung durch Handshake oder einfache one-off Nachrichten Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 16
    17. Bayeux Protokoll im Einsatz ❙ Comet- Server benötigt keine Application-Logik ❙ Kernaufgabe: Routing der Nachrichten ❙ Die eigentliche Logik kann auf der bevorzugten Plattform bleiben. ❙ Black Box Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 17
    18. Bayeux Protokoll im Einsatz Client Server Publisher Subscriber Multi- Channels CometD Bayeux Objekt Instanz HTTP Transport Subscriber Publisher Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 18
    19. Beispiele ❙ Stocker Application ❙ Persevere Server (basierend auf Jetty) ❙ CometD ❙ Dojo im Frontend <script type="text/javascript"> dojo.require("dojox.cometd.RestChannels"); //do some more comet </script> ❙ Chat ❙ Jetty ❙ CometD ❙ Dojo im Frontend Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 19
    20. Zusammenfassung ❙ Bestimmten Anforderungen der Webapplikationen kann AJAX nicht mehr genügen ❙ Chat, Spiel, kollaboratives Arbeiten, Umfragen,... ❙ Server- und Client-Daten zu unterschiedlich ❙ Comet als Architekur, um Daten vom Server zum Client zu senden ❙ Einsatz von Application-Server ❙ CometD und Bayeux als nützliche Hilfe ❙ Zukunftsmusik: HTML 5 ❙ WebSockets Server Push/ Comet Architektur © MAYFLOWER GmbH 2009 20
    21. Vielen Dank für die Aufmerksamkeit! Martin Ruprecht Mayflower GmbH Mannhardtstr. 6 80538 München +49 (89) 24 20 54 - 1116 martin.ruprecht@mayflower.de
    SlideShare Zeitgeist 2009

    + Mayflower GmbHMayflower GmbH Nominate

    custom

    447 views, 0 favs, 1 embeds more stats

    This are the slides to the talk about the comet arc more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 447
      • 422 on SlideShare
      • 25 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 1
    Most viewed embeds
    • 25 views on http://code-inside.de

    more

    All embeds
    • 25 views on http://code-inside.de

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories