RIA技術概覽

來源:互聯網
上載者:User

《程式員》雜誌05年第二期原文,個人網站轉載請註明作者(王林/Azure)和出處(中國RIA開發人員www.riacn.com)並且保留這段著作權說明,商業網站轉載需要得到CSDN的許可。

RIA技術概覽

互連網已經日益成為應用程式開發的預設平台,傳統的Web應用程式(Web Application)是基於HTML頁面、伺服器端資料傳遞的模式。而HTML是適合於文本的,隨著Web應用程式複雜性越來越高,傳統的Web應用程式已經漸漸不能滿足Web瀏覽者更高的、全方位的體驗要求了,這就是被Macromedia公司稱之為的"體驗問題"("Experience Matters")。此時一種被稱為Rich Internet Application(簡稱RIA,中文翻譯作"豐富互連網應用程式")的具高度互動性和豐富使用者體驗的網路應用程式出現了。Macromedia公司也藉此機會開發了相關的技術和開發工具,促進RIA的開發和普及。

1. RIA的產生背景
企業級應用程式經曆了幾次系統架構方面的重要轉變,在此過程中,用戶端的表現能力有起有落。圖1顯示了Rich Internet Application的發展過程:

圖1.Rich Internet Application的發展(摘自Macromedia Flex:建立企業Rich Internet
Application 的展示層解決方案)

  • 基於主機的應用程式:應用程式提供基於文本的非圖形化使用者介面,只有內部人員才能進行訪問。
  • 客戶機/伺服器(Client/Server,簡稱C/S)應用程式:二十世紀九十年代隨著Windows的出現和用戶端處理能力的增強,出現了客戶機/伺服器應用程式,它們採用圖形化使用者介面,用戶端的資料處理能力比較強。但由於用戶端應用程式需要進行不斷的更新,因此部署成本比較高,只能為少數人所使用。
  • 瀏覽器/伺服器(Browser/Server,簡稱B/S)應用程式:九十年代中期,互連網飛速發展,出現了瀏覽器/伺服器應用程式,Web的廣泛使用解決了C/S應用程式部署、和更新的困難。但由於採用了HTML頁面形式的使用者介面,用戶端的資料處理能力較C/S應用程式有所回落。

C/S架構的缺點主要是部署、更新的問題。B/S架構的缺點主要是受制於HTML的限制,無法像C/S那樣使用豐富的效果來展示資料,使用者體驗比較糟糕。另外,穩定的用戶端/伺服器串連,也是必要條件,網路中斷將使B/S程式無法運行。從C/S到B/S,這兩者受限於技術本身分別發展成了重用戶端和重伺服器端的模式,而RIA的出現給我們帶來重新在用戶端和伺服器端進行更好的平衡的機會。

2. 什麼是RIA
RIA 是集傳統型應用程式的最佳使用者介面功能與Web應用程式的普遍採用和快速、低成本布署以及互動多媒體通訊的即時快捷於一體的新一代網路應用程式。RIA中的 Rich Client(豐富用戶端)提供可承載已編譯用戶端應用程式(以檔案形式,用HTTP傳遞)的運行環境,用戶端應用程式使用非同步客戶/伺服器架構串連現有的後端應用伺服器,這是一種安全、可升級、具有良好適應性的新的面向服務模型,這種模型由採用的Web服務所驅動。結合了聲音、視頻和即時對話的綜合通訊技術使RIA具有前所未有的網上使用者體驗。
就是RIA的應用程式模型:

圖2.RIA的應用程式模型

3. RIA的優勢
RIA 具有的傳統型應用程式的特點包括:在訊息確認和格式編排方面提供互動使用者介面;在無重新整理頁面之下提供快捷的介面回應時間;提供通用的使用者介面特性如拖放式(drag and drop)以及線上和離線操作能力。RIA具有的Web應用程式的特點包括如:立即布署、跨平台、採用逐步下載來檢索內容和資料以及可以充分利用被廣泛採納的互連網標準。RIA具有通訊的特點則包括即時互動的聲音和映像。

