バージョン 7.1 で導入された WebFacing アプリケーション・ブリッジによって、新規の Web アプリケーション (例えば EGL で記述されたもの) を既存の WebFacing および/または HATS アプリケーションとシームレスに相互運用することができます。
このテクノロジーによって、WebFacing および/ま たは HATS を使用して、素早く簡単にアプリケーションを最新のものにすることができ、新規の Web アプリケーションを繰り返し追加して最新の Web テクノロジーを活用できます。
アプリケーション・ブリッジによって、WebFacing アプリケーションと、EGL など他の Web アプリケーションとの間で制御およびデータを転送し、HATS、WebFacing および EGL アプリケーションを単一のアプリケーションとして結合することができます。 これは、Web アプリケーション内で直接デー タベース・アクセスを使用して、 i5/OS® からデータを取得したり、Web サービスを介してバッ チ・プログラムを呼び出すことで、 i5/OS からデータを取得する方法よりも優れています。 新規の Web アプリケーションを、対話式の i5/OS アプリケーションにリンクさせ、データを共有することができます。
WebFacing アプリケーションおよび対応する Web アプリケーションは、デプロイメントのために EAR ファイルとして圧縮されている必要があります。EAR ファイルは、IDE の J2EE パースペクティブを使用して作成することができます。
WebFacing アプリケーションと他の Web アプリケーションとの間の相互運用性をサポートするには、DDS リンケージ・レコードが作成され、アプリケーション・ブリッジの Web 設定がそのレコード用に設定されている必要があります。DDS リンケージ・レコードは、隠しフィールド (使用法 H) として定義したフィールドを含む標準の DDS レコードで、これをデータの転送に使用することができます。DDS リンケージ・レコードが、実際に表示されることはありません。これは、ご使用の i5/OS アプリケーションがレコードに書き込みを行なったときに、アプリケーション・ブリッジ Web 設定のターゲット・アプリケーション URL 内に指定された Web アプリケーションへのデータおよび制御の転送に使用されるだけです。
DDS リンケージ・レコードの作成について詳しくは、DDS ソースでの Web 設定の使用で、アプリケーション・ブリッジの Web 設定について参照してください。
シナリオ 1 は、i5/OS アプリケーションが DDS リンケージ・レコード上で書き込みおよび読み取りを行なったときに、データを WebFacing アプリケーションから、アプリケーション・ブリッジ Web 設定のターゲット・アプリケーション URL 内に指定された Web アプリケーションに渡します。 そして WebFacing アプリケーションは Web アプリケーションからの応答を待ちます。Web アプリケーションは、LinkageData 要求属性によってデータを読み取り、更新があれば行い、その更新を WebFacing アプリケーションに送信して戻します。その時点で WebFacing アプリケーションが制御を再開します。
シナリオ 2 では、WebFacing のプログラマチックな起動がサポートされるため、パラメーターがあってもなくても、CL コマンドを指定して WebFacing アプリケーションを開始することができます。WebFacing アプリケーションが稼働して、i5/OS アプリケーションが DDS リンケージ・レコードに書き込みを行なったときに、アプリケーション・ブリッジ Web 設定のターゲット・アプリケーション URL 内に指定された Web アプリケーションにデータを戻します。 このシナリオでは、DDS リンケージ・レコードに FRCDTA キーワードを指定して、アプリケーションが正常に終了するようにします。 プログラマチックな起動について詳しくは、『他の Web アプリケーションからの WebFacing アプリケーションのプログラマチックな起動』を参照してください。
WebFacing から別の Web アプリケーションへの制御の引き渡し
上述のシナリオでは両方とも、DDS リンケージ・レコードへの書き込みによって、制御が WebFacing から別の Web アプリケーションに渡されます。これは、アプリケーション・ブリッジ Web 設定のターゲット・アプリケーション URL 内に指定された URL で、J2EE 転送メソッドを使用して行なわれます。WebFacing アプリケーションは、ターゲット・アプリケーションの URL の最初の一部をコンテキスト・ルートとして使用して WebFacing アプリケーションをその URL の残りの部分に転送します。ターゲット・アプリケーションの URL が /appContextRoot/appEntryPoint の場合、WebFacing アプリケーションは appContextRoot をコンテキスト・ルートとして使用して appEntryPoint に転送します。 WebFacing アプリケーションは、転送の前に要求属性「forwarded」を値「WF」と共に要求オブジェクトに追加します。 これにより、受信側のアプリケーション・ランタイムが、転送によって制御を受信したときに、必要に応じて特別なアクションを実行することができます。
別の Web アプリケーションから WebFacing への制御の引き渡し
シナリオ 1 では、WebFacing アプリケーションに制御を戻すとき、データを適切に更新するために、Web アプリケーションは、転送の前に要求オブジェクトに属性「forwarded」を追加します。 EGL アプリケーションから転送される要求の場合、要求属性は「EGL」、他の Web アプリケーションから転送される要求の場合は「CUSTOM」です。 これにより、受信側の WebFacing アプリケーションが、転送によって制御を受信したときに必要に応じて特別なアクションを実行することができます。WebFacing アプリケーションのエントリー・ポイントは、/webfacing/WebFacing.do です。
WebFacing と他の Web アプリケーションとの間のデータの交換
DDS リンケージ・レコードを介して WebFacing アプリケーションへ送信されたアプリケーション・ブリッジのデータは、HashMap 内のキーとしてのフィールド名、および関連するキーの値としてのフィールド値で、Java™ HashMap に保存されます。HashMap へのアクセスには LinkageData という要求属性が使用されます。
DDS リンケージ・レコード内のフィールド値は、Unicode のストリング・データとして HashMap に保管されます。他の Web アプリケーションは、必要に応じて HashMap 内のフィールドを更新し、「LinkageData」要求属性を使用して WebFacing アプリケーションに HashMap を送信して戻します。 フィールド値には、対応する DDS データ型によって許可された適切な長さの文字が含まれます。そうでない文字は WebFacing アプリケーションによって破棄されます。