Comet and Push Technology

by Alessandro AlinoneOctober 19th, 2007

The increasing success of the Comet paradigm has exhumed a buzzword that was very popular in the second half of the 90s: Push Technology. To make the story short, what happened was that a technology considered useless and inefficient ten years ago was rediscovered with the help of modern Web development techniques. So, what is Push Technology? The term was coined in 1996 and soon became very successful from a marketing point of view as a way of referring to a new frontier of the Internet. It may be derived from the phrase “push polling,” which was used by the media during the 1996 US presidential election to refer to a devious electioneering technique in which canvassers, pretending to be conducting a telephone opinion poll, used the call to push their candidate’s virtues [1]. Fundamentally, Push Technology refers to any technical solution (for example Comet) whose goal is to reverse the classic Web paradigm of pulling data to the user. The following terms are used as synonyms or are part of the same logical categories:

  • pull, synchronous mode, request/response
  • push, asynchronous mode, publish/subscribe

Figure 1 shows the typical differences between the two categories. In the classic Web paradigm based on pull, each message produced by the server must be solicited by a client request. Furthermore, after the client issues a request, their thread of execution is usually blocked while they wait for a response. With Push Technology, the client just shows interest in some kind of information (by subscribing to so called topics, subjects, channels, or items) and then, at any time, will receive asynchronous messages from the server. This means that the client is never blocked while waiting for responses to its requests and, above all, the server is able to deliver messages at its own discretion (that is, when actual fresh data is available), rather than waiting for the client to request updates.

Diagram for Comet and Push Technology
Figure 1. Synchronous and Asynchronous Modes

One of the oldest examples of Push Technology (intended with a broader meaning, rather than limited to the Web) is email. The traditional meaning of Push Technology (from 1996 to 2000) mainly referred to techniques also known as webcasting, narrowcasting, or channeling. A channel was related to some category of information, and once the user registered with one or more channels they would automatically receive the information, which was displayed by dedicated client software (thick applications, browser extensions, or special screen savers). In 1996 PointCast, the first push system based on channels, was created. Soon after, over thirty players entered this market, including Microsoft and Netscape. Push Technology was expected to become a killer application, but this forecast did not come about, and in 2000 that kind of Push Technology was finally dead. There were several reasons. First, users did not like to install special software on their PCs. Second, the push systems not only saturated the bandwidth of users’ Internet connections but also caused bottlenecks in Internet provider backbones. Third, and most importantly, there was never a real need for users to find piles of information downloaded to their computer every morning, most of which they would never read. Someone compared the first generation of Push Technology to having giant heaps of newspapers dumped on your doorstep every morning.

In the year 2000 a new kind of Push Technology was created. It was radically different from the first generation with respect to its uses and its technological implementations. The success of online security-trading systems created a new need for real-time data being pushed to the user’s browser. The delivery of low-latency market price data proved fundamental to creating high-quality trading portals. One of the differences with first-generation Push Technology regards the granularity of data updates vs. the grade of real time. The pushed content is no longer a bunch of information to be read off-line, but a series of fine-grained real-time updates to a Web page. That means that a user downloads a static page with the request/response paradigm and then the page starts to receive real-time updates through the pub/sub paradigm, with the ability to individually update each single cell in the page. Figure 2 shows a typical example of market data displayed and updated within an HTML table (the server-pushed data are often highlighted for a short time to catch the user’s attention).

Example of Comet Widget
Figure 2. Example of Comet-style Push Technology

This new generation of Push Technology is what is now defined as Comet. The first two implementations of Comet were Pushlets [2] and Lightstreamer [3], both created in 2000. In that period other players originated, such as KnowNow [4], that subsequently spawned the Mod-PubSub [5] initiative. The revolution in Push Technology introduced by those systems consisted in their applet-free approach. Other push solutions incorporate Java applets within the Web page to manage the push functionalities. In some cases, an applet is used only to manage the network layer while JavaScript and DOM are used to manipulate the HTML page; in other cases, the applet manages the visual layer as well. The use of applets has been increasingly considered a bad practice due to a number of reasons: compatibility issues with the JVM, delayed page start-up, difficult debugging, and the heterogeneous skills required to develop the site. A UK-based company that leveraged applets to push real-time data to their customers migrated to a Comet solution last year [6], with the result that calls to their technical customer support service were drastically reduced.

In 2005 the term AJAX was coined by Jesse James Garrett, and in 2006 the term Comet was coined by Alex Russell. The rapid adoption of these umbrella terms has proven useful to help developers clearly differentiate new Push Technology from traditional Push Technology (it is important to stress again that the term Comet arrived in 2006—exactly 10 years after the creation of the term Push Technology—but actual Comet technology had existed since 2000). In 2006 a new Comet initiative, named Cometd, [7] was created.

In the next installment we will delve into more specific Comet details, such as the different Comet models and advanced push features such as data filterability, conflation, and bandwidth and frequency control.

[6] This company offers spread betting services on financial markets. They migrated their applet-based system to Lightstreamer and went live in early 2006.

2 Responses to “Comet and Push Technology”

  1. Comet Daily » Blog Archive » The Future of Comet: Part 1, Comet Today Says:

    [...] in the days of the Netscape/Microsoft browser wars, so-called push technology was developed for streaming whole page updates to browsers, a technique widely used by [...]

  2. TurboJungle » Blog Archive » Low Latency data Comet Application - Step 0. Server installation. Says:

    [...] that AJAX became really boring and simple thing. :) So I’ve tried pretty nice thing called Comet server. It doesn’t tease your webserver anymore - it’s just handle one connect per user [...]

Copyright 2015 Comet Daily, LLC. All Rights Reserved