第三章 主数据管理的关键技术

  • 3.1 数据标准
    • 3.1.1 数据标准的分类
    • 3.1.2 物资类数据标准
      • 1.国际标准
      • 2.国内标准
    • 3.1.3 产品数据标准
    • 3.1.4 财务数据标准
  • 3.2 信息分类编码技术
      • 1.信息编码的概念与功能
    • 3.2.2 信息分类编码原则
      • 1.信息编码原则
    • 3.2.3 信息分类编码方法
  • 3.3 企业应用集成
    • 3.3.1 企业应用集成的概念
    • 3.3.2 企业应用集成的分类
      • 1.面向信息的集成
    • 3.3.2 企业应用集成的分类
      • 1.面向信息的集成
      • 2.面向过程的集成
      • 3.面向服务的集成
    • 3.3.3 企业应用集成的方法
      • 1.文件共享传输
      • 2.共享数据库
      • 3.RPC(Remote Procedure Call,远程过程调用)
      • 4.消息队列
    • 3.3.4 企业服务总线
  • 3.4 面向服务架构
    • 3.4.1 面向服务架构的概念
    • 3.4.3 服务导向的架构和Web服务协议
    • 3.4.4 基于面向服务架构的企业应用集成
  • 3.5 数据仓库
    • 3.5.1 数据仓库的定义及特征
      • (1)面向主题
      • (2)集成
      • (3)非易失性
    • 3.5.2 数据仓库的发展
    • 3.5.4 数据仓库的数据模型
      • (1)星型模型
      • (2)雪花模型

数据标准是主数据管理的核心,也是主数据质量的重要保障。数据标准的制定需要参照相关权威数据标准,例如国际标准、国家标准、行业标准等,同时采用合理的信息分类编码方法,以保证数据标准的科学性、适用性。

主数据管理与企业应用集成(EAI)、面向服务架构(SOA)是相互依存和相互促进的关系。

主数据管理系统从IT建设的角度而言都会是一个相对复杂的系统,它往往会和企业数据仓库/决策支持系统以及企业内的各个业务系统发生关系。

3.1 数据标准

3.1.1 数据标准的分类

信息化的本质是标准化问题,只有在主数据统一标准的前提下,才能实现企业应用集成、信息共享、业务协同发展等体系建设。高质量的主数据是业务流程高效执行以及企业业务正确决策的基础。主数据主要包括特征一致性、识别唯一性、长期有效性和交易稳定性等特征,这就要求主数据的分类和编码应遵循统一的数据标准。

《中华人民共和国标准化法》将中国标准分为国家标准、行业标准、地方标准、企业标准四级。

行业标准
由我国各主管部、委(局)批准发布,在该部门范围内统一使用的标准称为行业标准。例如,机械、电子、建筑、化工、冶金、经工、纺织、交通、能源、农业、林业、水利等,都制定有行业标准,并有特定的行业标准代号。

3.1.2 物资类数据标准

物资统一分类与标准编码是加快物流供应链信息化的重要基础,是电子商务系统、ERP系统及相关的系统间相互集成、信息共享的桥梁和纽带。它有着直接的经济效益,使得物资集中采购、采购价格监控、设备优化配置成为可能。
建立统一的物资分类与编码数据标准是企业采购、销售、质量管理等流程的基础。

1.国际标准

进行编码,即对物资的属性进行数字化处理,形成统一的标准。如用一个13位数定义国家物资编号,用一个5位数或字母组合定义标准物资名,用一个4位数定义标准数据元等。物资编目的最终结果是实现一种物资有一个唯一的编号和一串数字化的属性描述。

2.国内标准

固定资产是指使用期限在一年以上,单位价值在规定标准以上,并且在使用过程中基本保持原有物质形态的资产。该标准按照基本属性规定了固定资产的分类、代码及计量单位,适用于固定资产管理、清查、登记、统计等工作。
在具体的编码方法中,它采用了4层7位数字代码表示,第1位表示门类,第2、3位表示大类,第4、5位表示中类,第6、7位表示小类。

固定资产分类代码的第1位所表示的6个门类分别如下。
土地、房屋及建筑物。
通用设备。
专用设备。
文物和陈列品。
图书、档案。
家具、用具、装具及动植物。
值得一提的是,大类、中类和小类中的代码“99”为收容项,主要用于该项尚未列出的固定资产。
该标准为国民经济统一核算和国家经济信息系统提供了统一的全国工农业产品(商品、物资)分类编码体系,具体编码方法如下。

3.1.3 产品数据标准

国际标准属于推荐性标准。
2.中国产品分类标准
标准规定了全国各类产品的分类原则与方法、代码结构、编码方法、分类与代码,主要用于信息处理和信息交换。
可运输产品部分的分类编码体系为层次结构,由六层代码组成,用8位阿拉伯数字表示。

不可运输产品主要是指服务、资产等产品,这类产品相对于货物而言具有不可运输的特性,其中服务产品是不可运输产品中最主要的部分。
不可运输产品采用线分类法,采用层次码结构,共分五层,每层用一位阿拉伯数字表示。

3.1.4 财务数据标准

统一的财务类编码标准,不仅有助于加强财务集中管控力度,还可以提高财务报表的准确度和时效性。财务数据标准主要涉及会计科目、固定资产等。

会计科目是对会计对象的具体内容进行分类核算的标志或项目,是对资金周转按经济内容的性质进行的分类。
固定资产是指使用期限较长、单位价值较高,并且能在使用过程中保持原有实物形态的资产。
财务数据编码结构如图


会计科目是会计制度的重要组成部分,它是对会计要素的内容按照经济管理的要求进行具体分类核算和监督的项目,是编制会计凭证、设置账簿、编制财务报表的依据。按照核算的经济内容分,可以分为资产类科目、负债类科目、所有者权益科目、成本类科目和损益类科目。

