Sun WBEM 開発ガイド

第 8 章 Sun WBEM SDK サンプルの使用

この章では、Sun WBEM SDK に付属のプログラム例について説明します。内容は次のとおりです。

プログラム例について

Sun WBEM SDK には、サンプル Java プログラムが付属しています。このプログラムは、/install_dir/SUNWconn/wbem/demo にインストールされます。このソースコードは、独自のプログラムを開発するためのベースとして使用できます。提供されているプログラム例は次の 2 種類です。

クライアント例の使用

クライアント例は、クライアント API を使用してクラス、インスタンス、およびネームスペースの作成、削除、および表示を行います。次の 4 種類のクライアントプログラムが提供されています。

クライアントサンプルファイル

次の表は、クライアントプログラム例のファイルについて説明し、各例を実行するコマンドと引数を示しています。

表 8-1 クライアントファイル例

サンプルファイル名 

説明 

実行するコマンド 

CreateNameSpace

指定されたユーザーとして CIM Object Manager に接続し、指定されたホスト上にネームスペースを作成する。CIM Object Manager Repository の管理アカウントのユーザー名とパスワードを指定する必要がある 

java CreateNameSpace host parentNS childNS username password

DeleteNameSpace

指定されたホスト上の指定されたネームスペースを削除する。CIM Object Manager Repository の管理アカウントのユーザー名とパスワードを指定する必要がある 

java DeleteNameSpace host parentNS childNS username password

ClientEnum

指定されたホスト上のデフォルトネームスペース /root/cimv2 に存在する指定されたクラスのサブクラスとインスタンスを列挙する

java ClientEnum host className

CreateLog

指定されたホスト上にログレコードを作成する。CIM Object Manager Repository の管理アカウントのユーザー名とパスワードを指定する必要がある 

java CreateLog host username password

ReadLog

指定されたホスト上のログレコードを読み取る。CIM Object Manager Repository の管理アカウントのユーザー名とパスワードを指定する必要がある 

java ReadLog host username password

DeleteClass

指定されたホスト上のデフォルトネームスペース /root/cimv2 に存在する指定されたクラスを削除する。CIM Object Manager Repository の管理アカウントのユーザー名とパスワードを指定する必要がある

java DeleteClass host className username password

DeleteInstances

指定されたホスト上のデフォルトネームスペース /root/cimv2 に存在する指定されたクラスのインスタンスを削除する。CIM Object Manager Repository の管理アカウントのユーザー名とパスワードを指定する必要がある

java DeleteInstances host className username password

SystemInfo

指定されたホストの Solaris プロセッサとシステムの情報をウィンドウに表示する 

java SystemInfo host

クライアント例の実行

クライアントプログラム例を実行するには、次のコマンドを入力します。

java program_name

プログラム例のほとんどは、デフォルト値を持つ必須引数を取ります。たとえば、CreateNameSpace プログラム例には、次の 5 つの引数を指定します。

コマンド行引数にデフォルト値を指定するには、次の構文を使用します。

引数 

デフォルト値 

構文 

Host name

local host

.

Parent namespace

/root/cimv2

" "

Child namespace

Null

" "

User name

GUEST

" "

Password

GUEST

" "

次に、ローカルホスト上のデフォルトネームスペース root¥cimv2 に、パスワード secret を持つユーザー admin として接続する CreateNameSpace を実行する例を示します。

java CreateNameSpace . "" admin secret

プロバイダ例の使用

プロバイダ例は、システムプロパティを返し、文字列「Hello World」を出力する Java プログラムです。プロバイダは、ネイティブ C メソッドを呼び出してコードを実行し、値をプロバイダに返します。

プロバイダファイルの例

次の表は、プロバイダプログラムの各ファイルについて説明しています。

表 8-2 プロバイダファイル例

ファイル 

目的 

NativeProvider

