説明

ウェブページ提供装置及びウェブページ提供方法

【課題】 部品ページを一つの完成ページにまとめてからクライアントに提供する場合に、部品ページ毎にキャッシュ可能とする。
【解決手段】 本装置(10)は、ウェブサーバ(20)とアプリケーションサーバ(30)及びデータベースサーバ(40)とから構成される。ビジネスロジック(31)により生成される部品ページ(110,120)は、部品ページ単位で、予め設定されたキャッシュポリシーに従い、メモリやハードディスクに記憶される。レイアウト制御部(22)は、リクエスト制御部(21)によってウェブブラウザ(2)からのリクエストが検出されると、部品ページのキャッシュが存在するか否かを確認する(S6)。レイアウト制御部(22)は、キャッシュされている部品ページを再利用して、単一のウェブページ(200)を生成する。これにより、ウェブサーバ(20)の処理負荷が軽減され、応答性が改善される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ウェブページ提供装置及びウェブページ提供方法に関する。
【背景技術】
【0002】
いわゆるインターネットとして知られているネットワークシステムでは、WWW(World Wide Web)と呼ばれる仕組みを用いて、WWWサーバから各WWWクライアントに対して、種々のウェブページ(WWWドキュメント)を提供させる。
【0003】
ウェブページは、テキストや画像あるいは音声等のような複数種類のコンテンツを混在させて構成することができる。操作性または視認性を向上させる目的で、フレームと呼ばれる画面分割技術が使用される場合もある(特許文献1)。
【0004】
フレーム技術では、例えば、画面を上下または左右に分割し、分割された各表示領域にそれぞれ異なるコンテンツを表示させることができる。しかし、フレーム技術には、例えば、画面遷移の途中でブックマークすることができない、一回のリクエストでフレーム数分のリクエストが発生する、ウェブブラウザに表示されるアドレス情報と実際の表示画面とが一致しない、セキュリティ上の信頼性に欠ける等の問題がある。
そこで、例えば、Apache Struts Framework (Struts )及びTilesとして知られているように、フレーム技術を用いずに同様の機能を提供するレイアウト技術も使用されている。
【特許文献1】特開2004−246763号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記の新たなレイアウト技術では、従来のフレーム技術の短所を解消しつつ同等の機能を提供することができるが、ウェブブラウザに提供される画面の一部のみをキャッシュすることができない。フレーム技術を用いれば、画面の一部をキャッシュ可能であるが、上述の通り、フレーム技術には多くの短所が存在するため、ウェブアプリケーションに使用するのは適切ではない。
【0006】
WWWクライアントとWWWサーバとの間にプロキシサーバと呼ばれる中間サーバを設け、この中間サーバで一つの画面全体を丸ごとキャッシュすることは可能である。しかし、この場合は、画面の全体を単純にキャッシュするだけであり、その画面を構成する各部分毎にそれぞれキャッシュすることはできない。
【0007】
そこで、本発明の一つの目的は、単一のウェブページとして提供される画面を部分的に記憶させて再利用することができるようにしたウェブページ提供装置及びウェブページ提供方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【0008】
上記課題を解決すべく、本発明の一つの観点に従うウェブページ提供装置は、少なくとも一つ以上のコンテンツデータを含むウェブページをそれぞれ生成する複数のウェブページ生成手段と、これら各ウェブページ生成手段により生成される各ウェブページの全部または一部を、予め設定された記憶条件に基づいて、記憶手段に記憶させる記憶制御手段と、各ウェブページ生成手段により生成された各ウェブページを所定のレイアウト情報に基づいてそれぞれ配置することにより、単一のウェブページを生成してウェブブラウザに提供するレイアウト制御手段と、ウェブブラウザから単一のウェブページへのリクエストを検出するリクエスト制御手段とを備える。そして、レイアウト制御手段は、リクエスト制御手段によってウェブブラウザからのリクエストが検出された場合は、記憶手段に記憶されている各ウェブページの少なくとも一部を再利用して、単一のウェブページを生成可能となっている。
【0009】
コンテンツデータとしては、例えば、テキストデータ、静止画像データ、動画像データ、音声データ、楽曲データ等を挙げることができる。ウェブページは、例えば、HTML(HyperText Markup Language)、XML(eXtensible Markup Language)、JSP(Java Server Pages)、ASP(Active Server Pages)等を用いて生成することができる。例えば、JSPやASPでは、ウェブページ中に記述されたプログラムをWWWサーバ上で実行させて、その処理結果を表示させることができ、動的なウェブページを構成可能である。このように、ウェブページは、その内容が固定される静的なウェブページと、その内容が毎回変化し得る動的なウェブページとに大別することができる。
また、記憶手段としては、例えば、半導体メモリやハードディスクドライブ等のような書き換え可能な記憶デバイスを挙げることができる。記憶制御手段は、予め設定された記憶条件に従って、ウェブページの全部または一部を記憶手段に記憶させる。
【0010】
リクエスト制御手段がウェブブラウザからのリクエストを検出すると、レイアウト制御手段は、所定のウェブページをそれぞれ取得する。レイアウト制御手段は、所定のレイアウト情報に基づいて、これら各ウェブページを所定位置に配置し、単一のウェブページにまとめる。
即ち、この単一のウェブページは、複数のウェブページを一つのページにまとめることで構成されており、一つのウェブページとして取り扱われるもので、各フレーム内にそれぞれ異なるウェブページを表示させるフレーム技術とは相違する。
【0011】
レイアウト制御手段は、記憶手段に記憶されているウェブページの少なくとも一部を再利用して、単一のウェブページを生成することができる。これにより、単一ウェブページ(完成されたウェブページ)の各構成要素であるウェブページをそれぞれ新たに生成させる場合に比べて、処理負荷を低減することができ、ウェブブラウザへの応答性を改善することができる。
【0012】
レイアウト制御手段は、リクエスト制御手段によってリクエストが検出された場合は、記憶手段に記憶されている各ウェブページのうち再利用可能なウェブページを記憶手段から取得し、この再利用可能なウェブページ以外の各ウェブページについては各ウェブページ生成手段によって新たに生成させる。これにより、ウェブページ生成手段を必要最低限に稼働させることができ、ウェブページ提供装置の処理負荷を軽減して、ウェブブラウザへの応答性を向上させることができる。
【0013】
記憶制御手段は、各ウェブページ単位で、記憶手段に記憶させるか否かを制御することができる。あるいは、記憶制御手段は、各ウェブページの属性に基づいて、各ウェブページ毎に記憶手段に記憶させるか否かをそれぞれ制御することができる。
【0014】
例えば、記憶制御手段は、ウェブブラウザからのリクエストの内容毎にそれぞれ生成される動的なウェブページを記憶手段に記憶させることができる。即ち、動的なウェブページを記憶手段に記憶させることにより、ウェブページ生成手段を改めて稼働させる必要がなく、効率的かつ速やかに単一のウェブページを生成させることができる。
【0015】
記憶制御手段は、複数のユーザによって共有される共有ウェブページと、各ユーザによって個別に使用される個別ウェブページとに分けて、記憶手段に記憶させてもよい。例えば、複数のユーザに対して共通に使用されるウェブページは、共通ウェブページとして一時的に記憶させる。これに対し、各ユーザそれぞれによって内容の異なるウェブページは、個別ウェブページとして一時的に記憶させる。これにより、一時記憶可能な範囲が増大するため、より一層、ウェブページ提供装置の負荷軽減及び応答性の改善を図ることができる。
【0016】
記憶制御手段は、各ウェブページ毎にそれぞれ異なるタイミングで、該各ウェブページを記憶手段に記憶させることもできる。異なるタイミングの例としては、予め設定された所定時間毎にウェブページを記憶させる場合、ウェブブラウザからのリクエストが発生したときにウェブページを記憶させる場合とを挙げることができる。このように、単一のウェブページを構成する各部分(個別のウェブページ)毎に、それぞれ異なる適切なタイミングで記憶手段に記憶させることができる。
【0017】
本発明の他の観点に従うウェブページの提供方法は、ウェブブラウザからのリクエストを検出するステップと、リクエストが検出された場合は、所定のレイアウト情報に基づいて、必要なウェブページを特定するステップと、特定されたウェブページのうち記憶手段に記憶されているウェブページが存在するか否かを確認するステップと、記憶手段に記憶されているウェブページを取得するステップと、特定されたウェブページのうち記憶手段に記憶されていないウェブページを生成させるステップと、この生成されたウェブページ及び記憶手段から取得されたウェブページを所定のレイアウト情報に基づいてそれぞれ配置することにより、単一のウェブページを生成するステップと、この生成された単一のウェブページをウェブブラウザに送信するステップと、を含む。
【0018】
さらに、記憶手段に記憶されていないウェブページを生成させるステップの次に、この生成されたウェブページを記憶手段に記憶させるステップを備えてもよい。
【0019】
本発明の機能、手段、ステップの全部または一部は、例えば、マイクロコンピュータにより実行されるコンピュータプログラムとして構成可能な場合がある。そして、このコンピュータプログラムは、例えば、ハードディスク、光ディスク、半導体メモリ等の記憶媒体に固定して配布することができる。または、コンピュータプログラムをインターネット等の通信ネットワークを介して、配信することもできる。
【発明を実施するための最良の形態】
【0020】
以下、図面に基づき、本発明の実施の形態を説明する。本実施形態のウェブページ提供装置(10)は、少なくとも一つ以上のコンテンツデータを含むウェブページ(110,120)をそれぞれ生成する複数のウェブページ生成手段(31)と、これら各ウェブページ生成手段(31)により生成される各ウェブページ(110,120)の全部または一部を、予め設定された記憶条件に基づいて、記憶手段(11,12)に記憶させる記憶制御手段(23)と、各ウェブページ生成手段(31)により生成された各ウェブページ(110,120)を所定のレイアウト情報(100)に基づいてそれぞれ配置することにより、単一のウェブページ(200)を生成してウェブブラウザ(2)に提供するレイアウト制御手段(22)と、ウェブブラウザ(2)から単一のウェブページ(200)へのリクエストを検出するリクエスト制御手段(21)とを備えている。
そして、レイアウト制御手段(22)は、リクエスト制御手段(21)によってウェブブラウザ(2)からのリクエストが検出された場合は、記憶手段(11,12)に記憶されている各ウェブページ(110,120)の少なくとも一部を再利用して、単一のウェブページ(200)を生成する。
【実施例1】
【0021】
図1は、ウェブページ提供装置10の全体構成を示すブロック図である。ウェブページ提供装置10は、例えば、サーバのような情報配信用コンピュータとして構築することができる。この装置10は、例えば、インターネット等のような通信ネットワークを介して、クライアント端末1と双方向通信可能に接続される。なお、図1では、一つのクライアント端末1のみを示すが、実際には複数のクライアント端末1と接続可能である。
【0022】
本装置10は、例えば、ウェブサーバ20と、アプリケーションサーバ30と、データベース(図中「DB」)サーバ40とから三層構造で構成することができる。これら各サーバ20,30,40は、単一のコンピュータ内にそれぞれ設けることもできるし、複数のコンピュータにそれぞれ分散させて設けることもできる。これら各サーバ20,30,40は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、ハードディスクドライブ、入出力インターフェース等のハードウェアウェア資源と、OS(Operating System)やデバイスドライバ等のソフトウェア資源とを適宜利用することができる。
【0023】
ウェブサーバ20は、クライアント端末1上で稼働するウェブブラウザ2との間でデータ交換を行う情報処理部である。ウェブサーバ20は、例えば、リクエスト制御部21と、レイアウト制御部22と、キャッシュ制御部23とを備えることができる。リクエスト制御部21は、例えば、ウェブブラウザ2からのHTTP(Hypertext Transfer Protocol)リクエストを検出し、このリクエストに対するレスポンスを生成させる。より詳しくは、リクエスト制御部21は、レイアウト制御部22により生成された単一のウェブページに対するウェブブラウザ2からのリクエストを検出すると、内部的に複数のリクエストを発生させるようになっている。
【0024】
レイアウト制御部22は、タイル定義ファイルF1及びレイアウト定義ファイルF2に基づいて、複数のウェブページを単一のウェブページにまとめる。この単一のウェブページは、ウェブブラウザ2に提供される最終的な表示形態である。即ち、レイアウト制御部22により生成される単一のウェブページは、複数のウェブページに由来するが、最終的に単一のウェブページとして構成され、一つのウェブページとして取り扱われる点で、フレーム技術による画面とは相違する。以下、単一のウェブページを完成ページ、その部品となる各ウェブページを部品ページと呼ぶ場合がある。また、レイアウト制御部22は、キャッシュ定義ファイルを使用することにより、既に生成されてキャッシュされている部品ページを再利用して、完成ページを生成する。
【0025】
キャッシュ制御部23は、キャッシュメモリへ記憶させるデータを管理する。キャッシュ制御部23は、後述のように、RAM等のメモリやハードディスクドライブ等をキャッシュデバイスとして利用することができる。キャッシュ制御部23は、キャッシュ定義ファイルF3及びキャッシュ制御定義ファイルF4に基づいて、完成ページを構成する各部分ページ毎に、それぞれキャッシュを制御する。
【0026】
アプリケーションサーバ30は、複数のビジネスロジック31をそれぞれ個別に稼働させるものである。ビジネスロジック31とは、例えば、検索結果を返したり、入力されたデータに応じたページを作成するためのウェブアプリケーションプログラムである。
【0027】
DBサーバ40は、データベース41を制御するためのものである。DBサーバ40は、アプリケーションサーバ30からの要求に応じてデータベース41を検索し、その結果を返すようになっている。
【0028】
図2は、本装置10の全体動作等を示す説明図である。説明の便宜のため、完成ページ200が、”menu”部品ページ110と、”body”部品ページ120と、”message”部品ページ130とから構成される場合を例に挙げる。このため、ビジネスロジック31を、”body”部品ページ120を生成するためのビジネスロジック31Aと、”menu”部品ページ110を生成するためのビジネスロジック31Bとに区別して示す。
【0029】
ウェブブラウザ2は、ウェブサーバ20にアクセスし、例えば、画面更新等のリクエストを送信する(S1)。リクエスト制御部21は、ウェブブラウザ2からのリクエストを検出すると、ビジネスロジック31Aに対して、”body”部品ページ120の生成を指示する(S2)。ビジネスロジック31Aは、”body”部品ページ120を生成して出力する(S3)。ここで、”body”部品ページ120は、キャッシュ対象になっていないため、ビジネスロジック31Aには直ちに生成が指示される。
【0030】
また、リクエスト制御部21は、ウェブブラウザ2からのリクエストを受信すると、これをレイアウト制御部22に通知し、タイル定義の実行を指示する(S4)。レイアウト制御部22は、タイル定義ファイルF1を読出し、完成ページ200を生成するためのレイアウト情報100を選択する。
【0031】
レイアウト情報100には、各部品ページ110,120,130をどこに配置するかといった情報が含まれている。例えば、レイアウト情報100には、部品ページ110を配置するための領域101と、部品ページ120を配置するための領域102と、部品ページ130を配置するための領域103とが設定されている。このレイアウト情報100としては、具体的には、例えば、タイル定義ファイルF1及びレイアウト定義ファイルF2が該当する。
【0032】
レイアウト制御部22は、レイアウト情報100を参照することにより、完成ページ200を生成するために必要な各部品ページ110〜130を検出し、各部品ページ110〜130の取得を開始する。”body”部品ページ120がビジネスロジック31Aから出力された場合、レイアウト制御部22は、部品ページ120を取得する(S5)。
【0033】
一方、レイアウト制御部22は、”menu”部品ページ110を取得するに際して、まず最初に、キャッシュ制御部23にキャッシュデータの有無を確認する(S6)。レイアウト制御部22は、キャッシュ定義ファイルF3を参照することにより、キャッシュ対象の部品データを特定することができる。
【0034】
キャッシュ制御部23は、レイアウト制御部22からの問合せを受けると、キャッシュ定義ファイルF3を参照し、”menu”部品ページ110がキャッシュされているか否かを確認する。”menu”部品ページ110がキャッシュされている場合、レイアウト制御部22は、そのキャッシュされている部品ページ110を取得する(S10)。従って、ビジネスロジック31Bは部品ページ110を生成する必要がなく、レイアウト制御部22は、直ちに部品ページ110を取得することができる。
【0035】
なお、例えば、LRU(Least Recently Used)等のキャッシュ管理アルゴリズムに従って、キャッシュデータは、定期的にまたは不定期に削除される。従って、キャッシュ対象の”menu”部品ページ110がキャッシュされていない場合もある。この場合、ビジネスロジック31Bに”menu”部品ページ110の生成が指示され(S7)、ビジネスロジック31Bは部品ページ110を新たに生成して出力する(S8)。キャッシュ制御部23は、この新たに生成された部品ページ110をキャッシュする(S9)。
【0036】
一方、レイアウト制御部22は、例えば、定まったテキスト等のような、静的な部品ページ130を図示せぬ静的なファイル取得システムを介して取得する(S11)。
【0037】
このようにして、レイアウト制御部22は、必要な全ての部品ページ110〜130をそれぞれ取得する。レイアウト情報100に従って、各部品ページ110〜130を所定の位置にそれぞれ配置し、出力画面(完成ページ200)を生成する(S12)。
【0038】
そして、生成された完成ページ200は、通信ネットワークを介して、ウェブサーバ20からウェブブラウザ2に送信される(S13)。ウェブブラウザ2には、単一のウェブページとして構成された完成ページ200が表示される。上述のように、この完成ページ200は、複数の部品ページ110〜130に由来しており、複数種類のコンテンツデータが含まれている。従って、見かけ上は、フレームの枠を消したフレーム画面に類似するが、フレーム画面とは異なり、複数のウェブページから構成されているわけでない。
【0039】
次に、各ファイルF1〜F4の一例をそれぞれ説明する。図3は、タイル定義ファイルF1を示す説明図である。タイル定義ファイルF1の概略を部分的に説明すると、タイル定義ファイルF1は、レイアウトを決定すべきレイアウト定義ファイルF2を特定する(F11)。また、タイル定義ファイルF1には、完成されたページ200のタイトルが指定される(F12)。
【0040】
さらに、タイル定義ファイルF1では、動的な部品ページを生成し表示させるためのURL(Uniform Resource Locator)を指定することができる(F13)。動的な部品ページとして指定された場合、その部品ページを生成するビジネスロジック31に対して内部的なリクエストが発行されることになる。また、タイル定義ファイルF1には、静的な部品ページを表示させるための指定も含まれている(F14)。
【0041】
図4は、レイアウト定義ファイルF2の説明図である。レイアウト定義ファイルF2では、例えば、表示させるコンテンツ名等を指定する(F21)。また、レイアウト定義ファイルF2では、コンテンツ表示位置等を指定することができる。
【0042】
図5は。キャッシュ定義ファイルF3を示す説明図である。キャッシュ定義ファイルF3では、キャッシュ対象の部品ページを少なくとも一つ以上指定できる。そして、キャッシュ対象として指定された部品ページ毎に、キャッシュ制御用のパラメータをそれぞれ設定することができる。
【0043】
例えば、そのキャッシュ対象の部品ページが、複数のユーザによって共有されるものであるのか(キャッシュタイプ=”global”)、個別のユーザにのみ使用されるものであるのか(キャッシュタイプ=”session”)を指定することができる(F31)。また、キャッシュ定義ファイルF3では、キャッシュデータを特定するためのキーとなるパラメータを複数設定することもできる(F32)。さらに、キャッシュメモリを制御するためのキャッシュ制御定義ファイルF4を指定することもできる(F33)。
【0044】
図6は、キャッシュ制御定義ファイルF4を示す説明図である。キャッシュ制御定義ファイルF4では、例えば、キャッシュ制御システムの種類を指定する(F41)。キャッシュ制御システムとしては、例えば、(1)キャッシュをメモリに保持、(2)キャッシュをハードディスクにファイルとして保持、(3)キャッシュをメモリに保持するが、メモリの空き容量が一定量以下になった場合は、ファイルとして保持等のように、キャッシュさせる記憶デバイスの使用方法を挙げることができる。
これに加えて、例えば、(4)キャッシュをファイルとして保持し、キャッシュファイルのサイズが一定量を超えた場合は、古いものから削除する等のように、キャッシュ領域の解放方法まで指定することもできる。
【0045】
さらに、キャッシュ制御定義ファイルF4では、より詳細な設定を行うことができる(F42)。設定項目としては、例えば、(1)キャッシュファイルを保存させるディレクトリ名、(2)ハードディスクに保存するキャッシュファイルの最大記憶量、(3)メモリに保存するキャッシュの最大記憶量、(4)ウェブサーバ20を再起動したときにキャッシュを削除するか否か、等を挙げることができる。
【0046】
次に、動作の概略は既に図2と共に述べたが、本装置10による画面出力処理の概要を図7を参照して説明する。ウェブサーバ20は、クライアント端末1からのリクエストを検出すると(S21:YES)、レイアウト(タイル定義ファイルF1及びレイアウト定義ファイルF2)を選択する(S22)。
【0047】
ウェブサーバ20は、キャッシュ定義ファイルF3を参照し、選択されたレイアウトにキャッシュ対象の部品ページが含まれているか否かを判定する(S23)。そのレイアウトにおいて、キャッシュ対象に指定されている部品ページが使用される場合(S23:YES)、ウェブサーバ20は、その部品ページがキャッシュされているか否かを判定する(S24)。ウェブサーバ20は、その部品ページがキャッシュされている場合(S24:YES)、キャッシュされている部品ページをメモリ等から読出して取得する(S25)。
【0048】
これに対し、選択されたレイアウト内でキャッシュ対象の部品ページが使用されていない場合(S23:NO)、ウェブサーバ20は、部品ページを新たに生成する必要があるか否かを判定する(S26)。生成の必要ありと判定した場合(S26:YES)、ウェブサーバ20は、ビジネスロジック31に部品ページを生成させる(S27)。
ウェブサーバ20は、キャッシュ定義ファイルF3に基づいて、この生成された部品ページをキャッシュするか否かを判定する(S28)。生成された部品ページをキャッシュする場合(S28:YES)、ウェブサーバ20は、所定の記憶デバイスにその部品ページを記憶させてから(S29)、その部品ページを完成ページを生成するために取得する(S30)。
【0049】
一方、キャッシュ対象の部品ページがキャッシュされていない場合(S24:NO)、即ちキャッシュミスが発生した場合は、ウェブサーバ20は、ビジネスロジック31に指示を出して、その部品ページを新たに生成させる(S27)。そして、ウェブサーバ20は、生成した部品ページをキャッシュさせて(S28:YES、S29)、完成ページの作成に使用する(S30)。
【0050】
ウェブサーバ20は、完成ページを作成するために必要な全ての部品ページを取得したか否かを判定する(S31)。取得していない部品ページが存在する場合(S31:NO)、ウェブサーバ20は、上述した処理を繰り返す(S23〜S30)。
【0051】
必要な全ての部品ページを取得した場合(S31:YES)、ウェブサーバ20は、完成ページを作成し(S32)、これをクライアント端末1に送信する(S33)。
【0052】
図8は、キャッシュを生成する処理の概略を示すフローチャートである。ウェブサーバ20は、ビジネスロジック31によって生成された部品データを取得すると(S41)、キャッシュ定義ファイルF3を参照し(S42)、この部品ページがキャッシュ対象として指定されているか否かを判定する(S43)。キャッシュ対象でなければ、本処理は終了する(S43:NO)。
【0053】
キャッシュ対象に指定されている部品ページを取得した場合(S43:YES)、ウェブサーバ20は、その部品ページが共有指定されているか否かを判定する(S44)。共有指定とは、複数のユーザによって共通に使用される部品ページであることを示す。共有指定された部品ページの場合(S44:YES)、ウェブサーバ20は、共有キャッシュとして記憶し(S45)、キャッシュ管理テーブルT2を更新させる(S46)。キャッシュ管理テーブルT2については後述する。
【0054】
共有指定されていない部品ページを取得した場合(S44:NO)、即ち、各ユーザ毎にそれぞれ使用される部品ページの場合、ウェブサーバ20は、どのユーザに適用される部品ページであるかを特定するための情報を取得する(S47)。このユーザ特定情報として、本実施例では、クライアント端末1との間のセッションを識別するためのセッション識別情報(図中「セッションID」)を使用する。ウェブサーバ20は、取得した部品ページとセッション識別情報とを対応付けて、所定の記憶デバイスに記憶させ(S48)、キャッシュ管理テーブルT2を更新させる(S49)。
【0055】
図9は、各部品ページの属性に応じて、キャッシュ方法がそれぞれ異なる例を示す説明図である。上述のように、キャッシュ定義ファイルF3では、キャッシュ対象の部品ページを指定し、指定された部品ページ毎にキャッシュタイプ(図9中の「共有属性」)等を設定することができる。
【0056】
部品ページは、例えば、動的部品ページと静的部品ページとに分類できる。動的部品ページとは、例えば、要求される度に生成され、その内容が毎回異なるものを意味し、静的部品ページとは、例えば、その内容が一定で変化しないものを意味する。
【0057】
本実施例では、動的部品ページ及び静的部品ページのいずれをもキャッシュ可能であるが、動的部品ページをキャッシュしておけば、ビジネスロジック31を実行させる必要がなくなり、サーバ負荷が軽減される。そこで、例えば、動的部品ページを優先的にキャッシュするように、キャッシュ定義ファイルF3及びキャッシュ制御定義ファイルF4を構成してもよい。例えば、動的部品ページを優先的にメモリに記憶させ、メモリの空き容量が少なくなった場合は、静的部品ページから先に消去する。あるいは、動的部品ページをメモリに保持させ、静的部品ページをハードディスクに保持させることにより、動的部品ページをより速やかに取得することができ、ウェブサーバ20の応答性をより改善することもできる。
【0058】
図10は、キャッシュ管理テーブルT2等を示す説明図である。キャッシュ管理テーブルT2は、例えば、ページ識別情報(図中、「PID」)と、各部品ページの共有属性と、セッションIDと、部品ページが記憶されるデバイス名と、部品ページの記憶先アドレスと、部品ページの更新トリガとを、それぞれ対応付けることにより構成可能である。
【0059】
ページ識別情報は、キャッシュされている各部品ページをそれぞれ識別するための情報であり、例えば複数のパラメータの値を組み合わせることにより、生成される。同一のページ名であっても、その表示内容や更新時期等によって、ページ識別情報の値はそれぞれ異なる。共有属性とは、既に述べたように、その部品ページが複数のユーザにより共有されるページであるか、それとも各ユーザにより個別に使用されるページであるかを区別する情報である。セッションIDは、その部品ページが各ユーザ毎に使用される場合に、どのユーザに対して使用されるのかを特定するための情報である。格納先デバイス名は、部品ページが記憶されているデバイスを特定するための情報である。
【0060】
更新トリガとは、その部品ページをキャッシュするタイミングを指定するための情報である。更新トリガとしては、例えば、(1)所定時間毎、(2)その部品ページの更新が要求される毎、等を挙げることができる。即ち、例えば、その部品ページの表示内容等の特性に応じて、キャッシュを定期的にまたは不定期に更新させることができる。例えば、衛星画像を表示する部品ページの場合、その衛星画像を出力するビジネスロジック31の更新時期に合わせて、キャッシュを更新させることができる。また、例えば、検索結果を表示する部品ページの場合、ユーザから検索が要求された場合に、キャッシュを更新させることができる。
【0061】
図10中の下側には、部品データをキャッシュするための複数種類の記憶デバイスが示されている。ここで例えば、一つの記憶デバイスはメモリ11であり、他の一つの記憶デバイスはハードディスク12である。
【0062】
メモリ11もハードディスク12もいずれもランダムアクセス可能な記憶デバイスであるが、CPUからのアクセス性の観点では、メモリ11の方がハードディスク12よりも高速にアクセス可能である。一方、記憶容量の観点では、ハードディスク12の方がメモリ11よりも多くの部品ページを記憶可能である。
【0063】
そこで、例えば、このような記憶デバイスの特徴に基づいて、より速やかなアクセスが要求される部品ページやアクセス頻度の高い部品ページはメモリ11に記憶させ、それ以外の部品ページをハードディスク12に記憶させることができる。また、例えば、アクセス頻度を監視し、アクセス頻度が所定値以上に達した部品ページはハードディスク12からメモリ11に移し替え、逆に、アクセス頻度が所定値以下に達した部品はメモリ11からハードディスク12に移動させることもできる。あるいは、アクセス頻度に代えて、最後に使用されてからの経過時間に基づいて、記憶デバイス11,12間を移動させるようにしてもよい。
【0064】
本実施例は、上述のように構成されるので、以下の効果を奏する。本実施例では、完成ページを構成する各部品ページをそれぞれ個別にキャッシュ可能とし、キャッシュされた部品ページを再利用して完成ページを生成可能な構成とした。従って、クライアント端末1からリクエストされるたびに全ての部品ページをそれぞれ新たに生成し直す必要がなく、ウェブサーバ20やアプリケーションサーバ30等の処理負担をそれぞれ低減することができ、ウェブサーバ20の応答性能を向上させることができる。
【0065】
本実施例では、各部品ページ毎に、それぞれ共有属性を指定可能な構成とした。従って、キャッシュ可能な部品ページの範囲を広げることができ、これにより、一層の処理負担軽減と応答性の改善を図ることができる。つまり、本実施例では、ユーザ固有の情報を含む部品ページであっても、そのユーザを特定するための情報(セッションID)と対応付けて管理することにより、そのユーザ固有の部品ページをキャッシュして再利用できる構成を採用する。従って、キャッシュ可能な部品ページが増加し、再利用の可能性を高めて、より一層のサーバ負担の軽減及び応答性改善を図ることができる。
【0066】
本実施例では、ウェブブラウザ2からのリクエストの内容毎にそれぞれ生成される動的な部品ページをキャッシュ可能な構成とした。従って、ビジネスロジック31を稼働させて部品ページを作り直す手間がいらず、より一層サーバ負担を軽減し、応答性を改善することができる。
【0067】
本実施例では、各部品ページ毎にそれぞれ異なるタイミングでキャッシュ可能な構成を採用した。従って、各部品ページの特徴に応じた適切なタイミングで、各部品ページをそれぞれキャッシュすることができる。
【実施例2】
【0068】
図11に基づいて、第2実施例を説明する。本実施例では、各部品ページのキャッシュを更新させる時期が到来したか否かを監視し、自動的にキャッシュデータを更新させるようにしている。
【0069】
図11は、本実施例のキャッシュ生成処理の概略を示すフローチャートである。ウェブサーバ20は、キャッシュ定義ファイルF3を参照し(S51)、キャッシュデータの更新時期が到来したか否かを判定する(S52)
【0070】
メモリ等にキャッシュされている部品ページの更新時期である場合(S52:YES)、ウェブサーバ20は、その部品ページの最新のデータを取得する(S53)。例えば、その部品ページが動的なページである場合、その部品ページを生成するビジネスロジック31に内部的な指示を発行し、新たな部品ページを生成させる。
【0071】
ウェブサーバ20は、最新の部品ページを取得すると、この部品ページをメモリ等に記憶させ(S54)、キャッシュ管理テーブルT2を更新させる(S55)。ウェブサーバ20は、キャッシュ定義ファイルF3に登録されている全ての部品ページについてキャッシュ更新を行ったか否かを判定する(S56)。なお、その部品ページのキャッシュ更新時期が到来していない場合(S52:NO)、S53〜S55はスキップされ、S56に移行する。
【0072】
更新の是非を判定していない部品ページが残っている場合(S56:NO)、ウェブサーバ20は、キャッシュ定義ファイルF3に登録されている次の部品ページに移動し(S57)、上述したS51〜S56をそれぞれ繰り返す。そして、ウェブサーバ20が、全ての部品ページについてキャッシュ更新の有無を判断し、更新が必要な部品データのキャッシュデータを更新させると(S56:YES)、本処理を終了する。
【0073】
このように構成される本実施例でも、前記実施例と同様の効果を奏する。これに加えて、本実施例では、クライアントからのリクエストの有無を問わずに、部品ページのキャッシュデータを更新させるか否かを定期的に(または不定期に)判断し、自動的にキャッシュを更新させる構成とした。従って、本実施例では、例えば、クライアントからのリクエストを受信する前に、キャッシュデータを最新の状態を保持しておくことができ、リクエストに対して速やかに応答することができる。
【0074】
また、本実施例の変形例として、ウェブサーバ20の処理負荷を監視し、処理負荷が所定値以下の場合に、即ち、ウェブサーバ20の負荷が軽い時間帯を利用して、キャッシュデータを自動的に更新させることもできる。また、例えば、各部品ページの属性(共有ページか否か、アクセス頻度の大小等)を考慮し、相対的に必要性の高い部品ページは定期的にキャッシュを更新し、相対的に必要性の低い部品ページはクライアントからのリクエストを待ってキャッシュを更新させることもできる。
【0075】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、当業者であれば、前記各実施例を適宜組み合わせることができる。
【図面の簡単な説明】
【0076】
【図1】本実施例によるウェブページ提供装置の全体構成を示すブロック図である。
【図2】ウェブページ提供装置の全体動作等を示す構成説明図である。
【図3】タイプ定義ファイルの一例を示す説明図である。
【図4】レイアウト定義ファイルの一例を示す説明図である。
【図5】キャッシュ定義ファイルの一例を示す説明図である。
【図6】キャッシュ制御定義ファイルの一例を示す説明図である。
【図7】完成されたページをクライアントに提供する処理を示すフローチャートである。
【図8】キャッシュ生成処理を示すフローチャートである。
【図9】キャッシュ定義ファイルとキャッシュ対象の種類との関係を示す説明図である。
【図10】キャッシュ管理テーブル及びキャッシュに使用する記憶デバイスとの関係を示す説明図である。
【図11】本発明の他の実施例によるキャッシュ生成処理を示すフローチャートである。
【符号の説明】
【0077】
1…クライアント端末、2…ウェブブラウザ、10…ウェブページ提供装置、11…メモリ、12…ハードディスク、20…ウェブサーバ、21…リクエスト制御部、22…レイアウト制御部、23…キャッシュ制御部、30…アプリケーションサーバ、31,31A,31B…ビジネスロジック、40…データベースサーバ、100…レイアウト情報、101,102,103…部品ページの表示領域、110,120,130…部品ページ、200…完成ページ、F1…タイル定義ファイル、F2…レイアウト定義ファイル、F3…キャッシュ定義ファイル、F4…キャッシュ制御定義ファイル、T2…キャッシュ管理テーブル

