(57)【要約】【課題】  仮想データ・センタのようなコンピュータ・アーキテクチャ内のコンピュータ・マシン間の接続をプラグ・アンド・プレイ方式で管理するための方法を提供する。【解決手段】  この方法は、少なくとも１つの接続管理構造体を事前に準備するステップであって、接続管理構造体は、２つのコンピュータ・マシン間のロール・ベースの接続を定義する接続エントリを含み、各接続エントリは、２つのコンピュータ・マシンのうちの一方に割り当てられるソケット・ロールであって、他方のコンピュータ・マシンとの接続を確立するためにソケット・ロールを有するコンピュータ・マシンにより提供されることが必要な情報を表わすソケット属性に関連付けられたソケット・ロールと、他方のコンピュータ・マシンに割り当てられるプラグ・ロールであって、ソケット・ロールを有するコンピュータ・マシンとの接続を確立するために他方のコンピュータ・マシンにより実行されることが必要とされる構成動作を表わすプラグ属性に関連付けられたプラグ・ロールとを定義する当該ステップと、少なくとも１つの接続管理構造体を用いて、コンピュータ・アーキテクチャ内のコンピュータ・マシン間の接続を管理するステップとを含む。【選択図】      図６
2013513838.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・アーキテクチャ内のコンピュータ・マシン間の接続を管理するための方法であって、
少なくとも１つの接続管理構造体を事前に準備するステップであって、前記接続管理構造体が、２つのコンピュータ・マシン間のロール・ベースの接続を定義する接続エントリを含み、各接続エントリが、前記２つのコンピュータ・マシンのうちの一方に割り当てられるソケット・ロールであって、他方のコンピュータ・マシンとの接続を確立するために前記ソケット・ロールを有するコンピュータ・マシンにより提供されることが必要とされる情報を表わすソケット属性に関連付けられたソケット・ロールと、前記他方のコンピュータ・マシンに割り当てられるプラグ・ロールであって、前記ソケット・ロールを有する前記コンピュータ・マシンとの接続を確立するために前記他方のコンピュータ・マシンにより実行されることが必要とされる構成動作を表わすプラグ属性に関連付けられたプラグ・ロールとを定義する、当該ステップと、
前記少なくとも１つの接続管理構造体を用いて、前記コンピュータ・アーキテクチャ内の前記コンピュータ・マシン間の接続を管理するステップと
を含む方法。
【請求項２】
前記少なくとも１つの接続管理構造体が、各コンピュータ・マシンにロードされる構成ファイルを含む請求項１に記載の方法。
【請求項３】
前記接続を管理するステップが、配置時に、各コンピュータ・マシンについて、前記少なくとも１つの接続管理構造体から前記コンピュータ・マシンに割り当てられた各ソケット・ロールを識別するステップと、識別された各ソケットを処理するステップとを含む、前記請求項のいずれかに記載の方法。
【請求項４】
前記識別された各ソケットを処理するステップが、前記ソケットについての従属条件が満たされているかどうかに応じて決まり、前記コンピュータ・マシンに割り当てられた前記ソケット・ロールが前記従属条件を満たさない場合には、前記ソケットをキューに入れることを含む、請求項３に記載の方法。
【請求項５】
前記接続を管理するステップが、前記少なくとも１つの接続管理構造体の接続エントリに関連したイベントの受信に応答して、前記接続エントリが、ソケット・ロールに関連付けられているかどうかを識別し、そうである場合には、前記識別されたソケットを処理することを含む、請求項１から請求項３までのいずれかに記載の方法。
【請求項６】
前記識別されたソケットを処理するステップが、前記少なくとも１つの接続管理構造体において前記ソケットに関連付けられた前記ソケット属性を発行することを含む請求項３から請求項５までのいずれかに記載の方法。
【請求項７】
前記識別されたソケットを処理するステップが、前記発行されたソケットのアクティブなステータスを発行すること、及び前記発行されたソケットについてのイベントを生成することをさらに含む請求項３から請求項６までの前記請求項のいずれかに記載の方法。
【請求項８】
前記接続を管理するステップが、配置時に、各コンピュータ・マシンについて、前記少なくとも１つの接続管理構造体から前記コンピュータ・マシンに割り当てられた各プラグ・ロールを識別するステップと、識別された各プラグ・ロールを処理するステップとをさらに含む前記請求項のいずれかに記載の方法。
【請求項９】
前記識別された各プラグ・ロールを処理するステップが、前記識別されたプラグについての従属条件が満たされているかどうかに応じて決まり、前記識別されたプラグが前記従属条件を満たさない場合には、前記識別されたプラグをキューに入れることを含む、請求項８に記載の方法。
【請求項１０】
前記接続を管理するステップが、前記少なくとも１つの接続管理構造体における接続エントリに関連したイベントの受信に応答して、前記接続エントリが、プラグ・ロールに関連付けられているかどうかを識別し、そうである場合には、前記識別されたプラグを処理することを含む、前記請求項のいずれかに記載の方法。
【請求項１１】
前記識別された各プラグを処理するステップが、前記少なくとも１つの接続管理構造体から、前記コンピュータ・アーキテクチャ内のコンピュータ・マシンの中から前記プラグにより要求される前記ソケット・ロールを有するコンピュータ・マシンを識別することを含む、前記請求項８から請求項１０までのいずれかに記載の方法。
【請求項１２】
前記識別された各プラグを処理するステップが、前記要求されるソケット・ロールを有する前記識別されたコンピュータ・マシンの中の選択された１つのコンピュータ・マシンに関連付けられた前記発行されたソケット情報を取得すること、及び前記発行されたソケット情報を用いて、前記プラグ内に記述された前記構成動作を実行することをさらに含む請求項１１に記載の方法。
【請求項１３】
前記プラグに関連した情報及び前記発行されたプラグについてのアクティブなステータスを発行すること、及び前記発行されたプラグについてのイベントを生成することをさらに含む、請求項１２に記載の方法。
【請求項１４】
コンピュータ・プログラムが適切なコンピュータデバイス上で実行されたときに請求項１から請求項１３までのいずれか１項に記載の方法のステップを実行するための命令を含む、コンピュータ・プログラム。
【請求項１５】
請求項１から請求項１３までのいずれか１項に記載の方法のステップを実行するように適合されたシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータ・アーキテクチャに関し、具体的には、そのようなコンピュータ・アーキテクチャ内のコンピュータ・マシン間の接続を管理することに関する。
【背景技術】
【０００２】
現代のコンピュータ・システムは次第に複雑になっているので、コンピュータ・システムの据付、維持及びサポートは、ますます困難で費用がかかるようになってきている。このような現代のコンピュータ・システムは、多くの場合、多数の相互依存的なアプリケーションを含んでいるので、全体としてのコンピュータ・システムをユニットとして管理しなければならない。このようなコンピュータ・アーキテクチャにおいては、物理的であれ仮想的であれ、異なるコンピュータ・マシン上で稼働するソフトウェア・アプリケーションが共通のコンピューティング目標を達成することができるように、これらのアプリケーション間の協調（ｃｏｏｐｅｒａｔｉｏｎ）を管理する必要がある。しかしながら、相互接続されたソフトウェア・アプリケーションを適切に動作させるためのカスタマイズには、複雑なワークフローが伴う。ソフトウェア・アプリケーションは、一般に予めサイト内にインストールされており、次いで「イメージ化（ｉｍａｇｅｄ）」され、次いで新たなコンピュータ・マシン上で「非イメージ化（ｕｎｉｍａｇｅｄ）」され、その後、新たなコンピュータ・マシン／ネットワーク用に再構成されて、再び稼働できるようになる。
【０００３】
特に、仮想コンピュータ・システムは、予め構築された（ｐｒｅ−ｂｕｉｌｔ）ソフトウェア・ソリューションを表わすいくつかの仮想機器を含み、その各々は、ユニットとしてパッケージング、更新、維持及び管理がなされる１つ又は複数の仮想マシン（ＶＭ）で構成されている。従来のハードウェア機器とは異なり、これらのソフトウェア機器は、予め組み込まれたソリューションのスタックを、顧客が容易に取得し、配置し、管理することを可能にする。これは、評価のための時間をスピードアップし、ソフトウェアの開発、配布及び管理を単純化する。現行の仮想機器は単一の仮想マシンを含むものが多いが、現代のエンタープライズ・アプリケーション・モデルであるサービス指向アーキテクチャ（ＳＯＡ）は、各層が１つ又は複数のマシンを含む複数の層を備えている。したがって、単一仮想マシン・モデルは多層サービスを配布するには不十分であるため、仮想機器は、より多くの仮想マシンで構成される必要がある。一例として、典型的なウェブ・アプリケーションは、提示論理を実装するウェブ層と、ビジネス論理を実装するアプリケーション・サーバ層と、バックエンド・データベース層という、３つの層で構成することができる。このようなウェブ・アプリケーションの実装は、これを層ごとに１つの３つの仮想マシンに分割する。
【０００４】
仮想データ・センタのような仮想コンピュータ・アーキテクチャにおいては、複雑な機器の配置及び棄却は、仮想機器を立ち上げるために多数の構成ステップを実行することを必要とする。従来、そのような構成プロセスは、例えばネットワーク情報（ＩＰ、ホスト名．．．）などのオペレーション・システム固有パラメータを割り当てるための初期再構成段階と、異なる仮想マシンにおいて稼働する異なるコンポーネント／製品間の通信、及び異なる仮想マシンにおいて稼働する異なる製品間の通信の確立／解除のための付加的な再構成段階とを必要とする。
【０００５】
現在、これらの再構成は、手動で行われるか、又は静的な値が入力された事前定義スクリプトの呼び出しによる。この手動構成は、時間がかかるものであり、ソフトウェア製品のトポロジが大きくなってますます複雑になり、相互接続されたコンポーネントのカスタマイズのために膨大な数のワークフローを必要とするようになるにつれて、エラーを伴う可能性がある。特に、異なるコンピュータ・マシンにおいて稼働し、異なるライフサイクルで管理されるアプリケーションの手動構成は、しばしば、エンドユーザに悪影響を与えかねない様々な構成上の問題をもたらす。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の課題は、仮想データ・センタのようなコンピュータ・アーキテクチャ内のコンピュータ・マシン間の接続をプラグ・アンド・プレイ方式で管理するための方法を提供することである。
【課題を解決するための手段】
【０００７】
これらの問題及びその他の問題に対処するために、添付の独立請求項１に従うコンピュータ・システム内のコンピュータ・マシン間の接続を管理するための方法、並びにそれぞれ添付の請求項１４及び請求項１５に従う、コンピュータ・プログラム及びシステムが提供される。好ましい実施形態は、添付の独立請求項に定義される。
【０００８】
したがって、本発明は、コンピュータ・システム内で稼働するコンピュータ・マシンの効率的かつ動的なプラグ・アンド・プレイ・サポートを提供する。これにより、ターゲット環境に配置されたコンピュータ・マシンにおいて既に使用可能なソフトウェア・アプリケーションに対する新たなコンピュータ・マシンにおいて稼働するソフトウェア・アプリケーションの協調を、手動構成ステップを必要とすることなく、真のプラグ・アンド・プレイ（ＰｎＰ）方式で管理することが可能になる。この構成は、１つ又は複数の接続管理構造体において定義された、所与の構成モデル及びポリシーの組を用いる。
【０００９】
接続管理構造体は、２つのコンピュータ・マシンが関与する各協調について、２つのコンピュータ・マシンのうちの一方に割り当てられるソケット・ロールと、他方のコンピュータ・マシンに割り当てられるプラグ・ロールとを定義する。
【００１０】
各コンピュータ・マシンは、配置時に、そのロール（役割）（ソケット又はプラグ）を取得することができる。したがって、コンピュータ・マシンのロールを静的に事前定義することは必要とされない。
【００１１】
ひとたび確立されると、構成方法は静的ではなく、環境によって又はユーザによりトリガされる動作によって生成されるイベントに基づいてこれを管理し、更新することができる。
【００１２】
本発明のさらなる利点は、図面及び詳細な説明を検討することで当業者には明らかとなろう。いかなる付加的な利点もここに組み入れることが意図される。
【００１３】
以下の説明で言及されるように、ＩＢＭ及びＲａｔｉｏｎａｌは、世界中の多数の管轄区域において、インターナショナル・ビジネス・マシーンズ・コーポレーションの商標又は登録商標である。
【００１４】
ここで、本発明の実施形態を添付の図面を参照して例示の目的で説明し、図中、類似の符号は同様の要素を示す。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態によるコンピュータ・アーキテクチャ内のコンピュータ・マシンのプラグ・アンド・プレイ方式のサポートのためのシステムの高次の図を示す。
【図２】本発明の特定の実施形態によるプラグ・アンド・プレイ・システムを示すブロック図である。
【図３】プラグ・アンド・プレイ・サポートを必要とする３つのコンピュータ・マシンを含む例示的なターゲット環境を示す図である。
【図４】本発明の特定の実施形態による接続管理構造体の構造を示す。
【図５】本発明の特定の実施形態によるプラグ・アンド・プレイ・システムを示すブロック図である。
【図６】本発明の実施形態によるコンピュータ・マシンの接続を管理するためのフローチャートである。
【図７】配置時に、各コンピュータ・マシンに割り当てられるソケット・ロールを処理するためのフローチャートである。
【図８】配置時に、各コンピュータ・マシンに割り当てられるプラグ・ロールを処理するためのフローチャートを示す。
【図９】本発明の実施形態による、受信したイベントに基づいてコンピュータ・マシンの接続を動的に管理するためのフローチャートを示す。
【図１０】所与のソケットが関与する接続に関連したイベントの受信に応答して、所与のソケットを再処理するためのフローチャートを示す。
【図１１】所与のプラグが関与する接続に関連したイベントの受信に応答して、所与のプラグを再処理するためのフローチャートを示す。
【図１２】本発明の特定の実施形態によるプラグ・アンド・プレイ・システムの例示的な実装を示す。
【図１３】本発明の実施形態による、コンピュータ・マシン間の接続を管理するための例示的なユーザ・インターフェースの状態を示す。
【図１４】本発明の実施形態による、コンピュータ・マシン間の接続を管理するための例示的なユーザ・インターフェースの状態を示す。
【発明を実施するための形態】
【００１６】
本発明の図面は、必ずしも縮尺通りのものではないことに注意されたい。図面は、単なる模式的な表現であり、本発明の特定のパラメータを描写することを意図するものではない。図面は、本発明の典型的な実施形態のみを示すことを意図するものであり、従って、本発明の範囲を限定するものとして考えるべきではない。
【００１７】
さらに、詳細な説明は、本発明の実施形態により用いられる構造体の例を示す付表Ｅ１により補完される。付表Ｅ１は、詳細な説明を分かり易くするため、及び参照を容易にするために、別途配置した。
【００１８】
本特許文書の開示の一部は、著作権保護の対象となり得る資料を含む。著作権者は、何人による、米国特許商標庁の特許ファイル又は記録に出ているとおりの本特許文書又は特許の開示のファクシミリでの複製にも異議はないが、それ以外の場合には、著作権及び／又は著者の権利の一切を留保する。
【００１９】
図１は、本発明の特定の実施形態による接続管理システム１００の高次の図を示す。
【００２０】
接続管理システム１００は、コンピュータ・アーキテクチャ２００内のコンピュータ・マシン２２０、２２１、２２２、２２３及び２２４の間の接続をプラグ・アンド・プレイ方式で管理するために提供される。接続管理システム１００は、以下「プラグ・アンド・プレイ」システムと称される。本説明において、「接続」及び「協調」という用語は、ターゲット環境内で共通のコンピューティング目標を達成するため及び／又は情報を交換するために２つのコンピュータ・マシンをアセンブルする又はリンクするプロセスを表す、同様の意味で用いられる。
【００２１】
図１に示される例示的なコンピュータ・アーキテクチャ２００は、インターネット及び／又はローカル・ネットワークのような１つ又は複数のネットワークにより互いに接続された、サーバ（２２０、２２１、２２１）及びデータベース（２２３）のようなコンピュータ・マシン２２０−２２４の分散型ネットワークを含む。メッセージは、システムのコンポーネント間で流れる。
【００２２】
コンピュータ・アーキテクチャ２００内の各コンピュータ・マシンは、多数の予めインストールされたソフトウェア・アプリケーション（独立型アプリケーション又はソフトウェア製品のようなアプリケーション・パッケージ）を含む。これは、異なるコンピュータ・マシン２２０−２２４間のワークフローにより特徴付けられるソフトウェア・トポロジを定義する。本発明の実施形態によるプラグ・アンド・プレイ・システム１００は、異なるコンピュータ・マシンにインストールされたソフトウェア・アプリケーションが、共通のコンピューティング目標を達成するため及び／又は情報（例えば、エンドユーザに対する製品サービス）を交換するために、互いに接続し、かつ協調することを可能にする。
【００２３】
コンピュータ・マシン２２０−２２４は、コンピュータ・アーキテクチャ２００が稼働する環境のタイプに応じて、物理マシン又は仮想マシンとすることができる。環境は、物理環境、仮想環境又は異種環境とすることができる。物理マシンは、限定はしないが、クライアント・コンピュータ、サーバ・コンピュータ、携帯型コンピュータ、埋込み型コントローラ、携帯型情報端末などを含む任意のタイプのコンピュータ、情報処理システム又はその他のプログラム可能電子デバイスを含む。
【００２４】
プラグ・アンド・プレイ・システム１００がコンピュータ・アーキテクチャ２００から分離して示されていたとしても、プラグ・アンド・プレイ・システム１００を完全に又は部分的にコンピュータ・アーキテクチャ２００内に含めることができることが、当業者には容易に理解されるであろう。
【００２５】
図２は、本発明の特定の実施形態によるプラグ・アンド・プレイ・システム１００の詳細図を示す。
【００２６】
プラグ・アンド・プレイ・システム１００は、コンピュータ・アーキテクチャ２００内の２つのコンピュータ・マシン２２間のロール（役割）ベースの協調をどのように確立するかを定義する、以下「ステレオケーブル・アダプタ」と称される１つ又は複数の接続管理構造体２１を含む。
【００２７】
本説明において、「ステレオケーブル」という語は、本発明の実施形態によるプラグ・アンド・プレイ・システム１００により管理されるコンピュータ・マシン間の接続を示すために用いられる。プラグ・アンド・プレイ・システム１００は、コンピュータ・マシンがターゲット環境内に配置されたときに自動的に互いを認識してプラグ・アンド・プレイ方式で協調を確立することができるように、コンピュータ・マシン間の接続を管理する。
【００２８】
ステレオケーブル・アダプタは、２つのコンピュータ・マシン２２間の各接続についてコンピュータ・マシンのロールを定義するいくつかの接続エントリ又はステレオケーブル・エントリを含むことができる。より詳細には、ステレオケーブル・アダプタ２１内の各接続エントリは、接続に関与するコンピュータ・マシンのうちの一方に割り当てられるプラグ・ロールと、接続に関与する他方のコンピュータ・マシンに割り当てられるソケット・ロールとを定義する。
【００２９】
ステレオケーブル・エントリは、例えばＲａｔｉｏｎａｌ  Ｓｏｆｔｗａｒｅ  Ａｒｃｈｉｔｅｃｔのようなモデル化ツールなどの特定のユーザ・インターフェースを用いてイメージを構築するときに、ステレオケーブル・カタログからステレオケーブル接続を選択すること可能にするユーザ・インターフェースから定義することができる。代替的に、ステレオケーブル・エントリは、例えば、カタログ内で事前定義されたステレオケーブルのリストからステレオケーブル接続をイメージに追加し、次いでイメージ内にインストールされた関連付けられたエンジンに対してそれらを配置することにより、それらを配置する前に事前定義することができる。ひとたび受信されると、新たなステレオケーブル接続は、処理される。このことは、基本イメージから始めて、配置前にプラグ・アンド・プレイ方式でサポートすべき全ての接続を追加することができるようになる可能性を与える。
【００３０】
ステレオケーブル・アダプタ２１はさらに、ソケット・ロールを有するコンピュータ・マシンが他のコンピュータ・マシンとの接続を確立するために提供することが必要とされる情報を表わす、ソケット・ロールのためのソケット属性と、プラグ・ロールを有するコンピュータ・マシンがソケット・ロールを有する他のコンピュータ・マシンとの接続を確立するために実行することが必要とされる情報を表わす、プラグ・ロールのための構成動作とを定義する。
【００３１】
本発明の実施形態によれば、コンピュータ・アーキテクチャ内のコンピュータ・マシン２２間の接続は、ステレオケーブル・アダプタ２１を用いて管理される。このような方式で、コンピュータ・マシンを共通のコンピューティング目標及び／又は情報交換を達成するように動的に接続及び構成することが可能であり、ロール・ベースの協調に関与する各コンピュータ・マシンの構成は、同じロール・ベースの協調に関与する他のコンピュータ・マシンによって公表された又は発行されたある種の値に基づく。
【００３２】
これにより、本発明は、ターゲット環境に配置されたときにいかなる手動構成段階も必要とすることなくプラグ・アンド・プレイ方式で協調を確立するように自動的に互いを認識することが可能なコンピュータ・マシンの組に対応する、動的「ステレオ」機器を定義及び管理する。
【００３３】
図３は、３つの仮想マシン２２５、２２６及び２２７、即ち、仮想マシンＶＭ１により表わされるＴＷＳユーザ・インターフェース２２５（ＴＥＳ＿ＵＩ）（ＴＷＳは、ＩＢＭ  Ｔｉｖｏｌｉ  Ｗｏｒｋｌｏａｄ  Ｓｃｈｅｄｕｌｅｒを意味する）、仮想マシンＶＭ２により表わされるＴＷＳサーバ２２６（ＴＷＳ＿ｓｅｒｖｅｒ）、及び仮想マシンＶＭ３により表わされるＩＴＭサーバ２２７（ＩＴＭ＿ｓｅｒｖｅｒ）（ＩＴＭは、ＩＢＭ  Ｔｉｖｏｌｉ  Ｍｏｎｉｔｏｒｉｎｇを意味する）を含む、ターゲット仮想環境内に配置された、例示的なコンピュータ・アーキテクチャを示す。図示されるように、３つの接続、即ち、ＴＷＳ＿ＵＩ２２５とＴＷＳ＿ＳＥＲＶＥＲ２２６との間の第１のロール・ベースの協調Ｃ１と、ＴＷＳ＿ＳＥＲＶＥＲ２２６とＩＴＭ＿ＳＥＲＶＥＲ２２７との間の第２のロール・ベースの協調Ｃ２と、ＴＷＳ＿ＵＩ２２５とＩＴＭ＿ＳＥＲＶＥＲ２２７との間の第３のロール・ベースの協調Ｃ３とが、ステレオケーブル・アダプタ２１からプラグ・アンド・プレイ・システム１００により確立されている。
【００３４】
図４は、本発明の特定の実施形態によるステレオケーブル・アダプタ２１の構造を示す。図示されるように、コンピュータ・アーキテクチャ内の２つのコンピュータ・マシン２２間の所与の接続に関連付けられた、ステレオケーブル・アダプタ２１内の各ステレオケーブル・エントリ又は「ステレオケーブル」２１０は、２つのコンピュータ・マシン２２のうちの一方に割り当てられた少なくとも１つのソケット・セクション又はソケット・ロール２１０１と、他方のコンピュータ・マシン２２に割り当てられた少なくとも１つのプラグ・セクション又はプラグ・ロール２１００とを含む。
【００３５】
ソケット・セクション又は「ソケット」２１０１は、所与の環境で稼働するソケット・ロールを有するコンピュータ・マシン（例えば、図３の例におけるＴＷＳ＿Ｓｅｒｖｅｒ２２６）が、同じ環境で稼働する別のコンピュータ・マシン（例えば、図３の例におけるＴＷＳ＿ＵＩ２２５）との協調を確立するために提供することが必要とされる情報を記述する。マシン２２は、ソケット・ロールが割り当てられたときに、ソケット定義により要求される情報を発行する。
【００３６】
例えば、発行される情報は、サーバのステータスについて（例えば、ｇｕｅｓｔＩｎｆｏ．ｓｔｅｒｅｏｃａｂｌｅｓ．ｓｏｃｋｅｔ．ＴＷＳ＿ＳＥＲＶＥＲ．ｓｔａｔｕｓ＝“Ｅｎａｂｌｅｄ”）、サーバのポートについて（例えば、ｇｕｅｓｔＩｎｆｏ．ｓｔｅｒｅｏｃａｂｌｅｓ．ｓｏｃｋｅｔ．ＴＷＳ＿ＳＥＲＶＥＲ．ｐｏｒｔ＝“１２３４”）、ユーザについて（ｇｕｅｓｔＩｎｆｏ．ｓｔｅｒｅｏｃａｂｌｅｓ．ｓｏｃｋｅｔ．ＴＷＳ＿ＳＥＲＶＥＲ．ｕｓｅｒ＝“ｐｃｉａｎｏ”）又はサーバのタイプについて（ｇｕｅｓｔＩｎｆｏ．ｓｔｅｒｅｏｃａｂｌｅｓ．ｓｏｃｋｅｔ．ＴＷＳ＿ＳＥＲＶＥＲ．ｔｙｐｅ＝“ｄｉｓｔｒｉｂｕｔｅｄ”）の情報を含むことができる。
【００３７】
プラグ２１００は、所与の環境で稼働する所与のコンピュータ・マシンが、同じ環境で稼働する別のコンピュータ・マシンとの協調を確立するために実行することが必要とされる動作を記述する。マシンは、プラグ・ロールが割り当てられたときに、対応するソケット・ロールの役割を果たすマシンを探し当て、発行されたソケット情報を取得し、プラグ定義に記述された動作を実行する。プラグ動作に加えて、プラグは、関連したソケットが除去／更新されたときに実行すべきアンプラグ動作（例えば、ユーザ・インターフェースが（ＵＩ）接続することができるエンジン候補のリストからそのサーバを除去すること）をさらに含むことができる。
【００３８】
本発明による特定の実施形態において、ステレオケーブル・アダプタ２１は、各マシン２２にロードされる構成ファイルとして、特にＸＭＬファイルとして定義することができる。例示的なＸＭＬステレオケーブル・ファイル２１は、付表Ｅ１に示される。付表Ｅ１に示されるように、ＸＭＬステレオケーブル・アダプタ内の各ステレオケーブル・エントリは、プラグ・セクション「＜ＰｌｕｇＳｅｃｔｉｏｎ＞」内に、例えば「＜ＰｌｕｇＩＤ＞ＴＷＳ＿ＵＩ＜／ＰｌｕｇＩＤ＞」のような１つ又は複数のプラグ定義を含む。
【００３９】
プラグ・セクション２１００内の各プラグは、プラグ・ロールを有するコンピュータ・マシン（例えば、ＴＷＳ＿ＵＩ）を識別するプラグＩＤ（例えば「Ｐｌｕｇ  ＩＤ１」）と、例えばタグ「＜ＣｏｎｆｉｇｕｒａｔｉｏｎＡｃｔｉｏｎｓ＞」により識別される、ステレオケーブル接続のために実行することが必要とされる構成動作のパラメータを定義する構成動作サブセクションとを含むことができる。サブセクション＜ＣｏｎｆｉｇｕｒａｔｉｏｎＡｃｔｉｏｎ＞内の各構成動作は、トリガ・タグ「＜ｔｒｉｇｇｅｒ＞」の値を定義することができる（例えば、＜ｔｒｉｇｇｅｒ＞の「ｄｅｐｌｏｙｍｅｎｔ」値は、その構成が配置時に一度だけ呼び出されるべきものであることを指示するが、例えば「ＶＭ  Ｓｔａｒｔ」のようなその他の＜ｔｒｉｇｇｅｒ＞値は、その構成が仮想マシン「ＶＭ」が開始されるたびに呼び出されることを指示する）。このサブセクション＜ＣｏｎｆｉｇｕｒａｔｉｏｎＡｃｔｉｏｎ＞内の各構成動作はさらに、「＜ＡｃｔｉｏｎＴｙｐｅ＞」のようなタグを用いて動作タイプ（例えば、動作タイプは「ｓｃｒｉｐｔ」値を有する）を定義し、その動作の構成パラメータを（例えば「＜ＣｏｎｆｉｇｕｒａｔｉｏｎＰａｒａｍｅｔｅｒ＞」タグを用いて）定義し、「＜Ｏｐｅｒａｔｉｏｎ＞」のようなタグにより識別される、その動作に伴う演算（例えば「／ｐｉｎｏ／ｄｒｉｖｅｒ４／ｓｃｒｉｐｔｓ／ＴＷＳＵＩ．ｓｈ」）を定義することができる。
【００４０】
ソケット・セクション２１０１内の各ソケットは、ソケット・ロールを有するコンピュータ・マシン（例えば、「ＴＷＳ＿Ｓｅｒｖｅｒ」）を識別するソケットＩＤ、例えばタグ「＜ＰｕｂｌｉｓｈｅｄＰａｒａｍｅｔｅｒｓ＞」により識別される、ソケット属性を定義する発行パラメータ・サブセクション、又は例えばタグ「＜ＣｏｎｆｉｇｕｒａｔｉｏｎＰａｒａｍｅｔｅｒ＞」により識別される構成パラメータを含むことができる。各構成パラメータの定義は、例えばタグ＜ＣｏｎｆｉｇｕｒａｔｉｏｎＮａｍｅ＞により識別される構成名（例えば「ｈｏｓｔ」）と、例えばタグ＜ＣｏｎｆｉｇｕｒａｔｉｏｎＶａｌｕｅ＞により識別される構成値（例えば「ｎｃ１２５０５０．ｌｏｃａｔｉｏｎ．ｉｂｍ．ｃｏｍ」）とを含むことができる。
【００４１】
ソケット・セクション２１０１及びプラグ・セクション２１００は、例えばタグ「＜Ｃｏｎｄｉｔｉｏｎ＞」により指示される、プラグ又はソケットを処理するために満たされるべき条件を記述する条件サブセクションをさらに含むことができる。これは、検討されているステレオケーブルと別のステレオケーブルとの間での従属条件であり得る。以下の例は、例示的な条件サブセクションを示す。
【表１】
2013513838.tif 000003
【００４２】
この例によれば、ソケットは、ＴＳＡＭ＿ＴＰＭ＿ＥＮＤ＿ＰＯＩＮＴプラグがアクティブである場合にのみ処理される。
【００４３】
図２に戻ると、プラグ・アンド・プレイ・システム１００はさらに、以下「ステレオケーブル・エンジン」と称される、少なくとも１つの接続管理ユニット２３も含む。本発明による特定の実施形態において、各コンピュータ・マシン２２に、それぞれのステレオケーブル・エンジン２３を設けることができる。代替的に、各プラグ・アンド・プレイ・システム１００は、図５に示されるように、別個のコンポーネント上、又は他のコンピュータ・マシンを管理することができる一意のコンピュータ・マシン上で稼働する、一意のステレオケーブル・エンジン２３を含むことができる。図５は、ステレオケーブル・アダプタ２１と全てのコンピュータ・マシン２２とに接続された、コンピュータ・アーキテクチャ２００内での接続を管理するための一意のステレオケーブル・エンジン２３を示す。
【００４４】
以下の説明は、例示のみの目的で、図２に示されるような、コンピュータ・マシン２２ごとに関連付けられた１つのステレオケーブル・エンジン２３を含むプラグ・アンド・プレイ・システム１００を参照して行う。
【００４５】
図２を参照すると、対応するマシン２２に関連付けられた各ステレオケーブル・エンジン２３は、配置時に、そのマシンに割り当てられたロールをステレオケーブル・アダプタ２１内に収容された情報に従って処理するように適合される。各ステレオケーブル・エンジン２３はまた、ステレオケーブル・アダプタ２１を用いて、コンピュータ・アーキテクチャ２００内のコンピュータ・マシン関連のイベント、例えば仮想データ・センタ型のコンピュータ・アーキテクチャにおける新たな仮想マシンの配置又は既存の仮想マシンの除去に基づいて、コンピュータ・アーキテクチャ構成を動的に管理するように規定されている。
【００４６】
ステレオケーブル・アダプタ２１は、各コンピュータ・マシン２２内の例えば専用ディレクトリ内にローカルに格納される場合もあり、あるいはデータベースのような外部記憶手段上に格納される場合もある。ステレオケーブル・アダプタが外部記憶装置内に格納されている実施形態においては、インターネットのようないずれかの既知の公衆又は専有のローカル又は広域のネットワークなどの適切な通信手段を通じてステレオケーブル・アダプタを取得するように、ステレオケーブル・エンジンを記憶装置に結合することができる。
【００４７】
本発明によるプラグ・アンド・プレイ・システム１００は、使用可能なソケットを追跡し、制約条件に基づいて要求されたときにこれらのソケットをプラグに提供する、以下「ステレオケーブル・レジストリ」と称されるリポジトリ２４をさらに含むことができる。リポジトリ２４は、ステレオケーブル接続に関与するコンピュータ・マシンごとに１つのエントリを含むことができ、エントリごとに、
−コンピュータ・マシン識別子である「ＳｙｓｔｅｍＩＤ」、
−（「ｓｙｓｔｅｍｉｄ」で識別されたコンピュータ・マシンと、接続に関与する他のコンピュータ・マシンとの間の）ステレオケーブル接続を識別する「ステレオケーブル（ｓｔｅｒｅｏｃａｂｌｅ）」属性、
−そのステレオケーブル接続について、ＳｙｓｔｅｍＩＤにより識別されるコンピュータ・マシンのロール（プラグ又はソケット）を識別するロール（ｒｏｌｅ）属性、
を含む、一組の属性を含むことができる。
【００４８】
レジストリ２４内の各エントリはさらに、
−ＳｙｓｔｅｍＩＤで識別されたコンピュータ・マシンの環境を識別する環境（ｅｎｖｉｒｏｎｍｅｎｔ）属性、
−ＳｙｓｔｅｍＩＤで識別されたコンピュータ・マシンの名称を識別する名称（ｎａｍｅ）属性、
−そのエントリに関連付けられたコンピュータ・マシンのホスト名を識別する「ホスト名（ｈｏｓｔｎａｍｅ）」属性、
−そのエントリに関連付けられたコンピュータ・マシンのポートを識別する「ポート（ｐｏｒｔ）」属性、及び
−コンピュータ・マシンのステータスを識別するステータス（ｓｔａｔｕｓ）属性（アクティブ又は非アクティブ）
などの、その他の属性を含むことができる。
【００４９】
さらに、リポジトリは、ステレオケーブル接続が確立されたときにそれを示す、プラグ・ロールを有するコンピュータ・マシン用の接続ステータス属性（「接続（ｃｏｎｎｅｃｔｅｄ）」属性）を含むことができる。
【００５０】
以下の２つのエントリは、仮想コンピュータ・アーキテクチャにおける、プラグ・ロールを有する第１の仮想マシンＶＭ１とソケット・ロールを有する第２の仮想マシンＶＭ２との間のステレオケーブル接続について、リポジトリ２４に格納された例示的なエントリである。
ＳＹＳＴＥＭＩＤ：  ＶＭ２
ＳｔｅｒｅｏＣａｂｌｅ：  （ＴＷＳ＿ＵＩ，ＴＷＳ＿ＳＥＲＶＥＲ）
Ｒｏｌｅ：  ｓｏｃｋｅｔ
Ｅｎｖｉｒｏｎｍｅｎｔ：  ＴＥＳＴ
Ｈｏｓｔｎａｍｅ：ｇｃｉａｎｏ．ｌｏｃａｔｉｏｎ．ｉｂｍ．ｃｏｍ
Ｐｏｒｔ：  １３３３１
Ｎａｍｅ：  ｔｗｓ＿ｄｉｓｔｒｉｂｕｔｅｄ
Ｕｓｅｒ：  ｔｗｓ８５ｍｄｍ
Ｓｔａｔｕｓ：  ａｃｔｉｖｅ
ＳＹＳＴＥＭＩＤ：  ＶＭ１
ＳｔｅｒｅｏＣａｂｌｅ：  （ＴＷＳ＿ＵＩ，ＴＷＳ＿ＳＥＲＶＥＲ）
Ｒｏｌｅ：  ｐｌｕｇ
Ｃｏｎｎｅｃｔｅｄ：  ＶＭ２：ＴＷＳ＿ＳＥＲＶＥＲ
Ｓｔａｔｕｓ：  ａｃｔｉｖｅ
Ｅｎｖｉｒｏｎｍｅｎｔ：  ＴＥＳＴ
代替的に、コンピュータ・マシン２２は、上記の情報をステレオケーブル・アダプタから直接発行し、発行された情報を、ステレオケーブル・レジストリ２４内への格納を要さず共有することができる。
【００５１】
プラグ・アンド・プレイ・システム１００はまた、プラグ・アンド・プレイ・システム１００内に維持されたプラグ及びソケット情報からコンピュータ・マシン接続の表示を動的に生成する、以下、ステレオケーブル・ユーザ・インターフェース（ＵＩ）と称されるユーザ・インターフェース２５を含むこともできる。ステレオケーブル・ユーザ・インターフェース２５は、ステレオケーブル・レジストリ２４から、又はコンピュータ・マシン２２にロードされたステレオケーブル・アダプタから直接、プラグ及びソケット情報にアクセスすることができる。
【００５２】
プラグ・アンド・プレイ・システム１００に、コンピュータ・アーキテクチャ２００（例えば、仮想データ・センタ）内のデータフロー交換を管理するためのコンピュータ・アーキテクチャ・マネジャ２６を設けることもできる。特に、コンピュータ・アーキテクチャ・マネジャ２６は、新たな仮想マシンの作成、仮想マシンの除去、又はソケットの発行／除去のような、コンピュータ・アーキテクチャ内のイベントに関連した情報を格納することができる。コンピュータ・アーキテクチャ・マネジャ２６は、コンピュータ・アーキテクチャ２００内で検知されたイベントに関連した情報を、適切な通信手段を通じてステレオケーブル・エンジン２３に通信する。これにより、ステレオケーブル・エンジン２３は、コンピュータ・アーキテクチャ内で生じている変化について常に知らされ、これらの変化を考慮してコンピュータ・マシン間の協調を管理することができる。
【００５３】
ひとたび配置時に確立されると、ステレオケーブル接続は、コンポーネントのライフサイクルを通じて、プラグ・アンド・プレイ・システム１００により動的に管理される。ステレオケーブル・エンジン２３は、接続を起動し、解除し、又は再起動するために、新たな各イベント（例えば、仮想データ・センタ型コンピュータ・アーキテクチャにおける新たな仮想マシン２２の配置又は既存の仮想マシン２２の除去など）を処理する。
【００５４】
ステレオケーブル・エンジン２３は、ソケットが発行されたとき、更新されたとき、又は除去されたときに、変化を通知するためにイベントを生成することもできる。
【００５５】
図６は、配置時のステレオケーブル接続の初期化、並びにコンピュータ・アーキテクチャ２００内で生成されたイベントに基づくコンピュータ・マシンのライフサイクル中のステレオケーブルの動的管理を説明するフローチャートを示す。
【００５６】
ステレオケーブルの初期化段階中に、ステレオケーブル接続のソケット・ロールを有するコンピュータ・マシンは、ステレオケーブル・アダプタ２１内に維持されたソケット定義により要求される情報を発行する。発行された情報から、次にプラグ・コンピュータ・マシンが、対応するソケットを有するそれぞれのコンピュータ・マシンとの協調を確立する。ステレオケーブル初期化段階はまた、所与のステレオケーブル接続についてのプラグ・ロールを有する各コンピュータ・マシンが、要求されるソケット・ロールの役割を果たす他のコンピュータ・マシンを探し当て、発行されたソケット情報を取得し、プラグ定義に記述された動作を実行することも可能にする。
【００５７】
より詳細には、ステレオケーブル・エンジン２３は、ステップ６０１において処理を開始する。処理は、配置時にトリガすることができる。
【００５８】
ステップ６０２において、これは、処理に必要な情報を取得するためにレジストリ２４に接続する。
【００５９】
ステップ６０２は、エンジンにより用いられる例えばＳＬＰ（サービス・ロケーション・プロトコル）などのプロトコルが許可する場合には、レジストリの自動検出を用いて行うことができる。
【００６０】
ステップ６０３において、ステレオケーブル・エンジンは、コンピュータ・マシン・ロール、及びコンピュータ・マシンが属する環境をレジストリ２４から取得する。
【００６１】
レジストリ２４は、コンピュータ・アーキテクチャにおけるコンピュータ・マシン・ロールについてのステレオケーブル・エントリを格納しており、所与のコンピュータ・マシンについての各エントリは、ロール（プラグ又はソケット）と、そのコンピュータ・マシンとステレオケーブル接続に関与する他方のコンピュータ・マシンとの間のステレオケーブル接続と、そのマシンが属する環境とを識別するものである。
【００６２】
ステップ６０４において、コンピュータ・マシンに関連付けられたステレオケーブル・アダプタ２１が取得される。ステレオケーブル・アダプタ２１がコンピュータ・マシン内にローカルに格納されていない実施形態においては、ステレオケーブル・エンジン２３は、適切な通信手段を通じて外部記憶装置からステレオケーブル・アダプタ２１を取得し、次に、取得したステレオケーブル・アダプタをコンピュータ・マシン内に格納することができる。
【００６３】
ステップ６０５において、ステレオケーブル・エンジン２３は、コンピュータ・マシンに関連付けられたソケット接続を処理する（段階Ａ）。ソケット接続処理段階は、コンピュータ・マシンに割り当てられた各ソケット・ロールのソケット属性を発行し、対応するソケットを起動するように行われる。
【００６４】
ステップ６０６において、ステレオケーブル・エンジン２３は、プラグ接続を処理する（段階Ｂ）。プラグ接続処理段階は、コンピュータ・マシンに割り当てられた各プラグ・ロールを処理し、各プラグ・ロールについて、要求されるソケット・ロールの役割を果たす他のコンピュータ・マシンを識別し、発行されたソケット情報を取得し、発行されたソケット情報を用いて、プラグ定義に記述された動作を実行するように行われる。
【００６５】
ひとたびコンピュータ・マシンに割り当てられたソケット及びプラグ・ロールの初期化が完了すると、コンピュータ・マシンのライフサイクル中に、コンピュータ・アーキテクチャ内で生成されるイベントに基づいてステレオケーブルを動的に管理するために段階Ｃが行われる。
【００６６】
図７は、ソケット接続を処理する段階Ａ（ステップ６０５）を示すフローチャートである。
【００６７】
ステップ７０１において、ステレオケーブル・エンジンは、コンピュータ・マシンに関連付けられたステレオケーブル・アダプタ２１をロードし、処理されているコンピュータ・マシンのステレオケーブル機能全体を無効にする。ステレオケーブル機能全体を無効にすることにより、それ自体のプラグを処理しているその他のステレオケーブル・エンジンが、不完全なソケット情報にアクセスすることが防止される。
【００６８】
以下のステップは、ステップ６０３において識別されたコンピュータ・マシン・ロールのうちの１つと等しい、ステレオケーブル・アダプタ２１内に収容された各ソケット・ロールについて行われる（ステップ７０２）。
【００６９】
ステップ７０３において、ステレオケーブル・エンジン２３は、ステレオケーブル・アダプタのソケット・セクションが、検討されているステレオケーブルと別のステレオケーブルとの間の従属条件を定義しているかどうかチェックする（＜ｃｏｎｄｉｔｉｏｎ＞サブセクションにおいて）。ソケットｓｏｃｋｅｔＩＤ１の従属条件は、「別のソケットｓｏｃｋｅｔＩＤ２が既にアクティブである場合にのみｓｏｃｋｅｔＩＤ１を処理する」又は「ｐｌｕｇＩＤ４がアクティブである場合にのみｓｏｃｋｅｔＩＤ１を処理する」などのように、例えば、ｓｏｃｋｅｔＩＤ１の処理が別のソケットの状態に依存することを表すものとすることができる。ソケットが従属条件を含む場合には、ステレオケーブルは、従属条件が満たされているかどうかチェックする。従属条件が満たされていない場合には、検討されているソケットの発行に関連したイベントの受信に応答して後で処理するために、ステップ７０４において、ソケットは作業キューに加えられる。従属条件が満たされている場合には、ステップ７０５において、現在のソケットの属性がステレオケーブル・アダプタから取得される。
【００７０】
ステップ７０６において、ソケット属性が発行又は公表される。ソケット属性はレジストリ２４において発行することができ、それらが発行される方式は、レジストリの実装技術に依存する。例えば、レジストリがＶＭｗａｒｅ技術（ＶＭｗａｒｅは、米国及び／又はその他の管轄区域におけるＶＭｗａｒｅ，Ｉｎｃ．の登録商標又は商標である）によるものである場合には、ＶＩ（ＶＭｗａｒｅ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）ＳＤＫを用いてソケット属性を発行することができ、レジストリがＳＬＰ（サービス・ロケーション・プロトコル）ディレクトリ・エージェントである場合には、発行は、ＳＬＰ  ＡＰＩ(アプリケーション・プログラミング・インターフェース）を通じて行うことができる。
【００７１】
ステップ７０７において、ステレオケーブル・エンジンは、ソケットがアクティブであることを示す情報（ソケット・ステータス）を発行する。
【００７２】
ステップ７０８において、発行されたソケットについてのイベントが生成される。図２に示される実施形態において、発行されたソケットに関連したイベントは、コンピュータ・アーキテクチャ２００内で発生するイベントを管理するコンピュータ・アーキテクチャ・マネジャ２６に送られる。コンピュータ・アーキテクチャ・マネジャ２６は、関連付けられたプラグを処理するためにソケットの発行を待機しているステレオケーブル・エンジン２３を識別し、識別されたステレオケーブル・エンジン２３がプラグの処理を開始できるように、ソケットの発行に関連したイベントをこれらのエンジンに送信するように適合されている。
【００７３】
ステップ７０９において、ステータス属性が「ａｃｔｉｖｅ」値を有する（例えば、Ｓｔａｔｕｓ：ａｃｔｉｖｅ）、発行されたソケットに関連するエントリが、レジストリ２４内に加えられる。このエントリは、ソケット・ロールを有するコンピュータ・マシンの識別子（例えば、「ＳＹＳＴＥＭＩＤ：ＶＭ２」）、ステレオケーブルの識別子（例えば、「ＳｔｅｒｅｏＣａｂｌｅ：（ＴＷＳ＿ＵＩ，ＴＷＳ＿ＳＥＲＶＥＲ）」）、コンピュータ・マシンのロール（例えば、「Ｒｏｌｅ：ｓｏｃｋｅｔ」）、コンピュータ・マシンの環境（例えば、「Ｅｎｖｉｒｏｎｍｅｎｔ：ＴＥＳＴ」）、並びにコンピュータ・マシンのホスト名、ポート、名称及びユーザ識別子などのその他の属性のような、発行されたソケットの属性を含むこともできる。
【００７４】
ステップ６０３において識別されたコンピュータ・マシン・ロールのうちの１つと合致したステレオケーブル・アダプタ内の各ソケット・ロールについて、ステップ７０２から７０９を反復することによって上記ステップが繰り返される。全てのソケット・ロールが処理されたら、ソケットの処理は終了し、そのコンピュータ・マシンのステレオケーブル機能全体がステップ７１０において有効にされる。
【００７５】
図８は、プラグ接続を処理する段階Ｂ（ステップ６０６）を示すフローチャートである。
【００７６】
検討されているコンピュータ・マシンに割り当てられた各プラグ・ロールについて、この処理Ｂは、そのコンピュータ・マシンが、ソケット・ロールの役割を果たす他のコンピュータ・マシンとの間で確立すべき接続を識別し、要求されるソケット・ロールを有するこれらのコンピュータ・マシンにより発行されたソケット情報を取得し、プラグ定義に記述された構成動作を実行して接続を確立することを可能にする。
【００７７】
ステップ８０１において、プラグ接続の処理が開始される。
【００７８】
ステップ８０２において、ステレオケーブル・エンジンは、コンピュータ・マシンに関連付けられた（コンピュータ・マシンにローカルに格納されていない場合には、ステップ６０４においてコンピュータ・マシンにロードされた）ステレオケーブル・アダプタ２１にアクセスする。
【００７９】
以下のステップは、ステップ６０３において識別されたコンピュータ・マシン・ロールのうちの１つと等しい、ステレオケーブル・アダプタ２１内の各プラグ・ロールについて行われる。
【００８０】
ステップ８０３において、ステレオケーブル・エンジン２３は、プラグが、そのプラグとその他のステレオケーブルとの間の条件を定義する従属条件サブセクションを含むかどうかチェックする。従属条件が含まれている場合には、ステレオケーブル・エンジン２３は、条件が満たされているかどうか判断する。従属条件が満たされていない場合には、後で処理するために、ステップ８０４において、プラグは作業キューに加えられる。
【００８１】
従属条件が満たされている場合には、ステレオケーブル・エンジンは、ステップ８０５において、ステレオケーブル・アダプタから、現在のプラグにより要求されるソケット情報の取得を開始する。これは、要求されたソケットを提供する同じ環境に属するコンピュータ・マシンを発見し、必要としているソケットについての情報を発行することを含む。
【００８２】
ステップ８０５において要求されるソケット・ロールを有するコンピュータ・マシンが発見されない場合には、ステップ８０６において、プラグは作業キューに加えられる。
【００８３】
ステップ７０３、８０３及び８０６における作業キューは、別々の作業キューを形成してもよく、又はステレオケーブル・エンジンが稼働しているところにローカルに格納される一意のキューを形成してもよい。
【００８４】
そうでない場合には、ステップ８０５において、要求されるソケット・ロールを有する一意のコンピュータ・マシン又は複数のコンピュータ・マシンのどちらかが見いだされているはずである。ステップ８０５において複数のコンピュータ・マシンが発見された場合には、ステップ８０７において、ステレオケーブル・アダプタ２１内で定義されている、例えば「最初に見出されたソケットを選択する」又は「特定の属性の値に基づいてソケットを選択する」といった規則に基づいて、どのコンピュータ・マシンを選択すべきかが決定される。
【００８５】
ステップ８０８において、レジストリ２４を用いて、要求されるソケット・ロールを有する識別されたコンピュータ・マシンについて、ソケットのステータスがアクティブかどうか判断される。識別されたコンピュータ・マシンは、ステップ８０５において見出されたコンピュータ・マシン、又はステップ８０５において複数のコンピュータ・マシンが発見された場合にステップ８０７において選択されたコンピュータ・マシンのいずれかを指す。識別されたコンピュータ・マシンのステータスがアクティブである場合には、対応する発行されたソケットの属性がレジストリ２４から取得され、そのプラグ・ロールについてステレオケーブル・アダプタ内で定義された構成動作が呼び出され、発行されたソケットの属性がパラメータとして渡される。構成動作は、値を戻し、これはステレオケーブル・エンジンによりチェックされる。得られた値が、成功（ｓｕｃｃｅｓｓｆｕｌ）である場合には、構成の実装は成功したが、そうでない場合には、実装は成功しなかった。
【００８６】
次に、そのプラグが現在アクティブであるという情報（プラグ・ステータス）及びプラグ属性が、ステップ８１０において発行される。
【００８７】
ステップ８１１において、発行されたプラグについてのイベントが生成され、コンピュータ・アーキテクチャ・マネジャ２６に送られる。
【００８８】
ステップ８１２において、ステータス属性が「ａｃｔｉｖｅ」に設定されたそのプラグについてのエントリが、レジストリ２４に加えられる。このエントリは、プラグ・ロールを有するコンピュータ・マシンの識別子（例えば、「ＳＹＳＴＥＭＩＤ：ＶＭ１」）、ステレオケーブル識別子（例えば、「ＳｔｅｒｏＣａｂｌｅ：（ＴＷＳ＿ＵＩ，ＴＷＳ＿ＳＥＲＶＥＲ）」）、コンピュータ・マシンのロール（例えば、「ｒｏｌｅ：ｐｌｕｇ」）、コンピュータ・マシンの環境（例えば、「Ｅｎｖｉｒｏｎｍｅｎｔ：ＴＥＳＴ」）、及び、どのソケットにそのプラグが接続されているかを示す情報（例えば、「Ｃｏｎｎｅｃｔｅｄ：ＩＭＡＧＥ２：ＴＷＳ＿ＳＥＲＶＥＲ」）を含む、多数の属性を含むことができる。
【００８９】
ステップ６０３において識別されたコンピュータ・マシン・ロールのうちの１つと合致したステレオケーブル内の各プラグ・ロールについて、ステップ８０３から８１２を反復することによって上記ステップが繰り返される。
【００９０】
全てのプラグ・ロールが処理されたら、プラグ接続の処理は終了する。
【００９１】
図９は、動的段階Ｃにおいてステレオケーブルを動的に処理するためのフローチャートを示す（ステップ６０７）。
【００９２】
ステレオケーブルの動的処理は、ステップ９００で開始される。
【００９３】
ステレオケーブルの動的処理は、接続に関連した変化が生じたとき（例えば、コンピュータ・マシンの除去）、ソケットがアクティブになったとき、コンピュータ・マシンが使用可能になったときなど、コンピュータ・アーキテクチャ２００内で生成されるステレオケーブル接続に関連したイベントを考慮して実行される。
【００９４】
ステップ９０１は、ステレオケーブルのイベント（ソケット生成、ソケット除去、ソケットの発行／除去、又は仮想マシンの配置／棄却など）、及び特定のロール（プラグ又はソケット）を有するコンピュータ・マシンについてのマシン関連イベント（仮想マシンの配置、仮想マシンの棄却など）の収集を開始する。このステップは、図２に示された実施形態において、ステレオケーブル・エンジン２３とコンピュータ・アーキテクチャ・マネジャ２６との間の通信を通じて行うことができる。
【００９５】
ステップ９０２は、ステップ９０１の結果としてイベントが受信されたかどうか判定する。受信されていなければ、ステップ９０２においてイベントが受信されるまで、ステップ９０１とステップ９０２とが周期的に繰り返される。
【００９６】
イベントが受信されたなら、イベントに関連する情報がステップ９０３において取得される。この情報は、コンピュータ・アーキテクチャ・マネジャ２６が提供することができる。
【００９７】
ステップ９０４において、受信したイベントが作業キュー内に存在するステレオケーブルに関連したものであるかどうかが、ステップ９０３で取得されたイベント情報に基づいて判定される。
【００９８】
ステレオケーブルが作業キューに格納されている場合には、ステップ９０５において、ステレオケーブルが作業キューから取得される。
【００９９】
ステップ９０６において、ステレオケーブルがソケットに対応するかどうか判定される。ソケットである場合には、ステップ９０７において、図７に関して説明したようにソケット接続が処理される（段階Ａ）。
【０１００】
そうではなく、ステレオケーブルがプラグに対応する場合には、ステップ９０８において、図８に関して説明したようにプラグ接続が処理される（段階Ｂ）。
【０１０１】
ステレオケーブルが作業キュー内で見つからなかった場合には（ステップ９０４）、ステップ９０９において、そのイベントが、レジストリ２４内でエントリが生成されたステレオケーブルに関連したものであるかどうかが判定される。そうでない場合には、新たなイベントが受信されるまで、処理はステップ９０２に戻る。
【０１０２】
そうではなく、ステレオケーブル・レジストリ２４が、検討されているステレオケーブルについてのエントリを含む場合には、ステップ９１０において、ステレオケーブルがレジストリから取得される。ステップ９１１は、次に、ステレオケーブルがステップ９１２においてソケットと対応するかどうか判定する。これがソケットを表わす場合には、ステップ９１２において、ソケット接続再発行処理が行われる（段階Ｄ）。この事例は、要求されたアクティブなソケットを発行する新たなコンピュータ・マシンの発見に関連したイベント、又は要求されたアクティブなソケットを発行するコンピュータ・マシンの除去に関連したイベントに対して生じ得る。
【０１０３】
そうではなく、ステレオケーブルがプラグを表わす場合には、ステップ９１３において、プラグ接続が再処理される（段階Ｅ）。この事例は、ステレオケーブル・レジストリ２４内にエントリを有するプラグによって現在用いられているソケットを発行するコンピュータ・マシンの除去に関連したイベントに対して生じ得る。
【０１０４】
図１０は、ソケット接続の再発行を記述するフローチャートである（段階Ｄ）。ソケット接続の再発行は、例えば、幾つかの発行された情報が変更されたことを原因としてトリガされ得る。
【０１０５】
ステップ１００１において、ソケット接続再発行プロセスＤが開始される。
【０１０６】
ステップ１００２において、ステレオケーブル・エンジンは、コンピュータ・マシンに関連付けられたステレオケーブル・アダプタ２１をロードし、そのコンピュータ・マシンについてのステレオケーブル機能全体を無効にする。
【０１０７】
ステップ１００３において、受信されたイベントについての、ステップ９１１において識別されたアクティブなソケット属性が、ステレオケーブル・アダプタから取得される。
【０１０８】
ステップ１００４において、ソケット属性が発行される又は公表される。
【０１０９】
ステップ１００５において、ソケットがアクティブであるという情報（ソケットステータス）が発行される。
【０１１０】
ステップ１００６において、発行されたソケットについてのイベント、例えば、例示的なイベント：
「Ｅｖｅｎｔ＿ＩＤ  ＝  ＳＴＥＲＥＯＣＡＢＬＥＳ＿ＳＯＣＫＥＴ＿ＰＵＢＬＩＳＨＥＤ  ｜  ＳＴＥＲＥＯＣＡＢＬＥＳ＿ＰＬＵＧ＿ＰＵＢＬＩＳＨＥＤ  ｜  ＰＯＶＥＲＥＤ＿ＯＦＦ  ｜  ＰＯＶＥＲＥＤ＿ＯＮ  ｜  ＲＥＭＯＶＥＤ  
Ｅｖｅｎｔ＿Ｉｎｆｏ＝  ｐｌｕｇＩＤ  ｏｒ  ｓｏｃｋｅｔＩＤ
Ｅｖｅｎｔ＿Ｓｏｕｒｃｅ  ＝  ｃｏｍｐｕｔｉｎｇ＿ｍａｃｈｉｎｅ＿ｉｄ
Ｅｖｅｎｔ＿Ｄａｔｅ  
Ｅｖｅｎｔ＿Ｔｉｍｅ」
が生成される。
【０１１１】
図２に示された実施形態において、発行されたソケットに関連したイベントは、コンピュータ・アーキテクチャ・マネジャ２６に送られる。
【０１１２】
ステップ１００７において、発行されたソケットに関連したエントリが、レジストリ２４内で更新される。
【０１１３】
ステップ１００８において、ソケット接続再発行処理は、終了する。
【０１１４】
図１１は、プラグ接続の再処理の段階Ｅを記述するフローチャートである（ステップ９１３）。段階Ｅは、例えば、ソケットを含むコンピュータ・マシンが環境から除去され、これに接続されたプラグが、接続を確立するためにその環境内の新たなソケットを探す必要があるときにトリガされ得る。
【０１１５】
ステップ１１０１において、プラグ接続再処理プロセスＤが開始される。
【０１１６】
ステップ１１０２において、ステレオケーブル・アダプタ２１がロードされる。
【０１１７】
ステップ１１０３において、アクティブなプラグについてステレオケーブル・アダプタ内で定義された構成動作が呼び出され、関連付けられたソケットの発行されたソケット属性がパラメータとして渡される。発行された属性は、レジストリ２４から取得される。
【０１１８】
ステップ１１０４において、そのプラグが現在アクティブであるという情報（プラグ・ステータス）が発行される。
【０１１９】
ステップ１１０５において、アンプラグドされた（ｕｎｐｌｕｇｇｅｄ）プラグについてのイベントが送信される。ソケットがもはや使用可能でなくなっている場合には、プラグももはやそのソケットには接続されておらず、次いでアンプラグされる。ステップ１１０６において、そのプラグについてのエントリが作業キューに加えられる。次に、プラグ接続は、ステップ１１０７において、段階Ａ（図７）に従って処理される。
【０１２０】
ステップ１１０８において、プラグ接続の再発行処理は、終了する。
【０１２１】
図１２は、仮想データ・センタ型のコンピュータ・アーキテクチャへの本発明の例示的な適用を示す。仮想コンピュータ・アーキテクチャに限定するわけではないが、本発明は、そのようなアーキテクチャにとって特に有利である。
【０１２２】
図示されるように、レジストリ２４は、いくつかの仮想マシン・エントリ２４０、２４１を格納し、仮想マシン２２についての各エントリは、所与のステレオケーブル接続についてそのマシンに割り当てられたロールを識別する。例えば、１つのエントリ２４０は、仮想マシンＶＭ２（「ＴＷＳ＿ｓｅｒｖｅｒ」）に関連したものであり、これはステレオケーブル接続（ＴＷＳ＿ＵＩ，ＴＷＳ＿ｓｅｒｖｅｒ）についてのものであり、そのためにＶＭ２は、環境ＴＥＳＴにおけるＳＯＣＫＥＴロールを割り当てられている。このエントリはまた、ソケット属性である、「ホスト名」、「ポート」、「名称」、「ユーザ」を指定する。別のエントリ２４１は、仮想マシンＶＭ１（「ＴＷＳ＿ＵＩ」）について表わされたものであり、これは環境ＴＥＳＴにおける同じステレオケーブル接続（ＴＷＳ＿ＵＩ，ＴＷＳ＿ｓｅｒｖｅｒ）についてのものであり、ＶＭ１にはこの接続についてＰＬＵＧロールが割り当てられていることを示す。本発明の実施形態によれば、ステレオケーブル初期化段階において、ＶＭ２は、最初に、そのロールをレジストリ２４から取得し、環境ＴＥＳＴについてのソケットＴＷＳ＿ＳＥＲＶＥＲのソケット属性を発行又は公表する。ＶＭ１は、そのロールをレジストリ２４から取得する。これは環境ＴＥＳＴにおけるＴＷＳ＿ＵＩプラグであるので、同じ環境についてのＴＷＳ＿ＳＥＲＶＥＲソケット情報を取得する。これは、次にプラグ・スクリプトを実行し、発行されたソケット属性を用いて構成動作を実行することにより、ケーブル又は接続を起動する。
【０１２３】
図１３及び図１４は、例示的なステレオケーブル・ユーザ・インターフェース２５の、異なるステータスを示す。ステレオケーブル・ユーザ・インターフェース２５を用いて、データ・センタ内のマシン間のステレオケーブル接続が表示され、確立された接続並びに関連したプラグ及びソケットについての詳細な情報が提供される。図１３において、ＩＴＭサーバとＴＷＳマスタとの間のステレオケーブル接続ＳＣ１、及びＴＷＳサーバとＴＷＳウェブ・ユーザ・インターフェースとの間の別の接続ＳＣ２が、環境ＴＥＳＴ内に存在することが示される。ＴＷＳ＿ｓｅｒｖｅｒには、ソケット・ロールが割り当てられ、このソケットはアクティブであること、一方、ＩＴＭ＿ＵＡにはプラグ・ロールが割り当てられ、プラグはアクティブであることが示される。ステレオケーブル・ユーザ・インターフェース２５は、ステレオケーブル・レジストリ２４内に収容されたデータから動的に生成することもでき、又はマシンから受信されるデータから直接生成することもできる。
【０１２４】
ステレオケーブルユーザ・インターフェース２５にはさらに、新たなステレオケーブルをカスタマイズするための強化されたドラッグ・アンド・ドロップ機能を設けることができる。図１４は、そのようなドラッグ・アンド・ドロップ機能を有する例示的なステレオケーブル・インターフェース２５を表わす。図示されるように、このインターフェースは、ユーザが、切断された仮想マシン「ＩＴＭ＿６．２．１」をドラッグして、「ＴＷＳ＿８５」にドロップすることを可能にする。この動作は、２つの仮想マシン間に新たなステレオケーブルを生成する。レジストリ内に既に存在するステレオケーブル候補のリストを示すこともでき、あるいは新たなステレオケーブルを白紙の状態から作成することも可能であり得る。
【０１２５】
したがって、本発明は、物理的な環境で稼働する製品／コンポーネントを真のプラグ・アンド・プレイ方式で自動的に構成するための、効率的なソリューションを提供する。さらに、本発明は、新たなコンピュータ・マシンにおいて稼働する製品／コンポーネントを、ターゲット環境内に既に配置されたコンピュータ・マシンにおいて使用可能なアプリケーション／コンポーネントに対して、真のプラグ・アンド・プレイ方式で自動的に構成することも可能にする。
【０１２６】
特に、本発明によるコンピュータ・システムを構成する方法及びシステムは、ステレオケーブル構造体により表わされる一組の所与の構成モデル及びポリシーに従って、製品／コンポーネントを動的に構成することを可能にする。各コンピュータ・マシンに割り当てられるロールを静的な方法（ソケットＩＤ及びプラグＩＤ）で事前定義する必要はない。対照的に、各マシンは、配置時に、又はその全ライフサイクル中にステレオケーブル接続に影響を与える変化があった場合に、そのロール及び割り当てられたステレオケーブルをステレオケーブル・エンジンから取得することができる。
【０１２７】
ステレオケーブル内に記述される構成は、例えば自動構成のサポート若しくはステレオケーブル・ユーザ・インターフェースを通じた手動確認を求めるプロンプトを要求するポリシーのような、ポリシーに基づいて確立することもでき、又は制約条件の組（例えば、プラグは特定のプロパティを有するソケットにのみ接続できること、又は、１つのソケットは１００より多くのプラグの接続をサポートできないこと）を満たすように確立することもできる。
【０１２８】
ひとたび確立されると、構成は、静的ではなく、環境によって又はステレオケーブル・ユーザ・インターフェースからユーザによりトリガされる動作（例えば、新たなステレオケーブルを仮想マシンに加えること）によって生成されるイベントに基づいて、動的に管理及び更新することができる。
【０１２９】
ステレオケーブル・アダプタ内に記述された構成動作は、例えば以下のトリガイベント：
−ソケットの発行、更新又は除去
−仮想マシンの配置又は除去
−仮想マシンの開始又は停止、等
のような、様々なトリガタイプに基づいて開始することができる。
【０１３０】
構成値は、静的には定義されないが、ステレオケーブル構造体に記述されているように、ローカル・スクリプト、リモート・スクリプト、ウェブサービス等を呼び出す様々な方式で動的に取得することができる。例えば、ソケットは、それを必要とするプラグからリアルタイムで発見され、取得される幾つかの構成情報を発行することができる。
【０１３１】
本発明の実施形態はまた、一般的なイベント（例えば、仮想マシンのスタートアップ／シャットダウン）だけでなく、（特に）もっと細かいイベント、例えば
−新たなソケットＳ１の発行：この場合、それを待機しているプラグを保持するマシンは、公表された情報を取得し、必要とされる構成を起動させる
−ソケットＳ２の更新：既にこれに接続されていたマシンは、公表された情報を取得し、必要とされる再構成プロセスを開始する
−ソケットＳ３の除去／停止：既にこれに接続されていたマシンは、必要な切断プロセスを開始し、次に構成プロセスを再始動する
を生成及び処理することにより、真の動的インフラストラクチャを提供する。
【０１３２】
本発明により、共通のコンピューティング目標を達成し、及び／又は情報を交換するために、ソフトウェア・アプリケーションを動的に接続し、プラグ・アンド・プレイ方式で構成することができる。協調するコンピュータ・マシンの構成は、他のコンピュータ・マシンにより公表又は発行された幾つかの値に基づいて自動的に実行される。コンピュータ・マシン間での協調及び共通のコンピューティング目標を達成できるようにするために、手動構成ステップは必要とされない。本発明によるソリューションは、配置時のみならず、コンピュータ・マシンのライフサイクルの任意の時点で、透過的な接続管理を保証する。コンピュータ・アーキテクチャ内の接続（既に確立されたもの又は未だ確立されていないもの）に影響を与える可能性があるコンピュータ・アーキテクチャのいかなる変化も、コンピュータ・マシン間の協調を動的に管理するために考慮される。
【０１３３】
本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又はハードウェアとソフトウェアの要素の両方を含む実施形態の形態をとることができる。好ましい実施形態においては、本発明は、ソフトウェアとして実装され、これは、限定されるものではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む。
【０１３４】
さらに、本発明は、コンピュータ若しくは任意の命令実行システムによって又はそれらと組み合わせて用いられるプログラム・コードを提供する、コンピュータ使用可能媒体又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形態をとることができる。この説明の目的については、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置若しくはデバイスによって又はそれらと組み合わせて用いられるプログラムを収容し、格納し、通信し、伝搬し、又は移送することができる任意の有形の装置とすることができる。
【０１３５】
媒体は、電子、磁気、光学、電磁気、赤外線若しくは半導体のシステム（又は装置若しくはデバイス）又は伝搬媒体とすることができる。コンピュータ可読媒体の例として、半導体メモリ又は固体メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、剛性磁気ディスク及び光ディスクが挙げられる。光ディスクの現在の例として、コンパクト・ディスク−読み出し専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読み出し／書き込み（ＣＤ−Ｒ／Ｗ）及びＤＶＤが挙げられる。
【０１３６】
プログラム・コードを格納及び／又は実行するのに適したデータ処理システムは、システム・バスを通じて直接的又は間接的にメモリ要素に結合される少なくとも１つのプロセッサを含むものとすることができる。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを取り出す回数を減らすために少なくとも幾つかのプログラム・コードを一時的に格納するキャッシュ・メモリとを含むことができる。
【０１３７】
入力／出力又はＩ／Ｏ装置（キーボード、ディスプレイ、ポインティング・デバイス等を含むが、これらに限定されない）は、直接的に又は介在するＩ／Ｏコントローラを通して、システムに結合することができる。
【０１３８】
介在する私設ネットワーク又は公衆ネットワークを通して、データ処理システムを他のデータ処理システム又は遠隔のプリンタ若しくは記憶装置に結合することができるように、ネットワーク・アダプタをシステムに結合することもできる。モデム、ケーブル・モデム及びイーサネット・カードは、現在利用可能なタイプのネットワーク・アダプタのうちのほんの一部に過ぎない。
【０１３９】
本発明の説明を例示及び説明の目的で提示してきたが、これは、網羅的であることも、本発明を開示された形態に限定することも意図していない。多くの修正及び変更が当業者には明らかであろう。実施形態は、本発明の原理、実際の用途を最も良く説明するため、及び、当業者が、意図される特定の使用に適したものとして種々の修正を有する種々の実施形態について本発明を理解できるように、選択され、かつ説明された。
【０１４０】
付表１
【表２】
2013513838.tif 000004
【符号の説明】
【０１４１】
２１：ステレオケーブル・アダプタ
２２、２２０、２２１、２２２、２２３、２２４：コンピュータ・マシン
２３：ステレオケーブル・エンジン
２４：リポジトリ又はレジストリ
２５：ステレオケーブル・ユーザ・インターフェース
２６：コンピュータ・アーキテクチャ・マネジャ
１００：プラグ・アンド・プレイ・システム
２００：コンピュータ・アーキテクチャ
２１０：ステレオケーブル
２２５：ＴＷＳユーザ・インターフェース
２２６：ＴＷＳサーバ
２２７：ＩＴＭサーバ
２４０、２４１：仮想マシン・エントリ
２１００：プラグ・セクション
２１０１：ソケット・セクション
【図１】
2013513838.tif 000005
【図２】
2013513838.tif 000006
【図３】
2013513838.tif 000007
【図４】
2013513838.tif 000008
【図５】
2013513838.tif 000009
【図６】
2013513838.tif 000010
【図７】
2013513838.tif 000011
【図８】
2013513838.tif 000012
【図９】
2013513838.tif 000013
【図１０】
2013513838.tif 000014
【図１１】
2013513838.tif 000015
【図１２】
2013513838.tif 000016
【図１３】
2013513838.tif 000017
【図１４】
2013513838.tif 000018
【国際調査報告】
2013513838.tif 000019
2013513838.tif 000020
2013513838.tif 000021