模型驱动方法论在业务中台中的实践研究(三)

2020-05-18 13:23李忠民高晓欣
现代信息科技 2020年20期

李忠民 高晓欣

摘  要:数据词典是确保数据一致性的主要措施,通过编制数据词典确保数据一致性,避免重复甚至冲突的定义,是系统建设中重要的基础性工作,但是对于大型系统来说涉及的词汇量巨大,数据词典的编制面临着管理上、业务上等诸多困难,确保数据词典本身的质量是一个重要问题。文章在某大型央企的业务中台的建设过程中,对编制方法进行了研究,在该方法的指导下完成了词汇梳理工作,从中提炼编制了数据词典,并结合MDA方法论在业务中台项目实现落地。

关键词:模型驱动架构;数据词典;数据元

中图分类号:TP393.09      文献标识码:A 文章编号:2096-4706(2020)20-0107-05

Research on the Practice of Model Driven Architecture in the Middle Office (3)

——Establishment and Implementation of Data Dictionary

LI Zhongmin,GAO Xiaoxin

(Beijing China-Power Information Technology Co.,Ltd.,Beijing  102208,China)

Abstract:Data dictionary is the main measure to ensure data consistency. It is an important basic work in system construction to compile data dictionary to ensure data consistency and avoid duplicate or even conflict definitions. However,for large-scale systems,the vocabulary involved is huge,and the compilation of data dictionary faces many difficulties in management and business. To ensure the quality of the data dictionary itself is an important issue. In the construction process of the financial center of a large-scale central enterprise,researched the compilation method,under the guidance of this method,we have completed the word sorting work,extracted and compiled the data dictionary,and combined with the MDA method to achieve the implementation of the financial middle office project.

Keywords:model driven architecture;data dictionary;data element

0  引  言

對大多数企业来说数据不一致是一个突出的数据质量问题,已经严重制约企业信息化应用水平的提高。从企业的角度,不同时期、不同业务条线重复建设,系统林立,系统之间相互割裂,呈烟囱式架构,造成数据无法共享,业务无法衔接。从单一系统来看,一是由于不规范的设计,存在同一个语义的数据项多次定义,且每次定义的类型、长度、精度都存在不一致的情况;二是随着系统的优化升级,不断地贴补丁,引入重复定义和不一致的定义,进一步加剧了数据不一致性。获得企业范围的数据一致性,是企业信息化建设中孜孜以求的目标,从企业视角看,解决这个问题的关键是制定数据的企业标准,从单个系统的层次看,就是根据数据标准编制数据词典。

作为业务中台的承建单位,我们展开了数据词典编制方法论研究,提出了经实践证明可行的业务中台数据词典编制方法。同时模型驱动架构方法论(MDA)是一种系统分析和设计的方法论,它把系统分析和设计过程抽象为一系列前后依赖的模型的建模过程,实现了业务需求的结构化描述,该方法论在业务中台中得到应用。实践中我们有机结合二者,不但应用于数据词典的编制,而且做到切实贯彻落实到系统分析设计过程中去,取得了不错的效果。本文总结业务中台数据词典编制和实施实践经验,提出一个可行的数据词典的编制方法,并结合MDA方法论,探讨了在系统分析设计过程中贯彻落实数据词典的路径。

1  数据词典制定过程中的几个关键概念

1.1  数据元

一种元数据,在本文中特指模型中的数据项及其抽象父类,如逻辑模型中的属性、物理模型中的字段等。每个数据元都由定义域、值域来描述,定义域即数据元的语义,值域即Domain,包括数据元的取值范围、编码规则、格式等约束,如图1所示。

1.2  语义

数据元的定义域,不同的数据元语义不同,某些数据元之间在语义上存在泛化关系,存在泛化关系的数据元虽然语义不同,不过子类是父类语义的细化和补充明确。

1.3  Domain

数据元的值域,每个数据元都由语义和Domain二者来定义。Domain包括:数据类型、取值范围(对于枚举)、编码规则、格式、最大值/最小值等约束,详见图1。Domain的概念是数据词典制定过程中的关键概念,是保持数据的一致性的重要措施。

1.4  抽象数据类型

数据元的最高层抽象,规定了能够加之于其上的操作集合,如数值型可以进行加减乘除等操作,在数据标准这个领域,抽象数据类型分为数值型、字符型、日期型等,全部抽象数据类型的集合是数据类型词典。

1.5  抽象数据元

一种元数据,数据模型中数据项的抽象父类,如“身份证号”是“投标人身份证号”“企业法人代表身份证号”等数据项的抽象数据元。抽象数据元的集合构成数据元词典。

1.6  标准数据元

