SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
© 2010 Mayflower GmbH
Video-Tracking mit WebSockets,
Node.js, Gearman und Redis
Peter Voringer I 25. November 2010
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
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
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
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
Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 6
Architektur – Gearman
Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 7
Architektur – Gearman
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
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
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]
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
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
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
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
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
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]
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
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
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
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
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
Titel der Präsentation I Mayflower GmbH I 29. November 2010 I 22
DEMO
Titel der Präsentation I Mayflower GmbH I 29. November 2010 I 23
FRAGEN ?
© 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!

Contenu connexe

En vedette

Evaluacion portal educativo EDUCARCHILE
Evaluacion portal educativo EDUCARCHILEEvaluacion portal educativo EDUCARCHILE
Evaluacion portal educativo EDUCARCHILEIsabel Benitez Morales
 
Tecnologia e informatica andres felipe pechene sanchez
Tecnologia e informatica  andres felipe pechene sanchezTecnologia e informatica  andres felipe pechene sanchez
Tecnologia e informatica andres felipe pechene sanchezandresfelipe2014
 
Don bosco-jaime
Don bosco-jaimeDon bosco-jaime
Don bosco-jaimeJcf4
 
Proyecto final de modelos
Proyecto final de modelosProyecto final de modelos
Proyecto final de modelosDavid López
 
Gründungs-Dinner parlamentarisches Komitee «Fortschritt Open Source Software ...
Gründungs-Dinner parlamentarisches Komitee «Fortschritt Open Source Software ...Gründungs-Dinner parlamentarisches Komitee «Fortschritt Open Source Software ...
Gründungs-Dinner parlamentarisches Komitee «Fortschritt Open Source Software ...Matthias Stürmer
 
Programacion anual 5° pfrh
Programacion anual 5° pfrhProgramacion anual 5° pfrh
Programacion anual 5° pfrhtony rander
 

En vedette (13)

DIALNET
DIALNETDIALNET
DIALNET
 
Audioconferencia
AudioconferenciaAudioconferencia
Audioconferencia
 
Nutrició 3er
Nutrició 3erNutrició 3er
Nutrició 3er
 
my_suspended_world exhibition
my_suspended_world exhibitionmy_suspended_world exhibition
my_suspended_world exhibition
 
Exposicion de youtube
Exposicion de youtubeExposicion de youtube
Exposicion de youtube
 
Evaluacion portal educativo EDUCARCHILE
Evaluacion portal educativo EDUCARCHILEEvaluacion portal educativo EDUCARCHILE
Evaluacion portal educativo EDUCARCHILE
 
Tecnologia e informatica andres felipe pechene sanchez
Tecnologia e informatica  andres felipe pechene sanchezTecnologia e informatica  andres felipe pechene sanchez
Tecnologia e informatica andres felipe pechene sanchez
 
Don bosco-jaime
Don bosco-jaimeDon bosco-jaime
Don bosco-jaime
 
Proyecto final de modelos
Proyecto final de modelosProyecto final de modelos
Proyecto final de modelos
 
Gründungs-Dinner parlamentarisches Komitee «Fortschritt Open Source Software ...
Gründungs-Dinner parlamentarisches Komitee «Fortschritt Open Source Software ...Gründungs-Dinner parlamentarisches Komitee «Fortschritt Open Source Software ...
Gründungs-Dinner parlamentarisches Komitee «Fortschritt Open Source Software ...
 
Bienvenido a power point
Bienvenido a power pointBienvenido a power point
Bienvenido a power point
 
Instrumentos de evaluación
Instrumentos de evaluaciónInstrumentos de evaluación
Instrumentos de evaluación
 
Programacion anual 5° pfrh
Programacion anual 5° pfrhProgramacion anual 5° pfrh
Programacion anual 5° pfrh
 

Similaire à Hochskalierendes Video Tracking

FMK2018- Web Direct Tipps und Tricks Alexis Gehrt
FMK2018- Web Direct Tipps und Tricks Alexis GehrtFMK2018- Web Direct Tipps und Tricks Alexis Gehrt
FMK2018- Web Direct Tipps und Tricks Alexis GehrtVerein FM Konferenz
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinVerein FM Konferenz
 
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinVerein FM Konferenz
 
