一种基于SOA的web异构数据集成方法研究
2016-03-22帅文明
帅文明
摘要:随着大数据时代的到来, 数据爆炸式增长,异构的Web数据更是与日俱增;“互联网+”时代接踵而至,Web数据的访问需求也将大幅度增加,对Web异构数据进行有效集成,让用户更加方便快捷地共享数据是当前人们关心的热点。本文针对Web异构数据集成问题, 利用中间件技术和面向服务的架构(Service-Oriented Architecture,SOA)设计思想,采用XML、Web服务等技术,给出了一个基于SOA的异构数据集成框架,介绍了该架构中的SOA数据集成中间件。该方法降低了异构数据集成系统的耦合度,提高了系统的可扩展性。
关键词:SOA;Web服务;中间件;异构数据集成
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)01-0018-03
随着互联网技术的普及和发展,企业应用需求的不断升级,许多企业或单位都实现了信息化,但是在信息化实施的进程中,因为企业内各个部门的业务和功能的异构,造成企业系统中的信息难以交流,形成“信息孤岛”[1]。随着“互联网+”时代的到来,Web上的数据快速增长,又引文Web数据的异质性和缺乏结构性,使得要利用这些数据变得更加困难[2]。要应对这些复杂的数据,就要对异构数据集成进行研究,通过解决数据在结构和语义上的冲突,实现数据库异构数据的集成和访问,得到高质量的信息服务。本文在深入研究SOA技术及数据集成方法的基础上,给出了一个基于SOA的web异构数据集成框架,通过利用标准化接口,将数据逻辑和业务逻辑分离,把数据的访问和处理包装成服务,方便外部使用者,实现信息共享。
数据异构主要表现在数据结构异构、语义异构、数据库异构、存储模式异构等方面,具有已存性、分布性、自治性等特点[5]。异构数据集成就是要将这些异构数据在逻辑上或者物理上进行有效的集中,使用户可以方便、高效地访问数据[3]。为了对web异构数据源中的异构数据进行有效集成,SOA作为解决该问题的方案应运而生[4]。
1 异构数据集成方法概述
近年来,针对如上述异构数据集成的特点,国内外对异构数据集成方法进行了研究,并提出了很多不同的解决方案,但常用的异构数据集成方法有三类:联邦数据库法(Federated Database Approach)、数据仓库法(The Warehousing Approach)和虚拟法(The Virtual Approach)[6]。
联邦数据库法是最简单的一种异构数据集成方法[7]。通过这种方法,数据源与数据源之间可以互相访问数据,但是需要较多的交互接口,大大降低了系统的可扩展性。因此,联邦数据库法只适用于小范围内的、数据量小的数据集成,而对于网络上快速增长的、半结构化的、不断动态变化的数据源,采用联邦数据库法显然不是理想的解决方案。
数据仓库法是指将异构数据源中的数据预先抽取出来,形成一个全局模式,并储存在数据仓库中,实现了数据的集中式管理,数据集成质量高,查询性能快;但是,这种方法必须定期更新,而且无法实时反映各个数据源的数据变化,这就可能导致某个时间段数据仓库的数据与异构数据源的数据不一致[8]。数据仓库法适用于中小规模但要求查询效率高、数据源数据较少更新的情形,显然也不适合时常更新的web数据。
虚拟法也叫中间件法,其核心是提供用户一个全局模式将各数据源集中起来,数据依然存储在各个相对独立的数据源中,一般由中介器(Mediator)和多个包装器(Wrapper)组成[9]。与数据仓库法不同,该方式不必重复存储大量数据,数据及时更新,能够实时地反映异构数据源中更新的数据,适用于大数据量,数据更新频繁的情况。
2 基于SOA的web异构数据集成体系结构
2.1 SOA简介
SOA的概念是在1996年由Gartner公司首次提出来的。SOA是一种粗粒度、松耦合服务架构,服务与服务之间通过简单、精确定义的接口进行通讯,不涉及底层编程,无需通讯模型。服务是SOA的核心概念,Web服务是实现SOA的理想解决方案。构建Web服务的基础有简单对象访问协议(SOAP)、Web服务描述语言(WSDL)及统一描述、发现和集成协议(UDDI)[10]。如图1所示,Web服务体系结构包括服务提供者、服务注册中心、服务请求者等三个角色。服务提供者发布服务并响应服务请求;服务注册中心对服务进行集中和分类,发布新的服务或者查找已经存在的服务;服务请求者在服务注册中心查找自己需要的服务,并调用服务。
图1 Web服务体系结构
2.2 基于SOA的web异构数据集成框架
由上述分析可知,中间件法较其他数据集成方法有可扩展性好、灵活度高、实时性好等优势,根据当前大数据时代背景,选择中间件法进行异构数据集成的分析和设计,SOA为异构数据集成提供了新的解决方案。在基于SOA的web异构数据集成中,异构的数据源均被封装在不同粒度的数据服务里面,粒度不一的数据服务可以按需任意组合,以满足更加复杂的信息访问请求。这样就可以采取数据服务的方式获取数据,其他组件在运行时更容易发现服务并进行绑定,从而对web异构数据集成和共享带来了便利。因此,本文引入XML、Web Service等关键技术,采用SOA思想设计异构数据集成中间件,给出一个基于SOA的异构数据集成框架。
图2给出的基于SOA的web异构数据集成框架由用户层、应用层、服务层、数据层四层组成。
图2 基于SOA的异构数据集成框架
1)用户层,终端用户可以通过浏览器等终端向Web服务器发送访问数据的请求,结果返回给用户。
2)应用层,是用户与SOA异构数据集成中间件进行交互的界面,为服务层提供丰富的服务和数据,提供统一的应用编程和查询接口,并负责与中间件的配置、管理等工作。用户可以根据需求透明地访问底层数据,屏蔽了数据的物理位置与数据的异构性。
3)服务层,该层是整个体系结构的核心,它通过SOA集成中间件完成对服务的注册、查询、绑定、组合、调用和发布,以及服务之间的信息交互,利用多粒度服务的SOA设计原则,用户可以根据被封装的服务定制不同的业务规则,从而满足不同的用户需求。后面将对SOA集成中间件进行分析和设计。
4)数据层,即数据源层,在最底层,是系统的数据来源,包括各类结构化、半结构化及非结构化数据源。
2.3 SOA集成中间件体系结构
为了提高集成系统的可扩展性和业务处理敏捷性的目的,采用SOA设计思想,将数据集成中间件分为两层:服务接口层和服务提供层。设计过程中,将数据集成中间件的业务逻辑封装成服务,服务之间的通讯采用SOAP协议,服务所产生的结果采用公共数据模型XML存储。这样做有利于提高服务的自治性和降低服务间的耦合度。SOA集成中间件体系结构如图3所示。
服务接口层:管理所有的服务,是存取服务的入口。主要由服务解析模块、数据汇总模块、服务注册库模块等模块组成。服务解析模块负责从应用层接收服务请求,通过业务建模将业务流程分解,识别相关的业务服务,定义消息类型,生成服务接口并绑定服务,然后通过注册中心将服务注册到服务库里。服务请求者可以在服务库里查找到该服务,实现不同服务间的相互组合。最后数据汇总模块将下层返回的数据进行汇总,以XML格式返回给Web服务。
图3 SOA集成中间件体系结构
服务提供层:将数据集成中间件的主要功能模块封装成具有统一标准的服务。包括存储管理模块、数据引擎模块、数据服务模块、安全管理模块、数据源适配器模块等,这些模块都由多个不同的服务组成。其中存储管理模块主要功能是读取和存储管理XML文档;数据引擎模块主要负责优化用户的查询请求,分解数据服务模块传人的操作命令,然后将分解后的操作存入操作队列,按照操作队列调用对应的数据源适配器执行最终的数据操作;数据服务模块主要提供数据添加、删除、修改、查询等服务;安全管理模块主要包括权限认证、加密解密等方面的内容,为数据集成提供安全保障;数据源适配器模块主要负责与底层数据源进行交互,执行增、删、改、查等操作,并将最终结果转化为统一的标准格式。
3 系统特点分析及关键技术
3.1 系统特点分析
本文提出四层架构的基于SOA的异构数据集成方法具有以下特点:
①采用了中间件的思想,数据更新及时,避免了数据重复存储。
②消息传递通过轻量级对象访问协议SOAP实现,并采用HTTP作为传输协议,使系统的跨平台集成成为可能。
③Web服务提供完全的封装性,实现系统功能的封装,而且不影响集成的安全稳定性。
④不同于传统的集成技术,该系统可是实现多入口集成,保证了集成方案的灵活性。
3.2 基于语义的查找技术
现有的Web服务查找技术本质上都基于关键字,在UDDI中查找对应的Web服务时,必需根据关键字先查找对应的实体,再查找服务,获取到Web服务的WSDL之后,用于在其中查找对应的操作时,也使用基于关键字的方法。但对于操作的名字、输入参数、输出参数等都无法了解其确切含义,因此这种查找方法的准确度和效率都较低。
如果在Web服务中引入语义,那么服务的查找可以按照基于语义的方式进行。语义Web是解决服务识别、查找与匹配的主要技术,如何运用对Web服务的语义描述来为一个工作流自动寻找和匹配Web服务是需要解决的问题。基于语义查找方法的准确度将远高于基于关键字的方法。
4 结束语
随着大数据时代的到来,“互联网+”的普及,数据共享问题已经成为阻碍信息化进程的重要因素,数据集成是解决数据共享问题的根本方法。文章给出了基于SOA的web异构数据集成方法总体框架,提出了一种web异构数据集成方案,对该方案特点和关键技术进行了分析。该方法较好地解决了因为数据异构而导致数据异构难以访问的问题,有效地实现了跨平台数据共享。另外,政府开放数据是当前研究的热点,如何对使这些数据有效共享是下一步需要解决的问题。
参考文献:
[1] 吴昊,邢桂芬.基于Web Service的企业数据集成的研究[J].计算机工程与设计,2005,26(10):2725-2727.
[2] 刘伟,孟小峰,孟卫一.Deep Web数据集成研究综述[J].计算机学报,2007,30(9):1475-1487.
[3] 郎炯,刘宴兵,熊仕勇.基于SOA软件架构的数据集成方法[J].计算机应用,2010,30(9):2370-2373.
[4] 凌晓东.SOA综述[J].计算机应用与软件,2007,24(10):122-124.
[5] 张庆福,万麟瑞.基于SOA的异构数据集成软件架构研究[J].计算机技术与发展,2011,21(5):17-21.
[6] 黄浩,欧阳柳波.基于Web Services的语义异构数据集成设计与实现[J].计算机工程与设计,2009,30(19):4406-4410.
[7] 李冠宇,刘军,张俊.分布式异构数据集成系统的研究与实现[J].计算机应用研究,2004,21(3):96-98.
[8] Riccardo Torlone.Two approaches to the integration of heterogeneous data warehouses[J],Journal of Distrib Parallel Databases,2008,(23):69-97.
[9] 袁景凌,徐丽丽,苗连超.基于XML的虚拟法异构数据集成方法研究[J].2009,26(1):172-174.
[10] 韩丁,沈建京,万芳,等.基于SOA的服务构件封装技术研究[J].计算机工程与设计,2009,30(7):1756-1759.