企业主数据是描述企业核心业务实体的数据,如产品、客户、员工等。企业遗留系统一般都基于本地持久实体进行主数据引用和维护,这种模式产生两种后果:一方面,企业各业务部门只关注与其业务相关的主数据,遗留系统只有片面主数据属性;另一方面,系统间同类主数据重复创建、重叠部分内容可能不一致。不完备、不一致的主数据会造成企业管理混乱、甚至会使企业丢失商机。为取得完备、一致的主数据,传统方法是在对等系统间实现数据集成或应用集成,例如:(1)应用抽取、变换、加载等功能复制主数据;(2)使用消息发送和消息接收机制传送主数据;(3)通过编程接口提供主数据访问功能(或服务)。这些集成方法只能在一定程度上解决问题,各有不足:方式1有周期性。不能保证数据一致;方式2在频繁同步发送主数据消息时系统性能会下降,同时遗留系统核心业务管理能力也会受到影响;如果方式2采用异步消息发送.则不能保证数据一致;方式3与方式2一样存在性能问题,而且方式3要求接口提供系统保持足够在线运行时间,给系统运行和维护带来不便。
主数据管理中心(下文称“中心”)统一为企业提供完备、一致的主数据,将主数据提供方和消费方隔离开来、是服务专业化结果。中心有事务型、混合型、注册型等3种类型。目前Oracle、IBM、SAP等企业都推出了各自的主数据管理产品。它们有的是专用型产品,如客户管理、产品信息管理等,单一系统不能对应企业多种类主数据管理需;有的是套件产品,服务于本企业其它产品;有的虽然是通用型产品,但系统大量使用低效的XML数据格式,单一中心承担所有主数据服务访问。系统压力很大、性能不稳定。本文基于遗留系统主数据工作模式不变,结合混合型中心和传统对等系统集成思想,设计一种以实时主数据集成为目的、中心不提供访问服务的混合型中心方案,该方案以中心为主数据存储转发中介协调实现主数据在相关系统间实时集成。
本文第1节介绍本文应用的相关技术知识,第2节论述轻量数据和重量数据分管道处理的主数据集成体系结构;第3节是主数据集成流程设计,第4节介绍简易主数据管理功能组件设计;第5节介绍如何编排主数据管理组件服务实现实时主数据集成;最后是结论。
1、相关技术应用
1.1 SOA,SCA
SOA是服务(Services)为核心的架构风格、是分布式软件系统构造方法。服务由接口和契约组成,接口提供访问业务功能或业务数据的技术绑定,契约用于描述和约束服务、服务消费者据此了解服务及调用规则,Web服务是SOA服务的一种实现方式.其契约包括WSDL(Web Service Description Language)文件、XML模式文件、以及描述服务质量、安全要求等内容文件.服务是以中立、标准化方式定义。不依赖具体的实现技术、操作系统、和硬件基础架构.服务可以划分为业务服务和业务漉程服务,业务服务对应于业务功能接口、是原子性的服务,业务流程服务是组合服务。服务组件架构(Service Component Architeeture,SCA)是一种实现SOA的规范,SCA使用业务流程执行语言(Business Process Executing Language,BPEL)对服务进行编排生成业务流程服务,SCA同时提供人工任务服务和业务规则服务,这些服务也参与服务编排。服务在服务代理上注册后可被查找发现,服务消费者通过服务代理查找到相关服务、并点对点地调用服务。企业服务总线(EntERPrise Service Bus,ESB)解除点对点的服务调用方式,提供基于消息变换、消息内容动态路由的松散耦合服务调用能力。服务具有粗粒度、松耦合、可再用等特性,松耦合特性包括两层意思:(1)服务定义标准化使得服务交互采用通用的、统一的方式进行;(2)ESB的作用使得服务交互可以是动态的、位置透明的;服务的这些特性决定S()A适合异构系统的交互。
1.2批量数据服务
基于批处理方式的传统ETL(Extract,Transform,Load)程序是分布式系统数据集成的主要工具。提供成批数据移动和转换功能,其数据处理吞吐量大、性能好。一般按周期运行,不具备实时集成特性。通过SOA服务化技术,ETL应用可以直接定制为批量数据服务,实现按需调用,批量数据服务可以作为业务流程或ESB事务处理的子过程,实现实时数据集成任务。
1.3 JCA适配器服务
JCA适配器是JCA(J2EE Connector Architecture)规范的连接器,用于连接企业遗留系统。按照其连接的对象可以分为应用程序适配器和技术适配器,应用程序适配器连接Oracle、SAP等企业提供的管理软件包I技术适配器连接特定技术或协议的载体,如中间件组件、FTP服务器、应用服务器、数据库表、消息队列、文件等。企业信息系统一般都要操作本地持久存储。如文件、数据库表等,通过使用JCA技术适配器连接这些持久存储并周期性地探查其数据变化l当变化发生时,JCA技术适配器捕获该变化并触发适配器预先定义的操作。JCA技术适配器这种工作方式产生新形式的适配器服务。
2、体系结构
遗留系统只有片面的主数据属性,企业完备主数据是企业各系统主数据属性的综合.因此中心主数据管理需要跨部门、多系统共同参与。在混合中心体系里,中心只存储必要主数据属性,即那些在企业范围内必须保持一致的主数据属性和查找关键字合集,必要主数据属性划分为主分组和次分组两部分。本文定义主分组属性是以单值表现、且可由中心系统全权输入的属性和关键字集合,相关遗留系统负责输入其维护职责内的次分组属性。按照参与中心主数据管理角色分类,企业遗留系统可以划分为源系统和引用系统两类。(1)源系统是参与中心主数据管理业务、并引用中心主数据的系统;(2)引用系统是不参与中心主数据管理业务、只引用中心主数据的系统.中心系统和源系统一起提供主数据管理业务活动实现,这些业务活动实现按照一定的流程完成主数据管理业务。中心系统、源系统、引用系统可能由不同的软件供应商提供、或采用不同的技术构建、或运行在不同的平台上,系统之间有很大的异构性,它们需要在主数据管理体系下实现交互。
本文采用SOA作为主数据管理体系架构。SOA业务服务实现中心系统及源系统的主数据管理业务活动,SOA业务流程服务实现主数据管理业务,业务流程服务是通过组装、编排跨系统主数据业务服务、质量管理服务、数据集成管理等服务而生成。
主数据集成是混合型中心方案成功的关键,在这种中心体系里,源系统仍然延用原有主数据工作模式:基于本地主数据持久实体的引用和维护,源系统的部分主数据属性作为必要主数据属性提交给中心系统。再由中心系统统一为其它引用系统提供主数据共享。源系统和中心系统必须保持必要主数据属性实时集成,这样才能避免系统间主数据不一致现象。
主数据集成有时需要对应大量主数据属性的复制和变换,例如批量数据更新或导入,即使逐条新增或修改主数据属性,也会由于人工审批等作业延迟,导致等待处理的主数据记录大量积聚。大数据量处理不是SOA的长项,SOA框架基本都在Java容器中运行,当处理数据最很大时,Java虚拟机就会不堪重负;再者。SoA服务交互基本都足以XML通用格式数据为载体,由于XML数据中存在大量的标签、模式定义、尖括号等附加信息,XML数据的有效载荷一般低于实际载荷的10%,XML不适合作为主数据集成的载体格式。
本文使用批量数据服务进行主数据集成操作,批量数据服务具有很好的大数据量处理能力,能够满足实时快速的数据集成要求。
图1是主数据管理体系架构。如图示,中心系统和源系统提供主数据管理服务,这些服务经过BPEL服务编排,生成统一的主数据管理业务流程服务,一个或多个业务流程服务完成一个主数据管理业务,如新增(C)业务、读取(R)业务、修改(U)业务、删除(D)业务,即基本的CRUD操作。主数据管理界面负责业务流程服务调用及各人工业务活动的输入、输出;ESB是体系各部分交互的中介,通过ESB交互的是XML格式轻最数据:包括控制消息和规模可控的轻量主数据消息;中心系统、源系统、引用系统之间的主数据集成对象是体积较大的莺量数据,集成在数据层进行,通过批量数据服务实现;这种轻量数据与重量数据分管道处理方式有利于提高系统运行性能。
下节“主数据集成流程”将详细介绍这种SOA框架内轻量数据、重量数据分管道处理机制。
3、主数据集成流程
本节从系统实现主数据新增、更新、删除、读取等业务角度分析主数据集成流程,以此作为主数据管理业务流程设计的依据。
(1)新增业务:在“主数据管理界面”发出“新增”消息,通过ESB对消息进行转换和动态路由,“新增主数据业务流程”被执行;新增流程以新增消息为参数调用中心系统的“主数据管理服务”,中心系统新增主数据、并返回刚创建的主数据记录定位参数(轻景数据);新增流程获取主数据记录定位参数、并据此调用批量数据服务,批量数据服务从中心相应主数据实体中提取新增 主数据(重量数据)、并同步到所有源系统;源系统更新其维护职责内的次要分组属性,源系统通过主数据集成服务将录入完毕的次分组属性上载到中心系统(重量 数据);最后新增流程启用新增数据并消息通知各个引用系统(轻量数据)。
(2)更新业务:与新增业务类似处理。
(3)删除业务:由于主数据可能已经在交易中使用。系统不允许物理删除主数据。而是采用更新业务逻辑实现逻辑删除功能;同更新业务处理。
(4)读取业务:源系统、引用系统基于本地持久主数据实体引用主数据,这种方式符合遗留系统主数据工作模式、使得遗留系统程序修改量很小;对于需要中 心提供的主数据属性,遗留系统开辟新的主数据属性存储、并定期从中心下载这些主数据属性值(重量数据)I遗留系统通过预定/发布(publish /subscribe)机制预定各自需要的中心主数据变更消息;当中心主数据变更时。中心系统发布有效载荷为<主数据实体,键值范围,属性类 别>的消息(轻量数据),相关遗留系统接到变更消息后,在本地系统标记变更;当遗留系统引用本地带有变更标志的主数据时,遗留系统首先调用本地主数 据集成应用从中心下载最新主数据(重量数据),然后基于本地存储引用这些主数据。
4、功能组件设计
如图2所示,主数据管理组件划分为表示层组件、业务流程组件、应用层组件等3层,下层依次为上层提供服务.
4.1表示层组件
源系统主数据工作模式保持不变,依然使用其主数据维护界面调用原有更新逻辑。需要从源系统主数据维护界面去掉“新增”和。删除”等部件,这些功能只能 统一在中心系统使用。主数据业务管理界面负责调用主数据管理业务流程服务.工作列表是特定角色或工作人员的任务一览表及具体任务的工作界面,如审批等业务 活动.
4.2业务流程组件
(1)新建/中心更新:在中心系统上完成单条主数据的新建/更新、清洗、审批后,下载到所有源系统。(2)源更新:在源系统端完成主数据属性更新、清 洗、审核后,将源系统维护责任内的次分组属性上载到中心。(3)启停用:调用中心系统和所有源系统的启停用服务,使用XA事务(两阶段提交)保证分布式系 统更新的全局事务性。(4)批量导入:成批她新建/更新中心主数据,流程同“新建/中心更新”。(5)批量同步:定期将中心主数据成批地下载到源系统和引 用系统,消除系统问可能存在的主数据不一致。
4.3应用层组件
(1)新建:从临时主数据输入实体中读取新增主数据,生成主数据实体记录,并自动填充关键字域。(2)更新:从临时主数据输入实体中读取更新信息,更 新主数据实体相应记录。(3)启/停用:对本地主数据进行“启用”或“停用”更新操作。(4)提取:从中心主数据实体提取规模可控的主数据记录并转化为通 用格式,作为其它服务的入口参数。(5)清洗:对主数据实体中的数据进行质量筛选,包括列筛选、结构筛选和业务规则筛选。(6)下载:将中心变更的主数据 下载到源系统登台区,可能包含抽取、转换、加载等操作。(7)上载:从中心系统登台区提取源系统提交的次分组属性、并加载到中心系统相关实体,可能包含抽 取、转换、加载等操作。(8)人工任务:SCA规范的人工任务服务,如人工审批等业务活动,其人机交互界面是表现层的工作列表。(9)业务规则:SCA规 范的业务规则服务,是业务流程中的判断活动。(10)管理访同:从中心管理实体中读取相关的管理信息,用于业务流程的条件判断。(11)源下载:从源系统 登台区下载中心提交的主分组属性、并加载至源系统相关主数据实体,可能包括抽取、转换、加载等操作。(12)源上载:将源系统上发生变更的次分组属性上载 到中心系统登台区;可能包括抽取、转换、加载。(13)源清洗:同清洗服务。(14)源启停用:同启停用服务。(15)源更新:源系统仍然使用其更新逻辑 更新本地主数据,我们不对这种更新逻辑进行服务化改造。而是通过外挂适配器服务探测源系统主效据属性变更,当变更发生时执行相关操作返回。(16)源审 核:同“源更新”服务,源系统仍然使用其审核逻辑更新本地主数据,外挂适配器服务探测主数据变更时执行相关操作返回。
5、服务编排实现实时主数据集成
中心系统、源系统之间主数据实时集成可以绝对消除主数据不一致现象。虽然批量数据服务具有很好的数据处理住能,但毕竟参与主数据管理系统众多,需要进 行数据集成的对象系统很多,批量数据服务不可能在同一时刻将大量主数据经变换后传送到每个相关系统I数据传输吞吐量也受基础设施限制,如跨国企业的信息系 统遍布世界各地,简单地使用批量数据服务进行快速数据集成很难保证实时性、准确性。
本文把相关业务流程包含的业务活动控制在一个全局逻辑事务内,业务流程中可以发生任何物理事务提交。但这些提交只有经过流程尾全局逻辑事务提交才生效 I提供XA事务支持的启停用业务流程可以实现这种功能。下图以“新增主数据业务”为例。阐述如何通过服务编排实现实时主数据集成。
图3中共列出15个业务活动,每个业务活动对应一个服务调用,这些业务活动被编排进3个业务流程:①一⑦是“新建”业务流程。③一1212是“源更 新”业务流程,1313—1515是“启停用”业务流程。3个业务流程都跨越中心系统和源系统。业务流程内服务之间的交互信息是轻量数据消息,当需要使用 主数据属性作为交互参数时,使用“提取”服务从主数据实体中取得规模可控的主数据属性值集合;图中“提取”和“审核”(⑤)外的方框表示逐条主数据循环审 核。图中各个业务活动都町能发生物理事务提交,但这些提交的主数据不能被源系统或引用系统在交易中使用,这可以通过设置主数据标志位(如“无效”标志)实 现,1313—1515所在的“启停用”业务流程实现XA事务控制、并行地在各相关系统进行全局事务提交,保证新增的主数据在源系统和中心系统同时启用, 这种提交操作只是更新相关主数据记录状态位,全局事务的性能能够得到保证。
6、结束语
本文结合SOA和批鼍数据服务的特长,将系统中的数据按照轻量数据、重最数据分管道处理,通过全局逻辑事务性业务流程实现实时主数据集成。本文的实时 主数据集成方案也是简易的主数据管理方案。通过数据集成取消单一中心访问服务,中心不再因频繁主数据访问而导致系统性能下降。企业遗留系统仍然延用图3 新增主数据业务的服务编排和实时主数据集成图3中共列出15个业务活动,每个业务活动对应一个服务调用,这些业务活动被编排进3个业务流程:①一⑦是“新 建”业务流程。③一1212是“源更新”业务流程,1313—1515是“启停用”业务流程。3个业务流程都跨越中心系统和源系统。业务流程内服务之间的 交互信息是轻量数据消息,当需要使用主数据属性作为交互参数时,使用“提取”服务从主数据实体中取得规模可控的主数据属性值集合;图中“提取”和“审核” (⑤)外的方框表示逐条主数据循环审核。图中各基于本地持久实体的主数据引用和维护模式。本文方案虽然是企业主数据管理的过渡方案,但由于企业烟囱效应的 信息系统建设方式难以消除,该方案有长期使用价值,也可以作为其它混合型主数据管理系统的集成方案。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:面向企业遗留应用设计实时主数据集成