アーキテクチャパターンの種類
アーキテクチャパターンは、システム全体の構成や部品の分割、部品間の関係について、典型的な設計の枠組みを示したものである。デザインパターンがクラスやオブジェクトの組合せを扱うのに対し、アーキテクチャパターンはより大きな単位の構造や振る舞いの方針を扱う。試験では、各パターンの目的と仕組みを結び付けるとともに、関連する活動や技法との区別も問われる。
アーキテクチャパターンの役割
アーキテクチャパターンは、システムの変更しやすさや障害への強さ、再利用のしやすさといった品質を、構造の工夫によって高めることを目的とする。例えば、機能とユーザーインタフェースを分けておけば、どちらか一方の修正がもう一方へ広がりにくくなる。構造を分けるという考え方が、このパターン全体に共通する出発点である。
代表的なパターンの仕組み
MVCは、モデル、ビュー、コントローラに役割を分けるパターンであり、機能とヒューマンインタフェースとの相互依存を弱める。これにより修正性や再利用性が向上する。 レイヤーはシステムを階層に分割し、各層の役割や依存関係を整理するパターンである。 リフレクションは、ソフトウェアをメタレベルとベースレベルに分け、構造や振る舞いを動的に変更できる仕組みを提供する。 メタレベルは構造や振る舞いの記述を担い、ベースレベルはアプリケーションの処理を担う。
障害と横断的な関心事への対策
マイクロサービスでは、一つのサービスの障害が他へ連鎖しないように、呼出しを遮断する仕組みが必要になる。サーキットブレーカーは、失敗の回数が設定したしきい値を超えた場合に、障害が解消するまで障害先へのリクエストを送らない方式である。通常は一定時間後に試行的な呼出しを行い、回復を確認してから通信を再開する。 障害の影響範囲を局所化し、システム全体への波及を抑えることが、この方式の目的である。
この節の続き
- 実際の場面と判断の基準
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む