ユーザーエクスペリエンス最適化の手法と方法論
アプリケーションのパフォーマンスが低いと、ユーザーがサービスレベルを満たすことができず、全体的なユーザーエクスペリエンスに悪影響を及ぼします。 UIコンポーネント、ケースタイプ、サービスコールを慎重に設計し使用することは、パフォーマンスの問題を回避するのに役立ちます。 パフォーマンス問題を回避する最適の方法は、そもそも問題が発生しないようにアプリケーションを設計することです。 次の手法を用いて、ユーザーインターフェイスのパフォーマンスを最適化し、ユーザーエクスペリエンスを向上させます。
- ケースマネジメントを使用して、複雑なケースを分割します。
- レイアウトグループを使用して、高度なユーザーインターフェイスを分割します。
- 遅延データロードを活用します。
- データページを使用します。
- 非同期処理やバックグラウンド処理を活用します。
- 大規模な結果セットの改ページを行います。
- リピーティングダイナミックレイアウトを使用します。
- クライアント側の式、計算、および妥当性チェックを最大限に活用します。
- シングルページのダイナミックコンテナーを使用します。
- セクションのリフレッシュと最適化されたコードを活用します。
- PEGA0001アラートを調査します。
- Pega Platform™の新しいユーザーインターフェイス機能を活用します。
- カスタム画面を設計する場合はDX APIを使用します。
ケースマネジメントを使用した複雑なケースの分割
複雑なケースを管理しやすい小さな子ケース、つまりDivide and Conquerパターンで分割することで、それぞれの子ケースを独立して処理できます。 この手法により、ユーザーのセッションに1つの大きなケースを読み込むことを回避します。 この手法は、たとえば、Field Serviceアプリケーションで使用されます。親ケースは対処する必要のある全体的な問題を表します。 子ケースはスピンオフして、技術者が実行した作業を記録します。
レイアウトグループを使用した高度なユーザーインターフェイスの分割
1つの複雑なフォームをユーザーのセッションに読み込むと、パフォーマンスに影響を与える可能性があります。 ユーザーインターフェイスを設計して、ユーザーが特定のタスクを完了することに集中できるようにします。 手法には次の内容があります。
- 複雑なフォームを論理モジュールに分割することで、ユーザーは目の前の目標に集中できます。
- レイアウトグループを使用して、長いフォームを論理グループに分割します。
フォームをレイアウトグループに分割したら、各レイアウトグループで遅延読み込み機能を使用するように設計します。 このアプローチでは、フォームの読み込み時にレイアウトグループのデータを読み込むことができます。 その他のレイアウトグループのデータは、ユーザーがブラウザー上で各レイアウトグループを選択した場合にダイナミックに読み込まれます。
遅延データロード
データロードを遅延させることで、ユーザーインターフェイスの知覚的なパフォーマンスを大幅に向上させることができます。 非同期処理やバックグラウンド処理を通して画面がほぼ瞬時にレンダリングされるため、ユーザーはすぐにタスクに取り掛かることができます。 同時に、追加情報が利用可能になると取得して表示します。 ダイナミックレイアウトでは、遅延読み込みオプションを使用してセカンダリーコンテンツを表示します。
データページ
データページをリストベースのコントロールのソースとして使用します。 データページは、キャッシュされたデータソースとして機能し、スコープの設定、設定された基準に基づく無効化、ガベージコレクションの実行が可能です。
非同期処理オプション
Pega Platformには、外部システムと統合する場合、処理を並列または非同期に実行するための複数のメカニズムが用意されています。 たとえば、バックエンドシステムへの呼び出しを開始し、外部システムの応答をブロックして待機することなく処理を継続できます。 この方法は、外部システムの処理に時間を要する場合や、処理結果をすぐに必要としない場合に有効です。
並列実行モードでの実行を設定したコネクター
以下のシナリオについて想像してみてください。 保険金請求アプリケーションでは、保険金を請求するために電話をかけてきた顧客のデータやポリシーを取得します。 データの取得には、GetCustomerDataとGetPolicyList2つのコネクターを使用します。 顧客データの読み込みを高速化するには、コネクターを並列に実行します。
これを実現するには、Connectメソッドの「Run in Parallel」オプションを使用します。 この場合、各コネクターは個別の子リクエスターとして実行されます。 呼び出されたアクティビティ(親リクエスター)は、セッションのコントロールを維持し、各コネクターが連続して応答を受け取るのを待機する必要はありません。 Run in Parallel機能は、複数のコネクターが応答を取得するのを待機している間に後続のタスクを実行する場合に便利です。 サービスコールが他のリクエスターで実行されると、ユーザーはサービスコールの終了を待たずに他のタスクを続行できます。
キュー実行モードでの実行を設定したコネクター
以下のシナリオについて想像してみてください。 外部システムで顧客レコードを更新するUpdateCustomerDataと呼ばれるSOAPコネクターがあります。 サービスから返された応答は、後続の処理には関係ありません。 他のアプリケーションが顧客を一時的にロックする可能性があるため、実行に失敗した場合は再試行します。
SOAP、REST、SAP、およびHTTPの各コネクターは、同期や並列に加えて、キューモードでの実行も可能です。 コネクターレコードの「Service」タブにある「Processing」オプションでqueueing を選択して、キューを設定します。
キューが使用されている場合は、各リクエストがキューに入れられ、エージェントまたはキュープロセッサーによってバックグラウンドで後ほど処理されます。 キューに関連するエージェントやキュープロセッサーが次回実行されると、そのリクエストの実行を試みます。 キューの特性は、コネクターのRequest Processorで定義されます。
バックグラウンド処理
バックグラウンド処理を活用して、初期画面の読み込みを行うこともできます。 そうすることで、ユーザーは追加の詳細情報を取得しながら作業を続行できます。 この戦略は、SORデザインパターンを使用する場合にメリットがあります。
改ページ
改ページは、長時間のレポートで十分な情報を取得してレポートの最初のページを読み込めるように活用できます。 ユーザーがレポートを表示するために下にスクロールすると、必要に応じて追加のレコードを取得し、表示します。 グリッドやリピーティングダイナミックレイアウトに適切な改ページ設定を使用して、UIで使用されるマークアップを削減します。
リピーティングダイナミック レイアウト
表形式以外のリストには、リピーティングダイナミックレイアウトを使用します。 複数の入れ子になったリピーティングダイナミックレイアウトは避けてください。
サーバー側処理の集約
サーバー上で処理される複数のアクションをまとめて、ラウンドトリップを1回のみにします。
クライアント側の式、計算、および妥当性チェック
可能な限り、サーバー側の式、計算、妥当性チェックではなく、クライアント側の式、計算、妥当性チェックを使用します。 式、計算、バリデーションをクライアントサイドで実行できる場合、常にブラウザー上で実行されます。 このシナリオは一般に、表示条件、無効条件、必須条件に使われる式に当てはまるほか、フォーム上の編集可能なプロパティを参照するデクレアエクスプレッションにも当てはまります。
シングルページのダイナミックコンテナー
iFrame以外(iFrameフリー)のシングルページのダイナミックコンテナーを使用することで、ブラウザーへの負荷が小さく、より優れたデザインとWebライクなインタラクションを実現します。
セクションの組み込みは、実際に再利用を目的としている場合に限ります。 Pega Platformは、含まれるセクションの設定を含まれるセクションにコピーします。 セクションをセルにドラッグアンドドロップするだけで、より効率的にセクションを参照できます。
セクションのリフレッシュと最適化されたコードの活用
リフレッシュハーネスの代わりにリフレッシュセクションを使用することで、フォームで必要なもののみリフレッシュします。 マークアップを減らすには、ダイナミックレイアウトのPresentation タブでコードベースの最適化設定を使用します。
PEGA0001アラートの調査
PEGA0001アラートは、通常、ユーザーエクスペリエンスに悪影響を与える可能性のある、他の基本的なパフォーマンス問題をマスクします。 AESやPDCなど、Pegaが提供するパフォーマンスツールを活用して、基本的なパフォーマンスの問題を特定します。 パフォーマンス問題の原因を特定したら、その問題を解決するためのソリューションを再設計し、実装します。
PEGA0001のアラートメッセージの背後にあるアラートの例は次のとおりです。
- PEGA0005 – クエリーの時間制限超過
- PEGA0020 – 接続インタラクション合計時間の制限超過
- PEGA0026 – データベースへの接続時間の制限超過
Pega Platform機能
Pega Platformのすべての新機能を活用して、クライアント側のパフォーマンスを向上させ、マークアップを縮小します。 最新のユーザーインターフェイステクノロジーは、すべてHTML 5およびCSS 3.0です。
アイコンのフォントや新しいメニューを活用します。 使用するレイアウトやコントロールの数を可能な限り少なくし、常に最新のコンポーネントや設定を使用します。
スクリーンレイアウト、レイアウトグループ、ダイナミックレイアウト、ダイナミックコンテナー、およびリピーティングダイナミックレイアウトを使用します。 レガシーのアコーディオンテーブル、列反復テーブル、タブ反復テーブル、フリーフォームテーブルは、Quirksモードで実行するのは避けてください。 非推奨のレガシータブではなく、レイアウトグループを使用します。 また、インラインスタイル(推奨しませんが、利用はできます)、スマートレイアウト、およびパネルセットは避けてください。
Digital Experience APIを使用したカスタムスクリーンの設計
Pega Platformには、Pegaアプリケーション用の堅牢で設定可能なユーザーインターフェイスに加え、PegaフレームをPega以外のアプリケーションに組み込むために使用できるマッシュアップ機能も用意されています。 また、PegaにはREST APIがあり、これを使用してPega以外のユーザーインターフェイスにPegaルールの結果を反映させることができます。 Pega REST APIを使用すると、アプリケーションユーザーはPegaのビジネス機能に使い慣れたインターフェイスでアクセスできます。
これらのREST APIは、Pegaのユーザーインターフェイスルール(ハーネスおよびセクション)とPegaのビジネスルールを活用して、ネイティブインターフェイスを使用してレンダリングできるJSON相当の構造を返すため、デジタルエクスペリエンスAPIとして知られています。
Digital Experience APIを使用してカスタム画面を設計する方法の詳細については、「Creating custom screens with the digital experience APIs」を参照してください。
避けるべき設計手法
次のような設計は避けるべきです。
- リストコントロールの悪用
- まとまりのない並行開発
リストコントロールの悪用
リストコントロールの悪用は一般的な問題であり、ソリューションの設計時に簡単に回避できます。 オートコンプリートコントロールが、100行以上のデータを返さないデータページでデータを取得するように設定します。 ドロップダウンリストボックスのデータ数を50行以下に制限します。
オートコンプリートコントロールは、次のような場合にユーザーエクスペリエンスに悪影響を及ぼします。
- 潜在的な結果セットが100行より大きい。
- リスト内のすべての結果が同じ3文字で始まる場合。
すべてのリストコントロールの結果セットサイズを可能な限り小さくする。 結果セットのサイズが、オートコンプリートでは100行、ドロップダウンリストでは50行、ラジオボタンでは7行を超える場合は、別のUIコンポーネントやデータ参照メカニズムを使用してください。 リストコントロールは常にデータページから取り込みます。 リストコントロールを取り込むデータページを非同期に読み込むことを検討してください。
まとまりのない並行開発
まとまりのない並行開発工数は、ユーザーのパフォーマンスにも悪影響を及ぼします。 たとえば、複数の開発チームが同じウェブサービスを呼び出し、同じ結果セットを複数回、数秒以内に返すことができます。 同じ結果セットを返す複数のサービスコールは、CPUサイクルとメモリを浪費します。 このような状況を避けるには、開発チームは共有データページを使用してWebサービスの呼び出しを調整する戦略を立てます。