總之,一個新興事物的誕生之初,有不同的觀點進行爭論是很正常的現象。作者作為支持Ajax的一派,對這個新生事物,可以說是傾注了很多精 力。從最初的不懂,到略知一二,再到深刻認識,發現Ajax背后隱藏的趨勢,多少有些亢奮。憑此文,希望能夠把自己的觀點,表達一二。
Ajax在2005年異軍突起,伴隨著Web2.0,成為了本年度最為流行的名詞之一。很多人看到這樣一門技術,可能會很奇怪,感到很突兀。
- 為什么會突然產生這樣一種技術?
- 類似的技術早就有,Ajax有什么突破?
- 為什么這種技術如此盛行,并被某些人認為是一種趨勢呢?
如果你僅僅試圖從Ajax本身去尋找這些問 題的答案,你可能會一無所獲。如果你僅能夠看到Ajax本身,那就如同瞎子摸象、管中窺豹,不能領略全局,當然也不能領會其意義。相反,如果你能夠從一個 更好的高度上去思考Ajax所帶來的好處,把Ajax放到一個相關的語境中去體會,你就會有另一番發現。
與Ajax相連的,還有這么兩個名詞—RiA和Web2.0。
什么是RiA?
RiA就是Rich Internet Application的縮寫。
“Rich”代表功能強大,高交互性,高用戶體驗。
“Internet”代表方便。應用程序部署方便,用戶使用方便。跨系統,跨語言。
其實RiA實際上一種基于Web的C/S架構(我稱之為C/S/B)。由于有一個客戶端,所以RiA應用可以提供強大的功能,讓用戶體驗到高交互性,高 用戶體驗。同時,RiA又是基于Internet瀏覽器的應用,所以,用戶使用RiA非常方便。理想來說,用戶使用RiA應當像現在使用普通網頁一樣方 便。用戶不需要安裝任何的客戶端軟件,只要擁有瀏覽器。當用戶通過瀏覽器發出指令,希望運行某種RiA應用程序時,一切都會飛快的建立在客戶端機器上,就 像你在Web上點擊一個頁面一樣。
目前,典型的RiA的代表有如下幾種技術:
- MS ClickOnce
- Sun Java Web Start
- Adobe Flash
- Ajax
應該說,各大廠商均看到了RiA美好的未來,紛紛行動起來希望分一杯羹。只有Ajax技術在這些技術中有些特立獨行。
Ajax并不屬于任何廠商,相反,Ajax代表的是一種開源的風格。由于Ajax所采用的各種技術要么是基于標準的,要么也沒有被各大廠商所壟斷,所以 Ajax真正是一個平民化的技術,誰都可以用它。同時,由于Ajax采用的各種技術基于現有的瀏覽器,所以兼容性最好。用Ajax技術建立的網站,目前均 可以直接運行,不需要任何客戶端的改變。
其他的各種技術與Ajax比較起來,目前或多或少的還有些兼容性的問題。雖然這些技術功能強 大,但是目前它們應用起來還并不是很方便。不過可以看到,隨著時間的推進,相信,未來還是屬于功能更強大的一方。除非Ajax本身的功能有所加強。這樣, 就看Javascript的功力了。
RiA實際上代表的是一種回歸。
最開始流行的C/S結構,因為功能強大,而且范圍有限,不需要害怕部署問題。之后隨著用戶的增加,部署問題越來越大,導致B/S模式的產生。
B/S模式雖然功能有限,但是卻使用非常方便。從長期來看,方便的作用還是非常巨大的。功能可以不斷增強,但是如果不方便,將嚇走所有的客戶。實際上觀 察一下Web的發展,就會發現,如今百花齊放的Web開發技術,其目的都是為了提高B/S架構的交互性,讓他更能適應需要而已。
不過, 隨著目前越來越多的應用需要一直到Web上,人們終于發現B/S模式的缺點。各種技術上的硬性問題均限制著B/S模式的發展。從最基本的請求/相應模型, HTTP協議,到所有負載均運行在服務器上的事實,讓我們迫切需要一種方式來提高Web的交互能力,但同時又不能喪失它的使用方便性。
于是,RiA誕生了。RiA就是基于瀏覽器的C/S結構。它將部分的服務器負載轉移到客戶端,同時又不會喪失使用和部署上的方便性。所以說,RiA就是一次回歸,只不過這次回歸我們沒有原地不動,相反,我們找到了最佳結合點。如圖1所示:
圖1、RiA就是一種回歸
但是,我們知道了RiA是一種回歸。可是,為什么RiA會盛行呢?這就需要我們把RiA放到Web2.0的環境中去思考。
什么是Web2.0?
目前,對于Web2.0并沒有明確的定義。在《What Is Web 2.0》這篇文章里,對Web2.0應用所需要具備的各種特點進行了總結,并且提了出來。
- Services, not packaged software, with cost-effective scalability
- Control over unique, hard-to-recreate data sources that get richer as more people use them
- Trusting users as co-developers
- Harnessing collective intelligence
- Leveraging the long tail through customer self-service
- Software above the level of a single device
- Lightweight user interfaces, development models, AND business models
雖然有這么多特性,但是Web2.0背后最本質的東西就只有兩點:
- 軟件向服務化發展,向平臺化發展
- Web由原來“Publisher”的觀點,發展成“Participation”的觀點。
正是基于這兩點,Web2.0時代迫切需要一種使用方便,高交互性的應用程序,而此重任,就落在了RiA身上。
通過圖2,你可以看到由Web1.0到Web2.0的變化。
圖2、Web1.0向Web2.0的演變
還是在《What Is Web 2.0》那篇文章里,勾勒出了一幅Web2.0的Meme Map。這張圖的中心代表的是Web2.0的核心概念,而旁邊是Web2.0概念的延伸。在這張圖里,我試圖勾勒出一些迫切需要RiA的特征點。實際上, 你可以看到,在Web2.0的Meme Map里,到處充滿了RiA的倩影。如圖3所示:
圖3、Web2.0中的RiA倩影
看看大象本身
介紹了這么多,讓我們總結一下。
隨著軟件和互聯網的發展,需求導致一種新的計算模型出現。這種計算模型的特色就是,軟件逐漸的有前臺推向后臺,以平臺的方式提供服務,讓用戶在前臺表演。
計算模型的變化,導致Web2.0的出現。盡管僅僅是開始,但是,從Web2.0的身上你依然可以依稀看到這種變化的趨勢。不過Web2.0要想有如此變化,要想讓用戶參與進來,就必須提供一個用戶功能強大的,使用方便的用戶接口(UI)。
于是,需求導致了RiA的出現。RiA提供了一個滿足需求的用戶接口,使得大家可以參與到Web2.0中來。但是,RiA要想應用起來,可能還需要一個過程。
于是,幾種RiA技術中,目前使用起來最合適的Ajax凸現出來。正是由于Ajax出色的兼容性,讓他走到了歷史的前臺。有了它,我們開始了一場新的革命。
圖4顯示了這些名詞之間的關系。把它們放在一起看,也許你會發現不一樣的東西。
圖4、Ajax、RiA與Web2.0
未來的樣子
當我走在北京的街頭,我在想,如果我有一臺智能手機,可以訪問百度的map服務,也許我就不會像現在這樣擔心迷路了。實際上,類似的例子還有很多。如果Web2.0的明天已經到來,我們的生活會發生很多改變。
我不知道,盡管我很想知道。如果我真的能夠看到未來的樣子,再具備一些必要的執行力的話,也許我就是下一個比爾。不過,看到目前的這一點,已經令我非常興奮。不管怎么樣,我們都有權利想象。也有權利,用我們的手去改變世界。
怎么樣?開始吧?Let’s do it!