(57)【特許請求の範囲】
【請求項１】
クライアント端末から名前解決要求を受信すると、ドメインネームシステム（ＤＮＳ）サーバ処理を行い、前記クライアント端末へＤＮＳサーバ処理結果を送信するＤＮＳサーバ装置と、前記クライアント端末に対しサービス提供を行う一つ以上のサービス提供サーバ装置と、を備えるネットワークシステムにおいて、
前記クライアント端末からＨＴＴＰアクセスを受信すると、サービスを提供できない状態にある旨を示すメッセージを応答するＳｏｒｒｙサーバ装置を備え、
前記ＤＮＳサーバ装置は、前記ＤＮＳサーバ処理として、
各々の前記サービス提供サーバ装置に対して、アクティブ、または、非アクティブ、または、スタンバイ状態の監視処理、及び負荷情報の収集処理、を繰り返し行い、
前記ＤＮＳサーバ処理において、
前記名前解決要求の対象の代表ドメイン名に対応する前記サービス提供サーバ装置のうち、アクティブ状態でかつ負荷が制限値以下となっている前記サービス提供サーバ装置がある場合は、いずれかの当該サービス提供サーバ装置のＩＰアドレスを前記クライアント端末に応答し、
アクティブ状態でかつ負荷が制限値以下のサービス提供サーバ装置がない場合で、スタンバイ状態になっている他の前記サービス提供サーバ装置がある場合は、前記他のサービス提供サーバ装置のプログラム起動処理を行い、前記プログラム起動処理に成功した場合は、プログラム起動した前記他のサービス提供サーバ装置のＩＰアドレスを前記クライアント端末に応答し、
スタンバイ状態になっている他の前記サービス提供サーバ装置がない場合と、他の前記サービス提供サーバ装置のプログラム起動に失敗した場合、は前記Ｓｏｒｒｙサーバに割り付けられたＩＰアドレスを前記クライアント端末に応答する
ことを特徴とするネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムであって、
前記ＤＮＳサーバ装置は、
前記サービス提供サーバ装置の代表ドメイン名ごとの情報を管理するサーバ情報管理テーブルを備え、
前記サービス提供サーバ装置のアクティブ、または、非アクティブ、または、スタンバイ状態の監視処理と負荷情報収集処理とを繰り返し行うサーバ監視処理を行い、
前記サーバ監視処理結果を前記サーバ情報管理テーブルに記録し、
前記サービス提供サーバ装置は、前記ＤＮＳサーバ装置の前記負荷情報の収集処理における負荷情報収集要求に対して、自サーバに設定されている仮想ＩＰアドレス毎に、前記クライアント端末から接続されているＴＣＰ接続の接続数を応答する負荷情報応答処理を行う
ことを特徴とするネットワークシステム。
【請求項３】
請求項２に記載のネットワークシステムであって、
前記サーバ情報管理テーブルは、エントリ毎に、ＩＰアドレスフィールドと、待受ポートフィールドと、アクティブ、または、非アクティブ、または、スタンバイ状態を示す死活状態フィールドと、を備え、
前記ＩＰアドレスフィールドは、前記サービス提供サーバ装置に仮想ＩＰアドレスとして割り付けられたＩＰアドレスを管理するフィールドであり、
前記待受ポートフィールドは、前記サービス提供サーバ装置が前記クライアント端末からのアクセスを待ち受けているＴＣＰもしくはＵＤＰポート番号を格納するフィールドであり、
前記死活状態フィールドは、前記サービス提供サーバ装置がアクティブ状態か、もしくは非アクティブ状態か、もしくはスタンバイ状態か、を示す情報を格納するフィールドであり、
前記ＤＮＳサーバ装置は、前記アクティブ、または、非アクティブ、または、スタンバイ状態の監視処理において、
前記サーバ情報管理テーブルの前記ＩＰアドレスフィールド及び前記待受ポートフィールド及び前記死活状態フィールドの情報に基づいて、前記死活状態フィールドの値が「アクティブ」もしくは「非アクティブ」となっている前記サービス提供サーバ装置の仮想ＩＰアドレス及びポート番号に対して死活状態要求を送信し、
タイマ監視しながら、前記サービス提供サーバ装置から、前記死活状態要求への応答待ち処理を行い、
タイマ時間内に、前記サービス提供サーバ装置から前記死活状態要求への応答があれば、前記サーバ情報管理テーブルの前記死活状態フィールドを「アクティブ」に更新し、前記応答がなければ、前記死活状態フィールドを「非アクティブ」に更新する
ことを特徴とするネットワークシステム。
【請求項４】
請求項３に記載のネットワークシステムであって、
前記サーバ情報管理テーブルは、エントリ毎に、ホスト名フィールドと、負荷情報フィールドと、を備え、
前記ホスト名フィールドは、前記サーバ監視処理において前記サービス提供サーバ装置を識別するためのホスト名情報を格納するフィールドであり、
前記負荷情報フィールドは、前記サービス提供サーバ装置の負荷を表す値として、前記クライアント端末から前記サービス提供サーバ装置に対して接続されているＴＣＰ接続の接続数を格納するフィールドであり、
前記ＤＮＳサーバ装置は、前記負荷情報収集処理において、
前記サーバ情報管理テーブルの前記ホスト名フィールド及び前記死活状態フィールドの情報に基づいて、前記死活状態フィールドの値が「アクティブ」となっている前記サービス提供サーバ装置に対して前記負荷情報収集要求を送信し、
タイマ監視しながら、前記サービス提供サーバ装置から、前記負荷情報収集要求への応答待ち処理を行い、
タイマ時間内に、前記サービス提供サーバ装置から前記負荷情報収集要求への応答があれば、前記サーバ情報管理テーブルの前記負荷情報フィールドを、前記応答に含まれているＨＴＴＰ接続数の値に更新し、前記応答がなければ、前記死活状態フィールドを「非アクティブ」に更新する
ことを特徴とするネットワークシステム。
【請求項５】
請求項４に記載のネットワークシステムであって、
前記サーバ情報管理テーブルは、エントリ毎に、代表ドメイン名フィールドと、最大接続制限値フィールドと、を備え、
前記代表ドメイン名フィールドは、前記クライアント端末にとってアクセス先となるホスト名を格納するフィールドであり、
前記最大接続制限値フィールドは、前記サービス提供サーバ装置の許容性能を表す値として、前記クライアント端末から前記サービス提供サーバ装置に対して接続を許容するＴＣＰもしくはＵＤＰ接続数を格納するフィールドである
ことを特徴とするネットワークシステム。
【請求項６】
請求項５に記載のネットワークシステムであって、
前記ＤＮＳサーバ装置は、
前記サービス提供サーバ装置に割り当てるためのＩＰアドレスの状態を管理し、
他の前記サービス提供サーバ装置の前記プログラム起動処理において、
使用可能なＩＰアドレスがあれば、スタンバイ状態にある前記サービス提供サーバ装置に、当該使用可能なＩＰアドレスを割り当てる
ことを特徴とするネットワークシステム。
【請求項７】
請求項６に記載のネットワークシステムであって、
前記サービス提供サーバ装置は、
前記プログラム起動後に、前記割り当てられたＩＰアドレスを、自装置に設定して、前記ＤＮＳサーバ装置へ起動確認応答を送信し、
前記ＤＮＳサーバ装置は、
予め定めた時間内の前記起動確認応答の有無により、前記プログラム起動処理の前記成功または前記失敗を判断する
ことを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント端末からのサービス要求に対し、安定したサービスを提供するネットワークシステムに関するものである。
【背景技術】
【０００２】
ＩＰネットワーク環境において、クライアント端末からサーバ装置への名前解決処理を行うためのドメインネームシステム（ＤＮＳ）において、複数台存在しているサーバ装置を仮想的に１台のサーバであるかのようにクライアント端末に見せかけ、更にサーバの負荷分散を行う、ＤＮＳラウンドロビンと呼ばれる技術が存在する。
【０００３】
さらに、ＤＮＳラウンドロビン技術を発展させた技術としては、ＤＮＳサーバが、サーバ装置の負荷状態を監視し、負荷の軽いサーバ装置のＩＰアドレスを応答するといった、米国特許第７２８４０５１号公報に記載のＤＮＳシステム技術がある（特許文献１）。
【０００４】
この公報には、「A relaying apparatus comprises a client terminal, many server terminals connected via network to the client terminal, a DNS responding device which accepts a DNS inquiry from the client terminal via a client-side DNS device, and one path load measuring device for each of the server terminals which measures a load in the communication path up to the client-side DNS device. The DNS responding device distributes a work load by routing a service request from the client terminal to any one of the server terminals based on the measurement result (i.e. route load). 」（abstract）と記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第７２８４０５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１が開示する技術は、クライアント端末からのサービス要求を複数台のサーバ装置に分散させる技術であり、クライアント端末からの名前解決要求時に、特に負荷の軽いサーバ装置のＩＰアドレスを応答することで、負荷を均等化させようとするものである。しかし、この技術では、サーバ装置が均等に高負荷になったり、そのために輻輳もしくはサービス不能な状態になった場合にも、サーバ装置にクライアント端末からのサービス要求が届いてしまい、ますます状況が悪化するという課題がある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本明細書においては、例えば、ドメインネームシステム（ＤＮＳ）サーバ装置と、一つ以上のサービス提供サーバ装置と、Ｓｏｒｒｙサーバ装置とがネットワークで接続され、クライアント端末に対し前記ネットワークを経由してサービス提供を行うネットワークシステムが開示される。
【０００８】
本明細書において開示されるＤＮＳサーバ装置は、クライアント端末に対して、ＤＮＳサービス、即ち名前解決処理サービスを提供する。また、繰り返し、例えば定期的に、サービス提供サーバ装置の死活状態（すなわち、アクティブ状態/非アクティブ状態）の監視、及び負荷情報の収集を行い、名前解決処理時に、収集した死活状態及び負荷情報に応じて、どのサービス提供サーバ装置のＩＰアドレスを応答するかを決定する、という特徴を備える。
【０００９】
なお、サービス提供サーバ装置は、クライアント端末に対し、ＷｅｂサービスやＰｒｏｘｙサービスを提供するものであり、Ｓｏｒｒｙサーバ装置は、クライアント端末からＨＴＴＰアクセスを受信すると、要求されたサービスを提供できない旨を示すメッセージを応答するものである。
【００１０】
本明細書において開示されるＤＮＳサーバ装置は、具体的には、名前解決処理の結果、該当するサービス提供サーバ装置がアクティブだが輻輳している場合、もしくは非アクティブの場合に、Ｓｏｒｒｙサーバ装置に割り付けられたＩＰアドレスを応答する手段を備えることを特徴とする。
【００１１】
また、本明細書において開示されるＤＮＳサーバ装置は、具体的には、あるサーバ装置がアクティブ状態だが輻輳している場合や、もしくは非アクティブ状態の場合に、スタンバイ状態になっている別のサーバ装置に対し、起動するためのサーバ起動命令と、サービス用のＩＰアドレスを送信する、サーバ遠隔起動処理を備えることを特徴とする。
【００１２】
さらに、ＤＮＳサーバ装置は、サービス提供サーバ装置の代表ドメイン名ごとの情報を管理するサーバ情報管理テーブルを備え、サービス提供サーバ装置の死活状態監視処理と負荷情報収集処理とを繰り返し行うサーバ監視処理を行い、サーバ監視処理結果をサーバ情報管理テーブルに記録するように構成しても良く、
サービス提供サーバ装置は、ＤＮＳサーバ装置からの負荷情報収集要求に対して、自サーバ装置に設定されている仮想ＩＰアドレス毎に、クライアント端末から接続されているＴＣＰ接続の接続数を応答する負荷情報応答処理を行うように構成しても良い。
【００１３】
ＤＮＳサーバ装置がＳｏｒｒｙサーバ装置のＩＰアドレスを応答することで、サーバ装置が輻輳もしくはサービス不能な状態の場合に、それ以上サーバ装置に、新規に接続してくるクライアント端末からのアクセスを抑制する。これによりサーバ装置の更なる輻輳を回避することができる。
【００１４】
また、ＤＮＳサーバ装置は、サーバ装置が輻輳もしくはサービス不能な状態の場合に、スタンバイ状態のサーバ装置に対し、新しくサーバ処理を開始させ、新規に接続してくるクライアント端末からのアクセスを新サーバ装置に振り分けることで、トラフィックが急上昇した場合でも、ユーザに対して、サービスを停止させずに処理を継続することができる。
【発明の効果】
【００１５】
サーバ装置が輻輳もしくはサービス不能な状態になった場合であっても、更なる輻輳を回避したり、サービスを停止させずに処理を継続したり、することが可能になる。
【図面の簡単な説明】
【００１６】
【図１】本発明のネットワークシステムの構成例を示す図である。
【図２】ＤＮＳサーバ装置２０のサーバ情報管理テーブル２３の構成例を示す図である。
【図３】ＤＮＳサーバ装置２０の死活状態監視処理を例示するフローチャートである。
【図４】ＤＮＳサーバ装置２０の負荷情報収集処理を例示するフローチャートである。
【図５】ＤＮＳサーバ装置２０のＤＮＳサーバ処理を例示するフローチャートである。
【図６】ＤＮＳサーバ装置２０のＤＮＳサーバ処理の別の例を例示するフローチャートである。
【図７】ＤＮＳサーバ装置２０のサーバ遠隔起動処理を例示するフローチャートである。
【図８】サーバ装置３０のサーバ起動処理を例示するフローチャートである。
【図９】ＤＮＳサーバ装置２０の死活状態監視処理の別の例を例示するフローチャートである。
【図１０】ＤＮＳサーバ装置２０の負荷情報収集処理の別の例を例示するフローチャートである。
【図１１】各サーバ装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下、実施例を、図面を用いて説明する。
【００１８】
図１は、本発明に関わるネットワークシステムの第１の構成例を示すブロック図である。
【００１９】
図１において、クライアント端末１０、ＤＮＳサーバ装置２０、一つ以上のサーバ装置３０、及びＳｏｒｒｙサーバ装置４０は、それぞれＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や無線ネットワークなどのネットワーク５０に接続されており、ネットワーク５０を経由して遠隔からの接続が可能な状態にある。
【００２０】
クライアント端末１０は、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などのＴＣＰ／ＩＰ上のプロトコルを用いてサーバ装置３０に接続し、サービス要求を行うユーザ端末である。クライアント端末１０は、サーバ装置３０にアクセスする前に、ＤＮＳサーバ装置２０に対して、ＤＮＳプロトコルを用いて、サーバ装置３０の代表ドメイン名の名前解決要求を送信する。そして、その応答としてサーバ装置３０のＩＰアドレスを受信する。
【００２１】
ＤＮＳサーバ装置２０は、名前解決サービスを提供するサーバ装置である。
【００２２】
ＤＮＳサーバ装置２０は、繰り返し（例えば定期的に）、サーバ装置３０の死活状態の監視、及び負荷情報の収集を行う。そして、サーバ装置３０の名前解決時に、サーバ装置３０の死活状態及び負荷情報に応じて、どのＩＰアドレスを応答するかを決定する。また、サーバ装置３０がアクティブだが輻輳している場合や、もしくは非アクティブの場合に、Ｓｏｒｒｙサーバ装置４０に割り付けられたＩＰアドレスを応答する。
【００２３】
Ｓｏｒｒｙサーバ装置４０は、クライアント端末１０からＨＴＴＰアクセスを受信すると、常に、システムが輻輳に陥っている旨をユーザに知らせるメッセージを応答するサーバ装置である。本処理は、Ｓｏｒｒｙサーバ処理部４１にて行う。前述のメッセージは、例えば「本サービスはただ今混雑しております。しばらく経ってから再度アクセスしてください。」というような文言である。
【００２４】
ＤＮＳサーバ装置２０がＳｏｒｒｙサーバ装置４０のＩＰアドレスを応答することで、サーバ装置３０が輻輳している場合に、それ以上サーバ装置３０に、新規に接続してくるクライアント端末１０からのアクセスを抑制する。
【００２５】
さらに、あるサーバ装置３０がアクティブ状態だが輻輳している場合や、もしくは非アクティブ状態の場合に、スタンバイ状態になっている別のサーバ装置３０に対し、新しくサーバを起動するためのサーバ起動命令と、サービス用のＩＰアドレスを送信する（サーバ遠隔起動処理）。これにより、高負荷時に動的にサーバ装置３０の台数を増やし、サーバ装置３０の１台当たりの負荷を軽減する。
【００２６】
ここで、アクティブ状態とは、サーバ装置を実現するコンピュータの電源がＯＮになっており、かつサーバ装置を実現するプログラムも起動していて、サービスを提供できる状態のことを指す。
【００２７】
また、非アクティブ状態とは、サーバ装置を実現するコンピュータの電源がＯＮになっていない状態か、もしくは、電源がＯＮになっていてサーバ装置を実現するプログラムも起動しているが、コンピュータの故障や、プログラムの不具合などの理由によりサービスを提供できない状態のことを指す。
【００２８】
また、スタンバイ状態とは、サーバ装置を実現するコンピュータは起動しているが、サーバ装置を実現するプログラムが起動しておらずサービスを提供できない状態のことを指す。例えば、あるサーバ装置を、障害時のための予備用のため、コンピュータの電源ＯＮの状態にしているが、あえてサーバ装置を実現するプログラムを起動させずにいるとき、そのサーバ装置はスタンバイ状態である。
【００２９】
ＤＮＳサーバ装置２０の構成を具体的に説明する。
【００３０】
ＤＮＳサーバ装置２０は、ＤＮＳサーバ処理部２１と、サーバ監視処理部２２と、サーバ情報管理テーブル２３と、フリーＩＰアドレスプール２４を備える。
【００３１】
ＤＮＳサーバ処理部２１は、クライアント端末１０から名前解決要求を受信すると、ＤＮＳサーバ処理を行う。サーバ監視処理部２２は、繰り返し（例えば定期的に）、サーバ装置３０の死活状態監視処理と負荷情報収集処理を行う。また、サーバ装置３０の遠隔起動処理を行う。
【００３２】
サーバ情報管理テーブル２３は、サーバ装置３０の代表ドメイン名ごとの情報を管理するテーブルである。
【００３３】
サーバ情報管理テーブル２３の構成について、図２を用いて説明する。サーバ情報管理テーブル２３は、エントリ毎に、代表ドメイン名２３１と、ホスト名２３２と、ＩＰアドレス２３３と、待受ポート２３４と、死活状態２３５と、負荷情報２３６と、最大接続制限値２３７とを管理する。
【００３４】
代表ドメイン名２３１は、クライアント端末１０にとってアクセス先となるホスト名である。ホスト名２３１は、サーバ監視処理部２２にとって、サーバ装置３０を識別するためのホスト名情報である。ＩＰアドレス２３３は、サーバ装置３０に割り付けられた仮想ＩＰアドレスである。仮想ＩＰアドレスの割り付けは、後述のサーバ遠隔起動処理でＤＮＳサーバ装置が行ってもよいし、システム運用者が手動で割り付けてもよい。
【００３５】
クライアント端末１０は、この仮想ＩＰアドレス宛てにアクセスする。待受ポート２３４は、サーバ装置３０のサーバプロセスがクライアント端末１０からのアクセスを待ち受けているＴＣＰポート番号である。サーバプロセスによっては、ＵＤＰポート番号の場合もある。
【００３６】
死活状態２３５は、サーバ装置３０がアクティブ（active）状態か、もしくは非アクティブ（inactive）状態か、もしくはスタンバイ（standby）状態か、のいずれかを示す情報である。ここで、ＤＮＳサーバ装置２０起動時の、サーバ情報管理テーブル２３における各エントリの死活状態２３５の初期状態は、設定ファイルで設定してもよい。例えば、設定ファイルにアクティブ状態のサーバ装置３０のリストと、スタンバイ状態のサーバ装置３０のリストを設定しておき、ＤＮＳサーバ装置２０の起動時に、その設定ファイルを読み込み、サーバ情報管理テーブル２３に反映しても良い。また、ＤＮＳサーバ装置２０は、死活情報２３５がアクティブ（active）もしくは非アクティブ（inactive）となっているエントリを、管理者等が手動でスタンバイ（standby）に変更するためのコマンドを提供しても良い。
【００３７】
負荷情報２３６は、サーバ装置３０の負荷を表す値である。ここでは、クライアント端末１０からサーバ装置３０に対して接続されているＴＣＰ接続の接続数としている。別の方法としては、ＣＰＵ使用率などの負荷情報を用いてもよい。最大接続制限値２３７は、サーバ装置３０の許容性能を表す値である。ここでは、クライアント端末１０からサーバ装置３０に対して接続を許容するＴＣＰ接続の（おおよその）接続数としている。この値は、設定値としてＤＮＳサーバ装置２０の起動時に与えられている。また、この値は条件に応じて動的に変化させても良い。
【００３８】
フリーＩＰアドレスプール２４は、サーバ遠隔起動処理にて、サーバ装置３０に仮想ＩＰアドレスとして割り付けるためのＩＰアドレスを管理するための領域である。ここでは、単純にＩＰアドレスをリスト形式にて管理している、メモリ上の領域とする。また、その管理、たとえば、増減管理、はシステム運用者がＩＰアドレスのリストを手動で設定するなどの方法に依ってもよいし、管理機能を備えた専用のシステム管理ソフトウェアで行っても良い。
【００３９】
また、フリーＩＰアドレスプール２４の各エントリは、使用状態フィールドを持つ。使用状態フィールドは、同じＩＰアドレスを複数のサーバ装置３０に重複して割り付けることを防ぐためのフィールドである。サーバ監視処理部２２は、使用状態フィールドに、「使用可能（available）」と「使用中（in use）」のどちらかの値を設定する。「使用可能（available）」という値は、あるＩＰアドレスがサーバ装置３０に未割り当ての場合に、そのＩＰアドレスのエントリの使用状態フィールドに設定される。「使用中（in use）」という値は、あるＩＰアドレスがサーバ装置３０に割り付けられた場合に、そのＩＰアドレスのエントリの使用状態フィールドに設定される。ＤＮＳサーバ装置２０は、起動直後に、フリーＩＰアドレスプール２４の全エントリの使用状態フィールドを「使用可能（available）」に初期化する。
【００４０】
クライアント端末１０と、ＤＮＳサーバ装置２０と、サーバ装置３０と、Ｓｏｒｒｙサーバ装置４０のハードウェア構成の例を図１１に示す。
【００４１】
これらのサーバ装置は、ＣＰＵ１００１、主記憶装置１００２、ＨＤＤ等の外部記憶装置１００５、ＣＤ-ＲＯＭやＤＶＤ-ＲＯＭ等の可搬性を有する記憶媒体１００８から情報を読み出す読取装置１００３、ディスプレイ、キーボードやマウスなどの入出力装置１００６、ネットワーク５０に接続するためのＮＩＣ（Network Interface Card）等の通信装置１００４、及びそれらの装置間を接続するバス等の内部通信線１００７を備えた一般的なコンピュータ１０００により実現できる。
【００４２】
例えば、サーバ情報管理テーブル２３は、主記憶装置１００２の一部の領域を用いて実現する。
【００４３】
また、ＤＮＳサーバ装置２０、サーバ装置３０、及びＳｏｒｒｙサーバ装置４０は、それぞれの外部記憶装置１００５に記憶されている各種プログラムを主記憶装置１００２にロードしてＣＰＵ１００１で実行し、通信装置１００４を用いてネットワーク５０に接続してクライアント端末１０や他サーバ装置とのネットワーク通信を行うことで、本実施例における各種処理部と、それらによる各種処理を実現する。
【００４４】
ここで、サーバ監視処理部２２が行う死活状態監視処理について、図３を用いて説明する。
【００４５】
まず、サーバ監視処理部２２は、サーバ情報管理テーブル２３のＩＰアドレス２３３及び待受ポート２３４及び死活状態２３５の情報に基づいて、死活状態２３５が「アクティブ（active）」もしくは「非アクティブ（inactive）」となっている各サーバ装置３０の仮想ＩＰアドレス及びポート番号に対して死活状態要求を送信する（ステップＳ０１）。この要求は、例えば、リクエスト行が”GET /health-check.cgi HTTP/1.1”で始まるような、専用のＨＴＴＰ要求メッセージであっても良いし、ダミーのサービス要求であっても良い。
【００４６】
次に、サーバ装置３０からの死活状態応答待ち処理を行う（ステップＳ０２）。この時、死活状態応答待ちタイマの設定も行う。
【００４７】
そして死活状態応答待ちタイマ時間内に死活状態要求に対する応答があるかどうかチェックする（ステップＳ０３）。死活状態要求に対する応答は、例えば、アクティブ状態であれば、レスポンスステータスが”HTTP/1.1 200 OK”となっているようなＨＴＴＰ応答である。また、非アクティブ状態であれば、それ以外のＨＴＴＰエラー応答や無応答である。サーバ装置３０から死活状態要求に対する応答があれば、サーバ情報管理テーブル２３の死活状態２３５を「アクティブ（active）」に更新する（ステップＳ０４）。逆に、死活状態の応答がなければ、サーバ情報管理テーブル２３の死活状態２３５を「非アクティブ（inactive）」に更新する（ステップＳ０５）。
【００４８】
次に、サーバ監視処理部２２が行う負荷情報収集処理について、図４を用いて説明する。
【００４９】
まず、サーバ監視処理部２２は、サーバ情報管理テーブル２３のホスト名２３２及び死活状態２３５の情報に基づいて、死活状態２３５が「アクティブ（active）」となっている各サーバ装置３０に対して負荷情報要求を送信する（ステップＳ１１）。この要求は、例えば、独自プロトコルによる要求メッセージである。次に、サーバ装置３０からの負荷情報応答待ち処理を行う（ステップＳ１２）。この時、負荷情報応答待ちタイマの設定も行う。
【００５０】
そして負荷情報応答待ちタイマ時間内に負荷情報の応答があるかどうかチェックする（ステップＳ１３）。負荷情報の応答は、例えば、独自プロトコルによる応答メッセージであり、サーバ装置３０が受信しているＨＴＴＰ接続数の数などが記載されている。サーバ装置３０から負荷情報の応答があれば、サーバ情報管理テーブル２３の負荷情報２３６を、応答メッセージに記載されていたＨＴＴＰ接続数の値に更新する（ステップＳ１４）。逆に、負荷状態の応答がなければ、サーバ情報管理テーブル２３の負荷情報２３６を「非アクティブ（inactive）」に更新し、負荷情報２３６を”0”に更新する（ステップＳ１５）。
【００５１】
次に、ＤＮＳサーバ処理部２１が行うＤＮＳサーバ処理の一例について、図５を用いて説明する。
【００５２】
まず、クライアント端末１０から名前解決要求を受信するまで待機する（ステップＳ２１）。
【００５３】
名前解決要求を受信すると、名前解決要求対象の代表ドメイン名を検索キーとしてサーバ情報管理テーブル２３を検索し、代表ドメイン名２３１が名前解決要求対象の代表ドメイン名と一致するエントリ情報を取得する（ステップＳ２２）。
【００５４】
ここで、処理の一例として、サーバ情報管理テーブル２３の先頭エントリから末尾エントリに向かって、一つずつ順番にエントリ情報を取得してもよい。
【００５５】
ステップＳ２２でエントリ情報が取得できたならばステップＳ２４に進む。取得できなければステップＳ２７に進む（ステップＳ２３）。ここで、取得できない場合とは、即ち、全エントリの検索が終了した場合である。
【００５６】
取得したエントリ情報の死活状態２３５が「アクティブ（active）」かどうかチェックする（ステップＳ２４）。「アクティブ（active）」であればステップＳ２５に進む。それ以外であればステップＳ２２に戻り、次のエントリ情報を取得する。
【００５７】
ステップＳ２５において、負荷情報２３６の値が最大接続制限値２３７以下かどうかチェックする。以下であればステップＳ２６に進む。そうでなければステップＳ２２に戻り、次のエントリ情報を取得する。
【００５８】
ステップＳ２６において、ＤＮＳサーバ処理部２１は、当該エントリのＩＰアドレス２３３の値をクライアント端末１０に応答し、ＤＮＳサーバ処理を終了する。
【００５９】
ステップＳ２３で、エントリ情報が取得できなければ、Ｓｏｒｒｙサーバ装置４０のＩＰアドレスを応答する（ステップＳ２７）。ここで、Ｓｏｒｒｙサーバ装置４０のＩＰアドレスを、ＤＮＳサーバ装置２０の外部記憶装置１００５の中の設定ファイルに予め記述しておいて、ＤＮＳサーバ装置２０は起動時にその設定ファイルを読み取って主記憶装置１００２に保持しておき、ステップＳ２７において、そのＩＰアドレスを応答しても良い。
【００６０】
次に、ＤＮＳサーバ処理部２１が行うＤＮＳサーバ処理の別の一例について、図６を用いて説明する。この例では、ステップＳ２１ないしステップＳ２７の処理内容については、図５での例と同じである。
【００６１】
ここで、ステップＳ２３において、エントリ情報が取得できたならばステップＳ２４に進み、図５と同様の処理を行う。取得できなければステップＳ３１に進み、ステップＳ３１〜Ｓ３３において、死活状態が「スタンバイ（standby）」のエントリを探す。具体的な処理は、以下の通り。
【００６２】
サーバ情報管理テーブル２３から任意のエントリ情報を取得する（ステップＳ３１）。ここで、処理の一例として、サーバ情報管理テーブル２３の先頭エントリから末尾エントリに向かって、一つずつ順番にエントリ情報を取得してもよい。
【００６３】
次に、ステップＳ３１でエントリ情報が取得できたならばステップＳ３３に進む。取得できなければステップＳ２７に進む（ステップＳ３２）。ここで、取得できない場合とは、即ち、全エントリの検索が終了したが、死活状態が「スタンバイ（standby）」のエントリが無かった場合である。
【００６４】
取得したエントリ情報の死活状態２３５が「スタンバイ（standby）」かどうかをチェックする（ステップＳ３３）。「スタンバイ（standby）」であればステップＳ３４に進む。それ以外であればステップＳ３１に戻り、次のエントリ情報を取得する。
【００６５】
ステップＳ３４では、サーバ遠隔起動処理を行う（詳細な処理内容は後述する）。
【００６６】
ステップＳ３４において、サーバ遠隔起動処理が成功したならばステップＳ２６に進む。失敗したならばステップＳ２７に進む（ステップＳ３５）。
【００６７】
ここで、ＤＮＳサーバ装置２０のサーバ監視処理部２２が行うステップＳ３４のサーバ遠隔起動処理の処理内容の一例について、図７を用いて説明する。
【００６８】
当該サーバ遠隔起動処理は、サーバ監視処理部２２が、サーバ情報管理テーブル２３の死活状態２３５の情報が「スタンバイ（standby）」になっているサーバ装置３０のいずれかに対し、新しくサーバ装置を起動する命令を発行する処理である。
【００６９】
まず、サーバ監視処理部２２は、フリーＩＰアドレスプール２４に、使用状態フィールドの値が「使用可能（available）」となっているＩＰアドレスが１個以上プールされているかをチェックする（ステップＳ４１）。一つ以上の「使用可能（available）」状態のＩＰアドレスがあれば（Ｓ４１でＹ）、サーバ情報管理テーブル２３の死活状態２３５の情報が「スタンバイ（standby）」になっているいずれかのサーバ装置３０のサーバ起動処理部３３に対し、サーバ装置３０のサーバ起動処理部３３に対し、サーバ起動命令およびＩＰアドレスの値を送信し、フリーＩＰアドレスプール２４における、送信したＩＰアドレスのエントリの使用状態フィールドを「使用中（in use）」に変更する（ステップＳ４２）。
【００７０】
なお、スタンバイ状態のサーバ装置３０が複数ある場合のサーバ装置３０の選択方法の一例として、サーバ情報管理テーブル２３において、死活状態２３５の情報が「スタンバイ（standby）」となっているエントリのうち、テーブルの先頭に最も近いエントリを選択する、という方法でもよい。
【００７１】
その後、サーバ装置３０に対する起動確認応答待ち処理を行う（ステップＳ４３）。この時、起動確認応答待ちタイマの設定も行う。そして、起動確認応答待ちタイマ時間内に起動確認応答があるかどうかチェックする（ステップＳ４４）。
【００７２】
起動確認応答があれば（Ｓ４４でＹ）処理成功とみなし、死活状態２３５の情報を「スタンバイ（standby）」から「アクティブ（active）」に変更し、本処理を終了する（ステップＳ４５）。また、ステップＳ４１でＩＰアドレスが無かった場合（Ｓ４１でＮ）や、ステップＳ４４でタイマ時間内に起動確認応答が無かった場合（Ｓ４４でＮ）は処理失敗とみなし、システムログにエラーメッセージを出力し、本処理を終了する（ステップＳ４６）。
【００７３】
次に、サーバ装置３０は、クライアント端末１０に対し、ＷｅｂサービスやＰｒｏｘｙサービスを提供するサーバプロセスが稼働する装置である。サーバ装置３０は、ＨＴＴＰサーバ処理部３１と、負荷情報応答処理部３２と、サーバ起動処理部３３とを備える。ＨＴＴＰサーバ処理部３１は、クライアント端末１０からＨＴＴＰ要求を受信すると、ＨＴＴＰサーバ処理を行う。負荷情報応答処理部３２は、ＤＮＳサーバ装置２０のサーバ監視処理部２２からの負荷情報収集要求に対して、仮想ＩＰアドレス毎に、クライアント端末１０から接続されているＴＣＰ接続の接続数を応答する。別の方法としては、サーバ装置３０のＣＰＵ使用率などの負荷情報を用いてもよい。サーバ起動処理部３３は、ＤＮＳサーバ装置２０からのサーバ起動命令に対し、サーバ起動処理を行う。
【００７４】
ここで、サーバ装置３０のサーバ起動処理部３３が行うサーバ起動処理について、図８を用いて説明する。
【００７５】
まず、サーバ起動処理部３３は、ＤＮＳサーバ装置２０のサーバ監視処理部２２から、ステップＳ３２にてサーバ起動命令およびＩＰアドレスが送信されるのを待ち受ける（ステップＳ５１）。受信すると、ＨＴＴＰサーバ処理部３１を備えるサーバアプリケーションを起動する（ステップＳ５２）。ここで、起動するサーバは、仮想マシン上で動作する仮想サーバでも良い。そして、サーバ起動後、ステップＳ５１で受信したＩＰアドレスを、仮想ＩＰアドレスとしてネットワークインタフェースに設定する（ステップＳ５３）。最後に、ＤＮＳサーバ装置２０に起動の確認応答を送信する（ステップＳ５４）。
【００７６】
次に、サーバ監視処理部２２が行う死活状態監視処理の別の一例について、図９を用いて説明する。この例では、ステップＳ０１ないしステップＳ０５の処理内容については、図３での例と同じである。また、ステップＳ３１ないしステップＳ３４の処理内容については、図６での例と同じである。
【００７７】
ステップＳ０５で、死活状態２３５を「非アクティブ（inactive）」に変更後、サーバ遠隔起動処理を行い、スタンバイサーバを起動する。具体的には、ステップＳ０５の処理を行った後、ステップＳ３１の処理を行い、ステップＳ３２に進み、エントリ情報を取得できれば、ステップＳ３４のサーバ遠隔起動処理を行い、その後、死活状態監視処理を終了する。ステップＳ３２において、エントリ情報を取得できなければ、単に死活状態監視処理を終了する。
【００７８】
次に、サーバ監視処理部２２が行う負荷情報収集処理の別の一例について、図１０を用いて説明する。この例では、ステップＳ１１ないしステップＳ１５の処理内容については、図４での例と同じである。また、ステップＳ３１ないしステップＳ３４の処理内容については、図６での例と同じである。
【００７９】
ステップＳ１５で、死活状態２３５を「非アクティブ（inactive）」に変更後、サーバ遠隔起動処理を行い、スタンバイサーバを起動する。具体的には、ステップＳ１５の処理を行った後、ステップＳ３１の処理を行い、ステップＳ３２に進み、エントリ情報を取得できれば、ステップＳ３４のサーバ遠隔起動処理を行い、その後、負荷情報収集処理を終了する。ステップＳ３２において、エントリ情報を取得できなければ、単に負荷情報収集処理を終了する。
【００８０】
なお、本発明は、上記実施形態に限定されず、種々の変形や応用が可能である。
【符号の説明】
【００８１】
１０：クライアント端末
２０：ＤＮＳサーバ装置
２１：ＤＮＳサーバ処理部
２２：サーバ監視処理部
２３：サーバ情報管理テーブル
２４：フリーＩＰアドレスプール
３０：サーバ装置
３１：ＨＴＴＰサーバ処理部
３２：負荷情報応答処理部
３３：サーバ起動処理部
４０：Ｓｏｒｒｙサーバ装置
４１：Ｓｏｒｒｙサーバ処理部
５０：ネットワーク
２３１：代表ドメイン名
２３２：ホスト名
２３３：ＩＰアドレス
２３４：待受ポート
２３５：死活状態
２３６：負荷情報
２３７：最大接続制限値
１０００：コンピュータ
１００１：ＣＰＵ
１００２：主記憶装置
１００３：読取装置
１００４：通信装置
１００５：外部記憶装置
１００６：入出力装置
１００７：内部通信線
１００８：可搬記憶媒体
【図１】
0005557689.tif 000002
【図２】
0005557689.tif 000003
【図３】
0005557689.tif 000004
【図４】
0005557689.tif 000005
【図５】
0005557689.tif 000006
【図６】
0005557689.tif 000007
【図７】
0005557689.tif 000008
【図８】
0005557689.tif 000009
【図９】
0005557689.tif 000010
【図１０】
0005557689.tif 000011
【図１１】
0005557689.tif 000012