ベスト・プラクティス: ビジネス・サービスに関するモジュールおよびパッケージ化

ビジネス・インテグレーション・アプリケーションを開発するときに、 JSP ファイル、JAR ファイル、Web プロジェクト、Java™ プロジェクト、 および J2EE プロジェクトなどのリソースとを操作する必要がある場合があります。 このトピックでは、プロジェクトとリソースをセットアップして、 これらを正常にビルドし、WebSphere® プロセス・サーバーにデプロイできるようするために役立つ情報を提供します。

スタンドアロン参照を使用して機能する JavaServer Pages ファイル

JavaServer Pages (JSP) ファイルは、 モジュール・アセンブリーでスタンドアロン参照を使用して Service Component Architecture (SCA) のコンポーネントを呼び出します。 JSP ファイルはモジュール・アセンブリーと同じ EAR ファイルでデプロイする必要があります。 以下に、JSP ファイルをモジュールに追加するためのステップを示します。
  1. Web プロジェクトを作成します。
  2. Web プロジェクトで JSP ファイルをビルドします。 コードをインポートする場合は、Web プロジェクトにインポートします。『サンプル JSP コード』を参照してください。
  3. 依存関係エディターでモジュール (スタンドアロン参照を持つモジュール) を開きます。 Web プロジェクトで J2EE プロジェクトとして依存関係を追加します。 「モジュールと共にデプロイ」チェック・ボックス・オプションが選択され、 Web プロジェクトが EAR ファイルに追加されることを確認します。
注: sca.references ファイルを別の EAR ファイルにコピーしないでください。 このファイルは、所属しているモジュール以外では動作しません。

Web プロジェクトが別の EAR ファイルに存在する場合、JSP ファイルは別のモジュールにあり、 JSP ファイルが別のモジュールのサービスと連動するにはインポートとエクスポートが必要です。

サンプル JSP コード

モジュール・アセンブリーでスタンドアロン参照を使用するサンプルの JSP コードを以下に示します。

com.ibm.websphere.sca.Service bankService = (com.ibm.websphere.sca.Service)com.ibm.websphere.sca.ServiceManager.INSTANCE.locateService("BankServicePartner");
=> "BankServicePartner" 参照名はモジュールの sca.references ファイルから付けられています (例えば、<reference name="BankServicePartner">...)。. このファイルは、配線エディターでスタンドアロン参照を作成した後で存在します。
com.ibm.websphere.sca.scdl.OperationType operationType = bankService.getReference().getOperationType("openAccount");
=> 操作タイプを使用して、呼び出し操作に渡す必要がある DataObject タイプを取得します。
com.ibm.websphere.bo.BOFactory factory = (com.ibm.websphere.bo.BOFactory) new com.ibm.websphere.sca.ServiceManager().locateService("com/ibm/websphere/bo/BOFactory");
=> ビジネス・オブジェクトを作成するためのファクトリーを取得する標準的な方法です。
commonj.sdo.DataObject input = factory.createByType(operationType.getInputType());
=> 操作が入力として予想する正しい種類のデータ・オブジェクトを作成します。
commonj.sdo.DataObject customer = input;
=> ここでは、ラップ済み入力はないものと想定します。
if(operationType.isWrapperType(operationType.getInputType()))
{
=> この場合に参照を呼び出すには、インターフェースの WSDL ファイルで定義したラッパーを受け渡す必要があります。そのため、ラップ済みデータ・オブジェクトを作成し、これをラッパー上に設定します (プロパティー名は WSDL ファイルのインライン・スキーマから付けられます)。
customer = factory.createByType(operationType.getInputType().getProperty("customer").getType());
input.set("customer", customer);
}
customer.setString("firstName", "Bob");
customer.setString("lastName", "Smith");
customer.setString("address", "7 Holly Drive");
customer.setBoolean("isGold", true);
customer.setInt("birthYear", 1976);
=> 上記の 5 行は Customer に属性を設定します。
commonj.sdo.DataObject output = (commonj.sdo.DataObject)bankService.invoke("openAccount",input);
commonj.sdo.DataObject account = null;
if(operationType.isWrapperType(operationType.getOutputType()))
account = output.getDataObject("account");
else
	account = output;
=> 戻された出力はラップ済みの場合もあり、ラップされていない場合もあります。

Java コードでの作業

ベスト・プラクティス: ビジネス・インテグレーション・モデルで使用される Java アプリケーションを開発したり、JAR ファイルをインポートする必要がある場合は、 そのコードの Java プロジェクトを作成し、その Java プロジェクト上で、Java コードを使用するモジュールに依存関係を追加します。

ビジネス・インテグレーション・ライブラリーまたはモジュールの Java プロパティーは変更しないでください。 変更するとデプロイメント・コードの作成で問題が生じることがあります。 このため、使用を目的とした、複雑な Java アプリケーションの開発、 あるいはライブラリーまたはモジュールへの JAR ファイルのインポートはお勧めしません 。また、アセンブリー図でコンポーネントの Java 実装を生成するとき、生成される Java 実装は、 他の Java クラスを呼び出すための起動点として使用する必要があります。

「ビジネス・インテグレーション」ビューには、アセンブリー図で使用される Java 実装とインターフェースのみが表示されることに注意してください。 これらの実装とインターフェースは、これらを使用するモジュールの下にリストされます。 Java プロジェクトを操作する必要がある場合、 「Java」™ パースペクティブでの作業に切り替えることができます。

「Java」パースペクティブへの切り替え

以下のステップに従って、「Java」パースペクティブを開きます。

  1. メニューから「ウィンドウ (Window)」 > 「パースペクティブを開く」 > 「その他...」を選択します。
  2. 「Java」を選択し、「OK」をクリックします。

「Java」パースペクティブで、ワークベンチ・ウィンドウの右上隅に 2 つの開いたパースペクティブが表示されます。 次のイメージにされている、「ビジネス・インテグレーション・パースペクティブ (Business Integration perspective)」ボタンをクリックすることにより、 「ビジネス・インテグレーション」パースペクティブに切り替えることができます。

ワークベンチ・ウィンドウの右上隅に表示されている 2 つのパースペクティブのボタン

Java プロジェクトにおける Java 開発のための説明を以下に示します。
  • Java プロジェクトを作成します。
  • Java プロジェクトで Java 開発を行います。 JAR ファイルをインポートする必要がある場合は、ファイルを Java プロジェクトにインポートします。 JAR ファイルをモジュールまたはライブラリーにはインポートしないでください。 JAR を EAR ファイルに追加することはできません
  • 依存関係エディターを使用して、Java コードを使用するモジュールを開きます。 従属プロジェクトとして Java プロジェクトを追加し、 「モジュールと共にデプロイ」チェック・ボックスが選択されていることを確認します。 依存関係エディターは Java プロジェクトをモジュールのクラスパスに追加します。 JAR ファイルはモジュールと共にデプロイされます。

インポートおよびエクスポート用のビジネス・オブジェクトおよびインターフェース

ベスト・プラクティス: アセンブリー図でインポートおよびエクスポートを使用する場合は、 インポートおよびエクスポートで使用されるビジネス・オブジェクトおよびビジネス・インターフェースをライブラリーに入れて、それらを共用できるようにするのが良い方法です。 次に、ライブラリーへの依存関係を、これらの共通リソースを使用するすべてのモジュールに追加します。 同じビジネス・オブジェクトとビジネス・インターフェースを異なるモジュールにコピーして使用することは避けてください。

共用されるライブラリー・リソース

デプロイメントの後で、 共用リソースがライブラリー内で変更された場合は、リソースを使用するモジュールを更新する必要があります。 例えば、2 つのモジュールがライブラリー内のいくつかのリソースを共用している場合に、 アプリケーションがデプロイされ、モジュールの 1 つを更新する必要があるとします。 更新した結果、ライブラリー内の共用リソースのいくつかが変更されます。 この場合、2 つ目のモジュールも更新して、共用リソース内の変更を反映する必要があります。

モジュールまたはライブラリーに置く必要がある WSDL ファイル

モジュールで WSDL ファイルを使用する必要がある場合は、 これをモジュールにコピーします。 オプションで、WSDL ファイルをライブラリーにコピーし、モジュール内において、 ライブラリーへの依存関係を設定します。これで、ライブラリーのリソースを使用できるようになります。 別のタイプのプロジェクト、例えば Web プロジェクトから WSDL ファイルをドラッグしようとすると、 モジュールまたはライブラリーに WSDL をコピーするように促すエラー・メッセージが表示されます。

J2EE モジュール名

ビジネス・インテグレーション・モジュールは、 J2EE プロジェクトを構成する J2EE EAR ファイルを作成する単純なプロジェクトです。 モジュールの名前が MyApp の場合は、 以下の名前の J2EE プロジェクトが生成されます。 これらの名前は、独自の J2EE プロジェクトには使用しないでください。
  • MyAppApp
  • MyAppEJB
  • MyAppEJBClient
  • MyAppWeb

エディターを使用しない依存関係の変更

依存関係エディター以外でのモジュール依存関係の変更は避ける必要があります。

ライブラリー、Java プロジェクト、または J2EE プロジェクトへの依存関係を追加すると、 モジュールのプロパティーが変更されます。 モジュールのプロパティーは以下のように変更されます。

  • 「Java のビルド・パス」で、 ライブラリーまたはプロジェクトがビルド・パスに追加されます。
  • 「プロジェクト参照 (Project References)」で、 どの J2EE プロジェクトまたはユーティリティー JAR を、モジュール用の結果の EAR ファイルに含めるかが判別されます。 従属関係エディターで、ライブラリーまたはプロジェクトもモジュールと共にデプロイすることが選択されている場合、 選択されたライブラリーまたはプロジェクトが「プロジェクト参照 (Project References)」 に入力され、 デプロイメント用 EAR ファイルに追加されます。

モジュールおよびライブラリーのプロパティーを編集する代わりに、 依存関係エディターを使用してご使用のモジュールおよびライブラリーのプロジェクトの依存関係を管理します。 モジュールおよびライブラリーのプロパティーには重要な Java 前提事項が設定されているため、Java プロパティーを変更すべきではありません。 例えば、ソース・フォルダーや出力フォルダーを変更しないでください。

関連概念
モジュールおよびライブラリー
モジュールとライブラリーの依存関係
ビジネス・インテグレーションのケイパビリティーおよびロール
ビジネス・インテグレーションの虎の巻
ビジネス・サービス: コンポーネントおよびモジュール
メディエーション・サービス: コンポーネントおよびメディエーション・モジュール
関連タスク
ビジネス・サービスに関するモジュールの作成
メディエーション・モジュールの作成
デフォルト名前空間の変更
ツール・ケイパビリティーを使用可能にする
モジュールおよびライブラリーへの依存関係の追加
ライブラリーの作成
エクスポートの作成
関連資料
WSDL と Java インターフェースおよび参照

関連情報

チュートリアル: モジュールおよびライブラリーの操作

Feedback
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.
(C) Copyright IBM Japan 2006