プロバイダは、処理できる要求の種類によって分類されます。クライアントプログラムは、CIMOM と通信し、クライアント API 経由で WBEM にアクセスします。CIMOM は、プロバイダメソッドをクライアント API の対応するクライアントメソッドにマップします。ただし、引数リストおよび対応するメソッドの戻り値は異なる場合があります。/usr/sadm/lib/wbem/doc/index.html を参照してください。
CIM オブジェクトマネージャリポジトリにデータを格納している場合、プロバイダは、CIMOM へのハンドルを使ってこのリポジトリにアクセスします。これらのハンドルは、クライアント API のメソッドを呼び出します。「プロバイダインタフェースの実装」を参照してください。
CIM オブジェクトマネージャリポジトリ内にインスタンスまたは関連を作成する必要がある場合は、内部プロバイダを使用します。プロバイダは、インスタンスのメソッドか、WBEM 内部のアソシエータ (関連) プロバイダのメソッドを呼び出します。「プロバイダインタフェースの実装」を参照してください。
使用するメソッドおよびクラスの引数リストおよび戻り値が正しいかどうか確認してください。
次の表に Solaris WBEM SDK のプロバイダの種類を示します。
表 6–1 プロバイダの種類
型 |
クラス名 |
説明 |
---|---|---|
インスタンス |
CIMInstanceProvider |
所定のクラスの動的なインスタンスを提供する。インスタンスの取得、列挙、変更、削除をサポートする |
ソート方法 |
MethodProvider |
1 つ以上のクラスのメソッドを供給する |
アソシエータ |
CIMAssociatorProvider |
動的な関連クラスのインスタンスを供給する |
インジケーション |
EventProvider |
CIM イベントのインジケーションを処理する |
承認 |
なし |
マーカーインタフェースは、プロバイダが独自に承認検査を行うことを CIMOM に知らせる |
関連メソッドを登録および実装することにより、単一のプロバイダを 1 種類以上のプロバイダとして使用できます。
複数のプロバイダを単一の Java クラスに含めることができます。また各プロバイダをそれぞれのクラスに分けて保存することもできます。プロバイダ名は、クラスのプロバイダとなる Java クラスを識別します。現時点では、CIMOM は、Java 言語で作成されたプロバイダのみをサポートします。
プロバイダ名およびクラス名は、次の規約に従う必要があります。
クラス名は有効な CIM クラスでなければなりません。すなわち、接頭辞、続いて下線 (_)、最後に文字列の順で構成されていなければなりません。
たとえば、green_apples および red_apples は、有効な CIM クラス名ですが、apples、apples_、および _apples は、有効なクラス名ではありません。
MOF ファイルに指定するプロバイダ名は、プロバイダクラスファイルの名前と一致する必要があります。
たとえば、SimpleCIMInstanceProvider はプロバイダ名、Ex_SimpleCIMInstanceProvider はクラス名です。
プロバイダ修飾子の前には、必ず「java:」を付けます。これは、プロバイダが Java 言語で作成されていることを CIMOM に認識させるためです。
標準の Java クラスおよびパッケージ命名規則に従って、プロバイダ名を作成します。パッケージ名の接頭辞は、小文字の ASCII 文字で最上位のドメイン名 (com、edu、gov、mil、net、org) 、または ISO 標準 3166、1981 で指定されている英語 2 文字の国名コードにする必要があります。
パッケージ名のあとに続く名前は、組織内部の命名規則によって異なります。組織内部の規則では、ディレクトリ名の構成要素として、部名、課名、プロジェクト名、マシン名、あるいはログイン名などを指定します。たとえば、プロバイダ名 java:com.sun.wbem.cimom は、次の情報を示します。
java:– プロバイダを記述した言語
com – 最上位のドメイン名
sun – 会社名
wbem – 製品名
cimom – CIMOM を実装するクラスファイルの種類