CN105446724A - 软件参数的管理方法及装置 - Google Patents
软件参数的管理方法及装置 Download PDFInfo
- Publication number
- CN105446724A CN105446724A CN201410461459.1A CN201410461459A CN105446724A CN 105446724 A CN105446724 A CN 105446724A CN 201410461459 A CN201410461459 A CN 201410461459A CN 105446724 A CN105446724 A CN 105446724A
- Authority
- CN
- China
- Prior art keywords
- tree
- value
- parameter
- parameter information
- software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种软件参数的管理方法及装置,其中该方法采用了加载用于存放软件参数信息的配置树,其中,参数信息包括:各参数之间的关联关系;在配置树中利用关联关系对所述软件参数信息进行管理。解决了相关技术中比较简单的软件参数的管理方式,而不利于软件管理问题,提高了对软件管理的效率。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种软件参数的管理方法及装置。
背景技术
相关技术在基于组件框架的多进程分布式软件的运行过程中,系统各部分需要通过多种参数来定制其运行时的行为特征。这些参数有别于在开发阶段就已经写入某些配置文件(如xml)的数据,它们受运行环境影响且代表用户一贯的要求,因而不能在产品开发阶段将其固化,只能等到安装、部署,甚至运行阶段才能最终确定。这些数据在系统升级的时候往往需要进行保留。我们将这些参数称为部署参数,简称为参数。
在大型软件中,系统各部分的参数往往很多,且通常随组件的集成而动态变化。系统各部分对这些参数都需要读取和更新。对于开发阶段确定的配置项,可由系统各部分自行存放和维护,不需要考虑集中的管理,在系统打补丁和升级的时候,直接随版本更新即可。对于部署参数,如果让系统各部分自己处理,则会造成混乱,不利于软件的升级和维护。因此,需要提供统一的管理和访问机制供系统各部分使用。在系统安装部署的时候统一考虑其初始化,在系统运行期统一考虑其读取写入和持久化,在补丁升级过程中还要统一考虑其数据迁移。为了便于维护,在此基础上,可以开发一个可视化的工具,将配置参数以树或图、表的形式呈现给操作维护人员,进行统一的集中管理。
在多进程分布式组件框架的应用系统中,还存在多个进程实例需要共享参数、参数局部定义覆盖全局定义、参数变化通知等需求。
软件参数配置领域长期以来都是不被重视的领域,大多数应用软件仅采用简单的配置文件方式,进行参数管理,并没有形成专门的参数管理机制。其主要原因在于一般的应用程序,在配置方面的需求比较简单,不需要设计复杂的参数管理机制。但在由多项目组成的分布式组件框架领域,由于存在分布式共享、框架和组件的分离、组件的扩展性等复杂问题,对专门的参数管理机制的需求就显得特别突出。
目前比较复杂的参数管理机制有windows的注册表机制等。相关的专利有CN1848760发明名称:为软件组件参数配置方法及系统、及其终端设备。该发明公开了一种软件组件参数配置方法,包括步骤:设备管理服务器下发软件组件参数到终端设备;所述终端设备将接收的软件组件参数配置给对应的软件组件。相应的,该发明还公开了一种软件组件参数配置系统及其相应的终端设备。
该专利主要用于配置中心对终端软件参数的下发,当被下发的软件参数所服务的软件系统为分布式多进程的复杂系统,该专利其功能不能解决分布式多进程的复杂系统应用场景的需求。
针对相关技术中比较简单的软件参数的管理方式,而不利于软件的管理问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种软件参数的管理方法及装置,以至少解决相关技术中比较简单的软件参数的管理方式,而不利于软件的管理问题。
根据本发明的一个方面,提供了一种软件参数的管理方法,包括:加载用于存放软件参数信息的配置树,其中,所述参数信息包括:各参数之间的关联关系;在所述配置树中利用所述关联关系对所述软件参数信息进行管理。
优选地,所述软件参数信息中还包括:参数值;所述配置树包括:优先级依次递减的定义树、实例值树以及缺省值树;所述定义树用于记录所述各参数之间的关联关系,并将所述关联关系存储在程序区,其中,所述关联关系通过宏定义来描述,该宏定义用于使不同的参数指向同一个变量;缺省值树用于记录所述参数值中固化的参数缺省值,并将所述固化的参数缺省值存储在所述程序区;所述实例值树用于记录对所述参数缺省值进行修改后得到的参数值,将所述需要修改的缺省值存储在数据区。
优选地,加载用于存放软件参数信息的配置树包括:从所述程序区加载所述定义树和所述缺省值树;从所述数据区加载所述实例值树。
优选地,所述方法还包括:当所述软件参数信息部署在多台物理机器上时,将不同物理机器上的多个进程实例分别放置不同的所述实例值树上。
优选地,所述实例值树包括:局部实例值树和全局实例值树,其中,所述局部实例值树的优先级高于所述全局实例值树的优先级。
优选地,所述实例值树存储在分布式缓存中,其中,所述分布式缓存用于实现多进程实例树对所述软件参数信息的共享。
优选地,在所述配置树中利用所述关联关系对所述软件参数信息进行管理,包括:接收用户的管理请求信息,其中,所述管理请求信息中携带有用户代码;通过所述用户代码调用与所述用户代码对应的指定接口对所述软件参数信息进行管理,其中,所述指定接口用于指示所述软件参数信息的管理方式。
优选地,所述管理包括查询和/或更新;通过所述用户代码调用与所述用户代码对应的指定接口对所述软件参数信息进行管理包括:根据所述配置树的优先级和所述用户代码定位所述软件参数信息所在的配置树;在定位的配置树中查找所述软件参数信息中的参数值;和/或,在所述定位的配置树中未查找到所述参数值时,在分布式缓存中的其它配置树中进一步查找所述参数值。
根据本发明的另一个方面,提供了一种软件参数的管理装置,包括:加载模块,用于加载用于存放软件参数信息的配置树,其中,所述参数信息包括:各参数之间的关联关系;管理模块,用于在所述配置树中利用所述关联关系对所述软件参数信息进行管理。
优选地,所述软件参数信息中还包括:参数值;所述配置树包括:优先级依次递减的定义树、实例值树以及缺省值树;所述定义树用于记录所述各参数之间的关联关系,并将所述关联关系存储在程序区,其中,所述关联关系通过宏定义来描述,该宏定义用于使不同的参数指向同一个变量;缺省值树用于记录所述参数值中固化的参数缺省值,并将所述固化的参数缺省值存储在所述程序区;所述实例值树用于记录对所述参数缺省值进行修改后得到的参数值,将所述需要修改的缺省值存储在数据区。
优选地,所述加载装置还用于,从所述程序区加载所述定义树和所述缺省值树;从所述数据区加载所述实例值树。
优选地,所述装置还包括:放置模块,用于当所述软件参数信息部署在多台物理机器上时,将不同物理机器上的多个进程实例分别放置不同的所述实例值树上。
优选地,所述实例值树包括:局部实例值树和全局实例值树,其中,所述局部实例值树的优先级高于所述全局实例值树的优先级。
优选地,所述实例值树存储在分布式缓存中,其中,所述分布式缓存,用于实现多进程实例树对所述软件参数信息的共享。
优选地,所述加载模块包括:接收单元,用于接收用户的管理请求信息,其中,所述管理请求信息中携带有用户代码;管理单元,用于通过所述用户代码调用与所述用户代码对应的指定接口对所述软件参数信息进行管理,其中,所述指定接口用于指示所述软件参数信息的管理方式。
优选地,所述管理包括查询和/或更新;所述管理单元还用于,根据所述配置树的优先级和所述用户代码定位所述软件参数信息所在的配置树;在定位的配置树中查找所述软件参数信息中的参数值;和/或,在所述定位的配置树中未查找到所述参数值时,在分布式缓存中的其它配置树中进一步查找所述参数值。
通过本发明,采用加载配置树中的软件参数信息,利用软件参数信息的关联关系对软件参数信息进行管理的方式,解决了相关技术中比较简单的软件参数的管理方式,而不利于软件管理问题,提高了对软件管理的效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的软件参数的管理方法的流程示意图;
图2是根据本发明实施例的软件参数的管理装置的结构框图;
图3是根据本发明实施例的软件参数的管理装置的优选结构框图一;
图4是根据本发明实施例的软件参数的管理装置的优选结构框图二;
图5a~5b是根据本发明优选实施例的参数管理机制的原理示意图;
图6是根据本发明优选实施例的参数管理机制的结构示意图;
图7a~7b是根据本发明优选实施例的参数管理机制的流程示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明实施例提供了一种软件参数管理的方法及装置,图1是根据本发明实施例的软件参数管理的方法的流程示意图,如图1所示,包括如下的步骤:
步骤S102:加载用于存放软件参数信息的配置树,其中,参数信息包括:各参数之间的关联关系;
步骤S104:在配置树中利用关联关系对软件参数信息进行管理。
通过本发明实施例,通过加载配置树中的软件参数信息,利用软件参数信息的关联关系对软件参数信息进行管理的方式,解决了相关技术中比较简单的软件参数的管理方式,而不利于软件管理问题,提高了对软件管理的效率。
优选地,软件参数信息中还包括:参数值;配置树包括:优先级依次递减的定义树、实例值树以及缺省值树;定义树用于记录各参数之间的关联关系,并将关联关系存储在程序区,其中,关联关系通过宏定义来描述,该宏定义用于使不同的参数指向同一个变量;缺省值树用于记录参数值中固化的参数缺省值,并将固化的参数缺省值存储在程序区;实例值树用于记录对参数缺省值进行修改后得到的参数值,将需要修改的缺省值存储在数据区。
优选地,加载用于存放软件参数信息的配置树包括:从程序区加载定义树和缺省值树;从数据区加载实例值树。
优选地,本发明实施例还包括:当软件参数信息部署在多台物理机器上时,将不同物理机器上的多个进程实例分别放置不同的实例值树上。
优选地,实例值树包括:局部实例值树和全局实例值树,其中,局部实例值树的优先级高于全局实例值树的优先级。
优选地,实例值树存储在分布式缓存中,其中,分布式缓存,用于实现多进程实例树对软件参数信息的共享。
优选地,在配置树中利用关联关系对软件参数信息进行管理,包括:接收用户的管理请求信息,其中,所述管理请求信息中携带有用户代码;通过所述用户代码调用与所述用户代码对应的指定接口对软件参数信息进行管理,其中,指定接口用于指示软件参数信息的管理方式。
优选地,管理包括查询和/或更新;通过用户代码调用与用户代码对应的指定接口对软件参数信息进行管理包括:根据配置树的优先级和用户代码定位软件参数信息所在的配置树;在定位的配置树中查找软件参数信息中的参数值;和/或,在定位的配置树中未查找到参数值时,在分布式缓存中的其它配置树中进一步查找参数值。
本发明实施例还提供了一种软件参数的管理装置,该装置可以用于实现上述本发明方法实施例。图2是根据本发明实施例的软件参数的管理装置的结构框图,如图2所示,该装置包括:加载模块22,用于加载用于存放软件参数信息的配置树,其中,参数信息包括:各参数之间的关联关系;管理模块24,用于在配置树中利用关联关系对软件参数信息进行管理。
优选地,软件参数信息中还包括:参数值;配置树包括:优先级依次递减的定义树、实例值树以及缺省值树;定义树用于记录各参数之间的关联关系,并将关联关系存储在程序区,其中,关联关系通过宏定义来描述,该宏定义用于使不同的参数指向同一个变量;缺省值树用于记录参数值中固化的参数缺省值,并将固化的参数缺省值存储在程序区;实例值树用于记录对参数缺省值进行修改后得到的参数值,将需要修改的缺省值存储在数据区。
优选地,加载装置还用于,从程序区加载定义树和缺省值树;从数据区加载实例值树。
图3是根据本发明实施例的软件参数的管理装置的优选结构框图一,如图3所示:该装置还包括:放置模块32,用于当软件参数信息部署在多台物理机器上时,将不同物理机器上的多个进程实例分别放置不同的实例值树上。
优选地,实例值树包括:局部实例值树和全局实例值树,其中,局部实例值树的优先级高于全局实例值树的优先级。
优选地,实例值树存储在分布式缓存中,其中,分布式缓存,用于实现多进程实例树对软件参数信息的共享。
图4是根据本发明实施例的软件参数的管理装置的优选结构框图二,如图4所示加载模块22包括:接收单元222,用于接收用户的管理请求信息,其中,管理请求信息中携带有用户代码;管理单元224,用于通过用户代码调用与用户代码对应的指定接口对软件参数信息进行管理,其中,指定接口用于指示软件参数信息的管理方式。
为了使本发明的技术方案和实现方法更加清楚,下面将结合优选的实施例对其实现过程进行详细描述。
本发明优选实施例的目的在于,提供一种通用的参数配置机制,满足分布式、多进程、以及组件框架扩展所需要的功能,使应用组件开发者、现场配置者和用户都能很好的协作,共同完成复杂软件功能的定制。本发明优选实施例采用以下技术方案:
本发明优选实施中组成部件包括:(1)接口,用于接受客户代码的请求,定义参数管理机制的功能范围;(2)配置树,用于存放软件参数、关联关系及参数值等信息;(3)配置树管理器,用于管理各配置树,维护配置树之间的连接关系,管理配置树和后端缓存之间的关系;(4)上下文对象,用于描述某次查询的状态信息;(5)通知机制,用于管理客户代码对需要跟踪变化的参数项的注册,并在适当的时候向客户代码发出参数变化通知;(6)缓存代理,用于隔离配置树和具体持久化机制的耦合关系,使配置树可以连接不同的后端持久化机制;(7)分布式缓存,用于实现参数配置的高可用性,和多进程实例的参数共享。
本发明优选实施例工作流程包括以下步骤:
步骤A.加载参数管理机制。该流程主要用于进程初始化的时候加载参数管理服务。该过程由进程初始化程序发起,创建配置树管理器、连接后端分布式缓存,并加载各配置树,进行一些参数合法性检查。是参数管理服务最终处于一种可服务的状态;
步骤B.注册项查询和更新。当参数管理机制加载成功以后,客户代码可以使用接口对参数进行查询和更新。这些操作都被传递到配置树管理器和相关的分布式缓存,最后经过结果解析,返回一个解析后的参数值,或者将新的参数设置到合适的配置树上;
步骤C.参数更新通知。先由客户代码向参数管理机制注册需要跟踪变更的参数,以及相关的回调函数。此后通知机制分析该参数关联的参数列表,对其进行缓存。最后,配置树管理器监听到分布式缓存的参数变更通知后,调用通知机制进行参数过滤,并回调有参数变化的客户回调函数。
针对上述步骤,需要对本发明优选实施例的术语进行解释(1)配置树,是存放软件参数项及其值的数据结构;(2)参数关联关系,是参数之间的一种关系,即一个参数的值依赖于另一个或多个参数的值这样的依赖关系;(3)参数缺省值,是在开发阶段由开发人员事先为参数选择的一个值,该值是和软件版本关联在一起的;(4)参数实例值,是进程实际安装部署以后,为参数设置的值,该值受具体运行环境的影响,并可能在实际运行中改变。
与现有技术相比较,本发明优选实施例的技术方案能够支持分布式、多重覆盖、开发与配置独立、参数定义的结构性和良好的参数组织方式。而现有技术并未提供本发明优选实施例这样全面的解决方案。
下面结合本发明优选实施例的附图对本发明优选实施例分布式消息跟踪的实现方法进行详细的说明。
图5a~5b是根据本发明优选实施例的参数管理机制的原理示意图,如图5a所示,本发明优选实施例使用树形结构展现参数。参数为key=value形式的字符串名值对。参数的名值对存放在树形结构的各级节点中,通过由根节点开始的路径和参数名字进行唯一标识。树形结构的一个节点相当于一个参数命名空间,该命名空间可以包含多个子空间和多个参数名值对。同一个命名空间中参数名字不能重复,但不同命名空间中的参数和子空间可以取相同的名字。层次化的参数定义方式使组件开发者可以只关心自己模块分配到的子空间,使本模块的参数定义集中在一个便于管理的小范围内,而不用担心其他模块的参数会不会和本模块的参数定义相冲突。
在大型系统中,参数之间可能存在关联关系。例如C/S结构中客户端的连接端口参数和服务端的监听端口参数需要保持一致。这实际上说明客户端模块和服务端模块的某些参数具有关联关系。对于这种关联关系,当需要修改参数值时,如果没有一种程序化的机制进行维护,单靠操作手册和手工同步修改的方式,很难保证正确性。因此,在本发明中,引入了宏定义来描述参数之间的这种关联关系。宏定义使得不同的参数可以指向同一个变量,通过修改这个变量就能使修改同时在多个参数中生效。引入宏定义还有一个好处,它将面向程序的配置和面向用户的配置独立开来。模块开发人员定义的参数多是面向程序结构的,这种参数便于程序开发人员理解但不便于用户使用。使用宏定义,可以完全独立于程序定义用户易于理解的参数名字和层次结构,然后将两者通过宏定义关联起来。用户只需操作定义良好的参数,即可影响到程序内部定义的参数。参数的关联关系作为程序固有的属性,不会在应用现场发生改变,因此使用一个独立的配置树来记录,并将其存放在程序区,使用户不能在现场进行修改,这个树就是定义树502。
在大型程序中,各部分的参数定义会非常多,但在现场应用中通常只需要修改少量参数。为了减少维护工作量,各参数都要定义缺省值。在升级的时候,缺省值可能会发生变化,为了同用户修改造成的缺省值变化相区别,本发明将缺省值固化,存放在程序区,而将对缺省值的修改部分存放在数据区,这样就有了缺省值树和实例值树的分别。本发明通过实例值树优先于缺省值树的方式来实现用户对缺省值的修改,同时又能保持缺省值升级的便利性。图1中,504是缺省值树,503是实例值树。
定义树、实例值树和缺省值树是本发明内部的数据结构,三颗树按照502、503、504优先级逐级降低的顺序叠加在一起,使得从客户代码的角度看到唯一的参数配置树。客户代码对参数的查询首先定位到定义树,然后依次到实例值树和缺省值树。如果在前面的树上找到参数项,则获取其值,然后进行解析;如果没有在前面的树上找到该参数项,则跳到下一颗树上继续查询。对于取得的参数值,本发明要进一步对其进行解析,如果存在宏定义,则要从第一颗树开始对宏定义进行上述操作,并将结果替换会原来宏定义的区域。
基于分布式组件框架的应用程序部署在多台物理机器上,在每台机器上有多个不同的进程类型,每种进程类型定义了不同的组件组合方式;在运行期每种进程类型又可以实例化为多个进程实例。在这些进程实例中,用到的参数可以有不同的特性,可以分为下列几类:各服务器上都相同参数、同一服务器上各进程类型都相同的参数、同一服务器上某种进程类型的所有进程可见的参数、仅某个进程实例可见的参数。本发明优选实施例将不同可见性的参数放置在不同的实例树上,并将这些实例树按照先局部后全局的方式组织成树林,从而实现既能全局共享,又能局部覆盖的功能要求。如图5b所示,515覆盖518,再覆盖514,最后覆盖512。
为了实现分布式共享,本发明优选实施例将实例树存放在分布式缓存中,按照服务器全局、服务器实例、特定服务器进程类型全局、进程类型、等层次结构进行组织。各进程启动的时候,根据自己的服务器实例标识、进程类型标识、进程实例标识找到自己的实例树,并进行数据映射。
在组件框架应用中,为了避免组件和框架的参数互相冲突,在数据结构的根节点下定义了frame和component两个子目录,在存储上,将组件和框架的参数存放在不同的物理位置,系统启动的时候将其加载拼合成同一棵树。由于分目录分别存放,在加载的时候系统很容易判断组件和框架定义的非法参数,从而避免了参数的冲突。
多进程系统中的参数覆盖带来一个问题,虽然大部分参数可以使用局部值覆盖全局值,但也有的参数是必须各进程完全相同的,而另一些则是是各进程必须不同的。对于这类参数,本发明采用public、protected、private几个子空间来进行区分。Public中存放的是可以被局部覆盖的参数项、protected存放不能被局部覆盖的参数项、private存放的是必须在局部定义的参数项。通过限制不同的实例树加载不同的子空间,并在定义树指明参数项的上述路径属性,就能实现参数覆盖性的限制。
本发明优选实施例支持参数变化通知。客户代码首先以注册的方式表明对某个参数项的变化进行跟踪。然后由参数管理机制找出该参数项的所有依赖参数项,并缓存在内部数据结构中。当某个参数项发生改变的时候,参数管理机制自动查询受到影响的注册项,然后更新注册参数项的依赖关系,并通知客户代码。
图6是根据本发明优选实施例的参数管理机制的结构示意图,如图6所示,本发明优选实施例的应用场景包含客户代码和参数管理机制两部分。501客户代码是本发明的使用者,调用参数管理机制提供的接口进行参数的查询和更新操作,参数管理机制则负责响应客户代码的请求,对参数进行加载和持久化、检查和解析,并在参数变化的时候通知注册的客户代码。参数管理机制包括接口、配置树管理器、通知机制、分布式缓存等组件。
接口601负责和客户代码交互,接受来自客户代码的查询或更新请求,然后转发给配置树管理器和通知机制。
配置树管理器602负责管理核心数据结构,接受接口601和通知机制607的请求信息,并为配置树提供分布式缓存的代理。
各配置树603,包括定义树、实例值树和缺省值树,实例值树又按照局部层次关系分成多树。各树之间按照定义、局部实例、全局实例、缺省值的顺序组成树林。604是某棵树上的查找上下文,代表某次查找的中间状态。
分布式缓存体系包括缓存代理605和分布式缓存606,它使各进程实例的参数管理机制能够共享参数数据,并在某个参数发生改变的时候,通知各进程实例的配置树管理器。分布式缓存606中参数数据按照图5的方式存储。
通知机制607,接受客户代码对某个参数项的跟踪注册。其在内部维持客户端回调代码和对应的关联参数序列的关系。当配置树管理器得到分布式缓存的数据变化通知时,将调用通知机制。通知机制进一步检查该参数变更是否命中内部缓存数据。如果命中,则调用相关的客户代码回调函数。
图7a~7b是根据本发明优选实施例的参数管理机制的流程示意图,如图7a和7b所示,本发明优选实施例系统流程主要包括初始化和查询更新两部分,分别描述如下。
图7a是本发明优选实施例系统流程中初始化流程:
步骤S701:进程启动,加载参数管理服务;
步骤S702:参数管理服务创建配置树管理器、通知机制和接口;
步骤S703:连接分布式缓存;
步骤S704:从程序区加载定义树和缺省值树;
步骤S705:从分布式缓存加载服务器全局树
步骤S706:从分布式缓存加载本服务器全局树
步骤S707:从分布式缓存加载本进程类型全局树
步骤S708:从分布式缓存加载本进程实例树
图7b是本发明优选实施例系统流程中查询更新流程:
步骤S709:客户代码调用参数管理机制的接口;
步骤S710:配置管理器定位到定义树;
步骤S711:配置树管理器为本次查询生成上下文对象,该上下文关联到当前配置树的根节点;
步骤S712:接口通过上下文查询配置树;
步骤S713:配置树将查询传递给配置树管理器提供的缓存代理;
步骤S714:配置树在分布式缓存中查找参数;
步骤S715:如果找到则解析结果,如果没有找到,则转到下一配置树,重复步骤S703的流程;
步骤S716:如果解析结果发现有宏定义,则取出宏定义的字符串作为参数项,转到步骤S704的流程;
步骤S717:将查询的结果替换当前的宏定义串;
步骤S718:返回查询结果。
通过本发明优选实施例,应用于多进程分布式组件框架的大型应用软件,提供了结构清晰,功能全面的层次化软件参数管理机制,从而简化针对软件参数的开发和维护工作量,同时有利于定义出面向用户友好的软件参数。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种软件参数的管理方法,其特征在于包括:
加载用于存放软件参数信息的配置树,其中,所述参数信息包括:各参数之间的关联关系;
在所述配置树中利用所述关联关系对所述软件参数信息进行管理。
2.根据权利要求1所述的方法,其特征在于,所述软件参数信息中还包括:参数值;所述配置树包括:优先级依次递减的定义树、实例值树以及缺省值树;
所述定义树用于记录所述各参数之间的关联关系,并将所述关联关系存储在程序区,其中,所述关联关系通过宏定义来描述,该宏定义用于使不同的参数指向同一个变量;
缺省值树用于记录所述参数值中固化的参数缺省值,并将所述固化的参数缺省值存储在所述程序区;
所述实例值树用于记录对所述参数缺省值进行修改后得到的参数值,将需要修改的缺省值存储在数据区。
3.根据权利要求2所述的方法,其特征在于,加载用于存放软件参数信息的配置树包括:
从所述程序区加载所述定义树和所述缺省值树;
从所述数据区加载所述实例值树。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述软件参数信息部署在多台物理机器上时,将不同物理机器上的多个进程实例分别放置不同的所述实例值树上。
5.根据权利要求4所述的方法,其特征在于,所述实例值树包括:局部实例值树和全局实例值树,其中,所述局部实例值树的优先级高于所述全局实例值树的优先级。
6.根据权利要求2至5中任一项所述的方法,其特征在于,所述实例值树存储在分布式缓存中,其中,所述分布式缓存,用于实现多进程实例树对所述软件参数信息的共享。
7.根据权利要求1所述的方法,其特征在于,在所述配置树中利用所述关联关系对所述软件参数信息进行管理,包括:
接收用户的管理请求信息,其中,所述管理请求信息中携带有用户代码;
通过所述用户代码调用与所述用户代码对应的指定接口对所述软件参数信息进行管理,其中,所述指定接口用于指示所述软件参数信息的管理方式。
8.根据权利要求7所述的方法,其特征在于,所述管理包括查询和/或更新;通过所述用户代码调用与所述用户代码对应的指定接口对所述软件参数信息进行管理包括:
根据所述配置树的优先级和所述用户代码定位所述软件参数信息所在的配置树;在定位的配置树中查找所述软件参数信息中的参数值;和/或,
在所述定位的配置树中未查找到所述参数值时,在分布式缓存中的其它配置树中进一步查找所述参数值。
9.一种软件参数的管理装置,其特征在于包括:
加载模块,用于加载用于存放软件参数信息的配置树,其中,所述参数信息包括:各参数之间的关联关系;
管理模块,用于在所述配置树中利用所述关联关系对所述软件参数信息进行管理。
10.根据权利要求9所述的装置,其特征在于,所述软件参数信息中还包括:参数值;所述配置树包括:优先级依次递减的定义树、实例值树以及缺省值树;
所述定义树用于记录所述各参数之间的关联关系,并将所述关联关系存储在程序区,其中,所述关联关系通过宏定义来描述,该宏定义用于使不同的参数指向同一个变量;
缺省值树用于记录所述参数值中固化的参数缺省值,并将所述固化的参数缺省值存储在所述程序区;
所述实例值树用于记录对所述参数缺省值进行修改后得到的参数值,将需要修改的缺省值存储在数据区。
11.根据权利要求10所述的装置,其特征在于,所述加载装置还用于,
从所述程序区加载所述定义树和所述缺省值树;
从所述数据区加载所述实例值树。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
放置模块,用于当所述软件参数信息部署在多台物理机器上时,将不同物理机器上的多个进程实例分别放置不同的所述实例值树上。
13.根据权利要求12所述的装置,其特征在于,所述实例值树包括:局部实例值树和全局实例值树,其中,所述局部实例值树的优先级高于所述全局实例值树的优先级。
14.根据权利要求10至13中任一项所述的装置,其特征在于,所述实例值树存储在分布式缓存中,其中,所述分布式缓存,用于实现多进程实例树对所述软件参数信息的共享。
15.根据权利要求9所述的装置,其特征在于,所述加载模块包括:
接收单元,用于接收用户的管理请求信息,其中,所述管理请求信息中携带有用户代码;
管理单元,用于通过所述用户代码调用与所述用户代码对应的指定接口对所述软件参数信息进行管理,其中,所述指定接口用于指示所述软件参数信息的管理方式。
16.根据权利要求15所述的装置,其特征在于,所述管理包括查询和/或更新;
所述管理单元还用于,根据所述配置树的优先级和所述用户代码定位所述软件参数信息所在的配置树;在定位的配置树中查找所述软件参数信息中的参数值;和/或,
在所述定位的配置树中未查找到所述参数值时,在分布式缓存中的其它配置树中进一步查找所述参数值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410461459.1A CN105446724B (zh) | 2014-09-11 | 2014-09-11 | 软件参数的管理方法及装置 |
PCT/CN2014/089500 WO2015154435A1 (zh) | 2014-09-11 | 2014-10-24 | 软件参数的管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410461459.1A CN105446724B (zh) | 2014-09-11 | 2014-09-11 | 软件参数的管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105446724A true CN105446724A (zh) | 2016-03-30 |
CN105446724B CN105446724B (zh) | 2019-11-29 |
Family
ID=54287198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410461459.1A Active CN105446724B (zh) | 2014-09-11 | 2014-09-11 | 软件参数的管理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105446724B (zh) |
WO (1) | WO2015154435A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984204A (zh) * | 2018-06-29 | 2018-12-11 | 南京南瑞继保电气有限公司 | 一种嵌入式装置关联定值的修改方法 |
CN109344050A (zh) * | 2018-08-20 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 一种基于结构树的接口参数分析方法及装置 |
CN109697131A (zh) * | 2018-12-06 | 2019-04-30 | 京信通信系统(中国)有限公司 | 进程间参数管理、同步方法及装置 |
CN109976799A (zh) * | 2019-02-19 | 2019-07-05 | 武大吉奥信息技术有限公司 | 一种基于树形结构软件配置模型的实现方法及装置 |
CN110427175A (zh) * | 2019-08-05 | 2019-11-08 | 深圳科蓝金信科技发展有限公司 | 基于通讯接口的前端界面及后台服务生成方法及系统 |
CN110825409A (zh) * | 2019-10-30 | 2020-02-21 | 炬星科技(深圳)有限公司 | 参数管理方法、电子设备及计算机存储介质 |
CN114035860A (zh) * | 2021-11-04 | 2022-02-11 | 四川启睿克科技有限公司 | 一种基于rpa全局变量模块的流程参数配置系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000026295A (ko) * | 1998-10-17 | 2000-05-15 | 서평원 | 망 관리 플랫폼 및 방법 |
CN1485775A (zh) * | 2002-09-27 | 2004-03-31 | 英业达股份有限公司 | 树形结构节点数据显示处理系统与方法 |
CN1848760A (zh) * | 2005-08-30 | 2006-10-18 | 华为技术有限公司 | 软件组件参数配置方法及系统、及其终端设备 |
CN101651679A (zh) * | 2009-09-16 | 2010-02-17 | 清华大学 | 一种基于树形结构的数据帧解析和处理系统和方法 |
CN103593432A (zh) * | 2013-11-11 | 2014-02-19 | 中广核工程有限公司 | 一种设计参数数据库的设计参数变更方法及装置 |
-
2014
- 2014-09-11 CN CN201410461459.1A patent/CN105446724B/zh active Active
- 2014-10-24 WO PCT/CN2014/089500 patent/WO2015154435A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000026295A (ko) * | 1998-10-17 | 2000-05-15 | 서평원 | 망 관리 플랫폼 및 방법 |
CN1485775A (zh) * | 2002-09-27 | 2004-03-31 | 英业达股份有限公司 | 树形结构节点数据显示处理系统与方法 |
CN1848760A (zh) * | 2005-08-30 | 2006-10-18 | 华为技术有限公司 | 软件组件参数配置方法及系统、及其终端设备 |
CN101651679A (zh) * | 2009-09-16 | 2010-02-17 | 清华大学 | 一种基于树形结构的数据帧解析和处理系统和方法 |
CN103593432A (zh) * | 2013-11-11 | 2014-02-19 | 中广核工程有限公司 | 一种设计参数数据库的设计参数变更方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984204A (zh) * | 2018-06-29 | 2018-12-11 | 南京南瑞继保电气有限公司 | 一种嵌入式装置关联定值的修改方法 |
CN109344050A (zh) * | 2018-08-20 | 2019-02-15 | 中国平安人寿保险股份有限公司 | 一种基于结构树的接口参数分析方法及装置 |
CN109697131A (zh) * | 2018-12-06 | 2019-04-30 | 京信通信系统(中国)有限公司 | 进程间参数管理、同步方法及装置 |
CN109697131B (zh) * | 2018-12-06 | 2021-08-24 | 京信网络系统股份有限公司 | 进程间参数管理、同步方法及装置 |
CN109976799A (zh) * | 2019-02-19 | 2019-07-05 | 武大吉奥信息技术有限公司 | 一种基于树形结构软件配置模型的实现方法及装置 |
CN109976799B (zh) * | 2019-02-19 | 2022-07-08 | 武大吉奥信息技术有限公司 | 一种基于树形结构软件配置模型的实现方法及装置 |
CN110427175A (zh) * | 2019-08-05 | 2019-11-08 | 深圳科蓝金信科技发展有限公司 | 基于通讯接口的前端界面及后台服务生成方法及系统 |
CN110825409A (zh) * | 2019-10-30 | 2020-02-21 | 炬星科技(深圳)有限公司 | 参数管理方法、电子设备及计算机存储介质 |
CN114035860A (zh) * | 2021-11-04 | 2022-02-11 | 四川启睿克科技有限公司 | 一种基于rpa全局变量模块的流程参数配置系统 |
CN114035860B (zh) * | 2021-11-04 | 2023-06-13 | 四川启睿克科技有限公司 | 一种基于rpa全局变量模块的流程参数配置系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105446724B (zh) | 2019-11-29 |
WO2015154435A1 (zh) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105446724A (zh) | 软件参数的管理方法及装置 | |
CN106020930B (zh) | 一种基于应用容器的应用管理方法及系统 | |
CN106576054B (zh) | 用于动态网络设备配置的系统和方法 | |
CN105516233B (zh) | 用于在一个或多个云系统上便携部署应用的方法和系统 | |
CN100478882C (zh) | 自主系统管理的方法和系统 | |
US20080263082A1 (en) | Recovery segment identification in a computing infrastructure | |
US20030212684A1 (en) | System and method for adapting preferences based on device location or network topology | |
CN103473696A (zh) | 一种收集、分析和分发网络商业信息的方法和系统 | |
CN1820514B (zh) | 管理电信网络的系统体系结构、方法和计算机程序产品 | |
CN103329063A (zh) | 用于实时地监视和管理数据中心资源的系统和方法 | |
CN103425511A (zh) | 云计算环境中应用软件安装部署的系统及方法 | |
CN101248416A (zh) | 组件架构 | |
CN104508628A (zh) | 针对受管理的服务的监控 | |
CN101185303A (zh) | 创建用于绑定应用程序与关联后端服务器之间的消息的映射文档的系统及方法 | |
CN114040009B (zh) | 微服务管理平台网关的实现方法、存储介质及电子设备 | |
CN102333108A (zh) | 分布式缓存同步系统及方法 | |
CN109343858A (zh) | 一种基于服务端渲染的自动建站容器部署系统及其工作方法 | |
CN103390018A (zh) | 一种基于SDD的Web服务数据建模与搜索方法 | |
CN101739603B (zh) | 集中共享型的数字城管应用平台系统和实现方法 | |
CN111045652B (zh) | 配电网开发及服务系统 | |
CN114253661A (zh) | 基于容器云计算平台的产品结构 | |
CN108494867A (zh) | 服务灰度处理的方法、装置、系统以及路由服务器 | |
CN113157737B (zh) | 服务实例关联关系动态构建系统 | |
CN113127526A (zh) | 一种基于Kubernetes的分布式数据存储和检索系统 | |
JP2014209365A (ja) | 装置へのコンテンツの分配を管理するシステムと方法とプログラムを提供する記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20191008 Address after: 210012 Nanjing, Yuhuatai District, South Street, Bauhinia Road, No. 68 Applicant after: Nanjing Zhongxing New Software Co., Ltd. Address before: 518057 Nanshan District science and technology, Guangdong Province, South Road, No. 55, No. Applicant before: ZTE Communications Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |