| Startseite | Über mich | Gästebuch | Impressum | Seitenindex |
![]() ![]() 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.
Figure 1: Example for a package owning a UML model with three classes.
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.
Figure 2: OMG metadata conceptual four-tier architecture which is adapted from the illustrations in [OMG02, pages 58-59].
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. 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", 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", [ 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) 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]:
|