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

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

????? 微核系統(tǒng)的特征,可統(tǒng)一啟動(dòng)或停止系統(tǒng)中的插件,方便了對(duì)于用戶而言的管理功能。
??????

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

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