応用情報技術者試験 - Applied Information Technology Engineer システムアーキテクチャ 1 — Questions and Answers
Question 1: イベント駆動アーキテクチャ(EDA)の特徴として正しいものはどれか。
- コンポーネント間の結合度が高くなり、変更の影響範囲が明確になる
- プロデューサーとコンシューマーが非同期に通信し、疎結合を実現する (Correct answer)
- すべての処理がリクエスト・レスポンス形式で同期的に行われる
- データベースへのアクセスが一元化され、整合性が保証される
Correct answer: プロデューサーとコンシューマーが非同期に通信し、疎結合を実現する
イベント駆動アーキテクチャでは、イベントプロデューサーとコンシューマーが非同期に通信するためコンポーネント間の結合度が低く(疎結合)なり、スケーラビリティと柔軟性が向上する。同期的なリクエスト・レスポンスとは対照的なモデルである。
Question 2: スケールアウトの説明として正しいものはどれか。
- 既存サーバのCPUやメモリを増強することで処理能力を向上させる手法
- 同じ仕様のサーバを複数台追加することで処理を分散させる手法 (Correct answer)
- ストレージ容量を増やすことでシステム全体の応答速度を改善する手法
- 単一サーバのネットワーク帯域幅を増加させてスループットを高める手法
Correct answer: 同じ仕様のサーバを複数台追加することで処理を分散させる手法
スケールアウト(水平スケーリング)はサーバ台数を増やして負荷を分散させる手法。既存サーバのリソースを増強するスケールアップ(垂直スケーリング)とは区別される。クラウド環境での自動スケーリングに適している。
Question 3: SOA(サービス指向アーキテクチャ)の説明として最も適切なものはどれか。
- システムの機能を独立したサービスとして構成し、標準インタフェースを通じて連携させるアーキテクチャ (Correct answer)
- 単一の実行ファイルにすべての機能を統合したモノリシックなアーキテクチャ
- UIとビジネスロジックとデータアクセスを1コンポーネントにまとめたアーキテクチャ
- データベースとアプリケーションロジックを一体化した2層クライアントサーバアーキテクチャ
Correct answer: システムの機能を独立したサービスとして構成し、標準インタフェースを通じて連携させるアーキテクチャ
SOAは業務機能をサービスという独立した単位に分割し、標準的なインタフェース(通常はWebサービス)を介して連携させるアーキテクチャスタイル。再利用性・柔軟性の向上と既存システムとの統合容易性が主な目的である。
Question 4: CQRSパターンの説明として正しいものはどれか。
- コマンド(更新系)とクエリ(参照系)の責務を分離し、それぞれ独立したモデルで処理するパターン (Correct answer)
- すべてのCRUD操作を単一モデルで処理することで実装をシンプルに保つパターン
- データベースへの書き込みと読み取りを同一トランザクション内で完結させるパターン
- マイクロサービス間の通信をリクエスト・レスポンス形式に統一するパターン
Correct answer: コマンド(更新系)とクエリ(参照系)の責務を分離し、それぞれ独立したモデルで処理するパターン
CQRS(Command Query Responsibility Segregation)はデータ更新処理(Command)と参照処理(Query)を分離するパターン。書き込みと読み取りをそれぞれ独立して最適化できるため、高トラフィック・高パフォーマンスが求められるシステムに適している。
Question 5: マイクロカーネルアーキテクチャの特徴として正しいものはどれか。
- OSのすべての機能をカーネル空間に集約し、処理効率を最大化する
- コアシステムに最小限の機能のみを持たせ、追加機能をプラグインとして実装する (Correct answer)
- アプリケーションの全機能を単一実行ファイルにまとめてデプロイする
- すべてのビジネスロジックをデータベース層のストアドプロシージャとして実装する
Correct answer: コアシステムに最小限の機能のみを持たせ、追加機能をプラグインとして実装する
マイクロカーネルアーキテクチャはコアシステム(マイクロカーネル)に必要最小限の機能のみを持たせ、追加機能はプラグインとして独立して実装するスタイル。Eclipse IDEなどが代表例で、拡張性と保守性に優れる。
Question 6: 3層アーキテクチャにおける「ビジネスロジック層」の役割として正しいものはどれか。
- ユーザインタフェースの表示と入力受け付けを担当する
- データの永続化とデータベースへの直接アクセスを担当する
- 業務ルールの適用とデータの加工・演算を担当する (Correct answer)
- ネットワーク通信プロトコルの制御とパケット管理を担当する
Correct answer: 業務ルールの適用とデータの加工・演算を担当する
3層アーキテクチャのビジネスロジック層(アプリケーション層)は、業務ルールの適用やデータの演算・加工を担当する中間層である。プレゼンテーション層(UI)とデータアクセス層(DB)の間に位置し、両者を仲介しながら業務処理を実行する。
イベント駆動アーキテクチャ(EDA)の特徴として正しいものはどれか。