同期実行と非同期実行

分散アプリケーション > アプリケーションパーティショニング

リクエスタクライアント、MRB、Magicアプリケーションサーバ(以下、実行エンジン)の間のメッセージのフローは、リクエストが同期(待機あり)であるか非同期(待機なし)であるかによって異なります。

MRB は、リクエストクライアントから同期リクエストを受信すると、リクエストに対するリクエストID を割当てます。利用できる実行エンジンを検索し、リクエストID と実行エンジンアドレスをリクエストクライアントに送信します。MRB がリクエストID と実行エンジンアドレスを返すと、リクエストクライアントと実行エンジンの間で、MRB の仲介なくやり取りが直接行われます。リクエストが完了すると、実行エンジンはリクエスト結果をリクエスタクライアントに直接送信するとともに、実行エンジンが使用可能になったことをMRB に通知します。このリクエスト処理の間、クライアントは実行エンジンがリクエスト結果を返すまで待機する必要があります。

MRB は、リクエストクライアントから非同期リクエストを受信すると、リクエストにリクエストID を割当てます。リクエスタクライアントは、リクエスト結果を待たずに処理を再開します。MRB は実行エンジンアドレスをクライアントに返さず、クライアントと実行エンジンは直接やり取りしません。そのため、必要に応じて、MRB にそのリクエストの状態を問い合わせる必要があります。

参照