Sun WBEM SDK 開発ガイド

概要

WBEM (Web-Based Enterprise Management) アプリケーションは、Sun WBEM SDK API を使用して CIM オブジェクトを操作する標準的な Java プログラムです。クライアントアプリケーションは、一般に CIM API を使用してオブジェクト (ネームスペース、クラス、インスタンスなど) を構築し、続いてそのオブジェクトを初期化します。その後、クライアント API を使用してオブジェクトを CIM Object Manager に渡し、WBEM の処理 (CIM ネームスペース、クラス、またはインスタンスの作成など) を要求します。

クライアントアプリケーションの処理手順

Sun WBEM SDK アプリケーションは通常、次の手順で処理を行います。

  1. CIM Object Manager に接続します (CIMClient)。

    クライアントアプリケーションは、WBEM のオペレーション (CIM クラスの作成や CIM インスタンスの更新など) を実行する必要があるたびに、CIM Object Manager に接続します。

  2. 1 つ以上の API を使用してプログラミング作業を行います。

    CIM Object Manager への接続が完了すると、プログラムは API を使用して処理を要求します。

  3. CIM Object Manager へのクライアント接続を閉じます (close)

    アプリケーションは、終了時に現在のセッションを閉じる必要があります。CIMClient インタフェースを使用して、現在のクライアントセッションを閉じてクライアントセッションが使用しているリソースをすべて解放します。

例 — 一般的な Sun WBEM SDK アプリケーション

例 4–1 に、すべてのデフォルト値を使用して CIM Object Manager に接続する簡単なアプリケーションを示します。このプログラムは、クラスを取得し、そのクラス内のインスタンスを列挙して出力します。


例 4–1 一般的な Sun WBEM SDK アプリケーション

import java.rmi.*;
import com.sun.wbem.client.CIMClient;
import com.sun.wbem.cim.CIMInstance;
import com.sun.wbem.cim.CIMValue;
import com.sun.wbem.cim.CIMProperty;
import com.sun.wbem.cim.CIMNameSpace;
import com.sun.wbem.cim.CIMObjectPath;
import com.sun.wbem.cim.CIMClass;
import com.sun.wbem.cim.CIMException;
import java.util.Enumeration;
 
/**
 * 指定されたクラスのすべてのインスタンスを返す。
 * このメソッドは、引数としてホスト名 (args[0]) と
 * リストするクラスの名前 (args[1]) を受け取る。
 */
public class WBEMsample {
    public static void main(String args[]) throws CIMException {
        CIMClient cc = null;
            try {
                /* args[0] にはネームスペースが入っている。
                ここでは、指定されたホスト上のデフォルトの
	              root\cimv2 ネームスペースを指す
	              CIM ネームスペース (cns) を作成する。 */
						   CIMNameSpace cns = new CIMNameSpace(args[0]);
						   /* CIM Object manager に接続し、ネームスペースを含む 
							 ネームスペースオブジェクトを渡す。 */
						   cc = new CIMClient(cns, "root", "root_password");
						   /* クラス名から CIMObjectPath を作成する。 */
						   CIMObjectPath cop = new CIMObjectPath(args[1]);
						   /* クラスを取得する (修飾子、クラス起点、
	              プロパティなど)。*/
	              cc.getClass(cop, true, true, true, null);
                // このクラスに属するすべてのインスタンス名を返す。
                Enumeration e = cc.enumerateInstanceNames(cop);
                while(e.hasMoreElements()) {
                    CIMObjectPath op = (CIMObjectPath)e.nextElement();
                    System.out.println(op);
                  } // while の終り
	  	        } catch (Exception e) {
                System.out.println("Exception: "+e);
            }
            if(cc != null) {
               cc.close();
            } 
     } // main の終り
 } // WBEMsample の終り


一般的なプログラミング作業

CIM Object Manager への接続が完了すると、クライアントアプリケーションは API を使用して処理を要求します。プログラムの機能セットは、どの処理を要求すべきかを決定します。次に、ほとんどのプログラムが実行する一般的な処理を示します。

アプリケーションは、次の処理を実行する場合もあります。