[IT168 分析]隨著(zhù)Eclipse IDE的出現和不斷發(fā)展,Java社區又進(jìn)入了一個(gè)新的春天,Eclipse強大而又靈活擴展的插件機制成為了吸引開(kāi)發(fā)人員的天堂,使其成為一款優(yōu)秀的IDE。Eclipse項目的初衷并不打算構建成一個(gè)胖客戶(hù)端平臺(RCP),而只是想構建一個(gè)集成開(kāi)發(fā)工具的平臺。Eclipse RCP始于Eclipse2.1版本,到了3.0版本的時(shí)候,Eclipse作為一個(gè)RCP邁出了巨大的一步, 在3.0后的版本,Eclipse項目小組廢除了以前的插件管理模型,通過(guò)引入OSGi(Open Service Gateway Initiative) R4標準來(lái)實(shí)現插件的動(dòng)態(tài)安裝,移除和更新,這使Eclipse IDE實(shí)現了革命性的變革。Eclipse3.1版本正式的引入了RCP發(fā)布功能,一時(shí)間RCP技術(shù)成為Java開(kāi)發(fā)人員中最流行的詞匯,那究竟什么是Eclipse RCP呢?
什么是Eclipse RCP?
Eclipse RCP (Rich Client Platform)是基于Eclipse項目的一個(gè)開(kāi)發(fā)胖客戶(hù)端應用程序的框架,它提供了一個(gè)通用的 Eclipse 工作臺,允許開(kāi)發(fā)人員擴展和構造強大的,跨平臺應用程序。
RCP和Plug-in工程的差別并不大,插件項目使用的工作臺是Eclipse IDE本身;對于構建RCP項目,開(kāi)發(fā)人員可以定義應用程序外觀(guān),商標和其它Eclipse基礎組件等,實(shí)現自己的桌面應用程序。
作者最開(kāi)始接觸到RCP的時(shí)候并沒(méi)有感覺(jué)到RCP的強大之處,只覺(jué)得用RCP開(kāi)發(fā)出來(lái)的應用程序的界面比用Swing開(kāi)發(fā)出來(lái)的應用程序界面漂亮許多。但隨著(zhù)需求變得復雜,需要實(shí)現更多的功能,RCP的易開(kāi)發(fā)性和強大的插件管理功能就顯得越來(lái)越突出,真正有一種做產(chǎn)品的感覺(jué),著(zhù)實(shí)讓人興奮。事實(shí)上使用RCP開(kāi)發(fā)的產(chǎn)品很多,如IBM Lotus Workspace, Eclipse trader, NASA Maestro,而Eclipse3.1本身就是使用RCP開(kāi)發(fā)出的杰出代表產(chǎn)品。
Web和Eclipse RCP技術(shù)孰優(yōu)孰劣?
隨著(zhù)RCP的強勢出現,許多開(kāi)發(fā)人員自然會(huì )拿Eclipse RCP技術(shù)和現在流行的Web技術(shù)對比,孰優(yōu)孰劣?如果撇開(kāi)業(yè)務(wù)需求,單單要對比兩種技術(shù)是困難的,我們就主要對比兩種技術(shù)如何適應業(yè)務(wù)的需求變化。
Web技術(shù)的出現,不僅為Internet的廣泛普及起到關(guān)鍵性的作用,而且還在Intranet、電子商務(wù)等其他相關(guān)計算機網(wǎng)絡(luò )應用技術(shù)發(fā)展中起到關(guān)鍵作用,特別是Web動(dòng)態(tài)技術(shù).例如J2EE平臺的Servlet技術(shù),Servlet容器會(huì )將來(lái)自于客戶(hù)端的HTTP請求封裝為一個(gè)HttpServletRequest對象,然后根據請求的URI和servlet的鍵值關(guān)系,調用相應的servlet處理;最后,將處理的結果轉換成HTTP響應發(fā)送回客戶(hù)端。
系統的所有業(yè)務(wù)邏輯都放在服務(wù)器端了,用戶(hù)無(wú)須安裝客戶(hù)端程序,只需要通過(guò)瀏覽器就能訪(fǎng)問(wèn),這樣用戶(hù)方就變成了“瘦”客戶(hù)端。這種模式很好的適應了業(yè)務(wù)的變化,對于業(yè)務(wù)的改變都發(fā)生在服務(wù)器端,而客戶(hù)端沒(méi)有任何影響,這就是Web技術(shù)現在非常流行的重要原因之一。
不能適應快速的業(yè)務(wù)變化,就成了傳統的基于C/S模式的RCP系統最大弊端。
Eclipse RCP的插件機制是其最大的亮點(diǎn),基于Eclipse RCP構建的應用系統的表現出相當出色的擴展性,用戶(hù)只需要下載一個(gè)插件,簡(jiǎn)單的部署到應用系統中,就能為應用程序添加新功能。Eclipse RCP的插件管理機制較好的解決了應用程序的擴展問(wèn)題,適應業(yè)務(wù)需求的變化。
使用RCP開(kāi)發(fā)的桌面應用程序其主要應用于如科學(xué)計算,數據管理等業(yè)務(wù)領(lǐng)域,而Eclipse RCP與其它RCP系統相比,屏蔽了底層操作系統的差異,真正實(shí)現了跨平臺;和Web應用系統相比,使用Eclipse RCP系統的開(kāi)發(fā)人員還可以根據需要,實(shí)現自己的插件,部署到與有的RCP產(chǎn)品,增強其業(yè)務(wù)功能的。
Web技術(shù)和RCP在各自的應用領(lǐng)域都扮演著(zhù)非常重要的作用。這個(gè)時(shí)候可能會(huì )有人問(wèn)“那Web技術(shù)會(huì )被Eclipse RCP技術(shù)取代嗎”?
Web技術(shù)會(huì )被Eclipse RCP技術(shù)取代嗎?
技術(shù)的興起與消亡都與它關(guān)注的業(yè)務(wù)領(lǐng)域息息相關(guān)的,如果這種技術(shù)適合這個(gè)業(yè)務(wù)領(lǐng)域的發(fā)展需求,那自然會(huì )被普及推廣,反之則會(huì )被淘汰。
其實(shí)早在90年代初就提出了“Rich Client”的概念用來(lái)構造客戶(hù)端應用程序,常用的開(kāi)發(fā)語(yǔ)言有Visual Basic和Delphi,出現了大量的桌面應用程序,如ERP,財務(wù)管理系統等。而隨著(zhù)Internet的普及,Web技術(shù)的發(fā)展,一時(shí)間諸如CGI,ASP,JSP等技術(shù)成為了開(kāi)發(fā)人員的必須要掌握的技術(shù),越來(lái)越多的企業(yè)使用Web技術(shù)在Internet上構建應用系統,典型的系統有辦公自動(dòng)化系統。
經(jīng)過(guò)多年的發(fā)展,雖然有些應用開(kāi)發(fā)方式已經(jīng)從C/S模式演變成B/S模式,但是桌面應用程序并沒(méi)有被完全被B/S系統替代,它們都在各自的業(yè)務(wù)領(lǐng)域中發(fā)揮著(zhù)不可替代的作用,并且還不斷涌現新的Web技術(shù)和RCP技術(shù),促進(jìn)各自領(lǐng)域的發(fā)展。如今Eclipse RCP的橫空出世,備受業(yè)界關(guān)注,仿佛要打破這種平衡。
而事實(shí)上Eclipse RCP的出現只是增強了Java領(lǐng)域在桌面應用的開(kāi)發(fā)能力,只是Eclipse RCP優(yōu)秀的插件管理機制讓所有人耳目一新。我們可以理性的回過(guò)頭看,當Web技術(shù)大興其道的時(shí)候,桌面應用程序開(kāi)發(fā)技術(shù)并沒(méi)有消失;同樣,Eclipse RCP的出現也不能夠取代Web技術(shù),兩者是相互依存的關(guān)系,RCP的不斷創(chuàng )新,將為Web2.0注入新的生機。
聯(lián)系客服