(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-21
(45)【発行日】2023-05-01
(54)【発明の名称】ハイブリッド・クラウド構成のためのオーケストレーション・エンジン・ブループリント・アスペクトのためのシステム、コンピュータ実行可能な方法およびコンピュータ・プログラム
(51)【国際特許分類】
G06F 11/30 20060101AFI20230424BHJP
G06F 9/455 20180101ALI20230424BHJP
G06F 9/50 20060101ALI20230424BHJP
【FI】
G06F11/30 151
G06F11/30 140C
G06F9/455 150
G06F9/50 120A
(21)【出願番号】P 2020531691
(86)(22)【出願日】2018-12-11
(86)【国際出願番号】 IB2018059875
(87)【国際公開番号】W WO2019116224
(87)【国際公開日】2019-06-20
【審査請求日】2021-05-25
(32)【優先日】2017-12-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】アサーナ、ニーラジ
(72)【発明者】
【氏名】シェファラス、トーマス
(72)【発明者】
【氏名】ケーブ、アレクセイ
(72)【発明者】
【氏名】ピクオバー、クリフォード
【審査官】金田 孝之
(56)【参考文献】
【文献】特開2016-170489(JP,A)
【文献】特開2015-148917(JP,A)
【文献】特開2014-142928(JP,A)
【文献】国際公開第2014/088537(WO,A1)
【文献】米国特許出願公開第2011/0321033(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/30
G06F 9/455
G06F 9/50
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータ実行可能コンポーネントを記憶するメモリと、
前記メモリに記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサとを含み、前記コンピュータ実行可能コンポーネントは、
クラウド・ベースのコンピューティング・プラットフォームに関連付けられたブループリントのための1つまたは複数のブループリント・レベル・アスペクトを判断するブループリント・コンポーネントであって、前記1つまたは複数のブループリント・レベル・アスペクトが前記クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数のコンピューティング資源に関連付けられた1つまたは複数の特徴のための符号化情報を示す、前記ブループリント・コンポーネントと、
前記1つまたは複数のブループリント・レベル・アスペクトに基づいて、前記クラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットを判断するハイブリッド・クラウド構成コンポーネントと
を含
み、
前記ブループリント・コンポーネントは、前記クラウド・ベースのコンピューティング・プラットフォームまたは別のクラウド・ベースのコンピューティング・プラットフォームに関連付けられた履歴データに基づいて、前記1つまたは複数のブループリント・レベル・アスペクトを判断する、システム。
【請求項2】
前記ブループリント・コンポーネントは、前記ブループリントから前記1つまたは複数のブループリント・レベル・アスペクトを抽出し、前記ブループリントは、前記1つまたは複数のコンピューティング資源の機械可読表現を示す、請求項1に記載のシステム。
【請求項3】
前記コンピュータ実行可能コンポーネントは、
前記1つまたは複数のコンピューティング資源の旧バージョンを修正して、前記クラウド・ベースのコンピューティング・プラットフォームのための前記1つまたは複数のコンピューティング資源を生成するコンピューティング資源コンポーネントをさらに含む、請求項1に記載のシステム。
【請求項4】
前記コンピューティング資源コンポーネントは、ハイブリッド・クラウド・ベースのコンピューティング・プラットフォーム、パブリック・クラウド・ベースのコンピューティング・プラットフォーム、またはプライベート・クラウド・ベースのコンピューティング・プラットフォームのための前記1つまたは複数のコンピューティング資源を生成する、請求項3に記載のシステム。
【請求項5】
前記ブループリント・コンポーネントは、前記ブループリント内の資源定義部のための前記1つまたは複数のブループリント・レベル・アスペクトを判断する、請求項1に記載のシステム。
【請求項6】
前記ブループリント・コンポーネントは、前記クラウド・ベースのコンピューティング・プラットフォームまたは別のクラウド・ベースのコンピューティング・プラットフォームに関連付けられた、以前に判断されたパフォーマンス・データに基づいて、前記1つまたは複数のブループリント・レベル・アスペクトを判断する、請求項1に記載のシステム。
【請求項7】
前記ブループリント・コンポーネントは、前記ブループリントを修正して前記資源定義のセットを含む修正ブループリントを生成する、請求項1に記載のシステム。
【請求項8】
前記ハイブリッド・クラウド構成コンポーネントは、前記1つまたは複数のブループリント・レベル・アスペクトに基づいて、前記資源定義のセットに資源データを動的に代入する、請求項1に記載のシステム。
【請求項9】
前記ブループリント・コンポーネントは、前記資源定義のセットに基づいて、前記ブループリント内の資源定義部を修正する、請求項1に記載のシステム。
【請求項10】
前記ハイブリッド・クラウド構成コンポーネントは、前記クラウド・ベースのコンピューティング・プラットフォームのパフォーマンス向上を促すように前記資源定義のセットを判断する、請求項1に記載のシステム。
【請求項11】
クラウド・ベースのコンピューティング・プラットフォームの1つまたは複数のコンピューティング資源のための情報に関連付けられたブループリントから、1つまたは複数のブループリント・レベル・アスペクトを、プロセッサに動作可能に結合されたシステムによって特定することと、
前記1つまたは複数のブループリント・レベル・アスペクトに基づいて、前記クラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットを、前記システムによって生成することと、
前記資源定義のセットに基づいて、前記ブループリントを前記システムによって修正すること
と、
前
記クラウド・ベースのコンピューティング・プラットフォームに関連付けられた1つまたは複数の特徴を学習するために、前記1つまたは複数のブループリント・レベル・アスペクトに基づいて、前記クラウド・ベースのコンピューティング・プラットフォームを、前記システムによってモニタリングすることを含む、コンピュータ実行可能な方法。
【請求項12】
前記特定することは、前記クラウド・ベースのコンピューティング・プラットフォームに関連付けられた履歴データに基づいて、前記1つまたは複数のブループリント・レベル・アスペクトを特定する、請求項11に記載のコンピュータ
実行可能な方法。
【請求項13】
前記修正することは、前記資源定義のセットに基づいて前記ブループリントの資源定義部を修正することを含む、請求項
11に記載のコンピュータ実行可能な方法。
【請求項14】
前記修正することは、前記クラウド・ベースのコンピューティング・プラットフォームのパフォーマンスを向上させることを含む、請求項
11に記載のコンピュータ実行可能な方法。
【請求項15】
オーケストレーション・エンジン・プロセスを可能とするコンピュータ・プログラムであって、前記プログラムは、プロセッサに対し、
クラウド・ベースのコンピューティング・プラットフォームの1つまたは複数のコンピューティング資源のための情報によってフォーマットされたブループリントから、1つまたは複数のブループリント・レベル・アスペクトを、前記プロセッサによって抽出させ、
前記1つまたは複数のブループリント・レベル・アスペクトに基づいて、前記クラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットを、前記プロセッサによって判断させ、
前記資源定義のセットに基づいて、前記クラウド・ベースのコンピューティング・プラットフォームのための修正ブループリントを、前記プロセッサによって生成させ
ることを含み、
前記クラウド・ベースのコンピューティング・プラットフォームに関連付けられた1つまたは複数の特徴を学習するために、前記1つまたは複数のブループリント・レベル・アスペクトに基づいて、前記クラウド・ベースのコンピューティング・プラットフォームを前記プロセッサによってモニタリングさせる、コンピュータ・プログラム。
【請求項16】
前記プログラムは、さらに、前記プロセッサに対し、
前記資源定義のセットに基づいて、前記ブループリントの1つまたは複数の部分を前記プロセッサによって修正させる、請求項
15に記載のコンピュータ・プログラム。
【請求項17】
コンピュータ実行可能コンポーネントを記憶するメモリと、
前記メモリに記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサと
を含み、前記コンピュータ実行可能コンポーネントは、
クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数の第1のコンピューティング資源を修正して前記クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数の第2のコンピューティング資源を生成するコンピューティング資源コンポーネントと、
前記クラウド・ベースのコンピューティング・プラットフォームに関連付けられたブループリントのための1つまたは複数のブループリント・レベル・アスペクトを判断するブループリント・コンポーネントであって、前記1つまたは複数のブループリント・レベル・アスペクトが前記クラウド・ベースのコンピューティング・プラットフォームのための前記1つまたは複数の第2のコンピューティング資源に関連付けられた1つまたは複数の特徴のための符号化情報を示す、前記ブループリント・コンポーネントと、
前記1つまたは複数のブループリント・レベル・アスペクトに基づいて、前記クラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットを判断するハイブリッド・クラウド構成コンポーネントと
を含
み、
前記ブループリント・コンポーネントは、前記クラウド・ベースのコンピューティング・プラットフォームまたは別のクラウド・ベースのコンピューティング・プラットフォームに関連付けられた履歴データに基づいて、前記1つまたは複数のブループリント・レベル・アスペクトを判断する、
システム。
【請求項18】
前記コンピューティング資源コンポーネントは、ハイブリッド・クラウド・ベースのコンピューティング・プラットフォーム、パブリック・クラウド・ベースのコンピューティング・プラットフォーム、またはプライベート・クラウド・ベースのコンピューティング・プラットフォームのための前記1つまたは複数の第2のコンピューティング資源を生成する、請求項
17に記載のシステム。
【請求項19】
1つまたは複数のコンピューティング資源の旧バージョンを修正することによって、クラウド・ベースのコンピューティング・プラットフォームのための前記1つまたは複数のコンピューティング資源を、プロセッサに動作可能に結合されたシステムによって生成することと、
前記1つまたは複数のコンピューティング資源のための情報に関連付けられたブループリントから、1つまたは複数のブループリント・レベル・アスペクトを、前記システムによって特定することと、
前記1つまたは複数のブループリント・レベル・アスペクトに基づいて、前記クラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットを、前記システムによって生成することと、
前記資源定義のセットに基づいて、前記ブループリントを前記システムによって修正することと、
前記クラウド・ベースのコンピューティング・プラットフォームに関連付けられた1つまたは複数の特徴を学習するために、前記1つまたは複数のブループリント・レベル・アスペクトに基づいて、前記クラウド・ベースのコンピューティング・プラットフォームを、前記システムによってモニタリングすることを含むコンピュータ実行可能な方法。
【請求項20】
前記ブループリントを修正することは、前記資源定義のセットに基づいて前記ブループリント内の資源定義部を修正することを含む、請求項
19に記載のコンピュータ実行可能な方法。
【請求項21】
前記ブループリントを修正することは、前記資源定義のセットに関連付けられたデータを前記ブループリントに挿入することを含む、請求項
19に記載のコンピュータ実行可能な方法。
【請求項22】
請求項
11から
14のいずれか1項に記載のコンピュータ
実行可能な方法のすべてのステップまたは請求項
15又は16のいずれか1項に記載のコンピュータ・プログラムのすべてのステップを実行するための命令を含む、記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、クラウド・コンピューティング・システムに関し、より詳細には、クラウド・コンピューティング・システムのためのコンピューティング資源に関する。
【背景技術】
【0002】
クラウド・コンピューティング・システムが知られている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明は、ハイブリッド・クラウド構成のためのオーケストレーション・エンジン・ブループリント・アスペクトのためのシステム、コンピュータ実行可能な方法およびコンピュータ・プログラムをすることを目的とする。
【課題を解決するための手段】
【0004】
以下に、本発明の1つまたは複数の実施形態についての基本的理解を得られるように概要を示す。この概要は、主要または重要な要素を特定すること、あるいは、特定の実施形態の任意の範囲または特許請求の任意の範囲を区切ることを意図していない。その唯一の目的は、後で示すより詳細な説明の前置きとして、概念を簡略にした形で示すことである。本明細書に記載の1つまたは複数の実施形態では、ハイブリッド・クラウド構成のためのオーケストレーション・エンジン・ブループリント・アスペクトを簡便にする、デバイス、システム、コンピュータ実装方法、装置、またはコンピュータ・プログラム製品あるいはこれらの組合せについて説明する。
【0005】
一実施形態によると、システムは、ブループリント・コンポーネントとハイブリッド・クラウド構成コンポーネントとを含むことができる。ブループリント・コンポーネントは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたブループリントのための1つまたは複数のブループリント・レベル・アスペクトを判断することができる。1つまたは複数のブループリント・レベル・アスペクトは、クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数のコンピューティング資源に関連付けられた1つまたは複数の特徴のための符号化情報を示すことができる。ハイブリッド・クラウド構成コンポーネントは、1つまたは複数のブループリント・レベル・アスペクトに基づいて、クラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットを判断することができる。
【0006】
別の実施形態によると、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能に結合されたシステムによって、クラウド・ベースのコンピューティング・プラットフォームの1つまたは複数のコンピューティング資源のための情報に関連付けられたブループリントから、1つまたは複数のブループリント・レベル・アスペクトを特定することを含み得る。コンピュータ実装方法は、システムによって、1つまたは複数のブループリント・レベル・アスペクトに基づいて、クラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットを生成することも含み得る。また、コンピュータ実装方法は、システムによって、資源定義のセットに基づいてブループリントを修正することを含み得る。
【0007】
さらに別の実施形態によると、オーケストレーション・エンジン・プロセスを容易にするためのコンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み得る。プログラム命令は、プロセッサによって実行可能とすることができ、プロセッサに、プロセッサによって、クラウド・ベースのコンピューティング・プラットフォームの1つまたは複数のコンピューティング資源のための情報によりフォーマットされたブループリントから1つまたは複数のブループリント・レベル・アスペクトを抽出させることができる。プログラム命令は、プロセッサに、プロセッサによって、1つまたは複数のブループリント・レベル・アスペクトに基づいて、クラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットを判断させることもできる。また、プログラム命令は、プロセッサに、プロセッサによって、資源定義のセットに基づいてクラウド・ベースのコンピューティング・プラットフォームのための修正ブループリントを生成させることもできる。
【0008】
さらに別の実態によると、システムは、コンピューティング資源コンポーネントと、ブループリント・コンポーネントと、ハイブリッド・クラウド構成コンポーネントとを含み得る。コンピューティング資源コンポーネントは、クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数の第1のコンピューティング資源を修正してクラウド・ベースの・コンピューティング・プラットフォームのための1つまたは複数の第2のコンピュータ資源を生成することができる。ブループリント・コンポーネントは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたブループリントのための1つまたは複数のブループリント・レベル・アスペクトを判断することができる。1つまたは複数のブループリント・レベル・アスペクトは、クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数の第2のコンピューティング資源に関連付けられた1つまたは複数の特徴のための符号化情報を示すことができる。ハイブリッド・クラウド構成コンポーネントは、1つまたは複数のブループリント・レベル・アスペクトに基づいて、クラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットを判断することができる。
【0009】
さらに別の実施形態によると、コンピュータ実装方法が提供される。コンピュータ実装方法は、プロセッサに動作可能に結合されたシステムによって、1つまたは複数のコンピューティング資源の旧バージョンを修正することによって、クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数のコンピューティング資源を生成することを含み得る。コンピュータ実装方法は、システムによって、1つまたは複数のコンピューティング資源のための情報に関連付けられたブループリントから1つまたは複数のブループリント・レベル・アスペクトを特定することも含み得る。また、コンピュータ実装方法は、システムによって、1つまたは複数のブループリント・レベル・アスペクトに基づいて、クラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットを生成することを含み得る。コンピュータ実装方法は、システムによって、資源定義のセットに基づいてブループリントを修正することも含み得る。
【0010】
次に、本発明の実施形態について、例示のみを目的として、添付図面を参照しながら説明する。
【図面の簡単な説明】
【0011】
【
図1】本明細書に記載の1つまたは複数の実施形態による、オーケストレーション・エンジン・コンポーネントを含む例示の非限定的なシステムのブロック図である。
【
図2】本明細書に記載の1つまたは複数の実施形態による、オーケストレーション・エンジン・コンポーネントを含む別の例示の非限定的なシステムのブロック図である。
【
図3】本明細書に記載の1つまたは複数の実施形態による、クラウド・ベースのコンピューティング・プラットフォームとブループリントとを含む例示の非限定的なシステムを示す図である。
【
図4】本明細書に記載の1つまたは複数の実施形態による、オーケストレーション・エンジン・コンポーネントと、ブループリントと、資源定義のセットとを含む例示の非限定的なシステムを示す図である。
【
図5】本明細書に記載の1つまたは複数の実施形態による、オーケストレーション・エンジン・コンポーネントと、資源定義のセットと、修正ブループリントとを含む例示の非限定的なシステムを示す図である。
【
図6】本明細書に記載の1つまたは複数の実施形態による、クラウド・ベースのコンピューティング・プラットフォームと修正ブループリントとを含む例示の非限定的なシステムを示す図である。
【
図7】本明細書に記載の1つまたは複数の実施形態による、ブループリントと修正ブループリントとを含む例示の非限定的なシステムを示す図である。
【
図8】本明細書に記載の1つまたは複数の実施形態による、ブループリントと修正ブループリントとを含む別の例示の非限定的なシステムを示す図である。
【
図9】本明細書に記載の1つまたは複数の実施形態による、ハイブリッド・クラウド構成のためのオーケストレーション・エンジン・ブループリント・アスペクトを簡便にする例示の非限定的なコンピュータ実装方法の流れ図である。
【
図10】本明細書に記載の1つまたは複数の実施形態による、ハイブリッド・クラウド構成のためのオーケストレーション・エンジン・ブループリント・アスペクトを簡便にする別の例示の非限定的なコンピュータ実装方法の流れ図である。
【
図11】本明細書に記載の1つまたは複数の実施形態を容易にすることができる例示の非限定的な動作環境のブロック図である。
【
図12】本発明の1つまたは複数の実施形態による、例示の非限定的なクラウド・コンピューティング環境のブロック図である。
【
図13】本発明の1つまたは複数の実施形態による、例示の非限定的な抽象モデル層のブロック図である。
【発明を実施するための形態】
【0012】
以下の詳細な説明は例示に過ぎず、実施形態、または実施形態の適用もしくは使用、あるいはその両方を限定することを意図していない。また、上記の「背景技術」の項または「発明の概要」の項、または「発明を実施するための形態」の項に示されているいかなる明示または暗黙の情報にも制約されることを意図していない。
【0013】
次に、図面を参照しながら1つまたは複数の実施形態について説明するが、全体を通じて同様の要素を指すために同様の参照番号を使用する。以下の説明では、説明を目的として、1つまたは複数の実施形態をよりよく理解することができるように、多くの具体的な詳細が記載される。しかし、様々な場合において1つまたは複数の実施形態はこれらの具体的詳細がなくても実施可能であることは明らかである。
【0014】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に記載されている教示の実装はクラウド・コンピューティング環境には限定されないことを理解するべきである。むしろ、本発明の実施形態は、現在知られているか、または今後開発される任意の他の種類のコンピューティング環境とともに実装することができる。
【0015】
クラウド・コンピューティングは、最小限の管理労力またはサービス・プロバイダとの相互連絡で迅速にプロビジョニングすることができ、解放することができる、構成可能コンピューティング資源(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共用プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つの配備モデルとを含み得る。
【0016】
特徴は以下の通りである。
オンデマンド・セルフサービス:クラウド消費者は、サービス・プロバイダとの間で人間の介在を必要とせずに一方的に、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能をプロビジョニングすることができる。
広いネットワーク・アクセス:機能は、ネットワークを介して利用可能であり、異種のシン・クライアントまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を促進する標準機構を介してアクセスされる。
資源プール:マルチテナント・モデルを使用して複数の消費者に対応するために、プロバイダのコンピューティング資源がプールされ、需要に応じて、異なる物理資源および仮想資源が動的に割り当てられ、再割り当てされる。消費者は一般に、提供される資源の厳密な場所について管理しないかまたは知らないが、より高い抽象レベルで場所(例えば、国、州、またはデータセンター)を指定する場合があるという点で、位置独立感がある。
迅速な伸縮性:迅速かつ伸縮性をもって、場合によっては自動的に、機能をプロビジョニングして迅速にスケールアウトすることができ、また、迅速に機能を解放して迅速にスケールインすることができる。消費者にとっては、プロビジョニングのために利用可能な機能はしばしば無限であるように見え、いつでも好きなだけ購入することができる。
従量制サービス:クラウド・システムが、サービスの種類(例えば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に応じて適切ないくらかの抽象化レベルの計量機能を利用することによって、資源利用を自動的に制御し、最適化する。資源使用量を監視、制御および報告することができ、利用されたサービスのプロバイダと消費者の両方に透明性を与えることができる。
【0017】
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス(Software as a Service(SaaS)):消費者に提供される機能は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションには、ウェブ・ブラウザなどのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である(例えばウェブ・ベースのEメール)。消費者は、限られたユーザ固有アプリケーション構成設定の考えられる例外を除き、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション機能までも含めて、基礎にあるクラウド・インフラストラクチャを管理または制御しない。
プラットフォーム・アズ・ア・サービス(Platform as a Service(PaaS)):消費者に提供される機能は、クラウド・インフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者により作成または取得されたアプリケーションを配備することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎にあるクラウド・インフラストラクチャを管理または制御しないが、配備されたアプリケーションと、場合によってはアプリケーション・ホスティング環境構成とを制御する。
インフラストラクチャ・アズ・ア・サービス(Infrastructure as a Service(IaaS)):消費者に提供される機能は、処理、ストレージ、ネットワークおよびその他の基本的コンピューティング資源をプロビジョニングすることであり、その際、消費者は、オペレーティング・システムとアプリケーションとを含み得る任意のソフトウェアを配備し、実行することができる。消費者は、基礎にあるクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システムと、ストレージと、配備されたアプリケーションとを制御し、場合によっては選択されたネットワーク・コンポーネント(例えばホスト・ファイアウォール)の限定的な制御を行う。
【0018】
配備モデルは以下の通りである。
プライベート・クラウド:このクラウド・インフラストラクチャは、組織のためにのみ運用される。組織または第三者によって管理可能であり、オンプレミスまたはオフプレミスに存在可能である。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織によって共用され、共通の関心事(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス事項)を有する特定のコミュニティをサポートする。組織または第三者が管理することができ、オンプレミスまたはオフプレミスに存在可能である。
パブリック・クラウド:このクラウド・インフラストラクチャは、公衆または大規模業界団体が利用することができ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、独自の実体のままであるが、データおよびアプリケーション可搬性を可能にする標準化技術または専有技術(例えば、クラウド間のロード・バランシングのためのクラウド・バースティング)によって共に結合された、2つ以上のクラウド(プライベート、コミュニティまたはパブリック)の複合体である。
【0019】
クラウド・コンピューティング環境は、ステートレス性、疎結合性、モジュール性、および意味的相互運用性に焦点を合わせたサービス指向型である。クラウド・コンピューティングの核心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0020】
オーケストレーション・エンジンは、クラウド・コンピューティング環境におけるコンピューティング資源またはワークフローあるいはその両方を管理することができる。例えば、オーケストレーション・エンジンは、例えばインフラストラクチャ・コンピューティング資源、仮想マシン・コンピューティング資源、ハードウェア・コンピューティング資源、ソフトウェア・アプリケーション・コンピューティング資源などのコンピューティング資源の作成、修正、構成または削除あるいはこれらの組合せを行うことができる。しかし、現在採用されているオーケストレーション・エンジンでは、一般に、クラウド・コンピューティング環境の要件を、クラウド・コンピューティング環境のためのハードウェア・プロパティまたはソフトウェア・プロパティあるいはその両方に変換することは困難である。例えば、現在採用されているオーケストレーション・エンジンでは、一般に、クラウド・コンピューティング環境のためのオペレーティング・システム要件、メモリ要件、処理要件、またはその他の要件あるいはこれらの組合せを判断するのは難しい。したがって、改良されたオーケストレーション・エンジンが必要である。
【0021】
本明細書に記載の実施形態は、ハイブリッド・クラウド構成のためのオーケストレーション・エンジン・ブループリント・アスペクトを簡便にする、システム、コンピュータ実装方法、およびコンピュータ・プログラム製品を含む。例えば、1つまたは複数のブループリント・レベル・アスペクトを、オーケストレーション・エンジン・ブループリントに組み込むことができる。本明細書で使用する「ブループリント」および「オーケストレーション・エンジン・ブループリント」とは、クラウド・コンピューティング環境(例えばクラウド・ベースのコンピューティング・プラットフォーム)のための1つまたは複数のコンピューティング資源を宣言するテンプレートまたはパターンであると定義付けられる。オーケストレーション・エンジンのためのブループリントは、機械可読形式および人間可読形式でフォーマットされたワークロードの宣言的な表現とすることもできる。また、オーケストレーション・エンジンのためのブループリントは、クラウド・コンピューティング環境のために作成されるコンピューティング資源の種類、またはコンピューティング資源のプロパティあるいはその両方を記述する。また、本明細書で使用する、「アスペクト」および「ブループリント・レベル・アスペクト」とは、ブループリントに含まれるコンピューティング資源の特徴または品質の仕様と定義付けられる。ブループリント・レベル・アスペクトは、例えば、環境アスペクト、モニタリング・アスペクト、通知アスペクト、アラート・アスペクト、自動スケーリング・アスペクト、ロード・バランシング・アスペクト、セキュリティ・アスペクト、別の種類のアスペクトなどとすることができる。一実施形態では、システムは、クラウド・ベースのコンピューティング・プラットフォームとオーケストレーション・エンジンとを含み得る。オーケストレーション・エンジンは、1つまたは複数のコンピューティング資源を宣言するためにブループリントを採用することができる。例えば、オーケストレーション・エンジンは、1つまたは複数のコンピューティング資源の修正または構成あるいはその両方を行うことができる。1つまたは複数のコンピューティング資源は、仮想マシン、ストレージ、ミドルウェア、その他のハードウェア、またはその他のソフトウェアあるいはこれらの組合せのためのコンピューティング資源とすることができる。また、1つまたは複数のブループリントは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた目標を達成するために、コンピューティング資源またはソリューションの構成あるいはその両方を指定(例えば宣言)することができる。1つまたは複数のブループリント・レベル・アスペクトを判断することもできる。ブループリントおよびブループリント・レベル・アスペクトに基づいて、資源定義または資源プロパティあるいはその両方を判断することができる。一態様では、資源定義または資源プロパティあるいはその両方をブループリントに代入することもできる。したがって、クラウド・ベースの環境(例えばクラウド・ベースのコンピューティング・プラットフォーム)のための1つまたは複数のコンピューティング資源要件を、そのクラウド・ベースの環境(例えばクラウド・ベースのコンピューティング・プラットフォーム)のためのハードウェア・プロパティまたはソフトウェア・プロパティあるいはその両方に変換することができる。例えば、クラウド・ベースの環境(例えばクラウド・ベースのコンピューティング・プラットフォーム)のためのオペレーティング・システム要件、メモリ要件、処理要件、またはその他の要件あるいはこれらの組合せを効率的に決定することができる。また、クラウド・ベースの環境(例えばクラウド・ベースのコンピューティング・プラットフォーム)の効率またはパフォーマンスあるいはその両方を向上させることができる。例えば、クラウド・ベースの環境(例えばクラウド・ベースのコンピューティング・プラットフォーム)におけるハードウェアまたはソフトウェアあるいはその両方の効率またはパフォーマンスあるいはその両方を向上させることができる。
【0022】
図1に、本明細書に記載の1つまたは複数の実施形態による、ハイブリッド・クラウド構成のためのオーケストレーション・エンジン・ブループリント・アスペクトを簡便にする例示の非限定的なシステム100のブロック図を示す。様々な実施形態において、システム100は、クラウド・コンピューティング技術、コンピュータ技術、サーバ技術、情報技術、機械学習技術、人工知能技術、デジタル技術、データ解析技術、またはその他のコンピュータ技術あるいはこれらの組合せなどであるがこれらには限定されない技術に関連付けられたオーケストレーション・エンジン・システムとすることができる。システム100は、ハードウェアまたはソフトウェアあるいはその両方を採用して、高度に技術的な性質の、抽象的ではない、人間による一連の知能的行為として行うことができない問題を解決することができる。また、実行されるプロセスの一部が、機械学習に関連する定義されたタスクを行うために特化された1つまたは複数のコンピュータ(例えば、オーケストレーション・エンジン・コンポーネントを備えた1つまたは複数の特化された処理ユニット、特化されたコンピュータなど)によって実行されてもよい。システム100またはシステムのコンポーネントあるいはその両方を採用して、上述の技術、クラウド・コンピューティング・システムの採用またはコンピュータ・アーキテクチャあるいはこれらの組合せなどにおける進歩によって生じる新たな問題を解決することができる。システム100の1つまたは複数の実施形態は、クラウド・コンピューティング・システム、コンピュータ・システム、サーバ・システム、情報技術システム、機械学習システム、人工知能システム、デジタル、システム、データ解析システム、またはその他のシステムあるいはこれらの組合せに、技術的改良をもたらすことができる。システム100の1つまたは複数の実施形態は、処理ユニットの処理パフォーマンスを向上させること、処理ユニットの処理効率を向上させること、または処理ユニットがパッチ管理プロセスを実行する時間を短縮すること、あるいはこれらの組合せによって、オーケストレーション・エンジン・プロセスに関連付けられた処理ユニット(例えばプロセッサ)に技術的改良をもたらすことができる。システム100の1つまたは複数の実施形態は、クラウド・コンピューティング環境(例えばクラウド・ベースのコンピューティング・プラットフォーム)の処理パフォーマンスを向上させることまたはクラウド・コンピューティング環境の処理効率を向上させることあるいはその両方によっても、クラウド・コンピューティング環境に技術的改良をもたらすこともできる。一例では、システム100をオーケストレーション・エンジン・プロセスに関連付けることができる。
【0023】
図1に示す実施形態では、システム100はオーケストレーション・エンジン・コンポーネント102を含むことができる。
図1に示すように、オーケストレーション・エンジン・コンポーネント102は、コンピューティング資源コンポーネント104と、ブループリント・コンポーネント106と、ハイブリッド・クラウド構成コンポーネント108とを含むことができる。オーケストレーション・エンジン・コンポーネント102の態様は、マシン内で具現化される、例えば1つもしくは複数のマシンに関連付けられた1つまたは複数のコンピュータ可読媒体(または複数の媒体)で具現化される、機械実行可能コンポーネントを構成することができる。このようなコンポーネントは、1つまたは複数のマシン、例えばコンピュータ、コンピューティング・デバイス、仮想マシンなどによって実行されると、記載されている動作をそのマシンに実行させることができる。一態様では、オーケストレーション・エンジン・コンポーネント102は、コンピュータ実行可能コンポーネントおよび命令を記憶するメモリ110も含むことができる。また、オーケストレーション・エンジン・コンポーネント102は、オーケストレーション・エンジン・コンポーネント102による命令(例えばコンピュータ実行可能コンポーネントおよび対応する命令)の実行を容易にするためにプロセッサ112を含むことができる。図のように、コンピューティング資源コンポーネント104、ブループリント・コンポーネント106、ハイブリッド・クラウド構成コンポーネント108、メモリ110、またはプロセッサ112あるいはこれらの組合せは、1つまたは複数の実施形態では電気的または通信可能に、あるいはその両方の方式で互いに結合することができる。特定の実施形態では、オーケストレーション・エンジン・コンポーネント102は、クラウド・ベースのコンピューティング・プラットフォーム114と通信することができる。クラウド・ベースのコンピューティング・プラットフォーム114は、クラウド・コンピューティング環境とすることができる。一例では、クラウド・ベースのコンピューティング・プラットフォーム114は、ハイブリッド・クラウド・ベースのコンピューティング・プラットフォームとすることができる。別の例では、クラウド・ベースのコンピューティング・プラットフォーム114は、パブリック・クラウド・ベースのコンピューティング・プラットフォームとすることができる。さらに別の例では、クラウド・ベースのコンピューティング・プラットフォーム114は、プライベート・クラウド・ベースのコンピューティング・プラットフォームとすることができる。
【0024】
コンピューティング資源コンポーネント104は、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源を判断することができる。クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたハードウェアのための1つもしくは複数のコンピューティング資源、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたソフトウェアのための1つもしくは複数のコンピューティング資源、あるいはその両方を含むことができる。非限定的な一例では、1つまたは複数のコンピューティング資源は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたプロセッサのための1つもしくは複数のコンピューティング資源、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた仮想マシンのための1つもしくは複数のコンピューティング資源、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたストレージのための1つもしくは複数のコンピューティング資源、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたミドルウェアのための1つもしくは複数のコンピューティング資源、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つもしくは複数のその他のコンピューティング資源、あるいはこれらの組合せを含み得る。
【0025】
一実施形態では、コンピューティング資源コンポーネント104は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントを受け取ることができる。クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントは、例えば、クラウド・ベースのコンピューティング・プラットフォーム114のための1つもしくは複数のコンピューティング資源を宣言するテンプレートまたはパターンとすることができる。クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントは、クラウド・ベースのコンピューティング・プラットフォーム114のために作成されるコンピューティング資源の種類またはコンピューティング資源のプロパティあるいはその両方を記述することもできる。一態様では、ブループリントは、クラウド・ベースのコンピューティング・プラットフォーム114から、可読テキスト・ファイルとしてエクスポートすることができる。ブループリントに関連付けられた可読テキスト・ファイルは、機械可読形式および人間可読形式でフォーマットすることができる。例えば、ブループリントは、1つまたは複数のコンピューティング資源の機械可読表現および人間可動表現とすることができる。一例では、ブループリントに関連付けられた可読テキスト・ファイルは、データ・シリアル化言語に関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。別の例では、ブループリントに関連付けられた可読テキスト・ファイルは、データ配列言語に関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。さらに別の例では、ブループリントに関連付けられた可読テキスト・ファイルは、自動ドキュメンテーションに関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。したがって、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントは、機械可読形式および人間可読形式でフォーマットされたクラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源の宣言的な表現とすることができる。一態様では、コンピューティング資源コンポーネント104は、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源を判断するためにブループリントの内容を解釈することができる。例えば、コンピューティング資源コンポーネント104は、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源を判断するために機械可読内容または人間可読内容あるいはその両方を解釈することができる。一実施形態では、コンピューティング資源コンポーネント104は、ブループリントの内容に基づいて、クラウド・ベースのコンピューティング・プラットフォーム114のための1つもしくは複数のコンピューティング資源間の1つまたは複数の依存関係を判断することができる。別の実施形態では、コンピューティング資源コンポーネント104は、クラウド・ベースのコンピューティング・プラットフォーム114のために判断された1つまたは複数のコンピューティング資源を修正することができる。例えば、コンピューティング資源コンポーネント104は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントから判断された1つまたは複数のコンピューティング資源を修正することによって、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数の修正コンピューティング資源を生成することができる。一例では、コンピューティング資源コンポーネント104は、1つまたは複数のコンピューティング資源の旧バージョンを修正して、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源を生成することができる。
【0026】
ブループリント・コンポーネント106は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントのための1つまたは複数のブループリント・レベル・アスペクトを判断することができる。1つまたは複数のブループリント・レベル・アスペクトは、クラウド・ベースのコンピューティング・プラットフォーム114のための1つもしくは複数のコンピューティング資源に関連付けられた1つまたは複数の特徴のための符号化情報を示すことができる。一実施形態では、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントは、1つまたは複数のブループリント・レベル・アスペクトを含むことができる。また、ブループリント・コンポーネント106は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントから、1つまたは複数のブループリント・レベル・アスペクトを抽出することができる。一例では、ブループリント・コンポーネント106は、ブループリント内の資源定義部のための1つまたは複数のブループリント・レベル・アスペクトを判断することができる。別の例では、ブループリント・コンポーネント106は、1つまたは複数のブループリント・レベル・アスペクト内の符号化データを判断することができる。1つまたは複数のブループリント・レベル・アスペクト内の符号化データは、例えば、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた、サービス・レベル・アグリーメント・データ、ソフトウェア・データ、配備環境データ、コスト・データ、セキュリティ・データ、応答時間データ、依存関係データ、デッドライン・データ、記述データ、ベンチマーク・データ、維持管理者データ、またはその他のデータあるいはこれらの組合せを含むことができる。別の実施形態では、ブループリント・コンポーネント106は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリント内の1つまたは複数のブループリント・レベル・アスペクトを特定するためにアスペクト・ナレッジ・データベースを採用することができる。アスペクト・ナレッジ・データベースは、前に特定されたブループリント・レベル・アスペクトの集合、または前に特定されたブループリント・レベル・アスペクトのための情報あるいはその両方とすることができる。一例では、アスペクト・ナレッジ・データベースは、メモリ110または別のメモリに記憶することができる。さらに別の例では、ブループリント・コンポーネント106は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた履歴データに基づいて1つまたは複数のブループリント・レベル・アスペクトを判断することができる。これに加えて、またはこれに代えて、ブループリント・コンポーネント106は、クラウド・ベースのコンピューティング・プラットフォーム114とは異なる別のクラウド・ベースのコンピューティング・プラットフォームに関連付けられた履歴データに基づいて、1つまたは複数のブループリント・レベル・アスペクトを判断することができる。例えば、履歴データは、クラウド・ベースのコンピューティング・プラットフォーム114または別のクラウド・ベースのコンピューティング・プラットフォームあるいはその両方に関連付けられた、前に判断されたパフォーマンス・データを含むことができる。
【0027】
ハイブリッド・クラウド構成コンポーネント108は、1つまたは複数のブループリント・レベル・アスペクトに基づいて、クラウド・ベースのコンピューティング・プラットフォーム114のための資源定義のセットを判断することができる。資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた、モニタリング、自動スケーリング、ロード・バランシング、イベント管理またはパーシステンスあるいはこれらの組合せを容易にするための1つまたは複数の定義を含むことができる。例えば、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたモニタリング、自動スケーリング、ロード・バランシング、イベント管理またはパーシステンスあるいはこれらの組合せを容易にする資源データを含むことができる。一態様では、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたハードウェア、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたソフトウェア、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた仮想マシン、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたストレージ、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたミドルウェア、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた別の資源あるいはこれらの組合せのための、1つまたは複数の定義を含むことができる。一例では、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォーム114のためのプロセッサの数またはプロセッサの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォーム114のためのメモリ容量またはメモリの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォーム114のネットワーク速度を含むことができる。ただし、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたその他の資源のための定義も含み得ることを理解されたい。一実施形態では、ハイブリッド・クラウド構成コンポーネント108は、1つまたは複数のブループリント・レベル・アスペクトに基づいて、資源定義のセットに関連付けられた資源データを動的に判断することができる。例えば、ハイブリッド・クラウド構成コンポーネント108は、1つまたは複数のブループリント・レベル・アスペクトに基づいて、資源定義のセットに資源データを動的に代入することができる。特定の実施形態では、ブループリント・コンポーネント106は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントを修正して修正ブループリントを生成することができる。修正ブループリントは、ハイブリッド・クラウド構成コンポーネント108によって判断された資源定義のセットを含むことができる。また、特定の実施形態では、ブループリント・コンポーネント106は、修正ブループリントのクラウド・ベースのコンピューティング・プラットフォーム114による採用を容易にするために、修正ブループリントをクラウド・ベースのコンピューティング・プラットフォーム114に送信することができる。一実施形態では、修正ブループリントまたは1つもしくは複数のブループリント・レベル・アスペクトあるいはその両方は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたハードウェアまたはソフトウェアあるいはその両方の最適実行経路を判断するために採用することができる。
【0028】
特定の実施形態では、ブループリント・コンポーネント106またはハイブリッド・クラウド構成コンポーネント108あるいはその両方は、修正ブループリントまたは資源定義のセットあるいはその両方の表示を容易にすることができる。例えば、ブループリント・コンポーネント106またはハイブリッド・クラウド構成コンポーネント108あるいはその両方は、修正ブループリントまたは資源定義のセットあるいはその両方をディスプレイ・デバイス上に視覚表示することができる。ディスプレイ・デバイスは、例えば、ディスプレイを備えたコンピューティング・デバイス、コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、モニタ・デバイス、スマート・デバイス、スマートフォン、モバイル・デバイス、ハンドヘルド・デバイス、タブレット、ウエアラブル・デバイス、携帯型コンピューティング・デバイスまたはディスプレイ付随の別の種類のデバイスとすることができる。一態様では、ブループリント・コンポーネント106またはハイブリッド・クラウド構成コンポーネント108あるいはその両方は、修正ブループリントまたは資源定義のセットあるいはその両方の少なくとも一部を人間が解釈可能な形式で表示するために、ユーザ・インターフェースを生成することができる。特定の実施形態では、ブループリント・コンポーネント106またはハイブリッド・クラウド構成コンポーネント108あるいはその両方は、修正ブループリントまたは資源定義のセットあるいはその両方を、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたハードウェアまたはソフトウェアあるいはその両方に適用することができる。
【0029】
オーケストレーション・エンジン・コンポーネント102(例えば、コンピューティング資源コンポーネント104、ブループリント・コンポーネント106、またはハイブリッド・クラウド構成コンポーネント108あるいはこれらの組合せ)は、人間によって実行することができない(例えば1人の人間の頭脳の能力を超える)オーケストレーション・エンジン・プロセスを実行することを理解されたい。例えば、ある期間にわたってオーケストレーション・エンジン・コンポーネント102(例えば、コンピューティング資源コンポーネント104、ブループリント・コンポーネント106、またはハイブリッド・クラウド構成コンポーネント108あるいはこれらの組合せ)によって処理されるデータの量、データの処理速度、または処理されるデータの種類あるいはこれらの組合せは、同じ期間にわたって1人の人間の頭脳によって処理することができるデータの量、速度、およびデータの種類に比べて、大量であり、高速であり、異なり得る。オーケストレーション・エンジン・コンポーネント102(例えば、コンピューティング資源コンポーネント104、ブループリント・コンピューティング資源コンポーネント106、またはハイブリッド・クラウド構成コンポーネント108あるいはこれらの組合せ)は、上記のオーケストレーション・エンジン・プロセスも実行しながら、1つまたは複数の他の機能の実行のために完全に動作可能(例えば完全に電力投入、完全に実行されるなど)とすることができる。また、オーケストレーション・エンジン・コンポーネント102(例えば、コンピューティング資源コンポーネント104、ブループリント・コンポーネント106、またはハイブリッド・クラウド構成コンポーネント108あるいはこれらの組合せ)は、ユーザが手作業で取得することが不可能な情報を含むことができる。例えば、資源定義のセットに含まれる情報の種類、資源定義のセットに含まれる情報の量、または資源定義のセットに含まれる情報の多様性あるいはこれらの組合せは、ユーザが手作業で取得する情報より複雑であり得る。
【0030】
図2に、本明細書に記載の1つまたは複数の実施形態による、例示の非限定的なシステム200のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【0031】
システム200は、オーケストレーション・エンジン・コンポーネント102を含む。オーケストレーション・エンジン・コンポーネント102は、コンピューティング資源コンポーネント104と、ブループリント・コンポーネント106と、ハイブリッド・クラウド構成コンポーネント108と、学習コンポーネント202とを含むことができる。学習コンポーネント202は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の資源に関連する1つもしくは複数の特徴または情報あるいはその両方の学習を容易にするために、クラウド・ベースのコンピューティング・プラットフォーム114をモニタリングすることができる。例えば、学習コンポーネント202は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の資源に関連する1つもしくは複数の特徴または情報あるいはその両方を学習するために、1つまたは複数のブループリント・レベル・アスペクトに基づいてクラウド・ベースのコンピューティング・プラットフォーム114をモニタリングすることができる。一実施形態では、学習コンポーネント202は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つもしくは複数の資源に関連する1つもしくは複数の特徴または情報あるいはその両方を学習するために、機械学習または人工知能の原理あるいはその両方を採用することができる。学習コンポーネント202は、明示的または暗黙的に、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の資源に関連する1つもしくは複数の特徴または情報あるいはその両方を学習することに関して学習を行うことができる。一態様では、学習コンポーネント202は、人工知能の原理に関連付けられた分類、相関関係、推論または表現あるいはこれらの組合せに基づいて、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の資源に関連する1つもしくは複数の特徴または情報あるいはその両方を学習することができる。例えば、学習コンポーネント202は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の資源に関連する1つもしくは複数の特徴または情報を学習するために、自動分類システムまたは自動分類プロセスあるいはその両方を採用することができる。一例では、学習コンポーネント202は、クラウド・ベースのコンピューティング・プラットフォーム114に関する推論の学習または生成あるいはその両方のために、確率論的解析または統計的解析あるいはその両方を(例えば解析の有用度とコストとを考慮に入れて)採用することができる。一態様では、学習コンポーネント202は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の資源に関連する1つもしくは複数の特徴または情報あるいはその両方を学習するために、部分的に推論に基づく方法を使用して学習コンポーネント202の自動化態様をさらに強化することができる、推論コンポーネント(図示せず)を含むことができる。
【0032】
学習コンポーネント202は、任意の適切な機械学習に基づく技法、統計に基づく技法、または確率論に基づく技法あるいはこれらの組合せを採用することができる。例えば、学習コンポーネント202は、エキスパート・システム、ファジー理論、SVM、隠れマルコフ・モデル(HMM)、欲張り検索アルゴリズム、ルール・ベース・システム、ベイズ・モデル(例えばベイズ・ネットワーク)、ニューラル・ネットワーク、その他の非線形トレーニング技法、データ・フュージョン、有用性ベースの解析システム、ベイズ・モデルを使用したシステムなどを採用することができる。別の態様では、学習コンポーネント202は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の資源に関連する1つもしくは複数の特徴または情報あるいはその両方を学習することに関連付けられた1組の機械学習計算を行うことができる。例えば、学習コンポーネント202は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の資源に関する1つもしくは複数の特徴または情報あるいはその両方を学習するために、1組のクラスタリング機械学習計算、1組のロジスティック回帰学習計算、1組の決定木機械学習計算、1組のランダム・フォレスト機械学習計算、1組の回帰ツリー機械学習計算、1組の最小二乗機械学習計算、1組のインスタンス・ベースの機械学習計算、1組の回帰機械学習計算、1組のサポート・ベクター回帰機械学習計算、1組のk平均機械学習計算、1組のスペクトラル・クラスタリング機械学習計算、1組のルール学習機械学習計算、1組のベイズ機械学習計算、1組のディープ・ボルツマン機械計算、1組のディープ・ビリーフ・ネットワーク計算、または1組の異なる機械学習計算、あるいはこれらの組合せを実行することができる。特定の実施形態では、学習コンポーネント202を採用して、ブループリント・レベル・アスペクトの1つまたは複数のパラメータを学習するために1つまたは複数のブループリント・レベル・アスペクトにある程度の不規則変動を適用することができる。例えば、学習コンポーネント202は、クラウド・ベースのコンピューティング・プラットフォーム114のワークロード・パフォーマンスをモニタリングするために、モニタリング・アスペクト・パラメータ、アラーム・アスペクト・パラメータ、ロード・バランシング・アスペクト・パラメータ、または別のアスペクト・パラメータあるいはこれらの組合せに変更を加えることができる。したがって、学習コンポーネント202は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントの1つまたは複数のアスペクト・パラメータの学習または修正あるいはその両方を行うことができる。一実施形態では、学習コンポーネント202は、1つまたは複数のブループリント・レベル・アスペクトの不規則変動の量を動的に変更または制御あるいはその両方を行うことができる。別の実施形態では、学習コンポーネント202は、第1の資源に関連付けられた推定リスク・レベル、第2の資源を使用する推定利益(例えば、コスト、パフォーマンス、セキュリティ、信頼性、堅牢性、ビジネス・インパクトなど)などに基づいて、ブループリント内の第1の資源を第2の資源に変更することができる。一例では、第1の資源に関連付けられた推定リスク・レベルは、スカラ値とすることができる。別の例では、第1の資源に関連付けられた推定リスク値は、多次元ベクトルとすることができる。さらに別の例では、第1の資源に関連付けられた推定リスク・レベルは、信頼値を含むことができる。また、ブループリント内の資源のブループリント・レベル・アスペクトの内容に基づいて、ブループリント内の第1の資源を第2の資源に変更することもできる。
【0033】
図3に、本明細書に記載の1つまたは複数の実施形態による、例示の非限定的なシステム300のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【0034】
システム300は、クラウド・ベースのコンピューティング・プラットフォーム114を含む。クラウド・ベースのコンピューティング・プラットフォーム114に基づいてブループリント302を生成することができる。一実施形態では、ブループリント302は、クラウド・ベースのコンピューティング・プラットフォーム114によって提供可能である。別の実施形態では、ブループリント302は、クラウド・ベースのコンピューティング・プラットフォーム114を解析することによって生成可能である。ブループリント302は、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源を宣言するテンプレートまたはパターンとすることができる。ブループリント302は、クラウド・ベースのコンピューティング・プラットフォーム114のために作成されるコンピューティング資源の種類またはプロパティを記述することもできる。一態様では、ブループリント302は、クラウド・ベースのコンピューティング・プラットフォーム114から可読テキスト・ファイルとしてエクスポートすることができる。別の態様では、ブループリント302は、機械可読形式および人間可読形式でフォーマットすることができる。例えば、ブループリント302は、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源の機械可読表現および人間可読表現とすることができる。一例では、ブループリント302は、データ・シリアル化言語に関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。別の例では、ブループリント302は、データ配列言語に関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。さらに別の例では、ブループリント302は、自動ドキュメンテーションに関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。別の態様では、ブループリント302は、クラウド・ベースのコンピューティング・プラットフォーム114の1つもしくは複数の属性またはクラウド・ベースのコンピューティング・プラットフォーム114の1つもしくは複数の設定あるいはその両方を記述することができる。これに加えて、またはこれに代えて、ブループリント302は、クラウド・ベースのコンピューティング・プラットフォーム114の1組の相互に関係するクラウド資源を記述することができる。
【0035】
ブループリント302は、1つまたは複数のブループリント・レベル・アスペクト304を含むことができる。1つまたは複数のブループリント・レベル・アスペクト304は、ブループリント302内の1つまたは複数の資源定義のために指定することができる。例えば、1つまたは複数のブループリント・レベル・アスペクト304は、ブループリント302で記述されている1つまたは複数の資源に関連付けられた1つもしくは複数の特徴または1つもしくは複数の品質あるいはその両方の記述とすることができる。資源定義は、クラウド・ベースのコンピューティング・プラットフォーム114のための資源定義とすることができる。あるいは、1つまたは複数のブループリント・レベル・アスペクト304をブループリント302の全体の部分について指定することができる。一実施形態では、1つまたは複数のブループリント・レベル・アスペクト304は、1つまたは複数の資源定義のための符号化データを含むことができる。例えば、1つまたは複数のブループリント・レベル・アスペクト304は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた、例えばサービス・レベル・アグリーメント・データ、ソフトウェア・データ、配備環境データ、コスト・データ、セキュリティ・データ、応答時間データ、依存関係データ、デッドライン・データ、記述データ、ベンチマーク・データ、維持管理者データ、またはその他のデータ、あるいはこれらの組合せなどの符号化データを含むことができる。
【0036】
1つまたは複数のブループリント・レベル・アスペクト304は、ブループリント302内のプロパティまたは資源に作用し、変更し、または追加あるいはこれらの組合せを行うことができる。ブループリント302内のプロパティまたは資源は、例えば、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた情報に基づく、固有環境、モニタリング機能、アラート機能または自動スケーリング機能あるいはこれらの組合せを含むことができる。一実施形態では、1つまたは複数のブループリント・レベル・アスペクト304は、モニタリング・アスペクトを含むことができる。モニタリング・アスペクトは、例えば、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたメトリクスの収集または追跡あるいはその両方を行い、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたログ・ファイルの収集またはモニタリングあるいはその両方を行い、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数のアラームを設定し、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた変更に自動的に反応し、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数のその他のモニタリング機能を容易にし、あるいはこれらの組合せを行うことができる。一例では、モニタリング・アスペクトのためのデータは、クラウド・ベースのコンピューティング・プラットフォーム114のために採用されるアプリケーション・パフォーマンス・モニタリング・ツールに関連付けることができる。これに加えて、またはこれに代えて、1つまたは複数のブループリント・レベル・アスペクト304は、通知アスペクトを含むことができる。通知アスペクトは、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたアラーム構成を追跡し、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の統計値にアクセスし、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたメトリクスを収集し、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたメトリック・データのために1つまたは複数のアラームを設定し、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の傾向を特定し、クラウド・ベースのコンピューティング・プラットフォーム114の状態に基づいて自動化アクションを促し、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数のその他の通知機能を促し、あるいはこれらの組合せを行うことができる。これに加えて、またはこれに代えて、1つまたは複数のブループリント・レベル・アスペクト304は自動スケーリング・アスペクトを含むことができる。自動スケーリング・アスペクトは、クラウド・ベースのコンピューティング・プラットフォーム114のスケジュールに基づくスケーリング、またはクラウド・ベースのコンピューティング・プラットフォーム114の資源に基づくスケーリング、あるいはその両方を容易にすることができる。スケジュールに基づくスケーリングは、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたデータ・トラフィックの予測増加に関連付けることができる。資源に基づくスケジュールは、クラウド・ベースのコンピューティング・プラットフォーム114によって提供されるデータの応答時間基準に関連付けることができる。一態様では、クラウド・ベースのコンピューティング・プラットフォーム114は、クラウド・ベースのコンピューティング・プラットフォーム114のための、同一サーバの自動スケール・グループ、または開始(Launch)構成によって定義されたロード・バランサ、あるいはその両方を含むことができる。一例では、自動スケール・グループは、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた負荷、またはクラウド・ベースのコンピューティング・プラットフォーム114による、観察された処理利用率、あるいはその両方に応答して修正することができる。これに加えて、またはこれに代えて、1つまたは複数のブループリント・レベル・アスペクト304はロード・バランシング・アスペクトを含むことができる。ロード・バランシング・アスペクトは、クラウド・ベースのコンピューティング・プラットフォーム114によりトラフィック負荷の分散を管理することができる。ロード・バランシング・アスペクトは、クラウド・ベースのコンピューティング・プラットフォーム114により1つもしくは複数のサーバ・ノードのトラフィックまたは資源使用あるいはその両方を管理することもできる。
【0037】
図4に、本明細書に記載の1つまたは複数の実施形態による、例示の非限定的なシステム400のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明を省く。
【0038】
システム400はオーケストレーション・エンジン・コンポーネント102を含む。オーケストレーション・エンジン・コンポーネント102は、1つまたは複数のブループリント・レベル・アスペクト304を含むブループリント302を受け取ることができる。このブループリント302に含まれる1つまたは複数のブループリント・レベル・アスペクト304に基づいて、オーケストレーション・エンジン・コンポーネント102は資源定義のセット402を生成することができる。例えば、オーケストレーション・エンジン・コンポーネント102は、ブループリント302から1つまたは複数のブループリント・レベル・アスペクト304を抽出することができる。また、オーケストレーション・エンジン・コンポーネント102は、資源定義のセット402を生成するために1つまたは複数のブループリント・レベル・アスペクト304を解析することができる。資源定義のセット402は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つもしくは複数の資源、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つもしくは複数のプロパティあるいはその両方の、1つまたは複数の定義を含むことができる。一態様では、資源定義のセット402は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた、モニタリング、自動スケーリング、ロード・バランシング、イベント管理、またはパーシステンスあるいはこれらの組合せを容易にするための1つまたは複数の定義を含むことができる。一実施形態では、資源定義のセット402は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたハードウェアのための1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたソフトウェアのための1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つもしくは複数の仮想マシンのための1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたストレージのための1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたミドルウェアのための1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた別の資源のための1つもしくは複数の定義、あるいはこれらの組合せを含むことができる。一例では、資源定義のセット402は、クラウド・ベースのコンピューティング・プラットフォーム114のためのプロセッサの数またはプロセッサの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、資源定義のセット402は、クラウド・ベースのコンピューティング・プラットフォーム114のためのメモリ容量またはメモリの種類を含むことができる。これに加えて、またはこれに代えて、資源定義のセット402は、クラウド・ベースのコンピューティング・プラットフォーム114のネットワーク速度を含むことができる。ただし、資源定義のセット402は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたその他の資源の定義を含むことができることを理解されたい。
【0039】
図5に、本明細書に記載の1つまたは複数の実施形態による、例示の非限定的なシステム500のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【0040】
システム500は、オーケストレーション・エンジン・コンポーネント102を含む。オーケストレーション・エンジン・コンポーネント102は、オーケストレーション・エンジン・コンポーネント102によって生成された資源定義のセット402を採用してブループリント302を修正することができる。例えば、オーケストレーション・エンジン・コンポーネント102は、クラウド・ベースのコンピューティング・プラットフォーム114のための修正ブループリント502を生成することができる。修正ブループリント502は、ブループリント302の修正版とすることができる。修正ブループリント502は、1つまたは複数のブループリント・レベル・アスペクト304と資源定義のセット402とを含むことができる。例えば、オーケストレーション・エンジン・コンポーネント102は、1つまたは複数のブループリント・レベル・アスペクト304と資源定義のセット402とを含む修正ブループリント502の生成を容易にするために、資源定義のセット402をブループリント302に挿入することができる。一態様では、資源定義のセット402に含まれる情報に基づいて、修正ブループリント502内の資源プロパティの1つまたは複数の部分をオートコンプリートすることができる。例えば、資源定義のセット402に含まれる情報に基づいて、修正ブループリント502内の資源プロパティの1つまたは複数の部分の追加、更新または削除あるいはこれらの組合せを行うことができる。
【0041】
図6に、本明細書に記載の1つまたは複数の実施形態による、例示の非限定的なシステム600のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【0042】
システム600は、クラウド・ベースのコンピューティング・プラットフォーム114を含む。一実施形態では、1つまたは複数のブループリント・レベル・アスペクト304を含む修正ブループリント502および資源定義のセット402をクラウド・ベースのコンピューティング・プラットフォーム114によって採用することができる。一実施形態では、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたハードウェアまたはソフトウェアあるいはその両方のための最適実行経路を判断するために、クラウド・ベースのコンピューティング・プラットフォーム114によって修正ブループリント502を採用することができる。特定の実施形態では、クラウド・ベースのコンピューティング・プラットフォーム114による修正ブループリント502の採用を容易にするために、修正ブループリント502をクラウド・ベースのコンピューティング・プラットフォーム114に送信することができる。したがって、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源要件を、クラウド・ベースのコンピューティング・プラットフォーム114のためのハードウェア・プロパティまたはソフトウェア・プロパティあるいはその両方に変換することができる。例えば、クラウド・ベースのコンピューティング・プラットフォーム114のオペレーティング・システム要件、メモリ要件、処理要件またはその他の要件あるいはこれらの組合せを効率的に判断することができる。また、クラウド・ベースのコンピューティング・プラットフォーム114の効率またはパフォーマンスあるいはその両方を向上させることができる。例えば、クラウド・ベースのコンピューティング・プラットフォーム114に含まれるハードウェアまたはソフトウェアあるいはその両方の効率またはパフォーマンスあるいはその両方を向上させることができる。
【0043】
図7に、本明細書に記載の1つまたは複数の実施形態による、例示の非限定的なシステム700のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【0044】
システム700はブループリント702を含む。ブループリント702は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたブループリントとすることができる。また、ブループリント702は、オーケストレーション・エンジン・コンポーネント102によって採用されるブループリントとすることができる。例えば、ブループリント702は、ブループリント302に対応し得る。ブループリント702は、クラウド・ベースのコンピューティング・プラットフォーム114のために作成する1つまたは複数の資源を定義することができる。ブループリント702は、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数の資源間の関係または依存関係あるいはその両方を定義することができる。例えば、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたストレージが、クラウド・ベースのコンピューティング・プラットフォーム114の仮想マシンとの関連付けを必要とすることがあり、それによってストレージのための依存関係を作成する必要がある場合がある。クラウド・ベースのコンピューティング・プラットフォーム114の資源間の依存関係は、正しい順序での1つまたは複数の資源の作成を容易にすることができる。また、1つまたは複数の資源にブループリント702内で一意に命名することができる。ブループリント702内の資源は、定義された値に明示的に設定されるプロパティ値を含むことができる。これに加えて、またはこれに代えて、ブループリント702内の資源は、ブループリント702内の異なる資源からのプロパティの参照を介して暗黙的に設定されるプロパティ値を含むことができる。これに加えて、またはこれに代えて、ブループリント702内の資源は、ブループリント702への入力パラメータへの参照を介して暗黙的に設定されるプロパティ値を含むことができる。一実施形態では、ブループリント702はネストされたデータ構造とすることができる。また、ブループリント702は、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数の他のブループリントとデータを交換することができる。
【0045】
一実施形態では、ブループリント702は、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源を宣言するテンプレートまたはパターンとすることができる。ブループリント702は、クラウド・ベースのコンピューティング・プラットフォーム114のために作成されるコンピューティング資源の種類またはコンピューティング資源のプロパティを記述することもできる。一態様では、ブループリント702は、可読テキスト・ファイルとしてクラウド・ベースのコンピューティング・プラットフォーム114からエクスポートすることができる。別の態様では、ブループリント702は、機械可読形式および人間可読形式でフォーマットすることができる。例えば、ブループリント702は、クラウド・ベースのコンピューティング・プラットフォーム114のための1つまたは複数のコンピューティング資源の機械可読テキスト表現および人間可読テキスト表現とすることができる。一例では、ブループリント702は、データ・シリアル化言語に関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。別の例では、ブループリント702は、データ配列言語に関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。さらに別の例では、ブループリント702は、自動ドキュメンテーションに関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。
【0046】
ブループリント702は、修正ブループリント704に変換することができる。修正ブループリント704は、オーケストレーション・エンジン・コンポーネント102によって生成された修正ブループリントとすることができる。例えば、修正ブループリント704は修正ブループリント502に対応し得る。修正ブループリント704は、ブループリント702と新規情報706とからの情報を含み得る。新規情報706は、例えば、オーケストレーション・エンジン・コンポーネント102によって生成された資源定義のセット(例えば資源定義のセット402)に関連付けられた情報とすることができる。例えば、新規情報706は、ブループリント702に含まれる1つまたは複数のブループリント・レベル・アスペクトに基づいて動的に追加されるクラウド・ベースのコンピューティング・プラットフォーム114のためのプロパティのセットとすることができる。
【0047】
一実施形態では、新規情報706は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたハードウェアの1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたソフトウェアの1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つもしくは複数の仮想マシンの1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたストレージの1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたミドルウェアの1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた別の資源の1つもしくは複数の定義、あるいはこれらの組合せを含むことができる。非限定的な例では、新規情報706は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた領域を含むことができる。これに加えて、またはこれに代えて、新規情報706は、クラウド・ベースのコンピューティング・プラットフォーム114のためのプロセッサの数またはプロセッサの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、新規情報706は、クラウド・ベースのコンピューティング・プラットフォーム114のためのメモリ容量またはメモリの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、新規情報706は、クラウド・ベースのコンピューティング・プラットフォーム114のネットワーク速度を含むことができる。ただし、新規情報706は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の他の資源の定義を含み得ることを理解されたい。
【0048】
図8に、本明細書に記載の1つまたは複数の実施形態による、例示の非限定的なシステム800のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【0049】
システム800は、ブループリント702と修正ブループリント802とを含む。ブループリント702は、修正ブループリント802に変換することができる。修正ブループリント802は、オーケストレーション・エンジン・コンポーネント102によって生成された修正ブループリント802とすることができる。例えば、修正ブループリント802は、修正ブループリント502に対応し得る。修正ブループリント802は、ブループリント702と新規情報804とからの情報を含むことができる。新規情報804は、例えば、オーケストレーション・エンジン・コンポーネント102によって生成された資源定義のセット(例えば資源定義のセット402)に関連付けられた情報とすることができる。例えば、新規情報804は、ブループリント702に含まれる1つまたは複数のブループリント・レベル・アスペクトに基づいて動的に追加される、クラウド・ベースのコンピューティング・プラットフォーム114の資源定義のセットおよびプロパティのセットとすることができる。
【0050】
一実施形態では、新規情報804は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたハードウェアの1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたソフトウェアの1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つもしくは複数の仮想マシンの1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたストレージの1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたミドルウェアの1つもしくは複数の定義、またはクラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた別の資源の1つもしくは複数の定義、あるいはこれらの組合せを含むことができる。非限定的な例では、新規情報804は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた領域を含むことができる。これに加えて、またはこれに代えて、新規情報804はクラウド・ベースのコンピューティング・プラットフォーム114のためのプロセッサの数またはプロセッサの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、新規情報804は、クラウド・ベースのコンピューティング・プラットフォーム114のためのメモリ容量またはメモリの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、新規情報804は、クラウド・ベースのコンピューティング・プラットフォーム114のネットワーク速度を含むことができる。新規情報804は、これに加えて、またはこれに代えて、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられたストレージ(例えばデータベース)の資源定義および対応するプロパティを含むことができる。ただし、新規情報804は、クラウド・ベースのコンピューティング・プラットフォーム114に関連付けられた1つまたは複数の他の資源のための定義も含み得ることを理解されたい。
【0051】
図9に、本明細書に記載の1つまたは複数の実施形態による、ハイブリッド・クラウド構成のためのオーケストレーション・エンジンのブループリント・アスペクトを簡便にする例示の非限定的なコンピュータ実装方法の流れ図を示す。902で、プロセッサに動作可能に結合されたシステムによって(例えばコンピューティング資源コンポーネント104によって)、クラウド・ベースのコンピューティング・プラットフォームの1つまたは複数のコンピューティング資源のための情報に関連付けられたブループリントから1つまたは複数のブループリント・レベル・アスペクトが特定される。ブループリントは、例えば、クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数のコンピューティング資源を宣言するテンプレートまたはパターンとすることができる。ブループリントは、クラウド・ベースのコンピューティング・プラットフォームのために作成されるコンピューティング資源の種類またはコンピューティング資源のプロパティあるいはその両方を記述することもできる。一態様では、ブループリントは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた1つまたは複数のコンピューティング資源の機械可読表現および人間可読表現とすることができる。一例では、ブループリントは、データ・シリアル化言語に関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。別の例では、ブループリントは、データ配列言語に関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。さらに別の例では、ブループリントは、自動ドキュメンテーションに関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。1つまたは複数のブループリント・レベル・アスペクトは、クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数のコンピューティング資源に関連付けられた1つまたは複数の特徴のための符号化情報を示すことができる。1つまたは複数のブループリント・レベル・アスペクト内の符号化データは、例えば、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた、サービス・レベル・アグリーメント・データ、ソフトウェア・データ、配備環境データ、コスト・データ、セキュリティ・データ、応答時間データ、依存関係データ、デッドライン・データ、記述データ、またはベンチマーク・データ、または維持管理者データ、またはその他のデータあるいはこれらの組合せを含むことができる。一実施形態では、1つまたは複数のブループリント・レベル・アスペクトは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた履歴データに基づいて特定することができる。
【0052】
904で、システム(例えばブループリント・コンポーネント106)によって、1つまたは複数のブループリント・レベル・アスペクトに基づいてクラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットが生成される。資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた、モニタリング、自動スケーリング、ロード・バランシング、イベント管理、またはパーシステンス、あるいはこれらの組合せを容易にする、1つまたは複数の定義を含むことができる。一態様では、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたハードウェア、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたソフトウェア、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた仮想マシン、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたストレージ、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたミドルウェア、またはクラウド・ベースのコンピューティング・プラットフォームに関連付けられた別の資源、あるいはこれらの組合せの、1つまたは複数の定義を含むことができる。一例では、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォームのためのプロセッサの数またはプロセッサの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォームのためのメモリ容量またはメモリの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォームのネットワーク速度を含むことができる。
【0053】
906で、他のブループリント・レベル・アスペクトが特定されるか否かが判断される。特定される場合、コンピュータ実装方法900は資源定義のセットを更新するために904に戻る。特定されない場合、コンピュータ実装方法900は908に進む。
【0054】
908で、システム(例えばハイブリッド・クラウド構成コンポーネント108)によって資源定義のセットに基づいてブループリントが修正される。例えば、資源定義のセットをブループリントに挿入することができる。一実施形態では、資源定義のセットに基づいて、ブループリント内の資源定義部を修正することができる。例えば、資源定義のセットに基づいて、ブループリント内の資源定義部の作成、更新、構成、または削除あるいはこれらの組合せを行うことができる。特定の実施形態では、コンピュータ実装方法900は、システムによって、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた1つまたは複数の特徴を学習するために、1つまたは複数のブループリント・レベル・アスペクトに基づいて、クラウド・ベースのコンピューティング・プラットフォームをモニタリングすることも含むことができる。
【0055】
図10に、本明細書に記載の1つまたは複数の実施形態による、ハイブリッド・クラウド構成のためのオーケストレーション・エンジン・ブループリント・アスペクトを簡便にする例示の非限定的なシステム1000の流れ図を示す。1002で、クラウド・ベースのコンピューティング・プラットフォームの1つまたは複数のコンピューティング資源のための情報に関連付けられた1つまたは複数のブループリント・レベル・アスペクトが、プロセッサに動作可能に結合されたシステムによって(例えば学習コンポーネント202によって)、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた履歴データに基づいて学習される。1つまたは複数のブループリント・レベル・アスペクトは、クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数のコンピューティング資源に関連付けられた1つまたは複数の特徴のための符号化情報を示すことができる。1つまたは複数のブループリント・レベル・アスペクト内の符号化データは、例えば、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた、サービス・レベル・アグリーメント・データ、ソフトウェア・データ、配備環境データ、コスト・データ、セキュリティ・データ、応答時間データ、依存関係データ、デッドライン・データ、記述データ、ベンチマーク・データ、維持管理者データ、またはその他のデータあるいはこれらの組合せを含むことができる。一実施形態では、履歴データは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた以前に判断されたパフォーマンス・データ、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたコンピューティング資源のための以前に判断された情報、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた以前に判断された特徴、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた、前に判断されたブループリント・レベル・アスペクトに関する情報、またはクラウド・ベースのコンピューティング・プラットフォームに関連付けられたその他の履歴データあるいはこれらの組合せを含むことができる。
【0056】
1004で、システムによって(例えばブループリント・コンポーネント106によって)、1つまたは複数のブループリント・レベル・アスペクトに基づいてクラウド・ベースのコンピューティング・プラットフォームのための資源定義のセットが生成される。資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた、モニタリング、自動スケーリング、ロード・バランシング、イベント管理、またはパーシステンスあるいはこれらの組合せを容易にするための1つまたは複数の定義を含むことができる。一態様では、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたハードウェア、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたソフトウェア、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた仮想マシン、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたストレージ、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたミドルウェア、またはクラウド・ベースのコンピューティング・プラットフォームに関連付けられた別の資源あるいはこれらの組合せのための、1つまたは複数の定義を含むことができる。一例では、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォームのためのプロセッサの数またはプロセッサの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォームのためのメモリ容量またはメモリの種類あるいはその両方を含むことができる。これに加えて、またはこれに代えて、資源定義のセットは、クラウド・ベースのコンピューティング・プラットフォームのネットワーク速度を含むことができる。
【0057】
1006で、別のブループリント・レベル・アスペクトが特定されるか否かが判断される。特定される場合、コンピュータ実装方法1000は資源定義のセットを更新するために1004に戻る。特定されない場合、コンピュータ実装方法1000は1008に進む。
【0058】
1008で、クラウド・ベースのコンピューティング・プラットフォームに関連付けられたブループリントが、システムによって(例えばハイブリッド・クラウド構成コンポーネント108によって)、資源定義のセットに基づいて修正される。例えば、資源定義のセットに関連付けられたデータをブループリントに挿入することができる。ブループリントは、例えば、クラウド・ベースのコンピューティング・プラットフォームのための1つまたは複数のコンピューティング資源を宣言するテンプレートまたはパターンとすることができる。ブループリントは、クラウド・ベースのコンピューティング・プラットフォームのために作成されるコンピューティング資源の種類またはコンピューティング資源のプロパティあるいはその両方を記述することもできる。一態様では、ブループリントは、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた1つまたは複数のコンピューティング資源の機械可読表現および人間可読表現とすることができる。一実施形態では、ブループリントは、データ・シリアル化言語に関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。別の例では、ブループリントは、データ配列言語に関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。さらに別の例では、ブループリントは、自動ドキュメンテーションに関連付けられた機械可読形式および人間可読形式でフォーマットすることができる。一実施形態では、ブループリント内の資源定義部は、資源定義のセットに基づいて修正することができる。例えば、資源定義のセットに基づいてブループリント内の資源定義部の作成、更新、構成または削除あるいはこれらの組合せを行うことができる。特定の実施形態では、コンピュータ実装方法1000は、システムによって、クラウド・ベースのコンピューティング・プラットフォームに関連付けられた1つまたは複数の特徴を学習するために、1つまたは複数のブループリント・レベル・アスペクトに基づいてクラウド・ベースのコンピューティング・プラットフォームをモニタリングすることも含むことができる。
【0059】
説明を簡単にするために、コンピュータ実装方法について、一連の動作として図示し、説明している。本主題の革新的技術は、例示されている動作によって、または動作の順序あるいはその両方によって限定されず、例えば動作は様々な順序で、または並行して、あるいはその組合せで行われてもよく、本明細書で提示も記載もされていない他の動作とともに行われてもよいことを理解されたい。また、開示されている主題によるコンピュータ実装方法を実装するために、例示されているすべての動作が必要ではない場合がある。さらに、当業者は、コンピュータ実装方法は、代わりに状態遷移図またはイベントにより、一連の相互に関連する状態として表すこともできることが理解でき、わかるであろう。さらに、以下および本明細書全体を通して開示されているコンピュータ実装方法は、そのようなコンピュータ実装方法をコンピュータに伝送および移送するのを容易にするために製造品に記憶できることを理解されたい。本明細書で使用する製造品という用語は、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータ・プログラムを包含することが意図されている。
【0060】
また、少なくとも、資源定義のセットを生成することは、電気的および機械的コンポーネントおよび回路との組合せから成立するため、人間は、本明細書で開示されているオーケストレーション・エンジン・コンポーネント102(例えばコンピューティング資源コンポーネント104、ブループリント・コンポーネント106、ハイブリッド・クラウド構成コンポーネント108、または学習コンポーネント202、あるいはそれらの組合せ)によって実行される処理を再現または実行することはできない。例えば、人間は、1つまたは複数のブループリント・レベル・アスペクトに基づいて資源定義のセットを生成することはできず、人間は資源定義のセットに基づいてブループリントを修正することができない、などである。
【0061】
開示の主題の様々な態様に状況を与えるため、
図11および以下の説明は、開示の主題の様々な態様を実装可能な適切な環境の概要を示すことを意図している。
図11は、本明細書に記載の1つまたは複数の実施形態を容易にすることができる例示の非限定的な動作環境のブロック図を示す。簡潔にするために、本明細書に記載の他の実施形態で採用されている同様の要素の繰り返しの説明は省く。
【0062】
図11を参照すると、本開示の様々な態様を実装するのに適した動作環境1100は、コンピュータ1112も含むことができる。コンピュータ1112は、処理ユニット1114と、システム・メモリ1116と、システム・バス1118も含むことができる。システム・バス1118は、システム・メモリ1116を含むがこれには限定されないシステム・コンポーネントを処理ユニット1114に結合する。処理ユニット1114は、様々な利用可能なプロセッサのいずれかとすることができる。処理ユニット1114として、デュアル・マイクロプロセッサおよびその他のマルチプロセッサ・アーキテクチャも採用することができる。システム・バス1118は、業界標準アーキテクチャ(Industry Standard Architecture(ISA))、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture(MCA))、拡張ISA(EISA)、インテリジェント・ドライブ・エレクトロニクス(Intelligent Drive Electronics(IDE))、VESAローカル・バス(VLB)、ペリフェラル・コンポーネント・インターコネクト(Peripheral Component Interconnect(PCI))バス、カード・バス、ユニバーサル・シリアル・バス(USB)、アドバンスト・グラフィックス・ポート(Advanced Graphics Port(AGP))、Firewire(IEEE1394)、およびスモール・コンピュータ・システム・インターフェース(SCSI)を含むがこれらには限定されない任意の様々な利用可能なバス・アーキテクチャを使用する、メモリ・バスまたはメモリ・コントローラ、周辺機器用バスまたは外部バス、またはローカル・バスあるいはこれらの組合せを含む、いくつかの種類のバス構造のうちのいずれかとすることができる。
【0063】
システム・メモリ1116は、揮発性メモリ1120と不揮発性メモリ1122も含むことができる。起動時などにコンピュータ1112内の要素間で情報を伝送するための基本ルーチンを含むベーシック・インプット/アウトプット・システム(BIOS)が、不揮発性メモリ1122に記憶される。コンピュータ1112は、取り外し可能/取り外し不能な揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。
図11は、例えば、ディスク・ストレージ1124を示している。ディスク・ストレージ1124は、磁気ディスク・ドライブ、フロッピィ・ディスク・ドライブ、テープ・ドライブ、Jazドライブ、Zipドライブ、LS-100ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティックなどのデバイスも含み得るが、これらには限定されない。ディスク・ストレージ1124は、他の記憶媒体とは別個に、または他の記憶媒体と組み合わせて記憶媒体を含むこともできる。システム・バス1118へのディスク・ストレージ1124の接続を容易にするために、典型的には、インターフェース1126などの取り外し可能または取り外し不能なインターフェースが使用される。
図11は、ユーザと、適切な動作環境1100内に記載されている基本コンピュータ資源との間に介在するものとしての役割を果たすソフトウェアも図示している。このようなソフトウェアは、例えば、オペレーティング・システム1128も含み得る。オペレーティング・システム1128は、ディスク・ストレージ1124に記憶することができ、コンピュータ1112の資源を制御し、割り当てる役割を果たす。
【0064】
システム・アプリケーション1130は、例えばシステム・メモリ1116またはディスク・ストレージ1124のいずれかに記憶されているプログラム・モジュール1132およびプログラム・データ1134を介してオペレーティング・システム1128による資源の管理を利用する。本開示は、様々なオペレーティング・システムまたはオペレーティング・システムの組合せとともに実装可能であることを理解されたい。ユーザが入力デバイス1136を介してコンピュータ1112にコマンドまたは情報を入力する。入力デバイス1136は、ポインティング・デバイス、例えばマウス、トラック・ボール、スタイラス、タッチ・パッド、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星放送受信アンテナ、スキャナ、TVチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含むがこれらには限定されない。上記およびその他の入力デバイスは、インターフェース・ポート1138を介してシステム・バス1118により処理ユニット1114に接続する。インターフェース・ポート1138は、例えば、シリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)を含む。出力デバイス1140は、入力デバイス1136と同じ種類のポートのうちのいくつかを使用する。したがって、コンピュータ1112に入力を提供し、コンピュータ1112から出力デバイス1140に情報を出力するために、例えばUSBポートを使用することができる。モニタ、スピーカ、およびプリンタなどのいくつかの出力デバイス1140があることを例示するために出力アダプタ1142が示されているが、このように専用のアダプタを必要とする出力デバイス1140は他にもある。出力アダプタ1142には、例示であって限定的ではないが、出力デバイス1140とシステム・バス1118との間に接続の手段を提供するビデオ・カードおよびサウンド・カードが含まれる。リモート・コンピュータ1144などの他のデバイスまたはデバイスのシステムあるいはその両方も、入力機能と出力機能の両方を提供することに留意されたい。
【0065】
コンピュータ1112は、リモート・コンピュータ1144などの1つまたは複数のリモート・コンピュータへの論理接続を使用して、ネットワーク化環境で動作することができる。リモート・コンピュータ1144は、コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサ使用機器、ピア・デバイスまたはその他の一般的なネットワーク・ノードなどとすることができ、典型的には、コンピュータ1112に関連して説明した要素の多くまたはすべても含み得る。簡潔にするために、リモート・コンピュータ1144とともにメモリ・ストレージ・デバイス1146のみが図示されている。リモート・コンピュータ1144は、ネットワーク・インターフェース1148を介してコンピュータ1112に論理的に接続され、次に、通信接続部1150を介して物理的に接続される。ネットワーク・インターフェース1148は、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、セルラ・ネットワークなどの、有線または無線あるいはその両方の通信ネットワークに対応する。LAN技術は、ファイバ分散データ・インターフェース(FDDI)、銅線分散データ・インターフェース(CDDI)、Ethernet(R)、トークン・リングなどを含む。WAN技術は、ポイント・ツー・ポイント・リンク、統合サービス・デジタル通信網(ISDN)およびその変形、パケット交換網、ならびにデジタル加入者回線(DSL)などの回線交換ネットワークを含むがこれらには限定されない。通信接続部1150とは、ネットワーク・インターフェース1148をシステム・バス1118に接続するために採用されるハードウェア/ソフトウェアを指す。通信接続部1150は、説明を明確にするためにコンピュータ1112内部に示されているが、コンピュータ1112の外部にあってもよい。ネットワーク・インターフェース1148への接続のためのハードウェア/ソフトウェアは、例示に過ぎないが、通常の電話級モデム、ケーブル・モデム、およびDSLモデムを含むモデム、ISDNアダプタ、およびEthernet(R)カードなどの内蔵および外付け技術も含み得る。
【0066】
次に
図12を参照すると、例示のクラウド・コンピューティング環境1250が図示されている。図のように、クラウド・コンピューティング環境1250は、例えばパーソナル・デジタル・アシスタント(PDA)または携帯電話1254A、デスクトップ・コンピュータ1254B、ラップトップ・コンピュータ1254C、または自動車コンピュータ・システム1254Nあるいはこれらの組合せなど、クラウド消費者によって使用されるローカル・コンピューティング・デバイスが通信することができる、1つまたは複数のクラウド・コンピューティング・ノード1210を含む。ノード1210は互いに通信することができる。ノードは、上述のプライベート・クラウド、コミュニティ・クラウド、パブリック・クラウドまたはハイブリッド・クラウドあるいはこれらの組合せなどの1つまたは複数のネットワークにおいて物理的または仮想的にグループ化(図示せず)されてもよい。これによって、クラウド・コンピューティング環境1250は、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはこれらの組合せを、クラウド消費者がそのためにローカル・コンピューティング・デバイス上で資源を維持する必要がないサービスとして提供することができる。なお、
図12に示すコンピューティング・デバイス1254Aないし1254Nの種類は、例示を意図したものに過ぎず、コンピューティング・ノード1210およびクラウド・コンピューティング環境1250は、(例えばウェブ・ブラウザを使用して)任意の種類のネットワーク接続またはネットワーク・アドレス指定可能接続あるいはその両方を介して、任意の種類のコンピュータ化デバイスと通信することができるものと理解される。
【0067】
次に、
図13を参照すると、クラウド・コンピューティング環境1250(
図12)によって提供される1組の機能抽象化層が示されている。なお、
図13に示すコンポーネント、層および機能は、例示のみを意図したものであり、本発明の実施形態はこれらには限定されないことを前もって理解されたい。図のように、以下の層および対応する機能が提供される。
【0068】
ハードウェアおよびソフトウェア層1360は、ハードウェア・コンポーネントとソフトウェア・コンポーネントとを含む。ハードウェア・コンポーネントの例としては、メインフレーム1361、縮小命令セットコンピュータ(Reduced Instruction Set Computer(RISC))アーキテクチャ・ベースのサーバ1362、サーバ1363、ブレード・サーバ1364、ストレージ・デバイス1365、およびネットワークおよびネットワーキング・コンポーネント1366がある。実施形態によっては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1367およびデータベース・ソフトウェア1368を含む。
【0069】
仮想化層1370は、以下のような仮想実体の例を与えることができる抽象化層を提供する。すなわち、仮想サーバ1371と、仮想ストレージ1372と、仮想プライベート・ネットワークを含む仮想ネットワーク1373と、仮想アプリケーションおよびオペレーティング・システム1374と、仮想クライアント1375である。
【0070】
一例では、管理層1380は、以下に記載の機能を提供することができる。資源プロビジョニング1381は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング資源およびその他の資源の動的調達を行う。メータリングおよびプライシング1382は、クラウド・コンピューティング環境内で資源が利用されるときのコスト追跡と、これらの資源の消費に対する対価の請求またはインボイス処理を行う。一例ではこれらの資源にはアプリケーション・ソフトウェア・ライセンスが含まれてもよい。セキュリティは、クラウド消費者およびタスクのための本人検証と、データおよびその他の資源の保護とを行う。ユーザ・ポータル1383は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理1384は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング資源割り当ておよび管理を行う。サービス・レベル・アグリーメント(Service Level Agreement(SLA))計画および履行1385は、SLAに従って将来の要求が予想されるクラウド・コンピューティング資源のための事前取り決めおよび調達を行う。
【0071】
ワークロード層1390は、クラウド・コンピューティング環境を利用することができる機能の例を提供する。この層から提供することができるワークロードおよび機能の非限定的な例には、マッピングおよびナビゲーション1391、ソフトウェア開発およびライフサイクル管理1392、仮想教室教育配信1393、データ分析処理1394、トランザクション処理1395、およびオーケストレーション・エンジン・プロセス・ソフトウェア1396が含まれる。
【0072】
本発明は、任意の可能な技術詳細度の統合でのシステム、方法、装置、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体(または複数の媒体)を含み得る。コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものも含み得る。すなわち、可搬コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適切な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を伝播する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、または電線を介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
【0073】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含み得る。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラム言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でもしくは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータを、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができるか、または接続を、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行うことができる。実施形態によっては、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0074】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書に説明されている。フローチャート図またはブロック図あるいはその両方の各ブロックおよび、フローチャート図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることが理解されよう。これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作を実装する手段を形成するように、汎用コンピュータ、特殊目的コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに供給されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはこれらの組合せに対して特定の方式で機能するように指示することができるものであってもよい。コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置またはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックで規定されている機能/動作を実装するように、コンピュータ実装プロセスを生成するようにするために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされ、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作を実行させるものであってもよい。
【0075】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。なお、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことがある。ある別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行する特殊目的ハードウェア・ベースのシステムによって実装可能であるか、または特殊目的ハードウェアとコンピュータ命令との組合せとして機能するかまたは実施することができることも理解されよう。
【0076】
主題について、コンピュータまたは複数のコンピュータ上で稼働するコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的文脈で上述したが、当業者は、本開示が他のプログラム・モジュールと組み合わせて実装できることも理解するものとなる。一般に、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ・タイプを実装するかあるいはその両方を行う、ルーチン、プログラム、コンポーネント、データ構造などを含む。また、当業者は、本発明のコンピュータ実装方法が、シングル・プロセッサまたはマルチプロセッサ・コンピュータ・システム、ミニコンピューティング・デバイス、メインフレーム・コンピュータを含む他のコンピュータ・システム構成、およびコンピュータ、ハンドヘルド・コンピューティング・デバイス(例えばPDA、電話)、マイクロプロセッサ・ベースまたはプログラマブル消費者向けまたは産業用電子機器などでも実装可能であることを理解するものとなる。例示の態様は、通信ネットワークによって接続されたリモート処理デバイスによってタスクが実行される分散コンピューティング環境でも実装可能である。ただし、本開示の全部の態様ではないが一部の態様は、スタンドアロン・コンピュータ上で実装可能である。分散コンピューティング環境では、プログラム・モジュールは、ローカル・メモリ・ストレージ・デバイスとリモート・ストレージ・デバイスの両方に配置可能である。
【0077】
本願で使用する際に、「コンポーネント」、「システム」、「プラットフォーム」、「インターフェース」などの用語は、コンピュータ関連実体、または1つもしくは複数の特定の機能を備えた実働マシンに関連する実体を指すか、または含み得るか、あるいはその両方である。本明細書で開示されている実体は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行時のソフトウェアとすることができる。例えば、コンポーネントは、プロセッサ上で稼働するプロセス、プロセッサ、オブジェクト、実行ファイル、実行のスレッド、プログラム、またはコンピュータあるいはこれらの組合せのいずれかとすることができるが、これには限定されない。例として、サーバ上で稼働するアプリケーションとサーバの両方がコンポーネントであり得る。1つまたは複数のコンポーネントが、プロセスまたは実行のスレッドあるいはその両方内にあってよく、コンポーネントを1つのコンピュータ上に局在させるか、または2つ以上のコンピュータに分散させるかあるいはその両方を行うことができる。別の例では、それぞれのコンポーネントは、様々なデータ構造が記憶されている様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータ・パケット(例えば、ローカル・システム、分散システムにおける別のコンポーネントと対話するか、またはインターネットなどのネットワークを通して信号を介して他のシステムと対話するか、あるいはその両方を行う1つのコンポーネントからのデータ)を有する信号に従うなど、ローカル・プロセスまたはリモート・プロセスあるいはその両方を介して通信することができる。別の例として、コンポーネントは、プロセッサによって実行されるソフトウェア・アプリケーションまたはファームウェア・アプリケーションによって動作させられる電気回路または電子回路によって動作させられる機械的部品によって提供される特定の機能を備えた装置とすることができる。そのような場合、プロセッサは、その装置の内部または外部にあってよく、ソフトウェア・アプリケーションまたはファームウェア・アプリケーションの少なくとも一部を実行することができる。さらに別の例として、コンポーネントは、機械的部品のない電子コンポーネントを介して特定の機能を提供する装置とすることができ、電子コンポーネントは、電子コンポーネントの機能を少なくとも部分的に与えるソフトウェアまたはファームウェアを実行するプロセッサまたはその他の手段を含み得る。一態様では、コンポーネントは、例えばクラウド・コンピューティング・システム内の仮想マシンを介して電子コンポーネントをエミュレートすることができる。
【0078】
また、「または」という用語は、排他的な「または」ではなく包含的な「または」を意味することを意図している。すなわち、特に明記しない限り、または文脈から明らかでない限り、「XはAまたはBを採用する」は自然な包含的置換のいずれも意味することを意図している。すなわち、XがAを採用するか、XがBを採用するか、またはXがAとBの両方を採用する場合、「XはAまたはBを採用する」は上記の場合のいずれにおいても満たされる。また、本明細書および添付図面で使用する冠詞「a」および「an」は、一般に、特に明記されているかまたは文脈から単数形が指示されていることが明らかでない限り、「1つまたは複数」を意味するものと解釈するべきである。本明細書で使用する際に、「例」または「例示の」あるいはその両方の用語は、例、事例または例示となることを意味するために使用されている。誤解を避けるために、本明細書で開示されている主題は、このような例によって限定されない。さらに、本明細書に「例」または「例示の」あるいはその両方として記載されているいずれの態様または設計も、必ずしも他の態様または設計よりも好ましいかまたは有利であるものと解釈すべきではなく、当業者に知られている同等の例示の構造および技術を排除することも意味していない。
【0079】
本明細書で採用される際に、「プロセッサ」という用語は、シングルコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を備えたシングル・プロセッサ、マルチコア・プロセッサ、ソフトウェア・マルチスレッド実行機能を備えたマルチコア・プロセッサ、ハードウェア・マルチスレッド技術を備えたマルチコア・プロセッサ、パラレル・プラットフォーム、および分散共用メモリを備えたパラレル・プラットフォームを含むがこれらには限定されない、実質的にあらゆるコンピューティング処理ユニットまたはデバイスを指し得る。また、プロセッサは、本明細書に記載の機能を実行するように設計された、集積回路、特定用途向け集積回路(application specific integrated circuit(ASIC))、デジタル・シグナル・プロセッサ(digital signal processor(DSP))、フィールド・プログラマブル・ゲート・アレイ(field programmable gate array(FPGA))、プログラマブル・ロジック・コントローラ(programmable logic controller(PLC))、コンプレックス・プログラマブル・ロジック・デバイス(complex programmable logic device(CPLD))、ディスクリート・ゲートもしくはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、またはこれらの任意の組合せを指し得る。また、プロセッサは、ユーザ機器の空間利用を最適化するため、またはパフォーマンスを向上させるために、分子および量子ドット・ベースのトランジスタ、スイッチ、ならびにゲートなどであるがこれらには限定されないナノスケール・アーキテクチャを利用することができる。プロセッサは、コンピューティング処理ユニットの組合せとして実装することもできる。本開示では、「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、およびコンポーネントの動作および機能に関連する実質的にあらゆるその他の情報記憶コンポーネントなどの用語を使用して、「メモリ・コンポーネント」、「メモリ」において具現化される実体、またはメモリを含むコンポーネントを指す。本明細書に記載のメモリまたはメモリ・コンポーネントあるいはその両方は、揮発性メモリもしくは不揮発性メモリのいずれかとすることができ、または揮発性と不揮発性の両方のメモリを含み得ることを理解するべきである。例として、限定的ではなく、不揮発性メモリは、読み取り専用メモリ(ROM)、プログラマブルROM(programmable ROM(PROM))、電気的プログラマブルROM(electrically programmable ROM(EPROM))、電気的消去可能ROM(electrically erasable ROM(EEPROM))、フラッシュ・メモリ、不揮発性ランダム・アクセス・メモリ(RAM)(例えば強誘電RAM(FeRAM))を含み得る。揮発性メモリは、例えば外部キャッシュ・メモリとして機能することができるRAMを含み得る。例として、限定的ではなく、RAMは、同期RAM(synchronous RAM(SRAM))、ダイナミックRAM(dynamic RAM(DRAM))、同期DRAM(synchronous DRAM(SDRAM))、ダブル・データ・レートSDRAM(double data rate SDRAM(DDR SDRAM))、エンハンストSDRAM(enhanced SDRAM(ESDRAM))、シンクリンクDRAM(Synchlink DRAM(SLDRAM))、ダイレクトRambus RAM(DRRAM)、ダイレクトRambusダイナミックRAM(DRDRAM)、およびRambusダイナミックRAM(RDRAM)などの多くの形態で入手可能である。また、本明細書のシステムまたはコンピュータ実装方法の開示のメモリ・コンポーネントは、上記および任意のその他の適切な種類のメモリを含むことを意図しているが、これらを含むことには限定されない。
【0080】
上記に記載の内容は、システムおよびコンピュータ実装方法の例を含むに過ぎない。当然ながら、本開示を説明するためにコンポーネントまたはコンピュータ実装方法の考えられるあらゆる組合せを記載することは不可能であるが、当業者には、本開示の多くの他の組合せおよび置換が可能であることを認識することができる。また、詳細な説明、特許請求の範囲、添付書類、および図面で「含む(includes)」、「有する(has)」、「保有する(possesses)」などの用語が使用されている限りにおいて、これらの用語は、「含む(comprising)」という用語が請求項で移行語として採用されている場合に解釈される「含む(comprising)」と同様に包含的であることを意図している。
【0081】
本発明の様々な実施形態の説明を例示のために示したが、これらは網羅的であること、または開示されている実施形態に限定することを意図したものではない。記載されている実施形態の範囲および趣旨から逸脱することなく、多くの変更および変形が当業者には明らかとなる。本明細書で使用されている用語は、実施形態の原理、実際の適用、または市場に見られる技術に優る技術的改良を最もよく説明するために、あるいは当業者が本明細書で開示されている実施形態を理解することができるように選定された。