面向服务的数据集成方法
胡超1 周晓峰1 李超1
1河海大学计算机及信息工程学院 南京(210098)
摘 要:围绕异构环境中数据集成及主动服务方面的需求,在 Web Services 的基本框架下,
采用 WSDL、UDDI、SOAP、XML 等技术,设计基于主动服务的数据集成平台。通过构建全局本
体库解决语义异构问题,利用 WSDL 描述用户提供的服务,主动推送用户所需数据,为实现
基于主动服务的分布式异构数据集成提供了一套有效的解决方案。
关键词:数据集成、本体、Web Service、WSDL、主动服务
中图分类号:
1 引言
如何获取网络上自治、异构、分布的数据并加以综合利用,即数据集成,成为一个引起
广泛关注的研究领域。数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有
机地集成,实现分布的、异构的、自治的数据共享的主要技术,数据集成一般还应满足用户
数据访问的实时性和安全性等方面的要求。目前,数据集成[1]主要通过多数据库集成技术、
Mediated系统、数据仓库技术、移动Agents技术和基于Web Services的信息集成技术实现。
2 传统的数据集成方法
早在20世纪70年代中期就提出了多数据库的集成问题。多数据库集成系统支持用户使用
单一数据定义和操作语言,同时访问多个独立的数据源。代表性的多数据库系统有
Garlic,Tsmmis,IRO-DB、Yat和HP公司开发的Pesasus[2]。国内有东北大学数据库研究室开发
的PolyBase和SCOPE系统以及北京理工大学的UNHDB系统等。多数据库集成系统开始采用全局
模式的集成方法,后来Mcleod等人提出了联邦数据库系统的概念。联邦数据库系统是由参与
联邦的半自治的数据库系统组成,目的是实现数据库系统间部分数据的共享[3]。由于缺乏必
要的标准,联邦数据库系统只能在一定的限制条件下实现,难以实现各种数据源的灵活数据
集成。多数据库集成系统难以实现非数据库系统中的数据,可扩展性不强。对于网络上越来
越丰富的数据源,多数据库集成系统不是一个很好的解决方案。
Mediated系统通过提供所有异构数据源的虚拟视图来实现集成,数据源可以是数据库、
遗产系统、Web数据源等。用户针对mediated模式提交查询。Mediated系统中的数据源是自
治的,所以对数据源的访问通常是只读的,而联邦数据库系统支持读写访问[4]。Mediated系
统主要由中介器(Mediator)和针对每个数据源的包装器(Wrapper)组成[5][6]。随着中间件
技术的发展,Mediated系统基于中间件实现,这就是基于中间件的分布式集成系统[7]。基于
- 1 -
中间件的分布式集成系统用分布式的对象模型,诸如,微软的分布式组件对象模型
(DCOM)[8][9]、CORBA[10]或Sun的RMI[11]来构建信息集成系统[12]。这种方法有效的避免
了联邦数据库系统带来的开发代价大,代码难以重用的问题,利用网络计算环境可以有效的
实现复杂的大规模的信息集成。但是,DCOM,CORBA或RMI要求服务客户端与系统提供的服务
本身之间必须进行紧密耦合,即要求一个同类基本结构。
数据仓库技术需要建立一个存储数据的仓库,由ETL工具定期从数据源过滤数据,然后
装载到数据仓库,供用户查询[13]。数据仓库系统由ETL工具、集成器和数据仓库构成[14]。数
据仓库中主要存储历史数据和汇总数据,用于决策支持,通常不允许用户对数据仓库进行更
新。数据仓库技术查询处理性能高,但是数据可能不是最新的,实时性不好。
20 世纪 90 年代初,General Magic公司第一次提出了移动Agent的概念,即一个能在异构
环境中自主地从一台主机迁移到另一台主机,并可与其它Agents或资源交互的软件实体。移
动Agents系统一般包含移动Agents和移动Agent服务设施。移动Agent技术有很好的生存能力
和适应能力,使用方便,并且具有一定的智能。基于移动Agents技术数据集成系统最大的优
势是可以实现数据的定制[15],满足用户个性化的需要,这是上述多数据库集成技术、Mediated
系统和数据仓库技术难于实现的功能,但是系统实现复杂,安全性不好。
Web Services[16]就是可以通过web描述、发布、定位和调用的模块化应用。Web Services
功能强大,从简单的请求到复杂的业务过程。一旦Web Services被部署,其他的应用程序或
是Web Services就能够发现并且调用这个部署的服务。Web Services是松耦合的,而且能够
动态地定位其他在Internet上提供服务的组件,并且与它们交互。基于Web Services的信息
集成系统在Web Services的框架下,使用一组Web Services协议
(SOAP[17],WSDL[18],UDDI[19],XML[20][21]),构建信息集成系统[22][23]。为每个数据源创建一个Web
Services,然后使用WSDL向服务中心注册。当要构建一个新的集成应用时,集成端首先向注
册中心发送查找请求收集并选择合适的数据源,然后通过SOAP协议从这些数据源获取数据。
这种方法克服了上述方法的缺陷,具有完好封装,松散耦合,规范协议高度可集成能力等特
性。根据用户的定制需求,可为用户提供安全的、实时的数据推送服务。
Web service是一个接口,它描述了一组可以通过SOAP消息进行访问的操作。Web service
使用被称为服务描述的、格式正规的XML文档进行描述。服务描述涵盖了与服务进行交互所需
的所有细节,包括消息格式、传输协议和位置。所谓“接口”,就是说Web service隐藏了服务
的实现细节,使得它具有硬件、软件平台和编程语言的无关性。这也使得基于Web service的
应用天生具有松散耦合、基于组件和跨平台实现的特性。
Web service解决的问题:现有的Internet是一个多元化的计算环境,是由各种不同的实现
- 2 -
技术、平台和操作系统共同结合而成的,对于DCOM,CORBA等技术,由于它们自身的原因,难以
穿透防火墙进行相互之间集成。因此要使这些不同技术提供的服务组成一个网网相连的集成
环境,就必须要有一个统一的标准来集成彼此的服务。Web Service技术就是在这种情况下产
生的。它是数据集成的首选方法。
3 面向服务的体系结构
面向服务的体系结构(service-oriented architecture,SOA)来源于早期的基于构件的分
布式计算方式,Allen在《Component-Based Development for Enterprise Systems》一书中首次
提到了服务的概念,他认为服务是将构件描述成提供相关服务的物理黑盒封装的可执行代码
单元,它的服务只能通过一致的已发布的接口进行访问,构件必须能够连接到其他构件以构
成一个更大的构件[24]。在OMG和IONA的推动下,目前SOA已成为了一个大家所广泛认可的规
范。
面向服务的体系结构是一个组件模型,它将应用程序的不同功能单元(称为服务)通过
这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该
独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务
可以以一种统一和通用的方式进行交互[24]。
面向服务的体系结构主要由服务提供者、服务使用者和服务注册中心组成。如图
服务提供者是一个可通过网络寻址的实体,它接受和执行来自使用者的请求。它将自己
的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。服务使用
者是一个应用程序、一个软件模块或需要一个服务的另一个服务。它发起对注册中心中的服
务的查询,通过传输绑定服务,并且执行服务功能。服务使用者根据接口契约来执行服务。
Service
Broker
Service
Requestor
Service
Provider
Service
Find Publish
WSDL,UDDI
WSDL,UDDI
Service Bind
Service
WSDL,UDDI Description
图 SOA 三层体系结构
- 3 -
服务注册中心是服务发现的支持者。它包含一个可用服务的存储库,并允许感兴趣的服务使
用者查找服务提供者接口。
SOA 本身是如何将软件组织在一起的抽象概念,并没有确切地定义服务具体如何交互,
而仅仅定义了服务如何相互理解以及如何交互。虽然 Web Services 并不是实现 SOA 的惟一
方式,但目前 Web Services 是实现 SOA 的最好方式。
4 面向服务的数据集成框架
. 总体框架
应用服务平台在逻辑上分成三个部分,分别是服务提供者、服务使用者和平台管理者,
分别对应于 SOA 体系结构中的服务提供者、服务请求者和服务注册。总体架构如图 所示:
服务提供者通过服务描述功能把传统的应用系统功能模块封装成服务,并在领域本体
库的范畴内,描述软件构件的构件接口信息和行为信息,并利用服务发布功能把服务发布到
UDDI 注册中心;服务使用者利用工作流定义对应于具体业务应用系统的工作流程,并定义
对应于每一流程结点的功能需求,利用应用生成功能自动生成业务应用系统;服务管理者利
用领域问题空间定义功能维护领域本体库,利用服务访问管理功能负责维护 UDDI 注册中心
和工作流数据,并通过安全访问控制提供的接口,对服务提供者和服务使用者的服务发布和
服务调用进行控制。
服务访问管理 工作流定义
服务提供者 服务使用者 平台管理者
UDDI 注册中心
工作流数据
系统生成服务发布 服务描述
构件库
功能服务构件
领域本体库
领域问题空间定义
图 应用集成平台框架
平台功能
应用服务平台主要由六个功能组成,分别是服务描述、服务发布、工作流定义、系统生
- 4 -
成、领域问题空间定义和服务访问管理,分别供服务提供者、服务使用者和平台管理者使用。
服务描述功能:是服务构件的拥有者生成服务构件描述信息的工具。该功能主要包括三
个子功能,即服务构件接口描述、服务构件行为描述和服务封装。服务构件接口描述与 web
services 的描述类似,用于描述服务构件接口的语法信息,服务构件的拥有者在特定的领
域本体库的范畴内描述 所要求的所有接口信息;服务构件行为描述用于描述服务构件的
内部行为,同样,服务构件拥有者在特定的领域本体库的范畴内描述 所要求的所有内部
行为信息;最后,根据前面定义的接口描述信息,把服务构件封装成符合 web service 规范
的服务构件。服务描述功能所生成的服务构件描述信息和服务存放在本地,通过服务平台提
供共享。
服务发布功能:提供服务拥有者在 UDDI 注册中心上发布由自己生成的服务构件,服务
拥有者根据 UDDI 注册中心的要求,填写该服务相关的黄页、绿页和白页信息,根据 UDDI
规范,白页是该服务构件所属企业的基本信息,包括企业的名称、地址、联系方式和企业标
识等;黄页主要是基于标准分类法的行业类别;绿页是该服务构件的技术信息,主要是一些
指向文件或 URL 的指针,指向该服务构件及其描述信息所在的文件。服务发布的目的是使得
其他用户可以通过 UDDI 注册中心查找到该服务。服务发布功能在目前提供的所有支持 web
services 的系统中都已实现,如 IBM 的 WebSphere,BEA 公司的 Weblogic,开源代码 Jboss
等。
工作流定义功能:提供用户定义业务应用系统的工作流程。一般认为,为有效地实现软
件复用,必须把软件的功能逻辑、表现逻辑和过程控制逻辑相分离,工作流定义功能是与具
体业务应用系统相一致的过程控制逻辑。首先,工作流定义功能定义业务应用系统的工作流
程;然后针工作流中的每一个功能,依据领域本体库的规范,定义该功能的需求,该需求与
的查询条件一致。工作流定义功能也可以对已定义的工作流、功能需求进行维护,甚至
可复用已有的工作流定义生成新的业务应用系统的工作流程。工作流定义所生成的文档存放
在服务平台的工作流数据库中。
系统生成功能:供用户根据已生成的工作流数据和 UDDI 注册中心包含的注册信息,生
成可运行的业务应用系统。首先,从工作流数据库中读取该业务应用系统对应的工作流数据;
其次针对该工作流数据中每一个流程所描述的功能信息,选择满足条件的服务构件;最后,
在每一个流程和相应的服务构件间进行绑定。其中关键的步骤是选择满足条件的服务构件,
也是本文研究的重点。
领域问题空间定义功能:提供服务平台的管理人员在领域工程师的指导下,定义特定领
域的领域问题空间,并负责对领域问题空间进行维护,管理对领域问题空间的访问服务。
- 5 -
服务访问管理功能:是保证应用服务平台正常运行的必要功能,服务访问管理可以对平
台运行进行监视、对不正常行为进行干预、对服务访问进行控制、对平台内的资源进行管理,
如 UDDI 注册中心、工作流数据等。
平台内其它组成部分
服务平台除上述六个功能外,还有其它的一些组成部件,主要包括功能服务构件、UDDI
注册中心、工作流数据和领域本体库等。
功能服务构件是应用服务平台的核心,也是实现信息资源复用的基本单位,用于实现业
务应用系统的功能逻辑。功能服务构件是一个符合 SOA 的软件单位,有软件开发人员开发,
存放在该功能服务构件的拥有者处,通过应用服务平台供所有具有相应权限的用户使用,所
有,这些功能服务构件是分布的。
UDDI 注册中心是一个逻辑上的构件库,其并不真正存放功能服务构件,而是存放可以
找到这些功能服务构件的地址信息,目前,这些地址信息一般是 URL 信息。所有可以共享的
功能服务构件都必须通过服务发布功能在 UDDI 注册中心注册,也就是在逻辑上的构件库中
进行登记,所有的功能服务构件查找和调用,也是首先从 UDDI 注册中心来获取功能服务构
件的地址信息,然后,查找或调用实际的功能服务构件。在领域应用中,UDDI 注册中心是
一种比较成熟的功能服务构件管理机制。
工作流数据用于存放工作流数据,工作流数据也可以被复用。目前,有多种定义工作流的方
法,所产生的工作流数据格式也不尽相同。工作流数据的定义和复用是应用服务平台另一个
核心问题,但本文对此不作深入研究。
领域本体库:用于存放定义的领域问题空间。领域问题空间可以用多种技术描述,考虑
到目前技术的发展趋势,以及与 SOA 的集成,本文用领域本体库来描述领域问题空间。
5 主要功能设计和实现
5.1 本体库的建立
领域问题空间是关于领域的本体,本体最早是一个哲学上的概念, 即对世界上客观存在
物的系统地描述。最著名并被引用得最为广泛的定义由Gruber 提出,本体是概念模型的明确
的规范说明[25]。本体的具体表示需要用描述语言来实现。对于Web上的应用程序而言,需要
通用的标准语言来表示本体,以避免在各种描述语言之间的转换。由于XML已被认为是Web
上数据表示的标准语言,因此,一些研究人员开发了基于XML语法的Web本体描述语言。这些
语言包括RDF (S)、OIL、DAML+OIL、OWL等,其中OWL是目前最新、描述能力最强的本题描述
语言,所以,本文用OWL来描述领域问题空间。
全面分析水利领域空间问题,把水利领域空间分为四类:分别是功能类型类(FTspec)、
- 6 -
变量类型类(VTspec)、功能空间类(Fspec)和变量空间类(Vspec)。在 Protégé2000
下构造本体结构图如图 所示:
图 构造本体结构图
部分 owl 描述代码如下图所示:
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty>
<owl:TransitiveProperty rdf:about="#Is_part_of"/>
</owl:onProperty>
<owl:allValuesFrom>
<owl:Class rdf:about="#WR_inspectMS"/>
</owl:allValuesFrom>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
<owl:Class rdf:about="#WR_inspectMS">
<rdfs:comment xml:lang="en"></rdfs: comment>
……
5.2 服务描述
WSDL(Web Services Description Language)是 XML 格式的,把网络服务描述为一系
列端点,这些端点的操作是基于消息包的,而不包含基于命令或过程的信息。操作和消息被
抽象地描述,然后绑定到具体的网络协议和消息格式去定义一个端点。相关的具体端点被结
- 7 -
合进抽象的端点(服务)。它由七个元素组成:type、message、porttype、opration、bind、
port、service。
本文采用 axis 下的 java2wsdl 对服务进行描述。下图是部分描述查询数据库的部分
WSDL 描述代码:
<wsdl:message name="fetcchdataRequest" />
- <wsdl:message name="fetcchdataResponse">
<wsdl:part name="fetcchdataReturn" type="impl:ArrayOf_xsd_anyType" />
</wsdl:message>
- <wsdl:portType name="fectchdata">
- <wsdl:operation name="fetcchdata">
<wsdl:input message="impl:fetcchdataRequest" name="fetcchdataRequest" />
<wsdl:output message="impl:fetcchdataResponse" name="fetcchdataResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="fectchdataSoapBinding" type="impl:fectchdata">
<wsdlsoap:binding style="rpc" transport="
/>
- <wsdl:operation name="fetcchdata">
……
5.3 数据访问服务构件
数据访问服务构件是本平台的一个重要内容。通过调用服务生成组件选择可供共享的数
据源、数据文件(数据库、文件、XML 等)、数据字段,并选择对应的元数据来生成数据访
问服务构件。如数据来自多个数据源或多个表等,应定义这些数据之间的关联。当数据结构
发生变化时,能够及时的调整相应的数据访问服务构件。
调用服务发布组件向 UDDI 注册中心上发布由自己生成的数据访问服务构件,包括数据
类型(数据源、数据文件(数据库、文件、XML 等)、数据字段)、服务名称、服务描述等。
对每一个合法用户分配该服务构件的访问权限。
5.4 数据订阅/推送的主动服务
所谓主动服务,从用户的角度讲, 主动服务就是在用户不发出指令的情况下把信息数据
放到自己的系统中。和主动服务系统密切相关的技术是“推”(PUSH) 技术。推是相对于传
统的 Client/Server 结构而讲的, 是由服务器把信息主动推给客户。服务器是主动的, 信
息传输的发起者是服务器, 而不是用户的请求。
基于主动服务的异构数据集成平台的主动服务部分,在 Web 服务模型的基础上引入了一
个中间代理机构,它由四个特殊的 SB(Service Broker)组成,如图 所示。
- 8 -
1) 请求分析 SA 负责接受用户访问服务构件发送过来的请求,分析用户的需求描述,并
根据分析结果向其他 SA 分配任务,
2)信息搜索 SA 主要负责信息的搜索和处理。接受由请求分析 SA 发送过来的命令,分
析查询的复杂度等,调用服务访问功能模块,搜索满足查询条件的结果。
3)信息反馈 SA 当数据资源拥有者发布新的资源信息的时候,及时的通知其所授权的
用户。同时接受服务定制模块发送的所需访问的数据、表示形式、访问频率等信息,一旦发
布信息,通过终端适配 SB 将信息推送给数据访问服务构件。同时监听信息搜索 SB 发送过来
的信息,一旦由于网络故障,导致查询失败,则定期的把查询结果推送给用户访问服务构件。
4)终端适配 SA 对查询结果进行调整,满足用户的个性化需求,并发送到数据访问服
务构件。
6 特点
现有的数据集成平台很少能实现主动服务,基于 Mobile Agents 的数据集成平台能实现
主动服务,但安全性差且实现复杂。面向服务的数据集成平台,在现有的数据集成平台的集
成上结合 web services 技术,设计出高效安全的主动服务机制,实现数据的订阅/推送主动
服务,为在网络环境下方便地发布、订阅信息提供技术支持,以满足应用个性化的需求。
7 结论
基于主动服务的数据集成平台,在充分了解主动服务研究最新成果的基础上,重点研究
在 Web Services 框架下如何建立数据服务平台,实现数据订阅/推送的主动服务,为在网络
环境下方便地发布、订阅信息提供应用平台和技术支持,以满足领域应用的特殊需求。
目前,从理论角度来讲,相关的分布式技术、Web Services 技术和软件构件技术已趋成
熟,但如何构建基于主动服务的数据集成平台尚无统一的理论参考。基于主动服务的数据集
成平台,从 Web Services 方面为领域信息订阅/推送提供有效的解决途径。
- 9 -
参考文献
[1] Sunopsis,The Future of Data Integration Technologies,A META Group White Paper ,February
2002.
[2] ,,.,An overview of Pegasus, RIDE-INS’93,-277.
[3] and ,Federated Database Systems for Managing Distributed,
Heterogeneous and Autonomous Databases,ACM Computing Surveys,22(3):183-236,1990.
[4] ,,,and ,Federated Information Systems:Concepts,
Terminology and Architectures,Technical Report 99-9,Berlin Technical University,1999.
[5] Zachary ,Data Integration Overview,CIS 650-Data Sharing and the Web,University of
Pennsylvania,January 13,2003.
[6] Tore Risch,Vanja Josifovski,Distributed Data Integration by Object-Oriented Mediator
Servers,Concurrency and Computation:Pratice and Experience,Volume 13,Issue
11,933-953,2001.
[7] ,,, Roth,,,Transforming
Heterogeneous Data with Database Middleware:Beyond Integration,IEEE Data Engineering
Bulletin,1999.
[8] W Rubin,M Brain,Understanding DCOM,Prentice Hall Series on Microsoft Technologies
Archive,PTR Prentice-Hall,1999.
[9] D Thompson,D Watkins,Comparisons between CORBA and DCOM:Architectures for
Distributed Computing,Proceeding of the Technology of Object-Oriented
Languages,278-283,1997.
[10] Douglas ,Fred Kuhns,An Overview of the Real-time CORBA Specification,IEEE
Computer,June 2000.
[11] W Emmerich,N Kaveh,Component Technologies: Java Beans ,COM,CORBA,RMI,EJB and
the CORBA Component Model,Proceedings of 24rd International Conference on Software
Engineering,691-692,2002
[12] 孟小峰,Web Data Integration,YOCSEF 长沙论坛,
[13] Diego Calvanese,Giuseppe De Giacomo,Maurizio Lenzerini,Daniele Nardi,Riccardo
Rosati,Riccardo Rosati Workpackage,Int Information Systems,2001.
[14] J Widom,Research Problems in Data Warehousing,Proceedings of the Fourth International
Conference on Information and Knowledge Management,25-30,November 1995.
[15] David Kotz,Robert ,Mobile Agents and the Future of the Internet,ACM Operating
Systems Review 33(3),August 1999,-13.
[16] ,,The Web Service Modeling Framework WSNF,Electronic Commerce
Research and Applications,2002.
[17] SOAP Specifications,
[18] Web Services Definition Language,
[19] UDDI Specifications, Specifications .html
[20] XML,
[21] E Bertino,E Ferrari,XML and Data Integration,IEEE Internet Computing,75-76,2001.
[22] Catharina Riedemann, Christian Timm, Service for Data Integration,Data Science Journal,
Volume 2,26 February 2003.
- 10 -
[23] Data Integration and Web Services ,
/data/story/0,10801,70043,
[24]
[25]邓志鸿,唐世谓,张铭,杨冬青,陈捷. Ontology 研究综述[J],北京大学学报(自然科学
版),第 38 卷,第 5 期,2002 年 9 月。
An Service-Based Approach of Data Integration
Hu Chao1 Zhou Xiao-feng1 Li Chao1
1College of Computer and Information Engineering Hohai University,Nanjing 210098 China
Abstract: to satisfy the requirement of data integration and active service in heterogeneous
environments, we use WSDL、UDDI、SOAP、XML and some techniques to design a data
integration platform based on the Web Services framework. By constructing global ontology base
to solve the semantic heterogeneous problems and using the WSDL to describe the services of
user, actively pushing the data required from user, we suggest a solution to implement
distributional heterogeneous data integration based on active service.
Keywords: Data Integration、Ontology、web service、WSDL、Active Service
作者简介:
胡 超(1981-),男,江苏徐州,硕士研究生,从事软件复用及数据集成研究
周晓峰(1965-),男,江苏无锡,副教授,从事软件构件、分布式计算、信息资源集成
李 超(1979-),男,湖北恩施,硕士研究生,从事软件复用、数据融合。
- 11 -