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

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