Relationship Definition and Representation

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.