文 樹子
RIA(Rich Internet Application,富互聯(lián)網(wǎng)應(yīng)用程序)并非今天才出現(xiàn)的名詞,之所以開始被越來越多的技術(shù)人員所關(guān)注和重視,完全是因?yàn)橛脩魧?duì)互聯(lián)網(wǎng)站的需求正在發(fā)生極大的改變,從以靜態(tài)網(wǎng)頁(yè)為主到以基于瀏覽器的Web客戶端為主,這也是互聯(lián)網(wǎng)技術(shù)發(fā)展的必然方向。
早在2004年,Oracle資深專家Cameron ORourke就曾提出,RIA技術(shù)允許技術(shù)人員在互聯(lián)網(wǎng)上以一種像Web一樣簡(jiǎn)單的方式來部署富客戶端程序。
RIA最簡(jiǎn)單也是現(xiàn)在最常見的例子就是Flash。在目前的互聯(lián)網(wǎng)上,F(xiàn)lash幾乎是無處不在的應(yīng)用。由于可以在較窄的帶寬條件下實(shí)現(xiàn)更多的應(yīng)用以及提供更強(qiáng)大的人機(jī)交互能力,F(xiàn)lash一直是網(wǎng)頁(yè)設(shè)計(jì)者們的寵兒。
和Flash相比,HTML部署成本低、結(jié)構(gòu)簡(jiǎn)單,而且易于學(xué)習(xí)和使用,雖然不能實(shí)現(xiàn)一些復(fù)雜的UI效果和操作方式,但是其對(duì)數(shù)據(jù)和應(yīng)用系統(tǒng)的訪問響應(yīng)速度使得大部分程序員不能放棄HTML。
不過,Cameron ORourke曾表示,某些應(yīng)用系統(tǒng)并不完全適合采用HTML技術(shù)。復(fù)雜的應(yīng)用系統(tǒng)可能要求多次讀取網(wǎng)頁(yè)來處理一個(gè)操作,在某些領(lǐng)域中這樣的重復(fù)操作往往導(dǎo)致交互速度低得無法接受。另外,在HTML的頁(yè)面上,即使簡(jiǎn)單的交互活動(dòng)也仍然需要用很多的腳本來完成。
相比之下,在需要與用戶進(jìn)行多次和復(fù)雜交互的時(shí)候,RIA的價(jià)值就體現(xiàn)出來了。RIA的客戶端描述引擎,能夠提供內(nèi)容密集、響應(yīng)速度快和圖形豐富的用戶界面,還可以使用多種技術(shù)來實(shí)時(shí)構(gòu)建應(yīng)用環(huán)境,甚至針對(duì)實(shí)時(shí)的數(shù)據(jù)變化做出響應(yīng)。
RIA的另外一個(gè)優(yōu)勢(shì)在于,用過的數(shù)據(jù)可以保存在用戶的計(jì)算機(jī)上,這樣響應(yīng)速度更快且數(shù)據(jù)往返于服務(wù)器的次數(shù)更少。這一點(diǎn)對(duì)于移動(dòng)應(yīng)用來說非常重要,使用RIA的移動(dòng)設(shè)備將可以使用更豐富的客戶端以及使用離線方式進(jìn)行工作,從而徹底遠(yuǎn)離每一次使用都要連接服務(wù)器獲取相應(yīng)數(shù)據(jù)的網(wǎng)頁(yè)應(yīng)用。
由于RIA的運(yùn)行在終端上,因此可以給用戶帶來更好的使用體驗(yàn),并且可以彌補(bǔ)桌面應(yīng)用程序的發(fā)布和更新以及Web網(wǎng)頁(yè)用戶交互性體驗(yàn)較差的問題。
>> JavaScript庫(kù)是目前比較常用的RIA之一。
目前,RIA的主要類型包括JavaScript庫(kù)、Adobe Flash Builder 4、Silverlight和HTML5。
JavaScript庫(kù)
JavaScript庫(kù)是JavaScript的代碼資源。JavaScript是由Netscape的LiveScript發(fā)展而來的客戶端腳本語(yǔ)言,主要目的就是為了解決服務(wù)器端語(yǔ)言在處理交互應(yīng)用時(shí)的滯后。
JavaScript提供了數(shù)據(jù)驗(yàn)證的基本功能,jQuery和MooTools是首批JavaScript庫(kù),可以實(shí)現(xiàn)流暢和互動(dòng)的富網(wǎng)絡(luò)應(yīng)用。JavaScript庫(kù)中的代碼資源可以使用Ajax以及處理普通的基于用戶驅(qū)動(dòng)事件的交互。這些庫(kù)包括RIA組件,如網(wǎng)格、圖表和復(fù)雜的表單元素等。
>> 微軟的Sliverlight已經(jīng)開始在開發(fā)者中普及。
目前,大部分網(wǎng)絡(luò)開發(fā)的JavaScript庫(kù)都是開源的,如果不想在開發(fā)環(huán)境上投入費(fèi)用,但是又想使用RIA,JavaScript庫(kù)是個(gè)不錯(cuò)的選擇。
不要以為JavaScript庫(kù)開源且免費(fèi)就覺得其功能不強(qiáng),看看使用JavaScript庫(kù)實(shí)現(xiàn)RIA的網(wǎng)站名單吧:Google、Digg、雅虎、亞馬遜、微軟、Twitter以及Best Buy都是JavaScript庫(kù)的忠實(shí)用戶。
Adobe Flash Builder 4
Adobe Flash Builder 4是一個(gè)跨平臺(tái)和跨瀏覽器的平臺(tái),允許程序在所有的操作系統(tǒng)和所有的瀏覽器上以同樣的方式運(yùn)行。在此之前,用Flash制作RIA的主要是設(shè)計(jì)人員。為了吸引更多的jsp/asp/php程序員,F(xiàn)lex被加入到了Flash Builder開發(fā)平臺(tái)中,用非常簡(jiǎn)單的.mxml來描述界面給jsp/asp/php程序人員使用。
在瀏覽器的處理中,不同的瀏覽器有不同的JavaScript引擎管理和處理代碼,這使得由JavaScript制作的RIA應(yīng)用在不同的瀏覽器里實(shí)現(xiàn)的效果可能會(huì)有些許差別。而Adobe的Flash只有一個(gè)引擎,用戶可以通過Adobe Flash瀏覽器插件來使用Flash程序。
目前Flash遇到的問題就是在移動(dòng)終端平臺(tái)上尚不能被很好的支持。蘋果的全線移動(dòng)設(shè)備干脆就不支持Flash,Symbian和Windows Mobile對(duì)Flash支持都不好,需要第三方插件才能支持,Android也只有最新版本才能支持Flash。
Microsoft Silverlight
Silverlight可以說是微軟的Adobe Flex,目前的普及程度并不高。微軟對(duì)Silverlight給予了很大的支持,但是Silverlight應(yīng)用程序明顯受制于微軟的架構(gòu),如果要采用Silverlight平臺(tái),則需要使用.NET,并將其進(jìn)行整合。
和Flash一樣,Silverlight也是跨瀏覽器、跨平臺(tái)的技術(shù),可以在所有流行的瀏覽器中運(yùn)行,包括Microsoft Internet Explorer、Mozilla Firefox、Apple Safari和Opera,同樣可以運(yùn)行在Microsoft Windows和Apple Mac OS X平臺(tái)上。為了保存用戶的自定義設(shè)置、大型文件以及在某些特定應(yīng)用程序中創(chuàng)建的內(nèi)容,基于Silverlight的應(yīng)用程序可能會(huì)在本地計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)文件,一旦需要保存的數(shù)據(jù)超過一定的大小,Silverlight會(huì)向用戶發(fā)出詢問,得到許可后才保存數(shù)據(jù)。
開發(fā)人員可以直接在Visual Studio 2008中創(chuàng)建Silverlight應(yīng)用,Silverlight在Visual Studio 2008的IDE中作為一個(gè)插件出現(xiàn),同樣Visual Studio為Silverlight提供了開發(fā)工具,比如.NET Framework中已經(jīng)為創(chuàng)建應(yīng)用程序提供的強(qiáng)大的編輯器、項(xiàng)目管理、調(diào)試等。
2008年6月底,微軟發(fā)布了Silverlight2.0 beta,隨后的北京奧運(yùn)會(huì)上,NBC網(wǎng)站使用了Silverlight2.0進(jìn)行了網(wǎng)上全程直播和點(diǎn)播。2009年7月,Silverlight3正式發(fā)布,2010年4月,Silverlight 4正式發(fā)布。
HTML5
HTML5是RIA的最新陣地,也是蘋果希望用來取代Flash的最新武器。HTML5本質(zhì)上是HTML4、JavaScript、CSS以及Flash的綜合體。HTML5是一個(gè)開放的技術(shù)聯(lián)盟,而不是如Flash和Silverlight一樣由單一的企業(yè)進(jìn)行運(yùn)營(yíng)。
目前除了微軟的IE8,所有主流瀏覽器都支持HTML5。不過,HTML5的最終標(biāo)準(zhǔn)尚待完全確立,第一份正式草案預(yù)計(jì)將在2010年9月正式向公眾推薦。
和以前的版本不同,HTML5不止可以用來呈現(xiàn)靜態(tài)的Web文本內(nèi)容,在其平臺(tái)上可以呈現(xiàn)視頻、音頻、圖象和動(dòng)畫等動(dòng)態(tài)效果,同時(shí),人機(jī)交互模式也將被標(biāo)準(zhǔn)化。