基于SOA的数据集成研究与应用

日期: 2009-09-28 来源:TechTarget中国 英文

  随着企业信息化的发展,企业需要对大量异构、分布、自治数据源进行集成。以SOA架构和Web Services技术为支撑,采用XML技术进行集成,实现了一个统一的数据平台,为系统的其他部分提供了数据支撑服务,并在实际项目中得到了应用。

  随着计算机技术和企业的发展,企业在过去的信息化进程中分别建立了各种不同的局部应用系统,这些系统的数据和功能都彼此孤立,这些数据受数据模型及存储方式的差异,具有异构性、分布性和自治性,难以实现资源的共享。因此,将这些数据进行有效的集成,使之作为—个统一的数据平台为系统的其他部分提供数据支撑服务,日益成为研究的热点。

  数据集成的本质是把各种不同的数据在逻辑上或者物理上进行有效的集中,从而为用户提供全面的数据共享。目前,通常采用联邦数据库、数据仓库和基于中间层的方法来构造数据集成服务。

  联邦数据库是早期人们采用的一种数据集成方案,联邦数据库系统由半自治的数据库系统构成,相互之间分享数据,联盟各数据源之间相互提供访问接口,用户对中央虚拟数据库的操作根据数据字典由映射模块映射为对各子系统的操作,通过通信接口将各子系统的结果返回,由数据组装模块组装至中央虚拟数据库,呈现给用户。联邦数据库在提供统一、透明的全局操作时,仍能保持各应用系统局部应用的高度自治,但这种方式在数据源的共享和互操作上有一定的局限性,并且难以保证全局的安全事务处理。

  数据仓库是把来自于几个数据源的数据副本都存储在单一的数据库中。在这种结构中,所有数据源中的数据都被抽取出来,合成一个全局模式,并储存在数据仓库中,这在用户看来与一般的数据库系统无异。但这种方式需要定期更新,并且无法实时反映各个数据源的数据变化。

  中间层模式通过统一的全局模型来访问各种异构数据源。中间层位于各种数据源和应用程序之间,向下对各数据源起协调作用,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口。各数据源的应用仍然完成他们的任务,中间层则集中为各种数据源提供一个高层次的检索服务。这种方案适应于数据源数目多、各局部数据源的自治性很高且局部数据经常变化的Web环境。

  基于SOA的数据集成支持对异构数据类型的访问,通过利用标准化接口,提供一个高度灵活的抽象层,把数据逻辑与业务逻辑分离,把数据访问和处理以服务的形式提供给外部使用者,从而增加了系统的灵活性和重用性,实现了应用和服务的松散耦合。

  Web Services是SOA最流行的一种实现方法,Web Services的实现中使用了一些标准技术,包括服务描述(UDDI、WSDL)、通讯协议(HTTP、SOAP)以及数据格式(XML)等,使开发者可以开发出平台独立、编程语言独立的web服务,从而充分利用现有的软硬件资源和人力资源。

  可扩展标记语言XML是用于描述数据和交换数据的一种标准方式,它定义了一种文件格式和数据的保存方法,使数据信息能在异构平台之间平稳无障碍地传递和共享。

  文章以SOA架构和Web Services技术为支撑,采用XML技术进行集成,提出了一种基于SOA的数据集成方法。

  1 基于SOA的数据集成框架

  1.1体系结构

  整个系统由3层构成。

  客户层终端用户通过浏览器向Web服务器发送数据访问请求,并将从Web服务器接收到的查询结果返回给用户。

  应用层从Web服务器接收服务请求,并将服务向能提供该服务的服务转换器转发,由服务注册库、服务解析和数据汇总三部分组成。

  数据服务层由各种异构数据源和服务转换器组成,把数据访问和处理以服务的形式提供给外部使用者。

  1.2系统工作流程

  当数据服务层添加新的服务时,首先需要通过服务发布模块将服务发布到服务注册库中。终端用户通过浏览器以XML文档的形式向Web服务器发送数据访问请求,Web服务器将接收到的服务请求交予服务解析模块进行解析,服务解析模块在服务注册库中对该服务进行检索,找到提供该服务的数据服务器,然后将服务请求向相应的数据服务器转发,由于数据的异构性,需要为每个数据服务器配置一个服务转换器,服务转换器将提交的服务转换成针对相应数据服务器的具体操作方法,进而从数据库中获取所需的数据,并将返回的数据转换成统一的XML格式的数据,然后提交给数据汇总模块。数据汇总模块对数据汇总,以XML格式返回给 Web服务器,然后将查询结果返回给终端用户。

  2 关键技术及实现方法

  2.1数据源转换为XML文档

  由于目前普遍采用关系数据库,本文首先解决关系数据库转换为XML文档的问题,本文采用JDBC对数据库进行访问,用Jdom解析和Java语言编写转换程序,对应不同类型的数据库,只需修改程序中数据库连接部分即可。首先查找出数据库中所有表的名称,将表的名称存入到ArrayList中,然后用 SELECT查询表中的所有字段及元数据,使用JDOM生成XML文档的关键代码:

  XMLOutputter outp 2new XMLOutputter(Format.getPrettyFormat())://格式化输出,产生缩进和换行

  Format format=outp.getFormat();format.setEneoding(“GB2312”)∥设置语言 format.setExpandEmptyElements(tme);//设置输出空元素格式 outp.setFormat(format);outp.output(XMLDocument,new FileOutputStream)databaseName+“。XML”))∥输出XML文档System.out.print(“XML文档生成完毕!”);

  2.2采用Web Service技术实现SoA体系结构

  Web Services是基于UDDl(Universal Description,Discovery and Integration)标准协议体系的,是目前实现SOA最流行的方法。Web Service由服务提供者、服务注册中心和服务请求者三个角色以及发布、发现和绑定三个操作组成。服务提供者定义Web Services的服务描述,并把它发布到服务请求者或服务注册中心,服务请求者使用发现操作来从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定并调用Web Services实现或同它交互。
  
  3 结束语

  文章基于SOA和Web Services及XML技术,提出了一种基于SOA的数据集成方案,并将其应用到实际项目的开发中,该方案解决了传统集成方法的紧耦合,添加数据源困难等问题,实现了跨平台的数据共享,降低了系统的耦合性,能很好的适应底层数据源的变动。随着对SOA框架和XML技术及Web Services技术的深入研究,将进一步完善此框架,并应用得更加广泛。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