一种参数配置方法和装置与流程

文档序号:12946628阅读:163来源:国知局
一种参数配置方法和装置与流程

本发明涉及通讯技术和互联网技术领域,具体涉及一种参数配置方法和装置。



背景技术:

随着通信技术和互联网技术的不断发展,系统的功能越来越多,也越来越完善,为了实现更多的功能,需要的参数配置也越来越多。尤其是面向服务的体系架构(soa)的流行,更是需要进行更多的参数配置。

当系统程序在运行时候,需要动态地得到用户定义的配置参数来控制程序正确运行。因此,如何高效地使用参数配置,如何使得参数配置修改能及时生效,就显得至关重要了。

参数配置的技术方案是:系统在启动的时候,一次性的将参数配置从配置文件,数据库等存储区域读取出来存储在内存中,然后在系统运行时,再根据需要从内存中读取某个配置项的配置参数来使用。如果用户在系统程序运行时,修改了配置文件、数据库中的配置参数,为了参数配置修改生效必须重启整个系统,需要重启整个系统,再进行一次从配置文件、数据库等存储区域读取配置参数,存进内存的过程。这样做的风险和代价会很大,一方面重启整个系统可能会引起系统某些故障,另一方面重启整个系统可能会导致某些数据丢失,这对商用系统来说是致命的。

为了使得参数配置修改能及时生效,传统方法有两种:一种是采用定时器,定时获取配置文件、数据库等存储区域的配置参数,利用这些信息将内存中的配置参数刷新一遍。缺点是实时性与定时器周期相关,定时器周期越长实时性越差。定时器周期越短,实时性虽然越好,却会增加系统负担。另一种方式是直接从配置文件、数据库等存储区域读取配置参数。比如配置参数在文件中,则每次需要使用配置参数时候访问该配置文件,读取配置文件中的参数配置的值。比如参数配置在数据库中,则每次需要使用参数配置时候访问数据库,读 取数据库中的配置参数。这种方法虽然实时性较好,但是系统负担较大,性能降低,运行缓慢。

所以,如何使得参数配置修改后即时生效,且生效方法简单易用、安全可靠是现有技术中急需解决的问题。



技术实现要素:

本发明要解决的主要技术问题是,提供一种参数配置方法和装置,解决现有技术中系统不能及时获知配置参数是否被修改,且配置参数修改生效方法复杂、浪费系统资源的问题。

为解决上述技术问题,本发明提供一种参数配置方法,包括:

利用配置参数刷新接口获取配置参数刷新请求;

在获取到配置参数刷新请求后,利用配置参数刷新接口获取与配置参数刷新请求对应的配置信息,以与配置参数刷新请求对应的配置信息更新内存中的配置信息。

进一步地,配置信息包括程序启动或运行时需要使用的配置信息。

进一步地,在利用配置参数刷新接口获取与配置参数刷新请求对应的配置信息前,还包括,根据配置参数刷新请求的发送方的身份对配置参数刷新请求进行安全认证,若安全认证通过,则获取与配置参数刷新请求对应的配置信息,否,则不获取。

进一步地,配置参数刷新接口包括:独立于实现配置参数刷新服务的硬件平台、操作系统和编程语言的接口。

进一步地,配置参数刷新接口具体包括:表述性状态传递接口或网络服务接口。

进一步地,配置信息包括配置参数的键名和键值,利用配置参数刷新接口获取与配置参数刷新请求对应的配置信息,以与配置参数刷新请求对应的配置信息更新内存中的配置信息包括:利用配置参数刷新接口获取与配置参数刷新请求对应的配置参数的键名和键值,删除内存中对应于键名的配置参数,写入获取的配置参数。

进一步地,配置参数刷新请求包括:不包含配置参数的请求;或者,包含待更新的配置参数的键名的请求;或者,包含待更新的配置参数的键名和键值的请求;

当配置参数刷新请求不包含配置参数时,利用配置参数刷新接口获取与配置参数刷新请求对应的配置参数的键名和键值,删除内存中对应于键名的配置参数,写入获取的配置参数包括:利用配置参数刷新接口获取存储于原始存储介质中的配置参数的键名和键值,删除内存中的配置参数的键名和键值,写入获取的配置参数的键名和键值;

