既存のビジネス・コンポーネント・アプリケーションのカスタマイズについて

Business Components for Javaで開発されたアプリケーションは、通常のエンタープライズ・アプリケーションよりもカスタマイズが簡単です。このトピックでは、まず通常のアプリケーションのカスタマイズ方法を説明してビジネス・コンポーネントを使用した場合の利点と比較し、次にビジネス・コンポーネントを拡張する手順を示します。

通常のエンタープライズ・アプリケーションのカスタマイズ

エンタープライズ・アプリケーションは、顧客に納品されインストールされた後、特定のサイトのニーズに合せて通常カスタマイズされます。カスタマイズは、ほとんどの場合、オリジナル・アプリケーションのソース・コードを入手し、これを修正して行います。カスタマイズを目的としたオリジナル・ソース・コードの変更は、オンサイト・コンサルタントまたは社内のITエンジニアが行います。ソース・コードの変更はリスクが高く、新機能および基礎となる本来の機能が正常に動作するかを再テストする必要があります。カスタマイズされたアプリケーションは、費用および時間のかかるこの処理の後、使用されます。

一定期間が経過すると、バグを修正し、新機能を追加したオリジナル・アプリケーションの新バージョンがサイトにデプロイされます。このとき、オンサイト・コンサルタントまたは社内のITエンジニアは次のことを行う必要があります。

これは、オリジナル・アプリケーションの新バージョンがデプロイされるたびに繰り返す必要があります。

ビジネス・コンポーネント・アプリケーションのカスタマイズ

対照的に、Business Components for Javaフレームワークでは、階層型のコンポーネントのカスタマイズがサポートされています。つまり、ビジネス・コンポーネントのセットとして作成およびデプロイされたアプリケーションを、オリジナル・アプリケーションのソース・コードを変更せずに、容易に拡張することができます。

ビジネス・コンポーネントでは、オリジナル・アプリケーションのソース・コードを変更せずにカスタマイズを行うことができます。手動でカスタマイズを再適用せずに、オリジナル・アプリケーション・コンポーネントの新バージョンを使用することができます。

Business Components for Javaフレームワークでは、オリジナル・コンポーネントの既存の機能を有効にしたまま新しい機能、属性およびビジネス・ロジックを追加することも、オリジナルの動作をオーバーライドすることもできます。

オプションで、ファクトリ置換により、オリジナル・アプリケーションのソース・コードを変更せずに、カスタマイズしたコンポーネントで、デプロイされたアプリケーションのオリジナル・コンポーネントの実装を完全に置き換えることができます。つまり、カスタマイズしたOrderコンポーネントでカスタマイズの一部として税金の計算方法を変更した場合、CustomizedOrderコンポーネントを作成し、元のOrderコンポーネントと置き換えると、既存の注文入力システムでこの新しい動作が使用されます。

JDeveloperを使用したアプリケーションのカスタマイズ

JDeveloperのウィザードには、既存のビジネス・コンポーネントの定義を拡張する機能が提供されています。拡張できるコンポーネントは次のとおりです。

ウィザードでは、既存のコンポーネントを指定し、これを基礎としてコンポーネントを拡張できます。次に、JDeveloperにより、拡張したコンポーネントのJavaファイルおよびXMLファイルが生成されます。拡張されたコンポーネントは、Javaの拡張機能を使用して、ベース・コンポーネントのJava実装クラスおよびメタデータを継承します。この継承は複数レベルへ拡張できます。つまり、コンポーネントAを拡張してコンポーネントBを作成し、コンポーネントBを拡張してコンポーネントCを作成できます。

ビジネス・コンポーネントのカスタマイズの手順

コンポーネントをカスタマイズするには、次のようにします。

  1. 既存のコンポーネント、およびそのプロジェクト・ファイル(.jpx)を含めるJARファイルを作成します。JARファイルは通常、アプリケーションの開発元から提供されます。
  2. JARファイルに対してJDeveloperライブラリを作成し、新しいプロジェクトのライブラリのリストに追加します。
  3. JDeveloperで「パッケージのインポート」オプションを使用して、JARファイルから既存コンポーネントのパッケージをインポートします。
  4. カスタマイズしたコンポーネントを格納する、オリジナルとは異なる名前の新規パッケージを作成します。
  5. ウィザードを使用して、インポートしたパッケージのコンポーネントを拡張する新規パッケージに新規コンポーネントを作成します。
  6. 拡張したコンポーネントで既存アプリケーションのオリジナルを完全に置き換える場合、オリジナルと拡張したコンポーネントを置き換えます(オプション)。