客戶機在RIA中的作用不僅是展示頁面,它可以在幕後與使用者請求非同步地進行計算、傳送和檢索資料、顯示整合的使用者介面和綜合使用聲音和映像,這一切都可以在不依靠客戶機已連線的服務器或後端的情況下進行。

對於企業來說,部署RIA的好處在於:
1)RIA可以繼續使用現有的應用程式模型(包括J2EE和.NET),因而無需大規模替換現有的Web應用程式。通過Rich Client技術,可以輕鬆構建更為直觀、便於使用、反應更迅速並且可以離線使用的應用程式。

2)RIA可以協助企業提供多元化的重要業務效益,包括產提高銷量、提高品牌忠誠度、延長網站逗留時間、較頻繁的重複訪問、減少頻寬成本、減少支援求助以及增強客戶關係等。

4. RIA目前的發展態勢
在過去的兩到三年中,Web開發人員一直是想構建一種比傳統HTML更豐富的用戶端:這是一個使用者介面,它比用HTML能實現的介面更加健壯、反應更加靈敏和更具有令人感興趣的可視化特性。RIA技術的出現允許我們在網際網路上以一種像使用Web一樣簡單的方式來部署富用戶端程式。無論將來RIA是否能夠如人們所猜測的那樣完全代替HTML應用系統,對於那些採用C/S架構的胖用戶端技術運行複雜應用系統的機構和採用基於B/S架構的瘦用戶端技術部署Web應用系統地機構來說,RIA確實提供了一種廉價的選擇。下面介紹一下目前出現的幾種比較有實力或者有特點的RIA用戶端開發技術:

1) Macromedia Flash/Flex
Flash 從6.0開始Flash就逐步具備建立表單風格的應用程式的功能。據Macromedia稱已經有98%以上的案頭系統的瀏覽器都安裝了 Macromedia Flash Player。這使得以Macromedia Flash Player為用戶端的RIA可以支援種類廣泛的平台和裝置。
Flex是為滿足希望開發 RIA的企業級程式員的需求而推出的表示伺服器和應用程式架構,它可以運行於J2EE和.NET平台。Flex表示伺服器提供基於標準的、聲明性的編程方法和流程,並提供運行時服務,用於開發和部署豐富用戶端應用程式的展示層。Flex開發人員使用直觀的基於XML的MXML來定義豐富的使用者介面。該語言由 Flex伺服器翻譯成SWF格式的用戶端應用程式,在Flash Player中運行。

2) Laszlo
Laszlo 是一個開源的RIA開發環境。使用Laszlo平台時,開發人員只需編寫名為LZX的描述語言(其中整合了XML和Javascript),運行在J2EE 應用伺服器上的Laszlo平台會將其編譯成SWF格式的檔案並傳輸給用戶端展示。從這點上來說,Laszlo的本質和Flex是一樣的。Flash是任何瀏覽器都支援的展示形式,從而一舉解決了瀏覽器之間的移植問題。而且,在未來的計劃中,Laszlo還可以將LZX編譯成Java或.NET本地代碼,從而大大提高運行效率。

3) Avalon
Microsoft的Avalon是下一版本的Windows(代號"Longhorn")的一部分,是一個圖形和展示引擎,主要由新加到.NET架構中的一組類集合而成。Avalon定義了一個在Longhorn中使用的新標記語言,其代號為"XAML"(可擴充應用程式標記語言)。可以使用XAML來定義文本、映像和控制項的布局,程式碼可以直接嵌入到XAML中,也可以將它保留在一個單獨的檔案內。這與Flex中的MXML或者Laszlo中的LZX非常相似。不同的是:基於 Avalon的應用程式必須運行在Longhorn環境中,而Flex和Laszlo是不依賴於平台的,僅僅需要裝有Flash播放器的瀏覽器即可。

4) Java SWT
Java 已經出現幾年了,並且完全支援建立基於表單的使用者介面。除了Java基礎類(JFC/Swing)中的使用者介面組件之外,開發人員還可以使用來自於 Eclipse Project的SWT工具箱和許多第三方工具箱進行開發。對於圖形來說,可以採用Java 2D API:一個非常完整且非常複雜的圖形API。你可以通過一個Web瀏覽器使用Java外掛程式軟體,或使用Java運行時環境中較新的Java Web Start技術來部署應用程式。使用Java建立Rich Client的主要缺陷是它的複雜性(即使對簡單的表單和圖形也要求編寫非常煩瑣的代碼)和Java瀏覽器外掛程式的低市場佔有率。