Build your own IoT Cloud! [GER]
Build your own IoT Cloud! [GER]Build your own IoT Cloud! [GER]
Build your own IoT Cloud! [GER]Christian Götz
 
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian SchmitzFMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian SchmitzVerein FM Konferenz
 
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...Verein FM Konferenz
 
FMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten RisseeuwFMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten RisseeuwVerein FM Konferenz
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinVerein FM Konferenz
 
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Martin Kliehm
 
IBM Sametime 9.0.1 "basic" (aka. limited use)
IBM Sametime 9.0.1 "basic" (aka. limited use)IBM Sametime 9.0.1 "basic" (aka. limited use)
IBM Sametime 9.0.1 "basic" (aka. limited use)Novakenstein
 
FMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael ValentinFMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael ValentinVerein FM Konferenz
 
Html5 workshop Peter Voringer
Html5 workshop   Peter VoringerHtml5 workshop   Peter Voringer
Html5 workshop Peter VoringerMayflower GmbH
 
FMK2015: FileMaker Sicherheit Sicherheit Sicherheit by Alexis Gehrt
FMK2015: FileMaker Sicherheit Sicherheit Sicherheit by Alexis GehrtFMK2015: FileMaker Sicherheit Sicherheit Sicherheit by Alexis Gehrt
FMK2015: FileMaker Sicherheit Sicherheit Sicherheit by Alexis GehrtVerein FM Konferenz
 
Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Ulrich Krause
 
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker PluginFMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker PluginVerein FM Konferenz
 
FMK2018- Virtuelle Server Peter Schubert
FMK2018- Virtuelle Server Peter SchubertFMK2018- Virtuelle Server Peter Schubert
FMK2018- Virtuelle Server Peter SchubertVerein FM Konferenz
 
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web ServicesFMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web ServicesVerein FM Konferenz
 
FMK 2013 Mbs filemaker plugin, Christian Schmitz
FMK 2013 Mbs filemaker plugin, Christian SchmitzFMK 2013 Mbs filemaker plugin, Christian Schmitz
FMK 2013 Mbs filemaker plugin, Christian SchmitzVerein FM Konferenz
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 

Similaire à Hochskalierendes Video Tracking (20)

FMK2018- Web Direct Tipps und Tricks Alexis Gehrt
FMK2018- Web Direct Tipps und Tricks Alexis GehrtFMK2018- Web Direct Tipps und Tricks Alexis Gehrt
FMK2018- Web Direct Tipps und Tricks Alexis Gehrt
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
 
Build your own IoT Cloud! [GER]
Build your own IoT Cloud! [GER]Build your own IoT Cloud! [GER]
Build your own IoT Cloud! [GER]
 
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian SchmitzFMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
 
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...
FMK2018 FileMaker Server 17 - Solution Deployment neu gedacht Der Bruch mit d...
 
FMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten RisseeuwFMK2014: FileMaker Module by Karsten Risseeuw
FMK2014: FileMaker Module by Karsten Risseeuw
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)Web Performance Optimierung (WPO)
Web Performance Optimierung (WPO)
 
IBM Sametime 9.0.1 "basic" (aka. limited use)
IBM Sametime 9.0.1 "basic" (aka. limited use)IBM Sametime 9.0.1 "basic" (aka. limited use)
IBM Sametime 9.0.1 "basic" (aka. limited use)
 
FMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael ValentinFMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael Valentin
 
Html5 workshop Peter Voringer
Html5 workshop   Peter VoringerHtml5 workshop   Peter Voringer
Html5 workshop Peter Voringer
 
FMK2015: FileMaker Sicherheit Sicherheit Sicherheit by Alexis Gehrt
FMK2015: FileMaker Sicherheit Sicherheit Sicherheit by Alexis GehrtFMK2015: FileMaker Sicherheit Sicherheit Sicherheit by Alexis Gehrt
FMK2015: FileMaker Sicherheit Sicherheit Sicherheit by Alexis Gehrt
 
Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1Keine Angst vor Sametime 8.5.1
Keine Angst vor Sametime 8.5.1
 
