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