RIA技術概覽

 

      互聯網已經日益成爲應用的廣泛平臺,傳統的Web應用程序(Web Application)是基於HTML頁面、服務器端數據傳遞的模式。而HTML是適合於文本的,隨着Web應用程序複雜性越來越高,傳統的Web應用程序已經漸漸不能滿足Web瀏覽者更高的、全方位的體驗要求了,這就是被Macromedia公司稱之爲的"體驗問題"("Experience Matters")。此時一種被稱爲Rich Internet Application(簡稱RIA,中文翻譯作"豐富互聯網應用程序")的具高度互動性和豐富用戶體驗的網絡應用程序出現了。


1. RIA的產生背景
      企業級應用程序經歷了幾次系統架構方面的重要轉變,在此過程中,客戶端的表現能力有起有落。

  

  • 基於主機的應用程序:應用程序提供基於文本的非圖形化用戶界面,只有內部人員才能進行訪問。
  • 客戶機/服務器(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具有前所未有的網上用戶體驗。


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) ADOBE Flash/Flex/AIR
      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的流行。


發佈了22 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章