MOF は、DMTF によって開発されたコンパイル言語です。MOF は、CIM および WBEM の静的および動的クラスとインスタンスを定義します。Solaris WBEM Services に含まれる CIM および Solaris MOF を使用でき、独自の MOF を作成することもできます。DMTF の MOF 言語を使用して独自の MOF を作成する方法の詳細については、DMTF Web サイト (http://www.dmtf.org) を参照してください。
MOF コンパイラ mofcomp(1M) は、MOF ファイルを構文解析し、クラスおよびインスタンスを Java クラスに変換します。そのあと、クラスをデフォルトの root\cimv2 または他の指定された名前空間に追加します。MOF ファイルは簡単に Java に変換できるので、Java ベースのアプリケーションでは、Java 仮想マシン (JVM) を実行するコンピュータ上の MOF ファイルに含まれるデータを解釈および交換することができます。
Solaris のインストール時に MOF コンパイラにより、CIM スキーマおよび Solaris スキーマを記述する MOF ファイルが自動的にコンパイルされ、それらのファイルが CIM Object Manager Repository に追加されます。
WBEM、JavaBeansTM または Bean のコンテキストで CIM クラスおよびデータ要素にアクセスし、操作するためのメソッドおよびインスタンスを定義します。mofcomp コマンドで -j オプションを指定すると、MOF ファイルで定義された CIM クラスを表す JavaBeans が自動的に生成されるので、開発作業を簡略化できます。これらの自動生成された JavaBeans によってインタフェースが定義されます。実装コードを追加するかどうかは、開発者によって異なります。
プログラムが、基盤となる JavaBeans 実装に対して行った変更の影響を受けないようにするため、元の JavaBeans の代わりにインタフェースを使用します。
mofcomp コマンドに -j オプションを指定すると、CIMBean.java というベース Java インタフェースと CIMBeanImpl.java というインタフェースを実装するベース Bean が生成されます。CIMBeanImpl.java には、生成された Bean に共通するすべてのコードが含まれます。生成されたすべての Java インタフェースは CIMBean.java から継承され、生成されたすべての Bean は CIMBeanImpl.java から継承されるため、結果的にベース実装から継承されることになります。
MOF ファイルに定義されている各 CIM クラス用に MOF コンパイラの JavaBeans 生成機能は、次の要素で構成される Java インタフェースを生成します。
MOF ファイルで定義されているプロパティのアクセスおよび変更用メソッド
MOF ファイルで定義されている invokeMethods と同等のメソッド
CIM クラスの OUT 修飾子パラメータを含む invokeMethod 用に、メソッドの呼び出し生成出力を保持するコンテナインタフェースが生成されます。これらのインタフェースには、CIMClass_ MethodNameOutput.java という名前が付けられます。この CIMClass_MethodNameOutput.java コンテナインタフェースのインスタンスは、Bean メソッドの最後のパラメータとして必要です。Bean メソッドでパラメータとして使用される 1 つまたは複数の Object データ型は可変データ型ではないため、このコンテナインタフェースが必要になります。そのため、入力および出力データの両方を保持するためには使用できません。
-j オプションを利用するには、MOF ファイルに PACKAGE 要素を含める必要があります。次の形式で IMPORTS および EXCEPTIONS 要素を指定できます。
PACKAGE=NameOfJavaPackage IMPORTS=JavaClassName1:JavaClassName2:... EXCEPTIONS=Exception1:Exception2:...
次の表では、これらの要素について説明します。
表 2-1 MOF ファイル要素
要素 |
説明 |
---|---|
PACKAGE |
必須。MOF コンパイラによって生成されたソースファイルを含む Java パッケージ名を指定する |
IMPORTS |
任意。生成されたソースファイルにインポートする Java クラス名をコロン (:) で区切って指定する。必要な数の Java クラスを必要なだけの行にわたって指定できる |
EXCEPTIONS |
任意。生成されたソースファイルに含める Java 例外名をコロン (:) で区切って指定する。必要な数の Java クラス例外を必要なだけの行にわたって指定できる 注 - EXCEPTIONS を指定する場合、IMPORTS を指定する必要がある |