Web-Based Enterprise Management (WBEM) アプリケーションは、Sun WBEM SDK API を使用して CIM オブジェクトを操作する標準的な Java プログラムです。クライアントアプリケーションは、一般に CIM API を使用してオブジェクト (ネームスペース、クラス、インスタンスなど) を構築し、続いてそのオブジェクトを初期化します。その後、クライアント API を使用してオブジェクトを CIM Object Manager に渡し、WBEM の処理 (CIM ネームスペース、クラス、またはインスタンスの作成など) を要求します。
Sun WBEM SDK アプリケーションは、通常、次の手順で処理を行います。
CIM Object Manager に接続します (CIMClient)。
クライアントアプリケーションは、WBEM のオペレーション (CIM クラスの作成や CIM インスタンスの更新など) を実行する必要があるたびに、CIM Object Manager に接続します。
1 つ以上の API を使用してプログラミング作業を行います。
CIM Object Manager への接続が完了すると、プログラムは API を使用して処理を要求します。
CIM Object Manager へのクライアント接続を閉じます (close)。
アプリケーションは、終了時に現在のセッションを閉じる必要があります。CIMClient インタフェースを使用して、現在のクライアントセッションを閉じてクライアントセッションが使用しているリソースをすべて解放します。
例 6-1 に、すべてのデフォルト値を使用して CIM Object Manager に接続する簡単なアプリケーションを示します。このプログラムは、クラスを取得し、そのクラス内のインスタンスの列挙と出力を行います。
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[1])。コマンド行に * 指定されたネームスペース内のクラスインスタンスを取得する (args[0])。 */ 1 public class WBEMsample { 2 public static void main(String args[]) throws CIMException { 3 CIMClient cc = null; 4 try { 5 /* args[0] にはネームスペースが入る。このネームスペースを 6 格納するためにネームスペースオブジェクト (cns) を作成する。 */ 7 CIMNameSpace cns = new CIMNameSpace(args[0]); 8 /* CIM Object manager に接続し、ネームスペースを含む 9 ネームスペースオブジェクトを渡す。 */ 10 cc = new CIMClient(cns); 11 /* args[1] にはクラス名が入る。現在のネーム 12 スペース内の指定されたクラスを参照する CIM Object 13 Path を作成する。 */ 14 CIMObjectPath cop = new CIMObjectPath(args[1]); 15 /* CIM Object Path によって参照されている 16 クラスオブジェクトを取得する。 */ 17 cc.getClass(cop); 18 //クラスとそのすべてのサブクラスのディープ (deep) 列挙 19 Enumeration e = cc.enumInstances(cop, true); 20 while(e.hasMoreElements()) { 21 CIMObjectPath op = (CIMObjectPath)e.nextElement(); 22 System.out.println(op); 23 } 24 catch (Exception e) { 25 System.out.println("Exception: "+e); 26 } 27 if(cc != null) { 28 cc.close(); 29 } 30 } 31 } |
CIM Object Manager への接続が完了すると、クライアントアプリケーションは API を使用して処理を要求します。プログラムの機能セットは、どの処理を要求すべきかを決定します。次に、ほとんどのプログラムが実行する一般的な処理を示します。
アプリケーションは、次の処理を実行する場合もあります。