(57)【要約】グラフィカルユーザインタフェース（ＧＵＩ）（またはユーザナビゲーションインタフェース）は、当業者に周知のコンピュータシステム及びアプリケーションの一般的な特徴である。クラウドサービスブローカ（ＣＳＢ）環境では、独立したソフトウェアベンダ（ＩＳＶ）がＣＳＢを介してクラウドアプリケーション（クラウドサービス）を配信し、標準化された表現状態転送（ＲＥＳＴｆｕｌ）アプリケーションプログラムインタフェース（ＡＰＩ）を介して様々なクラウドアプリケーションが連携できるため、ＧＵＩレンダリングはより複雑になる。統合されている複数のアプリケーションがある場合、ＧＵＩは、特定のアプリケーションのそれぞれに合わせて特別に調整された多数のインタフェースを含み得る。ただし、画面の全ての組み合わせを準備するには、広範な開発が必要であり、統合されるアプリケーションの数が増えると、開発も増加する。本開示は、より速いＧＵＩ応答時間を可能にするために、共有コネクタパッケージ及び予測挙動ＧＵＩモデル構築に基づいた、予測に基づくユーザナビゲーションインタフェースの動的作成のためのシステム及び方法に関する。【選択図】図３
2021515949.tif 000002
【特許請求の範囲】
【請求項１】
グラフィカルユーザインタフェース（ＧＵＩ）画面の応答時間を改善するために予測ベースのＧＵＩ画面を生成する方法であって、
ＧＵＩ画面のビュー要求をエンドポイントで受信するステップであって、前記ＧＵＩ画面は複数のコネクタパッケージから構築された統合ユーザインタフェースを含む、前記ビュー要求を受信するステップと、
ＧＵＩ遷移モデルの有効性を予測器で検証するステップであって、前記ＧＵＩ遷移モデルは前記複数のコネクタパッケージのそれぞれに対応する、前記有効性を検証するステップと、
新しいＧＵＩ遷移モデルを挙動モデルビルダで構築するステップであって、前記新しいＧＵＩ遷移モデルは、前記ＧＵＩ画面からの可能な各遷移について複数の遷移確率を含み、前記複数の遷移確率は、前記複数のコネクタパッケージのそれぞれが利用可能なリソース属性に少なくとも部分的に依存する、前記新しいＧＵＩ遷移モデルを構築するステップと、
前記複数の遷移確率から可能性の高い遷移を前記挙動モデルビルダで選択するステップであって、前記可能性の高い遷移は、最も要求されやすい新しいＧＵＩ画面への遷移である、前記可能性の高い遷移を選択するステップと、
前記可能性の高い遷移に少なくとも部分的に基づいてナビゲーションツリーをナビゲーションモジュールで作成するステップと、
前記エンドポイントに応答を返すステップであって、前記応答は前記ナビゲーションツリーを含み、前記新しいＧＵＩ画面のナビゲーション応答をさらに含む、前記応答を返すステップと、
を含む、前記方法。
【請求項２】
前記複数の遷移モデルのそれぞれが、Ｎグラムモデル、隠れマルコフモデル及び最大エントロピーマルコフモデルからなる群から選択される、請求項１に記載の方法。
【請求項３】
前記複数の遷移モデルのそれぞれが、サポートベクタマシン（ＳＶＭ）、決定木、ランダムフォレスト及びＫ最近傍法からなる群から選択されたブーストされた分類器をさらに含む、請求項２に記載の方法。
【請求項４】
前記ＧＵＩ画面の前記要求は、クライアントから受信される、請求項１に記載の方法。
【請求項５】
前記ＧＵＩ遷移モデルは、セキュリティ範囲変更日を含む、請求項１に記載の方法。
【請求項６】
前記ＧＵＩ遷移モデルを検証することは、最後のセキュリティ範囲変更日をチェックすることを含む、請求項１に記載の方法。
【請求項７】
前記最後のセキュリティ範囲変更日は、前記ＧＵＩ遷移モデルが最後に変更された日付を含む、請求項６に記載の方法。
【請求項８】
前記応答をデータベースに記憶するステップをさらに含む、請求項１に記載の方法。
【請求項９】
前記新しいＧＵＩ遷移モデルを記憶するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
前記新しいＧＵＩ遷移モデルのモデル作成日を記憶することをさらに含む、請求項９に記載の方法。
【請求項１１】
グラフィカルユーザインタフェース（ＧＵＩ）画面の応答時間を改善するために予測ベースのＧＵＩ画面を生成する方法であって、
前記ＧＵＩ画面から可能な各遷移について複数の遷移確率を再計算するのに十分なデータがあるか否かを予測器でチェックするステップと、
前記予測器で、前記ＧＵＩ画面からの可能な各遷移について前記複数の遷移確率を再計算し、前記データに少なくとも部分的に基づいて、新しいＧＵＩ遷移モデルを作成するステップと、
新しいＧＵＩ遷移モデルの作成日を前記予測器で設定するステップと、
キャッシュフィラを動作させるステップであって、前記キャッシュフィラはキャッシュ内の元のＧＵＩ遷移モデルを前記新しいＧＵＩ遷移モデルで置き換えるように構成される、前記キャッシュフィラを動作させるステップと、
を含む、前記方法。
【請求項１２】
前記データは、ＧＵＩ画面遷移を含む、請求項１１に記載の方法。
【請求項１３】
前記データは、ブースティング分類器を含む、請求項１１に記載の方法。
【請求項１４】
前記複数の遷移確率を再計算することは、前記ブースタ分類器に少なくとも部分的に基づいて、確率のアレイを計算するステップをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記新しいＧＵＩ遷移モデルをデータベースに記憶するステップをさらに含む、請求項１１に記載の方法。
【請求項１６】
グラフィカルユーザインタフェース（ＧＵＩ）画面の応答時間を改善するために予測ベースのＧＵＩ画面を生成する方法であって、
最初のＧＵＩ画面のナビゲーション要求をＲＥＳＴエンドポイントで受信するステップと、
セキュリティ範囲変更日を予測器でチェックするステップであって、前記セキュリティ範囲変更日は、前記最初のＧＵＩ画面のナビゲーション要求が要求されているユーザが利用できるリソースのセットを含む、前記セキュリティ範囲変更日をチェックするステップと、
ＧＵＩ遷移モデルを前記予測器で読み出すステップであって、前記ＧＵＩ遷移モデルは、前記最初のＧＵＩ画面から遷移するための新しいＧＵＩ画面を識別する、前記ＧＵＩ遷移モデルを読み出すステップと、
前記遷移確率モデルが前記セキュリティ範囲変更日よりも新しいか否かを前記予測器でチェックするステップと、
応答を前記予測器で読み出すステップであって、前記応答は、前記新しいＧＵＩ画面のソースコードへのリンクを有するナビゲーションツリーと、前記ＧＵＩ画面のソースコードを実行するために必要なユーザの現在のリソース状態とを含む、前記応答を読み出すステップと、
を含む、前記方法。
【請求項１７】
前記ナビゲーションツリーは、ＧＵＩ遷移を示すナビゲーショングラフである、請求項１６に記載の方法。
【請求項１８】
前記遷移確率モデルが前記セキュリティ範囲変更日よりも新しいか否かを前記予測器でチェックすることは、前記遷移確率モデルが古い場合、前記ＧＵＩ遷移モデルをクリーニングし、新しいＧＵＩ遷移モデルの作成を要求するステップをさらに含む、請求項１６に記載の方法。
【請求項１９】
前記応答を応答キャッシュに記憶するステップをさらに含む、請求項１６に記載の方法。
【請求項２０】
前記応答を前記ＲＥＳＴエンドポイントに戻すステップをさらに含む、請求項１６に記載の方法。
【請求項２１】
グラフィカルユーザインタフェース（ＧＵＩ）画面の応答時間を改善するために予測ベースのＧＵＩ画面を生成するシステムであって、
クラウドサービスブローカプラットフォームを含み、前記クラウドサービスブローカープラットフォームは、
予測器と、
データベースと、
ＧＵＩ遷移モデルを作成するように構成された挙動モデルビルダであって、前記ＧＵＩ遷移モデルは、最初のＧＵＩ画面から新しいＧＵＩ画面へのＧＵＩ遷移の可能性であり、前記新しいＧＵＩ画面は、複数のコネクタパッケージから構築される統合ユーザインタフェースを含む、前記挙動モデルビルダと、
前記ＧＵＩ遷移モデルに少なくとも部分的に基づいて、ユーザがアクセスする可能性の最も高いＧＵＩビューを読み出すように構成されたキャッシュフィラと、
前記新しいＧＵＩ画面を要求するユーザに適用可能なセキュリティ範囲の少なくとも１つのリソース状態に少なくとも部分的に基づいて、前記新しいＧＵＩ画面のナビゲーション応答を作成するように構成されたナビゲーションモジュールと、
セキュリティ範囲の変更が前記ＧＵＩ遷移モデルより新しいか否かに少なくとも部分的に基づいて、応答キャッシュをクリーニングするように構成されたキャッシュクリーナと、
ＧＵＩナビゲーションサービスエンドポイントをシミュレーションするように構成されたＲＥＳＴエンドポイントと、
を含む、前記システム。
【請求項２２】
前記クラウドサービスブローカプラットフォームに動作可能に接続されたクライアントであって、新しいＧＵＩ画面を要求し、前記新しいＧＵＩ画面のナビゲーション応答を受信するように構成された前記クライアントをさらに含む、請求項２１に記載のシステム。
【請求項２３】
前記クラウドサービスブローカプラットフォームは、クラウドサービスブローカコントローラをさらに含む、請求項２１に記載のシステム。
【請求項２４】
前記クラウドサービスブローカコントローラは、複数のコネクタアプリケーションを含み、
前記複数のコネクタアプリケーションのそれぞれは、前記クラウドサービスブローカプラットフォームを介した統合のために各アプリケーションに対して構成される、請求項２３に記載のシステム。
【請求項２５】
前記複数のコネクタパッケージは、ナビゲーション要素を構築するためのユーザインタフェースモジュールを含む、請求項２１に記載のシステム。
【請求項２６】
前記複数のコネクタパッケージは、前記各ナビゲーション要素のそれぞれのセキュリティ範囲をさらに含む、請求項２５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
＜関連出願の相互参照＞
本特許出願は、２０１８年３月１３日出願の米国仮特許出願第１５／９２０，３１９号の開示の優先権を主張し、その開示は、参照により本明細書に組み込まれる。
【０００２】
本開示は、ナビゲーションインタフェース応答時間を改善するために、予測に基づいてユーザナビゲーションインタフェースを動的に作成するためのシステム及び方法に関する。
【背景技術】
【０００３】
ユーザナビゲーションインタフェースとも呼ばれるグラフィカルユーザインタフェース（ＧＵＩ）は、当業者に周知のコンピュータシステム及びアプリケーションの一般的な特徴である。従来のＧＵＩは、データと情報を取得したり、アクションを行ったりするためにバックエンドと通信するフロントエンドナビゲーションインタフェースをユーザに提供するように働く。そのような従来の実施形態では、ＧＵＩは、クリック可能なボタン、リンク、スライダなどのナビゲーションアイテムまたは制御アイテムを含む特定のコンテキストを提供すると考えられてよい。このようなナビゲーションアイテムまたは制御アイテムの目的は、ユーザがＧＵＩを操作して所望のアクションを実行できるようにすることである。ナビゲーションアイテムまたは制御アイテムを使用してＧＵＩを操作すると、ＧＵＩは、ＧＵＩがバックエンドと通信することを要求する応答アクションを生成する。例えば、ユーザがＧＵＩを介して情報を読み出したい場合、ＧＵＩに「オープン」制御アイテムなどの制御アイテムを含めてよく、このアイテムは、操作されると、応答アクションを開始し、応答アクションは、ＧＵＩに、動作可能に接続されたバックエンドからデータを読み出し、そのデータをＧＵＩ経由でユーザに表示することを要求する。このような従来の実施形態では、応答アクションはユーザが実行した特定の操作に依存する（すなわち、ユーザが「オープン」制御アイテムを操作しない場合、ＧＵＩは応答アクションとしてバックエンドからのデータの読み出しを必要としない場合がある）。
【０００４】
バックエンドからデータを読み出すことに加えて、ＧＵＩコンテキストの変更も必要な場合がある。例えば、ＧＵＩ内の制御アイテムの変更が必要な場合があり、これにより、以前に表示されたＧＵＩ制御アイテムは関連が無くなる。上記の例を続けると、ユーザが「オープン」制御アイテムを操作し、ＧＵＩがバックエンドからデータを読み出し、データを表示すると、情報が読み出されたため、「オープン」制御アイテムは関連が無くなる場合がある。そのような例では、「オープン」制御アイテムは、ユーザがＧＵＩ内の操作を閉じるか、または終了することを可能にする「クローズ」制御アイテムで置き換えられてよい。
【０００５】
そのような従来の実施形態では、ＧＵＩの将来の状態（すなわち、新しい制御アイテムへの変更）は、ＧＵＩの現在の状態におけるユーザのアクションに依存する。すなわち、現在の状態でＧＵＩでアクションが実行されると、ＧＵＩは、新しい／将来の状態に遷移し、その状態は、バックエンドと通信してアクションを実行し、それに従ってユーザに応答を提示することを含み得る。そのような実施形態では、バックエンドからの応答は、遅延されるか、そうでなければレイテンシを含む場合があり、それにより、現在の状態から新しい／将来の状態へのＧＵＩの遷移も遅れる場合がある。このような場合、ＧＵＩがバックエンドからの応答を待つ間、ユーザは待機しなければならないため、ユーザ体験は理想的ではない。過度の待ち時間またはレイテンシは、特にバックエンドの操作負荷が高い状況では一般的である（すなわち、ＧＵＩがバックエンドから応答を受信しておらず待機しているため、ＧＵＩがユーザアクションに応答するのに時間がかかる）。追加の待ち時間は、ユーザが自身の操作またはトランザクションの実行が遅れるため、必然的にユーザ体験の低下につながる。
【０００６】
さらに、セキュリティ上の考慮事項により、ＧＵＩ遷移の管理に追加のオーバーヘッドが追加される。例えば、ＧＵＩを操作しようとするユーザはまた、ユーザの許可の範囲内で操作することができる（すなわち、ユーザは、ユーザが許可されていないアクションを実行できない）。したがって、セキュリティ制御を考慮に入れると、追加の処理時間が加算され、レイテンシがさらに長くなる。
【０００７】
クラウドサービスブローカ（ＣＳＢ）環境では、ＧＵＩレンダリングがより複雑になる場合がある。ＣＳＢの操作は、米国特許出願第１５／１４２，２５６号「ＭＥＴＨＯＤ  ＡＮＤ  ＳＴＡＮＤＡＲＤ  ＦＯＲ  ＩＮＴＥＧＲＡＴＩＮＧ  ＡＰＰＬＩＣＡＴＩＯＮＳ  ＩＮＴＯ  Ａ  ＣＬＯＵＤ」で開示され、この出願は参照によりその全体が組み込まれる。アプリケーションパッケージングスタンダード（ＡＰＳ）は、独立系ソフトウェアベンダ（ＩＳＶ）がＣＳＢを介してクラウドアプリケーション（クラウドサービス）を配信し、標準化された表現状態転送（ＲＥＳＴｆｕｌ）アプリケーションプログラムインタフェース（ＡＰＩ）を介して様々なクラウドアプリケーションが連携できるようにするための方法である。これは、ＩＳＶがアプリケーションごとに（ＡＰＳに従って作成された）コネクタパッケージを作成することにより、アプリケーションをＡＰＳ対応のＣＳＢと統合するのに役立つ。
【０００８】
いくつかの従来の実施形態では、コネクタパッケージは、メタデータ、制御メソッド記述、及びコンテンツファイルを含んでよく、これらは、アプリケーションリソース、サービス、ユーザインタフェースコンポーネント、及び、リソース管理に必要な制御メソッドのロジック（すなわち、各アプリケーションに適用可能な、作成可能なリソースのスキーマ）を宣言及び定義するために使用できる。コネクタパッケージは、例えば、画面レイアウト、ナビゲーションコントロール、フォームなど、アプリケーションＧＵＩに関する情報をさらに含む。コネクタパッケージは、ＩＳＶのアプリケーションリソースと「コネクタフロントエンド」（ＣＳＢの顧客がＣＳＢインタフェースにアクセスするときに見るウェブインタフェース）の定義に使用される宣言ファイルをさらに含んでよい。このようなＣＳＢ環境では、ウィジェット、予め定められたページ構造、ナビゲーションメソッド、及び、画面挿入メカニズムを含み得る特定のフレームワークを使用して、コネクタパッケージ開発者がウェブインタフェースを開発する。例えば、典型的なコネクタフロントエンドは、事前定義ビューに挿入された画面、ウィジェットをレンダリングするためのカスタムロジック、及び、カスタムナビゲーション構造で構成される。ウィジェットは、対応するクラウドアプリケーションの顧客にとって価値があるとコネクタ開発者が考える情報、例えば、使用状況レポート、サブスクリプション及びサービス情報、指示等を表示してよい。
【０００９】
この統合により、共通のスタイルとコントロールの集まりを備えた単一のウェブパネル（すなわち、統合されたＧＵＩ）を介して統合されたクラウドアプリケーションを管理できる。例えば、Ｄｒｏｐｂｏｘ（登録商標）はＩＳＶから入手できるアプリケーションの１つであってよい。ユーザがＤｒｏｐｂｏｘ（登録商標）にアクセスすると、Ｄｒｏｐｂｏｘ（登録商標）のコネクタアプリケーションは適切な画面／ＧＵＩインタフェースを提示することによってユーザアクティブティを促進する（すなわち、Ｄｒｏｐｂｏｘ（登録商標）コネクタアプリケーションがユーザのＧＵＩアクティビティを管理する）。この例を続けると、統合された複数のアプリケーションがある場合、ＧＵＩには、特定のアプリケーションのそれぞれに合わせて特別に調整された多数のインタフェースが含まれてよい。このような例では、多数のアプリケーション間の統合が（ユーザから見て）シームレスに生じるように、可能な全ての画面を決定する必要がある。ただし、画面の全ての組み合わせを準備するには、広範な開発が必要であり、統合されるアプリケーションの数が増えると、開発も増加する。さらに、ＣＳＢ環境では膨大な数の可能なＧＵＩ画面の組み合わせからレンダリングする適切なＧＵＩ画面を計算する必要があるため、リアルタイムで（すなわち、ユーザがアプリケーションを使用しているときに）ＧＵＩ画面をフェッチすると、速度が低下する。
【００１０】
したがって、ＧＵＩ応答時間を改善するために予測ベースのＧＵＩを生成するシステム及び方法が必要である。
【発明の概要】
【００１１】
本開示は、ナビゲーションインタフェース応答時間を改善するために、予測に基づいてユーザナビゲーションインタフェースを動的に作成するシステム及び方法に関する。少なくとも１つの実施形態では、グラフィカルユーザインタフェース（ＧＵＩ）画面の応答時間を改善するために予測ベースのＧＵＩ画面を生成する方法が提供される。この方法は、ＧＵＩ画面のビュー要求をエンドポイントで受信することであって、ＧＵＩ画面は複数のコネクタパッケージから構築された統合ユーザインタフェースを含む、ビュー要求を受信することと、ＧＵＩ遷移モデルの有効性を予測器で検証することであって、ＧＵＩ遷移モデルは複数のコネクタパッケージのそれぞれに対応する、有効性を検証することと、新しいＧＵＩ遷移モデルを挙動モデルビルダで構築することであって、新しいＧＵＩ遷移モデルはＧＵＩ画面からの可能な各遷移について複数の遷移確率を含み、複数の遷移確率は複数のコネクタパッケージのそれぞれが使用可能なリソース属性に少なくとも部分的に依存する、新しいＧＵＩ遷移モデルを構築することと、複数の遷移確率から可能性の高い遷移を挙動モデルビルダで選択することであって、可能性の高い遷移は要求される可能性が最も高い新しいＧＵＩ画面への遷移である、可能性の高い遷移を選択することと、可能性の高い遷移に少なくとも部分的に基づいてナビゲーションツリーをナビゲーションモジュールで作成することと、エンドポイントに応答を返信することであって、応答はナビゲーションツリーを含み、新しいＧＵＩ画面のナビゲーション応答をさらに含む、応答を返信することとを含む。
【００１２】
本開示の少なくとも１つの実施形態では、方法は、Ｎグラムモデル、隠れマルコフモデル及び最大エントロピーマルコフモデルからなる群から選択された遷移モデルを含む。
【００１３】
本開示の少なくとも１つの実施形態では、方法は、遷移モデルがサポートベクタマシン（ＳＶＭ）、決定木、ランダムフォレスト及びＫ最近傍法からなる群から選択されたブーストされた分類器をさらに含むことを、含む。
【００１４】
本開示の少なくとも１つの実施形態では、方法は、クライアントから受信されるＧＵＩ画面の要求と、セキュリティ範囲変更日を含むＧＵＩ遷移モデルとを含む。
【００１５】
本開示の少なくとも１つの実施形態では、方法は、ＧＵＩ遷移モデルを検証することが最後のセキュリティ範囲変更日と、いつＧＵＩ遷移モデルが最後に変更したかをチェックすることとを含むこと、を含む。
【００１６】
本開示の少なくとも１つの実施形態では、方法は、ＧＵＩ画面から可能な各遷移について複数の遷移確率を再計算するのに十分なデータがあるか否かを予測器でチェックすることと、ＧＵＩ画面からの可能な各遷移の複数の遷移確率を予測器で再計算することと、データに少なくとも部分的に基づいて新しいＧＵＩ遷移モデルを作成することと、新しいＧＵＩ遷移モデル作成日を予測器で設定することと、キャッシュフィラを動作させることであって、キャッシュフィラは、キャッシュ内の元のＧＵＩ遷移モデルを新しいＧＵＩ遷移モデルで置き換えるように構成される、キャッシュフィラを動作させることとを含む。
【００１７】
本開示の少なくとも１つの実施形態では、データは、ＧＵＩ画面遷移及びブースティング分類器を含む。遷移確率は、ブースタ分類器に少なくとも部分的に基づいて、確率の配列を計算することをさらに含む。
【００１８】
本開示の少なくとも１つの実施形態では、方法は、最初のＧＵＩ画面のナビゲーション要求をＲＥＳＴエンドポイントで受信することと、セキュリティ範囲変更日を予測器でチェックすることであって、セキュリティ範囲変更日は、最初のＧＵＩ画面のナビゲーション要求を要求しているユーザが使用可能なリソースのセットを含む、セキュリティ範囲変更日をチェックすることと、ＧＵＩ遷移モデルを予測器で読み出すことであって、ＧＵＩ遷移モデルは、最初のＧＵＩ画面から遷移するための新しいＧＵＩ画面を識別する、ＧＵＩ遷移モデルを読み出すことと、遷移確率モデルがセキュリティ範囲変更日よりも新しいか否かを予測器でチェックすることと、応答を予測器で読み出すことであって、応答は、新しいＧＵＩ画面のソースコードへのリンクを有するナビゲーションツリーと、ＧＵＩ画面ソースコードの実行に必要なユーザの現在のリソース状態とを含む、応答を読み出すことと、を含む。
【００１９】
本開示の少なくとも１つの実施形態では、ナビゲーションツリーは、ＧＵＩ遷移を示すナビゲーショングラフである。本開示の少なくとも１つの実施形態では、方法は、予測器をチェックすることが、遷移確率モデルが古い場合、ＧＵＩ遷移モデルをクリーニングし、新しいＧＵＩ遷移モデルの作成を要求するステップを含むこと、を含む。
【００２０】
本開示の少なくとも１つの実施形態では、システムは、クラウドサービスブローカプラットフォームを含み、クラウドサービスブローカプラットフォームは、予測器、データベース、ＧＵＩ遷移モデルを作成するように構成された挙動モデルビルダ、ＧＵＩ遷移モデルに少なくとも部分的に基づいてユーザがアクセスする可能性が最も高いＧＵＩビューを読み出すように構成されたキャッシュフィラ、ナビゲーション応答を作成するように構成されたナビゲーションモジュール、応答キャッシュをクリーニングするように構成されたキャッシュクリーナ、及び、ＧＵＩナビゲーションサービスエンドポイントをシミュレーションするように構成されたＲＥＳＴエンドポイントを含む。
【００２１】
本開示の少なくとも１つの実施形態では、システムは、クラウドサービスブローカプラットフォームに動作可能に接続されたクライアントを含み、新しいＧＵＩ画面を要求し、新しいＧＵＩ画面のナビゲーション応答を受信するように構成される。
【００２２】
本開示の少なくとも１つの実施形態では、クラウドサービスブローカコントローラは、複数のコネクタアプリケーションを含み、複数のコネクタアプリケーションのそれぞれは、クラウドサービスブローカプラットフォームを介した統合のために各アプリケーションに対して構成され、コネクタパッケージは、ナビゲーション要素を構築するためのユーザインタフェースモジュールと、ナビゲーション要素のそれぞれのセキュリティ範囲とを含む。
【００２３】
本開示の様々な例示の実施形態の以下の説明を添付図面と共に参照することによって、本明細書に含まれる実施形態及び他の特徴、利点及び開示内容、並びにそれらを達成する方法は明らかになり、本開示はよりよく理解されよう。
【図面の簡単な説明】
【００２４】
【図１Ａ】可能な全てのナビゲーション遷移を有するナビゲーション経路の例示的な状態図を示す。
【００２５】
【図１Ｂ】単純なナビゲーション経路の例示的な状態図を示す。
【００２６】
【図１Ｃ】プレースホルダを介して組み立てられた例示的なナビゲーションツリー（従来技術）を示す。
【００２７】
【図２】ＧＵＩ応答時間を改善するために予測ベースのＧＵＩを生成するシステムの概略図を示す。
【００２８】
【図３】ＧＵＩ応答時間を改善するために予測ベースのＧＵＩを生成するシステムの概略図を示す。
【００２９】
【図４】ＧＵＩ応答時間を改善するために予測ベースのＧＵＩを生成する方法の概略図を示す。
【００３０】
【図５】ＧＵＩ応答時間を改善するために予測ベースのＧＵＩを生成する方法の概略図を示す。
【００３１】
【図６】ＧＵＩ応答時間を改善するために予測ベースのＧＵＩを生成する方法の概略図を示す。
【発明を実施するための形態】
【００３２】
本開示の原理の理解を促進する目的で、図面に示す実施形態を参照し、その実施形態を説明するために特定の用語が使用される。それでもなお、本開示の範囲をそれによって限定する意図がないことは理解されよう。
【００３３】
この詳細な説明は、コンピュータまたはコンピュータネットワーク上で実行されるプログラム、データ構造または手順の観点から提示されている。システムが実装するソフトウェアプログラムは、インタープリタ型、コンパイラ型、または、その他のプログラミング言語等、任意のプログラム言語で記述されてよい。これらの言語には、Ｘｃｏｄｅ、ｉＯＳ、ｃｏｃｏａ、ｃｏｃｏａ  ｔｏｕｃｈ、ＭａｃＲｕｂｙ、ＰＨＰ、ＡＳＰ．ｎｅｔ、ＨＴＭＬ、ＨＴＭＬ５、Ｒｕｂｙ、Ｐｅｒｌ、Ｊａｖａ、Ｐｙｔｈｏｎ、Ｃ＋＋、Ｃ♯、ＪａｖａＳｃｒｉｐｔ、及び／または、Ｇｏプログラミング言語が含まれてよいが、これらに限らない。他の言語が代わりに、または前述のものと組み合わせて使用されてよいことと、例えば、Ｒｕｂｙ  ｏｎ  Ｒａｉｌｓ、Ｓｙｓｔｅｍ．ｊｓ、Ｚｅｎｄ、Ｓｙｍｆｏｎｙ、Ｒｅｖｅｌ、Ｄｊａｎｇｏ、Ｓｔｒｕｔｓ、Ｓｐｒｉｎｇ、Ｐｌａｙ、Ｊｏ、Ｔｗｉｔｔｅｒ  Ｂｏｏｔｓｔｒａｐなどのウェブ及び／またはモバイルアプリケーションフレームワークも使用されてよいこととを当業者が理解することは、もちろん、理解されたい。本明細書に開示されるシステム及び方法は、例えばインターネットなどのコンピュータネットワークを介して利用可能なサービスとしてのソフトウェアで実現されてよいことをさらに理解されたい。さらに、本開示は、１つまたは複数のアプリケーションプログラミングインタフェースなどを介したウェブサービス、アプリケーションプログラミングインタフェース及び／またはサービス指向アーキテクチャを可能にし得る。
【００３４】
図１Ａを参照すると、全体として１００で示される、全ての可能なナビゲーション遷移を有するナビゲーション経路の例示的な状態図が示されている。状態図１００は、複数のＧＵＩ状態（すなわち、１０２、１０４、１０６、１０８、１１０及び１１２）を含む。本開示の少なくとも１つの実施形態では、各ＧＵＩ状態は、現在のＧＵＩ状態を示す。例えば、ユーザが最初にＧＵＩを操作するとき、ＧＵＩはＧＵＩ状態１０２（ホーム）に初期化されてよく、ＧＵＩはＧＵＩ状態１０２に適切な付随情報またはＧＵＩ内の制御アイテムを特徴とする。各ＧＵＩ状態に対して、別のＧＵＩ状態への少なくとも１つの遷移がある。例として、ＧＵＩ状態１０２（ホーム）は、ＧＵＩ状態１０４（ユーザリスト）への１つの遷移１０２Ａのみを有し、ＧＵＩ状態１１２（サービス割り当て）は、ＧＵＩ状態１０２への遷移１１２Ａ、及び、ＧＵＩ状態１０４への遷移１１２Ｂを含む。ＧＵＩ状態遷移は、ＧＵＩを現在の状態から次の／将来の状態に遷移する（例えば、ＧＵＩ制御アイテムの操作によってユーザが行う）アクションまたは操作を示すことは理解されよう。上記の例を続けると、ＧＵＩがＧＵＩ状態１０２に初期化される場合、ＧＵＩ状態１０２内で利用可能な操作(複数可）は、ＧＵＩがＧＵＩ状態１０４に遷移するように遷移１０２Ａを呼び出す。同様に、ＧＵＩ状態が現在、ＧＵＩ状態１１２にある場合、ＧＵＩが（遷移１１２Ａを介して）ＧＵＩ状態１０２にまたは（遷移１１２Ｂを介して）ＧＵＩ状態１０４になるのを可能にするように動作可能に選択され得るＧＵＩ機能がユーザに提示されてよい。状態図は、現在のＧＵＩ状態が与えられた場合に可能な全てのナビゲーション遷移を表示することがさらに理解されよう。各ＧＵＩ状態は、各アプリケーションのためにＩＳＶによって独立して作成されてよいことが理解されよう。
【００３５】
図１Ｂを参照すると、本開示の少なくとも１つの実施形態による、単純なナビゲーション経路の例示的な状態図１５０が示されている。状態図１５０では、ＧＵＩ状態１０２が初期状態である（すなわち、ユーザが、ＧＵＩ状態１０２に提示されているＧＵＩを見るように初期化される）。例として、ＧＵＩの操作時に、ＧＵＩは遷移１０２Ａを介してＧＵＩ状態１０４に遷移し、ＧＵＩ状態１０４で、ＧＵＩは、遷移１０４Ａを介して操作によってＧＵＩ状態１１０に遷移し、ＧＵＩ状態１１０で、ＧＵＩは、遷移１１Ａを介して操作によってＧＵＩ状態１１２に遷移し、ＧＵＩ状態１１２で、ＧＵＩは、遷移１１２Ｂを介して操作によりＧＵＩ状態１０８に遷移し、ＧＵＩ状態１０８で、ＧＵＩは、遷移１０８Ａを介して操作によりＧＵＩ状態１０６に遷移し、そして最後に、ＧＵＩ状態１０６で、ＧＵＩは遷移１０６Ａを介してＧＵＩ状態１０４に遷移する。
【００３６】
この例示的な実施形態を続けると、状態図１５０はナビゲーション経路を示し、ユーザはこのナビゲーション経路に沿って操作して特定のタスクを達成することが理解されよう。例えば、（本明細書でさらに開示するように）クラウドサービスブローカ（ＣＳＢ）プラットフォームにユーザをプロビジョニングするために、管理者はホーム画面（ＧＵＩ状態１０２）で開始するように初期化される。ここで、ホーム画面は、ＣＳＢプラットフォームのコントロールパネルで利用可能な開始点であってよい。ホーム画面（ＧＵＩ状態１０２）で、管理者に、ユーザリストへのリンクなどの少なくとも１つの制御アイテムを含むメニューが提示されてよい。制御アイテムの操作時（すなわち、ユーザリストへのリンクをクリックすると）、ＧＵＩはユーザリスト画面（ＧＵＩ状態１０４）に遷移する。各ＧＵＩ画面（すなわち、ＧＵＩ状態）において、利用可能な制御アイテムのリストが提供されてよいことは理解されよう。制御アイテムにより、管理者はあるＧＵＩ画面から次のＧＵＩ画面にナビゲートできることは理解されよう。ナビゲーション遷移には、動的と静的の２種類があることもさらに理解されよう。本開示の少なくとも１つの実施形態では、静的遷移は、ＧＵＩ画面のナビゲーション記述で宣言される遷移である。すなわち、静的遷移は、あるＧＵＩ画面から次のＧＵＩ画面への遷移について事前に定義されている。これにより、２つのＧＵＩ画面間に「固定した」関係が作成されることは理解されよう。
【００３７】
上記の例を続けると、ユーザリスト画面（ＧＵＩ状態１０４）で、管理者は、制御アイテムを含むメニューを再び提供されてよく、この制御アイテムは新規ユーザを追加できるリンクを含み得る。リンクを操作して新規ユーザを追加すると、ＧＵＩは新規ユーザ画面（ＧＵＩ状態１１０）に遷移し、それによって、管理者は新規ユーザをシステムに追加できる。新規ユーザ画面（ＧＵＩ状態１１０）で、管理者はＧＵＩを操作して新規ユーザを追加してよく、次のＧＵＩ画面（すなわち、サービス割り当て（ＧＵＩ状態１１２））に遷移するための制御アイテムを含むメニューも提供されてよい。上記の例を続けると、管理者は、サービス割り当て画面（ＧＵＩ状態１１２）で、制御アイテムを操作してＣＳＢプラットフォームサービスをユーザに割り当てることができる。その割り当てが完了すると、管理者はＧＵＩを操作して新しい仮想プライベートサーバ（ＶＰＳ）（このＶＰＳサービスはステップ１１２で割り当てられる）画面（ＧＵＩ状態１０８）に遷移してよく、その後、管理者はユーザビュー（ＧＵＩ状態１０６）に遷移し、最後にユーザリスト画面（ＧＵＩ状態１０４）に戻る。上記ナビゲーション遷移は、ＣＳＢプラットフォームでの管理者によるアクションの実行の例示的な実施形態であることは理解されよう。
【００３８】
図１Ｃを参照すると、全体として１７５で示される、プレースホルダを介して組み立てられた例示的なナビゲーションツリーが示されている。本開示の少なくとも１つの実施形態では、ナビゲーションツリー１７５は、アプリケーション１８０及びアプリケーション１８２を含む。アプリケーション１８０及び１８２は、ＣＳＢプラットフォームを介して利用可能な任意のアプリケーションであってよいことが理解されよう。アプリケーション１８０は、ナビゲーションルート１８４及びメニューアイテム１８６をさらに含む。メニューアイテム１８６は、ビュー１８８及び右ビュー１９０をさらに含む。本開示の少なくとも１つの実施形態では、プレースホルダを使用して、アプリケーション１８０及びアプリケーション１８２のＧＵＩを統合する。例えば、アプリケーション１８０及びアプリケーション１８２はそれぞれ、コネクタアプリケーションに関連付けられたコネクタパッケージを含み得る。コネクタアプリケーション１８２がアプリケーション１８０に動作可能に接続できるように、各アプリケーションのＧＵＩ画面は、プレースホルダを介して動作可能に接続される必要がある。本開示の少なくとも１つの実施形態では、アプリケーション１８０は、右ビュー１９０をアプリケーション１９２のプレースホルダ１９４に埋め込むように構成される。特定のアプリケーション（すなわち、アプリケーション１８０またはアプリケーション１８２のいずれか）の操作のためのＧＵＩ画面の生成中に、静的接続がアプリケーション１８０とアプリケーション１８２のナビゲーションツリーの間に構築されるので、右ビュー１９０は２つの親ノード（すなわち、ビュー１８８とプレースホルダ１９４）を有し、逆に、２つの親ノード（ビュー１８８とプレースホルダ１９４）は、１つの共通の子ノード（すなわち、右ビュー１９０）を有する。このようなプレースホルダの使用により、ナビゲーションツリーをナビゲーショングラフに変えることができることがさらに理解されよう。右ビュー１９０は、アプリケーション１８０とアプリケーション１８２の間の統合点としても機能することも理解されよう。例えば、右ビュー１９０は、ユーザがアプリケーション１８０からアプリケーション１８２へ（または該当する場合はその逆に）遷移し得る点である。同様に、右ビュー１９０はまた、あるサブツリー（すなわち、アプリケーション１８２のサブツリー）をアプリケーション１８０のサブツリーに挿入するためのフォークと考えられてよい。
【００３９】
図２を参照すると、全体として２００で示される、ＧＵＩ応答時間を改善するために予測ベースのＧＵＩを生成するシステムの例示的な実施形態が示されている。本開示の少なくとも１つの実施形態では、システム２００は、クライアント２０２、ＣＳＢプラットフォーム２０４、予測器２０６、ナビゲーションモジュール２０８、ＣＳＢコントローラ２１０及びネットワーク２１６を含む。本開示の少なくとも１つの実施形態では、システム２００は、当技術分野で既知のタイプの１つまたは複数のサーバコンピュータ、コンピューティングデバイス、またはシステムを含み得る。システム２００は、当業者が思いつくようなソフトウェア、ハードウェア及びコンポーネント、例えば、マイクロプロセッサ、メモリシステム、入力／出力デバイス、ホストバスアダプタ、ファイバチャネル、小型コンピュータシステムインタフェースコネクタ、高性能パラレルインタフェースバス、ストレージデバイス（例えば、ハードドライブ、ソリッドステートドライブ、フラッシュメモリドライブ）、デバイスコントローラ、ディスプレイシステムなどをさらに含む。システム２００は、例えば、ＩＢＭ（登録商標）のＡＳ／４００（登録商標）サーバ、ＩＢＭ（登録商標）のＡＩＸ  ＵＮＩＸ（登録商標）サーバ、または、ＭＩＣＲＯＳＯＦＴ（登録商標）のＷＩＮＤＯＷＳ  ＮＴ（登録商標）サーバ等、周知の多くのサーバのうちの１つを含み得る。
【００４０】
本開示の少なくとも１つの実施形態では、クライアント２０２は、クライアント２０２がＧＵＩ用のコネクタ固有コード及びＣＳＢプラットフォームコードを有するＪａｖａＳｃｒｉｐｔファイルをＣＳＢコントローラ２１０からダウンロードできるように、ＧＵＩフレームワークとウェブブラウザを備えたコネクタアプリケーション固有モジュールとの組み合わせを含んでよい。ユーザは、クライアント２０２を使用して、コネクタアプリケーション２１２に関連付けられたアプリケーション固有のＧＵＩと統合されたＣＳＢプラットフォーム２０４のＧＵＩページにアクセスしてよいことが理解されよう。クライアント２０２はまた、ＧＵＩビジネスロジックを処理し、任意のリソースを取得、削除または修正する要求をＣＳＢコントローラ２１０に対して行い、アクティブなビューを変更するためのナビゲーション要求を行う。
【００４１】
本開示の少なくとも１つの実施形態では、各クライアント２０２は、ＪａｖａＳｃｒｉｐｔフレームワーク及び統合されたアプリケーションのＪａｖａＳｃｒｉｐｔモジュールからなる単一ページのウェブアプリケーションを含む。クライアント２０２は、内部で実行するフレームワーク及びモジュールを備えたウェブブラウザを含むことが理解されよう。本開示の少なくとも１つの実施形態では、クライアント２０２は、コネクタアプリケーションＵＩモジュールを含み、コネクタアプリケーションＵＩモジュールは、このクライアント２０２のユーザが使用する統合クラウドアプリケーションのコネクタ固有のＵＩモジュール（ＧＵＩコード）のセッションスコープストレージである（例えば、ユーザはこれらのアプリケーションのサブスクリプションを持っている、これらのアプリケーション等に対応するいくつかのリソース等を使用している、これらのアプリケーションに関連するビューを表示するために必要なユーザとクラウドアプリケーションとの間の任意の接続を使用している）。最初に、クラウドアプリケーションに固有のこれらのモジュール（ＧＵＩコード）は、ソースコードまたはＵＩモジュールを有するファイルの形式でコネクタパッケージに配置される。これらのコネクタパッケージのメタデータは、これらのソースコードを参照するビューを表示するための階層（直接接続）、プラグイン、及び必要な変数（セキュリティ条件）を記述する。
【００４２】
本開示の少なくとも１つの実施形態では、クライアント２０２のフレームワークは、ＣＳＢコントローラ２１０及び予測器２０６に動作可能に接続される。本開示の少なくとも１つの実施形態では、ＣＳＢコントローラ２１０は、リソースを用いてＲＥＳＴｆｕｌ操作を行うために呼び出され、一方、予測器２０６は、ＧＵＩ画面の別のビューに移動するために呼び出される。一例として、フレームワークは、ＣＳＢコントローラ２１０を介してＣＳＢプラットフォーム２０４から統合されたアプリケーション固有のＵＩモジュールをダウンロードすることを担当する。アプリケーション固有のＵＩモジュールは、アプリケーション固有のビューを表示するために必要なソースコードファイルである。ビューは、相互に接続された幾つかのＵＩモジュールで構成されてよい。通常、特定のビューを表すメインモジュールがある。メインＵＩモジュールがそれ自体で動作できない場合、メインＵＩモジュールは、依存セクションの依存ＵＩモジュールを宣言し、それに基づいて、フレームワークは、ビューを表示するための依存ＵＩモジュールをダウンロードしてよい。
【００４３】
本開示の少なくとも１つの実施形態では、ネットワーク２１６は、例えば、インターネット、イントラネット、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、電話ネットワーク（公衆交換電話網など）、インターネット、光ファイバベースのネットワーク、ケーブルテレビネットワーク、衛星テレビネットワーク、またはネットワークの組み合わせ等、異なるタイプのネットワークの１つを含み得る。ネットワーク２１６は、専用ネットワークまたは共有ネットワークのいずれであってもよい。共有ネットワークは、例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ワイヤレスアプリケーションプロトコル（ＷＡＰ）等、相互に通信するための様々なプロトコルを使用する異なるタイプのネットワークの関連付けを表す。ネットワーク２１６は、ルータ、ブリッジ、サーバ、コンピューティングデバイス、ストレージデバイス、モデム、スイッチ、ファイアウォール、ネットワークインタフェースカード（ＮＩＣ）、ハブ、ブリッジ、プロキシサーバ、光アドドロップマルチプレクサ（ＯＡＤＭ）、または、当業者に周知のデータを処理及び／または転送する他のタイプのデバイス等、１つまたは複数のデータ処理及び／またはデータ転送デバイスを含んでよいことはさらに理解されよう。他の様々な実施形態では、他の様々な構成が可能であることを理解されたい。イーサネットネットワーク、ケーブルベースネットワーク、衛星通信ネットワーク等、当業者に周知の他のコンピュータネットワーク、及び／または 、ネットワークの任意の組み合わせは、本開示の範囲内であると考えられる。
【００４４】
本開示の少なくとも１つの実施形態では、ＣＳＢプラットフォーム２０４は、予測器２０６をさらに含む。予測器２０６は、例えば、マイクロプロセッサ、メモリシステム、入力/出力デバイス、デバイスコントローラ、ディスプレイシステム等、当業者が思いつくであろうソフトウェア、ハードウェア及びコンポーネントをさらに含み、これらは、本開示に従って予測器２０６に割り当てられた機能を実行するように集合的に動作可能である。明確にするために、予測器２０６は、ＣＳＢプラットフォーム２０４のコンポーネントとして示されている。しかし、予測器２０６がＣＳＢプラットフォーム２０４とは異なり、ＣＳＢプラットフォーム２０４から離れていることは、本開示の範囲内であり、当業者には理解されよう。予測器２０６が常駐するリモートサーバまたはコンピューティングデバイスは、ＣＳＢプラットフォーム２０４、ナビゲーションモジュール２０８、ＣＳＢコントローラ２１０及びネットワーク２１６に電子的に接続されており、予測器２０６がシステム２００の各コンポーネントとの継続的な双方向データ転送を実行できることはさらに理解されよう。
【００４５】
本開示の少なくとも１つの実施形態では、ＣＳＢプラットフォーム２０４は、ＣＳＢコントローラ２１０をさらに含む。ＣＳＢコントローラ２１０は、少なくとも１つのコネクタアプリケーション２１２を含む。ＣＳＢコントローラ２１０は、複数のコネクタアプリケーションを含んでよいことは理解されよう。
【００４６】
本開示の少なくとも１つの実施形態では、ＣＳＢプラットフォーム２０４は、データベース２１４も含む。データベース２１４は、静的データと動的データの両方を含む。静的データは、全てのコネクタＵＩモジュールのパッケージ名、パッケージバージョン、リソースタイプスキーマ、ナビゲーションスキーマ、ソースコード等のコネクタパッケージメタデータである。動的データは、ユーザ、ドメイン、インターネットプロトコル（ＩＰ）アドレス、及び、任意のコネクタ固有のリソースインスタンス（例えば、ＶＰＳコネクタパッケージ用のＶＰＳサーバ）などのＣＳＢプラットフォーム２０４の全てのリソースインスタンスの状態である。データベース２１４は、当技術分野で周知のタイプのソフトウェアシステムによって接続された複数のデータベースを含んでよく、それらは本発明に従ってデータベース２１４に任された機能を実行するように集合的に動作可能であることが当業者には理解されよう。データベース２１４はまた、例えば、Ｈａｄｏｏｐアーキテクチャなど、ビッグデータサービスのための分散データアーキテクチャの一部であってよい。データベース２１４は、リレーショナルデータベースアーキテクチャ、ｎｏＳＱＬ、ＯＬＡＰ、または、データベース技術で既知のタイプの他のデータベースアーキテクチャを含み得る。データベース２１４は、例えば、ＳＱＬデータベース、ＮｏＳＱＬデータベース、ＭＩＣＲＯＳＯＦＴのＳＱＬサーバ、ＭＩＣＲＯＳＯＦＴのＡＣＣＥＳＳ、ＭｏｎｇｏＤＢ、Ｒｅｄｉｓ、Ｈａｄｏｏｐ、またはＩＢＭのＤＢ２データベース管理システム、または、ＯＲＡＣＬＥもしくはＳＹＢＡＳＥから入手可能なデータベース管理システム、及び、当業者に既知のように、アプリケーションに必要な他の任意のサービス等、周知の多くのデータベース管理システムの１つを含み得る。データベース２１４は、ＣＳＢプラットフォーム２０４内からデータベース２１４に通信される情報を読み出し可能に記憶する。
【００４７】
本開示の少なくとも１つの実施形態では、システム２００はクライアント２０２を含む。クライアント２０２は、ＣＳＢプラットフォーム２０４から遠隔であり、ネットワーク２１６を介してＣＳＢプラットフォーム２０４に接続されている。クライアント２０２は、ネットワーク２１６を介して、ＣＳＢプラットフォーム２０４に情報を送信し、一般にＣＳＢプラットフォーム２０４とインタラクトするように構成されてよい。クライアント２０２は、ＣＳＢプラットフォーム２０４との通信がネットワーク２１６を介して可能であるように、ウェブブラウザ、モバイルアプリケーション、ソケットもしくはトンネル、または他のネットワーク接続ソフトウェアを含み得る。
【００４８】
クライアント２０２は、１つまたは複数のコンピュータ、スマートフォン、タブレット、ウェアラブル技術、コンピューティングデバイス、または、メインフレームコンピュータ、ワークステーション、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、携帯電話、ＭＰ３プレーヤもしくはパーソナルデジタルアシスタント等の当技術分野で周知のタイプのシステムを含むことは理解されよう。クライアント２０２は、例えば、１つまたは複数のマイクロプロセッサ、メモリシステム、入力／出力デバイス、デバイスコントローラ等、当業者が思いつくようなソフトウェア、ハードウェア、及びコンポーネントを含む。クライアント２０２はまた、例えば音声またはオーディオコントロール、ポインティングデバイス（マウス等）、キーボード、タッチスクリーン、マイク、音声認識、及び／または、当該技術分野で既知の他のデータ入力手段等、データ入力のためにクライアント２０２のユーザが操作可能な１つまたは複数のデータ入力手段（図１には示さず）を含む。クライアント２０２はまた、液晶ダイオードディスプレイ、発光ダイオードディスプレイ等、その上にユーザに知覚可能な方法で情報を表示し得る様々なタイプの既知のディスプレイを含み得る表示手段（図１には図示せず）も含む。本開示に従ってクライアント２０２に割り当てられた機能を動作可能に実行するために、当業者が思いつくようなソフトウェア、ハードウェア及びコンポーネントをクライアント２０２がさらに含み得ることは理解されよう。システム２００は、１つのクライアントのみを指すが、複数のクライアントも含んでよいことはさらに理解されよう。
【００４９】
本開示の少なくとも１つの実施形態では、クライアント２０２は、当業者に周知のように、ＧＵＩフレームワークとアプリケーション固有のモジュールの組み合わせを含む。ＧＵＩフレームワークは、ＧＵＩビジネスロジックを処理し、ＣＳＢコントローラ２１０への要求を行い、ＣＳＢコントローラ２１０は、リソースの作成、読み取り／取得、削除、または、修正等のアクションを行うように構成されている。クライアント２０２のＧＵＩは、現在のＧＵＩビューを変更するためのナビゲーション要求を行うように動作可能に構成されていることはさらに理解されよう。
【００５０】
図３を参照すると、本開示の少なくとも１つの実施形態における、予測器２０６の代替図が示されている。予測器２０６は、挙動モデルビルダ３０２、キャッシュフィラ３０４、キャッシュクリーナ３０６、データベース３０８及びＲＥＳＴエンドポイント３１０を含む。本開示の少なくとも１つの実施形態では、挙動モデルビルダ３０２は、本明細書でさらに開示されるように、履歴からの新しいデータで予測モデルを再構築するように構成される。挙動モデルビルダ３０２は、遷移確率を用いて予測モデルを構築し、そのような予測モデルをデータベース３０８に記憶するように構成される。
【００５１】
本開示の少なくとも１つの実施形態では、キャッシュフィラ３０４は、本明細書でさらに開示するように、ＧＵＩを操作するユーザがアクセスする可能性が最も高いビューのナビゲーション応答を読み出すように構成される。ナビゲーション応答には、ターゲットビューのサブグラフ情報、可用性リソースコンテキスト、バックワードパス、及び、適用可能な親要素を含む、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）応答が含まれてよい。キャッシュフィラ３０４は、予測器２０６のキャッシュをオーバーフローさせないように、可能性の高いビューのナビゲーション応答を毎回、所定量を超えて読み出さないことは理解されよう。キャッシュフィラ３０４は、ナビゲーションモジュール２０８から受信したナビゲーション応答（例えば、ナビゲーションツリー）を（データベース３０８内に記憶されている）要求−応答キャッシュに保存するようにさらに構成される。本開示の少なくとも１つの実施形態では、データベース３０８は、本明細書でさらに開示するように、アクセスされたＧＵＩビュー、予測モデル、可能性の高いビューの識別子、ＧＵＩ画面ナビゲーション応答などの履歴を記憶する。
【００５２】
例として、以下は可能なナビゲーショントランザクションの例示的なリストである。
【表１】
2021515949.tif 000003
【００５３】
本開示の少なくとも１つの実施形態では、キャッシュクリーナ３０６は、本明細書でさらに開示するように、ＣＳＢコントローラ２１０に最後のセキュリティ範囲変更のタイムスタンプを要求するように構成される。例えば、ユーザのＧＵＩ遷移に適用可能なセキュリティ条件が多数あってよい。これらの条件は、そのようなユーザが利用できるリソース（及びその結果、メタデータが参照されるコネクタアプリケーションによって操作されるリソースを設定するコネクタパッケージに関連する利用可能なビュー）、並びに、どの条件（またはリソース）が経時的に変化するかに影響を与え得る。この例を続けると、要求されたナビゲーション要素がセキュリティ条件を解決するために禁止されたリソースまたは存在しないリソースを必要とする場合、ナビゲーション要素はナビゲーション応答に含まれないため、ユーザはビューを使用できない。（すなわち、ユーザはそのようなリソースにアクセスできないので、全ての利用可能なリソースにアクセス可能でない場合がある）。別の例として、ユーザがＤｒｏｐｂｏｘ（登録商標）及びＯｆｆｉｃｅ３６５（登録商標）へのサブスクリプションの販売のみを対象としているクラウドサービスブローカのサービスプランの加入者である場合、ＣＳＢプラットフォーム２０４に統合され、参照されるリソース（例えば、「ＶＰＳサーバ」）に関連付けられた他のアプリケーションに関連するビューはユーザに対して表示されてはならない。別の例として、ＧＵＩの遷移を制限したり、あるビューを別のビューに置き換えたりすることは、変数のメカニズムを通じて示されたセキュリティ条件である。ナビゲーションメタデータには、ユーザのセキュリティ範囲で利用可能なリソースに基づいてセキュリティ条件を記述するためのドメイン固有の言語が含まれている。非限定的な条件の例には、両方のリソースが入手可能である、入手可能なリソースがない、リソースが入手可能であり、特定の値を持つ属性を含む、などが含まれる。本開示の一実施形態では、このドメイン固有言語は、リソースクエリ言語（ＲＱＬ）に基づく。
【００５４】
最終変更タイムスタンプは、現在の予測モデルの範囲内での任意のリソースの修正／プロビジョニング、または、削除の最終日を決定することは理解されよう。キャッシュが作成された後に範囲が変更された場合、キャッシュクリーナ３０６は、要求−応答キャッシュをクリーニングする（キャッシュはデータベース３０８に記憶されてよい）。本開示の少なくとも１つの実施形態では、各ユーザは、システム内の全てのトランザクションを実行するために使用されるトークンに関連付けられる。例えば、トークンは、ユーザのセキュリティ範囲に関連付けられており、セキュリティ範囲は、トークンに基づいて（例えば、データベース３０８から）読み出し可能である。データベース３０８は、各ユーザトークンに対して関連付けられたビュー応答を記憶するように構成され、それにより、ユーザのセキュリティ範囲に少なくとも部分的に基づいて、各ユーザに適用可能なカスタマイズされたビュー応答を提示する。
【００５５】
本開示の少なくとも１つの実施形態では、キャッシュクリーナ３０６は、各ユーザトークンにアクセスするように構成され、トークンに関連付けられたセキュリティ範囲の変更をＣＳＢコントローラ２１０に定期的に要求する。トークンに関連付けられたセキュリティ範囲が変更された場合、キャッシュクリーナ３０６は、そのようなトークンに関連付けられたデータベース３０８に準備されたビュー応答を「クリーニング」（すなわち、変更または削除）することは理解されよう。
【００５６】
本開示の少なくとも１つの実施形態では、ナビゲーションモジュール２０８は、本明細書でさらに開示するように、ＧＵＩ画面の構築に使用されるナビゲーショングラフ及び応答を構築するように構成される。本開示の少なくとも１つの実施形態では、ナビゲーションモジュール２０８は、ＣＳＢコントローラ２１０を介して複数のコネクタアプリケーション２１２のそれぞれと統合するように構成される（これらのコネクタアプリケーション２１２は、ＩＳＶまたはサードパーティのコネクタ開発者によって提供されてよい）。ナビゲーションモジュール２０８は、本明細書でさらに開示するように、（例えば、図１Ｃに示すような）ナビゲーションツリーを生成するように構成される。
【００５７】
本開示の少なくとも１つの実施形態では、ＲＥＳＴエンドポイント３１０は、ナビゲーションエンドポイントをシミュレーションし、本明細書でさらに開示するように、要求を受信し、有効なナビゲーション応答を提供するように構成される。例えば、追加要求であるＧＵＩ操作中に、操作履歴がナビゲーション履歴リストに追加される。ＲＥＳＴエンドポイント３１０は、新しいアイテムカウントを計算し、定期的に（例えば、１００要求ごとに）挙動モデルビルダ３０２を呼び出して、ナビゲーション履歴リストに基づいて新しいデータでモデルを再構築するようにさらに構成される。各要求において、ＲＥＳＴエンドポイント３１０は、データベース３０８に記憶されたキャッシュと通信して、もしあれば事前計算された応答を要求するように構成されることが理解されよう。応答がない場合、ＲＥＳＴエンドポイント３１０は、ナビゲーションサービスに直接クエリして応答を返すように構成される。ＲＥＳＴエンドポイント３１０による各要求呼び出しにおいて、ディスク領域及びメモリの過剰消費を防止するためにキャッシュ履歴がローテーションされることがさらに理解されよう。キャッシュクリーナ３０６は、必要に応じてキャッシュを無効にするように動作することも理解されよう。
【００５８】
本開示の少なくとも１つの実施形態では、ＲＥＳＴエンドポイント３１０は、本明細書でさらに開示するように、アクセスされたビューの履歴をデータベース３０８に記憶するように構成される。例えば、ユーザがＧＵＩ画面を操作すると、ＧＵＩ画面のアクセスされたビューの履歴がデータベース３０８に記憶される。本開示の少なくとも１つの実施形態では、ＲＥＳＴエンドポイント３１０は、データベース３０８からＧＵＩ画面の特定のビュー応答（特定のビューのナビゲーション応答）を読み出すように構成される。応答が受信されない場合（すなわち、特定のビュー応答が使用できない場合）、ＲＥＳＴエンドポイント３１０は、ナビゲーション２０８にビュー応答を要求するように構成される。予測器２０６がユーザアクティビティに関する情報を収集すると、そのようなアクティビティ情報はデータベース３０８に記憶されることは理解されよう。本明細書でさらに開示するように、挙動モデルビルダ３０２は、データベース３０８内のこの情報を使用して、ＧＵＩ画面遷移予測モデルを開発してよいことがさらに理解されよう。
【００５９】
本開示の少なくとも１つの実施形態では、ＧＵＩ遷移ビュー、ＧＵＩステップ、ユーザ体験は、ビジネスインテリジェンスシステム、顧客関係管理システム等、サードパーティデータベース（図示せず）から読み出されてよい。そのような情報は、データベース３０８内に記憶されてよい。
【００６０】
図４を参照すると、全体として４００で示される、ＧＵＩ応答時間を改善するために予測ベースのＧＵＩを生成する方法が示されている。本開示の少なくとも１つの実施形態では、方法４００は、ステップ４０２でのタイマの開始、ステップ４０４でのビューシーケンスのロード、ステップ４０６でのデータのチェック、ステップ４０８での確率の再計算、ステップ４１０でのモデル作成日の設定、及び、ステップ４１２でキャッシュフィラの要求を含む。
【００６１】
本開示の少なくとも１つの実施形態では、方法４００は、ＧＵＩ画面及び遷移を管理するシーケンスを記述する。任意のＧＵＩ画面において、現在の状態から将来の状態（新しいＧＵＩ画面）への遷移は、そのようなアクティビティの発生の一定の確率を含むことは理解されよう。例えば、ＧＵＩ画面がアプリケーション（例えば、アプリケーション１８２）へのログイン画面である場合、そのようなＧＵＩ画面の現在の状態は、ログイン認証情報を入力し、そのような認証情報を提出する領域を含み得る。そのような例示的な実施形態では、将来の状態（すなわち、次のＧＵＩ画面）は、おそらく、（１）ログイン成功、または（２）ログイン失敗となり得る。この例を続けると、（セキュリティ制限に依存する）ログイン成功またはログイン失敗の起こり得る確率は、ＧＵＩ遷移の例示的な確率計算である。すなわち、ログインＧＵＩ画面からの遷移は、成功したログインＧＵＩ画面、または失敗したログインＧＵＩ画面の２つのオプションに基本的に制限されてよい。
【００６２】
ＧＵＩステップを行うユーザは、基本的に一連のＧＵＩ画面（またはビュー）に順次アクセスしていることは理解されよう。本開示の少なくとも１つの実施形態では、ＧＵＩ画面は、アプリケーション（例えば、アプリケーション１８２）の一部として設定され得る予め定められたビューのセットである。ユーザがアプリケーション（例えば、アプリケーション１８２）を使用する場合、可能なＧＵＩ画面が制限されることは理解されよう。例えば、図１を参照すると、ＧＵＩ状態１０２（ホーム）からＧＵＩ状態１１０（新規ユーザ）に移動可能であるが、このシナリオは、論理的にフローせず、このような機能支援を必要とするビジネスケースがない場合は実施される可能性は低い。ただし、他のＧＵＩ遷移と画面接続は、ほぼ予め定められた順序でほぼ例外なく使用される。例えば、図１Ｂを参照すると、新規ユーザを追加することは、ＧＵＩ状態１０６（ユーザビュー）画面を通ることを意味する。なぜなら、ビュー間のこの接続は静的であり、メインロジックパスとして開発されるからである。状態図１５０に基づいて作成されたナビゲーションモデルは、特定のシリアルシーケンスでアクセスまたは表示される最も可能性の高い次または前のＧＵＩ状態（またはＧＵＩ画面）が存在する（すなわち、ユーザのＧＵＩ活動は線形である）ことが多いと想定されていることは理解されよう。本開示の少なくとも１つの実施形態では、機械学習アルゴリズムを使用して、パターンを見つけ、ユーザ活動の連鎖において次に最も可能性の高いＧＵＩ画面（またはＧＵＩ状態）を予測することが可能である。
【００６３】
本開示の少なくとも１つの実施形態では、ナビゲーションツリーは、大きな静的モデルを使用して構築することができ、それにより、最も使用に適したＧＵＩ画面またはアプリケーションの主な使用シナリオが管理される。例として、ユーザプロファイル更新時にほぼ全てのユーザが連絡先データを入力し、全ての管理者は管理するユーザのリストを開き、新規ユーザを作成すると、全ての管理者がユーザのリストにリダイレクトされる。これらの所定の挙動は、ＧＵＩ画面の現在の状態に基づいて予測できることは理解されよう。ユーザのナビゲーションツリーは、以前のユーザの挙動に基づいて開発できることはさらに理解されよう。例として状態図１５０を参照すると、ユーザ管理者は、ＧＵＩ状態１２０（ホーム）にアクセスし、次に最初に通知をチェックしてよい。管理者は、アクセスのプロビジョニング、ユーザのロック／アンロックなどの他のアクションも行ってよい。この例を続けると、最も可能性の高いナビゲーションシーケンスに基づいて予測モデルを構築できる。
【００６４】
いくつかの非限定的な例を挙げると、Ｎグラムモデル、隠れマルコフモデル、最大エントロピーマルコフモデル（エントロピーベース分類と隠れマルコフモデルの組み合わせ）、ＳＶＭ（サポートベクタマシン）、決定木分類器、ランダムフォレスト分類器、Ｋ最近傍法を含むが、これらに限定されない隠れ分類器、及び、シーケンス予測を実行できる任意のニューラルネットワーク等、いくつかのシーケンス予測メカニズムが使用されてよいことは理解されよう。
【００６５】
方法４００を再び参照すると、プロセスは、ステップ４０２でタイマによって開始する。本開示の少なくとも１つの実施形態では、タイマは、ＧＵＩ遷移確率及び挙動モデルの計算をスケジュールするために使用される。予測器２０６は、保存されたビューのシーケンスに基づいて遷移確率を計算するのに十分なデータが（すなわち、データベース３０８のキャッシュに）あるか否かを検証する。データが不十分な場合、方法４００はステップ４０２に戻るが、それ以外の場合はステップ４０８に進む。
【００６６】
ステップ４０８で、遷移確率が計算され、遷移確率モデルが作成され、モデル作成日がステップ４１０で設定される。例えば、分類器の入力は特徴のセットであり、出力は特徴のセットが与えられた場合に特定の結果（すなわち、ＧＵＩイベント）が発生する確率の配列である。例えば、挙動モデルビルダ３０２は、最も可能性の高いＧＵＩ遷移の確率を計算する。計算された確率は、現在のＧＵＩビューから将来のＧＵＩビューへのユーザ遷移の可能性を示すことが理解されよう。一例として、ＧＵＩ画面は、ユーザ管理（例えば、ユーザの役割の作成／更新）のコントロールを表示してよい。システム管理者ユーザがユーザ管理ＧＵＩ画面を操作して「新規ユーザ」を作成することは、最初にメインユーザ管理画面から開始する。次の画面（すなわち、次のステップ）は、例えば、ユーザのフルネーム、連絡先情報など、新規ユーザに関する人口統計情報を入力するフォーム画面である可能性が高い。この例を続けると、現在、新規ユーザ作成画面にいるシステム管理者ユーザに最も可能性の高い将来のビューは、フォーム画面となるであろう。システム管理者ユーザがフォーム画面にアクセスせずに前の画面に戻る可能性は低い。
【００６７】
本開示の少なくとも１つの実施形態では、次に、キャッシュフィラ３０４が呼び出されて、遷移確率モデルをキャッシュ及びデータベース３０８に保存する。
【００６８】
図５を参照すると、全体として５００で示される、ＧＵＩ応答時間を改善するために予測ベースのＧＵＩを生成する方法が示されている。本開示の少なくとも１つの実施形態では、方法５００は、ステップ５０２で動作モデルビルダ３０２から要求が受信されたか否かをチェックし、ステップ５０４で動作モデル予測に基づいて要求された閾値確率より高いビューＩＤ取得し、ステップ５０６でナビゲーション２０８を要求し、ステップ５０８で受信したビュー応答（すなわち、ナビゲーション応答）を記憶することによって要求処理を管理する。
【００６９】
本開示の少なくとも１つの実施形態では、ＧＵＩ画面（またはビュー）に対する受信された各要求は、要求シーケンスとしてデータベース３０８に保存される。
【００７０】
本開示の少なくとも１つの実施形態では、ステップ５０４で、閾値より高い確率を有するＧＵＩビューＩＤが読み出される。例として、閾値は様々であってよく、使用される確率モデルのタイプに依存し得る。すなわち、隠れマルコフモデル（ＨＭＭ）は、ランダムフォレスト分類器と比較して異なる閾値を有する。本開示の少なくとも１つの実施形態では、そのような確率の計算に使用されるデータは、以前のユーザ遷移について蓄積された（及びデータベース３０８に記憶された）データである。データはＧＵＩ遷移チェーンを含み得ることが理解されよう。上記の例を続けると、ランダムフォレスト分類（ＲＦＣ）モデリングでは、ＲＦＣモデルはデータに適合し、確率の配列を出力する。確率分布、同時に作業しているユーザの数、メモリ制限があるため、キャッシュ内の最大データ、キャッシュサイズの制限など、全ての要件を満たす最適な閾値を定義できる。遷移の全ての確率が計算されてもよいが、最も可能性の高い遷移確率が、このようなモデルを記憶する限られたメモリ／キャッシュストレージの効率的な使用を確実にするために計算されることが理解されよう。
【００７１】
本開示は、クライアントに関するデータを収集するための統合予測サービスを提供し、統合予測サービスは、ＧＵＩビュー及びナビゲーションを最適化するためにさらに使用できるテスト目的またはユーザ挙動分析に有用であり得ることがさらに理解されよう。
【００７２】
モデルが、閾値より高い遷移確率を持つＧＵＩビューの次のＩＤを含む場合、それらのＧＵＩビューのナビゲーション応答は、ステップ５０６で可能な応答として準備される。応答はデータベース３０８に記憶される。
【００７３】
図６を参照すると、全体として６００で示される、ＧＵＩ応答時間を改善するために予測ベースのＧＵＩを生成する方法が示されている。方法６００は、ステップ６０２でＧＵＩビュー要求が受信されたかどうかをチェックすることと、ステップ６０４で最後のセキュリティ範囲変更日を取得することと、ステップ６０６で遷移確率モデルがセキュリティ範囲変更日より新しいか否かをチェックすることと、そうであれば、ステップ６０８に進み、そうでなければステップ６１２に進むこととを含む。
【００７４】
本開示の少なくとも１つの実施形態では、方法６００は、ステップ６０８で要求されたＧＵＩビューに対する準備されたナビゲーション応答がモデルに含まれるか否かをチェックすることと、ステップ６１０でデータベース３０８からＧＵＩビュー応答（ナビゲーション応答）を取得することとをさらに含む。本開示の少なくとも１つの実施形態では、方法６００は、ステップ６１４でナビゲーションを要求することと、ステップ６１６でＧＵＩビュー応答をデータベース３０８に記憶することと、ステップ６１８で応答を返すこととをさらに含む。
【００７５】
本発明を図面及び前述の説明で詳細に図示し説明したが、これは例示であり、制限的な特性はなく、特定の実施形態のみを図示し説明したこと、及び本発明の趣旨に含まれる全ての変更及び修正は保護が望まれることが理解される。
【図１Ａ】
2021515949.tif 000004
【図１Ｂ】
2021515949.tif 000005
【図１Ｃ】
2021515949.tif 000006
【図２】
2021515949.tif 000007
【図３】
2021515949.tif 000008
【図４】
2021515949.tif 000009
【図５】
2021515949.tif 000010
【図６】
2021515949.tif 000011
【国際調査報告】
2021515949.tif 000012