以下、本発明の実施の形態について説明する。
(発明の第1の実施の形態)
図1は本発明の第1の実施形態に係る情報中継装置を適用したプロキシサーバを含むネットワークシステムの構成例を示すブロック図である。
このネットワークシステムは、公衆回線121を介して多数のサーバノード114やクライアントノード101が接続されてなるインターネットである。また、クライアントノード101はプロキシサーバノード103を介して公衆回線121に接続され、サーバノード114に対するコンテンツ要求をプロキシサーバ103に行うようになっている。このプロキシサーバノード103に本実施形態の情報中継装置122が組み込まれている。
本実施形態では、各ノード101,103,114が接続されている場合について説明するが、ネットワークが介在することは発明の必須要件ではなく、例えばクライアントノード101と情報中継装置が同一のコンピュータ内のソフトウェアプロセスとして存在することも可能である。
また、図1では各ノード101,103,114が1つしか記載されていないが、クライアントノード101及びサーバノード114は同一の構成を持つ複数の装置が存在していてもよい。さらに、各ノード101,103,114は、通信機能を有する計算機システムからなり、そのCPUやメモリ等のハードウエア資源、並びに制御プログラム等のソフトウエア資源から図1に示す種々の機能実現手段を構成する。また、図1においては機能実現に必要な各種のデータが示されているが、これらは図示しない各計算機内のメモリやハードディスク等の記憶手段(図示せず)に記憶されるものである。
以下に、上記各要素の構成について説明する。
クライアントノード101には、WWWブラウザ等の情報表示機能を有するコンテンツ表示部102が設けられる。コンテンツ表示部102は、クライアントからサーバに向けてのコンテンツ取得リクエスト117を出力するとともに、サーバから送られてきたコンテンツを表示する。
次に、サーバノード114は、WWWサーバ等の情報発信機能を有するコンテンツ送信部115及びコンテンツデータ116を備えている。
コンテンツ送信部115は、クライアントもしくはプロキシサーバ103からのリクエスト117もしくは118を受けて、対応するコンテンツを送信する。
コンテンツデータ116は、クライアントもしくは情報中継装置からのリクエスト117もしくは118を受けて、コンテンツ送信部115から送信されるコンテンツの集合であり、図示しない記憶手段に格納されている。また、個別のコンテンツを識別するID(WWWの場合はURL)とコンテンツ内容実体との組で1つのコンテンツが表現される。以下の説明では、IDがURLである場合について説明する。
図2はURLと送信元のIDの一例を示す図である。
同図に示す情報は、クライアントノード101が取得したいコンテンツを指定するリクエストデータ117や118に含まれる識別情報の形態例である。
次にプロキシサーバノード103は、クライアントノード101の代理としてインターネットとの通信等を行うサーバであって、本実施形態では、この中に情報中継装置122が設けられている。
情報中継装置122は、入力情報統計データ105,レプリケーション戦略知識107,レプリカコンテンツURL109,URL別レプリケーション間隔108及びレプリカコンテンツデータ110の各データを保持する。また、これらの各データ及びリクエストデータ117に基づき、所定の処理を実行する入力解析部104,レプリケーション戦略決定部106,レプリカ利用判定部112,リクエスト/コンテンツ転送部113及びレプリカ更新部111を備えている。
ここでまず、入力解析部104は、クライアントから送られたリクエスト117を解析し、入力情報統計データ105を作成する。また、リクエストの全情報をレプリカ利用判定部112に送る。
入力情報統計データ105は、図示しない記憶手段に過去のリクエストの解析情報等が保存されてなるものである。例えば図3(a)の項目に付いて、図4に示す形態でリクエストの統計情報を保持する。
図3は入力情報統計データ及びレプリケーション戦略決定部で使用されるデータの内容例を示す図である。
図4は入力情報統計データの保存形態の一例を示す図である。
なお、図3(a)に示す各項目のうち、URL(1)、最新リクエスト発行時刻(2)、総リクエスト回数(3)、リクエスト発生頻度(4)については、入力解析部104が受信したリクエスト117に基づき、解析あるいは計算されて更新されるものである。また、レプリカ使用回数(5)については、後述するレプリカ利用判定部112によってレプリカが使用されたときにインクリメントされる。
レプリケーション戦略決定部106は、レプリケーション戦略知識107に基づいて入力情報統計データ105を利用し、どのコンテンツをレプリケーションの対象にし、どの程度の間隔でレプリカを最新状態に更新するか等を決定し、その結果をURL別レプリケーション間隔108に出力する。ここで、レプリケーション戦略知識107は、レプリケーション戦略決定部106で利用する知識データであり、例えば図5に示す形態で知識を保持する。
図5はレプリケーション戦略知識の内容例を示す図である。
同図に示すレプリケーション戦略知識107の各例に対応して、レプリケーション戦略決定部106がどのようなレプリケーション間隔決定を行うかを説明すると以下の通りである。
レプリケーション戦略決定部106は、各URLに対応するレプリカが図5に示す処理#1〜#4のうち、何れかの処理条件を満たすか否かを調べ、条件を満たす場合には、その処理に規定されたレプリケーション間隔をURL別レプリケーション間隔108に出力する。また、レプリケーション登録削除の場合には、レプリカコンテンツURL109から対応するURLを削除する。
また、レプリケーション戦略決定部106は、レプリケーション戦略決定処理に先立ち、図3(b)に示すレプリカ使用率(6)を計算し、当該戦略決定処理の間、これを保持する。
さて、図5における処理#1は、最新リクエスト発行時刻(2)が現在時刻から3時間より前であって、かつ、レプリカ使用率(6)が0.5より大きい場合には、そのURLについてのレプリケーション間隔を5時間とするものである。この条件で比較的長時間である5時間と間隔設定するのは、リクエスト頻度の割には情報中継装置122が保持するレプリカは高確率でそのまま使用されることから、サーバノード114における対応コンテンツの変更頻度が相対的に低いと予想できるからである。別のいい方をすれば、この場合はコンテンツの変更頻度に比べてリクエスト頻度が相対的に高いということになる。
図5における処理#2は、最新リクエスト発行時刻(2)が現在時刻から3時間より前であって、かつ、レプリカ使用率(6)が0.5以下の場合には、そのURLについてのレプリケーション間隔を2時間とするものである。この条件で比較的短い時間である2時間と間隔設定するのは、リクエスト頻度の割には情報中継装置122が保持するレプリカの使用率は低く、サーバノード114における対応コンテンツの変更頻度が相対的に高いと予想できるからである。別のいい方をすれば、この場合はコンテンツの変更頻度に比べてリクエスト頻度が相対的に低いということになる。
図5における処理#3は、単位時間あたりのリクエスト発生頻度(4)が5より大きく、かつ、レプリカ使用率(6)が0.8より小さい場合には、そのURLについてのレプリケーション間隔を頻度計測単位時間の1/3とするものである。これは、レプリケーション間隔を単なる時間で設定するのではなくリクエスト発生頻度やレプリカ使用率といった概念に対応させて規定するものである。また、この処理#3の場合は、リクエスト要求が高くかつサーバ側におけるコンテンツ変更頻度が高い場合に対応している。
図5における処理#4は、現在時刻から3日以上リクエストがない場合には、レプリケーションを終了させるものである。この場合は、レプリケーション登録削除の場合であり、レプリケーション戦略決定部106はレプリカコンテンツURL109,URL別レプリケーション間隔108及びレプリカコンテンツデータ110からそのURLについての関連情報を削除する。
なお、図5に示すレプリケーション戦略知識107は、種々考えられる戦略知識の例示であって、その他の戦略知識を適用させることもできる。例えば処理#4にAND条件で”固定でないコンテンツであるか否か”という条件を加え、これらの両条件が成立したときのみ”レプリケーション終了”とさせてもよい。この場合には、3日リクエストされずかつクライアントが固定的にリクエストするコンテンツでない場合にのみ、レプリケーションが登録削除されることになる。
URL別レプリケーション間隔108は、レプリケーション戦略決定部106で決定された,URL毎のレプリケーション間隔のデータが保持されたものである。例えば図6に示す形態でURL毎のレプリケーション間隔の値を保持する。
図6はURL別レプリケーション間隔の内容例を示す図である。
レプリカコンテンツURL109は、レプリケーション戦略決定部106で決定された,レプリケーション対象となるコンテンツのURLリストが保持されているものである。例えば図7に示すような形態でレプリケーション対象コンテンツのURLを保持する。
図7はレプリカコンテンツURLの一例を示す図である。
レプリカコンテンツデータ110は、レプリカコンテンツURL109にリストアップされているURLに対応するコンテンツのレプリカ実体が保持されたものである。例えば図8に示す形態でレプリカコンテンツ実体を保持する。
図8はレプリカコンテンツデータの一例を示す図である。
レプリカ更新部111は、URL別レプリケーション間隔108に記述されている間隔で各URLについてのレプリカコンテンツデータ110を更新するように、リクエスト/コンテンツ転送部113を介してサーバノードにコンテンツを要求する。
レプリカ利用判定部112は、リクエストデータ117に含まれる時刻と、レプリカコンテンツデータ110中のリクエストと対応するコンテンツ実体の有効期限もしくは更新時刻とを比較し、クライアントノード101に対してレプリカを返すかサーバノード114から新たに取得してデータを返すかを判定する。また、レプリカをクライアントノード101に返すように判断した場合には、対応するURLについて、入力情報統計データ105におけるレプリカ使用回数をインクリメントする。
リクエスト/コンテンツ転送部113は、レプリカ利用判定部112の判定結果に基づいて、サーバノード114にコンテンツ取得リクエスト118を送出し、サーバノード114から返されるコンテンツデータをクライアントノード101に返す。レプリカ利用判定部112にてレプリカを返すように判断されたときには、クライアントノード101にレプリカを返す。
また、リクエスト/コンテンツ転送部113は、サーバノード114から取得したコンテンツデータをレプリカコンテンツデータ110及びレプリカコンテンツURL109に格納する。したがって、リクエスト/コンテンツ転送部113は、レプリカ更新のみならず、新規にリクエストされたコンテンツの格納及びURL保持も行う。
なお、請求項におけるレプリケーション手段は、例えばレプリカ更新部111,URL別レプリケーション間隔108,レプリカコンテンツデータ110,レプリカコンテンツURL109及びリクエスト/コンテンツ転送部113等が対応し、複製返却手段は、レプリカ利用判定部112及びリクエスト/コンテンツ転送部113等が対応する。
次に、以上のように構成された本実施形態における情報中継装置の動作について、図9,図10及び図11を用いて説明する。
図9は本実施形態におけるリクエスト中継処理を説明する流れ図である。
図10は本実施形態におけるレプリケーション戦略決定処理を説明する流れ図である。
図11は本実施形態におけるレプリカ更新処理を説明する流れ図である。
これら各処理のうち、リクエスト中継処理及びレプリケーション戦略決定処理と、レプリカ更新処理とは独立に進む非同期な動作となる。
まずリクエスト中継処理について説明する。
このリクエスト中継処理は、図9に示すように、クライアントノード101からリクエストデータ117が発行された場合に主に情報中継装置122にて行われる処理である。
まず、コンテンツ表示部102に対して利用者がURLを指定することにより、コンテンツ表示要求がクライアントノード101から出力される(S1)。
利用者から出された上記表示要求は、リクエストデータ117の形態でコンテンツ表示部102から情報中継装置122の入力解析部104へ送信される(S2)。
リクエストデータ117の内容は入力解析部104により解析され、リクエストを受け取った時刻の情報を元に、入力情報統計データ105の内容(1)〜(4)が更新される(S3)。入力情報統計データ更新後は(S3)、後述するレプリケーション戦略決定処理へ進む。
一方、ステップS2の処理を受けて、入力解析部104を介して受信した要求容に基づき、レプリカコンテンツデータ110に格納されている当該URLのレプリカコンテンツの有効期限がレプリカ利用判定部112によって算出される(S4)。
ここで、有効期限の算出方法は種々の方法が利用可能である。例えばサーバノード114からコンテンツが送信される際、有効期限時刻が添付されるか、最終変更時刻が添付されるため、その値から算出する方法が採用される。
次に、リクエストに対応するレプリカコンテンツが有効期限内であった場合(S5)、対応するレプリカコンテンツがレプリカコンテンツデータ113より読み出される。この読出コンテンツは、リクエスト/コンテンツ転送部113からクライアントノード101に返される(S6)。
さらに、レプリカ利用判定部112によって入力情報統計データ106におけるレプリカ使用回数(5)が”1”増やされ(S7)、レプリケーション戦略決定処理となる。
また、リクエストに対応するレプリカコンテンツが有効期限を過ぎていた場合、又はレプリケーションされていないコンテンツに対するリクエストである場合(S5)、リクエストデータ117に含まれるサーバノード名に基づいて、リクエスト/コンテンツ転送部113からサーバノード114にリクエストデータ118が転送される。サーバノード114からはリクエストデータ118で指定されたコンテンツが情報中継装置103に返される(S8)。
サーバノード114から返されたコンテンツは、情報中継装置122のリクエスト/コンテンツ転送部113からクライアントノード101に転送されるとともに(S9)、リクエスト/コンテンツ転送部113の処理により、レプリカコンテンツデータ110の内容が同コンテンツで更新される(S10)。なお、レプリケーションされていないコンテンツの場合には、新たなレプリケーション対象としてデータ(コンテンツ、URL)保持され、以降レプリケーションされることになる。
なお、レプリカコンテンツデータ110の内容が更新された後は(S10)、レプリケーション戦略決定へと処理が進む。
次に、レプリケーション戦略決定処理の流れについて説明する。レプリケーション戦略決定処理はリクエスト中継処理の図9;S3若しくはS7,S10の処理を受けて開始する。
まず、図9のステップS3若しくはS7,S10の後に、入力情報統計データ105及びレプリケーション戦略知識107をもとに、レプリケーション戦略決定部106によってURL別レプリケーション間隔108が生成される(t1)。
具体的には、例えば図4のような入力情報統計データと図5のようなレプリケーション戦略知識の場合には以下のようにレプリケーション間隔が決定される。
まず、リクエストデータ117で指定されるURLの入力情報統計データが取り出される。例えばリクエストデータでhttp://www/foo.htmlが指定された場合、図4の1行目の情報が取り出される。
次に、レプリケーション戦略決定部106によってレプリカ使用率(6)が計算されるとともに、取り出した入力情報統計データにマッチする条件を持つ知識がレプリケーション戦略知識107から検索される。例えば現在時刻が1998/09/07/10:00であった場合、図4の1行目のデータについて検索すると、図5の1行目の知識がマッチする。
次に、見つかった知識に記されているレプリケーション間隔を当該URLのレプリケーション間隔とし、URL別レプリケーション間隔108がレプリケーション戦略決定部106によって更新される。
以上が新たなレプリケーション間隔を設定する場合である。なお、他の処理に該当する場合については上記したとおりである。
これに対して、見つかった知識に記されているレプリケーション間隔がレプリケーションの終了を示している場合には、レプリケーション戦略決定部106によって、当該URL及び対応するレプリカコンテンツデータがURL別レプリケーション間隔108,レプリカコンテンツURL109,レプリカコンテンツデータ110の各データから削除される(t2)。
また、レプリケーションを終了させる他の方法として、レプリカコンテンツデータ110が定められた大きさよりも大きくなった場合には、コンテンツの優先度情報(図示せず)を参照し、必要性の低いコンテンツをレプリケーション対象から除外するようにしてもよい。この優先度情報としては、例えば最新リクエスト発行時刻が用いられる。また、使用者が別途優先度を設定するようにしてもよい。さらに、この場合には、優先度の低いレプリカを削除する,プロキシサーバノード103のレプリカ削除機能を利用し、レプリカコンテンツ等を削除するようにしても良い。
なお、本実施形態ではルールベースによるレプリケーション間隔の決定方法を説明したが、入力情報統計データとレプリケーション戦略知識の形態はこれに限るものではなく、入力情報統計データの多変量解析によるレプリケーション間隔値の算出等も考えられる。
次に、レプリカ更新処理の流れについて説明する。レプリカ更新処理はリクエスト中継処理及びレプリケーション戦略決定処理とは非同期に動作するものである。
まず、レプリカコンテンツURL109に格納されている最終レプリカ作成時刻と、URL別レプリケーション間隔108に格納されているレプリケーション間隔とがレプリカ更新部111により比較される。この結果、現在時刻が最終レプリカ作成時刻からレプリケーション間隔の時間以上経過しているURLがあれば、そのコンテンツをサーバノード114からダウンロードするように、レプリカ更新部111からリクエスト/コンテンツ転送部113に要求される。
リクエスト/コンテンツ転送部113によってコンテンツがダウンロードされ、レプリカコンテンツデータ110がダウンロードデータで置き換えられ、レプリカが更新される(u1)。
レプリカ更新後、レプリカ更新部111は一定時間停止し、その後、ステップu1の処理が繰り返される(u2)。
上述したように、本発明の実施の形態に係る情報中継装置は、レプリカ更新部111を設け、リクエスト中継処理と非同期にレプリケーション処理を実行して、予めレプリカコンテンツを更新しておくようにしたので、情報中継装置内のレプリカコンテンツデータが最新のものに保たれている確率を高くすることができ、クライアントリクエストに対するヒット率を向上させることができる。
また、レプリケーション戦略決定部106を設け、リクエストの頻度に応じてレプリカ対象コンテンツを増減させるようにしているので、限られた容量のレプリカ記憶領域に対し、クライアントリクエスト頻度の高いコンテンツがレプリケーションされるようになり、クライアントからの不特定なコンテンツ取得要求に対するヒット率を向上させることができる。
また、今までのPushプラットフォーム(Castanet等)では、あらかじめ設定したコンテンツだけがPushの対象となり、クライアント側の要求の変化に柔軟に対応できないが、本発明では、レプリカコンテンツデータ110に入っていなかったコンテンツは、以降自動的にPush対象になるため、柔軟なキャッシング処理(レプリケーション)を実現させることができる。
さらに、今までのPushプラットフォームでは、キャッシュエリアが足りなくならないように、必要なくなったコンテンツを全て手作業でPush対象から外す必要があった。これに対して、本発明では、コンテンツ毎に設定される優先度に基づいて自動的にPush対象から外すようにしたので、キャッシュエリア(レプリカコンテンツデータ110)が溢れることがない。
(発明の第2の実施の形態)
第1の実施形態では、レプリカ利用判定部112にてレプリカが有効期限を過ぎていると判定された場合には、リクエスト117を無条件にサーバノード114へリクエスト118として転送していた。
これに対し、本実施形態では、レプリカコンテンツがサーバノード上のオリジナルコンテンツと同一であるかどうかを確認することにより、サーバノード114からの無駄なコンテンツのダウンロードを無くすようにしたものである。
本実施形態の情報中継装置は、リクエスト/コンテンツ転送部113の処理が修正される他、第1の実施形態と同様に構成されている。
リクエスト/コンテンツ転送部113は、第1の実施形態と同様に構成される他、サーバノード114からコンテンツをダウンロードする際、まず、コンテンツ属性情報のみを取得し、当該コンテンツ属性情報に基づきレプリカコンテンツが最新でない場合にのみコンテンツの全体を取得するようになっている。
このためのリクエストデータ118の内容として、図12,図13に示すように2種類が用意されている。
図12は本発明の第2の実施形態にて使用されるコンテンツ属性情報だけを取得するリクエスト例を示す図である。
同図のリクエストでは、リクエストのタイプが「属性情報のみ」であって、そのURLが「http://www.aaa.bbb/foo.html」であることを示している。
ここで、コンテンツの属性情報としては、少なくとも「コンテンツの最終変更時刻(新規コンテンツの場合は作成時刻)」が含まれている。
図13はコンテンツ全体を取得するリクエスト例を示す図である。
同図のリクエストでは、リクエストのタイプが「コンテンツ全体」であって、そのURLが「http://www.aaa.bbb/foo.html」であることを示している。
また、リクエスト/コンテンツ転送部113は、入力情報統計データ105にオリジナルコンテンツの変更頻度情報を追加する。この情報は例えば以下の式によって求められる。
変更頻度情報=コンテンツの全体取得リクエスト回数÷コンテンツの属性取得リクエスト回数
レプリケーション戦略知識107は、オリジナルコンテンツの変更頻度を条件に含むことができる。例えばオリジナルコンテンツの変更頻度が所定値範囲の条件であれば、レプリケーション間隔をある値に設定する等の処理である。
次に、以上のように構成された本実施形態における情報中継装置の動作について、図14を用いて説明する。
図14は本実施形態におけるリクエスト中継処理を説明する流れ図である。
本実施形態の動作においては第1の実施形態と比較してリクエスト中継処理が変更される。
まず、レプリカコンテンツが有効期限内である場合には、第1の実施形態と同様な処理が実行される(v1〜v7)。すなわち図9に示すステップS1〜S7と、ステップv1〜v7とは同様であるため、その説明は省略する。
次に、レプリカが有効期限を過ぎていると判定された場合(v5)、リクエス/コンテンツ転送部118によりサーバノード114にコンテンツ属性取得リクエスト118が送信され、当該コンテンツの属性情報が取得される(v8)。
取得した属性情報に含まれる最終変更時刻と、対応するレプリカの最終レプリカ作成時刻とがリクエスト/コンテンツ転送部113にて比較され、オリジナルコンテンツがレプリカより新しいかが判定される(v9)。
オリジナルコンテンツがレプリカより新しいと判定された場合(v9)、サーバからコンテンツ全体が取得され(v10)、レプリカコンテンツデータ110が更新され(v11)、さらに、当該URLに関する入力情報統計データが変更される。
また、コンテンツ全体が取得された後(v10)、当該コンテンツがクライアントノードに返される(v12)。
一方、ステップv9において、最終レプリカ作成時刻がオリジナルコンテンツの最終変更時刻より遅い場合、レプリカは最新のオリジナルコンテンツと同一であると判定され、レプリカコンテンツがクライアントノード101へ返される(v13)。その後、レプリカ使用回数がインクリメントされる(v14)。
上述したように、本発明の実施の形態に係る情報中継装置は、レプリカコンテンツがサーバノード上のオリジナルコンテンツと同一であるかどうかを確認するようにしたので、サーバノード114からの無駄なコンテンツのダウンロードを無くすことができ、有効期限を過ぎても変化が無いコンテンツに対するレスポンス時間の短縮が期待できる。
また、オリジナルコンテンツの更新頻度に基づきレプリケーション間隔を調整することが可能であるので、有効期限が明示的に設定されていないコンテンツのレプリカ更新間隔を確率的な意味で適切に設定することができ、リクエスト中継処理中にコンテンツ全体を取得しなければならない状況が起きにくくなる。
なお、本実施形態では属性情報の事前要求をクライアントノード101からリクエスト117があった場合についてのみ説明したが、この属性情報の事前要求は、リクエスト中継処理のみならず、レプリカ更新処理の場合に適用しても良い。この場合、レプリカ更新部111がレプリカ更新すべきと判断したときに、属性情報の事前要求が行われ、コンテンツが変更しているときのみダウンロードされることになる。
(発明の第3の実施の形態)
第1,第2の実施形態は、いわゆるインテリジェントプルと呼ばれる技術を応用したものであるが、本実施形態ではプッシュ技術を利用する。このプッシュ技術利用と関連し、リクエスト/コンテンツ転送部とコンテンツ送信部の間の通信路にマルチキャスト技術が利用されており、これによりサーバノードから複数の情報中継装置に対し能動的にデータを送信することができるようになっている。
図15は本発明の第3の実施形態に係る情報中継装置を適用したプロキシサーバを含むネットワークシステムの構成例を示すブロック図である。なお、同図に示す情報中継装置203はプロキシサーバに含まれるものであるが、両者の関係は第1の実施形態の場合と同様であるので、ここではプロキシサーバの表示を省略している。
本実施形態に用いられるネットワーク自体や、クライアントノード201、プロキシサーバノード及びサーバノード211間の関係、さらにはこれら各部の基本的な機能は、第1の実施形態の各ノード101,103及び114の場合と同様であるのでここでは詳細説明を省略する。
まず、クライアントノード201はクライアントノード101と同一の構成である。また、クライアントノードから送られるリクエストデータ208もリクエストデータ117と同一である。
情報中継装置203は、レプリケーション対象URL206,レプリカコンテンツデータ207,レプリケーション戦略知識221及び入力情報統計データ222の各データを図示しない記憶手段に保持する。また、これらの各データ及びリクエストデータ208に基づき、所定の処理を実行するレプリカ利用判定部204,リクエスト/コンテンツ転送部205及び登録削除判断部223を備えている。
ここでまず、レプリカ利用判定部204は、リクエストデータ208に含まれるURLのコンテンツがレプリケーション対象URL206に存在すればレプリカコンテンツデータ207から当該コンテンツをクライアントノードに返し、存在しなければレプリケーション対象URL206に当該URLを追加し、サーバノード211に新規レプリケーション対象コンテンツとして登録するリクエスト209を送る。
また、レプリカ利用判定部204は、リクエストデータ208に基づき、そのURL別に、最新リクエスト発行時刻を入力情報統計データ222として保持させる。
リクエスト/コンテンツ転送部205は、サーバノード211から送られて来たコンテンツデータ210のうち、レプリケーション対象URL206に登録されているURLのコンテンツのみをレプリカコンテンツデータ207に記録する。
レプリケーション対象URL206は、情報中継装置203がレプリケーション対象とするコンテンツのURLを記録するデータエリアである。例えば図16の形態のデータ構造を持つ。
図16は本実施形態におけるレプリケーション対象URLのデータ構造例を示す図である。
レプリカコンテンツデータ207は、レプリカコンテンツを記録するデータエリアである。例えば図17の形態のデータ構造を持つ。
図17は本実施形態におけるレプリカコンテンツデータのデータ構造例を示す図である。
レプリケーション戦略知識221には、レプリカコンテンツデータ207内のレプリカコンテンツを削除する条件を示すデータである。この条件は、「最新のリクエスト発生が現在時刻の3日前」や「最新のリクエスト発生が現在時刻の3日前 AND 当該URLが固定コンテンツでない」等である。
登録削除判断部223は、入力情報統計データ222の最新リクエスト発行時刻及びレプリケーション戦略知識221の登録削除条件から登録削除すべきURLを判断する。同判断部223は、あるレプリカコンテンツを登録削除すべきと判断したときには、レプリケーション対象URL206及びレプリカコンテンツデータ207から対応するデータを削除するとともに、サーバノード211に登録削除データを送信する。
一方、サーバノード211は、コンテンツデータ214,レプリケーション対象URL216及びレプリケーション配送先装置名217の各データを図示しない記憶手段に保持するとともに、これらのデータに関連して一定の処理を行うコンテンツ送信部212,更新検出部213及びレプリケーション対象URL登録部215を備えている。
レプリケーション対象URL登録部215は、リクエストデータ209に含まれるURLをレプリケーション対象URL216に登録するとともに、リクエストデータ209の送信元の情報中継装置名をレプリケーション配送先装置名217に登録する。
また、レプリケーション対象URL登録部215は、情報中継装置203の登録削除判断部223から削除要求データ224を受けると、当該データ224に含まれるURLをレプリケーション対象URL216から削除し、対応するデータをレプリケーション配送先装置名217から削除する。
レプリケーション対象URL216は、サーバノード211から情報中継装置203にレプリケーションのために送信するコンテンツのURLリストである。複数の情報中継装置203からリクエストデータ209を受けている場合、各情報中継装置を区別せず記録する。例えば情報中継装置のレプリケーション対象URL206と同様な図16の形態を持つ。
コンテンツデータ214は、サーバノード211がオリジナルデータを持つコンテンツデータの集合である。
更新検出部213は、コンテンツデータ214の変化を検知し、それがレプリケーション対象URL216に含まれていれば、URLとコンテンツデータ実体をコンテンツ送信部212へ送る。
更新検出部213におけるコンテンツデータの変化を検知する方法としては、例えば以下のような何種類かの方法が考えられる。
A.一定時間毎に全てのコンテンツの最終更新時刻を確認し、前回の確認時刻よりも後に更新が起きたコンテンツを見つける。
B.コンテンツを変更する時に使用するツールから、変更後のコンテンツをコンテンツデータ214に記録する際に更新検出部213に知らせる。
C.OSやハードウェアで、記憶装置上でデータの変化があったことを検出する機能が備わっている場合、データ変化を検出した時点で更新検出部213に知らせる。
コンテンツ送信部212は、更新検出部213から送られたURLとコンテンツの組を、レプリケーション配送先装置名217に登録されている全ての情報中継装置203に向けて送信する。
次に、以上のように構成された本実施形態における情報中継装置の動作について、図18、図19、図20及び図21を用いて説明する。
図18は本実施形態におけるリクエスト中継処理を説明する流れ図である。
図19は本実施形態におけるレプリカ対象登録処理を説明する流れ図である。
図20は本実施形態におけるレプリカ配信処理を説明する流れ図である。
図21は本実施形態における登録削除処理を説明する流れ図である。
ここで、図18及び図19の処理は一連の流れとして処理が進むが、図20及び図21は独立した処理の流れとなる。
まず、図18、図19の動作の流れを説明する。
ステップw1は図9のステップS1と同一の処理になる。
次に、クライアントノード201からのリクエストデータ208は、レプリカ利用判定部204にて受信され(w2)、リクエストに含まれるURLがレプリケーション対象URL206に登録済みかが調べられる(w3)。
既に登録済みであった場合には(w3)、レプリカ利用判定部204によってレプリカコンテンツデータ207のレプリカがクライアントノード201に返され(w4)、終了する。
一方、登録済みでなかった場合(w3)、レプリケーション対象URL206に、リクエストに含まれるURLが追加される(w5)。さらに、サーバノード211に対し、レプリケーション対象URL登録及びコンテンツ取得のリクエスト209が送信される(w6)。
サーバノード211のコンテンツ送信部212によって、リクエスト209に含まれるURLのコンテンツが情報中継装置203に返され、さらに情報中継装置203によりクライアントノード201に転送される。(w7)
このリクエスト中継処理に連動してレプリカ対象登録処理が図19に示すようにして実行される。
まず、リクエスト209に含まれるURLはレプリケーション対象URL登録部215に引き渡され、このURLがサーバノード211のレプリケーション対象URLに追加される(x1)。さらに、リクエスト209の送信元装置の識別名がレプリケーション対象URL登録部215によりレプリケーション配信先装置名217に追加される(x2)。
次にレプリカ配信処理について説明する。
まず、コンテンツデータ214内のコンテンツの内容変更もしくは新規作成が更新検出部213で検知される(y1)。
変化を検知したコンテンツがレプリケーション対象URL216に含まれるコンテンツか否か更新検出部213により判断される(y2)。
ここで、レプリケーション対象であった場合には、コンテンツ送信部212を通じてレプリケーション配送先装置名217に登録されている装置にコンテンツ210が送信される(y3)。この送信の際には、マルチキャスト技術が利用され、これによりサーバノードから複数の情報中継装置203に対し能動的にデータ送信が行われる。図15に示すのはこの複数の情報中継装置203のうちの一つである。
情報中継装置203においては、サーバノード211から送られて来たコンテンツ210のURLが、レプリケーション対象URL206に含まれるかどうかがリクエスト/コンテンツ転送部205によって判定される(y4)。レプリケーション対象URLに含まれる場合には、レプリカコンテンツデータ207はコンテンツ210によって更新される(y5)。
このように、レプリカ対象登録処理によって、レプリカ対象がプッシュ技術を利用したサーバノード211に登録され、さらに、その登録URLについてレプリカ配信処理によって情報中継装置203に配布される。
ここで、サーバノード211に登録されるレプリケーション対象URLが増えすぎないようにするために、情報中継装置203によって登録削除処理が実行される。
図21に示す登録削除処理では、まず、登録削除判断部223によって登録削除判断が開始され、そのために、入力情報統計データ222の最新リクエスト発行時刻及びレプリケーション戦略知識221の登録削除条件が読み出される(z1)。
つづいて、最新リクエスト発行時刻に基づき、各URLについて、登録削除条件を満たしているか否かが判断される(z2)。
その結果、登録削除条件を満たすURLがあれば、そのURLに関連したレプリケーション対象URL206及びレプリカコンテンツデータ207が削除され(z3)、サーバノード211に対して削除要求データ224が出力される(z4)。
サーバノード211においては、削除要求データ224を受け取ったレプリケーション対象URL登録部215により、同データ224に含まれるURLについてのレプリケーション対象URL216及びレプリケーション配送先装置名217についての情報が削除される(z5)。
上述したように、本発明の実施の形態に係る情報中継装置は、サーバノード211におけるオリジナルコンテンツデータの変更と連動してレプリケーション処理が起きるようになっているので、情報中継装置中のレプリカコンテンツデータは常に最新状態に保たれ、クライアントノードからのリクエストに迅速に対応することができる。
すなわち今までのProxyサーバは一度取得したコンテンツはそのまま保持するだけなので、オリジナルが更新されたら、次回のブラウザからのアクセス時にもう一度サーバから転送し直さなければならなかった。しかし本発明では、常にProxyの持つコンテンツが最新であるため、ブラウザから見た平均レスポンス時間の向上を見込むことができる。
なお、本実施形態では、サーバノード211上でコンテンツデータ214の変更が起きた時点で変更されたコンテンツ自体を情報中継装置203に送信するようにしたが、本発明はこのような形態に限られるものではない。例えば第2の実施形態と組み合わせ、コンテンツデータ214の変更時にはコンテンツ自体でなく、その属性情報のみをリクエスト/コンテンツ転送部205に送信する。そして、同転送部205にてレプリカコンテンツが最新のものであるか否かを判断した上で、レプリカが最新でない場合にのみ、リクエスト/コンテンツ転送部205から同コンテンツのリクエスト118を発行し、レプリカを更新するようにしてもよい。
(発明の第4の実施の形態)
第1,第2及び第3の実施形態では、コンテンツのURL及び実体のみについてのレプリケーションについて説明しているが、本実施形態では、コンテンツ毎に設定されているアクセスコントロール情報をレプリカコンテンツと共に保存する場合を説明する。
本実施形態の情報中継装置は、アクセスコントロール判断部が設けられ、レプリカコンテンツデータ110,207にアクセスコントロール情報が保持されるようになっている他、第1〜第3の実施形態と同様に構成されている。
ここで、アクセスコントロール情報とは、「Aというユーザはこのコンテンツを見ることができる」といった内容の情報であり、これによりクライアントノードの利用者毎にアクセスできるコンテンツを制限することができる。
アクセスコントロール判断部は、このアクセスコントロール情報に基づいて、コンテンツアクセス制限を実行する。
このように構成された本実施形態の情報中継装置の動作としては、まず、クライアントからのリクエストデータにユーザ識別名が加わる。
情報中継装置内のレプリカコンテンツデータに登録されたアクセスコントロール情報と、クライアントユーザ識別名とがアクセスコントロール判断部により比較される。その結果、アクセスが許されたユーザにのみレプリカコンテンツが返される。
上述したように、本発明の実施の形態に係る情報中継装置は、コンテンツと共にアクセスコントロール情報を付加して配布するようにしたので、アクセスコントロールが必要なコンテンツに対しても、クライアントから見た時のレスポンスタイムを短縮することができる。
なお、同様な場合、第1〜第3の実施形態では、ユーザ毎のアクセスコントロール情報を得るためにはサーバノードに問い合わせる必要がある。
(発明の第5の実施の形態)
上記第1〜第4の実施形態は、情報中継装置をインターネットのプロキシサーバに適用する例で説明したが、本実施形態ではファイルサーバシステムに適用する場合を説明する。
図22は本発明の第5の実施形態に係る情報中継装置を適用するファイルサーバシステムの全体構成例を示す図である。
このシステムは、本社301に大規模ファイルサーバ302が設置され、これが第1〜第4の実施形態のサーバノード114,211に対応する。この大規模ファイルサーバ302は、比較的低速なLANを介して本社301内の各部門に設けられた小規模ファイルサーバ303,304に接続され、また公衆回線を介して各支社の小規模ファイルサーバ305,306に接続されている。
これらの小規模ファイルサーバ303〜306に情報中継装置122,203が設けられる。
各小規模ファイルサーバ303〜306は、比較的小規模の容量のファイルサーバであり、高速LANでその部門若しくは支社内のクライアントにファイル情報を提供できるようになっている。また、自己が有しない情報を要求された場合には、同情報を大規模ファイルサーバ302に請求する。この情報が第1〜第4実施形態のコンテンツに相当する。また、ファイル検索情報がURLに相当する。
また、大規模ファイルサーバ302は、全ての情報を格納するものであり、小規模ファイルサーバ303〜306からの要求に応じてデータを送信するようになっている。
このように構成されたファイルサーバシステムでは、クライアント〜小規模ファイル〜大規模ファイルサーバ間が、第1〜第4の実施形態におけるクライアントノード〜プロキシサーバノード〜サーバノード間と同様な関係となる。
したがって、その部門や支社においてある程度以上の頻度で使用される情報は、容量の少ない小規模データベースに格納され、使用しない情報は小規模データベースから排除されていくことになる。
上述したように、本発明の実施の形態に係る情報中継装置は、第1〜第4の実施形態と同様な構成をファイルサーバシステムに設けたので、元のファイルサーバに、セクション毎に設けられた小ファイルサーバが問合せに行くような場合でも、第1〜第4の実施形態と同様な効果が得られる。
また、本発明の適用範囲は、インターネットやファイルサーバシステムに限られるものでなく、実施形態に示した状況と類似する状況が生じる計算機・通信システムに対しては種々適用することが可能である。例えばFTP等にも適用可能である。
さらに、実施形態に説明した装置は、記憶媒体に格納したプログラムをコンピュータに読み込ませることで実現させることができる。
ここで本発明における記憶媒体としては、磁気ディスク、フロッピーディスク、ハードディスク、光ディスク(CD−ROM、CD−R、DVD等)、光磁気ディスク(MO等)、半導体メモリ等、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行してもよい。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何らの構成であってもよい。
なお、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
101…クライアントノード、103…プロキシサーバノード、104…入力解析部、105…入力情報統計データ、106…レプリケーション戦略決定部、107…レプリケーション戦略知識、108…URL別レプリケーション間隔、109…レプリカコンテンツURL、110…レプリカコンテンツデータ、111…レプリカ更新部、112…レプリカ利用判定部、113…リクエスト/コンテンツ転送部、114…サーバノード、115…コンテンツ送信部、116…コンテンツデータ、117,118…コンテンツ取得リクエスト、121…公衆回線、122…情報中継装置、201…クライアントノード、202…コンテンツ表示部、203…情報中継装置、204…レプリカ利用判定部、205…リクエスト/コンテンツ転送部、206…レプリケーション対象URL、207…レプリカコンテンツデータ、208…リクエストデータ、209…リクエストデータ、210…コンテンツデータ、211…サーバノード、212…コンテンツ送信部、213…更新検出部、214…コンテンツデータ、215…レプリケーション対象URL登録部、216…レプリケーション対象URL、217…レプリケーション配送先装置名、221…レプリケーション戦略知識、222…入力情報統計データ、223…登録削除判断部、301…本社、302…大規模ファイルサーバ、303,304,305,306…小規模ファイルサーバ