Der Begriff Meta Object Facility (MOF) wurde von der Object Management Group (OMG) eingeführt und beschreibt eine spezielle Metadaten-Architektur. Kernbestandteil ist ein Meta-Meta-Modell. Des Weiteren enthalten die MOF-Spezifikation und assoziierte Standards Wege zur Modellverarbeitung, gewissermaßen einen Werkzeugkasten. Vor allem zu nennen ist das XMI-Format (XML Metadata Interchange) für den Austausch von Metadaten.
MOF überbrückt die Lücke zwischen unterschiedlichen Metamodellen, indem eine allgemeine Grundlage für Metamodelle geschaffen wird. Wenn zwei verschiedene Metamodelle MOF-konform sind, dann können Modelle, die auf ihnen basieren, im gleichen Modelldepot (Repository) ansässig sein. Dies erlaubt dann auch die gemeinsame Verarbeitung, etwa durch Modelltransformation.
Laut Spezifikation benötigt MOF mindestens zwei Ebenen, um von Klassifikation zu Instanz und zurück navigieren zu können. Obergrenzen gibt es keine.[1]
Beispiele für eine verschiedene Anzahl der Ebenen sind:
UML 2 Infrastruktur oder MOF 1.4 Spezifikation (MOF - UML - User Model - User Object)
Die Einstufung von Daten in vier Meta-Ebenen:
M0-Ebene
Konkret. Ausgeprägte Daten.
M1-Ebene
Modelle, zum Beispiel physikalische oder logische Daten- oder Prozessmodelle oder konkrete Ausprägungen von UML- bzw. Objekt-Modellen, welche die Daten der M0-Ebene definieren.
M2-Ebene
Meta-Modelle, definieren, wie die Modelle aufgebaut und strukturiert sind. Zum Beispiel definieren Sprachelemente wie Klassen, Assoziationen und Attribute der UML 2.0, wie konkrete UML-Modelle aufgebaut sein können.
M3-Ebene
Meta-Meta-Modelle (bzw. MOF-Ebene). Abstrakte Ebene, die zur Definition der M2-Ebene herangezogen wird. Die Definition der M3-Ebene erfolgt mit den Mitteln der M3-Ebene selbst, dies stellt den Abschluss einer sonst unendlichen Metaisierung dar.
Verwandte Standards
Weitere OMG-Standards mit engem Bezug zur MOF sind unter anderem:
JMI – Java Metadata Interface zum programmatischen Zugriff auf Modelldepots in Java
MOF to IDL Mapping – Abbildung auf CORBA IDL zum programmatischen Zugriff auf Modelldepots in beliebigen Sprachen und verteilten Systemen
EMOF (Essential MOF) ist eine Untermenge von MOF 2.0. Sie dient dazu, einfache Metamodelle auf einfache Weise – d. h. ohne die gesamte MOF verstehen zu müssen – erstellen zu können.
EMOF ist auch weitestgehend kompatibel zum verbreiteten Metamodell Ecore, das im Eclipse Modeling Framework eingesetzt wird. CMOF (Complete MOF) umfasst dagegen den ganzen Sprachumfang.
Einzelnachweise
↑Meta Object Facility Core. (PDF) Object Management Group (OMG), 3. April 2014, S. 16f, abgerufen am 22. September 2014.