百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

元数据管理--元模型(元数据与数据模型的区别)

liebian365 2025-01-31 13:57 14 浏览 0 评论

调研元数据管理,绕不开元模型的概念。元模型在架构设计领域也有举足轻重的作用。也有着本文整理分享如下内容,帮助大家更好的理解元数据管理、元模型概念。

0.概要

1.背景

2.MDA

3.MOF

4.CWM规范

5.CWM元模型的包结构

6.模型标准和分类

7. 元模式架构设计实践(华为ROMA

0 概要

要实现企业元数据管理,需要定义一个符合存储企业数据现状的元数据模型,且这个模型有不同粒度和层次的元模型,有了层次和粒度的划分,未来元数据进行批量管理后就可以灵活的从不同维度进行元数据分析,如企业的数据地图、数据血统都是基于此实现的。

将梳理出的信息通过UML建模处理就得到了元模型,在元模型中有包、类、属性、继承、关系。创建元模型的时候也可以参考CWMCWM定义了一套完整的元模型体系结构,但它是用于数据仓库构建和应用的元数据建模。

1. 背景

现在有很多数据仓库产品,它们对元数据都有自己的定义和格式,因此创建、管理和共享元数据很耗时而且容易出错。要解决上面这些问题,必须用标准的语言描述数据仓库元数据的结构和语义,并提供标准的元数据交换机制CWM就是满足这些条件的一个规范。OMG在1996年采用了MOF(Meta Object Facility),并不断完善之。1997年采用了UML。OMG在2000年发布了CWM规范,旨在推动数据仓库、智能商务和知识管理方面元数据的共享和交换。主要目的是在异构环境下,帮助不同的数据仓库工具,平台和元数据知识库进行元数据交换。这三个标准:UML、MOF和CWM形成了OMG建模和元数据管理、交换结构的基础,推动了元数据标准化的快速发展。CWM 模型既包括元数据存储,也包括元数据交换,它是基于以下 3 个工业标准制定的。

·UML(Unified Modeling Language):统一建模语言,定义了表示模型和元模型的语法和语义,是OMG的一个建模标准;

·MOF(Meta Object Facility):元对象工具,是OMG关于元模型和元数据库的一个标准;提供在异构环境下对元数据知识库的访问接口为构造模型和元模型提供了可扩展的框架,并提供了存取元数据的程序接口;
·XMI(XML Metadata Interchange),XML元数据交换,是OMG关于元数据交换的标准;

2. MDA

2.1. 定义

MDA(Model Driven Architecture)是一种基于诸如统一建模语言(UML)、可扩展标记语言(XML),和公共对象请求代理体系结构(CORBA)等一系列业界开放标准的框架,因此,它具备软件设计和模型的可视化、存储和交换的功能。

MDA能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储存。

MDA能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储存。

MDA环境下的系统开发方式就是在开发活动中通过创建各种模型精确描述不同的问题域,并利用模型转换来驱动包括分析、设计和实现等在内的整个软件开发过程。

2.2. 三种建模方法

第一种建模方法就是著名的统一建模语言(Unified ModelingLanguageUML),它包括各种软件建模所需的子语言。UML主要的子语言用于表达类图、活动图与状态图。
第二种建模方法是元对象工具(Meta Object FacilityMOF),它是作为UML构造的一个子集而建立的,具有足够的表达能力来表达重要的模型。
第三种建模技术是公共仓库元模型(Common Warehouse MetamodelCWM),它标准化了数据仓库应用程序的生命周期(例如,设计、构建和管理)

2.3. 三种模型层次

MDA开发过程,可从三个不同的层次建立系统模型。
第一个层次模型是
计算无关模型(Computational Independent ModelCIM),该模型关注于业务环境和需求,而不考虑计算环境。该模型通常由业务分析人员创建,展示了系统的业务模型,可以理解为系统需求
第二个层次为
平台无关模型(Platform Independent ModelPIM),该模型考虑在计算系统环境中的业务逻辑表示,但不关注具体的实现平台。该模型通常由系统架构师创建,关注系统功能,可以理解为分析模型
第三个层次为
平台相关模型(Platform Specific ModelPSM),该模型关注于如何在特定平台(JavaEE)下如何实现业务逻辑;可以理解为设计模型

MDA的价值在于CIM可以通过简单的映射转换成PIM。同样,PIM也可以映射成不同平台的PSM,而PSM则可以最终转换成具体的实现代码。
基于MDA的开发过程,业务人员首先通过业务领域的分析和建模构造CIM以描述需求;之后结合相关的标准规范将CIM转换为PIM;在PIM基础上,针对不同的实现环境,可以构造出不同的PSM;最后将PSM转换成目标代码,完成开发过程。

2.4. 四个规范

MDA主要包含以下4个规范:
1)元设施(Meta of FacilityMOF)MOF提供了一个元数据的管理框架以及一组元数据服务,使得模型系统和元数据驱动系统的开发和互操作成为可能。在MOF中提出了4层模型的概念,分别是运行时层(MO)、模型层(M1)、元模型层(M2)和元元模型层(M3)
2)UMLUML是一种通用的建模语言,得到了主要的面向对象和组件方法的广泛支持,并且能够被应用到所有的应用领域和实现平台。
3)元数据交换(Metadata InterchangeXMI)XMI定义了XML标记如何表示序列化的MOF模型。其目的是为了便于UMI。建模工具之间的数据和元数据交换,并在多层分布式环境中提供元数据存储机制。
4)公共仓库元模型(Common Warehouse MetamodelCWM)CWM的主要目的是允许在分布式异构环境中对仓库工具,仓库平台和仓库元数据知识库进行仓库和业务智能元数据的交换。
除了以上4个规范,MDA还有两个重要的子规范:
1)对象约束语言(Object Constraint LanguageOCL)OCLUML的一个子规范。它是一种易于使用的形式化语言,其语义等同于一阶逻辑,其目的是为了描述UML模型中的约束。OCL是保证模型精确性的重要手段,被广泛用于MOF中的4层模型中,除了描述模型约束,还可以用来定义模型转换规则。
2)模型的查询、视图、转换(Query/View/TransformationQVT)QVT是模型转换的标准。它定义了两种描述性的模型转换语言:关系(Relations)和核心(Core),以及两种命令式的模型转换机制:操作映射(Operational Mappings)和黑盒(Black Box)

