OpenCore純插件體系結構中的核心概念包括:微內核、插件與服務。
微內核(MicroKernel): 提供基礎的插件與服務架構;負責插件的生命周期管理,包括插件的安裝(Install)、啟用(Activate)、停止(Deactivate)與卸載(Uninstall);負責服務的生命周期管理,包括服務的注冊(Register)、發現(Lookup)、啟動(Start)、停止(Stop),服務間的依賴綁定。
OpenCore微內核分兩層:
- 應用系統的核心層:以OSGi為基礎
- 增強層:IoC實現、擴展點機制與RMI插件
插件(Plugin):OpenCore是一個純插件結構的系統,包括內核在內的所有特性都由插件構成。插件是對系統中靜態結構方面的抽象,滿足某種約束并提供自描述的物理軟件模塊。OSGi中插件叫Bundle,物理上是一個提供自描述文件(MANIFEST.MF)的Jar文件。插件可以被動態的安裝、激活、去激活與卸載。插件包含多個服務(Service)對象。
插件間的依賴關系包括兩種:
- 物理依賴,即插件間的Class依賴,例如A插件Import B插件的Class
- 邏輯依賴,插件A中的服務依賴插件B中的服務。
插件的概念描述圖如下:
服務(Service):系統中動態結構方面的抽象,是運行時的概念,是具有良好接口與自我描述的業務功能提供者。Java平臺上是一個具有良好接口對象實例。服務可以被注冊、發現、啟動與停止。運行時,服務間在同一JVM內通過傳引用(By-Reference)依賴協作,在不同JVM內通過RMI、JMS、REST等傳值方式(By-Value)通信協作。
服務的概念描述圖如下:
服務間依賴關系(Dependency and Relations)有三種:
- 進程間通過連接器(Connector)以傳值(By-Value)方式通信和協作
- 進程內通過Java接口調用以傳引用(By-Reference)方式通信協作
- 進程內一個服務可以作為對另一服務的擴展
服務間關系的概念描述圖:
posted on 2008-01-15 18:26
前方的路 閱讀(776)
評論(0) 編輯 收藏 所屬分類:
軟件架構