説明

情報処理装置およびその制御方法、並びにプログラム

【課題】WEBアプリケーションが中間言語やスクリプト言語で記述されている場合、WEBアプリケーション内の各ページへのアクセス時に初めて中間言語などをコンパイルし、結果をキャッシュに保持する処理が実行されるため、初回アクセスに関しては応答に時間がかかるという問題がある。
【解決手段】ネットワークを介して接続される端末からの要求に応じてアプリケーションプログラムのウェブページを提供する情報処理装置であって、前記端末によりウェブページが要求される前に、前記アプリケーションプログラムに対して前記ウェブページの要求を発行する要求手段と、前記要求手段による前記ウェブページの要求に応じて、前記アプリケーションプログラムが提供する前記ウェブページをコンパイルし、キャッシュに保持して管理する管理手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置およびその制御方法、並びにプログラムに関する。特に、WEBサーバへのアクセスを効率化するキャッシュ制御手段に関する。
【背景技術】
【0002】
従来のWEBサーバへのアクセスを効率化するため手段としては、WEBサーバやウェブブラウザ、或いは、WEBサーバとウェブブラウザの中間にキャッシュ機能を有するプロキシを設けることが一般的である。また、キャッシュ機能の制御手段には、ウェブブラウザからのアクセスされる確率の高いコンテンツを選択的に記憶するものがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−137642号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
現在、WEBアプリケーションは、インタプリタ言語や中間言語で記述されることある。WEBサーバは、これらインタプリタ言語や中間言語で記述されたコードを実行時にコンパイルし、更に、コンパイル結果をキャッシュに保持する。そして、WEBサーバは、キャッシュに保持したデータを再利用することにより処理の効率化を図っている。
【0005】
しかしながら、従来のキャッシュ機能は、実際にコンパイル結果を利用する際に、前記したコードを実行時にコンパイルし、コンパイル結果をキャッシュに保持している。初回の利用に関しては、コンパイルの間、待たされることになる。
【0006】
そこで、本発明においては、初回のページアクセスなどのコンパイル結果を利用する場合であっても、従来技術に比べて効率を向上させることを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本願発明は以下の構成を有する。すなわち、ネットワークを介して接続される端末に対し、前記端末からの要求に応じてアプリケーションプログラムのウェブページを提供する情報処理装置であって、前記端末によりウェブページが要求される前に、前記アプリケーションプログラムに対して前記ウェブページの要求を発行する要求手段と、前記要求手段による前記ウェブページの要求に応じて、前記アプリケーションプログラムが提供する前記ウェブページをコンパイルし、キャッシュに保持して管理する管理手段とを有する。
【発明の効果】
【0008】
本発明は、インタプリタ言語や中間言語で記述されたコードなどの、実行時にコンパイルが必要なページに対して、ページアクセスに先だって予め要求を送信しておくことにより、これらページに対するアクセスを効率化することが可能となる。
【図面の簡単な説明】
【0009】
【図1】第1実施形態に係るシステム全体の構成を示すブロック図。
【図2】ホストのハードウェア構成を示すブロック図。
【図3】キャッシュ制御機能の処理の流れを示すフローチャート。
【図4】キャッシュ制御機能により送信されるHTTP要求のヘッダの一部の例の図。
【図5】ハンドラがHTTP要求を受信した場合の処理の流れを示すフローチャート。
【図6】HTTP要求及び応答の流れを示す図。
【図7】第2実施形態に係るシステム全体の構成を示すブロック図。
【図8A】ハンドラの処理の流れを示すフローチャート。
【図8B】ユーザ認証が不要な場合のハンドラの処理の流れを示すフローチャート。
【図9】S801のアクセスを登録する処理の流れを示すフローチャート。
【図10A】アクセス集計機能が管理するアクセス集計データの例の図。
【図10B】アクセス集計機能のページ一覧の取得処理の流れを示すフローチャート。
【図11A】第3実施形態に係るアクセス集計機能のアクセス集計データの例の図。
【図11B】アクセス集計機能のページ一覧の取得処理の流れを示すフローチャート。
【図12】第4実施形態に係るシステム全体の構成を示すブロック図。
【図13】集計機能の集計処理の流れを示すフローチャート。
【図14】キャッシュ制御機能の処理の流れを示すフローチャート。
【図15】第5実施形態に係るキャッシュ制御機能の処理の流れを示すフローチャート。
【発明を実施するための形態】
【0010】
<第1実施形態>
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0011】
[システム構成]
図1は、本発明の第1実施形態に係るキャッシュ制御手段を備えるシステムの構成例のブロック図を示す。本実施形態に係るシステムは、情報処理装置である端末108と、サーバ101とがネットワーク110にて通信可能に接続された構成である。サーバ101は、WEBサーバ102、WEBサーバ102上で動作するWEBアプリケーション103、タスクスケジューラ111を含む。また、端末108は、WEBアプリケーション103にアクセスするためのWEBブラウザ109を含む。
【0012】
図1において、サーバ101は、キャッシュ制御機能107やWEBサーバ102等が動作するホストである。アプリケーションプログラムであるWEBアプリケーション103は、WEBサーバ102上で動作する。ここでWEBサーバ102は、マイクロソフト社のASP.NETや、Java(登録商標)のサーブレットコンテナ等のWEBアプリケーション実行環境を含む。WEBアプリケーション103は、WEBブラウザ109を介してユーザインタフェースを提供するページ104と、ページ104から呼び出されるライブラリ106、WEBサーバ102への要求をフックするためのハンドラ105より構成される。ここでのページ104は、WEBブラウザ109を介して表示されるウェブページを指す。
【0013】
タスクスケジューラ111は、WEBアプリケーション103により定義された管理タスクをスケジュールに従い実行するための常駐プログラムである。管理タスクには、WEBアプリケーション103が管理するネットワーク上のデバイスに対して、ネットワーク設定を配信したり、バージョンアッププログラムを配信したりするための情報が記述されている。
【0014】
さらに、タスクスケジューラ111は、WEBアプリケーション103内のページ104をスケジュールに従って呼び出すといった付加的なキャッシュ制御機能も有している。WEBアプリケーション103は、WEBブラウザ109等の外部からのHTTP(Hypertext Transfer Protocol)要求を受信しないと動作しない。従って、WEBアプリケーション103に於いて、予め定められた時間に特定の処理を実行するためには、外部からの要求なしに動作するタスクスケジューラ111のような手段が必要となる。キャッシュ制御機能107は、WEBサーバ102を介してWEBアプリケーション103内の各ページに対する要求を送信する機能を有する。キャッシュ制御機能107は、タスクスケジューラ111内の機能として提供され、タスクスケジューラ111の元で定期的に、或いはタスクスケジューラ111の処理の空き時間などに処理される。
【0015】
WEBブラウザ109は、ユーザがWEBアプリケーション103を操作する際に用いられ、ページ104等の表示を行う。端末108は、WEBブラウザ109の動作するホストである。ネットワーク110は、サーバ101と端末108とを通信可能に接続し、WEBブラウザ109とWEBサーバ102との間で行われるデータ通信の通信経路となる。
【0016】
なお、本発明を適用するためのコンピュータの構成はこれに限定するものではなく、他の部位や機能を備えていても構わない。また、サーバ101は、1台にて構成されるようにしても構わないし、複数台から構成されるようにしても構わない。また、サーバの内部に備えられるウェブサーバの機能についても特に限定しない。また、ウェブブラウザには様々な機能を備えたものがあるが、こちらについても特に限定しない。
【0017】
[ハードウェア構成]
図2は、サーバ101及び端末108のハードウェア構成例を示すブロック図である。ここでは、まとめてコンピュータ201として説明する。図2において、コンピュータ201は、CPU202、RAM203、ROM204、および外部記憶装置209を備える。CPU202は、ROM204や外部記憶装置209に記憶された、或いはLAN213よりダウンロードしたソフトウェアを実行し、システムバス211に接続された各デバイスを総括的に制御する。
【0018】
RAM203は、CPU202の主メモリあるいはワークエリアなどとして機能する。外部記憶装置209は、ハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等からなる。外部記憶装置209は、ブートプログラム、オペレーティングシステム、データベースサーバ、WEBサーバ、WEBブラウザを含む各種のアプリケーション、データベースデータ、ユーザファイル等を記憶する。
【0019】
さらにコンピュータ201において、キーボードコントローラ(KBDC)206は、キーボード(KBD)205やポインティングデバイス(不図示)からの入力情報をCPU202に送信する。ビデオコントローラ(VC)208は、CRTやLDC等からなる表示装置207の表示を制御する。ディスクコントローラ(DKC)210は、外部記憶装置209とのアクセスを制御する。通信コントローラ(COMM I/F)212は、ネットワーク110に接続され、これにより、外部装置との通信を可能とする。
【0020】
キャッシュは、通常、レジスタやメモリなどアクセスが高速な記憶部にて実現される。本実施形態においては、WEBサーバ102が提供するキャッシュをサーバ101が備えるRAM203にて実現するものとして説明するが、これに限定するものではない。
【0021】
[構成要素の動作]
以下、図1に示した各要素の動作を簡単に説明する。ページ104は、マイクロソフト社のASP.NETやJSP(Java Server Pages)等のスクリプト言語やインタプリタ言語で記述されている。また、ライブラリ106は、マイクロソフト社の.NETやJava(登録商標)等の中間言語で提供されている。WEBブラウザ109からページ104への要求が最初になされた際に、WEBアプリケーション103は、ページ104のスクリプト言語やライブラリ106の中間言語に対してコンパイルを行う。そして、WEBアプリケーション103は、コンパイル結果を用いて要求を処理する。コンパイル結果は、WEBサーバ102によりキャッシュに保持される。そして、以降のページ104への要求に際し、WEBアプリケーション103はキャッシュに保持されたコンパイル結果を利用することにより、要求を高速に処理可能となる。WEBサーバ102により管理されるコンパイル結果は、サーバ101の再起動やWEBアプリケーション103の再起動により破棄される。
【0022】
[キャッシュ制御機能の処理]
図3は、キャッシュ制御機能107の処理の流れを示すフローチャートである。本処理は、サーバ101が備えるCPU202が、記憶部であるROM204等に格納されたプログラムを実行することにより実現される。
【0023】
キャッシュ制御機能107は、S301にて、WEBアプリケーション103内のコンパイルが必要なページの一覧を作成する。キャッシュ制御機能107は、S302にて、S301で作成したページの一覧において、全てのページに対する処理が終了したか否かを判定する。全てのページに対する処理が終了した場合(S302にてYES)、キャッシュ制御機能107は、S305以降の処理に遷移する。すべてのページに対する処理が終了していない場合(S302にてNO)、キャッシュ制御機能107は、S303にて、未処理のページを1つ取得する。そして、S304にて、キャッシュ制御機能107は、取得したページに対してHTTP(或いはHTTPS)要求を発行し、送信する。ここで、キャッシュ制御機能107は、WEBアプリケーション103からの応答を待つ必要はない。
【0024】
次に、キャッシュ制御機能107は、S305にて、WEBアプリケーション103の再起動の有無を確認する。ここで、WEBアプリケーション103が再起動された場合、WEBサーバ102が管理するコンパイル結果は破棄されるものとする。WEBアプリケーション103の再起動があった場合、WEBアプリケーション103内のページの構成が変更されている場合がある。従って、再起動が確認された場合(S305にてYES)、キャッシュ制御機能107は、S301のページの一覧の取得に戻り、最初から処理をやり直す。
【0025】
WEBアプリケーション103の再起動が確認されなかった場合(S305にてNO)、キャッシュ制御機能107は、S302に戻って、一覧に含まれる次の未処理のページに対して処理を続ける。なお、キャッシュ制御機能107は、S301で取得したすべてのページに対する処理が終了した後は、S305のWEBアプリケーション103の再起動の検出を繰り返し実行するような動作になる。
【0026】
[認証処理]
一般的に用いられる多くのWEBアプリケーションにおいて、WEBアプリケーション内の各ページへのアクセスの際には、ユーザの認証を必要とする。ユーザ認証を必要とするページへのアクセスがあり、かつユーザ認証処理がされていない場合、WEBアプリケーションは、HTTP要求の送信元に対して、例えばBASIC認証の様に認証情報を要求する。或いは、WEBアプリケーションは、認証情報入力用の画面へ遷移するための応答を、HTTP要求の送信元に返信する。
【0027】
BASIC認証の様なHTTPプロトコル層での認証処理を使用している場合、HTTP要求を送信するキャッシュ制御機能107は、認証情報を送信することにより、ユーザ認証を行う。これにより、目的とするページへアクセスすることが可能となる。
【0028】
ハンドラ105は、ユーザ認証がなされていない場合に、認証情報入力用の画面を表示するようにWEBアプリケーション103が構成されている場合、キャッシュ制御機能107からのHTTP要求に対して認証処理を行うモジュールである。
【0029】
以下は、各ページへのアクセスにユーザ認証が必要な場合の説明である。従って、ページのアクセスにユーザ認証が不要な場合は、以下に説明する処理は不要である。本実施形態においては、キャッシュ制御機能107からのHTTP要求において、ユーザ認証を要求するものとする。
【0030】
図4に示す記述401は、キャッシュ制御機能107により生成され、送信される認証情報を含むHTTP要求のヘッダの一部の例を示している。ここで、キャッシュ制御機能107はHTTP要求を送信する際に、HTTPヘッダのUser−Agentに「CacheController」を指定している。これにより、HTTP要求の送信元がキャッシュ制御機能107であることを示している。
【0031】
[ハンドラの処理]
図5は、ハンドラ105がHTTP要求を受信した場合の処理の流れを示すフローチャートである。本処理は、サーバ101が備えるCPU202が、記憶部であるROM204等に格納されたプログラムを実行することにより実現される。ハンドラ105は、HTTP要求が受信される毎にWEBサーバ102により呼び出される。そして、ハンドラ105は、そのまま後続の処理を継続するか、処理を中断するかの情報を、ハンドラ105の呼び出し側であるWEBサーバ102に返す。
【0032】
ハンドラ105は先ず、S501にて、HTTP要求のヘッダのUser−Agentを参照し、HTTP要求がキャッシュ制御機能107からの要求であるか否かを確認する。ハンドラ105は、User−Agentが「CacheController」の場合に、HTTP要求がキャッシュ制御機能107からの送信されたものであると判断し(S501にてYES)、S502に遷移する。キャッシュ制御機能107からの要求でない場合(S501にてNO)、ハンドラ105は、S508に遷移する。そして、S508にて、ハンドラ105は、後続の処理を続けることWEBサーバ102に指示し、処理を終了する。ここでの後続の処理とは、例えば、WEBサーバ102によりコンパイルされたページを端末108に提供する処理などが想定される。また、キャッシュにコンパイル済みのページがある場合には、WEBサーバ102は、ページのコンパイルを再度行うことなく、ページを再利用して提供を行うことができる。
【0033】
HTTP要求がキャッシュ制御機能107からのものである場合(S501にてYES)、ハンドラ105は、S502にて、HTTP要求のヘッダ内のAuthorizationヘッダの有無を確認する。Authorizationヘッダが存在しない場合(S502にてNO)、ハンドラ105は、S504に遷移する。そして、S504にて、ハンドラ105は、キャッシュ制御機能107に、認証情報を付加したHTTP要求の再送信を要求するHTTP応答の401(Unauthorized)を返信する。その後、ハンドラ105は、S505にて、後続の処理を中止することをWEBサーバ102に指示し、本処理フローを終了する。
【0034】
HTTP要求がAuthorizationヘッダを含む場合(S502にてYES)、ハンドラ105は、S503にて、ヘッダ内の情報を使って認証を行う。そして、S506にて、ハンドラ105は、認証が成功したか否かを判定する。認証の結果が失敗であった場合(S506にてNO)、ハンドラ105は、S504の処理に遷移し、認証情報を要求する応答をキャッシュ制御機能107に返信する。そして、S505にて、ハンドラ105は、後続の処理を中止することをWEBサーバ102に指示し、本処理フローを終了する。
【0035】
認証の結果が成功であった場合(S506にてYES)、ハンドラ105は、S507にて、WEBサーバ102及びWEBアプリケーション103に認証情報を設定する。この認証情報により、WEBサーバ102及びWEBアプリケーション103は、受信したHTTP要求が認証済みであると認識することができる。その後、ハンドラ105は、S508にてWEBサーバ102に後続の処理を継続することを指示し、本処理フローを終了する。ここでの後続の処理とは、例えば、WEBサーバ102にて、要求されたページのコンパイルを行い、キャッシュに保持する処理などが想定される。
【0036】
[応答シーケンス]
図6は、キャッシュ制御機能107が送信したHTTP要求が、ハンドラ105、WEBサーバ102、およびWEBアプリケーション103により処理され、要求したページに対する応答が返信されるまでの、メッセージの流れを示す。図6では、簡略化のために、キャッシュ制御機能107とハンドラ105、ハンドラ105とWEBアプリケーション103の間に介在するWEBサーバ102は省略している。
【0037】
キャッシュ制御機能107により送信されたユーザ認証が必要なページに対する図4に示すHTTP要求は、図5及び図6に示した処理によりユーザ認証された後、WEBアプリケーション103により処理される。なお、本実施形態において、図5および図6に示すようにキャッシュ制御機能107からのHTTP要求は、1度目が認証情報を含まず、2度目に認証情報を含めて再送信している。しかし、1度目のHTTP要求から認証情報を含むような構成であってもよいし、キャッシュ制御機能からのHTTP要求についてはユーザ認証処理自体を省略する構成としても構わない。
【0038】
以上、本実施形態により、実行時コンパイルが必要なページに対して予めHTTP要求を送信し、コンパイルしたページデータをキャッシュしておくことにより、これらページに対するアクセスを効率化することが可能となる。
【0039】
<第2実施形態>
本実施形態では、第1実施形態の構成に加え、アクセス頻度の高いページの一覧をユーザに提供することを可能とする。
【0040】
図7は、第2実施形態に係るシステム全体の構成を示すブロック図である。図1と同じ構成物には同じ符号を用いている。ここではアクセス集計機能701が新たに備えられている。図7において、アクセス集計機能701は、WEBアプリケーション103内の全ページのリストと、各ページへのアクセス回数を保持する。
【0041】
本実施形態において、アクセス集計機能701は、以下の3つの処理を提供する。第一は、WEBアプリケーション103内のページの一覧を取得する処理である。ここでページとは、Java(登録商標)のJSPやASP.NETのaspxのようなコンパイルが必要な動的リソースを意味する。第二は、外部からの呼び出しにより指定されたページのアクセスカウンタを制御する処理である。第三は、アクセスカウンタの値が多い順に整列したWEBアプリケーション103内のページの一覧を提供する処理である。
【0042】
[アクセス集計データ]
図10Aは、アクセス集計機能701が管理するアクセス集計データの例である。アクセス集計データは、サーバ101上のファイルやデータベース等の記憶装置に保存され、WEBアプリケーション103の再起動等があっても内容が保持される。ここで、ファイルやデータベース等は、サーバ101が備える外部記憶装置209等で実現される。アクセス集計データは、「ページのアドレス」「アクセスカウンタ」「ページの有無」より構成される。図10Aにおいてそれぞれ、URL1011、Counter1012、Exists1013として示す。
【0043】
URL1011は、WEBアプリケーション103内のコンパイルが必要なページのアドレスを保持する。図10Aにおいて「〜/」は、WEBアプリケーション103のルートのパスを示す。Counter1012は、ページのアドレスにより示されるページが何回アクセスされたかを意味する。Exists1013は、そのページがWEBアプリケーション103内に存在するか否かを示す。
【0044】
WEBアプリケーション103の構成の変更により、WEBアプリケーション103内のページが削除された後に同じページが再度追加された場合、該当ページに対するCounter1012はリセットされない。アクセス集計機能701の第三の処理であるページ一覧の提供処理は、アクセス集計データから、Exists1013が「True」であるページのアドレスをアクセスカウンタの多い順に一覧にして処理の呼び出し元に提供する。
【0045】
[ページ一覧の取得処理]
図10Bは、アクセス集計機能701の第一の処理である、ページ一覧の取得処理の流れを示すフローチャートである。本処理は、サーバ101が備えるCPU202が、記憶部であるROM204等に格納されたプログラムを実行することにより実現される。
【0046】
アクセス集計機能701は、まずS1001にて、図10Aに示すアクセス集計データを読み込んで集計ページの一覧を作成する。次に、アクセス集計機能701は、S1002にて、WEBアプリケーション103内のコンパイルを必要とするページの一覧を取得する。このページの一覧は、例えば、WEBアプリケーション103が保持しているものとする。
【0047】
アクセス集計機能701は、S1003にて、上記2つの一覧から、集計ページの一覧にあってページの一覧にないページ、即ち集計ページにだけ存在するページのアクセス集計データのページの有無(Exists1013)を「False」に設定する。次に、アクセス集計機能701は、S1004にて、WEBページの一覧にあって集計ページの一覧にはないページ、即ちページの一覧にだけあるページをアクセス集計データに追加する。このとき、アクセス集計機能701は、追加対象となるページに対して、アクセスカウンタ(Counter1012)を“0”、ページの有無を「True」として設定する。最後にアクセス集計機能701は、S1005にて、アクセス集計データ内のページの一覧中の各ページ、即ちページに存在するページのアクセス集計データのページの有無(Exists1013)を「True」に設定する。
【0048】
図10Bに示した、ページ一覧の取得処理は、WEBアプリケーション103の再起動時にハンドラ105或いはキャッシュ制御機能107により呼び出され、実行される。
【0049】
[ハンドラの処理]
図8Aは、ハンドラ105の処理の流れを示すフローチャートである。受信したHTTP要求に対してアクセス集計機能701を呼び出し、アクセス集計データに登録する処理を除いて、処理の流れは図5に示したものと同一であるため、同じ処理には同じ符号を使用している。また、同一の処理に関しては詳細な説明を省略する。
【0050】
WEBアプリケーション103に対する送信された全てのHTTP要求は、WEBアプリケーション103により受信された後、WEBアプリケーション103がハンドラ105を呼び出すことにより事前に処理される。
【0051】
ハンドラ105は、S501で受信したHTTP要求がキャッシュ制御機能107からのものであるかを確認する。HTTP要求がキャッシュ制御機能107からのものである場合(S501にてYES)、ハンドラ105は、図5のS502以下の処理に遷移する。HTTP要求がキャッシュ制御機能107からのものでない場合(S501にてNO)、ハンドラ105は、S801のアクセス登録処理(後述)を実行する。その後、図5のS508に遷移する。
【0052】
[ハンドラの処理(ユーザ認証不要時)]
図8Bは、ページへのアクセスにユーザ認証が不要な場合の、ハンドラ105の処理の流れを示すフローチャートである。本処理は、サーバ101が備えるCPU202が、記憶部であるROM204等に格納されたプログラムを実行することにより実現される。
【0053】
ハンドラ105は、S501にてHTTP要求がキャッシュ制御機能107からのものであるかを確認する。そしてハンドラ105は、HTTP要求がキャッシュ制御機能107からのものでない場合に(S501にてNO)、S801のアクセス登録処理を実行する。その後、S508にて後続処理を継続する。
【0054】
[アクセス登録の処理]
図9は、図8のS801にて、アクセスを登録する処理の流れを示すフローチャートである。本処理は、サーバ101が備えるCPU202が、記憶部であるROM204等に格納されたプログラムを実行することにより実現される。
【0055】
まずS901にて、ハンドラ105は、HTTP要求のメソッドが「GET」か否かを確認する。GET以外のメソッドの場合(S901にてNO)、ハンドラ105は、何もしないで本処理を終了する。HTTP要求のメソッドがGETの場合(S901にてYES)、ハンドラ105は、S902にて、HTTP要求のURL(Uniform Resouce Locator)から集計に不要なパラメタ部分を削除する。ここでパラメタ部分とはURLに含まれる「?」以降の文字列(クエリーストリング)を意味する。
【0056】
次に、ハンドラ105は、S903にて、静的なリソースであるか、動的なリソースであるかを判断する。ここで、静的なリソースとは、要求されたURLが画像ファイルやCSSファイルやHTMLファイルのようなリソースを指す。また、動的なリソースとは、JSPやASP.NETのaspx等のコンパイルが必要なリソースを指す。判断の結果、要求されたURLが静的リソースである場合(S903にてNO)、ハンドラ105は、何もしないで処理を終了する。要求されたURLが動的リソースである場合(S903にてYES)、ハンドラ105は、S904にて、アクセス集計機能701を呼び出し、要求されたURLに対するアクセスカウンタを1つ増加させる。そして、本処理を終了する。
【0057】
[キャッシュ制御機能の処理]
本実施形態に係るキャッシュ制御機能107の処理の流れは、第1実施形態にて述べた図3のフローチャートと以下の点を除いて同じであるため、重複する点については省略する。
【0058】
本実施形態のキャッシュ制御機能107は、S301のページの一覧の作成処理において、アクセス集計機能701のアクセス順にページの一覧を提供する処理を呼び出すことにより、アクセス頻度順に整列したページの一覧を作成する。他の処理については図3の各ステップに同じである。ここで、図3の処理において、アクセス頻度が多い順に優先的にHTTP要求を送信するように構成してもよい。
【0059】
以上、本実施形態により、第1実施形態の効果に加え、アクセス頻度を考慮したページの一覧の提供、キャッシュにて保持するページの制御をすることができる。
【0060】
<第3実施形態>
WEBサーバには、ページが配置されたディレクトリ単位でコンパイル処理を行うものがある。例えば、「X」というディレクトリに、A、B、およびCという3つのページがある場合、WEBサーバ102は、A、B、Cいずれかへのアクセスにより、A、B、およびCの3つのページに対してコンパイル処理を実行し、コンパイル結果をキャッシュに保管する。
【0061】
このようなWEBサーバに対応するために、第2実施形態のアクセス集計機能701を、WEBアプリケーション103内のページが配置されたディレクトリ毎に集計を取るように変更する。そして、アクセス集計機能701は、ディレクトリ毎にアクセスの多いページを提示する。
【0062】
本実施形態において、アクセス集計機能701は、第2実施形態にて示した図10Aのアクセス集計データのURL部分をディレクトリとファイルに分割し、図11Aに示す形式で保持する。つまり、アクセス集計データは、ファイルの格納先を示すDirectory1111およびファイル名を示すFile1112を構成要素として含む。また、ページ一覧の提供処理は、図11Bに示す処理によりアクセスの多いディレクトリ順にページの一覧を提供する。
【0063】
[処理フロー]
図11Bは、アクセス集計機能701が、アクセスの多いディレクトリ順にページ一覧を提供する処理の流れを示すフローチャートである。本処理は、サーバ101が備えるCPU202が、記憶部であるROM204等に格納されたプログラムを実行することにより実現される。
【0064】
アクセス集計機能701は、S1101にて、アクセス集計データのページの有無が「True」の各行について、ディレクトリとそのディレクトリに属するページに対するアクセスカウンタの合計からなる一覧データを作成する。例えば、図11Aの例では、「〜/Login」が32、「〜/User」が18、「〜/Plugin/Bookmark」が0となる。次に、アクセス集計機能701は、このデータをアクセスカウンタの合計の多い順に整列する。
【0065】
アクセス集計機能701は、S1102にて、一覧データにおいて全てのディレクトリに対して、処理が終了したか否かを判定する。すべてのディレクトリに対して処理が終了している場合(S1102にてYES)、S1105へ進む。未処理のディレクトリがある場合(S1102にてNO)、S1103へ進む。
【0066】
S1103にて、アクセス集計機能701は、この一覧から未処理のディレクトリに属するファイルを取り出す。そして、アクセス集計機能701は、着目ディレクトリのパスとファイル名(Directory1111、File1112)からURLを作成する。次に、アクセス集計機能701は、S1104にて、作成したURLを、ページ一覧に追加し、ディレクトリに含まれる各ページに対するアクセスの集計を行う。アクセス集計機能701は、この処理をすべてのディレクトリに対して、実行する。
【0067】
S1102で作成した一覧内の各ディレクトリに対し上記処理を行った後(S1102にてNO)、S1105にて、アクセス集計機能701は、作成されたページ一覧を返却する。
【0068】
以上の処理により、アクセス集計機能701は、アクセス頻度の多いディレクトリ順のページのリストを作成する。図11Aの例では、リストは「〜/Login/Login.aspx」「〜/User/Add.aspx」「〜/Plugin/Bookmark/List.aspx」となる。なお、図11Aの例において、「〜/Plugin/Blog」ディレクトリは、Exists1013の値が「False」となっているため、一覧には現れない。
【0069】
他の処理については第2実施形態と同じであるため、説明は省略する。
【0070】
以上により、第1、第2実施形態の効果に加え、ディレクトリ単位でアクセス順にページの一覧を提示することができる。
【0071】
<第4実施形態>
本実施形態では、キャッシュ制御機能とアクセス集計機能をWEBサーバに内蔵させた構成について説明する。
【0072】
[システム構成]
図12は、本実施形態に係るシステム全体の構成を示すブロック図である。図1と同じ構成要素については同じ符号を用いる。図12において、WEBサーバ1201は、キャッシュ制御機能1202、集計機能1203を内蔵している。集計機能1203は、WEBアプリケーション103に対するHTTP要求を受信する毎にWEBサーバ1201により呼び出される。そして、集計機能1203は、HTTP要求のページ毎の集計を取る機能と、集計に基づいてアクセスの多い順にWEBアプリケーション103のURI(Uniform Resource Identifier)のリストを返す機能とを提供する。
【0073】
[集計処理]
図13は、集計機能1203による集計処理の流れを示すフローチャートである。本処理は、サーバ101が備えるCPU202が、記憶部であるROM204等に格納されたプログラムを実行することにより実現される。
【0074】
本集計処理は、WEBアプリケーション103に対するHTTP要求の受信の毎にWEBサーバ1201により呼び出される。集計機能1203は、S1301にて、要求されたWEBページが認証を必要とするページか否かを判定する。認証を必要としないページの場合(S1301にてNO)、集計機能1203は、S1303に遷移する。
【0075】
ユーザ認証を必要とするページの場合(S1301にてYES)、集計機能1203は、S1302にてHTTP要求が認証済みであるか否かを判定する。未認証の場合(S1302にてYES)、集計機能1203は処理を終了する。認証済みの場合(S1302にてNO)、集計機能1203は、S1303にて、HTTP要求のメソッドがGETであるか否かを判定する。メソッドがGETでない場合(S1303にてNO)、集計機能1203は、処理を終了する。
【0076】
HTTP要求のメソッドがGETである場合(S1303にてYES)、集計機能1203は、S1304にて、要求されたページが動的なリソースか否かを検査する。動的リソースでない場合(S1304にてNO)、集計機能1203は処理を終了する。要求されたページが動的リソースである場合(S1304にてYES)、集計機能1203は、S1305にて、要求されたページに対するアクセスカウンタを1増加させる。そして、本処理を終了する。
【0077】
集計機能1203が利用するアクセス集計データとそのページ一覧の取得処理に関しては、第2実施形態にて示した図10Aおよび図10Bと同様であるため、その詳細はここでは省略する。
【0078】
[キャッシュ制御機能の処理]
図14は、キャッシュ制御機能1202の処理の流れを示すフローチャートである。本処理は、サーバ101が備えるCPU202が、記憶部であるROM204等に格納されたプログラムを実行することにより実現される。
【0079】
なお、図12に示すように、本実施形態のキャッシュ制御機能1202は、第2実施形態のキャッシュ制御機能107と異なりWEBサーバ1201に内蔵されている。このとき、WEBサーバ1201は、WEBアプリケーション実行環境を含むため、WEBアプリケーション103内のページのコンパイル及びコンパイル結果のキャッシュ機能を内蔵している。従って、キャッシュ制御機能1202は、WEBサーバ1201に内蔵のページのコンパイル及びコンパイル結果のキャッシュ機能を直接呼び出すことが可能である。つまり、第2実施形態のキャッシュ制御機能107と異なり、キャッシュ制御機能1202はページに対するキャッシュのためにHTTP要求をWEBサーバ1201に送信する必要がない。
【0080】
キャッシュ制御機能1202は、S1401にて、集計機能1203のページの一覧取得機能を呼び出し、WEBアプリケーション103内のページのアクセス頻度順のリストを取得する。続いて、キャッシュ制御機能1202は、一覧に含まれるすべてのページに対して処理が終了しているか否かを判定する。すべてのページに対して処理が終了した場合には(S1402にてYES)、S1405へ進む。未処理のページがある場合には(S1402にてNO)、S1403へ進む。
【0081】
S1403にて、キャッシュ制御機能1202は、ページの一覧からアクセス頻度の高い順に未処理のページを取り出す。そして、キャッシュ制御機能1202は、S1404にて、S1403で取り出したページのコンパイル及びコンパイル結果のキャッシュ処理をWEBサーバ1201に依頼する。このとき、WEBサーバ1201は、指示されたページのコンパイル結果がキャッシュに存在しない場合、ページのコンパイルを行い、コンパイル結果をキャッシュに保管する。
【0082】
次にキャッシュ制御機能1202は、S1405にて、WEBアプリケーション103の再起動の有無を確認する。WEBアプリケーション103の再起動が確認された場合(S1405にてYES)、キャッシュ制御機能1202はS1401に遷移し、ページ一覧の取得からやり直す。WEBアプリケーション103の再起動が確認されなかった場合(S1405にてNO)、キャッシュ制御機能1202はS1402に遷移し、S1401で取得したページの一覧に対する処理を継続する。
【0083】
以上により、第1実施形態と同様の効果を有することができる。
【0084】
<第5実施形態>
本実施形態では、第2及び第3実施形態の構成に加え、WEBサーバ1201内にページが追加された場合に、追加されたページに対するキャッシュを優先的に作成する機能をユーザに提供する。また、本実施形態では、ユーザ操作等により既にキャッシュが作成されていることを検出する機能を提供することにより、より短時間でキャッシュを作成することを可能とする。
【0085】
[ページ一覧の取得処理]
本実施形態に係るページ一覧の取得処理の流れは、第2実施形態にて述べた図10Bのフローチャートと、以下の点を除いて同じであるため、重複する点については説明を省略する。
【0086】
本実施形態のアクセス集計機能701は、S1001の、図10Aに示すアクセス集計データを読み込んで集計ページの一覧を作成する際、まず、アクセスカウンタ(Counter1012)が“0”であるページのアクセスカウンタを“1”に変更する。これにより、本実施形態における図10Bに示すページ一覧の集計処理の結果は、新規に追加されたページのアクセスカウンタは“0”、既存のページのアクセスカウンタは“1”以上の値となる。
【0087】
本実施形態に係るアクセス集計機能701のアクセス順のページの一覧を提供する処理では、まず、アクセスカウンタが“0”のページを一覧の上位に整列させる。そして、アクセスカウンタが“0”のページの後に、アクセスカウンタが“1”以上のページをアクセスカウンタの多い順に整列したページの一覧を追加する。そして、アクセス集計機能701は、生成した一覧データを返す。この一覧により、本実施形態のキャッシュ制御機能107は、新規に追加されたページが存在する場合は、新規に追加されたページから優先的にHTTP要求を送信する。つまり、一覧の上位に整列されたページほど優先的にHTTP要求が行われることとなる。
【0088】
本実施形態に係るアクセス集計機能701は、第4実施形態のようにアクセスカウントの集計をディレクトリ毎に集計する場合にも同様の処理を行う。例えば、本実施形態に係るアクセス集計機能701は、S1101にて、新規に追加されたディレクトリの一覧の後に、アクセス頻度順にディレクトリとそのディレクトリに属するページの一覧データを追加した、一覧データを作成する。
【0089】
[キャッシュ制御技能の処理]
図15は、本実施形態に係るキャッシュ制御機能107の処理の流れを示すフローチャートである。本処理は、サーバ101が備えるCPU202が、記憶部であるROM204等に格納されたプログラムを実行することにより実現される。図15において、図3のフローチャートと重複する処理に関しては同一の符号を使用し、詳細な処理の説明は省略する。
【0090】
キャッシュ制御機能107は、S1501にて、S304のページに対するHTTP要求の送信間隔を決定する。送信間隔は、例えば、サーバ101の備えるCPU202の個数により、以下の式により決定する。
送信間隔(秒)=MIN(120,120/CPU数)
この式に従うと、送信間隔は、CPU数が1個の場合は120秒、2個の場合は60秒、4個以上の場合は30秒となる。
【0091】
キャッシュ制御機能107は、S304にて、取得したページに対してHTTP(或いはHTTPS)要求を送信し、WEBアプリケーション103からの応答を待つ。キャッシュ制御機能107は、S1502にて、S304におけるHTTP要求の送信から応答の受信までの間隔が規定値よりも長いかを検査する。ここで、規定値は、既にページのキャッシュが作成されている場合に期待される応答時間よりも長く、WEBサーバ102がページのキャッシュを作成した場合に期待される応答時間よりも短い時間が設定される。応答時間が規定値内の場合(S1502にてYES)、キャッシュ制御機能107は、S302に戻って、一覧に含まれる次の未処理ページに対して処理を続ける。この場合、着目ページに対するキャッシュが作成されているものと判断できる。
【0092】
応答時間が規定値よりも長い場合(S1502にてNO)、キャッシュ制御機能107は、S305のWEBアプリケーション103の再起動検出処理に進む。WEBアプリケーション103の再起動が検出されなかった場合(S305にてNO)、キャッシュ制御機能107は、S1503にて、S1501で決定した送信間隔だけ待機する。送信間隔が経過後、キャッシュ制御機能107は、S302に戻って、一覧に含まれる次の未処理ページに対して処理を続ける。
【0093】
WEBアプリケーション103の再起動を検出した場合には(S305にてYES)、S301の処理に戻る。
【0094】
以上により、WEBサーバ1201内にページが追加された場合に、追加されたページに対するキャッシュを優先的に作成する機能をユーザに提供する。そして、ユーザ操作等により既にキャッシュが作成されていることを検出する機能を提供することにより、より短時間でキャッシュを作成することを可能とする。
【0095】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
ネットワークを介して接続される端末に対し、前記端末からの要求に応じてアプリケーションプログラムのウェブページを提供する情報処理装置であって、
前記端末によりウェブページが要求される前に、前記アプリケーションプログラムに対して前記ウェブページの要求を発行する要求手段と、
前記要求手段による前記ウェブページの要求に応じて、前記アプリケーションプログラムが提供する前記ウェブページをコンパイルし、キャッシュに保持して管理する管理手段と
を有することを特徴とする情報処理装置。
【請求項2】
前記要求手段は、前記アプリケーションプログラムのタスクをスケジュールにより実行させるスケジューラの機能として動作し、
当該スケジューラは、前記端末による要求なしに、前記アプリケーションプログラムに対して前記ウェブページの要求を発行することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記端末により前記アプリケーションプログラムに対してウェブページの要求があった際に、当該ウェブページがキャッシュに保持されている場合、当該キャッシュされているウェブページが前記端末に対して提供されることを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記要求手段が発行した要求に対しては、前記ウェブページへのアクセスする際の認証処理を省略することを特徴とする請求項1乃至3のいずれか一項に記載の情報処理装置。
【請求項5】
前記要求手段は、前記アプリケーションプログラムの再起動を検出した際には、再度、前記アプリケーションプログラムが提供するウェブページに対する要求を発行することを特徴とする請求項1乃至4のいずれか一項に記載の情報処理装置。
【請求項6】
前記ウェブページに対するアクセス頻度を集計するアクセス集計手段を更に有し、
前記要求手段は、前記アプリケーションプログラムが提供するウェブページのうち、アクセス頻度が高いウェブページに対して要求を発行することを特徴とする請求項1乃至5のいずれか一項に記載の情報処理装置。
【請求項7】
前記アクセス集計手段は、コンパイルを要するウェブページに対して、アクセス頻度の集計を行うことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記アクセス集計手段は、前記ウェブページの配置されたディレクトリごとにアクセス頻度の集計を行うことを特徴とする請求項6または7に記載の情報処理装置。
【請求項9】
前記要求手段は、前記アプリケーションプログラムが提供するウェブページが新たに追加された場合、該新たに追加されたウェブページを優先して要求することを特徴とする請求項1乃至8のいずれか一項に記載の情報処理装置。
【請求項10】
ネットワークを介して接続される端末のウェブブラウザに対し、前記端末からの要求に応じてアプリケーションプログラムのウェブページを提供するためのウェブサーバが動作する情報処理装置であって、
前記ウェブサーバの機能として、前記端末によりウェブページが要求される前に、前記アプリケーションプログラムに対して前記ウェブページの要求を発行する要求手段と、
前記ウェブサーバによる前記ウェブページの要求に応じて、前記アプリケーションプログラムが提供する前記ウェブページをコンパイルし、キャッシュに保持して管理する管理手段と
を有することを特徴とする情報処理装置。
【請求項11】
ネットワークを介して接続される端末に対し、前記端末からの要求に応じてアプリケーションプログラムのウェブページを提供する情報処理装置の制御方法であって、
前記端末によりウェブページが要求される前に、前記情報処理装置の内部において前記アプリケーションプログラムに対して前記ウェブページの要求を発行する要求工程と、
前記情報処理装置の内部において発行された前記ウェブページの要求に応じて、前記アプリケーションプログラムが提供する前記ウェブページをコンパイルし、キャッシュに保持して管理する管理工程と
を有することを特徴とする制御方法。
【請求項12】
ネットワークを介して接続される端末のウェブブラウザに対し、前記端末からの要求に応じてアプリケーションプログラムのウェブページを提供するためのウェブサーバが動作する情報処理装置の制御方法であって、
前記ウェブサーバの機能として、前記端末によりウェブページが要求される前に、前記アプリケーションプログラムに対して前記ウェブページの要求を発行する要求工程と、
前記ウェブサーバによる前記ウェブページの要求に応じて、前記アプリケーションプログラムが提供する前記ウェブページをコンパイルし、キャッシュに保持して管理する管理工程と
を有することを特徴とする制御方法。
【請求項13】
コンピュータを、請求項1乃至9のいずれか一項に記載の各手段として機能させるためのプログラム。
【請求項14】
コンピュータを、請求項10に記載の各手段として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2013−101579(P2013−101579A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2011−272753(P2011−272753)
【出願日】平成23年12月13日(2011.12.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】