多層パターン
実行時の構造を論理的なグループにまとめる。このグループをサーバやクラウドなど、特定の物理コンポーネントに割り当てる。
要素
層。ランタイムコンポーネントの論理的なグループ。
分割する方法はいろいろある。
機能的責務
計算プラットフォーム
チームの責任範囲
通信メカニズム
セキュリティ要件
データアクセス など
関係
所属:「コンポーネントAはB層に所属する」など。コンポーネントを層でグループ化する。
通信:層やコンポーネントの相互作用を示す。
「層Aのコンポーネントは層Bと通信する」
「層Bのコンポーネントは層Cとの通信を許可されている」
割り当て:「層DはサーバーXに割り当てられている」など。層を物理的なリソースにマッピングする。
規約
1つのコンポーネントは1つの層にのみ所属する。
層内のコンポーネントは、基本的に同じ層内の他コンポーネントとのみ通信できる。
層を超えた通信は明示的に記述される。
これは論理的根拠を強化し、保守性を向上させる。
隣接した層間でのみ通信が許可されることが多い。
強み
セキュリティ、パフォーマンス、可用性、保守容易性、変更可能性を促進する。
コストやデプロイ方式が事前に予測しやすい。
弱み
大規模なシステムでは層の維持が難しい場合がある。
層の規約に沿わない部分が出るのだろうか?
層が多すぎるシステムでは、逆にパフォーマンスと保守性が阻害される。