基于规则的动态目录实现方法及系统的制作方法

文档序号:6468197阅读:114来源:国知局
专利名称:基于规则的动态目录实现方法及系统的制作方法
技术领域
本发明涉及目录管理技术,具体地说,是一种基于规则的动态目录实现方 法及系统,尤其是一种适用于管理空间数据的动态目录实现方法。
背景技术
随着科技的发展,信息量呈几何级增长,要在大量的可用资源中快速准确 地获取满足需求的资源,是十分困难的。例如,随着计算机网络的发展和信息 一体化的深入,地理空间数据共享的需求愈演愈烈,用户迫切希望快速获得满 足要求的地理空间数据,但由于地理空间数据量相当庞大,想从这些地理空间 数据中获取需要的数据,需要毫费很大精力去查找。为了充分发挥现有数据的 作用,提高其利用效率,使更多的数据生成者和数据使用者节省昂贵的成本, 就需要一种有效地实现各种数据尤其是地理空间数据的查询检索目录服务。
目录树是目录服务中 一种常用的方式。目录树不仅能让使用者快速查找所 需资源,而且可以清楚地了解到资源之间的层次关系。因此,目录树已经成为 了软件业和网站开发不可缺少的组成部分。目前,有关于数据资源管理的目录
服务存在以下几方面的问题
(1) 实际应用中,会存在大量多源异构数据,即有多种来源、结构不同的 数据,多源数据如GIS (Geographic Information System,地理信息系统)数据 格式、办公文档格式、图像数据格式;对于GIS数据,数据转换、互操作、直 接操作等都会增加软件开发的难度以及用户的负担;异构数据如Oracle数据库、
SQL Server数据库,而现有的目录树只能管理特定的数据,无法管理多源异构 数据;
(2) 现有的目录树多是单一的、主题或分组固定的静态目录树,不能灵活
4地定制显示和同时管理空间数据和非空间数据,也不能表达多个层次的主题分 组信息资源;
(3)目录树的管理方式应用十分广泛,但没有通用的开发规范,开发人员 一般针对每种应用开发一套目录树管理系统,导致重复开发严重,浪费资源。

发明内容
本发明要解决的技术问题是提供一种基于规则的动态目录实现方法及系
统,可以方便灵活地实现对多源异构数据尤其是空间数据的管理,且具有动态 性、用户实时性和应用需求随机性等优点。
为了解决上述技术问题,本发明提供了 一种基于规则的动态目录实现方法,
包括以下步骤
用户制定目录规则,根据用户制定的目录规则以及数据库表格中的相应字 段生成用于描述目录规则的可扩展标记语言XML文件; 解析运行所述XML文件,得到动态目录树。 进一步地,所述数据库表格通过以下方式获得
用户制定命名规则,根据用户制定的命名规则,从数据源中选择出文件名 符合所述命名规则的有效数据,将有效数据的文件名按所述命名规则分解成多 个片段,映射并存储到数据库表格的字段中。
进一步地,判断所述数据源中数据的文件名是否符合所述命名规则的方法

将所述命名规则解析成正则表达式;
判断数据源中文件名是否与所述正则表达式匹配,如果匹配,则所述数据 的文件名符合所述命名规则;否则,所述数据的文件名不符合所述命名规则。
进一步地,所述数据源中的数据包括空间数据和非空间数据。
进一步地,所述目录规则分为六个层次,分别为 根层,是根节点所在的层;
联合分组层,是按数据库表格中的某一字段的字段值进行分组的层;定形分组层,是固定不变的分组层;
逐记录分组层,是一个记录对应一个节点,每个字段中都有统一资源定位
符URL属性的分组层;
单元分组层,是按指定分隔符进行分组的层;
纵向分组层,是在字段下面定义簇进行分组的层, 一个纵向分组由多个簇 组成。
进一步地,所述数据库为Access数据库。
本发明还提供了 一种基于规则的动态目录实现系统,包括
目录规则设计器,用于接收用户制定的目录规则以及数据库表格中的相应
字段生成用于描述目录规则的可扩展标记语言XML文件;
目录规则解释运行器,用于解释运行所述目录规则设计器生成的XML文
件,得到动态目录树。
进一步地,所述系统还包括
数据录入器,用于接收用户制定的命名规则,并搜索数据源中文件名称符 合所述正规则表达式的有效数据,将有效数据的文件名按所述命名规则分解成 多个片段,映射并存储到数据库表格的字段中。
进一步地,所述数据录入器将所述命名规则解析为正则表达式,通过判断 数据源中数据的文件名称与所述正则表达式是否匹配来判断数据的文件名是否 符合所述命名规则。
本发明的有益效果是本发明的数据动态目录提供给用户一种有效管理多 源异构数据,尤其是管理空间数据的方法。它提供了数据资源录入的目录系统 的标准,定义了对录入的数据实现动态分组驱动按需求建树的可扩展规则,并 在目录系统层面实现数据中心对多源异构数据的统一管理,根据用户关心主题 的不同,按主题层次生成动态的资源管理器式目录结构。本发明采用数据录入 器功能直接访问空间数据(文件型和数据库型)创建多个主题的分组驱动。分 组驱动可以采用内置的MS ACCESS驱动协议,内容与操作简单明了。使用通 用的XML文档表达目录树的规则,符合行业发展趋势。本发明可以方便灵活地实现对多源异构数据尤其是空间数据的管理,且具有动态性、用户实时性和 应用需求随机性等优点。


