瘦客戶端那些事 - 開篇
人類活動最大的成本花費在哪里?我認為在溝通和學習上。我們從哇哇落地開始,就在不斷的學習前人總結的經驗。學校教育,大大加速了這一進程。隨著互聯網的發展,人們可以自由的分享知識和經驗,使得我們平時遇到的問題基本上都可以從互聯網上找到答案。因此,互聯網當之無愧為人類最偉大的發明之一。它減少了多少 人們溝通和學習的成本啊!這個系列里,我要說說瘦客戶端的那些事。涉及的知識都是來自互聯網,所以,要感謝Google,感謝Wikipedia。最后,我將我學習和總結的知識再回饋回互聯網,希望能對他人有所幫助,有所啟發。
言歸正傳,讓我們開始說說瘦客戶那些事。所謂“瘦客戶端”,就是指,我們只需要一臺配置一般的終端設備(PC電腦、手持設備等),就能擁有超計算機的計算處理能力。其實,這離我們并不遙遠。BS應用的發展,已經讓我們實現了只要一臺配置一般的智能手機,就能通過Google完成億萬次的搜索計算。
上面的這個模型大家已經熟悉的不能再熟悉了。客戶端發出指令,服務端接收指令,執行完運算后,將結果返回給客戶端。但是,這個系列我要講的,并不是上面這個模型,而是:
我們的手機(瘦客戶端)不再是Google搜索中,搜索任務簡單的發送者和接受者,而是一個更加實時的操作超級計算機的感受。我們的每一次鼠標移動,點擊,鍵盤輸入,觸摸屏的滑動,仿佛手機本身就是一個超級計算機。有了這樣的瘦客戶端,我們不再需要購買價格昂貴、骨灰配置的電腦,而我們只需要一個很低配置的上網本,平板電腦,或是智能手機,就能一樣暢快淋漓的玩魔獸世界、極品飛車。在未來科幻電影中的通話聯絡的智能手表、查看戰斗指數的眼鏡,都有可能實現。
同時,我們不再為程序的跨平臺所擔心。瘦客戶端中,能跨平臺執行各種應用程序,比如Windows的Word,Linux的OpenOffice,Mac里 的XCode。更讓人驚喜的是,我們運行一款軟件之前,不再需要經過“下載”、“安裝”的步驟,而是立即使用。不管是多大的游戲,多復雜配置的軟件。我甚至大膽推測一下,在未來,人們將不再使用Windows,Linux,Mac之類的操作系統,取而代之的將是完全基于網絡的網絡操作系統。而現有的這些操作系統,失去了個人用戶也很難再維持發展,必將慢慢被淘汰。最后必將涌現出的,是各種基于不同瘦客戶端協議的完全基于網絡的操作系統。谷歌現在開發的chromium操作系統,正是符合這個發展趨勢的,不過具體是怎樣的,我沒用過,也不好說。
在這個系列里,我盡量避免使用“云”之類炒的火熱的詞匯。我們見過了太多的所謂的“云”,十有八九是偽云,比如殺毒領域最大的忽悠云查殺。云計算和這里講的瘦客戶有一定的契合,但不完全相同。云計算強調的是大規模數據中心按需分配的計算能力,就像集中式發電廠。云計算是服務端的“胖”,瘦客戶強調的是客戶端的“瘦”,如果兩者一結合,必將擦出火花。
未來并不遙遠,我們能想的到的,都有人在嘗試了。國外著名的有Onlive,Gaikai,OTOY等, 他們都實現了通過私有協議,在配置一般的機器上,遠程玩像孤島危機之類的大型游戲。特別是Onlive,由于其雄厚的實力,與硬件提供商、網絡提供商、游 戲開發商都有深度的合作。比如,Onlive自主投資開發的定制硬件,和美國藝電有限公司(Electronic Arts)、育碧(Ubisoft)、Take-Two互動軟件(Take-Two Interactive Software)、華納兄弟、交互式娛樂和英佩數碼美國藝電有限公司(Electronic Arts)、育碧(Ubisoft)、Take-Two互動軟件(Take-Two Interactive Software)、華納兄弟、交互式娛樂和英佩數碼達成的深度合作。就連谷歌微軟,都想買斷Onlive的技術。
iPad展示OnLive Demo:http://v.youku.com/v_show/id_XMTgyMzYzNjI4.html
國內也有一家公司實現了這樣的技術,叫云聯科技。公司僅僅成立一年多,在中國現有的網絡環境下,在沒有定制硬件的前提下,就做出如此驚人的成果,不得不讓人稱嘆。但是,這么好的技術,為什么現在還沒有普及開來呢?最大的障礙,是“延遲”和巨大的服務端消耗。
先來說說延遲。這里提到的是“延遲”,而不是“帶寬”。為什么呢?延遲的英文是latency,帶寬的英文是bandwidth。很多時候,人們會把兩者混淆。有些人搞不清楚,為什么我的帶寬提升到了聯通4M,玩電信的服務器網游還會卡?帶寬是指每秒最大的傳輸能力,延遲是指信號請求從發出到接收到所經過的時間。
誤區:隨著帶寬越來越大,延遲也會越來越小。
上面的圖已經很清楚,如果傳輸的數據未達到帶寬限制,即便帶寬再大,信號從發生到接收的時間T1-T0,只取決于其傳輸的速度和距離。假如服務器在美國,距離沒辦法改變,愛因斯坦說,速度的極限是光速。而光纖的傳播速度也許只能達到40%光速。所以說,如果你要給遠在4000公里之外的地方傳輸數據,比如從美國的加利福尼亞到馬薩諸塞州,延遲不可能再低于44毫秒。
游戲或軟件實際消耗的帶寬其實并不多,而且,帶寬在理論上是可以無限增加的,而延遲才是最大的問題,因為傳播的速度不可能超過光速。比如,我以前用電信 512K帶寬的網絡玩劍三,非常的流暢。現在我用聯通4M帶寬玩劍三,延遲卻很高。就像Gaikai這樣的公司,由于距離的限制,目前也只能接受洛杉磯地 區玩家的試玩申請。
減少延遲的辦法,在有限的情況下加快傳輸速率,以及盡可能的縮短傳輸的距離,比如,就近部署服務器。
另外一個障礙,是巨大的服務端消耗。我們可以想象,我們需要花費很多錢購買很好性能的機器才能流暢的玩孤島危機之類的大型游戲。像Onlive這種云游戲服 務器供應商,相當于需要給我們每個人都配一臺這樣服務器。成本可見是巨大的。即便是Onlive自己定制的硬件,一臺服務器同時也只能服務幾個人。
除了使用瘦客戶端玩大型游戲,我們還可以用瘦客戶端運行我們日常使用的軟件或小游戲。無需下載,無需安裝,一點即用,跨平臺,多么有吸引力!而且,軟件相對于游戲來說,不需要高清的傳輸畫面,因此對帶寬要求也低很多。軟件開發商也不再需要針對各平臺進行開發。理論上我們只需要一個版本的《植物大戰僵尸》,就可以在iphone, android, pc等各種終端設備上運行。
這樣的技術,是如何實現的呢?像Onlive,Gaikai之類的公司,使用的是自己的專有傳輸協議,我無從考證。但是,接下來的文章,我會從現有的一些知名的或開源的遠程傳輸協議開始,逐步深入技術細節,把我知道的那點瘦客戶端的事告訴大家。