(57)【要約】【課題】  モジュールを実行するためのサーバを構成し選択するために都合良く管理するためのメカニズムを提供すること。【解決手段】  本発明は、モジュールを実行するのに適した適切なサーバを構成するための要求を受け取るステップと、適切な複数のサーバの複数の識別子を有するテーブルから当該適切なサーバの識別子の場所を突き止めるステップと、そのモジュールを実行するように適切なサーバを構成するステップとを含む、複数のサーバを管理するための方法を提供する。
2005512165.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバを管理するための方法であって、
モジュールを実行するのに適した適切なサーバを構成するための要求を受け取るステップと、
適切な複数のサーバの複数の識別子を具備するテーブルから前記適切なサーバの識別子の場所を突き止めるステップと、
前記モジュールを実行するように前記適切なサーバを構成するステップと、
を有する方法。
【請求項２】
前記テーブルが、適切な複数のサーバの前記複数の識別子に対応する複数のモジュールの複数の識別子をさらに有する、請求項１に記載の方法。
【請求項３】
前記適切なサーバを作成するステップと、
前記適切なサーバに前記モジュールを実行させるステップと、
をさらに有する、請求項１または２に記載の方法。
【請求項４】
前記適切なサーバの前記識別子がサーバのタイプを識別し、
前記モジュールの前記識別子がモジュールのタイプを識別する、
請求項２または３に記載の方法。
【請求項５】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを使用するステップであって、
前記テーブルから適切なサーバの前記識別子を識別するより前に、優先順位付きの適切なサーバを識別するためと、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成するためと、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させるため、
のステップと、
複数のモジュールの複数の識別子に対応する複数のサーバの複数の識別子を具備する優先テーブルを使用するステップであって、
前記テーブルから前記適切なサーバを識別するより前に、前記優先テーブルから適切なサーバを識別するためと、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成するためと、
前記優先テーブルから識別された前記適切なサーバに前記モジュールを実行させるため、
のステップと、
をさらに有する、請求項４に記載の方法。
【請求項６】
前記適切なサーバの前記識別子がサーバの名前を識別し、
前記モジュールの前記識別子がモジュールの名前を識別する、
請求項２または３に記載の方法。
【請求項７】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを使用するステップであって、
前記テーブルから前記適切なサーバを識別するより前に、前記優先順位テーブルから適切なサーバを識別するためと、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成するためと、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させるため、
のステップと、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを使用するステップであって、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルからモジュールのタイプに対応する適切なサーバのタイプを識別するためと、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成するためと、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させるため、
のステップと、
をさらに有する、請求項６に記載の方法。
【請求項８】
前記テーブルが適切な複数のサーバの優先順位付きの複数の識別子を有し、前記方法が、
前記適切なサーバを作成するステップと、
前記適切なサーバに前記モジュールを実行させるステップと、
をさらに有する、請求項１に記載の方法。
【請求項９】
複数のモジュールの複数の識別子に対応する複数のサーバの複数の識別子を具備する優先テーブルを使用するステップであって、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記優先テーブルから好ましい適切なサーバを識別するためと、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成するためと、
前記優先テーブルから識別された前記サーバに前記モジュールを実行させるため、
のステップと、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを使用するステップであって、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルから適切なサーバのタイプを識別するためと、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成するためと、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させるため、
のステップと、
をさらに有する、請求項８に記載の方法。
【請求項１０】
前記方法がソフトウェア開発環境で実行される、請求項５、７、または９に記載の方法。
【請求項１１】
コンピュータ可読メモリに動作可能に結合されたコンピュータ・システムで使用するためのコンピュータ・プログラム記録媒体であって、前記コンピュータ・プログラム記録媒体は、複数のサーバを管理するよう前記コンピュータに指示するためのコンピュータ可読プログラム・コードを具体的に実施するコンピュータ可読データ記憶媒体を含み、前記コードが、
モジュールを実行するのに適した適切なサーバを構成するための要求を受け取るよう前記コンピュータ・システムに指示するためのコードと、
適切な複数のサーバの複数の識別子を具備するテーブルから前記適切なサーバの識別子の場所を突き止めるよう前記コンピュータ・システムに指示するためのコードと、
前記モジュールを実行するように前記適切なサーバを構成するよう前記コンピュータ・システムに指示するためのコードと、
を有するコンピュータ・プログラム記録媒体。
【請求項１２】
前記テーブルが、適切な複数のサーバの前記複数の識別子に対応する複数のモジュールの複数の識別子をさらに有する、請求項１１に記載のコンピュータ・プログラム記録媒体。
【請求項１３】
前記適切なサーバを作成するよう前記コンピュータ・システムに指示するためのコードと、
前記適切なサーバに前記モジュールを実行させるよう前記コンピュータ・システムに指示するためのコードと、
をさらに有する、請求項１１または１２に記載のコンピュータ・プログラム記録媒体。
【請求項１４】
前記適切なサーバの前記識別子がサーバのタイプを識別し、
前記モジュールの前記識別子がモジュールのタイプを識別する、
請求項１２または１３に記載のコンピュータ・プログラム記録媒体。
【請求項１５】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを、
前記テーブルから適切なサーバの前記識別子を識別するより前に、優先順位付きの適切なサーバを識別し、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成し、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
複数のモジュールの複数の識別子に対応する複数のサーバの複数の識別子を具備する優先テーブルを、、
前記テーブルから前記適切なサーバを識別するより前に、前記優先テーブルから適切なサーバを識別し、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成し、
前記優先テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
をさらに有する、請求項１４に記載のコンピュータ・プログラム記録媒体。
【請求項１６】
前記適切なサーバの前記識別子がサーバの名前を識別し、
前記モジュールの前記識別子がモジュールの名前を識別する、
請求項１２または１３に記載のコンピュータ・プログラム記録媒体。
【請求項１７】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを、
前記テーブルから前記適切なサーバを識別するより前に、前記優先順位テーブルから適切なサーバを識別し、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成し、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルからモジュールのタイプに対応する適切なサーバのタイプを識別し、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成し、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
をさらに有する、請求項１６に記載のコンピュータ・プログラム記録媒体。
【請求項１８】
前記テーブルが適切な複数のサーバの優先順位付きの複数の識別子を具備し、前記方法が、
前記適切なサーバを作成するよう前記コンピュータ・システムに指示するためのコードと、
前記適切なサーバに前記モジュールを実行させるよう前記コンピュータ・システムに指示するためのコードと、
をさらに有する、請求項１１に記載のコンピュータ・プログラム記録媒体。
【請求項１９】
複数のモジュールの複数の識別子に対応する複数のサーバの複数の識別子を具備する優先テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記優先テーブルから好ましい適切なサーバを識別し、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成し、
前記優先テーブルから識別された前記サーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルから適切なサーバのタイプを識別し、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成し、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
をさらに有する、請求項１８に記載のコンピュータ・プログラム記録媒体。
【請求項２０】
前記コンピュータ・プログラム記録媒体がソフトウェア開発環境で使用される、請求項１５、１７、または１９に記載のコンピュータ・プログラム記録媒体。
【請求項２１】
コンピュータ可読メモリに動作可能に結合されたコンピュータ・システムであって、前記コンピュータ・システムは複数のサーバを管理するためのものであり、
モジュールを実行するのに適した適切なサーバを構成するための要求を受け取るための手段と、
適切な複数のサーバの複数の識別子を具備するテーブルから前記適切なサーバの識別子の場所を突き止めるための手段と、
前記モジュールを実行するように前記適切なサーバを構成するための手段と、
を有するコンピュータ・システム。
【請求項２２】
前記テーブルが、適切な複数のサーバの前記複数の識別子に対応する複数のモジュールの複数の識別子をさらに有する、請求項２１に記載のコンピュータ・システム。
【請求項２３】
前記適切なサーバを作成するための手段と、
前記適切なサーバに前記モジュールを実行させるための手段と、
をさらに有する、請求項２１または２２に記載のコンピュータ・システム。
【請求項２４】
前記適切なサーバの前記識別子がサーバのタイプを識別し、
前記モジュールの前記識別子がモジュールのタイプを識別する、
請求項２２または２３に記載のコンピュータ・システム。
【請求項２５】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを、
前記テーブルから適切なサーバの前記識別子を識別するより前に、優先順位付きの適切なサーバを識別し、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成し、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するための手段と、
複数のモジュールの複数の識別子に対応する複数のサーバの複数の識別子を具備する優先テーブルを、
前記テーブルから前記適切なサーバを識別する前に、前記優先テーブルから適切なサーバを識別し、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成し、
前記優先テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するための手段と、
をさらに有する、請求項２４に記載のコンピュータ・システム。
【請求項２６】
前記適切なサーバの前記識別子がサーバの名前を識別し、
前記モジュールの前記識別子がモジュールの名前を識別する、
請求項２２または２３に記載のコンピュータ・システム。
【請求項２７】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを、
前記テーブルから前記適切なサーバを識別する前に、前記優先順位テーブルから適切なサーバを識別し、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成し、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するための手段と、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルからモジュールのタイプに対応する適切なサーバのタイプを識別し、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成し、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するための手段と、
をさらに有する、請求項２６に記載のコンピュータ・システム。
【請求項２８】
前記テーブルが適切な複数のサーバの優先順位付きの複数の識別子を有し、前記方法が、
前記適切なサーバを作成するための手段と、
前記適切なサーバに前記モジュールを実行させるための手段と、
をさらに有する、請求項２１に記載のコンピュータ・システム。
【請求項２９】
複数のモジュールの複数の識別子に対応する複数のサーバの複数の識別子を具備する優先テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記優先テーブルから好ましい適切なサーバを識別し、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成し、
前記優先テーブルから識別された前記サーバに前記モジュールを実行させる、
ために使用するための手段と、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルから適切なサーバのタイプを識別し、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成し、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するための手段と、
をさらに有する、請求項２８に記載のコンピュータ・システム。
【請求項３０】
前記コンピュータ・システムがソフトウェア開発環境で使用される、請求項２５、２７、または２９に記載のコンピュータ・システム。
【請求項３１】
モジュールを実行するためのサーバを構成し選択するためのデータ・セットであって、前記モジュールを実行するのに適した適切なサーバの識別子を含むためのテーブルを有するデータ・セット。
【請求項３２】
前記識別子がモジュールのタイプを識別し、前記データ・セットが、前記モジュールの前記タイプの前記識別子に対応するサーバのタイプを識別するための識別子をさらに有する、請求項３１に記載のデータ・セット。
【請求項３３】
前記識別子がサーバの名前を識別し、前記データ・セットが、前記モジュールの対応する名前を識別するための識別子をさらに有する、請求項３１に記載のデータ・セット。
【請求項３４】
前記データ・セットの項目に優先順位が付けられている、請求項３１に記載のデータ・セット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・プログラム化コードに関し、より具体的には、コンピュータ・ソフトウェア環境でソフトウェア・モジュールを実行するためのサーバを構成し選択するための方法およびシステムに関する。
【背景技術】
【０００２】
Ｊａｖａ（登録商標）またはＨＴＭＬ用のソフトウェアなどのソフトウェアを開発するためのソフトウェア開発環境は周知のものである。ソフトウェア開発環境の一例としては、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ社から入手可能なＪ２ＥＥ（商標）（Ｊａｖａ  ２  Ｐｌａｔｆｏｒｍ  Ｅｎｔｅｒｐｒｉｓｅ  Ｅｄｉｔｉｏｎ）がある。Ｊ２ＥＥは、多層ウェブベースのソフトウェアを開発するための１組のサービス、アプリケーション・プログラミング・インターフェース（ＡＰＩ）、プロトコルを含む。
【０００３】
サーバは、リソースを管理するためのサーバ・ソフトウェアを有するネットワーク接続コンピュータである。たとえば、ファイル・サーバは、ファイルを記憶するためのコンピュータ、サーバ、およびデータ記憶装置を含み、ユーザはネットワークによりファイル・サーバ上にファイルを記憶することができる。プリント・サーバは、プリンタ・ネットワークを管理するためのコンピュータおよびサーバ・ソフトウェアを含む。ネットワーク・サーバは、ネットワーク・トラフィックを管理するためのコンピュータおよびサーバ・ソフトウェアを含む。データベース・サーバは、データベース照会を処理するために使用する。サーバは、それぞれの所定のサーバ・タスクを実行することに専念する。一部のオペレーティング・システムでは、単一コンピュータが同時にいくつかのサーバまたはプログラムを実行することができる。１台のコンピュータを使用して、異なるタイプのいくつかのサーバをおそらく同時に実行することができる。この場合のサーバは、コンピュータとサーバの組み合わせではなく、タスクを実行するソフトウェアを指す可能性がある。簡略化するため、サーバ・ソフトウェアは以下「サーバ」と呼ぶことにする。
【０００４】
デプロイメントとは、ソフトウェア開発環境において、以下「モジュール」と呼ぶソフトウェア・モジュールを実行するように複数のサーバが構成されるプロセスである。サーバを構成するタスクは、ソフトウェア開発チームのメンバによって実行することができる。ＥＪＢ（Ｅｎｔｅｒｐｒｉｓｅ  Ｊａｖａ  Ｂｅａｎｓ）、ＷＥＢ（インターネットＷＥＢ情報）、アプリケーション・クライアントなど、いくつかのタイプのモジュールが存在する。モジュールは、コンピュータ・プログラム化コードもしくはソフトウェアか、コンピュータ実行可能コードか、またはコンピュータ可読データかを有するコンピュータ・プログラム化ファイルを含めることができる。このコンピュータ・ファイルは、複数のサブディレクトリを有するディレクトリ内に編成することができる。
【０００５】
図３を参照すると、ブロック３００は、コンピュータのメモリ内に常駐する従来技術のソフトウェア開発環境を示している。この環境３００は様々なネットワーク接続コンピュータのメモリ内に常駐することができ、環境３００は単に単一コンピュータ上での常駐に限定されないことが分かるだろう。ブロック３０２、３０４、３０６、３０８は様々なモジュールを示している。モジュール３０２および３０８はＷＥＢタイプ・モジュールを表している。モジュール３０４はＥＪＢタイプ・モジュールを表している。モジュール３０６はデータ・タイプ・モジュールを表している。ブロック３１０および３１４は環境３００の様々なタイプのサーバを表している。サーバ３１０および３１４はそれぞれ構成ファイル３１２および３１６を有する。サーバ３１０は、ＩＢＭ社から入手可能なＷｅｂＳｐｈｅｒｅ（商標）アプリケーション・サーバを表している。サーバ３１２は、同じくＩＢＭ社から入手可能なＤＢ２（商標）（データベース）・サーバを表している。矢印３１８、３２０、３２２は、１つまたは複数の特定のモジュールを実行するようにサーバが配置または構成されていることを示している。矢印３１８および３２０は、モジュール３０２および３０４をそれぞれ実行するようにサーバ３１０が構成または配置されていることを示している。矢印３１０は、モジュール３０６を実行するようにサーバ３１４が配置または構成されていることを示している。開発環境３００のサーバはモジュール３１０を実行するようにさらに構成しなければならない。また、モジュール３１０はサーバ上で実行するようにさらに配置しなければならないと言うこともできる。構成ファイル３１２および３１６は、サーバ３１０および３１４によってそれぞれどのモジュールを実行できるかを示すために使用する。モジュールを実行するように構成されたサーバにソフトウェア開発者が要求を送った場合、構成されたサーバはそのモジュールを実行することになる。しかし、サーバがそのモジュールを実行するように構成されていない場合、そのモジュールはそのサーバによって実行されない。該当サーバにモジュール３０８を実行させるためには、ソフトウェア開発者はまず、該当サーバの構成ファイルを変更しなければならない。したがって、サーバによって新しいモジュールを実行することになるたびに、適切なサーバの構成ファイルを修正しなければならない。ソフトウェア開発サイクル中には、多くのモジュールが作成され、テストを必要とする。特に様々なモジュールの開発に多数のソフトウェア開発者が関わっている場合、新しいモジュールが作成され、テストを必要とするたびに、様々な該当サーバの構成ファイルを修正することは不便である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来技術では、ソフトウェア開発環境でサーバを構成し選択するための不十分なメカニズムが提供されている。ソフトウェア開発者は、新たに開発したモジュールを該当サーバによって実行可能にするためには、そのモジュールを実行するように該当サーバを構成するタスクの実行に貴重な時間を費やすことが要求され、その結果、多数の開発者が関わっているときに混乱が発生する可能性がある。開発環境が多数のタイプのサーバを含み、ソフトウェア開発者が完全にテストしたモジュールの開発および引き渡しの期限に間に合わせようと作業しているときは、従来技術のメカニズムは問題となり、不便なものになる。
【０００７】
本発明の一目的は、様々なモジュールを実行するのに適した適切なサーバを構成し選択するためのメカニズムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、様々なモジュールを実行するのに適した適切なサーバの構成および選択のための方法を提供する。この方法は、ソフトウェア環境の様々なサーバを構成し選択することができる実行可能プログラムとして具体的に実施することができる。適切なサーバはルックアップ・テーブルから識別することができる。バックアップ・テーブル、優先テーブル、優先順位テーブルなどの様々なタイプのルックアップ・テーブルは、互いに適当に組み合わせて実現し使用することができる。
【０００９】
バックアップ・テーブルは、モジュールのタイプに対応する適切なサーバのタイプを識別するための識別子を含む。ソフトウェア環境から適切なサーバの場所を容易に突き止めることができない場合、バックアップ・テーブルから適切なサーバのタイプを見つけるかまたは識別することができ、その後、そのモジュールを実行するように適切なサーバを作成することができる。バックアップ・テーブルは、様々なタイプのサーバとそれに対応したタイプのそのサーバが実行できるモジュールとの所定の識別を含む場合もあれば、必要とされる識別をユーザがデフォルト・テーブルに挿入しなければならないような、識別可能なサーバを一切含まない場合もある。
【００１０】
優先テーブルは、モジュールの名前に対応する適切なサーバの名前を識別するための識別子を含む。サーバ選択論理は、適切なサーバの場所を突き止めるかまたは識別するためにバックアップ・テーブルを調べる前に優先テーブルを調べるようにセットアップすることができる。優先テーブルが適切なサーバの識別子を提供しない場合、バックアップ・テーブルを使用する。優先テーブルは、サーバの様々な識別子または名前とそのサーバが実行できるモジュールの対応する識別子または名前の所定の識別を含めることができる。別法として、優先テーブルは、ユーザが必須識別子をデフォルト・テーブルに挿入しなければならないようなサーバの識別子および対応するモジュールの識別子を一切含まない場合もある。
【００１１】
優先順位テーブルは、ソフトウェア開発者が適切なサーバの順序についてランク付けまたは優先順位付けすることができるような以前作成した適切なサーバの識別子を含むリストとして使用することができる。３タイプのテーブルをすべて使用する場合、サーバ選択論理は、適切なサーバを突き止めるかまたは識別するために優先テーブルまたはバックアップ・テーブルを調べる前に優先順位テーブルを調べるようにセットアップすることができる。優先順位テーブルが適切なサーバの識別子を含まない場合、バックアップ・テーブルを調べる前に優先テーブルを調べる。優先テーブルが適切なサーバの識別子を含まない場合、適切なサーバの識別子を見つけるためにバックアップ・テーブルを調べる。優先順位テーブルは、様々なサーバの所定の識別子または名前を含む場合もあれば、必要とされる識別をユーザが優先順位テーブルに挿入しなければならないような、識別済みサーバを一切含まない場合もある。
【００１２】
本発明の第１の態様によれば、モジュールを実行するのに適した適切なサーバを構成するための要求を受け取るステップと、適切な複数のサーバの複数の識別子を含むテーブルから当該適切なサーバの識別子を見つけるステップと、当該モジュールを実行するように当該適切なサーバを構成するステップとを含む、複数のサーバを管理するための方法が提供される。
【００１３】
本発明の第２の態様によれば、コンピュータ可読メモリに動作可能に結合されたコンピュータ・システムで使用するためのコンピュータ・プログラムが提供され、そのコンピュータ・プログラムは、複数のサーバを管理するようコンピュータに指示するためのコンピュータ可読プログラム・コードを具体的に実施するコンピュータ可読データ記憶媒体を含み、そのコードは、モジュールを実行するのに適した適切なサーバを構成するための要求を受け取るようコンピュータ・システムに指示するためのコードと、適切な複数のサーバの複数の識別子を含むテーブルから当該適切なサーバの識別子を見つけるようコンピュータ・システムに指示するためのコードと、当該モジュールを実行するように当該適切なサーバを構成するようコンピュータ・システムに指示するためのコードとを含む。
【００１４】
本発明の第３の態様によれば、コンピュータ可読メモリに動作可能に結合されたコンピュータ・システムが提供され、そのコンピュータ・システムは複数のサーバを管理するためのものであり、そのコンピュータ・システムは、モジュールを実行するのに適した適切なサーバを構成するための要求を受け取るための手段と、適切な複数のサーバの複数の識別子を含むテーブルから当該適切なサーバの識別子を見つけるための手段と、当該モジュールを実行するように当該適切なサーバを構成するための手段とを含む。
【００１５】
本発明の第４の態様によれば、モジュールを実行するためのサーバを構成し選択するためのデータ・セットが提供され、そのデータ・セットは、そのモジュールを実行するのに適した適切なサーバの識別子を含めるためのテーブルを含む。
【００１６】
本発明の上記その他の態様については、本発明の好ましい実施形態に関する添付図面および以下の説明を参照することにより、より十分に理解することができる。
【発明を実施するための最良の形態】
【００１７】
図１を参照すると、本発明の好ましい実施形態に適した従来のコンピュータ・ネットワークが示されている。従来のコンピュータ・システム１００は、適切なネットワーク接続１１２、１１６およびネットワーク１１４を介してネットワーク化コンピュータ１１８に動作可能に結合されている。ネットワーク１１４は、ローカル・エリア・ネットワーク、広域ネットワーク、イントラネット、インターネット等や、またはそれらの便宜的な組み合わせといった、従来のネットワークである。ネットワーク１１４は、コンピュータ・システム１００との間でデータを移送するための便利なメカニズムを提供する。本発明の他の実施形態はネットワーク接続１１２を介してネットワーク１１４に接続されてはいないコンピュータ・システム１００を含めることができるが、データはキーボード／マウス１０６を介してまたはフロッピ・ディスク１１０などの取外し可能コンピュータ可読媒体を介してコンピュータ・システム１００のメモリに直接入力されることが前提であることが分かるだろう。
【００１８】
便宜上、本発明の好ましい実施形態の諸態様は、ネットワーク１１４または複数ネットワークの組み合わせを介してコンピュータ・システム１００と対話する様々なネットワーク化コンピュータ間に分散することができる。しかし、本発明の好ましい実施形態を便宜的に例示するために、図６〜図１３の流れ図は一般にコンピュータ・システム１００で実現されることになる。
【００１９】
コンピュータ・システム１００は、ディスプレイ端末１０２またはプリンタ１０８などの様々な出力装置、ネットワーク１１４、キーボード／マウス１０６またはディスク１１０などの様々な入力装置とやりとりするコンピュータ１０４を含む。他の装置としては、スキャナ、ＣＤ−ＲＯＭドライブなどの様々なコンピュータ周辺装置を含めることができる。
【００２０】
図２を参照すると、本発明の好ましい実施形態に適したコンピュータ１０４の構造が示されている。コンピュータ１０４は、中央演算処理装置（ＣＰＵ）２０２、メモリ２０４、ネットワーク・インターフェース（Ｉ／Ｆ）２０８、入出力インターフェース２１０など、コンピュータ１０４の様々なサブシステムまたはコンポーネントを動作可能に相互接続するバス２０６を含む。
【００２１】
ＣＰＵ２０２は、本明細書に記載した動作に適した市販の中央演算処理装置である。ＣＰＵ２０２の他の変形形態としては、複数のＣＰＵを含めることができる。コンピュータ１０４のサブシステムによる最適パフォーマンスのためにＣＰＵ２０２を適合させるために、適当なサポート回路またはコンポーネントを含めることができる。
【００２２】
入出力（Ｉ／Ｏ）インターフェース２１０は、コンピュータ１０４の様々なサブシステムとキーボード／マウス１０６などの様々な入出力装置とのやりとりを可能にする。入出力インターフェースは、ディスプレイ装置１０２との動作上のインターフェースを取るためのビデオ・カードと、好ましくはフロッピ・ディスク１１０またはＣＤなどの適当な取外し可能コンピュータ可読媒体を読み取るためのディスク・ドライブ・ユニットとを含む。取外し可能媒体１１０は、図６〜図１３の流れ図に示す機能性を達成するようにシステム１０４を構成し使用可能にするようＣＰＵ２０２によるその後の実行をするためのプログラミング命令を提供するか、または必用なら取外し可能データ記憶を提供することができる。
【００２３】
ネットワーク・インターフェース２０８は、通信スイート２１４と協力して、コンピュータ１０４とネットワーク１１４を介して動作可能に接続された他のコンピュータとの適当な通信を可能にする。従来のネットワーク・インターフェースの例としては、イーサネット（登録商標）・カード、トークン・リング・カード、モデムなどを含めることができる。任意選択で、ネットワーク・インターフェース２０８は、本発明の好ましい実施形態を達成するようにコンピュータ１０４を構成し使用可能にするために、伝送されたプログラミング命令またはデータの検索も可能にすることができる。任意選択で、本発明の好ましい実施形態の諸態様は、分散コンピューティング環境を形成するように動作可能にネットワーク化された様々なコンピュータ・システムで使用可能にすることができる。
【００２４】
メモリ２０４は、ＣＰＵ２０２に指示するためのプログラミング命令２１６と、データ貯蔵庫などのデータ構造２１８と、オペレーティング・システム２１２と、通信スイート２１４とを記憶するための、揮発性メモリおよび永続メモリを含む。メモリ２０４は、ランダム・アクセス・メモリ（ＲＡＭ）と、読出し専用メモリ（ＲＯＭ）と、ハード・ディスク記憶装置とを組み合わせたものを含んでいることが望ましい。プログラミング命令２１６は、入出力インターフェース２１０を介してフロッピ・ディスク・ドライブに挿入された図１のフロッピ・ディスク１１０などの入出力装置からメモリ２０４に送達するか、またはネットワーク・インターフェース２０８を介してネットワーク１１４からメモリ２０４にダウンロードできることが分かるだろう。
【００２５】
オペレーティング・システム２１２は、コンピュータ１０４の様々なサブシステムとの様々な動作上のインターフェースを可能にするため、ならびにマルチタスキング作業などの様々な動作機能を提供するために、ＣＰＵ２０２と適宜協力する。通信スイート２１４は、オペレーティング・システム２１２およびネットワーク・インターフェース２０８との対話により、ＴＣＰ／ＩＰ、イーサネット（登録商標）、トークン・リングなどのネットワーク１１４を介してのネットワーク化コンピューティング装置との適切な通信を可能にするのに適した通信プロトコルを提供する。
【００２６】
図４および図５を参照すると、本発明の好ましい実施形態のためのソフトウェア開発環境が示されている。ブロック４００はソフトウェア開発環境を示している。ブロック４０２は、「ＷＥＢ  ＭＯＤＵＬＥ＿１」という名前を有するモジュールを表している。複数タイプのモジュールを開発するために本発明を使用することができるが、本発明の動作の説明を簡略化するため、モジュールの名前を使用してそのモジュールを識別することになることが理解されるであろう。本発明は、名前を使用してモジュールを識別することに限定されず、モジュールを識別するために適当な識別子を使用することができる。ブロック４０４は、「ＷＥＢ  ＭＯＤＵＬＥ＿２」という名前を有するモジュールを表している。ブロック４０６は、「ＥＪＢ  ＭＯＤＵＬＥ」という名前を有するモジュールを表している。ブロック４０８は、「ＷＥＢ  ＭＯＤＵＬＥ＿３」という名前を有するモジュールを表している。ブロック４１０は、コンピュータ・データを含み、「ＤＡＴＡ  ＭＯＤＵＬＥ」という名前を有するモジュールを表している。
【００２７】
ブロック４１２は、「ＷＡＳ  ＳＥＲＶＥＲ＿１」という名前を有するサーバを表している。本発明の動作の説明を簡略化するため、サーバの名前を使用してそのサーバを識別することになることが理解されるであろう。本発明は、名前を使用してサーバを識別することに限定されず、サーバを識別するために適当な識別子を使用することができる。ブロック４１４は、「ＴＯＭＣＡＴ  ＳＥＲＶＥＲ」という名前を有するサーバを表している。ブロック４１６は、「ＷＡＳ  ＳＥＲＶＥＲ＿２」という名前を有するサーバを表している。ブロック４１８は、「ＤＢ２  ＳＥＲＶＥＲ」という名前を有するサーバを表している。
【００２８】
矢印４２０は、モジュールを実行するように現在構成されているサーバを表している。サーバ４１２は、モジュール４０４および４０６を実行するように現在構成されている。サーバ４１４は、モジュール４０８を実行するように現在構成されている。サーバ４１６は、モジュール４０４および４０８を実行するように現在構成されている。サーバ４１８は、モジュール４１０を実行するように現在構成されている。モジュール４０２を実行するためにさらにサーバを選択または構成しなければならない。したがって、ソフトウェア開発者がモジュール４０４を実行することを要求すると、サーバ４１２または４１６のいずれか一方がモジュール４０４を実行することができる。しかし、ソフトウェア開発者がモジュール４０２を実行することを要求すると、ブロック４５０のテーブルを使用してそのモジュールを実行するのに適した適切なサーバを選択し構成しない限り、いずれのサーバもその要求に応答することはなく、それについては図６〜図１３に示す流れ図で説明することになる。
【００２９】
ブロック４２９は、様々な形式で表現されたコンピュータ命令を表している。ブロック４３０は、図６〜図１３に示す流れ図を実行するためのコンピュータ・プログラム化命令を含み、以下「ルーチン」と呼ばれるソフトウェア・ルーチンを示している。ブロック４３０の命令は、Ｊａｖａ（登録商標）などの適当なコンピュータ・プログラミング言語で作成されている。ブロック４３０の命令は、その後、解釈、コンパイル、または変換されて、中央演算処理装置２０２による実行のための命令を生成するが、その命令は以下「実行可能コード」４３４と呼ぶ。コード４３４は、その後、図２に示すコンピュータ１０４のメモリ２０４内に置かれる。実行可能コード４３４は、図６〜図１３の流れ図に示す諸ステップを実行するようＣＰＵ２０２に指示するために使用されることになる。ブロック４３２は、図６〜図１３の流れ図に示す諸ステップを実行する１組のサブルーチン４３２を表している。
【００３０】
ブロック４５０は、適切なサーバを選択し構成するためにブロック４３０の命令が使用することになるテーブル・グループを示している。本発明の動作について簡略化した説明を提供するために、ブロック４５２、４５４、４５６によって別々のテーブルを示すが、各テーブルは名前によって識別可能である。データを有するテーブルの名前を使用してそのテーブルを識別することになる。本発明は、名前を使用してテーブルを識別することに限定されず、テーブルを識別するために適当な識別子を使用することができる。テーブルは、ルックアップ・テーブル、ファイル、リスト、マップ、または適当なデータベースにすることができる。
【００３１】
ブロック４５２は、ソフトウェア環境４００のサーバの名前または識別子を有する優先順位テーブルを表している。テーブル４５２は、環境４００のすべての識別済みサーバのリストではない。テーブル４５２は、優先順位サーバとしてユーザによって識別された識別済みサーバのリストを含む。ルーチン４３０は、図６〜図１３で説明するように、テーブル４５２を調べて適切なサーバを選択することになる。テーブル４５２に含まれるデータは読取り、編集、または修正が行われ、その後、図１のキーボードまたはマウス１０６を介してユーザによって更新または記憶することができるが、これはルーチン４３０の適当なサブルーチン４３２を介して実施するかまたは図６〜図１３に示す諸ステップに続いてルーチン４３０を介して実施することができる。テーブル４５２は、好ましい階層内に所定の手順または順序で置かれた適切なサーバの名前を含み、その階層では一番上に位置決めされたユーザ識別済みサーバがモジュールを配置するために最初に選択されることになる。しかし、一番上に位置決めされたユーザ識別済みサーバが適切なものではない場合（すなわち、そのサーバがモジュールを実行するように現在構成されていない場合）、テーブル４５２内の次の（すなわち、より下の）識別済みサーバが適切であるかどうかをチェックする。ユーザは、テーブル４５２内にリストまたは識別された適切なサーバの選択について好ましい階層順序を決定する。ユーザがモジュールを実行することを要求すると、最初にテーブル４５２を調べて、そのモジュールを実行できる適切なサーバの場所を突き止めるかまたは識別する。テーブル４５２が適切なサーバを提供できない場合、テーブル４５４またはテーブル４５６を調べて適切なサーバの場所を突き止めることができる。コンピュータ・プログラミングの当業者であれば、あるサーバの識別子があるランクに関連付けられるようにテーブル４５２をセットアップすることができ、テーブル４５２で使用するために他の適当な形式のランク付けも可能である。
【００３２】
ブロック４５４は、複数対のデータを有する優先テーブルを表しており、各対のデータはモジュールの名前または識別子を含み、そのモジュールの名前に対応する好ましい適切なサーバの名前を含む。テーブル４５４は、環境４００内で実行できるモジュールを識別するため、ならびに好ましい適切なサーバを識別するために使用する。ユーザがモジュールを実行することを要求し、そのモジュールがテーブル４５４から識別できない場合、そのモジュールを実行するための適切なサーバを構成するためにテーブル４５６を調べることができる。たとえば、ＷＥＢ  ＭＯＤＵＬＥ＿２を実行することが必要である場合、ＷＡＳ  ＳＥＲＶＥＲ＿１を使用してＷＥＢ  ＭＯＤＵＬＥ＿２を実行することになる。テーブル４５４の各部分をモジュールに挿入することによってテーブル４５４の代わりになりうることが分かるだろう。本発明の動作を都合良く説明するために、テーブル４５４を使用するが、本発明の範囲は、テーブル４５４の各部分を様々なモジュールに組み込むことができるという本発明の実施形態を包含できることが分かるだろう。たとえば、モジュールは、そのモジュール用の好ましいサーバを識別するための都合の良いメカニズムを提供すると思われるデプロイメント記述子を有することができる。
【００３３】
ブロック４５６は、複数対のデータを含むバックアップ・テーブルを表しており、各対のデータは、モジュールのタイプの識別子と、そのモジュールのタイプの識別子に対応するサーバのタイプの識別子とを含む。テーブル４５６の目的は、複数タイプのモジュールをサポートできることが分かっているサーバのタイプのリストを提供することである。テーブル４５６は、データをテーブル４５６に書き込むことができないデータベースなど、コード４３４の製造業者が提供するデータを含む。コード４３４がテーブル４５６にデータを書き込むことができるようにテーブル４５６を適合させることができることが分かるだろう。テーブル４５２が空であるかまたは適切なサーバがテーブル４５４で識別されない場合、コード４３４はテーブル４５６を参照して、モジュールを実行可能な適切なサーバの識別子を入手する。モジュールの実行が要求され、テーブル４５６からモジュールのタイプの識別子を突き止めることができない場合、ユーザは、そのモジュールを実行するために適切なサーバを選択する機会が与えられる。
【００３４】
図６〜図１３を参照すると、図４および図５に示すソフトウェア環境４００でモジュールを実行するためにサーバを選択し構成するためのプロセスを示す流れ図が示されている。図６〜図１３の流れ図は本発明の好ましい実施形態である。この流れ図は、モジュールを実行するための適切なサーバの選択および／または構成に使用される。図４および図５のルーチン４３０は、図６〜図１３の流れ図をエンコードするためのコンピュータ・プログラム化コードまたは命令を含むことになる。このプログラム化コードは、図６〜図１３の流れ図に示す動作を達成するよう図２のコンピュータ１０４のＣＰＵ２０２に指示するために使用されることになる。
【００３５】
図６を参照すると、好ましい実施形態のプロセスはＳ５００から始まる。図６〜図１３に示す動作は、その記述に特に示されていない限り、図４および図５のソフトウェア・ルーチン４３０によって実行されることになる。
【００３６】
Ｓ５０２は、モジュールを実行するための要求を受け取る。その要求は、キーボード／マウス１０６を介してユーザが提供するか、または図１のネットワーク１１４を介してネットワーク化コンピュータ１１８から提供することができる。ユーザがまだそのモジュールを直ちに実行する準備ができていない場合、受け取った要求は、その後のある時期にそのモジュールを実行する選択肢を持った、適切なサーバを構成するための要求である可能性がある。Ｓ５０２は、モジュールを実行するか、またはモジュールを実行するように適切なサーバを構成するか、あるいはその両方、を行うための要求を受け取ることをそのルーチンが待てるように、適合させることができる。
【００３７】
Ｓ５０４は、そのモジュールを実行するように現在構成されている適切なサーバが図４および図５のソフトウェア環境４００に存在するかどうかを判定する。そのモジュールを実行するように現在構成されている適切なサーバがまったくない場合、処理はＳ５０６に進む。そのモジュールを実行するように構成されている適切なサーバが存在する場合、処理は図１０のＳ５３８に進む。Ｓ５０６に進むことにより、そのモジュールを実行するように定義または構成されている適切なサーバがまったくないという決定が下される。その結果として、新しい適切なサーバを作成しなければならないか、またはそのモジュールを実行するようにまだ構成されていない既存の適切なサーバを構成しなければならない。Ｓ５３８に進むことにより、そのモジュールを実行できる複数の適切なサーバ（または少なくとも１つのサーバ）が存在するという決定が下される。
【００３８】
Ｓ５０６は、そのモジュールを実行するのに適した適切なサーバの名前を見つける。当該適切なサーバの名前は、図４および図５の優先順位テーブル４５２から見つけることができる。本発明の好ましい実施形態の動作を簡略化するために、優先順位テーブル４５２をテーブル４５０から除去することができ、Ｓ５０４、Ｓ５０６、Ｓ５０８、Ｓ５１０、Ｓ５１２、Ｓ５１４、Ｓ５１６を図６〜図１３の流れ図から除去することができ、処理はＳ５０２からＳ５１８に進み、その後、Ｓ５２０からＳ５３２まで進むことができる。しかし、Ｓ５０２〜Ｓ５１６を含めることにより、本発明は追加の動作モードを提供する。
【００３９】
たとえば、ユーザがＷＥＢ  ＭＯＤＵＬＥ＿２というモジュール４０４を実行する必要があると想定する。Ｓ５０６では、テーブル４５２を調べ、そこでＷＡＳ  ＳＥＲＶＥＲ＿１の場所を突き止めることになる。ＷＡＳ  ＳＥＲＶＥＲ＿１は、ＷＥＢ  ＭＯＤＵＬＥ＿２を実行するように前もって構成された適切なサーバであるので、ＷＡＳ  ＳＥＲＶＥＲ＿１はＷＥＢ  ＭＯＤＵＬＥ＿２を実行し、処理は図７のＳ５１０に進む。ユーザがＷＥＢ  ＭＯＤＵＬＥ＿３というモジュールを実行する必要がある場合にテーブル４５２を調べると想定する。後者のシナリオでは、テーブル４５２の諸項目は優先順位付けされた様式にて循環し、そこで、それに関する適切なサーバがテーブル４５２からまったく識別するかまたは場所を突き止めることができないことが判明することになり、それにより次に処理は図８のＳ５１８に進む。
【００４０】
Ｓ５０８は、実行されると、適切なサーバについて見つけられた名前（すなわち、識別子）が、テーブル４５２から見つけられたのかどうかを判定する。その名前を見つけた場合、処理は図７のＳ５１０に進む。その名前を見つけていない場合、処理は図８のＳ５１８に進む。
【００４１】
適切なサーバの場所をテーブル４５２から突き止めるかまたは識別していない場合、プログラミングの流れは図７のＳ５１０に進む。Ｓ５１０は、当該適切なサーバについて見つけた名前を図４および図５の優先テーブル４５４に挿入する。Ｓ５１０は、次に同じモジュールの実行が要求されるまで実行され、テーブル４５４は、当該モジュールのための当該適切なサーバの識別を提供する立場に置かれることになる。Ｓ５１０は、当該モジュールを実行するために当該適切なサーバが要求されたときに、当該適切なサーバがその構成をチェックし、当該モジュールを実行できるようにするために、当該モジュールを実行するための当該適切なサーバの構成ファイルを適合させることを含めることができる。テーブル４５４を修正した後、Ｓ５１２は、当該適切なサーバについて見つけた名前で名付けられたサーバを構成する。Ｓ５１４は、その後、当該モジュールを実行するためのコマンドを当該適切なサーバに送る。Ｓ５１６はルーチン４３０を停止する。処理はＳ５０２に進むこともできるが、その場合、ルーチン４３０は、他のモジュールを実行するかまたは他のサーバを構成するための他の要求を受け取るまで待機状態に留まることができる。
【００４２】
テーブル４５２が図７のＳ５０８からの適切なサーバの識別を提供しない場合、プログラミングの流れは図８のＳ５１８に進む。Ｓ５１８の実行により、そのモジュールを実行するのに適した適切なサーバのタイプを見つける。当該適切なサーバは優先順位テーブル４５２から見つけられなかったので、当該適切なサーバのタイプは図４および図５のバックアップ・テーブル４５６から見つけることができる。Ｓ５２０は、当該適切なサーバについて見つけたタイプが、テーブル４５６から見つけられたのかどうかを判定する。当該適切なサーバのタイプがテーブル４５４から見つけられたのである場合、処理はＳ５２２に進む。当該適切なサーバのタイプがテーブル４５４から見つけられたのではない場合、処理は図９のＳ５３４に進む。Ｓ５２２は、テーブル４５６から識別されるかまたは見つけられた当該適切なサーバの見つけられたタイプを持つサーバを作成する。作成した当該適切なサーバは、図４および図５のソフトウェア環境４００のもう１つのサーバになる。Ｓ５２４は作成したサーバの名前を図４および図５の優先順位テーブル４５２に挿入し、したがって、次に同じモジュールの実行が要求されたときに、当該適切なサーバの名前をテーブル４５２から識別することができる。Ｓ５２６は当該作成した適切なサーバの名前を図４および図５の優先テーブル４５４に挿入し、したがって、次に同じモジュールの実行が要求されたときに、適切なサーバの名前をテーブル４５４から識別することができる。Ｓ５２６は、テーブル４５２が将来のある時期にユーザによって偶然変更された場合にテーブル４５４を更新するための方法を提供する。Ｓ５２８は、そのモジュールを実行するように、当該作成した適切なサーバを構成する。Ｓ５３０は当該作成した適切なサーバを実行し、その場合、当該作成し実行した適切なサーバはそのモジュールを実行する。Ｓ５３２はルーチン４３０を停止する。処理はＳ５０２に進むこともできるが、その場合、ルーチン４３０は、他のモジュールを実行するかまたは他のサーバを構成するための他の要求を受け取るまで待機状態に留まることができる。
【００４３】
図８のＳ５２０がテーブル４５６から適切なサーバの場所を突き止めない場合、プログラミングの流れは図９のＳ５３４に進む。当該適切なサーバのタイプがテーブル４５６から見つけられなかったので、Ｓ５３４は障害条件を示している。Ｓ５３６はルーチン４３０を停止する。処理はＳ５０２に進むこともできるが、その場合、ルーチン４３０は、他のモジュールを実行または配置するための他の要求を受け取るまで待機状態に留まることができる。テーブル４５６が適切なサーバの識別を提供できなかったので、ユーザが当該適切なサーバを選択できるようにするために、Ｓ５３４を適合させることも可能である。
【００４４】
図６のＳ５０６が１つの適切なサーバが存在すると判定した場合、プログラミングの流れは図１０のＳ５３８に進む。Ｓ５３８は、そのモジュールを実行するように現在構成されている１つの適切なサーバが存在するかどうかを判定する。そのモジュールを実行するように現在構成されている１つの適切なサーバが存在する場合、処理はＳ５４０に進む。そのモジュールを実行するように現在構成されている複数の適切なサーバが存在する場合、処理はＳ５４６に進む。Ｓ５３８以降は、ソフトウェア・ルーチン４３０の動作に追加機能を追加するために使用する。次に同じモジュールの実行が要求されたときに、当該適切なサーバの名前をテーブル４５４から識別できるように、Ｓ５４０は当該現在構成されている適切なサーバの名前を優先テーブル４５４に挿入する。Ｓ５４２は当該現在構成されている適切なサーバを実行して、そのモジュールを実行する。Ｓ５４４はルーチン４３０を停止する。処理はＳ５０２に進むこともできるが、その場合、ルーチン４３０は、他のモジュールを実行または配置するための他の要求を受け取るまで待機状態に留まることができる。
【００４５】
テーブル４５４が適切なサーバを識別しない場合、プログラミングの流れは図１１のＳ５４６に進み、その場合、その後、Ｓ５４６でテーブル４５２を調べることになる。Ｓ５４６は、そのモジュールを実行するのに適した適切なサーバの名前をテーブル４５４から見つける。Ｓ５４８は、当該適切なサーバの名前がテーブル４５４から見つけられたのかどうかを判定する。当該適切なサーバの名前がテーブル４５４から見つけられたのである場合、処理はＳ５５０に進む。当該名前がテーブル４５４から見つけられたのではない場合、処理はＳ５５４に進む。Ｓ５５０は当該適切なサーバについて見つけられた名前を有するサーバを実行し、その実行サーバはそのモジュールを実行する。Ｓ５５２はルーチン４３０を停止する。処理はＳ５０２に進むこともできるが、その場合、ルーチン４３０は、他のモジュールを実行または配置するための他の要求を受け取るまで待機状態に留まることができる。
【００４６】
テーブル４５４が適切なサーバを識別しない場合、プログラミングの流れは図１２のＳ５５４に進み、その場合、Ｓ５５４でテーブル４５２を調べることになる。Ｓ５５４は、そのモジュールを実行するのに適した適切なサーバの名前を見つける。当該適切なサーバの名前は、図４および図５の優先順位テーブル４５２から見つけることができる。Ｓ５５６は、当該適切なサーバの名前がテーブル４５２から見つけられたのかどうかを判定する。その名前が見つけられた場合、処理はＳ５５８に進む。その名前が見つけられなかった場合、処理はＳ５６４に進む。Ｓ５５８は当該適切なサーバについて見つけられた名前を図４および図５の優先テーブル４５４に挿入し、それによって、次に同じモジュールの実行が要求されたときに、当該適切なサーバをテーブル４５４から見つけることができる。Ｓ５６０は当該適切なサーバについて見つけられた名前を有するサーバを実行し、そのサーバがそのモジュールを実行する。Ｓ５６２はルーチン４３０を停止する。処理はＳ５０２に進むこともできるが、その場合、ルーチン４３０は、他のモジュールを実行または配置するための他の要求を受け取るまで待機状態に留まることができる。
【００４７】
テーブル４５２が適切なサーバを識別しない場合、プログラミングの流れは図１３のＳ５６４に進み、その場合、処理は、適切なサーバを識別するための最後の手段としてＳ５６４に進む。Ｓ５６４は、そのモジュールを実行するのに適したサーバの名前を選択する。Ｓ５６６は、適切なサーバについて選択した名前を図４および図５の優先テーブル４５４に挿入する。Ｓ５６８は、適切なサーバについて選択した名前によって識別される適切なサーバを実行し、その場合、選択した名前を有する適切なサーバがそのモジュールを実行する。Ｓ５７０はルーチン４３０を停止する。処理はステップＳ５０２に進むこともできるが、その場合、ルーチン４３０は、他のモジュールを実行するかまたは他のサーバを構成するための他の要求を受け取るまで待機状態に留まることができる。
【００４８】
本発明の動作の説明を簡略化するため、その使用の一例として、本発明を実施する方法はソフトウェア開発環境を含むものになる。本発明の好ましい実施形態によって提供される方法はソフトウェア・エージェントなどの他のソフトウェア・システムにも適用可能であることが分かるだろう。
【００４９】
特定の条件または機能に本発明を適合させるために一部の要素の変形形態が可能であることが分かるだろう。本発明の概念は、明確に本発明の範囲内である様々な他の適用例にまでさらに拡大することができる。実現された好ましい実施形態に関して本発明を説明してきたが、本発明の好ましい実施形態で説明した基本概念から逸脱せずに本発明に対する多くの修正および機能強化が可能であることは、当業者には明らかになるだろう。したがって、特許証によって保護する予定であるものは、特許請求の範囲によってのみ制限されなければならない。
【図面の簡単な説明】
【００５０】
【図１】コンピュータ・システムを示す図である。
【図２】図１のコンピュータの構造を示す図である。
【図３】従来技術のソフトウェア開発環境を示す図である。
【図４】ソフトウェア開発環境で複数モジュールを配置するためにサーバをセットアップするためのデプロイヤ・ソフトウェア・ルーチンおよびデプロイメント・データを示す図である。
【図５】ソフトウェア開発環境で複数モジュールを配置するためにサーバをセットアップするためのデプロイヤ・ソフトウェア・ルーチンおよびデプロイメント・データを示す図である。
【図６】複数モジュールを配置するためにサーバをセットアップするための流れ図である。
【図７】複数モジュールを配置するためにサーバをセットアップするための流れ図である。
【図８】複数モジュールを配置するためにサーバをセットアップするための流れ図である。
【図９】複数モジュールを配置するためにサーバをセットアップするための流れ図である。
【図１０】複数モジュールを配置するためにサーバをセットアップするための流れ図である。
【図１１】複数モジュールを配置するためにサーバをセットアップするための流れ図である。
【図１２】複数モジュールを配置するためにサーバをセットアップするための流れ図である。
【図１３】複数モジュールを配置するためにサーバをセットアップするための流れ図である。
【符号の説明】
【００５１】
１００  コンピュータ・システム
１０２  ディスプレイ
１０４  コンピュータ
１０６  キーボード／マウス
１０８  プリンタ
１１０  ディスク
１１２  ネットワーク接続
１１４  ネットワーク
１１６  ネットワーク接続
１１８  ネットワーク化コンピュータ
２０４  メモリ
２０６  バス
２０８  ネットワークＩ／Ｆ
２１０  入出力Ｉ／Ｆ
２１２  オペレーティング・システム
２１４  通信スイート
３１２  構成ファイル
３１６  構成ファイル
４３０  ルーチン
４３２  サブルーチン
４３４  実行可能コード
【図１】
2005512165.tif 000003
【図２】
2005512165.tif 000004
【図３】
2005512165.tif 000005
【図４】
2005512165.tif 000006
【図５】
2005512165.tif 000007
【図６】
2005512165.tif 000008
【図７】
2005512165.tif 000009
【図８】
2005512165.tif 000010
【図９】
2005512165.tif 000011
【図１０】
2005512165.tif 000012
【図１１】
2005512165.tif 000013
【図１２】
2005512165.tif 000014
【図１３】
2005512165.tif 000015
【手続補正書】
【提出日】平成15年11月26日(2003.11.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のサーバを管理するための方法であって、
モジュールを実行するのに適した サーバを構成するための要求を受け取るステップであって、前記モジュールが識別子を有するステップと、
適切な複数のサーバの複数の識別子を具備するテーブルから前記適切なサーバの識別子の場所を突き止めることにより、前記適切なサーバを選択するステップと、
前記場所を突き止めた適切ななサーバの前記識別子と前記モジュールの前記識別子が関連付けられるように、これらの識別子を優先テーブルに挿入するステップであって、前記優先テーブルが複数のモジュールの複数の識別子に対応する複数のサーバの複数の識別子を具備し、前記情報がすでに前記優先テーブル内に存在して関連付けられていないならその情報が挿入される、ステップと、
前記モジュールを実行するように前記適切なサーバを構成するステップと、
を有する方法。
【請求項２】
前記テーブルおよび前記優先テーブルが同一のものである、請求項１に記載の方法。
【請求項３】
前記テーブルが、適切な複数のサーバの前記複数の識別子に対応する複数のモジュールの複数の識別子をさらに有する、請求項１に記載の方法。
【請求項４】
前記適切なサーバを作成するステップと、
前記適切なサーバに前記モジュールを実行させるステップと、
をさらに有する、請求項１または３に記載の方法。
【請求項５】
前記適切なサーバの前記識別子がサーバのタイプを識別し、
前記モジュールの前記識別子がモジュールのタイプを識別する、
請求項３または４に記載の方法。
【請求項６】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを使用するステップであって、
前記テーブルから適切なサーバの前記識別子を識別するより前に、優先順位付きの適切なサーバを識別するためと、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成するためと、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させるため、
のステップと、
前記優先テーブルを使用するステップであって、
前記テーブルから前記適切なサーバを識別するより前に、前記優先テーブルから適切なサーバを識別するためと、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成するためと、
前記優先テーブルから識別された前記適切なサーバに前記モジュールを実行させるため、
のステップと、
をさらに有する、請求項５に記載の方法。
【請求項７】
前記適切なサーバの前記識別子がサーバの名前を識別し、
前記モジュールの前記識別子がモジュールの名前を識別する、
請求項３または４に記載の方法。
【請求項８】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを使用するステップであって、
前記テーブルから前記適切なサーバを識別するより前に、前記優先順位テーブルから適切なサーバを識別するためと、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成するためと、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させるため、
のステップと、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを使用するステップであって、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルからモジュールのタイプに対応する適切なサーバのタイプを識別するためと、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成するためと、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させるため、
のステップと、
をさらに有する、請求項７に記載の方法。
【請求項９】
前記テーブルが適切な複数のサーバの優先順位付きの複数の識別子を有し、前記方法が、
前記適切なサーバを作成するステップと、
前記適切なサーバに前記モジュールを実行させるステップと、
をさらに有する、請求項１に記載の方法。
【請求項１０】
前記優先テーブルを使用するステップであって、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記優先テーブルから好ましい適切なサーバを識別するためと、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成するためと、
前記優先テーブルから識別された前記サーバに前記モジュールを実行させるため、
のステップと、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを使用するステップであって、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルから適切なサーバのタイプを識別するためと、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成するためと、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させるため、
のステップと、
をさらに有する、請求項９に記載の方法。
【請求項１１】
前記方法がソフトウェア開発環境で実行される、請求項６、８、または１０に記載の方法。
【請求項１２】
コンピュータ可読メモリに動作可能に結合されたコンピュータ・システムで使用するためのコンピュータ・プログラム記録媒体であって、前記コンピュータ・プログラム記録媒体は複数のサーバを管理するよう前記コンピュータに指示するためのコンピュータ可読プログラム・コードを具体的に実施するコンピュータ可読データ記憶媒体を含み、前記コードが、
モジュールを実行するのに適したサーバを構成するための要求を受け取るよう前記コンピュータ・システムに指示するためのコードであって、前記モジュールが識別子を有するコードと、
適切な複数のサーバの複数の識別子を具備するテーブルから前記適切なサーバの識別子の場所を突き止めることにより、前記適切なサーバを選択するよう前記コンピュータ・システムに指示するためのコードと、
前記場所を突き止めた適切なサーバの前記識別子と前記モジュールの前記識別子が関連付けられるように、これらの識別子を優先テーブルに挿入するよう前記コンピュータ・システムに指示するためのコードであって、前記優先テーブルが複数のモジュールの複数の識別子に対応する複数のサーバの複数の識別子を具備し、前記情報がすでに前記優先テーブル内に存在して関連付けられていないならその情報が挿入される、コードと、
前記モジュールを実行するように前記適切なサーバを構成するよう前記コンピュータ・システムに指示するためのコードと、
を有するコンピュータ・プログラム記録媒体。
【請求項１３】
前記テーブルおよび前記優先テーブルが同一のものである、請求項１２に記載のコンピュータ・プログラム記録媒体。
【請求項１４】
前記テーブルが、適切な複数のサーバの前記複数の識別子に対応する複数のモジュールの複数の識別子をさらに有する、請求項１２に記載のコンピュータ・プログラム記録媒体。
【請求項１５】
前記適切なサーバを作成するよう前記コンピュータ・システムに指示するためのコードと、
前記適切なサーバに前記モジュールを実行させるよう前記コンピュータ・システムに指示するためのコードと、
をさらに有する、請求項１２または１４に記載のコンピュータ・プログラム記録媒体。
【請求項１６】
前記適切なサーバの前記識別子がサーバのタイプを識別し、
前記モジュールの前記識別子がモジュールのタイプを識別する、
請求項１４または１５に記載のコンピュータ・プログラム記録媒体。
【請求項１７】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを、
前記テーブルから適切なサーバの前記識別子を識別するより前に、優先順位付きの適切なサーバを識別し、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成し、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
前記優先テーブルを、
前記テーブルから前記適切なサーバを識別するより前に前記優先テーブルから適切なサーバを識別し、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成し、
前記優先テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
をさらに有する、請求項１６に記載のコンピュータ・プログラム記録媒体。
【請求項１８】
前記適切なサーバの前記識別子がサーバの名前を識別し、
前記モジュールの前記識別子がモジュールの名前を識別する、
請求項１４または１５に記載のコンピュータ・プログラム記録媒体。
【請求項１９】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを、
前記テーブルから前記適切なサーバを識別する前に前記優先順位テーブルから適切なサーバを識別し、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成し、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
モジュールのタイプに対応するサーバのタイプを具備するバックアップ・テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルからモジュールのタイプに対応する適切なサーバのタイプを識別し、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成し、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
をさらに有する、請求項１８に記載のコンピュータ・プログラム記録媒体。
【請求項２０】
前記テーブルが適切な複数のサーバの優先順位付きの複数の識別子を具備し、前記方法が、
前記適切なサーバを作成するよう前記コンピュータ・システムに指示するためのコードと、
前記適切なサーバに前記モジュールを実行させるよう前記コンピュータ・システムに指示するためのコードと、
をさらに有する、請求項１２に記載のコンピュータ・プログラム記録媒体。
【請求項２１】
前記優先テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記優先テーブルから好ましい適切なサーバを識別し、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成し、
前記優先テーブルから識別された前記サーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルから適切なサーバのタイプを識別し、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成し、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するよう前記コンピュータ・システムに指示するためのコードと、
をさらに有する、請求項２０に記載のコンピュータ・プログラム記録媒体。
【請求項２２】
前記コンピュータ・プログラム記録媒体がソフトウェア開発環境で使用される、請求項１７、１９、または２１に記載のコンピュータ・プログラム記録媒体。
【請求項２３】
コンピュータ可読メモリに動作可能に結合されたコンピュータ・システムであって、前記コンピュータ・システムは複数のサーバを管理するためのものであり、
モジュールを実行するのに適したサーバを構成するための要求を受け取るための手段であって、前記モジュールが識別子を有する手段と、
適切な複数のサーバの複数の識別子を具備するテーブルから前記適切なサーバの識別子の場所を突き止めることにより、前記適切なサーバを選択するための手段と、
前記突き止めた適切なサーバの前記識別子と前記モジュールの前記識別子が関連付けられるように、これらの識別子を優先テーブルに挿入するための手段であって、前記優先テーブルが複数のモジュールの複数の識別子に対応する複数のサーバの複数の識別子を具備し、前記情報がすでに前記優先テーブル内に存在して関連付けられていないならその情報が挿入される、手段と、
前記モジュールを実行するように前記適切なサーバを構成するための手段と、
を有するコンピュータ・システム。
【請求項２４】
前記テーブルおよび前記優先テーブルが同一のものである、請求項２３に記載のコンピュータ・システム。
【請求項２５】
前記テーブルが、適切な複数のサーバの前記複数の識別子に対応する複数のモジュールの複数の識別子をさらに有する、請求項２３に記載のコンピュータ・システム。
【請求項２６】
前記適切なサーバを作成するための手段と、
前記適切なサーバに前記モジュールを実行させるための手段と、
をさらに有する、請求項２３または２５に記載のコンピュータ・システム。
【請求項２７】
前記適切なサーバの前記識別子がサーバのタイプを識別し、
前記モジュールの前記識別子がモジュールのタイプを識別する、
請求項２５または２６に記載のコンピュータ・システム。
【請求項２８】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを、
前記テーブルから適切なサーバの前記識別子を識別するより前に、優先順位付きの適切なサーバを識別し、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成し、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するための手段と、
前記優先テーブルを、
前記テーブルから前記適切なサーバを識別する前に前記優先テーブルから適切なサーバを識別し、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成し、
前記優先テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するための手段と、
をさらに有する、請求項２７に記載のコンピュータ・システム。
【請求項２９】
前記適切なサーバの前記識別子がサーバの名前を識別し、
前記モジュールの前記識別子がモジュールの名前を識別する、
請求項２５または２６に記載のコンピュータ・システム。
【請求項３０】
適切な複数のサーバの優先順位付きの複数の識別子を具備する優先順位テーブルを、
前記テーブルから前記適切なサーバを識別する前に前記優先順位テーブルから適切なサーバを識別し、
前記モジュールを実行するように、前記優先順位テーブルから識別されたサーバを構成し、
前記優先順位テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するための手段と、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルからモジュールのタイプに対応する適切なサーバのタイプを識別し、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成し、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するための手段と、
をさらに有する、請求項２９に記載のコンピュータ・システム。
【請求項３１】
前記テーブルが適切な複数のサーバの優先順位付きの複数の識別子を有し、前記方法が、
前記適切なサーバを作成するための手段と、
前記適切なサーバに前記モジュールを実行させるための手段と、
をさらに有する、請求項２３に記載のコンピュータ・システム。
【請求項３２】
前記優先テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記優先テーブルから好ましい適切なサーバを識別し、
前記モジュールを実行するように、前記優先テーブルから識別されたサーバを構成し、
前記優先テーブルから識別された前記サーバに前記モジュールを実行させる、
ために使用するための手段と、
複数のモジュールの複数のタイプに対応する複数のサーバの複数のタイプを具備するバックアップ・テーブルを、
前記テーブルが前記適切なサーバの前記識別子を提供しないときに、前記バックアップ・テーブルから適切なサーバのタイプを識別し、
前記モジュールを実行するように、前記バックアップ・テーブルから識別されたサーバを構成し、
前記バックアップ・テーブルから識別された前記適切なサーバに前記モジュールを実行させる、
ために使用するための手段と、
をさらに有する、請求項３１に記載のコンピュータ・システム。
【請求項３３】
前記コンピュータ・システムがソフトウェア開発環境で使用される、請求項２８、３０、または３２に記載のコンピュータ・システム。
【請求項３４】
モジュールを実行するためのサーバを構成し選択するためのデータ・セットであって、前記モジュールを実行するのに適した適切なサーバの識別子を含むためのテーブルを有するデータ・セット。
【請求項３５】
前記識別子がモジュールのタイプを識別し、前記データ・セットが、前記モジュールの前記タイプの前記識別子に対応するサーバのタイプを識別するための識別子をさらに有する、請求項３４に記載のデータ・セット。
【請求項３６】
前記識別子がサーバの名前を識別し、前記データ・セットが、前記モジュールの対応する名前を識別するための識別子をさらに有する、請求項３４に記載のデータ・セット。
【請求項３７】
前記データ・セットの項目に優先順位が付けられている、請求項３４に記載のデータ・セット。
【国際調査報告】
2005512165.tif 000016
2005512165.tif 000017
2005512165.tif 000018