http://www.aygfsteel.com/ebecket 返還網
          隨筆-140  評論-11  文章-131  trackbacks-0

          [轉]RIA大潮中,那種技術適合你?

          關鍵字: RIA

          前言

          1. RIA技術介紹和優缺點
            1. Ajax
            2. Flash/Flex/Laszlo
            3. Adobe AIR(Adobe Integrated Runtime)
            4. WPF(Windows Presentation Foundation)
            5. Microsoft Silverlight
            6. Mozilla XUL
            7. SUN JavaFX
          2. RIA技術分類和比較
            1. 瀏覽器類
            2. 瀏覽器插件類
            3. 新型桌面類
          3. 那種RIA技術適合你
            1. 你是什么樣的類型?
            2. 選擇標準
            3. 找到合適自己的(目前和未來)
          4. 總結

          在互聯網技術不斷普及的今天,我們隨處可見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技術平臺應該具備那些條件和特點,也進行了熱烈的討論:

          1. 良好的用戶體驗, 響應速度快和豐富的用戶界面
          2. 基于互聯網的開放標準進行數據傳輸
          3. 運行時快速高效
          4. 能整合多種媒體格式
          5. 豐富的組件,基于事件驅動,能進行快速開發
          6. 支持聯機/離線的數據傳輸
          7. 良好的兼容性,能在多種平臺下運行
          8. 與服務器的交互方式必需首先支持異步的交互
          9. 所基于的新的媒體格式必需是基于文本的,這樣的格式才可能對于搜索引擎友好
          10. 要能夠支持增量的呈現(incremental rendering)
          11. 要基于動態類型的腳本語言,例如JavaScript或ActionScript,而不是C#這樣的靜態類型語言
          12. 要有90%以上的客戶端部署比例。這樣才能保證很好的Web可訪問性(Web Accessibility)
          13. 要有較為強大的開發工具
          14. 開發和部署的成本不能太高
          15. UI組件庫能夠比較方便的做擴展
          16. RIA框架本身能夠比較方便的做擴展
          17. 這種RIA技術不應該造成對于服務器端技術的廠商鎖定

          以上前言內容,由于排版和字數的原因,最終沒有發布。

          在前言完了后,我RIA技術介紹和優缺點中簡單介紹了這些技術,并給出使用這些技術開發RIA的優缺點(僅個人觀點)。

          接著在RIA技術分類和比較中,我給出了如下這個表格:

          RIA技術分類 包含的技術 優點 缺點
          瀏覽器
          • Ajax
          • 基于原有Web技術
          • 與HTML無縫集成
          • 無需學習新技術
          • 把應用程序綁定在瀏覽器中,受瀏覽器安全沙箱控制
          • 瀏覽器的兼容性影響應用程序的開發和運行
          瀏覽器插件
          • Flex
          • Laszlo
          • Silverlight
          • 獨立的技術
          • 與HTML部分集成
          • 豐富的界面表現
          • 特定的開發語言和工具
          • 能使用部分在Web開發中的經驗
          • 需要下載插件和定制的運行時
          • 運行在瀏覽器中,受瀏覽器安全沙箱控制
          • 需要學習新技術
          新型桌面
          • WPF
          • XUL
          • AIR
          • JavaFX
          • 獨立完善的技術
          • 特定的開發語言和工具
          • 可獨立瀏覽器運行(也可以運行于瀏覽器中)
          • 最豐富的界面表現
          • 能方便的訪問本地資源
          • 可使用桌面軟件開發的技巧
          • 需要安裝單獨的運行環境
          • 需要學習新技術

          從上面的表中,可以看到一個明顯的特點,就是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 閱讀(206) 評論(0)  編輯  收藏 所屬分類: 網頁web前端技術
          主站蜘蛛池模板: 五峰| 墨竹工卡县| 大港区| 象山县| 资兴市| 余姚市| 将乐县| 苍溪县| 招远市| 株洲市| 武安市| 新泰市| 嘉禾县| 湖南省| 上杭县| 大连市| 木兰县| 丰台区| 金昌市| 屯门区| 老河口市| 普宁市| 巴塘县| 常州市| 荥阳市| 龙井市| 涞源县| 台江县| 驻马店市| 肥城市| 合阳县| 安阳县| 图们市| 蕲春县| 剑川县| 察隅县| 武宁县| 巫山县| 西充县| 美姑县| 汉源县|