(57)【要約】  例示的な実施形態では、ローカルネットワーククライアントは共有ゲートウェイに関する情報にアクセスして、実際の帯域幅消費量を決定することができる。クライアントは、このような共有ゲートウェイの総容量を取得することもできる。クライアント自体の帯域幅消費に関する自らの認識を使用して、他のローカルネットワーククライアントの共有ゲートウェイの使用量を決定することができる。こうしたすべての情報、すなわち共有ゲートウェイの総容量、共有ゲートウェイの実際の使用量、およびローカルネットワーク内の他のクライアントによる使用量を使用して、クライアントは、バックグラウンドファイルの転送を調整またはスロットルすることによって、共有ゲートウェイを介する実際のデータ転送を使用可能な総容量の合理的なパーセンテージ内に維持することができる。つまり、クライアントは、共有ゲートウェイを介する使用量に基づいてクライアント自体のバックグラウンド転送システムのデータ転送を調整することによって、他のローカルネットワークコンピューティングマシンの共有ゲートウェイの使用を優先することになる。
2009501496.tif 000002
【特許請求の範囲】
【請求項１】
分散コンピューティングシステムにおいて、ローカルネットワークとリモートネットワークの間にある共有ゲートウェイについて、他のローカルネットワークコンピューティングマシンの使用を優先することにより、前記共有ゲートウェイを介してバックグラウンドファイルを転送するための実効的な使用可能帯域幅を制御し、推定する方法であって、前記方法は、
複数のローカルネットワーククライアントをリモートネットワークの１つまたは複数のコンピューティングシステムにリンクする共有ゲートウェイを介するデータ転送の総帯域幅容量を決定する動作であって、前記複数のローカルネットワーククライアントの少なくとも１つは、前記共有ゲートウェイを介した実際の帯域幅消費が事前に指定されたしきい値を下回る期間にデータファイルを転送するように構成されたバックグラウンドデータ転送モジュールを含む動作と、
前記共有ゲートウェイを介するデータ転送の前記実際の帯域幅消費に関する統計情報を受信する動作と、
前記バックグラウンドデータ転送モジュールを含む前記複数のローカルネットワーククライアントの前記少なくとも１つに対応するデータ転送のバックグラウンドデータ転送の帯域幅消費量を決定する動作と、
少なくとも前記共有ゲートウェイを介したデータ転送の前記総帯域幅容量と実際の帯域幅消費を比較する動作と、
前記比較に基づいて、バックグラウンドデータ転送の前記帯域幅消費の量をスロットルすることによって、前記複数のローカルネットワーククライアントの前記共有ゲートウェイを介する他のアクティビティとの干渉を軽減する動作と
を備えることを特徴とする方法。
【請求項２】
前記方法は、
前記複数のローカルネットワーククライアントの前記少なくとも１つの前記共有ゲートウェイを介した総帯域幅消費を決定する動作と、
前記複数のローカルネットワーククライアントの前記少なくとも１つの前記共有ゲートウェイを介した前記総帯域幅消費を前記共有ゲートウェイ介するデータ転送の前記総帯域幅容量および実際の帯域幅消費と比較することにより、前記複数のローカルネットワーククライアントの中から他のローカルネットワーククライアントの前記共有ゲートウェイを介した帯域幅消費を決定する動作であって、前記共有ゲートウェイを介した前記バックグラウンドデータ転送の帯域幅消費量をスロットルすることは前記他のローカルネットワーククライアントの帯域幅消費にさらに基づく動作と
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記バックグラウンドデータ転送の帯域幅消費量をスロットルすることは、前記他のローカルネットワーククライアントの前記共有ゲートウェイを介した前記帯域幅消費、前記共有ゲートウェイを介したデータ転送の前記総帯域幅容量、および前記共有ゲートウェイを介したデータ転送の前記実際の帯域幅消費に対するバックグラウンドデータ転送の帯域幅消費のパーセンテージに基づいて決定されることを特徴とする請求項２に記載の方法。
【請求項４】
前記方法は、
前記複数のローカルネットワーククライアントの１つまたは複数の１つまたは複数のローカルネットワークインターフェイスを使用したローカルネットワーク帯域幅消費を決定する動作と、
前記決定されたローカルネットワーク帯域幅消費を、前記共有ゲートウェイを介した前記帯域幅消費と比較する動作と、
前記バックグラウンドデータ転送の帯域幅消費量をスロットルするにあたって、前記比較に基づき、前記決定されたローカルネットワーク帯域幅消費または前記共有ゲートウェイを介したデータ転送の前記実際の帯域幅消費を使用する動作と
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
ＵＰｎＰを使用して、前記共有ゲートウェイ上のデータ転送の実際の帯域幅消費に関する前記統計情報を取得することを特徴とする請求項１に記載の方法。
【請求項６】
前記複数のローカルネットワーククライアントのそれぞれはバックグラウンドデータ転送モジュールを含み、前記方法は、
前記複数のローカルネットワーククライアントのそれぞれのバックグラウンドデータ転送について、少なくとも前記共有ゲートウェイを介した前記帯域幅消費を決定する動作と、
前記決定に基づき、前記共有ゲートウェイの前記実際の帯域幅消費量が事前に指定されたしきい値未満に維持されるように、前記複数のローカルネットワーククライアントの１つまたは複数のバックグラウンドデータ転送をスロットルする動作と
をさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
分散コンピューティングシステムにおいて、ローカルネットワークとリモートネットワークの間にある共有ゲートウェイについて、他のローカルネットワークコンピューティングマシンの使用を優先することにより、前記共有ゲートウェイを介してバックグラウンドファイルを転送するための実効的な使用可能帯域幅を制御し、推定する方法であって、
少なくとも前記共有ゲートウェイの総帯域幅容量と前記共有ゲートウェイを介してデータを転送するための実際の帯域幅消費に関する統計情報との比較に基づき、複数のローカルネットワーククライアントの少なくとも１つについて決定されたバックグラウンドデータ転送の帯域幅消費量をスロットルすることによって、前記共有ゲートウェイを介する他のアクティビティとの干渉を軽減するステップであって、前記共有ゲートウェイは前記複数のローカルネットワーククライアントをリモートネットワークの１つまたは複数のコンピューティングシステムにリンクし、前記複数のローカルネットワーククライアントの前記少なくとも１つは、前記共有ゲートウェイを介した実際の帯域幅消費が事前に指定したしきい値未満である期間にデータファイルを転送するように構成されたバックグラウンドデータ転送モジュールを含むステップと
を備えることを特徴とする方法。
【請求項８】
前記方法は、
前記複数のローカルネットワーククライアントの前記少なくとも１つの前記共有ゲートウェイを介する総帯域幅消費を決定する動作と、
前記複数のローカルネットワーククライアントの前記少なくとも１つの前記共有ゲートウェイを介する前記総帯域幅消費を、前記共有ゲートウェイを介する前記総帯域幅容量および実際の帯域幅消費と比較することにより、前記複数のローカルネットワーククライアントの中から他のローカルネットワーククライアントの前記共有ゲートウェイを介した帯域幅消費を決定する動作であって、前記共有ゲートウェイを介した前記バックグラウンドデータ転送の帯域幅消費量をスロットルすることは前記他のローカルネットワーククライアントの帯域幅消費にさらに基づくステップと
をさらに備えることを特徴とする請求項７に記載の方法。
【請求項９】
前記バックグラウンドデータ転送の帯域幅消費量の前記スロットリングは、前記他のローカルネットワーククライアントの前記共有ゲートウェイを介した前記帯域幅消費、前記共有ゲートウェイを介したデータ転送の前記総帯域幅容量、および前記共有ゲートウェイを介したデータ転送の前記実際の帯域幅消費に対するバックグラウンドデータ転送の帯域幅消費のパーセンテージに基づいて決定されることを特徴とする請求項８に記載の方法。
【請求項１０】
前記方法は、
前記複数のローカルネットワーククライアントの１つまたは複数の１つまたは複数のローカルネットワークインターフェイスを使用してローカルネットワーク帯域幅消費を決定する動作と、
前記決定されたローカルネットワーク帯域幅消費を、前記共有ゲートウェイを介する前記帯域幅消費と比較する動作と、
前記バックグラウンドデータ転送の帯域幅消費量をスロットルするにあたって、前記比較に基づき、前記決定されたローカルネットワーク帯域幅消費または前記共有ゲートウェイを介したデータ転送の前記実際の帯域幅消費を使用する動作と
をさらに備えることを特徴とする請求項７に記載の方法。
【請求項１１】
ＵＰｎＰを使用して、前記共有ゲートウェイ上のデータ転送の実際の帯域幅消費に関する前記統計情報を取得することを特徴とする請求項７に記載の方法。
【請求項１２】
前記複数のローカルネットワーククライアントのそれぞれはバックグラウンドデータ転送モジュールを含み、前記方法は、
少なくとも前記複数のローカルネットワーククライアントのそれぞれのバックグラウンドデータ転送の前記共有ゲートウェイを介した前記帯域幅消費を決定する動作と、
前記決定に基づき、前記共有ゲートウェイの前記実際の帯域幅消費量が事前に指定されたしきい値未満に維持されるように、前記複数のローカルネットワーククライアントの１つまたは複数のバックグラウンドデータ転送をスロットルする動作と
をさらに備えることを特徴とする請求項７に記載の方法。
【請求項１３】
分散コンピューティングシステムにおいて、ローカルネットワークとリモートネットワークの間にある共有ゲートウェイについて、他のローカルネットワークコンピューティングマシンの使用を優先することにより、前記共有ゲートウェイを介したバックグラウンドファイルを転送するための実効的な使用可能帯域幅を制御し、推定する方法を実施するためのコンピュータプログラムプロダクトであって、プロセッサによって実行されるとｐｕｂ−ｓｕｂコンピューティングシステムに、
複数のローカルネットワーククライアントをリモートネットワークの１つまたは複数のコンピューティングシステムにリンクする共有ゲートウェイを介したデータ転送の総帯域幅容量を決定することであって、前記複数のローカルネットワーククライアントの少なくとも１つは、前記共有ゲートウェイを介した実際の帯域幅消費が事前に指定されたしきい値を下回る期間にデータファイルを転送するように構成されたバックグラウンドデータ転送モジュールを含むことと、
前記共有ゲートウェイを介したデータ転送の前記実際の帯域幅消費に関する統計情報を受信することと、
前記バックグラウンドデータ転送モジュールを含む前記複数のローカルネットワーククライアントの前記少なくとも１つに対応するデータ転送についてバックグラウンドデータ転送の帯域幅消費量を決定することと、
少なくとも前記共有ゲートウェイを介するデータ転送の前記総帯域幅容量を実際の帯域幅消費と比較することと、
前記比較に基づいて、バックグラウンドデータ転送の前記帯域幅消費の量をスロットルすることによって、前記複数のローカルネットワーククライアントの前記共有ゲートウェイを介した他のアクティビティとの干渉を軽減することと
を行わせるコンピュータ実行可能命令を格納した１つまたは複数のコンピュータ可読メディアを備えたことを特徴とするコンピュータプログラムプロダクト。
【請求項１４】
前記リモートネットワークは、インターネット、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネットゲートウェイデバイス経由で接続されたサブネットにサブ分割されたイントラネットの１つであることを特徴とする請求項１３に記載のコンピュータプログラムプロダクト。
【請求項１５】
前記分散コンピューティングシステムに、
前記複数のローカルネットワーククライアントの前記少なくとも１つの前記共有ゲートウェイを介する総帯域幅消費を決定することと、
前記複数のローカルネットワーククライアントの少なくとも１つの前記共有ゲートウェイを介する前記総帯域幅消費を、前記共有ゲートウェイを介した前記総帯域幅容量および実際の帯域幅消費と比較することにより、前記複数のローカルネットワーククライアントの中から他のローカルネットワーククライアントの前記共有ゲートウェイを介した帯域幅消費を決定することであって、前記共有ゲートウェイを介した前記バックグラウンドデータ転送の帯域幅消費量をスロットルすることは前記他のローカルネットワーククライアントの前記帯域幅消費に基づくことと
を行わせるコンピュータ実行可能命令をさらに備えたことを特徴とする請求項１３に記載のコンピュータプログラムプロダクト。
【請求項１６】
前記バックグラウンドデータ転送の帯域幅消費量の前記スロットリングは、前記他のローカルネットワーククライアントの前記共有ゲートウェイを介した前記帯域幅消費、前記共有ゲートウェイを介したデータ転送の前記総帯域幅容量、および前記共有ゲートウェイを介したデータ転送の前記実際の帯域幅消費に対するバックグラウンドデータ転送帯域幅消費のパーセンテージに基づいて決定されることを特徴とする請求項１５に記載のコンピュータプログラムプロダクト。
【請求項１７】
前記分散コンピューティングシステムに、
前記複数のローカルネットワーククライアントの１つまたは複数の１つまたは複数のローカルネットワークインターフェイスを使用してローカルネットワーク帯域幅消費を決定することと、
前記決定されたローカルネットワーク帯域幅消費を、前記共有ゲートウェイを介した前記帯域幅消費と比較することと、
前記バックグラウンドデータ転送の帯域幅消費の量をスロットルするにあたって、前記比較に基づき、前記決定されたローカルネットワーク帯域幅消費または前記共有ゲートウェイを介したデータ転送の前記実際の帯域幅消費を使用することと
を行わせるコンピュータ実行可能命令をさらに備えたことを特徴とする請求項１３に記載のコンピュータプログラムプロダクト。
【請求項１８】
前記データ転送は、前記ローカルネットワークの入出の両方のデータ転送を含むことを特徴とする請求項１３に記載のコンピュータプログラムプロダクト。
【請求項１９】
ＵＰｎＰを使用して、前記共有ゲートウェイ上のデータ転送の前記実際の帯域幅消費に関する統計情報を取得することを特徴とする請求項１３に記載のコンピュータプログラムプロダクト。
【請求項２０】
前記複数のローカルネットワーククライアントのそれぞれはバックグラウンドデータ転送モジュールを含み、前記コンピュータプログラムプロダクトは、前記分散コンピューティングシステムに、
少なくとも前記複数のローカルネットワーククライアントのそれぞれのバックグラウンドデータ転送の前記共有ゲートウェイを介した前記帯域幅消費を決定することと、
前記決定に基づき、前記共有ゲートウェイの前記実際の帯域幅消費量が事前に指定されたしきい値未満に維持されるように、前記複数のローカルネットワーククライアントの１つまたは複数のバックグラウンドデータ転送をスロットルすることと
を行わせるコンピュータ実行可能命令をさらに備えたことを特徴とする請求項１３に記載のコンピュータプログラムプロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲートウェイデバイスの背後でのバックグラウンドネットワーク帯域幅の共有に関する。
【背景技術】
【０００２】
コンピュータ化されたシステムは、人のタスクを行う能力に対して多くの利点を提供する。実際に、コンピュータシステムの情報を処理する能力は、私たちが生活し、仕事をする仕方を変容してきた。現在では一般的にコンピュータシステムは、コンピュータシステムが出現する前は手動で行われていたタスク（たとえば、ワードプロセシング、スケジューリング、データベース管理など）のホストを実行している。ごく最近では、複数のコンピューティングシステムが相互に接続されることによってコンピュータネットワークが構成され、コンピュータシステムはこうしたネットワークを介して電子的に通信し、データを共有することができる。結果として、コンピュータシステムで実行される多くのタスク（たとえば、電子メールのアクセス、Ｗｅｂブラウジング、マルチメディアコンテンツのダウンロードなど）には、コンピュータネットワーク（たとえばインターネット）を経由した１つまたは複数の他のシステムとの電子通信が含まれる。
【０００３】
多くの場合、コンピュータネットワーク上の電子通信には、サーバーコンピューティングシステム（本明細書では「サーバー」または「サービス」と呼ぶ）のサービス（たとえば、電子メール、Ｗｅｂサービスアカウント、アップデートアカウントなど）へのアクセス要求するクライアントコンピュータシステム（本明細書では「クライアント」または「コンピューティングデバイス」と呼ぶ）が含まれる。たとえば、今日、何百万台ものパーソナルコンピュータ（ＰＣ：ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）がインターネットに接続されており、さまざまなサーバーと通信している。このようなクライアントの多くは、リモートサーバーからインターネットを介して新しいソフトウェアまたはアップデートされたソフトウェアのダウンロードを要求することによりこうしたソフトウェアを入手している。
【０００４】
新しいソフトウェアおよびアップデートされたソフトウェアなどのデータをリモートネットワーク（たとえばインターネット）経由でＰＣにダウンロード／アップロードする従来の方法は、ＰＣのユーザーがリモートネットワークを介してコンテンツにアクセス（たとえばインターネットをブラウズ）する機能に干渉する。処理速度が向上したことにより、ユーザーのブラウジングまたはデータ取得の体験上で大きなボトルネックとなるのはリモートネットワークへの帯域幅である。たとえば、一般的なダウンロード／アップロードの転送により、ネットワーク内のクライアントシステムからサーバーまでの間で最も低速のポイントが飽和することになる。低速のネットワークノードがインターネットゲートウェイデバイス（ＩＧＤ：Ｉｎｔｅｒｎｅｔ  Ｇａｔｅｗａｙ  Ｄｅｖｉｃｅ）である場合に、このマシンとＩＧＤを共有するその他のマシンの両方から発生する他のすべてのトラフィックは、こうしたマシンによるネットワークの利用を厳しく制限することによって影響を受ける。さらに、ダウンロード／アップロードが何らかの理由で中断された場合は（たとえば、リモートネットワークの接続が失われた場合）、ファイルの転送を最初から再開する必要があり、このようにして多くのネットワークリソースが無駄になることがある。他の従来のダウンロード／アップロードソフトウェアでは、ユーザーが送信を指定した時刻にスケジュールできるが、それでもこうしたスケジューリングによってユーザーはこれらの期間にわたって他のネットワークアクティビティに従事する機能を制限されることになる。
【０００５】
ソフトウェアなどのデータの転送によってユーザーはリモートネットワーク上の他のデータへのアクセス機能を制限されるが、今日のコンピュータシステムがますます普及し続ける状況においてこうしたソフトウェアやその他のコンテンツのダウンロード／アップロードは非常に重要である。たとえば、ソフトウェアアップデートの提供は、問題を修正し、ＰＣのパフォーマンスを向上するため、ＰＣユーザーにとって有益である。さらに、ソフトウェアベンダーにとっては製品サポートに関する電話の件数が減少し、したがって、アップデートを提供しない場合にベンダーがこうした電話の対応に割り当てる可能性のあるリソースが大幅に削減されるという効果がある。
【０００６】
リモートネットワークリンクを経由したデータのダウンロード／アップロードへの需要が高いことから、ソフトウェアアップデートなどのデータを転送する場合に他のリモートネットワークアクティビティへの妨害を軽減する試みがなされている。たとえば、最近システムはリモートネットワーク帯域幅の利用レベルが比較的低い期間（「リモートネットワークのアイドル期間」と呼ばれることもある）を決定するように構成されている。こうしたシステムでは、ローカルネットワークインターフェイス（たとえばネットワークカード）を使用して利用レベルのしきい値を計算することにより、帯域幅消費レベルの推定値を監視する。こうして計算されたしきい値を下回る場合は、クライアントおよびサーバー間のデータ転送は他のリモートネットワークアクティビティと干渉する可能性が低い。したがって、使用量のレベルがこのようなしきい値を下回る場合に、クライアントは定期的にサーバーに接続し、ソフトウェアまたはアップデートの小部分をダウンロードする。ソフトウェアプログラム、使用可能なアップデート、またはその他のデータのすべての部分が適切なデバイスに転送されるまで、このプロセスを継続することができる。換言すると、優先順位の低いデータのダウンロード／アップロードはリモートネットワークのアイドル期間に「バックグラウンド（ｂａｃｋｇｒｏｕｎｄ）」プロセスでリモートネットワークリンクを介して転送することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
こうしたバックグラウンドデータ転送システムには、他のネットワークアクティビティとの干渉を排除するという大きな効果があるが、このようなモデルにはいくつかの欠点もある。たとえば、前述のように、バックグラウンド転送システムによって実施されるスロットリング技術はローカルネットワークインターフェイス（たとえばネットワークカード）から取得されるネットワークトラフィックの測定値を利用して実効的な使用可能帯域幅を制御し、推定する。このアプローチは多くのネットワークトポロジにおいて妥当であるが、一部の構成ではこの技術を使用して取得できる情報はバックグラウンド転送システムが正確なスロットリングを行うために十分ではない。
【０００８】
このように問題のあるネットワークトポロジの例として、ローカルネットワーク上のコンピュータは適度に高速のネットワークリンク（たとえば１００  Ｍｂｐｓのネットワークハブおよびネットワークカード）を使用して相互に接続されているが、インターネット接続を提供するデバイス（たとえばデジタル加入者回線（ＤＳＬ：Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）のモデム）ははるかに低速で動作する典型的なホームネットワークがある。このような場合に、ＤＳＬボックスは「ゲートウェイデバイス」の役割を果たし、実際にローカルネットワークと外部のネットワークまたはリモートネットワーク（たとえばインターネット）とのデータ転送を実現できる最高速度の上限を定めるネットワークのセグメントである。したがって、ネットワークトラフィックの測定がローカルネットワークインターフェイスレベルで実行された場合は、低速のゲートウェイデバイスに代表される「ボトルネック」を検出できない。さらに、ローカルネットワークに接続されたシステムによるゲートウェイデバイスでの全体的な帯域幅消費は、システムごとの孤立したネットワークインターフェイスからは測定できない。
【課題を解決するための手段】
【０００９】
上で指摘したバックグラウンド転送サービスの不備や欠点は、本発明の例示的な実施形態によって克服される。この要約では、後述の発明の詳細な説明でさらに説明するいくつかの概念を簡略化した形で紹介するために提供されることに留意されたい。しかし、この要約は、請求対象の重要な特徴または必須の特徴を特定するものではなく、また、請求対象の範囲を決定するために使用するものでもない。
【００１０】
１つの実施形態では、ローカルネットワークとリモートネットワークの間の共有ゲートウェイについて、他のローカルネットワークコンピューティングマシンの使用を優先することによって、共有ゲートウェイを介してバックグラウンドファイルを転送するための実効的な使用可能帯域幅を制御し、推定するための方法、システム、およびコンピュータプログラムプロダクトが提供される。本実施形態では、共有ゲートウェイを介してデータを転送するための総帯域幅容量が決定される。共有ゲートウェイは複数のローカルネットワーククライアンをリモートネットワークの１つまたは複数のコンピューティングシステムにリンクし、複数のローカルネットワーククライアントの少なくとも１つは、共有ゲートウェイを介した実際の帯域幅消費が事前に指定されたしきい値を下回る期間にデータファイルを転送するように構成されたバックグラウンドデータ転送モジュールを含む。さらに、共有ゲートウェイを介したデータ転送の実際の帯域幅消費に関する統計情報が受信される。また、バックグラウンドデータ転送モジュールを含む少なくとも１つのローカルネットワーククライアントに対応するデータ転送に関して、バックグラウンドデータ転送による帯域幅消費の量が決定される。その後で、共有ゲートウェイデバイスを介したデータ転送の総帯域幅容量と実際の帯域幅消費とが比較される。この比較に基づいて、バックグラウンドデータ転送による帯域幅消費の量をスロットルすることによって、複数のローカルネットワーククライアントの共有ゲートウェイを介した他のアクティビティへの干渉が軽減される。
【００１１】
本発明のその他の特徴と利点については、この後の説明で示すが、一部はこの説明から明らかとなるか、本発明の実施によって理解できよう。本発明の特徴と利点は、添付の特許請求の範囲に特に指定した手段および組合せによって実現でき、達成できる。本発明のこれらの特徴およびその他の特徴は、以下の説明と添付の特許請求の範囲からさらに完全に明らかになるか、本明細書の以下に示す本発明の実施によって理解できよう。
【発明を実施するための最良の形態】
【００１２】
本発明の前述およびその他の利点と特徴を実現することができる態様を説明するために、以上に簡単に説明した本発明のより詳しい説明を、添付の図面に示す特定の実施形態を参照して記述することにする。これらの図面が本発明の代表的な実施形態を示すにすぎず、それゆえ本発明の範囲を限定するものとは見なされないことを認識した上で、本発明について添付の図面を使用しながらより具体的に詳細に記述し、説明することにする。
【００１３】
本発明は、共有ゲートウェイデバイスを介してバックグラウンドファイルまたはバックグラウンドデータを転送するための実効的な使用可能帯域幅を推定するための方法、システム、およびコンピュータプログラムプロダクトに及ぶ。本発明の実施形態は、以下で詳説するように、さまざまなコンピュータハードウェアまたはモジュールを含む専用コンピュータまたは汎用コンピュータを備えることができる。
【００１４】
前述のように、転送または受信システムのローカルネットワークインターフェイス（たとえばネットワークカード）で容量を決定し、帯域幅を測定するのはローカルなソリューションであり、共有ローカルネットワーク環境で実際の使用可能な帯域幅を誤って表現している。たとえば、システムが大容量のインターフェイスカード（たとえば１０〜１００  Ｍｂｐｓ）と５６ｋモデムによるインターネットへの限定されたリンクを有する場合に、転送速度は実際の５６ｋモデムでなくネットワークインターフェイスカードで使用可能な帯域幅容量から導出される。複数のシステムが接続のポイントを共有する場合は、１つのシステムのローカルネットワークインターフェイスカードの容量と導出された使用可能帯域幅は、共有する接続ポイントを経由して送信または受信された他のシステムの累計トラフィックを計上していない。こうした不正確なスロットリングレート（ｔｈｒｏｔｔｌｉｎｇ  ｒａｔｅｓ）によってボトルネックが発生し、リモートネットワークまたはインターネットの接続ポイントが飽和する可能性がある。
【００１５】
１つの例示的な実施形態により、以上で指摘したバックグラウンドファイル転送モデルの不備に対する１つのソリューションは、各ローカルネットワーククライアントがローカルネットワークの外部へのデータ転送についてその瞬間の帯域幅消費に関する情報を共有できるようにすることである。この情報には、バックグラウンドデータ転送の情報とフォアグラウンド帯域幅消費の両方を含めることができる。ローカルネットワークのクライアント間で共有されるゲートウェイデバイスの総容量に関する知識を使用して、各クライアントはゲートウェイを介した実際の帯域幅消費を決定し、これを共有ゲートウェイの容量と比較し、そしてしきい値に基づいて（以下で詳説するように）そのバックグラウンドデータ転送速度を適切に調整またはスロットルすることができる。
【００１６】
前述の例示的な実施形態は、現在のバックグラウンド転送サービスモデルの不備を克服するための１つのモデルを提供するが、このソリューションにもいくつかの不備や欠点がある。たとえば、ローカルネットワークの各クライアントはその情報をその他のローカルネットワークのコンピューティングデバイスと共有するように構成されるか、またはそうした能力を有するべきである。たとえ１台のコンピューティングデバイスがこのような能力を有していないだけでも、共有ゲートウェイを介したネットワークトラフィックを正確に表すことはほとんど不可能である。さらに、各コンピューティングデバイスの帯域幅消費に関する情報を共有すると、ローカルネットワークの各コンピュータ間で帯域幅消費に関する情報を共有する必要があるので、ローカルネットワーク上の負荷は増大する。
【００１７】
前述の欠点により、他の例示的な実施形態では、帯域幅の測定をローカルリンクとリモートネットワーク（たとえばインターネット）への接続との間にある共有ゲートウェイデバイスの外部に移動することによって、バックグラウンド転送サービスのスロットリング精度を向上するためのソリューションを提供する。こうした共有ゲートウェイデバイスは、インターネット接続共有ソフトウェアが動作するコンピュータ、ネットワークアドレス変換（ＮＡＴ：Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓｉｎｇ  Ｔｒａｎｓｌａｔｉｏｎ）ボックス、またはモデム、ＤＳＬ回線、ケーブルモデム、Ｔ１回線などを共有するより高度なゲートウェイデバイスなどのデバイスを含むことができる。複数のシステムが、バイトカウンタサポートのゲートウェイデバイスを通して１つの接続ポイントを共有するので、バックグラウンド転送サービスは、どれだけの使用可能帯域幅をバックグラウンド転送サービスまたはバックグラウンドファイル転送に使用できるかを計算するときに、システムの累積的なインバウンドトラフィックおよびアウトバウンドトラフィックを考慮できる。
【００１８】
換言すると、ローカルネットワーククライアントは共有ゲートウェイから情報にアクセスし、共有ゲートウェイを介する実際の帯域幅消費の量を決定することができる。また、クライアントは、以下でより詳細に説明するさまざまな手段を通じて、このような共有ゲートウェイの総容量を取得することもできる。クライアントは、クライアント自体の共有ゲートウェイに入るまたは出るデータ転送の帯域幅消費に関する自らの知識を使用して、他のクライアントによる共有ゲートウェイの使用量を決定できる。こうしたすべての情報、すなわち共有ゲートウェイの総容量、共有ゲートウェイの実際の使用量、およびローカルネットワーク内の他のクライアントまたはコンピューティングデバイスによる使用量を用いて、自身のバックグラウンドファイルの転送を調整またはスロットルすることによって、共有ゲートウェイを介する実際のデータ転送を使用可能な総容量の合理的なまたは望ましいパーセンテージの範囲内に維持することができる。つまり、クライアントは、クライアント自体のバックグラウンド転送システムのデータ転送を調整することによって、他のローカルネットワークコンピューティングマシンによる共有ゲートウェイの使用を優先させることになる。
【００１９】
本発明のさまざまな実施形態についてさらに詳しく説明する前に、本発明の原理を実装するために使用できる適切なコンピューティングアーキテクチャについて図３に関連して説明する。以下の説明では、本発明の実施形態について、他の指定がない限り、１台または複数台のコンピュータによって実行される動作（ａｃｔｓ）またはオペレーションのシンボリック表現を参照して説明する。したがって、こうした動作およびオペレーション（ときにコンピュータで実行されると称される）には、構造化された形式のデータを表現する電子信号についてコンピュータのプロセシングユニットによる操作が含まれることは理解されるであろう。この操作は、データを変形したりコンピュータのメモリシステム内の場所に保持したりして、この分野の当業者に周知の方法でコンピュータのオペレーションが再設定されたり変更されたりする。データが保持されるデータ構造は、データのフォーマットによって定義される特定のプロパティを有するメモリの物理的な場所である。しかし、本発明の原理について前述のコンテキストで説明されているが、これは限定を意味するものではなく、以下で説明するさまざまな動作およびオペレーションをハードウェアでも実施できることを当業者は理解するであろう。
【００２０】
図面に戻ると、同様の参照番号は同様の要素を示しており、適切なコンピューティング環境内で本発明の原理が実装されるものとして示されている。以下の説明は、本発明の図示された実施形態に基づいており、本明細書で明示的に説明しない代替の実施形態に関して本発明を限定するものと理解してはならない。
【００２１】
図３は、こうしたデバイスに使用できる例示的なコンピュータアーキテクチャを示す概略図である。説明のために、図示されたアーキテクチャは適切な環境の１つの例にすぎず、本発明の使用または機能の範囲に関するいかなる限定を示すものでもない。また、本コンピューティングシステムは、図３に示すコンポーネントの１つまたは組合せに関して依存性も要件もないものとする。
【００２２】
本発明の原理は、他のさまざまな汎用または専用のコンピューティング環境または通信環境または構成でも動作可能である。本発明で使用するのに適した周知のコンピューティングシステム、環境、および構成の例には、モバイル電話、ポケットコンピュータ、パーソナルコンピュータ、サーバー、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ミニコンピュータ、メインフレームコンピュータ、および前述の任意のシステムまたはデバイスを含む分散コンピューティング環境などが含まれるが、これらに限定はされない。
【００２３】
その最も基本的な構成において、コンピューティングシステム３００は一般に少なくとも１つのプロセシングユニット３０２とメモリ３０４を含む。メモリ３０４は揮発性（ＲＡＭなど）、不揮発性（ＲＯＭまたはフラッシュメモリなど）、あるいはその両方の組合せのいずれでもよい。この最も基本的な構成は、図１に破線３０６で示されている。この説明および請求項において、「コンピューティングシステム」はある機能を行うソフトウェア、ファームウェア、またはマイクロコードを実行できる任意のハードウェアコンポーネントまたはハードウェアコンポーネントの組合せとして定義される。コンピューティングシステムは、分散されて分散機能を実現することもできる。
【００２４】
ストレージメディアデバイスは、その他の特徴および機能を有していてもよい。たとえば、こうしたデバイスにはＰＣＭＣＩＡカード、磁気ディスクや光ディスク、および磁気テープが含まれるが、それらに限定されない追加のストレージ（リムーバブルおよび非リムーバブル）を含むことができる。こうした追加のストレージは、図３ではリムーバブルストレージ３０８および非リムーバブルストレージ３１０として示されている。コンピュータストレージメディアには、コンピュータ可読の命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納する任意の方法または技術で実装された、揮発性と不揮発性、およびリムーバブルと非リムーバブルのメディアが含まれる。メモリ３０４、リムーバブルストレージ３０８、非リムーバブルストレージ３１０は、いずれもコンピュータストレージメディアの例である。コンピュータストレージメディアには、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリなどのメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）などの光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージなどの磁気ストレージデバイス、または必要な情報を格納でき、コンピューティングシステムからアクセスできる他の任意のメディアが含まれるが、これらに限定はされない。
【００２５】
本明細書で使用する限り、「モジュール」または「コンポーネント」という用語は、コンピューティングシステム上で実行されるソフトウェアオブジェクトまたはルーチンを表すことができる。本明細書で説明するさまざまなコンポーネント、モジュール、エンジン、およびサービスは、コンピューティングシステム上で実行されるオブジェクトまたはプロセスとして（たとえば個別のスレッドとして）実装することができる。本明細書で説明されているシステムおよび方法はソフトウェアとして実装されるのが好ましいが、ソフトウェアおよびハードウェアによる実装またはハードウェアによる実装も可能であり、想定されている。この説明において、「コンピューティングエンティティ」は本明細書ですでに定義した任意のコンピューティングシステムでも、コンピューティングシステム上で動作する任意のモジュールまたはモジュールの組合せでもよい。
【００２６】
さらに、コンピューティングシステム３００は、ホストが他のシステムおよびデバイス（たとえばネットワーク３２０）と通信できるようにする通信チャネル３１２を収容してもよい。通信チャネル３１２は通信メディアの例である。通信メディアは、一般に搬送波やその他の搬送メカニズムのような変調データ信号にコンピュータ可読の命令、データ構造、プログラムモジュール、またはその他のデータなどを具体化し、任意の情報伝達メディアを含む。限定ではなく、例として、通信メディアには、有線ネットワークや直接ワイヤ接続などの有線メディア、音、ラジオ、ＲＦ、赤外線などの無線メディアが含まれる。コンピュータ可読メディアという用語は、本明細書で使用する限り、ストレージメディアと通信メディアの両方を含む。
【００２７】
コンピューティングシステム３００は、さらにキーボード、マウス、ペン、音声入力コンポーネント、タッチ入力デバイスなどの入力コンポーネント３１４を有してもよい。出力コンポーネント３１６には、スクリーンディスプレイ、スピーカー、プリンタなど、およびこれらを駆動するレンダリングモジュール（「アダプタ」とも呼ばれる）が含まれる。コンピューティングシステム３００は、パワーサプライ３１８を有する。すべてのこのようなコンポーネントは当業者には周知であり、本明細書では詳しく説明する必要はない。
【００２８】
図１ＡおよびｌＢは、例示的な実施態様によるバックグラウンドデータ転送モジュール１３５を利用する分散システム１００のさまざまなトポロジーを示している。分散システム１００は、図３に関連してすでに説明したコンピューティングシステム３００と同様でもよいが、そうである必要はない。図１Ａに示すように、分散システム１００は共有ゲートウェイ１２０を介して接続されたローカルネットワーク１２５およびリモートネットワーク１０５の両方を含む。ローカルネットワーク１２５はリング構成（各クライアント１４０、１４５、１５０がリングの形に接続され１１５）で示されているが、本発明には他のトポロジーも使用できることに留意されたい。たとえば、図１Ｂでは、ローカルネットワーク１２５クライアント１４５、１５０、１５５、１６０は直列に接続されて１１５、ツリー状の構造を形成している。しかし、もちろん本発明はこうしたトポロジーのみに限定されず、ローカルネットワーク１２５およびその中のクライアント１４０、１４５、１５０、１５５、１６０は、任意の周知の態様で配置することができる。したがって、ローカルネットワークのクライアント１４０、１４５、１５０、１５５、１６０の任意の特定のトポロジーまたは構成は、本明細書では単に説明のために使用されており、本発明の範囲を限定するものでも縮小するものでもない。
【００２９】
ローカルネットワーク１２５のトポロジーまたは構成にかかわらず、リモートネットワーク１０５に対してローカルネットワーク１２５の流入または流出するデータまたはトラフィックは１つまたは複数の共有ゲートウェイ１２０を通過することになる。共有ゲートウェイは、一般的には異なるリモートネットワーク１０５への接続１１０の転送速度およびローカルネットワーク１２５内の接続１１５のデータフロー速度を有している。リモートネットワーク１０５は、ローカルネットワーク１２５の外部にある任意のタイプのネットワークでもよいことに留意されたい。たとえば、リモートネットワーク１０５は、ワイドエリアネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ローカルエリアネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、インターネット、仮想プライベートネットワーク（ＶＰＮ：Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）などでもよい。バックグラウンドで動作するソフトウェアおよびソフトウェアアップデートは、前述のようにインターネットを介して発生するのが一般的であるが、本発明はいかなる特定のタイプのアプリケーションダウンロードまたはデータ転送にも限定されず、それゆえいかなる特定のタイプのリモートネットワーク１０５にも限定されない。したがって、特定のタイプのリモートネットワーク１０５またはローカルネットワーク１２５とリモートネットワーク１０５の間で実行されるバックグラウンドデータ転送のデータタイプの使用は、いずれも単に説明のために使用されており、明示的に請求されない限り、本発明の範囲を限定するものでも縮小するものでもない。
【００３０】
共有ゲートウェイ１２０を介して転送されるデータのタイプにもリモートネットワーク１０５のタイプにもかかわらず、例示的な実施形態は、ローカルネットワーク１２５の他のコンピューティングマシン（たとえば１４５、１５０）による共有ゲートウェイ１２０の使用を優先することにより、共有ゲートウェイ１２０を介してバックグラウンドファイルを転送するための実効的な使用可能帯域幅を制御し、推定する。再び図１Ａを参照すると、１つまたは複数のローカルネットワーク１２５のマシン１４０、１４５、１５０は、ローカルネットワークインターフェイス（ＬＮＩ：Ｌｏｃａｌ  Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ）１３０および／またはバックグラウンドデータモジュール１３５（ＢＤＴＭ：Ｂａｃｋｇｒｏｕｎｄ  Ｄａｔａ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｕｌｅ）を含むことができる。以下でさらに詳しく説明するように、共有ゲートウェイ１２０を介してバックグラウンドデータファイルを転送するための使用可能帯域幅を決定するにあたって、ローカルネットワークインターフェイス１３０またはバックグラウンドデータ転送モジュール１３５のいずれか１つを使用することができる。
【００３１】
前述のように、１つの例示的な実施形態では、ローカルネットワーク１２５の個々のクライアント１４０、１４５、１５０はそれぞれの間で（または図示されない中央のサービスを通して）共有ゲートウェイ１２０を介する帯域幅の利用を共有できる。さらに、共有データは共有ゲートウェイ１２０を介するフォアグラウンドの帯域幅消費とバックグラウンドの帯域幅消費に分割することができる。共有ゲートウェイ１２０の総容量がわかると、バックグラウンドデータ転送モジュール１３５を使用して共有ゲートウェイ１２０を介したバックグラウンドデータ転送をスロットルすることにより、ローカルネットワークで実行される他のリモートネットワーク１０５のアクティビティとの干渉を軽減する助けとなることができる。換言すると、共有ゲートウェイ１２０の総容量と各クライアント１４０、１４５、１５０のフォアグラウンド／バックグラウンドの使用量に基づいて、バックグラウンドの使用量をスロットルして、こうした使用量を他のリモートネットワーク１０５アクティビティと干渉しないように決定されたしきい値（たとえば、実際の総帯域幅すなわちフォアグラウンド／バックグラウンドの総使用量の５％）未満に維持できる。
【００３２】
共有ゲートウェイ１２０の総容量は、任意の数の周知の方法で決定することができることに留意されたい。たとえば、共有ゲートウェイ１２０の容量の定格値を使用してその総容量を推定することができる。しかし、一般的にこうした定格値は正確ではない。したがって、総容量は、共有ゲートウェイ１２０を介する最大トラフィック量を連続的に監視することによって共有ゲートウェイ１２０にわたって推定することができる。新しい最大値が測定されるたびに、こうした値を共有ゲートウェイ１２０の総容量の推定値として使用してもよい。もちろん、本発明では共有ゲートウェイ１２０の総容量を決定するためにこれ以外の方法を使用することもできる。したがって、共有ゲートウェイ１２０の総容量を決定するための特定の方法は、いずれも本明細書では単に説明のために使用されており、明示的に請求されない限り、本発明の範囲を限定するものでも縮小するものでもない。
【００３３】
他の例示的な実施形態により、さまざまなローカルネットワーク１２５クライアント１４０、１４５、１５０の帯域幅消費に関する情報を共有するのではなく、他のローカルネットワークコンピューティングマシンによる共有ゲートウェイ１２０の使用を優先する。図１Ｃを参照すると、この実施形態も前述のような同様の態様で共有ゲートウェイ１２０による総帯域幅容量１６５を決定する。さらに、前述のように、クライアント１４０はバックグラウンドデータ転送モジュール１３５を使用して、クライアント自体の共有ゲートウェイ１２０を介する総帯域幅消費（バックグラウンドデータ転送の帯域幅消費１８０を含む）を決定することができる。
【００３４】
しかし、上述のプロセスとは異なり、任意の特定の時点における共有ゲートウェイ１２０の実際の帯域幅消費に関する追加の統計情報１７０を生成し、クライアント１４０に転送できる。この情報は、共有ゲートウェイ１２０の総トラフィック（入出の両方）の推定値を表す。以下でより詳細に説明するように、この情報はユニバーサルプラグアンドプレイ（ＵＰｎＰ：Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ‘ｎ  Ｐｌａｙ）などの検出モジュールを使用して取得できる。
【００３５】
このすべての情報（すなわち、総帯域幅容量１６５、実際の帯域幅消費に関する統計情報１７０、クライアントの総帯域幅消費１７５、およびバックグラウンドデータ転送による帯域幅消費１８０）を使用して、バックグラウンドデータ転送モジュール１３５は、共有ゲートウェイ１２０を介したバックグラウンドデータ転送をスロットル１８５する。スロットリング１８５は、前述のデータの比較の結果に依存してバックグラウンドデータ転送の増加または減少とすることができることに留意されたい。したがって、明示的に請求されない限り、「スロットリング」という用語はバックグラウンドファイルの転送の速度の増加と減少の両方を含むように広義に解釈するものとする。
【００３６】
１つの実施形態では、バックグラウンドデータ転送モジュール１３５はクライアント自体の帯域幅消費１７５を実際の帯域幅消費１７０から差し引き、ローカルネットワーク１２５の他のクライアント（たとえば、１４５、１５０）のアクティビティを決定する。バックグラウンドデータ転送モジュール１３５は、総帯域幅容量１６５と他のクライアント１４５、１５０の使用量に基づいて、他のクライアント１４５、１５０を優先し、他のアクティビティ（たとえば他のクライアント１４５、１５０のアクティビティ）が総帯域幅容量１６５の特定のパーセンテージに維持されることを保証する。バックグラウンドデータ転送モジュール１３５は、残った帯域幅、すなわち共有ゲートウェイ１２０を介する最大ネットワーク容量の推定値から現在のネットワーク使用量を差し引いたもののみを使用するようにそのネットワーク使用量を調整１８５できる。このように、クライアント１４０は、ローカルネットワーク１２５の他のコンピューティングマシンの共有ゲートウェイ１２０の使用を優先する。
【００３７】
バックグラウンドデータ転送モジュール１３５は、他のクライアント１４５、１５０のアクティビティに関する情報を使用してバックグラウンドデータ転送をスロットル１８５したが、本発明には他の比較やしきい値によって決定した値も使用できることに留意されたい。たとえば、バックグラウンドデータ転送モジュール１３５は、総帯域幅容量に対する使用量のパーセンテージと実際の帯域幅消費１７０に基づいて、共有ゲートウェイ１２０を介するバックグラウンドデータ転送をスロットル１８５することができる。たとえば、バックグラウンドデータ転送モジュール１３５は、使用量または帯域幅消費のパーセンテージを一定の比率またはほぼ一定の比率に維持するようにバックグラウンドデータ転送をスロットル１８５することもできる。もちろん、共有ゲートウェイ１２０からのデータの他の使用量１７５とこうした情報の特定のクライアント１４０による使用量１７５との比較を本発明に使用できる。したがって、バックグラウンドデータ転送を決定またはスロットル１８５するために共有ゲートウェイ１２０からの情報とクライアント１４０からの帯域幅消費１７５についての特定の比較は、いずれも単に説明のために使用されており、明示的に請求されない限り、本発明の範囲を限定するものでも縮小するものでもない。
【００３８】
バックグラウンドデータ転送をスロットル１８５するために使用するしきい値や情報にかかわらず、他の例示的な実施形態では、使用可能な帯域幅は送信および受信の合計バイト数でいずれの帯域幅消費が大きいか、またはいずれの使用可能帯域幅が小さいかに基づいて、ローカルネットワークインターフェイス１３０または共有ゲートウェイ１２０のいずれかから計算することができる。たとえば、転送システムのローカルネットワークインターフェイス１３０カードの測定の範囲内で、共有ゲートウェイ１２０の帯域幅消費が小さく、使用可能帯域幅が大きい場合に、バックグラウンドデータ転送モジュールは最小の使用可能帯域幅（この場合はローカルネットワークインターフェイス１３０カード）の量のみを消費するように転送速度をスロットル１８５することができる。したがって、バックグラウンドデータ転送モジュール１３５は定期的に（たとえば、毎秒１回）転送速度を確認し、帯域幅消費の最大値または使用可能帯域幅の最小値に基づいて調整する必要がある。
【００３９】
これに代えてまたはこれと併用して、例示的な実施形態では前述のクライアントが共有する実施形態および共有ゲートウェイ１２０に関する情報１６５、１７０の両方を使用して、バックグラウンドデータとローカルネットワークインターフェイスの使用可能帯域幅を計算し、制御することもできる。併用する場合は、共有ゲートウェイ１２０から得られる情報１６５、１７０の共有した処理および利用を比較することにより、共有ゲートウェイ１２０を介した実際のデータ転送とローカルネットワーククライアント１４０、１４５、１５０による使用量のより正確な値を決定できる可能性があることに留意されたい。
【００４０】
前述のように、例示的な実施形態ではバックグラウンドデータ転送システムがユニバーサルプラグアンドプレイ（ＵＰｎＰ）を使用して共有ゲートウェイ１２０の統計カウンタを検出し、照会することができる。統計カウンタ（たとえば、実際の帯域幅消費に関する統計情報１７０または総帯域幅容量１６５）のプールと共有ゲートウェイ１２０の有無は、定期的に（たとえば毎秒１回）行うことができる。したがって、バックグラウンド転送システムは、ゲートウェイデバイスがローカルネットワーク１２５に追加またはローカルネットワーク１２５から削除されることをいつでも認識しているべきである。これで、スロットリング１８５に使用されるアルゴリズムは、任意の共有ゲートウェイ１２０（または場合によってはその他のデバイス）の追加または削除についてのＵＰｎＰ通知の受領により更新されるべきである。
【００４１】
例示的な実施形態は、ローカルネットワーク１２５内に複数の共有ゲートウェイ１２０デバイスがある場合にも使用できることに留意されたい。このような場合には、バックグラウンド転送システムは、使用可能帯域幅が計算され、バックグラウンド転送が伝搬する同じ共有ゲートウェイ１２０に整合するファイルバックグラウンド転送速度を適用する必要がある。他の例示的な実施形態は、転送システムに使用可能な１つまたは複数の接続ポイントの背後に複数の共有ゲートウェイ１２０がある場合に、バックグラウンドデータ転送モジュール１３５は、システムの割り当てに従って１つの共有ゲートウェイ１２０の別のゲートウェイに対する所与の重みと性能を尊重すべきである。したがって、バックグラウンドデータ転送モジュール１３５は、デバイスにバックグラウンドデータ転送速度を、システムによって指定された適切な重みと優先順位と共に照会し、スロットル１８５することができる。
【００４２】
他の例示的な実施形態では、バックグラウンドデータ転送モジュール１３５は共有ゲートウェイ１２０および関連のリモートネットワーク１０５の接続とは別の接続１１０および接続デバイスを使用するときを認識し、それに応じてスロットリング１８５を計算する。たとえば、システムがセルラアダプタ（ｃｅｌｌｕｌａｒ  ａｄａｐｔｏｒ）およびセルラネットワーク（ｃｅｌｌｕｌａｒ  ｎｅｔｗｏｒｋ）経由でリモートネットワーク１０５にログオンする場合に、バックグラウンドデータ転送モジュール１３５はシステムのローカルネットワークインターフェイス１３０（たとえばネットワークインターフェイスカード）に対して自動的にスロットル１８５し、共有ゲートウェイ１２０がない場合の帯域幅サイズ（たとえば、時間にわたって送信／受信されたバイト数／サーバーまでの推定時間と実際の時間を追跡することによって推定される）を推定することができる。
【００４３】
モバイルユーザーはその環境内の新しい場所に移動できるべきであるので、バックグラウンドデータ転送モジュール１３５は、別の共有ゲートウェイまたは他の転送デバイスの使用可能帯域幅に基づいて、直ちにかつ自動的にそのバックグラウンドファイル転送速度を調整できることを想定すべきである。たとえば、ラップトップが新しい場所に移動すると、ＵＰｎＰを使用して共有ゲートウェイ１２０をアクティブに検出し、使用可能帯域幅を照会するときに新しい共有ゲートウェイ１２０をバックグラウンドデータ転送モジュール１３５に公開することができる。さらに、ラップトップが共有ゲートウェイ１２０のないネットワーク環境に移動した場合は、これを検知し、バックグラウンドデータ転送を中断することなく直ちにローカルネットワーク統計にフォールバックすることができる。加えて、新しい共有ゲートウェイ１２０がローカルネットワーク１２５に追加された場合に、ＵＰｎＰが新しいデバイスおよび／または置換のデバイスを検出するとすぐにバックグラウンドデータ転送モジュール１３５に通知するべきである。
【００４４】
別の例示的な実施形態によれば、バックグラウンドデータ転送モジュール１３５を使用して、共有ゲートウェイ１２０を介して送信された総バイト数または受信された総バイト数が事前に指定された期間に変更されていないときを決定することができる。こうした場合において、バックグラウンドデータ転送モジュール１３５はカウンタが「スタック（ｓｔｕｃｋ）」されていると見なすことができ、ローカルネットワークインターフェイスカード１３０の値のみに基づいて転送を評価することができる。または、可能な場合はローカルネットワーク１２５クライアント１４０、１４５、１５０間での共有情報を使用することもできる。
【００４５】
また、本発明は機能的なステップおよび／または非機能的な動作を備える方法の観点から説明することもできる。以下は、本発明を実施する上で実行できるステップおよび／または動作の説明である。通常、機能的なステップは達成される結果の観点から本発明を説明するのに対して、非機能的な動作は特定の結果を実現するためのより具体的な動作を説明する。機能的なステップおよび／または非機能的な動作は特定の順序で説明でき、請求できるが、本発明はステップおよび／または動作のいかなる特定の順序または組合せにも限定される必要はない。さらに、ステップおよび／または動作の使用は請求項の引用であり、以下に示す図２の流れ図の説明において、こうした用語（ｔｅｒｍｓ）の望ましい具体的な使い方を指定するために使用される。
【００４６】
図２は、本発明のさまざまな例示的実施形態の流れ図を示している。以下に示す図２の説明は、場合によっては図１Ａ〜Ｃの対応する要素を参照している。これらの図面から特定の要素を参照できるが、こうした要素は単に説明のために使用されており、明示的に請求されない限り、本発明の範囲を限定するものでも縮小するものでもない。
【００４７】
より具体的に言えば、図２は他のローカルネットワークコンピューティングマシンの共有ゲートウェイの使用を優先することにより、ローカルネットワークとリモートネットワークとの間で共有ゲートウェイを介してバックグラウンドファイルを転送するための実効的な使用可能帯域幅を制御し、推定する方法２００の流れ図を示している。方法２００は、共有ゲートウェイを介した他のアクティビティとの干渉を軽減するステップ２３０を含む。ステップ２３０は、共有ゲートウェイを介してデータを転送するための総帯域幅容量を決定する動作２０５を含む。たとえば、共有ゲートウェイ１２０の総帯域幅容量１６５は、ゲートウェイ１２０に割り当てられた定格値に基づいて決定することができる。あるいは、総帯域幅容量１６５は、共有ゲートウェイ１２０を介して利用される最大帯域幅の統計的な監視を通じて推定することもできる。
【００４８】
共有ゲートウェイ１２０は、複数のローカルネットワーク１２５クライアント１４０、１４５、１５０、１５５、１６０をリモートネットワーク１０５内の１つまたは複数のコンピューティングシステムにリンクすることに留意されたい。リモートネットワークは、インターネット、ワイドエリアネットワーク（ＷＡＮ）、仮想プライベートネットワーク（ＶＰＮ）、インターネットゲートウェイデバイス（ＩＧＤ）経由で接続されたサブネットにサブ分割されたイントラネットとすることができる。さらに、複数のローカルネットワーククライアントの少なくとも１つ、たとえばクライアント１４０は、共有ゲートウェイ１２０を介した実際の帯域幅消費が事前に指定されたしきい値を下回る期間にデータファイルを転送するように構成されたバックグラウンドデータ転送モジュール１３５を含むことになる。
【００４９】
ステップ２３０は、さらに共有ゲートウェイを介したデータ転送の実際の帯域幅消費に関する統計情報を受信する動作２１０も含む。たとえば、クライアント１４０は共有ゲートウェイ１２０を介したデータ転送の実際の帯域幅消費に関する統計情報１７０を受信する。ＵＰｎＰを使用して、共有ゲートウェイデバイス上のデータ転送の実際の帯域幅消費に関する統計情報１７０を取得することができることに留意されたい。加えて、ＵＰｎＰを使用して共有ゲートウェイ１２０を介する最大のデータ転送速度に関するデータを取得することによって総帯域幅容量１６５を決定することができる。
【００５０】
ステップ２３０は、さらにバックグラウンドデータ転送の帯域幅消費の量を決定する動作２１５を含む。たとえば、クライアント１４０のバックグラウンドデータ転送モジュール１３５は、共有ゲートウェイを介したデータ転送のクライアント自体のバックグラウンドデータ転送の帯域幅消費１８０を決定することができる。
【００５１】
この後に、ステップ２３０は共有ゲートウェイを介したデータ転送の総帯域幅容量と実際の帯域幅消費を比較する動作２２０を含む。この比較に基づいて、ステップ２３０は、バックグラウンドデータ転送の帯域幅消費の量をスロットルする動作２２５を含む。たとえば、バックグラウンドデータ転送モジュール１３５は、総帯域幅容量１６５と実際の帯域幅消費に関する統計情報１７０を比較して、共有ゲートウェイ１２０を介するバックグラウンドデータ転送速度をスロットル１８５することができる。スロットリングは、比較の結果に基づいて共有ゲートウェイ１２０を介する帯域幅消費の増加にも減少にもなり得る。
【００５２】
前述のように、コンピューティングデバイス１４０のバックグラウンドデータ転送速度をスロットル１８５するさまざまな方法において、総帯域幅容量１６５と実際の帯域幅消費に関する統計情報１７０を使用することができることに留意されたい。たとえば、バックグラウンドデータ転送の帯域幅消費１８０は、総帯域幅容量１６５と比較した実際の帯域幅消費１７０の特定のパーセンテージでもよい。このようにして、クライアント１４０の共有ゲートウェイデバイス１２０を介した総帯域幅消費１８０を総帯域幅容量１６５および実際の帯域幅消費１７０と比較することにより、他のローカルネットワーククライアント１４５、１５０の共有ゲートウェイ１２０を介した帯域幅消費を決定することができる。
【００５３】
このような場合では、共有ゲートウェイデバイス１２０を介したバックグラウンドデータ転送速度のスロットリング１８５はさらにローカルネットワークの他のクライアント１４５、１５０の帯域幅消費に基づいてもよい。たとえば、バックグラウンドデータ転送の帯域幅消費のスロットリング１８５は、他のローカルネットワークコンピューティングデバイス１４５、１５０の共有ゲートウェイ１２０を介したデータ転送の帯域幅消費、共有ゲートウェイ１２０を介したデータ転送の総帯域幅容量、および共有ゲートウェイを介したデータ転送の実際の帯域幅消費１７０に対するバックグラウンドデータ転送帯域消費のパーセンテージに基づいてもよい。
【００５４】
別の例示的な実施形態では、ローカルネットワークの帯域幅消費は、ローカルネットワーク１２５内のクライアント１４０、１４５、１５０、１５５、１６０のローカルネットワークインターフェイス１３０を使用して決定することができる。決定されたローカルネットワークの帯域幅消費は、ゲートウェイ１２０を介した帯域幅消費と比較することができる。この比較に基づき、バックグラウンドデータ転送帯域幅消費の量をスロットル１８５するにあたって、決定されたローカルネットワーク帯域幅消費または共有ゲートウェイ１２０を介したデータ転送の実際の帯域幅消費１７０を使用することができる。
【００５５】
さらに他の実施形態では、複数のローカルネットワーククライアント１４０、１４５、１５０、１５５、１６０のそれぞれは、バックグラウンドデータ転送モジュール１３５を含む。この実施形態では、共有ゲートウェイ１２０を介した帯域幅消費は、複数のローカルネットワーククライアント１４０、１４５、１５０、１５５、１６０のそれぞれのバックグラウンドデータ転送について決定される。この決定に基づいて、複数のローカルネットワーククライアント１４０、１４５、１５０、１５５、１６０の１つまたは複数のバックグラウンドデータ転送は、共有ゲートウェイデバイス１２０の実際の帯域幅消費の量１７０が事前に指定されたしきい値未満に維持されるようにスロットルされる。
【００５６】
本発明は、その趣旨または本質的な特性を逸脱することなく他の特定の形態でも実施できる。説明した実施形態は、あらゆる側面において例示的なものにすぎず、限定的なものと見なしてはならない。それゆえ、本発明の範囲は前述の説明でなく添付の特許請求の範囲によって指示される。請求項の意味および均等の範囲内の変更はすべてその範囲に含まれるものとする。
【図面の簡単な説明】
【００５７】
【図１Ａ】例示的な実施態様によるバックグラウンドデータ転送モジュールを利用するローカルネットワーク構成を示す図である。
【図１Ｂ】例示的な実施態様によるバックグラウンドデータ転送モジュールを利用するローカルネットワークシステムの代替のトポロジーを示す図である。
【図１Ｃ】例示的な実施態様によってどのようにバックグラウンドデータ転送モジュールを利用できるかについてのより詳細な説明を示す図である。
【図２】例示的な実施形態による共有ゲートウェイを介してバックグラウンドファイルを転送するための実効的な使用可能帯域幅を制御し、推定する方法の流れ図である。
【図３】図３は、本発明のさまざまな特徴を実装するための適切な動作環境を提供する例示的なコンピューティングシステムを示す図である。
【図１Ａ】
2009501496.tif 000003
【図１Ｂ】
2009501496.tif 000004
【図１Ｃ】
2009501496.tif 000005
【図２】
2009501496.tif 000006
【図３】
2009501496.tif 000007
【国際調査報告】
2009501496.tif 000008