JP4736407B2 - 中継装置 - Google Patents

中継装置 Download PDF

Info

Publication number
JP4736407B2
JP4736407B2 JP2004336864A JP2004336864A JP4736407B2 JP 4736407 B2 JP4736407 B2 JP 4736407B2 JP 2004336864 A JP2004336864 A JP 2004336864A JP 2004336864 A JP2004336864 A JP 2004336864A JP 4736407 B2 JP4736407 B2 JP 4736407B2
Authority
JP
Japan
Prior art keywords
request
uri
response
cache
relay device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004336864A
Other languages
English (en)
Other versions
JP2005122756A5 (ja
JP2005122756A (ja
Inventor
英郎 青木
隆 西門
大輔 横田
泰弘 高橋
文雄 野田
由晃 竹島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004336864A priority Critical patent/JP4736407B2/ja
Publication of JP2005122756A publication Critical patent/JP2005122756A/ja
Publication of JP2005122756A5 publication Critical patent/JP2005122756A5/ja
Application granted granted Critical
Publication of JP4736407B2 publication Critical patent/JP4736407B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、輻輳制御方法に係り、特に、クライアントとサーバ間のデータ通信における輻輳制御方法に関する。
インターネットが急速に普及し、チケット予約や銀行・証券取引等、従来営業店窓口で行われていたサービスもインターネットを介して提供されるようになってきた。また、通信技術も進歩し、家庭やオフィスからだけでなく携帯電話などからでもサービスを享受できる環境が整ってきた。
しかし、各クライアントが直接サーバにサービス要求をする従来の方式では、クライアントの要求がサーバに集中する。その結果、数多くの利用者からの要求に通信回線容量や処理するサーバ装置の能力が対応できず、時間帯やアクセス先によっては、利用者がいくら要求をしてもなかなか応答が返ってこないという場合が発生するようになってきた。
この点に関しては、一般に、Web通信中継装置を設置することで改善できる。クライアントからの要求は、Web通信中継装置と呼ばれる中継処理装置を経由して処理する。Web通信中継装置では、過去の通信内容の一部を記憶(キャッシュという)する記憶部(キャッシングモジュール)を設置することにより、記憶した通信に関しては、サーバへ接続することなく要求を処理できる。プロキシ装置は、その有効性から多数の通信システムで導入されている。
現在では、1000万人規模のユーザを対象とする通信システムに大規模Web通信中継装置が設置されるようになってきた。このような通信システムでは、大規模Web通信中継装置に対する要求が過剰に集中する。要求の集中が起こると、通信路の混雑や装置の負荷が上昇するため、ユーザは通信システムが提供するサービスを利用しにくくなる。また、過度な集中が継続すると大規模Web通信中継装置に障害(輻輳)が発生し動作を停止する可能性がある。大規模Web通信中継装置の動作が停止すると通信システムとして機能しなくなり、通信システムを利用する全ユーザがサービスを利用できなくなる。
本発明では、以上の点を鑑み、大規模Web通信中継装置を主としたWeb通信中継装置に発生する障害を回避、軽減することを目的とする。
上記の課題を解決するため、本発明では、例えば、Web通信中継装置がユーザの要求する通信内容ごとに要求処理の制御を変更する機構を設ける。Web通信中継装置の負荷が上昇するのを避けるために、実施する制御を判定する機構は、新たな処理部を設けるのではなく、Web通信中継装置に従来から存在する記憶部(キャッシングモジュール)を利用する。
Web通信中継装置は、現在装置が行っている通信内容と装置の状態を検証したうえで、新たに到着した要求に対する処理方針を決定する。これにより、省略できる通信を検出でき、通信量の削減することで、Web通信中継装置が輻輳状態に陥ることを回避する。また、輻輳の原因となる通信処理を通常の処理とは異なる方法で処理する。例えば、輻輳の原因となる通信を優先的に記憶する。これによりWeb通信中継装置が輻輳状態に陥るのを回避する。
Web通信中継装置は、要求に対する制御を決定する過程で、輻輳状態に近づいている通信を検出する。輻輳状態に近い通信に関しては、輻輳が改善されるまで処理をせず、ユーザに対して通信を控えるようアナウンスする。これにより、輻輳状態の悪化を防止し、Web通信中継装置が障害で利用不能となるのを回避する。
本発明の大規模Web通信中継装置では、ユーザが送信する要求を負荷分散装置で受信する。負荷分散装置は、大規模Web通信中継装置内に設置した複数のWeb通信中継装置に負荷を分散して送信する。Web通信中継装置では、キャッシングモジュールがユーザの要求を判断し、Web通信中継装置が行う制御を決定する。輻輳制御の種類としては、要求集約、優先キャッシュ、アクセス抑止、アクセス監視および規制の4つがある。
複数のユーザがキャッシュ可能なサービスの要求を行い、かつ、Web通信中継装置がサーバに通信する必要がある場合、Web通信中継装置は、サーバに対しては複数の要求が1つの要求に集約して通信する。これにより、Web通信中継装置とサーバ間の通信量が削減する。また、サーバに対する要求が減少するため、サーバの負荷が上昇するのを防止する。Web通信中継装置がサーバに対して行う輻輳を回避し、負荷も軽減するため、Web通信中継装置は、ユーザに迅速に応答できる。
本発明のWeb通信中継装置は、特定のサービスを優先的にキャッシングする方法を提供する。この方法を利用して、通信システム提供者は輻輳の原因となるサービスを優先的にキャッシングするよう登録できる。従来の方法では、キャッシングするデータに優先、非優先の区別がないため、重要なデータをWeb通信中継装置内で保持しつづけることができなかった。しかし、この方法により、Web通信中継装置は、ユーザが必要とするデータを保持できる。ユーザは、より多くのサービスを高速に受けることできる。
本発明のWeb通信中継装置は、特定のサービスをユーザが利用するのを抑止する方法を提供する。この方法を利用して、通信システム提供者は、輻輳の原因となり通信システムが提供すべきではないサービスをユーザに提供しないことができる。提供しないサービスに関する要求には、Web通信中継装置がユーザに対して提供できない旨の返答を行い要求処理が終了する。
従来では、抑止機構を持たないため、Web通信中継装置は不要なサーバとの通信に資源を浪費していた。また、ユーザは、要求したサービスが提供されないまま待ち続けたり、何度も通信を試みる可能性があった。本発明の方法を利用することで、サービスが提供されないことが迅速に把握できる。
本発明のWeb通信中継装置は、サービス接続数が確認できる要求について、その接続数を計測する。要求集約が不可能な要求にもかかわらず、同一の要求が非常に多い場合は、一定数以上の要求を接続不可として処理できる。この際、Web通信中継装置は、ユーザに対して要求結果として接続不可の理由を通知する。これにより、サーバの負荷を軽減するとともにWeb通信中継装置の輻輳を回避する。また、ユーザは、要求したサービスが提供されないまま待つことなく、サービスの提供状況を把握できる。
本発明の第1の解決手段によると、クライアント端末とサーバ装置の間に設けられた通信中継装置における輻輳制御方法であって、クライアント端末からの要求に従い、キャッシュヒットした際は記憶されている要求内容をクライアント端末に送信し、キャッシュヒットしなかった場合又はキャッシュを利用しない要求の場合、要求内容をサーバ装置から受信してクライアント端末に送信するための前記輻輳制御方法において、入力されたクライアント端末からの要求に基づき、キャッシュ可又はキャッシュ不可かを判断するメソッドチェックステップと、前記メソッドチェックステップによりキャッシュ可であると判断された場合、クライアント端末からの要求に含まれるURIのチェックを行いキャッシュ可又は不可かを判断する第1URIチェックステップと、前記第1URIチェックステップによる判断に従い、キャッシュ可であれば、URIハッシュの検索を行い、通常キャッシュ、優先キャッシュ又はアクセス抑止のいずれかの処理が行われるか決定する第1URIハッシュ検索ステップと、前記第1URIハッシュ検索ステップによる決定に従い、通常キャッシュ処理、優先キャッシュ処理又はアクセス抑止処理のいずれかの処理を行うステップとを含む輻輳制御方法を提供する。
本発明の第2の解決手段によると、クライアント端末とサーバ装置の間に設けられた通信中継装置における輻輳制御方法であって、クライアント端末からの要求に従い、キャッシュヒットした際は記憶されている要求内容をクライアント端末に送信し、キャッシュヒットしなかった場合又はキャッシュを利用しない要求の場合、要求内容をサーバ装置から受信してクライアント端末に送信するための前記輻輳制御方法において、入力されたクライアント端末からの要求に基づき、キャッシュ可又はキャッシュ不可かを判断するメソッドチェックステップと、前記メソッドチェックステップによりキャッシュ不可であると判断された場合、クライアント端末からの要求に含まれるURIのチェックを行う第2URIチェックステップと、URIハッシュの検索を行い、アクセス抑止又はアクセス監視・規制のいずれかの処理が行われるか決定する第2URIハッシュ検索ステップと、前記第2URIハッシュ検索ステップによる決定に従い、アクセス抑止処理又はアクセス監視・規制処理のいずれかの処理を行うステップとを含む輻輳制御方法を提供する。
本発明の第3の解決手段によると、クライアント端末とサーバ装置の間に設けられた通信中継装置における輻輳制御方法であって、クライアント端末からの要求に従い、キャッシュヒットした際は記憶されている要求内容をクライアント端末に送信し、キャッシュヒットしなかった場合又はキャッシュを利用しない要求の場合、要求内容をサーバ装置から受信してクライアント端末に送信するための前記輻輳制御方法において、入力されたクライアント端末からの要求に基づき、キャッシュ可又はキャッシュ不可かを判断するメソッドチェックステップと、前記メソッドチェックステップによりキャッシュ可であると判断された場合、クライアント端末からの要求に含まれるURIのチェックを行いキャッシュ可又は不可かを判断する第1URIチェックステップと、前記第1URIチェックステップによる判断に従い、キャッシュ可であれば、URIハッシュの検索を行い、通常キャッシュ又は優先キャッシュのいずれかの処理が行われるか決定する第1URIハッシュ検索ステップと、前記メソッドチェックステップによりキャッシュ不可であると判断された場合、クライアント端末からの要求に含まれるURIのチェックを行う第2URIチェックステップと、前記第1URIチェックステップによる判断によりキャッシュ不可である場合又は前記第2URIチェックステップを経て移行され、URIハッシュの検索を行い、アクセス抑止又はアクセス監視・規制のいずれかの処理が行われるか決定する第2URIハッシュ検索ステップと、前記第1又は第2URIハッシュ検索ステップによる決定に従い、通常キャッシュ処理、優先キャッシュ処理、アクセス抑止処理、アクセス監視・規制処理のいずれかの処理を行うステップとを含む輻輳制御方法を提供する。
本発明を利用することにより、通信システム提供者は、従来よりも信頼性のある通信システムをユーザに提供することができる。また、ユーザは、従来よりも少ない待ち時間で応答の得られる通信システムを利用できる。
A.ハード構成と概略構成
図1に、通信システムの構成図を示す。通信システム100は、例えば、クライアント端末1−1〜1−iと、大規模Web通信中継装置2と、Web通信装置3−1〜3−jとを含む。クライアント端末1−1〜1−iは、例えば、Webコンテンツの取得(アクセス)要求、データ送受信、画面表示等を行うユーザ用(端末)装置である。Web通信装置3−1〜3−jは、例えば、クライアント端末1−1〜1−iからの要求に応じてWebコンテンツを送出する装置であって、ディスク容量を上限としてコンテンツデータを格納している。なお、本実施の形態では、主に大規模なWeb通信装置について説明しているが、これに限らず、本発明は、適宜の規模の通信装置に適用することができる。
大規模Web通信中継装置2は、例えば、データ中継装置21と、認証装置22と、システム管理装置23と、レイヤ7負荷分散装置24と、Web通信中継装置25−1〜25−nと、アクセス規制装置26とを備える。
データ中継装置21は、例えば、大規模Web通信中継装置2内外の各装置、Web通信装置3−1〜3−j及びクライアント端末1−1〜1−iとの間でデータ送受信を中継する装置であって、送受信データパケットのヘッダーに記された宛先装置へパケットを転送する。認証装置22は、大規模Web通信中継装置2が提供する中継サービスが、予め登録された(正規の)クライアント端末1−1〜1−iと正規のWeb通信装置3−1〜3−j間のものであることを認証するための装置であって、ユーザ情報やサービス情報を登録したデータベースを備える。システム管理装置23は、例えば、大規模Web通信中継装置2内の各装置を集中的に管理するための装置である。
レイヤ7負荷分散装置24は、例えば、複数のクライアント端末1−1〜1−iからのWebコンテンツ取得要求を、複数のWeb通信中継装置25−1〜25−nに振分け、中継処理の負荷を分散する装置であって、送受信パケットヘッダーや、Webコンテンツ要求・送信ヘッダーに記された宛先等の記述を解釈して振分け経路を定め、受信したデータパケットをその経路へ送信する。Web通信中継装置25−1〜25−nは、例えば、クライアント端末1−1〜1−iからのWebコンテンツ取得要求を受け付け、Web通信装置3−1〜3−jに要求を中継したり、クライアント端末1−1〜1−iとWeb通信装置3−1〜3−j間のデータ送受信を中継する装置である。アクセス規制装置26は、例えば、多量のWebコンテンツ取得要求が短時間に集中した場合に、大規模Web通信中継装置2の処理限界を超えないよう、アクセス量(取得要求量)を規制するための装置である。
図2に、Web通信中継装置の構成図を示す。Web通信中継装置25−1は、例えば、主記憶装置30と、この主記憶装置30に記憶されたWeb通信中継ソフトウェア31と、入出力装置32と、プロセッサ33と、レイヤ7負荷分散装置24とデータパケットの送受信を行う通信装置34と、二次記憶装置35と、これらの各部材を相互の接続するバス36とを備える。
二次記憶装置35は、例えば、磁気ディスクなどの装置(不揮発性記憶装置)であって、プログラム及び各種の設定ファイルを記憶する。二次記憶装置35は、以下のような役割を担う。
(1)Web通信中継装置25−1のOS(オペレーティングシステム)データを格納し、装置起動時にそのデータが主記憶装置30にロードされる。
(2)OS上で動作する様々なアプリケーションプログラム(データ・設定ファイル)を格納し、アプリケーションの起動時に主記憶装置30にロードされる。
(3)Web通信中継装置25−1が中継するWebコンテンツデータをキャッシュデータとして格納する。
なお、実施例のWeb通信中継装置では、クライアントからの要求をセッションと呼ばれる処理単位で処理している(1つの要求が1つのセッションに対応する)。セッションがキャッシュを用いる際にキャッシュエントリを確保する。セッションがサーバと通信してキャッシングをするときは、キャッシュエントリを所有している必要がある。本輻輳制御方式は、個々のセッション処理の中で行われる。
図3は、大規模Web通信中継装置におけるデータの送受信についての説明図である。なお、説明の便宜上、上述した部材と同一部材には同一符号を付し、構成、機能は同様である。また、各Web通信中継装置25−1〜25−nは同様の構成であるので、ここでは、Web通信中継装置25−1について説明する。
Web通信中継ソフトウェア31は、Web通信中継装置25−1に記憶されており、例えば、HTTPモジュール41と、キャッシングモジュール42と、プロキシエンジン43とを含む。ここで、図中のデータa〜dは、a:クライアント端末1−1〜1−iの要求、b:Web通信中継ソフトウェア31の応答、c:Web通信中継ソフトウェア31の要求、d:Web通信装置3−1〜3−jの応答をそれぞれ示す。
なお、キャッシュヒットのときは、データa、bのみが通信路を流れる(図4参照)。また、キャッシュミスヒットのときは、データa、c、d,bの順でデータが通信路を流れる(図5参照)。以下に各処理について概略説明する。
a:クライアントの要求
まず、クライアント端末1−1〜1−iからクライアント要求が送信されると、大規模Web通信中継装置2は、それを受信する。大規模Web通信中継装置2のデータ中継装置21では、要求をレイヤ7負荷分散装置24に転送し、レイヤ7負荷分散装置24は、いずれかのWeb通信中継装置(ここでは、Web中継装置25−1)に送る。Web通信中継装置25−1内のWeb通信中継ソフトウェア31では、プロキシエンジン43を経て、HTTPモジュール41とキャッシングモジュール42が、そのクライアント要求を受信する。
b:Web通信中継ソフトウェアの応答
つぎに、クライアント要求を受信したWeb通信中継装置25−1は、通信内容を解析する。ここで、Web中継装置25−1が、クライアント要求に対応しているWebページをキャッシュで記憶している場合、その内容をレイヤ7負荷分散装置24、データ中継装置21を経て、クライアント端末1−1へ送信する。
c:Web通信中継ソフトウェアの応答
一方、Web中継装置25−1が、クライアント要求に対応しているWebページをキャッシュで記憶していない場合、及び/又はクライアント要求にキャッシュ利用不可の指示がある場合、Web中継装置25−1は、クライアント要求に関する情報を、レイヤ7負荷分散装置24、データ中継装置21を経て、Web通信装置3−1〜3−jの該当する装置へ送信する。
d:Web通信装置の応答
Web通信装置3−1〜3−jは、クライアント要求を受信すると、クライアント端末に、データ中継装置21を介してクライアント要求に対応するWebページを応答する。さらに、データ中継装置21は、レイヤ7負荷分散装置24を経てWeb中継装置25−1に、その通信内容やWebページを転送する。Web中継装置25−1では、そのWebページをキャッシングモジュール42にキャッシュする。
図4は、キャッシュヒット時の説明図及びシーケンス図である。なお、ここでのシーケンスは、構成図中の点線の矢印に対応している。まず、クライアント端末1−1〜1−iからの要求信号(データa)は、大規模Web通信中継装置2内のデータ中継装置21、レイヤ7負荷分散装置24を経て、Web通信中継ソフトウェア31内のHTTPモジュール41を経て、キャッシングモジュール42に入力され、ここで、キャッシュヒットと判定される。つぎに、Webページは、Web通信中継ソフトウェア31の応答信号(データb)として、再び、キャッシングモジュール42、HTTPモジュール41、レイヤ7負荷分散装置24、データ中継装置21を経て、クライアント端末1−1〜1−iに送信される。
図5は、キャッシュミスヒット時の説明図及びシーケンス図である。なお、ここでのシーケンスは、構成図中の点線の矢印に対応している。まず、クライアント端末1−1〜1−iからの要求信号(データa)は、大規模Web通信中継装置2内のデータ中継装置21、レイヤ7負荷分散装置24を経て、Web通信中継ソフトウェア31内のHTTPモジュール41を経て、キャッシングモジュール42に入力され、ここで、キャッシュミスヒットと判定される。つぎに、Web通信中継ソフトウェア31の要求信号(データc)が、キャッシングモジュール42、HTTPモジュール41、レイヤ7負荷分散装置24、データ中継装置21を経て、Web通信装置3−1〜3−jに送信される。さらに、これに応答してWeb通信装置3−1〜3−jのWebページを含む応答信号(データd)は、大規模Web通信中継装置2内のデータ中継装置21、レイヤ7負荷分散装置24を経て、Web通信中継ソフトウェア31内のHTTPモジュール41を経て、キャッシングモジュール42に入力される。つぎに、Webページは、Web通信中継ソフトウェア31の応答信号(データb)として、再び、キャッシングモジュール42、HTTPモジュール41、レイヤ7負荷分散装置24、データ中継装置21を経て、クライアント端末1−1〜1−iに送信される。
図6は、輻輳時の説明図及びシーケンス図である。なお、ここでのシーケンスは、構成図中の点線の矢印に対応している。まず、クライアント端末1−1〜1−iからの要求信号(データa)は、大規模Web通信中継装置2内のデータ中継装置21、レイヤ7負荷分散装置24を経て、Web通信中継ソフトウェア31内のHTTPモジュール41を経て、キャッシングモジュール42に入力される。
ここで、Web通信中継ソフトウェア31は、例えば、Web通信装置3−1〜3−jが輻輳中の場合、規制コンテンツを生成する。ここで、例えば、ある一定以上の要求がひとつのWebページに集中した場合、輻輳と判断される。この規制コンテンツは、データbに含まれ、クライアント端末1−1〜1−iに送信される。その際、規制コンテンツは、Web通信中継ソフトウェア31の応答信号(データb)として、再び、キャッシングモジュール42、HTTPモジュール41、レイヤ7負荷分散装置24、データ中継装置21を経て、クライアント端末1−1〜1−iに送信される。
図7は、アクセス抑止対象コンテンツが要求された場合の説明図及びシーケンス図である。なお、ここでのシーケンスは、構成図中の点線の矢印に対応している。まず、クライアント端末1−1〜1−iからのアクセス抑止対象コンテンツを含む要求信号(データa)は、大規模Web通信中継装置2内のデータ中継装置21、レイヤ7負荷分散装置24を経て、Web通信中継ソフトウェア31内のHTTPモジュール41を経て、キャッシングモジュール42に入力される。ここで、Web通信中継ソフトウェア31は、例えば、クライアント端末1−1〜1−iからアクセス抑止対象コンテンツが要求されている、抑止アナウンスを生成する。この抑止アナウンスは、データbに含まれ、クライアント端末1−1〜1−iに送信される。その際、抑止アナウンスは、Web通信中継ソフトウェア31の応答信号(データb)として、再び、キャッシングモジュール42、HTTPモジュール41、レイヤ7負荷分散装置24、データ中継装置21を経て、クライアント端末1−1〜1−iに送信される。
図8は、Web通信中継ソフトウェア31の内部構成についての説明図である。Web通信中継ソフトウェア31は、主記憶装置30に記憶される。Web通信中継ソフトウェア31は、例えば、データ領域50と、セッション処理プロセス45とを含む。セッション処理プロセス45は、例えば、HTTPモジュール41、キャッシングモジュール42、プロキシエンジン43を含む。プロキシエンジン43は、Web通信中継ソフトウェア31の基本機能を実現し、通信データ送受信やセッション管理などを行う。HTTPモジュール41は、HTTPパケットの処理を行う。キャッシングモジュール42は、HTTPのキャッシングと輻輳制御を行う。また、データ領域は、例えば、プロキシエンジン使用領域、HTTPモジュール使用領域、キャッシングモジュール使用領域を含む。さらに、キャッシングモジュール使用領域は、例えば、URIハッシュ、URIエントリ及びURI文字列、アクセス規制/抑止、メッセージ及びフォーマット、キャッシュエントリ領域、キャッシュデータ領域を含む。
図9は、URIハッシュとURIエントリによるURI管理についての説明図である。URIハッシュ70は、例えば、Key0〜nのURIエントリのリスト70−0〜70−nを含む。Key0のURIエントリのリスト70−0は、例えば、URIエントリ71として、URI1(監視・規制)71−1と、URI2(抑止)71−2とを含む。また、Key2のURIエントリのリスト70−2は、例えば、URIエントリ71として、URI3(監視・規制)71−3と、URI4(通常キャッシュ)71−4と、URI5(優先キャッシュ)71−5とを含む。Key nのURIエントリのリスト70−nは、例えば、URIx(通常キャッシュ)71−xを含む。
ここで、URI4(通常キャッシュ)71−4とURIx(通常キャッシュ)71−xは、通常キャッシュエントリに通常キャッシュデータを含む。また、URI5(優先キャッシュ)71−5は、優先キャッシュエントリに優先キャッシュデータを含む。ここで、URI管理について詳細に説明する。URIエントリは、URIをハッシュ関数にかけて算出したハッシュキーを元にして、同一ハッシュキーでリスト化して管理している。この例では、Key0にはURI1(監視・規制)71−1、URI2(抑止)71−2、Key2にはURI3(監視・規制)71−3、URI4(通常キャッシュ)71−4、…のURIエントリがリストされている。また、リスト中の各々のURIは、要求集約で監視規制対象になっていたり、オペレータ指示で抑止対象や優先キャッシュ対象になっていたり、通常キャッシュであったり、渾然一体となってリスト化されている。このうち、例えば、通常キャッシュであるURI4(通常キャッシュ)71−4のエントリは、通常キャッシュエントリの特定のアドレスを示し、同様に、優先キャッシュであるURI5(優先キャッシュ)71−5のエントリは、優先キャッシュエントリの特定のアドレスを示している。
また、主記憶装置30上のWeb通信中継ソフトウェア内キャッシングモジュール使用領域には、例えば、通常キャッシュエントリ領域、優先キャッシュエントリ領域、キャッシュデータ領域が設けてあり、それぞれ所定の大きさに区切って準備されている。実際のURI4(通常キャッシュ)71−4のコンテンツデータは、URI4(通常キャッシュ)71−4のキャッシュエントリで示されたアドレスの通常キャッシュエントリ領域に格納され、コンテンツの大きさによって必要な量だけ通常キャッシュデータ領域が追加される。同様に、実際のURI5(優先キャッシュ)71−5のコンテンツデータは、URI5(優先キャッシュ)71−5のキャッシュエントリで示されたアドレスの優先キャッシュエントリ領域に格納され、コンテンツの大きさによって必要な量だけ優先キャッシュデータ領域が追加される。
つぎに、主記憶装置30に記憶されるキャッシングモジュール使用領域について説明する。なお、キャッシングモジュール使用領域は、主記憶装置30以外の適宜の記憶装置内に設けることができる。図10は、キャッシングモジュール使用領域内のデータ構造についての説明図(1)である。キャッシングモジュール使用領域は、例えば、URIエントリ71、キャッシュエントリ72とを含む。ここで、URIエントリ71としては、例えば、URI(例:http://www.abcde.co.jp/index.html)、制御タイプ(例:通常キャッシュ)、アクセスカウンタ(例:3)、キャッシュエントリ情報を含む。
キャッシュエントリ72は、例えば、URIエントリ情報(例:http://www.abcde.co.jp/index.htmlに関するURIエントリ)、キャッシュエントリタイプ(例:通常キャッシュ)、キャッシュの状態(例:キャッシング中)、オーナーセッション(例:セッションNo.n)、応答待ちセッションリスト(例:セッションNo.x,No.y)、キャッシュデータ情報を含む。なお、優先キャッシュエントリと通常キャッシュエントリは、キャッシュエントリタイプの値が異なるが、内容は同様である。また、キャッシングモジュール42内では、優先キャッシュエントリは、運用者の要求がない限り削除されない。但し、通常キャッシュエントリは、資源が不足すると削除される。
図11は、キャッシングモジュール使用領域内のデータ構造についての説明図(2)である。キャッシングモジュール使用領域は、また、例えば、キャッシュデータ73を含む。キャッシュデータ73は、例えば、キャッシュエントリ情報(例:http://www.abcde.co.jp/index.htmlに関するキャッシュエントリ)、キャッシュデータタイプ(例:通常キャッシュ)、キャッシュデータを参照しているセッション数(例:3)、次のキャッシュデータ情報、キャッシュデータを含む。なお、優先キャッシュデータと通常キャッシュデータは、キャッシュデータタイプの値が異なるが、内容は同様である。また、キャッシングモジュール42内では、優先キャッシュデータは、運用者の要求がない限り削除されない。但し、通常キャッシュデータは、資源が不足すると削除される。
B.詳細動作
つぎに、キャッシング及び輻輳制御処理を説明する。図12は、キャッシング及び輻輳制御処理について基本的な処理を示すフローチャートである。まず、Web通信中継ソフトウェア31は、キャッシュチェックおよび制御種別判定を行う(S201)。Web通信中継ソフトウェア31は、この判定結果に応じて、例えば、通常キャッシュの制御(S203)、優先キャッシュの制御(S205)、アクセス抑止の制御(S207)、アクセス監視・規制の制御(S209)、制御なし(S211)のいずれか又は複数の制御を行い、処理を終了する。
以下に、キャッシュチェックおよび輻輳制御処理判定について詳細に説明する。図13は、キャッシュチェックおよび輻輳制御処理判定についてのフローチャートである。まず、Web通信中継ソフトウェア31に含まれるキャッシングモジュール42は、キャッシュ可又は不可か制御不可能かに関してメソッドチェックを行い(S101)、キャッシュ可であれば、URIのチェック(1)を行う(S103)。キャッシングモジュール42は、ステップS103でキャッシュ可であれば、URIハッシュ検索(1)(S107)を行い、通常キャッシュ(S111)、優先キャッシュ(S113)、アクセス抑止(S115)のいずれかの処理の決定を行う。
また、キャッシングモジュール42は、ステップS101のメソッドチェックにおいてキャッシュ不可であれば、URIのチェック(2)(S105)を行い、さらに、URIハッシュ検索(2)(S109)を行い、アクセス抑止(S115)、アクセス監視・規制(S117)のいずれかの処理の決定を行う。なお、このURIハッシュ検索(2)は、ステップS103でキャッシュ不可である場合でも行われる。また、HTTPモジュール41又はキャッシングモジュール42は、ステップS101のメソッドチェックで制御不可能である場合は、制御なし(S119)に決定する。ここで、上述の各処理について詳細に説明する。
(S101のメソッドチェック)
メソッドチェックでは、次のような処理が実行される。
(a)まず、クライアントのHTTP要求のリクエストメソッドを取得する。
(b)ここで、リクエストメソッドがGET、HEADなら「キャッシュ可」の場合の処理を行う。
(c)一方、リクエストメソッドがOPTIONS、POST、DELETE、TRACE、CONNECTなら「キャッシュ不可」の場合の処理を行う。
(d)さらに、リクエストメソッドがRFC2616で定義されていない拡張メソッドである場合は、「制御不可能」の場合の処理を行う。
図14は、クライアントのHTTP要求についての説明図である。クライアントのHTTP要求80は、例えば、図示のように、リクエストメソッド(ここでは、GET)と、URI(ここでは、http://www.abcde.co.jp/)とを含む。この例では、上述の処理(a)でリクエストメソッドとしてGET'が取得され、「キャッシュ可」の処理に移行する。
(ステップS103、105のURIチェック(1)(2))
(a) ここでは、まず、スキームがHTTPであることを確認する。
(b) つぎに、パスをチェックし、文字「?」を含んでいるかどうか検査する。
(c) また、パスをチェックし、.cgi,.asp を含んでいるかどうか検査する。
(d) さらに、クエリ有無を判断して、クエリを外す加工処理を行う。なお、「クエリが有る」とは、”?”がついていることを指す。
(e) (b),(c)で該当するものがあった場合は「URIの加工」をおこなった文字列を共用メモリに確保する。
(f) (b),(c)で該当した場合は、「キャッシュ不可」の場合の処理を行い、一方、(b)、(c)で該当しなかった場合は、「キャッシュ可」の場合で処理を進める。
図15は、URIの加工についての説明図である。URIは、例えば、図示のように、URI(例えば、http: //www.abcde.co.jp/index.html)のうち、「http:」をスキーム、「//www.abcde.co.jp/index.html」をパスとする。また、URIの加工とは、例えば、図示のように、URI(例えば、http://www.abcde.co.jp/a.cgi?a1=arg1&a2=arg2)に付加されているクエリを外すことである。この例では、クエリは、?a1=arg1&a2=arg2'であり、これを除いて、http://www.abcde.co.jp/a.cgi とする。
このように、URIチェックでは、URIハッシュ検索の前に、CGIなど動的に生成されるページのチェックを行う。具体的には、URIで示されたファイルの識別子と、CGI特有のパラメータ(引数)の有無によって判定を行い、CGIなど動的に生成されるページであると判定した場合には、引数の省略処理を行って、簡略化した短いURIを生成する。これにより、さまざまなクエリを持つCGIを、クエリを含めた別々のURIとして処理するのではなく、1つのURIとして処理し、アクセスの監視・規制を実現する。また、URIのチェック(1)では、上記判定と共に、キャッシュ可否の判定を行う。一方、URIのチェック(2)では、予めキャッシュ不可のURIであることが分かっているため、キャッシュ可否判定処理を行わない。
(ステップS107、109のURIハッシュ検索(1)(2))
ステップS107のURIハッシュ検索(1)では、次のような処理を実行する。例えば、メモリ上にキャッシュの領域があり、クライアント端末と通信しているURIはメモリ上に記憶されており、そのメモリテーブルをURIハッシュとすることができる。
(a)URIハッシュを検索する。
(b)URIエントリにヒットした場合は、URIエントリの制御タイプを参照し、そこに記述されている制御に決定する。
(c)URIエントリにヒットしなかった場合は、「通常キャッシュ」処理に決定する。
ステップS109のURIハッシュ検索(2)では、
(a)「URIの加工」が行われなかった場合は、HTTP要求にあるURIを使ってURIハッシュを検索する。
(b)URIエントリにヒットした場合は、URIエントリの制御フラグを参照し、そこに記述されている制御に決定する。
(c)URIエントリにヒットしなかった場合は、「アクセス監視・規制」処理に決定する。
(ステップS111の通常キャッシュに決定)
図16は、通常キャッシュ処理についてのフローチャートである。
(1)まず、キャッシュヒットを判定する(S111−1)。
(1−1)ヒットしなかった場合は、最初のアクセス要求としてWebサーバへ要求を中継する処理に移り、キャッシングモジュール42は、例えば、(a)通常URIエントリの作成、(b)通常キャッシュエントリの作成、(c)URIハッシュへ登録、(d)キャッシュエントリにオーナの設定、等を行う通常キャッシング前処理を行う(S111−11)。つぎに、Webサーバへ要求を転送し(S111−12)、Webサーバから応答を受信し(S111−13)、さらに、クライアントへ応答を転送する(S111−14)。つぎに、キャッシングモジュール42は、通常キャッシングを行う(ステップS111−15)。ここで、ステップS111−15の通常キャッシングでは、例えば、次の処理が行われる。
(a)通常キャッシュデータの確保。
(b)Web通信装置の応答をコピー。
(c) (a)、(b)をデータがあるまで続ける。
(d)応答待ちセッションリストに登録があるか検査する。
(e) (d)で応答待ちセッションがある場合は、処理開始指示を送る。
(f)オーナの設定を解除する。
(1−2)ヒットした場合、要求集約判定に移る(S111−2)。ここでは、キャッシングモジュール42は、例えば、Webサーバへのアクセス負荷を軽減するため、キャッシュできるコンテンツに対して、アクセス要求を一つに集約する機能を備える。この機能は、Webサーバから応答が戻る前に、同一コンテンツに対して複数の要求が重複した場合、最初の要求だけWebサーバへ中継し、残りの要求は一旦処理待ち状態とし、最初の要求に対する応答が戻ってから処理を再開するものである。具体的には、集約処理を以下のように行う。ここで、ステップS111−2の集約判定処理では、(a)キャッシュの状態は、準備完了となっているかを判定し、準備完了となっているのであれば、Noとする。また、(b)キャッシュエントリのオーナは、現在判定処理を行っているセッションかを判定し、他のセッションがオーナである場合は、Yesとし、そうでなければ、Noとする。
(2)要求集約判定でYesの場合、Webサーバへ中継した要求の処理が終わるまで、処理を中止する(S111−3)。ここで、ステップS111−3の処理可能となるまで待機する処理では、(a)キャッシュエントリの応答待ちセッションリストにセッションを登録し、(b)呼び出されるまで待機する。
(3)つぎに、ステップS111−3の後、処理が可能になると、又は、ステップS111−2で集約を行わない場合、キャッシュ有効期限判定に移る(S111−4)。ここで、ステップS111−4のキャッシュ有効期限の判定では、キャッシュ中のRFC2616に記述されている通りに有効期限を計算し、期限内であれば、Yesとし、期限切れであれば、Noとする。
キャッシュ有効期限判定でYesの場合、キャッシュからデータを取り出す(S111−5)。ここで、ステップS111−5のキャッシュ取出しでは、(a)必要な分だけキャッシュデータをアクセスする。つぎに、ステップS111−5で取り出したデータを、クライアントへデータを転送する(S111−6)。なお、通常、このケースでは、直前に新鮮なデータがキャッシュされている確率が高い(何故なら、最初の要求がWebサーバからデータを取ってくるのを待っていた)ので、キャッシュが有効期限内にある確率も高い。結果として、Webサーバへのアクセス要求数が減り、アクセス負荷を軽減できる。
(4)一方、キャッシュ有効期限判定でNoの場合、Webサーバへ要求を転送し(S111−7)、Webサーバから応答を受信し(S111−8)、さらに、クライアントへ応答を転送する(S111−9)。つぎに、キャッシングモジュール42は、通常キャッシングを行う(S111−10)。なお、(1−1)で、最初のアクセスとして処理した要求は、通常キャッシング処理(S111−10)で、処理が中止になっている要求が存在するか検査する。存在した場合は、処理の再開指示を出す。
なお、ステップS111−1の前に、後述のような監視・規制の処理を追加することもできる。その際、後述のように、まず、監視・規制前処理(S117−1)を追加して、その後に、規制を行うか否か判定する(S117−2)。ここで、規制を行わない場合、ステップS111−1に移行する。一方、規制を行う場合、規制メッセージを取得する処理(S117−3)、規制メッセージよりコンテンツを作成する処理(S117−4)、及び、クライアントへコンテンツを転送する処理(S117−5)を実行する。さらに、ステップS111−6、S111−10、S111−15の後に、監視・規制後処理(117−9)が追加され、その実行後、処理終了となる。
図17は、Web通信装置のHTTP応答の説明図である。このWeb通信装置のHTTP応答85は、例えば、ステップS111−8、13に含まれるものである。
図18は、Webコンテンツデータの管理についての説明図である。まず、Web通信中継ソフトウェア31内のキャッシングモジュール42は、Web通信装置HTTP応答85を受信する。キャッシングモジュール42は、Web通信装置HTTP応答85を、例えば、Web通信装置HTTP応答Part 1を含むキャッシュエントリ55−1と、Web通信装置応答データPart 2を含むキャッシュデータ55−2と、Web通信装置応答データPart nを含むキャッシュデータ55−nとに区分し、キャッシングモジュール使用領域に格納する。
(ステップS113の優先キャッシュに決定)図19は、優先キャッシュ処理についてのフローチャートである。なお、ここでのフローチャートは、上述したステップS111の通常キャッシュ処理と比較して、通常キャッシュが優先キャッシュとなったことで変更された処理以外は、同様である。まず、キャッシングモジュール42は、キャッシュはヒットしたか否かを判定し(S113−1)、キャッシュヒットがあれば、集約を行うか否かを判定する(S113−2)。ここで、ステップS113−2の集約判定処理では、(a)キャッシュの状態は、準備完了となっているかを判定し、準備完了となっているのであれば、Noする。また、(b)優先キャッシュエントリのオーナは、現在判定処理を行っているセッションかを判定し、他のセッションが持ち主である場合は、Yesとし、そうでなければ、Noとする。
つぎに、キャッシングモジュール42は、ステップS113−2で集約を行う場合、処理可能になるまで待つ(S113−3)。ここで、ステップS113−3の処理可能になるまで待つ処理では、(a)キャッシュエントリの応答待ちセッションリストにセッションを登録し、(b)呼び出されるまで待機する。つぎに、キャッシングモジュール42は、キャッシュは有効期限内か否かを判定する(S113−4)。ここで、ステップS113−4のキャッシュ有効期限の判定では、RFC2616に記述されている通りに有効期限を計算し、期限内であれば、Yesとし、期限切れであれば、Noとする。ここで、キャッシュが有効期限内であれば、キャッシュを取出す(S113−5)。ここで、ステップS113−5のキャッシュ取出しでは、(a)必要な分だけキャッシュデータをアクセスする。つぎに、キャッシングモジュール42は、クライアントへキャッシュを転送する(S113−6)。
また、キャッシングモジュール42は、ステップS113−4でキャッシュが有効期限内でない場合、Webサーバへ要求を転送し(S113−7)、Webサーバから応答を受信し(S113−8)、さらに、クライアントへ応答を転送する(S113−9)。つぎに、キャッシングモジュール42は、優先キャッシングを行う(S113−10)。ここで、ステップS113−10の優先キャッシングでは、(a)優先キャッシュデータの確保、(b)Web通信装置の応答をコピー、(c) (a)、(b)をデータがあるまで続ける、(d)応答待ちセッションリストに登録があるか検査する、(e) (d)で応答待ちセッションがある場合は、処理開始指示を送る、(f)オーナの設定を解除する、等を行う。
また、キャッシングモジュール42は、ステップS113−1でキャッシュがヒットしなかった場合、通常キャッシング前処理を行う(S113−11)。ここで、ステップS113−11の優先キャッシング前処理としては、例えば、(a)優先URIエントリの作成、(b)優先キャッシュエントリの作成、(c)URIハッシュへ登録、(d)優先キャッシュエントリにオーナを設定することが挙げられる。
また、キャッシングモジュール42は、ステップS113−11の後、Webサーバへ要求を転送し(S113−12)、Webサーバから応答を受信し(S113−13)、さらに、クライアントへ応答を転送する(S113−14)。つぎに、キャッシングモジュール42は、優先キャッシングを行う(S113−15)。なお、ステップS113−15での優先キャッシングは、ステップS113−10での処理と同様である。
なお、ステップS113−1の前に、後述のような監視・規制の処理を追加することもできる。その際、後述のように、まず、監視・規制前処理(S117−1)を実行し、その後に、規制を行うか否か判定する(S117−2)。ここで、規制を行わない場合、ステップS111−1に移行する。一方、規制を行う場合、規制メッセージを取得する処理(S117−3)、規制メッセージよりコンテンツを作成する処理(S117−4)、及び、クライアントへコンテンツを転送する処理(S117−5)を実行する。さらに、ステップS113−6、S113−10、S113−15の後に、監視・規制後処理(117−9)が追加され、その実行後、処理終了となる。
(ステップS115のアクセス抑止に決定)
アクセス抑止コンテンツの作成方法としては、例えば、アクセス抑止メッセージとアクセス抑止コンテンツのフォーマットを用意して動的に生成する。例えば、上に、アクセス抑止メッセージ群とアクセス抑止コンテンツのフォーマットを格納しておく。キャッシングモジュール42は、状態に応じてふさわしいメッセージを取り出し、アクセス抑止コンテンツフォーマットに挿入することでアクセス抑止コンテンツを生成する。例えば、以下の図に示すように、抑止時の一般的なメッセージ93「要求されたコンテンツは利用できません」を使って、アクセス抑止メッセージフォーマットに挿入し、アクセス抑止コンテンツを生成している。
図20は、アクセス抑止処理についてのフローチャートである。まず、キャッシングモジュール42は、抑止メッセージを取得し(S115−1)、抑止メッセージよりコンテンツを作成して(S115−2)、クライアントへコンテンツを転送する(S115−3)。
図21は、抑止メッセージ、抑止コンテンツの説明図である。抑止メッセージ91は、例えば、「要求されたコンテンツはご利用できません」と対応させて表示されるものである。また、抑止コンテンツ93は、例えば、図示のように、表示される。
(ステップS117のアクセス監視・規制の決定)
図22は、アクセス監視・規制処理についてのフローチャートである。まず、キャッシングモジュール42は、監視・規制前処理を行う(S117−1)。ここで、ステップS117−1の監視・規制前処理では、次の処理を行う。
(a)URIエントリを作成していなければ作成する。
(b)(a)を実行した場合は、URIハッシュに登録する。
(c)URIエントリ中のアクセスカウントを1増やす。
つぎに、キャッシングモジュール42は、規制を行うか否かを判定する(S117−2)。ここで、ステップS117−2の規制判定処理では、(a)URIエントリのアクセスカウンタ、(b)URIエントリの規制実行フラグ、(c)装置に設定された規制開始接続数、(d)装置に設定された規制終了接続数を参照して、(b)の規制実行フラグが設定されていない場合、(a)>(c)ならばYesとし、そうでなければNoとする。一方、(b)の規制実行フラグが設定されている場合、(a)>(d)ならばYesとし、そうでなければNoとする。
キャッシングモジュール42は、ステップS117−2で規制を行う場合、規制メッセージを取得し(S117−3)、規制メッセージよりコンテンツを作成して(S117−4)、クライアントへコンテンツを転送する(S117−5)。一方、ステップS117−2で規制を行わない場合、キャッシングモジュール42は、Webサーバへ要求を転送し(S117−6)、Webサーバから応答を受信して(S117−7)、クライアントへ応答を転送する(S117−8)。
また、キャッシングモジュール42は、ステップS117−5、8の後、監視・規制後処理を行う(S117−9)。ここで、ステップS117−9の監視・規制後処理では、次の処理が行われる。
(a)URIエントリ中のアクセスカウントを1減らす。
(b)アクセスカウンタが0ならば、URIハッシュから削除する。
(c)(b)で削除を実行した場合は、URIエントリを削除する。
図23は、規制メッセージ、規制コンテンツの説明図である。アクセス規制メッセージの作成方法についても、上述したアクセス抑止コンテンツの作成方法と同様である。規制メッセージ95は、例えば、「現在、混み合っているため後でご利用ください」と対応させて表示されるものである。また、規制コンテンツ97は、例えば、図示のように表示される。
なお、キャッシングモジュール42では、例えば、ステップS117−2において、以下のような処理を行い、規制を行うか否かの判断基準としてもよい。
A.URIエントリ新たなパラメータを追加する。
B.パラメータには、過去にWeb通信中継装置がサーバに当該URIの要求を送信したときの応答時間の平均を入れる。
C.アクセス数が1以上のときは、A.で追加したパラメータも考慮し、例えば、アクセス数がある程度存在し、通信に設定時間以上かかりそうな場合は、上述の規制開始接続数に満たなくても規制する。
(ステップS119の制御なしに決定)図24は、制御なし処理についてのフローチャートである。まず、キャッシングモジュール42は、Webサーバへ要求を転送し(S119−1)、Webサーバから応答を受信して(S119−2)、クライアントへ応答を転送する(S119−3)。ここで、ガベージコレクション(装置内資源の再利用)について説明すると、キャッシュ領域に空きが無くなると、データ格納が古かったり、アクセス回数が低い領域を消去して再利用するために、ガベージコレクション処理を行う。ガベージコレクション処理の際には、優先キャッシュエントリは対象外とし、さらに優先キャッシュフラグを参照して、優先キャッシュとして使用されているデータ領域も処理の対象外とする追加判定を行っている。
なお、通信システムがRFC2616に未定義のリクエストメソッドに対応しないときは、制御なし(S119、S211)を設置することなく発明の効果が得られる。また、通信システムがHEADメソッドをキャッシュとして処理しない場合は、ステップS101におけるHEADメソッドの処理を(b)ではなく(c)で処理することで対応できる。以下に、アクセス監視・規制に用いる規制開始接続数と規制終了接続数を動的に変更する場合について説明する。
図25は、拡張したURIエントリを示す図である。URIエントリを図25に示すように拡張することで、アクセス監視・規制に用いる規制開始接続数と規制終了接続数は、あらかじめ装置に設定した値だけでなく、動的に変更した値を利用できる。例えば、規制開始時刻と規制終了時刻により、次回の規制開始接続数と規制終了接続数を定める。
図26は、規制開始接続数と規制終了接続数の動的な変更を示す説明図である。ここでは、規制開始接続数と規制終了接続数を動的に決定する場合の一例で、URI1とURI2に対する接続数の変化を示している。ここでは、URI1およびURI2とも、図25に示したURIエントリを利用しており、規制開始接続数と規制終了接続数にそれぞれ初期の接続数が設定されている。図26では、URI1とURI2が時刻t1にアクセス規制の制御が開始されている。この例では、規制開始を行うときにそれぞれのURIエントリに規制開始時刻t1を記憶する。規制が終了すると、t1と規制終了時刻t2およびt3を利用して、規制実施時間を求める。URI1の規制実施時間T1はt2−t1、URI2の規制実施時間T2はt3−t1となる。これを、通信システムが想定している標準規制実施時間Tと比較し、次の規制開始接続数と規制終了接続数を定める。この例では、T1の値がTより非常に小さいので、URI1の規制開始接続数と規制終了接続数を一定数増加している。また、T2は、Tとそれほど変わらないため、値を変更していない。
また、図25のように拡張したURIエントリでは、アクセス監視・規制を異なる方法で実施できる。Web通信ソフトウェア31内部のプロキシエンジン利用領域には、Web通信ソフトウェア31がWeb通信装置3−1〜3−nに対して要求した際の平均応答時間が保存されている。さらにURIエントリには、URIごとの平均応答時間が記憶されている。URIに対して一定数の要求がある場合、Web通信ソフトウェア31全体の平均応答時間とURIごとの平均応答時間を比較し、URIごとの平均応答時間の応答時間が著しく大きい場合は、アクセス規制処理を行うことで輻輳を回避できる。
通信システムの構成図。 Web通信中継装置の構成図。 大規模Web通信中継装置におけるデータの送受信についての説明図。 キャッシュヒット時の説明図及びシーケンス図。 キャッシュミスヒット時の説明図及びシーケンス図。 輻輳時の説明図及びシーケンス図。 アクセス抑止対象コンテンツが要求された場合の説明図及びシーケンス図。 Web通信中継ソフトウェア31の内部構成についての説明図。 URIハッシュとURIエントリによるURI管理についての説明図。 共用メモリ55内のデータ構造についての説明図(1)。 共用メモリ55内のデータ構造についての説明図(2)。 キャッシング及び輻輳制御処理について基本的な処理を示すフローチャート。 キャッシュチェックおよび輻輳制御処理判定についてのフローチャート。 クライアントのHTTP要求についての説明図。 URIの加工についての説明図。 通常キャッシュ処理についてのフローチャート。 Web通信装置のHTTP応答の説明図。 Webコンテンツデータの管理についての説明図。 優先キャッシュ処理についてのフローチャート。 アクセス抑止処理についてのフローチャート。 抑止メッセージ、抑止コンテンツの説明図。 アクセス監視・規制処理についてのフローチャート。 規制メッセージ、規制コンテンツの説明図。 制御なし処理についてのフローチャート。 拡張したURIエントリを示す図。 規制開始接続数と規制終了接続数の動的な変更を示す説明図。
符号の説明
1−1〜1−i クライアント端末
2 大規模Web通信中継装置
3−1〜3−j Web通信装置
21 データ中継装置
22 認証装置
23 システム管理装置
24 レイヤ7負荷分散装置
25−1〜25−n Web通信中継装置
26 アクセス規制装置
31 Web通信中継ソフトウェア
41 HTTPモジュール
42 キャッシングモジュール
43 プロキシエンジン
100 通信システム

Claims (7)

  1. 一つ以上のサーバ装置と接続され,要求元装置から受信した前記一つ以上のサーバ装置のいずれかを宛先に含む要求を,前記要求の宛先となるサーバ装置へ送信し,
    前記要求に対する前記サーバ装置からの応答を,前記要求元装置へ送信する中継装置であって,
    受信した前記要求を対象として,前記要求の宛先別に,応答の送信前である前記要求数を監視し,
    前記監視の対象であり,前記応答の送信前である要求数が予め定めた規制開始値を超えた宛先について,予め定めた規制終了値を下回るまでに受信した当該宛先への前記要求は,規制対象として当該宛先へ送信せず,
    前記宛先へ送信しなかった前記要求に対する応答として,当該要求が規制対象となったことを示す情報を,前記要求元装置へ送信する
    ことを特徴とする中継装置。
  2. 請求項1に記載の中継装置であって,
    受信した前記要求に含まれる,当該要求の内容を示すメソッドをチェックし
    当該メソッドが予め定めた種類であれば,当該要求を,前記応答の送信前である要求数の監視の対象とする
    ことを特徴とする中継装置。
  3. 請求項1または2に記載の中継装置であって,
    前記監視の対象であり前記応答の送信前である要求数が,予め定めた規制開始値を超えた後,予め定めた規制終了値より小さくなった宛先について,
    前記監視の対象であり前記応答の送信前である前記要求数が,前記規制終了値より小さくなってから前記規制開始値を超えるまでに受信した,前記宛先への前記監視の対象である前記要求を,規制対象とせずに,前記宛先が示す前記提供装置へ送信し,
    前記宛先が示すサーバ装置から応答を受信し,
    前記要求に対する前記応答として,前記要求元装置へ送信する
    ことを特徴とする中継装置。
  4. 請求項1ないし3いずれか一に記載の中継装置であって,
    前記監視の対象であり前記要求に対する前記応答の送信前である要求数の前記監視処理に於いて,
    前記要求を受信したら,前記監視の対象であり前記応答の送信前である要求数のカウントを増やし,
    前記応答を送信したら,前記監視の対象であり前記応答の送信前である前記要求数のカウントを減らす
    ことを特徴とする中継装置。
  5. 請求項1ないし4いずれか一に記載の中継装置であって,
    予め定めた規制開始値を超えた前記宛先について,
    前記規制開始値を超えてから,前記規制終了値を下回るまでの規制実施時間に基づき,
    前記規制開始値と前記規制終了値の変更要否を決定する
    ことを特徴とする中継装置。
  6. 請求項1ないし5いずれか一に記載の中継装置であって,
    前記監視の対象となる要求に宛先として含まれるURIについて,異なる複数のURIを一つのURIとして処理するための簡略化処理を行い,
    前記簡略化したURIを対象として,応答の送信前である要求数の前記監視を行う
    ことを特徴とする中継装置。
  7. 請求項6に記載の中継装置であって,
    前記URIは,パスとクエリとを含み,
    前記簡略化処理において,複数の前記URIのパスが同じであれば,前記クエリを取り除くことにより,複数の前記URIを一つのURIと見な
    ことを特徴とする中継装置。
JP2004336864A 2004-11-22 2004-11-22 中継装置 Expired - Fee Related JP4736407B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004336864A JP4736407B2 (ja) 2004-11-22 2004-11-22 中継装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004336864A JP4736407B2 (ja) 2004-11-22 2004-11-22 中継装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2001196738A Division JP4274710B2 (ja) 2001-06-28 2001-06-28 通信中継装置

Publications (3)

Publication Number Publication Date
JP2005122756A JP2005122756A (ja) 2005-05-12
JP2005122756A5 JP2005122756A5 (ja) 2008-08-14
JP4736407B2 true JP4736407B2 (ja) 2011-07-27

Family

ID=34617056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004336864A Expired - Fee Related JP4736407B2 (ja) 2004-11-22 2004-11-22 中継装置

Country Status (1)

Country Link
JP (1) JP4736407B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4756001B2 (ja) 2007-02-16 2011-08-24 楽天株式会社 情報提供装置、適正判定情報生成方法及び適正判定情報生成処理プログラム
JP5217573B2 (ja) * 2008-03-31 2013-06-19 Kddi株式会社 サーバ輻輳制御方法およびシステム
JP4627327B2 (ja) 2008-05-23 2011-02-09 富士通株式会社 異常判定装置
JP4903824B2 (ja) * 2009-02-18 2012-03-28 楽天株式会社 情報提供装置、適正情報生成方法及び適正情報生成処理プログラム
JP5592222B2 (ja) * 2010-10-06 2014-09-17 株式会社日立製作所 リクエスト中継方法、リクエスト中継プログラム、および、中継装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003015938A (ja) * 2001-06-28 2003-01-17 Hitachi Ltd 輻輳制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003015938A (ja) * 2001-06-28 2003-01-17 Hitachi Ltd 輻輳制御方法

Also Published As

Publication number Publication date
JP2005122756A (ja) 2005-05-12

Similar Documents

Publication Publication Date Title
JP4274710B2 (ja) 通信中継装置
US11089135B2 (en) System providing faster and more efficient data communication
US7404201B2 (en) Data distribution server
EP1320237B1 (en) System and method for controlling congestion in networks
JP2002140309A (ja) サービスシステム
JP2007066161A (ja) キャッシュシステム
JP2000137641A (ja) 分散クライアントベ―スのデ―タキャッシングシステム
JPH09212397A (ja) ファイル読み出し方法
US20030187931A1 (en) Facilitating resource access using prioritized multicast responses to a discovery request
JP2004127189A (ja) ゲートウェイ装置、コンテンツ転送システム及びコンテンツ転送方法
WO2000046679A1 (fr) Dispositif de mandat pour communication
US6934761B1 (en) User level web server cache control of in-kernel http cache
US20030084140A1 (en) Data relay method
JP2003122658A (ja) データ配送方法
JP4687758B2 (ja) 輻輳制御方法
JP4736407B2 (ja) 中継装置
JP2002073401A (ja) Wwwコンテンツ配信システム、プロキシサーバ装置、wwwサーバ装置、wwwコンテンツ配信方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH1155327A (ja) 代理サーバの接続制御サーバ,代理サーバ,及びネットワーク制御方法
JP2007233700A (ja) キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。
JP4760852B2 (ja) サービスシステム
JP3671927B2 (ja) Webサービスの応答時間計測システムおよび計測サーバ
JP2002351733A (ja) ネットワークアクセスシステムおよびサーバ
JPH10177510A (ja) クライアント・サーバ・システム
JP2002163142A (ja) 情報中継方法とその情報中継方法の実現に用いられるプログラム記録媒体
JP2002024191A (ja) Wwwシステム、wwwサーバのトラフィック緩和方法、及びwwwサーバ

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080627

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110318

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110418

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees