(57)【要約】  様々な実施形態は、相互接続されたデバイスのグループのデバイス間でデータが配信される方法を最適化する、システムと、デバイスと、方法とを提供する。一実施形態では、複数のデバイスに向けられたデータセットはセグメント化されてよく、データセットの異なる部分が、各デバイスに提供されてよい。意図されたデバイスは次いで、データセットの部分を共有して、各デバイス上で完全なデータセットを再現することができる。別の実施形態では、完全なデータセットを各々記憶する複数のデバイスは、完全なデータセットを単一のデバイスにアップロードする必要があり得る。複数のデバイスは、互いに、完全なデータセットのセグメントに関するアップロード・レスポンシビリティを割り当てることができ、複数のデバイスは各々、割り当てられたセグメントを単一のデバイスにアップロードすることができる。単一のデバイスは次いで、それらのセグメントを組み合わせて、完全なデータセットを再現することができる。
2015513128.tif 000002
【特許請求の範囲】
【請求項１】
デバイス間のデータ配信を最適化するための方法であって、
第１のコンピューティングデバイスから前記第１のコンピューティングデバイスに接続された複数のコンピューティングデバイスへの送信のためのデータセットを、前記第１のコンピューティングデバイスにおいて識別することと、
前記データセットをデータセグメントへと分割することと、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各コンピューティングデバイスに割り当てることと、
前記第１のコンピューティングデバイスから前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの割り当てられた部分を送信することと、
第２のコンピューティングデバイスを第３のコンピューティングデバイスに接続することであって、前記第２のコンピューティングデバイスおよび前記第３のコンピューティングデバイスが各々、前記複数のコンピューティングデバイスの１つである、接続することと、
前記第２のコンピューティングデバイスと前記第３のコンピューティングデバイスとの間で、前記データセグメントのそれぞれの割り当てられた部分を交換することとを備える、方法。
【請求項２】
識別情報（ＩＤ）を各データセグメントに割り当てることと、
データセグメントマップを生成することと、
前記データセグメントマップを前記複数のコンピューティングデバイスの各コンピューティングデバイスに送信することとをさらに備え、
前記データセグメントマップが、各データセグメントのＩＤとデータセグメント割当て情報とを含む、請求項１に記載の方法。
【請求項３】
データセット特性を決定することをさらに備え、
前記データセットをデータセグメントへと分割することが、前記決定されたデータセット特性に少なくとも一部基づいて前記データセットをデータセグメントへと分割することを含む、請求項１に記載の方法。
【請求項４】
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間の各接続についての接続帯域幅を決定することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間のすべての前記接続帯域幅の合計に基づいて、利用可能な総帯域幅を決定することとをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに割り当てることを含む、請求項１に記載の方法。
【請求項５】
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間の各接続についての接続帯域幅を決定することと、
最短の推定ダウンロード時間をもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定することとをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された最短の推定ダウンロード時間に基づいてデータセグメントを各コンピューティングデバイスに割り当てることを含む、請求項１に記載の方法。
【請求項６】
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間の各接続についての接続タイプを決定することと、
各接続タイプと関連付けられるコストを決定することと、
最低のダウンロード総コストをもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定することとをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された最低のダウンロード総コストに基づいてデータセグメントを各コンピューティングデバイスに割り当てることを含む、請求項１に記載の方法。
【請求項７】
前記複数のコンピューティングデバイスの１つと前記第１のコンピューティングデバイスとの間の接続が失われるときを決定することと、
前記接続が失われたコンピューティングデバイスに割り当てられた前記データセットを、前記第１のコンピューティングデバイスから、前記第１のコンピューティングデバイスに接続されたままである前記複数のコンピューティングデバイスの１つまたは複数へと送信することとをさらに備える、請求項１に記載の方法。
【請求項８】
前記複数のコンピューティングデバイスの各々のデバイスタイプを決定することと、
前記複数のコンピューティングデバイスの各々に送信すべき各データセグメントの量を、そのデバイスの決定されたデバイスタイプに基づいて決定することとをさらに備え、
前記第１のコンピューティングデバイスから前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの割り当てられた部分を送信することが、そのコンピューティングデバイスのために送信すべき前記決定された量の各データセグメントを送信することを含む、請求項１に記載の方法。
【請求項９】
ユーザ選好設定を決定することをさらに備え、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定されたユーザ選好設定に少なくとも一部基づく、請求項１に記載の方法。
【請求項１０】
前記複数のコンピューティングデバイスの各々の地理的位置を決定することと、
前記複数のコンピューティングデバイスが同じ位置にあるかどうかを決定することとをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、データセグメントを同じ位置にあるデバイスに割り当てることのみを含む、請求項１に記載の方法。
【請求項１１】
前記複数のコンピューティングデバイスがモバイルデバイスであり、前記第１のコンピューティングデバイスが中央データベースサーバである、請求項１に記載の方法。
【請求項１２】
前記データセットが電子メールから構成される、請求項１に記載の方法。
【請求項１３】
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての初期接続帯域幅を決定することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間のすべての前記初期接続帯域幅の合計に基づいて、利用可能な初期総帯域幅を決定することであって、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記利用可能な初期総帯域幅の百分率としての各コンピューティングデバイスの初期接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに最初に割り当てることを含む、決定することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての前記接続帯域幅を監視することと、
前記第１のデバイスコンピューティングと前記複数のコンピューティングデバイスの各々との間の各接続についてのいずれかの接続帯域幅に変化が生じたかどうかを決定することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスのいずれか１つまたは複数との間の接続帯域幅に変化が生じた場合に、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての更新された接続帯域幅を決定することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間のすべての前記更新された接続帯域幅の合計に基づいて、更新された利用可能な総帯域幅を決定することと、
前記更新された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの更新された接続帯域幅に比例して、データセグメントを前記複数のコンピューティングデバイスの各々に再び割り当てることと、
前記第１のコンピューティングデバイスから前記複数のコンピューティングデバイスの各々へ、そのコンピューティングデバイスの前記データセグメントの再び割り当てられた部分を送信することとをさらに備える、請求項１に記載の方法。
【請求項１４】
前記第２のコンピューティングデバイスと前記第３のコンピューティングデバイスとの間で、前記データセグメントのそれぞれの割り当てられた部分を交換することがさらに、
前記第２のコンピューティングデバイスから前記第３のコンピューティングデバイスにデータ待機メッセージを送信することと、
前記第２のコンピューティングデバイスから前記第３のコンピューティングデバイスにデータセグメントマップを送信することとを備える、請求項１に記載の方法。
【請求項１５】
前記第２のコンピューティングデバイスと前記第３のコンピューティングデバイスとの間で、前記データセグメントのそれぞれの割り当てられた部分を交換することがさらに、
前記第３のコンピューティングデバイスにおいて前記データセグメントマップを受信することと、
前記データセグメントマップと前記第３のコンピューティングデバイス上に存在するデータセットとの比較に基づいて、いずれかのデータセグメントが前記第３のコンピューティングデバイスによって必要とされているかどうかを決定することと、
データセグメントが前記第３のコンピューティングデバイスによって必要とされていると決定されたときに、前記第３のコンピューティングデバイスから前記第２のコンピューティングデバイスにデータセグメント要求を送信し、前記第２のコンピューティングデバイスから前記第３のコンピューティングデバイスに要求されたデータセグメントを送信することとを含む、請求項１４に記載の方法。
【請求項１６】
前記第２のコンピューティングデバイスと前記第３のコンピューティングデバイスとの間で、前記データセグメントのそれぞれの割り当てられた部分を交換することがさらに、一方のコンピューティングデバイスから他方のコンピューティングデバイスに要求されたデータセグメントを送信する前に、前記要求されたデータセグメント中のデータを第１のアプリケーションフォーマットから第２のアプリケーションフォーマットに変換することを含む、請求項１５に記載の方法。
【請求項１７】
第１のコンピューティングデバイスからサーバにデータをアップロードするための方法であって、
前記第１のコンピューティングデバイスと第２のコンピューティングデバイスとの間で接続を確立することと、
前記サーバにアップロードされるべきデータセットをデータセグメントへと分割することと、
前記データセグメントの第１の部分のアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、前記データセグメントの第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることと、
各セグメントの前記アップロード・レスポンシビリティを前記第１のコンピューティングデバイスから前記第２のコンピューティングデバイスに送信することと、
前記データセグメントの前記第１の部分を、第１のデータ通信リンクを介して前記第１のコンピューティングデバイスから前記サーバに送信することと、
前記データセグメントの前記第２の部分を、第２の通信リンクを介して前記第２のコンピューティングデバイスから前記サーバに送信することとを備える、方法。
【請求項１８】
前記データセグメントの前記第１の部分のアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、前記データセグメントの前記第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることが、データセグメントの総数の半分に関するアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、データセグメントの前記総数の残りの半分に関するアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることを含む、請求項１７に記載の方法。
【請求項１９】
前記データセットが電子メールデータセットであり、前記方法が、
より新しい電子メールが前記サーバ上に記憶された電子メールスレッド中に存在するかどうかを決定することと、
より新しい電子メールが前記電子メールスレッド中に存在する場合、前記第１のコンピューティングデバイスに割り当てられた前記データセグメントの部分を前記サーバに送信する前にユーザ承認を要求することと、をさらに備える、請求項１８に記載の方法。
【請求項２０】
データ配信を最適化するためのシステムであって、
第１のコンピューティングデバイスと、
前記第１のコンピューティングデバイスに接続された複数のコンピューティングデバイスとを備え、前記複数のコンピューティングデバイスが、第３のコンピューティングデバイスに接続された第２のコンピューティングデバイスを少なくとも備え、
前記第１のコンピューティングデバイスが、
第１のコンピューティングデバイスから前記第１のコンピューティングデバイスに接続された前記複数のコンピューティングデバイスへの送信のためのデータセットを識別することと、
前記データセットをデータセグメントへと分割することと、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることと、
前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの割り当てられた部分を送信することとを含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記複数のコンピューティングデバイスが、前記データセグメントのそれぞれの割り当てられた部分を互いに交換することを含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、システム。
【請求項２１】
前記第１のコンピューティングデバイスが、
識別情報（ＩＤ）を各データセグメントに割り当てることと、
データセグメントマップを生成することと、
前記データセグメントマップを前記複数のコンピューティングデバイスの各コンピューティングデバイスに送信することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントマップが、各データセグメントのＩＤとデータセグメント割当て情報とを含む、請求項２０に記載のシステム。
【請求項２２】
前記第１のコンピューティングデバイスが、
データセット特性を決定することをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセットをデータセグメントへと分割することが、前記決定されたデータセット特性に少なくとも一部基づいて、前記データセットをデータセグメントへと分割することを含む、請求項２０に記載のシステム。
【請求項２３】
前記第１のコンピューティングデバイスが、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての接続帯域幅を決定することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間のすべての前記接続帯域幅の合計に基づいて、利用可能な総帯域幅を決定することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに割り当てることを含む、請求項２０に記載のシステム。
【請求項２４】
前記第１のコンピューティングデバイスが、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての接続帯域幅を決定することと、
最短の推定ダウンロード時間をもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された最短の推定ダウンロード時間に基づいて、データセグメントを各コンピューティングデバイスに割り当てることを含む、請求項２０に記載のシステム。
【請求項２５】
前記第１のコンピューティングデバイスが、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての接続タイプを決定することと、
各接続タイプと関連付けられるコストを決定することと、
最低のダウンロード総コストをもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された最低のダウンロード総コストに基づいて、データセグメントを各コンピューティングデバイスに割り当てることを含む、請求項２０に記載のシステム。
【請求項２６】
前記第１のコンピューティングデバイスが、
前記複数のコンピューティングデバイスの１つと前記第１のコンピューティングデバイスとの間の接続が失われるときを決定することと、
前記接続が失われたコンピューティングデバイスに割り当てられた前記データセットを、前記第１のコンピューティングデバイスから、前記第１のコンピューティングデバイスに接続されたままである前記複数のコンピューティングデバイスの１つまたは複数へと送信することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項２０に記載のシステム。
【請求項２７】
前記第１のコンピューティングデバイスが、
前記複数のコンピューティングデバイスの各々のデバイスタイプを決定することと、
前記複数のコンピューティングデバイスの各々に送信すべき各データセグメントの量を、そのデバイスの決定されたデバイスタイプに基づいて決定することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記第１のコンピューティングデバイスから前記複数のコンピューティングデバイスの各々に、前記データセグメントのそのコンピューティングデバイスの割り当てられた部分を送信することが、そのコンピューティングデバイスのために送信すべき前記決定された量の各データセグメントを送信することを含む、請求項２０に記載のシステム。
【請求項２８】
前記第１のコンピューティングデバイスが、
ユーザ選好設定を決定することをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定されたユーザ選好設定に少なくとも一部基づく、請求項２０に記載のシステム。
【請求項２９】
前記第１のコンピューティングデバイスが、
前記複数のコンピューティングデバイスの各々の地理的位置を決定することと、
前記複数のコンピューティングデバイスが同じ位置にあるかどうかを決定することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、データセグメントを同じ位置にあるデバイスに割り当てることのみを含む、請求項２０に記載のシステム。
【請求項３０】
前記複数のコンピューティングデバイスがモバイルデバイスであり、前記第１のコンピューティングデバイスが中央データベースサーバである、請求項２０に記載のシステム。
【請求項３１】
前記データセットが電子メールから構成される、請求項２０に記載のシステム。
【請求項３２】
前記第１のコンピューティングデバイスが、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての初期接続帯域幅を決定することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間のすべての前記初期接続帯域幅の合計に基づいて、利用可能な初期総帯域幅を決定することであって、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記利用可能な初期総帯域幅の百分率としての各コンピューティングデバイスの初期接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに最初に割り当てることを含む、決定することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間の各接続についての前記接続帯域幅を監視することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスのいずれか１つまたは複数との間の各接続についての接続帯域幅に変化が生じたかどうかを決定することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間の各接続についてのいずれかの接続帯域幅に変化が生じた場合に、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての更新された接続帯域幅を決定することと、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間のすべての前記更新された接続帯域幅の合計に基づいて、更新された利用可能な総帯域幅を決定することと、
前記更新された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの更新された接続帯域幅に比例して、データセグメントを前記複数のコンピューティングデバイスの各々に再び割り当てることと、
前記第１のコンピューティングデバイスから前記複数のコンピューティングデバイスの各々へ、そのコンピューティングデバイスの前記データセグメントの再び割り当てられた部分を送信することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項２０に記載のシステム。
【請求項３３】
前記複数のコンピューティングデバイスの各々が、
前記複数のコンピューティングデバイスの他の各々にデータ待機メッセージを送信することと、
前記複数のコンピューティングデバイスの前記他の各々にデータセグメントマップを送信することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項２０に記載のシステム。
【請求項３４】
前記複数のコンピューティングデバイスの前記各々が、
前記複数のコンピューティングデバイスの他のそれぞれのデバイスから、前記データセグメントマップを受信することと、
受信された各々のデータセグメントマップについて、前記データセグメントマップと前記コンピューティングデバイス上に存在するデータとの比較に基づいて、いずれかのデータセグメントが必要とされているかどうかを決定することと、
データセグメントが必要とされていると決定された場合、前記データセグメントマップを提供するデータセグメント要求を、前記複数のコンピューティングデバイスの前記他のそれぞれのデバイスに送信することと、
前記複数のコンピューティングデバイスの別のデバイスからデータセグメント要求を受信することと、
前記受信されたデータセグメント要求に応答して、前記複数のコンピューティングデバイスの前記別のデバイスに要求されたデータセグメントを送信することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項３３に記載のシステム。
【請求項３５】
前記複数のコンピューティングデバイスの各々が、
要求されたデータセグメントを前記複数のコンピューティングデバイスの別のデバイスに送信する前に、前記要求されたデータセグメント中のデータを第１のアプリケーションフォーマットから第２のアプリケーションフォーマットに変換することをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項３４に記載のシステム。
【請求項３６】
データをアップロードするためのシステムであって、
第１のコンピューティングデバイスと、
第２のコンピューティングデバイスと、
サーバとを備え、
前記第１のコンピューティングデバイスが、
前記第１のコンピューティングデバイスと前記第２のコンピューティングデバイスとの間で接続を確立することと、
前記サーバにアップロードされるべきデータセットをデータセグメントへと分割することと、
前記データセグメントの第１の部分のアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、前記データセグメントの第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることと、
各セグメントの前記アップロード・レスポンシビリティを前記第２のコンピューティングデバイスに送信することと、
前記データセグメントの前記第１の部分を、第１のデータ通信リンクを介して前記サーバに送信することとを含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記第２のコンピューティングデバイスが、
各セグメントの前記アップロード・レスポンシビリティを前記第１のコンピューティングデバイスから受信することと、
前記データセグメントの前記第２の部分を、第２の通信リンクを介して前記サーバに送信することとを含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、システム。
【請求項３７】
前記データセグメントの前記第１の部分のアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、前記データセグメントの前記第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることが、データセグメントの総数の半分に関するアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、データセグメントの前記総数の残りの半分に関するアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることを含む、請求項３６に記載のシステム。
【請求項３８】
前記データセットが電子メールデータセットであり、前記第１のコンピューティングデバイスが、
より新しい電子メールが前記サーバ上に記憶された電子メールスレッド中に存在するかどうかを決定することと、
より新しい電子メールが前記電子メールスレッド中に存在する場合、前記第１のコンピューティングデバイスに割り当てられた前記データセグメントの部分を前記サーバに送信する前にユーザ承認を要求することと、をさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項３６に記載のシステム。
【請求項３９】
データ配信を最適化するためのシステムであって、
第１のコンピューティングデバイスから前記第１のコンピューティングデバイスに接続された複数のコンピューティングデバイスへの送信のためのデータセットを、前記第１のコンピューティングデバイスにおいて識別するための手段と、
前記データセットをデータセグメントへと分割するための手段と、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段と、
前記第１のコンピューティングデバイスから前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの割り当てられた部分を送信するための手段と、
前記コンピューティングデバイスの各々の間で、前記データセグメントのそれぞれの割り当てられた部分を交換するための手段とを備える、システム。
【請求項４０】
識別情報（ＩＤ）を各データセグメントに割り当てるための手段と、
データセグメントマップを生成するための手段と、
前記データセグメントマップを前記複数のコンピューティングデバイスの各コンピューティングデバイスに送信するための手段とをさらに備え、
前記データセグメントマップが、各データセグメントのＩＤとデータセグメント割当て情報とを含む、請求項３９に記載のシステム。
【請求項４１】
データセット特性を決定するための手段をさらに備え、
前記データセットをデータセグメントへと分割するための手段が、前記決定されたデータセット特性に少なくとも一部基づいて前記データセットをデータセグメントへと分割するための手段を含む、請求項３９に記載のシステム。
【請求項４２】
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての接続帯域幅を決定するための手段と、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間のすべての前記接続帯域幅の合計に基づいて、利用可能な総帯域幅を決定するための手段とをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段が、前記決定された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに割り当てるための手段を含む、請求項３９に記載のシステム。
【請求項４３】
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての接続帯域幅を決定するための手段と、
最短の推定ダウンロード時間をもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定するための手段とをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段が、前記決定された最短の推定ダウンロード時間に基づいてデータセグメントを各コンピューティングデバイスに割り当てるための手段を含む、請求項３９に記載のシステム。
【請求項４４】
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての接続タイプを決定するための手段と、
各接続タイプと関連付けられるコストを決定するための手段と、
最低のダウンロード総コストをもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定するための手段とをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段が、前記決定された最低のダウンロード総コストに基づいてデータセグメントを各コンピューティングデバイスに割り当てるための手段を含む、請求項３９に記載のシステム。
【請求項４５】
前記複数のコンピューティングデバイスの１つと前記第１のコンピューティングデバイスとの間の接続が失われるときを決定するための手段と、
前記接続が失われたコンピューティングデバイスに割り当てられたデータセットを、前記第１のコンピューティングデバイスから、前記第１のコンピューティングデバイスに接続されたままである前記複数のコンピューティングデバイスの１つまたは複数へと送信するための手段とをさらに備える、請求項３９に記載のシステム。
【請求項４６】
前記複数のコンピューティングデバイスの各々のデバイスタイプを決定するための手段と、
前記複数のコンピューティングデバイスの各々に送信すべき各データセグメントの量を、そのデバイスの決定されたデバイスタイプに基づいて決定するための手段とをさらに備え、
前記第１のコンピューティングデバイスから前記複数のコンピューティングデバイスの各々に、前記データセグメントのそのコンピューティングデバイスの割り当てられた部分を送信するための手段が、そのコンピューティングデバイスのために送信すべき前記決定された量の各データセグメントを送信するための手段を含む、請求項３９に記載の方法。
【請求項４７】
ユーザ選好設定を決定するための手段をさらに備え、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段が、前記決定されたユーザ選好設定に少なくとも一部基づいて、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段を含む、請求項３９に記載のシステム。
【請求項４８】
前記複数のコンピューティングデバイスの各々の地理的位置を決定するための手段と、
前記複数のコンピューティングデバイスが同じ位置にあるかどうかを決定するための手段とをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段が、データセグメントを同じ位置にあるデバイスに割り当てることのみのための手段を含む、請求項３９に記載のシステム。
【請求項４９】
前記複数のコンピューティングデバイスがモバイルデバイスであり、前記第１のコンピューティングデバイスが中央データベースサーバである、請求項３９に記載のシステム。
【請求項５０】
前記データセットが電子メールを含む、請求項３９に記載のシステム。
【請求項５１】
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての初期接続帯域幅を決定するための手段のための手段と、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間のすべての前記初期接続帯域幅の合計に基づいて、利用可能な初期総帯域幅を決定するための手段であって、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記利用可能な初期総帯域幅の百分率としての各コンピューティングデバイスの初期接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに最初に割り当てることを含む、手段と、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間の各接続についての前記接続帯域幅を監視するための手段と、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスのいずれか１つまたは複数との間の各接続についての接続帯域幅に変化が生じたかどうかを決定するための手段と、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスとの間の各接続についてのいずれかの接続帯域幅に変化が生じた場合に、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間の各接続についての更新された接続帯域幅を決定するための手段と、
前記第１のコンピューティングデバイスと前記複数のコンピューティングデバイスの各々との間のすべての前記更新された接続帯域幅の合計に基づいて、更新された利用可能な総帯域幅を決定するための手段と、
前記更新された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの更新された接続帯域幅に比例して、データセグメントを前記複数のコンピューティングデバイスの各々に再び割り当てるための手段と、
前記第１のコンピューティングデバイスから前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの再び割り当てられた部分を送信するための手段とをさらに備える、請求項３９に記載のシステム。
【請求項５２】
前記複数のコンピューティングデバイスの各々の間で、前記データセグメントのそれぞれの割り当てられた部分を交換するための手段がさらに、
前記複数のコンピューティングデバイスの他の各々からデータ待機メッセージを送信するための手段と、
前記複数のコンピューティングデバイスの前記他の各々に前記第２のコンピューティングデバイスからデータセグメントマップを送信するための手段とを含む、請求項３９に記載のシステム。
【請求項５３】
前記複数のコンピューティングデバイスの各々の間で、前記データセグメントのそれぞれの割り当てられた部分を交換するための手段がさらに、
前記複数のコンピューティングデバイスの各々において、前記複数のコンピューティングデバイスの他のそれぞれのデバイスから前記データセグメントマップを受信するための手段と、
前記複数のコンピューティングデバイスの各々において、前記データセグメントマップと前記コンピューティングデバイス上に存在するデータとの比較に基づいて、いずれかのデータセグメントが必要とされているかどうかを決定するための手段と、
データセグメントが必要とされていると決定された場合、前記データセグメントマップを提供するデータセグメント要求を、前記複数のコンピューティングデバイスの前記他のそれぞれのデバイスに送信するための手段と、
データセグメント要求を受信したことに応答して、要求されたデータセグメントを要求しているコンピューティングデバイスに送信するための手段とを備える、請求項５２に記載のシステム。
【請求項５４】
前記複数のコンピューティングデバイスの各々の間で、前記データセグメントのそれぞれの割り当てられた部分を交換するための手段がさらに、前記複数のコンピューティングデバイスの別のデバイスに要求されたデータセグメントを送信する前に、前記要求されたデータセグメント中のデータを第１のアプリケーションフォーマットから第２のアプリケーションフォーマットに変換するための手段を含む、請求項５３に記載のシステム。
【請求項５５】
第１のコンピューティングデバイスからサーバにデータをアップロードするためのシステムであって、
前記第１のコンピューティングデバイスと第２のコンピューティングデバイスとの間で接続を確立するための手段と、
前記サーバにアップロードされるべきデータセットをデータセグメントへと分割するための手段と、
前記データセグメントの第１の部分のアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、前記データセグメントの第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てるための手段と、
各セグメントの前記アップロード・レスポンシビリティを前記第１のコンピューティングデバイスから前記第２のコンピューティングデバイスに送信するための手段と、
前記データセグメントの前記第１の部分を、第１のデータ通信リンクを介して前記第１のコンピューティングデバイスから前記サーバに送信するための手段と、
前記データセグメントの前記第２の部分を、第２の通信リンクを介して前記第２のコンピューティングデバイスから前記サーバに送信するための手段とを備える、システム。
【請求項５６】
前記データセグメントの前記第１の部分のアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、前記データセグメントの前記第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てるための手段が、データセグメントの総数の半分に関するアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当てるための手段と、データセグメントの前記総数の残りの半分に関するアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てるための手段とを含む、請求項５５に記載のシステム。
【請求項５７】
前記データセットが電子メールデータセットであり、
より新しい電子メールが前記サーバ上に記憶された電子メールスレッド中に存在するかどうかを決定するための手段と、
より新しい電子メールが前記電子メールスレッド中に存在する場合、前記第１のコンピューティングデバイスに割り当てられた前記データセグメントの部分を前記サーバに送信する前にユーザ承認を要求するための手段とをさらに備える、請求項５５に記載のシステム。
【請求項５８】
メモリと、
前記メモリに結合されたプロセッサとを備えるサーバであって、前記プロセッサが、
前記サーバから複数のコンピューティングデバイスへの送信のためのデータセットを前記サーバにおいて識別することと、
前記データセットをデータセグメントへと分割することと、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることと、
識別情報（ＩＤ）を各データセグメントに割り当てることと、
データセグメントマップを生成することと、
前記サーバから前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの割り当てられた部分を送信することと、
前記データセグメントマップを前記複数のコンピューティングデバイスの各々に送信することとを含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントマップが、各データセグメントのＩＤとデータセグメント割当て情報とを含む、サーバ。
【請求項５９】
前記プロセッサが、
データセット特性を決定することをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセットをデータセグメントへと分割することが、前記決定されたデータセット特性に少なくとも一部基づいて前記データセットをデータセグメントへと分割することを含む、請求項５８に記載のサーバ。
【請求項６０】
前記プロセッサが、
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての接続帯域幅を決定することと、
前記デバイスコンピューティングと前記複数のコンピューティングデバイスとの間のすべての前記接続帯域幅の合計に基づいて、利用可能な総帯域幅を決定することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに割り当てることを含む、請求項５８に記載のサーバ。
【請求項６１】
前記プロセッサが、
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての接続帯域幅を決定することと、
最短の推定ダウンロード時間をもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された最短の推定ダウンロード時間に基づいてデータセグメントを各コンピューティングデバイスに割り当てることを含む、請求項５８に記載のサーバ。
【請求項６２】
前記プロセッサが、
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての接続タイプを決定することと、
各接続タイプと関連付けられるコストを決定することと、
最低のダウンロード総コストをもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された最低のダウンロード総コストに基づいてデータセグメントを各コンピューティングデバイスに割り当てることを含む、請求項５８に記載のサーバ。
【請求項６３】
前記プロセッサが、
前記サーバと前記複数のコンピューティングデバイスの１つとの間のデータ接続が失われたときを決定することと、
前記接続が失われたコンピューティングデバイスに割り当てられた前記データセットを、前記サーバから、前記サーバに接続されたままである前記複数のコンピューティングデバイスの１つまたは複数へと送信することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項５８に記載のサーバ。
【請求項６４】
前記プロセッサが、
前記複数のコンピューティングデバイスの各々のデバイスタイプを決定することと、
前記複数のコンピューティングデバイスの各々に送信すべき各データセグメントの量を、そのデバイスの決定されたデバイスタイプに基づいて決定することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記サーバから各コンピューティングデバイスに、そのコンピューティングデバイスの前記データセグメントの割り当てられた部分を送信することが、そのコンピューティングデバイスのために送信すべき前記決定された量の各データセグメントを送信することを含む、請求項５８に記載のサーバ。
【請求項６５】
前記プロセッサが、
ユーザ選好設定を決定することをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定されたユーザ選好設定に少なくとも一部基づく、請求項５８に記載のサーバ。
【請求項６６】
前記プロセッサが、
前記複数のコンピューティングデバイスの各々の地理的位置を決定することと、
前記複数のコンピューティングデバイスが同じ位置にあるかどうかを決定することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、データセグメントを同じ位置にあるデバイスに割り当てることのみを含む、請求項５８に記載のサーバ。
【請求項６７】
前記データセットが電子メールを含む、請求項５８に記載のサーバ。
【請求項６８】
前記プロセッサが、
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての初期接続帯域幅を決定することと、
前記サーバと前記複数のコンピューティングデバイスとの間のすべての前記初期接続帯域幅の合計に基づいて、利用可能な初期総帯域幅を決定することであって、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記利用可能な初期総帯域幅の百分率としての各コンピューティングデバイスの初期接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに最初に割り当てることを含む、決定することと、
前記サーバと前記複数のコンピューティングデバイスとの間の各接続についての前記接続帯域幅を監視することと、
前記サーバと前記複数のコンピューティングデバイスのいずれか１つとの間の各接続についての接続帯域幅に変化が生じたかどうかを決定することと、
前記サーバと前記複数のコンピューティングデバイスとの間の各接続についてのいずれかの接続帯域幅に変化が生じた場合に、
前記サーバと前記複数のコンピューティングデバイスとの間の各接続についての更新された接続帯域幅を決定することと、
前記サーバと前記複数のコンピューティングデバイスの各々との間のすべての前記更新された接続帯域幅の合計に基づいて、更新された利用可能な総帯域幅を決定することと、
前記更新された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの更新された接続帯域幅に比例して、データセグメントを前記複数のコンピューティングデバイスの各々に再び割り当てることと、
前記サーバから前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの再び割り当てられた部分を送信することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項５８に記載のサーバ。
【請求項６９】
データ配信を最適化するためのサーバであって、
前記サーバから複数のコンピューティングデバイスへの送信のためのデータセットを前記サーバにおいて識別するための手段と、
前記データセットをデータセグメントへと分割するための手段と、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段と、
識別情報（ＩＤ）を各データセグメントに割り当てるための手段と、
データセグメントマップを生成するための手段と、
前記サーバから前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの割り当てられた部分を送信するための手段と、
前記データセグメントマップを前記複数のコンピューティングデバイスの各々に送信するための手段とを備え、
前記データセグメントマップが、各データセグメントのＩＤとデータセグメント割当て情報とを含む、サーバ。
【請求項７０】
データセット特性を決定するための手段をさらに備え、
前記データセットをデータセグメントへと分割するための手段が、前記決定されたデータセット特性に少なくとも一部基づいて前記データセットをデータセグメントへと分割するための手段を含む、請求項６９に記載のサーバ。
【請求項７１】
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての接続帯域幅を決定するための手段と、
前記サーバと前記複数のコンピューティングデバイスとの間のすべての前記接続帯域幅の合計に基づいて、利用可能な総帯域幅を決定するための手段とをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに割り当てることを含む、請求項６９に記載のサーバ。
【請求項７２】
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての接続帯域幅を決定するための手段と、
最短の推定ダウンロード時間をもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定するための手段とをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段が、前記決定された最短の推定ダウンロード時間に基づいて、データセグメントを各コンピューティングデバイスに割り当てるための手段を含む、請求項６９に記載のサーバ。
【請求項７３】
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての接続タイプを決定するための手段と、
各接続タイプと関連付けられるコストを決定するための手段と、
最低のダウンロード総コストをもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定するための手段とをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段が、前記決定された最低のダウンロード総コストに基づいてデータセグメントを各コンピューティングデバイスに割り当てるための手段を含む、請求項６９に記載のサーバ。
【請求項７４】
前記サーバと前記複数のコンピューティングデバイスの１つとの間のデータ接続が失われたときを決定するための手段と、
前記接続が失われたコンピューティングデバイスに割り当てられた前記データセットを、前記サーバから、前記サーバに接続されたままである前記複数のコンピューティングデバイスの１つまたは複数へと送信するための手段とをさらに備える、請求項６９に記載のサーバ。
【請求項７５】
前記複数のコンピューティングデバイスの各々のデバイスタイプを決定するための手段と、
前記複数のコンピューティングデバイスの各々に送信すべき各データセグメントの量を、そのデバイスの決定されたデバイスタイプに基づいて決定するための手段とをさらに備え、
前記サーバから各コンピューティングデバイスに、そのコンピューティングデバイスの前記データセグメントの割り当てられた部分を送信するための手段が、そのコンピューティングデバイスのために送信すべき前記決定された量の各データセグメントを送信するための手段を含む、請求項６９に記載のサーバ。
【請求項７６】
ユーザ選好設定を決定するための手段をさらに備え、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段が、前記決定されたユーザ選好設定に少なくとも一部基づく、請求項６９に記載のサーバ。
【請求項７７】
前記複数のコンピューティングデバイスの各々の地理的位置を決定するための手段と、
前記複数のコンピューティングデバイスが同じ位置にあるかどうかを決定するための手段とをさらに備え、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段が、データセグメントを同じ位置にあるデバイスに割り当てることのみのための手段を含む、請求項６９に記載のサーバ。
【請求項７８】
前記データセットが電子メールを含む、請求項６９に記載のサーバ。
【請求項７９】
前記サーバと前記複数のコンピューティングデバイスとの間の各接続についての初期接続帯域幅を決定するための手段と、
前記サーバと前記複数のコンピューティングデバイスとの間のすべての前記初期接続帯域幅の合計に基づいて、利用可能な初期総帯域幅を決定するための手段であって、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てるための手段が、前記利用可能な初期総帯域幅の百分率としての各コンピューティングデバイスの初期接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに最初に割り当てるための手段を含む、手段と、
前記サーバと前記複数のコンピューティングデバイスとの間の各接続についての前記接続帯域幅を監視するための手段と、
前記サーバと前記複数のコンピューティングデバイスのいずれか１つとの間の各接続についての接続帯域幅に変化が生じたかどうかを決定するための手段と、
前記サーバと前記複数のコンピューティングデバイスとの間の各接続についてのいずれかの接続帯域幅に変化が生じた場合に、前記サーバと前記複数のコンピューティングデバイスとの間の各接続についての更新された接続帯域幅を決定するための手段と、
前記サーバと前記複数のコンピューティングデバイスの各々との間のすべての前記更新された接続帯域幅の合計に基づいて、更新された利用可能な総帯域幅を決定するための手段と、
前記更新された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの更新された接続帯域幅に比例して、データセグメントを前記複数のコンピューティングデバイスの各々に再び割り当てるための手段と、
前記サーバから前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの再び割り当てられた部分を送信するための手段とをさらに備える、請求項６９に記載のサーバ。
【請求項８０】
サーバプロセッサに動作を実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読媒体であって、前記動作が、
サーバから複数のコンピューティングデバイスへの送信のためのデータセットを前記サーバにおいて識別することと、
前記データセットをデータセグメントへと分割することと、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることと、
識別情報（ＩＤ）を各データセグメントに割り当てることと、
データセグメントマップを生成することと、
前記サーバから前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの割り当てられた部分を送信することと、
前記データセグメントマップを前記複数のコンピューティングデバイスの各々に送信することとを含み、
前記データセグメントマップが、各データセグメントのＩＤとデータセグメント割当て情報とを含む、非一時的プロセッサ可読媒体。
【請求項８１】
前記記憶されたプロセッサ実行可能命令が、サーバプロセッサに、
データセット特性を決定することをさらに含む動作を実行させるように構成され、
前記データセットをデータセグメントへと分割することが、前記決定されたデータセット特性に少なくとも一部基づいて前記データセットをデータセグメントへと分割することを含む、請求項８０に記載の非一時的プロセッサ可読媒体。
【請求項８２】
前記記憶されたプロセッサ実行可能命令が、サーバプロセッサに、
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての接続帯域幅を決定することと、
前記デバイスコンピューティングと前記複数のコンピューティングデバイスとの間のすべての前記接続帯域幅の合計に基づいて、利用可能な総帯域幅を決定することとをさらに含む動作を実行させるように構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに割り当てることを含む、請求項８０に記載の非一時的プロセッサ可読媒体。
【請求項８３】
前記記憶されたプロセッサ実行可能命令が、サーバプロセッサに、
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての接続帯域幅を決定することと、
最短の推定ダウンロード時間をもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定することとをさらに含む動作を実行させるように構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された最短の推定ダウンロード時間に基づいてデータセグメントを各コンピューティングデバイスに割り当てることを含む、請求項８０に記載の非一時的プロセッサ可読媒体。
【請求項８４】
前記記憶されたプロセッサ実行可能命令が、サーバプロセッサに、
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての接続タイプを決定することと、
各接続タイプと関連付けられるコストを決定することと、
最低のダウンロード総コストをもたらす、前記複数のコンピューティングデバイス間でのデータセグメント割当てを決定することとをさらに含む動作を実行させるように構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定された最低のダウンロード総コストに基づいてデータセグメントを各コンピューティングデバイスに割り当てることを含む、請求項８０に記載の非一時的プロセッサ可読媒体。
【請求項８５】
前記記憶されたプロセッサ実行可能命令が、サーバプロセッサに、
前記サーバと前記複数のコンピューティングデバイスの１つとの間のデータ接続が失われたときを決定することと、
前記接続が失われたコンピューティングデバイスに割り当てられた前記データセットを、前記サーバから、前記サーバに接続されたままである前記複数のコンピューティングデバイスの１つまたは複数へと送信することとをさらに含む動作を実行させるように構成される、請求項８０に記載の非一時的プロセッサ可読媒体。
【請求項８６】
前記記憶されたプロセッサ実行可能命令が、サーバプロセッサに、
前記複数のコンピューティングデバイスの各々のデバイスタイプを決定することと、
前記複数のコンピューティングデバイスの各々に送信すべき各データセグメントの量を、そのデバイスの決定されたデバイスタイプに基づいて決定することとをさらに含む動作を実行させるように構成され、
前記サーバから各コンピューティングデバイスに、そのコンピューティングデバイスの前記データセグメントの割り当てられた部分を送信することが、そのコンピューティングデバイスのために送信すべき前記決定された量の各データセグメントを送信することを含む、請求項８０に記載の非一時的プロセッサ可読媒体。
【請求項８７】
前記記憶されたプロセッサ実行可能命令が、サーバプロセッサに、
ユーザ選好設定を決定することをさらに含む動作を実行させるように構成され、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記決定されたユーザ選好設定に少なくとも一部基づく、請求項８０に記載の非一時的プロセッサ可読媒体。
【請求項８８】
前記記憶されたプロセッサ実行可能命令が、サーバプロセッサに、
前記複数のコンピューティングデバイスの各々の地理的位置を決定することと、
前記複数のコンピューティングデバイスが同じ位置にあるかどうかを決定することとをさらに含む動作を実行させるように構成され、
前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、データセグメントを同じ位置にあるデバイスに割り当てることのみを含む、請求項８０に記載の非一時的プロセッサ可読媒体。
【請求項８９】
前記データセットが電子メールを含む、請求項８０に記載の非一時的プロセッサ可読媒体。
【請求項９０】
前記記憶されたプロセッサ実行可能命令が、サーバプロセッサに、
前記サーバと前記複数のコンピューティングデバイスの各々との間の各接続についての初期接続帯域幅を決定することと、
前記サーバと前記複数のコンピューティングデバイスとの間のすべての前記初期接続帯域幅の合計に基づいて、利用可能な初期総帯域幅を決定することであって、前記データセグメントの一部分を前記複数のコンピューティングデバイスの各々に割り当てることが、前記利用可能な初期総帯域幅の百分率としての各コンピューティングデバイスの初期接続帯域幅に比例して、データセグメントを各コンピューティングデバイスに最初に割り当てることを含む、決定することと、
前記サーバと前記複数のコンピューティングデバイスとの間の各接続についての前記接続帯域幅を監視することと、
前記サーバと前記複数のコンピューティングデバイスのいずれか１つとの間の各接続についての接続帯域幅に変化が生じたかどうかを決定することと、
前記サーバと前記複数のコンピューティングデバイスとの間の各接続についてのいずれかの接続帯域幅に変化が生じた場合に、
前記サーバと前記複数のコンピューティングデバイスとの間の各接続についての更新された接続帯域幅を決定することと、
前記サーバと前記複数のコンピューティングデバイスの各々との間のすべての前記更新された接続帯域幅の合計に基づいて、更新された利用可能な総帯域幅を決定することと、
前記更新された利用可能な総帯域幅の百分率としての各コンピューティングデバイスの更新された接続帯域幅に比例して、データセグメントを前記複数のコンピューティングデバイスの各々に再び割り当てることと、
前記サーバから前記複数のコンピューティングデバイスの各々に、そのコンピューティングデバイスの前記データセグメントの再び割り当てられた部分を送信することとをさらに含む動作を実行させるように構成される、請求項８０に記載の非一時的プロセッサ可読媒体。
【請求項９１】
メモリと、
前記メモリに結合されたプロセッサとを備えるコンピューティングデバイスであって、前記プロセッサが、
データ待機メッセージを第２のコンピューティングデバイスに送信することと、
データセグメントマップを前記第２のコンピューティングデバイスに送信することと、
前記第２のコンピューティングデバイスからデータセグメント要求を受信することと、
要求されたデータセグメントを前記第２のコンピューティングデバイスに送信することとを含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、コンピューティングデバイス。
【請求項９２】
前記プロセッサが、
要求されたデータセグメントを前記第２のコンピューティングデバイスに送信する前に、前記要求されたデータセグメント中のデータを第１のアプリケーションフォーマットから第２のアプリケーションフォーマットに変換することをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項９１に記載のコンピューティングデバイス。
【請求項９３】
前記データセグメントが電子メールを含む、請求項９１に記載のコンピューティングデバイス。
【請求項９４】
前記プロセッサが、
データセグメントマップを受信することと、
前記データセグメントマップと前記コンピューティングデバイス上に存在するデータとの比較に基づいて、いずれかのデータセグメントが必要とされているかどうかを決定することと、
データセグメント要求を第２のコンピューティングデバイスに送信することであって、前記データセグメント要求がいずれかの必要とされているデータセグメントを識別する、送信することと、
前記必要とされているデータセグメントを前記第２のコンピューティングデバイスから受信することとをさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項９１に記載のコンピューティングデバイス。
【請求項９５】
メモリと、
前記メモリに結合されたプロセッサとを備えるコンピューティングデバイスであって、前記プロセッサが、
前記コンピューティングデバイスと第２のコンピューティングデバイスとの間でデータ通信リンクを確立することと、
前記サーバにアップロードされるべきデータセットをデータセグメントへと分割することと、
前記データセグメントの第１の部分のアップロード・レスポンシビリティを前記コンピューティングデバイスに割り当て、前記データセグメントの第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることと、
各セグメントの前記アップロード・レスポンシビリティを前記第２のコンピューティングデバイスに送信することと、
前記第２のコンピューティングデバイスによって使用されるデータ通信リンクとは異なる第１のデータ通信リンクを介して、前記データセグメントの前記第１の部分を前記サーバに送信することとを含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、コンピューティングデバイス。
【請求項９６】
前記データセグメントの前記第１の部分のアップロード・レスポンシビリティを前記コンピューティングデバイスに割り当て、前記データセグメントの前記第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることが、データセグメントの総数の半分に関するアップロード・レスポンシビリティを前記コンピューティングデバイスに割り当て、データセグメントの前記総数の残りの半分に関するアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることを含む、請求項９５に記載のコンピューティングデバイス。
【請求項９７】
前記データセットが電子メールデータセットであり、前記プロセッサが、
前記サーバからの電子メールスレッド・ステータスを要求することと、
前記サーバから前記電子メールスレッド・ステータスを受信することと、
前記受信された電子メールスレッド・ステータスに少なくとも一部基づいて、より新しい電子メールが前記サーバに記憶された電子メールスレッド中に存在するかどうかを決定することと、
より新しい電子メールが前記電子メールスレッド中に存在する場合、前記コンピューティングデバイスに割り当てられた前記データセグメントの部分を前記サーバに送信する前にユーザ承認を要求することと、をさらに含む動作を実行するためのプロセッサ実行可能命令を用いて構成される、請求項９５に記載のコンピューティングデバイス。
【請求項９８】
データ待機メッセージを第２のコンピューティングデバイスに送信するための手段と、
データセグメントマップを前記第２のコンピューティングデバイスに送信するための手段と、
前記第２のコンピューティングからデータセグメント要求を受信するための手段と、
要求されたデータセグメントを前記第２のコンピューティングデバイスに送信するための手段とを備える、コンピューティングデバイス。
【請求項９９】
要求されたデータセグメントを前記第２のコンピューティングデバイスに送信する前に、前記要求されたデータセグメント中のデータを第１のアプリケーションフォーマットから第２のアプリケーションフォーマットに変換するための手段をさらに備える、請求項９８に記載のコンピューティングデバイス。
【請求項１００】
前記データセグメントが電子メールから構成される、請求項９８に記載のコンピューティングデバイス。
【請求項１０１】
データセグメントマップを前記第２のコンピューティングデバイスから受信するための手段と、
前記データセグメントマップと前記コンピューティングデバイス上に存在するデータとの比較に基づいて、いずれかのデータセグメントが必要とされているかどうかを決定するための手段と、
データセグメント要求を前記第２のコンピューティングデバイスに送信するための手段であって、前記データセグメント要求がいずれかの必要とされているデータセグメントを識別する、手段と、
前記必要とされているデータセグメントを受信するための手段とをさらに備える、請求項９８に記載のコンピューティングデバイス。
【請求項１０２】
データをサーバにアップロードするためのコンピューティングデバイスであって、
前記コンピューティングデバイスと第２のコンピューティングデバイスとの間でデータ通信リンクを確立するための手段と、
前記サーバにアップロードされるべきデータセットをデータセグメントへと分割するための手段と、
前記データセグメントの第１の部分のアップロード・レスポンシビリティを前記コンピューティングデバイスに割り当て、前記データセグメントの第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てるための手段と、
各セグメントの前記アップロード・レスポンシビリティを前記第２のコンピューティングデバイスに送信するための手段と、
前記第２のコンピューティングデバイスによって使用されるデータ通信リンクとは異なる第１のデータ通信リンクを介して、前記データセグメントの前記第１の部分を前記サーバに送信するための手段とを備える、コンピューティングデバイス。
【請求項１０３】
前記データセグメントの前記第１の部分のアップロード・レスポンシビリティを前記コンピューティングデバイスに割り当て、前記データセグメントの前記第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てるための手段が、データセグメントの総数の半分に関するアップロード・レスポンシビリティを前記コンピューティングデバイスに割り当て、データセグメントの前記総数の残りの半分に関するアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てるための手段を含む、請求項１０２に記載のコンピューティングデバイス。
【請求項１０４】
前記データセットが電子メールデータセットであり、
前記サーバからの電子メールスレッド・ステータスを要求するための手段と、
前記サーバから前記電子メールスレッド・ステータスを受信するための手段と、
前記受信された電子メールスレッド・ステータスに少なくとも一部基づいて、より新しい電子メールが前記サーバに記憶された電子メールスレッド中に存在するかどうかを決定するための手段と、
より新しい電子メールが前記電子メールスレッド中に存在する場合、前記コンピューティングデバイスに割り当てられた前記データセグメントの部分を前記サーバに送信する前にユーザ承認を要求するための手段と、をさらに備える、請求項１０２に記載のコンピューティングデバイス。
【請求項１０５】
第１のコンピューティングデバイス・プロセッサに動作を実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読媒体であって、前記動作が、
前記第１のコンピューティングデバイスから第２のコンピューティングデバイスにデータ待機メッセージを送信することと、
前記第１のコンピューティングデバイスから前記第２のコンピューティングデバイスにデータセグメントマップを送信することと、
前記第１のコンピューティングデバイスにおいて前記第２のコンピューティングデバイスからデータセグメント要求を受信することと、
前記第１のコンピューティングデバイスから前記第２のコンピューティングデバイスに要求されたデータセグメントを送信することとを含む、非一時的プロセッサ可読媒体。
【請求項１０６】
前記記憶されたプロセッサ実行可能命令が、第１のコンピューティングデバイス・プロセッサに、
要求されたデータセグメントを前記第１のコンピューティングデバイスから前記第２のコンピューティングデバイスに送信する前に、前記要求されたデータセグメント中のデータを第１のアプリケーションフォーマットから第２のアプリケーションフォーマットに変換することをさらに含む動作を実行させるように構成される、請求項１０５に記載の非一時的プロセッサ可読媒体。
【請求項１０７】
前記データセグメントが電子メールから構成される、請求項１０５に記載の非一時的プロセッサ可読媒体。
【請求項１０８】
前記記憶されたプロセッサ実行可能命令が、第１のコンピューティングデバイス・プロセッサに、
データセグメントマップを受信することと、
前記データセグメントマップと前記第１のコンピューティングデバイス上に存在するデータセットとの比較に基づいて、いずれかのデータセグメントが必要とされているかどうかを決定することと、
データセグメント要求を前記第１のコンピューティングデバイスから第２のコンピューティングデバイスに送信することであって、前記データセグメント要求がいずれかの必要とされているデータセグメントを識別する、送信することと、
前記必要とされているデータセグメントを受信することとをさらに含む動作を実行させるように構成される、請求項１０５に記載の非一時的プロセッサ可読媒体。
【請求項１０９】
第１のコンピューティングデバイス・プロセッサに動作を実行させるように構成されたプロセッサ実行可能命令を記憶した非一時的プロセッサ可読媒体であって、前記動作が、
前記第１のコンピューティングデバイスと第２のコンピューティングデバイスとの間で接続を確立することと、
サーバにアップロードされるべきデータセットをデータセグメントへと分割することと、
前記データセグメントの第１の部分のアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、前記データセグメントの第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることと、
各セグメントの前記アップロード・レスポンシビリティを前記第１のコンピューティングデバイスから前記第２のコンピューティングデバイスに送信することと、
前記データセグメントの前記第１の部分を、第１のデータ通信リンクを介して前記第１のコンピューティングデバイスから前記サーバに送信することとを含む、非一時的プロセッサ可読媒体。
【請求項１１０】
前記データセグメントの前記第１の部分のアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、前記データセグメントの前記第２の部分のアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることが、データセグメントの総数の半分に関するアップロード・レスポンシビリティを前記第１のコンピューティングデバイスに割り当て、データセグメントの前記総数の残りの半分に関するアップロード・レスポンシビリティを前記第２のコンピューティングデバイスに割り当てることを含むように、前記記憶されたプロセッサ実行可能命令が、第１のコンピューティングデバイス・プロセッサに動作を実行させるように構成される、請求項１０９に記載の非一時的プロセッサ可読媒体。
【請求項１１１】
前記データセットが電子メールデータセットであり、前記記憶されたプロセッサ実行可能命令が、第１のコンピューティングデバイス・プロセッサに、
前記サーバからの電子メールスレッド・ステータスを要求することと、
前記サーバから前記電子メールスレッド・ステータスを受信することと、
前記受信された電子メールスレッド・ステータスに少なくとも一部基づいて、より新しい電子メールが前記サーバに記憶された電子メールスレッド中に存在するかどうかを決定することと、
より新しい電子メールが前記電子メールスレッド中に存在する場合、前記第１のコンピューティングデバイスに割り当てられた前記データセグメントの部分を前記サーバに送信する前にユーザ承認を要求することと、をさらに含む動作を実行させるように構成される、請求項１０９に記載の非一時的プロセッサ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般に、コンピュータデバイス間のデータ転送（data transfer）に関し、より詳細には、モバイルデバイスへのデータの配信（delivery）を最適化するための方法およびシステムに関する。
【背景技術】
【０００２】
今日の多忙なインフォメーションワーカーは、そのすべてがデータを扱うことが可能な複数のモバイルデバイスを有することがある。一例として、旅行者は、スマートフォンおよびラップトップコンピュータのような、２つのモバイルデバイスを有することがある。スマートフォンとラップトップコンピュータは、ともに、電子メールのような同じデータを、操作し、旅行者に提示することが可能であり得る。スマートフォンおよびラップトップコンピュータは同じタスクを実行することが可能であり得るが、様々な状況のもとで、ユーザは、一方のデバイスで作業することを、他方のデバイスで作業することよりも好むことがある。たとえば、旅行者は、時にはスマートフォンで電子メールを確認することを便利であると考えることがあるが、一般的にラップトップコンピュータは画面およびキーボードがより大きいので、ラップトップコンピュータで複雑な作業を行いまたは読むことをより生産的であると感じることがある。
【０００３】
多くの旅行者が直面する共通の問題は、旅行者のモバイルデバイスのすべてが接続性を有さない可能性のある場所で作業するときに、複数のモバイルデバイスのデータセットを中央データベースサーバと同期することに関するものである。一例として、旅行者は、飛行機に搭乗する前に、ラップトップコンピュータとスマートフォンの両方が送信および受信された電子メールに関して最新の状態となるように、自身のラップトップコンピュータおよびスマートフォンを電子メール交換サーバと同期させることができる。旅行者は、飛行機の中で、ラップトップコンピュータで電子メールを書くおよび返答する作業をすることができる。旅行者が、飛行中はネットワーク接続から遮断され得る自身のラップトップコンピュータでいくつかの電子メールを書く場合、それらの下書きの電子メールは、ネットワーク接続が利用可能になったときに電子メール交換サーバへと送信するために、キューに保持され得る。すると、ラップトップコンピュータは、スマートフォンが含まない下書きの電子メールを含むことになるので、旅行者のラップトップコンピュータおよびスマートフォンは、電子メールに関して同期されていない状態になる。着陸すると、旅行者のスマートフォンは、セルラーデータネットワークに接続し、電子メール交換サーバから最新の電子メールをダウンロードし得る。旅行者は、空港で自身のスマートフォンを使用して電子メールを書き返答することができ、セルラーデータネットワーク接続は、スマートフォンおよびサーバが電子メールに関して最新の状態に保たれることを可能にし得る。しかしながら、ラップトップコンピュータは、それがネットワーク接続を確立するまで、着信電子メールと送信電子メールの両方に関して、同期されないままである。このとき、ラップトップコンピュータ、スマートフォン、および電子メール交換サーバがすべて異なる電子メールデータセットを含み得るので、旅行者は、データ同期の問題に直面し得る。このデータ同期の問題は、旅行者を苛立たせ、旅行者の生産性を妨げ得る。
【発明の概要】
【０００４】
様々な実施形態のシステム、方法、およびデバイスが、モバイルコンピューティングデバイス間でデータが配信される方法を最適化する。様々な実施形態は、現在のコンピューティングデバイスの相互接続の性質を利用して、相互接続されたデバイスのグループの間でのデータセットの配信を最適化する。一実施形態では、複数のコンピューティングデバイスを有するユーザに向けられたデータセットが、電子メールサーバによってセグメント化され得、データセットの異なる部分が、ユーザのコンピューティングデバイスの各々に送信され得る。２つ以上のモバイルコンピューティングデバイスは次いで、互いにそれらのデータセットの部分を共有して、各コンピューティングデバイス上で完全なデータセットを再現することができる。別の実施形態では、完全なデータセットを各々記憶する複数のコンピューティングデバイスが、完全なデータセットの異なるセグメントについてのアップロード・レスポンシビリティ（upload responsibility）を各デバイスに割り当てることによって、完全なデータセットを単一のコンピューティングデバイス（たとえば、電子メールサーバ）にアップロードすることができる。複数のコンピューティングデバイスの各々は、割り当てられたセグメントを単一のコンピューティングデバイスにアップロードすることができる。単一のコンピューティングデバイスは次いで、それらのセグメントを組み合わせて、完全なデータセットを再現することができる。
【０００５】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な実施形態を示し、上記の概略的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【０００６】
【図１】様々な実施形態とともに使用するのに適したネットワークの通信システムブロック図。
【図２】データ配信を最適化するための第１の実施形態の方法を示すプロセスフロー図。
【図３】例示的なデータセット特性の概略図。
【図４】例示的なユーザ選好設定のデータ構造図。
【図５】例示的なデータセグメントマップ要素のデータ構造図。
【図６】データ配信を最適化するための第２の実施形態の方法を示す別のプロセスフロー図。
【図７】例示的なパケットヘッダ情報のデータ構造図。
【図８】データ配信を最適化するための第３の実施形態の方法を示す別のプロセスフロー図。
【図９】データ配信を最適化するための第４の実施形態の方法を示す別のプロセスフロー図。
【図１０】データ配信を最適化するための第５の実施形態の方法を示す別のプロセスフロー図。
【図１１】データ配信を最適化するための第６の実施形態の方法を示す別のプロセスフロー図。
【図１２】データ配信を最適化するための第７の実施形態の方法を示す別のプロセスフロー図。
【図１３Ａ】コンピューティングデバイス間のインタラクションを管理してデータ配信を最適化するための一実施形態の方法を示すプロセスフロー図。
【図１３Ｂ】コンピューティングデバイス間のインタラクションを管理してデータ配信を最適化するための一実施形態の方法を示すプロセスフロー図。
【図１４】データ配信を最適化するための第８の実施形態の方法を示す別のプロセスフロー図。
【図１５】データセグメントの送信を同期するための一実施形態の方法を示すプロセスフロー図。
【図１６】データセグメントの受信を同期するための一実施形態の方法を示すプロセスフロー図。
【図１７】データセットを同期するための第１の実施形態の方法を示すプロセスフロー図。
【図１８】データセットを同期するための第２の実施形態の方法を示す別のプロセスフロー図。
【図１９】コンピューティングデバイス間で同期保留データを割当ておよび送信するための一実施形態の方法を示すプロセスフロー図。
【図２０】アップロード・レスポンシビリティを割り当てるための第１の実施形態の方法を示すプロセスフロー図。
【図２１】アップロード・レスポンシビリティを割り当てるための第２の実施形態の方法を示す別のプロセスフロー図。
【図２２】アップロード・レスポンシビリティを割り当てるための第３の実施形態の方法を示す別のプロセスフロー図。
【図２３】アップロード・レスポンシビリティを割り当てるための第４の実施形態の方法を示す別のプロセスフロー図。
【図２４】アップロード・レスポンシビリティを割り当てるための第５の実施形態の方法を示す別のプロセスフロー図。
【図２５】コンピューティングデバイス間での同期保留データの送信を指示するための一実施形態の方法を示すプロセスフロー図。
【図２６】コンピューティングデバイス間で同期保留データを割当ておよび送信するための別の実施形態の方法を示す別のプロセスフロー図。
【図２７】電子メールの配信を最適化するための一実施形態の方法を示すプロセスフロー図。
【図２８Ａ】コンピューティングデバイス間のインタラクションを管理してデータ配信を最適化するための別の実施形態の方法を示す追加のプロセスフロー図。
【図２８Ｂ】コンピューティングデバイス間のインタラクションを管理してデータ配信を最適化するための別の実施形態の方法を示す追加のプロセスフロー図。
【図２９】様々な実施形態とともに使用するのに適した例示的なモバイルコンピューティングデバイスのコンポーネント図。
【図３０】様々な実施形態とともに使用するのに適した例示的なサーバのコンポーネント図。
【図３１】様々な実施形態とともに使用するのに適した別の例示的なモバイルコンピューティングデバイスのコンポーネント図。
【発明を実施するための形態】
【０００７】
様々な実施形態が添付の図面を参照して詳細に説明される。可能な限り、同じまたは同様の部分を指すために図面全体にわたって同じ参照番号が使用される。特定の例および実装形態になされる言及は、説明のためであり、本発明の範囲または特許請求の範囲を限定することを意図したものではない。
【０００８】
「例示的」という単語は、本明細書では、「例、事例、または例示として機能すること」を意味するために使用される。「例示的」として本明細書で説明されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきではない。
【０００９】
本明細書で使用される場合、「モバイルデバイス」および「モバイルコンピューティングデバイス」という用語は、携帯電話、タブレットコンピュータ、携帯情報端末（ＰＤＡ）、パームトップコンピュータ、ノートブックコンピュータ、ラップトップコンピュータ、パーソナルコンピュータ、ワイヤレス電子メール受信機および携帯電話受信機（たとえば、Ｂｌａｃｋｂｅｒｒｙ（登録商標）およびＴｒｅｏ（登録商標）デバイス）、マルチメディアインターネット対応携帯電話（たとえば、Ｂｌａｃｋｂｅｒｒｙ  Ｓｔｏｒｍ（登録商標））、マルチメディア対応スマートフォン（たとえば、Ａｎｄｒｏｉｄ（登録商標）およびＡｐｐｌｅ  ｉＰｈｏｎｅ（登録商標））、ならびに、プログラム可能プロセッサと、メモリと、通信送受信機と、ディスプレイとを含む同様の電子デバイスの、いずれか１つまたはすべてを指す。
【００１０】
様々な実施形態が、データを中央データベースサーバ（すなわち、電子メールサーバ）と同期する２つのモバイルコンピューティングデバイスで作業する旅行者の例を使用して本明細書で説明される。この例は、本実施形態のコンピューティングデバイス、システム、および方法の、様々なコンポーネントと機能とを説明するのに有用である。しかしながら、本実施形態および請求項の範囲は、特別に記載されない限り、そのような構成および用途に限定されない。他の可能な用途に関して本実施形態を説明することは、不要であり反復的である。したがって、旅行者という用語は、本実施形態が適用され得る任意のコンピューティングデバイスのユーザを全般的に指すために本明細書では使用され、特別に記載されない限り、請求項の範囲を制限することを意図したものではない。
【００１１】
同様に、電子メールという用語は、様々なワード、スプレッドシート、およびマルチメディアファイルを含む、本実施形態が適用され得るあらゆるデータを全般的に指すために本明細書では使用され、特別に記載されない限り、請求項の範囲を制限することを意図したものではない。
【００１２】
様々な実施形態は、サーバという用語を使用して本明細書で説明される。サーバという用語は、マスター交換サーバ、メールサーバ、ドキュメントサーバ、または任意の他のタイプのサーバのような、サーバとして機能することが可能な任意のコンピューティングデバイスを指すために使用される。サーバは、専用のコンピューティングデバイスであり得、または、コンピューティングデバイスをサーバとして動作させ得るアプリケーションを実行するコンピューティングデバイスであり得る。サーバアプリケーションは、全機能型のサーバアプリケーションであり得、または、モバイルコンピューティングデバイス上の動的なデータベースの間で同期サービスを提供するように構成される、簡易型サーバアプリケーションまたは二次的サーバアプリケーションであり得る。簡易型サーバまたは二次的サーバは、モバイルコンピューティングデバイス上で実装され得る、小型化されたバージョンのサーバのタイプの機能であってよく、これによって、モバイルコンピューティングデバイスは、本明細書で説明される機能を提供するのに必要な程度にのみ、インターネットサーバ（たとえば、企業の電子メールサーバ）として機能することを可能にする。
【００１３】
概して、様々な実施形態の方法、システム、およびデバイスが、コンピューティングデバイス間でデータが配信される方法を最適化する。様々な実施形態は、現在のコンピューティングデバイスの相互接続の性質を利用して、相互接続されたコンピューティングデバイスのグループの間でのデータセットの配信を最適化する。一実施形態では、複数のモバイルコンピューティングデバイスに向けられたデータセットは、セグメント化され得、データセットの異なる部分が、各モバイルコンピューティングデバイスに提供され得る。意図されたモバイルコンピューティングデバイスは次いで、それらのデータセット部分を共有して、各モバイルコンピューティングデバイス上で完全なデータセットを再現することができる。別の実施形態では、完全なデータセットを各々記憶する複数のモバイルコンピューティングデバイスは、完全なデータセットを単一のコンピューティングデバイスにアップロードする必要があり得る。複数のモバイルコンピューティングデバイスは、互いに、完全なデータセットのセグメントについてのアップロード・レスポンシビリティを割り当てることができ、複数のモバイルコンピューティングデバイスは各々、割り当てられたセグメントを単一のコンピューティングデバイスにアップロードすることができる。単一のコンピューティングデバイスは次いで、それらのセグメントを組み合わせて、完全なデータセットを再現することができる。
【００１４】
別の実施形態では、ユーザの２つ以上のモバイルコンピューティングデバイスは、モバイルコンピューティングデバイスのうちの１つが特定のデータセットに関して他のモバイルコンピューティングデバイスと同期していないときを認識するように構成され得る。そのような状況が検出されると、モバイルコンピューティングデバイスは、両方のモバイルコンピューティングデバイスが共通のデータセットを反映するように、更新または同期を達成することができる。別の実施形態では、モバイルコンピューティングデバイスは、ユーザによって承認された２つのモバイルコンピューティングデバイスの間でのみ同期が達成されるように、自身を他のモバイルコンピューティングデバイスに対して検証することができる。別の実施形態では、モバイルコンピューティングデバイスは、サーバなど、別のコンピューティングデバイスとの同期を保留している１つのモバイルコンピューティングデバイスにおいて生成された、一時データを受信するように構成され得る。別の実施形態では、モバイルコンピューティングデバイスは、各モバイルコンピューティングデバイス上で実装されるアプリケーションフォーマットに合致するように、アプリケーション間でデータを変換するように構成され得る。さらなる実施形態では、データ配信の全体的な速度またはコストを最適化するために、データ配信の交互実行または負荷バランシングが達成され得る。さらなる実施形態では、モバイルコンピューティングデバイスの１つまたは複数において実装される条件付きのデータ配信機能が、複数の参加者からまたは複数参加者の電子メールスレッドから同時に発生するデータ配信の衝突を回避することができる。
【００１５】
図１は、様々な実施形態とともに使用するのに適したネットワークシステム１００を示す。ネットワークシステム１００は、サーバ１０２と、スマートフォン１０４およびラップトップコンピュータ１０６という２つのモバイルコンピューティングデバイスという、３つのデバイスを含み得る。様々な実施形態が、サーバ１０２、スマートフォン１０４、およびラップトップコンピュータ１０６に関して特に有用であるが、実施形態はこれらのデバイスには限定されず、方法に対する変更を伴わず任意のデバイスにおいて実施され得る。加えて、様々な実施形態について、３つのデバイスの間のインタラクションに関して論じるが、実施形態は３つのデバイスだけに限定されず、方法は、制限されない数のデバイスからなるネットワークシステムにおいて実施され得る。
【００１６】
サーバ１０２は、マスター交換サーバ、メールサーバ、ドキュメントサーバ、または任意の他のタイプの中央データベースサーバであり得る。サーバ１０２およびスマートフォン１０４は、通信経路１０８を介して互いにデータを交換することができる。ラップトップコンピュータ１０６およびサーバ１０２は、通信経路１１０を介して互いにデータを交換することができる。ラップトップコンピュータ１０６およびスマートフォン１０４は、通信経路１１２を介して互いに通信することができる。通信経路１０８、１１０、および１１２は、デバイス間でデータを送信するために使用され得る。通信経路１０８、１１０、および１１２は、当技術分野において知られている任意のタイプの接続であってよい。
【００１７】
一例として、サーバ１０２に接続するために使用される通信経路１０８および１１０は、スマートフォン１０４および／またはラップトップコンピュータ１０６とＷｉ−Ｆｉ（登録商標）アクセスポイント１１８との間のワイヤレスＷｉ−Ｆｉ接続のような、ワイヤレス接続であってよい。Ｗｉ−Ｆｉアクセスポイント１１８は、インターネット１１４に接続し得る。サーバ１０２はインターネット１１４に接続されることができ、このようにして、データは、Ｗｉ−Ｆｉアクセスポイント１１８を介してスマートフォン１０４および／またはラップトップコンピュータ１０６から／へ、ならびに、インターネット１１４を通じてサーバ１０２へ／から、当技術分野でよく知られている方法によって送信され得る。追加の例として、通信経路１０８および１１０は、セルラーネットワークを使用して確立され得る。スマートフォン１０４および／またはラップトップコンピュータ１０６は、インターネット１１４に接続し得るセルラーネットワークセルタワーまたは基地局１１６に、データをワイヤレスに送信することができる。サーバ１０２はインターネット１１４に接続されることができ、このようにして、データは、ワイヤレスセルラータワーまたは基地局１１６を介してスマートフォン１０４および／またはラップトップコンピュータ１０６から／へ、ならびに、インターネット１１４を通じてサーバ１０２へ／から、当技術分野でよく知られている方法によって送信され得る。さらなる例として、ラップトップコンピュータ１０６とサーバ１０２との間の通信経路１１０は、イーサネット（登録商標）接続１２６のような、有線のローカルエリアネットワーク接続であり得る。
【００１８】
一例として、スマートフォン１０４とラップトップ１０６との間の通信経路１１２は、Ｂｌｕｅｔｏｏｔｈ（登録商標）接続１２０のような、ワイヤレスデータリンクであり得る。追加の例として、スマートフォン１０４とラップトップコンピュータ１０６との間の通信経路１１２は、Ｗｉ−Ｆｉアクセスポイント１２２を介したワイヤレスＷｉ−Ｆｉデータリンクであり得る。このようにして、データは、スマートフォン１０４および／またはラップトップコンピュータ１０６から／へ、Ｗｉ−Ｆｉアクセスポイント１２２を介して、当技術分野でよく知られている方法によって送信され得る。追加の例として、通信経路１１２はまた、デバイス間に接続されたＵＳＢケーブル１２４のような、ラップトップコンピュータ１０６とスマートフォン１０４との間の有線接続であり得る。
【００１９】
通信経路１０８、１１０、および１１２は、ＵＳＢ接続、ＦｉｒｅＷｉｒｅ接続、またはローカルエリアネットワーク接続（たとえば、イーサネット）のような任意の有線接続、さらには、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ＺｉｇＢｅｅ、セルラー、ＣＤＭＡ、ＴＤＭＡ、ＧＳＭ（登録商標）、ＰＣＳ、Ｇ−３、Ｇ−４、ＬＴＥ、または任意の他のタイプの有線接続もしくはワイヤレス接続のような、任意のワイヤレス通信リンクであり得る。様々な態様が様々な実施形態とともに特に有用であるが、通信経路１０８、１１０、および１１２はこれらの通信技術だけには限定されず、通信経路１０８、１１０、および１１２は、本実施形態の方法の実装形態を変更することなく、当技術分野で知られている任意の通信技術を使用して確立され得る。
【００２０】
図２は、３つ以上のコンピューティングデバイスの間でのデータ配信を最適化するための、一実施形態の方法２００を示す。一例として、方法２００は、サーバ１０２と、スマートフォン１０４およびラップトップコンピュータ１０６のような２つ以上のモバイルコンピューティングデバイスとの間で、実施され得る。サーバ１０２、スマートフォン１０４、およびラップトップコンピュータ１０６に関して論じるが、方法２００は、他のデバイスのためのデータサーバとして動作する能力を有する任意のデバイスにおいて実施され得る。ブロック２０２において、サーバ１０２が、モバイルコンピューティングデバイスに通信されるべきデータセットを識別することができる。データセットは、コンテンツオブジェクト、電子メール、複数行の電子メール（lines of e-mails）、テキスト、テキストのブロック、ウェブページ、ウェブページの部分、ｚｉｐファイル、スプレッドシート、ドキュメント、ドキュメントの部分、ファイル、および／またはファイルの部分のような、データの任意のグループを含み得る。ブロック２０４において、サーバ１０２は、データセットの特性を決定することができる。データセット特性は、以下でさらに論じられる様々な特性を含み得る。ブロック２０６において、サーバ１０２は、データセットをセグメントへと分割することができる。セグメントは、データセット内のデータの任意のグルーピングを含み得るので、ブロック２０６におけるデータセットの分割は、ブロック２０４において決定されたデータセット特性に基づいて実行されることができ、または、データセットは、セットセグメントサイズのような所定のパラメータに従って分割されることができる。ブロック２０８において、サーバ１０２は、識別情報（「ＩＤ」）を各セグメントに割り当てることができる。このセグメントＩＤは、サーバ１０２によって生成される、固有の番号、名前、または識別要素であり得る。加えて、セグメントＩＤは、セグメントのコンテンツ、セグメントの作成の時間、サーバ１０２、またはセグメントサイズに関する情報のような、セグメントについての情報を格納または提供し得る。ブロック２１０において、サーバ１０２は、セグメントＩＤを各セグメントに書き込むことができる。セグメントＩＤは、セグメント全体を表すデータへと書き込まれてよく、または、個々のセグメントを構成する各データ要素へと書き込まれてよい。
【００２１】
ブロック２１２において、サーバ１０２は、データセットから作成されたセグメントの総数を決定することができる。ブロック２１４において、サーバ１０２は、利用可能なモバイルコンピューティングデバイスを決定することができる。利用可能なモバイルコンピューティングデバイスは、たとえば、サーバ１０２に接続され得る、スマートフォン１０４およびラップトップコンピュータ１０６であり得る。あるいは、利用可能なモバイルコンピューティングデバイスは、サーバ１０２に登録されているが現在はサーバ１０２に接続されていない可能性のある、モバイルコンピューティングデバイスであり得る。判定ブロック２１６において、サーバは、モバイルコンピューティングデバイスが同期に対応するかどうかを判定することができる。同期対応モバイルコンピューティングデバイスは、別のモバイルコンピューティングデバイスと情報を同期／交換することが可能なモバイルコンピューティングデバイスであり得る。たとえば、同期対応スマートフォン１０４は、自身のデータセットを、同期対応ラップトップコンピュータ１０６のデータセットと同期することが可能であり得る。利用可能なモバイルコンピューティングデバイスが同期対応ではない場合（すなわち、判定ブロック２１６＝「いいえ」の場合）、ブロック２１８において、サーバ１０２は、データセット全体により独立にモバイルコンピューティングデバイスを更新することができる。
【００２２】
利用可能なモバイルコンピューティングデバイスが同期対応である場合（すなわち、判定ブロック２１６＝「はい」の場合）、ブロック２２０において、サーバ１０２は、モバイルコンピューティングデバイスの地理的位置を決定することができる。サーバ１０２は、モバイルコンピューティングデバイスによってサーバ１０２に提供される全地球測位システム（ＧＰＳ）情報によって、もしくはモバイルコンピューティングデバイスがサーバ１０２と通信し得る際に通る接続についての情報（すなわち、モバイルコンピューティングデバイスがどのセルネットワークノードを使用している可能性があるか）を参照することによって、もしくは各モバイルコンピューティングデバイスの位置を特定するモバイルコンピューティングデバイスのユーザ入力を通じて、または他の方法によって、モバイルコンピューティングデバイスの地理的位置を決定することができる。判定ブロック２２２において、サーバは、それらのモバイルコンピューティングデバイスが同じ位置にあるかどうかを判定することができる。例として、同じ位置にあることは、モバイルコンピューティングデバイスのＧＰＳ情報、セルラーネットワーク情報、またはユーザ入力を比較することによって、判定され得る。一例として、サーバ１０２は、ＧＰＳ情報に基づいて、２つのモバイルコンピューティングデバイスがある距離閾値設定よりも離れていると判定することができる。この距離閾値設定は、同じ位置にあることを定義する、デバイス間の最大の距離であり得る。モバイルコンピューティングデバイスが同じ位置にない場合（すなわち、判定ブロック２２２＝「いいえ」の場合）、ブロック２１８において、サーバ１０２は、データセット全体により独立にモバイルコンピューティングデバイスを更新することができる。
【００２３】
モバイルコンピューティングデバイスが同じ位置にある場合（すなわち、判定ブロック２２２＝「はい」の場合）、ブロック２２４において、サーバ１０２は、モバイルコンピューティングデバイスの接続帯域幅を決定することができる。あるいは、サーバ１０２は、モバイルコンピューティングデバイスがサーバ１０２と通信するために使用している可能性のある接続のタイプに基づいて、各モバイルコンピューティングデバイスについて推定されるモバイルコンピューティングデバイス接続帯域幅を決定することができる。ブロック２２６において、サーバ１０２は、ユーザ選好設定を決定することができる。ユーザ選好設定は、更新のために使用すべき接続またはデバイスに関連し得る。ユーザ選好設定については以下で論じられる。
【００２４】
ブロック２２８において、サーバ１０２は、データセグメントを各モバイルコンピューティングデバイスに割り当てることができる。データセグメントの各モバイルコンピューティングデバイスへの割当ては、以下で論じられる様々な考慮事項に基づいて行われ得る。ブロック２３０において、サーバは、各データセグメントと、各セグメントが割り当てられ得るモバイルコンピューティングデバイスまたは以下で論じられる他の要素とを特定する、データセグメントマップを生成することができる。ブロック２３２において、サーバ１０２は、データセグメント割当て情報を各データセグメントに書き込むことができる。データセグメント割当て情報は、セグメント全体を表すデータへと書き込まれてよく、または、個々のセグメントを構成する各データ要素へと書き込まれてよい。ブロック２３４において、サーバ１０２は、データセグメントをそれらの割り当てられたモバイルコンピューティングデバイスに送信することができる。このようにして、各モバイルコンピューティングデバイスは、異なるデータセグメントを受信することができる。一例として、ラップトップコンピュータ１０６は、データセグメントの第１の部分を受信することができ、スマートフォン１０４は、データセグメントの第２の部分を受信することができるので、第１の部分と第２の部分の組合せによりデータセット全体が得られる。ブロック２３６において、サーバ１０２は、データセグメントマップを各モバイルコンピューティングデバイスに送信することができる。このようにして、各モバイルコンピューティングデバイスは、データセグメントマップ全体のコピーを受信することができる。データセグメントマップは、各モバイルコンピューティングデバイスがサーバから元のデータセットのすべてのセグメントを受信できない場合であっても、個々のモバイルコンピューティングデバイスがコンテンツまたは元のデータセットを決定することを可能にし得る。
【００２５】
ブロック２３８において、サーバ１０２は送信されたデータセグメントのコピーを記憶することができ、ブロック２４０において、サーバ１０２はデータセグメントマップのコピーを記憶することができる。このようにして、サーバ１０２は、今後の単一デバイスセッション、または、デバイス接続が失敗した場合の割り当てられたデータセグメントの再送信をサポートすることが可能となり得る。
【００２６】
図３は、あり得るデータセット特性３０２を示す概略図である。データセット特性３０２は、データセットの計算された全体のサイズ３０４を含み得る。全体のサイズ３０４は、バイトで、または、データセットの全体のサイズ３０４を表す任意の他の単位で計算され得る。データセット特性３０６はまた、オブジェクトの数２０６、オブジェクトのタイプ３０８、オブジェクトの優先度３１０、および個々のオブジェクトのサイズ３１２も含み得る。
【００２７】
図４は、サーバ１０２のメモリに記憶され得る、ユーザ選好設定４０２のあり得る要素を示すデータ構造図である。ユーザ選好設定４０２は、更新すべきデバイスのリスト４０４、デバイス更新の順序４０６、接続の選好４０８、速度の選好４１０、デバイスに対するデータ制限４１２、またはデータの選好４１４を含み得る。一例として、更新すべきデバイスのリスト４０４は、選択された数の、ユーザのモバイルコンピューティングデバイスを特定することができ、どのデバイスが更新されるかをユーザが制御することを可能にする。一例として、デバイス更新の順序４０６は、特定の順序または優先度の順序で選択されたデバイスを更新するようにサーバ１０２に指示することができる。一例として、接続の選好４０８は、ＣＤＭＡ接続ではなくＷｉ−Ｆｉ接続を使用するようにサーバ１０２に指示することができる。あるいは、接続の選好４０８は、利用可能な接続のグループの中で最も安価な接続を使用するようにサーバ１０２に指示することができる。一例として、速度の選好４１０は、利用可能な最速の接続を使用するようにサーバ１０２に指示することができる。一例として、デバイスに対するデータ制限４１２は、サーバ１０２からデバイスに送信するデータの最大の量を設定し得る。一例として、データの選好４１４は、電子メールのような特定のデータタイプを、スマートフォン１０４のような特定のモバイルデバイスに割り当てるように、サーバ１０２に指示することができる。
【００２８】
図５は、あり得るデータセグメントマップ要素５０２を示すデータ構造図である。データセグメントマップ要素５０２は、セグメントの総数５０４と、セグメントＩＤ  ５０６と、データセット特性５０８と、セグメントデバイス割当て５１０と、セグメントサイズ５１２と、セグメント作成タイムスタンプ５１４と、サーバ検証キー５１６とを含み得る。データセグメントマップ要素５０２は、データセットの再作成、データセットの特定、またはサーバ１０２およびモバイルデバイスのいずれかとの間の通信を支援するために、サーバ１０２またはモバイルデバイスによって、個別にまたは組み合わせて使用され得る。具体的には、セグメント作成タイムスタンプ５１４は、モバイルデバイスが確実に最新のセグメントを有することを可能にし得る。サーバ検証キー５１６は、一緒に通信するときにモバイルデバイスのための信用／照合ツールとして動作し、セキュリティ機能として働くことができる。サーバ検証キー５１６は、他のモバイルコンピューティングデバイスに対してセグメントおよび／またはモバイルコンピューティングデバイスを検証するための方法として、サーバ１０２によって提供され得る。サーバ検証キー５１６は、サーバ１０２から提供される暗号化されたキーであり得る。第２のモバイルコンピューティングデバイスからサーバ検証キー５１６を受信するモバイルコンピューティングデバイスは、サーバ検証キー５１６を使用して、第２のモバイルコンピューティングデバイス上の情報が実際にサーバ１０２において発生したことを確認することが可能であり得る。
【００２９】
図６は、ブロック６０２においてサーバ１０２が各セグメントのためのパケットを作成し得ることを除いて、図２を参照して上で説明された方法２００と同様の、データ配信を最適化するための一実施形態の方法６００を示す。ブロック６０４において、サーバ１０２は、ヘッダ情報を各パケットに書き込むことができる。ヘッダ情報は、以下でさらに論じられるように、様々なタイプの情報を含み得る。ブロック２１４において、サーバ１０２は、利用可能なモバイルコンピューティングデバイスを決定することができる。ブロック６０６において、サーバ１０２は、上記で説明したブロック２２８でデータセグメントが割り当てられた方法と同様の方式で、パケットを各モバイルコンピューティングデバイスに割り当てることができる。ブロック２３０において、サーバ１０２は、データセグメントマップを生成することができる。ブロック６０８において、サーバ１０２は、パケットを割り当てられたモバイルコンピューティングデバイスに送信することができる。ブロック２３６において、サーバ１０２は、データセグメントマップをモバイルコンピューティングデバイスに送信することができる。
【００３０】
図７は、あり得るパケットヘッダ情報７０２を示すデータ構造図である。パケットヘッダ情報７０２は、セグメントＩＤ  ７０４と、マスターデータセットＩＤ  ７０６と、サーバＩＤ  ７０８と、セグメント作成タイムスタンプ７１０と、リアセンブリ命令７１２と、パケット作成タイムスタンプ７１４とを含み得る。マスターデータセットＩＤ  ７０６は、セグメントが作成された元のデータセット全体を識別するための、サーバ１０２によって作成された固有の識別情報であり得る。サーバＩＤ  ７０８は、パケットを作成したサーバ１０２と関連付けられた固有の識別情報であり得る。リアセンブリ命令７１２は、パケットが解凍されることが意図される順序、または、パケットに含まれるセグメントのデータセット全体の中での配置を制御する、命令であり得る。パケット作成タイムスタンプ７１４は、パケットが作成された時間のインジケーションであり得る。
【００３１】
図８は、図２を参照して上で説明された方法２００とともに使用され得る、データ配信を最適化するための一実施形態の方法８００を示す。ブロック２２４において上述したように、サーバ１０２は、各モバイルコンピューティングデバイスのためのモバイルコンピューティングデバイス接続帯域幅を決定することができる。ブロック８０２において、サーバ１０２は、すべてのモバイルコンピューティングデバイスに関する利用可能な総帯域幅を決定することができる。一例として、サーバ１０２は、個々のモバイルコンピューティングデバイスの接続帯域幅を合計して、すべてのモバイルコンピューティングデバイスに関する利用可能な総帯域幅を決定することができる。ブロック８０４において、サーバ１０２は、利用可能な総帯域幅の百分率としての各モバイルコンピューティングデバイスの接続帯域幅に比例して、データセグメントを各モバイルコンピューティングデバイスに割り当てることができる。一例として、２つのモバイルコンピューティングデバイスの間の利用可能な総帯域幅の７０％を占めるサーバに対する接続を有するモバイルコンピューティングデバイスは、７０％のデータセグメントを割り当てられ得るが、利用可能な総帯域幅の３０％を占めるサーバに対する接続を有するモバイルコンピューティングデバイスは、３０％のデータセグメントを割り当てられ得る。サーバ１０２は次いで、上述の方法２００または６００により、データセグメントをそれぞれのモバイルコンピューティングデバイスに送信することができる。
【００３２】
図９は、図２を参照して上で説明された方法２００とともに使用され得る、データ配信を最適化するための一実施形態の方法９００を示す。ブロック２２４において上記で説明したように、サーバ１０２は、モバイルコンピューティングデバイスの接続帯域幅を決定することができる。ブロック９０２において、サーバ１０２は、最短の推定ダウンロード時間をもたらすデータセグメントの割当てを決定することができる。ブロック９０４において、サーバ１０２は、決定された最短のダウンロード時間に基づいて、データセグメントを各モバイルコンピューティングデバイスに割り当てることができる。サーバ１０２は次いで、上述の方法２００または６００により、データセグメントをそれぞれのモバイルコンピューティングデバイスに送信することができる。
【００３３】
図１０は、図２を参照して上で説明された方法２００とともに使用され得る、データ配信を最適化するための一実施形態の方法１０００を示す。ブロック１００２において、サーバ１０２は、モバイルコンピューティングデバイスの接続のタイプを決定することができる。一例として、サーバ１０２とスマートフォン１０４との間の接続は３Ｇ接続であり得、サーバ１０２とラップトップコンピュータ１０６との間の接続はＷｉ−Ｆｉ接続であり得る。ブロック１００４において、サーバ１０２は、各モバイルコンピューティングデバイス接続と関連付けられるコストを決定することができる。一例として、３Ｇ接続はその接続を通じて送信されるデータについてユーザに請求される料金を発生させ、Ｗｉ−Ｆｉ接続を通じて送信されるデータについては料金が請求されないという情報を、サーバ１０２は与えられ得る。ブロック１００６において、サーバ１０２は、最低のダウンロード総コストをもたらすデータセグメントの割当てを決定することができる。ブロック１００８において、サーバ１０２は、決定された最低のダウンロード総コストに基づいて、データセグメントを各モバイルコンピューティングデバイスに割り当てることができる。このようにして、方法１０００を実施するサーバ１０２は、コスト節約モードで動作することができる。サーバ１０２は次いで、上述の方法２００または６００により、データセグメントをそれぞれのモバイルコンピューティングデバイスに送信することができる。
【００３４】
図１１は、データセグメンテーションがモバイルコンピューティングデバイス接続帯域幅の変化に対処し得ることを除き、図２および図８を参照して上記で説明された方法２００および８００と同様の、データ配信を最適化するための一実施形態の方法１１００を示す。上述したように、ブロック２３４において、サーバ１０２は、データセグメントを割り当てられたモバイルコンピューティングデバイスに送信することができる。判定ブロック１１０２において、サーバ１０２は、任意のモバイルコンピューティングデバイス接続の帯域幅の変化が生じたかどうかを判定することができる。帯域幅の変化が生じた場合（すなわち、判定ブロック１１０２＝「はい」の場合）、ブロック２２４において、サーバ１０２は、モバイルコンピューティングデバイス接続帯域幅を再び決定することができる。ブロック８０２において、サーバ１０２は、利用可能な総帯域幅を再び決定することができる。ブロック８０４において、サーバ１０２は、利用可能な総帯域幅の百分率としての各モバイルコンピューティングデバイスの接続帯域幅に比例して、各モバイルコンピューティングデバイスにデータセグメントを再び割り当てることができ、ブロック２３４において、サーバ１０２は、データセグメントを、それらの現在新たに割り当てられた可能性のあるモバイルコンピューティングデバイスに送信することができる。このようにして、サーバ１０２は、帯域幅がデータセグメントの送信の間に変化するにつれて、データセグメントの割当てを継続的に調整することができる。
【００３５】
帯域幅が任意のモバイルコンピューティングデバイスにおいて変化しない場合（すなわち、判定ブロック１１０２＝「いいえ」の場合）、ブロック１１０４において、サーバ１０２はデータセグメントマップを生成することができる。このようにして、データセグメントマップは、データセグメントの割当てが終了するまで生成されない。ブロック２３６において、サーバ１０２は、データセグメントマップをモバイルデバイスに送信することができる。
【００３６】
図１２は、データセグメンテーションがモバイルコンピューティングデバイス接続の喪失を補償し得ることを除いて、図１１を参照して上で説明された方法１１００と同様の、データ配信を最適化するための一実施形態の方法１２００を示す。上述したように、ブロック２３４において、サーバ１０２は、データセグメントを割り当てられたモバイルコンピューティングデバイスに送信することができる。判定ブロック１２０２において、サーバは、モバイルコンピューティングデバイス接続が失われたかどうかを判定することができる。モバイルコンピューティングデバイス接続が失われた場合（すなわち、判定ブロック１２０２＝「はい」の場合）、ブロック１２０４において、サーバ１０２は、残りのモバイルコンピューティングデバイスにフルダウンロードクエリを送信することができる。一例として、フルダウンロードクエリは、データセット全体のフルダウンロードに賛同すること、または賛同しないことをユーザに促すための、モバイルコンピューティングデバイス上で実行されるアプリケーションに対するインジケーションであり得る。モバイルコンピューティングデバイス接続が失われていない場合（すなわち、判定ブロック１２０２＝「いいえ」の場合）、ブロック１１０４において、サーバ１０２はデータセグメントマップを生成することができ、ブロック２３５において、サーバ１０２は、データセグメントマップをモバイルコンピューティングデバイスに送信することができる。サーバ１０２は次いで、上述の方法２００または６００により、データセグメントをそれぞれのモバイルコンピューティングデバイスに送信することができる。
【００３７】
判定ブロック１２０６において、サーバ１０２は、フルダウンロードインジケーションが受信されるかどうかを判定することができる。一例として、フルダウンロードインジケーションは、データセット全体のフルダウンロードをユーザが要求することを示す、モバイルコンピューティングデバイス上で実行されるアプリケーションから受信されるメッセージであり得る。フルダウンロードインジケーションが受信される場合（すなわち、判定ブロック１２０６＝「はい」の場合）、ブロック１２０８において、サーバは、残りの接続されたモバイルコンピューティングデバイスにデータセット全体を送信することができる。フルダウンロードインジケーションが受信されない場合（すなわち、判定ブロック１２０６＝「いいえ」の場合）、ブロック１１０４において、サーバ１０２はデータセグメントマップを生成することができ、ブロック２３５において、サーバ１０２は、データセグメントマップをモバイルコンピューティングデバイスに送信することができる。サーバ１０２は次いで、上述の方法２００または６００により、データセグメントをそれぞれのモバイルコンピューティングデバイスに送信することができる。
【００３８】
図１３Ａおよび図１３Ｂは、サーバ１０２と、スマートフォン１０４と、ラップトップコンピュータ１０６との間のインタラクションを管理して、データ配信を最適化するための、別の実施形態の方法１３００を示す。ブロック２０２、２０６、２０８、および２１０において、サーバ１０２は、図２を参照して上で説明された方法２００の動作を実行することができる。ブロック１３０２およびブロック１３０４において、サーバ１０２とスマートフォン１０４とは、データ通信接続を確立することができる。接続は、図１に関して前述した接続のような、データを送信するのに適した任意の接続であってよい。ブロック１３０６およびブロック１３０８において、サーバ１０２とラップトップコンピュータ１０６とは、データ通信接続を確立することができる。接続は、図１に関して前述した接続のような、データを送信するのに適した任意の接続であってよい。ブロック２１４、２２８、２３０、および２３２において、サーバ１０２は、図２を参照して上で説明された方法２００の動作を実行することができる。
【００３９】
ブロック１３１０において、サーバ１０２は、割り当てられたデータセグメントをスマートフォン１０４に送信することができる。ブロック１３１２において、スマートフォン１０４は、割り当てられたデータセグメントを受信することができる。ブロック１３１４において、サーバ１０２は、ラップトップコンピュータ１０６に割り当てられた割当て済みデータセグメントを送信することができる。ブロック１３１６において、ラップトップコンピュータ１０６は、割り当てられたデータセグメントを受信することができる。ブロック１３１８において、サーバ１０２は、データセグメントマップをスマートフォン１０４に送信することができる。ブロック１３２０において、スマートフォン１０４は、データセグメントマップを受信することができる。ブロック１３２２において、サーバ１０２は、データセグメントマップをラップトップコンピュータ１０６に送信することができる。ブロック１３２４において、ラップトップコンピュータ１０６は、データセグメントマップを受信することができる。
【００４０】
ブロック１３２６およびブロック１３２８において、スマートフォン１０４およびラップトップコンピュータ１０６は、互いにデータ通信接続を確立することができる。接続は、図１に関して前述した接続のような、データを送信するのに適した任意の接続であってよい。ブロック１３３０において、スマートフォン１０４は、どのデータセグメントをラップトップコンピュータ１０６に送信するべきかを決定することができる。この決定は、スマートフォン１０４によって受信されるデータセグメントマップ中の情報に少なくとも一部基づき得る。ブロック１３３２において、ラップトップコンピュータ１０６は、スマートフォン１０４に送信すべきデータセグメントを選択することができる。この選択は、ラップトップコンピュータ１０６によって受信されるデータセグメントマップ中の情報に少なくとも一部基づき得る。ブロック１３３４において、スマートフォン１０４は、選択されたデータセグメントをラップトップコンピュータ１０６に送信することができ、ブロック１３３６において、ラップトップコンピュータ１０６はデータセグメントを受信することができる。ブロック１３３８において、ラップトップコンピュータ１０６は、選択されたデータセグメントをスマートフォン１０４に送信することができ、ブロック１３４０において、スマートフォン１０４はデータセグメントを受信することができる。このようにして、サーバ１０２上に存在するフルデータセットが、スマートフォン１０４とラップトップコンピュータ１０６の両方においてアセンブルされ得る。
【００４１】
図１４は、図２を参照して上で説明された方法２００とともに使用され得る、データ配信を最適化するための一実施形態の方法１４００を示す。ブロック１４０２において、サーバ１０２は、サーバ１０２がそれとの接続を確立したモバイルコンピューティングデバイスのタイプを決定することができる。一例として、サーバ１０２は、モバイルコンピューティングデバイスが２つの異なるタイプのデバイス、すなわち、スマートフォン１０４およびラップトップコンピュータ１０６であると決定することができる。ブロック１４０４において、サーバ１０２は、モバイルコンピューティングデバイスのタイプに基づいて、送信すべき各データセグメントの量を決定することができる。このようにして、サーバは、デバイスのタイプに基づいて、各モバイルコンピューティングデバイスに送信されるべきデータの部分を決定することができる。一例として、スマートフォン１０４は、電子メールメッセージの最初の３行を受信し表示することのみが可能であり得る。スマートフォン１０４が接続されているとサーバ１０２が判定したときには、サーバ１０２は、限られた量のデータセグメント（すなわち、電子メールメッセージの最初の３行）のみがスマートフォン１０４に送信されるべきであると決定することができる。ブロック２２８において、サーバ１０２は、データセグメントを各モバイルデバイスに割り当てることができる。ブロック１４０６において、サーバ１０２は、決定されたデバイス能力に基づいて、モバイルコンピューティングデバイスに割り当てられた各々のデータセグメントの適切な量を送信することができる。このようにして、データセグメントの一部分（すなわち、決定された量）のみが、モバイルコンピューティングデバイスに送信され得る。
【００４２】
図１５は、第１のコンピューティングデバイスから第２のコンピューティングデバイスへのデータセグメントの送信を同期するための、一実施形態の方法１５００を示す。一例として、方法１５００は、スマートフォン１０４およびラップトップコンピュータ１０６のような２つのモバイルコンピューティングデバイスの間で実施され得る。２つのモバイルコンピューティングデバイス（たとえば、スマートフォン１０４およびラップトップコンピュータ１０６）に関して論じられるが、方法１５００は、任意の数のコンピューティングデバイス、モバイル機器、または他のものの間で実施され得る。ブロック１５０２において、スマートフォン１０４のような第１のモバイルコンピューティングデバイスは、ラップトップコンピュータ１０６のような別のモバイルコンピューティングデバイスへの利用可能なデータ通信リンクを検出することができる。第１のモバイルコンピューティングデバイスは、Ｂｌｕｅｔｏｏｔｈ接続のような事前に確立された接続を通じて、第２のモバイルコンピューティングデバイスへのデータリンクの利用可能性を検出することができる。判定ブロック１５０４において、第１のモバイルコンピューティングデバイスは、自身が第２のモバイルコンピューティングデバイスに関するデータセグメントを有するかどうかを判定することができる。一例として、ブロック１５０４における判定は、ラップトップコンピュータ１０６に関するデバイスＩＤを、データセグメントがラップトップコンピュータ１０６に提供されるべきかどうかを示し得るスマートフォン１０４のメモリ中に存在するデータセグメントマップと比較することによって、行われ得る。第１のモバイルコンピューティングデバイスが第２のモバイルコンピューティングデバイスに関するデータセグメントを有さない場合（すなわち、判定ブロック１５０４＝「いいえ」の場合）、第１のモバイルコンピューティングデバイスはブロック１５０２に戻り、別のモバイルコンピューティングデバイスの検出を待機することができる。
【００４３】
第２のモバイルコンピューティングデバイスに関するデータセグメントがある場合（すなわち、判定ブロック１５０４＝「はい」の場合）、オプションの実施形態では、ブロック１５０６において、第１のモバイルコンピューティングデバイスは、第２のモバイルコンピューティングデバイスへの利用可能なモバイルデバイスデータ通信リンク接続を決定することができる。モバイルコンピューティングデバイスは、２つ以上のデータ通信リンクを確立する能力を有することがあり、２つ以上のデータ通信リンクが第１のモバイルコンピューティングデバイスと第２のモバイルコンピューティングデバイスとの間で確立されることがある。一例として、スマートフォン１０４は、ラップトップコンピュータ１０６とのＷｉ−Ｆｉ接続とＢｌｕｅｔｏｏｔｈ接続の両方が存在すると判定し得る。ブロック１５０８において、このオプションの実施形態では、第１のモバイルコンピューティングデバイスは、第１のモバイルコンピューティングデバイスと第２のモバイルコンピューティングデバイスとの間で確立された利用可能なモバイルデバイスデータ通信リンク接続を選択することができる。一例として、ブロック１５０８において、スマートフォン１０４はＢｌｕｅｔｏｏｔｈ接続を選択することができる。通信データリンク接続の選択は、任意の方式で行われてよく、コストまたは速度のような、図８、図９、および図１０に関して上記で説明したものと同様の考慮事項に基づいて、行われてよい。
【００４４】
ブロック１５１０において、第１のモバイルコンピューティングデバイスは、データ待機メッセージを第２のモバイルコンピューティングデバイスに送信することができる。データ待機メッセージは、第１のデバイスが第２のデバイスに向けられたデータセグメントを有することを、第２のデバイスに通知することができる。加えて、データ待機メッセージは、第２のモバイルコンピューティングデバイスに向けられたデータセグメントのリスト、または、そのサイズ、作成日、もしくはコンテンツのタイプのようなデータセグメントについての情報、あるいは、第２のモバイルコンピューティングデバイスに向けられたデータセグメントに関する任意の他の情報を含み得る。ブロック１５１２において、第１のモバイルコンピューティングデバイスは、検証要求を第２のモバイルコンピューティングデバイスから受信することができる。検証要求は、データ待機メッセージに応答した、第２のモバイルコンピューティングデバイスからの要求であり得る。検証要求は、第１のモバイルコンピューティングデバイスの信頼性を検証するために、または第１のモバイルコンピューティングデバイス上に存在するデータの信頼性を検証するために第２のモバイルデバイスによって使用され得る情報に関する要求であり得る。一例として、検証要求は、第１のモバイルコンピューティングデバイスに、データセグメントの発生元のサーバの識別情報を提供することを要求することができる。第２のモバイルコンピューティングデバイスは、サーバの識別情報を使用して、セグメントが承認されたサーバで発生したことを検証することができ、したがって、検証要求は、承認されていない参加者がデータを提供または受信することを防ぐことができる。
【００４５】
ブロック１５１４において、第１のモバイルコンピューティングデバイスは、検証要求を受信したことに応答して、データセグメントマップを第２のモバイルコンピューティングデバイスに送信することができる。データセグメントマップは、第１のモバイルコンピューティングデバイスの信頼性を検証するために、または第１のモバイルコンピューティングデバイス上に存在するデータの信頼性を検証するために第２のモバイルコンピューティングデバイスによって使用されるべき情報を含み得る。一例として、データセグメントマップは、データセグメントの発生元のサーバを識別するためのサーバＩＤを含み得る。第２のモバイルコンピューティングデバイスは、サーバＩＤを使用して、（たとえば、サーバＩＤを承認されたサーバＩＤの記憶されたリストと比較することによって）第１のモバイルコンピューティングデバイスを検証することができる。判定ブロック１５１６において、第１のモバイルコンピューティングデバイスは、データセグメント送信要求が受信されるかどうかを判定することができる。データ送信要求が受信されない場合（すなわち、判定ブロック１５１６＝「いいえ」の場合）、第１のモバイルコンピューティングデバイスはブロック１５０２に戻り、別のモバイルコンピューティングデバイスの検出を待機することができる。データ送信要求が受信される場合（すなわち、判定ブロック１５１６＝「はい」の場合）、ブロック１５１８において、第１のモバイルコンピューティングデバイスは、データセグメントを第２のモバイルコンピューティングデバイスに送信することができる。
【００４６】
図１６は、第２のコンピューティングデバイスにおける第１のコンピューティングデバイスからのデータセグメントの受信を同期するための、一実施形態の方法１６００を示す。一例として、方法１６００は、方法１５００を実施する第１のモバイルコンピューティングデバイスとともに動作する、第２のモバイルコンピューティングデバイスによって実施され得る。一例として、方法１６００は、第１のモバイルコンピューティングデバイスであるスマートフォン１０４、および第２のモバイルコンピューティングデバイスであるラップトップコンピュータ１０６のような、２つのモバイルコンピューティングデバイスの間で実施され得る。２つのモバイルコンピューティングデバイス（ラップトップコンピュータ１０６およびスマートフォン１０４）に関して論じられるが、方法１６００は、任意の数のコンピューティングデバイス、モバイル機器、または他のものの間で実施され得る。ブロック１６０２において、ラップトップコンピュータ１０６のような第２のモバイルコンピューティングデバイスは、スマートフォン１０４のような第１のモバイルコンピューティングデバイスからデータ待機メッセージを受信することができる。上述したように、データ待機メッセージは、第１のデバイスが第２のモバイルコンピューティングデバイスに向けられたデータセグメントを有することを、第２のデバイスに通知するメッセージであり得る。加えて、データ待機メッセージは、第２のモバイルコンピューティングデバイスに向けられたデータセグメントのリスト、または、そのサイズ、作成日、もしくはコンテンツのタイプのようなデータセグメントについての情報、あるいは、第２のモバイルコンピューティングデバイスに向けられたデータセグメントに関する任意の他の情報を含み得る。
【００４７】
ブロック１６０４において、第２のモバイルコンピューティングデバイスは、検証要求を第１のモバイルコンピューティングデバイスに送信することができる。検証要求は、第２のモバイルコンピューティングデバイスがデータ待機メッセージを受信したことに応答して、第２のモバイルコンピューティングデバイスから送信され得る。上述したように、検証要求は、第１のモバイルコンピューティングデバイスの信頼性を検証するために、または第１のモバイルコンピューティングデバイス上に存在するデータの信頼性を検証するために第２のモバイルデバイスによって使用され得る情報に関する要求であり得る。一例として、検証要求は、スマートフォン１０４にサーバＩＤを提供することを要求する、ラップトップコンピュータ１０６からスマートフォン１０４に送信されるメッセージであり得る。ブロック１６０８において、第２のモバイルコンピューティングデバイスは、サーバＩＤを含み得るデータセグメントマップを第１のモバイルコンピューティングデバイスから受信することができる。
【００４８】
判定ブロック１６１０において、第２のモバイルコンピューティングデバイスは、データセグメントマップ中のサーバＩＤをメモリに記憶されたサーバＩＤと比較することなどによって、サーバＩＤが有効かどうかを判定することができる。コンピュータ技術分野においてよく知られている暗号化ハッシュ技法の使用を含め、他の方法が、サーバＩＤを検証するために使用され得る。サーバＩＤが有効ではない場合（すなわち、判定ブロック１６１０＝「いいえ」の場合）、ブロック１６２０において、方法は終了し得る。このようにして、無効なおよび／または信頼できないデータは、第２のモバイルコンピューティングデバイスによって受信されない。サーバＩＤが有効である場合（すなわち、判定ブロック１６１０＝「はい」の場合）、ブロック１６１２において、第２のモバイルコンピューティングデバイスは、データセグメントマップを、第２のモバイルコンピューティングデバイス上に存在する現在のデータセットと比較して、第１のモバイルコンピューティングデバイス上の任意のデータセグメントが第２のモバイルコンピューティングデバイス上に存在しないデータを含むかどうかを判定することができる。一例として、ラップトップコンピュータ１０６は、データセグメント作成タイムスタンプを比較して、ラップトップコンピュータ１０６上のデータセットがデータセグメントマップによって定義されたデータセットよりも新しいかどうかを判定することができる。
【００４９】
判定ブロック１６１４において、第２のモバイルコンピューティングデバイスは、データセグメントが必要とされるかどうかを判定することができる。この判定は、ブロック１６１２において実行された現在のデータセットに対するデータセグメントの比較の結果を使用して行われ、第１のモバイルコンピューティングデバイス上の任意のデータセグメントが第２のモバイルコンピューティングデバイス上に存在しないデータを含むかどうかを判定することができる。必要とされるデータセグメントは、第２のモバイルコンピューティングデバイス上に存在しないデータ、または、第２のモバイルコンピューティングデバイス上に存在するデータよりも新しいデータを含み得る。データセグメントが必要とされない場合（すなわち、判定ブロック１６１４＝「いいえ」の場合）、ブロック１６２０において、方法１６００は終了し得る。一例として、古い（outdated）データセグメントは必要とされないことがある。データセグメントが必要とされる場合（すなわち、判定ブロック１６１４＝「はい」の場合）、ブロック１６１６において、第２のモバイルコンピューティングデバイスは、データセグメントの送信を要求するデータセグメント送信要求を、第１のモバイルコンピューティングデバイスに送信することができる。ブロック１６１８において、第２のモバイルコンピューティングデバイスは、データセグメントを第１のモバイルコンピューティングデバイスから受信することができる。ブロック１６２０において、方法１６００は終了し得る。
【００５０】
図１７は、第１のコンピューティングデバイスと第２のコンピューティングデバイスとの間でデータセットを同期するための、一実施形態の方法１７００を示す。一例として、方法１７００は、スマートフォン１０４およびラップトップコンピュータ１０６のような２つのモバイルコンピューティングデバイスの間で実施され得る。２つのモバイルコンピューティングデバイス（スマートフォン１０４およびラップトップコンピュータ１０６）に関して論じるが、方法１７００は、任意の数のコンピューティングデバイス、モバイル機器、または他のものの間で実施され得る。ブロック１７０２において、ラップトップコンピュータ１０６のような第１のモバイルコンピューティングデバイスは、サーバ同期保留データ（data pending server synchronization）を一時的なもの（temporary）としてマークすることができる。サーバ同期保留データは、第１のモバイルコンピューティングデバイスとサーバとの間で最後にデータの同期が行われてから、何らかの方法で変更されたデータであり得る。サーバ同期保留データは、ファイルヘッダに書き込まれる情報、データに追加されるタグ、またはインデックスもしくはポインタファイルによる方式、あるいはデータＩＤを変更することによる方式を含めた任意の方式で、一時的なものであるとマークされ得る。ブロック１７０４において、第１のモバイルコンピューティングデバイスは、データリストをスマートフォン１０４のような第２のモバイルコンピューティングデバイスに送信することができる。データリストは、インデックスのような、第１のモバイルコンピューティングデバイス上に存在するデータのリストであり得る。データリストは、ブロック１７０２において一時的なものとしてマークされたデータの識別情報を含み得る。一例として、ラップトップコンピュータ１０６は、ラップトップコンピュータ１０６とスマートフォン１０４との間に確立された通信データリンク接続を通じて、データリストをスマートフォン１０４に送信することができる。
【００５１】
ブロック１７０６において、第１のモバイルコンピューティングデバイスは、データセット要求を第２のモバイルコンピューティングデバイスから受信することができる。データセット要求は、第２のモバイルコンピューティングデバイスによって必要とされ得る、データリスト上のデータのすべてまたは一部分を識別することができる。加えて、データセット要求は、第２のモバイルコンピューティングデバイスによって必要とされるデータについてのアプリケーションフォーマットに関する情報を含み得る。ブロック１７０８において、第１のモバイルコンピューティングデバイスは、ブロック１７０６において受信されたデータリストに基づいて、第２のモバイルコンピューティングデバイスによって必要とされるデータセットを識別することができる。データセットの識別は、第２のモバイルコンピューティングデバイスによって必要とされるアプリケーションフォーマットを識別することを含み得る。ブロック１７１０において、第１のモバイルコンピューティングデバイスは、アプリケーションフォーマット間でデータセットを変換することができる。一例として、ラップトップ１０６に記憶されたデータは、ラップトップ１０６上での使用のみに適したアプリケーションフォーマットであり得る。データを利用するためには、スマートフォン１０４は、スマートフォン１０４上での使用に適したアプリケーションフォーマットにデータが変換されることを必要とし得る。したがって、ラップトップ１０６は、ラップトップ１０６のためのアプリケーションフォーマットからスマートフォン１０４のためのアプリケーションフォーマットへとデータセットを変換することができる。ブロック１７１２において、第１のモバイルコンピューティングデバイスは、こうして変換されたデータセットを第２のモバイルコンピューティングデバイスに送信することができる。一例として、ラップトップコンピュータ１０６は、ラップトップコンピュータ１０６とスマートフォン１０４との間に確立された通信データリンク接続を通じて、変換されたデータセットをスマートフォン１０４に送信することができる。
【００５２】
図１８は、第１のコンピューティングデバイスと第２のコンピューティングデバイスとの間でデータセットを同期するための、一実施形態の方法１８００を示す。一例として、方法１８００は、方法１７００を実施する第１のモバイルコンピューティングデバイスとともに動作する、第２のモバイルコンピューティングデバイスによって実施され得る。一例として、方法１８００は、第１のモバイルコンピューティングデバイスであるラップトップコンピュータ１０６、および第２のモバイルコンピューティングデバイスであるスマートフォン１０４のような、２つのモバイルコンピューティングデバイスの間で、実施され得る。２つのモバイルコンピューティングデバイス（ラップトップコンピュータ１０６およびスマートフォン１０４）に関して論じられるが、方法１８００は、任意の数のコンピューティングデバイス、モバイル機器、または他のものの間で実施され得る。ブロック１８０２において、スマートフォン１０４のような第２のモバイルコンピューティングデバイスは、ラップトップ１０６のような第１のモバイルコンピューティングデバイスからデータリストを受信することができる。上述したように、データリストは、第１のモバイルコンピューティングデバイス上に存在するデータのリストであり得、一時的なものとしてマークされたデータの識別情報を含み得る。
【００５３】
ブロック１８０４において、第２のモバイルコンピューティングデバイスは、データリストを、第２のモバイルコンピューティングデバイス上に存在するデータと比較することができる。判定ブロック１８０６において、第２のモバイルコンピューティングデバイスは、自身がデータリスト上のデータを必要とするかどうかを判定することができる。この判定は、ブロック１８０４において実行された、第２のモバイルコンピューティングデバイス上に存在するデータに対するデータリストの比較の結果を使用して行われ得る。必要とされるデータは、第２のモバイルコンピューティングデバイス上に存在しないデータ、第２のモバイルコンピューティングデバイス上に存在するデータよりも新しいデータ、または、一時的なものとしてマークされたデータを含み得る。データリスト上のデータが必要とされない場合（すなわち、判定ブロック１８０６＝「いいえ」の場合）、ブロック１８０８において、方法１８００は終了し得る。
【００５４】
データリスト上のデータが必要とされる場合（すなわち、判定ブロック１８０６＝「はい」の場合）、ブロック１８１０において、第２のモバイルコンピューティングデバイスは、データセット要求を第１のモバイルコンピューティングデバイスに送信することができる。上述したように、データセット要求は、第２のモバイルコンピューティングデバイスによって必要とされ得るデータリスト上のデータのすべてまたは一部分を識別することができ、第２のモバイルコンピューティングデバイスによって必要とされるデータのアプリケーションフォーマットについての情報を含み得る。ブロック１８１２において、第２のモバイルコンピューティングデバイスは、データセットを第１のモバイルコンピューティングデバイスから受信することができる。データセットは、第２のモバイルコンピューティングデバイス上での使用に適したアプリケーションフォーマットに変換された、第２のモバイルコンピューティングデバイスによって必要とされるデータを含み得る。ブロック１８１４において、第２のモバイルコンピューティングデバイスは、第２のモバイルコンピューティングデバイス上に存在するデータを、受信されたデータセットによって更新することができる。ブロック１８０８において、方法１８００は終了し得る。
【００５５】
図１９は、コンピューティングデバイス間で同期保留データを割り当て送信するための一実施形態の方法１９００を示す。一例として、方法１９００は、ラップトップコンピュータ１０６のような第１のモバイルコンピューティングデバイスと、スマートフォン１０４のような第２のモバイルコンピューティングデバイスと、サーバ１０２との間で実施され得る。ラップトップコンピュータ１０６、スマートフォン１０４、およびサーバ１０２に関して論じるが、方法１９００は、制限されない数のデバイスの間で実施され得る。ブロック１９０２において、ラップトップコンピュータ１０６のような第１のモバイルコンピューティングデバイスは、スマートフォン１０４のような第２のモバイルコンピューティングデバイスとの通信データリンク接続を確立することができる。図１を参照して上記で説明したように、通信データリンク接続は任意のタイプの接続であってよい。ブロック１９０４において、第１のモバイルコンピューティングデバイスは、第１のモバイルコンピューティングデバイスと第２のモバイルコンピューティングデバイスとの間でデータセットを同期することができる。データセットの同期は、任意の方法によって、たとえば、図１５、図１６、図１７、および図１８を参照して上記で説明した方法のいずれかを実施することなどによって、達成され得る。第１のモバイルコンピューティングデバイスと第２のモバイルコンピューティングデバイスとの間でのデータセットの同期により、同一のデータセットが、第１のモバイルコンピューティングデバイスと第２のモバイルコンピューティングデバイスの両方に存在するようになり得る。
【００５６】
ブロック１９０６において、第１のモバイルコンピューティングデバイスは、こうして同期されたデータセット中のいずれかのデータがサーバの同期を保留しているかどうかを決定することができる。サーバ同期保留データは、第１のモバイルコンピューティングデバイスとサーバ１０２との間での最後のデータ同期から、何らかの方法で変更されたデータであり得る。第１のモバイルコンピューティングデバイスは、ファイルヘッダ情報を読み取ること、データと関連付けられるタグを認識すること、データセグメントマップを参照すること、または、データがサーバ同期を保留していることを示すユーザ入力を受信することによって、データがサーバ同期を保留していると決定することができる。
【００５７】
ブロック１９０８において、第１のモバイルコンピューティングデバイスは、サーバ同期保留データをセグメントへと分割することができる。セグメントは、サーバ同期保留データの任意のグルーピングを含み得、データの分割は、データの特性に基づいて実行され得、または、サーバ同期保留データは、セットセグメントサイズのような、所定のパラメータに従って分割され得る。ブロック１９１０において、第１のモバイルコンピューティングデバイスは、識別情報（「ＩＤ」）を各保留セグメントに割り当てることができる。この保留セグメントＩＤは、第１のモバイルコンピューティングデバイスによって生成される、固有の番号、名前、または識別要素であり得る。加えて、保留セグメントＩＤは、セグメントのコンテンツ、セグメントの作成の時間、第１のモバイルコンピューティングデバイス、第２のモバイルコンピューティングデバイス、および意図されるサーバ、またはセグメントのサイズに関する情報のような、セグメントについての情報を含み得るまたは提供し得る。ブロック１９１２において、第１のモバイルコンピューティングデバイスは、保留セグメントＩＤを各保留セグメントに書き込むことができる。保留セグメントＩＤは、セグメント全体を表すデータへと書き込まれてよく、または、個々の保留セグメントを備える各データ要素へと書き込まれてよい。
【００５８】
ブロック１９１４において、第１のモバイルコンピューティングデバイスは、各保留セグメントについてのアップロード・レスポンシビリティを割り当てることができる。アップロード・レスポンシビリティは、ある特定の保留セグメントをサーバに送信するための、ある特定のモバイルコンピューティングデバイスについての割当てであり得る。一例として、ラップトップコンピュータ１０６は、保留セグメントの半分をアップロードのためにスマートフォン１０４に割り当てることができ、保留セグメントの残りの半分をアップロードのためにラップトップコンピュータ１０６自体に割り当てることができる。割当ての考慮事項については以下でさらに説明する。ブロック１９１６において、第１のモバイルコンピューティングデバイスは、保留セグメントおよび保留セグメントＩＤを、第２のモバイルコンピューティングデバイスと同期することができる。保留セグメントおよび保留セグメントＩＤの同期によって、第１のモバイルコンピューティングデバイスおよび第２のモバイルコンピューティングデバイスは、同様の保留セグメントと同様の保留セグメントＩＤとを備えた同様のデータセットを有するようになり得る。一例として、保留セグメントおよび保留セグメントＩＤを同期は、第１のモバイルコンピューティングデバイスが保留セグメントと保留セグメントＩＤとを第２のモバイルコンピューティングデバイスに送信することによって達成され得る。第１のモバイルコンピューティングデバイスは、保留セグメントおよび保留セグメントＩＤのすべてを第２のモバイルコンピューティングデバイスに送信することができ、または代替的に、第２のモバイルコンピューティングデバイスに割り当てられた保留セグメントおよび保留セグメントＩＤの部分のみを送信することができる。代替的な一例では、第１のモバイルコンピューティングデバイスは、第２のモバイルコンピューティングデバイスが同一の保留セグメントと保留セグメントＩＤとを作成する際に使用するための指示を、第２のモバイルコンピューティングデバイスに送信することができる。この命令は、各保留セグメントに含まれるデータ、サーバ同期保留データの開始点および標準的な保留セグメントサイズ、保留セグメントＩＤの番号付け方式、または、第２のモバイルコンピューティングデバイスが保留データセグメントと保留セグメントＩＤとを再現することを可能にする他の情報のような、情報を含み得る。
【００５９】
ブロック１９１８において、第１のモバイルコンピューティングデバイスは、各保留セグメントについてのアップロード・レスポンシビリティを第２のモバイルコンピューティングデバイスに送信することができる。ブロック１９２０において、第１のモバイルコンピューティングデバイスは、第２のモバイルコンピューティングデバイスとの通信データリンク接続を終了することができる。ブロック１９２２において、第１のモバイルコンピューティングデバイスは、サーバ１０２との通信データリンク接続を確立することができる。図１を参照して上記で説明したように、接続は任意のタイプの接続であってよい。ブロック１９２４において、第１のモバイルコンピューティングデバイスは、割り当てられた保留セグメントをサーバ１０２に送信することができる。判定ブロック１９２６において、第１のモバイルコンピューティングデバイスは、フルアップロード要求がサーバ１０２から受信されるかどうかを判定することができる。フルアップロード要求は、サーバ１０２がすべての同期保留データのフルアップロードを要求することを示す、サーバ１０２から受信されるメッセージであり得る。一例として、フルアップロード要求は、スマートフォン１０４のような第２のモバイルコンピューティングデバイスが紛失した、損傷した、または破壊されたことのインジケーションに応答して、サーバ１０２によって送信され得る。フルアップロード要求が受信されない場合（すなわち、判定ブロック１９２６＝「いいえ」の場合）、ブロック１９３０において、第１のモバイルデバイスは、サーバ１０２との通信データリンク接続を終了することができる。フルアップロード要求が受信される場合（すなわち、判定ブロック１９２６＝「はい」の場合）、ブロック１９２６において、第１のモバイルコンピューティングデバイスは、サーバ１０２にすべての残りの保留セグメントを送信することができる。一例として、第１のモバイルデバイスは、第２のモバイルデバイスに割り当てられた保留セグメントを送信することができる。このようにして、サーバ１０２は、第１のモバイルコンピューティングデバイスによって、すべての保留セグメントについて更新されることが可能であり、サーバ同期を保留していたすべてのデータが、第２のモバイルデバイスの紛失、損傷、または破壊にもかかわらず、サーバ１０２に提供され得る。ブロック１９３０において、第１のモバイルデバイスは、サーバ１０２との通信データリンク接続を終了することができる。
【００６０】
図２０は、上述の方法１９００とともに使用され得る、アップロード・レスポンシビリティを割り当てるための一実施形態の方法２０００を示す。ブロック２００２において、第１のモバイルコンピューティングデバイスは、第１のモバイルコンピューティングデバイスと第２のモバイルコンピューティングデバイスの両方の、サーバ１０２へのデータ通信リンク接続において利用可能な、推定される帯域幅を決定することができる。一例として、ラップトップコンピュータ１０６は、ラップトップコンピュータ１０６からサーバ１０２への接続の推定される接続帯域幅と、スマートフォン１０４とサーバ１０２との間の接続の推定される接続帯域幅とを決定することができる。推定される接続帯域幅の決定は、サーバ１０２との通信データリンク接続についての、各モバイルコンピューティングデバイスから受信される情報、または、あるデバイスおよび／もしくは接続のタイプに対する記憶された帯域幅推定値によって行われ得る。ブロック２００４において、第１のモバイルコンピューティングデバイスは、第１のモバイルコンピューティングデバイスと第２のモバイルコンピューティングデバイスの推定される帯域幅を組み合わせることによって、両方のモバイルコンピューティングデバイスを使用して利用可能なサーバ１０２への推定される利用可能な総帯域幅を決定することができる。ブロック２００６において、第１のモバイルコンピューティングデバイスは、サーバ１０２への推定される利用可能な総帯域幅の百分率としての、あるモバイルコンピューティングデバイスのサーバ１０２との推定される接続帯域幅に比例して、各保留セグメントについてのアップロード・レスポンシビリティをそのモバイルコンピューティングデバイスに割り当てることができる。一例として、第１のモバイルコンピューティングデバイスは、利用可能な総帯域幅の７０％を占めるサーバ１０２への通信データリンク接続を有することがあり、第１のモバイルコンピューティングデバイスは、送信のためのデータセグメントの７０％を割り当てられ得るが、第２のモバイルコンピューティングデバイスは、利用可能な総帯域幅の３０％を占めるサーバ１０２への通信データリンク接続を有することがあり、第２のモバイルコンピューティングデバイスは、送信のためのデータセグメントの３０％を割り当てられ得る。第１のモバイルコンピューティングデバイスおよび第２のモバイルコンピューティングデバイスは次いで、上述のように、方法１９００によってサーバ１０２へのデータのアップロードを完了することができる。
【００６１】
図２１は、上述の方法１９００とともに使用され得る、アップロード・レスポンシビリティを割り当てるための一実施形態の方法２１００を示す。上記で説明したように、ブロック２００２において、第１のモバイルコンピューティングデバイスは、第１のモバイルコンピューティングデバイスと第２のモバイルコンピューティングデバイスの両方の、サーバ１０２へのデータ通信リンク接続において利用可能な、推定される帯域幅を決定することができる。ブロック２１０４において、第１のモバイルコンピューティングデバイスは、最短の推定アップロード時間をもたらすデータアップロード・レスポンシビリティを決定することができる。ブロック２１０６において、第１のモバイルコンピューティングデバイスは、決定された最短ダウンロード時間に基づいて、各セグメントについてのアップロード・レスポンシビリティをモバイルコンピューティングデバイスに割り当てることができる。第１のモバイルコンピューティングデバイスおよび第２のモバイルコンピューティングデバイスは次いで、上述のように、方法１９００によりサーバ１０２へのデータのアップロードを完了することができる。
【００６２】
図２２は、上述の方法１９００とともに使用され得る、アップロード・レスポンシビリティを割り当てるための一実施形態の方法２２００を示す。ブロック２２０２において、第１のモバイルコンピューティングデバイスは、モバイルコンピューティングデバイスからサーバ１０２への通信データリンク接続のタイプを決定することができる。一例として、サーバ１０２とスマートフォン１０４との間の通信データリンク接続は３Ｇ接続であり得、サーバ１０２とラップトップコンピュータ１０６との間の通信データリンク接続はＷｉ−Ｆｉ接続であり得る。ブロック２２０４において、第１のモバイルコンピューティングデバイスは、各モバイルデバイスからサーバ１０２への通信データリンク接続と関連付けられるデータ送信コストを決定することができる。一例として、３Ｇ接続はその接続を通じて送信されるデータについてユーザに請求される料金を発生させ、Ｗｉ−Ｆｉ接続を通じて送信されるデータについては料金が請求されないという情報を、ラップトップコンピュータ１０６は与えられ得る。ブロック２２０６において、第１のモバイルコンピューティングデバイスは、最低のアップロード総コストをもたらすデータアップロード・レスポンシビリティを決定することができる。ブロック２２０８において、第１のモバイルコンピューティングデバイスは、決定された最低のアップロード総コストに基づいて、各保留セグメントについてのアップロード・レスポンシビリティをモバイルコンピューティングデバイスに割り当てることができる。このようにして、方法２２００を実施する第１のモバイルコンピューティングデバイスは、コスト節約モードで動作することができる。第１のモバイルコンピューティングデバイスおよび第２のモバイルコンピューティングデバイスは次いで、上述のように、方法１９００により、サーバ１０２へのデータのアップロードを完了することができる。
【００６３】
図２３は、上述の方法１９００とともに使用され得る、アップロード・レスポンシビリティを割り当てるための一実施形態の方法２３００を示す。ブロック２３０２において、第１のモバイルコンピューティングデバイスは、サーバ１０２に送信されるべき保留セグメントの総数を決定することができる。ブロック２３０４において、第１のモバイルコンピューティングデバイスは、保留セグメントの総数のうちのいくらかの部分（たとえば、半分）についてのアップロード・レスポンシビリティを、ラップトップコンピュータ１０６のような第１のモバイルコンピューティングデバイスに割り当て、保留セグメントの総数のうちの他の部分についてのアップロード・レスポンシビリティを、スマートフォン１０４のような第２のモバイルコンピューティングデバイスに割り当てることができる。第１のモバイルコンピューティングデバイスおよび第２のモバイルコンピューティングデバイスは、次いで、上述のように、方法１９００により、サーバ１０２へのデータのアップロードを完了することができる。
【００６４】
図２４は、上述の方法１９００とともに使用され得る、アップロード・レスポンシビリティを割り当てるための一実施形態の方法２４００を示す。ブロック２４０２において、第１のモバイルコンピューティングデバイスは、偶数セグメントまたは奇数セグメントとして保留セグメントを識別することができる。一例として、ラップトップコンピュータ１０６は、偶数または奇数識別文字列を、各セグメントのデータヘッダに書き込むことができる。ブロック２４０４において、第１のモバイルコンピューティングデバイスは、偶数保留セグメントについてのアップロード・レスポンシビリティを、ラップトップコンピュータ１０６のような第１のモバイルデバイスに割り当て、奇数保留セグメントについてのアップロード・レスポンシビリティを、スマートフォン１０４のような第２のモバイルデバイスに割り当てることができる。第１のモバイルコンピューティングデバイスおよび第２のモバイルコンピューティングデバイスは次いで、上述のように、方法１９００により、サーバ１０２へのデータのアップロードを完了することができる。
【００６５】
図２５は、上述の方法１９００とともに使用され得る、コンピューティングデバイス間での同期保留データ（data pending synchronization）の送信を指示するための、一実施形態の方法２５００を示す。ブロック２５０２において、サーバ１０２は、ラップトップコンピュータ１０６のような第１のモバイルコンピューティングデバイスに、第１のモバイルコンピューティングデバイスがアップロード・レスポンシビリティを割り当てられていない保留セグメントの一部分をアップロードするように指示することができる。一例として、アップロードすべきデータセグメントを割り当てられていた可能性のあるスマートフォン１０４のような第２のモバイルデバイスが紛失したことを示すユーザ入力は、現時点で紛失しているスマートフォン１０４に元は割り当てられていた保留セグメントの部分をアップロードするように、ラップトップコンピュータ１０６のような第１のモバイルコンピューティングデバイスへ指示することを、サーバ１０２に行わせ得る。サーバ１０２から第１のモバイルコンピューティングデバイスへの指示は、第１のモバイルコンピューティングデバイスに送信されるフルアップロード要求の形態であってよい。このように、モバイルコンピューティングデバイスの紛失または破壊は、サーバ同期保留データセグメントの喪失をまねかない。第１のモバイルコンピューティングデバイスおよび第２のモバイルコンピューティングデバイスは次いで、上述のように、方法１９００により、サーバ１０２へのデータのアップロードを完了することができる。
【００６６】
図２６は、アップロード・ステータスの判定が追加された、方法１９００と同様の、コンピューティングデバイス間で同期保留データを割り当て送信するための一実施形態の方法２６００を示す。ブロック２６０２において、第１のモバイルコンピューティングデバイスは、サーバ１０２からの第２のモバイルコンピューティングデバイスのアップロード・ステータスを要求することができる。ブロック２６０４において、第１のモバイルコンピューティングデバイスは、サーバ１０２から第２のモバイルコンピューティングデバイスのアップロード・ステータスを受信することができる。一例として、ラップトップコンピュータ１０６は、スマートフォン１０４がアップロードしていないことを示すメッセージをサーバ１０２から受信することができる。判定ブロック２６０６において、第１のモバイルコンピューティングデバイスは、ブロック２６０４において受信された情報を使用して、第２のモバイルコンピューティングデバイスがアップロードしたかどうかを判定することができる。第２のモバイルコンピューティングデバイスがアップロードしていない場合（すなわち、判定ブロック２６０６＝「いいえ」の場合）、ブロック１９２８において、第１のモバイルコンピューティングデバイスは、サーバ１０２に残りのすべての保留セグメントを送信することができる。第２のモバイルコンピューティングデバイスがアップロードした場合（すなわち、判定ブロック２６０６＝「はい」の場合）、ブロック１９３０において、第１のモバイルコンピューティングデバイスは、サーバ１０２との通信データリンク接続を終了することができる。
【００６７】
図２７に、電子メールの配信を最適化するための一実施形態の方法２７００を示す。実施形態の方法２７００は、スマートフォン１０４のような第２のモバイルコンピューティングデバイスとデータセットを同期し得る、そしてデータセットの割り当てられた部分をサーバ１０２に提供し得る、ラップトップコンピュータ１０６のような第１のモバイルコンピューティングデバイス上で実施され得る。３つのデバイスに関して論じられるが、方法２７００は、３つよりも多くのデバイスの間で実施され得る。ブロック２７０２において、第１のモバイルコンピューティングデバイスは、第２のモバイルコンピューティングデバイスとの通信データリンク接続を確立することができる。図１を参照して上述したように、通信データリンク接続は任意のタイプの接続であってよい。ブロック２７０４において、第１のモバイルコンピューティングデバイスは、第１のモバイルコンピューティングデバイスと第２のモバイルコンピューティングデバイスとの間で電子メールセットを同期することができる。電子メールセットは、任意の方法、たとえば、図１５、図１６、図１７、および図１８を参照して上記で説明した方法によって同期され得る。ブロック２７０６において、第１のモバイルコンピューティングデバイスは、サーバ１０２との同期を保留している電子メールを決定することができる。
【００６８】
ブロック２７０８において、第１のモバイルコンピューティングデバイスは、各保留セグメントについてのアップロード・レスポンシビリティを割り当てることができる。アップロード・レスポンシビリティは、ある特定の保留電子メールをサーバ１０２に送信するための、ある特定のモバイルコンピューティングデバイスについての割当てであり得る。このように、各保留電子メールは、アップロードのために異なるモバイルコンピューティングデバイスに割り当てられ得る。一例として、ラップトップコンピュータ１０６は、電子メールの半分をアップロードのためにスマートフォン１０４に割り当て、電子メールの残りの半分をアップロードのためにラップトップコンピュータ１０６自体に割り当てることができる。ブロック２７１０において、第１のモバイルコンピューティングデバイスは、各保留電子メールについてのアップロード・レスポンシビリティを第２のモバイルコンピューティングデバイスに送信することができる。ブロック２７１２において、第１のモバイルコンピューティングデバイスは、サーバ１０２との通信データリンク接続を確立することができる。図１を参照して上記で説明したように、通信データリンク接続は任意のタイプの接続であってよい。
【００６９】
ブロック２７１４において、第１のモバイルコンピューティングデバイスは、第１のモバイルコンピューティングデバイスに電子メールスレッド・ステータスを提供するようにサーバ１０２に要求することができる。電子メールスレッド・ステータスは、電子メールスレッド中の最新の電子メールの受信の時間を示すインジケーション、または、サーバ１０２上に存在する電子メールスレッド中のすべての電子メールのリストであり得る。ブロック２７１６において、第１のモバイルコンピューティングデバイスは、電子メールスレッド・ステータスを提供するメッセージをサーバ１０２から受信することができる。このようにして、第１のモバイルコンピューティングデバイスは、各電子メールスレッドの現在の状態によって更新され得る。判定ブロック２７１８において、第１のモバイルコンピューティングデバイスは、ブロック２７１６において受信された電子メールスレッド・ステータス中の情報を使用して、より新しい電子メールがスレッド中にあるかどうかを判定することができる。一例として、ラップトップコンピュータ１０６は、ある時間の期間、サーバ１０２から切断されていた可能性がある。その切断されていた期間中、ラップトップコンピュータ１０６のユーザは、ラップトップコンピュータ１０６がサーバ１０２から切断されたのよりも前に受信された電子メールに応答して、電子メールを下書きしている可能性がある。ラップトップコンピュータ１０６が切断されていた間、他の受信者が電子メールを交換している可能性があるので、電子メールスレッドは、ラップトップコンピュータ１０６に記憶されたものよりも新しい電子メールを有する可能性がある。スレッド中により新しい電子メールがあると第１のモバイルコンピューティングデバイスが判定する場合（すなわち、判定ブロック２７１８＝「はい」の場合）、ブロック２７２０において、第１のモバイルコンピューティングデバイスは、割り当てられた保留電子メールを送信するためのユーザ承認を要求することができる。一例として、ユーザ承認は、ポップアップウィンドウを介して、または、第１のモバイルコンピューティングデバイスによって表示される他のタイプのユーザプロンプトを介して要求され得る。スレッド中により新しい電子メールがないと第１のモバイルコンピューティングデバイスが判定する場合（すなわち、判定ブロック２７１８＝「いいえ」の場合）、ブロック２７２２において、第１のモバイルコンピューティングデバイスは、割り当てられた保留電子メールをサーバ１０２に送信することができる。
【００７０】
判定ブロック２７２４において、第１のモバイルコンピューティングデバイスは、割り当てられた保留電子メールのサーバへの送信をユーザが承認したかどうかを判定することができる。ユーザ承認は、ボタン押下または表示選択インジケーションのようなユーザ入力として受け取られ得る。ユーザ承認が受け取られる場合（すなわち、判定ブロック２７２４＝「はい」の場合）、ブロック２７２２において、第１のモバイルコンピューティングデバイスは、割り当てられた保留電子メールをサーバ１０２に送信することができる。ユーザ承認が受け取られない場合（すなわち、判定ブロック２７２４＝「いいえ」の場合）、ブロック２７２６において、第１のモバイルコンピューティングデバイスは、割り当てられた保留電子メールの送信を控える（hold）ことができる。このようにして、スレッド中の電子メールの進行と比較して古い電子メールの送信が控えられることが可能であり、ユーザは、古い電子メールに応答することで電子メールスレッド中に混乱を引き起こすことを避けることができる。
【００７１】
図２８Ａおよび図２８Ｂは、サーバ１０２と、スマートフォン１０４と、ラップトップコンピュータ１０６との間のインタラクションを管理して、データ配信を最適化するための、別の実施形態の方法２８００を示す。ブロック１９０２、１９０４、１９０６、１９０８、１９１０、１９１２、１９１４、１９１６、１９１８、１９２０、１９２２、１９２４、および１９３０において、ラップトップコンピュータ１０６は、図１９を参照して上で説明された方法１９００の動作を実行することができる。ブロック２８０２およびブロック１９０２において、スマートフォン１０４およびラップトップコンピュータ１０６は、通信データリンク接続を確立することができる。通信データリンク接続は、図１に関して前述した接続のような、データを送信するのに適した任意の接続であってよい。ブロック２８０４および１９０４において、スマートフォン１０４およびラップトップコンピュータ１０６は、方法１９００において達成されるように、それら自体の間でデータセットを同期することができる。ブロック２８０６および１９１６において、スマートフォン１０４およびラップトップコンピュータ１０６は、方法１９００において達成されるように、保留セグメントと保留セグメントＩＤとを同期することができる。
【００７２】
ブロック２８０８において、スマートフォン１０４は、ラップトップ１０６から各保留セグメントについてのアップロード・レスポンシビリティを受信することができる。この送信において、スマートフォン１０４は、自身のアップロード・レスポンシビリティと、ラップトップコンピュータ１０６のアップロード・レスポンシビリティとの両方のインジケーションを受信することができる。ブロック２８１０およびブロック１９２０において、スマートフォン１０４およびラップトップコンピュータ１０６は、互いとの通信データリンク接続を終了することができる。
【００７３】
ブロック１９２２およびブロック２８１２において、ラップトップコンピュータ１０６およびサーバ１０２は、通信データリンク接続を確立することができる。通信データリンク接続は、図１に関して前述した接続のような、データを送信するのに適した任意の接続であってよい。ブロック２８１４およびブロック２１８６において、スマートフォン１０４およびサーバ１０２は、通信データリンク接続を確立することができる。通信データリンク接続は、図１に関して前述した接続のような、データを送信するのに適した任意の接続であってよい。ブロック１９２４において、ラップトップコンピュータ１０６は、割り当てられた保留セグメントをサーバ１０２に送信することができる。ブロック２８１８において、サーバ１０２は、ラップトップコンピュータ１０６に割り当てられた、送信された保留セグメントを受信することができる。ブロック２８２０において、スマートフォン１０４は、割り当てられた保留セグメントをサーバ１０２に送信することができる。ブロック２８２２において、サーバ１０２は、スマートフォン１０４に割り当てられた、送信された保留セグメントを受信することができる。このようにして、保留セグメントのフルセットがサーバ１０２において組み立てられ得るとともに、フルな同期されたデータセットが、サーバ１０２、ラップトップ１０６、およびスマートフォン１０４上に存在し得る。ブロック１９３０およびブロック２８２４において、ラップトップコンピュータ１０６およびサーバ１０２は、互いとの通信データリンク接続を終了することができる。ブロック２８２６およびブロック２８２８において、スマートフォン１０４およびサーバ１０２は、互いとの通信データリンク接続を終了することができる。
【００７４】
様々な実施形態は、図２９にその一例が示される、種々のモバイルデバイスのいずれかにおいて実施され得る。たとえば、モバイルデバイス２９００は、内部メモリ２９０４と２９１０とに結合されたプロセッサ２９０２を含み得る。内部メモリ２９０４および２９１０は、揮発性メモリまたは不揮発性メモリであってよく、セキュアメモリおよび／もしくは暗号化されたメモリ、または、非セキュアメモリおよび／もしくは非暗号化メモリ、または、これらの任意の組合せであってもよい。プロセッサ２９０２はまた、抵抗感知式タッチスクリーン、容量感知式タッチスクリーン、赤外線感知式タッチスクリーンなどのような、タッチスクリーンディスプレイ２９０６に結合され得る。加えて、モバイルデバイス２９００のディスプレイは、タッチスクリーン能力を有さなくてもよい。加えて、モバイルデバイス２９００は、ワイヤレスデータリンクおよび／またはプロセッサ２９０２に結合された携帯電話送受信機２９１６に接続され得る、電磁放射線を送信および受信するための１つまたは複数のアンテナ２９０８を有し得る。モバイルデバイス２９００はまた、ユーザ入力を受信するための物理ボタン２９１２ａと２９１２ｂとを含み得る。モバイルデバイス２９００はまた、モバイルデバイス２９００をオンおよびオフするための、電源ボタン２９１８を含み得る。
【００７５】
様々な実施形態はまた、図３０に示されるサーバ３０００のような、種々の市販のサーバデバイスのいずれにも実装され得る。そのようなサーバ３０００は、一般に、揮発性メモリ３００２と、ディスクドライブ３００３のような大容量不揮発性メモリとに結合されたプロセッサ３００１を含む。サーバ３０００はまた、プロセッサ３００１に結合されたフロッピー（登録商標）ディスクドライブ、コンパクトディスク（ＣＤ）またはＤＶＤディスクドライブ３００４を含み得る。サーバ３０００はまた、他のブロードキャストシステムコンピュータとサーバとに結合されたローカルエリアネットワークのような、ネットワーク３００７とのネットワークインターフェース接続を確立するための、プロセッサ３００１に結合されたネットワークアクセスポート３００６を含み得る。
【００７６】
上述の様々な実施形態はまた、図３１に示されるラップトップコンピュータ３１１０のような、種々のパーソナルコンピューティングデバイス内で実装され得る。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして機能するタッチパッドタッチ面３１１７を含むので、タッチスクリーンディスプレイを装備するモバイルコンピューティングデバイス上で実施され上述のものと同様の、ドラッグ、スクロール、およびフリックのジェスチャーを受け入れることができる。ラップトップコンピュータ３１１０は、一般に、揮発性メモリ３１１２と、フラッシュメモリのディスクドライブ３１１３のような大容量不揮発性メモリとに結合されたプロセッサ３１１１を含む。コンピュータ３１１０はまた、プロセッサ３１１１に結合されたフロッピーディスクドライブ３１１４とコンパクトディスク（ＣＤ）ドライブ３１１５とを含み得る。コンピュータデバイス３１１０はまた、ＵＳＢまたはＦｉｒｅＷｉｒｅ（登録商標）コネクタソケットのような、データ接続を確立するための、または外部メモリデバイスを受けるための、プロセッサ３１１１に結合されたいくつかのコネクタポート、あるいはプロセッサ３１１１をネットワークに結合するための他のネットワーク接続回路を含み得る。ノートブック構成では、コンピュータ筐体は、プロセッサ３１１１にすべて結合された、タッチパッド３１１７と、キーボード３１１８と、ディスプレイ３１１９とを含む。コンピューティングデバイスの他の構成は、よく知られているように、プロセッサに（たとえば、ＵＳＢ入力を介して）結合されるコンピュータマウスまたはトラックボールを含んでよく、これも、様々な実施形態とともに使用され得る。
【００７７】
プロセッサ２９０２、３００１、および３１１１は、上述の様々な実施形態の機能を含む、種々の機能を実行するようにソフトウェア命令（アプリケーション）によって構成され得る任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、あるいは１つまたは複数の多重プロセッサチップであり得る。いくつかのデバイスでは、１つのプロセッサがワイヤレス通信機能専用にされ、１つのプロセッサが他のアプリケーションの実行専用にされるなど、複数のプロセッサが設けられ得る。一般に、ソフトウェアアプリケーションは、アクセスされ、プロセッサ２９０２、３００１、および３１１１にロードされる前に、内部メモリ２９０４、２９１０、３００２、３００３、３１１２、および３１１３に記憶され得る。プロセッサ２９０２、３００１、および３１１１は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。多くのデバイスでは、内部メモリは、揮発性メモリ、またはフラッシュメモリなどの不揮発性メモリ、あるいは両方の混合であり得る。本明細書では、メモリへの一般的言及は、内部メモリ、またはデバイスに接続されるリムーバブルメモリ、およびプロセッサ２９０２、３００１、および３１１１自体の内部のメモリを含む、プロセッサ２９０２、３００１、および３１１１によってアクセス可能なメモリを指す。
【００７８】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供されたものであり、様々な実施形態のステップが提示された順序で実行されなければならないことを要求または暗示することを意図したものではない。当業者により諒解されるように、上記の実施形態におけるステップの順序は、任意の順序で実行され得る。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に、読者に方法の説明を案内するために使用される。さらに、たとえば、冠詞「ａ」、「ａｎ」または「ｔｈｅ」を使用する単数形の請求項要素への言及は、その要素を単数形に限定するものと解釈されるべきではない。
【００７９】
本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップは、上では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈されるべきではない。
【００８０】
本明細書で開示される態様に関して説明された様々な例示的な論理、論理ブロック、モジュール、および回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタ論理、個別ハードウェアコンポーネント、あるいは本明細書で説明された機能を実行するように設計されたそれらの任意の組合せによって、実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。代替的に、いくつかのステップまたは方法は、所与の機能に固有の回路によって実行され得る。
【００８１】
１つまたは複数の例示的な態様では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を通じて送信され得る。本明細書で開示される方法またはアルゴリズムのステップは、有形の非一時的コンピュータ可読記憶媒体上に常駐し得る、プロセッサ実行可能ソフトウェアモジュールで実施され得る。有形の非一時的コンピュータ可読記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく、例として、そのような非一時的コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは、命令またはデータ構造の形態で所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る、任意の他の媒体を備え得る。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピーディスク（disk）およびブルーレイディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せも非一時的コンピュータ可読媒体の範囲内に含まれるべきである。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、有形の非一時的機械可読媒体および／またはコンピュータ可読媒体上のコードおよび／または命令の１つまたは任意の組合せまたはセットとして存在し得る。
【００８２】
開示された実施形態の上記の説明は、当業者が本発明を製作または使用することを可能にするように提供されたものである。これらの実施形態に対する様々な変更は当業者には容易に明らかであり、本明細書で定義された一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。したがって、本発明は、本明細書で示された実施形態に限定されることは意図されず、以下の特許請求の範囲ならびに本明細書で開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
【図１】
2015513128.tif 000003
【図２】
2015513128.tif 000004
【図３】
2015513128.tif 000005
【図４】
2015513128.tif 000006
【図５】
2015513128.tif 000007
【図６】
2015513128.tif 000008
【図７】
2015513128.tif 000009
【図８】
2015513128.tif 000010
【図９】
2015513128.tif 000011
【図１０】
2015513128.tif 000012
【図１１】
2015513128.tif 000013
【図１２】
2015513128.tif 000014
【図１３Ａ】
2015513128.tif 000015
【図１３Ｂ】
2015513128.tif 000016
【図１４】
2015513128.tif 000017
【図１５】
2015513128.tif 000018
【図１６】
2015513128.tif 000019
【図１７】
2015513128.tif 000020
【図１８】
2015513128.tif 000021
【図１９】
2015513128.tif 000022
【図２０】
2015513128.tif 000023
【図２１】
2015513128.tif 000024
【図２２】
2015513128.tif 000025
【図２３】
2015513128.tif 000026
【図２４】
2015513128.tif 000027
【図２５】
2015513128.tif 000028
【図２６】
2015513128.tif 000029
【図２７】
2015513128.tif 000030
【図２８Ａ】
2015513128.tif 000031
【図２８Ｂ】
2015513128.tif 000032
【図２９】
2015513128.tif 000033
【図３０】
2015513128.tif 000034
【図３１】
2015513128.tif 000035
【国際調査報告】
2015513128.tif 000036
2015513128.tif 000037
2015513128.tif 000038
2015513128.tif 000039