統一、動態的管理系統配置屬性

          每個系統中都會有需要配置的屬性,而通常這些屬性的配置都會是分散式的管理,而且很多時候都是不支持動態,在實現這些屬性的管理(新增、編輯、刪除、保存等)時總是要不斷的做重復的工作,如果框架中能提供一個這樣的基礎設施那么對于系統的配置屬性管理來說就會比較好了,這樣的話系統中所有的屬性配置就可以采用統一的方式進行配置、獲取、管理和動態的更新了,如果能動態的管理系統配置屬性的話,簡單的動態改變系統行為也就自然的可以實現了。
          要實現一個這樣統一的、動態的管理系統配置屬性的功能,首先自然是要提供一個統一的屬性配置管理的服務,通過此服務統一的獲取配置屬性、管理配置屬性、存儲配置屬性,在這些屬性被修改后怎么去通知需要知道屬性修改了的服務呢,這個時候可以用一個典型的事件訂閱/發布的模式來完成,需要訂閱的服務就可以通過實現訂閱的接口來獲取到屬性被修改的通知,自然,訂閱的服務需要告訴那個統一管理屬性的服務,同時還要告訴它你需要訂閱什么主題,這樣的話就只有當你所關心的屬性被修改的情況下才會通知到你,在得到屬性被改動的通知下可以做出相應的反應。
          屬性配置管理的服務的代碼可能會類似如此:

          public ? interface ?ConfigurationAdmin {

          ????????
          public ?Configure?getConfigure(String?topic);

          ????????
          public ? void ?saveOrUpdate(Configure?configure);

          ????????
          public ? void ?remove(Configure?configure);

          ????????
          public ?List?getConfigures();

          ????????
          public ? void ?addHandler(String topic,ConfigurationHandler?handler);

          ????????
          public ? void ?removeHandler(String topic,ConfigurationHandler?handler);

          }
          需要知道屬性變更的那個類看起來可能會類似如此:
          public?class?AdminServiceImpl?implements?AdminService,ConfigurationHandler{

          ??????????????? private ConfigurationAdmin admin;

          ??????????????? public void setAdmin(ConfigurationAdmin admin){
          ???????????????????this.admin=admin;
          ??????????????? }

          ?????????
          public?void?init(){
          ??????????????admin.addHandler(
          "ADMINSERVICE",this);
          ?????????}


          ?????????
          public?void?update(Configure?config){
          ???????????????
          //?屬性變化后做出相應的動作
          ?????????}


          }

          這是統一、動態的管理系統配置屬性的一種簡單的實現方案,而其實系統的配置屬性的管理會比這更復雜很多,象有些時候還需要支持遠程的管理等等,但統一、動態的管理系統配置屬性能給系統帶來很大的好處,甚至可以使得動態的改變系統行為也得到實現。
          如果你想有更好的統一、動態管理系統配置屬性的解決方案,可以參見OSGI R4中的Configuration Admin Service,它除了實現我之前提及的需求以外,還能提供其他更多的功能,象我所說的遠程管理也是支持,在OSGI中使用會稍有不同,但更好用,但無論你是否使用OSGI,參考它來實現自己的一個統一、動態管理系統配置屬性的功能還是可以的......

          posted on 2006-08-24 20:18 BlueDavy 閱讀(3438) 評論(2)  編輯  收藏 所屬分類: 系統設計OSGi、SOA、SCA

          評論

          # re: 統一、動態的管理系統配置屬性 2006-08-25 08:35 Coffee and Tea

          需要考慮線程問題。  回復  更多評論   

          # re: 統一、動態的管理系統配置屬性 2008-06-13 15:03 網站建設

          線程問題,現在早已解決。  回復  更多評論   

          公告

           









          feedsky
          抓蝦
          google reader
          鮮果

          導航

          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          統計

          隨筆分類

          隨筆檔案

          文章檔案

          Blogger's

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 本溪市| 金川县| 阳高县| 当雄县| 安顺市| 怀化市| 古交市| 安丘市| 合川市| 城口县| 临桂县| 民和| 大埔区| 涿州市| 怀远县| 吉林省| 仪征市| 碌曲县| 澎湖县| 富源县| 南澳县| 连江县| 麻阳| 怀化市| 锡林浩特市| 淄博市| 高陵县| 绥宁县| 文安县| 志丹县| 侯马市| 团风县| 玉田县| 河南省| 措美县| 布尔津县| 泰来县| 辽宁省| 炎陵县| 临颍县| 三亚市|