一、MOF的定义

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

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

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

符合MOF 规范的元模型具有开放性、扩展性和互操作性。

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

二、四层元模型框架

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

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

1.   M3层,元元模型层 

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

2.   M2层,元模型层 

由MOF构造的实例组成,它的元素包括内容模型中文件对应的类、文件的属性、内容模型之间的关系,类型等。

3.   M1层,模型层 

包含各类模型,它们的结构是元模型层结构的实例。如File类、Folder类。

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

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

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

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

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

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

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

三、MOF定义的元素集合

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

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

上面两个图可以合成下图,

上图表明:

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

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

MOF (Meta Object Facility) 规范相关推荐

  1. Qt 原理-MOC(1)Meta Object Compiler

    Qt程序编译两个步骤: 1. qmake 生成Makefile文件,Makefile.Debug, Makefile.Release 主要是通过MOC(Meta Object Compiler) 元对 ...

  2. 6、Qt Meta Object system 学习

    原文地址:http://blog.csdn.net/ilvu999/article/details/8049908 使用 meta object system 继承自 QOject 类定义中添加 Q_ ...

  3. Qt 如何实现的 Meta Object

    Qt 如何实现的 Meta Object 2009-11-01 11:57 741人阅读 评论(0) 收藏 举报 qtsignalcallbackobjectclasstable (文章转贴自guil ...

  4. html中meta的写法规范,HTML代码meta标签的charset 属性写法及用法

    html代码中标签的charset 属性是用来声明文档使用的字符编码,解决文档出现乱码问题主要靠的就是它,需要注意的是,这个charset一定要写在文档最靠前的第一行标签内,不然,就可能会产生乱码了. ...

  5. Saas.低代码平台建设

    低代码 低代码开发平台(Low Code Platform).是指无需编码或仅用很少代码(No Code or Low Code)就可以快速生成应用程序的平台. 低代码:可视化操作(实体配置,流程配置 ...

  6. 数据仓库、商业智能的体系结构

    来源:http://ajava.org/readbook/db/dbgcsks/12413.html 16.2  数据仓库.商业智能的体系结构 如图16-5所示是数据仓库/商业智能的完整的体系结构图, ...

  7. UML 2.0修成正果

    2009-8-25     作者:马浩海 邵维忠        编辑:李湘琪   点击进入论坛 历时四年之久的UML 2.0规范制定过程终于临近尾声.6月12日,OMG(Object Manageme ...

  8. 元数据核心架构解析(PPT)

    本文为普元大数据产品线产品管理部总监吴艳伟在云计算架构设计群的微课堂分享.如需加入微信群参与微课堂.架构设计与讨论直播,请直接回复此公众号:"加群 姓名 公司 职位 微信号". 大 ...

  9. 2020-12-29 A002-186-2601

    个人期末报告 1.the unified modeling language(统一建模语言) 1.1参考网站 1.2名词解释 1.3联系项目 2.the Meta Object Facility(元对 ...

最新文章

  1. sqlserver 自增ID插入指定数据
  2. SAP MM 为MB51报表增加查询字段
  3. Hdu 1283 钱币兑换问题
  4. 双系统隐藏d盘linux,如何实现双系统的相互隐藏
  5. 十六、MySQL流程控制结构(顺序、分支、循环)详解 强化练习
  6. v4l2 框架下如何设置分辨率_Linux下如何进行FTP设置
  7. iOS绘图系列四:绘制文字和图像CGContextDrawImage,drawInRect:,drawAtPoint:, UIGraphicsBeginImageContext...
  8. Eclipse主题切换
  9. Python——jieba优秀的中文分词库(基础知识+实例)
  10. cad灯具图标_CAD图纸灯具图例
  11. 一维码和二维码开源库zint学习
  12. CSS边框border属性
  13. java 生成雷达图,生成echarts雷达图并传到Server端生成图片
  14. Win11 25188.1000补丁包介绍及下载地址
  15. 微信公众平台开发入门教程[2020版]
  16. 谷歌Chrome浏览器对单个网站清理Cookie
  17. 《禅与摩托车维修艺术》骑行路上的哲学思考
  18. char *const p ,char const *p,const char *p的区别
  19. python 按键精灵脚本_按键精灵的脚本 - 对于重复动作(含键盘鼠标)太好用了
  20. Gram矩阵及其实际含义

热门文章

  1. 定积分的计算(换元法)
  2. 视网膜眼底图的数据库介绍
  3. 三坐标检测难点:创新的“大半径,小圆弧“测量解决方法 2021
  4. 在python中股票的收盘价如何表示_Python:从字典中创建收盘股价的数据框架
  5. GitHub宣布已将所有代码永久封存于北极地底1000年!
  6. Java入门——多态详解
  7. 一体化伺服电机如何清除当前报警
  8. 大学计算机基础-题库刷题-精选
  9. C++ 多继承(有多个父亲)
  10. 《交通大数据理论与方法》