(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイスによる実行に応答して、前記コンピューティングデバイスに、
操作の状態を確認するステップと、
前記操作について完了した作業単位の数、前記操作の状態及び前記操作について完了した前記数の作業単位に適用される重み付け関数に基づいて、前記操作のための残り時間を推定するステップと、
前記操作のための前記推定された残り時間に基づいて、前記操作についての時間推定インジケーターを更新するステップと
を含む動作を実行させる命令が格納される１つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項２】
前記操作の状態は、
前記操作の開始における開始状態、
前記操作に影響を及ぼす１つ又は複数のイベントに基づいて生じる警告状態、又は
前記開始状態の後、警告イベントを経験することなく、前記操作が特定の期間の間進行しているときに生じる通常の状態
のうちの少なくとも１つを含む請求項１に記載の１つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項３】
前記推定するステップは、
前記操作の状態に基づいて、計算間隔及び速度パラメーターを取得するステップと、
速度間隔にわたって前記操作についての１つ又は複数の速度測定値を計算するステップと、
前記速度パラメーターを前記１つ又は複数の速度測定値に適用して、パラメーター化された速度測定値を得るステップと、
前記パラメーター化された速度測定値及び前記操作のための残りの作業単位の量に基づいて、前記残り時間を推定するステップと
を含む請求項１に記載の１つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項４】
前記操作の状態は、前記操作が停止された後の再開状態を含み、前記更新するステップは、前記操作のための前記残り時間が再計算されているという視覚的表示を提供するステップを含む請求項１に記載の１つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項５】
前記操作の状態は、異なる操作が開始されること、異なる操作が完了されること、異なる操作が停止されること、又は異なる操作が再開されることのうちの少なくとも１つに応答して生じる警告状態を含む請求項１に記載の１つ又は複数のコンピューター読み取り可能な記憶媒体。
【請求項６】
デバイスであって、
少なくとも１つのプロセッサーと、
前記少なくとも１つのプロセッサーによる実行に応答して、前記デバイスに、
速度間隔にわたって操作の速度測定値を計算するステップと、
パラメーター化された速度測定値を得るために速度パラメーターを前記速度測定値に適用するステップであって、前記速度パラメーターは前記操作の状態に少なくとも部分的に基づき、前記速度パラメーターは前記速度測定値に適用される重み付け関数を含む、ステップと、
前記パラメーター化された速度測定値及び前記操作のための残りの作業単位の量に基づいて、前記操作のための残り時間を推定するステップと
を含む動作を実行させる命令が格納される１つ又は複数のコンピューター読み取り可能な記憶媒体と
を備えるデバイス。
【請求項７】
前記速度間隔は、前記操作の状態に基づいて決定される前記操作中の指定された時間間隔を含む請求項６に記載のデバイス。
【請求項８】
前記適用するステップは前記重み付け関数が適用された後に前記速度測定値を平均化するステップを含む請求項６に記載のデバイス。
【請求項９】
前記操作の状態は、
前記操作の開始における開始状態、
前記操作に影響を及ぼす１つ又は複数のイベントに基づいて生じる警告状態、又は
前記開始状態の後、警告イベントを経験することなく、前記操作が特定の期間の間進行しているときに生じる通常の状態
のうちの少なくとも１つを含む請求項６に記載のデバイス。
【請求項１０】
前記操作の状態は、異なる操作が開始されること、異なる操作が完了されること、異なる操作が停止されること、又は異なる操作が再開されることのうちの少なくとも１つに応答して生じる警告状態を含む請求項６に記載のデバイス。
【請求項１１】
前記動作は、前記操作についての残り時間インジケーターを前記残り時間によって更新するステップをさらに含む請求項６に記載のデバイス。
【請求項１２】
操作の進捗についての視覚的なしるしを含むグラフィカルユーザーインターフェイスを出力するステップと、
前記操作の状態の表示を受け取るステップと、
前記操作の状態に基づいて、速度パラメーター及び速度間隔を取得するステップと、
前記速度間隔にわたって前記操作の速度測定値を計算するステップと、
パラメーター化された速度測定値を得るために前記速度パラメーターを前記速度測定値に適用するステップであって、前記速度パラメーターは前記速度測定値に適用される重み付け関数を含む、ステップと、
前記パラメーター化された速度測定値及び前記操作のための残りの作業単位の量に基づいて、前記操作のための残り時間を推定するステップと、
前記残り時間に基づいて、前記視覚的なしるしのうちの１つ又は複数を更新するステップと
を含む、コンピューターにより実施される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作のための残り時間の推定に関する。
【背景技術】
【０００２】
[0001]様々な操作について、操作が完了するのにどの程度時間がかかるか及び／又は操作完了のためにどの程度の時間が残されているかを知ることは非常に有用となることがある。例えば、コンピューティングデバイス上でのデータ操作（例えば、データの移動、データの削除、データのコピーなど）はデバイスのリソースを利用することができる。したがって、データ操作がいつ完了するかについての正確な推定を提供することで、関連付けられるデバイスのリソースが他の操作やタスクのためにいつ解放されるかを算定する際にユーザーを支援することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、操作のための残り時間の推定を可能にする。
【課題を解決するための手段】
【０００４】
[0002]この概要は、詳細な説明で以下にさらに説明される概念の選択を簡略化された形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴や不可欠な特徴を特定することを意図するものではなく、特許請求される主題の範囲を決定する際の助けとして使用されることも意図されていない。
【０００５】
[0003]操作のための残り時間を推定する技術が説明される。例示的な操作は、ファイル移動操作、ファイルコピー操作などのファイル操作を含む。多種多様な異なる操作が特許請求される実施例に従って考慮され、そのさらなる例が以下で説明される。少なくともいくつかの実施形態では、操作のための残り時間の推定は、操作の状態に基づいてもよい。操作の状態は、例えば、操作が開始されること、操作が停止されること、操作が再開されることなどの操作自体に関連するイベントに基づいてもよい。操作の状態はまた、他の操作に関連するイベントに基づいてもよい。
【０００６】
[0004]詳細な説明は添付の図面を参照して記載される。図面において、参照番号の左端の数字は、参照番号が最初に現れる図面を特定する。明細書及び図面の中で異なる例において同じ参照番号を使用することで、類似の又は同一の項目が示されてもよい。
【図面の簡単な説明】
【０００７】
【図１】[0005]本明細書で説明する技術を使用するように動作可能である例示的な実施形態における環境の図である。
【図２】[0006]１つ又は複数の実施形態による例示的な実施の状況を示す。
【図３】[0007]１つ又は複数の実施形態による例示的な実施の状況を示す。
【図４】[0008]１つ又は複数の実施形態による例示的な実施の状況を示す。
【図５】[0009]１つ又は複数の実施形態による例示的な実施の状況を示す。
【図６】[0010]１つ又は複数の実施形態による例示的な実施の状況を示す。
【図７】[0011]１つ又は複数の実施形態による方法におけるステップを説明する流れ図である。
【図８】[0012]１つ又は複数の実施形態による方法におけるステップを説明する流れ図である。
【図９】[0013]１つ又は複数の実施形態による方法におけるステップを説明する流れ図である。
【図１０】[0014]１つ又は複数の実施形態による方法におけるステップを説明する流れ図である。
【図１１】[0015]図１を参照して説明されるような、本明細書に記載される技術の実施形態を実施するように構成された例示的なシステム及びコンピューティングデバイスを示す。
【発明を実施するための形態】
【０００８】
概説
[0016]操作のための残り時間を推定する技術が説明される。例示的な操作は、ファイル移動操作、ファイルコピー操作などのファイル操作を含む。多種多様な異なる操作が特許請求される実施例に従って考慮され、そのさらなる例が以下で説明される。少なくともいくつかの実施形態では、操作のための残り時間の推定は、操作の状態に基づいてもよい。操作の状態は、例えば、操作が開始されること、操作が停止されること、操作が再開されることなどの操作自体に関連するイベントに基づいてもよい。操作の状態はまた、他の操作に関連するイベントに基づいてもよい。
【０００９】
[0017]例えば、ファイルの記憶位置の間など、ファイルがある場所から別の場所に移動されることを含む例示的なシナリオについて考える。様々な実施形態によれば、ファイル移動操作に関する様々な情報についての視覚的なしるし（兆候、indicia）を含むグラフィカルユーザーインターフェイスを提示することができる。このような情報の例は、操作のために行われるべき作業の量、例えば、ファイルの数及び／又は移動するべきデータの量を含む。情報はまた、ファイル移動操作が発生している速度、操作の進捗状況（例えば、いくつのファイル及び／又はどのくらいのデータが移動されたか）、操作のために行われるべき作業がどのくらい残っているかなどを含む。
【００１０】
[0018]例示的なシナリオに加えて、グラフィカルユーザーインターフェイスは、操作のための推定される残り時間についての視覚的な表示を含む。例えば、残り時間は、時間、分、秒などの単位で示すことができる。様々な操作の状態に基づいて、操作のための残り時間は、定期的に及び／又は操作に影響を与える様々なイベントに応答するなどして推定することができる。残り時間についての視覚的表示は、推定される残り時間を反映するように更新することができる。本明細書中で詳述するように、操作のための残り時間を推定する技術は、操作の進捗を監視するための安定したユーザーエクスペリエンスを提供しつつ、操作状態の変化を説明するために用いることができる。
【００１１】
[0019]以下の説明では、本明細書に記載される技術を使用するように動作可能である例示的な環境について最初に説明する。次に、「例示的な実施のシナリオ」と題するセクションで、１つ又は複数の実施形態によるいくつかの例示的な実施のシナリオを説明する。これに続いて、「例示的な手順」と題するセクションで、１つ又は複数の実施形態によるいくつかの例示的な方法を説明する。次に、「他の実施形態」と題するセクションにおいて、１つ又は複数の実施形態による、本明細書において説明される技術のいくつかの更なる例示的な実施について説明する。最後に、「例示的なシステム及びデバイス」と題するセクションにおいて、１つ又は複数の実施形態による、本明細書において説明する技術を使用するように動作可能である例示的なシステム及びデバイスを説明する。
【００１２】
[0020]１つ又は複数の実施形態による例示的な実施形態の概要を提示したが、ここで、例示的な実施例を使用することができる例示的な環境について考える。
例示的な環境
[0021]図１は、本明細書に記載される、操作のための残り時間を推定する技術を使用するように動作可能である例示的な実施形態における環境１００の図である。図示される環境１００は、様々な方法で構成することができるコンピューティングデバイス１０２を含む。例えば、コンピューティングデバイス１０２は、図１１に関連してさらに説明されるような、従来のコンピューター（例えば、デスクトップパーソナルコンピューター、ラップトップコンピューターなど）、移動局、娯楽機器、テレビに通信可能に接続されたセットトップボックス、携帯電話、ネットブック、ゲームコンソール、ハンドヘルドデバイスなどとして構成されていてもよい。
【００１３】
[0022]したがって、コンピューティングデバイス１０２は、十分なメモリー及びプロセッサーリソースを備えたフルリソースデバイス（例えば、パーソナルコンピューター、ゲーム機、スレート又はタブレット形式のファクターデバイス）から、限られたメモリー及び／又は処理リソースを備える低リソースデバイス（例えば、従来のセットトップボックス、ハンドヘルドゲームコンソール）まで、多岐にわたってもよい。コンピューティングデバイス１０２はまた、本明細書に記載されるように、コンピューティングデバイス１０２に１つ又は複数の操作を実行させるソフトウェアを含む。
【００１４】
[0023]コンピューティングデバイス１０２は、コンピューティングデバイス１０２を介して様々なタスクを実行するための機能を表すアプリケーション１０４及びサービス１０６を含む。アプリケーション１０４の例は、ワードプロセッサーアプリケーション、電子メールアプリケーション、コンテンツ編集アプリケーション、ウェブブラウジングアプリケーションなどを含む。サービス１０６は、ファイル操作、データ処理動作、イベント通知などのタスクを実行するためにコンピューティングデバイス１０２によって使用することができる機能を表す。サービス１０６によって実行及び／又は管理することができるファイル操作の例は、ファイルのコピー、ファイルの移動、ファイルの削除、ファイルのダウンロード及び／又はアップロード、ファイルの再利用、ファイルの名前変更、ファイル属性の変更（例えば、ファイルのメタデータに対する変更）などを含む。
【００１５】
[0024]コンピューティングデバイス１０２は、さらに、アプリケーション１０４、サービス１０６などについての、コンピューティングデバイス１０２のための様々な操作を管理する機能を表す操作マネージャーモジュール１０８を含む。このような操作の例は、（例えば、上記のような）ファイル操作、診断操作、更新操作、セキュリティ操作などを含む。多種多様な他の操作は、特許請求される実施形態に従って、操作マネージャーモジュール１０８を介して管理することができる。
【００１６】
[0025]コンピューティングデバイス１０２の一部として推定モジュール１１０がさらに含まれ、これは、本明細書で説明される操作のための残り時間を推定する技術の少なくともいくつかの態様を実行するための機能を表す。例えば、様々な操作の状態の視覚的表示を提供する操作チャート１１４を含むユーザーインターフェイス（ＵＩ）１１２を考える。例えば、操作チャート１１４は、操作が現在発生している速度を示すことができる。操作チャート１１４はまた、例えば、操作の何パーセントが完了したか及び／又はどの程度の操作が完了されないまま残っているかなど、操作の進捗状況を示す。
【００１７】
[0026]操作ＵＩ１１２は、操作チャート１１４によって追跡されている特定の操作に関する情報を含む説明部１１６を含む。この例では、説明部１１６は、ファイルコピー操作の状態が追跡されていることを示す。この操作は例示のみの目的のために提示されるものであり、多種多様な異なる操作及び／又はリソースを、特許請求される実施形態に従って追跡することができる。
【００１８】
[0027]操作チャート１１４は、さらに、停止コントロール１１８及びキャンセルコントロール１２０を含む。停止コントロール１１８は、操作チャート１１４によって追跡されている操作を一時中断するために選択することができ、キャンセルコントロール１２０は、そのような操作をキャンセルするために選択することができる。本明細書の他の箇所で説明されるように、停止コントロール１１８が選択されて操作が中断されると、操作を再開するために選択することができる再開コントロールが表示されてもよい。
【００１９】
[0028]値マーク（value mark）１２２は、操作チャート１１４の一部として含まれ、追跡されている操作についての現在の値のグラフィカルな表示を提供する。例えば、値マーク１２２は、データレートなどの、操作の速度についての特定の値又は値の範囲に対応することができる。この例では、値マーク１２２は、ファイルのダウンロード操作についての現在のダウンロード速度を示す。値マーク１２２は、操作の値の変化を視覚的に示すために、操作チャート１１４内で上下に移動することができる。
【００２０】
[0029]操作チャート１１４はさらに、進捗マーク１２４及び履歴ライン１２６を含む。進捗マーク１２４は、完了すべき全体の操作単位を参照するなどして、現在の操作の進捗状況を示すように配置される。例えば、進捗マーク１２４は、操作について様々な進捗状況の点を示すために、操作チャート１１４内において様々な点に配置することができる。
【００２１】
[0030]履歴ライン１２６は、操作についての履歴の値（historical value）を表す。例えば、履歴ライン１２６は、時間的に進捗マーク１２４の前に生じる値に対応するデータ点をつなげることができる。したがって、少なくともいくつかの実施例では、進捗マーク１２４は、操作が進むにつれて、操作チャート１１４内で左から右に横断してもよい。さらに、進捗マーク１２４が操作チャート１１４内で横断するとき、履歴ライン１２６は、例えば別の進捗点における以前の値などの、以前の操作の値を示すことができる。
【００２２】
[0031]操作ＵＩ１１２はまた、時間推定１２８及び残り項目インジケーター（items remaining indicator）１３０を含む。時間推定１２８は、操作チャート１１４に関連付けられる操作が完了するまでの残りの推定時間についての視覚的表示を含む。様々な実施形態によれば、推定モジュール１１０は、様々な情報や異なるパラメーターに基づいて、操作完了までの残り時間を推定することができる。例えば、推定モジュール１１０は、操作状態を監視し、操作状態の変化に基づいて操作についての残り時間の推定を調整することができる。したがって、操作が完了に向けて進み及び／又は他のイベントが生じるとき、時間推定１２８は、操作の進捗の変化を反映するように更新することができる。推定モジュール１１０のさらなる動作態様は本明細書の他の箇所で詳述される。
【００２３】
[0032]残り項目インジケーター１３０は、操作においてまだ完了されていない操作項目の数を示す。例えば、残りの項目は、まだコピーされていないファイルの数、まだコンピューティングデバイス１０２を介して送信又は受信されていないバイトの数などの、まだ完了されていない作業単位の数を指してもよい。したがって、少なくともいくつかの実施形態において、操作は作業単位の総数として抽象化することができる。残り項目インジケーター１３０は、作業単位の総数のうちまだ完成されていない作業単位の数を表示することができる。代替的に又は加えて、残り項目インジケーターは、特定の操作進捗時点での完了した作業単位の数を示す、完了項目インジケーターとして実施することができる。
【００２４】
[0033]本明細書に記載の技術が動作することができる例示的な環境について説明したが、ここで、１つ又は複数の実施形態によるいくつかの実施例のシナリオの説明を検討する。
例示的な実施のシナリオ
[0034]以下の説明は、１つ又は複数の実施形態による、操作のための残り時間を推定するためのいくつかの例示的な実装のシナリオについて説明する。以下の説明の一部において、図１の環境１００の様々な態様が参照される。
【００２５】
[0035]図２は、概して２００において例示的な実施のシナリオを示す。シナリオ２００の上部は、操作に関する情報を表示するように構成される操作ＵＩ２０２を含む。操作ＵＩ２０２は、進行しているファイルコピー操作に関する情報を表示する操作チャート２０４を含む。時間推定２０６は、ファイルコピー操作のための残りの推定時間を表示し、残り項目インジケーター２０８は、操作の一部としてまだコピーされていないアイテム（例えば、ファイル）の数を表示する。
【００２６】
[0036]操作ＵＩ２０２は、さらに、進行しているファイルアップロード操作に関する情報を表示する操作チャート２１０を含む。時間推定２１２は、ファイルアップロード操作の残りの推定時間を表示し、残り項目インジケーター２１４は、まだアップロードされていないアイテム（例えば、ファイル）の数を表示する。図示されるように、時間推定２１２は、アップロード操作の完了まであと約２秒であり、したがってほとんど完了していることを示す。
【００２７】
[0037]シナリオ２００の下部に進むと、操作チャート２１０に関連付けられるファイルアップロード操作が完了しており、したがって、操作チャート２１０は操作ＵＩ２０２から除去されている。さらに、操作チャート２１０がもう表示されていないので、操作ＵＩ２０２はサイズ変更されている。
【００２８】
[0038]操作チャート２１０に関連付けられるアップロード操作の完了により、操作チャート２０４に関連付けられるファイルコピー操作についての推定される完了時間の再計算が引き起こされる。例えば、ファイルアップロード操作の完了によって引き起こされる操作状態の変化の通知が生成されて、推定モジュール１１０に送られてもよい。通知に応答して、推定モジュール１１０は、操作チャート２０４に関連付けられたファイルコピー操作のための残りの推定時間を再計算することができる。時間推定２０６は、再計算された推定時間に基づいて更新することができる。
【００２９】
[0039]例えば、操作チャート２１０に関連付けられる現在完了しているアップロード操作を実行するのに使用されていたリソース（例えば、デバイスリソース、ネットワークリソースなど）が現在利用可能であるとする。そのようなリソースは、操作チャート２０４に関連付けられたファイルコピー操作を完了するために利用可能になり、したがって、ファイルコピー操作が進行する速度の増加を引き起こす。したがって、完了までの推定時間がその増加した操作速度に基づいて再計算されて、以前の速度に基づいて提供されるものよりもより正確な推定値を提供する。更なる詳細は、様々なイベントに基づく残り時間の推定に関して以下で紹介される。
【００３０】
[0040]再計算された推定完了時間に基づいて、時間推定２０６は、完了までの新たな推定時間を反映するように更新される。残り項目インジケーター２０８は、まだコピーされていない項目の数を反映するように更新される。
【００３１】
[0041]図３は、概して３００において、例示的な実施のシナリオを示す。シナリオ３００の上部は、操作チャート３０４及び操作チャート３０６を有する操作ＵＩ３０２を含む。図示されるように、操作チャート３０４は、ファイルダウンロード操作の進捗状況を追跡し、操作チャート３０６は、ファイル削除操作の進捗状況を追跡する。
【００３２】
[0042]シナリオ３００において、さらに、ユーザーは、操作チャート３０６に関連付けられる停止コントロール３０８を選択する。停止コントロール３０８を選択することで、ファイル削除操作が停止、例えば一時停止される。
【００３３】
[0043]シナリオ３００の下部へと続いて、ファイル削除操作を停止することで、操作チャート３０４に関連付けられるファイルダウンロード操作の完了時間の再計算が引き起こされる。例えば、現在停止されている削除操作を実行するために使用されていたリソースは、ファイルダウンロード操作を実行するために利用することができる。リソースの増加により、ファイルダウンロード操作が進む速度の対応する増加が引き起こされてもよい。
【００３４】
[0044]ファイルダウンロード操作の完了時間の再計算に応答して、ファイルダウンロード操作の時間推定３１０は、再計算された時間を反映するように更新される。
[0045]さらに図示されるように、停止コントロール３０８が選択されると、再開コントロール３１２が表示される。再開コントロール３１２は、例えば、ファイル削除操作が停止された時点からファイル削除操作を再開させるために選択することができる。
【００３５】
[0046]少なくともいくつかの実施形態では、操作は、操作中に生じる競合などのイベントに応答して、自動的に停止される。操作を自動的に停止する例示的な実施例を以下で説明する。
【００３６】
[0047]図４は、概して４００において、例示的な実施例のシナリオを示す。シナリオ４００の上部は、今度は操作チャート４０４を有する操作ＵＩ４０２を含む。図示されるように、操作チャート４０４は、ファイルコピー操作の進捗状況を追跡する。
【００３７】
[0048]時間推定４０６が示すように、ファイルコピー操作が完了するまでの残りの推定時間は２０秒であり、現在は停止状態にある。例えば、操作チャート４０４に関連付けられる停止コントロールが選択されていてもよい。操作ＵＩ４０２はまた、ファイルコピー操作を停止状態から再開するために選択することができる再開コントロール４０８を含む。
【００３８】
[0049]シナリオ４００の中央部へと続いて、再開コントロール４０８が、例えばユーザー入力を介して選択される。再開コントロール４０８の選択に応答して、ファイルコピー操作が再開する。時間推定４０６は、例えばファイルコピー操作が再開されたことに応答して、残り時間が現在推定されていることを示す。さらに、再開コントロール４０８は、停止コントロール４１０に置き換えられる。
【００３９】
[0050]シナリオ４００の下部へと続いて、残り時間が本明細書に記載される技術に従って再計算され、時間推定４０６は、ファイルコピー操作についての再計算された残り時間を反映するように更新される。図示されるように、「推定中」の表示が時間推定４０６から削除されて、残り時間が再計算されて表示されたことが反映される。
【００４０】
[0051]このように、シナリオ４００は、様々な操作を停止して再開するために実施形態を使用することができることを示し、本明細書で説明する技術が、操作が一時停止状態から再開されたときに当該操作についての残り時間を正確に再推定できることを示す。
【００４１】
[0052]図５は、概して５００において、例示的な実施例のシナリオを示す。少なくともいくつかの実施形態によれば、シナリオ５００は、追加の操作の開始によって、現在進行している操作の推定残り時間の再計算が引き起こされる実装例を説明する。
【００４２】
[0053]シナリオ５００の上部は、操作チャート５０４を有する操作ＵＩ５０２を含む。図示されるように、操作チャート５０４は、ファイル移動操作の進捗状況を追跡する。操作ＵＩ５０２は、さらに、ファイル移動操作が完了するまでの推定時間を示す時間推定５０６を含む。
【００４３】
[0054]シナリオ５００の下部へと続いて、ファイルアップロード操作が、ファイル移動操作に加えて開始される。例えば、ファイル移動操作が進行している間に、ユーザー及び／又は他のエンティティは、ファイルアップロード操作を開始することができる。ファイル移動操作の開始に応答して、操作チャート５０８が操作ＵＩ５０２に追加されて、ファイルアップロード操作の進捗状況を追跡する。
【００４４】
[0055]ファイルアップロード操作の開始はまた、操作チャート５０４に関連付けられたファイル移動操作の残り時間の再計算を引き起こす。例えば、ファイル移動操作を実行するために使用されている少なくともいくつかのリソースは、ファイルアップロード操作の実行を支援するために流用することができる。したがって、ファイル移動操作は、リソースの減少に基づいて、よりゆっくりと進行することになり得る。
【００４５】
[0056]ファイル移動操作のための残り時間の再計算を反映するために、時間推定５０６は、残り時間が推定されていること（「推定中」）を示す。したがって、時間推定５０６は、イベント（例えば、ファイルアップロード操作の開始）によってファイル移動操作の進捗状況の変化が生じたこと及びファイル移動操作の完了までの推定時間が現在推定されていることについての視覚的な表示を提供することができる。
【００４６】
[0057]ここでは明示的に示されないが、ファイル移動操作の残り時間が再計算されることに応答して、時間推定５０６を残り時間で更新することができる。さらに、「推定中」の表示を時間推定５０６から除去して、新たに再計算された推定時間が表示されることを示すことができる。
【００４７】
[0058]図６は、概して６００において、例示的な実施例のシナリオを示す。少なくともいくつかの実施形態によれば、シナリオ６００は、操作の競合が解決された後に操作が再開する実施例を示す。
【００４８】
[0059]シナリオ６００の上部は、様々な態様の操作を追跡する操作ＵＩ６０２を示す。この例では、操作ＵＩ６０２は、ファイルコピー操作に関する情報を含む。シナリオ６００においてさらに、ファイルコピー操作中に競合が生じる。競合通知６０４によって示されるように、コピーされているファイルと既にコピー先に格納されているファイルとの間で名前の競合が生じる。
【００４９】
[0060]競合に応答して、競合を解決する機会を提供するためにファイルコピー操作が自動的に停止される。例えば、競合を処理するための選択肢を提示する競合オプション６０６が提示される。少なくともいくつかの実施形態では、競合オプション６０６は、選択されると関連付けられるアクションを生じさせる選択可能なコントロールである。
【００５０】
[0061]シナリオ６００の中央部へ進み、対応するアクションを生じさせてファイルコピー操作を再開させる、競合オプション６０６のうちの１つが選択される。例えば、操作チャート６０８は、進捗インジケーター、レートインジケーターなどの動きによるなどして、ファイルコピー操作が再開したという視覚的な表示を提供する。
【００５１】
[0062]ファイルコピー操作の残り時間が計算されていることを示す時間推定６１０が含まれる。ファイルコピー操作の再開に応答して、例えば、本明細書で説明される技術に従って、以前に計算された推定時間から残り時間を再計算することができる。
【００５２】
[0063]シナリオ６００の下部へと続いて、ファイルコピー操作のための残り時間が再計算され、時間推定６１０は、再計算された推定時間を反映するように更新される。したがって、操作の競合が発生するとき、競合が除去及び／又は解決された後に操作のための残り時間を再計算するために技術を利用することができる。
【００５３】
[0064]本明細書において説明されるシナリオ及びユーザーインターフェイスは例示的な実施例として提示されるものであり、本明細書において説明される実施形態は、多種多様な異なる実施例のシナリオに従って、本明細書において明示的に示されず説明されていない様々な別の視覚化を利用して、使用することができる。技術は、例えば、プログレスバー、円グラフ、様々なグラフの実施例などの様々な進捗インジケーターとともに利用することができる。例えば、上述したユーザーインターフェイスの視覚的な態様は、特許請求される実施形態の趣旨及び範囲から逸脱することなく、様々な方法で実施し、組み合わせることができる。
【００５４】
[0065]いくつかの例示的な実施例のシナリオについて説明したが、ここで、１つ又は複数の実施形態によるいくつかの例示的な手順の説明を検討する。
例示的な手順
[0066]以下の議論は、１つ又は複数の実施形態による、操作のための残り時間を推定するいくつかの例示的な手順を説明する。例示的な手順は、図１の環境１００、図１１のシステム１１００及び／又は任意の他の適切な環境において使用することができる。上述した実施例のシナリオは、例えば、例示的な手順の様々な態様を利用して実施することができる。
【００５５】
[0067]図７は、１つ又は複数の実施形態による方法におけるステップを説明する流れ図である。ステップ７００は、操作がアクティブであることを確認する。例えば、操作マネージャーモジュール１０８は、操作が開始されるか及び／又はアクティブであると判断することができる。少なくともいくつかの実施形態では、操作に関連付けられるアプリケーション及び／又はサービスが、操作が開始されること及び／又はアクティブであることの通知を生成することができる。
【００５６】
[0068]ステップ７０２は、操作のために完了するべき作業単位の総量を決定する。操作のためのデータの量などの様々な種類の作業単位が考慮され得る。データの量は、ビット、バイトなどの様々な異なる単位を用いて測定することができる。別の例として、単位は、ファイルのインスタンス、データのブロックなどの個別のアイテムに基づいてもよい。例えば、ある場所から別の場所へデータを移動させる操作に関して、作業単位は、データ単位での移動されるべきデータの総量、移動されるべきデータファイルの総数などを指してもよい。特許請求される実施形態に従って、様々な他の作業単位を利用することができる。
【００５７】
[0069]ステップ７０４は、完了した作業単位の数を決定する。例えば、完了した作業単位の数は、動作中の様々な進行の時点で決定することができる。
[0070]ステップ７０６は操作の状態を確認する。以下でより詳細に議論されるように、操作は様々な状態を有することができる。操作状態の例は、操作の開始、（例えば、他のイベントに応答する）操作警告（operation alert）、操作の正常な進捗などを含む。
【００５８】
[0071]ステップ７０８は、まだ完了していない作業単位の数及び操作の状態に基づいて、操作のための残り時間を推定する。例えば、残り時間の推定値は、異なる操作状態に基づいて変化し得るパラメーター及び他のファクターに基づいて計算することができる。残り時間の推定に関するさらなる詳細が以下に提供される。
【００５９】
[0072]ステップ７１０は、完了までの推定時間に基づいて、時間推定インジケーターを更新する。例えば、残り時間についての視覚的表示は、操作の完了までの推定時間を反映するように更新することができる。可聴式のインジケーターなどの他の種類の時間推定インジケーターを、追加的又は代替的に使用することができる。
【００６０】
[0073]ステップ７１２は、操作が完了したかどうかを確認する。操作が完了していない場合（「いいえ」）、プロセスはステップ７００に戻る。例えば、操作が進行するとき、操作が完了するまで、操作のための残り時間が継続的に及び／又は追加的に推定されて更新されてもよい。操作が完了した場合（「はい」）、ステップ７１４は動作を終了する。
【００６１】
[0074]図８は、１つ又は複数の実施形態による方法におけるステップを説明する流れ図である。少なくともいくつかの実施形態によれば、方法は、図７のステップ７０８に関連して説明されたものなどの、操作のための残り時間を推定するための時間推定パラメーターを決定する例示的な実施例を説明する。例えば、時間推定パラメーターは、図７のステップ７０６において決定される操作状態に基づいて決定することができる。
【００６２】
[0075]ステップ８００は、操作が開始状態であるか否かを判定する。例えば、開始状態は、操作の開始時における最初の期間に対応してもよい。少なくともいくつかの実施形態では、最初の期間は、１秒、２秒、５秒などの、操作の開始から測定される特定の時間増分を使用して規定することができる。
【００６３】
[0076]操作が開始状態にある場合（「はい」）、ステップ８０２は、開始状態についての計算パラメーター及び計算間隔を取得する。様々な実施形態によれば、計算パラメーターは、操作のための残り時間を推定するために使用される様々な測定にどれくらいの重みが与えられるかを指定する。例えば、計算パラメーターは、操作のための速度測定値及び／又は時間推定値に適用することができる重み付け関数を含むことができる。
【００６４】
[0077]様々な実施形態によれば、計算間隔は、速度測定値、完了した作業単位の数の測定値などの測定値が取得される期間を指す。したがって、様々な計算間隔を様々な操作状態に対して使用することができ、これは以下に詳細に説明される。
【００６５】
[0078]操作が開始状態にない場合（「いいえ」）、ステップ８０４は、操作が警告状態にあるか否かを判定する。警告状態は、例えば、特定のイベントが発生したこと、発生していること、及び／又は発生しようとしていることの通知などの様々なイベントの兆候に対応する。このようなイベントの例は、操作停止イベント、操作再開イベント、操作完了イベント、新しい操作イベントなどの、操作についての操作状態の変化を含む。警告は、残り時間が推定されているイベントに対する変更に基づいて、及び／又は同時に発生している操作などの異なる操作に対して、生成することができる。
【００６６】
[0079]警告はまた、リソース変更イベント、ユーザーアクティビティイベントなどの他のイベントに基づいて生成することができる。リソース変更イベントの例は、ネットワーク帯域幅の増減、プロセッサーの可用性の変化などを含む。ユーザーアクティビティイベントの例は、アプリケーション、サービスなどの様々な機能とのユーザーインタラクションを含む。したがって、少なくともいくつかの実施形態では、警告を生成することができ、バックグラウンドのイベントなどのユーザーに対して明示的に表示されていないイベントに基づいて残り時間を再計算することができる。
【００６７】
[0080]操作が警告状態にある場合（「はい」）、ステップ８０６は、警告状態についての計算パラメーター及び計算間隔を取得する。操作が警告状態にない場合（「いいえ」）、ステップ８０８は、通常の状態に対して計算パラメーター及び計算間隔を取得する。様々な実施形態によれば、正常な状態とは、操作開始後、警告イベントを経験することなく、操作が特定の時間期間の間進行しているときに生じる操作状態を指す。例えば、正常な状態とは、操作のための「通常の」操作状態を指してもよい。
【００６８】
[0081]例えば、正常な状態は、操作開始時に及び／又は警告後に開始するタイマーに基づいてもよい。タイマーが（例えば、警告から中断することなく）終了するとき、操作は正常な状態にあると考えることができる。タイマーが経過している間に警告状態が発生する場合、タイマーはリセット及び／又は再スタートされてもよい。２秒、５秒などの任意の適切な期間を利用することができる。
【００６９】
[0082]ステップ８１０は、取得されたパラメーター及び間隔に基づいて、操作のための残り時間を推定する。パラメーター及び間隔に基づく残り時間の計算の詳細な例が以下に提示される。
【００７０】
[0083]図９は、１つ又は複数の実施形態による方法におけるステップを説明する流れ図である。少なくともいくつかの実施形態によれば、方法は、図８のステップ８１０に関連して説明されるものなどの、操作のための残り時間を計算する例示的な実施例を説明する。
【００７１】
[0084]ステップ９００は、速度間隔（スピードインターバル、speed interval）にわたる操作についての速度測定値を計算する。速度とは、一般に、操作が行われる速度（レート）を指す。例えば、速度は、データレート、ビットレート、データ転送レートなどに関して測定することができる。速度はまた、ファイルのインスタンスなどの、オブジェクトの個別のインスタンスに関して測定することができる。例えば、ファイルコピー操作は、ファイルからのデータがコピーされる速度に関して及び／又は特定の時間期間にわたってコピーされるファイルのインスタンスの数に関して、測定することができる。
【００７２】
[0085]速度間隔は、上記の計算間隔のうちの１つに対応する。少なくともいくつかの実施形態では、異なる速度間隔が、異なる操作状態に対して定義することができ、速度測定値をとることができる指定された時間間隔に対応することができる。例えば、開始状態についての速度間隔は、警告状態や正常状態についての速度間隔よりも短くすることができる。速度間隔は、ミリ秒、秒、（例えば、フレームレート及び／又はリフレッシュレートに関連して）フレームなどの、任意の適切な単位を用いて定義することができる。したがって、少なくともいくつかの実施形態では、複数の速度測定値を、定義された測定期間に従うなどして、速度間隔中に取ることができる。１つ又は複数の実施形態によれば、単一の速度測定がとられるように、ゼロ（０）の速度間隔を設定することができる。
【００７３】
[0086]ステップ９０２は、速度パラメーターを速度測定値に適用して、パラメーター化された速度測定値を得る。一般に、速度パラメーターは、上述の計算パラメーターの実施例に対応する。したがって、少なくともいくつかの実施形態では、異なる操作状態は異なる速度パラメーターに関連付けることができる。
【００７４】
[0087]上述のように、速度パラメーターは、全体の加重値を決定するために異なる値に異なる重みを適用する重み付け関数として実施することができる。例えば、上述のように、複数の速度測定値が速度間隔中に取り込まれるとする。重み付け関数は、操作の実際の速度を決定する際に測定値のうちのいくつかが他とは異なる重み付けをされるように、速度測定に適用することができる。
【００７５】
[0088]例えば、速度間隔中に１０個の速度測定値が取られるシナリオを考える。最初の５つの測定値が次の５つよりもより大きく重み付けされるように、重み付け関数を速度測定値に適用することができる。少なくともいくつかの実施形態では、これにより、全体の速度計算に対して過度に影響を及ぼすことから生じ得る操作速度の急上昇を防ぐことができる。このシナリオは、例示のみの目的のために提示されるものであり、様々な実施形態に従って、多種多様な異なる重み付け関数を適用することができる。
【００７６】
[0089]速度パラメーターを適用することに関して、さらに、速度間隔中に取得された及び／又は重み付け関数に従って重み付けされた速度測定値は、パラメーター化された速度測定値を得るために平均化することができる。
【００７７】
[0090]ステップ９０４は、パラメーター化された速度測定値及び残りの作業単位の量に基づいて、操作のための残り時間を推定する。例えば、残りの作業単位の量は、操作のための作業単位の合計から完了した作業単位の量の値を差し引くことによって決定することができる。残りの作業単位の量は、操作のための残り時間の推定量を得るために、上記の計算されたパラメーター化された速度測定値によって除算することができる。
【００７８】
[0091]例えば、全体の作業単位が１０００メガバイトであり、２００メガバイトが完了しており、毎秒５０メガバイトの速度が計算されるシナリオを考える。この状況では、推定される残り時間は１６秒、すなわち、毎秒５０メガバイトにおける８００メガバイトであると決定される。
【００７９】
[0092]次いで、推定された残り時間は様々な方法で出力することができ、その例は上述され又は以下で説明される。
[0093]上記の方法は、操作のための残り時間を推定するほんの１つだけの例示的な実施例を提供するものである。例えば、別の実施例において、本発明の実施形態は、操作のための残りの作業単位の量を単に決定して、それを現在の操作の速度で（例えば、個々の測定値として）割ることで、操作のための推定される残り時間を決定してもよい。代替的に又は加えて、上述の重み付け関数は必要に応じて省略されてもよく、その結果、推定される残り時間を計算するために、複数の速度測定値の単純平均が利用される。
【００８０】
[0094]さらに、少なくともいくつかの実施形態は、平均値から一定量だけ変化する測定値（例えば、速度測定値）を除外するフィルターを使用してもよい。例えば、（上で詳述したような）速度間隔中に一群の速度測定値が取得される場合、測定値のうちの他のものから一定の割合だけ変化する測定値が、測定値を一緒に平均化して全体的な速度測定値を得る目的のために無視されてもよい。
【００８１】
[0095]図１０は、１つ又は複数の実施形態による方法におけるステップを説明する流れ図である。少なくともいくつかの実施形態によれば、方法は、図７のステップ７１０に関して説明したものなどの、推定される残り時間を出力する例示的な実施例を説明する。
【００８２】
[0096]ステップ１０００は、操作のための推定される残り時間を受け取る。例えば、残り時間は、本明細書で説明した技術を利用して推定することができる。ステップ１００２は、更新タイマーが終了しているか否かを判定する。少なくともいくつかの実施形態では、操作のためにどのくらいの時間が残っているかに基づいて、異なる更新タイマーを使用することができる。例えば、更新タイマーは、様々な残り時間閾値に基づいて指定することができる。
【００８３】
[0097]例えば、操作が完了するまでに１時間より多くの時間が残っている場合、１分の更新タイマーを指定することができる。操作の残り時間が１時間未満であるが１０分より多い場合、３０秒の更新タイマーを指定することができる。操作の残り時間が１０分未満であるが１分より多い場合、１５秒の更新タイマーを指定することができる。操作の残り時間が１分未満である場合、５秒の更新タイマーを指定することができる。これらの更新タイマーは、例示のみを目的として提示されるものであり、特許請求される実施例に従って、多種多様な異なるタイマーを実施することができる。
【００８４】
[0098]更新タイマーが終了していない場合、ステップ１００４は、操作のための残り時間を推定し続ける。例えば、上述の方法は、最新の残り時間の推定値を決定するために繰り返すことができる。
【００８５】
[0099]更新タイマーが終了した場合（「はい」）、ステップ１００６は、操作のための推定される残り時間の表示を出力する。出力は、視覚表示、可聴出力、及び／又は任意の他の適切な形態の出力を含むことができる。
【００８６】
[00100]ステップ１００８は、操作が完了したか否かを判定する。動作が完了している場合（「はい」）、ステップ１０１０は動作を終了する。操作が完了していない場合（「いいえ」）、処理はステップ１００４に進み、操作のための残り時間を推定し続ける。様々な実施形態によれば、ステップ１００４の実行により、図７のステップ７００へ戻り、操作が完了するまで、より最近の残り時間の値を推定することができ、推定される残りの時間のしるしを出力することができる。
他の実施形態
[00101]本明細書で説明される実施形態は、上述したようなファイル操作やデータ操作以外の目的のために使用することができる。例えば、実施形態は、製品開発、構築、データ処理（例えば、タスクのコンパイル）、社会学的現象（例えば、集団移動）、製品出荷などの様々な他の種類のタスク及び／又は操作の完了までの値、進捗、及び時間を追跡するために利用することができる。したがって、本明細書において説明した実施形態によれば、完了時間を推定し、再推定することができる。
例示的なシステム及びデバイス
[00102]図１１は、本明細書に記載される様々な技術を実施することができる１つ又は複数のコンピューティングシステム及び／又はデバイスを表す例示的なコンピューティングデバイス１２０２を含む例示的なシステムを１１００において概して示す。例えば、図１に関連して上述したコンピューティングデバイス１０２は、コンピューティングデバイス１１０２として具体化することができる。コンピューティングデバイス１１０２は、例えば、サービスプロバイダーのサーバー、クライアントに関連付けられるデバイス（例えば、クライアントデバイス）、オンチップシステム、及び／又は任意の他の適切なコンピューティングデバイスもしくはコンピューティングシステムであってもよい。
【００８７】
[00103]図示される例示的なコンピューティングデバイス１１０２は、互いに通信可能に接続される、処理システム１１０４、１つ又は複数のコンピューター読み取り可能な媒体１１０６、及び１つ又は複数の入出力（Ｉ／Ｏ）インターフェイス１１０８を含む。図示していないが、コンピューティングデバイス１１０２は、さらに、様々なコンポーネントを互いに結合するシステムバス又は他のデータ及びコマンド転送システムを含んでもよい。システムバスは、メモリーバスもしくはメモリーコントローラー、周辺バス、ユニバーサルシリアルバス、及び／又は様々なバスアーキテクチャーのうちの任意のものを利用するプロセッサーもしくはローカルバスなどの、様々なバス構造の任意の１つ又は組み合わせを含むことができる。制御線及びデータ線などの様々な他の例もまた考慮される。
【００８８】
[00104]処理システム１１０４は、ハードウェアを使用して１つ又は複数の動作を実行する機能を表す。従って、処理システム１１０４は、プロセッサー、機能ブロックなどとして構成することができるハードウェアコンポーネント１１１０を含むものとして示される。これは、特定用途向け集積回路又は１つもしくは複数の半導体を用いて形成された他の論理デバイスとしてのハードウェアでの実施を含むことができる。ハードウェア要素１１１０は、それらが形成される材料や、それらの中で使用される処理機構によって限定されるものではない。例えば、プロセッサーは、半導体及び／又はトランジスター（例えば、電子集積回路（ＩＣ））で構成することができる。そのようなコンテキストでは、プロセッサー実行可能命令は電子的に実行可能な命令であってもよい。
【００８９】
[00105]コンピューター読み取り可能な媒体１１０６は、メモリー／ストレージ１１１２を含むものとして示される。メモリー／ストレージ１１１２は、１つ又は複数のコンピューター読み取り可能な媒体に関連付けられるメモリー／ストレージ容量を表す。メモリー／ストレージ１１１２は、（ランダムアクセスメモリー（ＲＡＭ））などの揮発性媒体及び／又は（リードオンリーメモリー（ＲＯＭ）、フラッシュメモリー、光ディスク、磁気ディスクなどの）不揮発性媒体を含んでもよい。メモリー／ストレージ１１１２は、固定媒体（例えば、ＲＡＭ、ＲＯＭ、固定ハードドライブなど）のほか、取り外し可能な媒体（例えば、フラッシュメモリー、取り外し可能なハードドライブ、光ディスクなど）を含むことができる。コンピューター読み取り可能な媒体１１０６は、以下にさらに説明される様々な他の方法で構成することができる。
【００９０】
[00106]入出力インターフェイス１１０８は、ユーザーがコンピューティングデバイス１１０２にコマンド及び情報を入力することを可能にし、また、様々な入出力デバイスを使用して情報をユーザー及び／又は他のコンポーネントやデバイスに提示することを可能にする機能を表す。入力デバイスの例は、キーボード、カーソル制御デバイス（例えば、マウス）、マイクロフォン（例えば、音声認識及び／又は音声入力用のもの）、スキャナー、タッチ機能（例えば、物理的接触を検出するように構成される容量センサー又は他のセンサー）、（例えば、タッチを含まない動きをジェスチャーとして検出するために可視波長や赤外線周波数などの非可視波長を使用することができる）カメラなどを含む。出力デバイスの例は、表示デバイス（例えば、モニター又はプロジェクター）、スピーカー、プリンター、ネットワークカード、触覚応答デバイスなどを含む。このように、コンピューティングデバイス１１０２は、ユーザーインタラクションをサポートするために、以下でさらに説明するような様々な方法で構成することができる。
【００９１】
[00107]様々な技術が、ソフトウェア、ハードウェア要素、又はプログラムモジュールの一般的な文脈で本明細書において説明することができる。一般に、そのようなモジュールは、特定のタスクを実行するか又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、要素、コンポーネント、データ構造などを含む。本明細書において使用されるとき、「モジュール」、「機能」、及び「コンポーネント」という用語は、ソフトウェア、ファームウェア、ハードウェア又はそれらの組み合わせを一般的に表す。本明細書に記載される技術の特徴はプラットフォームに依存しない。これは、本技術が、様々なプロセッサーを有する様々な市販のコンピューティングプラットフォーム上で実装できることを意味する。
【００９２】
[00108]本明細書に記載されるモジュール及び技術の実施例は、何らかの形式のコンピューター読み取り可能な媒体上に格納されてもよいし、何らかの形式のコンピューター読み取り可能な媒体にわたって送信されてもよい。コンピューター読み取り可能な媒体は、コンピューティングデバイス１１０２によってアクセスすることができる様々な媒体を含み得る。限定ではなく例として、コンピューター読み取り可能な媒体は、「コンピューター読み取り可能な記憶媒体」及び「コンピューター読み取り可能な信号媒体」を含むことができる。
【００９３】
[00109]「コンピューター読み取り可能な記憶媒体」とは、単なる信号伝送、搬送波又は信号自体とは対照的に、情報の永続的な記憶を可能にする媒体及び／又はデバイスを指すことができる。したがって、コンピューター読み取り可能な記憶媒体は信号そのものを含まない。コンピューター読み取り可能な記憶媒体は、コンピューター読み取り可能な命令、データ構造、プログラムモジュール、論理素子／回路又は他のデータなどの情報を記憶するのに適した方法又は技術で実施される、揮発性及び不揮発性の、取り外し可能な及び取り外し不能な媒体及び／又はストレージデバイスなどのハードウェアを含む。コンピューター読み取り可能な記憶媒体の例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリーもしくは他のメモリー技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、又は他のストレージデバイス、有形の媒体、又は所望の情報を格納するのに適しておりコンピューターによってアクセスすることができる製品を含み得るが、これらに限定されない。
【００９４】
[00110]「コンピューター読み取り可能な信号媒体」とは、ネットワークを介するなどしてコンピューティングデバイス１１０２のハードウェアに命令を送るように構成される信号担持媒体を指すことができる。信号媒体は、通常、搬送波、データ信号又は他の搬送機構などの変調データ信号に、コンピューター読み取り可能な命令、データ構造、プログラムモジュール又は他のデータを具現化することができる。信号媒体はまた、任意の情報配信媒体を含む。「変調データ信号」という用語は、信号内に情報を符号化するように設定又は変更された１つ又は複数の特性を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続などの有線媒体、並びに音響、無線周波数（RF）、赤外線、及び他の無線媒体などの無線媒体を含む。
【００９５】
[00111]前述したように、ハードウェア要素１１１０及びコンピューター読み取り可能な媒体１１０６は、本明細書に記載される技術の少なくともいくつかの態様を実施するためにいくつかの実施形態において使用することができる、ハードウェアの形態で実装される命令、モジュール、プログラム可能なデバイス論理回路及び／又は固定デバイス論理回路を表す。ハードウェア要素は、集積回路又はオンチップシステム、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、結合プログラム可能論理回路（ＣＰＬＤ）、及びシリコン又は他のハードウェアデバイスでの他の実施例のコンポーネントを含んでもよい。この文脈において、ハードウェア要素は、ハードウェア要素によって具現化される命令、モジュール及び／又は論理によって定義されるプログラムタスクを実行する処理デバイスとして、並びに、例えば前述のコンピューター読み取り可能な記憶媒体などの、実行のための命令を記憶するために使用されるハードウェアデバイスとして、動作してもよい。
【００９６】
[00112]上記の組み合わせはまた、本明細書に記載される様々な技術及びモジュールを実施するために使用することができる。したがって、ソフトウェア、ハードウェア、又はプログラムモジュール及び他のプログラムモジュールは、何らかの形式のコンピューター読み取り可能な記憶媒体上で及び／又は１つもしくは複数のハードウェア要素１１１０によって具現化される１つもしくは複数の命令及び／又は論理として実施されてもよい。コンピューティングデバイス１１０２は、ソフトウェア及び／又はハードウェアモジュールに対応する特定の命令及び／又は機能を実装するように構成されてもよい。従って、コンピューティングデバイス１１０２によって実行可能なモジュールをソフトウェアとして実装することは、例えば、コンピューター読み取り可能な記憶媒体及び／又は処理システムのハードウェア要素１１１０の使用により、ハードウェアで少なくとも部分的に達成することができる。命令及び／又は機能は、本明細書に記載の技術、モジュール及び実施例を実現するために、１つ又は複数の製品（例えば、１つ又は複数のコンピューティングデバイス１１０２及び／又は処理システム１１０４）によって実行可能／動作可能であってもよい。
【００９７】
[00113]図１１にさらに示すように、例示的なシステム１１００は、パーソナルコンピューター（ＰＣ）、テレビジョンデバイス、及び／又はモバイルデバイス上でアプリケーションを実行するときにシームレスなユーザーエクスペリエンスのためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用したり、ビデオゲームをプレイしたり、ビデオを見たりしながらあるデバイスから次のデバイスへと移行するときの共通のユーザーエクスペリエンスのために、すべての環境において実質的に同様に実行される。
【００９８】
[00114]例示的なシステム１１００において、複数のデバイスが中央コンピューティングデバイスを介して相互接続される。中央コンピューティングデバイスは、複数のデバイスに対してローカルであってもよいし、複数のデバイスから離れて配置されてもよい。１つの実施形態では、中央コンピューティングデバイスは、ネットワーク、インターネット又は他のデータ通信リンクを介して複数のデバイスに接続された１つ又は複数のサーバーコンピューターのクラウドであってもよい。
【００９９】
[0115]１つの実施形態では、この相互接続アーキテクチャーは、複数のデバイスのユーザーに対して共通のシームレスなエクスペリエンスを提供するために、機能が複数のデバイス間で分配されることを可能にする。複数のデバイスの各々は異なる物理的要件及び能力を有していてもよく、中央コンピューティングデバイスは、デバイスに合わせて調整され且つそれでもなおすべてのデバイスに対して共通であるエクスペリエンスをデバイスに供給することを可能にするためのプラットフォームを使用する。１つの実施形態では、ターゲットデバイスのクラスが作成され、エクスペリエンスは全体的なデバイスのクラスに合わせられる。デバイスのクラスは、物理的特徴、使用の種類又はデバイスの他の共通の特性によって定義することができる。
【０１００】
[00116]様々な実施例では、コンピューティングデバイス１１０２は、コンピューター１１１４、モバイル１１１６及びテレビ１１１８の用途のためなど、様々な異なる構成をとってもよい。これらの構成の各々は、一般に様々な構造及び能力を有することができるデバイスを含み、したがって、コンピューティングデバイス１１０２は、１つ又は複数の異なるデバイスクラスに従って構成することができる。例えば、コンピューティングデバイス１１０２は、パーソナルコンピューター、デスクトップコンピューター、マルチスクリーンコンピューター、ラップトップコンピューター、ネットブックなどを含むデバイスのコンピューター１１１４のクラスとして実施されてもよい。
【０１０１】
[00117]コンピューティングデバイス１１０２はまた、携帯電話、携帯音楽プレーヤー、携帯用ゲーム機、タブレットコンピューター、マルチスクリーンコンピューターなどのモバイルデバイスを含むデバイスのモバイル１１１６クラスとして実施することができる。コンピューティングデバイス１１０２はまた、カジュアルな視聴環境において一般に大画面を有するか又はそれに接続されるデバイスを含む、デバイスのテレビ１１１８クラスとして実施されてもよい。これらのデバイスは、テレビ、セットトップボックス、ゲーム機などを含む。
【０１０２】
[00118]本明細書に記載される技術は、コンピューティングデバイス１１０２のこれらの様々な構成によってサポートすることができ、本明細書に記載される技術の特定の例に限定されない。例えば、操作マネージャーモジュール１０８及び／又は推定モジュール１１０に関連して説明された機能は、以下に説明するようなプラットフォーム１１２２により「クラウド」１１２０を介するなど、分散型システムの使用を通じて全て又は一部を実施することができる。
【０１０３】
[00119]クラウド１１２０は、リソース１１２４のためのプラットフォーム１１２２を含み及び／又は表す。プラットフォーム１１２２は、クラウド１１２０のハードウェア（例えば、サーバー）リソース及びソフトウェアリソースの基本的な機能を抽象化するものである。リソース１１２４は、コンピューティングデバイス１１０２から離れたサーバー上でコンピューター処理が実行される間に利用することができるアプリケーション及び／又はデータを含んでもよい。リソース１１２４はまた、インターネットを介して及び／又はセルラーネットワークやＷｉ−Ｆｉネットワークなどの加入者ネットワークを介して提供されるサービスを含むことができる。
【０１０４】
[00120]プラットフォーム１１２２は、コンピューティングデバイス１１０２を他のコンピューティングデバイスと接続するためのリソース及び機能を抽象化してもよい。プラットフォーム１１２２はまた、プラットフォーム１１２２を介して実施されるリソース１１２４について直面する需要に対して対応するレベルのスケールを提供するために、リソースのスケーリングを抽象化するのに役立ち得る。したがって、相互接続されたデバイスの実施形態において、本明細書に記載された機能の実施がシステム１１００の全体にわたって分散されてもよい。例えば、機能は、コンピューティングデバイス１１０２上で、及びクラウド１１２０の機能を抽象化するプラットフォーム１１２２を介して、部分的に実施されてもよい。
【０１０５】
[00121]本明細書に記載される技術を実行するように実施することができる多くの方法が説明された。方法の態様は、ハードウェア、ファームウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。方法は、１つ又は複数のデバイスによって実行される動作を特定するブロックの組として示され、それぞれのブロックによって動作を実行するために示された順序に必ずしも限定されない。さらに、特定の方法に関連して示された動作は、１つ又は複数の実施例に従って異なる方法の動作と組み合わせ及び／又は交換することができる。方法の態様は、環境１００に関連して上述した様々なエンティティ間の相互作用を介して実現することができる。
まとめ
[00122]操作のための残り時間を推定する技術が説明された。実施形態は構造的特徴及び／又は方法論的動作に特有の言葉で説明されたが、添付の特許請求の範囲に規定される実施形態は説明された特定の特徴又は動作に必ずしも限定されるものではないことを理解すべきである。むしろ、特定の特徴及び動作は、特許請求される実施形態を実現する例示的形態として開示されるものである。
【図１】
0006309546.tif 000002
【図２】
0006309546.tif 000003
【図３】
0006309546.tif 000004
【図４】
0006309546.tif 000005
【図５】
0006309546.tif 000006
【図６】
0006309546.tif 000007
【図７】
0006309546.tif 000008
【図８】
0006309546.tif 000009
【図９】
0006309546.tif 000010
【図１０】
0006309546.tif 000011
【図１１】
0006309546.tif 000012