当配置参数刷新请求包含待更新的配置参数的键名时,利用配置参数刷新接口获取与配置参数刷新请求对应的配置参数的键名和键值,删除内存中对应于键名的配置参数,写入获取的配置参数包括:利用配置参数刷新接口从原始存储介质中,获取与配置参数刷新请求中的键名对应的键值,删除内存中与配置参数刷新请求中的键名对应的配置参数,写入获取的配置参数的键名和键值;

当配置参数刷新请求包含待更新的配置参数的键名与键值时,利用配置参数刷新接口获取与配置参数刷新请求对应的配置参数的键名和键值,删除内存中对应于键名的配置参数,写入获取的配置参数包括:删除内存中与配置参数刷新请求中的键名对应的配置参数,将配置参数刷新请求中的配置参数写入内存中。

为解决上述的技术问题,本发明还提供一种参数配置装置,包括,获取模块和配置参数刷新模块;

获取模块用于利用配置参数刷新接口获取配置参数刷新请求;

配置参数刷新模块用于在获取到配置参数刷新请求后,利用配置参数刷新接口获取与配置参数刷新请求对应的配置信息,以与配置参数刷新请求对应的配置信息更新内存中的配置信息。

进一步地,配置信息包括程序启动或运行时需要使用的配置信息。

进一步地,还包括:安全认证模块,用于在配置参数刷新模块获取与配置参数刷新请求对应的配置信息前,根据配置参数刷新请求的发送方的身份对配置参数刷新请求进行安全认证;若安全认证通过,则配置参数刷新模块获取与配置参数刷新请求对应的配置信息,否,则不获取。

进一步地,配置参数刷新接口包括:独立于实现配置参数刷新服务的硬件 平台、操作系统和编程语言的接口。

进一步地,配置参数刷新接口具体包括:表述性状态传递接口或网络服务接口。

进一步地,配置信息包括配置参数的键名和键值,配置参数刷新模块用于在获取到配置参数刷新请求后,利用配置参数刷新接口获取与配置参数刷新请求对应的配置参数的键名和键值,删除内存中对应于键名的配置参数,写入获取的配置参数。

进一步地,获取模块获取的配置参数刷新请求包括:不包含配置参数的请求;或者,包含待更新的配置参数的键名的请求;或者,包含待更新的配置参数的键名与键值的请求;

第一刷新子模块用于,当配置参数刷新请求不包含配置参数时,利用配置参数刷新接口获取存储于原始存储介质中的配置参数的键名和键值,删除内存中的配置参数的键名和键值,写入获取的配置参数的键值和键名;

第二刷新子模块用于,当配置参数刷新请求包含待更新的配置参数的键名时,利用配置参数刷新接口从原始存储介质中,获取与配置参数刷新请求中的键名对应的键值,删除内存中与配置参数刷新请求中的键名对应的配置参数,写入获取的配置参数的键名和键值;

第三刷新子模块用于,当配置参数刷新请求包含待更新的配置参数的键名与键值时,删除内存中与配置参数刷新请求中的键名对应的配置参数,将配置参数刷新请求中的配置参数写入内存中。

有益效果:

采用本发明的参数配置方法,可以利用配置参数刷新接口获取配置参数刷新请求,确定何时需要进行配置参数的刷新,在获取该请求之后,可以利用配置参数刷新接口获取与该请求对应的配置信息,以此配置信息更新内存中的配置信息。本发明的方法可以根据配置参数刷新请求快速地得知配置参数已修改然后刷新内存中的配置信息,具有简单易用,安全可靠,能确保配置信息修改及时生效,提高系统的性能的优点。

附图说明

图1为本发明实施例一提供的一种参数配置方法的流程图;

图2为本发明实施例二提供的一种参数配置方法的细化流程图;

图3为本发明实施例三提供的一种参数配置装置的模块示意图;

图4为本发明实施例三提供的另一种参数配置装置的模块示意图。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。

实施例一:

本实施例提出了一种参数配置方法,该参数配置方法可以适用于任何应用程序的参数配置,尤其适用于面向服务的体系架构(soa)的分布式企业应用的参数配置。利用本实施例的参数配置方法可以确定何时需要进行参数配置刷新,然后实现配置参数的刷新,以便系统的参数配置更新能及时生效。

参见图1,本实施例的参数配置方法的过程如下:

s101、利用配置参数刷新接口获取配置参数刷新请求;

s102、在获取到配置参数刷新请求后,利用配置参数刷新接口获取与配置参数刷新请求对应的配置信息,以与配置参数刷新请求对应的配置信息更新内存中的配置信息。

在本实施例中,配置参数刷新接口的类型可以根据实际的需要进行设置,考虑到通过配置参数刷新接口获取的配置参数请求可能是系统的不同功能单元发送来的,为了系统中的不同功能单元之间可以使用统一的通用的方式进行交互,比较优选的设置方式是使配置参数刷新接口独立于实现配置参数刷新服务的硬件平台、操作系统和编程语言。优选地,配置参数刷新接口的类型可以是表述性状态传递接口(rest接口)或网络服务接口(webservice接口),rest是representationalstatetransfer的缩写,意为表述性状态传递。当然,配置参数刷新接口也可以是其他可以获取配置参数刷新请求的独立于实现刷新服务的硬件平台、操作系统和编程语言的接口。对应于本实施例中的配置参数刷新接 口的类型,配置参数刷新请求的类型包括rest请求或webservice请求。

本实施例的配置参数刷新接口可以理解为对参数刷新方法进行包装形成的接口,参数刷新方法包括获取当前的配置信息,以当前的配置信息更新内存中的配置信息。当配置参数刷新接口接收到客户端的配置参数刷新请求后,触发参数刷新方法对应的代码的运行,获取与配置参数刷新请求对应的配置信息可以理解为利用配置参数刷新接口获取与配置参数刷新请求对应的配置信息。

上述的客户端泛指调用配置参数刷新接口的服务的用户端,也即发送了配置参数刷新请求的发送方。例如,当配置参数刷新请求是用户在用户界面更改配置信息后,由用户界面自动向配置参数刷新接口发送的请求时,用户界面就是客户端。又例如,用户使用命令行对配置信息进行修改后,命令行向配置参数刷新接口发送的请求。此时,命令行就是客户端。

在s102中的配置信息包括了实现程序自身的功能的必不可少的配置信息,可以是程序自身在启动时需要使用的配置信息,也可以程序在运行的过程中需要使用的配置信息。例如,如果某个程序实现的是视屏播放的功能,用户改变的是视屏播放的画面的分辨率,那么,这里的分辨率可以认为是该程序的配置信息。

为了保证配置参数刷新接口服务的安全性,避免非法刷新配置参数,可以在配置参数刷新接口获取当前的配置信息前,对配置参数刷新请求进行安全认证,如果配置参数刷新请求通过安全认证,才允许配置参数刷新接口获取当前的配置信息,如果安全认证不通过,则不允许配置参数刷新接口获取当前的配置信息。优选的,可以是根据配置参数刷新请求的发送方的身份对配置参数刷新请求进行安全认证。

本实施例的安全认证可以通过oauth方式来实现,对应的实现方式是在客户端(即配置参数刷新请求的发送方)与配置参数刷新接口之间,设置了一个授权层。客户端不能直接与配置参数刷新接口通信,只能登录授权层。客户端登录授权层以后,才可以向配置参数刷新接口发送参数配置刷新请求,相当于先验证了客户端的身份,然后才允许客户端发送,除此之外,还可以在配置参数刷新请求中携带客户端的身份信息,利用配置参数刷新接口获取到该请求后,先提取身份信息进行验证,验证通过后,才获取配置信息。

