(57)【特許請求の範囲】
【請求項１】
第１のネットワークに属する端末装置からのデータ転送要求を第２のネットワークに属する装置に中継し、第２のネットワークに属する装置から送られるデータを第１のネットワークに属する要求元の端末装置へ中継し、かつデータキャッシュ中に要求されるデータがあれば該データキャッシュ中のデータを要求元の端末装置へ送信して第２のネットワークとの通信を回避するゲートウェイ装置によるデータ中継方法において、第２のネットワークを介してデータ取得するまでに要するレスポンスタイムと該データキャッシュ中のデータを取得するまでに要するデータアクセス時間とを比較し、該レスポンスタイムが該データアクセス時間より小さい場合にはデータ転送要求を第２のネットワークに属する装置へ中継することを特徴とするゲートウェイ装置によるデータ中継方法。
【請求項２】
前記データアクセス時間は、データアクセス要求のキュー数に依存することを特徴とする請求項１記載のゲートウェイ装置によるデータ中継方法。
【請求項３】
第１のネットワークに属する端末装置からのデータ転送要求を第２のネットワークに属する装置に中継し、第２のネットワークに属する装置から送られるデータを第１のネットワークに属する要求元の端末装置へ中継し、かつデータキャッシュ中に要求されるデータがあれば該データキャッシュ中のデータを要求元の端末装置へ送信して第２のネットワークとの通信を回避するゲーウェイ装置によるデータ中継方法において、第２のネットワークを介してデータを取得するに要する時間が該データキャッシュからデータを取得するに要する時間より小さいとき、データ転送要求を第２のネットワークに属する装置へ中継することを特徴とするゲートウェイ装置によるデータ中継方法。
【請求項４】
コンピュータ読み取り可能なプログラムを格納する記憶媒体であって、該プログラムは、第１のネットワークに属する端末装置からのデータ転送要求を第２のネットワークに属する装置に中継する機能、第２のネットワークに属する装置から送られるデータを第１のネットワークに属する要求元の端末装置へ中継する機能、およびデータキャッシュ中に要求されるデータがあれば該データキャッシュ中のデータを要求元の端末装置へ送信して第２のネットワークとの通信を回避するよう制御する機能を前記コンピュータに実現させるプログラムであり、下記機能を前記コンピュータに実現させることを特徴とするプログラムを格納する記憶媒体：第２のネットワークを介してデータ取得するまでに要するレスポンスタイムとデータキャッシュ中のデータを取得するまでに要するデータアクセス時間とを比較する機能、および該レスポンスタイムが該データアクセス時間より小さい場合にはデータ転送要求を第２のネットワークに属する装置へ中継する機能。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク間に介在するゲートウェイ装置によるデータ中継方法に係わり、特にゲートウェイ装置が備えるデータキャッシュを効率的に使用するデータ中継方法に関する。
【０００２】
【従来の技術】
企業内ネットワークに属する端末装置からインターネットなどの広域ネットワークに属するサーバ装置にアクセスする場合に、広域ネットワークと企業内ネットワークとの間にゲートウェイ装置を介在させ、端末装置はゲートウェイ装置を介して広域ネットワークにアクセスするようなシステムが構成される。ゲートウェイ装置は、端末装置からのデータ転送要求を広域ネットワークのサーバ装置に中継し、またサーバ装置から受け取ったデータを端末装置に中継する。特開平４−３１３１２６号公報によれば、このようなゲートウェイ計算機にディスクキャッシュを設け、このディスクキャッシュにサーバ装置から受け取ったデータを保存して、同一データの転送要求があったときディスクキャッシュ上のデータを利用することによって広域ネットワークとの通信を回避し、データのアクセス時間を短縮させる。このようなゲートウェイ計算機は、プロキシサーバと呼ばれている。
【０００３】
【発明が解決しようとする課題】
上記のようなプロキシサーバは、端末装置からのアクセス頻度が増えて高負荷となると、ディスクキャッシュへのアクセス頻度が増加し、ディスクアクセス時間がボトルネックとなるため、レスポンスタイムが極端に悪化するという問題がある。
【０００４】
本発明の目的は、上記のようなデータキャッシュを備えるゲートウェイ装置に対するレスポンスタイムを改善することにある。
【０００５】
【課題を解決するための手段】
本発明は、第１のネットワークに属する端末装置からのデータ転送要求を第２のネットワークに属する装置に中継し、第２のネットワークに属する装置から送られるデータを第１のネットワークに属する要求元の端末装置へ中継し、かつデータキャッシュ中に要求されるデータがあればデータキャッシュ中のデータを要求元の端末装置へ送信して第２のネットワークとの通信を回避するゲートウェイ装置によるデータ中継方法において、第２のネットワークを介してデータを取得するに要する時間がデータキャッシュからデータを取得するに要する時間より小さいとき、データ転送要求を第２のネットワークに属する装置へ中継するゲートウェイ装置によるデータ中継方法を特徴とする。
【０００６】
【発明の実施の形態】
以下、本発明の一実施形態について図面を用いて説明する。
【０００７】
図１は、本実施形態のシステムの構成図である。システムはネットワーク２０、ネットワーク５０及び両ネットワークに介在するプロキシサーバ装置４０から構成される。ネットワーク２０はインターネットのような広域ネットワークであり、ＷＷＷサーバのようなサーバ装置１０を多数備えている。またネットワーク５０は企業内ネットワークであり、このネットワークに属する端末装置３０はサーバ装置１０に対してデータ転送要求を発行するクライアント端末である。プロキシサーバ装置４０は、ネットワーク２０及びネットワーク５０に接続され、端末装置３０のデータ転送要求をネットワーク２０に属する目的のサーバ装置１０に中継し、またサーバ装置１０から送られるホームページのようなデータを要求元の端末装置３０に中継するゲートウェイ装置である。
【０００８】
プロキシサーバ装置４０は、サーバ計算機であり、メモリ、すなわち主記憶装置（半導体記憶装置）上にメモリキャッシュ４１の記憶領域を備え、また接続されるディスク装置上にディスクキャッシュ４２の記憶領域を備える。通信制御部４７は、ネットワーク５０を介して端末装置３０との間にコネクションを確立し、端末装置３０とプロキシサーバ装置４０との間の通信を制御するハードウェア／ソフトウェアである。通信制御部４８は、ネットワーク２０を介して目的のサーバ装置１０との間にコネクションを確立し、サーバ装置１０とプロキシサーバ装置４０との間の通信を制御するハードウェア／ソフトウェアである。
【０００９】
プロキシ中継部４４は、プロキシサーバ装置４０のメモリに格納され、通信制御部４７を介して端末装置３０からデータ転送要求を受信し、通信制御部４８を介してサーバ装置１０へ中継し、またサーバ装置１０から送られたデータを端末装置３０へ中継するプログラムである。ただし目的のデータがメモリキャッシュ４１に存在すればそのデータを端末装置３０へ送り、サーバ装置１０との間の通信を回避する。またディスクキャッシュ４２にアクセスするための待ち時間が少なく、かつ目的のデータがディスクキャッシュ４２に存在すれば、そのデータを端末装置３０へ送り、サーバ装置１０との間のデータ取得のための通信を回避する。またプロキシ中継部４４は、サーバ装置１０から受信したデータをメモリキャッシュ４１に蓄積するよう制御する。プロキシ中継部４４は、端末装置３０からのデータ転送要求ごとに起動されるプロセスによって動作する。
【００１０】
ディスクアクセスキュー４３は、メモリ上に設けられ、ディスクキャッシュ４２へのアクセス要求をキューイングする制御テーブルである。ディスク検索部４５は、プロキシ中継部４４のプロセスからのディスク検索要求によって起動され、ディスクアクセスキュー４３の検索要求順にディスクキャッシュ４２を検索し、目的のデータがあればプロキシ中継部４４の要求元プロセスにそのデータを渡すプログラムである。データ移行部４６は、メモリキャッシュ４１上の古いデータをディスクキャッシュ４２に移動し、またサーバ装置１０から取得されたデータ及びディスクキャッシュ４２中のアクセスされたデータをメモリキャッシュ４１に格納する。
【００１１】
少なくともプロキシ中継部４４のプログラムを記憶媒体に格納し、プロキシサーバ装置４０に接続される駆動装置を介してプロキシサーバ装置４０のメモリに読み込むか、または他の計算機に接続される駆動装置、他の計算機及びネットワークを介してプロキシサーバ装置４０へ伝送し、プロキシサーバ装置４０によって実行することが可能である。
【００１２】
メモリキャッシュ４１は、ディレクトリ格納領域とデータ格納領域とから構成される。ディレクトリ格納領域は、端末装置３０から要求されたデータページのサーバ名／ファイル名と対応するデータページを格納する格納場所のメモリアドレスとを各ディレクトリとし、これらディレクトリのリストを格納する。ディレクトリは、アクセス順に配列されており、ディレクトリ格納領域の終端からその先頭にラップアラウンドして格納される。データ格納領域は、要求されたデータページを格納する。データページは、アクセス順に配列されており、データ格納領域の終端からその先頭にラップアラウンドして格納される。メモリキャッシュ４１を検索するとき、まずディレクトリが検索され、目的のサーバ名／ファイル名が存在すれば対応するデータ格納領域中のデータページにアクセスされる。
【００１３】
ディスクキャッシュ４２も同様にディレクトリ格納領域とデータ格納領域とから構成される。ディレクトリ格納領域は、サーバ名／ファイル名と対応するデータページを格納するディスク上の論理ブロックアドレスとを各ディレクトリとし、これらディレクトリのリストを格納する。ディレクトリは、アクセス順に配列されており、ディレクトリ格納領域の終端からその先頭にラップアラウンドして格納される。データ格納領域中のデータページは、アクセス順に配列されており、データ格納領域の終端からその先頭にラップアラウンドして格納される。ディスクキャッシュ４２を検索するときもメモリキャッシュ４１の場合と同様に、まずディレクトリが検索され、目的のサーバ名／ファイル名が存在すれば対応するデータ格納領域中のデータページにアクセスされる。
【００１４】
図２Ａ及び図２Ｂは、プロキシ中継部４４の処理の流れを示すフローチャートである。プロキシ中継部４４は、通信制御部４７を介してネットワーク５０上の端末装置３０からデータ転送要求を受信すると（ステップ６１）、まずメモリキャッシュ４１を検索する（ステップ６２）。メモリキャッシュ４１上にデータが有れば（ステップ６３ＹＥＳ）、そのデータページを端末装置３０へデータ転送する（ステップ６４）。すなわちメモリキャッシュ４１へのアクセスは高速に行われるものとみなし、メモリキャッシュ４１にデータが有れば無条件でこれを利用する。
【００１５】
メモリキャッシュ４１上にデータがなければ（ステップ６３ＮＯ）、ディスクアクセスキュー４３を参照して現在のディスクアクセスのキュー数を取得する（ステップ６５）。また現在のネットワーク２０上の予想レスポンスタイムを取得する（ステップ６６）。ここでレスポンスタイムは、プロキシサーバ装置４０がサーバ装置１０へデータ転送要求を送信してから要求したデータを受信するまでの時間である。サーバ装置１０へのトラフィック、すなわち単位時間当りのアクセス件数は日周期のように周期的に変化すると考えられるので、あらかじめ時刻によるトラフィック変化の統計データを記憶装置上に格納しておけば、現在時刻からおおよその予想トラフィックが求められる。またレスポンスタイムはトラフィックに関する関数となるので、あらかじめ関数形を設定しておけば現在時刻における予想レスポンスタイムを推定できる。
【００１６】
次に現在の実効的なディスクアクセス時間と取得した予想レスポンスタイムとを比較する（ステップ６７）。ここで実効的なディスクアクセス時間は、
（ディスクアクセスのキュー数＋１）×平均ディスクアクセス時間／データであり、
平均ディスクアクセス時間／データ＝平均ディレクトリ読み出し時間＋データページ読み出し時間＋データ移行オーバヘッド
である。データ移行オーバヘッドは、メモリキャッシュ４１上の古いデータページをディスクキャッシュ４２に移動するときのオーバヘッド時間の平均ディスクアクセス時間／データへの寄与分である。なお上記ディスクアクセス時間は、ディスクキャッシュ４２の読み書きの多重度が１としているので、多重度が２以上の場合にはその多重度で割ればよい。
【００１７】
このようにして取得したディスクアクセス時間と予想レスポンスタイムを比較し、ディスクアクセス時間＞予想レスポンスタイムであれば（ステップ６７ＹＥＳ）、通信制御部４８を介してネットワーク２０上の目的とするサーバ装置１０とコネクションを確立し、データ転送要求を送信してデータページを受信する（ステップ６８）。次に通信制御部４７を介して受信したデータをネットワーク５０上の要求元の端末装置３０へ転送する（ステップ６９）。
【００１８】
ディスクアクセス時間≦予想レスポンスタイムであれば（ステップ６７ＮＯ）、図２Ｂに移り、ディスクアクセスキュー４３にアクセス要求を登録してキュー数を１つ増やし（ステップ７０）、サーバ名／ファイル名を指定してディスク検索部４５にデータ検索要求を発行する（ステップ７１）。ディスク検索部４５は、ディスクアクセスキュー４３の登録順にディスクキャッシュ４２のデータを検索し、その結果をプロキシ中継部４４の要求元プロセスに返す。アクセス要求されたデータがある場合には、そのデータと対応するディレクトリをディスクキャッシュ４２から削除する。プロキシ中継部４４の要求元プロセスは、ディスクアクセスキュー４３上に登録したアクセス要求を削除してキュー数を１つ減らす（ステップ７２）。ディスクキャッシュ４２上に目的のデータページが有れば（ステップ７３ＹＥＳ）、そのデータページを要求元の端末装置３０へデータ転送する（ステップ７４）。その後ステップ７７へ行く。
【００１９】
ディスクキャッシュ４２上に目的のデータページがなければ（ステップ７３ＮＯ）、通信制御部４８を介してネットワーク２０上の目的とするサーバ装置１０とコネクションを確立し、データ転送要求を送信してデータページを受信する（ステップ７５）。次に通信制御部４７を介して受信したデータをネットワーク５０上の要求元の端末装置３０へ転送する（ステップ７６）。
【００２０】
次にプロキシ中継部４４は、データ移行部４６へ受信したデータページ又はディスクキャッシュ４２から取り出したデータページをそのサーバ名／ファイル名とともに渡してメモリキャッシュ４１への格納を要求する。データ移行部４６は、メモリキャッシュ４１のディレクトリ格納領域及びデータ格納領域の終端まで満杯でラップアラウンドした状態であれば、両格納領域についてポインタの指す最も古いディレクトリ及びデータページをそれぞれディスクキャッシュ４２のディレクトリ格納領域及びデータ格納領域についてポインタの指す次の格納場所に移動し（ステップ７７）、後者のポインタを更新する。次にメモリキャッシュ４１のディレクトリ格納領域及びデータ格納領域について各々のポインタの指す格納場所に受け取ったサーバ名／ファイル名を含むディレクトリ及びデータページをそれぞれ格納し（ステップ７８）、ポインタを更新する。メモリキャッシュ４１の格納領域が満杯でなければ、受け取ったサーバ名／ファイル名を含むディレクトリ及びデータページをそれぞれポインタの指す格納場所に格納してポインタを更新するだけである。
【００２１】
【発明の効果】
以上述べたように本発明によれば、端末装置からのアクセス頻度に応じてデータキャッシュを利用するか否かを制御するので、端末からみたデータ取得のレスポンスタイムを改善することができる。
【図面の簡単な説明】
【図１】実施形態のシステムの構成図である。
【図２Ａ】実施形態のプロキシ中継部４４の処理の流れを示すフローチャートである。
【図２Ｂ】実施形態のプロキシ中継部４４の処理の流れを示すフローチャート（続き）である。
【符号の説明】
１０：サーバ装置、２０：ネットワーク、３０：端末装置、４０：プロキシサーバ装置、４１：メモリキャッシュ、４２：ディスクキャッシュ、４３：ディスクアクセスキュー、４４：プロキシ中継部、４５：ディスク検索部、４６：データ移行部、５０：ネットワーク
【図１】
0003679289.tif 000002
【図２Ａ】
0003679289.tif 000003
【図２Ｂ】
0003679289.tif 000004