偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

開發(fā) 后端
由于Eclipse提供了一個開放靈活的框架,Eclipse技術現(xiàn)在廣為流行,基于Eclipse構(gòu)架的應用越來越多。本文先對Eclipse的結(jié)構(gòu)進行了剖析,分析了Eclipse使用的技術及實現(xiàn)原理。最后給出了一個基于Eclipse RCP應用的項目實例。

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

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

1. Eclipse技術剖析

1.1 Eclipse體系結(jié)構(gòu)概述

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

Eclipse體系結(jié)構(gòu)圖  
圖1 Eclipse體系結(jié)構(gòu)圖

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

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

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

1.2 平臺運行時(Platform Runtime):

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

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

1)運行時的功能:

a)定義插件的結(jié)構(gòu)以及它們包含的實現(xiàn)詳細信息(bundle 和類載入器)。

b)查找和執(zhí)行主要的Eclipse應用程序以及維護插件的注冊表、擴展和擴展點。

c)提供實用程序(例如,記錄、調(diào)試跟蹤選項、適配器、首選項庫和并發(fā)性基礎結(jié)構(gòu))。

2)運行時工作原理:

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

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

1.3 OSGi-1.4 Eclipse平臺技術的核心參照

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

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

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

1.3.2 OSGi主要的規(guī)范

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

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

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

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

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

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

1.4 Eclipse的插件技術:

1.4.1 與插件相關的概念

◆ 插件(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插件的通信機制

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

2 Eclipse技術的應用:

2.1 開發(fā)插件

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

插件開發(fā)的流程

1)決定插件如何與平臺集成

2)標識需要進行添加的擴展點以便與用戶的插件進行集成

3)根據(jù)擴展點的規(guī)范來實現(xiàn)這些擴展。如實現(xiàn)擴展點所要求的特定的接口。

4)提供清單文件(plugin.xml),它描述用戶正在提供的擴展以及代碼的封裝。Eclipse就是解析這個文件來加載插件的。

2.2 開發(fā)RCP應用

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

Eclipse RCP提供了一個通用的工作臺,開發(fā)人員可以擴展該工作臺來構(gòu)造自己的應用程序。利用RCP可以開發(fā)出獨立的應用,從而脫離了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的核心任務之一就是創(chuàng)建一個實現(xiàn)抽象類WorkbenchAdvisor的類。WorkbenchAdvisor負責配置工作臺,當執(zhí)行 RCP 應用程序時,將顯示該工作臺。

5)接下來需要創(chuàng)建Application類。它相當于與Java類中的main方法,是RCP應用程序的主要入口點,需要定義org.eclipse.core.runtime.applications 擴展點,并實現(xiàn)IPlatformRunnable接口。

6)創(chuàng)建并導出一個應用程序,并生成一個插件。將其放在plugins目錄。

7)配置config.ini文件。需要定義product、application和閃屏等信息。

信息家電嵌入式仿真開發(fā)平臺目錄結(jié)構(gòu) 
圖3 信息家電嵌入式仿真開發(fā)平臺目錄結(jié)構(gòu)

2.3 構(gòu)造開發(fā)環(huán)境IDE

由于Eclipse實現(xiàn)了RCP 技術,重構(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技術在信息家電嵌入式仿真開發(fā)平臺研制中的應用

3.1信息家電嵌入式仿真平臺系統(tǒng)概述

系統(tǒng)通過對ARM系列處理器指令集及體系結(jié)構(gòu)的模擬、外部設備功能的仿真,構(gòu)造了一個虛擬運行環(huán)境,其上運行LINUX操作系統(tǒng)和應用。系統(tǒng)具有很好的仿真性能。

仿真平臺系統(tǒng)總體結(jié)構(gòu)圖 
圖4 仿真平臺系統(tǒng)總體結(jié)構(gòu)圖

整個系統(tǒng)為一個RCP應用,各子系統(tǒng)以插件的形式實現(xiàn)。在實現(xiàn)過程中充分利用了Eclipse技術:如利用了Workbench能夠添加“標準操作”的特點;借鑒JDT的模式封裝了系統(tǒng)的調(diào)試器;在開發(fā)圖形界面方面用到了SWT和JFace,還有SWT多線程等。

3.2 仿真平臺系統(tǒng)功能結(jié)構(gòu):

1)項目管理插件:

本子系統(tǒng)包括家電控制軟件開發(fā)階段所涉及的工具:工程管理器、編輯器、編譯器、匯編器、連接器以及常用標準庫等。

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)試代理運行在“目標板”上,通過接口與宿主機上的調(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)境配置器的功能相當于“組建目標板”,而仿真運行環(huán)境管理器則提供了整個仿真系統(tǒng)得以正確運行的機制。

4)邏輯信號分析插件:

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

5)第三方工具集成支持插件:

在版本控制方面用到了SVN工具,UML工具使用了Together。

4 結(jié)束語

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

【編輯推薦】

  1. Eclipse插件之Spring IDE
  2. Eclipse 3.5新特性預覽
  3. Spring定時器的兩種實現(xiàn)方式
  4. 在Eclipse RCP中使用Spring框架
  5. 開發(fā)NetBeans Spring MVC基礎入門
責任編輯:yangsai 來源: 計算機與信息技術
相關推薦

2011-09-08 10:03:05

2013-12-04 10:48:05

虛擬化云計算平臺架構(gòu)

2013-05-30 09:58:31

100G100G技術100G應用

2009-05-20 14:48:07

ibmdwEclipse開發(fā)技巧

2009-01-19 13:54:58

ERP數(shù)據(jù)倉庫應用研究

2023-05-26 00:51:52

2009-02-11 10:02:00

2021-02-22 10:32:53

大數(shù)據(jù)大數(shù)據(jù)平臺大數(shù)據(jù)技術棧

2021-04-07 10:12:36

區(qū)塊鏈技術商標

2012-11-12 17:27:37

2011-03-08 09:40:26

Java多態(tài)性

2021-09-12 22:23:14

區(qū)塊鏈比特幣技術

2016-12-12 13:56:39

2009-07-07 14:39:07

對等網(wǎng)絡IPTV

2015-11-16 09:57:54

大數(shù)據(jù)時代新媒體研究

2013-10-12 14:44:33

H3CSDN技術應用

2011-05-16 16:33:20

J2EE

2017-02-28 21:23:34

大數(shù)據(jù)采集架構(gòu)分析

2011-08-12 11:14:42

大數(shù)據(jù)數(shù)據(jù)分析平臺架構(gòu)

2018-03-02 10:31:48

大數(shù)據(jù) 供應鏈金融
點贊
收藏

51CTO技術棧公眾號