13. – 14. Februar 2012 Radisson Blu Hotel Hamburg, Germany

54
13. – 14. Februar 2012 Radisson Blu Hotel Hamburg, Germany Alexander Schulze Innotrade GmbH, Germany jwebsocket.org Real-time Web Applications

description

Real-time Web Applications. Alexander Schulze Innotrade GmbH, Germany jwebsocket.org. 13. – 14. Februar 2012 Radisson Blu Hotel Hamburg, Germany. Heutige Session. Agenda Einführung: Realtime Apps und WebSockets Integration in Frameworks (ExtJS) - PowerPoint PPT Presentation

Transcript of 13. – 14. Februar 2012 Radisson Blu Hotel Hamburg, Germany

Page 1: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

13. – 14. Februar 2012Radisson Blu HotelHamburg, Germany

Alexander SchulzeInnotrade GmbH, Germanyjwebsocket.org

Real-time Web Applications

Page 2: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Agenda• Einführung:

Realtime Apps und WebSockets

• Integration in Frameworks (ExtJS)

• Demos: NFC & Smart-Cards, SMS,Remote Control & Monitoring,Online-Collaboration, Online-Gaming

• Diskussion

Heutige Session

Realtime Web Apps und NFC 213.02.2012

Page 3: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Information Interaktion

Real-time Applikationen

Realtime Web Apps und NFC 313.02.2012

Page 4: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Geschichte Dokumente, Anfrage/Antwort

(http), nur ganze Seiten oder Frames

Dokumente, Anfrage/Antwort (http),

partielle Aktualisierung, HTML 4

Anwendungen, permanente Verb. (tcp)

Single Page Interface, HTML 5

Web 1.0

Web 2.0

Web 3.0

Web im Wandel

Realtime Web Apps und NFC 413.02.2012

Page 5: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Zauberwort

WebSockets

W3C/IETFTCP Kommunikations Protokoll

Real-time Web

Realtime Web Apps und NFC 513.02.2012

Page 6: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Vorher

HTTP Protokoll• entwickelt für Dokumentenübertragung

• umständliche Tricks zur Annäherung an Realtime

• Polling, Long-Polling, Reverse-AJAX, Comet etc.

• letztlich nicht-standardisierte Hacks

• bleibt Request/Response-Mechanismus

Realtime Web Apps und NFC 613.02.2012

Page 7: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

WebSocket Protokoll•permanente Verbindungen,kein Auf-/Abbau mehr

•effizienter Full-Duplex-Modus,kein Warten im Halb-Duplex-Modus

•bidirektional auf einem TCP Kanalstatt zweier HTTP Kanäle

•Realtime Push ohne Polling Delays

Realtime Web Apps und NFC 713.02.2012

Nachher

Page 8: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Neues Paradigma

Request/Response für Dokumente

bidirektionale Realtime- Kommunikation für Applikationen

WebSockets

Realtime Web Apps und NFC 813.02.2012

Page 9: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Neue Strukturen

dynamisch skalierbareCluster gemanagte Service-Knoten

starre Client/Server Strukturen

Realtime Web Apps und NFC 913.02.2012

WebSockets

Page 10: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Warum sollte ich?

bis zu 1/1000 des HTTP Overheads,TCP Verbindung

nur rund 1/3 der Latenz,permanente Verbindung

Realtime Web Apps und NFC 1013.02.2012

WebSockets

Page 11: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Lohnt sich das?

nur ein TCP Port spart 50% serverseitiger Ressourcen

standardisiert durch IETF/W3C

sichert Investitionen!

Realtime Web Apps und NFC 1113.02.2012

WebSockets

Page 12: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Im Vergleich zu http...

schnellerbilligerportabler

Realtime Web Apps und NFC 1213.02.2012

WebSockets

Page 13: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Technologie-Stand?•verfügbar auf allenmodernen Browsern(RFC 6455),Fallbacks für ältere

•verfügbar auf allenPlattformen, wird ständig ausgebaut

•Java, C# und Python

Realtime Web Apps und NFC 1313.02.2012

WebSockets

Page 14: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

WebSockets bringen

User zusammen!

der verschiedenenPlattformen

Realtime Web Apps und NFC 1413.02.2012

WebSockets

Page 15: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Tool-Support?enge Integration in bestehende Frameworks

Realtime Web Apps und NFC 1513.02.2012

WebSockets

Page 16: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Sencha/ExtJS Integration

Integration Integration von Realtime-von Realtime-Kommunikation Kommunikation in das ExtJS in das ExtJS FrameworkFramework

Realtime Web Apps und NFC 1613.02.2012

Online-Collaboration Online-Collaboration mit ExtJSmit ExtJS

Page 17: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Was haben Sie davon?•Integration von HTML5-WebSockets in ExtJS-Anwendungen

•ersetzt AJAX-Engine durch WebSocket-Engine

•weltweite Datensynchronisierung in Echtzeit

•jWebSocket und Sencha/ExtJS als Basis für Online-Collaboration

Realtime Web Apps und NFC 1713.02.2012

Online Collaboration

Page 18: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Web Apps und NFC 1813.02.2012

Online Collaboration

Sencha/ExtJS (js)

BrowserBrowser

WebSocket Client (js)

ExtJSPlugIn

jWebSocket ServerjWebSocket Server

Page 19: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

jWebSocket

Konzept• Framework vs. Client/Server• 3rd Party Engines und Server• Message Routing, Stream,

Send, Broadcast, Events, Channels

• Tokens und Plug-Ins• Listener und Apps• Filter und Verschlüsselung

Realtime Web Apps und NFC 1913.02.2012

Page 20: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

WebSockets – Models

jWebSocket FrameworkjWebSocket Framework

TCPNIOTCPNIO

JBossNettyJBossNetty

Glass-Fish

Glass-Fish

EclipseJetty

EclipseJetty

System

Plug-In

System

Plug-In

Custom

App

Custom

App

3rd-PartyApp

3rd-PartyApp

Custom

Plug-In

Custom

Plug-In

jWebSocket Framework• austauschbare Engines

• stand-alone odereingebetteter Betrieb

• Plug-ins undWebSocket Apps

• vollständig offen

Realtime Web Apps und NFC 2013.02.2012

Page 21: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

WebSockets – Models

XMLJSON

jWebSocket Tokens• WebSocket-Verbindungen

sind dumm.

• Es wird eine einheitliche Sprache benötigt, um hereinkommende Pakete zu verstehen.

• Datenformate: JSON, XML oder CSV

• Lösung: Abstrakte Datenobjekte, sogenannte „Tokens“

jWebSocket FrameworkjWebSocket Framework

Token-ProcessorToken-Processor

NativeClientNativeClient

BrowserClient

BrowserClient

Realtime Web Apps und NFC 2113.02.2012

Page 22: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

WebSockets – Interoperability

jWebSocket FrameworkjWebSocket Framework

WebSocket Services

WebSocket Services

WebSocketApps

WebSocketApps

Cross-Browser-Kompatibilität• nativer Support für

Chrome 4+, FF 4+, IE 10,Safari 5+, Opera 11+,

• Flash-Fallback fürältere Browser

• Long-Polling oderComet Fallback

Realtime Web Apps und NFC 2213.02.2012

Page 23: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

jWebSocket FrameworkjWebSocket Framework

WebSocket Services

WebSocket Services

WebSocketApps

WebSocketApps

WebSockets – Interoperability

Cross-Plattform-Kompatibilität• Android

• iPad/iPhone

• Symbian/BlackBerry

• Windows Phone

• weitere in Planung(z. B. Bada)

• Java, C#, Python...

Realtime Web Apps und NFC 2313.02.2012

Page 24: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

jWebSocket Sicherheit• Verschlüsselung

• SSL/TLS

• Authentifizierung undAutorisierung

• ws:// and wss://

• Filter

WebSockets – Models

wss://

jWebSocket FrameworkjWebSocket Framework

In System-Filter OutIn System-Filter Out

ClientClient

In Custom-Filter OutIn Custom-Filter Out

Realtime Web Apps und NFC 2413.02.2012

Page 25: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

WebSockets – Models

jWebSocket FrameworkjWebSocket Framework

Collab. SuiteCollab. SuiteOnline-GameOnline-Game

Channel 2„WorkTogether“

Channel 2„WorkTogether“

Channel 1„PlayTheGame“

Channel 1„PlayTheGame“

Player 1

Player 1

Player 2

Player 2

Collab.Memb1Collab.Memb1

Collab.Memb2Collab.Memb2

jWebSocket Channels• Publish/subscribe

• privat/öffentlich

• Authentifizierung

• separate Applikationen

Realtime Web Apps und NFC 2513.02.2012

Page 26: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

jWebSocket Events• Event-Driven Programming

using the Observable Pattern

• Publish/Subscribe-Mechanismus

WebSocket – Event Model

PublishObserver 1( Client )

Observer 1( Client )

Observer 2( Client )

Observer 2( Client )

ws://

Observable (Server)Observable (Server)

Realtime Web Apps und NFC 2613.02.2012

Page 27: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

jWebSocket Plug-Ins• JDBC, SMTP, XMPP (Jabber), JMS, JMX

• Remote Procedure Calls, C2S-, S2C- und C2C

• Object and Filesharing, Captcha and Authentication

• SmartCards, NFC, Chat, Streaming, Twitter

• Logging, Statistics, Reporting, Administration

• Monitoring, Remote Control, Arduino

WebSocket – Plug-ins

Realtime Web Apps und NFC 2713.02.2012

Page 28: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

NFC und Smart Cards

Authentifizierung in Authentifizierung in Web Apps über Web Apps über Smart Cards und Smart Cards und jWebSocketjWebSocket

NFC und Smart NFC und Smart Card DemoCard Demo

Realtime Web Apps und NFC 2813.02.2012

Page 29: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Was haben Sie davon?•Authentifizierung, Zugangskontrolle, Zeiterfassung

•Individuelle Verschlüsselung

•Hervorragend einsetzbar für Bezahl- und Clubsysteme

•Applet, Java Card kompatibel

•Unterstützung Kontaktkarten,kontaktlosen Smart Cards und NFC-Devices

Realtime Web Apps und NFC 2913.02.2012

Online Collaboration

Page 30: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Web Apps und NFC 3013.02.2012

Online Collaboration

Custom Application Middleware

jWebSocket ServerjWebSocket Server

Middleware Operation Manager

Java Applet (bridge)

BrowserBrowser

WebSocket Client (js)

Custom Application

Card ReaderCard Reader

Card

Page 31: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Online Collaboration

Zusammenarbeit an Zusammenarbeit an Texten, Bildern, Texten, Bildern, Zeichnungen etc. in Zeichnungen etc. in Echtzeit im WebEchtzeit im Web

Shared Canvas Shared Canvas DemoDemo

Realtime Web Apps und NFC 3113.02.2012

Page 32: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Was haben Sie davon?•Kooperation vieler Personen auf einergemeinsamen Internet Plattform in Echtzeit

•Änderungen unverzüglich für alle Teilnehmersichtbar und bearbeitbar

•betriebssystem- und browserunabhängig

Realtime Web Apps und NFC 3213.02.2012

Online Collaboration

Page 33: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Web Apps und NFC 3313.02.2012

Online Collaboration

jQuery (js)

BrowserBrowser

WebSocket Client (js)

SharedCanvasPlugIn

jWebSocket ServerjWebSocket Server

Page 34: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Remote Monitoring

Realtime Web Apps und NFC 3413.02.2012

Remote Monitoring Remote Monitoring von PC- und Server-von PC- und Server-Systemen basierend Systemen basierend auf Sigar Hardware auf Sigar Hardware und Bindows Gauges und Bindows Gauges LibraryLibrary

Monitoring Monitoring DemoDemo

Page 35: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Was haben Sie davon?•Ressourcenüberwachung von Computernin Echtzeit über das Internet

•unverzügliche Mitteilung bei Überlastungoder Ressourcenausfall, E-Mail, SMS...

•betriebssystemunabhängig (u.a. Linux, Windows, Mac OS, Solaris)

•möglich von jedem Computer, Tablet oder SmartPhone

Realtime Web Apps und NFC 3513.02.2012

Remote Monitoring

Page 36: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Web Apps und NFC 3613.02.2012

Remote Monitoring

Bindows Gauges

JavaScript

BrowserBrowser

WebSocket Client (js)

Sigar Library

jWebSocket ServerjWebSocket Server

Monitoring Plug-in

jQuery (js)

WebSocket

Page 37: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Charting

Realtime Web Apps und NFC 3713.02.2012

Realtime Charting Realtime Charting basierend auf der basierend auf der Sencha/ExtJS Sencha/ExtJS Charting EngineCharting Engine

Charting DemoCharting Demo

Page 38: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Was haben Sie davon?•Darstellung relevanter Serverdaten in Echtzeitinnerhalb frei konfigurierbarer Intervalle(z. B. Auslastung, Nutzer, Anfragen)

•hohe Geschwindigkeit und Genauigkeit bei derAbfrage von Verbindungsdaten

•komfortable und zügige Übersicht über relevante Informationen durch grafische Visualisierung

Realtime Web Apps und NFC 3813.02.2012

Realtime Charting

Page 39: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Web Apps und NFC 3913.02.2012

Remote Charting

jWebSocket Sencha Plug-in

(Extjs)

Charting Demo (App)

BrowserBrowser

WebSocket Client (js)

Server DatabaseServer Database

MongoDB

Sigar Library

jWebSocket ServerjWebSocket Server

Monitoring Plug-in (java)

