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