齊兵輝



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