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