This highly practical 3-day class on Comet and HTML 5 Web Sockets and Server-Sent Events (SSE) for Real-time Web applications was designed by Kaazing's Jonas Jacobi, CEO and co-founder of Kaazing corporation. This course will teach you how to create next generation real-time Web 2.0 solutions, using HTML 5 Web Sockets and SSE that work today.
Come and learn about Comet architecture, HTML 5 Web Sockets and SSE. With these new standards, the browser can now enjoy the first-class citizenry of network communications 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
- RFID and GPS Tracking Applications
- Sports and News Broadcasting Applications
Upon completion of this course you will know how to create your own scalable, real-time Web applications with the latest HTML 5 standards-based technologies.
History of Comet
The Web Today
- The current state of the web
- About the HTTP protocol
- About AJAX
- Polling, or ''nearly real-time''
Lab: "Fake-Time Stock" - A polling stock matrix
What is Comet?
- Previous push technology attempts
- From AJAX to Comet
- About Comet
- History of Comet
- Server-initiated message delivery
- Long-polling and streaming
- Comet runtime implementations
- What's next?
Demonstration: "Comet in Action" - A Comet stock matrix
Comet Concerns
- Scalability
- Shared notification pipeline
- Network flooding
- Security
- Cross-domain issues
- Connection limit
- Bypassing proxies
How to Build a Comet Application
- Addressing the Comet concerns
- Architecture overview
- Establishing connections
- Streaming data to a client
- Notification pipeline
- Polling and streaming
- Building blocks
- Bayeux
Lab: "Cleaning Up the Stock Matrix" - Replacing the polling piece in the earlier stock matrix
Client-Side Frameworks Integration
- Overview of client side frameworks
- Integrating with different client-side frameworks
Lab: "Polish that Stock" - Enhancing the stock matrix using a toolkit
The Future of Comet: HTML 5 WebSockets and Server-Sent Events
HTML 5 WebSockets and Server-Sent Events
- HTML 5 Communication specification
- Standard WebSocket server implementations
Lab: "Running WebSocket" - Installing and testing a WebSocket server
Introduction to Transport Protocols
- Transport protocol overview
- Notification pipeline
- Payload
- Protocols
- Integration with (useful) transport protocols
- Practical use cases
Demonstration: "Chat and Stock"
Real-Time Integration with Stomp and Apache ActiveMQ
- Overview
- Stomp protocol
- Client-side APIs for the Stomp protocol
- Apache ActiveMQ
Lab: "Working with Stomp" - Creating a simple Stomp client
Real-Time Integration with XMPP and other Chat Protocols
- Overview of XMPP
- Client-side APIs for XMPP
- Integrating with GTalk and Jabber
Lab: "Talk the Talk" - Creating a Facebook-like chat solution with native XMPP protocol support
Cross-Domain Issues
- Overview of existing concerns
- Domains and subdomains
- Connection sharing
- Browser limitations (two-connection limit) and support
Lab: "Combo Platter" - Combining the stock matrix and the Facebook-like chat applications into one application
WebSockets in the Enterprise
Creating a Custom WebSocket Protocol Client
- Protocol implementation decisions
- Implementing the protocol client
Lab: "Be Creative" - Writing a Stomp protocol client in JavaScript
Network Flooding
- Message flooding
- Management
Lab: "Throttle It!" - Configuring Apache ActiveMQ and Stomp protocol throttling
Load Balancing and Fault Tolerance
- Scalability architecture
- Scaling up
- Scaling out
- Java VM limitations
- Java Real-Time benefits
- Fault tolerance
- Data partitioning
- Tools and utilities for testing and benchmarking (open source)
Lab: " Benchmarking Websockets" - Using opensource tools to benchmark performance
Security
- Protocol-based security
- Protocol validation
- SSL certificates
- Single sign-on
Lab: "Lockdown" - Configuring a Websocket server for secure access