Page 40: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Automatisierter SMS-Versand

SMS-Gateway:SMS-Gateway:•Captcha geschütztCaptcha geschützt•Beliebiger ProviderBeliebiger Providerintegrierbarintegrierbar•SMS und MMSSMS und MMS

SMS-DemoSMS-Demo

Realtime Web Apps und NFC 4013.02.2012

Page 41: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Automatisierter SMS-Versand

Was haben Sie davon?•SMS-Versand über WebSocket-Verbindung

•Zustellung und Sammlung von Daten für den Austausch mit anderen Anwendungen

•Sofortiger Versand dringender Nachrichten

•direkter Kanal to jedem Mobilfunknutzer

•hohe Zustellgeschwindigkeit

•internationale Abdeckung

Realtime Web Apps und NFC 4113.02.2012

Page 42: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Automatisierter SMS-Versand

Realtime Web Apps und NFC 4213.02.2012

HTTPWebSocket

jQuery (js)

BrowserBrowser

WebSocket Client (js)

Server DatabaseServer Database

SMS tradeSMS Plug-in

jWebSocket ServerjWebSocket Server

Page 43: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Captcha

Integration von Integration von Captchas alsCaptchas alsSicherheitsfaktor,Sicherheitsfaktor,Angriffs- und Angriffs- und Spam-SchutzSpam-Schutz

Captcha-DemoCaptcha-Demo

Realtime Web Apps und NFC 4313.02.2012

Page 44: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Was haben Sie davon?•Ultraschnelle Erstellung von Captchas bei WebSocket-Verbindungen

•Schutz vor automatischer Software, die Sicherheitsmechanismen unterwandern

•Spamschutz

•Begrenzung und Kontrolle von persönlichem Zugang zu bestimmten Systemen

Realtime Web Apps und NFC 4413.02.2012

Remote Monitoring

Page 45: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Web Apps und NFC 4513.02.2012

Online Collaboration

jQuery (js)

BrowserBrowser

WebSocket Client (js)

jCaptcha Framework

jWebSocket ServerjWebSocket Server

jCaptcha Plug-in

Page 46: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Remote Control

Hardware-SteuerungHardware-Steuerungund -Kontrolle über und -Kontrolle über WebWebbasierend auf Arduino basierend auf Arduino und jWebSocketund jWebSocket

Arduino DemoArduino Demo

Realtime Web Apps und NFC 4613.02.2012

Page 47: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Was haben Sie davon?•Remote Control in Echtzeit via Web

•Kontrolle der Arduino Hardware über jWebSocket

•effiziente Steuerung von zeitsensitiven Prozessen

•enorm schnelle und sichere Kommunikationvom Controller zum Gerät

•basierend auf Events, die vom jWebSocket Server gestreamt werden

Realtime Web Apps und NFC 4713.02.2012

Remote Control

Page 48: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Web Apps und NFC 4813.02.2012

Remote Control

BrowserBrowser

WebSocket Client (js)

DeviceDevice

DeviceArduinoConnection

jWebSocket ServerjWebSocket Server

ArduinoRemoteControlPlugIn

Arduino micro-controller

Page 49: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Online Gaming

Realtime Online- Realtime Online- Gaming mit einer Gaming mit einer Vielzahl von ClientsVielzahl von Clients

Ping-Pong Ping-Pong GameGame

Realtime Web Apps und NFC 4913.02.2012

Page 50: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Was haben Sie davon?•ermöglicht Online Gaming mit einer Vielzahl von Spielern in Echtzeit

•erfasst individuelle Spielereigenschaften

•bietet umfassendes Spielermanagement

•erfasst Kollisionen schnell und genau

Realtime Web Apps und NFC 5013.02.2012

Online Gaming

Page 51: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Web Apps und NFC 5113.02.2012

Online Gaming

jws-plugin-1.0 (js)

jQuery (js)

BrowserBrowser

WebSocket Client (js)

Server DatabaseServer Database

MongoDBPingPongPlugIn

jWebSocket ServerjWebSocket Server

Page 52: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Web Apps und NFC 5213.02.2012

Besonderen Dank an alle jWebSocket Comitter der

Facultad Regional Mártires de Artemisa

Page 53: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Realtime Web Apps und NFC 5313.02.2012

Page 54: 13. – 14. Februar 2012 Radisson  Blu  Hotel Hamburg, Germany

Fragen & AntwortenAlexander Schulze

[email protected]

Forum & Download: http://jwebsocket.org, @jWebSocket

Danke für Ihre Aufmerksamkeit!

Realtime Web Apps und NFC 5413.02.2012