Intended Usage of HTTP Channels

by Kris ZypJune 5th, 2008

The HTTP Channels introduction primarily defined the protocol, but it may be worth expounding the the goals and motivation for HTTP Channels:

  • The primary purpose of HTTP Channels is to provide an application-level Comet protocol for live data synchronization that leverages the widely understood semantics and vocabulary of HTTP/REST. By providing such a protocol for data synchronization semantics, servers and databases can provide real-time access to their data stores, and generic client frameworks can provide data update handling without requiring a custom protocol and custom event handling.
  • HTTP Channels is intended to be usable as a Bayeux transport, leveraging Bayeux for service negotiation, and providing compatible capabilities.
  • HTTP Channels provides the means for PubSub interaction through defined channels/resources, such that it can properly interact with Bayeux agents. However, HTTP Channels is foremost designed towards application level data synchronization, it is not optimized for PubSub, and the data model may impose restrictions on what channels you may publish messages through for some environments.
  • HTTP Channels is intended to work with existing HTTP communications. In a data synchronization model, retrieving and subscribing to data is almost always done together. HTTP Channels allows you to retrieve resources with standard GET requests, and augment those requests with subscription requests, so that retrieve and subscribe requests can be done efficiently with a single HTTP request. HTTP Channels integrates with HTTP rather than layering on top of HTTP. This improves efficiency in many situations and also gracefully degrades for servers that do not have Comet/subscription capabilities. GET requests are still standard HTTP requests, and legacy servers can still handle them correctly (there just won’t be any future Comet notifications of changes to the resources).
  • HTTP Channels supports a unified approach to RPC, REST, and PubSub interaction. This allows entities to interact in all three realms without disparate infrastructure.

HTTP Channels may not be perfect for every Comet situation, some applications may require a custom protocol for maximum efficiency. However, HTTP Channels should be well-suited for applications that are focused on displaying live, real-time data, and wish to utilize existing standards (HTTP and Bayeux) for interoperability, while maintaining the flexibility of handling multiple paradigms of messaging.

One Response to “Intended Usage of HTTP Channels”

  1. Comet Daily » Blog Archive » Dojo HttpChannels Module Says:

    [...] Channels is implemented in Dojo 1.2 with the HttpChannels module. HTTP Channels is intended to provide data synchronization and update notifications by leveraging the ubiquitous HTTP REST semantics. Within Dojo, HTTP [...]

Copyright 2015 Comet Daily, LLC. All Rights Reserved