ケースの特殊性と拡張性の設計
3 タスク
20 分
シナリオ
現状では、単一のアプリケーションでFront Stageのイベント予約のニーズに対応しています。 Front Stageは、将来的に施設の数を増やしていこうと考えています。 Front Stageは、娯楽施設が増えるたびに、現在のアプリケーションを変更しなければならないかもしれないと懸念しています。
- 主な要件を分析し、現状の単一アプリケーション設計でこれらの要件をサポートできるかどうかを判断してください。
- 不明な点をFront Pageのエグゼクティブに明らかにしてもらうための質問リストを用意してください。
- 今後のアプリケーションに最も適したエンタープライズクラス構造を提案してください。
詳細なタスク
1 設計オプションの特定
主な要件は、必要に応じて娯楽施設専用のビジネスロジックを実装することです。 個別のデータベーステーブルに各施設のデータを格納しなければならないという要件はありません。
このソリューションには次の3つのアプローチが考えられます。
- 各施設の差異をデータで表す。 このデータを処理できるルールを実装する。
- 現在のアプリケーションの中に施設の特殊性を実装する。
- 現在のアプリケーションをフレームワーク/モデル/テンプレート/ブループリントとして使用する。 各施設に適した実装アプリケーションを作成する。
2 設計オプションの評価
データ駆動型ルール
このアプローチでは、施設間の差異を、データインスタンスまたはデータのどちらかして扱う非Pegaカスタムルールとしてモデル化してみます。 施設を問わずこのデータに呼応するルールを作成します。
長所 | 短所 |
---|---|
|
|
単一アプリケーションルールの特殊化
単一アプリケーションのアプローチでは、組織構造を活用して現在のルーティング要件を満たします。 施設間の差異がほとんどないと予想される場合は、状況設定によるアプローチで十分かもしれません。 差異がより複雑な場合は、パターン継承を利用して、すでに定義されている施設固有のクラスを利用できます。 次に、DCR(Dynamic Class Reference、ダイナミッククラス参照)を使用して、どのクラスを作成するかを決定できます。
長所 | 短所 |
---|---|
|
|
施設ごとのアプリケーション
複数アプリケーションのアプローチでも、組織構造を活用して現在のルーティング要件を満たせます。 アプリケーションは各施設用に作成されます。 施設専用アプリケーション内のケースタイプは、現在のアプリケーション内にあるケースタイプクラスを拡張したものです。 施設専用ビジネスロジックの差異は、現在のアプリケーションに由来するルールを、施設専用アプリケーション内の、対応するケースタイプクラスに保存することで処理されます。 ユーザーは、異なる施設用のケースを作成して管理するために、アプリケーションを切り替える必要があります。
長所 | 短所 |
---|---|
|
|
3 最適な設計オプションの提案
単一アプリケーションのアプローチが推奨される理由は、以下のとおりです。
- 要件を満たす
- アプリケーションの切り替えが不要
- レポートがシンプルになる
- 必要に応じて多くの施設をサポートできる