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

Provider Implementation
The Provider Programming Interfaces
Chapter 470
The Provider Programming Interfaces
This section discusses the provider interfaces at a general level. Specific
information about the functions, their interface, arguments and data
types, can be found in the HP WBEM Services Software Developer’s Kit
documentation in the /opt/wbem/html directory.
Relationship to Client Operations
The interfaces of the Provider API are the mechanism by which the CIM
Server passes requests from clients onward to providers, which then
manipulate the actual system resources modeled (represented) by CIM
objects. The operations that clients can request generally correspond to
the functions of the provider interfaces. However, it is important to
remember that they are not identical. For example, the client operations
getProperty and setProperty are converted by the CIM server to calls
to the Instance Provider functions getInstance() and
modifyInstance(), respectively.
General Considerations
All providers implement the CIMProvider interface (initialize()
and terminate()).
A provider must implement (be declared as a C++ derived class of)
one or more other interfaces: either the CIMInstanceProvider or the
CIMMethodProvider interface. A single provider can implement both
of these:
#include <Pegasus/Provider/CIMInstanceProvider.h>
#include <Pegasus/Provider/CIMMethodProvider.h>
class MyProvider : public CIMInstanceProvider, public
CIMMethodProvider
All methods in an interface must be implemented; if a method is to
be unsupported, it should throw a CIMNotSupportedException
exception.
A provider may service more than one class, but there can be at most
one instance provider for a given class, and it must "know about" all
instances of the class(es) that it services.