数据集成服务系统及方法

文档序号:7961635阅读:227来源:国知局
专利名称:数据集成服务系统及方法
技术领域
本发明涉及一种数据集成服务系统及方法,特别涉及一种能够支持不同的数据源,通过统一的数据访问方式屏蔽不同数据源的差异,支持灵活的查询条件,充分利用数据库的强大检索功能,以及提供强大的数据过滤功能从而能够满足复杂的应用开发需要的数据集成服务系统及方法。
背景技术
由于历史或其它原因,许多企业已拥有多种业务系统,导致企业内信息孤岛现象越来越严重,据IDC 2001年的报告,在全球最大的1000家企业中,平均都有14个数据库和48个应用系统,而且随着市场的变化、客户需求的变化,企业还在不断地增加它的应用。出于降低建设维护成本和提高企业竞争力的考虑,对于如此之多的应用系统的集成已变得迫在眉睫,各大电信企业纷纷开始这方面的建设。然而,目前的建设过于注重各类应用的集成,而与之紧密相关的另一问题即数据集成则往往被忽视,导致在企业应用集成项目的实施过程中才发现还需要解决数据集成问题,而由于前期的设计未充分考虑到数据集成的需求,因而分布在各个应用系统中的数据对数据的统一访问和使用构成了很大的挑战。
数据集成是企业信息系统的核心部分之一,它向其他的功能模块提供数据支撑。旧的流程架构中每种业务都有自己的数据库,这些数据一般是不完整的、不一致的。为整合数据,一般需要有数据建模、统一数据系统设计开发、原有系统数据的抽取清洁转换等工作。其中数据信息模型是基础,应该依据业务流程确定数据的要求,建立完整的信息模型。
数据集成服务的目的是使得其使用者不需关心数据源之间的差异,对访问者来说,可以不必了解数据库是何种类型,而只访问其所关心的数据即可。但因为数据源的不同,使得实现数据集成服务时存在很多的约束,并且数据集成服务的可用性也存在诸多不足。不同的关系数据库之间(包括Oracle、DB2、Informix、Sybase、MSSQL),因为数据库厂家提供了不同的内置函数,并对SQL-92标准的扩充也有很大差异,使得SQL语句写法存在很大的不同,很多时候无法在各数据源使用同一条SQL语句,如获取子字符串时Sybase和MSSQL的函数名为“substring”而Oracle中命名为“substr”。
现有技术中,通常采用以下技术实现数据集成服务现有技术一、数据集成服务完全使用与关系型数据库相同的SQL语法来实现数据集成服务数据过滤,数据过滤时只是简单的将查询请求生成SQL语句提交给数据库。
该技术的不足之处在于1、数据集成服务访问者需要知道数据源的类型;2、数据集成服务的客户端应用开发因为数据源的不同而发生改变;3、同一个数据访问无法跨越不同类型的数据源;4、受数据库所支持的功能限制,无法完成某些特殊的数据过滤。
现有技术二、数据集成服务提供统一的数据访问,对数据源的访问采用一种简单通用的方式,例如按照键值进行访问的方式,或者完全符合SQL-92标准的数据访问方式。
该技术的不足之处在于1、数据过滤的能力有限,无法满足复杂应用的需求;2、数据转换和整合的规则都融合在定制代码中,发生变化难以灵活地适应。
现有技术三、数据集成服务系统提供统一的数据访问,将数据源中的数据全部读取到数据集成服务系统中,完全由数据集成服务系统完成数据的过滤。
该技术的不足之处在于1、无法使用数据库优化器和强大的检索功能,性能不高;
2、其它数据库客户端对数据的更新无法及时通知到数据集成服务;3、通过形成中间库、或者集中库的方式来解决数据集成,然而这样的做法往往又形成了新的数据孤岛。

发明内容
本发明的目的是针对上述现有技术的不足,提供一种数据集成服务系统及方法,能够支持不同的数据源,通过统一的数据访问方式屏蔽不同数据源的差异,支持灵活的查询条件,充分利用数据库的强大检索功能,以及提供强大的数据过滤功能从而能够满足复杂的应用开发需要。
为实现上述发明目的,本发明提供了一种数据集成服务系统,包括数据注册模块,用于对数据源所提供的数据范围进行注册和保存;所述数据注册模块包括注册条件解析模块,用于对用户输入的数据源的注册条件进行解析并转换为对应的条件二叉树;注册条件转换模块,与所述注册条件解析模块连接,用于将所述注册条件解析模块转换生成的条件二叉树转换为对应字段的数值范围集合,并保存该数值范围集合;所述数据集成服务系统还包括数据查询模块,与所述注册条件转换模块以及一个或多个数据源连接,用于根据用户输入的查询条件和所述注册条件转换模块中保存的数据源提供的数据范围,向对应的数据源提交查询请求并将查询结果输出给用户。
进一步地,所述数据查询模块可具体包括查询条件解析模块,用于对用户输入的查询条件进行解析并转换为对应的条件二叉树;查询条件转换模块,与所述查询条件解析模块连接,用于将所述查询条件解析模块转换生成的条件二叉树转换为对应字段的数值范围集合;数据源查询模块,与所述查询条件转换模块、所述数据注册模块、以及所述一个或多个数据源连接,用于根据所述查询条件转换模块转换生成的数值范围集合以及所述数据注册模块保存的数据源提供的数据范围,查找并向对应的数据源提交结构化查询语言(StructuredQuery Language,简称SQL)的查询请求并获得查询结果,将查询结果输出给用户。
更进一步地,所述数据集成服务系统还可包括查询结果过滤模块,与所述查询处理模块连接,用于对所述查询处理模块查询的结果,通过预先设定的内置函数进行过滤。所述数据集成服务系统还可包括内置函数库,与所述查询结果过滤模块连接,用于保存预先设定的所述内置函数。所述数据集成服务系统还可包括配置文件模块,与所述查询结果过滤模块连接,用于保存配置文件,所述配置文件保存有对所述内置函数库中所有函数的相关参数和返回值的定义。
为实现发明目的,本发明还提供了一种数据集成服务方法,包括以下步骤在步骤1中,对用户输入的查询条件进行解析并转换为对应字段的数值范围集合;然后在步骤2中,根据所述数值范围集合以及预先保存的数据源提供的数据范围,查找并向对应的数据源提交查询请求并获得查询结果,将查询结果输出给用户。
进一步地,所述步骤1之前还可包括预先保存所述数据源提供的数值范围的操作,具体包括以下步骤在步骤01中,对用户输入的数据源的注册条件进行解析并转换为对应的条件二叉树;然后在步骤02中,将所述条件二叉树转换为对应字段的数值范围集合,并保存该数值范围集合。其中,步骤01可具体包括以下步骤在步骤010中,对用户输入的数据源的文本格式的注册条件进行结构化查询语言的语法分析,判断所述注册条件的语法是否正确,是则执行步骤011,否则结束;然后在步骤011中,将经过所述语法分析后的注册条件转换为对应的条件二叉树。
更进一步地,所述步骤1可具体包括以下步骤在步骤10中,对用户输入的查询条件进行解析并转换为对应的条件二叉树;然后在步骤11中,将所述条件二叉树转换为对应字段的数值范围集合。所述步骤2可具体包括以下步骤在步骤20中,根据所述查询条件转换模块转换生成的数值范围集合和所述数据注册模块保存的数据源提供的数据范围,查找与所述数值范围集合对应的数据源;在步骤21中,对所述数值范围集合和查找到的数据源的数据范围进行交集运算,根据运算结果生成对应的结构化查询语言的查询请求;然后在步骤22中,将所述结构化查询语言的查询请求提交给所述查找到的数据源并获得查询结果,将查询结果输出给用户。
其中,步骤22可具体包括以下步骤在步骤220中,将所述结构化查询语言的查询请求提交给所述查找到的数据源并获得查询结果;然后在步骤221中,通过预先设定的内置函数,对所述查询结果中的数据逐条根据所述查询条件对应的条件二叉树进行过滤;继而在步骤222中,通过预先设定的内置函数,对过滤后的数据逐条根据所述注册条件对应的条件二叉树进行过滤;最后在步骤223中,将经过步骤222过滤后的数据输出给用户。步骤22也可具体包括以下步骤在步骤220′中,将所述结构化查询语言的查询请求提交给所述查找到的数据源并获得查询结果;然后在步骤221′中,通过预先设定的内置函数,对所述查询结果中的数据逐条根据所述注册条件对应的条件二叉树进行过滤;继而在步骤222′中,通过预先设定的内置函数对过滤后的数据逐条根据所述查询条件对应的条件二叉树进行过滤;最后在步骤223′中将经过步骤222′过滤后的数据输出给用户。
在上述技术方案中,通过将多个数据源的提供数据范围的能力用文本格式的注册条件来描述,并将该注册条件转换为条件二叉树,继而转换为数据范围;并且对用户输入的文本格式的查询条件也作同样的处理,最终转换为数据范围集合;将该数据范围与该数据范围集合进行交集运算,将交集运算的结果转换为完全符合SQL-92标准的SQL查询语句并提交给相应的数据源,从而能够利用数据源强大的检索功能迅速获得查询结果;进一步地,通过强大的内置函数库对该查询结果进行二次过滤,从而能够提供丰富灵活的过滤功能,满足复杂应用的需求。
由上述技术方案可知,本发明通过采用数据注册机制,将不同的数据源的提供数据范围的能力统一地用数据范围来描述并保存,从而屏蔽了不同数据源的差异,为应用提供了统一的数据访问方式,使得在做应用开发时不需关心数据源的类型;进一步地,通过将查询条件同样地统一转换为数据范围集合,并与数据源注册的数据范围做交集运算,将交集运算结果转换为标准SQL语句提交给相应的数据源进行查询,从而能够支持灵活的查询条件,并且能够利用数据源强大的搜索能力,使得在做应用开发时不仅能够不需关心数据源的类型,而且能够使用灵活的查询条件,并且提高了应用开发的效率,同时大幅提高了系统的可维护性。此外,通过提供灵活可扩展的内置函数库,能够提供比数据源的过滤功能更为强大和灵活的数据过滤功能,从而能够满足各种复杂的应用需求。
综上所述,本发明通过数据注册机制以及数据查询和过滤的整体解决方案,能够达到支持不同的数据源,通过统一的数据访问方式屏蔽不同数据源的差异,支持灵活的查询条件,充分利用数据库的强大检索功能,以及提供强大的数据过滤功能从而能够满足复杂的应用开发需要的有益技术效果。


图1为本发明具体实施例一的示意图;图2为本发明具体实施例二的示意图;图3为本发明具体实施例三的示意图;图4为本发明具体实施例四的示意图;图5为本发明具体实施例五的示意图;图6为本发明具体实施例六的示意图;图7为本发明具体实施例七的示意图;图8为本发明具体实施例八的示意图;图9为本发明具体实施例九的流程图;图10为本发明具体实施例十的流程图;图11为本发明具体实施例十的示意图;
图12为本发明具体实施例十一的流程图;图13为本发明具体实施例十二的流程图;图14为本发明具体实施例十三的流程图;图15为本发明具体实施例十四的流程图;图16为本发明具体实施例十五的流程图;图17为本发明具体实施例十六的流程图;图18为本发明具体实施例十七的流程图。
具体实施例方式
下面结合附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明具体实施例一的示意图,一种数据集成服务系统A,包括数据注册模块a,用于对数据源所提供的数据范围进行注册和保存;数据注册模块a具体包括注册条件解析模块b2,用于对用户输入的数据源的注册条件进行解析并转换为对应的条件二叉树;注册条件转换模块b1,与注册条件解析模块b2连接,用于将注册条件解析模块b2转换生成的条件二叉树转换为对应字段的数值范围集合,并保存该数值范围集合;数据集成服务系统A还包括数据查询模块b,与注册条件转换模块b1以及一个或多个数据源连接,用于根据用户输入的查询条件和注册条件转换模块b1中保存的数据源提供的数据范围,向对应的数据源提交查询请求并将查询结果输出给用户。本具体实施例中,采用数据注册机制,将不同的数据源的提供数据范围的能力统一地用数据范围来描述并保存,从而屏蔽了不同数据源的差异,为应用提供了统一的数据访问方式,使得在做应用开发时不需关心数据源的类型。
图2为本发明具体实施例二的示意图,一种数据集成服务系统B,与具体实施例一的区别在于注册条件解析模块b2具体包括注册条件语法分析模块b21,用于对用户输入的数据源的文本格式的注册条件进行结构化查询语言的语法分析;注册条件二叉树生成模块b22,与注册条件语法分析模块b21连接,用于将注册条件语法分析模块b21分析后的注册条件转换为对应的条件二叉树。
图3为本发明具体实施例三的示意图,一种数据集成服务系统C,与具体实施例二的区别在于数据查询模块a具体包括查询条件解析模块a1,用于对用户输入的查询条件进行解析并转换为对应的条件二叉树;查询条件转换模块a2,与查询条件解析模块a1连接,用于将查询条件解析模块a1转换生成的条件二叉树转换为对应字段的数值范围集合;数据源查询模块a3,与查询条件转换模块a2、数据注册模块b、以及所述一个或多个数据源连接,用于根据查询条件转换模块a2转换生成的数值范围集合以及数据注册模块b保存的数据源提供的数据范围,查找并向对应的数据源提交结构化查询语言的查询请求并获得查询结果,将查询结果输出给用户。本具体实施例中,进一步地将查询条件同样地统一转换为数据范围集合,并与数据源注册的数据范围做交集运算,将交集运算结果转换为标准SQL语句提交给相应的数据源进行查询,从而能够支持灵活的查询条件,并且能够利用数据源强大的搜索能力,使得在做应用开发时不仅能够不需关心数据源的类型,而且能够使用灵活的查询条件,并且提高了应用开发的效率,同时大幅提高了系统的可维护性。
图4为本发明具体实施例四的示意图,一种数据集成服务系统D,与具体实施例三的区别在于查询条件解析模块a1具体包括查询条件语法分析模块a11,用于对用户输入的文本格式的查询条件进行结构化查询语言的语法分析;查询条件二叉树生成模块a12,与查询条件语法分析模块a11连接,用于将查询条件语法分析模块a11分析后的查询条件转换为对应的条件二叉树。
图5为本发明具体实施例五的示意图,一种数据集成服务系统E,与具体实施例四的区别在于数据源查询模块a3具体包括数据源查找模块a31,与查询条件转换模块a2和数据注册模块b连接,用于根据查询条件转换模块a2转换生成的数值范围集合和数据注册模块b保存的数据源提供的数据范围,查找与所述数值范围集合对应的数据源;查询处理模块a32,与数据源查找模块a31以及所述一个或多个数据源连接,用于根据所述数值范围集合和所述数据源的数据范围生成数据源查询条件后提交给所述数据源,并获得所述数据源的查询结果,将查询结果输出给用户。
图6为本发明具体实施例六的示意图,一种数据集成服务系统F,与具体实施例五的区别在于还包括查询结果过滤模块c,与查询处理模块a32连接,用于对查询处理模块a32查询的结果,通过预先设定的内置函数进行过滤。进一步地,数据集成服务系统F还可包括内置函数库,与查询结果过滤模块c连接,用于保存预先设定的所述内置函数。数据集成服务系统F也还可包括配置文件模块,与查询结果过滤模块c连接,用于保存配置文件,所述配置文件保存有对所述内置函数库中所有函数的相关参数和返回值的定义。本具体实施例中,进一步地通过提供灵活可扩展的内置函数或内置函数库,能够提供比数据源的过滤功能更为强大和灵活的数据过滤功能,从而能够满足各种复杂的应用需求。
图7为本发明具体实施例七的示意图,一种数据集成服务系统G,与具体实施例六的区别在于查询结果过滤模块c1具体包括注册条件过滤模块c11,与查询处理模块a32连接,用于通过预先设定的内置函数,对查询处理模块a32查询的结果中的数据逐条根据注册条件对应的条件二叉树进行过滤;查询条件过滤模块c12,与注册条件过滤模块c11连接,用于通过预先设定的内置函数,对注册条件过滤模块c11过滤后的数据逐条根据所述查询条件对应的条件二叉树进行过滤。
图8为本发明具体实施例八的示意图,一种数据集成服务系统J,与具体实施例七的区别在于查询结果过滤模块c2具体包括查询条件过滤模块c21,与查询处理模块a32连接,用于通过预先设定的内置函数,对查询处理模块a32查询的结果中的数据逐条根据查询条件对应的条件二叉树进行过滤;注册条件过滤模块c22,与查询条件过滤模块c21连接,用于通过预先设定的内置函数,对所述查询条件过滤后的数据逐条根据所述注册条件对应的条件二叉树进行过滤。
图9为本发明具体实施例九的流程图,一种数据集成服务方法,包括以下步骤在步骤1中,对用户输入的查询条件进行解析并转换为对应字段的数值范围集合;然后在步骤2中,根据所述数值范围集合以及预先保存的数据源提供的数据范围,查找并向对应的数据源提交查询请求并获得查询结果,将查询结果输出给用户。
图10为本发明具体实施例十的流程图,一种数据集成服务方法,包括以下步骤首先在步骤01中,对用户输入的数据源的注册条件进行解析并转换为对应的条件二叉树;然后在步骤02中,将所述条件二叉树转换为对应字段的数值范围集合,并保存该数值范围集合;继而在步骤1中,对用户输入的查询条件进行解析并转换为对应字段的数值范围集合;最后在步骤2中,根据所述数值范围集合以及预先保存的数据源提供的数据范围,查找并向对应的数据源提交查询请求并获得查询结果,将查询结果输出给用户。
图11为本发明具体实施例十的另一示意图,数据源能够提供什么数据,通过在数据集成服务上注册来设置,并且在注册时可以灵活指定数据范围,数据范围的描述和SQL语句中的查询条件类似,并且能够使用数据集成服务的内置函数库。例如,某个话单查询的服务器只提供号首为“8888”的电话号码中客户级别为1的话单,并且客户级别为是通过电话号码获取的,则在注册时,可以指定数据范围为“PhoneNo like‘8888%’and getCustLevel(PhoneNo)=1”。数据注册描述了数据源提供数据的能力,数据集成服务在处理查询请求的时候,将分析数据注册的关系,并决定是否将请求提交给哪些数据源。这些文本的过滤条件需要转换为二叉树的数据结构,才能方便的解决编程实现中的问题。步骤01中,将文本方式的数据条件转换为条件二叉树,例如将数据条件“((a>1 and a<200and(b=1 or b=2))or f1(a)=1)and f2(b)=1”转换后的二叉树如图12所示。此外,在步骤02中,通过将所述条件二叉树转换为对应字段的数值范围集合,也即将二叉树的叶子节点转换为对应字段具体的数据取值范围,就可以简单的通过交集(对应过滤条件文本中的and)和并集(对应过滤条件文本中的or)得到每一个字段的取值范围。因为任何一种关系型数据库都支持按取值范围查询,即都支持通过“>”,“>=”,“<”,“<=”,“=”来表示的查询条件。将条件二叉树转换为数据范围,转换的规则是,只对“>”,“>=”,“<”,“<=”,“=”和“like”进行转换,内置函数不做任何转换,因为数据库优化器在分析SQL时,对经过内置函数转换的条件同样不会转换为范围,因而这种实现方式不会造成数据库检索性能的损失。数据注册的条件和查询条件均转换数据范围后,在步骤2中,采用集合的交集运算,如上述的二叉树转换为数据范围为a∈(1,200),b∈{1,2}。如果查询条件是“where a>100 and b>1”,则对应的数据范围为a∈(100,∞),b∈(1,∞)。经过集合运算后,对应的数据范围为a∈(100,200),b∈{2}。数据范围可以很容易的转换为完全符合SQL-92标准的查询SQL语句,如下“where a>100 anda<200 and b=2”。从上面所描述的数据范围集合可以看出,经过集合运算后,对数据源的查询语句的范围是注册范围和查询范围的交集,这样数据库处理查询时的选择范围比直接查询数据源更小,有利于数据库更好的选择索引。
图12为本发明具体实施例十一的流程图,一种数据集成服务方法,与具体实施例十一的区别在于步骤01具体包括以下步骤在步骤010中,对用户输入的数据源的文本格式的注册条件进行结构化查询语言的语法分析,判断所述注册条件的语法是否正确,是则执行步骤011,否则结束;然后在步骤011中,将经过所述语法分析后的注册条件转换为对应的条件二叉树。
图13为本发明具体实施例十二的流程图,一种数据集成服务方法,包括以下步骤在步骤10中,对用户输入的查询条件进行解析并转换为对应的条件二叉树;然后在步骤11中,将所述条件二叉树转换为对应字段的数值范围集合;最后在步骤2中,根据所述数值范围集合以及预先保存的数据源提供的数据范围,查找并向对应的数据源提交查询请求并获得查询结果,将查询结果输出给用户。
图14为本发明具体实施例十三的流程图,一种数据集成服务方法,与具体实施例十三的区别在于步骤10具体包括以下步骤在步骤101中,对用户输入的文本格式的查询条件进行结构化查询语言的语法分析,判断所述查询条件的语法是否正确,是则执行步骤102,否则结束;然后在步骤102中,将经过所述语法分析后的查询条件转换为对应的条件二叉树。
图15为本发明具体实施例十四的流程图,一种数据集成服务方法,与具体实施例十四的区别在于步骤2具体包括以下步骤在步骤20中,根据所述查询条件转换模块转换生成的数值范围集合和所述数据注册模块保存的数据源提供的数据范围,查找与所述数值范围集合对应的数据源;然后在步骤21中,对所述数值范围集合和查找到的数据源的数据范围进行交集运算,根据运算结果生成对应的结构化查询语言的查询请求;最后在步骤22中,将所述结构化查询语言的查询请求提交给所述查找到的数据源并获得查询结果,将查询结果输出给用户。
图16为本发明具体实施例十五的流程图,一种数据集成服务方法,与具体实施例十五的区别在于具体实施例十五中步骤21在本具体实施例十六中为步骤21′,具体包括对所述数值范围集合和查找到的数据源的数据范围进行交集运算,并判断运算得到的交集是否为空集,是则结束,否则执行步骤22。
图17为本发明具体实施例十六的流程图,一种数据集成服务方法,与具体实施例十六的区别在于步骤22具体包括以下步骤在步骤220中,将所述结构化查询语言的查询请求提交给所述查找到的数据源并获得查询结果;然后在步骤221中,通过预先设定的内置函数,对所述查询结果中的数据逐条根据所述查询条件对应的条件二叉树进行过滤;继而在步骤222中,通过预先设定的内置函数,对过滤后的数据逐条根据所述注册条件对应的条件二叉树进行过滤;最后在步骤223中,将经过步骤222过滤后的数据输出给用户。
图18为本发明具体实施例十七的流程图,一种数据集成服务方法,与具体实施例十六的区别在于步骤22具体包括以下步骤在步骤220′中,将所述结构化查询语言的查询请求提交给所述查找到的数据源并获得查询结果;然后在步骤221′中,通过预先设定的内置函数,对所述查询结果中的数据逐条根据所述注册条件对应的条件二叉树进行过滤;继而在步骤222′中,通过预先设定的内置函数,对过滤后的数据逐条根据所述查询条件对应的条件二叉树进行过滤;最后在步骤223′中,将经过步骤222′过滤后的数据输出给用户。
最后应当说明的是以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解,依然可以对本发明的具体实施方式
进行修改或者对部分技术特征进行等同替换,而不脱离本发明技术方案的精神;其均应涵盖在本发明请求保护的技术方案范围当中。
权利要求
1.一种数据集成服务系统,其特征在于,包括数据注册模块,用于对数据源所提供的数据范围进行注册和保存;所述数据注册模块包括注册条件解析模块,用于对用户输入的数据源的注册条件进行解析并转换为对应的条件二叉树;注册条件转换模块,与所述注册条件解析模块连接,用于将所述注册条件解析模块转换生成的条件二叉树转换为对应字段的数值范围集合,并保存该数值范围集合;数据查询模块,与所述注册条件转换模块以及一个或多个数据源连接,用于根据用户输入的查询条件和所述注册条件转换模块中保存的数据源提供的数据范围,向对应的数据源提交查询请求并将查询结果输出给用户。
2.根据权利要求1所述的系统,其特征在于,所述注册条件解析模块具体包括注册条件语法分析模块,用于对用户输入的数据源的文本格式的注册条件进行结构化查询语言的语法分析;注册条件二叉树生成模块,与所述注册条件语法分析模块连接,用于将所述注册条件语法分析模块分析后的注册条件转换为对应的条件二叉树。
3.根据权利要求1或2所述的系统,其特征在于,所述数据查询模块具体包括查询条件解析模块,用于对用户输入的查询条件进行解析并转换为对应的条件二叉树;查询条件转换模块,与所述查询条件解析模块连接,用于将所述查询条件解析模块转换生成的条件二叉树转换为对应字段的数值范围集合;数据源查询模块,与所述查询条件转换模块、所述数据注册模块、以及所述一个或多个数据源连接,用于根据所述查询条件转换模块转换生成的数值范围集合以及所述数据注册模块保存的数据源提供的数据范围,查找并向对应的数据源提交结构化查询语言的查询请求并获得查询结果,将查询结果输出给用户。
4.根据权利要求3所述的系统,其特征在于,所述查询条件解析模块具体包括查询条件语法分析模块,用于对用户输入的文本格式的查询条件进行结构化查询语言的语法分析;查询条件二叉树生成模块,与所述查询条件语法分析模块连接,用于将所述查询条件语法分析模块分析后的查询条件转换为对应的条件二叉树。
5.根据权利要求3所述的系统,其特征在于,所述数据源查询模块具体包括数据源查找模块,与所述查询条件转换模块和所述数据注册模块连接,用于根据所述查询条件转换模块转换生成的数值范围集合和所述数据注册模块保存的数据源提供的数据范围,查找与所述数值范围集合对应的数据源;查询处理模块,与所述数据源查找模块以及所述一个或多个数据源连接,用于根据所述数值范围集合和所述数据源的数据范围生成数据源查询条件后提交给所述数据源,并获得所述数据源的查询结果,将查询结果输出给用户。
6.根据权利要求5所述的系统,其特征在于还包括查询结果过滤模块,与所述查询处理模块连接,用于对所述查询处理模块查询的结果,通过预先设定的内置函数进行过滤。
7.根据权利要求6所述的系统,其特征在于,所述查询结果过滤模块具体包括注册条件过滤模块,与所述查询处理模块连接,用于通过预先设定的内置函数,对所述查询处理模块查询的结果中的数据逐条根据所述注册条件对应的条件二叉树进行过滤;查询条件过滤模块,与所述注册条件过滤模块连接,用于通过预先设定的内置函数,对所述注册条件过滤模块过滤后的数据逐条根据所述查询条件对应的条件二叉树进行过滤。
8.根据权利要求6所述的系统,其特征在于,所述查询结果过滤模块具体包括查询条件过滤模块,与所述查询处理模块连接,用于通过预先设定的内置函数,对所述查询处理模块查询的结果中的数据逐条根据所述查询条件对应的条件二叉树进行过滤;注册条件过滤模块,与所述查询条件过滤模块连接,用于通过预先设定的内置函数,对所述查询条件过滤后的数据逐条根据所述注册条件对应的条件二叉树进行过滤。
9.根据权利要求6所述的系统,其特征在于,还包括内置函数库,与所述查询结果过滤模块连接,用于保存预先设定的所述内置函数。
10.根据权利要求9所述的系统,其特征在于,还包括配置文件模块,与所述查询结果过滤模块连接,用于保存配置文件,所述配置文件保存有对所述内置函数库中所有函数的相关参数和返回值的定义。
11.一种数据集成服务方法,其特征在于,包括以下步骤步骤1、对用户输入的查询条件进行解析并转换为对应字段的数值范围集合;步骤2、根据所述数值范围集合以及预先保存的数据源提供的数据范围,查找并向对应的数据源提交查询请求并获得查询结果,将查询结果输出给用户。
12.根据权利要求11所述的方法,其特征在于,所述步骤1之前还包括预先保存所述数据源提供的数值范围的操作,具体包括步骤01、对用户输入的数据源的注册条件进行解析并转换为对应的条件二叉树;步骤02、将所述条件二叉树转换为对应字段的数值范围集合,并保存该数值范围集合。
13.根据权利要求12所述的方法,其特征在于,所述步骤01具体包括步骤010、对用户输入的数据源的文本格式的注册条件进行结构化查询语言的语法分析,判断所述注册条件的语法是否正确,是则执行步骤011,否则结束;步骤011、将经过所述语法分析后的注册条件转换为对应的条件二叉树。
14.根据权利要求11所述的方法,其特征在于,所述步骤1具体包括步骤10、对用户输入的查询条件进行解析并转换为对应的条件二叉树;步骤11、将所述条件二叉树转换为对应字段的数值范围集合。
15.根据权利要求14所述的方法,其特征在于,所述步骤10具体包括步骤101、对用户输入的文本格式的查询条件进行结构化查询语言的语法分析,判断所述查询条件的语法是否正确,是则执行步骤102,否则结束;步骤102、将经过所述语法分析后的查询条件转换为对应的条件二叉树。
16.根据权利要求11所述的方法,其特征在于,所述步骤2具体包括步骤20、根据所述查询条件转换模块转换生成的数值范围集合和所述数据注册模块保存的数据源提供的数据范围,查找与所述数值范围集合对应的数据源;步骤21、对所述数值范围集合和查找到的数据源的数据范围进行交集运算,根据运算结果生成对应的结构化查询语言的查询请求;步骤22、将所述结构化查询语言的查询请求提交给所述查找到的数据源并获得查询结果,将查询结果输出给用户。
17.根据权利要求16所述的方法,其特征在于,所述步骤21具体包括对所述数值范围集合和查找到的数据源的数据范围进行交集运算,并判断运算得到的交集是否为空集,是则结束,否则根据该交集生成对应的结构化查询语言的查询请求。
18.根据权利要求16所述的方法,其特征在于,所述步骤22具体包括以下步骤步骤220、将所述结构化查询语言的查询请求提交给所述查找到的数据源并获得查询结果;步骤221、通过预先设定的内置函数,对所述查询结果中的数据逐条根据所述查询条件对应的条件二叉树进行过滤;步骤222、通过预先设定的内置函数,对过滤后的数据逐条根据所述注册条件对应的条件二叉树进行过滤;步骤223、将经过步骤222过滤后的数据输出给用户。
19.根据权利要求16所述的方法,其特征在于,所述步骤22具体包括以下步骤步骤220′、将所述结构化查询语言的查询请求提交给所述查找到的数据源并获得查询结果;步骤221′、通过预先设定的内置函数,对所述查询结果中的数据逐条根据所述注册条件对应的条件二叉树进行过滤;步骤222′、通过预先设定的内置函数,对过滤后的数据逐条根据所述查询条件对应的条件二叉树进行过滤;步骤223′、将经过步骤222′过滤后的数据输出给用户。
全文摘要
一种数据集成服务系统,包括数据注册模块,用于对该数据源所提供的数据范围进行注册和保存;数据查询模块,与所述数据注册模块以及一个或多个数据源连接,用于向对应的数据源提交查询请求并将查询结果输出给用户。一种数据集成服务方法,包括以下步骤步骤1为对用户输入的查询条件进行解析并转换为对应字段的数值范围集合;步骤2为根据数值范围集合以及预先保存的数据源提供的数据范围,查找并向对应的数据源提交查询请求并获得查询结果,将查询结果输出给用户。本发明能够支持不同的数据源,屏蔽不同数据源的差异,支持灵活的查询条件,充分利用数据库的强大检索功能,以及提供强大的数据过滤功能从而能够满足复杂的应用开发需要。
文档编号H04L12/24GK101046811SQ20061008317
公开日2007年10月3日 申请日期2006年6月7日 优先权日2006年6月7日
发明者朱仲楚 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1