3. RIA Client Technologies

何謂RIA?

RIA(Rich Internet Application),中譯為:豐富網頁應用程式。

RIA 是由Macromedia(現己被Adobe於2005年春天併購)推廣的最新網路應用程式之體驗概念,基本上是以Flash Player為前端,中間邏輯運算及資料處理籍由ColdFusion來處理(當然也可以PHP、ASP.NET、JSP來做到),您可以連結後端任何資料庫,包含LDAP、Webservices等與其他系統整合,因此不管小至大型的系統(B2B、B2C、CRM、ERP等)都可以順利達成,重點是,這使用者介面不再祗是傳統的HTML,然而,動畫也不再祗是動畫。

 

倡導理念:網頁(應用程式)不但要能夠靈活簡單地與使用者回應互動,還必須符合人類直覺與經驗,並融合了網際網路應用程式易開發與低成本的特性

目前開發RIA的主要技術:
Flex / Silverlight /JavaFX /Curl

RIA系統的特性

1.運行於瀏覽器中,不需要額外安裝支持軟體
2.在本地運行時,受安全沙箱全程保護


Flash != RIA
Flash網站與RIA的最大差異在於RIA能夠操作資料並與之互動,而傳統的Flash網站僅止於視覺化的呈現

優點:
1.安裝簡便——更新與使用費用與桌面程序和作業系統相比要經濟的多
2,終端用戶可以自動或簡單手動的更新到最新版本
3.用戶可以在任何連接到網際網路上的電腦中使用程序
4.有很多工具支持離線使用,例如Adobe AIR,Google Gears等等
5.多數富網際網路應用程序可以跨平台使用
6.與可執行文件相比,基於網路的應用程序可以有效的避免病毒的侵襲
7.互動而即時的體驗能夠降低使用者的挫折
8.讓新手容易學習
9.呈現更多的細節(Visual detail):
可隨畫面放大縮小也不失真的向量特性
10.快速回應:
頁面切換不再是空白的等待,可增加淡出但入等特效
11.無接縫:
client-server之間的互動使用者看不到,切換效果更順暢
12.完全的控制:
具備桌面應用程式的拖拉效果,使用者可自訂介面。
13.GUI的功能:
利用圖形化使用者介面,讓不會使用命令行的使用者對作業系統進行指令輸入,不僅可以調整對話框尺寸,還能改變樣式與尺寸

缺點:
1.受限於安全沙箱:
由於富網際網路應用程序運行在安全沙箱中,所以其對系統資源的訪問會受到限制,一旦對系統資源的訪問出現錯誤,那麼富網際網路應用程序就將無法正常運行


2.依賴於腳本支持:
富網際網路應用程序常常需要JavaScript或其它腳本語言的支持,一旦用戶瀏覽器對這些腳本進行屏蔽,富網際網路應用將無法正常運作


3.客戶端運行速度受限:
為實現平台無關性,一些富網際網路應用選用諸如JavaScript這類腳本語言來編寫其客戶端腳本,從而導致了性能上的損失(在移動設備中,此類問題尤為顯著),而對於如Java這類的客戶端語言是不存在這類問題的,因為它的性能已可比擬傳統的編譯型語言了,而對於Flash,Curl或Silverlight,因為在其外掛程式中所運行的代碼也是經過編譯的,所以同樣也不存在這類問題


4.下載腳本的延時:
雖然無需安裝軟體,但是富網際網路應用的客戶端引擎還是要從伺服器端傳送信息到客戶端,雖然絕大多數傳輸信息會被緩存,但這種傳輸也至少要執行一次,根據下載的類型和大小,腳本的下載可能會是一件令人苦惱的事情,對此,富網際網路應用的開發者可採取壓縮、分段等技術在一定程度上減少這種延遲帶來的影響


5.集成困難:
如果基於X/HTML開發應用,那麼應用程序的目的(嚮往控制一切表現效果和行為)和X/HTML的目的(嚮往解除一切控制)之間的衝突會進一步加劇,X/HTML的DOM介面為創建富網際網路應用提供了一個可能,但是該方案又會導致富網際網路應用中的一些功能 癱瘓,因為在該方案中,富網際網路應用的客戶端可以修改應用程序的基本結構並覆蓋其的表現效果和行為,這可能將導致應用程序在客戶端的執行錯誤,最終,該問題通過採用新式的客戶端機制來解決,在該機制中,富網際網路應用將受限於只能對其自身範圍的資源進行修改,(標準的運行在本地軟體之所以不存在該類問題是因為其遵循一個自動程序的定義,只能處理它自行分配的資源


6.搜索引擎優化困難:
搜索引擎可能無法搜索應用程序文本內容中的索引,


7.依賴於網際網路連接:
最理想的替代桌面程序的網際網路應用程序要允許用戶間斷性的上網,這樣用戶就可以遊走在各個熱點與辦公地之間,鑑於此,一些 特殊的平台(如Adobe AIR,Google Gears)就需要允許離線操作的富網際網路應用程序


8.可訪問性存在困難:
在富網際網路應用中存在很多訪問性的困難,其中多數明顯地表現為屏幕閱讀器在探測由JavaScript引起的HTML內容更變上遇到了極大的困難


9.無法部署:
除了Adobe的AIR技術以外,其它的富網際網路應用不能像傳統的桌面應用那樣進行部署

RIA的獲益:

1.企業經營者的角度

1.增加一般使用者的成功交易數量。
2.協助您的線上商務快速攻佔市場。
3.降低應用程式開發及維護的成本。

2.IT的角度

1.降低 IT 基礎結構的建置成本。
2.精簡開發流程。
3.支援業界標準。

3.一般使用者的角度

1.透過即時的互動式體驗,減少使用者挫折。
2.初學使用者的可快速上手,降低學習曲線。
3.透過單一畫面的使用者介面,縮短瀏覽等待的時間。

 

回應

優點:

  • 1.易於升級: 使用者可以輕易的將你使用的程式升級、更新
  • 2.易於使用: 使用者只要擁有一個可上網的電腦就可以使用程式
    也因為只要上網就可以使用服務也就是個跨平台的應用
    即便使用者不處於連線狀態,服務仍然可以使用(Adobe AIR)
  • 3.較於安全: 程式在 sandbox 環境中執行會比直接在作業系統上執行還安全
  • 4.較有效率: Server 和 Client 之間只需要傳遞必要性的資料,許多可以
    在 Client 端做好的事情就不用交給 Server 去做(Ajax)
    也因為減少了 Server 和 Client 的傳輸節省了頻寬
    這邊提一下被 Google 廣泛利用的 Ajax,以 Google Maps
    為例子,當你在 Google Maps 選取了某個地點觀看時,會發現
    Maps 是一塊塊顯示出來的,這就是 Ajax 的應用,當你看到某
    個區塊時,才向 Server 要求資料,而 Google Maps 也做了
    預先讀取的動作,在你觀看某塊區域的時候,Maps 會向 Server
    要附近的資料,也就是讓 Maps 智能化。而這個動作卻是個兩面刃
    以大部分(個人觀點)情況來說,這種智能化是好的,因為你如果
    繼續使用 Maps 的話,你勢必要移動到附近區域。但是若有些狀況
    是他只看一個區域就關閉的話,那在這個狀況裡,預先讀取就是浪費

參考資料: Wikipedia

缺點:

  1. 權限受限: 由我所整理的 RIA 優點中可以發現,程式是在 Sandbox 中執行,在 不會輕易被病毒攻擊 的好處下另一面衍生出了程式執行時的不方便。在 Sandbox 中執行的程式只會被給予有限制的存取權限,這導致了當程式需要執行存取較高權限的部分時,可能會產生不預期的錯誤。
  2. 各種瀏覽器的支援: 在第一次接觸 RIA 類型服務的使用者一開始會遇到一件事情,那就是需要安裝必要的執行環境(Java Environment, Silverlight, etc...)。雖然在上面優點提到了只要可以上網的電腦就可以使用,但是也是要在安裝了必要的環境(若程式需要)才能正常的執行。以上是需要額外安裝執行環境的部分,若舉 Javascript 例子來說,就是瀏覽器的部分了。若 Firefox 使用者裝了 Noscript 等類似程式,那就必須要允許 script 的執行才能使用,而若是瀏覽器本身的不支援,那就必須要更換瀏覽器了。
  3. Client 端的效能: 為了達到跨平台,有些 RIAs 利用 Javascript 來撰寫。但是卻拖慢了執行的效能(在行動裝置中像是手機等等最為明顯),目前的瀏覽器都為了增加執行 Javascript 的效能而開發新的 Javascript engine(Google Chrome V8, Mozilla Firefox 3 TraceMonkey)
  4. 依賴網路: 由於 RIAs 的特性,大部份的 RIAs 都無法避免這個問題。在這部分,有些許 RIAs 已經不再是困擾(Adobe AIR)。以下個人意見:我有裝過 ADC Desktop 玩一下,整個環境似乎不錯,開發者可以容易的獲取最新的消息、狀況、工具,不過又似乎是僅限於 Adobe 有點像內部交流。有一點很想講的是,Adobe 的東西都好肥。就這樣 = P
  5. 參考資料: Wikipedia