(57)【要約】【課題】セキュア・プロセッサ・ベースのエンクレーブを使用して１つまたは複数のソフトウェア定義制御機能、または計算ノードを含むハイパーコンバージド・クラウドのようなクラウド環境内の構成要素を保護する。【解決手段】１つまたは複数のセキュア・エンクレーブは、環境内でインスタンス化される。ＮＦＶベースの制御プレーン構成要素のような制御プレーンは、セキュア・エンクレーブ内でホストされ、セキュア・エンクレーブ自体がインスタンス化され仮想化またはコンテナ化され得る。制御プレーンは関連するデータ・プレーンを有し、その構成要素は１つまたは複数の計算ノードにまたがる。１つまたは複数のＡＰＩが制御プレーンと、セキュア・エンクレーブの外部に配置された様々なデータ・プレーン構成要素との間の接続性を提供する。ＮＦＶベースの制御プレーンは、ＡＰＩを通じて構成情報（例えば、ルーティング・テーブル）を分散されたデータ・プレーンに提供する。メモリ内ワークロード保護を用いて制御プレーンを安全にホストすることによって、本アプローチは、ロード時の整合性を保証し、例えば権限のある攻撃者またはその他のシステム・プロセスによる、セキュリティ侵害からリアルタイムに保護する。【選択図】図５
2021500669.tif 000002
【特許請求の範囲】
【請求項１】
セキュア・プロセッサ・ベースのクラウド・コンピューティング環境において情報を保護するための方法であって、
前記セキュア・プロセッサ・ベースのクラウド・コンピューティング環境内にセキュア・エンクレーブをインスタンス化することと、
前記クラウド・コンピューティング環境内で高い権限レベルで実行する１つまたは複数のプロセスから制御プレーンが保護されるように、前記セキュア・エンクレーブ内で、ソフトウェア定義機能の制御プレーンをホストすることであって、前記制御プレーンが、前記セキュア・エンクレーブの外部に配置された、関連するデータ・プレーンを有する、前記ホストすることと、
前記セキュア・エンクレーブ内の前記制御プレーンと、前記セキュア・エンクレーブの外部に配置された前記データ・プレーンとの間に接続性を提供することと、
前記セキュア・エンクレーブ内から前記ソフトウェア定義機能の前記制御プレーンを実行することと
を含む、方法。
【請求項２】
前記セキュア・エンクレーブが、仮想マシンおよびコンテナのうちの１つの中でインスタンス化される、請求項１に記載の方法。
【請求項３】
前記ソフトウェア定義機能が、前記セキュア・エンクレーブ内の仮想マシンまたはコンテナとしてインスタンス化される、請求項１に記載の方法。
【請求項４】
前記ソフトウェア定義機能が、ネットワーク機能、ストレージ機能、電力機能、ならびに、仮想マシンおよびコンテナのオーケストレーション機能のうちの１つの仮想機能である、請求項１に記載の方法。
【請求項５】
前記ネットワーク機能が、ルータ、スイッチ、ファイアウォール、およびロード・バランサのうちの１つである、請求項４に記載の方法。
【請求項６】
前記ソフトウェア定義機能の前記制御プレーンのロード時における前記セキュア・エンクレーブの整合性を検証することをさらに含む、請求項１に記載の方法。
【請求項７】
外部化されたアプリケーション・プログラミング・インタフェース（ＡＰＩ）を介して接続性が提供される、請求項１に記載の方法。
【請求項８】
前記ソフトウェア定義機能の前記制御プレーンによって生成された制御データが、前記ＡＰＩを介して前記データ・プレーンに渡され、ソフトウェア定義ネットワーク（ＳＤＮ）内の安全なネットワーク機能仮想化（ＮＦＶ）を促進する、ルーティング・テーブルを含む、請求項７に記載の方法。
【請求項９】
セキュア・プロセッサ・ベースのクラウド・コンピューティング環境において情報を保護するための装置であって、
１つまたは複数のハードウェア・プロセッサと、
前記ハードウェア・プロセッサによって実行されるコンピュータ・プログラム命令を保持するコンピュータ・メモリと
を含み、前記コンピュータ・プログラム命令が、
前記セキュア・プロセッサ・ベースのクラウド・コンピューティング環境内にセキュア・エンクレーブをインスタンス化することと、
前記クラウド・コンピューティング環境内で高い権限レベルで実行するプロセスから制御プレーンが保護されるように、前記セキュア・エンクレーブ内でソフトウェア定義機能の制御プレーンをホストすることであって、前記制御プレーンが、前記セキュア・エンクレーブの外部に配置された、関連するデータ・プレーンを有する、前記ホストすることと、
前記セキュア・エンクレーブ内の前記制御プレーンと、前記セキュア・エンクレーブの外部に配置された前記データ・プレーンとの間に接続性を提供することと、
前記セキュア・エンクレーブ内から前記ソフトウェア定義機能の前記制御プレーンを実行することと
を行うように構成される、装置。
【請求項１０】
前記セキュア・エンクレーブが、仮想マシンおよびコンテナのうちの１つの中でインスタンス化される、請求項９に記載の装置。
【請求項１１】
前記ソフトウェア定義機能が、前記セキュア・エンクレーブ内の仮想マシンまたはコンテナとしてインスタンス化される、請求項９に記載の装置。
【請求項１２】
前記ソフトウェア定義機能が、ネットワーク機能、ストレージ機能、電力機能、ならびに、仮想マシンおよびコンテナのオーケストレーション機能のうちの１つの仮想機能である、請求項９に記載の装置。
【請求項１３】
前記ネットワーク機能が、ルータ、スイッチ、ファイアウォール、およびロード・バランサのうちの１つである、請求項１２に記載の装置。
【請求項１４】
前記コンピュータ・プログラム命令が、前記ソフトウェア定義機能の前記制御プレーンのロード時における前記セキュア・エンクレーブの整合性を検証するように、さらに構成される、請求項９に記載の装置。
【請求項１５】
接続性を提供するように構成された前記コンピュータ・プログラム命令が、１つまたは複数の外部化されたアプリケーション・プログラミング・インタフェース（ＡＰＩ）である、請求項９に記載の装置。
【請求項１６】
前記ソフトウェア定義機能の前記制御プレーンによって生成された制御データが、前記ＡＰＩを介して前記データ・プレーンに渡され、ソフトウェア定義ネットワーク（ＳＤＮ）内の安全なネットワーク機能仮想化（ＮＦＶ）を促進する、ルーティング・テーブルを含む、請求項１５に記載の装置。
【請求項１７】
セキュア・プロセッサ・ベースのクラウド・コンピューティング環境内で情報を保護するために、データ処理システム内で使用するための、非一過性のコンピュータ可読媒体中のコンピュータ・プログラム製品であって、
前記コンピュータ・プログラム製品が、前記データ処理システム内で実行されるコンピュータ・プログラム命令を保持し、前記コンピュータ・プログラム命令が、
前記セキュア・プロセッサ・ベースのクラウド・コンピューティング環境内にセキュア・エンクレーブをインスタンス化することと、
前記クラウド・コンピューティング環境内で高い権限レベルで実行するプロセスから前記制御プレーンが保護されるように、前記セキュア・エンクレーブ内でソフトウェア定義機能の制御プレーンをホストすることであって、前記制御プレーンが、前記セキュア・エンクレーブの外に配置された関連するデータ・プレーンを有する、前記ホストすることと、
前記セキュア・エンクレーブ内の前記制御プレーンと、前記セキュア・エンクレーブの外に配置された前記データ・プレーンとの間の接続性を提供することと、
前記ソフトウェア定義機能の前記制御プレーンを前記セキュア・エンクレーブ内から実行することと
を行うように構成される、コンピュータ・プログラム製品。
【請求項１８】
前記セキュア・エンクレーブが、仮想マシン、および、コンテナのうちの１つの中でインスタンス化される、請求項１７に記載のコンピュータ・プログラム製品。
【請求項１９】
前記ソフトウェア定義機能が、前記セキュア・エンクレーブ内部の仮想マシンまたはコンテナとしてインスタンス化される、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２０】
前記ソフトウェア定義機能が、ネットワーク機能、ストレージ機能、電力機能、ならびに、仮想マシンおよびコンテナのオーケストレーション機能のうちの１つの仮想機能である、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２１】
前記ネットワーク機能が、ルータ、スイッチ、ファイアウォール、およびロード・バランサのうちの１つである、請求項２０に記載のコンピュータ・プログラム製品。
【請求項２２】
前記コンピュータ・プログラム命令が、前記ソフトウェア定義機能の前記制御プレーンのロード時における前記セキュア・エンクレーブの整合性を検証するように、さらに構成される、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２３】
接続性を提供するように構成された前記コンピュータ・プログラム命令が、１つまたは複数の外部化されたアプリケーション・プログラミング・インタフェース（ＡＰＩ）である、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２４】
前記ソフトウェア定義機能の前記制御プレーンによって生成された制御データが、前記ＡＰＩを介して前記データ・プレーンに渡され、ソフトウェア定義ネットワーク（ＳＤＮ）内の安全なネットワーク機能仮想化（ＮＦＶ）を促進する、ルーティング・テーブルを含む、請求項２３に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、データセンタ動作環境におけるデータ処理システムに関する。
【背景技術】
【０００２】
クラウド・コンピューティングは、良く知られた情報技術（ＩＴ）の提供モデルであり、これによって、共有リソース、ソフトウェア、および情報が、インターネットを介して、コンピュータおよびその他のデバイスにオン・デマンドで提供される。クラウド・コンピューティングは、ＩＴコストと複雑さを大幅に軽減し、同時に、ワークロード最適化とサービス提供を改善する。クラウド計算リソースは、通常、大規模なサーバ・ファーム内に収容され、サーバ・ファームは、典型的に、仮想化アーキテクチャを用いて１つまたは複数のネットワーク・アプリケーションを実行し、これらのアプリケーションは、仮想サーバ、または、いわゆる「仮想マシン」（ＶＭ）の内部で動作し、データセンタ施設内の物理サーバにマッピングされる。仮想マシンは、通常、物理リソースを仮想マシンに割り当てる制御プログラムであるハイパーバイザ上で稼働する。
【０００３】
クラウド・コンピューティング環境では、サーバ、ストレージ・デバイスなどの複数のＩＴコンポーネントを、単一のコンピューティング・パッケージにグループ化し、いわゆるコンバージド・インフラストラクチャを作ることもよく知られている。近年は、全ての構成要素が仮想化される、完全にソフトウェア定義されたインフラストラクチャである、ハイパーコンバージド・インフラストラクチャ（ＨＣＩ）を提供する考え方がより拡大している。これらのハイパーコンバージド・ソリューションは、オン・プレミスのインフラストラクチャを、仮想化および自動化の機能と併せて用いることで、パブリック・クラウドのような経験を可能とする。これらは、モジューラ式で拡張可能なビルディング・ブロックによる、高信頼ストレージ、高速ネットワーク、拡張性、および極めて強力なコンピューティングの組合せを提供する。必要に応じて、ノードを追加することにより、容易にクラスタを拡張することができる。この種の市販ソリューションであるＩＢＭ（Ｒ）  Ｈｙｐｅｒｃｏｎｖｅｒｇｅｄ  Ｓｙｓｔｅｍｓ  ｐｏｗｅｒｅｄ  ｂｙ  Ｎｕｔａｎｉｘは、Ｎｕｔａｎｉｘ  Ｅｎｔｅｒｐｒｉｓｅ  Ｃｌｏｕｄ  Ｐｌａｔｆｏｒｍのソフトウェアと、ＩＢＭ（Ｒ）  Ｐｏｗｅｒ  Ｓｙｓｔｅｍｓとを組み合わせたハイパーコンバージド・インフラストラクチャ（ＨＣＩ）・ソリューションである。この統合ソリューションは、管理し易く、簡単に拡張できるインフラストラクチャを用いた、トランザクション分析およびコグニティブ分析のワークロードの需要をターゲットとしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第８５７８１７５号
【特許文献２】米国特許第８９５４７５２号
【非特許文献】
【０００５】
【非特許文献１】"Draft NIST Working Definition of Cloud Computing", Peter Mell and Tim Grance, October 7, 2009
【発明の概要】
【発明が解決しようとする課題】
【０００６】
現在のハイパーコンバージド・クラウド（hyperconverged cloud）・ソリューションでは、ネットワークは、ソフトウェアによって定義され、ネットワーク機能仮想化（ＮＦＶ：Network Function Virtualization）制御プレーン機能の形態を取り、特定のハードウェアに紐づかずに、冗長化された高い可用性を有する仮想化またはコンテナ化された構成要素として動作する。これらは、基本的なルーティング／スイッチ制御プレーン機能、ロード・バランシング、ファイアウォール、または、次世代ファイアウォールなどのより複雑な上位レイヤのネットワーク機能、あるいは、それらの組合せから構成され得る。動作中、これらは、例えば共通ＡＰＩのセットを通じて、高度に分散されたデータ・プレーンに構成情報を提供する。しかし、現在のシステムでは、これらの重要機能は必ずしも、特段の整合性保証または権限のある攻撃（privileged attack）への耐性を伴って提供されるものではなく、したがって、権限のあるシステム・レベルの攻撃者またはセキュリティ侵害されたプロセスが、例えばネットワーク制御プレーン機能を攻撃することによって、システム規模のセキュリティ侵害または稼働停止を引き起こす危険性がある。
【０００７】
この課題を解決する必要性が残されている。
【課題を解決するための手段】
【０００８】
セキュア・プロセッサ・ベースのエンクレーブ（enclave）を使用して１つまたは複数のソフトウェア定義制御機能または、計算ノードを含むハイパーコンバージド・クラウドのようなクラウド環境内の構成要素を保護する。１つまたは複数のセキュア・エンクレーブは、当該環境内でインスタンス化される。ＮＦＶベースの制御プレーン構成要素のような制御プレーンは、セキュア・エンクレーブ内でホストされ、セキュア・エンクレーブ自体がインスタンス化され仮想化またはコンテナ化され得る。制御プレーンは関連するデータ・プレーンを有し、その構成要素は１つまたは複数の計算ノードにまたがる。１つまたは複数のＡＰＩが制御プレーンと、セキュア・エンクレーブの外部に配置された様々なデータ・プレーン構成要素との間の接続を提供する。ＮＦＶベースの制御プレーンは、ＡＰＩを通じて構成情報（例えば、ルーティング・テーブル）を分散されたデータ・プレーンに提供する。メモリ内ワークロード保護を用いて制御プレーンを安全にホストすることによって、本アプローチは、ロード時の整合性を保証し、例えば権限のある攻撃者または悪意あるその他のシステム・プロセスによる、セキュリティ侵害からリアルタイムに保護する。
【０００９】
上記に、本開示の主題に関連する特性の一部を概説した。これらの特性は、単に例示として解釈されるべきである。以下に説明するように、本開示の主題を異なる方法で適用することにより、または、本主題に変更を加えることにより、他の多くの有益な結果を得ることができる。
【００１０】
発明の主題およびその有利性をよく理解するため、添付の図面と併せて、以下の説明を参照する。
【図面の簡単な説明】
【００１１】
【図１】例示的な実施形態の態様例が実装され得る、分散されたデータ処理環境のブロック図の例である。
【図２】例示的な実施形態の態様例が実施され得る、データ処理システムのブロック図の例である。
【図３】本開示の主題が実装され得る、クラウド・コンピューティング・アーキテクチャの例を説明する図である。
【図４】ネットワーク・ベース・アプライアンスを使用して１つまたは複数のクラウド・ベースの提供物の配備を促進し得る、動作環境の例を説明する図である。
【図５】本開示の技術が実装される、ハイパーコンバージド・クラウド・インフラストラクチャを示す図である。
【図６】セキュア・プロセッサ・ベースのエンクレーブによるアプローチを用いて１つまたは複数の制御プレーン機能を保護する、典型的なソフトウェア定義ネットワークを示す図である。
【発明を実施するための形態】
【００１２】
ここで、図面、特に図１〜２を参照すると、本開示の例示的な実施形態が実装され得る、データ処理環境が例示されている。図１〜２は、例示に過ぎず、本開示の主題の態様または実施形態が実装され得る環境に関する限定を主張または含意することを意図しないことが理解されるべきである。本開示の主題の思想および範囲から逸脱することなく、図示された環境に対して多くの変更が加えられてよい。
【００１３】
クライアント−サーバ技術
ここで図面を参照すると、図１は、例示的な実施形態の態様が実装され得る、分散データ処理システムの例を示す図形表現である。分散データ処理システム１００は、例示的な実施形態の態様が実施され得る、コンピュータのネットワークを含むことができる。分散データ処理システム１００は、少なくとも１つのネットワーク１０２を含み、これが、分散データ処理システム１００内で互いに接続される様々なデバイスおよびコンピュータ間に通信リンクを提供するために使用される媒体となる。ネットワーク１０２は、有線通信リンク、無線通信リンク、または、光ファイバ・ケーブルなどの接続を含むことができる。
【００１４】
図示された例では、サーバ１０４およびサーバ１０６が、ストレージ・ユニット１０８と共にネットワーク１０２に接続されている。さらに、クライアント１１０、１１２、および１１４もまた、ネットワーク１０２に接続されている。これらのクライアント１１０、１１２、および１１４は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータなどでよい。図示された例では、サーバ１０４は、起動ファイル、オペレーティング・システム・イメージ、ならびにクライアント１１０、１１２、および１１４に対するアプリケーションなどのデータを提供する。図示された例では、クライアント１１０、１１２、および１１４は、サーバ１０４に対するクライアントである。分散データ処理システム１００は、図示されていない、さらなるサーバ、クライアント、およびその他のデバイスを含むことができる。
【００１５】
図示された例では、分散データ処理システム１００は、ネットワークおよびゲートウェイの世界規模の集合を表すネットワーク１０２を有するインターネットであり、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）の一連のプロトコルを使用して互いに通信する。インターネットの中心には、データおよびメッセージを転送する、数千もの商業、行政、教育、およびその他のコンピュータ・システムから成る、主要ノード間またはホスト・コンピュータ間の高速データ通信回線の基幹ネットワークがある。当然ながら、分散データ処理システム１００は、例えば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）などの、多くの異なる種類のネットワークを含むように実装することもできる。上述したように、図１は、例示を意図し、本開示の主題の異なる実施形態に対するアーキテクチャ上の限定を意図するものではなく、それ故に、図１に示した個々の構成要素は、本発明の例示的な実施形態が実装され得る環境について限定するものとみなすべきではない。
【００１６】
ここで図２を参照すると、例示的な実施形態の態様が実装され得る、データ処理システム例のブロック図が示されている。データ処理システム２００は、図１のクライアント１１０のようなコンピュータの一例であり、本開示の例示的な実施形態のプロセスを実装するコンピュータ使用可能なコードまたは命令がその中に配置され得る。
【００１７】
ここで図２を参照すると、例示的な実施形態が実装され得る、データ処理システムのブロック図が示されている。データ処理システム２００は、図１のサーバ１０４またはクライアント１１０のようなコンピュータの一例であり、例示的な実施形態について、プロセスを実装するコンピュータ使用可能なプログラム・コードまたは命令がその中に配置され得る。この具体的な実例では、データ処理システム２００は、通信ファブリック２０２を含み、プロセッサ・ユニット２０４、メモリ２０６、持続性ストレージ２０８、通信ユニット２１０、入出力（Ｉ／Ｏ）ユニット２１２、およびディスプレイ２１４の間の通信を提供する。
【００１８】
プロセッサ・ユニット２０４は、メモリ２０６にロードされ得る、ソフトウェアに対する命令を実行するように働く。プロセッサ・ユニット２０４は、個々の実装に応じて、１つまたは複数のプロセッサのセットか、または、マルチ・プロセッサのコアであってよい。さらに、プロセッサ・ユニット２０４は、主プロセッサが単一チップ上で副プロセッサと同居する、１つまたは複数の異種プロセッサ・システムを用いて実装され得る。別の具体的な実例のように、プロセッサ・ユニット２０４は、複数の同種プロセッサを含む、対称マルチ・プロセッサ（ＳＭＰ）・システムであってもよい。
【００１９】
メモリ２０６および持続性ストレージ２０８は、ストレージ・デバイスの例である。ストレージ・デバイスは、一時的、または持続的、あるいはその両方として情報を格納することができる何らかのハードウェアである。メモリ２０６は、これらの実例において、例えば、ランダム・アクセス・メモリまたはその他の何らかの適切な揮発性または不揮発性のストレージ・デバイスであってよい。持続性ストレージ２０８は、個々の実装に応じて、様々な形態を取ることができる。例えば、持続性ストレージ２０８は、１つまたは複数のコンポーネントまたはデバイスを含むことができる。例えば、持続性ストレージ２０８は、ハード・ドライブ、フラッシュ・メモリ、書き換え可能な光ディスク、書き換え可能な磁気テープ、または前記のうちのいくつかの組合せであってよい。持続性ストレージ２０８によって使用される媒体はまた、取り外し可能であってよい。例えば、取り外し可能なハード・ドライブが持続性ストレージ２０８に使用され得る。
【００２０】
通信ユニット２１０は、これらの実例では、他のデータ処理システムまたはデバイスとの通信を提供する。これらの実例では、通信ユニット２１０はネットワーク・インタフェース・カードである。通信ユニット２１０は、物理通信リンクおよび無線通信リンクのいずれか一方または両方を使用することで、通信を提供することができる。
【００２１】
入出力ユニット２１２は、データ処理システム２００に接続され得る他のデバイスとのデータの入出力を可能とする。例えば、入出力ユニット２１２は、キーボードおよびマウスを通じてユーザ入力のための接続を提供することができる。さらに、入出力ユニット２１２は、出力をプリンタに送信することができる。ディスプレイ２１４は、ユーザに情報を表示するメカニズムを提供する。
【００２２】
オペレーティング・システムおよびアプリケーションに対する命令、またはプログラムは、持続性ストレージ２０８に配置される。これらの命令は、プロセッサ・ユニット２０４によって実行するために、メモリ２０６にロードされ得る。メモリ２０６のようなメモリ内に配置され得る、コンピュータに実装された命令を用いて、異なる実施形態のプロセスがプロセッサ２０４によって実施され得る。これらの命令は、プログラム・コード、コンピュータ使用可能プログラム・コード、または、コンピュータ可読プログラム・コードと称され、プロセッサ・ユニット２０４内のプロセッサによって読み出され、実行され得る。異なる実施形態におけるプログラム・コードは、メモリ２０６または持続性ストレージ２０８のような、異なる物理的または有形のコンピュータ可読媒体上で具現化することができる。
【００２３】
プログラム・コード２１６は、選択的に取り外し可能なコンピュータ可読媒体２１８上に関数形式で配置され、プロセッサ・ユニット２０４による実行のために、データ処理システム２００にロードされるか、または転送され得る。プログラム・コード２１６およびコンピュータ可読媒体２１８は、これらの実例において、コンピュータ・プログラム製品２２０を形成する。１つの実例では、コンピュータ可読媒体２１８は、例えば、ドライブまたはその他のデバイスに挿入または配置される、光ディスクまたは磁気ディスクのような有形の形態であってよく、前記ドライブまたはその他のデバイスは、持続性ストレージ２０８の一部のハード・ドライブのような、ストレージ・デバイスに転送するためにある持続性ストレージ２０８の一部である。有形の形態において、コンピュータ可読媒体２１８はまた、データ処理システム２００に接続される、ハード・ドライブ、ＵＳＢメモリ（thumb drive）、または、フラッシュ・メモリのような、持続性ストレージの形態を取ることもできる。コンピュータ可読媒体２１８の有形の形態はまた、コンピュータ記録可能ストレージ媒体とも称される。いくつかの場合では、コンピュータ記録可能媒体２１８は取り外し可能でなくてもよい。
【００２４】
あるいは、プログラム・コード２１６は、通信ユニット２１０への通信リンクを介して、または、入出力ユニット２１２への接続を介して、あるいはその両方によって、コンピュータ可読媒体２１８からデータ処理システム２００に転送され得る。前記通信リンク、または前記接続、あるいはその両方は、具体的な実例において物理的または無線であってよい。コンピュータ可読媒体はまた、プログラム・コードを含む通信リンクまたは無線伝送のような無形媒体の形態であってもよい。データ処理システム２００について説明される別のコンポーネントは、別の実施形態が実装され得る方法に対して、アーキテクチャ上の限定を課すことを意味するものではない。別の例示的な実施形態は、データ処理システム２００について説明されたものに加えるか、または、置き換えられるコンポーネントを含むデータ処理システムにおいて実装され得る。図２のその他のコンポーネントは、図示された具体的な実例と異なってもよい。一例として、データ処理システム２００におけるストレージ・デバイスは、データを格納することができる任意のハードウェア装置である。メモリ２０６、持続性ストレージ２０８、およびコンピュータ可読媒体２１８は、有形の形態にあるストレージ・デバイスの例である。
【００２５】
別の実例では、バス・システムを用いて通信ファブリック２０２を実装してもよく、バス・システムは、システム・バスまたは入出力バスなどの、１つまたは複数のバスを含むことができる。当然ながら、バス・システムは、バス・システムに接続された異なるコンポーネント間または異なるデバイス間のデータ転送を提供する、任意の適切な種類のアーキテクチャを用いて実装され得る。さらに、通信ユニットは、モデムまたはネットワーク・アダプタなどの、データを伝送および受信するために使用される１つまたは複数のデバイスを含むことができる。さらに、メモリは、例えば、メモリ２０６または、通信ファブリック２０２内にあり得るインタフェースおよびメモリ・コントローラ・ハブに見られるようなキャッシュであってよい。
【００２６】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）（ＴＭ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋、Ｃ＃、Ｏｂｊｅｃｔｉｖｅ−Ｃなどのオブジェクト指向プログラミング言語および、従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで記述され得る。プログラム・コードは、全てユーザのコンピュータ上で実行するか、一部をユーザのコンピュータ上で実行するか、スタンド・アロンのソフトウェア・パッケージとして実行するか、一部をユーザのコンピュータ上で、一部をリモート・コンピュータ上で実行するか、または、全てリモート・コンピュータまたはリモート・サーバ上で実行することができる。後半のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または、この接続は、外部コンピュータに対して（例えば、インターネット・サービス・プロバイダを用いたインターネットを介して）確立されてもよい。
【００２７】
当業者は、図１〜２のハードウェアが実装に応じて異なってよいことを理解するであろう。フラッシュ・メモリ、同等の不揮発性メモリ、または、光ディスク・ドライブなどの、その他の内部ハードウェアまたは周辺デバイスが、図１〜２に示されたハードウェアに追加して、または置き換えて、使用されてよい。また、例示的な実施形態のプロセスは、本開示の主題の思想および範囲から逸脱することなく、前述したＳＭＰシステム以外に、マルチプロセッサ・データ処理システムにも適用することができる。
【００２８】
後述するように、本明細書に記載する技術は、図１に示すような標準的なクライアント−サーバのパラダイムと併せて動作することができ、このパラダイムでは、クライアント・マシンが、インターネットにアクセス可能な、１つまたは複数のマシンのセット上で実行するウェブ・ベースのポータルと通信する。エンド・ユーザは、前記ポータルにアクセスし、やり取りすることができる、インターネット接続可能なデバイス（例えば、デスクトップ・コンピュータ、ネットブック・コンピュータ、インターネット利用可能なモバイル・デバイスなど）を操作する。典型的に、各クライアントまたはサーバ・マシンは、図２に示すような、ハードウェアおよびソフトウェアを含むデータ処理システムであり、これらのエンティティが、インターネット、イントラネット、エクストラネット、プライベート・ネットワーク、またはその他の何らかの通信媒体もしくは通信リンクのようなネットワークを介して、互いに通信する。データ処理システムは、典型的に、１つまたは複数のプロセッサ、オペレーティング・システム、１つまたは複数のアプリケーション、および１つまたは複数のユーティリティを含む。データ処理システム上のアプリケーションは、中でもＨＴＴＰ、ＳＯＡＰ、ＸＭＬ、ＷＳＤＬ、ＵＤＤＩ、およびＷＳＦＬを含むがこれに限定されない、ウェブ・サービスへのネイティブ・サポートを提供する。ＳＯＡＰ、ＷＳＤＬ、ＩＤＤＩ、およびＷＳＦＬに関する情報は、これらの標準の開発および維持を担うワールド・ワイド・ウェブ・コンソーシアム（Ｗ３Ｃ）から入手可能であり、ＨＴＴＰおよびＸＭＬに関するさらなる情報は、インターネット・エンジニアリング・タスク・フォース（ＩＥＴＦ）から入手可能である。これらの標準を熟知しているものとみなす。
【００２９】
クラウド・コンピューティング・モデル
クラウド・コンピューティングは、設定可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、プロセッシング、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールに対する、便利で、オン・デマンドのネットワーク・アクセスを可能とするサービス提供モデルであり、これらのリソースは、最小限の管理労力またはサービスのプロバイダとの最小限のやり取りで、迅速にプロビジョニングされ、かつリリースされ得る。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つの配備モデルを含むが、それらのより詳細な説明は、"Draft NIST Working Definition of Cloud Computing", Peter Mell and Tim Grance, October 7, 2009に記載され、かつ明示されている。
【００３０】
特に、典型的な特徴を以下に示す。
オン・デマンドのセルフ・サービス：クラウド利用者は、一方的に、サーバ時間やネットワーク・ストレージなどのコンピューティング機能を、サービス・プロバイダとの人的相互作用を必要とせずに、必要に応じて、自動的にプロビジョニングすることができる。
広域ネットワーク・アクセス：ネットワークを介して機能を利用することができ、これらの機能が、異種のシン・クライアントまたはシック・クライアントのプラットフォーム（例えば、携帯電話、ラップトップ・コンピュータ、およびＰＤＡ）による利用を促進する、標準的なメカニズムを通じてアクセスされる。
リソース・プール：プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを使用する複数の利用者に提供するために、必要に応じて動的に割り当ておよび再割り当てされる、異なる物理リソースおよび仮想リソースを用いてプールされる。位置独立の概念があり、利用者は一般的に、提供されたリソースの正確な位置を知ることも制御することもないが、より高い抽象度での位置（例えば、国、州、またはデータセンタ）を特定することができてよい。
迅速な弾性：機能は、迅速に、かつ、弾性的に、場合によっては自動的に、素早くスケール・アウトし、かつ、迅速にリリースされ、素早くスケール・インするよう提供され得る。利用者には、プロビジョニング可能な機能は、しばしば、無制限に見え、任意の時に任意の量が購入され得る。
計測されたサービス：クラウド・システムは、サービス種別（例えば、ストレージ、プロセッシング、帯域幅、およびアクティブ・ユーザ・アカウント）に応じた抽象度における計測機能を活用することによって、リソース利用量を自動的に制御し、最適化する。リソース利用率は、モニタされ、制御され、かつ、レポートされ、利用サービスのプロバイダおよび利用者の両者に透明性を提供する。
【００３１】
典型的なサービス・モデルを以下に示す。
ソフトウェア・アズ・ア・サービス（ＳａａＳ）：利用者に提供される機能は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを利用することである。アプリケーションは、ウェブ・ブラウザ（例えば、ウェブ・ベースのｅメール）などのシン・クライアント・インタフェースを通じて様々なクライアント・デバイスからアクセス可能である。利用者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または、限られたユーザ特有のアプリケーション構成設定を除く、個々のアプリケーション機能をも含む、根底にあるクラウド・インフラストラクチャを管理または制御しない。
プラットフォーム・アズ・ア・サービス（ＰａａＳ）：利用者に提供される機能は、プロバイダがサポートするプログラミング言語またはツールを用いて作成された、利用者が作成または取得したアプリケーションをクラウド・インフラストラクチャ上に配備することである。利用者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、根底にあるクラウド・インフラストラクチャを管理または制御しないが、配備されたアプリケーションおよび、場合によっては環境構成をホストするアプリケーションを制御することができる。
インフラストラクチャ・アズ・ア・サービス（ＩａａＳ）：利用者に提供される機能は、プロセッシング、ストレージ、ネットワーク、およびその他の基本的なコンピューティング・リソースを提供することであり、利用者は、任意のソフトウェアを配備し、実行することができ、これはオペレーティング・システムおよびアプリケーションを含んでもよい。利用者は、根底にあるクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、配備されたアプリケーションについては制御することができ、場合によっては、ネットワーク・コンポーネント（例えば、ホストのファイアウォール）の選択について限定的な制御が可能である。
【００３２】
典型的な配備モデルを以下に示す。
プライベート・クラウド：クラウド・インフラストラクチャは、１つの組織のために単独で動作する。クラウドは、前記組織またはサード・パーティによって管理され得、オン・プレミスまたはオフ・プレミスに存在し得る。
コミュニティ・クラウド：クラウド・インフラストラクチャは、いくつかの組織によって共有され、共通の関心（例えば、任務、セキュリティ要件、ポリシ、およびコンプライアンスの考慮）を有する特定のコミュニティをサポートする。クラウドは、前記組織またはサード・パーティによって管理され得、オン・プレミスまたはオフ・プレミスに存在し得る。
パブリック・クラウド：クラウド・インフラストラクチャは、一般の利用者または大規模な業種グループが利用可能であり、クラウド・サービスを販売する組織が保有する。
ハイブリッド・クラウド：クラウド・インフラストラクチャは、２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の合成物であり、それらは、固有のエンティティを維持しながらも、データおよびアプリケーションの可搬性を実現する、標準化技術、または独自開発の技術（例えば、クラウド間のロード・バランシングのためのクラウド・バースティング）によって互いに結合している。
【００３３】
クラウド・コンピューティング環境は、無国籍、低結合（low coupling）、モジュール方式、および意味的相互運用性（semantic interoperability）に重点を置いたサービス指向型の環境である。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。典型的なクラウド・コンピューティング・ノードは、上記図２に示す通りである。特に、クラウド・コンピューティング・ノード内には、多数の他の汎用または特定用途のコンピューティング・システム環境または構成と共に動作する、コンピュータ・システム／サーバがある。コンピュータ・システム／サーバと共に使用するのに適した、よく知られたコンピューティング・システム、環境、または構成、あるいはそれらの組合せの例は、限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、携帯またはノート型デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能な電化製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、上記システムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などを含む。コンピュータ・システム／サーバは、コンピュータ・システムによって実行されるプログラム・モジュールなどの、コンピュータ・システムが実行可能な命令の一般的な文脈で説明され得る。一般的に、プログラム・モジュールは、特定のタスクを実行するか、または、特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含むことができる。コンピュータ・システム／サーバは、分散クラウド・コンピューティング環境内で実行され得、タスクは、通信ネットワークを介してリンクされるリモート処理デバイスによって実行される。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含む、ローカル・コンピュータ・システムおよびリモート・コンピュータ・システムのどちらのストレージ媒体にも配置され得る。
【００３４】
ここで図３を参照すると、さらなる背景として、クラウド・コンピューティング環境によって提供される機能的な抽象レイヤのセットが図示されている。図３に示すコンポーネント、レイヤ、および機能は、例示のみを意図しており、本発明の実施形態はこれに限定されないことを予め理解するべきである。図示したように、以下に説明するレイヤおよびそれに対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ３００は、ハードウェアおよびソフトウェアのコンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレームを含み、１つの例では、ＩＢＭ（Ｒ）ｚＳｅｒｉｅｓ（Ｒ）システム；ＲＩＳＣ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ）アーキテクチャ・ベースのサーバを含み、また１つの例では、ＩＢＭ  ｐＳｅｒｉｅｓ（Ｒ）システム；ＩＢＭ  ｘＳｅｒｉｅｓ（Ｒ）システム；ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（Ｒ）システム；ストレージ・デバイス；ネットワークおよびネットワーキング・コンポーネントを含む。ソフトウェア・コンポーネントの例は、ネットワーク・アプリケーション・サーバ・ソフトウェアを含み、１つの例では、ＩＢＭ  ＷｅｂＳｐｈｅｒｅ（Ｒ）アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェアを含み、また１つの例では、ＩＢＭ  ＤＢ２（Ｒ）データベース・ソフトウェアを含む。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅ、およびＤＢ２は、世界中の多くの司法権の下で登録された、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標である。）
仮想化レイヤ３０２は、仮想エンティティを提供することができる抽象レイヤを提供し、仮想エンティティの例として、仮想サーバ；仮想ストレージ；仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム；ならびに仮想クライアントが提供され得る。
【００３５】
１つの例では、管理レイヤ３０４は、以下に説明する機能を提供することができる。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために使用される、コンピューティング・リソースおよびその他のリソースの動的な調達を提供する。計測および課金は、クラウド・コンピューティング環境内でリソースが使用されることに伴うコスト追跡、および、これらのリソースの消費に対する課金または支払請求を提供する。１つの例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含んでよい。セキュリティは、クラウド利用者およびタスクの本人確認と、データおよびその他のリソースの保護とを提供する。ユーザ・ポータルは、利用者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、要求されるサービス・レベルを満たすようにクラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル・アグリーメント（ＳＬＡ）の計画および履行は、クラウド・コンピューティング・リソースの事前配置およびその調達を提供し、ＳＬＡに従って、前記リソースの将来的な要件が予測される。
【００３６】
ワークロード・レイヤ３０６は、クラウド・コンピューティング環境が使用され得る機能性の例を提供する。このレイヤが提供し得るワークロードおよび機能の例は、マッピングおよびナビゲーション；ソフトウェア開発およびライフサイクル管理；バーチャル・クラスルームの教育提供；データ分析処理；トランザクション処理；ならびにその他（例えば、プライベート・クラウドにおける企業特有の機能）を含む。
【００３７】
本開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書に詳述する教示の実装は、クラウド・コンピューティング環境に限定されるものではないことが予め理解される。むしろ、本発明の実施形態は、既知の、または今後開発される、他の種類のいずれのコンピューティング環境とも併せて実装され得る。
【００３８】
例えば、典型的なクラウド・コンピューティング環境は、フロント・エンドのアイデンティティ・マネージャ、ビジネス・サポート・サービス（ＢＳＳ）機能コンポーネント、操作支援サービス（ＯＳＳ）機能コンポーネント、および計算クラウド・コンポーネントを含む、高水準の機能性コンポーネントのセットを有する。アイデンティティ・マネージャは、クライアントにアイデンティティ管理を提供するよう要求する際のインタフェースを担い、このコンポーネントは、ニューヨーク州アーモンク市のＩＢＭ社から入手可能な、Ｔｉｖｏｌｉ  Ｆｅｄｅｒａｔｅｄ  Ｉｄｅｎｔｉｔｙ  Ｍａｎａｇｅｒ（ＴＦＩＭ）などの、１つまたは複数の既知のシステムと共に実装され得る。適切な場合に、ＴＦＩＭはフェデレーティッド・シングル・サイン・オン（Ｆ−ＳＳＯ）を他のクラウド・コンポーネントに提供するために使用され得る。ビジネス・サポート・サービス・コンポーネントは、課金サポートのような特定の管理機能を提供する。操作支援サービス・コンポーネントは、仮想マシン（ＶＭ）インスタンスなどの他のクラウド・コンポーネントのプロビジョニングおよび管理を提供するために使用される。仮想マシンは、ソフトウェア上にインストールされる、オペレーティング・システムまたはアプリケーション環境であって、ハードウェア・マシンを模倣する。クラウド・コンポーネントは、主要な計算リソースを表し、典型的には、クラウドを介してアクセス可能となるターゲット・アプリケーションを実行するために使用される、複数の仮想マシン・インスタンスである。１つまたは複数のデータベースは、ディレクトリ、ログ、およびその他の作業データを格納するために使用される。これらのコンポーネントの全て（フロント・エンド・アイデンティティ・マネージャを含む）は、クラウドの「内部」に配置されるが、これは必要条件ではない。別の実施形態では、アイデンティティ・マネージャは、クラウドの外部で動作してもよい。サービス・プロバイダもまた、クラウドの外部で動作してもよい。
【００３９】
一部のクラウドは、非従来型のＩＰネットワークに基づく。したがって、例えば、クラウドは、ＭＡＣアドレスのハッシュを用いた特別な単層ＩＰルーティングによる２階層ＣＬＯＳベースのネットワークに基づくことができる。本明細書に記載する技術は、このような非従来型のクラウドにおいても使用することができる。
【００４０】
近年利用可能なクラウド・ベースのサービスの大部分は、ベア・メタルまたは仮想マシン（ＶＭ）のいずれかを通じて提供されるが、「コンテナ」技術もまた、使用することができる。ベア・メタル環境では、アプリケーションは、専用のクラウド・インフラストラクチャおよびＯＳプラットフォームの基盤からインストールされ、実行され、提供される。このような環境は、専用の、かつ特定のハードウェアおよびオペレーティング・システム構成を使用する。仮想マシンは、これに対し、ホスト・システムの内部で実行する、完全なるゲスト・ホストである。仮想マシンが使用される場合、ハードウェア環境を仮想化するハイパーバイザの制御下において、アプリケーションがインストールされ、パッケージ化され、および実行される。一方、コンテナは、アプリケーションの基幹部分（クラウド・サービスと称されることがある）およびその従属部分のみを含む動作環境を提供し、Ｌｉｎｕｘなどのオペレーティング・システムの単一インスタンス内で複数のコンテナを実行することができる。Ｄｏｃｋｅｒは、単一のＬｉｎｕｘカーネルを全ての実行インスタンスと共有する仮想化プラットフォーム（コンテナと称する）である。単一のＤｏｃｋｅｒコンテナは、共有カーネル上で実行するため軽量であり、利用可能なリソースの使用を効率化する。コンテナは多くの次世代クラウドのプラットフォーム・アズ・ア・サービス（ＰａａＳ）開発者によって広く使用されている。したがって、例えば、ＩＢＭ（Ｒ）  Ｂｌｕｅｍｉｘ（ＴＭ）は、ＩＢＭ  Ｃｏｎｔａｉｎｅｒｓを使用してＤｏｃｋｅｒコンテナを実行するＰａａＳクラウド・プラットフォームであるが、これに限定されない。Ｄｏｃｋｅｒコンテナは既存のオペレーティング・システムおよび共有バイナリ上で実行するため、ＶＭよりもコンパクトであり、そのため、コンテナ・ソリューションはしばしば、より高速で、より少ないメモリ要件を有する。
【００４１】
図４は、ＶＭベースのリソース仮想化をサポートする典型的なＩＴインフラストラクチャを示し、後述する本開示の技術が、本インフラストラクチャの１つの実施形態において実装され得る。説明のため、共有（パブリック）リソースを提供するＩＴデータセンタを「プロバイダ」とし、これらの共有リソースを使用して、その（あらゆる形態の）データおよびアプリケーションをホスト、格納、および管理する顧客または企業を「サブスクライバ」（または、「顧客」もしくは「テナント」）とする。図４に、仮想マシンのホスティング環境（あるいは、本明細書ではデータセンタまたは「クラウド」と称する）の例が図示されている。この環境は、典型的に、ハイパーバイザ管理ＶＬＡＮ４０６を介して物理データセンタ・ネットワーク４０４に接続される、ホスト・マシン（ＨＶｓ）４０２（例えば、サーバまたは物理マシン・コンピューティング・デバイス）を含む。明示されてはいないが、典型的に、本環境はロード・バランサ、ネットワーク・データ・スイッチ（例えば、トップ・オブ・ラック・スイッチ）、ファイアウォールなども含む。図４に示すように、物理サーバ４０２はそれぞれ、仮想化技術を用いて１つまたは複数の仮想マシン（ＶＭ）４０８を動的に提供するように構成される。このような技術は、例えば、ＶＭｗａｒｅ（Ｒ）他から市販されている。サーバ仮想化は、当分野ではよく知られた技術である。図示したように、複数のＶＭが単一のホスト・マシンに配置され、ホスト・マシンのＣＰＵ、メモリ、およびその他のリソースを共有することができ、それによって、組織のデータセンタ利用率を向上する。この環境では、テナント・アプリケーション４１０はネットワーク・アプライアンス４１２でホストされ、テナント・データはデータ・ストアおよびデータベース４１４に格納される。アプリケーションおよびデータ・ストアは、典型的には、ネットワーク管理／ストレージＶＬＡＮ４１６を介して、物理データセンタ・ネットワーク４０４に接続される。仮想マシン、アプリケーション、およびテナント・データは、まとめて、サブスクライバがアクセス可能な仮想化されたリソース管理ドメイン４０５を表す。このドメインを通じて、サブスクライバの従業員は（様々な役割ベースの権限を用いて）、プロバイダによって割り当てられ、かつ物理的なＩＴインフラストラクチャに支えられた仮想化リソースにアクセスし、これを管理することができる。本インフラストラクチャの下部は、プロバイダがアクセス可能な管理ドメイン４１５を示す。このドメインは、プロバイダ従業員用管理ポータル４１８、ＢＳＳ／ＯＳＳ管理機能４２０、様々なアイデンティティおよびアクセス管理機能４２２、セキュリティ・ポリシ・サーバ４２４、および、サーバ・イメージ４２８を管理するための管理機能４２６を含む。これらの機能は、管理ＶＬＡＮ４３０を介して物理データセンタ・ネットワークを仲介する。プロバイダの従業員は、ＩＴデータセンタ・インフラストラクチャ（例えば、ハードウェアおよびソフトウェアのインストール、設定、モニタリング、技術サポート、課金など）を管理するために使用する、オペレーショナル・アンド・ビジネス・サポート・サービス（ＯＳＳ／ＢＳＳ）にアクセス可能な特別な権限（および、場合によっては特定のクライアント／ネットワーク）を有する。
【００４２】
一般的に、クラウド・コンピューティング・インフラストラクチャは、ネットワークを介して接続されたホスト・マシン（例えば、サーバまたは物理マシン・コンピューティング・デバイスなど）および１つまたは複数の管理サーバを含む、仮想マシンまたはコンテナ・ベースのホスティング環境を提供する。典型的には、物理サーバはそれぞれ、ＶＭｗａｒｅ  ＥＳＸ／ＥＳＸｉまたはＤｏｃｋｅｒなどの仮想化技術を用いて、１つまたは複数の仮想マシンまたはコンテナを動的に提供するように構成される。
【００４３】
限定を意味しない実装において、典型的なプラットフォーム技術は、ＶＭｗａｒｅ  ｖＳｐｈｅｒｅ４．１  Ｕｐｄａｔｅ  １および５．０を用いたＩＢＭ  Ｓｙｓｔｅｍ  ｘ（Ｒ）  ｓｅｖｅｒｓであるが、これに限定されない。
【００４４】
本分野ではまた、上述したように、利用可能なクラウドのプラットフォーム、トポロジ、および機能についての情報を収集する（あるいは、他のデータ・ソースから取得する）よう一般的に動作するメカニズムおよびシステムを含むクラウド・アーキテクチャを構成またはプロビジョニングすることが知られている。典型的には、クラウド・セキュリティは、仮想境界ネットワーク（ＤＭＺ）、ネットワーク・セグメンテーション、ストレージ・アイソレーション、不正侵入防止システム（ＩＰＳ：Intrusion Prevention System）の配備、セキュリティ情報およびイベント管理（ＳＩＥＭ）の配備、リバース・プロキシ、ファイアウォール、ＳＳＬ通信、既存ＳＩＥＭを用いた構成、多要素認証（multi-factor authentication）、リスク・ベース認証などを含むが、これらに限定されない、様々な技術を用いて実装および実施され得る。
【００４５】
クラウド・アプリケーション・パッケージは、ＩＢＭ（Ｒ）  Ｃｌｏｕｄオープン・クラウド・マネージメント・プラットフォーム（ＳｍａｒｔＣｌｏｕｄ（Ｒ）  Ｏｒｃｈｅｓｔｒａｔｏｒとしても知られている）、またはＩＢＭ（Ｒ）  Ｂｌｕｅｍｉｘ（ＴＭ）などのプラットフォーム・アズ・ア・サービス（ＰａａＳ）インフラストラクチャを用いて配備され得る。クラウド・コンピューティング環境はまた、様々な配備および管理ツールを含むことができる。例えば、ＩＢＭ  Ｃｌｏｕｄは、ＩＢＭ（Ｒ）  Ｃｌｏｕｄ  Ｍａｎａｇｅｒ  ｗｉｔｈ  ＯｐｅｎＳｔａｃｋを含む。Ｃｌｏｕｄ  Ｍａｎａｇｅｒは、クラウドのエンド・ユーザのための、クラウド管理を単純化するセルフ・サービス・ポータルである。Ｃｌｏｕｄ  Ｍａｎａｇｅｒ  ｗｉｔｈ  ＯｐｅｎＳｔａｃｋは、ユーザが、ＩＴまたはシステム管理者の視点ではなく、エンド・ユーザの視点に合わせて仮想アプライアンスおよびワークロードを取り扱うことを可能とする。セルフ・サービス機能は、サーバのプロビジョニングおよびプロビジョニング解除（配備として知られるプロセス）、配備のドラフティングおよびクローニング、配備のスナップショット作成、サーバの起動と終了、および既存サーバのサイズ変更などの、パブリックまたはプライベート・クラウドの多数の共通動作を実行するプロセスを単純化する。
【００４６】
セキュア・エンクレーブを使用して使用中データを保護する
以下に、本開示の主題についてのさらなる背景の詳細を記載する。
【００４７】
デジタル・データは、時に、３つの段階のうちの１つにあるものとして特徴付けられる：すなわち、使用中データ、移動中データ、および休止中データである。使用中データは、コンピュータ・メモリ内のデータを指す。その特性から、使用中データは、ビジネス、政府機関、およびその他の公共機関への関わりが増している。特に、使用中データ（すなわち、メモリ内）は、しばしば、デジタル証明書、暗号鍵、知的財産（ソフトウェア・アルゴリズム、設計データ）、および個人を特定できる情報を含むが、これらに限定されない、機密データを含む。したがって、使用中データが漏洩すると、暗号化された休止中データおよび移動中データへのアクセスが可能となってしまう。
【００４８】
使用中データは典型的に、いくつかの方式のうちの１つによって保護されることが多い。不正アクセスまたは窃盗の発生時にデータの可視化を防止する暗号化は、移動中データおよび休止中データを保護するために一般的に使用されており、使用中データを保護するためにも好ましい方法であることが広く認知されつつある。この目的で、メモリを暗号化するためのソリューションを提案または提供する複数のプロジェクトがある。例えば、ユーザ・プログラムのみがアクセスできるようにメモリを暗号化することが知られており、これは、プロセッサ側の特定のハードウェア位置に配置される鍵によって実現され、各メモリ読み出しまたは書き込みについて、データを複合化または暗号化するためにこの鍵が使用され得る。使用中データを保護するための別のアプローチでは、ＣＰＵベースでキーを格納する。このアプローチでは、ＲＡＭ内に暗号鍵を保持する代わりに、ＣＰＵのレジスタを使用して暗号鍵を格納するよう、オペレーティング・システムのカーネル・パッチがオペレーティング・システムを変更する。特に、メモリ内の暗号鍵に不正にアクセスし得る攻撃から休止中データの暗号鍵が保護されるように、鍵はＲＡＭ内ではなくＣＰＵ内部に保持される。
【００４９】
使用中データを保護するための、さらに別のアプローチが、メモリ内のプライベート領域である「エンクレーブ」である。エンクレーブ・データは、ＲＡＭにある間に暗号化されるが、ＣＰＵおよびＣＰＵキャッシュの内部では平文として利用可能である。エンクレーブのアプローチは、メモリ・ユニットとプロセッサとの間に特別なレジスタおよび回路を使用し、それらが、メモリからのデータを復号化し、メモリへのデータを暗号化するために必要な鍵を保持し、また、好ましくは、他のいかなる場所（オペレーティング・システムを含む）にも鍵を格納しない、という点で、単純なメモリ暗号化とは異なる。特別なアトミックな命令が、これらのレジスタが鍵を格納する唯一の場所であることを保証する。このアプローチの市販品の例は、Ｉｎｔｅｌ  Ｓｏｆｔｗａｒｅ  Ｇｕａｒｄ  Ｅｘｔｅｎｓｉｏｎｓ（ＳＧＸ）、ＩＢＭ  Ｐｏｗｅｒ９  ＳＭＦ、および旧ＩＢＭ  ＳｅｃｕｒｅＢｌｕｅ＋＋アーキテクチャを含む。例えば、ＳＧＸは、ユーザ・レベルのコードがエンクレーブを配置することを可能にする命令のセットであり、これは、通常のプロセス・メモリとは違い、より高い権限レベルで実行するプロセスからも保護される。この種の典型的なソリューションでは、「セキュア」プロセッサは、該当するコアがセキュア実行ファイルを実行する場合にのみ、セキュア実行ファイルおよびデータを平文に可視化できるＣＰＵコアを含む。このような実行に先立って、他のソフトウェアまたは他のこのようなセキュア・オブジェクトからコードおよびデータが視認できないように、セキュア実行ファイルのコードおよびデータ（まとめて、セキュア・オブジェクト）は、関連する外部メモリに暗号化された形態で格納される。セキュア実行ファイルのコードおよびデータはまた、メモリからＣＰＵコアへ伝送される際には視認できない。セキュア・オブジェクトの暗号鍵は管理モジュールに生成または提供され、セキュア・オブジェクトはこの暗号鍵の下で暗号化される。実行時、様々な制御技術が使用され、セキュア・オブジェクトの機密情報が、外部メモリからＣＰＵへのパス上で復号化され、ＣＰＵから外部メモリへのパスで暗号化されることが可能となる。本プロセスのさらなる詳細は、例えば、米国特許第８５７８１７５号および第８９５４７５２号に見出され得、これらの開示は、参照により本明細書に組み込まれている。
【００５０】
クラウド・システムのためのセキュア・プロセッサ・ベースの制御プレーン機能仮想化
上述した背景を用いて、本開示の技術を説明する。以下に示すように、本明細書に記載する技術は、ソフトウェア定義ネットワーク（ＳＤＮ：Software Defined Networks）およびネットワーク機能仮想化（ＮＦＶ：Network Function Virtualization）として知られる通信ネットワークの進展を活用する。ＳＤＮおよびＮＦＶは、ＩＴクラウド・アーキテクチャを使用して、通信ハードウェアをソフトウェアから切り離し、ネットワーク機能が例えば１つのベンダによるハードウェアとソフトウェアの両方を含むアプライアンスとして実装される、従来型のネットワーク設備のアーキテクチャ・モデルを打ち崩す。単一のネットワーク・アプライアンスに代わって、ＳＤＮおよびＮＦＶを用いると、ハードウェアの切り替えが共用化され、ネットワーク・ソフトウェアが分離され、仮想化され、かつクラウド内に配備され、それによって、コストを削減し、ネットワーク機能の配備を高速かつ容易にし、また、動的に変更かつ拡張できるようにする。
【００５１】
本開示に従って、セキュア・プロセッサ・ベースのエンクレーブおよび関連するメモリ内保護を使用して、ハイパーコンバージド・クラウドのようなクラウド環境における、１つまたは複数のソフトウェア定義制御機能または構成要素を保護する。ソフトウェア定義機能には、様々な種類があってよく、例えば、ネットワーク機能、ストレージ機能、電力機能、オーケストレーション機能などであってよい。
【００５２】
ここで説明する好ましい実施形態において、ソフトウェア定義機能は、ネットワーキング機能であって、特に、制御プレーンである。ルーティングにおいて、制御プレーンはネットワーク・トポロジを決定し、パケットがどのようにルーティングされるかを定義するルーティング・テーブルを構築し、かつこれを維持するよう動作する。ルーティング・テーブルは、典型的に、宛先アドレスのリストと、これらのアドレスに関連する出力インタフェースを含む。制御プレーン機能は、ルーティング・プロトコルを管理すること、様々なサービス品質（ＱｏＳ）を定義することなどを含む。制御プレーンは、データ（または転送）・プレーンとは区別され、データ・プレーンは、通常は分散され、制御プレーンによってルーティング・テーブル内に提供された情報に従って、ネットワーク・トラフィックを、宛先に対する１つまたは複数のパスに従って転送するために使用される。いくつかのルーティング・アーキテクチャでは、データ・プレーンは、制御プレーンによって提供されたルーティング・テーブルを格納する、独自のデータベースを有する。データ・プレーンは、データ・パケットの受信および処理を実際に担っている。
【００５３】
本明細書に記載するアプローチは、特定のハードウェアに紐づかずに、冗長化された高い可用性を有する仮想化またはコンテナ化された構成要素として動作する、ネットワーク機能仮想化（ＮＦＶ）の制御プレーン機能を提供するものである。これらは、基本的なルーティング／スイッチ制御プレーン機能、ロード・バランシング、ファイアウォール、または、次世代ファイアウォールなどの、より複雑な上位レイヤのネットワーク機能、あるいはそれらの組合せから構成され得る。
【００５４】
図５は、基本的な実装シナリオを示す。本実施形態では、クラウド・インフラストラクチャ５００は、多数の計算ノード５０２を含むハイパーコンバージド・クラウドである。計算ノードは、上述したように、仮想マシン上、コンテナ上、またはベア・メタル上にも実装され得る。本開示によると、１つまたは複数のセキュア・エンクレーブ５０４は、既知の方法で環境内にインスタンス化される。したがって、上述したように、セキュア・エンクレーブは、セキュア・プロセッサ・ベースのメモリ内での使用中データのセキュリティ・メカニズムを用いて実装され得る。また、図示されるように、ＮＦＶベースの制御プレーン構成要素５０６などの制御プレーンが、計算ノード５０２ａ上に実装されたセキュア・エンクレーブ５０４内でホストされる。本実施形態では、制御プレーン５０６はセキュア・エンクレーブ内でホストされ、すなわち隔離され、それ自体がＶＭまたはコンテナのうちの１つの中でインスタンス化される。制御プレーン５０６は、関連するデータ・プレーン５０８を有し、その構成要素は、好ましくは、計算ノードのうちの１つまたは複数に渡って（分散されたネットワーク・データ・プレーンとして）分散される。そのため、図示されるように、データ・プレーン５０８は、制御プレーンをホストする、仮想化またはコンテナ化されたセキュア・エンクレーブをサポートする、計算ノード５０２ａ上でサポートされた部分と同時に、他の計算ノード５０２ｂおよび５０２ｃ上でサポートされた他の部分を有する。好ましくは、計算ノード５０２ａ上でサポートされたデータ・プレーンの当該部分は、制御プレーンをホストするセキュア・エンクレーブ内では実行しない。
【００５５】
セキュア・エンクレーブ５０４内の制御プレーン５０６と、セキュア・エンクレーブの外部に配置された様々なデータ・プレーン構成要素との間に接続５１０が提供される。好ましい実施形態では、接続５１０は、１つまたは複数のアプリケーション・プログラミング・インタフェース（ＡＰＩ）を介して提供される。好ましくは、他のネットワークおよびセキュリティ機能が、エンクレーブ内で保護された制御プレーンを介して、部分的に管理または制御され得るように、少なくとも１つのこのようなＡＰＩは外部化されたＡＰＩである。動作中、ＮＦＶベースの制御プレーン５０６は、これらのインタフェースを介して、制御および構成情報（例えば、ルーティング・テーブル）を分散されたデータ・プレーンに提供する。
【００５６】
図５は、仮想マシンまたはコンテナ内でインスタンス化されたセキュア・エンクレーブ５０４内でホストされる制御プレーンの構成要素（ソフトウェア定義機能）を示すが、一方で、別のアプローチでは、セキュア・エンクレーブ内の仮想マシンまたはコンテナとしてインスタンス化されたソフトウェア定義機能を有する。
【００５７】
したがって、本開示によると、制御プレーンは、メモリ内ワークロード保護を用いて安全にホストされ、ロード時の整合性を保証し、かつ、例えば権限を有する攻撃者または悪意のある他のシステム・プロセスによる、（制御プレーンの）セキュリティ侵害に対してリアルタイムで保護する。制御プレーン機能に対してこのような保護を提供することができるセキュア・メモリ技術の限定的でない例は、Ｉｎｔｅｌ  ＳＧＸ、または、ＩＢＭ  Ｐｏｗｅｒ９  ＳＭＦ、あるいはその両方を含み、上述したように、これらは機密性の高いワークロードをこのクラスの攻撃から保護するよう設計されている。また上述のように、セキュア・プロセッサ技術のこのクラスにおいて提供されるセキュア・エンクレーブは、仮想マシンまたは、Ｄｏｃｋｅｒコンテナなどのコンテナの形態を取ることができる。このような方法で制御プレーンをホストすることによって、ハイパーコンバージド・ソフトウェア定義ネットワーク（ＳＤＮ）に対する１つまたは複数のネットワーク機能仮想化（ＮＦＶ）構成要素に、メモリ内保護が適用される。保護されたメモリ・エンクレーブもまた、Ｉｎｔｅｌ  ＴＸＴおよびＰｏｗｅｒ  Ｓｅｃｕｒｅ  Ｂｏｏｔのような高信頼コンピューティングの基本機能によって提供されるロード時の暗号整合性（cryptographic integrity）確認を利用することができる。典型的な、ただし限定的でない実施形態において、このような方法で保護される典型的なＮＦＶ機能は、基本的なレイヤ２またはレイヤ３のルーティングまたはスイッチング、あるいはその両方、ファイアウォール、およびロード・バランシングを含む。
【００５８】
好ましくは、セキュア・エンクレーブは、限られたデバイス・ツリーを有するコンテナまたは仮想マシンの形態を取り、内部的な攻撃面を最小化する。この目的で、クラウド・コンピューティング環境はクライアント（テナント）レベルのパーティションを含む。クライアント・パーティション内では、クライアント／テナントが既知のメカニズム、例えばＳＳＬを介したパスワード付きロギングによる、唯一のセキュア・アクセスを有する。さらに、分離したメモリ・パーティションがセキュア・エンクレーブとして確立され、制御プレーン（またはその構成要素）がこの後者のパーティション内に配置（またはダウンロード）される。一度初期化されると（例えば、セキュア・ブート・プロセスを通じて）、制御プレーンをホストするパーティションは、好ましくは、クライアント・アプリケーション・プログラミング・インタフェース（ＡＰＩ）のみを介してクライアント・パーティションにアクセスできる。言い換えれば、好ましくは、コマンドおよびデータは、クライアントと制御プレーンとの間のみでクライアントＡＰＩを介して交換され得る。このアプローチでは、好ましくは、ＡＰＩは、クライアント・パーティションおよび制御プレーンをホストするパーティションの両方がアクセス可能な共有メモリ領域内で動作する。
【００５９】
図６は、本開示の技術に従って実装されるＶＭベースのＳＤＮの例を示す。本例は、ネットワーク仮想化の完全な実装フレームワークを供給するネットワーク・オーバーレイ・ソリューションである、ＩＢＭ  Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ  ｆｏｒ  Ｖｉｒｔｕａｌ  Ｅｎｖｉｒｏｎｍｅｎｔｓ（ＳＤＮ  ＶＥ）を用いて実装される。ＳＤＮ  ＶＥは、複数ハイパーバイザを有する、サーバを中心としたソリューションであり、ＩＰ接続を提供する任意の物理ネットワークの上に仮想ネットワークをオーバーレイさせる、複数のコンポーネントを含む。図示するように、ＳＤＮ  ＶＥソリューション６００は、４つの基本ソフトウェア・コンポーネントから成り、これらの組合せにより効果的なホスト・ベースのネットワーク仮想化を提供する。ＳＤＮ  ＶＥ  Ｖｉｒｔｕａｌ  Ｓｗｉｔｃｈ６０２は、ハイパーバイザ６０４内にあるソフトウェアである。これは、各仮想ネットワークの開始点および終点として機能し、いくつかのこのようなネットワーク６０１、６０３、および６０５が図示されている。ＳＤＮ  ＶＥ  Ｖｉｒｔｕａｌ  Ｓｗｉｔｃｈは、ＵＤＰオーバーレイ上にレイヤ２およびレイヤ３のネットワーク仮想化を提供し、仮想ネットワークのデータ・パスを実装する。仮想スイッチはまた、仮想マシン（ＶＭ）アドレスの自動検出、ＶＭ移行、およびネットワーク・ポリシ設定をサポートするための制御プレーン機能を実施する。本開示によると、これらの制御プレーン機能のうち１つまたは複数が上述した方法でセキュア・エンクレーブ内にホストされる。接続サービス６０６は、ＶＭアドレスをＳＤＮ  ＶＥ仮想ネットワークに参加している仮想スイッチに配布する。接続サービス・ソフトウェアは、好ましくは、仮想アプライアンスのクラスタとして配備される。管理コンソール６０８は、ＳＤＮ  ＶＥを設定するための制御の集約部である。これが、各仮想ネットワーク、制御ポリシ、および仮想スイッチへの配布ポリシを設定する。また、これは、管理者が個々の仮想ネットワークを管理するのに役立つ。好ましくは、管理コンソール・ソフトウェアは仮想アプライアンスとしてサーバ上に常駐する。最後に、ＶＬＡＮベースおよびＩＰベースのゲートウェイ６１０は、ＳＤＮ  ＶＥが、ＳＤＮ  ＶＥ環境の外部にあるネットワークおよびサーバとの相互運用性を確立することを可能とする。レイヤ２ネットワークに対しては、ＳＤＮ  ＶＥはＶＬＡＮベースのゲートウェイを提供する。レイヤ３ネットワークに対しては、当該ソフトウェアはＩＰベースのゲートウェイを提供する。
【００６０】
ＳＤＮには、オーバーレイおよびネイティブの、２つのアーキテクチャ・モデルがある。オーバーレイＳＤＮでは、ＳＤＮは既存ＩＰネットワークの最上位に配備される、Ｏｐｅｎｆｌｏｗ  ＳＤＮでは、ルータ・アプライアンスは、レイヤ２のデータ転送スイッチおよび、例えばＯｐｅｎＦｌｏｗ通信プロトコルを用いてレイヤ２スイッチにアクセスするネットワーク制御ソフトウェアに置き換えられる。
【００６１】
上述したように、ＳＤＮは、仮想マシンのアプローチの代わりにＤｏｃｋｅｒコンテナを用いて実装されてもよい。
【００６２】
本開示の技術は、制御プレーンがデータ・プレーンと切り離され、かつセキュア・エンクレーブ内でホストされ、ＡＰＩを用いて、両者の間で制限された通信を可能とするとき、大きな利益を供与する。上述したように、本明細書に記載のアプローチは、１つまたは複数の制御ブレーン機能に対して、先進的なハードウェア・ルーティングされた、メモリ内のワークロード保護を使用し、ロード時における整合性を保証し、かつ、権限のある攻撃者またはシステム・プロセスによるセキュリティ侵害からリアルタイムに保護する。このように、システム・レベルのプロセスまたは、ハイパーバイザもしくはオペレーティング・システムのルート・ユーザは、メモリのコンテンツを読み取りまたは変更することができず、それによって、重要な制御プレーン構成要素を保護する。本明細書に記載の、セキュア・プロセッサにおけるセキュア・エンクレーブ内の制御プレーンを保護するアプローチは、したがって、高レベルのシステム機能仮想化によって起こりかねない（例えば、攻撃者による）いかなるシステム規模の稼働停止またはセキュリティ侵害の発生をも防止する。記載したように、本アプローチは、制御プレーン構成要素およびデータ（例えば、ルーティング・テーブル）の機密性および整合性を、物理的な攻撃からだけでなく、権限のあるソフトウェアを含むシステムの部分上の他の全てのソフトウェアからも、また、権限のあるソフトウェアに感染してルート権限を奪取し得るマルウェアからも保護する、セキュアＣＰＵ技術を適宜活用する。さらに、ＮＦＶ制御プレーン機能と分散データ・プレーンとの間の接続を提供するために必要なＡＰＩが外部化されるため、サード・パーティのネットワーキング・ベンダが付加価値のある追加的なネットワークおよびセキュリティ機能を提供することが可能となっている。ここで説明したセキュア・エンクレーブ・アーキテクチャは、これらのパートナが、システムにネイティブなサービスに加えて独自の付加価値型サービスの整合性保証を得ることを可能にする。
【００６３】
本明細書に記載の本アプローチは、主にＮＦＶの文脈で説明されたが、これは限定を意図するものではなく、セキュア・エンクレーブを使用してソフトウェア定義機能をホストする本アプローチは、ストレージ管理、電力管理、仮想マシンおよびコンテナのオーケストレーション、ならびにそれらの組合せを含む、他の制御機能に拡大適用することができる。
【００６４】
より一般的には、開示された主題の文脈におけるコンピューティング・デバイスは、それぞれ、ハードウェアおよびソフトウェアを含むデータ処理システムであり、これらのエンティティが、インターネット、イントラネット、エクストラネット、プライベート・ネットワーク、またはその他の何らかの通信媒体またはリンクなどのネットワークを介して、互いに通信する。データ処理システム上のアプリケーションは、ウェブおよびその他の既知のサービスに対するネイティブ・サポート、ならびに、中でもＨＴＴＰ、ＦＴＰ、ＳＭＴＰ、ＳＯＡＰ、ＸＭＬ、ＷＳＤＬ、ＵＤＤＩ、およびＷＳＦＬを含むがこれに限定されない、プロトコルを提供する。ＳＯＡＰ、ＷＳＤＬ、ＵＤＤＩ、およびＷＳＦＬに関する情報は、これらの標準の開発および維持を担うＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ（Ｗ３Ｃ）から入手可能であり、ＨＴＴＰ、ＦＴＰ、ＳＭＴＰおよびＸＭＬに関するさらなる情報は、Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ（ＩＥＴＦ）から入手可能である。これらの既知の標準およびプロトコルを熟知しているものとみなす。
【００６５】
本明細書に記載する技術は、単純なｎ層アーキテクチャ、ウェブ・ポータル、フェデレーティッド・システムなどを含む様々なデータセンタ・アーキテクチャ内に、またはこれらと併用して、実装され得る。本明細書に記載する技術はまた、プライベート、パブリック、またはハイブリッドであるかにかかわらず、疎結合サーバ（「クラウド」ベースを含む）環境において実施され得る。
【００６６】
さらに一般的には、本明細書に記載の主題は、完全にハードウェアによる実施形態、完全にソフトウェアによる実施形態、または、ハードウェアとソフトウェアのどちらの構成要素も含む実施形態の形態を取ることができる。好ましい実施形態では、高信頼プラットフォーム・モジュール機能が、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定されない、ソフトウェアによって実装される。さらに、ダウンロードおよび削除のインタフェースならびに機能性は、コンピュータまたは任意の命令実行システムによって、またはこれに関連して、ユーザにプログラム・コードを提供するコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能な、コンピュータ・プログラム製品の形態を取ることができる。このことを目的として、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによって、またはこれに関連して、使用するプログラムを含むか、格納することができる任意の装置であってよい。この媒体は、電子的、磁気的、光学的、電磁気、赤外線、または、半導体のシステム（または、装置もしくはデバイス）であってよい。コンピュータ可読媒体の例は、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、固定磁気ディスク、および光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク−読み出し専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読み出し／書き込み（ＣＤ−Ｒ／Ｗ）およびＤＶＤを含む。コンピュータ可読媒体は、有形で、非一過性の製品である。
【００６７】
コンピュータ・プログラム製品は、前記機能のうち１つまたは複数を実装するためのプログラム命令（またはプログラム・コード）を有する製品であってよい。これらの命令またはコードは、リモート・データ処理システムからネットワークを介してダウンロードされた後に、データ処理システム内の非一過性のコンピュータ可読ストレージ媒体に格納され得る。あるいは、これらの命令またはコードは、サーバ・データ処理システム内のコンピュータ可読ストレージ媒体に格納され、リモート・システム内のコンピュータ可読ストレージ媒体において使用するために、リモート・データ処理システムにネットワークを介してダウンロードされるように適用され得る。
【００６８】
典型的な実施形態では、セキュリティ・マネージャが特殊用途のコンピューティング・プラットフォームに実装され、好ましくは、１つまたは複数のプロセッサによって実行されるソフトウェアに実装される。ソフトウェアは、１つまたは複数のデータ・ストア、あるいは１つまたは複数のプロセッサに関連するメモリにおいて維持され、当該ソフトウェアは、１つまたは複数のコンピュータ・プログラムとして実装され得る。併せて、この特殊用途のハードウェアおよびソフトウェアは上述した機能性を含む。
【００６９】
上記に、本発明の特定の実施形態によって実施される動作の特定の順序を説明したが、このような順序は例示的なものであって、代わりの実施形態が異なる順序で、特定動作を組み合わせて、または、特定の動作を重複させるなどして、動作を実施してもよいことを理解するべきである。本明細書における所与の実施形態の参照は、説明された実施形態が特定の機能、構造、または特徴を含むことができる一方、全ての実施形態が特定の機能、構造、または特徴を必ずしも含む必要がないことを意味する。
【００７０】
最後に、システムの所与のコンポーネントを別々に説明したが、当業者は、当該機能のいくつかが、所与の命令、プログラム・シーケンス、コードの一部などにおいて組み合わされ、または共有されてもよいことを理解するであろう。
【００７１】
本明細書に記載の技術は、一般的に、技術または技術分野に対して上述した改善を供与し、また、上述したようなワークロード管理スキームの具体的な技術的改善を供与する。
【００７２】
上述した本発明を元に、以下に示す権利を請求する。
【図１】
2021500669.tif 000003
【図２】
2021500669.tif 000004
【図３】
2021500669.tif 000005
【図４】
2021500669.tif 000006
【図５】
2021500669.tif 000007
【図６】
2021500669.tif 000008
【国際調査報告】
2021500669.tif 000009
2021500669.tif 000010
2021500669.tif 000011