Previous | Table of Contents | Next |
The MOF is intended to support a wide range of usage patterns and applications. To understand the possible usage patterns
for the MOF, the first thing one needs to understand is the two distinct viewpoints for the MOF:
1. 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.
2. 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 second thing one needs to realize is that this MOF specification is intended to provide an open-ended information modeling
capability. The specification defines a core MOF model that includes a relatively small, though not minimal, 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.
Finally, one needs to understand the purpose and the limitations of the MOF model to the CORBA IDL mapping defined by this
specification. The prime purpose of the mapping is to define CORBA interfaces for information models defined in terms of the
MOF model1 using standard interfaces and interoperable semantics. These interfaces allow a client to create, access, and update
information described by the model, with the expectation that the information will be managed in a way that maintains the
structural and logical consistency constraints specified in the information model definition.
While we anticipate that some vendors will supply tools (for example, IDL generators, server generators, and so on) to support
the development of software conforming to the mapping, provision of these tools is not a requirement of this specification.
The second limitation is that the mapping is only intended to support the MOF model itself; that is, it does not support extensions
to the metamodel or to other unconnected information models. Furthermore, since the IDL mapping is not itself modeled in the
MOF, there can be no standardized support for extending the mapping or defining new mappings. Finally, the IDL mapping in
this specification supports only CORBA IDL. Mappings from the MOF model to other interface definition languages are certainly
feasible, as are direct mappings to programming languages or data definition languages. However, these mappings are beyond
the scope of the first version of the MOF specification.
1. Both extensions to the MOF meta-model that are expressible in the meta-model itself, and unconnected information models
expressed using the MOF meta-model.