Solaris WBEM 開発ガイド

第 3 章 サンプルプログラムの使用

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

サンプルプログラムについて

Solaris WBEM SDK をインストールすると、Java アプレットおよびいくつかのプログラムが /usr/demo/wbem にインストールされます。これらのサンプルは、ユーザー独自のプログラムを開発するためのベースとして使用できます。


注 –

アプレットおよびサンプルプログラムを使用するには、/usr/java が JDK 1.2.2 またはそれ以降のリリースを指し、プログラムファイルが /usr/demo/wbem ディレクトリにインストールされている必要があります。


次のサンプルプログラムが提供されます。

サンプルアプレット


注 –

このアプレットの詳細については、/usr/demo/wbem/applet/README を参照してください。


アプレットは、CIM オブジェクトマネージャにネットワークからアクセスしているコンピュータで実行する必要があります。またそのコンピュータで、次のプログラムを実行する必要があります。

JDK アプレットビューアまたは Java 実行環境の詳細については、http://java.sun.com を参照してください。

Procedureアプレットビューアを使用してサンプルアプレットを実行する方法

手順

    アプレットビューアを使用してサンプルアプレットを実行するには、次のコマンドを入力します。


    % appletviewer -JD \
    
    java.security.policy=/usr/demo/wbem/applet/applet.policy \
    
    /usr/demo/wbem/applet/GetPackageInfoAp.html
    

ProcedureWeb ブラウザでサンプルアプレットを実行する方法

手順

    Web ブラウザでサンプルアプレットを実行する場合は、Web ブラウザで次のファイルを開きます。

    /usr/demo/wbem/applet/GetPackageInfoAp.html

サンプルクライアントプログラム

サンプルクライアントプログラムは、/usr/demo/wbem/client のサブディレクトリにあります。次の表でプログラムについて説明します。

表 3–1 サンプルクライアントプログラム

ディレクトリ 

プログラム 

目的 

./batching

./TestBatchhost username password classnamermi|http

1 回のバッチ処理で enumerateInstanceNamegetClass および enumerateInstances を実行する

./enumeration

./ClientEnumhost username password classnamermi|http

指定されたホスト上のデフォルトの名前空間 root\cimv2 にある指定されたクラスのサブクラスとインスタンスを列挙する

./events

./Subscribe host username password classname

指定されたクラスのライフサイクルイベントを予約し、予約してから 1 分以内に発生したイベントを出力する。そのあと、イベントの予約を解除する 

./logging

./CreateLoghost root-username root-passwordrmi|http

指定されたホスト上にログレコードを作成する 

 

./ReadLoghost root-username root-passwordrmi|http

指定されたホスト上のログレコードを読み取る 

./misc

./DeleteClasshost classname root-username root-passwordrmi|http

指定されたホスト上のデフォルトの名前空間 root\cimv2 にある指定されたクラスを削除する

 

./DeleteInstanceshost classname root-username root-passwordrmi|http

指定されたホスト上のデフォルトの名前空間 root\cimv2 にある指定されたクラスのインスタンスを削除する

./namespace

./CreateNameSpacehost parentNS childNS root-username root-passwordrmi|http

指定されたユーザーとして CIM オブジェクトマネージャに接続し、指定されたホスト上に名前空間を作成する 

 

./DeleteNameSpacehost parentNS childNS root-username root-passwordrmi|http

指定されたホスト上の指定された名前空間を削除する 

./query

./ExampleQueryhost username passwordrmi|httpWQL-query

サンプルインスタンスでテストクラスを作成し、そのクラスで照会を実行する 

 

./TestQueryhost username passwordrmi|httpWQL-query

指定された WQL 照会を実行する 

./systeminfo

./SystemInfohost username passwordrmi|http

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

サンプルクライアントプログラムの実行

クライアントプログラムを実行する前に、CLASSPATH に必要な .jar ファイルを設定する必要があります。

ProcedureCLASSPATH の設定方法