3. MOF

OMG的模型体系规范为元数据管理提供了基础,所以整个元数据管理设计的关键应该以模型体系规范为指导。

OMG提出的CWM(Common Warehouse Metamodel)规范对数据仓库相关的所有模型进行了描述。规范本质上是针对数据仓库领域的规范,按照OMG的模型体系来看,模型的抽象层次还是太低。如果继续提高抽象层级,MOF规范位于模型体系最底层,所有模型体系规范的基础都应该是MOF(Meta Object Facility)规范,UML,CWM都是由MOF扩展而来。基于MOF的还有模型交换的规范XMI,为不同元数据交换提供了很好的模型基础。

那么若整个元数据围绕MOF设计和扩展,不用修改元数据管理核心部分,就可以适应元数据种类的不断扩展。



3.1. MOF定义

MOF (Meta Object Facility) 称为元对象设施或者元对象机制,是OMG 组织为了帮助销售商、开发者和用户更好的使用元模型和元数据技术而制定的。

MOF最初是OMG( Object Management Group, 对象管理组织) 1996年一个征求建议书(RFP, Request For Proposal)中提出的。

2002MOF成为OMG建模系列规范中的一员, 2005MOF规范成为ISO(ISO/IEC 19502)的标准。因此,MOF也可以称为MOF规范或者MOF标准。

MOF 规范对应着一个MOF model,它实际上也是一个元元模型(meta meta-model),它定义了描述元模型的语言并用这个语言描述了自身。虽然MOFmodel 是一个强大的描述大量的信息模型的建模语言,但是它不是最终的建模语言,更多的使用MOF 是把它作为一个规范和工具,去设计和实现更优秀的元模型建模系统。

3.2. 四层元模型框架

为了描述某一特定的模型,需要描述组成该类模型的建模结构集,MOF能对建模结构进行描述。MOF4层元模型架构提供一组建模元素以及使用这些元素的规则。四层元模型是OMG组织指定的建模语言体系结构。这种体系结构是精确定义一个复杂模型语义的基础,通过递归地将语义应用到不同层次上,完成语义结构的定义,为元模型扩展提供体系结构基础,为元模型实现与其他的基于四层元模型体系结构的标准相结合提供体系结构基础。

MOF 方法的核心是提供一种可扩展的元数据管理方式:它提供了一种支持各种元数据的框架,从而允许按需添加新的类型的元数据,其实现的方法是对元数据分层。MOF 的分层元数据结构是一种典型的四层建模结构。这些层次分别为M0M1M2M3

1. M3层,元元模型层

MOF为定义元模型提供基本的模型结构组件。这些元素包含类、属性、关联等。

2. M2层,元模型层

M3层的元素组合实例,它的元素包括内容模型中文件对应的类、文件的属性、内容模型之间的关系,类型等。

3. M1层,模型层

利用M2构建的元模型元素,来描述具体业务模型。包含各类模型,它们的结构是元模型层结构的实例。如File类、Folder类。

4. M0层,对象和数据,体现现实世界中的事物对象

模型构造的实例。如:文件 ”详细设计说明书.doc”、文件夹“我的文档“等。

