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