JP2004086317A - 負荷分散方法及び装置 - Google Patents
負荷分散方法及び装置 Download PDFInfo
- Publication number
- JP2004086317A JP2004086317A JP2002243630A JP2002243630A JP2004086317A JP 2004086317 A JP2004086317 A JP 2004086317A JP 2002243630 A JP2002243630 A JP 2002243630A JP 2002243630 A JP2002243630 A JP 2002243630A JP 2004086317 A JP2004086317 A JP 2004086317A
- Authority
- JP
- Japan
- Prior art keywords
- content
- communication terminal
- cache
- load distribution
- request
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】キャッシュサーバに特別な負荷機能を設けることなく、ユーザから要求されたコンテンツデータのヒット率を向上させ、レスポンスタイムを短縮した負荷分散方法及び装置を提供する。
【解決手段】負荷分散装置2は、ユーザ1が希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積しているキャッシュサーバ3の内、そのコンテンツを蓄積しているものを検出し、そのコンテンツを取得してユーザ1に送信する。また、希望のコンテンツを蓄積しているキャッシュサーバ3が分からないときには、予め決めたキャッシュサーバ3に対してオリジンサーバ群4からそのコンテンツを取得してキャッシュさせてからユーザ1に転送すると共に、希望のコンテンツのキーワードに基づいてジャンルに対応したキャッシュサーバ3を検出し、検出したキャッシュサーバ3に対してそのコンテンツをオリジンサーバ群4に要求し直させてキャッシュさせる。
【選択図】 図1
【解決手段】負荷分散装置2は、ユーザ1が希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積しているキャッシュサーバ3の内、そのコンテンツを蓄積しているものを検出し、そのコンテンツを取得してユーザ1に送信する。また、希望のコンテンツを蓄積しているキャッシュサーバ3が分からないときには、予め決めたキャッシュサーバ3に対してオリジンサーバ群4からそのコンテンツを取得してキャッシュさせてからユーザ1に転送すると共に、希望のコンテンツのキーワードに基づいてジャンルに対応したキャッシュサーバ3を検出し、検出したキャッシュサーバ3に対してそのコンテンツをオリジンサーバ群4に要求し直させてキャッシュさせる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、負荷分散方法及び装置に関し、特にネットワーク上に分散配置された複数の通信端末としてのサーバがファイルオブジェクトをキャッシュしてユーザが位置する通信端末としてのクライアントに通信回線を経由して提供する時の負荷分散方法及び装置に関するものである。
【0002】
このようにファイルオブジェクトをキャッシュするサーバはキャッシュサーバと呼ばれ、クライアントのコンテンツ要求を代理或いは転送し、応答として中継したコンテンツを蓄積するものであり、この場合、蓄積したコンテンツが要求されたコンテンツと一致すれば別の通信端末であるコンテンツサーバへの要求は行わないで自らクライアントへデータを送信するものである。
【0003】
このようなキャッシュサーバの配置形態としては、リバースプロキシ(特定のWWWサーバ用のキャッシュ)、透過型キャッシュ(ユーザは、キャッシュの指定をすることは無く、ルータ等が強制的にパケットをキャッシュに蓄積するもの)などがある。
【0004】
この場合、ユーザのコンテンツ要求全体数に対してキャッシュサーバ自らコンテンツを送信した数の比率をヒット率と称する。また、ユーザ要求を始点としてネットワークが該当データをユーザに提供するまでの時間をレスポンスタイムと称し、キャッシュサーバが構築されている場合は、キャッシュサーバが該当コンテンツをキャッシュとして保持していた場合にその該当コンテンツを検出しユーザに提供するまでの時間を示している。
【0005】
このように、キャッシュサーバにおいては、ヒット率が高く、レスポンスタイムが短くなることにより、キャッシュサーバを負荷としたときの負荷分散を向上させる必要がある。
【0006】
【従来の技術】
このようなキャッシュサーバによる負荷分散の従来技術としては次のようなものがある。
(1)ディレクトリサーバにおける負荷分散例
図14には、ディレクトリサーバ(データサーバ)の検索において、検索時間の短縮を目的としてキャッシュする場合の構築例を機能別に示している。
【0007】
同図(1)はアクセス数によるキャッシュ蓄積の構築例を示しており、例えばアクセスが「検索」が3回続けば、キャッシュサーバAにはアクセスに応じたデータの蓄積が行われるようにしている。
また同図(2)は、アクセス要求の種類で振分を行う構築例を示しており、キャッシュサーバBにおいて、アクセス要求が「検索」、「確認」、「変更」の順にあったとき、これらの種類に応じてデータを分類して蓄積するようにしている。
【0008】
上記のような構築例では、同図(1)の場合には、アクセス数が多い種類については非常にヒット率が良くなるが、突発的なアクセス数により蓄積されるデータに偏りが生じてしまう。
また、同図(2)のようなキャッシュサーバBにおいてはアクセス数だけによらないデータ蓄積が可能であり、このようにキャッシュ蓄積をアクセス要求の種類別に分類して管理すると、ある一つの種類の検索要求によって大量にデータが抽出された場合に、他の種類のデータがキャッシュから削除されないのでヒット率を高く確保することが可能となる。
【0009】
その一方、アクセスが無いにも関わらずその予め決められた種類に応じて振分けされるので、アクセスの無い種類のキャッシュが存在してしまい、結果としてヒット率が低下してしまう場合が生じる。
(2)アダプティブ・オブジェクト・リプレイスメントによる負荷分散例
これは、限られたディスク容量から、高いヒット率を実現するために自動的にキャッシュされたファイルオブジェクトのアクセス頻度を調べ、最もアクセス数が少なく、最も取得時間が短く、サイズの小さいファイルオブジェクトから適応的に削除して行く方式である。
【0010】
(3)キャッシュサーバの負荷分散例
一般に複数のキャッシュサーバに対して負荷分散を行う場合には、キャッシュサーバ群とユーザ間にロードバランサー(負荷分散装置)を置いてラウンドロビン方式又はキャッシュサーバのCPU負荷率などに基づいて、接続させるキャッシュサーバを決定し、ユーザからのコンテンツ等の要求をそのキャッシュサーバに転送するようにしている。
【0011】
図15(1)の例では、このようなロードバランサー5をユーザ(クライアント)1と、ネットワーク運用を行うサイト10との間に配置し、このサイト10内にキャッシュサーバ群3を経由してロードバランサー5に接続される、コンテンツ等を保有したオリジンサーバ群4を配置している。
【0012】
また、同図(2)の場合には、ユーザ1とロードバランサー5とキャッシュサーバ群3とがサイト10内に設けられ、インターネット6を経由してサイト10にオリジンサーバ群4が接続されている。
(4)拡張DNSサーバを用いたリクエスト・リルーティングによる負荷分散例
この例では、図16に示すように、複数のサーバを設け、最適なサーバとユーザとの通信を行わせるように負荷分散を行うものであり、以下にその動作を説明する。
【0013】
▲1▼ユーザ1は、ネットワーク30内のオリジンサーバ4(IPアドレス:A)と通信を行うために、ユーザ1が存在するネットワーク20内にあるDNSサーバ7にオリジンサーバ4の名前解決要求(IPアドレスの要求)を出す。
▲2▼DNSサーバ7は、オリジンサーバ4のネットワーク30の名前空間を管理する拡張DNSサーバ8に対し、ユーザ1から受けた名前解決要求を転送する。
【0014】
▲3▼拡張DNSサーバ8は、問い合わせて来たDNSサーバ7に対して、広域負荷分散の観点(この例では単にランダムにサーバを振り分けるとする。)からオリジンサーバ4のIPアドレスAではなく、最適サーバとしてオリジンサーバ4のキャッシュサーバ3のIPアドレスBを回答することを決定する。ただし、この例では、拡張DNSサーバ8は、単に予め登録しているオリジンサーバ4のキャッシュサーバ群のIPアドレスをランダムに回答するものとする。
【0015】
▲4▼拡張DNSサーバ8は、キャッシュサーバ3のIPアドレスBを名前解決応答としてDNSサーバ7に通知する。
▲5▼DNSサーバ7は、受信したIPアドレスBに基づき、ユーザ1に対してIPアドレスBを通知する。
【0016】
▲6▼ユーザ1は、本来のオリジンサーバ4ではなく、キャッシュサーバ3と通信を行う。
このようにして、ユーザ1は拡張DNSサーバ8が指定したキャッシュサーバ3と通信することで、オリジンサーバ4の負荷が軽減され、ユーザ1は処理負荷の低いキャッシュサーバ3と通信することが可能となる。
【0017】
また、この例では、拡張DNSサーバ8が選ぶキャッシュサーバはランダムであるとしたが、選択アルゴリズムによっては、ユーザ1側のDNSサーバ7のIPアドレスから距離的に近いと考えられるキャッシュサーバを指定することも可能であり、その場合にはユーザ−サーバ間の距離的な遅延増加を防ぐことが可能となる。
【0018】
【発明が解決しようとする課題】
図14に示したディレクトリサーバのキャッシュ機能による負荷分散は、ヒット率は向上するが、求められているデータを効率良くキャッシュサーバから探し出す手法を備えていないので、検出速度、すなわちレスポンスタイムが遅い。また、キャッシュサーバがデータ蓄積時にコンテンツをフィルタリングする機能が必要になる。
【0019】
また、図15に示すようなロードバランサーを用いたキャッシュサーバの負荷分散例は、ラウンドロビン方式やCPU負荷率などにより、接続するキャッシュサーバを決定するため、決定したキャッシュサーバが、ユーザ要求の該当データをキャッシュしている可能性が低い。
【0020】
さらに、拡張DNSサーバを用いた図16に示すリクエスト・リルーティング方式は、データ要求を、該当するキャッシュに分散誘導する機能を有しているが、オリジンサーバ群を運営しているサイト側のシステムが必要であるため、全てのサーバに対しては有効とは言えない。
【0021】
このように、いずれの従来技術においても、ユーザからのコンテンツの要求をそのキャッシュサーバに適切に分散誘導しヒット率を向上させることができないという問題があった。
従って本発明は、ユーザがネットワークからコンテンツ(データ)を取得する際、ユーザからの要求をキャッシュサーバに対して特別な付加機能を設けることなく、自動的に該当するデータを蓄積すること及びその該当データのヒット率を向上させ、以ってユーザクライアントに対して要求したコンテンツの提供におけるレスポンスタイムを短縮できる負荷分散方法及び装置を提供することを目的とする。
【0022】
【課題を解決するための手段】
上記の目的を達成するため、本発明では、ユーザが位置する第1の通信端末と、コンテンツを一時的に蓄積することが可能な複数の第2の通信端末と、該コンテンツを予め保持している第3の通信端末とで構成されるネットワークの負荷分散方法及び装置において、該第1の通信端末が、希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積している該第2の通信端末の内、該希望のコンテンツを蓄積しているものを検出し、該検出した第2の通信端末に該希望のコンテンツを要求することにより取得して該第1の端末に送信することを特徴としている(請求項1,4/付記1,9)。
【0023】
すなわち、本発明は、図1に示すように、複数のユーザ(クライアント)1_1,1_2,1_3,・・・から成る第1の通信端末1と、コンテンツを一時的に蓄積することが可能な複数のキャッシュサーバ3_1,3_2,3_3,・・・から成るキャッシュサーバ群の第2の通信端末3と、該コンテンツを予め保持しているオリジンサーバ群4_1,4_2,4_3,・・・から成る第3の通信端末4とで構成されたネットワークを負荷分散装置2によって負荷分散を実現するものである。
【0024】
このような本発明の負荷分散方法及び装置の動作原理を、図1の一部分を取り出して示した図2により以下に( )符号のステップに沿って順次説明する。
(1)まずユーザ1は、希望するコンテンツの要求を負荷分散装置2に送信する。
(2)負荷分散装置2は、予め持っている情報に基づき、ユーザ1からのコンテンツ要求を、該当するキャッシュサーバ群3に送信する。この場合、キャッシュサーバ群3においては、キャッシュサーバ3_1及び3_2がそれぞれジャンル別にコンテンツを一時的に蓄積しているものとすると、負荷分散装置2は、ユーザ1からのコンテンツ要求に基づき、ユーザ1が希望したコンテンツを蓄積しているキャッシュサーバとして例えばキャッシュサーバ3_1を検出し、このキャッシュサーバ3_1に対してコンテンツ要求を送信する。
【0025】
(3)キャッシュサーバ3_1は自分が蓄積しているコンテンツの内要求されたものを負荷分散装置2に送信する。
(4)負荷分散装置2は、キャッシュサーバ3_1から受信したコンテンツをユーザ1に転送する。
【0026】
このように、本発明では従来技術と異なり、ユーザ要求に対応するキャッシュサーバを決定する際に、アクセス数、CPU負荷率、オリジンサイト指定の情報等を用いず、全てのサイトに対して自動的にジャンル別コンテンツをキャッシュサーバに収集した状態で、そのキャッシュサーバへコンテンツ要求を誘導することでユーザへのレスポンスタイムを向上させている。
【0027】
すなわち、本発明では、オリジンサイトに関係なく、自動的にキャッシュサーバのレスポンスタイムを短縮させているため、ユーザからのコンテンツ要求をジャンル毎に接続するキャッシュサーバを振り分けることで、ニッチな要求をする少数のユーザに対してヒット率を向上させることができる。
【0028】
(5)上記の例では、キャッシュサーバ3_1にコンテンツ要求に係るコンテンツがキャッシュされているものと仮定したが、このような希望のコンテンツを蓄積しているキャッシュサーバが無い初期動作時には、負荷分散装置2は、予め決めたキャッシュサーバとして、例えばキャッシュサーバ3_1を経由してオリジンサーバ4に該コンテンツを要求する。
【0029】
(6)オリジンサーバ4は、要求されたコンテンツをキャッシュサーバ3_1に送信する。
(7)これにより、キャッシュサーバ3_1は、受け取ったコンテンツをキャッシュしつつ、負荷分散装置2に受け取ったコンテンツを送信する。
【0030】
(8)負荷分散装置2は、受け取ったコンテンツをユーザ1に送信する。
(9)上記(7)によりキャッシュサーバ3_1からコンテンツを受信した負荷分散装置2は、そのコンテンツ中のキーワードを検出し、且つこのキーワードに基づいてどのキャッシュサーバがそのコンテンツを、ジャンルに対応して蓄積していることが望ましいかを検出する。
【0031】
この場合、予め決めたキャッシュサーバ3_1ではなく、キャッシュサーバ3_2が適切なキャッシュサーバであるとすると、負荷分散装置2は、このキャッシュサーバ3_2に該希望のコンテンツを要求する。
(10)キャッシュサーバ3_2は、未だそのコンテンツは蓄積していないので、そのコンテンツ要求をオリジンサーバ4に対して送ることにより、コンテンツの要求し直しを実行する。
【0032】
(11)オリジンサーバ4はコンテンツ要求に対応するコンテンツをキャッシュサーバ3_2に送信する。
(12)キャッシュサーバ3_2はそのコンテンツをキャッシュしつつ、負荷分散装置2に送信する。
【0033】
(13)負荷分散装置2は、受け取ったコンテンツのジャンルを分類し、情報を保持するとともに、受け取ったデータをユーザ1に送信する(請求項2,5/付記2,10)。
このようにして、キャッシュサーバ群3においてコンテンツが何も未だ蓄積されていない場合、又は蓄積すべきキャッシュサーバが決まらない場合は、コンテンツのキーワードに基づいてジャンル別に分類した形でキャッシュサーバ群3にそれぞれコンテンツがキャッシュされることとなる。
【0034】
従って、このような学習を繰り返すことにより、キャッシュサーバ群3はジャンル別にコンテンツを蓄積し、以ってユーザからのコンテンツ要求に対するヒット率を上げると共にレスポンスタイムを短縮することが可能となる。
上記の場合の希望のコンテンツの要求し直しは、上記(9)のように即座に行ってもよいし、或いはステップ(14)に示すように、ユーザ1からのコンテンツ要求を契機として行ってもよい(請求項3/付記3,11)。
【0035】
或いは、負荷分散装置1は希望のコンテンツの要求し直しを、定期的に行ってもよい(付記4,12)。
また本発明に係る負荷分散方法及び装置では、該コンテンツを要求したユーザ(第1の通信端末)の識別子と該要求の宛先となるキャッシュサーバ(第2の通信端末)とを関連付けた履歴を記録することができる(付記5,13)。
【0036】
また本発明に係る負荷分散方法及び装置では、キャッシュサーバ(第2の通信端末)とコンテンツのキーワードとユーザ(第1の通信端末)のコンテンツ要求とを関連付けた履歴を保持することにより、どのキャッシュサーバ(第2の通信端末)がどのユーザ(第1の通信端末)からどんなキーワードのコンテンツが要求されたのかを保持するようにしてもよい(付記6,14)。
【0037】
また本発明に係る負荷分散方法及び装置では、該履歴を、外部から参照又は変更可能にすることができる(付記7,15)。
さらに本発明に係る負荷分散方法及び装置では、上記第2の通信端末としてキャッシュサーバを用い、該第3の通信端末としてオリジンサーバ群を用いることができる(付記8,16)。
【発明の実施の形態】
図3は、図1及び図2に示した本発明に係る負荷分散方法及び装置のネットワーク構成例を全体的に示した図である。この実施例では、ネットワークは、ユーザクライアント(IPアドレスD)1と、負荷分散装置(IPアドレスE)2と、キャッシュサーバ3_1(IPアドレスA)、キャッシュサーバ3_2(IPアドレスB)、キャッシュサーバ3_3(IPアドレスC)から成るキャッシュサーバ群3と、インターネット上のオリジンサーバ群4で構成されている。これらの各構成要素は以下の機能を備えている。
【0038】
ユーザ1:
・負荷分散装置2或いはキャッシュサーバ群3、或いはオリジンサーバ(コンテンツサーバ)4にコンテンツを要求し、受信することが可能である。
インターネット4:
・オリジナルのコンテンツを予め保持しているサーバ群であり、要求されたコンテンツを要求元に提供することが可能である。
【0039】
キャッシュサーバ群3:
・オリジナルコンテンツを内部に一時蓄積することが可能である。
・コンテンツ要求に対して、もし内部に蓄積しているコンテンツがあればそれを用いてコンテンツを応答として返すことが可能である。
【0040】
・コンテンツ要求に対して、もし内部に蓄積しているコンテンツがなければ、オリジナルのコンテンツを外部に要求することが可能である。
負荷分散装置2:
・要求されたコンテンツのジャンルに対応していると想定されるキャッシュサーバを決定することが可能である。
【0041】
・要求されたコンテンツのジャンル分類が可能である。
・要求されたコンテンツを外部にさらに要求し、応答として受信したコンテンツを要求元に送信することが可能である。
図4は図3に示した負荷分散装置2の構成実施例を示したものであり、この実施例では、受信部11と通信記録部12とコンテンツ分類部13とユーザインタフェース部14と通信記録DB(Data Base)15とキャッシュ決定部16とキャッシュDB17と宛先変更部18とタイマー部19と要求代行部20と送信部21とで構成されている。
【0042】
以下、この実施例の動作を、図3のネットワーク構成例及び図5〜13に示した各部のフローチャートを参照して説明する。
なお、キャッシュDB17は、コンテンツ分類などに用いる情報として、この実施例では下記の表1の内容(1)を初期値として持っているものとする。
【0043】
【表1】
【0044】
[1]まず、ユーザ1は、予め設定してある(ウエブブラウザのプロキシ設定などがなされている)負荷分散装置2に対しコンテンツを要求する。この場合の要求メッセージ(1)を下記の表2に示す。
【0045】
【表2】
【0046】
これは、送信元を、IPアドレスが“D”のユーザ1としてポート番号“1000”に出力し、宛先を、IPアドレスがEの負荷分散装置2としてポート番号“8080”に入力し、そのデータ内容が“www.kurosawa.com”であることを示している。
【0047】
[2]負荷分散装置2では受信部11において、図5のフローチャートに示すように、上記の要求メッセージ(1)を受信したことがステップS1で判定され、次に該メッセージ(1)が後述する「代行要求の応答」ではないことがステップS2で分かるので、ステップS4で進む。ここでは、メッセージ(1)の状態が「要求」であることが分かるので、ステップS5に進み、メッセージ(1)を通信記録部12に送る。
【0048】
[3]通信記録部12は、図6のフローチャートに示すように、ステップS11でメッセージ(1)を受信した後、ステップS12において、受信メッセージ(1)内の、送信元IPアドレスDとそのポート番号10000、及び宛先IPアドレスEとそのポート番号8080を通信記録DB15に記録する。この結果、通信記録DB15の内容(1)は下記の表3のようになる。
【0049】
【表3】
【0050】
なお、この場合、ユーザ1を送信元▲1▼とし、負荷分散装置2を宛先▲1▼としている。送信元▲2▼及び宛先▲2▼については後述する。
[4]また、通信記録部12は、図6のステップS13により、該要求メッセージ(1)をキャッシュ(サーバ)決定部16に送信する。
【0051】
[5]キャッシュ決定部16は、図7のフローチャートに示すように、キャッシュDB17の情報に基づいてその要求メッセージ(1)を送信すべきキャッシュサーバを決定する。
すなわち、ユーザ1からの要求メッセージ(1)は、表2に示したように、コンテンツのデータ内部が、“www.kurosawa.com”となっており、図7のステップS21でメッセージ(1)を受信した後、ステップS22においてキャッシュDB17に予め保持されている表1に示すキーワードと比較すると、キャッシュDB17のキーワードと一致するものは無く、ステップS23においてキャッシュDB17の要求履歴と一致するものも無く、さらにステップS24においてキャッシュDB17の要求履歴と送信元IPアドレスが一致するものも無いことが分かる。
【0052】
従って、ステップS25に示すように、キャッシュサーバを、表1に示すワイルドカード(デフォルト)のキャッシュサーバ3_3に暫定的に決定してキャッシュDB17に要求メッセージを記録する。
この記録に際しては、表1に示すキャッシュ位置の行内で、一番上位に来るように行われる。従って、このときのキャッシュDB17の内容(2)は下記の表4に示すように更新される。
【0053】
【表4】
【0054】
[6]キャッシュ決定部16は、さらにステップS28により、要求メッセージ(1)を、ステップS25で決定したキャッシュ位置と共に宛先変更部18に送信する。
[7]宛先変更部18においては、図8のフローチャートに示すように、ステップS31でメッセージ(1)を受信した後、ステップS32においてメッセージ(1)の状態が「要求」であることが分かるから、ステップS33において、決定したキャッシュ位置Cに基づき、要求コンテンツはそのままで、送信者が負荷分散装置2であり、受信者が、決定したキャッシュサーバ3_3である要求メッセージを作成し、ステップS34において、通信記録DB15に記録されているユーザメッセージ情報の行に対して、作成したメッセージのデータを、送信元▲2▼IPアドレスE及びそのポート番号20000並びに宛先▲2▼IPアドレスC及びそのポート番号8080として記録する。この結果、通信記録DB15の内容(2)は次のように更新される。
【0055】
【表5】
【0056】
この場合の作成したメッセージ(2)は以下のとおりである。
【0057】
【表6】
【0058】
[8]宛先変更部18は、ステップS37により、作成したメッセージを送信部21に送信する。
[9]送信部21は、図9のフローチャートに示すように、ステップS41でメッセージ(2)を受信した後、ステップS42において、受信したメッセージを宛先IPアドレスC(キャッシュサーバ3_3)に向けて送信する。
【0059】
この結果、キャッシュサーバ3_3は、該メッセージ(2)を送信部21から受信し、メッセージ内のデータ内部のコンテンツを外部のオリジンサーバ群4から取得し、この取得したコンテンツを蓄積しつつ、そのコンテンツを負荷分散装置2に送信する。
【0060】
この場合のメッセージ(3)は次の通りである。
【0061】
【表7】
【0062】
なお、キャッシュサーバ3_3に予めコンテンツが蓄積されている場合には、外部のオリジンサーバ群4からコンテンツを取得する必要は無く、自分が蓄積しているコンテンツを送信すればよいことは言うまでもない。
[10]受信部11においては、図5のフローチャートに示す如く、ステップS1,S2,S4を通ってステップS6により、受信したメッセージ(3)が「提供」の状態であることが分かるので、該提供メッセージ(3)をステップS7に示すようにコンテンツ分類部13に送る。
【0063】
[11]コンテンツ分類部13においては、図10のフローチャートに示すように、ステップS51でメッセージ(3)を受信した後、ステップS52において、メッセージ(3)内のデータ内部にキャッシュDB17のキーワードと一致するものがあるか否かを判定する。
【0064】
この場合には、上記の表7に示すメッセージ(3)がデータ内部に「映画」及び「監督」をキーワードとして含んでいるので、表4に示したキャッシュDB17の内容(2)においてキャッシュサーバ3_1に該当するとステップS53で判定し、このコンテンツはキャッシュ位置Aに該当すると判定する。そして、キャッシュDB17の内容をメッセージ(3)と通信記録DB15の内容(2)に基づいて更新する。
【0065】
すなわち、ステップS53においてメッセージ(3)内の送信元IPアドレスCと、キーワードが一致した行のキャッシュ位置Aが一致しているか否かを判定し、一致していれば何もせずに該メッセージ(3)を宛先変更部18に送るが、この場合は一致していない(A≠B)ので、ステップS54に進む。
【0066】
ステップS54では、通信記録DB15の内容(2)から、コンテンツを要求していたユーザ(送信元▲1▼IP)アドレスを検出し、そのユーザの要求URLをキャッシュDB17の内容(2)から獲得し、受信したメッセージ(3)内のデータがキーワードと一致したキャッシュサーバAを指定して要求代行部20に該当要求URLを送信する。
【0067】
そして、ステップS55において、該当するURL及びメッセージ(3)内部のデータから、ランダムにキーワードを抽出し、該当する行のキャッシュDB17のキーワード部分に加入し、ステップS56において、該当する要求履歴を、データ内部が一致したキャッシュ位置の行の要求履歴の先頭に移動させる。
【0068】
このようにして更新されたキャッシュDB17の内容(3)は次のようになる。
【0069】
【表8】
【0070】
[13]またコンテンツ分類部13は、ステップS57により、宛先変更部18に対して受信したメッセージを送信する。
宛先変更部18では、図8に示すようにステップS31及びS32を経由してステップS35においてメッセージの状態が「提供」であることが分かるので、ステップS36において、メッセージの送信元IPアドレスと宛先IPアドレスとを入れ替えたメッセージを作成し、ステップS37によりこのメッセージを送信部21に送信する。
【0071】
この場合のメッセージ(4)は次のようになる。
【0072】
【表9】
【0073】
送信部21は、上記[9]と同様に、受信したメッセージ(4)をユーザ1に対して送信し、ユーザ1は要求したコンテンツを受信することになる。
[14]一方、コンテンツ分類部13は、図10のステップS54で説明したように、コンテンツを提供したキャッシュサーバがキャッシュサーバ3_3であり、現在分類したキャッシュサーバ3_1と異なることから、要求代行部20に対してキャッシュサーバ3_1に対するコンテンツ要求のやり直しを指示する。
【0074】
[15]要求代行部20は、図12に示すように、ステップS71でメッセージ(3)を受信した後、ステップS72でコンテンツ分類部13からのメッセージであることを検出し、ステップS73において、指定されたURLのコンテンツを、指定されたキャッシュサーバに要求するメッセージを、要求代行と判別できる識別子(例えばポート番号50000)を加えて作成し、ステップS76により送信部21に送信する。
【0075】
このようにして作成したメッセージ(5)は次のようになる。
【0076】
【表10】
【0077】
そして、送信部21は、要求代行部20から送られて来たメッセージ(5)をキャッシュサーバ3_1に対して送信する。
キャッシュサーバ3_1は、該メッセージ(5)を受信し、メッセージ内のデータ内部のコンテンツを上記と同様に外部のオリジンサーバ群4から取得し、この取得したコンテンツを蓄積し(或いは蓄積されていたデータから得て)、該当コンテンツを負荷分散装置2に送信する。
【0078】
この場合のメッセージ(6)は以下のようになる。
【0079】
【表11】
【0080】
受信部11においては、ステップS1でメッセージ(6)を受信した後、ステップS2においてメッセージ(6)が「代行要求の応答」であることが分かるので、ステップS3に示すように受信メッセージを廃棄する。
[16]一方、タイマー部19は、一定周期を計時しており、図11のステップS61及びS62に示す如く、予め設定された時間間隔が経過すると、要求代行部20に対して要求代行を行うように指示することができる。
【0081】
[17]要求代行部20は、タイマー部19から指示を受けると、キャッシュDB17の情報に基づき、各キャッシュ位置の上位にある要求コンテンツに対して該当キャッシュサーバに対してコンテンツ要求を行うメッセージを作成し送信部21に送信する。
【0082】
すなわち、図12において、ステップS71でメッセージを受信した後、ステップS72を経由してステップS74においてタイマー部19からのメッセージであることを検出した後、ステップS75において、キャッシュDB17から、各キャッシュサーバに対して各キャッシュ位置の行にある要求履歴の先頭から所定個数(例えば1個)だけ要求コンテンツを取得して、対応するキャッシュサーバに対して要求メッセージを、要求代行と分かる識別子(ポート番号50000)を加えて作成し、ステップS76によりそのメッセージを送信部21に送信する。
【0083】
送信部21は、該当するキャッシュサーバに対して該要求メッセージを送信し、要求を受けた各キャッシュサーバは、それぞれ最新のコンテンツを取得してそれぞれ最新のコンテンツを外部のオリジンサーバ群4から取得し、そのコンテンツを負荷分散装置2に送信する。このコンテンツは、上記と同様に廃棄される。
【0084】
[18]また、外部からユーザインタフェース部14に対して指示が与えられた場合には、受信部11は、図5において、ステップS1,S2,S4,S6を経由してステップS8においてメッセージの状態が「ユーザインタフェース(UI)指示」であることを検出するので、そのメッセージをユーザインタフェース部14に送信する。
【0085】
この場合のメッセージ(7)は次の通りである。
【0086】
【表12】
【0087】
[19]ユーザインタフェース部14は、図13のステップS81でメッセージ(7)を受信した後、ステップS82において通信記録DB15へのアクセス支持であることを検出し、この場合指定に基づき通信記録DB15の内部データを変更、取得、又は追加する。
【0088】
[20]同様にしてユーザインタフェース部14はキャッシュDB17に対し、図13のステップS84により、ステップS85と同様にキャッシュDB17の内部データを変更、取得、又は追加する。
[21]さらにユーザインタフェース部14は、図13のステップS86により、タイマー部19へのアクセス指示を判定したとき、ステップS87により、タイマー部19の時間間隔を変更又は取得する。
【0089】
[22]そしてユーザインタフェース部14は、送信部21に対し、ステップS88に示す如く作業結果をデータ内部とし、受信したメッセージの送信者を宛先としたメッセージを作成し、ステップS89により作成したメッセージを送信部21に送信する。
【0090】
このときのメッセージ(8)は次の通りである。
【0091】
【表13】
【0092】
このメッセージ(8)は送信部21から外部に送信される。
なお、上記の実施例においては、分類したコンテンツに対応するキャッシュサーバが検出できない場合、予め決めたキャッシュサーバを介してオリジンサーバからそのコンテンツを取得するようにしているが、負荷分散装置の側で、別のキャッシュサーバにそのコンテンツが蓄積されていることが分かれば、オリジンサーバからコンテンツを取得する代わりに、その蓄積しているキャッシュサーバからコンテンツを取得するようにしてもよい。
(付記1)
ユーザが位置する第1の通信端末と、コンテンツを一時的に蓄積することが可能な複数の第2の通信端末と、該コンテンツを予め保持している第3の通信端末とで構成されるネットワークの負荷分散方法において、
該第1の通信端末が、希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積している該第2の通信端末の内、該希望のコンテンツを蓄積しているものを検出する第1ステップと、
該検出した第2の通信端末に該希望のコンテンツを要求することにより取得して該第1の通信端末に送信する第2ステップと、
を備えたことを特徴とする負荷分散方法。
(付記2)付記1において、
該希望のコンテンツを蓄積している第2の通信端末を検出できないとき、該第2の通信端末の内で予め決めたものを介して該第3の通信端末に要求することにより該希望のコンテンツを取得し、該第2の通信端末にキャッシュさせてから該第1の通信端末に転送する第3ステップと、
該第2の通信端末の内で該ジャンルに対応して該希望のコンテンツを蓄積すべきものを該コンテンツ中のキーワードに基づいて検出し、この第2の通信端末を介して該希望のコンテンツを該第3の通信端末に要求し直すことにより取得し、該第2の通信端末にキャッシュさせる第4ステップと、
をさらに備えたことを特徴とする負荷分散方法。
(付記3)付記2において、
該第4ステップでは、該希望のコンテンツの要求し直しを、即座に、又は該第1の通信端末からのコンテンツ要求を契機として行うことを特徴とした負荷分散方法。
(付記4)付記2において、
該第4ステップでは、該希望のコンテンツの要求し直しを、定期的に行うことを特徴とした負荷分散方法。
(付記5)付記2において、
該コンテンツを要求した該第1の通信端末の識別子と該コンテンツ要求の宛先となる該第2の通信端末とを関連付けた履歴を記録することにより、現在どの第1の通信端末がどのコンテンツを要求し、このコンテンツをどの第2の通信端末に要求したかを記録する第5ステップをさらに備えたことを特徴とする負荷分散方法。
(付記6)付記2において、
該第2の通信端末と該キーワードと該第1の通信端末のコンテンツ要求とを関連付けた履歴を保持することにより、どの第2の通信端末がどの第1の通信端末からどんなキーワードのコンテンツが要求されたのかを保持する第6ステップをさらに備えたことを特徴とする負荷分散方法。
(付記7)付記6において、
該履歴を、外部から参照又は変更可能にしたことを特徴とする負荷分散方法。
(付記8)付記1において、
該第2の通信端末がキャッシュサーバであり、該第3の通信端末がオリジンサーバ群であることを特徴とする負荷分散方法。
(付記9)
ユーザが位置する第1の通信端末と、コンテンツを一時的に蓄積することが可能な複数の第2の通信端末と、該コンテンツを予め保持している第3の通信端末とで構成されるネットワークの負荷分散装置において、
該第1の通信端末が、希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積している該第2の通信端末の内、該希望のコンテンツを蓄積しているものを検出する第1手段と、
該検出した第2の通信端末に該希望のコンテンツを要求することにより取得して該第1の通信端末に送信する第2手段と、
を備えたことを特徴とする負荷分散装置。
(付記10)付記9において、
該希望のコンテンツを蓄積している第2の通信端末を検出できない時、該第2の通信端末の内で予め決めたものを介して該第3の通信端末に要求することにより該希望のコンテンツを取得し、その第2の通信端末にキャッシュさせてから該第1の通信端末に転送する第3手段と、
該第2の通信端末の内で該ジャンルに対応して該希望のコンテンツを蓄積すべきものを該コンテンツ中のキーワードに基づいて検出し、この第2の通信端末を介して該希望のコンテンツを該第3の通信端末に要求し直すことにより取得し、該第2の通信端末にキャッシュさせる第4手段と、
をさらに備えたことを特徴とする負荷分散装置。
(付記11)付記10において、
該第4手段は、該希望のコンテンツの要求し直しを、即座に、又は該第1の通信端末からのコンテンツ要求を契機として行うことを特徴とした負荷分散装置。
(付記12)付記10において、
該第4手段は、該希望のコンテンツの要求し直しを、定期的に行うことを特徴とした負荷分散装置。
(付記13)付記10において、
該コンテンツを要求した該第1の通信端末の識別子と該コンテンツ要求の宛先となる該第2の通信端末とを関連付けた履歴を記録することにより、現在どの第1の通信端末がどのコンテンツを要求し、このコンテンツをどの第2の通信端末に要求したかを記録する記録部をさらに備えたことを特徴とした負荷分散装置。
(付記14)付記10において、
該第2の通信端末とコンテンツのキーワードと該第1の通信端末のコンテンツ要求とを関連付けた履歴を保持することにより、どの第2の通信端末がどの第1の通信端末からどんなキーワードのコンテンツが要求されたのかを保持する保持部をさらに備えたことを特徴とする負荷分散装置。
(付記15)付記14において、
該履歴を、外部から参照又は変更可能にしたことを特徴とする負荷分散装置。(付記16)付記9において、
該第2の通信端末がキャッシュサーバであり、該第3の通信端末がオリジンサーバ群であることを特徴とする負荷分散装置。
【0093】
【発明の効果】
以上説明したように本発明に係る負荷分散方法及び装置によれば、第1の通信端末が、希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積している第2の通信端末の内、その希望のコンテンツを蓄積しているものを検出し、この検出した第2の通信端末にその希望のコンテンツを要求することにより取得して第1の通信端末に送信するように構成したので、ユーザからの要求を該当するジャンルのキャッシュサーバに最適に振り分けることができ、ユーザからの要求に対してヒット率を向上させ、レスポンスタイムの短縮を実現することができる。
【0094】
また、その希望のコンテンツを蓄積している第2の通信端末が分からないときには、予め決めた第2の通信端末を介して第3の通信端末から希望のコンテンツを取得し第2の通信端末にキャッシュさせてから第1の通信端末に転送すると共に、該第2の通信端末の内でジャンルに対応して希望のコンテンツを蓄積すべきものをコンテンツのキーワードに基づいて検出し、この第2の通信端末を介して希望のコンテンツを第3の通信端末に対して要求し直すことにより取得し、第2の通信端末にキャッシュさせるようにすれば、対応したジャンルの最新のコンテンツが順次学習により蓄積されて行くことになる。
【0095】
また、内部に保持する履歴を外部から参照又は変更可能にすることで、外部から状態確認や制御を行うことが可能となる。
【図面の簡単な説明】
【図1】本発明に係る負荷分散方法及び装置のネットワーク概要図である。
【図2】本発明に係る負荷分散方法及び装置の動作原理を説明するための図である。
【図3】本発明に係る負荷分散方法及び装置の実施例の全体を示した図である。
【図4】本発明に係る負荷分散方法及び負荷分散装置を実現する実施例を示したブロック図である。
【図5】本発明に係る負荷分散方法及び装置に用いる受信部の動作例を示したフローチャート図である。
【図6】本発明に係る負荷分散方法及び装置に用いる通信記録部の動作例を示したフローチャート図である。
【図7】本発明に係る負荷分散方法及び装置に用いるキャッシュ決定部の動作例を示したフローチャート図である。
【図8】本発明に係る負荷分散方法及び装置に用いる宛先変更部の動作例を示したフローチャート図である。
【図9】本発明に係る負荷分散方法及び装置に用いる送信部の動作例を示したフローチャート図である。
【図10】本発明に係る負荷分散方法及び装置に用いるコンテンツ分類部の動作例を示したフローチャート図である。
【図11】本発明に係る負荷分散方法及び装置に用いるタイマー部の動作例を示したフローチャート図である。
【図12】本発明に係る負荷分散方法及び装置に用いる要求代行部の動作例を示したフローチャート図である。
【図13】本発明に係る負荷分散方法及び装置に用いるユーザインタフェース部の動作例を示したフローチャート図である。
【図14】従来から知られているキャッシュサーバの構築例を示した図である。
【図15】キャッシュサーバの一般的な負荷分散例を示したブロック図である。
【図16】従来から知られているリクエスト・リルーティングシステムによる負荷分散例を示した図である。
【符号の説明】
1(1_1,1_2,1_3,・・・) ユーザ(クライアント)
2 負荷分散装置
3(3_1,3_2,3_3,・・・) キャッシュサーバ
4(4_1,4_2,4_3,・・・) オリジンサーバ群
11 受信部
12 通信記録部
13 コンテンツ分類部
14 ユーザインタフェース部
15 通信記録部
16 キャッシュ決定部
17 キャッシュDB
18 宛先変更部
19 タイマー部
20 要求代行部
21 送信部
図中、同一符号は同一又は相当部分を示す。
【発明の属する技術分野】
本発明は、負荷分散方法及び装置に関し、特にネットワーク上に分散配置された複数の通信端末としてのサーバがファイルオブジェクトをキャッシュしてユーザが位置する通信端末としてのクライアントに通信回線を経由して提供する時の負荷分散方法及び装置に関するものである。
【0002】
このようにファイルオブジェクトをキャッシュするサーバはキャッシュサーバと呼ばれ、クライアントのコンテンツ要求を代理或いは転送し、応答として中継したコンテンツを蓄積するものであり、この場合、蓄積したコンテンツが要求されたコンテンツと一致すれば別の通信端末であるコンテンツサーバへの要求は行わないで自らクライアントへデータを送信するものである。
【0003】
このようなキャッシュサーバの配置形態としては、リバースプロキシ(特定のWWWサーバ用のキャッシュ)、透過型キャッシュ(ユーザは、キャッシュの指定をすることは無く、ルータ等が強制的にパケットをキャッシュに蓄積するもの)などがある。
【0004】
この場合、ユーザのコンテンツ要求全体数に対してキャッシュサーバ自らコンテンツを送信した数の比率をヒット率と称する。また、ユーザ要求を始点としてネットワークが該当データをユーザに提供するまでの時間をレスポンスタイムと称し、キャッシュサーバが構築されている場合は、キャッシュサーバが該当コンテンツをキャッシュとして保持していた場合にその該当コンテンツを検出しユーザに提供するまでの時間を示している。
【0005】
このように、キャッシュサーバにおいては、ヒット率が高く、レスポンスタイムが短くなることにより、キャッシュサーバを負荷としたときの負荷分散を向上させる必要がある。
【0006】
【従来の技術】
このようなキャッシュサーバによる負荷分散の従来技術としては次のようなものがある。
(1)ディレクトリサーバにおける負荷分散例
図14には、ディレクトリサーバ(データサーバ)の検索において、検索時間の短縮を目的としてキャッシュする場合の構築例を機能別に示している。
【0007】
同図(1)はアクセス数によるキャッシュ蓄積の構築例を示しており、例えばアクセスが「検索」が3回続けば、キャッシュサーバAにはアクセスに応じたデータの蓄積が行われるようにしている。
また同図(2)は、アクセス要求の種類で振分を行う構築例を示しており、キャッシュサーバBにおいて、アクセス要求が「検索」、「確認」、「変更」の順にあったとき、これらの種類に応じてデータを分類して蓄積するようにしている。
【0008】
上記のような構築例では、同図(1)の場合には、アクセス数が多い種類については非常にヒット率が良くなるが、突発的なアクセス数により蓄積されるデータに偏りが生じてしまう。
また、同図(2)のようなキャッシュサーバBにおいてはアクセス数だけによらないデータ蓄積が可能であり、このようにキャッシュ蓄積をアクセス要求の種類別に分類して管理すると、ある一つの種類の検索要求によって大量にデータが抽出された場合に、他の種類のデータがキャッシュから削除されないのでヒット率を高く確保することが可能となる。
【0009】
その一方、アクセスが無いにも関わらずその予め決められた種類に応じて振分けされるので、アクセスの無い種類のキャッシュが存在してしまい、結果としてヒット率が低下してしまう場合が生じる。
(2)アダプティブ・オブジェクト・リプレイスメントによる負荷分散例
これは、限られたディスク容量から、高いヒット率を実現するために自動的にキャッシュされたファイルオブジェクトのアクセス頻度を調べ、最もアクセス数が少なく、最も取得時間が短く、サイズの小さいファイルオブジェクトから適応的に削除して行く方式である。
【0010】
(3)キャッシュサーバの負荷分散例
一般に複数のキャッシュサーバに対して負荷分散を行う場合には、キャッシュサーバ群とユーザ間にロードバランサー(負荷分散装置)を置いてラウンドロビン方式又はキャッシュサーバのCPU負荷率などに基づいて、接続させるキャッシュサーバを決定し、ユーザからのコンテンツ等の要求をそのキャッシュサーバに転送するようにしている。
【0011】
図15(1)の例では、このようなロードバランサー5をユーザ(クライアント)1と、ネットワーク運用を行うサイト10との間に配置し、このサイト10内にキャッシュサーバ群3を経由してロードバランサー5に接続される、コンテンツ等を保有したオリジンサーバ群4を配置している。
【0012】
また、同図(2)の場合には、ユーザ1とロードバランサー5とキャッシュサーバ群3とがサイト10内に設けられ、インターネット6を経由してサイト10にオリジンサーバ群4が接続されている。
(4)拡張DNSサーバを用いたリクエスト・リルーティングによる負荷分散例
この例では、図16に示すように、複数のサーバを設け、最適なサーバとユーザとの通信を行わせるように負荷分散を行うものであり、以下にその動作を説明する。
【0013】
▲1▼ユーザ1は、ネットワーク30内のオリジンサーバ4(IPアドレス:A)と通信を行うために、ユーザ1が存在するネットワーク20内にあるDNSサーバ7にオリジンサーバ4の名前解決要求(IPアドレスの要求)を出す。
▲2▼DNSサーバ7は、オリジンサーバ4のネットワーク30の名前空間を管理する拡張DNSサーバ8に対し、ユーザ1から受けた名前解決要求を転送する。
【0014】
▲3▼拡張DNSサーバ8は、問い合わせて来たDNSサーバ7に対して、広域負荷分散の観点(この例では単にランダムにサーバを振り分けるとする。)からオリジンサーバ4のIPアドレスAではなく、最適サーバとしてオリジンサーバ4のキャッシュサーバ3のIPアドレスBを回答することを決定する。ただし、この例では、拡張DNSサーバ8は、単に予め登録しているオリジンサーバ4のキャッシュサーバ群のIPアドレスをランダムに回答するものとする。
【0015】
▲4▼拡張DNSサーバ8は、キャッシュサーバ3のIPアドレスBを名前解決応答としてDNSサーバ7に通知する。
▲5▼DNSサーバ7は、受信したIPアドレスBに基づき、ユーザ1に対してIPアドレスBを通知する。
【0016】
▲6▼ユーザ1は、本来のオリジンサーバ4ではなく、キャッシュサーバ3と通信を行う。
このようにして、ユーザ1は拡張DNSサーバ8が指定したキャッシュサーバ3と通信することで、オリジンサーバ4の負荷が軽減され、ユーザ1は処理負荷の低いキャッシュサーバ3と通信することが可能となる。
【0017】
また、この例では、拡張DNSサーバ8が選ぶキャッシュサーバはランダムであるとしたが、選択アルゴリズムによっては、ユーザ1側のDNSサーバ7のIPアドレスから距離的に近いと考えられるキャッシュサーバを指定することも可能であり、その場合にはユーザ−サーバ間の距離的な遅延増加を防ぐことが可能となる。
【0018】
【発明が解決しようとする課題】
図14に示したディレクトリサーバのキャッシュ機能による負荷分散は、ヒット率は向上するが、求められているデータを効率良くキャッシュサーバから探し出す手法を備えていないので、検出速度、すなわちレスポンスタイムが遅い。また、キャッシュサーバがデータ蓄積時にコンテンツをフィルタリングする機能が必要になる。
【0019】
また、図15に示すようなロードバランサーを用いたキャッシュサーバの負荷分散例は、ラウンドロビン方式やCPU負荷率などにより、接続するキャッシュサーバを決定するため、決定したキャッシュサーバが、ユーザ要求の該当データをキャッシュしている可能性が低い。
【0020】
さらに、拡張DNSサーバを用いた図16に示すリクエスト・リルーティング方式は、データ要求を、該当するキャッシュに分散誘導する機能を有しているが、オリジンサーバ群を運営しているサイト側のシステムが必要であるため、全てのサーバに対しては有効とは言えない。
【0021】
このように、いずれの従来技術においても、ユーザからのコンテンツの要求をそのキャッシュサーバに適切に分散誘導しヒット率を向上させることができないという問題があった。
従って本発明は、ユーザがネットワークからコンテンツ(データ)を取得する際、ユーザからの要求をキャッシュサーバに対して特別な付加機能を設けることなく、自動的に該当するデータを蓄積すること及びその該当データのヒット率を向上させ、以ってユーザクライアントに対して要求したコンテンツの提供におけるレスポンスタイムを短縮できる負荷分散方法及び装置を提供することを目的とする。
【0022】
【課題を解決するための手段】
上記の目的を達成するため、本発明では、ユーザが位置する第1の通信端末と、コンテンツを一時的に蓄積することが可能な複数の第2の通信端末と、該コンテンツを予め保持している第3の通信端末とで構成されるネットワークの負荷分散方法及び装置において、該第1の通信端末が、希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積している該第2の通信端末の内、該希望のコンテンツを蓄積しているものを検出し、該検出した第2の通信端末に該希望のコンテンツを要求することにより取得して該第1の端末に送信することを特徴としている(請求項1,4/付記1,9)。
【0023】
すなわち、本発明は、図1に示すように、複数のユーザ(クライアント)1_1,1_2,1_3,・・・から成る第1の通信端末1と、コンテンツを一時的に蓄積することが可能な複数のキャッシュサーバ3_1,3_2,3_3,・・・から成るキャッシュサーバ群の第2の通信端末3と、該コンテンツを予め保持しているオリジンサーバ群4_1,4_2,4_3,・・・から成る第3の通信端末4とで構成されたネットワークを負荷分散装置2によって負荷分散を実現するものである。
【0024】
このような本発明の負荷分散方法及び装置の動作原理を、図1の一部分を取り出して示した図2により以下に( )符号のステップに沿って順次説明する。
(1)まずユーザ1は、希望するコンテンツの要求を負荷分散装置2に送信する。
(2)負荷分散装置2は、予め持っている情報に基づき、ユーザ1からのコンテンツ要求を、該当するキャッシュサーバ群3に送信する。この場合、キャッシュサーバ群3においては、キャッシュサーバ3_1及び3_2がそれぞれジャンル別にコンテンツを一時的に蓄積しているものとすると、負荷分散装置2は、ユーザ1からのコンテンツ要求に基づき、ユーザ1が希望したコンテンツを蓄積しているキャッシュサーバとして例えばキャッシュサーバ3_1を検出し、このキャッシュサーバ3_1に対してコンテンツ要求を送信する。
【0025】
(3)キャッシュサーバ3_1は自分が蓄積しているコンテンツの内要求されたものを負荷分散装置2に送信する。
(4)負荷分散装置2は、キャッシュサーバ3_1から受信したコンテンツをユーザ1に転送する。
【0026】
このように、本発明では従来技術と異なり、ユーザ要求に対応するキャッシュサーバを決定する際に、アクセス数、CPU負荷率、オリジンサイト指定の情報等を用いず、全てのサイトに対して自動的にジャンル別コンテンツをキャッシュサーバに収集した状態で、そのキャッシュサーバへコンテンツ要求を誘導することでユーザへのレスポンスタイムを向上させている。
【0027】
すなわち、本発明では、オリジンサイトに関係なく、自動的にキャッシュサーバのレスポンスタイムを短縮させているため、ユーザからのコンテンツ要求をジャンル毎に接続するキャッシュサーバを振り分けることで、ニッチな要求をする少数のユーザに対してヒット率を向上させることができる。
【0028】
(5)上記の例では、キャッシュサーバ3_1にコンテンツ要求に係るコンテンツがキャッシュされているものと仮定したが、このような希望のコンテンツを蓄積しているキャッシュサーバが無い初期動作時には、負荷分散装置2は、予め決めたキャッシュサーバとして、例えばキャッシュサーバ3_1を経由してオリジンサーバ4に該コンテンツを要求する。
【0029】
(6)オリジンサーバ4は、要求されたコンテンツをキャッシュサーバ3_1に送信する。
(7)これにより、キャッシュサーバ3_1は、受け取ったコンテンツをキャッシュしつつ、負荷分散装置2に受け取ったコンテンツを送信する。
【0030】
(8)負荷分散装置2は、受け取ったコンテンツをユーザ1に送信する。
(9)上記(7)によりキャッシュサーバ3_1からコンテンツを受信した負荷分散装置2は、そのコンテンツ中のキーワードを検出し、且つこのキーワードに基づいてどのキャッシュサーバがそのコンテンツを、ジャンルに対応して蓄積していることが望ましいかを検出する。
【0031】
この場合、予め決めたキャッシュサーバ3_1ではなく、キャッシュサーバ3_2が適切なキャッシュサーバであるとすると、負荷分散装置2は、このキャッシュサーバ3_2に該希望のコンテンツを要求する。
(10)キャッシュサーバ3_2は、未だそのコンテンツは蓄積していないので、そのコンテンツ要求をオリジンサーバ4に対して送ることにより、コンテンツの要求し直しを実行する。
【0032】
(11)オリジンサーバ4はコンテンツ要求に対応するコンテンツをキャッシュサーバ3_2に送信する。
(12)キャッシュサーバ3_2はそのコンテンツをキャッシュしつつ、負荷分散装置2に送信する。
【0033】
(13)負荷分散装置2は、受け取ったコンテンツのジャンルを分類し、情報を保持するとともに、受け取ったデータをユーザ1に送信する(請求項2,5/付記2,10)。
このようにして、キャッシュサーバ群3においてコンテンツが何も未だ蓄積されていない場合、又は蓄積すべきキャッシュサーバが決まらない場合は、コンテンツのキーワードに基づいてジャンル別に分類した形でキャッシュサーバ群3にそれぞれコンテンツがキャッシュされることとなる。
【0034】
従って、このような学習を繰り返すことにより、キャッシュサーバ群3はジャンル別にコンテンツを蓄積し、以ってユーザからのコンテンツ要求に対するヒット率を上げると共にレスポンスタイムを短縮することが可能となる。
上記の場合の希望のコンテンツの要求し直しは、上記(9)のように即座に行ってもよいし、或いはステップ(14)に示すように、ユーザ1からのコンテンツ要求を契機として行ってもよい(請求項3/付記3,11)。
【0035】
或いは、負荷分散装置1は希望のコンテンツの要求し直しを、定期的に行ってもよい(付記4,12)。
また本発明に係る負荷分散方法及び装置では、該コンテンツを要求したユーザ(第1の通信端末)の識別子と該要求の宛先となるキャッシュサーバ(第2の通信端末)とを関連付けた履歴を記録することができる(付記5,13)。
【0036】
また本発明に係る負荷分散方法及び装置では、キャッシュサーバ(第2の通信端末)とコンテンツのキーワードとユーザ(第1の通信端末)のコンテンツ要求とを関連付けた履歴を保持することにより、どのキャッシュサーバ(第2の通信端末)がどのユーザ(第1の通信端末)からどんなキーワードのコンテンツが要求されたのかを保持するようにしてもよい(付記6,14)。
【0037】
また本発明に係る負荷分散方法及び装置では、該履歴を、外部から参照又は変更可能にすることができる(付記7,15)。
さらに本発明に係る負荷分散方法及び装置では、上記第2の通信端末としてキャッシュサーバを用い、該第3の通信端末としてオリジンサーバ群を用いることができる(付記8,16)。
【発明の実施の形態】
図3は、図1及び図2に示した本発明に係る負荷分散方法及び装置のネットワーク構成例を全体的に示した図である。この実施例では、ネットワークは、ユーザクライアント(IPアドレスD)1と、負荷分散装置(IPアドレスE)2と、キャッシュサーバ3_1(IPアドレスA)、キャッシュサーバ3_2(IPアドレスB)、キャッシュサーバ3_3(IPアドレスC)から成るキャッシュサーバ群3と、インターネット上のオリジンサーバ群4で構成されている。これらの各構成要素は以下の機能を備えている。
【0038】
ユーザ1:
・負荷分散装置2或いはキャッシュサーバ群3、或いはオリジンサーバ(コンテンツサーバ)4にコンテンツを要求し、受信することが可能である。
インターネット4:
・オリジナルのコンテンツを予め保持しているサーバ群であり、要求されたコンテンツを要求元に提供することが可能である。
【0039】
キャッシュサーバ群3:
・オリジナルコンテンツを内部に一時蓄積することが可能である。
・コンテンツ要求に対して、もし内部に蓄積しているコンテンツがあればそれを用いてコンテンツを応答として返すことが可能である。
【0040】
・コンテンツ要求に対して、もし内部に蓄積しているコンテンツがなければ、オリジナルのコンテンツを外部に要求することが可能である。
負荷分散装置2:
・要求されたコンテンツのジャンルに対応していると想定されるキャッシュサーバを決定することが可能である。
【0041】
・要求されたコンテンツのジャンル分類が可能である。
・要求されたコンテンツを外部にさらに要求し、応答として受信したコンテンツを要求元に送信することが可能である。
図4は図3に示した負荷分散装置2の構成実施例を示したものであり、この実施例では、受信部11と通信記録部12とコンテンツ分類部13とユーザインタフェース部14と通信記録DB(Data Base)15とキャッシュ決定部16とキャッシュDB17と宛先変更部18とタイマー部19と要求代行部20と送信部21とで構成されている。
【0042】
以下、この実施例の動作を、図3のネットワーク構成例及び図5〜13に示した各部のフローチャートを参照して説明する。
なお、キャッシュDB17は、コンテンツ分類などに用いる情報として、この実施例では下記の表1の内容(1)を初期値として持っているものとする。
【0043】
【表1】
【0044】
[1]まず、ユーザ1は、予め設定してある(ウエブブラウザのプロキシ設定などがなされている)負荷分散装置2に対しコンテンツを要求する。この場合の要求メッセージ(1)を下記の表2に示す。
【0045】
【表2】
【0046】
これは、送信元を、IPアドレスが“D”のユーザ1としてポート番号“1000”に出力し、宛先を、IPアドレスがEの負荷分散装置2としてポート番号“8080”に入力し、そのデータ内容が“www.kurosawa.com”であることを示している。
【0047】
[2]負荷分散装置2では受信部11において、図5のフローチャートに示すように、上記の要求メッセージ(1)を受信したことがステップS1で判定され、次に該メッセージ(1)が後述する「代行要求の応答」ではないことがステップS2で分かるので、ステップS4で進む。ここでは、メッセージ(1)の状態が「要求」であることが分かるので、ステップS5に進み、メッセージ(1)を通信記録部12に送る。
【0048】
[3]通信記録部12は、図6のフローチャートに示すように、ステップS11でメッセージ(1)を受信した後、ステップS12において、受信メッセージ(1)内の、送信元IPアドレスDとそのポート番号10000、及び宛先IPアドレスEとそのポート番号8080を通信記録DB15に記録する。この結果、通信記録DB15の内容(1)は下記の表3のようになる。
【0049】
【表3】
【0050】
なお、この場合、ユーザ1を送信元▲1▼とし、負荷分散装置2を宛先▲1▼としている。送信元▲2▼及び宛先▲2▼については後述する。
[4]また、通信記録部12は、図6のステップS13により、該要求メッセージ(1)をキャッシュ(サーバ)決定部16に送信する。
【0051】
[5]キャッシュ決定部16は、図7のフローチャートに示すように、キャッシュDB17の情報に基づいてその要求メッセージ(1)を送信すべきキャッシュサーバを決定する。
すなわち、ユーザ1からの要求メッセージ(1)は、表2に示したように、コンテンツのデータ内部が、“www.kurosawa.com”となっており、図7のステップS21でメッセージ(1)を受信した後、ステップS22においてキャッシュDB17に予め保持されている表1に示すキーワードと比較すると、キャッシュDB17のキーワードと一致するものは無く、ステップS23においてキャッシュDB17の要求履歴と一致するものも無く、さらにステップS24においてキャッシュDB17の要求履歴と送信元IPアドレスが一致するものも無いことが分かる。
【0052】
従って、ステップS25に示すように、キャッシュサーバを、表1に示すワイルドカード(デフォルト)のキャッシュサーバ3_3に暫定的に決定してキャッシュDB17に要求メッセージを記録する。
この記録に際しては、表1に示すキャッシュ位置の行内で、一番上位に来るように行われる。従って、このときのキャッシュDB17の内容(2)は下記の表4に示すように更新される。
【0053】
【表4】
【0054】
[6]キャッシュ決定部16は、さらにステップS28により、要求メッセージ(1)を、ステップS25で決定したキャッシュ位置と共に宛先変更部18に送信する。
[7]宛先変更部18においては、図8のフローチャートに示すように、ステップS31でメッセージ(1)を受信した後、ステップS32においてメッセージ(1)の状態が「要求」であることが分かるから、ステップS33において、決定したキャッシュ位置Cに基づき、要求コンテンツはそのままで、送信者が負荷分散装置2であり、受信者が、決定したキャッシュサーバ3_3である要求メッセージを作成し、ステップS34において、通信記録DB15に記録されているユーザメッセージ情報の行に対して、作成したメッセージのデータを、送信元▲2▼IPアドレスE及びそのポート番号20000並びに宛先▲2▼IPアドレスC及びそのポート番号8080として記録する。この結果、通信記録DB15の内容(2)は次のように更新される。
【0055】
【表5】
【0056】
この場合の作成したメッセージ(2)は以下のとおりである。
【0057】
【表6】
【0058】
[8]宛先変更部18は、ステップS37により、作成したメッセージを送信部21に送信する。
[9]送信部21は、図9のフローチャートに示すように、ステップS41でメッセージ(2)を受信した後、ステップS42において、受信したメッセージを宛先IPアドレスC(キャッシュサーバ3_3)に向けて送信する。
【0059】
この結果、キャッシュサーバ3_3は、該メッセージ(2)を送信部21から受信し、メッセージ内のデータ内部のコンテンツを外部のオリジンサーバ群4から取得し、この取得したコンテンツを蓄積しつつ、そのコンテンツを負荷分散装置2に送信する。
【0060】
この場合のメッセージ(3)は次の通りである。
【0061】
【表7】
【0062】
なお、キャッシュサーバ3_3に予めコンテンツが蓄積されている場合には、外部のオリジンサーバ群4からコンテンツを取得する必要は無く、自分が蓄積しているコンテンツを送信すればよいことは言うまでもない。
[10]受信部11においては、図5のフローチャートに示す如く、ステップS1,S2,S4を通ってステップS6により、受信したメッセージ(3)が「提供」の状態であることが分かるので、該提供メッセージ(3)をステップS7に示すようにコンテンツ分類部13に送る。
【0063】
[11]コンテンツ分類部13においては、図10のフローチャートに示すように、ステップS51でメッセージ(3)を受信した後、ステップS52において、メッセージ(3)内のデータ内部にキャッシュDB17のキーワードと一致するものがあるか否かを判定する。
【0064】
この場合には、上記の表7に示すメッセージ(3)がデータ内部に「映画」及び「監督」をキーワードとして含んでいるので、表4に示したキャッシュDB17の内容(2)においてキャッシュサーバ3_1に該当するとステップS53で判定し、このコンテンツはキャッシュ位置Aに該当すると判定する。そして、キャッシュDB17の内容をメッセージ(3)と通信記録DB15の内容(2)に基づいて更新する。
【0065】
すなわち、ステップS53においてメッセージ(3)内の送信元IPアドレスCと、キーワードが一致した行のキャッシュ位置Aが一致しているか否かを判定し、一致していれば何もせずに該メッセージ(3)を宛先変更部18に送るが、この場合は一致していない(A≠B)ので、ステップS54に進む。
【0066】
ステップS54では、通信記録DB15の内容(2)から、コンテンツを要求していたユーザ(送信元▲1▼IP)アドレスを検出し、そのユーザの要求URLをキャッシュDB17の内容(2)から獲得し、受信したメッセージ(3)内のデータがキーワードと一致したキャッシュサーバAを指定して要求代行部20に該当要求URLを送信する。
【0067】
そして、ステップS55において、該当するURL及びメッセージ(3)内部のデータから、ランダムにキーワードを抽出し、該当する行のキャッシュDB17のキーワード部分に加入し、ステップS56において、該当する要求履歴を、データ内部が一致したキャッシュ位置の行の要求履歴の先頭に移動させる。
【0068】
このようにして更新されたキャッシュDB17の内容(3)は次のようになる。
【0069】
【表8】
【0070】
[13]またコンテンツ分類部13は、ステップS57により、宛先変更部18に対して受信したメッセージを送信する。
宛先変更部18では、図8に示すようにステップS31及びS32を経由してステップS35においてメッセージの状態が「提供」であることが分かるので、ステップS36において、メッセージの送信元IPアドレスと宛先IPアドレスとを入れ替えたメッセージを作成し、ステップS37によりこのメッセージを送信部21に送信する。
【0071】
この場合のメッセージ(4)は次のようになる。
【0072】
【表9】
【0073】
送信部21は、上記[9]と同様に、受信したメッセージ(4)をユーザ1に対して送信し、ユーザ1は要求したコンテンツを受信することになる。
[14]一方、コンテンツ分類部13は、図10のステップS54で説明したように、コンテンツを提供したキャッシュサーバがキャッシュサーバ3_3であり、現在分類したキャッシュサーバ3_1と異なることから、要求代行部20に対してキャッシュサーバ3_1に対するコンテンツ要求のやり直しを指示する。
【0074】
[15]要求代行部20は、図12に示すように、ステップS71でメッセージ(3)を受信した後、ステップS72でコンテンツ分類部13からのメッセージであることを検出し、ステップS73において、指定されたURLのコンテンツを、指定されたキャッシュサーバに要求するメッセージを、要求代行と判別できる識別子(例えばポート番号50000)を加えて作成し、ステップS76により送信部21に送信する。
【0075】
このようにして作成したメッセージ(5)は次のようになる。
【0076】
【表10】
【0077】
そして、送信部21は、要求代行部20から送られて来たメッセージ(5)をキャッシュサーバ3_1に対して送信する。
キャッシュサーバ3_1は、該メッセージ(5)を受信し、メッセージ内のデータ内部のコンテンツを上記と同様に外部のオリジンサーバ群4から取得し、この取得したコンテンツを蓄積し(或いは蓄積されていたデータから得て)、該当コンテンツを負荷分散装置2に送信する。
【0078】
この場合のメッセージ(6)は以下のようになる。
【0079】
【表11】
【0080】
受信部11においては、ステップS1でメッセージ(6)を受信した後、ステップS2においてメッセージ(6)が「代行要求の応答」であることが分かるので、ステップS3に示すように受信メッセージを廃棄する。
[16]一方、タイマー部19は、一定周期を計時しており、図11のステップS61及びS62に示す如く、予め設定された時間間隔が経過すると、要求代行部20に対して要求代行を行うように指示することができる。
【0081】
[17]要求代行部20は、タイマー部19から指示を受けると、キャッシュDB17の情報に基づき、各キャッシュ位置の上位にある要求コンテンツに対して該当キャッシュサーバに対してコンテンツ要求を行うメッセージを作成し送信部21に送信する。
【0082】
すなわち、図12において、ステップS71でメッセージを受信した後、ステップS72を経由してステップS74においてタイマー部19からのメッセージであることを検出した後、ステップS75において、キャッシュDB17から、各キャッシュサーバに対して各キャッシュ位置の行にある要求履歴の先頭から所定個数(例えば1個)だけ要求コンテンツを取得して、対応するキャッシュサーバに対して要求メッセージを、要求代行と分かる識別子(ポート番号50000)を加えて作成し、ステップS76によりそのメッセージを送信部21に送信する。
【0083】
送信部21は、該当するキャッシュサーバに対して該要求メッセージを送信し、要求を受けた各キャッシュサーバは、それぞれ最新のコンテンツを取得してそれぞれ最新のコンテンツを外部のオリジンサーバ群4から取得し、そのコンテンツを負荷分散装置2に送信する。このコンテンツは、上記と同様に廃棄される。
【0084】
[18]また、外部からユーザインタフェース部14に対して指示が与えられた場合には、受信部11は、図5において、ステップS1,S2,S4,S6を経由してステップS8においてメッセージの状態が「ユーザインタフェース(UI)指示」であることを検出するので、そのメッセージをユーザインタフェース部14に送信する。
【0085】
この場合のメッセージ(7)は次の通りである。
【0086】
【表12】
【0087】
[19]ユーザインタフェース部14は、図13のステップS81でメッセージ(7)を受信した後、ステップS82において通信記録DB15へのアクセス支持であることを検出し、この場合指定に基づき通信記録DB15の内部データを変更、取得、又は追加する。
【0088】
[20]同様にしてユーザインタフェース部14はキャッシュDB17に対し、図13のステップS84により、ステップS85と同様にキャッシュDB17の内部データを変更、取得、又は追加する。
[21]さらにユーザインタフェース部14は、図13のステップS86により、タイマー部19へのアクセス指示を判定したとき、ステップS87により、タイマー部19の時間間隔を変更又は取得する。
【0089】
[22]そしてユーザインタフェース部14は、送信部21に対し、ステップS88に示す如く作業結果をデータ内部とし、受信したメッセージの送信者を宛先としたメッセージを作成し、ステップS89により作成したメッセージを送信部21に送信する。
【0090】
このときのメッセージ(8)は次の通りである。
【0091】
【表13】
【0092】
このメッセージ(8)は送信部21から外部に送信される。
なお、上記の実施例においては、分類したコンテンツに対応するキャッシュサーバが検出できない場合、予め決めたキャッシュサーバを介してオリジンサーバからそのコンテンツを取得するようにしているが、負荷分散装置の側で、別のキャッシュサーバにそのコンテンツが蓄積されていることが分かれば、オリジンサーバからコンテンツを取得する代わりに、その蓄積しているキャッシュサーバからコンテンツを取得するようにしてもよい。
(付記1)
ユーザが位置する第1の通信端末と、コンテンツを一時的に蓄積することが可能な複数の第2の通信端末と、該コンテンツを予め保持している第3の通信端末とで構成されるネットワークの負荷分散方法において、
該第1の通信端末が、希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積している該第2の通信端末の内、該希望のコンテンツを蓄積しているものを検出する第1ステップと、
該検出した第2の通信端末に該希望のコンテンツを要求することにより取得して該第1の通信端末に送信する第2ステップと、
を備えたことを特徴とする負荷分散方法。
(付記2)付記1において、
該希望のコンテンツを蓄積している第2の通信端末を検出できないとき、該第2の通信端末の内で予め決めたものを介して該第3の通信端末に要求することにより該希望のコンテンツを取得し、該第2の通信端末にキャッシュさせてから該第1の通信端末に転送する第3ステップと、
該第2の通信端末の内で該ジャンルに対応して該希望のコンテンツを蓄積すべきものを該コンテンツ中のキーワードに基づいて検出し、この第2の通信端末を介して該希望のコンテンツを該第3の通信端末に要求し直すことにより取得し、該第2の通信端末にキャッシュさせる第4ステップと、
をさらに備えたことを特徴とする負荷分散方法。
(付記3)付記2において、
該第4ステップでは、該希望のコンテンツの要求し直しを、即座に、又は該第1の通信端末からのコンテンツ要求を契機として行うことを特徴とした負荷分散方法。
(付記4)付記2において、
該第4ステップでは、該希望のコンテンツの要求し直しを、定期的に行うことを特徴とした負荷分散方法。
(付記5)付記2において、
該コンテンツを要求した該第1の通信端末の識別子と該コンテンツ要求の宛先となる該第2の通信端末とを関連付けた履歴を記録することにより、現在どの第1の通信端末がどのコンテンツを要求し、このコンテンツをどの第2の通信端末に要求したかを記録する第5ステップをさらに備えたことを特徴とする負荷分散方法。
(付記6)付記2において、
該第2の通信端末と該キーワードと該第1の通信端末のコンテンツ要求とを関連付けた履歴を保持することにより、どの第2の通信端末がどの第1の通信端末からどんなキーワードのコンテンツが要求されたのかを保持する第6ステップをさらに備えたことを特徴とする負荷分散方法。
(付記7)付記6において、
該履歴を、外部から参照又は変更可能にしたことを特徴とする負荷分散方法。
(付記8)付記1において、
該第2の通信端末がキャッシュサーバであり、該第3の通信端末がオリジンサーバ群であることを特徴とする負荷分散方法。
(付記9)
ユーザが位置する第1の通信端末と、コンテンツを一時的に蓄積することが可能な複数の第2の通信端末と、該コンテンツを予め保持している第3の通信端末とで構成されるネットワークの負荷分散装置において、
該第1の通信端末が、希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積している該第2の通信端末の内、該希望のコンテンツを蓄積しているものを検出する第1手段と、
該検出した第2の通信端末に該希望のコンテンツを要求することにより取得して該第1の通信端末に送信する第2手段と、
を備えたことを特徴とする負荷分散装置。
(付記10)付記9において、
該希望のコンテンツを蓄積している第2の通信端末を検出できない時、該第2の通信端末の内で予め決めたものを介して該第3の通信端末に要求することにより該希望のコンテンツを取得し、その第2の通信端末にキャッシュさせてから該第1の通信端末に転送する第3手段と、
該第2の通信端末の内で該ジャンルに対応して該希望のコンテンツを蓄積すべきものを該コンテンツ中のキーワードに基づいて検出し、この第2の通信端末を介して該希望のコンテンツを該第3の通信端末に要求し直すことにより取得し、該第2の通信端末にキャッシュさせる第4手段と、
をさらに備えたことを特徴とする負荷分散装置。
(付記11)付記10において、
該第4手段は、該希望のコンテンツの要求し直しを、即座に、又は該第1の通信端末からのコンテンツ要求を契機として行うことを特徴とした負荷分散装置。
(付記12)付記10において、
該第4手段は、該希望のコンテンツの要求し直しを、定期的に行うことを特徴とした負荷分散装置。
(付記13)付記10において、
該コンテンツを要求した該第1の通信端末の識別子と該コンテンツ要求の宛先となる該第2の通信端末とを関連付けた履歴を記録することにより、現在どの第1の通信端末がどのコンテンツを要求し、このコンテンツをどの第2の通信端末に要求したかを記録する記録部をさらに備えたことを特徴とした負荷分散装置。
(付記14)付記10において、
該第2の通信端末とコンテンツのキーワードと該第1の通信端末のコンテンツ要求とを関連付けた履歴を保持することにより、どの第2の通信端末がどの第1の通信端末からどんなキーワードのコンテンツが要求されたのかを保持する保持部をさらに備えたことを特徴とする負荷分散装置。
(付記15)付記14において、
該履歴を、外部から参照又は変更可能にしたことを特徴とする負荷分散装置。(付記16)付記9において、
該第2の通信端末がキャッシュサーバであり、該第3の通信端末がオリジンサーバ群であることを特徴とする負荷分散装置。
【0093】
【発明の効果】
以上説明したように本発明に係る負荷分散方法及び装置によれば、第1の通信端末が、希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積している第2の通信端末の内、その希望のコンテンツを蓄積しているものを検出し、この検出した第2の通信端末にその希望のコンテンツを要求することにより取得して第1の通信端末に送信するように構成したので、ユーザからの要求を該当するジャンルのキャッシュサーバに最適に振り分けることができ、ユーザからの要求に対してヒット率を向上させ、レスポンスタイムの短縮を実現することができる。
【0094】
また、その希望のコンテンツを蓄積している第2の通信端末が分からないときには、予め決めた第2の通信端末を介して第3の通信端末から希望のコンテンツを取得し第2の通信端末にキャッシュさせてから第1の通信端末に転送すると共に、該第2の通信端末の内でジャンルに対応して希望のコンテンツを蓄積すべきものをコンテンツのキーワードに基づいて検出し、この第2の通信端末を介して希望のコンテンツを第3の通信端末に対して要求し直すことにより取得し、第2の通信端末にキャッシュさせるようにすれば、対応したジャンルの最新のコンテンツが順次学習により蓄積されて行くことになる。
【0095】
また、内部に保持する履歴を外部から参照又は変更可能にすることで、外部から状態確認や制御を行うことが可能となる。
【図面の簡単な説明】
【図1】本発明に係る負荷分散方法及び装置のネットワーク概要図である。
【図2】本発明に係る負荷分散方法及び装置の動作原理を説明するための図である。
【図3】本発明に係る負荷分散方法及び装置の実施例の全体を示した図である。
【図4】本発明に係る負荷分散方法及び負荷分散装置を実現する実施例を示したブロック図である。
【図5】本発明に係る負荷分散方法及び装置に用いる受信部の動作例を示したフローチャート図である。
【図6】本発明に係る負荷分散方法及び装置に用いる通信記録部の動作例を示したフローチャート図である。
【図7】本発明に係る負荷分散方法及び装置に用いるキャッシュ決定部の動作例を示したフローチャート図である。
【図8】本発明に係る負荷分散方法及び装置に用いる宛先変更部の動作例を示したフローチャート図である。
【図9】本発明に係る負荷分散方法及び装置に用いる送信部の動作例を示したフローチャート図である。
【図10】本発明に係る負荷分散方法及び装置に用いるコンテンツ分類部の動作例を示したフローチャート図である。
【図11】本発明に係る負荷分散方法及び装置に用いるタイマー部の動作例を示したフローチャート図である。
【図12】本発明に係る負荷分散方法及び装置に用いる要求代行部の動作例を示したフローチャート図である。
【図13】本発明に係る負荷分散方法及び装置に用いるユーザインタフェース部の動作例を示したフローチャート図である。
【図14】従来から知られているキャッシュサーバの構築例を示した図である。
【図15】キャッシュサーバの一般的な負荷分散例を示したブロック図である。
【図16】従来から知られているリクエスト・リルーティングシステムによる負荷分散例を示した図である。
【符号の説明】
1(1_1,1_2,1_3,・・・) ユーザ(クライアント)
2 負荷分散装置
3(3_1,3_2,3_3,・・・) キャッシュサーバ
4(4_1,4_2,4_3,・・・) オリジンサーバ群
11 受信部
12 通信記録部
13 コンテンツ分類部
14 ユーザインタフェース部
15 通信記録部
16 キャッシュ決定部
17 キャッシュDB
18 宛先変更部
19 タイマー部
20 要求代行部
21 送信部
図中、同一符号は同一又は相当部分を示す。
Claims (5)
- ユーザが位置する第1の通信端末と、コンテンツを一時的に蓄積することが可能な複数の第2の通信端末と、該コンテンツを予め保持している第3の通信端末とで構成されるネットワークの負荷分散方法において、
該第1の通信端末が、希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積している該第2の通信端末の内、該希望のコンテンツを蓄積しているものを検出する第1ステップと、
該検出した第2の通信端末に該希望のコンテンツを要求することにより取得して該第1の通信端末に送信する第2ステップと、
を備えたことを特徴とする負荷分散方法。 - 請求項1において、
該希望のコンテンツを蓄積している第2の通信端末を検出できないとき、該第2の通信端末の内で予め決めたものを介して該第3の通信端末に要求することにより該希望のコンテンツを取得し、該第2の通信端末にキャッシュさせてから該第1の通信端末に転送する第3ステップと、
該第2の通信端末の内で該ジャンルに対応して該希望のコンテンツを蓄積すべきものを該コンテンツ中のキーワードに基づいて検出し、この第2の通信端末を介して該希望のコンテンツを該第3の通信端末に要求し直すことにより取得し、該第2の通信端末にキャッシュさせる第4ステップと、
をさらに備えたことを特徴とする負荷分散方法。 - 請求項2において、
該第4ステップでは、該希望のコンテンツの要求し直しを、即座に、又は該第1の通信端末からのコンテンツ要求を契機として行うことを特徴とした負荷分散方法。 - ユーザが位置する第1の通信端末と、コンテンツを一時的に蓄積することが可能な複数の第2の通信端末と、該コンテンツを予め保持している第3の通信端末とで構成されるネットワークの負荷分散装置において、
該第1の通信端末が、希望するコンテンツを要求したとき、ジャンル別にコンテンツをそれぞれ蓄積している該第2の通信端末の内、該希望のコンテンツを蓄積しているものを検出する第1手段と、
該検出した第2の通信端末に該希望のコンテンツを要求することにより取得して該第1の通信端末に送信する第2手段と、
を備えたことを特徴とする負荷分散装置。 - 請求項4において、
該希望のコンテンツを蓄積している第2の通信端末を検出できない時、該第2の通信端末の内で予め決めたものを介して該第3の通信端末に要求することにより該希望のコンテンツを取得し、その第2の通信端末にキャッシュさせてから該第1の通信端末に転送する第3手段と、
該第2の通信端末の内で該ジャンルに対応して該希望のコンテンツを蓄積すべきものを該コンテンツ中のキーワードに基づいて検出し、この第2の通信端末を介して該希望のコンテンツを該第3の通信端末に要求し直すことにより取得し、該第2の通信端末にキャッシュさせる第4手段と、
をさらに備えたことを特徴とする負荷分散装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002243630A JP2004086317A (ja) | 2002-08-23 | 2002-08-23 | 負荷分散方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002243630A JP2004086317A (ja) | 2002-08-23 | 2002-08-23 | 負荷分散方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004086317A true JP2004086317A (ja) | 2004-03-18 |
Family
ID=32052341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002243630A Pending JP2004086317A (ja) | 2002-08-23 | 2002-08-23 | 負荷分散方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004086317A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005341378A (ja) * | 2004-05-28 | 2005-12-08 | Nippon Telegr & Teleph Corp <Ntt> | マルチキャスト転送装置の負荷分散方式、マルチキャスト分岐機能体における負荷分散方法、マルチキャスト分岐機能体における分散装置および情報出力プログラム |
JP2006127123A (ja) * | 2004-10-28 | 2006-05-18 | Mitsubishi Electric Corp | アプリケーションサーバ、データベースサーバ、ウェブ検索システム、検索結果取得方法、検索結果応答方法、検索結果取得プログラムおよび検索結果応答プログラム |
WO2007072670A1 (ja) * | 2005-12-22 | 2007-06-28 | Matsushita Electric Industrial Co., Ltd. | 放送受信装置、映像蓄積装置およびマルチメディア配信システム |
JP2007243552A (ja) * | 2006-03-08 | 2007-09-20 | Sony Corp | 情報処理装置および方法、並びにプログラム |
JP2011070316A (ja) * | 2009-09-24 | 2011-04-07 | Brother Industries Ltd | 情報通信システム、情報通信方法及びノードプログラム |
WO2013057985A1 (ja) * | 2011-10-21 | 2013-04-25 | 株式会社日立製作所 | キャッシュサーバ解決方法、装置、及びシステム |
JP2017016447A (ja) * | 2015-07-02 | 2017-01-19 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
JP2019198130A (ja) * | 2019-08-27 | 2019-11-14 | Necプラットフォームズ株式会社 | 送信装置、中継装置、通信システム、送信方法、中継方法、およびプログラム |
US10841400B2 (en) | 2014-12-15 | 2020-11-17 | Level 3 Communications, Llc | Request processing in a content delivery framework |
-
2002
- 2002-08-23 JP JP2002243630A patent/JP2004086317A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005341378A (ja) * | 2004-05-28 | 2005-12-08 | Nippon Telegr & Teleph Corp <Ntt> | マルチキャスト転送装置の負荷分散方式、マルチキャスト分岐機能体における負荷分散方法、マルチキャスト分岐機能体における分散装置および情報出力プログラム |
JP2006127123A (ja) * | 2004-10-28 | 2006-05-18 | Mitsubishi Electric Corp | アプリケーションサーバ、データベースサーバ、ウェブ検索システム、検索結果取得方法、検索結果応答方法、検索結果取得プログラムおよび検索結果応答プログラム |
WO2007072670A1 (ja) * | 2005-12-22 | 2007-06-28 | Matsushita Electric Industrial Co., Ltd. | 放送受信装置、映像蓄積装置およびマルチメディア配信システム |
JP2007243552A (ja) * | 2006-03-08 | 2007-09-20 | Sony Corp | 情報処理装置および方法、並びにプログラム |
JP2011070316A (ja) * | 2009-09-24 | 2011-04-07 | Brother Industries Ltd | 情報通信システム、情報通信方法及びノードプログラム |
WO2013057985A1 (ja) * | 2011-10-21 | 2013-04-25 | 株式会社日立製作所 | キャッシュサーバ解決方法、装置、及びシステム |
US10841400B2 (en) | 2014-12-15 | 2020-11-17 | Level 3 Communications, Llc | Request processing in a content delivery framework |
US11575773B2 (en) | 2014-12-15 | 2023-02-07 | Level 3 Communications, Llc | Request processing in a content delivery framework |
JP2017016447A (ja) * | 2015-07-02 | 2017-01-19 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
JP2019198130A (ja) * | 2019-08-27 | 2019-11-14 | Necプラットフォームズ株式会社 | 送信装置、中継装置、通信システム、送信方法、中継方法、およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11632420B2 (en) | Point of presence management in request routing | |
US11194719B2 (en) | Cache optimization | |
US10783077B2 (en) | Managing resources using resource expiration data | |
US11463550B2 (en) | Request management for hierarchical cache | |
US10931738B2 (en) | Point of presence management in request routing | |
US9608957B2 (en) | Request routing using network computing components | |
US10264062B2 (en) | Request routing using a popularity identifier to identify a cache component | |
US8756325B2 (en) | Content management | |
US6836806B1 (en) | System for network addressing | |
US8788671B2 (en) | Managing content delivery network service providers by a content broker | |
EP1287453B1 (en) | Content exchange apparatus | |
US20020016860A1 (en) | System and method for resolving network layer anycast addresses to network layer unicast addresses | |
US20030050966A1 (en) | Method and system for redirecting data requests in peer-to-peer data networks | |
US20120215914A1 (en) | Request routing based on class | |
JP2004086317A (ja) | 負荷分散方法及び装置 | |
US9288153B2 (en) | Processing encoded content | |
WO2001084803A2 (en) | System and method for resolving network layer anycast addresses to network layer unicast addresses |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060613 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060811 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060919 |