元对象机制 元对象机制MetaObject Facility簡稱MOF起源于统一建模语言UML對象管理機構Object Management GroupOMG需要一种元模型结构来定义UML MOF被设计为层次的结构位于顶部的是元元模型层即M层M模型是MOF建立元模型被称为M模型的语言M模型最明显的例子是UML元模型该模型描述UMLM模型描述M层以及M层的要素例如UML模型最后一层是M层或数据层它描述真实世界的物体 除了M模型MOF还提供创建操作模型元模型的方法通过定义CORBA接口描述这些操作由于MOF M模型和UML结构模型相似MOF M元模型通常建模为UML类图MOF的支持标准是XMI它定义一种基于XML的MMM层模型交换格式 MOF是一个封闭元模型结构它定义描述自身的M模型MOF是严格的元模型架构每一层的每个模型元素都严格对应的上层模型元素MOF只提供定义结构或语言数据的抽象语法的方法定义元模型时MOF如同EBNF层定义编程语言语法MOF是用于定义元模型的域特定语言DSL就像EBNF定义语法的DSL同样MOF也可以在自身定义 MOF使用MOFClasses 不要与UMLClasses混淆在元层上定义概念模型元素如同众所周知的面向对象MOF可用于定义面向对象元模型如UML以及非面向对象元模型如Petri网或Web服务元模型  截至年月OMG定义了两种类型的MOF EMOF基本MOF CMOF完全MOF 年月征求建议书定义了第三种SMOF语义MOF  Eclipse Modeling Framework中定义的ECore或多或少向OMG的EMOF靠拢 另一个相关的标准是OCL一种用谓词逻辑定义模型的限制条件的正式语言 一个非常重要的新标准是QVT描述查询视图和基于MOF的模型变换的方法详情参见模型转换语言章节  MOF现在是一个国际标准ISOIEC  Information technologyMeta Object Facility MOF MOF可视为写元模型的标准例如建模领域专用语言的抽象语法Kermeta扩展MOF可以执行附在EMOF元模型的动作从而可以建模DSL操作语义并很容易得到对它的解释 JMI定义Java API控制MOF模型 OMG的MOF不能与托管对象格式Managed Object Format混为一谈托管对象格式由分布式管理任务组DMTF在公共信息模型CIM基础规范 的第节中定义