アプリケーション間の通信
本章では、2つ以上の業務アプリケーションがトランザクションを処理する場合、業務アプリケーション間で行われる通信について説明します。
1. 概要
端末から要求された業務を処理する際に、1つ以上の業務アプリケーションが接続して処理する場合があります。この場合、業務アプリケーションは端末との通信以外に他の業務アプリケーションとも通信します。
業務アプリケーション間の通信も、業務アプリケーションと端末の通信と同様にMQNを介して行います。PROGRAM Bが使用しているMQNにPROGRAM Aがメッセージを書き込むと、PROGRAM BはPROGRAM Aが送信したメッセージを受信します。

2. 制御権を渡す通信
業務アプリケーション間の通信における制御権とは、端末と通信する権限を意味します。端末ユーザーが業務を実行中に通信するアプリケーションが変更されると、制御権が渡されます。

以下は、PROGRAM AがPROGRAM Bに端末の制御権を渡す手順です。
-
端末はPROGRAM Aにメッセージを送信します。
-
PROGRAM Aは必要な処理を行ってからPROGRAM Bにメッセージを渡します。
-
PROGRAM BはPROGRAM Aから渡されたメッセージで業務を処理し、端末にメッセージを送信します。この場合、PROGRAM AはPROGRAM Bに制御権を渡したことになります。
3. 制御権を渡さない通信
オンライン業務システムは、各トランザクションの処理時間が短いほど円滑に運用されます。
大量のデータを更新する業務やプリンターで出力する業務は、トランザクションの処理時間が長くなり、システムにボトルネックが起こる可能性があります。この場合、処理時間が長い区間を別途の業務アプリケーションとして分離し、端末との通信とは関係なくバックグラウンドで処理することができます。このような通信を制御権を渡さない通信といいます。

以下は、PROGRAM AがPROGRAM Bに端末の制御権を渡さない手順についての説明です。
-
端末から送信されたメッセージはPROGRAM Aが受信して処理します。
-
トランザクション中にデータを更新するためにPROGRAM Bにメッセージを送信し、PROGRAM Aはすぐに端末に応答メッセージを送信します。
-
PROGRAM BはPROGRAM Aから受信したメッセージに従ってデータを更新します。PROGRAM Bのトランザクションの終了の有無とは関係なく、PROGRAM Aから端末に応答メッセージが渡されたため、端末ユーザーは続けて業務を実行することができます。PROGRAM Aも継続して業務を処理できる準備状態になります。
PROGRAM Bのように、制御権のないメッセージを受信して業務を処理する場合、要求されたトランザクションが終了すると、端末に強制メッセージを送信するか、コンソールにメッセージを出力するなど、業務の終了を通知します。強制メッセージとは、業務アプリケーションが現在自身と通信していない端末にメッセージを送信する場合に使用される機能です。