單詞介紹
RIA是Rich Internet Applications的縮寫,翻譯成中文為豐富的網際網路應用程式(Macromedia中文網站翻譯為Rich Internet應用程式)
傳統網路程式的開發是基於頁面的、伺服器端數據傳遞的模式,把網路程式的
表示層建立於HTML頁面之上,而HTML是適合於文本的,傳統的基於頁面的系統已經漸漸不能滿足網路瀏覽者的更高的、全方位的體驗要求了,這就是被Macromedia公司稱之為的“體驗問題”("Experience Matters"),而豐富網際網路應用程式(Rich Internet Applications,縮寫為RIA)的出現也就是為了解決這個問題。RIA 是集
桌面應用程式的最佳用戶界面功能與Web應用程式的普遍採用和快速、低成本部署以及互動多媒體通信的實時快捷於一體的新一代網路應用程式。目前WEB領域和
桌面軟體領域正逐步向RIA靠攏,預計3、5年後RIA的時代將會完全到來。
優勢
特點
RIA最突出的特點為“Rich”,同時RIA最核心的部分也體現在“Rich”中。“Rich”包含了兩層含義。
豐富的數據模型:RIA技術提供了多種數據模型來處理客戶端複雜的數據操作。使用RIA可以將部分原本需要在後台程式處理的問題轉移到客戶端,使數據能夠被
快取在客戶端,從而可以實現一個比基於HTML的回響速度更快,且數據往返於伺服器的次數更少的用戶界面。
豐富的界面元素:RIA技術提供了比HTML更為豐富的界面表現元素,密集、回響速度快和圖形豐富的頁面元素與數據模型結合在一起,為用戶提供好的使用體驗。
RIA 具有的桌面應用程式的特點包括:在訊息確認和格式編排方面提供互動用戶界面;在無刷新頁面之下提供快捷的界面回響時間;提供通用的用戶界面特性如拖放式(drag and drop)以及線上和離線操作能力。RIA具有的Web應用程式的特點包括如:立即部署、跨平台、採用逐步下載來檢索內容和數據以及可以充分利用被廣泛採納的網際網路標準。RIA具有通信的特點則包括實時互動的聲音和圖像。
客戶機在RIA中的作用不僅是展示頁面,它可以在幕後與用戶請求異步地進行計算、傳送和檢索數據、
顯示集成的用戶界面和綜合使用聲音和圖像,這一切都可以在不依靠客戶機連線的伺服器或後端的情況下進行。
部署好處
對於企業來說,部署RIA的好處在於:
2)RIA可以幫助企業提供多元化的重要業務效益,包括提高銷量、提高品牌忠誠度、延長網站逗留時間、較頻繁的重複訪問、減少頻寬成本、減少支持求助以及增強客戶關係等。
發展態勢
在過去的兩到三年中,Web開發人員一直是想構建一種比傳統
HTML更豐富的客戶端:這是一個
用戶接口,它比用HTML能實現的接口更加健壯、反應更加靈敏和更具有令人感興趣的可視化特性。
RIA技術的出現允許我們在網際網路上以一種像使用Web一樣簡單的方式來部署
富客戶端程式。無論將來RIA是否能夠如人們所猜測的那樣完全代替HTML套用系統,對於那些採用C/S架構的
胖客戶端技術運行複雜套用系統的機構和採用基於B/S架構的
瘦客戶端技術部署Web套用系統的機構來說,RIA確實提供了一種廉價的選擇。下面介紹一下目前出現的幾種比較有實力或者有特點的RIA客戶端開發技術:
1) Adobe Flash/Flex
Flash 從6.0開始Flash就逐步具備建立
窗體風格的應用程式的功能。據Adobe稱已經有98%以上的桌面系統的瀏覽器都安裝了 Adobe Flash Player。這使得以Adobe Flash Player為客戶端的RIA可以支持種類廣泛的平台和設備。
Flex是為滿足希望開發 RIA的企業級程式設計師的需求而推出的表示伺服器和應用程式框架,它可以運行於J2EE和.NET平台。Flex表示伺服器提供基於標準的、聲明性的編程方法和流程,並提供運行時服務,用於開發和部署豐
富客戶端應用程式的表示層。Flex開發者使用直觀的基於XML的MXML來定義豐富的用戶界面。該語言由 Flex伺服器翻譯成SWF格式的客戶端應用程式,在Flash Player中運行。
2) Laszlo
Laszlo 是一個開源的RIA開發環境。使用
Laszlo平台時,開發者只需編寫名為LZX的描述語言(其中整合了XML和Javascript),運行在J2EE 套用伺服器上的Laszlo平台會將其編譯成SWF格式的檔案並傳輸給客戶端展示。從這點上來說,Laszlo的本質和Flex是一樣的。Flash是任何瀏覽器都支持的展示形式,從而一舉解決了瀏覽器之間的移植問題。而且,在未來的計畫中,Laszlo還可以將LZX編譯成Java或.NET本地代碼,從而大大提高運行效率。
3) Java SWT
Java 已經出現幾年了,並且完全支持創建基於
窗體的用戶界面。除了Java基礎類(JFC/Swing)中的用戶界面組件之外,開發人員還可以使用來自於 Eclipse Project的SWT
工具箱和許多第三方工具箱進行開發。對於圖形來說,可以採用Java 2D API:一個非常完整且非常複雜的圖形API。你可以通過一個
Web瀏覽器使用Java
外掛程式軟體,或使用Java運行時環境中較新的Java Web Start技術來部署應用程式。使用Java建立
Rich Client的主要缺陷是它的複雜性(即使對簡單的窗體和圖形也要求編寫非常煩瑣的代碼)和Java瀏覽器外掛程式的低市場占有率。
4) XUL
XUL (念作"zool")是一種基於
XML的用戶界面語言,它來自於
Mozilla的開放源碼項目。它可用於建立
窗體應用程式,這些應用程式不但可以在 Mozilla瀏覽器上運行,而且也可以運行在其他描述引擎上,如Zulu(一個
FlashMX組件)和Thinleys(一個Java實現)。
XUL描述引擎都非常小(100K以下),它可以使用XML數據也可以生成XML數據。XUL的一個主要缺點在於它目前還沒有獲得一個主要商業實體的支持。XUL最大的優點在於它與
Gecko引擎的集成(打開了通向大量Web標準的大門),以及與大多數其它XML用戶界面描述語言相比它是一種非常具有表達力和簡潔的語言。
5) Bindows
Bindow 是用Javascript和DHTML開發的
Web窗體框架。Javascript用於客戶端界面的顯示和處理,
XMLHTTP用於客戶端與伺服器的信息傳輸。Javascript在客戶端的表現力不容置疑,利用Javascript幾乎可以實現
Windows應用程式所能幹的大部分事情,XMLHTTP 一直以來常被用於實現"無刷新"的Web頁面,它和
Javascript配合,可以完成數據從伺服器和客戶端的傳輸。Bindows的一個主要的缺點是它採用一次全部載入的方式來實現腳本庫,在視窗的載入期,需要一個漫長的等待過程,甚至瀏覽器的進程會產生無回響的情況。這點Bindows根本沒有遵循"用多少去多少"的準則。另外,內部大量利用了IE6 的技術,沒有考慮到非IE的瀏覽器,限制了Bindows的流行。
6)JavaFX
2008年12月05日 Sun微系統公司今天正式發布了基於
Java語言的平台JavaFX 1.0,這個平台建立在其廣泛套用的
Java程式語言的基礎上,旨在建立大量可在電腦和手機上運行的網路程式。 Java一直以來就是程式語言,但是隨著JavaFX的發布,Sun公司開始允許將編程內容創新這一任務轉移到以設計藝術為重點而非編程科學為重點的設計人員身上。
“我們的目標群體是叫做創造者的人群”,Sun公司
Java平台組的高級副主任 OctavianTanase對 說,“隨著1.0版的發布,我們將目標鎖定在網頁開發人員,這群可能拓展Java界面體驗的人。到2011年,主要的目標是大量使用諸如Adobe系統等設計工具的設計人員”。
當然,通向這個以設計為導向的工具還需要一些時間。Sun公司最後打算提供自己的程式給設計人員來建立RIAS,但是直到如今,這些設計人員還得使用程式設計師所使用的Netbeans或Eclipse
集成開發環境(IDE)。新工具將在來年夏天面市。
7)Curl
該語言的目標是用一種統一的
面向對象的語言代替
HTML、Cascading Style Sheets、
JavaScript等;僅使用Curl便可開發出Web套用的各種軟體;Curl程式在瀏覽器中運行,並且因為它以類似JRE的形式提供了客戶端運行環境Surge RTE,能夠輕鬆開發出日益流行的Rich Client應用程式。
為了實現真正有益的富客戶端,它能有效地實現各種複雜處理,具備提供高信賴、高擴展性、高維護性的應用程式所應擁有的各種編碼能力。其擁有在Web環境上便利的分配、管理以及低廉的維護費以及在C/S環境上的用戶便利性、迅速的應答,華麗的圖像顯示等眾多優點於一身。
Curl語言於2002年在美國正式開始商業化,在美國和日本擁有重多的客戶和合作夥伴,現已進軍北美及韓國市場,發展勢頭迅猛。
8)SilverLight
微軟在Mix07上發布一些重大通告,其中最值得關注的就是
SilverLight的發布,SilverLight的前身就是WPF/E技術,SilverLight就是微軟新Windows圖形子系統“Windows Presentation Foundation”(代號
Avalon)的一個子集。
這是一種新的Web 呈現技術的名稱,創建該技術的目的是使其能夠在各種平台上運行。該技術支持創建豐富的、具有絢麗視覺效果的互動式體驗,並且可以隨處實現:無論是在瀏覽器內、在多個設備上還是在
桌面作業系統(如 Apple Macintosh)中。可擴展應用程式
標記語言(XAML) 遵循 Windows 演示基礎 (WPF),前者是”WPF/E”呈現功能的基礎。XAML 是
Microsoft .NET Framework3.0(Windows 編程基礎結構)中的呈現技術。
9)ActiveX 外掛程式
ActiveX 外掛程式同樣是微軟推出的 RIA 解決方案,它是一個開放的解決方案,可以兼容多種語言,不過它的缺點也是顯而易見的,用戶需要調整瀏覽器的安全等級並下載外掛程式才能運行 RIA 套用,極大地降低了安全性。
10)HTML5
為推動 web 標準化運動的發展,
W3C 推出了下一代 HTML 的標準 -
HTML5,為眾多的公司所支持,因此具有良好的前景。它有以下特點:
首先,為增強用戶體驗,強化了 web 網頁的表現性能;
其次,為適應 RIA 套用的發展,追加了本地資料庫等 web 套用的功能;
再次,由於高度標準化以及諸多瀏覽器廠商的大力支持,它的兼容性和安全性非常高;
最後它是一種簡潔的語言,容易為廣大開發者掌握。更為難得的是,由於節能和功耗低,在移動設備上 HTML5 將具有更大的優勢。因此更適合如 Web 作業系統一類的 RIA 套用的前端開發。
11) MUILIB
MUILIB是國內推出的第一款RIA技術解決方案,它通過傳統的Win32 C++開發技術搭配XML構建的界面,達到客戶端界面強大的用戶視覺體驗和人機互動性,由於採用的是C++技術,所以不管是功能上還是性能上對比其他語言的解決方案都有絕對的領先優勢。
套用領域
RIA目前在網頁遊戲方面套用很出色,國內開發比較早且有特色的網頁遊戲是由第七大道公司開發的
彈彈堂。
計算關係
與RIA相反的是日益強大的雲計算,RIA是
富客戶端,把主要的計算都放在本地完成,僅用網路來傳遞少量的關鍵數據。而雲計算把各種數據處理都放在伺服器端,從而減輕客戶端的壓力。
未來發展
就目前RIA的使用情況來說,離"RIA時代"還有很遠的一段距離。今後幾年時間內傳統的Web應用程式和RIA將會共存。筆者認為真正具有實力擔當起普及豐
富客戶端套用重任的只有基於Flash Player的Flash/Flex應用程式、Microsoft的基於Avalon的應用程式以及MUILIB的基於C++的DirectUI應用程式。短期時間內(估計2-3年時間)可能是 Flash/Flex應用程式在新興的網路應用程式市場上占有主導地位,不過從技術的使用難度和學習曲線上來說,後面新出現的採用C++技術使用XML搭建界面的MUILIB快速開發平台將會成為一個快速興起的新RIA平台,畢竟Flash/Flex的技術學習難度太高,非主流導致這方面的人才也較少,而MUILIB平台使用的是傳統的C++和Win32開發技術,學習曲線較低,關鍵是參考資料也多,唯一需要掌握的就是XML搭建界面而已。
目前
Microsoft還在推廣一種叫做Smart Client(智慧型客戶端)的客戶端程式技術,Microsoft稱Smart Client是比Rich Client更優秀的客戶端,因而採用Smart Client的應用程式算不算RIA目前我個人還無法作答。這裡我們之所以提及Smart Client,是因為Smart Client的特性跟我們談的Rich Client有太多的相似之處。Smart Client擁有自動更新、離線狀態下的數據處理和可以使用本地資源等特徵,其中的可使用本地資源這一項無疑是一大賣點,因為瀏覽器中的 Flash/Flex應用程式目前還無法操作本地的一些資源,比如
Flash/
Flex應用程式無法將網上的檔案保存到本地或者修改本地檔案。雖然
Macromedia的Central1.5已經可以對本地檔案進行簡單的操作,並且flex1.5開發的RIA也能夠運行於Central上,但是如何使Central能夠得到大範圍推廣還是個問題。相對於輕量級的Rich Client,Smart Client更接近
C/S架構中的客戶端程式。Rich Client和Smart Client的定位還是有所區別的:Rich Client更適合作為輕量級的基於瀏覽器的網路應用程式客戶端;Smart Client更適合作為Windows
桌面應用程式的
智慧型客戶端。
不管我們今天稱之為的RIA今後會不會成為主流應用程式,人們對開發具有高度互動性、豐富用戶體驗以及功能強大的客戶端的追求是不變的。有理由相信,擁有成熟技術和極高市場占有率的Flash客戶端將會在RIA道路上越走越遠。Microsoft未來的重量級武器:Avalon和Smart Client能否後來者居上讓我們拭目以待。
參考書目
書名:菜鳥與諸神
出版社:電子工業出版社
作者:邱鑫
頁數:512頁
簡介:本書採用故事模式講述一門程式語言,以一個無知的菜鳥成長過程為背景,全文用菜鳥與大神的對話貫通,如同閱讀一本探險小說,同時也在感受一名程式設計師在成長過程中的思想變革。 本書以準C++、Java 程式設計師的階梯模式構建內容。因為寫作時注重編程思想的培養,其價值已經遠遠超過ActionScript 3 這門語言,內容涵蓋:面向過程、面向對象、開發流程、架構設計、數據結構、遊戲引擎、算法等知識框架,對學習任何語言都是有幫助的,這也是“一通百通”的道理。 本書實戰案例圍繞當今熱門的Web Game,內容源自作者多年積累的開發筆記、項目和教學經驗。本書還配備了案例代碼以及相關課件,方便讀者進一步學習。