CQRS
Command Query Responsibility Segregation
しーきゅーあーるえす
コマンドクエリ責務分離。データを更新する処理(コマンド)と参照する処理(クエリ)のモデルを分けるアーキテクチャパターン。更新と参照で別のデータモデルやデータストアを使い、それぞれを独立して最適化・拡張できる。更新の結果が参照のモデルに反映されるまでに遅れが生じることがある。
Related
他の資格での定義
Past Exams
過去問での出題
過去問で 1 回出題(システムアーキテクト試験 1)
出典: 独立行政法人情報処理推進機構(IPA)の過去問題。問題文は IPA のサイトの PDF で確認できます。「選択肢」は、問題文ではなく選択肢に出たものです。用語名で照合しているため、関係の薄い問題が含まれることがあります。
Related
関連キーワードの用語
ドメイン駆動設計で、特定のエンティティや値オブジェクトに持たせると不自然になる業務上の処理を、独立して表すオブジェクト。ドメインサービスとも呼ぶ。口座間の振替のように複数のエンティティにまたがる計算や判定を担い、それ自体は状態を持たない。画面やデータベースの操作の手順を調整するアプリケーションサービスとは区別される。
ドメイン駆動設計で、属性の値ではなく一意な識別子によって同一性が保たれるオブジェクト。顧客や注文のように、属性が変わっても同じものとして追跡する必要があるものが当たり、ライフサイクルを通じて状態が変化する。値そのもので等しいかどうかが決まる値オブジェクトと対比される。
ドメイン駆動設計で、ソフトウェアによって課題を解決しようとする業務上の対象領域。例えば保険のシステムなら、契約、保険料、保険金の支払などの業務の知識とルールの範囲を指す。ドメインの知識を整理して表したものがドメインモデルで、大きなドメインは境界づけられたコンテキストに分けて扱う。関係モデルの定義域(ドメイン)とは別の意味である。
ソフトウェアを、プレゼンテーション層、アプリケーション層、ドメイン層、インフラストラクチャ層のように役割の異なる層に分け、上の層が下の層だけを利用するように構成するアーキテクチャパターン。階層型アーキテクチャとも呼ぶ。層ごとに役割が明確で理解しやすいが、下の層の変更が上の層に及びやすい。
必要最小限の機能を持つコアシステムに、個別の機能をプラグインとして追加していくアーキテクチャパターン。プラグインアーキテクチャとも呼ぶ。コアを変えずに機能を拡張・交換でき、統合開発環境(IDE)やWebブラウザの拡張機能が例。
処理を行う多数の処理単位が、データを共有のデータベースではなく、各単位のメモリ上に複製したデータ(インメモリのデータグリッド)で扱うアーキテクチャパターン。データベースへのアクセスがボトルネックにならないので、アクセスが急増しても処理単位を増やして対応できる。データベースへの反映は非同期で行う。
