(57)【要約】【課題】  クライアントのネットワーク特性が多様な状況下で、サーバのスループットを維持し、かつサーバがダウンしないようにする。さらに、アクセス集中時に、クライアントが不確定な長時間サービス待ちの状態にならないようなサービスの提供を可能にする。【解決手段】  クライアントからサーバへの要求を、トラフィック制御装置を経由して行い、トラフィック制御装置は、クライアントからの要求を制御する手段とクライアントのデータ受信能力を判定する手段とサーバに対する同時接続数を制御する手段を持つ。これにより、サーバのリソースを十分に利用できるように、かつ、サーバの性能以上に要求を転送しないように、サーバの同時接続数を制御する。  クライアントに対しては、要求のあったサービスの提供にある一定時間以上かかることが予想される場合には、要求を拒否し、ある一定時間以内にサービスが提供できることが予想された場合には、要求を受け付ける。【選択図】  図３
2005184165.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置に対してサービス要求を発行する複数のクライアント装置と、前記クライアント装置からのサービス要求を受けて、サービスを提供するサーバ装置とからなるサービスシステムにおいて、前記クライアント装置と前記サーバ装置間のトラフィックを制御するトラフィック制御装置であって、
前記クライアント装置から前記サーバ装置へのサービス要求を受信する手段と、
前記サービス要求に対して前記サーバ装置から送信される応答を受信する、前記クライアント装置の受信能力に応じて、前記クライアント装置の前記サーバ装置への同時接続数を制御する手段と、
前記複数のクライアント装置から受信した前記サービス要求について、前記同時接続数に従った前記サーバ装置への中継処理を行う手段と、を備える。
【請求項２】
請求項１のトラフィック制御装置は、
前記クライアント装置の前記受信能力を測定する手段を備え、
前記同時接続数を制御する手段は、前記測定結果に基づき制御する。
【請求項３】
請求項１のトラフィック制御装置は、
前記サーバ装置により提供される前記応答の待ち時間を予測する手段と、
前記待ち時間が一定以上になる場合には、前記要求を拒否するアクセス規制メッセージを送信する手段を備える。
【請求項４】
請求項１のトラフィック制御装置は、
前記クライアント装置のデータ受信能力に応じて、前記サーバ装置に前記要求を中継する優先度を変更する手段を備える。
【請求項５】
請求項１のトラフィック制御装置において、
前記クライアント装置がサービスを受信した時間を観測して、前記クライアント装置のデータ受信能力を算出するクライアント能力測定手段を備える。
【請求項６】
請求項１のトラフィック制御装置において、
前記サーバ装置が前記応答を送信した時間を観測して、前記クライアント装置のデータ受信能力を算出するクライアント能力測定手段を備える。
【請求項７】
請求項４のトラフィック制御装置において、
後から受信した要求の優先度が高い場合、すでに前記クライアント装置から受信している要求に対して、アクセス規制を行う手段を備える。
【請求項８】
請求項１に記載のトラフィック制御装置であって、
前記クライアント装置のデータ受信能力に応じて、前記サーバ装置に中継する前記要求の優先度を変更する手段を備える。
【請求項９】
請求項８に記載のトラフィック制御装置であって、
前記クライアント装置に対する平均応答時間を一定時間以内にする手段を備える。
【請求項１０】
請求項１に記載のトラフィック制御装置であって、
前記サーバ装置に前記要求を転送する前に、前記クライアント装置に対して、前記要求の最大処理時間を提示する手段を備える。
【請求項１１】
クライアント装置からのサービス要求を受けてサービスを提供するサーバ装置と、前記クライアント装置と前記サーバ装置間のトラフィックを制御するトラフィック制御装置とからなるサービスシステムであって、
前記トラフィック制御装置は、
前記クライアント装置から前記サーバ装置へのサービス要求を受信する手段と、
前記サービス要求に対して前記サーバ装置から送信される応答を受信する、前記クライアント装置の受信能力に応じて、前記クライアント装置の前記サーバ装置への同時接続数を制御する手段と、
前記複数のクライアント装置から受信した前記サービス要求について、前記同時接続数に従った前記サーバ装置への中継処理を行う手段と、を備え、
前記サーバ装置は、前記サービス要求に対する前記応答を、前記トラフィック制御装置へ送信する手段を備える。
【請求項１２】
請求項１１に記載のサービスシステムであって、
前記トラフィック制御装置は、
前記クライアント装置のデータ受信能力に応じて、前記サーバ装置に中継する前記要求の優先度を変更する手段を備える。
【請求項１３】
請求項１０に記載のサービスシステムであって、
前記トラフィック制御装置は、
クライアントに対する平均応答時間を一定時間以内にする手段を備える。
【請求項１４】
請求項１０に記載のサービスシステムであって、
前記トラフィック制御装置は、前記サーバ装置に前記要求を転送する前に、前記クライアント装置に対して、前記要求の最大処理時間を提示する手段を備える。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置とサーバ装置データ通信中継システムを用いたクライアント装置とサーバ装置間のデータ通信方法と、それを用いたサーバアクセスのサービスに関する。
【背景技術】
【０００２】
近年のインターネットの急速な普及に伴い、インターネットへのアクセス方法が多様化してきている。
【０００３】
アクセス網のブロードバンド化を背景に、広帯域、低遅延なネットワークを介した高性能なPCからのサーバアクセスが増加する一方、携帯電話によるWebアクセスやPHS網を利用したPDAなどからのWebアクセスなど、遅延が大きく、帯域の狭いネットワークを介した、性能の低い機器からのアクセスも増加している。
【０００４】
従来、WebサーバやFTPサーバでは、サーバ装置(以下、サーバという)にアクセスが集中して、サービスがダウンしたり性能が低下したりすることを防ぐため、クライアント装置(以下、クライアントという)との同時接続数を制限し、運用していた（例えば、特許文献１参照）。
【０００５】
このWebサーバへのアクセスで利用される通信プロトコルであるHTTP (Hypertext Transfer Protocol) の詳細および使い方については、非特許文献１に詳しく説明されている。
【０００６】
【特許文献１】米国特許出願公開第２００３／００２８６１６号明細書
【０００７】
【非特許文献１】R. Fielding, UC Irvine, J. Gettys, Compaq/W3C, J. Mogul, Compaq, H. Frystyk, W3C/MIT, L. Masinter, Xerox, P. Leach, Microsoft, T. Berners-Lee, W3C/MIT著、“Hypertext Transfer Protocol -- HTTP/1.1”, [online], 1999月6月, IETF, インターネット<URL:http://www.ietf.org/rfc/rfc2616.txt>
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来のインターネット環境では、クライアントのネットワーク環境に大差はなく、サーバがダウンすることを防ぐためにはクライアントとの同時接続数を制限するだけで十分であった。しかし、上述のようなインターネット環境の変化により、次のような問題が発生している。
【０００９】
PDAや携帯電話など帯域の狭いネットワークを介したクライアントからのアクセスが集中した場合には、一つ一つのクライアントに対する負荷は高くないが、サーバでの処理時間が長くなるため、サーバの最大同時接続数は大きく設定しないと性能を十分に活用することができない。一方、光ファイバー網に接続している高性能なPCからのアクセスが集中した場合には、ネットワーク遅延も、クライアントの受信遅延も小さいため、一つ一つのクライアントに対する処理負荷が高く、サーバでの同時接続数を大きく設定しているとサーバが停止してしまうことがある。  このように、クライアントの性能差が広がったことで、クライアントとの同時接続数の制限だけではサーバの停止を防止することは難しくなってきている。
【００１０】
また、サーバに接続してサービス要求を送信してからサービスを受けるまでの時間もサーバの負荷状態によりさまざまであり、サーバに接続したものの、なかなかサービスを受けられないといった状況が発生していた。
【００１１】
このため、サーバによるサービス提供を、レベルを下げることなく、より安定して行える技術が求められている。
【課題を解決するための手段】
【００１２】
本発明は、クライアントのネットワーク特性を考慮してサーバとの同時接続数を制御し、サーバを安定して稼働させる技術を提供する。
【００１３】
また、サービス要求に対する応答時間を推定し、サービスを提供するためにある一定時間以上の時間が必要と予測する要求に関しては、アクセス規制メッセージを即座に応答し、利用者に不確定な長時間、サービスを待たせない技術を提供する。
【００１４】
具体的な本発明の一態様においては、まず、クライアントからのサーバへのアクセスにおいて、データ処理をしながら中継処理を行うトラフィック制御装置をサーバとクライアントの間に設ける。この構成において、クライアントからサーバへアクセスする際、トラフィック制御装置が、クライアントからの要求を受け付け、サーバへ要求を転送し、サーバはクライアントから要求されたサービスを提供する。
【００１５】
本発明によるトラフィック制御装置の特徴的な動作は以下のとおり。
【００１６】
すなわち、トラフィック制御装置は、サーバからの応答をクライアントに転送する際、クライアントのデータ受信能力を推定しつつ応答の転送を行う。
【００１７】
また、トラフィック制御装置は、クライアントからの要求を受け付ける際、要求された宛先に対するサービスを提供できるまでにかかる時間を推定し、ある一定以上時間が必要な場合には、アクセス拒否を行う。これにより、クライアントは不確定な長時間、サービス提供を待たなければならないということがなくなる。
【００１８】
また、トラフィック制御装置は、クライアントからの要求をキューイングするための手段を持ち、クライアントから受け付けた要求のサーバへの転送タイミングを制御することができる。
【００１９】
また、トラフィック制御装置は、クライアントからの要求をサーバに転送する際、サーバのデータ送信能力とクライアントのデータ受信能力に応じてサーバに対する同時接続数を制御する。
【発明の効果】
【００２０】
本発明によれば、過剰に要求が到達してサーバが停止することはなく、また、アクセス制限によりスループットが低下することもなくなり、クライアントに対するサービスレベルが低下することを防ぐことができる。これにより、サーバに対する投資を抑えることができるとともに、安定性を向上することができる。
【００２１】
また、サーバの提供するサービスの処理スループットを向上させることができる。
【００２２】
さらに、要求を受け付けたクライアントに対しては、不確定な長時間待たせる可能性を低くすることができる。
【発明を実施するための最良の形態】
【００２３】
図1は、本実施例のデータ通信装置を使ったシステムの構成図である。
【００２４】
本実施例では、各クライアント装置（１）と各サーバ装置（２）は1台以上のトラフィック制御装置（３）を介して通信路（４）で接続した構成とする。トラフィック制御装置（３）は、クライアント装置（１）とサーバ装置（２）間のデータ通信を中継する。すなわち、クライアント装置（１）からサーバ装置（２）へのサービス要求（５０）は、必ず、トラフィック制御装置（３）を介して送られ、サーバ装置（２）からクライアント装置（１）への応答（６０）も、トラフィック制御装置（３）を介して行われる。なお、ここでいう通信路（４）とは、必ずしも物理的な通信回線に一致する必要はなく、物理的な通信回線上で実現された論理的な通信経路であってよい。
【００２５】
図２は、本実施例に関わるクライアント装置（１）、サーバ装置（２）、トラフィック制御装置（３）、各装置の物理的な一構成例を示す。これらの装置は、図２に示すとおり、物理的には一般的な情報処理装置でよい。具体的には、各装置情報処理装置は、例えば、プロセッサ（１０１）、メモリ（１０２）、外部記憶装置（１０３）、通信装置（１０４）、オペレータ入出力装置（１０５）がバスなどの内部通信線（１０６）で接続した形で構成する。
【００２６】
各装置のプロセッサ（１０１）は、メモリ（１０２）に格納された情報処理プログラム（１０８）を実行することにより、以下の実施例において説明する処理を実現する。
【００２７】
メモリ（１０２）は、情報処理プログラム（１０８）以外にも、情報処理プログラム（１０８）から参照される各種データも保持する。
【００２８】
外部記憶装置（１０３）は、情報処理プログラム（１０８）や各種データを不揮発な形で保持する。プロセッセ（１０１）は情報処理プログラム（１０８）を実行することにより、外部記憶装置に指示して、必要なプログラムやデータをメモリ（１０２）にロードしたり、逆に、メモリ（１０２）上の情報処理プログラム（１０８）やデータを外部記憶装置（１０３）に格納したりする。情報処理プログラム（１０８）は、予め外部記憶装置（１０３）に格納されていても良い。または必要に応じて、情報処理装置が利用可能な、可搬型記憶媒体や、通信媒体すなわち通信回線または通信回線を伝搬する搬送波、を介して、外部の装置から導入されても良い。
【００２９】
通信装置（１０４）は、通信回線（１０７）に接続し、情報処理プログラム（１０８）の指示により、他の情報処理装置や通信機器にデータを送信したり、逆に、他の情報処理装置や通信機器から、データを受信して、メモリ（１０２）に格納する。装置間の論理的な通信路（４）は、本通信装置を介し、物理的な通信回線（１０７）を通して実現される。
【００３０】
オペレータ入出力装置（１０５）は、文字通り、オペレータとの間でデータ入出力を行う。
【００３１】
内部通信線（１０６）は、プロセッサ（１０１）、メモリ（１０２）、外部記憶装置（１０３）、通信装置（１０４）、オペレータ入出力装置（１０５）が互いに通信を行うためのものであって、たとえばバスで構成する。
【００３２】
クライアント装置（１）、サーバ装置（２）、データ通信中継システム（３）は、必ずしも物理的に異なった構成にする必要はなく、それぞれの機能の違いは、各装置上で実行する情報処理プログラム（１０８）で実現する形でよい。
【００３３】
以下では、実施例を説明する際、処理部という言葉で、本実施例中の構成要素を説明するが、各処理部は、論理的な構成を示すものであり、物理的装置で実現しても、情報処理プログラム（１０８）が実行されることにより実現された一機能であってもいずれでもよい。また、クライアント装置（１）、サーバ装置（２）、トラフィック制御装置（３）も、それぞれ独立した物理的な装置である必要はなく、１つの装置において実現されてもよい。さらに、それぞれの各処理部が１つの装置で構成されている必要は無く、異なる装置に分散して実現されていてもよい。
【００３４】
図３は本実施例のトラフィック制御装置（３）の一構成図である。
【００３５】
本実施例のトラフィック制御装置（３）は、クライアント装置（１）からの要求（５０）の受信を行う要求受信部（２１）、要求（５０）をサーバ装置（２）へ送信する要求送信部（２２）、クライアント装置（１）のアドレスからクライアント能力を決定するクライアント能力ランク部（２３）、クライアント装置（１）からの要求をキューに入れて管理するアクセス管理部（２４）、サーバ装置（２）からの応答（６０）を受信する応答受信部（２５）、クライアント装置（１）へ応答（６０）を送信する応答送信部（２７）、クライアント装置（１）のデータ受信能力を測定するクライアント能力測定部（２６）と、クライアント装置（１）からの要求を管理するキュー管理表（３１）、サーバ装置（２）に対するアクセス状況を管理するアクセス管理表（３２）、クライアント装置（１）の受信能力を管理するクライアントデータ受信能力表（３３）を備える。
【００３６】
さらに、サーバ装置（１）側のネットワークを観測し、応答（６０）が送信された時刻を測定するサーバ側クライアント能力測定部（２８）とクライアント装置（１）側のネットワークを観測し、応答（６０）が受信された時刻を測定するクライアント側クライアント能力測定部（２９）を備えてもよい。
【００３７】
図１１は、本実施例の要求キュー管理表（３１）の一構成例を示す。要求キュー管理表（３１）は、宛先フィールド（３１０２）をキーとする表で、同宛先フィールド（３１０２）で示された特定の宛先への要求のキュー管理のために使用する。
【００３８】
本実施例の要求キュー管理表（３１）の各エントリ（３１０１）は、宛先フィールド（３１０２）の他、キューイングしている要求の数を表すキュー中の要求数フィールド（３１０３）、宛先フィールド（３１０２）のサービスの最大の待ち時間を表す最大待ち時間フィールド（３１０４）、応答時間の平均を表す応答時間平均フィールド（３１０５）、応答時間の平均を算出するために必要な応答時間総和フィールドと（３１０６）応答時間処理数フィールド（３１０７）と、要求（５０）をリンクリストで管理する要求リンクリストフィールド（３１０８）を含む。  宛先フィールド（３１０２）と、最大待ち時間フィールド（３１０４）は、予めオペレータが予め設定する。
【００３９】
図１２は、本実施例のアクセス管理表（３２）の一構成例を示す。アクセス管理表（３２）は、宛先フィールド（３２０２）をキーとする表で、同宛先フィールド（３２０２）で示された特定の宛先へのアクセス状況を管理するために使用する。
【００４０】
本実施例のアクセス管理表（３２）の各エントリ（３２０１）は、宛先フィールド（３２０２）の他、その宛先サーバの能力を表す宛先サーバ能力フィールド（３２０３）、現在接続中のクライアントの転送能力を表すクライアント能力の和フィールド（３２０４）、サーバに対して同時に接続できるクライアントの許容最大数を表す最大接続数フィールド（３２０５）、現在接続中のクライアントの数を表す現在の接続数フィールド（３２０６）を含む。  宛先フィールド（３２０２）と、宛先サーバ能力フィールド（３２０３）と、最大接続数フィールド（３２０５）は、予めオペレータが設定する。
【００４１】
図１３は、本実施例のクライアントデータ受信能力表（３３）の一構成例を示す。クライアントデータ受信能力表（３３）は、クライアントのアドレス（３３０２）をキーとする表で、同クライアントアドレスフィールド（３３０２）で示された特定のクライアントのデータ受信能力を管理するために使用する。
【００４２】
本実施例のクライアントデータ受信能力表（３３）の各エントリ（３３０１）は、クライアントアドレスフィールド（３３０２）の他、クライアントのデータ受信能力をあらわすクライアントデータ受信能力フィールド（３３０３）、データ受信能力を算出するために用いるデータ送信開始時刻、データ受信完了時刻、データサイズを表す送信開始時刻フィールド（３３０４）、受信完了時刻フィールド（３３０５）、データサイズフィールド（３３０６）を含む。
【００４３】
図１４は、宛先サーバアドレス（５１）と要求サービス名（５２）とからなる、要求（５０）の一構成例を示す。
【００４４】
図４は、本実施例のトラフィック制御装置（３）が、クライアント装置が送信した要求（５０）をサーバ装置（２）に転送する処理フローを示す。
【００４５】
クライアント装置（１）が、トラフィック制御装置（３）経由で宛先サーバ装置（２）へのサービス要求を送信する。（処理１００１）このとき、クライアント装置（１）自身がトラフィック制御装置（３）を意識して、トラフィック制御装置（３）宛で送信してもよいし、クライアント装置（１）は意識せず、データ通信を中継するルータ等が、宛先サーバ装置（２）宛の要求（５０）をトラフィック制御装置（３）に転送してもよい。
【００４６】
トラフィック制御装置（３）の要求受信部（２１）は、クライアント装置（１）からのサービス要求（５０）を受付け受信する（処理１００２）。
【００４７】
要求受信部（２１）は、受信した要求を解析し、クライアントアドレス、宛先サーバアドレス（５１）、要求サービス名（５２）を特定する（処理１００３）。
【００４８】
クライアント能力ランク部（２３）は、クライアントアドレスをキーにクライアントデータ受信能力表（３３）を検索する。エントリがあればそのエントリのクライアントデータ受信能力フィールド（３３０３）の値を要求受信部（２１）に返す。対応するエントリがない場合には、各フィールドはデフォルト値と同じ物を用いて新しくエントリを作成し追加する（処理１００４）。
【００４９】
要求受信部（２１）は、要求（５０）をクライアントデータ受信能力（３３０３）とともにアクセス管理部（２４）に送信する（処理１００５）。
【００５０】
アクセス管理部（２４）は、受信した要求（５０）に対応するエントリを求めてアクセス管理表（３２）を検索する。対応するエントリがない場合には、各フィールドはデフォルト値と同じ物を用いて新しくエントリを作成し追加する（処理１００６）。
【００５１】
アクセス管理部（２４）は、処理１００６で得たエントリの情報を元に宛先サーバ装置（２）にアクセス可能か判定する（処理１００７）。
【００５２】
処理１００７の結果アクセス可能な場合には、アクセス管理部（２４）は、対応するアクセス管理エントリ（３２０１）のクライアント能力の和フィールド（３２０４）の値に現在処理中のクライアントの能力値を加算する。また、現在の接続数フィールド（３２０６）の値を１増加する。その後、要求（５０）を要求送信部（２２）に送信する（処理１０１１）。
【００５３】
要求送信部（２２）は、受信した要求（５０）をサーバ装置（２）に送信する（処理１０１２）。
【００５４】
処理１０１２の後で、クライアントに対して処理時間を提示するため、クライアントに対してHTTPのchunk形式などで応答のコンテンツの先頭として宛先の最大待ち時間フィールド（３１０４）の値を返信してもよい。ただし、この処理は宛先がHTMLなどのテキストコンテンツに限る。
【００５５】
サーバ装置（２）はサービス要求（５０）を受信し、サービスのための処理を開始する（処理１０１３）。
【００５６】
処理１００７の結果アクセス不可の場合には、アクセス管理部（２４）は、要求キュー管理表（３１）を参照し、キューイング可能か判定する（処理１００８）。
【００５７】
処理１００８の結果キューイング可能な場合には、要求（５０）に対応する宛先のエントリの要求リンクリストフィールド（３１０８）に要求を追加し、キューの中の要求数フィールドの値を１増加する（処理１０１０）。
【００５８】
処理１００８の結果キューイング不可の場合には、クライアント装置（２）に対してアクセス規制のメッセージを応答する（処理１００９）。
【００５９】
図５と図６は、本実施例のトラフィック制御装置（３）がサーバ装置（２）が送信した応答（６０）をクライアント装置（１）に転送する処理フローを示す図である。
【００６０】
図５において、サーバ装置（２）は要求されたサービスに対する処理を終え、サービスをクライアント装置（１）に提供するため、応答（６０）を送信する（処理１１０１）。
【００６１】
トラフィック制御装置（３）の応答受信部（２５）は、サーバ装置（２）が送信する応答（６０）を受信する（処理１１０２）。
【００６２】
クライアント能力測定部（２６）は、サーバ装置（２）が応答（６０）の送信を開始した時刻を取得する。この取得の方法は、応答受信部（２５）が応答（６０）を受信した時間により取得する。ただし、サーバ側クライアント能力測定部（２８）が、トラフィック制御装置（３）とサーバ装置（２）との通信路（４）を観測している場合には、サーバ側クライアント能力測定部（２８）がサーバ装置（２）が応答（６０）を送信し始めた時刻を決定し、クライアント能力測定部（２６）に通知してもよい。クライアント能力測定部（２６）は、応答（６０）の送信開始時刻を取得し、クライアントデータ受信能力表（３３）のクライアントアドレスに対応するエントリ（３３０１）の送信開始時刻フィールド（３３０４）の値が設定されていなければ、取得した値を設定する（処理１１０３）。送信開始時刻フィールド（３３０４）は、例えば、応答（６０）の先頭をクライアントに送信したときに設定するため、先頭を送信するまでは設定されていない。
【００６３】
応答受信部（２５）は、応答（６０）を応答送信部（２７）に送信する（処理１１０４）。
【００６４】
応答送信部（２７）は、応答（６０）をクライアント装置（１）に送信する（処理１１０５）。
【００６５】
クライアント装置（１）は、応答（６０）を受信し、要求したサービスをうける（処理１１０６）。
【００６６】
クライアント能力測定部（２６）は、クライアント装置（１）が応答（６０）の受信を完了した時刻を取得する。この取得の方法は、応答送信部（２７）が応答（６０）を送信し終わった時刻により取得する。ただし、クライアント側クライアント能力測定部（２９）が、トラフィック制御装置（３）とクライアント装置（１）との通信路（４）を観測している場合には、クライアント側クライアント能力測定部（２９）がクライアント装置（１）が応答（６０）を受信し終えた時刻を決定し、クライアント能力測定部（２６）に通知してもよい。クライアント能力測定部（２６）は、応答（６０）の受信完了時刻を取得し、クライアントデータ受信能力表（３３）のクライアントアドレスに対応するエントリ（３３０１）の受信完了時刻フィールド（３３０５）の値が設定されていなければ、取得した値を設定する。受信完了時刻フィールド（３３０５）は、例えば、応答（６０）の最後をクライアントに送信し終えたときに設定するため、最後を送信するまでは設定されていない。
さらに、転送した応答（６０）のデータサイズを同エントリのデータサイズフィールド（３３０６）の値に設定する（処理１１０７）。
【００６７】
クライアント能力測定部（２６）は、現在処理中のクライアント装置（１）のデータ受信能力を計算するため、対応するエントリの受信完了時刻フィールド（３３０５）の値から送信開始時刻フィールド（３３０４）の値を引き、データサイズフィールド（３３０６）の値を割り、これをクライアントデータ受信能力フィールド（３３０３）の値に設定する。この計算が終了したら、送信開始時刻フィールド（３３０４）、受信完了時刻フィールド（３３０５）とデータサイズフィールド（３３０６）の値を消去する。ここで、クライアント能力測定部（２６）は、アクセス管理表（３２）のクライアント能力の和フィールド（３２０４）の値を更新してもよい（処理１１０８）。
【００６８】
処理１１０７と処理１１０８は、処理１１０５のクライアントに対して応答を送信している最中に、オペレータにより設定された時間間隔毎、もしくは設定された送信データサイズ毎に実行してもよい。これにより、クライアント能力の動的な変更が可能になり、ストリーミングのような、セッションが長時間にわたる場合に、そのセッションの途中でクライアント能力を動的に決定することができる。
【００６９】
図６において、応答送信部（２７）は、アクセス管理部（２４）に送信処理が完了したことを通知する（処理１２０１）。
【００７０】
アクセス管理部（２４）は、応答送信部（２７）からの通知を受け、アクセス管理表（３２）から応答（６０）の送信が完了した要求（５０）を削除する（処理１２０２）。
【００７１】
アクセス管理部（２４）は、要求キュー管理表（３１）の要求リンクリストフィールド（３１０８）から該当する要求（５０）を削除し、キュー中の要求数フィールド（３１０３）の値を１減らす。次に、応答時間平均フィールド（３１０５）を更新するため、応答時間処理数フィールド（３１０７）を１増加し、応答時間総和フィールド（３１０６）に、応答時間を足し、応答時間処理数（３１０７）フィールドの値で割り、応答時間平均フィールド（３１０５）に設定する（処理１２０３）。
【００７２】
アクセス管理部（２４）は、要求キュー管理表（３１）から転送できる次の要求（５０）があるかどうかを検索する（処理１２０４）。
【００７３】
処理１２０４の結果、転送できる次の要求（５０）がなければ、そこで処理を終了する（処理１２０５）。転送できる次の要求（５０）があれば、アクセス管理部（２４）は要求キュー管理表（３１）の要求リンクリストフィールド（３１０８）から転送する次の要求（５０）を削除し、キュー中の要求数フィールド（３１０３）の値を１減らす。そして、削除した次の要求（５０）を要求送信部（２２）に送信する（処理１２０６）。
【００７４】
要求送信部（２２）は、次の要求（５０）をサーバ装置（２）に送信する（処理１２０７）。
【００７５】
サーバ装置（２）は、トラフィック制御装置（３）から送信された次の要求（５０）を受信し、サービス提供のための処理を開始する（処理１２０８）
図７は、処理１００４の一実施例を表す処理フロー図である。
【００７６】
クライアント能力ランク部（２３）は、要求（５０）のクライアントアドレスに対応したエントリを求めて、クライアントデータ受信能力表（３３）を検索する（処理１５０１）。
【００７７】
対応するエントリがあった場合には、クライアントアドレスに対応したエントリ（３３０１）のデータ受信能力フィールド（３３０３）の値を返す（処理１５０２）。
【００７８】
対応するエントリがなかった場合には、クライアントデータ受信能力表（３３）に新しいエントリを追加し、各フィールドはデフォルトの値を設定する。そして、デフォルトのエントリのデータ受信能力フィールド（３３０３）の値を返す（処理１５０３）。
【００７９】
図８は、処理１００６の一実施例を表す処理フロー図である。
【００８０】
アクセス管理部（２４）は、要求（５０）の宛先に対応したエントリを求めてアクセス管理表（３２）を検索する（処理１５１１）。
【００８１】
対応するエントリがなければ、アクセス管理表（３２）に現在の宛先に対する新しいエントリを作成し、各フィールドにデフォルト値を設定する（処理１５１２）。
【００８２】
その後、対応するエントリから宛先サーバの能力（３２０３）と現在接続中のクライアント能力の和（３２０４）と最大接続数（３２０５）と現在の接続数（３２０６）を取得する（処理１５１３）。
【００８３】
処理１５１１の結果、対応するエントリがあれば、処理１５１３を行い、処理１００６を終了する。
【００８４】
図９は、処理１００７の一実施例を表す処理フロー図である。
【００８５】
アクセス管理部（２４）は、宛先サーバ能力（３２０３）がクライアント能力の和（３２０４）に現在要求（５０）を処理しているクライアント装置（１）の能力を加えた値よりも大きいか確認する（処理１５２１）。
【００８６】
大きくなければ、アクセス不可を返し、処理１００７を終了する。
【００８７】
大きければ、設定されている最大接続数（３２０５）が現在の接続数（３２０６）と１の和よりも大きいか確認する（処理１５２２）。
【００８８】
大きくなければ、アクセス不可を返し、大きければ、アクセス可を返して処理１００７を終了する。
【００８９】
図１０は、処理１００８の一実施例を表すフロー図である。
【００９０】
アクセス管理部（２４）は、キュー管理表（３１）を参照し、現在の要求の宛先に対応するエントリを検索する（処理１５３１）。
【００９１】
処理１５３１の結果、対応するエントリがなければ、対応するエントリを新規に作成し、各フィールドにデフォルト値を設定する（処理１５３２）。その後、アクセス可能を返し、処理１００８を終了する。
【００９２】
処理１５３１の結果、対応するエントリがあれば、応答時間平均フィールド（３１０５）の値と現在キューに格納されている要求の数を表すキュー中の要求数フィールド（３１０３）の値の積が、設定されている最大待ち時間フィールド（３１０４）をこえるか確認する（処理１５３３）。つまり、要求のリンクリスト（３１０８）で管理している要求の最大個数（キューの最大長）を、宛先の平均応答時間によって制御することができ、処理の待ち時間が最大待ち時間（３１０４）を超えそうな場合にはキューに要求を入れない、という制御が可能である。
【００９３】
最大待ち時間を超える場合は、アクセス不可を返し、最大待ち時間を超えない場合は、アクセス可を返して処理１００８を終了する。
【００９４】
以上述べたとおり、本実施例によれば、
クライアント装置（１）との通信帯域や伝送遅延が多種多様な状況においても、サーバ装置（２）に対するアクセス数が適切に制御されるため、過剰に要求が到達してサーバ装置（２）がサービス提供が出来なくなることはなく、また、過剰なアクセス制限によりスループットが低下することもなくなり、クライアント装置（１）に対するサービスレベルが低下することを防ぐことができる。
【００９５】
これにより、サーバ装置の性能を十分に発揮することができるため、少ないサーバ装置台数で多くのアクセスに対応することができる。つまり、サーバ装置に対する投資を抑えることができるとともに、サービス提供の安定性を向上することができる。
【００９６】
また、クライアント装置は、受け付けられるか否かにかかわらず、何らかの回答が帰ってくるため、不確定な長時間待たされる可能性が低くなる。さらに、要求が受け付けられ、最大待ち時間フィールド（３１０４）の値が応答されれば、ある一定時間以下でサービスが提供されることを予想できるようになる。そのため、クライアント装置がサービス要求を何度も実行してサーバの負荷を高めることがなくなる。
【００９７】
従来、サービス提供事業者の見積もり以上にアクセスが集中した場合、サーバ装置に過度に負荷がかかり、サービス提供が不能になるような状況が生じていたが、本実施例を適用することにより、サーバ装置による安定したサービス提供が可能になり、かつアクセス拒否を通知したユーザに対してもサービス提供の機会があるため、サーバ装置の性能を必要以上に高く見積もる必要がなくなる。
【００９８】
次に、クライアント装置（１）のネットワーク特性などのデータ受信能力に応じて優先度を変更する第二の実施例を説明する。
【００９９】
本実施例では、要求キュー管理表（３１）を図１５のように構成する。
【０１００】
図１１の要求のリンクリストフィールド（３１０８）の代わりに、優先度付き要求のリンクリスト（３１１０）とクライアントのデータ受信能力がこの値以上ならば優先キューに挿入する基準となる優先しきい値フィールド（３１０９）を持つ。優先度付き要求のリンクリスト（３１１０）は、優先して処理を行う優先キュー（３１１１）と優先しない一般キュー（３１１２）とからなる。
【０１０１】
図４の処理１０１０で、アクセス管理部（２４）が要求キューを要求キュー管理表（３１）に登録する際、クライアント装置（１）のデータ受信能力が、優先しきい値フィールド（３１０９）の値よりも大きければ優先キュー（３１１１）に追加し、大きくなければ、一般キュー（３１１２）に追加する。
【０１０２】
なお、優先キュー（３１１１）に追加したときに、アクセス管理表（３２）のクライアント能力の和フィールド（３２０４）の値が宛先サーバ能力フィールド（３２０３）の値を超えている場合には、一般キュー（３１１２）のリンクリストから、既に追加した要求（５０）を新しい順に削除し、クライアント能力の和フィールド（３２０４）の値が宛先サーバ能力フィールド（３２０３）の値より小さくなるようにしてもよい。さらに、削除することにより、アクセス規制のメッセージを、処理１００９と同様に応答すればよい。
【０１０３】
さらに、図６の処理１２０４で、転送できる要求があるか検索する際、優先キュー（３１１１）を先に検索する。優先キュー（３１１１）に転送できる要求（５０）がなければ一般キュー（３１１２）を検索する。
【０１０４】
クライアント装置のネットワーク特性によって処理優先度を変える本実施例によれば、ネットワーク帯域が広いクライアント装置に対する処理を優先して行い、応答の悪いクライアント装置に対する処理を後回しにすることができるため、サーバ装置はサービスのスループットをさらに向上することができる。
【図面の簡単な説明】
【０１０５】
【図１】本実施例のトラフィック制御装置を使ったシステム構成図。
【図２】本実施例に関わるクライアント装置、サーバ装置、トラフィック制御装置の物理構成図。
【図３】本実施例のトラフィック制御装置の構成図。
【図４】本実施例のトラフィック制御装置での中継処理の流れを示す処理フロー図（その１）。
【図５】本実施例のトラフィック制御装置での中継処理の流れを示す処理フロー図（その２）。
【図６】本実施例のトラフィック制御装置での通知処理の流れを示す処理フロー図（その３）。
【図７】本実施例の処理に関わる図４の処理１００４の処理フロー図。
【図８】本実施例の処理に関わる図４の処理１００６の処理フロー図。
【図９】本実施例の処理に関わる図４の処理１００７の処理フロー図。
【図１０】本実施例の処理に関わる図４の処理１００８の処理フロー図。
【図１１】本実施例の要求キュー管理表（３１）の構成図。
【図１２】本実施例のアクセス管理表（３２）の構成図。
【図１３】本実施例のクライアントデータ受信能力表（３３）の構成図。
【図１４】本実施例の要求（５０）の構成図。
【図１５】第二の実施例の要求キュー管理表（３１）の構成図。
【符号の説明】
【０１０６】
（１）：クライアント装置、（２）：サーバ装置、（３）：トラフィック制御装置、（４）：通信路、（２１）：要求受信部、（２２）：要求送信部、（２３）：クライアント能力ランク部、（２４）：要求キューイング部、（２５）：応答受信部、（２６）：クライアント能力測定部、（２７）：応答送信部、（２８）：サーバ側クライアント能力測定部、（２９）：クライアント側クライアント能力測定部、（３１）：キュー管理表、（３２）：アクセス管理表、（３３）：クライアント受信能力ランク表、（５０）：要求、（５１）：宛先サーバアドレス、（５２）：要求サービス名、（６０）：応答、（１０１）：プロセッサ、（１０２）：メモリ、  （１０３）：外部記憶装置、（１０４）：通信装置、（１０５）：オペレータ入出力装置、（１０６）：内部通信線、（１０７）：通信回線、（１０８）：情報処理プログラム、（３１０１）：要求キュー管理エントリ、（３１０２）：宛先フィールド、（３１０３）：キュー中の要求数フィールド、（３１０４）：最大待ち時間フィールド、（３１０５）：応答時間平均フィールド、（３１０６）：応答時間総和フィールド、（３１０７）：応答時間処理数フィールド、（３１０８）：要求のリンクリストフィールド、（３１０９）：優先しきい値フィールド、（３１１０）：優先度付き要求のリンクリストフィールド、（３１１１）：優先キュー、（３１１２）：一般キュー、（３２０１）：アクセス管理エントリ、（３２０２）：宛先フィールド、（３２０３）：宛先サーバ能フィールド、（３２０４）：クライアント能力の和フィールド、（３２０５）：最大接続数フィールド、（３２０６）：現在の接続数フィールド、（３３０１）：クライアントデータ受信能力エントリ、（３３０２）：クライアントアドレスフィールド、（３３０３）：クライアントデータ受信能力フィールド、（３３０４）：送信開始時刻フィールド、（３３０５）：受信完了時刻フィールド、（３３０６）：データサイズフィールド。
【図１】
2005184165.tif 000003
【図２】
2005184165.tif 000004
【図３】
2005184165.tif 000005
【図４】
2005184165.tif 000006
【図５】
2005184165.tif 000007
【図６】
2005184165.tif 000008
【図７】
2005184165.tif 000009
【図８】
2005184165.tif 000010
【図９】
2005184165.tif 000011
【図１０】
2005184165.tif 000012
【図１１】
2005184165.tif 000013
【図１２】
2005184165.tif 000014
【図１３】
2005184165.tif 000015
【図１４】
2005184165.tif 000016
【図１５】
2005184165.tif 000017