本实施例获取的配置信息的原始存储介质可能是不同的存储介质中,例如 存储在某个配置文件里,存储在数据库中,而具体存储配置信息的文件的类型也可能会不同。对不同的存储文件类型,读取配置信息的方式可能会不同,例如配置信息在xml(extensiblemarkuplanguage,可扩展标记语言)文件中,可以使用dom4j来读取xml文件中的配置信息;配置信息在properties文件中,可以使用系统属性类(java.util.properties)来读取文件中的配置信息,properties文件是一种配置文件,主要用于表达配置信息,文件内容的格式是“键=值”格式,“键”表示配置参数的键名,“值”表示配置参数的键值;配置信息储存在数据库中,可以用jdbc(javadatabaseconnectivity,java数据库连接)来读取数据库中的配置信息等等。所以,本实施例可以根据配置信息的原始存储介质的类型,选择相应的读取方式读取配置信息。

在本实施例中,系统开启或运行需要使用配置参数的键值进行配置,该键值一般是从内存中直接获取的,所以在利用配置参数刷新接口获取了与配置参数刷新请求对应的配置信息之后,可以利用与配置参数刷新请求对应的配置信息更新内存中的旧的配置信息,保证内存中的配置信息的有效性。

为了便于系统提取配置参数的键值,存储在内存中的配置信息可以包括配置参数的键名和键值,对应的,本实施例获取的与配置参数刷新请求对应的配置信息可以包括配置参数的键名和键值,此时,本实施例步骤s102中“利用配置参数刷新接口获取与配置参数刷新请求对应的配置信息,以与配置参数刷新请求对应的配置信息更新内存中的配置信息”的更新方式可以是,利用配置参数刷新接口获取与配置参数刷新请求对应的配置参数的键名和键值,删除内存中对应于键名的配置参数,写入获取的配置参数。

考虑到配置参数刷新请求可以携带配置参数,为了适合不同的用户需求,本实施例中的配置参数刷新请求可以包括以下几种类型,第一种:不包含配置参数的请求;第二种:包含待更新的配置参数的键名的请求;第三种:包含待更新的配置参数的键名和键值的请求。

对应于上述的三种配置参数刷新请求,本实施例利用配置参数刷新接口获取与配置参数刷新请求对应的配置参数的键名和键值,删除内存中对应于键名的配置参数,写入获取的配置参数对应的具体更新方法可以包括:

对应于第一种请求:利用配置参数刷新接口获取存储于原始存储介质中的配置参数的键名和键值,删除内存中的配置参数的键名和键值,写入获取的配 置参数的键名和键值。可以想到的是,在获取存储于原始存储介质中的配置参数的键值和键名时,可以只获取存储于原始存储介质中的,对应于本次配置参数刷新请求的用户更新的配置参数的键值和键名,此时,只需要更新内存中的部分配置参数;也可以获取全部的配置参数,更新内存中的全部配置参数。

当只获取存储于原始存储介质中的,对应于本次配置参数刷新请求的用户更新的配置参数的键值和键名,在该更新方法中,更新内存中的配置参数时,可以根据获取的配置参数的键名确定内存中需要更新的配置参数,将内存中需要更新的配置参数的键名和键值全部删除,写入获取的配置参数的键名和键值。也可以根据获取的配置参数的键名确定内存中需要更新的配置参数,将内存中需要更新的配置参数的键值替换为获取配置参数中对应的键值。

对应于第二种请求:利用配置参数刷新接口从原始存储介质中,获取与配置参数刷新请求中的键名对应的键值,删除内存中与配置参数刷新请求中的键名对应的配置参数,写入获取的配置参数的键名和键值。

在该更新方法中,除了以删除内存中与配置参数刷新请求中的键名对应的配置参数,写入获取的配置参数的键名和键值的方式更新内存中的配置参数外,还可以只将内存中对应于配置参数刷新请求中的键名的键值替换为配置参数刷新请求中的键值。

对应于第三种请求:删除内存中与配置参数刷新请求中的键名对应的配置参数,将配置参数刷新请求中的配置参数写入内存中。

在该更新方法中,可以先将配置参数刷新请求中的配置参数提取出来,根据配置参数的键名删除内存中对应于该键名的配置参数,写入配置参数刷新请求中包含的配置参数。

