Providers are special classes that communicate with managed resources, such as disk drives and CPUs, to access data. The providers then forward the data to the CIM Object Manager (CIMOM), the primary WBEM agent that coordinates Solaris WBEM Services, for integration and interpretation. These providers can relieve the CIMOM by assuming the task of managing distinct subsets of WBEM resources. Providers use the javax.wbem.provider API to transfer this data. When the CIMOM receives a request from an application for data that is not available in the CIM Object Manager Repository, the CIMOM forwards the request, using the provider interfaces, to the appropriate provider.
Solaris software providers exist for a variety of areas:
Users
Groups
Aliases
Roles
File systems
Disks
Processes
The cron tool
Network configuration
Product registry
Device and system performance monitoring
Providers create, modify, and delete instances rather than classes, which serve as templates for the instances. Instances can exist in persistent storage or be used dynamically.
Although providers have their own process and memory, providers perform work delegated by the CIMOM. The CIMOM must know the location of each provider in order to coordinate WBEM. You inform the CIMOM about new or modified providers by including those providers in a MOF file. A MOF file defines the classes and instances that a provider supports. You register a MOF file using the mofcomp(1M) command.
Providers perform the following tasks:
Provide data to management applications – When a management application requests data about a managed resource that is not available in the CIM Object Manager Repository, the CIMOM forwards the request to a provider. The provider accesses the data from the managed resource and passes the data back to the CIMOM. If the data received from a managed resource is in a native format such as C code, the provider maps the data to Java CIM classes prior to passing the data to the CIMOM.
Control management resources – When a management application sends data to the CIMOM to control a managed resource, the CIMOM passes the data to the appropriate provider. If the managed resource requires data in a native format, the provider maps the CIM classes to the resource's native format prior to passing the data along.
Providers must reside on the same machine as the CIMOM.
Providers can retrieve data from the following sources:
Non-persistent data – Variables that are local to the provider class that exist only when the provider's methods are run.
Persistent memory that is local to the provider – Used by creating global variables in the provider class. This provider memory is erased when the CIMOM is stopped and restarted.
CIM Object Manager Repository – This persistent memory is erased when Solaris WBEM Services software is uninstalled. The provider must use CIMOM handles and an internal provider to access this memory through the CIMOM.
Files and databases maintained by the provider, or dynamic data – Providers can generate data dynamically by retrieving data from a system. For example, a provider can make a system call to retrieve the number of processes currently running.
Providers are categorized according to the types of requests the providers handle. Client programs communicate with the CIMOM and access WBEM data through the client API. The CIMOM maps the provider methods to the corresponding client methods in the client API. However, the argument lists and return values of corresponding methods might differ. See file:/usr/sadm/lib/wbem/doc/index.html.
If a provider stores data in the CIM Object Manager Repository, then the provider accesses the Repository using handles to the CIMOM. These handles call the methods of the client API. See Implementing the Provider Interfaces.
If a provider needs to create instances or associations in the CIM Object Manager Repository, then it uses an internal provider. The provider calls methods of Instance or Associator Providers that are internal to WBEM. See Implementing the Provider Interfaces.
Ensure that your argument list and return type are correct for the method and class used.
The types of providers in the Solaris WBEM SDK are shown in the following table.
Table 6–1 Provider Types
Type |
Class Name |
Description |
---|---|---|
Instance |
CIMInstanceProvider |
Supply dynamic instances of a given class, and support instance retrieval, enumeration, modification, and deletion |
Method |
MethodProvider |
Supply methods of one or more classes |
Associator |
CIMAssociatorProvider |
Supply instances of dynamic association classes |
Indication |
EventProvider |
Handle indications of CIM events |
Authorizable |
None |
A marker interface that indicates to the CIMOM that the provider does its own authorization check |
A single provider can act as one or more of the provider types by registering and implementing the relevant methods.
You can include providers in a single Java class file or store each provider in a separate class. The provider name identifies the Java class that serves as the provider for the class. Currently, the CIMOM supports only providers that are written in the Java language.
Provider and class names must follow these rules:
The class name must be a valid CIM class. The name must contain a prefix of characters, followed by an underscore, followed by more characters.
For example, green_apples and red_apples are valid CIM class names, whereas apples, apples_, and _apples are not.
The provider name that is specified in the MOF file must match the name of the provider class file.
For example, SimpleCIMInstanceProvider is the provider and Ex_SimpleCIMInstanceProvider is the class.
You must prepend “java:” to every provider qualifier to notify the CIMOM that the provider is written in the Java language.
Follow standard Java class and package naming conventions to create your provider names. The prefix of a package name is written in lowercase ASCII letters and must be one of the top-level domain names (com, edu, gov, mil, net, org), or one of the English two-letter country codes specified in ISO Standards 3166, 1981.
Subsequent components of the package name can vary according to your organization's internal naming conventions. Such conventions might specify that certain directory name components are division, department, project, machine, or login names. For example, the provider name java:com.sun.wbem.cimom indicates the following information:
java: – Language used to write the provider
com – Top-level domain name
sun – Company name
wbem – Product name
cimom – Type of class files that implement the CIMOM