クライアントが WBEM 操作を実行するためには、まずアプリケーションから CIMOM への接続を確立する必要があります。たとえば、CIM クラス、CIM インスタンス、CIM 修飾子型などを追加、変更、または削除する WBEM 作業があります。クライアントアプリケーションと CIM オブジェクトマネージャは、同一のホスト上でも、別のホスト上でも実行可能です。また、複数のクライアントが 1 つの CIM オブジェクトマネージャに接続を確立することもできます。
アプリケーションが CIMOM への接続を確立する場合、名前空間への接続も行う必要があります。後続の操作はすべてこの名前空間上で行われます。名前空間は、ディレクトリに似た構造を持ち、内部にクラス、インスタンス、および修飾子型を含みます。名前空間内のオブジェクト名は、すべて一意にする必要があります。Solaris WBEM SDK をインストールすると、次の 4 つの名前空間が作成されます。
root\cimv2 – デフォルトの名前空間。Solaris WBEM ソフトウェアがインストールされたシステムのオブジェクトを表す CIM クラスが含まれる。
root\snmp – SNMP アダプタクラスが含まれる。
root\system – CIM オブジェクトマネージャ を管理するクラスが含まれる。
クライアント接続を開始する場合、CIMClient クラスを使用して CIM オブジェクトマネージャに接続します。CIMClient クラスは、次の 4 つの引数を取ります。
名前 – 必須。クライアント接続に使用されるホストおよび名前空間の名前を含む CIMNameSpace オブジェクトのインスタンス。デフォルト値は、ローカルホスト上の root\cimv2 です。ローカルホストとは、クライアントアプリケーションを実行しているホストです。クライアントから CIMOM への接続が確立されたあと、後続の CIMClient 操作はすべて指定された名前空間内で行われます。
principal – 必須。有効な Solaris OS ユーザーアカウント名を含む UserPrincipal オブジェクトのインスタンス。CIMOM は、ユーザー名からそのアクセス特権を確認し、CIM オブジェクトに許可されたアクセスの種類を決定します。
credential – 必須。UserPrincipal Solaris OS アカウントの有効なパスワードを含む PasswordCredential オブジェクトのインスタンス。
protocol – 任意 (文字列)。CIMOM へのメッセージ送信に使用するプロトコル。有効な値は、RMI (デフォルト値) または HTTP です。
次の例では、アプリケーションは、デフォルトの名前空間のローカルホストで稼働する 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); ... }
次の例では、アプリケーションは、最初に CIMNameSpace、UserPrincipal、および 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); ... }
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(); ...