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