Previous Table of Contents Next


2.3 The Meta-Object Facility

   OMG’s Meta-Object Facility (see http://www.omg.org/technology/documents/formal/mof.htm) specifies a small but complete set of modeling concepts that can be used to express information models. In line with the OMG’s commitment to CORBA, the MOF standard also provides a mapping from these modeling concepts to CORBA IDL to support a repository of instances of that model. Although not part of the MOF standard, some MOF tools (such as DSTC’s dMOF product) also generate the code for the model-instance repository.

   There are a number of essential concepts used in MOF modeling. A Package is used to encapsulate a collection of related Classes and Associations. Packages can also contain simple type definitions, equivalent to those available in CORBA IDL. Classes exist in the commonly-used sense of the word, describing an object and its properties. These properties are represented through Attributes and References, which can be inherited using a multiple-inheritance system based on that of CORBA IDL. Attributes have a name and a type, selected from the CORBA type system1. This includes a range of types from basic types such as integers, strings, and booleans to more complex types such as enumerations, and through to structured types. In addition, attributes have both upper and lower limits on the number of times that they can appear within a class instance. An Association is used to represent a relationship between instances of two classes, each of which plays a role within the association. Associations can have the additional property of containment; an association represents a containment relationship if one of the participant classes does not exist outside the scope of the other. A Class participating in an association can also contain a Reference to the association. A reference appears much like an attribute, but reflects the set of class instances that participate in the Association with the containing class instance.