プロバイダ例は、システムプロパティを返し、文字列「Hello World」を出力する Java プログラムです。プロバイダは、ネイティブ C メソッドを呼び出してコードを実行し、値をプロバイダに返します。
次の表は、プロバイダプログラムの各ファイルについて説明しています。
表 8-2 プロバイダファイル例
ファイル |
目的 |
---|---|
NativeProvider |
CIM Object Manager からの要求に応答し、それらを Native_Example プロバイダに送る最上位レベルのプロバイダプログラム。NativeProvider プログラムは、instanceProvider API と method Provider API を実装し、Native_Example クラスのインスタンスを列挙するメソッドと、取得するメソッドを宣言する。このプログラムは、文字列「Hello World」を出力するメソッドを呼び出すメソッドも宣言する |
Native_Example.mof |
NativeProvider プロバイダを CIM Object Manager に登録するクラスを作成する。Native_Example.mof ファイルは、NativeProvider を、Native_Example クラスの動的データ要求に対してサービスを行うプロバイダとして識別する。この MOF ファイルは、NativeProvider によって実装されるプロパティとメソッドの宣言も行う |
Native_Example.java |
NativeProvider プログラムは、このプロバイダを呼び出して、Native_Example クラスのインスタンスを列挙するメソッドと取得するメソッドを実装する。Native_Example プロバイダは、API を使用してオブジェクトの列挙とオブジェクトインスタンスの作成を行う。Native_Example クラスは、native.c ファイル内の C 関数を呼び出してシステム固有の値 (ホスト名、シリアル番号、リリース、マシン、アーキテクチャ、メーカーなど) を取得するネイティブメソッドの宣言も行う |
native.c |
Native_Example Java プロバイダからの呼び出しをネイティブ C コードで実装する C プログラム |
Native_Example.h |
Native_Example クラスに対して自動的に生成されるヘッダーファイル。Java ネイティブメソッド名とそれらのメソッドを実行するネイティブ C 関数間の対話を定義する |
libnative.so |
native.c ファイルからコンパイルされるバイナリネイティブ C コード |
Java プログラムの作成、および Java プログラムとネイティブメソッドの統合についての詳細は、Java の Web サイト http://www.javasoft.com/docs/books/tutorial/native1.1/TOC.html を参照してください。
プロバイダプログラム例 NativeProvider は、Native_Example クラスのインスタンスの列挙と、インスタンスプロパティの取得を行います。Native_Example クラスとそのインスタンスは、CIM WorkShop を使用して表示できます。
次に示す方法の 1 つを使用して、共有ライブラリファイルの場所を指定します。
LD_LIBRARY_PATH 環境変数を、共有ライブラリファイルの場所に設定します。次に入力例を示します。
% setenv LD_LIBRARY_PATH /install_dir/SUNWconn/wbem/demo/provider/jni/ |
共有ライブラリファイルを、LD_LIBRARY_PATH 環境変数によって指定されているディレクトリにコピーします。WBEM のインストールを行うと、この環境変数は /install_dir/opt/SUNWconn/wbem/lib に設定されます。次に入力例を示します。
% cp libnative.so /install_dir/opt/SUNWconn/wbem/lib % cp native.c /install_dir/opt/SUNWconn/wbem/lib % cp Native_Example.h /install_dir/opt/SUNWconn/wbem/lib |
プロバイダクラスファイルを、 CIM Object Manager が入っているディレクトリに移動させます。次に入力例を示します。
% mv Native*.class /install_dir/opt/SUNWconn/wbem/bin |
CIM Object Manager が動作していることを確認します。
インストールを行うと CIM Object Manager は自動的に起動します。CIM Object Manager が動作していない場合は、「CIM Object Manager の再起動」を参照してください。
Native_Example.mof ファイルをコンパイルします。次に入力例を示します。
% mofcomp Native_Example.mof |
この MOF ファイルをコンパイルすると、CIM Object Manager に Native_Example クラスが読み込まれ、NativeProvider がそのプロバイダとして識別されます。
CIM WorkShop を実行し、Native_Example クラスを表示します。次に入力例を示します。
% /opt/SUNWconn/wbem/bin/cimworkshop & |
ツールバーで「クラスを検索 (Find Class)」アイコンをクリックします。
「入力 (Input)」ダイアログボックスで、Native_Example と入力して「了解 (OK)」をクリックします。