为什么要抽象出上面两层,则是为了支持各种不同的模型和元模型。

MOF 元数据结构有一些区别于其它四层建模结构的重要的特性:

1 MOF自身模型是面向对象的, 其建模结构与 UML对象建模结构一致。

2 MOF元数据结构的层次不是固定的。典型的是四层,但也可以多于或少于四层。层数的选择主要依赖于MOF的部署方式。

3 MOF没有要求具体的层次。MOF的层次纯粹是为了理解不同类型数据和元数据之间的关系而设立的。由于没有固定的层次,为了避免混淆,常把 MOF 自身模型作为最高的层次,命名为 Mnn 为层数),其它模型根据其与 MOF 自身模型的关系依次命名为 Mn-1,…,0

4MOF规定M3层的元素必须定义为M3层本身概念的实例。只要每个元素都可以归类到一个元元素,可以通过元元素访问元数据,那么就可以创建任何模型,描述任何系统。

3.3. MOF定义的元素集合

MOF 的元元模型为元模型提供可以使用的元素集合,包括类、协作关系、数据类型、常量和约束等。通过MOF元元模型提供的元素集合,元模型及其以下模型可以利用这些元素组合成更多也更复杂的大粒度的元素,以适应建模的需要。

MOF的层次关系包括两种,M3M2M1M0中上层模型对下层模型的关系是定义与约束的关系,同时下层模型对上层模型是继承和包含的子集关系。M0M1M2M3的子集关系如图.

1先后定义的顺序,就像植物生长一样,最上面(里面)的一定先有。

2、范围的包含关系,下层模型从上层模型衍生出来,所以下层模型的内容范围一定包含上层模型并多于上层模型。

4. CWM规范

CWM为数据仓库和商业智能(BI)工具之间共享元数据,制定了一整套关于语法和语义的规范。它主要包含以下四个方面的规范:

?CWM元模型(Metamodel):描述数据仓库系统的模型;

?CWM XMLCWM元模型的XML表示;

?CWM DTDDW/BI共享元数据的交换格式

