JP2004280405A - Information providing system, information providing method, and computer program - Google Patents
Information providing system, information providing method, and computer program Download PDFInfo
- Publication number
- JP2004280405A JP2004280405A JP2003070157A JP2003070157A JP2004280405A JP 2004280405 A JP2004280405 A JP 2004280405A JP 2003070157 A JP2003070157 A JP 2003070157A JP 2003070157 A JP2003070157 A JP 2003070157A JP 2004280405 A JP2004280405 A JP 2004280405A
- Authority
- JP
- Japan
- Prior art keywords
- user
- page
- prefetch
- information
- prefetch target
- 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
【課題】WWW情報をキャッシュしておくことにより特定のユーザの要求から比較的短い応答時間で情報を提供する。
【解決手段】ユーザのリクエスト・ログを用いて、ユーザ毎にプリフェッチを行なうことで、特定ユーザのリクエストしたWWW情報を効率的にキャッシュする。また、先読みする機構に、ベイジアン・ネットワーク・モデルを用いることで、刻一刻と変わるユーザの嗜好性の変化に応じてアクセス・パターンが変化したとしても、これに対応して先読み対象を確率的に求め、先読み対象を限定し、ユーザの変化に動的に対応する。
【選択図】 図1The present invention provides information with a relatively short response time from a request of a specific user by caching WWW information.
A WWW information requested by a specific user is efficiently cached by performing a prefetch for each user using a request log of the user. In addition, by using a Bayesian network model for the look-ahead mechanism, even if the access pattern changes in response to an ever-changing user preference, the look-ahead target is stochastically corresponding to this. It seeks, limits the prefetch target, and responds dynamically to user changes.
[Selection diagram] Fig. 1
Description
【0001】
【発明の属する技術分野】
本発明は、ユーザが要求した情報を提供する情報提供システム及び情報提供方法、並びにコンピュータ・プログラムに係り、特に、WWW情報空間で不特定多数のユーザに提供される情報の中から、特定のユーザの要求に応じて効率的に情報を提供する情報提供システム及び情報提供方法、並びにコンピュータ・プログラムに関する。
【0002】
さらに詳しくは、本発明は、WWW情報をキャッシュしておくことにより特定のユーザの要求から比較的短い応答時間で情報を提供する情報提供システム及び情報提供方法、並びにコンピュータ・プログラムに係り、特に、ユーザが要求すると思われる情報をあらかじめ先読みしてキャッシュしておく(すなわち先読みする)ことにより、ユーザの要求から比較的短い応答時間で情報を提供する情報提供システム及び情報提供方法、並びにコンピュータ・プログラムに関する。
【0003】
【従来の技術】
昨今、ネットワーク・コンピューティング技術が急速に展開している。ネットワーク接続環境下では、コンピュータ資源の共有や、情報の共有・流通・配布・交換などの協働的作業を円滑に行なうことができる。
【0004】
コンピュータ同士を相互接続するネットワークの形態は様々である。例えば、イーサネット(登録商標)のような局所に敷設されたLAN(Local Area Network)や、さらには、ネットワーク間の相互接続を繰り返し行った結果として文字通り世界規模のネットワークへ成長を遂げた「インターネット」(The Internet)などさまざまである。特に、ブロードバンド通信や常時接続の普及と相俟って、インターネットが広汎に普及してきている。
【0005】
インターネット上では、サーバ同士がTCP/IP(Transmission Control Protocol・internet Protocol)ベースで相互接続され、WWW(world Wide Web)、News、TELNET(TELetypewriter NETwork)、FTP(File Transfer Protocol)、Gopherなど、多数のサービスが公開されている。
【0006】
このうちWWWは、ハイパーリンク構造の情報空間を提供する広域情報検索システムであり、インターネットの爆発的な成長や急速な普及を遂げる最大の要因ともなっている。WWWシステム上では、テキスト、画像、音声などの各種メディアの情報コンテンツが公開されている。WWWサービスの利用者は、クライアント装置からインターネットを通じて、WWW情報を提供するサーバに接続し、WWW情報を取得することができる。
【0007】
WWW情報は、HTML(Hyper Text Markup Language)と呼ばれるハイパーテキスト形式の記述言語で記述されている。TCP/IPに従えば、情報資源は、URL(Uniform Resource Locator)という形式の識別子によって特定され、HTTP(Hyper Text Transfer Protocol)プロトコルに従ってHTMLドキュメントを転送することができる(周知)。
【0008】
WWW情報は、通常、ページと呼ばれる単位でサーバから提供されている。クライアント側では、WWWブラウザを用いてページ単位でWWW情報をダウンロードして、画面上にWWWページとして表示させることができる。また、ハイパーテキスト形式で記述されるWWWページは、ハイパーリンクによって、同じサーバ上で提供されているページ、あるいは他のサーバ上で提供されているページとの間で相互に参照関係を持っている。
【0009】
ここで、WWW情報を利用するに際し、サーバの処理時間やインターネットの帯域幅などの理由から、サーバから直接情報を入手する場合の応答時間が遅い問題がある。
【0010】
この問題点を解決するために、ユーザのクライアント装置とWWWの情報を提供する装置からなるインターネット上に、キャッシュ・サーバと呼ばれるWWW情報提供装置を設置するという手法が採られている(例えば、特許文献1を参照のこと)。キャッシュ・サーバは、不特定多数のユーザから要求されたWWW情報のうちアクセス頻度の高いWWW情報を装置内に蓄えておく。そして、ユーザから要求された情報が装置内にあれば(キャッシュ・ヒット)、ユーザに提供するが、要求された情報が装置内になければ(キャッシュ・ミス)、WWW情報を提供するサーバに情報を取りに行き、要求元ユーザに提供する。
【0011】
ところが、従来のキャッシュ・サーバは、一般に、不特定多数のユーザによって共用され、また、記憶容量が有限であることから、FIFO(Fast In Fast out)やLRU(Least Recently Used)などの論理に従ってキャッシュ・データの管理(データの削除)が行なわれている。このような場合、キャッシュ・サーバは、不特定多数のユーザのアクセス情報に基づいてアクセス頻度の高いWWW情報を装置内に蓄えているので、必ずしも特定のユーザが要求した情報がキャッシュ・サーバ内に蓄えられているとは限らない。このため、キャッシュ・ミスにより、キャッシュ・サーバがWWW情報を提供するサーバに逐次情報を取りに行く結果となり、結局のところ、応答時間の問題を解決することができない。
【0012】
また、ユーザが要求したWWW情報の参照先ページ内から、他のページへのリンク情報を取得し、すべての参照先ページを先読みしておき、応答時間の低減を図ることが行なわれている(例えば、非特許文献1を参照のこと)。
【0013】
しかしながら、この場合、すべてのページにおいて、ページ内のすべてのリンク先を先読みするので、アクセスされない可能性の高いものまで先読みしてしまうことになり、非効率的であり、帯域を無駄に使ってしまうという問題がある。
【0014】
また、ユーザやWWW情報の参照先ページに重要度や優先度を設定して、先読みを行なうという方法もある(例えば、特許文献2を参照のこと)。例えば、プロキシー・サーバのWWWデータ・アクセスの履歴を集計・解析する仕組みを設け、その解析結果からキャッシュ・サーバにキャッシュされているデータに優先度を与える。そして、優先度に従ってリクエストされたデータ毎に先読みを行なうかどうかの条件を設ける。これによって、先読みによるネットワークへの負荷の増大を抑えながら、先読みによるキャッシュの再現率の向上を実現することができる。
【0015】
しかしながら、この場合、重要度や優先度が画一的になってしまうことから、先読みする対象も同様に画一的になる、という問題がある。言い換えれば、ユーザの嗜好性が変わり、動的にアクセス・パターンが変わってしまうような場合、キャッシュ・サーバは対応することができない。
【0016】
【特許文献1】
特開平10−21174号公報
【特許文献2】
特開平11−149405号公報
【非特許文献1】
Webサーバー完全技術解説、日経BP社
【0017】
【発明が解決しようとする課題】
本発明の目的は、WWW情報空間で不特定多数のユーザに提供される情報の中から、特定のユーザの要求に応じて効率的に情報を提供することができる、優れた情報提供システム及び情報提供方法、並びにコンピュータ・プログラムを提供することにある。
【0018】
本発明のさらなる目的は、WWW情報をキャッシュしておくことにより特定のユーザの要求から比較的短い応答時間で情報を提供することができる、優れた情報提供システム及び情報提供方法、並びにコンピュータ・プログラムを提供することにある。
【0019】
本発明のさらなる目的は、ユーザが要求するであろう情報をあらかじめ先読みすることにより、ユーザの要求から比較的短い応答時間で情報を提供することができる、優れた情報提供システム及び情報提供方法、並びにコンピュータ・プログラムを提供することにある。
【0020】
本発明のさらなる目的は、刻一刻と変わるユーザの嗜好性の変化に対応してユーザが要求する情報を先読みしておくことにより、ユーザの要求から比較的短い応答時間で情報を提供することができる、優れた情報提供システム及び情報提供方法、並びにコンピュータ・プログラムを提供することにある。
【0021】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、複数のサイトに跨って相互に参照関係を持つページからなる情報を提供する情報提供システムであって、
ユーザ毎の情報を要求するリクエスト・ログを抽出するログ抽出手段と、
リクエスト・ログに含まれるページのアクセス系列に基づいて、次にアクセスされるページを予測し、先読みすべきページをユーザ毎に求めるプリフェッチ対象ページ選定手段と、
リクエスト・ログに含まれるサイトのアクセス系列に基づいて、次にアクセスされるサイトを予測し、先読みすべきサイトをユーザ毎に求めるプリフェッチ対象サイト選定手段と、
前記プリフェッチ対象ページ選定手段及び前記プリフェッチ対象サイト選定手段により選定されたページ及びサイトに基づいて、情報の先読みを行なうプリフェッチ手段と、
を具備することを特徴とする情報提供システムである。
【0022】
但し、ここで言う「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【0023】
本発明に係る情報提供システムは、WWWサーバにおいて公開されているWWW情報をキャッシュしておくことにより、ユーザのリクエストから比較的短い応答時間で情報を提供する。
【0024】
この際、ユーザのリクエスト・ログを用いてユーザ毎にプリフェッチを行なうことで、不特定多数ではなく、特定のユーザのリクエストしたWWW情報を効率的にキャッシュすることができる。
【0025】
ここで、前記プリフェッチ対象ページ選定手段及び/又は前記プリフェッチ対象サイト選定手段は、ユーザのアクセス系列を記述したユーザ毎の確率ネットワーク・モデルを用いて、ユーザが次にアクセスするページ及び/又はサイトを予測する。
【0026】
すなわち、WWW情報を先読みする機構に、確率ネットワーク・モデルの1つであるベイジアン・ネットワーク・モデルを用いることで、刻一刻と変わるユーザの嗜好性の変化に応じてアクセス・パターンが変化したとしても、これに対応して先読み対象を確率的に求め、先読み対象を限定し、ユーザの変化に動的に対応することができる。
【0027】
また、前記プリフェッチ対象ページ選定手段及び/又は前記プリフェッチ対象サイト選定手段は、次のユーザのアクセス結果に基づいて、確率ネットワーク・モデルを更新することができる。
【0028】
また、前記プリフェッチ手段は、ネットワークの負荷などを考慮してプリフェッチ対象のプリフェッチ作業を行なうようにしてもよい。例えば、予測に基づくプリフェッチ対象のページ及び/又はサイトの優先順位を、ネットワーク負荷を考慮して並べ替えるようにしてもよい。
【0029】
また、プリフェッチした情報などのキャッシュ情報を、ユーザ毎に割り当てられた記憶領域に蓄積するようにしてもよい。あるいは、ユーザを区別しないで同じ記憶空間上でキャッシュ情報を管理するようにしてもよい。
【0030】
また、本発明の第2の側面は、複数のサイトに跨って相互に参照関係を持つページからなる情報を提供するための処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
ユーザ毎の情報を要求するリクエスト・ログを抽出するログ抽出ステップと、
リクエスト・ログに含まれるページのアクセス系列に基づいて、次にアクセスされるページを予測し、先読みすべきページをユーザ毎に求めるプリフェッチ対象ページ選定ステップと、
リクエスト・ログに含まれるサイトのアクセス系列に基づいて、次にアクセスされるサイトを予測し、先読みすべきサイトをユーザ毎に求めるプリフェッチ対象サイト選定ステップと、
前記プリフェッチ対象ページ選定ステップ及び前記プリフェッチ対象サイト選定ステップにより選定されたページ及びサイトに基づいて、情報の先読みを行なうプリフェッチ・ステップと、
を具備することを特徴とするコンピュータ・プログラムである。
【0031】
本発明の第2の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第2の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第1の側面に係る情報提供システムと同様の作用効果を得ることができる。
【0032】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0033】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0034】
本発明は、ユーザのクライアント装置とWWWの情報を提供する装置からなるインターネット上にキャッシュ・サーバを配置し、キャッシュ・サーバが次にアクセスされる情報の先読み(プリフェッチ)作業をユーザ毎に行なうことにより、不特定多数ではなく、特定ユーザのリクエストしたWWW情報を効率的に提供するものである。
【0035】
図1には、本発明を適用したWWW情報提供システムの構成例を模式的に示している。同図に示す例では、ユーザが情報を要求するクライアントとしての端末100と、WWW情報をページ単位で提供するWebサーバ103と、Webサーバ103から提供されるWWW情報を蓄積しておくキャッシュ・サーバ装置104が、ネットワーク101を通じてインターネット102に繋がっている。キャッシュ・サーバ装置104内に、本発明の一実施形態に係るキャッシュ・システム105(後述)が構築されている。
【0036】
端末100は、ユーザがインターネット上のWWW情報を閲覧する際に用いるクライアント端末のことであり、例えば、PC(Personal Computer)やPDA(Personal Data Assistants)、あるいは携帯電話などに相当する。
【0037】
Webサーバ103は、インターネット上でWWW情報の提供サービスを実施する者が、ユーザへWWW情報を提供するために設置した装置で構成される。
【0038】
WWW情報は、HTMLと呼ばれるハイパーテキスト形式の記述言語を用いて記述されている。WWW情報は、URLによって特定され、HTTPプロトコルに従って転送することができる。WWW情報は、通常、ページ(以下、「Webページ」とする)と呼ばれる単位でサーバから提供されている。クライアント側では、WWWブラウザを用いてページ単位でWWW情報をダウンロードして、画面上にWebページとして表示させることができる。また、ハイパーテキスト形式で記述されるWebページは、ハイパーリンクによって、同じサーバ上で提供されているページ、あるいは他のサーバ上で提供されているページとの間で相互に参照関係を持っている。
【0039】
キャッシュ・サーバ装置104は、ユーザが、WebページなどのWWW情報を、Webサーバ103から直接得る場合の遅延時間を低減のために配設されている。キャッシュ・システム105は、各ユーザのWWW情報のリクエスト毎に、ユーザがリクエストしたWebページなどの情報をキャッシュすること、及び、ユーザがリクエストしたWebページの次にアクセスする可能性のあるページを予測してキャッシュ(先読み)することを行なうようになっている。図示のキャッシュ・サーバ装置104は、「バックサイド・キャッシュ」と呼ばれる構成である。
【0040】
図示の形態では、ユーザのリクエストが端末100からネットワーク101を通じてインターネット102に流れ、キャッシュ・サーバ装置104に届く。キャッシュ・サーバ装置104では、キャッシュ・システム105にユーザのリクエストを渡す。
【0041】
キャッシュ・システム105では、ユーザのリクエストしたページをキャッシュしていれば(キャッシュ・ヒット)、キャッシュ・サーバ装置104に、ユーザのリクエストしたページを渡すが、キャッシュしていなければ(キャッシュ・ミス)、ユーザのリクエストしたページをWebサーバ103から取得し、キャッシュ・サーバ装置104に渡す。
【0042】
また、キャッシュ・システム105では、ユーザのリクエストを受け取ったときに、次にユーザがアクセスする可能性のあるページをあらかじめキャッシュしておく処理(先読み)を行なうが、この点については後に詳解する。
【0043】
また、図2には、本発明を適用したWWW情報提供システムについての他の構成例を模式的に示している。同図に示す例では、ユーザが情報を要求するクライアントとしての端末200や、社内LAN203などが、ネットワーク201を通じてインターネット202に繋がっている。ここで言う社内LAN203は、インターネット上でWebページを提供するサービスを行なう会社内のローカル・エリア・ネットワークなどのことを指す。
【0044】
また、社内LAN203上には、WWW情報をページ単位で提供するWebサーバ206や、Webサーバ103から提供されるWWW情報を蓄積しておくキャッシュ・サーバ装置204が繋がっている。キャッシュ・サーバ装置204内には、本発明の一実施形態に係るキャッシュ・システム205が構築されている。図示のキャッシュ・サーバ装置204は、「フロントサイド・キャッシュ」と呼ばれる構成である。
【0045】
図示の形態では、ユーザのリクエストが端末200からネットワーク201を通じてインターネット202に流れ、社内LAN203経由で、キャッシュ・サーバ装置204に届く。キャッシュ・サーバ装置204では、キャッシュ・システム205にユーザのリクエストを渡す。
【0046】
キャッシュ・システム205では、ユーザのリクエストしたページをキャッシュしていれば(キャッシュ・ヒット)、キャッシュ・サーバ装置204に、ユーザのリクエストしたページを渡すが、キャッシュしていなければ(キャッシュ・ミス)、Webサーバ203から、ユーザのリクエストしたページを取得し、キャッシュ・サーバ装置204に渡す。
【0047】
また、キャッシュ・システム205では、ユーザのリクエストを受け取ったときに、次にユーザがアクセスする可能性のあるページを予測してあらかじめキャッシュしておく処理(先読み)を行なうが、この点については後に詳解する。
【0048】
また、図3には、本発明を適用したWWW情報提供システムについてのさらに他の構成例を模式的に示している。同図に示す例では、ユーザが情報を要求するクライアントとしての端末300や、WWW情報をページ単位で提供するWebサーバ304が、ネットワーク302を通じてインターネット303に繋がっている。また、端末300内には、本発明の一実施形態に係るキャッシュ・システム301が構築されている。
【0049】
図示の形態では、ユーザのリクエストが、まず端末300からキャッシュ・システム301に渡される。そして、キャッシュ・システム301では、ユーザのリクエストしたページをキャッシュしていれば(キャッシュ・ヒット)、端末300にユーザのリクエストしたページを渡すが、キャッシュしていなければ(キャッシュ・ミス)、ネットワーク302を通じインターネット303を経由して、Webサーバ304からユーザのリクエストしたページを取得し、これを端末300に渡す。
【0050】
また、キャッシュ・システム301では、ユーザのリクエストを受け取ったときに、次にユーザがアクセスする可能性のあるページを予測してあらかじめキャッシュしておく処理(先読み)を行なうが、この点については後に詳解する。
【0051】
図4には、本発明の一実施形態に係るキャッシュ・システムの機能構成を模式的に示している。
【0052】
リクエスト処理部1001では、ユーザのリクエストをアクセス・ログ1002に記録し、ログ抽出部1003にログ処理を指示するとともに、ユーザのリクエストしたページをキャッシュ管理部1004から取得して、ユーザに取得したページを返す。また、キャッシュ管理部1004から該当するページを取得することができないときは、外部のWebサーバからユーザのリクエストしたページを取得し、キャッシュ管理部(1004)に取得したページを書き込むように指示した後、ユーザに取得したページを返すことができる。
【0053】
図5には、アクセス・ログ1002において記録されているログのデータ構造の一例を示している。同図に示す例では、ユーザからのリクエスト毎にログのレコードが生成され、各レコードは、アクセスの日付や時間、要求元ユーザのIPアドレス、リクエスト種別、リクエストしたWebページのURL、リクエストされた文書タイプなどを記録するフィールドを持っている。
【0054】
ログ抽出部1003は、リクエスト処理部1001からの指示に応答して、プリフェッチ対象ページ選定部1007とプリフェッチ対象サイト選定部1009がそれぞれ先読みすべきページ又はサイトを予測するために必要な情報(例えば、クライアントIPアドレス、URL、アクセス時刻など)をアクセス・ログ1002から抽出し、プリフェッチ対象ページ選定部1007とプリフェッチ対象サイト選定部1009のそれぞれに抽出した情報を受け渡し、選定処理を行なうように指示する。
【0055】
キャッシュ管理部1004は、リクエスト処理部1001やプリフェッチ部1013の要求に応じて、プリフェッチ要求されているファイルがキャッシュ・ディスク1006上に存在するかの検索、キャッシュ・ディスク1006からのファイルの読み出し、キャッシュ・ディスク1006へのファイルの書き込みなどのディスク・アクセス処理を行なうとともに、キャッシュ・ディスク1006のファイル・リストとアクセスした日時などのキャッシュ管理情報をキャッシュ管理テーブル1005に記録する。
【0056】
図6には、キャッシュ管理テーブル1005のデータ構造の一例を示している。同図に示す例では、要求元クライアント・ユーザ毎にキャッシュ管理情報が管理されている。各クライアントは、IPアドレスによって識別され、それぞれのための専用のキャッシュ記憶容量が割り当てられている。キャッシュ管理テーブル1005では、各クライアントについての割り当てられている記憶容量と現在使用中の記憶容量が管理されるとともに、各クライアント毎に、リクエストされたWebページについての最終アクセス日時、URL、キャッシュ・ディスク(1006)内でのファイル名からなるリストが記録されている。リクエストされたWebページのリストは、例えばクライアント毎に最終アクセス日時の新しい順に配列されている。
【0057】
キャッシュ管理部1004でファイルの検索を行なう場合には、キャッシュ管理テーブル1005を参照する。したがって、端末からの要求のあったファイル、Webサーバから取得したファイルなどは、キャッシュ管理テーブル1005上に存在することになる。図6に示したキャッシュ管理テーブルの構成例では、ユーザの端末を区別してキャッシュしている。すなわち、ユーザの端末毎にキャッシュ・ディスク1006の割り当て容量を決め、端末毎のキャッシュを行なうことができる。その反面、ユーザの端末毎のキャッシュ領域間で重複したファイルがキャッシュされる可能性があり、キャッシュ・ディスク1006を効率的に利用できない場合がある。
【0058】
これに対し、すべてのユーザの端末を区別することなくファイルを管理する方法も考えられる。一般的なキャッシュ・サーバではこのような管理方法が採られている。図24には、すべてのユーザの端末を区別しない場合におけるキャッシュ管理テーブル1005のデータ構造の一例を示している。同図に示す例では、キャッシュ管理テーブル1005上では、各クライアントは識別されず、クライアント毎のキャッシュ領域の割り当てもない。キャッシュ管理テーブル1005は、キャッシュ・ディスク1006全体の割当容量と現在の容量を把握するとともに、リクエストされたWebページについての最終アクセス日時、URL、キャッシュ・ディスク(1006)内でのファイル名からなるリストが、アクセス要求元クライアントを識別することなく記録されている。この場合、ユーザの端末毎にキャッシュされないという短所があるが、アクセスの多いものほどキャッシュ上に残ることになるので、キャッシュ・ディスク1006の利用効率がよくなる。
【0059】
本発明では、ユーザの端末からリクエストがある度に、リクエストされたページなどの次にリクエストされる可能性があるページ又はサイトを予測し、予測されたページ又はサイトをWebサーバから取得(先読み)し、キャッシュ・ディスク1006上にあらかじめキャッシュしておく(後述)。キャッシュ管理テーブル1005を図6又は図24のいずれの構成を採用しても、リクエストされる可能性のあるページなどが常にキャッシュ管理テーブル1005並びにキャッシュ・ディスク1006上に存在する形となる。
【0060】
プリフェッチ対象ページ選定部1007は、ログ抽出部1003がアクセス・ログ1002から抽出した情報を受け取り、この情報に基づいて次にユーザがアクセスする可能性があるページを予測して、プリフェッチ対象ページとして選定する。より具体的には、ユーザがリクエストしたページの次にアクセスされる可能性のあるページを0〜1までの範囲の確率値で計算し、プリフェッチするまでの取得期限付きで選定し、選定した結果をプリフェッチ対象ページ・リスト1008に記録する。また、プリフェッチ・スケジューラ部1011に対して、プリフェッチ対象ページ・リスト1008が更新されたことを通知する。
【0061】
図7には、プリフェッチ対象ページ・リスト1008のデータ構造の一例を示している。同図に示す例では、プリフェッチ対象ページ・リスト1008上には、アクセスされる可能性があると予測されたページが例えば確率値の順でリストされ、各ページをリクエストするクライアントのIPアドレス、当該ページのURL、プリフェッチの期限などが記録されている。
【0062】
プリフェッチ対象サイト選定部1009は、ログ抽出部1003がアクセス・ログ1002から抽出した情報を受け取り、この情報すなわちユーザのアクセス系列に基づいてユーザが次にアクセスする可能性があるサイトを予測して、プリフェッチ対象サイトとして選定する。より具体的には、ユーザがリクエストしたページが所在するサイトの次にアクセスされる可能性のあるサイトを0〜1までの範囲の確率値で計算し、プリフェッチするまでの取得期限付きで選定し、選定した結果をプリフェッチ対象サイト・リスト1010に記録する。また、プリフェッチ・スケジューラ部1011に対して、プリフェッチ対象サイト・リスト1010が更新されたことを通知する。
【0063】
図8には、プリフェッチ対象サイト・リスト1010のデータ構造の一例を示している。同図に示す例では、プリフェッチ対象サイト・リスト1010上には、アクセスされる可能性があると予測されたサイトが例えば確率値の順でリストされ、各サイトをリクエストするクライアントのIPアドレス、当該サイトのURL、プリフェッチの期限などが記録されている。
【0064】
プリフェッチ・スケジューラ部1011は、プリフェッチ対象ページ選定部1007からの通知に応答して、プリフェッチ対象ページ・リスト1008を読み込み、プリフェッチするページを確率値順にプリフェッチ・スケジュール表1012に記録する。また、プリフェッチ対象サイト選定部1009からの通知に応答して、プリフェッチ対象サイト・リスト1010を読み込み、プリフェッチするサイトを確率値順にプリフェッチ・スケジュール表1012に記録する。そして、プリフェッチ部1013に対して、プリフェッチ・スケジュール表1012が更新されたことを通知する。
【0065】
図9には、プリフェッチ・スケジュール表1012のデータ構造を模式的に示している。同図に示す例では、プリフェッチ対象として選定されたページ並びにサイトが確率値の順でリストされ、各プリフェッチ対象ページ又はサイトについてのプリフェッチ開始時刻、プリフェッチ期限、当該ページ又はサイトのURL、プリフェッチするデータのサイズ、プリフェッチ時に使用する帯域、確率値、プリフェッチの種別、プリフェッチの状況などが記録されている。
【0066】
プリフェッチ部1013は、プリフェッチ・スケジュール表1012に基づいて、外部Webサーバからスケジュール表1012内のプリフェッチ対象ページを取得し、あるいはプリフェチ・スケジューラ部1011からの通知により、プリフェッチ・スケジュール表1012を整理する。
【0067】
続いて、本実施形態に係るキャッシュ・システム1000内の各部において実行される処理動作について説明する。
【0068】
図10には、リクエスト処理部1001において実行される処理手順をフローチャートの形式で示している。
【0069】
リクエスト処理部1001では、ユーザからのリクエストを受信待ちしており(ステップS10)、リクエストを受信すると(ステップS11)、まず、アクセス・ログ1002へリクエストを書き込む(ステップS12)。
【0070】
アクセス・ログ1002へリクエストを書き終えたら、ログ抽出部1003に対して、アクセス・ログ1002を処理するように指示を発行する(ステップS13)。
【0071】
次に、ユーザからリクエストのあったWebページなどをキャッシュ・ディスク1006にキャッシュしているかどうかをキャッシュ管理部1004へ尋ねる(ステップS14)。
【0072】
そして、キャッシュ・ディスク1006にキャッシュしていれば(キャッシュ・ヒット)、キャッシュ管理部1004へ読み出しを依頼し、読み出した後(ステップS15)、要求元ユーザにリクエストされたWebページなどを返す(ステップS16)。
【0073】
一方、キャッシュ・ディスク1006にキャッシュしていなければ(キャッシュ・ミス)、リクエストされたWebページなどを外部サーバから取得し(ステップS17)、キャッシュ管理部1004に対して、取得したWebページなどをキャッシュへ保存するように指示した後(ステップS18)、要求元ユーザにリクエストされたWebページなどを返す(ステップS16)。
【0074】
図11には、ログ抽出部1003において実行される処理手順をフローチャートの形式で示している。
【0075】
ログ抽出部1003では、リクエスト処理部1001からのアクセス・ログ処理要求を待っており(ステップS20)、アクセス・ログ処理要求が到来すると(ステップS21)、まず、アクセス・ログ1002から最新のユーザ・リクエストを読み込む(ステップS22)、
【0076】
次いで、読み込んだユーザ・リクエストから観測値を抽出する(ステップS23)。観測値としては、例えば図5に示すようなアクセス・ログの場合には、アクセスの日付と、時間、クライアントIPアドレス、URL、文書タイプを抽出する。
【0077】
ログ抽出部1003は、抽出した情報を、まずプリフェッチ対象ページ選定部1007へ送り、プリフェッチすべきページの選定作業を行なうように指示する(ステップS24)。
【0078】
次いで、抽出した情報のうち、URLに着目し、前回のURLとサイトが変改しているかどうかを判別する(ステップS25)。前回のURLとサイトが異なっている場合には、抽出した情報をプリフェッチ対象サイト選定部1010へ送り、選定作業を行なうように指示する(ステップS26)、
【0079】
例えば、同じユーザから前回リクエストされたURLが“http://www.aaa.co.jp/bbb.htm”で、今回リクエストされたURLが“http://www.bbb.ne.jp/index.htm”であった場合に、ログ抽出部1003は、サイト“www.aaa.co.jp”からサイト“www.bbb.ne.jp”にアクセスが変更されたことを捕捉して、サイト“www.bbb.ne.jp”の次にアクセスされる可能性のあるサイトを選定するために、プリフェッチ対象サイト選定部1009へ抽出した情報を送り、プリフェッチすべきサイトの選定作業を指示する。
【0080】
図12には、キャッシュ管理部1004において実行される処理手順をフローチャートの形式で示している。
【0081】
キャッシュ管理部1004では、リクエスト処理部1001やプリフェッチ部1013からのコマンドを受信待ちしている(ステップS30)。そして、キャッシュ・ディスク1006内にリクエストされたURLに該当したファイルの有無を尋ねられたとき(ステップS31)、図6に示したようなキャッシュ管理テーブル1005を照会して、該当するファイルがキャッシュ・ディスク1006上に存在するかどうかを確認する(ステップS32)。
【0082】
キャッシュ管理テーブル1005に、リクエストされたURLに該当したファイルがキャッシュ・ディスク1006上に存在する場合には、当該URLに対応したファイル有りのメッセージを返す(ステップS33)、また、リクエストされたURLに該当したファイルがキャッシュ・ディスク1006上に存在しない場合には、当該URLに対応したファイル無しのメッセージを返す(ステップS34)。
【0083】
また、コマンドが読み出し要求だった場合には(ステップS35)、図6に示したようなキャッシュ管理テーブル1005を照会して、リクエストされたURLに対応したファイルがキャッシュ・ディスク1006上に存在するかどうかを確認する(ステップS36)。
【0084】
当該URLに対応したファイルがキャッシュ・ディスク1006上に存在する場合には、図6に示したようなキャッシュ管理テーブル1005の最終アクセス日付と時刻を現在の日付と時刻に更新し(ステップS37)、該当URLに対応したファイルを返す(ステップS38)。また、当該URLに対応したファイルがキャッシュ・ディスク1006上に存在しない場合には、該当URLに対応したファイル無しのメッセージを返す(ステップS34)。
【0085】
また、コマンドが書き込み要求だった場合には(ステップS39)、まず、図6に示したようなキャッシュ管理テーブル1005の現在容量に要求があった該当URLのファイル・サイズを足したものが、同テーブル1005で規定されている割り当て容量を超えていないかどうかを確認する(ステップS40)。
【0086】
そして、割り当て容量を超えていない場合には、キャッシュ領域に該当URLに対応したファイルを書き込み(ステップS42)、キャッシュ管理テーブル1005を更新する(ステップS43)。
【0087】
一方、現在容量に要求があった該当URLのファイル・サイズを足したものが割り当て領域を超える場合は、書き込まれる該当URLに対応したファイルの容量分だけ、アクセス日付と時刻から最も古いものからファイルを消去してキャッシュ領域を確保してから(ステップS41)、キャッシュ領域に該当URLに対応したファイルを書き込み(ステップS42)、キャッシュ管理テーブル1005を更新する(ステップS43)。
【0088】
図13には、プリフェッチ対象ページ選定部1007において実行される処理手順をフローチャートの形式で示している。
【0089】
プリフェッチ対象ページ選定部1007では、コマンドの受信を待っており(ステップS50)、ログ抽出部1003から観測値を受け取り、プリフェッチ対象となる選定処理を指示されると(ステップS51)、図14や図15に示すようなベイジアン・ネットワーク・モデルへ観測値を設定する(ステップS52)。
【0090】
ベイジアン・ネットワーク・モデルについての一般的な説明は、例えば本村陽一著の論文「不確実性モデリングのための情報表現:ベイジアンネット」(BN2001 ベイジアンネットチュートリアル講演論文集、pp.5−13(2001)、人工知能学会 人工知能基礎論研究会)を参照されたい。
【0091】
観測値の設定処理が終わると、次いで、条件付確率の学習を行なう(ステッS53)。ここで、条件付確率の学習には、観測値の設定処理で、記録された観測回数を用いて、EMアルゴリズムで条件付確率の学習を行なう。なお、EMアルゴリズムについては、例えば渡辺美智子、山口和範編著「EMアルゴリズムと不完全データの諸問題」(多賀出版)を参照されたい。
【0092】
条件付確率の学習に続いて、事後確率の計算を行なう(ステップS54)。ここで、事後確率の計算には、観測値の設定処理で、計算しないように立てたフラグが立っていないノードに対して行なう。なお、事後確率の計算については、例えば本村陽一著の論文「不確実性モデリングのための情報表現:ベイジアンネット」(BN2001 ベイジアンネットチュートリアル講演論文集、pp.5−13(2001)、人工知能学会 人工知能基礎論研究会)を参照されたい。
【0093】
事後確率の計算が終わると、次いで、図14に示した“次のURLノード”4002や図15に示した “次のURLノード”4002から、各URLの確率値を取得し、確率値の高いもの順に並べる(後述)。この中で、ある閾値を越える確率を持つものをプリフェッチ対象ページとしてプリフェッチ対象ページ・リストにURLと確率値を一旦記録する。ここで言うある閾値とは、例えば、平均値(“次のURLノード”内の全URL分の1)や、平均値(“次のURLノード”内の全URL分の1)のα倍などを用いる。
【0094】
次に、一旦作成したプリフェッチ対象ページ・リスト中の各URL毎に、プリフェッチ期限(秒)を“アクセス間隔(秒)ノード”から求める。求め方は、プリフェッチ対象ページ・リスト中の各URL毎に、仮に観測されたものとして、“次のURLノード”へ仮の観測値を設定して(仮の観測値に該当するものを1、それ以外を0)、“アクセス間隔(秒)ノード”の事後確率を計算する、この計算された事後確率のうち、確率値の最大となっているものを求める。
【0095】
プリフェッチ対象ページ・リスト中の各URL毎にプリフェッチ期限(秒)を求めたら、プリフェッチ対象ページ・リスト内にプリフェチ期限(秒)を記録して、プリフェッチ対象ページ・リストを完成させる(ステップS55)。
【0096】
プリフェチ対象ページ・リストを作成したら、プリフェッチ・スケジューラ部1011へリストが作成されたことを通知する(ステップS56)。
【0097】
ここで、図14並びに図15に示した例を参照しながら、ベイジアン・ネットワーク・モデル、並びにこれを用いたユーザ嗜好型のプリフェッチ・アルゴリズムについて、以下に説明する。
【0098】
図14と図15はともに、ユーザの嗜好性が、ユーザが時系列にアクセスしたURL(以後、「アクセス系列」という)間の関連性に現れることを利用したベイジアン・ネットワーク・モデルである。アクセス系列としては、前回アクセスしたものと今回アクセスしたものの2つを利用している。例えば、あるユーザが毎回スポーツに関するサイトAにアクセスした後、サイトA内のジャンルBのページにアクセスするなどの傾向を確率的に計測したりすることができる。
【0099】
また、図14に示したベイジアン・ネットワーク・モデルと図15に示したベイジアン・ネットワーク・モデルの相違は、季節や時間によるユーザの嗜好性を、リクエスト内容の季節的、時間的な変化を加味して、プリフェッチ対象のページの選定処理を行なうかどうかという点である。例えば、あるユーザが、夏にはスポーツ新聞のサイトAで高校野球に関するページを見る傾向があるが、それ以外の季節ではサッカーに関するページを見る傾向があるなどを確率的に測ることができる。そこで、ユーザ・アクセスの指向性に季節や時間の変化が現れるような場合には、図15を用いる。
【0100】
プリフェッチ対象ページ選定部1007では、ユーザがリクエストしてきたURLの観測値を図14又は図15に示すベイジアン・ネットワーク・モデルに代入し、条件付確率の学習演算を行なって条件付確率の値を算出し、モデル中の個々のノードにおける事後確率を求め、最終的に、ユーザがリクエストしてきたURLの次にアクセスするURLを図14又は図15に示したモデル中の“次のURL”ノード4002の確率値を参考に取得する。
【0101】
ここで、ノード間の条件付の依存関係を向きの付いたリンクによって、Xi→Xjと表し、Xiを親ノード、Xjを子ノードと呼ぶ。また、図14や図15では、図中のノード間の矢印が親子関係を表している。子ノードXjに関する条件付確率Pは、ある子ノードに対する全親ノード集合をπ(Xj)={X1,・・・,Xi}とすると、以下の式で定義される。
【0102】
【数1】
【0103】
各ノードに複数の状態変数があると、この条件付確率は、条件付確率表で表され、例えば図14中の“次のURL”ノード4002における条件付確率表は、図16に示すようになる。
【0104】
ここで言う学習とは、条件付確率の値を、Xi→Xjとなる観測値が得られた観測回数から求める作業のことを意味する。観測回数は、各ノードにおいて、Xi→Xjとなる観測回数を条件付観測回数表で保存しておく。例えば、図14中の“次のURL”ノード4002では、条件付観測回数表は図17に示すようになる。学習は観測値が得られる度に行なわれるので、条件付確率の値も観測値が得られる度に計算されて逐次変化する。
【0105】
事後確率とは、観測された変数の確定値(evidence:e)から知りたい確率変数の取り得る具現値の確率である。事後確率を計算するノードから先の親ノードに与えられるevidenceをe+、計算するノードから先の子ノードに与えられるevidenceをe−とすると、ベイズの定理より、ノードXjの確率は、例えば下式によって求まる。
【0106】
【数2】
【0107】
なお、ベイジアン・ネットワーク・モデルそのものについての一般的な説明、モデルの表現方法、数学的な演算方法などは、例えば、本村陽一著の論文「不確実性モデリングのための情報表現:ベイジアンネット」(BN2001 ベイジアンネットチュートリアル講演論文集、pp.5−13(2001)、人工知能学会 人工知能基礎論研究会)を参照されたい。
【0108】
続いて、ベイジアン・ネットワーク・モデルを用いてユーザの嗜好性を反映したプリフェッチ対象ページを選定する動作について説明する。まず、観測値の設定に関して、図14を例にとって以下に説明する。
【0109】
“クライアントIPアドレスノード”4000へ観測値を設定する場合は、“クライアントIPアドレスノード”4000で、観測値のクライアントIPアドレスの確率値を1に、それ以外を0にして、後の事後確率の計算で“クライアントIPアドレスノード”4000の事後確率を計算しないように、フラグを立てておく。なお、“クライアントIPアドレスノード”4000に該当するものがなければ、新規に観測されたクライアントIPアドレスを“クライアントIPアドレスノード”4000へ追加する。追加する際の確率値は、追加したものを1とし、それ以外は0とし、後の事後確率の計算を行なわないように、フラグを立てておく。
【0110】
“次のURLノード”4002へ観測値を設定する場合は、“次のURLノード”4002で、後の条件付確率の計算(EMアルゴリズム)で使えるように、“次のURLノード”4002の観測されたURLの観測回数を記録しておく。なお、“次のURLノード”4002に該当するURLがなければ、新規に観測されたURLを“次のURLノード”4002に追加する。追加する際の観測回数は1回としておく。
【0111】
“今のURLノード”4001へ観測値を設定する場合は、“今のURLノード”4001で、観測値のURLの確率値を1に、それ以外を0にして、後の事後確率の計算で、 “今のURLノード”4001の事後確率の計算をしないようにフラグを立てておく。なお、“今のURLノード”4001に該当するものがなければ、新規に観測されたURLを、“今のURLノード”4001へ追加する。追加する際の確率値は、追加したものを1とし、それ以外は0とし、後の事後確率の計算を行なわないようにフラグを立てておく。
【0112】
“アクセス間隔(秒)ノード”4003へ観測値を設定する場合は、“アクセス間隔(秒)ノード”4003で、後の条件付確率の計算(EMアルゴリズム)で使えるように、“アクセス間隔(秒)ノード”4003の観測されたアクセス間隔(秒)の観測回数を記録しておく。なお、アクセス間隔(秒)は、前回の観測値で得られた日付、時間と今回の観測値で得られた日付、時間の差分から、“アクセス間隔(秒)ノード”4003の該当箇所に収まるようにして計算する。例えば、差分が38秒ならば30秒とする。
【0113】
また、図15に示すベイジアン・ネットワーク・モデルの場合、“季節ノード”4101に関して、観測値の日付から、例えば、3月〜5月を春、6月〜8月を夏、9月〜11月を秋、12月〜2月を冬として、該当箇所を1に、それ以外を0にして観測値を設定し、“季節ノード”4101の事後確率の計算を行なわないようにフラグを立てる。また、“時間ノード”4102に関して、観測値の時間から、例えば、6時〜9時を朝、9時〜12時を午前、12時〜13時を真昼、13時〜16時を午後、16時〜18時を夕方、18時〜24時を夜、24時〜6時を夜中として、該当箇所を1に、それ以外を0にして観測値を設定し、“時間ノード”4102の事後確率の計算を行なわないようにフラグを立てる。
【0114】
観測値の設定処理が終わると、次いで、条件付確率の学習を行なう(前述)。ここで、条件付確率の学習には、観測値の設定処理で、記録された観測回数を用いて、EMアルゴリズムで条件付確率の学習を行なう。
【0115】
条件付確率の学習の次に、事後確率の計算を行なう(前述)。ここで、事後確率の計算には、観測値の設定処理で、計算しないように立てたフラグが立っていないノードに対して行なう。
【0116】
事後確率の計算が終わると、次に、図14中の“次のURLノード”4002や図15中の“次のURLノード”4002から各URLの確率値を取得し、確率値の高いもの順に並べる。この中で、ある閾値を越える確率を持つものをプリフェッチ対象ページとしてプリフェッチ対象ページ・リスト1008にそのURLと確率値を一旦記録する。ここで言うある閾値とは、例えば、平均値(“次のURLノード”内の全URL分の1)、平均値(“次のURLノード”内の全URL分の1)のα倍などを用いる。
【0117】
次いで、一旦作成したプリフェッチ対象ページ・リスト1008内の各URL毎に、プリフェッチ期限(秒)を“アクセス間隔(秒)ノード”から求める。求め方は、プリフェッチ対象ページ・リスト1008内の各URL毎に、仮に観測されたものとして、“次のURLノード”へ仮の観測値を設定して(仮の観測値に該当するものを1、それ以外を0)、“アクセス間隔(秒)ノード”の事後確率を計算する、この計算された事後確率のうち、確率値の最大となっているものを求める。プリフェッチ対象ページ・リスト1008内の各URL毎にプリフェッチ期限(秒)を求めたら、プリフェッチ対象ページ・リスト1008内にプリフェチ期限(秒)を記録して、プリフェッチ対象ページ・リスト1008を完成させる(前述)。
【0118】
図18には、プリフェッチ対象サイト選定部1009において実行される処理手順をフローチャートの形式で示している。なお、プリフェッチ対象サイト選定部1009の動作自体は、プリフェッチ対象ページ選定部1007と同じで、与えられる観測値が異なっている。
【0119】
プリフェッチ対象サイト選定部1009では、コマンドの受信を待ち(ステップS60)、ログ抽出部1003から観測値を受け取り、選定処理を指示される(ステップS61)と、図14や図15に示すようなベイジアン・ネットワーク・モデルへ観測値を設定する(ステップS62)。観測値の設定の仕方は、プリフェッチ対象ページ選定部と同様である。
【0120】
観測値の設定が終わると、条件付確率の学習(ステップS63)を行なった後、事後確率の計算を行ない(ステップS64)、プリフェッチ対象サイト・リスト1010を作成する(ステップS65)。なお、条件付確率の計算、事後確率の計算、プリフェッチ対象サイト・リスト1010の作成方法は、プリフェッチ対象ページ選定部1007と同様である。
【0121】
プリフェッチ対象サイト・リスト1010を作成したら、プリフェッチ・スケジューラ部1011へリストが作成されたことを通知する(ステップS66)。
【0122】
以上に述べたプリフェッチ対象ページ・リスト1008では、ユーザが時系列にアクセスしたページ間に相関関係があり、相関関係の度合い(確率値)が、ページ間のユーザの嗜好性を反映しているため、相関関係の度合い(確率値)の高いものほど、ユーザの嗜好性が強いことになるから、同リスト1008上には嗜好性が強いと推定されるものが書き込まれる。
【0123】
同様に、プリフェッチ対象サイト・リスト1010では、ユーザが時系列にアクセスしたサイト間に相関関係があり、相関関係の度合い(確率値)が、サイト間のユーザの嗜好性を反映しているため、相関関係の度合い(確率値)の高いものほど、ユーザの嗜好性が強いことになるから、同リスト1010上には嗜好性が強いと推定されるものが書き込まれる。
【0124】
また、条件付観測回数表は、ユーザからのリクエスト要求(観測値)が得られる度に更新されていくので、条件付確率表も更新される。ユーザの嗜好性の変化に伴い、ユーザからのリクエスト要求が変化すると、それに合わせて条件付観測回数表や条件付確率表が変化するので、事後確率も同様に変化する。したがって、プリフェッチ対象ページ・リスト1008又はプリフェッチ対照サイト・リスト1010内に書き込まれたページやサイトが、ユーザの嗜好性に合わせて変化する。この相関関係の度合い(確率値)を基に、ユーザからのリクエストから次にアクセスされることが予想されるページやサイトを順次先読みしてキャッシュ・ディスク1006上に保存しておくことで、ユーザの変遷する嗜好性に応じたキャッシュが可能となる。
【0125】
このようなキャッシュ動作を行なう場合、キャッシュ管理テーブル1005がユーザを区別せずにキャッシュ領域を管理し、あるユーザがアクセスするファイルがキャッシュ・ディスク1006上から消えていたとしても、プリフェッチ対象ページ選定部1007やプリフェッチ対象サイト選定部1009からのユーザ毎に推定された要求に基づいて、次にアクセスされる可能性のある嗜好性の強いページ又はサイトがWebサーバから取得され、常にキャッシュ・ディスク1006上に保存されていくことになる。したがって、ユーザ毎にアクセスされる可能性のある嗜好性の強い(確率値の高い)ファイルが常にキャッシュ・ディスク1006上に存在することになる。
【0126】
図19には、プリフェッチ・スケジューラ部1011において実行される処理手順をフローチャートの形式で示している。
【0127】
プリフェッチ・スケジューラ1011部では、プリフェッチ対象ページ選定部1007やプリフェッチ対象サイト選定部1009から、リスト作成の通知を待っており(ステップS70)、リスト作成完了通知が到来すると(ステップS71)、リスト内のURL、プリフェッチ期限(秒)、確率値と現在時刻をプリフェッチ開始時刻として、現在存在するプリフェッチ・スケジュール表1012へ追加登録する(ステップS72)。プリフェッチ・スケジュール表1012へ登録したら、プリフェッチ部1013へ通知する(ステップS73)。
【0128】
図20には、プリフェッチ部1013において実行される処理手順をフローチャートの形式で示している。
【0129】
プリフェッチ部1013では、プリフェッチ・スケジューラ部1011からの通知を待っており(ステップS80)、通知が到来したら(ステップS81)、プリフェッチ・スケジュール表1012の中から、プリフェッチ開始時刻が現在時刻よりも古いもののうちプリフェッチが未だに完了していないエントリを探して、該当するものは、プリフェッチを中止する(ステップS82)。次に、プリフェッチ・スケジュール表1012から、プリフェッチ開始時刻が現在時刻よりも古いエントリを削除(ステップS83)する。
【0130】
プリフェッチ・スケジューラ部1011から通知が来ない場合には、スケジュール表の該当URLでプリフェッチが行なわれていないものについて、キャッシュ管理部1004に対して、キャッシュ・ディスク1006上に該当URLがあるかどうかを問い合わせる(ステップS84)。
【0131】
該当するURLがキャッシュ・ディスク1006上に存在する場合には(ステップS85)、該当URLが更新されているかどうかを該当URLがあるWebサーバへ問い合わせる(ステップS86)。そして、該当URLが更新されていなかった場合には(ステップS87)、登録通知待ち(ステップS80)へ戻る。
【0132】
また、キャッシュ上に該当URLがなかった場合と(ステップS85)と、該当URLが更新されていた場合には(ステップS87)、まず、リスト内の対象URLのサイズを、対象URLのあるWebサーバからHTTPプロトコルを用いて調べる。
【0133】
このサイズを調べる際に、対象URLのあるWebサーバのレスポンスからおおよその帯域を得て、プリフェッチ・スケジュール表1012へ、サイズと帯域を記録する(ステップS88)。サイズと帯域からプリフェッチにかかる時間が求まるので、プリフェッチ期限と比べる。
【0134】
プリフェッチ期限を越えていた場合は、現在プリフェッチが行なわれている確率値の低いものから順に、プリフェッチを一旦中止し、再度レスポンスを計測して、プリフェッチ期限内に収まるかを試行する。そして、どうしてもプリフェッチ期限内に収まらない場合には、プリフェッチを行なわないように設定する。
【0135】
次に、プリフェッチを一旦中止していた確率値の低いものについて、再度、プリフェッチを続けるようにする(ステップS89)。
【0136】
次に、スケジュール表の該当URLでプリフェッチが行なわれていないものについて、スケジュール表の確率値順に該当URLに対応するページ、ページ内の画像等のファイル一式を取得する(ステップS90)。ファイル取得していく過程で、取得順に、キャッシュ管理部1004へ、取得したファイルを書き込むように依頼する(ステップS91)。
【0137】
図21及び図22には、本実施形態に係るキャッシュ・システム1000の介在によりユーザの端末からWebサーバ上のページを取得するための動作シーケンスを示している。
【0138】
図21には、キャッシュ・システム1000上にリクエストされたページが存在する場合の動作シーケンスが描かれている。
【0139】
この場合、まず、端末からのページ取得リクエストをWWWキャッシュ・システムが受け取る。
【0140】
次に、WWWキャッシュ・システム内のキャッシュ上に、端末からリクエストされたページが存在しているかどうか検索する。そして、キャッシュ上に存在していれば、端末からリクエストされたページを端末に返す。
【0141】
次に、WWWキャッシュ・サーバは、端末からリクエストされたページの次にアクセスされる可能性のあるページを上述した手順に従って予測し、これをWWWサーバにリクエストする。WWWサーバは、WWWキャッシュ・システムからリクエストされたページを、WWWキャッシュ・システムへ返す。
【0142】
WWWキャッシュ・システムは、リクエストしたページをWWWサーバから受け取ると、WWWキャッシュ・システム内のキャッシュ上に、リクエストしたページを書き込む。
【0143】
また、図22には、キャッシュ・システム1000上にリクエストされたページが存在しない場合の動作シーケンスが描かれている。
【0144】
この場合、まず、端末からのページ取得リクエストをWWWキャッシュ・システムが受け取る。次に、WWWキャッシュ・システム内のキャッシュ上に、端末からリクエストされたページが存在しているかどうかを検索する。
【0145】
そして、キャッシュ上に存在していなければ、端末からリクエストされたページをWWWサーバへリクエストする。WWWサーバは、WWWキャッシュ・システムからリクエストされたページを、WWWキャッシュ・システムへ返す。
【0146】
WWWキャッシュ・システムは、リクエストしたページをWWWサーバから受け取ると、端末にWWWサーバから受け取ったページを送信するとともに、WWWキャッシュ・システム内のキャッシュ領域上に、リクエストしたページを書き込む。
【0147】
次に、WWWキャッシュ・システムは、端末からリクエストされたページの次にアクセスされる可能性のあるページを上述した手順に従って予測し、これをWWWサーバにリクエストする。
【0148】
WWWサーバは、WWWキャッシュ・システムからリクエストされたページを、WWWキャッシュ・システムへ返す。WWWキャッシュ・システムは、リクエストしたページをWWWサーバから受け取ると、WWWキャッシュ・システム内のキャッシュ上に、リクエストしたページを書き込む。
【0149】
最後に、本実施形態に係るキャッシュ・システムを動作させるハードウェア環境について、図23を参照しながら説明する。
【0150】
CPU5000は、例えば米インテル社のプロセッサ・チップ“Pentium(登録商標)”などを用いて構成され、本キャッシュ・サーバ装置の全体の動作を統括的に制御するとともにさまざまな演算処理を行なう機能を備えている。CPU5000上では、オペレーティング・システム(OS)が提供する実行環境下で、本実施形態に係るキャッシュ・サーバ・アプリケーションを始めとしてさまざまなアプリケーションプログラムが動作する。
【0151】
キャッシュ・メモリ5001は、例えばSRAM(Static RAM)などで構成される小容量の高速メモリであり、CPU5000が頻繁にアクセスするコマンドやデータなどの情報を一時記憶し、CPU5000と直接的な情報授受を行なうことにより、システムの高速化を図っている。
【0152】
システム・コントローラ5002は、CPU5000のローカル・ピンに直結するホストバス5008と、周辺バスとしてのPCI(Peripheral Component Interconnect)バス5009とのインターフェース・プロトコルを実現し、CPU5000と、主メモリ5003、キャッシュ・メモリ5001、その他の各種資源(ハードディスク・フレキシブル・ディスクなど)のシステム全体のタイミング調整などを行なう。システム・コントローラ5002は、例えば、米インテル社のTRITON(430FX)などを用いて構成される。
【0153】
主メモリ5003は、例えばDRAM(Dynamic RAM)などを用いて構成される半導体メモリ装置であり、CPU5000において実行されるプログラム・コードをロードしたり、実行プログラムの作業データの保存領域として用いられたりする。例えば、本発明に係るキャッシュ・サーバ・アプリケーションが主メモリ5003にロードされ、CPU5000によって実行される。また、アクセス・ログ1002や、キャッシュ管理テーブル1005、プリフェッチ対象ページ・リスト1008、プリフェッチ対象サイト・リスト1010、プリフェッチ・スケジュール表1012などが、主メモリ5003に一時的に保管される。
【0154】
CPU5000やシステム・コントローラ5002の指示により、主メモリ5003への情報の書き込み・読み出し動作が行なわれる。また、主メモリ5003は、システム・コントローラ5002を通じてCPUや各種資源に接続され、これらの要求に従って情報の記憶が行なわれる。
【0155】
ホストバス5008は、CPU5000に直接接続された情報の伝達手段であり、キャッシュ・メモリ5001やシステム・コントローラ5002などと情報授受ができるようになっている。
【0156】
PCIバス5009は、ホストバス5008と分離された情報の伝達手段であって、システム・コントローラ5002によって相互接続されている。そして、システム・コントローラ5002を介してCPU5000はPCIバス5009上に接続された各種のハードウェア資源にアクセスすることができる。
【0157】
HDコントローラ5004は、ハード・ディスク・ドライブ(HDD)5005とPCIバス5009に接続され、PCIバス5009を介したディスク・アクセス要求に応答して、ディスク5005内の特定の領域への情報の書き込み・読み出し動作を制御するようになっている。ハード・ディスク上には、CPU5000において実行されるプログラムをインストールしたり、プログラムやデータなどのコンピュータ・ファイルが蓄積したりする。例えば、本発明に係るキャッシュ・サーバ・アプリケーションがハード・ディスク上にインストールされ、あるいは、アクセス・ログ1002や、キャッシュ管理テーブル1005、プリフェッチ対象ページ・リスト1008、プリフェッチ対象サイト・リスト1010、プリフェッチ・スケジュール表1012などがハード・ディスク上に蓄積される。
【0158】
FDコントローラ5006は、フレキシブル・ディスクを取り出し可能に装填するフレキシブル・ディスク・ドライブ5007とPCIバス5009に接続され、PCIバス5009を介したディスク・アクセス要求に応答して、フレキシブル・ディスク内の特定の領域に情報の書き込み・読み出し動作を制御するようになっている。
【0159】
あるいは、システム内には、フレキシブル・ディスク以外の可搬型メディアを装填してアクセス動作を行なうメディア・ドライブがPCIバス5009に接続されていてもよい。この種の可搬型メディアは、システム間でのプログラムやデータの移動に利用される。例えば、本発明に係るキャッシュ・サーバ・アプリケーションや、キャッシュ・サーバ動作において利用されるアクセス・ログ1002や、キャッシュ管理テーブル1005、プリフェッチ対象ページ・リスト1008、プリフェッチ対象サイト・リスト1010、プリフェッチ・スケジュール表1012などを、可搬型メディアを介して複数のシステム間で移動することができる。
【0160】
マウス・コントローラ5010は、ユーザ入力装置としてのマウス5011(並びにキーボード(図示しない))とPCIバス5009を接続し、操作者が強制したマウスの動きやその他のユーザ入力操作を所定のシーケンスに従ってCPU5000に伝達するようになっている。CPU5000側では、例えばGUI(Graphical User Interface)環境を提供し、CRTディスプレイ5013上に表示された映像に対して併せて表示されたマウス・ポインタ(矢印絵文字)を相対的に移動させる情報作成の基礎情報を生成することができる。CRTディスプレイ5013は、CRTC(5012)に接続され、CPUの作成した状態その他の情報を、映像として表示するようになっている。
【0161】
CRTC(CRTコントローラ)5012は、PCIバス5009に接続され、CPU5000などの指示に基づいて、図形などの描画情報をCRTディスプレイ5013上に描画する。
【0162】
ネットワーク・インターフェース5014は、当該システムを、LANやインターネットなどの外部ネットワークに接続する。システムは、ネットワーク上では、上述したキャッシュ・サーバとして動作し、端末からのリクエストをネットワーク・インターフェース5014を介して受け取り、ファイルの配信やWWWサーバからのファイル取得、各ユーザ毎のアクセス系列の解析、ファイルの先読みなどの動作を実行する。
【0163】
また、ネットワーク上では、システム間でのプログラムやデータの移動(ダウンロード)が行なわれる。例えば、本発明に係るキャッシュ・サーバ・アプリケーションや、キャッシュ・サーバ動作において利用されるアクセス・ログ1002や、キャッシュ管理テーブル1005、プリフェッチ対象ページ・リスト1008、プリフェッチ対象サイト・リスト1010、プリフェッチ・スケジュール表1012などを、ネットワークを介してシステム間で転送することができる。
【0164】
[追補]
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0165】
【発明の効果】
以上詳記したように、本発明によれば、WWW情報空間で不特定多数のユーザに提供される情報の中から、特定のユーザの要求に応じて効率的に情報を提供することができる、優れた情報提供システム及び情報提供方法、並びにコンピュータ・プログラムを提供することができる。
【0166】
また、本発明によれば、WWW情報をキャッシュしておくことにより特定のユーザの要求から比較的短い応答時間で情報を提供することができる、優れた情報提供システム及び情報提供方法、並びにコンピュータ・プログラムを提供することができる。
【0167】
また、本発明によれば、ユーザが要求する情報を先読みすることにより、ユーザの要求から比較的短い応答時間で情報を提供することができる、優れた情報提供システム及び情報提供方法、並びにコンピュータ・プログラムを提供することができる。
【0168】
また、本発明によれば、時々刻々と変わるユーザの嗜好性の変化に対応してユーザが要求する情報を先読みしておくことにより、ユーザの要求から比較的短い応答時間で情報を提供することができる、優れた情報提供システム及び情報提供方法、並びにコンピュータ・プログラムを提供することができる。
【0169】
本発明によれば、ユーザのリクエスト・ログを用いてユーザ毎にプリフェッチを行なうことで、不特定多数ではなく、特定のユーザのリクエストしたWWW情報を効率的にキャッシュすることができる。また、先読みする機構に、確率ネットワーク・モデルの1つであるベイジアン・ネットワーク・モデルを用いることで、刻一刻と変わるユーザの嗜好性の変化に応じてアクセス・パターンが変化したとしても、これに対応して先読み対象を確率的に求め、先読み対象を限定し、ユーザの変化に動的に対応することができる。
【図面の簡単な説明】
【図1】本発明を適用したWWW情報提供システムの構成例を模式的に示した図である。
【図2】本発明を適用したWWW情報提供システムについての他の構成例を模式的に示した図である。
【図3】本発明を適用したWWW情報提供システムについてのさらに他の構成例を模式的に示した図である。
【図4】本発明の一実施形態に係るキャッシュ・システム1000の機能構成を模式的に示した図である。
【図5】アクセス・ログ1002において記録されているログのデータ構造の一例を示した図である。
【図6】キャッシュ管理テーブル1005のデータ構造の一例を示した図である。
【図7】プリフェッチ対象ページ・リスト1008のデータ構造の一例を示した図である。
【図8】プリフェッチ対象サイト・リスト1010のデータ構造の一例を示した図である。
【図9】プリフェッチ・スケジュール表1012のデータ構造を模式的に示した図である。
【図10】リクエスト処理部1001において実行される処理手順を示したフローチャートである。
【図11】ログ抽出部1003において実行される処理手順を示したフローチャートである。
【図12】キャッシュ管理部1004において実行される処理手順を示したフローチャートである。
【図13】プリフェッチ対象ページ選定部1007において実行される処理手順を示したフローチャートである。
【図14】ベイジアン・ネットワーク・モデルの構成例を示した図である。
【図15】ベイジアン・ネットワーク・モデルの構成例を示した図である。
【図16】条件付確率表を示した図である。
【図17】条件付確率観測回数表を示した図である。
【図18】プリフェッチ対象サイト選定部1009において実行される処理手順を示したフローチャートである。
【図19】プリフェッチ・スケジューラ部1011において実行される処理手順を示したフローチャートである。
【図20】プリフェッチ部1013において実行される処理手順を示したフローチャートである。
【図21】キャッシュ・システム1000の介在によりユーザの端末からWebサーバ上のページを取得するための動作シーケンス(但し、キャッシュ・システム1000上にリクエストされたページが存在する場合)を示した図である。
【図22】キャッシュ・システム1000の介在によりユーザの端末からWebサーバ上のページを取得するための動作シーケンス(但し、キャッシュ・システム1000上にリクエストされたページが存在しない場合)を示した図である。
【図23】本発明に係るキャッシュ・システムを動作させるハードウェア構成の一例を示した図である。
【図24】すべてのユーザの端末を区別しない場合におけるキャッシュ管理テーブル1005のデータ構造の一例を示した図である。
【符号の説明】
1000…キャッシュ・システム
1001…リクエスト処理部
1002…アクセス・ログ
1003…ログ抽出部
1004…キャッシュ管理部
1005…キャッシュ管理テーブル
1006…キャッシュ・ディスク
1007…プリフェッチ対象ページ選定部
1008…プリフェッチ対象ページ・リスト
1009…プリフェッチ対象サイト選定部
1010…プリフェッチ対象サイト・リスト
1011…プリフェッチ・スケジューラ部
1012…プリフェッチ・スケジュール表
1013…プリフェッチ部
5000…CPU,5001…キャッシュ・メモリ
5002…システム・コントローラ,5003…主メモリ
5004…HDコントローラ,5005…HDD
5006…FDコントローラ,5007…FD
5008…ホストバス,5009…PCIバス
5010…マウス・コントローラ,5011…マウス
5012…CRTディスプレイ,5013…CRTコントローラ
5014…ネットワーク・インターフェース[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an information providing system, an information providing method, and a computer program for providing information requested by a user, and more particularly, to a specific user among information provided to an unspecified number of users in a WWW information space. The present invention relates to an information providing system, an information providing method, and a computer program for efficiently providing information in response to a request from a user.
[0002]
More specifically, the present invention relates to an information providing system and an information providing method for providing information with a relatively short response time from a request of a specific user by caching WWW information, and a computer program. An information providing system, an information providing method, and a computer program for providing information in a relatively short response time from a user request by pre-reading and caching (that is, pre-reading) information expected to be requested by the user. About.
[0003]
[Prior art]
Recently, network computing technology is evolving rapidly. Under a network connection environment, cooperative work such as sharing of computer resources and sharing, distribution, distribution, and exchange of information can be smoothly performed.
[0004]
There are various forms of networks for interconnecting computers. For example, a locally laid LAN (Local Area Network) such as Ethernet (registered trademark), and the “Internet” which has literally grown into a world-wide network as a result of repeatedly interconnecting networks. (The Internet). In particular, the Internet has become widespread along with the spread of broadband communication and constant connection.
[0005]
On the Internet, servers are interconnected on the basis of TCP / IP (Transmission Control Protocol / Internet Protocol), and WWW (world wide web), News, TELNET (TELetypewriter NETwork), FTP (multiple file browser, etc.) Service is open to the public.
[0006]
Of these, WWW is a wide-area information retrieval system that provides an information space having a hyperlink structure, and is the largest factor for the explosive growth and rapid spread of the Internet. On the WWW system, information contents of various media such as texts, images, and sounds are disclosed. A user of the WWW service can connect to a server that provides WWW information from the client device via the Internet and acquire WWW information.
[0007]
The WWW information is described in a hypertext format description language called HTML (Hyper Text Markup Language). According to TCP / IP, an information resource is specified by an identifier in the form of a URL (Uniform Resource Locator), and is capable of transferring an HTML document according to an HTTP (Hyper Text Transfer Protocol) protocol (well-known).
[0008]
WWW information is usually provided from a server in units called pages. On the client side, WWW information can be downloaded in page units using a WWW browser and displayed on the screen as a WWW page. A WWW page described in a hypertext format has a mutual reference relationship with a page provided on the same server or a page provided on another server by a hyperlink. .
[0009]
Here, when using WWW information, there is a problem that response time when information is obtained directly from the server is slow due to processing time of the server and bandwidth of the Internet.
[0010]
In order to solve this problem, a technique has been adopted in which a WWW information providing device called a cache server is installed on the Internet consisting of a user's client device and a device for providing WWW information (for example, see Patent Reference 1). The cache server stores WWW information frequently accessed among the WWW information requested by an unspecified number of users in the apparatus. If the information requested by the user is present in the apparatus (cache hit), the information is provided to the user. If the requested information is not present in the apparatus (cache miss), the information is provided to the server that provides the WWW information. And provide it to the requesting user.
[0011]
However, the conventional cache server is generally shared by an unspecified number of users and has a finite storage capacity. Therefore, the cache server follows a logic such as FIFO (Fast In Fast Out) or LRU (Least Recently Used). -Data management (data deletion) is being performed. In such a case, the cache server stores the frequently accessed WWW information in the device based on the access information of the unspecified number of users, so that the information requested by the specific user is not necessarily stored in the cache server. It is not always stored. For this reason, a cache miss results in the cache server sequentially obtaining information from the server that provides the WWW information, and as a result, the problem of response time cannot be solved.
[0012]
Further, link information to another page is obtained from within the reference page of the WWW information requested by the user, and all the reference pages are read ahead to reduce the response time ( See, for example, Non-Patent Document 1).
[0013]
However, in this case, in all pages, since all the link destinations in the page are prefetched, prefetching is performed even to the one that is likely not to be accessed, which is inefficient and wastes bandwidth. Problem.
[0014]
There is also a method in which importance and priority are set for a reference page of a user or WWW information, and prefetching is performed (for example, see Patent Document 2). For example, a mechanism is provided for totalizing and analyzing the history of WWW data access of the proxy server, and a priority is given to data cached in the cache server based on the analysis result. Then, a condition is set as to whether or not to perform prefetch for each requested data according to the priority. As a result, it is possible to improve the cache recall rate by prefetching while suppressing an increase in the load on the network due to prefetching.
[0015]
However, in this case, since the importance and the priority become uniform, there is a problem that the object to be pre-read also becomes uniform. In other words, when the user's preference changes and the access pattern changes dynamically, the cache server cannot cope.
[0016]
[Patent Document 1]
JP-A-10-21174
[Patent Document 2]
JP-A-11-149405
[Non-patent document 1]
Full technical explanation of Web server, Nikkei BP
[0017]
[Problems to be solved by the invention]
An object of the present invention is to provide an excellent information providing system and information which can efficiently provide information according to a request of a specific user from information provided to an unspecified number of users in a WWW information space. An object of the present invention is to provide a providing method and a computer program.
[0018]
A further object of the present invention is to provide an excellent information providing system, an information providing method, and a computer program, which can provide information with a relatively short response time from a request of a specific user by caching WWW information. Is to provide.
[0019]
A further object of the present invention is to provide an excellent information providing system and information providing method capable of providing information in a relatively short response time from a user request by pre-reading information that the user will request, And to provide a computer program.
[0020]
It is a further object of the present invention to provide information in a relatively short response time from a user request by pre-reading information requested by the user in response to a change in user's preference changing every moment. An object of the present invention is to provide an excellent information providing system, an information providing method, and a computer program.
[0021]
Means and Action for Solving the Problems
The present invention has been made in consideration of the above problems, and a first aspect of the present invention is an information providing system for providing information including pages having a mutual reference relationship across a plurality of sites,
Log extraction means for extracting a request log requesting information for each user;
A prefetch target page selecting unit that predicts a next page to be accessed based on an access sequence of pages included in the request log, and obtains a page to be prefetched for each user;
Prefetch target site selection means for predicting the next site to be accessed based on the access sequence of the site included in the request log, and seeking a site to be prefetched for each user,
A prefetch unit that prefetches information based on a page and a site selected by the prefetch target page selection unit and the prefetch target site selection unit;
An information providing system comprising:
[0022]
However, the term “system” as used herein refers to a logical collection of a plurality of devices (or functional modules that realize specific functions), and each device or functional module is in a single housing. It does not matter in particular.
[0023]
The information providing system according to the present invention provides information with a relatively short response time from a user request by caching WWW information published in a WWW server.
[0024]
At this time, by performing prefetching for each user using the user's request log, WWW information requested by a specific user, rather than an unspecified majority, can be efficiently cached.
[0025]
Here, the prefetch target page selection unit and / or the prefetch target site selection unit uses a probability network model for each user that describes a user's access sequence to determine a page and / or site that the user next accesses. Predict.
[0026]
That is, by using the Bayesian network model, which is one of the probability network models, for the mechanism for prefetching WWW information, even if the access pattern changes in response to the user's ever-changing preference. In response to this, it is possible to stochastically obtain a prefetch target, limit the prefetch target, and dynamically respond to a change of the user.
[0027]
In addition, the prefetch target page selection unit and / or the prefetch target site selection unit can update the probability network model based on the access result of the next user.
[0028]
Further, the prefetch means may perform a prefetch operation for a prefetch target in consideration of a load on a network or the like. For example, the priorities of the pages and / or sites to be prefetched based on the prediction may be rearranged in consideration of the network load.
[0029]
Further, cache information such as prefetched information may be stored in a storage area allocated to each user. Alternatively, cache information may be managed on the same storage space without distinguishing users.
[0030]
A second aspect of the present invention is described in a computer-readable format so as to execute, on a computer system, a process for providing information comprising pages having a mutual reference relationship across a plurality of sites. A computer program,
A log extracting step of extracting a request log requesting information for each user;
A prefetch target page selection step of predicting the next page to be accessed based on the access sequence of the pages included in the request log, and seeking a page to be prefetched for each user;
A prefetch target site selection step of predicting the next site to be accessed based on the access sequence of the site included in the request log and obtaining a site to be prefetched for each user;
A prefetch step of prefetching information based on the page and site selected by the prefetch target page selection step and the prefetch target site selection step;
A computer program characterized by comprising:
[0031]
The computer program according to the second aspect of the present invention defines a computer program described in a computer-readable format so as to realize a predetermined process on a computer system. In other words, by installing the computer program according to the second aspect of the present invention into a computer system, a cooperative action is exerted on the computer system, and the information provision according to the first aspect of the present invention is provided. The same operation and effect as those of the system can be obtained.
[0032]
Further objects, features, and advantages of the present invention will become apparent from more detailed descriptions based on embodiments of the present invention described below and the accompanying drawings.
[0033]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0034]
According to the present invention, a cache server is arranged on the Internet comprising a client device of a user and a device for providing WWW information, and the cache server performs a prefetch operation for information to be accessed next for each user. Thus, WWW information requested by a specific user, not an unspecified number, is efficiently provided.
[0035]
FIG. 1 schematically shows a configuration example of a WWW information providing system to which the present invention is applied. In the example shown in the figure, a terminal 100 as a client from which a user requests information, a
[0036]
The terminal 100 is a client terminal used when a user browses WWW information on the Internet, and corresponds to, for example, a PC (Personal Computer), a PDA (Personal Data Assistants), or a mobile phone.
[0037]
The
[0038]
WWW information is described using a hypertext format description language called HTML. The WWW information is specified by a URL and can be transferred according to the HTTP protocol. The WWW information is usually provided from the server in units called pages (hereinafter, referred to as “Web pages”). On the client side, WWW information can be downloaded in page units using a WWW browser and displayed on the screen as a Web page. In addition, a Web page described in a hypertext format has a mutual reference relationship with a page provided on the same server or a page provided on another server by a hyperlink. .
[0039]
The
[0040]
In the illustrated form, a user request flows from the terminal 100 to the
[0041]
In the
[0042]
In addition, when the
[0043]
FIG. 2 schematically shows another configuration example of the WWW information providing system to which the present invention is applied. In the example shown in FIG. 1, a terminal 200 as a client from which a user requests information, an in-
[0044]
A web server 206 that provides WWW information in page units and a
[0045]
In the illustrated form, a user request flows from the terminal 200 to the
[0046]
In the
[0047]
In addition, when the
[0048]
FIG. 3 schematically shows still another configuration example of the WWW information providing system to which the present invention is applied. In the example shown in the figure, a terminal 300 as a client from which a user requests information and a
[0049]
In the illustrated form, a user request is first passed from the terminal 300 to the
[0050]
Also, when the
[0051]
FIG. 4 schematically shows a functional configuration of a cache system according to an embodiment of the present invention.
[0052]
The request processing unit 1001 records the user request in the
[0053]
FIG. 5 shows an example of the data structure of a log recorded in the
[0054]
The
[0055]
In response to a request from the request processing unit 1001 or the
[0056]
FIG. 6 shows an example of the data structure of the cache management table 1005. In the example shown in the figure, cache management information is managed for each requesting client user. Each client is identified by an IP address and has a dedicated cache storage capacity assigned to it. The cache management table 1005 manages the storage capacity allocated to each client and the storage capacity currently in use, and for each client, the last access date and time, URL, cache disk, and the like for the requested Web page. A list including file names in (1006) is recorded. The list of requested Web pages is arranged, for example, in descending order of the last access date and time for each client.
[0057]
When a file is searched by the
[0058]
On the other hand, a method of managing files without distinguishing terminals of all users is also conceivable. A general cache server employs such a management method. FIG. 24 illustrates an example of the data structure of the cache management table 1005 when terminals of all users are not distinguished. In the example shown in the figure, each client is not identified on the cache management table 1005, and there is no cache area allocation for each client. The cache management table 1005 keeps track of the allocated capacity and the current capacity of the
[0059]
According to the present invention, every time a request is received from a user terminal, a page or a site that may be requested next, such as a requested page, is predicted, and the predicted page or site is obtained from a Web server (prefetching). Then, it is cached in advance on the cache disk 1006 (described later). Regardless of the configuration of the cache management table 1005 shown in FIG. 6 or FIG. 24, a page or the like that may be requested always exists on the cache management table 1005 and the
[0060]
The prefetch target page selection unit 1007 receives the information extracted from the
[0061]
FIG. 7 shows an example of the data structure of the prefetch
[0062]
The prefetch target
[0063]
FIG. 8 shows an example of the data structure of the prefetch
[0064]
In response to the notification from the prefetch target page selection unit 1007, the
[0065]
FIG. 9 schematically shows the data structure of the prefetch schedule table 1012. In the example shown in the figure, pages and sites selected as prefetch targets are listed in order of probability value, the prefetch start time, prefetch deadline, URL of the page or site, data to be prefetched for each prefetch target page or site. , A band used at the time of prefetch, a probability value, a prefetch type, a prefetch status, and the like.
[0066]
The
[0067]
Subsequently, a processing operation executed in each unit in the
[0068]
FIG. 10 shows a processing procedure executed by the request processing unit 1001 in the form of a flowchart.
[0069]
The request processing unit 1001 waits for a request from the user (step S10), and upon receiving the request (step S11), first writes the request to the access log 1002 (step S12).
[0070]
After writing the request in the
[0071]
Next, it inquires of the
[0072]
If the data is cached in the cache disk 1006 (cache hit), a request is made to the
[0073]
On the other hand, if the cached page is not cached in the cache disk 1006 (cache miss), the requested Web page or the like is acquired from the external server (step S17), and the acquired Web page or the like is cached to the
[0074]
FIG. 11 shows a processing procedure executed in the
[0075]
The
[0076]
Next, an observation value is extracted from the read user request (step S23). As an observation value, for example, in the case of an access log as shown in FIG. 5, an access date and time, a client IP address, a URL, and a document type are extracted.
[0077]
The
[0078]
Next, focusing on the URL of the extracted information, it is determined whether or not the previous URL and the site have been changed (step S25). If the previous URL is different from the site, the extracted information is sent to the prefetch target
[0079]
For example, the URL previously requested by the same user is “http://www.aaa.co.jp/bbb.htm”, and the URL requested this time is “http://www.bbb.ne.jp/index. .Htm ”, the
[0080]
FIG. 12 shows, in the form of a flowchart, a processing procedure executed in the
[0081]
The
[0082]
If the file corresponding to the requested URL exists in the
[0083]
If the command is a read request (step S35), the cache management table 1005 as shown in FIG. 6 is checked to determine whether a file corresponding to the requested URL exists on the
[0084]
If the file corresponding to the URL exists on the
[0085]
If the command is a write request (step S39), first, the current size of the cache management table 1005 as shown in FIG. It is checked whether or not the allocated capacity specified in the table 1005 has been exceeded (step S40).
[0086]
If the allocated capacity is not exceeded, a file corresponding to the URL is written in the cache area (step S42), and the cache management table 1005 is updated (step S43).
[0087]
On the other hand, if the sum of the file size of the requested URL and the requested size exceeds the allocated area, the file is written starting from the oldest file from the access date and time by the size of the file corresponding to the written URL. Is erased to secure a cache area (step S41), a file corresponding to the URL is written in the cache area (step S42), and the cache management table 1005 is updated (step S43).
[0088]
FIG. 13 is a flowchart illustrating a processing procedure performed by the prefetch target page selection unit 1007.
[0089]
The prefetch target page selection unit 1007 is waiting for a command to be received (step S50), receives an observation value from the
[0090]
For a general description of the Bayesian network model, see, for example, a paper by Yoichi Motomura, "Information Representation for Uncertainty Modeling: Bayesian Net" (BN2001 Bayesian Net Tutorial Lecture Book, pp. 5-13 (2001)). , The Japan Society for Artificial Intelligence Artificial Intelligence Basic Research Group).
[0091]
After the observation value setting process is completed, learning of conditional probability is performed (step S53). Here, in the learning of the conditional probability, in the process of setting the observation value, the conditional probability is learned by the EM algorithm using the recorded number of observations. For more information on the EM algorithm, see, for example, "Machine Watanabe and Kazunori Yamaguchi, edited by EM Algorithm and Problems of Incomplete Data" (Taga Publishing).
[0092]
Following the learning of the conditional probability, the posterior probability is calculated (step S54). Here, the calculation of the posterior probabilities is performed on the nodes in which the flag set not to be calculated is not set in the observation value setting processing. The calculation of posterior probabilities is described in, for example, a paper by Yoichi Motomura, "Information Representation for Uncertainty Modeling: Bayesian Net" (BN2001, Bayesian Net Tutorial Lecture Book, pp. 5-13 (2001), Artificial Intelligence Society) Please refer to the Artificial Intelligence Fundamental Research Group).
[0093]
After the calculation of the posterior probabilities, the probability value of each URL is acquired from the “next URL node” 4002 shown in FIG. 14 or the “next URL node” 4002 shown in FIG. They are arranged in the order of the objects (described later). Among these, a URL having a probability exceeding a certain threshold is set as a prefetch target page, and the URL and the probability value are temporarily recorded in the prefetch target page list. Here, the certain threshold value is, for example, an average value (1 / all the URLs in the “next URL node”) or α times the average value (1 / all the URLs in the “next URL node”). Is used.
[0094]
Next, a prefetch time limit (second) is obtained from the “access interval (second) node” for each URL in the once created prefetch target page list. The method of finding is to set a temporary observation value to the “next URL node” as a provisionally observed one for each URL in the prefetch target page list (one corresponding to the provisional observation value is set to 1, Otherwise, the posterior probability of the “access interval (second) node” is calculated. Among the calculated posterior probabilities, the one having the maximum probability value is obtained.
[0095]
After obtaining the prefetch time limit (seconds) for each URL in the prefetch target page list, the prefetch time limit (seconds) is recorded in the prefetch target page list to complete the prefetch target page list (step S55).
[0096]
After creating the prefetch target page list, the
[0097]
Here, a Bayesian network model and a user preference type prefetch algorithm using the same will be described below with reference to the examples shown in FIGS.
[0098]
14 and 15 are both Bayesian network models utilizing the fact that the user's preference appears in the relevance between URLs accessed by the user in time series (hereinafter, referred to as “access series”). Two access sequences are used, one that was accessed last time and one that was accessed this time. For example, it is possible to stochastically measure a tendency that a certain user accesses a site A relating to sports every time and then accesses a page of a genre B in the site A.
[0099]
In addition, the difference between the Bayesian network model shown in FIG. 14 and the Bayesian network model shown in FIG. 15 takes into account the user's preference according to the season and time, and the seasonal and temporal changes in the request contents. That is, whether or not to perform a process of selecting a page to be prefetched. For example, it is possible to stochastically measure that a certain user tends to view a page related to high school baseball on the sports newspaper site A in summer, but tends to view a page related to soccer in other seasons. Therefore, in a case where the seasonality and time change appear in the directivity of user access, FIG. 15 is used.
[0100]
The prefetch target page selection unit 1007 substitutes the observed value of the URL requested by the user into the Bayesian network model shown in FIG. 14 or FIG. 15 and performs a conditional probability learning operation to calculate a value of the conditional probability. Then, the posterior probabilities at the individual nodes in the model are obtained, and finally, the URL accessed next to the URL requested by the user is determined by the “next URL”
[0101]
Here, conditional links between nodes are represented by X i → X j And X i Is the parent node, X j Is called a child node. In FIGS. 14 and 15, arrows between nodes in the figures represent parent-child relationships. Child node X j The conditional probability P for all child nodes for a given child node is π (X j ) = {X 1 , ..., X i If}, it is defined by the following equation.
[0102]
(Equation 1)
[0103]
If there are a plurality of state variables at each node, the conditional probability is represented by a conditional probability table. For example, the conditional probability table at the “next URL”
[0104]
Learning here means that the value of the conditional probability is X i → X j Means the work to obtain from the number of observations where the observed value is obtained. The number of observations is X i → X j The number of observations that becomes is stored in the conditional observation number table. For example, in the “next URL”
[0105]
The posterior probability is the probability of a possible actual value of a random variable desired to be known from the observed variable definite value (evidence: e). Evidence given from the node for calculating the posterior probability to the parent node ahead is e + Evidence given from the node to be calculated to the previous child node − Then, from Bayes' theorem, node X j Is determined, for example, by the following equation.
[0106]
(Equation 2)
[0107]
For a general description of the Bayesian network model itself, the model expression method, and the mathematical calculation method, see, for example, a paper by Yoichi Motomura, "Information Expression for Uncertainty Modeling: Bayesian Net" ( BN2001 Bayesian Net Tutorial Lecture Collection, pp. 5-13 (2001), Japanese Society for Artificial Intelligence, Artificial Intelligence Fundamental Study Group).
[0108]
Next, an operation of selecting a prefetch target page that reflects the user's preference using the Bayesian network model will be described. First, setting of observation values will be described below with reference to FIG. 14 as an example.
[0109]
When setting the observation value in the “client IP address node” 4000, the “client IP address node” 4000 sets the probability value of the client IP address of the observation value to 1, the other values to 0, and sets the subsequent posterior probability. A flag is set so that the posterior probability of “client IP address node” 4000 is not calculated in the calculation. If there is no “client IP address node” 4000, the newly observed client IP address is added to the “client IP address node” 4000. The probability value at the time of addition is set to 1 for the added value, and set to 0 for the other values, and a flag is set so that subsequent posterior probabilities are not calculated.
[0110]
When an observation value is set to the “next URL node” 4002, the “next URL node” 4002 is used for the observation of the “next URL node” 4002 so that it can be used in the calculation of the conditional probability (EM algorithm) later. The number of times the URL was observed is recorded. If there is no URL corresponding to the “next URL node” 4002, the newly observed URL is added to the “next URL node” 4002. The number of observations when adding is set to one.
[0111]
When setting the observation value in the “current URL node” 4001, the probability value of the URL of the observation value is set to 1 in the “current URL node” 4001, and the other values are set to 0 in the subsequent posterior probability calculation. A flag is set so that the posterior probability of the “current URL node” 4001 is not calculated. If there is no “current URL node” 4001, the newly observed URL is added to the “current URL node” 4001. The added probability value is set to 1 for the added value, and set to 0 for the other values, and a flag is set so as not to calculate the posterior probability.
[0112]
When an observation value is set in the “access interval (second) node” 4003, the “access interval (second) node” 4003 uses the “access interval (second) node” so that it can be used in the calculation of the conditional probability (EM algorithm) later. ) Record the number of observations of the observed access interval (second) of the node “4003”. Note that the access interval (second) falls within the corresponding location of the “access interval (second) node” 4003 from the difference between the date and time obtained by the previous observation value and the date and time obtained by the current observation value. To calculate. For example, if the difference is 38 seconds, it is 30 seconds.
[0113]
In the case of the Bayesian network model shown in FIG. 15, for the “seasonal node” 4101, from the date of the observation value, for example, March to May is spring, June to August is summer, and September to November. Is set to fall, December to February is set to winter, the corresponding part is set to 1, and other parts are set to 0 to set an observation value, and a flag is set so that the posterior probability of the “seasonal node” 4101 is not calculated. Further, regarding the “time node” 4102, for example, from 6:00 to 9:00 in the morning, 9:00 to 12:00 in the morning, 12:00 to 13:00 in the midday, 13:00 to 16:00 in the afternoon, Hour to 18:00 is the evening, 18:00 to 24:00 is the night, and 24:00 to 6:00 is the night, the corresponding part is set to 1 and the others are set to 0, and the observation value is set. The posterior probability of “time node” 4102 Set a flag to not calculate.
[0114]
After the observation value setting process is completed, learning of the conditional probability is performed (described above). Here, in the learning of the conditional probability, in the process of setting the observation value, the conditional probability is learned by the EM algorithm using the recorded number of observations.
[0115]
After the learning of the conditional probabilities, the posterior probabilities are calculated (described above). Here, the calculation of the posterior probabilities is performed on the nodes in which the flag set not to be calculated is not set in the observation value setting processing.
[0116]
After the calculation of the posterior probabilities, the probability values of the respective URLs are obtained from the “next URL node” 4002 in FIG. 14 and the “next URL node” 4002 in FIG. Line up. Among them, a URL having a probability exceeding a certain threshold is set as a prefetch target page, and its URL and a probability value are temporarily recorded in the prefetch
[0117]
Next, for each URL in the prefetch
[0118]
FIG. 18 shows, in the form of a flowchart, a processing procedure executed by the prefetch target
[0119]
The prefetch target
[0120]
When the setting of the observation value is completed, learning of the conditional probability is performed (step S63), and then the posterior probability is calculated (step S64), and a prefetch
[0121]
After creating the prefetch
[0122]
In the prefetch
[0123]
Similarly, in the prefetch
[0124]
Further, the conditional observation count table is updated each time a request request (observation value) from the user is obtained, so that the conditional probability table is also updated. When the request request from the user changes in accordance with the change in the user's preference, the conditional observation count table and the conditional probability table change accordingly, so the posterior probability also changes. Therefore, the pages and sites written in the prefetch
[0125]
When such a cache operation is performed, the cache management table 1005 manages a cache area without distinguishing users, and even if a file accessed by a certain user has disappeared from the
[0126]
FIG. 19 shows, in the form of a flowchart, a processing procedure executed in the
[0127]
The
[0128]
FIG. 20 is a flowchart illustrating a processing procedure executed in the
[0129]
The
[0130]
If the notification is not received from the
[0131]
If the corresponding URL exists on the cache disk 1006 (step S85), the Web server inquires of the Web server having the corresponding URL whether the relevant URL has been updated (step S86). If the URL has not been updated (step S87), the process returns to the registration notification wait (step S80).
[0132]
In addition, when there is no corresponding URL in the cache (step S85), and when the corresponding URL has been updated (step S87), first, the size of the target URL in the list is set to the Web server having the target URL. And using the HTTP protocol.
[0133]
When checking the size, the approximate bandwidth is obtained from the response of the Web server having the target URL, and the size and the bandwidth are recorded in the prefetch schedule table 1012 (step S88). Since the time required for prefetching is obtained from the size and the bandwidth, it is compared with the prefetch time limit.
[0134]
If the prefetch time limit has been exceeded, prefetching is temporarily stopped in ascending order of the probability value of the current prefetching, and the response is measured again to determine whether the response falls within the prefetch time limit. Then, if it does not fit within the prefetch time limit, it is set not to perform prefetch.
[0135]
Next, prefetching is continued again for those having a low probability value for which prefetching has been once stopped (step S89).
[0136]
Next, for the URLs in the schedule table that have not been prefetched, a set of files such as pages corresponding to the URLs and images in the pages is acquired in the order of the probability values in the schedule table (step S90). In the process of acquiring files, the
[0137]
FIGS. 21 and 22 show an operation sequence for acquiring a page on the Web server from the user's terminal through the intervention of the
[0138]
FIG. 21 illustrates an operation sequence when the requested page exists on the
[0139]
In this case, first, the WWW cache system receives a page acquisition request from the terminal.
[0140]
Next, a search is made as to whether the page requested by the terminal exists on the cache in the WWW cache system. If it exists in the cache, the page requested by the terminal is returned to the terminal.
[0141]
Next, the WWW cache server predicts a page that is likely to be accessed next to the page requested from the terminal according to the above-described procedure, and requests the WWW server for this. The WWW server returns the page requested from the WWW cache system to the WWW cache system.
[0142]
When receiving the requested page from the WWW server, the WWW cache system writes the requested page on a cache in the WWW cache system.
[0143]
FIG. 22 illustrates an operation sequence when the requested page does not exist on the
[0144]
In this case, first, the WWW cache system receives a page acquisition request from the terminal. Next, it is searched whether or not the page requested by the terminal exists on the cache in the WWW cache system.
[0145]
If the page does not exist in the cache, the page requested from the terminal is requested to the WWW server. The WWW server returns the page requested from the WWW cache system to the WWW cache system.
[0146]
Upon receiving the requested page from the WWW server, the WWW cache system transmits the page received from the WWW server to the terminal and writes the requested page on a cache area in the WWW cache system.
[0147]
Next, the WWW cache system predicts a page which is likely to be accessed next to the page requested by the terminal according to the above-described procedure, and requests the WWW server for this.
[0148]
The WWW server returns the page requested from the WWW cache system to the WWW cache system. When receiving the requested page from the WWW server, the WWW cache system writes the requested page on a cache in the WWW cache system.
[0149]
Finally, a hardware environment for operating the cache system according to the present embodiment will be described with reference to FIG.
[0150]
The
[0151]
The cache memory 5001 is a small-capacity high-speed memory constituted by, for example, an SRAM (Static RAM), temporarily stores information such as commands and data frequently accessed by the
[0152]
A
[0153]
The
[0154]
The operation of writing / reading information to / from the
[0155]
The
[0156]
The
[0157]
The
[0158]
The FD controller 5006 is connected to a
[0159]
Alternatively, in the system, a media drive that loads a portable medium other than a flexible disk and performs an access operation may be connected to the
[0160]
A
[0161]
A CRTC (CRT controller) 5012 is connected to the
[0162]
The
[0163]
On the network, programs (data) are transferred (downloaded) between systems. For example, a cache server application according to the present invention, an
[0164]
[Supplement]
The present invention has been described in detail with reference to the specific embodiments. However, it is obvious that those skilled in the art can modify or substitute the embodiment without departing from the scope of the present invention. That is, the present invention has been disclosed by way of example, and the contents described in this specification should not be interpreted in a limited manner. In order to determine the gist of the present invention, the claims described at the beginning should be considered.
[0165]
【The invention's effect】
As described above in detail, according to the present invention, information can be efficiently provided in response to a request of a specific user from information provided to an unspecified number of users in a WWW information space. An excellent information providing system, information providing method, and computer program can be provided.
[0166]
Further, according to the present invention, an excellent information providing system, an information providing method, and a computer, which can provide information with a relatively short response time from a request of a specific user by caching WWW information, Program can be provided.
[0167]
Further, according to the present invention, an information providing system, an information providing method, and a computer, which can provide information in a relatively short response time from a user's request by pre-reading information requested by the user, Program can be provided.
[0168]
Further, according to the present invention, by pre-reading information requested by a user in response to a change in user's preference changing from moment to moment, information can be provided in a relatively short response time from a user's request. An excellent information providing system, information providing method, and computer program can be provided.
[0169]
According to the present invention, by performing prefetching for each user using the user's request log, WWW information requested by a specific user, rather than an unspecified number, can be efficiently cached. In addition, by using a Bayesian network model, which is one of the probabilistic network models, for the look-ahead mechanism, even if the access pattern changes in response to an ever-changing user's preference, this is not considered. Correspondingly, it is possible to stochastically determine a prefetch target, limit the prefetch target, and dynamically respond to a change of the user.
[Brief description of the drawings]
FIG. 1 is a diagram schematically showing a configuration example of a WWW information providing system to which the present invention is applied.
FIG. 2 is a diagram schematically illustrating another configuration example of a WWW information providing system to which the present invention is applied.
FIG. 3 is a diagram schematically showing still another configuration example of the WWW information providing system to which the present invention is applied.
FIG. 4 is a diagram schematically showing a functional configuration of a
FIG. 5 is a diagram showing an example of a data structure of a log recorded in an
FIG. 6 is a diagram showing an example of a data structure of a cache management table 1005.
FIG. 7 is a diagram showing an example of a data structure of a prefetch
FIG. 8 is a diagram showing an example of a data structure of a prefetch
FIG. 9 is a diagram schematically showing a data structure of a prefetch schedule table 1012.
FIG. 10 is a flowchart showing a processing procedure executed in the request processing unit 1001.
FIG. 11 is a flowchart showing a processing procedure executed in the
FIG. 12 is a flowchart showing a processing procedure executed in the
FIG. 13 is a flowchart showing a processing procedure executed in a prefetch target page selection unit 1007.
FIG. 14 is a diagram illustrating a configuration example of a Bayesian network model.
FIG. 15 is a diagram illustrating a configuration example of a Bayesian network model.
FIG. 16 is a diagram showing a conditional probability table.
FIG. 17 is a diagram showing a conditional probability observation count table.
FIG. 18 is a flowchart showing a processing procedure executed in a prefetch target
FIG. 19 is a flowchart showing a processing procedure executed in a
FIG. 20 is a flowchart showing a processing procedure executed in a
FIG. 21 is a diagram showing an operation sequence for obtaining a page on a Web server from a user terminal through the intervention of a cache system 1000 (provided that a requested page exists on the cache system 1000). is there.
FIG. 22 is a diagram showing an operation sequence for obtaining a page on a Web server from a user terminal through the intervention of the cache system 1000 (provided that the requested page does not exist on the cache system 1000). is there.
FIG. 23 is a diagram showing an example of a hardware configuration for operating the cache system according to the present invention.
FIG. 24 is a diagram showing an example of a data structure of a cache management table 1005 when terminals of all users are not distinguished.
[Explanation of symbols]
1000 ... Cash system
1001 Request processing unit
1002 ... Access log
1003 ... log extraction unit
1004: Cache management unit
1005: Cache management table
1006 ... Cache disk
1007: Prefetch target page selection unit
1008: Prefetch target page list
1009: Prefetch target site selection section
1010: Prefetch target site list
1011: Prefetch scheduler section
1012: Prefetch schedule table
1013: Prefetch unit
5000 CPU, 5001 Cache memory
5002: System controller, 5003: Main memory
5004 ... HD controller, 5005 ... HDD
5006 ... FD controller, 5007 ... FD
5008: Host bus, 5009: PCI bus
5010 mouse controller, 5011 mouse
5012 ... CRT display, 5013 ... CRT controller
5014 ... Network interface
Claims (13)
ユーザ毎の情報を要求するリクエスト・ログを抽出するログ抽出手段と、
リクエスト・ログに含まれるページのアクセス系列に基づいて、次にアクセスされるページを予測し、先読みすべきページをユーザ毎に求めるプリフェッチ対象ページ選定手段と、
リクエスト・ログに含まれるサイトのアクセス系列に基づいて、次にアクセスされるサイトを予測し、先読みすべきサイトをユーザ毎に求めるプリフェッチ対象サイト選定手段と、
前記プリフェッチ対象ページ選定手段及び前記プリフェッチ対象サイト選定手段により選定されたページ及びサイトに基づいて、情報の先読みを行なうプリフェッチ手段と、
を具備することを特徴とする情報提供システム。An information providing system for providing information consisting of pages having a mutual reference relationship over a plurality of sites,
Log extraction means for extracting a request log requesting information for each user;
A prefetch target page selecting unit that predicts a next page to be accessed based on an access sequence of pages included in the request log, and obtains a page to be prefetched for each user;
Prefetch target site selection means for predicting the next site to be accessed based on the access sequence of the site included in the request log, and seeking a site to be prefetched for each user,
A prefetch unit that prefetches information based on a page and a site selected by the prefetch target page selection unit and the prefetch target site selection unit;
An information providing system comprising:
ことを特徴とする請求項2に記載の情報提供システム。The prefetch target page selection unit and / or the prefetch target site selection unit updates a probability network model based on an access result of a next user.
3. The information providing system according to claim 2, wherein:
ことを特徴とする請求項1に記載の情報提供システム。The prefetch means performs a prefetch operation for a prefetch target in consideration of a network load or the like.
The information providing system according to claim 1, wherein:
ことを特徴とする請求項4に記載の情報提供システム。The prefetch unit rearranges the priorities of pages and / or sites to be prefetched based on the prediction in consideration of network load.
The information providing system according to claim 4, wherein:
ことを特徴とする請求項1に記載の情報提供システム。The prefetch means stores the prefetched information in a storage area assigned to each user,
The information providing system according to claim 1, wherein:
ユーザ毎の情報を要求するリクエスト・ログを抽出するログ抽出ステップと、
リクエスト・ログに含まれるページのアクセス系列に基づいて、次にアクセスされるページを予測し、先読みすべきページをユーザ毎に求めるプリフェッチ対象ページ選定ステップと、
リクエスト・ログに含まれるサイトのアクセス系列に基づいて、次にアクセスされるサイトを予測し、先読みすべきサイトをユーザ毎に求めるプリフェッチ対象サイト選定ステップと、
前記プリフェッチ対象ページ選定ステップ及び前記プリフェッチ対象サイト選定ステップにより選定されたページ及びサイトに基づいて、情報の先読みを行なうプリフェッチ・ステップと、
を具備することを特徴とする情報提供方法。An information providing method for providing information including pages having a mutual reference relationship over a plurality of sites,
A log extracting step of extracting a request log requesting information for each user;
A prefetch target page selection step of predicting the next page to be accessed based on the access sequence of the pages included in the request log, and seeking a page to be prefetched for each user;
A prefetch target site selection step of predicting the next site to be accessed based on the access sequence of the site included in the request log and obtaining a site to be prefetched for each user;
A prefetch step of prefetching information based on the page and site selected by the prefetch target page selection step and the prefetch target site selection step;
An information providing method, comprising:
ことを特徴とする請求項7に記載の情報提供方法。In the step of selecting a page to be prefetched and / or the step of selecting a prefetch target site, a page and / or a site to be accessed next by a user is predicted using a probability network model for each user that describes a user's access sequence.
The information providing method according to claim 7, wherein:
ことを特徴とする請求項7に記載の情報提供方法。In the prefetch target page selection step and / or the prefetch target site selection step, a probability network model is updated based on an access result of a next user.
The information providing method according to claim 7, wherein:
ことを特徴とする請求項7に記載の情報提供方法。In the prefetch step, a prefetch operation for a prefetch target is performed in consideration of a network load or the like.
The information providing method according to claim 7, wherein:
ことを特徴とする請求項7に記載の情報提供方法。In the prefetching step, the priorities of pages and / or sites to be prefetched based on the prediction are rearranged in consideration of network load.
The information providing method according to claim 7, wherein:
ことを特徴とする請求項7に記載の情報提供方法。In the prefetch step, the prefetched information is stored in a storage area assigned to each user,
The information providing method according to claim 7, wherein:
ユーザ毎の情報を要求するリクエスト・ログを抽出するログ抽出ステップと、リクエスト・ログに含まれるページのアクセス系列に基づいて、次にアクセスされるページを予測し、先読みすべきページをユーザ毎に求めるプリフェッチ対象ページ選定ステップと、
リクエスト・ログに含まれるサイトのアクセス系列に基づいて、次にアクセスされるサイトを予測し、先読みすべきサイトをユーザ毎に求めるプリフェッチ対象サイト選定ステップと、
前記プリフェッチ対象ページ選定ステップ及び前記プリフェッチ対象サイト選定ステップにより選定されたページ及びサイトに基づいて、情報の先読みを行なうプリフェッチ・ステップと、
を具備することを特徴とするコンピュータ・プログラム。A computer program written in a computer-readable format so as to execute a process for providing information consisting of pages having a mutual reference relationship over a plurality of sites on a computer system,
A log extracting step of extracting a request log requesting information for each user; and a page to be accessed next is predicted based on an access sequence of pages included in the request log, and a page to be prefetched is determined for each user. A step of selecting a prefetch target page to be sought;
A prefetch target site selection step of predicting the next site to be accessed based on the access sequence of the site included in the request log and obtaining a site to be prefetched for each user;
A prefetch step of prefetching information based on the page and site selected by the prefetch target page selection step and the prefetch target site selection step;
A computer program comprising:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003070157A JP2004280405A (en) | 2003-03-14 | 2003-03-14 | Information providing system, information providing method, and computer program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003070157A JP2004280405A (en) | 2003-03-14 | 2003-03-14 | Information providing system, information providing method, and computer program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004280405A true JP2004280405A (en) | 2004-10-07 |
Family
ID=33286979
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003070157A Pending JP2004280405A (en) | 2003-03-14 | 2003-03-14 | Information providing system, information providing method, and computer program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004280405A (en) |
Cited By (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007243552A (en) * | 2006-03-08 | 2007-09-20 | Sony Corp | Information processing apparatus and method, and program |
| JP2008541239A (en) * | 2005-05-04 | 2008-11-20 | ヴェントゥーリ ワイヤレス インコーポレーティッド | Method and apparatus for increasing HTTP performance of long latency links |
| JP2009009484A (en) * | 2007-06-29 | 2009-01-15 | Nomura Research Institute Ltd | Web server, web display terminal, and web browsing program |
| JP2009123047A (en) * | 2007-11-16 | 2009-06-04 | Nec Corp | Terminal cache management apparatus, terminal cache management method, and program |
| JP2009541877A (en) * | 2006-06-30 | 2009-11-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, system, apparatus and computer program for controlling web objects (method and apparatus for caching broadcast information) |
| JP2010033112A (en) * | 2008-07-25 | 2010-02-12 | Fujitsu Ltd | Content reproduction device, content reproduction method, and content reproduction program |
| EP2302527A1 (en) | 2009-09-17 | 2011-03-30 | Sony Corporation | Information processing apparatus, data acquisition method, and program |
| EP2312469A1 (en) | 2009-09-17 | 2011-04-20 | Sony Corporation | Information processing apparatus, data display method, and program |
| EP2320336A2 (en) | 2009-09-17 | 2011-05-11 | Sony Corporation | Information processing apparatus, data acquisition method, and program |
| US8010580B2 (en) | 2006-07-18 | 2011-08-30 | Canon Kabushiki Kaisha | Information browser, method of controlling same, and program |
| JP2013077046A (en) * | 2011-09-29 | 2013-04-25 | Fujitsu Ltd | Data storage control device, data storage control program and data storage control method |
| WO2014155663A1 (en) * | 2013-03-29 | 2014-10-02 | 楽天株式会社 | Data provision device, data provision method, and data provision program |
| JP2015194832A (en) * | 2014-03-31 | 2015-11-05 | パイオニア株式会社 | Content output device, content distribution server, content output method and content output program |
| JP2016533594A (en) * | 2014-08-13 | 2016-10-27 | シャオミ・インコーポレイテッド | WEB PAGE ACCESS METHOD, WEB PAGE ACCESS DEVICE, ROUTER, PROGRAM, AND RECORDING MEDIUM |
| JP2017507385A (en) * | 2013-12-22 | 2017-03-16 | インターデイジタル パテント ホールディングス インコーポレイテッド | Accelerate web applications with personalized caching or pre-rendering |
| US10069925B2 (en) | 2013-12-04 | 2018-09-04 | Sony Corporation | Server device and information processing method |
-
2003
- 2003-03-14 JP JP2003070157A patent/JP2004280405A/en active Pending
Cited By (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008541239A (en) * | 2005-05-04 | 2008-11-20 | ヴェントゥーリ ワイヤレス インコーポレーティッド | Method and apparatus for increasing HTTP performance of long latency links |
| JP2007243552A (en) * | 2006-03-08 | 2007-09-20 | Sony Corp | Information processing apparatus and method, and program |
| JP2009541877A (en) * | 2006-06-30 | 2009-11-26 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Method, system, apparatus and computer program for controlling web objects (method and apparatus for caching broadcast information) |
| US8407260B2 (en) | 2006-06-30 | 2013-03-26 | International Business Machines Corporation | Method and apparatus for caching broadcasting information |
| US8010580B2 (en) | 2006-07-18 | 2011-08-30 | Canon Kabushiki Kaisha | Information browser, method of controlling same, and program |
| JP2009009484A (en) * | 2007-06-29 | 2009-01-15 | Nomura Research Institute Ltd | Web server, web display terminal, and web browsing program |
| JP2009123047A (en) * | 2007-11-16 | 2009-06-04 | Nec Corp | Terminal cache management apparatus, terminal cache management method, and program |
| JP2010033112A (en) * | 2008-07-25 | 2010-02-12 | Fujitsu Ltd | Content reproduction device, content reproduction method, and content reproduction program |
| US8972852B2 (en) | 2009-09-17 | 2015-03-03 | Sony Corporation | Two-stage rendering of web page containing scripts |
| EP2312469A1 (en) | 2009-09-17 | 2011-04-20 | Sony Corporation | Information processing apparatus, data display method, and program |
| EP2302527A1 (en) | 2009-09-17 | 2011-03-30 | Sony Corporation | Information processing apparatus, data acquisition method, and program |
| US8478882B2 (en) | 2009-09-17 | 2013-07-02 | Sony Corporation | Information processing apparatus, data acquisition method, and program |
| US8504695B2 (en) | 2009-09-17 | 2013-08-06 | Sony Corporation | Information processing apparatus, data acquisition method, and program |
| EP2320336A2 (en) | 2009-09-17 | 2011-05-11 | Sony Corporation | Information processing apparatus, data acquisition method, and program |
| JP2013077046A (en) * | 2011-09-29 | 2013-04-25 | Fujitsu Ltd | Data storage control device, data storage control program and data storage control method |
| WO2014155663A1 (en) * | 2013-03-29 | 2014-10-02 | 楽天株式会社 | Data provision device, data provision method, and data provision program |
| US10282482B2 (en) | 2013-03-29 | 2019-05-07 | Rakuten, Inc. | Data provision device, data provision method, and data provision program |
| US10069925B2 (en) | 2013-12-04 | 2018-09-04 | Sony Corporation | Server device and information processing method |
| JP2017507385A (en) * | 2013-12-22 | 2017-03-16 | インターデイジタル パテント ホールディングス インコーポレイテッド | Accelerate web applications with personalized caching or pre-rendering |
| JP2015194832A (en) * | 2014-03-31 | 2015-11-05 | パイオニア株式会社 | Content output device, content distribution server, content output method and content output program |
| JP2016533594A (en) * | 2014-08-13 | 2016-10-27 | シャオミ・インコーポレイテッド | WEB PAGE ACCESS METHOD, WEB PAGE ACCESS DEVICE, ROUTER, PROGRAM, AND RECORDING MEDIUM |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6317778B1 (en) | System and method for replacement and duplication of objects in a cache | |
| JP2004280405A (en) | Information providing system, information providing method, and computer program | |
| US5802292A (en) | Method for predictive prefetching of information over a communications network | |
| CN100511220C (en) | method and system for maintaining data in distributed cache | |
| US7769823B2 (en) | Method and system for distributing requests for content | |
| JP5032210B2 (en) | Control computer, computer system, and access control method | |
| US8706853B2 (en) | Content processing apparatus, content processing method, and recording medium | |
| Doran et al. | A comparison of web robot and human requests | |
| CN104915319A (en) | System and method of caching information | |
| JP2005056420A (en) | Method and system for managing object stored in cache | |
| CN112685670A (en) | Data scheduling method and device | |
| Azari et al. | A data replication algorithm for groups of files in data grids | |
| US11783002B2 (en) | Intelligent dynamic preloading | |
| Tuah et al. | Resource-aware speculative prefetching in wireless networks | |
| CN111935025B (en) | Control method, device, equipment and medium for TCP transmission performance | |
| Isaacman et al. | Low-infrastructure methods to improve internet access for mobile users in emerging regions | |
| Acharjee | Personalized and artificial intelligence Web caching and prefetching | |
| JP4741301B2 (en) | Information search system, information search device, information search method, recording medium, and program | |
| US20030101214A1 (en) | Allocating data objects stored on a server system | |
| Jeon et al. | A prefetching Web caching method using adaptive search patterns | |
| Shivakumar et al. | A survey and analysis of techniques and tools for web performance optimization | |
| JPH11175539A (en) | Proxy information acquisition method and system, and storage medium storing proxy information acquisition program | |
| Foong et al. | Adaptive Web caching using logistic regression | |
| Baskaran et al. | Study of combined Web prefetching with Web caching based on machine learning technique | |
| Chaudhari et al. | Proxy side web Prefetching scheme for efficient bandwidth usage: data mining approach |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060201 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081125 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090108 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090303 |