Realtime web
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
797
On Slideshare
795
From Embeds
2
Number of Embeds
2

Actions

Shares
Downloads
30
Comments
0
Likes
0

Embeds 2

http://www.linkedin.com 1
http://www.deimeke.net 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Das ist ein Management-Talk. Erwartet also kein Niveau. \n
  • Mit diesem Bild könnte man denken, das wäre ein Vortrag über Frauen in der Informatik. Ist es aber nicht.\nZur Einstimmung ein Bild von den beiden Protagonisten, die erst bei den Rich Internet Applications, und nun beim Real Time Web eine grosse Rolle spielen. \nDass wir ITler tatsächlich mal mit dem identischen Toolset wie die Raumpflege arbeiten hätte vermutlich keiner erwartet.\nDer Begriff AJAX wurde 2005 geprägt, und steht für Asynchronous JavaScript and XML. Die Technik gab es schon deutlich vorher. Wenn man die Entwickler fragt, haben sie _alle_ seit 1996 bereits mit xmlHTTPRequest gearbeitet, nur heimlich. Ich auch :-).\n
  • Google Suggest war das erste, das tatsächlich draussen war, vermutlich erinnern sich noch einige an die erste Reaktion „Warum kommt da ein Ergebnis bevor ich mit tippen fertig bin? \nDer endgültige Business-Nutzen war hier aber noch nicht abzusehen - aber autocomplete/ suggest ist heute eine Standardfunktion für Suchmasken und Filter.\n
  • Mit Google Mail begann der eigentliche Hype. Was vorher als technische Spielerei abgetan wurde, wurde plötzlich zu einer massentauglichen Technologie, die neue Massstäbe im Bereich Usability setzt. Das Zeitalter, in dem viele Nutzer aus Sicherheitsgründen JavaScript global deaktivieren und das BSI vom Einsatz abrät ist vorbei, ab jetzt wird Javascript zwingend vorausgesetzt.\n
  • Comet wurde nur ein Jahr nach AJAX, also 2006, als Begriff geprägt. Es handelt sich nicht um eine Akronym - sondern nur um die größte Konkurrenzmarke zu Ajax im Waschmittelbereich in den USA. Comet ermöglicht die Kommunikation vom Server zum Client, also das, was 10 Jahre mal Push-Technologie genannt wurde. \nNetscape hatte bereits 1995 ein Feature eingeführt, dass das nachliefern von neuer Information vom Server implementiert hat - das konnte sich nicht durchsetzen, nicht zuletzt, weil Microsoft dieses Feature im Gegensatz zu allen anderen Browsern bis heute nicht unterstützt.\n
  • Hier haben wir den Google Suggest von Comet und das klassische Beispiel für Realtime Web. Twitter bewegt sich in Echtzeit. \nDie Information, dass jetzt noch X neue Nachrichten da sind, wird unmittelbar über COMET / PUSH an den Client geliefert.\n
  • Das Google Mail von Comet heisst Facebook. Hier wurde nicht nur durch neue Meldungen wie bei Twitter, sondern auch durch den Chat und die Status-Icons in der linken oberen Ecke viel Funktionalität mit Ajax bedient. \n
  • Das Google Mail von Comet heisst Facebook. Hier wurde nicht nur durch neue Meldungen wie bei Twitter, sondern auch durch den Chat und die Status-Icons in der linken oberen Ecke viel Funktionalität mit Ajax bedient. \n
  • Das Google Mail von Comet heisst Facebook. Hier wurde nicht nur durch neue Meldungen wie bei Twitter, sondern auch durch den Chat und die Status-Icons in der linken oberen Ecke viel Funktionalität mit Ajax bedient. \n
  • Diese Echtzeitigkeit der Kommunikation wirkt sich inzwischen schon auf alle anderen Bereiche aus.\nSeit 3 Monaten ist die Real Time Search auch Bestandteil der Google-Suche in Deutschland. Und wie man sieht, hat auch Bing nachgezogen.\nUnd Google versucht sich mit Google Buzz - und dem Kauf von 4square - auch aktiv im Realtime-Geschäft zu positionieren.\n\n
  • Am besten Tag von 2009 - dem 14. Dezember - hat Amazon 9.5 Millionen Produkte verkauft. \nFür jedes bei Amazon bestellte Produkt gibt es 4 Facebook-Updates und 3 Tweets. \n
  • Warum ist Facebook und Twitter so attraktiv? \nHier gibt es zwei Paradigmen-Wechsel.\nIm Gegensatz zum „alten Web“ wird nicht nur Content angeboten, sondern auch Kontext. \nDie Informationen sind für mich relevant, weil sie mich sozial betreffen weil ich selbst nach ihnen gesucht oder gefiltert habe, und weil sie echtzeitig \nkommen. \nDieser Kontext kann von mir und meiner Applikation direkt genutzt werden - in Form der Facebook Applikationen. Ich bekomme praktisch alle Information - sogar die der Freunde der Nutzer meiner Applikation - frei haus, und kann darauf reagieren.\n\n
  • Und noch ein zweiter Wechsel zeigt sich: vorher habe ich nach dem Inhalt selbst gesucht, und habe dann auf ihn navigiert. \nJetzt stehe ich im Stream, dh. die Inhalte kommen vorgefertigt und für mich zugeschnitten dann auf mich zu, wenn sie passieren. \nIn Facebook und Twitter ist das wichtigste Element der Nachrichtenstream.\nUnd, wie gesagt, ich kann direkt darauf mit meiner Applikation reagieren.\n
  • Ich hatte am anfang gesagt, dass ist ein Managementtalk. Jetzt sind wir da, wo die Buzzwords kommen.\nEs gibt viele Beispiele, wie sich diese neuen Fähigkeiten auswirken werden. Im Real Time Customer Service bekommt der Kunde direkt online per Chat hilfe, wenn er eine Frage hat. \nBei Real Time Meinungen sehe ich die letzten Kritiken zum Pizzalieferdienst bei mir um die Ecke, wie bei Bringbutler zu sehen. \nReal Time Targeted Marketing erlaubt auf Basis der Lagerbestände, der geographischen Adresse des Kunden und seinem aktuellen Warenkorb gezielt Werbung zu schalten. \nSAP zeigt mit seinem Gravity, wie man das ganze benutzt - in Real Time Collaboration werden Business-Diagramm in Echtzeit gemeinsam erstellt. \nEin Shop kann in Echtzeit Gruppenkäuft organisieren oder bewerben, und hierfür Rabatte einräumen - oder parallel zu Werbekampagnen im Fernsehen Werbung schalten. \nBishin zur Selbstbezüglichkeit: die Trends auf Twitter werden gemessen und gezielt beworben. \nWas sich genau wie und vor allem wann durchsetzen wird ist nicht klar - das musste auch Google mit Google Wave akzeptieren.\nAber es gibt noch einen anderen Bereich, in dem Realtime eine Rolle spielt: \n
  • Die älteren Anwesenden können sich vermutlich noch an eine Zeit erinnern, als Handys noch zum telefonieren genutzt wurden. \nWer sich heute im Fernsehen eine Handy-Werbung anschaut, bekommt etwas ganz anderes zu sehen: die Facebook, Twitter und Google-Maps-Applikation. \nMobile bietet noch mehr Kontext: Location-Based Services erlauben eine direkte Adressierung aufgrund des Ortes des Nutzers. \nDer Mobile Status hört nicht mit Geodaten auf. Aktuelle Fotos, oder etwa eingescannte Barcodes, mein Telefonbuch, die Musik auf meinem Handy und ähnliches erzeugen noch mehr kontext.\n
  • Und mobile Geräte bringen noch einen Unterschied: ab jetzt ist man immer online und erreichbar. \nDienste wie Aka-aki melden sich per Push mit gezielten Informationen zu meiner Geo-Position. Ich bin aber nur dann erreichbar, wenn mich etwas erreicht, dass in meinem Stream relevant ist.\nWie bei allen neuen Technologien sind die First Adopter schon mit dabei - Aka Aki ist schwul dominiert. \nIch weiss nicht, ob es bereits einen Adult friend finder fuckability radar gibt, wenn nicht, ist das eine reine zeitfrage. \nÜberleitung: aber was hat das mit Web zu tun?\n
  • Der mobile Client ist nicht der Browser, sondern die App. das hat mehrere Gründe\na) für den Nutzer ist das Deployment aus dem Appstore einfacher als der Bookmark im mobilen Browser\nb) die Passwort-Eingabe ist mühsam, man will nicht jedes mal über den Bildschirm einen Login eingeben\nDas heisst aber nicht, dass es sich hier nicht um eine Web-Anwendung handelt - im Gegenteil, Tools wie Titanium oder PhoneGap und auch die Aktivitäten der Hersteller von mobilen Devices zeigen einen deutlichen Trend zur Konvergenz. Die IPhone oder Android-App der Zukunft ist eine Web-Applikation\n\n
  • \n
  • Jetzt kommt es mal zum Development. \n
  • Aber mal konkret: Was passiert, wenn unser Chef Realtime web von uns will? \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • 2000 hätten wir das über ein regelmässiges Polling gelöst ... \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • In beiden Fällen haben wir mit klassischen Web-Applikationen ein Problem. \n
  • Nodejs: JavaScriptV8-Engine von Google -> FAST\nMonolithisch, schön zu programmieren.\n
  • CometD: Alt, Python, von den Dojo-Jungs\n
  • \n
  • \n
  • Die Schnittstelle von PHP zum XMPP kann direkt über XMPP - aber durchaus auch durch einen Rest-Service erfolgen.\n
  • XMPP kann eigentlich alles transportieren. \nBayeux ist _deutlich_ einfacher\n
  • \n
  • Websockets sind von den Bayeux-Protokollen inspiriert. \nDurch die Anforderungen an die Client- und Serverwelt wird es aber noch einen Moment dauern, bis sie sich in der Breite durchsetzen. \n
  • \n
  • \n

