统一、动态的管理系统配置属性

每个系统中都会有需要配置的属性,而通常这些属性的配置都会是分散式的管理,而且很多时候都是不支持动态,在实现这些属性的管理(新增、编辑、删除、保存等)时总是要不断的做重复的工作,如果框架中能提供一个这样的基础设施那么对于系统的配置属性管理来说就会比较好了,这样的话系统中所有的属性配置就可以采用统一的方式进行配置、获取、管理和动态的更新了,如果能动态的管理系统配置属性的话,简单的动态改变系统行为也就自然的可以实现了。
要实现一个这样统一的、动态的管理系统配置属性的功能,首先自然是要提供一个统一的属性配置管理的服务,通过此服务统一的获取配置属性、管理配置属性、存储配置属性,在这些属性被修改后怎么去通知需要知道属性修改了的服务呢,这个时候可以用一个典型的事件订阅/发布的模式来完成,需要订阅的服务就可以通过实现订阅的接口来获取到属性被修改的通知,自然,订阅的服务需要告诉那个统一管理属性的服务,同时还要告诉它你需要订阅什么主题,这样的话就只有当你所关心的属性被修改的情况下才会通知到你,在得到属性被改动的通知下可以做出相应的反应。
属性配置管理的服务的代码可能会类似如此:

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 阅读(3416) 评论(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

搜索

最新评论

阅读排行榜

评论排行榜