Spring Beans、Plugin體系結(jié)構(gòu)與SCA規(guī)范的相似性
BlueDavy的關(guān)于Plugin Framework的關(guān)鍵因素 提到了幾點1、?? Plugin的編寫?
?????????一個好的Plugin System對Plugin沒有任何編碼上的要求,要求的只是其描述文件的編寫
2、?? Plugin的部署?
?????????如何更加方便的去部署一個Plugin,考慮中根據(jù)配置從相應(yīng)的目錄或網(wǎng)站搜索Plugin并注冊到系統(tǒng)中
3、?? Plugin的調(diào)用?
?????????根據(jù)Plugin的描述采取相應(yīng)的方式調(diào)用Plugin,例如webservice方式、socket方式等等
4、?? Plugin的交互?
?????????也許可以參考Maven的方式,比如需要調(diào)用其他的plugin,則采用類似這樣的配置或調(diào)用<attain plugin=”pluginname” function=”sendmail”/>抑或采用IoC容器注入依賴??
5、?? Plugin的擴(kuò)展?
?????????對于Plugin的擴(kuò)展,這個Eclipse的擴(kuò)展點完全值得參考
6、?? Plugin的依賴關(guān)系的分析?????????
?????????這是我構(gòu)思中的一個東西,希望系統(tǒng)所有的模塊都基于此Plugin Framework,然后我們可以根據(jù)這些模塊Plugin來分析整個系統(tǒng)中各模塊的依賴關(guān)系等等,并進(jìn)行監(jiān)控,甚至在將來可以圖形化的進(jìn)行配置,圖形化搭積木式的搭建自己的系統(tǒng),^_^
我發(fā)現(xiàn),這個插件體系結(jié)構(gòu),和SOA中的SCA體系結(jié)構(gòu),還有Spring中的Beans工廠,有很多相似之處的,如下:
1.???SCA的編寫:
?????????需要繼承SCA的接口。不過,我倒是更加喜歡spring的方式,使用bean來配置一套系統(tǒng),對每個bean沒有編碼限制
2.???SCA的部署
?????????使用scdl.xml進(jìn)行部署描述。如果scdl.xml存在于網(wǎng)絡(luò)中,是否能部署成功這個倒是不清楚。spring中直接使用xml描述,主要是各個Beans的配置
3.???SCA的調(diào)用
?????????使用binding進(jìn)行組合調(diào)用,現(xiàn)在支持的有SCA Binding、WebService Binding等等。spring中使用屬性注入和構(gòu)造器注入
4.???SCA的交互
??????使用import/export來暴露具體的接口,然后進(jìn)行調(diào)用。直接使用IOC,注入依賴,相互交互是依靠使用預(yù)定義接口,實現(xiàn)契約。
5.???SCA的擴(kuò)展
??????可以使用繼承來修改原來的模塊,并在運行時通過替換SCA模塊達(dá)到目的。Plugin的擴(kuò)展點(Extension Point)的概念到時值得仔細(xì)考慮,非常靈活的。Spring中,通過修改配置文件,使用不同的beans來擴(kuò)展原有系統(tǒng)。
6、?SCA的依賴關(guān)系
??????好像現(xiàn)在ESB中還沒有Service Register的實現(xiàn),其實,分析SCA的配置文件,是可以找到這些依賴的。本來就是一個總線結(jié)構(gòu)的啊。spring中beans工廠的配置文件現(xiàn)在倒是有很多基于eclipse的實現(xiàn)。
??????先寫這幾條,這幾天在仔細(xì)研究這些技術(shù)
posted on 2006-06-12 11:02 綠色使者、綠色心情 閱讀(611) 評論(2) 編輯 收藏 所屬分類: eclipse 相關(guān) 、soa team