3.2 信息分类编码技术

信息编码是为了方便信息的存储、检索和使用,在进行信息处理时赋予信息元素以代码的过程,即用不同的代码与各种信息中的基本单位组成部分建立一一对应的关系。信息编码必须标准化、系统化,设计合理的编码方式是关系信息管理系统生命力的重要因素。对信息进行编码的一个前提就是分类,即按照选定的属性区分分类对象,将具有某种共同属性的分类对象集合在一起。要编制代码,必须首先弄清信息分类的原则、基本方法、代码的功能、编码的基本原则、代码的种类以及编码方法等。

1.信息编码的概念与功能

编码是指将事物或概念赋予一定规律性的、易于人或机器识别和处理的符号、图形、颜色、缩简的文字的过程。它是人们统一认识、交换信息的一种手段。其目的在于为计算机中的数据与实际处理的信息之间建立联系,提高信息处理的效率。

当代码所表示的信息主体是信息对象或信息对象的特征时,代码所体现出来的作用是不同的:当代码与事物对象存在一对一的关系时,代码表示唯一一个事物对象,称为标识码。

当一个代码对应于多个事物对象时,可以认为代码对应于一个事物集合。这个事物集合并不是由若干个事物对象随机组合在一起,而是由具有相同或相似特征的事物组成的,即编码是针对事物特征的,被称为特征码。对特征进行编码又具体分为分类码、结构码、状态码和一般取值码。

分类码
代码所表示的集合是由一类事物组成的,代码对应于一个类目。我们把代表类目的代码或代表一类事物的代码称为分类码或分类特征码。
结构码
结构码用符号来表示事物对象之间的结构关系,表示一个事物对象或一类事务对象在结构中的位置。例如,表示产品装配关系的隶属编号,在工作分解结构中体现分解关系的项目编号等。
状态码
在对事物进行管理时,常常需要用编码的形式来记录事物所处的状态。例如,在管理零部件的技术文档时,对它所处的技术状态,如取消、预发放、审核、批准、发放等信息进行编码。
一般取值码
特征的取值往往限制在可枚举的范围内。有些取值不代表分类,也不说明结构关系,也不算是状态,完全是为了计算机表达事物的特征,方便处理信息所为。顺序码是最简单、最常用的代码,它把顺序的自然数或字母赋予了编码对象。

编码是人们统一认识、交换信息的一种手段。作为标识的“代码”是为参与信息传递的各方,为识别信息内容而使用的有限字符构成的标志。其主要作用包括:对信息主体进行描述,在信息传递时可以使对方通过代码了解信息主体所具有的特征;标识事物,在传递信息时可以使对方准确地确认信息主题;分类,作为区分编码对象特征的标志;排序,当按编码对象发现的时间、占用的空间或其他方面的顺序关系分别赋予代码时,该代码可以作为区别编码对象排序的标志;由于某种客观需要采用一些专用符号时,代码又可以提供一定的特定含义。

2.信息分类的概念和功能
信息分类就是依据信息内容的属性或特征,将信息按一定的原则和方法进行区分和归类,并建立起一定的分类系统和排列顺序,以便管理和使用信息。分类可以使分类对象有序化,按照工作目标的不同,信息分类可以实现以下功能:

3.2.2 信息分类编码原则

1.信息编码原则

遵循信息编码的基本原则是进行信息编码工作的最基本的要求,是确保信息编码科学和有效的重要手段。一般认为,信息编码需要遵循8个基本原则,即唯一性原则、正确性原则、分类性原则、扩展性原则、统一性原则、不可更改性原则、重用性原则和简单性原则

2.信息分类原则
在管理信息系统中,将海量的信息按照一定原则和方法进行分类时,必须建立一个科学合理的分类体系,该体系必须要做到稳定、确定、系统、可扩延、兼容以及综合使用,这就是信息分类的基本原则。

3.2.3 信息分类编码方法

信息分类与信息编码既是两项相辅相成的工作,又是两项相对独立的工作。例如,大型知识库将信息分类作为一种知识资源,支撑信息资源库的组织与构建,而信息资源库的信息编码完全按照与信息分类无关的规则或直接采用无含义的流水标识。
信息分类的基本方法有两种:线分类法与面分类法。

3.3 企业应用集成

企业应用集成(Enterprise Application Integration,EAI)是完成在组织内、外的各种异构系统,应用与数据源之间共享、交换信息和协作的途径、方法学、标准和技术。

3.3.1 企业应用集成的概念

企业应用集成所连接的应用包括各种电子商务系统、企业资源规划系统、客户关系管理系统、供应链管理系统、办公自动化系统、数据库系统和数据仓库等。

企业应用集成提供了业务流程,通过数据共享的方式连接软件包、定制和遗留应用。企业应用集成采用中间件技术作为杠杆来连接企业级应用,使异构应用系统之间能够相互“交流”。企业应用集成的真实价值在于对于未来业务的集成、维护和修改实现时间和成本的节约。如果能够比较正确地实施企业应用集成,可以大幅提升企业的核心竞争力。基于中间件的EAI从以下几个方面降低了应用软件集成的复杂程度。

企业应用集成主要分为:用户界面集成、流程集成、应用集成、数据集成四个层面。
用户界面集成,用户交互的集成。
流程集成,跨应用系统的业务流程的集成。
应用集成,多应用系统间的交互。
数据(信息)集成,保证多个系统中的信息保持一致。

由于EAI几乎不需要改变现有的遗留应用程序或封装式应用程序,而且很少需要扩展程序或定制接口,因此在开发新的应用程序时,EAI相当引人注意。EAI使用现有应用程序编程接口(API)和数据库。在没有API的特例中,EAI使用屏幕截取技术,通过应用程序的用户接口模仿普通用户,从而实现对应用程序的访问,屏幕截取是将显示在终端用户机器上、基于字符的屏幕的特定位置上的数据进行复制。

3.3.2 企业应用集成的分类

传统的企业应用集成的层次主要有数据级集成、业务逻辑级集成、功能级集成等。数据级集成属于面向信息的集成方式,该方式可能会导致损坏数据,打开数据库的安全缺口等问题。业务逻辑级集成属于面向过程的集成方式。该集成方式不仅暴露了应用程序的业务逻辑,而且由于业务逻辑的交叉,导致了各个集成系统之间的紧耦合,降低了应用系统的灵活性,增加了整个系统维护的难度。功能级集成属于面向服务的集成方式,该方式能够保证原有系统的数据安全性和逻辑安全性,还能实现各个系统之间的松耦合,方便系统流程的重组和优化。

1.面向信息的集成

此种集成模式聚焦于接口层次的应用和系统间的数据转化及传输,主要优势是成本较低。该集成模式将集成视为一种数据流系统,数据可以在文件、数据库以及其他信息库存间流动,可以在应用间通过API流动,也可以在通信中介间流动。因此,实现对数据库、应用程序以及相关服务的接口就成为面向信息集成模式的关键问题。

数据复制
数据复制的目的是为了保持数据在不同数据库间的一致性。数据复制的基本要求是必须能够提供一种数据转化和传输的基础结构,以屏蔽不同数据库间数据模型的差异。其基本原理是:在两个或多个数据库之间设置一个软件中介层,在一边,数据从源数据库中被抽取,而在另一边,数据被导入到目标数据库。
数据聚合
数据聚合是将多个数据库和数据库模型集成为一种统一的数据库视图的方法。也可以认为数据聚合体是一种虚拟的企业数据库,其中包括了多个实体的物理数据库。其基本原理是:在分布的数据库和应用之间放置一个中间件层,该层与每一个后台的数据库用自带的接口相连,并将分布的数据库映射为一种统一的虚拟数据库,而这种虚拟模型只在中间件中存在,就可以应用该虚拟数据库去访问需要的信息。同时,这种方法也可以通过将相关数据映射和导入实体数据库,进行数据库的更行。数据聚合的优点在于将多种数据类型表示为统一的数据模型,支持信息交换,能够通过一个定义良好的接口访问企业中任何相连接的数据库,也提供了一种利用统一接口解决面向数据的集成方法。

接口集成
接口集成方法利用应用接口实现对应用包和客户化应用的集成,是目前应用最广泛的集成方法。其基本原理是:通过提供用以连接应用包和客户自开发应用的适配器来实现集成,适配器通过其开放或私有接口将信息从应用中提取出来。其优势在于通过接口抽象的方法提供了集成不同类型应用的高效率,但是由于缺乏明晰的过程模型,也缺少面向服务的框架接口,使得该方法并不适用于那种需要复杂的过程自动化或动态服务集成的问题。

3.3.2 企业应用集成的分类

传统的企业应用集成的层次主要有数据级集成、业务逻辑级集成、功能级集成等。数据级集成属于面向信息的集成方式,该方式可能会导致损坏数据,打开数据库的安全缺口等问题。业务逻辑级集成属于面向过程的集成方式。该集成方式不仅暴露了应用程序的业务逻辑,而且由于业务逻辑的交叉,导致了各个集成系统之间的紧耦合,降低了应用系统的灵活性,增加了整个系统维护的难度。功能级集成属于面向服务的集成方式,该方式能够保证原有系统的数据安全性和逻辑安全性,还能实现各个系统之间的松耦合,方便系统流程的重组和优化。

1.面向信息的集成

此种集成模式聚焦于接口层次的应用和系统间的数据转化及传输,主要优势是成本较低。该集成模式将集成视为一种数据流系统,数据可以在文件、数据库以及其他信息库存间流动,可以在应用间通过API流动,也可以在通信中介间流动。因此,实现对数据库、应用程序以及相关服务的接口就成为面向信息集成模式的关键问题。

数据复制
数据复制的目的是为了保持数据在不同数据库间的一致性。数据复制的基本要求是必须能够提供一种数据转化和传输的基础结构,以屏蔽不同数据库间数据模型的差异。其基本原理是:在两个或多个数据库之间设置一个软件中介层,在一边,数据从源数据库中被抽取,而在另一边,数据被导入到目标数据库。
数据聚合
数据聚合是将多个数据库和数据库模型集成为一种统一的数据库视图的方法。也可以认为数据聚合体是一种虚拟的企业数据库,其中包括了多个实体的物理数据库。其基本原理是:在分布的数据库和应用之间放置一个中间件层,该层与每一个后台的数据库用自带的接口相连,并将分布的数据库映射为一种统一的虚拟数据库,而这种虚拟模型只在中间件中存在,就可以应用该虚拟数据库去访问需要的信息。同时,这种方法也可以通过将相关数据映射和导入实体数据库,进行数据库的更行。数据聚合的优点在于将多种数据类型表示为统一的数据模型,支持信息交换,能够通过一个定义良好的接口访问企业中任何相连接的数据库,也提供了一种利用统一接口解决面向数据的集成方法。

接口集成
接口集成方法利用应用接口实现对应用包和客户化应用的集成,是目前应用最广泛的集成方法。其基本原理是:通过提供用以连接应用包和客户自开发应用的适配器来实现集成,适配器通过其开放或私有接口将信息从应用中提取出来。其优势在于通过接口抽象的方法提供了集成不同类型应用的高效率,但是由于缺乏明晰的过程模型,也缺少面向服务的框架接口,使得该方法并不适用于那种需要复杂的过程自动化或动态服务集成的问题。