当配置参数刷新请求为第一种请求时,需要重新从原始存储介质中获取当前的配置参数的键名和键值,该键名和键值是与配置参数刷新请求对应的配置信息,此时,虽然需要重新获取的数据比较多,但是更新内存中的配置参数的更新方式可以很简单,将内存中的配置参数的键名和键值全部删除,写入当前的配置参数的键名和键值即可。除此之外,还可以只删除内存中的配置参数的键值,根据删除的键值对应的键名写入新获取的对应于该键名的键值。

当配置参数刷新请求为第二种请求时,配置参数刷新请求中包含了待更新的配置参数的键名,这里的待更新的配置参数应理解为内存中需要更新的配置 参数,也即在原始存储介质中已更新,但在内存中未更新的配置参数。从该配置参数刷新请求中可以提取出待更新的配置参数的键名,然后利用配置参数刷新接口根据该键名从原始存储介质中读取对应于该键名的键值,再根据配置参数刷新请求包含的键名和读取的对应于该键名的键值,更新内存中的配置参数。此种更新方法虽然需要读取配置参数,但是更新的时候,只更新内存中待更新的配置参数,节约了获取配置参数和更新配置参数的时间。

当配置参数刷新请求为第三种请求时,直接从配置参数刷新请求中就可以提取出待更新的配置参数的键名和键值,不需要进行原始存储介质中的配置参数的读取,可以有效地降低更新内存中的配置参数所需的时间,达到快速准确更新内存中的配置信息的目的。

考虑到本实施例中发送配置参数刷新请求的是客户端,配置参数刷新请求携带的配置信息可以是客户端在发送该请求时自动添加的,例如当用户在用户界面完成更改配置信息的操作后,用户界面在自动向配置参数刷新接口发送配置参数刷新请求前,将用户更改的配置信息写入配置参数刷新请求中,发送给配置参数刷新接口。

下面举例说明上述三种请求和对应的内存中的配置信息的更新过程。

假设用户在原始存储介质中将配置信息:电视尺寸=14寸改为了电视尺寸=17寸;

第一种配置参数刷新请求不传递具体的配置信息,只起到触发内存刷新的作用,这时,需要从原始存储介质中读取“电视尺寸=17寸”这一键-值对,将内存中的“电视尺寸=14寸”删除,写入“电视尺寸=17寸”。

第二种配置参数刷新请求以传递具体的配置参数的键名,例如请求消息内容包含键名“电视尺寸”,不包含键值“17寸”。此时,需要根据该键名“电视尺寸”从存储介质中读取其对应的键值“17寸”,根据键名“电视尺寸”删除内存中的键值“14寸”,对应写入“17寸”,使得内存中的配置参数“电视尺寸=14寸”更新为“电视尺寸=17寸”。

第三种配置参数刷新请求可以同时传递配置参数的键名和键值,例如配置参数刷新请求中包含配置参数“电视尺寸=17寸”。此时,不需要查找原始存储介质中的配置参数,直接根据配置参数刷新请求中的“电视尺寸”这一键名将内存中的键值“14寸”删除,对应写入“17寸”即可。

本实施例中,当内存中的配置参数更新完成后,若系统需要使用某个配置参数的键值时,只要根据该配置参数的键名就可以从内存中获取键值,具体的可以将该配置参数的键名与内存中的键名进行匹配,读取匹配的键名对应的键值,在上述的例子中,系统只要根据“电视尺寸”这一键名,就可以从内存中找到“电视尺寸=17寸”这一配置参数,然后读取键值“17寸”,就可以进行后续的配置操作。

在本实施例中,内存中的配置信息可以是系统程序运行后初次获取的配置信息,也可以是已经刷新过的配置信息。

当系统启动时或系统程序需要时,获取初始的配置信息存到内存中,配置信息包括配置参数的键名和键值。可以采用单例模式从配置文件或数据库等原始存储介质中读取配置参数,然后写入内存中。单例模式的使用可以使得对初始的配置参数的获取只有一次,写入内存也只有一次,即存储在内存中的配置参数只有一份,避免系统中存在多份配置参数带来的占用空间,浪费系统资源,以及对系统从内存获取配置参数带来的干扰等问题。

