首页  ·  知识 ·  
面向服务体系架构(SOA)的主数据管理(MDM)和流程监控(PM)研究
笪林梅      编辑:dezai   图片来源:网络
主数据是指在整个企业范围内各信息系统(实时操作、事务及分析型应用系统)间共享的基础数据,从企业整个范围来看,包括客户(customer)、卷烟商品(item)、卷烟供应
1 主数据和主数据管理的概念

主数据是指在整个企业范围内各信息系统(实时操作、事务及分析型应用系统)间共享的基础数据,从企业整个范围来看,包括客户(customer)、卷烟商品(item)、卷烟供应商(supplier),员工(employee)以及组织机构(organization)相关的数据。通常需要,为了实现主数据在整个企业范围内的准确性(veracity)、一致性(consistent)、完整性(complete)目标,需要建立主数据管理系统(Master Data Management System,MDMS)。

主数据管理(Master Data Management,MDM)是指一组约束和方法用来保证一个企业内主题域和系统内相关数据和跨主题域和系统的相关数据的实时性、含义和质量。这是从深层次来说来说明主数据管理(MDM)的深度和复杂性,简单的说,主数据管理(MDM)保证你的系统协调和重用通用、正确的业务数据(主数据)。通常,我们会把主数据管理作为应用流程的补充,通过从各个操作/事务型应用以及分析型应用中分离出主要的信息,使其成为一个集中的、独立于企业中各种其他应用核心资源,从而使得企业的核心信息得以重用并确保各个操作/事务型应用以及分析型应用间的核心数据的一致性。通过主数据管理,改变企业数据利用的现状,从而更好地为企业信息集成做好铺垫。

2 流程简介

流程是指企业运作的所有流程,即企业的所有活动都可以看作是一个个流程,流程是由若干个服务组成的,在IT技术上流程称为工作流,服务称为流程节点。在IT技术中,关于流程最早是以WfMC为代表的“业务流程开发商”,他们主要拥护以XPDL作为描述语言来描述业务流程;之后是以OASIS(Organization for the Advancement of Structured Information Standards,结构化信息标准促进组织)组织为代表的,被IBM,MicroSoft,BEA所拥护的BPEL/BPEIAWS规范;之后向来以规范著称的OMG组织也不甘示弱,联合BPMI组织,独辟蹊径以Notation Specification为入口,首先推出了BPMN规范,进而推出了BPDM(Business Process Definition Metamodel BPDM)。

在本文中流程,是指主数据在企业内信息系统间流转的过程。流程部署流程服务器(WPS)上。流程监控(PM),是指基于BPEL标准的业务流程监控,主要实现系统和系统之间的整合,系统间数据的流转,通过服务进行交互,服务是流程中的节点;通过服务进行数据的交互,实现主数据在各系统中的一致性。

3 主数据管理(MDM)平台

企业可以看作是企业实体对象,包括组织、人员、产品等在不同的环境和条件下的不断运转的过程,实体对象和运转过程映射到信息系统中,分别对应着数据(可以用ER图描述)和业务流程(可以用流程图、业务逻辑和业务规则描述)。数据和业务流程能够全面反映实体对象及其运动的状态。在现实社会中,实体对象的运动体现为一系列活动,在信息系统中,活动表现为一个流程节点,实体对象通过一系列的业务活动直至最终完成任务,在信息系统中体现为数据状态的不断变化,直到数据最终完成。

主数据管理是数据管理的一种高级形式,它必须构建于ETL或者EII(Enterprise Information Integration)等技术之上,因此很多主数据管理平台本身就包含了数据模型定义、数据加载、数据转换、数据质量管理、数据质量优化和数据同步分发等功能。也有某些厂商把MDM作为数据集成产品的一个模块交付给客户。

4 主数据管理的分类

4.1 操作型主数据管理系统

这种类型的主数据管理系统主要用于实现在分步式的交易型数据环境中实现主数据的集成、协调、同步和控制。其强调核心商业数据在各个不同的交易系统中的准确和一致。其所使用的技术主要是EAI的技术。

4.2 分析型主数据管理系统

这种类型的主数据管理系统主要用于实现数据仓库环境下的主数据的清洗、整合、集成等。其强调核心商业实体数据在数据仓库中的准确、完整和可用性。其所使用的技术主要是数据集成和清洗的技术。

4.3 企业级主数据管理系统

这种类型的主数据管理系统需要在整个企业数据环境中控制、集成、协调和优化主数据。要在整个企业数据环境中实现主数据的准确、完整、及时和一致,从而最大化企业数据资产的价值。

烟草行业所建设的主数据管理平台的最终目标就是一个企业级主数据管理系统。它将作为整个企业范围内实现主数据控制、集成、协调和优化的中枢。在当前阶段,其主要目标是实现在操作型环境中的主数据控制、集成、协调和优化工作,总体架构如图1所示:

 

 
在该架构中,主数据管理系统与其他系统通过企业服务总线(ESB)相连接。任何系统中产生的主数据变更事件(新增、修改、删除等)通过企业服务总线都将首先告知给主数据管理平台,平台首先确定这个事件是否正确,然后再确定这个事件需要通知给那些系统。各个系统连接在ESB上的服务负责实现相应事件消息的接收和处理。