2.面向过程的集成

面向过程的集成方法是将一个抽象和集成的管理过程置于多个子过程之上,而这些子过程是由应用程序或者人工来执行的。面向过程的集成方法按照一定的顺序实现过程间的协调并实现数据在过程间的传输,其目标是通过实现企业相关业务过程的协调和协作实现业务活动的价值最大化。同时还可以通过自动化来处理以往由手工完成的业务过程,从而加速业务结果在过程中的传递。

3.面向服务的集成

面向服务的集成模型可以实现动态的应用集成和大范围的业务逻辑共享,这种目标是通过整合业务层服务来实现的,具体体现为一种对共享对象上“方法”的调用。

3.3.3 企业应用集成的方法

**应用耦合度:**这一点也和软件工程中的基本设计思想是契合的。即要求系统之间的依赖达到最小化,这样当一个系统发生变化时会对另外一个系统产生尽可能小的影响。也就是所谓的松耦合。
侵入性:当进行集成的时候,希望集成的系统和集成功能的代码变动都尽可能的小。
技术选择:不同的集成方案需要不同的软硬件,这些牵涉到开发和学习的成本。
数据格式:既然系统要集成,从本质上来说就相当于在两个系统间通信,那么相互通信的系统就要确定交换数据信息的格式来保证通信的正常进行。
数据时间线:当一个系统需要传递数据给另外一个系统时,它们传送的时间要尽可能少,这样可以提升系统整体运行的效率,减少延迟。
数据或功能共享:有的应用集成还考虑功能的集成共享。这种功能的共享带来的好处是使得一个系统提供的功能在另外一个系统看来就好像是调用本地的功能一样方便。一些典型的应用集成比如说RPC(远程方法调用)就符合这种特征。
远程通信:通常系统调用采用同步的方式。但是在一些远程通信的情况下,采用异步的方式也有它的优点,比如说带来系统效率的提升。不过这也使得系统设计的复杂度变大。
可靠性:要考虑到系统的容错能力。

应用系统集成的方法有很多,最常见的几种有文件传输、数据库共享、远程方法调用以及消息队列,它们在解决某些特定领域的问题时有自己的特长。

1.文件共享传输

文件共享传输的优势在于简单直观。

在这种场景下,一个应用产生包含需要提供信息的文件,然后再由另外一个应用通过访问文件获取信息。文件的格式。这是因为不同应用系统传递消息的具体样式不一致。一些常见的方法是传递XML或者JSON(14)格式的文本。当然,在一些UNIX系统里面也有通过纯TXT文本传递信息的情况。
在一些信息交换不是很频繁,对信息的及时性要求不太高的情况下,这种方式还是值得考虑的。也可以定时产生和使用文件,只要保证两者不产生冲突和它们的执行顺序正确,集成的效果还是可以达到的。另外,采用文件传输还有一个优点就是对于集成的系统来说它比较完美地屏蔽了集成的细节。每个系统只要关注符合标准格式的文件内容,具体实现和数据交换都不需要关心。

2.共享数据库

共享数据库也是比较常见的一种应用集成方式。在很多应用开发的场景下,数据库是相对独立地提供服务的一部分,所以与其他系统的对接也就比较容易。

与前面文件共享传输的方案比起来,这种方案有一个相对的优势,就是可以保证数据的一致性。,所有的数据都是统一存储在公共的数据库里。对于任何一个系统产生的数据或者变化,另外一个系统也可以马上看到。

3.RPC(Remote Procedure Call,远程过程调用)

Java的RMI就是一种典型的远程过程调用的方法

以Java RMI为例,当需要访问远程方法的时候,先要定义访问的接口,然后通过相关工具生成skeleton和stub,之后一端通过stub给另外一端发送消息。在应用A本地的代码中访问stub看起来还是和调用本地方法一样,这些细节都由stub给屏蔽了。

4.消息队列

和前面几种集成的方式相比,消息队列算是一种比较理想的解决方案。

所有应用之间,要通信的消息都通过消息队列来传输,由消息队列来保证数据传输的异步性、稳定性等。总的来说,这看起来有点像网络连接结构。所有数据通过一条可靠的链路进行通信。

3.3.4 企业服务总线

企业服务总线(Enterprise Service Bus,ESB)是企业应用集成实现的基础。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现不同服务之间的通信和整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。

3.4 面向服务架构

大型企业真正需要的是一个业务和体系结构,来保证不同的软件解决方案能够跨越技术上的非兼容性,并且将软件解决方案与业务级需求和业务问题相联系。面向服务架构在该背景下应运而生,这是一个崭新的实践和技术合理化的概念,包括流程驱动、自顶向下、自底向上和中间汇集等软件整合的方法。

3.4.1 面向服务架构的概念

SOA的基本原理是组件重用和灵活地使用这些组件来支持新功能或新流程。MDM提供通用组件(或服务)以确保数据维护和分发的一致性。
面向服务的体系架构中共有三种角色,分别是服务提供者、服务调用者和服务注册器
。其中服务提供者负责服务功能的具体实现,并通过注册服务操作将其提供的服务发布到服务注册器,当接收到服务调用者的服务请求时,执行其请求的服务。服务调用者则是服务执行的发起者,首先需要到服务注册器中查找符合条件的服务,然后根据服务信息进行服务绑定或者调用,以获得所需要的功能。服务注册器则用来为服务提供者提供注册服务、提供对服务的分类和查找功能,以便服务调用者发现服务。

