Push technology
From Wikipedia, the free encyclopedia
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.
Contents |
[edit] General use
Push services are often based on information preferences expressed in advance, it can also be called a "subscription model". A client might "subscribe" to various information "channels". Whenever new content is available on one of those channels, the server would push that information out to the user.
Synchronous conferencing and instant messaging are typical examples for push services. Chat messages and files are pushed to the user as soon as they are received by the messaging service. Both decentralised peer-to-peer programs (such as WASTE) and centralised programs (such as IRC or Jabber) allow pushing files, this means the sender initiates the data transfer rather than the recipient.
E-mail is also a classic Internet push medium, for example SMTP is an email push protocol. However, the last step - from a user's 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 few 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].
Another type of Internet push technology was PointCast Network which gained popularity in the 1990s, it delivered news and stock courses. Both Netscape and Microsoft integrated it into their software at the height of the browser wars, but it later faded away and was replaced in the 2000s with RSS (a pull technology).
The Comet technique implements push technologies over HTTP in a Web browser with JavaScript programming for Ajax Web applications[2]. Typical uses for push enabled Web applications include market data distribution (stock tickers), live chat/messaging systems, auctions, online betting and gaming, sport results, monitoring consoles and Sensor network monitoring.
[edit] Technologies
[edit] HTTP server push
This section needs to be updated. Parts of this article or section (those related to section) are no longer up to date. All other information should be current. Please update the article to reflect recent events / newly available information, and remove this template when finished. |
A sub category of push technology specifically related to the HTTP protocol. The term server push was originally coined by Netscape in 1995[3]. 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[4][5]. 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 WHATWG is drafting a Web Applications 1.0 specification [6] 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."[7][8]
[edit] HTTP streaming
This section needs to be updated. Parts of this article or section (those related to section) are no longer up to date. All other information should be current. Please update the article to reflect recent events / newly available information, and remove this template when finished. |
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.
[edit] Long Polling
Long Polling is a variation of the traditional Polling technique that allows events to be pushed from a server to a client. With long polling, the client requests information from the server in a similar way to a normal poll. However, if the server does not have any information available for the client, instead of sending an empty response, the server holds the request and waits for an information to be available. Once the information becomes available (or after a suitable timeout), a complete response is sent to the client. The client will normally then immediately re-request information from the server, so that the server will almost always have an available waiting request that it can use to deliver data in response to an event.
The long polling technique is typically used with the HTTP protocol, but it can also be applied to most request/response style protocols.
[edit] Java pushlet
This section needs to be updated. Parts of this article or section (those related to section) are no longer up to date. All other information should be current. Please update the article to reflect recent events / newly available information, and remove this template when finished. |
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 [9][10].
[edit] See also
- Client-server architecture
- Pull technology
- Push Access Protocol
- Push-Pull strategy
- Streaming media
- Streaming media systems
[edit] References
- ^ History of Push Technology March 2007
- ^ Mahemoff, Michael (2006-03-04). Comet: A New Approach to Ajax Applications (html). A comparison between Ajax and Comet. Retrieved on 2008-05-05.
- ^ An exploration of dynamic documents, Introdution of server-push and client-pull in Netscape 1.1
- ^ Client pull/Server push implementations
- ^ CGI Programming on the World Wide Web O'Reilly book explaining how to use Netscape server-push
- ^ Web Applications 1.0 specification.
- ^ Event Streaming to Web Browsers (2006-09-01). Retrieved on 2007-03-23.
- ^ Opera takes the lead with AJAX support among browsers: More efficient streaming (2007-09-01). Retrieved on 2007-03-23.
- ^ Pushlets introduction
- ^ JavaWorld article about pushlets
[edit] External links
- W3C Push Workshop. A 1997 workshop that discussed Push technology and some early examples thereof.
- 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