JP2009076093A - キャッシングシステム - Google Patents
キャッシングシステム Download PDFInfo
- Publication number
- JP2009076093A JP2009076093A JP2008290491A JP2008290491A JP2009076093A JP 2009076093 A JP2009076093 A JP 2009076093A JP 2008290491 A JP2008290491 A JP 2008290491A JP 2008290491 A JP2008290491 A JP 2008290491A JP 2009076093 A JP2009076093 A JP 2009076093A
- Authority
- JP
- Japan
- Prior art keywords
- content
- request
- web server
- cache memory
- web
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 ウェブアクセス要求されたコンテンツの種類によらず、効率的にキャッシュする。
【解決手段】 ウェブサーバ13から取得したコンテンツが、キャッシングシステム12において動的コンテンツとされている場合であっても、当該コンテンツについてキャッシュ可能とHTTP Responseのヘッダで指定されている場合には、当該コンテンツをキャッシュメモリ12aに保存する。これにより、動的コンテンツであってもキャッシュ可能な動的コンテンツの場合は、キャッシュできるようになる。
【選択図】 図1
【解決手段】 ウェブサーバ13から取得したコンテンツが、キャッシングシステム12において動的コンテンツとされている場合であっても、当該コンテンツについてキャッシュ可能とHTTP Responseのヘッダで指定されている場合には、当該コンテンツをキャッシュメモリ12aに保存する。これにより、動的コンテンツであってもキャッシュ可能な動的コンテンツの場合は、キャッシュできるようになる。
【選択図】 図1
Description
本発明は、ウェブサーバからウェブクライアントがコンテンツを取得するためのキャッシングシステムに関し、移動通信網に適用して好適なものである。
移動通信システムは、第1世代が、1980年代のアナログ方式の移動通信システム(NTT方式,AMPS(Advanced Mobile Phone Service),TACS(Total Access Communications System)など)とされ、第2世代が、1990年代のディジタル方式の移動通信システム(PDC(Personal Digital Cellular telecommunication system),GSM(global system for mobile communication),IS−54,IS−95など)とされている。さらに、第3世代は、サービス開始当初で64〜384kbps、将来は2Mbps という高速通信が実現される。これにより、第3世代では現行の第2世代移動通信システムにおいても可能であったモバイルインターネット接続サービス等についても、より快適かつ大容量で利用することが可能となり、高速パケット通信の進展や、PCカードタイプの携帯電話端末の発展、マルチコール(音声とパケットの同時通信)、添付ファイル付のメール、動画アプリケーション(ストリーミング等)、テレビ電話などの多様なサービスが実現可能となる。このような移動通信システムの普及はめざましく、我が国においては移動電話の普及台数は6000万台を超えるまでに至っている。この移動電話は携帯電話機として普及しており、第2世代においても携帯電話機を端末としてインターネットメールを送受信することや、ウェブコンテンツをインターネット上のサーバから取得することが可能とされている。
移動通信網における移動機とコンテンツを提供するウェブサーバとの間には、応答の向上やネットワークリソースを有効に利用できるように、キャッシングシステムが設けられている。一般的なキャッシングシステムは、ウェブクライアントからウェブサーバへのウェブアクセス要求を中継し、中継することによりウェブサーバから得られたウェブデータをキャッシュとして保持している。そして、既にキャッシュとして保持しているデータに対するアクセス要求がウェブクライアントからあった際には、ウェブサーバにウェブアクセス要求を中継せず、キャッシュされているウェブデータをウェブクライアントに送信することにより、ウェブアクセス要求に応答している。
ところで、一般的に、ウェブにおいて提供されるコンテンツは以下の3種類に分類することができる。
1.静的コンテンツ:ウェブコンテンツ作成者のレイアウトが終わると変更されないコンテンツであり、例えば、文書や図などが記載されているコンテンツとされる。
2.動的コンテンツ:ウェブアクセス要求に応じて、部分的または全体的に生成されるコンテンツである。この動的コンテンツは、ウェブアクセス要求のたびに生成されることからコンテンツの内容が異なる場合が多くされている。例えば、ウェブページの入力画面に探し出したい文字を入力し、検索を実行すると検索結果画面を表示する検索サイトにおいては動的コンテンツが生成されている。
3.ストリーミング:ストリーミングは静的コンテンツや動的コンテンツと異なり、ウェブアクセス要求したコンテンツをダウンロードした後に処理するのではなく、データを受信しながらリアルタイムで処理するコンテンツである。例えば、リアルタイムな音声や動画配信がストリーミングに該当する。
1.静的コンテンツ:ウェブコンテンツ作成者のレイアウトが終わると変更されないコンテンツであり、例えば、文書や図などが記載されているコンテンツとされる。
2.動的コンテンツ:ウェブアクセス要求に応じて、部分的または全体的に生成されるコンテンツである。この動的コンテンツは、ウェブアクセス要求のたびに生成されることからコンテンツの内容が異なる場合が多くされている。例えば、ウェブページの入力画面に探し出したい文字を入力し、検索を実行すると検索結果画面を表示する検索サイトにおいては動的コンテンツが生成されている。
3.ストリーミング:ストリーミングは静的コンテンツや動的コンテンツと異なり、ウェブアクセス要求したコンテンツをダウンロードした後に処理するのではなく、データを受信しながらリアルタイムで処理するコンテンツである。例えば、リアルタイムな音声や動画配信がストリーミングに該当する。
このように、ウェブアクセス要求されたコンテンツが動的コンテンツとされた場合は、要求毎に異なる内容のコンテンツが生成されて応答される場合が多くなる。そこで、従来は、動的コンテンツのウェブアクセス要求であった場合は、コンテンツが動的に生成される可能性があるとしてキャッシュしないようにしている。すると、常時あるいは一定時間は同じコンテンツが生成される動的コンテンツの場合であっても、キャッシュを利用することができないという問題があった。また、ウェブアクセス要求されたコンテンツが全コンテンツの内の一部のコンテンツであった場合は、キャッシングシステムを利用するとデータ矛盾が生じるおそれがあることから、キャッシングシステムを利用しないようにしていた。これらの場合には、キャッシングシステムはウェブサーバにウェブアクセス要求を中継することから、応答が遅くなると共にウェブサーバの処理負担が大きくなってしまうという問題点が生じることになる。
そこで、本発明はウェブアクセス要求されたコンテンツによらず、効率的に使用できるキャッシングシステムを提供することを目的としている。
上記目的を達成するために、本発明のキャッシングシステムは、ウェブクライアントからウェブサーバへのコンテンツ要求を中継し、中継することにより前記ウェブサーバから得られたコンテンツを、前記ウェブクライアントへ前記コンテンツ要求に対する応答として送信すると共にキャッシュメモリに保存するキャッシングシステムであって、前記コンテンツ取得要求を中継する際に、前記ウェブクライアントから要求されたコンテンツが前記キャッシュメモリに保存されている場合には、前記コンテンツ要求を前記ウェブサーバに中継することなく、前記キャッシュメモリから該当するコンテンツを読み出して前記ウェブクライアントへ送信し、前記キャッシュメモリに要求されたコンテンツが保存されていない場合には、前記ウェブサーバに前記コンテンツ要求を中継して前記ウェブサーバから応答されたコンテンツを前記ウェブクライアントへ送信する制御手段を備え、前記制御手段は、前記ウェブサーバから応答された前記コンテンツが動的コンテンツであって、前記応答中にキャッシュ可能指示情報が含まれている場合は、当該コンテンツを前記キャッシュメモリに保存するようにし、前記応答中にキャッシュ可能指示情報が含まれていない場合は、当該コンテンツを前記キャッシュメモリに保存しないと共に、前記ウェブサーバから応答された前記コンテンツのステータスコードが、コンテンツの内の一部とされる部分コンテンツを示している場合は、当該コンテンツを前記キャッシュメモリに保存しないようにしたことを最も主要な特徴としている。
また、上記本発明のキャッシングシステムにおいて、前記制御手段は、前記ウェブクライアントからの前記コンテンツ要求が、コンテンツの内の一部とされる部分コンテンツを取得する部分要求であった際に、前記部分コンテンツを含む全コンテンツが前記キャッシュメモリに保存されている場合には、前記キャッシュメモリから該当する範囲の部分コンテンツを読み出して前記ウェブクライアントへ送信するようにしてもよい。
このような本発明によれば、ウェブサーバから取得したコンテンツが動的コンテンツとされて、応答中にキャッシュ可能指示情報が含まれている場合は、そのコンテンツをキャッシュメモリに保存している。これにより、動的コンテンツであっても支障の生じないコンテンツの場合はキャッシュすることができるようになる。また、ウェブクライアントからのコンテンツ要求が、コンテンツの内の一部とされる部分コンテンツを取得する部分要求であった場合にもキャッシングシステムを利用できるようにしている。従って、キャッシングシステムを有効に利用することができると共に、ネットワークリソースを有効に利用することができるようになる。これにより、ウェブアクセス要求に対する応答を速くしてユーザビリティを向上することができると共に、ウェブサーバの処理負担を軽減することができるようになる。さらに、ウェブサーバから取得したコンテンツのステータスコードが、コンテンツの内の一部とされる部分コンテンツを示している場合は、当該コンテンツを前記キャッシュメモリに保存しないことにより、データ矛盾を生じないようにしている。
本発明の実施の形態のキャッシングシステムを備えるネットワークの概略構成を図1に示す。
図1に示すネットワークは、移動通信網とインターネット等の他のネットワークから構成されており、移動通信網は、例えば携帯電話機とされる移動機(MS)10と無線通信路11として示されている。また、他のネットワークはそのネットワーク上に位置しているウェブサーバ13として示されている。本発明にかかるキャッシングシステム12は、移動通信網とウェブサーバ13との間に配置されており、移動機10からウェブサーバ13へのウェブアクセス要求を中継し、中継することによりウェブサーバ13から得られたウェブデータ(コンテンツ)を、移動機10へ送信すると共にキャッシングシステム12に備えられているキャッシュメモリ12aに保存している。そして、既にキャッシュとしてキャッシュメモリ12aに保持しているコンテンツに対するコンテンツ取得要求が移動機10からあった際には、ウェブサーバ13にコンテンツ取得要求を中継せず、キャッシュされているコンテンツをキャッシュメモリ12aから読み出して移動機10に送信することにより、コンテンツ取得要求に応答している。このような、キャッシングシステム12で実行される処理をキャッシングシステム処理ということにする。なお、ウェブサーバ13は提供するコンテンツ等が記憶されるハードディスク等の記憶手段14を備えている。
図1に示すネットワークは、移動通信網とインターネット等の他のネットワークから構成されており、移動通信網は、例えば携帯電話機とされる移動機(MS)10と無線通信路11として示されている。また、他のネットワークはそのネットワーク上に位置しているウェブサーバ13として示されている。本発明にかかるキャッシングシステム12は、移動通信網とウェブサーバ13との間に配置されており、移動機10からウェブサーバ13へのウェブアクセス要求を中継し、中継することによりウェブサーバ13から得られたウェブデータ(コンテンツ)を、移動機10へ送信すると共にキャッシングシステム12に備えられているキャッシュメモリ12aに保存している。そして、既にキャッシュとしてキャッシュメモリ12aに保持しているコンテンツに対するコンテンツ取得要求が移動機10からあった際には、ウェブサーバ13にコンテンツ取得要求を中継せず、キャッシュされているコンテンツをキャッシュメモリ12aから読み出して移動機10に送信することにより、コンテンツ取得要求に応答している。このような、キャッシングシステム12で実行される処理をキャッシングシステム処理ということにする。なお、ウェブサーバ13は提供するコンテンツ等が記憶されるハードディスク等の記憶手段14を備えている。
なお、移動機10がウェブサーバ13からコンテンツを取得する際のプロトコルとしてはHTTP(Hypertext Transfer Protocol)が用いられる。HTTPは、TCP/IP(Transmission Control Protocol/Internet Protocol)の上位レイヤに属しており、インターネットにおいて、ウェブサーバとウェブクライアントの間でHTML文書や画像・音声、そのほかのマルチメディア・データを送受信するための通信プロトコルである。HTTPはリクエスト(要求::HTTP Request)とレスポンス(応答:HTTP Resoponse)からなる非常に単純なプロトコルであり、リクエストとレスポンスとで通信の単位とされている。例えば、ウェブクライアントが、リクエストとして表示したいHTML文書のURL(Uniform Resource Locators)をリクエストとして送信する。これを受けたウェブサーバは、URLで指定された自分が保存しているHTML文書をレスポンスとしてウェブクライアントに送信する。HTTPでは、この1回のデータ取得のたびにウェブサーバへの接続を行い、データの受信を終えると接続を切断している。なお、ウェブクライアントは、図1に示すネットワークにおいては移動機10となる。
ところで、ウェブサーバ13から提供される移動機10向けを含む現状のウェブコンテンツの多くは、CGI(Common Gateway Interface)を利用したコンテンツが非常に多くされている。CGIは、ウェブブラウザからの要求を受け付けて、所望の外部プログラムを呼び出し、プログラムの実行結果をウェブブラウザに返すための仕組みであり、ウェブブラウザのフォームにデータを入力してもらい、結果を返すといったアプリケーションを作成するための基本的なインターフェースとされている。例えば、ウェブページの入力画面に探し出したい文字を入力し、検索を実行すると検索結果画面を表示する検索サイトや、ユーザが投稿した文字をすぐにウェブに反映し表示する掲示板がCGIを利用している。このように、CGIを利用したコンテンツではコンテンツが部分的あるいは全体的に生成されるため、動的コンテンツが生成されることになる。
また、ウェブサーバ側で、Java(TM)ScriptやVisualBasic (TM)Scriptなどのスクリプト言語や、各種ActiveX(TM)コンポーネントを動作させるためのフレームワークとしてASP(Active Server Pages)がある。ASPとして記述されたウェブページは、まずサーバ側で解釈・実行されるため、参照時の状態によってダイナミックなコンテンツをクライアントに提供することが可能である。このように、ASPを利用したコンテンツでもコンテンツが部分的あるいは全体的に生成されるため、動的コンテンツが生成可能となる。
さらに、HTTP RequestのURI(Uniform Resource Identifier)にパラメータを付加する場合があるが、この場合にはHTTP Responseとして付加されたパラメータに応じて作成された動的コンテンツが返るようになる。なお、URIとはネットワーク上のリソースを特定するためのコンパクトな文字列の仕様であり、URLのスキーム(使用するプロトコルの識別子)を含んでいる。
さらに、HTTP RequestのURI(Uniform Resource Identifier)にパラメータを付加する場合があるが、この場合にはHTTP Responseとして付加されたパラメータに応じて作成された動的コンテンツが返るようになる。なお、URIとはネットワーク上のリソースを特定するためのコンパクトな文字列の仕様であり、URLのスキーム(使用するプロトコルの識別子)を含んでいる。
本発明のキャッシングシステム12では、このようなCGIやASPを利用した動的コンテンツあるいはHTTP Requestにパラメータが付加された場合であっても、ある条件の基でキャッシュメモリ12aにキャッシュするようにして、キャッシングシステム処理を行うようにしている。それは、CGIやASPを利用したコンテンツの中、あるいはHTTP Requestにパラメータが付加された場合にも静的コンテンツが存在することと、天気予報やニュースの動的コンテンツのように一定時間毎に更新されて、その時間内においては同じ内容の動的コンテンツが生成される場合があるからである。このようなCGIやASPを利用する動的コンテンツあるいはHTTP Requestにパラメータが付加された場合は、キャッシュ対象として、ウェブサーバ13からキャッシングシステム12がHTTP Responseを受け取った際に、そのコンテンツをキャッシュメモリ12aに保存するようにしている。
ここで、移動機10からウェブサーバ13へのウェブアクセス要求(HTTP Request)をキャッシングシステム12が中継し、中継することによりウェブサーバ13から得られたコンテンツを、移動機10へウェブアクセス応答(HTTP Response)として送信すると共にキャッシングシステム12に備えられているキャッシュメモリ12aに保存する場合の様子が図2に示されている。キャッシングシステム12がウェブアクセス要求を中継するのは、ウェブアクセス要求に対応するコンテンツがキャッシュメモリ12aに格納されていなかったり、有効期限が過ぎておりキャッシュヒットしない場合である。この場合には、図2に示すようにウェブサーバ13にHTTP Requestを中継し、ウェブサーバ13はHTTP Requestに応じたコンテンツを記憶手段14から読み出しあるいは作成してHTTP Responseとしてキャッシングシステム12に返す。キャッシングシステム12は、取得したHTTP Responseを移動機10へ送信する。この場合、HTTP Responseのヘッダにおいて当該コンテンツがキャッシュ可能に指定されている場合には、そのコンテンツをキャッシュメモリ12aに格納する。
この場合、当該コンテンツが動的コンテンツとされている場合であってもHTTP Requestの内容がキャッシュ可の定義に一致する場合には、対応するコンテンツをキャッシュメモリ12aに格納している。なお、キャッシュ可の定義に一致する動的コンテンツか否かはHTTP RequestにおけるURIから判断しており、URIを比較対象としてキャッシュ可の動的コンテンツを定義している。すなわち、URIにパラメータが付加されている場合はURIとパラメータとの間を区切る文字”?”が挿入されていることから、HTTP Requestに文字”?”が含まれている場合にはキャッシュ可と定義する。また、URIにおけるパス拡張子が”asp”あるいは”cgi”とされている場合にもキャッシュ可と定義する。さらに、URIにおけるパス要素に”cgi”が含まれている場合にもキャッシュ可と定義する。
このような定義を示す図表を図5に「表1 キャッシュ制御パラメータ」として示す。また、URIのデータ構造を一例としてあげたURIを用いて図4に示す。
図5に示すように、#1では制御パラメータcond#cache#charとしてキャッシュ可とするCGIパラメータの文字列を”?”と設定し、CGI部の全文字を比較対象としている。図4に示すURIでは、比較対象に文字”?”が含まれていることから定義内容にマッチしており、ウェブサーバ13からの応答におけるヘッダにおいてキャッシュ可能と指定されているものは当該コンテンツをキャッシュメモリ12aに格納する。
図5に示すように、#1では制御パラメータcond#cache#charとしてキャッシュ可とするCGIパラメータの文字列を”?”と設定し、CGI部の全文字を比較対象としている。図4に示すURIでは、比較対象に文字”?”が含まれていることから定義内容にマッチしており、ウェブサーバ13からの応答におけるヘッダにおいてキャッシュ可能と指定されているものは当該コンテンツをキャッシュメモリ12aに格納する。
また、#2では制御パラメータcond#cache#suffixとしてキャッシュ可とするパス拡張子を”asp:cgi”と設定し、URIのパス拡張子を比較対象としている。図4に示すURIにおいて、パス拡張子は「.」の後に位置しており図4に示すURIでは”cgi”とされて、比較対象のパス拡張子が”cgi”とされていることから定義内容にマッチしており、ウェブサーバ13からの応答におけるヘッダにおいてキャッシュ可能と指定されているものは当該コンテンツをキャッシュメモリ12aに格納する。さらに、#3では制御パラメータcond#cache#compとしてキャッシュ可とするパス要素を”cgi”と設定し、URIのパス要素を比較対象としている。図4に示すURIにおいて、パス要素は「/」が前置する”abc”および”cgi”とされて、そのパス要素プレフィックスはa,ab,abc,e,ef,efgとされている。ここで、比較対象のパス要素に”cgi”が含まれている場合は定義内容にマッチしており、ウェブサーバ13の応答におけるヘッダにおいてキャッシュ可能と指定されているものは当該コンテンツをキャッシュメモリ12aに格納する。また、比較対象のパス要素に”cgi”が含まれていない場合は定義内容にマッチしていないことから、当該コンテンツはキャッシュしないことになるが、その場合でも#1〜#3の定義内容のいずれかにマッチしていればキャッシュ可とされる。
上記したように、移動機10からのウェブアクセス要求(HTTP Request)にパラメータが付加されていたり、パス拡張子がCGIやASPあるいはパス要素がCGIと認められるものであっても、コンテンツを提供するウェブサーバ13からのHTTP ResponseにおけるCashe-Controlヘッダパラメータにおいて指定されるキャッシュ可能の指定が優先約に評価されて、キャッシュ可能の指定がある時に限りキャッシュメモリ12aにキャッシュしている。そして、同一コンテンツに対するコンテンツ取得要求があった際には、キャッシングシステム12におけるキャッシュヒット処理においてキャッシュヒットしたコンテンツをキャッシュメモリ12aから読み出して要求元へ送信する。この場合には、キャッシングシステム12はウェブアクセス要求をウェブサーバ13には中継しない。
この場合の様子を図3に示す。図3において、移動機10からのHTTP Requestを受けたキャッシングシステムは、キャッシュシステム処理を実行してその中のキャッシュヒット処理において、要求されたコンテンツがキャッシュヒットしたか否かを判断する。そして、キャッシュヒットした場合にはキャッシュメモリ12aから当該コンテンツを読み出してHTTP Responseとして移動機10へ送信する。
ところで、ウェブサーバ13からのHTTP ResponseのCashe-Controlヘッダパラメータにおいて有効期間が指定されている場合は、その有効期間をキャッシュ保存期限としてその期限だけキャッシュメモリ12aにキャッシュするようにしている。これにより、ASPやCGIを利用していても静的コンテンツや所定期間毎に更新される動的コンテンツに対応することができる。
ところで、ウェブサーバ13からのHTTP ResponseのCashe-Controlヘッダパラメータにおいて有効期間が指定されている場合は、その有効期間をキャッシュ保存期限としてその期限だけキャッシュメモリ12aにキャッシュするようにしている。これにより、ASPやCGIを利用していても静的コンテンツや所定期間毎に更新される動的コンテンツに対応することができる。
上記したようにキャッシングシステム12では、HTTP ResponseにおけるCashe-Controlヘッダパラメータにおいてキャッシュ可能と指定されていることを条件の一つとして、当該コンテンツをキャッシュメモリ12aにキャッシュしている。これにより、動的に生成されるコンテンツであっても、キャッシュさせたいコンテンツや従来はキャッシングされていなかったコンテンツをキャッシュできるようになる。上記した応答をキャッシングする条件はHTTP1.1 準拠とされている。そこで、HTTP1.1 準拠の応答をキャッシングする条件を示す図表を図6に示す。図6に示すように、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パラメータがある。
図6にはこれらの4つのヘッダパラメータを組み合わせたパターン1〜パターン9の9パターンが示されており、その内のパターン2,4,6,8のCashe-Controlヘッダパラメータがキャッシュ可能指定のパラメータとなっている。キャッシュしたコンテンツは、コンテンツ毎に定められた有効期間だけ有効として使用されるが、パターン2,6においてはCashe-Controlヘッダパラメータによりその有効期間が指定されている。しかし、パターン4,8においてはコンテンツの有効期間が指定されていない。そこで、パターン4においては指定されている最終更新日(Last Modified)を利用して、(Last Modified−Date値)*10%の演算を行い、この演算結果を応答キャッシュの有効期間としている。また、パターン8においては最終更新日も指定されていないため、標準Max-ageを応答キャッシュの有効期間としている。これにより、パターン2,4,6,8に該当するヘッダを有するHTTP Responseのコンテンツをキャッシュメモリ12aにキャッシュした際のキャッシュ有効期間を決定することができる。
なお、キャッシュメモリ12aには、ウェブサーバ13からの応答中におけるステータスコードが正常応答を示している場合にキャッシュするのが好適である。これは、動的コンテンツに限らず静的コンテンツをキャッシュする場合も同様である。
なお、キャッシュメモリ12aには、ウェブサーバ13からの応答中におけるステータスコードが正常応答を示している場合にキャッシュするのが好適である。これは、動的コンテンツに限らず静的コンテンツをキャッシュする場合も同様である。
また、無線を通信手段としている移動機10でのウェブコンテンツ取得時においては、有線における途中切断の発生率より高い途中切断の発生率となってしまう。途中切断が発生した場合には、ウェブコンテンツを取得中であった移動機10は、取得できなかったコンテンツの残りを取得するために部分要求(Byte-Range要求)のコンテンツ要求を行うことになる。従来は、部分要求に対してはデータ矛盾を生じる可能性があるためキャッシュ機能を使用しないようにしているが、本発明のキャッシングシステム12では、キャッシングシステム12で保持しているキャッシュメモリ12aに該当する部分コンテンツを含む全コンテンツが存在する場合に限って、キャッシングシステム処理を行うようにしている。すなわち、該当するコンテンツがキャッシュされている場合は、部分要求のバイトレンジ指定に従って、キャッシュメモリ12aから全コンテンツの内の指定された範囲のコンテンツを読み出して、移動機10へ応答として送信するようにしている。この場合、全コンテンツがキャッシュされている場合に限っているのは、全コンテンツがキャッシュされていないとバイトレンジ指定された範囲のコンテンツと、読み出された部分コンテンツとが一致せず、要求と応答のコンテンツ間に矛盾が生じるおそれがあるからである。
また、部分要求におけるRangeヘッダによる読出し先のバイトレンジ指定は、単一の範囲だけが指定されている場合のみキャッシングシステム処理を行っている。そして、複数の範囲が指定されている場合はキャッシングシステム処理を行わず、常にその部分要求をウェブサーバ13に中継している。ウェブサーバ13は、この部分要求に対応する一部のコンテンツを応答としてキャッシングシステム12に送信し、キャッシングシステム12はこの一部のコンテンツを移動機10へ中継する。これにより、移動機10から部分要求(Byte-Range要求)された範囲の部分コンテンツが移動機10で取得されるようになる。なお、キャッシングシステム12は、ウェブサーバ13から部分要求に対応する部分コンテンツを受け取っても、この部分コンテンツはキャッシュ対象とはせず、キャッシュメモリ12aに保存しないようにしている。
次に、本発明にかかるキャッシングシステム12が実行するキャッシュシステム処理のフローチャートを図7に示す。
図7に示すキャッシュシステム処理は、キャッシングシステム12の電源が投入されたりリセットされたりして初期処理が行われた際にスタートされる。キャッシュシステム処理がスタートされると、ステップS1にて移動機10からコンテンツ要求があるか否かが判断される。ここで、コンテンツ要求がない場合はコンテンツ要求が検出されるまでここで待機される。そして、キャッシングシステム12が例えば移動機10からのHTTP Requestを受け取りコンテンツ要求があったと判断されると、ステップS2に進む。ステップS2では、HTTP RequestのURIに対するキャッシュがキャッシュメモリ12aに存在し、かつキャッシュされたコンテンツの有効期間が切れておらず有効とされているか否かが判断される。
図7に示すキャッシュシステム処理は、キャッシングシステム12の電源が投入されたりリセットされたりして初期処理が行われた際にスタートされる。キャッシュシステム処理がスタートされると、ステップS1にて移動機10からコンテンツ要求があるか否かが判断される。ここで、コンテンツ要求がない場合はコンテンツ要求が検出されるまでここで待機される。そして、キャッシングシステム12が例えば移動機10からのHTTP Requestを受け取りコンテンツ要求があったと判断されると、ステップS2に進む。ステップS2では、HTTP RequestのURIに対するキャッシュがキャッシュメモリ12aに存在し、かつキャッシュされたコンテンツの有効期間が切れておらず有効とされているか否かが判断される。
ここで、HTTP RequestのURIに対するキャッシュがキャッシュメモリ12aに存在し、かつキャッシュされたコンテンツが有効と判断された場合は、ステップS3に進み、HTTP Requestのヘッダにキャッシュ利用不可指示があるか否かが判断される。ここで、HTTP Requestのヘッダにキャッシュ利用不可指示がないと判断された場合は、ステップS4に進みHTTP RequestのURIに基づいてHTTP Requestがキャッシュ可能な動的コンテンツの要求か否かが判断される。この判断は、図5に示す表1に示す比較対象を比較することによりキャッシュの可否を判断している。ここで、HTTP Requestがキャッシュ可能な動的コンテンツの要求と判断された場合は、ステップS5に進みHTTP Requestのヘッダに部分要求のバイトレンジ指定(Range指定)があるか否かが判断される。そして、HTTP Requestのヘッダに部分要求のバイトレンジ指定があるとステップS5にて判断された場合は、ステップS6に進み部分要求キャッシュヒット処理が実行される。部分要求キャッシュヒット処理では、キャッシュメモリ12aに該当する部分コンテンツを含む全コンテンツが存在し、かつキャッシュが有効と判断された場合にキャッシュヒットしたと判断する。
また、ステップS5においてHTTP Requestのヘッダに部分要求のバイトレンジ指定がないと判断された場合は、ステップS9に進み通常キャッシュヒット処理が実行される。通常キャッシュヒット処理では、キャッシュメモリ12aに該当するコンテンツが存在し、かつキャッシュが有効と判断された場合にキャッシュヒットしたと判断する。ステップS6あるいはステップS9の処理が終了するとステップS7に進み、キャッシュヒットしたか否かが判断される。ここで、ステップS5あるいはステップS9においてキャッシュヒットしたと判断されている場合は、ステップS8においてキャッシュメモリ12aより該当するコンテンツが読み出されてコンテンツ要求した移動機へ送信される。
上記ステップS2にてHTTP RequestのURIに対するキャッシュがキャッシュメモリ12aに存在しないか、存在してもキャッシュされたコンテンツが有効でないと判断された場合は、ステップS10へ進みウェブサーバ13へコンテンツ要求が中継される。また、上記ステップS3にてHTTP Requestのヘッダにキャッシュ利用不可指示があると判断された場合も、ステップS10へ進みウェブサーバ13へコンテンツ要求が中継される。さらに、上記ステップS4にてHTTP Requestがキャッシュ可能な動的コンテンツの要求ではないと判断された場合も、ステップS10へ進みウェブサーバ13へコンテンツ要求が中継される。さらにまた、上記ステップS7にてキャッシュヒットしなかったと判断された場合も、ステップS10へ進みウェブサーバ13へコンテンツ要求が中継される。そして、ステップS10の処理が終了すると、ステップS11にてウェブサーバ13から取得したコンテンツをコンテンツ要求した移動機へ送信する。次いで、ステップS12にて取得したコンテンツをキャッシュする後述するキャッシング処理が行われる。そして、ステップS8あるいはステップS12の処理が終了すると、ステップS1に戻りコンテンツ要求が検出される毎にステップS1ないしステップS12の処理が繰り返し実行されるようになる。
次に、キャッシュシステム処理のステップS12にて実行されるキャッシング処理のフローチャートを図8に示す。
図8に示すキャッシング処理がスタートすると、ステップS20にてGET要求に対する応答が正常応答か否かが判断される。ここで、正常応答と判断された場合はステップS21へ進み、応答のステータスコードがパーシャルコンテンツを示しているか否かが判断される。通常コンテンツの正常応答のステータスコードは「200」とされ、パーシャルコンテンツの正常応答のステータスコードは「206」とされる。そこで、ステータスコードが「200」と判断された場合はステップS22に進み、HTTP Requestのヘッダにキャッシュ利用不可指示がないか否かが判断される。この場合、HTTP Requestのヘッダにキャッシュ利用不可指示がないと判断された場合はステップS23へ進み、ウェブサーバ13からのHTTP Responseのヘッダにキャッシュ可能指示があるか否かが判断される。この判断は、図6に示す表2に示すキャッシュ可能を指定するCashe-Controlヘッダパラメータを見て判断する。
図8に示すキャッシング処理がスタートすると、ステップS20にてGET要求に対する応答が正常応答か否かが判断される。ここで、正常応答と判断された場合はステップS21へ進み、応答のステータスコードがパーシャルコンテンツを示しているか否かが判断される。通常コンテンツの正常応答のステータスコードは「200」とされ、パーシャルコンテンツの正常応答のステータスコードは「206」とされる。そこで、ステータスコードが「200」と判断された場合はステップS22に進み、HTTP Requestのヘッダにキャッシュ利用不可指示がないか否かが判断される。この場合、HTTP Requestのヘッダにキャッシュ利用不可指示がないと判断された場合はステップS23へ進み、ウェブサーバ13からのHTTP Responseのヘッダにキャッシュ可能指示があるか否かが判断される。この判断は、図6に示す表2に示すキャッシュ可能を指定するCashe-Controlヘッダパラメータを見て判断する。
ここで、HTTP Responseのヘッダにキャッシュ可能指示があると判断された場合はステップS24に進み、HTTP Requestがキャッシュ可能な動的コンテンツの要求か否かが判断される。この判断は、HTTP RequestのURIにおける図5に示す表1に示す比較対象を比較することによりキャッシュ可能な動的コンテンツか否かを判断している。そして、HTTP Requestがキャッシュ可能な動的コンテンツの要求と判断された場合はステップS25へ進み動的コンテンツのキャッシュ判定処理が行われる。この動的コンテンツのキャッシュ判定処理では、図6に示す表2に示すHTTP Responseにおける4つのヘッダパラメータからキャッシュ可能か否かが判定される。ここでは、表2に示すパターン2,4,6,8に一致するヘッダパラメータを有するHTTP Responseについては、当該コンテンツをキャッシュ可能と判定する。また、ステップS24にてHTTP Requestがキャッシュ可能な動的コンテンツの要求ではないと判断された場合は、ステップS26へ進み通常コンテンツのキャッシュ判定処理が行われる。この通常コンテンツのキャッシュ判定処理においても図6に示す表2に示すHTTP Responseにおける4つのヘッダパラメータからキャッシュ可能か否かが判定される。ここでは、表2に示す応答キャッシュの欄に「○」が付されているパターン2,3,4,6,7,8に一致するヘッダパラメータを有するHTTP Responseについては、当該コンテンツをキャッシュ可能と判定する。
ステップS25あるいはステップS26の処理が終了するとステップS27へ進み、ウェブサーバ13から取得したコンテンツがキャッシュ可能か否かが判断される。ここで、ステップS25あるいはステップS26の処理においてキャッシュ可能と判定されている場合は、ステップS28へ進み取得したコンテンツがキャッシュメモリ12aに蓄積される。次いで、キャッシュシステム処理へリターンされる。また、上記ステップS20にて正常応答と判断されない場合、上記ステップS21にてステータスコードが「200」と判断されない場合、上記ステップS22にてHTTP Requestのヘッダにキャッシュ利用不可指示があると判断された場合、上記ステップS23にてHTTP Responseのヘッダにキャッシュ可能指示がないと判断された場合、および、上記ステップS27にてキャッシュ可能でないと判定された場合は、そのままキャッシュシステム処理へリターンされ、取得されたコンテンツはキャッシュされない。
なお、以上の説明では移動通信網における移動機10がウェブサーバ13からコンテンツを取得する場合のキャッシングシステム12を説明したが、本発明のキャッシングシステム12は、これに限らずHTTP通信一般に適用することができる。
本発明は以上説明したように、ウェブサーバから取得したコンテンツが動的コンテンツとされて、応答中にキャッシュ可能指示情報が含まれている場合は、そのコンテンツをキャッシュメモリに保存している。これにより、動的コンテンツであっても支障の生じないコンテンツの場合はキャッシュすることができるようになる。また、ウェブクライアントからのコンテンツ要求が、コンテンツの内の一部とされる部分コンテンツを取得する部分要求であった場合にもキャッシングシステムを利用できるようにしている。従って、キャッシングシステムを有効に利用することができると共に、ネットワークリソースを有効に利用することができるようになる。これにより、ウェブアクセス要求に対する応答を速くしてユーザビリティを向上することができると共に、ウェブサーバの処理負担を軽減することができるようになる。
さらに、キャッシュメモリに保存する条件として応答の正常応答を加えると、キャッシュの信頼性を向上することができる。さらに加えて、コンテンツ要求にパラメータが付加されていること、動的コンテンツを示すパス拡張子あるいはパス要素が含まれていることを条件としても良い。さらにまた、ウェブサーバから取得したコンテンツのステータスコードが、コンテンツの内の一部とされる部分コンテンツを示している場合は、当該コンテンツを前記キャッシュメモリに保存しないことにより、データ矛盾を生じないようにしている。さらにまた、キャッシュ保存期限情報が通知されている場合は、そのキャッシュ保存期限情報で示される期限だけキャッシュすることにより、所定期間毎に更新される動的コンテンツであっても、支障なくキャッシングシステムを利用することができるようになる。
10 移動機、11 無線通信路、12 キャッシングシステム、12a キャッシュメモリ、13 ウェブサーバ、14 記憶手段
Claims (2)
- ウェブクライアントからウェブサーバへのコンテンツ要求を中継し、中継することにより前記ウェブサーバから得られたコンテンツを、前記ウェブクライアントへ前記コンテンツ要求に対する応答として送信すると共にキャッシュメモリに保存するキャッシングシステムであって、
前記コンテンツ取得要求を中継する際に、前記ウェブクライアントから要求されたコンテンツが前記キャッシュメモリに保存されている場合には、前記コンテンツ要求を前記ウェブサーバに中継することなく、前記キャッシュメモリから該当するコンテンツを読み出して前記ウェブクライアントへ送信し、前記キャッシュメモリに要求されたコンテンツが保存されていない場合には、前記ウェブサーバに前記コンテンツ要求を中継して前記ウェブサーバから応答されたコンテンツを前記ウェブクライアントへ送信する制御手段を備え、
前記制御手段は、前記ウェブサーバから応答された前記コンテンツが動的コンテンツであって、前記応答中にキャッシュ可能指示情報が含まれている場合は、当該コンテンツを前記キャッシュメモリに保存するようにし、前記応答中にキャッシュ可能指示情報が含まれていない場合は、当該コンテンツを前記キャッシュメモリに保存しないと共に、前記ウェブサーバから応答された前記コンテンツのステータスコードが、コンテンツの内の一部とされる部分コンテンツを示している場合は、当該コンテンツを前記キャッシュメモリに保存しないようにしたことを特徴とするキャッシングシステム。 - ウェブクライアントからウェブサーバへのコンテンツ要求を中継し、中継することにより前記ウェブサーバから得られたコンテンツを、前記ウェブクライアントへ前記コンテンツ要求に対する応答として送信すると共にキャッシュメモリに保存するキャッシングシステムであって、
前記コンテンツ取得要求を中継する際に、前記ウェブクライアントから要求されたコンテンツが前記キャッシュメモリに保存されている場合には、前記コンテンツ要求を前記ウェブサーバに中継することなく、前記キャッシュメモリから該当するコンテンツを読み出して前記ウェブクライアントへ送信し、前記キャッシュメモリに要求されたコンテンツが保存されていない場合には、前記ウェブサーバに前記コンテンツ要求を中継して前記ウェブサーバから応答されたコンテンツを前記ウェブクライアントへ送信する制御手段を備え、
前記制御手段は、前記ウェブクライアントからの前記コンテンツ要求が、コンテンツの内の一部とされる部分コンテンツを取得する部分要求であった際に、前記部分コンテンツを含む全コンテンツが前記キャッシュメモリに保存されている場合には、前記キャッシュメモリから該当する範囲の部分コンテンツを読み出して前記ウェブクライアントへ送信するようにしたことを特徴とするキャッシングシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008290491A JP2009076093A (ja) | 2008-11-13 | 2008-11-13 | キャッシングシステム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008290491A JP2009076093A (ja) | 2008-11-13 | 2008-11-13 | キャッシングシステム |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003182200A Division JP4744792B2 (ja) | 2003-06-26 | 2003-06-26 | キャッシングシステム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009076093A true JP2009076093A (ja) | 2009-04-09 |
Family
ID=40610929
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008290491A Pending JP2009076093A (ja) | 2008-11-13 | 2008-11-13 | キャッシングシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2009076093A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8402049B2 (en) | 2010-05-27 | 2013-03-19 | International Business Machines Corporation | Metadata cache management |
| WO2013132643A1 (ja) * | 2012-03-09 | 2013-09-12 | 株式会社Murakumo | 情報処理装置、方法およびプログラム |
| KR20180107777A (ko) * | 2016-02-02 | 2018-10-02 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 리소스 획득 방법 및 관련 장치 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001014209A (ja) * | 1999-06-25 | 2001-01-19 | Sharp Corp | 情報中継装置および情報中継方法、ならびに情報中継プログラムを記録したコンピュータ読み取り可能な記録媒体 |
-
2008
- 2008-11-13 JP JP2008290491A patent/JP2009076093A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001014209A (ja) * | 1999-06-25 | 2001-01-19 | Sharp Corp | 情報中継装置および情報中継方法、ならびに情報中継プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8402049B2 (en) | 2010-05-27 | 2013-03-19 | International Business Machines Corporation | Metadata cache management |
| US8914407B2 (en) | 2010-05-27 | 2014-12-16 | International Business Machines Corporation | Metadata cache management |
| US9996464B2 (en) | 2010-05-27 | 2018-06-12 | International Business Machines Corporation | Metadata cache management |
| WO2013132643A1 (ja) * | 2012-03-09 | 2013-09-12 | 株式会社Murakumo | 情報処理装置、方法およびプログラム |
| KR20180107777A (ko) * | 2016-02-02 | 2018-10-02 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 리소스 획득 방법 및 관련 장치 |
| JP2019506696A (ja) * | 2016-02-02 | 2019-03-07 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 資源取得方法および関係した装置 |
| US10880785B2 (en) | 2016-02-02 | 2020-12-29 | Huawei Technologies Co., Ltd. | Resource obtaining method and related device |
| KR102223260B1 (ko) | 2016-02-02 | 2021-03-04 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 리소스 획득 방법 및 관련 장치 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4744792B2 (ja) | キャッシングシステム | |
| US6907429B2 (en) | Satellite-based internet access system with remote prefetching of inline objects of web pages | |
| JP5481481B2 (ja) | ラウンドトリップ低減および体験の質の改善のためのクロス・レイヤ・パイプライン処理最適化 | |
| US10897450B2 (en) | Communication method and communication apparatus | |
| US20060168129A1 (en) | System and method for enhancing network browsing speed by setting a proxy server on a handheld device | |
| CN101626385B (zh) | 媒体服务方法及系统 | |
| JP2004523180A (ja) | ビーコンネットワーク | |
| EP1415232A2 (en) | A system and a method for accelerating communication of tcp/ip based content | |
| JP2009140290A (ja) | コンテンツ中継装置、コンテンツ中継システム及びコンテンツ中継方法並びにプログラム | |
| EP2083359B1 (en) | System and method for enhancing network-browsing speed by setting a proxy server on a handheld device | |
| JP2009076093A (ja) | キャッシングシステム | |
| EP1202524B1 (en) | Object filtering method and client device using the same | |
| EP2850809B1 (en) | Providing data to a network terminal | |
| JP3658610B2 (ja) | 無線電話によるメッセージ通信方法及び通信システム | |
| CN103561068A (zh) | 一种提高网页浏览速度的方法及装置 | |
| JP2005327150A (ja) | 情報配信システムおよび情報配信方法 | |
| JP3844924B2 (ja) | ファイル転送方法及びファイル転送システム | |
| US20070185971A1 (en) | Method and system for accelerating data communication that is using multipart | |
| JP4908671B2 (ja) | 画像通信装置とその画像管理方法 | |
| KR100925644B1 (ko) | 오브젝트 전송 시스템 및 그 제어방법 | |
| JP2005267015A (ja) | サーバ装置 | |
| KR20030037994A (ko) | 이동통신 단말기에서의 무선인터넷 데이터 저장방법 | |
| JP2001333062A (ja) | Webページ共有システム | |
| JP2005108057A (ja) | コンテンツ取得システム、ブラウザ装置及びそれに用いるコンテンツダウンロード方法並びにそのプログラム | |
| JP2005339149A (ja) | データ処理装置、データ処理方法およびデータ処理プログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100316 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100510 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100914 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110208 |