SOA环境下,服务组件提供商在创建服务的时候,可能不一定知道请求究竟是何种形式的,而请求者也不需要关心实现服务所有的技术,这就是SOA所具备的最基本的灵活性和可重用性。
SOA的基本特征
(1)自治的功能实体
SOA非常强调架构中提供服务的功能实体的完全独立自主的能力。面向服务的自治原则要求单个服务在对其底层逻辑的控制方面尽可能是独立的和自包含的,这进一步通过消息级别的自治而实现。
SOA架构中非常强调实体自我管理和恢复能力。常见的用来进行自我恢复的技术,比如事务处理(Transaction),消息队列(Message Queue),冗余部署(Redundant Deployment)和集群系统(Cluster)在SOA中都起到至关重要的作用。

(2)基于开放标准
Web服务的大部分重要特征数据交换是由开放的标准控制的。将一个消息从一个Web服务送给另一个之后,它要通过一系列由全球标准化并公认的协议来传播。

(3)大数据量低频率访问
SOA系统推荐采用大数据量的方式一次性进行信息交换。
(4)基于文本的消息传递
由于互联网中大量异构系统的存在决定了SOA系统必须采用基于文本而非二进制的消息传递方式。采用基于文本的消息传递方式,数据处理端可以选择性地处理自己理解的那部分数据,而忽略其他的数据,从而得到非常理想的兼容性。

(5)支持厂商多样性

(6)鼓励内在互操作性
互操作性是对开放标准的使用以及厂商多样性环境的进一步利用和支持。从底层构建SOA应用时,具备内在互操作性的服务可以成为潜在的集成接入点。如果适当地标准化,会引领面向服务集成架构的解决方案自身达到内在的互操作水平。鼓励这一特征可显著减少实现未来的跨应用集成需求的代价。
(7)鼓励内在复用性
SOA建立了一个促进多级别复用的环境。SOA强调创建业务流程和自动化解决方案无关的服务,这将形成一种复用环境,其中复用作为对特定项目交付的服务副作用而自然实现,如图3.21所示。

(8)强调可扩展性
用服务描述表达封装功能时,SOA鼓励考虑超越即时的、点对点的通信。当以合适的接口粒度来分割服务时,就可以做到扩展服务所提供的功能范围而不打破既定接口。可扩展性是SOA整体始终倡导的一个特征。可以通过增加服务或融合其他面向服务的应用来扩展完整的解决方案。因为松散耦合鼓励所有服务间的最小依赖,所以能够以最小的影响完成逻辑扩展。
(9)实现抽象层
通过面向服务设计原则的应用而自然演变的一个特征就是抽象层。典型的SOA可以将服务作为不同资源和处理逻辑的单独访问点而引进抽象层。使用适当的设计,抽象可以面向业务和应用逻辑。例如,通过建立代表完整解决方案和技术平台的端点层,可以去除所有与环境相关联的专有细节。

(10)促进整个企业的松散耦合
构建松散耦合服务的技术架构的核心效益在于它所形成的服务逻辑的独立性,而在一个组织内部由于面向服务原则同时应用于业务建模和技术设计,因此也就放大了松散耦合的概念。通过实现标准化的抽象层,也可以获得企业的业务与应用技术领域间的松散耦合关系。由于每一端只需要知晓另一方,因此允许每个领域更独立地发展,从而形成了更适应与业务和技术相关的变化的环境,即组织敏捷性。

3.4.3 服务导向的架构和Web服务协议

Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。Web服务实际上是一组工具,可有多种不同的方法来调用。三种最普遍的手段是:远程过程调用(Remote Procedure Call,RPC),表述性状态转移(Representational State Transfer,REST)以及服务导向架构。

远程过程调用是指Web服务提供一个分布式函数或方法接口供用户调用。这是一种比较传统的方式。
第二种调用方式称为表述性状态转移,其Web服务类似于HTTP或其他类似协议,它们把接口限定在一组广为人知的标准动作中(比如HTTP的GET、PUT和DELETE)以供调用。
第三种调用方式——服务导向架构是目前业界比较关注的焦点。在服务导向架构中,通讯由消息驱动,而不再是某个方法。这种Web服务也被称作面向消息的服务。SOA式Web服务得到了大部分主要软件供应商以及业界专家的支持和肯定。作为与RPC方式的最大差别,SOA方式更加关注如何去连接服务而不是某个特定实现的细节。WSDL定义了联络服务的必要内容。

Web服务中的主要协议和服务方式
(1)JMS
Java消息服务(Java Message Service,JMS)
Java消息服务支持两种消息模型:Point-to-Point消息(P2P,即点对点)和发布订阅消息(Publish Subscribe messaging,简称Pub/Sub,即广播式)。在点对点的消息方式中,传输过程依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上,即一台计算机并不是通过服务器来和其他计算机连接,而是直接和其他计算机连接。广播式的消息方式中,信息消费者和生产者参与消息的传输。生产者“发布”事件,而消费者“订阅”感兴趣的事件并消费事件。生产者把消息把与特定主题关联起来,然后消息传递系统根据消费者所注册的感兴趣主题,把消息路由给消费者。
(2)HTTP
超文本传输协议(HyperText Transfer Protocal,HTTP)是互联网上应用最为广泛的一种网络协议,提供了一种发布和接收HTML页面的方法。该协议的主要工作原理是:由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如“HTTP/1.1 200 OK”,以及返回的内容,如请求的文件、错误消息或者其他信息。

(3)XML
可扩展标记语言(Extensible Markup Language)用于标记电子文件,使其成为具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
(4)SOAP
(5)WSDL
(6)UDDI

3.4.4 基于面向服务架构的企业应用集成

由于SOA的服务具有独立性、实现松耦合、跨平台、良好封装性和服务位置透明等特点,使得基于面向服务架构的企业应用集成方式不但能够保证原有系统的数据安全性和逻辑安全性,而且还能实现各个系统之间的松耦合,方便系统流程的重组和优化。
一个基于SOA的企业应用集成实例:

基于面向服务的架构进行企业应用集成主要包括以下几个步骤。
(1)提取各个应用系统中需要对外暴露的功能模块。这些功能模块通常都是一些能够清晰、完整地表现其业务价值的软件实体,该软件实体包含了它所能提供的所有服务。
(2)将这些功能模块表现为服务组件的形式。定义服务的描述信息、服务的接口,以及调用服务所需要的定位信息等。将软件实体的概念模型转换为实际的服务模型。
(3)将已实现的服务发布到服务注册器,供其他服务调用者进行查找和绑定。
(4)绑定和调用服务。将各个应用系统集成起来,实现企业应用在功能层面上的集成。

3.5 数据仓库

3.5.1 数据仓库的定义及特征

数据仓库是面向主题的、集成的、非易失的并且随时间变化的数据集合,用以支持经营管理中的决策制定过程。与传统的数据库相比,二者在许多方面都存在较大的差异。例如,数据仓库是一个环境和平台,提供用户用于决策支持的当前和历史数据,而数据库则只存放当前的业务数据;数据库支持日常事务处理,而数据仓库则是面向中高层的决策支持;与数据库的动态变化相比,数据仓库是相对稳定的,只能定期添加,等等。表3.11展示了操作型数据库与分析型数据仓库的区别。

从数据仓库的定义和表3.11所列出的分析型数据的特点,可以概括得到数据仓库的四个显著特征:面向主题、集成、非易失性和随时间不断变化。

(1)面向主题

数据仓库作为新型的数据存储方式,更加侧重于从决策支持的最终用户(即决策者)的角度来组织和提供数据。主题是指在较高层次上将数据综合、归类所形成的分析对象。考虑到数据仓库是为企业决策分析服务而建立的,其数据就必然的应该面向管理者所关心的分析主题进行组织。例如管理者一般关心哪些产品的销售量大、利润高,哪些客户是忠诚客户并且采购数量多等,根据这些需求,就可以抽象出“产品”、“客户”等主题。

下面通过一个实例来更好地理解面向主题的数据组织方式。表3.12是一家商场按照日常业务处理需求建立起来的销售、采购和库存管理子系统中各自的数据库模式。

按照面向主题的方式来组织数据,分成抽取主题和确定各主题包含的数据内容两个步骤。其中主题的抽取可以通过概括各种分析领域的分析对象得到,本例中的主题应包括客户、商品、供应商等。具体的面向主题的数据组织如表3.13所示。

可以看出,原来数据库中有关订单明细、进料单、领料单等属于日常事务处理所需的内容,在数据仓库中被排除了。因此,主题是在较高层次上将数据进行归类的标准,每个主题对应着一个分析对象,来满足该领域决策的数据需要。

(2)集成

集成是指将多个异种数据源(如不同的数据库、不同的操作系统等)按照不同的主题集成在一起,使用数据清洗技术,来确保命名规则、编码结构、数据特征和属性度量等的一致性。
例如,对顾客的性别进行编码,有的系统用“m”或“f”表示,有的则用“0”或“1”表示,在数据集成的过程中,需要将这些不同的编码方式统一成一种方法;再如,一些属性的度量单位可能不一致,有的系统在描述长度时用“米”,有的则用“千米”,同样需要在集成时统一成一致的度量单位,达到数据一致性。因此,可以看出数据仓库的这一特点是非常关键的。
数据库中的各个事实表、维度表数据的集成必须按照规定的条件、标准执行,才能实现将这些异构数据源的数据统一到数据仓库的模式上来。

(3)非易失性

与数据库中常用的增、删、改、查等操作不同的是,数据仓库中的数据是不能进行修改和删除的。由于数据仓库的目的是支持企业决策,因此只要数据未超过数据仓库的数据存储期限,通常不对数据进行一般性的修改和删除操作,只进行数据查询以及定期的数据加载。
数据库与数据仓库对于数据处理的差异

(4)随时间不断变化
数据仓库是随时间不断变化的,有两个方面的含义。一方面是指数据的定时更新,即不断跟踪日常事务处理系统,将新的数据追加到数据仓库中,同时也会随着时间的推移删除超出数据保存期限的数据。其中,数据追加的频率可以是每周、每个月或者每天,根据管理者的分析需求来确定。另一方面,由于数据仓库是面向历史记录的,因此每一个数据结构都包含了时间要素,以表明数据的历史时期,在此基础上才能对不同时间段的业务情况进行深层分析,以支持决策。
数据仓库还具有其他一些特点,如数据仓库中的数据不再像数据库中的数据一样具有严格规范化的特点。这是由数据仓库的应用需求决定的,数据仓库为了保证系统的响应速度,可以在一定程度上牺牲数据的规范化,增加数据的冗余度,即用空间换时间。

3.5.2 数据仓库的发展

数据分析与处理技术的发展经历了数据收集与数据库创建、数据管理(包括数据存储和数据检索、数据库事务处理)、数据分析和理解(包括数据仓库和数据挖掘)三个不同的发展阶段。
数据仓库与数据库最大的不同在于它是面向决策而非面向事务处理,建立在数据仓库之上的OLAP工具提供了多维数据分析和决策支持的能力。

数据仓库的目的是建立一个体系化的数据存储环境,将分析决策所需的大量数据从传统的操作环境中分离出来,使分散、不一致的操作数据转换成集成、统一的信息。企业内各个部门、各个层次的人员都可以在这个环境下查询和使用其中的数据和信息,进而为决策提供支持,获取更大的经济效益。

传统的数据库技术以单一的数据资源(即数据库)为中心,执行事务处理、批处理、决策分析等各种任务,主要是操作型处理。
而数据仓库技术具有分析处理等特点,从不同数据源提取出数据和信息,转换成公共的数据模型并和数据仓库中已有的数据集成在一起,发展为体系化环境。在这个体系化环境中,数据冲突和表达不一致的问题已经得到解决,从而弥补了原有操作型数据库的缺点。

