(57)【要約】  テスト・デバイスは、性能モジュールを含む  テスト・デバイスのディスプレイ・デバイス上で提示される、グラフィカル・ユーザ・インターフェースなどの画像のエントロピ値を判定する  ことができる。画像のエントロピ値は、画像内の画素の強度値またはカラー値などのデータ値の分布を示すことができる。経時的なエントロピ値のパターンは、テスト・デバイスの性能を示す情報を提供することができる。たとえば、経時的に一定のエントロピ値は、グラフィカル・ユーザ・インターフェースが変化していないことを示す可能性がある。別の例では、経時的なエントリ値の特定のパターンは、待機インジケータまたは他のユーザ・インターフェース要素の提示を示す可能性がある。エントロピ値を使用して、テスト・デバイスの性能を示すデータを判定することができる。このデータを、ローカルに記憶し、外部デバイスに送るなどを行うことができる。【選択図】図１
2021518026.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・デバイス上で実施される方法であって、
ディスプレイ・デバイス上での提示のために記憶された第１の画像および第２の画像を判定することと、
前記第１の画像に関連するデータ値の分布を示す第１のエントロピ値を判定することと、
前記第２の画像に関連するデータ値の分布を示す第２のエントロピ値を判定することと、
前記第１のエントロピ値および前記第２のエントロピ値に基づいて前記コンピューティング・デバイスの性能を示すデータを生成することと、
通信ネットワークを使用して前記コンピューティング・デバイスの前記性能を示す前記データを第２のコンピューティング・デバイスに提供することと
を含む方法。
【請求項２】
しきい値に対する前記第１の画像および前記第２の画像を含む画像のシーケンスのエントロピ値の比較に基づいて、少ない情報コンテンツを判定することと、
時間期間にわたる前記少ない情報コンテンツの判定に基づいて低い性能を判定することと
をさらに含む、請求項１に記載の方法。
【請求項３】
性能を示す前記生成されたデータは、
前記第１のエントロピ値がしきい値より小さいと判定することと、
前記第２のエントロピ値が前記しきい値より小さいと判定することと
をさらに含む、請求項１に記載の方法。
【請求項４】
性能を示す前記生成されたデータは、
前記第１のエントロピ値と前記第２のエントロピ値との間の差を判定することと、
前記差がしきい値より小さいと判定することと
をさらに含む、請求項１に記載の方法。
【請求項５】
前記ディスプレイ・デバイス上での提示のために記憶された複数の画像を判定することであって、前記複数の画像は、前記第１の画像および前記第２の画像を含む、判定することと、
前記複数の画像の少なくとも一部の第１の複数のエントロピ値を判定することと、
前記第１の複数のエントロピ値内の繰り返すパターンを判定することと
をさらに含み、前記コンピューティング・デバイスの性能を示す前記データは、前記繰り返すパターンに少なくとも部分的に基づく
請求項１に記載の方法。
【請求項６】
通信インターフェースと、
ディスプレイ・デバイスと、
コンピュータ実行可能命令を記憶するメモリと、
前記ディスプレイ・デバイス上での提示のために記憶された複数の画像を判定し、
前記複数の画像の少なくとも一部のエントロピ値であって、前記画像のデータ値の分布を表すエントロピ値の第１のセットを判定し、
前記通信インターフェースを使用して、エントロピ値の前記第１のセットに少なくとも部分的に基づくデータを送る
ために前記コンピュータ実行可能命令を実行するプロセッサと
を含むコンピューティング・デバイス。
【請求項７】
前記プロセッサに、
第１の画像から第１のデータ値を選択させ、
前記第１のデータ値の第１の確率値であって、前記第１のデータ値が第１の値を有する尤度を示す第１の確率値を判定させ、
前記第１の画像から第２のデータ値を選択させ、
前記第２のデータ値の第２の確率値であって、前記第２のデータ値が第２の値を有する尤度を示す第２の確率値を判定させ、
前記第１の画像の第１のエントロピ値を判定するために前記第１の確率値および前記第２の確率値を合計させる
コンピュータ実行可能命令をさらに含み、エントロピ値の第１のセットは、前記第１のエントロピ値を含む
請求項６に記載のコンピューティング・デバイス。
【請求項８】
前記プロセッサに、
エントロピ値の前記第１のセットの少なくとも一部がしきい値より小さいと判定させ、
前記少なくとも一部が時間しきい値より長い時間期間に対応すると判定させる
コンピュータ実行可能命令をさらに含み、
前記データは、悪い性能を示す
請求項６に記載のコンピューティング・デバイス。
【請求項９】
前記プロセッサに、
前記複数の画像の前記一部の第１の画像のデータ値のサブセットを判定させ、
データ値の前記サブセットに基づいて前記第１の画像の第１のエントロピ値を判定させる
コンピュータ実行可能命令をさらに含む、請求項６に記載のコンピューティング・デバイス。
【請求項１０】
前記プロセッサに、
前記複数の画像の第１のセットに関連するエントロピ値の第１のセットを判定させ、
ヒストリカル・データに対応するエントロピ値の前記第１のセット内のパターンを判定させる
命令をさらに含む、請求項６に記載のコンピューティング・デバイス。
【請求項１１】
前記プロセッサに、
前記複数の画像の第１のセットに関連するエントロピ値の第１のセットを判定させ、
前記複数の画像の第２のセットに関連するエントロピ値の第２のセットを判定させ、
エントロピ値の前記第１のセットおよびエントロピ値の前記第２のセットのうちの少なくとも１つ内のパターンを判定させる
命令をさらに含む、請求項６に記載のコンピューティング・デバイス。
【請求項１２】
前記プロセッサに、
第１の時刻に第１の入力を判定させ、
前記第１の入力に関連するパターンを判定させる
命令をさらに含む、請求項６に記載のコンピューティング・デバイス。
【請求項１３】
前記プロセッサに、
前記複数の画像の第１の画像の第１のエントロピ値を判定させ、
前記複数の画像の第２の画像の第２のエントロピ値を判定させ、
前記第１のエントロピ値と前記第２のエントロピ値との間の差を判定させ、
前記差がしきい値より小さいと判定させる
命令をさらに含む、請求項１２に記載のコンピューティング・デバイス。
【請求項１４】
出力デバイスを介する提示のためのデータ項目のシーケンスであって、第１のデータ項目および第２のデータ項目を含むシーケンスを判定し、
第１のデータ項目に関して、前記第１のデータ項目内のデータ値の分布を表す第１のエントロピ値を判定し、
第２のデータ項目に関して、前記第２のデータ項目内のデータ値の分布を表す第２のエントロピ値を判定し、
前記第１のエントロピ値および前記第２のエントロピ値に基づいてデータを生成する
プロセッサ
を含むデバイス。
【請求項１５】
前記プロセッサが、
前記第１のデータ項目の第１のデータ値に関して、前記第１のデータ値が第１の値を有する尤度を示す第１の確率値を判定し、
前記第１のデータ項目の第２のデータ値に関して、前記第２のデータ値が第２の値を有する尤度を示す第２の確率値を判定する
ように構成されることをさらに含み、
前記第１のエントロピ値は、前記第１の確率値および前記第２の確率値の合計を含む
請求項１４に記載のデバイス。
【請求項１６】
前記プロセッサが、
しきい値より小さいエントロピ値を有するデータ項目の前記シーケンスのサブセットを判定し、
前記サブセットが時間しきい値を超える時間期間に対応すると判定する
ように構成されることをさらに含む、請求項１４に記載のデバイス。
【請求項１７】
前記プロセッサが、
データ項目の前記シーケンスの一部のエントロピ値を判定し、
経時的なエントロピ値のパターンを判定し、
エントロピ値の前記パターンに基づいてデータを生成する
ように構成されることをさらに含む、請求項１４に記載のデバイス。
【請求項１８】
前記プロセッサが、
複数のデータ項目の第１のデータ項目の第１のエントロピ値を判定し、
前記複数のデータ項目の第２のデータ項目の第２のエントロピ値を判定し、
前記第１のエントロピ値と前記第２のエントロピ値との間の差を判定し、
前記差がしきい値より小さいと判定する
ように構成されることをさらに含む、請求項１４に記載のデバイス。
【請求項１９】
前記デバイスは、
入力データを受信する通信インターフェース
をさらに含み、前記プロセッサが、
前記入力データをデータ項目の前記シーケンスのデータ項目のサブセットの１つまたは複数のエントロピ値に関連付け、
パターンが前記入力データに対応すると判定する
ように構成されることをさらに含む、請求項１８に記載のデバイス。
【請求項２０】
前記プロセッサが、
前記第１のデータ項目のデータ値のサブセットを判定し、
データ値の前記サブセットに基づいて前記第１のデータ項目の前記第１のエントロピ値を判定する
ように構成されることをさらに含む、請求項１４に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権
本特許出願は、２０１９年３月８日に出願した出願番号第１６／２９７３８０号、名称「Ｓｙｓｔｅｍ  Ｔｏ  Ｄｅｔｅｒｍｉｎｅ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｂａｓｅｄ  Ｏｎ  Ｅｎｔｒｏｐｙ  Ｖａｌｕｅｓ」を有する米国特許出願の優先権を主張するものである。本特許出願は、２０１８年３月１２日に出願した出願番号第６２／６４１９２０号、名称「Ｍｕｌｔｉｐｌｅ  Ｄｅｖｉｃｅ  Ｔｅｓｔ  Ｄｅｖｉｃｅ」を有する米国特許仮出願の優先権を主張するものである。出願第１６／２９７３８０号および出願第６２／６４１９２０号は、参照によってその全体を本明細書に組み込まれている。
【０００２】
参照による組込み
２０１５年９月１０日に出願した米国特許出願第１４／８５０７９８号（弁理士整理番号第８８９−７００１号）、名称「Ｓｙｓｔｅｍ  ｆｏｒ  Ａｐｐｌｉｃａｔｉｏｎ  Ｔｅｓｔ」が、これによって参照によってその全体を組み込まれる。
【０００３】
２０１５年１２月２１日に出願した米国特許出願第１４／９７６４８０号（弁理士整理番号第８８９−７００２号）、名称「Ｓｙｓｔｅｍ  ｆｏｒ  Ｎｅｔｗｏｒｋ  Ｃｈａｒａｃｔｅｒｉｓｔｉｃ  Ａｓｓｅｓｓｍｅｎｔ」が、これによって参照によってその全体を組み込まれる。
【０００４】
２０１７年２月２２日に出願した米国特許出願第１５／４３９７５５号（弁理士整理番号第８８９−７００３号）、名称「Ａｄａｐｔｉｖｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｂｅｈａｖｉｏｒ  Ｂａｓｅｄ  Ｏｎ  Ａｓｓｅｓｓｅｄ  Ｎｅｔｗｏｒｋ  Ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ」が、これによって参照によってその全体を組み込まれる。
【背景技術】
【０００５】
動作中にデータ・ネットワークを利用するアプリケーションを実行するモバイル・デバイスが、ネットワーク条件の結果として、障害を経験するか、他の形で悪いユーザ経験を作る場合がある。これらのアプリケーションのテストを実行して、障害の影響を防ぎまたは軽減することができる。
【０００６】
詳細な説明を、添付図面を参照して示す。図面では、符号の左端の桁（１つまたは複数）が、その符号が初めて現れる図面を識別する。異なる図面での同一の符号の使用は、同様のまたは同一の項目または特徴を示す。
【図面の簡単な説明】
【０００７】
【図１】一実施態様による、ネットワーク・リソースを利用するアプリケーションをテストするシステムを示す図である。
【図２】一実施態様による、テスト・デバイスを示し、テスト・デバイスごとの経時的なエントロピのグラフを含む図である。
【図３】一実施態様による、エントロピ・データを提供するためにさまざまなコンピューティング・デバイスを含むアプリケーションをテストするシステムを示すブロック図である。
【図４】一実施態様による、分析システムとして働くコンピューティング・デバイスを示すブロック図である。
【図５】一実施態様による、テスト・デバイス、ワークステーション、または展開されたデバイスとして働くコンピューティング・デバイスを示すブロック図である。
【図６】一実施態様による、管理サーバとして働くコンピューティング・デバイスを示すブロック図である。
【図７】一実施態様による、プロキシ・ホスト・デバイスとして働くコンピューティング・デバイスを示すブロック図である。
【図８】一実施態様による、本開示の範囲内の、時間に対するエントロピおよびネットワーク・スループットを示すグラフである。
【図９】一実施態様による、本開示の範囲内の、エントロピ値に基づくテスト・デバイスの動作を示すデータを判定する方法を示す流れ図である。
【図１０】一実施態様による、本開示の範囲内の、エントロピ値に基づくテスト・デバイスの動作を示すデータを判定する方法を示す流れ図である。
【図１１】一実施態様による、本開示の範囲内の、エントロピ値の繰り返すパターンを示すデータを判定する方法を示す流れ図である。
【発明を実施するための形態】
【０００８】
諸実施態様が、本開示で例として示されるが、当業者は、諸実施態様が説明される例または図に限定されないことを認めよう。図面およびそれに対する詳細な説明が、諸実施態様を開示される特定の形態に限定することを意図されたものではなく、逆に、その意図が、添付の特許請求の範囲によって定義される趣旨および範囲に含まれるすべての修正形態、同等物、および代替形態を包含することであることを理解されたい。本開示で使用される見出しは、組織化のためのみのものであって、この説明または特許請求の範囲の範囲を限定するのに使用されることを意図されたものではない。本願全体で使用される時に、単語「ｍａｙ」は、必須の意味（すなわち、ｍｕｓｔを意味する）ではなく、許可の意味（すなわち、可能性を有するを意味する）で使用される。同様に、単語「ｉｎｃｌｕｄｅ」、「ｉｎｃｌｕｄｉｎｇ」、および「ｉｎｃｌｕｄｅｓ」は、「ｉｎｃｌｕｄｉｎｇ，ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ（含むがこれに限定されない）」を意味する。
【０００９】
モバイル・デバイスは、さまざまな機能を提供するためにアプリケーションを実行することができる。モバイル・デバイスは、スマートフォン、ラップトップ、タブレット・コンピュータ、組込みデバイス、ウェアラブル・コンピューティング・デバイス、電化製品、自動車、航空機、その他を含むことができるが、これに限定はされない。アプリケーションによって提供される機能は、データの取出し、ユーザへのそのデータの提示、データの処理、他の動作、またはその任意の組合せを含むことができる。いくつかの実施形態では、アプリケーションは、独立型アプリケーションとすることができる。
【００１０】
一部のアプリケーションは、ネットワークを使用してサーバなどの宛先デバイスと通信することができる。たとえば、マッピング・アプリケーションは、モバイル・デバイスの位置を示す情報をマッピング・サーバに送ることができ、マッピング・アプリケーションは、情報の送出に応答して、モバイル・デバイスのディスプレイ上で提示すべき地図データを受信することができる。この通信に関する問題は、アプリケーションが所望の機能を実行できないこと、エラー・メッセージ、静的なまたはブランクのディスプレイ・データ、不正な動作、他の問題、またはその任意の組合せをもたらす可能性がある。上の例を継続すると、地図データを受信する際の長い待ち時間または遅延は、モバイル・デバイス上のアプリケーションに、ユーザにエラーを提示させる場合があり、あるいは、ディスプレイ上のデータがその間に更新されない、長い待ち時間またはローディング遅延を引き起こす場合がある。これらの問題は、悪いユーザ経験をもたらす可能性がある。たとえば、ユーザが、これらの問題のゆえにアプリケーションの使用を中止し、その代わりに別のアプリケーションを使用する場合がある。
【００１１】
モバイル・デバイスによって提示される情報から判定されるエントロピに基づいてモバイル・デバイスまたはモバイル・デバイス上で実行するアプリケーションの１つまたは複数の性能パラメータを判定することのできるシステム、方法、およびデバイスの実施形態を、下で説明する。性能パラメータは、ウェブサーバ応答の遅延、ネットワーク・スループット、他の要因、またはその任意の組合せなど、何らかの他のシステムの性能に基づくものとすることができる。そのような情報は、たとえば、ディスプレイ上で提示される１つまたは複数の画像、オーディオ出力（スピーカなど）に提示されるオーディオ・データ、他の情報、またはその任意の組合せを含むことができる。たとえば、エントロピ値は、データの配列の特性を表すのに使用できるランダムさの統計的尺度を含むことができる。画像処理では、用語「エントロピ」は、画像のテクスチャ（色または強度の空間配置）の特性を表すのに使用できるランダムさの統計的尺度を指すことができる。特定の例では、エントロピを、画像に対応する値の数値配列、サウンドに対応する値の数値配列、他のデータ、またはその任意の組合せから判定することができる。エントロピ分析を、画像データ、オーディオ・データ、他のデータ、またはその任意の組合せに対して実行することができる。用語「エントロピ」は、全般的に画像などの特定のデータ項目のコンテンツのランダムさに関する他の定義を有することもできる。
【００１２】
エントロピ分析
情報エントロピは、ビットまたは「シャノン」単位で測定することができ、一般にベルヌーイ過程によってモデル化されるデータ・ソースの情報コンテンツを測定するのに有用なメトリックである可能性がある。ベルヌーイ過程は、それぞれが相互に排他的で網羅的な、通常は０または１である２つの値だけをとることのできる２進ランダム変数のシーケンスである。たとえば、コイン投げのシーケンスを、ベルヌーイ過程と考えることができる。Ｐｒ（Ｘ＝１）＝ｐおよびＰｒ（Ｘ＝０）＝１−ｐを有するベルヌーイ試行のシーケンスの２進エントロピ関数または「シャノン」エントロピ関数は、Ｈ（Ｘ）＝ＨＢ（ｐ）＝−ｐ  ｌｏｇ２ｐ−（１−ｐ）ｌｏｇ２（１−ｐ）によって与えられ、ここで、０  ｌｏｇ２０は、０と解釈され、Ｘは、ランダム変数である。
【００１３】
画像を、確率データ・ソースとして扱うことができる。ベルヌーイ過程の代わりに、画像は、画素の配列からなり、各画素は、ある確率Ｐ（ｘｉ）で発生する画像データ型範囲内の値を有し、ｘｉは、所与の画素値（たとえば、グレイ・レベル）を表す。エントロピは、一般に、
【数１】
2021518026.tif 000003
によって記述することができ、ここで、ｂは、対数関数の基底であり、所与の画素の複数の可能な値を表すことができ、ｎは、画素の総数を表す。画像は、一般に、Ｎ×Ｍ×Ｄ要素を有する８ビット配列として表される。８ビット配列内の各要素は、２５６ビット範囲［０，２５５］内の値を有することができる。グレイスケール画像に関して、Ｄ＝１であり、したがって、各画素は、２５６個の可能な値を有することができる。したがって、８ビットすなわち１バイトの単位を有するｂ＝２５６であり、Ｐ（ｘｉ）は、［０，２５５］内の値の２５６個のビンを有するヒストグラムを作成することと、画素の総数ｎによって除算することとによって計算することができる。エントロピが、スケール独立の値であり、定式化される時に追加の正規化を必要としないことを理解されたい。上で説明した実施態様では、エントロピは、Ｐ（ｘｉ）＝０が不定の０＊ｌｏｇ（０）をもたらすので、非０確率の値の和として計算される。
【００１４】
ＲＧＢ画像に関して、各画素は、３要素の深さを有し、単一の画素は、２５６＊２５６＊２５６＝１６７７７２１６個の可能な値を有することができる。そのような大きい範囲の画素をビンにいれることは計算的に高価になる可能性があるので、実用的な代替案は、画像をグレイスケールに変換すること、または単純にすべてのチャネルにまたがって画像エントロピの平均をとることを含むことができる。
【００１５】
画像エントロピは、すべての画素が同等の強度を有する（たとえば、画素のすべてが同一であり、ディスプレイ上でモノクローム画像を作る）最小理論エントロピから、すべての画素強度が同等にありそうな（たとえば、画素値がランダムに変化する大量の画像コンテンツを有する画像）最大エントロピまでの範囲にわたる画素値の分布として解釈され得る。情報理論の展望から、すべての画素が同一である最小エントロピの点は、最小ダイバーシティ、最低情報コンテンツ、および最大秩序（または最小ランダムさ）の点である。
【００１６】
数学的に、エントロピの最小値は０であり、最大値は１である。最小エントロピ値は、分布内のすべての値が等しいことを暗示する。画像に関して、これは、すべての画素が同一の値を有することを意味する。最大エントロピ値は、分布内の値が均一に分布することを暗示する。この特性を有する画像は、画素値の豊かな分布と高い情報コンテンツとを有する。このスケール独立メトリックは、［０，１］の範囲での、異なるサイズを有する画像の便利で解釈可能な比較を可能にする。
【００１７】
ビデオ内の画像ごとにこの画像エントロピ値を計算することによって作られる時系列は、特に有用である。コンピューティング・リソースを使用してビデオの画像をスキャンするのではなく、エントロピ値の時系列またはグラフは、ビデオ・フィード内の展開する情報コンテンツのすばやい視覚的要約を可能にする。エントロピ・グラフ内で、任意の色のブランク画像または相対的に均一なディスプレイ・コンテンツを有する画像は、低いエントロピ値を有するが、かなりのコントラストおよび色の変動を有する画像は、相対的に高いエントロピ値を有する。
【００１８】
いくつかの実施形態では、画像のコンテンツから導出された画像エントロピ値は、時系列で見られる時に有用な情報を提供することができる。具体的には、エントロピ値または他のハッシュ値によって表されるランダムさまたはエントロピは、アプリケーションまたはコンピューティング・デバイスの性能を評価するのに使用できる情報を提供することができる。
【００１９】
エントロピ時系列の読取
たとえば、テスト中の携帯電話機からのビデオ内に、新しいページを開くことによってユーザによってコンテンツが要求される別個のフェーズがある場合があり、アプリケーションは、新しいコンテンツをロードし、おそらくは視覚的フィードバックを提供するためにスピナまたはローディング・インジケータを示し、その後、コンテンツが最終的にロードされる。アプリケーションが、通常はユーザが要求した情報を準備していないので、スクリーンがブランクまたはほぼブランクになる遅延がある場合がある。いくつかの場合に、遅延中に、コンテンツが要求された時にスクリーン上にあった画像が、スクリーン上で凍結したままになる場合があり、スピナまたはローディング・インジケータが、要求されたコンテンツが最終的にロードされるまで、凍結した画像または静的画像に重畳される場合がある。
【００２０】
ページ上に提示されるもののこれらの遷移を、ビデオ・エントロピ時系列内で検出することができる。第１のページから要求されたページへの遷移を、エントロピが変化し始める前の短い期間にわたるステップ減少または高台として取り込むことができる。コンテンツがロードされている間に、エントロピは、低いままになり、または実質的に静的のままになる可能性がある。いくつかの場合に、エントロピは、スピナ、砂時計、棒グラフ、および類似物などの周期的に回転するか展開するローディング・インジケータに応答して、周期的に変動する可能性がある。コンテンツがロードし始める時に、エントロピは、増分的に、スクリーン上の情報の量に比例して増加する可能性がある。
【００２１】
いくつかの場合に、ローディング・インジケータなどのコンテンツ・プレースホルダは、完全にロードされたコンテンツより少なくエントロピ値に寄与する可能性がある。エントロピ値を判定し、査定することによって、携帯電話機テストの動作に関する有用なデータを、すばやく効率的に収集することができる。
【００２２】
この例は、携帯電話機テストを説明するが、これらの技法を、任意のモバイル・デバイスまたは固定デバイスに使用することができる。たとえば、エントロピを使用して、タブレット・コンピュータ、デスクトップ・コンピュータ、組込みデバイスなどの動作を査定することができる。これらの技法を使用して、テスト中のアプリケーション、デバイスの通常動作、オペレーティング・システム、その他を査定することができる。
【００２３】
いくつかの実施形態では、スマートフォンなどのモバイル・コンピューティング・デバイス上で実行するアプリケーションは、たとえば時間しきい値を超える可能性がある時間期間にわたってデバイスが情報をロードできないのでデバイスのユーザに顕著になる可能性がある、間欠的な性能問題を経験する場合がある。時々、モバイル・コンピューティング・デバイスは、アプリケーションが表示するか他の形で提示すべき情報を有しないタイム・インターバル中に、ローディング・インジケータ（スピナ、砂時計、または別の視覚的インジケータ）を有するブランク・スクリーンを表示する場合がある。ソフトウェア開発者は、さまざまなコンピューティング・デバイス上で異なる時に異なる地理的位置で実行するアプリケーションの性能に関する情報を収集することを望む場合がある。
【００２４】
モバイル・コンピューティング・デバイス上で実行中である可能性があるアプリケーションを含むことができ、モバイル・コンピューティング・デバイスによって提示される情報に基づいてエントロピ値を判定することのできるシステム、方法、およびデバイスの実施形態を下で説明する。そのような情報は、画像、サウンド、または他の情報を含むことができる。モバイル・コンピューティング・デバイスは、エントロピ値に基づいて、アプリケーションまたはモバイル・コンピューティング・デバイスの性能または動作（ユーザによって見られる）を示すデータを判定するように構成され得る。たとえば、エントロピ値は、エントロピ値が少ない情報コンテンツまたは静的情報コンテンツを示す（情報コンテンツが変化していなければならない時に）時間期間に対応することのできる待ち時間インターバルを明らかにすることができる。別の例では、性能を示すデータを、ウェブサーバ応答の遅延、ネットワーク・スループット、他の要因、またはその任意の組合せなど、何らかの他のシステムの性能に基づくものとすることができる。いくつかの場合に、ネットワーク・スループット値とのエントロピ値の相関が、ネットワーク・スループット値が高いがエントロピ値が待ち時間インターバルを明らかにする時など、編集を必要とする可能性があるアプリケーション内の機能を明らかにする場合がある。他の場合に、たとえば入力インターフェースからの入力データの受信とのエントロピ値の相関が、ユーザ対話と、アプリケーションに対するユーザ対話の影響とを明らかにする場合がある。エントロピ・データを使用して、待ち時間インターバルの存在または不在などに基づいてアプリケーションの総合性能を検査することもできる。
【００２５】
いくつかの実施形態では、エントロピ値を使用して、ユーザに提示されるデータに基づいて、コンピューティング・デバイスの動作およびアプリケーションの動作を示すデータを判定することができる。言い換えると、エントロピ値は、客観的に評価するのがむずかしい可能性があるユーザ経験を明らかにすることができる。エントロピ値を調べることによって、情報コンテンツがないか少ないインターバルを識別し、ネットワーク・スループット・データと相関させ、受信された入力と相関させ、分析することができる。分析は、プログラム・エラー、コーディングまたは機能の問題、および他の情報を明らかにすることができ、これらを使用して、モバイル・コンピューティング・デバイスの機能を改善することができる。
【００２６】
いくつかの実施態様では、エントロピ値を、テスト・データと相関させることができ、これは、中央処理装置、メモリ・デバイス、通信インターフェースなどを含むデバイス・メトリックスへのエントロピの相関を可能にすることができる。テスト・データを使用して、動作を駆動することができ、エントロピは、ユーザによって見られるデバイスの性能への洞察を提供することができる。他の実施態様も可能である。
【００２７】
いくつかの実施態様では、エントロピ値は、アプリケーションの性能の非侵襲的尺度を提供し、この非侵襲的尺度を使用して、アプリケーションの機能およびモバイル・コンピューティング・デバイスの機能を改善することができる。エントロピ値に基づいて性能を判定するテスト・デバイスを含むシステムの１つの可能な例を、下で図１に関して説明する。
【００２８】
例示的なシステム
図１は、一実施形態による、ネットワーク・リソースを利用するアプリケーションをテストするシステム１００の図を示す。システム１００は、モバイル・デバイスとすることのできるテスト・デバイス（ＴＤ）１０２を含むことができる。ＴＤ  １０２は、スマートフォン、ラップトップ、タブレット・コンピュータ、組込みデバイス、ウェアラブル・コンピューティング・デバイス、電化製品、自動車、航空機などを含むことができるが、これに限定はされない。ＴＤ  １０２は、経時的に変化し得る視覚的コンテンツを提示することのできるディスプレイ１０４を含むことができる。ＴＤ  １０２のディスプレイ１０４は、さまざまな時にローディング・インジケータ１０６を提示することができる。ＴＤ  １０２は、ネットワーク１１０を介して分析システム１０８などの１つまたは複数のコンピューティング・デバイスと通信することができる。
【００２９】
ネットワーク１１０は、セルラ・ネットワーク、衛星ネットワーク、インターネット、ローカル・エリア・ネットワーク、他のネットワーク、またはその任意の組合せを含むことができる。ネットワーク１１０と通信するのにＴＤ  １０２および分析システム１０８によって使用される接続は、有線イーサネット接続、Ｗｉ−Ｆｉなどの無線ローカル・エリア・ネットワーク（ＷＬＡＮ）接続、基地局を介する携帯電話接続、別のタイプの接続、またはその任意の組合せを含むことができるが、これに限定はされない。
【００３０】
ＴＤ  １０２は、テスト中のアプリケーション（ＡＵＴ）１１２を含むモバイル・コンピューティング・デバイスとすることができる。ＡＵＴ  １１２は、開発または保守ライフサイクルのいずれかのステージにあるアプリケーションとすることができる。たとえば、ＡＵＴ  １１２は、ソフトウェアのアルファ（またはプリリリース）バージョンを含むことができ、あるいは、さらなるテストを受けつつある、以前にリリースされた製品バージョンを含むことができる。
【００３１】
ＴＤ  １０２は、性能モジュール１１４をさらに含むことができ、この性能モジュール１１４は、アプリケーション、プラグイン、ソフトウェア開発キット（ＳＤＫ）、ウィジェット、または別のタイプのソフトウェア・コンポーネントとすることができる。ＴＤ  １０２は、画像データ１１６およびログ・データ１１８を記憶するメモリをさらに含むことができ、ログ・データ１１８は、エントロピ・データ１２０およびネットワーク・データ１２２を含むことができる。メモリは、キャッシュ・メモリ、ディスプレイ・バッファ、不揮発性メモリ、他のメモリ・コンポーネント、またはその任意の組合せを含むことができるが、これに限定はされない。画像データ１１６は、たとえばディスプレイ・バッファ内に記憶された、ビデオ・フレームを含むことができる。エントロピ・データ１２０は、性能モジュール１１４またはＡＵＴ  １１２によって判定されたデータを含むことができる。ネットワーク・データ１２２は、ＴＤ  １０２の、ネットワーク・トランシーバなどの回路網によって判定され得る。
【００３２】
性能モジュール１１４は、ＴＤ  １０２によって提示される画像情報など、１つまたは複数のパラメータを監視することができる。性能モジュール１１４は、画像データ１１６から画像のシーケンスの第１の画像および第２の画像を選択することができる。性能モジュール１１４は、第１の画像内のデータ値の分布を示す第１のエントロピ値および第２の画像内のデータ値の分布を示す第２のエントロピ値を判定することができる。その後、性能モジュール１１４は、第１のエントロピ値および第２のエントロピ値に基づいてＴＤ  １０２の性能を示すデータを生成することができる。一例では、性能を示すデータは、ウェブサーバ応答の遅延、ネットワーク・スループット、他の要因、またはその任意の組合せなど、何らかの他のシステムの性能に基づくものとすることができる。性能モジュール１１４は、データをエントロピ・データ１２０として記憶するためにログ・データ１１８にアクセスすることができる。いくつかの実施形態では、ＴＤ  １０２は、エントロピ・データ１２０、ネットワーク・データ１２２、動作を示すデータ、またはその任意の組合せを、ネットワーク１１０を介して分析システム１０８に送ることができる。
【００３３】
いくつかの実施態様では、性能モジュール１１４は、画像のシーケンスの第１のデータ項目（たとえば、画像）のデータ値のサブセットを判定することができる。性能モジュール１１４は、データ値のサブセットに基づいて、第１のデータ項目の第１のエントロピ値をさらに判定することができる。たとえば、性能モジュール１１４は、画像からデータ値のサブセットを判定することができ、サブセットの確率を判定することができる。この確率は、データ値のサブセットが特定の値を有する尤度を表すことができる。第１のエントロピ値を、確率を合計することによって判定することができる。他の実施態様も可能である。
【００３４】
分析システム１０８は、１つまたは複数のＴＤ  １０２から受信されたエントロピ・データ１２６およびネットワーク・データ１２８を含むログ・データ１２４を記憶するメモリを含むことができる。分析システム１０８は、分析モジュール１３０をも含むことができる。分析モジュール１３０は、エントロピ・データ１２６、ネットワーク・データ１２８、他のデータ、またはその任意の組合せに基づいてレポート・データ１３４を生成することができる。
【００３５】
いくつかの実施態様では、画像は、複数のデータ値からなることができる。分析モジュール１３０は、第１の画像の第１のデータ値の第１の確率値を判定することができ、第１の画像の第２のデータ値の第２の確率値を判定することができる。たとえば、第１の確率値は、第１のデータ値が特定の色、強度、または他の特性を有する尤度を表すことができる。第２の確率値は、第２のデータ値が特定の色、強度、または他の特性を有する尤度を表すことができる。いくつかの実施態様では、第１の確率値は、第２の確率値と独立である。第１および第２の確率値を一緒に加算して、第１の画像のエントロピ値を判定することができる。このプロセスを、画像のシーケンスの１つまたは複数の画像について繰り返すことができる。他の実施態様も可能である。
【００３６】
エントロピ・データ１２６は、経時的な画像のシーケンス（たとえば、ビデオ・フレーム）内の値の分布に対応する時系列データを含むことができる。この例では、ＴＤ  １０２などの特定のデバイスに関連するエントロピ・データ１２６を、時刻１４０に対するエントロピ値１３８のエントロピ・グラフ１３６を使用して視覚化することができる。ＴＤ  １０２のディスプレイ１０４に提供されるデータが、時刻１４０にわたって変化でき、第１の時刻Ｔ１にディスプレイ１０４に提示される情報が、第２の時刻Ｔ２にディスプレイ１０４に提示される情報とは異なる可能性があることを了解されたい。エントロピ・グラフ１３６は、そのような変動を反映する。
【００３７】
エントロピ・グラフ１３６は、経時的に減少するエントロピを示す。時刻Ｔ０に、ＴＤ  １０２のディスプレイ１０４は、建物を示し、これは、エントロピ・グラフ１３６上で０と１との間にあるエントロピ値によって表される。時刻Ｔ１に、ディスプレイ１０４は、モノクローム（低エントロピ）背景に重畳されたローディング・インジケータ１０６を有するモノクローム背景に遷移している。ローディング・インジケータ１０６は、ＡＵＴ  １１２の動作を示し、ネットワーク・スループットを示し、ある他のパラメータを示し、またはその任意の組合せであることができる。時刻Ｔ１から時刻Ｔ２まで延びる待ち時間インターバル１４４中に、ローディング・インジケータ１０６を、１４６でディスプレイ１０４上に提示することができる。ディスプレイ１０４上の背景のエントロピは、待ち時間インターバル１４４中に静的または実質的に一定のままになる。しかし、ローディング・インジケータ１０６は、スピンしまたは他の形で変化することができ、待ち時間インターバル１４４中にエントロピ値１３８を変動させる。この例では、ローディング・インジケータ１０６を、周期的にスピンし、エントロピ値１３８を変動させるスピナまたは砂時計とすることができる。待ち時間インターバル１４４内のエントロピ・グラフ１３６の図の例は、変動がシヌソイドになることを示すが、変動が非周期的になるか、変動が待ち時間インターバル１４４中の不規則な変化（振幅の、周波数の、またはその両方）によって表されることが可能である。時刻Ｔ２に、ローディング・インジケータ１０６が、消えることができ（１４８に全般的に示されるように）、エントロピ値１３８は、エントロピ・インターバル１４４内の平均エントロピ値から変化し始めることができる。
【００３８】
１つの可能な例では、待ち時間インターバル１４４は、ネットワーク・スループットを減少させるネットワーク接続性問題によって引き起こされる可能性がある。たとえば、ＴＤ  １０２が、信号受信に干渉するエレベータ内で動作する場合がある。別の例では、ＴＤ  １０２が、トンネルを通過する車両内で動作する場合がある。別の可能な例では、待ち時間インターバル１４４が、ＡＵＴ  １１２によって引き起こされる場合がある。一例では、ＡＵＴ  １１２が、エラーに出会う場合がある。その代わりに、ＡＵＴ  １１２が、性能に影響する可能性があり、ディスプレイ１０４へのデータの提示の遅延として現れる可能性がある欠陥または他の問題を有する場合がある。一例では、性能パラメータを、ウェブサーバ応答の遅延、ネットワーク・スループット、他の要因、またはその任意の組合せなど、何らかの他のシステムの性能に基づくものとすることができる。いくつかの場合に、データの提示の遅延は、悪いユーザ経験を引き起こす可能性のある、低い性能を示す可能性がある。そのような遅延が、ＴＤ  １０２からのエントロピ・データ１２０の時系列に基づいて検出可能である場合がある。
【００３９】
分析システム１０８は、分析モジュール１３０を利用して、エントロピ・データ１２６およびネットワーク・データ１２８に基づいてＴＤ  １０２のうちの１つまたは複数の性能を示すデータを判定することができる。さらに、分析モジュール１３０は、性能を示すデータに基づいてレポート・データ１３４を生成することができる。一例では、レポート・データ１３４は、ＴＤ  １０２のエントロピ・データ１２０を示すデータを含むレポート１５０を含むことができる。いくつかの場合に、レポート・データ１３４は、複数のＴＤ  １０２の動作を示すデータをも含むことができる。
【００４０】
図１に示された実施形態は、ＴＤ  １０２だけを示すが、分析システム１０８が、複数のＴＤ  １０２からエントロピ・データ１２０およびネットワーク・データ１２２を受信することができ、受信したデータをログ・データ１２４内にエントロピ・データ１２６およびネットワーク・データ１２８として記憶できることを理解されたい。さらに、ＴＤ  １０２が、複数の異なる地理的位置に分散され得ることと、各ＴＤ  １０２のエントロピ・データ１２０およびネットワーク・データ１２２が、他のＴＤ  １０２によって収集されたそのようなデータと独立であり、ネットワーク１１０を介して分析システム１０８に送出され得ることを了解されたい。
【００４１】
図２は、一実施態様による、各ＴＤ  １０２の時刻１４０に対するエントロピ値１３８のエントロピ・グラフ１３６（１）および１３６（２）を含む、ＴＤ  １０２（１）および１０２（２）の図２００を示す。ＴＤ  １０２（１）は、第１の時刻Ｔ０に、ディスプレイ１０４（１）に画像データ（たとえば、人間の写真）を供給することができる。時刻Ｔ１に、ＴＤ  １０２（１）のディスプレイ１０４（１）は、ローディング・インジケータ１０６（１）と共にブランク（またはモノクローム）の背景を提示することができる。エントロピ・グラフ１３６（１）を参照すると、時刻Ｔ０と時刻Ｔ１との間に、時刻Ｔ１の前のエントロピ値１３８（１）（全体的に１４２（１）に示す）は、第１の時刻Ｔ０の相対的に高いエントロピ値１３８から第２の時刻Ｔ１の相対的に低いエントロピ値１３８へ時間１４０（１）にわたってすばやく減少し、ここで、第２の時刻Ｔ１の相対的に低いエントロピ値１３８は、少ない情報を示すことができる。時刻Ｔ１に、ディスプレイ１０４（１）は、全体的に１４６（１）に示されるように、ローディング・インジケータ１０６（１）を提示することができる。時刻Ｔ１から時刻Ｔ２まで延びる待ち時間インターバル１４４（１）中に、エントロピ値１３８（１）は、低いレベルのままになり、ローディング・インジケータ１０６（１）に関連する移動または変化に基づいて変動する。時刻Ｔ２に、ローディング・インジケータが消え１４８（１）、情報コンテンツは、変化するエントロピ値１３８によって反映されるように変化し始める。
【００４２】
ＴＤ  １０２（２）に関して、ディスプレイ１０４（２）は、全体的に１４２（２）によって示されるように、時刻Ｔ３の前の第１の時刻に島の画像を示す。時刻Ｔ３に、ＴＤ  １０２（２）は、ディスプレイ１０４（２）にローディング・インジケータ１０６（２）を供給することができる（全体的に１４６（２）に示されるように）。この場合に、島の画像は、ディスプレイ１０４（２）上に残り、ローディング・インジケータ１０６（２）は、画像に重畳される。エントロピ・グラフ１３６（２）を参照すると、エントロピ値１３８（２）は、ローディング・インジケータ１０６（２）の導入に応答してわずかに増加し、待ち時間インターバル１４４（２）内に変化しない（ローディング・インジケータ１０６（２）の回転または他の移動に起因する変動を除いて。時刻Ｔ４に、ローディング・インジケータ１０６（２）は、全体的に１４８（２）に示されるように消える。
【００４３】
ＴＤ  １０２（１）を第１の地理的位置に配置することができ、ＴＤ  １０２（２）を第２の地理的位置に配置することができることを了解されたい。さらに、ＴＤ  １０２（１）は、ＴＤ  １０２（２）と比較して、異なるＡＵＴ  １１２を実行しているものとすることができる。図示の例では、ＴＤ  １０２（１）とＴＤ  １０２（２）との両方が、待ち時間インターバル１４４を経験する。エントロピ・グラフ１３６（２）内のエントロピ値１３８（２）の振幅は、それぞれの待ち時間インターバル１４４中にエントロピ・グラフ１３６（１）内のエントロピ値１３８（１）より大きい。しかし、エントロピ値１３８は、特定のローディング・インジケータ１０６を示すパターンまたはシグネチャを表す可能性がある。パターンまたはシグネチャを、時系列内の繰り返すエントロピ値１３８から、またはヒストリカル分析に基づいて判定することができる。繰り返すパターンまたはシグネチャを、繰り返すエントロピ値１３８、エントロピ値１３８の繰り返す差、またはエントロピ値１３８の時系列の他の再帰する形状、傾き、変動、もしくは他の識別できるコンテンツによって表すことができる。他の例では、待ち時間インターバル１４４内の変化するエントロピ値１３８が、異なる波形を有する場合がある。いくつかの実施形態では、エントロピ値１３８のサブセット内のエントロピ値１３８に基づいてローディング・インジケータ１０６を判定することが可能である場合がある。
【００４４】
いくつかの実施態様では、パターンを、第１の時刻から第２の時刻へ振幅において減少するエントロピ値のシーケンスおよび第３の時刻から第４の時刻へ振幅において増加するエントロピ値の第２のシーケンスから判定することができる。他の実施態様も可能である。
【００４５】
さらに、いくつかの実施形態では、エントロピ値１３８のパターンが繰り返す場合がある。そのようなパターンが、ＴＤ  １０２によって実行される特定の動作を示す場合がある。たとえば、ウェブサイトからの音楽ビデオのダウンロードおよび再生を伴う動作中に、アプリケーションが第１のビデオから第２のビデオに遷移する（かつ、オプションで、アプリケーションが広告を表示する）時に、エントロピ値１３８がパターンを繰り返す場合がある。各遷移の開始時に、エントロピ値１３８は、背景がモノクローム背景またはモノクロームに近い背景に変化する時に減少する可能性があり、その後、エントロピ値１３８は、選択されたビデオがロードされ、再生を開始する時にすばやく増加する可能性がある。この繰り返すパターンは、特定のアプリケーションの通常動作を示す可能性がある。
【００４６】
別の例では、ユーザ対話が、エントロピ・パターンをトリガしまたは開始する場合がある。たとえば、「右にスワイプする」対話は、提示される画像がディスプレイ１０４から外れてスライドし、ディスプレイ１０４をブランクにする時に、エントロピ値１３８をすばやく減少させる場合がある。このすばやい減少の後に、エントロピ値１３８は、新しい画像がロードされる時にすばやく増加する可能性がある。このパターンが、ＴＤ  １０２との対話に応答して繰り返される可能性がある。他の例も可能である。
【００４７】
ある種の実施形態では、ＴＤ  １０２（１）およびＴＤ  １０２（２）の動作を示すデータを、エントロピ値１３８に基づいて判定することができる。さらに、時系列内のエントロピ値１３８の繰り返すパターンが、「自動再生」または他の動作などのルーチン動作を実行する特定のアプリケーションの動作を示す場合があり、あるいは、悪いユーザ経験をもたらす可能性があるアプリケーション内の欠陥またはエラーを示す場合がある。図２に示されたデータの繰り返すパターンは、待ち時間インターバル１４４内に発生するが、エントロピ値１３８のサブセットが時系列内のさまざまな位置で繰り返すことが可能である。他の実施形態も可能である。
【００４８】
いくつかの実施形態では、動作  ＴＤ  １０２をリモートに制御することが望ましい場合がある。一例では、ＴＤ  １０２または別のテスト・デバイスは、コンピューティング・デバイスにテザリングされ、またはデバイスのリモート・アクセスもしくはリモート・コントロールを可能にするコンピューティング・コードを含む場合がある。エントロピ・データ１２０に基づいてデバイスの動作を判定する複数の異なるテスト・シナリオを可能にすることのできるシステムの１つの可能な例を、下で図３に関して説明する。
【００４９】
例示的なテスト・システム
図３は、一実施態様による、エントロピ・データ１２０を提供するためにさまざまなコンピューティング・デバイスを含むアプリケーションをテストするシステム３００のブロック図を示す。開発者３０２は、新しいアプリケーションの作成、既存アプリケーションの保守、既存アプリケーションのリファクタリング、アプリケーションに対するテストの実行、メディア・コンテンツ・システムのテスト、他の動作の実行、またはその任意の組合せを割り当てられた個人、個人のグループ、またはエンティティとすることができる。開発者３０２は、テスト中のアプリケーション（ＡＵＴ）１１２に取り組んでいるものとすることができる。ＡＵＴ  １１２は、テスト・デバイス（ＴＤ）１０２（１）、ワークステーション３０８、他のデバイス、またはその任意の組合せなどのコンピューティング・デバイス上で実行され得る。ワークステーション３０８は、ラップトップ、デスクトップ・コンピュータ、タブレット・コンピュータ、別のコンピューティング・デバイス、またはその任意の組合せを含むことができる。
【００５０】
ワークステーション３０８は、プログラム・コードの作成および編集、デバッギング、コンパイル、他の動作の実行、またはその任意の組合せを容易にする統合開発環境（ＩＤＥ）を含むことができる。いくつかの実施態様では、ワークステーション３０８は、ＡＵＴ  １１２が別のハードウェア上で、異なるオペレーティング・システムの下で、などで実行しているかのようにＡＵＴ  １１２を実行するように設計されたエミュレータまたはシミュレータを含むことができる。
【００５１】
開発者３０２は、たとえば、ＴＤ  １０２（１）上で実行するＡＵＴ  １１２から判定されたエントロピ値１３８に基づいて、ＡＵＴ  １１２の使用に関連する問題を判定するためにＡＵＴ  １１２をテストすることができる。それらの問題は、判定された後に、軽減され得る。たとえば、開発者３０２は、問題を矯正するためにＡＵＴ  １１２のプログラム・コードを変更することができる。開発者２０２は、下で説明する技法を使用して、ＡＵＴ  １１２の動作に関連する問題の少なくとも一部を判定することができる。
【００５２】
開発者３０２、ＴＤ  １０２（１）、またはワークステーション３０８のうちの１つまたは複数は、第１のジオロケーション３１０（１）に配置され得る。ジオロケーション３１０は、特定の部屋、建物、都市、州、国、その他などの地理的位置を含む。たとえば、ジオロケーション３１０を、地球の表面の緯度および経度に関する座標のセットによって指定することができる。
【００５３】
ＴＤ  １０２（１）またはワークステーション３０８のうちの１つまたは複数を、第１のネットワーク３１２（１）に通信可能に結合することができる。第１のネットワーク３１２（１）を、より大きいネットワークに接続するかその一部とすることができる。たとえば、第１のネットワーク３１２（１）は、インターネットを含むことができる。第１のネットワーク３１２（１）を、図１のネットワーク１１０の実施形態とすることができる。
【００５４】
ＴＤ  １０２（１）またはワークステーション３０８によって使用される接続は、有線イーサネット接続、Ｗｉ−Ｆｉなどの無線ローカル・エリア・ネットワーク（ＷＬＡＮ）接続などを含むことができるが、これに限定はされない。たとえば、第１のジオロケーション３１０（１）は、開発者３０２が働いているオフィスを含むことができる。ＴＤ  １０２（１）は、イーサネット・ケーブルを介してルータに接続されたローカルＷｉ−Ｆｉアクセス・ポイントに接続することができる。ルータは、ネットワーク３１２（１）への接続性を提供するケーブル・モデムに接続される。
【００５５】
動作中に、ＡＵＴ  １１２は、宛先デバイス、別のコンピューティング・デバイス、データ・ソース、またはその任意の組合せなどの外部リソースへのアクセスに頼ることができる。たとえば、ＡＵＴ  １１２は、ユーザによって生成されたデータを送り、サーバから提示情報を取り出すソーシャル・ネットワーキング・アプリケーションを含むことができる。その結果、いくつかの実施態様では、ＡＵＴ  １１２は、通常動作のために宛先デバイスへのアクセスを必要とする可能性がある。図示の例では、宛先デバイスまたはデータ・ソースは、明瞭さのために省略されている。しかし、ＡＵＴ  １１２が、ネットワーク３１２（１）を介して多数の異なるコンピューティング・デバイスおよびデータ・ソース（宛先デバイス）と通信できることを理解されたい。
【００５６】
ＡＵＴ  １１２は、動作中に宛先デバイスと交換され得るＡＵＴトラフィック３１４を生成することができる。伝統的に、第１のジオロケーション３１０（１）のＴＤ  １０２（１）によって生成されたＡＵＴトラフィック３１４は、第１のネットワーク３１２（１）および宛先ネットワークに送られる。しかし、いくつかの実施態様では、開発者３０２が、第１のジオロケーション３１０（１）に関係するさらなるテスト・データを生成するために、ＴＤ  １０２（１）のさらなる制御を働かせることを望む場合がある。
【００５７】
本明細書で説明する機能性を提供するために、開発者３０２は、ＡＵＴ  １１２にソフトウェア開発キット（ＳＤＫ）を組み込むことができる。たとえば、コンパイル時に、コンパイルされるＡＵＴ  １１２にＳＤＫを含めることができる。他の実施態様では、ＳＤＫ以外のプラグイン、マクロ、他の命令セットまたは技法が、本明細書で説明する機能性を提供するのに使用され得る。たとえば、ＳＤＫの少なくとも一部の機能性を提供するコンピュータ・コードの行を、ＡＵＴ  １１２のコード・ベースに組み込むことができる。
【００５８】
１つの可能な実施形態では、ＳＤＫは、ＡＵＴトラフィック３１４のリダイレクションを可能にするユーザ・インターフェースを開発者３０２に提供することができる。ＳＤＫは、管理サーバ３１８との通信を確立する命令を含むことができる。たとえば、ＳＤＫは、開発者３０２が管理モジュール３２０と対話することを可能にするユーザ・インターフェースを追加することができる。
【００５９】
管理サーバ３１８は、管理モジュール３２０を利用して、プロキシ・ホスト・デバイス３２２またはプロキシ・アクセス・デバイス３２４のうちの１つまたは複数のアクティビティを調整することができる。プロキシ・ホスト・デバイス３２２は、第１のネットワーク３１２（１）に接続し、プロキシ・アクセス・デバイス３２４のうちの１つまたは複数にも接続する。たとえば、プロキシ・ホスト・デバイス３２２は、複数のプロキシ・アクセス・デバイス３２４をテザリングできるデスクトップ・コンピュータを含むことができる。図示の例では、４つのプロキシ・アクセス・デバイス３２４が、プロキシ・ホスト・デバイス３２２を介してネットワーク３１２（１）に結合される。いくつかの実施態様では、プロキシ・ホスト・デバイス３２２は、タブレット・コンピュータ、サーバなどを含むことができる。任意の個数のプロキシ・アクセス・デバイス３２４を、プロキシ・ホスト・デバイス３２２にテザリングすることができる。
【００６０】
プロキシ・アクセス・デバイス３２４は、ネットワーク・アクセス・ポイント３２６にも接続することができる。ネットワーク・アクセス・ポイント３２６は、第２のネットワーク３１２（２）への接続性を提供する。たとえば、プロキシ・アクセス・デバイス３２４は、商品セル電話機を含むことができ、ネットワーク・アクセス・ポイント３２６は、セル電話塔を含むことができ、第２のネットワーク３１２（２）は、無線セルラ・データ・ネットワーク（ＷＣＤＮ）などの無線広域ネットワーク（ＷＷＡＮ）を含むことができる。第２のネットワーク３１２（２）を、第１のネットワーク３１２（１）に接続することができる。たとえば、遠隔通信会社によって運営されるＷＣＤＮが、ピアリング・エージェントをインターネット・バックボーン・プロバイダに相互接続し、またはピアリング・エージェントを有することができる。その結果、第２のネットワーク３１２（２）のユーザは、第１のネットワーク３１２（１）上のリソースにアクセスでき、逆も同様である可能性がある。
【００６１】
プロキシ・アクセス・デバイス３２４を、ＴＤ  １０２（１）のジオロケーションとは異なるジオロケーション３１０（２）に配置することができる。たとえば、プロキシ・ホスト・デバイス３２２およびプロキシ・アクセス・デバイス３２４を、別の都市内、別の州内、別の国内など、第２のジオロケーション３１０（２）に設置することができる。
【００６２】
さらに、ＴＤ  １０２（２）を、ネットワーク３１２（１）に、ネットワーク・アクセス・ポイント３２６に、または別のネットワーク・アクセス・ポイントを介して接続することができる。ＴＤ  １０２（２）は、データを受信し、ネットワーク３１２（１）を介して分析システム１０８に、ＴＤ  １０２（２）の動作を表すデータを供給することができる。このデータは、エントロピ・データ１２０、ネットワーク・データ、他のデータ、またはその任意の組合せを含むことができる。
【００６３】
ＡＵＴ  １１２に戻って、テスト・プロセスの一部として、開発者３０２は、ユーザ・インターフェースを使用して、管理サーバ３１８の管理モジュール３２０にアクセスすることができる。ユーザ・インターフェースから、開発者３０２は、テスト中に使用すべき特定のジオロケーション３１０または特定のプロキシ・アクセス・デバイス３２４のうちの１つまたは複数を選択することができる。管理モジュール３２０は、ジオロケーション３１０、可用性、コスト、プロキシ・アクセス・デバイス３２４のタイプ、その他など、プロキシ・アクセス・デバイス３２４に関する情報を維持することができる。管理モジュール３２０は、オプトイン・オプションを介してまたはダウンロード中に受信された情報に基づいてなど、ＴＤ  １０２（２）からの情報を判定することもできる。
【００６４】
管理モジュール３２０は、ＡＵＴ  １１２と選択されたプロキシ・アクセス・デバイス３２４との間の第１の接続の確立を調整することができる。たとえば、開発者３０２による選択に基づいて、管理モジュール３２０は、プロキシ・ホスト・デバイス３２２を判定し、デジタル証明書、暗号証明書、ネットワーク・アドレス、他の情報、またはその任意の組合せなどの情報を取り出すことができる。一実施態様では、管理モジュール３２０は、ＡＵＴ  １１２との通信に関してプロキシ・ホスト・デバイス３２２を準備するためにプロキシ・ホスト・デバイス３２２と通信することができる。別の実施態様では、管理モジュール３２０は、構成データをＡＵＴ  １１２に供給することができ、ＡＵＴ  １１２は、プロキシ・ホスト・デバイス３２２に接続し、構成データを送る。
【００６５】
テスト中に、ＡＵＴトラフィック３１４は、第１のネットワーク３１２（１）を介してプロキシ・ホスト・デバイス３２２に、プロキシ・アクセス・デバイス３２４を介して第２のネットワーク３１２（２）にルーティングされ、その後に、第１のネットワーク３１２（１）上で、サーバ、別のコンピューティング・デバイス、別のＴＤ  １０２、分析システム１０８、別のデバイス、またはその任意の組合せなどの宛先デバイスに最終的に到着することができる。ＡＵＴトラフィック３１４は、アウトバウンド・アプリケーション・トラフィックおよびインバウンド・アプリケーション・トラフィックを含むことができる。アウトバウンド・アプリケーション・トラフィックは、ＡＵＴ  １１２から宛先デバイスに送られるデータを含むことができ、インバウンド・アプリケーション・トラフィックは、宛先デバイスからＡＵＴ  １１２に送られるデータを含むことができる。ＡＵＴトラフィック３１４は、たとえばＴＤ  １０２のネットワーク・トランシーバによって取り込まれるものとは別々に取り込まれ得るネットワーク・スループット・データを表すことができる。
【００６６】
動作中に、ＡＵＴ  １１２は、選択されたプロキシ・アクセス・デバイス３２４に関連するプロキシ・ホスト・デバイス３２２へのアウトバウンド・アプリケーション・トラフィックを指示することができる。プロキシ・ホスト・デバイス３２２は、アウトバウンド・アプリケーション・トラフィックをプロキシ・アクセス・デバイス３２４に転送し、プロキシ・アクセス・デバイス３２４は、アウトバウンド・アプリケーション・トラフィックを第２のネットワーク３１２（２）に送る。第２のネットワーク３１２（２）は、アウトバウンド・アプリケーション・トラフィックを宛先デバイスに向けることができる。宛先デバイスからのインバウンド・アプリケーション・トラフィックは、逆の経路をたどることができる。
【００６７】
管理サーバ３１８は、システムの動作に関連するログ・データ３３２を収集することができる。ログ・データ３３２は、プロキシ・セッション・データ３３４を含むことができる。プロキシ・ホスト・デバイス３２２を、プロキシ・セッション・データ３３４を生成するように構成することができる。プロキシ・セッション・データ３３４は、「パンくず」データ、プロキシ・アクセス・デバイス３２４の動作に関連する情報、プロキシ・ホスト・デバイス３２２によって転送されたデータのパケット・キャプチャ、他のデータ、またはその任意の組合せを含むことができる。パンくずデータは、特定の瞬間または時間のインターバルに関して、ウェブサイト上の現在のページ、プロキシ・アクセス・デバイス３２４が接続されているネットワークのタイプ、受信されたデータの量、送信されるデータの量、宛先デバイスへの待ち時間、データ・スループット、受信信号強度、送信電力、第２のネットワーク３１２（２）でのデータ転送に関連するコスト、エントロピ・データ１２０、他のデータ、またはその任意の組合せを含む１つまたは複数の動作パラメータを含むことができる。たとえば、パンくずデータは、プロキシ・アクセス・デバイス３２４が、タイムスタンプ２０１５０８１７２３１２０３００９２にウェブページｈｔｔｐ：／／ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍ／ｍａｉｎ．ｈｔｍｌに、４Ｇネットワーク接続を使用し、１４ｄＢｍの受信信号強度、７ｄＢｍの送信電力、４００Ｋｂｐｓのデータ・スループットなどを伴って接続されたことを示すことができる。したがって、プロキシ・セッション・データ３３４は、ＡＵＴ  １１２が所望のジオロケーション３１０の実世界の第２のネットワーク３１２（２）上で動作したことの産物である。結果のプロキシ・セッション・データ３３４は、関連する複雑さおよびニュアンスを含む実世界を表すことができる。
【００６８】
管理サーバ３１８は、プロキシ・セッション・データ３３４を入手することができる。たとえば、プロキシ・ホスト・デバイス３２２は、テスト・セッション中に、テスト・セッションの後に、周期的に、または所定のスケジュールに従って、管理サーバ３１８にプロキシ・セッション・データ３３４を送ることができる。別の例では、管理サーバ３１８は、プロキシ・セッション・データ３３４を求めてプロキシ・ホスト・デバイス３２２をポーリングすることができる。
【００６９】
プロキシ・セッション・データ３３４の代わりにまたはこれに加えて、１つまたは複数の展開されたデバイス３３６は、展開されたログ・データ３３８を管理サーバ３１８に供給することができる。展開されたデバイス３３６は、スマートフォン、ラップトップ、タブレット・コンピュータ、組込みデバイス、ウェアラブル・コンピューティング・デバイス、電化製品、自動車、航空機などを含むことができるが、これに限定はされない。展開されたデバイス３３６は、ＳＤＫを組み込んだＡＵＴ  １１２を実行することができ、このＳＤＫは、展開されたデバイス３３６上でのＡＵＴ  １１２の動作中に展開されたログ・データ３３８を収集するように構成され得る。展開されたログ・データ３３８は、特定の時刻の、展開されたデバイス３３６のジオロケーション３１０、パンくずデータ、およびＡＵＴトラフィック３１４または展開されたデバイス３３６の動作に関連する他の情報を含むデータを示す情報を含むことができる。たとえば、ユーザは、展開されたデバイス３３６での展開されたログ・データ３３８の収集を可能にすることに合意することができる。ユーザがＡＵＴ  １１２を使用している間に、展開されたログ・データ３３８が収集される。その結果、展開されたログ・データ３３８は、ＡＵＴ  １１２を使用して実際のユーザから入手される実世界情報を含む。ジオロケーション３１０データは、ＧＰＳ受信器などの測位デバイスから、Ｗｉ−Ｆｉホットスポット・ジオロケーション・ルックアップなどのサービスから、複数のネットワーク・アクセス・ポイント３２６での信号強度または時間遅れに基づいてネットワーク・プロバイダから、などで入手され得る。
【００７０】
分析モジュール３４０は、プロキシ・セッション・データ３３４を処理し、レポート・データ３４２を生成することができる。たとえば、分析モジュール３４０は、第１の要求が送られた時の第１のタイムスタンプおよび第１の要求に対する第１の応答が受信された時の第２のタイムスタンプを判定するために、プロキシ・セッション・データ３３４を解析することができる。第１のタイムスタンプおよび第２のタイムスタンプに基づいて、第２のネットワーク３１２（２）への要求を満足する待ち時間を判定することができる。
【００７１】
いくつかの実施態様では、分析モジュール３４０は、画像のシーケンスの第１のデータ項目（たとえば、画像）のデータ値のサブセットを判定することができる。分析モジュール３４０は、データ値のサブセットに基づいて、第１のデータ項目の第１のエントロピ値をさらに判定することができる。たとえば、分析モジュール３４０は、画像からデータ値のサブセットを判定することができ、サブセットの確率を判定することができる。この確率は、データ値のサブセットが特定の値を有する尤度を表すことができる。第１のエントロピ値を、確率を合計することによって判定することができる。他の実施態様も可能である。
【００７２】
いくつかの実施態様では、レポート・データ３４２は、ＡＵＴ  １１２に対する可能な変更の１つまたは複数の最適化を指定することができる。たとえば、レポート・データ３４２は、ＡＵＴ  １１２のうちで、しきい値を超える待ち時間を有する要求を生成している特定の部分を指定することができる。
【００７３】
展開されたログ・データ３３８を、管理サーバ３１８または別のデバイスにリアル・タイムでまたは指定されたインターバルに送信することができる。たとえば、展開されたデバイス３３６上のＡＵＴ  １１２を、展開されたログ・データ３３８をリアル・タイムで送るように構成することができる。リアル・タイムまたは近リアル・タイムは、しきい最大時間以内に行われるアクションを含むことができる。たとえば、展開されたログ・データ３３８は、１００ミリ秒（ｍｓ）以内に収集され、送信される場合に、リアル・タイムと考えることができる。リアル・タイム構成または近リアル・タイム構成では、管理サーバ３１８は、ＡＵＴ  １１２に関連する問題を示すレポート・データ３４２をすばやく生成できる可能性がある。その結果、開発者３０２は、問題をすばやく軽減し、したがって、ユーザ経験を改善できる可能性がある。
【００７４】
図示の例では、管理サーバ３１８は、さまざまなジオロケーション３１０でさまざまな条件（たとえば、ネットワーク・アクセス・ポイント３２６を介して、ネットワーク３１２（１）を介して、プロキシ・ホスト・デバイス３２２を介して、またはその任意の組合せ）の下でＡＵＴ  １１２を実行しているさまざまなデバイスに関するデータを収集することができる。分析システム１０８は、１つまたは複数のＴＤ  １０２の動作を示すデータならびに管理サーバ３１８からのデータを受信することができる。
【００７５】
分析システム１０８は、ＴＤ  １０２からまたは管理サーバ３１８から受信したデータをログ・データ１２４に記憶することができる。このデータは、エントロピ・データ１２６およびネットワーク・データ１２８を含むことができる。いくつかの実施形態では、ネットワーク・データ１２８は、上で議論したパンくずデータを含むことができる。分析システム１０８は、ＴＤ  １０２およびＡＵＴ  １１２の動作を示すデータを判定するためにエントロピ・データ１２６およびネットワーク・データ１２８を処理することができる。分析システム１０８は、分析モジュール１３０を含むことができ、分析モジュール１３０は、エントロピ・データ１２６、ネットワーク・データ１２８、他のデータ、またはその任意の組合せに基づいて、ＴＤ  １０２およびＡＵＴ  １１２の動作を示すデータを含むレポート・データ１３４を生成することができる。レポート・データ１３４は、開発者３０２によって、問題を軽減し、ＡＵＴ  １１２の機能性および応答性を改善し、ユーザ経験を改善するのに使用され得る。
【００７６】
図４は、一実施態様による、分析システム１０８として働くコンピューティング・デバイスのブロック図４００を示す。分析システム１０８は、１つまたは複数のコンピューティング・デバイスを含むことができる。任意のタイプのコンピューティング・デバイスおよび任意の個数のネットワーク化されたコンピューティング・デバイスが、本明細書で説明される実施態様を実行することができる。
【００７７】
１つまたは複数の電源４０４を、分析システム１０８の構成要素を動作させるのに適切な電力を供給するように構成することができる。いくつかの実施態様では、電源４０４は、再充電可能バッテリ、燃料電池、太陽電池、電力調整回路網、他のデバイス、他の回路、またはその任意の組合せを含むことができる。
【００７８】
分析システム１０８は、１つまたは複数の記憶された命令を実行するように構成された１つまたは複数のハードウェア・プロセッサ４０６（プロセッサ）を含むことができる。プロセッサ（１つまたは複数）４０６は、１つまたは複数のコアを含むことができる。１つまたは複数のクロック４０８が、日付、時刻、ティックなどを示す情報を提供することができる。たとえば、プロセッサ（１つまたは複数）４０６は、クロック４０８からのデータを使用して、タイムスタンプを生成し、事前にプログラムされたアクションをトリガするなどを行うことができる。分析システム１０８は、分析システム１０８のさまざまなモジュールおよび構成要素の間のデータの転送を可能にする、１つもしくは複数のバスまたは他の内部通信ハードウェアもしくは内部通信ソフトウェアを含むことができる。
【００７９】
分析システム１０８は、入出力インターフェース４１２、ネットワーク・インターフェース４１４、その他などの１つまたは複数の通信インターフェース４１０を含むことができる。通信インターフェース４１０は、分析システム１０８または分析システム１０８の構成要素が、他のデバイスまたは分析システム１０８の構成要素と通信することを可能にすることができる。入出力インターフェース４１２は、Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（Ｉ２Ｃ）、Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅバス（ＳＰＩ）、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）Ｉｍｐｌｅｍｅｎｔｅｒｓ  Ｆｏｒｕｍによって公布されるＵＳＢ、ＲＳ−２３２、その他などのインターフェースを含むことができる。
【００８０】
入出力インターフェース（１つまたは複数）４１２は、１つまたは複数の入出力デバイス４１６に結合することができる。入出力デバイス４１６は、分析システム１０８に関連する任意の形の入力デバイスまたは出力デバイスを含むことができる。たとえば、入出力デバイス４１６は、タッチ・センサ、キーボード、マウス・デバイス、マイクロホン、イメージ・センサ（たとえば、カメラ）、スキャナ、ディスプレイ、スピーカ、触覚デバイス、プリンタ、測位デバイスなどを含むことができる。測位デバイスは、衛星無線航法システム、慣性航法システム、地上無線航法システム、またはジオロケーション３１０を示すデータを生成するように構成された他のデバイスのうちの１つまたは複数を含むことができる。たとえば、衛星無線航法システムは、全地球測位システム（ＧＰＳ）受信器を含むことができ、地上無線航法システムは、ネットワーク・アクセス・ポイント３２６からの情報を利用することができるなどである。いくつかの実施態様では、入出力デバイス４１６を、分析システム１０８と共に物理的に組み込むことができ、あるいは、外部に配置することができる。
【００８１】
ネットワーク・インターフェース４１４を、分析システム１０８と、入出力デバイス４１６、ルータ、アクセス・ポイント、その他などの他のデバイスとの間の通信を提供するように構成することができる。ネットワーク・インターフェース４１４は、ローカル・エリア・ネットワーク（ＬＡＮ）、ＷＬＡＮ、広域ネットワーク（ＷＡＮ）、ＷＷＡＮなどを含む１つまたは複数のネットワーク３１２に結合するように構成されたデバイスを含むことができる。たとえば、ネットワーク・インターフェース４１４は、イーサネット、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、ＺｉｇＢｅｅ、Ｚ−Ｗａｖｅ、３Ｇ、４Ｇ、ＬＴＥなどと互換のデバイスを含むことができる。
【００８２】
図４に示されているように、分析システム１０８は、１つまたは複数のメモリ４１８を含むことができる。メモリ４１８は、１つまたは複数の非一時的コンピュータ可読記憶媒体（ＣＲＳＭ）を含むことができる。ＣＲＳＭは、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、量子記憶デバイス、機械コンピュータ記憶デバイス、ソリッド・ステート・メモリ・デバイスなどのうちの任意の１つまたは複数とすることができる。メモリ４１８は、コンピュータ可読命令、データ構造、プログラム・モジュール、および分析システム１０８の動作に関する他のデータの記憶を提供することができる。少数の例のモジュールが、メモリ４１８内に図示されているが、同一の機能性を、その代わりにハードウェア内で、ファームウェア内で、またはシステム・オン・ア・チップ（ＳｏＣ）として実施することができる。
【００８３】
メモリ４１８は、１つまたは複数のオペレーティング・システム（ＯＳ）４２０を含むことができる。ＯＳ  ４２０を、入出力インターフェース４１２、ネットワーク・インターフェース４１４、入出力デバイス４１６などのハードウェア・リソース・デバイスを管理し、プロセッサ４０６上で実行するアプリケーションまたはモジュールにさまざまなサービスを提供するように構成することができる。ＯＳ  ４２０は、ＦｒｅｅＢＳＤ  Ｐｒｏｊｅｃｔによって公布されるＦｒｅｅＢＳＤオペレーティング・システムの変形、ＵＮＩＸもしくはＵＮＩＸライク・オペレーティング・システム、Ｌｉｎｕｓ  Ｔｏｒｖａｌｄｓによって公布されるＬｉｎｕｘオペレーティング・システムの変形、米国ワシントン州レッドモンドのＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎからのＷｉｎｄｏｗｓオペレーティング・システム、米国カリフォルニア州カパティーノのＡｐｐｌｅ  Ｉｎｃ．によって公布されるＭａｃ  ＯＳもしくはｉＯＳ、または他のオペレーティング・システムを実施することができる。
【００８４】
データ・ストア４２２および以下のモジュールのうちの１つまたは複数を、メモリ４１８に記憶することもできる。モジュールを、フォアグラウンド・アプリケーション、バックグラウンド・タスク、デーモンなどとして実行することができる。データ・ストア４２２は、フラット・ファイル、データベース、リンク・リスト、ツリー、実行可能コード、スクリプト、または情報を記憶する他のデータ構造を使用することができる。いくつかの実施態様では、データ・ストア４２２またはデータ・ストア４２２の一部を、他のコンピューティング・デバイス、ネットワーク・アタッチト・ストレージ・デバイスなどを含む１つまたは複数の他のデバイスにまたがって分散させることができる。
【００８５】
通信モジュール４２４を、通信インターフェース４１０のうちの１つまたは複数を使用して１つまたは複数の他のデバイスとの通信を確立するように構成することができる。通信を、認証し、暗号化し、その他を行うことができる。たとえば、通信モジュール４２４は、通信に用いられるデバイスのアイデンティティを認証するのにデジタル証明書を利用することができる。たとえば、通信モジュール４２４を、プロキシ・ホスト・デバイス３２２との仮想プライベート・ネットワーク（ＶＰＮ）接続またはトンネルを確立するように構成することができる。
【００８６】
管理モジュール４２６を、図１のネットワーク１１０または図３のネットワーク３１２（１）などのネットワークを介する管理サーバ３１８との通信を確立するように構成することができる。管理モジュール４２６は、展開されたデバイス３３６または管理サーバ３１８のいずれかから展開されたデバイス３３６の動作を示すデータを取り出すように構成された展開されたデバイス・データ収集モジュール４２８を含むことができる。管理モジュール４２６は、さまざまなソースから受信されたデータを相関させるデータ相関モジュール４３０をさらに含むことができる。データ相関モジュール４３０は、受信されたデータを、データ・ストア４２２内のログ・データ１２４に記憶することができる。ログ・データ１２４は、エントロピ・データ１２６およびネットワーク・データ１２８を含むことができる。
【００８７】
さまざまな機能を実行するように構成され得る、他のモジュール４３２を含めることができる。
【００８８】
分析モジュール１３０は、ＴＤ  １０２、ＡＵＴ  １１２、テスト中の他のデバイス、またはその任意の組合せの動作を示すデータを判定するために、エントロピ・データ１２６およびネットワーク・データ１２８を処理することができる。分析モジュール１３０は、ＴＤ  １０２のうちの少なくとも１つに関連する時系列内のエントロピ・データ１２６の繰り返すサブセットに対応する１つまたは複数のパターンを判定するために、データをさらに処理することができる。さらに、分析モジュール１３０は、性能問題と、特定の性能問題が発生した状況とを判定することができる。分析モジュール１３０は、ログ・データ１２４の処理に基づいてレポート・データ１３４を作ることができる。さらに、データ・ストア４２２は、他のデータ４３６を含むことができる。
【００８９】
いくつかの実施態様では、分析モジュール１３０は、画像のシーケンスの第１のデータ項目（たとえば、画像）のデータ値のサブセットを判定することができる。分析モジュール１３０は、データ値のサブセットに基づいて、第１のデータ項目の第１のエントロピ値をさらに判定することができる。たとえば、分析モジュール１３０は、画像からデータ値のサブセットを判定することができ、サブセットの確率を判定することができる。この確率は、データ値のサブセットが特定の値を有する尤度を表すことができる。第１のエントロピ値を、確率を合計することによって判定することができる。他の実施態様も可能である。
【００９０】
図５は、本開示の範囲内のコンピューティング・デバイス５０２を示すブロック５００である。コンピューティング・デバイス５０２は、１つまたは複数のＴＤ  １０２、ワークステーション３０８、プロキシ・アクセス・デバイス３２４、展開されたデバイス３３６、または他のデバイスを含むことができる。任意のタイプのコンピューティング・デバイス５０２および任意の個数のネットワーク化されたコンピューティング・デバイスが、本明細書で説明する実施態様を実行することができる。
【００９１】
１つまたは複数の電源５０４を、コンピューティング・デバイス５０２の構成要素を動作させるのに適切な電力を供給するように構成することができる。いくつかの実施態様では、電源５０４は、再充電可能バッテリ、燃料電池、太陽電池、電力調整回路網などを含むことができる。
【００９２】
コンピューティング・デバイス５０２は、１つまたは複数の記憶された命令を実行するように構成された１つまたは複数のハードウェア・プロセッサ５０６（プロセッサ）を含むことができる。プロセッサ（１つまたは複数）５０６は、１つまたは複数のコアを含むことができる。１つまたは複数のクロック５０８が、日付、時刻、ティックなどを示す情報を提供することができる。たとえば、プロセッサ（１つまたは複数）５０６は、クロック５０８からのデータを使用して、タイムスタンプを生成し、事前にプログラムされたアクションをトリガするなどを行うことができる。コンピューティング・デバイス５０２は、コンピューティング・デバイス５０２のさまざまなモジュールおよび構成要素の間のデータの転送を可能にする、１つもしくは複数のバスまたは他の内部通信ハードウェアもしくは内部通信ソフトウェアを含むことができる。
【００９３】
コンピューティング・デバイス５０２は、入出力インターフェース５１２、ネットワーク・インターフェース５１４、その他などの１つまたは複数の通信インターフェース５１０を含むことができる。通信インターフェース５１０は、コンピューティング・デバイス５０２またはコンピューティング・デバイス５０２の構成要素が、他のデバイスまたはコンピューティング・デバイス５０２の構成要素と通信することを可能にすることができる。入出力インターフェース５１２は、Ｉｎｔｅｒ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（Ｉ２Ｃ）、Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅバス（ＳＰＩ）、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）Ｉｍｐｌｅｍｅｎｔｅｒｓ  Ｆｏｒｕｍによって公布されるＵＳＢ、ＲＳ−２３２、その他などのインターフェースを含むことができる。
【００９４】
入出力インターフェース（１つまたは複数）５１２は、１つまたは複数の入出力デバイス５１６に結合することができる。入出力デバイス５１６は、コンピューティング・デバイス５０２に関連する任意の形の入力デバイスまたは出力デバイスを含むことができる。たとえば、入出力デバイス５１６は、タッチ・センサ、キーボード、マウス・デバイス、マイクロホン、イメージ・センサ（たとえば、カメラ）、スキャナ、ディスプレイ、スピーカ、触覚デバイス、プリンタ、測位デバイスなどを含むことができる。測位デバイスは、衛星無線航法システム、慣性航法システム、地上無線航法システム、またはジオロケーション３１０を示すデータを生成するように構成された他のデバイスのうちの１つまたは複数を含むことができる。たとえば、衛星無線航法システムは、全地球測位システム（ＧＰＳ）受信器を含むことができ、地上無線航法システムは、ネットワーク・アクセス・ポイント３２６からの情報を利用することができるなどである。いくつかの実施態様では、入出力デバイス５１６を、コンピューティング・デバイス５０２と共に物理的に組み込むことができ、あるいは、外部に配置することができる。
【００９５】
ネットワーク・インターフェース５１４を、コンピューティング・デバイス５０２と、入出力デバイス５１６、ルータ、アクセス・ポイント、その他などの他のデバイスとの間の通信を提供するように構成することができる。ネットワーク・インターフェース５１４は、ローカル・エリア・ネットワーク（ＬＡＮ）、ＷＬＡＮ、広域ネットワーク（ＷＡＮ）、ＷＷＡＮなどを含む１つまたは複数のネットワーク３１２に結合するように構成されたデバイスを含むことができる。たとえば、ネットワーク・インターフェース５１４は、イーサネット、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、ＺｉｇＢｅｅ、Ｚ−Ｗａｖｅ、３Ｇ、４Ｇ、ＬＴＥなどと互換のデバイスを含むことができる。
【００９６】
コンピューティング・デバイス５０２は、ｓｕｂｓｃｒｉｂｅｒ  ｉｄｅｎｔｉｔｙ  ｍｏｄｕｌｅ（ＳＩＭ）５１８を含むことができる。たとえば、ＴＤ  １０２および展開されたデバイス３３６は、ＳＩＭ  ５１８を含むことができる。ＳＩＭ  ５１８は、ｉｎｔｅｒｎａｔｉｏｎａｌ  ｍｏｂｉｌｅ  ｓｕｂｓｃｒｉｂｅｒ  ｉｄｅｎｔｉｔｙ（ＩＭＳＩ）番号、暗号鍵、ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  ｃａｒｄ  ｉｄｅｎｔｉｆｉｅｒ（ＩＣＣＩＤ）、連絡先情報、または他のデータなどの情報を記憶できる非一時的コンピュータ可読記憶媒体を含むことができる。ＳＩＭ  ５１８は、ネットワーク３１２のうちの１つまたは複数との通信に、ネットワーク・インターフェース５１４によって使用され得る。たとえば、ＳＩＭ  ５１８に記憶されたＩＭＳＩおよび暗号鍵を取り出し、ＷＣＤＮとの通信を確立するのに使用することができる。
【００９７】
図５に示されているように、コンピューティング・デバイス５０２は、１つまたは複数のメモリ５２０を含むことができる。メモリ５２０は、１つまたは複数の非一時的コンピュータ可読記憶媒体（ＣＲＳＭ）を含むことができる。ＣＲＳＭは、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、量子記憶デバイス、機械コンピュータ記憶デバイス、ソリッド・ステート・メモリ・デバイスなどのうちの任意の１つまたは複数とすることができる。メモリ５２０は、コンピュータ可読命令、データ構造、プログラム・モジュール、およびコンピューティング・デバイス５０２の動作に関する他のデータの記憶を提供することができる。メモリ５２０に記憶されている、少数の例のモジュールが図示されているが、同一の機能性を、その代わりにハードウェア内で、ファームウェア内で、またはシステム・オン・ア・チップ（ＳｏＣ）として実施することができる。
【００９８】
メモリ５２０は、１つまたは複数のオペレーティング・システム（ＯＳ）５２２を含むことができる。ＯＳ  ５２２を、入出力インターフェース５１２、ネットワーク・インターフェース５１４、入出力デバイス５１６などのハードウェア・リソース・デバイスを管理し、プロセッサ５０６上で実行するアプリケーションまたはモジュールにさまざまなサービスを提供するように構成することができる。ＯＳ  ５２２は、ＦｒｅｅＢＳＤ  Ｐｒｏｊｅｃｔによって公布されるＦｒｅｅＢＳＤオペレーティング・システムの変形、ＵＮＩＸもしくはＵＮＩＸライク・オペレーティング・システム、Ｌｉｎｕｓ  Ｔｏｒｖａｌｄｓによって公布されるＬｉｎｕｘオペレーティング・システムの変形、米国ワシントン州レッドモンドのＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎからのＷｉｎｄｏｗｓオペレーティング・システム、米国カリフォルニア州カパティーノのＡｐｐｌｅ  Ｉｎｃ．によって公布されるＭａｃ  ＯＳもしくはｉＯＳ、または他のオペレーティング・システムを実施することができる。
【００９９】
データ・ストア５２４および以下のモジュールのうちの１つまたは複数を、メモリ５２０に記憶することもできる。モジュールを、フォアグラウンド・アプリケーション、バックグラウンド・タスク、デーモンなどとして実行することができる。データ・ストア５２４は、フラット・ファイル、データベース、リンク・リスト、ツリー、実行可能コード、スクリプト、または情報を記憶する他のデータ構造を使用することができる。いくつかの実施態様では、データ・ストア５２４またはデータ・ストア５２４の一部を、他のコンピューティング・デバイス５０２、ネットワーク・アタッチト・ストレージ・デバイスなどを含む１つまたは複数の他のデバイスにまたがって分散させることができる。
【０１００】
通信モジュール５２６を、通信インターフェース５１０のうちの１つまたは複数を使用して１つまたは複数の他のデバイスとの通信を確立するように構成することができる。通信を、認証し、暗号化し、その他を行うことができる。たとえば、通信モジュール５２６は、通信に用いられるデバイスのアイデンティティを認証するのにデジタル証明書を利用することができる。たとえば、通信モジュール５２６を、プロキシ・ホスト・デバイス３２２との仮想プライベート・ネットワーク（ＶＰＮ）接続またはトンネルを確立するように構成することができる。
【０１０１】
メモリ５２０は、ＡＵＴ  １１２を記憶することができる。上で説明したように、いくつかの実施態様では、ＡＵＴ  １１２は、ソフトウェア開発キット（ＳＤＫ）の少なくとも一部を組み込むことができる。ＳＤＫの要素を、１つまたは複数のハードウェア・プロセッサ５０６上で実行するように構成することができる。これらの要素は、コンピューティング・デバイス５０２上で実行するオペレーティング・システム５２２の、カーネル空間ではなくユーザ空間内で実行することができる。たとえば、ＡＵＴ  １１２およびＳＤＫの要素は、ユーザ・アカウントの特権で実行することができ、第１のユーザ・アカウントは、ルート・アカウント、スーパーユーザ、管理者、または他のタイプの高められたアカウントより低い、ＯＳ  ５２２内の特権を有する。
【０１０２】
いくつかの実施形態では、ＳＤＫを、特定のネットワーク・アドレスとの間でＡＵＴトラフィック３１４を向けるように構成することができる。たとえば、ＳＤＫが、アウトバウンド・アプリケーション・トラフィックをインターセプトし、そのトラフィックを選択されたプロキシ・ホスト・デバイス３２２に向けるように構成可能である場合がある。一実施態様では、ＳＤＫは、通信モジュール５２６によって提供されるものなどのＶＰＮ機能性を実施しまたは要求することができる。たとえば、ＳＤＫは、プロキシ・ホスト・デバイス３２２への暗号化されたトンネルを確立するために、通信モジュール５２６に要求を発行することができる。確立された後に、ＡＵＴトラフィック３１４を、ＶＰＮを介してプロキシ・ホスト・デバイス３２２に向けることができる。
【０１０３】
メモリ５２０内の性能モジュール１１４は、ＡＵＴ  １１２の動作を監視することができる。性能モジュール１１４は、複数のデータ項目の選択されたデータ項目内のデータ値の分布を示すエントロピ値１３８を判定することができる。性能モジュール１１４は、エントロピ値１３８に基づいて、ＡＵＴ  １１２、コンピューティング・デバイス５０２、ネットワーク・スループット、またはその任意の組合せの性能を示すデータを判定することができる。いくつかの場合に、性能を示すデータを、ウェブサーバ応答の遅延など、何らかの他のシステムの性能に基づくものとすることができる。
【０１０４】
一例では、性能モジュール１１４は、画像のシーケンスの第１の画像の第１のエントロピ値１３８および画像のシーケンスの第２の画像の第２のエントロピ値１３８を判定することができる。性能モジュール１１４は、第１のエントロピ値１３８および第２のエントロピ値１３８に基づいて、コンピューティング・デバイス５０２またはＡＵＴ  １１２の性能を示すデータを判定することができる。性能モジュール１１４は、画像データ１１６を処理して、エントロピ値１３８を判定することができる。さらに、性能モジュール１１４は、エントロピ・データ１２０およびネットワーク・データ１２２をデータ・ログ１０８に記憶することができる。さらに、性能モジュール１１４は、レポート・データ５３２を生成することができ、レポート・データ５３２は、データ・ストア５２４に記憶され、オプションでレビューのために別のコンピューティング・デバイスに送出され得る。
【０１０５】
一例では、画像のシーケンスのエントロピ値１３８が、事前に決定された期間にわたって変化しない時に、待ち時間インターバル１４４を識別することができる。いくつかの場合に、待ち時間インターバル１４４内のエントロピ値のシヌソイド変動または繰り返す変動は、ローディング・インジケータ１０６に対応する場合がある。
【０１０６】
別の例では、画像のシーケンスのサブセットのエントロピ値１３８が、時系列にわたって繰り返すパターンを表す時に、入力を示すシグネチャを検出するために、そのパターンを入力データ、アプリケーション・コード、または他の動作パラメータに相関させることができる。たとえば、第１のサブセットを、第１のエントロピ値を判定するために処理することができ、第２のサブセットを、第２のエントロピ値を判定するために処理することができる。パターンを、時系列にわたるエントロピ値の繰り返すサブセットに基づいて判定することができる。代替案では、パターンを、ヒストリカル・データから判定することができる。他の実施形態も可能である。
【０１０７】
開発者モジュール５２８をメモリ５２０に記憶することができる。開発者モジュール５２８は、統合開発環境、ビルド・システムなどのうちの１つまたは複数を含むことができる。たとえば、開発者モジュール５２８は、Ａｐｐｌｅ  Ｉｎｃ．からのＸｃｏｄｅ、Ｇｏｏｇｌｅ  Ｉｎｃ．からのＡｎｄｒｏｉｄ  Ｓｔｕｄｉｏ、ｗｗｗ．ｇｒａｄｌｅ．ｏｒｇで公布されるＧｒａｄｌｅ、ｗｗｗ．ｊｅｎｋｉｎｓ−ｃｉ．ｏｒｇで公布されるＪｅｎｋｉｎｓ、ｗｗｗ．ｔｒａｖｉｓ−ｃｉ．ｏｒｇで公布されるＴｒａｖｉｓ  ＣＩ、Ｐｅｒｆｏｒｃｅ  Ｓｏｆｔｗａｒｅ，Ｉｎｃ．からのＰｅｒｆｏｒｃｅなどを含むことができる。
【０１０８】
他のモジュール５３０も、メモリ５２０内に存在することができる。いくつかの実施態様では、モジュールのうちの１つまたは複数を、少なくとも部分的に他のデバイスのメモリ５２０内に記憶することができ、少なくとも部分的に他のデバイス上で実行することなどができる。たとえば、開発者モジュール５２８に関連する１つまたは複数の機能を、サーバ上で実行することができる。
【０１０９】
コンピューティング・デバイス５０２によって使用されるさまざまな情報を、データ・ストア５２４に記憶することができる。たとえば、アプリケーション・データ５３４は、データ・ストア５２４に記憶され得、ＡＵＴ  １１２、開発者モジュール５２８、その他などのモジュールの動作に関連する情報を含むことができる。他のデータ５３６をも、データ・ストア５２４に記憶することができる。他のデータ５３６は、デバイスのテストに関連する情報を含むテスト構成データを含むことができる。たとえば、テスト構成データは、ネットワーク・テストに使用される開発者３０２によって選択された第２のジオロケーション３１０（２）、プロキシ・ホスト・デバイス３２２のネットワーク・アドレス、プロキシ・ホスト・デバイス３２２にアクセスするための証明書、プロキシ・アクセス・デバイス３２４へのアクセスに関連するコスト、プロキシ・ホスト・デバイス３２２、プロキシ・アクセス・デバイス３２４に関する管理サーバ３１８からの情報、その他を指定することができる。さらに、他のデータ５３６は、１つまたは複数のしきい値を含むことができる。たとえば、しきい値は、それを超える時にレポート・データ５３２内のアラートをもたらす待ち時間を含むことができる。しきい値は、最大値、最小値、値の範囲などをも含むことができる。
【０１１０】
異なる実施態様では、異なるコンピューティング・デバイス５０２が、異なる能力または容量を有する場合がある。たとえば、ワークステーション３０８は、ＴＤ  １０２または展開されたデバイス３３６のプロセッサ５０６能力およびメモリ５２０容量と比較して、大幅により多いプロセッサ５０６能力およびメモリ５２０容量を有する場合がある。
【０１１１】
図６は、一実施態様による、本開示の範囲内の、管理サーバ３１８として働くコンピューティング・デバイスのブロック図６００である。管理サーバ３１８は、ＡＵＴ  １１２とプロキシ・ホスト・デバイス３２２に接続されたプロキシ・アクセス・デバイス３２４との間の通信の調整などの機能性を提供することができる。
【０１１２】
上で図４に関して説明した分析システム１０８と同様に、管理サーバ３１８は、電源６０２、ハードウェア・プロセッサ（１つまたは複数）６０４（プロセッサ）、クロック６０６、または通信インターフェース６０８のうちの１つまたは複数を含むことができる。通信インターフェース６０８は、入出力インターフェース６１０、ネットワーク・インターフェース６１２などを含むことができる。
【０１１３】
入出力インターフェース（１つまたは複数）６１０は、１つまたは複数の入出力デバイス６１４に結合することができる。入出力デバイス６１４は、上で図４に関して説明したものなど、任意の形の入力デバイスまたは出力デバイスを含むことができる。いくつかの実施態様では、入出力デバイス６１４を、管理サーバ３１８と共に物理的に組み込むことができ、あるいは、外部に配置することができる。
【０１１４】
ネットワーク・インターフェース６１２を、管理サーバ３１８と他のデバイスとの間の通信を提供するように構成することができる。上で図４に関して説明したように、ネットワーク・インターフェース６１２は、１つまたは複数のネットワーク３１２に結合するように構成されたデバイスを含むことができる。
【０１１５】
管理サーバ３１８は、管理サーバ３１８のさまざまなモジュールおよび構成要素の間のデータの転送を可能にする、１つもしくは複数のバスまたは他の内部通信ハードウェアもしくは内部通信ソフトウェアを含むことができる。
【０１１６】
図６に示されているように、管理サーバ３１８は、上で図４に関して説明したものなど、１つまたは複数のメモリ６１６を含むことができる。メモリ６１６は、１つまたは複数の非一時的ＣＲＳＭを含むことができる。メモリ６１６は、コンピュータ可読命令、データ構造、プログラム・モジュール、または管理サーバ３１８の動作に関する他のデータの記憶を提供することができる。少数の例のモジュールが、メモリ６１６に記憶されて図示されているが、同一の機能性を、その代わりにハードウェア内で、ファーウウェア内で、またはＳｏＣとして実施することができる。
【０１１７】
メモリ６１６は、上で図４に関して説明したものなどのＯＳ  ６１８を含むことができる。
【０１１８】
データ・ストア６２０および以下のモジュールのうちの１つまたは複数を、メモリ６１６に記憶することもできる。モジュールを、フォアグラウンド・アプリケーション、バックグラウンド・タスク、デーモンなどとして実行することができる。データ・ストア６２０は、フラット・ファイル、データベース、リンク・リスト、ツリー、実行可能コード、スクリプト、または情報を記憶する他のデータ構造を使用することができる。いくつかの実施態様では、データ・ストア６２０またはデータ・ストア６２０の一部を、他のコンピューティング・デバイス、ネットワーク・アタッチト・ストレージ・デバイスなどを含む１つまたは複数の他のデバイスにまたがって分散させることができる。
【０１１９】
通信モジュール６２２を、通信インターフェース６０８のうちの１つまたは複数を使用して１つまたは複数の他のデバイスとの通信を確立するように構成することができる。通信を、認証し、暗号化し、その他を行うことができる。たとえば、通信モジュール６２２は、通信に用いられるデバイスのアイデンティティを認証するためにデジタル証明書を利用することができる。
【０１２０】
メモリ６１６は、管理モジュール３２０を記憶することができる。管理モジュール３２０は、開発者インターフェース・モジュール６２４、調整モジュール６２６、展開されたデバイス・データ収集モジュール６２８などのうちの１つまたは複数を含むことができる。分析モジュール３４０、アカウンティング・モジュール６３０、または他のモジュール６３２も、メモリ３１６内に存在することができる。
【０１２１】
開発者インターフェース・モジュール６２４は、開発者３０２または開発者３０２によって使用されるアプリケーションにインターフェース機能性を提供する。たとえば、開発者インターフェース・モジュール６２４は、開発者３０２が特定のプロキシ・アクセス・デバイス３２４を選択するためのユーザ・インターフェースを提示することができ、あるいは、ＳＤＫが管理サーバ３１８の機能のうちの１つまたは複数にアクセスするのに使用できるアプリケーション・プログラミング・インターフェース（ＡＰＩ）を含むことができる。いくつかの実施態様では、開発者インターフェース・モジュール６２４の少なくとも一部を、ＳＤＫの一部として提供することができ、あるいは、ＡＵＴ  １１２内に一体化することができる。
【０１２２】
調整モジュール６２６は、システム３００のさまざまな機能を調整するように構成される。調整モジュール６２６を、システム３００の動作を指示するためにデータ・ストア６２０に記憶されたシステム管理データ６３４にアクセスするように構成することができる。システム管理データ６３４は、プロキシ・ホスト・デバイス（ＰＨＤ）状況データ６３８、プロキシ・アクセス・デバイス（ＰＡＤ）状況データ６４０、その他などの状況データ６３６を含むことができる。ＰＨＤ状況データ６３８は、ネットワーク・アドレス、動作状況、インストールされたソフトウェアを示す情報、インストールされたソフトウェアのバージョン、現在の利用、その他などの情報を含むことができる。ＰＡＤ状況データ６４０は、プロキシ・アクセス・デバイス３２４のメーカーおよびモデル、プロキシ・アクセス・デバイス３２４のＯＳバージョン、第２のネットワーク３１２（２）への接続状況、プロキシ・アクセス・デバイス３２４が現在ＡＵＴ  １１２によって使用中であるかどうか、その他などの情報を含むことができる。
【０１２３】
システム管理データ６３４は、開発者アカウント・データ６４２をも含むことができる。開発者アカウント・データ６４２は、個々のアカウントのログインおよびパスワード、請求情報、使用情報、その他などの情報を含むことができる。
【０１２４】
システム管理データ６３４は、デバイス構成データ６４４をも含むことができる。デバイス構成データ６４４は、プロキシ・ホスト・デバイス３２２またはプロキシ・アクセス・デバイス３２４のうちの１つまたは複数を構成するのに使用できる命令、アプリケーション、モジュールなどを含むことができる。たとえば、デバイス構成データ６４４は、プロキシ・アクセス・デバイス３２４に命令を送るためにプロキシ・ホスト・デバイス３２２によって実行され得る１つまたは複数のスクリプトを含むことができる。これらの命令は、プロキシ・ホスト・デバイス３２２と第２のネットワーク３１２（２）との間でデータを転送するようにプロキシ・アクセス・デバイス３２４を構成することができる。
【０１２５】
データ・ストア６２０は、上で説明したものなどのテスト構成データ６４６をも記憶することができる。いくつかの実施態様では、管理サーバ３１８は、テスト構成データ６４６の少なくとも一部を生成することができる。テスト構成データ６３６の生成を、開発者３０２によって供給される情報に少なくとも部分的に基づくものとすることができる。たとえば、開発者３０２は、開発者インターフェース・モジュール６２４を使用して、異なるタイプのテスト・パラメータ、アラーム限度、テストしきい値、その他などのパラメータを指定することができる。これらのパラメータに基づいて、管理モジュール３２０は、テスト構成データ６４６を生成することができる。いくつかの実施態様では、テスト構成データ６４６を、開発者３０２によって変更することができ、あるいは、完全に開発者３０２または別のデバイスもしくはエンティティによって生成することができる。
【０１２６】
調整モジュール６２６に戻って、システム管理データ６３４およびテスト構成データ６４６を使用して、開発者３０２にテスト機能性を提供することができる。たとえば、開発者３０２は、開発者インターフェース・モジュール６２４を使用して、ＡＵＴ  １１２に関するテスト・サービスを要求することができる。調整モジュール６２６は、状況データ６３６を査定して、使用可能な、ジオロケーション３１０、ネットワークのタイプ、その他などの情報を判定することができる。この判定に基づいて、調整モジュール６２６は、開発者インターフェース・モジュール６２４によって開発者３０２に情報を提示することができる。たとえば、この情報は、テストに使用可能なジオロケーション３１０およびプロキシ・アクセス・デバイス３２４、これらのリソースの使用に関連するコストなどを示すことができる。
【０１２７】
開発者３０２による選択または事前定義のデフォルトに応答して、調整モジュール６２６は、ＡＵＴ  １１２からのＡＵＴトラフィック３１４が、宛先デバイスに達するようにプロキシ・アクセス・デバイス３２４および第２のネットワーク３１２（２）を介して向けられるように、ＴＤ  １０２とプロキシ・アクセス・デバイス３２４との間の接続の確立を調整することができる。たとえば、開発者３０２によるユーザ・インターフェース内での選択に応答して、ＡＵＴ  １１２は、選択された第２のジオロケーション３１０（２）にあるプロキシ・ホスト・デバイス３２２に関連するネットワーク・アドレスおよび証明書を受信することができる。ＡＵＴ  １１２は、このネットワーク・アドレスおよび証明書を使用して、プロキシ・ホスト・デバイス３２２との接続を確立することができる。したがって、ＡＵＴトラフィック３１４を、ＴＤ  １０２またはワークステーション３０８上で実行しているＡＵＴ  １１２とプロキシ・ホスト・デバイス３２２との間で直接に交換することができる。別の実施態様では、管理サーバ３１８が、ＡＵＴ  １１２とプロキシ・ホスト・デバイス３２２との間でＡＵＴトラフィック３１４を中継する媒介物として働くことができる。
【０１２８】
調整モジュール６２６を、ログ・データ３３２を獲得するように構成することができる。たとえば、調整モジュール６２６は、ＴＤログ・データ６５０を受信するために、ＴＤ  １０２または分析システム１０８との接続を確立することができる。調整モジュール６２６は、プロキシ・セッション・データ３３４の進行中のストリームを受信するために、プロキシ・ホスト・デバイス３２２との接続を確立することができる。プロキシ・セッション・データ３３４のストリームを、開発者３０２がＡＵＴ  １１２をテストしている間にリアル・タイムまたは近リアル・タイムで受信することができる。たとえば、プロキシ・セッション・データ３３４を、５秒おきに管理サーバ１１８に送ることができる。
【０１２９】
いくつかの実施態様では、ログ・データ３３２は、ＴＤログ・データ６５０を含むことができる。たとえば、ＳＤＫまたはＡＵＴ  １１２に埋め込まれたコーディングされたものの行が、ＴＤログ・データ６５０を管理サーバ３１８に送ることができる。
【０１３０】
展開されたデバイス・データ収集モジュール６２８を、展開されたデバイス３３６と通信し、展開されたログ・データ３３８を入手するように構成することができる。展開されたデバイス・データ収集モジュール６２８を、ＡＵＴ  １１２の使用中にリアル・タイムまたは近リアル・タイムで展開されたログ・データ３３８を受信するように構成することができる。たとえば、展開されたデバイス３３６上で実行するＡＵＴ  １１２が、特定のジオロケーション３１０の特定のネットワーク３１２によって宛先デバイスとＡＵＴトラフィック３１４を交換している間に、展開されたログ・データ３３８を生成することができる。展開されたログ・データ３３８は、ＡＵＴ  １１２が、特定のネットワーク３１２上で、特定のジオロケーション３１０で、などで問題を経験しているかどうかを判定するのに、管理サーバ３１８によって使用され得る。
【０１３１】
ログ・データ３３２は、ＴＤ  １０２のうちの１つまたは複数、プロキシ・アクセス・デバイス３２４のうちの１つまたは複数、および１つまたは複数の展開されたデバイス３３６からのエントロピ値１３８に対応するエントロピ・データ６５６をも含むことができる。
【０１３２】
上で説明したように、分析モジュール３４０を、レポート・データ６５８を生成するためにデータ・ストア６２０に記憶された情報を使用するように構成することができる。たとえば、分析モジュール３４０は、ログ・データ３３２を分析して、ＡＵＴ  １１２が宛先デバイスのリソースを使用して問題を経験する、特定のＷＣＤＮまたは都市の部分があるかどうかを判定することができる。
【０１３３】
アカウンティング・モジュール６３０を、システム３００の使用に関連する料金を判定し、査定し、プロキシ・アクセス・デバイス３２４のオペレータに報酬を提供し、その他を行うように構成することができる。たとえば、アカウンティング・モジュール６３０は、特定のジオロケーション３１０の特定のプロキシ・アクセス・デバイス３２４をある時間の長さだけ使用するコスト、転送されたデータの量などを開発者３０２に供給することができる。いくつかの実施態様では、ユーザは、彼らのモバイル・デバイスをシステムに参加させ、そのモバイル・デバイスにプロキシ・アクセス・デバイス３２４として働かせることができる。たとえば、ユーザが他の形でセル電話機を使用してない時間中に、ユーザは、彼らのセル電話機をプロキシ・ホスト・デバイス３２２にテザリングし、プロキシ・アクセス・デバイス３２４としてのそのセル電話機の使用を許すことができる。そのような使用中に、セル電話機に記憶されたユーザに関連するデータを保護することができ、セル電話機上で実行する他のアプリケーションを終了させることができ、その他を行うことができる。上記および他の手段は、ユーザのデータのセキュリティを安全保護するため、セル電話機上で実行するアプリケーションがテストの結果に影響するのを防ぐため、などのために講じられ得る。この使用を可能にすることの返礼として、ユーザは、報酬を受け取ることができる。たとえば、ユーザが開発者３０２である場合に、開発者３０２は、彼らのアカウントでクレジットを受け取ることができる。そのクレジットを使用して、別の開発者３０２に関連するプロキシ・アクセス・デバイス３２４を使用してテストを実行することができる。他の実施態様では、報酬は、通貨の形での支払いなど、資金転送を含むことができる。
【０１３４】
いくつかの実施態様では、モジュールのうちの１つまたは複数を、他のデバイスのメモリ内に少なくとも部分的に記憶することができ、他のデバイス上で少なくとも部分的に実行することができ、その他を行うことができる。たとえば、アカウンティング・モジュール６３０に関連する１つまたは複数の機能を、別のサーバ上で実行することができる。
【０１３５】
データ・ストア６２０内の他のデータ６６０は、管理サーバ３１８またはそのモジュールに関連する構成およびセッティングなどの情報を含むことができる。
【０１３６】
図７は、一実施態様による、本開示の範囲内のプロキシ・ホスト・デバイス３２２として働くコンピューティング・デバイスのブロック図７００である。プロキシ・ホスト・デバイス３２２を、さまざまな異なるタイプのコンピューティング・デバイスを使用して実施することができる。たとえば、プロキシ・ホスト・デバイス３２２は、ミニ・デスクトップ・コンピュータ、タブレット・コンピュータ、サーバなどを含むことができる。
【０１３７】
上で図４および図６に関して説明したものと同様に、プロキシ・ホスト・デバイス３２２は、電源７０２、ハードウェア・プロセッサ（１つまたは複数）７０４（プロセッサ）、クロック７０６、または通信インターフェース７０８のうちの１つまたは複数を含むことができる。通信インターフェース７０８は、入出力インターフェース７１０、ネットワーク・インターフェース７１２などを含むことができる。
【０１３８】
入出力インターフェース（１つまたは複数）７１０は、１つまたは複数の入出力デバイス７１４に結合することができる。入出力デバイス７１４は、上で図４および図６に関して説明したものなど、任意の形の入力デバイスまたは出力デバイスを含むことができる。いくつかの実施態様では、入出力デバイス７１４を、プロキシ・ホスト・デバイス３２２と共に物理的に組み込むことができ、あるいは外部に配置することができる。
【０１３９】
ネットワーク・インターフェース７１２を、プロキシ・ホスト・デバイス３２２と他のデバイスとの間の通信を提供するように構成することができる。上で図４および図６に関して説明したように、ネットワーク・インターフェース７１２は、１つまたは複数のネットワーク３１２に結合するように構成されたデバイスを含むことができる。
【０１４０】
プロキシ・ホスト・デバイス３２２は、プロキシ・ホスト・デバイス３２２のさまざまなモジュールおよび構成要素の間でのデータの転送を可能にする、１つもしくは複数のバスまたは他の内部通信ハードウェアもしくは内部通信ソフトウェアを含むことができる。
【０１４１】
図７に示されているように、プロキシ・ホスト・デバイス３２２は、上で図４に関して説明したものなどの１つまたは複数のメモリ７１６を含むことができる。メモリ７１６は、１つまたは複数の非一時的ＣＲＳＭを含むことができる。メモリ７１６は、コンピュータ可読命令、データ構造、プログラム・モジュール、およびプロキシ・ホスト・デバイス３２２の動作に関する他のデータの記憶を提供することができる。少数の例のモジュールが、メモリ７１６に記憶されて図示されているが、同一の機能性を、その代わりにハードウェア内で、ファームウェア内で、またはＳｏＣとして実施することができる。
【０１４２】
メモリ７１６は、上で図４に関して説明したものなどのＯＳ  ７１８を含むことができる。
【０１４３】
データ・ストア７２０および以下のモジュールのうちの１つまたは複数を、メモリ７１６に記憶することもできる。モジュールを、フォアグラウンド・アプリケーション、バックグラウンド・タスク、デーモンなどとして実行することができる。データ・ストア７２０は、フラット・ファイル、データベース、リンク・リスト、ツリー、実行可能コード、スクリプト、または情報を記憶する他のデータ構造を使用することができる。いくつかの実施態様では、データ・ストア７２０またはデータ・ストア７２０の一部を、他のコンピューティング・デバイス、ネットワーク・アタッチト・ストレージ・デバイスなどを含む１つまたは複数の他のデバイスにまたがって分散させることができる。
【０１４４】
通信モジュール７２２を、通信インターフェース７０８のうちの１つまたは複数を使用して１つまたは複数の他のデバイスとの通信を確立するように構成することができる。通信を、認証し、暗号化し、その他を行うことができる。たとえば、通信モジュール７２２は、通信に用いられるデバイスのアイデンティティを認証するためにデジタル証明書を利用することができる。たとえば、通信モジュール７２２を、ＴＤ  １０２、ワークステーション３０８、または管理サーバ３１８のうちの１つまたは複数とのＶＰＮ接続またはトンネルを確立するように構成することができる。
【０１４５】
メモリ７１６は、プロキシ・アクセス・デバイス（ＰＡＤ）構成モジュール７２４、トラフィック・プロキシ・モジュール７２６、データ収集モジュール７２８、性能モジュール７３０、または他のモジュール７３２のうちの１つまたは複数を記憶することができる。
【０１４６】
ＰＡＤ構成モジュール７２４は、プロキシ・ホスト・デバイス３２２に接続されたプロキシ・アクセス・デバイス３２４に１つまたは複数の命令またはコマンドを送るように構成される。これらの命令を、管理サーバ３１８から受信されるデバイス構成データ７３８の一部として供給することができる。これらの命令は、プロキシ・アクセス・デバイス３２４が、第２のネットワーク３１２（２）上でトラフィックを送り、受信し、ＰＡＤ状況データ７３６などの情報を供給し、その他を行うことを可能にするように設計され得る。たとえば、ＰＡＤ構成モジュール７２４は、ローカル・トラフィック・モジュールおよびローカル状況モジュールをプロキシ・アクセス・デバイス３２４に送り、実行することができる。たとえば、ＰＡＤ構成モジュール７２４は、Ｍｉｃｈａｅｌ  ＤｅＨａａｎによって開発され、ｗｗｗ．ａｎｓｉｂｌｅ．ｃｏｍで公布されるＡｎｓｉｂｌｅソフトウェア・プラットフォームを利用することができる。
【０１４７】
トラフィック・プロキシ・モジュール７２６は、ＡＵＴ  １１２を実行しているＴＤ  １０２とプロキシ・アクセス・デバイス３２４との間でＡＵＴトラフィック３１４を渡すように構成される。たとえば、プロキシ・ホスト・デバイス３２２がＬｉｎｕｘ  ＯＳを利用する場合には、Ｌｉｎｕｘプロキシ・サービスを使用することができる。トラフィック・プロキシ・モジュール７２６を、他の点で異なるタイプのインターフェースを接続するように構成することができる。たとえば、プロキシ・ホスト・デバイス３２２は、第１のネットワーク３１２（１）に接続するのにネットワーク・インターフェース７１２を、プロキシ・アクセス・デバイス３２４に接続する（またはテザリングする）のにＵＳＢ入出力インターフェース７１０を使用することができる。接続された後に、プロキシ・アクセス・デバイス３２４へのＵＳＢ接続を、トラフィックがそれを介してルーティングされ得るネットワーク・インターフェース７１２としてＯＳモジュール７１８内で提示することができる。
【０１４８】
プロキシ・ホスト・デバイス３２２とプロキシ・アクセス・デバイス３２４との間の接続またはテザリングは、いくつかの実施態様で無線とすることができる。たとえば、プロキシ・ホスト・デバイス３２２およびプロキシ・アクセス・デバイス３２４が、Ｂｌｕｅｔｏｏｔｈ無線インターフェースを使用してお互いと通信しているものとすることができる。
【０１４９】
データ収集モジュール７２８を、ＰＨＤ状況データ７３４、ＰＡＤ状況データ７３６、デバイス構成データ７３８、プロキシ・セッション・データ７４０、エントロピ・データ７４２、他のデータ７４４、またはその任意の組合せのうちの１つまたは複数を入手するように構成することができる。複数のＰＨＤ  ３２２からのＰＨＤ状況データ７３４を管理サーバ３１８によって集約して、ＰＨＤ状況データ６３８を形成できることを了解されたい。複数のＰＨＤ  ３２２からのＰＡＤ状況データ７３６を、管理サーバ３１８によって集約して、ＰＡＤ状況データ６４０を形成することができる。さらに、複数のＰＨＤ  ３２２からのデバイス構成データ７３８、プロキシ・セッション・データ７４０、エントロピ・データ７４２、および他のデータ７４４を管理サーバ３１８によって集約して、それぞれ、デバイス構成データ６４６、プロキシ・セッション・データ３３４、エントロピ・データ６５６、および他のデータ６６０の一部を形成することができる。たとえば、データ収集モジュール７２８は、プロキシ・ホスト・デバイス３２２とプロキシ・アクセス・デバイス３２４との間で転送されているＡＵＴトラフィック３１４のパケット・キャプチャを入手することができる。パケット・キャプチャを、プロキシ・セッション・データ３３４に含めることができる。たとえば、ｗｗｗ．ｔｃｐｄｕｍｐ．ｏｒｇによって公布されるＴＣＰＤＵＭＰライブラリを使用して、パケット・キャプチャを獲得することができる。上で説明したように、プロキシ・セッション・データ３３４を、管理サーバ３１８、ＴＤ  １０２、ワークステーション３０８、または他のデバイスのうちの１つまたは複数に送ることができる。
【０１５０】
モジュールのうちの１つまたは複数が、ＯＳモジュール７１８のユーザ空間内で実行することができる。たとえば、プロキシ・アクセス・デバイス構成モジュール７２４、トラフィック・プロキシ・モジュール７２６、またはデータ収集モジュール７２８のうちの１つまたは複数が、ＯＳモジュール７１８のユーザ空間に関連するアカウント特権を使用して実行することができる。比較して、ＯＳモジュール７１８は、ルート・アカウント、スーパーユーザ、管理者、その他など、アクセスの追加の特権またはレベルを提供するアカウントを提供することができる。
【０１５１】
いくつかの実施態様では、モジュールのうちの１つまたは複数を、他のデバイスのメモリ７１６に少なくとも部分的に記憶することができ、他のデバイス上で少なくとも部分的に実行することができ、その他を行うことができる。
【０１５２】
データ・ストア７２０内の他のデータ７４４は、プロキシ・ホスト・デバイス３２２またはそのモジュールに関連する構成およびセッティングなどの情報を含むことができる。
【０１５３】
データ・ストア７２０内のエントロピ・データ７４２は、１つまたは複数のＰＡＤ  ３２４から受信された時系列エントロピ情報を含むことができる。ＰＨＤ  ３２２は、エントロピ・データ７４２を処理して、エントロピ値１３８に基づいてＰＡＤ  ３２４のうちの１つまたは複数の性能を示すデータを判定することができる。性能を示すデータを、ウェブサーバ応答の遅延など、何らかの他のシステムの性能に基づくものとすることができることを了解されたい。ＰＨＤ  ３２２は、性能を示すデータを管理サーバ３１８、分析システム１０８、またはその両方に通信することができる。
【０１５４】
低ページ・コンテンツをどのように検出するのか
エントロピ時系列は、ビデオ・データ、オーディオ・データ、またはマルチメディア・データ（すなわち、ビデオ、オーディオ、テキスト、またはその任意の組合せ）内のページ遷移を分析する便利な定性的ツールを提供する。この曲線の特性を定量的に記述することも望ましい。たとえば、Ｇｏｏｇｌｅで行われた研究は、１秒を超えてコンテンツを待つユーザが、彼らが焦点を合わせている作業から精神的に切り離されることを示す。モバイル・アプリケーションでのこの一般的な性能問題を、記録されたアプリケーション・セッションのエントロピ時系列から取り込むことができる。最も単純な手法は、エントロピおよび時間にしきい値をセットすることを含むことができる。たとえば、１秒以上などの時間しきい値より長い時間期間にわたる０．４５未満の正規化されたエントロピ値が、多数のアプリケーションに関して悪いユーザ経験を示す可能性があるデータの頑健なインジケータである可能性がある。他の例では、固定されたしきい値または動的なしきい値を、最適化技法または機械学習を使用して構成することができる。他の所望のビデオ遷移挙動を、同様に取り込むことができる。たとえば、ある種のスピナは、固定された周期を伴って、サイズ、形状、または他の特性を変化させる。エントロピ時系列は、小さい周期的変動としてこれらの変化を反映することができ、この小さい周期的変動は、分析技法を使用して分析され、識別され得る。
【０１５５】
ネットワーク・アクティビティをどのようにしてエントロピに併合するのか
ネットワーク・トラフィックおよびアプリケーションまたはウェブページに表示されるコンテンツは、基本的に連続している。ユーザ・インターフェースは、それが有しない情報を表示することができず、ネットワーク接続は、アプリケーションによって要求された情報を取り出す手段を提供する。エントロピ時系列を、共通のタイムラインを介してビデオ再生、ネットワーク・トラフィック、および他のデータ・ソースと一体化することができる。このタイムラインは、すべてのデータを含むか、データ・ソースごとにデータの選択されたサブセットを示すようにフィルタリングされ得る。たとえば、単一の要求の性能を理解することが望ましい場合がある。タイムラインを、要求の関連する時間枠にフィルタリングすることができ、データ・ソースを、関連するデータを選択するために明示的にまたは暗黙のうちに定義された特徴によってフィルタリングすることができる。
【０１５６】
性能問題を検出するゲートウェイとしてのエントロピ時系列
ネットワーク・トラフィックおよび他のデータ・ソースをエントロピ時系列のタイムラインに併合することは、ユーザに可視の性能問題の根本原因への深い洞察を可能にする。たとえば、少ページ・コンテンツ性能問題は、コンテンツが長い時間期間にわたってスクリーンに表示されそこなうタイムラインの領域を強調することができる。ネットワーク・トラフィックは、しばしば、タイムラインの強調された領域の前およびその中に、遅いサーバ接続および遅いコンテンツ・ダウンロードを示す。分散デバイス・クラウド内の同一のデバイスおよび他のデバイスに対するテストの複数の反復は、遅いサーバ接続が、ネットワーク問題、単一のサーバ構成、またはコンテンツ配送のより幅広い問題のどれに起因するのかを明らかにすることができる。したがって、エントロピ時系列は、単一のテスト・セッション内と別個のテスト環境の間の集約比較との両方でのユーザに可視のコンテンツ問題を比較し、診断する貴重なツールである可能性がある。
【０１５７】
エントロピ値１３８とネットワーク・スループット値とを併合したタイムラインの１つの可能な例を、下で図８に関して説明する。
【０１５８】
図８は、一実施態様による、時刻１４０に対するエントロピ値１３８およびネットワーク・スループット値８０２のグラフ８００を示す。このグラフでは、エントロピ値１３８は、実線によって表され、ネットワーク・スループット値８０２は、点線によって表される。この例では、ネットワーク・スループット値８０２およびエントロピ値１３８が、共通のタイムライン上で提示される。
【０１５９】
グラフ８００では、第１のインターバル８０４（１）は、ネットワーク・スループットの減少に対応し得る。同様に、第２のインターバル８０４（２）は、ネットワーク・スループットの減少に対応し得る。たとえば、ネットワーク・スループットは、ネットワーク輻輳、故障、または何らかの他の要因に起因して減少した可能性がある。ネットワーク・スループット値８０２を、ＴＤ  １０２、ＰＡＤ  ３２４、または展開されたデバイス３３６のネットワーク・トランシーバから判定することができる。
【０１６０】
グラフ８００では、時系列データは、エントロピ・パターン８０６（１）およびエントロピ・パターン８０６（２）など、エントロピ値１３８の繰り返すシーケンスを含む場合がある。エントロピ・パターン８０６が、時系列の異なる点で異なる振幅を有する場合があるが、同様の傾きなど、同様の形状を共有することができることを了解されたい。この例では、エントロピ・パターン８０６は、第１の時刻から第２の時刻までの直線的に減少するエントロピ値と、それに続く、第３の時刻から第４の時刻までのエントロピ値のインパルスまたは急激な増加とによって特徴を表され得る。一実施態様では、第１の時刻と第２の時刻との間の時間が、第３の時刻と第４の時刻との間の時間より長いものとすることができる。１つの可能な例では、エントロピ・パターン８０６は、「右にスワイプ」入力など、特定の入力に応答するアプリケーションの挙動を表すことができる。画像が、ユーザ対話によってディスプレイ１０４から「スワイプ」される時に、ディスプレイ１０４に関連するエントロピ・データ１２０は、入力に関連して減少する可能性があり、その後、新しい画像がロードされる時に急速に増加する可能性がある。別の例では、そのようなパターンが、アプリケーションが特定の機能を呼び出すたびに現れる可能性があり、そのパターンは、レビューされる必要があるかアプリケーションの期待される動作に対応する可能性があるコードを示す可能性がある。他の実施形態も可能である。
【０１６１】
グラフ８００は、ネットワーク・スループット値８０２が相対的に高いタイム・インターバル中のアプリケーション・アクティビティに対応する第３のインターバル８０８（１）をも含むことができる。グラフ８００は、ネットワーク・スループット値８０２が相対的に高い（第３のインターバル８０８（１）中のネットワーク・スループット値８０２より低いが）タイム・インターバル中のアプリケーション・アクティビティに対応する第４のインターバル８０８（２）をも含むことができる。第４のインターバル８０８（２）間中、エントロピ値１３８の変動８１０は、スクリーンまたはディスプレイ１０４上のローディング・インジケータの存在に起因する可能性がある。
【０１６２】
１つの可能な実施態様では、画像のシーケンスのサブセットのエントロピ値１３８の間の差を判定することができる。たとえば、第１の画像と第２の画像との間のエントロピ値１３８の差、第２の画像と第３の画像との間のエントロピ値１３８の差などを判定することができる。画像のシーケンスのサブセットは、シーケンスの選択された画像を含むことができる。この例では、差は、画像から画像へのエントロピ値１８３の変化を反映することができる。コンピューティング・デバイスの悪い性能を示す相対的に長い待ち時間を、差が差しきい値未満である時に判定することができる。たとえば、画像から画像へおよび画像のサブセットを介するエントロピ値１３８のわずかな変化または無変化は、ディスプレイ上の情報コンテンツが変化しておらず、凍結している可能性があることを示すことがある。いくつかの実施態様では、差しきい値を、ディスプレイに供給される情報コンテンツが少ないかない期間に対応するデータ・パターンから判定することができる。他の実施態様も可能である。
【０１６３】
時系列エントロピ値１３８およびネットワーク・スループット値８０２の分析が、プログラム問題、ネットワーク問題、またはその両方を明らかにする場合があることを理解されたい。さらに、ネットワーク・スループット値８０２に関連するエントロピ値１３８の分析が、アプリケーション挙動に帰する、入力データに帰する、または他のソースに帰するデータ・パターンを明らかにする場合がある。識別されたパターンは、性能を改善するためおよびオプションで経験される性能を検証するためにアプリケーション・コードを洗練するのに、開発者３０２によって使用され得る。他の実施態様も可能である。
【０１６４】
次のコード・サンプルは、ビデオの画像またはフレームごとにエントロピ値１３８を計算する方法を示す。他の実施態様は、ビデオの１つまたは複数の画像またはフレームについてエントロピ値１３８を計算することができる。
【０１６５】
ビデオ・エントロピの例のコード
"""
ビデオ分析
"""
from __future__ import division
import numpy as np
import cv2
DEFAULT_ENTROPY_PRECISION = 4
# ビデオ・エントロピ・メトリック分析
def entropy(array, nbins=256):
"""グレイスケール画像配列のエントロピを計算する
パラメータ
----------
array : array-like
グレイスケール画像配列。
nbins : int, optional (default: 256)
データ型によってサポートされる可能な値の個数。
グレイスケールuint8画像は、１画素あたり２５６個の可能な値をサポートする。
リターン
--------
entropy : float
配列エントロピ。
"""
n = array.size
if n < 2:
return 0
# 注：np.bincountは、非負の配列の頻度カウントを返す
# 長さを返したintsはmaxint(array) + 1になる。
counts = np.bincount(array.ravel())
probs = counts / n
# 0*log(0)に起因するnanまたは無限大を回避する
probs = probs[probs > 0]
# 短い配列のエントロピを調整する
base = min(n, nbins)
# 注： log_base<256>(array) = log_base<x>(array)/log_base<x>(256)
return np.sum(-probs * np.log(probs)/np.log(base))
def calculate_video_entropy(frame_generator):
"""ビデオ内の各フレームのエントロピを計算する。
パラメータ
----------
frame_generator: generatorまたはiterator
このオブジェクトは、NumPy uint8配列としてビデオ・フレームを作らなければならない。
リターン
--------
entropy_values: array
ビデオ・フレームあたりのエントロピ・メトリック。
"""
entropy_values = np.zeros(len(frame_generator))
for idx, frame in enumerate(frame_generator):
# フレームをグレイスケールに変換する
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)
# フレーム・エントロピを計算する
entropy_values[idx] = round(entropy(frame), DEFAULT_ENTROPY_PRECISION)
return entropy_values
【０１６６】
したがって、このシステムは、デバイスによる提示に関連するデータのエントロピに少なくとも部分的に基づいて、デバイスの動作を示す情報を判定する方法を提供する。このデータを使用して、特定のアプリケーション、オペレーティング・システムなどの動作を査定することができる。当業者が認めるとおり、エントロピ・データ１２０を他の形で使用することもできる。
【０１６７】
図９は、一実施態様による、本開示の範囲内の、エントロピ値１３８に基づくテスト・デバイスの動作を示すデータを判定する方法の流れ図９００を示す。この方法を、ＴＤ  １０２、分析システム１０８、ワークステーション３０８、管理サーバ３１８、ＰＨＤ  ３２２、ＰＡＤ  ３２４、展開されたデバイス３３６、別のデバイス、またはその任意の組合せによって実行することができる。
【０１６８】
９０２では、ＴＤ  １０２のディスプレイ１０４デバイス上での提示のために記憶された第１の画像および第２の画像を含む画像のシーケンスを判定する。たとえば、画像のシーケンスを、モバイル・コンピューティング・デバイスのディスプレイ・バッファまたはキャッシュ・メモリから取り出すことができる。ディスプレイ・デバイス上での提示のために記憶された第１の画像および第２の画像を判定すること。
【０１６９】
９０４では、第１の画像内のデータ値の分布を示すことのできる第１のエントロピ値１３８を判定する。いくつかの実施形態では、第１のエントロピ値１３８は、第１の画像を構成するデータ値ごとに確率を計算することと、第１のエントロピ値１３８を計算するために判定された確率を合計することとによって判定され得る。
【０１７０】
９０６では、第２の画像内のデータ値の分布を示すことのできる第２のエントロピ値１３８を判定する。いくつかの実施形態では、第２のエントロピ値１３８は、第１のエントロピ値１３８を判定するのに使用されたものと同一の形で判定され得る。
【０１７１】
９０８では、第１のエントロピ値１３８および第２のエントロピ値１３８に基づいて、ＴＤ  １０２の性能を示すデータを判定する。実施態様に応じて、ＴＤ  １０２または分析システム１０８が、性能を示すデータを判定することができる。性能を示すデータは、画像のサブセットに関連し、画像のシーケンス内で経時的に繰り返すエントロピ値１３８のパターンを含むことができる。他の実施態様では、性能を示すデータは、時間期間にわたる実質的に静的な平均エントロピ値１３８を含むことができ、この平均エントロピ値１３８は、その間に少ない情報がＴＤ  １０２のディスプレイ１０４に供給される待ち時間インターバル１４４を定義することができる。いくつかの例では、ローディング・インジケータ１０６が、ディスプレイ１０４に提示される場合がある。１つの可能な実施態様では、待ち時間インターバル１４４は、時間期間が時間しきい値を超える時に判定され得る。エントロピ値１３８は、周期的に変動する場合があり、これは、スピナなど、ディスプレイ１０４に提示されるローディング・インジケータ１０６のループしたアニメーションを示す可能性がある。他の実施態様では、エントロピ値１３８が、非周期的に変化する場合がある。いくつかの実施態様では、ローディング・インジケータ１０６が、非対称である場合があり、非周期的に変化する場合があり、これは、エントロピ値１３８の非周期的変動として反映される可能性がある。
【０１７２】
９１０では、テスト・デバイスの性能を示すデータを送ることができる。このデータを、データ・ストアに送ることができる。このデータは、テスト・デバイスの悪い性能を、またはアプリケーションがテスト・デバイスのプロセッサ上で実行しているかどうかを示すことができる。その代わりにまたはそれに加えて、このデータを、有線のまたは無線の通信リンクを介してコンピューティング・デバイスに送ることができる。一例では、このデータを、ネットワーク３１２を介してコンピューティング・デバイスに送ることができる。
【０１７３】
図１０は、一実施態様による、本開示の範囲内の、エントロピ値１３８に基づくテスト・デバイス１０２の動作を示すデータを判定する方法の流れ図１０００を示す。この方法を、ＴＤ  １０２、分析システム１０８、ワークステーション３０８、管理サーバ３１８、ＰＨＤ  ３２２、ＰＡＤ  ３２４、展開されたデバイス３３６、別のデバイス、またはその任意の組合せによって実行することができる。
【０１７４】
１００２では、テスト・デバイス１０２のディスプレイ１０４デバイスでの提示のために記憶された、第１のデータ項目および第２のデータ項目を含むデータ項目のシーケンスを判定することができる。たとえば、第１のデータ項目および第２のデータ項目を、画像データ、オーディオ・データ、触覚データなどとすることができる。
【０１７５】
１００４では、第１のデータ項目の第１のエントロピ値１３８を判定する。いくつかの実施形態では、第１のエントロピ値１３８は、第１の画像を含む複数のデータ値のそれぞれの確率を判定することと、第１のエントロピ値１３８を作るために確率を合計することとによって判定され得る。いくつかの実施態様では、ＴＤ  １０２が、第１のエントロピ値１３８を判定することができる。
【０１７６】
１００６では、第２のデータ項目の第２のエントロピ値１３８を判定する。ＴＤ  １０２が、第２のエントロピ値１３８を判定することができる。いくつかの実施形態では、第２のエントロピ値１３８を、第１のエントロピ値が計算されるのと同一の形で判定することができる。
【０１７７】
１００８では、第１および第２のエントロピ値に基づいて、第１のデータ項目と第２のデータ項目との間の関係を判定する。たとえば、この関係は、データ項目のシーケンスのサブセットのデータ項目の間のデルタまたは差を含むことができる。この関係を、ＴＤ  １０２または分析システム１０８によって判定することができる。ディスプレイ１０４に静的情報または少ない情報が提示される待ち時間インターバル１４４中に、エントロピ値１３８は、ＴＤ  １０２、ＰＡＤ  ３２４、または展開されたデバイス３３６がデータをロードすることを表す、実質的に一定の平均エントロピ値１３８を有する可能性がある。この例では、関係は、同様のエントロピ値１３８を示すことができる。他の実施形態も可能である。
【０１７８】
エントロピ値１３８の繰り返すサブセットに対応するパターンを含む代替実施形態では、画像のシーケンス内の隣接する画像の間（または隣接するデータ項目の間）の差が、時系列内でパターンを検出するのに使用できる傾きを定義する場合がある。この例での用語「隣接する」は、シーケンス内でお互いに続く、画像のシーケンスの画像を指す。隣接する画像は、必ずしも大きい画像の一部ではない。画像が、参照のために順次番号を付けられる場合に、第５の画像は、シーケンス内で第４の画像と第６の画像との両方に隣接する。他の実施形態も可能である。
【０１７９】
１０１０では、第１および第２のエントロピ値１３８と関係とに基づいて、デバイスの性能を示すデータを生成する。このデータを、ＴＤ  １０２または分析システム１０８によって生成することができる。たとえば、性能を示すデータは、デバイスの動作またはデバイスのプロセッサ上で実行するソフトウェアの動作を示すことができる。
【０１８０】
１０１２では、デバイスの性能を示すデータを送る。このデータを、データ・ストアに送ることができる。その代わりにまたはそれに加えて、このデータを、有線または無線の通信リンクを介してコンピューティング・デバイスに送ることができる。一例では、このデータを、ネットワーク３１２を介してコンピューティング・デバイスに送ることができる。
【０１８１】
図１１は、一実施態様による、本開示の範囲内の、エントロピ値１３８の繰り返すパターンを示すデータを判定する方法の流れ図１１００を示す。いくつかの実施態様で、この方法を、分析システム１０８または管理サーバ３１８によって実行することができる。他の実施態様では、ＴＤ  １０２の性能モジュール１１４が、アイドル期間中にバックグラウンドでエントロピ値１３８を処理することによって、繰り返すパターンを判定することができる。
【０１８２】
１１０２では、第１のサブセット、第２のサブセット、および第３のサブセットを含むデータ項目のシーケンスを判定する。たとえば、ディスプレイ・デバイスでの提示のために記憶された複数の画像を、ディスプレイ・バッファから取り出すことができる。データ項目は、画像、数値（１および０、０と２５５との間のグレイスケール値、または値の他の範囲）のマトリックス、他のタイプのデータ、またはその任意の組み合わせとすることができる。たとえば、グレイスケール画像の各データ値は、画像内の特定の画素の輝度を表すことができ、データ値は、０から２５５の範囲内とすることができる。他のデータ値範囲も可能である。さらに、サブセットは、そのエントロピ値１３８の類似性またはサブセット内のエントロピ値１３８の間の変化の類似性を共有するデータ項目を含む場合がある。たとえば、線形に減少する傾きとそれに続く急激な増加（エントロピ値１３８のすばやい変化を表すインパルスまたは急峻な傾きなど）を定義するシーケンスなど、エントロピ値１３８の変化の特定のシーケンスが、繰り返す可能性があるパターンを表す場合がある。減少する傾きの前の初期エントロピ値１３８が、時系列にまたがって変化する場合がある。さらに、減少するエントロピ値１３８の傾きも、変化する可能性がある。しかし、独特の減少する傾きとそれに続く急激な増加が、さまざまな時に発生する可能性がある。
【０１８３】
１１０４では、データ項目のシーケンスの第１のサブセットから、第１のエントロピ値１３８を判定する。第１のエントロピ値１３８は、第１のサブセット内のデータ項目を構成するデータ値の分布を表す可能性がある。たとえば、第１の複数のエントロピ値を、複数の画像の少なくとも一部について判定することができる。その一部を、複数の画像のサブセットとすることができる。
【０１８４】
１１０６では、データ項目のシーケンスの第２のサブセットから、第２のエントロピ値１３８を判定する。たとえば、第２のエントロピ値１３８を、第１のエントロピ値１３８と同一の形で判定することができる。
【０１８５】
１１０８では、データ項目のシーケンスの第３のサブセットから、第３のエントロピ値１３８を判定する。第３のエントロピ値１３８を、第１および第２のエントロピ値１３８と同一の形で判定することができる。第１、第２、および第３のエントロピ値１３８を、実施態様に応じて、ＴＤ  １０２、分析システム１０８、または管理サーバ３１８によって判定することができる。
【０１８６】
１１１０では、第１のエントロピ値１３８、第２のエントロピ値１３８、および第３のエントロピ値１３８の間の類似性に基づいて、繰り返すパターンを判定する。たとえば、繰り返すパターンを、第１の複数のエントロピ値から判定することができる。このパターンは、入力データに応答する、特定の機能の実行に応答するなどのアプリケーションの動作を表すことができる。いくつかの実施形態で、繰り返すパターンは、ローディング・インジケータ１０６に対応することができる。
【０１８７】
１１１２では、コンピューティング・デバイスの性能を示すデータは、繰り返すパターンに少なくとも部分的に基づく。たとえば、コンピューティング・デバイスの性能は、ネットワーク・スループット遅延、ウェブサーバ応答の遅延、または別のシステムによって引き起こされる遅延など、何らかの他のシステムの性能に基づくものとすることができる。別の例では、コンピューティング・デバイスの性能は、コンピューティング・デバイス上で実行するアプリケーション・コードに基づくものとすることができる。他の例も可能である。
【０１８８】
一実施態様では、性能を示すデータは、ネットワーク・スループット問題、ユーザ入力、アプリケーション機能呼出し、その他など、コンピューティング・デバイスの性能の原因の識別を含むことができる。
【０１８９】
１１１４では、性能を示すデータを送ることができる。このデータを、データ・ストアに送ることができる。その代わりにまたはそれに加えて、このデータを、有線または無線の通信リンクを介してコンピューティング・デバイスに送ることができる。一例では、このデータを、ネットワーク３１２を介してコンピューティング・デバイスに送ることができる。
【０１９０】
上の技法は、デバイスによる提示に関連するビデオまたは他の画像ベースのデータの使用を説明するが、他のタイプのデータを同様に査定することができる。たとえば、オーディオ・データまたは触覚データのエントロピを査定することができる。
【０１９１】
図１〜図１１に関して上で説明したデバイス、システム、および方法に関連して、データ項目（画像など）のシーケンス内のデータ値の分布のエントロピを、静的情報または少ない情報がデバイスのディスプレイ１０４に提示される期間に対応することのできる待ち時間インターバル１４４を検出するために、時系列内で評価することができる。データ値の確率の分布の合計を表すエントロピ値１３８を、データ項目ごとに判定することができる。
【０１９２】
いくつかの実施態様では、１つまたは複数のデバイスからのエントロピ値１３８を、機械学習（ＭＬ）システムまたはニューラル・ネットワーク（ＮＮ）システムに供給して、データを分析することができる。ＭＬシステム、ＮＮシステム、またはその両方は、ネットワーク・スループット値および他のデータと一緒にエントロピ値１３８を処理することができる。経時的に、ＭＬシステム、ＮＮシステム、またはその両方は、データ内のパターンを識別することができ、パターンの少なくとも一部を分類することができる。いくつかの実施態様では、ＭＬシステム、ＮＮシステム、またはその両方は、特定の待ち時間問題の原因を判定でき、コーディング問題を訂正し、オプションでアプリケーションの全体的な性能を改善するために、開発者３０２に選択的に通知することができる。
【０１９３】
いくつかの実施態様では、コンピューティング・デバイス上で実施される方法は、ディスプレイ１０４デバイス上での提示のために記憶された第１の画像および第２の画像を含む画像のシーケンスから、第１の画像内のデータ値の分布を示す第１のエントロピ値１３８を判定することを含むことができる。この方法は、さらに、画像のシーケンスから、第２の画像内のデータ値の分布を示す第２のエントロピ値１３８を判定することを含むことができる。さらに、この方法は、第１のエントロピ値１３８および第２のエントロピ値１３８に基づいてコンピューティング・デバイスの性能を示すデータを生成することと、コンピューティング・デバイスの動作を示すデータを、通信ネットワーク３１２を介してコンピューティング・デバイスに供給することとを含むことができる。
【０１９４】
本開示の範囲内で使用できる実施態様を、以下の節によって示すことができる。
【０１９５】
節１  コンピューティング・デバイス上で実施される方法であって、ディスプレイ・デバイス上での提示のために記憶された第１の画像および第２の画像を判定することと、第１の画像に関連するデータ値の分布を示す第１のエントロピ値を判定することと、第２の画像に関連するデータ値の分布を示す第２のエントロピ値を判定することと、第１のエントロピ値および第２のエントロピ値に基づいてコンピューティング・デバイスの性能を示すデータを生成することと、通信ネットワークを使用してコンピューティング・デバイスの性能を示すデータを第２のコンピューティング・デバイスに提供することと、を含む方法。
【０１９６】
節２  しきい値に対する第１の画像および第２の画像を含む画像のシーケンスのエントロピ値の比較に基づいて、少ない情報コンテンツを判定することと、時間期間にわたる少ない情報コンテンツの判定に基づいて低い性能を判定することとをさらに含む、節１に記載の方法。
【０１９７】
節３  性能を示すデータの生成は、第１のエントロピ値がしきい値より小さいと判定することと、第２のエントロピ値がしきい値より小さいと判定することとをさらに含む、節１から２のいずれか１項に記載の方法。
【０１９８】
節４  性能を示す生成されたデータは、第１のエントロピ値と第２のエントロピ値との間の差を判定することと、差がしきい値より小さいと判定することとをさらに含む、節１から３のいずれか１項に記載の方法。
【０１９９】
節５  ディスプレイ・デバイス上での提示のために記憶された複数の画像を判定することであって、複数の画像は、第１の画像および第２の画像を含む、判定することと、複数の画像の少なくとも一部の第１の複数のエントロピ値を判定することと、第１の複数のエントロピ値内の繰り返すパターンを判定することとをさらに含み、コンピューティング・デバイスの性能を示すデータは、繰り返すパターンに少なくとも部分的に基づく節１から４のいずれか１項に記載の方法。
【０２００】
節６  通信インターフェースと、ディスプレイ・デバイスと、コンピュータ実行可能命令を記憶するメモリと、ディスプレイ・デバイス上での提示のために記憶された複数の画像を判定し、複数の画像の少なくとも一部のエントロピ値であって、画像のデータ値の分布を表すエントロピ値の第１のセットを判定し、通信インターフェースを使用して、エントロピ値の第１のセットに少なくとも部分的に基づくデータを送るためにコンピュータ実行可能命令を実行するプロセッサとを含むコンピューティング・デバイス。
【０２０１】
節７  プロセッサに、第１の画像から第１のデータ値を選択させ、第１のデータ値の第１の確率値であって、第１のデータ値が第１の値を有する尤度を示す第１の確率値を判定させ、第１の画像から第２のデータ値を選択させ、第２のデータ値の第２の確率値であって、第２のデータ値が第２の値を有する尤度を示す第２の確率値を判定させ、第１の画像の第１のエントロピ値を判定するために第１の確率値および第２の確率値を合計させるコンピュータ実行可能命令をさらに含み、エントロピ値の第１のセットは、第１のエントロピ値を含む節６に記載のコンピューティング・デバイス。
【０２０２】
節８  プロセッサに、エントロピ値の第１のセットの少なくとも一部がしきい値より小さいと判定させ、少なくとも一部が時間しきい値より長い時間期間に対応すると判定させるコンピュータ実行可能命令をさらに含み、データは、悪い性能を示す節６から７のいずれか１項に記載のコンピューティング・デバイス。
【０２０３】
節９  プロセッサに、複数の画像の一部の第１の画像のデータ値のサブセットを判定させ、データ値のサブセットに基づいて第１の画像の第１のエントロピ値を判定させるコンピュータ実行可能命令をさらに含む、節６から８のいずれか１項に記載のコンピューティング・デバイス。
【０２０４】
節１０  プロセッサに、複数の画像の第１のセットに関連するエントロピ値の第１のセットを判定させ、ヒストリカル・データに対応するエントロピ値の第１のセット内のパターンを判定させる命令をさらに含む、節６から９のいずれか１項に記載のコンピューティング・デバイス。
【０２０５】
節１１  プロセッサに、複数の画像の第１のセットに関連するエントロピ値の第１のセットを判定させ、複数の画像の第２のセットに関連するエントロピ値の第２のセットを判定させ、エントロピ値の第１のセットおよびエントロピ値の第２のセットのうちの少なくとも１つ内のパターンを判定させる命令をさらに含む、節６から１０のいずれか１項に記載のコンピューティング・デバイス。
【０２０６】
節１２  プロセッサに、第１の時刻に第１の入力を判定させ、第１の入力に関連するパターンを判定させる命令をさらに含む、節６から１１のいずれか１項に記載のコンピューティング・デバイス。
【０２０７】
節１３  プロセッサに、複数の画像の第１の画像の第１のエントロピ値を判定させ、複数の画像の第２の画像の第２のエントロピ値を判定させ、第１のエントロピ値と第２のエントロピ値との間の差を判定させ、差がしきい値より小さいと判定させる命令をさらに含む、節６から１２のいずれか１項に記載のコンピューティング・デバイス。
【０２０８】
節１４  出力デバイスを介する提示のためのデータ項目のシーケンスであって、第１のデータ項目および第２のデータ項目を含むシーケンスを判定し、第１のデータ項目に関して、第１のデータ項目内のデータ値の分布を表す第１のエントロピ値を判定し、第２のデータ項目に関して、第２のデータ項目内のデータ値の分布を表す第２のエントロピ値を判定し、第１のエントロピ値および第２のエントロピ値に基づいてデータを生成するプロセッサを含むデバイス。
【０２０９】
節１５  プロセッサが、第１のデータ項目の第１のデータ値に関して、第１のデータ値が第１の値を有する尤度を示す第１の確率値を判定し、第１のデータ項目の第２のデータ値に関して、第２のデータ値が第２の値を有する尤度を示す第２の確率値を判定するように構成されることをさらに含み、第１のエントロピ値は、第１の確率値および第２の確率値の合計を含む節１４に記載のデバイス。
【０２１０】
節１６  プロセッサが、しきい値より小さいエントロピ値を有するデータ項目のシーケンスのサブセットを判定し、サブセットが時間しきい値を超える時間期間に対応すると判定するように構成されることをさらに含む、節１４から１５のいずれか１項に記載のデバイス。
【０２１１】
節１７  プロセッサが、データ項目のシーケンスの一部のエントロピ値を判定し、経時的なエントロピ値のパターンを判定し、エントロピ値のパターンに基づいてデータを生成するように構成されることをさらに含む、節１４から１６のいずれか１項に記載のデバイス。
【０２１２】
節１８  プロセッサが、複数のデータ項目の第１のデータ項目の第１のエントロピ値を判定し、複数のデータ項目の第２のデータ項目の第２のエントロピ値を判定し、第１のエントロピ値と第２のエントロピ値との間の差を判定し、差がしきい値より小さいと判定するように構成されることをさらに含む、節１４から１７のいずれか１項に記載のデバイス。
【０２１３】
節１９  デバイスは、入力データを受信する通信インターフェースをさらに含み、プロセッサが、入力データをデータ項目のシーケンスのデータ項目のサブセットの１つまたは複数のエントロピ値に関連付け、パターンが入力データに対応すると判定するように構成されることをさらに含む、節１４から１８のいずれか１項に記載のデバイス。
【０２１４】
節２０  プロセッサが、第１のデータ項目のデータ値のサブセットを判定し、データ値のサブセットに基づいて第１のデータ項目の第１のエントロピ値を判定するように構成されることをさらに含む、節１４から１９のいずれか１項に記載のデバイス。
【０２１５】
本開示で議論されるプロセスを、ハードウェア、ソフトウェア、またはその組合せで実施することができる。ソフトウェアの文脈では、説明される動作は、１つまたは複数のハードウェア・プロセッサによって実行される時に列挙された動作を実行する、１つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行するか特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、および類似物を含む。当業者は、図面に示されたある種のステップまたは動作を除去し、組み合わせ、または代替の順序で実行することができることをたやすく認めよう。すべてのステップまたは動作を、順次または並列に実行することができる。さらに、動作が説明される順序は、限定として解釈されることを意図されたものではない。
【０２１６】
実施形態を、本開示で説明されるプロセスまたは方法を実行するためにコンピュータ（または他の電子デバイス）をプログラムするのに使用できる命令をその上に記憶された（圧縮された形または非圧縮の形で）非一時的コンピュータ可読記憶媒体を含むソフトウェア・プログラムまたはコンピュータ・プログラム製品として提供することができる。コンピュータ可読記憶媒体は、電子記憶媒体、磁気記憶媒体、光学記憶媒体、量子記憶媒体、その他のうちの１つまたは複数とすることができる。たとえば、コンピュータ記憶媒体は、ハード・ドライブ、光ディスク、読取専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラマブルＲＯＭ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、磁気カード、光カード、ソリッド・ステート・メモリ・デバイス、または電子命令を記憶するのに適する他のタイプの物理媒体を含むことができるが、これに限定はされない。さらに、実施形態を、一時的機械可読信号（圧縮された形または非圧縮の形の）を含むコンピュータ・プログラム製品として提供することもできる。搬送波を使用して変調されたものであれ変調されないものであれ、一時的機械可読信号の例は、１つまたは複数のネットワークによって転送される信号を含む、コンピュータ・プログラムをホスティングするか実行するコンピュータ・システムまたは機械がアクセスするように構成され得る信号を含むが、これに限定はされない。たとえば、一時的機械可読信号は、インターネットによるソフトウェアの伝送を含むことができる。
【０２１７】
これらのプログラムの別々のインスタンスを、任意の個数の別々のコンピュータ・システムにまたがって実行しまたは分散させることができる。ある種のステップが、ある種のデバイス、ソフトウェア・プログラム、プロセス、またはエンティティによって実行されるものとして説明されたが、そうである必要はなく、さまざまな代替の実施態様が、当業者によって理解されよう。
【０２１８】
さらに、当業者は、上で説明された技法をさまざまなデバイス、環境、および状況で使用できることをたやすく認めよう。本主題が、構造的特徴または方法論的行為に固有の言葉で説明されたが、添付の特許請求の範囲で定義される主題が、必ずしも説明された特定の特徴または行為に限定されないことを理解されたい。そうではなく、特定の特徴および行為は、特許請求の範囲を実施する例示的な形として開示されるものである。
【図１】
2021518026.tif 000004
【図２】
2021518026.tif 000005
【図３】
2021518026.tif 000006
【図４】
2021518026.tif 000007
【図５】
2021518026.tif 000008
【図６】
2021518026.tif 000009
【図７】
2021518026.tif 000010
【図８】
2021518026.tif 000011
【図９】
2021518026.tif 000012
【図１０】
2021518026.tif 000013
【図１１】
2021518026.tif 000014
【国際調査報告】
2021518026.tif 000015