关键词:SOA; 服务数据对象; 异构数据模型
0引言
随着计算机技术发展和应用的日益广泛,企业积累了大量以不同形式存储的电子数据,这些数据主要以关系型数据库、Excel文件和XML文件等格式存储,构成了企业的信息数据资源。对于这些根据当时企业发展需要建立起来的分散和孤立的数据,如何充分利用好这些信息资源,不仅是企业内部数据资源整合和发展的需要,也是企业之间数据交换的需要。
面向服务架构SOA是当前解决异构系统整合和应用系统集成问题的理想方案。它可以利用现有资源,实现跨平台的整合,增加程序功能部件的重复利用,减少开发成本,加快新应用的部署,降低实施风险,促进流程的不断优化,充分高效的整合现有资源,帮助企业顺利实施信息集成。本文在对SOA体系架构的相关理论及其技术进行研究的基础之上,依据SOA建模策略,利用服务数据对象(SDO)架构,提出并建立了一种新的异构服务数据模型,旨在为信息访问提供一个统一的数据应用框架,实现对企业内各异构数据源的统一、灵活和高效的访问。
1相关技术介绍
1.1SOA的概念
面向服务的体系结构(SOA)是一个组件模型,它将应用程序中的不同功能单元称为服务,并通过对这些服务之间定义良好的接口而将其联系起来。如图1所示:
图1SOA参考模型架构图
图1中服务请求者和服务提供者是SOA实现过程中两种关键角色。其中,服务提供者指的是通过发送请求消息并处理响应消息来提供服务的应用程序;服务请求者指的是通过发送请求消息调用服务的应用程序。一些服务提供者同时也是服务请求者。服务代理作为服务提供者和服务请求者之间的中介,是一个服务和数据描述的存储库。其中,服务提供者可以通过服务代理发布它们的服务,服务请求者可以通过服务代理发现或查找可用的服务。服务绑定调用指的是在检索完服务描述之后,服务请求者继续根据服务描述中的信息来调用服务。
1.2SDO架构
SDO具有一个可组合的架构。它提供了一组核心组件和服务,然后使用SDO支持的工具和框架进行扩展。核心SDO规范提供了适用于各种类型的数据源的基本API。
图2为在J2EE框架下建立的SDO技术架构图:
图2SDO技术架构图
在SDO中,客户应用程序并不直接地连接数据源。它访问一个叫做数据访问服务的中介并接收响应中的数据图。DAS是为特定数据源种类处理技术细节的服务。它为客户端将数据转换成SDO。客户端应用程序与数据图进行交互来获得数据和改变数据。为了将更新应用于原始的数据源,应用程序将更新过的图发送回DAS,而DAS又与数据源交互。通常,运行时提供DAS的实现,而应用程序开发工具提供对数据图的支持。
2异构服务数据模型的研究及设计
2.1数据模型研究
建立一个数据模型的原则,简言之就是:根据实际情况,反映业务需要。所以,在数据模型的具体技术实现过程中,要考虑的两个关键问题:一是数据的访问;二是数据存储的持久化。数据模型建立的主要目的就是实现数据访问及数据传递,同时如何高效地存储数据也是数据模型的重要组成部分,只有做好了这两点,才能建立一个良好的数据模型。目前,现有数据模型的设计模式及实现技术至少有以下几种方式:业务逻辑与数据访问耦合模式;主动域对象模式;0RM模式。
2.2异构服务数据模型设计
在软件系统的开发过程中,可以采用以上三种模式来进行数据模型的设计。然而,由于目前企业对业务流程提出了新的要求,即随需而变。原有的数据模型设计模式不能很好地满足软件开发需要。因此,在分析比较了上述三种数据模型设计模式的基础上,本文提出一种新的设计模式——自主数据模式。
该模式以数据为中心,从物理数据库获取的数据将按照某种预定义的结构存放在一个虚拟数据库中,数据一旦从物理数据库中取出,就具有了自主性,不受原物理数据库结构束缚。系统将对虚拟数据库中用一种统一的数据视图形式表示的数据进行操作,该数据的任何操作与后台数据源无关。此外,这些数据还可以与XML格式文档进行方便的互换。在本文中,从数据库取得的数据将转换为服务数据对象中的相应数据形式,系统应用程序在执行过程中将调用该格式数据执行操作。
根据自主数据模式,本文设计了一种新的服务数据模型(Service Data Model,SDM),即面向服务的数据模型。SDM模型将面向服务的思想与数据模型相结合,以建立统一数据模型为中心,在SOA架构中抽象出一个服务数据层,用来解决SOA的数据操作请求。
在SOA的构建过程中包含很多环节。如:业务流程的划分管理,服务组合,服务表示等。而本文研究的内容只是其中的一部分,即如何实现业务逻辑在SOA体系架构中与最底层——数据层的分离,这也与SOA的实施宗旨——松散耦合相对应。通过SDM模型,无需熟悉特定于技术的API,就能访问和利用数据。
本文采用基于层次的方式对SDM模型进行建模,主要思想是将数据操作过程中的各层分离。通过数据映射模块,将系统数据的构造与操作映射为对各异构数据库的操作,通过应用系统再对数据进行更新与修改。在建模过程中,最底层的数据源作为一个层次,由于各数据源具有异构性,所以需对这些不同的数据源向上抽象出一个统一的接口,以便应用程序方便地访问、转化和更新存储在多个异构数据源中的数据。最后再通过应用程序调用所需数据或执行相关操作。
3结束语
本论文在对SOA体系架构的相关理论及其技术进行研究的基础之上,依据SOA建模策略,利用SDO及DAS,实现数据模型中各层的开发;并通过使用服务数据对象和数据访问服务,屏蔽了异构数据库间的数据访问细节,从而隔离了数据层与业务层。旨在为信息访问提供一个统一的数据应用框架,实现对企业内各异构数据源的统一、灵活和高效的访问。
参考文献:
[1] Thomas Erl,王满红,陈荣华译.SOA概念、技术与设计.北京:机械工业出版社,2006.
[2] 李洪奇,武装等.基于SOA的企业应用集成[J].微计算机信息,2010,1(3):53-55.
[3] Johnson,James L,李天柱,肖艳芹,杨天柱等译.数据库:模型、语言与设计.电子工业出版社,2004.
[4] Apache.Data Access Service.http://incubator.apache.org /tuscany/RDB_DAS_ white_ paper_v-0.2.pdf.2006.