未来的,ODS、EDW、DM和分析型应用的主数据的抽取、转换、装载的ETL任务也将作为服务挂接在ESB中,所有与主数据相关的同步、协调、优化、集成都将由主数据管理平台来总体控制,从而实现真正意义上的企业级主数据管理。

在实践中,也有将主数据管理平台的主数据集与ODS中的主数据集合并部署的模式,为保持主数据管理平台的高度中立性和扩展性,在本架构中,我们将主数据管理平台的主数据集从ODS中彻底独立出来,成立一个独立的主数据库。

5 平台应用架构及应用架构图

通过上面对主数据管理平台所应具有的能力的分析,确定整个主数据管理平台的应用架构如2图所示:

在整个平台应用架构中,除红色标记的组件外,其他的组件都将在Loushang平台上实现,下面对每二个组件进行说明。

5.1 服务注册管理

注册并管理所有系统(包括主数据管理平台)所提供的各种主数据服务,并能被ESB访问。

5.2 流程管理

定义主数据业务流程,如零售户入网,零售户变更等。

5.3 系统管理

定义平台的用户、角色、用户所具有的角色权限等。确保主数据管理平台不会被非法访问,每一个用户只能按照设定的权限操作系统。

5.4 主数据模型管理

定义各主数据的逻辑和物理模型,并确定需要审计的属性元素集。

5.5 业务规则管理

定义主数据相关的业务规则,包括值域约束规则、完整性规则、一致性规则等。这些规则将被用于主数据准入控制、质量评估、主数据清洗和修复。

5.6 主数据查询

提供查询功能,按照各种条件查询主数据以满足不确定的主数据查询检索、下载等需求。

5.7 主数据变更

提供运用平台手工变更主数据的功能以满足特殊情况的主数据修改需求。由其他系统发起的主数据变更(创建、修改、删除)将通过在流程管理中确定的流程进行变更。

5.8 主数据审计

负责记录主数据的所有历史演化及相关责任人,它同时也相当于主数据的历史版本记录。记录可以被检索和下载,并能根据某个人工设定的时间点回滚。

5.9 主数据质量评估

提供根据预定的规则对主数据当前质量状况的评估,包括准确性、完整性和一致性三个方面。

5.10 主数据清洗

提供按照预定的规则对主数据进行清洗的功能,其首先识别出重复异常主数据,然后对其进行标记,并进行记录,然后可以人工对这些数据进行修订后同步到相应系统。

5.11 主数据修复

主要提供按照预定规则对空缺主数据相关数据项的自动填充功能。

5.12 异常监控

监控主数据管理过程中所发生的各种异常事件。包括同步失败、违规操作和主数据自身的异常等。

6 平台数据架构及数据架构图

从主数据管理平台自身考虑,我们将其数据划分为如下四个区,他们分别是元数据记录区、主数据当前记录区、审计日志历史记录区和异常与重大事件记录区,其数据架构如图3所示:

 

具体的:

6.1 元数据记录区

存储与主数据相关的业务与技术元数据。包括涉及系统、主数据逻辑与物理模型、相关业务规则等信息。

6.2 主数据当前记录区

存储企业集成、完整的、面向主题的主数据当前信息,这是企业当前时刻关于主数据的最权威、最完整的信息。

6.3 主数据审计日志历史记录区

存储主数据的历史演化日志,包括变更的时间戳记、操作者等相关信息。

6.4 主数据异常与重大事件记录区

存储主数据管理过程中的异常或重大事件,异常事件包括同步失败、违规操作等;重大事件包括回滚、数据清洗和修复、手工修订同步等。

7 主数据服务流程

传统的工作流的流转,只要两个基本的组件:工作流引擎和自定义表单,有了这两个基本组件就可以在一个系统中实现流程的流转。但是如果要实现整合企业内的主数据,则需要包含所有的应用(不管是什么平台、什么开发商),特别是要将所有的业务涉及到的主数据变更全部整合到流程中,就需要流程组件提供一个松耦合的连接方式,将所有的应用整合在一块,保证现有的系统都能最大程度的整合到统一的工作流中,同时对于新增的信息系统,可以用组件化的方式加入到现有流程中来,从而实现统一企业的流程。

将流程组件作为一个独立的公共组件,为了更好的实现和其它业务组件以及公共组件内部的不同模块之间的松耦合,流程组件对外以Web服务的方式对外提供接口,通过ESB和业务组件进行调用。同时为了统一管理,将流程部署到企业服务总线(ESB)上,通过类总线(API)进行调用。这样既可以实现和内部业务组件之间的结合,也可以实现和应用外部的系统进行流程整合。从业务组件划分角度来看,流程模块可以作为独立的业务组件,从方便管理角度来看,将其和其它的功能模块合并在一起,是公共组件的一个部分。

8 设计的背景

