LinuCシステムアーキテクト SA01試験の例題と解説
SA.01.1アーキテクチャの設計原則と主要パターン
LinuC システムアーキテクト SA01試験の出題範囲から「SA.01.1 アーキテクチャの設計原則と主要パターン」についての例題を解いてみます。
例題
ある企業では、従来より財務管理、人事管理、商品物流管理などのシステム (以下、まとめて既存システムと呼ぶ) が稼働しており、新たに既存システム中のデータを集約して横断的な分析をするためのシステム (以下、分析システムと呼ぶ) の導入を検討している。分析システムにデータを集めるための既存システムとの連携方式として以下の2つを検討している。
- 方式 A … 既存システムのそれぞれが、データ更新時に分析システムに変更データを送信する。
- 方式 B … 分析システムが既存システムに元々あるデータ一括取得 API をコールし、データを収集する。
この2つの方式の比較に関する説明として間違っているのは次のうちどれか。
- 方式 A は既存システム側に分析システムへのデータ送信機能を追加実装する必要がある。
- 方式 B は既存システムの API を利用して分析システムが動作するため、既存システムと分析システムとの間の疎結合性を保ちやすい。
- 方式 A は分析システム側でデータの更新のタイミングや頻度を制御しやすい。
- 方式 B は分析システムでデータの更新頻度を高くするとそれに応じて既存システムへの負荷が増加する可能性がある。
※この例題は実際の試験問題とは異なります。
解答と解説
間違っている説明は、「3. 方式 A は分析システム側でデータの更新のタイミングや頻度を制御しやすい。」です。
方式 A では、データが更新されたときに分析システムにデータが送信されるため、分析データの更新のタイミングや頻度を分析システム側から制御することは困難です。分析の頻度やデータ更新タイミングを自由に制御しやすいのはむしろ方式 B の方と言えます。他の選択肢は、2つの方式の間の比較としては正しく特徴を説明していると言えます。
この問題はシステム間の連携方法の違いで全体の特性がどう変わるかについて述べています (例題ではシステム間となっていますが、サブシステム間や機能モジュール間といった小さい単位でも同様の議論ができます)。システムが目的の動作を実現するための実装や連携の方式は通常複数考えられます。今回の場合、設問で陽に提示されている前提の範囲だけでも、方式の違いによって各選択肢で述べているようにシステムの特性が変わってくることが分かります。
実際の開発シーンでどんなアプローチをとるべきかは、具体的な要件と制約を勘案して決めていくことになります。どんな方式が考えられるか、それぞれの方式でシステム全体の振る舞いがどうなるのかというパターンを多く知っておくことが、適切なアーキテクチャを作るための近道になると言えます。
例題作成者
LinuC システムアーキテクト 試験開発コミュニティ