實時Web時代:不只Google、Twitter玩得起
北京時間5月18日消息,國外媒體近日發表文章稱,實時Web并不只是一種時尚,而是一種技術趨勢。將來,實時技術將成為一種默認技術,不是只有谷歌、Facebook和Twitter才能玩得起。
以下為文章內容摘要:
實時Web并不只是一種時尚,而是一種技術轉移——即時訪問Web。
實時技術使Web應用變得更快,在某些情況下,幾乎與桌面應用沒有區別。
德利斯勒“失敗版”MMO《小行星》
實時技術最初的靈感來源很簡單——開發經典街機游戲《小行星》(Asteroids)的在線版本,不同的是可以多人同時在線游戲(MMO)。
得益于強大的網絡后端的支持,在線版《小行星》需要支持數百人同時游戲。更重要的是,要做到實時效果,每個游戲玩家都能毫無延遲地看到每次射擊,每個動作。
對于Hacker news 社區而言,這是一件不幸的事情,因為他們最初發現,這根本無法實現,只是一個愚人節玩笑而已。
不難理解,這讓不少游戲玩家感到失望,但是該創意聽起來確實可行。隨著技術的發展,似乎距離該目標已經不遠。例如Node(用來編寫高性能網絡服務器的JavaScript工具包)的出現,使得用很少的幾臺服務器即可同時處理大量用戶的指令。此外還有WebSocket協議,使得用戶之間的持久連接變為可能。
但JavaScript開發人員賽博·李-德利斯勒(Seb Lee-Delisle)仍然認為不可行,他認為,一旦真的推出MMO版《小行星》,其彈性和穩定性均無法保證,因為游戲要經常交換數據,調整設置,檢查沖突等。德利斯勒說:“告訴大家一個不好的消息,如果真的推出MMO版《小行星》,那么游戲也將很乏味。”
MMO版《小行星》成為現實
而另一名開發人員維克拉姆·尼扎(Vikrum Nijjar)則希望將其作為一個挑戰,認為是可行的。幸運的是,尼扎與其他開發人員合作,已經開發出了使之變為現實的軟件Firebase。這一次,尼扎的MMO版《小行星》變為了現實,同時也登上了Hacker News的首頁。
盡管也略微有些缺陷,但卻保證了所有動作的實時顯現,做到了最小化延遲。
“實時”是技術界頗受歡迎的一個流行語,是開發人員、商家和公共關系代表等用來描述一種體驗或即時在線互動的。例如,Twitter被贊許為實時信息源,Facebook也利用好友的更新和圖像實時更新用戶首頁,一個科技博客網站也承諾對內容進行實時更新。
但是,在上述所謂的實時服務中,都存在延遲,短的幾秒鐘,長的幾分鐘。只是我們沒在意,或沒必要計較而已,因為我們最終獲得的內容仍具有價值,讓我們滿意。盡管如此,事實上的延遲不可否認。在聊天或發表評論時,這些延遲是可以容忍的。但隨著數據的越來越復雜,在某些情況下,如大型多人同時在線游戲,延遲是不可接受的。
今天的許多互聯網應用的運行模式是:客戶端向服務器發送數據請求,然后從數據庫抽取數據。如果數據發生任何變化,應用自身需要再次與服務器進行核實,免得用戶手動刷新頁面。這種反復連接服務器的過程被稱為“輪詢”(polling)。
但在實時環境下根本沒有輪詢,而是訂閱(subscriptions)。一個客戶端訂閱數據庫中的數據,無論何時當數據變化時,客戶端都將接到更新。這種變化無需輪詢,是因為它們是主動推送的,正如某些通知被推動給智能手機。
15年出現一次轉變
創建富媒體實時應用的Web框架Meteor聯合開發人員馬特·德波伽里斯(Matt Debergalis)稱:“我們當前正處在這種轉移時期,這種轉移通常每15年發生一次,所有代碼都要重新編寫。”
德波伽里斯解釋道,在20世紀70年代至80年代初,軟件主要運行在大型主機和服務器上,用戶使用非智能設備連接。到了80年代后,客戶端-服務器模式出現,隨后互聯網誕生。
德波伽里斯說:“大約15年后,Web再次要求我們重寫所有軟件。因為我們將從桌面應用轉向新的模式,這一次軟件再次運行在服務器上。”但不同的是,這一次的終端是Web瀏覽器。
如今,桌面軟件華麗的用戶界面正在消失,取而代之的是一些簡單的Web功能。從Gmail和Rdio即可看出這一變化,訪問終端是Web瀏覽器。
Rdio應用
這就是實時連接,應用在外觀和表現上與桌面應用幾乎沒有區別,我們預計將來的互動也沒有區別。Rdio就是一個出色的Web應用,在瀏覽器中運行,與在桌面上運行幾乎沒有區別。
當然,實時技術并不是什么新鮮事物,低延遲的軟件和硬件,以及對信息的幾乎同步訪問已存在多年。但開發人員菲爾·萊格特(Phil Leggetter)稱:“沒有人在金融以外的領域使用。”
萊格特稱,只是最近幾年,實時技術才從小眾領域走進大眾市場。Twitter是一個轉折點,使得信息可以被實時發現。但萊格特稱:“下一個目標是實時投遞。”
經濟實惠的Node
與任何開發人員談論實時技術,都將不可避免地談到Node。Node是一款用來編寫高性能網絡服務器的JavaScript工具包,今天的許多實時應用都采用了Node。
當然,Node也并非***的實現方法。Twitter服務器實時搜索結果使用的就是前端系統Blender,后者依靠的是Java網絡框架Netty。而Facebook采用的是阿帕奇Web服務器和自主開發的HipHop。
不同的是,Facebook、Twitter和谷歌不僅僅時發送和接收信息,他們還需要大量的計算能力來注釋、分析和返回數據。而一些小型開發人員的需求很簡單,使用Node較為實際。
實時應用通常并不需要大量的計算能力,因為這些需求可以交給專業服務來解決,如亞馬遜的EC2。相反,他們需要以最快速度移動、路由和連接大量數據的能力。
這就是速度至關重要的原因。在德波伽里斯所說的Web瀏覽器終端世界,限制用戶體驗的只有兩個因素,數據傳輸速度和同時連接服務器的數量。而Node可以在很大程度上同時解決這兩大問題。
對于Facebook而言,這可能不是什么問題,因為他們對定制的PHP和阿帕奇服務很滿意,也擁有足夠的資金用來升級。但對于小型開發商或開發團隊而言,利用最少的資源開發出更具吸引力的實時體驗無疑至關重要。
前景光明
經過多年的實時技術研究,開發人員萊格特對此持樂觀態度。他說,我們已經看到一些產品和服務,雖然沒有將實時作為賣點,但確實是依賴于實時技術,這是一件好事。
萊格特說:“這意味著,我們開始看到實時技術的實際應用,而不僅限于理論。這項技術很酷,讓我們一起努力,充分挖掘其使用價值。”
德利斯勒同樣持樂觀態度,稱MMO版《小行星》只是一個開始。他說:“實時技術將成為一種默認技術,不是只有谷歌、Facebook和Twitter才能承受得起。”
原文鏈接:http://www.mhtml5.com/2012/05/5011.html
【編輯推薦】