在数据仓库体系结构中,存在两种主要数据:原始数据和由原始数据导出的、适合分析的导出型数据。

随着数据的不断载入,数据仓库的规模将越来越庞大,分析工作如果完全基于单一的数据仓库,性能将十分低下,因而需要建立分层的数据仓库体系

数据仓库的体系结构可以分为三个部分:数据获取、数据存储和数据分析,分别对应三个层次:操作环境层、数据仓库层和业务操作层(22),如图3.25所示。

其中,操作环境层包括了整个企业内有关业务的OLTP系统和一些外部数据源;数据仓库层是把操作环境层的相关数据进行提取、清洗和转换所形成的数据层次;业务操作层则包括各种数据分析处理工具。

数据仓库的实现过程主要包括四个部分:数据仓库的设计与建模、数据集成、数据存储和管理、数据分析和展现。
(1)数据仓库的设计与建模
数据仓库的设计包括与操作性系统的接口设计和数据仓库本身的设计。实际上,数据仓库的需求是无法事先完全预知的,有时只有在装载了部分数据并已开始使用时才能明确,因此数据仓库的设计是以一种迭代方式进行的,不同于传统的操作性系统的设计开发。首先,它载入一部分数据供决策支持系统分析员使用和查看;然后根据用户的反馈,修改数据和添加其他数据。这种反馈过程贯穿于数据仓库的整个开发生命周期中。

数据模型是能够采用迭代方式建立数据仓库的关键。数据模型可以分为三个层次:高层建模(ER模型,实体关系层)、中间层建模(DIS,数据项集)、底层建模(物理模型)。高层模型中的实体和企业的主要主题域相关,然后将高层模型中标识出的每个主要主题域或实体扩展为一个中间层模型,最后基于中间层模型创建物理数据模型。

(2)数据集成
数据仓库中的数据来自不同的系统,这些系统的硬件环境和软件环境可能各不相同,使得数据结构各异。提取这些系统中的有用数据,进行净化、整理、综合及概括,并去掉无用的数据,转换为统一的格式加载到数据仓库中,这就是数据集成的任务。

(3)数据存储和管理
数据仓库的存储可以选用多维数据库,也可以选用关系型数据库或其他的特殊存储方式。要保证数据的安全性、完整性及一致性,同时还要具有复杂的分析查询的高效性。
(4)数据分析和展示
OLAP是一项分析处理技术,它从企业的数据集合中收集信息,并运用数学运算和数据处理技术,灵活、交互式地提供统计、趋势分析和预测报告。通过多种OLAP工具对数据仓库中的数据进行多维分析、汇总,形成图表或报表的形式,使企业的决策者可以清晰、直观地看到分析结果。

动态数据仓库基于传统数据仓库的架构和技术原理,对传统数据仓库的补充和扩展。它不仅包含复杂的、战略性的决策支持,还包括战术性的决策支持和事件的自动检测与处理,从而使数据仓库发挥更大的作用。与传统的数据仓库相比,动态数据仓库的特点还体现在数据的实时加载、混合的工作任务、事件的检测和预先分析等方面。

3.5.4 数据仓库的数据模型

与数据库类似,在数据仓库的设计中同样存在着三级数据模型,即概念数据模型、逻辑数据模型和物理数据模型。这里主要关注逻辑数据模型方面。数据仓库不同于数据库,其逻辑数据模型是多维结构的数据视图,也称多维数据模型。

在多维数据模型中,主要数据是数据实际值,如销售量、投资额、收入等,这些数字实际值是依赖于维度的,这些维度提供了实际值的上下文关系。例如,销售量与城市、商品名称、销售时间有关,这些相关维度决定了销售量的实际值。多维数据视图就是在这些维度构成的多维空间中存放着数据的实际值。多维数据模型还能够对一个或多个维度的集合进行运算,如对总销售量按城市进行计算和排序(见图3.26)。

目前使用的多维数据模型主要有星型模型、雪花模型和事实星座模型等。

(1)星型模型

大多数的数据仓库都采用星型模型。星型模型是由事实表和多个维度表组成的。事实表中存放大量关于企业的事实数据(数字实际值),元组个数通常很大,而且非规范化程度很高。例如,多个时期的数据可能会出现在同一个表中。维度表中存放描述性数据,是围绕事实表建立的,相对来说有较少的行(见图3.27)。


星型模式所具有的特征可以归纳为:利用维度表的主键可以唯一确定一条记录;星型模型存取数据速度快,主要针对各个维度做了大量预处理,如按照维度进行预先的统计、分类、排序等;与规范化的关系数据库设计相比,星型模型是非规范化的,提高了多维数据的查询速度,但数据冗余量很大,增加了存储空间的代价;具有上钻/下钻的功能,从高层次的汇总数据到低层次的细节数据均可获取。
使用星型模式对数据仓库逻辑建模,运用表之间的连接路径,可以很方便地从一个表转移到另一个表,因此优化了用户的查询操作。但该方法也存在一些不足:当业务问题发生变化、原来的维度不能满足需求时,需要增加新的维度。由于事实表的主键由所有维度表的主键组成,这种维的变化带来的数据变化将是非常复杂、非常耗时的。

(2)雪花模型