一种元数据,为某个抽象数据元的具体化,是领域模型中的属性,逻辑模型中的属性,物理模型中的字段的标准定义,每个标准数据元都是某个抽象数据元的子类,继承于同一抽象数据元的多个标准数据元,其值域保持一致。如“投标人身份证号”“企业法人代表身份证号”是标准数据元,其继承于“身份证号”这一抽象数据元,其数据类型、长度、编码规则都与“身份证号”保持一致。標准数据元的集合构成数据词典。

1.7  普通数据元

一种元数据,各类模型中描述数据的原子单位,如领域模型中的属性,逻辑模型中的属性,物理模型中的字段。普通数据元与标准数据元是遵从关系,每个普通数据元必须且只能遵从于一个标准数据元,其语义和值域与该标准数据元严格一致。例如数据模型的合同、合同履约信息等多个实体中都存在“投标人身份证号”,这些数据项都对应着数据词典中的“投标人身份证号”这个标准数据元,且语义、值域与其保持严格一致,这种关系可以确保在整个模型中所有“投标人身份证号”的长度、编码规则等特征完全一致。

1.8  数据词典

数据类型词典、抽象数据元词典和标准数据元词典共同构成数据词典,定义了企业范围内所有数据元的权威的语义和值域。

2  元数据之间的关系

元数据之间存在三种关系:组合关系、泛化关系、遵从关系,如图2所示。

在数据词典制定时存在一个重要的基础性原则:即存在泛化关系或遵从关系的数据元其值域(Domain)严格一致,该规则是制定数据词典和在模型中贯彻数据词典的重要依据。

2.1  组合关系

如图2所示,从左向右,元数据存在组合关系。数据词典由数据类型词典、抽象数据元词典和标准数据元词典构成;数据类型词典规定了元数据体系的最高抽象层次中的元素,即企业的数据的抽象数据类型,抽象数据类型数目是有限的、可枚举的,一般有三种:字符型、数值型、日期型。抽象数据元词典由抽象数据元构成,其中的每个抽象数据元语义互相独立,不存在相同的两个抽象数据元;标准数据元词典由标准数据元构成,每个标准数据元都是某个抽象数据元的子类,其Domain与其父类严格一致,不存在相同的两个标准数据元;数据模型由普通数据元构成,一个模型中可以存在多个相同的普通数据元,普通数据元其语义和值域都严格遵从标准数据元。企业级的数据词典实现对企业范围的所有数据概念的全覆盖、无遗漏、不重复的定义,且给出公司级的、权威的语义和值域定义。

2.2  元数据的泛化关系

从上向下在元数据的各个概念中存在三个层次的抽象,即抽象数据类型、抽象数据元、标准数据元,具体含义为:

(1)抽象数据类型:最高层的抽象是抽象数据类型,抽象数据类型规定了数据的可能取值的范围和可以作用其上的操作,作为最高的抽象形式,只有种类有限的数据类型,如字符型、数值型、日期型等。

(2)抽象数据元:第二层抽象是抽象数据元,其规定了数据元的抽象语义和Doma,抽象数据元继承了抽象数据类型的所有特征,在此基础上,又增加了语义和Domain等信息,即数据类型、编码规则、取值范围、格式、最大值/最小值等信息,抽象数据元的数据类型一定是抽象数据类型的某个枚举值,抽象数据元的构成元素详见图1。

(3)标准数据元:第三层抽象是标准数据元,标准数据元是数据的模板,对应着模型中的“属性”“字段”等元素。标准数据元的构成元素与抽象数据元相同,但标准数据元必须是某个抽象数据元的子类,其语义继承父类的语义并进行细化,而其Domain与其父类保持完全一致,一个父类可以有多个子类,通过这种值域上的绝对一致性,使得同一父类的数据能够保持全域一致性,简化了数据交换的困难,促进了数据共享。如“投标人身份证号”“企业法人身份证号”这两个标准数据元存在共同父类“身份证号”,因此二者的Domain都与父类“身份证号”完全一致,从而二者的Domain也完全一致(意味着二者数据类型、长度、精度、编码规则等信息完全相同),推而广之,整个模型中所有“xxx身份证号”的数据元,其Domain也完全一致,从而得到数据的全域一致性。

2.3  元数据的遵从关系

从上向下,元数据之间存在遵从关系,在系统分析设计过程中建立的各类模型中的数据项(如属性、字段)等元数据与标准数据元之间存在遵从关系,在建模时定义属性、字段等元素时,不是像往常一样直接给出名称、数据类型等要素,而是要引用标准数据元词典中的某个数据元,即模型中的数据项要遵从标准数据元词典中的某个标准数据元,在语义和值域上保持完全一致,这种遵从关系,使得数据词典能够贯彻到模型中去,从而确保在系统实现中得到数据的全域一致性,如图2所示。

3  数据词典的一种编制方法

制定数据词典有技术上、业务上、管理上的一系列困难,基于笔者在业务中台项目中的实践经验,介绍一下对于技术困难的解决方案。制定数据词典要经过原始数据元归集、抽象数据元词典构造、标准数据元词典构造三个阶段。

