傳統(tǒng)的基于C/S的Windows應(yīng)用程序總是讓客戶面臨著一些感覺很是不爽的問題,如:部署問題、升級困難、維護困難、安全問題,但是完全的WEB開發(fā)由于HTTP協(xié)議的無狀態(tài)特性——瀏覽器和服務(wù)器總是在不停地執(zhí)行Request和Response來營造一種有狀態(tài)、持續(xù)會話的假象,致使人們又開始懷戀具有更強運算能力、本地存儲能力和更穩(wěn)定的通訊能力的客戶端程序了。
不得不說的是,寬帶網(wǎng)絡(luò)的出現(xiàn)在某種意義促成了Rich Client的誕生。通過快捷的發(fā)布,特定的通訊協(xié)議標準,Rich Client正以不可阻擋的氣勢向人們重現(xiàn)著C/S模式下客戶端程序的優(yōu)勢。
Rich Client的發(fā)布
C/S架構(gòu)下,客戶端程序發(fā)布與維護一直比較困難和繁瑣。在版本更新以后,需要對客戶的客戶端程序進行逐個下載安裝及配置更新,這是一個體力活,而這也一直是使用戶大量選擇WEB程序的因素之一。
在Rich Client時代,由于寬帶網(wǎng)絡(luò)的便利,在客戶端盡盡需要從服務(wù)器端下載已經(jīng)更新好的程序運行,而不必理會繁瑣的下載、安裝和配置的過程。
這里不得不提Java的是WebStart技術(shù)。
WebStart是讓用戶只需在網(wǎng)頁上點擊一個超級鏈接就能運行一個Java桌面應(yīng)用的技術(shù)。對于一個擁有WebStart能力的Java應(yīng)用來說,用戶使用它就和使用WEB應(yīng)用一樣的簡單,但它所具有的界面能力和本地處理能力卻是WEB應(yīng)用無法望其項背的。
具體的應(yīng)用的技術(shù)知識可以從http://java.sun.com中尋找相關(guān)文檔,這里不一一贅述。
Rich Client的通信機制
除了快捷方便的發(fā)布外,Rich Client還需要與服務(wù)器端建立一種快速、可靠、強大、易用的通信交互機制。但我們開發(fā)WEB應(yīng)用時,表現(xiàn)層和業(yè)務(wù)服務(wù)層常常只是同一個進程中的不同對象,它們之間的交互不過是Java的方法調(diào)用而已,當表現(xiàn)層邏輯被分發(fā)到世界各地的計算機上,客戶端和服務(wù)器之間的交互就成了一個大問題——從前的C/S被淘汰,很大程度上歸咎于socket通信的復(fù)雜性。
現(xiàn)在,形形色色的RPC(遠程過程調(diào)用,Remote Procedure Call)技術(shù)以獨特的優(yōu)勢扮演起了信使的角色。以下列舉幾種Rich Client可以采用的通信機制。
CORBA和RMI
CORBA(通用對象請求代理體系結(jié)構(gòu),Common Object Request Broker Architecture)曾經(jīng)紅極一時,它能夠兼容各種操作系統(tǒng)平臺的語言,強大的的可擴展性所帶來的負面影響就是實現(xiàn)的復(fù)雜和繁瑣。如果服務(wù)器端和客戶端都采用Java開發(fā),那么CORBA所需要的語言無關(guān)的IDL就完全變成了畫蛇添足。當然,對于需要集成大量企業(yè)內(nèi)遺留的系統(tǒng)的EAI(企業(yè)應(yīng)用集成)項目中,它一直是首選的技術(shù)。