优选的,本实施例的配置参数的键名和键值在内存中的具体存储位置可以线程安全的全局静态变量map,即将配置参数存储在内存中的concurrenthashmap中,以键-值对的形式存储于concurrenthashmap中的配置参数保留了键-值映射关系,系统可以根据某个配置参数的键名从concurrenthashmap中读取到键值,利用该键值进行系统配置。

采用本实施例的参数配置方法,利用配置参数刷新接口可以获取到配置参数刷新请求;之后,可以利用配置参数刷新接口获取与配置参数刷新请求对应的配置信息,以该配置信息更新内存中的配置信息。采用本发明可以根据需要对内存中的参数信息进行刷新,尤其是实际的配置信息被更改后,只要配置参数刷新接口获取了配置参数刷新请求,就可以及时刷新内存中的配置信息,本发明的刷新方法简单易用,安全可靠,能确保参数配置修改及时生效,提高系统的性能。

进一步地,本发明的配置信息是程序在启动或运行时需要使用的配置信息,可以避免读取不需要的数据,避免浪费系统资源。

进一步地,本实施例在刷新之前对配置参数刷新请求进行安全认证,可以保证配置参数刷新请求的可靠性,避免给系统带来安全隐患。

进一步地,配置信息包括配置参数的键名和键值,可以使得系统能根据键名快速地确定需要键值,降低系统从内存获取键值需要的时间,提高系统的性能和配置参数刷新效率。

实施例二:

参见图2,本实施例提供了一种参数配置方法的细化流程,在本实施例中,在系统启动前,系统程序或运行需要的配置信息存储于数据库或配置文件等原始存储介质中,本实施例详细介绍了初次获取系统程序的配置信息的过程以及在系统运行过程中,刷新配置信息的过程。本实施例的配置参数刷新接口选取rest接口。

本实施例的细化流程如下:

s201、在系统启动时,采用单例模式从配置文件或数据库等原始存储介质中,读取程序运行需要的配置信息;该配置信息包括配置参数的键名和键值;

在s201中,除了配置文件或数据库,也可以从其他存储配置信息的位置读取配置信息,对配置参数的读取可以根据配置参数的存储区域的不同,选择不同的读取方式进行读取。在s201中,也可以只读取配置参数的键值,不读取对应的键名,只是采用此种方式,内存中存储的只有配置参数的键值,当系统需要从内存中获取键值时,需要采用更复杂的方式才能获取到正确的键值。

s202、将配置参数的键名和键值写入内存中的concurrenthashmap中;

步骤201中也不局限于采用单例模式获取配置参数,只要保证最后保存在concurrenthashmap中的配置参数只有一份即可,即内存中的键名不重复。

而且本实施例不局限于将配置参数写入内存中的concurrenthashmap。可以是根据配置参数生成一个含有配置参数的键名和键值的对应关系的表格,将该表格存储于内存中。

s203、系统根据待使用的配置参数的键名,从concurrenthashmap中读取对应于该键名的键值供自身使用;

s204、参数配置刷新rset接口接收客户端发送的rset请求;

s205、根据客户端的身份对rset请求进行安全认证,判断是否通过安全 认证,若通过,则进入s206、若不通过,则停止本次刷新。

s206、从配置参数的原始存储介质中,读取与配置参数刷新请求对应的配置参数的键名和键值;

本实施例的步骤s204中的rest请求不包含配置参数的信息,所以步骤s206中需要从原始存储介质中获取配置参数的键值和键名,当rest请求包含配置参数的键名时,步骤s206中只需要从原始存储介质中获取与rest请求中的键名对应的键值即可,当rest请求包含配置参数的键名和键值时,步骤s206中,只需要从rest请求中提取配置参数的键名和键值即可。

s207、删除concurrenthashmap中的所有的配置参数,写入获取的与配置参数刷新请求对应的配置参数;

步骤s207的做法还可以是,删除concurrenthashmap中的所有配置参数的键值,根据配置参数的键名对应写入s206中获取的配置参数的键值。

s208、系统根据待使用的配置参数对应的键名,从concurrenthashmap中读取对应的键值供自身使用。

有益效果:

采用本实施例的参数配置方法,可以将配置参数读取到内存当中的concurrenthashmap中,以键-值对的形式存储。系统根据配置参数的键名从concurrenthashmap读取到配置参数的键值。使用本实施例的参数配置方法,可以帮助系统程序在运行时候,快速高效地得到最新的参数配置,从而来控制程序正确运行。本实施例参数配置方法具有简单方便、实用性强、系统资源占用小的优点。

实施例三:

本实施例提出一种参数配置装置,适用于任何应用程序的参数配置,尤其适用于面向服务的体系架构(soa)的分布式企业应用的参数配置。

参见图3,该参数配置装置1包括:获取模块11和配置参数刷新模块12,获取模块11用于利用配置参数刷新接口获取配置参数刷新请求;配置参数刷新模块12用于在获取到配置参数刷新请求后,利用配置参数刷新接口获取与配置参数刷新请求对应的配置信息,以与配置参数刷新请求对应的配置信息更新内 存中的配置信息。

配置参数刷新接口的类型可以根据实际的需要进行设置,考虑到通过配置参数刷新接口获取的配置参数请求可能是系统的不同功能单元发送来的,为了系统中的不同功能单元之间可以使用统一的通用的方式进行交互,比较优选的设置方式是使配置参数刷新接口独立于实现配置参数刷新服务的硬件平台、操作系统和编程语言。优选地,配置参数刷新接口的类型可以是表述性状态传递接口(rest接口)或网络服务接口(webservice接口),rest是representationalstatetransfer的缩写,意为表述性状态传递。当然,本实施例的配置参数刷新接口也可以是其他可以获取配置参数刷新请求的独立于实现刷新服务的硬件平台、操作系统和编程语言的接口。对应于本实施例中的配置参数刷新接口的类型,配置参数刷新请求的类型包括rest请求或webservice请求。

本实施例的配置参数刷新接口可以理解为对参数刷新方法进行包装形成的接口,参数刷新方法包括获取当前的配置信息,以当前的配置信息更新内存中的配置信息。当配置参数刷新接口接收到客户端的配置参数刷新请求后,触发参数刷新方法对应的代码的运行,获取与配置参数刷新请求对应的配置信息可以理解为利用配置参数刷新接口获取与配置参数刷新请求对应的配置信息。

上述的客户端泛指调用配置参数刷新接口的服务的用户端,也即发送了配置参数刷新请求的发送方。例如,当配置参数刷新请求是用户在用户界面更改配置信息后,由用户界面自动向配置参数刷新接口发送的请求时,用户界面就是客户端。又例如,用户使用命令行对配置信息进行修改后,命令行向配置参数刷新接口发送的请求。此时,命令行就是客户端。

本实施例的配置信息包括了实现程序的功能的配置参数,可以是程序自身在启动时需要使用的配置信息,也可以程序在运行的过程中需要使用的配置信息。例如,如果某个程序实现的是视屏播放的功能,用户改变的是视屏播放的画面的分辨率,那么,这里的分辨率可以认为是该程序的配置参数。

为了保证配置参数刷新接口服务的安全性,避免非法刷新配置参数。优选的,参见图4,本实施例的参数配置装置1还可以包括安全认证模块13,该安全认证模块13可以用于在配置参数刷新模块12获取与配置参数刷新请求对应的配置信息前,根据配置参数刷新请求的发送方的身份对配置参数刷新请求进行安全认证;若安全认证通过,则配置参数刷新模块获取与配置参数刷新请求 对应的配置信息,否,则不获取。

在本实施例中,可以在配置参数刷新请求中携带客户端的身份信息,安全认证模块13提取该身份信息进行验证,验证通过后,配置参数刷新模块12才获取配置信息,否则就不获取。

