blog.Ring.idv.tw

Comet

Comet - The Next Generation Ajax 2.0

Comet - The Next Generation Ajax 2.0」.這個標題看起來似乎很聳動!!! 嗯~ 筆者是從Comet and Reverse Ajax: The Next-Generation Ajax 2.0這本書籍借來的~ (感覺這本書我應該要帶回家了~ XD) ~ 那何謂Comet?

先回顧一下2005年2月18日的那天~ 在Web的領域上出現了一個新的名詞,它叫做「Ajax」,這個名詞是由「Jesse James Garrett」所發表的一篇「Ajax: A New Approach to Web Applications」所提出來的~ 它為整個Web Application帶來了「Asynchronous」的新體驗~ 從那時候學術上就多了很多篇Ajax相關的論文了~ 因為利用「Ajax」我們可以開發「幾乎接近」Desktop Application的操作模式~ 嗯~ 一切聽起來似乎很美妙~ 不過它和本文所提供的「Comet」有何關係?

這裡我們舉一個例子來說明~ 假設我們直接用「XHR」和「setInterval」這樣的「polling」機制來打造一個「Chat Web Application」~ 不過問題來了~ 大多數Web Server所實作的技術不是採用Thread就是Process來處理Client的請求~ 但這樣的「Polling」機制將會造成後端伺服器常常會忙碌於處理無謂的請求~(因為沒有人發言聊天,它還是會持續送請求給後端伺服器,以致於浪費資源),所以我們需要一個「Push」的技術來避免類似這樣無謂的請求~ 但「HTTP」終究是一種「Connectionless」的通訊協定~ 那該如何達成這樣的應用呢?用Flash中的Socket嗎?雖然Flash Player在目前的佔有率達到了99%(Flash Player Statistics),但終究不是百分之百~ 所以在2006年3月3日的這天~ 由領軍「Dojo - JavaScript Toolkiet」Project的「Alex Russell」在他的Blog發表了一篇「Comet: Low Latency Data for the Browser」,這個時候「Comet」就正式被提出來了~ 基本上「Comet」和「Ajax」這兩個名詞都不是代表某一項技術~ 而比較像是代表「某幾項」技術的集合而創造的~ 因為這樣比較好溝通~ 所以像GMail裡面所整合的GTalk功能~ 其實就是採用Comet來達成的~ 想當然這個名詞被提出來了~ 學術上又會開始產生這些相關的論文了~ 比較相關的有「2007 - A Comparison of Push and Pull Techniques for AJAX」、「2008 - XVSMPBayeux A Protocol for Scalable Space Based Computing in the Web」... 先寫到這~ 有空再介紹一個實例及詳細的細節~或者您對Comet有任何心動的話~ 請參考相關資源 :p

最後本文如果有任何謬誤的地方~ 請不吝給予指正,謝謝。

相關資源

HTTP Streaming - Ajax Patterns

Chunked transfer encoding

Comet Architecture

Asynchronous HTTP Architecture

Comet Daily (朝聖之地!!)

Cometd.org

java.net: Developing Applications Using Reverse Ajax

Asynchronous HTTP and Comet architectures - 很讚的資源!

How to implement COMET with PHP

Continuations - Jetty - Codehaus

Server Push and Server Sockets

Ajaxian: IFrame + Script Tags = Portable Comet

Hello Bayeux

Comet: Reverse Ajax for streaming data from the server

Jetty cometd(Continuation)学习笔记

Ajax Dojo Comet Tutorial

Write scalable Comet applications with Jetty and Direct Web Remoting - 詳解

2008-12-22 21:50:56 | Comments (1)

Copyright (C) Ching-Shen Chen. All rights reserved.

::: 搜尋 :::

::: 分類 :::

::: Ads :::

::: 最新文章 :::

::: 最新回應 :::

::: 訂閱 :::

Atom feed
Atom Comment