Meta Object Facility
# Meta Object Facility

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.

## Ebenen

Laut Spezifikation benötigt MOF mindestens zwei Ebenen, um von Klassifikation zu Instanz und zurück navigieren zu können. Obergrenzen gibt es keine.

Beispiele für eine verschiedene Anzahl der Ebenen sind:

### zwei Ebenen

    generische, reflexive Systeme (Class - Object)

### drei Ebenen

    relationale Datenbanksysteme (SysTable - Table - Row)

### vier Ebenen

    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.Das Diagramm zeigt eine vereinfachte Sicht auf die M3-Ebene nach MOF.

## Verwandte Standards

Weitere OMG-Standards mit engem Bezug zur MOF sind unter anderem:

* MOF QVT – eine Transformationssprache
* MOF Versioning
* MOF Model to Text Transformation Language
* 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.

