Sun WBEM 開発ガイド

クライアント接続の開始と終了

アプリケーションは、最初に CIM Object Manager に対しクライアントセッションを開きます。WBEM クライアントアプリケーションは、CIM Object Manager にオブジェクト管理サービスを要求します。クライアントと CIM Object Manager は、同じホスト上でも異なるホスト上でも動作します。同じ CIM Object Manager に対して、複数のクライアントから接続できます。

この節では、ネームスペースの基本概念と、次に示すクラスとメソッドの使用方法を説明します。

ネームスペースの使用

アプリケーションを作成する前に、ネームスペースの CIM 概念を理解する必要があります。ネームスペースは、ディレクトリに似た構造を持ち、ほかのネームスペース、クラス、インスタンス、および修飾子のデータ型を含むことができます。ネームスペース内のオブジェクトの名前は固有にする必要があります。オペレーションはすべて、ネームスペース内で行われます。Solaris WBEM Services をインストールすると、次に示す 2 つのネームスペースが作成されます。

CIM Object Manager に接続する場合、アプリケーションはデフォルトのネームスペース (root¥cimv2) に接続するか、別のネームスペース (root¥security や独自に作成したネームスペースなど) を指定する必要があります。

特定のネームスペースで CIM Object Manager への接続が完了すると、その後の処理はすべてそのネームスペース内で発生します。アプリケーションは、ネームスペース内で別のネームスペースに接続できます。これは、ディレクトリ内でサブディレクトリに位置を変更するのに似ています。アプリケーションが別のネームスペースに接続すると、その後の処理はすべてその新しいネームスペース内で発生します。

CIM Object Manager への接続

クライアントアプリケーションは、WBEM のオペレーション (CIM クラスの作成や CIM インスタンスの更新など) を実行する必要があるたびに、CIM Object Manager に接続します。アプリケーションは、CIMClient クラスを使用して CIM Object Manager 上のクライアントのインスタンスを作成します。CIMClient クラスには、次の 3 つの引数を指定できます。

CIM Object Manager への接続が完了すると、その後の CIMClient オペレーションはすべて指定されたネームスペース内で発生します。

例 - CIM Object Manager への接続

次の例は、CIMClient インタフェースを使用して CIM Object Manager に接続する 2 つの方法を示しています。

例 6-2 では、アプリケーションはすべてデフォルト値を使用しています。つまり、デフォルトのユーザーアカウントとパスワード guest を使用し、ローカルホスト (クライアントアプリケーションが動作しているホスト) のデフォルトのネームスペース (root¥cimv2) で動作している CIM Object Manager に接続します。


例 6-2 デフォルトのネームスペースへの接続

/* パスワード guest を持つユーザー guest として 
ローカルホスト上の root¥cimv2 ネームスペースに接続 */ 
 
cc = new CIMClient();


例 6-3 では、アプリケーションはホスト happy 上のネームスペース A に接続します。アプリケーションは、初めにこのネームスペースの文字列名 (A) を含むためにネームスペースのインスタンスを作成します。続いて、CIMClient クラスを使用して CIM Object Manager に接続し、ネームスペースオブジェクト、ユーザー名、およびホスト名を渡します。


例 6-3 デフォルト以外のネームスペースへの接続

/* ホスト happy 上の 
A (ネームスペース名) を
使用して初期化されたネームスペースオブジェクトを作成 */
CIMNameSpace cns = new CIMNameSpace("happy", A);
// このネームスペースにユーザー Mary として接続
cc = new CIMClient(cns, "Mary", "");


クライアント接続の終了

アプリケーションは、現在のクライアントセッションの終了時にセッションを閉じる必要があります。現在のクライアントセッションを閉じてこのセッションによって使用されているリソースをすべて解放するには、close メソッドを使用します。

次に、クライアント接続を閉じるコード例を示します。インスタンス変数 cc は、このクライアント接続をしたインスタンスを表します。

cc.close();