Meta-Object Facility (MOF)
The Meta-Object Facility (MOF) is a set of standard interfaces that can be used to define and manipulate a set of interoperable meta-models and their corresponding models.
The MOF is intended to support a range of usage patterns and applications. To understand the possible usage patterns for the MOF, you need to understand is the two viewpoints for the MOF:
- Modeling viewpoint: The designer's viewpoint, looking "down" the meta levels. From the modeling viewpoint, the MOF is used to define an information model for a particular domain of interest. This definition is then used to drive subsequent software design and/or implementation steps for software connected with the information model.
- Data viewpoint: The programmer's viewpoint, looking at the current meta-level, and possibly looking up at the higher meta-levels. From the data viewpoint, the MOF (or more accurately, a product of the MOF) is used to apply the OMA-based distributed computing paradigm to manage information corresponding to a given information model. In this mode, it is possible for a CORBA client to obtain the information model descriptions and to use them to support reflection.
The MOF specification is intended to provide an open-ended information modeling capability. The specification defines a core MOF model that includes a relatively small set of constructs for object-oriented information modeling. The MOF model can be extended by inheritance and composition to define a richer information model that supports additional constructs. Alternatively, the MOF model can be used as a model for defining information models. This feature allows the designer to define information models that differ from the philosophy or details of the MOF model. In this context, the MOF Model is referred to as a meta-metamodel because it is being used to define metamodels such as the UML.
Also see the Common Warehouse Meta-Model (CWM).
Organization: Object Management Group
More information: MOF page on the OMG website
More on the general topic: Common Warehouse Metamodel (CWM)