Boosting Web Communication with WebSockets jWebSocket – The Open Source Solution for Real-Time Web Developers SDC 2011 April 04-05, 2011 Göteborg Convention Centre Göteborg, Sweden Alexander Schulze & Claudia Gillrath Innotrade GmbH, Germany
Boosting Web Communication with WebSockets Follow the presentation at... Enjoy the slides in realtime driven by WebSockets Realtime Presentation
Boosting Web Communication with WebSockets Agenda Introduction: Status, Technology, Targets Use and Benefits vs. http Models, Migration and Implementation Solutions, Aspects and Prospects Discussion Today's Session
The Web becomes more and more Necessity of evolution to a platform for real-time data exchange WebSocket technology is the fundament Boosting Web Communication with WebSockets Introduction pervasiveinteractivesocialmobile
Status of Web Communication Boosting Web Communication with WebSockets The HTTP Protocol Designed for document transmission Cumbersome, nearly real-time tricks Polling, Long-Polling Reverse-AJAX, Comet etc. Ultimately non-standardized hacks Remains a Request/Response mechanism
Boosting Web Communication with WebSockets WebSockets – Technology What are WebSockets? Bidirectional, full-duplex, permanent TCP connections 4oo times less overhead ⅓ of latency Standardized in HTML5 by W3C and IETF protects investments Single TCP port saves 50% server resources
Boosting Web Communication with WebSockets WebSockets – Technology What else? Designed for interactive Web Applications Open for all kind of stationary and mobile browser based and native apps Not just a protocol, but a new paradigm Request/Response Real-Time Comm.
Demand from Developers, Providers and Users Compatibility Interoperability Independency Integratability Reliability Security Boosting Web Communication with WebSockets WebSockets – Targets
Demand from Developers, Providers and Users Availability Scalability Extendability Flexibility Simplicity Maintainability Boosting Web Communication with WebSockets WebSockets – Targets
Boosting Web Communication with WebSockets WebSockets – Concept The Concept Framework vs. Client/Server 3 rd Party Engines and Servers Message Routing, Stream, Send, Broadcast, Events, Channels Tokens and Plug-ins Listeners and Apps Filters and Encryption
Boosting Web Communication with WebSockets WebSockets – Models jWebSocket Framework TCP NIO TCP NIO JBoss Netty JBoss Netty Glass- Fish Glass- Fish Eclipse Jetty Eclipse Jetty System Plug-in System Plug-in Custom App Custom App 3 rd - Party App 3 rd - Party App Custom Plug-in Custom Plug-in jWebSocket Framework Replacible Engines Stand-Alone or Embedded Operation Plug-ins and WebSocket Apps Completely open Engines Plug-insApps
Boosting Web Communication with WebSockets WebSockets – Models XML JSON jWebSocket Tokens WebSocket nodes are stupid Need for a common language to understand incoming packets Dataformats JSON, XML or CSV Solution: Abstract Data objects, so called „Tokens“ jWebSocket Framework Token-Processor Native Client Native Client Browser Client Browser Client
Boosting Web Communication with WebSockets WebSockets – Interoperability jWebSocket Framework WebSocket Services WebSocket Apps X-Browser-Compatibility Native Support in Chrome 4+, FF 4, Safari 5, Opera 11 Flash-Fallback for IE and older Browsers Long-Polling or Comet Fallback
jWebSocket Framework WebSocket Services WebSocket Apps Boosting Web Communication with WebSockets WebSockets – Interoperability X-Platform-Compatibility Android (Dalvik VM) iPad/iPhone (iOS) Symbian/BlackBerry (Java ME) Windows Phone and Samsung Bada pending
jWebSocket Security SSL-Encryption wss://[host][:port][/path]... Authentication & Authorization Filter & Validation Virus-Scanning Spam-Filter & Banning Boosting Web Communication with WebSockets WebSockets – Models wss:// jWebSocket Framework In System-Filter Out Client In Custom-Filter Out Filterchain
Boosting Web Communication with WebSockets WebSockets – Models jWebSocket Framework Collaboration Suite Online-Game Channel 2 „WorkTogether“ Channel 2 „WorkTogether“ Channel 1 „PlayTheGame“ Channel 1 „PlayTheGame“ Player 1 Player 2 Collab. Memb1 Collab. Memb1 Collab. Memb2 Collab. Memb2 jWebSocket Channels Publish/Subscribe Mechanism Private and Public Channels Authentication Separate Applications
Boosting Web Communication with WebSockets jWebSocket Events Event-Driven Programming using the Observable Pattern Objects are „observable“ Clients or other instances observe objects and are notified by events Easy, flexible and effective WebSocket –Models Observe Event Observer 1 ( Client ) Observer 2 ( Client ) ws:// or wss:// Observable (Server)
Boosting Web Communication with WebSockets WebSockets – Models Synchronization Backbone Client Node 3 Node 2 Node 1 Re- director Load Bal. Load Bal. Client jWebSocket Clusters Load-Balancer Redirector Backbone simply WebSocket based External Service Nodes Ext. Serv. Node
Boosting Web Communication with WebSockets jWebSocket Plug-ins JDBC, SMTP, XMPP Remote Procedure Calls C2S-, S2C-, C2C- RPCs Object-, Filesharing Logging, Stats, Admin Chat, Stream, Twitter WebSocket – Plug-ins JDBC SMTP XMPP RPC... Browse rClient Deskto p Client Custom Client Stream Sharing Chat Twitter... Mobile Client jWebSocket Framework
Boosting Web Communication with WebSockets WebSockets – Application Areas Where to use WebSockets? Chats, Messaging and Mail Remote Control and Monitoring Push and Streaming Services, Financial Ticker, Weather, News, Video Bidirectional Remote Procedure Calls Sharing Objects, Databases, Files Uniting Stationary and Mobile Applications
Boosting Web Communication with WebSockets WebSockets – Prospects What is the future of WebSockets? New Dimension of Online-Collaboration New Level of Online-Entertainment New Opportunities for Online-Education New Social Participation and Contribution What comes to your mind?
Questions & Answers Alexander Schulze Forum & Download: Boosting Web Communication with WebSockets Thank you for your attention!