?CWM IDLDW/BI共享元数据的应用程序访问接口(API

5. CWM元模型的包结构

CWM元模型主要包括四层:基础包Foundation,资源包Resource,分析包Analysis和管理包Management

5.1. 基础包

基础包主要定义了为CWM其它包所共享的一些基本概念和结构,它包含的子包有:

·Business Information:定义了面向业务的通用信息,比如负责人信息等;

·Data Types:定义了其它包用以创建自己所需的数据类型的元模型组件;

·Expressions:定义了CWM其它包定义表达式树所需的元模型组件;

·Keys and Indexes:定义了描述关键字和索引的共享元模型;

·Software Deployment:描述一个软件在数据仓库中如何被使用的元模型;

·Type Mapping:支持不同系统之间数据类型的映射的元模型;

5.2. 资源包

资源包主要定义了一些描述常用的数据源/目标的元模型,它包含的子包有:

Relational:描述通过关系型接口访问的数据库的数据模型和元模型,比如RDBMSODBCJDBC等;

Record:描述记录的基本概念和结构的元模型,这里记录的概念很广泛,它可以描述任何结构化的信息,比如数据库的一条记录、文档等;

Multidimensional:描述多维型数据库的元模型;

XML:描述用XML表示的数据源和数据目标;

5.3. 分析包

分析包主要定义了一些描述数据仓库工具的元模型,它包含的子包有:

Transformation:定义数据仓库中抽取转换规则的元模型,它包含对各种类型数据源之间的转换规则的描述;

OLAP:对OLAP工具和应用进行描述,并定义了它到实际系统的映射;

Data Mining:对数据挖掘工具和应用进行描述;

Information Visualization:定义了问题领域中有关信息发布或者信息可视化的元模型;

Business Nomenclature:对业务数据进行描述,比如业务术语及其适用范围等;

5.4. 管理包

管理包主要定义了一些描述数据仓库运行和调度信息的元模型,它包含的子包有:

Warehouse Process:描述数据仓库中抽取转换规则的执行过程,也就是各个转换规则的触发条件;

Warehouse Operation:描述数据仓库日常运行情况的元模型;

6. 模型标准和分类

6.1. 概念

·M3是元元模型用于定义元模型,提供基础模型快速组装一个元模型包,例如定义元模型需要的领域、类、属性、关系等等;

·M2是元模型,是M3的实例,是一种模型的规范,具体来说就是描述组成模型的元素和元素之间的关系,如关系数据库元模型,从库到表、实例、表、字段、索引之间的关系;

·M1是模型,是用于描述数据的数据,比如一本书的目录信息(作者、ISBN、价格等),一般对应到物理表的表字段、API响应的字段等;

·M0是基于此模型的对象,也就是物理世界中的数据,一般对应到物理表中的数据。

四层的内容解释如下:

·数据层是学生记录(Record)的实例,即具体的某个学生;

·模型层描述学生这个记录类型的内容,它有一个名字(“Student”)和两个字段(Field),每个字段都有一个名字和类型,比如第一个字段的名字是“name“,字段类型是String

·元模型层对Record这种类型进行定义,在这一层, Record元类metaClass的一个实例,一个Record拥有两个元属性metaAttribute,第一个name定义它的名字,是String类型,第二个fields定义它包含的字段集,字段集中的成员是Field类型。类似的,元类field应该也包含两个元属性:名字name和类型type

·元元模型层的结构是基本固定的,它将所有概念抽象为以下这些组件:元类meta-Class、元属性meta-Attribute和元关联meta-Association,并定义了元类之间的关系,主要包括:包含(Contains),继承(Generalizes),类型引用(IsOfType)和依赖(DependsOn);

理论上,还可以再向上抽象,但由于元元模型层是自描述的,所以四层就足够了。至于为什么要抽象出上面两层,则是为了支持各种不同的模型和元模型。

业界比较认可分类方式,主要分为:技术模型,业务模型两种。

技术模型包括:字段名称、字段长度、数据库表结构、API描述、消息描述、文件描述等。技术模型通常通过自动化的任务完成对模型的采集,也可以通过文件导入等其他方式完成模型的获取,如下是关系型数据库的样例供参考;

业务模型包括:业务名称、业务定义、业务描述、安全策略等给其他使用者能够看懂的业务属性,使用者可根据自己的业务线或者领域快速定位到自己想要获取的数据模型,通如下是业务模型的样例包供参考;

6.2. 模型关联

将业务模型与技术模型关联起来,让技术语言走向业务语言,通过工具提供快速、稳定、多样的关联显得非常的重要。

在整个MOF框架中,M3-元模型是整个模型管理的核心, 那么如何构建“可配+多样+稳定”模型采集框架就很关键,我们可以参考如下原则:

lM3元模型能力图形组件化,通过拖拽方式完成对元模型包的构建;

l同类型元模型下的多套采集适配器共用“一套程序”,实现各种介质中的模型与关系进行采集与解析,重点用于对技术模的多样化采集,如下是关系型数据库的适配样例图


元模型包设计过程中支持跨包关联,即当前元模型可以和其他元模型发生依赖关系,模型采集完成后自动实现跨包关联;

7. 元模式架构设计实践(华为ROMA)

业务模型

元模型的设计体现了设计者对整个业务系统的理解程度,从业务视角整理出的数据分类,这里我们可以称之为业务模型,它使得整个组织统一数据语言,是业务流打通、消除信息孤岛和提升业务流集成效率的关键要素。在设计业务模型之前,需要对组织的业务做端到端的梳理,例如有哪些业务范围、业务过程、业务发生主体、业务事件等等,然后将以上整理内容做归纳总结,设计出符合自己组织特有的业务模型(元模型),这里以智慧城市的场景为例,整理设计归纳出数字政府的业务模型

通过ROMA ABM可视化元模型配置能力完成数字政府业务模型的M2元模型配置、属性配置,为了帮助大家更好的理解元模型的设计,通过数字政府业务模型对M2M3层做详细说明, M3层为M2层建模提供通用的元模型设计元素,具体参考如下:

M3层设计结构如下图:


M2层设计结构如下图:

通用属性

M2层除了对业务条线做了抽象以外,还定义了业务属性,帮助使用者获取库表、API等底层结构依赖的业务附加属性,这些类内容通过底层的系统是无法获取的,具体需要附加哪些属性,需要数据管理者结合业务场景做梳理,如下是数字政府业务模型包中提供的通用属性,供参考;

总结

通过上面的数字政府业务模型我们其实不难发现,模型管理的核心能力就是从抽象逐步分解到实现,M0M1M2M3对象在真实系统中的关系可以总结如下:

M1M0层抽象,M0代表实际存储的数据,M1代表存储这组数据需要的结构,通常对应到业务系统中就是一组表结构、一组API、一组文件等等;

M2M1层的抽象,M2代表对M1这些表结构、API、文件等的存储模型,M2层虽然是元模型,但同时M2也是数据,因此元模型也需要统一的存储结构并且具备扩展性;

M3M2层的抽象,M3代表对M2的抽象,具有通用型,就和设计工具类似,可以设计各式各样的元模型;


基于上述原则从而形成下列模型采集过程:

经过以上步骤处理以后,将本身不可读的表、字段、API等信息全部转化为带有业务语义的模型,让各个部门、各个系统、各个开发者在用数的查找上更简单、效率更高,彻底实现技术模型到业务模型的扭转。

相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: