次の手順に従ってプロバイダを作成します。
プロバイダプログラムを作成または編集します。
Java プログラムをコンパイルしてクラスファイルを作成します。
共有オブジェクトファイル (.so) を /usr/sadm/lib/wbem にコピーします。
CLASSPATH を .class および .jar ファイルがある場所に設定します。
プロバイダを登録します。
プロバイダの CLASSPATH を設定して、CIM オブジェクトマネージャに .class および .jar ファイルの保存場所を知らせます。
Solaris_ProviderPath クラスのインスタンスを作成します。
次に例を示します。
/* root\system (名前空間名) で初期化された名前空間オブジェクトを ローカルホスト上に作成する */ CIMNameSpace cns = new CIMNameSpace("", "root\system"); // root\system 名前空間にスーパーユーザーとして接続する cc = new CIMClient(cns, "root", "root_password"); // Solaris_ProviderPath クラスを取得する cimclass = cc.getClass(new CIMObjectPath("Solaris_ProviderPath"); // Solaris_ProviderPath の新しいインスタンスを作成する class ci = cimclass.newInstance();
標準的な URL 形式を使用して、pathurl プロパティにファイルの場所を設定します。
次に例を示します。
/* プロバイダの CLASSPATH に /myhome/myproviders を設定する */ ci.setProperty("pathurl", new CIMValue(new String ("file:///myhome/myproviders/")));
次の表に、標準的な URL 形式を示します。
プロバイダの CLASSPATH |
標準 URL 形式 |
---|---|
ディレクトリへの絶対パス |
file:///a/b/c/ |
.jar ファイルへの絶対パス |
file:///a/b/my.jar |
インスタンスを作成します。
次に例を示します。
// 更新されたインスタンスを CIM オブジェクトマネージャに渡す cc.createInstance(new CIMObjectPath(), ci);
新しいプロバイダ、または変更されたプロバイダを CIM オブジェクトマネージャに登録して、プロバイダがサポートするデータおよび操作に関する情報を送受信できるようにします。また、CIMOM にプロバイダの場所を通知するためにプロバイダを登録します。CIM オブジェクトマネージャは、この情報を使用してプロバイダの読み込みと初期化、および特定のクライアント要求に適切なプロバイダを決定します。
プロバイダがサポートするクラスを定義するファイルを作成します。
MOF ファイルの詳しい作成方法については、DMTF の Web サイト http://www.dmtf.org を参照してください。
MOF ファイルにプロバイダ修飾子を含めて、CIMOM のプロバイダの種類と場所を指定します。
次に例を示します。
[Provider("java:com.sun.providers.myprovider")] Class_name { … };
この修飾子は、次の情報を示します。
java: – Java 言語で記述され、javax.wbem.provider インタフェースを実装するプロバイダ
com.sun.providers.myprovider – プロバイダを実装する Java クラス名
mofcomp(1M) コマンドを使用して、MOF ファイルをコンパイルします。
次の MOF ファイルには、Ex_SimpleCIMInstanceProvider クラスのプロバイダとして SimpleCIMInstanceProvider が宣言されています。
// ======================================================== // タイトル: SimpleCIMInstanceProvider // ファイル名: SimpleCIMInstanceProvider.mof // 説明: // ================================================================== // ================================================================== // Pragmas // ================================================================== #pragma Locale ("en-US") // ================================================================== // SimpleCIMInstanceProvider // ================================================================== [Provider("java:SimpleCIMInstanceProvider")] class Ex_SimpleCIMInstanceProvider { // プロパティ [Key, Description("First Name of the User")] string First; [Description("Last Name of the User")] string Last; };