3.1  原始数据元归集

原始数据元词典是客观世界中存在的、未经标准化的业务概念的集合,其中存在大量的重复、不规范甚至冲突的定义,是数据词典化的工作对象。在业务中台项目中,原始数据元词典的来源是统一数据模型的数据元、ERP的数据元和已建系统的物理模型字段。

3.2  抽象元词典的构造

抽象数据元词典的构造过程分为构造抽象数据元、定义抽象数据元两个阶段,在构造抽象数据元阶段,我们对原始数据词典中的单词进行语义分析,识别其间存在的泛化关系,构造语义关系树,把全部单词处理完后会识别出一座森林,这片森林的根构成一个集合,这个集合即抽象数据元词典。在业务中台项目中由于原始数据词典中单词数量达到70万余条(由于是多个来源的简单集合,分析后的结果表明大部分单词是重复的),巨大的词汇量是完成这项工作的障碍,实践中我们的做法为:

第一步计算机辅助切词处理:对原始数据词典中的所有单词进行切词处理,通过比较分词的重复比率,识别出潜在的同义词和近义词,形成一个个的近义词集合。

第二步同义词人工过滤:首先把分词后形成的近义词集合分工给多个团队,经过分词处理后每个集合的词汇量还是相当巨大的,各团队首先对集合中的单词按照后缀分类排序(一般相同后缀的词语义重复或者相近的概率比较大),先进行一轮人工排重,经验表明经过这样排重后词汇量降到原来的二十分之一左右(3万左右),平均每个团队5 000条左右。

第三步泛化关系的整理过程:首先从集合中随机取一个小集合(如100条),人工对其中的单词进行分析:

(1)删除不规范的单词;

(2)拆分复合单词;

(3)定义模糊的明确语义,如对于“审核人”,要确定是审核人名称还是审核人员工编码;

(4)合并同义词;

(5)对每个词识别其抽象语义,如果已经存在则与该父类建立泛化关系,否则新建抽象父类;

(6)再取下一个100条,重复上述工作。

经过多次迭代,每个单词都与某个抽象数据元建立了泛化关系,整个词典形成了一座语义森林。

第四步合并各团队工作成果:选取上述森林的根形成的抽象数据元集合,对该集合再次重复第三步的工作,最终形成抽象数据元词典,实践中最终得到数千条抽象数据元构成的数据元词典。

第五步抽象数据元定义:定义数抽象据元的Domain,即数据类型、长度、精度、取值范围、编码格规则缺省值等约束。定义依据是各项已存在的标准或者事实标准,原则为:优先遵从企标、然后依次是行业标准、国家标准、国际标准、事实标准。

3.3  标准数据元词典的构造方法

标准数据元词典是与抽象数据元词典同时构造的,在抽象数据元词典构造过程中,最终形成一座语义森林,森林的根构成了抽象数据元词典,所有节点(包括根、中间节点和叶子节点)构成了标准数据元词典。

标准数据元词典中的单词在语义上与抽象数据元词典中的某个抽象数据元有继承关系,在Domain上,与该数据元保持完全一致。

4  数据词典在系统建模过程中的贯彻落实

在业务中台工作中的经历中,笔者提出了一个MDA落地的可行的模型序列:业务过程模型、用例模型、业务对象模型、领域模型、概念模型、逻辑模型、物理模型和组件模型。该模型序列覆盖了系统分析设计开发实现全生命周期,通过对模型序列的模型逐一建模,引导从业务空间逐步逼近以至最终达到系统实现。在这一系列模型的建模过程中,都面临对数据元的定义和引用,这些数据元都是普通数据元,其语义和取值都要严格遵从标准数据元给出的语义和值域,故通过各模型的建模过程中对数据词典的严格遵从,使得数据词典得以切实贯彻落实:首先,从系统建设的角度,数据词典得以在分析设计开发全生命周期中贯彻落实;其次,从数据运用的角度,数据词典得以从输入、系统处理到输出全程贯彻落实;再次,从数据分布的角度,数据词典得以从展示层、业务逻辑层、数据访问层以至于数据库,都得以贯彻实现;最后从数据传输的角度,数据词典从数据存储到交换都得以贯彻。同时,使得不同系统间间和不同模型间同一语义的普通数据元也得以严格一致,从而实现全域的数据一致性,为数据共享、业务衔接铺平道路。下文就具体实践中数据词典的落地实施做法进行论述。

4.1  在建模工具中建立数据标准模型

抽象数据类型、抽象数据元和标准数据元都是以对象的方式存储在数据标准模型中,示例如图3所示。