雪花模型是将星型模式维度表规范化后形成的模式,原来的各维度表可能被扩展为小的事实表,形成一些局部的层次区域。如果将所有的维度表都完全规范化,那么就会得到一个以事实表为中心的雪花模型。在雪花模型中能够定义多重父类维来描述某些特殊的维度表,如在时间维上增加月维和年维,通过查看与时间有关的父类维,能够定义特殊的时间统计信息,如月统计、年统计等。
雪花模型的优点是最大限度地减少数据存储量,以及把较小的维度表联合在一起来改善查询性能。但是它增加了用户必须处理的表的数量,增加了某些查询的复杂性,模式变得比较复杂以至于用户不容易理解,额外的连接使得查询性能下降(见图3.28)。所以,在逻辑建模的过程中,可以考虑对某些层次复杂的维度使用雪花模型的建模方法,但应当注意,维度表的数目不益增加太多,通常只对部分维度表标准化。

(3)事实星座模型
事实星座模型用于更为复杂的情况。存在多个事实表,每个事实表拥有自己的一组维度表,同时事实表之间又有可能共享维度表,因而可以视为星型模型的集合,所以有时也被称为星系模型。该模型通过事实表和维度表的共享,形成交叉的、复杂的关系网络,在实践中运用较少。

基于全生命周期的主数据管理:MDM详解与实战学习03 第三章 主数据管理的关键技术相关推荐

  1. 基于全生命周期的主数据管理:MDM详解与实战学习02 第二章 主数据管理的内涵

    第二章 主数据管理的内涵 导读 2.1 主数据的概念 2.1.1 主数据的定义 2.1.2 主数据的特征 2.1.3 主数据的范围 1.描述实体范围 2.应用层次范围 (1)元数据 (2)引用数据 ( ...

  2. 【转载】基于全生命周期的主数据管理:MDM详解与实战学习

    01 第一章概念学习 第1章 主数据管理的背景 1.1 信息时代的企业发展 1.2 数据资产 1.2.1 数据资产的概念 1.2.2 数据资产的重要性 1.2.3 数据资产现状 1.3 数据治理 1. ...

  3. vue 生命周期的11中方法详解

    vue 生命周期的十一中方法详解 vue 生命周期的定义 vue实例 从创建到销毁,也就是说从创建 -> 初始化 数据-> 编译模版 -> 挂载Dom -> 渲染 更新 -&g ...

  4. java 线程 状态 图_Java线程中的生命周期和状态控制图文详解

    这篇文章主要介绍了Java线程的生命周期和状态控制,需要的朋友可以参考下 一.线程的生命周期 线程状态转换图: 1.新建状态 用new关键字和Thread类或其子类建立一个线程对象后,该线程对象就处于 ...

  5. android 生命周期_Android生命周期组件 Lifecycle 源码详解(一)

    在上篇文章: warmcheng:Android生命周期组件 Lifecycle 使用详解​zhuanlan.zhihu.com 中,我们讲了 Lifecycle 的简单使用,本篇我们来研究下它的源码 ...

  6. java线程6种状态转换,Java线程的生命周期和各种状态转换详解

    在Java中,任何对象都有生命周期,线程也不例外,它也有自己的生命周期.当Thread对象创建完成时,线程的生命周期便开始了,当线程任务中代码正常执行完毕或者线程抛出一个未捕获的异常(Exceptio ...

  7. 微信小程序生命周期和路由传参详解

    一.生命周期 1.应用级的生命周期 1.onLaunch 当小程序初始化完成时,会触发onLaunch(全局只触发一次) 2.onShow 当小程序启动,或从后台进入前台显示,会触发onShow 3. ...

  8. Maven学习总结(44)——Maven构建时生命周期及其常用集成命令详解

    集成命令:-U -X -B -e clean能够保证上一次构建的输出不会影响到本次构建. 使用deploy而不是install: 构建的SNAPSHOT输出应当被自动部署到私有Maven仓库供他人使用 ...

  9. 一文透析腾讯云如何为企业构建「数据全生命周期保护」

    伴随数据成为企业的核心资产,数据安全已经成为所有企业在产业互联网时代必须直面的挑战. 今年的数据安全态势仍然不容乐观,据Risk Based Security数据,截至2019年前6个月,世界范围内已 ...

最新文章

  1. 三代测序数据分析之文献推荐
  2. 清华大学精密仪器系:智能传感器太重要了!
  3. Cell重磅:记忆研究的突破进展!在诺奖成果基础上,用“全光学”组合来“操纵记忆”...
  4. 编辑器插件不生效在html中,关于6.04版本HTML编辑器插件使用问题!
  5. Promise.race 的原理
  6. 密码学基础知识(五)序列密码
  7. 海南工会云会员认证_五一有奖答题来了,欢迎广大工会会员登录参与活动
  8. java守护线程和用户线程
  9. 次梯度(subgradient)
  10. ASP.NET MVC从视图传递多个模型到Controller
  11. 财务管理c语言oj,九度OJ 1141:Financial Management (财务管理) (平均数)
  12. vue php 分页组件,基于Vue.js的表格分页组件
  13. 分部类和方法的学习以及在LINQ中的应用(原创)
  14. java_泛型方法使用实例
  15. python银行卡号识别_EAST+CRNN银行卡号识别,附数据集
  16. 微生物生态排序分析——CCA分析
  17. 在线生成透明ICO图标
  18. 568A/568B接法
  19. 第11.25节 Python正则表达式编译re.compile及正则对象使用
  20. 为什么神经网络有偏置? 神经网络中的偏置(bias)究竟有这么用

热门文章

  1. android自定义渐变色圆环,Android实现渐变圆环、圆形进度条效果
  2. OCR图片文字识别工具,识别率高且免费(电脑手机版)
  3. 易海公路造价软件 4.03 是什么
  4. javascript开发五指棋和围棋
  5. SSH组合工程之-struts2hibernatespring(工程下载)
  6. 阿里云弹性计算产品专家张新涛:元宇宙应用时代的澎湃算力
  7. python+Django创建购物网站
  8. python--转转盘游戏
  9. 多种方式发布WebGIS地图服务以及显示
  10. “3+1”,剑指何方?――威海校区软件学院扫描