为了搭建松耦合的流程组件,可以采用通过服务总线(ESB)以Web服务方式或者通过类总线以API方式进行集成,搭建企业级的公共流程组件。服务设计,除非是写入服务提供者业务需求非常明确,只有本系统调用才会写入,一般建议按照以上独立的写入服务方式来实现。采用独立的写入服务能更好的适应未来被动写入、或者写入操作需要经过评审或者确认之后的操作。

比如零售客户信息数据,如果是在专卖系统中创建,财务系统需要零售客户数据,有三种调用方式,一是财务系统直接到ESB调用财务系统的客户信息查询Web服务,然后写入系统。二是事件机制,专卖系统中的数据变化时,对外提供的客户信息变更服务,服务调用中传递的消息就是变更的信息,调用财务系统的写入服务。如果还有其它的系统需要客户信息,可以在ESB中定义出发布/订阅关系。

三是财务系统先请求ESB调用专卖系统的查询服务,然后由ESB调用财务系统的客户信息写入服务,写入数据。如果未来业务流程发生变化,改由专卖系统直接将客户信息写入财务系统,则直接调用财务系统的写入服务即可,需要做的仅仅是配置一下ESB即可,现有的程序不需要改变。第一种方式下,如果改成专卖系统写入,财务系统需要重新编码,第二种方式如果别的系统来主动查询客户数据,需要另外增加一个客户信息的查询服务,第三种情况,无论是如何改变化,需要的仅仅是增加一个请求调用即可,对所有的系统影响最小,因此是受外界需求发生变化后影响最小的方式,更好的解决了松耦合的问题。

9 主数据流程监控(MPM)实现

因为主数据主要包括系统间共享数据。与记录业务活动,变动较大的交易数据相比,主数据(也称基准数据)变化缓慢,一般每年的变化在20%左右。在正规的关系数据模型中,交易记录(例如,订单)可通过关键字(例如,订单或发票编号和产品代码)调出主数据。根据主数据管理实施的复杂程度,参照Jill Dyche,Evan Levy的观点大体可以把主数据管理可以分为五个层次,其中Level 3(通过集中的总线处理,类似于翻译器)可以实现企业内任意两个系统交换数据。Level 3是将数据转换逻辑集中化和标准化,它支持主参照数据的分布式存在(即分布的主数据存储,集中而标准的主数据转换),Level 3打破了各个独立应用的组织边界,使用各个系统都能接受的数据标准统一建立和维护主数据(MDM)。而最高级别Level 5(企业数据集中),当主数据记录的详细资料被修改后,所有应用的相关数据元素都将被更新,本级别可以通过SOA的架构平台实现。根据主数据的特点,可以对它的变化进行更为详细的监控,对主数据的变更进行审计。从企业级主数据的管理监控平台来看,包含数据监控台和流程监控台,数据监控台对企业内存在的主数据进行监控对比,识别问题系统,预警问题数据。流程监控台对企业中运行的流程进行监控、分析,诊断问题流程,发现问题节点,确保跨系统的流程畅通无阻。还包括服务的监控及统计分析,包括服务的调用历史记录,失败调用记录等情况。

10 数据监控台

包括零售客户、员工、组织机构、供应商、品牌拥有者、卷烟品牌、卷烟商品、卷烟生产厂家、计量单位、行政区划。

每一个具体的主数据对象,都有对应的监控台,员工监控台示例如图4:

 

监控平台中,可清晰的查看主数据对象的提供方、接收方和管理者。并查看各系统中的主数据对象的现状,包括总数、最近变更情况。

流程监控主要包含三个部分服务管理、流程实时监控、流程统计分析,为了整合系统,建立了一个企业级的服务总线,服务总线上部署了企业内所有的主数据流程,主数据管理系统保存了流程过程中的数据。为了保证对流程流转过程的详细记录,将所有通过总线的业务流转状态信息全部存放到主数据管理平台的数据库。这样数据库中主要包含了两部分数据:一个是流程本身所需的数据,包含流程中传递的数据、数据来源的系统、数据分发的系统等相关信息,另外一个就是流程的记录数据。包含流程流转的时间、调用了哪些服务、服务的返回状态、是否成功等信息。

11 流程监控数据来源

 

12 流程监控台

流程的监控包括对服务本身的监控,在主数据流程中,流程的主要节点大都是各系统暴露出来的服务。因此流程的监控包括对服务的监控。服务的稳定和可用,是流程能够顺利完成的关键。

对服务的稳定性进行评价是流程监控的一部分。因此对服务的调用历史进行记录,并通过记录数据进行统计分析,是服务评价的一个重要指标。通过对服务的分析,可以提前预防流程中的薄弱环节,对解决失败流程问题提供经验。

13 流程监控举例

 

 
此处中的服务,主要包含下面部分:

主数据服务,主数据相关的服务,是共用的服务,主数据管理业务组件也是属于企业公共服务平台管理范围,是企业级的公共业务组件。

流程服务,涉及流程程的服务,相关信息提供到工作流引擎,是共用的服务,流程管理业务组件也是属于企业公共服务平台管理范围,是企业级的公共业务组件。

本文作者:笪林梅 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读