The Meta-Object Facility (MOF) is an
Object Management Group (OMG) standard for
model-driven engineering. Its purpose is to provide a
type system for entities in the
CORBA architecture and a set of interfaces through which those types can be created and manipulated. The official reference page may be found at OMG's website.
Overview
MOF was developed to provide a
type system for use in the
CORBA architecture, a set of schemas by which the structure, meaning and behaviour of objects could be defined, and a set of CORBA interfaces through which these schemas could be created, stored and manipulated.
MOF is designed as a four-layered architecture. It provides a meta-meta model at the top layer, called the M3 layer. This M3-model is the language used by MOF to build metamodels, called M2-models. The most prominent example of a Layer 2 MOF model is the UML metamodel, the model that describes the UML itself. These M2-models describe elements of the M1-layer, and thus M1-models. These would be, for example, models written in UML. The last layer is the M0-layer or data layer. It is used to describe real-world objects.
Beyond the M3-model, MOF describes the means to create and manipulate models and metamodels by defining
CORBA interfaces that describe those operations. Because of the similarities between the MOF M3-model and UML structure models, MOF metamodels are usually modeled as UML class diagrams. A supporting standard of MOF is
XMI, which defines an XML-based exchange format for models on the M3-, M2-, or M1-Layer.
Metamodeling architecture
MOF is a ''closed'' metamodeling architecture; it defines an M3-model, which conforms to itself. MOF allows a ''strict'' meta-modeling architecture; every model element on every layer is strictly in correspondence with a model element of the layer above. MOF only provides a means to define the structure, or
abstract syntax of a language or of data. For defining metamodels, MOF plays exactly the role that
EBNF plays for defining programming language grammars. MOF is a
Domain Specific Language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging ...
(DSL) used to define metamodels, just as EBNF is a DSL for defining grammars. Similarly to EBNF, MOF could be defined in MOF.
In short, MOF uses the notion of MOF::Classes (not to be confused with UML::Classes), as known from
object orientation, to define concepts (model elements) on a metalayer. MOF may be used to define object-oriented metamodels (as
UML
The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
The creation of UML was originally ...
for example) as well as non object-oriented metamodels (as a
Petri net or a
Web Service metamodel).
As of May 2006, the
OMG has defined two compliance points for MOF:
*EMOF for Essential MOF
*CMOF for Complete MOF
[
In June 2006, a ''request for proposal'' was issued by OMG for a third variant, SMOF (Semantic MOF).
The variant ECore that has been defined in the ]Eclipse Modeling Framework
Eclipse Modeling Framework (EMF) is an Eclipse-based modeling framework and code generation facility for building tools and other applications based on a structured data model.
From a model specification described in XML Metadata Interchange ...
is more or less aligned on OMG's EMOF.
Another related standard is OCL, which describes a formal language that can be used to define model constraints in terms of predicate logic.
QVT, which introduces means to query, view and transform MOF-based models, is a very important standard, approved in 2008. See Model Transformation Language for further information.
International standard
MOF is an international standard:
;MOF 2.4.2
: ISO/IEC
The International Electrotechnical Commission (IEC; in French: ''Commission électrotechnique internationale'') is an international standards organization that prepares and publishes international standards for all electrical, electronic and r ...
19508:2014 Information technology — Object Management Group Meta Object Facility (MOF) Core
;MOF 1.4
: ISO/IEC
The International Electrotechnical Commission (IEC; in French: ''Commission électrotechnique internationale'') is an international standards organization that prepares and publishes international standards for all electrical, electronic and r ...
19502:2005 Information technology — Meta Object Facility (MOF)
MOF can be viewed as a standard to write metamodels
A metamodel or surrogate model is a model of a model, and metamodeling is the process of generating such metamodels. Thus metamodeling or meta-modeling is the analysis, construction and development of the frames, rules, constraints, models and ...
, for example in order to model the abstract syntax of Domain Specific Language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging ...
s. Kermeta is an extension to MOF allowing executable actions to be attached to EMOF meta-models, hence making it possible to also model a DSL operational semantics and readily obtain an interpreter for it.
JMI defines a Java API for manipulating MOF models.
OMG's MOF is not to be confused with the Managed Object Format (MOF) defined by the Distributed Management Task Force (DMTF) in section 6 of the Common Information Model (CIM) Infrastructure Specification, version 2.5.0.Common Interface Model (CIM) Interface Structure, version 2.5.0
/ref>
See also
* Common Warehouse Metamodel
* Domain-specific language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
* Kermeta
* KM3
KM3 or Kernel Meta Meta Model is a neutral computer language to write metamodels and to define Domain Specific Languages. KM3 has been defined at INRIA and is available under the Eclipse platform.
References
...
* Metamodeling
* Metadata
Metadata is "data that provides information about other data", but not the content of the data, such as the text of a message or the image itself. There are many distinct types of metadata, including:
* Descriptive metadata – the descriptive ...
* Model-driven architecture
* OGML Ontology Grounded Metalanguage (OGML) is a metalanguage like MOF. The goal of OGML is to tackle the difficulties of MOF: linear modeling architecture, ambiguous constructs and incomprehensible/unclear architecture.
OGML provides a nested modeli ...
* Platform-independent model
A platform-independent model (PIM) in software engineering is a model of a software system or business system that is independent of the specific technological platform used to implement it.
The term platform-independent model is most frequently ...
* Platform-specific model
A platform-specific model is a model of a software or business system that is linked to a specific technological platform (e.g. a specific programming language, operating system, document file format or database). Platform-specific models are indis ...
* QVT
* SPEM
Meta-process modeling is a type of metamodeling used in software engineering and systems engineering for the analysis and construction of models applicable and useful to some predefined problems.
Meta-process modeling supports the effort of creati ...
* XML Metadata Interchange
References
Further reading
*Official MOF specification from OMG
*Ralph Sobek, MOF Specifications Documents
*Johannes Ernst, ''What is metamodeling?''
*Woody Pidcock, ''What are the differences between a vocabulary, a taxonomy, a thesaurus, an ontology, and a meta-model?''
*Anna Gerber and Kerry Raymond, MOF to EMF and Back Again.
*Weaving Executability into Object-Oriented Meta-Languages
*MOF Support for Semantic Structures RFP Request For Proposal on SMOF
External links
OMG's MetaObject Facility
{{ISO standards
Specification languages
Data modeling
Unified Modeling Language
ISO standards