(57)【要約】【課題】メモリリソースやウェブサービスへのアクセスが制限されている場合でもキャッシュを効率よく利用する。【解決手段】ウェブブラウザ１０は、表示画面に表示されたページに含まれる１または２以上のリンク先のうち、表示領域に表示されているリンク先を抽出する抽出部１５２と、リンク先のコンテンツを取得するためのリクエストを作成するリクエスト作成部１５４と、リクエストをウェブサーバに送信する送信部１５６と、を備え、ウェブサーバ２０は、リクエストを受信する受信部２０２と、受信したリクエストに応じたコンテンツを作成するコンテンツ作成部２０６と、コンテンツ作成部により作成されたコンテンツを記憶装置にキャッシュするキャッシュ部２１０と、を備える。【選択図】図３
2011108102.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続されたウェブブラウザに表示された１または２以上のリンク先のうち、表示領域に表示されているリンク先のコンテンツを取得するためのリクエストを受信する受信部と、
前記受信部により受信された前記リクエストに応じたコンテンツを作成するコンテンツ作成部と、
前記コンテンツ作成部により作成された前記コンテンツを記憶装置にキャッシュするキャッシュ部と、
を備える、ウェブサーバ。
【請求項２】
前記受信部により受信されたリクエストが、アクセスされていないリンク先のコンテンツを取得するためのダミーのリクエストか否かを判断する判断部を備え、
前記コンテンツ作成部は、前記判断部により前記リクエストがダミーのリクエストであると判断された場合に、前記ダミーのリクエストに応じたコンテンツを作成する、請求項１に記載のウェブサーバ。
【請求項３】
前記判断部は、前記リクエストにダミーのリクエストであることを示すコマンドが付加されている場合に、前記リクエストがダミーのリクエストであると判断する、請求項２に記載のウェブサーバ。
【請求項４】
前記キャッシュ部は、前記記憶装置にキャッシュしたコンテンツのうち、前記ウェブブラウザに表示されているコンテンツのリンク先との親子関係に応じてコンテンツを削除する、請求項１〜３のいずれかに記載のウェブサーバ。
【請求項５】
前記リクエストに対応するコンテンツが前記キャッシュ部により前記記憶装置にキャッシュされている場合に、前記キャッシュされている前記コンテンツを前記ウェブブラウザに送信する送信部を備える、請求項１〜４のいずれかに記載のウェブサーバ。
【請求項６】
前記判断部により、前記リクエストがダミーのリクエストではないと判断された場合に、
前記コンテンツ作成部は、作成した前記コンテンツを、前記送信部を介して前記ウェブブラウザに送信する、請求項２〜５のいずれかに記載のウェブサーバ。
【請求項７】
前記判断部により、前記リクエストがダミーのリクエストではないと判断された場合に、
前記コンテンツ作成部は、前記リクエストに対応する、前記記憶装置にキャッシュされたコンテンツを、前記送信部を介して前記ウェブブラウザに送信する、請求項２〜６のいずれかに記載のウェブサーバ。
【請求項８】
表示画面に表示されたページに含まれる１または２以上のリンク先のうち、表示領域に表示されているリンク先を抽出する抽出部と、
前記抽出部により抽出された前記リンク先のコンテンツを取得するためのリクエストを作成するリクエスト作成部と、
前記リクエストを、ネットワークを介して接続されたウェブサーバに送信する送信部と、
を備える、ウェブブラウザ。
【請求項９】
前記リクエスト作成部は、アクセスされていないリンク先のコンテンツを取得するためのダミーのリクエストであることを示すコマンドを前記リクエストに付加する、請求項８に記載のウェブブラウザ。
【請求項１０】
前記抽出部は、表示領域に表示されている前記リンク先が静的コンテンツか動的コンテンツかを判定し、前記リンク先が動的コンテンツである場合に前記リンク先を抽出する、請求項８または９のいずれかに記載のウェブブラウザ。
【請求項１１】
前記ダミーのリクエストに応じて前記ウェブサーバにより作成されたコンテンツは、記憶装置にキャッシュされる、請求項９または１０のいずれかに記載のウェブブラウザ。
【請求項１２】
前記リクエスト作成部は、アクセスされたリンク先のコンテンツを取得するためのリクエストを作成し、
前記リクエストに応じたコンテンツを前記ウェブサーバから受信する受信部を備える、請求項８〜１１のいずれかに記載のウェブブラウザ。
【請求項１３】
前記リクエスト作成部は、アクセスされたリンク先のコンテンツを取得するためのリクエストを作成し、
前記受信部は、前記リクエストに応じたコンテンツが前記記憶装置にキャッシュされている場合に、前記記憶装置にキャッシュされているコンテンツを受信する、請求項１２に記載のウェブブラウザ。
【請求項１４】
ウェブサーバとネットワークを介して接続されたウェブブラウザは、
表示画面に表示されたページに含まれる１または２以上のリンク先のうち、表示領域に表示されているリンク先を抽出する抽出部と、
前記抽出部により抽出された前記リンク先のコンテンツを取得するためのリクエストを作成するリクエスト作成部と、
前記リクエストを前記ウェブサーバに送信する送信部と、
を備え、
前記ウェブサーバは、
前記ウェブブラウザから送信された前記リクエストを受信する受信部と、
前記受信部により受信した前記リクエストに応じたコンテンツを作成するコンテンツ作成部と、
前記コンテンツ作成部により作成された前記コンテンツを記憶装置にキャッシュするキャッシュ部と、
を備える、ウェブシステム。
【請求項１５】
コンピュータを、
ネットワークを介して接続されたウェブブラウザに表示された１または２以上のリンク先のうち、表示領域に表示されているリンク先のコンテンツを取得するためのリクエストを受信する受信部と、
前記受信部により受信された前記リクエストに応じたコンテンツを作成するコンテンツ作成部と、
前記コンテンツ作成部により作成された前記コンテンツを記憶装置にキャッシュするキャッシュ部と、
を備える、ウェブサーバとして機能させるためのプログラム。
【請求項１６】
コンピュータを、
表示画面に表示されたページに含まれる１または２以上のリンク先のうち、表示領域に表示されているリンク先を抽出する抽出部と、
前記抽出部により抽出された前記リンク先のコンテンツを取得するためのリクエストを作成するリクエスト作成部と、
前記リクエストを、ネットワークを介して接続されたウェブサーバに送信する送信部と、
を備える、ウェブブラウザとして機能させるためのプログラム。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブサーバ、ウェブブラウザおよびウェブシステム。
【背景技術】
【０００２】
最近では、インターネット上の高性能なサーバで利用されていたウェブ技術が家庭内の機器（ＣＥ機器）でも利用されるようになってきている。これは、コンシューマ向けの組込み機器の性能が向上していることや、コンシューマ機器をネットワークを介して利用する機会が増えていることに起因している。しかし、ＣＥ機器のように計算リソースやメモリリソースが乏しい機器においては、従来、サーバ側で使われていた技術のすべてを利用することは難しく、少ないリソースで機能させるための工夫が必要となってくる。
【０００３】
ところで、ウェブサーバへのアクセスを高速化するための従来技術として、「キャッシュ技術」が広く利用されている。図１１は、一般的なウェブサービスのキャッシュ技術について説明する説明図である。図１１に示したように、「キャッシュ」には、ウェブサーバがデータベースから読み出した結果を保存しておくクエリキャッシュや、ウェブサーバが作成したページを保存しておくプロキシキャッシュや、ウェブブラウザ側で一度アクセスしたページを保存しておくアプリケーションキャッシュなど様々なキャッシュがある。
【０００４】
ＣＥ機器において、ウェブサービスを展開する場合にプロキシサーバを準備するのは困難であり、ブラウザ側でのキャッシュは頻繁に内容が書き換わる動的コンテンツを扱うのが難しかった。このため、キャッシュによる高速化を実現するためには、プロキシキャッシュ（ページキャッシュ）をサーバ内に包含するか、クエリキャッシュを用いる必要があった。
【０００５】
ページキャッシュもクエリキャッシュも不特定多数がアクセスする可能性があるウェブサーバではその効果を発揮する。例えば、ユーザが初めてアクセスしたページでも、他のユーザが事前にアクセスしていた場合にはキャッシュにヒットするパターンが考えられる。また、特許文献１では、部分ページ毎にキャッシュしておくことにより、ウェブサーバの処理負荷を軽減し、応答性を改善している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−２２７６７１号公報
【特許文献２】特開２０００−３１１１０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記特許文献１では、ユーザが最低でも一度はページにアクセスしておく必要があり、ＣＥ機器のウェブサービスのようにアクセスするユーザが限られている場合には、キャッシュが有効に機能しない場合が多いという問題があった。また、上記特許文献２では、ページのリンクに従って先読みしたページをあらかじめキャッシュして、ウェブサーバへのアクセスの高速化を実現している。しかし、特許文献２では、キャッシュメモリの容量限界に達するまでキャッシュしているため、メモリリソースに制限がある場合にはキャッシュが有効に機能しない場合が多いという問題があった。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、メモリリソースやウェブサービスへのアクセスが制限されている場合でもキャッシュを効率よく利用することが可能な新規かつ改良されたウェブサーバ、ウェブブラウザおよびウェブシステムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある観点によれば、ネットワークを介して接続されたウェブブラウザに表示された１または２以上のリンク先のうち、表示領域に表示されているリンク先のコンテンツを取得するためのリクエストを受信する受信部と、前記受信部により受信された前記リクエストに応じたコンテンツを作成するコンテンツ作成部と、前記コンテンツ作成部により作成された前記コンテンツを記憶装置にキャッシュするキャッシュ部と、を備える、ウェブサーバが提供される。
【０００９】
また、前記受信部により受信されたリクエストが、アクセスされていないリンク先のコンテンツを取得するためのダミーのリクエストか否かを判断する判断部を備え、前記コンテンツ作成部は、前記判断部により前記リクエストがダミーのリクエストであると判断された場合に、前記ダミーのリクエストに応じたコンテンツを作成してもよい。
【００１０】
また、前記判断部は、前記リクエストにダミーのリクエストであることを示すコマンドが付加されている場合に、前記リクエストがダミーのリクエストであると判断してもよい。
【００１１】
また、前記キャッシュ部は、前記記憶装置にキャッシュしたコンテンツのうち、前記ウェブブラウザに表示されているコンテンツのリンク先との親子関係に応じてコンテンツを削除してもよい。
【００１２】
また、前記リクエストに対応するコンテンツが前記キャッシュ部により前記記憶装置にキャッシュされている場合に、前記キャッシュされている前記コンテンツを前記ウェブブラウザに送信する送信部を備えてもよい。
【００１３】
また、前記判断部により、前記リクエストがダミーのリクエストではないと判断された場合に、前記コンテンツ作成部は、作成した前記コンテンツを、前記送信部を介して前記ウェブブラウザに送信してもよい。
【００１４】
また、前記判断部により、前記リクエストがダミーのリクエストではないと判断された場合に、前記コンテンツ作成部は、前記リクエストに対応する、前記記憶装置にキャッシュされたコンテンツを、前記送信部を介して前記ウェブブラウザに送信してもよい。
【００１５】
また、上記課題を解決するために、本発明の別の観点によれば、表示画面に表示されたページに含まれる１または２以上のリンク先のうち、表示領域に表示されているリンク先を抽出する抽出部と、前記抽出部により抽出された前記リンク先のコンテンツを取得するためのリクエストを作成するリクエスト作成部と、前記リクエストを、ネットワークを介して接続されたウェブサーバに送信する送信部と、を備えるウェブブラウザが提供される。
【００１６】
また、前記リクエスト作成部は、アクセスされていないリンク先のコンテンツを取得するためのダミーのリクエストであることを示すコマンドを前記リクエストに付加してもよい。
【００１７】
また、前記抽出部は、表示領域に表示されている前記リンク先が静的コンテンツか動的コンテンツかを判定し、前記リンク先が動的コンテンツである場合に前記リンク先を抽出してもよい。
【００１８】
また、前記ダミーのリクエストに応じて前記ウェブサーバにより作成されたコンテンツは、記憶装置にキャッシュされるようにしてもよい。
【００１９】
また、前記リクエスト作成部は、アクセスされたリンク先のコンテンツを取得するためのリクエストを作成し、前記リクエストに応じたコンテンツを前記ウェブサーバから受信する受信部を備えてもよい。
【００２０】
また、前記リクエスト作成部は、アクセスされたリンク先のコンテンツを取得するためのリクエストを作成し、前記受信部は、前記リクエストに応じたコンテンツが前記記憶装置にキャッシュされている場合に、前記記憶装置にキャッシュされているコンテンツを受信してもよい。
【００２１】
また、上記課題を解決するために、本発明の別の観点によれば、ウェブサーバとネットワークを介して接続されたウェブブラウザは、表示画面に表示されたページに含まれる１または２以上のリンク先のうち、表示領域に表示されているリンク先を抽出する抽出部と、前記抽出部により抽出された前記リンク先のコンテンツを取得するためのリクエストを作成するリクエスト作成部と、前記リクエストを前記ウェブサーバに送信する送信部と、を備え、前記ウェブサーバは、前記ウェブブラウザから送信された前記リクエストを受信する受信部と、前記受信部により受信した前記リクエストに応じたコンテンツを作成するコンテンツ作成部と、前記コンテンツ作成部により作成された前記コンテンツを記憶装置にキャッシュするキャッシュ部と、を備える、ウェブシステムが提供される。
【００２２】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、ネットワークを介して接続されたウェブブラウザに表示された１または２以上のリンク先のうち、表示領域に表示されているリンク先のコンテンツを取得するためのリクエストを受信する受信部と、前記受信部により受信された前記リクエストに応じたコンテンツを作成するコンテンツ作成部と、前記コンテンツ作成部により作成された前記コンテンツを記憶装置にキャッシュするキャッシュ部と、を備える、ウェブサーバとして機能させるためのプログラムが提供される。
【００２３】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、表示画面に表示されたページに含まれる１または２以上のリンク先のうち、表示領域に表示されているリンク先を抽出する抽出部と、前記抽出部により抽出された前記リンク先のコンテンツを取得するためのリクエストを作成するリクエスト作成部と、前記リクエストを、ネットワークを介して接続されたウェブサーバに送信する送信部と、を備える、ウェブブラウザとして機能させるためのプログラムが提供される。  
【発明の効果】
【００２４】
以上説明したように本発明によれば、メモリリソースやウェブサービスへのアクセスが制限されている場合でもキャッシュを効率よく利用することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に係るウェブシステムの概要を説明する説明図である。
【図２】同実施形態にかかるウェブブラウザのハードウェア構成を示すブロック図である。
【図３】同実施形態にかかるウェブブラウザおよびウェブサーバの機能構成を示すブロック図である。
【図４】同実施形態にかかる表示されたページに含まれるリンクについて説明する説明図である。
【図５】同実施形態にかかるダミーのリクエストについて説明する説明図である。
【図６】同実施形態にかかるリンク構造の一例を説明する説明図である。
【図７】同実施形態にかかるキャッシュに格納されているページの一覧である。
【図８】同実施形態にかかるリンク抽出処理の詳細を示すフローチャートである。
【図９】同実施形態にかかるリンクのリクエストキューへの追加処理を示すフローチャートである。
【図１０】同実施形態にかかるリクエストメッセージを受信したウェブサーバの処理を示すフローチャートである。
【図１１】一般的なウェブサービスのキャッシュ技術について説明する説明図である。
【発明を実施するための形態】
【００２６】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２７】
また、以下に示す順序に従って、当該「発明を実施するための最良の形態」を説明する。
〔１〕本実施形態の目的
〔２〕ウェブシステムの概要
〔３〕ウェブブラウザのハードウェア構成
〔４〕ウェブブラウザおよびウェブサーバの機能構成
〔５〕ウェブシステムの動作の詳細
【００２８】
まず、本実施形態の目的について説明する。最近では、インターネット上の高性能なサーバで利用されていたウェブ技術が家庭内の機器（ＣＥ機器）でも利用されるようになってきている。これは、コンシューマ向けの組込み機器の性能が向上していることや、コンシューマ機器をネットワークを介して利用する機会が増えていることに起因している。しかし、ＣＥ機器のように計算リソースやメモリリソースが乏しい機器においては、従来、サーバ側で使われていた技術のすべてを利用することは難しく、少ないリソースで機能させるための工夫が必要となってくる。
【００２９】
ところで、ウェブサーバへのアクセスを高速化するための従来技術として、「キャッシュ技術」が広く利用されている。図１１は、一般的なウェブサービスのキャッシュ技術について説明する説明図である。図１１に示したように、「キャッシュ」には、ウェブサーバがデータベースから読み出した結果を保存しておくクエリキャッシュや、ウェブサーバが作成したページを保存しておくプロキシキャッシュや、ウェブブラウザ側で一度アクセスしたページを保存しておくアプリケーションキャッシュなど様々なキャッシュがある。
【００３０】
ＣＥ機器において、ウェブサービスを展開する場合にプロキシサーバを準備するのは困難であり、ブラウザ側でのキャッシュは頻繁に内容が書き換わる動的コンテンツを扱うのが難しかった。このため、キャッシュによる高速化を実現するためには、プロキシキャッシュ（ページキャッシュ）をサーバ内に包含するか、クエリキャッシュを用いる必要があった。
【００３１】
ページキャッシュもクエリキャッシュも不特定多数がアクセスする可能性があるウェブサーバではその効果を発揮する。例えば、ユーザが初めてアクセスしたページでも、他のユーザが事前にアクセスしていた場合にはキャッシュにヒットするパターンが考えられる。また、部分ページ毎にキャッシュしておくことにより、ウェブサーバの処理負荷を軽減し、応答性を改善している技術も開示されている。
【００３２】
しかし、上記技術では、ユーザが最低でも一度はページにアクセスしておく必要があり、ＣＥ機器のウェブサービスのようにアクセスするユーザが限られている場合には、キャッシュが有効に機能しない場合が多いという問題があった。そこで、上記のような事情を一着眼点として、本発明にかかるウェブシステム１が創作されるに至った。本実施形態にかかるウェブシステム１によれば、メモリリソースやウェブサービスへのアクセスが制限されている場合でもキャッシュを効率よく利用することが可能となる。
【００３３】
〔２〕ウェブシステムの概要
次に、図１を参照して、ウェブシステム１の概要について説明する。図１は、ウェブシステム１の概要を説明する説明図である。ウェブシステム１には、ウェブブラウザ１０、ウェブサーバ２０などが含まれる。図１では、ユーザが、クライアント機器として動作するウェブブラウザ１０を用いてウェブサーバ２０のページを閲覧する場合について説明する。
【００３４】
まず、ユーザ操作に応じて、ウェブブラウザ１０が所望のアドレスにアクセスすると、ウェブサーバ２０にアドレス先のページを取得するためのリクエストを発行する、そして、ウェブブラウザ１０からリクエストを送信されたウェブサーバ２０は、必要に応じたデータベースにアクセスしながらリクエストに対応するページを作成する。そして、ウェブサーバ２０は、作成したページをウェブブラウザ１０に送信する。
【００３５】
ウェブブラウザ１０は、ウェブサーバ２０から送信されたページを取得すると、表示領域に当該ページを描画する。また、ウェブブラウザ１０は、送信されたページ内に含まれるリンクを解析する。そして、ウェブブラウザ１０は、リンク先のコンテンツが静的コンテンツか動的コンテンツかを判定する。リンク先のコンテンツが動的コンテンツの場合には、リンク先のコンテンツを要求するリクエストをリクエストキューに追加する。
【００３６】
ウェブブラウザ１０は、リクエストキューに追加されたリクエストにダミーであることを示すコマンドを付加して、ダミーリクエストをウェブサーバ２０に送信する。ウェブサーバ２０は、送信されたリクエストがダミーのリクエストか否かを判別して、ダミーのリクエストであった場合には、ページを作成し、作成したページをウェブブラウザ１０に送信せずにキャッシュに格納する。
【００３７】
ウェブブラウザ１０から送信されたリクエストがダミーのリクエストでなかった場合には、キャッシュにリクエストに対応するページが格納されているか否かを確認して、ページが格納されている場合は当該ページをウェブブラウザ１０に送信する。一方、ページが格納されていない場合には、ページを作成し、作成したページをウェブブラウザ１０に送信する。
【００３８】
上記したように、本実施形態では、ユーザによりアクセスされたアドレスに対してのみでなく、表示されているページのリンク先のうち、表示領域に表示されているリンク先のコンテンツを取得するためのリクエストをウェブサーバ２０に送信する。ウェブブラウザ１０は、表示領域に表示されており、未だアクセスされていないリンク先のリクエストには、アクセスされていないリンク先のコンテンツを取得するためのダミーのリクエストであることを示すコマンドを付加する。ウェブサーバ２０は、ウェブブラウザ１０から送信されたリクエストがダミーのリクエストであるか否かを判断して、ダミーのリクエストである場合には、リクエストに対応するページ（コンテンツ）を作成して直ぐにキャッシュに格納する。一方、リクエストがダミーのリクエストではない場合に、リクエストに対応するページを作成してウェブブラウザ１０に送信する。
【００３９】
このように、ユーザにより未だアクセスされていないリンク先のページを先読みするだけでなく、ウェブブラウザ１０の表示領域に表示されているリンク先のページのみを先読みすることにより、メモリリソースが制限されている場合でも、効率よくページをキャッシュしておくことが可能となる。また、ウェブサービスへのアクセスが制限されており過去にアクセスされる可能性の低いリンク先でも、表示領域に表示されているリンク先を抽出することにより、アクセスされる可能性の高いリンク先を効率よくキャッシュすることが可能となる。
【００４０】
〔３〕ウェブブラウザのハードウェア構成
以上、ウェブシステム１の概要について説明した。次に、図２を参照して、ウェブブラウザ１０のハードウェア構成について説明する。図２では、ウェブブラウザ１０のハードウェア構成について説明しているが、ウェブサーバ２０のハードウェア構成もウェブブラウザ１０と同様の構成であるため、詳細な説明は省略する。
【００４１】
図２は、ウェブブラウザ１０のハードウェア構成を示すブロック図である。ウェブブラウザ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３と、ホストバス１０４と、ブリッジ１０５と、外部バス１０６と、インタフェース１０７と、入力装置１０８と、出力装置１１０と、ストレージ装置（ＨＤＤ）１１１と、ドライブ１１２と、通信装置１１５とを備える。
【００４２】
ＣＰＵ１０１は、演算処理装置および制御装置として機能し、各種プログラムに従ってウェブブラウザ１０内の動作全般を制御する。また、ＣＰＵ１０１は、マイクロプロセッサであってもよい。ＲＯＭ１０２は、ＣＰＵ１０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ１０３は、ＣＰＵ１０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはＣＰＵバスなどから構成されるホストバス１０４により相互に接続されている。
【００４３】
ホストバス１０４は、ブリッジ１０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１０６に接続されている。なお、必ずしもホストバス１０４、ブリッジ１０５および外部バス１０６を分離構成する必要はなく、一のバスにこれらの機能を実装してもよい。
【００４４】
入力装置１０８は、例えば、マウス、キーボード、タッチパネル、ボタン、マイク、スイッチおよびレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、ＣＰＵ１０１に出力する入力制御回路などから構成されている。ウェブブラウザ１０のユーザは、該入力装置１０８を操作することにより、ウェブブラウザ１０に対して各種のデータを入力したり処理動作を指示したりすることができる。
【００４５】
出力装置１０９、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ装置、液晶ディスプレイ（ＬＣＤ）装置、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｓｐｌａｙ）装置およびランプなどの表示装置と、スピーカおよびヘッドホンなどの音声出力装置で構成される。出力装置１０９は、例えば、再生されたコンテンツを出力する。具体的には、表示装置は再生された映像データ等の各種情報をテキストまたはイメージで表示する。一方、音声出力装置は、再生された音声データ等を音声に変換して出力する。
【００４６】
ストレージ装置１１０は、本実施形態にかかるウェブブラウザ１０の記憶部の一例として構成されたデータ格納用の装置であり、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含むことができる。ストレージ装置１１０は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）で構成される。このストレージ装置１１０は、ハードディスクを駆動し、ＣＰＵ１０１が実行するプログラムや各種データを格納する。また、このストレージ装置１１０には、後述の、アイテム、識別番号などを記憶する。
【００４７】
ドライブ１１１は、記憶媒体用リーダライタであり、ウェブブラウザ１０に内蔵、あるいは外付けされる。ドライブ１１１は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記憶媒体２４に記録されている情報を読み出して、ＲＡＭ１０３に出力する。
【００４８】
通信装置１１２は、例えば、通信網５０に接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置１１２は、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）対応通信装置であっても、ワイヤレスＵＳＢ対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。
【００４９】
〔４〕ウェブブラウザおよびウェブサーバの機能構成
以上、ウェブブラウザ１０のハードウェア構成について説明した。次に、図３を参照して、ウェブブラウザ１０およびウェブサーバ２０の機能構成について説明する。図３はウェブブラウザ１０およびウェブサーバ２０の機能構成を示すブロック図である。図３に示したように、ウェブブラウザ１０は、抽出部１５２、リクエスト作成部１５４、送信部１５６、受信部１５８、表示部１６０などを備える。
【００５０】
抽出部１５２は、ウェブブラウザ１０の表示領域に表示されたページに含まれるリンク先を抽出する機能を有する。ここで、図４を参照して、表示されたページに含まれるリンクについて説明する。図４は、表示されたページに含まれるリンクについて説明する説明図である。図４に示したように、ブラウザに描画されたページ５０には、複数のリンク先が表示されている。抽出部１５２は、ページ５０に含まれているすべてのリンク先を抽出せずに、ブラウザの表示画面上５６で視認可能なリンク先のみを抽出する。
【００５１】
ブラウザの表示画面５６で視認可能なリンク先のみを抽出することは、ユーザがクリックしそうなリンク先を予測することとなる。これは、画面上で視認可能であれば、ユーザにより次にクリックされる可能性が高いためである。抽出部１５２は、例えば、ページ５０の表示画面５６に含まれるリンクＥ、リンクＦ、リンクＩ、リンクＪなどを抽出する。抽出部１５２は、抽出したリンク先の情報をリクエストキュー（図示せず）に一時的に格納してもよい。以下では、上記したように、表示画面に視認可能なリンクを、ユーザによりクリック可能性の高いリンクであるとしたが、かかる例に限定されず、ユーザのクリック履歴を考慮して、ユーザのクリック可能性の高いリンクを予想して抽出するようにしてもよい。
【００５２】
また、抽出部１５２は、抽出したリンク先が静的コンテンツか動的コンテンツかを判定し、動的コンテンツであると判定した場合に、リンク先をリクエストキューに格納するようにしてもよい。リンク先が静的コンテンツか、動的コンテンツかは、例えば、リンクアドレスの拡張子から判断することができる。例えば、リンク先が
ｈｔｔｐ：／／ｓｔａｔｉｃ．ｊｐ．ｓｏｎｙ．ｃｏｍ．ｉｍａｇｅ．ａｂｃ．ｐｎｇ
であった場合には、上記リンク先はｐｎｇファイルなので、静的コンテンツであると判断することができる。図３に戻り、抽出部１５２は、抽出したリンク先の情報をリクエスト作成部１５４に提供する。
【００５３】
リクエスト作成部１５４は、抽出部１５２により抽出されたリンク先のコンテンツを取得するためのリクエストを作成する機能を有する。上記したように、抽出したリンク先の情報がリクエストキューに格納されている場合には、リクエスト作成部１５４は、リクエストキューに格納されているリンク先についてのリクエストを作成する。このとき、リクエスト作成部１５４により作成されるリクエストは、ユーザ操作によりアクセスされていないリンク先のコンテンツを取得するためのダミーのリクエストである。
【００５４】
ここで、図５を参照して、リクエスト作成部１５４により作成されるダミーのリクエストについて説明する。図５に示したように、リクエスト作成部１５４は、一般的なＨＴＴＰリクエストの拡張ヘッダに、リクエストがダミーであることを示すダミーコマンド「Ｘ−Ｒｅｑｕｅｓｔ−Ｔｙｐｅ：ｄｕｍｍｙ」を挿入する。図３に戻り、リクエスト作成部１５４は、作成したダミーリクエストを送信部１５６に提供する。上記では、表示されているページに含まれるリンクを抽出してダミーのリクエストを送信したが、かかる例に限定されず。ページに含まれるすべてのリンク先について抽出してダミーのリクエストを送信してもよい。
【００５５】
送信部１５６は、リクエスト作成部１５４から提供されたダミーリクエストをウェブサーバ２０に送信する機能を有する。送信部１５６は、例えば、ＨＴＭＬ５の一機能でありＪａｖａ（登録商標）Ｓｃｒｉｐｔによるバッググラウンド処理により、ダミーリクエストを送信することができる。また、ブラウザにバックグラウンド処理を実行可能な機能を有していてもよい。ウェブブラウザ１０の送信部１５６からダミーリクエストを送信されたウェブサーバ２０は、リクエストがダミーであった場合には、作成したページをウェブブラウザ１０に返答せずにキャッシュに保存する。ウェブサーバ２０によるページの作成およびページのキャッシュ保存については後で詳細に説明する。
【００５６】
受信部１５８は、ダミーではないリクエストに対してウェブサーバ２０が作成したページを受信したり、キャッシュに格納されているページを受信したりする機能を有する。受信部１５８は、受信したページを表示部１６０に提供する。表示部１６０は、受信部１５８により提供されたページを表示画面に表示する。以上、ウェブブラウザ１０の機能構成について説明した。
【００５７】
次に、ウェブサーバ２０の機能構成について説明する。ウェブサーバ２０は、受信部２０２、判断部２０４、コンテンツ作成部２０６、データベース２０８、キャッシュ部２１０、キャッシュ２１２、送信部２１４などを備える。受信部２０２は、ウェブブラウザ１０により送信されるリクエストを受信して、判断部２０４に提供する。受信部２０２により受信されるリクエストは、ユーザによりアクセスされたリンク先についてのリクエストや、ユーザによりアクセスされていないリンク先についてのダミーのリクエストなどである。
【００５８】
判断部２０４は、受信部２０２により受信されたリクエストがダミーのリクエストであるか否かを判断する機能を有する。上記したように、ダミーのリクエストには、「Ｘ−Ｒｅｑｕｅｓｔ−Ｔｙｐｅ：ｄｕｍｍｙ」などのダミーコマンドが含まれているため、判断部２０４は、リクエストにダミーコマンドが含まれている場合に、当該リクエストがダミーであると判断する。
【００５９】
コンテンツ作成部２０６は、データベース２０８に格納されている各種コンテンツの情報を用いて、リクエストに対応するページを作成する機能を有する。判断部２０４によりリクエストがダミーのリクエストではないと判断された場合には、コンテンツ作成部２０６は、作成したページを送信部２１４に提供する。一方、リクエストがダミーのリクエストであると判断された場合には、コンテンツ作成部２０６は、作成したページをキャッシュ部２１０に提供する。
【００６０】
キャッシュ部２１０は、コンテンツ作成部２０６により作成されたコンテンツをキャッシュ２１２にキャッシュする機能を有する。キャッシュ２１２は、本発明の記憶装置の一例であって、高速にデータを読み書きすることが可能な記憶装置である。ここで、キャッシュするとは、コンテンツを、高速にデータを読み書き可能な記憶装置（キャッシュ２１２）に格納することを意味する。
【００６１】
上記では、コンテンツ作成部２０６により作成されたページ全体をキャッシュする場合について説明したが、かかる例に限定されない。例えば、コンテンツ作成部２０６が、データベースにクエリーを発行して、クエリー結果を利用して動的にページの組み立てを行う場合には、当該クエリー結果のみをキャッシュ２１２にキャッシュするようにしてもよい。
【００６２】
また、キャッシュ２１２には、ユーザに実際にはアクセスされていないページが多数キャッシュされているため、ウェブサーバ２０がメモリリソースの乏しい機器である場合には、不要なキャッシュを効率的に削除する必要がある。そこで、キャッシュ部２１０は、キャッシュされているページの関連性を考慮して、効率よくキャッシュされたページを削除する。ここで、図６および図７を参照して、キャッシュ部２１０による効率のよいページ削除について説明する。
【００６３】
図６は、あるページのリンク構造の一例を説明する説明図である。図６に示したように、Ｒｏｏｔページを起点として、Ｌｉｎｋ１−ａを経由して、Ｌｉｎｋ２−ｃに辿り着くものとする。このとき、本実施形態では、表示画面に表示されているリンク先、すなわち、図６の網掛けされたリンク先のページがキャッシュに格納されていることとなる。
【００６４】
図６のリンク構造を参照すると、Ｌｉｎｋ２−ｃの次にクリックされる可能性の高いリンク先は、Ｌｉｎｋ３−ｃであると判断することができる。また、Ｌｉｎｋ３−ｃは、Ｌｉｎｋ１−ｂよりもクリックされる可能性が高いと判断することもできる。
【００６５】
また、図７は、キャッシュ２１２に格納されているページの一覧であって、図６に示したリンク構造と対応している。図７に示したように、キャッシュ２１２には、格納されているページ自体と、該ページの親ページと、さらに親の親ページも関連付けて記憶している。そこで、Ｒｏｏｔページからは、Ｌｉｎｋ１−ａからＬｉｎｋ２−ｃに辿っているため、Ｌｉｎｋ１−ａおよびＬｉｎｋ２−ｃを親ページに持たないページはアクセスされる可能性が低いと判断することができる。
【００６６】
そこで、キャッシュ部２１０は、Ｌｉｎｋ１−ａおよびＬｉｎｋ２−ｃを親ページに持たないページをキャッシュ２１２から削除することにより、アクセスされる可能性の低いページを効率よく削除することが可能となる。この場合、ＲｏｏｔとＬｉｎｋ１−ｂが削除されるページの候補となるため、キャッシュ部２１０は、ＲｏｏｔとＬｉｎｋ１−ｂに削除（Ｄｅｌｅｔｅ）フラグを設定する。
【００６７】
また、ページを戻る可能性は低いと判断する場合には、Ｌｉｎｋ２−ｃを親ページとするページのみを残して、その他をすべて削除してもよい。また、Ｌｉｎｋ２−ｃを親ページとするページを削除するが、親の親ページがＲｏｏｔのページである場合には削除しないようにしてもよい。これは、Ｒｏｏｔのページなど、親の親ページが重要なページである場合に有効である。
【００６８】
送信部２１４は、コンテンツ作成部２０６により作成されたページ、もしくは、既に作成されたキャッシュ２１２に格納されているページをウェブブラウザ１０に送信する機能を有する。送信部２１４は、ウェブブラウザ１０から送信されたリクエストがダミーリクエストではない場合に、該リクエストに対応するページをウェブブラウザ１０に送信する。
【００６９】
上記では、データベース２０８とキャッシュ２１２は、別体の記憶装置としたが、かかる例に限定されず、同一の記憶装置であってもよい。また、キャッシュ２１２は、ウェブサーバ２０に備えられているとしたが、かかる例に限定されず。ウェブサーバ２０とは別体の装置にそなえられていてもよい。例えば、ウェブブラウザ１０にキャッシュ２１２が備えられていてもよい。以上、ウェブサーバ２０の機能構成について説明した。
【００７０】
〔５〕ウェブシステムの動作の詳細
次に、図８〜図１０を参照して、ウェブシステム１の動作の詳細について説明する。まず、図８を参照して、表示されているページ内のリンクを抽出する処理について説明する。図８は、ウェブブラウザ１０におけるリンク抽出処理の詳細を示すフローチャートである。図８に示したように、まず、ウェブブラウザ１０の抽出部１５２は、表示領域に表示されているページ内のリンクを抽出する（Ｓ１０２）。そして、ステップＳ１０２において抽出したリンク先が静的コンテンツか否かを判定する（Ｓ１０４）。
【００７１】
ステップＳ１０４において、リンク先が静的コンテンツであった場合には、ステップＳ１０２において抽出した他のリンク先について、ステップＳ１０４の処理を実行する。ステップＳ１０４において、リンク先が静的コンテンツではない場合、すなわち、リンク先が動的コンテンツであった場合には、当該リンクをリクエストキューに登録する（Ｓ１０６）。そして、ステップＳ１０２において抽出したすべてのリンクについて静的コンテンツか否かを調べたか判定する（Ｓ１０８）。
【００７２】
ステップＳ１０８において、抽出したすべてのリンクについて静的コンテンツか動的コンテンツかを調べた場合には、ステップＳ１１０の処理を実行する。一方、ステップＳ１０８において、抽出したすべてのリンクについて調べていない場合には、ステップＳ１０３〜ステップＳ１０８の処理を繰り返す。そして、ステップＳ１０８において抽出したすべてのリンクについて調べた場合には、ステップＳ１０６においてリクエストキューに登録したリンクについて、ダミーリクエストをウェブサーバに送信する。上記したように、ステップＳ１１０においてダミーリクエストを送信する場合には、ＨＴＭＬ５の一機能でありＪａｖａＳｃｒｉｐｔ（登録商標）によるバッググラウンド処理により、ダミーリクエストを送信することができる。
【００７３】
以上、ウェブブラウザ１０におけるリンク抽出処理について説明した。次に、図９を参照して、ウェブブラウザ１０におけるリンクのリクエストキューへの追加処理の詳細を説明する。図８では、抽出したリンクのすべてをリクエストキューに追加することとしていたが、ユーザが画面をすぐにスクロールしてしまった場合には、クリックされる可能性の低いリンクもリクエストキューに追加されてしまう。そこで、以下では、ユーザが画面をスクロールしたか否かに応じて、リンクをリクエストキューに追加するか否かの判断を行っている。
【００７４】
図９は、ウェブブラウザ１０におけるリンクのリクエストキューへの追加処理を示すフローチャートである。図９に示したように、まず、ブラウザでページを描画する（Ｓ３０２）。そして、ステップＳ３０２において描画されたページのうち、表示画面内のリンクを抽出する（Ｓ３０４）。次に、ｎ秒間（ｎは１以上の任意の秒数、例えば、２、３秒）経過するまで待つ（Ｓ３０６）。ステップＳ３０６において、ｎ秒間経過するまで待つことにより、表示画面のスクロールがないことを確認することができる。
【００７５】
そして、ページがスクロールされたか否かを判定する（Ｓ３０８）。ステップＳ３０８において、ページがスクロールされていないと判定された場合には、ステップＳ３０４において抽出したリンクのすべてをリクエストキューに追加する（Ｓ３１０）。ステップＳ３０８において、ページがスクロールされたと判定された場合には、ステップＳ３０２の処理に戻る。
【００７６】
そして、ステップＳ３１０においてリクエストキューにリンクが追加された後に、リクエストキューに格納されている順にリンクに対応するリクエストをウェブサーバ２０に送信する（Ｓ３１２）。ステップＳ３１２においては、リクエストキューの先頭のリンクから順にウェブサーバ２０に送信されることとなる。
【００７７】
そして、リクエストキューが空であるか否かを判定する（Ｓ３１４）。ステップＳ３１４において、リクエストキューが空であると判定された場合には、再度、ページがスクロールされたか否かを判定して（Ｓ３１６）、ページがスクロールされていない場合には、リクエストキューに残っているリンクを順にウェブサーバ２０に送信する。
【００７８】
一方、ステップＳ３１６において、ページがスクロールされたと判定された場合には、リクエストキューに格納されているリンクをフラッシュ（消去）する（Ｓ３１８）。ステップＳ３１８において、リクエストキューをフラッシュした後は、再度ステップＳ３０２の処理を繰り返す。
【００７９】
以上、ウェブブラウザ１０におけるリンクのリクエストキューへの追加処理について説明した。次に、図１０を参照して、リクエストメッセージを受信したウェブサーバの動作の詳細について説明する。図１０は、リクエストメッセージを受信したウェブサーバの処理を示すフローチャートである。図１０に示したように、まず、ウェブブラウザ１０から送信されたリクエストを受信する（Ｓ２０２）。そして、ステップＳ２０２において受信したリクエストがダミーか否かを判定する（Ｓ２０４）。
【００８０】
ステップＳ２０４において、リクエストがダミーではないと判定された場合には、キャッシュ２１２にリクエストに対応するページが保持されているか否かを判定する（Ｓ２１０）。ステップＳ２１０において、キャッシュが保持されていると判定された場合には、ステップＳ２１４の処理を実行する。一方、ステップＳ２１０において、キャッシュが保持されていないと判定された場合には、リクエストに対応するページを作成する（Ｓ２１２）。そして、ステップＳ２１２において作成したページまたは、キャッシュ２１２に保持されているページをウェブブラウザに返答する（Ｓ２１４）。
【００８１】
また、ステップＳ２０４において、リクエストがダミーであると判定された場合には、ダミーのリクエストに対応するページを作成する（Ｓ２０６）。そして、ステップＳ１０６において作成したページをキャッシュ２１２に保持する（Ｓ２０８）。上記したように、ステップＳ２０８において、作成したページを保持するのではなく、データベースに対して発行したクエリーの結果のみをキャッシュ２１２に保持するようにしてもよい。
【００８２】
以上、リクエストメッセージを受信したウェブサーバの処理について説明した。上記したように、本実施形態では、ユーザにより未だアクセスされていないリンク先のページを先読みするだけでなく、ウェブブラウザ１０の表示領域に表示されているリンク先のページのみを先読みすることにより、メモリリソースが制限されている場合でも、効率よくページをキャッシュしておくことが可能となる。上記したように、ウェブブラウザ１０の表示領域がすぐにスクロールされた場合には、スクロール後の表示領域に表示されているリンク先を抽出することにより、アクセスされる可能性のより高いリンク先のページをキャッシュすることが可能となる。また、ウェブサービスへのアクセスが制限されており過去にアクセスされる可能性の低いリンク先でも、表示領域に表示されているリンク先を抽出することにより、アクセスされる可能性の高いリンク先を効率よくキャッシュすることが可能となる。
【００８３】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【００８４】
例えば、本明細書のウェブブラウザ１０およびウェブサーバ２０の処理における各ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はない。すなわち、ウェブブラウザ１０およびウェブサーバ２０の処理における各ステップは、異なる処理であっても並列的に実行されてもよい。
【００８５】
また、ウェブブラウザ１０およびウェブサーバ２０などに内蔵されるＣＰＵ、ＲＯＭおよびＲＡＭなどのハードウェアを、上述したウェブブラウザ１０およびウェブサーバ２０の各構成と同等の機能を発揮させるためのコンピュータプログラムも作成可能である。また、該コンピュータプログラムを記憶させた記憶媒体も提供される。
【符号の説明】
【００８６】
１        ウェブシステム
１０      ウェブブラウザ
１５２    抽出部
１５４    リクエスト作成部
１５６    送信部
１５８    受信部
１６０    表示部
２０      ウェブサーバ
２０２    受信部
２０４    判断部
２０６    コンテンツ作成部
２０８    データベース
２１０    キャッシュ部
２１２    キャッシュ
２１４    送信部
【図１】
2011108102.tif 000003
【図２】
2011108102.tif 000004
【図３】
2011108102.tif 000005
【図４】
2011108102.tif 000006
【図５】
2011108102.tif 000007
【図６】
2011108102.tif 000008
【図７】
2011108102.tif 000009
【図８】
2011108102.tif 000010
【図９】
2011108102.tif 000011
【図１０】
2011108102.tif 000012
【図１１】
2011108102.tif 000013