HOME

TheInfoList



OR:

The Meta-Object Facility (MOF) is an
Object Management Group The Object Management Group (OMG) is a computer industry standardization, standards consortium. OMG Task Forces develop enterprise integration standards for a range of technologies. Business activities The goal of the OMG was a common portabl ...
(OMG) standard for
model-driven engineering Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract re ...
. Its purpose is to provide a
type system In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer progra ...
for entities in the
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
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 In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer progra ...
for use in the
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
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 The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
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 In computer science, the abstract syntax of data is its structure described as a data type (possibly, but not necessarily, an abstract data type), independent of any particular representation or encoding. This is particularly used in the representa ...
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 m ...
for example) as well as non object-oriented metamodels (as a
Petri net A Petri net, also known as a place/transition (PT) net, is one of several mathematical modeling languages for the description of distributed systems. It is a class of discrete event dynamic system. A Petri net is a directed bipartite graph that ...
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 First-order logic—also known as predicate logic, quantificational logic, and first-order predicate calculus—is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science. First-order logic uses quantifie ...
.
QVT QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group. Overview Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the ...
, 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 ISO is the most common abbreviation for the International Organization for Standardization. ISO or Iso may also refer to: Business and finance * Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007 * 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 ISO is the most common abbreviation for the International Organization for Standardization. ISO or Iso may also refer to: Business and finance * Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007 * 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, 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 Kermeta is a modeling and programming language for metamodel engineering. History The Kermeta language was initiated by Franck Fleurey in 2005 within thTriskellteam of IRISA (gathering researchers of the INRIA, CNRS, INSA and the University of Re ...
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 Distributed Management Task Force (DMTF) is a 501(c)(6) nonprofit industry standards organization that creates open manageability standards spanning diverse emerging and traditional IT infrastructures including cloud, virtualization, network, s ...
(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 Kermeta is a modeling and programming language for metamodel engineering. History The Kermeta language was initiated by Franck Fleurey in 2005 within thTriskellteam of IRISA (gathering researchers of the INRIA, CNRS, INSA and the University of Re ...
* KM3 *
Metamodeling 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 ...
*
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 Model Driven Architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of doma ...
*
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 QVT (Query/View/Transformation) is a standard set of languages for model transformation defined by the Object Management Group. Overview Model transformation is a key technique used in model-driven architecture. As the name QVT indicates, the ...
*
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 The XML Metadata Interchange (XMI) is an Object Management Group (OMG) standard for exchanging metadata information via Extensible Markup Language (XML). It can be used for any metadata whose metamodel can be expressed in Meta-Object Facili ...


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