一种分布式系统动态参数发布方法

文档序号:8457160阅读:533来源:国知局
一种分布式系统动态参数发布方法
【技术领域】
[0001]本发明涉及一种分布式系统动态参数发布方法,特别是涉及一种适用于网络通信的分布式系统动态参数发布方法。
【背景技术】
[0002]分布式系统(distributed system)是建立在网络之上的软件系统。因为软件的特性,所以分布式系统具有高度的内聚性和透明性。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,用户不知道当前使用的数据库是本地的还是远端的。
[0003]系统倾向于分布式发展潮流的真正驱动力是经济。上世纪,计算机权威和评论家Herb Grosch指出CPU的计算能力与它的价格的平方成正比,后来成为Grosch定理。也就是说如果付出两倍的价钱,就能获得四倍的性能。这一论断与当时的大型机技术非常吻合,因而使得许多机构都尽其所能购买最大的单个大型机。
[0004]随着微处理机技术的发展,Grosch定理不再适用了。现在的CPU芯片每秒钟执行的指令比20世纪80年代最大的大型机的处理机每秒钟所执行的指令还多。如果你愿意付出两倍的价钱,将得到同样的CPU,但它却以更高的时钟频率运行。因此,最节约成本的办法通常是在一个系统中使用集中在一起的大量的廉价CPU。所以,倾向于分布式系统的主要原因是它可以潜在地得到比单个的大型集中式系统好得多的性价比。实际上,分布式系统是通过较低廉的价格来实现相似的性能的。
[0005]建立分布式系统的另一原因在于一些应用本身是分布式的。如一个超级市场连锁店可能有许多分店,每个商店都需要采购当地生产的商品(可能来自本地的农场)、进行本地销售,或者要对本地的哪些蔬菜因时间太长或已经腐烂而必须扔掉作出决定。因此,每个商店的本地计算机能明了存货清单是有意义的,而不是集中于公司总部。毕竟,大多数查询和更新都是在本地进行的。然而,连锁超级市场的高层管理者也会不时地想要了解他们目前还有多少甘蓝。实现这一目标的一种途径就是将整个系统建设成对于应用程序来说就像一台计算机一样,但是在实现上它是分布的,像我们前面所描述的一个商店有一台机器。这就是一个商业分布式系统。
[0006]随着分布式系统的业务和功能的复杂化,分布式系统的运行中需要用到的参数也变得多而复杂。这些参数通常用来确保系统正常运行或使系统运行的输出结果的误差在可接受的范围内。系统运行所需的参数根据其值在系统运行中是可能改变分为静态参数和动态参数。
[0007]静态参数指软件系统中的不可变参数,一般在系统启动前就已经确定,系统启动后不允许改变。
[0008]动态参数指软件系统中的可变参数,参数的值会随着相关因素的改变而改变,因而在系统运行过程中需要对可变参数进行维护。在分布式系统中,可根据维护方式的不同将动态参数分为自动维护动态参数和手动维护动态参数两类。自动维护动态参数一般由软件程序在处理过程中维护,平均更新周期较短;手动维护动态参数需要维护人员根据实际情况和业务需要进行设置,平均更新周期较长。自动维护动态参数在必要时也可以由相关人员进行手动更改。
[0009]动态参数的发布即在动态参数发生改变后,使其新的值在分布式系统各软件模块中生效的过程。
[0010]对于自动维护动态参数,需要各软件在每个处理周期计算一次或通过相应接口申请一次,以保证使用的参数符合系统设计的要求;实际情况下,在业务软件的一个处理周期里,动态参数不一定发生改变,频繁的计算或申请所需的所有动态参数会增加业务处理周期,影响业务软件处理的性能。
[0011]对于手动维护动态参数,一般需要手动设置;如果参数需要同时适用于系统中的多个软件,需要逐个设置或重启相应的软件,前者使得参数变化过程中系统中各软件的处理结果的一致性变差,后者影响软件和系统运行的连续性。

【发明内容】

