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

上传人:Y94****206 文档编号:19555 上传时间:2018-01-12 格式:PDF 页数:10 大小:734.71KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510178676.4

申请日:

2015.04.16

公开号:

CN104778061A

公开日:

2015.07.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/445申请日:20150416|||公开

IPC分类号:

G06F9/445

主分类号:

G06F9/445

申请人:

四川九洲空管科技有限责任公司

发明人:

刘阳; 付燕丽; 何长庚

地址:

621000四川省绵阳市科创园区九洲大道255号

优先权:

专利代理机构:

成都九鼎天元知识产权代理有限公司51214

代理人:

韩雪

PDF下载: PDF下载
内容摘要

本发明提供了一种分布式系统动态参数发布方法。根据当前处于运行状态的软件对动态参数的需求,对当前处于运行状态的软件进行动态参数发布更新。对正在运行的软件进行动态参数发布更新,更新更实时;采用多线程处理方法,业务处理周期更短;能够同时对多台计算机的多个正在运行的软件进行动态参数更新,业务软件处理性能更好;在对正在运行的软件的动态参数进行更新的同时,对软件的运行没有影响,一致性和连续性更好。

权利要求书

1.  一种分布式系统动态参数发布方法,其特征在于:根据当前处于运行状态的软件对动态参数的需求,对当前处于运行状态的软件进行动态参数发布更新。

2.
  根据权利要求1所述的动态参数发布方法,具体方法步骤为:
步骤一、采集需要发布的动态参数;
步骤二、根据待发布动态参数与软件的关联,确定需要动态参数更新的正在运行的相应的软件及地址;
步骤三、将动态参数直接发给确定的软件,或生成更行通知到确定的软件;若是将动态参数直接发给确定的软件则流程结束,若是生成更新通知到确定的软件则进入下一步;
步骤四、处于运行状态中的软件根据收到的通知,根据需要重新申请或加载自身需要的并且已改变的动态参数以使新动态参数生效。

3.
  根据权利要求2所述的动态参数发布方法,所述步骤一到步骤四采用多线程进行实施。

4.
  根据权利要求3所述的动态参数发布方法,所述步骤一和其余步骤作为两个线程进行实施。

5.
  根据权利要求2所述的动态参数发布方法,所述步骤一中,采集需要发布的动态参数的具体方法为:以动态参数维护程序的输出或管理所输入的动态参数,以及维护人员手动改变的动态参数所输入的动态参数,确定已改变并需要发布的动态参数,更新相关动态参数值,以更新后的动态参数值作为需要发布的动态参数待发布。

6.
  根据权利要求1或2所述的动态参数发布方法,所述动态参数采用包装类进行包装,每个动态参数的包装包括参数名、参数值和参数标志量;所述参数标志量具有已改变和未改变两种状态;若需改变参数的值,则将改变参数值后将标志量设置为已改变。

7.
  根据权利要求2所述的动态参数发布方法,所述步骤二中,待发布动态参数与软件的关联方法为:将动态参数根据其意义和使用范围分为不同的类别,每一类动态参数都有其使用者——特定软件;在数据库中存入软件-动态参数的映射表,动态参数维护软件启动时一次加载所有软件与动态参数映射表,在动态参数发布过程中根据动态参数名称从映射表中查到相应的使用软件,从而将待发布参数与系统中各软件关联,形成待发布动态参数-软件映射表,通过查询待发布动态参数-软件映射表得到待发布动态参数与相应软件的映射关系,确定需要动态参数更新的软件。

8.
  根据权利要求2或7所述的动态参数发布方法,所述步骤二中,待发布动态参数与软件的关联方法还包括:将计算机系统中任意软件在启动时都通过登记接口将启动的软件名和计算机IP地址写入计算机系统的数据库,并维持一个在线状态,软件退出或停止时注销自己的登记信息,形成一个正在运行软件与计算机的映射关系表,需要动态参数维护的正在运行的软件在每个发布过程中重新加载所述正在运行软件与计算机的映射关系表,以确定需要动态参数更新的正在运行的软件及地址。

