非同期アプリケーション連携実行基盤では、ディレイド型のオンライン処理(突き放し型など)および複数業務を相互接続する業務モデル(HUB型)における処理形態において、フロー定義に従ってCOBOLまたはJavaのアプリケーション連携を行い、処理結果を応答する基幹系業務に必要な共通技術を提供します。オープンシステムにおいて、メインフレームレベルの業務運用性、堅牢性を実現し、短期間で、高い信頼性のシステムを実現します。また、既存資産や既存ノウハウを最大限に活かし、業務ロジックの開発に専念することが可能です。
以下に非同期アプリケーション連携実行基盤のアプリケーションについて説明します。
非同期アプリケーション連携実行基盤の詳細は、“第3部 非同期アプリケーション連携実行基盤編”で説明します。
注意
1つのフロー定義では、異なる言語(COBOLまたはJava)のアプリケーションを相互に連携させることはできません。
非同期アプリケーション連携実行基盤では、業務処理開始アプリケーションおよび業務処理実行アプリケーションを使用して業務を構築します。
アプリケーションの種類 | アプリケーションの概要 | 利用可能な言語(アプリケーションの形態) |
---|---|---|
業務処理開始アプリケーション | 非同期アプリケーション連携実行基盤のフロー起動APIまたは結果受信APIを実行して業務処理実行アプリケーションを連携した業務(フロー)の開始、および業務(フロー)の処理結果を受信するアプリケーションです。 | Java |
業務処理実行アプリケーション | メッセージの内容に応じて業務用のデータベースの更新などの業務処理を行うアプリケーションです。 | COBOL |
Java |
なお、非同期アプリケーション連携実行基盤では、業務処理開始アプリケーションをJavaで開発する場合は、J2EEのIJServerに配備して運用します。
また、業務処理実行アプリケーションをCOBOLで作成する場合は、非同期ワークユニットに配備し、Javaで作成する場合は、J2EEのIJServerに配備して運用します。IJServerおよび非同期ワークユニットの詳細は、“Interstage Application Server J2EE ユーザーズガイド(旧版互換)”および“Interstage Business Application Server 運用ガイド(アプリケーション連携実行基盤編)”を参照してください。
注意
非同期アプリケーション連携実行基盤は、JavaEEでは運用できません。また、利用できるJDK/JREはJDK8/JRE8のみです。
業務処理開始アプリケーションは、Javaアプリケーションの単体のアプリケーションとしても実装可能ですが、テスト時だけ利用してください。実際の業務で利用するクライアントアプリケーションについては、IJServer上で運用する形態(Servlet、JSPまたはEJB)を推奨します。
非同期アプリケーション連携実行基盤の業務処理開始アプリケーションと業務処理実行アプリケーションの開発言語は、以下の組み合わせをサポートしています。利用業務に応じて最適なパターンを使用してください。
| 業務処理実行アプリケーション | ||
---|---|---|---|
COBOL | Java | ||
業務処理開始アプリケーション | Java | ○(注1) | ○ |
○:連携が可能です。
注1) Javaのユーザ定義クラスは、COBOLアプリケーションで入出力できません。
非同期アプリケーション連携実行基盤で利用できるアプリケーションの連携パターンの例を以下に示します。非同期アプリケーション連携実行基盤では、アプリケーションの連携形態は、フロー定義ツールで作成するフロー定義により決定します。
なお、以下に示す例は、代表的なアプリケーション連携パターンです。フロー定義によっては、これらのほかにも構築可能な連携のパターンがあります。
要求応答型
突き放し型
回覧型
同報型
■要求応答型
要求を発行したアプリケーションまたは別のアプリケーションに対して、処理結果を応答として返す形態です。他の形態と組み合わせて使用することができます。
■突き放し型
アプリケーションの実行完了と同期して、別のアプリケーションに処理を依頼する形態です。他の形態と組み合わせて使用することができます。
以下の形態では、業務処理開始アプリケーションは、処理結果を待ち合わせるため要求応答型フローを起動しますが、業務処理実行アプリケーション3の処理は突き放しで実行されます。
以下の形態では、業務処理実行アプリケーションが、結果を待ち合わせないため、フローの起動は、突き放し型フローとして行われ、処理結果は、別のアプリケーションで取得します。
■回覧型
アプリケーション間で回覧型の通信を繰り返す形態です。ワークフロー業務の処理段階に対応するアプリケーションを順次実行する場合に使用します。回覧型で連携するアプリケーションは、同期通信のように処理が完了する度に呼び出し元に復帰(リターン)することなく、次の処理を実行するアプリケーションを呼び出します。
■同報型
アプリケーションの実行完了と同期して、n個の別アプリケーションに同一メッセージを一斉に送信する形態です。
業務処理開始アプリケーションおよび業務処理実行アプリケーションの構造について説明します。業務処理実行アプリケーションの構造は、同期アプリケーション連携実行基盤のサーバアプリケーションと同一です。
また、エラーメッセージを処理するアプリケーションについても説明します。
■業務処理開始アプリケーション
業務処理開始アプリケーションは、Javaアプリケーションであり、フロー起動APIを発行することで、業務処理実行アプリケーションを呼び出します。
Javaのフロー起動APIには、以下の3種類があります。
SendMessage()
フローを起動するAPIです。フローを突き放して実行します。
ReceiveMessage()
フローの処理結果を受信するAPIです。同期待ち合わせ型と即時応答型の2種類があります。
SendMessageSync()
フローを開始し、処理結果を待ち合わせるAPIです。
◆ServletまたはEJBアプリケーションからの呼び出し
Servlet、StrutsおよびSession Beanなどのアプリケーションで、フロー起動APIを実行することによりフローを開始し、フロー定義に従って業務処理実行アプリケーションを運用する形態です。業務処理開始アプリケーションは、IJServerに配備して実行します。
◆J2EEアプリケーションクライアントからの呼び出し
Javaアプリケーションで、フロー起動APIを実行することによりフローを開始し、フロー定義に従って業務処理実行アプリケーションを運用する形態です。業務処理開始アプリケーションは、コマンドラインからjavaコマンドで実行します。
本呼び出し形態は単体テスト時だけ利用してください。実際の業務で利用するクライアントアプリケーションについては、IJServer上で運用する形態(Servlet、JSPまたはEJB)を推奨します。
■業務処理実行アプリケーション
非同期アプリケーション連携実行基盤が提供するアプリケーション実行制御では、フロー定義に従い、業務処理実行アプリケーションの呼び出しを行います。また、各処理が返す処理結果により、トランザクションの完了を制御するなど、ユーザアプリケーションの動作を支援する出口処理(初期処理、前処理、後処理、エラー処理、および終了処理)を提供します。
制御ロジックは、非同期アプリケーション連携実行基盤が実行するため、利用者は、業務処理(業務ロジック)だけを記述します。
なお、業務処理実行アプリケーションは、開発する言語により、以下に示す出口の相違があります。
◆COBOLの業務処理実行アプリケーション
COBOLで業務処理実行アプリケーションを作成した場合、ユーザアプリケーションの動作を支援する出口処理には、初期処理、前処理、後処理、エラー処理および終了処理があります。アプリケーションの構造を以下に示します。
なお、アプリケーションは、非同期ワークユニットに配備して実行します。
アプリケーション連携実行基盤が提供する出口処理の概要を以下に説明します。
処理名 | 説明 | 要否 |
---|---|---|
初期処理 | ワークユニット起動時に1プロセスあたり1回だけ呼び出されます。 | 任意 |
前処理 | クライアントからのリクエスト(メッセージ)ごとに業務処理の直前に呼び出されます。 | 任意 |
後処理 | クライアントからのリクエスト(メッセージ)ごとに前処理、および業務処理が正常終了した場合に、業務処理の直後に呼び出されます。 | 任意 |
エラー処理 | 以下の場合、その直後に呼び出されます。エラー発生時のリソースの初期化など、業務単位のエラー後処理に用います。 前処理、業務処理、または後処理が異常終了した場合 前処理、業務処理、または後処理が強制リトライで終了した場合(処理結果情報に3が設定された場合) | 任意 |
終了処理 | ワークユニット終了時に1プロセスあたり1回だけ呼び出されます。 | 任意 |
また、各出口処理の呼び出しシーケンスは下記の通りです。ワークユニットのプロセス起動時、および終了時に、アプリケーション連携実行基盤が呼び出す出口処理に加え、ワークユニット出口を呼び出すことができます。ワークユニット出口の詳細は、“Interstage Business Application Server 運用ガイド(アプリケーション連携実行基盤編)”を参照してください。
◆Javaの業務処理実行アプリケーション
Javaで業務処理実行アプリケーションを作成した場合、ユーザアプリケーションの動作を支援する出口処理には、前処理、後処理およびエラー処理があります。アプリケーションの構造を以下に示します。
なお、アプリケーションは、IJServerに配備して実行します。起動時実行クラスおよび停止時実行クラスは、IJServerが提供する機能です。
アプリケーション連携実行基盤が提供する出口処理の概要を以下に説明します。
処理名 | 説明 | 要否 |
---|---|---|
起動時実行クラス | IJServerの起動時に実行されるクラスです。データベースのコネクションなどアプリケーションで使用する資源の事前獲得などを行う場合に使用します。 | 任意 |
前処理 | クライアントからのリクエスト(メッセージ)ごとに業務処理の直前に呼び出されます。 | 任意 |
後処理 | クライアントからのリクエスト(メッセージ)ごとに前処理、および業務処理が正常終了した場合に、業務処理の直後に呼び出されます。 | 任意 |
エラー処理 | 以下の場合、その直後に呼び出されます。エラー発生時のリソースの初期化など、業務単位のエラー後処理に用います。 前処理、業務処理、または後処理が異常終了した場合 前処理、業務処理、または後処理が強制リトライで終了した場合(処理結果情報に3が設定された場合) | 任意 |
停止時実行クラス | IJServerの停止時に実行されるクラスです。アプリケーションで使用した資源を一括して解放するなどの処理に使用します。 | 任意 |
また、各出口処理の呼び出しシーケンスは下記の通りです。IJServerおよび起動/停止時の実行クラスの詳細は、“Interstage Application Server J2EEユーザーズガイド(旧版互換)”を参照してください。
■エラーメッセージ処理アプリケーション
エラーメッセージ処理アプリケーションは、業務処理実行アプリケーションで異常が発生した後、エラーメッセージ退避キューに格納されたメッセージをエラーメッセージ取得APIを実行することで受信し、エラー内容を業務ログなどに出力する異常時運用を行うアプリケーションです。
アプリケーションは、単体のアプリケーションとして作成し、ユーティリティワークユニットに配備して実行します。
非同期アプリケーション連携実行基盤のアプリケーションの実行環境について説明します。なお、アプリケーションの実行環境として使用するワークユニットの機能およびInterstage管理コンソールについては“Interstage Application Server 運用ガイド(基本編)”を参照してください。
■業務処理開始アプリケーションの実行環境(Javaの場合)
業務処理開始アプリケーションは、Interstageの開発環境であるInterstage Studioを使用してフロー定義ツールのウィザード(本製品のプラグインモジュール)に従ってJSP、ServletまたはEJBとして作成し、IJServerに配備して実行します。IJServerはJ2EEアプリケーションの実行環境であるEJBコンテナとServletコンテナを内包し、これらのコンテナの上位に位置づけられる論理的な概念です。
IJServerはInterstage Application Serverの特徴であるワークユニットと呼ぶアプリケーション運用機能上で動作し、ワークユニットが提供している高度なアプリケーション運用操作/監視機能を利用できます。IJServerは、“1.6.1.1 システム構築シート”の出力結果を使用して作成しInterstage管理コンソールを使用して運用します。
■業務処理実行アプリケーションの実行環境(COBOLの場合)
業務処理実行アプリケーションは、実行基盤インタフェースとともに共有ライブラリとして作成し、本製品の配備コマンド(apfwdeploy)を使用して非同期ワークユニットに配備します。非同期ワークユニットには、ワークユニット運用において、対象となるアプリケーションに業務処理実行アプリケーションを適用することができます。
非同期ワークユニットは、本製品の“1.6.1.1 システム構築シート”で出力したワークユニット管理コマンドを使用して定義し、ワークユニットのコマンドを使用して運用します。
なお、業務処理実行アプリケーションの実行制御は、非同期アプリケーション連携実行基盤が行います。非同期アプリケーション連携実行基盤によるアプリケーションの制御機能について以下に説明します。
業務処理実行アプリケーションの動作モードとしてスレッドモードとプロセスモードを提供します。アプリケーションの多重度は、スレッド単位(1プロセスnスレッド)、プロセス単位(nプロセス)および混在(mプロセスnスレッド)で設定できます。
動作モードは、使用するアプリケーションの言語特性(COBOLでの実行環境の引継ぎ)やアプリケーションが異常終了した場合の影響範囲など、業務に応じて選択してください。
データベース操作を伴う処理では、処理結果により、トランザクションの完了操作を行う必要があります。また、エラー終了した場合には、業務処理の再実行が必要な場合があります。非同期アプリケーション連携実行基盤では、これらの操作をアプリケーションの処理結果情報に2(異常終了)が設定されていた場合にフロー定義に従ってリトライ処理を行います。リトライ実行時のリクエストデータは初回呼び出し時のデータが渡されます。
アプリケーションのライブラリをロードする方式にプレロードとダイナミックロードの2種類の方式を提供します。
プレロード
非同期アプリケーション連携実行基盤のプロセス起動時にユーザ作成ライブラリをロードします。性能向上のためアプリケーションをプロセス起動時にメモリに常駐する場合に使用し、アプリケーションのアクセスを初回から高速化できます。
ダイナミックロード
ユーザ作成ライブラリをリクエスト時に動的にロードを行い、リクエスト終了後にアンロードします。常に動作する必要がないユーザ作成ライブラリやユーザ作成ライブラリの常駐メモリを節約する場合などに用います。
COBOL実行環境の開設・閉鎖処理を非同期アプリケーション連携実行基盤が実施します。WORKING-STRAGE SECTION における無駄な領域の獲得や解放を行わない制御が行えます。COBOL実行環境の開設から閉鎖までの間、変数などの実行環境情報がCOBOLランタイムで保持される(前回呼び出し時の状態が保持される)ため、アプリケーションで共通に使用する情報を保持しておくことができます。
業務処理実行アプリケーションの言語に合わせて、データ型の変換処理を行います。これにより、すでに作成されているアプリケーションの移植性を高めます。データ型の対応関係の詳細は、“Interstage Business Application Server アプリケーション開発ガイド”の“サーバアプリケーション開発の概要”の“データ型の変換”を参照してください。
非同期アプリケーション連携実行基盤の稼動状況および性能情報の2種類のログを自動的に出力する標準ログ機能を提供します。
標準ログを使用することでユーザのアプリケーションにログの出力処理を記述しなくても、上記ログを自動的に採取することができます。
詳細は、“4.2 標準ログ”を参照してください。
アプリケーションの処理結果とフロー定義の内容に応じてアプリケーションで異常が発生した場合、受信したメッセージを“エラーメッセージ退避キューに退避”、“シリアライズファイルへ出力”または“補償ルート”のいずれかにより異常処理することができます。
■業務処理実行アプリケーションの実行環境(Javaの場合)
業務処理実行アプリケーションは、Interstageの開発環境であるInterstage Studioを使用してフロー定義ツールのウィザード(本製品のプラグインモジュール)に従ってJavaクラスとして作成し、Interstage管理コンソールを使用してIJServerにMessage-driven Beanとして配備します。IJServerはJ2EEアプリケーションの実行環境であるEJBコンテナとServletコンテナを内包し、これらのコンテナの上位に位置づけられる論理的な概念です。
IJServerはInterstage Application Serverの特徴であるワークユニットと呼ぶアプリケーション運用機能上で動作し、ワークユニットが提供している高度なアプリケーション運用操作/監視機能を利用できます。IJServerは、“1.6.1.1 システム構築シート”の出力結果を元に作成し、Interstage管理コンソールを使用して作成します。
なお、業務処理実行アプリケーションの実行制御は、EJBコンテナおよび非同期アプリケーション連携実行基盤が行います。非同期アプリケーション連携実行基盤によるアプリケーションの制御機能について以下に説明します。
業務処理実行アプリケーションの動作モードとしてスレッドモードを提供します。アプリケーションの多重度は、スレッド単位(1プロセスnスレッド)が設定できます。
データベース操作を伴う処理では、処理結果により、トランザクションの完了操作を行う必要があります。また、エラー終了した場合には、業務処理の再実行が必要な場合があります。非同期アプリケーション連携実行基盤では、これらの操作をアプリケーションで発生した例外内容を元にフロー定義に従ってリトライ処理を行います。リトライ実行時のリクエストデータは初回呼び出し時のデータが渡されます。
非同期アプリケーション連携実行基盤の稼動状況および性能情報の2種類のログを自動的に出力する標準ログ機能を提供します。
標準ログを使用することでユーザのアプリケーションにログの出力処理を記述しなくても、上記ログを自動的に採取することができます。
詳細は、“4.2 標準ログ”を参照してください。
アプリケーションの処理結果とフロー定義の内容に応じてアプリケーションで異常が発生した場合、受信したメッセージを“エラーメッセージ退避キューに退避”、“シリアライズファイルへ出力”または“補償ルート”のいずれかにより異常処理することができます。
■エラーメッセージ処理アプリケーション
エラーメッセージ処理アプリケーションは、viなどのエディタを使用して単体のJavaのアプリケーションとして作成し、ユーティリティワークユニットに配備して実行します。ユーティリティワークユニットでは、Interstage配下外の一般アプリケーションをトランザクションアプリケーションやEJBアプリケーションと同様に、ワークユニット上で利用することができます。
エラーメッセージ処理アプリケーションは、クライアントからのリクエストにより開始されるのではなく、エラーメッセージ退避キューにメッセージが格納されたのを契機に開始されるため、IJServer、CORBAワークユニットおよびトランザクションアプリケーションとしてではなく、ユーティリティワークユニットで運用します。
ユーティリティワークユニットの作成および運用方法については、“Interstage Application Server OLTPサーバ運用ガイド”を参照してください。