(57)【特許請求の範囲】
【請求項１】
複数のクライアントからサーバーへのリクエスト、および前記サーバーから前記複数のクライアントへのレスポンスを中継するゲートウェイであって、
前記複数のクライアントからのリクエストを蓄積する受信バッファをクライアントごとに有し、該クライアントごとに前記リクエストの中継処理を行うリクエスト中継処理手段と、
前記複数のクライアントへのレスポンスを蓄積する送信バッファをクライアントごとに有し、前記リクエスト中継処理手段により中継処理が行われた前記複数のクライアントからのリクエストに対するレスポンスの中継処理を該クライアントごとに行うレスポンス中継処理手段と、
前記レスポンス中継処理手段による前記レスポンスの中継処理に滞りがあることが検出された場合、該滞りを前記リクエスト中継処理手段に通知することによって、前記受信バッファがフルではないときでも、前記リクエスト中継処理手段が当該滞りを検出したクライアントのリクエストの中継処理を行わないように前記クライアントごとに制御する制御手段と
を備え、前記制御手段は、前記送信バッファがフルになった場合に前記中継処理に滞りがあるとして前記複数のクライアントからの前記リクエストの中継処理を行わないように制御することを特徴とするゲートウェイ。
【請求項２】
請求項１に記載のゲートウェイであって、前記レスポンス中継処理手段は、オペレーティングシステムを用いて前記レスポンスの中継処理を行い、前記オペレーティングシステムにより前記レスポンスの中継処理に滞りがあることを検出することを特徴とするゲートウェイ。
【請求項３】
請求項１または２に記載のゲートウェイであって、前記レスポンス中継処理手段は、前記レスポンスの中継処理待ちキューを有し、前記レスポンスの中継処理に滞りがある場合としては、前記キューの長さが所定の長さ以上になった場合が含まれることを特徴とするゲートウェイ。
【請求項４】
請求項１ないし３のいずれかに記載のゲートウェイであって、前記ゲートウェイは、複数のクライアントと同時に通信を行うことが可能であり、複数のサーバーと同時に通信を行うことが可能であることを特徴とするゲートウェイ。
【請求項５】
請求項１ないし４のいずれかに記載のゲートウェイであって、前記ゲートウェイと前記クライアントとの間の通信には無線通信が含まれることを特徴とするゲートウェイ。
【請求項６】
複数のクライアントからサーバーへのリクエスト、および前記サーバーから前記複数のクライアントへのレスポンスを中継するゲートウェイにおける中継制御方法であって、
クライアントごとに有する受信バッファに前記複数のクライアントからのリクエストを蓄積し、該クライアントごとにリクエスト中継処理手段によって前記リクエストの中継処理を行うリクエスト中継処理ステップと、
クライアントごとに有する送信バッファに前記複数のクライアントへのレスポンスを蓄積し、前記リクエスト中継処理ステップにおいて中継処理が行われた前記複数のクライアントからのリクエストに対する前記レスポンスの中継処理をレスポンス中継処理手段によって該クライアントごとに行うレスポンス中継処理ステップと、
前記レスポンス中継処理ステップにおける前記レスポンスの中継処理に滞りがあることが検出された場合、該滞りを前記リクエスト中継処理手段に通知することによって、前記受信バッファがフルではないときでも、前記リクエスト中継処理ステップにおいて当該滞りを検出したクライアントのリクエストの中継処理を行わないよう該クライアントごとに制御する制御ステップと
を備え、前記制御ステップは、前記送信バッファがフルになった場合に前記中継処理に滞りがあるとして前記複数のクライアントからの前記リクエストの中継処理を行わないように制御することを特徴とする中継制御方法。
【請求項７】
請求項６に記載の中継制御方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項６に記載の中継制御方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲートウェイ、中継制御方法、プログラムおよび記録媒体に関する。
【０００２】
【従来の技術】
従来、ゲートウェイ（装置）は、クライアントからサーバーへのリクエスト、およびサーバーからクライアントへのレスポンス（リクエストに対する応答）の中継を行っていた。ここで、リクエストの中継処理とレスポンスの中継処理とは独立に行われていた。
【０００３】
図１は、従来技術によるゲートウェイの構成例を示す図である。ゲートウェイ１１０は、ゲートウェイアプリケーション１２０、上り受信バッファ１３１、下り送信バッファ１３２、上り送信バッファ１３６および下り受信バッファ１３７を備える。ゲートウェイアプリケーション１２０は、上り通信プロトコル制御部１２２および下り通信プロトコル制御部１２６を備える。
【０００４】
ゲートウェイ１１０は、上り通信プロトコル制御部１２２、上り受信バッファ１３１、および上り送信バッファ１３６により、クライアント１４０からサーバー１５０へのリクエストを中継する。
【０００５】
また、ゲートウェイ１１０は、下り通信プロトコル制御部１２６、下り受信バッファ１３７、および下り送信バッファ１３２により、サーバー１５０からクライアント１４０へのレスポンスを中継する。
【０００６】
【発明が解決しようとする課題】
例えばＨＴＴＰ(Hyper Text Transfer Protocol)に基づくコンテンツ取得型サービスでは、リクエストに比べてレスポンスのデータサイズが非常に大きくなることが想定されている。また、クライアント・ゲートウェイ間が無線回線のような不安定なネットワークに接続されている場合には、クライアントでのレスポンス受信の滞りが発生しやすい。
【０００７】
レスポンスが滞ると、リクエストの再送が発生するが、リクエストがそのままサーバーへ転送されると、レスポンス側の輻輳がさらに悪化してしまう。また、レスポンスおよびリクエストの輻輳により、データが損失することがある。
【０００８】
このように、従来のゲートウェイによる転送方法では、高負荷によって、ゲートウェイ・クライアント間がレスポンスを処理できなくなった場合に、リクエストを続けると、サーバー側に必要以上の負荷とリソースの消費をかけることになる。
【０００９】
そこで、本発明の目的は、ゲートウェイによる、クライアントからサーバーへのリクエスト、およびサーバーからクライアントへのレスポンスの中継において、高負荷時にサーバー側に必要以上の負荷とリソースの消費をかけないようにすることである。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、請求項１に記載の発明は、複数のクライアントからサーバーへのリクエスト、およびサーバーから複数のクライアントへのレスポンスを中継するゲートウェイであって、複数のクライアントからのリクエストを蓄積する受信バッファをクライアントごとに有し、クライアントごとにリクエストの中継処理を行うリクエスト中継処理手段と、複数のクライアントへのレスポンスを蓄積する送信バッファをクライアントごとに有し、リクエスト中継処理手段により中継処理が行われた複数のクライアントからのリクエストに対するレスポンスの中継処理をクライアントごとに行うレスポンス中継処理手段と、レスポンス中継処理手段によるレスポンスの中継処理に滞りがあることが検出された場合、滞りをリクエスト中継処理手段に通知することによって、受信バッファがフルではないときでも、リクエスト中継処理手段が滞りを検出したクライアントのリクエストの中継処理を行わないようにクライアントごとに制御する制御手段とを備え、制御手段は、送信バッファがフルになった場合に中継処理に滞りがあるとして複数のクライアントからのリクエストの中継処理を行わないように制御することを特徴とする。
【００１２】
請求項２に記載の発明は、請求項１に記載のゲートウェイであって、レスポンス中継処理手段は、オペレーティングシステムを用いてレスポンスの中継処理を行い、オペレーティングシステムによりレスポンスの中継処理に滞りがあることを検出することを特徴とする。
【００１３】
請求項３に記載の発明は、請求項１または２に記載のゲートウェイであって、前記レスポンス中継処理手段は、前記レスポンスの中継処理待ちキューを有し、前記レスポンスの中継処理に滞りがある場合としては、前記キューの長さが所定の長さ以上になった場合が含まれることを特徴とする。
【００１４】
請求項４に記載の発明は、請求項１ないし３のいずれかに記載のゲートウェイであって、前記ゲートウェイは、複数のクライアントと同時に通信を行うことが可能であり、複数のサーバーと同時に通信を行うことが可能であることを特徴とする。
【００１６】
請求項５に記載の発明は、請求項１ないし４のいずれかに記載のゲートウェイであって、前記ゲートウェイと前記クライアントとの間の通信には無線通信が含まれることを特徴とする。
【００１７】
請求項６に記載の発明は、複数のクライアントからサーバーへのリクエスト、およびサーバーから複数のクライアントへのレスポンスを中継するゲートウェイにおける中継制御方法であって、クライアントごとに有する受信バッファに複数のクライアントからのリクエストを蓄積し、クライアントごとにリクエスト中継処理手段によってリクエストの中継処理を行うリクエスト中継処理ステップと、クライアントごとに有する送信バッファに複数のクライアントへのレスポンスを蓄積し、リクエスト中継処理ステップにおいて中継処理が行われた複数のクライアントからのリクエストに対するレスポンスの中継処理をレスポンス中継処理手段によってクライアントごとに行うレスポンス中継処理ステップと、レスポンス中継処理ステップにおけるレスポンスの中継処理に滞りがあることが検出された場合、滞りをリクエスト中継処理手段に通知することによって、受信バッファがフルではないときでも、リクエスト中継処理ステップにおいて滞りを検出したクライアントのリクエストの中継処理を行わないようクライアントごとに制御する制御ステップとを備え、制御ステップは、送信バッファがフルになった場合に中継処理に滞りがあるとして複数のクライアントからのリクエストの中継処理を行わないように制御することを特徴とする。
【００１８】
請求項７に記載の発明は、請求項６に記載の中継制御方法をコンピュータに実行させるためのプログラムである。
【００１９】
請求項８に記載の発明は、請求項６に記載の中継制御方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【００２０】
以上の構成によれば、ゲートウェイによる、クライアントからサーバーへのリクエスト、およびサーバーからクライアントへのレスポンスの中継において、高負荷時にサーバー側に必要以上の負荷とリソースの消費をかけないようにすることができる。
【００２１】
【発明の実施の形態】
以下、図面を参照しつつ本発明の実施の形態について詳しく説明する。
【００２２】
図２は、本発明の実施形態に係るゲートウェイの構成例を示す図である。ゲートウェイ１０は、ゲートウェイアプリケーション２０、上り受信バッファ３１、下り送信バッファ３２、上り送信バッファ３６および下り受信バッファ３７を備える。ゲートウェイアプリケーション２０は、上り通信プロトコル制御部２２、輻輳検出及び流量制御部２４、および下り通信プロトコル制御部２６を備える。
【００２３】
ゲートウェイ１０は、上り通信プロトコル制御部２２、上り受信バッファ３１、および上り送信バッファ３６により、クライアント４０からサーバー５０へのリクエスト（パケットデータなど）を中継する。すなわち、クライアント４０からのリクエストは上り受信バッファ３１に蓄積される。上り通信プロトコル制御部２２は、上り受信バッファ３１からリクエストを読み込み、サーバー５０側の上り送信バッファ３６へ転送する処理を行う。上り送信バッファ３６に蓄積したリクエストは順次サーバー５０に送信される。
【００２４】
また、ゲートウェイ１０は、下り通信プロトコル制御部２６、下り受信バッファ３７、および下り送信バッファ３２により、サーバー５０からクライアント４０へのレスポンス（パケットデータなど）を中継する。すなわち、サーバー５０からのレスポンスは下り受信バッファ３７に蓄積される。下り通信プロトコル制御部２６は、下り受信バッファ３７からレスポンスを読み込み、下り送信バッファ３２へ転送する処理を行う。下り送信バッファ３２に蓄積したレスポンスは順次クライアント４０に送信される。
【００２５】
輻輳検出及び流量制御部２４は、レスポンスの中継処理の滞りを検出する。そして、滞りがある場合には、上り通信プロトコル制御部２２に対して、リクエストの中継処理を行わないように制御を行う。本実施形態においては、輻輳検出及び流量制御部２４が上り通信プロトコル制御部２２に滞りを通知し、上り通信プロトコル制御部２２は、滞りの通知を受けるとリクエストの流量制御中となる。輻輳検出及び流量制御部２４は、滞りが解消されたことを検出すると、上り通信プロトコル制御部２２に通知を行い、リクエストの流量制御中を解除させる。
【００２６】
図３は、上り通信プロトコル制御部２２で行う処理例を示すフローチャートである。上り通信プロトコル制御部２２は、流量制御中でなければ（Ｓ２０）、上り受信バッファ３１からリクエストを読み込む（Ｓ３０）。そして、そのリクエストを上り送信バッファ３６に転送する（Ｓ４０）。一方、流量制御中であれば（Ｓ２０）、上り受信バッファ３１からリクエストを読み込まない（Ｓ５０）。
【００２７】
なお、コネクション型の通信で流量制限を行う場合、クライアントからのリクエストは受信しないが、クライアントからのコネクション切断要求は受信し、コネクション切断処理を行えるようにすることができる。
【００２８】
レスポンスの中継処理の滞りとしては、例えば、下り送信バッファ３２がフル（一杯）になった場合が考えられる。バッファがフルであることは、ＯＳ（オペレーティングシステム）が検出してゲートウェイアプリケーション２０に通知するようにしてもよいし、ゲートウェイアプリケーション２０がＯＳに対して随時問い合わせるようにしてもよい。
【００２９】
また、レスポンスの中継処理の滞りとしては他に、例えばゲートウェイ１０・クライアント４０間のネットワーク輻輳によるもの、クライアント４０におけるレスポンス受信処理の滞りによるもの等が考えられる。このような滞りをＯＳが検出して、ゲートウェイアプリケーション２０に通知することが考えられる。なお、ゲートウェイ１０・クライアント４０間の通信に無線通信が含まれるような場合には、クライアント４０でのレスポンス受信処理の滞りが発生しやすいものと考えられる。
【００３０】
また、例えば、下り通信プロトコル制御部２６がレスポンスの中継処理待ちキューを有するような場合に、そのキューの長さが所定の長さ以上になった場合に、レスポンスの中継処理に滞りがあるものとすることが考えられる。
【００３１】
ゲートウェイ１０は、複数のクライアントと同時に通信を行うことが可能であり、また、複数のサーバーと同時に通信を行うことが可能である。
【００３２】
リクエストとレスポンスとの対応はクライアント毎に行い、同時にゲートウェイ１０を利用している他のクライアントの信号とは独立に制御される。すなわち、あるクライアントのレスポンスの中継処理に滞りがある場合には、そのクライアントのリクエストの中継処理を行わないように制御している。上り受信バッファ３１、上り送信バッファ３６、下り受信バッファ３７、および下り送信バッファ３２はクライアント毎に用意されたものである。
【００３３】
このように、高負荷時には、ゲートウェイ１０にて、クライアント４０からサーバー５０へのリクエストを抑制することで、ゲートウェイ・サーバー間のトラヒックを抑えることができる。リクエストを抑えることで、レスポンス自体も抑えることができる。
【００３４】
また、ゲートウェイ１０内部でリクエストとレスポンスを対応させて処理するため、装置間でトラフィック情報に関する余分な制御信号のやり取りを行わずしてトラフィック制御が可能である。
【００３５】
なお、ゲートウェイアプリケーション２０、ＯＳ等のプログラムは、記録媒体（例えば、ＣＤ−ＲＯＭ、磁気ディスク）に書き込んだり、記録媒体から読み出すことが考えられる。
【００３６】
【発明の効果】
以上説明したように本発明によれば、ゲートウェイによる、クライアントからサーバーへのリクエスト、およびサーバーからクライアントへのレスポンスの中継において、高負荷時にサーバー側に必要以上の負荷とリソースの消費をかけないようにすることができる。
【図面の簡単な説明】
【図１】従来技術によるゲートウェイの構成例を示す図である。
【図２】本発明の実施形態に係るゲートウェイの構成例を示す図である。
【図３】上り通信プロトコル制御部で行う処理例を示すフローチャートである。
【符号の説明】
１０、１１０  ゲートウェイ
２０、１２０  ゲートウェイアプリケーション
２２、１２２  上り通信プロトコル制御部
２４  輻輳検出及び流量制限部
２６、１２６  下り通信プロトコル制御部
３１、１３１  上り受信バッファ
３２、１３２  下り送信バッファ
３６、１３６  上り送信バッファ
３７、１３７  下り受信バッファ
４０、１４０  クライアント
５０、１５０  サーバー
【図１】
0003993750.tif 000002
【図２】
0003993750.tif 000003
【図３】
0003993750.tif 000004