Skip to main content

サブケース階層の設計

3 タスク

1時間 30 分

Visible to: All users
上級 Pega Platform 8.6 日本語

シナリオ

Front Stageアプリケーションは、単一のEventケースと各サービスプロセスのための子ケースで構成されています。 この他にも、子ケースのカーディナリティやインスタンス化についても決める必要があります。

このアプリケーションの主な要件を分析し、子ケースの最適な設計と子ケースの開始方法を決定してください。 子ケースタイプごとに、実行可能な代替設計を検討し、それぞれの長所と短所を列挙してください。 アプリケーションに最も適した子ケースの構造を提案してください。 考慮すべき主な要件は以下のとおりです。

  • プロセス - 天候に対する準備、ホテル客室リクエスト、駐車場の各機能は個々に実行する必要があります。
  • 拡張性 - Bookingアプリケーションを専用設計または拡張して、さまざまなタイプの施設をサポートできる必要があります。
  • レポート - 収益、コスト、利益(イベントタイプ別の利益)を表示するイベントのレポートを定義する必要があります。
  • データ - ユーザーには財務情報が見えないようにする必要があります。
  • UI - 顧客の見積書、イベントマネージャーのレビュー、ホテルの予約画面。

 

このチャレンジを完了するには、Pegaインスタンスを起動する必要があります。

起動には5分ほどかかることがありますので、しばらくお待ちください。

詳細なタスク

1 設計オプションの特定

Weather

Weatherプロセスには次の2つのオプションがあります。

  1. Weather子ケースを常に作成する。
  2. 降水が予想される場合に、条件付きで子ケースを作成する。

オプション1:Weather子ケースを常に作成する

このオプションでは、承認されたイベントごとにWeatherサブケースが常に作成されます。 Weatherケースには、天候確認日時を待つための遅延が実装されます。

オプション2:降水予報がある場合に、条件付きでWeather子ケースを作成する

このオプションでは、意図した日時に、Eventケースで降水がチェックされます。 Weather子ケースは、降水予報があり天候に備える必要がある場合にのみ作成されます。 このオプションは、以下の4つの方法のうちのいずかで実装できます。

  • Waitシェープを使用して、目的の日時までEventケースを一時停止する。 天気予報を確認する。 降水予報がある場合は、条件付きでWeatherケースを作成する。
  • Eventケース内の並列フローやスピンオフフローで、希望する日時の天候を確認する。 降水予報がある場合は、条件付きでWeatherケースを作成する。
  • 天候確認タスクをエージェントのキューに入れる。 エージェントは、希望する日時に天気予報を実行し、降水予報がある場合には条件付きでWeather子ケースを作成する。
  • 遅延Queue Processorで、希望する日時の天気予報を確認する。 降水予報がある場合は、条件付きでWeather子ケースを作成する。

Parking

Parkingケースはシンプルで、駐車場サービスのオプションが選択された場合にのみ条件付きで作成されます。 シンプルなので、これ以外のオプションを検討する必要はありません。

Hotel Booking

ホテル客室リクエストには、少なくとも2つの実行可能な設計オプションがあります。 1つ目は、すべてのホテル客室リクエスト募集を表すHotelサービスケースを1つ作成する方法です。  2つ目は、個別のホテルのRoom Requestケース(募集ホテルごとに1件)を複数作成する方法です。

オプション1:1つのHotelケース

ホテルサービスオプションが選択されると、Hotelケースが1つ作成されます。 各ホテルを表すデータオブジェクトは、このHotelケースに含まれています。

オプション2:ホテルごとの子ケース

ホテルサービスオプションが選択されると、ホテルごとにHotelケースが個別に作成されます。  募集ホテルを表す子ケースは、Event Booking親ケースで取り扱います。

 

2 設計オプションの評価

Weather

次の表に示すように、Weather子ケースを条件付きで作成するよりも、Weather子ケースを常に作成する方が利点が多くあります。

設計 長所 短所
Weather子ケースを常に作成する(オプション1)
  • 天候に関するデータと予報に必要なロジックはすべてWeather子ケースに含まれている 
  • 「懸念材料の分離」戦略に沿っている
  • 複雑性のカプセル化、モジュール化、委任
  • 天候に対する準備が不要な場合でも、Weatherケースが不必要に作成されてしまう
  • ライセンスモデルによっては、このオプションはコストが高くなることがある
Weather子ケースを条件付きで作成する(オプション2)
  • Weather子ケースは必要なときだけ作成される
  • Weather子ケースを作るかどうかの判断に至るまでの経緯が、WeatherケースではなくEventケースに関連付けられている

Parking

Parkingケースはシンプルで、駐車場サービスのオプションが選択された場合にのみ条件付きで作成されます。 シンプルなので、これ以外のオプションを検討する必要はありません。

Hotel Booking

次の表に示すように、単一のHotelケースを作成するよりも、ホテルごとにHotel子ケースを作成する方が利点が多くあります。

設計 長所 短所
1つのHotelケース
  • すべてのホテルデータが1つのケースに含まれている
  • 計算が簡単になる場合がある
  • データセキュリティ - 他のホテルがデータにアクセスできる可能性がある
  • ロックが問題になる
ホテルごとのHotel子ケース
  • ロックが問題にならない
  • ホテルレビューのUI要件を簡単に満たせる
  • セキュリティー
  • 管理すべきHotelケースインスタンス数が多い

3 最適な設計オプションの提案

Weather子ケース

オブジェクト指向プログラミングのカプセル化の原則に沿い、Eventケースは天候に関するすべてのタスクをWeatherケースに委任します。 天候を独立した子ケースとして実装することにより、Bookingアプリケーションだけでなく、どのアプリケーションでも組み込みアプリケーションとして利用できる天候アプリケーションを作成できます。 ライセンスが懸念される場合、他のオプションを検討してください。

Hotel子ケース

顧客が「Hotel Service」オプションを選択すると、単一のHotel子ケースではなく、複数のHotel子ケースが作成されます。 ホテルごとの子ケースが望ましい理由は、次のとおりです。

  • アプリケーションのロック要件が完全に満たされている。
  • UI要件を簡単に満たせる。
  • ホテルごとに子ケースを1つ持つことで特殊化の幅が広がる。

Parking子ケース

顧客が「Parking and Shuttle Services」オプションを選択すると、Parking子ケースが1つ作成されます。

 



このモジュールは、下記のミッションにも含まれています。

トレーニングを実施中に問題が発生した場合は、Pega Academy Support FAQsをご確認ください。

このコンテンツは役に立ちましたか?

このコンテンツは 67% のユーザーにとって役に立ちました。

改善できるところはありますか?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice