クライアントアプリケーションは、最初に CIM Object Manager を使用して接続を確立してから、CIM クラス、CIM インスタンス、CIM 修飾子タイプの追加、変更、削除などの WBEM 操作を実行します。クライアントアプリケーションと CIM Object Manager は、同一のホスト上でも、別のホスト上でも実行可能です。また、複数のクライアントが 1 つの CIM Object Manager に接続を確立することもできます。
アプリケーションが CIM Object Manager への接続を行う場合、名前空間への接続も行う必要があります。後続の操作はすべてこの名前空間上で行われます。名前空間は、ディレクトリに似た構造を持ち、内部にクラス、インスタンス、および修飾子タイプを含みます。名前空間内のオブジェクト名は、すべて一意にする必要があります。Solaris WBEM SDK をインストールすると、次の 4 つの名前空間が作成されます。
root\cimv2 – デフォルトの名前空間。Solaris WBEM Services がインストールされたシステムのオブジェクトを表す CIM クラスが含まれる。
root\snmp– SNMP アダプタクラスが含まれる。
root\system– CIM Object Manager を管理するクラスが含まれる。
クライアント接続を開始する場合、CIMClient クラスを使用して CIM Object Manager に接続します。CIMClient クラスは、次の 4 つの引数を取ります。
name – 必須。クライアント接続に使用されるホストおよび名前空間の名前を含む CIMNameSpace オブジェクトのインスタンス。デフォルトは、ローカルホスト (クライアントアプリケーションが稼働するホスト) 上の root\cimv2。CIM Object Manager への接続が完了すると、後続の CIMClient 操作はすべて指定された名前空間内で発生する
principal – 必須。有効な Solaris ユーザーアカウント名を含む UserPrincipal オブジェクトのインスタンス。CIM Object Manager は、ユーザー名のアクセス権を検査して、CIM オブジェクトに許可されるアクセスの種類を判断する
credential – 必須。UserPrincipal Solaris アカウントの有効なパスワードを含む PasswordCredential オブジェクトのインスタンス
protocol – 任意 (文字列)。CIM Object Manager へのメッセージ送信に使用するプロトコル (RMI (デフォルト) または HTTP)
次の例では、アプリケーションは、デフォルトの名前空間のローカルホストで稼働する CIM Object Manager に接続します。アプリケーションは、デフォルトの名前空間のすべての CIM オブジェクトに読み取り権および書き込み権を持つ、ルートアカウント用 UserPrincipal オブジェクトを作成します。
{
...
/* 2 つの NULL 文字を使用して初期化された名前空間オブジェクトを作成する。
2 つの NULL 文字はデフォルトのホスト (ローカルホスト) とデフォルトの
名前空間 (root\cimv2) を表す */
CIMNameSpace cns = new CIMNameSpace("", "");
UserPrincipal up = new UserPrincipal("root");
PasswordCredential pc = new PasswordCredential("root_password");
/* root パスワードを使用し、スーパーユーザーとして名前空間に接続する */
CIMClient cc = new CIMClient(cns, up, pc);
...
}
次の例では、アプリケーションは、最初に CIMNameSpace、UserPrincipal、および PasswordCredential オブジェクトのインスタンスを作成します。次に、 CIMClient クラスを使用して CIM Object Manager に接続し、ホスト名、名前空間、ユーザー名、およびパスワード資格を CIM Object Manager に渡します。
{
...
/* ホスト 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);
...
...
}
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 メソッドを使用して、クライアント接続を閉じ、セッションが使用したサーバーリソースを解放します。
次の例では、クライアント接続を閉じます。インスタンス変数 cc は、クライアント接続を表します。
... cc.close(); ...