Java クラスの実装

統合モジュールは、Java™ クラス・ファイルを使用するように実装できます。 Java クラス・ファイルを使用すると、統合コンポーネントの登録と構成を行う必要がなくなります。 さらに、基礎となっている統合モジュールの実装はすべて、工程管理製品に対して透過的に行うことができます。

Java クラスの統合モジュールでは、psdi.iface.mic.ServiceInvoker Java インターフェースを実装する必要があります。 サービス呼び出し側の Java インターフェースは、businessobjects.jar ファイルに含まれています。 統合モジュールの Java クラスは、実行時にシステム・クラス・パスに組み込みます。

サービス呼び出し側の Java インターフェースには、次のメソッド・シグニチャーのさまざまなバリエーションが含まれています。

public byte[] invoke(Map String,Object metaData, MboRemote sourceMbo, MboRemote targetMbo, String endPointName) throws MXException, RemoteException;

  • metaData は、以下を含む名前と値のプロパティーのマップです。
    • 統合モジュールの名前とバージョン。
    • 論理管理操作の名前とネーム・スペース。
    • 運用管理製品のグローバル・ユニーク ID。
    • 上書きされるエンドポイント名とエンドポイント・プロパティー。
  • sourceMbo は、論理管理操作で定義したソース・オブジェクトです。
  • targetMbo は、論理管理操作で定義した応答オブジェクトです。
  • endPointName は、運用管理製品との通信に使用するエンドポイントの名前です。

複数の論理管理操作を実装するように統合モジュールを構成した場合、どの論理管理操作を呼び出すかをその統合モジュールが決定する必要があります。 統合モジュールは、実行時に以下の metaData 入力マップから LMONAME および LMONAMESPACE プロパティーを取得します。

import psdi.iface.omp.IMConstants;
.
.
.
String lmoName = metaData.get(IMConstants.LMONAME);
String lmoNamespace = metaData.get(IMConstants.LMONAMESPACE);      

統合モジュールは論理管理操作のデータをソース・オブジェクトから取得することができます。 次のコード例では、論理管理操作の値がソース・オブジェクトから取得されます。

String guid = sourceMbo.getString("GUID");
int packID = sourceMbo.getInt("PACKID");
boolean hasSubs = sourceMbo.getBoolean("HASSUBS");

この例で、論理管理操作にはグローバル・ユニーク ID と呼ばれる英数字の入力属性、PACKID という整数属性、および HASSUBS というブール型属性が含まれています。

サービス呼び出し側のメソッドは、ソース入力として単一の MboRemote 値ではなく、MboSetRemote 値セットを取ることができます。 場合により、統合モジュールがオブジェクト・セット内のすべてのオブジェクトを運用管理製品に渡すことがあります。 そうでない場合、統合モジュールはオブジェクト・セットの最初のオブジェクトのみを渡します。 統合モジュールの動作に適用される設定済みのルールはありませんが、想定される動作を論理管理操作の説明の中で明確に定義する必要があります。