(57)【要約】  修正動作に基づいて、リモートデバイスのセットのための修正動作データ構造を生成することに関連するシステム、方法、および他の実施形態について記載する。一実施形態では、方法は、複数のリモートデバイスからアプリケーションアクティビティデータを受信することを含む。アプリケーションアクティビティデータを解析して、複数のリモートデバイスの各々に関連するアプリケーションアクティビティのセットを決定する。このアプリケーションアクティビティのセットを解析して、複数のリモートデバイスのうちのリモートデバイスのセットに関連する１つ以上の問題を決定する。上記１つ以上の問題の各々に対して修正動作を決定し、この修正動作に基づいて、上記リモートデバイスのセットのための修正動作データ構造を生成する。
2021506010.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行可能命令を格納した非一時的なコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、コンピュータの少なくともプロセッサによって実行されると、前記コンピュータに、
少なくとも前記プロセッサが、複数のリモートデバイスからアプリケーションアクティビティデータを受信することと、
少なくとも前記プロセッサが、前記アプリケーションアクティビティデータを解析して、前記複数のリモートデバイスの各々に関連するアプリケーションアクティビティのセットを決定することと、
少なくとも前記プロセッサが、前記アプリケーションアクティビティのセットを解析して、前記複数のリモートデバイスのうちのリモートデバイスのセットに関連する１つ以上の問題を決定することと、
少なくとも前記プロセッサが、前記１つ以上の問題の各々に対して修正動作を決定することと、
少なくとも前記プロセッサが、前記修正動作に基づいて、前記リモートデバイスのセットのための修正動作データ構造を生成することとを実行させる、非一時的なコンピュータ可読媒体。
【請求項２】
前記アプリケーションアクティビティのセットを解析して、前記複数のリモートデバイスのうちの前記リモートデバイスのセットに関連する１つ以上の問題を決定させる前記コンピュータ実行可能命令はさらに、
前記プロセッサによって実行されると、前記コンピュータに、
前記複数のリモートデバイスのうちの第１のリモートデバイスのアプリケーションアクティビティの第１のセットが第１の問題に関連しているか否かを決定することと、
前記複数のリモートデバイスのうちの第２のリモートデバイスのアプリケーションアクティビティの第２のセットが前記第１の問題に関連しているか否かを決定することと、
前記第１のリモートデバイスおよび前記第２のリモートデバイスが共に前記第１の問題に関連していると決定したことに応じて、前記第１の問題に関連させて、前記第１のリモートデバイスおよび前記第２のリモートデバイスを含む前記リモートデバイスのセットを生成することとを実行させるコンピュータ実行可能命令を含む、請求項１に記載の非一時的なコンピュータ可読媒体。
【請求項３】
少なくとも前記プロセッサによって実行されると、前記コンピュータに、
前記修正動作データ構造を、前記リモートデバイスのセットの各リモートデバイスへ送信することを実行させる命令をさらに含む、請求項１に記載の非一時的なコンピュータ可読媒体。
【請求項４】
少なくとも前記プロセッサによって実行されると、前記コンピュータに、
前記修正動作データ構造に基づいて、グラフィカルユーザインターフェイスを生成することと、
前記グラフィカルユーザインターフェイスを表示用に提供することとを実行させる命令をさらに含む、請求項１に記載の非一時的なコンピュータ可読媒体。
【請求項５】
少なくとも前記プロセッサによって実行されると、前記コンピュータに、
前記リモートデバイスのセットのための前記修正動作データ構造を、前記リモートデバイスのセットの管理エンティティへ送信することを実行させる命令をさらに含む、請求項１に記載の非一時的なコンピュータ可読媒体。
【請求項６】
コンピューティングシステムであって、
メモリに接続されたプロセッサと、
非一時的なコンピュータ可読媒体に格納され、命令を含んで構成された修正モジュールとを備え、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、
複数のリモートデバイスからアプリケーションアクティビティデータを受信することと、
前記アプリケーションアクティビティデータを解析して、前記複数のリモートデバイスの各々に関連するアプリケーションアクティビティのセットを決定することと、
前記アプリケーションアクティビティのセットを解析して、前記複数のリモートデバイスのうちのリモートデバイスのセットに関連する１つ以上の問題を決定することと、
前記１つ以上の問題の各々に対して修正動作を決定することと、
前記修正動作に基づいて、前記リモートデバイスのセットのための修正動作データ構造を生成することとを実行させる、コンピューティングシステム。
【請求項７】
前記アプリケーションアクティビティのセットを解析して、前記複数のリモートデバイスのうちの前記リモートデバイスのセットに関連する１つ以上の問題を決定させる前記命令はさらに、
前記プロセッサによって実行されると、前記プロセッサに、
前記複数のリモートデバイスのうちの第１のリモートデバイスのアプリケーションアクティビティの第１のセットが第１の問題に関連しているか否かを決定することと、
前記複数のリモートデバイスのうちの第２のリモートデバイスのアプリケーションアクティビティの第２のセットが前記第１の問題に関連しているか否かを決定することと、
前記第１のリモートデバイスおよび前記第２のリモートデバイスが共に前記第１の問題に関連していると決定したことに応じて、前記第１の問題に関連させて、前記第１のリモートデバイスおよび前記第２のリモートデバイスを含む前記リモートデバイスのセットを生成することとを実行させる命令を含む、請求項６に記載のコンピューティングシステム。
【請求項８】
前記修正モジュールは、
前記プロセッサによって実行されると、前記プロセッサに、
前記修正動作データ構造に基づいて、グラフィカルユーザインターフェイスを生成することと、
前記グラフィカルユーザインターフェイスを表示用に提供することとを実行させる命令をさらに含んで構成される、請求項６に記載のコンピューティングシステム。
【請求項９】
前記修正モジュールは、
前記プロセッサによって実行されると、前記プロセッサに、
前記リモートデバイスのセットのための前記修正動作データ構造を、前記リモートデバイスのセットの管理エンティティへ送信することを実行させる命令をさらに含んで構成される、請求項６に記載のコンピューティングシステム。
【請求項１０】
プロセッサを備えるコンピューティングデバイスによって実行されるコンピュータ実施方法であって、
少なくとも前記プロセッサが、複数のリモートデバイスからアプリケーションアクティビティデータを受信するステップと、
少なくとも前記プロセッサが、前記アプリケーションアクティビティデータを解析して、前記複数のリモートデバイスの各々に関連するアプリケーションアクティビティのセットを決定するステップと、
少なくとも前記プロセッサが、前記アプリケーションアクティビティのセットを解析して、前記複数のリモートデバイスのうちのリモートデバイスのセットに関連する１つ以上の問題を決定するステップと、
少なくとも前記プロセッサが、前記１つ以上の問題の各々に対して修正動作を決定するステップと、
少なくとも前記プロセッサが、前記修正動作に基づいて、前記リモートデバイスのセットのための修正動作データ構造を生成するステップとを含む、コンピュータ実施方法。
【請求項１１】
前記修正動作データ構造はコードを含み、
前記コードは、リモートデバイスによって受信されて実行されると、前記１つ以上の問題のうちの少なくとも１つを軽減するようにアプリケーションを変更させる、請求項１、６、または１０に記載のコンピュータ実施方法。
【請求項１２】
前記修正動作データ構造はレポートを含み、前記レポートは、
（ｉ）前記リモートデバイスのセットに関連する前記１つ以上の問題と、
（ｉｉ）前記１つ以上の問題に対して決定された前記修正動作とを特定する、請求項１、６、または１０に記載のコンピュータ実施方法。
【請求項１３】
前記アプリケーションアクティビティのセットを解析して、前記複数のリモートデバイスのうちの前記リモートデバイスのセットに関連する１つ以上の問題を決定するステップは、
前記複数のリモートデバイスのうちの第１のリモートデバイスのアプリケーションアクティビティの第１のセットが第１の問題に関連しているか否かを決定するステップと、
前記複数のリモートデバイスのうちの第２のリモートデバイスのアプリケーションアクティビティの第２のセットが前記第１の問題に関連しているか否かを決定するステップと、
前記第１のリモートデバイスおよび前記第２のリモートデバイスが共に前記第１の問題に関連していると決定したことに応じて、前記第１の問題に関連させて、前記第１のリモートデバイスおよび前記第２のリモートデバイスを含む前記リモートデバイスのセットを生成するステップとを含む、請求項１０に記載のコンピュータ実施方法。
【請求項１４】
前記修正動作データ構造を、前記リモートデバイスのセットの各リモートデバイスへ送信するステップをさらに含む、請求項１０に記載のコンピュータ実施方法。
【請求項１５】
前記リモートデバイスのセットのための前記修正動作データ構造を、前記リモートデバイスのセットの管理エンティティへ送信するステップをさらに含む、請求項１０に記載のコンピュータ実施方法。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
さまざまなサービスおよび製品を実現するために、コンピューティングデバイスが用いられている。例えば、さまざまなコンピューティングデバイスは、スケジューリングサービス（例えば、車両を用いて行なわれるタスクのスケジューリング）や、通信サービス（例えば、他のコンピューティングデバイスとの間のメッセージの送受信）を提供し得る。スケジュール設定されたタスク、および送受信されたメッセージは、分散型ネットワーク環境（例えば、クラウドサービス）のデータベースもしくは他の格納構造、または、ローカルコンピュータのデータベースもしくは他の格納構造に格納される場合もある。ユーザは、コンピューティングデバイスの各々と対話することにより、対応するスケジュール設定されたタスク、および対応する送受信されたメッセージに対する操作を行なうことができる。例えば、各コンピューティングデバイスを用いて、新たなタスクの追加、既存のタスクの消去、もしくは既存のタスクの変更、または新たなメッセージの作成、既存のメッセージの消去、もしくは既存のメッセージの変更を行なうことができる。
【０００２】
スケジューリングサービスおよび通信サービスには、一部のコンピューティングデバイスのユーザによるサービスの利用を妨げるバグまたは欠陥がある場合がある。そのようなバグまたは欠陥は、特定されない場合もあるし、サービスプロバイダが知らない場合もある。
【０００３】
コンピューティングデバイスの性能、サービスの有効性、タスクおよびメッセージ送信の正常終了率、ならびにサービスの顧客の満足度を改善するためには、サービスプロバイダがサービスのバグまたは欠陥を効率的に特定し、修正することが可能であることが望ましい。
【０００４】
都合の悪いことに、一般的な既存の手法は、観察および事例に基づく情報を用いてバグまたは欠陥を特定することしかできない。ゆえに、サービスの改善には、情報ソースが制限される（多くの場合、情報ソースの受信が遅くなる）という制約があった。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
一実施形態では、非一時的なコンピュータ可読媒体は、コンピュータ実行可能命令を格納しており、このコンピュータ実行可能命令は、コンピュータの少なくともプロセッサによって実行されると、コンピュータに、少なくともプロセッサが、複数のリモートデバイスからアプリケーションアクティビティデータを受信することと、少なくともプロセッサが、アプリケーションアクティビティデータを解析して、複数のリモートデバイスの各々に関連するアプリケーションアクティビティのセットを決定することと、少なくともプロセッサが、アプリケーションアクティビティのセットを解析して、複数のリモートデバイスのうちのリモートデバイスのセットに関連する１つ以上の問題を決定することと、少なくともプロセッサが、１つ以上の問題の各々に対して修正動作を決定することと、少なくともプロセッサが、修正動作に基づいて、リモートデバイスのセットのための修正動作データ構造を生成することとを実行させる。
【０００６】
別の一実施形態によれば、修正動作データ構造はコードを含み、このコードは、リモートデバイスによって受信されて実行されると、１つ以上の問題のうちの少なくとも１つを軽減するようにアプリケーションを変更させる。
【０００７】
別の一実施形態によれば、修正動作データ構造はレポートを含み、このレポートは、（ｉ）リモートデバイスのセットに関連する１つ以上の問題と、（ｉｉ）１つ以上の問題に対して決定された修正動作とを特定する。
【０００８】
別の一実施形態によれば、アプリケーションアクティビティのセットを解析して、複数のリモートデバイスのうちのリモートデバイスのセットに関連する１つ以上の問題を決定させるコンピュータ実行可能命令はさらに、プロセッサによって実行されると、コンピュータに、複数のリモートデバイスのうちの第１のリモートデバイスのアプリケーションアクティビティの第１のセットが第１の問題に関連しているか否かを決定することと、複数のリモートデバイスのうちの第２のリモートデバイスのアプリケーションアクティビティの第２のセットが第１の問題に関連しているか否かを決定することと、第１のリモートデバイスおよび第２のリモートデバイスが共に第１の問題に関連していると決定したことに応じて、第１の問題に関連させて、第１のリモートデバイスおよび第２のリモートデバイスを含むリモートデバイスのセットを生成することとを実行させるコンピュータ実行可能命令を含む。
【０００９】
別の一実施形態によれば、コンピュータ実行可能命令はさらに、少なくともプロセッサによって実行されると、コンピュータに、修正動作データ構造を、リモートデバイスのセットの各リモートデバイスへ送信することを実行させる命令を含む。
【００１０】
別の一実施形態によれば、コンピュータ実行可能命令はさらに、少なくともプロセッサによって実行されると、コンピュータに、修正動作データ構造に基づいて、グラフィカルユーザインターフェイスを生成することと、グラフィカルユーザインターフェイスを表示用に提供することとを実行させる命令を含む。
【００１１】
別の一実施形態によれば、コンピュータ実行可能命令はさらに、少なくともプロセッサによって実行されると、コンピュータに、リモートデバイスのセットのための修正動作データ構造を、リモートデバイスのセットの管理エンティティへ送信することを実行させる命令を含む。
【００１２】
別の一実施形態によれば、コンピューティングシステムは、メモリに接続されたプロセッサと、非一時的なコンピュータ可読媒体に格納され、命令を含んで構成された修正モジュールとを備え、命令は、プロセッサによって実行されると、プロセッサに、複数のリモートデバイスからアプリケーションアクティビティデータを受信することと、アプリケーションアクティビティデータを解析して、複数のリモートデバイスの各々に関連するアプリケーションアクティビティのセットを決定することと、アプリケーションアクティビティのセットを解析して、複数のリモートデバイスのうちのリモートデバイスのセットに関連する１つ以上の問題を決定することと、１つ以上の問題の各々に対して修正動作を決定することと、修正動作に基づいて、リモートデバイスのセットのための修正動作データ構造を生成することとを実行させる。
【００１３】
別の一実施形態によれば、修正動作データ構造はコードを含み、このコードは、リモートデバイスによって受信されて実行されると、１つ以上の問題のうちの少なくとも１つを軽減するようにアプリケーションを変更させる。
【００１４】
別の一実施形態によれば、修正動作データ構造はレポートを含み、このレポートは、（ｉ）リモートデバイスのセットに関連する１つ以上の問題と、（ｉｉ）１つ以上の問題に対して決定された修正動作とを特定する。
【００１５】
別の一実施形態によれば、アプリケーションアクティビティのセットを解析して、複数のリモートデバイスのうちのリモートデバイスのセットに関連する１つ以上の問題を決定させる命令はさらに、プロセッサによって実行されると、プロセッサに、複数のリモートデバイスのうちの第１のリモートデバイスのアプリケーションアクティビティの第１のセットが第１の問題に関連しているか否かを決定することと、複数のリモートデバイスのうちの第２のリモートデバイスのアプリケーションアクティビティの第２のセットが第１の問題に関連しているか否かを決定することと、第１のリモートデバイスおよび第２のリモートデバイスが共に第１の問題に関連していると決定したことに応じて、第１の問題に関連させて、第１のリモートデバイスおよび第２のリモートデバイスを含むリモートデバイスのセットを生成することとを実行させる命令を含む。
【００１６】
別の一実施形態によれば、修正モジュールは、プロセッサによって実行されると、プロセッサに、修正動作データ構造を、リモートデバイスのセットの各リモートデバイスへ送信することを実行させる命令をさらに含んで構成される。
【００１７】
別の一実施形態によれば、修正モジュールは、プロセッサによって実行されると、プロセッサに、修正動作データ構造に基づいて、グラフィカルユーザインターフェイスを生成することと、グラフィカルユーザインターフェイスを表示用に提供することとを実行させる命令をさらに含んで構成される。
【００１８】
別の一実施形態によれば、修正モジュールは、プロセッサによって実行されると、プロセッサに、リモートデバイスのセットのための修正動作データ構造を、リモートデバイスのセットの管理エンティティへ送信することを実行させる命令をさらに含んで構成される。
【００１９】
別の一実施形態によれば、プロセッサを備えるコンピューティングデバイスによって実行されるコンピュータ実施方法は、少なくともプロセッサが、複数のリモートデバイスからアプリケーションアクティビティデータを受信するステップと、少なくともプロセッサが、アプリケーションアクティビティデータを解析して、複数のリモートデバイスの各々に関連するアプリケーションアクティビティのセットを決定するステップと、少なくともプロセッサが、アプリケーションアクティビティのセットを解析して、複数のリモートデバイスのうちのリモートデバイスのセットに関連する１つ以上の問題を決定するステップと、少なくともプロセッサが、１つ以上の問題の各々に対して修正動作を決定するステップと、少なくともプロセッサが、修正動作に基づいて、リモートデバイスのセットのための修正動作データ構造を生成するステップとを含む。
【００２０】
別の一実施形態によれば、修正動作データ構造はコードを含み、このコードは、リモートデバイスによって受信されて実行されると、１つ以上の問題のうちの少なくとも１つを軽減するようにアプリケーションを変更させる。
【００２１】
別の一実施形態によれば、修正動作データ構造はレポートを含み、このレポートは、（ｉ）リモートデバイスのセットに関連する１つ以上の問題と、（ｉｉ）１つ以上の問題に対して決定された修正動作とを特定する。
【００２２】
別の一実施形態によれば、アプリケーションアクティビティのセットを解析して、複数のリモートデバイスのうちのリモートデバイスのセットに関連する１つ以上の問題を決定するステップは、複数のリモートデバイスのうちの第１のリモートデバイスのアプリケーションアクティビティの第１のセットが第１の問題に関連しているか否かを決定するステップと、複数のリモートデバイスのうちの第２のリモートデバイスのアプリケーションアクティビティの第２のセットが第１の問題に関連しているか否かを決定するステップと、第１のリモートデバイスおよび第２のリモートデバイスが共に第１の問題に関連していると決定したことに応じて、第１の問題に関連させて、第１のリモートデバイスおよび第２のリモートデバイスを含むリモートデバイスのセットを生成するステップとを含む。
【００２３】
別の一実施形態によれば、コンピュータ実施方法はさらに、修正動作データ構造をリモートデバイスのセットの各リモートデバイスへ送信するステップを含む。
【００２４】
別の一実施形態によれば、コンピュータ実施方法はさらに、リモートデバイスのセットのための修正動作データ構造をリモートデバイスのセットの管理エンティティへ送信するステップを含む。
【００２５】
上述の概要は、本明細書で述べるシステムおよび／または方法のいくつかの態様の基本的な理解を提供するために、簡略化した概要を提示するものである。上述の概要は、本明細書で述べるシステムおよび／または方法の詳細な概観ではない。上述の概要は、重要な／必須の要素を指定すること、または本明細書で述べるシステムおよび／または方法の範囲を定義することを意図するものではない。その唯一の目的は、後述のより詳細な説明の前段階として、簡略化した形でいくつかの概念を提示することである。
【００２６】
本明細書に組み込まれ、本明細書の一部を成す添付図面は、本開示のさまざまなシステム、方法、および他の実施形態を示す。図示した要素の境界（例えば、ボックス、ボックス群、または他の形状）は、境界の一実施形態を表わすものであるということが理解されるであろう。ある実施形態では、１つの要素を複数の要素として実現してもよいし、複数の要素を１つの要素として実現してもよい。ある実施形態では、別の要素の内部構成要素として示す要素を外部構成要素として実現してもよいし、その逆であってもよい。また、要素は一定の縮尺ではない場合もある。
【図面の簡単な説明】
【００２７】
【図１】リモートデバイスのセットに関連する問題に対する修正動作を決定することに関連するシステムの実施形態を示す図である。
【図２】リモートデバイスのセットに関連する問題に対する修正動作を決定することに関連する方法の実施形態を示す図である。
【図３】アプリケーションアクティビティデータ構造の実施形態を示す図である。
【図４】エンティティコンピュータおよびグラフィカルユーザインターフェイスの実施形態を示す図である。
【図５】制御命令を含む修正動作インプリメンタ（implementer）の実施形態を示す図である。
【図６】表示画面およびグラフィカルユーザインターフェイスの実施形態を示す図である。
【図７】非一時的なコンピュータ可読媒体の実施形態を示す図である。
【図８】本開示の例示的なシステムおよび／または方法で構成されたコンピューティングシステムの実施形態を示す図である。
【図９】リモートデバイスのセットに関連する問題に対する修正動作を決定することに関連するシステムの実施形態を示す図である。
【発明を実施するための形態】
【００２８】
詳細な説明
本明細書では、リモートデバイスのセットに関連する問題に対する修正動作を決定することを提供するコンピュータ制御のシステムおよび方法を説明する。一実施形態では、複数のリモートデバイスの各々が１つ以上のアプリケーションを実行し得る。例えば、第１のリモートデバイスは第１のアプリケーションおよび第２のアプリケーションを実行し、第２のリモートデバイスは（異なるインスタンスの）第１のアプリケーションおよび第２のアプリケーションを実行し得る。
【００２９】
各リモートデバイスの動作は、さまざまな目的／結果を達成しようと試みながらさまざまな動作を実行することを含み得る。多くの場合、最初の動作は目的を達成するには不十分であり、目的が達成されるまで追加の動作を実行する。例えば、第１の目的／結果を達成するために第１のリモートデバイス上で第１のアプリケーションを動作させながら、第１のユーザは第１の一連動作を実行し、または第１の動作を実行した後に第２のアプリケーションに切り替えて第２の動作を実行するかもしれない。同様に、第１の目的／結果を達成するために第２のリモートデバイス上で第１のアプリケーションを動作させながら、第２のユーザは第１の一連動作を実行し、または第１の動作を実行した後に第２のアプリケーションに切り替えて第２の動作を実行するかもしれない。
【００３０】
都合の悪いことに、このようなアプリケーションのユーザは、その目的／結果を達成するにあたって著しい遅延および障害に直面する場合があり、目的を達成することに完全に失敗する場合もある。そのような遅延および失敗によって、アプリケーションへの満足度が低下し、最終的にはアプリケーションの使用が減ってしまうことになり得る。アプリケーションが所望の目的を技術的に遂行することが可能な場合であっても、そのような遅延および失敗が起こり得ることが理解されるであろう。
【００３１】
したがって、アプリケーションの性能を最適化するためには、アプリケーションを動作させているさまざまなリモートデバイス上で実行されている動作を解析して問題を特定するとともに、特定された問題に対処可能な修正動作を特定することが必要な場合がある。そうすることにより、より少ないアクティビティおよびリソースで目的を達成することができ、それによって効率およびリソース（例えば、メモリ、帯域幅、プロセッサ）の可用性を高め、電力使用量を減らすことができる。
【００３２】
図１を参照すると、リモートデバイスのセットに関連する問題に対する修正動作を決定することに関連するコンピュータ制御のシステム１００の一実施形態を示している。システム１００は、コンピュータ上で実行されるように構成され得るコントローラ１０５を備える。コントローラ１０５は、トラッキング要求１１０がエンティティコンピュータ１１５から受信されたことに基づいて起動されてもよい。エンティティコンピュータ１１５は、リモートデバイス上のアプリケーションプラットフォームの１つ以上のアプリケーションのアクティビティをトラッキング／監視することを要求するアプリケーションプラットフォームの管理者のコンピュータなどである。例えば、アプリケーションプラットフォームは、さまざまな顧客／企業によって商業目的で使用されるさまざまな実用性／生産性アプリケーションを提供し得る。このようなアプリケーションとしては、顧客セルフサービスアプリケーション、顧客ケアおよび課金アプリケーション、サービスオーダー管理アプリケーション、スマートグリッドゲートウェイアプリケーション、メータデータ管理アプリケーション、労働および資産管理アプリケーション、稼働装置管理アプリケーション、モバイルワーカー管理アプリケーション、流通管理システムアプリケーション、または停電管理システムアプリケーションなどがある。コントローラ１０５は、ネットワーク接続を介してトラッキング要求１１０を受信してもよい。
【００３３】
コントローラ１０５は、アプリケーションアクティビティデータ取得部１２０を利用して、リモートデバイス上の１つ以上のアプリケーションを有する一以上のユーザの体験／ストーリーを表わすデータを特定する（トラッキング要求１１０の）アクティビティ基準１２５を生成する。アクティビティ基準１２５は、トラッキング要求１１０に従ってトラッキングすべき１つ以上のアプリケーション（例えば、顧客ケアおよび課金アプリケーションならびに労働および資産管理アプリケーション）、またはトラッキングすべき１つ以上のアプリケーションを有するユーザのアクティビティ／対話の種類を指定し得る。アクティビティ／対話の種類としては、例えば、クリック、キー操作、動作の実行、グラフィカル表示の変更、またはユーザ要素の選択などがある。
【００３４】
トラッキング要求１１０の対象となるデータレコードを特定するために、アクティビティ基準１２５を用いてアプリケーションアクティビティデータ構造１３０を解析する。アプリケーションアクティビティデータ構造１３０は、アプリケーションを有するユーザのアクティビティ／対話のデータレコードを含む。例えば、第１のリモートデバイス上の第１のアプリケーションのクリック、動作、および変更、第２のリモートデバイス上の第２のアプリケーションの選択、ならびに第３のリモートデバイス上の第３のアプリケーションの動作を示すデータレコードがアプリケーションアクティビティデータ構造１３０に集約され、格納されてもよい。
【００３５】
コントローラ１０５は、アプリケーションアクティビティデータ構造１３０を用いて、アクティビティ基準１２５に合致するアプリケーションを有するユーザのアクティビティ／対話を表わすアプリケーションアクティビティデータ１３５を生成する。例えば、第１のアクティビティ基準（例えば、トラッキング要求１１０がトラッキングの対象とするアプリケーションの種類）および第２のアクティビティ基準（例えば、トラッキングすべきアクティビティの種類）を用いてアプリケーションアクティビティデータ構造１３０をサーチしてもよい。ある例では、アプリケーションアクティビティデータ１３５は、アクティビティ基準１２５のうちの少なくとも１つを満たすアクティビティ（例えば、第１のアクティビティ基準または第２のアクティビティ基準のうちの少なくとも１つに合致するいずれかのアクティビティ）を表わすものを含み得る。他の例では、アプリケーションアクティビティデータ１３５は、アクティビティ基準１２５のうちの２つ以上または全部を満たすアクティビティ（例えば、第１のアクティビティ基準および第２のアクティビティ基準の両方に合致するアクティビティ（第１のアクティビティ基準または第２のアクティビティ基準のうちの１つのみに合致するアクティビティではない））を表わすものを含み得る。
【００３６】
コントローラ１０５は、アプリケーションアクティビティデータ解析部１４０を利用してアプリケーションアクティビティデータ１３５を解析し、複数のリモートデバイスの各々に関連するアプリケーションアクティビティのセットを決定する。例えば、第１のリモートデバイスに関連するアプリケーションアクティビティの第１のセットをアプリケーションアクティビティデータ１３５の中から特定するとともに、第２のリモートデバイスに関連するアプリケーションアクティビティの第２のセットをアプリケーションアクティビティデータ１３５の中から特定し得る。
【００３７】
アプリケーションアクティビティデータのセットを解析して、リモートデバイスのセットに関連する１つ以上の問題を決定してもよい。ある例では、アプリケーションアクティビティデータの各セットを個別に解析して問題を決定してもよい。例えば、アプリケーションアクティビティの第１のセットの解析を行なって第１のリモートデバイスに関連する第１の問題を決定し、一方でアプリケーションアクティビティの第２のセットの解析を行なって第２のリモートデバイスに関連する第２の問題を決定してもよい。ある例では、アプリケーションアクティビティデータの複数のセットをまとめて解析して問題を決定してもよい。例えば、アプリケーションアクティビティの第１のセットおよびアプリケーションアクティビティの第２のセットの解析を（まとめて）行なって、第１のリモートデバイスおよび第２のリモートデバイスに関連する第３の問題を決定してもよい。
【００３８】
ある例では、リモートデバイスが共通の問題に関連していることに基づいて、それらのリモートデバイスをセットに分類してもよい。例えば、アプリケーションアクティビティの第１のセットを有する第１のリモートデバイスおよびアプリケーションアクティビティの第２のセットを有する第２のリモートデバイスは、これらのリモートデバイス（およびそのアプリケーションアクティビティ）が共に（共通の）第３の問題に直面していると決定したことに応じて、これらのリモートデバイスを、ある例示的なリモートデバイスのセットにまとめてもよい。第３の問題に直面していない他のリモートデバイスは、当該リモートデバイスの例示的なセットには含まれないが、（共通の）第４の問題に関連して生成された他のリモートデバイスのセットに含まれるかもしれない。リモートデバイスの各セットのアプリケーションアクティビティをまとめて解析して、対応するリモートデバイスのセットの１つ以上の問題を決定してもよい。
【００３９】
コントローラ１０５は、アプリケーションアクティビティデータ解析部１４０を利用して、１つ以上の問題の各々に対して修正動作を決定する。例えば、第１の問題に対する適切な修正動作としてアプリケーションへの新たな特徴の導入を決定し、第２の問題に対する適切な修正動作としてグラフィカルユーザインターフェイス要素の外観の変更を決定し、第３の問題に対する適切な修正動作としてアプリケーションにおける古い特徴の削除を決定してもよい。
【００４０】
ある例では、修正動作の決定は、特定された各問題がデータベース内の対応の修正動作に合致することに基づいてなされる。ある例では、修正動作の決定は、各問題に対して１つ以上の修正動作を行なった結果得られることが予測される値の比較に基づいてなされる。例えば、第１の修正動作を行なった結果得られることが予測される第１の値を、第２の修正動作を行なった結果得られることが予測される第２の値と比較して、高い方の値に関連する修正動作を選択してもよい。
【００４１】
コントローラ１０５は、修正動作インプリメンタ１５０に提供し、それによって修正動作インプリメンタ１５０を制御する修正命令１４５を生成する。修正命令１４５によって、問題に対応する修正動作を修正動作インプリメンタ１５０に実行させてもよい。修正命令１４５は、コードを含む修正動作データ構造を含む。このコードは、アプリケーションを実行中の１つ以上のリモートデバイスに送信されると、少なくとも１つの問題を克服または軽減するように当該アプリケーションを変更するものである。例えば、修正命令１４５は、第１のアプリケーションに新たな特徴を追加するアップグレードの送信、第２のアプリケーションにおいてグラフィカルユーザインターフェイス要素を変更するパッチの送信、または第１のアプリケーションおよび第２のアプリケーションにおいて古い特徴を削除する（もしくは、第１のアプリケーションと第２のアプリケーションとをつなぐ中間アプリケーションを生成する）パッチの送信を行なわせてもよい。
【００４２】
修正動作のためのコードを、当該修正動作に対応する問題に関連する対応のリモートデバイスのセットに送信してもよい。例えば、新たな特徴を追加するアップグレードをリモートデバイスの第１のセットに送信してもよいし、グラフィカルユーザインターフェイス要素を変更したパッチをリモートデバイスの第２のセットに送信してもよいし、古い特徴を削除するパスをリモートデバイスの第３のセットに送信してもよい。この例では、第１のアプリケーションおよび第２のアプリケーションを実行するリモートデバイスを含むリモートデバイスの第３のセットは、第１のアプリケーションを実行するリモートデバイスの第１のセットのうちの少なくとも一部のリモートデバイスと、第２のアプリケーションを実行するリモートデバイスの第２のセットのうちの少なくとも一部のリモートデバイスとを含み得る。
【００４３】
ある例では、対応する問題に直面していると決定されたリモートデバイスの管理エンティティに、修正命令１４５を送信する。管理エンティティは、アプリケーションの制作者またはサービスプロバイダなど、複数のリモートデバイス上のアプリケーションを提供または運用するサービスを含み得る。管理エンティティは、修正命令１４５を解析し、その解析に基づいて、問題に対処するためのコードを生成することができる。例えば、生成されるコードは、管理エンティティがリモートデバイスに送信し得るアプリケーション用のパッチまたはアップグレードに対応するものであってもよいし、１つ以上のアプリケーションに使用されるフレームワークのためのパス、アップグレードまたは処置に対応するものであってもよい。
【００４４】
ある例では、修正命令１４５は、レポートを含む修正動作データ構造を含む。レポートは、リモートデバイスのセットに関連して特定された問題を特定するとともに、当該問題に対処するものとして決定された修正動作を特定する。例えば、修正命令１４５によって、修正動作インプリメンタ１５０は、問題に関連するアプリケーションアクティビティのセットのグラフィカル表示を変更し、それによって、当該問題に関連するアプリケーションアクティビティのセットのグラフィカル表示を（問題に関連していない）他のアプリケーションアクティビティのグラフィカル表示と視覚的に区別するようにしてもよい。修正動作インプリメンタ１５０の制御によって、さまざまなメニューやディスプレイのサーチおよび検索にかかる時間が削減または排除され、トラッキング要求１１０をより早く特定することができる。それにより、コンピュータ表示の速度および使い勝手が向上する。
【００４５】
図９は、リモートデバイスのセットに関連する問題に対する修正動作を決定することに関連するシステム９００の一実施形態を示す図である。システム１００はこの中で動作する。クライアント９０５は、トラッキング要求１１０に従ってトラッキングされるリモートデバイスである。クライアント９０５のアプリケーションアクティビティデータは、ネットワーク接続を介してウェブサービス９１０に送信される。ウェブサービス９１０は、クラウドネイティブ解析サービスを実行するように構成され得る。クラウドネイティブ解析サービスは、ウェブアクティビティ、モバイルアクティビティ、およびイベントアクティビティに関連するデータを収集および処理するものであり得る。
【００４６】
ウェブサービス９１０は、受信ボックス９２０、処理データ構造９２５、送信ボックス９２５、またはアーカイブ９３０などのさまざまなデータ構造を通じてアクティビティデータを処理する。ウェブサービス９１０のプログラム９３５は、受信ボックス９２０内または処理データ構造９２５内のアクティビティデータを用いて、ＭａｐＲｅｄｕｃｅなどのプログラミングモデルのデータセットを生成してもよい。Ｅｘｔｒａｃｔ／Ｔｒａｎｓｆｏｒｍ／Ｌｏａｄ（ＥＴＬ）処理は、データセットを引き出し、そのデータのうちの少なくとも一部を送信ボックス９２５に格納する。ある実施形態では、ＥＴＬ処理はアセットデータ構造９４０からもデータを引き出し、そのデータのうちの少なくとも一部を送信ボックス９２５に格納する。プログラム９３５は、定められたルールに基づいて、アクティビティデータの一部を処理データ構造９２５からアーカイブ９３０に移す。アクティビティデータの各部分は、その部分が対応するアプリケーションに基づいてソートされ、ソートの後、送信ボックス９２５に格納される。
【００４７】
データセンター９１５は、ソートされたアクティビティデータを、ネットワーク接続を介してウェブサービス９１０の送信ボックス９２５から取得する。データセンター９１５のプログラム９４５は、ソートされたアクティビティデータをデータセンター９１５のデータウェアハウス９５０に格納する。ある実施形態では、プログラム９４５は、ソートされたアクティビティデータをデータウェアハウス９５０に格納する前に変更またはフォーマットする。
【００４８】
ある実施形態では、エンティティコンピュータ１１５およびコントローラ１０５は、両方ともデータセンター９１５の構成要素である。他の実施形態では、エンティティコンピュータ１１５はデータセンター９１５の構成要素であるが、コントローラ１０５はウェブサービス９１０の構成要素である。ある実施形態では、データセンター９１５のデータウェアハウス９５０は、アプリケーションアクティビティデータ構造１３０を含む。
【００４９】
図２は、リモートデバイスのセットに関連する問題に対する修正動作を決定することに関連する、コンピュータ実施方法２００の一実施形態を示す図である。一実施形態では、方法２００は、コントローラ１０５がコンピュータ８０５（図８に示す）のさまざまなコンピューティングリソースを利用することによって実行される。コンピューティングリソースの例としては、命令を実行するためのプロセッサ８１０、その内部で制御命令が生成されるデータ構造を格納するためのメモリ８１５および／またはディスク８３０、および／または、データ構造をネットワークを介してリモートコンピュータに送信するためのネットワークハードウェアなどがある。方法２００は、エンティティコンピュータ１１５からのトラッキング要求１１０の受信など、さまざまなトリガーに基づいて開始され得る。ある例では、サーバ（コントローラ１０５のホストとして働く）がエンティティコンピュータ１１５からトラッキング要求１１０を受信する。
【００５０】
図４は、トラッキング要求１１０の生成に使用され得るエンティティコンピュータ１１５上のグラフィカルユーザインターフェイス４０５の一実施形態を示す図である。グラフィカルユーザインターフェイス４０５は、トラッキング要求１１０の一般的な情報（例えば、名前または時間範囲）を選択するユーザ入力を受け付けるように構成された第１のグラフィカルオブジェクト４１０、トラッキング要求１１０が関係するアプリケーション基準（コールセンター管理アプリケーション）を選択するユーザ入力を受け付けるように構成された第２のグラフィカルオブジェクト４１５、および、トラッキング要求１１０のリモートデバイス基準（米国のすべてのリモートデバイス）を選択するユーザ入力を受け付けるように構成された第３のグラフィカルオブジェクト４２０を表示するように制御される。リモートデバイス基準は地理的位置、物理的距離、共通のネットワーク、または共通の企業に対応し得ることが理解されるであろう。
【００５１】
グラフィカルユーザインターフェイス４０５は、第１のグラフィカルオブジェクト４１０、第２のグラフィカルオブジェクト４１５、および第３のグラフィカルオブジェクト４２０について受け付けたユーザ入力に基づいて、さらに第４のグラフィカルオブジェクト４２５を表示するように制御される。第４のグラフィカルオブジェクト４２５は、第５のグラフィカルオブジェクト４３０および第６のグラフィカルオブジェクト４３５を表示するように構成されている。第５のグラフィカルオブジェクト４３０は、トラッキング要求１１０に適用可能な１つ以上のアプリケーション（またはアプリケーションの組合せ）を表示するように構成されている。ある例では、第５のグラフィカルオブジェクト４３０は、複数のアプリケーション（またはアプリケーションの組合せ）の中から少なくとも１つのアプリケーション（またはアプリケーションの組合せ）を選択するユーザ入力を受け付けるように構成されている。
【００５２】
第６のグラフィカルオブジェクト４３５は、トラッキング要求１１０に適用可能な１つ以上のリモートデバイス（またはそのカテゴリー）を表示するように構成されている。ある例では、第６のグラフィカルオブジェクト４３５は、複数のリモートデバイス（またはそのカテゴリー）の中から少なくとも１つのリモートデバイス（またはそのカテゴリー）を選択するユーザ入力を受け付けるように構成されている。
【００５３】
図２に戻って、２０５では、複数のリモートデバイスからアプリケーションアクティビティデータ１３５を受信する。ある例では、サーバがアプリケーションアクティビティデータ１３５を受信する。命令（例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）命令）をリモートデバイス上のアプリケーション（例えば、クライアントブラウザ）に投入し、その命令を用いて、各リモートデバイスからアプリケーションアクティビティデータ１３５を収集してもよい。ある例では、データ処理パイプライン（例えば、Ｅｘｔｒａｃｔ／Ｔｒａｎｓｆｏｒｍ／Ｌｏａｄ（ＥＴＬ）パイプライン）を用いてアクティビティデータをキュレートしてもよい。ある例では、アプリケーションアクティビティデータ１３５をアプリケーションアクティビティデータ構造１３０内に集約して、それらのアプリケーションアクティビティデータ１３５をアプリケーションアクティビティデータ構造１３０からコントローラ１０５へ送信する。さまざまなリモートデバイスおよびアプリケーションから受信されたアプリケーションアクティビティデータ１３５は、共通のフォーマットを有する場合もあるし、あるいは異なるフォーマットを有し、アプリケーションアクティビティデータ構造１３０に格納される前に共通のフォーマットに変換される場合もある。
【００５４】
アプリケーションアクティビティデータ構造１３０の一実施形態を図３に示す。この実施形態は、複数のアプリケーション３０５のデータレコードと、複数のアクティビティ３１０と、それぞれのアクティビティが実行されたデバイス３１５と、複数のアクティビティ３１０のうちの１つ以上が実行された時間を示すタイムスタンプ３２０とを含む。
【００５５】
ある例では、トラッキングされてアプリケーションアクティビティデータ構造１３０に格納され得るアクティビティは、次のものを含み得る。すなわち、各ユーティリティに関連するユーザの数、（例えば、アプリケーションの使用における）ユーザの熟練レベル、サービスへのログインの頻度、リモートデバイス上で各セッションにウェブサイトまたはアプリケーションに費やす時間の長さ、リモートデバイス上で使用する１つ以上のモジュールの役割、リモートデバイス上で選択した特徴（例えば、ダッシュボード、エクスポート特徴、または探索（explore）特徴）にアクセスする頻度、リモートデバイス上でどのタブにアクセスする時間が最も長いか、リモートデバイスで選択した特徴（フィルタ、データセット、計算、またはシナリオ）に費やす時間の長さ、リモートデバイス上で関係するポイントの情報（兄弟情報または親情報）をチェックする頻度、どのフィルタをリモートデバイス上で最もよく使用するか、各フィルタの種類（単純、詳細、またはアルゴリズム）の使用割合はどのくらいか、どのパネルをリモートデバイス上で使用するか、どのドロップダウンをリモートデバイス上で使用するか、どのくらいの頻度でリモートデバイス上でリストビューにアクセスするか、どのくらいの頻度でパネルをリモートデバイスからエクスポートするか、エクスポートされるパネルはリストビューとグラフビューのいずれであるか、リモートデバイスがデフォルト設定（個々のポイント、ポップアップ、または近隣のポイントの識別子）に加えてマップ上に表示する情報、最もよくエクスポートする情報の種類、どのくらいの頻度でデータをエクスポートせずにリモートデバイス上で閲覧するか、データをエクスポートするために使用するフォーマット、どのドリルダウンパネルをリモートデバイス上で最もよく使用するか、異なる情報を閲覧するためにサマリビューのどのパネルをリモートデバイス上で変更するか、どの情報をリモートデバイス上で選択するか、または、どのくらいの頻度でリモートデバイス上でリンクを使用するか、などである。
【００５６】
図２に戻って、２１０では、アプリケーションアクティビティデータ１３５を解析して、複数のリモートデバイスの各々に関連するアプリケーションアクティビティのセットを決定する。共通のウェブブラウザ、ＩＰアドレス、クラウドプロバイダ、または顧客アカウントに関連するアプリケーションアクティビティを集約することによって、アプリケーションアクティビティの各セットを決定してもよい。アプリケーションアクティビティデータ１３５をスキャンしてボットまたはスクレイパーに関連するパターンを特定し、特定されたパターンに関連するアクティビティデータを削除してもよい。これにより、データにおけるノイズが除去され、解析の精度が高まる。ある例では、複数のリモートデバイスが共通の特性を有している（例えば、同じアプリケーションまたは同じアプリケーションの組合せを実行している）と決定されたことに基づいて、複数のリモートデバイスのアプリケーションアクティビティを集約してアプリケーションアクティビティの単一セットとすることもできる。ある例では、アプリケーションアクティビティのセットは、リモートデバイス上の１つ以上のアプリケーションを有する一以上のユーザの体験／ストーリーを表わすものであり、ネットワーク通信を介して取得される。
【００５７】
２１５では、アプリケーションアクティビティのセットを解析して、複数のリモートデバイスのうちのあるリモートデバイスのセットに関連する１つ以上の問題を決定する。ある例では、第１の問題（または問題のセット）は、第１のアプリケーションによって第１のユーザデバイス上で実行された１つ以上のアクティビティの第１の組合せに基づいて決定してもよい。例えば、デバイス（３）がコールセンター管理アプリケーションにおけるアカウントツリーを表示させ、このコールセンター管理アプリケーションにおけるアカウントツリーの枝を開いたことを示す図３のデータレコードに基づいて、デバイス（３）のユーザが第１の問題に直面すること、および／または第１の目的／結果の遂行を試みることが起こりそうであると決定してもよい。
【００５８】
ある例では、第２の問題（または問題のセット）は、 第１のユーザデバイス上の第１のアプリケーション上および第２のアプリケーション上で実行された１つ以上のアクティビティの第２の組合せに基づいて決定してもよい。例えば、デバイス（３）がコールセンター管理アプリケーションにおけるアカウントツリーを表示させ、このコールセンター管理アプリケーションにおけるアカウントツリーの枝を開き、顧客課金アプリケーションにおける顧客プロフィールを閲覧したことを示す図３のデータレコードに基づいて、デバイス（３）のユーザが第２の問題に直面すること、および／または第２の目的／結果の遂行を試みることが起こりそうであると決定してもよい。
【００５９】
ある例では、アプリケーションアクティビティのセットを解析して、１つ以上の問題がリモートデバイスのセットに関連している確率を決定する。閾値を超えた確率に関連する１つ以上の問題を選択してもよいし、それぞれの確率に基づいて問題をランク付けし、最も上位にランク付けされた問題のうちの１つ以上を選択してもよい。
【００６０】
ある例では、ある問題を示すアプリケーションアクティビティが閾値の数のリモートデバイスで特定されたと決定したことに応じて、その問題がリモートデバイス（またはリモートデバイスのセット）に関連していると決定する。例えば、第１の問題に対応するアクティビティ（または類似のアクティビティ）が少なくとも５つのリモートデバイスで実行されたと決定したことに応じて、第１の問題が第１のリモートデバイス（またはリモートデバイスの第１のセット）に関連していると決定してもよい。
【００６１】
リモートデバイスの数の閾値は、あらゆる問題に適用してもよいし、問題の種類に基づいて変化させてもよい（動的に決定してもよい）。例えば、グラフィカルユーザインターフェイス欠陥の疑いに対応する問題の閾値は、特徴欠落の疑いに対応する問題よりも低くしてもよい。
【００６２】
ある例では、各問題についてのリモートデバイスの数の閾値は、その問題に関連する修正動作の種類に基づいて変化させてもよい（動的に決定してもよい）。例えば、パッチをインストールすればよいだけの修正動作に関連する問題の閾値は、完全なアップグレードまたは再インストールを要する問題よりも低くしてもよい。別の例では、リモートデバイスの数の閾値は、問題の修正動作の結果として変更、追加、または削除されることが見込まれるコードの量に基づいて、問題ごとに動的に決定してもよい。
【００６３】
図２に戻って、２２０では、１つ以上の問題の各々に対して修正動作を決定する。修正動作は、例えばパッチまたはアップグレードなど、コードの変更を含んでもよい。ある例では、修正動作は、問題および対応するアクティビティを示すレポートを生成することを含んでもよい。レポートは、定義／要求された対象層に適合するリモートデバイスのセットに固有のものであってもよいし、共通の／類似の動作を実行した複数のユーザ、または同じアクティビティに基づく特性を共有する複数のユーザに固有のものであってもよい。ある例では、修正動作は、問題、およびその問題を回避するためにリモートデバイスに対して（例えばユーザが）取り得る措置を説明する修正ガイダンス／フィードバックの生成を含んでもよい。
【００６４】
２２５では、修正動作に基づいて、リモートデバイスのセットのための修正動作データ構造を生成する。ある例では、修正動作を解析して、修正動作の各々が対応の問題に対処できる確率を決定する。閾値を超えた確率に関連する１つ以上の修正動作を修正動作データ構造に含めるものとして選択してもよいし、それぞれの確率に基づいて修正動作をランク付けし、最も上位にランク付けされた修正動作のうちの１つ以上を選択してもよい。例えば、第１の問題について３つの修正動作を決定した場合、３つのうちで第１の問題に最も対処できそうである、および／または所望の目的／結果を最も達成しそうであると決定された修正動作を選択し、その他の修正動作を破棄してもよい。
【００６５】
このように、修正動作データ構造が含み得るコードは、１つ以上のリモートデバイスに送信され、実行されると、当該リモートデバイスに、問題を克服するように既存のアプリケーションコードを変更させる。ある例では、コードは、サーバまたはリモートデバイスのアプリケーションのマネージャに送信され得る。サーバまたはリモートデバイスのアプリケーションのマネージャは、コードを各リモートデバイスに再び送信してもよく（または、リモートデバイスごとにコードをカスタマイズし、カスタマイズしたコードを各リモートデバイスに送信してもよく）、または、サーバにおいてフレームワークコードを変更してもよい。
【００６６】
ある例では、修正動作データ構造は、サーバまたはアプリケーションのマネージャに送信されるレポートを含んでもよいし、または、対応する問題を克服するために各リモートデバイス上で実行すべき動作を（段階的な命令で）説明し得る修正ガイダンスを含んでもよい。レポートは、１つ以上の製品にまたがるアクティビティの行程をリモートデバイスによって個々のレベルで示してもよいし、複数の行程を総合レベルで示してもよい。
【００６７】
修正動作データ構造を用いて修正命令１４５を生成することが可能である。修正命令１４５の一実施形態を図５に示す。この実施形態は、第１のコードをデバイス（３）に送信させる第１の命令５１０と、第２のレポートをデバイス（２）に関連する管理デバイスに送信させる第２の命令５１５と、修正ガイダンス／フィードバックをデバイス（１）に送信させる第３の命令５２０とを含む。修正ガイダンス／フィードバックは、生成されてデバイス（１）の表示画面６００に表示されてもよい。
【００６８】
表示画面６００の制御の一実施形態を図６に示す。表示画面６００は、ガイダンスグラフィカルユーザインターフェイス６０５を表示する。ガイダンスグラフィカルユーザインターフェイス６０５は、検出されて修正ガイダンス／フィードバックの生成に用いられたデバイス（１）上でのアクティビティをグラフィカルに表わすグラフィカルオブジェクト６１０を含む。ガイダンスグラフィカルユーザインターフェイス６０５はさらに、デバイス（１）のアクティビティに基づいて追求／試行が決定された目的／結果をグラフィカルに表わすグラフィカルオブジェクト６１５を含む。ガイダンスグラフィカルユーザインターフェイス６０５はさらに、デバイス（１）が目的／結果に到達することを阻害していると考えられる問題をグラフィカルに表わすグラフィカルオブジェクト６２０を含む。ガイダンスグラフィカルユーザインターフェイス６０５はさらに、問題を克服して目的／結果に到達するためにデバイス（１）上で取り得る対策などのガイダンス／フィードバックをグラフィカルに表わすグラフィカルオブジェクト６２５を含む。表示画面６００の制御によって、目的６１５に関連するグラフィカルオブジェクトをより早く特定することができる。それにより、コンピュータ表示の速度および使い勝手が向上する。
【００６９】
ある例では、問題を決定するにあたって、アプリケーションアクティビティを解析しない場合もある。アプリケーションアクティビティを解析して、さまざまなリモートデバイスにまたがる共通のアクティビティを決定し、各アクティビティを実行したリモートデバイスの数または割合、および、リモートデバイスの対象層の、または技術上の識別子を特定するレポートを生成してもよい。
【００７０】
ある例では、修正動作データ構造の生成は、リモートデバイスがアプリケーションをどのように使用しているかをエンティティ（例えば、ユーティリティエンティティ）が理解するための助けとなり得る。このような生成はさらに、データ駆動型の製品開発を支援し得る。例えば、エンティティは、修正動作データ構造に基づいて、実際の使用パターンに基づいてバグ処置および特徴に優先順位を付けてもよいし、何れのアプリケーション（およびアプリケーションの何れのバージョン）に継続的なサポートを保証するかを決定してもよいし、新たな特徴をクライアントが実際に使用しているか否かを決定してもよい。アプリケーションのセットが顧客基盤との関わりにどのように影響しているかを示す解析をエンティティに提供することによって、アプリケーションのセットに基づく顧客満足および契約数の向上に関する測定基準および実行可能な洞察を提供することができる。
【００７１】
図７は、例示的な非一時的なコンピュータ可読媒体７０５を含むシナリオ７００を示す。一実施形態では、本明細書に記載の構成要素のうちの１つ以上が、非一時的なコンピュータ可読媒体７０５に格納されたプログラムモジュール（例えば、コントローラ１０５）として構成されている。プログラムモジュールは、格納された命令（例えば、プロセッサ実行可能命令７１０）を含んで構成されている。この格納された命令は、少なくともプロセッサ（例えば、プロセッサ７１５）によって実行されると、コンピューティングデバイスに本明細書に記載の対応する機能を実行させる。例えば、非一時的なコンピュータ可読媒体７０５に格納されたコントローラ１０５の機能は、図２の方法２００の実施形態７４０を実施するためのプロセッサ実行可能命令７１０として、プロセッサ７１５によって実行されてもよい。
【００７２】
非一時的な機械可読媒体７０５は、プロセッサ実行可能命令７１０を含む。プロセッサ実行可能命令７１０は、プロセッサ７１５によって実行されると、本明細書の提示内容のうちの少なくとも一部を実行させる。非一時的な機械可読媒体７０５は、メモリ半導体（例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、および／または同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）の技術を利用する半導体）、ハードディスクドライブのプラッタ、フラッシュメモリデバイス、または磁気もしくは光学ディスク（例えば、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、またはフロッピー（登録商標）ディスク）を含む。例示的な非一時的な機械可読媒体７０５は、コンピュータ可読データ７２０を格納する。コンピュータ可読データ７２０は、デバイス７３５の読取機７３０（例えば、ハードディスクドライブの読取ヘッド、またはソリッドステートストレージデバイス上で呼び出された読取動作）による読取７２５が行なわれると、プロセッサ実行可能命令７１０を発する。ある実施形態では、プロセッサ実行可能命令７１０は、実行されると、例えば、図２の例示的な方法２００のうちの少なくとも一部などの動作を実行させる。ある実施形態では、プロセッサ実行可能命令７１０は、例えば、図１の例示的なシステム１００のうちの少なくとも一部などのシステムを実現するように構成されている。
【００７３】
図８は、本明細書に記載の例示的なシステムおよび方法の１つ以上、ならびに／または均等物を用いて構成されているおよび／またはプログラムされている例示的なコンピューティングデバイスのシナリオ８００を示す。例示的なコンピューティングデバイスは、バス８２５によって動作可能に接続されたプロセッサ８１０、メモリ８１５、および入出力ポート８２０を含むコンピュータ８０５であり得る。一例では、コンピュータ８０５は、図１および図２に示すシステム１００および／または方法２００を容易にするように構成されたコントローラ１０５のロジックを含み得る。他の例では、コントローラ１０５のロジックは、ハードウェア、命令が格納された非一時的なコンピュータ可読媒体７０５、ファームウェア、および／またはそれらの組合せで実現され得る。コントローラ１０５のロジックはバス８２５に取付けられたハードウェア構成要素として示されているが、他の実施形態では、コントローラ１０５のロジックは、プロセッサ８１０に実装されてもよいし、メモリ８１５に格納されてもよいし、またはディスク８３０に格納されてもよいことが理解されるべきである。
【００７４】
一実施形態では、コントローラ１０５のロジックまたはコンピュータ８０５は、説明した動作を実行するための手段（例えば、構造：ハードウェア、非一時的なコンピュータ可読媒体、ファームウェア）である。ある実施形態では、コンピューティングデバイスは、クラウドコンピューティングシステムにおいて動作するサーバ、ＳａａＳ（Software as a Service）アーキテクチャで構成されたサーバ、スマートフォン、ラップトップ、タブレットコンピューティングデバイスなどであり得る。
【００７５】
当該手段は、例えば、ルールに基づくソースの割当て順位付けを行なうようにプログラムされた特定用途向け集積回路（ＡＳＩＣ）として実現され得る。また、当該手段は、メモリ８１５に一時的に記憶された後にプロセッサ８１０によって実行されるデータ８４５としてコンピュータ８０５に与えられる、格納されたコンピュータ実行可能命令として実現され得る。
【００７６】
また、コントローラ１０５のロジックは、ルールに基づくソースの割当て順位付けを行なうための手段（例えば、ハードウェア、実行可能命令を格納している非一時的なコンピュータ可読媒体７０５、ファームウェア）を提供し得る。
【００７７】
コンピュータ８０５の例示的な構成を大まかに説明すると、プロセッサ８１０は、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを含むさまざまなプロセッサであり得る。メモリ８１５は揮発性メモリおよび／または不揮発性メモリを含み得る。不揮発性メモリは、例えば、読出専用メモリ（ＲＯＭ）、プログラマブル読出専用メモリ（ＰＲＯＭ）などを含み得る。揮発性メモリは、例えば、ランダムアクセスメモリ（ＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）などを含み得る。
【００７８】
ディスク８３０は、例えば、入出力（Ｉ／Ｏ）インターフェイス（例えばカード、デバイス）８３５および入出力ポート８２０を介してコンピュータ８０５に動作可能に接続され得る。ディスク８３０は、例えば、磁気ディスクドライブ、ソリッドステートディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｚｉｐドライブ、フラッシュメモリカード、メモリスティックなどであり得る。さらに、ディスク８３０は、ＣＤ−ＲＯＭドライブ、ＣＤ−Ｒドライブ、ＣＤ−ＲＷドライブ、ＤＶＤ  ＲＯＭなどであり得る。メモリ８１５は、例えばプロセス８４０および／またはデータ８４５を格納可能である。ディスク８３０および／またはメモリ８１５は、コンピュータ８０５のリソースを制御して割当てるオペレーティングシステムを格納可能である。
【００７９】
コンピュータ８０５は、Ｉ／Ｏインターフェイス８３５および入出力ポート８２０を介して入出力（Ｉ／Ｏ）デバイスと対話し得る。入出力デバイスは、例えば、キーボード、マイク、ポインティングおよび選択デバイス、カメラ、ビデオカード、ディスプレイ、ディスク８３０、ネットワークデバイス８５０などであり得る。入出力ポート８２０は、例えば、シリアルポート、パラレルポート、およびＵＳＢポートを含み得る。Ｉ／Ｏコントローラ８５５がＩ／Ｏインターフェイス８３５をバス８２５に接続してもよい。
【００８０】
コンピュータ８０５はネットワーク環境で動作可能であり、したがってＩ／Ｏインターフェイス８３５および／またはＩ／Ｏポート８２０を介してネットワークデバイス８５０に接続され得る。ネットワークデバイス８５０を介して、コンピュータ８０５はネットワークと対話し得る。ネットワークを介して、コンピュータ８０５はリモートコンピュータに論理的に接続され得る。コンピュータ８０５が対話し得るネットワークは、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）および他のネットワークを含むが、これらに限定されない。
【００８１】
別の実施形態では、上記方法および／またはこれらの方法の均等物は、コンピュータ実行可能命令で実現してもよい。ゆえに、一実施形態では、非一時的なコンピュータ可読媒体／記憶媒体は、アルゴリズム／実行可能アプリケーションのコンピュータ実行可能命令が格納されて構成されている。このアルゴリズム／実行可能アプリケーションは、マシンによって実行されると、上記方法をこのマシン（および／または関連する構成要素）に実行させる。例示的なマシンは、プロセッサ、コンピュータ、クラウドコンピューティングシステムにおいて動作するサーバ、ＳａａＳ（Software as a Service）アーキテクチャで構成されたサーバ、スマートフォンなどを含むが、これらに限定されない。一実施形態では、コンピューティングデバイスは、開示の方法のうちのいずれかを実行するように構成された１つ以上の実行可能アルゴリズムで実現される。
【００８２】
１つ以上の実施形態では、開示の方法またはそれらの方法の均等物は、その方法を実行するように構成されたコンピュータハードウェアによって、または非一時的なコンピュータ可読媒体に格納されたモジュールに具現化されたコンピュータ命令によって、実行される。この命令は、コンピューティングデバイスの少なくともプロセッサによって実行されると方法を行なうように構成された実行可能アルゴリズムとして構成される。
【００８３】
説明を簡潔にするために、図面に示されている方法論はアルゴリズムの一連のブロックとして図示され説明されているが、方法論はブロックの順序に限定されないことが理解されるべきである。いくつかのブロックは、図示され説明されたものと異なる順序で、および／または他のブロックと同時に起こり得る。また、例示的な方法論を実現するために、図示されたすべてのブロックよりも少ないブロックを使用する場合もある。ブロックは組合せてもよく、または複数の動作／構成要素に分離してもよい。さらに、追加のおよび／または代替の方法論では、ブロックに示されていない追加の動作を用いてもよい。
【００８４】
以下に、本明細書で使用される選択された用語の定義を記載する。定義は、用語の範囲に含まれ実現のために使用し得る構成要素のさまざまな例および／または形態を含む。例は、限定を意図したものではない。定義は用語の単数形も複数形も含み得る。
【００８５】
「一実施形態」、「実施形態」、「一例」、「例」等と述べる場合、そのように説明された実施形態または例が、特定の特徴、構造、特性、性質、要素、または限定を含み得るものの、すべての実施形態または例が必ずしもその特定の特徴、構造、特性、性質、要素、または限定を含むとは限らないことを示す。さらに、「一実施形態では」という表現を繰返して使用する場合、これは必ずしも同じ実施形態を指すとは限らないが、同じ実施形態を指す場合もある。
【００８６】
本明細書で使用される「データ構造」は、メモリ、ストレージデバイス、またはその他のコンピュータ制御のシステムに格納された、コンピューティングシステム内のデータの組織である。データ構造は、例えば、データフィールド、データファイル、データアレイ、データレコード、データベース、データテーブル、グラフ、ツリー、リンクされたリスト等のうちのいずれか１つであればよい。データ構造は、他の多数のデータ構造から形成されこれらデータ構造を含み得る（例えば、データベースは多数のデータレコードを含む）。他の実施形態に従うと、データ構造の他の例も同じく可能である。
【００８７】
本明細書で使用される「コンピュータ可読媒体」または「コンピュータ記憶媒体」は、実行されたときに、開示の機能のうちの１つ以上を実行するように構成された命令および／またはデータを格納する非一時的な媒体を指す。ある実施形態では、データが命令として機能する場合もある。コンピュータ可読媒体は、不揮発性媒体および揮発性媒体などの形態を取り得るが、これらに限定されない。不揮発性媒体は、例えば、光ディスク、磁気ディスク等を含み得る。揮発性媒体は、例えば、半導体メモリ、ダイナミックメモリ等を含み得る。コンピュータ可読媒体の一般的な形態は、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス、コンパクトディスク（ＣＤ）、他の光学媒体、ランダムアクセスメモリ（ＲＡＭ）、読出専用メモリ（ＲＯＭ）、メモリチップまたはカード、メモリスティック、ソリッドステートストレージデバイス（ＳＳＤ）、フラッシュドライブ、および、その他の、コンピュータ、プロセッサまたは他の電子デバイスが機能することが可能な媒体を含み得るが、これらに限定されない。各種媒体は、一実施形態で選択されて実装された場合、開示および／または請求項に係る機能のうちの１つ以上を実行するように構成された、格納されたアルゴリズムの命令を含み得る。
【００８８】
本明細書で使用される「ロジック」は、コンピュータ、または電気的ハードウェア、実行可能アプリケーションもしくはプログラムモジュールの命令が格納された非一時的な媒体、および／またはこれらの組合せによって実現されて、本明細書に開示の機能または動作のうちのいずれかを実行する、および／または、本明細書に開示の別のロジック、方法、および／またはシステムの機能または動作を実行させる、構成要素を表わす。同等のロジックは、ファームウェア、アルゴリズムでプログラムされたマイクロプロセッサ、個別ロジック（例えば、ＡＳＩＣ）、少なくとも１つの回路、アナログ回路、デジタル回路、プログラムドロジックデバイス、アルゴリズムの命令を含むメモリデバイス等を含み得る。これらはいずれも開示の機能のうちの１つ以上を実行するように構成されていてもよい。一実施形態では、ロジックは、１つ以上のゲート、ゲートの組合せ、または開示の機能のうちの１つ以上を実行するように構成された他の回路部品を含み得る。複数のロジックが記載されている場合、これらの複数のロジックを１つのロジックに統合することも可能である。同様に、単一のロジックが記載されている場合、この単一のロジックを複数のロジックに分散させることも可能である。一実施形態では、これらロジックのうちの１つ以上は、開示および／または請求項に係る機能の実行に関係する、対応する構造である。どのタイプのロジックを実装するかという選択は、所望のシステム条件または仕様に基づいてもよい。例えば、速度の向上を重要視する場合には、ハードウェアを選択することによって機能を実現することが考えられる。コスト削減を重要視する場合には、格納された命令／実行可能アプリケーションを選択することによって機能を実現することが考えられる。
【００８９】
「動作可能な接続」、またはエンティティが「動作可能に接続される」接続とは、信号、物理的情報、および／または論理的情報が送信および／または受信され得る接続である。動作可能な接続は、物理インターフェイス、電気インターフェイス、および／またはデータインターフェイスを含み得る。動作可能な接続は、動作可能な制御を十分に行なうことのできるインターフェイスおよび／または接続のさまざまな組合せを含んでいてもよい。例えば、２つのエンティティが、互いに直接信号を通信するように、または１つ以上の中間エンティティ（例えば、プロセッサ、オペレーティングシステム、ロジック、非一時的なコンピュータ可読媒体）を介して信号を通信するように、動作可能に接続され得る。動作可能な接続を作り出すために、論理的および／または物理的通信チャネルを使用してもよい。
【００９０】
本明細書で使用される「ユーザ」は、１人以上の人間、１台以上のコンピュータもしくはその他のデバイス、またはこれらの組合せを含むが、これらに限定されない。
【００９１】
開示の実施形態をかなり詳細に図示および説明したが、以下の請求項の範囲をこのような詳細事項に限定すること、または何らかの方法で制限することは意図していない。主題のさまざまな局面を説明するために、考えられるすべての構成要素または方法論の組合せを説明することは、当然不可能である。したがって、本開示は、具体的な詳細事項にも、図示および説明した例示のための実例にも限定されない。ゆえに、本開示は、以下の請求項の範囲内にある変更、修正、および変形を包含することが意図されている。
【００９２】
「含む（includeまたはincluding）」という用語は、詳細な説明または請求項において使用されている限り、請求項の移行句として用いられるときの「含む（comprising）」の解釈と同様に包括的な用語であることが意図されている。
【００９３】
「または」という用語は、詳細な説明または請求項において使用されている限り（例えば、ＡまたはＢ）、「ＡまたはＢ、またはＡとＢの両方」を意味することが意図されている。出願人が「ＡとＢの両方ではなく、ＡのみまたはＢのみ」を示すことを意図する場合は、「ＡとＢの両方ではなく、ＡのみまたはＢのみ」という表現を使用する。このように、本明細書における「または」という用語の用法は、包括的用法であって排他的用法ではない。
【図１】
2021506010.tif 000003
【図２】
2021506010.tif 000004
【図３】
2021506010.tif 000005
【図４】
2021506010.tif 000006
【図５】
2021506010.tif 000007
【図６】
2021506010.tif 000008
【図７】
2021506010.tif 000009
【図８】
2021506010.tif 000010
【図９】
2021506010.tif 000011
【国際調査報告】
2021506010.tif 000012
2021506010.tif 000013