Logging mit log4net
Logging mit log4netLogging mit log4net
Logging mit log4net
 
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker PluginFMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
 
FMK2018- Virtuelle Server Peter Schubert
FMK2018- Virtuelle Server Peter SchubertFMK2018- Virtuelle Server Peter Schubert
FMK2018- Virtuelle Server Peter Schubert
 
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web ServicesFMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
FMK2016 - Volker Krambrich - FileMaker Cloud - Amazon Web Services
 
FMK 2013 Mbs filemaker plugin, Christian Schmitz
FMK 2013 Mbs filemaker plugin, Christian SchmitzFMK 2013 Mbs filemaker plugin, Christian Schmitz
FMK 2013 Mbs filemaker plugin, Christian Schmitz
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 

Plus de Mayflower GmbH

Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mayflower GmbH
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: SecurityMayflower GmbH
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftMayflower GmbH
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientMayflower GmbH
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingMayflower GmbH
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...Mayflower GmbH
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyMayflower GmbH
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming MythbustersMayflower GmbH
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im GlückMayflower GmbH
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefernMayflower GmbH
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsMayflower GmbH
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalierenMayflower GmbH
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastMayflower GmbH
 

Plus de Mayflower GmbH (20)

Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
Mit Maintenance umgehen können- Fixt du noch Bugs oder lieferst du schon neue...
 
Why and what is go
Why and what is goWhy and what is go
Why and what is go
 
Agile Anti-Patterns
Agile Anti-PatternsAgile Anti-Patterns
Agile Anti-Patterns
 
JavaScript Days 2015: Security
JavaScript Days 2015: SecurityJavaScript Days 2015: Security
JavaScript Days 2015: Security
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur Führungskraft
 
Produktive teams
Produktive teamsProduktive teams
Produktive teams
 
Salt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native ClientSalt and pepper — native code in the browser Browser using Google native Client
Salt and pepper — native code in the browser Browser using Google native Client
 
Plugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debuggingPlugging holes — javascript memory leak debugging
Plugging holes — javascript memory leak debugging
 
Usability im web
Usability im webUsability im web
Usability im web
 
Rewrites überleben
Rewrites überlebenRewrites überleben
Rewrites überleben
 
JavaScript Security
JavaScript SecurityJavaScript Security
JavaScript Security
 
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
50 mal produktiver - oder warum ich gute Teams brauche und nicht gute Entwick...
 
Responsive Webdesign
Responsive WebdesignResponsive Webdesign
Responsive Webdesign
 
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und AlloyNative Cross-Platform-Apps mit Titanium Mobile und Alloy
Native Cross-Platform-Apps mit Titanium Mobile und Alloy
 
Pair Programming Mythbusters
Pair Programming MythbustersPair Programming Mythbusters
Pair Programming Mythbusters
 
Shoeism - Frau im Glück
Shoeism - Frau im GlückShoeism - Frau im Glück
Shoeism - Frau im Glück
 
Bessere Software schneller liefern
Bessere Software schneller liefernBessere Software schneller liefern
Bessere Software schneller liefern
 
Von 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 SprintsVon 0 auf 100 in 2 Sprints
Von 0 auf 100 in 2 Sprints
 
Piwik anpassen und skalieren
Piwik anpassen und skalierenPiwik anpassen und skalieren
Piwik anpassen und skalieren
 
Agilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce BreakfastAgilitaet im E-Commerce - E-Commerce Breakfast
Agilitaet im E-Commerce - E-Commerce Breakfast
 

Hochskalierendes Video Tracking

  • 1. © 2010 Mayflower GmbH Video-Tracking mit WebSockets, Node.js, Gearman und Redis Peter Voringer I 25. November 2010
  • 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. 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. 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. 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. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 6 Architektur – Gearman
  • 7. Video-Tracking mit WebSockets, Node.js, Gearman und Redis I Mayflower GmbH I 29. November 2010 I 7 Architektur – Gearman
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Titel der Präsentation I Mayflower GmbH I 29. November 2010 I 22 DEMO
  • 23. Titel der Präsentation I Mayflower GmbH I 29. November 2010 I 23 FRAGEN ?
  • 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!