Monday, 11 August 2014

Push technology

Push, or server push, describes a style of Internet-based communication where the request for a given transaction is initiated by the publisher or central server. It is contrasted with pull, where the request for the transmission of information is initiated by the receiver or client.

General use

Push services are often based on knowledge preferences expressed in advance. This is called a publish/subscribe model. A client "subscribes" to various knowledge "channels" provided by a server; whenever new content is available on of those channels, the server pushes that knowledge out to the client.

Synchronous conferencing & instant messaging are typical examples of push services. Chat messages & 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) & centralised programs (such as IRC or XMPP) permit pushing files, which means the sender initiates the knowledge transfer than the recipient.

Another example is the PointCast Network, which was widely implemented in the 1990s. It delivered news & stock market knowledge. Both Netscape & Microsoft integrated it in to their application at the height of the browser wars, but it was never popular & later faded away. Browsers replaced it in the 2000s with RSS (a pull method).

Electronic mail may even be a push method: The SMTP protocol is a push protocol (see Push e-mail). However, the last step�from mail server to desktop computer�typically makes use of a pull protocol like POP3 or IMAP. Modern e-mail clients make this step appear instantaneous by repeatedly polling the mail server, often 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-email in a wireless context.[citation needed]

Other makes use of of push-enabled web applications include market knowledge distribution (stock tickers), online chat/messaging systems (webchat), auctions, online betting & gambling, sport results, monitoring consoles, & sensor network monitoring.

Examples

HTTP server push (also called HTTP streaming) is a mechanism for sending unsolicited (asynchronous) knowledge from a web server to a web browser. HTTP server push can be achieved through any of several mechanisms.

Usually the net server does not terminate a connection after response knowledge has been served to a client. The net server leaves the connection open so that if an event occurs (ex: alter in internal knowledge which needs to be reported to or multiple clients), it can be sent out immediately; otherwise, the event would must be queued until the client's next request would have been received. Most web servers offer this functionality by CGI (e.g., Non-Parsed Headers scripts on Apache). The underlying mechanism for this approach is Chunked transfer encoding.

Another mechanism is related to a special MIME type called multipart/x-mixed-replace, which was introduced by Netscape in 1995. Web browsers interpret this as a document changing whenever the server feels like pushing a brand spanking new version to the client.[1] It is still supported by Firefox, Opera, and Safari today, but it is ignored by Net Explorer.[2] It can be applied to HTML documents, and also for streaming images in webcam applications.

The WHATWG Web Applications one.0 proposal[3] includes a mechanism to push content to the client. On September one, 2006, the Opera web browser implemented this new experimental process in a feature called "Server-Sent Events".[4][5] It is now being standardized as part of HTML5.[6] Another related part of HTML5 is the WebSocket API, which allows a web server and client to communicate over a full-duplex TCP connection.

Pushlet

In this method, the server takes advantage of persistent HTTP connections, leaving the response perpetually "open" (i.e., the server never terminates the response), effectively fooling the browser to stay in "loading" mode after the preliminary page load could be thought about complete. The server then periodically sends snippets of JavaScript to update the content of the page, thereby achieving push capability. By using this method, the client doesn't need Java applets or other plug-ins in order to keep an open connection to the server; the client is automatically notified about new events, pushed by the server.[7][8] serious drawback to this method, however, is the shortage of control the server has over the browser timing out; a page refresh is always necessary if a timeout occurs on the browser finish.