在本实施例中,当配置信息的存储文件类型不同时,可以采用不同的读取方式读取配置信息。例如配置信息在xml文件中,可以使用dom4j来读取文件中的配置信息;配置信息在properties文件中,可以使用系统属性类(java.util.properties)来读取文件中的配置信息;配置信息储存在数据库中,可以用jdbc来读取数据库中的配置信息等等。

优选的,本实施例的配置信息包括配置参数的键名和键值,配置参数刷新模块12用于在获取到配置参数刷新请求后,利用配置参数刷新接口获取与配置参数刷新请求对应的配置参数的键名和键值,删除内存中对应于键名的配置参数,写入获取的配置参数。

考虑到接收的配置参数刷新请求可以携带配置信息,优选的,本实施例的获取模块11获取的配置参数刷新请求包括:不包含配置参数的请求;或者,包含待更新的配置参数的键名的请求;或者,包含待更新的配置参数的键名和键值的请求。

对应的,配置参数刷新模块12包括第一刷新子模块121或第二刷新子模块122或第三刷新子模块123;

第一刷新子模块121用于,当配置参数刷新请求不包含配置参数时,利用配置参数刷新接口获取存储于原始存储介质中的配置参数的键名和键值,删除内存中的配置参数的键名和键值,写入获取的配置参数的键值和键名;

第二刷新子模块122用于,当配置参数刷新请求包含待更新的配置参数的键名时,利用配置参数刷新接口从原始存储介质中,获取与配置参数刷新请求中的键名对应的键值,删除内存中与配置参数刷新请求中的键名对应的配置参数,写入获取的配置参数的键名和键值;

第三刷新子模块123用于,当配置参数刷新请求包含待更新的配置参数的键名与键值时,删除内存中与配置参数刷新请求中的键名对应的配置参数,将配置参数刷新请求中的配置参数写入内存中。

可以理解的是,本实施例的第一刷新子模块121和第二刷新子模块122以及第三刷新子模块123是可以同时存在于配置参数刷新模块12中的。

优选的,配置参数包括了实现程序的功能的配置参数,可以是程序自身在启动时需要使用的配置参数,也可以程序在运行的过程中需要使用的配置参数。

在系统启动或者是需要使用程序的时候,需要从内存中读取初始的配置参数的键值,即未更新的配置参数的键值。优选的,本实施例的参数配置装置1可以包括参数配置载入模块14,用于在系统启动或是需要使用程序的时候,从原始存储介质中读取初始的配置参数,并写入内存中保存。

参数配置载入模块14在读取配置参数的时候,可以采用单例模式进行读取,保证内存中的配置参数只有一份。

在实际中,存储在配置文件中、数据库等原始存储介质的配置参数可以以键-值对的形式存在,“键”是配置参数的键名,“值”是配置参数的键值。当配置参数在内存中以键-值对的形式存在时,可以存储于内存中的线程安全的全局静态变量map中,即存储在内存中的concurrenthashmap中,以键-值对的形式存储于concurrenthashmap中的配置信息保留了键名和键值的映射关系,系统可以根据某个配置参数的键名从concurrenthashmap中读取到对应的键值。

优选的,参见图4,本实施例的参数配置装置还可以包括配置参数调用模块15,用于在系统运行的时候,根据待使用的配置参数的键名从内存的concurrenthashmap中读取对应的键值,具体可以是配置参数调用模块15将待使用的配置参数的键名与concurrenthashmap中的所有键名进行匹配,读取concurrenthashmap中匹配的键名对应的键值。

有益效果:

采用本实施例的参数配置装置可以利用配置参数刷新接口获取配置参数刷新请求,确定何时进行刷新,之后可以获取与配置参数刷新请求对应的配置信息,以该配置信息更新内存中的配置信息。所以本实施例的参数配置装置可以根据用户的需要随时更新内存中的配置信息,尤其是在配置信息被更改的情况下,可以快速的更新内存中的配置信息,保证内存中的配置信息的有效性,保证系统的性能,除此之外,利用本实施例的参数配置装置还具有使用简单方便、实用性强的优点。

显然,本领域的技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储介质(rom/ram、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。

以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1