Eclipse插件開發系列一:Runtime 內核架構

Rich Client Platform 的核心運行時是Eclipse平臺的微內核

主要負責管理Eclipse的所有插件和Fragements。Eclipse3.0以後,Eclipse基於OSGi規範的輕量級實現Equinox 來構件核心運行時。核心架構圖如下。
                Applications/Bundles(Plug-ins)

Eclipse Job Management   Extension Registry
    Service
    Service Registry                 Extensibility     Framework(Adaptor)  securtiy
    Life Cycle
    Modules
                         Execution Eviroment 

Execution  Environment
 Bundle/Plug-in 應用所倚賴運行的java執行環境。如J2SE-1.5CDC-1.0等都是可用的執行環境。

Modules 
模塊層定義了 Bundle 應用的加載策略。OSGI框架是一個健壯並且嚴格定義的類加載模型。 OSGI基於Java技術。對於每個實現了 BundleActivator接口的Bunlde應用,爲它生成一個單獨的ClassLoader。使用Bundle應用的組織更加模塊化。

Life Cycle 

生命週期層可以動態地對Bundle、Plug-in 進行安裝、啓動、停止。升級和卸載等操作。該層基於模塊層,提供了一組API來控制Bundle應用的運行時操作

Service Registry 和Service

OSGI 服務層定義了一個集成在生命週期層中的動態協議模型,是一個發佈、動態尋找、綁定的服務模型。一個服務通常是一個Java對象實現了特定的服務接口,並且通過服務註冊,被綁定到OSGi的運行環境中。Bundle、Plug-in應用可以註冊發佈服務。動態綁定服務,並且在服務註冊狀態改變時。可以接收到事件消息等
Extension  Registry
Eclipse 認爲Bundle、Plug-in之間存在兩種關係:一種爲依賴  一種爲擴展(Extension)對於依賴。通過OSGI中元數據信息裏添加需要引用插件即可實現。但是擴展OSGI中是沒有定義。Eclipse採用了一個Extension Point 的方式來實現插件的擴展功能。ExtensionRegistry 作爲一個註冊的服務用於管理Eclipse插件的Extensions。 插件的更新組件在Eclipse 3.4 中已經基於Equinox P2重寫了。Equinox P2 是一個新的、非常高級的配置系統。用於安裝、搜素和管理Eclipse安裝。並且比以前更新管理器更加容易使用

EclipseJob management
Eclipse對java 多線程機制的良好封裝。Core Runtime 也是提供併發服務。


Extensibility Framework(Adaptor)
由於Eclipse3.0以前的版本的插件是沒有采用OSGI的。所有equinox需要通過適配器的方式來實現與以往版本的兼容。同時適配器的使用使使Equinox osgi 的框架耦合性更低。更靈活,更有利於擴展。

Security
OSGi的安全管理是基於java2 安全體系的,貫穿在OSGi平臺的所有層中,他能夠對部署在OSGI運行環境中的bundle、plugin 應用進行詳細的管理控制

EclipseRegistry 和EclipsejobManagement 的相關代碼在 org.eclipse.core.runtime.osgi 項目中
而其他部分的則來自 org.eclipse.osgi項目中。




發佈了99 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章