基于XML的异构数据集成研究及应用

时间:2022-10-29 07:02:39

基于XML的异构数据集成研究及应用

摘 要:在企业信息化建设过程中形成的数据孤岛阻碍了企业信息化程度的进一步提高,研究异构数据集成模型,对于解决数据孤岛问题具有重要意义。通过应用XML技术构建数据集成中间实体,屏蔽各异构数据之间的差异,从而形成统一数据视图的方法,实现了一种异构数据集成新模型XDIM,并将其应用在青海大学综合信息服务平台中。该模型采用精简的算法,具有灵活高效的特点,能够有效解决多数据源环境下的异构数据集成问题。

关键词:异构; XML; 数据集成;数据孤岛

中图分类号:TP311 文献标识码:B

文章编号:1004-373X(2010)12-0039-04

Research and Application of XML-based Heterogeneous Data Integration

MA Guo-cai, LIU Hai-xiong

(Qinghai University, Xining 810016, China)

Abstract:The model of heterogeneous data integration is researched to resolve the "data island" which is formed in the process of enterprise infomationization and blocks the further progress of enterprise infomationization. A XDIM model of heterogeneous data integration is achieved by constructing the middle data integration components to shield the defference among all the heterogeneous data and form a unified data view. It has been applied in the comprehensive information service platform of Qinghai University. With simple algorithm, the model possesses the flexibility and high-efficiency characteristics, and can effectivly solve the problem of heterogeneous data integration in the environment of multiple data source.

Keywords:heterogeneous data; XML; data integration; data island

0 引 言

随着计算机技术,特别是Internet 技术的迅猛发展,在许多行业、单位或机构、部门内部都逐步实现了业务、信息的计算机化管理。但是,各个行业、部门或机构由于业务和功能归属不同,因此都是根据自身的需要,构建了许多相互隔离的信息服务和管理系统。甚至在一个单位内部各部门所采用的计算环境由不同平台组成,而不是固守任何一个平台。这样随着时间的推移和技术的进步,这些由不同核心技术构建的信息系统就像一个个“信息孤岛” ,各自有着不同的处理对象、操作方法和专用客户端,在各个环节之间存在着数据交流和部门协同的问题[1]。“信息孤岛”的存在不仅提高了企业维护数据的费用,而且企业很难根据分散的数据做出正确的决策[2]。为了改善这种局面,同时在各个“信息孤岛”之中共享和交换数据,并且给企业用户提供企业数据的集成视图,从而根据集成之后的数据及时地调整业务策略,就必须考虑数据集成的问题。

从20世纪80年代开始,异构数据的集成问题就引起了国内外学者的广泛关注,并有很专家学者投入到了异构数据集成的研究中。随着计算机技术不断快速的发展,新的数据类型也不断涌现,异构数据的集成的研究工作也断地追逐着新的数据类型而向前推进,尤其是XML的出现将数据集成的研究推向了一个新的阶段[3]。研究者把自己对半结构化数据的研究成果,特别是对数据建模和查询语言的研究进行必要的改变和扩展以适应新兴的蓬勃发展的数据表示的要求。美国斯坦福大学开发的TSIMMIS[4]是第一个提出在模式集成中使用半结构化数据模型的项目之一。在国内,东南大学研究的Versatile[5]和华中科技大学研究的Panorana[4]系统都在虚拟数据集成方面取得了很大的成果。也都是把数据存储在各个数据源中,通过统一定义的模式来进行查询。

分析目前的国内外的研究成果,不难发现不同的数据集成模型追求的集成目标也不尽相同,很多模型追求大而全,希望形成标准,但存在应用不灵活、效率较低的不足[6-7],立足具体的应用领域,为特定用户量身打造适应其业务需求的数据集成模型,为有效解决用户的实际需求,为异构数据集成标准的形成有具有重要的意义。本文提出并实现一种基于XML的数据集成模型XDIM(XML-based data integration mode),并将其应用在青海大学综合信息服务平台的数据集成中。该模型采用中间件技术和Agent技术实现,它通过设计通用转换工具,使用以XML定义的行业标记语言指导数据转换和校验,建立统一数据模型,从而能够充分利用XML查询的成熟技术[7],降低了Agent及中间件层的设计实现难度,提高了实时查询效率。

1 异构数据集成模型

XDIM的结构如图1所示。

图1 基于XML的异构数据集成模型

XDIM分为用户接口层、全局层、消息中间件层、局部和数据源层4个层次,其中:

用户接口层位于XDIM模型的最上层,也是模型中数据的最终消费者和查询发起者,用户接口层包括Web浏览器、应用程序等多种客户应用。

全局层这层是全局查询的处理层,主要由模式仓库和全局两大部分组成。其中,模式仓库存储几种不同类型的信息:一是从各数据源输出的XML Schema;二是各输出XML Schema集成后的全局XML Schema;三是全局XML Schema与输出XML Schema之间的映射;四是输出XML Schema之间的连接条件。全局包括4个部分:XQuery校验器,用于验证发送至XQuery标准化器的XQuery语句格式是否正确;XQuery标准化器根据一定的标准化规则对XQuery进行标准化;XQuery分解器根据从模式仓库中得到的信息将全局XQuery查询分解成数据源输出模式上的XQuery查询,并将分解后的XQuery查询封装成XML消息分别发送到消息中间件中的当前数据源消息接收队列中;XML结果组合器,用来组合来自局部的XML中间结果,从而获得全局查询的最终结果。

消息中间件层这层为全局和局部之间的通信提供一种环境。通过使用可靠的消息队列,提供支持消息传递所需的目录,安全和管理服务,确保全局和局部之间消息传送的安全。

局部和数据源层这层是XDIM的最底层,由局部和数据源2部分组成。局部是局部数据源的访问接口,它负责维护局部数据源的输出XML Schema,同时向数据源提交查询任务,并将本地查询的查询结果封装成XML格式后发送到消息中间件中的全局消息接收队列中;数据源则是异构数据的宿地,它为上层提供数据支持。

2 XDIM数据集成模型实现的关键技术

2.1 模式集成

数据模式(schema)主要指异构数据源中数据的类型及各数据之间的相互关系,其主要任务是依据各异构数据源的局部模式,得到全局模式。在集成过程中需要解决各局部模式之间的异构性以及建立不同模式对象之间的映射等问题[5]。XDIM模型中采用4级模式结构,如图2所示。

(1) 局部模式:局部模式指各异构数据源中数据的模型,不同的数据源就可能有不同的数据模型,如关系数据库的关系模型、XML文件中的层次模型等。

(2) 输出模式:该模式是局部模式的公共表示,即将各异构数据源中的局部数据模型翻译成公共数据模型――XML schema。

(3) 全局模式:全局模式是各输出模式集成后得到的一个统一模式,即由各输出模式得到的一个全局XML schema。

(4) 用户模式:用户模式是为不同的用户或应用而定制的各类模式,该模式是在全局模式的基础上施加各种不同的约束而形成的特殊模式。

图2 四级模式结构

2.2 全局查询处理

当用户在全局模式提交了一个全局查询后,由全局接收并作出分解,分解后的子查询在各异构数据源上执行并得到结果,全局还要负责将各子查询产生的查询结果进行组合,形成最终的查询结果[8]。全局接收到一个全局XQuery查询后,首先由XQuery校验器对XQuery进行校验,然后由XQuery标准化器对格式正确的XQuery进行标准化,标准化后的XQuery分解器分解成多个XQuery子查询,最后由XML结果组合器组合来自局部的中间XML结果。

其中最关键的是XQuery分解算法[9],针对XDIM提出一种简单且易于实现的查询分解算法,为了便于叙述,将for子句的分解、where子句的分解、order by子句的分解和return子句的分解分别作为算法2、┧惴3、算法4、算法5给出。

算法1分解全局查询

输入:全局模式G上的查询QG;

输出:输出模式集合L上的子查询QL=(Q1,Q2,…,Qn}。

算法:

(1) 对for子句迭代列表中的每一个迭代项调用算法2;

(2) 对where子句谓词列表中的每一个谓词调用算法3;

(3) 对order by子句排序列表中的每一个排序项调用算法4;

(4) 对return子句元素构造器投影元组的每一个投影项调用算法5,计算子查询Qi(1≤i≤n)的元素构造器创建的XML结构;

(5) 依据迭代列表、谓词列表、排序列表以及XML结构计算子查询Qi(1≤i≤n)。

算法2分解迭代项

输入:形如“$var in E”的迭代项

算法:

(1) 从迭代项中分离出变量$var及绑定表达式E;

(2) 依据模式映射信息计算E的映射表达式Ei(1≤i≤n);

(3)构造迭代项$var in Ei(1≤i≤n);

(4)将迭代项$var in Ei(1≤i≤n)加入模式Li(1≤i≤n)的迭代列表中。

算法3分解谓词

输入: 形如“”的谓词。

算法:

(1) 依据模式映射信息计算的映射表达式ELi(1≤i≤n);

(2) 如果是常量表达式Const,将谓词加入模式Li(1≤i≤n)的谓词列表中;否则;

(3) 依据模式映射信息计算在模式Li(1≤i≤n)中的映射表达式ERi(1≤i≤n);

(4) 构造谓词;

(5) 将谓词加入模式Li(1≤i≤n)的谓词列表中。

算法4分解排序项

输入: 形如“E ascending”的排序项。

算法:

(1) 从排序项中分离出排序表达式E以及排序说明ascending;

(2) 依据模式映射信息计算E的映射表达式Ei(1≤i≤n);

(3) 构造排序项Ei ascending;

(4) 将排序项Ei ascending,加入模式Li(1≤i≤n)的排序列表中。

算法5分解投影项

输入:形如“$var”的投影项。

算法:

(1) 获取变量$var的绑定表达式E。

(2) 依据模式映射信息计算E的映射表达式Ei(1≤i≤n);

(3) 构造投影项$varEi;

(4) 将投影项$varEi加入模式Li(1≤i≤n)的return子句投影列表中。

3 应用实例

青海大学综合信息服务平台由数据集成系统、内容管理系统、办公自动化系统和统一网站4大模块组成。其中,数据集成系统是整个综合信息服务平台建设的基础,用于集成学校各应用部门应用系统的各类信息,包括学校基本情况信息、学生信息、教职工信息、教学管理信息、科研信息、体育卫生信息、办公管理信息、房产与设备信息、仪器设备与实验室管理信息以及图书管理信息等。

数据集成系统的总体结构如图3所示。

图3 青海大学综合信息服务平台中数据集成系统结构图

要集成的数据源包括XML,dbf,Access,SQL server,Sybase,Oracle等。每一种数据源用一个定制的采集Agent来实现查询翻译、数据转换等功能,并将从数据源中提取的数据封装成XML传递给消息中间件,同时采集Agent还负责提供数据源在XML公共数据模型上的输出模式并对输出模式进行维护。消息中间件负责采集Agent与数据集成平台之间的消息传递。数据集成平台负责元数据模型的维护,接收用户的XQuery查询请求,标准化查询并分解成涉及到的数据源上的XQuery子查询,组合从采集Agent返回的结果以形成最终的目标XML。数据访问接口提供用户访问数据集成平台的接口,用户可以通过数据访问接口定制所需的XQuery查询。数据定制实现个性化的数据展现,可将数据集成平台返回的XML查询结果定制成Web用户喜欢的样式,如饼图、表格、云图以及柱状图等。

4 结 语

XDIM 数据集成模型通过在各异构数据源建立针对本地数据模型的采集Agent,在数据源层利用XML统一了数据模式,为全局件层提供了一个虚拟的分布式同构数据库环境,大大降低了模型的设计和实现难度。在全局层使用模式仓库记录模式转换所需要的相关信息,指导对全局查询预处理和分解,使得数据集成系统的设计简单灵活,具有较强的可扩展性和可移植性。同时通过数据源层设置采集Agent,使全局层的工作集中于查询的分解和数据的汇总,均衡了系统 的负载,提高了整体效率,可以为异构数据集成标准的形成提供参考。XDIM数据集成模型应用在青海大学综合信息平台中,其有效地集成了校内主要部门,如教务处、人事处、研究生部等部门的数据,为各部间的信息共享提供了方便,为学校领导的高效决策提供了支持。

参考文献

[1]张正明,佟俐鹃.异构数据库集成的研究和实现[J].航空计算技术,2006,34(2):35-36.

[2]杨芳,陶世群.基于XML异构数据库系统的集成设计[J].计算机工程与设计,2005(7):1907-1910.

[3]MOHAN S, SENGUPTA A, WU Y. Access control for XML-a dynamic query rewriting approach[J]. VLDB, 2005:1-12.

[4]赵毅.一种基于XML的数据集成系统框架及其应用[J].计算机工程,2005(26):181-183.

[5]刘科研,万丽荣,曾庆良,等.基于XML的信息集成系统的研究与实现[J].计算机应用研究,2005(4):149-154.

[6]靳强勇,李冠宇,张俊.异构数据集成技术的发展和现状[ J] .计算机工程与应用,2002(1):112-114.

[7]高明,宋瀚涛.异构数据源集成应用模型及其查询处理方法[J].计算机工程,2003.29(15):91-150.

[8]张晓琳,王国仁.面向对象XML数据库的逻辑基础[J].计算机研究与发展,2006,43(11):2012-2019.

[9]刘喜平,万常选.基于关系数据库有效地处理XPATH函数[J].计算机工程与应用,2005(28):163-169.

[10]尚蕾,孙志辉.基于XML的异构数据集成系统的查询处理[J].计算机工程,2005,31(5):79-81.

上一篇:基于广义积分器的DVR控制策略研究 下一篇:基于FPGA的雷达脉冲预分选器设计