サポートするデータと処理、およびそれらの物理的な実装についての情報を公開するため、CIM Object Manager にプロバイダを登録します。CIM Object Manager は、この情報を使用してプロバイダのロードと初期化、および特定のクライアント要求に適切なプロバイダを決定します。すべてのタイプのプロバイダについて、同じ方法で登録します。
CIM クラスを定義する MOF ファイルを作成します。
そのクラスに、provider 修飾子を割り当てます。provider 修飾子には、プロバイダ名を割り当てます。
プロバイダ名により、そのクラスのプロバイダとしての役目をする Java クラスが識別されます。クラス名は、完全に指定する必要があります。次に例を示します。
[Provider("com.kailee.wbem.providers.provider_name")] Class_name { … };
プロバイダ名が固有になるように、Java クラスおよび Java パッケージの命名規則に従うことを推奨します。固有のパッケージ名の接頭辞は小文字の ASCII 文字で、トップレベルのドメイン名にする必要があります。現在は、com、edu、gov、mil、net、org、または、ISO 標準 3166、1981 で指定されている国名を識別する 2 文字コードなどです。
パッケージ名の後に続く名前は、組織内部の命名規則によって異なります。たとえば、あるディレクトリ名のコンポーネントは、部名、課名、プロジェクト名、マシン名、あるいはログイン名などになります (例 : com.mycompany.wbem.myprovider)。
MOF ファイルをコンパイルします。次に例を示します。
% mofcomp class_name |
MOF コンパイラを使って MOF ファイルをコンパイルする方法については、『Solaris WBEM Services の管理』を参照してください。
コンパイル済みの MOF ファイルに入っているクラス定義を変更する場合は、MOF ファイルをコンパイルし直す前に、そのクラスを CIM Object Manager Repository から削除する必要があります。削除しないと、クラスがすでに存在するためエラーになり、新しい情報が CIM Object Manager に伝達されません。クラスとクラス属性の削除で説明しているように、CIM WorkShop を使用してクラスを削除することができます。
次の例は、SimpleInstanceProvider によって提供される Ex_SimpleInstanceProvider クラスを CIM Object Manager に宣言する MOF ファイルを示したものです (例 5–1) 。MOF ファイルのプロバイダ名とクラス名は、次の規則に従っていなければなりません。
クラス名は有効な CIM スキーマ名でなければなりません。つまり、クラス名には、接頭辞とその後に続く下線が必要です。たとえば、green_apples や red_apples は有効な CIM スキーマ名ですが、apples は有効な CIM スキーマ名ではありません。
クラス名は、MOF ファイルのプロバイダに指定されているクラス名と同じでなければなりません。例 5–5 の MOF ファイルには、以下のように Ex_SimpleInstanceProvider クラスが定義されています。
class Ex_SimpleInstanceProvider
例 5–1 のプロバイダ中の enumInstances メソッドには、以下のようにこれと同じクラス名が指定されています。
public Vector enumInstances(CIMObjectPath op, boolean deep, CIMClass cc) throws CIMException { if (op.getObjectName().equalsIgnoreCase("Ex_SimpleInstanceProvider"))
MOF ファイルに指定するプロバイダ名は、プロバイダクラスファイルの名前と同じでなければなりません。例 5–5 の MOF ファイルには、以下のように Ex_SimpleInstanceProvider クラスのプロバイダとして SimpleInstanceProvider が指定されています。
[Provider("SimpleInstanceProvider")] class Ex_SimpleInstanceProvider
// =================================================================== // Title: SimpleInstanceProvider // Filename: SimpleInstanceProvider.mof // Description: // =================================================================== // ================================================================== // Pragmas // ================================================================== #pragma Locale ("en-US") // ================================================================== // SimpleInstanceProvider // ================================================================== [Provider("SimpleInstanceProvider")] class Ex_SimpleInstanceProvider { // プロパティ [Key, Description("First Name of the User")] string First; [Description("Last Name of the User")] string Last; };