什么是RIA?介紹幾種RIA客戶端開發(fā)技術(shù)

2010-08-28 10:53:46來源:西部e網(wǎng)作者:

什么是RIA?

RIA(Rich Interface Applications)富界面應(yīng)用,俗稱胖客戶端或者富客戶端。

RIA的優(yōu)勢

RIA 具有的桌面應(yīng)用程序的特點包括:在消息確認(rèn)和格式編排方面提供互動用戶界面;在無刷新頁面之下提供快捷的界面響應(yīng)時間;提供通用的用戶界面特性如拖放式(drag and drop)以及在線和離線操作能力。RIA具有的Web應(yīng)用程序的特點包括如:立即部署、跨平臺、采用逐步下載來檢索內(nèi)容和數(shù)據(jù)以及可以充分利用被廣泛采納的互聯(lián)網(wǎng)標(biāo)準(zhǔn)。RIA具有通信的特點則包括實時互動的聲音和圖像。

客戶機(jī)在RIA中的作用不僅是展示頁面,它可以在幕后與用戶請求異步地進(jìn)行計算、傳送和檢索數(shù)據(jù)、顯示集成的用戶界面和綜合使用聲音和圖像,這一切都可以在不依靠客戶機(jī)連接的服務(wù)器或后端的情況下進(jìn)行。

對于企業(yè)來說,部署RIA的好處在于:
1)RIA可以繼續(xù)使用現(xiàn)有的應(yīng)用程序模型(包括J2EE和.NET),因而無需大規(guī)模替換現(xiàn)有的Web應(yīng)用程序。通過Rich Client技術(shù),可以輕松構(gòu)建更為直觀、易于使用、反應(yīng)更迅速并且可以脫機(jī)使用的應(yīng)用程序。

2)RIA可以幫助企業(yè)提供多元化的重要業(yè)務(wù)效益,包括產(chǎn)提高銷量、提高品牌忠誠度、延長網(wǎng)站逗留時間、較頻繁的重復(fù)訪問、減少帶寬成本、減少支持求助以及增強(qiáng)客戶關(guān)系等。

RIA目前的發(fā)展態(tài)勢

在過去的兩到三年中,Web開發(fā)人員一直是想構(gòu)建一種比傳統(tǒng)HTML更豐富的客戶端:這是一個用戶接口,它比用HTML能實現(xiàn)的接口更加健壯、反應(yīng)更加靈敏和更具有令人感興趣的可視化特性。RIA技術(shù)的出現(xiàn)允許我們在因特網(wǎng)上以一種像使用Web一樣簡單的方式來部署富客戶端程序。無論將來RIA是否能夠如人們所猜測的那樣完全代替HTML應(yīng)用系統(tǒng),對于那些采用C/S架構(gòu)的胖客戶端技術(shù)運行復(fù)雜應(yīng)用系統(tǒng)的機(jī)構(gòu)和采用基于B/S架構(gòu)的瘦客戶端技術(shù)部署Web應(yīng)用系統(tǒng)地機(jī)構(gòu)來說,RIA確實提供了一種廉價的選擇。下面介紹一下目前出現(xiàn)的幾種比較有實力或者有特點的RIA客戶端開發(fā)技術(shù):

1) Macromedia Flash/Flex
Flash 從6.0開始Flash就逐步具備建立窗體風(fēng)格的應(yīng)用程序的功能。據(jù)Macromedia稱已經(jīng)有98%以上的桌面系統(tǒng)的瀏覽器都安裝了 Macromedia Flash Player。這使得以Macromedia Flash Player為客戶端的RIA可以支持種類廣泛的平臺和設(shè)備。
Flex是為滿足希望開發(fā) RIA的企業(yè)級程序員的需求而推出的表示服務(wù)器和應(yīng)用程序框架,它可以運行于J2EE和.NET平臺。Flex表示服務(wù)器提供基于標(biāo)準(zhǔn)的、聲明性的編程方法和流程,并提供運行時服務(wù),用于開發(fā)和部署豐富客戶端應(yīng)用程序的表示層。Flex開發(fā)者使用直觀的基于XML的MXML來定義豐富的用戶界面。該語言由 Flex服務(wù)器翻譯成SWF格式的客戶端應(yīng)用程序,在Flash Player中運行。

