(57)【特許請求の範囲】
【請求項１】
スケーラブルな計算プラットホームを作動する方法を実行するための計算機システムであって、
前記スケーラブルな計算プラットホームがネットワークを介して相互に接続された計算装置上に具現化されており、
（ａ）サービスに対するリクエストと、前記サービスを展開するために必要とされる１つ以上のリソースの記述を含むサービス記述とを受信する受信コンポーネントと、
（ｂ）前記サービスを展開するために必要とされる前記１つ以上のリソースを決定するリソース決定コンポーネントと、
（ｃ）前記サービス記述及び前記１つ以上のリソースに基づいて、複数のエレメント及び１つ以上のチャネルを含むインスタンス記述を生成するインスタンス記述生成コンポーネントと、
（ｄ）前記サービスを展開するために必要な前記１つ以上のリソースを、前記スケーラブルな計算プラットホーム上で利用可能なリソースへマッピングするリソースマッピングコンポーネントと、
（ｅ）前記サービスを展開するために必要な前記１つ以上のマッピングされたリソースに関連した前記サービスを、前記インスタンス記述に基づいて、前記スケーラブルな計算プラットホーム上に展開するための展開コンポーネントと、
を含む計算機システム。
【請求項２】
前記複数のエレメントそれぞれが、少なくとも１つのロール及びグループであることを特徴とする請求項１記載の計算機システム。
【請求項３】
前記１つ以上のチャネルそれぞれが、前記複数のエレメントのうち２つの間の接続を確立することを特徴とする請求項１記載の計算機システム。
【請求項４】
前記１つ以上のチャネルそれぞれが、負荷分散装置チャネル、ステートフルスイッチチャネル、及びステートレススイッチチャネルのうちの１つであることを特徴とする請求項３記載の計算機システム。
【請求項５】
前記１つ以上のチャネルのうち少なくとも１つが、負荷分散装置チャネルであって、前記システムが更に、前記複数のエレメントの２つうち１つ以上の端点を決定するために前記負荷分散装置チャネルによって利用される負荷分散コンポーネントを含むことを特徴とする請求項４記載の計算機システム。
【請求項６】
前記１つ以上のチャネルのうち少なくとも１つが、ステートフルスイッチチャネルであって、前記システムが更に、前記複数のエレメントのうち２つを接続する前記ステートフルスイッチチャネルによって利用されるステートフルスイッチコンポーネントを含むことを特徴とする請求項４記載の計算機システム。
【請求項７】
前記１つ以上のチャネルのうち少なくとも１つが、ステートレススイッチチャネルであって、前記システムが更に、前記複数のエレメントのうち２つを接続する前記ステートレススイッチチャネルによって利用されるステートレススイッチコンポーネントを含むことを特徴とする請求項４記載の計算機システム。
【請求項８】
スケーラブルな計算プラットホームを作動するための方法を実行する計算機実行可能命令をその上に具体化させる１つ以上の計算機記憶媒体において、前記方法が、
少なくとも１つのチャネル及び複数のエレメントを含む１つ以上のサービスに対する第１のリクエストと、前記１つ以上のサービスに対するサービス記述とを受信するステップと、
前記１つ以上のサービスを展開するために必要なリソースを決定するステップと、
前記スケーラブルな計算プラットホームの少なくとも１つの利用可能なリソースを決定するステップと、
少なくとも、前記サービス記述、前記必要なリソース、及び前記少なくとも１つの利用可能なリソースに基づいて、第１のインスタンス記述を生成するステップと、
前記１つ以上のサービスを展開するために必要とされる少なくとも１つのリソースを、前記スケーラブルな計算プラットホームの前記少なくとも１つの利用可能なリソースにマッピングするステップと、
前記１つ以上のサービスを、前記第1のインスタンス記述に基づいて、前記スケーラブルな計算プラットホーム上に展開し、結果を生成するステップと、
前記結果を送信するステップと、を含むことを特徴とする計算機記憶媒体。
【請求項９】
前記第１のリクエストが、前記サービス記述を含むことを特徴とする請求項８記載の１つ以上の計算機記憶媒体。
【請求項１０】
前記少なくとも１つのチャネルが、負荷分散装置チャネル、ステートフルスイッチチャネル、及びステートレススイッチチャネルのうちの１つであることを特徴とする請求項８記載の１つ以上の計算機記憶媒体。
【請求項１１】
前記少なくとも１つのチャネルが、負荷分散装置チャネルであって、前記方法が更に、前記複数のエレメントの１つ以上の端点を決定するステップを含むことを特徴とする請求項１０記載の１つ以上の計算機記憶媒体。
【請求項１２】
前記少なくとも１つのチャネルが、ステートフルスイッチチャネル及びステートレススイッチチャネルのうちの１つであって、前記方法が更に、前記複数のエレメントを接続するステップを含むことを特徴とする請求項１０記載の１つ以上の計算機記憶媒体。
【請求項１３】
前記１つ以上のエレメントそれぞれが、ロール及びグループのうち少なくとも１つであることを特徴とする請求項８記載の１つ以上の計算機記憶媒体。
【請求項１４】
前記方法が更に、
前記１つ以上のサービスに対する追加リクエストを受信するステップと、
前記１つ以上のサービスに対する追加インスタンス記述を生成するステップと、を含むことを特徴とする請求項８記載の１つ以上の計算機記憶媒体。
【請求項１５】
前記第１のインスタンス記述が、アプリケーション構成設定、システム構成設定、及びリソース参照のうち少なくとも１つを含むことを特徴とする請求項８記載の１つ以上の計算機記憶媒体。
【請求項１６】
スケーラブルな計算プラットホームを作動するための方法を実行する計算機実行可能命令をその上に具体化させる１つ以上の計算機記憶媒体において、前記方法が、
それぞれがエレメント及びチャネルを含む１つ以上のサービスに対するリクエストを受信するステップと、
前記１つ以上のサービスに対するサービス記述を受信するステップであって、前記サービス記述が、アプリケーション構成設定、システム構成設定、及びリソース参照のうちの少なくとも１つを含むものと、
前記１つ以上のサービスに対する前記サービス記述に関連した前記１つ以上のサービスを展開するために必要である前記リソースを決定するステップと、
前記スケーラブルな計算プラットホームの少なくとも１つの利用可能なリソースを決定するステップと、
少なくとも、前記サービス記述、前記必要なリソース、及び前記少なくとも１つの利用可能なリソースに基づいて、第１のインスタンス記述を生成するステップと、
前記１つ以上のサービスを展開するために必要とされる少なくとも１つのリソースを、前記スケーラブルな計算プラットホームの前記少なくとも１つの利用可能なリソースにマッピングするステップと、
前記１つ以上のサービスを、前記第1のインスタンス記述に基づいて、前記スケーラブルな計算プラットホーム上に展開し、結果を生成するステップと、
前記結果を送信するステップと、を含むことを特徴とする計算機記憶媒体。
【請求項１７】
前記方法が更に、
前記１つ以上のサービスに対する追加リクエストを受信するステップと、
前記１つ以上のサービスに対する追加インスタンス記述を生成するステップと、
前記１つ以上のサービスに対する前記追加インスタンス記述に関連した前記１つ以上のサービスを展開するために必要な少なくとも１つのリソースを決定するステップと、
前記スケーラブルな計算プラットホームの少なくとも１つの利用可能なリソースを決定するステップと、
前記１つ以上のサービスを展開するために必要とされる前記少なくとも１つのリソースを前記スケーラブルな計算プラットホームの前記少なくとも１つの利用可能なリソースにマッピングするステップと、
前記１つ以上のサービスを展開し、結果を生成するステップと、
前記結果を送信するステップと、を含むことを特徴とする請求項１６記載の１つ以上の計算機記憶媒体。
【請求項１８】
前記１つ以上のサービスを展開するために必要である前記リソースの前記利用可能なスケーラブルなコンピューティングプラットホームの前記少なくとも１つのリソースへの前記マッピングを反映するために、前記第１のインスタンス記述及び前記追加インスタンス記述が変更されることを特徴とする請求項１７記載の１つ以上の計算機記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算プラットホームに関し、具体的には、スケーラブルな計算プラットホームを作動するためのアーキテクチャに関する。
【背景技術】
【０００２】
[0001]特定の計算プラットホーム上で作動する計算機アプリケーションが開発されている。従来、計算プラットホームは、単一の計算機を制御するように設計されていて、したがって計算プラットホーム用に設計されたアプリケーションも単一の計算機上で作動するように設計されている。インターネットは、計算機プログラムが計算機に展開される新しい方法を導入している。展開方法が変更されたのに、エンドユーザーは、それらがインターネット上に展開されているか又はエンドユーザーの計算機に常駐しているかにかかわらず、それでも同一に作動する計算機アプリケーションを期待している。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、リクエストされたときに必要かつ利用可能なリソースが展開され得るスケーラブルな計算プラットホームを提供することである。
【課題を解決するための手段】
【０００４】
[0002]本発明の実施形態は、スケーラブルな計算プラットホームを作動するためのシステム、方法、及び計算機記憶媒体に関する。リクエストされたサービスを記述しているサービス記述が受信される。サービス記述を受信したとき、必要なリソースと利用可能なリソースの決定が実行される。サービス展開を持続するために必要とされるリソースが、計算プラットホームの利用可能なリソースへマッピングされ、サービスが展開される。インスタンス記述が、サービス展開それぞれを用いて修正され、持続したサービス展開を可能にする。
【０００５】
[0003]この「課題を解決するための手段」は、以下「発明を実施するための形態」において更に記載したいくつかの概念を簡易化した形式で紹介するために提供される。この「課題を解決するための手段」は、請求対象項目の重要な機能又は本質的な特徴を特定するように意図されておらず、請求対象項目の範囲を限定するように使用されることも意図されていない。
【０００６】
[0004]本発明を添付した図面に関し以下詳細に説明する。
【図面の簡単な説明】
【０００７】
【図１】[0005]本発明の実施形態を実装する際に使用するための適切な例示的計算環境のブロック図である。
【図２】[0006]本発明の実施形態に従ったスケーラブルな計算プラットホームを作動するための例示的システムのブロック図である。
【図３】[0007]本発明の実施形態に従ったスケーラブルな計算プラットホームを作動するための例示的方法の流れ図である。
【図４】[0008]本発明の実施形態に従った様々なアセンブリを介したサービス記述のライフサイクルを表す図である。
【図５】[0009]本発明の実施形態に従った例示的トポロジーのグラフ表示である。
【図６】[0010]本発明の実施形態に従った負荷分散チャネルを表すブロック図である。
【図７】[0011]本発明の実施形態に従ったステートフルスイッチチャネルを表すブロック図である。
【図８】[0012]本発明の実施形態に従ったステートレススイッチチャネルを表すブロック図である。
【図９】[0013]本発明の実施形態に従ったサービス展開の漸進的変化の流れ図である。
【発明を実施するための形態】
【０００８】
[0014]本発明の実施形態の対象事項が、法的要件を満たす特異性とともに本明細書に説明されている。しかしながら、本説明自体は、この特許範囲を限定するように意図されていない。もっと具体的に言えば、発明者は、請求対象項目が別の現在の技術又は将来の技術に関連し、本書に記載したものと異なるステップか又は同様のステップの組み合わせを含んでいる別の方法で具体化され得ることも想定している。更に、用語「ステップ」及び／又は「ブロック」は、本明細書において採用される異なる方法要素を内包するように使用され得るが、個々のステップの順番が明らかに説明されていない場合、個々のステップの順番が明らかに説明されている時を除いて、その用語を本明細書に開示した様々なステップ中又はステップ間のどのような特定の順番も含んでいるように解釈しないことである。
【０００９】
[0015]本発明の実施形態は、スケーラブルな計算プラットホームを作動するためのシステム、方法、及び計算機記憶媒体に関する。リクエストされたサービスを記述しているサービス記述が受信される。サービス記述を受信したとき、必要なリソースかつ利用可能なリソースの決定が実行される。サービス展開を持続するために必要とされるリソースが、計算プラットホームの利用可能なリソースにマッピングされ、サービスが展開される。インスタンス記述が、サービス展開それぞれを用いて修正され、持続したサービス展開を可能にする。
【００１０】
[0016]別の態様において、本発明はスケーラブルな計算プラットホームを作動するための方法を提供する。本方法は、サービス契約がサービス（単数又は複数）に対するリクエストと関連した１つ以上のサービスに対するリクエストを受信するステップを含む。サービス（単数又は複数）のうちサービスそれぞれは、エレメント及びチャネルを含んでいて、チャネルは、負荷分散装置チャネル、ステートフルスイッチチャネル、及びステートレススイッチチャネルのうち少なくとも１つである。本方法は、１つ以上のサービスに対するサービス記述を受信するステップも含んでいて、サービス記述は、アプリケーション構成設定、システム構成設定、及びリソース参照のうち少なくとも１つを含む。本方法は、スケーラブルな計算プラットホームの１つ以上のサービスを展開するために必要であるリソース決定及び少なくとも１つの利用可能なリソース決定に続き、その後、第１のインスタンス記述が生成される。一旦、必要かつ利用可能なリソースが決定すると、本方法は、それらのリソースをマッピングするステップ及び１つ以上のサービスを展開し、結果を生成するステップを含む。本方法は、その後、展開したサービスの結果の送信を続ける。
【００１１】
[0017]別の態様において、本発明は、スケーラブルな計算プラットホームを作動するための方法を提供する。本方法は、１つ以上のサービスに対する追加リクエストを受信するステップと、サービスを展開するために必要であるリソースを決定するステップと、スケーラブルな計算システムの少なくとも１つの利用可能なリソースを決定し、第２のインスタンス記述を生成するステップと、スケーラブルな計算プラットホームの利用可能なリソースにサービスを展開するために必要とされるリソースをマッピングするステップと、サービスを展開し、結果を生成するステップと、結果を送信するステップと、を含む。本方法は、サービス（単数又は複数）を展開するために必要であるリソースのスケーラブルな計算プラットホームの少なくとも１つの利用可能なリソースへのマッピングを反映するための第１のインスタンス記述及び第２のインスタンス記述の修正も提供する。
【００１２】
[0018]更に、本発明の別の態様は、スケーラブルな計算プラットホームを作動するための方法を実行する計算機実行可能命令を具体化させる１つ以上の計算機記憶媒体上に具体化される計算機システムを提供する。本方法は、サービスに対するリクエストを受信する受信コンポーネントを含んでいて、それに関連したサービスを展開するために必要とされるリソース（単数又は複数）記述を有するサービス記述と、サービスを展開するために必要であるリソース（単数又は複数）を決定するリソース決定コンポーネントと、サービスを展開するために必要であるリソース（単数又は複数）をマッピングするリソースマッピングコンポーネントと、サービスを展開するために必要であるマッピングされたリソース（単数又は複数）と関連しサービスを展開する展開コンポーネントと、を含んでいる。
【００１３】
[0019]本発明の実施形態の概要を簡潔に説明したので、以下、この実施形態を実装するための適切な例示的動作環境を説明する。
【００１４】
[0020]図面を通常、参照すると、まず図１に本発明の実施形態を実装するための適切な例示的動作環境が具体的に示されていて、一般に計算装置（１００）として指定される。計算装置（１００）は、適切な計算環境の一例に過ぎず、本発明の使用範囲又は機能性に関しどのような制限も示すように意図されていない。計算環境（１００）は、例示したモジュール／コンポーネントのどれか１つ又は組み合わせに関連しどのような依存性も要件も有していないように解釈されたい。
【００１５】
[0021]実施形態は、計算機又は個人情報端末若しくはその他の携帯用装置のようなその他の計算機によって実行されるプログラムモジュールなど計算機実行可能命令を含む計算機コード又は計算機利用可能な命令に関する通常の文脈で記載され得る。一般に、ルーチン、プログラム、オブジェクト、モジュール、データ構造その他を含んでいるプログラムモジュールは、特定のタスクを実行するか又は特定の抽象データ型を実装しているコードを参照している。実施形態は、携帯用装置、家電、汎用計算機、専用計算装置など含んでいる様々なシステム構成で実施され得る。実施形態は、通信ネットワークを介し接続されているリモート制御演算装置によってタスクが実行され得る分散計算環境においても実施される。
【００１６】
[0022]続けて図１を参照すると、計算装置（１００）は、以下、メモリー（１１２）、１つ以上のプロセッサー（１１４）、１つ以上の表示モジュール（１１６）、入力／出力（Ｉ／Ｏ）ポート（１１８）、Ｉ／Ｏモジュール（１２０）、及び例示的電源（１２２）装置を直接的又は間接的に接続するバス（１１０）を含む。バス（１１０）は、（アドレスバス、データバス、又はその組み合わせのような）１つ以上のバスであり得ることを示している。図１の様々なブロックは、明確にするために線で示されているが、実際には図で表わす様々なコンポーネントは、それほど明確でなく、線は、より正確には例えて言うと灰色であって曖昧である。例えば、表示装置などの表示モジュールをＩ／Ｏモジュールであるように考え得る。プロセッサーもメモリーを有する。これに関し発明者は、そのようなことが当分野の実物であることを認識していて、図１の図面が、単に１つ以上の実施形態に関連し使用され得る例示的な計算装置を示していることを繰り返し述べている。すべてが、図１の範囲内にある「計算機」又は「計算装置」への参照であると想定されているので「ワークステーション」、「サーバー」、「ラップトップ」、「携帯用装置」その他のようなカテゴリー間の区別はない。
【００１７】
[0023]計算装置（１００）は通常、様々な計算機可読媒体を含む。非限定の例として、計算機可読媒体は、所望した情報を符号化するために使用され得、計算装置（１００）によってアクセスされ得るランダムアクセスメモリー（ＲＡＭ）、読み出し専用メモリー（ＲＯＭ）、電気的消却プログラム可能読み出し専用メモリー（ＥＥＰＲＯＭ）、フラッシュメモリー、又はその他のメモリー技術、ＣＤＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、又はその他の光若しくはホログラフィック媒体、磁気カセット、磁気テープ、磁気ディスク記憶装置、又はその他の磁気記憶装置、搬送波、又は別の任意媒体を含む。
【００１８】
[0024]メモリー（１１２）は、揮発性及び／又は不揮発性メモリー形式の計算機記憶媒体を含む。メモリーは、取り外し可能、取り外し不可能、又はその組み合わせであり得る。例示的ハードウェア装置は、ソリッドステートメモリー、ハードドライブ、光ディスクドライブなどを含む。計算装置（１００）は、メモリー（１１２）又はＩ／Ｏモジュール（１２０）のような様々なエンティティからデータを読み出す１つ以上のプロセッサーを含む。表示モジュール（単数又は複数）（１１６）は、データ表示をユーザー又は別の装置に表示する。例示的表示モジュールは、表示装置、スピーカー、印刷モジュール、振動モジュールなどを含む。Ｉ／Ｏポート（１１８）は、計算装置（１００）をＩ／Ｏモジュール（１２０）を含む別の装置との論理的な接続を可能にし、そのいくつかは内蔵され得る。例示的なモジュールは、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナー、プリンター、無線機器その他を含む。
【００１９】
[0025]図２を参照すると、本発明の実施形態に従ったスケーラブルな計算プラットホームの例示的システム（２００）を示すブロック図が表示されている。計算プラットホーム（２００）は、適切な計算プラットホームの一例に過ぎず、本発明の使用範囲又は機能性に関し、どのような制限も提示するように意図されていない。計算環境（２００）は、例示したモジュール／コンポーネントのどれか１つ又は組み合わせに関連したどのような依存性も要件も有していないように解釈されたい。
【００２０】
[0026]続けて図２を参照すると、計算プラットホーム（２００）は、受信コンポーネント（２１２）と、サービス記述生成コンポーネント（２１４）と、リソース決定コンポーネント（２１６）と、リソースマッピングコンポーネント（２１８）と、展開コンポーネント（２２０）と、ネットワーク（２１０）を介し相互に通信するすべてを含む。ネットワーク（２１０）は、非限定の１つ以上のローカルエリアネットワーク（ＬＡＮ）及び／又は広域ネットワーク（ＷＡＮ）を含む。そのようなネットワーク環境は、オフィス、企業規模計算ネットワーク、イントラネット、及びインターネットにおいて普通である。したがってネットワーク（２１０）を本明細書に更に記載しない。
【００２１】
[0027]計算プラットホーム（２００）の例示的実施形態は、インスタンス生成部（２４０）及び展開部（２５０）の中に様々なコンポーネントを組み立てる。リソース決定コンポーネント（２１６）が、インスタンス生成部（２４０）の中に組み立てられる。リソースマッピングコンポーネント（２１８）及び展開コンポーネント（２２０）が、展開部（２５０）の中に組み立てられる。計算プラットホーム（２００）の例示的実施形態は、識別された特定の組立部品の中に本発明のコンポーネントを組み立てるが、組立部品が、インスタンス生成部（２４０）及び展開部（２５０）に限定されないことが当業者は理解され十分評価されよう。コンポーネントが識別された特定の組立部品に限定されず、必ずしも組み立てられたコンポーネントでもないことを当業者は理解され十分評価されよう。
【００２２】
[0028]受信コンポーネント（２１２）が、サービスに対するリクエストを受信する。サービスは構造化されたエンティティであって、構造は、コンポーネント（２１２）によって受信されるサービス記述によって決定される。受信されるサービス記述は、リクエストされるサービスに関連付けられたサービス契約に適合している。サービス記述は、構成設定のセット、一連の入力インターフェース、及びその他のサービスのインターフェースに対する一連の依存性を提示する。サービスが構造化エンティティであるために、それは構造化されたロール、グループ、及びチャネルセットを含む。ロールは、計算機プログラムのテンプレート記述を提供する。ロールは、ロールを実装している計算機コード、ロールによって必要とされるホスティング環境、構成設定、ロール端点のセット、及びそれらの性能モデルを示すことによって、記述されている。ロール構成の設定は、ロールインスタンスすべてによって共有される共同設定、又はロールインスタンスそれぞれに特定の個別設定を含む。追加としてロール記述に含まれている端点セットが更に、入力端点及び出力端点どちらか一方として分類される。ロールの出力端点は、ソースエレメントからターゲットエレメントの入力端点への接続点を提供する。ロールインスタンスは、その端点を介し通信する。ロールインスタンスは、その記述に含まれているリソースによっても定義される。ロールは、ロールセットとしても分類され、グループ形成され得る。最小のグループサイズは、単一のロールから成る。したがって、グループ及びロールは、２つが差別化される必要がないとき、エレメントとして記述され得る。サービスはチャネルも含む。チャネルは、エレメントの終端を介し様々なエレメント間の関係を確立する。
【００２３】
[0029]受信コンポーネント（２１２）は、サービスに対するリクエスト及びサービス記述を受信する。サービス記述は、サービスが構成され展開され得る方法を制約している情報及びサービスの性能を解析するために使用され得る情報を含む。更に、サービス記述は、本発明がサービス展開を持続するために必要とされるリソースを割り当て、協調し得る十分な情報を提供する。
【００２４】
[0030] システム記述及びインスタンス記述は、サービス概要を記述するエレメント及びチャネルを含む。インスタンス記述は、サービスの要点を記述するエレメント及びチャネルを受信したサービス記述に含まれるように組み込むためのコンポーネント（２１６）を決定するリソース、及び展開される特定のサービスインスタンスに必要であることが決定されたリソース、によって生成される。様々なエレメントと様々なチャネルとの間の関係記述は、サービストポロジーを示している。トポロジーは、チャネル端点が様々なエレメントと接続することを記述している。チャネル又はエレメントが、変更された場合、サービスに関するトポロジーも変更される。サービストポロジーは、サービスに対し適切に機能するためのエレメント接続性と、エレメントの入力端点とサービスの入力インターフェースとの間のルーティングと、エレメントの出力端点とサービスの依存性との間のルーティングと、必要とされるエレメントそれぞれの複製の最小数と、サービス中断を回避するために生じる必要がある維持保守に関するガイドラインと、サービス性能を評価するために利用され得る性能パラメーター記述と、適切なマッピングを展開部（２５０）に知らせるロール内の類似性表示と、エレメント間の構成設定の伝播表示と、に関連する情報を含む。
【００２５】
[0031]トポロジー定義を支援するシステム記述に含まれるチャネルは、様々な形式を取り得る。チャネルは、負荷分散装置チャネル、ステートフルスイッチチャネル、及びステートレススイッチチャネルのいずれかであり得る。負荷分散装置チャネルは、ソースエレメントからの１つの出力端点をターゲットエレメントの入力端点に接続する。ソースエレメントからのトラフィックは、チャネルに関連付けられたいくつかのポリシーに従ってターゲットエレメントの１つに再分配される。トラフィックの分配を決定し得るポリシーの例は、一様分布、最小コストルーティング、最小時間ルーティング、類似性−相関ルーティング、又は２つのエレメント間の接続を容易にする別の任意の分散スキームを含んでいるがこれらに限定しない。負荷分散装置チャネルは、どのような入力端点及び出力端点も処理する能力がある。ソースエレメントは、負荷分散チャネルの負荷分散装置に関連付けられた仮想アドレス情報を含む必要があるだけである。負荷分散装置はその後、ターゲットエレメント数にかかわらず、複数のターゲットエレメントとの接続を再分配する。
【００２６】
[0032]本発明の実施形態に従った例示的負荷分散チャネルが、図６のブロック図に示されていて、参照数字（６１０）として通常、表される。複数のソースエレメント（６２０）、（６２２）、及び（６２４）は、複数のターゲットエレメント（６３０）及び（６３２）との負荷分散装置のチャンネル接続を確立するように期待されている。しかしながら、複数のソースエレメント（６２０）、（６２２）、及び（６２４）は、ターゲットエレメント（６３０）及び（６３２）との直接的な接続を確立するために必要な情報を有していない。代わりにソースエレメント（６２０）、（６２２）、及び（６２４）は、負荷分散装置（６１０）に向けられる仮想アドレスを有する。ソースエレメント（６２０）、（６２２）、及び（６２４）は、故に負荷分散装置（６１０）と接続する。負荷分散装置（６１０）はその後、特定の負荷分散装置のそのチャネルに割り当てられるポリシーに基づいて、ターゲットエレメント（６３０）及び（６３２）に接続を再分配する。
【００２７】
[0033]第２のタイプのチャネルは、ステートフルスイッチチャネルである。ステートフルスイッチチャネルは、異なる「ｍ」個のアドレスに関連付けられていて、ここで「ｍ」は、ターゲットエレメントのインスタンス数である。ステートフルスイッチチャネルが利用されるとき、ソースエレメントは、「ｍ」個のターゲットエレメント数を知っている。ソースエレメントはその後、接続する「ｍ」個のターゲットエレメントのインスタンスのうち１つを選択する。したがってソースエレメントは、接続する「ｍ」個のインスタンスの指示を含む。チャネル内部のルーターはその後、適切なターゲットエレメントとの接続を指示する。非限定の例示的実施形態は、ソースエレメントのインスタンスそれぞれの設定に「ｍ」個のアドレスをストアしていて、選択した「ｍ」個のアドレスを含んでいるソースエレメントに対し、リクエストされたターゲットの接続を提供する。ステートフルスイッチ内部のルーターが、その後、適切なターゲットエレメントとの接続を指示する。
【００２８】
[0034]例示的なステートフルスイッチが、図７のブロック図に示されている。ステートフルスイッチチャネルは、ルーター（７１０）、複数のソースエレメント（７２０）、（７２２）、及び（７２４）、並びに複数のターゲットエレメント（７３０）及び（７３２）を含む。ソースエレメント（７２０）、（７２２）、及び（７２４）それぞれは、２つのターゲットエレメント（７３０）及び（７３２）を知っている。したがって、ソースエレメント（７２０）、（７２２）、及び（７２４）それぞれは、１つ以上の特定のターゲットエレメントとそれらの接続を指示する選択を実行する。接続は、適切なターゲットエレメント（７３０）及び／又は（７３２）との接続を分配するルーター（７１０）に向けられる。
【００２９】
[0035]第３のタイプのチャネル、ステートレススイッチチャネルは、ターゲットエレメントの間で選択するソースエレメントを必要とする。ステートフルスイッチチャネルと異なり、ステートレススイッチチャネルは、ソースエレメントからのターゲットエレメントアドレス設定を必要としない。したがってステートレススイッチチャネルは、ソースエレメントが必要であるターゲットエレメントとの接続決定を提供するが、選択されたターゲットエレメントは、接続の際に識別されない。ステートレススイッチチャネルに含まれているルーターは、通信プロトコル、別のエレメントによって提供される命令、又はその他の分配指示に基づいて、ソースエレメントをターゲットエレメントに接続する。
【００３０】
[0036]例示的なステートレススイッチチャネルが、図８のブロック図に示されている。ステートレススイッチチャネルは、ルーター（８１０）及びソースエレメント（８２０）、（８２２）、及び（８２４）並びにターゲットエレメント（８３０）及び（８３２）を含む。ソースエレメント（８２０）、（８２２）、及び（８２４）それぞれは、２つのターゲットエレメント（８３０）及び（８３２）を知っている。ソースエレメント（８２０）、（８２２）、（８２４）からの接続は、識別したターゲットエレメント（８３０）又は（８３２）との接続を分配するルーター（８１０）に対する分配指示を含まない。その代わり、この例示的実施形態において、ルーター（８１０）は、代替チャネルから受信される通信に基づいて、接続を分配する。その結果、ソースエレメント（８２０）、（８２２）、（８２４）の間の接続は、ルーター（８１０）によって受信された分配指示に基づいて、ターゲットエレメント（８３０）及び（８３２）に接続される。
【００３１】
[0037]図６、図７、及び図８に含まれている例示的実施形態は本質的に例示的であって、ソースエレメント、ターゲットエレメント、エレメントに接続するチャネル、又はチャネルそれぞれの内部に確立される接続数に対する限定を意図されていないことが当業者は理解され十分評価されよう。
【００３２】
[0038]サービストポロジーを含んでいることに加え、サービス記述は、構成設定及びリソース参照も含む。構成設定は、アプリケーション構成設定及びシステム構成設定を含む。アプリケーション構成設定は、エレメント定義の一部であって、したがってアプリケーション構成の宣言及び解釈結果は、エレメントの意味及び振る舞いとして本質的である。エレメントのアプリケーション構成設定は、インスタンスごとの設定又は共通設定のどちらか一方である。共通設定は、エレメントインスタンスすべてによって共有される。インスタンスごとの設定は、エレメントの固有のインスタンスそれぞれに関する異なる設定を有し得る。
【００３３】
[0039]第２のタイプの構成設定は、システム構成設定である。システム構成設定は、エレメントロールのグループ内の埋め込み又は組み込み特性である。エレメント定義に対し本質的であるアプリケーション構成設定とは異なり、代わりにシステム構成設定が、計算プラットホームによって解釈され利用される。システム構成設定の割り当ては、計算プラットホームの制御下にあって、そのシステム構成設定に割当てられたポリシー内で作動する。
【００３４】
[0040]リソース参照もサービス記述に含まれ得る。リソース参照は、計算プラットホームに提供されるリソースのいくつかにアクセスする必要性を示している。利用可能なリソースの種類は、計算プラットホームによって指示される。リソースの例は、ファイル、ディレクトリ、及びドライブに設定されるリソースのような特定のアプリケーションプログラムインターフェースに準拠しているローカルファイルシステムスペースを含む。更に、ログストリーム及びイベントカウンターは、計算プラットホームによって利用可能なリソースの例である。
【００３５】
[0041]図２を見ると、インスタンス生成部（２４０）は、リソースを決定するコンポーネント（２１６）を含む。インスタンス生成部（２４０）のロールは、サービス記述及びインスタンス記述に基づいて展開するためのサービスを生成することである。インスタンス生成部は、展開コンポーネント（２２０）及びリソースマッピングコンポーネント（２１８）を介し展開するための展開部（２５０）に対するサービスの展開インスタンスを提供する。インスタンス生成部（２４０）は、展開されるサービスのインスタンスに対し決定されているリソース、及びインスタンス記述を生成するためのサービス記述、を利用するサービスの初期展開又は進歩的なサービス展開どちらか一方を可能にする。それが初期展開か又は進歩的展開にかかわらず、インスタンス生成部（２４０）は、サービスの有用性を決定する。インスタンス生成部（２４０）は、展開部（２５０）との取り決めに従って、サービスを展開するために利用可能なリソースかつサービスを展開するために必要なリソースを決定するためのリソース決定コンポーネント（２１６）を利用する。リソース決定コンポーネント（２１６）は、サービス記述を評価し、サービスがサービスに対する最新の要求を満たす十分なサービス能力を提供するために、どのようにサービスがスケーラブルに構成される必要があるか決定する。拡大した展開用サービスを構成するために、リソース決定コンポーネントは、サービスに対するインスタンス要求を満たすために必要とされるリソースを一部評価する。リソース決定コンポーネント（２１６）はその後、リソース決定コンポーネント（２１６）の決定に基づいて、十分なサービス能力を提供するための必要かつ利用可能なリソースのインスタンス記述を生成する。
【００３６】
[0042]展開部（２５０）は、インスタンス生成部（２４０）によって提供されるインスタンス記述を受信する。展開部（２５０）は、サービス記述内の詳細化した必要リソースを物理装置及びそれらに関連した接続性設定にマッピングするリソースマッピングコンポーネント（２１８）を利用する。リソースがマッピングされ得る対象の物理装置の例は、図１の非限定の計算装置（１００）を含む。更に、図１の計算装置（１００）を支援するリソースがマッピングされ得る対象の物理装置は、例に過ぎないスイッチ、サーバー、ラック、ルーター、仮想計算装置、リモート計算装置、ピアツーピア計算装置、専用計算装置、及び割当て可能計算装置を含むデータセンターに通常、関連した装置である。記載した物理装置は、リソースを必要としたサービス記述がマッピングされ得る対象の物理装置の範囲に限定するように意図されていないことを当業者は理解され十分評価されよう。物理装置に対する接続設定は、物理装置のＩＰアドレス又はその他の識別プロトコルを含み得る。
【００３７】
[0043]展開コンポーネント（２２０）が、サービスを展開する。展開コンポーネント（２２０）は、リソースマッピングコンポーネント（２１８）によって実行される必要かつ利用可能なリソースのマッピングを利用し、リソース決定コンポーネント（２１６）によって生成されるインスタンス記述に記載されているサービスを展開する。インスタンス生成部（２４０）及び展開部（２５０）は、スケーラブルな計算プラットホーム（２００）のコンポーネントを利用し、サービスを展開する。インスタンス生成部（２４０）及び展開部（２５０）の動作によって定義される周期は、新しいサービスインスタンスそれぞれを用いて繰り返される。新しいサービスインスタンスそれぞれは、様々な方法でスケーラブルな計算プラットホーム（２００）の様々なコンポーネントを利用し、サービスを中断させずに必要とされる能力のサービスを効率的に提供する。
【００３８】
[0044]ここで図３を参照すると、本発明の実施形態に従ったスケーラブルな計算プラットホームを作動する例示的方法（３００）の流れ図が示されている。最初にブロック（３１０）に示したように、サービスに対する初期リクエストが受信される。サービスに対する初期リクエストは、サービス契約及びサービス記述を含む。サービス契約は、展開されるサービス領域の概要を記述している。領域は、考慮した要件、制限、及び制約を含んでいて、サービス記述がそのあとに続く。サービスに対する受信したリクエストがサービス記述及びサービス契約を含み得るか、又はサービスに対するリクエストがサービス記述及びサービス契約に関係なく受信され得る。サービス、サービス契約に対するリクエストの組み合わせのいくつか又はすべて、及びサービス記述それ自体が、受信されるように想定されている。ブロック（３１０）に示したように、サービスに対するリクエストが受信され、ブロック（３１５）に示したように、サービス記述が受信される。一旦、サービス記述が受信されると、ブロック（３２０）に示したように、サービスを維持するために必要とされる構成及びリソースが決定され、ブロック（３２５）に示したように、利用可能なリソースであることが決定される。サービスを維持するために必要とされるリソース及びサービスを展開するために利用可能なリソースが決定された後、ブロック（３３０）に示したように、サービスのインスタンス記述が生成される。ブロック（３４０）に示したように、必要なリソースが利用可能なリソースにマッピングされる。ブロック（３５０）に示したように、リソースマッピングが、サービス記述に記載されたサービスを展開可能にする。ブロック（３６０）に示したように、サービスが展開された後、結果が生成され、送信される。
【００３９】
[0045]ブロック（３８４）に示したように、サービスに対する追加リクエストが受信された場合、本方法は、ブロック（３３０）に示したようにインスタンス記述の生成へ戻る。追加リクエストが受信されない場合、本方法はインスタンス記述を再生成する機会を待つ。これがブロック（３８２）に示されている。
【００４０】
[0046]サービスに対する追加リクエストそれぞれを用いて新しいサービスインスタンスが展開される。追加リクエストの受信後、インスタンス記述の再生成が、インスタンス記述のために必要なリソースの変更及び展開のために利用可能なリソースの変更に対しスケーラブルな計算プラットホームを適合させる。追加としてインスタンス記述の再生成は、改善、新規要件、行動変更、及び維持をサービスの新しいインスタンスそれぞれを組み込み可能にする。これは、スケーラブルな計算プラットホームの展開をスケーラブルにし、新しいインスタンス記述のエレメントを組み込むと同時に、継続したサービス展開の提供を可能にする。
【００４１】
[0047]ここで図４を参照すると、様々な組立部品を介したサービス記述ライフサイクルを表す概略図が、一般に参照数字（４００）として例示され指定されている。開発段階（４１０）は、新しいサービスに対するリクエスト又は既存のサービスに対する改善を受信することを含む。開発段階（４１０）の間、新規要件も導入され得る。新規サービスに対するリクエスト、改善に対するリクエスト、及び新しい要件が、開発段階のサービス記述に組み込まれ、サービスを定義する。開発段階のサービス記述がインスタンス組立生成段階（４２０）に渡され、そこで必要とされるリソースかつ利用可能なリソースが決定され、開発段階のサービス記述が変更され、インスタンス記述になる。インスタンス記述が、展開組立段階（４３０）に渡される。インスタンス記述によって概要記述されているサービスが展開される。物理装置の情報のような監視情報及びデータセンター変更が取得される。監視情報、データセンター変更、及び展開ステータスがその後、インスタンス組立生成及び開発段階に送信され、後のサービスインスタンスに関するそれらのインスタンス記述それぞれに組み込まれる。
【００４２】
[0048]ここで図５を参照すると、例示的トポロジーのグラフ表示が、参照数字（５００）として一般的に例示され指定されている。図２に関して既に論じたように、トポロジーは、サービスの様々なエレメントと様々なチャネルとの間の関係記述を提供する。トポロジー（５００）は、参照数字（５０２）、（５０４）、（５０８）、（５１０）、（５１２）、（５１６）、及び（５１８）によって表されるようなエレメント及びそれらに関連した設定値を含む。追加としてチャネルは、参照数字（５０６）及び参照数字（５１４）に示されている。トポロジー（５００）は、参照数字（５０８）、（５１０）、及び（５１２）に示されるエレメントと接続している参照数字（５０２）及び（５０４）に表されるエレメントを示す。参照数字（５０６）に示されるように、２つのエレメントセットの間はチャネルである。チャネルは、（５０８）、（５１０）、及び（５１２）に示したエレメントの適切な入力終端に接続を分配する。これらのエレメントは、それらの出力終端から（５１４）に示したチャネルに接続する。チャネル（５１４）はその後、参照数字（５１６）及び（５１８）に示したエレメントに接続を分配する。結果のトポロジー（５００）はサービス記述に含まれていて、サービスのエレメント、チャネル、及び設定値の概要を記述している。
【００４３】
[0049]ここで図９を参照すると、サービス展開の漸進的変化の流れ図が、一般的に参照数字（９００）として示され、指定されている。参照数字（９１０）に示したように、サービス展開の漸進的変化（９００）は、サービス生成をもたらす新しいサービスに対するリクエストを開始する。参照数字（９２０）に示したように、サービスが、サービス（９３０）の第１のインスタンスとして展開される。サービスのライフサイクルは、図３及び図４を参照し説明したように続く。サービス記述は、サービスインスタンスそれぞれを用いて変更される。サービスに対する第２のリクエストが受信され、それは、参照数字（９４０）に示したように、第２のサービスインスタンス（９５０）として展開される。周期は、サービス（９６０）の「ｎ」番目のインスタンスに続く。参照数字（９７０）に示したように、「ｎ」番目のサービスインスタンスの後にサービスがスケーラブルな計算プラットホームから削除される。
【００４４】
[0050]以上のように本発明の実施形態は、スケーラブルな計算プラットホームを作動するためのシステム、方法、及び計算機記憶媒体に関する。リクエストされたサービスを記述しているサービス記述が受信される。サービス記述を受信したとき、必要なリソースかつ利用可能なリソースの決定が実行される。インスタンス記述が生成される。サービス展開を持続するために必要とされるリソースが、計算プラットホームの利用可能なリソースにマッピングされ、サービスが展開される。インスタンス記述が、サービス展開それぞれを用いて修正され、持続したサービス展開を可能にする。
【００４５】
[0051]本発明は、特定の実施例と関連し説明されていて、あらゆる点で制限的というよりもむしろ例示的であるように意図されている。本発明がその範囲から逸脱せずに関連している代替実施形態が、当業者には明らかになるだろう。
【００４６】
[0052]前述のものから、この発明が本システム及び方法に対し明白かつ固有である別の利点と共に詳細に前述した結果及び目的すべてに達するようによく適合されたものであることがわかるであろう。いくつかの機能及び部分的な組み合わせが実用的であって、別の機能及び部分的な組み合わせを参照せずに展開され得ることを理解されよう。これは、請求範囲によって想定されていて、その範囲内にある。
【符号の説明】
【００４７】
１００  計算装置
１１０  バス
１１２  メモリー
１１４  プロセッサー
１１６  表示コンポーネント
１１８  入力／出力（Ｉ／Ｏ）ポート
１２０  入力／出力Ｉ／Ｏコンポーネント
１２２  電源
２００  例示システム
２１０  ネットワーク
２１２  受信コンポーネント
２１６  リソース決定コンポーネント
２１８  リソースマッピングコンポーネント
２２０  展開コンポーネント
２４０  インスタンス生成部
２５０  展開部
４００  サービス記述ライフサイクル
４１０  開発段階
４２０  インスタンス組立生成段階
４３０  展開組立段階
５００  トポロジー
５０２  エレメント
５０４  エレメント
５０６  チャネル
５０８  エレメント
５１０  エレメント
５１２  エレメント
５１４  チャネル
５１６  エレメント
５１８  エレメント
６１０  負荷分散装置
６２０  ソースエレメント
６２２  ソースエレメント
６２４  ソースエレメント
６３０  ターゲットエレメント
６３２  ターゲットエレメント
７１０  ルーター
７２０  ソースエレメント
７２２  ソースエレメント
７２４  ソースエレメント
７３０  ターゲットエレメント
７３２  ターゲットエレメント
８１０  ルーター
８２０  ソースエレメント
８２２  ソースエレメント
８２４  ソースエレメント
８３０  ターゲットエレメント
８３２  ターゲットエレメント
９００  サービス展開の漸進的変化
９１０  新規サービスに対するリクエスト
９２０  第１のサービス展開
９３０  第１のサービス実体化
９４０  第２のサービス展開
９５０  第２のサービス実体化
９６０  第ｎのサービス実体化
９７０  スケーラブルな計算プラットホームからのサービス削除
【図１】
0005391207.tif 000002
【図２】
0005391207.tif 000003
【図３】
0005391207.tif 000004
【図４】
0005391207.tif 000005
【図５】
0005391207.tif 000006
【図６】
0005391207.tif 000007
【図７】
0005391207.tif 000008
【図８】
0005391207.tif 000009
【図９】
0005391207.tif 000010