(57)【要約】【課題】ネットワークのアイドル時間と、余ったネットワーク帯域とを有効に利用することができ、また、ユーザからの指示に迅速に応答することができるコンテンツ先読み装置、コンテンツ先読み方法およびプログラムを提供することを目的とするものである。【解決手段】キャッシュメモリに登録されているコンテンツと、現在参照しているコンテンツとを比較する比較手段と、帯域を確保する順番の優先度を計算する優先度計算手段と、上記計算された優先度と、コンテンツが要求する帯域とを参照し、ユーザに残された帯域を確保する帯域確保手段と、上記確保された帯域を使用し、コンテンツを取得するコンテンツ取得手段とを有する。【選択図】　図１
2004021769.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリに登録されているコンテンツと、現在参照しているコンテンツとを比較する比較手段と；
帯域を確保する順番の優先度を計算する優先度計算手段と；
上記計算された優先度と、コンテンツが要求する帯域とを参照し、ユーザに残された帯域を確保する帯域確保手段と；
上記確保された帯域を使用し、コンテンツを取得するコンテンツ取得手段と；
を有することを特徴とするコンテンツ先読み装置。
【請求項２】
請求項１において、
上記優先度計算手段は、ユーザが現在参照しているコンテンツ画面上でのマウスポインタ位置、または、テキストブラウザにおけるフォーカス部分の位置を取得し、画面に表示されているオブジェクトの位置と、上記取得したマウスポインタまたはフォーカス位置との間のリンク数と、過去のアクセス回数と、コンテンツの属性とを加味して、上記優先度を決定する手段であることを特徴とするコンテンツ先読み装置。
【請求項３】
請求項１または請求項２において、
上記優先度計算手段は、ユーザが現在閲覧中か否かを示すカレントフラグを設定し、この設定されたカレントフラグに基づいて、優先度を決定する手段であることを特徴とするコンテンツ先読み装置。
【請求項４】
請求項１〜請求項３のいずれか１項において、
上記帯域確保手段は、上記優先度とコンテンツの取得状況とに基づいて、上記ユーザに残された帯域幅を確保する手段であることを特徴とするコンテンツ先読み装置。
【請求項５】
請求項１〜請求項４のいずれか１項において、
上記帯域確保手段は、予め設定された最大読み数ＵＲＬのリンク数を超えたエントリには、帯域を割り振らない手段であることを特徴とするコンテンツ先読み装置。
【請求項６】
請求項１〜請求項５のいずれか１項において、
上記帯域確保手段は、コンテンツの取得状況に応じて、キャッシュフラグを設定し、全て取得済みかつ有効期限終了以前のエントリには、帯域を割り振らない手段であることを特徴とするコンテンツ先読み装置。
【請求項７】
請求項１〜請求項６のいずれか１項において、
トラヒックがアイドリング時に、コンテンツサーバに問い合わせ、クライアントのキャッシュテーブルにおけるタイプスタンプと、コンテンツサーバ上のコンテンツのタイムスタンプとが異なっていれば、上記クライアントのキャッシュテーブルの上記キャッシュフラグを更新するキャッシュフラグ更新手段を有することを特徴とするコンテンツ先読み装置。
【請求項８】
請求項１〜請求項７のいずれか１項において、
先読みコンテンツを順次、取得する先読みコンテンツ取得手段を有することを特徴とするコンテンツ先読み装置。
【請求項９】
請求項１〜請求項７のいずれか１項において、
上記先読みコンテンツを、同時並列で取得することを特徴とするコンテンツ先読み装置。
【請求項１０】
請求項１〜請求項７、請求項９のいずれか１項において、
上記コンテンツが必要とする帯域を、上記優先度の高い順に確保し、しかも、帯域を確保することができなくなるまで確保することを特徴とするコンテンツ先読み装置。
【請求項１１】
請求項１〜請求項７、請求項９のいずれか１項において、上記優先度に合わせて予め決められている帯域を、ネットワークの帯域が確保できなくなるまで確保することを特徴とするコンテンツ先読み装置。
【請求項１２】
請求項１〜請求項１１のいずれか１項において、
ユーザが所望するコンテンツを変更すると、先読みによってキャッシュされているデータを読み出すと同時に、コンテンツサーバにキャッシュされていない部分からコンテンツ取得のリクエストを送信し、上記先読みによるキャッシュサイズは、実際にコンテンツデータが到着するまでのつなぎとして必要なデータサイズであり、しかもコンテンツサーバとのレスポンスタイムを用い、決定することを特徴とするコンテンツ先読み装置。
【請求項１３】
請求項１〜請求項１２のいずれか１項において、
先読み動作が許可されている場合においてのみ、上記リンク先ページを先読みすることを特徴とするコンテンツ先読み装置。
【請求項１４】
キャッシュメモリに登録されているコンテンツと現在参照しているコンテンツとを比較する比較段階と；
帯域を確保する順番の優先度を計算する優先度計算段階と；
上記計算された優先度と、コンテンツが要求する帯域とを参照し、ユーザに残された帯域を確保する帯域確保段階と；
上記確保された帯域を使用し、コンテンツを取得するコンテンツ取得段階と；
を有することを特徴とするコンテンツ先読み方法。
【請求項１５】
請求項１４において、
上記優先度計算段階は、ユーザが現在参照しているコンテンツ画面上でのマウスポインタ位置、または、テキストブラウザにおけるフォーカス部分の位置を取得し、画面に表示されているオブジェクトの位置と、上記取得したマウスポインタまたはフォーカス位置との間のリンク数と、過去のアクセス回数と、コンテンツの属性とを加味して、上記優先度を決定する段階であることを特徴とするコンテンツ先読み方法。
【請求項１６】
請求項１４または請求項１５において、
上記優先度計算段階は、ユーザが現在閲覧中か否かを示すカレントフラグを設定し、この設定されたカレントフラグに基づいて、優先度を決定する段階であることを特徴とするコンテンツ先読み方法。
【請求項１７】
請求項１４〜請求項１６のいずれか１項において、
上記帯域確保段階は、上記優先度とコンテンツの取得状況とに基づいて、上記ユーザに残された帯域幅を確保する段階であることを特徴とするコンテンツ先読み方法。
【請求項１８】
キャッシュメモリに登録されているコンテンツと現在参照しているコンテンツとを比較する比較手順と；
帯域を確保する順番の優先度を計算する優先度計算手順と；
上記計算された優先度と、コンテンツが要求する帯域とを参照し、ユーザに残された帯域を確保する帯域確保手順と；
上記確保された帯域を使用し、コンテンツを取得するコンテンツ取得手順と；
をコンピュータに実行させるプログラム。
【請求項１９】
請求項１８において、
上記優先度計算手順は、ユーザが現在参照しているコンテンツ画面上でのマウスポインタ位置、または、テキストブラウザにおけるフォーカス部分の位置を取得し、画面に表示されているオブジェクトの位置と、上記取得したマウスポインタまたはフォーカス位置との間のリンク数と、過去のアクセス回数と、コンテンツの属性とを加味して、上記優先度を決定する手順であることを特徴とするプログラム。
【請求項２０】
請求項１８または請求項１９において、
上記優先度計算手順は、ユーザが現在閲覧中か否かを示すカレントフラグを設定し、この設定されたカレントフラグに基づいて、優先度を決定する手順であることを特徴とするプログラムプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上で、クライアントが、サーバからコンテンツを閲覧する方法に係り、特に、ＷＷＷ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ）サーバ等が提供するストリーム型コンテンツをクライアントが閲覧するコンテンツ先読み装置、コンテンツ先読み方法およびプログラムに関する。
【０００２】
【従来の技術】
近年、インターネットが爆発的に普及している。インターネットにおいては、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）プロトコルのみを規定し、送受信されるパケットそのものの中身について規定されていないので、文字、静止画データ（いわゆるコンテンツ）等を送受信することができる。
【０００３】
それらのコンテンツを統一的に送受信することができるプロトコルとして、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）があり、殆どのインターネットユーザは、ＨＴＴＰを用いて情報を入出力することができるブラウザツールを用い、様々なコンテンツを閲覧している。
【０００４】
ユーザ数の増加とともに、ユーザがコンテンツを取得するまでの時間が、回線容量の関係から、増加する傾向が見受けられる。
【０００５】
ところで、一度見たコンテンツを自分のパソコンまたは、ネットワーク上の装置（ｐｒｏｘｙサーバ）でキャッシュし、同じコンテンツを再び見る場合、ネットワーク側からコンテンツを取るのではなく、キャッシュの中からコンテンツを取り出すようにすれば、コンテンツ表示までの時間が短縮され、ネットワーク上のトラフィックやＨＴＴＰサーバ装置の負荷を軽減することができる。
【０００６】
しかし、キャッシュする場合、キャッシュされているコンテンツが実際には更新されていても、古いコンテンツが表示されるという短所があり、また、過去にキャッシュしたコンテンツに対しては効果を発揮するが、これから見ようとするコンテンツに対しては、全く効果を発揮しないという短所がある。
【０００７】
上記短所を克服するには、特開平１１−２１９３１３号公報に開示されているように、ページの構文を解析し、この解析されたページとリンクされているページとを先読みし、キャッシュに蓄積するコンテンツ先読み方法が知られている。
【０００８】
しかし、上記従来方法では、今コンテンツのどの部分に、ユーザが着目しているかについて、クライアントが知ることができないので、今までのコンテンツアクセス頻度に応じて、ダウンロードの優先度を決めている。したがって、初めて訪れるサイトについては、有効な先読みを実行することができないという問題がある。
【０００９】
また、上記従来方法では、ホームページ等のいわゆるダウンロード型のコンテンツを念頭に考えられ、ネット放送等のストリーム型のコンテンツについては、効果を発揮することはできないという問題がある。
【００１０】
つまり、ユーザが今から見ようとしているコンテンツを取得する動作が完了しない状態で、リンクされているコンテンツを、先読みで取得しようとすると、現在取得しようとしているコンテンツ用のネットワーク帯域を使うので、取得までの時間が増大する。したがって、現在取得しようとしているコンテンツの取得が完了するまで、リンクされているコンテンツを先読みすることができない。
【００１１】
ストリーム型のコンテンツを再生する場合、サーバからのコンテンツを、ユーザ端末がバッファリングしながら表示・再生するので、再生が完了するまで、サーバとの接続を継続する必要がある。ユーザが、所定のコンテンツを表示・再生しているときに、他のコンテンツにアクセスする場合等には、他のコンテンツをアクセスするためのアクションを起こした後に、現在表示・再生しているコンテンツのサーバへのコネクションを切断し、上記他のコンテンツサーバに接続するという形態になり、従来方法では先読みを実行することができないという問題がある。
【００１２】
さらに、上記従来方法では、ページの解析に基づいて、先読み対象としてのリンクコンテンツを選択する場合、過去のアクセス履歴を用いる方法が知られている。
【００１３】
しかし、この過去のアクセス履歴を用いる方法だけでは、新たなコンテンツにアクセスする場合に、その新たなコンテンツが過去の履歴に存在していないので、先読みが働かず、先読み対象コンテンツに比べ、アクセス速度が遅くなるという欠点がある。
【００１４】
【発明が解決しようとする課題】
上記のように、従来のコンテンツ先読み方法では、ブラウザを利用したクライアントは、ユーザが閲覧したいページのダウンロード終了後に先読み要求を発しているので、ストリーム型コンテンツでは有効に動作しないという問題がある。
【００１５】
また、従来のコンテンツ先読み方法では、過去のアクセス履歴を用いているので、全く新規に閲覧しようとするコンテンツについては、先読みを実行することができないという問題がある。
【００１６】
本発明は、ネットワークのアイドル時間と、余ったネットワーク帯域とを有効に利用することができ、また、ユーザからの指示に迅速に応答することができるコンテンツ先読み装置、コンテンツ先読み方法およびプログラムを提供することを目的とするものである。
【００１７】
【課題を解決するための手段】
本発明は、ユーザの指示によって表示したページからリンクが張られているページを先読みするコンテンツ先読み装置、コンテンツ先読み方法およびプログラムである。
【００１８】
【発明の実施の形態および実施例】
図１は、本発明の一実施例であるコンテンツ先読み装置１００を示すブロック図である。
【００１９】
コンテンツ先読み装置１００は、キャッシュデータ蓄積部１０と、キャッシュデータ蓄積制御部２０と、キャッシュテーブル３０と、キャッシュテーブル制御部４０と、構造化文リンク解析部５０と、画面表示オブジェクト・ポインタ間距離計算部６０と、優先度計算部７０と、ポインタ位置取得部８０と、画面表示制御部９１と、下り帯域予約制御部９２と、入力、表示および出力装置９３とを有する。
【００２０】
キャッシュデータ蓄積部１０は、ＵＲＬと、上記ＵＲＬのコンテンツと、最終参照日時とを蓄積する。
【００２１】
キャッシュデータ蓄積制御部２０は、キャッシュテーブル制御部４０からの指示に基づいて、キャッシュデータ蓄積部１０にデータを登録し、削除する機能を有する。
【００２２】
図２は、キャッシュテーブル３０の一例を示す図である。
【００２３】
キャッシュテーブル３０は、ＵＲＬと、そのＵＲＬへのアクセス回数と、ポインタの距離と、属性と、キャッシュフラグと、タイムスタンプと、有効期限と、リンス数と、優先度と、帯域幅と、カレントフラグとを有する。
【００２４】
なお、上記「ポインタの距離」は、当該ＵＲＬを表すオブジェクトとマウスポインタとの距離であり、または、テキストブラウザであれば、当該ＵＲＬを表すオブジェクトと、フォーカスされている部分との距離である。
【００２５】
キャッシュテーブル制御部４０は、構造化文リンク解析部５０からの情報に応じて、リンク先名や属性を登録し、アクセス回数やキャッシュフラグを更新する機能を有する。また、キャッシュテーブル制御部４０は、画面表示オブジェクト・ポインタ間距離計算部６０からの情報に応じて、キャッシュテーブル３０に、ポインタの距離を登録する機能を有する。さらに、キャッシュテーブル制御部４０は、優先度計算部７０からの指示に応じて、キャッシュテーブル３０に優先度を書き込む準備を行う。
【００２６】
図３は、構造化文リンク解析部５０の動作を示すフローチャートである。
【００２７】
構造化文リンク解析部５０は、受信データが存在する場合（Ｓ１）、受信データ中の構造化文の中のリンク先の抜き出しを行い（Ｓ２）、キャッシュテーブル３０内にエントリが存在しない場合（Ｓ３）、リンク先をキャッシュテーブル３０に登録し、アクセス回数とキャッシュフラグとを更新するように、キャッシュテーブル制御部４０に指示する（Ｓ４）。また、構造化文リンク解析部５０は、コンテンツデータのヘッダに書かれている属性や、ページの有効期限、さらには、コンテンツの要求する帯域幅を抜き出す。
【００２８】
優先度計算部７０は、キャッシュテーブル３０のアクセス回数と、ポインタの距離と、属性とに基づいて、帯域を確保する順番の優先度を計算し、キャッシュテーブル３０内の優先度のデータを決定し、キャッシュテーブル制御部４０に書き込むように指示する機能を有する。
【００２９】
ポインタ位置取得部８０は、画面上で現在、表示されているポインタの位置を取得し、画面表示オブジェクト・ポインタ間距離計算部６０へ、ポインタの位置に関するデータを提供する。
【００３０】
図７は、上記実施例において、コンテンツ先読み動作を示すシーケンス図である。
【００３１】
図７では、ネットラジオと呼ばれるネットワークを用いた放送局のコンテンツを、表示・再生する場合について、クライアントとサーバとの間におけるデータの送受信を示してある。
【００３２】
まず、ストリームコンテンツの場所を記したポータルサイトを見るためのブラウザを起動したときに、まず、ポータルサイトのデータを取得するために、ネットワークにリクエストする（Ｓ１１）。
【００３３】
リクエストに対するレスポンスの中に書かれている構造化文から、構造化文リンク解析部５０が取得したページに書かれているリンク先を、キャッシュテーブル３０に登録する（Ｓ１２）。
【００３４】
また、属性・ページの有効期限・要求する帯域幅の情報が記載されていれば、これらの情報をもキャッシュテーブル３０に登録する。
【００３５】
キャッシュテーブル３０のポインタの距離要素は、画面に表示されているオブジェクトに対する現在のマウスポインタの置かれている位置に基づいて求められ、また、テキストブラウザの場合、フォーカス部分の置かれている位置に基づいて、求められる。
【００３６】
図４は、上記実施例におけるコンテンツ表示画面の表示例を示す図である。
【００３７】
簡単のためテキストブラウザを例とって、説明する。
【００３８】
図４中、網掛部分が、今現在におけるフォーカス位置を示す部分である。１行の距離を１０とすると、オブジェクトｈｔｔｐ：／／Ｃから、オブジェクトｈｔｔｐ：／／Ａまでの距離は２０であり、オブジェクトｈｔｔｐ：／／Ｂまでの距離は１０である。
【００３９】
図５は、上記実施例において、リンク間の距離を計算する例を示す図である。
【００４０】
図５に示すように、それぞれのリンクをたどり、予めユーザが指定したリンクの最大数（深さ）に達するまで、または、最大同時接続数までを、先読みの対象にする場合にも、上記と同様に考える。
【００４１】
つまり、たとえばリンク間の距離を１０とすると、オブジェクトｈｔｔｐ：／／Ｃからｈｔｔｐ：／／ＡＡまでの距離は、ｈｔｔｐ：／／Ｃとｈｔｔｐ：／／Ａとの距離である２０に、リンク間の距離である１０を加えた距離である３０である。また、ｈｔｔｐ：／／Ｃとｈｔｔｐ：／／ＣＡとの距離は１０である。これらの距離を、キャッシュテーブル３０のポインタの距離要素に書き込む。
【００４２】
次に、現在、フォーカスが置かれている場所と、リンク先アドレスとの距離を計算する。この距離計算は、上記画面表示オブジェクト・ポインタ間距離計算部６０によって得られた空間的距離要素に加え、嗜好的距離によって決定される。
【００４３】
上記「嗜好的距離」は、今までのアクセス頻度や、コンテンツのジャンル・属性によって決定される距離である。また、図２に示すキャッシュテーブル３０では、音楽の嗜好で分類するならば、ロック、ポップス、クラシックという属性に応じて、嗜好的距離を考えることができる。この嗜好で分類するために用いる属性を、構造化文リンク解析部５０が、コンテンツヘッダから取得する。
【００４４】
もちろん、最終的なコンテンツにたどり着くまでのリンクの過程において、所定の属性を示すリンクのグループに入ることによって、今取得しようとしているデータの属性を知ることもできる。つまり、データが階層化され、ジャンル毎にグループ分けされているので、各コンテンツにジャンルデータが入っていなかったとしても、ジャンルを知ることができる。
【００４５】
また、実際に訪れたＵＲＬについては、そのアクセス回数を、キャッシュテーブル３０に記録する。
【００４６】
上記ポインタの距離と、嗜好的距離と、アクセス回数とに基づいて、上記実施例における帯域を確保する順番の優先度を計算し、この計算の結果、決定された値は、キャッシュテーブル制御部４０を通じて、キャッシュテーブル３０に登録される。
【００４７】
優先度を決定する距離尺度Ｌ（距離尺度Ｌの値が小さい程、優先度が高い）は、たとえば、
Ｌ＝ｆ（ｘ）＋ｇ（ｙ）＋ｈ（ｚ）
で表すことができる。
【００４８】
ここで、ｘは、アクセス回数であり、ｙは、ポインタの距離であり、ｚは、属性であり、ｆ（ｘ）は、アクセス回数を変数とする関数であり、ｇ（ｙ）は、ポインタの距離を変数とする関数であり、ｈ（ｚ）は、属性を変数とする関数である。
【００４９】
もっと単純に考えると、優先度を決定する距離尺度Ｌは、
Ｌ＝１／ｘ＋ｙ［１：ｉｆ　ｒｏｃｋ，　２：ｉｆ　ｐｏｐｓ，　３：ｉｆ　ｃｌａｓｓｉｃ］
である。
【００５０】
クライアントは、下り帯域予約制御部９２を通じて、優先度０のコンテンツが要求する帯域幅を確保し（Ｓ１３）、クライアントに許された残りの帯域幅を、キャッシュテーブル３０を参照し、優先度順に順次確保する（Ｓ１３）。なお、優先度の値が小さい程、優先の度合いが高くなる。つまり、優先度０は、最高優先度を示す。
【００５１】
また、優先度を用いて帯域を確保する方法として、以下に示す第１、２の帯域確保方法が考えられる。
【００５２】
第１の帯域確保方法は、優先の高いコンテンツから、そのコンテンツの要求する帯域を確保する方法である。つまり、ユーザが使用できる帯域を６４ｋｂｐｓとし、優先度０のコンテンツの帯域が３２ｋｂｐｓであるとすると、残りの帯域は、３２ｋｂｐｓである。そして、優先度１のコンテンツの帯域が、３０ｋｂｐｓであるとすると、残りの帯域３２ｋｂｐｓのうちで帯域３０ｋｂｐｓを使い、残りの帯域は、２ｋｂｐｓである。
【００５３】
優先度２のコンテンツが、２ｋｂｐｓ以下の帯域であれば、その分を確保し、優先度３のコンテンツに渡すという操作を繰り返し、帯域を確保することができなくなった時点で、先読みを停止する。
【００５４】
一方、第２の帯域確保方法は、優先度０のコンテンツが、その要求帯域を確保し、残った帯域を、先読み対象コンテンツの帯域に、優先度順の計数をかけて共有するようにして、帯域を確保する方法である。
【００５５】
たとえば、上記と同様に、ユーザが使用できる帯域を６４ｋｂｐｓとし、優先度０のコンテンツの要求帯域が３２ｋｂｐｓである場合、残りの帯域が３２ｋｂｐｓである。ここで、優先度１のコンテンツの帯域が３０ｋｂｐｓであり、優先度２のコンテンツの帯域が２ｋｂｐｓであり、優先度３のコンテンツの帯域が２０ｋｂｐｓである場合、次のように、帯域を分配する。
【００５６】
つまり、優先度１のコンテンツに、３２ｋｂｐｓ×３０ｋｂｐｓ／（３０ｋｂｐｓ／１＋２ｋｂｐｓ／２＋２０ｋｂｐｓ／３）≒２５．４９ｋｂｐｓを分配し、優先度２のコンテンツに、３２ｋｂｐｓ×（２ｋｂｐｓ／２）／（３０ｋｂｐｓ／１＋２ｋｂｐｓ／２＋２０ｋｂｐｓ／３）≒０．７８ｋｂｐｓを分配し、優先度３のコンテンツに、３２ｋｂｐｓ×（２０ｋｂｐｓ／３）／（３０ｋｂｐｓ／１＋２ｋｂｐｓ／２＋２０ｋｂｐｓ／３）≒５．６６ｋｂｐｓを分配するというように、残った帯域を、所定の計算方法に従って分配して使う方法である。
【００５７】
ここで、ユーザが扱うことができる帯域を設定する場合、網側に帯域予約機能を持ったルータ等が存在していなければ、設定できないが、将来の通信事業者のサービスとして登場することが考えられる。この場合、その事業者との契約の中で、最低帯域保障値を定め、この定められた最低帯域保障値の範囲内で、ユーザが扱うことができる帯域を設定することができる。
【００５８】
また、ユーザがそのネットワークを使用し、経験的に知ることができる最低帯域の値を、ユーザが扱うことができる帯域として設定することが考えられる。
【００５９】
さらに、フロー毎に帯域を予約することはできない。つまり、取得すべきコンテンツの１つ１つについて帯域予約することはできない。ネットワークである場合、ｃｌｉｅｎｔ側から、ｔｃｐ通信におけるＡｃｋを返すタイミングを遅らせる等して、通信速度を変化させ、擬似的に帯域予約することによっても、ユーザが扱うことができる帯域を表現することができる。
【００６０】
また、キャッシュテーブル制御部４０を通じて、キャッシュテーブル３０を参照して得られたコンテンツの取得状況（０：全く取得されていない／１：一部取得済み／２：全て取得済み）に応じて、キャッシュフラグを設定し、２（全て取得済み）であれば、エントリに、帯域を割り振らない。
【００６１】
また、ユーザが予め設定した先読みの対象となり得るリンクをたどった場合におけるリンク数が、リンク数の最大数を超えるエントリには、帯域を割り振らない。つまり、一度にいくつものコンテンツを取得しようとすると、クライアントの負荷が大きくなり、そのコンテンツが選択される可能性が低くなるので、リンク数の最大数を超えるエントリには、帯域を割り振らない。
【００６２】
図５に示す例の場合、現在、フォーカスが当たっている場所を、ｈｔｔｐ：／／Ｃとすると、
ｈｔｔｐ：／／Ｂ、ｈｔｔｐ：／／Ａ、ｈｔｔｐ：／／ＣＡ等は、リンク数１であり、
ｈｔｔｐ：／／ＡＡ、ｈｔｔｐ：／／ＢＡは、リンク数２であり、
ｈｔｔｐ：／／ＢＢＡ等は、リンク数３であると数える。
【００６３】
つまり、先読みを行う範囲を制限するために、リンク数を数える。
【００６４】
次に、カレントフラグを設定し（０：視聴中でないＵＲＬ／１：ユーザによって能動的に選択された視聴中のＵＲＬ）、カレントフラグが１（ユーザによって能動的に選択された視聴中のＵＲＬ）であるエントリの優先度を、０にする。
【００６５】
先読みコンテンツを、シーケンシャルに取得する場合と、先読みコンテンツを、同時並列に取得する場合とがある。
【００６６】
まず、先読みコンテンツをシーケンシャルに取得する場合、優先度０のコンテンツを帯域予約すれば、他のコンテンツ取得による帯域圧迫が生じない。つまり、ストリームデータの場合、クライアント側では、一定のレートで再生されるが、送り側が一度に多くのデータを送ってくる場合には、そのデータのために他のコンテンツの取得が邪魔されるが、これを、帯域予約（帯域制御）することによって、上記他のコンテンツの取得の邪魔を防止することができる。そして、優先度１からコンテンツの取得を始め、コンテンツの取得が終了したら、優先度２のコンテンツを取得し、次に、優先度３のコンテンツを取得し、……というように、コンテンツを順次、取得する。
【００６７】
ただし、コンテンツがストリームデータである場合、なかなか取得が終了しないこともある。この場合、ｃｌｉｅｎｔがリクエストしてから、ｓｅｒｖｅｒからデータを受信するために必要な時間を求め、このコンテンツの必要帯域から、どれだけのデータをキャッシュしておけば、同じコンテンツに、次にリクエストしたときに、ｃｌｉｅｎｔがストリームデータを遅延なく再生できるかを計算し、この計算された分だけキャッシュする。
【００６８】
たとえば、ｃｌｉｅｎｔからのリクエストに対し、データが届くのが、２ｓｅｃであり、そのコンテンツが必要とする帯域が３８４ｋｂｉｔである場合、２ｓｅｃ×３８４ｋｂｉｔ＝７６５ｋｂｉｔ分をキャッシュしておく。
【００６９】
一方、同時並列に先読みコンテンツを取得する場合、上記のように、優先度の高い順に帯域を確保し、各コンテンツに帯域を確保することができなくなるまで、帯域を確保する。ただし、シーケンシャル取得の場合のように、サーバのレスポンスタイムによって、コンテンツデータの一部をキャッシュするようにしてもよい。
【００７０】
上記のようにして決定された優先度と帯域幅とを用いることによって、ストリーミングコンテンツを受信中であっても、現在視聴中のコンテンツに、最大優先度を与え、コンテンツが必要とする帯域を確保し、これによって、視聴中のコンテンツに影響を与えることなく、またユーザの余った帯域を活用しつつ、効果的にコンテンツの先読みを行うことができる（Ｓ１４、Ｓ１５）。
【００７１】
図６は、上記実施例において、距離決定と優先度とキャッシュとの一構成例を示す図である。
【００７２】
図６に示す例では、テキストブラウザを想定して記載され、現在のフォーカスが、ネットラジオ局であるＦＭ静岡上に存在している。網掛けの丸の中の数値は、嗜好的距離を示し、直線上の数値は、フォーカス位置から各オブジェクトまでの空間的距離を示し、下線付き数値は、そのコンテンツにおける優先度を決定するための距離を示す。
【００７３】
また、ｔｒｅｅの元に存在している数値の入っていない網掛けの丸には、画面に現れているページを示す。したがって、上記方法によって、空間的距離は、ＦＭ静岡に対して０であり、ＮＨＫ　ＦＭに対しては１０である。その他の放送局に対しては、それぞれカーソルから離れるにつれて１０ずつ増える。さらに、上記方法を用い、アクセス頻度、コンテンツのジャンルに応じて、優先度が決められる。
【００７４】
帯域については、コンテンツが要求する帯域と上記距離とに基づいて計算され、ＦＭ静岡：６４ｋｂｐｓ、ＦＭ三重：３２ｋｂｐｓ、ＺＩＰＦＭ：２４ｋｂｐｓ、ＦＭ愛知：２４ｋｂｐｓ、ＮＨＫ　ＦＭ：８ｋｂｐｓ等のように決定され、先読みキャッシュが行われる。ただし、この数値は、便宜上つけたもので、実際に計算によって求めたものではない。
【００７５】
また、ユーザが所望するコンテンツを変更したときに、先読みしようとするＵＲＬが、キャッシュテーブル３０に存在するか否かをチェックする（Ｓ２１）。先読みしようとするＵＲＬが、キャッシュテーブル３０に存在しない場合、コンテンツの取得を開始する。先読みしようとするＵＲＬが、キャッシュテーブル３０に存在する場合には、キャッシュフラグをチェックし、このチェックしたキャッシュフラグが「２」である場合（コンテンツの全てをキャッシュ済みである場合）、キャッシュデータを用いてコンテンツを表示する（Ｓ２２）。
【００７６】
チェックしたキャッシュフラグが「１」である場合（コンテンツの一部のみ取得の場合）、キャッシュデータのファイルサイズを取得し、コンテンツサーバに取得できていないコンテンツの残りを取得するためのリクエストを送信する。同時に、先読みによってキャッシュされているデータを読み出し、コンテンツを表示する。
【００７７】
そして、リクエストしたデータが、クライアントに到着したら、キャッシュデータに追加書き込みする。
【００７８】
上記コンテンツを見せる場合、キャッシュデータにコンテンツを追加書き込みしている最初の時点から、そのコンテンツの再生を開始することによって、コンテンツを連続的に見せる方法と、元々キャッシュに存在していたデータがなくなった時点で、データ読込先を、サーバからのデータに切り替えることによって、コンテンツを連続的に見せる方法等が考えられる。つまり、サーバからのレスポンス時間を埋めるように、キャッシュが動作する。
【００７９】
先読みによるキャッシュサイズは、上記のように、コンテンツデータが実際に到着するまでのつなぎとして必要なデータサイズであり、コンテンツサーバとのレスポンスタイムに応じて、先読みによるキャッシュサイズを決定する。
【００８０】
また、コンテンツ視聴が終わり、キャッシュすべき先読みデータを全て取得し終わった場合、または、コンテンツ視聴中であったとしても、キャッシュすべき先読みデータを全てキャッシュし終わり、使用可能な帯域が存在している場合、コンテンツサーバに問い合わせを行う。
【００８１】
この場合、クライアントのキャッシュテーブル３０のタイムスタンプと、コンテンツサーバ上のコンテンツのタイムスタンプとが異なっていたら、クライアントのキャッシュテーブル３０のキャッシュフラグを「０」に更新する。
【００８２】
図２に示すキャッシュテーブル３０のエントリの１つである有効期限は、コンテンツの有効期限であり、データのヘッダに記述されている場合がある。この有効期限は、時限的なコンテンツを、キャッシュから消去するために用いられる。
【００８３】
上記時限的なコンテンツは、取得から１週間は視聴可能であるコンテンツ、ユーザが長い間持つことを、コンテンツ業者が望まないコンテンツ、同一のＵＲＬであっても、所定の周期で内容が書き換わるコンテンツ等である。
【００８４】
上記有効期限を、構造文リンク解析部５０が取得し、キャッシュテーブル３０に書き込む。また、上記有効期限を、定期的にチェックし、有効期限が切れているコンテンツに関するキャッシュフラグを「０」にし、コンテンツを全く取得していない状態に戻す。これに加え、キャッシュ禁止が、コンテンツヘッダに記載されると、一連の先読み動作を実行せず、コンテンツ視聴中でのキャッシュも行わないように動作する。つまり、上記キャッシュ禁止が記載される場合として、コンテンツ配信者が、ディスクへの保存は勿論、キャッシュ自体の阻止を望む場合に、上記キャッシュ禁止が記載されることが考えられる。
【００８５】
上記実施例によれば、ユーザの指示によって表示したページからリンクが張られているページを先読みするので、ネットワークのアイドル時間と、余ったネットワーク帯域とを有効に利用することができ、また、ユーザからの指示に迅速に応答することができる。
【００８６】
また、上記実施例によれば、ページの有効期限を検査するので、先読みしたページの内容を新鮮なものに保つことができる。
【００８７】
さらに、上記実施例によれば、各ページの更新頻度等に応じて、有効期限を個別に設定するので、コンテンツ先読みの柔軟性がより高い。
【００８８】
そして、上記実施例によれば、各ページの構成要素の更新頻度等に応じて、有効期限を個別に設定するので、コンテンツ先読みの柔軟性がより高い。
【００８９】
また、上記実施例によれば、先読みの読み出しを並行に実行するので、ネットワークをより有効に活用することができる。
【００９０】
さらに、上記実施例によれば、コンテンツの要求帯域と、現在の帯域幅の残りとに応じて、自動的に帯域を割り当てて、先読みするので、視聴中のコンテンツに影響を与えることなく、ネットワークの帯域幅をより有効に活用することができる。
【００９１】
そして、上記実施例によれば、複数のコンテンツの読み出しを並行に実行する場合、その中のいずれかのページをユーザが閲覧したい旨を指示すると、既にキャッシュされているデータを読み出すと同時に、優先度が最大になり、コンテンツに必要な帯域が確保されるので、より迅速にユーザの指示に応答することができる。
【００９２】
また、上記実施例によれば、リンク先コンテンツの読み出しを、並行に行うのではなく、コンテンツ毎に順番に行うことも可能であるので、優先制御しかできないネットワークにおいても、先読みすることができる。
【００９３】
さらに、上記実施例によれば、コンテンツの先読みを実行している途中で、ユーザが閲覧を望むコンテンツを指示すると、指示されたコンテンツの読み出しを優先度最大で開始するので、ユーザに迅速に応答することができる。
【００９４】
そして、上記実施例によれば、中断されたページにリンクが張られているページが再びユーザに表示された場合に、上記中断されたページの読み出しが、再開されるので、コンテンツの読み出しがより効率的になる。
【００９５】
また、ページのコンテンツの読み出しを再開する際に、途中まで読んだデータの有効期限を検査し、有効期限が経過している場合には、その途中までのデータを破棄し、データの読み出しを初めからやり直すので、ホームページを、より新鮮なデータ内容にすることができる。
【００９６】
さらに、上記実施例によれば、各ページを順番に読み出していく際に、各ページの優先度に応じて、その順番を決定するので、優先度の高いページを早い段階で読み出すことができる。
【００９７】
そして、上記実施例によれば、優先度に従って、リンク先ページを複数のグループに分け、この分けられた各グループ毎に、複数のページを並行に読み出すので、ネットワークの負荷をそれほど増大させずに、しかもページのコンテンツの先読みを効率的に行うことができる。
【００９８】
また、上記実施例によれば、優先度に応じて、上記グループ分けを行うので、優先度の高いページをより早い段階で先読みすることができ、ユーザの指示に対して迅速に応答することができる。
【００９９】
さらに、上記実施例によれば、上記ページと現在のポインタ位置との距離に応じて、上記優先度を決定するので、距離の近いページに対して、より迅速に先読みし、より効率的に先読みが行われる。
【０１００】
そして、上記実施例によれば、ユーザの嗜好との関係で、優先度を決定するので、ユーザの嗜好により近いコンテンツに、より優先的に先読みし、より効率的に先読みが行われる。
【０１０１】
また、上記実施例によれば、先読み動作が許可されている場合にのみ、コンテンツを先読みし、ネットワークの負荷を増大させたくない場合等には読み込み動作を禁止するので、ネットワークの負荷の調整等を的確に行うことができる。
【０１０２】
なお、上記実施例を、プログラムの発明として把握することができる。つまり、上記実施例は、キャッシュメモリに登録されているコンテンツと現在参照しているコンテンツとを比較する比較手順と、帯域を確保する順番の優先度を計算する優先度計算手順と、上記計算された優先度と、コンテンツが要求する帯域とを参照し、ユーザに残された帯域を確保する帯域確保手順と、上記確保された帯域を使用し、コンテンツを取得するコンテンツ取得手順とをコンピュータに実行させるプログラムの例である。
【０１０３】
この場合、上記優先度計算手順は、ユーザが現在参照しているコンテンツ画面上でのマウスポインタ位置、または、テキストブラウザにおけるフォーカス部分の位置を取得し、画面に表示されているオブジェクトの位置と、上記取得したマウスポインタまたはフォーカス位置との間のリンク数と、過去のアクセス回数と、コンテンツの属性とを加味して、上記優先度を決定する手順である。
【０１０４】
また、上記優先度計算手順は、ユーザが現在閲覧中か否かを示すカレントフラグを設定し、この設定されたカレントフラグに基づいて、優先度を決定する手順である。
【０１０５】
また、上記プログラムを、ＦＤ、ＣＤ、ＤＶＤ、ＨＤ、半導体メモリ等の記録媒体に記録するようにしてもよい。
【０１０６】
【発明の効果】
本発明によれば、ユーザの指示によって表示したページからリンクが張られているページを先読みするので、ネットワークのアイドル時間と、余ったネットワーク帯域とを有効に利用することができ、また、ユーザからの指示に迅速に応答することができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明の一実施例であるコンテンツ先読み装置１００のブロック図である。
【図２】キャッシュテーブル３０の一例を示す図である。
【図３】構造化文リンク解析部５０の動作を示すフローチャートである。
【図４】上記実施例におけるコンテンツ表示画面の表示例を示す図である。
【図５】上記実施例において、リンク間の距離を計算する例を示す図である。
【図６】上記実施例において、距離決定と優先度とキャッシュとの一構成例を示す図である。
【図７】上記実施例において、コンテンツ先読み動作を示すシーケンス図である。
【符号の説明】
１００…コンテンツ先読み装置、
１０…キャッシュデータ蓄積部、
２０…キャッシュデータ蓄積制御部、
３０…キャッシュテーブル、
４０…キャッシュテーブル制御部、
５０…構造化文リンク解析部、
６０…画面表示オブジェクト、ポインタ間距離計算部、
７０…優先度計算部、
８０…ポインタ位置取得部、
９１…画面表示制御部、
９２…下り帯域予約制御部、
Ｄ１…入力、表示および出力装置。
【図１】
2004021769.tif 000003
【図２】
2004021769.tif 000004
【図３】
2004021769.tif 000005
【図４】
2004021769.tif 000006
【図５】
2004021769.tif 000007
【図６】
2004021769.tif 000008
【図７】
2004021769.tif 000009