Solaris WBEM 開発ガイド

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

クライアントが WBEM 操作を実行するためには、まずアプリケーションから CIMOM への接続を確立する必要があります。たとえば、CIM クラス、CIM インスタンス、CIM 修飾子型などを追加、変更、または削除する WBEM 作業があります。クライアントアプリケーションと CIM オブジェクトマネージャは、同一のホスト上でも、別のホスト上でも実行可能です。また、複数のクライアントが 1 つの CIM オブジェクトマネージャに接続を確立することもできます。

名前空間について

アプリケーションが CIMOM への接続を確立する場合、名前空間への接続も行う必要があります。後続の操作はすべてこの名前空間上で行われます。名前空間は、ディレクトリに似た構造を持ち、内部にクラス、インスタンス、および修飾子型を含みます。名前空間内のオブジェクト名は、すべて一意にする必要があります。Solaris WBEM SDK をインストールすると、次の 4 つの名前空間が作成されます。

クライアント接続の開始

クライアント接続を開始する場合、CIMClient クラスを使用して CIM オブジェクトマネージャに接続します。CIMClient クラスは、次の 4 つの引数を取ります。


例 4–1 ルートアカウントへの接続

次の例では、アプリケーションは、デフォルトの名前空間のローカルホストで稼働する CIM オブジェクトマネージャ に接続します。アプリケーションは、デフォルトの名前空間のすべての CIM オブジェクトに読み取り権および書き込み権を持つ、ルートアカウント用 UserPrincipal オブジェクトを作成します。

{
   ...

   /* デフォルトのホスト (ローカルホスト) とデフォルトの名前
   空間 (root\cimv2) を示す 2 つの NULL 
   文字列で初期化された名前空間オブジェクトを作成する */
 
   CIMNameSpace cns = new CIMNameSpace("", "");

   UserPrincipal up = new UserPrincipal("root");
   PasswordCredential pc = new PasswordCredential("root-password"); 
   /* root ユーザーとして root パスワードを使って名前空間に接続する */
 
   CIMClient cc = new CIMClient(cns, up, pc);
   ...
}


例 4–2 ユーザーアカウントへの接続

次の例では、アプリケーションは、最初に CIMNameSpaceUserPrincipal、および PasswordCredential オブジェクトのインスタンスを作成します。次に、CIMOM への接続を確立するため、CIMClient クラスを使って、資格情報 (ホスト名、名前空間、ユーザー名、およびパスワード) を渡します。

{
    ...
    /* ホスト happy 上の名前空間 
   A で初期化された名前空間オブジェクトを
   作成する */
    CIMNameSpace cns = new CIMNameSpace("happy", "A");
    UserPrincipal up = new UserPrincipal("Mary");
    PasswordCredential pc = new PasswordCredential("marys-password");
    CIMClient cc = new CIMClient(cns, up, pc);
    ...
} 


例 4–3 RBAC の役割 ID の認証

SolarisUserPrincipal および SolarisPasswordCredential クラスを使用して、ユーザーの役割 ID を認証します。次の例では、Mary の役割を Admin として認証します。

{
...
CIMNameSpaceRole cns = new CIMNameSpace("happy", "A");
SolarisUserPrincipal sup = new SolarisUserRolePrincipal("Mary", "Admin");
SolarisPswdCredential spc = new
        SolarisPswdCredential("marys-password", "admins-password");
CIMClient cc = new CIMClient(cns, sup, spc);

クライアント接続の終了

CIMClient クラスの close メソッドを使用して、クライアント接続を閉じ、セッションが使用したサーバーリソースを解放します。


例 4–4 クライアント接続の終了

次の例では、クライアント接続を閉じます。インスタンス変数 cc は、クライアント接続を表します。

...
cc.close();
...