HP WBEM Services Software Developer's Kit for HP-UX Provider and Client Developer's Guide A.01

Provider Implementation
Provider Design Considerations
Chapter 464
is built (PG_ProviderModule.Location), and the schema element with
which it is associated (PG_ProviderCapabilities.ClassName).
However, for clarity, it is useful to choose names that help to identify the
element. The conventions evident in the previous example show how this
may be done.
Key Values: Uniquely Specifying an Instance
Most providers manipulate instances or instance references (also called
object paths) in some way. The set of all keys of an instance defines the
unique identity of an instance within a namespace of managed objects.
For example, there are possibly many users whose Name is "smith", but
on any given UNIX computer system, there can be only one called
"smith." In order to know exactly which user "smith" we are interested in
(to address email, for example), we must know the name of the system in
question. Therefore, for a user account, a unique identification must
include the SystemName as well as the Name (just as an Internet email
address is specified as username@domain-name). In this example of a
class representing a user account, the SystemName and Name, together,
form a set of key properties that uniquely define each instance. In this
example, the SystemName is said to specify the context (or scope) in
which the Name will be unique. For many classes in the CIM model in
which keys are defined, there will be at least one key property to specify
the scope of the class's other keys.
Keys that specify necessary scope are always propagated from another
class of object, as mentioned in the section on Common Properties in
Chapter 3, under General Schema Use Cases. The SystemName key
present in many CIM classes is propagated from the Name property of the
CIM_System class (or one of its subclasses). When scoping keys exist in a
class definition, the classes from which the scoping keys are propagated
are also specified as key properties. So if there is a SystemName key,
there must be a property specifying the name of the class from which the
SystemName is obtained. This key is the SystemCreationClassName.For
a typical class in the hierarchy of CIM_ManagedSystemElement,
(CIM_LogicalDevice, for example), the full set of key properties might
be:
SystemCreationClassName
The name of the class which has an instance from which the value of
the SystemName property is obtained. This could be, for example,
CIM_ComputerSystem.