(57)【特許請求の範囲】
【請求項１】
ウェブクライアントからウェブサーバへのコンテンツ要求を中継し、中継することにより前記ウェブサーバから得られたコンテンツを、前記ウェブクライアントへ前記コンテンツ要求に対する応答として送信すると共にキャッシュメモリに保存するキャッシングシステムであって、
前記コンテンツ取得要求を中継する際に、前記ウェブクライアントから要求されたコンテンツが前記キャッシュメモリに保存されている場合には、前記コンテンツ要求を前記ウェブサーバに中継することなく、前記キャッシュメモリから該当するコンテンツを読み出して前記ウェブクライアントへ送信し、前記キャッシュメモリに要求されたコンテンツが保存されていない場合には、前記ウェブサーバに前記コンテンツ要求を中継して前記ウェブサーバから応答されたコンテンツを前記ウェブクライアントへ送信する制御手段を備え、
前記制御手段は、前記ウェブクライアントからの前記コンテンツ要求が、一つのコンテンツの内の一部のコンテンツを取得する要求であった際に、前記一つのコンテンツの全てが前記キャッシュメモリに保存されている場合には、前記キャッシュメモリから該当する範囲のコンテンツを読み出して前記ウェブクライアントへ送信するようにしたことを特徴とするキャッシングシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ウェブサーバからウェブクライアントがコンテンツを取得するためのキャッシングシステムに関し、移動通信網に適用して好適なものである。
【０００２】
【従来の技術】
移動通信システムは、第１世代が、１９８０年代のアナログ方式の移動通信システム（ＮＴＴ方式，ＡＭＰＳ（Advanced Mobile Phone Service），ＴＡＣＳ（Total Access Communications System）など）とされ、第２世代が、１９９０年代のディジタル方式の移動通信システム（ＰＤＣ（Personal Digital Cellular telecommunication system），ＧＳＭ（global system for mobile communication），ＩＳ−５４，ＩＳ−９５など）とされている。さらに、第３世代は、サービス開始当初で６４〜３８４kbps、将来は２Mbps という高速通信が実現される。これにより、第３世代では現行の第２世代移動通信システムにおいても可能であったモバイルインターネット接続サービス等についても、より快適かつ大容量で利用することが可能となり、高速パケット通信の進展や、PCカードタイプの携帯電話端末の発展、マルチコール（音声とパケットの同時通信）、添付ファイル付のメール、動画アプリケーション（ストリーミング等）、テレビ電話などの多様なサービスが実現可能となる。このような移動通信システムの普及はめざましく、我が国においては移動電話の普及台数は６０００万台を超えるまでに至っている。この移動電話は携帯電話機として普及しており、第２世代においても携帯電話機を端末としてインターネットメールを送受信することや、ウェブコンテンツをインターネット上のサーバから取得することが可能とされている。
【０００３】
【発明が解決しようとする課題】
移動通信網における移動機とコンテンツを提供するウェブサーバとの間には、応答の向上やネットワークリソースを有効に利用できるように、キャッシングシステムが設けられている。一般的なキャッシングシステムは、ウェブクライアントからウェブサーバへのウェブアクセス要求を中継し、中継することによりウェブサーバから得られたウェブデータをキャッシュとして保持している。そして、既にキャッシュとして保持しているデータに対するアクセス要求がウェブクライアントからあった際には、ウェブサーバにウェブアクセス要求を中継せず、キャッシュされているウェブデータをウェブクライアントに送信することにより、ウェブアクセス要求に応答している。
【０００４】
ところで、一般的に、ウェブにおいて提供されるコンテンツは以下の３種類に分類することができる。
１．静的コンテンツ：ウェブコンテンツ作成者のレイアウトが終わると変更されないコンテンツであり、例えば、文書や図などが記載されているコンテンツとされる。
２．動的コンテンツ：ウェブアクセス要求に応じて、部分的または全体的に生成されるコンテンツである。この動的コンテンツは、ウェブアクセス要求のたびに生成されることからコンテンツの内容が異なる場合が多くされている。例えば、ウェブページの入力画面に探し出したい文字を入力し、検索を実行すると検索結果画面を表示する検索サイトにおいては動的コンテンツが生成されている。
３．ストリーミング：ストリーミングは静的コンテンツや動的コンテンツと異なり、ウェブアクセス要求したコンテンツをダウンロードした後に処理するのではなく、データを受信しながらリアルタイムで処理するコンテンツである。例えば、リアルタイムな音声や動画配信がストリーミングに該当する。
【０００５】
このように、ウェブアクセス要求されたコンテンツが動的コンテンツとされた場合は、要求毎に異なる内容のコンテンツが生成されて応答される場合が多くなる。そこで、従来は、動的コンテンツのウェブアクセス要求であった場合は、コンテンツが動的に生成される可能性があるとしてキャッシュしないようにしている。すると、常時あるいは一定時間は同じコンテンツが生成される動的コンテンツの場合であっても、キャッシュを利用することができないという問題があった。また、ウェブアクセス要求されたコンテンツが全コンテンツの内の一部のコンテンツであった場合は、キャッシングシステムを利用するとデータ矛盾が生じるおそれがあることから、キャッシングシステムを利用しないようにしていた。これらの場合には、キャッシングシステムはウェブサーバにウェブアクセス要求を中継することから、応答が遅くなると共にウェブサーバの処理負担が大きくなってしまうという問題点が生じることになる。
【０００６】
そこで、本発明はウェブアクセス要求されたコンテンツによらず、効率的に使用できるキャッシングシステムを提供することを目的としている。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明のキャッシングシステムは、ウェブクライアントからウェブサーバへのコンテンツ要求を中継し、中継することにより前記ウェブサーバから得られたコンテンツを、前記ウェブクライアントへ前記コンテンツ要求に対する応答として送信すると共にキャッシュメモリに保存するキャッシングシステムであって、前記コンテンツ取得要求を中継する際に、前記ウェブクライアントから要求されたコンテンツが前記キャッシュメモリに保存されている場合には、前記コンテンツ要求を前記ウェブサーバに中継することなく、前記キャッシュメモリから該当するコンテンツを読み出して前記ウェブクライアントへ送信し、前記キャッシュメモリに要求されたコンテンツが保存されていない場合には、前記ウェブサーバに前記コンテンツ要求を中継して前記ウェブサーバから応答されたコンテンツを前記ウェブクライアントへ送信する制御手段を備え、前記制御手段は、前記ウェブクライアントからの前記コンテンツ要求が、一つのコンテンツの内の一部のコンテンツを取得する要求であった際に、前記一つのコンテンツの全てが前記キャッシュメモリに保存されている場合には、前記キャッシュメモリから該当する範囲のコンテンツを読み出して前記ウェブクライアントへ送信するようにしている。
【００１１】
このような本発明によれば、ウェブサーバから取得したコンテンツが動的コンテンツとされて、応答中にキャッシュ可能指示情報が含まれている場合は、そのコンテンツをキャッシュメモリに保存している。これにより、動的コンテンツであっても支障の生じないコンテンツの場合はキャッシュすることができるようになる。また、ウェブクライアントからのコンテンツ要求が、全コンテンツの内の一部のコンテンツを取得する要求であった場合にもキャッシングシステムを利用できるようにしている。従って、キャッシングシステムを有効に利用することができると共に、ネットワークリソースを有効に利用することができるようになる。これにより、ウェブアクセス要求に対する応答を速くしてユーザビリティを向上することができると共に、ウェブサーバの処理負担を軽減することができるようになる。
【００１２】
さらに、キャッシュメモリに保存する条件として応答の正常応答を加えると、キャッシュの信頼性を向上することができる。さらに加えて、コンテンツ要求にパラメータが付加されていること、動的コンテンツを示すパス拡張子あるいはパス要素が含まれていることを条件としても良い。さらにまた、ウェブサーバから取得したコンテンツが全コンテンツの内の一部のコンテンツであった場合は、そのコンテンツをキャッシュメモリに保存しないことにより、データ矛盾を生じないようにしている。さらにまた、キャッシュ保存期限情報が通知されている場合は、そのキャッシュ保存期限情報で示される期限だけキャッシュすることにより、所定期間毎に更新される動的コンテンツであっても、支障なくキャッシングシステムを利用することができるようになる。
【００１３】
【発明の実施の形態】
本発明の実施の形態のキャッシングシステムを備えるネットワークの概略構成を図１に示す。
図１に示すネットワークは、移動通信網とインターネット等の他のネットワークから構成されており、移動通信網は、例えば携帯電話機とされる移動機（ＭＳ）１０と無線通信路１１として示されている。また、他のネットワークはそのネットワーク上に位置しているウェブサーバ１３として示されている。本発明にかかるキャッシングシステム１２は、移動通信網とウェブサーバ１３との間に配置されており、移動機１０からウェブサーバ１３へのウェブアクセス要求を中継し、中継することによりウェブサーバ１３から得られたウェブデータ（コンテンツ）を、移動機１０へ送信すると共にキャッシングシステム１２に備えられているキャッシュメモリ１２ａに保存している。そして、既にキャッシュとしてキャッシュメモリ１２ａに保持しているコンテンツに対するコンテンツ取得要求が移動機１０からあった際には、ウェブサーバ１３にコンテンツ取得要求を中継せず、キャッシュされているコンテンツをキャッシュメモリ１２ａから読み出して移動機１０に送信することにより、コンテンツ取得要求に応答している。このような、キャッシングシステム１２で実行される処理をキャッシングシステム処理ということにする。なお、ウェブサーバ１３は提供するコンテンツ等が記憶されるハードディスク等の記憶手段１４を備えている。
【００１４】
なお、移動機１０がウェブサーバ１３からコンテンツを取得する際のプロトコルとしてはＨＴＴＰ（Hypertext Transfer Protocol）が用いられる。ＨＴＴＰは、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）の上位レイヤに属しており、インターネットにおいて、ウェブサーバとウェブクライアントの間でＨＴＭＬ文書や画像・音声、そのほかのマルチメディア・データを送受信するための通信プロトコルである。ＨＴＴＰはリクエスト（要求：:HTTP Request）とレスポンス（応答：HTTP Resoponse）からなる非常に単純なプロトコルであり、リクエストとレスポンスとで通信の単位とされている。例えば、ウェブクライアントが、リクエストとして表示したいＨＴＭＬ文書のＵＲＬ（Uniform Resource Locators）をリクエストとして送信する。これを受けたウェブサーバは、ＵＲＬで指定された自分が保存しているＨＴＭＬ文書をレスポンスとしてウェブクライアントに送信する。ＨＴＴＰでは、この１回のデータ取得のたびにウェブサーバへの接続を行い、データの受信を終えると接続を切断している。なお、ウェブクライアントは、図１に示すネットワークにおいては移動機１０となる。
【００１５】
ところで、ウェブサーバ１３から提供される移動機１０向けを含む現状のウェブコンテンツの多くは、ＣＧＩ（Common Gateway Interface）を利用したコンテンツが非常に多くされている。ＣＧＩは、ウェブブラウザからの要求を受け付けて、所望の外部プログラムを呼び出し、プログラムの実行結果をウェブブラウザに返すための仕組みであり、ウェブブラウザのフォームにデータを入力してもらい、結果を返すといったアプリケーションを作成するための基本的なインターフェースとされている。例えば、ウェブページの入力画面に探し出したい文字を入力し、検索を実行すると検索結果画面を表示する検索サイトや、ユーザが投稿した文字をすぐにウェブに反映し表示する掲示板がＣＧＩを利用している。このように、ＣＧＩを利用したコンテンツではコンテンツが部分的あるいは全体的に生成されるため、動的コンテンツが生成されることになる。
【００１６】
また、ウェブサーバ側で、Java（TM）ScriptやVisualBasic （TM）Scriptなどのスクリプト言語や、各種ActiveX（TM）コンポーネントを動作させるためのフレームワークとしてＡＳＰ（Active Server Pages）がある。ＡＳＰとして記述されたウェブページは、まずサーバ側で解釈・実行されるため、参照時の状態によってダイナミックなコンテンツをクライアントに提供することが可能である。このように、ＡＳＰを利用したコンテンツでもコンテンツが部分的あるいは全体的に生成されるため、動的コンテンツが生成可能となる。
さらに、HTTP RequestのＵＲＩ（Uniform Resource Identifier）にパラメータを付加する場合があるが、この場合にはHTTP Responseとして付加されたパラメータに応じて作成された動的コンテンツが返るようになる。なお、ＵＲＩとはネットワーク上のリソースを特定するためのコンパクトな文字列の仕様であり、ＵＲＬのスキーム（使用するプロトコルの識別子）を含んでいる。
【００１７】
本発明のキャッシングシステム１２では、このようなＣＧＩやＡＳＰを利用した動的コンテンツあるいはHTTP Requestにパラメータが付加された場合であっても、ある条件の基でキャッシュメモリ１２ａにキャッシュするようにして、キャッシングシステム処理を行うようにしている。それは、ＣＧＩやＡＳＰを利用したコンテンツの中、あるいはHTTP Requestにパラメータが付加された場合にも静的コンテンツが存在することと、天気予報やニュースの動的コンテンツのように一定時間毎に更新されて、その時間内においては同じ内容の動的コンテンツが生成される場合があるからである。このようなＣＧＩやＡＳＰを利用する動的コンテンツあるいはHTTP Requestにパラメータが付加された場合は、キャッシュ対象として、ウェブサーバ１３からキャッシングシステム１２がHTTP Responseを受け取った際に、そのコンテンツをキャッシュメモリ１２ａに保存するようにしている。
【００１８】
ここで、移動機１０からウェブサーバ１３へのウェブアクセス要求（HTTP Request）をキャッシングシステム１２が中継し、中継することによりウェブサーバ１３から得られたコンテンツを、移動機１０へウェブアクセス応答（HTTP Response）として送信すると共にキャッシングシステム１２に備えられているキャッシュメモリ１２ａに保存する場合の様子が図２に示されている。キャッシングシステム１２がウェブアクセス要求を中継するのは、ウェブアクセス要求に対応するコンテンツがキャッシュメモリ１２ａに格納されていなかったり、有効期限が過ぎておりキャッシュヒットしない場合である。この場合には、図２に示すようにウェブサーバ１３にHTTP Requestを中継し、ウェブサーバ１３はHTTP Requestに応じたコンテンツを記憶手段１４から読み出しあるいは作成してHTTP Responseとしてキャッシングシステム１２に返す。キャッシングシステム１２は、取得したHTTP Responseを移動機１０へ送信する。この場合、HTTP Responseのヘッダにおいて当該コンテンツがキャッシュ可能に指定されている場合には、そのコンテンツをキャッシュメモリ１２ａに格納する。
【００１９】
この場合、当該コンテンツが動的コンテンツとされている場合であってもHTTP Requestの内容がキャッシュ可の定義に一致する場合には、対応するコンテンツをキャッシュメモリ１２ａに格納している。なお、キャッシュ可の定義に一致する動的コンテンツか否かはHTTP RequestにおけるＵＲＩから判断しており、ＵＲＩを比較対象としてキャッシュ可の動的コンテンツを定義している。すなわち、ＵＲＩにパラメータが付加されている場合はＵＲＩとパラメータとの間を区切る文字”？”が挿入されていることから、HTTP Requestに文字”？”が含まれている場合にはキャッシュ可と定義する。また、ＵＲＩにおけるパス拡張子が”ａｓｐ”あるいは”ｃｇｉ”とされている場合にもキャッシュ可と定義する。さらに、ＵＲＩにおけるパス要素に”ｃｇｉ”が含まれている場合にもキャッシュ可と定義する。
【００２０】
このような定義を示す図表を図５に「表１  キャッシュ制御パラメータ」として示す。また、ＵＲＩのデータ構造を一例としてあげたＵＲＩを用いて図４に示す。
図５に示すように、＃１では制御パラメータcond_cache_charとしてキャッシュ可とするＣＧＩパラメータの文字列を”？”と設定し、ＣＧＩ部の全文字を比較対象としている。図４に示すＵＲＩでは、比較対象に文字”？”が含まれていることから定義内容にマッチしており、ウェブサーバ１３からの応答におけるヘッダにおいてキャッシュ可能と指定されているものは当該コンテンツをキャッシュメモリ１２ａに格納する。
【００２１】
また、＃２では制御パラメータcond_cache_suffixとしてキャッシュ可とするパス拡張子を”ａｓｐ：ｃｇｉ”と設定し、ＵＲＩのパス拡張子を比較対象としている。図４に示すＵＲＩにおいて、パス拡張子は「．」の後に位置しており図４に示すＵＲＩでは”ｃｇｉ”とされて、比較対象のパス拡張子が”ｃｇｉ”とされていることから定義内容にマッチしており、ウェブサーバ１３からの応答におけるヘッダにおいてキャッシュ可能と指定されているものは当該コンテンツをキャッシュメモリ１２ａに格納する。さらに、＃３では制御パラメータcond_cache_compとしてキャッシュ可とするパス要素を”ｃｇｉ”と設定し、ＵＲＩのパス要素を比較対象としている。図４に示すＵＲＩにおいて、パス要素は「/」が前置する”ａｂｃ”および”ｃｇｉ”とされて、そのパス要素プレフィックスはａ，ａｂ，ａｂｃ，ｅ，ｅｆ，ｅｆｇとされている。ここで、比較対象のパス要素に”ｃｇｉ”が含まれている場合は定義内容にマッチしており、ウェブサーバ１３の応答におけるヘッダにおいてキャッシュ可能と指定されているものは当該コンテンツをキャッシュメモリ１２ａに格納する。また、比較対象のパス要素に”ｃｇｉ”が含まれていない場合は定義内容にマッチしていないことから、当該コンテンツはキャッシュしないことになるが、その場合でも＃１〜＃３の定義内容のいずれかにマッチしていればキャッシュ可とされる。
【００２２】
上記したように、移動機１０からのウェブアクセス要求（HTTP Request）にパラメータが付加されていたり、パス拡張子がＣＧＩやＡＳＰあるいはパス要素がＣＧＩと認められるものであっても、コンテンツを提供するウェブサーバ１３からのHTTP ResponseにおけるCashe-Controlヘッダパラメータにおいて指定されるキャッシュ可能の指定が優先約に評価されて、キャッシュ可能の指定がある時に限りキャッシュメモリ１２ａにキャッシュしている。そして、同一コンテンツに対するコンテンツ取得要求があった際には、キャッシングシステム１２におけるキャッシュヒット処理においてキャッシュヒットしたコンテンツをキャッシュメモリ１２ａから読み出して要求元へ送信する。この場合には、キャッシングシステム１２はウェブアクセス要求をウェブサーバ１３には中継しない。
【００２３】
この場合の様子を図３に示す。図３において、移動機１０からのHTTP Requestを受けたキャッシングシステムは、キャッシュシステム処理を実行してその中のキャッシュヒット処理において、要求されたコンテンツがキャッシュヒットしたか否かを判断する。そして、キャッシュヒットした場合にはキャッシュメモリ１２ａから当該コンテンツを読み出してHTTP Responseとして移動機１０へ送信する。
ところで、ウェブサーバ１３からのHTTP ResponseのCashe-Controlヘッダパラメータにおいて有効期間が指定されている場合は、その有効期間をキャッシュ保存期限としてその期限だけキャッシュメモリ１２ａにキャッシュするようにしている。これにより、ＡＳＰやＣＧＩを利用していても静的コンテンツや所定期間毎に更新される動的コンテンツに対応することができる。
【００２４】
上記したようにキャッシングシステム１２では、HTTP ResponseにおけるCashe-Controlヘッダパラメータにおいてキャッシュ可能と指定されていることを条件の一つとして、当該コンテンツをキャッシュメモリ１２ａにキャッシュしている。これにより、動的に生成されるコンテンツであっても、キャッシュさせたいコンテンツや従来はキャッシングされていなかったコンテンツをキャッシュできるようになる。上記した応答をキャッシングする条件はHTTP1.1 準拠とされている。そこで、HTTP1.1 準拠の応答をキャッシングする条件を示す図表を図６に示す。図６に示すように、HTTP Responseにおけるヘッダパラメータには、コンテンツ作成の日時を表すDateヘッダパラメータ、有効期間を指定するCashe-ControlヘッダパラメータおよびExpireヘッダパラメータ、キャッシュ可能を指定するCashe-Controlヘッダパラメータ、最終更新日を示すLast_Modifiedヘッダパラメータがある。有効期間を指定するCashe-Controlヘッダパラメータには、max-ageパラメータおよびs-maxageパラメータがあり、キャッシュ可能を指定するCashe-Controlヘッダパラメータには、publicパラメータ、no_transformパラメータ、must#revalidateパラメータ、proxy_revalidateパラメータがある。
【００２５】
図６にはこれらの４つのヘッダパラメータを組み合わせたパターン１〜パターン９の９パターンが示されており、その内のパターン２，４，６，８のCashe-Controlヘッダパラメータがキャッシュ可能指定のパラメータとなっている。キャッシュしたコンテンツは、コンテンツ毎に定められた有効期間だけ有効として使用されるが、パターン２，６においてはCashe-Controlヘッダパラメータによりその有効期間が指定されている。しかし、パターン４，８においてはコンテンツの有効期間が指定されていない。そこで、パターン４においては指定されている最終更新日（Last Modified）を利用して、（Last Modified−Date値）＊１０％の演算を行い、この演算結果を応答キャッシュの有効期間としている。また、パターン８においては最終更新日も指定されていないため、標準Max-ageを応答キャッシュの有効期間としている。これにより、パターン２，４，６，８に該当するヘッダを有するHTTP Responseのコンテンツをキャッシュメモリ１２ａにキャッシュした際のキャッシュ有効期間を決定することができる。
なお、キャッシュメモリ１２ａには、ウェブサーバ１３からの応答中におけるステータスコードが正常応答を示している場合にキャッシュするのが好適である。これは、動的コンテンツに限らず静的コンテンツをキャッシュする場合も同様である。
【００２６】
また、無線を通信手段としている移動機１０でのウェブコンテンツ取得時においては、有線における途中切断の発生率より高い途中切断の発生率となってしまう。途中切断が発生した場合には、ウェブコンテンツを取得中であった移動機１０は、取得できなかったコンテンツの残りを取得するために部分要求（Byte-Range要求）のコンテンツ要求を行うことになる。従来は、部分要求に対してはデータ矛盾を生じる可能性があるためキャッシュ機能を使用しないようにしているが、本発明のキャッシングシステム１２では、キャッシングシステム１２で保持しているキャッシュメモリ１２ａに該当する部分コンテンツを含む全コンテンツが存在する場合に限って、キャッシングシステム処理を行うようにしている。すなわち、該当するコンテンツがキャッシュされている場合は、部分要求のバイトレンジ指定に従って、キャッシュメモリ１２ａから全コンテンツの内の指定された範囲のコンテンツを読み出して、移動機１０へ応答として送信するようにしている。この場合、全コンテンツがキャッシュされている場合に限っているのは、全コンテンツがキャッシュされていないとバイトレンジ指定された範囲のコンテンツと、読み出された部分コンテンツとが一致せず、要求と応答のコンテンツ間に矛盾が生じるおそれがあるからである。
【００２７】
また、部分要求におけるRangeヘッダによる読出し先のバイトレンジ指定は、単一の範囲だけが指定されている場合のみキャッシングシステム処理を行っている。そして、複数の範囲が指定されている場合はキャッシングシステム処理を行わず、常にその部分要求をウェブサーバ１３に中継している。ウェブサーバ１３は、この部分要求に対応する一部のコンテンツを応答としてキャッシングシステム１２に送信し、キャッシングシステム１２はこの一部のコンテンツを移動機１０へ中継する。これにより、移動機１０から部分要求（Byte-Range要求）された範囲の部分コンテンツが移動機１０で取得されるようになる。なお、キャッシングシステム１２は、ウェブサーバ１３から部分要求に対応する部分コンテンツを受け取っても、この部分コンテンツはキャッシュ対象とはせず、キャッシュメモリ１２ａに保存しないようにしている。
【００２８】
次に、本発明にかかるキャッシングシステム１２が実行するキャッシュシステム処理のフローチャートを図７に示す。
図７に示すキャッシュシステム処理は、キャッシングシステム１２の電源が投入されたりリセットされたりして初期処理が行われた際にスタートされる。キャッシュシステム処理がスタートされると、ステップＳ１にて移動機１０からコンテンツ要求があるか否かが判断される。ここで、コンテンツ要求がない場合はコンテンツ要求が検出されるまでここで待機される。そして、キャッシングシステム１２が例えば移動機１０からのHTTP Requestを受け取りコンテンツ要求があったと判断されると、ステップＳ２に進む。ステップＳ２では、HTTP RequestのＵＲＩに対するキャッシュがキャッシュメモリ１２ａに存在し、かつキャッシュされたコンテンツの有効期間が切れておらず有効とされているか否かが判断される。
【００２９】
ここで、HTTP RequestのＵＲＩに対するキャッシュがキャッシュメモリ１２ａに存在し、かつキャッシュされたコンテンツが有効と判断された場合は、ステップＳ３に進み、HTTP Requestのヘッダにキャッシュ利用不可指示があるか否かが判断される。ここで、HTTP Requestのヘッダにキャッシュ利用不可指示がないと判断された場合は、ステップＳ４に進みHTTP RequestのＵＲＩに基づいてHTTP Requestがキャッシュ可能な動的コンテンツの要求か否かが判断される。この判断は、図５に示す表１に示す比較対象を比較することによりキャッシュの可否を判断している。ここで、HTTP Requestがキャッシュ可能な動的コンテンツの要求と判断された場合は、HTTP Requestのヘッダに部分要求のバイトレンジ指定（Range指定）があるか否かが判断される。そして、HTTP Requestのヘッダに部分要求のバイトレンジ指定があると判断された場合は、ステップＳ６に進み部分要求キャッシュヒット処理が実行される。部分要求キャッシュヒット処理では、キャッシュメモリ１２ａに該当する部分コンテンツを含む全コンテンツが存在し、かつキャッシュが有効と判断された場合にキャッシュヒットしたと判断する。
【００３０】
また、ステップＳ５においてHTTP Requestのヘッダに部分要求のバイトレンジ指定がないと判断された場合は、ステップＳ９に進み通常キャッシュヒット処理が実行される。通常キャッシュヒット処理では、キャッシュメモリ１２ａに該当するコンテンツが存在し、かつキャッシュが有効と判断された場合にキャッシュヒットしたと判断する。ステップＳ６あるいはステップＳ９の処理が終了するとステップＳ７に進み、キャッシュヒットしたか否かが判断される。ここで、ステップＳ５あるいはステップＳ９においてキャッシュヒットしたと判断されている場合は、ステップＳ８においてキャッシュメモリ１２ａより該当するコンテンツが読み出されてコンテンツ要求した移動機へ送信される。
【００３１】
上記ステップＳ２にてHTTP RequestのＵＲＩに対するキャッシュがキャッシュメモリ１２ａに存在しないか、存在してもキャッシュされたコンテンツが有効でないと判断された場合は、ステップＳ１０へ進みウェブサーバ１３へコンテンツ要求が中継される。また、上記ステップＳ３にてHTTP Requestのヘッダにキャッシュ利用不可指示があると判断された場合も、ステップＳ１０へ進みウェブサーバ１３へコンテンツ要求が中継される。さらに、上記ステップＳ４にてHTTP Requestがキャッシュ可能な動的コンテンツの要求ではないと判断された場合も、ステップＳ１０へ進みウェブサーバ１３へコンテンツ要求が中継される。さらにまた、上記ステップＳ７にてキャッシュヒットしなかったと判断された場合も、ステップＳ１０へ進みウェブサーバ１３へコンテンツ要求が中継される。そして、ステップＳ１０の処理が終了すると、ステップＳ１１にてウェブサーバ１３から取得したコンテンツをコンテンツ要求した移動機へ送信する。次いで、ステップＳ１２にて取得したコンテンツをキャッシュする後述するキャッシング処理が行われる。そして、ステップＳ８あるいはステップＳ１２の処理が終了すると、ステップＳ１に戻りコンテンツ要求が検出される毎にステップＳ１ないしステップＳ１２の処理が繰り返し実行されるようになる。
【００３２】
次に、キャッシュシステム処理のステップＳ１２にて実行されるキャッシング処理のフローチャートを図８に示す。
図８に示すキャッシング処理がスタートすると、ステップＳ２０にてＧＥＴ要求に対する応答が正常応答か否かが判断される。ここで、正常応答と判断された場合はステップＳ２１へ進み、応答のステータスコードがパーシャルコンテンツを示しているか否かが判断される。通常コンテンツの正常応答のステータスコードは「２００」とされ、パーシャルコンテンツの正常応答のステータスコードは「２０６」とされる。そこで、ステータスコードが「２００」と判断された場合はステップＳ２２に進み、HTTP Requestのヘッダにキャッシュ利用不可指示がないか否かが判断される。この場合、HTTP Requestのヘッダにキャッシュ利用不可指示がないと判断された場合はステップＳ２３へ進み、ウェブサーバ１３からのHTTP Responseのヘッダにキャッシュ可能指示があるか否かが判断される。この判断は、図６に示す表２に示すキャッシュ可能を指定するCashe-Controlヘッダパラメータを見て判断する。
【００３３】
ここで、HTTP Responseのヘッダにキャッシュ可能指示があると判断された場合はステップＳ２４に進み、HTTP Requestがキャッシュ可能な動的コンテンツの要求か否かが判断される。この判断は、HTTP RequestのＵＲＩにおける図５に示す表１に示す比較対象を比較することによりキャッシュ可能な動的コンテンツか否かを判断している。そして、HTTP Requestがキャッシュ可能な動的コンテンツの要求と判断された場合はステップＳ２５へ進み動的コンテンツのキャッシュ判定処理が行われる。この動的コンテンツのキャッシュ判定処理では、図６に示す表２に示すHTTP Responseにおける４つのヘッダパラメータからキャッシュ可能か否かが判定される。ここでは、表２に示すパターン２，４，６，８に一致するヘッダパラメータを有するHTTP Responseについては、当該コンテンツをキャッシュ可能と判定する。また、ステップＳ２４にてHTTP Requestがキャッシュ可能な動的コンテンツの要求ではないと判断された場合は、ステップＳ２６へ進み通常コンテンツのキャッシュ判定処理が行われる。この通常コンテンツのキャッシュ判定処理においても図６に示す表２に示すHTTP Responseにおける４つのヘッダパラメータからキャッシュ可能か否かが判定される。ここでは、表２に示す応答キャッシュの欄に「○」が付されているパターン２，３，４，６，７，８に一致するヘッダパラメータを有するHTTP Responseについては、当該コンテンツをキャッシュ可能と判定する。
【００３４】
ステップＳ２５あるいはステップＳ２６の処理が終了するとステップＳ２７へ進み、ウェブサーバ１３から取得したコンテンツがキャッシュ可能か否かが判断される。ここで、ステップＳ２５あるいはステップＳ２６の処理においてキャッシュ可能と判定されている場合は、ステップＳ２８へ進み取得したコンテンツがキャッシュメモリ１２ａに蓄積される。次いで、キャッシュシステム処理へリターンされる。また、上記ステップＳ２０にて正常応答と判断されない場合、上記ステップＳ２１にてステータスコードが「２００」と判断されない場合、上記ステップＳ２２にてHTTP Requestのヘッダにキャッシュ利用不可指示があると判断された場合、上記ステップＳ２３にてHTTP Responseのヘッダにキャッシュ可能指示がないと判断された場合、および、上記ステップＳ２７にてキャッシュ可能でないと判定された場合は、そのままキャッシュシステム処理へリターンされ、取得されたコンテンツはキャッシュされない。
【００３５】
なお、以上の説明では移動通信網における移動機１０がウェブサーバ１３からコンテンツを取得する場合のキャッシングシステム１２を説明したが、本発明のキャッシングシステム１２は、これに限らずＨＴＴＰ通信一般に適用することができる。
【００３６】
【発明の効果】
本発明は以上説明したように、ウェブサーバから取得したコンテンツが動的コンテンツとされて、応答中にキャッシュ可能指示情報が含まれている場合は、そのコンテンツをキャッシュメモリに保存している。これにより、動的コンテンツであっても支障の生じないコンテンツの場合はキャッシュすることができるようになる。また、ウェブクライアントからのコンテンツ要求が、全コンテンツの内の一部のコンテンツを取得する要求であった場合にもキャッシングシステムを利用できるようにしている。従って、キャッシングシステムを有効に利用することができると共に、ネットワークリソースを有効に利用することができるようになる。これにより、ウェブアクセス要求に対する応答を速くしてユーザビリティを向上することができると共に、ウェブサーバの処理負担を軽減することができるようになる。
【００３７】
さらに、キャッシュメモリに保存する条件として応答の正常応答を加えると、キャッシュの信頼性を向上することができる。さらに加えて、コンテンツ要求にパラメータが付加されていること、動的コンテンツを示すパス拡張子あるいはパス要素が含まれていることを条件としても良い。さらにまた、ウェブサーバから取得したコンテンツが全コンテンツの内の一部のコンテンツであった場合は、そのコンテンツをキャッシュメモリに保存しないことにより、データ矛盾を生じないようにしている。さらにまた、キャッシュ保存期限情報が通知されている場合は、そのキャッシュ保存期限情報で示される期限だけキャッシュすることにより、所定期間毎に更新される動的コンテンツであっても、支障なくキャッシングシステムを利用することができるようになる。
【図面の簡単な説明】
【図１】本発明の実施の形態のキャッシングシステムを備えるネットワークの概略構成を示す図である。
【図２】図１に示すネットワークにおいて、コンテンツ要求を中継すると共に取得したコンテンツをキャッシュする様子を示す図である。
【図３】図１に示すネットワークにおいて、キャッシュヒットした際の様子を示す図である。
【図４】ＵＲＩのデータ構造を説明するための図である。
【図５】本発明の実施の形態のキャッシングシステムにおけるキャッシュ制御パラメータの定義等を示す図表である。
【図６】  HTTP 1.1準拠の応答をキャッシングする条件を示す図表である。
【図７】本発明の実施の形態のキャッシングシステムで実行するキャッシュシステム処理のフローチャートである。
【図８】本発明の実施の形態のキャッシングシステムで実行するキャッシュシステム処理におけるキャッシング処理のフローチャートである。
【符号の説明】
１０  移動機、１１  無線通信路、１２  キャッシングシステム、１２ａ  キャッシュメモリ、１３  ウェブサーバ、１４  記憶手段
【図１】
0004744792.tif 000002
【図２】
0004744792.tif 000003
【図３】
0004744792.tif 000004
【図４】
0004744792.tif 000005
【図５】
0004744792.tif 000006
【図６】
0004744792.tif 000007
【図７】
0004744792.tif 000008
【図８】
0004744792.tif 000009