(57)【要約】【課題】共同ロケーション施設における共有コンピュータの分散管理を改善する。【解決手段】ノードクラスタ２１０のアプリケーションオペレーションを管理するアプリケーションオペレーション管理コンソール２４２とノードクラスタ２１０内の複数のコンピュータと間の通信の安全は第１の公開／秘密鍵のペアを使用して確立する。ノードクラスタ２１０のハードウェアオペレーションを管理するクラスタオペレーション管理コンソール２４０とノードクラスタ２１０内の複数のコンピュータと間の通信の安全は第２の公開／秘密鍵のペアを使用して確立する。【選択図】図３
2011055523.tif 000002
【特許請求の範囲】
【請求項１】
該方法を実行するための複数の命令をメモリに格納するステップと、
プロセッサ上で当該命令を実行するステップを有し、
前記命令はプロセッサに、
共同ロケーション施設に配置された複数のコンピュータを前記共同ロケーション施設に配置されたランドロードオペレーション管理コンソールを介して複数のクラスタに分割するステップであって、前記ランドロードオペレーション管理コンソールは前記共同ロケーション施設に配置された複数のコンピュータのハードウェアオペレーションをモニタすると共に制御する、分割するステップと、
複数のテナントに対して前記複数のクラスタをリースするステップと、
前記テナントにリースされたクラスタ内の複数のコンピュータと前記テナントのアプリケーションオペレーション管理コンソールの間で安全な通信チャネルを確立するステップと
を備え、前記アプリケーションオペレーション管理コンソールは、
前記共同ロケーション施設からは離れて配置され、
クラスタの境界を設定して、個別の前記クラスタ内でコンピュータが前記個別のクラスタ内の他のコンピュータと通信することを制限し、および
前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションをモニターし、
前記ランドロードオペレーション管理コンソールによる前記ハードウェアオペレーションのモニタリングおよび制御は前記アプリケーションオペレーション管理コンソールによる、前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションのモニタリング処理とは独立に実行され、
さらに、前記テナントにリースされたクラスタ内の複数のコンピュータと前記テナントのランドロードオペレーション管理コンソールの間で安全な通信チャネルを確立するステップを有し、
前記複数のテナントの各々について、前記テナントにリースされたクラスタ内の複数のコンピュータと、前記テナントのアプリケーションオペレーション管理コンソールとの間の安全な通信チャンネルは第１の公開／秘密鍵のペアを使用して確立され、前記テナントにリースされたクラスタ内の複数のコンピュータと、前記テナントのランドロードオペレーション管理コンソールとの間の安全な通信チャンネルは第２の公開／秘密鍵のペアを使用して確立されることを特徴とする方法。
【請求項２】
クラスタの境界を設定し、１つのクラスタの中の複数のコンピュータが複数のクラスタの中の他の他のコンピュータと通信することを阻止することを特徴とする請求項１に記載の方法。
【請求項３】
前記リースするステップは複数のテナントの異なる１つ各クラスタをリースするテップを有し、前記複数のコンピュータの各々は前記複数のクラスタの１つだけに含まれることを特徴とする請求項１に記載の方法
【請求項４】
複数の命令を記録した１つまたは複数のコンピュータ読み取り可能媒体であって、
前記複数の命令は、コンピュータの１つまたは複数のプロセッサにより実行されたときに、前記１つまたは複数のプロセッサに、
共同ロケーション施設に配置された複数のコンピュータを前記共同ロケーション施設に配置されたランドロードオペレーション管理コンソールを介して複数のクラスタに分割するステップであって、前記ランドロードオペレーション管理コンソールは前記共同ロケーション施設に配置された複数のコンピュータのハードウェアオペレーションをモニタすると共に制御する、分割するステップと、
前記テナントにリースされたクラスタ内の複数のコンピュータと前記テナントのアプリケーションオペレーション管理コンソールの間で安全な通信チャネルを確立するステップと
を実行させ、前記アプリケーションオペレーション管理コンソールは、
前記共同ロケーション施設からは離れて配置され、
クラスタの境界を設定して、個別の前記クラスタ内でコンピュータが前記個別のクラスタ内の他のコンピュータと通信することを制限し、および
前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションをモニターし、
前記ランドロードオペレーション管理コンソールによる前記ハードウェアオペレーションのモニタリングおよび制御は前記アプリケーションオペレーション管理コンソールによる、前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションのモニタリング処理とは独立に実行され、
前記複数の命令は、さらに、１つまたは複数のプロセッサに、
前記テナントにリースされた複数のクラスタと前記テナントのランドロードオペレーション管理コンソールの間で安全な通信チャネルを確立するステップを有し、
前記テナントにリースされた複数のクラスタと、前記テナントのアプリケーションオペレーション管理コンソールとの間の安全な通信チャンネルは第１の公開／秘密鍵のペアを使用して確立され、前記テナントにリースされた複数のクラスタと、前記テナントのランドロードオペレーション管理コンソールとの間の安全な通信チャンネルは第２の公開／秘密鍵のペアを使用して確立されることを特徴とする１つまたは複数のコンピュータ読み取り可能媒体。
【請求項５】
前記複数の命令は前記プロセッサに、
クラスタの境界を設定させ、１つのクラスタの中の複数のコンピュータが複数のクラスタの中の他の他のコンピュータと通信することを阻止することを特徴とする請求項４に記載の１つまたは複数のコンピュータ読み取り可能媒体。
【請求項６】
前記複数のクラスタは複数のテナントの異なる１つにリースされることを特徴とする請求項４に記載の１つまたは複数のコンピュータ読み取り可能媒体。
【請求項７】
プロセッサと
該プロセッサに結合され、複数の命令を記録したコンピュータ読み取り可能媒体であって、前記複数の命令は、前記プロセッサにより実行されたときに、前記プロセッサに、
共同ロケーション施設に配置された複数のコンピュータを前記共同ロケーション施設に配置されたランドロードオペレーション管理コンソールを介して複数のクラスタに分割するステップであって、前記ランドロードオペレーション管理コンソールは前記共同ロケーション施設に配置された複数のコンピュータのハードウェアオペレーションをモニタすると共に制御する、分割するステップと、
前記テナントにリースされたクラスタ内の複数のコンピュータと前記テナントのアプリケーションオペレーション管理コンソールの間で安全な通信チャネルを確立するステップと
を実行させ、前記アプリケーションオペレーション管理コンソールは、
前記共同ロケーション施設からは離れて配置され、
クラスタの境界を設定して、個別の前記クラスタ内でコンピュータが前記個別のクラスタ内の他のコンピュータと通信することを制限し、および
前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションをモニターし、
前記ランドロードオペレーション管理コンソールによる前記ハードウェアオペレーションのモニタリングおよび制御は前記アプリケーションオペレーション管理コンソールによる、前記テナントにリースされた複数のクラスタ上で実行されているアプリケーションのモニタリング処理とは独立に実行され、
前記複数の命令は、さらに、前記プロセッサに、
前記テナントにリースされた複数のクラスタと前記テナントのランドロードオペレーション管理コンソールの間で安全な通信チャネルを確立するステップを実行させ、
前記テナントにリースされた複数のクラスタと、前記テナントのアプリケーションオペレーション管理コンソールとの間の安全な通信チャンネルは第１の公開／秘密鍵のペアを使用して確立され、前記テナントにリースされた複数のクラスタと、前記テナントのランドロードオペレーション管理コンソールとの間の安全な通信チャンネルは第２の公開／秘密鍵のペアを使用して確立されるコンピュータ読み取り可能媒体と
を備えたことを特徴とするコンピュータ。
【請求項８】
前記複数の命令は前記プロセッサに、
クラスタの境界を設定させ、１つのクラスタの中の複数のコンピュータが複数のクラスタの中の他の他のコンピュータと通信することを阻止することを特徴とする請求項７に記載のコンピュータ。
【請求項９】
前記複数のクラスタは複数のテナントの異なる１つにリースされることを特徴とする請求項７に記載のコンピュータ
【請求項１０】
前記コンピュータ読み取り可能媒体は１つまたは複数のディスクを含むことを特徴とする請求項７に記載のコンピュータ。
【請求項１１】
前記コンピュータ読み取り可能媒体は１つまたは複数のメモリを含むことを特徴とする請求項７に記載のコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの管理に関する。さらに具体的には、本発明は、共有コンピュータの分散管理に関する。
【背景技術】
【０００２】
インターネット（ｔｈｅ  Ｉｎｔｅｒｎｅｔ）とその使用は、この近年に大幅に拡張しており、その拡張は今後も続くことが予想されている。インターネットの顕著な使い方の１つは、ワールドワイドウェブ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ    ＷＷＷ。”Ｗｅｂ”とも呼ばれている）であり、これは、ユーザが見たり、さもなければ、レンダリング（ｒｅｎｄｅｒｉｎｇ）することができるドキュメントの集まりであり、そこには、ユーザがアクセスできる１つまたは２つ以上の他のページへのリンクが含まれているのが代表的である。多くの企業や個人は、１または２以上のＷｅｂページで構成される存在物をＷｅｂ上に創設し、１または２以上のＷｅｂページで自社または自分のことを記述し、自社製品やサービスを説明し、他の関心のある情報を特定し、商品やサービスの購入を可能にしているのが代表的である。
【０００３】
Ｗｅｂページは１つまたは２つ以上のＷｅｂサーバを通して、Ｗｅｂ上で利用可能である。プロセスはＷｅｂページを「ホストする」とも呼ばれる。これらのＷｅｂページは、そのページ（例えば、会社の広告）を見ることを要求した、だれにでも自由に利用可能であるが、Ｗｅｂページへのアクセスが制限されているときもある（例えば、Ｗｅｂページにアクセスするには、パスワードが要求されることがある）。Ｗｅｂページを見ることを要求している人が非常に多数であると（特に、Ｗｅｂがグローバルにアクセス可能であることを考慮すると）、十分にＷｅｂページをホストするためには、非常に多数のサーバが必要になる場合がある（例えば、同じＷｅｂページを複数のサーバでホストすると、そのＷｅｂページに同時にアクセスできる人の数が増加することになる）。さらに、Ｗｅｂは地理的に分散しており、アクセスに統一性がないため、サーバを異なるリモートロケーション（遠隔地）に分散化し、世界の異なるロケーション（場所）にいる人々のアクセスタイムを最小限にすることが、しばしば望まれている。さらに、人々は、一日中Ｗｅｂページを見ている傾向があるので（この場合も、特にＷｅｂがグローバルにアクセス可能であることを考慮すると）、Ｗｅｂページをホストするサーバは、毎日２４時間の間、機能提供状態に保っておく必要がある。
【０００４】
しかし、非常に多数のサーバを管理することは、困難になることがある。サーバを稼動状態に保つためには、高信頼電源が必要になる。盗みや他の悪意のある人が、サーバを破損したり、サーバにしのび込んだりする試みを防止するためには、物理的セキュリティが必要になる。アクセス要求がサーバに確実に到達することを保証するためには、高信頼インターネットコネクションが必要になる。サーバが正しく動作することを保証するためには、正しい動作環境（例えば、温度、湿度など）が必要になる。そこで、企業がこれらの問題に対処するのを支援する「共同ロケーション施設（ｃｏ−ｌｏｃａｔｉｏｎ  ｆａｃｉｌｉｔｉｅｓ）」が発達してきた。
【０００５】
ここで、共同ロケーション施設とは、複数のサーバを収容できる複合体（ｃｏｍｐｌｅｘ）のことである。共同ロケーション施設は、高信頼インターネットコネクション、高信頼電源、および正しい動作環境を提供しているのが代表的である。また、共同ロケーション施設は、複数のセキュアエリア（例えば、ケージ（ｃａｇｅ））を含み、異なる企業が自社サーバをそこに置いておくことを可能にしているのが代表的である。特定の企業が共同ロケーション施設に置いておくサーバの集まりは、実際には、いずれかの個別的共同ロケーション施設に、シングルサーバだけが置かれていることがあっても、「サーバクラスタ（ｓｅｒｖｅｒ  ｃｌｕｓｔｅｒ）」と呼ばれる。この場合、その特定企業は、自社サーバクラスタ内のサーバのオペレーションの管理を担当することになる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような共同ロケーション施設にも、問題が起こっている。１つの問題は、データのセキュリティ（ｄａｔａ  ｓｅｃｕｒｉｔｙ）である。異なる企業（競争企業でさえも）は、同一共同ロケーション施設にサーバクラスタを置くことが可能になっている。このような状況では、ある企業を目的に、インターネットから受信されたデータ（またはサーバクラスタ内のサーバから送信されたデータ）が、その共同ロケーション施設に置かれている別の企業のサーバにルーチング（経路探索）されないようにする配慮が必要である。
【０００７】
もう１つの問題は、共同ロケーション施設に置かれた後の、サーバの管理の問題である。現在では、ある企業に属するシステムアドミニストレータ（システム管理者）は、サーバに障害（または他の問題）が起きたとき、共同ロケーション施設のアドミニストレータに連絡し（電話によるのが代表的）、特定のサーバをリセットすること（サーバ側のハードウェアリセットボタンを押すか、あるいはサーバをパワーオフした後で、パワーオンをする方法が代表的）をアドミニストレータに要求することが可能になっている。このリセットだけの機能には制約があるため、企業が得られる管理機能が非常に乏しくなっている。別の方法として、企業に属するシステムアドミニストレータは、自身で共同ロケーション施設に赴き、障害を起こしたサーバを診ることが可能になっている。残念ながら、システムアドミニストレータが共同ロケーション施設に赴いて、サーバを診るようにすると、大量の時間が浪費されることになる。従って、リモートのサーバコンピュータを共同ロケーション施設で管理するように改善すると、好都合である。
【０００８】
もう１つの問題は、共同ロケーション施設に置かれているサーバのオペレータだけでなく、これらのサーバでホストされるＷｅｂサービスのオペレータも、その権利を行使することに関係する問題である。サーバのオペレータは、サーバがＷｅｂサービスのオペレータによって所有されている場合でも、その権利（例えば、サーバが置かれている施設のエリアを再所有する権利）を保持できることが必要である。さらに、Ｗｅｂサーバのオペレータは、自分のデータがセキュアに保たれているとの保証を得る必要がある。
【０００９】
以下に説明する本発明は、上記問題点を解決し、共同ロケーション施設における共有コンピュータの分散管理を改善することを目的としている。
【課題を解決するための手段】
【００１０】
以下では、共有コンピュータの分散管理について説明する。
【００１１】
本発明の一形態によれば、多層管理アーキテクチャ（ｍｕｌｔｉ−ｔｉｅｒｅｄ  ｍａｎａｇｅｍｅｎｔ  ａｒｃｈｉｔｅｃｔｕｒｅ）が採用され、このアーキテクチャは、アプリケーション開発層（ａｐｐｌｉｃａｔｉｏｎ  ｄｅｖｅｌｏｐｍｅｎｔ  ｔｉｅｒ）、アプリケーションオペレーション層（ａｐｐｌｉｃａｔｉｏｎ  ｏｐｅｒａｔｉｏｎｓ  ｔｉｅｒ）、およびクラスタオペレーション層（ｃｌｕｓｔｅｒ  ｏｐｅｒａｔｉｏｎｓ  ｔｉｅｒ）を含んでいる。アプリケーション開発層では、アプリケーションは、１つまたは２つ以上のサーバコンピュータ上で実行されるように開発される。アプリケーションオペレーション層では、アプリケーションの実行が管理され、共同ロケーション施設に置かれたサーバクラスタ内のサブ境界（ｓｕｂ−ｂｏｕｎｄａｒｙ）が設定可能になっている。クラスタオペレーション層では、サーバコンピュータのオペレーションは、どのアプリケーションが１つまたは２つ以上のサーバコンピュータ上で実行されているかに関係なく、管理され、共同ロケーション施設に置かれたサーバクラスタの境界が設定可能になっている。
【００１２】
別の形態によれば、共同ロケーション施設は、各々が異なるカスタマーに対応している複数のサーバクラスタを含んでいる。各々のサーバクラスタごとに、クラスタオペレーション管理コンソールは、クラスタのハードウェアオペレーションを管理するために共同ロケーション施設にローカルに実装され、アプリケーション管理コンソールは、クラスタのソフトウェアオペレーションを管理するために、共同ロケーション施設から離れたロケーションに実装されている。ハードウェアに障害が起きた場合は、クラスタオペレーション管理コンソールは訂正アクションをとる（例えば、共同ロケーション施設にいるアドミニストレータに通知するか、あるいは自身で障害の訂正を試みる）。ソフトウェアに障害が起きた場合は、アプリケーションオペレーション管理コンソールは訂正アクションをとる（例えば、カスタマーのアドミニストレータの一人に通知するか、あるいは自身で障害の訂正を試みる）。
【００１３】
別の形態によれば、サーバクラスタの境界は、クラスタオペレーション管理コンソールによって設定される。境界を設定すると、データがサーバクラスタ内のノードにだけルーチングされ、共同ロケーション施設に置かれていて、サーバクラスタに属していない他のノードにはルーチングされないことが保証される。さらに、サーバクラスタ内のサブ境界はアプリケーションオペレーション管理コンソールによって設定され、データがサーバクラスタ内の特定ノードにだけルーチングされることを保証する。
【００１４】
別の形態によれば、共同ロケーション施設に置かれる予定の、複数のサーバコンピュータに対する権利はカスタマーに販売され、多層管理方式（ｍｕｌｔｉｐｌｅ−ｔｉｅｒｅｄ  ｍａｎａｇｅｍｅｎｔ  ｓｃｈｅｍｅ）がサーバコンピュータで実施される。この多層管理方式によれば、サーバコンピュータのハードウェアオペレーションは、共同ロケーション施設でローカルに管理されるのに対し、サーバコンピュータのソフトウェアオペレーションは、共同ロケーション施設から離れたロケーションから管理される。サーバコンピュータは、カスタマーに販売することも、カスタマーにリースすることも可能である。
【００１５】
別の形態によれば、ランドロード／テナント（ｌａｎｄｌｏｒｄ／ｔｅｎａｎｔ）関係は、共同ロケーション施設で１つまたは２つ以上のサーバコンピュータを使用して構築される。共同ロケーション施設のオペレータは、施設とサーバの両方を提供する（従って、このオペレータは「ランドロード」と見ることができる）。これに対して、施設のカスタマーは、施設の使用だけでなく、その施設のサーバもリースする（従って、このカスタマーは「テナント」と見ることができる）。このランドロード／テナント関係によると、ランドロードは、テナントが異なるごとにコンピュータクラスタを設定し、テナントのデータがそのクラスタを越えて（および別のテナントのクラスタに）渡されないように、クラスタ間に境界を設定することが可能である。さらに、暗号化がさまざまな形で採用されているので、テナントがそのリースを終了したり、リースしているサーバの１つをランドロードに返却した場合でも、リースしているサーバにストアされている情報が他人に見られない。
【００１６】
別の形態によれば、多層管理アーキテクチャは、共同ロケーション施設に属していないコンピュータの管理において採用される。この多層管理アーキテクチャは、ビジネスやホームなどのような、さまざまな環境でコンピュータ（サーバコンピュータであるか否かに関係なく）を管理するために使用される。
【００１７】
以下、添付図面を参照して本発明が説明されているが、その説明は単なる例示であり、その説明に限定されるものではない。図面全体を通して用いられている同一符号は、類似のコンポーネントおよび／または特徴を示している。
【図面の簡単な説明】
【００１８】
【図１】本発明のいくつかの実施形態で使用できるような、クライアント／サーバネットワークシステムと環境を示す図である。
【図２】本発明のいくつかの実施形態に従って使用できるコンピュータの例を示す概要図である。
【図３】例示の共同ロケーション施設を示す詳細ブロック図である。
【図４】例示の多層管理アーキテクチャを示すブロック図である。
【図５】本発明のいくつかの実施形態による例示のノードを示す詳細ブロック図である。
【図６】本発明のいくつかの実施形態による暗号鍵の生成と配布のための例示プロセスを示すフローチャートである。
【図７】本発明のいくつかの実施形態によるクラスタ管理コンソールのオペレーションのための例示プロセスを示すフローチャートである。
【図８】本発明のいくつかの実施形態によるアプリケーションオペレーション管理コンソールのオペレーションのための例示プロセスを示すフローチャートである。
【発明を実施するための形態】
【００１９】
図１は、本発明のいくつかの実施形態で使用できるような、クライアント／サーバネットワークシステムと環境を示す。一般的に、システムは複数（ｎ個）のクライアントコンピュータ１０２と複数（ｍ個）の共同ロケーション施設１０４を含み、各施設は複数のサーバコンピュータのクラスタ（サーバクラスタ）１０６を含んでいる。これらのサーバとクライアントコンピュータは、データコミュニケーションネットワーク１０８を通して相互に通信している。図１のコミュニケーションネットワークは、インターネット（ｔｈｅ  Ｉｎｔｅｒｎｅｔ）のような公衆ネットワーク１０８を含んでいる。インターネットに加えて、あるいはその代用として、他のタイプのコミュニケーションネットワークを使用することも可能であり、その中には、ローカルエリアネットワーク（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ    ＬＡＮ）、広域ネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ    ＷＡＮ）などが含まれている。データコミュニケーションネットワーク１０８の構築は、さまざまな方法で行うことが可能であり、その中には、ワイヤド（有線）および／またはワイヤレス（無線）コミュニケーション媒体が含まれている。
【００２０】
ネットワーク１０８を利用したコミュニケーションを行うには、広範囲にわたる通信プロトコルの使用が可能である。ある実装では、クライアントコンピュータ１０２とクラスタ１０６内のサーバコンピュータは、ハイパーテキスト転送プロトコル（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ    ＨＴＴＰ）を使用して相互に通信することが可能になっており、そこでは、Ｗｅｂページはサーバコンピュータによってホストされ、ハイパーテキストマークアップ言語（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ    ＨＴＭＬ）または拡張可能マークアップ言語（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ    ＸＭＬ）などの、マークアップ言語で書かれている。
【００２１】
以下の説明では、本発明の実施形態は、主に、共同ロケーション施設（施設１０４など）での実装と関連付けて説明される。しかし、本発明はそのような実装に限定されるものではなく、広範囲にわたる状況のいずれにおいても、分散管理のために使用することが可能である。例えば、そのような状況としては、施設に置かれたサーバのすべてが同一カスタマーに所有またはリースされる場合、シングルコンピューティングデバイス（例えば、サーバまたはクライアント）が管理対象となっている場合、ビジネスまたはホーム環境におけるコンピュータ（サーバが否かに関係なく）が管理対象となっている場合、などがある。
【００２２】
以下の説明では、本発明の実施形態は、プログラムモジュールのように、１つまたは２つ以上の従来パーソナルコンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストで説明されている。一般的に、プログラムモジュールには、特定のタスクを実行し、あるいは特定の抽象データ型を実装している、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれている。さらに、当業者ならば理解されるように、本発明の種々実施形態は、他のコンピュータシステム構成で実施することが可能であり、その中には、ハンドヘルドデバイス、ゲーミングコンソール（ｇａｍｉｎｇ  ｃｏｎｓｏｌｅ）、インターネットアプライアンス（Ｉｎｔｅｒｎｅｔ  ａｐｐｌｉａｎｃｅ）、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどが含まれている。分散コンピュータ環境では、プログラムモジュールは、ローカルとリモートの両方のメモリストレージデバイスに置いておくことが可能である。
【００２３】
別の方法として、本発明の実施形態は、ハードウェアで実現することも、ハードウェア、ソフトウェア、および／またはファームウェアの組み合わせで実現することもできる。例えば、本発明は、その全体または一部を１つまたは２つ以上の特定用途集積回路（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ    ＡＳＩＣ）またはプログラマブルロジックデバイス（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｄｅｖｉｃｅ    ＰＬＤ）に実装させることが可能である。
【００２４】
図２は、本発明のいくつかの実施形態に従って使用できるコンピュータ１４２の例を示す概要図である。図示のコンピュータ１４２の例としては、図１のクライアントコンピュータ１０２としての機能をもつコンピュータ、図１の共同ロケーション施設１０４や他のロケーションに置かれているコンピュータやノード（例えば、以下に説明する図５のノード２４８）、あるいはローカルまたはリモート管理コンソールがあり、これらは、以下に詳しく説明されている。
【００２５】
コンピュータ１４２は、１つまたは２つ以上のプロセッサまたは処理ユニット１４４、システムメモリ１４６、およびシステムメモリ１４６を含む種々システムコンポーネントをプロセッサ１４４に結合しているバス１４８を含んでいる。バス１４８は、数種タイプのバス構造のいずれかの１つまたは２つ以上を表しており、その中には、種々のバスアーキテクチャのいずれかを採用しているメモリバスまたはメモリコントローラ、ペリフェラル（周辺）バス、高速グラフィックスポート、およびプロセッサまたはローカルバスが含まれている。システムメモリとしては、リードオンリメモリ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ    ＲＯＭ）１５０とランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ    ＲＡＭ）１５２がある。基本入出力システム（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ    ＢＩＯＳ）１５４は、スタートアップ時のときのように、コンピュータ１４２内のエレメント間で情報を転送するのを支援する基本ルーチンで構成され、ＲＯＭ  １５０に格納されている。
【００２６】
コンピュータ１４２は、さらに、ハードディスク（図示せず）との間で読み書きを行い、ハードディスクドライブインタフェース１５７（例えば、ＳＣＳＩ、ＡＴＡ、他のタイプのインタフェース）を介してバス１４８に接続されているハードディスクドライブ１５６、取り外し可能磁気ディスク１６０との間で読み書きを行い、磁気ディスクドライブインタフェース１６１を介してバス１４８に接続されている磁気ディスクドライブ１５８、およびＣＤ−ＲＯＭやＤＶＤ、その他の光メディアなどの、取り外し可能光ディスク１６４との間で読み書きを行い、光ドライブインタフェース１６５を介してバス１４８に接続されている光ディスクドライブ１６２を装備している。これらのドライブおよびそれぞれに関連するコンピュータ読取可能媒体は不揮発性ストレージとして、コンピュータ１４２のためのコンピュータ読取可能命令、データ構造、プログラムモジュールおよび他のデータを格納している。ここで説明している例示環境では、ハードディスク、取り外し可能磁気ディスク１６０および取り外し可能光ディスク１６４が採用されているが、当業者ならば理解されるように、コンピュータによってアクセス可能なデータを格納しておくことができる他のタイプのコンピュータ読取可能媒体を、例示動作環境で使用することも可能であり、そのようなものとしては、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）などがある。
【００２７】
いくつかのプログラムモジュールは、ハードディスク、磁気ディスク１６０、光ディスク１６４、ＲＯＭ  １５０またはＲＡＭ  １５２に格納しておくことが可能であり、その中には、オペレーティングシステム１７０、１つまたは２つ以上のアプリケーションプログラム１７２、他のプログラムモジュール１７４、およびプログラムデータ１７６が含まれている。ユーザは、キーボード１７８やポインティングデバイス１８０などの、入力デバイスを通してコマンドと情報をコンピュータ１４２に入力することができる。他の入力デバイス（図示せず）としては、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどがある。上記および他の入力デバイスは、システムバスに結合されているインタフェース１６８を介して処理ユニット１４４に接続されている。モニタ１８４や他のタイプのディスプレイデバイスも、ビデオアダプタ１８６のような、インタフェースを介してシステムバス１４８に接続されている。モニタのほかに、パーソナルコンピュータは、スピーカやプリンタのような、他のペリフェラル（周辺）出力デバイス（図示せず）を装備しているのが代表的である。
【００２８】
コンピュータ１４２は、オプションとして、リモートコンピュータ１８８のような、１つまたは２つ以上のリモートコンピュータとの論理コネクションを使用するネットワーキング環境で動作している。リモートコンピュータ１８８は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードにすることが可能であり、図２にはメモリストレージデバイス１９０だけが示されているが、コンピュータ１４２に関連して上述したエレメントの多くまたは全部を含んでいるのが代表的である。図２に示す論理コネクションとしては、ローカルエリアネットワーク（ＬＡＮ）１９２と広域ネットワーク（ＷＡＮ）１９４がある。このようなネットワーキング環境は、オフィス、企業内（ｅｎｔｅｒｐｒｉｓｅ−ｗｉｄｅ）コンピュータネットワーク、イントラネット（ｉｎｔｒａｎｅｔ）、およびインターネット（ｔｈｅ  Ｉｎｔｅｒｎｅｔ）で普及している。ここで説明している本発明の実施形態では、リモートコンピュータ１８８は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｒｅｄｍｏｎｄ，  Ｗａｓｈｉｎｇｔｏｎ）で製造され、販売されている”Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ”  Ｗｅｂブラウザなどの、インターネットＷｅｂブラウザプログラム（これは、オプションとして、オペレーティングシステムに組み込まれていることもある）を実行している。
【００２９】
ＬＡＮネットワーキング環境で使用されるときは、コンピュータ１４２は、ネットワークインタフェースまたはアダプタ１９６を通してローカルネットワーク１９２に接続されている。ＷＡＮネットワーキング環境で使用されるときは、コンピュータ１４２は、インターネットなどの広域ネットワーク１９４上のコミュニケーションを確立するためのモデム１９８や他のコンポーネントを装備しているのが代表的である。モデム１９８は内蔵型と外付け型があり、どちらも、インタフェース（例えば、シリアルポートインタフェース１６８）を介してシステムバス１４８に接続されている。ネットワーキング環境では、パーソナルコンピュータ１４２に関連して上述したプログラムモジュールまたはその一部は、リモートメモリストレージデバイスに格納しておくことができる。以上から理解されるように、図示のネットワークコネクションは例示であり、コンピュータ間のコミュニケーションリンクを確立する他の手段を使用することも可能である。
【００３０】
一般的に、コンピュータ１４２のデータプログラムは、コンピュータの種々のコンピュータ読取可能媒体に時期を異にして格納されている命令によってプログラムされている。プログラムとオペレーティングシステムは、例えば、フロッピディスクやＣＤ−ＲＯＭに入れて配布されるのが代表的である。これらは、そこからインストールされた後、コンピュータの二次メモリ（ｓｅｃｏｎｄａｒｙ  ｍｅｍｏｒｙ）にロードされている。実行時に、これらは、少なくともその一部が、コンピュータの一次エレクトロニックメモリ（ｐｒｉｍａｒｙ  ｅｌｅｃｔｒｏｎｉｃ  ｍｅｍｏｒｙ）にロードされている。ここで説明している本発明によれば、マイクロプロセッサまたは他のデータプロセッサと関連付けて以下に説明されているステップを実現するための命令またはプログラムは、上記および他のタイプのコンピュータ読取可能ストレージ媒体に収められている。また、本発明によれば、コンピュータ自体が、下述する方法と手法に従ってプログラムされるようになっている。さらに、コンピュータのある種のサブコンポーネントは、下述する機能とステップを実行するようにプログラム可能になっている。本発明によれば、そのようなサブコンポーネントは下述するようにプログラムされるようになっている。さらに、ここで説明している本発明によれば、データ構造は、下述するように、種々タイプのメモリ媒体上に具現化されている。
【００３１】
説明の便宜上、プログラムおよびオぺレーティングシステムのような他の実行可能プログラムコンポーネントは、ここでは個別的ブロックとして示されているが、当然に理解されるように、このようなプログラムとコンポーネントは、時期を異にしてコンピュータの異なるストレージコンポーネントに置かれていて、コンピュータのデータプロセッサによって実行されるようになっている。
【００３２】
図３は、例示の共同ロケーション施設を示す。共同ロケーション施設１０４は、図示のように複数のノード２１０（サーバコンピュータとも呼ばれる）を含んでいる。共同ロケーション施設１０４は、ノード２１０をいくつでも収容することが可能であり、数千にもわたる数のノードを容易に収容することが可能である。
【００３３】
ノード２１０は、サーバクラスタ（またはノードクラスタ）と呼ばれる、いくつかのクラスタにグループ化されている。説明を簡単にし、図面の混乱を避けるために、図３にはシングルクラスタ２１２だけが示されている。各サーバクラスタは、共同ロケーション施設１０４の特定カスタマーに対応するノード２１０を含んでいる。あるサーバクラスタのノード２１０は、他のサーバクラスタのノード２１０から物理的に隔離されている。この物理的隔離は、共同ロケーション施設１０４でのロックされた個別ケージや個別ルームのように、異なる形体にすることができる。サーバクラスタを物理的に隔離すると、共同ロケーション施設１０４のカスタマーは、自分だけが自分のノードに物理的にアクセスできることが保証される（他のカスタマーはアクセスできない）。別の方法として、サーバクラスタは、相互に対して物理的にではなく、論理的に隔離することも可能である（例えば、以下で詳しく説明するクラスタ境界を使用して）。
【００３４】
ランドロード／テナント関係（貸主／借主（ｌｅｓｓｏｒ／ｌｅｓｓｅｅ）関係とも呼ばれる）は、ノード２１０をベースにして設定することも可能である。共同ロケーション施設１０４の所有者（および／またはオペレータ）は、個別的ノード２１０を所有している（さもなければ、その権利を有している）ので、「ランドロード」と見ることができる。共同ロケーション施設１０４のカスタマーは、ランドロードからノード２１０をリースするので、「テナント」と見ることができる。ランドロードは、どのタイプのデータまたはプログラムがテナントによってノード２１０にストアされているかには無関心であるのが代表的であるが、クラスタに境界を設けて、異なるクラスタからのノード２１０が、相互に通信するのを防止するようにしている。これについては、以下に詳しく説明されている。
【００３５】
以下では、ランドロード／テナント関係は、主に、２レベルに限定して、つまり、ランドロードとテナントと関連付けて説明されている。しかし、代替実施形態では、この関係は、任意の数のレベルに拡張することも可能である。例えば、ランドロードは、その管理責任を１つまたは２つ以上のサブランドロードと分担することが可能であり（この場合、各々のサブランドロードは、１つまたは２つ以上のノード２１０に対してある種の管理制御権をもつことになる）、テナントも、同じように、その管理責任を１つまたは２つ以上のサブテナントと分担することが可能である（この場合は、各サブテナントは、１つまたは２つ以上のノード２１０に対してある種の管理制御権をもつことになる）。
【００３６】
異なるクラスタのノード２１０は、物理的に隔離されていても、ネットワークコネクション（１つまたは複数）２１６へのアクセス、場合によっては、アプリケーションオペレーション管理コンソール２４２へのアクセスを可能にする、同じトランスポート媒体（１つまたは複数）２１１に物理的に結合されていることがよくある。これについては、以下に詳しく説明されている。このトランスポート媒体はワイヤード（有線）またはワイヤレス（無線）にすることができる。
【００３７】
各ノード２１０は、共有トランスポート媒体２１１に結合できるので、各ノード２１０は、他のどのノード２１０との間でデータを送受信できるかを制限するように構成可能である。いくつかの異なるノード２１０をテナントのサーバクラスタに含めることが可能になっていれば、テナントは、そのクラスタ内の異なるクラスタ２１０の間でデータを、処理や保管などの目的のために、受け渡しできることを望む場合がある。しかし、テナントは、サーバクラスタに属していない他のノード２１０にデータが渡されるのを望まないのが代表的である。他のどのノード２１０との間でデータを送受信できるかを制限するようにクラスタ内の各ノード２１０を構成すると、サーバクラスタの境界を設定し、適用することが可能になる。このようなサーバクラスタ境界を設定し、適用すると、テナントのデータがクラスタに属していないノードに誤って、あるいは不正に転送されることが防止される。
【００３８】
ランドロードによって設定される、これらの初期境界は、異なるテナントのノード２１０間のコミュニケーションを防止するので、各テナントのデータがそのテナントの他のノード２１０に渡されることが保証されることになる。テナント自身も、そのクラスタ内にサブ境界を別に定義し、ノード２１０のサブクラスタを設定すると、そこから出入りするデータが、クラスタ内の他のノードとの間で受け渡しされることが防止される。テナントは、そのようなサブクラスタ境界を自由に追加し、変更し、削除し、その他を行うことができるが、それが許されるのは、ランドロードによって定義された境界（つまり、クラスタ境界）内に限られている。従って、テナントは、ノード２１０との間で行われるコミュニケーションが、同じクラスタに属していない別のノード２１０にまで拡張されるような形で境界を変更することはできない。
【００３９】
共同ロケーション施設１０４は、ノード２１０の各々に対して高信頼電源２１４と高信頼ネットワークコネクション（１つまたは複数−以下同じ）２１６を提供している。電源２１４とネットワークコネクション２１４はノード２１０のすべてによって共有されているが、別の方法として、ノード２１０またはノードグループ（例えば、クラスタ）に別の電源２１４とネットワークコネクション２１６を提供することも可能である。高信頼電源を提供するための広範囲にわたる、従来のメカニズムは、いずれも、電源障害（停電）時のバックアップ発電機、余分な発電機、バッテリ、燃料電池、あるいは他の蓄電メカニズムと併用して、電力会社から供給される電力のような高信頼電源２１４を提供するために使用することができる。同様に、高信頼ネットワークコネクションを提供するための広範囲にわたる、従来のメカニズムは、いずれも、冗長コネクショントランスポート媒体、異種のコネクション媒体、異なるアクセスポイント（例えば、異なるインターネットアクセスポイント、異なるインターネットサービスプロバイダ（Ｉｎｔｅｒｎｅｔ  ｓｅｒｖｉｃｅ  ｐｒｏｖｉｄｅｒ    ＩＳＰ）など）などの、ネットワークコネクション２１６を提供するために使用することができる。
【００４０】
いくつかの実施形態では、ノード２１０は、共同ロケーション施設１０４のオペレータまたは所有者によって、施設１０４のスペースおよびサービス（例えば、高信頼電源２１４とネットワークコネクション２１６）と一緒にカスタマーにリースまたは販売されている。他の実施形態では、施設１０４のスペースとサービスはカスタマーにリースされるのに対し、１つまたは２つ以上のノードはカスタマーによって用意されるようになっている。
【００４１】
各ノード２１０の管理は多層方式で行われる。図４は、例示の多層管理アーキテクチャを示す。この多層アーキテクチャは３層からなっている。すなわち、クラスタオペレーション管理層２３０、アプリケーションオペレーション管理層２３２、およびアプリケーション開発層２３４である。クラスタオペレーション管理層２３０は、管理されるサーバ（１つまたは複数−以下同じ）と同じロケーションに（例えば、共同ロケーション施設に）ローカルに実装され、サーバのハードウェアオペレーションを管理することを担当している。図示の例では、クラスタオペレーション管理層２３０は、どのソフトウェアコンポーネントがノード２１０で実行されているかには無関心であり、関心をもっているのは、ノード２１０のハードウェアオペレーションを継続することと、ノードクラスタ間に境界を設定することだけである。
【００４２】
これに対して、アプリケーションオペレーション管理層２３２は、管理されるサーバが置かれている場所とは別の（例えば、共同ロケーション施設とは別の）リモートロケーションであって、サーバに結合されていてまだ通信状態にあるクライアントコンピュータから離れたロケーションに実装されている。アプリケーションオペレーション管理層２３２は、サーバのソフトウェアオペレーションを管理し、サーバクラスタ内にサブ境界を定義することを担当している。クライアントをサーバに結合するには、インターネット経由や専用（例えば、ダイヤルアップ）コネクション経由といったように、さまざまな方法で行うことが可能になっている。また、クライアントは、サーバに結合したままにしておくことも、不定期に（例えば、管理目的のための必要時のみ）結合することも可能である。
【００４３】
アプリケーション開発層２３４は、サーバとは別のロケーション（例えば、共同ロケーション施設とは別のロケーション）に置かれている、別のクライアントコンピュータに実装されており、サーバ上で実行されるソフトウェアコンポーネントまたはエンジンを開発することを担当している。別の方法として、共同ロケーション施設１０４のノード２１０に置かれているカレントソフトウェアにリモートクライアントがアクセスすることによって、ノードのための追加ソフトウェアコンポーネントやエンジンを開発することも可能である。アプリケーション開発層２３４が実装されているクライアントは、アプリケーションオペレーション管理層２３２が実装されているクライアントとは別のクライアントであるのが代表的であるが、これらの２層２３２と２３４は、同じクライアントに（少なくとも部分的に）実装させることも可能である。
【００４４】
図４には３層だけが示されているが、これとは別に、多層アーキテクチャは異なる数の層で構成することも可能である。例えば、アプリケーションオペレーション管理層を２層に分割し、各層に異なる（またはオーバラップする）責任をもたせれば、結果的に、４層のアーキテクチャが得られることになる。これらの層での管理は、同じ場所からでも（例えば、シングルアプリケーション管理コンソールを共用にする）、異なる場所からでも（例えば、２つの異なるオペレーション管理コンソール）行うことができる。
【００４５】
図３に戻って説明すると、共同ロケーション施設１０４は、各サーバクラスタのためのクラスタオペレーション管理コンソールを含んでいる。図３の例では、クラスタオペレーション管理コンソール２４０はクラスタ２１２に対応付けられている。クラスタオペレーション管理コンソール２４０はクラスタ２１２のためのクラスタオペレーション管理層２３０（図４）を実装しており、クラスタ２１２内のノード２１０のハードウェアオペレーションを管理することを担当している。クラスタオペレーション管理コンソール２４０はクラスタ２１２内のハードウェアをモニタリングし、ハードウェア障害を判別することを試みている。広範囲にわたる、どのようなハードウェア障害でもモニタリングすることが可能であり、その中には、プロセッサ障害、バス障害、メモリ障害などが含まれている。ハードウェアオペレーションをモニタリングする方法は、クラスタオペレーション管理コンソール２４０が、応答のために特定のハードウェアの使用を要求するテストメッセージや制御シグナルを送信するとか（無応答または誤りのある応答は障害が起きたことを示している）、生成のために特定のハードウェアの使用を要求するテストメッセージや制御シグナルを、ノード２１０からクラスタオペレーション管理コンソール２４０へ定期的に送信させるとか（特定の時間期間内にこのメッセージまたは制御シグナルを受信しないときは、障害が起きたことを示している）、といったように、種々の方法が可能である。別の方法として、クラスタオペレーション管理コンソール２４０は、どのタイプのハードウェア障害が発生したかを判別することを試みるのではなく、障害が起きたことだけを判別するようにすることもできる。
【００４６】
ハードウェア障害が検出されると、クラスタオペレーション管理コンソール２４０は、その障害を訂正するように行動する。クラスタオペレーション管理コンソール２４０がとるアクションは、ハードウェアだけでなく、障害のタイプによっても異なることがあり、また、サーバクラスタが異なると異なることもある。訂正アクションとしては、アドミニストレータに通知すること（例えば、ライトの点滅、オーディオアラーム、電子メールメッセージ、セルホンまたはページャのコール、など）、問題を物理的に訂正することを試みること（例えば、ノードをリブートする、障害を起こしたノードの代わりに別のバックアップノードをアクチベートする、など）などがある。
【００４７】
クラスタオペレーション管理コンソール２４０は、共同ロケーション施設１０４内にクラスタ境界も設定する。コンソール２４０によって設定されたクラスタ境界は、あるクラスタ（例えば、クラスタ２１２）内のノード２１０が、別のクラスタ（例えば、クラスタ２１２に属さないクラスタ）と通信するのを防止し、他方では、これと同時に、クラスタ内のノード２１０がそのクラスタ内の他のノードと通信する能力を妨げないようにする。これらの境界によると、テナントは、ネットワークコネクション２１６がテナントによって共有されている場合であっても、施設１０４に置かれた他のテナントのノード２１０に自分のデータを伝達できないことを知ることができるので、テナントのデータのセキュリティが得られることになる。
【００４８】
図示の例では、共同ロケーション施設１０４の各クラスタは、専用クラスタオペレーション管理コンソールを含んでいる。別の方法として、シングルクラスタオペレーション管理コンソールを複数のサーバクラスタに対応付けて、そのハードウェアオペレーションを管理させることも可能である。別の代替方法によれば、複数のクラスタオペレーション管理コンソールをシングルサーバクラスタに対応付けて、そのハードウェアオペレーションを管理させることも可能である。このような複数コンソールにシングルサーバクラスタを、共有方式で管理させることも、１つのコンソールを、別のコンソールのバックアップとして動作させることもできる（例えば、冗長性をもたせると信頼性が向上するので、保守などが容易化される）。
【００４９】
アプリケーションオペレーション管理コンソール２４２も、共同ロケーション施設１０４に結合され、通信状態に置かれている。アプリケーションオペレーション管理コンソール２４２は、共同ロケーション施設１０４から離れたロケーションに置かれている（つまり、共同ロケーション施設１０４内ではなく、カスタマーのオフィスに置かれているのが代表的である）。共同ロケーション施設１０４の各々のサーバクラスタに異なるアプリケーションオペレーション管理コンソール２４２を対応付けることができるが、別の方法として、シングルサーバクラスタに複数のコンソール２４２を対応付けることも、複数のサーバクラスタにシングルコンソール２４２を対応付けることも可能である。アプリケーションオペレーション管理コンソール２４２は、クラスタ２１２のためのアプリケーションオペレーション管理層２３２（図４）を実装しており、クラスタ２１２内のソフトウェアオペレーションを管理するだけでなく、クラスタ２１２内のサブ境界をセキュアにすることも担当している。
【００５０】
アプリケーションオペレーション管理コンソール２４２はクラスタ２１２内のソフトウェアをモニタリングしており、ソフトウェア障害を判別することを試みている。広範囲にわたるソフトウェア障害をモニタリングすることが可能であり、例えば、「ハングアップした」または無応答のアプリケーションプロセスまたはスレッド、アプリケーションプロセスまたはスレッドの実行時エラーなどの、ソフトウェア障害をモニタリングすることができる。ソフトウェアオペレーションのモニタリング方法はさまざまな方法が可能であり（上述したハードウェアオペレーションのモニタリングと同様である）、例えば、アプリケーションオペレーション管理コンソール２４２が、応答のために特定のルーチンの使用を要求するテストメッセージや制御シグナルをノード２１０上で実行中の特定プロセスまたはスレッドに送信するとか（無応答または誤った応答は障害が起きたことを示している）、生成のために特定ソフトウェアルーチンの使用を要求するメッセージや制御シグナルをノード２１０上で実行中のプロセスまたはスレッドからアプリケーションオペレーション管理コンソール２４２に定期的に送信させるとか（このようなメッセージや制御シグナルを特定時間期間内に受け取らなかったときは、障害が起きたことを示している）、といった方法が可能である。別の方法として、アプリケーションオペレーション管理コンソール２４２は、どのタイプのソフトウェア障害が発生したかを判別する試みを行うのではなく、障害が発生したことだけを判別するようにすることもできる。
【００５１】
ソフトウェア障害が検出されると、アプリケーションオペレーション管理コンソール２４２は、その障害を訂正するように動作（アクション）する。アプリケーションオペレーション管理コンソール２４２がとるアクションは、ソフトウェアだけでなく、障害のタイプによっても異なることがあり、また、サーバクラスタが異なると異なることもある。訂正アクションとしては、アドミニストレータに通知すること（例えば、ライトの点滅、オーディオアラーム、電子メールメッセージ、セルホンまたはページャのコール、など）、問題を訂正することを試みること（例えば、ノードをリブートする、ソフトウェアコンポーネントまたはエンジンのイメージを再ロードする、プロセスを終了した後再実行する、など）などがある。
【００５２】
従って、ノード２１０の管理は、ノード２１０と同一ロケーションに置かれている他のノード（存在する場合）の数に関係なく、複数のマネージャに分散化されている。この多層管理によると、ハードウェアオペレーション管理はアプリケーションオペレーション管理から分離されるので、ノードに対する管理責任を、２つの異なるコンソール（各々は異なるエンティティの制御下に置かれている）に分担させることが可能になる。
【００５３】
多層管理アーキテクチャは、他の状況下において、１つまたは２つ以上のコンピュータが共同ロケーション施設に属していない場合であっても、これらのコンピュータを１つまたは２つ以上のリモートロケーションから管理するためにも使用することができる。１つの例として、スモールビジネスは独自のコンピュータを購入し、別の会社にそのコンピュータのハードウェアオペレーションの管理を委託し、場合によっては、さらに別の会社にコンピュータのソフトウェアオペレーションの管理を委託することができる。
【００５４】
この例では、スモールビジネス（コンピュータの所有者）は第１管理層になっている。そのあと、所有者はコンピュータをアウトソース（ｏｕｔｓｏｕｒｃｅｄ）ハードウェアオペレータにリースしているが、そのアウトソースハードウェアオペレータは第２管理層になっている。このハードウェアオペレータは、管理対象のコンピュータと一緒にスモールビジネスにローカルに置かれているコントロールコンソールからでも、あるリモートロケーションに置かれているコントロールコンソールからでも、クラスタオペレーション管理コンソール２４０と同じようにハードウェアオペレーションを管理することが可能になっている。そのあと、ハードウェアオペレータは、コンピュータをアウトソースソフトウェアオペレータにリースしているが、そのアウトソースソフトウェアオペレータは第３管理層になっている。このソフトウェアオペレータは、管理対象のコンピュータと一緒にスモールビジネスにローカルに置かれているコントロールコンソールからでも、あるリモートロケーションに置かれているコントロールコンソールからでも、アプリケーションオペレーション管理コンソール２４２と同じようにソフトウェアオペレーションを管理することが可能になっている。そのあと、ソフトウェアオペレータは、コンピュータをその所有者に戻すようにリースするので、所有者はコンピュータの「ユーザ」になり、これは第４管理層になっている。通常オペレーション期間は、コンピュータ所有者はこの第４管理層を占有している。しかし、コンピュータ所有者は、例えば、コンピュータ所有者がソフトウェアまたはハードウェアオペレータを変更したいとき、その第１管理層の権利を行使して、ソフトウェアオペレータとハードウェアオペレータとのリースの一方または両方を打ち切ることができる。
【００５５】
図５は、本発明のいくつかの実施形態による例示ノードを示す。ノード２４８は、ノードの外部に存在する他のデバイス（例えば、図３のコンソール２４０と２４２）によって管理されている例示ノードである。ノード２４８は図２のノードにすることも、別のロケーションに置かれたノード（例えば、ビジネスまたはホーム環境におけるコンピュータ）にすることもできる。ノード２４８は、”ＢＭｏｎｉｔｏｒ”と呼ばれるモニタ２５０、および複数のソフトウェアまたはエンジン２５２を含み、大容量ストレージデバイス２６２に結合されている（大容量ストレージデバイスに内蔵されている場合もある）。図示の例では、ノード２４８は、複数の特権レベル（ｐｒｉｖｉｌｅｇｅ  ｌｅｖｅｌ）（例えば、ｘ８６アーキテクチャプロセッサにおけるリング）をサポートするプロセッサ（１または複数）を搭載したサーバコンピュータになっている。図示の例では、これらの特権レベルはリング（ｒｉｎｇ）と呼ばれているが、異なるプロセッサアーキテクチャを採用している別の実装では、別の用語が用いられている場合がある。この複数リングによれば、１組の優先レベル（ｐｒｉｏｒｉｔｉｚｅｄ  ｌｅｖｅｌ）が用意され、ソフトウェアがその優先レベルで実行されるようになっている。なお、優先レベルは４レベル（リング０，  １，  ２，  ３）になっていることが多い。リング０は、最大特権リングと呼ばれるのが代表的である。リング０で実行されるソフトウェアプロセスは、特権の低いリングで実行されるプロセスよりも、アクセスできる機能（例えば、命令）が多くなっているのが代表的である。さらに、特定のリングで実行されているプロセッサは、優先度の高いリングのコードやデータを変更することができない。図示の例では、ＢＭｏｎｉｔｏｒ  ２５０はリング０で実行されるのに対し、エンジン２５２はリング１（またはリング１および／または３）で実行されている。従って、ＢＭｏｎｉｔｏｒ２５０（リング０で実行されている）のコードまたはデータは、エンジン２５２（リング１で実行されている）によって直接に変更することができない。むしろ、このような変更は、エンジン２５２がＢＭｏｎｉｔｏｒ２５０に変更を依頼することによって（例えば、ＢＭｏｎｉｔｏｒ２５０にメッセージを送るとか、ＢＭｏｎｉｔｏｒ２５０の関数を呼び出すとか、といった方法で）行われる必要がある。ＢＭｏｎｉｔｏｒ２５０をリング０で実装すると、ＢＭｏｎｉｔｏｒ２５０は、ＢＭｏｎｉｔｏｒ２５によって課されている制限をバイパスしようとする乱暴なあるいは悪意のあるエンジン２５２から保護されることになる。
【００５６】
ＢＭｏｎｉｔｏｒ２５０は、ノード２４８の基本的制御モジュールである。つまり、これは、ネットワークインタフェースカードとメモリマネージャの両方を制御している（オプションとして、内蔵している場合もある）。ネットワークインタフェースカード（これは、ＢＭｏｎｉｔｏｒ２５０とは別になっていることもあれば、ＢＭｏｎｉｔｏｒ２５０がネットワークインタフェースカードに内蔵されていることもある）を制御すると、ＢＭｏｎｉｔｏｒ２５０は、ノード２４８との間で送受されるデータを制御することができる。メモリマネージャを制御すると、ＢＭｏｎｉｔｏｒ２５０は、ノード２４８で実行されているエンジン２５２に対するメモリの割り振りを制御できるので、乱暴なあるいは悪意のあるエンジンがＢＭｏｎｉｔｏｒ２５０のオペレーションに干渉するのを防止することができる。
【００５７】
ノード２４８の種々形態がＢＭｏｎｉｔｏｒ２５０（例えば、ネットワークインタフェースカード）の制御下に置かれていることがあっても、ＢＭｏｎｉｔｏｒ２５０は、その機能の少なくとも一部を、ノード２４８で実行されているエンジン２５２が利用できるようにしている。ＢＭｏｎｉｔｏｒ２５０は、データを別のノード２４８やインターネットに送出するといったように、エンジン２５２がそこから機能へのアクセスを要求できるようにするインタフェースとなっている（例えば、以下で詳しく説明するコントローラ２５４を通して）。これらの要求は、メッセージを送信する、関数をコールする、といったように、さまざまな形体にすることができる。
【００５８】
ＢＭｏｎｉｔｏｒ２５０は、コントローラ２５４、ネットワークインタフェース２５６、１つまたは２つ以上のフィルタ２５８、および分散ホスト制御プロトコル（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ    ＤＨＣＰ）モジュール２６０を含んでいる。ネットワークインタフェース２５６は、共同ロケーション施設１０４の内部トランスポート媒体２１１を通してノード２４８とネットワーク（例えば、図３のネットワークコネクション１２６）とを結ぶインタフェースとなっている。他のどのノード（および／または他のソース）またはターゲット（例えば、図１のインターネット１０８に結合されている）との間でデータを送受信できるか（あるいは送受信できないか）は、フィルタ２５８によって判別される。これらのノードまたは他のソース／ターゲットを判別するには、ネットワークアドレス（例えば、インターネットプロトコル（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ    ＩＰ）アドレス）、ある種のグローバルにユニークな識別子（ＩＤ）、ローカルにユニークな識別子（例えば、共同ロケーション施設１０４が所有するまたは独自の番号付け方式）といった、さまざまな方法で行うことが可能である。
【００５９】
フィルタ２５８は、ノードへのアクセスを完全に制限することも（例えば、ノードとの間でデータの送受信ができない）、ノードへのアクセスを部分的に制限することもできる。部分的アクセス制限は、さまざまな形体にすることができる。例えば、ノードからデータを受信できるが、ノードには送信できない（またはその逆）、といったようにノードを制限することができる。別の例として、あるタイプのデータ（例えば、ＨＴＴＰなどの、ある種のプロトコルに準拠するコミュニケーション）だけが、ノードとの間で送信および／または受信できるようにノードを制限することもできる。特定タイプのデータに基づくフィルタリングをどのように実装するかは、データをパケットに入れ、そのパケットに含まれるデータのタイプを示すヘッダ情報と一緒にデータを伝達するといった、さまざまな方法が可能である。
【００６０】
フィルタ２５８を、アプリケーションオペレーション管理コンソール２４２またはクラスタオペレーション管理コンソール２４０によって追加することができる。図示の例では、クラスタオペレーション管理コンソール２４０によって追加されたフィルタ（クラスタ境界を設定するために）は、ノードへの完全アクセスを制限しているのに対し（例えば、別のノードへのアクセスはすべてが禁止される）、アプリケーションオペレーション管理コンソール２４２によって追加されたフィルタ（クラスタ内にサブ境界を設定するために）は、ノードへの完全アクセスまたは部分的アクセスのどちらかを制限することが可能になっている。
【００６１】
コントローラ２５４も、どのフィルタをフィルタ２５８に対して追加できるかについていくつかの制限を設けている。図示の例では、コントローラ２５４は、クラスタオペレーション管理コンソール２４０が、必要とするどのフィルタでも追加できるようにしている（これにより、クラスタの境界が定義される）。他方、コントローラ２５４はアプリケーションオペレーションを制限して、少なくともコンソール２４０によって追加されるフィルタだけをアプリケーション管理コンソール２４２により追加する。コンソール２４０によって追加されたフィルタより制限度の低いフィルタを追加しようとすると（その場合には、サブ境界はクラスタ境界を越えることになる）、コントローラ２５４は、そのフィルタを追加することを拒否する（別の方法として、制限度が低くならないようにフィルタを修正することも可能である）。このような制限を設けると、コントローラ２５４は、アプリケーションオペレーション管理レベルで設定されたサブ境界が、クラスタオペレーション管理レベルで設定されたクラスタ境界を越えるのを防止することができる。
【００６２】
コントローラ２５４は、１つまたは２つ以上のフィルタ２５８を使用して、ノード２４８から送信されるおよび／またはノード２４８によって受信されるデータパケットを制限するように動作する。あるエンジン２５２を目的としたデータ、またはエンジン２５２から別のノードに送られるデータは、すべてがネットワークインタフェ−ス２５６とフィルタ２５８を経由して渡される。コントローラ２５４はデータにフィルタ２５８を適用し、データのターゲット（例えば、そのデータを収めているパケットのヘッダ部分に指定されているのが代表的）を、フィルタ２５８に指定されている許容された（および／または制限された）ノード（および／またはネットワークアドレス）と比較する。データのターゲットが許容されていることをフィルタ２５８が示していれば、コントローラ２５４は、データがターゲットに渡されること（ノード２４８に送り込まれるか、あるいはノード２４８から送出されること）を許可する。他方、データのターゲットが許容されないことをフィルタ２５８が示していれば、コントローラ２５４は、データがターゲットに渡されるのを禁止する。コントローラ２５４は、データをターゲットに渡すことができないとの通知をデータのソース（送信元）に戻すこともあれば、データを無視または破棄するだけのこともある。
【００６３】
コントローラ２５４によってフィルタ２５８をデータに適用すると、サーバクラスタの境界に制限を設けることが可能になる。フィルタ２５８は、サーバクラスタ（例えば、クラスタ２１２）内の全ノードのノードアドレスを使用してプログラムすることができる（例えば、図３のアプリケーションオペレーション管理コンソール２４２によって）。このようにすると、コントローラ２５４は、サーバクラスタに属していないノードから受信されたデータが、エンジン２５２に渡されるのを防止し、同様に、サーバクラスタ内のノードとは別のノードから送られてくるデータが送信されるのを防止する。同様に、インターネット１０８（図１）から受信されたデータはターゲットノード２１０を特定できるので（例えば、ＩＰアドレスによって）、ターゲットノードとは別のノードのコントローラ２５４は、データがエンジン２５２に渡されるのを防止することになる。
【００６４】
ＤＨＣＰモジュール２６０は分散ホスト制御プロトコル（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈｏｓｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ    ＤＨＣＰ）を実装しているので、ＢＭｏｎｉｔｏｒ２５０（従って、ノード２１０）がＤＨＣＰサーバ（例えば、図３のクラスタオペレーション管理コンソール２４０）からＩＰアドレスを取得することを可能にしている。ノード２１０の初期化プロセス期間に、ＤＨＣＰモジュール２６０は、ＤＨＣＰサーバにＩＰアドレスを要求し、この要求を受けて、ＤＨＣＰサーバはＩＰアドレスをモジュール２６０に与える。ＤＨＣＰに関する詳細情報は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｒｅｄｍｏｎｄ，  Ｗａｓｈｉｎｇｔｏｎ）から入手することができる。
【００６５】
ソフトウェアエンジン２５２は、広範囲にわたる従来ソフトウェアコンポーネントのどれかを含んでいる。エンジン２５２の例としては、オペレーティングシステム（例えば、Ｗｉｎｄｏｗｓ（登録商標）  ＮＴ）、ロードバランシング（ｌｏａｄ  ｂａｌａｎｃｉｎｇ）サーバコンポーネント（例えば、複数ノード２４８の処理負荷を平衡化する）、キャッシングサーバコンポーネント（例えば、別のノード２４８からの、またはインターネット経由で受信したデータおよび／または命令をキャッシュする）、ストレージマネージャコンポーネント（例えば、別のノード２４８からの、またはインターネット経由で受信したデータのストレージを管理する）、などがある。ある実装では、エンジン２５２の各々はプロトコルベースのエンジンであるので、エンジン２５２およびＢＭｏｎｉｔｏｒ２５０が同じプログラミング言語で書かれていなくても、メッセージおよび／または関数コールを通して、ＢＭｏｎｉｔｏｒ２５０および他のエンジン２５２と通信する。
【００６６】
コントローラ２５４は、さらに、エンジン２５２の実行を制御することを担当している。この制御は、エンジン２５２の実行開始、エンジン２５２の実行終了、ストレージデバイスからのエンジン２５２のイメージの再ロード、エンジン２５２の実行のデバッグ、などのように、さまざまな形体にすることができる。コントローラ２５４は、これらの制御アクションのどれをとるか、その制御アクションをいつとるか、に関する指示を、図３のアプリケーションオペレーション管理コンソール２４２から受け取る。従って、エンジン２４２の制御は、実際には、共同ロケーション施設１０４でローカルにではなく、リモートのアプリケーションオペレーション管理コンソール２４２によって管理される。コントローラ２５４は、アプリケーションオペレーション管理コンソール２４２が、フィルタセット２５８からどのフィルタを追加するか（および／または除去するか）を、そこから指定できるインタフェースともなっている。
【００６７】
コントローラ２５４は、図３のクラスタオペレーション管理コンソール２４０が、そこからコマンドをコントローラ２５４に渡すことができるインタフェースも備えている。ノードをリブートする、ノードをシャットダウンする、ノードを低電力ステートに（例えば、サスペンドまたはスタンバイステートに）する、クラスタ境界を変更する、暗号鍵を変更する、といったように、種々タイプのハードウェアオペレーション中心のコマンドを、クラスタオペレーション管理コンソール２４０からコントローラ２５４に伝達することが可能になっている。
【００６８】
コントローラ２５４は、さらに、ＢＭｏｎｉｔｏｒ２５０に対して暗号化サポートを行うので、データを大容量ストレージデバイス２６２（例えば、磁気ディスク、光ディスクなど）にセキュアにストアしておくこと、およびノード２４８とオペレーション管理コンソール（例えば、図３のコンソール２４０または２４２）の間でセキュアコミュニケーションを行うことを可能にしている。コントローラ２５４は複数の暗号鍵を保存しており、その中には、クラスタオペレーション管理コンソール２４０からノード２４８にアクセスするランドロード用の鍵（「ランドロード鍵」と呼ぶことにする）、アプリケーションオペレーションコンソール２４２からノード２４８にアクセスするノード２４８の借主用の鍵（「テナント鍵」と呼ぶことにする）、および大容量ストレージデバイス２６２にデータをセキュアにストアするためにＢＭｏｎｉｔｏｒ２５０が使用する鍵（「ディスク鍵」と呼ぶことにする）が含まれている。
【００６９】
ＢＭｏｎｉｔｏｒ２５０は公開鍵暗号化手法（ｐｕｂｌｉｃ  ｋｅｙ  ｃｒｙｐｔｏｇｒａｐｈｙ）を利用して、ノード２４８と管理コンソール（例えば、コンソール２４０と２４２）の間でセキュアコミュニケーションが行われるようにしている。この公開鍵暗号化手法は、公開鍵（ｐｕｂｌｉｃ  ｋｅｙ）と秘密鍵（ｐｒｉｖａｔｅ  ｋｅｙ）の両方を含む鍵ペア（ｋｅｙ  ｐａｉｒ）と暗号化アルゴリズム（ｅｎｃｒｙｐｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）をベースにしている。暗号化アルゴリズムは、公開鍵に基づいてデータを暗号化し、秘密鍵がなければデータが効率的に解読されないようにする。従って、公開鍵保持者からのコミュニケーションは、公開鍵を使用して暗号化されるので、秘密鍵所有者だけがそのコミュニケーションを解読できるようにしている。公開鍵暗号化手法は、周知のＲＳＡ（Ｒｉｖｅｓｔ，  Ｓｈａｍｉｒ，  Ａｄｅｌｍａｎ）暗号化手法のように、さまざまなものが使用可能である。暗号化手法の基礎入門書として、Ｂｒｕｃｅ  Ｓｃｈｎｅｉｒ著「応用暗号化手法：プロトコル、アルゴリズム、およびＣによるソースコード（Ａｐｐｌｉｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ：  Ｐｒｏｔｏｃｏｌｓ，  Ａｌｇｏｒｉｔｈｍｓ，  ａｎｄ  Ｓｏｕｒｃｅ  Ｃｏｄｅ  ｉｎ  Ｃ）」、Ｊｏｈｎ  Ｗｉｌｅｙ  ＆  Ｓｏｎｓ、初版著作権所有１９９４（または第２版著作権所有１９９６）がある。
【００７０】
ＢＭｏｎｉｔｏｒ２５０は、ランドロードとテナントの両者のための公開／秘密鍵ペアを含むように初期化されている。これらの鍵ペアはＢＭｏｎｉｔｏｒ２５０によって生成できるが、別の方法として、他のコンポーネントが生成して、ＢＭｏｎｉｔｏｒ２５０にストアしておくこともできる（この場合、他のコンポーネントは鍵ペアの知識を壊さないものとして信頼されている）。本明細書では、Ｕは公開鍵を示し、Ｒは秘密鍵を示すように使用されている。ランドロード用の公開／秘密鍵ペア２６４は（ＵL，  ＲL）と呼ばれ、テナント用の公開／秘密鍵ペア２６６は（ＵT，  ＲT）と呼ばれる。ＢＭｏｎｉｔｏｒ２５０は、公開鍵ＵLとＵTをランドロードが利用できるようにしているが、秘密鍵ＲLとＲT  は秘密に保っている。図示の例では、ＢＭｏｎｉｔｏｒ２５０は、秘密鍵ＲLとＲT  を公開することがないので、ランドロードだけでなく、テナントも、公開鍵を使用して暗号化した情報（例えば、それぞれ、図３のクラスタオペレーション管理コンソール２４０とアプリケーションオペレーション管理コンソール２４２を通して）が、ＢＭｏｎｉｔｏｒ２５０以外の、他のどのエンティティによっても解読されないことが保証される。
【００７１】
ランドロードに公開鍵ＵLとＵTが与えられると、ランドロードは特定のテナントにノード２１０を割り当て、そのテナントに公開鍵ＵTを与えることができる。この公開鍵ＵTを使用すると、テナントは、ＢＭｏｎｉｔｏｒ２５０だけが解読できる（秘密鍵ＲTを使用して）、ＢＭｏｎｉｔｏｒ２５０へのコミュニケーションを解読することができる。必ずしも必要ではないが、テナントにとって賢明である初期ステップでは、ＢＭｏｎｉｔｏｒ２５０が新しい公開／秘密鍵ペア（ＵT，  ＲT）を生成することをＢＭｏｎｉｔｏｒ２５０に要求するようになっている。この要求を受けて、ＢＭｏｎｉｔｏｒ２５０の鍵ジェネレータ（ｋｅｙ  ｇｅｎｅｒａｔｏｒ）２６８は、さまざまな周知方法のいずれかで新しい公開／秘密鍵ペアを生成し、その新鍵ペアを鍵ペア２６６としてストアし、新公開鍵ＵTをテナントに送り返す。新鍵ペアを生成すると、テナントは、ランドロードを含めて、どの他のエンティティにも、テナントの公開鍵ＵTが気づかれないことが保証される。さらに、テナントは、新しい鍵ペアを別の時期に生成させることも可能になっている。
【００７２】
ＢＭｏｎｉｔｏｒ２５０は、どのエンティティが新しい公開／秘密鍵ペアを要求できるかについて制約を設けている。テナントは、新しいテナント公開／秘密鍵ペアを要求できるが、新しいランドロード公開／秘密鍵ペアを要求することはできない。他方、ランドロードは、新しいランドロード公開／秘密鍵ペアだけでなく、新しいテナント公開／秘密鍵ペアも要求することができる。新しい公開／秘密鍵ペアの要求を受け取ると、コントローラ２５４は、要求者がテナントであるか、ランドロードであるかを確かめてから（例えば、リモートログインプロシージャ、パスワード検証、要求者がノード２４８と通信している、あるいは結合されている仕方、などに基づいて）、新鍵ペアを生成するようにしている。
【００７３】
ＢＭｏｎｉｔｏｒ２５０と、ランドロードおよびテナント制御デバイス（例えば、それぞれオペレーション管理コンソール２４０と２４２）との間の双方向コミュニケーションをセキュアに保つために、ランドロードとテナント制御デバイスも、公開／秘密鍵ペアを生成すること（さもなければ、公開／秘密鍵ペアが割り当てられること）が可能になっている。そのような場合には、コンソール２４０と２５０は、セキュアに通信したいと望んでいる（あるいはそのように期待している）相手側ノード２４８のＢＭｏｎｉｔｏｒ２５０にそれぞれの公開鍵を伝えることができる。コンソールの公開鍵がＢＭｏｎｉｔｏｒ２５０に知らされると、ＢＭｏｎｉｔｏｒ２５０は、そのコンソールへのコミュニケーションを、その公開鍵を使用して暗号化できるので、秘密鍵をもつコンソール以外の他のデバイスがそのコミュニケーションを読み取ることが防止される。
【００７４】
ＢＭｏｎｉｔｏｒ２５０はディスク鍵２７０も保持しており、これは、１つまたは２つ以上の対称鍵２７２と２７４を使用して生成される（ここで、対称鍵（ｓｙｍｍｅｔｒｉｃ  ｋｅｙｓ）とは、秘密鍵暗号化で使用される秘密鍵のことである）。対称鍵でもあるディスク鍵２７０は、情報を大容量ストレージデバイス２６２にストアするためにＢＭｏｎｉｔｏｒ２５０によって使用される。ＢＭｏｎｉｔｏｒ２５０はディスク鍵２７０をセキュアに保っているので、これは、ノード２４８が大容量ストレージデバイス２６２にストアするデータを暗号化し、ノード２４８が大容量ストレージデバイス２６２から取り出すデータを解読するためにだけ使用される（従って、ランドロードとテナントを含めて、他のどのエンティティにも、ディスク鍵２７０を知らせないで済むようになっている）。別の方法として、ランドロードまたはテナントにディスク鍵２７０を知らせることも、あるいはディスク鍵２７０のベースとなっている別の鍵を知らせることも可能である。
【００７５】
ディスク鍵２７０を使用すると、大容量ストレージデバイス２６２にストアされているデータは、それを暗号化したノード２４８だけが解読でき、他のどのノードまたはデバイスも解読できないことが保証される。従って、例えば、大容量ストレージデバイス２６２が除去されているような場合に、デバイス２６２上のデータを読み取る試みが行われると、その試みは失敗することになる。ＢＭｏｎｉｔｏｒ２５０は、データのソースに関係なく、大容量ストレージデバイス２６２にストアされているデータを、ディスク鍵２７０を使用して暗号化する。例えば、データのソースとしては、テナントのカスタマーが使用しているクライアントデバイス（例えば、図１のクライアント１０２）、オペレーション管理コンソール（例えば、図３のコンソール２４２）などがある。
【００７６】
ディスク鍵２７０は、対称鍵２７２と２７４に基づいて生成される。本明細書では、Ｋは対称鍵を指すために使用されているので、ＫLはランドロード対称鍵（鍵２７２）を指し、ＫTはテナント対称鍵（鍵２７４）を指している。個別鍵２７２と２７４を生成する方法としては、従来のさまざまな方法が可能である（例えば、乱数ジェネレータに基づいて）。ディスク鍵２７０はＫL鍵が単独である場合と、ＫL鍵とＫT鍵の組み合わせである場合とがある。ノード２１０が現在テナントにリースされていない場合や、テナントがＫT鍵を設定していなかった場合には、コントローラ２５４は、ＫL鍵をディスク鍵２７０として保存している。しかし、ノード２４８がテナントにリースされていて、テナントがＫT鍵を設定している場合には、ディスク鍵２７０はＫL鍵とＫT鍵の組み合わせになっている。ＫL鍵とＫT鍵の組み合わせはさまざまなものが可能であり、ある実装では、一方の鍵を使用して他方の鍵を暗号化するように組み合わされており、暗号化された鍵がディスク鍵２７０になっている。従って、大容量ストレージデバイス２６２にストアされたデータは、テナントが対称鍵ＫTを設定していない場合であっても、常に暗号化されている。さらに、ランドロードとテナントがそれぞれの鍵ＫLとＫTを知っている場合には、これらの鍵を組み合わせると、データを暗号化するために使用できる鍵が得られるので、ランドロードとテナントのどちらも、個別的にデータを解読することができないことになる。
【００７７】
図示の例では、初期時には、ノード２４８に対称鍵ＫLとＫTが与えられていない。ランドロードはノード２４８を初期化するとき、新しい鍵ＫLを要求し（例えば、図３のクラスタオペレーション管理コンソール２４０を通して）、この要求に応答して、鍵ジェネレータ２６８は新しい鍵を生成し、コントローラ２５４はこの新生成の鍵を鍵２７２として保存しておく。同様に、テナントが初めてノード２４８をリースするとき、ノード２４８にはまだテナント対称鍵ＫTが与えられていない。テナントは、新しい鍵ＫTの要求を通知することができ（例えば、図３のアプリケーションオペレーション管理コンソール２４２を通して）、この要求に応答して、鍵ジェネレータ２６８は新しい鍵を生成し、コントローラ２５４はこの新生成の鍵を鍵２７４として保存しておく。さらに、新しい鍵ＫTまたはＫLが生成されるたびに、コントローラ２５４は新しいディスク鍵２７０を生成する。
【００７８】
図５にはランドロード鍵とテナント鍵（ＫLとＫT）だけが示されているが、別の方法として、追加の対称鍵（例えば、サブテナント、サブランドロードなどからの）を組み合わせて、ディスク鍵２７０を得ることも可能である。例えば、３つの対称鍵がある場合、第１の鍵を第２の鍵で暗号化し、その結果を第３の鍵で暗号化するように組み合わせると、ディスク鍵２７０を得ることができる。例えば、サブテナント用に追加の対称鍵を使用することも可能である。
【００７９】
ランドロードは、テナント鍵ペアであっても、ランドロード鍵ペアであっても、新しい公開／秘密鍵ペアをＢＭｏｎｉｔｏｒ２５０に要求することもできる。新鍵ペアを要求すると、例えば、ランドロードは、ノード２４８を一方のテナントから別のテナントに再割り当てすることができる。１つの例として、テナントがノード２４８を必要としなくなった場合（またはノードの必要リース料の支払いを行わない場合）、ランドロードはＢＭｏｎｉｔｏｒ２５０と通信して（例えば、図３のコンソール２４０を通して）テナントの公開／秘密鍵ペアを変更することができる（変更すると、テナントは新鍵をもっていないので、テナントからのどのコミュニケーションも、ＢＭｏｎｉｔｏｒ２５０によって解読されることが禁止されることになる）。さらに、ランドロードは、ランドロード用の新しい公開／秘密鍵ペアを要求することも可能である。これは、特定のインターバルで行うことも、ランドロードが新鍵を必要としたときにだけ行うこともできる（例えば、安全上の配慮から）。
【００８０】
ある実装では、ＢＭｏｎｉｔｏｒ２５０は、新しいランドロード秘密鍵ＲLを生成するたびに、ディスク鍵２７０とランドロード対称鍵ＫLの両方を破棄し、新しい鍵ＫL（および新しいディスク鍵２７０）を生成する。鍵ＫLとディスク鍵２７０を置き換えると（および旧鍵の記録をとっておかないと）、ランドロードは、その鍵を変更した後、ノード２１０に以前にストアされていたどのテナントデータも、アクセスされないことを保証することができる。従って、ランドロードは、テナントがノード２４８に以前にストアされていたデータにアクセスするのを禁止したいときだけ、新しい公開／秘密鍵ペアを生成するようにする注意が必要である。
【００８１】
さらに、ＢＭｏｎｉｔｏｒ２５０は、新しいテナント秘密鍵ＲTを生成するたびに、ディスク鍵２７０とテナント対称鍵ＫTの両方を、新しく生成した鍵ＫT（および新しいディスク鍵２７０）で置き換えることも可能である。このようにすると、テナントはデータの暗号化方法を望み通りに変更できるので、ノード２４８にストアされているデータのセキュリティが強化されることになる。しかし、ＢＭｏｎｉｔｏｒ２５０が旧鍵ＫTとディスク鍵２７０を破棄したときは、テナントは、ノードに以前にストアされていたデータが必要でなくなったときだけ（例えば、別の場所にバックアップがとられている）、新しいテナント秘密鍵ＲTを要求するようにする注意が必要である。
【００８２】
なお、ここで注意すべきことは、異なるノード２４８には異なる鍵（鍵２６４、２６６、および２７０）が与えられるのが代表的であることである。別の方法として、複数のノードに同じ鍵（例えば、鍵２７０）を使用させることも可能である。しかし、そのような場合は、鍵の伝達（例えば、ノード２４８間の）は、セキュリティが危険にさらされないようにセキュアに行われるようにする配慮が必要である。例えば、追加の公開／秘密鍵ペアを、２つのノード２４８のＢＭｏｎｉｔｏｒ２５０に使用させると、相互間の情報の伝達がセキュアに行われることになる。
【００８３】
従って、権利が保証され、行使されるリースハードウェア環境を設定することができる。ランドロードは、ノードを複数の異なるテナントにリースし、異なるテナントにリースされたノードが相互に通信するのを防止する境界を設定することができる。テナントは、リースしたノードに、他のテナントではなく、管理のために自分だけがアクセスできること、および他のだれもがアクセスできないようにデータがセキュアにノードにストアされること（たとえテナントがそのハードウェア使用を放棄または縮小した場合でも）が保証されることになる。さらに、ランドロードとテナントのどちらも、セキュアにストアされたデータがテナントのいずれかによって危険にさらされることなく、ランドロードが機器を移動し、どのノードが個人に割り当てられているかを変更し、ハードウェア（例えば、大容量ストレージデバイス）を除去できる、といったが保証が得られることになる。
【００８４】
図６は、本発明のいくつかの実施形態による暗号鍵生成と配布のための例示プロセスを示す。初めに、コンピュータ（例えば、図５のノード２４８）は、ランドロードとテナントの両方に対する公開／秘密鍵ペアを特定する（ステップ２８０）。この特定は、以前に生成された鍵ペアにアクセスすることによって行うことも、コンピュータ自身が新しい鍵を生成することによって行うこともできる。コンピュータは、ランドロード鍵ペアからのランドロード秘密鍵とテナント鍵ペアからのテナント秘密鍵の両方を秘密に保っているが、ランドロード鍵ペアからのランドロード公開鍵とテナント鍵ペアからのテナント公開鍵をランドロードに転送する。図示の例では、ランドロードは、図３のクラスタオペレーション管理コンソール２４０で表されているが、これとは別に、他のデバイスまたはエンティティでランドロードを表すことも可能である。
【００８５】
そのあと、ランドロードはテナント公開鍵をテナントに転送する（ステップ２４８）。図示の例では、テナントは図３のアプリケーションオペレーション管理コンソール２４２で表されているが、これとは別に、他のデバイスまたはエンティティでテナントを表すことも可能である。そのあと、テナントはコンピュータと通信して、新しいテナント鍵ペアを生成する（ステップ２８６）。コンピュータは、新しい鍵ペアからのテナント秘密鍵を秘密に保ち、その新鍵ペアからのテナント公開鍵をテナントに転送する（ステップ２８８）。そのあと、テナントは、新しいテナント公開鍵を使用してセキュアメッセージ（データ、指示、要求など）をコンピュータに伝達することが可能になり（ステップ２９０）、他方、ランドロードは、ランドロード公開鍵を使用してセキュアメッセージをコンピュータに伝達することが可能になる（ステップ２９２）。
【００８６】
図７は、本発明のいくつかの実施形態によるクラスタオペレーション管理コンソールのオペレーションのための例示プロセスを示す。図７のプロセスは、共同ロケーション施設に置かれたクラスタオペレーション管理コンソールに実装され、ソフトウェアで実行されることが可能になっている。
【００８７】
初めに、クラスタオペレーション管理コンソールは、サーバクラスタ内のノードを、サーバクラスタの境界（存在する場合）をもつ構成にする（ステップ３００）。この構成は、クラスタオペレーション管理コンソールが、フィルタをサーバクラスタ（１つまたは複数）内のノードに伝えることによって行われる。
【００８８】
そのあと、サーバクラスタ内のハードウェアオペレーションは、ハードウェア障害の有無について絶えずモニタリングされる（ステップ３０２と３０４）。ハードウェア障害が検出されると、訂正アクションがとられ（ステップ３０６）、ハードウェアオペレーションのモニタリングが継続される。上述したように、さまざまな訂正アクションをとることが可能である。なお、訂正アクションに基づいて（あるいは別の時期に）、ノードは新しいクラスタ境界をもつように再構成することが可能である（ステップ３００）。
【００８９】
図８は、本発明のいくつかの実施形態によるアプリケーションオペレーション管理コンソールのオペレーションのための例示プロセスを示す。図８のプロセスは、共同ロケーション施設から離れた個所に置かれているアプリケーションオペレーション管理コンソールに実装され、ソフトウェアで実行されることが可能になっている。
【００９０】
初めに、アプリケーションオペレーション管理コンソールは、サーバクラスタ内のノードを、サーバクラスタのサブ境界（存在する場合）をもつ構成にする（ステップ３２０）。この構成は、アプリケーションオペレーション管理コンソールが、フィルタをサーバクラスタ（１つまたは複数）内のノードに伝えることによって行われる。
【００９１】
そのあと、サーバクラスタ内のソフトウェアオペレーションは、ソフトウェア障害が検出されるまで絶えずモニタリングされる（ステップ３２２と３２４）。このソフトウェア障害としては、特定ソフトウェアエンジンの障害（例えば、そのエンジンに障害が起きたが、他のエンジンはそのまま稼動している）、あるいはノード全体の障害（例えば、ノード全体がハングアップしている）がある。ソフトウェア障害が検出されると、訂正アクションがとられ（ステップ３２６）、ソフトウェアオペレーションのモニタリングが継続される。上述したように、さまざまな訂正アクションをとることが可能である。なお、訂正アクションに基づいて（あるいはオペレーション中の別の時期に）、サーバコンピュータは、新しいサブ境界をもつように再構成することが可能である（ステップ３２０）。
【００９２】
結論
上述してきた説明では、構造上の特徴および／または方法ステップに特有の用語が用いられているが、当然に理解されるように、請求項に明確されている本発明は、上述してきた特定の特徴やステップに限定されるものではない。むしろ、特定の特徴とステップは、本発明を実現するための例示形態として開示されたものである。
【符号の説明】
【００９３】
１０２  クライアントコンピュータ
１０４  共同ロケーション施設
１０６  サーバコンピュータ（サーバクラスタ）
１０８  インターネット
２１０  ノード
２３０  クラスタオペレーション管理層
２３２  アプリケーションオペレーション管理層
２３４  アプリケーション開発層
２４０  クラスタオペレーション管理コンソール
２４２  アプリケーションオペレーション管理コンソール
【図１】
2011055523.tif 000003
【図２】
2011055523.tif 000004
【図３】
2011055523.tif 000005
【図４】
2011055523.tif 000006
【図５】
2011055523.tif 000007
【図６】
2011055523.tif 000008
【図７】
2011055523.tif 000009
【図８】
2011055523.tif 000010