Relationships between managed objects can be shown either explicitly or
implicitly. In either case, names of managed objects are used to identify the
participants in a relationship.
Explicit relationships are part of the definition of the managed objects
making up the relationship. For each such relationship, a specific attribute
is defined (e.g.;SPM_quot;backedUpObjectInstance;SPM_quot;). The value(s) would be the name(s)
of the
other managed objects(s) participating in the relationship. Each managed
object participating in a relationship will have an attribute that names all
of other managed objects in that relationship. For example in a one to one
relationship, each managed object will have an attribute whose value is the
name of the other managed object. This allows the relationship to be
identified from either managed object. Changes to the relationship, that is ,
adding,
removing, and/or changing members, are accomplished by simply changing the
values of the appropriate relationship attribute.
Implicit relationships are shown with special relationship objects. A
relationship object is a managed object which is defined with attributes that
name all of the managed objects making up the relationship. For example, a
relationship object might be used to identify all of the managed objects
associated with providing service to a particular user. Such an object would
then have attributes values naming all of the appropriate managed objects.
This approach allows new relationships to be defined, and related managed
objects created, without any impact on the other participating managed
objects. The disadvantage is that the relationships a managed object
participates in
cannot always be easily determined.
Relationships between managed objects are not limited to a single OS, but can
extend across multiple OSs. The way relationships are defined needs to
reflect this fact. To a large extent, interoperability has to do with those
relationships that span OSs.