Sun WBEM SDK アプリケーションは、アプリケーションプログラミングインタフェース (API) を介して CIM (Common Information Model) Object Manager に情報またはサービスを要求します。この章で説明する内容は、次のとおりです。
CIM API、クライアント API、プロバイダ API についての詳細は、Javadoc リファレンスページを参照してください。
API によって、CIM オブジェクトが記述され、処理されます。これらの API により、CIM オブジェクトが Java クラスとして記述されます。オブジェクトとは、プリンタ、ディスクドライブ、CPU などの管理対象リソースをコンピュータ用に記述したモデルです。CIM Object Manager は、CIM (Common Information Model) 2.1 の仕様に準拠しています。そのため、API によってモデル化されるオブジェクトは、標準の CIM オブジェクトに準拠しています。
プログラマは、これらのインタフェースを使用して管理対象オブジェクトを記述したり、特定のシステム環境内の管理対象オブジェクト情報を取り出すことができます。CIM を使用して管理対象オブジェクトをモデル化する場合の利点は、CIM に準拠するシステム間でそれらのオブジェクトを共有できることです。
CIM API – アプリケーションがすべての基本的な CIM 要素を表現するために使用する、共通のクラスとメソッド。CIM API は、オブジェクトをローカルシステムに作成します。
クライアント API – アプリケーションが CIM Object Manager との間でデータ転送を行うために使用するメソッド。クライアント API は、ローカルシステムに作成されたオブジェクトを CIM Object Manager に転送します。
プロバイダ API – CIM Object Manager とオブジェクトプロバイダが相互通信のために使用するインタフェース。
次の表で、CIM API パッケージ内のインタフェースについて説明します。
表 3–1 CIM クラス
クラス |
説明 |
---|---|
CIMClass |
CIM クラス。共通の型をサポートする CIM インスタンスの集まり (プロパティとメソッドのセットなど) を記述するオブジェクト。このインタフェースは、開発者が作成するオブジェクトグループに必要な CIM 値を入力するテンプレートを作成する。 |
CIMDataType |
CIM のデータ型 (CIM 仕様の定義に基づく)。 |
CIMDateTime |
CIM の日時表記。 |
CIMElement |
CIM 要素。管理されるシステム要素の基底クラス。 |
CIMFlavor |
CIM 修飾子フレーバ。修飾子の特性の 1 つであり、修飾子を派生クラスまたは派生インスタンスに伝達できるかどうか、および派生クラスまたは派生インスタンスが修飾子の本来の値をオーバーライドできるかどうかを指定する規則を記述する。 |
CIMInstance |
CIM データの単位。このインタフェースは、特定のクラスに属する管理対象オブジェクトの記述に使用される。インスタンスには実際のデータが含まれる。 |
CIMMethod |
メソッド名、戻り値のデータ型、およびパラメータを含む宣言。 |
CIMNameSpace |
CIM ネームスペース。ほかのネームスペース、クラス、インスタンス、修飾子のデータ型、および修飾子を含むことができるディレクトリに似た構造を持つ。 |
CIMObjectPath |
CIM オブジェクトのパス名。オブジェクト名は、2 つの部分、ネームスペースとモデルパスから構成される。モデルパスは、ネームスペース内のオブジェクトを個々に識別する。 |
CIMParameter |
CIM パラメータ。呼び出し側メソッドから CIM メソッドに渡される値。 |
CIMProperty |
CIM クラスのインスタンスの特性を示す値。プロパティは、プロパティ値を設定する機能と、そのプロパティ値を返す機能の組み合わせと考えることができる。プロパティは、名前と 1 つのドメイン (そのプロパティを所有するクラス) を持つ。 |
CIMQualifier |
クラス、インスタンス、メソッド、またはプロパティを記述する修飾子。このクラスは、管理対象オブジェクトの属性の変更に使用される (たとえば、ディスクに読み取り権だけを追加するなど)。修飾子は、2 つのカテゴリ、CIM (Common Information Model) によって定義されるものと、開発者によって定義されるものに分類される。 |
CIMQualifierType |
CIM 修飾子の型。CIM 修飾子を作成するテンプレート。 |
CIMScope |
CIM スコープ。これは、修飾子を使用できる CIM オブジェクトを示す修飾子属性である。たとえば、修飾子 ABSTRACT は Scope (Class Association Indication) を持つが、これは ABSTRACT が、クラス、関連、インジケーションにだけ使用できることを意味する。 |
CIMValue |
CIM 値。これはプロパティ、参照、および修飾子に割り当てることができる値である。CIM 値は、データ型 (CIMDataType) と実際の値を持つ。 |
UnsignedInt8 |
符号なし 8 ビット整数。 |
UnsignedInt16 |
符号なし 16 ビット整数。 |
UnsignedInt32 |
符号なし 32 ビット整数。 |
UnsignedInt64 |
符号なし 64 ビット整数。 |
例外クラスは、Sun WBEM SDK クラスで起こり得るエラー状態を記述します。CIMException クラスは、CIM 例外の基底クラスです。CIM のほかの例外クラスはすべて、CIMException クラスのサブクラスです。
次の表で、CIM の例外クラスについて説明します。
表 3–2 例外クラス
クラス |
説明 |
---|---|
CIMClassException |
CIM クラスで発生する意味上の例外。MOF コンパイラ (mofcomp) は、このクラスを使用してコンパイル時に見つかる意味上のエラーを処理する。 |
CIMException |
例外的な CIM の状態。これは、CIM 例外の基底クラスである。 |
CIMInstanceException |
CIM インスタンスで発生する意味上の例外。 |
CIMMethodException |
CIM メソッドで発生する意味上の例外。 |
CIMNameSpaceException |
CIM ネームスペースで発生する意味上の例外。 |
CIMPropertyException |
CIM プロパティで発生する意味上の例外。 |
CIMProviderException |
CIM Object Manager のプロバイダで発生し得る例外状態。 |
CIMQualifierTypeException |
CIM 修飾子のデータ型で発生し得る例外状態。 |
CIMRepositoryException |
CIM リポジトリで発生し得る例外状態。 |
CIMSemanticException |
CIM 要素で発生し得る意味上の例外。この例外は、通常、CIM Object Manager が CIM 要素の追加、変更、または削除を試みる場合と、CIM の仕様に準拠しない不正な状況が発生する場合にスローされる。 |
CIMTransportException |
CIM トランスポートインタフェース (RMI と XML) で発生する例外状態。 |
クライアント API パッケージには、クライアントアプリケーションと CIM Object Manager 間でデータを転送するクラスとメソッドが含まれています。アプリケーションは、CIMClient クラスを使用して CIM Object Manager に接続し、次の表に示す CIMClient クラスのメソッドを使用して CIM Object Manager との間でデータ転送を行います。
表 3–3 クライアントメソッド
メソッド |
説明 |
---|---|
associators |
指定された CIM クラスまたはインスタンスに関連付けられている CIM クラスまたはインスタンスを取得する。 |
associatorNames |
指定された CIM クラスまたはインスタンスに関連付けられている CIM クラスまたはインスタンスの名前を取得する。 |
close |
CIM Object Manager へのクライアント接続を閉じる。このインタフェースは、クライアントセッションに使用されているリソースを解放する。 |
createClass |
CIM クラスを、指定されたネームスペースに追加する。 |
createInstance |
指定されたインスタンスが存在しない場合は、それを作成する。その CIM インスタンスがすでにある場合は、ID が CIM_ERR_ALREADY_EXISTS の CIMInstanceException をスローする。 |
createNameSpace |
CIM ネームスペース (クラスとインスタンスが入ったディレクトリ) を作成する。クライアントアプリケーションは、CIM Object Manager に接続する場合、ネームスペースを指定する。その後の処理はすべて、CIM Object Manager ホスト上のそのネームスペース内で発生する。 |
createQualifierType |
指定された CIM 修飾子型を、指定されたネームスペースに追加する。 |
deleteNameSpace |
指定されたホスト上の指定されたネームスペースを削除する。 |
deleteClass |
指定されたクラスを削除する。 |
deleteInstance |
指定されたインスタンスを削除する。 |
enumClass(CIMObjectPath path, boolean deep) |
Path で指定されたクラスを列挙する。このメソッドは、CIMObjectPath オブジェクトの列挙として 、各クラスの (内容ではなく) 名前を返す。deep が指定されていると、メソッドは、列挙されるクラスから派生したすべてのクラスの名前を列挙する。shallow が指定されていると、列挙するクラスの第一レベルの子の名前だけを列挙する。 |
enumClass(CIMObjectPath path, boolean deep, boolean localonly) |
Path で指定されたクラスを列挙する。このメソッドは、CIMClass オブジェクトの列挙として、クラスの名前だけでなく、クラスの内容全体を返す。deep が指定されていると、メソッドは、列挙されるクラスから派生したすべてのクラスを列挙する。shallow が指定されていると、列挙するクラスの第一レベルの子だけを列挙する。localOnly が真の場合は、継承されたプロパティやメソッド以外のプロパティやメソッドだけを返し、真でない場合は、すべてのプロパティとメソッドを返す。 |
enumInstances(CIMObjectPath path, boolean deep) |
Path で指定されたクラスのインスタンスを列挙する。このメソッドは、CIMObjectPath オブジェクトの列挙として、path で指定されたクラスのインスタンスの名前を返す。deep が真の場合は、指定されたクラスとこのクラスのすべての派生クラスのすべてのインスタンスの名前を返す。真でない場合は、指定されたクラスに属するインスタンスの名前だけを返す。 |
enumInstances(CIMObjectPath path, boolean deep, boolean localOnly) |
Path で指定されたクラスのインスタンスを列挙する。このメソッドは、CIMInstance オブジェクトの列挙として、指定されたクラスのインスタンス (インスタンスの名前だけでなく、インスタンス全体) を返す。 |
enumNameSpace |
ネームスペースのリストを取得する。 |
enumQualifierTypes |
指定されたクラス (1 つまたは複数) の、修飾子のデータ型を取得する。 |
execQuery(CIMObjectPath relNS, java.lang.String query, int ql) |
照会に指定されたプロパティ値と同じプロパティを持つインスタンスの列挙を返す。照会言語には ql を使用する。現在は、WQL (WBEM Query Language) だけがサポートされる。この照会言語は、CIM オブジェクトモデルを SQL テーブルにマップする。 |
getClass |
指定された CIM オブジェクトパスの CIM クラスを取得する。 |
getInstance |
指定された CIM オブジェクトパスの CIM インスタンスを取得する。 |
getProperty |
指定されたプロパティの値を返す。 |
getQualifierType |
指定された CIM オブジェクトパスの修飾子型を取得する。 |
invokeMethod |
指定されたオブジェクトに対して指定されたメソッドを実行する。メソッドは、メソッド名、戻り値のデータ型、およびメソッド内のパラメータを含む宣言である。 |
references |
指定された CIM クラスまたはインスタンスを参照する関連を取得する。 |
referenceNames |
指定された CIM クラスまたはインスタンスを参照する関連の名前を取得する。 |
setClass |
指定された CIM クラスが存在する場合は、それを更新する。その CIM クラスが存在しない場合は、エラーを返す。 |
setInstance |
指定された CIM インスタンスが存在する場合は、それを更新する。その CIM インスタンスが存在しない場合は、エラーを返す。 |
setProperty |
指定されたプロパティに、指定された値を設定する。 |
次の表で、com.sun.wbem.client パッケージに含まれているインスタンスについて説明します。
表 3–4 com.sun.wbem.client パッケージに含まれているインスタンス
インタフェース |
説明 |
---|---|
CIMOMHandle |
CIM Object Manager への参照をクライアントに提供する。このインタフェースには、クライアントが CIM Object Manager との間でデータを転送するときに使用するメソッドが含まれている。 |
ProviderCIMOMHandle |
CIM Object Manager への参照をプロバイダに提供する。このインタフェースには、プロバイダが CIM Object Manager との間でデータを転送するときに使用するメソッドが含まれている。 |
次の表で、ProviderCIMOMHandle インタフェースに含まれているメソッドについて説明します。
表 3–5 ProviderCIMOMHandle インタフェースのメソッド
メソッド |
説明 |
---|---|
decryptData |
指定された文字列の値を認証セッションキーを使って復号化する (暗号化されている場合)。 |
getCurrentAuditId |
リモートクライアント接続を識別するためのレコードを監査するときに使用されるセッション識別子 (一般には固有のもの) を返す。 |
getCurrentRole |
現在の認証済みユーザーが担う現在の役割を返す。 |
getCurrentUser |
プロバイダが呼び出される原因になった現在のユーザーを返す。 |
getInternalProvider |
内部インスタンスプロバイダへの参照を返す。この参照を使えば、プロバイダの静的インスタンスの情報を格納できる。 |
プロバイダ API パッケージ (com.sun.wbem.provider と com.sun.wbem.provider20) には、CIM Object Manager とオブジェクトプロバイダが相互に通信するときに使用するインタフェースが含まれています。プロバイダは、これらのインタフェースを使って CIM Object Manager の動的データを提供することができます。
クライアントアプリケーションが CIM Object Manager に動的なデータを要求する場合、CIM Object Manager はこれらのインタフェースを使用して要求をプロバイダに渡します。プロバイダは、CIM Object Manager の要求に応答して次に示す機能を実行するクラスです。
次の表で、Provider パッケージ内のインタフェースについて説明します。
表 3–6 com.sun.wbem.provider インタフェース
インタフェース |
説明 |
---|---|
CIMProvider |
すべてのプロバイダによって実装される基底インタフェース。 |
InstanceProvider |
インスタンスプロバイダによって実装されるインタフェース。インスタンスプロバイダは、クラスの動的インスタンスを提供する。このインタフェースは非推奨。代わりに com.sun.wbem.provider20 の InstanceProvider インタフェースを使用してください。 |
MethodProvider |
メソッドプロバイダによって実装されるインタフェース。メソッドプロバイダは、CIM クラスの全メソッドの実装を提供する。 |
PropertyProvider |
プロパティプロバイダによって実装されるインタフェース。プロパティプロバイダは、動的プロパティの検出と更新に使用される。動的データは、CIM Object Manager Repository には格納されない。 |
次の表で、com.sun.wbem.provider20 パッケージに含まれているインタフェースについて説明します。
表 3–7 com.sun.wbem.provider20 のインタフェース
インタフェース |
説明 |
---|---|
AssociatorProvider |
動的関連のプロバイダによって実装されるインタフェース。 |
Authorizable |
CIM Object Manager にユーザー認証を依頼するのではなく、認証検査を独自に行うプロバイダによって実装されるインタフェース。 |
InstanceProvider |
インスタンスプロバイダによって実装されるインタフェース。インスタンスプロバイダはクラスの動的インスタンスを提供する。 |