数据仓库在SOA架构下的数据集成的研究
冉崇善 王马川 网络
 随着IT技术的发展与办公电子信息化的推进,信息系统建设已经成为更多的企业和集体的必然需要。SOA架构即将形成新的信息系统架构风暴,但是在企业与DW之间还没有很好的集成,为此首先了解一下SOA及DW的概念。

1 SOA(Service-Oriented Architecture)

SOA(面向服务的体系结构)是一种以服务为组件的软件架构模式,将业务作为链接服务或可重复业务任务进行集成,可在需要时通过网络访问这些服务和任务。这个网络可以存在于一个地方,也可以分散于各地且采用不同的技术,通过对来自各地的服务进行组合,可让客户端在本地实现功能。这些服务是自包含的,具有定义良好的接口,允许这些服务的用户(客户机或使用者)了解如何与其进行交互。SOA以其“松散耦合”的应用程序组件为开发带来了方便:在此类组件中,代码不一定绑定到某个特定的数据库。将服务组合为各种需要的应用程序,通过约定好的“服务契约”来进行服务调用,如图1所示。SOA架构后的系统大幅度提高了代码重用率,在增加功能的同时减少了工作量。

 

图1 SOA架构交互模型

2 数据仓库(Data Warehouse,DW)

数据仓库是一个面向主题、集成、时变、非易失的数据集合,是决策支持系统和联机分析应用数据源的结构化数据环境一。根据数据仓库所管理的数据类型和它们所解决的企业问题范围,一般可将数据仓库分为下列3种类型:操作型数据库(ODS)、数据仓库(Dw)和数据集市(DM)。数据仓库具备以下4个关键特征:面向主题(Subject Oriented)的数据集合;集成(Integrated)的数据集合;时变(Time Vari—ant)的数据集合;相对稳定(Nonvolatile)的数据集合。数据仓库的一般体系结构如图2所示。

 

图2 数据仓库一般体系结构

3 数据仓库与SOA结合的企业架构

SOA架构之所以可以高效,不仅因为其服务的调用,组件复用和代码复用更给系统开发带来了便捷。本架构中将企业的所有数据独立出来,基于数据架构,建设数据集成平台;将企业的所有应用组件分离出来,基于服务总线,建设应用集成平台。企业的业务基础平台由数据集成平台和应用集成平台共同组成,应用集成平台由企业服务总线(ESB)和公共的业务组件组成。ESB将不同的组件互相衔接起来,在两个或更多的组件或系统之间实现无缝链接集成,使整个信息系统就如同一个整体一样。通过统一开发或者封装已有的组件和系统建设公共服务组件,形成企业共享的公用服务平台,避免了重复开发、重复购买、标准不一致等问题,其中公共服务组件包括了工作流组件、业务组件、服务组件、统一认证组件、GIS组件、BI组件、通用报表组件等。

4 数据集成方案

数据集成以SOA为基础架构,如图3所示,应用Web service技术来实现。实时数据集成系统包括多个分布的异构子系统、一个实时数据捕获业务、UDDI注册中心和其它web service。将每个异构的子系统都进行Web service的包装,屏蔽了异构源系统的内部细节,并向外提供它的服务接口,能响应数据捕获Web service的请求并提供服务。UDDI注册中心在ntranet上为Web service提供注册服务,客户可通过UDDI注册中心查找可用的web service,当数据捕获服务检测到数据变更时,可以在UDDI注册中心处查找与相应子系统对应的Web service来处理系统中的数据变更,并对变更的数据进行包装,传递给数据转换Web service。实时数据捕获服务的功能是通过监控数据库日志的方式检测各个源数据库端的数据变化,并根据变化的源数据库类型选择相应的Web service对其变更的数据进行处理,由数据转换Web service处理后将所包装的包含变更数据信息的消息传递给实时数据缓存,各个Web service间通过SOAP/http(Simple ObjectAccess Protocol)协议交换XML文档数据。

 

图3 基于Webservice的数据集成方案

5 设计数据集成平台

如果企业有多个数据库和应用,则需要考虑不同业务系统间的相互影响,例如:一个业务系统的性能问题会影响到其它系统,业务的新增、变更都会对其它系统产生一定的影响,争抢已有系统的I/O、CPU资源等,因此一个数据库是逻辑上一个基础库,可以物理上分开部署,包括采用数据库分区和数据库集群等技术。应用可以通过集群的方式解决性能问题,应用集群运行所有的业务组件,组件之间通过数据共享或者应用Web服务调用的方式实现互联。如果是遗留系统或者是产品化的系统,则通过主数据管理、SOA集成以及数据仓库的ETL等实现集成。数据集成平台如图4所示。

 

图4 SOA的DW架构

6 数据集成存储层安排

将数据存储层的数据分为3个层次:私有数据层、共享数据层和分析数据层,可以保证业务系统的性能,同时实现数据的共享、数据分析。

6.1分析数据层-(Analyzed data layer)

分析数据层的数据集主要用于支撑企业的管理和决策需要,是典型的分析型数据环境。它从数据仓库中提取数据并整合管理决策所需要的数据集,通过数据仓库的建设,对现有各类分布数据源进行数据集中,经过进一步对数据的清洗、过滤、转换后加载至数据仓库中,为数据的集中存储管理和分析利用提供数据支撑环境。

6.2共享数据层(Sharing data layer)

共享数据层包含业务共享数据、主数据、系统数据、流程数据和元数据,其中业务共享数据主要包括基于主题的数据模型,是交易类的数据,特点是数据变化快、数据量大;主数据是基础数据,数据变化慢、数据量小,但是查询量大;系统数据主要包含用户数据、功能数据、用户权限数据等,和门户系统结合;流程数据是跨系统的流程数据,是未来工作流处理、流程监控和审批平台的公共流程数据。共享数据层的功能是整合所有企业内外数据源,基于企业完整的数据架构进行建设,是所有已有系统和业务组件共享的数据库,共享层对于新旧系统中的数据整合起到了内外数据统一接口的作用。业务共享数据库采集了企业各系统的业务数据,即审计监控源系统的数据质量,同时按照企业统一的主题域数据模型对数据进行整合转换,又为其它业务应用系统提供跨域与跨空间的数据共享。由业务共享数据库统一向各业务系统提供数据共享服务,同时业务共享数据库也可以作为新的系统开发的业务数据库。对于目前已经存在的系统,在升级改造时将现在的通过ETL抽取的方式改为由原系统直接集成的方式,在业务共享数据库存放数据。业务共享数据库也作为DW理论上的唯一数据源,为DW提供高质量的数据,DW中的挖掘和分析结果也要回写到业务共享数据库中。

6.3 私有数据层(Private data layer)

私有数据层数据集主要用于支撑企业的运营,是典型的操作型数据环境。由一组业务专用数据库组成,包括资产管理、销售、财务、人力资源等已有系统的数据库,其主要职能在于支撑企业日常的经营和管理活动的运营需要。私有层数据的特殊性在于其他的系统或者业务组件除了通过web服务调用之外不能直接访问。

7 结束语

SOA即将成为目前信息系统架构的主流思想,本文基于软件重用的思想描述了数据仓库在软件架构中需要构建数据集成平台的概念,并对数据平台的功能和数据存储做了说明,通过分层的数据管理,建立企业统一的数据集成平台可为未来更好使用数据和系统服务夯实基础。

CIO之家 www.ciozj.com 公众号:imciow
关联的文档
也许您喜欢