(57)【要約】バーチャルマシン通信トラフィックを成形するための方法を実行するコンピュータ可読記録媒体を有するクラウドコンピューティングプラットフォーム。クラウドコンピューティングプラットフォームは、バーチャルマシンおよびコントローラを含む。コントローラは、特に、バーチャルマシンにサービス提供しているネットワークが輻輳しているとき、バーチャルマシンが所望される通信速度を達成することを可能にするために、バーチャルマシンに関連するトラフィックを制限する。コントローラは、バーチャルマシンに関して評価されたドロップ確率に基づいて、バーチャルマシンに関連する通信メッセージをドロップすることが可能である。
2013523016.tif 000002
【特許請求の範囲】
【請求項１】
複数のバーチャルマシンを有するクラウドコンピューティング環境内でバーチャルマシン通信トラフィックを管理するためのコンピュータで実施される方法であって、
前記クラウドコンピューティングプラットフォーム内の前記バーチャルマシンに関する平均通信速度を維持するステップと、
前記平均通信速度および前記バーチャルマシンに関して所望される通信速度に応じて、前記バーチャルマシンに関するドロップ確率を計算するステップと、
前記バーチャルマシンに関するドロップ確率が前記クラウドコンピューティングプラットフォームによって生成されたノンスよりも大きいとき、前記バーチャルマシンに関する通信メッセージを無作為にドロップするステップとを含むことを特徴とする方法。
【請求項２】
前記クラウドコンピューティングプラットフォーム内のそれぞれのバーチャルマシンに関して前記所望される通信速度を達成するために、前記バーチャルマシンに関する送信通信メッセージまたは受信通信メッセージを制限するステップをさらに含むことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項３】
送信通信メッセージまたは受信通信メッセージを前記制限するステップが、前記クラウドコンピューティングプラットフォームが前記バーチャルマシンにサービス提供しているネットワーク上に輻輳を検出したときにトリガされることを特徴とする請求項２に記載のコンピュータで実施される方法。
【請求項４】
前記バーチャルマシンに関する前記通信速度を前記制限するステップが待ち行列なしに実行されることを特徴とする請求項３に記載のコンピュータで実施される方法。
【請求項５】
前記平均通信速度が、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって評価された平均送信速度（ＡＳＲ）であり、
ＡＳＲ＋α＊ｐｒｅｖｉｏｕｓ＿ＡＳＲ＋（１−α）＊ｃｕｒｒｅｎｔ＿ＳＲであり、「α」は、前記クラウドコンピューティングプラットフォームによって設定され、前記「ｐｒｅｖｉｏｕｓ＿ＡＳＲ」は、前記バーチャルマシンに関して先に評価された前記ＡＳＲであり、「ｃｕｒｒｅｎｔ＿ＳＲ」は、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって検出された前記現在の送信速度であることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項６】
前記所望される通信速度が、前記バーチャルマシンに関する通信ポリシー内に設定された所望される送信速度（ＤＳＲ）であることを特徴とする請求項５に記載のコンピュータで実施される方法。
【請求項７】
前記ドロップ確率（ＤＰ）が、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって評価され、
【数１】
2013523016.tif 000007
であり、βが前記クラウドコンピューティングプラットフォームによって設定されることを特徴とする請求項６に記載のコンピュータで実施される方法。
【請求項８】
前記ノンス（η）が、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって無作為に生成され、
【数２】
2013523016.tif 000008
であり、「Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は、前記クラウドコンピューティングプラットフォームによって生成され、「Ｍａｘｉｍｕｍ＿Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は、前記クラウドコンピューティングプラットフォームによって設定されることを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項９】
バーチャルマシン通信トラフィックをドロップするための方法を実行するための命令を記憶している１つまたは複数のコンピュータ可読記録媒体であって、前記方法が、
バーチャルマシンの前記送信速度に関して指数的に重み付けされた平均を計算するステップと、
前記バーチャルマシンに関して前記所望される送信速度を識別するステップと、
前記バーチャルマシンから送られた通信メッセージに関するドロップ確率を評価するステップと、
前記バーチャルマシンに関して生成されたノンスが前記ドロップ確率よりも大きいとき、通信メッセージをドロップするステップとを含むことを特徴とするコンピュータ可読記録媒体。
【請求項１０】
前記通信メッセージがパケットであり、前記バーチャルマシン通信トラフィックが、伝送制御プロトコル（ＴＣＰ）によって統制されることを特徴とする請求項９に記載のコンピュータ可読記録媒体。
【請求項１１】
前記指数的に重み付けされた平均送信速度（ＡＳＲ）が、前記バーチャルマシンに関してクラウドコンピューティングプラットフォームによって評価され、ＡＳＲ＝α＊ｐｒｅｖｉｏｕｓ＿ＡＲＳ＋（１−α）＊ｃｕｒｒｅｎｔ＿ＳＲであり、「α」は、前記クラウドコンピューティングプラットフォームによって設定され、前記「ｐｒｅｖｉｏｕｓ＿ＡＳＲ」は、前記バーチャルマシンに関して先に評価された前記ＡＳＲであり、「ｃｕｒｒｅｎｔ＿ＳＲ」は、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって検出された前記現在の送信速度であることを特徴とする請求項９に記載のコンピュータ可読記録媒体。
【請求項１２】
前記所望される送信速度（ＤＳＲ）が、前記バーチャルマシンに関するサービスレベル合意に設定されることを特徴とする請求項１１に記載のコンピュータ可読記録媒体。
【請求項１３】
前記ドロップ確率（ＤＰ）が、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって評価され、
【数３】
2013523016.tif 000009
であり、「β」は、前記クラウドコンピューティングプラットフォームによって設定されることを特徴とする請求項１２に記載のコンピュータ可読記録媒体。
【請求項１４】
前記ノンス（η）は、前記バーチャルマシンに関して前記クラウドコンピューティングプラットフォームによって無作為に生成され、
【数４】
2013523016.tif 000010
であり、「Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は、前記クラウドコンピューティングプラットフォームによって生成され、「Ｍａｘｉｍｕｍ＿Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は、前記クラウドコンピューティングプラットフォームによって設定されることを特徴とする請求項１に記載のコンピュータ可読記録媒体。
【請求項１５】
バーチャルマシンに関する通信トラフィックを成形するように構成されたクラウドコンピューティングプラットフォームであって、
ネットワークを介して通信するバーチャルマシンと、
前記バーチャルマシンに関して生成されたノンスが前記ドロップ確率よりも大きいとき、前記バーチャルマシンに関連する通信メッセージをドロップするように構成されたコントローラとを含み、前記コントローラは、前記バーチャルマシンに関する前記平均送信速度（ＡＳＲ）を評価し、ＡＳＲ＝α＊ｐｒｅｖｉｏｕｓ＿ＡＲＳ＋（１−α）＊ｃｕｒｒｅｎｔ＿ＳＲであり、「α」は、前記コントローラによって設定され、前記「ｐｒｅｖｉｏｕｓ＿ＡＳＲ」は、前記バーチャルマシンに関して先に評価された前記ＡＳＲであり、「ｃｕｒｒｅｎｔ＿ＳＲ」は、前記バーチャルマシンに関して前記コントローラによって検出された前記現在の送信速度であり、前記コントローラは、前記バーチャルマシンに関する前記ドロップ確率（ＤＰ）を評価し、
【数５】
2013523016.tif 000011
であり、「β」は、前記コントローラによって設定され、所望される送信速度（ＤＳＲ）は、前記バーチャルマシンに関するサービスレベル合意内に設定され、前記バーチャルマシンにサービス提供している前記ネットワークが輻輳している場合、前記コントローラによって使用され、前記コントローラは、前記ノンス（η）を無作為に生成し、
【数６】
2013523016.tif 000012
であり、「Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は、前記コントローラによって生成され、「Ｍａｘｉｍｕｍ＿Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は、前記コントローラによって設定されることを特徴とするクラウドコンピューティングプラットフォーム。
【発明の詳細な説明】
【背景技術】
【０００１】
通常、クラウドコンピューティングプラットフォームは、インターネットアクセス可能な仮想環境においてソフトウェアアプリケーションをホスティングする。クラウドコンピューティングプラットフォームは、組織が第三者によって設計および保守されたデータセンタを使用することを可能にする。従来の仮想環境は、要求されたハードウェアリソース、ソフトウェアアプリケーションリソース、ネットワークリソース、および記憶リソースを小規模組織または中規模組織に供給する。仮想環境は、アプリケーションセキュリティ、アプリケーション信頼性、アプリケーションスケーラビリティ、およびアプリケーション可用性も提供する。
【０００２】
従来のデータセンタは、物理コンピューティングリソース、物理記憶リソース、および物理ネットワークリソースを提供する。データセンタ内の物理リソースは、仮想化されて、アプリケーションプログラミングインターフェースの集合として組織に公表される。組織は、その独自のハードウェアリソースもしくはソフトウェアリソースを維持する必要がなく、または信頼できるスケーラブルなデータセンタを維持する必要もない。
【発明の概要】
【０００３】
組織は、ソフトウェアまたは基礎となる物理ハードウェアの詳細を知ることなく、仮想環境を介してこれらの物理リソースに効率的にアクセスすることができる。従来のクラウドコンピューティングプラットフォームでは、ハードウェアリソースおよびソフトウェアリソースは、互いを信用しない組織によって共有される場合がある。いずれか１つの組織に対するサービスの拒否を防止するために、従来のクラウドプラットフォームは、共有されるリソースに対する公平なアクセスを維持する手順を提供する。手順の大部分は、かなりの量の状態情報を必要とし、これは、クラウドコンピューティングプラットフォーム内の計算オーバヘッドおよび計算コストを増大させる。
【０００４】
例えば、共有手順は、リーキーバケット（ｌｅａｋｙ  ｂｕｃｋｅｔ）、トークンバケット、およびフェアキューイングを含むことが可能である。リーキーバケット手順は、通信メッセージを待ち行列内に記憶して、一定速度で通信メッセージを送信する。待ち行列が一杯であるとき、通信メッセージは廃棄される。トークンバケット手順は、通信メッセージを待ち行列内に記憶して、その待ち行列に関連するトークンの数に基づいた速度でその通信を送信する。通信メッセージが所定の時間にわたってバケット内で待機する場合、通信メッセージを廃棄することができる。フェアキューイング手順は、通信メッセージを待ち行列内に記憶して、他の通信セッションに関する他の待ち行列が受ける速度に等しいかまたは当該速度に比例した速度で通信メッセージを送信する。これらの手順は、クラウド内でリソースを共有するための機構を提供するが、待ち行列、およびそれらの待ち行列に関連する状態を維持する必要があるため、高いＣＰＵオーバヘッドを有する。
【０００５】
本発明の実施形態は、ある意味で、クラウドコンピューティングプラットフォーム、コンピュータ可読記録媒体、およびクラウドコンピューティングプラットフォーム内のバーチャルマシンを成形するコンピュータで実施される方法に関する。クラウドコンピューティングプラットフォームは、通信ネットワークに接続されたコントローラおよびバーチャルマシンを含む。コントローラは、最小オーバヘッドを用いて通信トラフィックを成形するためのステートレス（ｓｔａｔｅｌｅｓｓ）機構を提供する。
【０００６】
コントローラは、通信ネットワーク上のトラフィックを監視する。コントローラは、通信ネットワークに接続されたバーチャルマシンに関する平均通信速度を計算する。次に、バーチャルマシンに関して所望される送信速度（ｓｅｎｄｉｎｇ  ｒａｔｅ）がコントローラによって取得される。コントローラは、平均通信速度に基づいて、バーチャルマシンに関するドロップ確率（ｄｒｏｐ  ｐｒｏｂａｂｉｌｉｔｙ）を決定する。ネットワーク内の通信メッセージは、バーチャルマシンに関するドロップ確率に基づいてドロップされる。
【０００７】
この要約は、詳細な説明において下でさらに説明される概念の選択を簡素化された形で紹介するために提供される。この要約は、特許請求される主題の主な特徴もしくは重大な特徴を識別することを意図せず、または特許請求される主題の範囲を決定する際の支援として孤立して使用されることを意図しない。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態による、ある例示的なクラウドコンピューティングプラットフォームを示すネットワーク図である。
【図２】本発明の実施形態による、例示的なクラウドコンピューティングプラットフォーム内に例示的なコントローラおよびバーチャルマシンを有する通信システムを例示するブロック図である。
【図３】本発明の実施形態による、バーチャルマシン通信トラフィックを管理するためのある例示的な方法を示す論理図である。
【図４】本発明の実施形態による、バーチャルマシン通信トラフィックを廃棄するためのある例示的な方法を示す論理図である。
【発明を実施するための形態】
【０００９】
本特許は、法定要件を満たすための特異性を用いて、特許に関する主題を記述する。しかし、記述自体は、本特許の範囲を限定することを意図しない。むしろ、本発明者らは、他の現行技術もしくは将来の技術と共に、異なるステップまたは本特許に記述されるステップに類似したステップの組合せを含めるために、特許請求される主題を他の様式で実施することも可能であることを企図している。さらに、「ステップ」および「ブロック」という用語は、本明細書において、用いられる方法の異なる要素を暗示するために使用される場合があるが、個々のステップの順序が明示的に記述されていない限り、かつそのように記述されるときを除いて、これらの用語は、本明細書で開示される様々なステップの間のまたはそれらの２つのステップ同士の間の任意の特定の順序を暗示するとして解釈すべきではない。さらに、実施形態は、その全体が参照により本明細書に組み込まれている、添付の図面を参照して下で詳細に説明される。
【００１０】
本明細書で利用される場合、「構成要素」という用語は、ハードウェア、ソフトウェア、およびファームウェアの任意の組合せを指す。
【００１１】
クラウドコンピューティングプラットフォームは、バーチャルマシン間のハードウェアリソースおよびソフトウェアリソースの共有を可能にする。いくつかの実施形態では、クラウドコンピューティングプラットフォーム内のリソーススターベーションを防止するために、バーチャルマシントラフィックは制限される。クラウドコンピューティングプラットフォームは、バーチャルマシンによって利用される帯域幅を制限するトラフィック成形手順を実行する。したがって、クラウドコンピューティングプラットフォームは、共有されるリソースを他のバーチャルマシンによるアクセス性を低減させるために過剰リソースにアクセスすることを試みる悪意のあるバーチャルマシンから保護する。クラウドコンピューティングプラットフォームは、共有されるリソースを悪意のないバーチャルマシンによる過剰ネットワークリソースの不注意な使用からも保護する。
【００１２】
いくつかの実施形態では、クラウドコンピューティングプラットフォームは、バーチャルマシンに関する帯域幅制限を実施するために、待ち行列のないステートレス機構を利用する。この機構は、それぞれのバーチャルマシンに関するオーバヘッドを低く維持する。一実施形態では、バーチャルマシンに関する通信メッセージは、伝送制御プロトコル（ＴＣＰ）通信メッセージ、すなわち、パケットである。
【００１３】
帯域幅制限は、クラウドコンピューティングプラットフォームの管理者が、バーチャルマシンとの関係に基づいて、所与のバーチャルマシンに利用可能な帯域幅を設定することを可能にする。例えば、小型バーチャルマシンは、１００Ｍｂｐｓに制限されることが可能であり、大型バーチャルマシンは、１Ｇｂｐｓに制限されることが可能である。これにより、所望される通信速度をクラウドコンピューティングプラットフォーム内のそれぞれのバーチャルマシンと折衝されたサービスレベル合意内に設定することが可能である。
【００１４】
当業者が理解することになるように、クラウドコンピューティングプラットフォームは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを含むことが可能である。ハードウェアは、メモリ内に記憶された命令を実行するように構成されたプロセッサおよびメモリを含む。一実施形態では、これらのメモリは、コンピュータで実施される方法に関するコンピュータ使用可能命令を有するコンピュータプログラム製品を記憶するコンピュータ可読記録媒体を含む。コンピュータ可読記録媒体は、揮発性媒体および不揮発性媒体の両方、取外し可能媒体および取外し不可能媒体の両方、ならびにデータベース、スイッチ、および様々なその他のネットワーク装置によって読み取り可能な媒体を含む。ネットワークスイッチ、ネットワークルータ、および関連する構成要素は、それらとの通信手段として、本質的に従来型である。限定ではなく、例として、コンピュータ可読記録媒体は、コンピュータ記憶媒体およびコンピュータ通信媒体を含む。コンピュータ記憶媒体、または機械可読記録媒体は、情報を記憶するための任意の方法または技術の形で実施される媒体を含む。記憶される情報の例は、コンピュータ使用可能命令、データ構造、プログラムモジュール、およびその他の表現を含む。コンピュータ記憶媒体は、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、電気消去可能プログラマブル読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリまたはその他のメモリ技術、コンパクトディスク読出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、ホログラフィック媒体またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、およびその他の磁気記憶装置を含むが、これらに限定されない。これらのメモリ技術は、データを瞬間的に、一時的に、または永久的に記憶することができる。
【００１５】
一実施形態では、クラウドコンピューティングプラットフォームは、クライアント装置に利用可能なクラウドアプリケーションを含む。クライアント装置は、１つまたは複数のバーチャルマシン上でクラウドアプリケーションを実行するために、クラウドコンピューティングプラットフォームにアクセスする。クラウドアプリケーションは、クラウドコンピューティングプラットフォーム内で利用可能な記憶リソースおよび処理リソースを使用して実施される。
【００１６】
図１は、本発明の実施形態による、ある例示的なコンピューティングシステム１００を示すネットワーク図である。ある実施形態では、図１に示されるコンピューティングシステム１００は、単なる例であり、範囲または機能性に関して何らの限定を示唆することを意図しない。本発明の実施形態は、多数の他の構成を用いて動作可能である。図１を参照すると、コンピューティングシステム１００は、クラウドコンピューティングプラットフォーム１１０、クラウドアプリケーション１２０、およびクライアント装置１３０を含む。
【００１７】
クラウドコンピューティングプラットフォーム１１０は、クライアント装置１３０によって要求されたクラウドアプリケーション１２０を実行するように構成される。クラウドコンピューティングプラットフォーム１１０は、クラウドアプリケーション１２０を実行するバーチャルマシンを提供するコンピューティング装置を維持する。クラウドコンピューティングプラットフォームは、アプリケーション情報およびシステム情報を記憶する記憶リソースも含む。クラウドコンピューティングプラットフォーム１１０は、無線ネットワーク、ローカルエリアネットワーク、有線ネットワーク、またはインターネットなど、通信ネットワークを経由してクライアント装置１３０に接続する。
【００１８】
クラウドアプリケーション１２０は、クライアント装置１３０に利用可能である。クラウドコンピューティングプラットフォーム１１０上で実行されるソフトウェアは、クラウドアプリケーション１２０を実施する。一実施形態では、クラウドコンピューティングプラットフォーム１１０によって提供されるバーチャルマシンは、クラウドアプリケーション１２０を実行する。クラウドアプリケーション１２０は、編集アプリケーション、ネットワーク管理アプリケーション、財務アプリケーション、またはクライアント装置１３０によって要求または構築された任意のアプリケーションを含むことが可能であるが、これらに限定されない。いくつかの実施形態では、クラウドアプリケーション１２０のいくつかの機能性をクライアント装置１３０上で実行することが可能である。
【００１９】
クライアント装置１３０は、クラウドコンピューティングプラットフォーム１１０によって提供されるクラウドアプリケーション１２０と相互作用するためにユーザによって利用される。いくつかの実施形態では、クライアント装置１３０は、クラウドアプリケーション１２０にアクセスするために、クラウドコンピューティングプラットフォーム１１０に登録しなければならない。クラウドコンピューティングプラットフォーム１１０からのアカウントを有する任意のクライアント装置１３０は、クラウドアプリケーション１２０、およびクラウドコンピューティングプラットフォーム１１０内で提供されるその他のリソースにアクセスすることができる。クライアント装置１３０は、限定なしに、携帯情報端末、スマートフォン、ラップトップ、パーソナルコンピュータ、ゲームシステム、セットトップボックス、または任意のその他の適切なクライアントコンピューティング装置を含む。クライアント装置１３０は、クライアント装置１３０上にユーザ情報およびシステム情報を記憶するためのユーザ情報およびシステム情報の記憶装置を含む。ユーザ情報は、検索履歴、クッキー、およびパスワードを含むことが可能である。システム情報は、インターネットプロトコルアドレス、キャッシュウェブページ、およびシステム利用を含むことが可能である。クライアント装置１３０は、クラウドアプリケーション１２０から結果を受信するために、クラウドコンピューティングプラットフォーム１１０と通信する。
【００２０】
したがって、コンピューティングシステム１００は、クラウドアプリケーション１２０をクライアント装置１３０に提供するクラウドコンピューティングプラットフォーム１１０を用いて構成される。クラウドアプリケーション１２０は、クライアント装置１３０上で複数のローカルクライアントアプリケーションを更新および管理する負担を除去する。
【００２１】
いくつかの実施形態では、クラウドコンピューティングプラットフォームは、バーチャルマシン通信トラフィックを成形するコントローラを提供する。コントローラは、それぞれのバーチャルマシンにカウンタを提供する。これらのカウンタは、トラフィックの平均送信速度を追跡することができる。クラウドコンピューティングプラットフォームは、バーチャルマシンに関して指数的に重み付けされた平均送信速度を評価することができる。この平均送信速度に基づいて、それぞれのバーチャルマシンに関するドロップ率がコントローラによって計算される。通信メッセージは、計算された平均送信速度に基づいて、コントローラによって無作為にドロップされる。一実施形態では、バーチャルマシンを統制するサービスレベル合意内に含まれたポリシーを用いてドロップ確率を設定することができる。あるいは、クラウドコンピューティングプラットフォームによって検出されたネットワーク輻輳に基づいて、ドロップ確率をセントラルポリシーによってオンデマンドでトリガすることも可能である。
【００２２】
図２は、例示的なクラウドコンピューティングプラットローム内に例示的なコントローラ２１０およびバーチャルマシン２２２を有する通信システム２００を例示するブロック図である。コントローラ２１０は、通信ネットワークに接続される。通信ネットワークは、クラウド装置２２０および記憶リソース２３０に接続する。
【００２３】
コントローラ２１０は、クラウドアプリケーションを実行するバーチャルマシン２２２に関連する、通信ネットワーク上の通信トラフィックを監視する。コントローラ２１０は、通信インターフェース２１２、廃棄ループ２１４、プロセッサ２１６、およびノンスエンジン（ｎｏｎｃｅ  ｅｎｇｉｎｅ）２１８を含む。いくつかの実施形態では、コントローラ２１０は、バーチャルマシンに関して検出された送る速度（ｓｅｎｄ  ｒａｔｅｓ）に基づいてアウトバウンドトラフィックの断片を廃棄することによって、バーチャルマシン通信トラフィックを成形するように構成される。コントローラは、バーチャルマシンまたは通信セッションに関する待ち行列を維持せずに、トラフィックを成形することができる。コントローラ２１０は、それぞれのバーチャルマシンの送信速度を測定して、決定された確率で廃棄するための１つまたは複数の通信メッセージを選択する。
【００２４】
通信インターフェース２１２は、バーチャルマシン２２２を実行しているクラウドデバイス２２０から通信メッセージを受信する。通信インターフェースは、やはり、バーチャルマシン２２２を実行しているクラウドデバイス２２０に通信メッセージを送信する。通信インターフェース２１２は、イーサネット（登録商標）、または非同期転送モード（ＡＴＭ）インターフェースを含むことが可能であるが、これらに限定されない。コントローラ２１０は、通信インターフェース２１２を介して、通信メッセージをクラウドデバイス２２０に送信することができる。
【００２５】
廃棄ループ２１４は、通信メッセージを廃棄するためにコントローラ２１０によって使用される。地面に接続されたインターフェースにメッセージを送ることによって通信メッセージを廃棄することができる。コントローラ２１０が、バーチャルマシン２２２が指定されたしきい値を超えるドロップ確率を有することを決定するとき、通信メッセージが廃棄ループに送られる。
【００２６】
プロセッサ２１６は、コントローラ２１０に関する計算を実行する。これらの計算は、バーチャルマシン２２２に関する通信メッセージを廃棄するかどうかを決定するために、コントローラによって使用される。これらの計算は、平均送信速度、ドロップ確率、およびノンスを評価することを含むことが可能である。これらの計算に基づいて、プロセッサ２１６は、バーチャルマシン２２２に関する１つまたは複数の通信メッセージを廃棄するためのフラグを設定することができる。
【００２７】
プロセッサ２１６は、クラウドデバイス２２０によって実行されるバーチャルマシン２２２に関する現在の送信速度を取得する。別の実施形態では、プロセッサ２１６は、通信メッセージのサイズを最後の通信メッセージがバーチャルマシン２２２からコントローラ２１０によって受信されてからの間隔で除算することによって、バーチャルマシン２２２から通信メッセージが受信されるたびに、現在の送信速度を計算することができる。現在の送信速度は、ドロップ確率がバーチャルマシン２２２に関するサービスレベル合意内に設定されていないとき、バーチャルマシン２２２に関するドロップ確率を決定するために使用される。サービスレベル合意は、ドロップ確率が設定されているかどうかを決定するために、プロセッサ２１６がアクセスする記憶リソース２３０内に記憶される。
【００２８】
次に、プロセッサ２１６は、平均送信速度を計算する。一実施形態では、平均送信速度は、指数平均送信速度（ＡＳＲ）である。プロセッサは、ＡＳＲ＝α＊ｐｒｅｖｉｏｕｓ＿ＡＳＲ＋（１−α）＊ｃｕｒｒｅｎｔ＿ＳＲを評価することができ、式中、「α」は、クラウドコンピューティングプラットフォームによって設定され「ｐｒｅｖｉｏｕｓ＿ＡＳＲ」は、バーチャルマシンに関して先に評価されたＡＳＲであり、「ｃｕｒｒｅｎｔ＿ＳＲ」は、バーチャルマシンに関して検出された現在の送信速度である。「α」は、有理数である。指数平均化は、他の平均化機能よりも少ないメモリを使用する。いくつかの実施形態では、他の平均化機能、例えば、中央送信速度を使用することが可能である。
【００２９】
バーチャルマシン２２０に関して所望される送信速度は、ドロップ確率を評価するためにアクセスされる。所望される送信速度は、サービスレベル合意内に設定可能である。他の実施形態では、管理者は、ネットワーク輻輳に基づいて、所望される送信速度をリアルタイムで設定することができる。さらに別の実施形態では、所望される送信速度は、ネットワーク上で検出された輻輳に基づいて自動的に設定可能である。所望される送信速度は、通信ネットワーク上の輻輳が増大するにつれて自動的に減少する可能性がある。
【００３０】
プロセッサ２１６はドロップ確率（ＤＰ）を計算する。プロセッサは、
【００３１】
【数１】
2013523016.tif 000003
【００３２】
を評価し、「β」は、クラウドコンピューティングプラットフォームによって設定される。βは、廃棄される通信メッセージの数を減少または増大させるためにＡＳＲ管理者によって設定されることも可能である。βは、０から１に及ぶ。
【００３３】
ノンスエンジン２１８は、乱数生成器である。ノンスエンジン２１８は、プロセッサ２１６に関する乱数を生成する。ノンスエンジン２１８は、プロセッサに最大乱数を提供することも可能である。次に、プロセッサ２１６は、しきい値として使用されるノンス（η）を生成することができる。プロセッサ２１６は、
【００３４】
【数２】
2013523016.tif 000004
【００３５】
を評価し、「Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は、ノンスエンジン２１８によって生成された乱数であり、「Ｍａｘｉｍｕｍ＿Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は、ノンスエンジン２１８によって提供された最大乱数である。「Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」および「Ｍａｘｉｍｕｍ＿Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は両方とも有理数である。
【００３６】
プロセッサ２１６は、ノンスをドロップ確率と比較する。ドロップ確率がノンスよりも大きいとき、プロセッサ２１６は、通信メッセージを廃棄することができる。
【００３７】
いくつかの実施形態では、バーチャルマシン２２２に関するドロップ確率は、ネットワーク輻輳に基づいて、サービスレベル合意によって設定可能である。例えば、コントローラ２１０によって検出されたネットワーク輻輳が存在しないとき、サービスレベル合意は、平均送信速度が所望される送信速度に設定されるべきであることを示すことができる。したがって、ドロップ確率はゼロである。さらに、バーチャルマシン２２２は、無制限のリソース利用が可能にされる。コントローラ２１０によってネットワーク輻輳が検出されたとき、平均送信速度は、輻輳レベル、およびクラウドコンピューティングプラットフォーム内のリソースにアクセスしているバーチャルマシン２２２の数に応じて、特定の数、例えば、５０Ｍｂｐｓ、２０Ｍｂｐｓに設定される。
【００３８】
記憶リソース２３０は、それぞれのバーチャルマシン２２２に関するクラウドアプリケーションおよびサービスレベル合意を記憶する。いくつかの実施形態では、バーチャルマシン２２２は、複数のサービスレベル合意を有することが可能である。それぞれのサービスレベル合意は、バーチャルマシンによって実行される異なるクラウドアプリケーションに対応することができる。サービスレベル合意は、バーチャルマシン２２２に関して所望される送信速度、クラウドアプリケーションに関して所望される送信速度、およびクラウドデバイス２２０に関して所望される送信速度を設定することができる。いくつかの実施形態では、サービスレベル合意は、バーチャルマシン２２２に関するドロップ確率、クラウドアプリケーションに関するドロップ確率、およびクラウドデバイス２２０に関するドロップ確率を記憶することも可能である。記憶リソース２３０は、所望される送信速度またはドロップ確率に関する要求に応答して、サービスレベル合意をコントローラ２１０に送信することができる。
【００３９】
一実施形態では、クラウドコンピューティングプラットフォームは、クラウドデバイス上で実行しているバーチャルマシン上でクラウドアプリケーションを実行する。クラウドコンピューティングプラットフォームは、バーチャルマシンに関する通信トラフィックを成形する。クラウドコンピューティングプラットフォームは、バーチャルマシンに関する通信速度を監視して、それらの通信速度に基づいて、パケットを廃棄する。通信速度は、送信速度および受信速度を含むことが可能である。
【００４０】
図３は、バーチャルマシン通信トラフィックを管理するためのある例示的な方法を示す論理図である。この方法は、ステップ３１０で初期化する。クラウドコンピューティングプラットフォームは、ステップ３２０において、クラウドコンピューティングプラットフォーム内のバーチャルマシンに関する平均通信速度を維持する。クラウドコンピューティングプラットフォームは、バーチャルマシンに関する指数平均または中央平均を使用することができる。ステップ３３０において、クラウドコンピューティングプラットフォームは、平均通信速度に応じてバーチャルマシンに関するドロップ確率を計算して、バーチャルマシンに関して所望される通信速度を計算する。所望される通信速度は、バーチャルマシンに関して所望される送信速度を指定するサービスレベル合意を記憶している記憶リソースから取得することができる。あるいは、所望される送信速度は、クラウドコンピューティングプラットフォームの管理者によって設定されることが可能である。
【００４１】
クラウドコンピューティングプラットフォームは、クラウドコンピューティングプラットフォーム内のバーチャルマシンに関して所望される通信速度を達成するために、バーチャルマシンに関連する送信通信メッセージまたは受信通信メッセージを制限する。一実施形態では、送信通信メッセージまたは受信通信メッセージを制限することは、クラウドコンピューティングプラットフォームがバーチャルマシンにサービス提供しているネットワーク上に輻輳を検出したときにトリガされる。次に、ステップ３４０において、クラウドコンピューティングプラットフォームは、バーチャルマシンに関するドロップ確率がクラウドコンピューティングプラットフォームによって生成されたノンスよりも大きいとき、バーチャルマシンに関する通信メッセージを無作為にドロップする。この方法はステップ３５０で終了する。
【００４２】
いくつかの実施形態では、クラウドコンピューティングプラットフォームは、クラウドデバイス上で実行しているバーチャルマシンに関する送信速度に基づいて、通信トラフィックを成形する。クラウドコンピューティングプラットフォームは、ネットワーク輻輳全体を削減するために、通信メッセージをドロップすることができる。クラウドコンピューティングプラットフォームは、通信メッセージをドロップするかどうかを決定するとき、バーチャルマシンに関して合意されたサービスレベルを維持することを試みる。
【００４３】
図４は、バーチャルマシン通信トラフィックを廃棄するためのある例示的な方法を示す論理図である。バーチャルマシン通信トラフィックは、伝送制御プロトコル（ＴＣＰ）によって統制されることが可能である。この方法は、ステップ４１０で初期化する。ステップ４２０において、クラウドコンピューティングプラットフォームは、バーチャルマシンの送信速度に関して指数的に重み付けされた平均を計算する。指数的に重み付けされた平均送信速度（ＡＳＲ）は、バーチャルマシンに関してクラウドコンピューティングプラットフォームによって評価され、ＡＳＲ＝α＊ｐｒｅｖｉｏｕｓ＿ＡＳＲ＋（１−α）＊ｃｕｒｒｅｎｔ＿ＳＲであり、「α」は、クラウドコンピューティングプラットフォームによって設定され、「ｐｒｅｖｉｏｕｓ＿ＡＳＲ」は、バーチャルマシンに関して先に評価されたＡＲＳであり、「ｃｕｒｒｅｎｔ＿ＳＲ」は、バーチャルマシンに関してクラウドコンピューティングプラットフォームによって検出された現在の送信速度である。
【００４４】
ステップ４３０において、クラウドコンピューティングプラットフォームは、バーチャルマシンに関して所望される送信速度を識別する。所望される送信速度（ＤＳＲ）は、バーチャルマシンに関するサービスレベル合意内に設定可能である。あるいは、所望される送信速度は、クラウドコンピューティングプラットフォームの管理者によって設定されることが可能である。
【００４５】
クラウドコンピューティングプラットフォームは、ステップ４４０において、バーチャルマシンから送信された通信メッセージに関するドロップ確率も評価する。ドロップ確率（ＤＰ）は、バーチャルマシンに関してクラウドコンピューティングプラットフォームによって評価され、
【００４６】
【数３】
2013523016.tif 000005
【００４７】
であり、βは、クラウドコンピューティングプラットフォームによって設定される。
【００４８】
ステップ４５０において、クラウドコンピューティングプラットフォームは、バーチャルマシンに関してクラウドコンピューティングプラットフォームによって生成されたノンスがドロップ確率よりも大きいとき、通信メッセージをドロップする。ノンス（η）は、バーチャルマシンに関してクラウドコンピューティングプラットフォームによって無作為に生成され、
【００４９】
【数４】
2013523016.tif 000006
【００５０】
であり、「Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は、クラウドコンピューティングプラットフォームによって生成され、「Ｍａｘｉｍｕｍ＿Ｒａｎｄｏｍ＿Ｎｕｍｂｅｒ」は、クラウドコンピューティングプラットフォームによって設定される。ある実施形態では、通信メッセージはパケットであってよい。この方法は、ステップ４６０において終了する。
【００５１】
要約すると、クラウドコンピューティングプラットフォームは、クラウドデバイス上で実行しているバーチャルマシンに関連する通信トラフィックを成形する。クラウドコンピューティングプラットフォームは、通信速度を監視して、クラウドコンピューティングプラットフォーム内のそれぞれのバーチャルマシンに関する通信の適切な速度を維持することを試みる。バーチャルマシンに関連するサービスレベル合意は、バーチャルマシンに関して維持される適切なサービスレベルを確実にするために、クラウドコンピューティングプラットフォームによって処理される。
【００５２】
本発明の実施形態の前述の記述は、例示的であり、構成および実装形態における修正は、本記述の範囲内である。例えば、本発明の実施形態は、一般に、図１〜４に関して記述されているが、それらの記述は例示的である。主題は構造的な特徴または方法論的な動作に特定の言語で記述されているが、添付の請求項で定義される主題は、上で記述された特定の特徴または動作に限定されるとは限らない点を理解されたい。むしろ、上で記述された特定の特徴および動作は、請求項を実施する例示的な形として開示されている。本発明の実施形態の範囲は、したがって、以下の請求項によってだけ限定されることが意図される。
【図１】
2013523016.tif 000013
【図２】
2013523016.tif 000014
【図３】
2013523016.tif 000015
【図４】
2013523016.tif 000016
【国際調査報告】
2013523016.tif 000017
2013523016.tif 000018