Trennlinie
Navigation: >Startseite >Informatik >Modellierung >>Meta Object Facility
Trennlinie
Meta Object Facility (MOF)
(Based on the thesis [Kon04])

MOF is a specification also developed by the OMG that covers an object framework for ”specifying, constructing, managing, interchanging, and integration” [OMG02, page 58] of metadata as well as distributed repository architectures. In general, it represents an abstract language and further a framework for the platform-independent usage of metamodels. Also, MOF regularises the syntax of the metamodels and the access to them. A metamodel represents generally in the term of MOF an abstract language for metadata [MOF02, Preface]. Thus, MOF focuses on specification of metamodels, which can be expressed by UML, and generation of CORBA interfaces [MOF02, pages xv-xvi].

Regarding to this, the MOF object framework includes also the foundation for modelling, interoperability, portability and interchanging of platform-independent metamodels and their instances. In addition, the framework supports ”any kind of meta data and to allow new kinds of meta data to be added as required” [OMG02, page 58]. Examples are UML, Common Warehouse Metamodel (CWM) and the MOF itself [MOF02, page xi]. With respect to metamodel accessing, the MOF provides a set of ”reflective” Common Object Request Broker Architecture (CORBA) IDL18 [MOF02, page xi] interfaces which enable interoperability and manipulating as well as sharing of distributed meta objects across different vendor products.

Trennlinie

UML

Figure 1: Example for a package owning a UML model with three classes.

Trennlinie

Link Icon

Thus, the MOF specification constitutes a basis of metamodel definitions and defines general requirements of the implementation of metadata APIs in repositories [MOF02, page xi]. The MOF concept is based on a four-tier architecture for metadata modelling which is also called ”OMG Meta Data Architecture” [OMG02, page 58] as shown in figure 2. This example is based on the UML model in figure 1.

Trennlinie

MOF

Figure 2: OMG metadata conceptual four-tier architecture which is adapted from the illustrations in [OMG02, pages 58-59].

Trennlinie

According to Bauer and Günzel, four layers are essential to model suitably complex information systems [BuG01, page 333]. Based on the MOF specification [MOF02, pages (2-1)-(2-4)] and according to the elaborated example in figure 2, the four meta-levels will be explained in the following:

Meta-level M3: The MOF Model defines the generic modelling structure (meta-metamodel) that can be used for metamodels, also called meta-metadata, in M2 or for itself [MOF02, page 3-2]. In other words, it contains the syntax determination for defining various metamodels. For example, figure 2 shows just the meta-metamodel constructs Meta-Class and MetaAttr for modelling metamodels in M2. Furthermore, the MOF model is an instance of itself. Thus, the MOF meta-metamodel can be verified itself for correctness [Jec99].

Meta-level M2: The M2 Layer defines the abstract metamodels. It contains ”the structure and semantics of metadata” [MOF02, page 2-2] without any specific notation or syntax. For example the BusinessMetamodel in Business Metamodel or Class in the UML Metamodel are realised by elements of the superior MOF Model. Consequently, the metamodels in level M2 are based on the defined abstract language in level M3.

Link Icon

Regarding to these facts, the metamodels in M2 are instances of the MOF Model (see figure 2). The following ”‘RecordTypes’ metamodel” example is adapted by the example in [MOF02, page 2-2]. It is realised by default constructs of the MOF meta-metamodel (compare figure 2 above), which allows only the constructs MetaClass and MetaAttr:

MetaModel( "RecordTypes",
MetaClass ("RECORD",
[
MetaAttr ("name", String),
MetaAttr ("fields", List <"FIELD">)
]
MetaClass ("FIELD", ...)

Meta-level M1: It specifies the subordinated data of the M0 level with a model. This model is an instance of the metamodel in level M2. Such a model describes for instance the data in the BI processing layer which is equivalent to the M0 layer. For example, Cost Accounting is an instance of BusinessMetamodel in the model layer M2 and contains information such as adapted from [MOF02, page 2-2]):

RECORD ("Direct Costs", [
FIELD ("cost category", String)
FIELD ("value", Real)])

Meta-level M0: That level includes the precise data which is based on the model in M1. For example the customers A, B and C represent instances of the model layer Cost Accounting and include the precise data values of Direct Costs (adapted from [MOF02, page 2-2]):

Direct Costs ("Material Costs", 48000,56)
Direct Costs ("Labour Costs", 70550,90)

The idea of the four-tier architecture is to support ”multiple models and metamodels” [MOF02, page 2-2] and to reuse it. With regard to this, the MOF is really a platform-independent concept, because it is not restricted to any modelling paradigm. The MOF 1.4 specification [MOF02] consists of the following parts which based on [OMG02, page 58]:

  • The MOF Model: It defines a set of modelling elements and rules for their use. Based on these default elements, it is possible to construct arbitrary metamodels. Furthermore, the MOF framework is based on the concept and notation of UML. With regard to this, it is also possible to define constraints which based on the OCL (3.1.1) defined in the UML specification [MOF02, page 3-2].
  • MOF to IDL Mapping: This part of the specification describes the ”mapping from a metamodel defined using the MOF Model onto CORBA IDL” [MOF02, page 5-1 ].
  • The reflective Module: The MOF’s reflective interfaces ”create, update, access, navigate and invoke operations on meta data without using metamodel specific interfaces” [MOF02, page 6-1].
Link Icon
Trennlinie

Recent Changes

Valid XHTML 1.0 Strict