5) XUL
XUL (念作"zool")是一種基於XML的使用者介面語言,它來自於Mozilla的開放源碼項目。它可用於建立表單應用程式,這些應用程式不但可以在 Mozilla瀏覽器上運行,而且也可以運行在其他描述引擎上,如Zulu(一個Flash MX組件)和Thinleys(一個Java實現)。XUL描述引擎都非常小(100K以下),它可以使用XML資料也可以產生XML資料。XUL的一個主要缺點在於它目前還沒有獲得一個主要商業實體的支援。XUL最大的優點在於它與Gecko引擎的整合(開啟了通向大量Web標準的大門),以及與大多數其它XML使用者介面描述語言相比它是一種非常具有表達力和簡潔的語言。

6) Bindows
Bindow 是用Javascript和DHTML開發的Web表單架構。Javascript用於用戶端介面的顯示和處理,XMLHTTP用於用戶端與伺服器的資訊傳輸。Javascript在用戶端的表現力不容置疑,利用Javascript幾乎可以實現Windows應用程式所能乾的大部分事情,XMLHTTP 一直以來常被用於實現"無重新整理"的Web頁面,它和 Javascript配合,可以完成資料從伺服器和用戶端的傳輸。Bindows的一個主要的缺點是它採用一次全部載入的方式來實現指令碼庫,在視窗的載入期,需要一個漫長的等待過程,甚至瀏覽器的進程會產生無響應的情況。這點Bindows根本沒有遵循"用多少去多少"的準則。另外,內部大量利用了IE6 的技術,沒有考慮到非IE的瀏覽器,限制了Bindows的流行。

5. RIA未來的發展預測
就目前RIA的使用方式來說,離"RIA時代"還有很遠的一段距離。今後幾年時間內傳統的Web應用程式和RIA將會共存。筆者認為真正具有實力擔當起普及豐富用戶端應用重任的只有基於Flash Player的Flash/Flex應用程式和Microsoft的基於Avalon的應用程式。短期時間內(估計2-3年時間)可能是 Flash/Flex應用程式在新興的網路應用程式市場上佔有主導地位。隨著時間的推移,Flash/Flex應用程式的市場佔有率可能會慢慢被基於 Avalon的應用程式所蠶食。當然,Flash Player和Flex以後也會不斷推出新版本,相對於升級作業系統或安裝Avalon運行環境,人們肯定更願意升級Flash Player。Flash/Flex應用程式也有其本身固有的軟肋,Flash Player的執行效率和對本地資源的操作限制是無法和Avalon相比的,相對於瀏覽器中的外掛程式而言,Avalon的應用程式擁有更加廣闊的可操作空間和更高的執行效率。

目前Microsoft還在推廣一種叫做Smart Client(智能用戶端)的用戶端程式技術,Microsoft稱Smart Client是比Rich Client更優秀的用戶端,因而採用Smart Client的應用程式算不算RIA目前我個人還無法作答。這裡我們之所以提及Smart Client,是因為Smart Client的特性跟我們談的Rich Client有太多的相似之處。Smart Client擁有自動更新、離線狀態下的資料處理和可以使用本地資源等特徵,其中的可使用本地資源這一項無疑是一大賣點,因為瀏覽器中的 Flash/Flex應用程式目前還無法操作本地的一些資源,比如Flash/Flex應用程式無法將網上的檔案儲存到本地或者修改本地檔案。雖然 Macromedia的Central1.5已經可以對本地檔案進行簡單的操作,並且flex1.5開發的RIA也能夠運行於Central上,但是如何使Central能夠得到大範圍推廣還是個問題。相對於輕量級的Rich Client,Smart Client更接近C/S架構中的用戶端程式。Rich Client和Smart Client的定位還是有所區別的:Rich Client更適合作為輕量級的基於瀏覽器的網路應用程式用戶端;Smart Client更適合作為Windows傳統型應用程式的智能用戶端。

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.