基于XML的异构数据集成研究
2010-10-09王智军
王智军
(赤峰学院 计算机科学与技术系,内蒙古 赤峰 024000)
基于XML的异构数据集成研究
王智军
(赤峰学院 计算机科学与技术系,内蒙古 赤峰 024000)
在企事业单位内部,由于部门间相对独立,构建系统时缺乏统一的规划和标准,所以造成了现有的应用系统是分散、异构、封闭的系统,相互之间不能共享信息,形成了一个个“信息孤岛”.本文首先对数据集成涉及的相关技术进行了研究.分析了目前流行的数据集成方法.按照不同的实现技术,将数据集成方法分为三类,即数据转换方法、数据聚合方法以及析取、转换和装载(Extract、Transform and Load,ETL)方法.然后,借鉴数据转换方法以及ETL方法的数据集成实现思想,结合目前中小企业数据集成的需求,提出基于Java和XML技术实现异构数据交换集成的通用解决方案.
数据集成;数据抽取;ETL;XML;Java
随着计算机技术,特别是Internet技术的迅猛发展,许多行业、单位或机构、部门内部都逐步实现了业务、信息的计算机化管理.在企业实施信息化进程中,由于企业内各部门的业务和功能归属不同,以及各企业信息化水平存在差异等原因,造成企业拥有许多相互隔离的、由不同核心技术构建的信息服务和管理系统.系统中数据的表示不同,数据交流效果极差,形成“信息孤岛”,从而使得企业内以及企业间的协作效率与效果很不理想.
企业应用集成EAI(EnterpriseApplicationIntegration)是解决这一问题的方法之一.
目前,企业数据集成有许多成型产品,按照不同的实现技术,集成方法可以分为三类:数据转换方法、数据仓库法和虚拟法.
目前,由于Xml良好的可靠性与互操作性,确保了网络中信息的传输与交互,加上Xml是基于WEB工作设计的,更适合于网络化环境,因此在电子商务时代B2B的商业模式得到广泛应用.Xml的可扩展性和自描述性更让其在数据描述和信息共享方面有着天然的优势.其标记可根据需求由企业自由定制,有极大的灵活性,可形成针对行业特点的不同标记集.Xml Schema支持许多复杂的数据类型,引入原型和命名空间概念,可随意扩充等,使得其不但编写简单,而且内容充实完整,可以给出Xml文档详细明确的定义.由S c h e m a定义约束的Xml文档,有效性更加严格,内容结构更加严谨.总之,Xml的结构性、可扩展性、自描述性、简单性等多种特性,使之表示数据的方式真正做到了独立于应用系统,不受任何特殊的软件或者硬件平台限制,并且这些数据能重复使用,简单易懂,成为交换各种结构化、半结构化、非结构化信息的良好方式.
此外,Xml本身突出表现数据结构和语义的特点,使其自然地与数据库结合在一起。一旦将Xml数据文件与数据库表关系关联起来,不但可以保留关系数据库表的结构信息,还可以利用Xml文档的优势在网络及数据库间交换数据,并解决不同数据库系统及数据关系、语义定义等数据表达方面的差异,如对应关系中字段内容不同、字段命名不同、数据类型不同等。这将较好地解决企业应用系统间信息资源集成的分布和异构等问题,使得数据交换的手段更为透明,并为EAI的发展提供了有效手段。
1 数据集成方法
按照不同的实现技术,集成方法可以分为三类.第一类是数据转换方法,这种方法实现的是企业数据的松散集成,通过转换工具实现应用系统之间的数据转换和交换,从而达到集成的目的,是一种较低层次的集成;第二类为数据聚合方法,在各种异构数据源的基础上,借助于中间件系统构造一个虚拟的全局数据模式,是一种集中式管理、分布式存储的较高层次的集成模式;第三类是析取、转换和装载(Extract、Transform and Load , ETL)方法,通过对异构数据源中的数据进行分析、转换和装载,建立一个数据仓库,是一种面向企业决策的数据集成方法.
1.1 数据转换方法
集成转换工具是脱离具体的DBMS和应用系统,通用性很强的独立软件,可以在任意两个常见的数据源之间进行数据转换.目前成熟的集成数据转换工具比较多,一般都采用向导驱动方式和GUI图形用户界面,可以进行Fox Pro、Acc ESS等桌面数据库与Oracle,SQL Server等大型数据库之间的数据存储、转换和调用.一般来说,这类工具都允许把一个数据库中的数据(一个或多个表中的部分或全部行)转入至另一个数据库的一个表中(这个表可以存在或不存在).其系统原型图如图1所示:
图1 数据转换系统原型图
1.2 数据聚合方法
数据聚合方法是将多个数据库集成为一个统一的数据库视图的方法.可以认为,数据聚合工具产生的数据聚合体是一种虚拟的企业数据库,它包括了多个实体的物理数据库.数据聚合方法利用中间件集成异构数据源,该方法并不需改变原始数据的存储和管理方式.其系统原型图图2所示:
图2 数据聚合系统原型图
1.3 ETL方法
ETL(extrac,transform and load)代表抽取、转换和装载过程.通过该过程,我们可以从多个数据源取得数据,将取出的数据进行转换及清洗,最后装载到另一个数据库,数据中心或者数据仓库,从而实现系统间数据集成,如图3所示.
图3 ETL系统原型图
该方法是一种实现异构数据源的集中式管理、集中式存储的方法.ETL工具从多个数据源中抽取数据,然后进行数据转换和加载,最终得到统一的、完备的数据仓库.原来分散的应用系统仍然独立运作,原来存在的异构数据源仍然为各自的应用系统提供数据服务.
2 基于XML的异构数据交换集成解决方案
为了实现不同应用系统中异构数据的交换集成,必须提供一种统一的数据转换模式.在进行数据提取时,以便将异构信息转换成统一的标准结构样式.然后在数据共享加载时再将标准化的信息转换成本地数据格式进行加载,进而完成异构信息的共享集成.
建立各Xml Schema模式与不同数据源信息间的映射关系,作为一个数据结构间的对应关系,我们称之为数据转换模式定义,它给出了应用系统数据到标准结构Xml数据文件的转换规则,如图4所示.
图4 数据抽取转换集成原型
其中,中间的Xml数据文件可以建立专用的管理平台来管理,也可以仅仅实现Xml文档的直接流转.
3 应用实现框架
网络环境应用中,以企业的数据交换区为核心,建立信息交换集成平台,作为数据传输通道.其中所有企业应用系统间需交流的信息以Xml数据文件的形式存储在数据交换区,可通过浏览器浏览,并提供上传与下载操作,进而实现不同应用系统间信息的发布、获取、协商及交换等功能,如图5所示.该平台上还包括用Xml Schema描述的各类交换数据的结构,一个交换数据项对应一个Schema,供所有应用下载,保证Xml数据文件所描述的数据拥有语义上的独立性和稳定性,并帮助操作者读懂Xml文档,即利用Xml Schema为异构数据源提供一种统一的数据转换结构的描述与约束.各企业或各企业应用系统间,就是通过该信息交换集成平台,将可通过数据抽取转换器生成标准结构X ml数据文件的各异构数据源联系起来,并实现数据的集成和共享.
图5 应用实现框架
4 方案特点
该集成方案的优点是简单易行,共同部分可以只是一些Xml文档,对于这些文档的管理只需存储提取就可以了,各系统仍然按照原来的方式运行,包括数据的存储提取,只是在需要进行信息交流时通过中间件技术把本地数据库数据转换成X ml数据文件或者进行相反的转换即可.
在系统整合过程中,程序设计语言可以采用跨平台性强的Java语言.Java语言作为一种网络编程语言,最大限度的利用了网络资源,并且可以跨平台、跨网络运行,其代码可重用和可扩展;通过多线程运行机制来支持多任务和并行处理.利用Java语言的优势,使系统的新增部分能够不受系统平台的限制,最大限度的消除“信息孤岛”,从而提高信息资源的利用率,让原有系统发挥全新的更大的应用价值.
5 针对企业的系统设计
集成交换系统分两部分来实现,一部分为MIS数据抽取端(服务端),主要用来实现数据的抽取,运行在MIS侧;另一部分为决策支持系统数据加载端(客户端),主要用来实现抽取所得数据的加载,运行在决策支持系统侧.HTTP是防火墙的友好协议,能够透过防火墙,所以集成交换系统两端以HTTP进行Xml数据文件的传输.
系统两端各分三层来实现,分别为数据源连接层、抽取转换层/转换加载层以及通信层.系统以Xml为公共数据的描述规范,涵盖了从数据抽取/加载、转换到通信的数据交换全过程.各层彼此联系,又相互独立,便于扩展、维护和升级.系统框架结构如图6所示.各层具体功能如下:
图6 系统框架结构图
5.1 数据源连接层
对于交换系统中使用的大量数据库,可以抽象成数据源的概念.数据源连接层主要完成异构数据源的封装和连接的权限验证.我们服务端利用JDBC或ODBC数据库访问接口实现.客户端运行在应用服务器环境中,通过连接池来实现数据源连接,通过JNDI来获取数据源.
5.2 抽取转换层/转换加载层
抽取转换层主要完成从异构数据源抽取数据(各企业MIS系统数据源异构),并将抽取得到的数据转换成标准的Xml文件.转换加载层负责将获取到的标准Xml文件进行解析,将数据转换成本地数据源数据格式并加载到决策支持系统数据库.
5.3 通信层
通信层完成Xml文件的传输.通信层应保证数据传输的有效、可靠和安全.
为了比较彻底高效地解决“信息孤岛”问题,将来我们可以尝试采用Xml数据库的解决方案.Xml作为统一的数据表示格式,能够帮助用户从分散的系统和应用中取出有效的信息整合成标准的Xml信息,然后提供给各种应用方便的访问.Xml数据库提供了一个高效的、可扩展的、灵活的Xml信息操作平台,而且能够方便地与其它系统和平台进行数据集成和共享,并且能够让信息真正在各个系统中顺畅流通,从而获得最大的商业价值.
〔1〕王宁.一种基于CORBA的异构数据源集成系统的设计[J],软件学报,1998(6):45-51.
〔2〕XML技术内幕[M].机械工业出版社,2002.289-321.
〔3〕彭晨阳.Java实用系统开发指南 [M].机械工业出版社,2005.336-482.
〔4〕梁利姣,吴国平.一种基于XML的异构数据源集成方案[J].现代计算机,224-232.
TP311
A
1673-260X(2010)03-0019-03