久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Eclipse平臺架構(gòu)技術(shù)分析及基于RCP的應(yīng)用研究

 軟件團隊頭目 2008-03-04
Eclipse平臺架構(gòu)技術(shù)分析及基于RCP的應(yīng)用研究
 
作者:高恒國 羅克露 雷劍  來源:計算機與信息技術(shù)
 
摘 要 由于Eclipse提供了一個開放靈活的框架,,Eclipse技術(shù)現(xiàn)在廣為流行,,基于Eclipse構(gòu)架的應(yīng)用越來越多,。本文先對Eclipse的結(jié)構(gòu)進行了剖析,,分析了Eclipse使用的技術(shù)及實現(xiàn)原理。最后給出了一個基于Eclipse RCP應(yīng)用的項目實例,。

 關(guān)鍵詞 Eclipse,;插件;嵌入式,;RCP

 ●0引言
 Eclipse是一個具有先進軟件設(shè)計和實現(xiàn)技術(shù)的開發(fā)框架,。應(yīng)用軟件在Eclipse中被稱為“插件”。它們在架構(gòu)中互動工作,,完美的集成,。隨著Eclipse3.0加強了對RCP(Rich Client Program)開發(fā)的支持,Eclipse已成為廣為業(yè)界所支持的開放性標(biāo)準軟件開發(fā)環(huán)境,,業(yè)界已成事實的工業(yè)標(biāo)準。

 Eclipse的特點:跨平臺,;提供了GUI和非GUI,;語言中立;基于插件的開放的,、可擴展的平臺,。

 ●1. Eclipse技術(shù)剖析

 1.1 Eclipse體系結(jié)構(gòu)概述
 Eclipse的結(jié)構(gòu)體系如下圖所示:
 
 圖1 Eclipse體系結(jié)構(gòu)圖

 Eclipse類似于“軟總線”的體系結(jié)構(gòu),,Eclipse的核心部分(Platform Runtime)類似于一條“即插即用”的“總線”,它提供了許多的“插槽”(擴展點:extension point),。其余的部分都可看成類似于外部設(shè)備的“插件”(Plug-in),,可隨時加載和卸載。更為靈活的是每個插件又提供了“插槽”可繼續(xù)安裝其他的插件,。

 Eclipse分為Eclipse平臺【可以理解為PlatForm Runtime?】,、JDTPDE,、其他的插件幾個部分,。其中Eclipse平臺是整個系統(tǒng)的基礎(chǔ),Eclipse的核心,。JDT是提供了用于編輯,、查看、編譯,、調(diào)試和運行Java代碼的專門插件,。PDE構(gòu)建于Eclipse平臺和JDT之上,提供了專門開發(fā)插件的工具,。

 Eclipse平臺是在其上創(chuàng)建插件擴展的核心框架和服務(wù)的名稱,,是一個通用的基礎(chǔ)架構(gòu)。平臺由平臺運行時,、工作空間,、工作臺、幫助,、小組,、調(diào)試構(gòu)成。平臺在結(jié)構(gòu)上大致可分為核心(core)和用戶界面(UI)兩層,。核心是與用戶界面無關(guān)的基礎(chǔ)結(jié)構(gòu),,包含平臺運行時和插件管理、工作空間和資源管理以及版本和配置管理,。其中平臺運行時又是Eclipse平臺的核心,。

 1.2 平臺運行時(Platform Runtime):

 運行時相當(dāng)于一個微內(nèi)核,是插件的核心引擎,。它位于平臺核心中最低級別的部分,,由org.eclipse.osgi和org.eclipse.core.

 runtime兩個插件組成,其他所有的插件都依賴于這兩個插件,。

 1)運行時的功能:
 a)定義插件的結(jié)構(gòu)以及它們包含的實現(xiàn)詳細信息(bundle 和類載入器),。
 b)查找和執(zhí)行主要的Eclipse應(yīng)用程序以及維護插件的注冊表、擴展和擴展點。
 c)提供實用程序(例如,,記錄,、調(diào)試跟蹤選項、適配器,、首選項庫和并發(fā)性基礎(chǔ)結(jié)構(gòu)),。

 2)運行時工作原理:
 運行時管理著一個插件注冊表(所有插件的標(biāo)識),當(dāng)Eclipse啟動時,,運行時內(nèi)核
   1.先是定位JRE的位置
   2.然后啟動startup.jar,掃描plugins和features目錄下的插件配置文件對插件進行初始化注冊到OSGi中,,并保存配置文件中的信息。
   3.然后查找清單文件中聲明的extension point和extension,,將二者匹配,,保存插件的依賴關(guān)系。最后啟動應(yīng)用,。

 運行時對插件實行“lazy load“,,只有當(dāng)需要使用插件時才將其調(diào)入內(nèi)存。不需要時選擇適當(dāng)?shù)臅r機清除出內(nèi)存,。

 1.3 OSGi-1.4 Eclipse平臺技術(shù)的核心參照

 1.3.1 OSGi概述:
 Eclipse體系架構(gòu)是參照OSGi實現(xiàn)的,。核心插件org.eclipse.osgi就是OSGi的實現(xiàn)。

 OSGi(Open Service Gateway Initiative)是一個為家用硬件設(shè)備的遠程互訪建立的一個開放的規(guī)范,。它包括構(gòu)建開放的可交付網(wǎng)絡(luò)服務(wù)的各方面,。

 OSGi中的應(yīng)用稱為bundle,每個bundle可提供一定數(shù)量的服務(wù)(Services),。每一個安裝在OSGi服務(wù)平臺的bundle都有一個與之關(guān)聯(lián)的bundle對象(object),,它負責(zé)管理bundle的生命周期。bundle有諸如安裝,、停止,、活動等多種狀態(tài)。

 1.3.2 OSGi主要的規(guī)范
 ◆n 框架規(guī)范(Framework):
 OSGi規(guī)范的核心,提供了一個通用的,、安全可管理的Java 框架,。提供了以下功能:

 管理bundle的安裝和更新。bundle安裝后會注冊一定數(shù)量的服務(wù),可被同一Framework下的其他bundle使用,。不同bundle提供的Services可構(gòu)成一個大規(guī)模的Services,,不同的bundle和Services形成依賴。這種依賴關(guān)系由Framework負責(zé)管理,。
