《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 富互聯(lián)網(wǎng)應用程序研究初探

富互聯(lián)網(wǎng)應用程序研究初探

2009-07-24
作者:趙冠偉1,2,夏 斌2,聶云峰

??? 摘? 要: 對現(xiàn)今流行的富互聯(lián)網(wǎng)應用(RIA)進行了研究,介紹了RIA的概念、RIA產(chǎn)生的背景、RIA的特點以及所能解決的問題。列出了現(xiàn)有的主流RIA實現(xiàn)技術并分析了各自的特點。介紹了RIA的應用現(xiàn)狀并對RIA的發(fā)展與應用提出了個人見解。
??? 關鍵詞: 富互聯(lián)網(wǎng)應用程序? 富客戶端? 瀏覽器/服務器

?

??? 當前,互聯(lián)網(wǎng)已經(jīng)成為應用程序開發(fā)的默認平臺。但是,用戶對應用程序復雜性要求與日俱增,而現(xiàn)在的互聯(lián)網(wǎng)應用程序在完成復雜應用方面卻始終跟不上步伐。結(jié)果導致許多公司必須面對不滿的客戶、遭受營業(yè)額損失及成本增加。Web模型是基于頁面的模型,缺少客戶端智能機制。而且,它幾乎無法完成復雜的用戶交互。這樣的技術使得Web應用程序難以使用,支持成本高,并且在很多方面無法發(fā)揮效應[2]。為了解決這些問題,出現(xiàn)了一種新類型的Internet應用程序,即富互聯(lián)網(wǎng)(Rich Internet Applications,RIA)。這些應用程序結(jié)合了桌面應用程序的反應快、交互性強的優(yōu)點以及Web應用程序傳播范圍廣和容易傳播的特性。RIA簡化并改進了Web應用程序的用戶交互。這樣,用戶開發(fā)的應用程序可以提供更豐富、更具有交互性和響應性的用戶體驗。
1? RIA的產(chǎn)生背景
??? 企業(yè)級應用程序經(jīng)歷了幾次系統(tǒng)架構(gòu)方面的重要轉(zhuǎn)變。在此過程中,客戶端的表現(xiàn)能力有起有落。圖1顯示了Rich Internet Application的發(fā)展過程。

?


??? 基于主機的應用程序:應用程序提供基于文本的非圖形化用戶界面,只有內(nèi)部人員才能進行訪問。
??? 客戶機/服務器(C/S)應用程序:20世紀90年代出現(xiàn)了客戶機/服務器應用程序,采用圖形用戶界面,客戶端的數(shù)據(jù)處理能力比較強。但由于客戶端應用程序需要進行不斷的更新,因此部署成本比較高。
??? 瀏覽器/服務器(B/S)應用程序:90年代中期出現(xiàn)了B/S應用程序,Web的廣泛使用解決了C/S應用程序部署和更新的困難。但由于采用了HTML頁面形式的用戶界面,客戶端的數(shù)據(jù)處理能力較C/S應用程序有所回落[1]
??? C/S架構(gòu)的缺點主要是部署、更新的問題。B/S架構(gòu)的缺點則是無法像C/S那樣使用豐富的效果來展示數(shù)據(jù),用戶體驗比較糟糕[3]。從C/S到B/S,二者受限于技術本身分別發(fā)展成了重客戶端和重服務器端的模式。而RIA的出現(xiàn)帶來了重新在客戶端和服務器端進行更好的平衡的機會。
2? RIA的特點
??? 圖2是RIA的應用程序模型。RIA是集桌面應用程序的最佳用戶界面功能與Web應用程序的普遍采用和快速、低成本部署以及互動多媒體通信的實時快捷于一體的新一代網(wǎng)絡應用程序。RIA是一種安全、可升級、具有良好適應性的新的面向服務模型。RIA結(jié)合了聲音、視頻和實時對話的綜合通信技術,從而給用戶帶來前所未有的網(wǎng)上體驗。

?


??? RIA提供一個強勁的技術平臺,使客戶機的能力復原到與桌面型計算機軟件應用或傳統(tǒng)的C/S系統(tǒng)中的客戶機能力十分接近。它適合傳統(tǒng)的N層開發(fā)過程,同時也能夠和遺留的環(huán)境集成以延展現(xiàn)有的應用程序而無需進行修改。RIA有能力解決各種復雜性,使需要復雜性的應用得以開發(fā)并且減少開發(fā)成本。
3? 需要解決的問題
??? 目前需要解決的技術:(1)需要一個更加強大的客戶端運行環(huán)境,同時提供統(tǒng)一簡便的開發(fā)模型。(2)最大可能地利用客戶端資源,并且資源的訪問是在一個可以控制的環(huán)境下完成的。隨著HTML和CSS的演變,已經(jīng)不像最初的Hyperlink(超鏈接)那么簡單,但是相對于Windows運行環(huán)境,在瀏覽器上能夠完成的圖形表現(xiàn)遠遠不夠。(3)具備訪問網(wǎng)絡的能力,同時能夠比較“Smart”地集成Internet上的應用。(4)能夠自動完成安全和升級。(5)擁有一個完整的安全模型和CAS(代碼訪問安全)。(6)具備離線應用的能力,因為訪問終端的多樣化,對于“有時離線”的支持已經(jīng)成為一個關鍵點。例如在基于智能手機的應用中,要求客戶端實時在線是不可能的,所以在Mobile的應用上采用傳統(tǒng)的B/S結(jié)構(gòu)已經(jīng)不太現(xiàn)實。
4? RIA應用架構(gòu)
??? 針對上述要求,一些主流的應用廠商也提出了各自不同的RIA實現(xiàn)。下面針對目前出現(xiàn)的一些RIA應用架構(gòu)進行闡述。
??? (1)Macromedia Flash/Flex。Macromedia Flash Player的高市場占有率使得客戶端的RIA可以支持種類廣泛的平臺和設備[4]。Flex是為滿足希望開發(fā) RIA的企業(yè)級程序員的需求而推出的表示服務器和應用程序框架,可以運行于J2EE和.NET平臺。Flex表示服務器提供基于標準的、聲明性的編程方法和流程,并提供運行時服務,用于開發(fā)和部署豐富客戶端應用程序的表示層。Flex開發(fā)者使用直觀的基于XML的MXML來定義豐富的用戶界面。該語言由 Flex服務器翻譯成SWF格式的客戶端應用程序,在Flash Player中運行。雖然Flex足夠強大,但是其昂貴的軟件許可和不是特別流暢的開發(fā)環(huán)境限制了其發(fā)展。Flex在近期內(nèi)很難成為主流平臺。
??? (2)Laszlo。Laszlo是一個開源的RIA開發(fā)環(huán)境。使用Laszlo平臺時,開發(fā)者只需編寫名為LZX的描述語言(其中整合了XML和JavaScript)。運行在J2EE應用服務器上的Laszlo平臺會將其編譯成SWF格式的文件并傳輸給客戶端展示。從這點來說,Laszlo的本質(zhì)和Flex是一樣的。而且,在未來的計劃中,Laszlo還可以將LZX編譯成Java或.NET本地代碼,從而大大提高運行效率。其劣勢是缺乏大的商業(yè)實體的支持,難以成為標準。
??? (3)Avalon。Microsoft的Avalon是下一版本W(wǎng)indows(被稱為Longhorn)的一部分,是一個圖形和展示引擎。Avalon定義了一個在Longhorn中使用的新標記語言XAML(可擴展應用程序標記語言)??梢允褂肵AML來定義文本、圖像和控件的布局,程序代碼可以直接嵌入到XAML中,也可以保留在一個單獨的文件內(nèi)。這與Flex中的MXML或者Laszlo中的LZX非常相似。區(qū)別是:基于 Avalon的應用程序必須運行在Longhorn環(huán)境中,而Flex和Laszlo是不依賴于平臺的,僅僅需要裝有Flash播放器的瀏覽器即可[5]。
??? (4)Java SWT。Java 已經(jīng)出現(xiàn)多年,并且完全支持創(chuàng)建基于窗體的用戶界面。除了Java基礎類(JFC/Swing)中的用戶界面組件之外,開發(fā)人員還可以使用來自于 Eclipse Project的SWT工具箱和許多第三方工具箱進行開發(fā)。對于圖形來說,可以采用Java 2D API??梢酝ㄟ^一個Web瀏覽器使用Java插件軟件,或使用Java運行時環(huán)境中較新的Java Web Start技術來部署應用程序。使用Java建立Rich Client的主要缺陷是它的復雜性高及Java瀏覽器插件的低市場占有率問題。
??? (5)XUL。XUL是一種基于XML的用戶界面語言,來自于Mozilla的開放源碼項目。它可用于建立窗體應用程序。這些應用程序不但可以在 Mozilla瀏覽器上運行,而且也可以運行在其他描述引擎上。XUL描述引擎都非常?。?00KB以下),它可以使用XML數(shù)據(jù)也可以生成XML數(shù)據(jù)。XUL的一個主要缺點在于它目前還沒有獲得一個主要商業(yè)實體的支持。XUL最大的優(yōu)點在于它與Gecko引擎的集成(打開了通向大量Web標準的大門),而且與大多數(shù)其他XML用戶界面描述語言相比它是一種表達力很強且簡潔的語言。
??? (6)Bindows。Bindows是用JavaScript和DHTML開發(fā)的Web窗體框架。JavaScript用于客戶端界面的顯示和處理,XMLHTTP用于客戶端與服務器的信息傳輸。利用JavaScript幾乎可以實現(xiàn)Windows應用程序的大部分功能。XMLHTTP一直以來常被用于實現(xiàn)無刷新的Web頁面。它和 JavaScript配合,可以完成數(shù)據(jù)從服務器和客戶端的傳輸。Bindows的一個主要缺點是它采用一次全部載入的方式來實現(xiàn)腳本庫,在窗口的加載期,需要一個漫長的等待過程,甚至瀏覽器的進程會產(chǎn)生無響應的情況。這點Bindows根本沒有遵循用多少取多少的準則。另外,內(nèi)部大量利用了IE6 的技術,沒有考慮到非IE的瀏覽器,限制了Bindows的流行[5]
??? 另外,微軟也提出了一個與Rich client類似的Smart Client技術。智能客戶端應用是一個可擴展的、能集成不同應用的桌面應用程序,并具有無接觸部署、自動更新、離線運用、動態(tài)加載應用組件和個性化用戶界面等特征,在此不做贅述。
5? RIA的現(xiàn)狀及發(fā)展趨勢
??? 現(xiàn)今的應用大多數(shù)是基于B/S結(jié)構(gòu)的Web應用,而RIA應用才剛剛興起。包括Macromedia和Microsoft等公司都已經(jīng)提供了成功的案例。在Macromedia所提供的在線體驗中,筆者著實感覺到了RIA帶來的不一般的體驗。在網(wǎng)絡上也有了許多成功的RIA應用,但企業(yè)級的成功案例還不多。盡管如此,RIA也已經(jīng)顯現(xiàn)出比傳統(tǒng)的基于瀏覽器的瘦客戶端應用在處理復雜交互、改善用戶體驗等方面的優(yōu)勢。RIA的出現(xiàn)使得網(wǎng)絡應用程序出現(xiàn)了分支,基于瀏覽器的傳統(tǒng)網(wǎng)絡應用會長時間存在下去,可以不依賴于瀏覽器的RIA應用也會越來越多。
??? HTML的設計初衷是為了處理文本,因此非常適合表達文本內(nèi)容。從當前應用來看,HTML僅僅不適合開復雜的企業(yè)應用交互,而在對于大文本信息量,例如forum,wiki,blog,web mail和大量的互聯(lián)網(wǎng)站,還是非HTML莫屬[2]。因此傳統(tǒng)的基于HTML的B/S應用還將在很長一段時間內(nèi)占據(jù)主導地位。盡管如此,筆者仍相信,傳統(tǒng)的基于瀏覽器的開發(fā)模式現(xiàn)在已經(jīng)過了其鼎盛期。不管今天的RIA將來會不會成為主流應用程序,人們對開發(fā)具有高度互動性、豐富用戶體驗以及功能強大的客戶端的追求是不變的。但是盲目地用RIA來改造現(xiàn)有的B/S應用也是不明智的,應該在用傳統(tǒng)的基于HTML的B/S應用很難甚至無法滿足要求或者使用RIA能夠很好地改善現(xiàn)有的系統(tǒng)效果時才進行改造,因為畢竟在互聯(lián)網(wǎng)上較為簡單的應用仍然占據(jù)主導地位。而且目前RIA的體系發(fā)展仍未完全成熟,放棄現(xiàn)有的技術積累轉(zhuǎn)而學習RIA的成本仍然不小,因此在采用RIA前需要充分地考慮。
??? RIA具有反映快、交互性強、傳播范圍廣和易于傳播等特點,是網(wǎng)絡應用程序的發(fā)展方向。對其進行研究有助于改善現(xiàn)有的傳統(tǒng)網(wǎng)絡應用程序存在的問題,如開發(fā)復雜、用戶體驗差、難以進行復雜交互等,有助于掌握未來網(wǎng)絡應用程序的發(fā)展方向,具有較強的理論意義和現(xiàn)實指導意義。
參考文獻
1?? 何志國,陳奇.分布式應用體系結(jié)構(gòu)研究.重慶郵電學院學報,2003;15(4)
2?? 雷軍環(huán),孟益民,厲亞.開發(fā)基于Web的分布式應用程序策略研究.長沙民政職業(yè)技術學院學報,2004;11(1)
3?? 商瑋.多層分布式應用系統(tǒng)及其實現(xiàn)方法.計算機應用與軟件,2003;(7)
4?? 顏金桫.KCLY小土豆工作室.Flash MX 2004 ActionScript 2.0與RIA應用程序開發(fā).北京:電子工業(yè)出版社,2005
5?? 程序員(第02期).程序員雜志社,2005

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。