HTML5, Websockets & the Mobile Web


Published on

Showing how websockets can be used already today to push data to mobile Web apps. Focusing on a Java developer view-point, looking at using the Atmosphere Java framework with several java app servers and a Sencha Touch frontend.

Published in: Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

HTML5, Websockets & the Mobile Web

  1. Time to Push to the Mobile Web!HTML5, Websockets, Mobile Web and Java!Dominique GuinardETH Zurich / MIT Auto-ID LabsJava Track 8.2
  2. []Who needs Web Push to a mobile phone?MOTIVATION 2
  3. Mobile Monitoring of RFID Data> Use-case: – Simple Web app to monitor RFID readers – Scan and run (no install) – Real-time push> General idea: – No app / install & Cross device – Real-world monitoring apps – Lightweight (near) real-time 3
  4. [ ]Web Sockets? Quesako?BACKGROUND 4
  5. The Problem: (a History of Web Push Hacks) > Long-polling (Comet) – Request – Wait – Request > HTTP Streaming – Connect – Keepalive > … > 101 of how to DoS a thread- blocking Webserver. 5
  6. The Solution: (HTML5) Websockets > Bi-directional & full duplex connection on a single TCP socket. > Direct support in the browser. > NAT, Firewall and (Proxy) traversal 6
  7. The Solution: (HTML5) Websockets cont’d> Client in 9 lines of Javascript> Neat! But: – DRAFT, DRAFT & DRAFT! – Different browsers support – Safari for iOS 4.2 is the only mobile browser supporting it (more coming soon!) [] 7
  8. [ ]Using Mobile Web Push today… for Java Developers!TOOLS 8
  9. Atmosphere> Atmosphere is a great Server Version Websocket Support portable “Web Push” Glassfish >3.1 Yes (not framework default) – Transparent deployment Tomcat 7 No (but NIO) across App/Web Servers Jetty > 8 M2 Yes (Grizzly/Glassfish, Jetty, JBoss, etc.) Grizzly 2 Yes> JQuery Plugin as a portable “Web Push” client I’m just a happy user, check it out – Transparent usage across here: browsers, even for mobile apps (e.g., using Sencha Touch) 9
  10. []Let’s get our hands dirtyDEMONSTRATION 10
  11. PubSub Server with Atmosphere > A cross-server PubSub in a few lines: – Deployable in Jetty, Tomcat, Glassfish, JBoss, etc. > Smoothly combines with REST and JAX-RS (Jersey) 11
  12. Mobile Websocket Client > Based on the Atmosphere JQuery Plugin – Cross browser! > Mobile App flavor with Sencha Touch > RFID tags read by the reader are pushed to the mobile Web app! 12
  13. App & Tomcat 6.26: Uses HTTP Streaming 13
  14. App & Jetty 8.0 M2: True Websocket Connection 14
  15. Architecture of the Demo 15
  16. Take home!> Web Push enables new apps – Also for the mobile Web (e.g., with Sencha Touch, Jo, etc.)! – No install, cross-platform – Real-world monitoring apps – Short-living interactions with real-time requirements> HTML5 Websockets are not quite here yet – Wide support in the Web galaxy (Node.js,, Pusherapp, etc.) – Emerging support in the Java galaxy… – Glassfish / Grizzly, Jetty and cont’d – Atmosphere and the JQuery plugin is of great help for client and server portability!> Websockets also exist beyond the browser, e.g. for Android/Java 16
  17. Thanks for your attention!Dominique Guinard home: guinard.orgETH Zurich / MIT Auto-ID Labs blog: twitter: @domguinardTools/links mentioned in this talk