基于ESB的异构数据整合策略
2011-05-04乔杨
乔 杨
(郑州轻工业学院图书馆,河南 郑州 450002)
1 引言
计算机和网络技术的飞速发展加快了传统参考咨询向虚拟参考咨询服务模式的变革。虚拟参考咨询服务(Virtual Reference Services,VRS)充分利用网络和数字资源的优势,使用户能够快捷、方便和低成本地获得图书馆的优质服务[1-2],构建虚拟参考咨询体系成为目前各图书馆提高服务水平的必然选择。
郑州轻工业学院图书馆建于1978年,虚拟参考咨询体系的构建尚处于初级阶段,先后已建立《艺术系优秀学生作品数据库》、《民俗文化研究专题数字图书数据库》、《烟草专题数字图书数据库》、《非纸质资源数据库》、《轻院教师论文全文数据库》、《轻院硕士论文数据库》等16个专题数据库。笔者从对传统数据整合方案对比和郑州轻工业学院馆藏数据资源结构研究入手,设计了基于ESB(Enterprise Service Bus)的数据资源整合策略,给出了数据整合的主要技术和方法,以期对各类异构数据库的数据整合应用提供参考和借鉴。
2 数据资源整合
2.1 数据整合技术
数据整合指将某一范围内离散的、多元的、异构的、分布的信息,通过逻辑的或物理的方式,组织为一个整体,使之有利于管理、利用和服务[3]。目前主要的数据整合技术有:
①以联合数据库系统(FDS)为主的多数据库系统数据整合,该方法在已存在的局部数据库(Local Database System,LDS)之上为用户提供统一的存取数据环境,由一组独立的LDS组成,实现数据库系统间部分数据的共享[4]。
②以数据仓库(Data Warehouse,DW)为主的整合方案。通过对相关数据库的链接,抽取数据记录,复制需要的字段,将异构或同构数据源相关数据复制到特定数据源上达到整合目的,该方案具有访问效率高的特点,但需要重复存储数据,造成数据冗余和实时更新性差等问题[5]。
③中间件(Middleware)[6]是一种独立的系统软件或服务程序,分布式应用软件借此在不同的技术之间共享资源,处于C/S的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或独立系统的软件。相连接的系统通过中间件系统交换信息,关键途径是信息传递方式。由于中间件技术可以方便地对系统进行扩展,是目前实现数据资源整合的主流方式。
2.2 ESB技术
ESB架构给出了一种便利的中间件数据整合解决方案,结合了中间件与XML、Web服务等技术,包含一系列的功能服务,实现了通信转换,跨平台和通信安全的标准接口平台,能够实现和支持SOA(Service-oriented Architecture)的一组技术架构[7-8]。通过面向消息的中间件协议接口和Web Server标准,解决应用程序间实现技术的不同,达到不同应用服务器协同运行的目的,通过连接异构MOM服务接口、在传输层上通过使用SOAP来实现服务模块间的通信与协同操作,主要有数据格式转换、路由、信息扩展、服务监听、安全传输服务等功能,其架构如图1所示。
该架构消除了同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与调用。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了传输复杂数据的能力,并可以提供一系列的标准接口,如:
连接功能:消息路由、寻址模式、消息封装(SOAP)等;
整合服务:数据库接入、应用适配器选择、EAI中间件协议接口;
服务定义:服务接口定义(WSDL)、服务注册和版本支持。
3 基于ESB的数据整合策略
3.1 需求分析
郑州轻工业学院图书馆馆藏数据库资源的系统构成和采用的存储技术存在很大差异,在设计开发时并没有考虑到当前的数据集成需求,如:
①数据存储结构不同:数据库采用了顺序存储结构和链式存储结构等不同的存储结构;
②文件命名问题:文件名的大小写、编号等;
③其他如属性特征、命名习惯、度量单位等方面存在较大差别。
对原有异构数据库的整合,制定数据项的规范正则表达式,利用该正则表达式验证输入数据的完整性和合法性。经过数据映射、数据转换等工作,来规范数据的表达,保证数据的质量。
3.2 数据整合体系结构设计
整合体系结构设计采用基于ESB的架构,面向服务的理念(SOA),通过调用不同的功能服务来完成相应的功能模块,实现数据转换、整合、交换等功能,总体架构如图2所示。
系统架构从功能层次上分为数据访问层、服务管理层、数据处理层、数据存储层。数据访问层用于提取不同馆藏专题数据库资源;数据处理层实现数据格式转换和映射等工作,提供整合和交换传输接口;数据服务管理层处理基于SOA的服务调度、数据传送策略和传输安全控制功能。
实现ESB的服务包括服务监听、服务调用、服务注册、数据提取和转换、数据交换标准规范、数据安全SOAP引擎等服务。通过不同服务的组合和调用来完成系统功能,图3给出了数据整合的典型工作流程。
①首先服务监听获取数据整合请求,将请求信息传送到服务注册中心;
②服务注册中心在已经注册的服务模块查找所需服务,执行数据调用模块;
③服务调用与信息系统建立连接,执行数据抽取服务,完成数据获取;
④数据规范服务调用函数对抽取的数据进行规范检查,调用数据转换服务对抽取数据进行XML格式转换,转换为规定数据格式。转换后描述信息发送到服务注册中心,等待服务请求者调用;
⑤调度服务按服务需求反馈数据交换和整合信息。
3.3 基于XSLT的数据映射和转换模型
异构数据库数据映射和转换是数据整合的主要工作,转换后的统一数据格式可以被各系统理解(本设计统一采用XML文件格式),便于数据的共享和整合。当用户请求服务时,首先由数据抽取服务完成从异构数据源的数据抽取,然后转换,建立全局和局部的数据视图映射关系,返回标准数据给用户,图4给出了数据映射和转换模型。
数据映射和转换模型主要由3部分组成:XML数据服务接口(XML data service interface)、数据转换规则(data conversion service)、XSLT(Extensible Style sheet Language)数据转换处理(XSLT processor)。XML数据服务接口负责连接信息系统的源数据和转换服务,数据转换处理负责按照预先制定的XSLT映射规则(XSLTMapping Rules)对数据类型、字段名字和值域等进行相应的转换。
3.4 异构数据源抽取
数据源的抽取过程通过数据库的内建连接方法进行连接,使用SQL命令语句建立与远程数据库的连接,通过建表语句CREATE从源数据库抽取所需数据字段映射到本地空间,查找需要转换的字段,调用转换过程XSLT Processor进行格式转换,不同数据源数据的抽取和XML文件格式的转换,使用的接口和策略也不同,如关系型数据库是主要的数据来源,主流的关系型数据库本身提供了良好的XML接口,可以直接进行数据的提取。表1显示了不同的数据处理过程需要调用的服务组件情况。
表1 不同数据源对应的服务组件
例如,Oracle通过数据库的XML DB组件实现了XML的抽取操作,该组件是企业版和标准版的标准特性。Oracle数据库引入了一个新数据类型XML格式,它允许在SQL中访问数据库中的XML文档,同时允许XML开发人员在文档中使用XML标准,用户以使用XML查询语句,创建XML文档,提取XML标签、字段等,串联和聚合等操作[11-12]。除关系型数据库,还存在自定义和非主流等数据库系统的数据格式,这就需要开发相应转换过程完成XML文件格式的转换。
3.5 数据格式转换
按照数据转换和映射规则,将提取的异构数据源数据加以合并、拆分、转换、映射等处理,使得异构的数据格式得到统一。
XSLT技术提供一套规则,用于将一组元素描述的数据转换为另一组数据描述的XML文档,或者是将该数据转换为一种自定义的数据格式,包括内容结构转换和格式化输出(XSL-FO)。XSLT应用涉及到两个数据文档:包含源数据的文档和用来转换该文档的XSLT转换规则文档。将XML源数据输入,XSLT Processor按照用户配置的映射规则进行数据转换,将源数据转化为目标数据。在XML文档的转换过程中,具体需要考虑数据格式、数据类型、日期、值域等转换问题。
XSLT用模板将同样的格式应用于XML文档的重复元素,不同的功能模块完成不同的文档格式转换。采用预先定义的数据交换标准和格式来交换数据,xsl:template标记定义了用于进行转换的结点内容,其使用语法如下:(这里match值的内容是一个正则表达式,pattern表示为属性)
①数据类型格式转换
不同的存储环境有着不同的数据类型,但不论数据类型在各个环境中如何变化,其功能都满足用户数据处理的基本要求如数值型,包括整型、实型等。在XML中数据的类型可以用Schema来限定。下面以时间日期格式转换为例来说明利用XSLT进行转换的过程。如把“2010-05-01”转换成“01/05/2001”,即格式YYYY-MM-DD,利用XSLT将其转换成DD/MM/YYYY。这里模板“DateType”作为应用函数,参数Datetime作为程序调用的入口参数,调用方法如下:
②值域转换
值域转换是将一个字段的全部或部分取值映射到另一个字段的全部或部分取值。例如:某一数据库系统中,某项数据编号的取值分为5位数字,而整合后的数据库系统需要8位的数字和字符组合,这就需要将原有的5位数字值域映射到8位的数字加字符值域上去。
③其他
代码转换可以看成是一类特殊的值域转换。对于XML中的数据字段,必须使用统一的术语,不统一的必须转换成平台规范中定义的统一词汇,如shuming↔BookName的转换。
4 结语
ESB软件架构消除了不同应用系统间的技术差异,实现了不同数据库服务之间的通信与整合。采用统一的XML文件格式可为整合后的数据提供良好的共享和交换基础。在开源的ESB ServiceMix编码操作环境下采用该方案整合数据,保证了数据的有效性、完整性和一致性。方案的实施为郑州轻工业学院图书馆虚拟参考咨询体系的建设提供有效的后台数据支持,如何对校外数据库数据资源进行接入、交换和整合也是下步的研究重点。
[1] 初景利.图书馆数字参考咨询服务研究[M].北京:北京图书馆出版社,2004(6):19-20.
[2] 蔡红.虚拟参考咨询及其宣传推广模式探讨[J].情报探索,2009(8):30-32.
[3] 王永霞.基于SOA的交通信息整合系统研究[J].网络安全技术与应用,2010(4):70-72.
[4] Horsburgh JS,Tarboton DG,PiaseckiM,etal.An integrated system for publishing environmental observations data[J].Environmental Modelling&Software,2009(8):879-888.
[5] 潘卫明,郝平.基于SOA和工作流的数据仓库更新系统[J].计算机应用与软件,2010(2):206-208.
[6] Perumal T,Ram li A R,Leong C Y,et al.Middleware for heterogeneous subsystems interoperability in intelligent buildings[J].Automation in Construction,2010(2):160-168.
[7] Liu Y,Gorton I,Lee V K.The architecture of an event correlation service for adaptive middleware-based applications[J].Journal of Systems and Software,2008(12):2134-2145.
[8] 张启文,徐琪.基于SOA和ESB的供应链快速响应系统集成研究[J].计算机应用,2009(9):2523-2526.
[9] 彭树青,陈德运.一种基于ESB的异构系统数据集成方法[J].东北林业大学学报,2009(2):108-109.
[10] Foetsch D,Pulvermueller E.A conceptand implementation of higher-level XML transformation languages[J].Knowledge-Based Systems,2009(3):186-194.
[11] 周德军.用JSP实现XML文件到Oracle数据库的导入和导出[J].科技信息,2010(2):273-275.
[12] 兰小机,任金铜.对Oracle XML DB的XML存储技术的研究[J].大地测量与地球动力学,2009(6):139-143.