Transcript

  • 1. Mayflower Donnerstag -Realtime Web oderwie COMET am Ende dochnoch cool wurde © 2010 Mayflower GmbH
  • 2. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 3. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 4. Foto:WikipediaRealtime Web I CommonsI March 25, 2010 Mayflower GmbH I
  • 5. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 6. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 7. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 8. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 9. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 10. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 11. 4040.0 2830.0 20.0 10.0 10 0 Millionen Amazon-Transaktionen pro Tag Facebook Status Updates Tweets Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 12. Content vsKontext Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 13. Page vsStream Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 14. Real Time Real Time Customer Service MeinungenGoogle Instant Real Time Targetted Marketing Real Time Collaboration Real Time Rabattierungen Time Sensitive Offers Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 15. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 16. Online == Offline == Online Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 17. Was hat das mit Web zu tun? Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 18. Der mobile Browser ...• ist identisch zum Desktop-Browser• der mobile Browser spricht HTML 5 – stützt mit WebSockets gibt auf Nachfrage die Geodaten frei – kann Offline-Applikationen• wird zusammen mit dem Desktop- Browser zur Cross-Plattform- Realtime-Runtime Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 19. Wo bleibt dasDevelopment? Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 20. CAN I HAZREALTIME WEB, PLZ Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 21. 2000, PHProjekt-Chat-Style Polling Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 22. 2000, PHProjekt-Chat-Style Polling Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 23. 2000, PHProjekt-Chat-Style Polling Um, nothing, actually. Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 24. 2000, PHProjekt-Chat-Style Polling Um, nothing, actually. Hey, Wazzup? 1 sec ... Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 25. 2000, PHProjekt-Chat-Style Polling Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 26. 2000, PHProjekt-Chat-Style Polling Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 27. 2000, PHProjekt-Chat-Style Polling Um, nothing, actually. Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 28. 2000, PHProjekt-Chat-Style Polling Um, nothing, actually. Hey, Wazzup? 1 sec ... Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 29. 2000, PHProjekt-Chat-Style Polling Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 30. 2000, PHProjekt-Chat-Style Polling Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 31. 2000, PHProjekt-Chat-Style Polling Um, nothing, actually. Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 32. 2000, PHProjekt-Chat-Style Polling Um, nothing, actually. Hey, Wazzup? 1 sec ... Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 33. 2000, PHProjekt-Chat-Style Polling Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 34. 2000, PHProjekt-Chat-Style Polling WTF ?! Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 35. 2000, PHProjekt-Chat-Style Polling 1 User = 1 Req/Second = CPU FAIL Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 36. 2006, COMET-StyleLong Poll Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 37. 2006, COMET-StyleLong Poll Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 38. 2006, COMET-StyleLong Poll Um, nothing, actually ... Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 39. 2006, COMET-StyleLong Poll well ... Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 40. 2006, COMET-StyleLong Poll wait ... Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 41. 2006, COMET-StyleLong Poll Uh, there is something ... Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 42. 2006, COMET-StyleLong Poll No, nothing. Hey, Wazzup? Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 43. 2006, COMET-StyleLong Poll WTF ?! Client Server Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 44. 2006, COMET-StyleLong Poll 1 User = 1 Apache-Child = Memory FAIL Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 45. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 46. Memory: WINCPU: 1/2 WIN Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 47. Memory: WINCPU: 2/3 WIN Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 48. PHP-Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 49. dojo.require("dojo.io.cometd");cometd.init({}, "cometd");cometd.subscribe("/hello/world", false,"publishHandler");publishHandler = function(msg) { alert(msg.data.test);}cometd.publish(/hello/world, { test:hello world } ) Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 50. PHP- XMPP Mobile Mobile Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 51. connection = newStrophe.Connection(BOSH_SERVICE);connection.connect($(#jid).get(0).value,! ! ! $(#pass).get(0).value,! ! ! onConnect);connection.addHandler(onMessage, null,message, null, null, null);connection.send($pres().tree());connection.disconnect(); Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 52. HTM Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 53. var ws = new WebSocket("ws://example.com/service");ws.onopen = function() { ws.send("message to send"); ....};ws.onmessage = function (evt) { var received_msg = evt.data; ...};ws.onclose = function() { // websocket is closed.}; Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 54. LAMP-Stack wird Janusköpfig: EinenApachen und eine Realtime-Komponente.Meine Applikation integriert (sich in)andere Applikationen in Echtzeit.Ich nutze den Kontext des Nutzers -zB. den sozialen Graphen oder den Ortin meiner Applikation. Realtime Web I Mayflower GmbH I March 25, 2010 I
  • 55. Vielen Dank für Ihre Aufmerksamkeit!Kontakt © 2010 Mayflower GmbH