手順

    次のいずれかの方法で、CLASSPATH 環境変数を設定します。

    • C シェルを使用して、次のように入力します。


      % setenv CLASSPATH .:/usr/sadm/lib/wbem.jar:/usr/sadm/lib/xml.jar
      
      :/usr/sadm/lib/wbem/sunwbem.jar:/usr/sadm/lib/wbem/extension
      
    • Bourne シェルを使用して、次のように入力します。


      $CLASSPATH .:/usr/sadm/lib/wbem.jar:/usr/sadm/lib/xml.jar
      
      :/usr/sadm/lib/wbem/sunwbem.jar:/usr/sadm/lib/wbem/extension
      
      $export CLASSPATH
      

Procedureサンプルクライアントプログラムの実行方法

ほとんどのサンプルクライアントプログラムは、CIM オブジェクトマネージャとの接続に使用するプロトコルを指定するオプションパラメータを受け付けます。RMI がデフォルトプロトコルです。

手順

    次の形式を使用してサンプルクライアントプログラムを実行します。


    % java program_name parameters
    

例 3–1 サンプルクライアントプログラムの実行

たとえば、次のスクリプトは、HTTP プロトコルを使用して secret パスワードで root ユーザーとして myhost に接続し SystemInfo プログラムを実行します。


% java SystemInfo myhost root secret http

サンプルプロバイダプログラム

サンプルプロバイダプログラムは、/usr/demo/wbem/provider サブディレクトリにあります。次の表では、このプログラムについて説明します。

表 3–2 サンプルプロバイダプログラム

ファイル名 

目的 

NativeProvider.java

CIM オブジェクトマネージャからの要求に応答し、この要求を Native_Example プロバイダに配信する最上位のプロバイダプログラム。このプログラムは、instanceProvider および methodProvider API を実装する。また、インスタンスを列挙するメソッドや、Native_Example クラスのインスタンスを取得するメソッドを宣言する。このほか、「Hello World」という文字列を出力するメソッドを呼び出すメソッドも宣言する

Native_Example.mof

NativeProvider プロバイダを CIM オブジェクトマネージャに登録するクラスを作成する。この MOF ファイルは、NativeProvider を、Native_Example クラスの動的データ要求に答えるプロバイダと見なす。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 コード

Procedureサンプルプロバイダプログラムの実行方法

サンプルプロバイダプログラムを実行する前に環境を設定する必要があります。

手順
  1. LD_LIBRARY_PATH 環境変数を、プロバイダクラスファイルの位置に設定します。

    • C シェルを使用して、次のように入力します。


      % setenv LD_LIBRARY_PATH /usr/sadm/lib/wbem
      
    • Bourne シェルを使用して、次のように入力します。


      $ LD_LIBRARY_PATH=/usr/sadm/lib/wbem
      
      $export LD_LIBRARY_PATH
      
  2. libnative.so 共有ライブラリファイルを、LD_LIBRARY_PATH 環境変数によって指定されているディレクトリにコピーします。


    % cp libnative.so /usr/sadm/lib/wbem
    
  3. プロバイダクラスファイルを、これらのパッケージと同じパスに移動します。


    % mv *.class /usr/sadm/lib/wbem
    
  4. スーパーユーザーになります。

  5. LD_LIBRARY_PATH 環境変数を設定したシェルと同じシェルの CIM オブジェクトマネージャを停止します。


    # /etc/init.d/init.wbem stop
    

    注 –

    シェルに LD_LIBRARY_PATH 環境変数を設定する場合は、設定した新しい値を認識させるために、そのシェルで CIMOM の停止と再起動を行なってください。


  6. CIM オブジェクトマネージャを起動します。


    # /etc/init.d/init.wbem start
    
  7. スーパーユーザー状態から抜けます。

  8. CIMOM の適切なクラスを読み込んでプロバイダを識別するためにプログラムに関連した .mof ファイルをコンパイルします。


    % mofcomp -u root p root-password Native_Example.mof
    
  9. CIM Workshop を起動します。


    % /usr/sadm/bin/cimworkshop
    
  10. CIM Workshop ツールバーの「クラスを検索 (Find Class)」アイコンをクリックします。

  11. 「入力 (Input) 」ダイアログボックスで、表示したいクラス名を入力して「了解 (OK) 」をクリックします。

    CIM Workshop にクラスが表示されます。