概观
结构
MOF是一个封闭元模型结构,它定义描述自身的M3模型。MOF是严格的元模型架构,每一层的每个模型元素都严格对应的上层模型元素。MOF只提供定义结构或语言、数据的
抽象语法
的方法。定义元模型时,MOF如同EBNF层定义编程语言语法。MOF是用于定义元模型的域特定语言(DSL),就像EBNF定义语法的DSL。同样,MOF也可以在自身定义。
MOF使用MOF::Classes (不要与UML::Classes混淆)在元层上定义概念(模型元素),如同众所周知的面向对象。MOF可用于定义面向对象元模型(如UML)以及非面向对象元模型(如Petri网或Web服务元模型) 。
截至2006年5月,OMG定义了两种类型的MOF:
EMOF(基本MOF)
CMOF(完全MOF)
2006年6月,征求建议书定义了第三种:SMOF(语义MOF) 。
Eclipse Modeling Framework中定义的ECore或多或少向OMG的EMOF靠拢。
另一个相关的标准是OCL,一种用谓词逻辑定义模型的限制条件的正式语言。
一个非常重要的新标准是QVT,描述查询,视图和基于MOF的模型变换的方法。
MOF是一个国际标准:ISO/IEC 19502:2005 Information technology—Meta Object Facility (MOF)
MOF可视为写元模型的标准,例如,建模领域专用语言的抽象语法。Kermeta扩展MOF,可以执行附在EMOF元模型的动作,从而可以建模DSL操作语义并很容易得到对它的解释。
JMI定义Java API,控制MOF模型.
OMG的MOF不能与托管对象格式(Managed Object Format)混为一谈,托管对象格式由分布式管理任务组(DMTF)在公共信息模型(CIM)基础规范的第3节中定义。