首页  ·  知识 ·  
面向服务体系架构(SOA)和数据仓库(DW)的思考
肖建国      编辑:dezai   图片来源:网络
随着 IT 技术的发展,SOA 和企业架构(Enterprise Architechture,EA)逐步融合,形成了新的架构理论,但是与 DW 之间还没有很好的

随着 IT 技术的发展,SOA 和企业架构(Enterprise Architechture,EA)逐步融合,形成了新的架构理论,但是与 DW 之间还没有很好的集成。下面首先来看看 EA、SOA 及 DW 概念。

企业架构的概念

企业架构(Enterprise Architecture,EA) 的概念产生于 1987 年,在 IBM 的一个内部刊物上发表的一篇文章”A Framework for Information Systems Architecture” by J.A. Zachman ( 扎克曼 ) 中提出。概念的提出是为了应对日益复杂的 IT 系统,以及高投资、低回报的问题。他认为使用一个逻辑的企业构造蓝图(即一个架构)来定义和控制企业系统及其组件的集成是非常有用的。为此,Zachman 开发了信息、流程、网络、人员、时间、基本原理等 6 个视角来分析企业,也提供了与这些视角相对应的 6 个模型,包括语义、概念、逻辑、物理、组件和功能等模型。随着 EA 的发展,产生了很多的流派,当前主要的 EA 架构包含:通用框架 Zachman、TOGAF(The Open Group Architecture Framework)、以及适用于政府和军方的美国联邦政府的标准架构 FEA、美国国防部的 DoDAF 等。这些模型主要分成两派,如今正在逐步的融合在一起。随着企业架构的不断进化,企业架构理论越来越与战略和业务相融合,逐步形成了企业战略、业务架构、 IT 战略、IT 架构等四个层次的 IT 规划方法论。IT 架构包含数据架构、应用架构、技术架构和 IT 治理等四个方面的内容,其中技术架构包含集成平台、公共服务平台、基础平台(软件和硬件)和安全平台等,如下图所示:

 

面向服务的体系架构

面向服务的架构(Service Oriented Architecture,SOA) 是一种架构 IT 系统的方法,它将应用和 IT 功能划分为单独的业务功能和模块,即所谓的服务。用户可以构建、部署和整合这些服务,且无需依赖应用程序及其技术平台,从而提高应用的灵活性。这种业务灵活性可使企业和机构加快发展速度,降低总体拥有成本,及时、准确地获取信息,同时有助于实现更多的资产重用。而建设 SOA 体系架构就需要建立一个一致的架构框架,在这种框架中,可以快速地进行开发、集成和重用应用系统。而对于原有的应用系统来说,可以采用合适的技术手段进行平滑的优化与过渡。

数据仓库

数据仓库(Data Warehouse,DW) 是一个面向主题、集成、时变、非易失的数据集合,是支持管理部门的决策过程(W . H . Inmon)。数据仓库具备以下四个关键特征:面向主题 (Subject Oriented) 的数据集合;集成 (Integrated) 的数据集合;时变 (Time Variant) 的数据集合;非易失 (Nonvolatile) 的数据集合。根据数据仓库所管理的数据类型和它们所解决的企业问题范围,一般可将数据仓库分为下列3种类型:操作型数据库(ODS)、数据仓库(DW)和数据集市(DM)。

操作型数据库(ODS) 既可以被用来针对工作数据做决策支持,又可用做将数据加载到数据仓库时的过渡区域。与 DW 相比较,ODS 有下列特点:ODS 是面向主题和面向综合的;ODS 是易变的;ODS 仅仅含有目前的、详细的数据,不含有累计的、历史性的数据。
数据仓库(DW) 为通用数据仓库,它既含有大量详细的数据,也含有大量累赘的或聚集的数据,这些数据具有不易改变性和面向历史性。此种数据仓库被用来进行涵盖多种企业领域上的战略或战术上的决策。
数据集市(DM) 是数据仓库的一种具体化,它可以包含轻度累计、历史的部门数据,适合特定企业中某个部门的需要。

主数据

主数据(Master Data,MD) 指系统间共享数据(例如,客户、供应商、账户和组织部门相关数据)。与记录业务活动,变动较大的交易数据相比,主数据(也称基准数据)变化缓慢,一般每年的变化在 20 %左右。在正规的关系数据模型中,交易记录(例如,订单)可通过关键字(例如,订单或发票编号和产品代码)调出主数据。根据主数据管理实施的复杂程度,参照 Jill Dyche, Evan Levy 的观点大体可以把主数据管理可以分为五个层次,其中 Level 3(通过集中的总线处理,类似于翻译器)可以实现企业内任意两个系统交换数据。Level 3 是将数据转换逻辑集中化和标准化,它支持主参照数据的分布式存在(即分布的主数据存储,集中而标准的主数据转换),Level 3 打破了各个独立应用的组织边界,使用各个系统都能接受的数据标准统一建立和维护主数据 (MDM ) 。而最高级别 Level 5 (企业数据集中),当主数据记录的详细资料被修改后,所有应用的相关数据元素都将被更新,本级别可以通过 SOA 的架构平台实现。

通过对以上几个概念的简单分析,可以发现,SOA 虽然解决了系统之间的数据实时交互的问题,但是数据的集中,大数据量的数据同步以及主数据管理等问题还没有解决,即使建立了 SOA 的应用架构,仍然需要进一步进行数据仓库的建设和主数据的管理等。于是有了建立统一的应用集成平台和数据(信息)集成平台的概念。?

把数据和服务作为企业的资产

