Solaris WBEM 開発ガイド

プロバイダの作成

次の手順に従ってプロバイダを作成します。

  1. プロバイダプログラムを作成または編集します。

  2. Java プログラムをコンパイルしてクラスファイルを作成します。

  3. 共有オブジェクトファイル (.so) を /usr/sadm/lib/wbem にコピーします。

  4. CLASSPATH.class および .jar ファイルがある場所に設定します。

  5. プロバイダを登録します。

プロバイダの CLASSPATH を設定する方法

プロバイダの CLASSPATH を設定して、CIM オブジェクトマネージャに .class および .jar ファイルの保存場所を知らせます。

  1. 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();

  2. 標準的な 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

  3. インスタンスを作成します。

    次に例を示します。

    // 更新されたインスタンスを CIM オブジェクトマネージャに渡す 
    cc.createInstance(new CIMObjectPath(), ci);  

プロバイダを登録する方法

新しいプロバイダ、または変更されたプロバイダを CIM オブジェクトマネージャに登録して、プロバイダがサポートするデータおよび操作に関する情報を送受信できるようにします。また、CIMOM にプロバイダの場所を通知するためにプロバイダを登録します。CIM オブジェクトマネージャは、この情報を使用してプロバイダの読み込みと初期化、および特定のクライアント要求に適切なプロバイダを決定します。

  1. プロバイダがサポートするクラスを定義するファイルを作成します。


    注 –

    MOF ファイルの詳しい作成方法については、DMTF の Web サイト http://www.dmtf.org を参照してください。


  2. MOF ファイルにプロバイダ修飾子を含めて、CIMOM のプロバイダの種類と場所を指定します。

    次に例を示します。

    [Provider("java:com.sun.providers.myprovider")]
    Class_name {
    …
    };

    この修飾子は、次の情報を示します。

    • java: – Java 言語で記述され、javax.wbem.provider インタフェースを実装するプロバイダ

    • com.sun.providers.myprovider – プロバイダを実装する Java クラス名

  3. mofcomp(1M) コマンドを使用して、MOF ファイルをコンパイルします。


例 6–4 プロバイダの登録

次の 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;
};