(57)【要約】【課題】  Ｗｅｂサーバ上で動的にＨＴＭＬデータ全体を作成する負荷を削減するとともに、ＨＴＭＬデータをネットワーク経由で送信することによるネットワークトラフィックの負荷を削減することが可能なＷＷＷシステム処理方法およびシステムを提供することを目的とする。【解決手段】  Ｗｅｂサーバ上で動的に作成されるＷｅｂページのうち、変化しない部分をテンプレートとして作成しておき、Ｗｅｂブラウザが動作するクライアントコンピュータからは、変化する部分だけをＷｅｂサーバに対して要求し、クライアントコンピュータ上でＷｅｂサーバから入手した変化する部分とテンプレートからＨＴＭＬデータを生成するようにする。【選択図】  図１３
2005107662.tif 000002
【特許請求の範囲】
【請求項１】
インターネットを介してクライアントコンピュータ上のＷｅｂブラウザからのデータ要求に対しＷｅｂサーバから目的データを要求元に送るＷｅｂシステムにおける処理方法であって、
前記クライアントコンピュータからの最初の要求時には、前記ＷｅｂサーバからＷｅｂブラウザ上に表示するページを合成するためのテンプレートデータを転送して前記クライアントコンピュータに格納しておき、以後、前記クライアントコンピュータからは、前記テンプレートデータ内の変更が必要な差分の部分だけを前記Ｗｅｂサーバに要求し、前記Ｗｅｂサーバは、前記変更が必要な差分の部分のデータだけを前記クライアントコンピュータに返信することを特徴とするＷＷＷシステム処理方法。
【請求項２】
請求項１に記載のＷＷＷシステム処理方法において、
前記クライアントコンピュータ上でＷｅｂブラウザとプロキシプログラムを、前記Ｗｅｂサーバ上でＷｅｂサーバプログラムとＷｅｂサーバ中継プログラムを、それぞれ動作させ、
前記プロキシプログラムにより、前記Ｗｅｂブラウザの要求を受信し、前記Ｗｅｂサーバ中継プログラムに対して、前記要求に係るＷｅｂサーバのＵＲＬ、パラメータ、および入手した差分に関する情報を転送し、
前記Ｗｅｂサーバ中継プログラムにより、前記Ｗｅｂサーバプログラムを呼び出して前記テンプレートデータ内の変更が必要な差分の部分のデータだけを取得し、取得した差分のデータだけを前記プロキシプログラムに返信し、
前記プロキシプログラムにより、前記テンプレートデータに前記差分のデータを合わせてＷｅｂページを作成し、前記Ｗｅｂブラウザに送って表示させる
ことを特徴とするＷＷＷシステム処理方法。
【請求項３】
請求項１または２に記載のＷＷＷシステム処理方法において、
前記クライアントコンピュータからの最初の要求時に送信するテンプレートデータは、前記Ｗｅｂブラウザ上に表示するページから遷移可能な全てのページのテンプレートデータを含むことを特徴とするＷＷＷシステム処理方法。
【請求項４】
インターネットを介してクライアントコンピュータ上のＷｅｂブラウザからのデータ要求に対しＷｅｂサーバから目的データを要求元に送るＷｅｂシステムにおける処理方法であって、
前記クライアントコンピュータ上で動作するＷｅｂブラウザからの要求をプロキシプログラムにより受信するステップと、
前記プロキシプログラムにより、前記受信した要求に応じて前記Ｗｅｂブラウザに返すデータがキャッシュ内に存在していない場合は、Ｗｅｂサーバ中継プログラムに前記要求を発行するステップと、
前記要求を受けたＷｅｂサーバ中継プログラムから前記プロキシプログラムに、前記Ｗｅｂブラウザ上に表示するページから遷移可能な全てのページのテンプレートデータを含むデータを送信するステップと、
前記プロキシプログラムにより、受信したテンプレートデータを含むデータをキャッシュに保存するステップと、
前記プロキシプログラムにより、前記Ｗｅｂブラウザからの要求を受信したとき、その要求に応じて実行すべきテンプレートデータがキャッシュ内に存在していた場合は、前記Ｗｅｂサーバ中継プログラムに対し当該テンプレートデータに対応するプログラムを実行して該テンプレートデータ内の変更が必要な部分のデータを送ることを指示するステップと、
前記指示を受けたＷｅｂサーバ中継プログラムから前記Ｗｅｂサーバプログラムに対して、前記テンプレートデータに対応するプログラムの実行を指示するステップと、
前記指示を受けたＷｅｂサーバプログラムにより、前記テンプレートデータに対応するプログラムを実行して、前記テンプレートデータ内の変更が必要な部分のデータを取得し、前記Ｗｅｂサーバ中継プログラムに返信するステップと、
前記返信を受けたＷｅｂサーバ中継プログラムにより、前記返信されたデータを前記プロキシプログラムに返信するステップと、
前記返信を受けたプロキシプログラムにより、キャッシュ内に存在していた前記テンプレートデータに前記返信されたデータを埋め込んでＷｅｂページを作成し、前記Ｗｅｂブラウザに返すステップと、
前記ウェブブラウザによりそのＷｅｂページを表示するステップと
を備えたことを特徴とするＷＷＷシステム処理方法。
【請求項５】
請求項２または４に記載のＷＷＷシステム処理方法において、
前記Ｗｅｂブラウザからの要求を受信したプロキシプログラムは、前記テンプレートデータの更新の有無を前記Ｗｅｂサーバ中継プログラムに確認し、更新があったページの分だけのテンプレートデータを入手することを特徴とするＷＷＷシステム処理方法。
【請求項６】
請求項２または４に記載のＷＷＷシステム処理方法において、
前記テンプレートデータ内にプログラムを記述可能であり、そのうち前記Ｗｅｂサーバ上のデータにアクセスする部分については、前記Ｗｅｂサーバ中継プログラムに対してリモート呼び出しを行うことを特徴とするＷＷＷシステム処理方法。
【請求項７】
請求項２または４に記載のＷＷＷシステム処理方法において、
前記プロキシプログラムにより、前記Ｗｅｂブラウザからの要求を受信したとき、その要求に応じて前記Ｗｅｂブラウザに返す静的なデータがキャッシュ内に存在していた場合は、該データを前記Ｗｅｂブラウザに返信するステップをさらに備えたことを特徴とするＷＷＷシステム処理方法。
【請求項８】
Ｗｅｂブラウザが動作し、該Ｗｅｂブラウザからインターネットを介してＷｅｂサーバにデータ要求を発行し、該データ要求に応じて該Ｗｅｂサーバから返信されるデータをＷｅｂブラウザで表示するクライアントコンピュータと、前記クライアントコンピュータからのデータ要求に応じて目的データを要求元に送るＷｅｂサーバとを備えたＷＷＷシステムであって、
前記クライアントコンピュータからの最初の要求時には、前記ＷｅｂサーバからＷｅｂブラウザ上に表示するページを合成するためのテンプレートデータを転送して前記クライアントコンピュータに格納しておき、以後、前記クライアントコンピュータからは、前記テンプレートデータ内の変更が必要な差分の部分だけを前記Ｗｅｂサーバに要求し、前記Ｗｅｂサーバは、前記変更が必要な差分の部分のデータだけを前記クライアントコンピュータに返信することを特徴とするＷＷＷシステム。
【請求項９】
請求項８に記載のＷＷＷシステムにおいて、
前記クライアントコンピュータ上でＷｅｂブラウザとプロキシプログラムを、前記Ｗｅｂサーバ上でＷｅｂサーバプログラムとＷｅｂサーバ中継プログラムを、それぞれ動作させ、
前記プロキシプログラムにより、前記Ｗｅｂブラウザの要求を受信し、前記Ｗｅｂサーバ中継プログラムに対して、前記要求に係るＷｅｂサーバのＵＲＬ、パラメータ、および入手した差分に関する情報を転送する処理を実行し、
前記Ｗｅｂサーバ中継プログラムにより、前記Ｗｅｂサーバプログラムを呼び出して前記テンプレートデータ内の変更が必要な差分の部分のデータだけを取得し、取得した差分のデータだけを前記プロキシプログラムに返信する処理を実行し、
前記プロキシプログラムにより、前記テンプレートデータに前記差分のデータを合わせてＷｅｂページを作成し、前記Ｗｅｂブラウザに送って表示させる処理を実行する
ことを特徴とするＷＷＷシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット環境でホームページを閲覧する際のキャッシュ機能に関し、特に、サーバーサイドスクリプト等により動的に画面を作成するページの閲覧に際し、ページのテンプレートを記述したデータをクライアント側に保存しておき、サーバから送信されたデータとテンプレートを用いてＷｅｂのページを生成することで、Ｗｅｂサーバの負荷軽減、およびネットワークの負荷軽減を実現する技術に関する。
【背景技術】
【０００２】
近年、インターネットの普及により、Ｗｅｂブラウザを用いてＷｅｂページを閲覧することが盛んに行われている。Ｗｅｂページを構成するＨＴＭＬデータを送受信する際に、使用する通信回線の容量や通信速度が、クライアントコンピュータにおけるデータ表示速度に大きな影響を与えている。また、ＷｅｂサーバにおいてＨＴＭＬデータの更新が頻繁に行われたり、サーバサイドスクリプトと呼ばれるＷｅｂサーバ上で実行されるプログラムによって、動的にＷｅｂページのデータを作成することも多数行われている。
【０００３】
従来より、Ｗｅｂブラウザはキャッシュ機能を備え、これにより、要求したＷｅｂページのＵＲＬが以前に要求済みであれば、Ｗｅｂサーバにデータ入手の要求をせずにキャッシュに保持されている当該ＵＲＬのＨＴＭＬデータをＷｅｂブラウザで表示するようになっている。このとき、変更されていないページの場合は通信が発生しないが、上記のようにＷｅｂサーバ上で変更されたページや、動的に作成されるページについては、再度ＷｅｂサーバからＨＴＭＬデータを入手しなければならない。
【０００４】
このようなキャッシュ機能によってＷｅｂサーバでの処理を高速化する技術として、一旦作成したＷｅｂページをメモリ上に蓄えておき、さらにＨＴＭＬデータを送信する際のＨＴＴＰヘッダデータも含めてキャッシュしておく技術が、下記特許文献１で公開されている。
【０００５】
また、ＨＴＭＬデータの入手にあたって通信量を削減する技術として、サーバ側でクライアントに送信したＨＴＭＬデータをキャッシュしておき、再アクセス時に最新のＨＴＭＬデータとキャッシュしておいたデータを比較し差分だけを送信する技術が、下記特許文献２で公開されている。
【特許文献１】特開平１１−２７５１３６号公報
【特許文献２】特開２００２−１８９６１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の技術では、変更が行われたＷｅｂページや動的に作成されるＷｅｂページに関しては、必ずＨＴＭＬデータ全体を作成してクライアントコンピュータに送信する必要があり、Ｗｅｂサーバの負荷やネットワークトラフィックの負荷を軽減できないという問題がある。
【０００７】
また、上記特許文献２に記載の技術でも、Ｗｅｂサーバ上でキャッシュしておいたデータと最新のデータの差分を取得するために、一旦ＨＴＭＬデータを作成しなければならず、Ｗｅｂサーバの負荷を軽減できないという問題がある。
【０００８】
本発明の目的は、Ｗｅｂサーバ、ネットワークトラフィック両者の負荷を削減することが可能なＷＷＷシステム処理方法およびシステムを提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は、Ｗｅｂページのうち変更されない静的なＨＴＭＬデータと、動的に変化する部分を入手するためのプログラムを含むテンプレートデータとを用意し、Ｗｅｂサーバ上で動作する、動的に変化する部分だけを取り出してクライアントに返信するＷｅｂサーバ中継プログラムと、テンプレートデータとＷｅｂサーバ中継プログラムから受信した変化する部分からＷｅｂページを合成するクライアントコンピュータ上で動作するプロキシプログラムを持つことを特徴とする。
【００１０】
このプロキシプログラムは、Ｗｅｂブラウザからの要求にしたがって、テンプレートデータを検索し、変化する部分のないＨＴＭＬデータであればそのままＷｅｂブラウザに返却することで、ネットワークトラフィックを発生させない。また、動的に変化する部分があるテンプレートデータの場合は、Ｗｅｂサーバ中継プログラムに対して変化部分の入手を要求し、Ｗｅｂサーバ中継プログラムは、本来のＷｅｂサーバの処理を実行し、動的に変化する部分だけを返信する。これにより、Ｗｅｂサーバ上でＨＴＭＬページ全体を作成する必要がなく、Ｗｅｂサーバの負荷を削減できるとともに、ネットワーク上には動的に変化する部分だけしか流れないために、ネットワークトラフィックの負荷も削減できる。
【発明の効果】
【００１１】
本発明によれば、ＷＷＷシステムが用意したテンプレートデータをＷｅｂブラウザが動作するクライアントコンピュータ上で処理するために、ネットワーク上には変化したデータだけしか流れない。従って、ネットワークトラフィックを削減することができる。また、Ｗｅｂサーバ側でも、変化する動的なデータだけを作成すればよく、ＨＴＭＬデータ全体を作成する必要がないために、Ｗｅｂサーバ自身の負荷も削減することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
【００１３】
図１は、本発明を適用したＷＷＷシステムの一実施の形態を示すシステム構成図である。ここで示すシステムでは、Ｗｅｂサーバコンピュータ１と、このＷｅｂサーバ１を利用するクライアントコンピュータ２とが、ネットワーク３によって接続されている。Ｗｅｂサーバコンピュータ１は、ＣＰＵ１１Ａおよびメモリ１１Ｂを備えた端末装置１１、Ｗｅｂサーバプログラム１２Ａ、Ｗｅｂサーバ中継プログラム１２Ｂ、ＨＴＭＬコンテンツ１２Ｃ、およびテンプレートデータ１２Ｄが格納されている外部記憶装置１２、並びに、ネットワーク接続のための通信ポート１３を備えている。
【００１４】
クライアントコンピュータ２は、ＣＰＵ２１Ａおよびメモリ２１Ｂを備えた端末装置２１、Ｗｅｂブラウザプログラム２２Ａ、プロキシプログラム２２Ｂ、およびテンプレートデータを保持しておくテンプレートキャッシュ２２Ｃが格納されている外部記憶装置２２、並びに、通信ポート２３を備えている。Ｗｅｂサーバ１とクライアント２とは、データを通信するためのネットワーク（インターネット）３で接続されている。
【００１５】
図２は、Ｗｅｂサーバコンピュータ１上の外部記憶装置１２に格納されているＨＴＭＬコンテンツ１２Ｃの例である。このＨＴＭＬコンテンツ１２Ｃは、login.htmlというファイル名称で外部記憶装置１２に格納されている。
【００１６】
図３は、図２に示したＨＴＭＬコンテンツを受け取ったＷｅｂブラウザプログラム２２Ａがクライアントコンピュータ２のディスプレイ（図示しない）に表示した画面例である。画面３００上には、UserIDを入力するテキストフィールド３０１、パスワードを入力するテキストフィールド３０２、サーバに対してUserIDとパスワードの送信を指示するログインボタン３０３、および、入力したテキストをクリアするリセットボタン３０４が表示されている。
【００１７】
図４は、図３に示したクライアントコンピュータ２上で稼動しているＷｅｂブラウザプログラム２２Ａが表示した画面例で、UserIDとパスワードを入力してログインボタンを押下し、Ｗｅｂサーバコンピュータ１に対して、UserIDとパスワードを送付した際に、Ｗｅｂサーバコンピュータ１上で動作する従来のプログラムであるloginServletの例である。このプログラム４００は、Java言語を用いてServletプログラムとして記述してあり、クライアントコンピュータからリクエストを受け付けると、doPostメソッドが開始され、受け取ったuserIDとパスワードを取り出し、verifyUserメソッドを用いてユーザ認証を行う。ユーザが認証された場合は、verified.jspプログラムを呼び出し、認証できなかった場合は、login.htmlという名称のＨＴＭＬコンテンツを返却する。
【００１８】
図５は、図４のプログラムでユーザが認証された場合に実行されるverified.jspプログラムを示したものである。このプログラムは、Java Server Pages（ＪＳＰ）として作成されており、Ｗｅｂサーバプログラム２２Ａ上で実行される。jsp:getPropertyでnameに指定した名称のオブジェクトに格納されている、propertyで指定した属性の値を取り出す。例えば、５０１では、userオブジェクトのname属性を取り出す。また、'<%'と'%>'の間には、Javaのプログラムを記述することができる。５０２では、userに関連する製品をgetRecommendProductsメソッドを呼び出して入手し、入手した製品の個数分のURL、製品名、製品画像を表示するＨＴＭＬデータを作成している。このプログラムがＷｅｂサーバ１上で実行された結果として生成されたＨＴＭＬコンテンツがクライアントコンピュータ２に返却されることになる。
【００１９】
図６は、図５のプログラムの実行結果として得られるＨＴＭＬコンテンツの例である。userオブジェクトのname属性である「藤岡秀樹」、point属性である「２７０」がそれぞれ挿入され、お勧め商品として、製品紹介ページへのリンク、製品タイトル、および画像へのリンクが複数挿入されている。
【００２０】
図７は、本実施形態で用いるテンプレートデータ７００の例である。このテンプレートデータverified.tptの内容は、通常のＨＴＭＬコンテンツの記述の途中に、「<%」と「%>」の間に、テンプレートデータへのデータを挿入することを示した記述を追加したものである。図７では、サーバ側のプログラムの呼出（７０１）、その結果入手したデータの位置を指定した取り出し（７０２）などが記述してあり、クライアントコンピュータ２上のプロキシプログラムで実行される。
【００２１】
図８は、図７に示したテンプレートデータを処理する際に、プロキシプログラム２２Ｂから呼び出されるＷｅｂサーバ中継プログラム１２Ｂ上で実行されるプログラムの例である。template型のオブジェクトを作成（８０１）し、addメソッドを呼び出してユーザ名やポイント、お勧め商品の値を蓄積（８０２）しておき、printメソッドを使ってクライアントへ返信するデータを作成する（８０３）。
【００２２】
図９は、図８に示したプログラムの実行結果としてＷｅｂサーバ中継プログラム１２Ｂからプロキシプログラム２２Ｂに返信されるデータの例である。行の先頭に％があるものがそれぞれ１個分のデータであり、この例では４つのデータが返却されることを示している。
【００２３】
図１０は、図４に示した従来のＷＷＷシステムで使用していたサーバプログラム４００を本実施形態のテンプレートを使用するように変更した例である。図４では、JSPプログラムを呼び出していたところを、ＨＴＴＰレスポンスのヘッダとして「X-template」を追加するように変更している（１００１、１００２）。
【００２４】
図１１は、本実施形態のＷｅｂサーバ１上の外部記憶装置１２に格納されており、Ｗｅｂサーバ中継プログラム１２Ｂが使用するテンプレート・サーブレット対応テーブル１１００の例である。テンプレート・サーブレット対応テーブル１１００には、クライアントコンピュータ２上で使用するテンプレートデータファイルの名称１１０１と、そのテンプレートデータが使用するＷｅｂサーバ１上で動作するサーブレットプログラムの名称１１０２とが組になって格納されている。
【００２５】
図１２は、本実施形態のＷｅｂサーバ１上の外部記憶装置１２に格納されており、Ｗｅｂサーバ中継プログラム１２Ｂが使用するＺＩＰファイル内容テーブル１２００の例である。ＺＩＰファイル内容テーブル１２００には、外部記憶装置１２に格納されているＨＴＭＬコンテンツ１２Ｃやテンプレートデータ１２Ｄのファイル名称１２０１と、そのファイルが含まれているＺＩＰファイルの名称１２０２とが組になって格納されている。
【００２６】
図１３は、本実施形態のシステムでクライアントコンピュータ２上のプロキシプログラム２２Ｂと、Ｗｅｂサーバコンピュータ１上で稼動するＷｅｂサーバ中継プログラム１２Ｂと、Ｗｅｂサーバプログラム１２Ａとの間でやり取りされるデータ、およびそれぞれのプログラムでの処理の例を示したものである。
【００２７】
まずＷｅｂブラウザ２２Ａは、「login.html」の入手をプロキシプログラム２２Ｂに対して要求する(ステップ１３０１)。プロキシプログラム２２Ｂは要求された「login.html」を含んだＺＩＰファイルがテンプレートキャッシュ２２Ｃにあるかどうかをチェックする(ステップ１３０２)。ここではキャッシュにみつからないので、Ｗｅｂサーバ中継プログラム１２Ｂに対して「login.html」の入手を要求する(ステップ１３０３)。なお、キャッシュに見つかった場合でも、その「login.html」を入手した時刻を指定して、Ｗｅｂサーバ中継プログラム１２Ｂに入手要求するものとする。ここではキャッシュに見つからなかったので、時刻「0」を指定して要求している(ステップ１３０３)。
【００２８】
Ｗｅｂサーバ中継プログラム１２Ｂは、ＺＩＰファイル内容テーブル１２００を検索し(ステップ１３０４)、「login.html」が含まれている「login.zip」をプロキシプログラム２２Ｂに返信する(ステップ１３０５)。このとき、要求時に指定された時刻以後に作成あるいは変更されたファイルだけを返信する。つまり、時刻「0」が指定された場合は、「login.zip」に含まれるファイル全てを返信することになる。プロキシプログラム２２Ｂは、受信した「login.zip」ファイルをテンプレートキャッシュ２２Ｃに格納しておき(ステップ１３０６)、ＺＩＰファイルの中から「login.html」を取り出して、そのファイルがテンプレートかどうかをチェックする(ステップ１３０７)。チェックの結果、ここでは「login.html」は図２のようにテンプレートでないので、「login.html」の内容をＷｅｂブラウザ２２Ａに返却する(ステップ１３０８)。
【００２９】
次に、Ｗｅｂブラウザ２２Ａ上でUserIDとパスワードを入力してログインボタンを押下すると、プロキシプログラム２２Ｂに対して「loginServlet」を実行するための命令が送信される(ステップ１３０９)。これを受信したプロキシプログラム２２Ｂは、テンプレートキャッシュ２２Ｃに含まれているかどうかをチェックし(ステップ１３１０)、ここでは含まれていないのでＷｅｂサーバ中継プログラム１２Ｂに、「loginServlet」を実行するように要求する(ステップ１３１１)。Ｗｅｂサーバ中継プログラム１２Ｂは、この要求をＷｅｂサーバ１２Ａに中継する(ステップ１３１２)。Ｗｅｂサーバプログラム１２Ａでは、図１０に示した「loginServlet」を実行し、ＨＴＴＰヘッダに「X-template」というヘッダを追加してＷｅｂサーバ中継プログラム１２Ｂに戻す(ステップ１３１３)。Ｗｅｂサーバ中継プログラム１２Ｂは、「X-template」ヘッダがあるので、プロキシプログラム２２Ｂに対して、「verified.tpt」というテンプレートを実行するように依頼する(ステップ１３１４)。
【００３０】
テンプレート実行依頼を受信したプロキシプログラム２２Ｂは指示されたファイル名称「verified.tpt」がテンプレートキャッシュ２２Ｃにあるかチェック（ここでは「verified.tpt」は「login.zip」に含まれているのでキャッシュ内にある）し(ステップ１３１５)、あれば当該「verified.tpt」がテンプレートデータかどうかをチェックし(ステップ１３１６)、ここではテンプレートデータであるので、Ｗｅｂサーバ中継プログラム１２Ｂに対して、テンプレートに対応するプログラムの実行を依頼する(ステップ１３１７)。Ｗｅｂサーバ中継プログラム１２Ｂは、テンプレート・サーブレット対応テーブル１１００（図１１）を検索し(ステップ１３１８)、「verified.tpt」というテンプレートに対応する「verifiedServlet」の実行をＷｅｂサーバプログラム１２Ａに依頼し(ステップ１３１９)、図９に示したデータを結果として受信し(ステップ１３２０)、プロキシプログラム２２Ｂに返却する(ステップ１３２１)。プロキシプログラム２２Ｂは、受信したデータをテンプレートデータ「verified.tpt」の途中にそれぞれ挿入してＨＴＭＬコンテンツを作成し(ステップ１３２２)、Ｗｅｂブラウザに返却する(ステップ１３２３)。
【００３１】
図１４は、クライアントコンピュータ２上で稼動するプロキシプログラム２２Ｂの動作を示すフローチャートである。
【００３２】
プロキシプログラム２２Ｂが開始すると、Ｗｅｂブラウザ２２Ａから接続を受け付けＵＲＬを入手する(ステップ１４０１)。入手したＵＲＬに対応するファイルがテンプレートキャッシュ２２Ｃに存在するかどうかをチェックし、あればそのファイルの入手時刻を取得する(ステップ１４０２)。このとき、キャッシュ２２Ｃに存在しない場合は入手時刻は「0」とする。Ｗｅｂサーバ中継プログラム１２ＢにＵＲＬと入手時刻を送信し(ステップ１４０３)、データを受信する(ステップ１４０４)。受信したデータが「変更なし」を示すものかどうかを判断し(ステップ１４０５)、「変更なし」の場合は、キャッシュ中に存在するコンテンツを取り出してブラウザ２２Ａに返却し(ステップ１４０６)、ステップ１４０１から繰り返す。受信したデータが「変更なし」でなかった場合は、ＺＩＰファイルかどうかを判断し(ステップ１４０７)、ＺＩＰファイルであれば、テンプレートキャッシュ２２Ｃに保存し(ステップ１４０８)、入手したＵＲＬに対応するコンテンツを取り出し(ステップ１４０９)、Ｗｅｂブラウザ２２Ａに当該コンテンツを返却し(ステップ１４１０)、ステップ１４０１から繰り返す。
【００３３】
受信したデータがＺＩＰファイルでなければ、テンプレート実行の要求かどうかを判断し(ステップ１４１１)、そうでなければ、受信したデータをコンテンツとしてＷｅｂブラウザ２２Ａに返却し(ステップ１４１０)、ステップ１４０１から繰り返す。テンプレート実行要求であった場合は、テンプレートキャッシュ２２Ｃに存在するかどうかをチェックする(ステップ１４１２)。テンプレートキャッシュ２２Ｃ内に存在しない場合(ステップ１４１３)は、Ｗｅｂブラウザ２２Ａにエラーを返却し(ステップ１４１４)、ステップ１４０１から繰り返す。テンプレートキャッシュ２２Ｃに存在した場合は、テンプレートデータかどうかを判断し(ステップ１４１５)、テンプレートデータでない場合は、そのデータをコンテンツとしてＷｅｂブラウザ２２Ａに返却し(ステップ１４１６)、ステップ１４０１から繰り返す。テンプレートデータであった場合は、Ｗｅｂサーバ中継プログラム１２Ｂに対してテンプレートデータに対応するプログラムの実行を要求し、結果のデータを入手する(ステップ１４１７)。入手したデータとテンプレートデータからＨＴＭＬコンテンツを作成し(ステップ１４１８)、作成したコンテンツをＷｅｂブラウザ２２Ａに返却し(ステップ１４１９)、ステップ１４０１から繰り返す。
【００３４】
図１５は、サーバコンピュータ１上で稼動するＷｅｂサーバ中継プログラム１２Ｂの動作を示すフローチャートである。
【００３５】
Ｗｅｂサーバ中継プログラム１２Ｂが開始すると、プロキシプログラム２２Ｂから接続を受け付け、命令を受信する(ステップ１５０１)。受信した命令がＵＲＬを指定したＨＴＭＬコンテンツ入手命令かどうかを判断し(ステップ１５０２)、コンテンツ入手命令の場合は、指定されたＵＲＬに対応するファイルがＺＩＰファイル中にあるかどうかをＺＩＰファイル内容テーブル１２００を使って検索し(ステップ１５０３)、ＺＩＰファイル中にあった場合は、そのＺＩＰファイル中に、入手した時刻より新しく変更・作成されたコンテンツがあるかどうかチェックする(ステップ１５０４)。もし新しく変更・作成されたコンテンツがある場合は、そのコンテンツだけをＺＩＰファイルにして返却する(ステップ１５０５)。このとき、入手時刻として「0」が指定された場合は、全てのコンテンツが新しいということになるので、ＺＩＰファイルの全体をそのまま返却すればよい。その後、ステップ１５０１から繰り返す。新しく変更・作成されたコンテンツがない場合は、「変更なし」を返却し(ステップ１５０６)、ステップ１５０１から繰り返す。
【００３６】
ＺＩＰファイルにない場合は、Ｗｅｂサーバ１に命令を転送し、結果のコンテンツを入手する(ステップ１５０７)。このとき、ＨＴＴＰヘッダをチェックし、「X-template」ヘッダの有無によってテンプレート呼出かどうかを判断する(ステップ１５０８)。テンプレート呼出でなければ、入手したコンテンツをプロキシプログラム２２Ｂに返却し(ステップ１５０９)、ステップ１５０１から繰り返す。ステップ１５０８で、テンプレート呼出であった場合は、プロキシプログラム２２Ｂに対してテンプレート実行命令を転送し(ステップ１５１０)、ステップ１５０１から繰り返す。ステップ１５０２で入手した命令がＵＲＬ対応コンテンツ入手命令でない場合は、テンプレート対応プログラム実行命令であるので、テンプレート・サーブレット対応テーブル１１００からテンプレートに対応するサーブレット名を入手し(ステップ１５１１)、Ｗｅｂサーバ１に対してそのサーブレットの実行を依頼し、結果を入手する(ステップ１５１２)。その結果をプロキシプログラム２２Ｂに返却し(ステップ１５１３)、ステップ１５０１から繰り返す。
【００３７】
以上の実施形態の説明において、Ｗｅｂサーバ中継プログラム１２Ｂからプロキシプログラム２２Ｂに対してコンテンツを返信する場合にＺＩＰファイルを作成して返却するように記したが、これは転送量を削減するために圧縮形式を用いることを例としてあげたものであり、他の圧縮形式または圧縮なしで１つのファイルとして返却するように構成してもかまわない。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施の形態のＷＷＷシステムの概略構成を示すブロック図
【図２】Ｗｅｂサーバコンピュータ上の外部記憶装置に格納されているＨＴＭＬコンテンツの例を示す図
【図３】図２に示したＨＴＭＬコンテンツを受け取ったＷｅｂブラウザプログラムが表示した画面例を示す図
【図４】図３に示したＷｅｂブラウザプログラムが表示した画面で、UserIDとパスワードを入力してログインボタンを押下してＷｅｂサーバコンピュータに対して、UserIDとパスワードを送付した際に、Ｗｅｂサーバコンピュータ上で動作する従来のプログラムの例を示す図
【図５】図４のプログラムでユーザが認証された場合に実行されるプログラムを示す図
【図６】図５のプログラムの実行結果例を示す図
【図７】本実施形態で用いるテンプレートデータの例を示す図
【図８】図７に示したテンプレートデータを処理する際に、プロキシプログラムから呼び出されるＷｅｂサーバ中継プログラム上で実行されるプログラムの例を示す図
【図９】図８に示したプログラムの実行結果としてＷｅｂサーバ中継プログラムからプロキシプログラムに返信されるデータの例を示す図
【図１０】図４に示したサーバプログラムを本実施形態のテンプレートを使用するように変更した例を示す図
【図１１】本実施形態のＷｅｂサーバ上の外部記憶装置に格納されているテンプレート・サーブレット対応テーブルの例を示す図
【図１２】本実施形態のＷｅｂサーバ上の外部記憶装置に格納されているＺＩＰファイル内容テーブルの例を示す図
【図１３】本実施形態におけるプロキシプログラム、Ｗｅｂサーバ中継プログラム、Ｗｅｂサーバプログラムの間でやり取りされるデータと、それぞれのプログラムでの処理の例を示す図
【図１４】プロキシプログラムの動作を示すフローチャート
【図１５】Ｗｅｂサーバ中継プログラムの動作を示すフローチャート
【符号の説明】
【００３９】
１…Ｗｅｂサーバコンピュータ、２…クライアントコンピュータ、３…ネットワーク、１１、２１…端末装置、１２、２２…外部記憶装置、１２Ａ…Ｗｅｂサーバプログラム、１２Ｂ…Ｗｅｂサーバ中継プログラム、１２Ｃ…ＨＴＭＬコンテンツ、１２Ｄ…テンプレートデータ、２２Ａ…Ｗｅｂブラウザプログラム、２２Ｂ…プロキシプログラム、２２Ｃ…テンプレートキャッシュ。
【図１】
2005107662.tif 000003
【図２】
2005107662.tif 000004
【図３】
2005107662.tif 000005
【図４】
2005107662.tif 000006
【図５】
2005107662.tif 000007
【図６】
2005107662.tif 000008
【図７】
2005107662.tif 000009
【図８】
2005107662.tif 000010
【図９】
2005107662.tif 000011
【図１０】
2005107662.tif 000012
【図１１】
2005107662.tif 000013
【図１２】
2005107662.tif 000014
【図１３】
2005107662.tif 000015
【図１４】
2005107662.tif 000016
【図１５】
2005107662.tif 000017