Using the mapping definitions in
The repository partitions have the following characteristics:
The possible import scenarios for a DMTF standard group are:
Any combination of these five scenarios can be initiated by a team that is responsible for mapping an existing source into the CIM repository. There are many other details that need to be addressed as the content of any of the sources changes and/or when the core or common model changes.
Assuming numerous existing sources have been imported using all the import scenarios, now look at the export side. Ignoring the technique partition, the possible scenarios are:
The homogeneous category includes the mapping where the imported syntax and expressions are the same as the exported (for example, software MIF in and software MIF out). The heterogeneous category addresses the mappings where the imported syntax and expressions are different from the exported (for example, MIF in and GDMO out). For the homogenous category, the information can be recorded by creating qualifiers during an import operation so the content can be exported properly. For the heterogeneous category, the qualifiers must be added after the content is loaded into a partition of the repository.
The definition of the heterogeneous category is actually based on knowing how a
schema was loaded into the repository. A more general way of looking at this is to
think of the export process using one of multiple scratch pads. One of the scratch
pads was created when the schema was loaded and the others were added to handle
mappings to schema techniques other than the import source (see
For the technique partition, there is no need for a scratch pad since the CIM metamodel is used to describe the constructs used in the source metaschema. Therefore, by definition, the assumption is that there is one homogeneous mapping for each metaschema covered by the technique partition. These mappings create CIM object for the syntactical constructs of the schema and create associations for the ways they can be combined (for example, MIF groups include attributes).
For the recast partition, there are multiple scratch pads for each of the sub-partitions, since one is needed for each export targets (as shown in the previous figure) and there can be multiple mapping algorithms for each target. The latter occurs because part of creating recast mapping involves mapping the constructs of the source into CIM metamodel constructs. Therefore, for the MIF syntax, a mapping needs to be created for component, group, attribute, etc. into appropriate CIM metamodel constructs like object, association, property, etc. These mappings can be arbitrary. As a specific example, one of the decisions that needs to be made is whether a group maps into an object or a component maps into an object. It would be possible to have two different recast mapping algorithms, one which mapped groups into objects with qualifiers that preserved the component and one which mapped components into objects with qualifiers that preserved the group name for the properties. Therefore, the scratch pads in the recast partition are organized by target technique and employed algorithm.
For the domain partitions, there are two types of mappings. The first is similar to the recast partition in that some portion of the domain partition is mapped into the syntax of another metaschema. These mappings can use the same qualifier scratch pads and associated algorithms that are developed for the recast partition. The second type of mapping facilitates documenting the content overlap between the domain partition and some other model (for example, software groups). These mappings cannot be determined in a generic way at import time; therefore it is best to consider them in the context of exporting. The mapping uses filters to determine the overlaps and then performs the necessary conversions. The filtering can be done using qualifiers which indicate a particular set of domain partition constructs map into some combination of constructs in the target/source model. The conversions would be documented in the repository using a complex set of qualifiers which capture the notion of how to write or insert the overlapped content into the target model. The mapping qualifiers for the domain partition would be organized like the recasting partition for the syntax conversions and there be scratch pads for each of the models for documenting overlapping content.
In summary, pick the partition, develop a mapping, and identify the qualifiers necessary to capture potentially lost information when developing mapping details for a particular source. On the export side, the mapping algorithm checks to see if the content to be exported includes the necessary qualifiers for the logic to work.