Apart from the obvious matter of translation between interfaces, the major problem facing the WBEM client or Operator Interface, or both, is obtaining the semantic knowledge needed to ask the right questions of the WBEM server. The WBEM client knows , for example, how to parcel up a getInstance() request in XML and pass this to the WBEM server; that is easy. However, something needs to have the intelligence to change an operator's request for the number of users currently logged on into a call to get Instance() on the CIM_OperatingSystem class and the extraction of the NumberOfUsers property. This is a particularly simple example because only one property is involved. An operator request could reasonably involve accessing instances of several classes, traversing an association or two and then combining the values of several properties.
One major advantage promised by a unifying technology such as WBEM/CIM is that, if you buy and manage equipment from companies A and B, both of whom use the standard CIM models on their equipment, then the issue of semantic knowledge only needs to be addressed once ”solve it for company A's equipment and you have solved it for company B's.
There are really only three places where this semantic knowledge (sometimes known as "business logic") can reside: in the head of the operator, in the operator interface or in the WBEM client.
I will deal with the first of these here, because it is simple, and defer consideration of the other two until later in this chapter. If the semantic knowledge can be assumed to be in the head of the operator, then a completely generic WBEM client can be built. The operator instructs the WBEM client to invoke the function getInstance() and retrieve the NumberOfUsers property for a particular namespace and the WBEM client does exactly that. There are several such generic clients available, mainly for debugging ”they allow you to debug your model and providers in a controlled manner. Some of these generic clients are described on page 273, and as they are not really applicable for customer deployment, I will not consider them further.