(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数のクライアントとサーバとの間に配置され、前記クライアントから前記サーバに対して送出されたリクエストを一度集約するリクエスト集約装置であって、
クライアントからサーバに送出されるリクエストが、前記リクエスト集約装置に到着した順に登録されるキューと、
このキューに登録されているリクエストを送出したクライアントの情報が登録されるクライアント情報メモリと、
前記キューに登録されているリクエストの前記サーバに対する送出状態が登録される送出情報メモリと、
前記クライアントからリクエストが送出されると、このリクエストにリクエスト応答番号を付けると共に前記キューに格納し、前記リクエストを送出したクライアントの情報を前記クライアント情報メモリに登録し、前記キューに格納されているリクエストの順序をリクエストに対するサーバの応答に要する時間の短いものが先頭となるように並び替え、前記キューに登録されたリクエストを登録された順に前記サーバに送出するリクエスト制御回路と
を備え、
前記リクエスト制御回路は、
特定クライアントから前記サーバに送出された新規リクエストと同一の先発リクエストが前記キューにすでに登録されている場合、前記新規リクエストは前記キューに登録せず、前記新規リクエストを送出した特定クライアントの情報を、前記先発リクエストを送出したクライアントとして前記クライアント情報メモリに登録し、
前記サーバから送出された応答を識別するサーバ応答番号と同一のリクエスト応答番号のリクエストを送出したクライアントの情報を前記クライアント情報メモリより取得し、この取得したクライアントの情報にある全てのクライアントに対して前記応答を送出する
ことを特徴とするリクエスト集約装置。
【請求項２】
請求項１記載のリクエスト集約装置において、
前記リクエストに対するサーバの応答に要する時間は、予め設定されていることを特徴とするリクエスト集約装置。
【請求項３】
請求項１又は２記載のリクエスト集約装置において、
前記サーバからの応答をこの応答を要求するリクエスト情報と共に一時記憶するキャッシュ装置を備え、
前記リクエスト制御回路は、クライアントから前記サーバに送出されたリクエストが、前記キャッシュ装置に記憶されているリクエストと同一の場合、前記キャッシュ装置に前記リクエストと共に記憶されている応答を前記クライアントに送出する
ことを特徴とするリクエスト集約装置。
【請求項４】
請求項３記載のリクエスト集約装置において、前記キャッシュ装置は、所定時間がたつと記憶内容を消去することを特徴とするリクエスト集約装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバにネットワークを介して接続する複数のクライアントからのサーバに対するリクエストを集約するリクエスト集約装置に関する。
【０００２】
【従来の技術】
クライアント／サーバシステムは、ネットワークを利用して分散処理を行うコンピュータシステムである。サーバは、ファイル管理，データベース管理，データの提供および加工，通信機能などのサービスを、クライアントの要求に応じて行う。このサーバに、ネットワークを介して接続する複数のクライアントは、サーバに対してサービスを要求し、サーバが行ったデータ処理の結果を受け取り、結果表示などを行う。クライアントとサーバ各々が、処理を分散して行うことで、コンピュータ処理の負荷分散などを図ることができる。
【０００３】
【発明が解決しようとする課題】
従来、クライアントからの要求（リクエスト）数が増えると、サーバでの処理数はリクエスト増加分だけ増加するため、サーバでの処理負荷が大きくなり、サーバでの処理速度が低下する。また、リクエスト数が増加しすぎると、場合によっては、サーバが機能しなくなるという問題があった。また、クライアントからのリクエスト数が増えると、サーバへのネットワークのトラヒック量を増加させてしまう問題があった。
【０００４】
本発明は、以上のような問題点を解消するためになされたものであり、ネットワークにおけるトラヒック量を低く抑え、サーバの負荷を減らし、クライアントへの応答をより高速にすることを目的とする。
【０００５】
【課題を解決するための手段】
本発明のリクエスト集約装置は、ネットワークを介してサーバに接続しているクライアントからサーバに送出されるリクエストが、リクエスト集約装置に到着した順に登録されるキューと、このキューに登録されているリクエストを送出したクライアントの情報が登録されるクライアント情報メモリと、キューに登録されているリクエストのサーバに対する送出状態が登録される送出情報メモリと、クライアントからリクエストが送出されると、このリクエストにリクエスト応答番号を付けると共にキューに格納し、リクエストを送出したクライアントの情報をクライアント情報メモリに登録し、キューに格納されているリクエストの順序をリクエストに対するサーバの応答に要する時間の短いものが先頭となるように並び替え、キューに登録されたリクエストを登録された順にサーバに送出するリクエスト制御回路とを備え、リクエスト制御回路は、特定クライアントからサーバに送出された新規リクエストと同一の先発リクエストがキューにすでに登録されている場合、新規リクエストはキューに登録せず、新規リクエストを送出した特定クライアントの情報を、先発リクエストを送出したクライアントとしてクライアント情報メモリに登録し、サーバから送出された応答を識別するサーバ応答番号と同一のリクエスト応答番号のリクエストを送出したクライアントの情報をクライアント情報メモリより取得し、この取得したクライアントの情報にある全てのクライアントに対して応答を送出するものである。
この発明によれば、複数のクライアントから送出された同一のリクエストは、１つのリクエストとされてサーバに送出される。
【０００６】
上記発明において、リクエスト制御回路が、キューに格納されているリクエストの順序を、リクエストに対するサーバの応答に要する時間の短いもの順に並び替えるので、リクエストに対するサーバの応答に要する時間は、予め設定されていればよい。
また、上記発明において、サーバからの応答をこの応答を要求するリクエスト情報と共に一時記憶するキャッシュ装置を新たに備え、リクエスト制御回路は、クライアントからサーバに送出されたリクエストが、キャッシュ装置に記憶されているリクエストと同一の場合、キャッシュ装置にリクエストと共に記憶されている応答をクライアントに送出するようにしてもよい。この場合、キャッシュ装置は、所定時間がたつと記憶内容を消去するようにしてもよい。
【０００７】
【発明の実施の形態】
以下、本発明の実施の形態について図を参照して説明する。
＜実施の形態１＞
図１は、本発明の第１の実施の形態におけるリクエスト集約装置１００の構成を示す構成図である。リクエスト集約装置１００は、まず、クライアントＡ２０１など各クライアントからのリクエストが、リクエスト集約装置１００に到着した順に登録されるキュー１０１を備えている。また、リクエスト集約装置１００は、リクエストがリクエスト集約装置１００から送出されたかどうかの情報が登録される送出情報メモリｍ１と、同一のリクエストを送出した全てのクライアントの情報が登録されるクライアント情報メモリｍ２とを備えている。
【０００８】
また、リクエスト集約装置１００は、キュー１０１、送出情報メモリｍ１、クライアント情報メモリｍ２の情報入出力制御と各種データ管理を行うリクエスト制御回路１０２を備えている。
なお、各クライアントからのリクエストの受け取りと、各クライアントへの応答の出力は、クライアント側入出力部１０３を介して行う。同様に、図示していないサーバへのリクエストの送出と、サーバからの応答の入力は、サーバ側入出力部１０４を介して行う。
【０００９】
キュー１０１には、各クライアントからのリクエストと、リクエストに対するサーバからの応答を一意に判定するための応答番号と、リクエストに関する詳細情報が登録される送出情報メモリｍ１内の格納アドレスとが登録される。応答番号は、通信プロトコルとしてＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）を採用する場合、例えば、送信元ＩＰアドレスとＴＣＰ（ＵＤＰ）ポート番号の組み合わせになる。キュー１０１に登録される各リクエストに対して固有の組み合わせは、リクエスト制御回路１０２により決定される。
【００１０】
送出情報メモリｍ１には、キュー１０１に登録されたリクエストの登録時間（時刻）と、リクエストがサーバに送出されたかどうかを識別する送出識別子と、リクエストを送出したクライアントＡ２０１の情報が登録されるクライアント情報メモリｍ２内の格納アドレスとが登録される。
クライアント情報メモリｍ２には、リクエストを送出したクライアントＡ２０１の情報と、このクライアント情報に続くクライアントの情報が登録されるクライアント情報メモリｍ２における格納アドレスとが登録される。
【００１１】
登録されるクライアントの情報は、通信プロトコルとして、ＴＣＰ／ＩＰを採用する場合、例えば、ＩＰヘッダ情報と、ＴＣＰヘッダ情報と、ＴＣＰの上位層のプロトコルの任意の情報となる。ＴＣＰの上位層のプロトコルの任意の情報は、ＴＣＰの上位層のプロトコルにＨＴＴＰ（Hypertext Transfer Protocol）を使っている場合、「ＧＥＴ」などの命令とファイル名などになる。リクエストが、複数のクライアントからのリクエストを集約した代表リクエストである場合、クライアント情報に続くクライアントの情報には、２つ目以降のクライアントの情報が登録される。
【００１２】
また、リクエスト制御回路１０２は、キュー１０１に登録されているリクエストの中から、最も登録時間の早いリクエスト、すなわちリクエスト集約装置１００に最も早く到着したリクエストをサーバに送出し、送出識別子を「Ｙｅｓ」にする。送出識別子を「Ｙｅｓ」にすることで、リクエストをサーバに送出したことが示される。
【００１３】
以下、リクエスト集約装置１００の動作に関して説明する。
はじめに、クライアントＡ２０１からのリクエストＡが、リクエスト集約装置１００に到着すると、リクエスト制御回路１０２は、以下に示すような手順で、キュー１０１，送出情報メモリｍ１，クライアント情報メモリｍ２にリクエストを含む情報を登録する。
【００１４】
リクエスト制御回路１０２は、まず、キュー１０１にすでにリクエストＡが登録されているかどうかを判定する。ここでは、リクエスト集約装置１００には、まだリクエストがきていないので、リクエストＡはキュー１０１になく、リクエスト制御回路１０２は、リクエストＡはないものと判断する。この判断の結果、リクエスト制御回路１０２は、まず、リクエストＡと応答番号３０３３と送出情報メモリｍ１のアドレスｍ１−０とを、キュー１０１に登録する。
【００１５】
次いで、リクエスト制御回路１０２は、登録時間８：３０と送出識別子Ｎｏとクライアント情報メモリｍ２のアドレスｍ２−１００とを、送出情報メモリｍ１のアドレスｍ１−０が示す格納領域に登録する。
次いで、リクエスト制御回路１０２は、クライアントＡ２０１の情報を、クライアント情報メモリｍ２のアドレスｍ２−１００が示す格納領域に登録する。
以上のことにより、図２に示すように、各情報が登録される。
【００１６】
つぎに、図３に示すように、他のクライアントＢ２０２，クライアントＣ２０３からリクエストＡが、リクエスト集約装置１００に到着すると、リクエスト制御回路１０２は、キュー１０１内にすでにリクエストＡの情報があるかどうかを判定する。ここでは、すでにキュー１０１内にリクエストＡが登録されているので、リクエスト制御回路１０２は、リクエストＡの情報があるものと判断する。このように、同一のリクエストがすでに存在していた場合、リクエスト制御回路１０２は、クライアントＢ２０２，クライアントＣ２０３からのリクエストＡをキュー１０１に登録せずに、クライアントＡ２０１の情報に続く情報として、クライアントＢ２０２，クライアントＣ２０３の情報をクライアント情報メモリｍ２に登録する。この結果、図３に示すように、新たなリクエストに関する各情報が追加される。
【００１７】
図１〜３には示していないサーバからの、リクエストＡ（応答番号３０３３）に対する応答が、リクエスト集約装置１００に到着すると、リクエスト制御回路１０２は、まず、キュー１０１内より同一応答番号（３０３３）の情報を取り出す。次いで、リクエスト制御回路１０２は、応答番号３０３３より、送出情報ｍ１のアドレスｍ１−０を引き出し、このアドレスが示す送出情報メモリｍ１内の格納領域に登録されているクライアント情報メモリｍ２のアドレスｍ２−１００を取得する。
【００１８】
このことにより、リクエスト制御回路１０２は、クライアント情報メモリｍ２内のｍ２−１００が示すクライアント情報であるクライアントＡ２０１の情報と、クライアントＡ２０１に続くクライアントＢ２０２の情報と、クライアントＢ２０２に続くクライアントＣ２０３の情報とを引き出し、引き出した情報による各クライアントにサーバからの応答を複製し、各クライアントに送出する。サーバからの応答を送出した後、リクエスト制御回路１０２は、リクエストＡに関するキュー１０１内と、送出情報メモリｍ１内と、クライアント情報メモリｍ２内の情報を削除する。
【００１９】
図４は、本実施の形態１におけるリクエスト集約装置１００を用いたクライアント−サーバ・ネットワークの構成例を示す構成図である。
ネットワークに接続しているクライアントＡ２０１，クライアントＢ２０２〜クライアントｎ２０４から、ＷｅｂサーバやＦＴＰサーバなどのサーバ３０１に対して送出されるリクエストは、リクエスト集約装置１００が受け取り、サーバ３０１に対する同じリクエストを１つの代表リクエストとして送出する。このことにより、サーバ３０１へのリクエスト数を減少でき、サーバ３０１へのトラヒック量を減らすことができる。
【００２０】
図５は、リクエスト集約装置１００を、ネットワーク１とネットワーク２のゲートウェイに実装した場合の構成例を示す構成図である。このような構成においても、リクエスト集約装置１００が、同一のリクエストはまとめて代表リクエストとしてサーバ３０１に送出するので、ネットワーク１からネットワーク２へのトラヒック量を減らすことができる。
なお、サーバからの応答を所定のクライアントに送出すると、キュー１０１内と、送出情報メモリｍ１内と、クライアント情報メモリｍ２内の情報は、削除される。したがって、この後で他のクライアントからリクエストＡが送出された場合は、キュー１０１，送出情報メモリｍ１，クライアント情報メモリｍ２へ、再度必要な情報を登録し、再度リクエストＡをサーバに送出することになる。
【００２１】
なお、キュー１０１に、連想メモリ（ＣＡＭ：Contents Addressable Memory）を用いるようにしてもよい。連想メモリは、記憶の位置を番地（アドレス）で示すではなく、記憶内容を探索情報として与え、内容が一致する記憶位置をアドレスに変換することが可能なメモリであり、データの一部を探索情報として与えると、これに関連した情報を連想的に取り出す。したがって、例えばリクエストＡがすでに記憶されていれば、リクエストＡを与えるとすでに登録されているリクエストＡが取り出されるので、このことによりリクエスト制御回路１０２は、リクエストＡがすでに登録されているかどうかを判定できる。
【００２２】
＜実施の形態２＞
つぎに、本発明の第２の実施の形態について説明する。
本実施の形態では、リクエスト制御回路１０２が、リクエストに対するサーバからの応答時間に応じて、キュー１０１に登録されているリクエストの状態を変更するようにしたものである。図６は、リクエスト集約装置１００のキュー１０１に登録されているリクエストの状態を示す説明図である。図６に示すように、キュー１０１には、各リクエストが登録時間順に並べられている。なお、以降では、まず、クライアントからのリクエストＡ，Ｂ，Ｃは、各々ファイルＡ’、Ｂ’、Ｃ’をサーバに要求しているものとする。また、リクエストに対するサーバの応答時間は、前もって計算可能なもの、または、測定できるものとする。
【００２３】
また、本実施の形態では、Ａ’、Ｂ’のファイルをサーバからダウンロードするのに２秒かかり、Ｃ’のファイルをダウンロードするのに１０分かかることが事前に判明しているものとする。この場合、Ａ，Ｂのリクエストに対して、Ｃのリクエストに対するサーバからの応答時間が極めて長い。
このような場合、リクエスト制御回路１０２は、送出情報メモリｍ１に登録されている１番目のＣ（リクエスト）の登録時間をリクエスト順位３番目にし、リクエストＡ，Ｂの登録時間を繰り上げる。
【００２４】
このリクエスト順位の変更により、リクエストＡ，Ｂをリクエストしたクライアントへの平均応答時間が早くなる。また、本実施の形態の場合、リクエストＣを送出したクライアントへの応答は、４秒長くなり、１０分４秒になるが、サーバからの応答時間１０分の期待値に対する実際の遅延が、大きく変わることがないので問題にならない。このように、本実施の形態によれば、リクエストに対するサーバからの応答時間を平準化できるようになる。
【００２５】
＜実施の形態３＞
つぎに、本発明の第３の実施の形態について説明する。図７は、実施の形態３におけるリクエスト集約装置１００の構成を示す構成図である。図７に示すように、本実施の形態のリクエスト集約装置１００は、キャッシュ装置１０５を備えるようにしたものである。キャッシュ装置１０５は、リクエスト集約装置１００内に内蔵してもよく、外部の周辺装置として接続して用いるようにしてもよい。キャッシュ装置１０５は、クライアントからのリクエストと、サーバからの応答が登録される。図７の場合、リクエストＡに対する応答はＡ’であり、リクエストＢに対する応答はＢ’である。
【００２６】
つぎに後続して到着するクライアントからのリクエストは、まず、キャッシュ装置１０５内にすでにあるリクエストと同じかどうかが、リクエスト制御回路１０２により判定される。この判定で、同じリクエストであるとされた場合、リクエスト制御回路１０２は、後続して到着したリクエストをサーバに送出せずに、後続して到着したリクエストを送出したクライアントに、キャッシュ装置１０５に登録してある応答を送出する。
【００２７】
図７の場合、後続して到着するリクエストがＡである場合は、キャッシュ装置１０５内の応答Ａ’をリクエストを送出したクライアントに送出する。また、後続して到着するリクエストがＢである場合は、キャッシュ装置１０５内の応答Ｂ’を送出する。
なお、キャッシュ装置１０５は、所定時間がたつと記憶内容を消去するようにしてもよい。また、キャッシュ装置１０５の記憶の消去を、外部から制御できるようにしてもよい。
【００２８】
以上説明したように、本実施の形態のリクエスト集約装置１００によれば、すでに発生したリクエストとこの応答の組をキャッシュしておき、同一のリクエストが発生した場合、キャッシュしてある応答を送出するようにしたので、クライアントからサーバへのリクエスト数を減少でき、トラヒックを減らし、クライアントに対する応答をより高速にできる。
【００２９】
＜実施の形態４＞
つぎに、本発明の第４の実施の形態について説明する。
図８は、実施の形態４におけるリクエスト集約装置１００の構成を示す構成図である。以降では、図８に示すように、クライアントＡ２０１，Ｂ２０２，Ｃ２０３からの共通のリクエストＡに対し、３０３３の応答番号を持つリクエストＡがキュー１０１に登録され、すでにリクエストＡがサーバに送出された場合について述べる。
【００３０】
リクエストＡがサーバに送出された後、新たに、図示していない他のクライアントＤからの任意のリクエストＡが、リクエスト集約装置１００に到着すると、図８の場合、リクエスト制御回路１０２は、キュー１０１に、同一のリクエストＡ（代表リクエストＡ）が存在するものと判断する。キュー１０１にすでに登録されていると判断されたリクエストＡに関するリクエスト情報メモリｍ１内の送出識別子がＹｅｓである場合、リクエスト制御回路１０２は、代表リクエストＡに関するクライアント情報としてクライアントＤに関する情報をクライアント情報メモリｍ２に登録する。
【００３１】
この結果、図９に示すように、クライアント情報メモリｍ２内のクライアントＣの情報に続くクライアントの情報アドレスに、クライアントＤの情報が登録され、アドレス（ｍ２−１０３）が登録されることになる。また、この場合、キュー１０１，送出情報メモリｍ１，クライアント情報メモリｍ２の各情報が、まだ消去されていないので、サーバからの応答をクライアントに送出する前段階である。
したがって、サーバから代表リクエストＡに対する応答が送出されれば、クライアントＤに対しても、この応答を複製して送出することにるので、サーバへのリクエスト送出数を減少でき、トラヒック量を減らすことができる。
【００３２】
【発明の効果】
以上説明したように、本発明によれば、複数のクライアントから送出された同一のリクエストは、１つのリクエストとされてサーバに送出されるので、ネットワークにおけるトラヒック量が低く抑えられ、サーバの負荷が減り、クライアントへの応答がより高速になるという優れた効果が得られる。
【図面の簡単な説明】
【図１】  本発明の実施の形態におけるリクエスト集約装置の構成を示す構成図である。
【図２】  本発明の実施の形態におけるリクエスト集約装置の状態を示す構成図である。
【図３】  本発明の実施の形態におけるリクエスト集約装置の他の状態を示す構成図である。
【図４】  実施の形態のリクエスト集約装置を用いたネットワークの構成を示す構成である。
【図５】  実施の形態のリクエスト集約装置を用いたネットワークの構成を示す構成である。
【図６】  本発明の他の形態におけるリクエスト集約装置におけるキューの状態を示す構成図である。
【図７】  本発明の他の形態におけるリクエスト集約装置の構成を示す構成図である。
【図８】  本発明の他の形態におけるリクエスト集約装置の構成を示す構成図である。
【図９】  本発明の他の形態におけるリクエスト集約装置の構成を示す構成図である。
【符号の説明】
１００…リクエスト集約装置、１０１…キュー、１０２…リクエスト制御回路、１０３…クライアント側入出力部、１０４…サーバ側入出力部、２０１…クライアントＡ、ｍ１…送出情報メモリ、ｍ２…クライアント情報メモリ。
【図１】
0003735022.tif 000002
【図２】
0003735022.tif 000003
【図３】
0003735022.tif 000004
【図４】
0003735022.tif 000005
【図５】
0003735022.tif 000006
【図６】
0003735022.tif 000007
【図７】
0003735022.tif 000008
【図８】
0003735022.tif 000009
【図９】
0003735022.tif 000010