本发明属于知识管理与数据集成技术领域。
背景技术:
随着大数据时代的到来和知识经济的深入发展,企业、研究所等研发和生产机构愈发重视对知识的管理,实施了许多信息化软件,并产生了大量的数据,分别存储于不同的数据库中。而相对独立、缺乏组织的知识难以发挥充分的价值,因此需要通过对异构数据库的集成将这些资源进行有效的整合。
这些数据库具有系统异构、结构异构等特点,称为异构数据库。常规的集成方法多采取定制的方式,对现有的异构数据库进行集成,且要求在集成之前,完成对这些数据库结构的读取工作,为后期构建检索语句提供基础,此步骤是实现集成方法的重要部分。而当用户提出新的需求时,则需要人工对平台进行维护和改进,是一个漫长而复杂的过程。当前也存在一些支持用户导入和管理数据库的集成方法,但是,这些集成方法只能够实现初步的集成,在集成检索中向用户返回最基本的检索字段,当用户对知识详细内容和结构有进一步需求时,往往采取自动获取数据库关联表的方式向用户返回一些可能相关的信息,而这些信息往往具有准确度低、缺乏组织等特点。
传统的分布对象技术分别有OMG的CORBA、Microsoft的DCOM以及SUN的RMI。然而CORBA缺少方便的开发工具和强有力的厂商支持,门槛稍高,入门较困难;DCOM跨平台性较差;RMI对多语言融合的支持却很弱。同时,这几种技术都有相似的缺陷:①CORBA、DCOM和RMI虽然能调用实现的系统,但均要求服务器和客户端必须紧密耦合,并且体系结构相同;②CORBA、DCOM和RMI依赖于特定的对象模型协议,目前只在企业内部使用广泛,都不太适合在Internet环境下进行多源异构数据库融合的设计开发。
因此,亟需一种企业应用数据集成技术,其通过建立底层结构,来联系横贯整个企业的异构系统、应用、数据源等,实现企业内部的各种信息化系统、数据库、数据仓库,以及其他重要的内部系统之间无缝地共享和交换数据。
技术实现要素:
为了解决现有技术中的上述问题,本发明提出了一种企业异构数据库智能集成的方法。
本发明采用的技术方案如下:
一种企业异构数据库智能集成的系统,包括:数据仓库、集成数据层和应用接口;
底层的各个异构数据源构成了系统的数据仓库;
集成数据层封装了异构数据库集成系统的业务逻辑;
各种应用程序和对应的访问接口构成了系统的应用接口;
集成数据层是实现异构数据库中数据转换的核心,目的是访问各个数据源,集成数据源信息,协调各数据源间信息;集成数据层在各局部数据提供的共享数据的基础之上建立一个全局的虚拟视图,并不存储实际的数据;具体包括:元数据DB、元数据管理器、综合包装器、中介器、应用层访问统一接口、异构数据库统一接口;
元数据DB用于储存各异构数据库的元数据库信息;
元数据管理器用于制定集成系统的全局模式与局部数据库的模式之间的转换规则;
中介器用于异构数据库的注册、公共模型的生成和全局查询请求的接收;其中,中介器由三个组件构成,包括:异构数据注册模块、查询规划模块和结果合并过滤模块;异构数据注册模块的主要功能是:在共享数据注册阶段,负责公共模型的建立以及异构数据库的共享注册;查询规划模块的主要功能是:在数据集成阶段,将客户端提交的基于全局数据库的标准查询分解成针对各个异构数据库的子查询,并提交到相应的包装器;结果合并过滤模块的主要功能是:将各异构数据库查询返回的XML文档进行合并,形成完整统一的查询结果,反馈至客户端浏览器;
综合包装器用于实现数据位置和访问的透明,对异构的数据进行包装;综合包装器由智能更新模块、查询结果转换模块和数据库操作模块三个组件构成;智能更新模块采用spring框架的quartz任务定时的扫描由不同的异构数据库上传的XML描述文档,通过解析这些XML文档,实现数据自动更新;查询结果转换模块负责将SQL查询的结果转换为XML文档;数据库操作模块负责连接后台各个异构数据库,包括初始化数据库连接、分配连接、封装数据库基本操作、关闭连接的功能;
集成数据层对外提供了两个统一接口,即应用层访问统一接口和底层异构数据库访问接口;其功能是屏蔽各数据库的差异,提供数据的透明访问,使得使用者无需知道数据的数据源模式及具体的物理位置等信息,只需通过系统定义的与具体数据源无关的SQL语句进行访问。
优选地,该系统采用B/S模式,构成了客户/服务器三层架构。
优选地,集成数据层采用中间件技术。
优选地,所述元数据库信息包括注册信息、连接信息URL、各元数据库用户与全局用户的匹配关系、模式映射信息、访问策略信息,元数据DB支撑整个系统的运行。
一种企业异构数据库智能集成的方法,
该方法应用包括数据仓库、集成数据层和应用接口的系统;
其中,底层的各个异构数据源构成了系统的数据仓库;集成数据层封装了异构数据库集成系统的业务逻辑;各种应用程序和对应的访问接口构成了系统的应用接口;集成数据层是实现异构数据库中数据转换的核心,目的是访问各个数据源,集成数据源信息,协调各数据源间信息;集成数据层在各局部数据提供的共享数据的基础之上建立一个全局的虚拟视图,并不存储实际的数据;具体包括:元数据DB、元数据管理器、综合包装器、中介器、应用层访问统一接口、异构数据库统一接口;元数据DB用于储存各异构数据库的元数据库信息;
元数据管理器用于制定集成系统的全局模式与局部数据库的模式之间的转换规则;中介器用于异构数据库的注册、公共模型的生成和全局查询请求的接收;其中,中介器由三个组件构成,包括:异构数据注册模块、查询规划模块和结果合并过滤模块;异构数据注册模块的主要功能是:在共享数据注册阶段,负责公共模型的建立以及异构数据库的共享注册;查询规划模块的主要功能是:在数据集成阶段,将客户端提交的基于全局数据库的标准查询分解成针对各个异构数据库的子查询,并提交到相应的包装器;结果合并过滤模块的主要功能是:将各异构数据库查询返回的XML文档进行合并,形成完整统一的查询结果,反馈至客户端浏览器;综合包装器用于实现数据位置和访问的透明,对异构的数据进行包装;综合包装器由智能更新模块、查询结果转换模块和数据库操作模块三个组件构成;智能更新模块采用spring框架的quartz任务定时的扫描由不同的异构数据库上传的XML描述文档,通过解析这些XML文档,实现数据自动更新;查询结果转换模块负责将SQL查询的结果转换为XML文档;数据库操作模块负责连接后台各个异构数据库,包括初始化数据库连接、分配连接、封装数据库基本操作、关闭连接的功能;
集成数据层对外提供了两个统一接口,即应用层访问统一接口和底层异构数据库访问接口;其功能是屏蔽各数据库的差异,提供数据的透明访问,使得使用者无需知道数据的数据源模式及具体的物理位置等信息,只需通过系统定义的与具体数据源无关的SQL语句进行访问;
在数据注册阶段,由中介器中的注册管理器来完成,主要任务是完成对各异构数据源在集成数据层中的注册,选择集成的内容(共享的表和字段)和访问的权限,并建立数据库集成的模型,登录数据集成系统,选择数据库中共享的内容,对共享的数据的访问权限进行设定,选择自己欲注册的数据库类型,向集成系统管理员注册信息,如数据库主机名、IP地址、用户名、密码;由数据集成系统管理员审核各注册的异构数据源,确定访问权限和集成内容。由集成数据层建立共享的公共模型,并收集各注册的数据库信息;
在系统运行阶段,接受用户提出的查询请求并对请求做出相应的解答。
本发明的有益效果包括:使得异构数据库实现数据共享的同时,每个数据库系统保持着自己的完整性、自治性和安全性。
【附图说明】
此处所说明的附图是用来提供对本发明的进一步理解,构成本申请的一部分,但并不构成对本发明的不当限定,在附图中:
图1是本发明中异构数据库智能集成系统框架图;
图2是本发明方法的流程图。
【具体实施方式】
下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定。
参见附图1,Web服务集成中间件系统体系自下而上包括数据仓库、集成数据层和应用接口。其中,底层的各个异构数据源构成了系统的数据仓库;集成数据层采用中间件技术,封装了异构数据库集成系统的业务逻辑;各种应用程序和对应的访问接口构成了系统的应用接口。
该系统采用B/S模式,构成了客户/服务器三层架构。采用这种设计有以下几种优势:安装升级方便;易扩展维护;可移植性强可靠性强;数据智能更新快。
集成数据层是实现异构数据库中数据转换的核心,目的是访问各个数据源,集成数据源信息,协调各数据源间信息。集成数据层在各局部数据提供的共享数据的基础之上建立一个全局的虚拟视图,并不存储实际的数据。具体包括:元数据DB、元数据管理器、综合包装器、中介器、应用层访问统一接口、异构数据库统一接口,下面分别对各模块加以介绍。
元数据DB负责储存各异构数据库的元数据库信息。元数据库信息包括注册信息、连接信息URL、各元数据库用户与全局用户的匹配关系、模式映射信息、访问策略信息等。元数据DB支撑整个系统的运行。
元数据管理器负责制定集成系统的全局模式与局部数据库的模式之间的转换规则。
中介器负责异构数据库的注册、公共模型的生成和全局查询请求的接收。中介器由三个组件构成,包括:异构数据注册模块、查询规划模块和结果合并过滤模块。其中,异构数据注册模块的主要功能是:在共享数据注册阶段,负责公共模型的建立以及异构数据库的共享注册;查询规划模块的主要功能是:在数据集成阶段,将客户端提交的基于全局数据库的标准查询分解成针对各个异构数据库的子查询,并提交到相应的包装器;结果合并过滤模块的主要功能是:将各异构数据库查询返回的XML文档进行合并,形成完整统一的查询结果,反馈至客户端浏览器。
综合包装器的功能是实现数据位置和访问的透明,对异构的数据进行包装。综合包装器由智能更新模块、查询结果转换模块和数据库操作模块三个组件构成。智能更新模块采用spring框架的quartz任务定时的扫描由不同的异构数据库上传的XML描述文档,通过解析这些XML文档,实现数据自动更新,从而保证抽象数据表的有效性、实时性、智能性。查询结果转换模块负责将SQL查询的结果转换为XML文档。数据库操作模块负责连接后台各个异构数据库,包括初始化数据库连接、分配连接、封装数据库基本操作、关闭连接等功能。
集成数据层对外提供了两个统一接口,即应用层访问统一接口和底层异构数据库访问接口。其功能是屏蔽各数据库的差异,提供数据的透明访问,使得使用者无需知道数据的数据源模式及具体的物理位置等信息,只需通过系统定义的与具体数据源无关的SQL语句进行访问。
参见附图2,其是本发明一种企业异构数据库智能集成方法的流程图。
数据注册阶段
由中介器中的注册管理器来完成,主要任务是完成对各异构数据源在集成数据层中的注册,选择集成的内容(共享的表和字段)和访问的权限,并建立数据库集成的模型。在这个阶段,主要有各异构数据库管理员和集成系统管理员两类角色参与,他们的主要任务如下:各异构数据库管理员:主要完成登录数据集成系统,选择数据库中共享的内容,对共享的数据的访问权限进行设定。选择自己欲注册的数据库类型,向集成系统管理员注册信息,如数据库主机名、IP地址、用户名、密码。
数据集成系统管理员:主要审核各注册的异构数据源,确定访问权限和集成内容。由集成数据层建立共享的公共模型,并收集各注册的数据库信息。
系统运行阶段
此阶段的主要任务是接受用户提出的查询请求并对请求做出相应的解答。
数据查询流程包括以下四个步骤:
步骤1:用户从浏览器利用HTTP协议,向应用层统一接口发出查询请求,接口收到用户查询请求后进行分析执行,转化为查询参数;
步骤2:中介器得到查询参数后,到元数据中查找目标数据库及数据表,并通过查询规划模块进行SQL分解,生成异构数据库相对应的SQL子查询语句SQL1,SQL2,…,并放入队列之中准备执行;
步骤3:综合包装器通过数据库操作模块,从查询队列中将SQL子查询语句SQL1,SQL2,…发送到相应的异构数据库中执行;
步骤4:异构数据库将数据查询响应后数据发送给综合包装器,通过查询结果转化模块,把各异构数据库的查询结果DATA1,DATA2…转化成XML1,XML2…文档;
步骤5:中介器再对各个数据库提供的查询结果XML1,XML2…
文档作集成处理,即将XML1,XML2…经由结果合并过滤模块的处理,合并不完整的数据和过滤重复的数据。将完整统一的查询结果XML发送给客户端浏览器,经由浏览器呈现在用户面前。
通过上述方法,本发明的方案使得异构数据库实现数据共享的同时,每个数据库系统保持着自己的完整性、自治性和安全性。
以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。