基于Eclipse Equinox的插件框架:TPF
這個框架的簡稱為TPF,是目前我所做的產品的底層框架,TPF本身構建于Eclipse Equinox之上,Equinox做為OSGI R4的RI,提供了OSGI R4的全部實現,而且同時它還結合了Eclipse IDE做為插件平臺的優勢之處,所以是一個非常優秀的插件框架,但相對需要強大管理性的應用系統來說,基于Equinox還是缺少了一些做為基于微核的系統的管理性,TPF就是為了滿足這個而實現的,TPF主要的目標就是:
1、形成以TPF為微核的系統
????? Equinox其實也是一個具備微核特征的插件框架,在Equinox中只需要System Bundle是正常運行的,那么就可以通過它來完成基于它之上的所有插件的管理,但對于系統級別而言,更多時候需要的是一種基于系統級別的控制,也就是統一控制基于Equinox的插件,統一的進行重啟、停止和啟動這樣的管理,而同時由于Equinox僅僅提供了console方式的管理,這對于用戶來說通常會有點麻煩,所以在TPF中提供的是web形式的管理。
??????在一個擁有TPF的系統的圖示通常是這樣(寫基于TPF不太正確,因為其他的Bundle并不需要依賴于TPF):
??????

????? 對于基于Equinox的系統而言,只需要安裝上TPF的Bundle,便可擁有TPF提供的方便了:
????? 通過TPF可更加方便的對插件進行安裝、管理(停止、更新、啟動);
?????
????? 可以對插件的元信息(MANIFEST.MF)以及插件外帶的一些配置文件的信息進行直接的修改,同時更是提供了更為方便的設置插件啟動順序的方法以及更加形象標明插件作用的插件名的設置的功能;
?????

????? 微核系統的特征,可統一啟動或停止系統中的插件,方便了對于用戶而言的管理功能。
??????

????? 從這些特性上可以看出,在Equinox中安裝了TPF的幾個Bundle后,就可以更加方便的對插件進行管理了,同時也可以形象的感覺到微核系統的特征,即不論系統處于啟動還是停止狀態,只要微核運行是正常的,那么系統就可以通過微核來進行管理、擴充功能以及修改功能的,而微核通常來講都是非常穩定的,在擁有這樣特征的系統中,形象的說就是可以在項目開始的第一天在客戶處部署一個系統,從此以后無論是更新版本還是如何,系統都是永遠保持在運行狀態的。
2、增強的管理特性
??????在TPF中除了上面所說的一些插件管理功能的提升之外,最重要的就是增加了對遠程同樣基于TPF系統的監控,在TPF中可以監控遠程TPF系統的運行狀態,同時還可對遠程的TPF系統進行啟動、停止的管理動作。
?????

TPF由三個Bundle共同構成,基于tpf.core可以實現其他方式的管理端,如client UI方式的管理端,JMX管理端等;tpf.webshell這個Bundle則提供了目前看到的web管理的方式,如不需要web管理則直接不安裝這個bundle就可以了或停止這個bundle(在需要的時候啟動就可以了);tpf.api提供了管理遠程TPF的接口,如不需要遠程管理,也可不安裝這個bundle或停止這個bundle。
為了能更加清楚的說明TPF帶來的影響,畫了張簡單的時序圖:
這張圖表達出了在安裝上TPF Bundles后,其他App Bundles的生命周期包括啟動順序等是由TPF Bundles來控制,而不再是通過Equinox直接控制了,此時TPF Bundles和Equinox共同構成了系統的微核。
posted on 2006-08-18 21:24 BlueDavy 閱讀(6743) 評論(10) 編輯 收藏 所屬分類: Plugin Architecture