专利名称:基于元模型的服务配置方法
技术领域:
本发明属于由计算机软件实现的服务配置技术领域,尤其涉及一种基于元模型的服务配置方法。
背景技术:
在开发各种计算机后台服务时,不可避免的会对服务有若干配置参数。不同的服务有不同的配置参数,同一服务的不同版本也会有不同的配置参数。由此带来了一个问题:如何统一管理服务配置。在现有技术中,通常的做法是先明确当前服务需要哪些配置参数,每个参数类型是什么,然后部署服务的时候填写完整。举例来说,如果开发了一套调度系统,其中有一个用户数据库,需要先分析的配置参数包括:用户名、密码、呼叫权限等。此外服务本身还有:服务名称、服务版本、服务I P端口等。然后再为每个参数确定类型:用户名为字符串类型,密码为整型,呼叫权限为短整型,服务名称为字符串类型,服务版本为整型,服务I P端口为字符串类型。这些配置参数,或存于数据库,或存于xml等配置文件中。目前,现有技术管理服务均是基于语义来配置的。数据管理配置模块(通常是客户端)、数据存储模块(通常是数据库等)和数据使用模块(通常是服务),不仅需要关心数据项的格式和内容(例如需要关心该项是整型,值为30),而且需要关心数据项的语义(如上例中,还需要知道30是表示最大用户量)。这就造成现有技术在服务配置时存在以下问题:1、在开发服务之前,不可能预先完整清楚会有什么配置项,很难做到完整考虑。在开发过程中,不得不做变更,增加了开发工作量。2、不同的服务,配置项千差万别,管理组织方式也不一而同,很难用一种通用方式管理。3、同一个服务的不同版本,配置项也有可能发生变化。配置模块和存储模块很难做到有效兼容。4、为适应后续开发的服务,配置模块和存储模块也不得不做新的开发。
发明内容
本发明的目的在于,提出一种基于元模型的服务配置方法,用以解决现有技术在服务配置时存在的不足。为了实现上述目的,本发明提出的技术方案是,一种基于元模型的服务配置方法,其特征是所述方法包括:步骤1:建立服务配置的元模型,包括确定基本数据类型、服务的通用属性和服务配置参数格式;所述基本数据类型包括长整型、短整型、实数型和字符型;所述服务的通用属性包括服务名称和服务版本;所述服务配置参数格式包括单例参数和参数集,所述单例参数的属性包括参数名、参数可视化含义、参数类型和参数值,所述参数集的属性包括参数名、参数可视化含义、参数类型、参数总数和参数值;步骤2:实例化服务配置的元模型,包括在服务配置的元模型中输入服务名称、月艮务版本和服务配置参数;所述服务配置参数符合服务配置参数格式,并且所述服务配置参数类型是基本数据类型中的一种;步骤3:部署实例化后的服务配置的元模型,包括:将实例化后的服务配置的元模型送入数据管理配置模块,数据管理配置模块按照元模型的规则解析实例化后的服务配置的元模型,得到服务名称、服务版本和服务配置参数,再将服务名称、服务版本和服务配置参数传递到存储模块;存储模块按照元模型的规则解析实例化后的服务配置的元模型,得到服务名称、服务版本和服务配置参数;服务器根据需要通过存储模块读取参数。本发明只需要抽取一套相对完整的语法定义,无须每次均分析将要开发的服务究竟会有什么配置,可以减轻服务开发初期的工作量;并且,当服务发生变化的时候,对配置管理模块和数据存储模块都是透明的,不需要做任何改动即完全正常工作,从而减轻开发和测试的工作量。
图1是基于元模型的服务配置方法流程图。
具体实施例方式下面结合附图,对优选实施例作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。本发明通过分析各种服务配置类型与模式,抽取其中最普遍的特性,以此制定元模型。数据管理配置模块与存储模块,只需要具备解析元模型的能力即可。图1是基于元模型的服务配置方法流程图,如图1所示,本发明提供的基于元模型的服务配置方法包括:步骤1:建立服务配置的元模型。建立元模型的过程,其本质是定义一种语法。需要详细分析后才能抽取最普遍的特性。以下仅为示例!示例通过XML描述了配置过程,实际使用中,用XML、IN1、数据库还是别的任意形式,均不重要。重要的是建立通用的规则即可。<!DOCTYPEcfg[
<!ATTL3ST singletonpara type (int32|int64|doubIe|string) "string”〉
<!ATTLlST paras type (int32|int64|double|string) "srringM>
]>
<ctg>
〈header〉
<meta Template Version = “0.1” />
<svcname = />
<svcVersion = />
</header>
<body>
<singietonpara name = , Semantic = , type = , value = />
<paras name =: , Semantic:= , type = ,count = >
<vaiue = />
</paras>
</body>
</cfg>上述XML简单描述了一个最基本的服务配置元模型。主要有两部分:服务的通用属性和服务配置参数格式。其中,服务的通用属性包括服务名称和服务版本,服务配置参数格式包括单例参数和参数集,所述单例参数的属性包括参数名、参数可视化含义、参数类型和参数值,所述参数集的属性包括参数名、参数可视化含义、参数类型、参数总数和参数值。另外,还要确定基本数据类型,包括长整型、短整型、实数型和字符型。步骤2:实例化服务配置的元模型,包括在服务配置的元模型中输入服务名称、月艮务版本和服务配置参数;所述服务配置参数符合服务配置参数格式,并且所述服务配置参数类型是基本数据类型中的一种。还以上述XML为例,假设有一白板服务需要配置,其中参数有协议I P端口和跨域白板服务地址集。则实例化 如下:
<header>CmetaTemplateVersioii = “0.1” />
<svcname = nWBS6800'’ />
<svc Version = “2.5.1 ”/>
</header>
<body>
<singietonpara name="Sip[P' Semantic="丨]板控制 办议IP' type=string, value= />
<singletonpara name="SipPortM, Semantic=’.l.'i板控制丨办议端 1.1.., type=int32, value= />〈paras name=”crossWBS”,Semantic=,,跨域 I' I 板服务地址 type=string, count = :>〈value = 9 />
</paras>·
</body>步骤3:部署实例化后的服务配置的元模型,包括:将实例化后的服务配置的元模型送入数据管理配置模块,数据管理配置模块按照元模型的规则解析实例化后的服务配置的元模型,得到服务名称、服务版本和服务配置参数,再将服务名称、服务版本和服务配置参数传递到存储模块。存储模块按照元模型的规则解析实例化后的服务配置的元模型,得到服务名称、服务版本和服务配置参数。服务器根据需要通过存储模块读取参数。接上述例子,以下即为一个配置完成的例子:
<header>
<metaTeniplateVe1.sion = “0.Γ./->
<svcname = "WBS6800” />
<svcVersion = “2.5.Γ7>
</heacier>
<body>
〈singletonpara name=”SipIP",Semantic=1'白板控$!j协议IP", type=”string”,vahie=”l丄LI”/>〈singletonpara name=MSipPortii5 Semantic="白板控制协议端口' type=,,int32,' value=”5400”
/>
<patas name=5,crossWBS”, Semantic=”跨域白板服务地址集,,,type=stxing, count = “5”> 〈value = “192.168.7.40:54000” />
<value = “ 92.168.7.41:54000” />
〈value = “192.168.7.42:54000” />
〈value = “192. 68.7.43:54000” />
<value = “192.168.7.44:54000” />
</paras>
body〉o
在提出本发明前,提出了三个问题:I)不同服务之间的配置如何统一管理;2)同一服务的不同版本的配置如何统一管理;3)配置客户端和数据存储模块,如何自适应未知服务。其实上述三个问题,可以合并为统一的一个问题。当我们把同一个服务的不同版本认为是完全不相关的两个服务的话,三个问题可以合并为两个问题。此外,在处理流程中,服务是否已知并不重要。实际上,在制定元模型的时候,可以没有任何一个服务。我们有的仅仅是服务配置的元模型。这其实就是一种规则,一种自定义的语法。配置模块和存储模块,其面对的都是未知服务。现在问题就转化成,如何统一管理各种各样完全未知的服务的配置。其实到这里,问题已经变得很简单了。只要我们预想定义了元模型,所有的服务理解并严格按照元模型规定的法则去定义自己的配置模型。那么配置管理模块和存储模块,可以无障碍、透明的处理这些配置参数。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种基于元模型的服务配置方法,其特征是所述方法包括: 步骤1:建立服务配置的元模型,包括确定基本数据类型、服务的通用属性和服务配置参数格式; 所述基本数据类型包括长整型、短整型、实数型和字符型; 所述服务的通用属性包括服务名称和服务版本; 所述服务配置参数格式包括单例参数和参数集,所述单例参数的属性包括参数名、参数可视化含义、参数类型和参数值,所述参数集的属性包括参数名、参数可视化含义、参数类型、参数总数和参数值; 步骤2:实例化服务配置的元模型,包括在服务配置的元模型中输入服务名称、服务版本和服务配置参数;所述服务配置参数符合服务配置参数格式,并且所述服务配置参数类型是基本数据类型中的一种; 步骤3:部署实例化后的服务配置,包括: 将实例化后的服务配置的元模型送入数据管理配置模块,数据管理配置模块按照元模型的规则解析实例化后的服务配置的元模型,得到服务名称、服务版本和服务配置参数,再将服务名称、服务版本和服务配置参数传递到存储模块; 存储模块按照元模型的规则解析实例化后的服务配置的元模型,得到服务名称、服务版本和服务配置参数; 服务器根据需要通过存储模块读取参数。
全文摘要
本发明公开了由计算机软件实现的服务配置技术领域中的一种基于元模型的服务配置方法。包括建立服务配置的元模型,即确定基本数据类型、服务的通用属性和服务配置参数格式;实例化服务配置的元模型,即在服务配置的元模型中输入服务名称、服务版本和服务配置参数;部署实例化后的服务配置的元模型,即由数据管理配置模块按照元模型的规则解析实例化后的服务配置的元模型,由存储模块按照元模型的规则解析实例化后的服务配置的元模型,服务器根据需要通过存储模块读取参数。本发明无须每次均分析将要开发的服务究竟会有什么配置,对配置管理模块和数据存储模块都是透明的,减轻开发和测试的工作量。
文档编号H04L29/08GK103166793SQ201310039488
公开日2013年6月19日 申请日期2013年1月31日 优先权日2013年1月31日
发明者杨云召 申请人:北京佳讯飞鸿电气股份有限公司