元對象機制

元對象機制(Meta-Object Facility,簡稱MOF)起源於統一建模語言(UML)。對象管理機構(Object Management Group|OMG)需要一種元模型結構來定義UML。

MOF被設計為4層次的結構。位於頂部的是元元模型層,即M3層。M3模型是MOF建立元模型(被稱為M2模型)的語言。M2模型最明顯的例子是UML元模型,該模型描述UML。M2模型描述M1層以及M1層的要素,例如,UML模型。最後一層是M0層或數據層。它描述真實世界的物體。

除了M3模型,MOF還提供建立、操作模型、元模型的方法,通過定義CORBA介面描述這些操作。由於MOF M3模型和UML結構模型相似,MOF M3元模型通常建模為UML類圖。MOF的支援標準是XMI,它定義一種基於XML的M3、M2、M1層模型交換格式。

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)基礎規範[1] 的第3節中定義。

相關條目

參考資料

  1. ^ Common Interface Model (CIM) Interface Structure (PDF). [2009-03-28]. (原始內容存檔 (PDF)於2009-12-29).