Push technology

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 services are often based on information preferences expressed in advance. This is called a publish/subscribe 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 of push services. Chat messages and sometimes 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.

Email is also a push system: the SMTP protocol on which it is based is a push protocol (see Push e-mail). However, the last step—from mail server to desktop computer—typically uses a pull protocol like POP3 or IMAP. Modern e-mail clients make this step seem instantaneous by repeatedly polling the mail server, frequently checking it for new mail. 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.

Another popular type of Internet push technology was PointCast Network, which gained popularity in the 1990s. It delivered news and stockmarket data. 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).

Other uses are push enabled web applications including market data distribution (stock tickers), online chat/messaging systems (webchat), auctions, online betting and gaming, sport results, monitoring consoles and sensor network monitoring.

Technologies

HTTP server push

A sub category of push technology specifically related to the HTTP protocol. The term "server push" was originally coined by Netscape in 1995. [ [http://wp.netscape.com/assist/net_sites/pushpull.html An exploration of dynamic documents, Introdution of server-push and client-pull in Netscape 1.1] ] 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. [ [http://docs.rinet.ru/HTMLnya/ch38.htm Client pull/Server push implementations] ] [ [http://www.oreilly.com/openbook/cgi/ch06_06.html CGI Programming on the World Wide Web] O'Reilly book explaining how to use Netscape server-push] It is still supported by Mozilla Firefox, Opera and Safari today, but traditionally ignored by Microsoft. [ [http://victor.transformadora.com/Oreilly/wdesign/xhtml/ch13_03.htm Server-Push Documents (HTML & XHTML: The Definitive Guide)] O'Reilly book explaining server-push] It can be applied to HTML documents, but also for streaming images in webcam applications.

The WHATWG is drafting a Web Applications 1.0 specification [cite web|url=http://www.whatwg.org/specs/web-apps/current-work/#scs-server-sent|title=Web Applications 1.0 specification] 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." [cite web|url=http://my.opera.com/WebApplications/blog/show.dml/438711|accessdate=2007-03-23|date=2006-09-01|title=Event Streaming to Web Browsers] [cite web|url=http://operawatch.com/news/2006/09/opera-takes-the-lead-with-ajax-support-among-browsers-more-efficient-streaming.html|accessdate=2007-03-23|date=2007-09-01|title=Opera takes the lead with AJAX support among browsers: More efficient streaming]

HTTP streaming

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.

Java pushlet

A pushlet is a technique originally developed for Java web applications, though the same techniques can be employed on other web frameworks as well. In this technique, the server takes advantage of persistent HTTP connections and leaves the response perpetually "open" (i.e. it never terminates the response), effectively fooling the browser into continuing in "loading" mode after the initial page load would normally be complete. The server then periodically sends snippets of javascript to update the content of the page, thereby achieving push capability. By using this technique the client doesn't need Java applets or other plug-ins to keep an open connection to the server. The clients will be automatically notified by new events, pushed by the server [ [http://www.pushlets.com/doc/whitepaper-toc.html Pushlets introduction] ] [ [http://www.javaworld.com/jw-03-2000/jw-03-pushlet.html JavaWorld article about pushlets] ] . One serious drawback to this method, however, is the lack of control the server has over the browser timing out. A page refresh is always necessary if a timeout occurs on the browser end.

Long polling

Long polling is a variation of the traditional polling technique and allows to emulate information push 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 some 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.

Long polling is itself not a push technology, but can be used under circumstances where a real push is not possible.

Other technologies

The term Comet has been used to describe push technologies applied to Ajax web applications. It's an umbrella term for a combination of web technologies such as "HTTP server push" and "long polling" (see above).

ee also

* BOSH
* Client-server architecture
* File transfer
* Pull technology
* Push Access Protocol
* Push-Pull strategy
* Reverse Ajax
* Streaming media, streaming media systems

References

External links

* [http://www.w3.org/Architecture/9709_Workshop/ W3C Push Workshop] . A 1997 workshop that discussed push technology and some early examples thereof
* [http://ajaxpatterns.org/HTTP_Streaming HTTP Streaming with Ajax] A description of HTTP Streaming from the Ajax Patterns website
* [http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#comms HTML 5 Draft with Server-sent events] A mechanism for allowing servers to dispatch events, 2008 draft


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • push technology — noun (computing) The sending of unrequested messages to a client on the Internet (cf ↑pull technology under ↑pull) • • • Main Entry: ↑push * * * push technology UK US noun [uncountable] computing a type of computer …   Useful english dictionary

  • push technology — push tech,nology noun uncount COMPUTING a type of computer technology that automatically sends information to your computer over the Internet so that you do not have to request it …   Usage of the words and phrases in modern English

  • push technology — (Computers) technology designed to automatically provide readers with information via the Internet without them specifically requesting it (often subscription based, such as custom news services) …   English contemporary dictionary

  • push technology — UK / US noun [uncountable] computing a type of computer technology that automatically sends information to your computer over the Internet so that you do not have to request it …   English dictionary

  • push technology — noun Computing a service in which the user downloads software from a provider which then continually supplies information from the Internet in categories selected by the user …   English new terms dictionary

  • push technology — /pʊʃ tɛkˈnɒlədʒi/ (say poosh tek noluhjee) noun the prearranged updating of information on a computer user s desktop interface through periodic transmission over the internet; multicasting. {the information is pushed onto the user s computer… …  

  • Push e-mail — is used to describe e mail systems that provide an always on capability, in which new e mail is actively transferred (pushed) as it arrives by the mail delivery agent (MDA) (commonly called mail server) to the mail user agent (MUA), also called… …   Wikipedia

  • Push — is a verb, meaning to apply a force to (an object) such that it moves away from the person or thing applying the force . It may also refer to:In arts and media: * Push (song), by Matchbox Twenty * Push (Enrique Iglesias song), Enrique Iglesias… …   Wikipedia

  • Push–pull strategy — The business terms push and pull originated in the marketing and advertising world,Fact|date=April 2007 but are also applicable in the world of electronic content and supply chain management. The push/pull relationship is that between a product… …   Wikipedia

  • Technology Integration — is a term used by educators to describe effective uses of technology by teachers and students in K 12 and university classrooms. Teachers use technology to support instruction in language arts, social studies, science, math, or other content… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”