Push technology
Push technology or server push describes a style of Internet based communication where the request for a given transaction originates with the publisher or central server. It is contrasted with pull technology, where the request for the transmission of information originates with the receiver or client.
General use
Push transactions are often based on information preferences expressed in advance - a "subscription" model. A home computer user might "subscribe" to various information "channels". Whenever new content was available on one of those channels, the server would "push" that information out to the user.
Instant messaging epitomizes push media. Messages and files are pushed to the user as soon as they are sent to the messaging service. Some peer-to-peer programs, such as WASTE, also allow pushing files. In these cases, the sender initiates the transfer rather than the recipient.
E-mail is also a classic Internet push medium; UUCP and SMTP are push protocols. However, the last step - from a user's "home" mail server to his desktop - is typically a "pull" operation using a pull protocol like POP3 or IMAP. Modern e-mail clients make this last step appear to be a "push" operation by making repeated "pull" requests - for example, by checking for new mail on an IMAP server every ten minutes. The IMAP protocol includes the IDLE command, which allows the server to tell the client when new messages arrive. The original BlackBerry was the first popular example of push technology in a wireless context[1].
Most Web feeds, such as RSS, also appear to be push media, but technically are pulled by the user. With RSS, the user's aggregator polls the server periodically for new content; the server does not send information to the client unrequested. This continual polling is inefficient and has contributed to the shutdown or reduction of several popular RSS feeds that could not handle the bandwidth. In contrast, a "true" RSS-like push media would report new syndication items to each subscriber as soon as they were updated and would not require polling. However, "true" push media presents practical difficulties because the server is responsible for remembering who the subscribers are, and for remembering the latest address that each subscriber should be contacted at.
Another type of push technology gained popularity in the 1990s using PointCast software. It received considerable media attention, and both Netscape and Microsoft integrated it heavily into their software at the height of the browser wars. However, most people did not find push technology useful, and it later faded into more obscure corners of software packages.
HTTP server push
![]() | This section needs to be updated.(June 2008) |
A sub category of push technology specifically related to the HTTP protocol. The term server push was originally coined by Netscape in 1995. A special MIME type called multipart/x-mixed-replace was added, which Netscape 1.1 and subsequent web browsers would interpret as a document changing whenever the server felt like pushing a new version to the client. It is still supported by Mozilla, Firefox, Opera and Safari today, but traditionally ignored by Microsoft. It can be applied to HTML documents, making it quite popular for web chats, but also for streaming images in webcam applications. The Comet technique tries to emulate server-push with a lot of overhead in JavaScript programming.
The WHATWG is drafting a Web Applications 1.0 specification [2] which pushes content to the client. On September 1st, 2006, the Opera web browser implemented this new experimental technology in a feature called "Server-Sent Events."[3][4]
HTTP streaming
![]() | This section needs to be updated.(June 2008) |
HTTP streaming is a mechanism for sending data from a Web server to a Web browser in response to an event. HTTP Streaming is achieved through several common mechanisms.
In one such mechanism the web server does not terminate the response to the client after data has been served. This differs from the typical HTTP cycle in which the response is closed immediately following data transmission.
The web server leaves the response open such that if an event is received, it can immediately be sent to the client. Otherwise the data would have to be queued until the client's next request is made to the web server. The act of repeatedly queing and re-requesting information is known as a Polling mechanism.
Typical uses for HTTP streaming include market data distribution (stock tickers), live chat/messaging systems, online betting and gaming, sport results, monitoring consoles and Sensor network monitoring.
Java pushlet
![]() | This section needs to be updated.(June 2008) |
A pushlet is a Java technique where data is pushed by server-side objects to a client browser containing HTML pages. By using this technique the client doesn't need Java applets or other plug-ins to retrieve the data from the server. The clients will be automatically notified by new events, pushed by the server.
Wireless push
Wireless push technology has advanced since 1998, and has grown to include more complex information. All the new Windows Mobile (Windows Mobile 5 and 6) Versions use push technology to wirelessly send/receive emails, task and calendar synchronization.
See also
Protocols
References
- ^ History of Push Technology March 2007
- ^ "Web Applications 1.0 specification".
- ^ "Event Streaming to Web Browsers". 2006-09-01. Retrieved 2007-03-23.
- ^ "Opera takes the lead with AJAX support among browsers: More efficient streaming". 2007-09-01. Retrieved 2007-03-23.
External links
- W3C Push Workshop. A 1997 workshop that discussed Push technology and some early examples thereof.
- Netscape introduces server-push and client-pull in Netscape 1.1
- O'Reilly explains how to use Netscape server-push
- Lightstreamer A Toolkit that implements HTTP Streaming.
- HTTP Streaming - Ajax Patterns A description of HTTP Streaming from the AjaxPatterns site.
- CogStream A commercial HTTP Streaming solution.
- Full-duplex Ajax A module for Lighttpd web server
- Pushlets introduction
- JavaWorld article about pushlets