(57)【特許請求の範囲】
【請求項１】
複数のサーバを有し、各サーバが該複数のサーバのアドレス情報と該複数のサーバで動作する個々のサーバプロセスの組み合わせを管理するネームスペース情報とを定義した定義ファイルに基づいて他サーバと通信するサーバシステムであって、
各サーバは、
前記定義ファイルを書き換えることなく、所定の契機で自サーバのアドレス情報と自サーバの前記サーバシステムへの追加又は前記サーバシステムからの削除を含む状態情報をブロードキャストにより他サーバに送信する送信手段と、
前記他サーバのアドレス情報を含む他サーバの状態情報を前記他サーバから受信する受信手段と、
前記受信手段で受信した前記他サーバの状態情報と前記定義ファイルとに基づき、前記他サーバの前記サーバシステムへの追加又は前記サーバシステムからの削除に対応づけて前記サーバプロセスを実行するサーバの状態情報を記憶する記憶手段と、
前記記憶手段が記憶する前記他サーバの状態情報に基づいて通信相手のサーバを選択する選択手段とを備えることを特徴とするサーバシステム。
【請求項２】
各サーバの状態情報は、自サーバの負荷状態を示す負荷情報をさらに含み、前記選択手段は、前記他サーバの状態情報に含まれる負荷情報に基づいて、より負荷の低いサーバを通信相手として選択することを特徴とする請求項１記載のサーバシステム。
【請求項３】
各サーバは、クライアント端末からの処理要求を受け付け該クライアント端末に処理結果を返信するインタフェースサーバ、又は、要求された処理を実行するアプリケーションサーバとして動作し、各サーバの状態情報は、該インタフェースサーバ又はアプリケーションサーバのいずれとして稼動中なのかを示す稼動状態情報をさらに含み、該インタフェースサーバとして稼動中のサーバの選択手段は、より負荷の低いアプリケーションサーバを前記処理要求の転送先として選択することを特徴とする請求項２記載のサーバシステム。
【請求項４】
前記サーバシステムの対象サーバを前記インタフェースサーバから前記アプリケーションサーバに変更するとき、又は、該対象サーバを前記アプリケーションサーバから前記インタフェースサーバに変更するとき、該対象サーバの送信手段は、該インタフェースサーバ又はアプリケーションサーバのいずれであるかを示すサーバ種別情報を他サーバに送信し、該他サーバは、該対象サーバの稼動状態情報を更新することを特徴とする請求項３記載のサーバシステム。
【請求項５】
前記サーバシステムにサーバが追加されたとき、追加されたサーバの送信手段は、自サーバの状態情報を前記複数のサーバに送信し、該追加されたサーバの受信手段は、該複数のサーバの状態情報を該複数のサーバから受信し、該追加されたサーバの記憶手段は、該複数のサーバの状態情報を記憶することを特徴とする請求項１、２、又は３記載のサーバシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のサーバを有するサーバシステムに関する。
【背景技術】
【０００２】
近年、多様な業務トランザクションを処理するために、クライアント端末と負荷分散装置（ロードバランサ）と複数のサーバからなるシステムが利用されている。このようなシステムでは、ロードバランサがクライアント端末からの要求を処理するサーバを決定することで、システム内の負荷分散を図っている。
【０００３】
また、クライアント端末と複数のサーバからなるシステムにおいて、サーバ間で互いのCentral Processing Unit （ＣＰＵ）使用率を通知し合う技術も知られている（例えば、下記の特許文献１を参照）。このシステムでは、ＣＰＵ使用率が最小であるサーバが、クライアント端末からの処理要求を受け付ける。
【特許文献１】特開２００６−３０１７４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述した従来のシステムにおいて、１つのサーバを一時的に追加又は削除する場合、システムを一時的に停止させて、システムの基本構成を定義した定義ファイルを書き換える必要がある。しかしながら、業務運用中は一時的であってもシステムを停止できないことが多い。
【０００５】
本発明の課題は、複数のサーバを有するサーバシステムにおいて、システムを一時停止することなく、サーバの追加、削除等のような構成変更を可能にすることである。
【課題を解決するための手段】
【０００６】
開示のサーバシステムは、複数のサーバを有し、各サーバがそれらのサーバのアドレス情報を定義した定義ファイルに基づいて他サーバと通信する。
各サーバは、送信手段、受信手段、記憶手段、及び選択手段を備える。送信手段は、定義ファイルを書き換えることなく、所定の契機で自サーバのアドレス情報を含む自サーバの状態情報を他サーバに送信する。受信手段は、他サーバのアドレス情報を含む他サーバの状態情報を他サーバから受信する。記憶手段は、他サーバの状態情報を記憶する。選択手段は、記憶手段が記憶する他サーバの状態情報に基づいて通信相手のサーバを選択する。
【０００７】
定義ファイルを書き換えることなく、それぞれのサーバの状態情報をサーバ間で送受信することで、サーバシステムを構成するサーバに追加、削除等の変更が生じた場合でも、最新のシステム構成と各サーバの状態を認識することができる。したがって、最適なサーバを通信相手として選択することができる。
【発明の効果】
【０００８】
複数のサーバを有するサーバシステムにおいて、システムを一時停止することなく、サーバの追加、削除等のような構成変更を行うことが可能になる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
図１は、実施形態の業務システムの構成例を示している。この業務システムは、クライ
アント端末１０１、ロードバランサ１０２、Ｗｅｂサーバ１０３−１〜１０３−３、及びアプリケーション（ＡＰ）サーバ１０４−１〜１０４−３を備える。
【００１０】
クライアント端末１０１は、通信ネットワークを介してロードバランサ１０２と通信し、ロードバランサ１０２は、通信ネットワークを介してＷｅｂサーバ１０３−１〜１０３−３と通信する。また、Ｗｅｂサーバ１０３−１〜１０３−３及びＡＰサーバ１０４−１〜１０４−３は、通信ネットワークを介してUser Datagram Protocol（ＵＤＰ）により互いに通信する。
【００１１】
Ｗｅｂサーバ１０３−１〜１０３−３は、クライアント端末１０１とＡＰサーバ１０４−１〜１０４−３の間のインタフェース処理を行う。ＡＰサーバ１０４−１〜１０４−３は、例えば、人事管理、財務、保険のような各種業務用のアプリケーションプログラムを実行し、表計算等の処理を行う。
【００１２】
トランザクション実行時には、クライアント端末１０２からの処理要求がロードバランサ１０２、Ｗｅｂサーバ１０３−ｉ（ｉ＝１〜３）、ＡＰサーバ１０４−ｊ（ｊ＝１〜３）の順に転送される。このとき、ロードバランサ１０２は、所定の負荷分散ポリシーに従って、クライアント端末１０２からの処理要求を転送する先のＷｅｂサーバ１０３−ｉを決定する。
【００１３】
Ｗｅｂサーバ１０３−ｉは、処理要求を受け付けると、その処理要求を処理すべきＡＰサーバ１０４−ｊを選択し、ＡＰサーバ１０４−ｊは、要求された処理を実行する。ＡＰサーバ１０４−ｊからの処理結果は、Ｗｅｂサーバ１０３−ｉ、ロードバランサ１０２、クライアント端末１０１の順に転送される。
【００１４】
ＷｅｂサーバとＡＰサーバの区別は論理的なものであり、あるＷｅｂサーバの役割をＡＰサーバに変更したり、あるＡＰサーバの役割をＷｅｂサーバに変更したりすることも可能である。また、１台のサーバがＷｅｂサーバとＡＰサーバの両方の機能を備える場合もある。
【００１５】
システムの構築時には、サーバマッピングファイルと呼ばれる定義ファイルがＷｅｂサーバ１０３−１〜１０３−３及びＡＰサーバ１０４−１〜１０４−３に格納される。サーバマッピングファイルには、業務システムの基本構成が記述されている。
【００１６】
図２は、サーバマッピングファイルの記述形式を示している。図２のサーバマッピングファイルは、ＮａｍｅＳｐａｃｅタグ２０１−１及び２０１−２、Ｈｏｓｔタグ２０２−１〜２０２−３、及びＳｅｒｖｅｒＴｙｐｅタグ２０２−１〜２０２−４を含む。それぞれのタグにより記述される情報は、以下の通りである。
（ａ）ＮａｍｅＳｐａｃｅタグ
このタグには、ネームスペース名が記述される。このタグの情報は必須である。システム内に複数のネームスペースが存在する場合は、このタグが繰り返し記述される。
（ｂ）Ｈｏｓｔタグ
このタグには、各サーバのインターネットプロトコル（ＩＰ）アドレスが記述される。ネームスペース内には少なくとも１台以上のサーバが存在するため、このタグの情報は必須である。ネームスペース内に複数のサーバが存在する場合は、このタグが繰り返し記述される。
【００１７】
図１の業務システムでは、通信ネットワークとして、管理用ネットワークと業務用ネットワークの２つのネットワークを使用可能である。制御を行う場合は主として管理用ネットワークを使用し、業務処理を行う場合は業務用ネットワークを使用する。管理用ネット
ワークのＩＰアドレスは、ｈｏｓｔ属性に記述され、業務用ネットワークのＩＰアドレスは、ｓｅｒｖｉｃｅｈｏｓｔ属性に記述される。
【００１８】
なお、管理用ネットワークと業務用ネットワークを区別しない場合は、ｈｏｓｔ属性のみにＩＰアドレスを記述すればよく、ｓｅｒｖｉｃｅｈｏｓｔ属性を記述する必要はない。
（ｃ）ＳｅｒｖｅｒＴｙｐｅタグ
このタグには、各サーバ上で動作するサーバプロセスの種別（サーバ種別）が記述される。例えば、Ｗｅｂサーバ１０３−１〜１０３−３上ではＷｅｂサーバプロセスが動作しているので、サーバ種別はＷｅｂサーバとなり、ＡＰサーバ１０４−１〜１０４−３上ではＡＰサーバプロセス（業務プロセス）が動作しているので、サーバ種別はＡＰサーバとなる。
【００１９】
サーバ上には少なくとも１つ以上のサーバプロセスが動作しているため、このタグの情報は必須である。サーバ上で複数のサーバプロセスが動作する場合は、このタグが繰り返し記述される。
【００２０】
各サーバは、このような形式で記述されたサーバマッピングファイルの情報をもとに、図３に示すようなシステム状態情報をメモリ上に生成する。
図３のシステム状態情報は、ネームスペース３０１、ＩＰアドレス３０２、Ｗｅｂサーバ稼動状態３０３、ＡＰサーバ稼動状態３０４、ＣＰＵ負荷３０５、及びＡＰサーバ利用者数３０６を含む。
【００２１】
ネームスペース３０１は、システムを複数の空間に分割した場合の各サーバに割り当てられた空間（ネームスペース名）を示す。例えば、Ｗｅｂサーバ１０３−１及び１０３−２上に第１のネームスペースに割り当て、Ｗｅｂサーバ１０３−２及び１０３−３上に第２のネームスペースに割り当てることが可能である。
【００２２】
ＩＰアドレス３０２は、各サーバのＩＰアドレスを示し、Ｗｅｂサーバ稼動状態３０３は、Ｗｅｂサーバプロセスの稼動状態を示し、ＡＰサーバ稼動状態３０４は、ＡＰサーバプロセスの稼動状態を示す。稼動状態とは、例えば、稼動中、未起動、障害回復中等の状態を意味する。ＣＰＵ負荷３０５は、例えば、ＣＰＵ使用率のような負荷状態を示すパラメータであり、ＡＰサーバ利用者数３０６は、稼動中のＡＰサーバプロセスを利用している利用者の数を示す。
【００２３】
各サーバは、このようなシステム状態情報を参照することで、システム内の全サーバの役割及び負荷状態を認識することができる。
各サーバは、さらに図４に示すような業務利用情報をメモリ上に保持している。図４の業務利用情報は、ネームスペース４０１、システムコード４０２、業務稼動状態４０３、及び業務利用者数４０４を含む。
【００２４】
ネームスペース４０１は、各サーバに割り当てられた空間を示しており、システムコード４０２は、各業務に割り当てられる識別情報である。業務稼動状態４０３は、各業務の稼動状態を示し、業務利用者数４０４は、稼動中の業務を利用している利用者の数を示す。ある業務の処理を実行する１つ以上のＡＰサーバプロセスが稼動中であれば、その業務の業務稼動状態４０３は稼動中となり、ＡＰサーバプロセスが未起動であれば、業務稼動状態４０３は未起動となる。
【００２５】
各サーバは、このような業務利用情報を参照することで、システム内の全業務の稼動状態及び利用者数を認識することができる。
ところで、図１に示すように、業務運用中にＷｅｂサーバ１０３−４又はＡＰサーバ１０４−４を追加する必要が生じた場合、例えば、図５に示すようなサーバ追加処理が行われる。図５の追加サーバ５０２は、Ｗｅｂサーバ１０３−４又はＡＰサーバ１０４−４に対応し、他サーバ５０３は、既存のＷｅｂサーバ１０３−１〜１０３−３及びＡＰサーバ１０４−１〜１０４−３に対応する。
【００２６】
追加サーバ５０２の外部記憶装置には、あらかじめサーバマッピングファイル及び業務情報ファイルが格納されている。サーバマッピングファイルには、Ｗｅｂサーバ１０３−１〜１０３−３及びＡＰサーバ１０４−１〜１０４−３についての各種タグと、追加サーバ５０２についての各種タグとが記述されている。業務情報ファイルには、システム内のそれぞれのネームスペースとシステムコードの対応関係が記述されている。
【００２７】
この場合のサーバ追加処理の手順は、以下の通りである。
（１）オペレータは、オペレータ端末５０１から追加サーバ５０２に運用管理起動コマンドを入力する。
（２）追加サーバ５０２は、運用管理初期化処理を行ってシステム状態情報及び業務利用情報を初期化する。
【００２８】
この運用管理初期化処理において、追加サーバ５０２は、サーバマッピングファイルをメモリ内に読み込み、図３に示したシステム状態情報を生成する。
このとき、ネームスペース３０１は、サーバマッピングファイルに記述されたＮａｍｅＳｐａｃｅタグの数だけ生成される。また、ＩＰアドレス３０２、Ｗｅｂサーバ稼動状態３０３、ＡＰサーバ稼動状態３０４、ＣＰＵ負荷３０５、及びＡＰサーバ利用者数３０６は、各ネームスペース３０１に対して、ＮａｍｅＳｐａｃｅタグ内に記述されたＨｏｓｔタグの数だけ生成される。ただし、初期状態では、Ｗｅｂサーバ稼動状態３０３及びＡＰサーバ稼動状態３０４は未起動に設定され、ＣＰＵ負荷３０５及びＡＰサーバ利用者数３０６は０に設定される。
【００２９】
追加サーバ５０２は、さらに業務利用情報をメモリ内に読み込み、図４に示した業務利用情報を生成する。このとき、ネームスペース４０１は、システム内のネームスペースの数だけ生成される。また、システムコード４０２、業務稼動状態４０３、及び業務利用者数４０４は、各ネームスペース４０１に対して、ネームスペース内に存在する業務の数だけ生成される。
（３）追加サーバ５０２は、システム状態情報を示す、図６のような運用管理起動完了通知メッセージを、ブロードキャストにより他サーバ５０３に送信する。運用管理起動完了通知メッセージには、追加サーバ５０２のＩＰアドレス、システム状態情報に含まれるネームスペースの数に続いて、各ネームスペースのネームスペース名、Ｗｅｂサーバ稼動状態、ＡＰサーバ稼動状態、及びＡＰサーバ利用者数が記述される。
（４）他サーバ５０３は、追加サーバ５０２からの運用管理起動完了通知メッセージを受信すると、追加サーバ５０２の情報をシステム状態情報に追加する。これにより、他サーバ５０３のシステム状態情報が最新の情報に更新される。
（５）他サーバ５０３は、更新されたシステム状態情報を示す運用管理起動完了通知メッセージを追加サーバ５０２に送信する。
（６）追加サーバ５０２は、他サーバ５０３からの運用管理起動完了通知メッセージを受信すると、その情報をシステム状態情報に反映する。これにより、追加サーバ５０２のシステム状態情報が最新の情報に更新される。
（７）他サーバ５０３は、業務利用情報を示す、図７のような業務利用状態通知メッセージを追加サーバ５０２に送信する。業務利用状態通知メッセージには、他サーバ５０３のＩＰアドレス、業務利用情報に含まれるネームスペースの数に続いて、各ネームスペースのネームスペース名、各ネームスペース内の各業務のシステムコード、業務稼動状態、及
び業務利用者数が記述される。
（８）追加サーバ５０２は、他サーバ５０３からの業務利用状態通知メッセージを受信すると、その情報を業務利用情報に反映する。これにより、追加サーバ５０２の業務利用情報が最新の情報に更新される。
（９）オペレータは、オペレータ端末５０１から追加サーバ５０２にサーバ起動コマンドを入力する。
（１０）追加サーバ５０２は、Ｗｅｂサーバプロセス（Ｗｅｂサーバ１０３−４の場合）又はＡＰサーバプロセス（ＡＰサーバ１０４−４の場合）を起動する。
（１１）追加サーバ５０２がＡＰサーバ１０４−４の場合、追加サーバ５０２は、図８のようなサーバ起動完了通知メッセージをブロードキャストにより他サーバ５０３に送信する。サーバ起動完了通知メッセージには、追加サーバ５０２のＩＰアドレス、サーバ種別、サーバ起動状態、及びＡＰサーバ接続情報が記述される。サーバ起動状態は、正常又は異常を示し、ＡＰサーバ接続情報は、ＡＰサーバである追加サーバ５０２のＩＰアドレス及びポート番号を示す。
（１２）他サーバ５０３は、追加サーバ５０２からのサーバ起動完了通知メッセージを受信すると、システム状態情報を更新する。これにより、追加サーバ５０２のＡＰサーバ稼動状態３０４が稼動中に変更される。
【００３０】
さらに、他サーバ５０３がＷｅｂサーバ１０３−１〜１０３−３の場合は、ＡＰサーバ接続情報がＷｅｂサーバプロセスに通知される。Ｗｅｂサーバプロセスは、通知された情報に基づいて、追加サーバ５０２との接続を確立する。
（１３）一方、追加サーバ５０２がＷｅｂサーバ１０３−４の場合、追加サーバ５０２は、ＡＰサーバ接続情報を含まないサーバ起動完了通知メッセージをブロードキャストにより他サーバ５０３に送信する。そして、下記（１６）及び（１７）の処理を行う。
（１４）他サーバ５０３は、追加サーバ５０２からのサーバ起動完了通知メッセージを受信すると、システム状態情報を更新する。これにより、追加サーバ５０２のＷｅｂサーバ稼動状態３０３が稼動中に変更される。
（１５）他サーバ５０３がＡＰサーバ１０４−１〜１０４−３の場合、他サーバ５０３は、ＡＰサーバ接続情報を含むサーバ起動完了通知メッセージを追加サーバ５０２に送信する。
（１６）追加サーバ５０２は、他サーバ５０３からのサーバ起動完了通知メッセージを受信すると、そのＡＰサーバ接続情報をＷｅｂサーバプロセスに通知する。Ｗｅｂサーバプロセスは、通知された情報に基づいて、他サーバ５０３との接続を確立する。
（１７）追加サーバ５０２は、ＩＰアドレス等のサーバ情報をロードバランサ１０２に送信する。ロードバランサ１０２は、受信したサーバ情報を負荷分散ポリシーに追加する。
【００３１】
こうして、他サーバ５０３は、追加サーバ５０２を業務システム内のＷｅｂサーバ１０３−４又はＡＰサーバ１０４−４として認識し、その後のトランザクションにおいて通信相手として選択することができる。
【００３２】
このようなサーバ追加処理によれば、追加サーバ５０２を含む全サーバが、システム状態情報及び業務利用情報により最新のシステム構成及び業務状態を認識し、業務処理を継続することができる。また、追加サーバ５０２がＷｅｂサーバ１０３−４の場合、ロードバランサ１０２は、トランザクションの負荷をＷｅｂサーバ１０３−１〜１０３−４に分散させることができる。したがって、業務システムを停止することなく、負荷分散ポリシーを維持したままで、新たなサーバを業務システムに追加することが可能になる。
【００３３】
図９は、サーバ間の情報共有の例を示している。Ｗｅｂサーバ１０３−１〜１０３−３及びＡＰサーバ１０４−１〜１０４−３は、一定間隔で互いにＵＤＰ通信を行うことでシステム状態情報及び業務利用情報を共有する。
【００３４】
図９のサーバ９０１は、Ｗｅｂサーバ１０３−１〜１０３−３及びＡＰサーバ１０４−１〜１０４−３のいずれかに対応し、他サーバ９０２は、サーバ９０１以外のサーバに対応する。サーバ間の情報共有の手順は、以下の通りである。
（１）サーバ９０１は、システム状態情報を示す、図１０のような運用管理状態確認メッセージを、ブロードキャストにより他サーバ９０２に送信する。運用管理状態確認メッセージには、サーバ９０１のＩＰアドレス、ＣＰＵ負荷、システム状態情報に含まれるネームスペースの数に続いて、各ネームスペースのネームスペース名、Ｗｅｂサーバ稼動状態、ＡＰサーバ稼動状態、及びＡＰサーバ利用者数が記述される。
（２）他サーバ９０２は、サーバ９０１からの運用管理状態確認メッセージを受信すると、システム状態情報を更新する。
（３）サーバ９０１は、図７に示した業務利用状態通知メッセージを、ブロードキャストにより他サーバ９０２に送信する。
（４）他サーバ９０２は、サーバ９０１からの業務利用状態通知メッセージを受信すると、業務利用情報を更新する。
【００３５】
運用管理状態確認メッセージ及び業務利用状態通知メッセージのブロードキャスト送信は、それぞれのサーバが定期的に行う。これにより、全サーバのシステム状態情報及び業務利用情報が最新の情報に更新される。
【００３６】
ここで、サーバ９０１に何らかの異常が発生した場合、例えば、図１１に示すような処理が行われる。サーバ異常時の処理の手順は、以下の通りである。
（１）異常発生により、サーバ９０１から他サーバ９０２への運用管理状態確認メッセージの送信が途切れる。
（２）一定時間、サーバ９０１から運用管理状態確認メッセージを受信しない場合、他サーバ９０２は、サーバ９０１が異常終了したものと判断し、システム状態情報からサーバ９０１の情報を削除する。
【００３７】
こうして、他サーバ９０２は、サーバ９０１が業務システムから切り離されたものと判断し、その後のトランザクションにおいて通信相手として選択しない。
図１２は、サーバ削除処理の例を示している。例えば、１台のサーバのメンテナンスを行う場合に、業務システムを停止することなく、対象サーバが業務システムから削除される。
【００３８】
図１２の削除サーバ１２０１は、Ｗｅｂサーバ１０３−１〜１０３−３及びＡＰサーバ１０４−１〜１０４−３のいずれかに対応し、他サーバ１２０２は、削除サーバ１２０１以外のサーバに対応する。サーバ削除処理の手順は、以下の通りである。
（１）オペレータは、オペレータ端末５０１から削除サーバ１２０１にサーバ停止コマンドを入力する。
（２）削除サーバ１２０１は、Ｗｅｂサーバプロセス（Ｗｅｂサーバ１０３−１〜１０３−３の場合）又はＡＰサーバプロセス（ＡＰサーバ１０４−１〜１０４−３の場合）を停止する。
（３）削除サーバ１２０１がＡＰサーバ１０４−１〜１０４−３の場合、削除サーバ１２０１は、図１３のようなサーバ停止完了通知メッセージをブロードキャストにより他サーバ１２０２に送信する。サーバ停止完了通知メッセージには、削除サーバ１２０１のＩＰアドレス、サーバ種別、及びＡＰサーバ接続情報が記述される。
（４）他サーバ１２０２は、削除サーバ１２０１からのサーバ停止完了通知メッセージを受信すると、システム状態情報を更新する。これにより、削除サーバ１２０１のＡＰサーバ稼動状態３０４が未起動に変更される。
【００３９】
さらに、他サーバ１２０２がＷｅｂサーバ１０３−１〜１０３−３の場合は、ＡＰサーバ接続情報がＷｅｂサーバプロセスに通知される。Ｗｅｂサーバプロセスは、通知された情報に基づいて、削除サーバ１２０１との接続を切断する。
（５）一方、削除サーバ１２０１がＷｅｂサーバ１０３−１〜１０３−３の場合、削除サーバ１２０１は、ＡＰサーバ接続情報を含まないサーバ停止完了通知メッセージをブロードキャストにより他サーバ１２０２に送信する。そして、下記（７）の処理を行う。
（６）他サーバ１２０２は、削除サーバ１２０１からのサーバ停止完了通知メッセージを受信すると、システム状態情報を更新する。これにより、削除サーバ１２０１のＷｅｂサーバ稼動状態３０３が未起動に変更される。
（７）削除サーバ１２０１は、ＩＰアドレス等のサーバ情報をロードバランサ１０２に送信する。ロードバランサ１０２は、受信したサーバ情報を負荷分散ポリシーから削除する。
（８）オペレータは、オペレータ端末５０１から削除サーバ１２０１に運用管理停止コマンドを入力する。
（９）削除サーバ１２０１は、運用管理回収処理を行う。
（１０）削除サーバ１２０１は、図１４のような運用管理停止完了通知メッセージをブロードキャストにより他サーバ１２０２に送信する。運用管理停止完了通知メッセージには、削除サーバ１２０１のＩＰアドレスが記述される。
（１１）他サーバ１２０２は、削除サーバ１２０１からの運用管理停止完了通知メッセージを受信すると、システム状態情報を更新する。これにより、削除サーバ１２０１の情報がシステム状態情報から削除される。
【００４０】
こうして、他サーバ１２０２は、削除サーバ１２０１が業務システムから切り離されたものと判断し、その後のトランザクションにおいて通信相手として選択しない。
このようなサーバ削除処理によれば、削除サーバ１２０１を除く全サーバが、システム状態情報により最新のシステム構成を認識し、業務処理を継続することができる。また、削除サーバ１２０１がＷｅｂサーバ１０３−１〜１０３−３の場合、ロードバランサ１０２は、クライアント端末１０１からの処理要求を削除サーバ１２０１に転送しないようにすることができる。したがって、業務システムを停止することなく、負荷分散ポリシーを維持したままで、既存のサーバを業務システムから削除することが可能になる。
【００４１】
図１５は、サーバ切替処理の例を示している。サーバ切替処理は、業務システム内のあるサーバの役割を別の役割に変更する処理である。例えば、業務システム内のＡＰサーバが足りない場合、業務システムを停止することなく、ＷｅｂサーバがＡＰサーバに切り替えられる。
【００４２】
図１５の切替対象サーバ１５０１は、Ｗｅｂサーバ１０３−１〜１０３−３のいずれかに対応し、他サーバ１５０２は、切替対象サーバ１５０１以外のサーバに対応する。ＷｅｂサーバをＡＰサーバに切り替えるサーバ切替処理の手順は、以下の通りである。
（１）オペレータは、オペレータ端末５０１から切替対象サーバ１５０１にＡＰサーバ起動コマンドを入力する。
（２）切替対象サーバ１５０１は、ＡＰサーバプロセスを起動する。その後、切替対象サーバ１５０１と他サーバ１５０２により、図５の（１１）及び（１２）と同様の処理が行われる。
（３）オペレータは、オペレータ端末５０１から切替対象サーバ１５０１にＷｅｂサーバ停止コマンドを入力する。
（４）切替対象サーバ１５０１は、Ｗｅｂサーバプロセスを停止する。その後、切替対象サーバ１５０１と他サーバ１５０２により、図１２の（５）〜（７）と同様の処理が行われる。
【００４３】
こうして、他サーバ１５０２は、切替対象サーバ１５０１を業務システム内のＡＰサーバとして認識する。他サーバ１５０２がＷｅｂサーバ１０３−１〜１０３−３のいずれかである場合、その後のトランザクションにおいて切替対象サーバ１５０１を処理要求の転送先として選択することができる。
【００４４】
このようなサーバ切替処理によれば、切替対象サーバ１５０１を含む全サーバが、システム状態情報により最新のシステム構成を認識し、業務処理を継続することができる。また、ロードバランサ１０２は、クライアント端末１０１からの処理要求を切替対象サーバ１５０１に転送しないようにすることができる。したがって、業務システムを停止することなく、負荷分散ポリシーを維持したままで、ＷｅｂサーバをＡＰサーバに切り替えることが可能になる。
【００４５】
なお、ＡＰサーバをＷｅｂサーバに切り替える場合も、同様の手順でサーバ切替処理が行われる。
図１６は、業務システムにおける負荷分散処理の例を示している。ロードバランサ１０２は、負荷分散ポリシーに従って、クライアント端末１０１とＷｅｂサーバ１０３−１〜１０３−３の間の負荷分散を行う。負荷分散ポリシーは、図５の（１７）に示したように、各Ｗｅｂサーバプロセスが起動されたときに設定される。
【００４６】
一方、Ｗｅｂサーバ１０３−１〜１０３−３とＡＰサーバ１０４−１〜１０４−３の間の負荷分散は、以下の手順で行われる。ここでは、一例としてＷｅｂサーバ１０３−１が行う処理を説明するが、Ｗｅｂサーバ１０３−２及び１０３−３も同様の処理を行う。
（１）Ｗｅｂサーバ１０３−１のＷｅｂサーバプロセス１６０１は、クライアント端末１０１からの処理要求を受信すると、図１７のようなＡＰサーバチェックインメッセージを、Transmission Control Protocol （ＴＣＰ）により運用管理プロセス１６０２に送信する。ＡＰサーバチェックインメッセージには、処理要求に含まれるシステムコードが記述される。
（２）運用管理プロセス１６０２は、Ｗｅｂサーバプロセス１６０１からのＡＰサーバチェックインメッセージを受信すると、業務利用情報を参照して、そのシステムコードに対応する業務稼動状態４０３を確認する。そして、業務稼動状態４０３が未起動であれば、エラー処理を行う。
（３）業務稼動状態４０３が稼動中であれば、運用管理プロセス１６０２は、システム状態情報を参照して、最も負荷の低いＡＰサーバを接続先ＡＰサーバとして選択する。ここでは、例えば、ＣＰＵ負荷３０５が最も低いＡＰサーバ、又は、ＡＰサーバ利用者数３０６が最も少ないＡＰサーバが選択される。あるいは、ＣＰＵ負荷３０５が最も低いＡＰサーバが複数ある場合に、それらの中でＡＰサーバ利用者数３０６が最も少ないＡＰサーバを選択してもよい。
（４）運用管理プロセス１６０２は、システム状態情報及び業務利用情報を更新する。これにより、ＡＰサーバ利用者数３０６と業務利用者数４０４のそれぞれに１が加算される。
（５）運用管理プロセス１６０２は、図１８のようなＡＰサーバチェックインメッセージを、ブロードキャストにより他サーバ（Ｗｅｂサーバ１０３−２、１０３−３及びＡＰサーバ１０４−１〜１０４−３）に送信する。ＡＰサーバチェックインメッセージには、システムコード、接続先ＡＰサーバのＩＰアドレス、更新された業務利用者数、及び更新されたＡＰサーバ利用者数が記述される。
（６）運用管理プロセス１６０２は、図１８のようなＡＰサーバチェックインメッセージを、ＴＣＰによりＷｅｂサーバプロセス１６０１に送信する。
（７）Ｗｅｂサーバプロセス１６０１は、運用管理プロセス１６０２からのＡＰサーバチェックインメッセージを受信すると、接続先ＡＰサーバのＩＰアドレスを取得し、そのＡＰサーバに処理を依頼する。この例では、ＡＰサーバ１０４−１の負荷が最も低いため、
ＡＰサーバ１０４−１のＡＰサーバプロセス１６０３が要求された処理を実行する。
【００４７】
このような負荷分散処理によれば、業務システム内で最も負荷が低いＡＰサーバを選択して処理を行わせることができるため、Ｗｅｂサーバ１０３−１〜１０３−３とＡＰサーバ１０４−１〜１０４−３の間で適切な負荷分散が実現される。
【００４８】
なお、図１の業務システムは６台のサーバを備えているが、一般には、業務システム内のサーバの数は２台以上であればよい。
図１のクライアント端末１０１、ロードバランサ１０２、Ｗｅｂサーバ１０３−１〜１０３−３、及びＡＰサーバ１０４−１〜１０４−３は、例えば、図１９に示すような情報処理装置（コンピュータ）を用いて構成される。図１９の情報処理装置は、ＣＰＵ１９０１、メモリ１９０２、入力装置１９０３、出力装置１９０４、外部記憶装置１９０５、媒体駆動装置１９０６、およびネットワーク接続装置１９０７を備え、それらはバス１９０８により互いに接続されている。
【００４９】
メモリ１９０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）等を含み、処理に用いられるプログラムおよびデータを格納する。メモリ１９０２に格納されるデータには、システム状態情報及び業務利用情報が含まれる。ＣＰＵ１９０１は、メモリ１９０２を利用してプログラムを実行することにより、クライアント端末１０１、ロードバランサ１０２、Ｗｅｂサーバ１０３−１〜１０３−３、又はＡＰサーバ１０４−１〜１０４−３の処理を行う。
【００５０】
入力装置１９０３は、例えば、キーボード、ポインティングデバイス等であり、オペレータからの指示や情報の入力に用いられる。出力装置１９０４は、例えば、ディスプレイ、プリンタ、スピーカ等であり、オペレータへの問い合わせや処理結果の出力に用いられる。
【００５１】
外部記憶装置１９０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置１９０５に、プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ１９０２にロードして使用する。外部記憶装置１９０５に格納されるデータには、サーバマッピングファイル及び業務情報ファイルが含まれる。
【００５２】
媒体駆動装置１９０６は、可搬記録媒体１９０９を駆動し、その記録内容にアクセスする。可搬記録媒体１９０９は、メモリカード、フレキシブルディスク、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。オペレータは、この可搬記録媒体１９０９にプログラムおよびデータを格納しておき、必要に応じて、それらをメモリ１９０２にロードして使用する。
【００５３】
ネットワーク接続装置１９０７は、Local Area Network（ＬＡＮ）等の通信ネットワークに接続され、通信に伴うデータ変換を行う。また、情報処理装置は、必要に応じて、プログラムおよびデータを外部の装置からネットワーク接続装置１９０７を介して受け取り、それらをメモリ１９０２にロードして使用する。
【００５４】
図２０は、図１９の情報処理装置にプログラムおよびデータを提供する方法を示している。可搬記録媒体１９０９や外部装置２００１のデータベース２０１１に格納されたプログラムおよびデータは、情報処理装置２００２のメモリ１９０２にロードされる。外部装置２００１は、そのプログラムおよびデータを搬送する搬送信号を生成し、通信ネットワーク上の任意の伝送媒体を介して情報処理装置２００２に送信する。ＣＰＵ１９０１は、そのデータを用いてそのプログラムを実行し、上述した処理を行う。
【００５５】
以上、図１から図２０までを参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）複数のサーバを有し、各サーバが該複数のサーバのアドレス情報を定義した定義ファイルに基づいて他サーバと通信するサーバシステムであって、
各サーバは、
前記定義ファイルを書き換えることなく、所定の契機で自サーバのアドレス情報を含む自サーバの状態情報を他サーバに送信する送信手段と、
前記他サーバのアドレス情報を含む他サーバの状態情報を前記他サーバから受信する受信手段と、
前記他サーバの状態情報を記憶する記憶手段と、
前記記憶手段が記憶する前記他サーバの状態情報に基づいて通信相手のサーバを選択する選択手段とを備えることを特徴とするサーバシステム。
（付記２）各サーバの状態情報は、自サーバの負荷状態を示す負荷情報をさらに含み、前記選択手段は、前記他サーバの状態情報に含まれる負荷情報に基づいて、より負荷の低いサーバを通信相手として選択することを特徴とする付記１記載のサーバシステム。
（付記３）各サーバは、クライアント端末からの処理要求を受け付け該クライアント端末に処理結果を返信するインタフェースサーバ、又は、要求された処理を実行するアプリケーションサーバとして動作し、各サーバの状態情報は、該インタフェースサーバ又はアプリケーションサーバのいずれとして稼動中なのかを示す稼動状態情報をさらに含み、該インタフェースサーバとして稼動中のサーバの選択手段は、より負荷の低いアプリケーションサーバを前記処理要求の転送先として選択することを特徴とする付記２記載のサーバシステム。
（付記４）前記サーバシステムの対象サーバを前記インタフェースサーバから前記アプリケーションサーバに変更するとき、又は、該対象サーバを前記アプリケーションサーバから前記インタフェースサーバに変更するとき、該対象サーバの送信手段は、該インタフェースサーバ又はアプリケーションサーバのいずれであるかを示すサーバ種別情報を他サーバに送信し、該他サーバは、該対象サーバの稼動状態情報を更新することを特徴とする付記３記載のサーバシステム。
（付記５）前記サーバシステムにサーバが追加されたとき、追加されたサーバの送信手段は、自サーバの状態情報を前記複数のサーバに送信し、該追加されたサーバの受信手段は、該複数のサーバの状態情報を該複数のサーバから受信し、該追加されたサーバの記憶手段は、該複数のサーバの状態情報を記憶することを特徴とする付記１、２、又は３記載のサーバシステム。
（付記６）前記サーバシステムからサーバを削除するとき、削除されるサーバの送信手段は、自サーバのアドレス情報を他サーバに送信し、該他サーバは、該削除されるサーバの状態情報を削除することを特徴とする付記１、２、又は３記載のサーバシステム。
【図面の簡単な説明】
【００５６】
【図１】業務システムの構成図である。
【図２】サーバマッピングファイルを示す図である。
【図３】システム状態情報を示す図である。
【図４】業務利用情報を示す図である。
【図５】サーバ追加処理を示す図である。
【図６】運用管理起動完了通知メッセージを示す図である。
【図７】業務利用状態通知メッセージを示す図である。
【図８】サーバ起動完了通知メッセージを示す図である。
【図９】サーバ間の情報共有を示す図である。
【図１０】運用管理状態確認メッセージを示す図である。
【図１１】サーバ異常時の処理を示す図である。
【図１２】サーバ削除処理を示す図である。
【図１３】サーバ停止完了通知メッセージを示す図である。
【図１４】運用管理停止完了通知メッセージを示す図である。
【図１５】サーバ切替処理を示す図である。
【図１６】負荷分散処理を示す図である。
【図１７】第１のＡＰサーバチェックインメッセージを示す図である。
【図１８】第２のＡＰサーバチェックインメッセージを示す図である。
【図１９】情報処理装置の構成図である。
【図２０】プログラムおよびデータの提供方法を示す図である。
【符号の説明】
【００５７】
１０１  クライアント端末
１０２  ロードバランサ
１０３−１、１０３−２、１０３−３、１０３−４  Ｗｅｂサーバ
１０４−１、１０４−２、１０４−３、１０４−４  ＡＰサーバ
２０１−１、２０１−２  ＮａｍｅＳｐａｃｅタグ
２０２−１、２０２−２、２０２−３  Ｈｏｓｔタグ
２０３−１、２０３−２、２０３−３、２０３−４  ＳｅｒｖｅｒＴｙｐｅタグ
３０１  ネームスペース
３０２  ＩＰアドレス
３０３  Ｗｅｂサーバ稼動状態
３０４  ＡＰサーバ稼動状態
３０５  ＣＰＵ負荷
３０６  ＡＰサーバ利用者数
４０１  ネームスペース
４０２  システムコード
４０３  業務稼動状態
４０４  業務利用者数
５０１  オペレータ端末
５０２  追加サーバ
５０３、９０２、１２０２、１５０２  他サーバ
９０１  サーバ
１２０１  削除サーバ
１５０１  切替対象サーバ
１６０１  Ｗｅｂサーバプロセス
１６０２  運用管理プロセス
１６０３  ＡＰサーバプロセス
１９０１  ＣＰＵ
１９０２  メモリ
１９０３  入力装置
１９０４  出力装置
１９０５  外部記憶装置
１９０６  媒体駆動装置
１９０７  ネットワーク接続装置
１９０８  バス
２００１  外部装置
２００２  情報処理装置
２０１１  データベース
【図１】
0005200658.tif 000002
【図２】
0005200658.tif 000003
【図３】
0005200658.tif 000004
【図４】
0005200658.tif 000005
【図６】
0005200658.tif 000006
【図７】
0005200658.tif 000007
【図８】
0005200658.tif 000008
【図９】
0005200658.tif 000009
【図１０】
0005200658.tif 000010
【図１１】
0005200658.tif 000011
【図１３】
0005200658.tif 000012
【図１４】
0005200658.tif 000013
【図１７】
0005200658.tif 000014
【図１８】
0005200658.tif 000015
【図１９】
0005200658.tif 000016
【図２０】
0005200658.tif 000017
【図５】
0005200658.tif 000018
【図１２】
0005200658.tif 000019
【図１５】
0005200658.tif 000020
【図１６】
0005200658.tif 000021