通常,软件重用(Software Reuse)是利用事先建立好的软产品创建新软件系统的过程,早在 1968 年的 NATO 软件工程会议上就已经提出可复用库的思想。重用在形式上可以分为二进制、源代码、设计、分析等四个层面的重用,其中基于二进制代码的重用最为重要,从当前来看,基于二进制和源代码实现重用的方式主要有函数库(面向过程)、对象(面向对象)、服务(SOA)等方式。基于设计和分析实现重用的方式主要是通过模板进行定制,当前主要采用 MDA 的方式,由设计文档直接生产代码。

要实现基于二进制代码的重用,最重要的一个方法就是实现分离,通过分离,将共用的或者相关性不紧密的功能分离出来,如操作系统、数据库、应用中间件、公共组件等,都是在软件发展历史过程中逐步从一个完整的一体化的系统中分离出来的。这也符合社会分工的要求,每个企业有多个开发商,即使同一个开发商,由于需要多人的分工合作,这时分工不同部分之间的标准就显得尤为重要。因此,可以说软件的核心是重用,方法是分离,关键是标准。围绕这个思路,在本架构中将企业的所有数据独立出来,基于数据架构,建设数据集成平台;将企业的所有应用组件分离出来,基于服务总线,建设应用集成平台。(应用集成和数据集成的关系和分工还没有完全阐述清楚。)数据集成平台和应用集成平台共同组成企业的业务基础平台。未来的企业只有一个数据库,一个应用,所有的用户登陆一个系统可以完成所有的工作,系统的开发则可以基于一个业务基础平台,由多个厂商共同完成,形成一个企业的“云”,其中数据和 Web 服务是最核心的两个资产。

应用集成平台由企业服务总线(ESB)和公共的业务组件组成。ESB 将不同的组件互相衔接起来,在两个或更多的组件或系统之间实现无缝集成,使整个信息系统就像一个整体一样。通过统一购买、开发或者封装已有的组件和系统建设公共服务组件,形成企业共享的公用服务平台,避免重复开发、重复购买、标准不一致等问题。其中公共服务组件包括了门户组件、统一认证组件、工作流组件、 GPS 组件、GIS 组件、BI 组件、通用报表组件等。关于企业服务总线(ESB)和业务组件,相关的介绍很多,本文不做过多的描述,以下重点对数据存储层进行规划设计。

数据集成平台

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

 

数据存储层规划

 

为了保证业务系统的性能同时实现数据的共享、数据分析的需要,将数据存储层的数据分为三个层次:私有数据层、共享数据层和分析数据层。共享数据层主要的目的是为了数据共享,考虑到性能问题,应避免直接基于共享数据层进行业务操作。三个层次准确的命名应该是私有操作数据层、共享数据层、私有分析数据层〕

1、私有数据层:由一组业务专用数据库组成,这一层的数据集主要用于支撑企业的运营,是典型的操作型数据环境。包括经营、财务、人力资源、资产管理等已有系统的数据库,其主要职能在于支撑企业日常的经营和管理活动的运营需要。未来新的业务组件基于共享数据层进行开发,不在共享数据层的数据也在私有数据层,特别是新的业务组件自己内部处理过程中产生的数据。私有层的数据,其他的系统或者业务组件除了通过 web 服务调用之外不能直接访问。

 

2、共享数据层:该部分整合所有企业内外数据源,基于企业完整的数据架构进行建设,是所有已有系 统和业务组件共享的数据库。共享层的数据结构清晰,基于业务对象,易于理解,和 Web 服务一样,是企业的资产,私有数据层的数据通过实时或者准实时的方式同步到共享层或者基于联邦技术直接基于共享层进行开发。共享层基于主题建模的明细数据和部分汇总数据,是新的系统的业务数据库和数据计算、企业报表的数据源,是对外数据的统一接口。

共享数据层包含业务共享数据、主数据、系统数据、流程数据和元数据。其中业务共享数据主要包括基于主题的数据模型,是交易类的数据,特点是数据变化快,数据量大;主数据是基础数据,数据变化慢,数据量小,但是查询量大;系统数据主要包含用户数据、功能数据、用户权限数据等,和门户系统结合;流程数据是跨系统的流程数据,是未来工作流处理、流程监控,和审批平台的公共流程数据。

 

业务共享数据库定位为运营数据存储和业务支持,负责收集企业各系统中的数据,统一存储在业务共享数据库中,作为企业的共享数据。业务共享数据库采集了企业各系统的业务数据,对源系统的数据质量进行审计监控,同时按照企业统一的主题域数据模型对数据进行整合转换,并为其它业务应用系统提供跨域的数据共享。由业务共享数据库统一向各业务系统提供数据共享服务,同时业务共享数据库也可以作为新的系统开发的业务数据库。考虑到业务共享数据库是比较中立的数据,在基于业务共享数据库进行新的系统开发的时候,建议跟业务无关的数据单独建表,并和业务共享数据库的数据区分开,作为新系统自己的数据,存放在私有数据层。对于现有的系统,在升级改造的时候将现在的通过 ETL 抽取的方式改为由原系统直接集成的方式,将数据存放到业务共享数据库中。业务共享数据库也作为 DW 的理论上唯一数据源,为 DW 提供高质量的数据;DW 中的挖掘和分析结果也要回写到业务共享数据库中。

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

 

以上通过基于软件重用的思想,描述了需要构建数据集成平台的概念,并对数据平台的功能和数据存储做了说明,通过分层的数据管理,建立企业统一的数据集成平台。

本文作者:肖建国 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读