以下に、本願の開示する情報処理システム、プロキシ装置、プロキシ制御方法及びプロキシプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る情報処理システムの構成について説明する。図1は、実施例に係る情報処理システムの構成を示す図である。図1に示すように、情報処理システム5は、Proxy装置1及びLAN(Local Area Network)3でProxy装置1に接続された複数のクライアント端末2を有するサブシステムをn個有し、n個のサブシステムとLAN4で接続されたGW6を有する。
クライアント端末2は、LAN3、Proxy装置1、GW6及び外部ネットワーク7を介して外部のWebサーバ8にアクセスする端末装置である。Webサーバ8は、クライアント端末2にWeb情報の提供等を行う情報処理装置である。GW6は、LAN3を外部ネットワーク7に接続するための装置である。
Proxy装置1は、クライアント端末2の代理として外部のWebサーバ8にアクセスする装置である。Proxy装置1は、Webサーバ8から取得したWeb情報を記憶装置にキャッシュする。また、各Proxy装置1は、LAN4で接続された全てのProxy装置1についてキャッシュされたWeb情報の管理情報を保持する。
図2は、Proxy装置1の機能構成を示す図である。図2に示すように、Proxy装置1は、キャッシュ管理情報記憶部11と、Proxy装置一覧記憶部12と、統計情報記憶部13と、負荷情報記憶部14とを有する。また、Proxy装置1は、Web情報制御部15と、キュッシュ管理情報制御部16と、キャッシュ管理情報交換部17と、Proxy装置管理部18と、Web情報記憶部21と、Proxy装置情報定義記憶部22とを有する。
キャッシュ管理情報記憶部11は、Proxy装置1についてキャッシュされた1つのWeb情報に関する情報であるキャッシュ管理情報をキャッシュされたWeb情報毎に記憶する。図3Aは、キャッシュ管理情報記憶部11の一例を示す図である。キャッシュ管理情報記憶部11は、キャッシュ・アクセス情報、URL、タイムスタンプ、有効期限、データサイズ、最初のアクセスタイム、最後のアクセスタイム、アクセス数及びProxy装置情報フラグをキャッシュ管理情報として記憶する。
キャッシュ・アクセス情報は、自装置のWeb情報記憶部21にキャッシュされているWeb情報のアドレスの情報である。アドレスが0x00000000である場合には、Web情報は他のProxy装置1にある。URLは、Web情報のWeb上の位置を示すUniform Resource Locatorである。タイムスタンプは、URLで指定されるWeb情報の作成時刻又は更新時刻である。
有効期限は、Web情報に有効期限がある場合にその期限である。データサイズは、Web情報のサイズである。最初のアクセスタイムは、Proxy装置1がWebサーバ8からWeb情報を取得した時刻である。最後のアクセスタイムは、クライアント端末2からWeb情報に最後にアクセスされた時刻である。アクセス数は、クライアント端末2からWeb情報にアクセスされた回数である。
例えば、Web情報記憶部21の「0x000A2300」に格納されたWeb情報については、URLは「http://www.d123.com/index.html」であり、最終更新日は2013年12月25日20:45:05であり、有効期限はない。また、サイズは27542MB(メガバイト)であり、そのWeb情報は2014年1月26日18:45:10にWebサーバ8から取得され、最後にクライアント端末2からアクセスされた時刻は2014年2月2日10:35:06である。また、そのWeb情報は、これまでにクライアント端末2から34回アクセスされている。
Proxy装置情報フラグは、LAN4で接続された他のProxy装置1にWeb情報が存在するか否かを示すフラグである。図3Bは、Proxy装置情報フラグの一例を示す図である。図3Bに示すように、Proxy装置情報フラグは、IDとフラグとを装置毎に対応付けた情報である。IDは、Proxy装置1を自装置内で管理するためのローカルな番号である。フラグは、0である場合には対応するProxy装置1にWeb情報がないことを示し、0以外の場合には、対応するProxy装置1の優先度を示す。
優先度は、他のProxy装置1にキャッシュされたWeb情報を他のProxy装置1から取得する際の順番を表し、値が大きい方から優先的にWeb情報を取得することを示す。例えば、番号が「0」であるProxy装置1として自装置内で管理されるProxy装置1は、対応するWeb情報を記憶し、優先度は「2」である。
Proxy装置一覧記憶部12は、LAN4で接続されたProxy装置1を管理するための情報であるProxy装置一覧を記憶する。図4は、Proxy装置一覧記憶部12の一例を示す図である。図4に示すように、Proxy装置一覧記憶部12は、Proxy装置毎にIDと、Proxy装置名と、IPアドレスと、優先度を記憶する。
IDは、Proxy装置1を自装置内で管理するためのローカルな番号である。Proxy装置名は、Proxy装置1を識別する名前である。IPアドレスは、Proxy装置1のIPアドレスである。優先度は、他のProxy装置1にキャッシュされたWeb情報を他のProxy装置1から取得する際の順番を表し、値が大きい方から優先的にWeb情報を取得することを示す。
例えば、番号が「0」であるProxy装置1として自装置内で管理されるProxy装置1については、名前は「Proxy装置#0」であり、IPアドレスは「IPアドレス#0」であり、優先度は「2」である。
図5は、Proxy装置情報フラグとProxy装置一覧の対応関係を説明するための図である。図5に示すように、Proxy装置情報フラグのIDは、Proxy装置一覧のIDに対応する。Proxy装置情報フラグのフラグは、対応するProxy装置1がWeb情報をキャッシュしている場合には、Proxy装置一覧の優先度がコピーされ、Web情報をキャッシュしていない場合には「0」である。
統計情報記憶部13は、優先度を決定するために用いられる統計情報を記憶する。図6は、統計情報記憶部13の一例を示す図である。図6に示すように、統計情報記憶部13は、IPアドレス、データサイズ、送信時刻、受信時刻、CPU(Central Processing Unit)使用率及びネットワーク使用率をProxy装置毎に記憶する。なお、ここでは、Proxy装置毎に1組のデータサイズ、送信時刻、受信時刻、CPU使用率及びネットワーク使用率を記憶するが、統計情報記憶部13は、データサイズ、送信時刻、受信時刻、CPU使用率及びネットワーク使用率を複数組記憶してもよい。
IPアドレスは、Proxy装置1のIPアドレスである。データサイズは、送信されたデータの大きさであり、単位はMBである。送信時刻は、他のProxy装置1がデータを送信した時刻である。受信時刻は、データを受信した時刻である。CPU使用率は、データを送信したProxy装置1のCPUの使用率である。ネットワーク使用率は、データを送信したProxy装置1がネットワークを使用する割合である。
データサイズ、送信時刻及び受信時刻から、単位データの通信に必要な時間が推定される。CPU使用率及びネットワーク使用率からProxy装置1の処理負荷が推定される。単位データの通信に必要な時間及びProxy装置1の処理負荷から、他のProxy装置1からWeb情報を取得するために要する時間が推定される。
例えば、IPアドレスが「IPアドレス#1」であるProxy装置1が「hh.mm.ss11」に送信した「156MB」のデータは「hh.mm.ss12」に受信されている。データを送信した時のProxy装置1のCPU使用率は「50.1%」であり、ネットワーク使用率は「25.3%」である。
負荷情報記憶部14は、統計情報に基づいて計算される負荷情報を記憶する。負荷情報は、優先度を決定するために用いられる。図7は、Proxy装置毎に記憶する負荷情報の一例を示す図である。図7に示すように、Proxy装置毎に記憶する負荷情報では、時刻と負荷が対応付けられる。
時刻は、負荷が計算された時刻である。負荷は、統計情報に基づいて計算された値である。負荷は、例えば、単位データ当たりの通信時間、CPU使用率及びネットワーク使用率の重み付き合計値である。例えば、時刻が「time1」の時の負荷は「123.45」である。なお、統計情報記憶部13がデータサイズ、送信時刻、受信時刻、CPU使用率及びネットワーク使用率を複数組記憶する場合には、例えば、負荷はそれぞれの平均値の重み付き合計値である。
Web情報制御部15は、クライアント端末2からWeb情報の要求を受け付けてWeb情報を取得し、取得したWeb情報をクライアント端末2へ送信する。Web情報制御部15は、Web情報を取得するためにキャッシュ管理情報制御部16へWeb情報の問い合わせを行い、自装置にWeb情報がある場合には、キャッシュ管理情報制御部16を介してWeb情報を取得し、クライアント端末2へ送信する。
一方、Web情報制御部15は、自装置にWeb情報がない場合には、他Proxy装置へWeb情報の問い合わせを行い、他Proxy装置からWeb情報を取得すると、取得したWeb情報をキャッシュ管理情報制御部16へ渡し、クライアント端末2へ送信する。また、他Proxy装置からWeb情報を取得できない場合には、Web情報制御部15は、Webサーバ8からWeb情報を取得してキャッシュ管理情報制御部16へ渡し、クライアント端末2へ送信する。
キュッシュ管理情報制御部16は、Web情報制御部15が入手したWeb情報をWeb情報記憶部21へ格納し、格納したWeb情報のキャッシュ管理情報を作成してキャッシュ管理情報記憶部11に登録する。また、キュッシュ管理情報制御部16は、他Proxy装置から送られてきたキャッシュ管理情報をキャッシュ管理情報交換部17から受け取り、キャッシュ管理情報記憶部11を更新する。
また、キュッシュ管理情報制御部16は、Web情報制御部15からのWeb情報の要求があると、キャッシュ管理情報記憶部11を参照し、自装置にWeb情報がある場合には、Web情報記憶部21からWeb情報を読出してWeb情報制御部15に渡す。
一方、自装置にWeb情報がない場合には、キュッシュ管理情報制御部16は、キャッシュ管理情報記憶部11を参照し、Web情報を要求する他Proxy装置を優先度に基づいて決定する。そして、キュッシュ管理情報制御部16は、決定した他Proxy装置からWeb情報を取得するように、Web情報制御部15に指示する。そして、キュッシュ管理情報制御部16は、Web情報制御部15が取得したWeb情報をWeb情報記憶部21へ格納し、格納したWeb情報のキャッシュ管理情報をキャッシュ管理情報交換部17に渡す。
キュッシュ管理情報制御部16は、限定優先度Psが設定されている場合には、優先度が限定優先度Ps以上のProxy装置1をWeb情報の要求先とする。また、キュッシュ管理情報制御部16は、限定装置数Pnが設定されている場合には、Pn個までのProxy装置1をWeb情報の要求先とする。
また、キュッシュ管理情報制御部16は、自装置にも他のProxy装置1にもWeb情報がない場合には、Webサーバ8をWeb情報の入手先として決定し、Web情報制御部15を介してWebサーバ8からWeb情報を取得する。
キャッシュ管理情報交換部17は、キュッシュ管理情報制御部16から渡されたキャッシュ管理情報を他のProxy装置1に送付する。キャッシュ管理情報交換部17は、選択部31と、第1送信部32と、第2送信部33と、受信部34と、設定部35とを有する。
選択部31は、キャッシュ管理情報を毎回送信するProxy装置1として優先度が所定の値p以上のProxy装置1を選択する。第1送信部32は、選択部31により選択されたProxy装置1にキャッシュ管理情報を毎回送信する。第2送信部33は、選択部31により選択されなかった優先度がp未満のProxy装置1に所定の数をkとしてk回に1回キャッシュ管理情報を送信する。また、第2送信部33は、キャッシュ管理情報がk−1個貯まると、選択部31により選択されなかった優先度がp未満のProxy装置1にキャッシュ管理情報をk−1個まとめて送信する。
すなわち、キャッシュ管理情報交換部17は、k回に1回他のProxy装置1の全てにキャッシュ管理情報を送り、残りのk−1回は優先度がp以上のProxy装置1だけにキャッシュ管理情報を送信する。また、キャッシュ管理情報交換部17は、優先度がp未満のProxy装置1にキャッシュ管理情報をk−1個まとめて送信する。なお、キャッシュ管理情報交換部17は、キャッシュ管理情報を送信する場合には、キャッシュ・アクセス情報、アクセス数及びProxy装置情報フラグは除いた情報を送信する。
受信部34は、他のProxy装置1から送られてきたキャッシュ管理情報を受信し、受信したキャッシュ管理情報をキュッシュ管理情報制御部16に渡す。受信部34は、キャッシュ・アクセス情報を「0x00000000」とし、Proxy装置情報フラグを修正した上でキャッシュ管理情報をキュッシュ管理情報制御部16に渡す。
図8は、キャッシュ管理情報の送信方法を説明するための図である。図8では、Proxy装置#0がProxy装置#1〜Proxy装置#(n−1)にキャッシュ管理情報を送り、Proxy装置#1とProxy装置#2の優先度がp以上であるとする。図8に示すように、Proxy装置#0は、キャッシュ管理情報を作成すると、優先度がp以上であるProxy装置#1とProxy装置#2にキャッシュ管理情報を送信する。
一方、Proxy装置#0は、優先度がp未満である他のProxy装置1には、k回に1回キャッシュ管理情報を送信する。そして、Proxy装置#0は、優先度がp未満である他のProxy装置1には、k−1個貯まるとキャッシュ管理情報を送信する。Proxy装置#0は、優先度がp未満であるProxy装置#4に管理情報格納テーブルとProxy装置管理リストを送信する。
図9Aは、管理情報格納テーブルの一例を示す図であり、図9Bは、Proxy装置管理リストの一例を示す図である。管理情報格納テーブルは、送信するキャッシュ管理情報が登録されたテーブルである。図9Aに示すように、管理情報格納テーブルでは、キャッシュ管理情報からキャッシュ・アクセス情報、アクセス数及びProxy装置情報フラグが除かれている。
Proxy装置管理リストは、管理情報格納テーブルの送信先のProxy装置1すなわち優先度がp未満であるProxy装置1の送信順序を示すリストである。図9Bに示すように、Proxy装置管理リストでは、No.とProxy装置1のIPアドレスが対応付けられる。No.は、管理情報格納テーブルを送信する順番を示す。図8及び図9Bは、最初にProxy装置#4に管理情報格納テーブルとProxy装置管理リストが送信され、次にProxy装置#4からProxy装置#3に管理情報格納テーブルとProxy装置管理リストが送信されることを示す。管理情報格納テーブルを送信する順番は、任意であり、例えば優先度順でもよい。
また、キャッシュ管理情報交換部17は、k回に1回他のProxy装置1の全てにキャッシュ管理情報を送る際に、他のProxy装置1が統計情報を作成するための情報を送信する。具体的には、キャッシュ管理情報交換部17は、統計情報を作成するための情報として、自装置のIPアドレス、キャッシュ管理情報のサイズ、キャッシュ管理情報の送信時刻、CPU使用率及びネットワーク使用率を全Proxy装置1に送信する。
設定部35は、統計情報を作成するための情報を受信すると統計情報記憶部13を更新する。すなわち、設定部35は、受信したIPアドレスに対応させてデータサイズ、送信時刻、CPU使用率及びネットワーク使用率を更新し、情報を受信した時刻を受信時刻として更新する。
そして、設定部35は、所定の数をtとしてt時間に一回、統計情報記憶部13の情報に基づいて負荷情報記憶部14を更新し、更新した負荷情報に基づいてProxy装置一覧記憶部12及びキャッシュ管理情報記憶部11の優先度を更新する。
Proxy装置管理部18は、Proxy装置情報定義記憶部22に基づいてProxy装置一覧記憶部12の作成及び更新を行う。Proxy装置情報定義記憶部22はIDを除いてProxy装置一覧記憶部12と同じ情報を記憶する。Web情報記憶部21は、Webサーバ8から取得されたWeb情報を記憶する。
キャッシュ管理情報記憶部11、Proxy装置一覧記憶部12、統計情報記憶部13及び負荷情報記憶部14は、例えばRAM(Random Access Memory)のような揮発性メモリにより実現される。一方、Web情報記憶部21及びProxy装置情報定義記憶部22は、例えばディスク装置のような不揮発性メモリにより実現される。
次に、クライアント端末2からのWeb情報要求に対する処理のフローについて説明する。図10は、クライアント端末2からのWeb情報要求に対する処理のフローを示すフローチャートである。図10に示すように、Proxy装置1は、クライアント端末2からWeb情報要求を受信する(ステップS1)。
そして、Proxy装置1は、キャッシュ管理情報記憶部11を検索して、Web情報要求に含まれるURL及びタイムスタンプと同じURL及びタイムスタンプのキャッシュ管理情報があるか否かを判定する(ステップS2)。その結果、同じURL及びタイムスタンプのキャッシュ管理情報がある場合には、Proxy装置1は、キャッシュ管理情報のキャッシュ・アクセス情報は0x00000000以外であるか否かを判定する(ステップS3)。
その結果、キャッシュ・アクセス情報が0x00000000以外である場合には、Proxy装置1は、キャッシュ・アクセス情報を用いてWeb情報をWeb情報記憶部21から取り出す(ステップS4)。そして、Proxy装置1は、取り出したWeb情報をクライアント端末2に送信する(ステップS5)。
一方、キャッシュ・アクセス情報が0x00000000である場合には、Proxy装置1は、他Proxy装置にWeb情報を要求し(ステップS6)、他Proxy装置からWeb情報を取得できたか否かを判定する(ステップS7)。その結果、Web情報を取得できなかった場合、及び、同じURL及びタイムスタンプのキャッシュ管理情報がない場合には、Proxy装置1は、外部のWebサーバ8からWeb情報を取得する(ステップS8)。
そして、Proxy装置1は、取得したWeb情報の管理情報をキャッシュ管理情報記憶部11に格納し、Web情報をWeb情報記憶部21に格納する(ステップS9)。そして、Proxy装置1は、他Proxy装置にキャッシュ管理情報を送信する(ステップS10)。
このように、Proxy装置1は、キャッシュ管理情報を送信することによって、取得したWeb情報を保持していることを他のProxy装置1に通知することで、外部のWebサーバ8へのアクセスを減らすことができる。
次に、他のProxy装置1にWeb情報を要求する処理のフローについて説明する。図11は、他のProxy装置1にWeb情報を要求する処理のフローを示すフローチャートである。なお、図11に示す処理は、図10のステップS6の処理に対応する。図11に示すように、Proxy装置1は、キャッシュ管理情報があるか否かを判定し(ステップS11)、ない場合には処理を終了する。
一方、キャッシュ管理情報がある場合には、Proxy装置1は、countを0で初期化し(ステプS12)、countに1を加える(ステップS13)。ここで、countは、Web情報を要求した他のProxy装置1の数を数えるための変数である。そして、Proxy装置1は、キャッシュ管理情報のProxy装置情報フラグがONで、かつ、Web情報を要求していない他Proxy装置(以下、要求Proxy装置という)があるか否かを判定し(ステップS14)、ない場合には、処理を終了する。ここで、Proxy装置情報フラグがONであるとは、フラグの値が0以外である。
一方、要求Proxy装置がある場合には、Proxy装置1は、限定優先度Psが設定されていて、かつ、全ての要求Proxy装置の優先度が限定優先度Ps未満であるか否かを判定し(ステップS15)、全優先度が限定優先度Ps未満である場合には、処理を終了する。
一方、限定優先度Ps未満でない要求Proxy装置がある場合には、Proxy装置1は、限定装置数Pnが設定されていて、かつ、countが限定装置数Pn+1以上であるか否かを判定し(ステップS16)、限定装置数Pn+1以上である場合には、処理を終了する。
一方、限定装置数Pn+1以上でない場合には、Proxy装置1は、要求Proxy装置の中から優先度の高い順にProxy装置Pxを選択し、Web情報を要求する(ステップS17)。なお、優先度が同じ場合には、Proxy装置1は、自装置のIDの次のIDのProxy装置1から順に選択する。そして、Proxy装置1は、Proxy装置PxからWeb情報が得られたか否かを判定し(ステップS18)、得られなかった場合には、ステップS13に戻る。
一方、Web情報が得られた場合には、Proxy装置1は、Web情報の返信時刻を採取する(ステップS19)。そして、Proxy装置1は、Proxy装置PxのIPアドレス、Web情報のサイズ、送信時刻及び採取した返信時刻、CPU使用率及びネットワーク使用率を用いて統計情報記憶部13を更新する(ステップS20)。なお、Web情報のサイズ、送信時刻、CPU使用率及びネットワーク使用率はWeb情報と共に送られてくる。
このように、Proxy装置1は、他のProxy装置1からWeb情報を取得することによって、外部のWebサーバ8へのアクセスを減らすことができる。
次に、優先度を設定する処理のフローについて説明する。図12は、優先度を設定する処理のフローを示すフローチャートである。図12に示すように、キャッシュ管理情報交換部17は、統計情報に基づいてProxy装置毎に所定の時間t毎に単位データ当たりの送信時間、CPU使用率及びネットワーク使用率の重み付き合計値を計算する(ステップS31)。
そして、キャッシュ管理情報交換部17は、計算した合計値を時刻に対応付けて負荷情報として負荷情報記憶部14に格納する(ステップS32)。そして、キャッシュ管理情報交換部17は、負荷情報から他のProxy装置1の優先度を計算し、Proxy装置一覧記憶部12及びキャッシュ管理情報記憶部11を更新する(ステップS33)。
このように、キャッシュ管理情報交換部17は、他のProxy装置1の優先度を計算することによって、キャッシュ管理情報を毎回送信するProxy装置1を優先度を用いて選択することができる。
次に、キャッシュ管理情報を送信する処理のフローについて説明する。図13は、キャッシュ管理情報を送信する処理のフローを示すフローチャートである。なお、図13に示す処理は、図10のステップS10の処理に対応する。
図13に示すように、キャッシュ管理情報交換部17は、キャッシュ管理情報の総送信回数をkで割った余りが0であるか否かを判定する(ステップS41)。その結果、0である場合には、キャッシュ管理情報交換部17は、他Proxy装置の全てにキャッシュ管理情報と、自装置のIPアドレス、キャッシュ管理情報のサイズ、送信時刻、CPU使用率及びネットワーク使用率とを送る(ステップS42)。
一方、余りが0でない場合には、キャッシュ管理情報交換部17は、優先度がp以上の他Proxy装置にキャッシュ管理情報を送信し(ステップS43)、送信したキャッシュ管理情報を管理情報格納テーブルに保存する(ステップS44)。そして、キャッシュ管理情報交換部17は、キャッシュ管理情報の総送信回数をkで割った余りがk−1であるか否かを判定し(ステップS45)、k−1でない場合には、処理を終了する。
一方、余りがk−1である場合には、キャッシュ管理情報交換部17は、Proxy装置一覧の優先度がp未満のProxy装置1についてProxy装置管理リストを作成する(ステップS46)。そして、キャッシュ管理情報交換部17は、Proxy装置管理リストの最初のProxy装置1に管理情報格納テーブルとProxy装置管理リストを送信する(ステップS47)。
このように、キャッシュ管理情報交換部17は、優先度がp未満のProxy装置1には、k−1個のキャッシュ管理情報をまとめて送ることによって、キャッシュ管理情報の通知のためのネットワーク負荷を低く抑えることができる。
次に、管理情報格納テーブルとProxy装置管理リストを送信する処理のフローについて説明する。図14は、管理情報格納テーブルとProxy装置管理リストを送信する処理のフローを示すフローチャートである。図14に示すように、キャッシュ管理情報交換部17は、p-countをProxy装置管理リストの自装置の順番+1に設定する(ステップS51)。
そして、キャッシュ管理情報交換部17は、Proxy装置管理リストのp-count番目のProxy装置1に管理情報格納テーブルとProxy装置管理リストを送る(ステップS52)。そして、キャッシュ管理情報交換部17は、所定の時間w以内に送信先から受理の連絡を受信したか否かを判定し(ステップS53)、受信した場合には、処理を終了する。
一方、所定の時間w以内に送信先から受理の連絡を受信しない場合には、キャッシュ管理情報交換部17は、p-countに1をプラスし(ステップS54)、p-countがProxy装置管理リストの最後の順番を超えたか否かを判定する(ステップS55)。そして、キャッシュ管理情報交換部17は、最後の順番を超えた場合には、処理を終了し、超えない場合には、ステップS52に戻る。
このように、キャッシュ管理情報交換部17は、Proxy装置管理リストに基づいて管理情報格納テーブルとProxy装置管理リストを送信することによって、優先度がp未満のProxy装置1にk−1個のキャッシュ管理情報送信することができる。
次に、Proxy装置管理部18の処理のフローについて図15〜図19を用いて説明する。図15は、Proxy装置一覧の作成処理のフローを示すフローチャートである。図15に示すように、Proxy装置管理部18は、Proxy装置情報定義記憶部22に情報があるか否かを判定し(ステップS61)、ない場合には、処理を終了する。一方、ある場合には、Proxy装置管理部18は、Proxy装置情報定義記憶部22から情報を入力し、Proxy装置一覧を作成する(ステップS62)。
図16は、Proxy装置追加処理のフローを示すフローチャートである。図16に示すように、Proxy装置管理部18は、Proxy装置情報定義記憶部22から情報を入力し、Proxy装置一覧を作成する(ステップS71)。そして、Proxy装置管理部18は、Proxy装置一覧に自装置のProxy装置名とIPアドレスを追加する(ステップS72)。
そして、Proxy装置管理部18は、Proxy装置一覧をProxy装置情報定義記憶部22に保存し(ステップS73)、追加したProxy装置1のProxy装置名とIPアドレスを他Proxy装置に送信する(ステップS74)。
図17は、Proxy装置追加受信処理のフローを示すフローチャートである。図17に示すように、Proxy装置管理部18は、追加されたProxy装置1のProxy装置名とIPアドレスを受信する(ステップS81)。そして、Proxy装置管理部18は、受信したProxy装置名とIPアドレスをProxy装置一覧記憶部12に格納し(ステップS82)、Proxy装置一覧をProxy装置情報定義記憶部22に保存する(ステップS83)。
図18は、Proxy装置削除処理のフローを示すフローチャートである。図18に示すように、Proxy装置管理部18は、LAN4に接続された他Proxy装置に自Proxy装置のProxy装置名とIPアドレスを通知する(ステップS91)。
図19は、Proxy装置削除受信処理のフローを示すフローチャートである。図19に示すように、Proxy装置管理部18は、LAN4から削除するProxy装置1のProxy装置名とIPアドレスとを受信する(ステップS96)。そして、Proxy装置管理部18は、Proxy装置一覧から、削除するProxy装置1の情報を削除する(ステップS97)。
そして、Proxy装置管理部18は、Proxy装置一覧をProxy装置情報定義記憶部22に保存し(ステップS98)、キャッシュ管理情報記憶部11の全キャッシュ管理情報のProxy装置情報フラグの削除Proxy装置に対応するフラグを0にする(ステップS99)。
このように、Proxy装置管理部18がProxy装置一覧を管理することによって、Proxy装置1は、Proxy装置1の追加及び削除に対応することができる。
次に、Proxy装置1による他装置との関連動作について図20〜図23を用いて説明する。図20は、自装置内にWeb情報が存在した場合の動作の順序を示す図である。図20に示すように、Proxy装置1は、クライアント端末2からWeb情報の要求を受信する(1)。そして、Proxy装置1は、キャッシュ管理情報記憶部11を検索し、Web情報が見つかると、クライアント端末2にWeb情報を送信する(2)。
図21は、自装置内にWeb情報が存在せず、他Proxy装置内にWeb情報が存在した場合の動作の順序を示す図である。図21に示すように、Proxy装置1は、クライアント端末2からWeb情報の要求を受信する(1)。そして、Proxy装置1は、キャッシュ管理情報記憶部11を検索し、他Proxy装置内にWeb情報が存在すると判断すると、他Proxy装置にWeb情報を要求する(2)。
そして、Proxy装置1は、要求した他Proxy装置からWeb情報を受信する(3)。そして、Proxy装置1は、受信したWeb情報に関するキャッシュ管理情報を全ての他Proxy装置に送信し(4〜6)、Web情報をクライアント端末2に送信する(7)。なお、優先度がp未満の他Proxy装置に対してはキャッシュ管理情報はk−1個まとめて送信される。
図22は、自装置及び他Proxy装置からWeb情報が得られなかった場合の動作の順序を示す図である。図22に示すように、Proxy装置1は、クライアント端末2からWeb情報の要求を受信する(1)。そして、Proxy装置1は、GW6及び外部ネットワーク7を介してWebサーバ8にアクセスする(2〜4)。
そして、Proxy装置1は、Webサーバ8から外部ネットワーク7及びGW6を介してWeb情報を取得する(5〜7)。そして、Proxy装置1は、受信したWeb情報に関するキャッシュ管理情報を全ての他Proxy装置に送信し(8〜10)、Web情報をクライアント端末2に送信する(11)。
図23は、Proxy装置が停止した場合の動作の順序を示す図である。図23に示すように、Proxy装置1が停止する(1)と、Proxy装置1にLAN3で接続されているクライアント端末2は、他Proxy装置にアクセスすることによりWeb情報を取得する(2〜4)。このように、Proxy装置1が何らかの理由で停止した場合、クライアント端末2は、Proxy装置1を切り替えることによって、Webアクセスを継続して行うことができる。なお、クライアント端末2は、Proxy装置1を自動設定する機能を用いて、他Proxy装置を選択できるようにスクリプトを設定することでProxy装置1を切り替えることができる。
次に、図24〜図26を用いてProxy装置1の機能部の処理の順番について説明する。図24は、要求されているWeb情報が自装置にある場合の処理の順番を示す図である。図24に示すように、Web情報制御部15は、クライアント端末2からWeb情報の要求を受信する(1)と、キャッシュ管理情報制御部16にWeb情報の有無を問い合わせる(2)。
すると、キャッシュ管理情報制御部16は、キャッシュ管理情報記憶部11を参照して(3〜4)、Web情報記憶部21からWeb情報を読出し(5〜6)、Web情報制御部15に渡す(7)。そして、Web情報制御部15がクライアント端末2にWeb情報を送信する(8)。
図25は、他Proxy装置内にWeb情報が存在する場合の処理の順番を示す図である。図25に示すように、Web情報制御部15は、クライアント端末2からWeb情報の要求を受信する(1)と、キャッシュ管理情報制御部16にWeb情報の有無を問い合わせる(2)。
すると、キャッシュ管理情報制御部16は、キャッシュ管理情報記憶部11を参照して(3〜4)、Web情報を要求する他Proxy装置を特定し、特定した他Proxy装置のIPアドレスをProxy一覧記憶部12を参照して取得する(5〜6)。そして、キャッシュ管理情報制御部16は、IPアドレスを指定してWeb情報制御部15にWeb情報の取得を指示する(7)。
すると、Web情報制御部15は、他Proxy装置からWeb情報を取得し(8〜9)、取得したWeb情報をキャッシュ管理情報制御部16に渡す(10)。キャッシュ管理情報制御部16は、渡されたWeb情報に関するキャッシュ管理情報をキャッシュ管理情報記憶部11に格納し(11〜12)、Web情報をWeb情報記憶部21に格納する(13)。
そして、キャッシュ管理情報制御部16は、キャッシュ管理情報を他Proxy装置に送信するようにキャッシュ管理情報交換部17に指示する(14)。そして、キャッシュ管理情報交換部17が他Proxy装置にキャッシュ管理情報を送信し(15〜16)、Web情報制御部15がWeb情報をクライアント端末2に送信する(17)。
図26は、外部のWebサーバ8にアクセスする場合の処理の順番を示す図である。図26に示すように、Web情報制御部15は、クライアント端末2からWeb情報の要求を受信する(1)と、キャッシュ管理情報制御部16にWeb情報の有無を問い合わせる(2)。
すると、キャッシュ管理情報制御部16は、キャッシュ管理情報記憶部11を参照して(3〜4)、Web情報を要求する他Proxy装置を特定し、特定した他Proxy装置のIPアドレスをProxy一覧記憶部12を参照して取得する(5〜6)。そして、キャッシュ管理情報制御部16は、IPアドレスを指定してWeb情報制御部15にWeb情報の取得を指示する(7)。
すると、Web情報制御部15は、他Proxy装置にWeb情報を要求する(8)。ここで、故障等により他Proxy装置からWeb情報が取得できない(9)と、Web情報制御部15は、外部ネットワーク7を経由してWebサーバ8からWeb情報を取得し(10〜11)、取得したWeb情報をキャッシュ管理情報制御部16に渡す(12)。
キャッシュ管理情報制御部16は、渡されたWeb情報に関するキャッシュ管理情報をキャッシュ管理情報記憶部11に格納し(13〜14)、Web情報をWeb情報記憶部21に格納する(15)。そして、キャッシュ管理情報制御部16は、キャッシュ管理情報を他Proxy装置に送信するようにキャッシュ管理情報交換部17に指示する(16)。
そして、キャッシュ管理情報交換部17が他Proxy装置にキャッシュ管理情報を送信し(17〜19)、Web情報制御部15がWeb情報をクライアント端末2に送信する(20)。
このように、各機能部が連携してWeb情報を取得することにより、Proxy装置1は、クライアント端末2からの要求を効率よく処理することができる。
上述してきたように、実施例では、キャッシュ管理情報交換部17の第1送信部32が、優先度がp以上のProxy装置1にキャッシュ管理情報を毎回送信し、第2送信部33が、優先度がp未満のProxy装置1にk回に1回キャッシュ管理情報を送信する。また、第2送信部33は、キャッシュ管理情報がk−1個貯まると、優先度がp未満のProxy装置1にキャッシュ管理情報をk−1個まとめて送信する。したがって、Proxy装置1は、
他のProxy装置1のキャッシュに保存された情報を有効利用すると共に、キャッシュに保存された情報に関する管理情報の通知のためのネットワーク負荷を低く抑えることができる。
また、実施例では、キャッシュ管理情報交換部17の設定部35が、単位データ送信時間、CPU負荷率及びネットワーク負荷率を含む統計情報を用いて他のProxy装置1の優先度を設定し、選択部31が、優先度がp以上のProxy装置1を選択する。したがって、Proxy装置1は、キャッシュ管理情報を毎回送信する他のProxy装置1を適切に選択することができる。
また、実施例では、キャッシュ管理情報制御部16が、キャッシュ管理情報記憶部11を参照し、優先度に基づいて、Web情報を要求する他Proxy装置を特定し、Web情報制御部15が、特定された他Proxy装置からWeb情報を取得する。したがって、Proxy装置1は、他のProxy装置1のキャッシュに保存された情報を効率よく取得することができる。
また、実施例では、キャッシュ管理情報制御部16は、所定の限界優先度Ps以上の他Proxy装置がない場合には、外部のWebサーバ8からWeb情報を取得すると決定する。したがって、Proxy装置1は、他Proxy装置から効率よくWeb情報が取得できない場合には、外部のWebサーバ8を利用してWeb情報を取得することができる。
また、実施例では、Proxy装置1は、キャッシュ管理情報を受信する場合とWeb情報を受信する場合に優先度の算出に必要な統計情報を受信するので、効率良く統計情報を収集することができる。
なお、実施例では、Proxy装置1について説明したが、Proxy装置1が有する構成をソフトウェアによって実現することで、同様の機能を有するProxyプログラムを得ることができる。そこで、Proxyプログラムを実行するコンピュータについて説明する。
図27は、実施例に係るProxyプログラムを実行するコンピュータのハードウェア構成を示す図である。図27に示すように、コンピュータ50は、メインメモリ51と、CPU52と、LANインタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
メインメモリ51は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU52は、メインメモリ51からプログラムを読出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
そして、コンピュータ50において実行されるProxyプログラムは、DVDに記憶され、ODD57によってDVDから読出されてコンピュータ50にインストールされる。あるいは、Proxyプログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読出されてコンピュータ50にインストールされる。そして、インストールされたProxyプログラムは、HDD54に記憶され、メインメモリ51に読出されてCPU52によって実行される。
また、実施例では、Webサーバ8からWeb情報を取得する場合について説明したが、本発明はこれに限定されるものではなく、他の情報提供装置から他の情報を取得する場合にも同様に適用することができる。