Framework為bundle提供了代碼動態(tài)加載的功能, OSGi兼容設(shè)備可以任意加載和卸載OSGi bundle,。使得開發(fā)者開發(fā)、部署一個大規(guī)模的Services變的很容易,。Framework還為Java bundle開發(fā)者提供了簡明一致的編程模型,,允許開發(fā)者將自己的接口規(guī)范綁定到OSGI環(huán)境中的Services。

 ◆包管理服 務(wù)(Package Admin Service)規(guī)范:管理不同n bundle之間的引用關(guān)系。 當(dāng)bundle更新或者卸載時判斷是否有其他的服n 務(wù)正在使用當(dāng)前的bundle,。

 ◆ 啟動層次(Start Level)規(guī)范:定義了啟動和停止一個OSGi服n 務(wù)平臺時,n 不同n bundle的啟動或者停止的先后順序,。

 ◆ 權(quán)限管理服務(wù)(Permission Admin Service)規(guī)范:對bundle間的訪問權(quán)限進行控制,。

 Eclipse實現(xiàn)了OSGi規(guī)范,平臺運行(runtime)實現(xiàn)了Framework標(biāo)準,,提供了相應(yīng)的核心功能,。插件在效果上相當(dāng)于bundle,整個體系靈活而且強大,。

 1.4 Eclipse的插件技術(shù):
 1.4.1 與插件相關(guān)的概念

 ◆ 插件(Plug-in):Eclipse功能實現(xiàn)的最小單位,包含Java代碼或其他文件,。實現(xiàn)插件的類一般都繼承或?qū)崿F(xiàn)某些類或接口。插件位于plugins目錄下,,n 使用清單文件plugin.xml向系統(tǒng)說明如何集成到平臺,。

 ◆ 擴展點(extension point):具有命名n 特性的信息收集點,n 也就是為插件提供的接口,。每一個插件都是在已有的擴展點上開發(fā),,同n 時可自定義擴展點,n 以便在這個插件上繼續(xù)開發(fā),。正是由引入了擴展點,,n 插件不n 僅可以安裝在Eclipse的平臺上,n 還可以安裝到其他插件上,。

 ◆擴展(extension):對擴展點的實現(xiàn),。每個插件至少實現(xiàn)了一個擴展點。

 1.4.2 Eclipse插件的通信機制
 插件之間的通信是通過擴展點來實現(xiàn)的,。首先插件A聲明了擴展點P及其實現(xiàn)規(guī)則接口I,。插件B如果要擴展插件A的擴展點P,則生成一個實現(xiàn)接口I的類C,,從而實現(xiàn)對P的擴展,。在實際運行時,插件A找到類C并實例化,,然后調(diào)用其實現(xiàn)了接口I中的方法,。
 
 圖2 插件的通信機制

 當(dāng)需要與實現(xiàn)某擴展點的插件通信時,根據(jù)實現(xiàn)擴展的插件清單plugin.xmlextension標(biāo)簽聲明中的“class”屬性查找并裝入類,,再根據(jù)實現(xiàn)擴展類的規(guī)則來調(diào)用該類中的方法,,從而實現(xiàn)了擴展。

 ●2Eclipse技術(shù)的應(yīng)用:

 2.1 開發(fā)插件
 利用PDE可以方便快捷把應(yīng)用程序開發(fā)成插件,,打包后放到plugins目錄下,,Eclipse啟動時會找到相應(yīng)的插件。這種方式可開發(fā)GUI和非GUI插件。如開發(fā)GUI插件,,一般是對平臺的操作組(actionSets)進行擴展,,實現(xiàn)在菜單欄中添加菜單項。然后提供透視圖,、視圖,、編輯器的擴展。其過程如下,。使用這種方式開發(fā)的應(yīng)用只能作為Eclipse的插件運行,,必須安裝Eclipse。

 插件開發(fā)的流程
 1)決定插件如何與平臺集成
 2)標(biāo)識需要進行添加的擴展點以便與用戶的插件進行集成
 3)根據(jù)擴展點的規(guī)范來實現(xiàn)這些擴展,。如實現(xiàn)擴展點所要求的特定的接口,。
 4)提供清單文件(plugin.xml),它描述用戶正在提供的擴展以及代碼的封裝,。Eclipse就是解析這個文件來加載插件的,。

 2.2 開發(fā)RCP應(yīng)用

 胖客戶端程序(RCP)是指運算商務(wù)邏輯是在客戶端實現(xiàn)的應(yīng)用,相反的在服務(wù)器端實現(xiàn)的稱為瘦客戶端程序,。

 Eclipse RCP提供了一個通用的工作臺,,開發(fā)人員可以擴展該工作臺來構(gòu)造自己的應(yīng)用程序。利用RCP可以開發(fā)出獨立的應(yīng)用,,從而脫離了Eclipse平臺的IDE環(huán)境,。一個RCP至少要實現(xiàn)一個插件,并且可以使用與 Eclipse IDE 相同的用戶界面元素,。運行Eclipse RCP不需要安裝Eclipse,。

 開發(fā)Eclipse RCP的步驟:
 1)確定擴展點。插件需要實現(xiàn)哪些擴展點,。
 2)編寫插件清單plugin.xml,。
 3)生成組件類來實現(xiàn)擴展。
 4)創(chuàng)建WorkbenchAdvisor 類,。構(gòu)建 RCP的核心任務(wù)之一就是創(chuàng)建一個實現(xiàn)抽象類WorkbenchAdvisor的類,。WorkbenchAdvisor負責(zé)配置工作臺,當(dāng)執(zhí)行 RCP 應(yīng)用程序時,,將顯示該工作臺,。
 5)接下來需要創(chuàng)建Application類。它相當(dāng)于與Java類中的main方法,,是RCP應(yīng)用程序的主要入口點,,需要定義org.eclipse.core.runtime.applications 擴展點,并實現(xiàn)IPlatformRunnable接口,。
 6)創(chuàng)建并導(dǎo)出一個應(yīng)用程序,,并生成一個插件,。將其放在plugins目錄。
 7)配置config.ini文件,。需要定義product,、application和閃屏等信息。
 
 圖3 信息家電嵌入式仿真開發(fā)平臺目錄結(jié)構(gòu)

 2.3 構(gòu)造開發(fā)環(huán)境IDE
 由于Eclipse實現(xiàn)了RCP 技術(shù),,重構(gòu)了Eclipse的核心,,使得工作平臺與IDE分離。實現(xiàn)了一個獨立的工作平臺,。利用平臺提供的擴展點可以更加方便的構(gòu)建IDE,把工具開發(fā)成插件,,添加到平臺即可,。比如添加JDT插件,就會構(gòu)造出開發(fā)Java的IDE,,提供了CDT就可以用來開發(fā)C/C++,。理論上可以構(gòu)建任何類型的IDE。

 ●3 Eclipse技術(shù)在信息家電嵌入式仿真開發(fā)平臺研制中的應(yīng)用
 3.1信息家電嵌入式仿真平臺系統(tǒng)概述
 系統(tǒng)通過對ARM系列處理器指令集及體系結(jié)構(gòu)的模擬,、外部設(shè)備功能的仿真,,構(gòu)造了一個虛擬運行環(huán)境,其上運行LINUX操作系統(tǒng)和應(yīng)用,。系統(tǒng)具有很好的仿真性能,。
 
 圖4 仿真平臺系統(tǒng)總體結(jié)構(gòu)圖
