MOF (Meta Object Facility) 规范(转)

发布时间 2024-01-08 14:16:49作者: 粒子先生

 

一、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、范围的包含关系,下层模型从上层模型衍生出来,所以下层模型的内容范围一定包含上层模型并多于上层模型。

转自:https://blog.csdn.net/teamlet/article/details/28270417