(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】GUI応答時間を改善するために予測ベースのGUIを生成するシステム及び方法
(51)【国際特許分類】
G06F 3/0481 20220101AFI20240110BHJP
【FI】
G06F3/0481
(21)【出願番号】P 2022041101
(22)【出願日】2022-03-16
(62)【分割の表示】P 2020548922の分割
【原出願日】2019-03-12
【審査請求日】2022-03-25
(32)【優先日】2018-03-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】322000096
【氏名又は名称】クラウドブルー エルエルシー
(74)【代理人】
【識別番号】110002572
【氏名又は名称】弁理士法人平木国際特許事務所
(72)【発明者】
【氏名】コルヤキン,ロスティスラフ
【審査官】酒井 優一
(56)【参考文献】
【文献】特開2010-211483(JP,A)
【文献】特開2010-224589(JP,A)
【文献】特開2008-071092(JP,A)
【文献】特表2004-503862(JP,A)
【文献】特開2010-165249(JP,A)
【文献】特開2010-081047(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/0481
(57)【特許請求の範囲】
【請求項1】
グラフィカルユーザインタフェース(GUI)画面の応答時間を改善するために予測ベースのGUI画面を生成する方法であって、
最初のGUI画面のナビゲーション要求をRESTエンドポイントで受信するステップと、
セキュリティ範囲変更日を予測器でチェックするステップであって、前記セキュリティ範囲変更日は、前記最初のGUI画面のナビゲーション要求が要求されているユーザが利用できるリソースのセットを含む、前記セキュリティ範囲変更日をチェックするステップと、
GUI遷移モデルを前記予測器で読み出すステップであって、前記GUI遷移モデルは、前記最初のGUI画面から遷移するための新しいGUI画面を識別する、前記GUI遷移モデルを読み出すステップと、
前記
GUI遷移モデルが前記セキュリティ範囲変更日よりも新しいか否かを前記予測器でチェックするステップと、
前記GUI遷移モデルからの応答を前記予測器で読み出すステップであって、前記応答は、前記新しいGUI画面のソースコードへのリンクを有するナビゲーションツリーと、前記GUI画面のソースコードを実行するために必要なユーザの現在のリソース状態とを含む、前記応答を読み出すステップと、
を含む、前記方法。
【請求項2】
前記ナビゲーションツリーは、GUI遷移を示すナビゲーショングラフである、請求項1に記載の方法。
【請求項3】
前記
GUI遷移モデルが前記セキュリティ範囲変更日よりも新しいか否かを前記予測器でチェックすることは、前記
GUI遷移モデルが古い場合、前記GUI遷移モデルをクリーニングし、新しいGUI遷移モデルの作成を要求するステップをさらに含む、請求項1に記載の方法。
【請求項4】
前記応答を応答キャッシュに記憶するステップをさらに含む、請求項1に記載の方法。
【請求項5】
前記応答を前記RESTエンドポイントに戻すステップをさらに含む、請求項1に記載の方法。
【請求項6】
グラフィカルユーザインタフェース(GUI)画面の応答時間を改善するために予測ベースのGUI画面を生成するシステムであって、
クラウドサービスブローカプラットフォームを含み、前記クラウドサービスブローカプラットフォームは、
データベースと、
GUI遷移モデルを作成するように構成された挙動モデルビルダであって、前記GUI遷移モデルは、最初のGUI画面から新しいGUI画面へのGUI遷移の可能性であり、前記新しいGUI画面は、複数のコネクタパッケージから構築される統合ユーザインタフェースを含む、前記挙動モデルビルダと、
前記GUI遷移モデルに少なくとも部分的に基づいて、ユーザがアクセスする可能性の最も高いGUIビューを読み出すように構成されたキャッシュフィラと、
前記新しいGUI画面を要求するユーザに適用可能なセキュリティ範囲の少なくとも1つのリソース状態に少なくとも部分的に基づいて、前記新しいGUI画面のナビゲーション応答を作成するように構成されたナビゲーションモジュールと、
セキュリティ範囲の変更が前記GUI遷移モデルより新しいか否かに少なくとも部分的に基づいて、応答キャッシュをクリーニングするように構成されたキャッシュクリーナと、
GUIナビゲーションサービスエンドポイントをシミュレーションするように構成されたRESTエンドポイントと、
を含む、前記システム。
【請求項7】
前記クラウドサービスブローカプラットフォームに動作可能に接続されたクライアントであって、新しいGUI画面を要求し、前記新しいGUI画面のナビゲーション応答を受信するように構成された前記クライアントをさらに含む、請求項6に記載のシステム。
【請求項8】
前記クラウドサービスブローカプラットフォームは、クラウドサービスブローカコントローラをさらに含む、請求項6に記載のシステム。
【請求項9】
前記クラウドサービスブローカコントローラは、複数のコネクタアプリケーションを含み、
前記複数のコネクタアプリケーションのそれぞれは、前記クラウドサービスブローカプラットフォームを介した統合のために各アプリケーションに対して構成される、請求項8に記載のシステム。
【請求項10】
前記複数のコネクタパッケージは、ナビゲーション要素を構築するためのユーザインタフェースモジュールを含む、請求項6に記載のシステム。
【請求項11】
前記複数のコネクタパッケージは、各前記ナビゲーション要素のそれぞれのセキュリティ範囲をさらに含む、請求項10に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
<関連出願の相互参照>
本特許出願は、2018年3月13日出願の米国仮特許出願第15/920,319号の開示の優先権を主張し、その開示は、参照により本明細書に組み込まれる。
【0002】
本開示は、ナビゲーションインタフェース応答時間を改善するために、予測に基づいてユーザナビゲーションインタフェースを動的に作成するためのシステム及び方法に関する。
【背景技術】
【0003】
ユーザナビゲーションインタフェースとも呼ばれるグラフィカルユーザインタフェース(GUI)は、当業者に周知のコンピュータシステム及びアプリケーションの一般的な特徴である。従来のGUIは、データと情報を取得したり、アクションを行ったりするためにバックエンドと通信するフロントエンドナビゲーションインタフェースをユーザに提供するように働く。そのような従来の実施形態では、GUIは、クリック可能なボタン、リンク、スライダなどのナビゲーションアイテムまたは制御アイテムを含む特定のコンテキストを提供すると考えられてよい。このようなナビゲーションアイテムまたは制御アイテムの目的は、ユーザがGUIを操作して所望のアクションを実行できるようにすることである。ナビゲーションアイテムまたは制御アイテムを使用してGUIを操作すると、GUIは、GUIがバックエンドと通信することを要求する応答アクションを生成する。例えば、ユーザがGUIを介して情報を読み出したい場合、GUIに「オープン」制御アイテムなどの制御アイテムを含めてよく、このアイテムは、操作されると、応答アクションを開始し、応答アクションは、GUIに、動作可能に接続されたバックエンドからデータを読み出し、そのデータをGUI経由でユーザに表示することを要求する。このような従来の実施形態では、応答アクションはユーザが実行した特定の操作に依存する(すなわち、ユーザが「オープン」制御アイテムを操作しない場合、GUIは応答アクションとしてバックエンドからのデータの読み出しを必要としない場合がある)。
【0004】
バックエンドからデータを読み出すことに加えて、GUIコンテキストの変更も必要な場合がある。例えば、GUI内の制御アイテムの変更が必要な場合があり、これにより、以前に表示されたGUI制御アイテムは関連が無くなる。上記の例を続けると、ユーザが「オープン」制御アイテムを操作し、GUIがバックエンドからデータを読み出し、データを表示すると、情報が読み出されたため、「オープン」制御アイテムは関連が無くなる場合がある。そのような例では、「オープン」制御アイテムは、ユーザがGUI内の操作を閉じるか、または終了することを可能にする「クローズ」制御アイテムで置き換えられてよい。
【0005】
そのような従来の実施形態では、GUIの将来の状態(すなわち、新しい制御アイテムへの変更)は、GUIの現在の状態におけるユーザのアクションに依存する。すなわち、現在の状態でGUIでアクションが実行されると、GUIは、新しい/将来の状態に遷移し、その状態は、バックエンドと通信してアクションを実行し、それに従ってユーザに応答を提示することを含み得る。そのような実施形態では、バックエンドからの応答は、遅延されるか、そうでなければレイテンシを含む場合があり、それにより、現在の状態から新しい/将来の状態へのGUIの遷移も遅れる場合がある。このような場合、GUIがバックエンドからの応答を待つ間、ユーザは待機しなければならないため、ユーザ体験は理想的ではない。過度の待ち時間またはレイテンシは、特にバックエンドの操作負荷が高い状況では一般的である(すなわち、GUIがバックエンドから応答を受信しておらず待機しているため、GUIがユーザアクションに応答するのに時間がかかる)。追加の待ち時間は、ユーザが自身の操作またはトランザクションの実行が遅れるため、必然的にユーザ体験の低下につながる。
【0006】
さらに、セキュリティ上の考慮事項により、GUI遷移の管理に追加のオーバーヘッドが追加される。例えば、GUIを操作しようとするユーザはまた、ユーザの許可の範囲内で操作することができる(すなわち、ユーザは、ユーザが許可されていないアクションを実行できない)。したがって、セキュリティ制御を考慮に入れると、追加の処理時間が加算され、レイテンシがさらに長くなる。
【0007】
クラウドサービスブローカ(CSB)環境では、GUIレンダリングがより複雑になる場合がある。CSBの操作は、米国特許出願第15/142,256号「METHOD AND STANDARD FOR INTEGRATING APPLICATIONS INTO A CLOUD」で開示され、この出願は参照によりその全体が組み込まれる。アプリケーションパッケージングスタンダード(APS)は、独立系ソフトウェアベンダ(ISV)がCSBを介してクラウドアプリケーション(クラウドサービス)を配信し、標準化された表現状態転送(RESTful)アプリケーションプログラムインタフェース(API)を介して様々なクラウドアプリケーションが連携できるようにするための方法である。これは、ISVがアプリケーションごとに(APSに従って作成された)コネクタパッケージを作成することにより、アプリケーションをAPS対応のCSBと統合するのに役立つ。
【0008】
いくつかの従来の実施形態では、コネクタパッケージは、メタデータ、制御メソッド記述、及びコンテンツファイルを含んでよく、これらは、アプリケーションリソース、サービス、ユーザインタフェースコンポーネント、及び、リソース管理に必要な制御メソッドのロジック(すなわち、各アプリケーションに適用可能な、作成可能なリソースのスキーマ)を宣言及び定義するために使用できる。コネクタパッケージは、例えば、画面レイアウト、ナビゲーションコントロール、フォームなど、アプリケーションGUIに関する情報をさらに含む。コネクタパッケージは、ISVのアプリケーションリソースと「コネクタフロントエンド」(CSBの顧客がCSBインタフェースにアクセスするときに見るウェブインタフェース)の定義に使用される宣言ファイルをさらに含んでよい。このようなCSB環境では、ウィジェット、予め定められたページ構造、ナビゲーションメソッド、及び、画面挿入メカニズムを含み得る特定のフレームワークを使用して、コネクタパッケージ開発者がウェブインタフェースを開発する。例えば、典型的なコネクタフロントエンドは、事前定義ビューに挿入された画面、ウィジェットをレンダリングするためのカスタムロジック、及び、カスタムナビゲーション構造で構成される。ウィジェットは、対応するクラウドアプリケーションの顧客にとって価値があるとコネクタ開発者が考える情報、例えば、使用状況レポート、サブスクリプション及びサービス情報、指示等を表示してよい。
【0009】
この統合により、共通のスタイルとコントロールの集まりを備えた単一のウェブパネル(すなわち、統合されたGUI)を介して統合されたクラウドアプリケーションを管理できる。例えば、Dropbox(登録商標)はISVから入手できるアプリケーションの1つであってよい。ユーザがDropbox(登録商標)にアクセスすると、Dropbox(登録商標)のコネクタアプリケーションは適切な画面/GUIインタフェースを提示することによってユーザアクティブティを促進する(すなわち、Dropbox(登録商標)コネクタアプリケーションがユーザのGUIアクティビティを管理する)。この例を続けると、統合された複数のアプリケーションがある場合、GUIには、特定のアプリケーションのそれぞれに合わせて特別に調整された多数のインタフェースが含まれてよい。このような例では、多数のアプリケーション間の統合が(ユーザから見て)シームレスに生じるように、可能な全ての画面を決定する必要がある。ただし、画面の全ての組み合わせを準備するには、広範な開発が必要であり、統合されるアプリケーションの数が増えると、開発も増加する。さらに、CSB環境では膨大な数の可能なGUI画面の組み合わせからレンダリングする適切なGUI画面を計算する必要があるため、リアルタイムで(すなわち、ユーザがアプリケーションを使用しているときに)GUI画面をフェッチすると、速度が低下する。
【0010】
したがって、GUI応答時間を改善するために予測ベースのGUIを生成するシステム及び方法が必要である。
【発明の概要】
【0011】
本開示は、ナビゲーションインタフェース応答時間を改善するために、予測に基づいてユーザナビゲーションインタフェースを動的に作成するシステム及び方法に関する。少なくとも1つの実施形態では、グラフィカルユーザインタフェース(GUI)画面の応答時間を改善するために予測ベースのGUI画面を生成する方法が提供される。この方法は、GUI画面のビュー要求をエンドポイントで受信することであって、GUI画面は複数のコネクタパッケージから構築された統合ユーザインタフェースを含む、ビュー要求を受信することと、GUI遷移モデルの有効性を予測器で検証することであって、GUI遷移モデルは複数のコネクタパッケージのそれぞれに対応する、有効性を検証することと、新しいGUI遷移モデルを挙動モデルビルダで構築することであって、新しいGUI遷移モデルはGUI画面からの可能な各遷移について複数の遷移確率を含み、複数の遷移確率は複数のコネクタパッケージのそれぞれが使用可能なリソース属性に少なくとも部分的に依存する、新しいGUI遷移モデルを構築することと、複数の遷移確率から可能性の高い遷移を挙動モデルビルダで選択することであって、可能性の高い遷移は要求される可能性が最も高い新しいGUI画面への遷移である、可能性の高い遷移を選択することと、可能性の高い遷移に少なくとも部分的に基づいてナビゲーションツリーをナビゲーションモジュールで作成することと、エンドポイントに応答を返信することであって、応答はナビゲーションツリーを含み、新しいGUI画面のナビゲーション応答をさらに含む、応答を返信することとを含む。
【0012】
本開示の少なくとも1つの実施形態では、方法は、Nグラムモデル、隠れマルコフモデル及び最大エントロピーマルコフモデルからなる群から選択された遷移モデルを含む。
【0013】
本開示の少なくとも1つの実施形態では、方法は、遷移モデルがサポートベクタマシン(SVM)、決定木、ランダムフォレスト及びK最近傍法からなる群から選択されたブーストされた分類器をさらに含むことを、含む。
【0014】
本開示の少なくとも1つの実施形態では、方法は、クライアントから受信されるGUI画面の要求と、セキュリティ範囲変更日を含むGUI遷移モデルとを含む。
【0015】
本開示の少なくとも1つの実施形態では、方法は、GUI遷移モデルを検証することが最後のセキュリティ範囲変更日と、いつGUI遷移モデルが最後に変更したかをチェックすることとを含むこと、を含む。
【0016】
本開示の少なくとも1つの実施形態では、方法は、GUI画面から可能な各遷移について複数の遷移確率を再計算するのに十分なデータがあるか否かを予測器でチェックすることと、GUI画面からの可能な各遷移の複数の遷移確率を予測器で再計算することと、データに少なくとも部分的に基づいて新しいGUI遷移モデルを作成することと、新しいGUI遷移モデル作成日を予測器で設定することと、キャッシュフィラを動作させることであって、キャッシュフィラは、キャッシュ内の元のGUI遷移モデルを新しいGUI遷移モデルで置き換えるように構成される、キャッシュフィラを動作させることとを含む。
【0017】
本開示の少なくとも1つの実施形態では、データは、GUI画面遷移及びブースティング分類器を含む。遷移確率は、ブースタ分類器に少なくとも部分的に基づいて、確率の配列を計算することをさらに含む。
【0018】
本開示の少なくとも1つの実施形態では、方法は、最初のGUI画面のナビゲーション要求をRESTエンドポイントで受信することと、セキュリティ範囲変更日を予測器でチェックすることであって、セキュリティ範囲変更日は、最初のGUI画面のナビゲーション要求を要求しているユーザが使用可能なリソースのセットを含む、セキュリティ範囲変更日をチェックすることと、GUI遷移モデルを予測器で読み出すことであって、GUI遷移モデルは、最初のGUI画面から遷移するための新しいGUI画面を識別する、GUI遷移モデルを読み出すことと、遷移確率モデルがセキュリティ範囲変更日よりも新しいか否かを予測器でチェックすることと、応答を予測器で読み出すことであって、応答は、新しいGUI画面のソースコードへのリンクを有するナビゲーションツリーと、GUI画面ソースコードの実行に必要なユーザの現在のリソース状態とを含む、応答を読み出すことと、を含む。
【0019】
本開示の少なくとも1つの実施形態では、ナビゲーションツリーは、GUI遷移を示すナビゲーショングラフである。本開示の少なくとも1つの実施形態では、方法は、予測器をチェックすることが、遷移確率モデルが古い場合、GUI遷移モデルをクリーニングし、新しいGUI遷移モデルの作成を要求するステップを含むこと、を含む。
【0020】
本開示の少なくとも1つの実施形態では、システムは、クラウドサービスブローカプラットフォームを含み、クラウドサービスブローカプラットフォームは、予測器、データベース、GUI遷移モデルを作成するように構成された挙動モデルビルダ、GUI遷移モデルに少なくとも部分的に基づいてユーザがアクセスする可能性が最も高いGUIビューを読み出すように構成されたキャッシュフィラ、ナビゲーション応答を作成するように構成されたナビゲーションモジュール、応答キャッシュをクリーニングするように構成されたキャッシュクリーナ、及び、GUIナビゲーションサービスエンドポイントをシミュレーションするように構成されたRESTエンドポイントを含む。
【0021】
本開示の少なくとも1つの実施形態では、システムは、クラウドサービスブローカプラットフォームに動作可能に接続されたクライアントを含み、新しいGUI画面を要求し、新しいGUI画面のナビゲーション応答を受信するように構成される。
【0022】
本開示の少なくとも1つの実施形態では、クラウドサービスブローカコントローラは、複数のコネクタアプリケーションを含み、複数のコネクタアプリケーションのそれぞれは、クラウドサービスブローカプラットフォームを介した統合のために各アプリケーションに対して構成され、コネクタパッケージは、ナビゲーション要素を構築するためのユーザインタフェースモジュールと、ナビゲーション要素のそれぞれのセキュリティ範囲とを含む。
【0023】
本開示の様々な例示の実施形態の以下の説明を添付図面と共に参照することによって、本明細書に含まれる実施形態及び他の特徴、利点及び開示内容、並びにそれらを達成する方法は明らかになり、本開示はよりよく理解されよう。
【図面の簡単な説明】
【0024】
【
図1A】可能な全てのナビゲーション遷移を有するナビゲーション経路の例示的な状態図を示す。
【0025】
【
図1B】単純なナビゲーション経路の例示的な状態図を示す。
【0026】
【
図1C】プレースホルダを介して組み立てられた例示的なナビゲーションツリー(従来技術)を示す。
【0027】
【
図2】GUI応答時間を改善するために予測ベースのGUIを生成するシステムの概略図を示す。
【0028】
【
図3】GUI応答時間を改善するために予測ベースのGUIを生成するシステムの概略図を示す。
【0029】
【
図4】GUI応答時間を改善するために予測ベースのGUIを生成する方法の概略図を示す。
【0030】
【
図5】GUI応答時間を改善するために予測ベースのGUIを生成する方法の概略図を示す。
【0031】
【
図6】GUI応答時間を改善するために予測ベースのGUIを生成する方法の概略図を示す。
【発明を実施するための形態】
【0032】
本開示の原理の理解を促進する目的で、図面に示す実施形態を参照し、その実施形態を説明するために特定の用語が使用される。それでもなお、本開示の範囲をそれによって限定する意図がないことは理解されよう。
【0033】
この詳細な説明は、コンピュータまたはコンピュータネットワーク上で実行されるプログラム、データ構造または手順の観点から提示されている。システムが実装するソフトウェアプログラムは、インタープリタ型、コンパイラ型、または、その他のプログラミング言語等、任意のプログラム言語で記述されてよい。これらの言語には、Xcode、iOS、cocoa、cocoa touch、MacRuby、PHP、ASP.net、HTML、HTML5、Ruby、Perl、Java、Python、C++、C♯、JavaScript、及び/または、Goプログラミング言語が含まれてよいが、これらに限らない。他の言語が代わりに、または前述のものと組み合わせて使用されてよいことと、例えば、Ruby on Rails、System.js、Zend、Symfony、Revel、Django、Struts、Spring、Play、Jo、Twitter Bootstrapなどのウェブ及び/またはモバイルアプリケーションフレームワークも使用されてよいこととを当業者が理解することは、もちろん、理解されたい。本明細書に開示されるシステム及び方法は、例えばインターネットなどのコンピュータネットワークを介して利用可能なサービスとしてのソフトウェアで実現されてよいことをさらに理解されたい。さらに、本開示は、1つまたは複数のアプリケーションプログラミングインタフェースなどを介したウェブサービス、アプリケーションプログラミングインタフェース及び/またはサービス指向アーキテクチャを可能にし得る。
【0034】
図1Aを参照すると、全体として100で示される、全ての可能なナビゲーション遷移を有するナビゲーション経路の例示的な状態図が示されている。状態
図100は、複数のGUI状態(すなわち、102、104、106、108、110及び112)を含む。本開示の少なくとも1つの実施形態では、各GUI状態は、現在のGUI状態を示す。例えば、ユーザが最初にGUIを操作するとき、GUIはGUI状態102(ホーム)に初期化されてよく、GUIはGUI状態102に適切な付随情報またはGUI内の制御アイテムを特徴とする。各GUI状態に対して、別のGUI状態への少なくとも1つの遷移がある。例として、GUI状態102(ホーム)は、GUI状態104(ユーザリスト)への1つの遷移102Aのみを有し、GUI状態112(サービス割り当て)は、GUI状態102への遷移112A、及び、GUI状態104への遷移112Bを含む。GUI状態遷移は、GUIを現在の状態から次の/将来の状態に遷移する(例えば、GUI制御アイテムの操作によってユーザが行う)アクションまたは操作を示すことは理解されよう。上記の例を続けると、GUIがGUI状態102に初期化される場合、GUI状態102内で利用可能な操作(複数可)は、GUIがGUI状態104に遷移するように遷移102Aを呼び出す。同様に、GUI状態が現在、GUI状態112にある場合、GUIが(遷移112Aを介して)GUI状態102にまたは(遷移112Bを介して)GUI状態104になるのを可能にするように動作可能に選択され得るGUI機能がユーザに提示されてよい。状態図は、現在のGUI状態が与えられた場合に可能な全てのナビゲーション遷移を表示することがさらに理解されよう。各GUI状態は、各アプリケーションのためにISVによって独立して作成されてよいことが理解されよう。
【0035】
図1Bを参照すると、本開示の少なくとも1つの実施形態による、単純なナビゲーション経路の例示的な状態
図150が示されている。状態
図150では、GUI状態102が初期状態である(すなわち、ユーザが、GUI状態102に提示されているGUIを見るように初期化される)。例として、GUIの操作時に、GUIは遷移102Aを介してGUI状態104に遷移し、GUI状態104で、GUIは、遷移104Aを介して操作によってGUI状態110に遷移し、GUI状態110で、GUIは、遷移11Aを介して操作によってGUI状態112に遷移し、GUI状態112で、GUIは、遷移112Bを介して操作によりGUI状態108に遷移し、GUI状態108で、GUIは、遷移108Aを介して操作によりGUI状態106に遷移し、そして最後に、GUI状態106で、GUIは遷移106Aを介してGUI状態104に遷移する。
【0036】
この例示的な実施形態を続けると、状態
図150はナビゲーション経路を示し、ユーザはこのナビゲーション経路に沿って操作して特定のタスクを達成することが理解されよう。例えば、(本明細書でさらに開示するように)クラウドサービスブローカ(CSB)プラットフォームにユーザをプロビジョニングするために、管理者はホーム画面(GUI状態102)で開始するように初期化される。ここで、ホーム画面は、CSBプラットフォームのコントロールパネルで利用可能な開始点であってよい。ホーム画面(GUI状態102)で、管理者に、ユーザリストへのリンクなどの少なくとも1つの制御アイテムを含むメニューが提示されてよい。制御アイテムの操作時(すなわち、ユーザリストへのリンクをクリックすると)、GUIはユーザリスト画面(GUI状態104)に遷移する。各GUI画面(すなわち、GUI状態)において、利用可能な制御アイテムのリストが提供されてよいことは理解されよう。制御アイテムにより、管理者はあるGUI画面から次のGUI画面にナビゲートできることは理解されよう。ナビゲーション遷移には、動的と静的の2種類があることもさらに理解されよう。本開示の少なくとも1つの実施形態では、静的遷移は、GUI画面のナビゲーション記述で宣言される遷移である。すなわち、静的遷移は、あるGUI画面から次のGUI画面への遷移について事前に定義されている。これにより、2つのGUI画面間に「固定した」関係が作成されることは理解されよう。
【0037】
上記の例を続けると、ユーザリスト画面(GUI状態104)で、管理者は、制御アイテムを含むメニューを再び提供されてよく、この制御アイテムは新規ユーザを追加できるリンクを含み得る。リンクを操作して新規ユーザを追加すると、GUIは新規ユーザ画面(GUI状態110)に遷移し、それによって、管理者は新規ユーザをシステムに追加できる。新規ユーザ画面(GUI状態110)で、管理者はGUIを操作して新規ユーザを追加してよく、次のGUI画面(すなわち、サービス割り当て(GUI状態112))に遷移するための制御アイテムを含むメニューも提供されてよい。上記の例を続けると、管理者は、サービス割り当て画面(GUI状態112)で、制御アイテムを操作してCSBプラットフォームサービスをユーザに割り当てることができる。その割り当てが完了すると、管理者はGUIを操作して新しい仮想プライベートサーバ(VPS)(このVPSサービスはステップ112で割り当てられる)画面(GUI状態108)に遷移してよく、その後、管理者はユーザビュー(GUI状態106)に遷移し、最後にユーザリスト画面(GUI状態104)に戻る。上記ナビゲーション遷移は、CSBプラットフォームでの管理者によるアクションの実行の例示的な実施形態であることは理解されよう。
【0038】
図1Cを参照すると、全体として175で示される、プレースホルダを介して組み立てられた例示的なナビゲーションツリーが示されている。本開示の少なくとも1つの実施形態では、ナビゲーションツリー175は、アプリケーション180及びアプリケーション182を含む。アプリケーション180及び182は、CSBプラットフォームを介して利用可能な任意のアプリケーションであってよいことが理解されよう。アプリケーション180は、ナビゲーションルート184及びメニューアイテム186をさらに含む。メニューアイテム186は、ビュー188及び右ビュー190をさらに含む。本開示の少なくとも1つの実施形態では、プレースホルダを使用して、アプリケーション180及びアプリケーション182のGUIを統合する。例えば、アプリケーション180及びアプリケーション182はそれぞれ、コネクタアプリケーションに関連付けられたコネクタパッケージを含み得る。コネクタアプリケーション182がアプリケーション180に動作可能に接続できるように、各アプリケーションのGUI画面は、プレースホルダを介して動作可能に接続される必要がある。本開示の少なくとも1つの実施形態では、アプリケーション180は、右ビュー190をアプリケーション192のプレースホルダ194に埋め込むように構成される。特定のアプリケーション(すなわち、アプリケーション180またはアプリケーション182のいずれか)の操作のためのGUI画面の生成中に、静的接続がアプリケーション180とアプリケーション182のナビゲーションツリーの間に構築されるので、右ビュー190は2つの親ノード(すなわち、ビュー188とプレースホルダ194)を有し、逆に、2つの親ノード(ビュー188とプレースホルダ194)は、1つの共通の子ノード(すなわち、右ビュー190)を有する。このようなプレースホルダの使用により、ナビゲーションツリーをナビゲーショングラフに変えることができることがさらに理解されよう。右ビュー190は、アプリケーション180とアプリケーション182の間の統合点としても機能することも理解されよう。例えば、右ビュー190は、ユーザがアプリケーション180からアプリケーション182へ(または該当する場合はその逆に)遷移し得る点である。同様に、右ビュー190はまた、あるサブツリー(すなわち、アプリケーション182のサブツリー)をアプリケーション180のサブツリーに挿入するためのフォークと考えられてよい。
【0039】
図2を参照すると、全体として200で示される、GUI応答時間を改善するために予測ベースのGUIを生成するシステムの例示的な実施形態が示されている。本開示の少なくとも1つの実施形態では、システム200は、クライアント202、CSBプラットフォーム204、予測器206、ナビゲーションモジュール208、CSBコントローラ210及びネットワーク216を含む。本開示の少なくとも1つの実施形態では、システム200は、当技術分野で既知のタイプの1つまたは複数のサーバコンピュータ、コンピューティングデバイス、またはシステムを含み得る。システム200は、当業者が思いつくようなソフトウェア、ハードウェア及びコンポーネント、例えば、マイクロプロセッサ、メモリシステム、入力/出力デバイス、ホストバスアダプタ、ファイバチャネル、小型コンピュータシステムインタフェースコネクタ、高性能パラレルインタフェースバス、ストレージデバイス(例えば、ハードドライブ、ソリッドステートドライブ、フラッシュメモリドライブ)、デバイスコントローラ、ディスプレイシステムなどをさらに含む。システム200は、例えば、IBM(登録商標)のAS/400(登録商標)サーバ、IBM(登録商標)のAIX UNIX(登録商標)サーバ、または、MICROSOFT(登録商標)のWINDOWS NT(登録商標)サーバ等、周知の多くのサーバのうちの1つを含み得る。
【0040】
本開示の少なくとも1つの実施形態では、クライアント202は、クライアント202がGUI用のコネクタ固有コード及びCSBプラットフォームコードを有するJavaScriptファイルをCSBコントローラ210からダウンロードできるように、GUIフレームワークとウェブブラウザを備えたコネクタアプリケーション固有モジュールとの組み合わせを含んでよい。ユーザは、クライアント202を使用して、コネクタアプリケーション212に関連付けられたアプリケーション固有のGUIと統合されたCSBプラットフォーム204のGUIページにアクセスしてよいことが理解されよう。クライアント202はまた、GUIビジネスロジックを処理し、任意のリソースを取得、削除または修正する要求をCSBコントローラ210に対して行い、アクティブなビューを変更するためのナビゲーション要求を行う。
【0041】
本開示の少なくとも1つの実施形態では、各クライアント202は、JavaScriptフレームワーク及び統合されたアプリケーションのJavaScriptモジュールからなる単一ページのウェブアプリケーションを含む。クライアント202は、内部で実行するフレームワーク及びモジュールを備えたウェブブラウザを含むことが理解されよう。本開示の少なくとも1つの実施形態では、クライアント202は、コネクタアプリケーションUIモジュールを含み、コネクタアプリケーションUIモジュールは、このクライアント202のユーザが使用する統合クラウドアプリケーションのコネクタ固有のUIモジュール(GUIコード)のセッションスコープストレージである(例えば、ユーザはこれらのアプリケーションのサブスクリプションを持っている、これらのアプリケーション等に対応するいくつかのリソース等を使用している、これらのアプリケーションに関連するビューを表示するために必要なユーザとクラウドアプリケーションとの間の任意の接続を使用している)。最初に、クラウドアプリケーションに固有のこれらのモジュール(GUIコード)は、ソースコードまたはUIモジュールを有するファイルの形式でコネクタパッケージに配置される。これらのコネクタパッケージのメタデータは、これらのソースコードを参照するビューを表示するための階層(直接接続)、プラグイン、及び必要な変数(セキュリティ条件)を記述する。
【0042】
本開示の少なくとも1つの実施形態では、クライアント202のフレームワークは、CSBコントローラ210及び予測器206に動作可能に接続される。本開示の少なくとも1つの実施形態では、CSBコントローラ210は、リソースを用いてRESTful操作を行うために呼び出され、一方、予測器206は、GUI画面の別のビューに移動するために呼び出される。一例として、フレームワークは、CSBコントローラ210を介してCSBプラットフォーム204から統合されたアプリケーション固有のUIモジュールをダウンロードすることを担当する。アプリケーション固有のUIモジュールは、アプリケーション固有のビューを表示するために必要なソースコードファイルである。ビューは、相互に接続された幾つかのUIモジュールで構成されてよい。通常、特定のビューを表すメインモジュールがある。メインUIモジュールがそれ自体で動作できない場合、メインUIモジュールは、依存セクションの依存UIモジュールを宣言し、それに基づいて、フレームワークは、ビューを表示するための依存UIモジュールをダウンロードしてよい。
【0043】
本開示の少なくとも1つの実施形態では、ネットワーク216は、例えば、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(公衆交換電話網など)、インターネット、光ファイバベースのネットワーク、ケーブルテレビネットワーク、衛星テレビネットワーク、またはネットワークの組み合わせ等、異なるタイプのネットワークの1つを含み得る。ネットワーク216は、専用ネットワークまたは共有ネットワークのいずれであってもよい。共有ネットワークは、例えば、ハイパーテキスト転送プロトコル(HTTP)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ワイヤレスアプリケーションプロトコル(WAP)等、相互に通信するための様々なプロトコルを使用する異なるタイプのネットワークの関連付けを表す。ネットワーク216は、ルータ、ブリッジ、サーバ、コンピューティングデバイス、ストレージデバイス、モデム、スイッチ、ファイアウォール、ネットワークインタフェースカード(NIC)、ハブ、ブリッジ、プロキシサーバ、光アドドロップマルチプレクサ(OADM)、または、当業者に周知のデータを処理及び/または転送する他のタイプのデバイス等、1つまたは複数のデータ処理及び/またはデータ転送デバイスを含んでよいことはさらに理解されよう。他の様々な実施形態では、他の様々な構成が可能であることを理解されたい。イーサネットネットワーク、ケーブルベースネットワーク、衛星通信ネットワーク等、当業者に周知の他のコンピュータネットワーク、及び/または 、ネットワークの任意の組み合わせは、本開示の範囲内であると考えられる。
【0044】
本開示の少なくとも1つの実施形態では、CSBプラットフォーム204は、予測器206をさらに含む。予測器206は、例えば、マイクロプロセッサ、メモリシステム、入力/出力デバイス、デバイスコントローラ、ディスプレイシステム等、当業者が思いつくであろうソフトウェア、ハードウェア及びコンポーネントをさらに含み、これらは、本開示に従って予測器206に割り当てられた機能を実行するように集合的に動作可能である。明確にするために、予測器206は、CSBプラットフォーム204のコンポーネントとして示されている。しかし、予測器206がCSBプラットフォーム204とは異なり、CSBプラットフォーム204から離れていることは、本開示の範囲内であり、当業者には理解されよう。予測器206が常駐するリモートサーバまたはコンピューティングデバイスは、CSBプラットフォーム204、ナビゲーションモジュール208、CSBコントローラ210及びネットワーク216に電子的に接続されており、予測器206がシステム200の各コンポーネントとの継続的な双方向データ転送を実行できることはさらに理解されよう。
【0045】
本開示の少なくとも1つの実施形態では、CSBプラットフォーム204は、CSBコントローラ210をさらに含む。CSBコントローラ210は、少なくとも1つのコネクタアプリケーション212を含む。CSBコントローラ210は、複数のコネクタアプリケーションを含んでよいことは理解されよう。
【0046】
本開示の少なくとも1つの実施形態では、CSBプラットフォーム204は、データベース214も含む。データベース214は、静的データと動的データの両方を含む。静的データは、全てのコネクタUIモジュールのパッケージ名、パッケージバージョン、リソースタイプスキーマ、ナビゲーションスキーマ、ソースコード等のコネクタパッケージメタデータである。動的データは、ユーザ、ドメイン、インターネットプロトコル(IP)アドレス、及び、任意のコネクタ固有のリソースインスタンス(例えば、VPSコネクタパッケージ用のVPSサーバ)などのCSBプラットフォーム204の全てのリソースインスタンスの状態である。データベース214は、当技術分野で周知のタイプのソフトウェアシステムによって接続された複数のデータベースを含んでよく、それらは本発明に従ってデータベース214に任された機能を実行するように集合的に動作可能であることが当業者には理解されよう。データベース214はまた、例えば、Hadoopアーキテクチャなど、ビッグデータサービスのための分散データアーキテクチャの一部であってよい。データベース214は、リレーショナルデータベースアーキテクチャ、noSQL、OLAP、または、データベース技術で既知のタイプの他のデータベースアーキテクチャを含み得る。データベース214は、例えば、SQLデータベース、NoSQLデータベース、MICROSOFTのSQLサーバ、MICROSOFTのACCESS、MongoDB、Redis、Hadoop、またはIBMのDB2データベース管理システム、または、ORACLEもしくはSYBASEから入手可能なデータベース管理システム、及び、当業者に既知のように、アプリケーションに必要な他の任意のサービス等、周知の多くのデータベース管理システムの1つを含み得る。データベース214は、CSBプラットフォーム204内からデータベース214に通信される情報を読み出し可能に記憶する。
【0047】
本開示の少なくとも1つの実施形態では、システム200はクライアント202を含む。クライアント202は、CSBプラットフォーム204から遠隔であり、ネットワーク216を介してCSBプラットフォーム204に接続されている。クライアント202は、ネットワーク216を介して、CSBプラットフォーム204に情報を送信し、一般にCSBプラットフォーム204とインタラクトするように構成されてよい。クライアント202は、CSBプラットフォーム204との通信がネットワーク216を介して可能であるように、ウェブブラウザ、モバイルアプリケーション、ソケットもしくはトンネル、または他のネットワーク接続ソフトウェアを含み得る。
【0048】
クライアント202は、1つまたは複数のコンピュータ、スマートフォン、タブレット、ウェアラブル技術、コンピューティングデバイス、または、メインフレームコンピュータ、ワークステーション、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、携帯電話、MP3プレーヤもしくはパーソナルデジタルアシスタント等の当技術分野で周知のタイプのシステムを含むことは理解されよう。クライアント202は、例えば、1つまたは複数のマイクロプロセッサ、メモリシステム、入力/出力デバイス、デバイスコントローラ等、当業者が思いつくようなソフトウェア、ハードウェア、及びコンポーネントを含む。クライアント202はまた、例えば音声またはオーディオコントロール、ポインティングデバイス(マウス等)、キーボード、タッチスクリーン、マイク、音声認識、及び/または、当該技術分野で既知の他のデータ入力手段等、データ入力のためにクライアント202のユーザが操作可能な1つまたは複数のデータ入力手段(
図1には示さず)を含む。クライアント202はまた、液晶ダイオードディスプレイ、発光ダイオードディスプレイ等、その上にユーザに知覚可能な方法で情報を表示し得る様々なタイプの既知のディスプレイを含み得る表示手段(
図1には図示せず)も含む。本開示に従ってクライアント202に割り当てられた機能を動作可能に実行するために、当業者が思いつくようなソフトウェア、ハードウェア及びコンポーネントをクライアント202がさらに含み得ることは理解されよう。システム200は、1つのクライアントのみを指すが、複数のクライアントも含んでよいことはさらに理解されよう。
【0049】
本開示の少なくとも1つの実施形態では、クライアント202は、当業者に周知のように、GUIフレームワークとアプリケーション固有のモジュールの組み合わせを含む。GUIフレームワークは、GUIビジネスロジックを処理し、CSBコントローラ210への要求を行い、CSBコントローラ210は、リソースの作成、読み取り/取得、削除、または、修正等のアクションを行うように構成されている。クライアント202のGUIは、現在のGUIビューを変更するためのナビゲーション要求を行うように動作可能に構成されていることはさらに理解されよう。
【0050】
図3を参照すると、本開示の少なくとも1つの実施形態における、予測器206の代替図が示されている。予測器206は、挙動モデルビルダ302、キャッシュフィラ304、キャッシュクリーナ306、データベース308及びRESTエンドポイント310を含む。本開示の少なくとも1つの実施形態では、挙動モデルビルダ302は、本明細書でさらに開示されるように、履歴からの新しいデータで予測モデルを再構築するように構成される。挙動モデルビルダ302は、遷移確率を用いて予測モデルを構築し、そのような予測モデルをデータベース308に記憶するように構成される。
【0051】
本開示の少なくとも1つの実施形態では、キャッシュフィラ304は、本明細書でさらに開示するように、GUIを操作するユーザがアクセスする可能性が最も高いビューのナビゲーション応答を読み出すように構成される。ナビゲーション応答には、ターゲットビューのサブグラフ情報、可用性リソースコンテキスト、バックワードパス、及び、適用可能な親要素を含む、JSON(JavaScript Object Notation)応答が含まれてよい。キャッシュフィラ304は、予測器206のキャッシュをオーバーフローさせないように、可能性の高いビューのナビゲーション応答を毎回、所定量を超えて読み出さないことは理解されよう。キャッシュフィラ304は、ナビゲーションモジュール208から受信したナビゲーション応答(例えば、ナビゲーションツリー)を(データベース308内に記憶されている)要求-応答キャッシュに保存するようにさらに構成される。本開示の少なくとも1つの実施形態では、データベース308は、本明細書でさらに開示するように、アクセスされたGUIビュー、予測モデル、可能性の高いビューの識別子、GUI画面ナビゲーション応答などの履歴を記憶する。
【0052】
例として、以下は可能なナビゲーショントランザクションの例示的なリストである。
【表1】
【0053】
本開示の少なくとも1つの実施形態では、キャッシュクリーナ306は、本明細書でさらに開示するように、CSBコントローラ210に最後のセキュリティ範囲変更のタイムスタンプを要求するように構成される。例えば、ユーザのGUI遷移に適用可能なセキュリティ条件が多数あってよい。これらの条件は、そのようなユーザが利用できるリソース(及びその結果、メタデータが参照されるコネクタアプリケーションによって操作されるリソースを設定するコネクタパッケージに関連する利用可能なビュー)、並びに、どの条件(またはリソース)が経時的に変化するかに影響を与え得る。この例を続けると、要求されたナビゲーション要素がセキュリティ条件を解決するために禁止されたリソースまたは存在しないリソースを必要とする場合、ナビゲーション要素はナビゲーション応答に含まれないため、ユーザはビューを使用できない。(すなわち、ユーザはそのようなリソースにアクセスできないので、全ての利用可能なリソースにアクセス可能でない場合がある)。別の例として、ユーザがDropbox(登録商標)及びOffice365(登録商標)へのサブスクリプションの販売のみを対象としているクラウドサービスブローカのサービスプランの加入者である場合、CSBプラットフォーム204に統合され、参照されるリソース(例えば、「VPSサーバ」)に関連付けられた他のアプリケーションに関連するビューはユーザに対して表示されてはならない。別の例として、GUIの遷移を制限したり、あるビューを別のビューに置き換えたりすることは、変数のメカニズムを通じて示されたセキュリティ条件である。ナビゲーションメタデータには、ユーザのセキュリティ範囲で利用可能なリソースに基づいてセキュリティ条件を記述するためのドメイン固有の言語が含まれている。非限定的な条件の例には、両方のリソースが入手可能である、入手可能なリソースがない、リソースが入手可能であり、特定の値を持つ属性を含む、などが含まれる。本開示の一実施形態では、このドメイン固有言語は、リソースクエリ言語(RQL)に基づく。
【0054】
最終変更タイムスタンプは、現在の予測モデルの範囲内での任意のリソースの修正/プロビジョニング、または、削除の最終日を決定することは理解されよう。キャッシュが作成された後に範囲が変更された場合、キャッシュクリーナ306は、要求-応答キャッシュをクリーニングする(キャッシュはデータベース308に記憶されてよい)。本開示の少なくとも1つの実施形態では、各ユーザは、システム内の全てのトランザクションを実行するために使用されるトークンに関連付けられる。例えば、トークンは、ユーザのセキュリティ範囲に関連付けられており、セキュリティ範囲は、トークンに基づいて(例えば、データベース308から)読み出し可能である。データベース308は、各ユーザトークンに対して関連付けられたビュー応答を記憶するように構成され、それにより、ユーザのセキュリティ範囲に少なくとも部分的に基づいて、各ユーザに適用可能なカスタマイズされたビュー応答を提示する。
【0055】
本開示の少なくとも1つの実施形態では、キャッシュクリーナ306は、各ユーザトークンにアクセスするように構成され、トークンに関連付けられたセキュリティ範囲の変更をCSBコントローラ210に定期的に要求する。トークンに関連付けられたセキュリティ範囲が変更された場合、キャッシュクリーナ306は、そのようなトークンに関連付けられたデータベース308に準備されたビュー応答を「クリーニング」(すなわち、変更または削除)することは理解されよう。
【0056】
本開示の少なくとも1つの実施形態では、ナビゲーションモジュール208は、本明細書でさらに開示するように、GUI画面の構築に使用されるナビゲーショングラフ及び応答を構築するように構成される。本開示の少なくとも1つの実施形態では、ナビゲーションモジュール208は、CSBコントローラ210を介して複数のコネクタアプリケーション212のそれぞれと統合するように構成される(これらのコネクタアプリケーション212は、ISVまたはサードパーティのコネクタ開発者によって提供されてよい)。ナビゲーションモジュール208は、本明細書でさらに開示するように、(例えば、
図1Cに示すような)ナビゲーションツリーを生成するように構成される。
【0057】
本開示の少なくとも1つの実施形態では、RESTエンドポイント310は、ナビゲーションエンドポイントをシミュレーションし、本明細書でさらに開示するように、要求を受信し、有効なナビゲーション応答を提供するように構成される。例えば、追加要求であるGUI操作中に、操作履歴がナビゲーション履歴リストに追加される。RESTエンドポイント310は、新しいアイテムカウントを計算し、定期的に(例えば、100要求ごとに)挙動モデルビルダ302を呼び出して、ナビゲーション履歴リストに基づいて新しいデータでモデルを再構築するようにさらに構成される。各要求において、RESTエンドポイント310は、データベース308に記憶されたキャッシュと通信して、もしあれば事前計算された応答を要求するように構成されることが理解されよう。応答がない場合、RESTエンドポイント310は、ナビゲーションサービスに直接クエリして応答を返すように構成される。RESTエンドポイント310による各要求呼び出しにおいて、ディスク領域及びメモリの過剰消費を防止するためにキャッシュ履歴がローテーションされることがさらに理解されよう。キャッシュクリーナ306は、必要に応じてキャッシュを無効にするように動作することも理解されよう。
【0058】
本開示の少なくとも1つの実施形態では、RESTエンドポイント310は、本明細書でさらに開示するように、アクセスされたビューの履歴をデータベース308に記憶するように構成される。例えば、ユーザがGUI画面を操作すると、GUI画面のアクセスされたビューの履歴がデータベース308に記憶される。本開示の少なくとも1つの実施形態では、RESTエンドポイント310は、データベース308からGUI画面の特定のビュー応答(特定のビューのナビゲーション応答)を読み出すように構成される。応答が受信されない場合(すなわち、特定のビュー応答が使用できない場合)、RESTエンドポイント310は、ナビゲーション208にビュー応答を要求するように構成される。予測器206がユーザアクティビティに関する情報を収集すると、そのようなアクティビティ情報はデータベース308に記憶されることは理解されよう。本明細書でさらに開示するように、挙動モデルビルダ302は、データベース308内のこの情報を使用して、GUI画面遷移予測モデルを開発してよいことがさらに理解されよう。
【0059】
本開示の少なくとも1つの実施形態では、GUI遷移ビュー、GUIステップ、ユーザ体験は、ビジネスインテリジェンスシステム、顧客関係管理システム等、サードパーティデータベース(図示せず)から読み出されてよい。そのような情報は、データベース308内に記憶されてよい。
【0060】
図4を参照すると、全体として400で示される、GUI応答時間を改善するために予測ベースのGUIを生成する方法が示されている。本開示の少なくとも1つの実施形態では、方法400は、ステップ402でのタイマの開始、ステップ404でのビューシーケンスのロード、ステップ406でのデータのチェック、ステップ408での確率の再計算、ステップ410でのモデル作成日の設定、及び、ステップ412でキャッシュフィラの要求を含む。
【0061】
本開示の少なくとも1つの実施形態では、方法400は、GUI画面及び遷移を管理するシーケンスを記述する。任意のGUI画面において、現在の状態から将来の状態(新しいGUI画面)への遷移は、そのようなアクティビティの発生の一定の確率を含むことは理解されよう。例えば、GUI画面がアプリケーション(例えば、アプリケーション182)へのログイン画面である場合、そのようなGUI画面の現在の状態は、ログイン認証情報を入力し、そのような認証情報を提出する領域を含み得る。そのような例示的な実施形態では、将来の状態(すなわち、次のGUI画面)は、おそらく、(1)ログイン成功、または(2)ログイン失敗となり得る。この例を続けると、(セキュリティ制限に依存する)ログイン成功またはログイン失敗の起こり得る確率は、GUI遷移の例示的な確率計算である。すなわち、ログインGUI画面からの遷移は、成功したログインGUI画面、または失敗したログインGUI画面の2つのオプションに基本的に制限されてよい。
【0062】
GUIステップを行うユーザは、基本的に一連のGUI画面(またはビュー)に順次アクセスしていることは理解されよう。本開示の少なくとも1つの実施形態では、GUI画面は、アプリケーション(例えば、アプリケーション182)の一部として設定され得る予め定められたビューのセットである。ユーザがアプリケーション(例えば、アプリケーション182)を使用する場合、可能なGUI画面が制限されることは理解されよう。例えば、
図1を参照すると、GUI状態102(ホーム)からGUI状態110(新規ユーザ)に移動可能であるが、このシナリオは、論理的にフローせず、このような機能支援を必要とするビジネスケースがない場合は実施される可能性は低い。ただし、他のGUI遷移と画面接続は、ほぼ予め定められた順序でほぼ例外なく使用される。例えば、
図1Bを参照すると、新規ユーザを追加することは、GUI状態106(ユーザビュー)画面を通ることを意味する。なぜなら、ビュー間のこの接続は静的であり、メインロジックパスとして開発されるからである。状態
図150に基づいて作成されたナビゲーションモデルは、特定のシリアルシーケンスでアクセスまたは表示される最も可能性の高い次または前のGUI状態(またはGUI画面)が存在する(すなわち、ユーザのGUI活動は線形である)ことが多いと想定されていることは理解されよう。本開示の少なくとも1つの実施形態では、機械学習アルゴリズムを使用して、パターンを見つけ、ユーザ活動の連鎖において次に最も可能性の高いGUI画面(またはGUI状態)を予測することが可能である。
【0063】
本開示の少なくとも1つの実施形態では、ナビゲーションツリーは、大きな静的モデルを使用して構築することができ、それにより、最も使用に適したGUI画面またはアプリケーションの主な使用シナリオが管理される。例として、ユーザプロファイル更新時にほぼ全てのユーザが連絡先データを入力し、全ての管理者は管理するユーザのリストを開き、新規ユーザを作成すると、全ての管理者がユーザのリストにリダイレクトされる。これらの所定の挙動は、GUI画面の現在の状態に基づいて予測できることは理解されよう。ユーザのナビゲーションツリーは、以前のユーザの挙動に基づいて開発できることはさらに理解されよう。例として状態
図150を参照すると、ユーザ管理者は、GUI状態120(ホーム)にアクセスし、次に最初に通知をチェックしてよい。管理者は、アクセスのプロビジョニング、ユーザのロック/アンロックなどの他のアクションも行ってよい。この例を続けると、最も可能性の高いナビゲーションシーケンスに基づいて予測モデルを構築できる。
【0064】
いくつかの非限定的な例を挙げると、Nグラムモデル、隠れマルコフモデル、最大エントロピーマルコフモデル(エントロピーベース分類と隠れマルコフモデルの組み合わせ)、SVM(サポートベクタマシン)、決定木分類器、ランダムフォレスト分類器、K最近傍法を含むが、これらに限定されない隠れ分類器、及び、シーケンス予測を実行できる任意のニューラルネットワーク等、いくつかのシーケンス予測メカニズムが使用されてよいことは理解されよう。
【0065】
方法400を再び参照すると、プロセスは、ステップ402でタイマによって開始する。本開示の少なくとも1つの実施形態では、タイマは、GUI遷移確率及び挙動モデルの計算をスケジュールするために使用される。予測器206は、保存されたビューのシーケンスに基づいて遷移確率を計算するのに十分なデータが(すなわち、データベース308のキャッシュに)あるか否かを検証する。データが不十分な場合、方法400はステップ402に戻るが、それ以外の場合はステップ408に進む。
【0066】
ステップ408で、遷移確率が計算され、遷移確率モデルが作成され、モデル作成日がステップ410で設定される。例えば、分類器の入力は特徴のセットであり、出力は特徴のセットが与えられた場合に特定の結果(すなわち、GUIイベント)が発生する確率の配列である。例えば、挙動モデルビルダ302は、最も可能性の高いGUI遷移の確率を計算する。計算された確率は、現在のGUIビューから将来のGUIビューへのユーザ遷移の可能性を示すことが理解されよう。一例として、GUI画面は、ユーザ管理(例えば、ユーザの役割の作成/更新)のコントロールを表示してよい。システム管理者ユーザがユーザ管理GUI画面を操作して「新規ユーザ」を作成することは、最初にメインユーザ管理画面から開始する。次の画面(すなわち、次のステップ)は、例えば、ユーザのフルネーム、連絡先情報など、新規ユーザに関する人口統計情報を入力するフォーム画面である可能性が高い。この例を続けると、現在、新規ユーザ作成画面にいるシステム管理者ユーザに最も可能性の高い将来のビューは、フォーム画面となるであろう。システム管理者ユーザがフォーム画面にアクセスせずに前の画面に戻る可能性は低い。
【0067】
本開示の少なくとも1つの実施形態では、次に、キャッシュフィラ304が呼び出されて、遷移確率モデルをキャッシュ及びデータベース308に保存する。
【0068】
図5を参照すると、全体として500で示される、GUI応答時間を改善するために予測ベースのGUIを生成する方法が示されている。本開示の少なくとも1つの実施形態では、方法500は、ステップ502で動作モデルビルダ302から要求が受信されたか否かをチェックし、ステップ504で動作モデル予測に基づいて要求された閾値確率より高いビューID取得し、ステップ506でナビゲーション208を要求し、ステップ508で受信したビュー応答(すなわち、ナビゲーション応答)を記憶することによって要求処理を管理する。
【0069】
本開示の少なくとも1つの実施形態では、GUI画面(またはビュー)に対する受信された各要求は、要求シーケンスとしてデータベース308に保存される。
【0070】
本開示の少なくとも1つの実施形態では、ステップ504で、閾値より高い確率を有するGUIビューIDが読み出される。例として、閾値は様々であってよく、使用される確率モデルのタイプに依存し得る。すなわち、隠れマルコフモデル(HMM)は、ランダムフォレスト分類器と比較して異なる閾値を有する。本開示の少なくとも1つの実施形態では、そのような確率の計算に使用されるデータは、以前のユーザ遷移について蓄積された(及びデータベース308に記憶された)データである。データはGUI遷移チェーンを含み得ることが理解されよう。上記の例を続けると、ランダムフォレスト分類(RFC)モデリングでは、RFCモデルはデータに適合し、確率の配列を出力する。確率分布、同時に作業しているユーザの数、メモリ制限があるため、キャッシュ内の最大データ、キャッシュサイズの制限など、全ての要件を満たす最適な閾値を定義できる。遷移の全ての確率が計算されてもよいが、最も可能性の高い遷移確率が、このようなモデルを記憶する限られたメモリ/キャッシュストレージの効率的な使用を確実にするために計算されることが理解されよう。
【0071】
本開示は、クライアントに関するデータを収集するための統合予測サービスを提供し、統合予測サービスは、GUIビュー及びナビゲーションを最適化するためにさらに使用できるテスト目的またはユーザ挙動分析に有用であり得ることがさらに理解されよう。
【0072】
モデルが、閾値より高い遷移確率を持つGUIビューの次のIDを含む場合、それらのGUIビューのナビゲーション応答は、ステップ506で可能な応答として準備される。応答はデータベース308に記憶される。
【0073】
図6を参照すると、全体として600で示される、GUI応答時間を改善するために予測ベースのGUIを生成する方法が示されている。方法600は、ステップ602でGUIビュー要求が受信されたかどうかをチェックすることと、ステップ604で最後のセキュリティ範囲変更日を取得することと、ステップ606で遷移確率モデルがセキュリティ範囲変更日より新しいか否かをチェックすることと、そうであれば、ステップ608に進み、そうでなければステップ612に進むこととを含む。
【0074】
本開示の少なくとも1つの実施形態では、方法600は、ステップ608で要求されたGUIビューに対する準備されたナビゲーション応答がモデルに含まれるか否かをチェックすることと、ステップ610でデータベース308からGUIビュー応答(ナビゲーション応答)を取得することとをさらに含む。本開示の少なくとも1つの実施形態では、方法600は、ステップ614でナビゲーションを要求することと、ステップ616でGUIビュー応答をデータベース308に記憶することと、ステップ618で応答を返すこととをさらに含む。
【0075】
本発明を図面及び前述の説明で詳細に図示し説明したが、これは例示であり、制限的な特性はなく、特定の実施形態のみを図示し説明したこと、及び本発明の趣旨に含まれる全ての変更及び修正は保護が望まれることが理解される。