【特許請求の範囲】
【請求項1】
少なくとも一つ以上のコンテンツデータを含むウェブページをそれぞれ生成する複数のウェブページ生成手段と、
これら各ウェブページ生成手段により生成される前記各ウェブページの全部または一部を、予め設定された記憶条件に基づいて、記憶手段に記憶させる記憶制御手段と、
前記各ウェブページ生成手段により生成された各ウェブページを所定のレイアウト情報に基づいてそれぞれ配置することにより、単一のウェブページを生成してウェブブラウザに提供するレイアウト制御手段と、
前記ウェブブラウザから前記単一のウェブページへのリクエストを検出するリクエスト制御手段とを備え、
前記レイアウト制御手段は、前記リクエスト制御手段によって前記ウェブブラウザからのリクエストが検出された場合は、前記記憶手段に記憶されている前記各ウェブページの少なくとも一部を再利用して、前記単一のウェブページを生成可能であるウェブページ提供装置。
【請求項2】
前記レイアウト制御手段は、前記リクエスト制御手段によって前記リクエストが検出された場合は、前記記憶手段に記憶されている前記各ウェブページのうち再利用可能なウェブページを前記記憶手段から取得し、この再利用可能なウェブページ以外の各ウェブページについては前記各ウェブページ生成手段によって新たに生成させる請求項1に記載のウェブページ提供装置。
【請求項3】
前記記憶制御手段は、前記各ウェブページ単位で、前記記憶手段に記憶させるか否かを制御する請求項1に記載のウェブページ提供装置。
【請求項4】
前記記憶制御手段は、前記各ウェブページの属性に基づいて、前記各ウェブページ毎に前記記憶手段に記憶させるか否かをそれぞれ制御する請求項1に記載のウェブページ提供装置。
【請求項5】
前記記憶制御手段は、前記ウェブブラウザからのリクエストの内容毎にそれぞれ生成される動的なウェブページを前記記憶手段に記憶させる請求項4に記載のウェブページ提供装置。
【請求項6】
前記記憶制御手段は、複数のユーザによって共有される共有ウェブページと、各ユーザによって個別に使用される個別ウェブページとに分けて、前記記憶手段に記憶させる請求項4に記載のウェブページ提供装置。
【請求項7】
前記記憶制御手段は、前記各ウェブページ毎にそれぞれ異なるタイミングで、該各ウェブページを前記記憶手段に記憶可能である請求項1に記載のウェブページ提供装置。
【請求項8】
ウェブブラウザからのリクエストを検出するステップと、
前記リクエストが検出された場合は、所定のレイアウト情報に基づいて、必要なウェブページを特定するステップと、
前記特定されたウェブページのうち記憶手段に記憶されているウェブページが存在するか否かを確認するステップと、
前記記憶手段に記憶されているウェブページを取得するステップと、
前記特定されたウェブページのうち前記記憶手段に記憶されていないウェブページを生成させるステップと、
この生成されたウェブページ及び前記記憶手段から取得されたウェブページを前記所定のレイアウト情報に基づいてそれぞれ配置することにより、単一のウェブページを生成するステップと、
この生成された単一のウェブページを前記ウェブブラウザに送信するステップと、
を含むウェブページ提供方法。
【請求項9】
前記記憶手段に記憶されていないウェブページを生成させるステップの次に、この生成されたウェブページを前記記憶手段に記憶させるステップを備えた請求項8に記載のウェブページ提供方法。
【請求項10】
ウェブブラウザからのリクエストを検出する第1機能と、
少なくとも一つ以上のコンテンツデータを含むウェブページをそれぞれ生成する複数の第2機能と、
これら各第2機能により生成される前記各ウェブページの全部または一部を、予め設定された記憶条件に基づいて、キャッシュメモリに記憶させる第3機能と、
前記リクエストが検出された場合は、前記キャッシュメモリに記憶されているウェブページと前記第2機能により新たに生成されたウェブページとを、所定のレイアウト情報に基づいてそれぞれ配置することにより、単一のウェブページを生成する第4機能と、
この生成された単一のウェブページを前記ウェブブラウザに送信させる第5機能と、
をコンピュータ上にそれぞれ実現させるためのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2006−227671(P2006−227671A)
【公開日】平成18年8月31日(2006.8.31)
【国際特許分類】
【出願番号】特願2005−37118(P2005−37118)
【出願日】平成17年2月15日(2005.2.15)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(000155469)株式会社野村総合研究所 (1,067)
【Fターム(参考)】