Hochskalierendes Video Tracking

1,307 views
1,219 views

Published on

Webanalytics Software scheitert an einigen Faktoren: zu teuer, zu schwer, zu langsam. Hier stellen wir einen Ansatz vor, wie Videotracking funktionieren kann. Wann dürfen wir dies für Sie tun?

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

No Downloads
Views
Total views
1,307
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Hochskalierendes Video Tracking

  1. 1. © 2010 Mayflower GmbH Video-Tracking mit WebSockets, Node.js, Gearman und Redis Peter Voringer I 25. November 2010
  2. 2. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 2 Architektur - Überblick Redis MySQL Node.js Apache Daemon Gearman Worker Browser
  3. 3. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 3 I Key-Value Speicher I Hält Daten im Speicher, Option sie persistent wegzuspeichern I Ähnlich zu z.B. Memcache I Unterstützt Listen, Sets und sortierte Sets I Atomare Operation auch für diese Datentypen Architektur – Redis
  4. 4. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 4 I Server-Side JavaScript I Google V8 Engine I Event-Driven und Non-Blocking I ECMAScript 5 Architektur – node.js
  5. 5. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 5 I Job-Server I Flexibel I Schnell I Kein Single-Point-of-Failure Architektur – Gearman
  6. 6. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 6 Architektur – Gearman
  7. 7. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 7 Architektur – Gearman
  8. 8. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 8 Architektur – Teil 1 REDIS MySQL Node.js Apache Daemon Gearman Worker Browser
  9. 9. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 9 I PHP Skript im Apache generiert einen Token I Schreibt den Token mit zusätzlichen Informationen (MovieID, UserID, …) in die Datenbank I Schreibt Token mit aktuellem Timestamp in Redis I Speichert Token in die Tokenliste in Redis I Liefert HTML/JavaScript mit Token und Adresse des node.js Servers an den Browser aus Architektur – Teil 1
  10. 10. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 10 Architektur – Teil 1 REDIS [TOKEN] [TIMESTAMP] TOKENS [TOKEN][TOKEN] [TOKEN] [TOKEN] [TOKEN]
  11. 11. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 11 Architektur – Teil 2 REDIS MySQL Node.js Apache Daemon Gearman Worker Browser
  12. 12. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 12 I Library • baut WebSocket Verbindung auf oder • lädt IFrame vom node.js Server I Player sendet Events (pause, resume, …) an Library I Timer senden • Update Event, wenn das Video läuft (250ms) • Keep-Alive Event, wenn das Video nicht läuft (60s) I Library sendet Event • über WebSocket an node.js • per postMessage an das IFrame, welches es per AJAX an node.js schickt I Close-Event bei onUnload Architektur – Teil 2
  13. 13. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 13 Architektur – Teil 2 Node.jsBrowser HTTP Server WebSocket Server Player Timer WebSocket IFrame Library token id action position
  14. 14. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 14 Architektur – Teil 3 REDIS MySQL Node.js Apache Daemon Gearman Worker Browser
  15. 15. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 15 I Node.js updated Timestamp des Tokens I Fügt Event der Event-Liste zum Token hinzu Architektur – Teil 3
  16. 16. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 16 Architektur – Teil 1 REDIS [TOKEN] [TIMESTAMP] TOKENS [TOKEN] [TOKEN] [TOKEN] [TOKEN] [TOKEN] [EVENT] [TOKEN] [EVENT] [EVENT] [EVENT]
  17. 17. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 17 Architektur – Teil 4 REDIS MySQL Node.js Apache Daemon Gearman Worker Browser
  18. 18. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 18 I Daemon nimmt ersten Token aus der Token-Liste I Prüft, ob Timestamp des Tokens älter als 2 Minuten I Sofern der Token • älter ist, erstelle Gearman Job mit Token • jünger ist, füge Token an die Token-Liste hinten an I Gearman Server leitet Job an einen Worker weiter Architektur – Teil 4
  19. 19. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 19 Architektur – Teil 5 REDIS MySQL Node.js Apache Daemon Gearman Worker Browser
  20. 20. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 20 I Worker holt und entfernt aus der Datenbank die Zusatzinformationen zum Token I Worker holt und entfernt Daten zum Token aus Redis I Berechnet Kennzahlen mittels der Events I Schreibt Kennzahlen kumuliert in die Datenbank Architektur – Teil 5
  21. 21. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 21 Architektur - Skalierbarkeit REDIS MySQL Node.js Apache Daemon Gearman Worker Node.js Node.js REDIS REDIS Worker Worker Apache Apache MySQL MySQL Daemon Daemon Gearman Gearman Browser
  22. 22. Titel der Präsentation I Mayflower GmbH I 29. November 2010 I 22 DEMO
  23. 23. Titel der Präsentation I Mayflower GmbH I 29. November 2010 I 23 FRAGEN ?
  24. 24. © 2010 Mayflower GmbH Peter Voringer peter.voringer@mayflower.de +49 931 35965 1122 Mayflower GmbH Pleichertorstr. 2 97070 Würzburg Kontakt Vielen Dank für Ihre Aufmerksamkeit!

×