"ユーザ端末からの要求に応答してサービスを提供する複数のサーバが相互に連携し、負荷の高いサーバを他のサーバが援助するサーバ連携互助システムにおいて、各サーバが、他のサーバへ援助を要請する援助要請機能部および他のサーバへ援助を提供する援助提供機能部を具備し、前記援助要請機能部が、サービス要求の処理負荷を判定する負荷判定手段と処理負荷が所定の閾値を超えると他のサーバへ援助を要請する援助要請手段と、前記援助要請を受け容れたサーバへサービス要求を転送する転送手段とを具備し、前記援助提供機能部が、他のサーバから送信された援助要請を受け付ける援助要請受付手段と、援助要請したサーバの動作をエミュレータで模擬する動作模擬手段と、援助要請したサーバから転送されたサービス要求について、前記エミュレータに基づいて再アクセスまでの待機時間を算出する手段と、前記待機時間の記述されたアクセスパスを、前記サービス要求を送信したユーザ端末へ送信するアクセスパス送信手段とを具備したことを特徴とするサーバ連携互助システム。前記援助要請に、当該援助を要請するサーバのパラメータが登録され、前記動作模擬手段は、前記パラメータに基づいて、前記援助要請したサーバの動作を模擬することを特徴とする請求項1に記載のサーバ連携互助システム。前記援助要請機能部が、援助を要請できるサーバのリストを有することを特徴とする請求項1に記載のサーバ連携互助システム。前記援助要請受付手段は、前記援助要請に対して、自サーバの負荷状態に基づいて援助提供が可能であるか否かを判定し、判定結果を返信することを特徴とする請求項1に記載のサーバ連携互助システム。前記援助要請手段は、前記援助要請に対して複数のサーバから援助提供が可能である旨の応答を受信すると、各サーバのスペックおよび過去の援助実績の少なくとも一方に基づいて、一つのサーバを援助提供サーバとして選択することを特徴とする請求項4に記載のサーバ連携互助システム。前記援助要請に登録されるパラメータが、援助要請するサーバの最大同時接続セッション数を含むことを特徴とする請求項2に記載のサーバ連携互助システム。前記援助要請に登録されるパラメータが、援助要請するサーバにおける平均サービス時間を含むことを特徴とする請求項2に記載のサーバ連携互助システム。前記援助要請に登録されるパラメータが、援助要請するサーバにおけるサービス時間の確率密度分布を含むことを特徴とする請求項2に記載のサーバ連携互助システム。ユーザ端末からの要求に応答してサービスを提供する複数のサーバが相互に連携し、負荷の高いサーバを他のサーバが援助するサーバ連携互助システムのサーバにおいて、他のサーバへ援助を要請する援助要請機能部および他のサーバへ援助を提供する援助提供機能部を具備し、前記援助要請機能部が、サービス要求の処理負荷を判定する負荷判定手段と処理負荷が所定の閾値を超えると他のサーバへ援助を要請する援助要請手段と、前記援助要請を受け容れたサーバへサービス要求を転送する転送手段とを具備し、前記援助提供機能部が、他のサーバから送信された援助要請を受け付ける援助要請受付手段と、援助要請したサーバの動作をエミュレータで模擬する動作模擬手段と、援助要請したサーバから転送されたサービス要求について、前記エミュレータに基づいて再アクセスまでの待機時間を算出する手段と、前記待機時間の記述されたアクセスパスを、前記サービス要求を送信したユーザ端末へ送信するアクセスパス送信手段とを具備したことを特徴とするサーバ連携互助システムのサーバ。ユーザ端末からの要求に応答してサービスを提供する複数のサーバが相互に連携し、負荷の高いサーバを他のサーバが援助するサーバ連携互助システムの各サーバで実行されるサーバ連携互助プログラムにおいて、各サーバに、他のサーバへ援助を要請する援助要請機能部および他のサーバへ援助を提供する援助提供機能部を提供し、前記援助要請機能部には、サービス要求の処理負荷を判定する処理と、処理負荷が所定の閾値を超えると他のサーバへ援助を要請する処理と、前記援助要請を受け容れたサーバへサービス要求を転送する処理とを実行させ、前記援助提供機能部には、他のサーバから送信された援助要請を受け付ける処理と、援助要請したサーバの動作をエミュレータで模擬する処理と、援助要請したサーバから転送されたサービス要求について、前記エミュレータに基づいて再アクセスまでの待機時間を算出する処理と、前記待機時間の記述されたアクセスパスを、前記サービス要求を送信したユーザ端末へ送信する処理とを実行させることを特徴とするサーバ連携互助プログラム。APSは、ユーザ端末からのリクエストに対して待ち時間を算定し、この待ち時間の記載された整理券を発行して各ユーザ端末へ返信するだけなので、その処理はエンドサーバでのサービス提供に較べて低負荷であり、相当数のリクエストを処理できる。しかしながら、想定を超えるようなリクエストが集中してしまうと、APS自体が過負荷状態となってボトルネックとなる可能性がある。本発明の目的は、上記した従来技術の課題を解決し、ユーザ端末からの要求に応答してサービスを提供する複数のサーバが相互に連携し、負荷の高いサーバを他のサーバが援助するサーバ連携互助システムならびにそのサーバおよびサーバ連携互助プログラムを提供することにある。上記の目的を達成するために、本発明は、ユーザ端末からの要求に応答してサービスを提供する複数のサーバが相互に連携し、負荷の高いサーバを他のサーバが援助するサーバ連携互助システムならびにそのサーバおよびサーバ連携互助プログラムにおいて、以下のような要件を具備した点に特徴がある。各サーバが、他のサーバへ援助を要請する援助要請機能部および他のサーバへ援助を提供する援助提供機能部を具備すること。援助要請機能部が、サービス要求の処理負荷を判定する負荷判定手段と、処理負荷が高くなると他のサーバへ援助を要請する援助要請手段と、援助要請を受け容れたサーバへサービス要求を転送する転送手段とを具備すること。援助提供機能部が、他のサーバから送信された援助要請を受け付ける援助要請受付手段と、援助要請したサーバの動作をエミュレータで模擬する動作模擬手段と、援助要請したサーバから転送されたサービス要求について、エミュレータに基づいて再アクセスまでの待機時間を算出する手段と、待機時間の記述されたアクセスパスを、サービス要求を送信したユーザ端末へ送信するアクセスパス送信手段とを具備すること。本発明によれば、以下のような効果が達成される。各サーバの輻輳状況を一元的に管理するためのサーバを別途に設けることなく、サーバ同士で自律的な輻輳制御が可能になる。能力に余裕のあるサーバが余裕の無いサーバを援助するので、限られたサーバ資源の有効利用が可能になる。以下、図面を参照して本発明の実施の形態について詳細に説明する。図1は、本発明のサーバ連携互助システムが適用されるサービス提供システムのネットワーク構成を示したブロック図であり、ここでは、ユーザ端末MNからエンドサーバESサービス提供サーバへコンテンツ配信のサービスを要求する場合を例にして説明する。携帯電話、PDAあるいはコンピュータなどのユーザ端末MNは、インターネット図示せずを経由してサーバ連携互助ネットワークに接続される。サーバ連携互助ネットワークは、ユーザ端末MNからのサービス要求に応答して、音楽や映像などのコンテンツを配信する複数のエンドサーバESにより構成され、各エンドサーバESは、それぞれ異なるサービスを提供する。各エンドサーバESは、ソフト配信サーバから専用ソフトウェアサーバ連携互助プログラムを取得して自身にインストールし、これを設定、起動することによりサーバ連携互助ネットワークに参加できる。各エンドサーバESは、同一の企業団体により運営されていても良いし、それぞれ異なる企業団体により運営されていても良い。本実施形態では、例えばエンドサーバESiへのサービス要求が集中して過負荷状態に陥ると、当該エンドサーバESiが他のエンドサーバESへ援助を依頼する。エンドサーバESjが援助要請を受け容れると、エンドサーバESi,ESj間には互助関係が確立され、これ以降、エンドサーバESiは援助要請サーバとして動作し、エンドサーバESjは援助提供サーバとして動作する。以上のようにして互助関係が確立されると、援助要請サーバESiは、ユーザ端末から受信したサービス要求をエンドサーバESjへ転送する。援助提供サーバESjは、援助要請サーバESiの処理状況を模擬するエミュレータを構築し、ユーザ端末から受信したサービス要求を処理してサービスを提供する通常処理を継続しながら、前記援助要請サーバESiから転送されたサービス要求の送信元MNに対して、前記エミュレータに基づいて算出された待機時間Tiの記述されたアクセスパス整理券を発行する。このアクセスパスを受信したユーザ端末MNは、前記待機時間Tiの経過後に前記援助要請サーバESiへの再アクセスが許可される。図2は、前記サーバ連携互助ネットワークに参加するエンドサーバESの主要部の構成を示した機能ブロック図である。本実施形態では、各エンドサーバESが固有のコンテンツファイルを具備し、サービス要求に応答してコンテンツファイルを送信するほか、前記専用ソフトウェアサーバ連携互助プログラムをインストールすることで、自身が過負荷状態となったときに他のサーバへ援助を要請して支援を受ける援助要請サーバ、他のサーバからの援助要請を受け容れて当該サーバへ援助を提供する援助提供サーバのいずれかとしても同時に動作できる。サービス要求処理部10は、ユーザ端末から送信されたサービス要求を受信して受け付け、要求されたコンテンツファイルを提供するなどの通常のサービスを実行する。援助要請機能部20は、前記援助要請サーバとしての機能を実行する。援助提供機能部30は、前記援助提供サーバとしての機能を実行する前記援助要請機能部20において、負荷判定部201は、サービス要求の処理負荷を所定の閾値と比較し、処理負荷が閾値を超えると過負荷状態と判定する。援助要請部202は、前記処理負荷が閾値を超えて過負荷状態になると、他のエンドサーバESに対して援助を要請する。サービス要求転送部203は、前記援助要請を受け容れて援助提供サーバとして動作するエンドサーバESに対してサービス要求を転送する。前記援助提供機能部30において、援助要請受付部301は、過負荷状態に陥ったエンドサーバESから送信された援助要請を受け付けて、この援助要請を受け容れるか否かを判定し、その判定結果を応答する。動作模擬部302は、援助要請サーバの動作を模擬するエミュレータを構築し、このエミュレータ上で援助要請サーバの動作を模擬する。待機時間算出部303は、前記援助要請サーバから転送されたサービス要求について、前記エミュレータに基づいて再アクセスまでの待機時間Tを算出する。アクセスパス送信部304は、前記待機時間Tの記述されたアクセスパスを、前記サービス要求を送信したユーザ端末へ送信する。図3は、アクセス集中により過負荷状態に陥って援助を要請するエンドサーバ援助要請サーバ、および援助要請サーバへ援助を提供するエンドサーバ援助提供サーバが、協調して互助関係を確立する動作を示したシーケンスフローであり、図4は、各エンドサーバの動作をそれぞれ示したフローチャートである。エンドサーバESiにおいて、前記負荷判定部201により、サービス要求のアクセスが集中して過負荷状態となったことがステップS1で検知されると、ステップS2では、援助要請メッセージが、連携互助ネットワーク上の他の全てのエンドサーバES、あるいはエンドサーバESiとのネットワーク距離やサーバスペックなどが所定の条件を満足する一部のエンドサーバESへ、前記援助要請部202により送信される。前記援助要請メッセージには、図5に一例を示したように、エンドサーバESiの最大同時接続セッション数Smaxiおよびサービス時間の確率密度分布Pi、ならびに確率密度分布Piの具体的なパラメータである平均サービス時間diおよびサービス時間の標準偏差sdiなどが含まれる。また、前記援助要請の可能なエンドサーバESは、図6に一例を示したように、そのIPアドレスおよびポート番号のペアがリスト形式で予め取得されているものとする。前記他のエンドサーバESでは、ステップS51において前記援助要請メッセージが受信されるとステップS52へ進む。ステップS52では、前記援助要請受付部301により、自身の現時点での同時接続セッション数やCPU使用率などに基づいて、自身のサービス提供に支障をきたすことなく無く援助提供が可能であるか否かが判定される。この判定結果は、ステップS53において援助応答メッセージに記述されてエンドサーバESiへ返信される。エンドサーバESiでは、前記援助応答がステップS3で受信されるとステップS4へ進み、援助要請を受け容れ可能なエンドサーバESが、前記援助要請部202により援助提供サーバとして選択される。なお、援助要請を受け容れ可能なエンドサーバESが複数ある場合には、相手サーバへ要求するスペックや過去の実績などを考慮していずれか一つのエンドサーバESが選択される。すなわち、スペックのより高いサーバ、より多く援助を受け入れた実績のあるサーバほど優先的に選択される。ここでは、エンドサーバESjが援助提供サーバとして選択されたものとして説明を続ける。ステップS5では、前記選択されたエンドサーバESjへ援助依頼メッセージが送信される。この援助依頼メッセージには、図7に一例を示したように、エンドサーバESiの現時点での同時接続セッション数Siおよびサービス提供URLが記述される。なお、前記ステップS2で通知されるとしたサービス時間の確率密度分布Piならびにその具体的なパラメータである平均サービス時間diおよびサービス時間の標準偏差sdiについては、このタイミングで通知されるようにしても良い。前記エンドサーバESjは、ステップS54において前記援助依頼メッセージを受信するとステップS55へ進み、前記援助要請受付部301により援助承諾メッセージが返信される。この援助承諾メッセージが、ステップS6において前記エンドサーバESiにより受信されると、エンドサーバESi,ESj間には互助関係が確立され、これ以降、エンドサーバESiは援助要請サーバとして動作し、エンドサーバESjは援助提供サーバとして動作することになる。援助提供サーバESjでは、ステップS56において、援助要請サーバESiの動作を模擬するエミュレータが、前記動作模擬部302により構築される。エミュレータの具体的な構築方法については後述する。援助要請サーバESiは、ステップS7において、ユーザ端末からサービス要求メッセージ受信するとステップS8へ進む。ステップS8では、前記サービス要求メッセージが前記サービス要求転送部203により援助提供サーバESjへ転送される。援助提供サーバESjは、ステップS57において前記メッセージを受信するとステップS58へ進む。ステップS58では、ユーザ端末に要求する待機時間Tiが、前記待機時間算出部303により算出される。この待機時間Tiの具体的な算出方法についても後述する。ステップS59では、前記エミュレータが更新される。ステップS60では、前記待機時間Tiの算出結果および前記サービス提供URLの記述されたアクセスパスが、前記アクセスパス送信部304により前記ユーザ端末MNへ送信される。このような互助関係に基づく援助処理は、ステップS61において互助関係の解除条件が成立したと判定されるまで繰り返される。その後、援助提供サーバESjへのサービス要求のアクセスが増えて、その負荷レベルが閾値を超えるか、あるいは援助要請サーバESiの負荷レベルが十分に低下したことが、前記エミュレータによる推定結果から判明するなどし、ステップS61において、互助関係の解除条件が成立したと判定されるとステップS62へ進む。ステップS62では、援助終了メッセージが援助要請サーバESiへ送信される。援助要請サーバESiは、ステップS9において、前記援助終了メッセージが受信されるとステップS10へ進み、援助提供サーバESjとの互助関係を解除してステップS1へ戻る。したがって、この時点でエンドサーバESiの負荷が依然として解消されていなければ上記の各処理が繰り返され、エンドサーバESiは他のエンドサーバとの間に互助関係を確立して再び援助要請サーバESiとして動作することになる。次いで、前記エミュレータの構築方法および当該エミュレータを利用した待機時間Tiの算出方法について説明する。図8は、援助提供サーバESjに構築されるエミュレータの構成を模式的に表現した図であり、援助要請サーバESiから通知された最大同時接続数がSmaxiであれば、Smaxi個の仮想FIFOキューFQikが用意され、そのうち、援助要請された時点での同時接続数Si分の仮想FIFOキューFQi1~FQiSiにのみキューが蓄積される。各仮想FIFOキューFQi1~FQiSiに蓄積されるキュー値キュー長は、援助要請サーバES1から通知されたサービス時間に基づいて決定される。ここでは、時刻tにおいてエンドサーバESiから転送されたサービス要求を受け付ける直前および直後の各仮想FIFOキューFQikのキュー値を、それぞれFQik-,FQikと表現する。また、援助要請サーバESiが一つのサービス要求を処理するのに要する時間サービス時間は、前記平均サービス時間diであるものとする。時刻tnで援助要請サーバESiからサービス要求が転送されると、援助提供サーバESjでは、援助要請サーバESiに関する全ての仮想FIFOキューFQikのキュー値FQikが次式に基づいて更新される。FQik-=FQik-/di...次に、全ての仮想FIFOキューFQikから、そのキュー値FQik-が最小のものが、次式に基づいて選択される。K=argmink-...上式により選択されたKで識別される仮想FIFOキューFQiKのキュー値FQiK-に基づいて、次式により待機時間Tinが算出され、サービス要求の送信元へ通知される。Tin=FQik-×di...上記の待機時間Tinを算出した後、各仮想FIFOキューのキュー値が次式、により更新される。FQik=FQik-bn、ifkK...FQik=FQik-otherwise...前記bnは、要求されたサービスまたはコンテンツをユーザへ提供するために必要なサービス時間に応じて設定され重み値である。例えば、要求されたサービスの提供に要するサービス時間が平均サービス時間diと同等と推定されればbn=1とされ、平均サービス時間diよりも長くなると予測されればbn>1とされ、平均サービス時間diよりも短くなると予測されればbn<1とされる。ただし、一般には各エンドサーバESでのサービス時間を事前に正確に知ることはできないので、援助要請サーバESiのサービス時間に関する前記確率密度分布Piに基づく乱数を発生させ、その乱数値Drandを今回のサービス時間diと見なし、次式によりbnを定めるようにしても良い。bn=Drand/di援助提供サーバESjは、援助要請サーバESiからサービス要求を転送されるごとに上記の各処理を繰り返すことで、援助要請サーバESiにおけるサービス要求の処理状況を仮想的に模擬でき、かつ援助要請サーバESiにおける同時接続セッション数が所望の数以下となるように、前記待機時間Tiを各ユーザ端末に通知することが可能になる。"