在互聯(lián)網技術不斷普及的今天,我們隨處可見Web應用程序(Web Application)的身影,甚至于Web Application已經成為很多開發(fā)企業(yè)開發(fā)各類軟件系統(tǒng)的首選。Web Application的出現(xiàn)是為了解決早期C/S(客戶端-服務器)系統(tǒng)的部署、更新和維護的困難。其通過把整個應用程序運行在服務器端,把界面解析為HTML通過HTTP協(xié)議發(fā)送給客戶端的瀏覽器,以展現(xiàn)給用戶。
這種基于頁面的模型雖然結構簡單,系統(tǒng)部署成本低,但同時也帶來了一些額外的問題,比如:用戶操作體驗簡單,不容易開發(fā)豐富的效果來展示數(shù)據(jù),應用程序需要聯(lián)網才能運行,系統(tǒng)安全性不高,瀏覽器兼容性容易影響系統(tǒng)正常運行,應用程序很難或者需要通過其他技術的輔助才能操作客戶機的資源,服務器的負載過高而客戶機的計算能力沒有充分使用,等等。
傳統(tǒng)Web Application的諸多缺點已經被業(yè)界意識到,這樣一種全新的應用系統(tǒng)構架——Rich Internet Application(富互聯(lián)網應用程序,簡稱RIA)被提了出來。RIA可以充分利用客戶機的計算能力,又不失Web Application那樣的部署優(yōu)點。這里的Rich體現(xiàn)了兩個方面的含義:一,用戶界面的豐富;二,數(shù)據(jù)模型的智能。RIA通過在客戶機上單獨運行一個客戶端程序(這個客戶端程序有可能獨立運行,也可能嵌在瀏覽器中運行,下文會詳細闡述他們的區(qū)別),極大的提高了用戶界面的豐富表現(xiàn),可以很容易的和多媒體技術結合,提高了用戶體驗。由于RIA需要一個獨立于服務器的客戶端程序,那么和傳統(tǒng)Web Application的最大區(qū)別就在于,服務器已經成為支持RIA客戶端程序正常運行的數(shù)據(jù)服務,并能為RIA提供復雜的數(shù)據(jù)處理方式,包括異步的數(shù)據(jù)傳輸處理和脫機的數(shù)據(jù)緩存機制。
我們可以看到RIA實際上是應用系統(tǒng)構架的進化的一個全新設計,從最早的大型主機模型到C/S,到Web Application,再到現(xiàn)在的RIA,是逐步應用系統(tǒng)的部署地域和用戶體驗的。圖1顯示了應用系統(tǒng)構架的發(fā)展過程:
圖1 Rich Internet Application的發(fā)展(摘自Adobe Flex:創(chuàng)建企業(yè)Rich Internet Application 的表示層解決方案)
一句話,RIA就是把傳統(tǒng)Web Application和桌面程序的優(yōu)點結合在一起,既提供了豐富的客戶端體驗,又通過網絡輕易部署和自由訪問Internet的資源。