图1是本发明的基于规则的动态目录实现系统的系统示意图2是本发明的基于规则的动态目录实现方法的流程图3是本发明的基于规则的动态目录实现方法的详细流程图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人 员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。 如图l所示,本发明的基于规则的动态目录实现系统的一个具体实施例包
括数据录入器101、目录规则设计器102和目录规则解析运行器103,其中
数据录入器101,用于接收用户制定的命名规则,并将该命名规则解析为 正则表达式;然后将正则表达式与用户数据源中的数据进行文件名匹配,进行 数据筛选,提取出有效数据;之后将这些有效数据的文件名分解为规则中指定
的各个片段,将这些片段映射为指定数据库表格中的各个字段,并将各片段值 写入表格。
以Access数据库为例,在数据录入时,用户制定的命名规则是为Access 分组驱动服务的,该规则假定数据库中存储数据的命名是由多个特定字段按照 一定次序组合而成的。如某数据的名称为D370000LU2007GDLTB.WP,该名 称可以分解为若千片段,如下表。
1D前缀行政代码专题年度比例尺图层分隔符类型
D370000LU2007GDLTBWP
用户根据实际需求定制命名片段规则(初步筛选的标准),例如用户制定的
7命名规则是字段l:由字母组成,最小1位,最大l位;字段2:由数字组成,最小6位,最大6位;字段3:由字母组成,最小2位,最大2位;字段4:由数字组成,最小4位,最大4位;字段5:由字母组成,最小1位,最大1位;字段6:由数字或字母组成,最小1位,最大不限;分隔符;字段7:由数字或字母组成,最小l位,最大不限。
数据录入器101解析该命名规则形成正则表达式,该解析过程也可以由插
件来完成。解析后的正则表达式如
A[a-zA-z]{l,l}(
{6,6})([a-zA-z]{2,2})(
{4,4})([a-zA-z]O,l})([A-Za-z0-9]{l,}).([A-Za-zO-9]{l,})$
数据录入器101搜索文件名符合上述正则表达式的数据,进行数据筛选,提取出有效数据,即符合命名规则的数据。之后将这些数据的命名分解为规则中指定的各个片段,这些将片段映射为指定的Access表格中的各个字段,并将各片段值写入表格,形成业务数据编码库(适用于被处理的数据为业务数据的情况)或功能数据编码库(适用于被处理的数据为功能数据的情况)。
上述数据录入器101是在需要用户进行数据录入时使用,如果用户已经有符合标准的数据,则本系统可以不设数据录入器。
目录规则设计器102,用于接收用户输入的目录规则,并根据该目录规则从上述业务数据编码库或功能数据编码库中进行数据解析,按照规则元语(即根层、联合分组层、定形分组层、逐记录分组层、单元分组层、纵向分组层),解析成层次结构,并生成符合用户输入的目录规则的XML (extensive makeuplanguage,可扩展标记语言)文件。
目录规则包括六种不同的层次结构根层、联合分组层、定形分组层、逐记录分组层、单元分组层、纵向分组层。其中,
根层表示根节点所在的层;
联合分组层是指按数据库表格中的某一字段的字段值进行分组的层;例如,在上述命名示例中,按数据库表格中表示年份的字段进行分组,即将同一年份
的数据分在一组;
8定形分组层是固定不变的分组层;例如,在根节点下设定一个分组,该分
组不因用户制的目录规则而改变;
逐记录分组层是指一个记录对应一个节点,每个字段中都有URL (uniformresource locator,统计资源定位符)属性的分组层;
单元分组层是按指定分隔符进行分组的层;例如,在数据库表格的某一字段中的内容用字符"/"分成了多组,则按字符"/"进行分组的层为单元分组层;
纵向分组层是指在字段下面定义簇(sector)进行分组的层, 一个纵向分组由多个簇(sector)组成;例如,在上述命名示例中,在表示行政代码的字段中有多个数据,其中代码370000表示某省级行政区划,前三位为371的代码表示某巿级或其下属的县级行政区划,前三位为372的代码表示另一巿级或其下属的县级行政区划,则可以将代码为371***的数据分在一组,即将该巿及其下属的县分在一组。
在以Access数据库为基础时,由目录规则设计器102生成的XML文件是遵循Access分组驱动的XML存储规范。同理,在以其它类型的数据库为基础时,由目录规则设计器102生成的XML文件是该数据库分组驱动的XML存储规范。
目录规则解释运行器103,用于根据目录规则设计器102生成的XML文件解释运行成动态目录。
目录规则解释运行器103是可扩展层次的数据条目管理系统,可以基于插件与节点驱动实现。其中,节点驱动是用来生成和管理节点的一套API(Application Program Interface,应用程序界面)或具有相同基类的派生类,通过增加符合该类标准接口的驱动便可以扩展目录规则解释运行器的管理能力。本发明所实现的驱动称为业务规则驱动。在以Access数据库为基础时,业务规则驱动(Access分组驱动)为内置驱动,使用的为ACCESSGDP协议,用于访问本机中的Access数据库。按照Access分组驱动的XML规则定义规范,可将Access数据库中的 一个表或多个表绑定在数据中心的任意一个节点上,生成一颗子树,表中的数据对应子树的节点。本发明的动态目录实现系统屏蔽了不同的数据来源,及不同用途的数据的异同,通过驱动以同样的表现形式面对上层用户。
如图2所示,本发明的基于规则的动态目录实现方法的 一个具体实施例包
括以下步骤
数据录入步骤201:由用户制定命名规则,根据用户制定的命名规则,选择出符合所述命名规则的有效数据,将有效数据的文件名按所述命名规则分解成多个片段,映射并存储到数据库表格的字段中;
其中,选择有效数据的步骤包括
将所述命名规则解析成正则表达式;
搜索文件名符合所述正则表达式的数据,作为有效数据由用户制定命名规
则;将用户制定的命名规则转换成正则表达式;搜索文件名符合该正则表达式的数据,作为有效数据。
目录规则设计步骤202:由用户制定目录规则,根据用户制定的目录规则以及数据库表格中的相应字段生成用于描述目录规则的可扩展标记语言XML
文件;
目录规则解释运行步骤203:解析运行所述XML文件,得到动态目录。
以Access数据库为例,详细说明本发明的基于规则的动态目录实现过程。如图3所示,包括
如图3所示,以Access数据库为例,上述的基于规则的动态目录实现方法具体实施例的详细步骤包括
步骤301:获取多源异构数据,作为数据源;
步骤302:判断用户是否定义了命名规则,如果用户已经定义了命名规则,执行步骤304;否则,执行步骤303;
步骤303:由用户根据需要制定命名规则,该命名规则是假定数据源中存储的数据的命名是由多个特定字段按照一定次序组合而成的;
步骤304:打开用户制定的命名规则,由插件解析命名规则并将其转换成正则表达式;步骤305:判断数据源中是否存在文件名与正则表达式相匹配的有效数据,
如果有,执行步骤306;如果没有,返回步骤301或结東流程;
步骤306:从数据源中提取文件名符合正则表达式的有效数据;步骤307:将有效数据的文件名分解为上述命名规则中的各个片段;步骤308:将有效数据文件命分解后的片段映射为指定的Access数据库表
格中的各个片段,并将各片段值写入表格。
至此,数据录入流程完成。数据录入流程是可选的,如果用户已经有符合
标准的数据库,则不需要执行数据录入流程。
当用户需要使用动态目录时,首先要执行目录规则设计流程,然后执行目
录规则解释运行流程。目录规则设计流程如下
步骤309:由用户根据需要制定目录规则;
步骤310:目录规则设计器根据用户制定的目录规则,引入上述数据录入步骤中得到的Access数据库文件;
步骤311:根据用户制定的目录规则,创造业务领域规则和显示模式;步骤312:创建目录树的根层;
步骤33:根据用户制定的目录规则创造各分组层,分组层可以是联合分组层、定形分组层、逐记录分组层、单元分组层和纵向分组层中的一种或任意组合;
步骤314:创建目录属性;
步骤315:选择显示模式,并根据目录规则和创建的分组层,生成目录树XML文件,目录规则设计流程完成。在该步骤中,还可以根据目录规则生成目录规则树XML文件。
目录规则解释运行流程如下
步骤316:目录规则解释运行器打开目录树XML文件,对目录树XML文
件进行解释和运行;
步骤317:判断目录树XML文件中是否设定了显示主题,如果是,执行步骤318,否则执行步骤319;步骤318:按目录树XML文件中设定的显示主题显示,得到动态目录树。步骤319:按默认的显示主题显示,得到动态目录树。用户在得到需要的动态目录树后,如果数据源的数据进行了改变,可以重
新进行上述数据录入、目录规则设计及目录规则解释运行的步骤,从而刷新目录树。另外,Access数据库中的内容可能会因一些原因发生改变,例如增加了数据项,或者减少了数据项,再或者字段内容发生了改变。在数据库内容发生改变后,本发明可以及时地对改变做出反应,生成新的目录树,实现目录的动态性。
用户在使用过程中,也可以随时根据需要改变制定的目录规则,由目录规则设计器根据用户新制定的目录规则设计符合新目录规则的目录树XML文件,进而由目录规则解释运行器对该新生成的目录树XML文件进行解释和运行,得到用户需要的新的目录树,实现了用户实时性,可以适应应用需求随机性的特点。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
权利要求
1、基于规则的动态目录实现方法,其特征在于,包括以下步骤用户制定目录规则,根据用户制定的目录规则以及数据库表格中的相应字段生成用于描述目录规则的可扩展标记语言XML文件;解析运行所述XML文件,得到动态目录树。
2、 根据权利要求l所述的基于规则的动态目录实现方法,其特征在于,所 述数据库表格通过以下方式获得用户制定命名规则,根据用户制定的命名规则,从数据源中选择出文件名 符合所述命名规则的有效数据,将有效数据的文件名按所述命名规则分解成多 个片段,映射并存储到数据库表格的字段中。
3、 根据权利要求2所述的基于规则的动态目录实现方法,其特征在于,判 断所述数据源中数据的文件名是否符合所述命名规则的方法为将所述命名规则解析成正则表达式;判断数据源中文件名是否与所述正则表达式匹配,如果匹配,则所述数据 的文件名符合所述命名规则;否则,所述数据的文件名不符合所述命名规则。
4、 根据权利要求3所述的基于规则的动态目录实现方法,其特征在于,所 述数据源中的数据包括空间数据和非空间数据。
5、 根据权利要求l所述的基于规则的动态目录实现方法,其特征在于,所 述目录规则分为六个层次,分别为根层,是根节点所在的层;联合分组层,是按数据库表格中的某一字段的字段值进行分组的层; 定形分组层,是固定不变的分组层;逐记录分组层,是一个记录对应一个节点,每个字段中都有统一资源定位 符URL属性的分组层;单元分组层,是按指定分隔符进行分组的层;纵向分组层,是在字段下面定义簇进行分组的层, 一个纵向分组由多个簇组成。
6、 根据权利要求1 5中任意一项所述的基于规则的动态目录实现方法,其特征在于,所述数据库为Access数据库。
7、 基于规则的动态目录实现系统,其特征在于,包括目录规则设计器,用于接收用户制定的目录规则以及数据库表格中的相应 字段生成用于描述目录规则的可扩展标记语言XML文件;目录规则解释运行器,用于解释运行所述目录规则设计器生成的XML文 件,得到动态目录树。
8、 根据权利要求7所述的基于规则的动态目录实现系统,其特征在于,所 述系统还包括数据录入器,用于接收用户制定的命名规则,并搜索数据源中文件名称符 合所述正规则表达式的有效数据,将有效数据的文件名按所述命名规则分解成 多个片段,映射并存储到数据库表格的字段中。
9、 根据权利要求8所述的基于规则的动态目录实现系统,其特征在于,所述数据录入器将所述命名规则解析为正则表达式,通过判断数据源中数据的文 件名称与所述正则表达式是否匹配来判断数据的文件名是否符合所述命名规
全文摘要
本发明公开了一种基于规则的动态目录实现方法及系统。用户制定目录规则,由目录规则设计器根据用户制定的目录规则以及数据库表格中的相应字段生成用于描述目录规则的可扩展标记语言XML文件;由目录规则解释运行器解析运行所述XML文件,得到动态目录树。本发明的有益效果是本发明的数据动态目录提供给用户一种有效管理多源异构数据,尤其是管理空间数据的方法。且具有动态性、用户实时性和应用需求随机性等优点。
文档编号G06F17/30GK101464879SQ200810179348
公开日2009年6月24日 申请日期2008年11月28日 优先权日2008年11月28日
发明者波 万, 吴信才, 周顺平 申请人:中国地质大学(武汉);武汉中地数码科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1