CIM Object Manager からの要求に応答し、それらを Native_Example プロバイダに送る最上位レベルのプロバイダプログラム。NativeProvider プログラムは、instanceProvider API と method Provider API を実装し、Native_Example クラスのインスタンスを列挙するメソッドと、取得するメソッドを宣言する。このプログラムは、文字列「Hello World」を出力するメソッドを呼び出すメソッドも宣言する

Native_Example.mof

NativeProvider プロバイダを CIM Object Manager に登録するクラスを作成する。Native_Example.mof ファイルは、NativeProvider を、Native_Example クラスの動的データ要求に対してサービスを行うプロバイダとして識別する。この MOF ファイルは、NativeProvider によって実装されるプロパティとメソッドの宣言も行う

Native_Example.java

NativeProvider プログラムは、このプロバイダを呼び出して、Native_Example クラスのインスタンスを列挙するメソッドと取得するメソッドを実装する。Native_Example プロバイダは、API を使用してオブジェクトの列挙とオブジェクトインスタンスの作成を行う。Native_Example クラスは、native.c ファイル内の C 関数を呼び出してシステム固有の値 (ホスト名、シリアル番号、リリース、マシン、アーキテクチャ、メーカーなど) を取得するネイティブメソッドの宣言も行う

native.c

Native_Example Java プロバイダからの呼び出しをネイティブ C コードで実装する C プログラム

Native_Example.h

Native_Example クラスに対して自動的に生成されるヘッダーファイル。Java ネイティブメソッド名とそれらのメソッドを実行するネイティブ C 関数間の対話を定義する

libnative.so

native.c ファイルからコンパイルされるバイナリネイティブ C コード

ネイティブプロバイダの作成

Java プログラムの作成、および Java プログラムとネイティブメソッドの統合についての詳細は、Java の Web サイト http://www.javasoft.com/docs/books/tutorial/native1.1/TOC.html を参照してください。

プロバイダ例の設定

プロバイダプログラム例 NativeProvider は、Native_Example クラスのインスタンスの列挙と、インスタンスプロパティの取得を行います。Native_Example クラスとそのインスタンスは、CIM WorkShop を使用して表示できます。

プロバイダ例を設定する方法
  1. 次に示す方法の 1 つを使用して、共有ライブラリファイルの場所を指定します。

    • LD_LIBRARY_PATH 環境変数を、共有ライブラリファイルの場所に設定します。次に入力例を示します。

      % setenv LD_LIBRARY_PATH /install_dir/SUNWconn/wbem/demo/provider/jni/
      

    • 共有ライブラリファイルを、LD_LIBRARY_PATH 環境変数によって指定されているディレクトリにコピーします。WBEM のインストールを行うと、この環境変数は /install_dir/opt/SUNWconn/wbem/lib に設定されます。次に入力例を示します。

    % cp libnative.so /install_dir/opt/SUNWconn/wbem/lib
    % cp native.c /install_dir/opt/SUNWconn/wbem/lib
    % cp Native_Example.h /install_dir/opt/SUNWconn/wbem/lib
    

  2. プロバイダクラスファイルを、 CIM Object Manager が入っているディレクトリに移動させます。次に入力例を示します。

    % mv Native*.class /install_dir/opt/SUNWconn/wbem/bin
    

  3. CIM Object Manager が動作していることを確認します。

    インストールを行うと CIM Object Manager は自動的に起動します。CIM Object Manager が動作していない場合は、「CIM Object Manager の再起動」を参照してください。

  4. Native_Example.mof ファイルをコンパイルします。次に入力例を示します。

    % mofcomp Native_Example.mof
    

    この MOF ファイルをコンパイルすると、CIM Object Manager に Native_Example クラスが読み込まれ、NativeProvider がそのプロバイダとして識別されます。

  5. CIM WorkShop を実行し、Native_Example クラスを表示します。次に入力例を示します。

    % /opt/SUNWconn/wbem/bin/cimworkshop &
    

  6. ツールバーで「クラスを検索 (Find Class)」アイコンをクリックします。

  7. 「入力 (Input)」ダイアログボックスで、Native_Example と入力して「了解 (OK)」をクリックします。