前言
- RIA技術(shù)介紹和優(yōu)缺點
- Ajax
- Flash/Flex/Laszlo
- Adobe AIR(Adobe Integrated Runtime)
- WPF(Windows Presentation Foundation)
- Microsoft Silverlight
- Mozilla XUL
- SUN JavaFX
- RIA技術(shù)分類和比較
- 瀏覽器類
- 瀏覽器插件類
- 新型桌面類
- 那種RIA技術(shù)適合你
- 你是什么樣的類型?
- 選擇標(biāo)準(zhǔn)
- 找到合適自己的(目前和未來)
- 總結(jié)
在互聯(lián)網(wǎng)技術(shù)不斷普及的今天,我們隨處可見Web應(yīng)用程序(Web Application)的身影,甚至于Web Application已經(jīng)成為很多開發(fā)企業(yè)開發(fā)各類軟件系統(tǒng)的首選。Web Application的出現(xiàn)是為了解決早期C/S(客戶端-服務(wù)器)系統(tǒng)的部署、更新和維護(hù)的困難。其通過把整個應(yīng)用程序運(yùn)行在服務(wù)器端,把界面解析為HTML通過HTTP協(xié)議發(fā)送給客戶端的瀏覽器,以展現(xiàn)給用戶。
這種基于頁面的模型雖然結(jié)構(gòu)簡單,系統(tǒng)部署成本低,但同時也帶來了一些額外的問題,比如:用戶操作體驗簡單,不容易開發(fā)豐富的效果來展示數(shù)據(jù),應(yīng)用程序需要聯(lián)網(wǎng)才能運(yùn)行,系統(tǒng)安全性不高,瀏覽器兼容性容易影響系統(tǒng)正常運(yùn)行,應(yīng)用程序很難或者需要通過其他技術(shù)的輔助才能操作客戶機(jī)的資源,服務(wù)器的負(fù)載過高而客戶機(jī)的計算能力沒有充分使用,等等。
傳統(tǒng)Web Application的諸多缺點已經(jīng)被業(yè)界意識到,這樣一種全新的應(yīng)用系統(tǒng)構(gòu)架——Rich Internet Application(富互聯(lián)網(wǎng)應(yīng)用程序,簡稱RIA)被提了出來。RIA可以充分利用客戶機(jī)的計算能力,又不失Web Application那樣的部署優(yōu)點。這里的Rich體現(xiàn)了兩個方面的含義:一,用戶界面的豐富;二,數(shù)據(jù)模型的智能。RIA通過在客戶機(jī)上單獨運(yùn)行一個客戶端程序(這個客戶端程序有可能獨立運(yùn)行,也可能嵌在瀏覽器中運(yùn)行,下文會詳細(xì)闡述他們的區(qū)別),極大的提高了用戶界面的豐富表現(xiàn),可以很容易的和多媒體技術(shù)結(jié)合,提高了用戶體驗。由于RIA需要一個獨立于服務(wù)器的客戶端程序,那么和傳統(tǒng)Web Application的最大區(qū)別就在于,服務(wù)器已經(jīng)成為支持RIA客戶端程序正常運(yùn)行的數(shù)據(jù)服務(wù),并能為RIA提供復(fù)雜的數(shù)據(jù)處理方式,包括異步的數(shù)據(jù)傳輸處理和脫機(jī)的數(shù)據(jù)緩存機(jī)制。
我們可以看到RIA實際上是應(yīng)用系統(tǒng)構(gòu)架的進(jìn)化的一個全新設(shè)計,從最早的大型主機(jī)模型到C/S,到Web Application,再到現(xiàn)在的RIA,是逐步應(yīng)用系統(tǒng)的部署地域和用戶體驗的。圖1顯示了應(yīng)用系統(tǒng)構(gòu)架的發(fā)展過程:

圖1 Rich Internet Application的發(fā)展(摘自Adobe Flex:創(chuàng)建企業(yè)Rich Internet Application 的表示層解決方案)
一句話,RIA就是把傳統(tǒng)Web Application和桌面程序的優(yōu)點結(jié)合在一起,既提供了豐富的客戶端體驗,又通過網(wǎng)絡(luò)輕易部署和自由訪問Internet的資源。
RIA的概念首先由Macromedia在2004年發(fā)布Flex的時候提出,隨著Ajax的普及和深入,目前各大開發(fā)平臺供應(yīng)商都推出了各自的RIA技術(shù)平臺,以其在RIA大潮來臨的時候,成為主流的開發(fā)技術(shù)。
同時在網(wǎng)絡(luò)社區(qū)中,對于RIA技術(shù)平臺應(yīng)該具備那些條件和特點,也進(jìn)行了熱烈的討論:
- 良好的用戶體驗, 響應(yīng)速度快和豐富的用戶界面
- 基于互聯(lián)網(wǎng)的開放標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸
- 運(yùn)行時快速高效
- 能整合多種媒體格式
- 豐富的組件,基于事件驅(qū)動,能進(jìn)行快速開發(fā)
- 支持聯(lián)機(jī)/離線的數(shù)據(jù)傳輸
- 良好的兼容性,能在多種平臺下運(yùn)行
- 與服務(wù)器的交互方式必需首先支持異步的交互
- 所基于的新的媒體格式必需是基于文本的,這樣的格式才可能對于搜索引擎友好
- 要能夠支持增量的呈現(xiàn)(incremental rendering)
- 要基于動態(tài)類型的腳本語言,例如JavaScript或ActionScript,而不是C#這樣的靜態(tài)類型語言
- 要有90%以上的客戶端部署比例。這樣才能保證很好的Web可訪問性(Web Accessibility)
- 要有較為強(qiáng)大的開發(fā)工具
- 開發(fā)和部署的成本不能太高
- UI組件庫能夠比較方便的做擴(kuò)展
- RIA框架本身能夠比較方便的做擴(kuò)展
- 這種RIA技術(shù)不應(yīng)該造成對于服務(wù)器端技術(shù)的廠商鎖定
以上前言內(nèi)容,由于排版和字?jǐn)?shù)的原因,最終沒有發(fā)布。
在前言完了后,我RIA技術(shù)介紹和優(yōu)缺點中簡單介紹了這些技術(shù),并給出使用這些技術(shù)開發(fā)RIA的優(yōu)缺點(僅個人觀點)。
接著在RIA技術(shù)分類和比較中,我給出了如下這個表格:
RIA技術(shù)分類 |
包含的技術(shù) |
優(yōu)點 |
缺點 |
瀏覽器 |
|
- 基于原有Web技術(shù)
- 與HTML無縫集成
- 無需學(xué)習(xí)新技術(shù)
|
- 把應(yīng)用程序綁定在瀏覽器中,受瀏覽器安全沙箱控制
- 瀏覽器的兼容性影響應(yīng)用程序的開發(fā)和運(yùn)行
|
瀏覽器插件 |
|
- 獨立的技術(shù)
- 與HTML部分集成
- 豐富的界面表現(xiàn)
- 特定的開發(fā)語言和工具
- 能使用部分在Web開發(fā)中的經(jīng)驗
|
- 需要下載插件和定制的運(yùn)行時
- 運(yùn)行在瀏覽器中,受瀏覽器安全沙箱控制
- 需要學(xué)習(xí)新技術(shù)
|
新型桌面 |
|
- 獨立完善的技術(shù)
- 特定的開發(fā)語言和工具
- 可獨立瀏覽器運(yùn)行(也可以運(yùn)行于瀏覽器中)
- 最豐富的界面表現(xiàn)
- 能方便的訪問本地資源
- 可使用桌面軟件開發(fā)的技巧
|
- 需要安裝單獨的運(yùn)行環(huán)境
- 需要學(xué)習(xí)新技術(shù)
|
從上面的表中,可以看到一個明顯的特點,就是Adobe和Microsoft都同時推出在瀏覽器中運(yùn)行和獨立瀏覽器運(yùn)行的RIA開發(fā)平臺。
在三種分類的技術(shù)中,瀏覽器技術(shù)是成為開發(fā)RIA最直接的技術(shù)。很多人認(rèn)為Ajax是開發(fā)RIA的不二選擇,Ajax的潛力還沒有完全挖掘出來,使用現(xiàn)有的Web技術(shù)(HTML+CSS+JavaScript)完成可以開發(fā)出豐富的用戶界面。此類技術(shù)適合一直在做Web應(yīng)用的軟件開發(fā)商選擇。
新型桌面技術(shù)則完全另起爐灶,充分使用桌面開發(fā)的技術(shù)、技巧和理念,并結(jié)合Web Application部署方便即時安裝的優(yōu)點。此類技術(shù)適合做Windows應(yīng)用的開發(fā)商。
瀏覽器插件則在瀏覽器技術(shù)和新型桌面之間進(jìn)行了折中,既使用新的技術(shù)來實現(xiàn)豐富的界面,又能和現(xiàn)有的Web技術(shù)進(jìn)行部分的集成。
如何選擇適合自己的技術(shù),主要看如下幾個方面:
- 自己目前的技術(shù),和產(chǎn)品的結(jié)構(gòu)
- RIA技術(shù)供應(yīng)商的背景
- RIA技術(shù)學(xué)習(xí)的成本
- RIA技術(shù)應(yīng)用的成本
- RIA技術(shù)運(yùn)行的效率
- ……
最后,RIA技術(shù)平臺未來市場的發(fā)展情況,供應(yīng)商將會是三國鼎立的局面:Adobe、Microsoft和SUN。Adobe依賴Flex,已經(jīng)在RIA領(lǐng)域有了很好的基礎(chǔ),最近又推出AIR,把手伸向了桌面系統(tǒng)。Microsoft向來是桌面軟件開發(fā)的霸主,通過推出WPF來一統(tǒng)Windows和Web界面開發(fā)技術(shù),現(xiàn)在又推出Silverlight來和Flex直接競爭,并且Silverlight有很多比Flex先進(jìn)的特性。SUN依靠Java的基礎(chǔ),以及在移動設(shè)備上的JavaME運(yùn)行時,走開源路線,也會成為一個有力競爭者。總體來說,Microsoft和Adobe是份額最大的供應(yīng)商,SUN會稍顯弱勢。另外,Ajax會成為很多一直在做Web Application的軟件開發(fā)商的首選,其必將成為一個重要的RIA開發(fā)技術(shù)。