(57)【要約】エージェント・ベースのシステムにおいてリソースが単一の実体（すなわちオブジェクト）として共有されているような少なくとも二つの異なるマシン（すなわちオブジェクト）を管理するためのアーキテクチャおよび方法。前記エージェント・ベースのシステムはコントローラ、該コントローラに結合したローカル・エージェント、少なくとも一つのクラスタ化マシンを有している。前記少なくとも一つのクラスタ化マシンは少なくとも二つの個別エージェントを含み、該少なくとも二つの個別エージェントは少なくとも一つの共有リソース／サービスを共有している。本システムはまた、前記少なくとも二つの個別エージェントを前記ローカル・エージェントに結合させるための仮想非持続接続を含んでいる。前記少なくとも一つの共有リソース／サービスは前記ローカル・エージェントによって前記仮想非持続接続を通じてアクセスされ、その際、仮想ＩＰアドレスを使うことによって前記少なくとも一つのクラスタ化マシンの前記少なくとも二つの個別エージェントが単一のオブジェクトとして表現されることができるようにしている。【特許請求の範囲】
【請求項１】
仮想非持続接続を開き、
前記仮想非持続接続を通じて第一のコマンドの組を共有リソース／サービスを含んでいるクラスタ化マシンに送信し、
前記クラスタ化マシン内のアクティブなマシンが前記第一のコマンドの組を処理するようトリガーし、
前記アクティブなマシンから前記第一のコマンドの組を処理した結果としての情報を受信し、
前記仮想接続を閉じる、
ことを含むことを特徴とする、エージェント・ベースのシステムを管理する方法。
【請求項２】
請求項１記載の方法であって、仮想非持続接続を開くのに先立って：
ユーザーから一つまたは複数の共有リソース／サービスを操作する要求を受け取り、
該要求対象を得るために前記第一のコマンドの組を生成する、
ことをさらに含むことを特徴とする方法。
【請求項３】
ユーザーが、アドミニストレータおよびクライアントのうちの一方であることを特徴とする、請求項２記載の方法。
【請求項４】
請求項１記載の方法であって、仮想非持続接続を開くのに先立って：
情報に対する要求を発し、
該要求対象を得るために前記第一のコマンドの組を生成する、
ことをさらに含むことを特徴とする方法。
【請求項５】
請求項１記載の方法であって、前記第一のコマンドの組を前記仮想非持続接続を通じて共有リソース／サービスを含んでいるクラスタ化マシンに送信することがさらに、前記第一のコマンドの組を前記クラスタ化マシンに仮想ＩＰ（Internet  Protocol）アドレスを使って送ることであり、リソース／サービスが共有される少なくとも二つの異なるマシンを有する前記クラスタ化マシンが単一の実体として表現されることが前記仮想非持続接続および前記仮想ＩＰアドレスによって可能になっている、ことを特徴とする方法。
【請求項６】
請求項１記載の方法であって、前記第一のコマンドの組を前記仮想非持続接続を通じて共有リソース／サービスを含んでいるクラスタ化マシンに送信することがさらに、前記第一のコマンドの組を前記クラスタ化マシンに仮想ＩＰ（Internet  Protocol）アドレスを使って送ることであり、リソース／サービスが共有される少なくとも二つの異なるオブジェクトを有する前記クラスタ化マシンが単一のオブジェクトとして表現されることが前記仮想非持続接続および前記仮想ＩＰアドレスによって可能になっている、ことを特徴とする方法。
【請求項７】
請求項１記載の方法であって、仮想非持続接続を開くことがローカル・エージェントを使って前記仮想非持続接続を開くことであることを特徴とする方法。
【請求項８】
請求項１記載の方法であって、前記クラスタ化マシン内のアクティブなマシンが前記第一のコマンドの組を処理するようトリガーすることがさらに、前記アクティブなマシン上のエージェントをして：
前記第一のコマンドの組を解釈し、
前記第一のコマンドの組によって要求される機能を実行し、
前記仮想非持続接続を通じて前記第一のコマンドの組に関係する情報を送り返せしめることを含むことを特徴とする方法。
【請求項９】
請求項１記載の方法であって、前記アクティブなマシンから前記第一のコマンドの組を処理した結果としての情報を受信することがさらに、該情報を要求を発した実体に送信することを含むことを特徴とする方法。
【請求項１０】
請求項１記載の方法であって、さらに：
ユーザーから非クラスタ化リソース／サービスに対する要求を受信し、
非クラスタ化リソース／サービスに対する該要求対象を獲得するための第二のコマンドの組を生成し、
持続接続を通じて前記第二のコマンドの組を前記非クラスタ化リソース／サービスが存在するマシンに送信し、
前記マシン上のエージェントが前記第二のコマンドの組を処理できるようにし、
前記エージェントから前記第二のコマンドの組を処理した結果としての情報を受信することを含むことを特徴とする方法。
【請求項１１】
請求項１０記載の方法であって、前記非クラスタ化リソース／サービスが存在するマシンが、一つのオブジェクトとして表現されている非クラスタ化マシンおよび少なくとも二つの別個のマシンを有するクラスタ化マシンのうちの一方であり、該少なくとも二つの別個のマシンは二つの別個のオブジェクトとして表現されており、前記持続接続を通じて前記第二のコマンドの組を前記非クラスタ化リソース／サービスが存在するマシンに送信することが前記持続接続を通じて前記第二のコマンドの組を前記少なくとも二つの別個のマシンのうちの一つに送信することを含んでおり、前記クラスタ化マシン中の前記少なくとも二つの別個のマシンのそれぞれが別個の持続接続を有することを特徴とする方法。
【請求項１２】
請求項１０記載の方法であって、前記マシン上のエージェントが前記第二のコマンドの組を処理できるようにすることが、さらに：
前記エージェントが前記第二のコマンドの組を解釈できるようにし、
前記エージェントが前記第二のコマンドの組によって要求される機能を実行できるようにし、
前記エージェントが前記持続接続を通じて前記第二のコマンドの組に関係する情報を送り返せるようにすることを含むことを特徴とする方法。
【請求項１３】
請求項１０記載の方法であって、前記受信した情報をユーザーに送信することをさらに含むことを特徴とする方法。
【請求項１４】
請求項１記載の方法であって、さらに：
非クラスタ化リソース／サービスに対する要求を発し、
非クラスタ化リソース／サービスに対する該要求対象を獲得するための第二のコマンドの組を生成し、
持続接続を通じて前記第二のコマンドの組を前記非クラスタ化リソース／サービスが存在するマシンに送信し、
前記マシン上のエージェントが前記第二のコマンドの組を処理できるようにし、
前記エージェントから前記第二のコマンドの組を処理した結果としての情報を受信することを含むことを特徴とする方法。
【請求項１５】
請求項１４記載の方法であって、前記非クラスタ化リソース／サービスが存在するマシンが、一つのオブジェクトとして表現されている非クラスタ化マシンおよび少なくとも二つの別個のマシンを有するクラスタ化マシンのうちの一方であり、該少なくとも二つの別個のマシンは二つの別個のオブジェクトとして表現されており、前記持続接続を通じて前記第二のコマンドの組を前記非クラスタ化リソース／サービスが存在するマシンに送信することが前記持続接続を通じて前記第二のコマンドの組を前記少なくとも二つの別個のマシンのうちの一つに送信することを含んでおり、前記クラスタ化マシン中の前記少なくとも二つの別個のマシンのそれぞれが別個の持続接続を有することを特徴とする方法。
【請求項１６】
請求項１４記載の方法であって、前記マシン上のエージェントが前記第二のコマンドの組を処理できるようにすることが、さらに：
前記エージェントが前記第二のコマンドの組を解釈できるようにし、
前記エージェントが前記第二のコマンドの組によって要求される必要な機能を実行できるようにし、
前記エージェントが前記持続接続を通じて前記第二のコマンドの組に関係する情報を送り返せるようにすることを含むことを特徴とする方法。
【請求項１７】
仮想非持続接続を開き、
前記仮想非持続接続を通じて第一のコマンドの組を共有リソース／サービスを含んでいるクラスタ化マシンに送信し、
前記クラスタ化マシン内のアクティブなマシンが前記第一のコマンドの組を処理するようトリガーし、
前記アクティブなマシンから前記第一のコマンドの組を処理した結果としての情報を受信し、
前記仮想接続を閉じる、
ことを、プロセッサによって実行されたときに実現するような機械アクセス可能命令を複数有する記憶媒体を有することを特徴とする物品。
【請求項１８】
請求項１７記載の物品であって：
ユーザーから一つまたは複数の共有リソース／サービスを操作する要求を受け取り、
該要求対象を得るために前記第一のコマンドの組を生成する、
命令をさらに含むことを特徴とする物品。
【請求項１９】
ユーザーが、アドミニストレータおよびクライアントのうちの一方であることを特徴とする、請求項１８記載の物品。
【請求項２０】
請求項１７記載の物品であって：
情報に対する要求を発し、
該要求対象を得るために前記第一のコマンドの組を生成する、
命令をさらに含むことを特徴とする物品。
【請求項２１】
請求項１７記載の物品であって、前記第一のコマンドの組を前記仮想非持続接続を通じて共有リソース／サービスを含んでいるクラスタ化マシンに送信する命令がさらに、前記第一のコマンドの組を前記クラスタ化マシンに仮想ＩＰ（Internet  Protocol）アドレスを使って送る命令であり、リソース／サービスが共有される少なくとも二つの異なるマシンを有する前記クラスタ化マシンが単一の実体として表現されることが前記仮想非持続接続および前記仮想ＩＰアドレスによって可能になっている、ことを特徴とする物品。
【請求項２２】
請求項１７記載の物品であって、前記第一のコマンドの組を前記仮想非持続接続を通じて共有リソース／サービスを含んでいるクラスタ化マシンに送信する命令がさらに、前記第一のコマンドの組を前記クラスタ化マシンに仮想ＩＰ（Internet  Protocol）アドレスを使って送る命令であり、リソース／サービスが共有される少なくとも二つの異なるオブジェクトを有する前記クラスタ化マシンが単一のオブジェクトとして表現されることが前記仮想非持続接続および前記仮想ＩＰアドレスによって可能になっている、ことを特徴とする物品。
【請求項２３】
請求項１７記載の物品であって、仮想非持続接続を開く命令がローカル・エージェントを使って前記仮想非持続接続を開く命令であることを特徴とする物品。
【請求項２４】
請求項１７記載の物品であって、前記クラスタ化マシン内のアクティブなマシンが前記第一のコマンドの組を処理するようトリガーする命令がさらに、前記アクティブなマシン上のエージェントをして：
前記第一のコマンドの組を解釈し、
前記第一のコマンドの組によって要求される機能を実行し、
前記仮想非持続接続を通じて前記第一のコマンドの組に関係する情報を送り返せしめる命令を含むことを特徴とする物品。
【請求項２５】
請求項１７記載の物品であって、前記アクティブなマシンから前記第一のコマンドの組を処理した結果としての情報を受信する命令がさらに、該情報を要求を発した実体に送信する命令を含むことを特徴とする物品。
【請求項２６】
請求項１７記載の物品であって、さらに：
ユーザーから非クラスタ化リソース／サービスに対する要求を受信し、
非クラスタ化リソース／サービスに対する該要求対象を獲得するための第二のコマンドの組を生成し、
持続接続を通じて前記第二のコマンドの組を前記非クラスタ化リソース／サービスが存在するマシンに送信し、
前記マシン上のエージェントが前記第二のコマンドの組を処理できるようにし、
前記エージェントから前記第二のコマンドの組を処理した結果としての情報を受信する命令を含むことを特徴とする物品。
【請求項２７】
請求項２６記載の物品であって、前記非クラスタ化リソース／サービスが存在するマシンが、一つのオブジェクトとして表現されている非クラスタ化マシンおよび少なくとも二つの別個のマシンを有するクラスタ化マシンのうちの一方であり、該少なくとも二つの別個のマシンは二つの別個のオブジェクトとして表現されており、前記持続接続を通じて前記第二のコマンドの組を前記非クラスタ化リソース／サービスが存在するマシンに送信する命令が前記持続接続を通じて前記第二のコマンドの組を前記少なくとも二つの別個のマシンのうちの一つに送信する命令を含んでおり、前記クラスタ化マシン中の前記少なくとも二つの別個のマシンのそれぞれが別個の持続接続を有することを特徴とする物品。
【請求項２８】
請求項２７記載の物品であって、前記マシン上のエージェントが前記第二のコマンドの組を処理できるようにする命令が、さらに：
前記エージェントが前記第二のコマンドの組を解釈できるようにし、
前記エージェントが前記第二のコマンドの組によって要求される機能を実行できるようにし、
前記エージェントが前記持続接続を通じて前記第二のコマンドの組に関係する情報を送り返せるようにする命令を含むことを特徴とする物品。
【請求項２９】
請求項２７記載の物品であって、前記受信した情報をユーザーに送信する命令をさらに含むことを特徴とする物品。
【請求項３０】
請求項１７記載の物品であって、さらに：
非クラスタ化リソース／サービスに対する要求を発し、
非クラスタ化リソース／サービスに対する該要求対象を獲得するための第二のコマンドの組を生成し、
持続接続を通じて前記第二のコマンドの組を前記非クラスタ化リソース／サービスが存在するマシンに送信し、
前記マシン上のエージェントが前記第二のコマンドの組を処理できるようにし、
前記エージェントから前記第二のコマンドの組を処理した結果としての情報を受信する命令を含むことを特徴とする物品。
【請求項３１】
請求項３０記載の物品であって、前記非クラスタ化リソース／サービスが存在するマシンが、一つのオブジェクトとして表現されている非クラスタ化マシンおよび少なくとも二つの別個のマシンを有するクラスタ化マシンのうちの一方であり、該少なくとも二つの別個のマシンは二つの別個のオブジェクトとして表現されており、前記持続接続を通じて前記第二のコマンドの組を前記非クラスタ化リソース／サービスが存在するマシンに送信する命令が前記持続接続を通じて前記第二のコマンドの組を前記少なくとも二つの別個のマシンのうちの一つに送信する命令を含んでおり、前記クラスタ化マシン中の前記少なくとも二つの別個のマシンのそれぞれが別個の持続接続を有することを特徴とする物品。
【請求項３２】
請求項３０記載の物品であって、前記マシン上のエージェントが前記第二のコマンドの組を処理できるようにする命令が、さらに：
前記エージェントが前記第二のコマンドの組を解釈できるようにし、
前記エージェントが前記第二のコマンドの組によって要求される必要な機能を実行できるようにし、
前記エージェントが前記持続接続を通じて前記第二のコマンドの組に関係する情報を送り返せるようにする命令を含むことを特徴とする物品。
【請求項３３】
コントローラと、
前記コントローラに結合したローカル・エージェントと、
少なくとも一つの共有リソース／サービスを共有する少なくとも二つの個別エージェントを有する少なくとも一つのクラスタ化マシンと、
前記少なくとも二つの個別エージェントを前記ローカル・エージェントに結合させる仮想非持続接続であって、該仮想非持続接続を通じて、前記少なくとも一つのクラスタ化マシンの前記少なくとも二つの個別エージェントを単一のオブジェクトとして表現できるようにするために仮想ＩＰアドレスを使って、前記少なくとも一つの共有リソース／サービスが前記ローカル・エージェントによってアクセスされるような仮想非持続接続とを有することを特徴とする、エージェント・ベースの管理システム。
【請求項３４】
前記少なくとも二つの個別エージェントが少なくとも一つの非クラスタ化リソース／サービスを有する請求項１記載のシステムであって、さらに少なくとも二つの持続接続を有し、前記少なくとも二つの持続接続のそれぞれが前記コントローラに、そして前記少なくとも二つの個別エージェントのうちの一方に結合されており、前記少なくとも二つの持続接続が前記コントローラをして前記少なくとも二つの個別エージェントのそれぞれの上の前記少なくとも一つの非クラスタ化リソース／サービスに別個にアクセスできるようにするためであり、前記少なくとも一つのクラスタ化マシンの前記少なくとも二つの個別エージェントが少なくとも二つのオブジェクトとして表現されうるようにするためである、ことを特徴とするシステム。
【請求項３５】
請求項３３記載のシステムであって、エージェントおよび少なくとも一つの非クラスタ化リソース／サービスを有する少なくとも一つの非クラスタ化マシンをさらに有しており、前記コントローラが前記少なくとも一つの非クラスタ化リソース／サービスの情報にアクセスできるようにするために、前記少なくとも一つの非クラスタ化マシンが持続接続を使って前記コントローラに結合されていることを特徴とするシステム。
【請求項３６】
前記共有リソース／サービスへのアクセスが前記少なくとも二つの個別エージェントの一方からのみアクセス可能であることを特徴とする、請求項３３記載のシステム。
【請求項３７】
アドミニストレータおよびクライアントが前記コントローラと通信できるようにするために前記コントローラがインターネットに結合されていることを特徴とする、請求項３３記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は本発明の譲受人に共通に譲渡された２００１年６月３０日に出願された“System  and  Method  for  Integrating  Network  Services（ネットワーク・サービス統合のためのシステムおよび方法）”と題する同時係属出願第０９／８９５，９９９号に関連する。
【０００２】
本発明には一般にはネットワーク管理の分野に関するものである。より詳細には、本発明はエージェント・ベースのシステムにおいて分散オブジェクトを単一表現として管理するアーキテクチャおよび方法に関するものである。
【背景技術】
【０００３】
伝統的なインターネット・データセンターは企業のデータセンターにウェブ・サーバーや電子商取引サーバー用のハードウェアを加えた拡張として特徴づけられる。伝統的なインターネット・データセンターの管理は、制約条件を適用してハードウェアおよびその動作の前提条件を単純化することからなる。たとえば、データセンター内のサービスは、該データセンターによってサポートされるプロトコルおよび知的処理を単純化するためにクライアント・サーバー・オブジェクトおよびトランスポート・モデルを使用するなどである。
【０００４】
インターネット経済への企業の投資拡大が続くなか、かつてインターネット・データセンターの鍵であった制約条件はもはや十分ではない。たとえば、従来型の管理ツールはインターネット・データセンター中の制限された数のコンポーネントを管理・監視し、それによりイベント相関および解決の選択の責任を運営者またはアドミニストレータが扱うものとして残している。
【０００５】
今日、インターネット・サービスの展開、運営、維持がますます複雑化することで、インターネット・データセンターの管理と規模拡大は非常に難しくなっている。インターネット・サービスが成長を続けるにつれ、運営者またはアドミニストレータによって実行されるべきタスクはますます荷の重いものとなっている。運営者に求められる重荷の一部を軽減するために、インターネット・データセンターのコンポーネントの多くの管理が自動化されている。
【０００６】
管理プロセスを自動化するそのようなアーキテクチャの一つがオープン・コントロール・テクノロジーである。オープン・コントロール・テクノロジーはネットワークやサービスの制御技術で、企業レベルのサービス管理を目標にしている。オープン・コントロール・テクノロジー・アーキテクチャはデータセンター・サービスのコンポーネントをサービス・ライフサイクルを通じて管理するための構造を記述する。このアーキテクチャはオープン・コントロール・テクノロジー・ポッドとして展開される。そのオープン・コントロール・テクノロジー・ポッドはコントローラおよびカスタマー・ポッドからなる。このアーキテクチャはデータセンターを仮想化するオブジェクト・モデルを規定する。仮想化は抽象化およびカプセル化によって行われる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
オープン・コントロール・テクノロジー・アーキテクチャに関しては、前記カスタマー・ポッドがクラスタ化リソース／サービスを含むときに問題が生じる。ソフトウェアであれハードウェアであれ、オブジェクトとして表現される少なくとも二つの異なるマシンが共通のリソース／サービスを共有しているような場合である。前記異なるマシンはやはり管理・監視される必要のある非クラスタ化リソース／サービスをも含んでいてもよい。クラスタ化リソース／サービスが管理・監視される際には、前記異なるマシンまたはオブジェクトは単一のオブジェクトとして表現されている必要がある。非クラスタ化リソース／サービスが管理・監視される際には、前記異なるマシンまたはオブジェクトは別個のオブジェクトとして表現されている必要がある。伝統的なオープン・コントロール・テクノロジー・アーキテクチャには、一つ以上の共通リソース／サービスを共有するために少なくとも二つの異なるマシンまたはオブジェクトが単一のオブジェクトとして表現される必要があるクラスタ化リソースを管理・監視する機能は備わっていない。
【０００８】
よって、必要とされているのは、前記異なるマシンが一つ以上の共通のリソースまたはサービスを共有できるようにするために、異なるマシンを単一の実体またはオブジェクトとして表現するアーキテクチャおよび方法論である。
【０００９】
付属の図面はここに組み入れられ、本明細書の一部をなすものであるが、本発明の実施形態を図解し、さらに本文とともに本発明の原理を説明し、当業者が本発明を作成・使用できるようにする役に立つものである。図面において、同様の参照番号は一般に同一の、機能的に似通った、あるいは構造的に似通った、あるいはそのすべてである要素を示す。ある要素に対応する参照番号の左端の桁の数字がその要素が最初に現れる図面番号を示している。
【課題を解決するための手段】
【００１０】
本発明はここでは特定の応用について解説のための実施例を参照して記述されるが、本発明がそれに限定されるものでないことは理解しておく必要がある。当業者はここに提供される思想に接することで本発明の範囲内の追加的な変更、応用および実装ならびに本発明の実施が著しく有用である追加的な分野を思いつくことであろう。
【００１１】
明細書において本発明の「一つの実施形態」「ある実施形態」という言い方は、当該実施形態に関連して記述されている特定の機能、構造または特徴が本発明の少なくとも一つの実施形態に含まれていることを意味する。よって、「ある実施形態では」という語句が本明細書を通じて随所に現れるのはそれらが必ずしも同じ実施形態のことを言っているものとは限らない。
【００１２】
本発明の実施形態は、エージェント・ベースのシステムにおいてリソースが単一の実体（すなわちオブジェクト）として共有されているような少なくとも二つの異なるマシン（すなわちオブジェクト）を管理するためのアーキテクチャおよび方法に向けられている。本発明の実施形態はエージェント・ベースの枠組みにおけるオープン・コントロール・テクノロジーに関連して記述されるが、本発明の実施形態は複数の管理されているマシンまたはオブジェクトがリソースを共有するようないかなるエージェント・ベースのシステムに対しても適用しうる。
【００１３】
本発明の実施形態を記述する前に、本発明の実施形態を実装しうる環境の例について説明しておく。
【００１４】
図１は典型的なインターネット・データセンター１００の例となるブロック図を示している。図１に見られるように、典型的なインターネット・データセンターは複数のコンピュータ、ネットワーク装置および機器を含んでいる。インターネット・データセンター１００は、インターネット１０６、負荷分散装置１０８、フロントエンド１１０、バックエンド１１４、ファイアウォール１２２を有している。インターネット・データセンター１００と通信または管理・監視するためにインターネット・ブラウザ（図示せず）を通じてそれぞれクライアント１０２およびアドミニストレータ１０４がインターネット１０６に結合されている。負荷分散装置１０８はインターネット１０６、フロントエンド１１０に、そしてファイアウォール１２２を通じてバックエンド１１４に結合している。ファイアウォール１２２は負荷分散装置１０８、フロントエンド１１０、バックエンド１１４に結合している。
【００１５】
フロントエンド１１０は複数のウェブ・サーバー１１２−１…１１２−５を有する。ウェブ・サーバー１１２−１…１１２−５は、クライアント１０２もしくはアドミニストレータ１０４またはその両方のようなユーザーが閲覧するためにブラウザにウェブ・ページを届ける、あるいはサービスするコンピュータ・システムである。ウェブ・サーバー１１２−１…１１２−５はＨＴＭＬ（hypertext  markup  language［ハイパーテキスト・マークアップ言語］）文書を、ユーザーがウェブ上で該文書にアクセスできるために、保存している。
【００１６】
バックエンド１１４は二つのアプリケーション・サーバー１１６−１および１１６−２、二つの記憶装置１１８−１および１１８−２、そして二つのデータベース・サーバー１２０−１および１２０−２を有している。アプリケーション・サーバー１１６−１および１１６−２は、ユーザーと企業のバックエンドのビジネス・アプリケーションまたはデータベースとの間のあらゆるアプリケーション操作を扱うコンピュータ・システムである。アプリケーション・サーバー１１６−１および１１６−２は典型的には、組み込みの冗長化システム、高性能分散アプリケーション・サービス、複雑なデータベース・アクセスのサポートを有することを特徴としている。記憶装置１１８−１および１１８−２は情報を保存するのに使われ、当業者にはよく知られたものである。データベース・サーバー１２０−１および１２０−２は問い合わせを処理するコンピュータ・システムである。データベース・サーバー１２０−１および１２０−２はデータベース・アプリケーションを有している。データベース・アプリケーションは二つの部分に分けられる。第一の部分は、データを表示し、ユーザー（すなわち、アドミニストレータ１０４もしくはクライアント１０２またはその両方）とやりとりをする。第二の部分は、データの完全性を保全し、データの保存や操作といったプロセッサ集約的な仕事の多くを扱う。
【００１７】
インターネット１０６を通じて送受信されるデータは負荷分散装置１０８を通過する。負荷分散装置１０８はクライアント１０２およびアドミニストレータ１０４からはいってくるあらゆるデータ要求を解析し、フロントエンド１１０中の適切なウェブ・サーバー１１２−１…１１２−５にその要求を転送する。クライアントまたはアドミニストレータの要求は、ウェブ・サーバー１１２−１…１１２−５の一つに保存されている特定のウェブ・ページの要求などである。ウェブ・ページは、一つまたは複数のアプリケーション・サーバー１１６−１および１１６−２、一つまたは複数の記憶装置１１８−１および１１８−２、あるいは一つまたは複数のデータベース・サーバー１２０−１および１２０−２によって提供される埋め込みオブジェクトを含んでいることがある。セキュリティ目的のため、ファイアウォール１２２がフロントエンドのウェブ・サーバー１１２−１…１１２−５とバックエンドのアプリケーション・サーバー（１１６−１および１１６−２）、記憶装置（１１８−１および１１８−２）、データベース・サーバー（１２０−１および１２０−２）との間のデータ・トラフィックを監視し、制御する。
【００１８】
図２は、インターネット・データセンター２００内でのオープン・コントロール・テクノロジー・コントローラを図解するブロック図である。オープン・コントロール・テクノロジー・コントローラ２０２は負荷分散装置１０８、フロントエンドのウェブ・サーバー１１２−１…１１２−５、バックエンドのアプリケーション・サーバー（１１６−１および１１６−２）、記憶装置（１１８−１および１１８−２）、データベース・サーバー（１２０−１および１２０−２）に結合されている。オープン・コントロール・テクノロジー・コントローラ２０２はフロントエンド１１０およびバックエンド１１４の各コンポーネントからの情報を管理し、監視し、収集する。
【００１９】
先述したように、オープン・コントロール・テクノロジー・アーキテクチャはインターネット・データセンター２００の下部構造を仮想化するオブジェクト・モデルを規定する。仮想化は抽象化およびカプセル化を使って行われる。抽象化は個々のサービス実装の複雑さを隠す。カプセル化はモデル中のさまざまなオブジェクトの間の関係を表現する。
【００２０】
図３は、オープン・コントロール・テクノロジー・アーキテクチャのためのオブジェクト・モデル３００の図解である。本発明の実施形態においては、アーキテクチャ上のコンポーネントはハードウェア、ソフトウェア、あるいは両者の組み合わせにおいて実装することができる。オブジェクト・モデル３００は、クライアント・インターフェース３０２、オブジェクト・マネージャ３０４、プロバイダ・フレームワーク３０６、プロバイダ・インターフェース３０８、ドライバ・インターフェース３１０、プロバイダ３１２、ドライバ３１４を有している。
【００２１】
オブジェクト・マネージャ３０４はオープン・コントロール・テクノロジー・アーキテクチャをサポートするオブジェクト・モデルを具体化するのに使われるものである。オブジェクト・マネージャ３０４はインスタンスを発生させ、オブジェクトのインスタンスに対して操作を実行する機構を提供する。そのような操作を容易にするために三つのインターフェースが設けられている。インターフェースには、クライアント・インターフェース３０２、プロバイダ・インターフェース３０８、ドライバ・インターフェース３１０がある。
【００２２】
クライアント・インターフェース３０２は、クライアント・アプリケーション３１６がオブジェクト・マネージャ３０４によって提供されるオブジェクトを構成し、問い合わせし、また操作するために使われうるアプリケーション・プログラミング・インターフェース（ＡＰＩ）を提供する。クライアント・アプリケーション３１６の例としては、グラフィカル・ユーザー・インターフェース（ＧＵＩ）がある。ＧＵＩはオブジェクトのインスタンスを表示し、図式的な方法で操作することができるようにするオブジェクト・モデルの図式的な外面的表現を提供しうるものである。その他のクライアント・アプリケーション３１６としては、オブジェクト・マネージャ３０４内でイベントや状態変化、またはオブジェクトに関連付けられたメソッドの呼び出しに反応するためのルールをあらかじめ規定するルール・エンジン、その他の自動化されたアプリケーションが含まれるがそれに限定されるものではない。
【００２３】
ドライバ・インターフェース３１０はプロバイダ・フレームワーク３０６をドライバ３１４に相互接続する。ドライバ３１４は、要求された動作が管理されているサービスまたはリソースに対して実行されることを可能にする。サービスとしては、これに限るものではないが、ウェブ・サービス、ウィンドウ・サービス、データベース・サービス、電子メール・サービスなどがありうる。リソースとしては、これに限るものではないが、記憶装置、データベース、ログなどのようなシステムのハードウェアおよびソフトウェア・コンポーネントがありうる。ドライバ・インターフェース３１０は操作の集合（ＡＰＩ）であり、これを通じてオブジェクト・マネージャ３０４はデバイスに対して管理操作を実行する。管理操作としては、これに限るものではないが、開始、終了、状態要求がある。管理操作要求はプロバイダ・フレームワーク３０６を通じて送信される。
【００２４】
プロバイダ・インターフェース３０８はドライバ３１４をプロバイダ・フレームワーク３０６と相互接続する。管理されているサービスまたはリソースの状態が変化すると、ドライバ３１４、プロバイダ３１２、プロバイダ・フレームワーク３０６の間のプロバイダ・インターフェース３０８を通じた相互作用によって、オブジェクト・マネージャ３０４によって管理されているオブジェクトの関連する属性が信頼できる形で効率的に更新される。
【００２５】
プロバイダ・フレームワーク３０６によって、オブジェクト・マネージャ３０４に新しい、あるいは違った種類のプロバイダ３１２を追加できるようになる。新しい、あるいは違った種類のプロバイダ３１２のそれぞれは、追加的なオブジェクト・クラスもしくはオブジェクト・マネージャ３０４の機能を向上させる操作またはその両方を含みうる。先述したように、プロバイダ・フレームワーク３０６は、オブジェクト・マネージャ３０４によって管理されているオブジェクト中に表現されている属性の変化がドライバ３１４に伝搬することを可能にする。クライアント・アプリケーション３１６の一つがクライアント・インターフェース３０２を通じてあるオブジェクトのメソッドを呼び出した場合、プロバイダ・フレームワーク３０６によってドライバ３１４に信頼できる形で効率的に動作が引き起こされ、最終的に管理されているサービスまたはリソースに対する要求された動作が実現されるようになる。
【００２６】
先述したように、従来型のオープン・コントロール・テクノロジー・アーキテクチャは、エージェント・ベースの枠組みにおいてクラスタ化リソース／サービスが単一のオブジェクトとして管理・監視されているような状況を扱うことができない。図４は、少なくとも二つの異なるマシンが共通のリソースもしくはサービスまたはその両方を共有しようとしたときに問題が生じるような、典型的なオープン・コントロール・テクノロジー・アーキテクチャの単純化した図を示している。そのようなアーキテクチャがどうしてはたらかないかの説明は、これから図４を参照して説明される。
【００２７】
アーキテクチャ４００は、コントローラ４０２およびデータセンターの例を表す複数のマシンＭ１、Ｍ２、Ｍ３を有している。マシンＭ１、Ｍ２、Ｍ３は、各マシンＭ１、Ｍ２、Ｍ３のためにコントローラ４０２からのコマンドを解釈したり、コントローラ４０２に情報を送ったりするエージェント（エージェント１、エージェント２、エージェント３）を含んでいる。エージェント１、２、３はソフトウェア、ハードウェア、あるいは両者の組み合わせにおいて実装することができる。各マシンＭ１、Ｍ２、Ｍ３は、上で図３を参照しつつ説明したオブジェクト・モデルに従うオブジェクトとして表現されている。マシンＭ１、Ｍ２、Ｍ３のそれぞれは管理・監視する必要のある非クラスタ化リソース／サービスを含んでいる。それはプロセッサもしくはサービス／デーモンまたはその両方などだが、これに限るものではない。
【００２８】
マシンＭ１およびＭ２は、フェイルオーバー・クラスタ化マシンとして知られるクラスタ化マシン４０８の一つの種類を表現している。換言すると、クラスタ化マシン４０８は、マシンＭ１およびＭ２ならびにクラスタ化されたリソース／サービス（図４では「共有リソース／サービス」と示す）からなっている。クラスタ化されたリソース／サービスはマシンＭ１およびＭ２によって共有され、ウィンドウ・サービス、データベース・サービス、アプリケーション・サービス、ウェブ・サービス、ディスク、ログなどといったものを含みうるが、これに限るものではない。クラスタ化マシン４０８の目的は、クラスタ化されたリソース／サービスにアクセスするためのフェイルセーフなシステムとしてはたらくことである。クラスタ化リソース／サービスがコントローラ４０２によってアクセスされているとき、同一時点にはマシンＭ１またはＭ２のうちの一方だけが要求された共有リソース／サービスにアクセスすることができる。このため、もしマシンＭ１が要求された共有リソース／サービスにアクセスするのに利用可能である場合には、マシンＭ２は無効または非アクティブであると考えられる。また、もしマシンＭ２が要求された共有リソース／サービスにアクセスするのに利用可能である場合には、マシンＭ１は無効または非アクティブであると考えられる。したがって、もしマシンＭ１が非アクティブであれば、マシンＭ１はフェイルオーバーし、マシンＭ２がアクティブになる。逆の場合も同様である。
【００２９】
コントローラ４０２は、マシンＭ１、Ｍ２、Ｍ３によって提供されるリソースおよびサービスを統合し、管理する管理ゲートウェイとしてはたらく。コントローラ４０２は、特にプロバイダ・インターフェース（Ｉ／Ｆ）４０４および４０６を有している。プロバイダ・インターフェース４０４はそれぞれマシンＭ１およびＭ２のエージェント１および２に、それぞれ持続標準接続４１０および４１２を使って結合されている。プロバイダ・インターフェース４０６はマシンＭ３のエージェント３に持続標準接続４１４を使って結合されている。標準接続４１０、４１２、４１４はそれぞれのエージェント（１、２、３）とコントローラ４０２との間の管理接続を提供する。
【００３０】
コントローラ４０２はまた、アドミニストレータ１０４およびクライアント１０２とインターネット・ブラウザ（図示せず）を使ってインターネット１０６および負荷分散装置１０８を通じて通信している。コントローラ４０２は、アドミニストレータ１０４やクライアント１０２からの情報要求を収集することができる。要求された情報が非クラスタ化リソース／サービスから得られるものならば、コントローラ４０２はその要求からコマンドを生成し、そのコマンドを適切な標準持続接続（４１０、４１２または４１４）を通じて、情報を検索すべきマシン（Ｍ１、Ｍ２またはＭ３）上の適切なエージェント（エージェント１、２または３）に送信する。非クラスタ化リソース／サービスについては、各マシンＭ１、Ｍ２、Ｍ３は別個のオブジェクトとして独立に動作し、したがってみなが同時にアクティブであることもできる。
【００３１】
コントローラ４０２はＴＣＰ／ＩＰ（Transmission  Control  Protocol／Internet  Protocol）を使ってマシンＭ１、Ｍ２、Ｍ３と通信する。ＴＣＰ／ＩＰは当業者にはよく知られたもので、ネットワークまたはデータセンター中の各コンポーネントに一意的なＩＰアドレスを与える。
【００３２】
コントローラ４０２からコマンドを受け取ったのち、前記適切なエージェントはそのコマンドを解釈し、前記要求によって求められている必要な機能を実行する。リソースまたはサービスの状態を決定する、リソースまたはサービスから情報を取得する、などである。そのエージェントは、前記要求によって求められている必要な機能を実行したのち、要求された情報をコントローラ４０２に送信する。コントローラ４０２は今度はその情報を要求元の実体（すなわち、アドミニストレータ１０４またはクライアント１０２）に送信する。
【００３３】
マシンＭ１、Ｍ２、Ｍ３上のリソースおよびサービスを管理し、監視するためには、コントローラ４０２はマシンＭ１、Ｍ２、Ｍ３のうちの一つに位置する特定の非クラスタ化サービスまたはリソースから情報を得る必要があることがある。この場合、コントローラ４０２は情報を検索すべきマシン上の適切なエージェントにコマンドを適切な持続標準接続を通じて送信する。すると、前記適切なエージェントが前記コマンドを解釈して、その情報を取得するのに求められる必要な機能を実行する。その情報はリソースまたはサービスの状態、リソースまたはサービスからの情報などでありうる。前記エージェントはその情報を取得したのち、その情報をコントローラ４０２に対応する持続標準接続を通じて送信する。
【００３４】
先述したように、従来型のオープン・コントロール・テクノロジー・アーキテクチャについての問題は、フェイルオーバー・クラスタ化されたマシンにおけるクラスタ化リソース／サービスがコントローラ４０２によって管理、監視されている場合に生じる。図４で説明したエージェント・ベースの管理、監視ソリューションにおいては、各マシン（Ｍ１、Ｍ２、Ｍ３）は、非クラスタ化リソース／サービスが利用されるときには、コントローラ４０２によって操作され、監視される独立した管理オブジェクトとして表現されていた。マシンＭ１およびＭ２によって共有されるクラスタ化されたリソース／サービスの場合、同一の共有リソース／サービスを代表するのに二つのオブジェクトが求められる。コントローラ４０２がクラスタ化マシン４０８の共有リソース／サービスにアクセスする際、アクティブなマシンはＭ１およびＭ２のうちの一方のみとなる。よって、たとえば、コントローラ４０２がマシンＭ１に共有リソース／サービスからの情報を要求するコマンドを持続標準接続４１０を通じて送り、マシンＭ１が非アクティブなマシンであった場合、コントローラ４０２に返ってくる応答はマシンＭ１が非アクティブである、あるいはリソース／サービスがダウンしているといったことを示すものでありうる。その場合、コントローラ４０２はその情報が取得できないものだと判断するであろう。しかしながら、要求されたリソース／サービスはマシンＭ２からもアクセスできるものであり、マシンＭ２はアクティブなのであるから、要求された情報はマシンＭ２から取得できたかもしれない。ところが、図４で提示されたアーキテクチャは、要求が持続標準接続４１０を通じて送信された以上、マシンＭ２にフェイルオーバーしてマシンＭ２による情報の取得を可能にするようなことは認めていない。同じことは、コントローラが持続接続４１２を通じてマシンＭ２へのコマンドを送信し、マシンＭ２が非アクティブであり、それでもマシンＭ１からなら要求された情報が取得しえるような場合にも言える。
【００３５】
本発明の実施形態は、エージェント・ベースのシステムにおいてリソースが単一の実体（すなわちオブジェクト）として共有されているような少なくとも二つの異なるマシン（すなわちオブジェクト）を管理するためのアーキテクチャおよび方法に向けられている。このことは、クラスタ化マシン４０８のようなフェイルオーバー・クラスタ化マシンへの非持続仮想接続を提供するローカル・エージェントを用いることによって実現される。当該クラスタ化マシンを二つの異なるオブジェクトとして表現するためのフェイルオーバー・クラスタ化マシンへの持続標準接続と、当該クラスタ化マシンを単一のオブジェクトとして表現するための該フェイルオーバー・クラスタ化マシンへの非持続仮想接続とを両方持つことによって、コントローラ４０２は、個々の非共有リソース／サービスからも、単体として表現された共有リソース／サービスからも情報を取得することができるのである。
【発明を実施するための最良の形態】
【００３６】
図５は、本発明の実施形態に従って少なくとも二つの異なるマシンが共通のリソースを共有できるようにする、エージェント・ベースのオープン・コントロール・テクノロジー・アーキテクチャ５００の単純化した例としての図である。アーキテクチャ５００はアーキテクチャ４００と同様だが、ローカル・エージェント５０２が追加されている。ある実施形態では、ローカル・エージェント５０２はコントローラ４０２内に存在する。別の実施形態では、ローカル・エージェント５０２はコントローラ４０２に結合されている。ローカル・エージェント５０２はソフトウェア、ハードウェア、あるいは両者の組み合わせにおいて実装することができる。ローカル・エージェント５０２は別のマシンによって実行するのが不都合なたぐいのタスクを実行するのに使うことができる。たとえば、マシンＭ１が非アクティブかどうかを決定するのにマシンＭ１に問い合わせをするのは、マシンＭ１が実際に非アクティブであった場合に不都合であろう。
【００３７】
本発明のある実施形態では、ローカル・エージェント５０２は、クラスタ化マシン４０８への仮想非持続接続５０４（破線で示してある）を提供するのに用いられる。仮想非持続接続５０４によって、ローカル・エージェント５０２はクラスタ化マシン４０８を単一の実体またはオブジェクトとして見ることができるようになる。仮想非持続接続５０４によって、ローカル・エージェント５０２は単一の一意的な仮想ＩＰアドレスを使ってマシンＭ１およびマシンＭ２の両方に接続できるようになる。たとえば、マシンＭ１にはＩＰアドレス１．２．３．１が、マシンＭ２にはＩＰアドレス１．２．３．２が、クラスタ化マシン４０８には仮想ＩＰアドレス１．２．３．３が割り当てられているなどである。これによりマシンＭ１、Ｍ２ならびにマシンＭ１およびＭ２の組み合わせ（クラスタ化マシン４０８）がそれぞれ一意的なＩＰアドレスを持つことができる。マシンＭ３にもまた、たとえば１．２．３．４といったような一意的なＩＰアドレスが割り当てられているであろう。
【００３８】
ある実施形態では、ローカル・エージェント５０２はクラスタ化マシン４０８の共有リソース／サービスにアクセスするために使われる。先述したように、共有リソース／サービスにアクセスする際には、同一時点にはマシンＭ１またはＭ２の一方だけしかアクティブとはなれない。よって、コントローラ４０２が共有リソース／サービスに向けられたコマンドをローカル・エージェント５０２に送った場合、ローカル・エージェント５０２は仮想接続５０４を開き、コマンドを両方のマシンＭ１およびＭ２に送信する。両方のマシンＭ１およびＭ２がコマンドを受信するが、アクティブなマシンのみが応答することになる。このため、ローカル・エージェント５０２はどちらのマシン（Ｍ１またはＭ２）がアクティブでありコマンドに応答するかを知る必要はなくなる。
【００３９】
アーキテクチャ５００を用いる際、非クラスタ化リソース／サービスについては、図４を参照しつつ上で説明したのと同様に、４１０、４１２、４１４のような持続標準接続を使ってアクセスされる。
【００４０】
図６は、エージェント・ベースのオープン・コントロール・テクノロジー・アーキテクチャが本発明の実施形態に従って共通リソースが共有されている少なくとも二つの異なるマシンを扱うことができるようにする方法を記述する流れ図６００である。本発明は、流れ図６００に関連してここで説明される実施形態に限定されるものではない。むしろ、当業者には、ここに与えられる思想を読んだのちには、他の機能流れ図が本発明の範囲内にあることが明らかとなろう。本発明の実施形態はまた、リソース／サービスを共有している少なくとも二つの異なるマシンに限定されるものではない。当業者には、本発明の実施形態の範囲から離れることなく、三つ以上の異なるマシンがリソースを共有することも可能であることがわかるであろう。プロセスはブロック６０２において開始され、プロセスはすぐブロック６０４へと進む。
【００４１】
ブロック６０４では、コントローラ４０２は共有リソースもしくは共有サービスまたはその両方の一つまたは複数を扱う要求を受け取る。ある実施例では、前記要求は、ネットワーク上のマシンやサービスが適正に動作していることを確認しようとしているアドミニストレータ１０４から来ることができる。別の実施例では、前記要求は、インターネット１０６から情報を得ようとしているユーザーまたはクライアント１０２から来ることができる。次にプロセスはブロック６０６へと進む。
【００４２】
ブロック６０６では、コントローラ４０２は、共有リソース／サービスを含むクラスタ化マシンへの図５の接続５０４のような仮想非持続接続を開く。これはローカル・エージェント５０２を使って達成される。次にプロセスはブロック６０８に進む。
【００４３】
ブロック６０８では、コントローラ４０２は前記要求からコマンドを生成し、該コマンドを仮想接続を通じてローカル・エージェント５０２を経由して共有リソースを含んでいる前記クラスタ化マシンに送信する。次にプロセスはブロック６１０へと進む。
【００４４】
ブロック６１０では、アクティブなほうのマシンが前記コマンドを処理するようトリガーされる。当該クラスタ化マシンの前記アクティブなマシン内にあるエージェントが前記コマンドを解釈し、該コマンドによって求められている必要な機能を実行し、要求された情報をコントローラ４０２に送信する。次にプロセスはブロック６１２へと進む。
【００４５】
ブロック６１２では、コントローラ４０２は要求された情報を仮想非持続接続５０４を通じてローカル・エージェント５０２を経由して受け取る。するとコントローラ４０２がこの要求された情報を要求元の実体（すなわち、アドミニストレータ１０４またはクライアント１０２）に送信する。次にプロセスはブロック６１４へと進み、そこで仮想接続５０４が閉じられる。これに代わる実施形態では、仮想接続５０４は、要求された情報を要求元の実体に送信する前に閉じてもよい。
【００４６】
コントローラ４０２はまた、自らの現状把握のために共有リソースもしくは共有サービスまたはその両方の情報に対する要求を発することもできる。そのような情報としては、これに限るものではないが、共有リソースやサービスの状態チェックが含まれる。図７は、エージェント・ベースのオープン・コントロール・テクノロジー・アーキテクチャにおけるコントローラが、本発明の実施形態に基づいて共有のリソースもしくはサービスまたはその両方への情報要求を発することができるようにする方法を記述する流れ図７００である。本発明はここで流れ図７００との関連で説明される実施形態に限定されるものではない。むしろ、当業者には、ここに与えられる思想を読んだのちには、他の機能流れ図が本発明の範囲内にあることが明らかとなろう。
【００４７】
方法７００のプロセスは図６のブロック６０６から６１０で記述した方法６００のプロセスと同様である。本プロセスはブロック７０２で開始され、すぐブロック７０４へと進む。コントローラ４０２が共有リソースやサービスを操作する要求を受け取る図６のプロセス６０４とは異なり、ブロック７０４ではコントローラ４０２は自分自身の要求を生成する。すなわち、コントローラ４０２は、コントローラ４０２が共有リソースやサービスから必要とする情報に対する要求を（コマンドの形で）発するのである。次にプロセスは上で図６を参照しつつ説明したブロック６０６から６１０を続ける。クラスタ化マシン４０８のアクティブなマシンからエージェントが仮想非持続接続５０４を通じて要求された情報をコントローラ４０２に送信したのち、プロセスはブロック７０６へと進む。
【００４８】
ブロック７０６では、コントローラ４０２はクラスタ化マシン４０８のアクティブなマシンからの情報を受け取る。ある実施形態では、コントローラ４０２は必要であればアドミニストレータ１０４に情報が取得された共有リソース／サービスの状態に関する通知を行ってもよい。次にプロセスはブロック６１４へと進む。ブロック６１４では仮想接続５０４がコントローラ４０２を通じてローカル・エージェント５０２によって閉じられる。
【００４９】
本発明の実施形態では、非持続仮想接続５０４のような非持続仮想接続は絶えず生成されては破棄される。本発明のある実施形態では、非持続仮想接続のセキュリティを保証するためにセキュリティ対策が存在する。該セキュリティ対策は、フェイルオーバー・クラスタ化マシンをだましてハッカーからの接続なのにコントローラまたはローカル・エージェントからの信頼された接続であると思い込ませようとするハッカーから、当該エージェント・ベース・システムを守る。前記セキュリティ対策は持続接続を使って達成される。該持続接続（信頼された接続ともいう）は、それに限るものではないが、トークン、ユーザー名、パスワードなどといった「秘密」情報をフェイルオーバー・クラスタ化マシンに渡すのに使われる。その「秘密」情報が非持続仮想接続を生成するのに使われる。すなわち、「秘密」情報が非持続仮想接続によって与えられない場合には、フェイルオーバー・クラスタ化マシンは接続を受け入れないのである。
【００５０】
ある実施形態では、前記秘密情報は公開暗号鍵交換を含む。ひとたびフェイルオーバー・クラスタ化マシンに持続接続を通じて秘密情報が与えられれば、非持続接続を介するコントローラおよびローカル・エージェントはその公開鍵を使ってフェイルオーバー・クラスタ化マシンに送信されるメッセージを暗号化しなければならない。そしてフェイルオーバー・クラスタ化マシンはそのメッセージを復号・検証するためには秘密鍵を使わなければならない。この備えにより、コントローラからのメッセージが本物であることが保証される。
【００５１】
本発明の実施形態は、ハードウェア、ソフトウェア、あるいは両者の組み合わせを用いて実装することができ、一つまたは複数のコンピュータ・システムその他の処理システムにおいて実装することができる。実際、ある実施形態では、本発明は、ここに記載される機能を実行することのできる一つまたは複数のコンピュータ・システムに向けられている。図８に、コンピュータ・システム８００の実装例が示してある。さまざまな実施形態について、この代表例としてのコンピュータ・システム８００によって説明する。この記載を読めば、当業者には、他のコンピュータ・システムやコンピュータ・アーキテクチャを使っていかにして本発明を実装するかは明らかであろう。
【００５２】
コンピュータ・システム８００は、プロセッサ８０３のような一つまたは複数のプロセッサを含んでいる。プロセッサ８０３は通信バス８０２に接続されている。コンピュータ・システム８００はまた、好ましくはランダム・アクセス・メモリ（ＲＡＭ）である主記憶８０５を含んでおり、また補助記憶８１０をも含んでいてもよい。補助記憶８１０にはたとえば、ハードディスク・ドライブ８１２ならびに、フロッピー（登録商標）・ディスク・ドライブ、磁気テープ・ドライブおよび光ディスク・ドライブを表すリムーバブル・ストーレジ・ドライブ８１４が含まれうる。リムーバブル・ストーレジ・ドライブ８１４がリムーバブル・ストーレジ・ユニット８１８の情報を読み書きするのはよく知られている仕方の通りである。リムーバブル・ストーレジ・ユニット８１８はフロッピー（登録商標）・ディスク、磁気テープ、光ディスクなどを表し、これがリムーバブル・ストーレジ・ドライブ８１４によって読み書きされる。理解されることであろうが、リムーバブル・ストーレジ・ユニット８１８は、コンピュータ用ソフトウェアもしくはデータまたはその両方を記録したコンピュータ使用可能記憶媒体を含む。
【００５３】
これに代わる実施形態では、補助記憶８１０はコンピュータ・プログラムその他の命令をコンピュータ・システム８００に読み込ませる他の同様な手段を含むものでありうる。そのような手段は、たとえば、リムーバブル・ストーレジ・ユニット８２２およびインターフェース８２０を含みうる。そのようなものの例としては、プログラム・カートリッジとカートリッジ・インターフェース（ビデオゲームに見られるような）、リムーバブル・メモリ・チップ（ＥＰＲＯＭ［erasable  programmable  read-only  memory］またはＰＲＯＭ［programmable  read-only  memory］のような）と付随するソケット、リムーバブル・ストーレジ・ユニット８２２からコンピュータ・システム８００にソフトウェアやデータを転送させることのできるその他のリムーバブル・ストーレジ・ユニット８２２とインターフェース８２０が含まれうる。
【００５４】
コンピュータ・システム８００はまた、通信インターフェース８２４を含んでいることもある。通信インターフェース８２４によって、ソフトウェアやデータがコンピュータ・システム８００と外部デバイスとの間で転送できるようになる。通信インターフェース８２４の例としては、モデム、ネットワーク・インターフェース（イーサーネット・カードのような）、通信ポート、ＰＣＭＣＩＡ（personal  computer  memory  card  international  association）スロットおよびカード、無線ＬＡＮ（local  area  network）インターフェースなどが含まれうる。通信インターフェース８２４を通じて転送されるソフトウェアおよびデータは信号８２８の形をとるが、これは電子的、電磁的、光学的その他通信インターフェース８２４によって受信することのできるその他の信号であってよい。これらの信号８２８は通信路（すなわち、回線）８２６を通じて通信インターフェース８２４に与えられる。信号８２８を伝える回線８２６は、導線やケーブル、光ファイバー、電話線、携帯電話リンク、無線リンクその他の通信回線を使って実装されうる。
【００５５】
この文書において、「コンピュータ・プログラム・プロダクト」の用語はリムーバブル・ストーレジ・ユニット８１８、８２２および信号８２８のことをいうものである。これらのコンピュータ・プログラム・プロダクトはコンピュータ・システム８００にソフトウェアを与える手段である。本発明のいくつかの実施形態は、そのようなコンピュータ・プログラム・プロダクトに向けられるものである。
【００５６】
コンピュータ・プログラム（コンピュータ制御ロジックともいう）は主記憶８０５、補助記憶８１０、コンピュータ・プログラム・プロダクトのうちの一部または全部に保存される。コンピュータ・プログラムはまた通信インターフェース８２４を通じて受信されることもできる。そのようなコンピュータ・プログラムは実行されると、ここで議論したような本発明の特徴をコンピュータ・システム８００が実行できるようにする。具体的には、前記コンピュータ・プログラムは実行されると、本発明の実施形態の特徴をプロセッサ８０３が実行できるようにする。したがって、そのようなコンピュータ・プログラムはコンピュータ・システムのコントローラを表している。
【００５７】
本発明がソフトウェアを使って実装される実施形態では、そのソフトウェアはコンピュータ・プログラム・プロダクトに保存されていて、リムーバブル・ストーレジ・ドライブ８１４、ハードディスク・ドライブ８１２または通信インターフェース８２４を使ってコンピュータ・システム８００に読み込まれることができる。その制御ロジック（ソフトウェア）は、プロセッサ８０３によって実行されると、ここで記載した本発明の機能をプロセッサ８０３に実行させる。
【００５８】
別の実施形態では、本発明は主としてハードウェアにおいて、たとえばカスタムチップ（ASIC：application  specific  integrated  circuit）を使って実装される。ここに記載された機能を実行するようなハードウェア状態機械の実装は、当業者には明らかであろう。さらに別の実施形態では、本発明はハードウェアおよびソフトウェア両者の組み合わせを使って実装される。
【００５９】
上記において本発明のさまざまな実施形態が記載されてきたが、それらは単に例として提示されたのであって限定ではないということを理解しておく必要がある。付属の特許請求の範囲において定義されるような本発明の精神と範囲から離れることなく、形や細部においてさまざまな変更を加えうることは当業者には理解されるであろう。こうして、本発明の幅と範囲は上述したいかなる例示のための実施形態によっても限定されることはなく、請求項およびその等価物に従ってのみ定義されるものである。
【図面の簡単な説明】
【００６０】
【図１】インターネット・データセンターの例を図解するブロック図である。
【図２】インターネット・データセンター内でのオープン・コントロール・テクノロジー・コントローラを図解するブロック図である。
【図３】オープン・コントロール・テクノロジー・アーキテクチャのためのオブジェクト・モデルの図解である。
【図４】少なくとも二つの異なるマシンが共通のリソースを共有しようとしたときに問題が生じるような、典型的なエージェント・ベースのオープン・コントロール・テクノロジー・アーキテクチャの単純化した図である。
【図５】本発明の実施形態に従って少なくとも二つの異なるマシンが共通のリソースを共有できるようにする、エージェント・ベースのオープン・コントロール・テクノロジー・アーキテクチャの単純化した図である。
【図６】エージェント・ベースのオープン・コントロール・テクノロジー・アーキテクチャが本発明の実施形態に従って共通リソースが共有されている少なくとも二つの異なるマシンを扱うことができるようにする方法を記述する流れ図である。
【図７】エージェント・ベースのオープン・コントロール・テクノロジー・アーキテクチャにおけるコントローラが、本発明の実施形態に基づいて共有のリソースもしくはサービスまたはその両方への情報要求を発することができるようにする方法を記述する流れ図である。
【図８】本発明の実施形態のある側面を実装しうる例としてのコンピュータ・システムを図解するブロック図である。
【符号の説明】
【００６１】
１０２  クライアント
１０４  アドミニストレータ
１０６  インターネット
１０８  負荷分散装置
１１０  フロントエンド
１１２  ウェブ・サーバー
１１４  バックエンド
１１６  アプリケーション・サーバー
１２０  データベース・サーバー
１２２  ファイアウォール
２０２  コントローラ
３０２  クライアント・インターフェース
３０４  オブジェクト・マネージャ
３０６  プロバイダ・フレームワーク
３０８  プロバイダ・インターフェース
３１０  ドライバ・インターフェース
３１２  プロバイダ
３１４  ドライバ（サービス、リソース）
３１６  クライアント・アプリケーション
４０２  コントローラ
４０４  プロバイダ・インターフェース
４０６  プロバイダ・インターフェース
５０２  ローカル・エージェント
６０２  開始
６０４  共有リソース／サービスを扱う要求を受信
６０６  仮想接続を開く
６０８  クラスタ化マシンへコマンド送信
６１０  アクティブなマシンの要求処理をトリガー
６１２  受け入れ、結果を要求元に送信
６１４  仮想接続を閉じる
７０２  開始
７０４  要求を発する
７０６  結果を受け入れ
８０２  通信バス
８０３  プロセッサ
８０５  主記憶
８１０  補助記憶
８１２  ハードディスク・ドライブ
８１４  リムーバブル・ストーレジ・ドライブ
８１８  リムーバブル・ストーレジ・ユニット
８２２  リムーバブル・ストーレジ・ユニット
８２０  インターフェース
８２４  通信インターフェース
８２６  通信路
【図１】
2006519424.tif 000002
【図２】
2006519424.tif 000003
【図３】
2006519424.tif 000004
【図４】
2006519424.tif 000005
【図５】
2006519424.tif 000006
【図６】
2006519424.tif 000007
【図７】
2006519424.tif 000008
【図８】
2006519424.tif 000009
【国際調査報告】
2006519424.tif 000010
2006519424.tif 000011
2006519424.tif 000012