图3中显示了数据标准模型的一个例子,其包含数据类型词典、抽象数据元词典和标准数据元词典三大部分,作为示例,数据类型词典中有三种抽象数据类型:字符型、数值型、日期型;抽象数据元词典中有四个抽象数据元:日期、金额、身份证号、id,实际上每个都规定了语义和Domain,由于工具所限图中没有显示出来;数据词典有七个标准数据元,分别继承于抽象数据元词典中的某个抽象数据元。

4.2  在业务过程模型贯彻数据词典

业务过程模型包括业务流程模型和用例模型,这两个模型都从交互場景分析入手,描述交互中的输入输出和相应的系统处理过程,这些输入输出业务信息由数据项组成,这些数据项就是普通数据元,要在业务过程建模中贯彻数据词典,就要确保这些数据元遵从标准数据元词典中的标准数据元定义,具体实现过程为:在传统的业务流程模型或者用例模型中,这些数据项是输入输出业务信息的一个属性,其数据类型可以取int、char等标准类型,但是在模型驱动的方法论中,数据类型可以取某一个已经存在的类,比如标准数据元词典模型中的某个标准数据元,我们利用这一特征,利用普通数元的数据类型来表达该属性和标准数据元之间的血缘关系,即设置该普通数据元的数据类型为标准数据元词典模型中其引用的标准数据元,示例如图4所示。

图中有两个模型:a.数标准典模型,包含抽象数据元词典和标准数据元词典;b.业务流程模型。作为示例标准数据元词典展示出了“合同签订日期”“订单提交日期”“合同额”“招标人身份证号”“企业法人代表身份证号”“合同编号”“订单编号”等七个标准数据元。我们要为业务流程模型中的“合同编号”属性和标准数据元词典中的“合同编号”标准数据元之间建立遵从关系。步骤为:

(1)选中“业务流程模型-合同详情数据对象”的“合同编号”普通数据元;

(2)点击右下角type标签中的“搜索”图标,打开“Select Type”搜索框;

(3)在弹出框中,选择“数据标准模型-标准数据元词典”并展开;

(4)在列表中选中“合同编号”标准数据元;

(5)点击“OK”,完成设置,此时即设置业务流程模型中的“合同编号”属性的数据类型为数据标准模型-标准数据元词典中的“合同编号”标准数据元,在二者之间通过前者的数据类型建立了遵从关系,使得前者的取值、编码、长度、精度等值域信息遵从于后者的定义。

4.3  业务对象模型中贯彻数据词典

业务对象由属性构成,这些属性也是普通数据元,与业务过程模型相同,其语义和值域都要遵从相应的标准数据元,其遵从关系也是通过将该普通数据元的数据类型设置为其遵从的标准数据元实体表达的,即业务对象的属性的数据类型取其遵从的标准数据元。

4.4  在领域模型和数据模型中贯彻数据词典

领域模型由领域对象等元素组成,数据模型包含概念模型、逻辑模型、物理模型,其实体都是由普通数据元构成,与业务过程模型的处理方式相同,不再重复论述。

5  结  论

编制数据词典是确保数据全域一致性,实现数据共享、业务协同的重要基础性工作,是企业实现数字化转型的重要前提,MDA方法论实现了业务需求的结构化描述,数据词典的制定是模型驱动架构设计方法的重要补充,二者结合能够确保数据词典在信息化过程中切实落实到系统实现中去,而不是停留在桌面上、条文中。本文提出了一种制定数据词典的方法并且提出在模型驱动架构方法论下数据词典的贯彻落实策略,该方法能够做到确保数据词典在分析、设计、实现过程中全面得到贯彻,确保数据词典在代码、数据中全面得到贯彻,确保数据词典在对业务全覆盖、无遗漏、不重复、无冲突,是一种可行的、有实践价值的数据词典构建方法。

参考文献:

[1] 张鹏,李忠民.企业级数据模型全域一致性的一种解决方案 [J].智库时代,2018(35):135-136+139.

[2] 弗兰克尔.应用MDA [M].鲍志云,译.北京:人民邮电出版社,2003.

[3] KLEPPE A,WARMER J,BAST W.解析MDA [M].鲍志云,译.北京:人民邮电出版社,2004.

[4] 郭栋,王伟,曾国荪.一种基于微服务架构的新型云件PaaS平台 [J].信息网络安全,2015(11):15-20.

[5] 李苏璇.基于微服务架构的SaaS应用构建方法研究 [D].广州:华南理工大学,2016.

[6] 张天,张岩,于笑丰,等.基于MDA的设计模式建模与模型转换 [J].软件学报,2008(9):2203-2217.

作者简介:李忠民(1967—),男,汉族,山东聊城人,技术专家,中级职称,本科,研究方向:银行应用系统设计开发、大型互联网平台架构设计、大数据应用系统设计;高晓欣(1982—),女,汉族,河北保定人,中級职称,硕士研究生,研究方向:项目过程管控、大型互联网平台架构设计。