CMPI provider development for z/OS
The system-specific management data for the CIM Schema and system-specific Schema extension classes is provided through management instrumentation. Some management instrumentation is already provided by z/OS® CIM (see z/OS Management Instrumentation for CIM). It is also possible to develop more management instrumentation for other z/OS resources that are not accessible through the existing z/OS management instrumentation.
You can implement management instrumentation by developing a provider. A provider is a dynamic load library that implements an interface. It also contains the program code that is used by the CIM server to interact with the system resource that is described by a certain CIM class, for example CIM_Processor. Providers are registered with the CIM server for a defined CIM class. This registration allows the CIM server to route all client requests directed against this class to the provider for interacting with the resource. A provider logically acts as an extension of the CIM server for interfacing directly with the managed resources.
Providers are the standard concept for developing management instrumentation, though this purpose of providers is not explicitly mentioned by the various CIM and WBEM standards available from the DMTF. The Common Manageability Programming Interface (CMPI) technical standard was defined by The Open Group to allow for developing providers independently from a specific CIM server implementation.

CMPI is a C-based programming interface for providers that are designed for binary compatibility. All management instrumentation included with the z/OS CIM server was developed following the CMPI standard. CMPI is the only supported provider programming interface for the z/OS CIM server. Documentation about the CMPI Technical Standard is available from The Open Group and is not repeated in any documentation available for z/OS. Developers of management instrumentation for z/OS need to be familiar with the CMPI and CIM/WBEM standards. The information that is contained here explains the specific aspects that need to be considered for developing CMPI providers for z/OS:
- Obtain the required header files
To be able to develop a CMPI provider for z/OS, a set of C header files is required that define the CMPI interface. Due to legal implications with the OpenSource nature of these files, they are not provided together with z/OS CIM, but must be obtained from their original location at The Open Group instead.
Due to the CMPI interface design, you need not link a CMPI provider to any library of the z/OS CIM server. Only the header files are needed for developing a CMPI provider library.
See Obtaining the required header files for more information.
- Follow general aspects of developing a provider
- Expose a provider initialization and function
signatures
(see Preparing provider initialization and function signatures)
- Consider security aspects
- Convert EBCDIC provider data into UTF-8
- Follow the guidelines for installing third-party
providers
(see Provider installation)
- Register the provider with the CIM server
- Optionally use the out-of-process support for providers