JP2015503146A - 大規模メディア・クラウドのための分散型マッピング機能 - Google Patents
大規模メディア・クラウドのための分散型マッピング機能 Download PDFInfo
- Publication number
- JP2015503146A JP2015503146A JP2014540374A JP2014540374A JP2015503146A JP 2015503146 A JP2015503146 A JP 2015503146A JP 2014540374 A JP2014540374 A JP 2014540374A JP 2014540374 A JP2014540374 A JP 2014540374A JP 2015503146 A JP2015503146 A JP 2015503146A
- Authority
- JP
- Japan
- Prior art keywords
- computing device
- topology
- area
- computing
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
Abstract
本明細書は、クラウド・コンピューティングに関する。特に、本明細書は、クラウド内でのアプリケーション・コンポーネントの効率的で柔軟な配置を可能にするクラウド・コンピューティングのための方法およびシステムに関する。分散型クラウド・コンピューティングのために適合されたコンピューティング・デバイス(101)が、説明される。コンピューティング・デバイス(101)は、第1のトポロジーのエリア(102)内に位置付けられ、第1のトポロジーのエリア(102)以外の複数のトポロジーのエリア(102)にそれぞれ位置付けられる複数の基準コンピューティング・デバイスを示すトポロジーのリスト(602)を含み、コンピューティング・デバイス(101)、およびコンピューティング・デバイス(101)の近隣に位置付けられた少なくとも1つの近隣のコンピューティング・デバイス(101)の利用可能なコンピューティング・リソースを示すローカル・リソース・リスト(601)を含み、アプリケーション(700)のコンポーネント(703)に関するコンポーネント配置要求を受信すると、トポロジーのリスト(602)に基づいて、コンポーネント(703)が、第1のトポロジーのエリア(102)に置かれるべきであるか、または第1のトポロジーのエリア(102)以外の複数のトポロジーのエリア(102)のうちの1つに置かれるべきであるかを判定し、コンポーネント(703)が第1のトポロジーのエリア以外の複数のトポロジーのエリアのうちの1つに置かれるべきであると判定される場合、第1のトポロジーのエリア以外の複数のトポロジーのエリアのそれぞれのトポロジーのエリアの基準コンピューティング・デバイスにコンポーネント配置要求を渡し、コンポーネント(703)が第1のトポロジーのエリア(102)に配置されるべきであると判定される場合、ローカル・リソース・リスト(601)から、アプリケーションのコンポーネントを実行するためのコンピューティング・リソースを有する選択されたコンピューティング・デバイスを特定するように適合される。
Description
本明細書は、クラウド・コンピューティングに関する。特に、本明細書は、クラウド内でのアプリケーション・コンポーネントの効率的で柔軟な配置を可能にするクラウド・コンピューティングのための方法およびシステムに関する。
インターネットは、ユーザがメディアを消費する方法を変えつつある。インターネット技術によって可能にされて、発展は、ライブ3D放送、ライブ・イベントの時間をずらした視聴、またはいつでも望まれるとき、どこでも必要とされるところで、任意の好ましいデバイスでのビデオ・オン・デマンドのようなメディア・サービスをユーザが楽しむことを可能にするところに急速に向かっている。さらに、インターネットでは、ユーザは、単なる見物人ではなく没頭している参加者になる。ウェブに基づくサービスは、リアルタイムのマルチメディア・コンテンツの大規模な共有、または没入型のマルチメディア通信のような新しいパーソナライズされたメディア中心のアプリケーションの部類の全体に対する触媒である。これらのサービスは、純粋なコンテンツ・ストリームとして実現されるのではなく、適切な時間、場所、およびフォーマットで要求されたデータを提供するメディア処理機能の編成されたフローとして実現される。高精細ビデオ・フォーマットの導入により、転送されるデータ量が、データ変換プロセスにおけるコードの構築のサイズを上回る。したがって、分散型のサービス・インフラストラクチャにインテリジェントな方法でサービス・コンポーネントを配置することは、将来のインターネット・インフラストラクチャのスケーリングを向上させる方法を提供する。言い換えると、転送されるデータ量が増えるにつれて、分散型アプリケーションのSWコンポーネントをクラウド・ネットワーク内の適切な位置に転送し、配置することが一層効率的になる可能性がある。
Ishfaq Ahmad、「Multi-View Video:Get Ready for Next-Generation Television」、IEEE Distributed Systems Online、第8巻、第3号、2007年、論文番号0703-o3006
OnLive、http://www.onlive.com/
本明細書は、サービス/アプリケーション・コンポーネントの効率的で柔軟な配置を可能にするコンピューティング・デバイス(ノードとも呼ばれる)のクラウドを提供する技術的な問題に対処する。
一態様によれば、分散型クラウド・コンピューティングのために適合されたコンピューティング・デバイス(コンピューティング・ノードまたはノードとも呼ばれる)が説明される。コンピューティング・デバイスは、第1のトポロジーのエリア(topological area)内に位置付けられる。通常、複数のそのようなコンピューティング・デバイスを含む分散型クラウド(本明細書においてはメディア・クラウドと呼ばれる)は、複数のトポロジーのエリアに分けられる(それらのエリアは1つまたは複数の領域にさらに細分される可能性がある)。コンピューティング・デバイスは、第1のトポロジーのエリア以外の複数のトポロジーのエリア内にそれぞれ位置付けられる複数の基準コンピューティング・デバイス(reference computing device)を示すトポロジーのリスト(topological list)を含む。言い換えると、コンピューティング・デバイスは、分散型クラウドのその他のエリア(または領域)のそれぞれの中に位置付けられた少なくとも1つの基準コンピューティング・デバイスの指示(例えば、ネットワーク識別子)を提供するトポロジーのリストを保有する。トポロジーのリストは、その他のエリア(または領域)毎に1つまたは2つの基準コンピューティング・デバイスを含む可能性がある。通常は、基準コンピューティング・デバイスは、各コンピューティング・デバイスが領域に対する異なるアンカー・ポイント(anchor point)を有することを保証し、それによって単一障害点を取り除くために、領域内のコンピューティング・デバイスの利用可能なリストからランダムに選択される。
コンピューティング・デバイスは、コンピューティング・デバイス、およびコンピューティング・デバイスの近隣に位置付けられた少なくとも1つの近隣のコンピューティング・デバイスの利用可能なコンピューティング・リソースを示すローカル・リソース・リストを含む。コンピューティング・デバイスの近隣は、少なくとも1つの近隣のコンピューティング・デバイスによって満たされる必要がある1つまたは複数の近隣の条件によって定義される可能性がある。1つまたは複数の近隣の条件は、コンピューティング・デバイスと少なくとも1つの近隣のコンピューティング・デバイスとの間の最大往復遅延時間を含む可能性がある。代替的にまたは追加的に、1つまたは複数の近隣の条件は、少なくとも1つの近隣のコンピューティング・デバイスが第1のトポロジーのエリア、つまり、同じトポロジーのエリア内に位置付けられているという条件を含む可能性がある。
アプリケーションのコンポーネントに関するコンポーネント配置要求を受信すると、コンピューティング・デバイスは、トポロジーのリスト(のみ)に基づいて、コンポーネントが第1のトポロジーのエリアに配置されるべきか、または第1のトポロジーのエリア以外の複数のトポロジーのエリアのうちの1つに配置されるべきかを判定するように適合される。概して、コンポーネント配置要求は、コンポーネント/アプリケーションのシンクまたはソースの好ましい場所に関する情報を含む。例として、コンポーネントのシンクまたはソースの好ましい場所に関する情報は、特定のコンポーネント、および特定のコンポーネントが連係して動作しているアプリケーションのその他のコンポーネントの要件の記述から導出され得る。コンピューティング・デバイスは、好ましい場所をそのコンピューティング・デバイス自身の場所およびメディア・クラウドのトポロジーのエリアの場所と比較することができる。
コンポーネントが第1のトポロジーのエリア以外の複数のトポロジーのエリアのうちの1つに置かれるべきであると判定される場合、コンピューティング・デバイスは、第1のトポロジーのエリア以外の複数のトポロジーのエリアのそれぞれのトポロジーのエリアの基準コンピューティング・デバイスにコンポーネント配置要求を渡すように適合される。言い換えると、別のトポロジーのエリアが好ましい場所により近いと判定される場合、配置要求は、別のトポロジーのエリアの基準コンピューティング・デバイスに(または基準コンピューティング・デバイスのうちの1つに)渡され、基準コンピューティング・デバイス(つまり、基準コンピューティング・デバイスへの指示)は、コンピューティング・デバイスのトポロジーのリストから得られる。したがって、コンピューティング・デバイスは、別のコンピューティング・デバイスまたは上位レベルのネットワーク管理エンティティと調整することを必要とせずに、そのコンピューティング・デバイスのトポロジーのリストに基づいてトポロジー管理タスクを実行するように適合される。言い換えると、トポロジー管理タスクは、コンピューティング・デバイスによって自律的に実行される。
コンポーネントが第1のトポロジーのエリアに配置されるべきであると判定される場合、コンピューティング・デバイスは、ローカル・リソース・リストから、アプリケーションのコンポーネントを実行するためのコンピューティング・リソースを有する選択されたコンピューティング・デバイスを特定するように適合される。言い換えると、コンピューティング・デバイスが、コンポーネントの好ましい場所が第1のトポロジーのエリア内に(またはコンピューティング・デバイスの領域内に)あることを判定する場合、コンピューティング・デバイスは、別のコンピューティング・デバイスまたは上位レベルのネットワーク管理エンティティと調整することを必要とせずに、そのコンピューティング・デバイスのローカル・リソース・リスト内の利用可能なリソース情報に基づいてリソース管理タスクを実行する。これは、リソース管理タスクがコンピューティング・デバイスによって自律的に実行されることを意味する。
コンピューティング・デバイスは、少なくとも1つの近隣のコンピューティング・デバイスから少なくとも1つの近隣のコンピューティング・デバイスのコンピューティング・リソースに関する情報を受信するように適合される可能性がある。この情報は、(例えば、周期的に)(1つまたは複数の)近隣のコンピューティング・デバイスによってプッシュされる可能性がある。代替的に、コンピューティング・デバイスは、(例えば、周期的に)(1つまたは複数の)近隣のコンピューティング・デバイスからこの情報をプルする可能性がある。これは、リソース管理タスクを実行するためにローカル・リソース・リストが最新に保たれることを保証する。少なくとも1つの近隣のコンピューティング・デバイスからの1つまたは複数の近隣のコンピューティング・デバイスのコンピューティング・リソースに関する情報は、記憶された情報の信頼性に関するカテゴリーまたは指示に関連付けられる可能性があることに留意されたい。記憶された情報の信頼性は、情報が受信されてから経過した時間の量とともに減少する可能性がある。例として、第1のカテゴリーは、コンピューティング・デバイスに関する正確な(すなわち、適時の)情報を示す可能性があり、第2のカテゴリーは、正確性の劣る(すなわち、幾分古い)情報を示す可能性があり、以下同様である。
コンピューティング・デバイスは、第1のトポロジーのエリア内に含まれる第1のコンピューティング・デバイスのリストを受信するように適合される可能性がある。第1のコンピューティング・デバイスのリストは、第1のトポロジーのエリア内に含まれるすべてのコンピューティング・デバイスの完全なリストである可能性がある。このリストは、(例えば、コンピューティング・デバイスの初期化段階で)コンピューティング・デバイスによる要求に応じて受信される可能性がある。コンピューティング・デバイスは、ローカル・リソース・リストのために、第1のコンピューティング・デバイスのリストから複数の近隣のコンピューティング・デバイスを選択するように適合され得る。近隣のコンピューティング・デバイスの数は、所定の数に制限される可能性がある。近隣のコンピューティング・デバイスの数は、第1のコンピューティング・デバイスのリストに含まれる第1のコンピューティング・デバイスの数未満である可能性がある。
コンピューティング・デバイスは、第1のコンピューティング・デバイスのコンピューティング・リソースに基づいて、ならびに/またはコンピューティング・デバイスと第1のコンピューティング・デバイスとの間のリンクの帯域幅に基づいて、および/もしくはコンピューティング・デバイスと第1のコンピューティング・デバイスとの間の往復遅延時間に基づいて複数の近隣のコンピューティング・デバイスを選択するように適合される可能性がある。例として、複数の近隣のコンピューティング・デバイスは、選択されたコンピューティング・デバイスのリンクのリンクの負荷またはリンクの占有に基づいて選択される可能性がある。したがって、コンピューティング・デバイスは、第1のコンピューティング・デバイスのリストからローカル・リソース・リストを構築するように適合される可能性がある。これは、初期化段階で実行される可能性がある。加えて、コンピューティング・デバイスは、ローカル・リソース・リストの近隣のコンピューティング・デバイスを、第1のコンピューティング・デバイスのリストからの新しい近隣のコンピューティング・デバイスによって置き換え、それによって、ローカル・リソース・リスト(およびリソース管理タスク)をメディア・クラウド内の変更に適合させるように適合される可能性がある。
上で示されたように、トポロジーのエリアは、1つまたは複数の領域に細分される可能性がある。この場合、トポロジーのリストは複数のトポロジーのエリアの1つまたは複数の領域内に位置付けられた複数の基準コンピューティング・デバイスを示す可能性がある。さらに、コンピューティング・デバイスのローカル・リソース・リストは、コンピューティング・デバイスと同じ領域の近隣のコンピューティング・デバイスに制限される可能性がある。
コンピューティング・デバイスは、アプリケーションのコンポーネントを実行するための実行環境を含み得る。実行環境は、コンポーネントを実行するためのプロセッサの能力およびメモリの容量を提供することができる。加えて、実行環境は、コンポーネントによって処理されるデータを受信および送信するための送信および受信の能力を提供することができる。コンピューティング・デバイスのコンピューティング・リソースは、コンピューティング・デバイスのプロセッサ・リソース、コンピューティング・デバイスのメモリ・リソース、コンピューティング・デバイスへのリンクの帯域幅、およびコンピューティング・デバイスとの通信に関する往復遅延時間のうちの任意の1つまたは複数である可能性がある。
別の態様によれば、クラウド・コンピューティングのための分散型ネットワークが説明される。分散型ネットワークは、本明細書においてはメディア・クラウドと呼ばれる。ネットワークは、メディア・クラウドの第1のトポロジーのエリア内の第1の複数のコンピューティング・デバイスと、メディア・クラウドの第2のトポロジーのエリア内の第2の複数のコンピューティング・デバイスとを含む。第1の複数のコンピューティング・デバイスおよび第2の複数のコンピューティング・デバイスは、本明細書において概要を説明されるように設計される可能性がある。特に、第1の複数のコンピューティング・デバイスおよび第2の複数のコンピューティング・デバイスは、対応する第1の複数のトポロジーのリストおよび対応する第2の複数のトポロジーのリストを含む。言い換えると、コンピューティング・デバイスのそれぞれは、対応するトポロジーのリストを含む。第1の複数のトポロジーのリストは、第2の複数のコンピューティング・デバイスの対応する第1の複数の基準コンピューティング・デバイスを示し、第2の複数のトポロジーのリストは、第1の複数のコンピューティング・デバイスの対応する第2の複数の基準コンピューティング・デバイスを示す。特に、第1の複数の基準コンピューティング・デバイスは、第2の複数のコンピューティング・デバイスのランダムな選択である可能性があり、第2の複数の基準コンピューティング・デバイスは、第1の複数のコンピューティング・デバイスのランダムな選択である可能性がある。結果として、単一障害点のリスクが削減される。
分散型ネットワークは、第1のトポロジーのエリアおよび第2のトポロジーのエリアに第1のコントローラ・ノードおよび第2のコントローラ・ノードをそれぞれさらに含む可能性がある。第1のコントローラ・ノードおよび第2のコントローラ・ノードは、それぞれ、第1の複数のコンピューティング・デバイスおよび第2の複数のコンピューティング・デバイスの指示を提供することができる。第1のコントローラ・ノードおよび第2のコントローラ・ノードは、メディア・クラウドのそれぞれのコンピューティング・デバイス内に統合される可能性がある。第1のコントローラ・ノードおよび第2のコントローラ・ノードは、コンピューティング・デバイスがそれらのコンピューティング・デバイスのトポロジーのリストおよびそれらのコンピューティング・デバイスのローカル・リソース・リストを構築することを可能にするためにコンピューティング・デバイスのそれぞれによってアクセスされ得る。第1のコントローラ・ノードおよび第2のコントローラ・ノードは、それぞれ、第1のトポロジーのエリアおよび第2のトポロジーのエリア内に含まれるコンピューティング・デバイスの完全な像(view)を有する可能性がある。したがって、コンピューティング・デバイスは、そのコンピューティング・デバイスのローカル・リソース・リストおよびそのコンピューティング・デバイスのトポロジーのリストのために適切な近隣のコンピューティング・デバイスおよび代表コンピューティング・デバイスを選択することができる。さらに、第1のコントローラ・ノードは、第2のコントローラ・ノードに指示を提供し、第2のコントローラ・ノードは、第1のコントローラ・ノードに指示を提供し、それによって、第1のトポロジーのエリアのコンピューティング・デバイスが第2のコントローラ・ノードにアクセスすることを可能にすることができる。
概して、第1の複数のコンピューティング・デバイスおよび第2の複数のコンピューティング・デバイスのそれぞれは、それぞれのコンピューティング・デバイスの近隣の所定の数の近隣のコンピューティング・デバイスのコンピューティング・リソースを示すローカル・リソース・リストを含む。したがって、第1の複数のコンピューティング・デバイスおよび第2の複数のコンピューティング・デバイスのそれぞれは、第1の複数のコンピューティング・デバイスおよび第2の複数のコンピューティング・デバイスのうちの他方とは無関係に、第1の複数のコンピューティング・デバイスおよび第2の複数のコンピューティング・デバイスのそれぞれのローカル・リソース・リストと、第1の複数のコンピューティング・デバイスおよび第2の複数のコンピューティング・デバイスのそれぞれのトポロジーのリストとに(のみ)基づいてコンポーネント配置要求を処理するように適合される。言い換えると、メディア・クラウド内のコンピューティング・デバイスは、(そのコンピューティング・デバイスのローカル・リソース・リストおよびそのコンピューティング・デバイスのトポロジーのリストに含まれる限られたリソースおよびトポロジー情報に基づいて)メディア・クラウド内のその他のコンピューティング・デバイスとは無関係にコンポーネント配置要求を処理することができる。
さらなる態様によれば、コンピューティング・デバイスの分散型ネットワークにおいてアプリケーションのコンポーネントを配置するための方法が説明される。コンピューティング・デバイスは、本明細書において概要を説明されるように設計される可能性がある。方法は、第1のトポロジーのエリア内の第1のコンピューティング・デバイスにおいてコンポーネント配置要求を受信するステップを含む。方法は、第1のコンピューティング・デバイスのトポロジーのリストに基づいて、コンポーネントが第1のトポロジーのエリアに配置されるべきか、または第1のトポロジーのエリア以外の複数のトポロジーのエリアのうちの1つに配置されるべきかを判定することで進行する。コンポーネントが第1のトポロジーのエリア以外の複数のトポロジーのエリアのうちの1つに置かれるべきであると判定される場合、コンポーネント配置要求は、第1のトポロジーのエリア以外の複数のトポロジーのエリアのそれぞれのトポロジーのエリアの基準コンピューティング・デバイスに渡される。コンポーネントが第1のトポロジーのエリアに置かれるべきであると判定される場合、アプリケーションのコンポーネントを実行するためのコンピューティング・リソースを有する選択されたコンピューティング・デバイスが、第1のコンピューティング・デバイスのローカル・リソース・リストから特定される。
選択されたコンピューティング・デバイスは、コンポーネント配置要求を受信することができ、その選択されたコンピューティング・デバイスが、選択されたコンピューティング・デバイスのローカル・リソース・リストから、アプリケーションのコンポーネントを実行するためのコンピューティング・リソースを有する別のコンピューティング・デバイスを特定する可能性があることに留意されたい。収束を保証するために、ローカル・リソース・リストの別のコンピューティング・デバイスにコンポーネント配置要求を渡すことは、改善条件にしたがう可能性があり、例えば、別のコンピューティング・デバイスによって提供されるコンピューティング・リソースがローカル・リソース・リストのルート・ノードのコンピューティング・リソースを所定の量(例えば、20%)だけ超えることが課せられる可能性がある。
上で示されたように、コンポーネント配置要求は、コンポーネントまたはアプリケーションによって処理されるデータのソースのシンクの場所に関する情報を含む可能性がある。コンポーネントを配置するためのトポロジーのエリアは、ソースのシンクの場所に基づいて決定される可能性がある。
方法は、初期化段階の間に、Vivaldiアルゴリズムを使用して分散型ネットワークのコンピューティング・デバイスの相対的な位置を決定するステップと、Meridianアルゴリズムを使用して、コンピューティング・デバイスを、第1のトポロジーのエリア、および第1のトポロジーのエリア以外の複数のトポロジーのエリアにクラスタ化するステップとを含む可能性がある。
さらなる態様によれば、ソフトウェア・プログラムが説明される。ソフトウェア・プログラムは、プロセッサでの実行のために適合され、コンピューティング・デバイスで実行されるときに、本明細書において概要を説明される方法のステップを実行するように適合される可能性がある。
別の態様によれば、ストレージ媒体が説明される。ストレージ媒体は、プロセッサでの実行のために適合され、コンピューティング・デバイスで実行されるときに本明細書において概要を説明される方法のステップを実行するように適合されたソフトウェア・プログラムを含み得る。
さらなる態様によれば、コンピュータ・プログラム製品が説明される。コンピュータ・プログラムは、コンピュータで実行されるときに本明細書において概要を説明される方法のステップを実行するための実行可能命令を含み得る。
本明細書において概要を説明される方法およびシステムの好ましい実施形態を含む方法およびシステムは、単体で、または本明細書において開示されるその他の方法およびシステムと組み合わせて使用され得ることに留意されたい。さらに、本明細書において概要を説明される方法およびシステムのすべての態様は、任意に組み合わされ得る。特に、請求項の特徴は、互いに任意に組み合わされ得る。
本発明が、添付の図面を参照して以下で例示的に説明される。
今日まで、ネットワークの増大する転送容量の需要は、主に、技術の飛躍的進歩かまたは新しいインフラストラクチャの要素の設置かのどちらかによってネットワークの設置される帯域幅を広げることによって達せられている。しかし、増大する容量の需要に影響されるネットワークのこの発展は、少なくとも無理のないコストでは継続すると期待され得ないという大きな懸念がある。将来のネットワークの改良がますます難しくなるので、増大する容量の需要を満たすための代替的な手法が必要とされている。ネットワーク容量の増大する需要に対処する十分に確立された手法は、ネットワークに「上位層の(higher layer)」インテリジェンスを追加することである。追加される「上位層の」インテリジェンスは、例えば、トラフィックを局所化することによって全体的なトラフィックを削減し、したがって、利用可能な転送量を増やすことを目標とする。「上位層の」インテリジェンスのこの概念の最初の成功は、コンテンツ・デリバリ・ネットワーク(CDN)の導入であった。CDNは、基本的に、インターネットにおいて放送配信の特徴を含む(メディア)サービスの大規模な採用を可能にする。
しかし、メディア・ストリームがインターネット内のどこかで、すなわち、クラウドで処理を受けることを要し、それによって、例えば、IP−TVをパーソナライズされた「多視点」ビデオ・サービスに発展させることを可能にする(例えば、Ishfaq Ahmad、「Multi-View Video:Get Ready for Next-Generation Television」、IEEE Distributed Systems Online、第8巻、第3号、2007年、論文番号0703−o3006参照)か、または「OnLive」(例えば、OnLive、http://www.onlive.com/参照)のようなクラウドに基づくゲーム・サービスを可能にする必要があるパーソナライズされたメディア・ストリームへの潮流が起こりつつある。CDNは同じコンテンツを多数の受信者に効率的に配信するために構築されるが、ネットワーク内での処理を必要とする個別化されたコンテンツ・ストリームの新しい潮流は、インターネット・インフラストラクチャを課題としている。
今日のアプリケーションおよび対応するクラウド・インフラストラクチャは、概して、データが、アプリケーションが実行される専用の場所(すなわち、データセンター)にネットワークを通じて移動させられるように設計される。将来のインターネット設計にこのクラウド・コンピューティングのパラダイムを残すことは、メディア・ストリームの処理機能が置かれている「任意の」データセンターに転送される必要がある膨大な量のトラフィックをもたらすこととなる。本明細書では、指定されたデータセンターでの集中型のアプリケーション処理のこのパラダイムを変更することが提案される。特に、アプリケーションの要件にしたがってアプリケーションまたはアプリケーションの一部の移動を施行するインテリジェントなインフラストラクチャが提案される。そのような方式は、トラフィックを局所化することによってネットワークからの不必要な「長距離」トラフィックをオフロードすることができ、したがって、将来のネットワークにおける転送容量の限られた可用性の問題を克服するのに役立つ。
今日のクラウド・インフラストラクチャでも、コンピューティング・インフラストラクチャをインターネットにオフロードすることが、欠かせないものとなっている。Amazon EC2、Rackspace、またはMicrosoft Azureのようなクラウド・コンピューティング・プロバイダは、自身のインフラストラクチャまたはプラットフォームを、FacebookまたはAnimotoのようなインターネットに基づくサービスの極めて動的なニーズをサポートする、自動化されたスケーラビリティおよび即座の展開のような特徴を提供するサービスとして提供する。
しかし、今日の手法は、大きなコストがかかり、トラフィックを局所的に保つのではなくより多くのトラフィックが(クラウド・コンピューティング・プロバイダによって提供される)集中型のデータセンターにルーティングされるのでコア・ネットワークに対する全体的な負荷を増やす。集中型のデータセンターは、データを処理し、そのデータを要求元に送り返す。これはこれまでの要求/応答に基づくウェブ・サービスに関しては実現できそうであるが、この集中型の手法は、パーソナライズされたMultiViewビデオのレンダリングのような巨大なメディア中心のリアルタイム・アプリケーションのための実際のインターネット・アーキテクチャの設計をだめにする可能性がある。
インターネットが、開発者およびエンド・ユーザがそれらの開発者およびエンド・ユーザのパーソナライズされたアプリケーションを統合されたネットワークおよびコンピューティング・インフラストラクチャで実行することを可能にするサービス指向のコンピューティング・パラダイムを直接サポートする固有の能力を組み込むことが、提案される。
自律的なサービスが、そのようなアプリケーションが構築され得るコンポーネントであるべきである。自律的なサービスは、そのマシン上でのそれらのサービスの物理的なインスタンス化によってアドレス指定される特定のホスト・インフラストラクチャ・ハードウェアに拘束されるべきでなく、分散型のコンピューティング・リソース上に動的に展開され、データ・フローのソースとシンクとの間でデータ・フローに対して並べて配置(collocate)され得る移動可能なオブジェクトになるべきである。
自律的なサービスは、サービスの動的な組み立てと、ワークフローまたはコンテキストの条件が変わる場合のサービスの潜在的な適合または再配置とを可能にするために、サービスの明確に定義された抽象化モデルを利用する可能性がある。サービス・コンポーネントの疎結合が、要求に応じてサービスのワークフローの相互接続を可能にすべきであり、(サービスおよびそれらのサービスのインターフェースが何らかの意味的なサービスの記述を有するとすれば)サービスの組み立てを修正することによって、ユーザに同じ関連するデータを提供するために必要とされるワークフローの適合を容易にすべきである。
ユーザの視点から見ると、通常、クラウドは、集中型のサーバのように振る舞う。それにもかかわらず、通常、クラウドは、一貫した方法で、空きリソースの集約されたまたは分散された集合を利用する。計算負荷およびネットワーク・リソースを監視することによって、インスタンスを動的に拡大および縮小し、必ずしもデータ・パスにQoS(サービス品質)管理メカニズムを適用することなくネットワーク負荷を管理することができる。
特にメディア・アプリケーションにおいて、そのようなコンポーネントは、別のデータ・ストリームを生成するためにデータを消費するデータ変換サービス、すなわち、エンティティとして実装される可能性がある。言い換えると、メディア・アプリケーションは、一連のデータ変換サービスとしてモデル化され得る。したがって、ビデオ・カメラは、ビデオ・データを生成したデータ・ソースである。ビデオ・コーデック、スケーリング・コンポーネント、またはフレーム化コンポーネントのようなビデオ処理コンポーネントは、メディア・ストリームを、例えば、モバイル端末またはTVディスプレイのためのふさわしいフォーマットに適合するためのデータの変換を可能にする可能性がある。画像認識は、ビデオ信号からオブジェクトを特定することができ、それらのオブジェクトは、シーンの3Dモデルを生成するために異なるソースからマージされる可能性がある。
そのようなデータ変換モデルおよびカメラの元のビデオ・ストリームを用いて、ユーザのための新しいパーソナライズされた像がレンダリングされ、ディスプレイに送信される可能性がある。そのようなサービスは、有向グラフによって表される可能性があり、展開時にインスタンス化されることになる。インスタンス化プロセス中に、必要とされるリソースが、利用可能なリソース・プールから選択される。必要とされるリソースをインスタンス化プロセス中に選択することの結果として、ネットワークに対してサービスによって課されるトラフィック全体が削減される。言い換えると、リソース選択プロセスは、ネットワークに対してサービスによって課されるトラフィック全体を削減することを目的とする可能性がある。リソース選択プロセスは、サービスの消費者のQoE(体感品質)の点を最適化することをさらに考慮する可能性がある。
さまざまなサービスの特徴を有するアプリケーションは、メディア・クラウド(MC)の概念から恩恵を受ける程度が異なる可能性がある。大きな恩恵は、特定の期間にわたり連続的なデータの安定したフローを必要とするアプリケーション、または処理のために大量のデータの転送を必要とするアプリケーションで実現され得る。一方、ごく限られたデータの転送しか必要としないアプリケーションに関しては、サービスの転送のオーバーヘッドおよびインスタンス化のコストが、得られる恩恵を上回る可能性がある。したがって、データに関連する「メタ情報」の取得を可能にするメカニズムを提供することが、MCの概念で有益である可能性がある。データに関連するそのような「メタ情報」は、データが一定のメディア(例えば、ビデオ)ストリームであるか若しくはサービスの実行前に転送される必要がある限られた量のデータ(例えば、データ・ファイル)に過ぎないかどうか、データがどこにあるか、またはサービスの実行のためにどれだけのデータが転送される必要があるかに関する情報を提供する可能性がある。
ネットワーク・アーキテクチャによって本質的にメディア・クラウドの筋書きをサポートするために、既存のインターネット・アーキテクチャのいくつかの基本的な原理が再考されるべきである。第1に、コンテンツ・ネットワーキングのよく知られている原理が、本明細書に記載のMCの手法をサポートするように拡張されるべきである。コンテンツ・ネットワークは、データの局所性を探る、つまり、ソースにおけるデータに対する要求を満たすのではなく、データのローカルのキャッシュされたコピーが配信される。コンテンツを直接アドレス指定し、コンテンツが生成された場所をルーティングの決定のために使用するのではなくこの情報をルーティングの目的に使用する方式が、提案され得る。
上述の方式の拡張は、コンテンツをアドレス指定すべきであるだけでなく、さらに、要求されたデータを提供することができるサービスをアドレス指定し、必要な変換を行うための処理パイプラインをインスタンス化すべきである。単一のドメイン内のすべてのユーザに集中型の処理を実行する代わりに、メディア・フローは、利用できる場合、ネットワーク・レイヤの固有の「マルチキャスト」能力を利用して適切な場所で組み合わされるか、または分割される可能性がある。これは、マルチキャストが、「マルチキャスト」がネットワークでサポートされるかどうかを知らないサービスの開発者によって明示的に組み込まれる必要があり、したがって、オーバーレイ・メカニズムによってのみ実現され得る既存の方式よりも有益である。
異なるサービス・コンポーネント間で交わされる(メディア)フローのトラフィック・パターンが正確に予測される場合、本明細書に記載のMC対応ネットワークは、パケット毎にルーティングの決定を実行する代わりに、直接、そのようなフロー・パターンに対して動作することができる。したがって、MC対応ネットワークは、サービス・コンポーネント間で交わされるメディア・ストリームの利用可能なメタ情報をネットワークに提供することによって効率的なフローに基づくスイッチングを可能にすることができる。この情報は、そのようなMC対応ネットワークの制御プレーンが全体的なスループットを向上させることを可能にすることができる。
MC方式は、フローに基づくスイッチング・パラダイムが、概して、フロー制御ハンドラにおいてより大きな動的さをサポートすることを代償として実現されることをやはり考慮し得る。そのような代償を「制限する」ために、MC対応ネットワークは、同じデータセンターで実行されるサービス・コンポーネント間のパスを共有している複数のデータ・ストリームを集約する能力を提供すべきである。データセンター間のジョイント・ストリームの集約された粒度(granularity)を導入することによって、コア・ネットワーク自体の制御の複雑性が制限され得る。
MCを提供するときのネットワークに対するさらなる要件は、もはやマシンではなくサービス(すなわち、サービス・コンポーネント)であるメディア・フローのエンドポイントの途切れることのない再配置がサポートされるようにしてフローがネットワークで処理されるべきであることである。したがって、MC対応ネットワークに関しては、ソケット・インターフェースのようなクライアントのAPIが修正される必要がある可能性がある。MC対応サービスは、概してデータの(1つまたは複数の)入力ストリームに対して動作して、このサービスの後続のコンシューマ・コンポーネントにその後配信される自身の出力データを生成する自己充足的なコンポーネントから構築されるので、通信を目的とする専用のソケットの使用はもはや十分ではない可能性があり、新しいパラダイムが将来のインターネットに関連して考えられる必要がある可能性がある。
図1は、コンピューティング・ノード(コンピューティング・デバイスとも呼ばれる)101の集合100を示す。これらのコンピューティング・ノード101は、階層のないフラットな構成を形成し、つまり、集合100のコンピューティング・ノード101のいずれも全体の制御または管理機能を持たない。コンピューティング・ノード101のそれぞれは、その他のコンピューティング・ノード101とは独立して働き、コンピューティング・ノード101で利用可能な集合100の構造の個々の情報にのみ依存する。集合100は、本明細書においてはメディア・クラウド(MC)100と呼ばれる。さまざまなノード101は、インターネットなどの通信ネットワーク103を介して相互接続される。
(集中型の方法とは対照的に)分散型の方法でサービスまたはアプリケーションを提供するためにクラウド・コンピューティング機器101の分散型の構成100を使用することが、提案される。サービスまたはアプリケーションの分散型のプロビジョニングの結果として、サービスまたはアプリケーションは、(とりわけ通信ネットワーク103の必要とされる送信リソースに関して)リソースがより効率的に利用される方法で提供され得ると期待される。この文脈で、クラウド・コンピューティング機器101に関する完全に分散型のリソース管理(RM)システムが記述され、それにより、クラウド・コンピューティング機器101で提供されるRM機能のいずれも、利用可能なリソースおよび構成100のトポロジーに関する完全な知識を持たない。全体として、MC100のノード101のそれぞれの自律的な分散型の自立したリソース管理(RM)機能を提供することが望ましい。
この文脈で、「自律的な」RM機能とは、各ノード101が、実行されるアプリケーションまたはアプリケーションのコンポーネントをどこに持つべきかを決定するために、そのノード101のローカルのリソースの近隣のノードについて自律的に決定することを意味する。さらに、「自律的な」RM機能は、別のクラウドのリソースの領域の代表を自律的に決定する。言い換えると、MC100は、複数のクラウドのエリア102に細分される可能性があり、第1のエリア102のノード101のそれぞれが、第2のエリア102全体(または第2のエリア102の下位領域)の代表である第2のエリアのノード101を自律的に選択することができる。したがって、各ノード101は、ノードのエリア102内のノード101の近隣で利用可能であるリソースのローカル・リソース・グラフを自律的に構築することができる。さらに、各ノード101は、MC100のその他のエリア102の代表ノードのトポロジーのリストを構築し、それによって、各ノード101にMC100のすべてのエリア102(およびおそらくは下位領域のすべて)への入り口の点(point of entry)を提供することができる。
各ノード101のRM機能は、リソース管理機能があらゆるノード101に置かれるという点で「分散型」である。一実施形態においては、ノード101のいずれも、いかなる特定の特殊な役割(例えば、調整の役割)も持たない。各ノード101は、そのノード101のRM機能を「自立」して実行し、つまり、MC100内でソフトウェア・コンポーネントをどこに置くかの決定が、(上位レイヤの制御機能と調整することなく)当該ノードのRM機能によって単独で実行される。「自立」して働くために、各ノード101は、(例えば、ローカル・リソース・グラフによる)近くの/ローカルのリソースの個々の像と、(例えば、トポロジーのリストによる)その他のエリアおよび/または(下位)領域への個々のつながりとを保持する。
MC100のノード101は、MC100内のすべてのノード101の位置の共通の全体的なネットワーク・マップを共有しない。その代わりに、各ノード101が、MC100全体の当該ノードの像を反映する個々のネットワーク・マップを含む。個々のネットワーク・マップは、ローカル・リソース・グラフ(それにより同じエリアまたは領域102内の近隣のノードの一部を示す)と、トポロジーのリスト(それによりMC100の各エリア102(または領域)の少なくとも1つの代表ノードを与える)とを含む可能性がある。
図2は、図1と同様のノード101の構成(MC)100を示す。ノード101は、異なるトポロジー上の場所に位置付けられる(例えば、ノード101は、異なる国および/または大陸にまたがって分散される)。MC100のノード101の完全な集合は、ノード101のネットワーク100の地理的エリアと一致する可能性がある複数のエリア102に細分される。以下で概要を説明されるように、エリア102は、1つまたは複数の領域に細分され得る。ノード101は、分散型のVivaldiアルゴリズムを使用してMC100全体の構造を決定し、それによって、MC100内の各ノード101に関するいわゆるVivaldiネットワーク座標を決定することができる。Vivaldiアルゴリズムは、分散型の技術を使用して、ネットワーク100内のノード101間の伝播時間(または往復遅延時間)を推定することができる。推定された伝播時間(または往復遅延時間)は、MC100内の各ノード101の「座標」を決定し、それによって、MC100のトポロジーの全体像を提供するために使用され得る。ノード101のVivaldiネットワーク座標に対してMeridianアルゴリズムを使用して、1つまたは複数の所定の条件(例えば、グループ内での最大往復遅延時間に関する条件)を満たすノード101のグループが形成され得る。言い換えると、MC100のノード101が、各クラスタが1つまたは複数の所定の条件を満たすようにクラスタ化され得る。クラスタは、本明細書においては、トポロジーのエリアまたはトポロジーの領域と呼ばれる(エリアは、領域に細分される可能性がある)。したがって、MC100のノード101は、トポロジーのエリアまたはトポロジーの領域へのノード101のクラスタ化を自律的に決定することができる。結果として、各ノード101は、1つ丁度のトポロジーのエリアと、(エリアが(1つまたは複数の)領域に細分される場合は)1つ丁度のトポロジーの領域とに割り振られる。
ノード101のトポロジーのクラスタ化300が、図3に示される。上で示されたように、MC100のトポロジーは、(例えば、1つまたは複数の領域302を含むエリア102の)階層のレベルに順序付けられる可能性がある。したがって、ノード101(例えば、図3のノードB)は、領域302(例えば、領域α)に属すると考えられる可能性があり、領域302自体は、エリア102(例えば、エリアa)に属すると考えられる。
特定のノード101は、MC100全体の限られた像しか持たない可能性がある。MC100のこの限られた像は、「自律的な」RM機能を実行するためにノード101によって使用される。RM機能のこの部分は、ノード101によって実行されるトポロジー管理と呼ばれる可能性がある。MC100の各エリア102(または領域302)に到達可能であるために、各ノード101は、別のエリア102(または領域302)の1つの(場合によってはいくつかの)代表をそのノード101のトポロジー・ツリーまたはトポロジー・リスト(トポロジーのリストとも呼ばれる)に追加する。MC100のノードが1つの階層のレベル、例えば、エリア102内に(領域302へのいかなる細分化もなしに)編成される場合、各ルート・ノード101が、すべてのその他のエリア102の(任意の)代表を記憶すべきである。ノード101が2つの階層のレベル、例えば、領域302およびエリア102に編成される(各エリア102は1つまたは複数の領域302を保有する)場合、各ルート・ノード101が、すべてのその他のエリア102の(任意の)代表と、このエリア102内の領域302のいずれかの(任意の)代表とを記憶すべきである。
したがって、各ノード101は、エリア102内(または領域302内)のリソース管理を実行する能力をノード101に与えるそのノード101のローカル・リソース・グラフ(RG)のルートの位置にそのノード101自身を置く。さらに、各ノード101は、そのノード101のトポロジーグラフ(またはトポロジー・リスト)のルートの位置にそのノード101自身を置く。これは、ノード101に、ネットワークのそのノード101の個々の像を与える。各(ルート)ノード101は、そのノード101のトポロジー・グラフ(TG)にその他の領域302(および/またはエリア102)の1つまたは複数の代表を追加する。領域302内の任意のノードがこの領域302の代表になる可能性があり、つまり、すべてのノードは同等であり、エリア102または領域302のノードのいずれも特別なタスクを持たないことに留意されたい。(エリア102および領域302を含む)2階層のトポロジーの場合、ノード101のTGを使用してノード101のそれぞれから正しい領域302をアドレス指定するために、最大で2つのステップが必要とされる。
図4は、例示的なノード101のブロック図を示す。特に、ノード101は、ノード101のRM機能のために使用されるマッピング機能401を含む。さらに、ノード101は、1つまたは複数のアプリケーションの1つまたは複数のコンポーネントC0、C1、...、Cnを実行するための実行環境403を含む。実行環境403は、ノード101で利用可能なノードのリソース、例えば、メモリまたは処理能力を提供する。さらに、実行環境403は、ノード101にアクセスするために利用可能なリンクに関する情報を提供することができる。特に、ノード101へのリンクの帯域幅、遅延、またはジッタに関する情報が、提供される可能性がある。
図5は、ノード101の例示的なグラフ500を示す。上で示されたように、各ノード101(エリアaの領域αのノードB)は、同じエリア/領域内のその他のノードのリストを含むローカル・リソース・グラフ501を含む。ローカルグラフ501は、階層的に編成される可能性があり、階層は、グラフのルート・ノードに対するその他のノードの距離(d)を示す可能性がある。距離(d)は、(距離(d)または階層のレベルが大きくなるにつれて)その他のノードのコンピューティング・リソースに関して利用可能である情報の精度または信頼性が下がることを示すことができる。ローカル・リソース・グラフ501に加えて、グラフ500は、MC100のその他のエリア102または領域302の代表であるノードを示すトポロジー・グラフ502を含み得る。
ローカルのおよび領域のトポロジーの情報は、図6に示されるテーブル600に記憶され得る。テーブル600は、ローカル・リソース・グラフ601のそれぞれのノードに関連するコスト611を含めて、ローカル・リソース・グラフ601のノードを示す。別のノードのコスト611は、別のノードに付与されるリソース値、例えば、利用可能な処理リソース、利用可能なリンクの帯域幅、利用可能なメモリ・リソース、実現可能な往復遅延時間などを含む可能性がある。さらに、テーブル600は、その他の領域および/またはエリアの代表ノードを示すトポロジー・リスト602を提供する。トポロジー情報のエントリは、(領域/エリア毎に単一のエントリではなく)複数の選択肢を保有する可能性もある。したがって、メモリ・テーブル600は、MC100のノードの観点の表現である。通常、ローカル・リソース・グラフ601内のノードの数は、エリア/領域内のノードの総数未満の所定の数に制限される。トポロジー・リスト602内のエリア/領域毎のノードの数は、エリア/領域内のノードの総数未満のいくつかのノード(例えば、1つまたは2つのノード)に制限される。これは、各ノード101が完全なMC100の制約された像しか持たないことを意味する。
ノード101は、テーブル600のリソースおよびトポロジーを管理する(グラフ500が、例示を目的として使用される)。リソース・エントリ611は、近隣のノードから受信されたコストのタプルの情報を記憶する。ルート要素からの距離(d)に依存して、コストのタプルの値の精度は、正確性、現実性、集約された像(aggregated view)などに関して変わる可能性がある。コストのタプルは、処理、メモリ、リンクの帯域幅、RTT(往復遅延時間)などのリソース値を含み得る。コンポーネントのインスタンス化プロセス(すなわち、コンポーネントの配置プロセス)の場合、ノードは、まず、そのノード自身のリソースの状態を分析し、次いで、それをRG601のノードと比較する。ノードは、コンポーネントをローカルでインスタンス化するのか、またはRG601内の近隣のノードに要求を転送するのかを決定する。
ローカル・リソース・グラフ501、601は、ノード101によって実行されるリソース管理のために使用され得る。上で示されたように、各ノードは、ノード101で利用可能な限られた情報に基づいて、特に、ローカル・リソース・グラフ501に基づいて、独立したリソース管理機能を実行する。ローカル・リソース・グラフ501は、(概して同じ領域から取得される)ノードの部分集合に基づく。複数の領域302の間の境界の近くに位置付けられているノード101に関しては、ローカル・リソース・グラフ501の近隣のノードが、その他の領域のノードを含む可能性があることに留意されたい。概して、ローカル・リソース・グラフ(RG)の木の深さは、(近くのネットワークの近隣のノード、または近傍に)制限される。ノード101のブート・プロセスにおいて、ローカル・リソース・グラフ内の位置が、(領域の)ノードの所与の集合からネゴシエーションされる可能性がある。言い換えると、ノード101は、ローカル・リソース・グラフ内に置かれるべき利用可能なノードの適切な部分集合を選択することができる。継続的な(時間のかかる)最適化プロセスが、ノードを同じ領域内のその他のノードで置き換えることを可能にする。つまり、ルート・ノード101は、そのルート・ノード101のローカル・リソース・グラフ内のノードがノード101のリソース管理機能に(あまり)寄与しないことを見つける場合、寄与しないノードを、ルート・ノード101の近隣の別のノードで置き換えることを決定する可能性がある。
したがって、ルート・ノード101は、そのルート・ノード101のローカルRG501の永続的な最適化プロセスを実行することができる。これが、ローカルRG501の例示的な更新プロセス800を示す図8に示される。2つのルート・ノード(A、B)は、自身のローカルRGを独立に設定してある。RGのすべてのノードは、同じ領域内にある。ルート・ノードは、それらのルート・ノードのローカルRGのためのよりふさわしいノードを特定するための調査を永続的に実行し、それらを置き換える(可能性がある)(参照番号802)。ノードは、実行されているコンポーネントにまったく影響せずに置き換えられる(参照番号801)。通常、各ノードは、RGの近隣ノードの最大数を有する可能性があり、そのノードは、ルート・ノードAのRGから出て行く必要があり、別のノード−ここではX−によって置き換えられなければならない(参照番号803)。言い換えると、各ノードは、所定の最大数のその他のノードのローカル・リソース・グラフの一部である可能性がある。所定の最大数は、利用可能なコンピューティング・リソースに関する情報をその他のノードに報告するために必要とされる労力が無理のないレベルに保たれるように選択され得る。これは、所定の最大数に達する場合、ノードが、それ以上、さらなるローカル・リソース・グラフに属すると考えられ得ないことを意味する。代替的に、ノードは、引き続き、新しいローカル・リソース・グラフに属すると考えられ得るが、同時に、別のローカル・リソース・グラフから削除される必要がある。これが、図8に示されている。
上で示されたように、ローカルRGの各ノード101は、コストのスカラ/タプル611を与えられる。このタプル611は、新しいコンポーネントのインスタンス化要求がどこに行われる必要があるかを決定するのに役立つ。言い換えると、MC100内でアプリケーションのコンポーネントの実行をどこに委ねるべきかを決定するとき、ノード101は、ローカルRG501を調べ、ノードによって与えられるコスト611に基づいて、ローカルRG501内に含まれるノードのうちの1つにコンポーネントを委ねる可能性がある。ローカルRG501のノードは、それらのノードのRGのルート・ノード101に現在のリソースの状態を定期的に知らせる。言い換えると、ローカルRG501のノードは、それらのノードのリソースに関する情報をルート・ノード101にプッシュし、それによって、ルート・ノード101が、裏付けのあるリソース管理の決定を行うことができることを保証する。特に、ローカルRGの情報(例えば、コスト611)は、(ルート・ノード自身を含む)ローカルRG内のノードのうちの1つをコンポーネントの配置のための適切なノードとして特定するために使用される。コンポーネントの配置プロセスは、数回繰り返される可能性があることに留意されたい。一方、リソース管理機能を実行するためのいかなる中央機能または部分的な中央機能も存在せず、それによって、単一障害点のリスクをなくす。
したがって、各ノード101は、ローカル・リソース・グラフ501と、その他の領域の1つまたは複数の代表ノードを示すトポロジーのグラフ501とを含む限られたネットワークの像500を有する。上で示されたように、MC100のトポロジーは、VivaldiおよびMeridianアルゴリズムを用いて分散するようにして決定され得る。初期化段階では、各ノード101が、同じ領域/エリア内のノードの完全なリストにアクセスできる可能性がある。ノード101は、このノードのリストを使用してローカル・リソース・グラフ501を構築する。さらに、初期化段階では、各ノード101が、残りの領域/エリアから少なくとも1つのノードを選択する可能性がある。残りの領域/エリアの少なくとも1つのノードの選択は、領域のノードがその他の領域の異なる代表ノードを有することを保証し、それによって、単一障害点または欠陥を防止するために、ランダムに実行されるべきである。
以下で、ノード101によって提供されるマッピング機能401に関するさらなる詳細が、説明される。ノードで利用可能なトポロジーおよびリソース情報(すなわち、情報500、600)に基づいて、MC100のノードは、メディア・クラウド・システム100のノード101上のソフトウェア(メディア)コンポーネントの(最適な)配置に関する決定を行うことができる。図7に示されるように、アプリケーション700は、概して、複数のコンポーネント703からなる。例として、電話会議アプリケーションは、複数のオーディオ・コーデック(符号化/復号)コンポーネント(電話会議の各参加者につき1つずつ)と、(参加者の音声チャネルを接続するための)ミキサー・コンポーネントとを含む。通常、アプリケーション700(およびコンポーネント703)は、ソース701(データの提供元)およびシンク702(データの提供先)を有する。上述の例においては、電話会議アプリケーションの個々の参加者が、ソースおよびシンクであると考えられ得る。コンポーネントの配置プロセスのタスクは、通信ネットワーク103のリソースの消費を削減するために、アプリケーション700のコンポーネント703をMC100内の適切な場所に置くことである。例として、電話会議アプリケーションのオーディオ・コーデック・コンポーネントをそれぞれの参加者の近くに配置することによって、(符号化された音声トラフィックのみが通信ネットワーク103を通じて送信されるので)アプリケーションにより必要とされる送信帯域幅が削減され得る。さらに、電話会議アプリケーションのミキサー・コンポーネントは、電話会議の参加者の間の中心の場所に置かれるべきである。
図7において、異なるコンポーネント703の間およびソース701とシンク702との間のリンクの異なる幅は、リンクに関する異なる要件を示す(ラバー・バンド・モデル)。より大きなばね乗数を示すコンポーネント703の間のバンドは、コンポーネント703が互いに近くに(例えば、同じノードに)置かれるべきであることを示す。
配置手順は、利用可能なノードのリソースおよび利用可能なリンクのリソースを考慮に入れるべきである。さらに、(例えば、プロセッサ・リソース、メモリ・リソース、リンクの帯域幅、遅延、ジッタに関する)アプリケーション・コンポーネント703の要件が、考慮に入れられるべきである。
そのような配置の決定は、集中型の方法で実行され得る。しかし、概して、コンポーネントの配置の集中式またはメッシュ式の解決策は、大規模なシステムに見合わない。さらに、そのような集中式の解決策は、単一障害点をもたらす傾向がある。
メディア・クラウド100のノード101において利用可能な限られた情報を用いる分散型の配置方式を利用することが、本明細書において提案される。分散型の配置方式は、個々のノード101によって実行される個々のマッピング機能401を利用する。これらのマッピング機能は、2つの下位タスク、すなわち、トポロジー管理とリソース管理とに分けられる。トポロジー管理は、ノード101のそれぞれで利用可能なトポロジー情報(特に、トポロジー・グラフ502またはトポロジー・リスト602)を利用する。コンポーネント配置要求は、通常、アプリケーション(またはコンポーネント)のシンクまたはソースについての領域の情報をともなう。ノードは、このトポロジー情報を調べ、トポロジー情報がそのノード自身のトポロジー情報に合致しない場合、要求を領域(またはエリア)の代表に転送する。言い換えると、ノードは、コンポーネントの所望のシンクまたはソースの場所がノードの領域と一致するかどうかを検証する。一致しない場合、コンポーネント配置要求は、(トポロジー・リスト602から)ノードに知られている適切なエリアまたは領域の代表ノードに渡される。2階層のトポロジー(領域およびエリア)においては、正しい領域302をアドレス指定するために、最大で2つのステップが必要とされる。複数のコンポーネントに関する配置要求の場合、トポロジー・プロセスは、1回実行されれば十分である。言い換えると、(同じサービスまたはアプリケーションに属する)一連の関連するコンポーネントは、単一のステップで配置され得る。
リソース管理は、MC100の異なるノードの負荷の状態に応じたローカルのリソース配置を対象とする。ノードは、コンポーネント配置要求を受信し、コンポーネントがそのノードの領域内に置かれるべきであると判定する場合、そのノードのローカル・リソース・グラフ501またはテーブル601を調べて、コンポーネントを実行するための必要なリソースを有するグラフ501内のノードを特定する。概して、ネットワークの異なるノード101は、配置されるべきコンポーネントのコピーを既にキャッシュしてある。したがって、通常、特定されたノードでコンポーネントのインスタンス化を開始するだけで十分である。そうでなければ、特定されたノードは、中央コンポーネント・データベースからコンポーネントをダウンロードすることができる。
一例においては、図3のノード311(ソース)が、ノード312(シンク)を含むシンクを有するアプリケーションの設定を要求する。問題は、ノード311がシンクの近くにあるノードをどのようにして発見することができるか(またはその逆)である。上で示されたように、MC100の各ノード101のマッピング機能(MF)401は、そのノード自身および近隣のノードのリソースの占有およびトポロジー情報を記憶し、したがって、各ノードは、自立してそのノードの配置の決定を行うことができる。第1に、利用可能なトポロジーの情報が、シンクかソースかのどちらかに近いネットワークの領域を発見するために使用される。第2に、選択された領域内の近隣のノードのローカルのリソース情報が使用され、その結果、ノードは、そのノードの近隣のどこに新しいコンポーネントを置くべきかを決定することができる。上述の配置方式を使用すると、ノードのいずれも、MC100の完全で厳密なリソースおよびトポロジー情報を知る必要がない。それでも、実現される配置は、ほぼ完全である。本明細書において概要を説明される配置方式においては、MCのノード101のいずれも、オンライン処理中に特別な役割を持たないことに留意されたい。結果として、任意のMCのノード101のうちの1つまたはいくつかが、システムの停止を引き起こさずに故障する可能性がある。
ノードのマッピング決定プロセスは、以下のステップを含み得る。第1のステップにおいて、(コンポーネント配置要求で要求された)シンクがそのノードと同じエリア/領域内にあるかどうかが調べられる可能性がある。そうでない場合、ノードは、要求されたシンクに合致するに違いないエリア/領域内の代表ノードに関してそのノードのテーブル602を検索する。ノードは、代表ノードにコンポーネント配置要求を転送する。代表ノードは、シンクがその代表ノードのエリアおよび領域内にあると確認し、そうでなければ、送り先の領域からその個々の代表に要求を転送する必要がある。代表ノードは、近くにあり、コンポーネントを実行するために最良のコスト値を有する最もふさわしいMCのノードに関してその代表ノードのローカルRG601を調べる。概して、アプリケーションは複数のコンポーネントからなるので、したがって、これらのコンポーネント間の相互接続はさまざまな要件を有することに留意されたい。配置の決定は、アプリケーションのグラフ情報の全体またはより大きな部分がより全体的なマッピングの決定のために提供され得る場合、改善される可能性がある。
上で示されたように、各ノード101は、ローカル・リソース・グラフ601を含む。コンポーネント配置要求を受信するとき、ノード101は、そのノード101のローカル・リソース・グラフ601内で適切なノードを探索し、このノードにコンポーネント配置要求を転送する。このノードも、ローカル・リソース・グラフ601を含み、コンポーネント配置要求を処理するためのそのノードのローカル・リソース・グラフ601内の適切なノードを探索する。この繰り返しのプロセスの収束を保証するために、コンポーネント配置要求の転送は、最低限の必要とされる改善に関する条件にしたがう可能性がある。特に、転送がコンポーネントの配置に関する最低限の必要とされる改善につながる場合(例えば、プロセッサの能力/帯域幅の20%の削減など)にのみ、コンポーネント配置要求がローカル・リソース・グラフ601内のノードに転送され得ると規定される可能性がある。
以下では、特定のエリアおよび/または領域トポロジー・コントローラ303を含むメディア・クラウド100の実施形態が説明される。領域のトポロジー・コントローラ303は、この領域のすべてのノードのリストを管理するために使用され得る。トポロジー・コントローラ303は、いかなるメディア処理、ストリーミング、またはメッセージングにも関与しないが、MCのノードの個々のトポロジーの像を確立するためにマッピング機能401をサポートする。これは、概して、トポロジー・コントローラ303が、実際のコンポーネント配置プロセスには関与しないが、ノード101のそれぞれの初期化プロセスにのみ関与することを意味する。概して、領域毎に1つのトポロジー・コントローラが存在し、トポロジー・コントローラの機能は領域のMCのノードのうちの1つの一部である可能性がある。トポロジー・コントローラは、ローカル・リソース・グラフ601に関するノードおよび/またはその他の領域602のノードを選択するために、MCのノードのブート時に1回だけ要求される可能性がある。
ブート時に、ノード101のマッピング機能401は、管理プロセスで事前に設定されたそのマッピング機能401のトポロジー・コントローラ303をアドレス指定する。マッピング機能401は、トポロジー情報、例えば、ノードが位置付けられているエリア、領域を取り出す。この情報は、アプリケーション/コンポーネントのシンクかまたはソースかのどちらかの近くにコンポーネントを配置するために処理中に必要とされる。さらに、マッピング機能401は、上位集合から最もふさわしい近隣のノードを選択し、これらの近隣のノードのノードIDを(マッピングに関連する属性とともに)そのマッピング機能401のローカル・リソース・グラフ601に結びつけるためにMCのノードがアドレス指定することができる近隣のノード(MCのノード)の上位集合を得る。上で示されたように、(好ましくは)リソース・グラフは、複数レベル(d)からなり、子の所与の最大量(n)を有する木構造を有する。さらに、マッピング関数401は、近隣の領域/エリアからトポロジー・コントローラの第2のリストを受信し、それによって、ノードが近隣の領域/エリアの代表ノードを特定することを可能にすることができる。つまり、マッピング機能401は、それぞれの近隣の領域の1つの個々の代表を要求することができる。この代表は、通常、利用可能なノードのリストからランダムに選択される。これは、負荷を、領域のノードの間に均等に分散させるのに役立つ。上述のブート・プロセスは、ノードが2つの階層レベル(エリアおよび領域)で編成される場合、同様に働く。
したがって、ブート・プロセス中、新しいノード101は、MC100内のその他のノードのリストを含む所定のトポロジー・コントローラ303のアドレスだけを知っている可能性がある。その他のノードのリストは、(例えば、VivaldiアルゴリズムをMeridianプロセスと併せて使用して)新しいノード101が属するエリア/領域を決定するために新しいノード101によって使用される。結果として、新しいノード101は、特定のエリア/領域に割り振られ、このエリア/領域のトポロジー・コントローラ303のノードのリストに含められる可能性がある。
言い換えると、特定の領域の各ノード101は、以下のタスクを実行する可能性がある。ノード101は、領域302のコントローラ・ノード303を知っている。ブート要求があると、ノード101は、すべてのエリア/領域からのコントローラ・ノードのリストを得る。ブート要求があると、ノード101は、そのノード101の領域302と、この領域302の関連するコントローラ・ノード303とを決定する。ブート要求があると、ノード101は、直接の(領域の)近隣のノードの任意のリスト(RG)を得る。要求があると、ノード101は、近隣の領域/エリアから1つの任意のノードを得る。通常、領域302のコントローラ・ノード303は、領域内のすべてのノード101を知っており、上位エリア102のコントローラ・ノードを知っている。ノードの要求があると、コントローラ・ノード303は、そのコントローラ・ノード303の領域内のノードのノードIDを提供する。さらに、ノードの要求があると、コントローラ・ノード303は、領域の代表ノードを提供する。エリア102のコントローラ・ノード303は、そのコントローラ・ノード303の領域302のコントローラ・ノード303を知っており、すべてのエリア102のコントローラ・ノード303を知っており、エリアの要求を近隣のコントローラ・ノードに転送する。
本明細書において、クラウド・コンピューティングのためのネットワークおよび対応するコンピューティング・デバイス(ノード)のアーキテクチャが説明された。説明されたアーキテクチャは、アプリケーションのコンポーネントがコンピューティングクラウド内の適切なノードに置かれることを可能にする非集中型のアプリケーション・コンポーネント配置方式の実装を可能にする。説明されたアーキテクチャは、増大する需要に対してスケーラブルであり、単一障害点を示さない。さらに、説明されたアーキテクチャは、クラウド・コンピューティングを使用するときに通信ネットワーク内で必要とされる帯域幅のリソースの削減を可能にする。
説明および図面は、提案された方法およびシステムの原理を例示するに過ぎないことに留意されたい。したがって、当業者が、本明細書において明示的に説明されていないか、または示されていないが、本発明の原理を具現化し、本発明の精神および範囲内に含まれるさまざまな構成を案出することができることは、理解されるであろう。さらに、本明細書に挙げられたすべての例は、提案された方法およびシステムの原理、ならびに当技術分野の発展のために本発明者らがもたらした概念を読者が理解するのを助ける教示のみを特に目的とするようにもっぱら意図されており、そのような特に挙げられた例および条件に限定されないと解釈されるべきである。さらに、本発明の原理、態様、および実施形態、ならびにそれらの特定の例を説明する本明細書のすべての記述は、それらの均等物を包含するように意図される。
さらに、さまざまな上述の方法のステップおよび説明されたシステムのコンポーネントはプログラムされたコンピュータによって実行され得ることに留意されたい。本明細書において、一部の実施形態は、機械またはコンピュータが読むことができ、前記上述の方法のステップの一部またはすべてを実行する命令の機械が実行できるまたはコンピュータが実行できるプログラムを符号化するプログラム・ストレージ・デバイス、例えば、デジタル・データ・ストレージ媒体を包含するようにやはり意図される。プログラム・ストレージ・デバイスは、例えば、デジタル・メモリ、磁気ディスクおよび磁気テープなどの磁気ストレージ媒体、ハード・ドライブ、または光学式に読み取り可能なデジタル・データ・ストレージ媒体である可能性がある。実施形態は、上述の方法の前記ステップを実行するようにプログラミングされたコンピュータを包含するようにやはり意図される。
加えて、本特許明細書に記載のさまざまな要素の機能は、専用のハードウェアおよび適切なソフトウェアに関連してソフトウェアを実行することができるハードウェアを使用して提供され得ることに留意されたい。プロセッサによって提供されるとき、機能は、単一の専用のプロセッサ、単一の共有のプロセッサ、または一部が共有される可能性がある複数の個々のプロセッサによって提供される可能性がある。さらに、用語「プロセッサ」または「コントローラ」の明示的な使用は、ソフトウェアを実行することができるハードウェアを排他的に指すと考えられるべきでなく、暗黙的に、限定することなく、デジタル信号プロセッサ(DSP)ハードウェア、ネットワーク・プロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲートアレイ(FPGA)、ソフトウェアを記憶するための読み出し専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、および不揮発性ストレージを含む可能性がある。通常のおよび/またはカスタムのその他のハードウェアも、含まれる可能性がある。
最終的に、本明細書の任意のブロック図は、本発明の原理を具現化する例示的な回路の概念図を示すことに留意されたい。同様に、任意のフローチャート、流れ図、状態遷移図、擬似コードなどは、実質的にコンピュータ可読媒体で表現され、したがって、コンピュータまたはプロセッサによって、そのようなコンピュータまたはプロセッサが明示的に示されているか否かにかかわらず実行され得るさまざまなプロセスを表すことが、理解されるであろう。
Claims (15)
- コンピューティング・デバイス(101)であって、
− 前記コンピューティング・デバイス(101)は、第1のトポロジーのエリア(102)内に位置付けられ、
− 前記コンピューティング・デバイス(101)は、前記第1のトポロジーのエリア(102)以外の複数のトポロジーのエリア(102)にそれぞれ位置付けられる複数の基準コンピューティング・デバイスを示すトポロジーのリスト(602)を含み、
− 前記コンピューティング・デバイス(101)は、前記コンピューティング・デバイス(101)の利用可能なコンピューティング・リソースと、前記コンピューティング・デバイス(101)の近隣に位置付けられた少なくとも1つの近隣のコンピューティング・デバイス(101)の利用可能なコンピューティング・リソースとを示すローカル・リソース・リスト(601)を含み、
− アプリケーション(700)のコンポーネント(703)に関するコンポーネント配置要求を受信すると、前記コンピューティング・デバイス(101)は、
− 前記トポロジーのリスト(602)に基づいて、前記コンポーネント(703)が、前記第1のトポロジーのエリア(102)に置かれるべきであるか、または前記第1のトポロジーのエリア(102)以外の前記複数のトポロジーのエリア(102)のうちの1つに置かれるべきであるかを判定し、
− 前記コンポーネント(703)が前記第1のトポロジーのエリア以外の前記複数のトポロジーのエリアのうちの1つに置かれるべきであると判定される場合、前記第1のトポロジーのエリア以外の前記複数のトポロジーのエリアのそれぞれのトポロジーのエリアの前記基準コンピューティング・デバイスに前記コンポーネント配置要求を渡し、
− 前記コンポーネント(703)が前記第1のトポロジーのエリア(102)に配置されるべきであると判定される場合、前記ローカル・リソース・リスト(601)から、前記アプリケーションの前記コンポーネントを実行するための前記コンピューティング・リソースを有する選択されたコンピューティング・デバイスを特定し、
− 前記選択されたコンピューティング・デバイスがコンピューティング・デバイス(101)である場合、コンピューティング・デバイス(101)で前記アプリケーション(700)の前記コンポーネント(703)を実行し、そうでない場合、前記選択されたコンピューティング・デバイスに前記アプリケーション(700)の前記コンポーネント(703)に関する前記コンポーネント配置要求を渡す、
ように適合されているコンピューティング・デバイス(101)。 - 前記少なくとも1つの近隣のコンピューティング・デバイス(101)から前記少なくとも1つの近隣のコンピューティング・デバイス(101)の前記コンピューティング・リソースに関する情報を受信するように適合されている請求項1に記載のコンピューティング・デバイス(101)。
- − 前記第1のトポロジーのエリア(102)内に含まれる第1のコンピューティング・デバイス(101)のリストを受信し、
− 前記ローカル・リソース・リスト(601)のために、第1のコンピューティング・デバイス(101)の前記リストから複数の近隣のコンピューティング・デバイス(101)を、
− 前記第1のコンピューティング・デバイス(101)の前記コンピューティング・リソース、および/または
− 前記コンピューティング・デバイス(101)のリンクの帯域幅の使用に基づいて選択するように適合されている請求項1に記載のコンピューティング・デバイス(101)。 - − 前記ローカル・リソース・リスト(601)の近隣のコンピューティング・デバイス(101)を、第1のコンピューティング・デバイス(101)の前記リストからの新しい近隣のコンピューティング・デバイス(101)によって置き換えるように適合されている請求項3に記載のコンピューティング・デバイス(101)。
- − 前記トポロジーのエリア(102)は1つまたは複数の領域(302)に細分され、
− 前記トポロジーのリスト(602)は、前記複数のトポロジーのエリア(102)の前記1つまたは複数の領域(302)内に位置付けられた複数の基準コンピューティング・デバイスを示す、請求項1乃至4のいずれか1項に記載のコンピューティング・デバイス(101)。 - コンピューティング・デバイス(101)の前記コンピューティング・リソースは、前記コンピューティング・デバイス(101)のプロセッサ・リソース、前記コンピューティング・デバイス(101)のメモリ・リソース、および前記コンピューティング・デバイス(101)へのリンクの帯域幅のうちの任意の1つまたは複数である、請求項1乃至5のいずれか1項に記載のコンピューティング・デバイス(101)。
- 前記少なくとも1つの近隣のコンピューティング・デバイス(101)は、前記第1のトポロジーのエリア(102)内に位置付けられる請求項1乃至6のいずれか1項に記載のコンピューティング・デバイス(101)。
- − 第1のトポロジーのエリア(102)内の、請求項1乃至7のいずれか1項に記載の第1の複数のコンピューティング・デバイス(101)と、
− 第2のトポロジーのエリア(102)内の、請求項1乃至7のいずれか1項に記載の第2の複数のコンピューティング・デバイス(101)とを含む分散型ネットワーク(100)であって、
前記第1の複数のコンピューティング・デバイス(101)および前記第2の複数のコンピューティング・デバイス(101)は、対応する第1の複数のトポロジーのリスト(602)および対応する第2の複数のトポロジーのリスト(602)を含み、
前記第1の複数のトポロジーのリスト(602)は、前記第2の複数のコンピューティング・デバイス(101)の対応する第1の複数の基準コンピューティング・デバイス(101)を示し、
前記第2の複数のトポロジーのリスト(602)は、前記第1の複数のコンピューティング・デバイス(101)の対応する第2の複数の基準コンピューティング・デバイス(101)を示す、分散型ネットワーク(100)。 - 前記第1の複数の基準コンピューティング・デバイス(101)は、前記第2の複数のコンピューティング・デバイス(101)のランダムな選択であり、前記第2の複数の基準コンピューティング・デバイス(101)は、前記第1の複数のコンピューティング・デバイス(101)のランダムな選択である、請求項8に記載の分散型ネットワーク(100)。
- 前記第1のトポロジーのエリア(102)および前記第2のトポロジーのエリア(102)にそれぞれ第1のコントローラ・ノード(303)および第2のコントローラ・ノード(303)をさらに含み、
前記第1のコントローラ・ノード(303)および前記第2のコントローラ・ノード(303)は、それぞれ、前記第1の複数のコンピューティング・デバイス(101)および前記第2の複数のコンピューティング・デバイス(101)の指示を提供する、請求項8または9に記載の分散型ネットワーク(100)。 - 前記第1のコントローラ・ノード(303)は、前記第2のコントローラ・ノード(303)に指示を提供し、前記第2のコントローラ・ノード(303)は、前記第1のコントローラ・ノード(303)に指示を提供する、請求項10に記載の分散型ネットワーク(100)。
- − 前記第1の複数のコンピューティング・デバイス(101)および前記第2の複数のコンピューティング・デバイス(101)それぞれは、それぞれの前記コンピューティング・デバイス(101)の近隣の所定の数の近隣のコンピューティング・デバイス(101)のコンピューティング・リソースを示すローカル・リソース・リスト(601)を含み、
− 前記第1の複数のコンピューティング・デバイス(101)および前記第2の複数のコンピューティング・デバイス(101)それぞれは、前記第1の複数のコンピューティング・デバイス(101)および前記第2の複数のコンピューティング・デバイス(101)のうちの他方とは無関係に、前記第1の複数のコンピューティング・デバイス(101)および前記第2の複数のコンピューティング・デバイス(101)それぞれのローカル・リソース・リスト(601)と、前記第1の複数のコンピューティング・デバイス(101)および前記第2の複数のコンピューティング・デバイス(101)それぞれのトポロジーのリスト(602)とにのみ基づいてコンポーネント配置要求を処理するように適合されている、請求項8乃至11のいずれか1項に記載の分散型ネットワーク(100)。 - 請求項1乃至7のいずれか1項に記載のコンピューティング・デバイス(101)の分散型ネットワークにおいてアプリケーション(700)のコンポーネント(703)を配置するための方法であって、
− 第1のトポロジーのエリア(102)内の第1のコンピューティング・デバイス(101)においてコンポーネント配置要求を受信するステップと、
− 前記第1のコンピューティング・デバイス(101)のトポロジーのリストに基づいて、前記コンポーネント(703)が前記第1のトポロジーのエリア(102)に配置されるべきか、または前記第1のトポロジーのエリア以外の複数のトポロジーのエリアのうちの1つに配置されるべきかを判定するステップと、
− 前記コンポーネント(703)が前記第1のトポロジーのエリア(102)以外の前記複数のトポロジーのエリア(102)のうちの1つに配置されるべきであると判定される場合、前記第1のトポロジーのエリア以外の前記複数のトポロジーのエリアのそれぞれのトポロジーのエリアの基準コンピューティング・デバイス(101)に前記コンポーネント配置要求を渡すステップと、
− 前記コンポーネント(703)が前記第1のトポロジーのエリア(102)に配置されるべきであると判定される場合、前記第1のコンピューティング・デバイス(101)のローカル・リソース・リスト(601)から、前記アプリケーションの前記コンポーネントを実行するためのコンピューティング・リソースを有する選択されたコンピューティング・デバイスを特定するステップと、
− 前記選択されたコンピューティング・デバイスが前記第1のコンピューティング・デバイス(101)である場合、前記第1のコンピューティング・デバイス(101)で前記アプリケーション(700)の前記コンポーネント(703)を実行し、そうでない場合、前記選択されたコンピューティング・デバイスに前記アプリケーション(700)の前記コンポーネント(703)に関する前記コンポーネント配置要求を渡すステップとを含む、方法。 - 初期化段階の間に、
− 例えばVivaldiアルゴリズムを使用して、前記分散型ネットワーク(100)の前記コンピューティング・デバイス(101)の相対的な位置を決定するステップと、
− 例えばMeridianアルゴリズムを使用して、前記コンピューティング・デバイス(101)を、前記第1のトポロジーのエリア(102)、および前記第1のトポロジーのエリア(102)以外の前記複数のトポロジーのエリア(102)にクラスタ化するステップと、をさらに含む請求項13に記載の方法。 - − 前記コンポーネント配置要求は、前記コンポーネントによって処理されるデータのシンク(702)またはソース(701)の場所に関する情報を含み、
− 前記コンポーネントを配置するための前記トポロジーのエリア(102)は、前記シンク(702)または前記ソース(701)の前記場所に基づいて決定される、請求項13乃至15のいずれか1項に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11290521.1 | 2011-11-11 | ||
EP11290521.1A EP2592550B1 (en) | 2011-11-11 | 2011-11-11 | Distributed mapping function for large scale media clouds |
PCT/EP2012/070101 WO2013068194A1 (en) | 2011-11-11 | 2012-10-11 | Distributed mapping function for large scale media clouds |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015503146A true JP2015503146A (ja) | 2015-01-29 |
Family
ID=47008606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014540374A Pending JP2015503146A (ja) | 2011-11-11 | 2012-10-11 | 大規模メディア・クラウドのための分散型マッピング機能 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20140317167A1 (ja) |
EP (1) | EP2592550B1 (ja) |
JP (1) | JP2015503146A (ja) |
KR (1) | KR20140075784A (ja) |
CN (1) | CN103917958A (ja) |
IN (1) | IN2014DN03412A (ja) |
WO (1) | WO2013068194A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016207989A1 (ja) * | 2015-06-24 | 2016-12-29 | 株式会社日立製作所 | 分散システム |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2819013B1 (en) * | 2013-06-24 | 2019-11-27 | Alcatel Lucent | Automated adaption of a Codec |
WO2015094039A1 (en) * | 2013-12-18 | 2015-06-25 | Telefonaktiebolaget L M Ericsson (Publ) | Method and network node for selecting a media processing unit |
WO2015105443A1 (en) * | 2014-01-13 | 2015-07-16 | Telefonaktiebolaget L M Ericsson (Publ) | Method and nodes for configuring a communication path for a media service |
US11093279B2 (en) | 2014-06-09 | 2021-08-17 | International Business Machines Corporation | Resources provisioning based on a set of discrete configurations |
WO2016004981A1 (en) * | 2014-07-08 | 2016-01-14 | Telefonaktiebolaget L M Ericsson (Publ) | Network topology estimation based on event correlation |
US9906413B1 (en) * | 2014-12-18 | 2018-02-27 | Jpmorgan Chase Bank, N.A. | System and method for implementing a dynamic hierarchy for devices |
US9886707B1 (en) * | 2014-12-18 | 2018-02-06 | Jpmorgan Chase Bank, N.A. | System and method for building dynamic hierarchy for products |
US10178045B2 (en) * | 2016-09-07 | 2019-01-08 | Sap Se | Dynamic discovery and management of microservices for multi-cluster computing platforms |
US10708138B2 (en) * | 2017-06-09 | 2020-07-07 | Datera, Inc. | System and method for an improved placement of storage resources on nodes in network |
CN108287737B (zh) * | 2017-07-13 | 2021-08-17 | 阿里巴巴(中国)有限公司 | Service Worker启动方法、装置及电子设备 |
US10530851B1 (en) | 2018-01-31 | 2020-01-07 | Vivint, Inc. | Distributed data center |
CN110415160B (zh) * | 2019-06-29 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种gpu拓扑分区方法与装置 |
US11695661B1 (en) | 2020-04-21 | 2023-07-04 | Aviatrix Systems, Inc. | Systems and methods for deploying a cloud management system configured for tagging constructs deployed in a multi-cloud environment |
US11283695B2 (en) * | 2020-04-21 | 2022-03-22 | Aviatrix Systems, Inc. | System and method for determination of network operation metrics and generation of network operation metrics visualizations |
US11765039B2 (en) * | 2020-08-13 | 2023-09-19 | Grass Valley Canada | System and method for optimizing deployment of a processing function in a media production workflow |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6754699B2 (en) * | 2000-07-19 | 2004-06-22 | Speedera Networks, Inc. | Content delivery and global traffic management network system |
US6928481B1 (en) * | 2000-05-05 | 2005-08-09 | International Business Machines Corporation | Method, apparatus and program to optimize the network distribution of digital information based on hierarchical grouping of server topology and code distribution |
US7512702B1 (en) * | 2002-03-19 | 2009-03-31 | Cisco Technology, Inc. | Method and apparatus providing highly scalable server load balancing |
CA2510626A1 (en) * | 2005-06-23 | 2006-12-23 | Cognos Incorporated | Request routing system for and method of request routing |
US7603669B2 (en) * | 2005-09-27 | 2009-10-13 | Microsoft Corporation | Upgrade and downgrade of data resource components |
US7987146B2 (en) * | 2006-02-24 | 2011-07-26 | International Business Machines Corporation | System and method for matching multi-node software system provisioning requirements and capabilities using rough set theory |
US8028090B2 (en) * | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US20090150565A1 (en) * | 2007-12-05 | 2009-06-11 | Alcatel Lucent | SOA infrastructure for application sensitive routing of web services |
EP2071474A1 (en) * | 2007-12-10 | 2009-06-17 | Alcatel Lucent | Method and devices to seamlessly inject services in content flows |
US9106668B2 (en) * | 2008-06-24 | 2015-08-11 | Azureus Software, Inc. | Distributed peer location in peer-to-peer file transfers |
US20100228819A1 (en) * | 2009-03-05 | 2010-09-09 | Yottaa Inc | System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications |
US8296434B1 (en) * | 2009-05-28 | 2012-10-23 | Amazon Technologies, Inc. | Providing dynamically scaling computing load balancing |
US8627391B2 (en) * | 2010-10-28 | 2014-01-07 | Intellectual Ventures Fund 83 Llc | Method of locating nearby picture hotspots |
US9154589B1 (en) * | 2012-06-28 | 2015-10-06 | Amazon Technologies, Inc. | Bandwidth-optimized cloud resource placement service |
-
2011
- 2011-11-11 EP EP11290521.1A patent/EP2592550B1/en not_active Not-in-force
-
2012
- 2012-10-11 WO PCT/EP2012/070101 patent/WO2013068194A1/en active Application Filing
- 2012-10-11 IN IN3412DEN2014 patent/IN2014DN03412A/en unknown
- 2012-10-11 CN CN201280055227.5A patent/CN103917958A/zh active Pending
- 2012-10-11 US US14/357,397 patent/US20140317167A1/en not_active Abandoned
- 2012-10-11 JP JP2014540374A patent/JP2015503146A/ja active Pending
- 2012-10-11 KR KR1020147012497A patent/KR20140075784A/ko not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016207989A1 (ja) * | 2015-06-24 | 2016-12-29 | 株式会社日立製作所 | 分散システム |
CN107615247A (zh) * | 2015-06-24 | 2018-01-19 | 株式会社日立制作所 | 分布式系统 |
JPWO2016207989A1 (ja) * | 2015-06-24 | 2018-02-22 | 株式会社日立製作所 | 分散システム |
Also Published As
Publication number | Publication date |
---|---|
US20140317167A1 (en) | 2014-10-23 |
IN2014DN03412A (ja) | 2015-06-26 |
EP2592550B1 (en) | 2015-04-15 |
WO2013068194A1 (en) | 2013-05-16 |
KR20140075784A (ko) | 2014-06-19 |
EP2592550A1 (en) | 2013-05-15 |
CN103917958A (zh) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5921724B2 (ja) | コンピューティング・デバイスおよび方法 | |
JP2015503146A (ja) | 大規模メディア・クラウドのための分散型マッピング機能 | |
Chen et al. | Joint resource allocation for software-defined networking, caching, and computing | |
JP5390413B2 (ja) | 階層的にクラスタ化されたp2pストリーミング・システム | |
Renart et al. | Data-driven stream processing at the edge | |
US9319311B2 (en) | System and method for a context layer switch | |
US9635107B2 (en) | System and method for managing data delivery in a peer-to-peer network | |
Wahab et al. | MAPLE: A machine learning approach for efficient placement and adjustment of virtual network functions | |
CN111165019A (zh) | 接入网中的控制器通信 | |
Ibn-Khedher et al. | OPAC: An optimal placement algorithm for virtual CDN | |
Jahromi et al. | Online VNF placement and chaining for value-added services in content delivery networks | |
Simoens et al. | Challenges for orchestration and instance selection of composite services in distributed edge clouds | |
Zhang et al. | A survey of VNF forwarding graph embedding in B5G/6G networks | |
Xu et al. | Near-optimal and collaborative service caching in mobile edge clouds | |
Al-Oqily et al. | A decentralized self-organizing service composition for autonomic entities | |
EP2651101B1 (en) | Method for mapping media components based on link and/or processing cost | |
Rayani et al. | Ensuring profit and QoS when dynamically embedding delay-constrained ICN and IP slices for content delivery | |
Sina et al. | CaR-PLive: Cloud-assisted reinforcement learning based P2P live video streaming: a hybrid approach | |
Fekih et al. | SDN-based replication management framework for CCN networks | |
Chen et al. | IEEE P1935 Edge/Fog Manageability and Orchestration: Standard and Usage Example | |
Jayakumar et al. | Technical analysis of content placement algorithms for content delivery network in cloud | |
Victoria Priscilla et al. | A Review on Video Sharing over Content Centric Networks | |
WO2023078234A1 (zh) | 基于分布式云网络的控制代码执行的方法、设备及系统 | |
Apolónia et al. | Socially aware microcloud service overlay optimization in community networks | |
Kryftis et al. | A resource prediction engine for efficient multimedia services provision |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150715 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150804 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160322 |