(57)【要約】  本開示事項は、グローバル大規模ネットワーク（１００）における帯域幅の配分に関する。システム及び方法は、ネットワーク・ユーザー（１０２）の予測された帯域幅要請における帯域幅配分に基づいて提供される。帯域幅を割り当てる際に、各々のユーザー（１０２）にはユーザー重み値が割り当てられて、その値に比例して帯域幅が割り当てられる。更に、帯域幅配分は、帯域幅配分方針が維持されることを確実とするように実施される。【選択図】図２
2014509129.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に帯域幅を割り当てる方法であって、
複数のネットワーク・ユーザーを表す帯域幅使用情報を受信し、
前記ネットワーク・ユーザーを分類し、この分類の行為は、各ネットワーク・ユーザーに複数の重み値の一つを割り当てることを含み、この割り当てられた重み値は、所定のネットワーク基準のセットに従うこと、
プロセッサによる操作を実行して帯域幅配分を形成し、この帯域幅配分は帯域幅使用情報及びユーザーの重みに基づくこと、
前記ネットワーク・ユーザーに対応するネットワーク・デバイスへ帯域幅配分を送信することを含む方法。
【請求項２】
請求項１の方法において、前記プロセッサにより実行される前記操作は、  
帯域幅使用情報を集計して前記ネットワークの全帯域幅要請を決定すること、 
前記ネットワーク内で混雑したリンクを検出すること、及び
前記ネットワークの利用可能帯域幅を前記ネットワーク・ユーザーの間で分割することを含む方法。
【請求項３】
請求項１の方法において、前記帯域幅配分を前記ネットワーク・ユーザーの間で分割することを更に含む方法。
【請求項４】
請求項２の方法において、各ネットワーク・ユーザーについて実行される仕事の間で各ネットワーク・ユーザーの前記帯域幅配分を分割することを更に含む方法。
【請求項５】
請求項３の方法において、各々の仕事に関連する複数のタスクの間で各々の仕事の前記帯域幅配分を分割することを更に含む方法。
【請求項６】
請求項１の方法において、前記帯域幅要請情報が、所定の時間に亘る前記ネットワーク・ユーザーのピーク帯域幅使用に基づく方法。
【請求項７】
請求項１の方法において、
全てのネットワーク帯域幅要請が満足することを判定すること、
使用されていない帯域幅が前記ネットワーク上で利用可能であることを判定すること、及び
前記ユーザーの重さ値に比例して前記ネットワーク・ユーザーの間で前記使用されていない帯域幅を分割することを更に含む方法。
【請求項８】
請求項１の方法において、ネットワーク帯域幅の一部は帯域幅配分を形成する操作が適用されないままである、方法。
【請求項９】
請求項１の方法において、ネットワーク伝達の一部は帯域幅配分を形成する操作が適用されないままである、方法。
【請求項１０】
ネットワーク上に帯域幅を割り当てる方法であって、
ネットワーク・ユーザーについてのユーザー重み値を受け取ること、
前記ネットワーク上で作動している複数の仕事に関する帯域幅使用情報を受け取り、各々の仕事はネットワーク・ユーザーの所定の一人と関連しており、且つ前記ネットワーク上で実行されるべき一つ以上のタスクを含み、
各々のネットワーク・ユーザーについての帯域幅要請を決定し、その帯域幅要請は、前記受け取られたユーザー重み値に少なくとも部分的に基づき、
前記帯域幅要請を帯域幅配分モジュールへ送信すること、
前記帯域幅配分モジュールから、帯域幅配分を受け取ること、及び
前記ネットワーク・ユーザー及び仕事の間で、前記受け取られた帯域幅配分及び帯域幅使用情報に基づいて帯域幅を分割することを含む方法。
【請求項１１】
請求項９の方法において、前記帯域幅要請は特定のネットワーク・ユーザーへ恒久的に割り当てられた帯域幅を含む方法。
【請求項１２】
請求項９の方法において、前記帯域幅要請の決定は、複数のユーザーの前記帯域幅要請を単独の要請機能に集計することを含む方法。
【請求項１３】
請求項９の方法において、各々のネットワーク・ユーザーはネットワーク・クラスタに関連しており、且つ前記帯域幅要請の前記送信は、ネットワーク・クラスタの前記帯域幅要請を供給することを含む方法。
【請求項１４】
請求項９の方法において、複数のタスクの間で各々の仕事の前記帯域幅を分割することを更に含む方法。
【請求項１５】
ネットワーク上に帯域幅を割り当てるためのシステムであって、
ネットワーク・ユーザーを分類する手段を備え、その分類は、各々のネットワーク・ユーザーに複数の重み値の一つを割り当てることを含み、それぞれのネットワーク・ユーザーの各々についての前記割り当てられた重み値は、少なくとも一つのネットワーク基準に従って選択され、前記システムは更に、
各々のネットワーク・ユーザーについての帯域幅要請を決定する手段と、
少なくとも部分的に前記ユーザー重み値及び前記決定された帯域幅要請に基づいて、各々のネットワーク・ユーザーの間で帯域幅を割り当てる手段と、
各々のネットワーク・ユーザーの間で前記割り当てられた帯域幅を分割手段とを備えるシステム。
【請求項１６】
請求項１５のシステムにおいて、帯域幅を割り当てる前記手段は、
帯域幅使用情報を集計して前記ネットワークの全帯域幅要請を決定する手段と、前記ネットワーク内の混雑したリンクを検出する手段とを含むシステム。
【発明の詳細な説明】
【関連出願への相互参照】
【０００１】
本出願は米国特許出願番号第１３/０１８９６７号（２０１１年２月１日出願）の継続であり、その開示事項は参照により本明細書に組み込まれている。
発明の背景
【０００２】
大規模ネットワークは、多種多様なアプリケーションとサービスを支援する。そのようなネットワークは相互接続ネットワークにおけるリンク或いはスイッチ構成に亘って分布された複数のデバイス、或いはスイッチ構成を含み得る。ネットワークの各々のノードは、スイッチ（例えば、ルータ）又はエンドポイント（例えば、ホスト・デバイス）を含み得る。リンク又はノードが過剰なデータを搬送するとき、ネットワークの混雑が引き起こされるので、サービスの品質の劣化がもたらされる。一般に、ネットワークの混雑の影響は、待ち行列遅延、パケット損失、又は新たな接続の遮断を含む。ネットワークに亘る混雑は、プロトコル、例えば伝達制御プロトコル（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ：ＴＣＰ）によって制御することができ、これは競合している接続のために同程度の帯域幅を維持する。またＴＣＰは、全体的な転送率がリンク容量よりも少ないことを確実とする。
【０００３】
ＴＣＰの制約の一つは、いつでもエンドポイントになされている接続の数に、それが集中するということである。従って、単にネットワークへの更なる接続を実装することによって、ネットワークのユーザーは、更なる帯域幅へ容易にアクセスすることができる。その実施は、ユーザーの仕事が多くのマシンに亘って拡張される大規模分散処理システムで増加しつつある。例えば、第１のユーザーが１００台のマシンで仕事を実行させ、且つ第２のユーザーが１０台のマシンで仕事を実行させているならば、第１のユーザーは第２のユーザーの帯域幅の１０倍にアクセスするであろう。これは、帯域幅の不当な配分と認められるものを形成するので、多くのネットワークにとって望ましくない。
【発明の概要】
【０００４】
本発明は一般に、ネットワークにおける帯域幅の管理に関する。更に詳しくは、本発明はネットワークにおける各々のユーザーについての要請を予測して、望ましい帯域幅配分方針に基づいて各々のユーザーに帯域幅を割り当てることに関する。  
【０００５】
本発明の一つの態様は、帯域幅配分方針を中央に実施して、各々のユーザーが、ユーザーの要請に従った帯域の共有を受け取って、ユーザーに割り当てられた帯域幅を超えるのを防ぐ方法を提供する。更に、特定のユーザーにより使用されていない任意の帯域幅をネットワーク上の他のユーザーに再配分し得るので、帯域幅はそれをより必要とする用途に割り当てられる。
【０００６】
他の態様では、各々のユーザーには特定のユーザー重み付け値が割り当てられ、各々のユーザーへの帯域幅の配分はそのユーザーの重み付け値に比例する。重み付け値は、ユーザーの優先順位、ユーザーの仕事のデータ強度、又はユーザーの仕事の時間感受性を含む多くの要因に基づくことができる。従って、２人のユーザーが同じ重み付け値を持つならば、この２人のユーザーは帯域幅の等しい配分を受け取って、同じネットワーク源から同じネットワーク目的値へ、同じサービス品質（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ：Ｑｏｓ）を有するデータを送信する。
【０００７】
他の態様は、重要な、ビジネスに不可欠なトラフィックを、予期しない不可欠でないネットワーク伝達によって途絶されることなく送信されることを可能とする。  
【０００８】
更に他の態様においては、帯域幅の抑制は、ネットワーク・ボトルネックの検出及びボトルネック容量を検出する公正方針のアプリケーションに結合されたネットワークのエンド・ホストにおいて自動カーネル-レベル・トラフィック・シェーピング（ｋｅｒｎｅｌ−ｌｅｖｅｌ  ｔｒａｆｆｉｃ  ｓｈａｐｉｎｇ）によって達成される。
【０００９】
発明の更に他の態様においては、エンド・ホストからのネットワーク使用情報のコレクションは、中心コレクション階層を介して統合される。
【図面の簡単な説明】
【００１０】
【図１】図１は例示的なグローバル・ネットワークを図解する。
【００１１】
【図２】図２は本発明の態様による機能的な構成要素階層を図解する。
【００１２】
【図３】図３は本発明の態様によるフロー図である。
【００１３】
【図４】図４は利用価値に関する帯域幅配分を示すグラフである。
【００１４】
【図５】図５は利用価値に関する異なる重み付け値を有するユーザーについての帯域幅配分を示すグラフである。
【００１５】
【図６】図６は利用価値に関する集約された帯域幅配分を示すグラフである。
【００１６】
【図７】図７は本発明の態様によるフロー図である。
【００１７】
【図８】図８Ａ−Ｂは本発明で使用するためのコンピュータ・システムを図解する。
【詳細な説明】
【００１８】
本発明の態様、特徴、及び効果は、例示的実施態様の以下の説明及び添付図面を参照して斟酌するときに明らかになるであろう。異なる図面中の同様な参照番号は、同一若しくは類似の要素を特定し得る。更にまた、以下の説明は限定的なものではなく、本発明の要旨は、添付の特許請求の範囲とその均等物によって規定される。
【００１９】
図１は本発明の態様と共に使用する例示的な相互接続ネットワーク１００を図解する。図示のように、ネットワークは幾つかのホスト１０２を含み、これはコンピュータ、例えばサーバー又はクライアント・デバイスである場合がある。ホスト１０２は、ネットワークにおけるノード１０４を通じて相互に結合し得る。ホスト１０２は、外部ネットワーク、記憶システム、又は他のデバイス（図示せず）にも結合し得る。各々のノード１０４は、リンク１０６を介してネットワーク上の他のデバイスとの論理的インターフェースを有するルータを含み得る。各々の論理的インターフェースは、ビット毎秒で所定の能力を有するものとして特徴付けることができる。
【００２０】
ホスト１０２は、コンピューティング資産を互いに一般に共有するクラスタに分類し得る。図１に示された例では、ホスト１０２ａ，１０２ｂ及び１０２ｃは、ネットワーク・クラスター１０８である。複数のクラスタは、同じサイト又は存在点（ｐｏｉｎｔ  ｏｆ  ｐｒｅｓｅｎｃｅ：ＰＯＰ）で作動し得る。図１において、ホスト１０２ａ乃至１０２ｆは、同じＰＯＰで作動する二つの個別のクラスタ１０８を表す。ネットワーク経路は、リンク１０６を介してネットワークにおける一点から他点への論理的インターフェースの配列であり、一方、「ＰａｔｈＳｅｔ」は複数の経路のセットである。ＰａｔｈＳｅｔは、一つのネットワーク・クラスターと他との間で送信されるデータについて採ることができる全ての経路を記述するのに用いることができる。更に、各々の経路は相対的な重みを有し、これは、二つ以上の個別の経路を有するＰａｔｈＳｅｔに沿って送信されるときに、ネットワーク・トラフィックが分割されねばならない比率を示す。
【００２１】
本発明の一つの例示的な実施形態が図２のアーキテクチュア２００に示されている。この実施形態においては、システム２００は以下の構成要素を含む。即ち、グローバル・ブローカー２０２、サイト・ブローカー２０４、仕事シェーパー２０６、及びホスト・シェーパー２０８である。図１に示すように、これらの構成要素は、大規模ネットワークの様々なホスト１０２に取り込むことができる。ネットワークのユーザーは、個人及びクライアント・デバイスを含み得る。更に、アーキテクチュア２００の一つ以上の構成要素は、ネットワーク上の単独のデバイスに取り込み得る。例えば、サイト・ブローカー２０４、仕事シェーパー２０６、及びホスト・シェーパー２０８は、個々のモジュールの各々に関連した機能を実行することができるプロセッサを有する単独のデバイスに常駐するソフトウェア・モジュールから構成し得る。
【００２２】
図２のアーキテクチュア２００に示すように、グローバル・ブローカー２０２は、帯域幅執行階層の最上位に位置する。異なるネットワーク・クラスターの間でネットワーク上で利用可能帯域幅を分割する役割を果たすのは、グローバル・ブローカー２０２である。グローバル・ブローカー２０２は、サイト・ブローカー２０４から帯域幅使用と帯域幅要請に関する情報を受信する。グローバル・ブローカー２０２へ提供されるネットワーク伝達情報は、望ましい粒度で提供することができる。例えば、帯域幅使用及び要請をネットワーク上の各々のデバイスへ提供する代わりに、サイト・ブローカー２０４は、デバイスクラスター（２１２）に関する情報をグローバル・ブローカー２０２へ提供することができる。例えば、グローバル・ブローカー２０２へ提供されるネットワーク・データ情報は、ネットワーク上の各々のソースクラスターと目的クラスタの識別を含み得る。
【００２３】
ネットワーク伝達情報は、異なる優先順位で各々の伝達を指定することもできる。例えば、耐性のある潜在性である伝達には低い優先順位が指定され、一方、レイテンシに敏感な伝達には高い優先順位を指定し得る。更に、ネットワーク伝達は強制又は非強制の何れかに指定し得る。強制データは帯域幅強制計画の影響を受ける一方、非強制データには適用されない。ネットワーク伝達は、それが所定の帯域幅閾値よりも下がるとき、ネットワーク伝達は非強制として指定し得る。ネットワーク伝達情報は、採られる伝達経路の指標も含み得る。例えば、ネットワークが複数の基幹回線を包含するならば、伝達情報は伝達がどの基幹回線を採るかについて示し得る。
【００２４】
ネットワーク伝達情報は上述のように提供された伝達指定の各々を利用する主要な構成要素の形態、又は特有の変数の形態で表現され得るので、決定される変数に依存して異なる「主体」を形成する。例えば、「クラスタ主体」は、以下の変数によって表現し得る。即ち、<ソースクラスター、目的クラスタ、伝達経路、優先順位、強制／非強制>である。従って、各々のクラスタ主体は、これら５つの変数の独特の組合せを包含する。後述するように、異なる構成要素変数の組合せを形成することによって、他のネットワーク「主体」を形成することができる。  
【００２５】
各々の個別のクラスタ主体ごとに、サイト・ブローカー２０４は、グローバル・ブローカー２０２へ帯域幅使用と帯域幅要請を集約する効用関数とを渡して、要請がユーザーによって要請されている相対的な重み付けを提供する（２１２）。次いでグローバル・ブローカー２０２は、ネットワーク管理者によって選択されたネットワーク共有方針を実装する。効用関数及びネットワーク共有方針については、以下に詳細に説明する。
【００２６】
グローバル・ブローカー２０２は、ネットワークの現在のトポロジーを表すネットワーク・モデルを維持するようにも構成し得る。使用及び要請情報のみならず、ネットワーク・モデルは、グローバル・ブローカー２０２によってネットワーク内の混雑したリンクを検出するのに用いられ得る。次に、グローバル・ブローカー２０２はクラスタ主体ごとに帯域幅限界を計算して、様々なクラスタ組の間で利用可能帯域幅を分割し得る。好ましくは、グローバル・ブローカー２０２は、帯域幅限界をサイト・ブローカー２０４へ周期的に伝える(２１４)。一つの例においては、これは１０秒毎程度である。他の例においては、この情報の交換は、他の規則的な又は予め設定された間隔、例えば１−１５秒毎、１−１５分毎、又は所定の状態に応じて起こることがあり、これはネットワークで引き起こされるイベントとし得る。このように、システムは、現在のネットワーク要請に基づいて帯域幅配分を提供し得る。
【００２７】
サイト・ブローカー２０４は望ましくは、各々のネットワーク・サイト若しくは存在点（ＰＯＰ）において実行される。グローバル・ブローカー２０２から伝達２１４を介して、帯域幅限界を受け取るのは、サイト・ブローカー２０４である。このサイト・ブローカー２０４も、伝達２１８を介して、仕事シェーパー２０６の間に各々のユーザー及び仕事についての帯域幅を定期的に分配する。好ましくは、この分配は、１０秒毎程度で起こる。他の例においては、この情報の交換は、他の規則的な又は予め設定された間隔、例えば１−１５秒毎、１−１５分毎、又は所定の状態に応じて起こることがあり、これはネットワークで引き起こされるイベントとし得る。  
【００２８】
具体的には、サイト・ブローカー２０４は、伝達２１４を介して、グローバル・ブローカー２０２からクラスタ主体帯域幅限界を受信し、この受信した帯域幅限界をユーザー主体に従ってユーザー帯域幅限界に分割する。ユーザー主体は、ユーザー、伝達のソースクラスター、伝達の目的クラスタ並びに伝達のＤｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ  Ｃｏｄｅ  Ｐｏｉｎｔ（ＤＳＣＰ）の識別からなる。Ｑｏｓ保証及び関連したネットワーク選択を包含するのはＤＳＣＰである。異なる仕事の中での特定のユーザーの帯域幅を分割する際に、サイト・ブローカー２０４は、伝達２１６を通じて、仕事シェーパー２０６により提供される仕事主体を利用する。仕事主体は、ユーザー主体と同じ変数からなるが、ネットワークのユーザーにより実行される特定の仕事の識別も含むことが好ましい。従って、サイト・ブローカー２０４は、仕事主体の各々を集計して、ユーザー主体を形成する。サイト・ブローカー２０４は、次いでユーザー主体情報をクラスタ主体の形態に集計して、このクラスタ主体を、伝達２１２を介して、グローバル・ブローカー２０２へ提供し得る。好ましくは、サイト・ブローカー２０４は、グローバル・ブローカー２０２にクラスタ主体要請を含む使用報告を、例えば、１０秒毎程度で提供する。他の例においては、この情報の交換は、他の規則的な又は予め設定された間隔、例えば１−１５秒毎、１−１５分毎、又は所定の状態に応じて起こることがあり、これはネットワークで引き起こされるイベントとし得る。  
【００２９】
仕事シェーパー２０６は、各々のネットワーク・クラスターにて実行され、それらの仕事に関連したタスクの間で仕事レベル帯域幅限界を分割して、これらの限界を、伝達２２２を介して、ホスト・シェーパー２０８へ提供する役割を果たす。好ましくは、仕事シェーパー２０６は、帯域幅限界を５秒毎程度で分配する。他の例においては、この情報の交換は、他の規則的な又は予め設定された間隔、例えば１−１５秒毎、１−１５分毎、又は所定の状態に応じて起こることがあり、これはネットワーで引き起こされるイベントとし得る。この分配は、タスクによって使用されない何れの帯域幅も他のタスクへ再分配されなければならないという点で、仕事を節約するので望ましい。仕事シェーパー２０６はまた仕事レベル帯域幅使用をサイト・ブローカー２０４へ伝達２１６を介して定期的に報告する。好ましくは、これらの周期的帯域幅報告は、１０秒毎程度に生じる。他の例においては、この情報の交換は、他の規則的な又は予め設定された間隔、例えば１−１５秒毎、１−１５分毎、又は所定の状態に応じて起こることがあり、これはネットワークで引き起こされるイベントとし得る。この機能の実行において、仕事シェーパー２０６は、ホスト・シェーパー２０８から提供されるタスク主要帯域幅使用及び要請を受信する。タスク主体は、仕事主体と同じ変数を含むが、望ましくは、仕事のために実装された各々のタスクの識別も含む。従って、タスク主体は、以下の主要な構成要素を含むように構成し得る。即ち、<ユーザー、仕事、タスク、ソースクラスター、目的クラスタ、ＤＳＣＰ>である。
【００３０】
ホスト・シェーパー２０８はネットワーク内のあらゆるホストで実行し得るが、しかし、これは必要とされない。ホスト・デバイスがネットワーク上にデータを送信するとき、伝達パケットはホストが実行する個々の処理又はタスクによって分類し得る。各々のタスクの識別は、ホスト・デバイス上で実行されるカーネル３４０、例えばＬｉｎｕｘカーネルによって実行し得る。それによってカーネル３４０は、システムにホスト・デバイスの各々のネットワーク接続、例えばＴＣＰを対応するタスク及びユーザーへ位置付けることを可能にする。このタスク使用情報を、伝達２２０を介して、仕事シェーパー２０６へ定期的に報告するのはホスト・シェーパー２０８であり、仕事シェーパー２０６により提供される帯域幅限界を、伝達２２２を通じて、個々のホストへ実施するのはホスト・シェーパー２０８である。定期的タスク使用報告は、好ましくは５秒毎程度で生じる。他の例においては、この情報の交換は、他の規則的な又は予め設定された間隔、例えば１−１５秒毎、１−１５分毎、又は所定の状態に応じて起こることがあり、これはネットワークで引き起こされるイベントとし得る。ネットワーク上で送信された各タスクは、伝達が生じる遠隔クラスタ、エンドユーザー並びに伝達のＤＳＣＰの識別に基づいて特定のホストにおいて分類される。各々の遠隔クラスタ及びＤＳＣＰ対について、帯域幅使用が測定されて、トークン・バケット・アルゴリズムを用いて調整される。  
【００３１】
各々のホスト・シェーパー２０８は、多数の機能を実行するように構成し得る。例えば、ホスト・シェーパー２０８は、それらのインターネット・プロトコル（ＩＰ）サブネットに対するネットワーク・クラスター名の地図を管理することができる。各々のホスト・シェーパー２０８は、ネットワーク上で新たなクラスタ間トラフィックについての定期的な検査を実行することもでき、次いで、新しいトラフィック制御クラスを形成する。トラフィック制御クラスのツリーは、ホスト・シェーパー２０８により分割して管理することができる。トラフィック制御クラスの区分、以下の主要な構成要素に基づいてなすことができる。即ち、<局所的タスク、遠隔クラスタ、ＤＳＣＰ＞である。ホスト・シェーパー２０８は、他のトラフィック最適化機能、例えば特定のクラスタ内ネットワーク・トラフィックのための第１の経路の形成、及び応答のアップストリーム・アクノリッジメント（ＡＣＫ）の優先順位決定を実行するようにも構成し得る。
【００３２】
更に、ホスト・シェーパーは各々のホストにおいてスループット閾値検査を実行することができ、ネットワーク伝達のためにトークン・バケットを形成することができる。トークン・バケットは、理論的なバケット内のトークンの存在に基づいて、トラフィックをいつ送信できるかを決定する制御機構である。バケットはトークンを含み、その各々はバイトの単位又は所定のサイズの単独のパケットを表すことができる。ネットワーク管理者は、特定の数のバイトを送信するためにどれぐらいのトークンが必要かを指定し得る。トークンが存在するとき、フローはトラフィックを送信することを可能にする。トークンがバケット内に無いならば、フローは許可されず、パケットは送信されない。トラフィックをいつ送信するかについて決定するための他の公知の機構を代替的に使用し得る。アップストリーム仕事シェーパー２０６からの入力に応じて、ホスト・シェーパー２０８はまた、トークン・バケットに対する制限を更新し得る。機能していないトークン・バケットは破棄することができる。一つの例では、各々のトークン・バケットは、Ｂ秒のバーストサイズを有する平均ビット率Ｒを可能とするように構成することができる。任意の所定の率Ｒ及びバーストＢにおいて、不活性Ｂの期間は、Ｒ＊Ｂビットの総計に等しいライン速度、即ちデータ伝達速度におけるバーストを可能にすべきトラフィックを起動させ、且つＲの持続率は無為の欠如で達成することができる。
【００３３】
帯域幅調整は、多くの既存の方式で生じさせることができる。例えば、カーネル内調整は、Ｌｉｎｕｘ  ＨＴＢパケット・スケジューラ及びパケット分類器を用いて実装することができる。ＴＣＰについて、伝達のクライアント側で常に帯域幅を調整することができる点に留意されたい。しかしながら、このような処理は、ネットワーク・クライアントが大量のデータを取るとき、大きなクライアント側バッファリングをしばしば必要とする。従って、データを送信するネットワークの側で帯域幅を調整することが好ましいことがある。
【００３４】
帯域幅実施システムは、ネットワーク・モデルクラスターリポーター（「クラスター・リポーター」）モジュール２１０も含むことがあり、これは各々のネットワーク・クラスターで作動して、ネットワーク上の幾つか又は全ての他のクラスタに経路探索操作を実行する。クラスター・リポーター２１０は経路探索データを集計して、これを伝達２２４を介して、グローバル・ブローカー２０２へ報告する。それと引き換えに、クラスターレポーター２１０は、伝達２２６を介して、グローバル・ブローカー２０２から、ネットワーク上の全ての既知のクラスタのリストを受信する。クラスター・リポーター２１０は、定期的に仕事シェーパー２０６に経路探索指令を送信するように構成することもできる。
【００３５】
システム２００は、部分的には、以下に説明する処理を用いて、ネットワークの望ましい帯域幅分配方針を実施するように構成される。帯域幅分配方針を実施する構成は、一つ以上の構成要素、例えば以下のものを含むことができる。即ち、ユーザーの重み、手動調整、恒久的分配、自動実施規則、自動強制閾値、ネットワーク・モデル無効化、及びクラスターリストである。ユーザー重みは、ユーザーが帯域幅エンフォーサ２００から受け取る帯域幅の割合を決定する数値である。ユーザー重みは、特定の伝達についてのサービス・レベルの品質に依存することができる。従って、各々の伝達について、規定のユーザー重み及びクォリティ・オブ・サービス乗数（ＱｏＳ乗数）が用いられる。ＱｏＳ乗数は、データ伝達の特定の形式のためにサービスの品質レベルを設定する値である。従って、一つの例においては、所定の伝達のためのユーザー重みは、ＱｏＳ乗数を乗算された既定のユーザー重みであり、 
ユーザー重み＝規定のユーザー重み＊ＱｏＳ乗数
である。
【００３６】
例えば、ユーザーＡとユーザーＢは共に１００のＱｏＳ乗数を割り当てられたネットワーク上でデータ伝達を実行しているものとする。ユーザーＡが１の既定のユーザー重みを有し、且つユーザーＢが１．５の既定のユーザー重みを有するとすると、ユーザーＡの伝達は（１．０＊１００）＝１００の実際のユーザー重みが割り当てられ、一方、ユーザーＢの伝達は（１.５＊１００）＝１５０の実際のユーザー重みを割り当てられる。ユーザー重み乗数又はＱｏＳ乗数の値は、特定のネットワーク・ユーザーの重要性を決定することに関連する要因の任意のセットに依存するであろう。例えば、大量のデータを必要とする重大なプロジェクト又は時間的制約のあるプロジェクトに取り組んでいるユーザーには、あまり重要でないプロジェクトに取り組んでいるユーザーよりも、より高いユーザー重み乗数及びより高いＱｏＳ乗数が与えられるであろう。ユーザー重みは、必要に応じて、特定のユーザーについて無効にすることができる既定設定としての働きをなすことができる点に留意されたい。例えば、ユーザーが、ユーザーは充分な帯域幅を受けていないと判断するならば、ユーザーは更なる帯域幅の要請を提出し得る。この要請はユーザーのネットワーク・デバイスを通じてなし得て、この要請はデバイスのホスト・シェーパー２０８からグローバル・ブローカー２０２へ送信し得る。現在のネットワーク使用又はネットワーク管理者からの入力に依存して、次いでグローバル・ブローカー２０２は、既定ユーザー重み設定を無効にすることにより、更なる帯域幅をユーザーへ提供し得る。  
【００３７】
帯域幅実行システム２００により用いられる他の構成要素は、恒久的分配（ＰＡ）である。ＰＡは、重要なユーザー転送のためにネットワーク上で帯域幅を確保するのに用いることができる。従って、ＰＡはシステムの分配方針における最も高い優先順位を与えるであろう。このシステムは、ユーザー、ソースクラスター、目的クラスタ、及びＱｏｓ値の主要な構成要素に基づいてＰＡ確保を指定することができる。例えば、グローバル・ブローカー２０２は、ユーザーＡが予め既定された閾値より上のＱｏＳを用いてクラスタＢからクラスタＣへデータを送ろうとするならば、２  Ｇｂｐｓの帯域幅をユーザーＡのために確保するように構成することができる。ユーザーＡがこの確保された帯域幅を使っていないとき、それは他のユーザーへ一時的に割り当てることができる。
【００３８】
他のシステム構成要素は手動調整であり、これはユーザーが二つのネットワーク・クラスターの間で送ることができる率に対する最大の制限を指定する。この手動調整は、仕事レベル（仕事調整）又はユーザー・レベル（ユーザー調整）にて指定することができる。ユーザー調整は、ＰＡ、即ちユーザー、ソースクラスター、目的クラスタ、及びＱｏｓレベルと同じ主要な構成要素を包含する。仕事調整は、ユーザーにより実行されている仕事を指定する第５の主要な構成要素の追加により、同じ主要な構成要素を使う。
【００３９】
システムにより用いられる更に他の構成要素は自動実施規則であり、これは何れのネットワーク伝達フローを実施させるべきであり、何れを強制しないままにするかを指定する。各々の自動実施規則は、帯域幅施行、例えば指定された伝達経路から、適用除外するネットワーク・パラメータの任意の数を指定することができる。ネットワーク・パラメータは、ソースクラスター、目的クラスタ、ユーザー、仕事、又はその種の他のもの、並びにそれらの任意の組合せの指定を含むことができる。同様に、自動実施規則は、帯域幅エンフォーサの分配方針における自動包含のためのネットワーク・パラメータを指定することができる。更に、帯域幅エンフォーサは、伝達が帯域幅エンフォーサの分配方針の影響を受ける前に、必要とされる帯域幅使用率を指定する自動強制閾値を実装し得る。この閾値は、仕事主体レベルに強制することができる。例えば、自動強制閾値は５  Ｍｂｐｓに設定することができるので、それが５  Ｍｂｐｓの閾値より上の使用率を持たない限り、各々の仕事主体は帯域幅エンフォーサの分配方針の影響を受けない。好ましくは、帯域幅エンフォーサは自動強制的なバケットへの閾値を満足する各々の仕事主体を配置して、これは所定の期間（例えば１５分）に亘って仕事主体を自動強制的なバケットに保つ。他の例では、期間は他の規則的な又は予め設定された間隔で、例えば１分毎乃至１時間毎、或いは所定の状態に応じて生じることがあり、これはネットワークで引き起こされるイベントとし得る。このように、閾値の上下に断続的に移動するネットワーク伝達は、強制的な状態と非強制の状態との間で前後に反転されない。自動強制閾値は、伝達経路に依存して異なる閾値レベルに設定することもできる。例えば、ネットワークが二つ以上の基幹回線を包含するならば、帯域幅エンフォーサは第１の基幹回線の閾値を５  Ｍｂｐｓに設定することができ、一方、他の基幹回線のための閾値レベルが１０  Ｍｂｐｓに設定することができる。 
【００４０】
ネットワーク・モデル無効化は、帯域幅エンフォーサ・システム２００の他の構成要素である。ネットワーク・モデル無効化は、所定のリンク容量及び保存可能な閾値についての手動無効化を可能にする。この無効化は、順序付きリストに包含されている規則のセットとして表現することができ、このリスト内の第１の整合規則が適用される。リンク容量無効化と保存可能閾値無効化とのために、別々の順序付きリストが使用される。各々のリンクは、リンクのソース・ルータ、目的値ルータ、及び使用されるインターフェースの識別によって、規則のセットに指定することができる。  
【００４１】
ネットワークに存在するクラスタは、クラスターリストで特定することができる。各々のクラスタについて、このリストはクラスタの名前、それが属するサイト又はＰＯＰ並びにクラスタが存在するサブネットを包含することができる。
【００４２】
ネットワークに二人のユーザーが同じユーザー重みを持つならば、彼らが同じソースクラスターから同じ目的値クラスタへの同じＱｏＳを持つことを条件として、帯域幅エンフォーサ・システム２００は同じ量の帯域幅を割り当てる。これは必ずしも、ユーザーが異なるクラスタ対の間に伝達を送信する例における場合というわけではない。しかしながら、帯域幅エンフォーサ・システム２００は、彼らが異なったソースと目的地との間で伝達しているか否かに拘わらず、ネットワーク・ユーザーの間で公正さを提供するように構成し得ることに留意されたい。更に、帯域幅エンフォーサ２００は、ユーザーがその重み値を、優先順位トークンを介して、他のユーザー・フローへ貸すことを可能にして、この他のユーザー・フローが初期のユーザー優先順位で働くことができるように構成することができる。
【００４３】
上述したように、帯域幅エンフォーサ・システム２００は、ネットワーク上の全てのユーザー・デバイスからのクラスタ間ネットワーク使用情報を統合する。この使用情報を外挿して、ネットワークにおける帯域幅要請を予想若しくは予測するようにすることができる。次いで、外挿された使用情報を処理を共有している様々な帯域幅に取り込むことによって、帯域幅エンフォーサは、帯域幅をユーザー・デバイスの間に割り当てることができる。
【００４４】
帯域幅エンフォーサ・システムは「ウォータフィル」（ｗａｔｅｒｆｉｌｌ）処理として説明できるものを実装し、これは競合するユーザー、仕事、及びタスクの間のネットワークの利用可能帯域幅を分割する。ウォータフィル処理の目的のために、各々の仕事主体は、特定のユーザー主体と関係付けることができる。従って、仕事主体は、関連する親ユーザー主体の子主体であると考えることができる。同様に、各々のタスク主体は仕事主体と関連付けることができ、その仕事主体の子主体であると考えることができる。  
【００４５】
ウォータフィル処理３００は、図３のフロー図に図解されている。ウォータフィル処理３００はシステムにおける任意のモジュールにより実行し得るが、好ましくはサイト・ブローカー２０４又は仕事シェーパー２０６により実行される。処理はブロック３０２において開始され、初期の帯域幅ウォータ・レベルは０に設定される。ブロック３０４では、帯域幅エンフォーサ・モジュールが利用可能な主体から選択され、即ち、最低の帯域幅要求ｄを有する子主体である。ブロック３０６では、全ての残りの子主体のために最低の要請を満たすために充分な残りの帯域幅が利用できるか否かが決定される。ブロック３０６に対する答えが「ｙｅｓ」であるならば、処理はブロック３０８へ進み、帯域幅ウォータ・レベルは量ｄだけ増加される。次いでブロック３１０では、全ての子の帯域幅要請が量ｄだけ減少する。ブロック３１２では、利用可能帯域幅は（ｄ＊残りの子主体の数）だけ減じられる。次いでブロック３１４では、以前にブロック３０４で選択された最低要請子主体が将来の考慮から取り除かれて、処理はブロック３０４へ戻る。ブロック３０６に対する答えが「Ｎｏ」であるならば、処理はブロック３１６へ進み、ここではウォータ・レベルが残りの子の数で除された残りの帯域幅だけ増加される。ウォータフィル処理３００が完了すると、ブロック３０６を満たした全ての主体についての帯域幅制限は、その主体についての要請と等しくなる。他の全ての主体にとって、この制限はブロック３０８の最後の反復によって設定されたウォータ・レベルと等しくなる。このように、ウォータフィル処理は、全ての競合する主体の間で利用可能帯域幅を最大最小公平な方法で分割し、これはデータフローが到達する最小限のデータ速度が最大にされることを意味する。
【００４６】
サイト・ブローカー２０４は、効用関数を生成することによって、ネットワーク・ユーザーについての帯域幅要請をまとめることができる。より詳しくは、単独の効用関数は、ネットワーク・クラスターの同じ対の間にデータを送信している複数のユーザーで帯域幅要請の表現として働くことができる。先述のように、効用関数はユーザーの重みと各々のユーザーへ許可されたＰＡを考慮することもできる。  
【００４７】
図４は二人のユーザー、即ちユーザー１とユーザー２のための効用関数を図解し、各々のユーザーは異なるＰＡを有する。この例では、ユーザー１は１  ＧｂｐｓのＰＡを割り当てられており、一方、ユーザー２には４  ＧｂｐｓのＰＡが割り当てられている。図４に示される利用価値のスケールは、任意に（実際には、決定的であるそれらの相対的な値だけ）設定することができる。この例の目的のために、効用関数は値０と２００との間で実行される。帯域幅共有の間で最高の優先順位が指定されたＰＡが与えられるなら、効用関数はＰＡのためだけに０と１００との間の利用価値を保存する。残りのユーザー要請は、１００と２００との間の利用空間にまとめられる。図４に示すように、両方のＰＡは、１００とその上のユーティリティにおいて、完全に満足される。１００未満の利用価値のために、各々のユーザーは、それらのＰＡに比例して帯域幅を与えられる。
【００４８】
ユーザーに与えられたＰＡを越えたユーザー要請のために、帯域幅はユーザー重みに比例して割り当てられる。図５は、各々が２  Ｇｂｐｓの帯域幅を要請する二人のユーザーの効用関数を図解する。この例では、二人のユーザーは何らのＰＡも割り当てられていないので、ユーザーは１００及びそれより下の利用価値をについてユーザーへ与えられた帯域幅を有していない。しかしながら、１００を越える利用価値については、システムはユーザー４に０．４の重みを割り当て、一方、ユーザー３に０.２の低いユーザー重みを割り当てるように構成されている。従って、ユーザー４の要請は、ユーザー３の要請よりも低い利用価値で与えられる。
【００４９】
サイト・ブローカー２０４は、各々のユーザー主体の帯域幅要請について効用関数を生成することができる。次いでこれは、同じクラスタ対についてのユーザー主体要請を単独の効用関数にまとめることができ、これは要約された効用関数と称される。図６は、ユーザー１、ユーザー２、ユーザー３、及びユーザー４の要約された効用関数を図解する。図６に示すように、図４及び５に与えられたような各ユーザーの個々の効用関数についての帯域幅要請の単なる線形追加である。
【００５０】
システムは、ネットワーク・ユーザーの効用関数を取り込む漸進的な充填処理を実行することにより、競合する主体の間で利用可能なネットワーク帯域幅を如何に分割するかを決定し得る。例示的な漸進的充填処理７００は、図７に図解されている。ブロック７０２にて開始して、初期ユーティリティは、値０に設定される。ブロック７０４においては、利用価値は量ｋイプシロンだけ増加される。満足していないか又は機能停止しなかった各競合主体について、主体の効用関数を用いてどれぐらいの帯域幅配分をするかを計算し、増加したユーティリティが形成される（ブロック７０６）。次いで、処理は競合主体において特定された各ソース・クラスタと目的クラスタとの間に複数の経路が存在するか否かを判定する（ブロック７０８）。単独の経路のみが存在するならば、経路のリンクの将来の帯域幅使用がブロック７１０において、ブロック７０６において判定された帯域幅配分に基づいて増加される。ソース・クラスタと目的クラスタとの間に複数の経路が存在するならば、複数の経路の間の帯域幅配分を拡張することにより、ブロック７０６の増加された帯域幅配分がネットワーク・リンクに加えられる（ブロック７１２）。各々の経路は異なる増倍率（ｍｕｌｔｉｐｌｉｃａｔｉｏｎ  ｆａｃｔｏｒｓ）によって重み付けることができるので、複数の経路が存在するならば、各々の経路の間の割り当ては経路の相対的な重みに比例することに留意されたい。ブロック７１４においては、処理はブロック７１０及び７１２の帯域幅配分が任意のネットワーク・リンクの容量を越えるか否かを判定する。容量を越えるリンクがないならば、処理はブロック７０４へ戻る。ネットワーク・リンクの容量を越えるならば、そのリンクはボトルネックとして指定されて、このボトルネック・リンクを横断する全ての主体は機能停止して、これは、それらをより多くの帯域幅に割り当てることができないことを意味する（ブロック７１６）。次いで、現在の利用価値（ＣＵＶ）からｋイプシロンを引いたもの（ＣＵＶ−ｋイプシロン）と現在の利用価値（ＣＵＶ）との間で二分探索を実行して、リンク容量が越えない利用価値を判定する（ブロック７１８）。ブロック７０４において開始された処理は、全ての主体が機能停止するか、又はそれらの帯域幅要請を満たすかの何れかまで繰り返される（ブロック７２０）。 
【００５１】
多くの例において、ネットワークは、帯域幅エンフォーサ・システムによる管理が適用されないデータを送信する。競合するクラスタ主体の間の帯域幅配分においては、グローバル・ブローカー２０２は、全てのそのような非管理トラフィックについて、論理的インターフェースの利用可能な容量に合わせて調整する。例えば、論理的インターフェースが利用可能な容量で１０  Ｇｂｐｓを有し、且つ現在の利用が８  Ｇｂｐｓであると仮定する。利用の５  Ｇｂｐｓのみが管理可能であるとすれば、グローバル・ブローカーは利用可能帯域幅から他の３    Ｇｂｐｓを引く。それによって、その論理的インターフェースのために７  Ｇｂｐｓの有効容量が形成される。
【００５２】
一旦、非管理帯域幅が占められるならば、漸進的な充填処理は競合するクラスタ主体に帯域幅を割り当てるのに用いることができる。この処理を実行する際に、サイト・ブローカー２０４はグローバル・ブローカー２０２へ、クラスタ主体ごとにまとめられた要請を包含する効用関数を渡す。これらの効用関数は、サイト・ブローカー２０４により、そのクラスタにおける個々のユーザー主体のために効用関数から計算される。システムは、一部のユーザー主体に手動調整を与えるように構成し得る。これらのユーザー主体のために、サイト・ブローカー２０４は調整値によって帯域幅要請に上限を定めることができ、これは、それらの主体は構成された調整値より多くの帯域幅を割り当てることができないことを意味する。帯域幅が、漸進的な充填処理を実行した後に依然として利用可能であるならば、残りの帯域幅はユーザー主体の間でボーナス帯域幅として分割することができる。ユーザー主体の何人かが割り当てられたボーナスを使わないとすると、ボーナス帯域幅は、可変なスケーリング要因によって、用意した供給を超えて発行することができる。例えば、各々のユーザーは１と１０との間でスケーリング要因を割り当てらて、ボーナス帯域幅はスケーリング要因に比例して割り当て得る。
【００５３】
上述のように、グローバル・ブローカー２０２は、クラスタ主体ごとに帯域幅制限をサイト・ブローカー２０４へ提供する。次いでサイト・ブローカー２０４はクラスタ主体ごとにまとめられた効用関数を調べることができ、割り当てられた帯域幅制限に対応している利用価値を判定することができる。この利用価値はマスター率と称することができ、ユーザー主体効用関数におけるユーザー主体ごとに帯域幅制限を調べるのに用いることができる。グローバル・ブローカー２０２がクラスタ主体にボーナスに帯域幅を割り当てたならば、このボーナス帯域幅はユーザー主体の間で分割することができる。
【００５４】
ユーザー主体のために効用関数を構成する目的で、サイト・ブローカー２０４は、そのユーザー主体の帯域幅要請が何であるかを判定する。これは、最近の期間、例えばこの２分間に亘るピークのユーザー主体帯域幅使用を選択することによってなし得る。充分な帯域幅配分を保証する目的で、サイト・ブローカーは、ユーザー主体のピーク使用に、所定の要因、例えば１．１を乗じて、僅かにより高いピーク・ユーザー主体要請を形成し得る。他の選択肢においては、ピークの使用スケーリング要因は、１と１.５との間に及び得る。一部のユーザーにとって、帯域幅エンフォーサ・システム２００は、手動調整を与えるように構成し得る。これらのユーザーのために、帯域幅要請は、調整値によって上限を定められる。更に、これらのユーザーには、調整値を越えるボーナス帯域幅が割り当てられることはない。このように、これらのユーザーに割り当てられた帯域幅は、構成された調整設定を越えることはない。
【００５５】
次いでサイト・ブローカー２０４は、ユーザー主体へ割り当てられた帯域幅制限を、様々な仕事主体におけるウォータフィル処理を実行することにより、その構成仕事主体の間で分割することができる。ウォータフィル処理が実行された後に帯域幅が依然として残っているならば、それは仕事主体の間でボーナス帯域幅として分割することができる。仕事主体の幾つかが割り当てられたボーナスを使わないとすると、ボーナス帯域幅は、可変なスケーリング要因によって、用意した供給を超えて発行することができる。例えば、各々の仕事が１と１０との間でスケーリング要因を割り当てられて、ボーナス帯域幅はスケーリング要因に比例して配分し得る。ウォータフィル処理に使用すべき帯域幅要請の決定においては、各々の仕事のために、サイト・ブローカー２０４は、最近の期間、例えば２分間に亘って生じたピーク要請を使用し得る。他の例においては、ピーク要請を決定するための期間は他の間隔、例えば１-１５分間、又は所定の状態に設定して、これはネットワークで引き起こされるイベントとし得る。異なる仕事が異なる時間でピークに達すると、システムはユーザー主体のために全体の帯域幅制限を拡大することができる。ピークの仕事主体要請の合計に等しいスケーリング要因は、ピーク・ユーザー主体要請によって分割される。或る仕事については、システムは構成された手動調整を有し得る。この例では、ウォータフィル処理の要請は、調整値によって上限を定められる。同様に、これらの仕事には、調整値を越えてボーナス帯域幅が割り当てられることはない。
【００５６】
一旦サイト・ブローカー２０４が仕事主体に対して帯域幅限界を割り当てるならば、次いで仕事シェーパー２０６は割り当てられた仕事主体帯域幅を構成タスク主体（Ｔａｓｋ  Ｐｒｉｎｃｉｐａｌｓ）の間で分割することができる。この機能は、様々なタスク主体上でウォータフィル処理３０の修正版を実行することによって、実行される。仕事についてのそのタスクがバースト性であり、且つその異なるタスクが異なる時間において集中するならば、同じ帯域幅制限は各々のタスクに割り当てられる。この制限は、処理が終了したときのウォータ・レベルと等しい。ウォータフィル処理３０に使用すべき帯域幅要請を決定する際に、各タスクについて、サイト・ブローカー２０４は、最近の期間、例えば２分間に亘って生じたピーク要請を使用することができる。異なるタスクが異なる時間でピークに達するとすると、システムは仕事主体のための全体の帯域幅制限を拡大し得る。スケーリング要因は、ピーク仕事主体要請により徐せられたピーク・タスク主体要請の合計に等しい。
【００５７】
システムは、帯域幅エンフォーサ２００により引き起こされて帯域幅増加の期間中のトラフィックの突然の集中を防止するように構成し得る。例えば、増加した帯域幅配分の漸進的増大は、異なる仕事のために実行することができて、何らかの同時集中を防止する。更に、このシステムは、ネットワーク・ユーザーが、ユーザーの仕事がシステムによって調整されているか否かを知ることができるように構成し得る。従って一覧は、ユーザー、ソース・クラスタ、目的クラスタ、及びＱｏｓによって識別されたネットワーク・フローごとに利用可能とすることができる。この一覧は、伝達の経路に沿ったリンク・レベルでなすことができる。システムは、その資産割当てのより多くを重要な仕事又はタスクに捧げて、より重要でない仕事又はタスクのためにより少ない資産を残すことをユーザーが可能にするように構成することもできる。これは、ユーザーに重み値を個々の仕事及びタスクに割り当てるのを可能にすることによって実行することができる。システムは冗長な構成要素を包含することにより、たとえ特定の構成要素が故障しているか或いは到達できないとしても、継続的な操作を可能にすることもできる。例えば、システムは、ネットワークの異なる部分で動作する複数のグローバル・ブローカー２０２を包含し得る。いつでも、一つのグローバル・ブローカー２０２だけは、「ライブ（ｌｉｖｅ）」に指定される。サイト・ブローカー２０４はネットワークにおけるあらゆるグローバル・ブローカー２０２に対して情報を報告し、情報を受け取り得る。しかしながら、サイト・ブローカー２０４は、ライブ・グローバル・ブローカー２０２によって与えられた帯域幅限界を受け入れるのみである。冗長性は、サイト・ブローカー２０４及び仕事シェーパー２０６のためにも実装し得る。
【００５８】
本発明の態様によるシステムは、以下の例示的なコンピュータ・システムにより実装し得る。図８Ａは、単独で又はネットワーク化された構成において使用することができる様々なコンピュータ・デバイスを描くコンピュータ・システムの概略図を示す。例えば、この図は、複数のコンピュータ３０２、３０４、３０６、及び３０８並びに他の形式のデバイス、例えば携帯用の電子機器、例えば携帯電話３１０及びＰＤＡ３１２を有するコンピュータ・ネットワーク３００を図解する。しかしながら、本発明はそのように限定されるものではなく、ネットブック及びパッド型ハンドヘルド・コンピュータ（図示せず）を含む他のデバイスも使用し得る。このようなデバイスは、局所的又は直接的接続３１４を介して相互接続し得るか、及び／又は通信ネットワーク３１６、例えばＬＡＮ、ＷＡＮ、インターネット等を介して結合することもでき、これらは有線又は無線とし得る。
【００５９】
各々のデバイスは、例えば、一つ以上の処理デバイスを含むことがあり、ユーザー入力、例えばキーボード３１８及びマウス３２０及び／又は様々な他の形式の入力デバイス、例えばペン入力、ジョイスティック、ボタン、タッチスクリーンなど並びにディスプレイ３２２を有し、そのディスプレイは、例えば、ＣＲＴ、ＬＣＤ、プラズマ・スクリーン・モニタ、テレビ、プロジェクターなどを含むことができる。各々のコンピュータ３０２、３０４、３０６、及び３０８は、パーソナル・コンピュータ、サーバー等とし得る。例示のみとして、コンピュータ３０２及び３０６はパーソナル・コンピュータ、コンピュータ３０４はサーバー、コンピュータ３０８はラップトップとし得る。  
【００６０】
図８Ｂに示すように、コンピュータ３０２及び３０４のような各々のコンピュータは、プロセッサ３２４、メモリ／ストレージ３２６及びコンピュータに典型的に存在する他の構成要素を包含する。例えば、メモリ／ストレージ３２６は、プロセッサ３２４によりアクセス可能な情報を記憶し、これはプロセッサ３２４により実行し得る指令３２８及びプロセッサにより検索、操作又は記憶し得るデータ３３０を含む。サーバーにおける指令３２８は、現在のシステムにおける一つ以上のモジュール、例えばグローバル・ブローカー２０２又はサイト・ブローカー２０４に関連した操作を含み得る。ユーザシステムにおける指令３２８は、一つ以上のモジュール、例えば仕事シェーパー２０６及びホスト・シェーパー２０８に関連した操作を含み得る。
【００６１】
メモリ／ストレージは、プロセッサによりアクセス可能な情報を記憶する能力の或る任意の形式若しくは任意のデバイス、例えばハード・ドライブ、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、フラッシュメモリ、書き込み能力のある又は読出し専用メモリとし得る。プロセッサ３２４は、多くの公知のプロセッサ、例えばインテル社又はアドバンスド・マイクロ・デバイセスからのプロセッサから構成し得る。或いは、プロセッサは、操作を実行する専用のコントローラ、例えばＡＳＩＣ又は他の処理デバイスとし得る。  
【００６２】
指令３２８は、一つ又は複数のプロセッサにより直接に（例えば機械語として）又は間接的に（例えばスクリプトとして）実行されるべき指令の任意のセットからなり得る。これに関して、用語「指令」、「段階」、及び「プログラム」は本明細書においては互換可能に使用し得る。指令は、任意のコンピュータ言語又はフォーマットに、例えばソースコードのオブジェクト・コード又はモジュールに記憶し得る。本発明による指令の機能、方法及びルーチンは、以下に更に詳細に説明される。  
【００６３】
データ３３０は、指令３２８に従ってプロセッサ３２４により検索、記憶、又は修正し得る。このデータは、データのコレクションとして記憶し得る。例えば、本発明は何らかの特定のデータ構造によって限定されるものではないが、データは、コンピュータ・レジスタ、複数の異なるフィールド及び記録を有するテーブルとしてのリレーショナル・データベース、ウェブ・ページ・キャッシュ、ＸＭＬ文書などとして記憶し得る。
【００６４】
データは、任意のコンピュータで読取り可能なフォーマット、例えば２進値、アスキー又はユニコードにもフォーマット化し得るが、これらに限定されるものではない。更に、データは、関連した情報、例えば説明文、プロプライエタリー・コード、ポインター、他のメモリ（他のネットワーク位置を含む）に記憶されたデータ又は関連したデータを計算するために機能により用いられる情報への参照を識別するのに充分な任意の情報を含み得る。更にまた、所定のアイテムは一つ以上のファイル、データベースに記憶されたデータ・セット、ウェブ・キャッシュなどを含み得る。データのサイズと内容に依存して、その部分は個別に記憶し得るか、さもなければ維持し得る。
【００６５】
プロセッサ３２４及びメモリ３２６は図８Ｂにおいては同じブロック内にあるように機能的に図解されているが、プロセッサ及びメモリは実際には複数のプロセッサ及びメモリからなり、これらは同一の物理的ハウジング又は場所に保管されるか、保管されないこともあることが理解されよう。例えば、指令及びデータの一部若しくは全ては、取り外し可能なＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ又はフラッシュ・ドライブ、及びほか[の指令]は読出し専用コンピューター・チップ内に記憶し得る。指令及びデータの一部若しくは全ては、プロセッサから物理的に離隔しているが、依然としてアクセス可能な場所に記憶し得る。同様に、プロセッサは、実際には複数のプロセッサのコレクションからなり、これらは並行に作動することもあれば、しないこともある。データは、ハード・ドライブ等のような複数のメモリ３２６に亘って分散されて記憶し得る。
【００６６】
一つの態様において、サーバー３０４は一つ以上のクライアント・コンピュータ３０２、３０６及び／又は３０８、並びにデバイス、例えば携帯電話３１０及びＰＤＡ３１２と通信し得る。各々のクライアント・コンピュータ又は他のクライアント・デバイスは、サーバー３０４と同様に構成でき、これはプロセッサ、メモリ及び指令、並びに一つ以上のユーザー入力デバイス３１８、３２０、及びユーザー出力デバイス、例えばディスプレイ３２２を有する。各々のクライアント・コンピュータは汎用コンピュータである場合があり、これは個人の使用のために意図されており、パーソナル・コンピュータに標準的に見られる全ての構成要素、例えば中央処理装置（ＣＰＵ）、ディスプレイ、ＣＤ−ＲＯＭ又はＤＶＤドライブ、ハード−ドライブ、マウス、キーボード、タッチ検知性スクリーン、スピーカー、マイクロフォン、モデム及び／又はルーター（電話、ケーブル又はその他）及びこれらの要素を互いに接続するために用いられる全ての構成要素を有する。
【００６７】
サーバー３０４、ユーザー・コンピュータ及び他のデバイスは、他のコンピュータと、例えばネットワーク３１６上で、直接的及び間接的に通信する能力がある。幾つかのコンピュータのみが図８Ａ−Ｂに描かれているが、代表的なシステムは、多数の接続されたサーバー及びクライアントを含むことができ、各々の異なるコンピュータはネットワークの異なるノードにあることを理解されたい。ネットワーク３１６及び介在ノードは様々な形態及びプロトコルからなり、これはインターネット、イントラネット、仮想プライベート・ネットワーク、ワイド・エリア・ネットワーク、局所的ネットワーク、一つ以上の企業が所有する通信プロトコルを用いるプライベートネットワーク、イーサネット、ＷｉＦｉ、ブルートゥース又はＴＣＰ／ＩＰを含む。  
【００６８】
任意の介在ノードを含めて、ネットワークに亘る通信は、他のコンピュータに対してデータを送受信する能力がある任意のデバイス、例えばモデム（例えば、ダイヤル・アップ又はケーブル）、ネットワーク・インターフェース及び無線インターフェースにより促進し得る。サーバー３０４は、ウェブサーバとし得る。情報が上述したように送信又は受信されたときに特定の利点が得られるが、本発明の他の態様は情報の伝達の如何なる特定の方法に限定されるものではない。例えば、或る態様では、情報はディスク、テープ、ＣＤ−ＲＯＭなどの媒体を介して送信されるか、或いはダイヤル・アップ・モデムを介して二つのコンピュータ・システムの間で直接に送信され得る。他の態様においては、特定の情報は非電子フォーマットで送信されて、手動でシステムへ入力し得る。 
【００６９】
更に、本明細書に説明されたシステム及び方法によるコンピュータ及びユーザー・デバイスは、指令を処理して、人及び他のコンピュータに対してデータを送受信する能力がある任意のデバイスからなり、これは局所的記憶能力を欠くネットワーク・コンピュータ、モデム付のＰＤＡ、例えばＰＤＡ３１２，インターネット能力がある無線電話、例えば携帯電話３１０，ネットブック及びパッド型ハンドヘルド・コンピュータを含む。
【００７０】
本明細書において本発明について特定の実施形態を参照して説明したが、これらの実施形態は単に本発明の主旨及び応用の例示であることを理解されたい。従って、幾多の変更例を実施形態になし得るのであって、添付の特許請求の範囲により規定されたような本発明の要旨及び目的から逸脱しない範囲で他の構成を構築し得ることを理解されたい。
【産業上の利用可能性】
【００７１】
本発明は、ネットワーク・デバイスの間にデータを転送するための適応可能な帯域幅配分を用いるコンピュータ・ネットワークを含めて、広い産業上の利用可能性を享受するが、これに限定されるものではない。
【図１】
2014509129.tif 000003
【図２】
2014509129.tif 000004
【図３】
2014509129.tif 000005
【図４】
2014509129.tif 000006
【図５】
2014509129.tif 000007
【図６】
2014509129.tif 000008
【図７】
2014509129.tif 000009
【図８Ａ】
2014509129.tif 000010
【図８Ｂ】
2014509129.tif 000011
【国際調査報告】
2014509129.tif 000012
2014509129.tif 000013