一种数据配置系统及实现数据配置的方法

文档序号:6556784阅读:102来源:国知局

专利名称::一种数据配置系统及实现数据配置的方法
技术领域
:本发明涉及一种数据配置系统及配置方法,尤其涉及一种无需修改代码即可实现对任意数据库进行配置的系统及方法。
背景技术
:仿真工具是为智能业务提供业务测试的一样测试工具,在仿真工具中,不仅要模拟单个的SSP(ServiceSwitchingPoint业务交换点)主机,还要模拟实际网络的组网情况,因此一套仿真工具上要模拟多种主机,同时也就要模拟多种主机的数据配置。SSP主机的数据库数据和实际加载使用的数据文件是不一样的,中间需要进行转化。实际加载使用的数据文件要简单简捷,数据需要尽可能压缩,而为了提高数据的可视性和易用性,数据库中的数据又要尽量意思清晰,必然导致数据文件中的数据和数据库的数据存在较大的差别,过去仿真工具为了满足这些差异性,总要耗费许多的人力,修改代码来完成数据的显示和数据转化。
发明内容本发明的目的就是提供一种数据配置系统及配置方法,在不修改代码的情况下,将数据从代码逻辑中分离出来,仅仅靠数据配置来完成数据从数据库到界面的显示,从数据库到数据文件的转化。为实现本发明提供如下技术方案本发明提供一种数据配置系统,包括,数据库和数据变换部分;数据库,用于保存不同版本的实体数据;数据变换部分,用于数据库中不同版本的实体数据和用户配置界面之间的数据转换并显示用户配置界面,建立数据库数据和用户配置界面的相互读写转换,以及用于实现数据库各个不同版本的实体数据和相应的用户数据文件之间的转换。所述不同版本的实体数据为业务交换点的实体数据。上述系统还包括用户数据文件存储单元,存储由数据变换部分转换的用户数据文件,该用户数据是用业务交换点主机数据格式保存的各个业务交换点的实体数据,是用于向业务交换点提供加载的数据。所述数据变换部分包括数据库描述DBS模块、数据库转换DBC模块和数据库管理DBM模块,其中,DBS模块,用于实现数据库各个业务交换点实体数据和用户配置界面用数据之间的转换;DBC模块,用于实现数据库各个业务交换点实体数据和用户数据文件之间的转换;DBM模块,用于对所述DBS模块和DBC模块进行管理。所述DBS模块包括,存储的DBS文件,记录了数据库各个业务交换点实体数据和用户配置界面显示信息之间的对应关系,以及描述了各个数据库表在界面上的显示属性;DBS解析单元,用于解析DBS文件,并提供供数据显示转换单元调用的DBS解析接口,用于实现数据库各个业务交换点实体数据和用户配置界面数据之间的转换;数据显示转换单元,能调用DBS解析接口,将通过数据库访问接口读出数据库的数据,转换生成供用户配置界面显示的信息,以及将数据显示和配置单元发送来的数据,转换生成数据库数据;数据显示和配置单元,调用数据显示转换单元中的转换函数,实现数据库数据和用户配置界面数据之间的转换。所述DBC模块包括,存储的DBC文件,记录数据库各个业务交换点的实体数据和所述业务交换点主机数据格式之间的对应关系;DBC解析单元,解析DBC文件,生成与主机格式对应的表信息链表动态结构,该结构对应了实体主机的数据格式;用于数据库数据和各个SSP/MSC实体主机格式数据之间转换,并提供供数据文件生成单元调用的DBC解析接口;数据文件生成单元,用于调用数据库数据访问操作单元的数据访问接口,从数据库中读取数据,并根据数据库的数据,调用DBC解析接口,按照解析结果生成实体主机格式数据文件;数据库数据访问操作单元,用于访问读出数据库的数据,提供统一的SQLServer数据库访问的接口,该部分对外提供供其它单元调用的数据访问接口。所述DBC解析单元将解析后的结果持久化到永久介质中。所述DBM模块包括,DBM文件,用于描述系统支持的所有业务交换点和主机实体版本、版本号、软件的DBS文件名、语言种类、实体版本所包含的数据表和界面显示分组方式中的一个或多个;DBM模块提供调用接口,根据版本号即可获得对应的DBC、DBS文件名,从而实现不同版本实体数据的正确转换和实现。本发明还提供一种实现对具有至少两个不同版本实体数据的数据库进行数据配置的方法,该方法如下1)利用DBS文件记录数据库各个不同版本的实体数据和用户配置界面显示信息之间的对应关系;2)提供DBS解析接口,该解析接口用于实现数据库各个不同版本的实体数据和用户配置界面数据之间的转换;3)提供数据显示转换单元,该数据显示转换单元能调用DBS解析接口,生成供用户配置界面显示的信息,以及将数据显示和配置单元发送来的数据,转换生成数据库数据;4)提供数据显示和配置单元,该数据显示和配置单元能够调用数据显示转换单元,实现数据库数据和用户配置界面数据之间的转换。所述不同版本的实体数据为业务交换点的实体数据。所述DBS文件通过关键字语法实现数据库到数据配置界面的显示描述转换。由以下步骤实现数据的显示1)当用户在软件界面上打开一个UserData表时,数据显示和配置单元根据界面控件传递过来的操作消息,调用数据显示转换单元中的转换函数;2)数据显示转换单元首先打开数据库中UserData表,获取表的字段数;然后调用DBS解析单元的解析函数;3)DBS解析单元根据DBS文件的ORDERBY关键字获取表的排序字段和排序属性,根据TABLEATTRIBUTE关键字获取表的编辑属性;并从DBS文件获取显示属性和其它字段属性;4)数据显示转换单元判断是否存在显示属性要求显示的字段,如果存在,数据显示和配置单元根据返回的判断结果操作界面控件创建并插入表头列;数据显示转换单元判断如果存在自动索引字段列,则数据显示和配置单元根据返回的判断结果操作界面控件插入创建自动索引列的表头;5)数据显示转换单元从数据库中UserData表逐条读取表记录,并通过DBS解析单元根据DBS文件的定义,由数据显示和配置单元操作界面控件设置显示行和字段列。由以下步骤实现数据的编辑1)当用户在软件界面上编辑一个UserData表时,数据显示和配置单元根据界面控件传递过来的字段修改消息,调用数据显示转换单元的转换函数;2)数据显示转换单元调用DBS解析单元的接口,根据DBS文件中UserData表的描述信息,初始化表编辑对话框控件的显示规则数据;3)DBS解析单元从数据库获取UserData表字段的基本默认数据,包括字段名、字段类型、字段值等;4)数据显示转换单元以表、字段为索引将数据库读入的字段值从字符串转化为相应的界面显示值;5)数据显示和配置单元将获取的字段的基本默认数据和提示内容拷贝给字段显示控件;字段显示控件可以完成字段的的显示;6)用户在用户配置界面编辑完数据并保存提交时,数据显示和配置单元将界面显示/输入控件输入的数据,通过数据显示转换单元转换成数据库字段格式保存到数据库中。由以下步骤实现数据的添加1)当用户在软件界面上一个UserData表添加数据时,数据显示和配置单元根据界面控件传递过来的字段修改消息,调用数据显示转换单元的转换函数;2)数据显示转换单元调用DBS解析单元获取DBS文件中UserData表的描述信息,根据该UserData表的描述信息初始化表编辑对话框的显示规则数据;3)数据显示转换单元调用DBS解析单元从DBS文件中UserData表获取字段的基本默认数据,包括字段名、字段类型、字段值等;数据显示和配置单元将从DBS文件中获取的字段的基本数据和提示内容(如ToolTip提示内容)拷贝给字段显示/输入控件;4)用户在用户配置界面添加完数据并保存提交时,数据显示和配置单元将界面显示/输入控件输入的数据转换成数据库字段格式保存到数据库中。本发明的技术方案可以适用于任何一种需要进行数据压缩、数据转化和数据配置,且数据又多变的数据支撑体系,是将数据和逻辑分离的一种有效方法。本发明的技术方案还具有如下优点数据配置的简易性,在同一界面上实现对多种数据实体的数据配置;数据配置的友好性,实现多种数据配置方式,如编辑框、下拉选项、数字范围等,对于下拉选项提供直观易懂的配置项,如用户类型提供选项为“普通用户”、“智能用户”等;数据保存的简捷性,在界面上显示友好的配置选项,但在数据库中仅保存对应的数字,例如选项“普通用户”在数据库中对应的“UserType”字段是一个字节的数据,对应值为0;数据转换的准确性,对于各个仿真SSP/MSC组件,可以根据数据库中的数据准确地进行数据转换,得到符合仿真SSP/MSC运行需要的数据文件;实现数据动态加载,在仿真SSP/MSC运行过程中,如数据有改变,可以让界面修改的数据通过数据库更新、数据转换即时生效。通过以下结合附图对本发明优选实施方式的描述,本发明的其他特点、目的和效果将变得更加清楚和易于理解。下面将参考附图来描述本发明的优选实施方式,其中图1为本发明中数据配置系统的结构图;图2为本发明中DBS模块的工作原理图;图3为本发明中DBC模块的工作原理图;图4为本发明中DB物理结构图;图5为本发明中DBC解析和DB生成原理图;图6为本发明中DBC初始化流程;图7为本发明中读取表描述信息处理过程;图8为本发明中读取字段信息处理过程;图9为本发明中装载有相应表名的树型图;在所有的上述附图中,相同的标号表示具有相同、相似或相应的特征或功能。具体实施例方式下面结合附图对本发明做进一步的说明。如图1所示,数据配置系统由以下几个部分组成(1)SQLServer等SQL规范的数据库用于保存各个SSP/MSC实体数据;使用稳定SQLServer等SQL规范的数据库,安全,数据类型灵活,易于建立各种数据表之间的关联,并能提供强大、易于扩充和修改的查询功能。(2)数据变换部分包括DBM模块、DBS(DATABASESCRIPT)模块和DBC模块;其中,DBS模块通过DBS配置文件实现SQLServer数据库各个SSP/MSC(移动交换中心)实体数据和用户配置界面之间的转换;DBC模块通过DBC配置文件实现SQLServer数据库各个SSP/MSC实体数据和用户数据文件存储单元之间的转换。DBM模块用于实现对不同版本实体的DBS模块和DBC模块的管理。(3)用户配置模块提供界面控件,包括显示控件、输入控件和显示/输入控件,能够显示用户配置界面,用于显示经过转换各个SSP/MSC实体数据后得到的用户配置界面数据,并输出用户配置界面数据到所述数据变换部分;用户配置模块中的各种控件如显示控件、输入控件和显示/输入控件在现有的绝大多数软件中均有应用,如在WINDOWS操作系统和word软件中等,在实际操作中可以直接应用微软提供的各种控件。(4)用户数据文件存储单元用主机数据格式保存各个SSP/MSC实体数据,用于向SSP/MSC实体提供加载的数据。系统的核心就是数据变换部分,该部分通过DBM、DBS、DBC三个配置文件实现了不同实体版本完成数据从数据库到用户配置界面的显示,从数据库到数据文件的转化。实现了主机控制逻辑和实现主机控制逻辑所需的数据在代码上的分离(即主机控制逻辑由一个软件子系统修改和实现,实现主机控制逻辑所需的数据由另一个软件子系统输入、修改、存储和实现)。下面对各个功能模块的工作原理进行详细的说明。首先说明数据库到数据配置界面的显示转换,介绍DBS模块的结构原理DBS是DATABASESCRIPT(数据库描述)的简称,DBS模块用来描述如何在用户界面清晰、直观、简洁的显示和配置数据库数据,实现数据库各个SSP/MSC实体数据和用户配置界面之间转换。DBS模块的内部结构如图2,包括如下组成部分DBS文件,DBS文件是一个ASCII可编辑的文本文件,DBS文件记录了数据库各个SSP/MSC实体数据和用户配置界面显示数据之间的对应关系,描述了各个SQL-SERVER表在界面上的显示属性;一个DBS文件对应一个版本的SSP/MSC实体数据;DBS解析单元,负责解析DBS文件,并提供供数据显示转换单元调用的DBS解析接口,该解析接口也可以看作是解析函数,用于实现数据库各个SSP/MSC实体数据和用户配置界面数据之间的相互转换;数据显示转换单元,能够提供一组转换函数,该转换函数可以调用一系列的解析函数;并能够根据数据库访问接口读出数据库的数据,能调用DBS解析接口,生成供用户配置界面显示的信息,以及将数据显示和配置单元发送来的数据,转换生成数据库数据;该数据显示转换单元通常需要调用一系列解析函数才能完成数据的转换;数据显示和配置单元,调用数据显示转换单元中的转换函数,实现数据库数据和用户配置界面数据之间的转换。数据显示和配置单元与用户配置界面模块之间的通信可以采用消息的形式或者直接调用,两个模块之间的这种手段是成熟的现有技术,这里不再详述。下面介绍DBS文件描述格式DBS文件通过关键字语法实现数据库到数据配置界面的显示描述转换,用DATABASESCRIPT关键字标识是DBS。具体每个表和字段的显示描述用下面几个部分关键字引导完成(1)TABLE和ENDTABLE关键字引导描述表信息对库中的每个表,用关键字TABLE和ENDTABLE关键字引导描述一组表信息包括表名、编辑属性、排序方式、TIPS提示。举例格式如下TABLEscp_addr//数据库中的表名TABLEATTRIBUTE(″SCPPhysicalAddressDescriptionTable″,ENABLED)//SCP物理地址表属性,描述界面显示的表名,以及表是否显示//ORDERBY(″SCP号″,AUTOIDX)//以哪个字段进行排序(字段名,排序方式)ASCEND/DESCEND/AUTOIDX(AUTOINX表示自动索引,此时字段名即为显示名)TIPS(″SCPphysicaladdressdescriptiontable.ConfigSCPDPCandGTwhichyouwanttoaccess.″)//该表的提示描述信息(2)FIELD和ENDFIELD关键字引导描述字段属性对库中每个表的每个字段,都用FIELD和ENDFIELD关键字引导描述字段属性。举例格式如下字段名(PrimaryKey,ForeignKey,Show,Title,Enable,Default,EditType,FieldType,FieldLen,RangeIdx,FieldCtrl,ToolTip)其中各属性含义和取值分别为//PrimaryKey,主键,取值为(TRUE/FALSE),如多个字段为TRUE表示联合主键//ForeignKey,外键,取值为(关联的表名),如没有则为NULL//Show,是否显示,取值为(TRUE/FALSE)//Title,显示标题,字符串,(如show属性为FALSE则为NULL)//Enable,是否可编辑,取值(TRUE/FALSE)//不能和show字段同时为FALSE//Default,缺省值,字符串,如没有则为NULL//EditType,编辑方式,取值(NONE/TEXT/LIST/BOOL)//FieldType,字段类型,取值(BIT/DEC/HEX/STRING/BOOL)//FieldLen,字段长度,(如果是DEC/HEX则为字节数,如果是BIT则为位数,如果是STRING则为字符串长度,如果是BOOL,则固定为1)//RangeIdx,取值范围,(如没有限制则为NULL,否则为一个取值范围的索引名)//FieldCtrl,字段控制关系(如该字段对其他字段有限制,则填写字段限制的索引名,否则为NULL,可以为多个,以|符号连接)//ToolTip,提示信息内容,字符串,如没有则为NULL(3)FIELDCTRL和ENDFIELDCTRL关键字描述每个字段的控制信息用FIELDCTRL和ENDFIELDCTRL关键字描述每个字段的控制信息,包含字段的显示,与其他字段的数值控制关系(实现不用字段的约束和关联)(4)VALRANGE和ENDVALRANGE关键字控制具体每个字段取值范围用VALRANGE和ENDVALRANGE关键字控制具体每个字段取值范围。例如用户数据表的显示,仅显示用户需要查看的“话机类型”,“电话号码”,“号首集”,“设备号”,“呼叫源码”等字段,那么仅这些字段的Show域被描述成“TRUE”其中“设备号”在DBS文件中被PrimaryKey域描述成“TRUE”,界面上用蓝色字体显示。另,该表除了“呼叫源码”外,其他字段都是不能修改的(在号段表中配置),故仅仅该字段在DBS文件中的Enable域被描述成“TRUE”,其余都是“FALSE”,既只能查看,不能编辑。数据的配置通常需要实现三种功能,即显示数据、编辑数据和添加数据,下面结合数据显示转换单元、DBS解析单元、数据显示和配置单元首先描述显示数据时系统执行的过程DBS解析实际是一个关键字分析、文本解析的过程。该部分通过类封装了若干解析接口,供数据显示转换单元调用。数据显示转换单元可以很容易的调用不同的接口,获取各表和字段的显示信息,实现数据显示的格式化。结合一个版本的DBS文件中的UserData表,描述当显示数据时DBS模块执行的流程1)当用户在软件界面上打开一个UserData表时,数据显示和配置单元根据界面控件传递过来的操作消息,调用数据显示转换单元中的转换函数;2)数据显示转换单元首先打开数据库中UserData表,获取表的字段数;然后调用DBS解析单元的解析函数;3)DBS解析单元根据DBS文件的ORDERBY关键字获取表的排序字段和排序属性,根据TABLEATTRIBUTE关键字获取表的编辑属性;(参见前面DBS文件描述格式举例)并从DBS文件获取显示属性和其它字段属性;4)数据显示转换单元判断是否存在显示属性要求显示(Show为TRUE)的字段,如果存在,数据显示和配置单元根据返回的判断结果操作界面控件创建并插入表头列;数据显示转换单元判断如果存在自动索引字段列,则数据显示和配置单元根据返回的判断结果操作界面控件插入创建自动索引列的表头(多数表一般不存在自动索引字段);5)数据显示转换单元从数据库中UserData表逐条读取表记录,并通过DBS解析单元根据DBS文件的定义,由数据显示和配置单元操作界面控件设置显示行和字段列;对于需要显示(DBS文件中UserData表的Show字段为TRUE)的字段,根据数据库中UserData表索引字段值,先在列表视图中创建添加一显示行,然后根据数据库中UserData表其它字段值逐个设置新添加行的各字段值。如果数据库中UserData表各字段值为空,根据DBS文件中UserData表的Default字段初始值,设置新添加行的各字段值。结合一个版本的DBS文件中的UserData表,描述当编辑数据时DBS模块执行的流程1)当用户在软件界面上编辑一个UserData表时,数据显示和配置单元根据界面控件传递过来的字段修改消息,调用数据显示转换单元的转换函数;2)数据显示转换单元调用DBS解析单元的接口,根据DBS文件中UserData表的描述信息,初始化表编辑对话框控件的显示规则数据;3)DBS解析单元从数据库获取UserData表字段的基本默认数据,包括字段名、字段类型、字段值等;4)数据显示转换单元以表、字段为索引将数据库读入的字段值从字符串转化为相应的界面显示值;5)数据显示和配置单元将获取的字段的基本默认数据和提示内容(如ToolTip提示内容)拷贝给字段显示控件;字段显示控件可以完成字段的的显示;6)用户在用户配置界面编辑完数据并保存提交时,数据显示和配置单元将界面显示/输入控件输入的数据,通过数据显示转换单元转换成数据库字段格式保存到数据库中;结合一个版本的DBS文件中的UserData表,描述当添加数据时DBS模块执行的流程1)当用户在软件界面上一个UserData表添加数据时,数据显示和配置单元根据界面控件传递过来的字段修改消息,调用数据显示转换单元的转换函数;2)数据显示转换单元调用DBS解析单元获取DBS文件中UserData表的描述信息,根据该UserData表的描述信息初始化表编辑对话框的显示规则数据;3)数据显示转换单元调用DBS解析单元从DBS文件中UserData表获取字段的基本默认数据,包括字段名、字段类型、字段值等;数据显示和配置单元将从DBS文件中获取的字段的基本数据和提示内容(如ToolTip提示内容)拷贝给字段显示/输入控件;4)用户在用户配置界面添加完数据并保存提交时,数据显示和配置单元将界面显示/输入控件输入的数据转换成数据库字段格式保存到数据库中。上面描述了DBS模块的工作原理,下面描述DBC模块的工作原理。下面描述DBC模块的工作原理DBC是DBConvert(数据库转换)的简称,DBC模块用于实现SQLServer数据库各个SSP/MSC实体数据和SSP/MSC主机数据格式文件之间转换。DBC模块包括如下几个部分(参见图3)1)DBC文件,DBC文件记录了数据库各个SSP/MSC实体数据和SSP/MSC主机数据格式之间的对应关系;2)DBC解析单元,负责解析DBC文件,生成与主机格式对应的表信息链表动态结构,该结构对应了实体主机的数据格式,用于数据库数据和各个SSP/MSC实体主机格式数据之间转换,并提供供数据文件生成单元调用的解析接口。3)数据文件生成单元,用于调用数据库数据访问操作单元的数据访问接口,从数据库中读取数据,并根据数据库的数据,调用DBC解析接口,按照解析结果生成实体主机格式数据文件,该实体主机格式数据文件可以存储在用户数据文件存储单元中。4)数据库数据访问操作单元,负责访问读出数据库的数据。该部分在ADO接口基础上,进行简单的封装,提供统一的SQLServer数据库访问的接口,该部分对外提供供其他单元调用的数据访问接口。由于仿真Monitor部分(仿真的界面管理部分)本身是面向对象的程序,综合考虑,使用ADO接口。并在微软提供的ADO基础上封装了该接口,ADO接口在C\ProgramFiles\CommonFiles\System\ado\msado15.dll(WINDOW操作系统的2003年6月版本)目录下,该程序已经提供在安装包中。下面描述DBC文件描述格式DBC文件分二部分表名的映射关系部分、表和字段信息描述部分1)表名的映射关系部分这部分描述的是主机结构中定义的表名和SQLServer数据库中表名的映射关系,由[TableMap]关键字引导(RelDescTbl和FieldDescTbl例外)。举例如下示[TableMap]RelDescTbl=RelDescTblFieldDescTbl=FieldDescTblsoft_para_OVSV610R106B09D022=SOFT_PARAMETERlang_kind=DBLANGKindTblnumber_seg_OVSV610R106B09D022=DBDialNoSegTbl//数据库表名、主机表名在DBC转换时,就是根据表名的映射关系,从数据库表名找到对应的主机表名。比如根据number_seg_OVSV610R106B09D022的数据库表名,就可以找到对应得主机表名DBDialNoSegTbl。2)表和字段信息描述部分这一部分是表头信息描述(由[表名]关键字引导),这部分描述了每个表的表头、字段名、索引、记录数等信息。这部分实际上是描述了主机的表和字段结构,其中表信息描述和主机部分是一致的。数据生成部分就是根据这部分实现数据库结构到主机结构转换的。举例如下示[表名]//号段表描述信息FieldName=DNSetID,minDialNo,maxDialNo,userIndex//表字段名fieldnum=4//字段数Rid=20//ridtblType=GENERAL_TBL//表类型indexType=ORDERINDEX//索引类型onlineModAllow=2//是否允许在线修改indexField=DNSetID,minDialNo,maxDialNomaxTupleNum=16//最大元组数actTupleNum1=0//实际元组数,保留actTupleNum2=0indexedFieldNum=0//索引字段数defaultTuple=0//缺省元组lockFlag=NONELOCK//锁标志versionNo1=0versionNo2=0checkSum1=0checkSum2=0Type=struct对每个表的每个字段,都有一段字段信息描述,由[表名.字段名]引导。字段描述信息描述数据库和主机字段数据类型之间的对应映射关系。举例如下示[表名.字段名]Type=UC//主机字段数据类型DataType=DB_UNSIGNED_BYTE//主机数据类型indexInd=0x0//排序优先顺序,0x0表示最优先排序wildcard=0//通配符value=DNSetID|8|0|tinyint//数据库中字段名、位数、数据库中对应的字段类型array=1//是否数组……上述格式就可以完成主机数据类型UC和数据库字段类型tinyint之间的转换,并且指明了在数据库中该字段是8bit位(即一个字节)。根据上面对某版本的DBC描述,在界面上根据Section字段的描述来分组,程序装载相应的表名到树型图上显示。如“Section2=SCCPConfigTables;TableCounts2=4”,即表示第二组显示为SCCPConfigTables,其中含“4”个需要配置的表,这4个表的名称为”Tablestotal=…”字段中第4个到第7个表名字符串。显示为下面的树型图,供用户编辑时使用。下面描述DBC描述原理DBC文件实际上在数据库各个SSP/MSC实体数据和用SSP/MSC主机数据格式之间的进行了映射。DBC文件中实际上描述的是主机内存数据结构。主机实体数据在实体数据的内存映射文件中分为三个部分,表头描述信息、字段头描述信息、表数据。其中前两部分是数据字典,包含表关系描述表(0号表)和字段域描述表(1号表)。主机DB在内存中存在的实际物理结构如图4所示,对于任何主机数据库数据,在DBC文件中都有两个特殊的描述表RelDescTb表关系表、FieldDescTbl字段描述表。RelDescTb表关系表(在上图中就是“表1描述”区域的记录)在表定义区描述了所有表描述记录的格式信息和表头信息,FieldDescTbl字段描述表(在上图中就是“字段1描述”区域的记录)在字段定义区描述了所有字段描述记录的格式信息和表头信息。这两个表指导后面其他具体主机表(即图中的表2~N)及其字段描述的访问和格式。其他具体主机表就是具体用户配置存储数据的数据表(即图中的表2~N),而RelDescTb表关系表、FieldDescTbl字段描述表是对其它数据表的组织索引。下面描述DBC解析原理DBC解析和DB生成原理如图5,在DBM模块的控制下,DBC解析单元读取*.DBC文件解析后的结果是一个内存链表结构,这种结构构成DBC解析接口,将解析后的结果按DBC文件前缀名加.dat组成整个文件名将其持久化到永久介质(磁盘)中。以后打开工程时只需从永久介质(磁盘)中将解析后的结果读入内存。当需要进行数据转换时,利用上面获得的DBC解析接口,将由数据库数据访问操作单元获取的数据库数据文件转换成主机数据格式文件。将*.DBC文件解析成内存链表树结构,是为了能够更快的动态转换数据库数据,因为链表树的查询速度远比文本解析要快,而且持久化保存到永久介质(磁盘)中,还可以重复利用解析结果,不用每次都重新分析DBC文件,提高了DBC解析效率。下面描述DBC初始化解析流程在打开一个工程库时,DBC模块会从相应版本的DBC文件或者*.dat文件中读取数据转换规则,进行转换逻辑初始化工作。其初始化流程如下(参考图6)1)读取软件config目录;2)保存DBC文件路径;3)存储SQL表名字符串;4)首先判断该版本的DBC是否持久化,即实体对应版本的*.dat文件是否存在,如果*.dat文件不存在,则进入步骤6);如果*.dat文件存在,打开磁盘上的解析结果*.dat文件;5)如果正确打开文件并能获取文件长度,则将*.dat文件的内容读入到内存链表中,流程结束;否则进入步骤6);6)打开DBC文件进行解析;7)将解析结果持久化到磁盘,即生成一个*.dat文件,保存到磁盘;8)关闭DBC文件,结束。下面描述DBC表描述信息和字段描述信息解析流程DBC的解析实际上就是根据DBC文件的描述进行关键字分析、文本解析,提供上述主机格式访问和计算的接口方法。DBC解析实际是一个关键字分析、文本解析的过程。由于DBC文件主要描述的是表信息和字段信息,DBC解析实际上主要就是解析表描述信息和字段描述信息。其表描述信息和字段描述信息解析流程分别参考图7和图8参考图7,首先描述读取表描述信息处理过程1)判断表名是否为空;如果表名为空,结束流程;如果不为空,进入步骤2);2)读取*.DBC文件中的表描述信息节内容;3)判断表描述信息格式是否错误;如果错误,报告错误,结束流程;如果正确,填入表描述信息链表结点中,结束流程。参考图8,下面描述读取字段信息处理过程1)判断是否读完*.DBC文件中全部字段信息;如果是已读完全部字段信息,结束流程;如果未读完全部字段信息,进一步判断字段名是否为空;如果字段名为空,结束流程;如果字段名不为空,进入步骤2);2)读取*.DBC文件中一个字段信息;3)判断字段信息格式是否正确;如果不正确,结束;如果正确,进入步骤4);4)判断字段信息格式是否为简单类型,如果是,读入到DBC解析接口(内存链表树结构)的叶子节点中,进入步骤7);否则,进入步骤5);5)判断字段信息格式是否为Struct类型,如果是,读入到DBC解析接口(内存链表树结构)的非叶子节点中,进入步骤7);否则,进入步骤6);6)判断字段信息格式是否为Union类型,如果是,读入到DBC解析接口(内存链表树结构)的非叶子节点中,进入步骤7);否则,必定为可分解字段类型,读入到DBC解析接口(内存链表树结构)的叶子节点中,进入步骤7);7)填入字段信息结构;并返回步骤1)继续读取下一个字段信息。DBC解析对数据库字段和主机结构中位域之间的转换由于主机的结构中会有很多位域的字段表示,比如_USLI7;_USISUP_Spare1;而位域是不能直接在数据库中表示的,对每个位域字段,我们在数据库中都使用一个字节的字段表示。在DBC解析时,会根据主机的数据结构中位域情况,将数据库中的对应字段进行组合,再以主机数据结构位域所对应的数据类型(比如,上面就是_US)按字节整数倍读写主机DB。DBC模块根据DBC文件生成DB数据主机访问格式的DB文件遵循下面的流程如果在DB中有一个表A,表ID为ID_A,该表有两个字段a和b,有1条记录。要读出这条记录的流程是1)根据ID_A从0号表中得到表A的描述ReldescTbl[ID_A],从ReldescTal[ID_A]得到该表的如下信息该表有两个字段,字段描述fieldescTbl在1号表中起始位置、表A的数据实际存放地址;2)从1号表中读出字段a和字段b的信息;3)根据字段的个数和各个字段的数据类型可以得出表A的一条记录的长度,然后从表A的地址读出记录;数据文件生成单元必须严格按照这个形式填充数据内存文件。数据文件生成单元根据数据库数据,调用DBC的解析接口,从内存链表结构获取对应的表和字段地址、字段格式,按解析指定的格式和地址写到内存中,填充生成主机数据记录。1)首先,初始化通配符表;通配符是指满足任何查询条件的字段值。2)再写表关系表;写表关系表时从CDBConvert(DBC模块的解析部分)中获取表和字段转换描述链表指针;3)链表中保存着DBC文件中的“表头信息描述(RelDescTbl)”。循环填充即可。4)然后填写所有的表字段。5)最后填充数据库内容。管理DBC和DBS的DBM部分DBM是DBManager(数据库管理)的简称。由于Emulnet框架的仿真系统可以组合模拟多种不同的主机实体SSP/MSC,需要针对不同的主机实体,用不同的DBS、DBC文件描述其娴熟和数据转换规则。因此就需要一个实现对不同版本实体的DBS、DBC的管理部分--DBM部分。DBM文件描述格式DBM文件有两部分内容,1)系统支持的实体版本、语言信息这部分是描述仿真系统支持着几种SSP(SERVICESWITCHINGPOINT业务交换点)和SAU实体版本、版本号、SoftPhone的DBS文件名、语言种类,这里SAU为一主机名,SoftPhone为主机SAU中的一个软件。//SSP(SERVICESWITCHINGPOINT业务交换点)实体的版本VersionCounts=2SSPVersion1=SSPV610R105M8008SSPVersion2=OVSV610R106B09D022[SAU_VERSION]//SAU实体的版本VersionCounts=1SAUVersion1=SAUV200R002.1D431[SOFT_PHONE]//softphone相关数据的显示描述文件DBSFile=softPhone.DBS[Language]//语言种类LanguageCounts=2Language1=ChineseLanguage2=English2)具体每个实体版本的描述信息这部分是细化某种实体版本所包含的数据表,和界面显示分组方式,每种实体有下面所示的描述,如版本号为SSPV610R105M8008的实体描述[SSPV610R105M8008]DBSFileChn=SSPV610R105M8008.DBS//对应的DBS文件名DBCFile=SSPV610R105M8008.DBC//对应的DBC文件名SectionCounts=9//所有表的显示在视图列表窗口中分9组TableCounts=34//所有表数目Section1=SCPConfigTables//Section字段描述显示分组第一组Table_Counts1=3Section2=SCCPConfigTablesTable_Counts2=4Section3=OfficeTablesTable_Counts3=2Section4=TrunkTablesTable_Counts4=2Section5=MTPTablesTable_Counts5=1Section6=UserInfoTablesTable_Counts6=1Section7=CallNumberAnalysisTablesTable_Counts7=9Section8=INServiceTablesTable_Counts8=4Section9=ChargeTablesTable_Counts9=8//所有的表名Tables_total=scp_cfg,scp_addr,ssp_addr,sccp_ssn,gt_table,newgt_able,sccp_dpc,local_office,number_seg,route_analysis,trunk_group,mtp_dsp,user_data,call_source,callee_Analysis,callee_dn_Special,caller_Analysis,dn_change,national_code,area_code,toll_code,call_forward,in_servicekey,tdp_config,in_conf,1ang_kind,credit_table,free_charge_service,chargeclass_to_rate,holiday_discount,week_discount,normalday_discount,duration_discount,soft_paraDBM的管理实现DBM主要实现不同版本的文件的转换和显示管理。管理并初始化DBC和DBS。1)DBM对不同版本的DBC、DBS描述文件的管理DBM提供调用接口,根据版本号,即可获得对应的DBC、DBS描述文件名,从而实现不同版本实体数据的正确转换和显示。DBSFileChn=SSPV610R105M8008.DBS//对应的DBS文件名DBCFile=SSPV610R105M8008.DBC//对应的DBC文件名2)DBM对显示的管理根据上面对SSPV610R105M8008版本的描述,在界面上根据Section字段的描述来分组,程序装载相应的表名到树型图上显示。如“Section2=SCCPConfigTables;TableCounts2=4”,即表示第二组显示为SCCPConfigTables,其中含“4”个需要配置的表,这4个表的名称为”Tablestotal=…”字段中第4个到第7个表名字符串。显示为图9所示的树型图,供用户编辑时使用。上述的处理,通过链表保存管理各表的所有信息,包括表的总数、可编辑表的分组类型数、单个表的数据库表名、显示表名、Tips等索引信息。树型视图直接访问时,通过链表访问函数接口,根据实体版本号,即可获取所有界面需要的信息。本发明的方法并不限制于仿真系统,可以应用于任何需要进行不同数据转换的数据配置系统。在本发明中,通过在仿真系统中增加DBC、DBS、DBM等格式文本文件,对任意数据库数据实现显示和转换的格式化,带来的如下的有益效果有效和灵活的分解和隔离了数据的存储、显示、访问和使用,满足了数据存储、显示和使用的不同的特点要求。可以发挥关系数据库存储数据的效率、数据的强大约束功能、数据关联的灵活性。实现数据之间的关联、数据效验检查、数据保存的简洁。例如选项“普通用户”在数据库中对应的“UserType”字段是一个字节的数据,对应值为0,这样就节省了存储空间。可以保留主机内存格式DB的访问效率、接口、效验、数据动态加载等特点。便于将来跟随真实主机升级。在仿真SSP/MSC运行过程中,如数据有改变,可以让界面修改的数据通过数据库更新、数据转换即时生效。可以简化数据的显示和配置界面。在同一界面上更直观、简洁、清晰、友好和实现对多种数据实体的数据配置,并实现多种数据配置方式,如编辑框、下拉选项、数字范围等。对于下拉选项提供直观易懂的配置项,如用户类型提供选项为“普通用户”、“智能用户”等。对用户不需要的数据则予以屏蔽。将数据的存储、显示、访问之间的关系用DBC、DBS、DBM等格式文本文件用直观简洁的规则描述,能够很方便的直接用文本编辑工具修改以满足数据存储、显示和访问的变化需求,而不需要再次修改代码、发布程序。DBC、DBS、DBM等格式文本文件的描述思想具有很大的灵活性和伸缩性。能够很方便的扩充表达任意的数据的存储、显示和访问之间的关系,实现任意数据的存储、显示、访问之间的关系描述。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。权利要求1.一种数据配置系统,包括,数据库和数据变换部分;数据库,用于保存不同版本的实体数据;数据变换部分,用于数据库中不同版本的实体数据和用户配置界面之间的数据转换,建立数据库数据和用户配置界面的相互读写转换,以及用于实现数据库各个不同版本的实体数据和相应的用户数据文件之间的转换。2.根据权利要求1所述的一种数据配置系统,其特征在于,所述不同版本的实体数据为业务交换点的实体数据。3.根据权利要求2所述的一种数据配置系统,其特征在于,还包括,用户数据文件存储单元,存储由数据变换部分转换的用户数据文件,该用户数据是用业务交换点主机数据格式保存的各个业务交换点的实体数据,是用于向业务交换点提供加载的数据。4.根据权利要求3所述的一种数据配置系统,其特征在于,所述数据变换部分包括数据库描述DBS模块、数据库转换DBC模块和数据库管理DBM模块,其中,DBS模块,用于实现数据库各个业务交换点实体数据和用户配置界面用数据之间的转换;DBC模块,用于实现数据库各个业务交换点实体数据和用户数据文件之间的转换;DBM模块,用于对所述DBS模块和DBC模块进行管理。5.根据权利要求4所述的一种数据配置系统,其特征在于,所述DBS模块包括,存储的DBS文件,记录了数据库各个业务交换点实体数据和用户配置界面显示信息之间的对应关系,以及描述了各个数据库表在界面上的显示属性;DBS解析单元,用于解析DBS文件,并提供供数据显示转换单元调用的DBS解析接口,用于实现数据库各个业务交换点实体数据和用户配置界面数据之间的转换;数据显示转换单元,能调用DBS解析接口,将通过数据库访问接口读出数据库的数据,转换生成供用户配置界面显示的信息,以及将数据显示和配置单元发送来的数据,转换生成数据库数据;数据显示和配置单元,调用数据显示转换单元中的转换函数,实现数据库数据和用户配置界面数据之间的转换。6.根据权利要求4或5所述的一种数据配置系统,其特征在于,所述DBC模块包括,存储的DBC文件,记录数据库各个业务交换点的实体数据和所述业务交换点主机数据格式之间的对应关系;DBC解析单元,解析DBC文件,生成与主机格式对应的表信息链表动态结构,该结构对应了实体主机的数据格式;用于数据库数据和各个SSP/MSC实体主机格式数据之间转换,并提供供数据文件生成单元调用的DBC解析接口;数据文件生成单元,用于调用数据库数据访问操作单元的数据访问接口,从数据库中读取数据,并根据数据库的数据,调用DBC解析接口,按照解析结果生成实体主机格式数据文件;数据库数据访问操作单元,用于访问读出数据库的数据,提供统一的SQLServer数据库访问的接口,该部分对外提供供其它单元调用的数据访问接口。7.根据权利要求6所述的一种数据配置系统,其特征在于,所述DBC解析单元将解析后的结果持久化到永久介质中。8.根据权利要求4或5所述的一种数据配置系统,其特征在于,所述DBM模块包括,DBM文件,用于描述系统支持的所有业务交换点和主机实体版本、版本号、软件的DBS文件名、语言种类、实体版本所包含的数据表和界面显示分组方式中的一个或多个;DBM模块提供调用接口,根据版本号即可获得对应的DBC、DBS文件名,从而实现不同版本实体数据的正确转换和实现。9.根据权利要求6所述的一种数据配置系统,其特征在于,所述DBM模块包括,DBM文件,用于描述系统支持的所有业务交换点和主机实体版本、版本号、软件的DBS文件名、语言种类、实体版本所包含的数据表和界面显示分组方式中的一个或多个;DBM模块提供调用接口,根据版本号即可获得对应的DBC、DBS文件名,从而实现不同版本实体数据的正确转换和现实。10.一种实现对具有至少两个不同版本实体数据的数据库进行数据配置的方法,该方法如下1)利用DBS文件记录数据库各个不同版本的实体数据和用户配置界面显示信息之间的对应关系;2)提供DBS解析接口,该解析接口用于实现数据库各个不同版本的实体数据和用户配置界面数据之间的转换;3)提供数据显示转换单元,该数据显示转换单元能调用DBS解析接口,生成供用户配置界面显示的信息,以及将数据显示和配置单元发送来的数据,转换生成数据库数据;4)提供数据显示和配置单元,该数据显示和配置单元能够调用数据显示转换单元,实现数据库数据和用户配置界面数据之间的转换。11.根据权利要求10所述的实现对具有至少两个不同版本实体数据的数据库进行数据配置的方法,其特征在于,所述不同版本的实体数据为业务交换点的实体数据。12.根据权利要求11所述的实现对具有至少两个不同版本实体数据的数据库进行数据配置的方法,其特征在于,所述DBS文件通过关键字语法实现数据库到数据配置界面的显示描述转换。13.根据权利要求10至12中任一项所述的实现对具有至少两个不同版本实体数据的数据库进行数据配置的方法,其特征在于,由以下步骤实现数据的显示1)当用户在软件界面上打开一个UserData表时,数据显示和配置单元根据界面控件传递过来的操作消息,调用数据显示转换单元中的转换函数;2)数据显示转换单元首先打开数据库中UserData表,获取表的字段数;然后调用DBS解析单元的解析函数;3)DBS解析单元根据DBS文件的ORDERBY关键字获取表的排序字段和排序属性,根据TABLEATTRIBUTE关键字获取表的编辑属性;并从DBS文件获取显示属性和其它字段属性;4)数据显示转换单元判断是否存在显示属性要求显示的字段,如果存在,数据显示和配置单元根据返回的判断结果操作界面控件创建并插入表头列;数据显示转换单元判断如果存在自动索引字段列,则数据显示和配置单元根据返回的判断结果操作界面控件插入创建自动索引列的表头;5)数据显示转换单元从数据库中UserData表逐条读取表记录,并通过DBS解析单元根据DBS文件的定义,由数据显示和配置单元操作界面控件设置显示行和字段列。14.根据权利要求10至12中任一项所述的实现对具有至少两个不同版本实体数据的数据库进行数据配置的方法,其特征在于,由以下步骤实现数据的编辑1)当用户在软件界面上编辑一个UserData表时,数据显示和配置单元根据界面控件传递过来的字段修改消息,调用数据显示转换单元的转换函数;2)数据显示转换单元调用DBS解析单元的接口,根据DBS文件中UserData表的描述信息,初始化表编辑对话框控件的显示规则数据;3)DBS解析单元从数据库获取UserData表字段的基本默认数据,包括字段名、字段类型、字段值等;4)数据显示转换单元以表、字段为索引将数据库读入的字段值从字符串转化为相应的界面显示值;5)数据显示和配置单元将获取的字段的基本默认数据和提示内容拷贝给字段显示控件;字段显示控件可以完成字段的的显示;6)用户在用户配置界面编辑完数据并保存提交时,数据显示和配置单元将界面显示/输入控件输入的数据,通过数据显示转换单元转换成数据库字段格式保存到数据库中。15.根据权利要求13所述的实现对具有至少两个不同版本实体数据的数据库进行数据配置的方法,其特征在于,由以下步骤实现数据的编辑1)当用户在软件界面上编辑一个UserData表时,数据显示和配置单元根据界面控件传递过来的字段修改消息,调用数据显示转换单元的转换函数;2)数据显示转换单元调用DBS解析单元的接口,根据DBS文件中UserData表的描述信息,初始化表编辑对话框控件的显示规则数据;3)DBS解析单元从数据库获取UserData表字段的基本默认数据,包括字段名、字段类型、字段值等;4)数据显示转换单元以表、字段为索引将数据库读入的字段值从字符串转化为相应的界面显示值;5)数据显示和配置单元将获取的字段的基本默认数据和提示内容拷贝给字段显示控件;字段显示控件可以完成字段的的显示;6)用户在用户配置界面编辑完数据并保存提交时,数据显示和配置单元将界面显示/输入控件输入的数据,通过数据显示转换单元转换成数据库字段格式保存到数据库中。16.根据权利要求10至12中任一项所述的实现对具有至少两个不同版本实体数据的数据库进行数据配置的方法,其特征在于,由以下步骤实现数据的添加1)当用户在软件界面上一个UserData表添加数据时,数据显示和配置单元根据界面控件传递过来的字段修改消息,调用数据显示转换单元的转换函数;2)数据显示转换单元调用DBS解析单元获取DBS文件中UserData表的描述信息,根据该UserData表的描述信息初始化表编辑对话框的显示规则数据;3)数据显示转换单元调用DBS解析单元从DBS文件中UserData表获取字段的基本默认数据,包括字段名、字段类型、字段值等;数据显示和配置单元将从DBS文件中获取的字段的基本数据和提示内容(如ToolTip提示内容)拷贝给字段显示/输入控件;4)用户在用户配置界面添加完数据并保存提交时,数据显示和配置单元将界面显示/输入控件输入的数据转换成数据库字段格式保存到数据库中。17.根据权利要求13所述的实现对具有至少两个不同版本实体数据的数据库进行数据配置的方法,其特征在于,由以下步骤实现数据的添加1)当用户在软件界面上一个UserData表添加数据时,数据显示和配置单元根据界面控件传递过来的字段修改消息,调用数据显示转换单元的转换函数;2)数据显示转换单元调用DBS解析单元获取DBS文件中UserData表的描述信息,根据该UserData表的描述信息初始化表编辑对话框的显示规则数据;3)数据显示转换单元调用DBS解析单元从DBS文件中UserData表获取字段的基本默认数据,包括字段名、字段类型、字段值等;数据显示和配置单元将从DBS文件中获取的字段的基本数据和提示内容(如ToolTip提示内容)拷贝给字段显示/输入控件;4)用户在用户配置界面添加完数据并保存提交时,数据显示和配置单元将界面显示/输入控件输入的数据转换成数据库字段格式保存到数据库中。18.根据权利要求14所述的实现对具有至少两个不同版本实体数据的数据库进行数据配置的方法,其特征在于,由以下步骤实现数据的添加1)当用户在软件界面上一个UserData表添加数据时,数据显示和配置单元根据界面控件传递过来的字段修改消息,调用数据显示转换单元的转换函数;2)数据显示转换单元调用DBS解析单元获取DBS文件中UserData表的描述信息,根据该UserData表的描述信息初始化表编辑对话框的显示规则数据;3)数据显示转换单元调用DBS解析单元从DBS文件中UserData表获取字段的基本默认数据,包括字段名、字段类型、字段值等;数据显示和配置单元将从DBS文件中获取的字段的基本数据和提示内容(如ToolTip提示内容)拷贝给字段显示/输入控件;4)用户在用户配置界面添加完数据并保存提交时,数据显示和配置单元将界面显示/输入控件输入的数据转换成数据库字段格式保存到数据库中。全文摘要本发明涉及一种数据配置系统及配置方法,该系统包括,数据库和数据变换部分;数据库,用于保存不同版本的实体数据;数据变换部分,用于数据库中不同版本的实体数据和用户配置界面之间的数据转换,建立数据库数据和用户配置界面的相互读写转换,以及用于实现数据库各个不同版本的实体数据和相应的用户数据文件之间的转换。利用本发明的系统和方法,有效和灵活的分解和隔离了数据的存储、显示、访问和使用,满足了数据存储、显示和使用的不同的特点要求。可以发挥关系数据库存储数据的效率、数据的强大约束功能和数据关联的灵活性。实现数据之间的关联、数据效验检查和数据保存的简洁。文档编号G06F17/30GK1862538SQ20061005779公开日2006年11月15日申请日期2006年2月27日优先权日2006年2月27日发明者陈丹博,宋涛,张宏申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1