2024年5月6日发(作者:)

一种基于SOA的动态数据集成服务框架研

问题的提出

数据集成是企业信息系统的核心部分之一,它作为一个统一的数据平台为系统的其

它部分提供数据支撑服务。许多企业拥有或将拥有多种业务系统,而每种业务系统都有自己

的数据存储库,每个业务系统的数据从整体上来说一般是不完整的、不一致的。传统的解决

方案为整合数据,它往往需要形成集中库,难以灵活适应底层数据源的变化。传统的解决方

案要求直接从数据存储库中获取数据,并且只能从数据存储库中获取数据,但数据存储库往

往不被允许直接访问,而且数据存储库中的数据常常是原生数据,它需要经过业务逻辑的处

理才能成为有价值的数据,直接使用数据存储库中的原生数据是无意义的。因此,数据集成

问题的关键是如何方便地得到需要的数据,如何进行正确的数据整合。

本文提出一种实时动态数据集成的服务框架,这个框架的数据集成是动态的,不需

要建立集中库,数据集成是实时进行的;数据集成的数据源不局限于数据存储库,可以是一

个应用、一个组件、一个服务,甚至可以将数据集成后的结果作为新的数据源。

SOA技术介绍

SOA即面向服务架构,可以看作是一种软件系统架构。它主要是为了解决在Internet

环境下业务集成的需要,以松耦合和统一接口定义的方式将具有特定功能的组件作为服务提

供者连接在一起完成特定的业务处理。SOA具有三大基本特征:

■ SOA架构中提供服务的功能实体具有完全独立自主的能力,这样不需要关心功

能实体的实现方式和运行机制;

■ SOA架构中以低频率对大量数据进行访问,也就是在信息交换时希望一次性尽

可能多地交换大量的数据;

■ SOA架构采用基于文本而非二进制的消息传递方式,消息本身是不包含任何处

理逻辑和数据类型的,同样不需要关心消息接受者的细节。

XML和Web Services标准的成熟和应用的普及为广泛的实现SOA架构提供了基

础。XML是针对包含结构化信息的文档而设计的一种标记语言。采用这种描述方法,可以

在保持原有数据的意义和结构的同时在应用之间进行数据交换,进而可以保持不同系统之间

数据交换的灵活性。Web Services是基于最广为接受的、开放的技术标准(如Http、SMTP、

XML、SOAP、WSDL和UDDI等),支持服务接口描述和服务处理的分离、服务描述的集

中化存储和发布、服务的自动查找和动态绑定以及服务的组合,成为新一代面向服务的应用

系统的构建和应用系统集成的基础设施。

Web Services可以定义为通过SOAP协议,在网络上提供服务,使用WSDL来描

述这种服务,并通过UDDI注册服务以便使用者能找到服务。

SOAP:这是Web Services的通讯协议,用XML格式来定义消息,即SOAP消息,

包含在一对SOAP中的、结构正确的XML段。目前常基于HTTP协议来传输XML数据。

WSDL:Web服务说明语言。WSDL文件也是一个XML文档,Web Service的细节

描述都包含在其中。如参数类型、函数名称、返回类型、绑定协议等。调用者可以通过查看

WSDL文件来确定Web Service的接口函数。

UDDI:这是Web服务的注册中心。Web Service提供者将其提供的服务注册到UDDI

注册中心,调用者就可以到这个已知的UDDI注册中心查询到所需要的Web服务。

Web Services提供者实现服务的接口函数和服务的描述,并将其发布给调用者或注

册到服务注册中心。服务调用者通过查询本地或服务注册中心的服务描述,选择所需要的服

务进行绑定以调用Web Service的接口函数。服务的提供者以XML文档的形式将服务结果

返还给服务调用者,完成了信息的交互。图1 是Web Services的体系结构。

[align=center]

图1 Web Services体系结构[/align]

基于SOA的数据集成

数据集成的本质是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集

中,从而为用户提供全面的数据共享。在数据集成领域已经有了很多成熟的框架。目前,通

常采用数据仓库和基于中间层的方法来构造数据集成服务。

中间层模式通过统一的全局数据模型来访问异构的数据库、遗留系统、Web资源

等。中间层位于各种数据源和应用程序之间,向下对各数据源起协调作用,向上为访问集成

数据的应用提供统一数据模式和数据访问的通用接口。各数据源的应用仍然完成他们的任

务,中间层则主要集中为各种数据源提供一个高层次检索服务。中间层提供一个统一的数据

逻辑视图来隐藏底层的数据细节,使得用户可以把集成数据源看为一个单一的整体。本文提

出的基于SOA的动态数据集成服务框架就属于中间层模式。

在基于SOA的数据集成中,XML提供一种规范化的数据结构以协助整合系统之间

不同的数据结构,并以关联视图的方式展现被集成的数据。以“同一种语言交流”不再是必须

的,Web Services将作为一种规范的通讯方式允许某一部分动态地发现其它部分的能力和需

求。因此集成是动态的,可以随时根据需要组织数据的集成方式,得到不同的集成视图;集

成也是实时的,可以方便地获取最新的数据。

基于SOA的数据集成将传统数据集成解决方案中,考虑不同系统中数据是如何交

换的转变为怎样展现系统的功能,这样数据将不再是以点对点的方式获取,而是可以自由的

在网络上得到的一种服务。系统不是在底层协议的基础上进行交互,而是在一个抽象的接口

层面上进行数据交换。系统仅仅将它们的功能以服务的形式展现出来,其它的系统能容易地

发现这个服务并在运行时或设计时绑定它。被集成的服务可以是任意的应用、系统和数据源,

而不用考虑它们的特殊要求。