(57)【特許請求の範囲】
【請求項１】
移動体デバイスと遠隔コンピューティングデバイスとの間でアプリケーションデータを同期化する方法において、
１つ以上のネットワークの各ネットワークに対して、
前記それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集し、前記移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含むことと、
前記ネットワークデータに基づいて、前記それぞれのネットワークに対する機会スコアを計算することと、
前記移動体デバイスにおいて、現在のネットワークへの現在の接続を検出することと、
アプリケーションデータを同期化するために、１つ以上の機会スコアを比較することと、
前記比較に基づいて、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定することと、
前記現在のネットワークが、良い機会ネットワークであるという決定に応答して、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を前記移動体デバイス内の同期化マネージャーと前記１つ以上の移動体アプリケーションとのうちの少なくとも１つに送ることとを含み、
前記１つ以上の機会スコアは、前記現在のネットワークに対する第１の機会スコアと、前記移動体デバイスに以前接続されていた第２のネットワークに対する第２の機会スコアとを含み、
各機会スコアは特定のネットワークに関係付けられている方法。
【請求項２】
前記収集することは、前記１つ以上のネットワークの各ネットワークに対して、
前記移動体デバイスにおいて、前記それぞれのネットワークへの現在の接続を検出することと、
前記それぞれのネットワークにしたがって、特徴セットを識別することとを含み、
前記特徴セットは、前記それぞれのネットワークを特徴付ける１つ以上のメトリックを含み、
前記計算することは、前記識別した特徴セットに対して収集したネットワークデータに基づいて、前記それぞれのネットワークに対する機会スコアを計算することを含む請求項１記載の方法。
【請求項３】
前記計算することは、前記識別した特徴セットにおいて回帰分析を実行することを含む請求項２記載の方法。
【請求項４】
前記ネットワークデータを収集することは、前記移動体デバイスの現在の接続に関する時間データと空間データとをログ記録することを含む請求項１記載の方法。
【請求項５】
前記１つ以上のネットワークの各ネットワークに対して、前記それぞれのネットワークに対する機会スコアを前記移動体デバイスおいて記憶させることをさらに含む請求項１記載の方法。
【請求項６】
条件が満たされていることに応答して、
前記現在のネットワークを通して、前記１つ以上の移動体アプリケーションのアプリケーションデータを同期化すべきと決定することと、
前記現在のネットワークを通して、前記１つ以上の移動体アプリケーションのアプリケーションデータを同期化することとをさらに含む請求項１記載の方法。
【請求項７】
前記通知が受信されたとき、前記条件が満たされる請求項６記載の方法。
【請求項８】
時間期間が経過したとき、前記条件が満たされる請求項６記載の方法。
【請求項９】
前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かの決定を無効にするか否かに関して、前記移動体デバイスのユーザを促すことをさらに含む請求項１記載の方法。
【請求項１０】
前記促すことに応答したユーザ入力を受け取ることと、
前記ユーザ入力に応答して、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという前記通知を廃棄するメッセージを前記同期化マネージャーに送ることとをさらに含み、
前記ユーザ入力は、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという決定を無効にする要望を示す請求項９記載の方法。
【請求項１１】
前記促すことに応答したユーザ入力を受け取ることをさらに含み、
前記ユーザ入力は、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという決定を無効にしない要望を示し、
前記通知を送ることは、前記ユーザ入力を受け取ることに応答して、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を送ることを含む請求項９記載の方法。
【請求項１２】
前記促すことに応答したユーザ入力を受け取ることと、
前記ユーザ入力に応答して、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を送ることをさらに含み、
前記ユーザ入力は、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークではないという決定を無効にする要望を示す請求項９記載の方法。
【請求項１３】
前記促すことに応答したユーザ入力を受け取ることをさらに含み、
前記ユーザ入力は、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークでないという決定を無効にしない要望を示す請求項９記載の方法。
【請求項１４】
前記１つ以上の機会スコアの前記第１の機会スコアと前記第２の機会スコアは共通ネットワークタイプに関係付けられており、前記比較することは、前記第１および第２の機会スコアを比較することを含む請求項１記載の方法。
【請求項１５】
移動体デバイスと遠隔コンピューティングデバイスとの間でアプリケーションデータを同期化するシステムにおいて、
移動体デバイスと現在のネットワークとの間の現在の接続を検出するネットワークメトリックロガーと、
アプリケーションデータを同期化するために、１つ以上の機会スコアを比較し、前記比較に基づいて、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定する機会学習エンジンとを具備し、
１つ以上のネットワークの各ネットワークに対して、前記ネットワークメトリックロガーは、前記それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集し、前記ネットワークデータに基づいて、前記それぞれのネットワークに対する機会スコアを計算し、
前記移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含み、
前記１つ以上の機会スコアは、前記現在のネットワークに対する第１の機会スコアと、前記移動体デバイスに以前接続されていた第２のネットワークに対する第２の機会スコアとを含み、
各機会スコアは特定のネットワークに関係付けられ、
前記現在のネットワークが、良い機会ネットワークであるという決定に応答して、前記機会学習エンジンは、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を前記移動体デバイス内の同期化マネージャーと前記１つ以上の移動体アプリケーションとのうちの少なくとも１つに送るシステム。
【請求項１６】
前記現在のネットワークは、第１のタイプのものであり、前記第２のネットワークは、前記第１のタイプとは異なる第２のタイプのものであり、前記機会学習エンジンは、前記第１のタイプの前記現在のネットワークに関係付けられている前記第１の機会スコアと、前記第２のタイプの前記第２のネットワークに関係付けられている前記第２の機会スコアとを比較する請求項１５記載のシステム。
【請求項１７】
前記現在のネットワークと前記第２のネットワークは共通ネットワークタイプであり、特徴セットに対して異なる特徴セット値を有し、
前記機会学習エンジンは、前記共通ネットワークタイプに関係付けられている機会スコアを比較する請求項１５記載のシステム。
【請求項１８】
前記１つ以上のネットワークの各ネットワークに対して、前記ネットワークメトリックロガーは、前記それぞれのネットワークに対する機会スコアを前記移動体デバイスにおいて記憶させる請求項１５記載のシステム。
【請求項１９】
前記１つ以上のネットワークの各ネットワークに対して、前記ネットワークメトリックロガーは、
前記移動体デバイスにおいて、前記それぞれのネットワークへの現在の接続を検出し、
前記それぞれのネットワークにしたがって、特徴セットを識別し、
前記識別した特徴セットに対して収集したネットワークデータに基づいて、前記それぞれのネットワークに対する機会スコアを計算し、
前記特徴セットは、前記それぞれのネットワークを特徴付ける１つ以上のメトリックを含む請求項１５記載のシステム。
【請求項２０】
前記ネットワークメトリックロガーは、前記移動体デバイスの現在の接続における時間データと空間データとをログ記録する請求項１９記載のシステム。
【請求項２１】
動作を実行するためのコンピュータ実行可能な命令をその上に記憶している非一時的コンピュータ読取可能媒体において、
前記動作は、
１つ以上のネットワークの各ネットワークに対して、
前記それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集し、前記移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含むことと、
前記ネットワークデータに基づいて、前記それぞれのネットワークに対する機会スコアを計算することと、
前記移動体デバイスにおいて、現在のネットワークへの現在の接続を検出することと、
アプリケーションデータを同期化するために、１つ以上の機会スコアを比較することと、
前記比較に基づいて、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定することと、
前記現在のネットワークが、良い機会ネットワークであるという決定に応答して、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を前記移動体デバイス内の同期化マネージャーと前記１つ以上の移動体アプリケーションとのうちの少なくとも１つに送ることとを含み、
前記１つ以上の機会スコアは、前記現在のネットワークに対する第１の機会スコアと、前記移動体デバイスに以前接続されていた第２のネットワークに対する第２の機会スコアとを含み、
各機会スコアは特定のネットワークに関係付けられているコンピュータ読取可能媒体。
【請求項２２】
前記１つ以上の機会スコアの各機会スコアは、前記特定のネットワークの１つ以上の特徴セットに基づいている請求項２１記載のコンピュータ読取可能媒体。
【請求項２３】
前記ネットワークデータを収集することは、前記移動体デバイスの現在の接続における時間データと空間データとをログ記録することを含む請求項２１記載のコンピュータ読取可能媒体。
【請求項２４】
移動体デバイスと遠隔コンピューティングデバイスとの間でアプリケーションデータを同期化する装置において、
１つ以上のネットワークの各ネットワークに対して、前記それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集し、前記移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含む手段と、
前記１つ以上のネットワークの各ネットワークに対して、前記それぞれのネットワークに対する機会スコアを計算する手段と、
前記移動体デバイスにおいて、現在のネットワークへの現在の接続を検出する手段と、
アプリケーションデータを同期化するために、１つ以上の機会スコアを比較する手段と、
前記比較に基づいて、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定する手段と、
前記現在のネットワークが、良い機会ネットワークであるという決定に応答して、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を前記移動体デバイス内の同期化マネージャーと前記１つ以上の移動体アプリケーションとのうちの少なくとも１つに送る手段とを具備し、
前記機会スコアは、前記ネットワークデータに基づいており、
前記１つ以上の機会スコアは、前記現在のネットワークに対する第１の機会スコアと、前記移動体デバイスに以前接続されていた第２のネットワークに対する第２の機会スコアとを含み、
各機会スコアは特定のネットワークに関係付けられている装置。
【請求項２５】
前記１つ以上の機会スコアの各機会スコアは、前記特定のネットワークの１つ以上の特徴セットに基づいている請求項２４記載の装置。
【請求項２６】
前記機会学習エンジンは、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かの決定を無効にするか否かに関して、前記移動体デバイスのユーザを促し、前記促しに応答してユーザ入力を受け取り、
前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという決定を無効にする要望を前記ユーザ入力が示す場合、前記機会学習エンジンは、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を廃棄するメッセージを前記同期化マネージャーに送り、
前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという決定を無効にしない要望を前記ユーザ入力が示す場合、前記機会学習エンジンは、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を前記同期化マネージャーに送る請求項１５記載のシステム。
【請求項２７】
前記特徴セットは、１つ以上のネットワークタイプを抽象化し、前記第１の機会スコアと前記第２の機会スコアは、単一のメトリックに正規化される請求項２記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
［０００１］
本願は、２０１４年７月２５日に出願された米国仮特許出願シリアル番号第６２／０２９，２７８号の利益を主張する、２０１４年８月２１日に出願された米国特許出願シリアル番号第１４／４６５，６９３号の利益を主張し、その両方は、参照によりその全体が組み込まれている。
【開示の分野】
【０００２】
［０００２］
本願は一般的にネットワークを通したデータ送信に関連し、より具体的には、コンピューティングデバイス間でアプリケーションデータを同期化することに関連する。
【背景】
【０００３】
［０００３］
移動体デバイスはユビキタスであり、スマートフォン、タブレット、ポータブルデジタルアシスタント（ＰＤＡ）、ポータブルゲームコンソール、パームトップコンピュータ、および、他のポータブル電子デバイスを含んでいてもよい。これらのデバイスの主機能に加えて、多くのものが周辺機能を含んでいる。例えば、スマートフォンは、電話通話をする主機能と、ゲームで遊び、スチルカメラ、ビデオカメラ、グローバルポジショニングシステム（ＧＰＳ）ナビゲーション、ウェブブラウジング、および、ｅメールを送受信する、周辺機能とを含んでいてもよい。
【０００４】
［０００４］
アプリケーションを移動体デバイス上にインストールして、これらの周辺機能を提供してもよい。例では、アプリケーションは第三者によって提供され、ユーザは、移動体デバイス上にアプリケーションをダウンロードしてもよい。別の例では、ユーザは、移動体デバイス上に既にインストールされているアプリケーションを有する移動体デバイスを受け取る。移動体アプリケーションは、データを遠隔サーバに転送することにより、および／または、遠隔サーバからデータを受信することにより、遠隔サーバと同期化してもよい。例えば、ユーザは、移動体アプリケーションを使用して、写真またはビデオを遠隔サーバにアップロードしてもよい。このような例では、数百または数千メガバイトのデータがバックエンドサービスに転送されるかもしれない。データ転送はバックグラウンドで実行されるかもしれないが、データ転送はデータが重く、時間を消費するかもしれない。さらに、移動体アプリケーションを同期化するためにかかる時間が増加すると、このような機能性をサポートするために要求される処理電力も増加する。
【概要】
【０００５】
［０００５］
本開示は、ネットワークを通したデータ送信に関連する。アプリケーションデータを同期化するための方法、システムおよび技術を提供する。
【０００６】
［０００６］
いくつかの実施形態にしたがうと、移動体デバイスと遠隔コンピューティングデバイスとの間でアプリケーションデータを同期化する方法は、１つ以上のネットワークの各ネットワークに対して、それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集することを含んでいる。移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含んでいる。方法は、移動体デバイスにおいて、現在のネットワークへの現在の接続を検出することも含んでいる。方法は、アプリケーションデータを同期化するための１つ以上の機会スコアを比較することをさらに含んでいる。１つ以上の機会スコアは、現在のネットワークに対する機会スコアを含んでいる。各機会スコアは特定のネットワークに関係付けられている。方法は、比較に基づいて、現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定することも含んでいる。
【０００７】
［０００７］
いくつかの実施形態にしたがうと、移動体デバイスと遠隔コンピューティングデバイスとの間でアプリケーションデータを同期化するシステムは、移動体デバイスと現在のネットワークとの間の現在の接続を検出し、１つ以上のネットワークの各ネットワークに対して、それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集するネットワークメトリックロガーを含んでいる。移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含んでいる。システムは、アプリケーションデータを同期化するための１つ以上の機会スコアを比較し、比較に基づいて、現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定する機会学習エンジンも含んでいる。１つ以上の機会スコアは、現在のネットワークに対する機会スコアを含んでいる。各機会スコアは特定のネットワークに関係付けられている。
【０００８】
［０００８］
いくつかの実施形態にしたがうと、動作を実行するためのコンピュータ実行可能な命令をその上に記憶しているコンピュータ読取可能媒体において、動作は、１つ以上のネットワークの各ネットワークに対して、それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集することと、移動体デバイスにおいて、現在のネットワークへの現在の接続を検出することと、アプリケーションデータを同期化するための１つ以上の機会スコアを比較することと、比較に基づいて、現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定することとを含み、移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含み、１つ以上の機会スコアは、現在のネットワークに対する機会スコアを含み、各機会スコアは特定のネットワークに関係付けられている。
【０００９】
［０００９］
いくつかの実施形態にしたがうと、移動体デバイスと遠隔コンピューティングデバイスとの間でアプリケーションデータを同期化する装置は、１つ以上のネットワークの各ネットワークに対して、それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集する手段を含み、移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含んでいる。装置は、移動体デバイスにおいて、現在のネットワークへの現在の接続を検出する手段も含んでいる。装置は、アプリケーションデータを同期化するための１つ以上の機会スコアを比較する手段をさらに含み、１つ以上の機会スコアは、現在のネットワークに対する機会スコアを含み、各機会スコアは特定のネットワークに関係付けられている。装置は、比較に基づいて、現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定する手段も含んでいる。
【００１０】
［００１０］
いくつかの実施形態にしたがうと、移動体デバイスと遠隔コンピューティングデバイスとの間でアプリケーションデータを同期化する方法は、移動体デバイスの第１のネットワークへの現在の接続を通してアプリケーションデータを同期化するか否かを決定することを含んでいる。移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含んでいる。方法は、第１のネットワークに対する機会スコアと第２のネットワークに対する機会スコアとを含む、複数の機会スコアを比較することも含んでいる。移動体デバイスは、以前は第２のネットワークに接続されていた。各機会スコアは特定のネットワークに関係付けられており、特定のネットワークの１つ以上の特徴セットに基づいている。方法は、複数の機会スコアの比較に基づいて、移動体アプリケーションデータ同期化をスケジューリングするか否かを決定することをさらに含んでいる。
【００１１】
［００１１］
例では、第１のネットワークは第１のタイプのものであり、第２のネットワークは第１のタイプとは異なる第２のタイプのものである。このような例では、第１のタイプの第１のネットワークに関係付けられている第１の機会スコアと、第２のタイプの第２のネットワークに関係付けられている第２の機械スコアとを比較してもよい。したがって、異なるネットワークタイプに関係付けられている機会スコアを比較してもよい。別の例では、第１のネットワークと第２のネットワークは共通のネットワークタイプのものであり、特徴セットに対して異なる特徴セット値を有している。このような例では、共通のネットワークタイプに関係付けられている第１の機会スコアと第２の機会スコアとが比較される。したがって、同じネットワークタイプに関係付けられている機会スコアを比較してもよい。
【００１２】
［００１２］
いくつかの実施形態にしたがうと、移動体デバイスと遠隔コンピューティングデバイスとの間でアプリケーションデータを同期化するシステムは、移動体デバイスの第１のネットワークへの現在の接続を通してアプリケーションデータを同期化するか否かを決定する同期化マネージャーを含んでいる。移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含んでいる。同期化マネージャーは、第１のネットワークに対する機会スコアと第２のネットワークに対する機会スコアとを含む、複数の機会スコアを比較する。移動体デバイスは、以前は第２のネットワークに接続されていた。各機会スコアは特定のネットワークに関係付けられており、特定のネットワークの１つ以上の特徴セットに基づいている。同期化マネージャーは、複数の機会スコアの比較に基づいて、移動体アプリケーションデータ同期化をスケジューリングするか否かを決定する。
【図面の簡単な説明】
【００１３】
［００１３］
明細書の一部を形成する添付の図面は、本発明の実施形態を図示し、説明とともに本実施形態の原理を説明するためにさらなる役割を果たす。図面において、同様の参照番号は、同一または機能的に類似する要素を示しているかもしれない。要素が最初に現れる図面は、対応する参照番号中の一番左の数字によって一般的に示される。
【図１】［００１４］  図１は、いくつかの実施形態にしたがって、移動体デバイスと遠隔コンピューティングデバイスとの間で、アプリケーションデータを同期化するシステムを図示しているブロックダイヤグラムである。
【図２】［００１５］  図２は、異なるＷｉ−Ｆｉ（登録商標）ベースの接続に対するピクチャアップロード完了時間の例示的な棒グラフである。
【図３】［００１６］  図３は、いくつかの実施形態にしたがって、移動体デバイスと遠隔コンピュータピューティングデバイスとの間で、アプリケーションデータを同期化する方法を図示しているフローチャートである。
【図４】［００１７］  図４は、いくつかの実施形態にしたがって、移動体デバイスと遠隔コンピュータピューティングデバイスとの間で、アプリケーションデータを同期化する方法を図示しているフローチャートである。
【図５】［００１８］  図５は、本開示の１つ以上の実施形態を実現するために適切なコンピュータシステムのブロックダイヤグラムである。
【詳細な説明】
【００１４】
Ｉ．全体像
ＩＩ．例示的なシステムアーキテクチャ
Ａ．ネットワークデータ収集
Ｂ．接続性履歴を介した学習
１．機会スコアを計算
２．良い機会ネットワークを識別するために機会スコアを比較
ＩＩＩ．移動体アプリケーションを同期化するか否かを決定
Ａ．移動体アプリケーションを同期化しない
Ｂ．移動体アプリケーションを同期化する
ＩＶ．ユーザ入力
Ｖ．例示的な方法
ＶＩ．例示的なコンピューティングシステム
【００１５】
Ｉ．全体像
［００１９］
本開示の異なる特徴を実現するために、以下の開示は多くの異なる実施形態または例を提供すると理解すべきである。いくつかの実施形態は、これらの特定の詳細のうちのいくつかまたはすべてなしで、実施してもよい。本開示を簡略化するために、コンポーネント、モジュール、および、構成の特定の例を以下で説明する。これらは、もちろん、単なる例示であり、限定することを意図していない。
【００１６】
［００２０］
クラウドに接続されている移動体アプリケーションは、ますます一般化している。移動体デバイスは、移動体デバイス上にインストールされている移動体アプリケーションを遠隔サーバと同期化する同期化マネージャーを含んでいてもよい。現在の同期化スケジュールは、大部分がネットワークに依存せず、移動体デバイスがＷｉ−Ｆｉまたはセルラネットワークに接続されているか否かだけをチェックする。Ｗｉ−Ｆｉネットワークおよびセルラネットワークは、異なるタイプのネットワークである。
【００１７】
［００２１］
例えば、移動体デバイスがＷｉ−Ｆｉネットワークに接続されているとき、同期化マネージャーは１つ以上の移動体アプリケーションを同期化してもよい。商標は、そのぞれぞれの所有者の財産である。同期化マネージャーは、セルラネットワークよりもむしろＷｉ−Ｆｉを通して移動体アプリケーションを同期化するためのオプションもユーザに提供してもよい。Ｗｉ−Ｆｉを使用して移動体アプリケーションを同期化することにより、ユーザはユーザのデータプランをセーブできる。同期化マネージャーは、典型的に、Ｗｉ−Ｆｉ（例えば、Ｗｉ−Ｆｉリンクのタイプ）またはセルラネットワーク接続の特定の特徴を考慮せず、これらの特徴は、アプリケーションデータを同期化するのによい時間であるか否かを決定するのに有用かもしれない。
【００１８】
［００２２］
Ｗｉ−Ｆｉおよびセルラ接続に対する移動体デバイスの接続性状態について経時的に学習することにより、アプリケーションデータ転送は改善する。例えば、移動体デバイスが接続するネットワークを特徴付け、ネットワーク（例えば、Ｗｉ−Ｆｉまたはセルラネットワーク）の特定の特徴を考慮して、ネットワークを通して移動体アプリケーションを同期化するか否か、または、アプリケーションが別のネットワークに接続されるまで同期化を遅延するか否かを決定することが望ましいかもしれない。例えば、移動体アプリケーションを同期化するか否かを決定するときに、Ｗｉ−Ｆｉリンクタイプ、Ｗｉ−Ｆｉバックホール特性、セルラリンクタイプ、および、データプラン等を考慮することが有利かもしれない。
【００１９】
［００２３］
さらに、いくつかのデータ転送（例えば、アプリケーションデータ同期化）をリアルタイムで実行をすることは不必要であるかもしれない。このようなデータ転送は、遅延を許容し（例えば、写真をウェブサイトにアップロードすること）、時間的に後の時点で実行されるかもしれない。良いネットワーク接続性の機会時間に、移動体デバイスと遠隔コンピューティングデバイスとの間で、移動体アプリケーションの同期化をスケジューリングすることが望ましいかもしれない。このような方法で、性能を向上させることができる。さらに、移動体アプリケーション同期化を実行する際に、消費される移動体デバイス電力を最適化することができる。このようなことから、良いネットワーク条件を活用する移動体アプリケーションを手助けすることは、データ転送の電力および性能に対して有益であるかもしれない。
【００２０】
［００２４］
本開示は、移動体デバイスのネットワーク接続性状態について経時的に学習することにより、移動体アプリケーションデータ転送を改善させる技術を提供する。現在のネットワーク接続のみに基づいて、移動体アプリケーションを同期化するか否かを決定することよりもむしろ、経時的に収集された「長期間の」ネットワークデータを使用して、この決定をしてもよい。良いネットワーク接続性の機会時間において同期化をスケジューリングすることは、移動体デバイスの性能を向上させることを手助けし、電力を最適化し、したがって、同期化を実行する際の消費を減らすことができる。
【００２１】
ＩＩ．例示的なシステムアーキテクチャ
［００２５］
図１は、いくつかの実施形態にしたがって、移動体デバイスと１つ以上の遠隔コンピュ−ティングデバイスとの間でアプリケーションデータを同期化するシステムを図示している。図１は、クライアントアプリケーションを実行し、アプリケーションデータを記憶できる移動体デバイス１０２を含んでいる。移動体デバイスは、非静的コンピューティングデバイスを指してもよい。移動体デバイス１０２は、例えば、スマートフォン、タブレット、ラップトップ、または、パーソナルデジタルアシスタントであってもよい。例において、移動体デバイス１０２は、アンドロイド（登録商標）移動体オペレーティングシステムがインストールされているアンドロイドデバイスである。
【００２２】
［００２６］
アプリケーションデータを含んでいてもよい１つ以上の移動体アプリケーションを、移動体デバイス１０２は含んでいてもよい。移動体デバイス１０２のユーザは、サービスプロバイダによって提供される１つ以上の移動体アプリケーションを、彼または彼女の移動体デバイス上にダウンロードしてもよい。移動体アプリケーションは、移動体デバイスを介して、ダウンロードされ、直接アクセスされてもよい、ソフトウェアプログラムである。移動体アプリケーションは、移動体デバイス１０２のディスプレイ上のアイコンによって表されていてもよく、アイコンをタッチする（例えば、アイコンをダブルタッピングする）ことによって、ユーザは移動体アプリケーションを選択し、移動体アプリケーションにアクセスし、移動体アプリケーションと対話してもよい。この例の移動体デバイス１０２は、移動体アプリケーション１０４と移動体アプリケーション１０６とを含んでいる。
【００２３】
［００２７］
移動体アプリケーション１０４および１０６は、移動体デバイス１０２上で実行するクライアントアプリケーションであってもよい。移動体デバイス１０２は、ネットワーク１０８を通してサーバ１１４とサーバ１１６とに結合されている。サーバ１１４と１１６は、移動体デバイス１０２から遠隔にある。移動体デバイスがその関係付けられているサーバへの常時接続性を要求することは不必要であるかもしれない。例えば、移動体デバイス１０２がサーバ１１４に接続することなく、ユーザは移動体アプリケーション１０４と対話してもよく、移動体デバイス１０２がサーバ１１６に接続することなく、ユーザは移動体アプリケーション１０６と対話してもよい。アプリケーションは、サーバに配備され、その後、移動体デバイスへのダウンロードのために利用可能であってもよい。例では、移動体アプリケーション１０４は、移動体デバイス１０２上の小さな、ローカルデータベースを使用し、そのコンテンツは、サーバ１１４に記憶されているデータのサブセットであり、移動体アプリケーション１０６は、移動体デバイス１０２上の小さな、ローカルデータベースを使用し、そのコンテンツは、サーバ１１６に記憶されているデータのサブセットである。
【００２４】
［００２８］
ネットワークを通して、データをサーバに転送することにより、および／または、サーバからデータを受信することにより、移動体アプリケーションは、その関係付けられているサーバと同期化してもよい。移動体デバイス１０２は、移動体アプリケーションの同期化を管理し、仲裁する、同期化マネージャー１２０を含んでいる。同期化マネージャー１２０は、システムレイヤにあってもよく、移動体アプリケーションから同期化要求を収集してもよい。同期化マネージャー１２０は、その後、移動体アプリケーションの同期化をスケジューリングしてもよい。
【００２５】
［００２９］
以下は、サーバ１１４と対話する移動体アプリケーション１０４の説明である。この説明は、移動体アプリケーション１０６およびサーバ１１６にも適用される。移動体アプリケーション１０４は、任意の移動体アプリケーションであってもよい。例では、移動体アプリケーション１０４は、Ｆａｃｅｂｏｏｋ（登録商標）移動体アプリケーションであり、ユーザは、Ｆａｃｅｂｏｏｋ上に写真をアップロードすることを望むかもしれない。別の例では、移動体アプリケーション１０４は、音楽ストリーミングアプリケーションであり、ユーザは、プレイリストを同期化することを望むかもしれない。別の例では、移動体アプリケーション１０４は、カレンダーアプリケーションであり、ユーザは、カレンダーを同期化することを望むかもしれない。別の例では、移動体アプリケーション１０４は、ニュースアプリケーションであり、ユーザは、最新のニュースフィードアップデートを検索することを望むかもしれない。
【００２６】
［００３０］
同期化マネージャー１２０は、移動体デバイス１０２と移動体アプリケーションデータに関係付けられているサーバとの間で移動体アプリケーションデータ同期化をスケジューリングしてもよい。例えば、移動体アプリケーション１０４は、ネットワーク１０８を通して、データをサーバ１１４に転送し、ネットワーク１０８を通して、サーバ１１４からデータを受信してもよい。例では、サーバ１１４におけるサーバデータが変化することに応答して、同期化マネージャー１２０は、移動体アプリケーション１０４とサーバ１１４との間の同期化をスケジューリングし、それゆえ、移動体アプリケーション１０４のアプリケーションデータは、サーバ１１４におけるサーバデータと同期化する。このような例では、移動体アプリケーション１０４は、記憶のために、ネットワーク１０８を通して、移動体アプリケーションデータをサーバ１１４に送ってもよい。
【００２７】
［００３１］
別の例では、移動体アプリケーション１０４に対するアプリケーションデータへの変更に応答して、同期化マネージャー１２０は、移動体アプリケーション１０４とサーバ１１４との間の同期化をスケジューリングし、それゆえ、サーバ１１４におけるサーバデータは、移動体アプリケーション１０４のアプリケーションデータと同期化する。このような例では、サーバ１１４は、記憶のために、ネットワーク１０８を通して、アプリケーションデータを移動体デバイス１０４に送ってもよい。別の例では、移動体デバイス１０２が、ネットワークメッセージを送り出して、送信制御プロトコル（ＴＣＰ）／インターネット−プロトコル（ＩＰ）接続を生かし続けることに応答して、同期化マネージャー１２０は、移動体アプリケーション１０４とサーバ１１４との間の同期化をスケジューリングする。このような例では、同期化は、ＴＣＰ／ＩＰ接続上にピギーバックされてもよい。別の例では、同期化マネージャー１２０は、移動体アプリケーション１０４とサーバ１１４との間の同期化を周期的に（例えば、経過する時間期間に応答して）スケジューリングする。別の例では、同期化マネージャー１２０は、手動で移動体アプリケーションを同期化するユーザ要求に応答して、移動体アプリケーション１０４とサーバ１１４との間の同期化をスケジューリングする。
【００２８】
Ａ．ネットワークデータ収集
［００３２］
移動体デバイス１０２は、移動体デバイス１０２に関係付けられているネットワークデータをログ記録するネットワークメトリックロガー１２２を含んでいる。ネットワークメトリックロガー１２２は、移動体デバイス１０２の記憶装置中にネットワークデータベース１２８を生成させてもよい。ネットワークデータベース１２８は、移動体デバイス１０２に対してローカルであり、移動体デバイス１０２のネットワーク接続とその状態との履歴を記憶してもよい。
【００２９】
［００３３］
ネットワークメトリックロガー１２２は、移動体デバイス１０２の現在のネットワーク接続性についてのデータを収集し、ネットワークデータベース１２８中にネットワークデータを記憶させてもよい。例では、移動体デバイス１０２が接続する１つ以上のネットワークに対して、ネットワークメトリックロガー１２２はネットワークへの現在の接続を検出し、移動体デバイスのネットワークへの現在の接続性状態についてのネットワークデータを収集する。ネットワークメトリックロガー１２２は、アプリケーションプログラミングインターフェース（ＡＰＩ）を呼び出して、ネットワークデータを収集してもよい。例では、ネットワークメトリックロガー１２２は、周期的（例えば、１秒、５秒、１０秒、または、それ以上の秒ごとに）にＡＰＩを呼び出して、ネットワークデータを収集する。
【００３０】
［００３４］
収集したネットワークデータは、１つ以上の特徴を含んでいてもよい。特徴は、ネットワークを特徴付けるために使用されるネットワークメトリックであってもよい。特徴セットは、ネットワークを分類するために使用してもよい異なる特徴の集合である。特徴セットは、ネットワークを特徴付ける１つ以上のメトリックを含んでいてもよい。特徴セットは、ネットワークが「良い機会」ネットワークまたは「悪い機会」ネットワークであるか否かを示す機会スコアを計算する際に使用してもよい。良い機会ネットワークは、ある例では、ネットワークが速いことから、ネットワークを通して、移動体アプリケーションを同期化するのに良い機会を提供できるネットワークである。悪い機会ネットワークは、別の例では、ネットワークが遅い、または、別のネットワークがより速いデータ転送を提供すると知られており、しきい値時間期間内（例えば、３時間内）に移動体デバイスに接続しそうであることから、ネットワークを通して、移動体アプリケーションを同期化するのに悪い機会を提供するかもしれないネットワークである。機会スコアは、ネットワークに関係付けられていてもよく、スコアは、機会スコアが割り当てられるネットワークを通して、アプリケーションデータを同期化するか否かを示す。機会スコアは、特定のネットワークの１つ以上の特徴セットに基づいていてもよい。
【００３１】
［００３５］
異なるネットワークが互いに比較され、それらの同期化機会が１つのメトリック（例えば、機会スコア）に正規化されるように、特徴セットは、ネットワークタイプ（例えば、Ｗｉ−Ｆｉネットワークまたはセルラネットワーク）を抽象化する。このようなことから、移動体デバイス１０２が、異なるネットワークメトリックを有する異なるネットワークに接続するとしても、移動体アプリケーションデータを同期化することに対して、機会スコアを使用して、１つのネットワークが別のネットワークよりも良いか否かを決定してもよい。
【００３２】
［００３６］
簡潔さおよび簡略化のために、２つの「レベル」（例えば、良い機会ネットワークおよび悪い機会ネットワーク）の機会スコアを説明する。これは、限定することを意図しているのではなく、他の実施形態は、２より多いレベルの機会スコアを有していてもよい。例えば、別の実施形態では、ネットワークには、３つのレベルの機会スコアのうちの１つが割り当てられるかもしれない。このような例では、第１のレベルのネットワークは、「良い機会」ネットワークであり、第２のレベルのネットワークは、「並の機会」ネットワークであり、第３のレベルのネットワークは、「悪い機会」ネットワークであるかもしれない。機会スコアを以下でさらに議論する。
【００３３】
［００３７］
例では、ネットワーク１０８はＷｉ−Ｆｉネットワークであり、ネットワークメトリックロガー１２２は、Ｗｉ−Ｆｉネットワークへの現在のネットワーク接続を検出する。Ｗｉ−Ｆｉネットワークの例示的な特徴は、Ｗｉ−Ｆｉネットワークの信号強度、Ｗｉ−Ｆｉネットワークのサービスセット識別子（ＳＳＩＤ）、移動体デバイスがＷｉ−Ｆｉネットワークに接続できるようにするアクセスポイントの、媒体アクセス制御（ＭＡＣ）アドレスおよびリンクスピードである。例では、Ｗｉ−Ｆｉネットワークに対するネットワークデータは、Ｗｉ−ＦｉネットワークのＳＳＩＤとアクセスポイントのＭＡＣアドレスとに基づいて、順序付けてもよい。複数のアクセスポイントが単一のＳＳＩＤ内に存在していてもよい。移動体デバイス１０２がＷｉ−Ｆｉネットワークに接続されている間、ネットワークメトリックロガー１２２は、ネットワークの、信号強度およびＳＳＩＤと、移動体デバイス１０２がＷｉ−Ｆｉネットワークに接続できるようにするアクセスポイントデバイスの、ＭＡＣアドレスおよびリンクスピードとを、ネットワークデータベース１２８中にログ記録してもよい。例では、所定のＭＡＣアドレスおよびＳＳＩＤを有するアクセスポイントを分類する特徴セットは、所定のアクセスポイントのＭＡＣアドレスと、信号強度と、ＳＳＩＤと、Ｗｉ−Ｆｉネットワークの周波数帯域と、移動体デバイス１０２がＷｉ−Ｆｉネットワークに接続できるようにするアクセスポイントの、リンクスピードおよび信号レベルとを含んでいる。これは単なる例であり、他の特徴セットがＷｉ−Ｆｉネットワークを分類してもよい。
【００３４】
［００３８］
別の例では、ネットワーク１０８はセルラネットワークであり、ネットワークメトリックロガー１２２はセルラネットワークへの現在のネットワーク接続を検出する。セルラネットワークの例示的な特徴は、セルラネットワークの信号強度、ネットワークタイプ（例えば、ロングタームエボリューション（ＬＴＥ（登録商標））、第３世代（３Ｇ）、第４世代（４Ｇ）、エボリューションデータオプティマイズド（ＥＤＶＯ））、ネットワーク名（例えば、Ｖｅｒｉｚｏｎ（登録商標）、Ｓｐｒｉｎｔ（登録商標）、および、ＡＴ＆Ｔ（登録商標））である。例では、セルラネットワークに対するネットワークデータは、ネットワークのタイプと信号強度とに基づいて、順序付けてもよい。移動体デバイス１０２がセルラネットワークに接続されている間、ネットワークメトリックロガー１２２は、セルラネットワークの、信号強度、ネットワークタイプ、ネットワーク名をネットワークデータベース１２８中にログ記録してもよい。例では、所定の地理的ロケーションとセルラネットワークとを分類する特徴セットは、接続の時間における移動体デバイスの地理的ロケーションと、セルラ信号強度と、ネットワーク名と、ネットワークタイプとを含んでいる。これは単なる例であり、他の特徴セットがセルラネットワークを分類してもよい。
【００３５】
［００３９］
ネットワークメトリックロガー１２２は、（例えば、Ｗｉ−Ｆｉまたはセルラネットワークへの）移動体デバイスの現在のネットワーク接続における時間的データおよび空間的データもログ記録してもよい。移動体デバイス１０２は、異なる地理的エリア中で異なる信号強度を有していてもよい。例では、ネットワークメトリックロガー１２２は、信号強度を正規化する。別の例では、ネットワークメトリックロガー１２２は、移動体デバイス１０２の地理的ロケーションとログの時間とをログ記録し、時間および空間に渡って、アクセスポイント接続とセルラネットワーク接続とを区別する。例では、ネットワークメトリックロガー１２２は、移動体デバイス１０２のアクセスポイントへの近接を考慮する。例えば、移動体デバイス１０２がアクセスポイントに近い場合、ネットワークメトリックロガー１２２は、信号強度メトリックによって捕捉される強い信号強度を認識するかもしれない。信号強度および信号範囲は、異なるアクセスポイントに渡って変化するかもしれず、ネットワークメトリックロガー１２２は、経時的に信号強度の状態を捕捉してもよい。このような例では、ユーザは、アクセスポイントについてローミングしてもよく、ネットワークメトリックロガー１２２は、ネットワークデータを収集することを継続して、その特定のアクセスポイントに接続できる範囲信号強度メトリックを理解してもよい。
【００３６】
［００４０］
議論したように、機会は、ネットワーク内で、および、ネットワークに渡って相当変化するかもしれない。例えば、アクセスポイントは、異なる周波数帯域を有していてもよく、異なる機会に変換してもよい。例では、２．４ＧＨｚ（ギガヘルツ）周波数帯域は、５．８ＧＨｚ周波数帯域と比較して、比較的帯域幅がない。図２は、異なるＷｉ−Ｆｉベースの接続に対するピクチャアップロード完了時間の例示的な棒グラフ２００である。棒グラフ２００は、写真をバックエンドサーバにアップロードするのにかかる時間量を示している。棒グラフ２００のｘ軸は、ピクチャをアップロードするのにかかる時間量（秒）を表し、棒グラフ２００のｙ軸は、異なるタイプのＷｉ−Ｆｉネットワークを表している。
【００３７】
［００４１］
棒は異なる機会を示しており、異なるＷｉ−Ｆｉ標準規格（例えば、ＡＣ、Ｎ−１、Ｎ−２）を表してもよく、アクセスポイントは、異なる周波数帯域に渡るように構成されている。棒グラフ２００の左のクラスタは、移動体デバイス１０２がアクセスポイントに近いとき、移動体デバイス１０２に関係付けられている機会を図示しており、棒グラフ２００の右のクラスタは、移動体デバイス１０２がアクセスポイントから遠いとき、移動体デバイス１０２に関係付けられている機会を図示している。データ転送が低減される場合、その後、データ転送を実行する際に消費される総エネルギーは、ほぼ同様に低減される。例えば、棒グラフ２００では、移動体デバイス１０２がアクセスポイントから遠いときと比較して、移動体デバイス１０２がアクセスポイントに近いとき、ＡＣ（８０ＭＨｚ）Ｗｉ−Ｆｉインターフェースはピクチャアップロードをおおよそ５０パーセントより速く完了する。このような例では、移動体デバイス１０２がアクセスポイントから遠いときと比較して、移動体デバイス１０２がアクセスポイント１０２に近いとき、移動体デバイス１０２は、移動体アプリケーションを同期化するためにおおよそ５０パーセント少ないエネルギーを消費するかもしれない。
【００３８】
［００４２］
さらに、ネットワークメトリックロガー１２２は、（例えば、パケットペアまたは他の何らかのルーチンを使用して）わずかな測定を処理して、現在のネットワーク状態の帯域幅を推定してもよく、または、リンク上に存在するデータ転送をスヌープして、ネットワーク帯域幅を推定してもよい。ネットワークメトリックロガー１２２は、機会学習エンジン１２４が分析するために、収集したネットワークデータをネットワークデータベース１２８中に記憶させる。
【００３９】
Ｂ．接続性履歴を介した学習
［００４３］
いくつかの実施形態では、機会学習エンジン１２４は、移動体デバイス１０２が接続されていた、または、移動体デバイスが現在接続されている、１つ以上のネットワークを特徴付けて、ログ記録されたネットワークから移動体デバイス１０２の接続性挙動を学習する。
【００４０】
１．機会スコアの計算
［００４４］
移動体デバイス１０２が接続する１つ以上のネットワークに対して、機会学習エンジン１２４は、ネットワークにしたがって特徴セットを識別し、ネットワークに対する機会スコアを計算してもよい。例では、機会学習エンジン１２４は、ネットワークを分類する識別した特徴セットに対して収集したネットワークデータに基づいて、ネットワークに対する機会スコアを計算する。機会学習エンジン１２４は、ネットワーク接続が外された後の、移動体デバイス１０２が、ネットワークに接続されている間の、ネットワークに対する機会スコアを計算してもよい。機会スコアは、時間期間（例えば、１週間または１か月）を通して収集したネットワークデータに基づいて計算してもよく、時間期間を通しての移動体デバイスのネットワーク接続性を反映するために、継続的に更新してもよい。機会学習エンジン１２４は、移動体デバイス１０２のネットワーク接続とその状態との履歴を記憶するネットワークデータベース１２８中に機会スコアを記憶させる。
【００４１】
［００４５］
例では、所定のＷｉ−Ｆｉネットワークを分類する特徴セットは、アクセスポイントのＭＡＣアドレス、信号強度、ＳＳＩＤ、Ｗｉ−Ｆｉネットワークの周波数帯域、ならびに、移動体デバイス１０２がＷｉ−Ｆｉネットワークに接続できるようにするアクセスポイントのリンクスピードおよび信号レベルである。このような例では、機会学習エンジン１２４は、この特徴セットを分析して、所定のＷｉ−Ｆｉネットワークに対する機会スコアを計算してもよい。別の例では、セルラネットワークを分類する特徴セットは、セルラネットワークへの接続の時間における移動体デバイスの地理的ロケーション、セルラ信号強度、ネットワーク名、および、ネットワークタイプを含んでいる。このような例では、機会学習エンジン１２４は、この特徴セットを分析して、所定のセルラネットワークに対する機会スコアを計算してもよい。
【００４２】
［００４６］
いくつかの実施形態では、機会学習エンジン１２４は、回帰分析を使用して、機会スコアを計算する。例では、機会スコアの計算は、移動体デバイスがネットワークに接続されているときの時間で収集されたネットワーク特徴セットの関数として、および、移動体デバイスがネットワークに接続されているときのロケーションの関数として、ネットワーク中の１つ以上のアプリケーションによって観測されるスループットおよび待ち時間に対するモデルを導出することを含んでいてもよい。別の例では、機会スコアは、クラスタリングおよびしきい値ベースの技術を通して導出してもよく、例えば、所定の信号強度で特定の周波数帯域（例えば、５ＧＨｚ周波数帯域）を有するＷｉ−Ｆｉアクセスポイントは、それらが提供する異なるスループットにより、より低い周波数帯域（例えば、２．４ＧＨｚ周波数帯域）アクセスポイントよりも、より良い機会スコアを有するだろう。
【００４３】
２．良い機会ネットワークを識別するための機会スコアの比較
［００４７］
移動体デバイス１０２がネットワークに接続されている間に、機会学習エンジン１２４は、１つ以上の機会スコアを比較して、現在接続されているネットワークが良い機会ネットワークであるか否かを決定してもよい。機会学習エンジン１２４は、そのインテリジェンスを導出して、収集したネットワークデータから、良いまたは悪い機会を決定する。
【００４４】
［００４８］
ネットワークメトリックロガー１２２は、移動体デバイス１０２が現在ネットワークに接続されていることを検出してもよい。例では、機会学習エンジン１２４は、現在接続されているネットワークのＳＳＩＤを識別して、ＳＳＩＤを発見するためにネットワークデータベース１２８をサーチする。機会学習エンジン１２４は、ＳＳＩＤによって識別された現在接続されているネットワークの機会スコアを、移動体デバイス１０２が以前に接続されていた１つ以上の他のネットワークに対する機会スコアと比較する。このような例では、機会学習エンジン１２４は、現在接続されているネットワークが良い機会ネットワークであるか否かを決定するために、移動体デバイス１０２が現在接続されているネットワークに対する機会スコアを、他のネットワークに対する機会スコアと比較してもよい。
【００４５】
［００４９］
例では、比較した１つ以上の機会スコアは、現在のネットワーク接続に対する機会スコアと、移動体デバイス１０２が以前に接続されていた１つ以上の他のネットワークに対する機会スコアとを含んでいてもよい。本質的に、現在のネットワーク接続を通して移動体アプリケーションデータを同期化するための良いまたは悪い機会が存在するか否かを決定するためのメカニズムとして、異なるネットワークに対する機会スコアを使用することにより、機会学習エンジン１２４は、移動体デバイス１０２が接続されていた異なるネットワークを分類する特徴セットの異なる値を比較する。移動体デバイス１２０が接続されていたネットワークに対して収集された特徴セットの値から、機会学習エンジン１２４は、移動体デバイス１０２が移動体アプリケーションデータを同期化するために使用する、または、使用しないかもしれない、良いおよび悪い機会ネットワークを学習する。
【００４６】
［００５０］
機会学習エンジン１２４は、１つ以上の機会スコアの比較に基づいて、現在のネットワーク接続が移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定してもよい。現在のネットワーク接続が移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという決定に応答して、機会学習エンジン１２４は、現在のネットワーク接続が移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送ってもよい。機会学習エンジン１２４は、通知を同期化マネージャー１２０に送るので、同期化マネージャー１２０はデータ転送のスケジューリングまたは実行（例えば、アプリケーションデータを同期化）をするために、良いネットワーク条件を活用できる。
【００４７】
［００５１］
対照的に、現在のネットワーク接続が移動体アプリケーションデータを同期化するのに良い機会ネットワークではないと決定することに応答して、機会学習エンジン１２４は、現在のネットワーク接続は移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送らない決定をしてもよい。別の例では、機会学習エンジン１２４は、現在のネットワーク接続が移動体アプリケーションデータを同期化するのに良い機会ネットワークではないという通知を同期化マネージャー１２０に送ってもよい。このようなことから、同期化マネージャー１２０は、現在のネットワーク接続を通して、移動体アプリケーションデータを同期化しない決定をしてもよく、現在のネットワーク接続を通しての何らかの任意の移動体アプリケーション同期化を遅延させてもよい。
【００４８】
［００５２］
良い機会は、例えば、良いまたは利用可能なアクセスポイント／セルラネットワーク状態の瞬間的な分類に基づいていてもよい。例えば、機会学習エンジン１２４は、しきい値を満たすアクセスポイントに対する、最大受信信号強度表示（ＲＳＳＩ）とリンクスピードとに依拠してもよい。このような例では、機会学習エンジン１２４が移動体デバイス１０２の接続履歴に依拠することは不必要かもしれず、機会学習エンジン１２４は、現在のネットワーク接続は移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送ってもよい。
【００４９】
［００５３］
例では、機会学習エンジン１２４は、現在のネットワーク接続に対する機会スコアを含む１つ以上の機会スコアとしきい値機会スコアとを比較する。現在のネットワーク接続に対する機会スコアがしきい値機会スコアを満たす場合、機会学習エンジン１２４は、現在のネットワーク接続は移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送ってもよい。現在のネットワーク接続に対する機会スコアがしきい値機会スコアを満たさない場合、機会学習エンジン１２４は、現在のネットワーク接続を通してのデータの転送を遅延させることを望み、現在のネットワーク接続は移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送らないかもしれない。
【００５０】
［００５４］
良い機会は、ネットワークインターフェースが実際に使用されたときにログ記録して、取得した性能を特徴付けることに、または、経時的に観測された時間期間（例えば、１日）中の以前のものと比較して比較的より良い機会を識別することに、基づいていてもよい。例では、良い機会は、ネットワーク状態の以前に記憶された履歴からの、「既知である」良い機会のアクセスポイント接続とセルラの接続の知識に基づいていてもよい。例えば、機会学習エンジン１２４は、良いアクセスポイントの以前の知識を活用してもよい。例では、移動体デバイス１０２のユーザは、家のＷｉ−Ｆｉネットワークと会社のＷｉ−Ｆｉネットワークとの間でシフトしてもよい。会社のＷｉ−Ｆｉネットワークは、家のＷｉ−Ｆｉネットワークより速いかもしれない。データ転送は、会社のＷｉ−Ｆｉネットワークを通しての方がより速いかもしれず、したがって、しかも、アプリケーションデータを同期化するために、家のＷｉ−Ｆｉネットワークを使用することと比較して、移動体デバイス１０２からより少ないエネルギーしか消費しないかもしれない。
【００５１】
［００５５］
このような例では、会社のＷｉ−Ｆｉネットワークに対する第１の機会スコアは、会社のＷｉ−Ｆｉネットワークは良い機会ネットワークであることを示してもよく、家のＷｉ−Ｆｉネットワークに対する第２の機会スコアは、家のＷｉ−Ｆｉネットワークは悪い機会ネットワークであることを示してもよい。別の例では、会社のＷｉ−Ｆｉネットワークに対する第１の機会スコアと、家のＷｉ−Ｆｉネットワークに対する第２の機会スコアは、会社と家のＷｉ−Ｆｉネットワークの両方が良い機会ネットワークであるが、会社のＷｉ−Ｆｉネットワークが家のＷｉ−Ｆｉネットワークと比較してより良い機会ネットワークであることを示してもよい。例では、移動体デバイス１０２を会社のＷｉ−Ｆｉネットワークに接続するアクセスポイントは、家のＷｉ−Ｆｉネットワークに対する機会スコアと比較して、より良い機会ネットワーク（例えば、より速いネットワーク）であることを、会社のＷｉ−Ｆｉネットワークに対する機会スコアが示してもよい。
【００５２】
［００５６］
ネットワークメトリックロガー１２２は、移動体デバイス１０２の会社のＷｉ−Ｆｉネットワークへの接続に基づいて、第１のネットワークデータを記憶させてもよく、移動体デバイス１０２の家のＷｉ−Ｆｉネットワークへの接続に基づいて、第２のネットワークデータを記憶させてもよい。機会学習エンジン１２４は、会社のＷｉ−Ｆｉネットワークおよび家のＷｉ−Ｆｉネットワークのそれぞれに対する機会スコアを計算してもよい。このような例では、機会学習エンジン１２４は、アクセスポイントに渡るネットワーク履歴知識を活用する。
【００５３】
［００５７］
機会学習エンジン１２４は、１つ以上の機会スコアを比較して、より良い機会スコアを有するネットワークが将来移動体デバイス１０２に接続されるか否かを推測してもよい。例では、機会学習エンジン１２４は、複数の機会スコアを比較する。機会学習エンジン１２４は、どのくらいの頻度で移動体デバイス１０２が特定のネットワークに接続するかを考慮してもよい。例では、機会学習エンジン１２４は、アプリケーションデータを同期化するためのより良いネットワークが近い将来見られるであろう高い確率が存在する否かを決定してもよい。機会学習エンジン１２４は、移動体デバイス１０２がしきい値時間量内に特定のネットワークと接続するであろう高い確率が存在することを決定してもよく、したがって、現在のネットワーク接続が移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送らないことを決定してもよく、および／または、現在のネットワーク接続が移動体アプリケーションデータを同期化するのに良い機会ネットワークではないという通知を同期化マネージャー１２０に送ってもよい。機会学習エンジン１２４は、移動体デバイス１０２が特定のネットワークに接続されるまで、現在のネットワーク接続が移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送ることを遅延させてもよい。
【００５４】
［００５８］
例では、平日（例えば、月曜日、火曜日、水曜日、木曜日、および、金曜日）の就業時間の間は、移動体デバイス１０２は典型的に会社のＷｉ−Ｆｉネットワークに接続し、週末（例えば、土曜日および日曜日）は家のＷｉ−Ｆｉネットワークに接続することを、機会学習エンジン１２４はログ記録されたネットワークデータから学習してもよい。例では、移動体デバイス１０２が火曜日の朝、午前７時にユーザの家にある場合、移動体デバイス１０２は家のＷｉ−Ｆｉネットワークに接続されてもよい。機会学習エンジン１２４は、家のＷｉ−Ｆｉネットワークに対する機会スコアを、他のネットワークに対する他の機会スコアと比較し、データ転送のために作業Ｗｉ−Ｆｉネットワークを使用するより良い機会が存在することと、移動体デバイス１０２が２時間後の火曜日午前９時に会社のＷｉ−Ｆｉネットワークに接続されるであろう高い確率が存在することとを認識してもよい。このようなシナリオにおいて、機会学習エンジン１２４は、現在のネットワーク接続を通してのデータの転送を遅延させることを望み、現在のネットワーク接続は移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャーに送らないかもしれない。
【００５５】
［００５９］
したがって、機会学習エンジン１２４は、現在のネットワーク接続は、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送らないことを決定してもよく、および／または、現在のネットワーク接続は、移動体アプリケーションデータを同期化するのに良い機会ネットワークではないという通知を同期化マネージャー１２０に送ってもよい。時間的により遅い点において、機会学習エンジン１２４は、移動体デバイス１０２が会社のＷｉ−Ｆｉネットワークに現在接続されていると認識し、比較した機会スコアに基づいて、現在接続されているネットワークは良い機会ネットワークであることを決定してもよい。したがって、機会学習エンジン１２４は、現在のネットワーク接続は移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送ってもよい。
【００５６】
［００６０］
ネットワークに対する機会スコアは、移動体デバイス１０２はしきい値時間量内（例えば、４時間内）に特定のネットワークに接続されるだろうという可能性を計算に入れてもよく、ここで、特定のネットワークは良い機会ネットワークである。
【００５７】
［００６１］
機会学習エンジン１２４は、データアップロードとデータダウンロードとの間で区別してもよい。データアップロードは、データが移動体デバイス１０２から遠隔コンピューティングデバイスに送られることを指す。データダウンロードは、データが遠隔コンピューティングデバイスから移動体デバイス１０２に送られることを指す。アップロード帯域幅は、キャップされ、または、ダウンロード帯域幅よりも低いかもしれないことから、機会学習エンジン１２４は、同期化マネージャー１２０に対して、これらの２つのデータ転送を区別してもよい。このように、機会は、データアップロードとデータダウンロードとに対して異なっていてもよい。現在のネットワーク接続が移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送るか否かを決定するために、機会学習エンジン１２４は、移動体デバイス１０２が移動体アプリケーションを同期化するためにデータをアップロードまたはダウンロードするであろうか否かを計算に入れてもよい。
【００５８】
［００６２］
機会学習エンジン１２４はまた、移動体デバイス１０２の状態も考慮してもよい。例では、移動体デバイス１０２が充電している場合、機会学習エンジン１２４は、現在のネットワーク接続は移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャー１２０に送ってもよい。たとえ、ネットワークが移動体アプリケーションデータをアップロードするのに悪い機会ネットワークであるとして識別されたとしても、機会学習エンジン１２４は、通知を送ってもよい。例えば、移動体デバイス１０２がネットワークに接続されている場合、ネットワークは、移動体アプリケーションデータをダウンロードするのに良い機会ネットワークであるかもしれないが、移動体アプリケーションデータをアップロードするのに悪い機会ネットワークであるかもしれない。機会学習エンジン１２４は、移動体アプリケーションを同期化するために、ゼロ機会コストを決定してもよい。
【００５９】
［００６３］
別の例では、移動体デバイス１０２のバッテリー寿命がしきい値バッテリー寿命を下回っている場合、機会学習エンジン１２４は、（たとえ、現在のネットワーク接続が良い機会ネットワークであるとして識別されたとしても）現在のネットワーク接続を通してのデータの転送を遅延させることを望み、バッテリー電力をセーブするかもしれない。このような例では、機会学習エンジン１２４は、現在のネットワーク接続を通して移動体アプリケーションを同期化しない通知を同期化マネージャー１２０に送ってもよく、および／または、現在のネットワーク接続は移動体アプリケーションデータを同期化するのに良い機会ネットワークではないという通知を同期化マネージャー１２０に送ってもよい。このような方法で、機会学習エンジン１２４は、移動体デバイス１０２がより多くの電力を消費することを回避してもよい。
【００６０】
［００６４］
機会学習エンジン１２４は、同期化マネージャー１２０に通知を送るとして説明してきたが、機会学習エンジン１２４はまた、移動体デバイス１０２上にインストールされている１つ以上の移動体アプリケーションに通知を送ってもよいと理解すべきである。機会学習エンジン１２４は、例えば、同期化マネージャー１２０のみに、移動体デバイス１０２上にインストールされている１つ以上の移動体アプリケーションのみに、または、同期化マネージャー１２０と移動体デバイス１０２上にインストールされている１つ以上の移動体アプリケーションの両方に通知を送ってもよい。
【００６１】
ＩＩＩ．移動体アプリケーションを同期化するか否かを決定
［００６５］
同期化マネージャー１２０は、機会学習エンジン１２４から通知を受信して、移動体アプリケーションデータを同期化するか否かを決定してもよい。通知は、現在のネットワーク接続が、移動体アプリケーションデータを同期化するのに良い機会ネットワークである、または、悪い機会であることを示してもよい。同期化マネージャー１２０は、オペレーティングシステムにおいて、高レベルデータサービスまたはアプリケーションを提供してもよい。
【００６２】
［００６６］
機会学習エンジン１２４は、さまざまな方法で、通知を同期化マネージャー１２０に送ってもよい。例では、機会学習エンジン１２４は、ブロードキャストメッセージを介して、良い機会ネットワークを同期化マネージャー１２０に通知してもよい。同期化マネージャー１２０は、ネットワークヒントブロードキャストを受信するように登録してもよい。例では、移動体デバイス１０２は、アンドロイドオペレーティングシステムを実行し、アンドロイドの「sendBroadcast（インテントネットワーク機会）」呼び出しを使用して、アンドロイドサービスを通知する。このような例では、アンドロイドサービスは、「registerReceiver（ブロードキャスト受信機、インテントフィルタ）」を使用して、ブロードキャストインテントを受信するように登録してもよい。ブロードキャストメッセージを受信すると、同期化マネージャー１２０のようなサービスは、ペンディングした同期化および／または他のデータ転送アクティビティを開始することを選んで、良いネットワーク条件を活用してもよい。
【００６３】
［００６７］
条件が満たされることに応答して、同期化マネージャー１２０は、移動体アプリケーションデータを同期化するか否かを決定してもよい。例では、通知が受信されたとき、条件が満たされる。同期化マネージャー１２０は、例えば、機会学習エンジン１２４から通知を受信することに応答して、移動体アプリケーションデータを同期化するか否かの決定をしてもよい。別の例では、時間期間が経過したとき、条件が満たされる。同期化マネージャー１２０は、移動体アプリケーションデータの同期化をするか否かの決定を周期的にしてもよい。
【００６４】
Ａ．移動体アプリケーションを同期化しない
［００６８］
現在のネットワーク接続は移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を受信した後、同期化マネージャー１２０は移動体アプリケーションデータを同期化しないことを決定してもよい。移動体アプリケーションデータを同期化しないという決定に応答して、同期化マネージャー１２０は、さらに何もしないかもしれない。
【００６５】
［００６９］
例えば、移動体アプリケーションが既にスケジューリングされた同期化を有する場合、同期化マネージャー１２０は、移動体アプリケーションのアプリケーションデータを同期化しないと決定してもよい。別の例では、移動体アプリケーションが既にスケジューリングされた同期化を有する場合、同期化マネージャー１２０は、移動体アプリケーションデータを同期化することを決定して、すぐに実行される同期化を再スケジューリングしてもよい。
【００６６】
Ｂ．移動体アプリケーションを同期化
［００７０］
移動体アプリケーションデータを同期化すると決定することに応答して、同期化マネージャー１２０は、移動体アプリケーションに関係付けられているサーバにメッセージを送り、または、移動体デバイス１０２上にインストールされている移動体アプリケーションにメッセージを送り、移動体アプリケーションデータ同期化を開始してもよい。移動体アプリケーション１０４または同期化マネージャー１２０は、メッセージをサーバ１１４に送り、移動体アプリケーションデータ同期化を開始してもよい。
【００６７】
［００７１］
同期化マネージャー１２０は、移動体デバイス１０２上にインストールされている移動体アプリケーションの同期化をスケジューリングしてもよい。いくつかの実施形態では、アプリケーションからのデータ送信は、遅延され、バッチ処理される。同期化マネージャー１２０は、アプリケーションデータ同期化要求を収集してもよい。例では、同期化マネージャー１２０は、移動体アプリケーションデータをひとまとめに同期化する。同期化マネージャー１２０は、ブロードキャスト通知を、同期化される１つ以上の移動体アプリケーションに、および／または、同期化される１つ以上の移動体アプリケーションに関係付けられているサーバに送り、移動体アプリケーションデータ同期化を開始してもよい。例では、通知は、移動体デバイス１０２上にインストールされているすべての移動体アプリケーションにはブロードキャストされない。このような例では、通知は、いくつかの優先の挙動に基づいて、特定の移動体アプリケーションに送られてもよい。
【００６８】
［００７２］
いくつかの実施形態では、同期化マネージャー１２０は、優先度に基づいて、移動体アプリケーションの同期化をスケジューリングする。図１を参照すると、同期化マネージャー１２０は、移動体アプリケーション１０４の優先度と移動体アプリケーション１０６の優先度とを使用して、どちらの移動体アプリケーションを他の移動体アプリケーションの前に、同期化するかを決定してもよい。例えば、移動体アプリケーション１０４が、移動体アプリケーション１０６よりも同期化することに対してより高い優先度を有する場合、同期化マネージャー１２０は、移動体アプリケーション１０６のサーバ１１６との同期化の前に、移動体アプリケーション１０４のサーバ１１４との同期化をスケジューリングしてもよい。
【００６９】
［００７３］
さまざまな方法で、移動体アプリケーションに優先度を割り当ててもよい。例では、移動体デバイス１０２のユーザが、移動体アプリケーションに優先度を割り当ててもよい。このような例では、移動体デバイス１０２上にインストールされている１つ以上の他の移動体アプリケーションと比較して、どの移動体アプリケーションが同期化することに対してより高い優先度を有しているかを示すようにユーザに要求するプロンプトを、同期化マネージャー１２０がユーザに提供してもよい。別の例では、同期化マネージャー１２０は、移動体デバイス１０２のユーザが移動体アプリケーション１０４および１０６とかかわる方法を監視し、監視に基づいて、移動体アプリケーションに優先度を割り当てる。例えば、どの移動体アプリケーションが最も頻繁に使用されるか、移動体アプリケーション同期化の間、移動体アプリケーションの関係付けられているサーバに対して、平均してどのくらいのデータが転送されているか、または、移動体アプリケーションが最も最近使用された移動体アプリケーションであるか否かに基づいて、同期化マネージャー１２０は、移動体アプリケーションに優先度を割り当ててもよい。
【００７０】
［００７４］
いくつかの実施形態では、同期化マネージャー１２０は、時間期間の経過に基づいて、移動体デバイスの同期化をスケジューリングする。同期化マネージャー１２０は、移動体アプリケーションを、周期的に同期化するアプリケーションとして識別してもよい。このような例では、たとえ、現在のネットワーク接続が、移動体アプリケーション１０４の移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を、同期化マネージャー１２０が受信しなかったとしても、それでもなお同期化マネージャー１２０は、移動体アプリケーション１０４の同期化をスケジューリングしてもよい。
【００７１】
［００７５］
いくつかの実施形態では、同期化マネージャー１２０は、同期化がアップロードまたはダウンロードのためのものであるか否かを認識し、それにしたがって機会通知を発行してもよい。同期化マネージャー１２０は、その後、同期化通知に基づいて、データアップロードまたはデータダウンロードをスケジューリングしてもよい。例では、これらの通知は、機会学習エンジン１２４とブロードキャスト通知に加入しているすべてのサービスプロセスとの間の共有メモリチャネル上で送られるブロードキャストメッセージである。例えば、機会学習エンジンが（以前に知った機会に基づいて）ネットワークに対する「最良の」機会スコアを知り、この知識を同期化マネージャーに伝えたいとき、通知をトリガしてもよい。
【００７２】
ＩＶ．ユーザ入力
［００７６］
いくつかの実施形態において、ユーザオプションを機会学習エンジン１２４に追加して、機会学習エンジン１２４によってされた決定を無効にしてもよい。例では、現在のネットワークは移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を送ることを機会学習エンジン１２４が決定する場合、機会学習エンジン１２４は、この決定を無効にするオプションをユーザに提供してしてもよい。ユーザが決定を無効にする場合、機会学習エンジン１２４は、通知を送らない決定をしてもよい。
【００７３】
［００７７］
別の例では、現在のネットワークは移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を送らないことを機会学習エンジン１２４が決定する場合、機会学習エンジン１２４は、この決定を無効にするオプションをユーザに提供してしてもよい。ユーザが決定を無効にする場合、機会学習エンジン１２４は、通知を送ってもよい。別の例では、現在のネットワークは移動体アプリケーションデータを同期化するのに良い機会ネットワークではないという通知を送ることを機会学習エンジン１２４が決定する場合、機会学習エンジン１２４は、この決定を無効にするオプションをユーザに提供してしてもよい。ユーザが決定を無効にする場合、機会学習エンジン１２４は、現在のネットワークは移動体アプリケーションデータを同期化するのに良い機会ネットワークである通知を送ってもよく、または、通知を送るべきではないと決定してもよい。
【００７４】
［００７８］
例では、機会学習エンジン１２４は、移動体デバイス１０４上のディスプレイ上にプロンプトを提供してもよい。現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かの決定を無効にすることを移動体デバイス１０２のユーザが望むか否かをプロンプトは要求してもよい。決定は、例えば、現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークである、または、良い機会ネットワークではないというものであってもよい。
【００７５】
［００７９］
例では、機会学習エンジン１２４は、プロンプトに応答したユーザ入力を受け取ってもよく、ユーザ入力は、現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという決定を無効にすることをユーザが望んでいることを示す。このような例では、ユーザ入力に応答して、機会学習エンジン１２４は、現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を送らないことを決定してもよい。別の例では、機会学習エンジン１２４は、プロンプトに応答したユーザ入力を受け取ってもよく、ユーザ入力は、現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという決定を無効にすることをユーザが望まないことを示す。このような例では、ユーザ入力に応答して、機会学習エンジン１２４は、現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を送ってもよい。
【００７６】
［００８０］
別の例では、機会学習エンジン１２４は、プロンプトに応答したユーザ入力を受け取ってもよく、ユーザ入力は、現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークではないという決定を無効にすることをユーザが望んでいることを示す。このような例では、ユーザ入力に応答して、機会学習エンジン１２４は、現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を送ってもよい。別の例では、機会学習エンジン１２４は、プロンプトに応答したユーザ入力を受け取ってもよく、ユーザ入力は、現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークではないという決定を無効にすることをユーザが望まないことを示す。このような例では、ユーザ入力に応答して、機会学習エンジン１２４は、現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を送らないことを決定してもよい。
【００７７】
［００８１］
機会学習エンジン１２４は、ユーザが無効にすることを監視して、ユーザが望むことについて学習してもよい。例では、ユーザが無効にすることは、機会学習エンジン１２４への入力であってもよく、それゆえ、例えば、機会学習エンジン１２４は、土曜日と日曜日には会社のＷｉ−Ｆｉネットワークを待たないことを知っている。
【００７８】
［００８２］
いくつかの実施形態において、ユーザオプションを同期化マネージャー１２０に追加して、同期化マネージャー１２０によってされた決定を無効にしてもよい。例では、同期化マネージャー１２０は、移動体アプリケーションデータ同期化をスケジューリングすべきであると決定する場合、同期化マネージャー１２０が実際に移動体アプリケーションデータ同期化をスケジューリングする前に、ユーザには、移動体アプリケーションデータ同期化を無効にするオプションが提供されてもよい。ユーザが決定を無効にする場合、同期化マネージャー１２０は、移動体アプリケーション同期化をスケジューリングしないように決定してもよい。
【００７９】
［００８３］
別の例では、同期化マネージャー１２０が、移動体アプリケーション同期化をスケジューリングすべきではないと決定する場合、同期化マネージャー１２０が移動体アプリケーション同期化をスケジューリングしないと決定する前に、ユーザには、同期化マネージャー１２０のこの決定を無効にするオプションが提供されてもよい。例えば、移動体デバイス１０２は、バッテリーが少ないかもしれず、同期化マネージャー１２０は、バッテリー電力を節約したいかもしれず、したがって、移動体アプリケーションデータ同期化を行うべきではないと決定するかもしれない。ユーザは、移動体アプリケーションデータ同期化をスケジューリングしないとの同期化マネージャー１２０の決定を無効にし、同期化マネージャー１２０に移動体アプリケーションデータ同期化をスケジューリングするように命令してもよい。
【００８０】
［００８４］
上記で議論したように、および、ここでさらに強調するように、図１〜２は単なる例であり、特許請求の範囲を不当に制限すべきではない。例えば、移動体デバイス１０２は移動体デバイスとして説明したが、他の実施形態では、移動体デバイス１０２は静的デバイスであってもよいことも理解すべきである。
【００８１】
Ｖ．例示的な方法
［００８５］
図３は、いくつかの実施形態にしたがって、移動体デバイスと遠隔コンピュータピューティングデバイスとの間でアプリケーションデータを同期化する方法３００を図示したフローチャートである。方法３００は、限定することを意図してはおらず、他のアプリケーションで使用してもよい。
【００８２】
［００８６］
方法３００は、ブロック３０２〜３０８を含んでいる。ブロック３０２では、１つ以上のネットワークの各ネットワークに対して、それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータが収集され、移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含んでいる。例では、１つ以上のネットワークの各ネットワークに対して、ネットワークメトリックロガー１２２は、それぞれのネットワークへの移動体デバイス１０２の現在の接続性状態に関するネットワークデータを収集し、移動体デバイス１０２は、移動体アプリケーション１０４および１０６を含み、各移動体アプリケーションはアプリケーションデータを含んでいる。
【００８３】
［００８７］
ブロック３０４では、移動体デバイスにおいて、現在のネットワークへの現在の接続が検出される。例では、ネットワークメトリックロガー１２２は、移動体デバイス１０２における、ネットワーク１０８への現在の接続を検出する。
【００８４】
［００８８］
ブロック３０６では、アプリケーションデータを同期化するための１つ以上の機会スコアを比較し、１つ以上の機会スコアは現在のネットワークに対する機会スコアを含み、各機会スコアは特定のネットワークに関係付けられている。例では、機械学習エンジン１２４は、アプリケーションデータを同期化するための１つ以上の機会スコアを比較し、１つ以上の機会スコアは、現在のネットワークに対する機会スコアを含み、各機会スコアは、特定のネットワークに関係付けられている。
【００８５】
［００８９］
例では、現在のネットワークと（以前に移動体デバイスに接続されていた）第２のネットワークは、共通のネットワークタイプのものであり、特徴セットに対して異なる特徴セット値を有している。機械学習エンジン１２４は、共通のネットワークタイプ（例えば、セルラネットワーク、Ｗｉ−Ｆｉネットワーク等）に関係付けられている機会スコアを比較してもよい。例では、１つ以上の機会スコアは、共通のネットワークタイプに関係付けられている、第１の機会スコアと第２の機会スコアとを含んでおり、機会学習エンジン１２４は、第１および第２の機会スコアを互いに比較する。
【００８６】
［００９０］
別の例では、現在のネットワークは第１のタイプのものであり、（以前に移動体デバイスに接続されていた）第２のネットワークは、第１のタイプとは異なる第２のタイプのものである。機会学習エンジン１２４は、第１のタイプの現在のネットワークと第２のタイプの第２のネットワークとに関係付けられている機会スコアを比較してもよい。例では、１つ以上の機会スコアは、第１の機会スコアと第２の機会スコアとを含んでおり、第１の機会スコアは第１のタイプの現在のネットワーク（例えば、セルラネットワーク）に関係付けられ、機会スコアは、第２のタイプの第２のネットワーク（例えば、Ｗｉ−Ｆｉネットワーク）に関係付けられている。このような例では、機械学習エンジン１２４は、異なるネットワークに関係付けられている機会スコアを比較する。
【００８７】
［００９１］
ブロック３０８では、１つ以上の機会スコアの比較に基づいて、現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定する。例では、機会学習エンジン１２４は、１つ以上の機会スコアの比較に基づいて、ネットワーク１０８が、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定する。
【００８８】
［００９２］
上記で議論したブロック３０２〜３０８の前、間、または後に、追加のプロセスを実行してもよいことも理解すべきである。所望のように、ここで説明した方法３００のブロックのうちの１つ以上を省略し、組み合わせ、または、異なるシーケンスで実行してもよい。
【００８９】
［００９３］
図４は、いくつかの実施形態にしたがって、移動体デバイスと遠隔コンピュータピューティングデバイスとの間でアプリケーションデータを同期化する方法４００を図示したフローチャートである。方法４００は、限定することを意図しておらず、他のアプリケーションで使用してもよい。
【００９０】
［００９４］
方法４００は、ブロック４０２〜４０６を含んでいる。ブロック４０２では、第１のネットワークへの移動体デバイスの現在の接続を通して、アプリケーションデータを同期化するか否かを決定し、移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含んでいる。例では、同期化マネージャー１２０は、移動体デバイス１０２の第１のネットワークへの現在の接続を通して、アプリケーションデータを同期化するか否かを決定し、移動体デバイス１０２は移動体アプリケーション１０４および１０６を含み、各移動体アプリケーションはアプリケーションデータを含んでいる。
【００９１】
［００９５］
ブロック４０４では、第１のネットワークに対する機会スコアと第２のネットワークに対する機会スコアとを含む複数の機会スコアを比較し、移動体デバイスは以前は第２のネットワークに接続され、各機会スコアは、特定のネットワークに関係付けられ、特定のネットワークの１つ以上の特徴セットに基づいている。例では、同期化マネージャー１２０は、第１のネットワークに対する機会スコアと第２のネットワークに対する機会スコアとを含む複数の機会スコアを比較し、移動体デバイス１０４は、以前は第２のネットワークに接続され、各機会スコアは、特定のネットワークに関係付けられ、特定のネットワークの１つ以上の特徴セットに基づいている。
【００９２】
［００９６］
例では、第１のネットワークは、第１のタイプのものであり、第２のネットワークは、第１のタイプとは異なる第２のタイプのものである。このような例では、第１のタイプの第１のネットワークに関係付けられている第１の機会スコアと、第２のタイプの第２のネットワークに関係付けられている第２の機会スコアとが比較されてもよい。したがって、異なるネットワークタイプに関係付けられている機会スコアが比較されてもよい。別の例では、第１のネットワークと第２のネットワークは共通のネットワークタイプのものであり、特徴セットに対して異なる特徴セット値を有している。このような例では、共通のネットワークタイプに関係付けられている、第１の機会スコアと第２の機会スコアとが比較される。したがって、同じネットワークタイプに関係付けられている機会スコアが比較されてもよい。
【００９３】
［００９７］
ブロック４０６では、複数の機会スコアの比較に基づいて、移動体アプリケーションデータ同期化をスケジューリングするか否かを決定する。例では、同期化マネージャー１２０は、複数の機会スコアの比較に基づいて、移動体アプリケーションデータ同期化をスケジューリングするか否かを決定する。
【００９４】
［００９８］
上記で議論したブロック４０２〜４０６の前、間、または後に、追加のプロセスを実行してもよいことも理解すべきである。所望のように、ここで説明した方法４００のブロックのうちの１つ以上を、省略、組み合わせ、または、異なるシーケンスで実行してもよいことも理解すべきである。
【００９５】
ＶＩ．例示的なコンピューティングシステム
［００９９］
図５は、ここで開示した実施形態の何れかを実現するために適切な、例示的なコンピュータシステム５００のブロックダイヤグラムである。さまざまなインプリメンテーションにおいて、コンピュータシステム５００は、移動体デバイス１０２、サーバ１１４、または、サーバ１１６であってもよい。図５において、コンピュータシステム５００は、入力／出力（Ｉ／Ｏ）コンポーネント５０４に結合されている制御ユニット５０１を含んでいる。
【００９６】
［００１００］
コンピュータシステム５００は、１つ以上のプロセッサを含んでいてもよい。コンピュータシステム５００は、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の何らかの磁気媒体、ＣＤ−ＲＯＭ、他の何らかの光学媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、他の何らかのメモリチップまたはカートリッジ、および／または、プロセッサまたはコンピュータが読み取り用に適合されている他の何らかの媒体を含むグループからそれぞれ選択された、１つ以上の記憶デバイスをさらに含んでいてもよい。１つ以上の記憶デバイスは、１つ以上のコンピューティングデバイスに、および／または、（示していない）コンピュータネットワークを使用する、クライアントまたはサーバに結合されているコンピュータプログラム（例えば、クライアント）に利用可能であるかもしれない記憶された情報を含んでいてもよい。コンピュータネットワークは、ＬＡＮ、ＷＡＮ、イントラネット、インターネット、クラウドを含む任意のタイプのネットワークであってもよく、ならびに／あるいは、コンピュータピューティングデバイスおよび／またはシステム中のコンピュータプログラムを相互接続できるそれらのネットワークの任意の組み合わせであってもよい。
【００９７】
［００１０１］
コンピュータシステム５００は、コンピュータシステム５００のさまざまなコンポーネント間の、情報データ、信号、情報を通信するためのバス５０２または他の通信メカニズムを含んでいる。コンポーネントは、キーパッド／キーボードからのキーを選択すること、あるいは、１つ以上のボタンまたはリンクを選択すること等のような、ユーザアクションを処理し、対応する信号をバス５０２に送るためのＩ／Ｏコンポーネント５０４を含んでいる。例では、ユーザアクションは、機会学習エンジン１２４および／または同期化マネージャー１２０によってされた決定を無効にするユーザ入力であってもよい。
【００９８】
［００１０２］
Ｉ／Ｏコンポーネント５０４は、ディスプレイ５１１のような出力コンポーネントと、（キーボード、キーパッド、マウス等のような）カーソル制御５１３のような入力制御も含んでいてもよい。例では、ディスプレイ５１１はプロンプトをディスプレイ５１１上に表示し、現在のネットワークが移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かの決定を無効にすることを、移動体デバイス１０２のユーザが望むか否かをプロンプトは要求する。
【００９９】
［００１０３］
オーディオＩ／Ｏコンポーネント５０５も含み、ユーザが、オーディオ信号を情報信号に変換することによって、情報を入力するために音声を使用できるようにしてもよい。オーディオＩ／Ｏコンポーネント５０５は、ユーザがオーディオを聞けるようにしてもよい。トランシーバまたはネットワークインターフェース５０６は、通信リンク５１８を介して、コンピュータシステムと他のデバイスとの間でネットワークへの信号を送信および受信する。いくつかの実施形態では、送信はワイヤレスであるが、他の送信媒体および方法にも適していてもよい。
【０１００】
［００１０４］
マイクロ制御装置、デジタル信号プロセッサ（ＤＳＰ）、または、他の処理コンポーネントであってもよいプロセッサ５１２は、コンピュータシステム５００のディスプレイ５１１上の表示、または、通信リンク５１８を介した他のデバイスへの送信のように、これらのさまざまな信号を処理する。ネットワークメトリックロガー１２２、機会学習エンジン１２４、および、同期化マネージャー１２０は、プロセッサ５１２中で実行してもよい。プロセッサ５１２はまた、クッキーまたはＩＰアドレスのような情報の他のデバイスへの送信を制御してもよい。
【０１０１】
［００１０５］
コンピュータシステム５００のコンポーネントは、システムメモリコンポーネント５１４（例えば、ＲＡＭ）、静的記憶コンポーネント５１６（例えば、ＲＯＭ）、および／または、コンピュータ読取可能媒体５１７も含んでいる。コンピュータシステム５００は、システムメモリコンポーネント５１４中に含まれる命令の１つ以上のシーケンスを実行することにより、プロセッサ５１２および他のコンポーネントによる特定の動作を実行する。例では、プロセッサ５１２は、図３にしたがった命令３０２〜３０８を処理し、および／または、図４にしたがった命令４０２〜４０６を処理する。
【０１０２】
［００１０６］
実行のために、プロセッサ５１２に命令を提供することに関係する任意の媒体を指してもよい、コンピュータ読取可能媒体５１７中に、論理がエンコードされていてもよい。このような媒体は、不揮発性の媒体、揮発性の媒体、および、送信媒体を含む、多くの形態をとってもよいが、これらに限定されない。さまざまなインプリメンテーションにおいて、不揮発性の媒体は、光学、または、磁気ディスク、または、ソリッドステートドライブを含み、揮発性の媒体は、システムメモリコンポーネント５１４のようなダイナミックメモリを含み、送信媒体は、バス５０２を含む線を含む、同軸ケーブル、銅線、光ファイバを含む。いくつかの実施形態では、論理は、コンピュータ読取可能媒体５１７中にエンコードされている。コンピュータ読取可能媒体５１７は、プロセッサ５１２によってまたはプロセッサ５１２に関連して使用される命令を含み、記憶し、通信し、伝播し、または、伝送できる、任意の装置であってもよい。コンピュータ読取可能媒体５１７は、電子、磁気、光学、電磁、赤外線、あるいは、半導体デバイスまたは伝播媒体、あるいは、他の何らかのメモリチップまたはカートリッジ、あるいは、コンピュータが読み取るように適合されている他の何らかの媒体であってもよい。さらに、送信媒体は、無線波、光学、赤外線データ通信の間で発生させるような、音響または光波の形態をとってもよい。
【０１０３】
［００１０７］
本開示のさまざまな実施形態において、本開示の実施のための命令シーケンスの実行は、コンピュータシステム５００によって実行されてもよい。本開示のさまざまな他の実施形態において、通信リンク５１８によってネットワーク（例えば、ＬＡＮ、ＷＬＡＮ、ＰＴＳＮ、ならびに／あるいは、電気通信、移動体、および、セルラ電話機ネットワークを含む、さまざまな他のワイヤードまたはワイヤレスネットワーク）に結合されている複数のコンピュータシステム５００が、互いに共同で本開示を実施するために命令シーケンスを実行してもよい。
【０１０４】
［００１０８］
適用可能な場合、本開示によって提供されるさまざまな実施形態は、ハードウェア、ソフトウェア、または、ハードウェアとソフトウェアの組み合わせを使用して実現してもよい。また、適用可能な場合、ここで述べたさまざまなハードウェアコンポーネントおよび／またはソフトウェアコンポーネントを、本開示の精神から逸脱することなく、ソフトウェア、ハードウェア、および／または、両方を含む複合コンポーネントに組み合わせてもよい。適用可能な場合、ここで述べたさまざまなハードウェアコンポーネントおよび／またはソフトウェアコンポーネントを、本開示の精神から逸脱することなく、ソフトウェア、ハードウェア、または、両方を含むサブコンポーネントに分離してもよい。さらに、適用可能な場合、ソフトウェアコンポーネントをハードウェアコンポーネントとして実現してもよく、逆もまた同じであると企図されていてもよい。
【０１０５】
［００１０９］
本開示にしたがうアプリケーションソフトウェアは、１つ以上のコンピュータ読取可能媒体上に記憶されていてもよい。ここで識別されるアプリケーションソフトウェアは、ネットワーク化されているおよび／またはそうでない、１つ以上の汎用または専用コンピュータならびに／あるいはコンピュータシステムを使用して実現してもよいことも企図される。適用可能な場合、ここで説明したさまざまなステップの順序は、ここで説明された特徴を提供するために、変更され、複合ステップに組み合わされ、および／またはサブステップに分けられてもよい。
【０１０６】
［００１１０］
上述の開示は、本開示を詳細な形態に、または、開示した使用の特定の分野に限定することを意図してはいない。このように、本開示へのさまざまな代替実施形態および／または修正が、ここで明示的に説明または意図されたか否かにかかわらず、本開示を考慮すると可能であることが企図されている。本開示の範囲から逸脱することなく、形態および詳細において変更が行われてもよい。したがって、本開示は特許請求の範囲のみによって限定される。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］  移動体デバイスと遠隔コンピューティングデバイスとの間でアプリケーションデータを同期化する方法において、
１つ以上のネットワークの各ネットワークに対して、前記それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集することと、
前記移動体デバイスにおいて、現在のネットワークへの現在の接続を検出することと、
アプリケーションデータを同期化するための１つ以上の機会スコアを比較することと、
前記比較に基づいて、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定することとを含み、
前記移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含み、
前記１つ以上の機会スコアは、前記現在のネットワークに対する機会スコアを含み、
各機会スコアは特定のネットワークに関係付けられている方法。
［２］  前記収集することは、前記１つ以上のネットワークの各ネットワークに対して、
前記移動体デバイスにおいて、前記それぞれのネットワークへの現在の接続を検出することと、
前記それぞれのネットワークにしたがって、特徴セットを識別することと、
前記識別した特徴セットに対して収集したネットワークデータに基づいて、前記それぞれのネットワークに対する機会スコアを計算することとを含み、
前記特徴セットは、前記それぞれのネットワークを特徴付ける１つ以上のメトリックを含む［１］記載の方法。
［３］  前記計算することは、前記識別した特徴セットにおいて回帰分析を実行することを含む［２］記載の方法。
［４］  前記ネットワークデータを収集することは、前記移動体デバイスの現在の接続における時間データと空間データとをログ記録することを含む［１］記載の方法。
［５］  前記１つ以上のネットワークの各ネットワークに対して、前記それぞれのネットワークに対する機会スコアを前記デバイスおいて記憶させることをさらに含む［１］記載の方法。
［６］  前記現在のネットワークは良い機会ネットワークであるという決定に応答して、前記現在のネットワークは移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャーに送ることをさらに含む［１］記載の方法。
［７］  条件が満たされていることに応答して、
前記現在のネットワークを通して、前記１つ以上の移動体アプリケーションのアプリケーションデータを同期化すべきと決定することと、
前記現在のネットワークを通して、前記１つ以上の移動体アプリケーションのアプリケーションデータを同期化することとをさらに含む［６］記載の方法。
［８］  通知が受信されたとき、前記条件が満たされる［７］記載の方法。
［９］  時間期間が経過したとき、前記条件が満たされる［７］記載の方法。
［１０］  前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かの決定を無効にするか否かに関して、前記移動体デバイスのユーザを促進することをさらに含む［１］記載の方法。
［１１］  前記促進に応答したユーザ入力を受け取ることと、
前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという決定を無視することとをさらに含み、
前記ユーザ入力は、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという決定を無効にする要望を示す［１０］記載の方法。
［１２］  前記促進に応答したユーザ入力を受け取ることと、
前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を送ることをさらに含み、
前記ユーザ入力は、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという決定を無効にしない要望を示す［１０］記載の方法。
［１３］  前記促進に応答したユーザ入力を受け取ることと、
前記ユーザ入力に応答して、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を送ることをさらに含み、
前記ユーザ入力は、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークではないという決定を無効にする要望を示す［１０］記載の方法。
［１４］  前記促進に応答したユーザ入力を受け取ることをさらに含み、
前記ユーザ入力は、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークでないという決定を無効にしない要望を示す［１０］記載の方法。
［１５］  前記１つ以上の機会スコアの第１の機会スコアと第２の機会スコアは共通ネットワークタイプに関係付けられており、前記比較することは、前記第１および第２の機会スコアを比較することを含む［１］記載の方法。
［１６］  移動体デバイスと遠隔コンピューティングデバイスとの間でアプリケーションデータを同期化するシステムにおいて、
移動体デバイスと現在のネットワークとの間の現在の接続を検出し、１つ以上のネットワークの各ネットワークに対して、前記それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集するネットワークメトリックロガーと、
アプリケーションデータを同期化するための１つ以上の機会スコアを比較し、前記比較に基づいて、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定する機会学習エンジンとを具備し、
前記移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含み、
前記１つ以上の機会スコアは、前記現在のネットワークに対する機会スコアを含み、
各機会スコアは特定のネットワークに関係付けられているシステム。
［１７］  前記１つ以上の機会スコアは、以前に前記移動体デバイスに接続されていた第２のネットワークに対する機会スコアを含む［１６］記載のシステム。
［１８］  前記現在のネットワークは、第１のタイプのものであり、前記第２のネットワークは、前記第１のタイプとは異なる第２のタイプのものであり、前記機会学習エンジンは、前記第１のタイプの前記現在のネットワークに関係付けられている第１の機会スコアと、前記第２のタイプの前記第２のネットワークに関係付けられている第２の機会スコアとを比較する［１７］記載のシステム。
［１９］  前記現在のネットワークと前記第２のネットワークは共通のネットワークタイプであり、特徴セットに対して異なる特徴セット値を有し、
前記機会学習エンジンは、前記共通ネットワークタイプに関係付けられている機会スコアを比較する［１７］記載のシステム。
［２０］  前記１つ以上のネットワークの各ネットワークに対して、前記ネットワークメトリックロガーは、前記それぞれのネットワークに対する機会スコアを前記移動体デバイスにおいて記憶させる［１６］記載のシステム。
［２１］  前記１つ以上のネットワークの各ネットワークに対して、前記ネットワークメトリックロガーは、
前記移動体デバイスにおいて、前記それぞれのネットワークへの現在の接続を検出し、
前記それぞれのネットワークにしたがって、特徴セットを識別し、
前記識別した特徴セットに対して収集したネットワークデータに基づいて、前記それぞれのネットワークに対する機会スコアを計算し、
前記特徴セットは、前記それぞれのネットワークを特徴付ける１つ以上のメトリックを含む［１６］記載のシステム。
［２２］  前記ネットワークメトリックロガーは、前記移動体デバイスの現在の接続における時間データと空間データとをログ記録する［２１］記載のシステム。
［２３］  前記現在のネットワークは良い機会ネットワークであるという決定に応答して、前記機会学習エンジンは、前記現在のネットワークは移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャーに送る［１６］記載のシステム。
［２４］  動作を実行するためのコンピュータ実行可能な命令をその上に記憶しているコンピュータ読取可能媒体において、
前記動作は、
１つ以上のネットワークの各ネットワークに対して、前記それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集することと、
前記移動体デバイスにおいて、現在のネットワークへの現在の接続を検出することと、
アプリケーションデータを同期化するための１つ以上の機会スコアを比較することと、
前記比較に基づいて、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定することとを含み、
前記移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含み、
前記１つ以上の機会スコアは、前記現在のネットワークに対する機会スコアを含み、
各機会スコアは特定のネットワークに関係付けられているコンピュータ読取可能媒体。
［２５］  前記１つ以上の機会スコアの各機会スコアは、前記特定のネットワークの１つ以上の特徴セットに基づいている［２４］記載のコンピュータ読取可能媒体。
［２６］  前記現在のネットワークは良い機会ネットワークであるという決定に応答して、前記現在のネットワークは移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャーに送ることを前記動作はさらに含む［２４］記載のコンピュータ読取可能媒体。
［２７］  前記ネットワークデータを収集することは、前記移動体デバイスの現在の接続における時間データと空間データとをログ記録することを含む［２４］記載のコンピュータ読取可能媒体。
［２８］  少なくとも１つの中央処理ユニット（ＣＰＵ）のＣＰＵ周波数をスケーリングする装置において、
１つ以上のネットワークの各ネットワークに対して、前記それぞれのネットワークへの移動体デバイスの現在の接続性状態に関するネットワークデータを収集する手段と、
前記移動体デバイスにおいて、現在のネットワークへの現在の接続を検出する手段と、
アプリケーションデータを同期化するための１つ以上の機会スコアを比較する手段と、
前記比較に基づいて、前記現在のネットワークが、移動体アプリケーションデータを同期化するのに良い機会ネットワークであるか否かを決定する手段とを具備し、
前記移動体デバイスは、アプリケーションデータを含む１つ以上の移動体アプリケーションを含み、
前記１つ以上の機会スコアは、前記現在のネットワークに対する機会スコアを含み、
各機会スコアは特定のネットワークに関係付けられている装置。
［２９］  前記１つ以上の機会スコアの各機会スコアは、前記特定のネットワークの１つ以上の特徴セットに基づいている［２８］記載の装置。
［３０］  前記現在のネットワークは良い機会ネットワークであるという決定に応答して、前記現在のネットワークは移動体アプリケーションデータを同期化するのに良い機会ネットワークであるという通知を同期化マネージャーに送る手段を前記装置はさらに具備する［２８］記載の装置。
【図１】
0006293969.tif 000002
【図２】
0006293969.tif 000003
【図３】
0006293969.tif 000004
【図４】
0006293969.tif 000005
【図５】
0006293969.tif 000006