CN1909693A - 数据配置文件在不同软件版本间进行转换的方法及装置 - Google Patents
数据配置文件在不同软件版本间进行转换的方法及装置 Download PDFInfo
- Publication number
- CN1909693A CN1909693A CNA2006101097122A CN200610109712A CN1909693A CN 1909693 A CN1909693 A CN 1909693A CN A2006101097122 A CNA2006101097122 A CN A2006101097122A CN 200610109712 A CN200610109712 A CN 200610109712A CN 1909693 A CN1909693 A CN 1909693A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- back end
- configuration file
- current version
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据配置文件在不同软件版本间进行转换的方法及装置,设置对应于当前版本的满配置的缺省数据配置文件,然后根据满配置的缺省数据配置文件和转换原则,将原版本的数据配置文件转换为当前版本的数据配置文件,使数据配置文件能够根据语法文件和缺省的数据配置文件自动转换,为数据配置文件在不同软件版本间进行转换提供了极大的方便。数据配置文件在不同软件版本间进行转换时,不再依赖于后台软件,使得实现更为合理,而且在软件版本的回退和升级的处理是一致的,解决了现有版本回退时数据配置文件无法自动回退的问题。
Description
技术领域
本发明涉及数据转换领域,特别是指一种数据配置文件在不同软件版本间进行转换的方法及装置。
背景技术
宽度码分多址(Wide-band Code Division Multiple Access,WCDMA)基站(NodeB)软件的配置数据是采用可扩展标记语言(eXtensible MarkupLanguage,XML)文件的格式进行存储的。配置数据用来描述基站的一些配置参数,如单板数量等。XML提供了用于严格约束存储格式和逻辑结构的机制。XML文件的特点是语法完整、结构清晰、可读性强。为了在基站启动和修改配置数据时,能够对配置数据进行比较严格的合法性检查,在XML数据中心除了基站启动时所需的基于配置数据的数据配置文件外,还有一个用来定义数据配置文件语法的配套语法文件。所述XML数据中心用于管理和维护基站的数据配置文件,提供对基站所有配置数据的访问和存储。
由于基站在不同的软件版本之间,不可避免地存在配置数据的数据节点的增加、删除和修改,使得不同软件版本的配置数据不同,进而导致不同软件版本的数据配置文件和语法文件存在一定差异。对于一个特定的软件版本,配置数据的语法文件是固定不变的,可作为软件包的一部分,在基站升级过程中对该语法文件进行自动升级,但是对于数据配置文件,不同的基站之间数据配置文件也不尽相同。在基站软件版本升级前后,需要保持配置数据的延续性,因此,要求基站在完成升级并启动后,原来的配置数据不能改变。如果直接使用老版本的数据配置文件,老版本的数据配置文件与新版本的语法文件会不匹配,使得语法校验失败,因此,就需要在基站软件升级的过程中对数据配置文件进行同步升级,这样就引入了配置数据的平滑升级问题。配置数据的平滑升级是指基站在下载软件包并激活后,配置数据能够从老版本升级至新版本,即必须保持升级前的配置数据,老版本的配置数据在新版本中还存在,并增加新版本的配置数据,新增配置数据的初始取值可采用缺省值;同时在进行版本回退时,能够继续使用升级前的配置数据。
目前,通常采用两种方法对基站的配置数据进行升级,一种是通过后台对基站的配置数据进行升级;另一种是通过预留(Reserved)节点的方式来对基站的配置数据进行升级。
通过后台对基站的配置数据进行升级的具体处理过程为:基站下载软件包前,后台中的维护台首先将基站的数据配置文件上传至后台中的新版本的配置台,然后新版本的配置台将老版本的数据配置文件转换为新版本的数据配置文件,然后维护台再将新版本的数据配置文件下载至基站,最后基站下载软件包并进行激活处理,以上所描述的过程均需要由管理员对后台进行相应操作才能实现,实际是一种人工方式的手动升级。对通过后台对基站的配置数据进行升级的方案进行改进后,可实现数据配置文件上传、数据配置文件的转换和下载的自动化,并将这些处理合并到基站的软件升级过程中,这样,在基站软件升级过程中就可将老版本的数据配置文件自动转换为新版本的数据配置文件,并保留老版本的配置数据,实行配置数据的平滑升级。
如果采用手动方式升级数据配置文件,每一步都需要管理员的参与,显然过于麻烦,更无法实现基站的批量升级。如果采用自动方式升级数据配置文件,虽然无须管理员的参与,但是要求基站软件版本与后台软件版本相配套,存在基站软件版本与后台软件版本依赖性过强的问题。由于基站软件和后台软件都是分别开发的,因此,基站软件和后台软件很难保证配套,而且在实现上也非常不合理。配置台对数据配置文件的转换只是在基站软件由低版本向高版本转化时,进行了一些特殊处理,例如,配置台根据软件的老版本和新版本,对需要增加或删除的数据节点进行增加或删除,这样,配置台每进行一个基站软件版本的升级,就需要进行一些特殊处理,因此,导致每个配置台版本都需要针对数据配置文件的结构改变进行特殊处理。由于配置台对数据配置文件的转换是通过特殊处理实现的,具有不可逆性,这样,在进行版本回退时,配置台就无法实现数据配置文件的自动转换。
通过Reserved节点的方式来对基站的配置数据进行升级的具体处理过程为:在数据配置文件的语法文件中对各种数据类型的数据节点进行预留,将这些数据节点称为Reserved节点,Reserved节点不具有结构性和层次关系,所有的Reserved节点都位于同一层中,每一个Reserved节点对应于基站中的一个配置数据,在新版本的软件包中包含一个本版本相对于基准版本软件、如老版本的软件增加的Reserved节点的补丁数据文件,基站下载新版本软件包并激活时,将补丁数据文件的新增Reserved节点自动增加到原来的数据配置文件中,即新的软件版本中需要增加和修改数据节点一律采用增加Reserved节点的方式来实现,新的软件版本中需要删除节点时,为保持原有数据结构的完整性,可不做任何处理。这样,只要在语法文件中定义足够多的数据类型,且不对每个数据类型包含的数据节点数量进行限制,对于基站的各个软件版本而言,均无需改变配置数据的语法文件,因此,不再出现不同软件版本之间的数据配置文件与语法文件不匹配的问题。
但是,由于所有新增的Reserved节点都在同一层,使得Reserved节点之间不存在明确的关联性,失去了数据节点间的层次结构性;并且由于新增的Reserved节点的名称都是定死的,使得这些数据节点在XML数据中心的含义不明确,需要通过配置台来获取这些Reserved节点所代表的含义;对于新增的Reserved节点只是进行数据节点类型的语法校验,并未对Reserved节点的数量和顺序进行严格的语法校验,这样就违背了具有严格逻辑结构的XML文件作为数据配置文件的初衷。
发明内容
有鉴于此,本发明的目的在于提供一种数据配置文件在不同软件版本间进行转换的方法及装置,方便、快捷地使数据配置文件在不同软件版本间进行平滑转换,并保证转换后的数据配置文件具有严格的逻辑结构。
为了达到上述目的,本发明提供的数据配置文件在不同软件版本间进行转换的方法包括以下步骤:
A、设置对应于当前软件版本的满配置的缺省数据配置文件;
B、根据所述缺省数据配置文件和转换原则,将原版本的数据配置文件转换为当前版本的数据配置文件。
步骤A中所述满配置的缺省数据配置文件,为:包括所有需要配置的数据节点、且数据节点的配置数据为缺省值的数据配置文件。
所述步骤B包括以下步骤:
B1、对所述缺省数据配置文件进行解析,生成当前版本缺省配置树;
B2、获取原版本配置树和当前版本缺省配置树的根节点;
B3、对位于所述根节点下的两棵子树进行比较并根据转换规则进行转换;
B4、生成当前版本的数据配置文件。
所述步骤B2与步骤B3之间,进一步包括步骤B30:判断原版本配置子树根节点是否需要进行特殊处理,如果是,调用节点处理函数对该数据节点进行处理,否则,继续执行步骤B3。
所述步骤B之前,进一步包括:将需要进行特殊处理的数据节点的标识和节点处理函数注册到特殊处理节点列表中。
所述步骤B3包括以下步骤:
B31、判断原版本配置子树的根数据节点与当前版本缺省配置子树的根数据节点是否为匹配数据节点,如果是,则继续执行步骤B32,否则,继续执行步骤B33;
B32、当前版本数据节点的属性采用匹配的当前版本缺省数据节点的属性,结束当前转换流程;
B33、对于原版本数据配置文件中存在而当前版本缺省数据配置文件中不存在的数据节点,当前版本数据配置文件中不包含仅原版本数据配置文件中存在的数据节点,和/或,对于原版本数据配置文件中不存在而当前版本缺省数据配置文件中存在的数据节点,将所述数据节点添加至当前版本数据配置文件中。
步骤B32所述结束当前转换流程之前,进一步包括:相匹配的数据节点为简单元素节点时,如果原版本数据节点与匹配的当前版本缺省数据节点的数据类型相同,则当前版本数据节点采用匹配的原版本数据节点的配置数据;如果原版本数据节点与匹配的当前版本缺省数据节点的数据类型不同,且当前版本缺省数据节点的数据类型均为数字,当原版本数据节点能够满足当前版本语法文件的数据类型范围要求时,当前版本数据节点采用匹配的原版本数据节点的配置数据,当原版本数据节点无法满足当前版本语法文件的数据类型范围要求时,当前版本数据节点采用匹配的当前版本缺省数据节点的缺省配置数据;如果原版本数据节点和匹配的当前版本缺省数据节点这两个数据节点中,一个数据节点的数据类型是字符串,另一个数据节点的数据类型是数字,则当前版本数据节点采用匹配的当前版本缺省数据节点的缺省配置数据。
所述步骤B32进一步包括:相匹配的数据节点为复合元素节点时,在复合元素节点的孩子节点中搜索匹配数据节点,如果能够搜索到匹配数据节点,则继续返回执行步骤B32;如果无法搜索到匹配数据节点,则继续执行步骤B33。
所述步骤B32进一步包括:原版本数据节点和匹配的当前版本缺省数据节点这两个数据节点中,一个数据节点是复合元素节点,另一个数据节点是简单元素节点,则当前版本数据节点完全采用当前版本缺省数据节点的缺省配置数据。
所述简单元素节点为:孩子节点中不允许元素节点存在的数据节点。
所述复合元素节点为:孩子节点中允许存在元素节点和/或注释节点、没有非空的文本节点存在的数据节点。
步骤B33中所述将所述数据节点添加至当前版本数据配置文件中,为:原版本数据配置文件中的数据节点数量为n,当前版本语法规定的最小数据节点数量为m,如果n≥m,则当前版本数据配置文件中不需要添加仅当前版本缺省数据配置文件中存在的数据节点;如果n<m,则当前版本数据配置文件中需要添加仅当前版本缺省数据配置文件中存在的数据节点。
所述将仅当前版本缺省数据配置文件中存在的数据节点添加至当前版本数据配置文件中,包括:首先判断将要添加的数据节点在当前版本数据配置文件中是否已经存在,如果是,则跳转至当前版本缺省数据配置文件中待添加的下一数据节点,否则,将该数据节点添加至当前版本数据配置文件中。
步骤B32或步骤B33之后,进一步包括:判断是否还存在未进行处理的原版本配置子树或当前版本缺省配置子树,如果是,则返回执行步骤B31;否则,继续执行步骤B4。
所述调用节点处理函数对该数据节点进行处理之后,进一步包括:判断是否还存在未进行处理的原版本配置子树或当前版本缺省配置子树,如果是,则返回执行步骤B30;否则,继续执行步骤B4。
本发明提供的数据配置文件在不同软件版本间进行转换的装置用于对所述缺省数据配置文件进行解析,生成当前版本缺省配置树,获取原版本配置树和当前版本缺省配置树的根节点,对位于所述根节点下的两棵子树进行比较并根据转换规则进行转换,生成当前版本的数据配置文件。
该装置包括:解析单元,用于对当前版本的满配置的缺省数据配置文件进行解析,生成当前版本缺省配置树并提供给转换单元;转换单元,用于获取原版本配置树和当前版本缺省配置树的根节点,对两棵子树进行比较,并根据存储的转换规则进行转换,将转换后的配置数据提供给生成单元;生成单元,用于将经过转换的配置数据生成当前版本数据配置文件。
本发明中,设置对应于当前版本的满配置的缺省数据配置文件,然后根据满配置的缺省数据配置文件和转换原则,将原版本的数据配置文件转换为当前版本的数据配置文件,使数据配置文件能够根据语法文件和缺省的数据配置文件自动转换,为数据配置文件在不同软件版本间进行转换提供了极大的方便。数据配置文件在不同软件版本间进行转换时,不再依赖于后台软件,使得实现更为合理,而且在软件版本的回退和升级的处理是一致的,解决了现有版本回退时数据配置文件无法自动回退的问题。
另外,转换后的当前版本数据配置文件中各数据节点之间的逻辑关联性和各数据节点的含义均能够明确表达出来,使得数据配置文件可读性大大增强。对数据配置文件中所有数据节点的语法校验得到了增强,真正达到了采用具有严格逻辑结构的文件、如XML文件作为数据配置文件的目的。
附图说明
图1示出了本发明中数据配置文件平滑升级流程图;
图2示出了本发明中根据转换原则转换数据配置文件流程图;
图3示出了本发明中数据配置文件平滑升级示意图;
图4示出了本发明中XML数据平滑升级单元结构示意图。
具体实施方式
本发明中,设置对应于当前版本的满配置的缺省数据配置文件,然后根据满配置的缺省数据配置文件和转换原则,将原版本的数据配置文件转换为当前版本的数据配置文件,当前版本的数据配置文件中包含有原版本的配置数据,并且当前版本的语法文件能够对转换后的数据配置文件进行校验,转换后的数据配置文件具有严格的逻辑结构。满配置的缺省数据配置文件是指数据配置文件中包括所有可能需要配置的数据节点,且数据节点的配置数据为缺省值。满配置的缺省数据配置文件可被包含在当前版本的软件包中,也可以配置在数据中心中。
下面以基站中XML格式数据配置文件的平滑升级为例,对本发明的具体实现进行详细说明。
图1示出了本发明中数据配置文件平滑升级流程图,如图1所示,数据配置文件在不同软件版本间平滑升级的处理过程包括以下步骤:
步骤101:对新版本的满配置的缺省数据配置文件进行解析,生成新版本缺省配置树。XML解析单元采用文档对象模型(Document Object Model,DOM)将待分析的XML文件、即XML格式的数据配置文件解析成内存中的一棵文档对象树,所有对数据配置文件的访问,都会通过修改访问对象树中的节点来完成。
步骤102:获取老版本配置树和新版本缺省配置树的根节点。每个XML文件与一个树结构相对应,并且每个树结构只有唯一的一个顶层数据节点,该顶层数据节点即为根节点,因此,可根据XML文件的特点确定数据配置文件的根节点。
步骤103:对两棵子树进行比较并根据转换规则进行转换。子树是一个相对概念,树的每一个分支毫无疑义地都是一个子树,但是子树的分支也可称为子树。这样,本步骤就是一个循环递推的过程,即本步骤一直执行到将老版本配置树和新版本缺省配置树中的所有子树都进行了比较和转换。根据转换规则进行转换的具体处理过程如图2所示:
步骤201:判断老版本配置子树根节点是否需要进行特殊处理,如果是,则继续执行步骤202;否则,继续执行步骤203。位于一个子树最顶层的节点即为该子树的根节点。对于需要进行特殊处理的数据节点,将该数据节点的节点标识(ID)和节点处理函数注册到特殊处理节点列表中,这样,如果节点标识在特殊处理节点列表中,则需要对相应数据节点进行特殊处理;如果节点标识不在特殊处理节点列表中,则不需要对相应数据节点进行特殊处理。
步骤202:调用节点处理函数对相应数据节点进行处理,然后继续执行步骤206。节点处理函数可与节点标识一一对应,即针对不同的数据节点进行不同的特殊处理,节点处理函数也可与多个节点标识相对应,即一个节点处理函数适用于对多个节点的特殊处理。不同的特殊处理过程可通过调用不同的节点处理函数来实现,即不同的节点处理函数对应不同的特殊处理过程。
如果老版本数据节点的数据类型不需要变化,但其表示的含义需要改变时,可将老版本数据节点注册到特殊处理节点列表中,该特殊处理节点列表中还包含有对相应节点进行相应特殊处理的节点处理函数。
例如,老版本数据配置文件中有如下数据节点,该数据节点中含有发射功率RADIOPOWER的配置:
<MTRU id="0x220000">
<BRDSTART id="0x221000">1</BRDSTART>
<RADIOPOWER id="0x222000">2</RADIOPOWER>
</MTRU>
老版本数据配置文件中,与RADIOPOWER的配置值相对应的单位为1dbm,新版本数据配置文件中需要对该数据节点配置得更精确一些,将配置值的单位更改为0.1dbm,然而该数据节点的数据类型不需要变化,即在新版本数据配置文件中仍然是整数类型,但是如果直接采用后面描述的转换规则对该数据节点进行转换,该数据节点的内容在转换前后不会发生变化,但是却改变了原来配置的物理含义,发射功率配置变为0.2dbm,但如果不改变原配置的物理含义,则该数据节点的配置还应该为2dbm,此时,就需要对该节点进行特殊处理,具体的特殊处理为:调用节点处理函数对该节点构造新的节点。采用特殊处理后的数据节点变为:
<MTRU id="0x220000">
<BRDSTART id="0x221000">1</BRDSTART>
<RADIOPOWER id="0x222000">20</RADIOPOWER>
</MTRU>
步骤203:判断两棵子树的根节点是否为匹配数据节点,即判断老版本配置子树的根节点与新版本缺省配置子树的根节点是否为匹配数据节点,如果是,则继续执行步骤204;否则,继续执行步骤205。在两个数据配置文件中,如果两个数据节点的节点名称、节点标识以及相应数据节点在数据配置文件中的路径均相同,则这两个数据节点为匹配数据节点。节点名称用于指明数据节点的物理含义,节点的标识用于对数据节点进行唯一标识,节点路径是数据配置文件、即XML文件中一序列数据节点的集合,用于描述从根节点到指定数据节点的层次路径。同一个路径下可能会存在多个名称相同的数据节点,这些节点通过节点标识来进行区分。
步骤204:根据转换规则一对老版本数据节点进行转换,然后继续执行步骤206。
在对转换规则一进行描述之前,首先对一些术语的基本概念进行明确。XML文件的形式示例如下:
<?xml version="1.0"?>
<NODEB id="0x0"xmlns="NodeBCfgBiz.xml">
<NODEBNAME id="0x0100000">huihongdasha</NODEBNAME>
<BRD id=0x200000>
<NMPT id="0x210000">
<!--This is a comment-->
<BRDSTART id="0x211000">1</BRDSTART>
……
<NMPT>
……
</BRD>
……
</NODEB>
在XML文件中,形如<?>的数据节点为文档节点,位于XML文件的头部;形如以<>开始、以</>结束的数据节点为元素节点,其中数据节点NODEB为该XML文件中的根节点;形如<!-- -->的数据节点为注释节点;仅为一串字符串、无格式要求的数据节点为文本节点,其中“1”为文本节点。在XML文件中节点层次结构没有固定的格式,节点的名称是完全根据相关参数来确定的。
叶子元素节点和非叶子元素节点均为元素节点中的一种,叶子元素节点的孩子节点中不能有元素节点,非叶子元素节点的孩子节点中可以有元素节点。叶子元素节点或非叶子元素节点的下层节点称为孩子节点。如上所述XML文件的形式示例中,数据节点“NMPT”为非叶子元素节点,其孩子节点中有元素节点“BRDSTART”;数据节点“BRDSTART”为叶子元素节点,其孩子节点中没有元素节点。
简单元素节点是指XML数据配置文件中的叶子元素节点,即其孩子节点中不允许元素节点的存在,只可能存在文本节点和注释节点,其中文本节点与具体配置数据相对应。复合元素节点是指XML数据配置文件中的非叶子元素节点,即其孩子节点中允许存在元素节点和/或注释节点,没有非空的文本节点存在。
数据配置文件中的每个数据节点都具有节点标识,用于唯一地标识相应数据节点;同时数据节点还具有一定的属性,例如,数据节点的数据是否为静态配置数据。数据类型是指数据配置文件中能涉及到的数据的各种类型,如整数(int)、字符串(string)等。
转换规则一
1)老版本数据配置文件和新版本缺省数据配置文件中,相匹配的数据节点为简单元素节点时,新版本数据节点的属性完全采用匹配的新版本缺省数据节点的属性,如果老版本数据节点与匹配的新版本缺省数据节点的数据类型相同,则新版本数据节点完全采用匹配的老版本数据节点的配置数据;如果老版本数据节点与匹配的新版本缺省数据节点的数据类型不同,且新版本缺省数据节点的数据类型均为数字,则当老版本数据节点能够满足新版本语法文件的数据类型范围要求时,如老版本数据节点的数据类型范围与新版本语法文件的数据类型范围一致,又如新版本语法文件的数据类型范围能够包含老版本数据节点的数据类型范围,新版本数据节点采用匹配的老版本数据节点的配置数据,当老版本数据节点无法满足新版本语法文件的数据类型范围要求时,新版本数据节点使用匹配的新版本缺省数据节点的缺省配置数据;如果老版本数据节点和匹配的新版本缺省数据节点这两个数据节点中,一个数据节点的数据类型是字符串,另一个数据节点的数据类型是数字,则新版本数据节点采用匹配的新版本缺省数据节点的缺省配置数据。
2)老版本数据配置文件和新版本缺省数据配置文件中,相匹配的数据节点为复合元素节点时,新版本数据节点的属性完全采用匹配的新版本缺省数据节点的属性,然后在复合元素节点的孩子节点中搜索匹配数据节点,如果能够搜索到匹配数据节点,则继续根据转换规则一进行转换;如果无法搜索到匹配数据节点,则继续根据后续的转换规则二和转换规则三进行转换。
3)老版本数据配置文件和新版本缺省数据配置文件中,老版本数据节点和匹配的新版本缺省数据节点这两个数据节点中,一个数据节点是复合元素节点,另一个数据节点是简单元素节点,则新版本数据节点完全采用新版本缺省数据节点的缺省配置数据。
步骤205:根据转换规则二和/或三对老版本数据节点进行转换,然后继续执行步骤206。
转换规则二
对于老版本数据配置文件中存在而新版本缺省数据配置文件中不存在的数据节点,则新版本数据配置文件中不包含仅老版本数据配置文件中存在的数据节点。
转换规则三
对于老版本数据配置文件中不存在而新版本缺省数据配置文件中存在的数据节点,需要根据老版本数据配置文件中的数据节点数量n和新版本语法规定的最小数据节点数量m,来确定新版本数据配置文件中是否需要添加仅新版本缺省数据配置文件中存在的数据节点,如果n≥m,则新版本数据配置文件中无需添加仅新版本缺省数据配置文件中存在的数据节点;如果n<m,则新版本数据配置文件中需要添加仅新版本缺省数据配置文件中存在的数据节点。在将仅新版本缺省数据配置文件中存在的数据节点添加至新版本数据配置文件中时,首先判断将要添加的数据节点在新版本数据配置文件中是否已经存在,如果是,则跳转至新版本缺省数据配置文件中待添加的下一数据节点,否则,将相应数据节点添加至新版本数据配置文件中,以保证添加的数据节点与新版本数据配置文件中已经存在的数据节点不重复。
步骤206:判断是否还存在未进行处理的老版本配置子树或新版本缺省配置子树,如果是,则返回执行步骤201;否则,结束转换流程,继续执行步骤104。
步骤104:将经过转换的配置数据生成新版本数据配置文件,实现数据配置文件的升级。
图3示出了本发明中数据配置文件平滑升级示意图,如图3所示,基站的软件版本升级时,将新版本的语法文件和满配置的缺省数据配置文件解包到指定目录下,基站复位后,在XML数据中心启动的过程中,XML数据平滑升级单元根据老版本的配置树、新版本的缺省配置树生成新版本数据配置文件,并使用新版本语法文件对新版本数据配置文件进行严格的预防校验。图1和图2所述的操作均由XML数据平滑升级单元执行,该XML数据平滑升级单元位于基站的XML数据中心。
图4示出了本发明中XML数据平滑升级单元结构示意图,如图4所示,XML数据平滑升级单元包括XML解析单元、转换单元和生成单元,其中,XML解析单元用于对新版本的满配置的缺省数据配置文件进行解析,生成新版本缺省配置树并提供给转换单元;转换单元用于获取老版本配置树和新版本缺省配置树的根节点,对两棵子树进行比较,并根据存储的转换规则进行转换,将转换后的配置数据提供给生成单元;生成单元用于将经过转换的配置数据生成新版本数据配置文件。
在进行软件版本回退时,处理过程与以上描述相同,进行软件版本的回退时与以上所述升级的处理是一致的,解决了现有技术中版本回退时数据配置文件无法自动回退的问题,不再赘述。因此,本发明提出的方案可使数据配置文件在不同软件版本间进行平滑转换,即针对软件版本升级和软件版本回退均适用,只需使满配置的缺省数据配置文件与转换后的软件版本相对应即可。
本发明提出的方案适用于与XML具有相同特点的其他文件格式的数据配置文件在不同版本间的转换。
本发明提出的方案适用于任何需要将数据配置文件在不同软件版本间进行转换的情况,如与基站同样需要配置数据的其他网络单元。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (17)
1、一种数据配置文件在不同软件版本间进行转换的方法,其特征在于,该方法包含以下步骤:
A、设置对应于当前软件版本的满配置的缺省数据配置文件;
B、根据所述缺省数据配置文件和转换原则,将原版本的数据配置文件转换为当前版本的数据配置文件。
2、根据权利要求1所述的方法,其特征在于,步骤A中所述满配置的缺省数据配置文件,为:包括所有需要配置的数据节点、且数据节点的配置数据为缺省值的数据配置文件。
3、根据权利要求1所述的方法,其特征在于,所述步骤B包括以下步骤:
B1、对所述缺省数据配置文件进行解析,生成当前版本缺省配置树;
B2、获取原版本配置树和当前版本缺省配置树的根节点;
B3、对位于所述根节点下的两棵子树进行比较并根据转换规则进行转换;
B4、生成当前版本的数据配置文件。
4、根据权利要求3所述的方法,其特征在于,所述步骤B2与步骤B3之间,进一步包括:
B30、判断原版本配置子树根节点是否需要进行特殊处理,如果是,调用节点处理函数对该数据节点进行处理,否则,继续执行步骤B3。
5、根据权利要求4所述的方法,其特征在于,所述步骤B之前,进一步包括:将需要进行特殊处理的数据节点的标识和节点处理函数注册到特殊处理节点列表中。
6、根据权利要求4所述的方法,其特征在于,所述步骤B3包括以下步骤:
B31、判断原版本配置子树的根数据节点与当前版本缺省配置子树的根数据节点是否为匹配数据节点,如果是,则继续执行步骤B32,否则,继续执行步骤B33;
B32、当前版本数据节点的属性采用匹配的当前版本缺省数据节点的属性,结束当前转换流程;
B33、对于原版本数据配置文件中存在而当前版本缺省数据配置文件中不存在的数据节点,当前版本数据配置文件中不包含仅原版本数据配置文件中存在的数据节点,和/或,对于原版本数据配置文件中不存在而当前版本缺省数据配置文件中存在的数据节点,将所述数据节点添加至当前版本数据配置文件中。
7、根据权利要求6所述的方法,其特征在于,步骤B32所述结束当前转换流程之前,进一步包括:相匹配的数据节点为简单元素节点时,如果原版本数据节点与匹配的当前版本缺省数据节点的数据类型相同,则当前版本数据节点采用匹配的原版本数据节点的配置数据;如果原版本数据节点与匹配的当前版本缺省数据节点的数据类型不同,且当前版本缺省数据节点的数据类型均为数字,当原版本数据节点能够满足当前版本语法文件的数据类型范围要求时,当前版本数据节点采用匹配的原版本数据节点的配置数据,当原版本数据节点无法满足当前版本语法文件的数据类型范围要求时,当前版本数据节点采用匹配的当前版本缺省数据节点的缺省配置数据;如果原版本数据节点和匹配的当前版本缺省数据节点这两个数据节点中,一个数据节点的数据类型是字符串,另一个数据节点的数据类型是数字,则当前版本数据节点采用匹配的当前版本缺省数据节点的缺省配置数据。
8、根据权利要求6所述的方法,其特征在于,所述步骤B32进一步包括:相匹配的数据节点为复合元素节点时,在复合元素节点的孩子节点中搜索匹配数据节点,如果能够搜索到匹配数据节点,则继续返回执行步骤B32;如果无法搜索到匹配数据节点,则继续执行步骤B33。
9、根据权利要求6所述的方法,其特征在于,所述步骤B32进一步包括:原版本数据节点和匹配的当前版本缺省数据节点这两个数据节点中,一个数据节点是复合元素节点,另一个数据节点是简单元素节点,则当前版本数据节点完全采用当前版本缺省数据节点的缺省配置数据。
10、根据权利要求7或9所述的方法,其特征在于,所述简单元素节点为:孩子节点中不允许元素节点存在的数据节点。
11、根据权利要求8或9所述的方法,其特征在于,所述复合元素节点为:孩子节点中允许存在元素节点和/或注释节点、没有非空的文本节点存在的数据节点。
12、根据权利要求6所述的方法,其特征在于,步骤B33中所述将所述数据节点添加至当前版本数据配置文件中,为:原版本数据配置文件中的数据节点数量为n,当前版本语法规定的最小数据节点数量为m,如果n≥m,则当前版本数据配置文件中不需要添加仅当前版本缺省数据配置文件中存在的数据节点;如果n<m,则当前版本数据配置文件中需要添加仅当前版本缺省数据配置文件中存在的数据节点。
13、根据权利要求12所述的方法,其特征在于,所述将仅当前版本缺省数据配置文件中存在的数据节点添加至当前版本数据配置文件中,包括:首先判断将要添加的数据节点在当前版本数据配置文件中是否已经存在,如果是,则跳转至当前版本缺省数据配置文件中待添加的下一数据节点,否则,将该数据节点添加至当前版本数据配置文件中。
14、根据权利要求4所述的方法,其特征在于,步骤B32或步骤B33之后,进一步包括:判断是否还存在未进行处理的原版本配置子树或当前版本缺省配置子树,如果是,则返回执行步骤B31;否则,继续执行步骤B4。
15、根据权利要求4所述的方法,其特征在于,所述调用节点处理函数对该数据节点进行处理之后,进一步包括:判断是否还存在未进行处理的原版本配置子树或当前版本缺省配置子树,如果是,则返回执行步骤B30;否则,继续执行步骤B4。
16、一种数据配置文件在不同软件版本间进行转换的装置,其特征在于,该装置用于:对所述缺省数据配置文件进行解析,生成当前版本缺省配置树,获取原版本配置树和当前版本缺省配置树的根节点,对位于所述根节点下的两棵子树进行比较并根据转换规则进行转换,生成当前版本的数据配置文件。
17、根据权利要求16所述的装置,其特征在于,该装置包括:
解析单元,用于对当前版本的满配置的缺省数据配置文件进行解析,生成当前版本缺省配置树并提供给转换单元;
转换单元,用于获取原版本配置树和当前版本缺省配置树的根节点,对两棵子树进行比较,并根据存储的转换规则进行转换,将转换后的配置数据提供给生成单元;
生成单元,用于将经过转换的配置数据生成当前版本数据配置文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101097122A CN100493221C (zh) | 2006-08-07 | 2006-08-07 | 数据配置文件在不同软件版本间进行转换的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101097122A CN100493221C (zh) | 2006-08-07 | 2006-08-07 | 数据配置文件在不同软件版本间进行转换的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1909693A true CN1909693A (zh) | 2007-02-07 |
CN100493221C CN100493221C (zh) | 2009-05-27 |
Family
ID=37700662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101097122A Active CN100493221C (zh) | 2006-08-07 | 2006-08-07 | 数据配置文件在不同软件版本间进行转换的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100493221C (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101437179B (zh) * | 2008-12-17 | 2011-02-09 | 烽火通信科技股份有限公司 | 一种基于epon系统实现批量同步多配置数据的方法 |
CN102195817A (zh) * | 2011-05-25 | 2011-09-21 | 上海华为技术有限公司 | 一种软件升级方法和装置以及软件回退方法和装置 |
CN101355560B (zh) * | 2008-09-12 | 2011-12-14 | 深圳市联软科技有限公司 | 一种数据传输方法及系统 |
CN102546815A (zh) * | 2012-01-20 | 2012-07-04 | 王鑫 | 一种数字电子终端间同步系统和数字电子终端间同步方法 |
CN102611580A (zh) * | 2012-04-01 | 2012-07-25 | Ut斯达康通讯有限公司 | 一种基于规格驱动的多版本网络管理方法 |
CN102742215A (zh) * | 2012-02-17 | 2012-10-17 | 华为技术有限公司 | 对通信设备中配置命令进行清除的方法和装置 |
CN103201739A (zh) * | 2010-11-09 | 2013-07-10 | 日本电气株式会社 | 信息处理设备 |
CN104794236A (zh) * | 2015-05-07 | 2015-07-22 | 中国测绘科学研究院 | 一种地图制图规则构建及其结构化组织方法与系统 |
WO2016202000A1 (zh) * | 2015-06-15 | 2016-12-22 | 中兴通讯股份有限公司 | 差分回退升级方法及装置 |
CN107608694A (zh) * | 2017-09-18 | 2018-01-19 | 杭州安恒信息技术有限公司 | 安全产品配置升级方法及装置 |
CN108958827A (zh) * | 2017-05-25 | 2018-12-07 | 贵州白山云科技有限公司 | 一种处理程序升级故障的方法和系统 |
CN109491701A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种配置信息恢复方法、系统、设备及计算机存储介质 |
CN110175020A (zh) * | 2019-04-10 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 框架属性信息扩展方法和装置、框架加载方法和装置 |
CN110347413A (zh) * | 2019-06-27 | 2019-10-18 | 北京口袋时尚科技有限公司 | 软件配置信息更新方法及装置 |
-
2006
- 2006-08-07 CN CNB2006101097122A patent/CN100493221C/zh active Active
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101355560B (zh) * | 2008-09-12 | 2011-12-14 | 深圳市联软科技有限公司 | 一种数据传输方法及系统 |
CN101437179B (zh) * | 2008-12-17 | 2011-02-09 | 烽火通信科技股份有限公司 | 一种基于epon系统实现批量同步多配置数据的方法 |
CN103201739A (zh) * | 2010-11-09 | 2013-07-10 | 日本电气株式会社 | 信息处理设备 |
CN102195817A (zh) * | 2011-05-25 | 2011-09-21 | 上海华为技术有限公司 | 一种软件升级方法和装置以及软件回退方法和装置 |
CN102546815A (zh) * | 2012-01-20 | 2012-07-04 | 王鑫 | 一种数字电子终端间同步系统和数字电子终端间同步方法 |
CN102742215A (zh) * | 2012-02-17 | 2012-10-17 | 华为技术有限公司 | 对通信设备中配置命令进行清除的方法和装置 |
CN102742215B (zh) * | 2012-02-17 | 2015-01-07 | 华为技术有限公司 | 对通信设备中配置命令进行清除的方法和装置 |
US9762430B2 (en) | 2012-02-17 | 2017-09-12 | Huawei Technologies Co., Ltd. | Method and apparatus for clearing configuration command in communication equipment |
CN102611580A (zh) * | 2012-04-01 | 2012-07-25 | Ut斯达康通讯有限公司 | 一种基于规格驱动的多版本网络管理方法 |
CN102611580B (zh) * | 2012-04-01 | 2014-10-29 | Ut斯达康通讯有限公司 | 一种基于规格驱动的多版本网络管理方法 |
CN104794236B (zh) * | 2015-05-07 | 2018-04-20 | 中国测绘科学研究院 | 一种地图制图规则构建及其结构化组织方法与系统 |
CN104794236A (zh) * | 2015-05-07 | 2015-07-22 | 中国测绘科学研究院 | 一种地图制图规则构建及其结构化组织方法与系统 |
WO2016202000A1 (zh) * | 2015-06-15 | 2016-12-22 | 中兴通讯股份有限公司 | 差分回退升级方法及装置 |
CN108958827A (zh) * | 2017-05-25 | 2018-12-07 | 贵州白山云科技有限公司 | 一种处理程序升级故障的方法和系统 |
CN108958827B (zh) * | 2017-05-25 | 2021-11-02 | 贵州白山云科技股份有限公司 | 一种处理程序升级故障的方法和系统 |
CN107608694A (zh) * | 2017-09-18 | 2018-01-19 | 杭州安恒信息技术有限公司 | 安全产品配置升级方法及装置 |
CN109491701A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种配置信息恢复方法、系统、设备及计算机存储介质 |
CN110175020A (zh) * | 2019-04-10 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 框架属性信息扩展方法和装置、框架加载方法和装置 |
CN110175020B (zh) * | 2019-04-10 | 2023-08-22 | 创新先进技术有限公司 | 框架属性信息扩展方法和装置、框架加载方法和装置 |
CN110347413A (zh) * | 2019-06-27 | 2019-10-18 | 北京口袋时尚科技有限公司 | 软件配置信息更新方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100493221C (zh) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1909693A (zh) | 数据配置文件在不同软件版本间进行转换的方法及装置 | |
CN1866252A (zh) | 不同版本的配置数据间进行转换的方法和系统 | |
CN1134730C (zh) | 用于减少预装类的脚印的系统和方法 | |
CN100337235C (zh) | 访问数据库的方法及装置 | |
CN1896992A (zh) | 基于应用定制解析xml文档的方法及装置 | |
CN106649771A (zh) | 数据库的数据模型更新方法和系统 | |
CN1526104A (zh) | 分析结构化数据 | |
CN1786965A (zh) | 一种新闻网页正文信息的提取方法 | |
CN1286053C (zh) | 可扩展的文件格式 | |
CN1190053C (zh) | 一种通信设备的数据离线配置方法 | |
CN1908931A (zh) | 一种文字的可变数据排版的方法 | |
CN1766876A (zh) | 用于管理结构化文件的系统和方法 | |
CN1313926C (zh) | 模板编译方法 | |
CN1645372A (zh) | 一种实时内存数据库通用约束的实现方法 | |
CN102096671A (zh) | 一种boss数据库升级脚本的生成方法和设备 | |
CN1614927A (zh) | 在b/s结构中实现树型结构的方法 | |
CN1955957A (zh) | 基于Web服务的数据库自动化操作方法 | |
CN108762749A (zh) | 基于代码分析的系统对象图自动生成方法 | |
CN1862267A (zh) | 对电路原理图进行审查的方法 | |
CN1975669A (zh) | Xml语言描述的业务逻辑映射到应用语言的方法 | |
CN103400050A (zh) | 一种多人协同的核反应堆风险确定方法及系统 | |
CN1945527A (zh) | 可实现代码复用的server版代码生成系统 | |
CN1218246C (zh) | 一种智能网业务管理接入点自动升级的方法 | |
CN1809250A (zh) | 产生自动化布线宏的系统及其方法 | |
CN1588411A (zh) | 一种流程定制管理平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |