齊兵輝
摘 要:伴隨計算機網(wǎng)絡技術的不斷發(fā)展,互聯(lián)網(wǎng)逐漸成為應用程序開發(fā)的首選平臺,與此同時,應用程序架構(gòu)也從主機模式進化到客戶機/服務器模式,進而又過渡到瀏覽器/服務器模式,可惜的是雖然應用程序的復雜性不斷增加,用戶跟應用程序的交互體驗卻提高的少之又少,因為Web模型是基于HTML頁面的模型,而且少了客戶端智能的支持,故而即使簡單的事務處理(比如網(wǎng)上購物)也需要借助于頁面的不斷請求與跳轉(zhuǎn),于是使得用戶混淆,另外,少了桌面程序眾多UI控件的支持之后,它甚至無法完成復雜的用戶交互,使得最終這樣的Web應用程序很難使用,支持成本逐漸增高,而且眾多方面無法發(fā)揮效應。
傳統(tǒng)Web應用程序主要是借助于瘦客戶端的瀏覽器/服務器模式,而這樣的客戶端幾乎很少或者就沒有包含應用程序邏輯,主要依靠服務器端來處理業(yè)務邏輯和事物,誠然這種模式具有方便管理,安全性更高,硬件花費更低等優(yōu)點,但依然有以下一些局限性。
1)靈活性不足
在傳統(tǒng)的Web模式中,幾乎所有的交互的流程都是頁面提交請求給服務器,然后由服務器響應再傳給頁面??蛻舳巳我庖粋€動作事件都作為一個請求提交給服務端,服務器響應完成后再返回瀏覽器客戶端,讓用戶繼續(xù)下一步操作。這種方式有著很多的限制,比如客戶端需要等待服務器處理結(jié)束后再進行頁面刷新,這樣用戶的交互體驗就非常差。而且,采取這種基于HTML頁面的傳統(tǒng)模式也很難使用豐富的圖表等效果來展示數(shù)據(jù),瀏覽器端的用戶體驗非常匱乏。
2)網(wǎng)絡帶寬問題
就像任何其它網(wǎng)絡一樣,對用戶而言,其帶寬的可用性是由網(wǎng)絡中所有用戶的數(shù)量決定的,對于瘦客戶端來說,幾乎全部的處理都經(jīng)由服務器端來處理,顯然,伴隨用戶數(shù)量的增加,服務器端的響應需求也會大增,如此以來肯定導致網(wǎng)絡堵塞,用戶的可用帶寬降低。
3)應用程序缺乏豐富的用戶界面和高效的多媒體處理性能
圖形和多媒體應用程序需要有較高的處理能力,但是這種基于HTML的應用程序是無法滿足豐富媒體的處理需求的,因為瘦客戶端的處理都是由服務器端來執(zhí)行,故而網(wǎng)絡中的此種處理需求均由服務器端擔負,僅僅依靠服務器端來進行全部豐富媒體的處理很顯然是不行的。相反呢,胖客戶端對網(wǎng)絡帶寬要求相對較低,對服務器端的依賴也不多,所以能提供更好的多媒體性能同時處理較復雜的應用。圖1-1所示為瘦客戶端與胖客戶端的比較[4]
整個應用程序架構(gòu)歷經(jīng)了幾次重大的轉(zhuǎn)變,在這個過程中,客戶端的表現(xiàn)功能有升有降,圖1-2所示展示了各個階段的計算機功能所引起的應用程序體驗方面的變化,這個過程從大型主機開始,一直到富網(wǎng)絡應用程序的出現(xiàn)為止。
基于主機的應用程序:由基于主機的計算演變而來的交互式應用程序。推動本階段計算的商業(yè)需求主要來自于企業(yè)內(nèi)部業(yè)務,如工資表等。應用程序只是在內(nèi)部的專用網(wǎng)絡間進行發(fā)布,用戶界面的豐富性僅僅局限在文字范圍內(nèi)。
客戶機/服務器應用程序:后來隨著WINDOWS出現(xiàn)的C/S應用程序采用圖形用戶界面,客戶端處理能力比較強。客戶機/服務器應用程序發(fā)展非???,這是因為需要對企業(yè)組織內(nèi)部信息及應用程序進行部門級別的訪問。這種模式依然可以在企業(yè)組織內(nèi)部訪問應用程序,但是隨著圖形用戶界面的出現(xiàn)以及客戶端處理的應用,應用程序的豐富性提高了很多。
Web應用程序:其實不難看到,以往的C/S應用程序雖然能夠提供豐富的效果,卻存在著部署、更新和維護上的困難。Web應用程序可以全局性應用,而且是基于主機集中管理應用程序的模型,從而解決了客戶機/服務器模型的主要限制,但是對用戶來說,這需要很大的投入。從處理的角度看,Web應用程序模型是將客戶端變成虛擬終端。用于提供最佳用戶體驗的主要交互問題沒有了。這些主要問題包括直接控制、客戶端處理和局部存貯等。
為了能處理更加復雜的多媒體應用,改善用戶交互體驗,出現(xiàn)了一種新型的Internet應用程序模式:富網(wǎng)絡應用程序(RIA:Rich Internet Application),這類程序?qū)鹘y(tǒng)桌面應用程序的快速響應和高度互動的特點,與網(wǎng)絡應用程序有著廣闊傳達范圍和可以簡單發(fā)布的特點結(jié)合在一起,通過改進和簡化用戶與網(wǎng)絡應用程序的互動,以實現(xiàn)更加豐富、更多的互動和更快速響應的用戶體驗。
RIA的概念最初是由Macromedia(現(xiàn)今是Adobe)提出,RIA是Rich Internet Application的簡稱,它將傳統(tǒng)桌面應用程序用戶界面的豐富功能與Web應用程序的普遍采納、方便低成本部署以及互動多媒體通信的長處集于一體,形成了一種可以提供更方便、更好用戶體驗的應用程序。
豐富互聯(lián)網(wǎng)應用程序具有傳統(tǒng)桌面應用程序的許多優(yōu)點;包括在確認和格式排版方面可以提供互動用戶界面;在無刷新頁面下提供快捷的界面響應時間;提供通用的用戶界面特性如拖放操作的能力。
具有傳統(tǒng)B/S的Web應用程序優(yōu)點:包括快速布置、跨平臺可用性、可以采用逐步下載來檢索內(nèi)容和數(shù)據(jù)、擁有充分利用被廣泛采納的互聯(lián)標準以及雜志式布局的網(wǎng)頁。
通信的優(yōu)點:能提供雙向互動的聲音與圖像視頻通信。圖1-3所示展示了豐富互聯(lián)網(wǎng)應用程序是最佳用戶界面功能、Web應用與多媒體統(tǒng)一。
豐富的用戶界面意味著允許一些界面控制與數(shù)據(jù)模式結(jié)合,而不再是批處理方式提交頁面到服務器,連續(xù)處理服務器請求和頁面更新存在著很多障礙。服務器響應影響整個界面的運作模式應該遷移到只對發(fā)出請求的特定區(qū)域進行改變的模式上來。RIA讓整個界面分解為單獨個體組成,來適應局部的改變服務器上的交互以及客戶端內(nèi)部組件的通信。
客戶機在RIA內(nèi)的作用不僅是展示頁面,它可以在服務器或后端與用戶請求之間異步地進行計算、遞送和檢索數(shù)據(jù)、重新畫出屏幕一部分和密切綜合使用聲音和圖像,這一切都可在不依靠客戶機連接的服務器或后端的情況下進行。
RIA提供一個強勁的技術平臺,使客戶機能力復原到差不多與桌面型計算機軟件應用或傳統(tǒng)的C/S應用程序中的客戶機能力相似。它適合傳統(tǒng)的N層開發(fā)過程,同時也能夠和遺舊的環(huán)境集成以延展現(xiàn)有的應用程序而無需進行修改。它也可以作為基礎網(wǎng)絡服務的表現(xiàn)層,容許用戶在線和離線工作。RIA有能力解決各種復雜性,使需要復雜性的應用得以開發(fā)并且減少了開發(fā)成本。