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