モジュールとターゲットの分離の概要

モジュールを開発する際、複数のモジュールが使用できるサービスを識別します。 このようにしてサービスにてこ入れすることにより、開発サイクルとコストを最小化します。 多数のモジュールによって使用されるサービスがある場合は、 ターゲットがアップグレードされた場合に新規サービスへの切り替えが呼び出しモジュールに対して透過的になるように、呼び出しモジュールをターゲットから分離する必要があります。 このトピックでは、単純な呼び出しモデルと分離された呼び出しモデルを対比して、 分離がどのように役立つかを示す例を提供します。 特定の例について説明しますが、これが、ターゲットからモジュールを分離する唯一の方法というわけではありません。

単純な呼び出しモデル

モジュールを開発する際、その他のモジュールにあるサービスを使用することができます。 これは、モジュールにサービスをインポートしてからそのサービスを呼び出すことによって実行します。 インポートされたサービスは、WebSphere® Integration Developer で、 または管理コンソール内のサービスをバインディングすることによって、 その他のモジュールによってエクスポートされたサービスに「関連付け」られます。『単純な呼び出しモデル』は、このモデルを示しています。
図 1. 単純な呼び出しモデルこの図は、サービス ServiceA を呼び出すアプリケーション MyModule を示しています。
この呼び出しは、
アプリケーション DifferentModule の ServiceA でエクスポート・インターフェースに接続しているアプリケーション内のインポート・インターフェースを指します。

分離された呼び出しモデル

呼び出しモジュールを停止せずに呼び出しのターゲットを変更するには、 呼び出しのターゲットから呼び出しモジュールを分離します。 この場合、モジュールそのものではなくダウンストリーム・ターゲットを変更しているので、 ターゲットの変更中もモジュールが処理を続行できます。 『アプリケーションの分離の例』は、分離によって、 呼び出しモジュールの状況に影響を与えずにターゲットを変更する方法を示します。

アプリケーションの分離の例

単純な呼び出しモデルを使用した場合、 同一のサービスを呼び出す複数のモジュールは、 『単一のサービスを呼び出す複数のアプリケーション』のようになります。 APPA、APPB、および APPC はすべて CalculateFinalCost を呼び出します。
図 2. 単一のサービスを呼び出す複数のアプリケーション次の図は、CalculateFinalCost を直接呼び出す複数のモジュールを示しています。
CalculateFinalCost によって提供されるサービスは、 そのサービスを使用するすべてのモジュールに新規コストが反映されるように、 更新する必要があります。 開発チームは、新規サービス UpdatedCalculateFinal を構築およびテストして、 変更を取り込みます。 新規サービスは実動に移す準備ができています。 分離を使用しない場合は、UpdateCalculateFinal を呼び出すために、 CalculateFinalCost を呼び出すモジュールをすべて更新する必要があります。 分離を使用した場合、実行する必要があるのは、バッファー・モジュールをターゲットに 接続するバインディングを変更することだけです。
注: このようにサービスを変更することにより、オリジナルのサービスを、それを必要とするその他のモジュールに提供し続けることができます。
分離を使用して、アプリケーションとターゲットの間でバッファー・モジュールを作成します (『UpdateCalculateFinal を呼び出す分離された呼び出しモデル』を参照してください)。
図 3. UpdateCalculateFinal を呼び出す分離された呼び出しモデルこの図は、CalculateFinalCost を呼び出す ModA、ModB、および ModC を示しています。
この呼び出しは、CalculateFinalCost というサービスを含むアプリケーション BufferMod で解決します。
このサービスは、アプリケーション ActualMod で実際の CalculateFinalCost だけを指します。
このモデルで、呼び出しモジュールは変わりません。 実行する必要があるのは、バインディングをバッファー・モジュール・インポートからターゲットへ変更することだけです (『UpdatedCalculateFinal を呼び出す分離された呼び出しモデル』を参照してください)。
図 4. UpdatedCalculateFinal を呼び出す分離された呼び出しモデルこの図は、UpdateFinalCost を指す BufferMod 内の
CalculateFinalCost からのバインディングを示している前の図と似ています。
バッファー・モジュールがターゲットを同期で呼び出す場合、 元のアプリケーションに戻される結果は、 バッファー・モジュール (メディエーション・モジュール、 またはビジネス・モジュール用のサービス) を再始動したときに、 新規ターゲットから送信されます。 バッファー・モジュールがターゲットを非同期で呼び出す場合、 元のアプリケーションに戻される結果は、次の呼び出し時に新規ターゲットから送信されます。
関連情報
ターゲットの変更

ご利用条件 |


(c) Copyright IBM Corporation 2005, 2006.
本製品では Eclipse テクノロジーが採用されています。(http://www.eclipse.org)