TPF插件管理框架功能、實(shí)現(xiàn)以及下載
OSGi在應(yīng)用時(shí)具備了典型的微核系統(tǒng)的特點(diǎn),但對(duì)于實(shí)際項(xiàng)目/產(chǎn)品型的應(yīng)用而言,這個(gè)微核有些過(guò)于底層了,為什么這么說(shuō)呢?
對(duì)于實(shí)際項(xiàng)目/產(chǎn)品型的應(yīng)用而言,何謂其微核呢,應(yīng)該說(shuō)其腳手架或開(kāi)發(fā)平臺(tái)才是它的微核,而并非僅僅是OSGi框架,當(dāng)然,也可以將自己的腳手架或開(kāi)發(fā)平臺(tái)以Fragment-Host的方式綁定到OSGi的System Bundle上去,但這樣的做法無(wú)疑有些evil了,TPF誕生的最主要的目的就是形成一個(gè)應(yīng)用級(jí)的微核的概念,使得我們?cè)诠芾韺?shí)際的項(xiàng)目和產(chǎn)品時(shí),能夠?qū)⒛_手架和實(shí)際的業(yè)務(wù)應(yīng)用模塊分離管理,讓腳手架也變成微核,這樣在管理時(shí)就可以做到對(duì)應(yīng)用系統(tǒng)的統(tǒng)一管理,而同時(shí)保持一個(gè)含應(yīng)用意義的微核(也可以認(rèn)為是開(kāi)發(fā)平臺(tái))的穩(wěn)定運(yùn)行,在具備了TPF的情況下,就可以將應(yīng)用系統(tǒng)從部署上分為腳手架和應(yīng)用系統(tǒng),而在管理上也可以單獨(dú)對(duì)應(yīng)用系統(tǒng)進(jìn)行管理,如啟動(dòng)應(yīng)用系統(tǒng)、停止應(yīng)用系統(tǒng),同時(shí)避免應(yīng)用開(kāi)發(fā)人員對(duì)腳手架無(wú)意的修改。
在本篇文檔中將介紹TPF提供的功能、TPF實(shí)現(xiàn)的方法以及TPF的下載地址。
功能
TPF以web形式來(lái)管理TPF中的插件,該web管理端提供了以下功能:
l 插件的安裝
在插件的安裝上TPF支持兩種形式:
n 手工輸入插件的地址
可用于實(shí)現(xiàn)位于服務(wù)器上的目錄形式的插件的安裝。
n 選擇插件文件
可用于實(shí)現(xiàn)遠(yuǎn)程安裝插件至服務(wù)器或安裝服務(wù)器上的插件,這些插件必須是zip或jar格式的。
上傳至服務(wù)器的路徑在TPF的cn.org.osgi.tpf.webconsole的MANIFEST.MF中指定。
l 插件的管理
TPF僅管理通過(guò)TPF Web管理端安裝的插件,通過(guò)install方式在OSGi console中安裝的插件TPF將不進(jìn)行管理。
TPF支持插件的啟動(dòng)、更新、停止、卸載的管理。
l 插件MANIFEST.MF修改的支持
TPF支持修改插件的MANIFEST.MF文件的內(nèi)容。
l 應(yīng)用系統(tǒng)的管理
TPF具備了應(yīng)用級(jí)微核的概念,因此TPF可支持應(yīng)用系統(tǒng)的管理,其實(shí)意思就是可以統(tǒng)一的對(duì)通過(guò)TPF部署的插件進(jìn)行管理:
n 統(tǒng)一的啟動(dòng)TPF中的所有插件;
n 統(tǒng)一的停止TPF中的所有插件;
n 導(dǎo)出TPF中所有的插件的配置。
這個(gè)功能使得只需要在一臺(tái)機(jī)器上完成了應(yīng)用系統(tǒng)的部署后,可以通過(guò)導(dǎo)出配置來(lái)生成TPF啟動(dòng)時(shí)的插件配置文件,這樣在其他機(jī)器上再部署時(shí)就不需要再通過(guò)插件管理端來(lái)部署插件了。
l 遠(yuǎn)程應(yīng)用系統(tǒng)的狀態(tài)查詢
TPF支持查詢遠(yuǎn)程部署至TPF的應(yīng)用系統(tǒng)的運(yùn)行狀態(tài)。
l 遠(yuǎn)程應(yīng)用系統(tǒng)的管理
TPF支持管理遠(yuǎn)程應(yīng)用系統(tǒng)的狀態(tài),可停止和啟動(dòng)遠(yuǎn)程的應(yīng)用系統(tǒng)。
實(shí)現(xiàn)方法
TPF的最重要的功能是要實(shí)現(xiàn)應(yīng)用級(jí)微核,要實(shí)現(xiàn)應(yīng)用級(jí)微核,就要讓TPF知道哪些是應(yīng)用系統(tǒng)的插件,只要知道哪些插件是需要列入TPF管理的就行了,對(duì)于這個(gè)問(wèn)題TPF通過(guò)在其web管理端安裝插件時(shí)將插件的信息寫(xiě)入至一個(gè)tpf.system.plugins文件來(lái)實(shí)現(xiàn),通過(guò)這樣的方法就可以使得TPF知道哪些插件是要管理的,TPF將記錄這些插件的id、啟動(dòng)順序、插件位置、插件名稱以及插件的狀態(tài),當(dāng)再次啟動(dòng)OSGi應(yīng)用時(shí),TPF將通過(guò)此文件來(lái)加載插件,此處要注意,這些插件并不是OSGi框架直接加載的,而是通過(guò)TPF來(lái)加載的,這樣有助于TPF來(lái)控制插件的啟動(dòng)過(guò)程、保持插件原有狀態(tài)等。
在實(shí)現(xiàn)了應(yīng)用級(jí)微核概念的基礎(chǔ)上,TPF基于OSGi的API實(shí)現(xiàn)了像插件的安裝、啟動(dòng)、停止、更新、卸載這些管理功能,基于文件操作的方式實(shí)現(xiàn)了對(duì)于Manifest.mf的修改。
在遠(yuǎn)程系統(tǒng)的狀態(tài)監(jiān)控和管理上,TPF基于OSGi.org.cn的axis封裝模塊實(shí)現(xiàn)了與遠(yuǎn)程的OSGi應(yīng)用通訊從而獲取遠(yuǎn)程OSGi應(yīng)用的狀態(tài)并進(jìn)行管理。
下載
暫時(shí)還未把TPF歸入開(kāi)源的project中,感興趣的同學(xué)可以先從以下地址下載源碼和可運(yùn)行版本:
源碼:
http://www.bluedavy.com/opendoc/TPF-Source.zip
可運(yùn)行版本:
http://www.bluedavy.com/opendoc/TPF-dist.zip
等將來(lái)把TPF歸入到OSGi.org.cn的開(kāi)源項(xiàng)目后,大家就可以通過(guò)svn來(lái)共同發(fā)展TPF項(xiàng)目了。
后續(xù)版本
目前版本的TPF對(duì)于大家來(lái)說(shuō)也許主要是webconsole部分的功能,而且更多的也許是,TPF在后續(xù)主要需要增強(qiáng)的是插件啟動(dòng)的控制上的管理、提供系統(tǒng)依賴的圖形化的分析以及遠(yuǎn)程TPF應(yīng)用的圖形化的監(jiān)控和管理等等。
另外TPF在代碼級(jí)別也還有很多可完善的地方,在實(shí)現(xiàn)上也許可以不專門(mén)出現(xiàn)一個(gè)tpf.system.plugins,而是通過(guò)在MANIFEST.MF中擴(kuò)展出一個(gè)屬性來(lái)實(shí)現(xiàn)應(yīng)用級(jí)微核的概念,還有像將TPF的遠(yuǎn)程管理剝離開(kāi),以便不需要的話就可以不安裝此插件。
在TPF得到了一定的完善后,將會(huì)把它貢獻(xiàn)給OSGi Bundle Repository。posted on 2007-10-05 19:48 BlueDavy 閱讀(10784) 評(píng)論(21) 編輯 收藏 所屬分類: OSGi、SOA、SCA