9.
  根据权利要求2所述的动态参数发布方法,所述步骤三中,通过数据库中定义的信息交换表或网络通信机制将通知内容告知特定计算机上的特定软件;基于网络通信机制实现的的通知直接将参数的值添加在通知内容中完成动态参数的更新。

10.
  根据权利要求1或2所述的动态参数发布方法,各软件中将所有需要的动态参数值放在一个类中维护,提供更新和获取接口,软件内所有用到动态参数的地方都通过参数获取接口获取;各软件在获取通知内容后,根据通知内容中的待更新参数名,通过参数更新接口更新相应的参数;参数更新后,在软件的下一个处理周期里通过参数获取接口获得的动态参数具有最新的值,新参数生效。

说明书

一种分布式系统动态参数发布方法
技术领域
本发明涉及一种分布式系统动态参数发布方法,特别是涉及一种适用于网络通信的分布式系统动态参数发布方法。
背景技术
分布式系统(distributed system)是建立在网络之上的软件系统。因为软件的特性,所以分布式系统具有高度的内聚性和透明性。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,用户不知道当前使用的数据库是本地的还是远端的。
系统倾向于分布式发展潮流的真正驱动力是经济。上世纪,计算机权威和评论家Herb Grosch指出CPU的计算能力与它的价格的平方成正比,后来成为Grosch定理。也就是说如果付出两倍的价钱,就能获得四倍的性能。这一论断与当时的大型机技术非常吻合,因而使得许多机构都尽其所能购买最大的单个大型机。
随着微处理机技术的发展,Grosch定理不再适用了。现在的CPU芯片每秒钟执行的指令比20世纪80年代最大的大型机的处理机每秒钟所执行的指令还多。如果你愿意付出两倍的价钱,将得到同样的CPU,但它却以更高的时钟频率运行。因此,最节约成本的办法通常是在一个系统中使用集中在一起的大量的廉价CPU。所以,倾向于分布式系统的主要原因是它可以潜在地得到比单个的大型集中式系统好得多的性价比。实际上,分布式系统是通过较低廉的价格来实现相似的性能的。
建立分布式系统的另一原因在于一些应用本身是分布式的。如一个超级市场连锁店可能有许多分店,每个商店都需要采购当地生产的商品(可能来自本地的农场)、进行本地销售,或者要对本地的哪些蔬菜因时间太长或已经腐烂而必须扔掉作出决定。因此,每个商店的本地计算机能明了存货清单是有意义的,而不是集中于公司总部。毕竟,大多数查询和更新都是在本地进行的。然而,连锁超级市场的高层管理者也会不时地想要了解他们目前还有多少甘蓝。实现这一目标的一种途径就是将整个系统建设成对于应用程序来说就像一台计算机一样,但是在实现上它是分布的,像我们前面所描述的一个商店有一台机器。这就是一个商业分布式系统。
随着分布式系统的业务和功能的复杂化,分布式系统的运行中需要用到的参数也变得多而复杂。这些参数通常用来确保系统正常运行或使系统运行的输出结果的误差在可接受的范围内。系统运行所需的参数根据其值在系统运行中是可能改变分为静态参数和动态参数。
静态参数指软件系统中的不可变参数,一般在系统启动前就已经确定,系统启动后不允许改变。
动态参数指软件系统中的可变参数,参数的值会随着相关因素的改变而改变,因而在系统运行过程中需要对可变参数进行维护。在分布式系统中,可根据维护方式的不同将动态参数分为自动维护动态参数和手动维护动态参数两类。自动维护动态参数一般由软件程序在处理过程中维护,平均更新周期较短;手动维护动态参数需要维护人员根据实际情况和业务需要进行设置,平均更新周期较长。自动维护动态参数在必要时也可以由相关人员进行手动更改。
动态参数的发布即在动态参数发生改变后,使其新的值在分布式系统各软件模块中生效的过程。
对于自动维护动态参数,需要各软件在每个处理周期计算一次或通过相应接口申请一次,以保证使用的参数符合系统设计的要求;实际情况下,在业务软件的一个处理周期里,动态参数不一定发生改变,频繁的计算或申请所需的所有动态参数会增加业务处理周期,影响业务软件处理的性能。
对于手动维护动态参数,一般需要手动设置;如果参数需要同时适用于系统中的多个软件,需要逐个设置或重启相应的软件,前者使得参数变化过程中系统中各软件的处理结果的一致性变差,后者影响软件和系统运行的连续性。
发明内容
本发明要解决的技术问题是提供一种发布更实时,降低业务处理周期,提高业务软件处理性能,一致性和连续性更好的分布式系统动态参数发布方法。
本发明采用的技术方案如下:一种分布式系统动态参数发布方法,其特征在于:根据当前处于运行状态的软件对动态参数的需求,对当前处于运行状态的软件进行动态参数发布更新。
作为优选,具体方法步骤为:
步骤一、采集需要发布的动态参数;
步骤二、根据待发布动态参数与软件的关联,确定需要动态参数更新的正在运行的相应的软件及地址;
步骤三、将动态参数直接发给确定的软件,或生成更行通知到确定的软件;若是将动态参数直接发给确定的软件则流程结束,若是生成更新通知到确定的软件则进入下一步;
步骤四、处于运行状态中的软件根据收到的通知,根据需要重新申请或加载自身需要的并且已改变的动态参数以使新动态参数生效。
作为优选,所述步骤一到步骤四采用多线程进行实施。
作为优选,所述步骤一和其余步骤作为两个线程进行实施。
作为优选,所述步骤一中,采集需要发布的动态参数的具体方法为:以动态参数维护程序的输出或管理所输入的动态参数,以及维护人员手动改变的动态参数所输入的动态参数,确定已改变并需要发布的动态参数,更新相关动态参数值,以更新后的动态参数值作为需要发布的动态参数待发布。
作为优选,所述动态参数采用包装类进行包装,每个动态参数的包装包括参数名、参数值和参数标志量;所述参数标志量具有已改变和未改变两种状态;若需改变参数的值,则将改变参数值后将标志量设置为已改变。
作为优选,所述步骤二中,待发布动态参数与软件的关联方法为:将动态参数根据其意义和使用范围分为不同的类别,每一类动态参数都有其使用者——特定软件;在数据库中存入软件-动态参数的映射表,动态参数维护软件启动时一次加载所有软件与动态参数映射表,在动态参数发布过程中根据动态参数名称从映射表中查到相应的使用软件,从而将待发布参数与系统中各软件关联,形成待发布动态参数-软件映射表,通过查询待发布动态参数-软件映射表得到待发布动态参数与相应软件的映射关系,确定需要动态参数更新的软件。
作为优选,所述步骤二中,待发布动态参数与软件的关联方法还包括:将计算机系统中任意软件在启动时都通过登记接口将启动的软件名和计算机IP地址写入计算机系统的数据库,并维持一个在线状态,软件退出或停止时注销自己的登记信息,形成一个正在运行软件与计算机的映射关系表,需要动态参数维护的正在运行的软件在每个发布过程中重新加载所述正在运行软件与计算机的映射关系表,以确定需要动态参数更新的正在运行的软件及地址。
作为优选,所述步骤三中,通过数据库中定义的信息交换表或网络通信机制将通知内容告知特定计算机上的特定软件;基于网络通信机制实现的的通知直接将参数的值添加在通知内容中完成动态参数的更新。
作为优选,各软件中将所有需要的动态参数值放在一个类中维护,提供更新和获取接口,软件内所有用到动态参数的地方都通过参数获取接口获取;各软件在获取通知内容后,根据通知内容中的待更新参数名,通过参数更新接口更新相应的参数;参数更新后,在软件的下一个处理周期里通过参数获取接口获得的动态参数具有最新的值,新参数生效。
与现有技术相比,本发明的有益效果是:对正在运行的软件进行动态参数发布更新,更新更实时;采用多线程处理方法,业务处理周期更短;能够同时对多台计算机的多个正在运行的软件进行动态参数更新,业务软件处理性能更好;在对正在运行的软件的动态参数进行更新的同时,对软件的运行没有影响,一致性和连续性更好。
附图说明
图1为本发明其中一实施例的原理示意图。
图2为本发明其中一实施例的并行生产者-消费者实现方式示意图。
图3为本发明其中一实施例的并行+双重生产者-消费者实现方式示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
一种分布式系统动态参数发布方法,根据当前处于运行状态的软件对动态参数的需求,对当前处于运行状态的软件进行动态参数发布更新,更新更实时,解决了现有技术中只有软件升级更新时才能对相应动态参数进行更新的延迟性问题。
在本具体实施例中,如图1所示,具体方法步骤为:
步骤一、采集需要发布的动态参数;
步骤二、根据待发布动态参数与软件的关联,确定需要动态参数更新的正在运行的相应的软件及地址;
步骤三、将动态参数直接发给确定的软件,或生成更行通知到确定的软件;若是将动态参数直接发给确定的软件则流程结束,若是生成更新通知到确定的软件则进入下一步;
步骤四、处于运行状态中的软件根据收到的通知,根据需要重新申请或加载自身需要的并且已改变的动态参数以使新动态参数生效。
在本具体实施例中,所述步骤一中,采集需要发布的动态参数的具体方法为:以动态参数维护程序的输出或管理所输入的动态参数,以及维护人员手动改变的动态参数所输入的动态参数,确定已改变并需要发布的动态参数,更新相关动态参数值,以更新后的动态参数值作为需要发布的动态参数待发布。
根据系统中当前处于运行状态的软件对参数的需求确定要更新参数的软件及其运行的计算机平台的地址,通知相应的软件重新申请参数或通过网络通信将参数直接发给相应的软件;处于运行状态中的软件根据收到的通知重新申请或加载自身需要的并且已改变的参数以使新参数生效。
所述步骤一到步骤四采用多线程进行实施以充分利用CPU提高实时性,降低处理周期。在本具体实施例中,所述步骤一和其余步骤作为两个线程进行实施,采用生产者-消费者模式进行组织,如图2所示,确定待发布参数的线程作为生产者输出待发布参数集合到缓存,发布线程从缓存获取待发布参数,更新到数据库并通知相应的软件更新参数。
在本具体实施例中,所述动态参数采用包装类进行包装,每个动态参数的包装包括参数名、参数值和参数标志量;所述参数标志量具有已改变和未改变两种状态;若需改变参数的值,则将改变参数值后将标志量设置为已改变。对于自动维护动态参数,自动维护程序在综合影响该参数的因素后,若需改变参数的值,则在改变参数值后将标志量设置为已改变。对于手动维护动态参数,由动态参数维护软件提供维护界面,维护人员编辑过的参数的标志量设置为已改变。在参数发布过程初,程序检查所有参数的状态,将已改变的参数添加到待发布参数集合。如果是由维护人员操作的发布过程,则将维护人员选择的要发布的参数添加到待发布集合。用于确定待发布参数的线程作为生产者-消费者模式中的生产者,每个检查周期结束后将待发布参数的集合存入一个待发布参数仓库——一个支持多线程存取的存储区,消费者线程——参数发布线程每个处理周期开始时从仓库中取走一个集合。
分布式系统内的参数一般存储在分布式数据库(由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库)或分布式文件系统(具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取)中,参数版本的更新即根据参数的存储地址,将新的参数更新到相应的数据库节点或文件系统节点中,这个过程是通过数据库驱动或远程文件存取接口实现的。参数的更新一般作为一个消费者程序处理周期的一个环节。
所述步骤二中,待发布动态参数与软件的关联方法为:将动态参数根据其意义和使用范围分为不同的类别,每一类动态参数都有其使用者——特定软件;在软件系统开发完成后,软件名称与软件中使用的动态参数类别形成一种固定的映射关系,除了软件升级,映射关系一般不发生变化。在数据库中存入软件-动态参数的映射表,由于一个软件可以有多个动态参数,系统的一个动态参数也可以同时被多个软件使用,映射关系为多对多。由于映射关系的不变性,可以直接存储在数据库或文件系统中,动态参数维护软件启动时一次加载所有软件与动态参数映射表,在动态参数发布过程中根据动态参数名称从映射表中查到相应的使用软件,从而将待发布参数与系统中各软件关联,形成待发布动态参数-软件映射表,通过查询待发布动态参数-软件映射表得到待发布动态参数与相应软件的映射关系,确定需要动态参数更新的软件。
在分布式系统中,可以多个计算机上运行同样的软件;同时,只有处在运行状态中的软件才需要更新动态参数。将计算机系统中任意软件在启动时都通过登记接口将启动的软件名和计算机IP地址写入计算机系统的数据库,并维持一个在线状态,软件退出或停止时注销自己的登记信息,由于一台计算机上可能运行多个软件,形成一个正在运行软件与计算机的映射关系表,需要动态参数维护的正在运行的软件在每个发布过程中重新加载所述正在运行软件与计算机的映射关系表,以确定需要动态参数更新的正在运行的软件及地址。由于该映射关系表是动态的,需要在每个发布过程中重新加载正在运行软件与计算机的映射关系表。在本具体实施例中,正在运行软件与计算机的映射关系是由单独的线程来维护的,映射表可以被其他程序——参数发布线程访问,但不允许维护线程以外的程序进行修改。
通过正在运行软件与计算机的映射关系结合待发布参数与软件的关联关系,可以得到各计算机-软件-待发布参数两级映射表。通知地址由软件-计算机的映射关系决定,包含IP地址和软件名(或固定端口)。通知内容由地址中的软件与待发布参数的映射关系决定,包含该软件应更新的参数名。最后形成通知地址-通知内容映射关系。通知地址-通知内容映射,在待发布参数-软件和软件-计算机两个映射表在后只需进行有序的查询和基于固定规则的组合,作为参数发布线程处理周期的一部分实现。
各软件中将所有需要的动态参数值放在一个类中维护,提供更新和获取接口,软件内所有用到动态参数的地方都通过参数获取接口获取;各软件在获取通知内容后,根据通知内容中的待更新参数名,通过参数更新接口更新相应的参数;参数更新后,在软件的下一个处理周期里通过参数获取接口获得的动态参数具有最新的值,新参数生效。
在更新时写数据性能较低而更新频率较高的使用环境中,可以使用单独的线程来实现参数的更新,这种情况下更新线程和消费者程序都要使用待发布参数仓库中的数据,需要同时建两个仓库提供待发布参数集分别供更新程序和发布程序使用,如图2所示。在参数较多、存储参数和发送参数性能都相对不足时,可使用双重生产者-消费者模式,如图3所示,将通知发布前的过程作为预处理线程的处理过程,将通知过程作为通知线程的处理过程;预处理线程作为确定待发布参数线程对应的消费者,同时也作为通知线程对应的生产者。
通过本发明的实施方式:
(1)便于动态参数的检查和维护。实现该技术方案后,分布式系统的动态参数可以由一个统一的参数维护软件来维护,维护人员在一台计算机上就可以知道系统中各软件动态参数的当前值,可以在一台计算机上维护各软件的动态值,发布即实时在所有处于运行状态的软件中生效。
(2)保持参数更新过程中软件的持续运行。新旧参数交替的过渡对各软件的使用者而言是透明的,各软件用户在使用过程中无须重启软件。
(3)增强软件的性能。各软件无须在每个处理过程中重新计算或重新获取动态参数值,减少每个业务处理过程的时间消耗,尤其适用于对软件性能要求较高的业务。

一种分布式系统动态参数发布方法.pdf_第1页
第1页 / 共10页
一种分布式系统动态参数发布方法.pdf_第2页
第2页 / 共10页
一种分布式系统动态参数发布方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《一种分布式系统动态参数发布方法.pdf》由会员分享,可在线阅读,更多相关《一种分布式系统动态参数发布方法.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明提供了一种分布式系统动态参数发布方法。根据当前处于运行状态的软件对动态参数的需求,对当前处于运行状态的软件进行动态参数发布更新。对正在运行的软件进行动态参数发布更新,更新更实时;采用多线程处理方法,业务处理周期更短;能够同时对多台计算机的多个正在运行的软件进行动态参数更新,业务软件处理性能更好;在对正在运行的软件的动态参数进行更新的同时,对软件的运行没有影响,一致性和连续性更好。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1