2) Laszlo
Laszlo 是一個開源的RIA開發(fā)環(huán)境。使用Laszlo平臺時,開發(fā)者只需編寫名為LZX的描述語言(其中整合了XML和Javascript),運行在J2EE 應(yīng)用服務(wù)器上的Laszlo平臺會將其編譯成SWF格式的文件并傳輸給客戶端展示。從這點上來說,Laszlo的本質(zhì)和Flex是一樣的。Flash是任何瀏覽器都支持的展示形式,從而一舉解決了瀏覽器之間的移植問題。而且,在未來的計劃中,Laszlo還可以將LZX編譯成Java或.NET本地代碼,從而大大提高運行效率。

3) Avalon
Microsoft的Avalon是下一版本的 Windows(代號"Longhorn")的一部分,是一個圖形和展示引擎,主要由新加到.NET框架中的一組類集合而成。Avalon定義了一個在 Longhorn中使用的新標(biāo)記語言,其代號為"XAML"(可擴(kuò)展應(yīng)用程序標(biāo)記語言)?梢允褂肵AML來定義文本、圖像和控件的布局,程序代碼可以直接嵌入到XAML中,也可以將它保留在一個單獨的文件內(nèi)。這與Flex中的MXML或者Laszlo中的LZX非常相似。不同的是:基于 Avalon的應(yīng)用程序必須運行在Longhorn環(huán)境中,而Flex和Laszlo是不依賴于平臺的,僅僅需要裝有Flash播放器的瀏覽器即可。

4) Java SWT
Java 已經(jīng)出現(xiàn)幾年了,并且完全支持創(chuàng)建基于窗體的用戶界面。除了Java基礎(chǔ)類(JFC/Swing)中的用戶界面組件之外,開發(fā)人員還可以使用來自于 Eclipse Project的SWT工具箱和許多第三方工具箱進(jìn)行開發(fā)。對于圖形來說,可以采用Java 2D API:一個非常完整且非常復(fù)雜的圖形API。你可以通過一個Web瀏覽器使用Java插件軟件,或使用Java運行時環(huán)境中較新的Java Web Start技術(shù)來部署應(yīng)用程序。使用Java建立Rich Client的主要缺陷是它的復(fù)雜性(即使對簡單的窗體和圖形也要求編寫非常煩瑣的代碼)和Java瀏覽器插件的低市場占有率。

5) XUL
XUL (念作"zool")是一種基于XML的用戶界面語言,它來自于Mozilla的開放源碼項目。它可用于建立窗體應(yīng)用程序,這些應(yīng)用程序不但可以在 Mozilla瀏覽器上運行,而且也可以運行在其他描述引擎上,如Zulu(一個Flash MX組件)和Thinleys(一個Java實現(xiàn))。XUL描述引擎都非常小(100K以下),它可以使用XML數(shù)據(jù)也可以生成XML數(shù)據(jù)。XUL的一個主要缺點在于它目前還沒有獲得一個主要商業(yè)實體的支持。XUL最大的優(yōu)點在于它與Gecko引擎的集成(打開了通向大量Web標(biāo)準(zhǔn)的大門),以及與大多數(shù)其它XML用戶界面描述語言相比它是一種非常具有表達(dá)力和簡潔的語言。

6) Bindows
Bindow 是用Javascript和DHTML開發(fā)的Web窗體框架。Javascript用于客戶端界面的顯示和處理,XMLHTTP用于客戶端與服務(wù)器的信息傳輸。Javascript在客戶端的表現(xiàn)力不容置疑,利用Javascript幾乎可以實現(xiàn)Windows應(yīng)用程序所能干的大部分事情,XMLHTTP 一直以來常被用于實現(xiàn)"無刷新"的Web頁面,它和 Javascript配合,可以完成數(shù)據(jù)從服務(wù)器和客戶端的傳輸。Bindows的一個主要的缺點是它采用一次全部載入的方式來實現(xiàn)腳本庫,在窗口的加載期,需要一個漫長的等待過程,甚至瀏覽器的進(jìn)程會產(chǎn)生無響應(yīng)的情況。這點Bindows根本沒有遵循"用多少去多少"的準(zhǔn)則。另外,內(nèi)部大量利用了IE6 的技術(shù),沒有考慮到非IE的瀏覽器,限制了Bindows的流行。

RIA未來的發(fā)展預(yù)測

就目前RIA的使用情況來說,離"RIA時代"還有很遠(yuǎn)的一段距離。今后幾年時間內(nèi)傳統(tǒng)的Web應(yīng)用程序和RIA將會共存。筆者認(rèn)為真正具有實力擔(dān)當(dāng)起普及豐富客戶端應(yīng)用重任的只有基于Flash Player的Flash/Flex應(yīng)用程序和Microsoft的基于Avalon的應(yīng)用程序。短期時間內(nèi)(估計2-3年時間)可能是 Flash/Flex應(yīng)用程序在新興的網(wǎng)絡(luò)應(yīng)用程序市場上占有主導(dǎo)地位。隨著時間的推移,F(xiàn)lash/Flex應(yīng)用程序的市場占有率可能會慢慢被基于 Avalon的應(yīng)用程序所蠶食。當(dāng)然,F(xiàn)lash Player和Flex以后也會不斷推出新版本,相對于升級操作系統(tǒng)或安裝Avalon運行環(huán)境,人們肯定更愿意升級Flash Player。Flash/Flex應(yīng)用程序也有其本身固有的軟肋,F(xiàn)lash Player的執(zhí)行效率和對本地資源的操作限制是無法和Avalon相比的,相對于瀏覽器中的插件而言,Avalon的應(yīng)用程序擁有更加廣闊的可操作空間和更高的執(zhí)行效率。

目前Microsoft還在推廣一種叫做Smart Client(智能客戶端)的客戶端程序技術(shù),Microsoft稱Smart Client是比Rich Client更優(yōu)秀的客戶端,因而采用Smart Client的應(yīng)用程序算不算RIA目前我個人還無法作答。這里我們之所以提及Smart Client,是因為Smart Client的特性跟我們談的Rich Client有太多的相似之處。Smart Client擁有自動更新、離線狀態(tài)下的數(shù)據(jù)處理和可以使用本地資源等特征,其中的可使用本地資源這一項無疑是一大賣點,因為瀏覽器中的 Flash/Flex應(yīng)用程序目前還無法操作本地的一些資源,比如Flash/Flex應(yīng)用程序無法將網(wǎng)上的文件保存到本地或者修改本地文件。雖然 Macromedia的Central1.5已經(jīng)可以對本地文件進(jìn)行簡單的操作,并且flex1.5開發(fā)的RIA也能夠運行于Central上,但是如何使Central能夠得到大范圍推廣還是個問題。相對于輕量級的Rich Client,Smart Client更接近C/S架構(gòu)中的客戶端程序。Rich Client和Smart Client的定位還是有所區(qū)別的:Rich Client更適合作為輕量級的基于瀏覽器的網(wǎng)絡(luò)應(yīng)用程序客戶端;Smart Client更適合作為Windows桌面應(yīng)用程序的智能客戶端。

不管我們今天稱之為的RIA今后會不會成為主流應(yīng)用程序,人們對開發(fā)具有高度互動性、豐富用戶體驗以及功能強(qiáng)大的客戶端的追求是不變的。有理由相信,擁有成熟技術(shù)和極高市場占有率的Flash客戶端將會在RIA道路上越走越遠(yuǎn)。Microsoft未來的重量級武器:Avalon和Smart Client能否后來者居上讓我們拭目以待。

關(guān)鍵詞:RIA

贊助商鏈接: