依我個(gè)人的理解,RIA(Rich Internet Application,富互聯(lián)網(wǎng)應(yīng)用系統(tǒng))即一個(gè)充分強(qiáng)大的用戶端瀏覽器,這個(gè)瀏覽器可以是 IE(XAML)、Mozilla FireFox(XUL)、Flash(Flex) 等等,說(shuō)穿了,也就是一個(gè) HTML 的升級(jí)而已,和 ASP、JSP 產(chǎn)生HTML 供客戶端瀏覽一樣,你也可能需要各種各樣的工具去產(chǎn)生靜態(tài)的或動(dòng)態(tài)的這些瀏覽器可以使用的腳本。不管怎么說(shuō),這是一個(gè)迫切的、必要的趨勢(shì)!
以下文章來(lái)自 Oracle 的雜志 作者:Cameron O'Rourke
1. 什么是用RIA?
RIA(Rich Internet Application,富互聯(lián)網(wǎng)應(yīng)用系統(tǒng))技術(shù)允許我們?cè)谝蛱鼐W(wǎng)上以一種象使用Web一樣簡(jiǎn)單的方式來(lái)部署富客戶端程序。這是一個(gè)用戶接口,它比用HTML能實(shí)現(xiàn)的接口更加健壯、反應(yīng)更加靈敏和更具有令人感興趣的可視化特性。無(wú)論將來(lái)RIA是否能夠如人們所猜測(cè)的那樣完全代替HTML應(yīng)用系統(tǒng),對(duì)于那些采用胖客戶端技術(shù)運(yùn)行復(fù)雜應(yīng)用系統(tǒng)的機(jī)構(gòu)來(lái)說(shuō),RIA確實(shí)提供了一種廉價(jià)的選擇。
2. 為什么用RIA?
基于HTML的應(yīng)用程序之所以變得流行是由于應(yīng)用系統(tǒng)的部署成本低、結(jié)構(gòu)簡(jiǎn)單,且HTML易于學(xué)習(xí)和使用。很多用戶和開(kāi)發(fā)人員都樂(lè)于放棄由桌面計(jì)算機(jī)帶來(lái)的用戶界面改進(jìn),來(lái)實(shí)現(xiàn)對(duì)新數(shù)據(jù)和應(yīng)用系統(tǒng)的快速訪問(wèn)。與喪失一些重要的UI功能相比,基于Web的方式所帶來(lái)的好處要更大得多。
然而,某些應(yīng)用系統(tǒng)并不完全適合采用HTML技術(shù)。復(fù)雜的應(yīng)用系統(tǒng)可能要求多次提取網(wǎng)頁(yè)來(lái)完成一項(xiàng)事務(wù)處理,在某些領(lǐng)域中,如醫(yī)藥和財(cái)務(wù)領(lǐng)域,這往往導(dǎo)致交互速度低得無(wú)法接受。讓我考慮一個(gè)項(xiàng)目管理系統(tǒng):我們可以將其實(shí)現(xiàn)為一個(gè)HTML應(yīng)用系統(tǒng),但是如果用戶可以看到并且操作圖表、進(jìn)度表和各種層次結(jié)構(gòu),那么顯然會(huì)工作得更好。
此外,雖然HTML開(kāi)始走向簡(jiǎn)單,但是即使簡(jiǎn)單的交互活動(dòng)也仍然需要用很多的腳本來(lái)完成。即使一個(gè)輸入窗體經(jīng)過(guò)仔細(xì)的布置和全面的腳本設(shè)計(jì),它從瀏覽器所能發(fā)送的也僅僅是簡(jiǎn)單的"名字/值"對(duì)。如果一個(gè)HTML窗體能夠以XML文檔形式發(fā)送和接收更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),那就好多了。
RIA利用相對(duì)健壯的客戶端描述引擎,這個(gè)引擎能夠提供內(nèi)容密集、響應(yīng)速度快和圖形豐富的用戶界面。除了提供一個(gè)具有各種控件(滑標(biāo)、日期選擇器、窗口、選項(xiàng)卡、微調(diào)控制器和標(biāo)尺等)的界面之外,RIA一般還允許使用SVG(Scalable Vector Graphics,可伸縮向量圖)或其他技術(shù)來(lái)隨時(shí)構(gòu)建圖形。一些RIA技術(shù)甚至能夠提供全活動(dòng)的動(dòng)畫(huà)來(lái)對(duì)數(shù)據(jù)變化作出響應(yīng)。
RIA的另一個(gè)好處在于,數(shù)據(jù)能夠被緩存在客戶端,從而可以實(shí)現(xiàn)一個(gè)比基于HTML的響應(yīng)速度更快且數(shù)據(jù)往返于服務(wù)器的次數(shù)更少的用戶界面。對(duì)于無(wú)線設(shè)備和需要偶爾連接的設(shè)備來(lái)說(shuō),將來(lái)的趨勢(shì)肯定是向富客戶端的方向發(fā)展,并且會(huì)逐漸遠(yuǎn)離基于文本的Web客戶端。那些運(yùn)行在膝上設(shè)備上的應(yīng)用系統(tǒng),可以被設(shè)計(jì)成以離線方式工作,或者至少當(dāng)連接丟失的時(shí)候能基本上以離線的方式工作。
圖1給出了一個(gè)典型的RIA體系結(jié)構(gòu)。XML通常被用作數(shù)據(jù)傳輸?shù)母袷剑袝r(shí)也被用來(lái)描述窗體的布局。在很多的實(shí)例中,客戶端可以保持與數(shù)據(jù)源的連接,這樣服務(wù)器能夠?qū)崟r(shí)地對(duì)客戶端數(shù)據(jù)進(jìn)行更新。對(duì)一個(gè)Oracle數(shù)據(jù)的訪問(wèn)可以通過(guò)Web服務(wù)調(diào)用來(lái)完成。