数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。
一、模型分类
(1)联邦式数据库系统(Federated Distributed Database System),这种分布式数据库的特点是结点自治和没有全局数据模式,每个结点所看到的数据模式仅仅限于此结点所用到的数据。它一般由两部分组成:一个是本节点的数据模式,另一个是供本节点共享的其他节点上有关的数据模式。结点间的数据共享由双边协商确定。
(2)中间件模式通过统一的全局数据模型来访问异构的数据库、遗留系统、Web资源等。中间件位于异构数据源系统(数据层)和应用程序之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口。中间件系统则主要集中为异构数据源提供一个高层次检索服务。
(3)数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的和不可修改的数据集合。其中,数据被归类为广义的、功能上独立的、没有重叠的主题。
二、Web服务的数据集成中间件设计与实现
该系统的主要部分是中介器(Mediator)和针对每个数据源的包装器(Wrapper)。这里中介器的功能是接收针对全局模式生成的查询,根据数据源描述信息及映射规则将接收的查询分解成每个数据源的子查询,再将子查询发送到每个数据源的包装器。包装器将这些子查询翻译成符合每个数据源的子查询,并把查询结果返回给中介器。中介器将接收的所有数据源的结果合并成一个结果返回给用户。
在Web Services的框架下使用一组Web Service协议构建信息集成系统。为中间件的数据访问接口创建一个Web Service,然后使用WSDL向服务中心注册。客户端首先向注册中心发送查找请求,然后通过SOAP协议调用数据访问接口,从这些数据源获取数据。这种方法具有完好封装、松散耦合、规范协议和高度的集成能力等特性。
该系统有五个核心模块:
(1)中间件配置模块:配置中间件和各个异构数据库的连接信息,包括数据库地址、登录用户名、密码、数据库名。
(2)查询分解模块:根据数据源描述信息及映射规则将接收的查询分解成每个数据源的子查询。
(3)子查询发送模块:分析用户提交的查询语句,从中找出该查询需要的数据源,然后到中间件的配置信息中查找相应的包装器,把连接信息和子查询发送到对应的包装器。
(4)子查询执行模块:子查询模块根据不同的数据库类型,加载对应的JDBC驱动程序,实现多个不同数据库的查询操作。
(5)查询结果重组模块:查询结果重组模块收集子查询的结果,这些结果是以DataSet的形式存在的,然后合并为一个大的DataSet作为最终的结果。返回给客户端时,根据DataSet生成一个结果XML文件给客户端,完成整个查询流程。