次の手順に従ってプロバイダを作成します。
プロバイダプログラムを作成または編集します。
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/")));
| プロバイダの 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;
};