整個系統(tǒng)為一個RCP應(yīng)用,各子系統(tǒng)以插件的形式實現(xiàn),。在實現(xiàn)過程中充分利用了Eclipse技術(shù):如利用了Workbench能夠添加“標(biāo)準操作”的特點,;借鑒JDT的模式封裝了系統(tǒng)的調(diào)試器;在開發(fā)圖形界面方面用到了SWT和JFace,,還有SWT多線程等,。

 3.2 仿真平臺系統(tǒng)功能結(jié)構(gòu):
 1)項目管理插件:
 本子系統(tǒng)包括家電控制軟件開發(fā)階段所涉及的工具:工程管理器、編輯器,、編譯器,、匯編器、連接器以及常用標(biāo)準庫等,。

 2)調(diào)試插件:
 包括調(diào)試器,、調(diào)試代理。調(diào)試器實現(xiàn)了通常調(diào)試器的常用功能,,采用了JDT調(diào)試器的實現(xiàn)方法,,內(nèi)部封裝了GNU的調(diào)試工具。界面上采用Eclipse調(diào)試器的Views及Editors,。

調(diào)試代理運行在“目標(biāo)板”上,,通過接口與宿主機上的調(diào)試器進行通信,,接收調(diào)試命令。

 3)仿真運行環(huán)境維護插件:
 該子系統(tǒng)包括構(gòu)件庫管理器,、構(gòu)件庫,、仿真運行環(huán)境配置器、仿真運行環(huán)境管理器,。其中構(gòu)件庫管理器實現(xiàn)構(gòu)件屬性信息的存儲,、檢索。仿真運行環(huán)境配置器的功能相當(dāng)于“組建目標(biāo)板”,,而仿真運行環(huán)境管理器則提供了整個仿真系統(tǒng)得以正確運行的機制,。

 4)邏輯信號分析插件:
 包括軟件邏輯分析儀、邏輯分析儀代理,。邏輯分析儀代理接收邏輯分析儀的命令對“目標(biāo)板”上的“電路信號”進行檢測,。軟件邏輯分析儀將代理采集到模擬信號呈現(xiàn)給用戶。

 5)第三方工具集成支持插件:
 在版本控制方面用到了SVN工具,,UML工具使用了Together,。

 ●4 結(jié)束語
 本文對Eclipse的結(jié)構(gòu)進行了分析,說明了Eclipse“核心+插件”的機制,。介紹了Eclipse技術(shù)的應(yīng)用,,重點以實際項目為例對RCP的開發(fā)進行了介紹。

 ●參考文獻:

 [1] Ed Burnette, SAS. Rich Client Tutorial Part[J].2004
 [2] Eclipse Corporation. Eclipse3.0集成開發(fā)環(huán)境幫助.
 [4] OSGi Alliance. OSGi Technology [J]. http://www./osgi_technology.

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多