LinuCレベル4 システムアーキテクト システムアーキテクチャ 問12
システムアーキテクチャ/アーキテクチャの設計原則と主要パターン業務システムを複数のサブシステムに分け、サブシステム間の呼び出しを同期にするか非同期にするかを検討している。比較の説明として適切でないものはどれか。
当サイトのオリジナル問題(LinuCレベル4 システムアーキテクトの出題範囲「システムアーキテクチャ」に対応。実際の試験問題ではありません)
- A同期呼び出しでは呼び出し先の遅延や停止が呼び出し元の応答時間や可用性に直接及ぶため、呼び出しの連鎖が長いほど全体の可用性は下がりやすい
- B非同期連携では、呼び出し先の処理結果を後から通知や問い合わせで受け取る仕組みが必要になり、要求ごとの処理状態の管理が複雑になる
- Cサブシステム間を同期呼び出しでつなぐと、呼び出し元と呼び出し先の稼働時間帯をそろえる必要がなくなるため、片方だけを計画停止して保守しやすくなる
- Dキューを介した非同期連携にすると、呼び出し先が一時的に停止していても呼び出し元は要求を受け付け続けられ、回復後に溜まった分を処理できる
正解:C
解説
同期呼び出しは呼び出し先の処理完了を待つため、呼び出し先が止まれば呼び出し元の処理も止まります。そのため同期でつないだサブシステム同士は稼働時間帯をそろえる必要があり、片方だけを計画停止するのは難しくなります。非同期連携(特にキューを介した連携)は両者の稼働を時間的に切り離せるため、保守や一時的な障害に強くなる一方、結果の受け取り方や処理状態の管理といった設計の手間が増えます。利用者に結果を即答する必要があるか、処理の遅れを許容できるかで方式を選びます。
選択肢ごとの解説
- A誤り(正しい記述)。同期呼び出しでは各呼び出し先の可用性が掛け合わされるため、直列につなぐ数が増えるほど全体の可用性は下がりやすくなります。
- B誤り(正しい記述)。非同期では要求を受け付けた時点で結果が確定しないため、完了の通知や状態の問い合わせの仕組みと、要求ごとの状態管理が必要になります。
- C正しい(誤っている記述)。同期呼び出しは呼び出し先が稼働していることを前提とするため、両者の稼働時間帯をそろえる必要があります。稼働を切り離して片方だけを止めやすくなるのは非同期連携の特徴です。
- D誤り(正しい記述)。キューが要求を保持するため、呼び出し先の停止中も呼び出し元は受け付けを続けられ、回復後に順次処理できます。負荷の平準化にも使われます。