
In Peter Lubbers' highly practical and action-packed two-day HTML5 Performance, Communication, and WebSockets course you will see hands-on how the different communication and performance APIs work, how the HTML5 origin-based security model works. Most of these features are already supported in the more modern browsers, but the course will also explore ways to make them work in older browsers using polyfills and emulation. With these new standards, the browser can now enjoy the first-class citizenry of network communication that has long been enjoyed by desktop applications. You will learn how to use the emerging standards to build scalable, mission critical real-time Web 2.0 applications such as:
- Trading System Clients
- Online Betting Applications
- Social Chat Solutions
- Performance Monitoring Applications
- Sports and News Broadcasting Applications
HTML5 introduces exciting new communication and performance features. New APIs such as WebSockets, Cross Document Messaging, XMLHttpRequest Level 2, Server-Sent Events, and Web Workers provide ways to optimize your web applications’ performance and a low-latency alternatives for real-time streaming and full-duplex communication, which were, until recently, only available in desktop applications.
HTML5 WebSockets, which define a full-duplex communication channel that operates through a single socket over the Web, are not just another incremental enhancement to conventional HTTP communications; they represent a colossal advance, especially for real-time, event-driven web applications. HTML5 WebSockets provides such a dramatic improvement from the old, convoluted "hacks" that are used to simulate a full-duplex connection in a browser that it prompted
Ian Hickson (Google) — the HTML5 specification lead — to say:
"Reducing kilobytes of data to 2 bytes...and reducing latency from 150ms to 50ms is far more than marginal. In fact, these two factors alone are enough to make WebSockets seriously interesting to Google."
Upon completion of this course you will know how to create your own scalable, real-time Web applications with the latest HTML5 Performance, Communication, WebSockets technologies and be able to:
- Understand the fundamental HTML5 Communication technologies: WebSocket, Server-Sent Events, Cross-Document Messaging, and XHR Level 2
- Understand performance improvements that can be gained from using HTML5 Web Workers
- Use tools to analyze web application performance
- Improve web application performance dramatically using the latest cutting edge performance techniques
- Decide when and why to use HTML5 Communication and its implications on your architecture
- Setup and configure an Enterprise development environment and use HTML5 Communication APIs
- Build applications on top of WebSocket and use client-side APIs to communicate directly with back-end systems such as JMS, XMPP (Jabber), STOMP and AMQP
- Design, develop, debug and deploy secure and scalable real-time web applications with HTML5 WebSocket that will work in today’s browsers
The following is a detailed breakdown of all the course modules. Attendees will receive electronic copies of the presentations, lab files, and starter code.
PART 1—INTRODUCTION
History of HTML5
The HTML5 vision
WHATWG, W3C, and IETF specifications
What is part of HTML5?
When can I use HTML5?
HTML5 Security Overview
Using HTML5 in browsers that do not support it
- Origin-based security
- Detecting native availability of HTML5 features
- Emulation and Polyfills
Overview of the HTML5 APIs
Programming HTML5
Lab: Building a Web App with html5boilerplate
PART 2—WEB APPLICATION PERFORMANCE
Overview
Web Worker communication
Lab: Using the Web Workers API
Using ApplicationCache to improve performance
ApplicationCache API and Events
Understanding the Manifest file
Server Configuration
Building and using HTML5 Offline Web Applications
Lab: Using ApplicationCache
High-Performance HTML5 Web Applications
Tips and Tricks for Web App optimization
Sprites
Data URIs
Developer Tools for:
- Page Speed
- YSlow
- Chrome Speed Tracer
Lab: Optimizing web app performance
PART 3—HTML5 COMMUNICATION
Cross Document Messaging
• Overview
• Understanding the origin concept
• Cross Document Communication
• Lab: Using the PostMessage API
XMLHttpRequest Level 2
• Overview
• Cross-document XHR
• Progress events
• Lab: Using XHR Level 2
PART 4—WEBSOCKETS AND SERVER-SENT EVENTS
HTML5 WebSocket
• Real-time Communication overview
• Lab: Using Wireshark to analyze network traffic
• WebSockets Overview
o WebSocket API
o WebSocket Protocol
• Browser and server support
• Lab: Using the WebSocket API
Server-Sent Events
• Overview of SSE
• EventSource API
• Browser and server support
• Lab: Using the EventSource API
PART 5—WEBSOCKET-BASED PROTOCOL COMMUNICATION
WebSocket and Transport Protocols
• Transport protocol overview
• Protocols
• Integration with (useful) transport protocols
• Practical use cases
Real-Time Messaging
• Real-time Messaging Architecture
• Pub/Sub architecture
• Messaging protocols and APIs
o About JMS
o About Streaming Text Orientated Messaging Protocol (Stomp)
o About Advanced Message Queuing Protocol (AMQP)
• Message brokers
o Apache ActiveMQ
o RabbitMQ
o Other message brokers
• Client-side messaging APIs
• Lab: Building a real-time stock application
Real-Time Chat
• Overview
• Chat protocols
o XMPP
o IRC
o Other chat protocols
• Client-side APIs for XMPP
• Integrating with Google Talk and Jabber
• Bonus Lab: Building a real-time chat application
PART 6—WEBSOCKETS IN THE ENTERPRISE
Enterprise WebSocket Deployment
• WebSocket network traversal overview
• WebSocket and proxy servers
• WebSocket and firewalls
• WebSocket and load-balancing routers
• High availability and fault tolerance
• Cloud Deployment
• Using the Amazon Cloud
• Cloud security
• Tools for cloud deployment
• Bonus lab: WebSocket cloud configuration
WebSocket Security
• WebSocket Security Overview
• Protocol-based security
• Protocol validation
• TLS and SSL certificates
• Authentication and authorization