(57)【要約】【課題】少数台数のキャッシュサーバ装置だけでは、コンテンツ処理装置の負荷が高まったときに、最新のコンテンツを端末に提供することが困難となることがあった。【解決手段】キャッシュサーバ装置４は、通信管理部４１と、コンテンツをキャッシュに記録する記録部４２と、キャッシュ管理部４３とを備える。通信管理部４１は、ネットワーク３に接続された端末２から受け取るコンテンツの取得要求に応じて、キャッシュ４２ｂから読み出した動的コンテンツを端末２に送る。キャッシュ管理部４３は、コンテンツ処理装置５の負荷に応じて、キャッシュ４２ｂに動的コンテンツを記録するキャッシュ有効時間を変更する。そして、キャッシュ４２ｂに動的コンテンツを記録するキャッシュ有効時間を超えると、動的コンテンツ処理装置５から再びコンテンツを取得して、キャッシュ４２ｂに記録された動的コンテンツを更新する。【選択図】図１
2014225109.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツ処理装置が生成したコンテンツをキャッシュに記録する記録部と、
ネットワークに接続された端末から受け取る前記コンテンツの取得要求に応じて、前記キャッシュから読み出した前記コンテンツを前記端末に送る通信管理部と、
前記コンテンツ処理装置の負荷に応じて、前記キャッシュに前記コンテンツを記録するキャッシュ有効時間を変更し、前記キャッシュに前記コンテンツを記録する時間が前記キャッシュ有効時間を超えると、前記コンテンツ処理装置から再び取得した前記コンテンツにより、前記キャッシュに記録された前記コンテンツを更新するキャッシュ管理部と、を備える
負荷分散装置。
【請求項２】
前記通信管理部は、
前記端末から受け付けた前記コンテンツの取得要求に対する応答を返す受付部と、
前記キャッシュに記録される前記コンテンツに加えて、前記コンテンツ処理装置から前記コンテンツを取得した時間を含むキャッシュ情報に基づいて、前記キャッシュ有効時間を超えて前記キャッシュに記録されている前記コンテンツの更新要否を判断するキャッシュ更新判断部と、を備える
請求項１記載の負荷分散装置。
【請求項３】
前記キャッシュ管理部は、
前記キャッシュ更新判断部によって更新することが判断された前記コンテンツを前記コンテンツ処理装置から取得して、前記キャッシュに記録された前記コンテンツを更新するキャッシュ更新部と、
前記コンテンツ処理装置から受信した前記コンテンツ処理装置の負荷情報を前記記録部に記録する負荷情報受信部と、
前記コンテンツ処理装置の負荷情報に基づいて変更した前記キャッシュ有効時間を前記記録部に設定するキャッシュ有効時間設定部と、を備える
請求項２記載の負荷分散装置。
【請求項４】
前記記録部は、前記キャッシュ情報及び前記負荷情報に加えて、前記コンテンツ処理装置に許容される負荷の閾値、前記キャッシュ有効時間、及び前記キャッシュ有効時間の設定可能範囲を含む設定情報を記録し、
前記キャッシュ有効時間設定部は、前記負荷情報から読み出した前記コンテンツ処理装置の負荷が、前記設定情報から読み出した前記負荷の閾値の上限を超えると、前記キャッシュ有効時間の設定可能範囲内で前記設定情報の前記キャッシュ有効時間を増やし、前記設定情報から読み出した前記負荷の閾値の下限に満たなければ、前記キャッシュ有効時間の設定可能範囲内で前記設定情報の前記キャッシュ有効時間を減らす
請求項３記載の負荷分散装置。
【請求項５】
ネットワークに接続された端末から受け取るコンテンツの取得要求に応じて、コンテンツ処理装置が生成したコンテンツを記録部のキャッシュに記録する手順、
前記キャッシュから読み出した前記コンテンツを前記端末に送る手順、
前記コンテンツ処理装置の負荷に応じて、前記キャッシュに前記コンテンツを記録するキャッシュ有効時間を変更する手順、
前記キャッシュに前記コンテンツを記録する時間が前記キャッシュ有効時間を超えると、前記コンテンツ処理装置から再び取得した前記コンテンツにより、前記キャッシュに記録された前記コンテンツを更新する手順を
コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、コンテンツを端末に提供するコンテンツ処理装置の負荷を分散するための負荷分散装置及びプログラムに関する。
【背景技術】
【０００２】
従来、コンテンツ処理装置が生成したコンテンツを端末（例えば、ＰＣ：Personal Computer）に提供するためのコンテンツ配信システムが知られている。しかし、多数の端末から一斉にコンテンツの取得要求を受けると、コンテンツ処理装置の負荷が増し、端末に対する応答が遅延することがある。コンテンツ処理装置の負荷としては、例えば、ＣＰＵ、メモリの使用率が上昇したり、ディスク装置等の記録部に対するデータの入出力が頻発したりするものがある。
【０００３】
そこで、コンテンツ処理装置と端末の間にキャッシュサーバ装置を設けて、コンテンツ処理装置の負荷を分散させる負荷分散システムが用いられるようになってきた。このキャッシュサーバ装置は、記録部に設けたキャッシュにコンテンツを所定時間（以下、「キャッシュ有効時間」という）だけ記録し、コンテンツ処理装置に代わって端末からの取得要求に応答することで、コンテンツ処理装置の負荷を抑えるものである。
【０００４】
ここで特許文献１には、それぞれのキャッシュサーバに負荷を分散させ、全体の負荷を低減し、各キャッシュサーバの負荷に応じて動的に論理的なネットワーク構成を変更する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２３７６３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献１に開示された技術は、多数台のキャッシュサーバ装置によって構成された大規模な負荷分散システムのネットワークを再構築して、各キャッシュサーバ装置の負荷を抑えるものである。しかし、少数台数（１、２台程度）のキャッシュサーバ装置で構成された小規模な負荷分散システムでは、ネットワークの再構築を行っても各キャッシュサーバ装置の負荷はあまり変わらない。
【０００７】
そこで、キャッシュ有効時間を長くすれば、キャッシュサーバ装置はコンテンツ処理装置から頻繁にコンテンツを取得しないため、コンテンツ処理装置の負荷を抑えることができると考えられていた。しかし、キャッシュに記録したコンテンツをできるだけ活用するために、単にキャッシュ有効時間を長くしただけでは、コンテンツ処理装置で生成された最新のコンテンツをキャッシュに反映するまでのタイムラグが大きくなる。この場合、端末に最新のコンテンツを提供するまでに時間を要してしまう。しかし、単にキャッシュ有効時間を短くしただけでも、キャッシュサーバ装置とコンテンツ処理装置との間で頻繁に要求と応答が繰り返されるため、コンテンツ処理装置の負荷を抑えることができない。
【０００８】
本発明はこのような状況に鑑みて成されたものであり、コンテンツ処理装置の負荷を抑えて、端末にコンテンツを提供できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、ネットワークに接続された端末から受け取るコンテンツの取得要求に応じて、コンテンツ処理装置が生成したコンテンツを記録部のキャッシュに記録する。
次に、キャッシュから読み出したコンテンツを端末に送り、コンテンツ処理装置の負荷に応じて、キャッシュにコンテンツを記録するキャッシュ有効時間を変更する。
そして、キャッシュにコンテンツを記録する時間がキャッシュ有効時間を超えると、コンテンツ処理装置から再び取得したコンテンツにより、キャッシュに記録されたコンテンツを更新する。
【発明の効果】
【００１０】
本発明によれば、コンテンツ処理装置の負荷に応じてキャッシュにコンテンツが記録されるキャッシュ有効時間が変更されるため、キャッシュ有効時間を超えてキャッシュにコンテンツが記録されると、キャッシュに最新のコンテンツが更新される。このため、例えば、少数台数のキャッシュサーバ装置であっても、コンテンツ処理装置の負荷を抑えつつ、最新のコンテンツを端末に提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施の形態例におけるキャッシュサーバシステムのソフトウェア構成例を示すブロック図である。
【図２】本発明の一実施の形態例における計算機のハードウェア構成例を示すブロック図である。
【図３】本発明の一実施の形態例におけるキャッシュサーバ装置が、端末からの動的コンテンツの取得要求に応答する処理例を示すシーケンス図である。
【図４】図３のステップＳ３で行われるキャッシュ更新判断部の詳細な処理例を示すフローチャートである。
【図５】本発明の一実施の形態例における変更したキャッシュ有効時間をキャッシュサーバ設定情報に設定する処理例を示すシーケンス図である。
【図６】本発明の一実施の形態例におけるキャッシュ有効時間設定部が動的コンテンツ処理装置の負荷に合わせて自動的にキャッシュ有効時間を変更する処理例を示すシーケンス図である。
【図７】図６のステップＳ３４においてキャッシュ有効時間設定部が動的コンテンツ処理装置の負荷情報を評価する詳細な処理例を示すフローチャートである。
【図８】本発明の一実施の形態例におけるキャッシュサーバ装置、動的コンテンツ処理装置の処理時間の例を示す説明図である。
【図９】本発明の一実施の形態例における負荷評価数値とキャッシュ有効時間の時間変化の例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施の形態例に係るキャッシュサーバシステム１について、添付図面を参照して説明する。このキャッシュサーバシステム１は、コンピュータがプログラムを実行することにより、後述する機能ブロックが連携して行う負荷分散方法を実現する。本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
【００１３】
＜１．一実施の形態例＞
［キャッシュサーバシステムの内部構成例］
図１は、キャッシュサーバシステム１の内部構成例を示すブロック図である。
【００１４】
キャッシュサーバシステム１は、端末２と動的コンテンツ処理装置５の間にキャッシュサーバ装置４を備えて、動的コンテンツ処理装置５の負荷を分散する負荷分散システムの一例として用いられる。以下の説明では、動的コンテンツ処理装置５によって短時間で更新され、時間経過と共に内容が変化する価格表や製品表等を含むコンテンツを、「動的コンテンツ」と呼ぶ。また、動的コンテンツ処理装置５が備えるＣＰＵ１１（後述する図２を参照）の処理負荷や、不揮発性ストレージ１７（後述する図２を参照）の使用量、不揮発性ストレージ１７への書込み又は読出しに伴う負荷等を、「動的コンテンツ処理装置５の負荷」と総称する。また、動的コンテンツ処理装置５の負荷の内容を、「動的コンテンツ処理装置５の負荷情報」と呼ぶ。
【００１５】
このキャッシュサーバシステム１は、ユーザが動的コンテンツの取得要求を行う端末２と、有線又は無線によって構築されたネットワーク３と、動的コンテンツを記録部４２のキャッシュ４２ｂに記録するキャッシュサーバ装置４とを備える。キャッシュサーバ装置４は、動的コンテンツ処理装置５の負荷を分散するための負荷分散装置の一例として用いられる。また、キャッシュ４２ｂは、キャッシュの一例として用いられるものであり、キャッシュサーバ装置４が動的コンテンツ処理装置５から取得した動的コンテンツを可変のキャッシュ有効時間内にわたって記録する。
【００１６】
また、キャッシュサーバシステム１は、動的コンテンツを生成する動的コンテンツ処理装置５と、動的コンテンツの生成元となる各種データを蓄積する動的コンテンツ用データベース６とを備える。
【００１７】
ここで、キャッシュサーバシステム１を構成する各装置の概要を説明する。
端末２は、ユーザによって操作され、ネットワーク３を通じて接続したキャッシュサーバ装置４に対して動的コンテンツの取得要求を行う。
【００１８】
キャッシュサーバ装置４は、動的コンテンツ処理装置５の負荷を随時監視し、動的コンテンツ処理装置５の負荷に応じて、自動的にキャッシュ有効時間を調整する。そして、キャッシュサーバ装置４は、動的コンテンツ処理装置５に代わって、端末２から取得要求された動的コンテンツを、ネットワーク３を通じて端末２に送る。このキャッシュサーバ装置４は、通信管理部４１と、記録部４２と、キャッシュ管理部４３とを備える。
本実施の形態例では、キャッシュサーバシステム１が１台のキャッシュサーバ装置４を備えるものとしているが、複数台のキャッシュサーバ装置４を設置することも可能である。
【００１９】
動的コンテンツ処理装置５は、動的コンテンツ用データベース６から読み出したデータを用いて動的コンテンツを生成する。この動的コンテンツ処理装置５は、動的コンテンツ生成部５１と、動的コンテンツ処理装置負荷情報処理部５２を有する。
本実施の形態例では、キャッシュサーバシステム１が１台の動的コンテンツ処理装置５を備えるものとしているが、複数台の動的コンテンツ処理装置５を設置することも可能である。
【００２０】
動的コンテンツ用データベース６は、動的コンテンツ処理装置５に付随するデータベースサーバ装置として用いられる。本実施の形態例では、キャッシュサーバシステム１が１台の動的コンテンツ用データベース６を備えるものとしているが、複数台の動的コンテンツ用データベース６を設置することも可能である。
【００２１】
次に、各装置の内部構成例及び動作例を説明する。
【００２２】
キャッシュサーバ装置４が備える通信管理部４１は、ネットワーク３に接続された端末２から受け取る動的コンテンツの取得要求に応じて、動的コンテンツキャッシュ情報４２ａが管理するキャッシュ４２ｂから読み出した動的コンテンツを端末２に送る。
【００２３】
この通信管理部４１は、受付部４１ａ、キャッシュ更新判断部４１ｂを備える。受付部４１ａは、端末２から受け付けた動的コンテンツの取得要求に対する応答を返す。この応答には、端末２から受け取るコマンドに対する応答の他、端末２から取得要求された動的コンテンツの送信等が含まれる。
キャッシュ更新判断部４１ｂは、記録部４２から読み出したキャッシュ情報の一例としての動的コンテンツキャッシュ情報４２ａに基づいて、キャッシュ有効時間を超えてキャッシュ４２ｂに記録されている動的コンテンツの更新要否を判断する。
【００２４】
また、記録部４２は、動的コンテンツ処理装置５が生成した動的コンテンツをキャッシュ４２ｂに記録する。この記録部４２は、キャッシュ４２ｂに加えて、動的コンテンツキャッシュ情報４２ａ、キャッシュサーバ設定情報４２ｃ、動的コンテンツ処理装置負荷情報４２ｄによって構成される。
【００２５】
動的コンテンツキャッシュ情報４２ａには、要求動的コンテンツ名称、キャッシュ４２ｂに記録される動的コンテンツ、キャッシュ更新部４３ａが動的コンテンツ生成部５１から動的コンテンツを取得した時間が記録される。
【００２６】
要求動的コンテンツ名称とは、端末２によって取得要求され、キャッシュ４２ｂに記録される動的コンテンツの名称である。この要求動的コンテンツ名称は、端末２から受け付けた動的コンテンツの取得要求に対して、キャッシュ４２ｂ内に記録された動的コンテンツを検索したり、動的コンテンツ処理装置５に動的コンテンツの生成を指示したりするために用いられる。
そして、キャッシュ４２ｂには、要求動的コンテンツ名称に一意に紐付けられた動的コンテンツであって、キャッシュ更新部４３ａが動的コンテンツ生成部５１より取得した動的コンテンツが記録される。
【００２７】
キャッシュサーバ設定情報４２ｃには、キャッシュ有効時間、キャッシュ有効時間設定可能範囲、負荷上限閾値と負荷下限閾値が設定されている。
キャッシュ有効時間とは、キャッシュ４２ｂに記録した動的コンテンツがキャッシュ４２ｂに存在可能な時間を示す数値である。このキャッシュ有効時間を超えてキャッシュ４２ｂに記録される動的コンテンツは、端末２から取得要求があると、最新の動的コンテンツに更新される。
キャッシュ有効時間設定可能範囲とは、可変であるキャッシュ有効時間を設定可能とする範囲を表す。このため、キャッシュ有効時間は、キャッシュ有効時間設定可能範囲を超えて設定することはできない。
負荷上限閾値と負荷下限閾値とは、動的コンテンツ処理装置５に許容される負荷の閾値の一例として示す値である。
【００２８】
動的コンテンツ処理装置負荷情報４２ｄには、現在の動的コンテンツ処理装置５の負荷を示す、動的コンテンツ処理装置５の負荷情報が動的コンテンツ処理装置負荷情報受信部４３ｃによって書き込まれている。上述した負荷上限閾値と負荷下限閾値は、動的コンテンツ処理装置負荷情報４２ｄに記録される動的コンテンツ処理装置５の負荷との比較に用いられる。
【００２９】
キャッシュ管理部４３は、動的コンテンツ処理装置５の負荷に応じて、キャッシュ４２ｂに動的コンテンツを記録するキャッシュ有効時間を変更する。そして、キャッシュ４２ｂに動的コンテンツを記録する時間がキャッシュ有効時間を超えると、動的コンテンツ処理装置５から再び取得した動的コンテンツにより、キャッシュ４２ｂに記録された動的コンテンツを更新する。なお、キャッシュ管理部４３は、端末２から取得要求された動的コンテンツがキャッシュ４２ｂに記録されていない場合に、動的コンテンツ処理装置５から新たに動的コンテンツを取得してキャッシュ４２ｂに記録する。
【００３０】
ここで、キャッシュ管理部４３は、キャッシュ更新部４３ａ、キャッシュ有効時間設定部４３ｂ、動的コンテンツ処理装置負荷情報受信部４３ｃを備える。
【００３１】
キャッシュ更新部４３ａは、キャッシュ更新判断部４１ｂによって更新することが判断された動的コンテンツを動的コンテンツ処理装置５から取得して、キャッシュ４２ｂに記録された動的コンテンツを更新する。ただし、キャッシュ更新部４３ａは、キャッシュ４２ｂに端末２から取得要求された動的コンテンツが記録されていなければ、動的コンテンツ処理装置５から取得した動的コンテンツを新たにキャッシュ４２ｂに書き込む。
【００３２】
キャッシュ有効時間設定部４３ｂは、記録部４２から取得した動的コンテンツ処理装置負荷情報４２ｄに含まれる動的コンテンツ処理装置５の負荷情報に基づいてキャッシュ有効時間を変更する。そして、変更したキャッシュ有効時間を記録部４２内のキャッシュサーバ設定情報４２ｃに設定する。このとき、キャッシュ有効時間設定部４３ｂは、動的コンテンツ処理装置５の負荷が、キャッシュサーバ設定情報４２ｃから読み出した負荷上限閾値を超えると、キャッシュ有効時間の設定可能範囲内でキャッシュ有効時間を増やす。一方、キャッシュサーバ設定情報４２ｃから読み出した負荷下限閾値に満たなければ、キャッシュ有効時間の設定可能範囲内でキャッシュ有効時間を減らす。
【００３３】
動的コンテンツ処理装置負荷情報受信部４３ｃは、動的コンテンツ処理装置５から受信した動的コンテンツ処理装置５の負荷情報を、記録部４２内の動的コンテンツ処理装置負荷情報４２ｄに記録する。動的コンテンツ処理装置負荷情報受信部４３ｃが動的コンテンツ処理装置５から負荷情報を受信する処理は、ほぼリアルタイムで行うことが望ましいが、ＬＡＮ等の通信負荷に応じて数秒程度の間隔を空けて受信してもよい。
【００３４】
次に、動的コンテンツ処理装置５が備える動的コンテンツ生成部５１は、動的コンテンツ用データベース６から読み出した各種のデータに基づいて動的コンテンツを生成する。動的コンテンツ生成部５１が動的コンテンツを生成する処理は、キャッシュ更新部４３ａがキャッシュ４２ｂに記録した動的コンテンツを更新するために、動的コンテンツ生成部５１に動的コンテンツの取得要求を行ったタイミングで開始される。
【００３５】
動的コンテンツ処理装置負荷情報処理部５２は、動的コンテンツ処理装置５の負荷を動的コンテンツ処理装置５の負荷情報として収集している。この動的コンテンツ処理装置５の負荷情報は、動的コンテンツ処理装置負荷情報処理部５２から動的コンテンツ処理装置負荷情報受信部４３ｃが随時受信した後、動的コンテンツ処理装置負荷情報４２ｄに書き込まれる。
【００３６】
［計算機のハードウェア構成例］
次に、キャッシュサーバシステム１の各装置を構成する計算機１０のハードウェア構成を説明する。
図２は、計算機１０のハードウェア構成例を示すブロック図である。
【００３７】
計算機１０は、いわゆるコンピュータとして用いられるハードウェアである。計算機１０は、バス１４にそれぞれ接続されたＣＰＵ（Central Processing Unit：中央処理装置）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３を備える。さらに、計算機１０は、表示部１５、操作部１６、不揮発性ストレージ１７、ネットワークインタフェース１８とを備える。
【００３８】
ＣＰＵ１１は、本実施の形態例に係る各機能を実現するソフトウェアのプログラムコードをＲＯＭ１２から読み出して実行する。ＲＡＭ１３には、演算処理の途中に発生した変数やパラメータ等が一時的に書き込まれる。表示部１５には、例えば、液晶ディスプレイモニタが用いられ、計算機１０で行われる処理の結果等をユーザに表示する。操作部１６には、例えば、キーボード、マウス等が用いられ、ユーザが所定の操作入力、指示を行うことが可能である。
【００３９】
不揮発性ストレージ１７には、例えば、ＨＤＤ（Hard disk drive）、フレキシブルディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード等が用いられる。この不揮発性ストレージ１７には、ＯＳ（Operating System）、各種のパラメータの他に、計算機１０を機能させるためのプログラムが記録されている。ネットワークインタフェース１８には、例えば、ＮＩＣ（Network Interface Card）等が用いられ、端子が接続されたＬＡＮ、専用線、ネットワーク３のいずれかを介して各種のデータを送受信することが可能である。
【００４０】
本実施の形態例において、端末２、キャッシュサーバ装置４、及び動的コンテンツ処理装置５は、それぞれ計算機１０と同様のハードウェア構成としてある。
端末２では、表示部１５に表示された動的コンテンツ名称等をユーザが確認した後、操作部１６の操作によってユーザが指定した動的コンテンツの取得要求がネットワークインタフェース１８からネットワーク３を通じて、キャッシュサーバ装置４に到達する。そして、キャッシュサーバ装置４が応答して送信する動的コンテンツがネットワーク３を通じてネットワークインタフェース１８を経由して表示部１５に表示される。キャッシュサーバ装置４から取得した動的コンテンツは、不揮発性ストレージ１７に記録してもよい。端末２では、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３を用いて、これら一連の処理が行われる。
【００４１】
また、キャッシュサーバ装置４では、通信管理部４１、キャッシュ管理部４３に相当する処理がＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３を用いて行われる。そして、記録部４２内の各種情報が不揮発性ストレージ１７に記録される。
同様に、動的コンテンツ処理装置５では、動的コンテンツ生成部５１、動的コンテンツ処理装置負荷情報処理部５２に相当する処理がＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３を用いて行われる。なお、動的コンテンツ用データベース６は、動的コンテンツ処理装置５の外部で接続されているが、動的コンテンツ処理装置５内に設けた不揮発性ストレージ１７に動的コンテンツを記録してもよい。
【００４２】
［キャッシュサーバシステムの動作例］
次に、キャッシュサーバシステム１において、端末２からの動的コンテンツの取得要求に対して、キャッシュサーバ装置４が応答する処理例について説明する。
図３は、キャッシュサーバ装置４が、端末２からの動的コンテンツの取得要求に応答する処理例を示すシーケンス図である。
【００４３】
まず、端末２は、ユーザによって指定された特定の動的コンテンツに対する取得要求を行う（ステップＳ１）。受付部４１ａは、端末２より特定の動的コンテンツに対する取得要求を受け付けると、キャッシュ更新判断部４１ｂに特定の動的コンテンツの更新要否処理を要求する（ステップＳ２）。この更新要否処理は、最新の動的コンテンツを端末２に提供するために行われる処理である。
【００４４】
キャッシュ更新判断部４１ｂは、受付部４１ａから特定の動的コンテンツの更新要否処理の要求を受け付けると、キャッシュ４２ｂに記録されている動的コンテンツの更新要否を判断するためのキャッシュ更新判断処理を実行する（ステップＳ３）。このとき、キャッシュ更新判断部４１ｂは、キャッシュサーバ設定情報４２ｃに記録されたキャッシュ有効時間と、端末２から要求された特定の動的コンテンツのキャッシュ４２ｂに記録された時間とを比較し、この動的コンテンツの更新要否を判断する。
【００４５】
キャッシュ更新判断部４１ｂは、動的コンテンツを更新する必要がある場合には、キャッシュ更新部４３ａを呼び出して、キャッシュ４２ｂに記録された動的コンテンツを更新し、動的コンテンツキャッシュ情報４２ａを最新の内容に更新する。そして、受付部４１ａに更新要否処理の完了を応答する（ステップＳ４）。ステップＳ４において、動的コンテンツを更新する必要が無い場合には、キャッシュ４２ｂと動的コンテンツキャッシュ情報４２ａの更新を行わずに、受付部４１ａに更新要否処理の完了を応答する。
【００４６】
受付部４１ａは、キャッシュ更新判断部４１ｂから更新要否処理の完了を受け取ると、端末２より要求された、特定の動的コンテンツの動的コンテンツキャッシュ情報４２ａを記録部４２内で読み込む（ステップＳ５）。
【００４７】
記録部４２に特定の動的コンテンツの動的コンテンツキャッシュ情報４２ａがあれば、受付部４１ａは、記録部４２から動的コンテンツキャッシュ情報４２ａを取得する（ステップＳ６）。その後、受付部４１ａは、取得した動的コンテンツキャッシュ情報４２ａに基づいて、キャッシュ４２ｂから読み出した動的コンテンツを端末２に送信する。そして、受付部４１ａは、端末２から受け取った動的コンテンツの取得要求に対する応答の返却としてこの動的コンテンツを端末２に送信し（ステップＳ７）、一連の処理を終了する。
【００４８】
図４は、図３のステップＳ３で行われるキャッシュ更新判断部４１ｂの詳細な処理例を示すフローチャートである。
【００４９】
キャッシュ更新判断部４１ｂは、受付部４１ａから更新要否処理の要求を受け付けた後（図３のステップＳ３）、端末２から要求された動的コンテンツを含む動的コンテンツキャッシュ情報４２ａが記録部４２に存在するか確認する（ステップＳ１１）。この動的コンテンツキャッシュ情報４２ａが記録部４２に存在しない場合には、キャッシュ更新判断処理を終了する。この動的コンテンツキャッシュ情報４２ａが記録部４２に存在した場合には、キャッシュ更新判断部４１ｂは、キャッシュサーバ設定情報４２ｃより、現在のキャッシュ有効時間を取得する（ステップＳ１２）。
【００５０】
次に、キャッシュ更新判断部４１ｂは、端末２から要求された動的コンテンツがキャッシュ４２ｂに存在する時間が、キャッシュ有効時間を超えているか比較する（ステップＳ１３）。キャッシュ４２ｂに動的コンテンツが存在する時間は、キャッシュ更新部４３ａが動的コンテンツ処理装置５から動的コンテンツを取得した時間と、現在時刻との差分によって求めることができる。そして、動的コンテンツがキャッシュ４２ｂに存在する時間がキャッシュ有効時間を超えていない場合、キャッシュ更新判断処理を終了する。
【００５１】
一方、動的コンテンツがキャッシュ４２ｂに存在する時間がキャッシュ有効時間を超えていた場合、キャッシュ更新判断部４１ｂは、キャッシュ更新部４３ａを呼び出し、要求された動的コンテンツを動的コンテンツ処理装置５から取得する。そして、キャッシュ４２ｂに動的コンテンツを書き込み、動的コンテンツキャッシュ情報４２ａを最新の状態に更新する（ステップＳ１４）。これによりキャッシュ有効時間を用いたキャッシュサーバシステム１を実現することができる。
【００５２】
図５は、変更したキャッシュ有効時間をキャッシュサーバ設定情報４２ｃに設定する処理例を示すシーケンス図である。
【００５３】
動的コンテンツ処理装置負荷情報処理部５２は、一定時間（例えば、５秒）毎に起動すると（ステップＳ２１）、動的コンテンツ処理装置５に対して、動的コンテンツ処理装置５の負荷情報の収集を要求する（ステップＳ２２）。そして、動的コンテンツ処理装置負荷情報処理部５２は、動的コンテンツ処理装置５の負荷情報を収集する（ステップＳ２３）。その後、収集した動的コンテンツ処理装置５の負荷情報を、キャッシュサーバ装置４の動的コンテンツ処理装置負荷情報受信部４３ｃへ送信する（ステップＳ２４）。
【００５４】
動的コンテンツ処理装置負荷情報受信部４３ｃは、動的コンテンツ処理装置５の負荷情報を受信すると、記録部４２内の動的コンテンツ処理装置負荷情報４２ｄに、動的コンテンツ処理装置５の負荷情報を書き込む（ステップＳ２５）。
【００５５】
その後、記録部４２は、動的コンテンツ処理装置負荷情報処理部５２に向けて、動的コンテンツ処理装置負荷情報４２ｄに動的コンテンツ処理装置５の負荷情報を記録したことを通知する（ステップＳ２６）。動的コンテンツ処理装置負荷情報処理部５２は、記録部４２から通知を受け取った後、停止する（ステップＳ２７）。
【００５６】
図６は、キャッシュ有効時間設定部４３ｂが動的コンテンツ処理装置５の負荷に合わせて自動的にキャッシュ有効時間を変更する処理例を示すシーケンス図である。
【００５７】
キャッシュ有効時間設定部４３ｂは、一定時間（例えば、５秒）毎に起動すると（ステップＳ３１）、記録部４２に対して、動的コンテンツ処理装置負荷情報４２ｄとキャッシュサーバ設定情報４２ｃの取得を要求する（ステップＳ３２）。そして、キャッシュ有効時間設定部４３ｂは、記録部４２から動的コンテンツ処理装置負荷情報４２ｄとキャッシュサーバ設定情報４２ｃを取得する（ステップＳ３３）。
【００５８】
次に、キャッシュ有効時間設定部４３ｂは、取得した動的コンテンツ処理装置負荷情報４２ｄに基づいて、動的コンテンツ処理装置５の負荷情報を評価する（ステップＳ３４）。動的コンテンツ処理装置５の負荷情報の評価は、キャッシュサーバ設定情報４２ｃに設定される負荷上限閾値と負荷下限閾値と、動的コンテンツ処理装置５の負荷情報を比較することで行われる（後述する図９を参照）。そして、キャッシュ有効時間設定部４３ｂは、比較結果に応じて、キャッシュ有効時間の変更を記録部４２に要求する（ステップＳ３５）。
【００５９】
記録部４２は、キャッシュサーバ設定情報４２ｃに設定されるキャッシュ有効時間が、キャッシュ有効時間設定部４３ｂが要求したキャッシュ有効時間に変更されると（ステップＳ３６）、キャッシュ有効時間設定部４３ｂに変更完了通知を行う（ステップＳ３７）。キャッシュ有効時間設定部４３ｂは、記録部４２からキャッシュ有効時間の変更完了通知を受け取った後、停止する（ステップＳ３８）。
【００６０】
図７は、図６のステップＳ３４においてキャッシュ有効時間設定部４３ｂが動的コンテンツ処理装置５の負荷情報を評価する詳細な処理例を示すフローチャートである。
【００６１】
上述したようにキャッシュ有効時間設定部４３ｂは、起動後、記録部４２からキャッシュサーバ設定情報４２ｃを取得し（ステップＳ４１）、記録部４２から動的コンテンツ処理装置負荷情報４２ｄを取得する（ステップＳ４２）。そして、キャッシュ有効時間設定部４３ｂは、動的コンテンツ処理装置負荷情報４２ｄに基づいて、動的コンテンツ処理装置５の負荷情報を評価する（ステップＳ４３）。この負荷情報の評価には、以下に示すように、動的コンテンツ処理装置５の負荷を示す負荷評価数値を計算する処理が含まれる。
【００６２】
そして、キャッシュ有効時間設定部４３ｂは、動的コンテンツ処理装置５の負荷評価数値が、キャッシュサーバ設定情報４２ｃ内の負荷上限閾値を超えているか判断する（ステップＳ４４）。負荷評価数値が負荷上限閾値を超えていた場合、キャッシュ有効時間設定部４３ｂは、設定変更可能範囲内で現在のキャッシュ有効時間より多いキャッシュ有効時間をキャッシュサーバ設定情報４２ｃに設定する（ステップＳ４５）。
【００６３】
次に、キャッシュ有効時間設定部４３ｂは、動的コンテンツ処理装置５の負荷評価数値が、キャッシュサーバ設定情報４２ｃ内の負荷下限閾値未満であるか判断する（ステップＳ４６）。負荷評価数値が負荷下限閾値以上である場合、キャッシュ有効時間設定部４３ｂは、処理を終了する。一方、負荷評価数値が、負荷下限閾値未満である場合、キャッシュ有効時間設定部４３ｂは、設定変更可能範囲内で現在のキャッシュ有効時間より少ないキャッシュ有効時間をキャッシュサーバ設定情報４２ｃに設定する（ステップＳ４７）。
【００６４】
このようにして、キャッシュ有効時間設定部４３ｂは、動的コンテンツ処理装置５の負荷を随時監視し、動的コンテンツ処理装置５の負荷に合わせて自動的にキャッシュ有効時間を増減することが可能となる。
【００６５】
［動的コンテンツ処理装置の負荷とキャッシュ有効時間の関係を示す説明図］
次に、動的コンテンツ処理装置５の負荷とキャッシュ有効時間の関係について、図８と図９を参照して説明する。
始めに、キャッシュ有効時間と、キャッシュサーバ装置４及び動的コンテンツ処理装置５の負荷との関係について説明する。
【００６６】
図８は、キャッシュサーバ装置４、動的コンテンツ処理装置５の処理時間の例を示す説明図である。図８Ａは、あるキャッシュ有効時間における各装置の処理時間を示すタイムチャートである。図８Ｂは、図８Ａよりもキャッシュ有効時間を長くした場合における各装置の処理時間を示すタイムチャートである。図８Ｃは、図８Ａと図８Ｂに示した動的コンテンツ生成部５１が動的コンテンツ処理装置５のＣＰＵ１１を占有する時間と、設定されたキャッシュ有効時間の変化例を示す説明図である。
【００６７】
図８Ａに示すように、端末２が取得要求を行った動的コンテンツがキャッシュサーバ装置４のキャッシュ４２ｂに記録されていなければ、キャッシュ更新部４３ａが動的コンテンツ処理装置５に動的コンテンツの取得要求を行う。キャッシュ更新部４３ａから取得要求を受け取った動的コンテンツ生成部５１は、動的コンテンツ用データベース６から読み出したデータを用いて生成した動的コンテンツを、キャッシュ更新部４３ａに渡す。動的コンテンツ生成部５１が１回目に動的コンテンツを生成するために必要な時間は、時間ｔ１であるとする。キャッシュ４２ｂキャッシュ更新部４３ａによって動的コンテンツが書込まれ、その書き込まれた動的コンテンツが端末２に提供されることとなる。
【００６８】
すなわち、キャッシュ更新部４３ａによってキャッシュ４２ｂに書き込まれた動的コンテンツは、キャッシュ有効時間ｔ４だけキャッシュ４２ｂに存在する。キャッシュ有効時間ｔ４内で端末２から再び同じ動的コンテンツの取得要求があった場合には、受付部４１ａがキャッシュ４２ｂから読み出した動的コンテンツが端末２に提供される。
【００６９】
しかし、キャッシュ有効時間ｔ４を超えると、動的コンテンツの内容が古くなっている。このため、端末２から動的コンテンツの取得要求があった場合には、動的コンテンツ生成部５１が再び動的コンテンツを生成し、この動的コンテンツがキャッシュ４２ｂに記録される。動的コンテンツ生成部５１が２回目に動的コンテンツを生成するために必要な時間は、時間ｔ２である。この動的コンテンツについてもキャッシュ有効時間はｔ４であるとする。
【００７０】
同様に、端末２から動的コンテンツの取得要求がキャッシュ有効時間ｔ４を超えて行われると、動的コンテンツ生成部５１が再び動的コンテンツを生成し、この動的コンテンツがキャッシュ４２ｂに記録される。このように動的コンテンツを生成し、キャッシュ有効時間だけキャッシュ４２ｂに記録した後、再び動的コンテンツを生成する処理は何度も繰り返される。
【００７１】
ここで、図８Ｂに示すように、キャッシュ４２ｂに動的コンテンツを記録するキャッシュ有効時間ｔ５を、図８Ａに示したキャッシュ有効時間ｔ４より長くした場合について検討する。このように長くしたキャッシュ有効時間ｔ５内に端末２から何度も動的コンテンツの取得要求が行われたとしても、動的コンテンツ処理装置５に代わってキャッシュサーバ装置４が端末２に応答する。
【００７２】
このため、図８Ｃ（３）に示す短いキャッシュ有効時間ｔ４とした場合には、図８Ｃ（１）に示すように、キャッシュ有効時間ｔ４とした場合に動的コンテンツ生成部５１がＣＰＵ１１を占有する占有時間は、時間ｔ１＋ｔ２＋ｔ３であった。しかし、図８Ｃ（４）に示す長いキャッシュ有効時間ｔ５とした場合には、図８Ｃ（２）に示すように、キャッシュ有効時間ｔ５とした場合に動的コンテンツ生成部５１がＣＰＵ１１を占有する占有時間は、時間ｔ１＋ｔ２となる。このことから、キャッシュ有効時間を長くすると、単位時間当たりに動的コンテンツ生成部５１がＣＰＵ１１を占有する占有時間を短くすることができ、動的コンテンツ処理装置５の負荷を抑えることが示される。
【００７３】
次に、負荷評価数値に従ってキャッシュ有効時間が変化する処理について説明する。
【００７４】
図９は、負荷評価数値とキャッシュ有効時間の時間変化の例を示す説明図である。このグラフにおいて、負荷評価数値は曲線グラフで表し、キャッシュ有効時間は棒グラフで表している。そして、縦軸は負荷評価数値とキャッシュ有効時間の各値を示し、横軸は経過時間を示している。
【００７５】
キャッシュ有効時間設定部４３ｂは、負荷評価数値が負荷上限閾値と負荷下限閾値の間にあれば、キャッシュ有効時間を変更しないが、負荷評価数値が負荷上限閾値と負荷下限閾値の間から外れていれば、キャッシュ有効時間を増減させる。
【００７６】
ここで、キャッシュ有効時間設定部４３ｂは、負荷評価数値が負荷上限閾値に満たなければ、キャッシュ有効時間を短く設定し、負荷評価数値が負荷上限閾値以上になると、キャッシュ有効時間を徐々に長く設定する。そして、キャッシュ有効時間設定部４３ｂは、負荷評価数値が負荷上限閾値を超える限り、設定可能範囲の上限に至るまでキャッシュ有効時間を長くし続ける。
【００７７】
その後、負荷評価数値が負荷上限閾値未満になると、キャッシュ有効時間設定部４３ｂは、キャッシュ有効時間を長くする設定を止める。ただし、負荷評価数値が負荷上限閾値未満となった直後は、再び負荷評価数値が負荷上限閾値を超える可能性があるため、キャッシュ有効時間をほとんど変えない。
【００７８】
しばらくして負荷評価数値が負荷下限閾値未満となると、キャッシュ有効時間設定部４３ｂは、キャッシュ有効時間を徐々に短く設定する。そして、キャッシュ有効時間設定部４３ｂは、負荷評価数値が負荷下限閾値に満たなければ、設定可能範囲の下限に至るまでキャッシュ有効時間を短くし続ける。
【００７９】
その後、負荷評価数値が負荷下限閾値を超えるようになると、キャッシュ有効時間設定部４３ｂは、キャッシュ有効時間を短くする設定を止める。ただし、負荷評価数値が負荷下限閾値以上となった直後は、再び負荷評価数値が負荷下限閾値未満となる可能性があるため、キャッシュ有効時間をほとんど変えない。
このようにして負荷評価数値に応じて、キャッシュ有効時間設定部４３ｂは、負荷上限閾値と負荷下限閾値の間でキャッシュ有効時間を増減させる。
【００８０】
なお、キャッシュ有効時間を示す図９の棒グラフは一定の幅（一定時間）とし、隣り合う棒グラフの間に隙間を空けているが、設定したキャッシュ有効時間に応じて幅を可変としてもよい。また、負荷上限閾値と負荷下限閾値は、０から動的コンテンツ処理装置５に特有の機能限界値（ＣＰＵ１１、不揮発性ストレージ１７等によって定まる値）の範囲内で可変とすることができる。例えば、動的コンテンツ処理装置５内のＣＰＵ１１、不揮発性ストレージ１７が未使用であるときに機能限界値が０％、最大使用時に機能限界値が１００％であるとする。この場合には、例えば、負荷下限閾値を２０％、負荷上限閾値を８０％に設定してもよい。ただし、これらの機能限界値、閾値は任意に変更することができる。
【００８１】
また、図８Ａ〜図８Ｃ、図９に示したグラフ等は、キャッシュサーバ装置４が備える表示部１５に表示させてもよいし、キャッシュサーバ装置４にリモートアクセスした端末２が備える表示部１５に表示させてもよい。また、動的コンテンツ処理装置５の負荷を、動的コンテンツ処理装置５が備える表示部１５に表示させてもよい。
【００８２】
以上説明した一実施の形態例に係るキャッシュサーバシステム１によれば、キャッシュサーバ装置４は、動的コンテンツ処理装置５の負荷を監視し、動的コンテンツ処理装置５の負荷に応じて、自動的にキャッシュ有効時間を調整することができる。そして、動的コンテンツ処理装置５の負荷が負荷上限閾値を超えた場合にキャッシュ有効時間を長くして動的コンテンツ処理装置５の負荷を抑える。また、動的コンテンツ処理装置５の負荷が負荷下限閾値に満たない場合にキャッシュ有効時間を短くして最新の動的コンテンツをキャッシュ４２ｂに記録する。このため、動的コンテンツ処理装置５に過負荷を掛けずに、最新の動的コンテンツがキャッシュ４２ｂに反映されるまでのタイムラグを小さくすることができる。
【００８３】
また、キャッシュ更新判断部４１ｂは、端末２から取得要求された動的コンテンツがキャッシュ有効時間を超えてキャッシュ４２ｂに存在するときに、キャッシュ更新部４３ａを呼び出す。そして、キャッシュ更新部４３ａは、動的コンテンツ処理装置５から取得した最新の動的コンテンツをキャッシュ４２ｂに書き込む。これにより、端末２に最新の動的コンテンツを提供することができる。
【００８４】
また、キャッシュ有効時間設定部４３ｂは、動的コンテンツ処理装置５の負荷に応じてキャッシュ有効時間を可変としている。これにより、少数構成としたキャッシュサーバ装置４を用いてキャッシュサーバシステム１を構築した場合であっても、動的コンテンツ処理装置５に過負荷を掛けない。
【００８５】
＜２．変形例＞
なお、上述した実施の形態例に係るキャッシュサーバシステム１に示したキャッシュサーバ装置４と動的コンテンツ処理装置５を、それぞれ複数台用意してキャッシュサーバシステム１を構成してもよい。このような構成とした場合、キャッシュサーバ装置４と動的コンテンツ処理装置５の間に、例えばロードバランサーを新たに設け、複数台の動的コンテンツ処理装置５に対する端末２からの接続要求を分散してもよい。これにより、多数の端末２が動的コンテンツの取得要求を行った場合であっても、複数のキャッシュサーバ装置４が独立して動的コンテンツを提供することで、キャッシュサーバ装置４と動的コンテンツ処理装置５の負荷を抑えることができる。
【００８６】
また、キャッシュサーバシステム１で取り扱う動的コンテンツの一例として、ライブ映像や映画等の大容量のデータを用いてもよい。これにより、１ファイルの容量が大きなデータであっても、動的コンテンツ処理装置５の負荷を抑えて、キャッシュサーバ装置４が端末２に動的コンテンツを提供することができる。
【００８７】
また、動的コンテンツ処理装置負荷情報処理部５２、キャッシュ有効時間設定部４３ｂが起動する時間をさらに短くすることもできる。この場合、動的コンテンツ処理装置５の負荷情報がほぼリアルタイムで動的コンテンツ処理装置負荷情報４２ｄに反映されるため、より適切なキャッシュ有効時間が設定されるようになる。
【００８８】
また、キャッシュ更新部４３ａは、キャッシュ有効時間内であって、予め定めた一定時間毎に生成された動的コンテンツを動的コンテンツ処理装置５から取得して自動的にキャッシュ４２ｂに書き込むようにしてもよい。このような処理により、受付部４１ａは、端末２からの取得要求の頻度が低い動的コンテンツであっても、端末２が取得要求を行うと直ちにキャッシュ４２ｂから読み出した動的コンテンツを端末２に提供することができる。
【００８９】
また、動的コンテンツ生成部５１は、生成した動的コンテンツを一旦動的コンテンツ用データベース６に書き込んだ後、キャッシュ更新部４３ａに渡すことで、キャッシュ４２ｂと動的コンテンツ用データベース６に記録された動的コンテンツの同期を取ってもよい。これにより、キャッシュ４２ｂに異常が生じて動的コンテンツが消失した場合であっても、速やかに動的コンテンツ用データベース６から消失した動的コンテンツと同じ動的コンテンツを読み出してキャッシュ４２ｂに反映することができる。
【００９０】
また、キャッシュ４２ｂの記録容量を確保するため、長時間にわたって端末２から取得要求がされなかった動的コンテンツを自動的に削除してもよい。
【００９１】
なお、本発明は上述した実施の形態例に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上記した実施の形態例は本発明を分かりやすく説明するために装置及びシステムの構成を詳細且つ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることは可能であり、更にはある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００９２】
１…キャッシュサーバシステム、２…端末、３…ネットワーク、４…キャッシュサーバ装置、５…動的コンテンツ処理装置、６…動的コンテンツ用データベース
【図１】
2014225109.tif 000003
【図２】
2014225109.tif 000004
【図３】
2014225109.tif 000005
【図４】
2014225109.tif 000006
【図５】
2014225109.tif 000007
【図６】
2014225109.tif 000008
【図７】
2014225109.tif 000009
【図８】
2014225109.tif 000010
【図９】
2014225109.tif 000011