[0012]本发明要解决的技术问题是提供一种发布更实时,降低业务处理周期,提高业务软件处理性能,一致性和连续性更好的分布式系统动态参数发布方法。
[0013]本发明采用的技术方案如下:一种分布式系统动态参数发布方法,其特征在于:根据当前处于运行状态的软件对动态参数的需求,对当前处于运行状态的软件进行动态参数发布更新。
[0014]作为优选,具体方法步骤为:
步骤一、采集需要发布的动态参数;
步骤二、根据待发布动态参数与软件的关联,确定需要动态参数更新的正在运行的相应的软件及地址;
步骤三、将动态参数直接发给确定的软件,或生成更行通知到确定的软件;若是将动态参数直接发给确定的软件则流程结束,若是生成更新通知到确定的软件则进入下一步;步骤四、处于运行状态中的软件根据收到的通知,根据需要重新申请或加载自身需要的并且已改变的动态参数以使新动态参数生效。
[0015]作为优选,所述步骤一到步骤四采用多线程进行实施。
[0016]作为优选,所述步骤一和其余步骤作为两个线程进行实施。
[0017]作为优选,所述步骤一中,采集需要发布的动态参数的具体方法为:以动态参数维护程序的输出或管理所输入的动态参数,以及维护人员手动改变的动态参数所输入的动态参数,确定已改变并需要发布的动态参数,更新相关动态参数值,以更新后的动态参数值作为需要发布的动态参数待发布。
[0018]作为优选,所述动态参数采用包装类进行包装,每个动态参数的包装包括参数名、参数值和参数标志量;所述参数标志量具有已改变和未改变两种状态;若需改变参数的值,则将改变参数值后将标志量设置为已改变。
[0019]作为优选,所述步骤二中,待发布动态参数与软件的关联方法为:将动态参数根据其意义和使用范围分为不同的类别,每一类动态参数都有其使用者一一特定软件;在数据库中存入软件-动态参数的映射表,动态参数维护软件启动时一次加载所有软件与动态参数映射表,在动态参数发布过程中根据动态参数名称从映射表中查到相应的使用软件,从而将待发布参数与系统中各软件关联,形成待发布动态参数-软件映射表,通过查询待发布动态参数-软件映射表得到待发布动态参数与相应软件的映射关系,确定需要动态参数更新的软件。
[0020]作为优选,所述步骤二中,待发布动态参数与软件的关联方法还包括:将计算机系统中任意软件在启动时都通过登记接口将启动的软件名和计算机IP地址写入计算机系统的数据库,并维持一个在线状态,软件退出或停止时注销自己的登记信息,形成一个正在运行软件与计算机的映射关系表,需要动态参数维护的正在运行的软件在每个发布过程中重新加载所述正在运行软件与计算机的映射关系表,以确定需要动态参数更新的正在运行的软件及地址。
[0021]作为优选,所述步骤三中,通过数据库中定义的信息交换表或网络通信机制将通知内容告知特定计算机上的特定软件;基于网络通信机制实现的的通知直接将参数的值添加在通知内容中完成动态参数的更新。
[0022]作为优选,各软件中将所有需要的动态参数值放在一个类中维护,提供更新和获取接口,软件内所有用到动态参数的地方都通过参数获取接口获取;各软件在获取通知内容后,根据通知内容中的待更新参数名,通过参数更新接口更新相应的参数;参数更新后,在软件的下一个处理周期里通过参数获取接口获得的动态参数具有最新的值,新参数生效。
[0023]与现有技术相比,本发明的有益效果是:对正在运行的软件进行动态参数发布更新,更新更实时;采用多线程处理方法,业务处理周期更短;能够同时对多台计算机的多个正在运行的软件进行动态参数更新,业务软件处理性能更好;在对正在运行的软件的动态参数进行更新的同时,对软件的运行没有影响,一致性和连续性更好。
【附图说明】
[0024]图1为本发明其中一实施例的原理示意图。
[0025]图2为本发明其中一实施例的并行生产者-消费者实现方式示意图。
[0026]图3为本发明其中一实施例的并行+双重生产者-消费者实现方式示意图。
【具体实施方式】
[0027]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0028]本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0029]一种分布式系统动态参数发布方法,根据当前处于运行状态的软件对动态参数的需求,对当前处于运行状态的软件进行动态参数发布更新,更新更实时,解决了现有技术中只有软件升级更新时才能对相应动态参数进行更新的延迟性问题。
[0030]在本具体实施例中,如图1所示,具体方法步骤为: 步骤一、采集需要发布的动态参数;
步骤二、根据待发布动态参数与软件的关联,确定需要动态参数更新的正在运行的相应的软件及地址;
步骤三、将动态参数直接发给确定的软件,或生成更行通知到确定的软件;若是将动态参数直接发给确定的软件则流程结束,若是生成更新通知到确定的软件则进入下一步;步骤四、处于运行状态中的软件根据收到的通知,根据需要重新申请或加载自身需要的并且已改变的动态参数以使新动态参数生效。
[0031 ] 在本具体实施例中,所述步骤一中,采集需要发布的动态参数的具体方法为:以动态参数维护程序的输出或管理所输入的动态参数,以及维护人员手动改变的动态参数所输入的动态参数,确定已改变并需要发布的动态参数,更新相关动态参数值,以更新后的动态参数值作为需要发布的动态参数待发布。
[0032]根据系统中当前处于运行状态的软件对参数的需求确定要更新参数的软件及其运行的计算机平台的地址,通知相应的软件重新申请参数或通过网络通信将参数直接发给相应的软件;处于运行状态中的软件根据收到的通知重新申请或加载自身需要的并且已改变的参数以使新参数生效。
[0033]所述步骤一到步骤四采用多
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1