Webserver push tới browser (client), kỹ thuật và đánh giá, Reverse Ajax / Comet / Ajax Push

(đang nghiên cứu và đánh giá, thực hiện)

Giới thiệu công nghệ

Reverse Ajax refers to an Ajax design pattern that uses long-lived HTTP connections to enable low-latency communication between a web server and a browser. Basically it is a way of sending data from client to server and a mechanism for pushing server data back to the browser.[1][2]

This server–client communication takes one of two forms:

* Client polling, the client repetitively queries (polls) the server and waits for an answer.
* Server pushing, a connection between a server and client is kept open, the server sends data when available.

Reverse Ajax describes the implementation of any of these models, including a combination of both. The design pattern is also known as Ajax Push, Full Duplex Ajax and Streaming Ajax.

Từ khoá: Reverse Ajax / Comet / Ajax Push

Slow load

http://www.obviously.com/tech_tips/slow_load_technique

So sánh Push và Pull khi dùng Ajax

http://www.infoq.com/news/2007/07/pushvspull

Các lựa chọn để cài đặt

Comet – http://cometdproject.dojotoolkit.org/

Cometd Bayeux Ajax Push: Cometd is a scalable HTTP-based event routing bus that uses a Ajax Push technology pattern known as Comet. The term ‘Comet’ was coined by Alex Russell in his post Comet: Low Latency Data for the Browser.

MeteorServer – http://meteorserver.org/

jquery

dojo

APE  http://www.ape-project.org/

Tomcat / Pushlets

http://www.pushlets.com/

http://www.icesoft.com/corporate/press_release_07_06_EE_1.0.html

http://www.icefaces.org/main/ajax-java/ajaxpush.iface

Apache

http://jha.rajeev.googlepages.com/web2push

PHP server push (chỉ xài với non-IE)
http://web.they.org/software/php-push.php

Đọc thêm

http://www.wired.com/wired/archive/5.03/ff_push_pr.html

http://www.patentstorm.us/patents/6381645/claims.html

http://www.itaware.eu/2008/11/03/push-push-push-on-the-browser/

http://www.itaware.eu/2008/11/03/push-push-push-on-the-browser/

http://www.openajax.org/member/wiki/Main_Page

http://www.theserverside.com/news/thread.tss?thread_id=40650

http://ajaxpatterns.org/HTTP_Streaming

http://cometdaily.com/

http://www.pathf.com/blogs/2006/05/not_there_yet_c/

Jetty 6 Servlet Container has it. It is called Continuation and is based on NIO

Scalability is a fundamental feature for a Comet Server, since a large number of concurrent TCP connections has to handled.
Lightstreamer is based on a staged event driven architecture, built over Java NIO classes, that allows it to handle an arbitrary number of connections with a fixed pool of threads.
Just to give you an idea of performance, on a single Pentium 4 CPU – 2.4 GHz, Lightstreamer Server was able to sustain 10,000 concurrent streaming connections with an outbound frequency of 1 update/sec per client.

.NET
http://www.codeproject.com/KB/aspnet/CometGrid.aspx?fid=1538113&select=3001476#xx3001476xx
http://www.codeproject.com/KB/aspnet/CometMultiClient.aspx

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s