JP2010067016A - アプリケーションの実行管理方法、アプリケーションを実行するサーバ計算機及び中継装置 - Google Patents

アプリケーションの実行管理方法、アプリケーションを実行するサーバ計算機及び中継装置 Download PDF

Info

Publication number
JP2010067016A
JP2010067016A JP2008232805A JP2008232805A JP2010067016A JP 2010067016 A JP2010067016 A JP 2010067016A JP 2008232805 A JP2008232805 A JP 2008232805A JP 2008232805 A JP2008232805 A JP 2008232805A JP 2010067016 A JP2010067016 A JP 2010067016A
Authority
JP
Japan
Prior art keywords
response
computer
cookie
identifier
web page
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.)
Granted
Application number
JP2008232805A
Other languages
English (en)
Other versions
JP5135135B2 (ja
Inventor
Tomohiro Nakamura
友洋 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008232805A priority Critical patent/JP5135135B2/ja
Priority to US12/367,021 priority patent/US8150985B2/en
Publication of JP2010067016A publication Critical patent/JP2010067016A/ja
Application granted granted Critical
Publication of JP5135135B2 publication Critical patent/JP5135135B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】 ウェブシステムなどのサーバクライアントシステムにおいて、クライアントがサーバに問い合わせをすることなく、レスポンスのキャッシュヒット判定を実現することが課題である。
【解決手段】 ウェブシステムなどのサーバクライアントシステムにおいて、クライアントが受信したレスポンスが、サーバで生成されたレスポンスか、システム内のキャッシュから返信されたレスポンスかを区別するキャッシュヒット判定方法であり、サーバがレスポンスを生成する際に、レスポンスに対してキャッシュヒット判定用のプログラム及びデータを追加し、クライアントがレスポンスに含まれるプログラムを実行することでキャッシュヒット判定を実現する。
【選択図】 図3

Description

本発明は、計算機システムにおいて、アプリケーションの実行状況を管理するシステムに関する。特に、アプリケーションに対してリクエストを行う計算機と、アプリケーションを実行する計算機と、の間にキャッシュを経由するシステムにおけるレスポンスの生成元を管理するシステムに関する。
ウェブアプリケーションは、スクリプトコードを利用したリッチクライアント技術などの技術進歩と、クライアント装置にウェブブラウザがインストールされていれば簡単に実行できる簡便さから、ビジネス用途を含め、さまざまな分野で利用されるようになってきた。用途によっては、高い可用性や、早い応答速度、使いやすさに対する強いニーズがある。特に、応答速度に関しては、ウェブアプリケーションの体感性能に大きく影響するため、様々な工夫によって応答速度の向上が図られてきた。
様々な工夫の中で、効果が高く、広く利用されている方法として、キャッシュを利用した高速化方法が挙げられる。ウェブアプリケーションの実行基盤であるウェブシステムにおけるキャッシュとは、ウェブサーバや、プロキシサーバなどのネットワーク上、ウェブブラウザなどに実装されるウェブページの一時保存機構である。キャッシュは、ウェブページへのリクエストに対して、ウェブサーバがレスポンスを生成して返信する代わりに、キャッシュからレスポンスを返信する。キャッシュは、通常クライアント装置とサーバ装置の間に設けられるので、キャッシュからレスポンスが返信されると、通信にかかる時間と、レスポンスの生成にかかる時間が短縮され、応答速度が向上できる。
キャッシュの利用可否の判断は、ウェブアプリケーションや、ウェブページ毎に異なるが、利用可否の判断を行うために、ウェブページのアクセス毎にキャッシュにヒットしたかを検出することが必要である。 キャッシュヒットの検出方法としては、サーバ装置にウェブページのタイムスタンプを問い合わせて、読み込んだウェブページのタイムスタンプと比較して更新されている場合にキャッシュヒットと判定する方法(特許文献1)や、キャッシュされない画像データをウェブページに挿入し、サーバ装置において、ウェブページと画像データへのアクセス履歴から、画像データのみにアクセスされた場合にキャッシュヒットと判定する方法(特許文献2)などが知られている。
特開2003−85082 公報 特表2004−507816 公報
最近では、JavaScriptや非同期通信技術などを使い、ウェブページの遷移を伴わずにウェブページを更新したり、操作に応じて表示内容を変化させたりするようなリッチなウェブページが増えてきている。このようなリッチなウェブページでは、ウェブページへのアクセス毎に唯一な(ユニークな)識別子(ID)を与えることで、ダイナミックに変化するアプリケーションの正しい動作を実現したり、一貫性のある正しい動作や操作の履歴を記録したりしている。
しかし、ウェブシステムにおけるキャッシュにウェブページが保持され(キャッシュヒットした)場合に、これらの動作が正しく行われない場合がある。そのため、キャッシュを無効化したり、アクセス毎にサーバ装置からレスポンスを得られるようにリクエストを出したりするなど、キャッシュによる応答速度の向上を図ることができない。
そこで、キャッシュの利用可否を判断し、できるだけキャッシュを利用して応答速度の向上を図ることが求められている。キャッシュの利用可否の判断は、ウェブアプリケーションや、ウェブページ毎に異なるが、利用可否の判断を行うために、ウェブページのアクセス毎にキャッシュにヒットしたかを検出することが必要である。例えば、ウェブページのアクセス毎に、そのウェブページ上で行われた操作の記録を行う場合、同一のウェブページに対する別のアクセスを認識して、アクセス毎に別のユニークなIDを与えて記録していくことが望まれる。 しかし、この方法では、キャッシュヒットした場合、ユニークなIDが得られない。
上記課題の少なくとも一を解決するために、本発明の一態様では、第1の計算機と、第2の計算機とを含むコンピュータシステムにおいて提供されるアプリケーションの実行状況の管理方法であって、第1の計算機は、第2の計算機からのアプリケーションに関するリクエストを受け、リクエストに対応するレスポンスに含まれるウェブページに、ユニークな識別子と、識別子をクッキーの名前とするクッキーが存在するかを判断する第1の検査および第1の検査後にクッキーの削除を第2の計算機で実行するプログラムコードとを、レスポンスのウェブページに挿入し、レスポンスのヘッダに、識別子をクッキーの名前とするクッキーを第2の計算機に設定させる命令を挿入し、ウェブページと、ヘッダを含むレスポンスを第2の計算機に返信することを特徴とする。
本発明の一態様によれば、第二の計算機で、第1の実行結果におけるレスポンスなのか、キャッシュからのレスポンスなのかを判別することができる。
本実施例によるウェブアプリケーションのキャッシュヒット判定方法を図1から図7を使って説明する。
図1は、本実施例が対象とするウェブアプリケーションを実行するシステムのハードウェア構成と、ソフトウェア構成の例を示すシステム構成図である。
ハードウェアは、クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置151と、これらの装置を接続するネットワーク161から構成される。クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置151は、プロセッサ(103、123、143)、メモリ(113、135、155)、入出力装置(102、122、142)、ローカルディスク(104、124、144)、ネットワークインタフェース(106、126、146)をもち、相互に接続されている。
入出力装置102には、たとえば、キーボードやマウス、モニタである。入力装置は、プログラムの実行や停止の指示を行い、出力装置は、プログラムの実行結果を表示するモニタである。。プロセッサ103は、メモリ113からプログラムを読み込んで処理を実行する。ローカルディスク104は、プログラムの実行結果をプロセッサ103から受信して保存したり、ネットワークインタフェース106を介して外部から受信したデータを保存したりする。ローカルディスク104には、判定結果保存領域105が設けられ、スクリプトエンジンプログラム109がプロセッサ103に読み込まれて実行された結果がこの領域に保存される。ネットワークインタフェース106は、クライアント装置101の外部の装置とネットワーク161を介してデータの送受信を行う。
クライアント装置101のメモリ113には、ウェブブラウザプログラム108、スクリプトエンジンプログラム109、キャッシュプログラム110が格納される。、、プロセッサ103は、これらのプログラムを実行する。メモリ113の一部の領域は、キャッシュデータ領域111、クッキーデータ領域112に割り当てられている。なお、クライアント装置101は、メモリ113とは別の領域に、キャッシュデータ領域111やクッキーデータ領域112を有していてもよい。
ウェブブラウザプログラム108は、ウェブページをリクエストしたり、リクエストしたウェブページのレスポンスを受信し、解釈して表示画面を生成するプログラムである。スクリプトエンジンプログラム109は、ウェブページのレスポンスに含まれるスクリプトコードを解釈してスクリプトコードに書かれている処理をプロセッサ103で実行するプログラムである。キャッシュプログラム110は、クライアント装置101がネットワーク161から受信したウェブページのレスポンスをキャッシュデータ領域111に保存し、ウェブブラウザプログラム108がリクエストしたウェブページのレスポンスがキャッシュデータ領域111に存在するかを判定し、存在する場合にキャッシュデータ領域111から読み出してウェブブラウザプログラムに受け渡すプログラムである。クッキーデータ領域112は、クッキーデータと呼ばれるデータを保存する領域で、クッキーデータはウェブブラウザプログラム108やスクリプトエンジンプログラム109から受け取って保存したり、逆にクッキーデータを読み出して受け渡す。
ウェブサーバ装置121のメモリ135には、ウェブサーバプログラム127、フィルタプログラム128、キャッシュプログラム131、識別子生成プログラム132が格納されている。フィルタプログラム128には、レスポンスボディ挿入部129とレスポンスヘッダ挿入部130が含まれる。また、メモリ135の一部の領域がキャッシュデータ領域133、スクリプトコード領域134に割り当てられている。プロセッサ123は、これらのプログラムを読み込み実行する。
ウェブサーバプログラム127は、リクエストに応じてウェブページのレスポンスを生成して返信するプログラムである。フィルタプログラム128はウェブページのリクエストやレスポンスに対して、内容の追加や修正を行うプログラムである。フィルタプログラム128のうち、レスポンスボディ挿入部129は、ボディとヘッダから構成されるレスポンスのボディ部分に対してプログラムコードやデータを挿入する。フィルタプログラム128のうち、レスポンスヘッダ挿入部130では、レスポンスのヘッダ部分に対してプログラムコードやデータを挿入する。
キャッシュプログラム131は、ウェブサーバプログラム127が生成したウェブページのレスポンスをキャッシュデータ領域133に保存したり、リクエストされたウェブページのレスポンスがキャッシュデータ領域133に存在するかを判定し、存在する場合にキャッシュデータ領域133から読み出して返信するプログラムである。
識別子生成プログラム132は、識別子生成の要求を受けてユニークな値を生成するプログラムである。ユニークな値の生成方法は、プロセッサ123の動作クロック毎にカウントアップするプログラムカウンタを読み出して利用する方法や、システム時刻を利用する方法、がある。ほかには、それらの方法とネットワークインタフェースのMACアドレスを組み合わせた方法などが挙げられるが、これに限定するわけではない。なお、MACアドレスとは、ネットワークインタフェースに固有の値である。識別子生成の要求は、例えば、ウェブサーバ装置121がリクエストを受信して、ウェブサーバプログラム127がプロセッサ123で実行されてレスポンスが生成される際に、ウェブサーバプログラム127から要求されたり、外部から識別子生成の要求を受けたりする。スクリプトコード領域134は、スクリプトコードと呼ばれるプログラムを保存する領域で、スクリプトコードはフィルタプログラム128でレスポンスに挿入される。
入出力装置126、プロセッサ123、ローカルディスク124、ネットワークインタフェース126は、クライアント装置101にある同名の装置と同じ機能を持つ。ローカルディスク124に設けられている判定結果保存領域125には、ネットワークインタフェース122を介して外部から送信されてきたデータが保存される。
プロキシサーバ装置141のメモリ155には、プロキシサーバプログラム147、フィルタプログラム148、キャッシュプログラム151、識別子生成プログラム152が格納されている。フィルタプログラム148には、レスポンスボディ挿入部149とレスポンスヘッダ挿入部150が含まれる。また、メモリ155の一部の領域がキャッシュデータ領域153、スクリプトコード領域154に割り当てられている。これらのプログラムは、プロセッサ143に読み込まれて実行される。
プロキシサーバプログラム147は、リクエストをクライアント装置101からウェブサーバ装置121に転送し、レスポンスをウェブサーバ装置121からクライアント装置101に転送するプログラムである。フィルタプログラム148、レスポンスボディ挿入部149、レスポンスヘッダ挿入部150は、サーバ装置121にある同名のプログラムと同じ処理を行うのを持つ。
キャッシュプログラム151は、プロキシ装置141がネットワーク161から受信したウェブページのレスポンスをキャッシュデータ領域153に保存したり、プロキシ装置141の外部からネットワークインタフェース142を介して受信したリクエストが要求するウェブページのレスポンスがキャッシュデータ領域153に存在するかを検査し、存在する場合にキャッシュデータ領域153から読み出して返信するプログラムである。
識別子生成プログラム152は、識別子生成の要求を受けてユニークな値を生成するプログラムである。スクリプトコード領域154は、スクリプトコードと呼ばれるプログラムを保存する領域で、スクリプトコードはフィルタプログラム148でレスポンスに挿入される。
入出力装置146、プロセッサ143、ローカルディスク144、ネットワークインタフェース146は、サーバ装置121にある同名の装置と同じ機能を持つ。ローカルディスク144に設けられている判定結果保存領域145もサーバ装置121にある判定結果保存領域125と同様である。
図2は、サーバ装置121とプロキシ装置141にあるスクリプトコード領域(134、154)に保存されているスクリプトコード(プログラム)の例である。これらのスクリプトコード201〜210は、ウェブサーバ装置135とプロキシ装置141のプロセッサ(123,143)で実行されるフィルタプログラム(128、148)によってレスポンスに挿入され、そのレスポンスがクライアント装置101に送信され、プロセッサ103で実行されるスクリプトエンジンプログラム109がこれらのスクリプトコードを解釈して処理を行う。
図2に示したスクリプトコード201〜210の内、実施例1において利用するスクリプトコードは、キャッシュヒット判定用スクリプトコード201および判定結果記録用スクリプトコード202の2つである。他のスクリプトコード202〜210は、他の変形例で利用するスクリプトコードであり、本実施例ではスクリプトコード領域(134、154)に保存されていなくてよい。
本実施例における、ウェブアプリケーションの処理フローを図3、図4により説明する。
図4は、本実施例ウェブシステムにおけるリクエストとレスポンスの構成を示す図である。図4に示すように、リクエスト401は、少なくともウェブページの存在する場所を指定するURI(Uniform Resource Identifiers)4010と、クライアント装置101で設定可能なデータ領域(クッキー)4020とを含む。 レスポンスは、図4に示すように、レスポンスA411〜レスポンスC431の形式がある。
各レスポンスは、レスポンスヘッダ(412、422、432)とレスポンスボディ(413、423、433)とを有する。レスポンスA411〜レスポンスC431の違いは、レスポンスヘッダとレスポンスボディに含まれる内容の違いである。レスポンスヘッダに含まれる内容は、レスポンスの状態を示すステータスコード4520、レスポンスボディに含まれるコンテンツの種類を示すコンテンツタイプ4530、クライアント装置101とウェブサーバ装置121間でデータの受け渡しを行うのに利用できるクッキー4540、クッキーをクライアント装置に設定するセットクッキー命令4550などである。一方、レスポンスボディに含まれる内容は、クライアント装置101のウェブブラウザモジュール308で解釈され表示画面などを作るHTMLドキュメント4560、スクリプトエンジンモジュール309で解釈され処理が実行されるスクリプトコード4570などである。また、識別子生成プログラムの実行により生成された、ウェブページを一意に特定する識別子4580も含まれる。スクリプトコード4570の例は、図2に示されるスクリプトコードでさる。HTMLドキュメントは、画像データなどの場合もある。
図3は、ウェブアプリケーションの処理フローの例を示す。クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置141がネットワーク161で接続されたシステムで、クライアント装置101からウェブページのリクエストを送信し、ウェブサーバ装置121がリクエストされたウェブページのレスポンスを生成して返信し、クライアント装置101でウェブページの表示や、スクリプトコードの実行が行われるまでの一連の処理を順に説明する。なお、図3以降の図においては、プログラムがプロセッサ上で実行されている状態をモジュールと呼び、例えば、ウェブブラウザプログラムがプロセッサ上で実行されている場合、ウェブブラウザモジュールと呼ぶ。 ウェブサーバモジュール321で生成されるレスポンスは、レスポンスA411、レスポンスB421、レスポンスC431のいずれの場合もある。 まず最初に、クライアント装置101のウェブブラウザモジュール308がウェブページのリクエスト301をネットワーク161を経由して、プロキシサーバ装置141に送信する(301)。 プロキシサーバ装置141では、プロキシサーバモジュール331がリクエストを受信し、キャッシュモジュール332がキャッシュデータ領域154にリクエストに対応するレスポンスが存在するかを検査する(302)。
キャッシュデータ領域154にレスポンスが存在しなければ、プロキシサーバモジュール331はリクエストをウェブサーバ装置121に転送する(303)。ウェブサーバ装置121では、ウェブサーバモジュール321がリクエストを解釈し、レスポンスを生成する。
フィルタモジュール322は、ウェブサーバモジュール321から受け取ったレスポンス(304)に対して、レスポンスヘッダとレスポンスボディに、識別子とスクリプトコードを挿入する。識別子は、ウェブサーバモジュール321がレスポンスを生成する際に、識別子生成モジュール325で生成されるユニークな値で、レスポンスヘッダ挿入モジュール323は、この識別子をクッキーの名前とするセットクッキー命令をレスポンスヘッダに挿入する。クッキーとセットクッキー命令については、図5を用いて後で説明する。
フィルタモジュール322に含まれるレスポンスボディ挿入モジュール324は、識別子生成モジュール325で生成された識別子と、スクリプトコード領域134から読み込んだスクリプトコードをレスポンスのボディに挿入する。その結果、レスポンスは、図4に示すレスポンスB432である。レスポンスB432のレスポンスヘッダには、クッキー及びセットクッキー命令を含む。レスポンスB432は、プロキシサーバ装置141に送られる。
プロキシサーバ装置141は、プロキシサーバモジュール331でウェブサーバ装置121からのレスポンスを受信し、これをクライアント装置101に転送する。この際に、キャッシュモジュール332が、レスポンスをキャッシュデータ領域154に保存する。キャッシュモジュール332は、セキュリティ上の問題から、キャッシュデータ領域154にレスポンスを保存する場合、レスポンスB421のレスポンスヘッダに含まれるセットクッキー命令を削除してから保存する。よって、キャッシュデータ領域154に保存されるレスポンスは、 図4に示すレスポンスC431である。レスポンスC432のレスポンスヘッダには、クッキーを含むが、レスポンスB421に含まれるようなセットクッキー命令は含まれない。
次に、キャッシュデータ領域154にレスポンスCが存在した場合について説明する。この場合、キャッシュモジュール332はキャッシュデータ領域154からレスポンスをC読み出し、プロキシサーバ装置141からクライアント装置101に転送する。プロキシサーバモジュール331は、リクエストをウェブサーバ装置121には送信しない。通常、ウェブサーバ装置121でレスポンスを生成する場合に比べて、プロキシサーバ装置141のキャッシュデータ領域154からレスポンスを読み出す方が、クライアント装置101に早くレスポンスを返信することができる。
なお、図3には示していないが、ウェブサーバ装置121のキャッシュプログラム131、キャッシュデータ領域133も、ウェブページのレスポンスを生成する処理のフローにおいて、プロキシサーバ装置141のキャッシュモジュール332とキャッシュデータ領域154が実現する機能と同じ機能をウェブサーバ装置で実現する。つまり、ウェブサーバ装置121がリクエストを受信し、レスポンスをキャッシュモジュールから読み出して、プロキシサーバ装置141に返信する。この場合、ウェブサーバモジュール321でウェブページのレスポンスを生成しなくてもよい。
さらに、図3には示していないが、プロキシサーバ装置141のフィルタプログラム148、識別子生成プログラム152、スクリプトコード領域154が、ウェブページのレスポンスをクライアント装置101に転送する処理のフローにおいて、ウェブサーバ装置121のフィルタモジュール322、識別子生成モジュール325、スクリプトコード領域134が実現する機能と同じ機能をプロキシサーバ装置で実現しても良い。つまり、ウェブサーバ装置121からレスポンスを受信し、このレスポンスのヘッダとボディに、識別子やスクリプトコードを挿入したり、セットクッキー命令を挿入したりする。
図5は、ウェブシステムにおけるクッキーおよびセットクッキー命令の動作を示す図である。クッキー501は、クッキーの内容を示す。クッキーの内容501は、クッキーの名前と、クッキーの値、有効期限の日付などから構成される。
クッキーの内容501で構成されるクッキーは、図5に示すように、クライアント装置101とウェブサーバ装置121の間でデータをやりとりする際に利用される。例えば、ウェブサーバ装置121が、クライアント装置101に対して、A=1というデータを記憶させたい場合、ウェブサーバ装置121はレスポンスヘッダに、クッキーの名前をA、クッキーの値を1に設定するセットクッキー命令を挿入し(550)、プロキシサーバ装置を介してクライアント装置101に送信する(560)。クライアント装置101は、レスポンスを受信すると、まずレスポンスヘッダに挿入されているセットクッキー命令を実行し、クライアント装置101のクッキーデータ領域112に、セットクッキー命令に記載の内容に従ってクッキーの内容を保存する(501)。図5に示すようなクッキーの内容501である場合は、A=1がクッキーデータ領域112に保存される。
クライアント装置101は、クライアント装置101のクッキーデータ領域112に保存されているクッキーの内容を、同じウェブサーバ装置121に別のリクエストを送信する際に、リクエストにクッキーの内容をコピーする(502)。先ほどの例では、クライアント装置1010は、クッキーの名前がA、クッキーの値が1という内容をリクエストに設定し、ウェブサーバ装置に121送信する(503)。ウェブサーバ装置121は、クッキー(A=1)を含むこのリクエストを受け取ることで、クライアント装置101のクッキーデータ領域112にA=1が保存されていることを知ることができる。
ウェブサーバ装置121が、スクリプトコードをレスポンスボディに挿入されたレスポンスをクライアント装置に送信する(551)場合は、クライアント装置101が、受信したレスポンスに含まれるスクリプトコードによってクッキーデータ領域112に保存されているクッキーの内容を設定、変更、削除することができる(505)。
一方、プロキシサーバ装置141は、キャッシュデータ領域153にレスポンスが保存し(511)、そのレスポンスをクライアント装置101に返信する(512)。この場合、プロキシサーバー141は、別のリクエストで、すでに生成され、キャッシュデータ領域15に保持されているレスポンス513を取得し(503)クライアント装置101に返信する(514)ことになる。先に述べたように、セキュリティ上の問題から、レスポンスヘッダに含まれるセットクッキー命令はキャッシュデータ領域153に保存される際に削除される(511)。よって、ウェブサーバ装置121で生成されたレスポンスと、プロキシサーバ装置141で生成されたレスポンスでは、形式が異なる場合がある。
以上から、本実施例におけるキャッシュヒット判定方法について、クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置141の処理フローを示して説明する。
図6は、プロキシサーバ装置141の処理フローである。まず、プロキシサーバモジュールは、クライアント装置からリクエストを受信する(ステップ602)。次にキャッシュモジュールがキャッシュデータ領域153にリクエストに対するレスポンスが存在するか検査を行う(ステップ603)。検査の結果、レスポンスが存在しない場合、プロキシサーバモジュールはリクエストをウェブサーバ装置に送信する(ステップ604)。そして、サーバ装置からレスポンスを受信する(ステップ605)。続いて、図5の511及び512で示すように、キャッシュモジュールがレスポンスヘッダからセットクッキー命令を除いたレスポンスをキャッシュデータ領域に保存する(ステップ606)。一方、検査の結果、レスポンスが存在する場合、図5の513が示すように、キャッシュモジュールがキャッシュデータ領域からレスポンスを読み出す(ステップ607)。最後に、図5の514のように、プロキシサーバモジュールがレスポンスをクライアント装置に送信する(ステップ608)。
図7は、クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置142を含む、システム全体の処理フローである。ここでは、装置毎に処理フローを説明する。
まず、ウェブサーバ装置121では、ウェブサーバモジュールがプロキシサーバ装置からリクエストを受信し、リクエストに対するレスポンスを生成する(ステップ722)。また、識別子生成モジュールが、レスポンスの生成に対して識別子を生成する(ステップ723)。ステップ722とステップ723の実行順序は逆でもよく、また同時に実行してもよい。
続いて、フィルタモジュールのレスポンスヘッダ挿入モジュールが、レスポンスヘッダにステップ723で生成した識別子を含む値をクッキーの名前として設定するセットクッキー命令を挿入する(ステップ724)。さらに、ステップ723で生成した識別子を、レスポンスボディ挿入モジュールがレスポンスボディに挿入する(ステップ725)。ステップ724とステップ725の実行順序は逆でもよく、また同時に実行してもよい。ステップ722からステップ725までの処理をまとめて、以降では処理730と呼ぶ。
次に、フィルタモジュールは、スクリプトコード領域134から、キャッシュヒット判定用スクリプトコード207と、判定結果記録用スクリプトコード202を読み出す(ステップ726)。両スクリプトコードは、レスポンスボディ挿入モジュールがレスポンスボディに挿入する(ステップ727)。この際に、キャッシュヒット判定用スクリプトコード207が判定結果記録用スクリプトコード202より先に実行されるように、レスポンスボディの中で判定結果記録用スクリプトコード202より早く解釈される部分にキャッシュヒット判定用スクリプトコード207の挿入を行う。最後にフィルタモジュールはレスポンスをプロキシサーバ装置に送信する(ステップ728)。
次にクライアント装置101の処理フローを説明する。クライアント装置101では、最初にウェブブラウザモジュールがリクエストをプロキシサーバ装置に送信する(ステップ702)。そして、プロキシサーバ装置からレスポンスを受信する(ステップ703)。続いて、ウェブブラウザモジュールは、受信したレスポンスヘッダにセットクッキー命令があるかを検査する(ステップ704)。セットクッキー命令がある場合は、その命令を実行してクッキーデータ領域にクッキーデータを保存する(ステップ705)。セットクッキー命令がない場合は、何もしない。ステップ702からステップ705までの処理をまとめて、以降では処理710と呼ぶ。
ウェブブラウザモジュールは、レスポンスボディにスクリプトコードが含まれるか検査を行う(ステップ706)。スクリプトコードが含まれる場合、そのスクリプトコードをスクリプトエンジンモジュールで実行する。本実施例では、ウェブサーバ装置のステップ726にて、キャッシュヒット判定用スクリプトコードと、判定結果記録用スクリプトコードがレスポンスボディに挿入されており、キャッシュヒット判定用スクリプトコードが先に実行される。
キャッシュヒット判定用スクリプトコードの処理フローは、図7の処理711である。処理711では、キャッシュヒット判定モジュールは、最初にレスポンスボディから識別子を読み込む(ステップ708)。次に、キャッシュヒット判定モジュールは、クライアント装置のクッキーデータ領域に識別子をクッキーの名前に含むクッキーデータが存在するかを検査する(ステップ709)。該当するクッキーデータが存在した場合は、ステップ705が実行されていた、つまりステップ703で受信したレスポンスが、ウェブサーバ装置で生成されたレスポンスであることが分かるので、判定結果はミスヒットとする。一方、該当するクッキーデータが存在しない場合は、ステップ704でセットクッキー命令が無いと判定され、検査対象のクッキーデータがクッキーデータ領域に保存されていないことが分かる。つまり、このレスポンスは、サーバ装置で生成されたレスポンスではなく、プロキシサーバ装置のキャッシュデータ領域などから読み出されたことが分かる。つまり、キャッシュヒットした、判定結果はヒットとなる。判定結果が出ると、識別子をクッキーの名前に含むクッキーデータは不要となるので、削除を行う(ステップ710)。次に、判定結果記録用モジュールが実行される。このモジュールはキャッシュヒット判定用モジュールの判定結果を、ローカルディスクに保存する(ステップ712)なお、保存の際には、判定結果だけでなく、識別子と組にして保存する。以降では、判定結果記録用モジュールの処理全体を処理713と呼ぶ。
以上の処理フローによって、クライアント装置は、レスポンスがウェブサーバ装置で生成されたか、キャッシュデータ領域から読み出されたか判定することができ、さらにその結果をローカルディスクに保存しておくことができる。
なお、以上に述べたハードウェア、ソフトウェア構成要素は一部が存在しなくてもよく、接続関係も図1に示した関係に限らない。例えば、クライアント装置101やウェブサーバ装置121、プロキシサーバ装置141は1台に限らず、各装置が備えるプロセッサやローカルディスク、入出力装置、ネットワークインタフェースも1つとは限らない。逆に、例えばプロキシサーバ装置141とウェブサーバ装置121が同一のハードウェアで実現されている場合など、各装置のハードウェアが、実際には同一のハードウェアで構成されている場合も含む。
また、上記では、プロキシサーバ装置141は、キャッシュデータ領域153にレスポンスを保存し、クライアント装置101がそのレスポンスを受信した場合に、キャッシュヒットを検出できると説明したが、ウェブサーバ装置121のキャッシュデータ領域133や、クライアント装置101のキャッシュデータ領域111に保存されたレスポンスの場合にも、同様にキャッシュヒットを検出できる。本実施例では、キャッシュヒットを検出する方法として説明したが、説明した方法を実現する装置としてもよい。
実施例1の変形例1を、図8を用いて説明する。ここでは、実施例1との差分についてのみ示し、実施例1で説明した部分については省略する。
図8は、クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置142を含む、システム全体の処理フローである。ここでは、装置毎に処理フローを説明する。プロキシサーバ装置の処理は実施例1と同じである。
本実施例では、実施例1と異なりスクリプトコード領域(134、154)に、キャッシュヒット判定用スクリプトコード201と、判定結果送信用スクリプトコード203が保存されている。また、ウェブサーバ装置121のメモリ135には、判定結果収集プログラムが格納されており、プロセッサ123で実行される。
まず、ウェブサーバ装置121の処理フローを説明する。処理730では、ウェブサーバ装置は、プロキシサーバ装置からのリクエストに対して、レスポンスと識別子を生成しレスポンスに挿入する。次に、フィルタモジュールが、スクリプトコード領域からキャッシュヒット判定用スクリプトコード201と、判定結果送信用スクリプトコード203を読み出す(ステップ826)。さらに、フィルタモジュールのレスポンスボディ挿入モジュールが、ステップ826で読み出したスクリプトコードを、フィルタモジュールは、レスポンスボディに挿入する(ステップ827)。最後にフィルタモジュールはレスポンスをプロキシサーバ装置に送信する(ステップ828)。さらに、ウェブサーバ装置121は、判定結果収集モジュール830が、クライアント装置101からキャッシュヒット判定結果を受信し(ステップ831)、受信した判定結果と識別子の組をローカルディスク124の判定結果保存領域125に保存する(ステップ832)。なお、保存先は入出力装置126に接続された外部ディスクでもよい。
次にクライアント装置101の処理フローを説明する。クライアント装置101では、最初に処理710でリクエストの送信とレスポンスの受信を行い、レスポンスB421のように、レスポンスヘッダにセットクッキー命令が含まれる場合にクッキーデータ領域にクッキーデータを設定する。続いて、レスポンスボディにスクリプトコードが含まれているかを検査し、スクリプトコードがある場合に処理711でキャッシュヒット判定用モジュールが実行され、キャッシュヒットの判定結果がメモリ135上に設定される。実施例2では、処理711に続いて、レスポンスボディに挿入されている判定結果送信用スクリプトコード203がプロセッサ123で実行されて処理813に示す処理が行われる。この処理は、処理711で設定されたキャッシュヒット判定結果を、レスポンスボディに含まれる識別子と組にしてウェブサーバ装置121に送信する(ステップ812)。
以上の処理フローによって、ウェブサーバ装置は、クライアント装置が受信したレスポンスがウェブサーバ装置で生成されたか、キャッシュデータ領域から読み出されたかの判定結果を知ることができ、さらにその結果をローカルディスクに保存しておくことができる。
なお、判定結果収集モジュール830は、レスポンスの生成を行っているウェブサーバ装置121で実行されていなくてもよく、プロキシサーバ装置141や、別のウェブサーバ装置上で実行されていてもよい。その場合、ステップ812の送信先も、判定結果収集モジュール830が実行されている装置になる。
本変形例も、実施例1と同様に方法として説明したが、説明した方法を実現する装置としてもよい。また、ハードウェア構成やソフトウェア構成も、実施例1と同様にここで説明した例に限らない。
変形例2を、図9を用いて説明する。ここでは、実施例1との差分についてのみ示し、実施例1で説明した部分については省略する。
図9は、クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置142を含む、システム全体の処理フローである。ここでは、装置毎に処理フローを説明する。
プロキシサーバ装置の処理は実施例1と同じである。本変形例では、実施例1と異なりスクリプトコード領域(134、154)に、キャッシュヒット判定用スクリプトコード201と、識別子再生成用スクリプトコード204が保存されている。
まず、ウェブサーバ装置121の処理フローを説明する。処理730では、プロキシサーバ装置からのリクエストに対してレスポンスと識別子を生成しレスポンスに挿入する。次に、フィルタモジュールがスクリプトコード領域からキャッシュヒット判定用スクリプトコード201と、識別子再生成用スクリプトコード204を読み出す(ステップ926)。さらに、フィルタモジュールのレスポンスボディ挿入モジュールが、ステップ926で読み出したスクリプトコードをレスポンスボディに挿入する(ステップ927)。最後にフィルタモジュールはレスポンスをプロキシサーバ装置に送信する(ステップ928)。
次にクライアント装置101の処理フローを説明する。クライアント装置101では、最初に処理710でリクエストの送信とレスポンスの受信を行い、レスポンスヘッダにセットクッキー命令が含まれる場合にクッキーデータ領域にクッキーデータを設定する。続いて、レスポンスボディにスクリプトコードが含まれているかを検査し、スクリプトコードがある場合に処理711でキャッシュヒット判定用モジュールが実行され、キャッシュヒットの判定結果がメモリ135上に設定される。
変形例2では、処理711に続いて、レスポンスボディに挿入されている識別子再生成用スクリプトコード204を、プロセッサ123が読み出し実行し、処理917に示す処理が行われる。この処理では、プロセッサ123は、処理709で設定されたキャッシュヒット判定結果がヒットの場合に、レスポンスボディに含まれる識別子を再生成して別の値とする(ステップ916)。識別子の再生成の方法は、例えば、クライアント装置101のローカルディスク104に、この識別子が処理711によってキャッシュヒットと判定された回数のカウントを保存しておき、この値とクライアント装置101のネットワークインタフェース106のMACアドレスを識別子に加える方法が挙げられるが、この方法に限定するわけではない。
以上の処理フローによって、クライアント装置101は、受信したレスポンスがキャッシュデータ領域から読み出された場合に、識別子を、そのレスポンスがウェブサーバ装置121で生成されたときの古い値と異なる値にすることができる。これにより、レスポンス毎に異なる識別子が与えられるので、各レスポンスを区別する値として識別子を利用することが可能となる。
本変形例も、実施例1と同様に方法として説明したが、説明した方法を実現する装置としてもよい。また、ハードウェア構成やソフトウェア構成も、実施例1と同様にここで説明した例に限らない。
変形例3を、図10を用いて説明する。ここでは、実施例1との差分についてのみ示し、実施例1で説明した部分については省略する。図10は、クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置142を含む、システム全体の処理フローである。
ここでは、装置毎に処理フローを説明する。プロキシサーバ装置の処理は実施例1と同じである。本実施例では、実施例1と異なりスクリプトコード領域(134、154)に、キャッシュヒット判定用スクリプトコード201と、識別子更新用スクリプトコード205が保存されている。
まず、ウェブサーバ装置121の処理フローを説明する。処理730では、プロキシサーバ装置からのリクエストに対してレスポンスと識別子を生成しレスポンスに挿入する。次に、フィルタモジュールがスクリプトコード領域134からキャッシュヒット判定用スクリプトコード201と、識別子更新用スクリプトコード205を読み出す(ステップ1026)。さらに、フィルタモジュールのレスポンスボディ挿入モジュールが、ステップ1026で読み出したスクリプトコードをレスポンスボディに挿入する(ステップ1027)。
最後にフィルタモジュールはレスポンスをプロキシサーバ装置に送信する(ステップ1028)。さらに、ウェブサーバ装置121では、識別子生成モジュール1030にて、クライアント装置101から識別子再生成リクエストを受信する(ステップ1031)。そしてステップ723と同様にして識別子を生成し、クライアント装置101に返信する(ステップ1032)。
次にクライアント装置101の処理フローを説明する。クライアント装置101では、最初に処理710でリクエストの送信とレスポンスの受信を行い、レスポンスヘッダにセットクッキー命令が含まれる場合にクッキーデータ領域にクッキーデータを設定する。続いて、レスポンスボディにスクリプトコードが含まれているかを検査し、スクリプトコードがある場合に処理711でキャッシュヒット判定用モジュールが実行され、キャッシュヒットの判定結果がメモリ135上に設定される。
変形例3では、処理711に続いて、レスポンスボディに挿入されている識別子更新用スクリプトコード205がプロセッサ123で実行されて処理1018に示す処理が行われる。この処理では、処理711で設定されたキャッシュヒット判定結果がヒットの場合に、レスポンスボディに含まれる識別子の更新をウェブサーバ装置121に識別子再生成リクエストを送信することで行う(ステップ1016)。続いて、ウェブサーバ装置121から再生成後の識別子を受信する(ステップ1017)。
以上の処理フローによって、クライアント装置101は、受信したレスポンスがキャッシュデータ領域から読み出された場合に、識別子を、そのレスポンスがウェブサーバ装置121で生成されたときの古いと異なる値にすることができる。これにより、レスポンス毎に異なる識別子が与えられるので、各レスポンスを区別する値として識別子を利用することが可能となる。
なお、識別子生成モジュール1030は、レスポンスの生成を行っているウェブサーバ装置121で実行されていなくてもよく、プロキシサーバ装置141や、別のウェブサーバ装置上で実行されていてもよい。その場合、ステップ1016のリクエストの送信先も、識別子生成モジュール1030が実行されている装置になる。
本変形例も、実施例1と同様に方法として説明したが、説明した方法を実現する装置としてもよい。また、ハードウェア構成やソフトウェア構成も、実施例1と同様にここで説明した例に限らない。
変形例4を、図11を用いて説明する。ここでは、実施例1との差分についてのみ示し、実施例1で説明した部分については省略する。図11は、クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置142を含む、システム全体の処理フローである。
ここでは、装置毎に処理フローを説明する。プロキシサーバ装置は、クライアント装置101から再送信リクエストを受けた場合に、図6のステップ603の判定結果を無条件に「No(無)」とし、ステップ604以下を実行する以外は実施例1と同じ処理を実行する。本変形例では、図2に示すとおり、実施例1と異なりスクリプトコード領域(134、154)に、キャッシュヒット判定用スクリプトコード201と、ページ更新用スクリプトコード206が保存されている。
まず、ウェブサーバ装置121の処理フローを説明する。処理730では、プロキシサーバ装置からのリクエストに対してレスポンスと識別子を生成しレスポンスに挿入する。次に、フィルタモジュールがスクリプトコード領域からキャッシュヒット判定用スクリプトコード201と、ページ更新用スクリプトコード206を読み出す(ステップ1126)。さらに、フィルタモジュールのレスポンスボディ挿入モジュールが、ステップ1126で読み出したスクリプトコードをレスポンスボディに挿入する(ステップ1127)。最後にフィルタモジュールはレスポンスをプロキシサーバ装置に送信する(ステップ1128)。
次にクライアント装置101の処理フローを説明する。クライアント装置101では、最初に処理710でリクエストの送信とレスポンスの受信を行い、レスポンスヘッダにセットクッキー命令が含まれる場合にクッキーデータ領域にクッキーデータを設定する。続いて、レスポンスボディにスクリプトコードが含まれているかを検査し、スクリプトコードがある場合に処理711でキャッシュヒット判定用モジュールが実行され、キャッシュヒットの判定結果がメモリ135上に設定される。
変形例4では、処理711に続いて、レスポンスボディに挿入されているページ更新用スクリプトコード206をプロセッサ123が実行し、処理1106に示す処理が行われる。この処理では、処理709で設定されたキャッシュヒット判定結果がヒットの場合に、プロキシサーバ装置141にウェブページの全部もしくは一部の再送信リクエストを送信する(ステップ1104)。続いて、プロキシサーバ装置141からウェブページの全部もしくは一部を受信する(ステップ1105)。再送信リクエストにおいて、ページの一部のみの再送信をリクエストする方法は、ウェブページのHTMLドキュメント内の再送信が必要な部分に特定の印を付けておき、その印を再送信リクエスト内に指定する方法が挙げられるが、これに限定するわけではない。
以上の処理フローによって、クライアント装置101は、受信したレスポンスがキャッシュデータ領域から読み出された場合に、そのウェブページの全部もしくは一部を更新することができる。これにより、ウェブページの表示を最新の状態に更新しつつ、ネットワークやサーバ装置への負荷を低減することができる。本変形例も、実施例1と同様に方法として説明したが、説明した方法を実現する装置としてもよい。また、ハードウェア構成やソフトウェア構成も、実施例1と同様にここで説明した例に限らない。
変形例5を、図12を用いて説明する。ここでは、実施例1との差分についてのみ示し、実施例1で説明した部分については省略する。
図12は、クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置142を含む、システム全体の処理フローである。ここでは、装置毎に処理フローを説明する。プロキシサーバ装置の処理は実施例1と同じである。
本実施例では、実施例1と異なりスクリプトコード領域(134、154)に、キャッシュヒット判定用スクリプトコード201と、キャッシュ判別用スクリプトコード207がスクリプトコード領域134に、保存されている。まず、ウェブサーバ装置121の処理フローを説明する。処理730では、プロキシサーバ装置からのリクエストに対してレスポンスと識別子を生成しレスポンスに挿入する。次に、フィルタモジュールがスクリプトコード領域からキャッシュヒット判定用スクリプトコード201と、キャッシュ判別用スクリプトコード207を読み出す(ステップ1226)。さらに、フィルタモジュールのレスポンスボディ挿入モジュールが、ステップ1226で読み出したスクリプトコードをレスポンスボディに挿入する(ステップ1227)。最後にフィルタモジュールはレスポンスをプロキシサーバ装置に送信する(ステップ1228)。
次にクライアント装置101の処理フローを説明する。クライアント装置101では、最初に処理710でリクエストの送信とレスポンスの受信を行い、レスポンスヘッダにセットクッキー命令が含まれる場合にクッキーデータ領域にクッキーデータを設定する。続いて、レスポンスボディにスクリプトコードが含まれているかを検査し、スクリプトコードがある場合に処理711でキャッシュヒット判定用モジュールが実行され、キャッシュヒットの判定結果がメモリ135上に設定される。
変形例5では、処理711に続いて、レスポンスボディに挿入されているキャッシュ判別用スクリプトコード207を、プロセッサ123が読み出し、処理1206に示す処理が行われる。この処理では、処理709で設定されたキャッシュヒット判定結果がヒットの場合に、キャッシュ判別用モジュールは、判定結果保存領域105に保存されている記録の中に、レスポンスボディに挿入されている識別子と同じ識別子の記録があるかを検査する(ステップ1204)。同じ識別子があった場合には、キャッシュ判別結果をクライアント内キャッシュに設定し、なかった場合にはキャッシュ判別結果を通信経路上キャッシュに設定する。キャッシュ判別結果は、メモリ113上に設定される。次に、ローカルディスク104の判定結果保存領域105に、キャッシュ判別結果と識別子の組を保存する(ステップ1205)。クライアント内キャッシュと、通信経路上キャッシュについては、図15、図16を用いて、後で説明する。処理1206に続いて、処理713を行い、キャッシュヒット判定結果と識別子の組を判定結果保存領域105に保存する。
以上の処理フローによって、クライアント装置101は、受信したレスポンスがキャッシュデータ領域から読み出されたかどうか、さらにそのキャッシュがクライアント内キャッシュか、通信経路上キャッシュであったかの判別が可能となる。すなわち、本変形例により、リクエストに対するレスポンスが、クライアント・サーバ間のネットワークで、どのキャッシュで保持されていたレスポンスなのか特定することができる。本変形例も、実施例1と同様に方法として説明したが、説明した方法を実現する装置としてもよい。また、ハードウェア構成やソフトウェア構成も、実施例1と同様にここで説明した例に限らない。
変形例6を、図13を用いて説明する。ここでは、実施例1との差分についてのみ示し、実施例1で説明した部分については省略する。図13は、クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置142を含む、システム全体の処理フローである。
ここでは、装置毎に処理フローを説明する。プロキシサーバ装置の処理は実施例1と同じである。本変形例では、実施例1と異なりスクリプトコード領域(134、154)に、キャッシュヒット判定用スクリプトコード201と、余剰クッキー削除用スクリプトコード208が保存されている。
まず、ウェブサーバ装置121の処理フローを説明する。処理730では、ウェブサーバ装置は、プロキシサーバ装置からのリクエストに対してレスポンスと識別子を生成しレスポンスに挿入する。次に、フィルタモジュールがスクリプトコード領域134からキャッシュヒット判定用スクリプトコード201と、余剰クッキー削除用スクリプトコード208を読み出す(ステップ1326)。さらに、フィルタモジュールのレスポンスボディ挿入モジュールが、ステップ1326で読み出したスクリプトコードをレスポンスボディに挿入する(ステップ1327)。最後にフィルタモジュールはレスポンスをプロキシサーバ装置に送信する(ステップ1328)。
次にクライアント装置101の処理フローを説明する。クライアント装置101では、最初に処理710でリクエストの送信とレスポンスの受信を行い、レスポンスヘッダにセットクッキー命令が含まれる場合にクッキーデータ領域にクッキーデータを設定する。続いて、レスポンスボディにスクリプトコードが含まれているかを検査し、スクリプトコードがある場合に処理711で、キャッシュヒット判定用モジュールが実行し、キャッシュヒットの判定結果をメモリ135上に保持する。
変形例6では、処理711に続いて、レスポンスボディに挿入されている余剰クッキー削除用スクリプトコード208を、プロセッサ123が読み出し、処理1308に示す処理を実行する。処理1308では、クッキーデータ領域105に、余剰クッキー削除用モジュールが、クッキーの名前が識別子と同一の書式であるクッキーがあるか検査する(ステップ1306)。そのようなクッキーがあった場合、そのクッキーの有効期限を設定する(ステップ1307)。識別子と同一の書式とは、例えば、識別子が“AAA0000001”のような10文字の文字列で、先頭3文字が必ず“AAA”である場合、“AAA0000002”や、“AAA9999999”などが該当する。
以上の処理フローによって、クライアント装置101は、ウェブサーバ121がウェブページのレスポンスを生成し、クライアント装置101がそのレスポンスを受信したものの、その受信までに時間がかかったためにキャッシュデータ領域111から古いレスポンスを読み出して処理を行った場合などに生じる、キャッシュヒット判定のためにレスポンスヘッダに挿入されたセットクッキー命令により余剰なクッキーがクッキーデータ領域に保存されて残ってしまう現象を防ぐことができる。
本変形例も、実施例1と同様に方法として説明したが、説明した方法を実現する装置としてもよい。また、ハードウェア構成やソフトウェア構成も、実施例1と同様にここで説明した例に限らない。
変形例7を、図14を用いて説明する。
図14は、変形例5の処理フローに、いくつかの変更・追加を行うことで実現するキャッシュヒット率の表示画面である。ここでは、変形例56との差分について述べ、変形例5で説明した部分については省略する。まず、処理1205において、識別子とキャッシュ判別結果を判定結果保存領域105に保存する際に、ウェブページのURL(Uniform Resource Locator)をさらに保存する。URLは、クライアント装置101が送信するリクエストに含まれるURIの一部である。さらに、判定結果保存領域105に、同じ識別子の記録がすでに存在する場合にも、上書きをせずに追記して保存を行う。処理713においても、同様に保存を行う。
次に、クライアント装置101のローカルディスク104もしくは、ウェブサーバ装置121にキャッシュヒット率ページ1405を格納する。キャッシュヒット率ページ1405は、ウェブブラウザモジュール308に読み込まれ、判定結果保存領域105から、キャッシュヒット判定結果とキャッシュ判別結果を読み込み、クライアント装置101の入出力装置102に接続した画面1401にキャッシュヒット率一覧1402を表示する。キャッシュヒット率一覧1402には、キャッシュヒット率表1403が含まれ、ウェブページ毎にURL、アクセス数、キャッシュヒット率を表示する。これらの表示は、判定結果保存領域105から読み込んだキャッシュヒット判定結果とキャッシュ判別結果から生成する。アクセス数は、同じURLの記録の数である。キャッシュヒット率は、キャッシュヒット判定結果から、キャッシュヒットと判定された記録の数と、アクセス数の比を、URL毎に計算することで求める。クライアント内キャッシュと通信経路上キャッシュはキャッシュ判別結果から分けることができる。
なお、本変形例は、実施例1や実施例2に対して同様の変更・追加を行い、判定結果保存領域(105、125、145)に保存された記録を読み出す方法でもよい。この場合、キャッシュヒット率表1403では、クライアント内キャッシュと通信経路上キャッシュを合計した、キャッシュヒット率が表示される。
変形例8を、図17を用いて説明する。ここでは、実施例1との差分についてのみ示し、実施例1で説明した部分については省略する。図17は、クライアント装置101、ウェブサーバ装置121、プロキシサーバ装置142を含む、システム全体の処理フローである。ここでは、装置毎に処理フローを説明する。プロキシサーバ装置の処理は実施例1と同じである。
本実施例では、実施例1と異なりスクリプトコード領域(134、154)に、キャッシュヒット判定用スクリプトコード201と、判定結果記録用スクリプトコード202、キャッシュ判別用スクリプトコード207、識別子再生成用スクリプトコード204、イベント取得用スクリプトコード209、イベント記録用スクリプトコード210が保存されている。まず、ウェブサーバ装置121の処理フローを説明する。処理730では、ウェブサーバ装置121は、プロキシサーバ装置からのリクエストに対してレスポンスと識別子を生成しレスポンスに挿入する。次に、フィルタモジュールがスクリプトコード領域からキャッシュヒット判定用スクリプトコード201と、判定結果記録用スクリプトコード202、キャッシュ判別用スクリプトコード207、識別子再生成用スクリプトコード204、イベント取得用スクリプトコード209、イベント記録用スクリプトコード210を読み出す(ステップ1726)。さらに、フィルタモジュールのレスポンスボディ挿入モジュールが、ステップ1726で読み出したスクリプトコードをレスポンスボディに挿入する(ステップ1727)。最後にフィルタモジュールはレスポンスをプロキシサーバ装置に送信する(ステップ1728)。
次にクライアント装置101の処理フローを説明する。クライアント装置101では、最初に処理710でリクエストの送信とレスポンスの受信を行い、レスポンスヘッダにセットクッキー命令が含まれる場合にクッキーデータ領域にクッキーデータを設定する。続いて、レスポンスボディにスクリプトコードが含まれているかを検査し、スクリプトコードがある場合に処理711でキャッシュヒット判定用モジュールが実行され、キャッシュヒットの判定結果がメモリ135上に設定される。続いて、処理1206、処理713、処理917が実行され、キャッシュ判別結果とキャッシュヒット判定結果の判定結果保存領域への保存、キャッシュヒットの場合の識別子の再生成が行われる。
変形例8では、処理917に続いて、レスポンスボディに挿入されているイベント取得用スクリプトコード209がプロセッサ123で実行されて処理1705に示す処理が行われる。ウェブブラウザモジュール308は、ウェブブラウザ上での表示の変化や、マウス操作などが起こった場合に、イベントを発生させる。イベントには、表示の変化の内容や、マウス操作の内容など、起こった事象がイベント内容として含まれる。処理1705では、イベント取得用モジュールは、このイベントの発生を検出する(ステップ1703)。イベントが発生した場合、イベント内容を含めて、イベント発生履歴としてメモリ上に記録する(ステップ1704)。
処理1705に続いて、レスポンスボディに挿入されているイベント記録用スクリプトコード210がプロセッサ123で実行されて処理1709に示す処理が行われる。まず、処理1705によって、イベント記録用モジュールは、メモリ上に新しいイベント発生履歴が記録されたことを検出する(ステップ1706)。新しいイベント発生履歴が記録されたことを検出すると、識別子とイベント発生履歴を組にしてローカルディスク105に保存する(ステップ1707)。ウェブブラウザが終了しなければ、これらの処理が繰り返し実行される。以上の処理フローによって、クライアント装置101は、ウェブブラウザ上でのイベントをウェブページのレスポンス毎にローカルディスクに保存することができる。本変形例も、実施例1と同様に方法として説明したが、説明した方法を実現する装置としてもよい。また、ハードウェア構成やソフトウェア構成も、実施例1と同様にここで説明した例に限らない。
以上の実施例1および変形例1〜8の組合せも本発明に含まれる。
また、実施例1および変形例1〜8では、プロキシサーバ装置141のキャッシュデータ領域153からレスポンスが読み出された場合を例に説明を行ったが、本発明は、クライアント装置のリクエストに対し、他の装置に含まれるキャッシュデータ領域からレスポンスが読み出された場合も含まれる。例えば、図15に示すように、クライアント装置101上のブラウザキャッシュデータ領域1509、キャッシュアプリケーションデータ領域1511や、ウェブサーバ装置121上のウェブサーバページキャッシュデータ領域1529、プロキシサーバ装置141上のプロキシサーバページキャッシュデータ領域1549などが挙げられる。ブラウザキャッシュデータ領域1509には、ウェブブラウザプログラム108と連動して動作するブラウザキャッシュプログラム1508により、ウェブブラウザプログラム108が受信したレスポンスを保存し、ウェブブラウザプログラム108がリクエストを出す際に、ブラウザキャッシュデータ領域1509にレスポンスがあるかが検査され、レスポンスがある場合には、読み出される。他のキャッシュデータ領域も同様に、クライアント装置101とプロキシサーバ装置141、ウェブサーバ装置121の間でリクエストとレスポンスが伝達される経路上にあり、レスポンスの保存と、リクエストに対応したレスポンスの有無の検査、レスポンスがある場合に読み出して返信するのに利用される。
図16は、各キャッシュデータ領域からレスポンスが読み出されてウェブブラウザモジュールに返信されるタイムチャートを示した図である。これらの中で、ブラウザキャッシュデータ領域とキャッシュアプリケーションデータ領域は、クライアント内キャッシュであり、それ以外のキャッシュデータ領域は、通信経路上のキャッシュと呼ぶ。
さらに、実施例1および変形例1〜8では、ウェブページのリクエスト、レスポンスの場合について説明したが、本発明の対象はウェブページに限らない。またクッキーに関しても、図5に示す機能が含まれるデータの送受信方法であればよく、クッキーに限らない。つまり、クライアント装置からのリクエストでサーバ装置から返信されるデータであって、返信されるデータを含むレスポンスに、ヘッダとボディがあり、ヘッダにはキャッシュされず、クライアント装置で読み取ることができるデータを含み、ボディには、クライアント装置で実行可能なプログラムを挿入してもよい。
実施例1および変形例1〜8で説明した一形態では、サーバ装置と、クライアント装置と、サーバ装置とクライアント装置を接続するネットワークから構成されるキャッシュを含むコンピュータシステムでウェブアプリケーションを実行する際に、キャッシュを有効利用しつつ、ウェブアプリケーションを正しく実行するために、クライアント装置でキャッシュヒットを検出する技術において、クライアント装置から発したウェブページへのリクエストに対して、クライアント装置内のキャッシュや、サーバ装置との間にあるキャッシュからウェブページのレスポンスが返信された場合に、クライアント装置において、キャッシュから返信されたレスポンスであることをサーバ装置に問い合わせることなく判定する。さらに、キャッシュから返信されたレスポンスに対して、クライアント装置内のキャッシュから返信されたか、それ以外のサーバ装置とクライアント装置の間にあるキャッシュから返信されたかを判定する。キャッシュから返信されたレスポンスである場合に、ウェブページの識別子や、ウェブページのコンテンツを更新する。
サーバ装置がウェブページを生成する際に、クライアント装置で実行されるキャッシュヒット判定を行うプログラムコードと、ウェブページの生成時に与えるアクセス毎にユニークなウェブページの識別子をウェブページのレスポンスのボディに挿入する。そして、サーバ装置は、ウェブページのレスポンスのヘッダに、の識別子を含むクッキーを設定する命令を挿入する。
この形態によると、クライアント装置からのウェブページのリクエストに対するレスポンスに対して、クライアント装置がウェブページに含まれるプログラムをウェブブラウザ上で実行することにより、クライアント装置やサーバ装置との通信経路上にあるキャッシュから返信されたレスポンスか、サーバ装置で生成されたレスポンスかの判定を、クライアント装置へのツールのインストールや、サーバ装置でのウェブアプリケーションの改変が不要となる。
また、他の形態では、キャッシュにヒットせず、サーバ装置で生成されたウェブページをクライアント装置が受け取ると、クライアント装置ではウェブページのレスポンスのヘッダに挿入されたウェブページの識別子を含むクッキーを設定する命令により、ウェブブラウザに受け取った識別子を含むクッキーが設定される。次にウェブページのレスポンスに挿入されているキャッシュヒット判定を行うプログラムコードが実行される。このプログラムは、ウェブページのレスポンスに挿入されているウェブページの識別子を読み込み、ウェブブラウザに設定されているクッキーにその識別子を含むクッキーがあるかを判定する。のようにレスポンスのヘッダに挿入された命令によってウェブブラウザには、識別子を含むクッキーが設定されているので、この判定は、クッキーがあると判定される。このプログラムでは、判定結果が出た後に、のクッキーを削除する。
一方、ブラウザやサーバ装置との通信経路上にあるキャッシュから返信されたレスポンスの場合には、これらのキャッシュにおいては、ウェブページのレスポンスをキャッシュに保存する際に、レスポンスのヘッダに含まれるクッキーを設定する命令を除いてからレスポンスを保存するため、得られたレスポンスのヘッダには、サーバ装置で生成されたウェブページのレスポンスを受け取った場合と異なり、ウェブページの識別子を含むクッキーを設定する命令が含まれていない。よって、このレスポンスのボディに含まれている、キャッシュヒット判定を行うプログラムコードの実行結果としては、クッキーが無いと判定される。
以上の通り、キャッシュヒット判定を行うプログラムコードの実行結果から、ウェブページのレスポンスがサーバ装置で生成されたか、キャッシュから返信されたかを判定できる。この判定結果に基づき、ウェブページの識別子や、ウェブページのコンテンツの全部もしくは一部を更新する機能を、のプログラムコードに加えることにより、キャッシュヒット時に、ウェブページの識別子を更新したり、ウェブページのコンテンツの更新を行う。
さらに、他の形態では、プログラムコードに、判定結果と識別子をクライアント装置のローカルディスクに記録する機能を設け、キャッシュヒット判定を行う機能に対して、識別子を含むクッキーが無い場合、つまりキャッシュヒットの場合に、クライアント装置のローカルディスクに記録されている判定結果と識別子を検索し、その中にウェブページのレスポンスのボディに含まれている識別子と同じ識別子が含まれているかを判定する機能を追加することで、クライアント装置に設けられたキャッシュから返信されたレスポンスか、それ以外のサーバ装置との間に設けられたキャッシュから返信されたレスポンスかを判定する。これは、以前にクライアント装置で受信したレスポンスの場合、のプログラムコードにより、ローカルディスクにそのレスポンスのボディに含まれている識別子が記録されており、一方、以前にクライアント装置で受信したことの無いレスポンスの場合には、該当する識別子が記録されていないことから、ウェブページのレスポンスのボディに含まれている識別子と同じ識別子がローカルディスクにある記録に含まれている場合は、クライアント装置のキャッシュから、そうでない場合にはサーバ装置と間に設けられたキャッシュから返信されたレスポンスと判定する。
また、レスポンスに対するプログラムコードやクッキーの設定命令などの挿入は、サーバ装置のウェブアプリケーションに改変を加えずに、ウェブアプリケーションのレスポンス生成後にの挿入を行う。この挿入は、サーバ装置内だけでなく、サーバ装置とクライアント装置の間に設けたプロキシ装置でも行ってもよい。また、クライアント装置でのプログラムの実行や、クッキーの設定などは、これらの機能を持ったウェブブラウザで実現でき、クライアント装置にツールのインストールを行う必要はない。
本発明の他の形態では、サーバ装置やプロキシ装置の内部に上述の本発明の一形態の構成を設けたが、その構成を有する装置をサーバ装置内や、サーバ装置とクライアント装置の間に設置してもよい。
つまり、実施例1および変形例1〜8により、第一の計算機において、レスポンスが第一の計算機内や、第一の計算機と第二の計算機との間に設けられたキャッシュから返信されたレスポンスであるか、第二の計算機で生成されたレスポンスであるかを特定できる。
また、 実施例1および変形例1〜8により、第一の計算機で、キャッシュヒットの判定をすることにより、第二の計算機で実行されるアプリケーションのキャッシュ利用を管理することができる。
また、 実施例1および変形例1〜8により、第一の計算機から第二の計算機へのウェブページのリクエスト毎に、ユニークな識別子を生成するので、ウェブページの処理の記録をリクエスト毎に分けて行うことができ、システムの運用管理を容易にすることができる。
ウェブアプリケーションを実行するシステム構成図である。 サーバ装置においてレスポンスに挿入されるスクリプトコードの例である。 ウェブアプリケーションの処理フローの例である。 ウェブシステムにおけるリクエストとレスポンスの構成を示す図である。 ウェブシステムにおけるクッキーおよびセットクッキー命令の動作を説明する図である。 プロキシサーバ装置の処理フロー図である。 第1の実施例におけるクライアント装置と、プロキシサーバ装置、ウェブサーバ装置の処理フロー図である。 変形例1におけるクライアント装置と、プロキシサーバ装置、ウェブサーバ装置の処理フロー図である。 変形例2におけるクライアント装置と、プロキシサーバ装置、ウェブサーバ装置の処理フロー図である。 変形例3におけるクライアント装置と、プロキシサーバ装置、ウェブサーバ装置の処理フロー図である。 変形例4におけるクライアント装置と、プロキシサーバ装置、ウェブサーバ装置の処理フロー図である。 変形例5におけるクライアント装置と、プロキシサーバ装置、ウェブサーバ装置の処理フロー図である。 変形例6におけるクライアント装置と、プロキシサーバ装置、ウェブサーバ装置の処理フロー図である。 キャッシュヒット率測定結果を表示する画面の例を示した図である。 システムのキャッシュ配置を示した図である。 システムのキャッシュ配置の違いによる、処理の違いを示した図である。 変形例7におけるクライアント装置と、プロキシサーバ装置、ウェブサーバ装置の処理フロー図である。
符号の説明
101 クライアント装置
102、126、146 入出力装置
103、123、143 プロセッサ
104、124、144 ローカルディスク
105、125、145 判定結果保存領域
106、122、142 ネットワークインタフェース
108 ウェブブラウザプログラム
109 スクリプトエンジンプログラム
110、131、151 キャッシュプログラム
111、133、153 キャッシュデータ領域
112 クッキーデータ領域
113、135、155 メモリ
127 ウェブサーバプログラム
128、148 フィルタプログラム
129、149 レスポンスボディ挿入部
130、150 レスポンスヘッダ挿入部
132、152 識別子生成プログラム
147 プロキシサーバプログラム
134、154 スクリプトコード領域
161 ネットワーク

Claims (13)

  1. 第1の計算機と、前記第1の計算機にネットワークを介して接続される第2の計算機とを含むコンピュータシステムにおいて提供されるアプリケーションの実行状況の管理方法であって、
    前記第1の計算機は、前記第2の計算機からの前記アプリケーションに関するリクエストを受け、
    前記リクエストに対応するレスポンスに含まれるウェブページに、ユニークな識別子と、前記識別子をクッキーの名前とするクッキーが存在するかを判断する第1の検査および前記第1の検査後に前記クッキーの削除を前記第2の計算機で実行するプログラムコードとを、前記レスポンスのウェブページに挿入し、
    前記レスポンスのヘッダに、前記識別子をクッキーの名前とするクッキーを前記第2の計算機に設定させる命令を挿入し、
    前記ウェブページと、前記ヘッダを含むレスポンスを前記第2の計算機に返信することを特徴とする、アプリケーションの実行状況管理方法。
  2. 請求項1に記載の実行状況管理方法であって、第1の計算機は、前記レスポンスに、前記第1の検査の結果を第2の計算機のローカルディスクに記録するプログラムコードを挿入し、前記レスポンスを前記第2の計算機に返信することを特徴とする、アプリケーションの実行状況管理方法。
  3. 請求項1に記載の実行状況管理方法であって、第1の計算機は、第2の計算機からのリクエストに対して返信するレスポンスのウェブページを生成もしくは転送する際に挿入するプログラムコードに、前記第1の検査の結果を第2の計算機から第1の計算機に送信するプログラムコードを挿入し、前記レスポンスを前記第2の計算機に返信することを特徴とする、アプリケーションの実行状況管理方法。
  4. 請求項1に記載の実行状況管理方法であって、第1の計算機は、第2の計算機からのリクエストに対して返信するレスポンスのウェブページを生成もしくは転送する際に挿入するプログラムコードに、前記第1の検査において前記クッキーが存在しない結果の場合に前記第2の計算機が前記ウェブページにユニークな識別子を再生成するプログラムコードを挿入し、前記レスポンスを前記第2の計算機に返信することを特徴とする、アプリケーションの実行状況管理方法。
  5. 請求項1に記載の実行状況管理方法であって、第1の計算機は、第2の計算機からのリクエストに対して返信するレスポンスのウェブページを生成もしくは転送する際に挿入するプログラムコードに、前記第1の検査において前記クッキーが存在しない結果の場合に前記第2の計算機が前記ウェブページにユニークな識別子を再生成するプログラムコードを挿入し、前記レスポンスを前記第2の計算機に返信することを特徴とする、アプリケーションの実行状況管理方法。
  6. 請求項2に記載の実行状況管理方法であって、さらに、第1の計算機は、第2の計算機からのリクエストに対して、前記第2の計算機のローカルディスクに記録された前記第1の検査の結果を読み出して、前記第1の検査の結果、前記クッキーが存在しない場合と、存在する場合の比率を表示するプログラムコードが挿入された前記ウェブページを前記第2の計算機に返信することを特徴とする、アプリケーションの実行状況管理方法。
  7. 請求項3に記載の実行状況管理方法であって、さらに、第1の計算機は、第2の計算機から送信された前記第1の検査の結果を第1の計算機のローカルディスクもしくは外部ディスクに記録し、前記記録された第1の検査の結果を読み出して、前記第1の検査の結果、前記クッキーが存在しない場合と、存在する場合の比率を表示するプログラムコードが挿入された前記ウェブページを前記第1の計算機が提供することを特徴とする、アプリケーションの実行状況管理方法。
  8. 請求項1に記載の実行状況管理方法であって、第1の計算機は、第2の計算機からのリクエストに対して返信するレスポンスのウェブページを生成もしくは転送する際に挿入するプログラムコードに、前記第1の検査において前記クッキーが存在しない結果の場合に前記第2の計算機が、前記ウェブページの全部もしくは一部を前記第1の計算機から再読み込みするリクエストを前記第1の計算機に対して送信するプログラムコードを挿入し、前記レスポンスを前記第2の計算機に返信することを特徴とする、アプリケーションの実行状況管理方法。
  9. 請求項2に記載の実行状況管理方法であって、第1の計算機は、第2の計算機からのリクエストに対して返信するレスポンスのウェブページを生成もしくは転送する際に挿入するプログラムコードに、前記第2の計算機のローカルディスクに記録されている第1の検査の結果に、前記識別子と一致する結果が記録されているか第2の検査を行い、前記第1の検査の結果と、第2の検査の結果と、前記識別子とを一緒に前記第2の計算機のローカルディスクに記録するプログラムコードを挿入し、前記レスポンスを前記第2の計算機に返信することを特徴とする、アプリケーションの実行状況管理方法。
  10. 請求項1に記載の実行状況管理方法であって、第1の計算機は、第2の計算機からのリクエストに対して返信するレスポンスのウェブページを生成もしくは転送する際に挿入するプログラムコードに、第1の検査後に行う前記クッキーの削除に加えて、他のウェブページの識別子を含むクッキーに対して、一定時間経過後に削除されるフラグを設定するプログラムコードを挿入し、前記レスポンスを前記第2の計算機に返信することを特徴とする、アプリケーションの実行状況管理方法。
  11. 第1の計算機と第2の計算機、およびそれらを接続するネットワークから構成されるキャッシュを含むコンピュータシステムで、前記第1の計算機は、前記第2の計算機からのリクエストに対して返信するレスポンスを生成もしくは転送する際に、前記第1の計算機がレスポンスを生成する際にレスポンス毎に与える前記レスポンスにユニークな識別子と、前記第1の計算機がレスポンスを生成する際に前記第2の計算機に設定させるレスポンスの属性値に前記識別子を含む値が設定されているかを判断する第1検査および第1の検査後に前記レスポンスの属性値の削除を前記第2の計算機で実行するプログラムコードを、前記レスポンスに挿入し、さらに前記第1の計算機は、レスポンスを生成する際に前記レスポンスのヘッダに、前記第2の計算機に前記識別子をレスポンスの属性値として設定する命令を挿入して、前記レスポンスを前記第2の計算機に返信することを特徴とする、キャッシュヒット判定方法。
  12. 第1の計算機と第2の計算機とに接続される中継装置であって、
    前記第1の計算機と前記第2の計算機の間に設けられ、
    前記第2の計算機からのリクエストに対して前記第1の計算機から返信されるレスポンスのボディに含まれるウェブページにユニークな識別子と、前記識別子をクッキーの名前とするクッキーが存在するかを判断する第1検査および第1の検査後に前記クッキーの削除を前記第2の計算機で実行するプログラムコードを、前記レスポンスのウェブページに挿入するレスポンスボディ挿入部と、
    前記レスポンスのヘッダに、前記第2の計算機に前記識別子をクッキーの名前とするとクッキーを設定する命令を挿入するレスポンスヘッダ挿入部と、、
    前記レスポンスを前記第2の計算機に送信するレスポンス送信部と、を有することを特徴とする、中継装置。
  13. クライアント計算機にネットワークを介して接続されるサーバ計算機であって、
    前記クライアント計算機からの前記サーバ計算機で実行されるアプリケーションに関するリクエストを受信するリクエスト受信部と、
    前記リクエストに対してレスポンス毎に与えるユニークな識別子と、前記クライアント計算機に設定させるレスポンスの属性値に前記識別子を含む値が設定されているかを判断する第1検査および第1の検査後に前記レスポンスの属性値の削除を前記クライアント計算機で実行させるプログラムコードを、前記レスポンスに挿入するレスポンス挿入部と、
    前記レスポンスのヘッダに、前記クライアント計算機に前記識別子をレスポンスの属性値として設定する命令を挿入するレスポンスヘッダ挿入部と、
    前記リクエストに対する前記レスポンスを前記第2の計算機に送信するレスポンス処理部と、有することを特徴とする、サーバ計算機。
JP2008232805A 2008-09-11 2008-09-11 アプリケーションの実行管理方法、アプリケーションを実行するサーバ計算機及び中継装置 Expired - Fee Related JP5135135B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008232805A JP5135135B2 (ja) 2008-09-11 2008-09-11 アプリケーションの実行管理方法、アプリケーションを実行するサーバ計算機及び中継装置
US12/367,021 US8150985B2 (en) 2008-09-11 2009-02-06 Application execution managing method, application execution server computer, and repeater

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008232805A JP5135135B2 (ja) 2008-09-11 2008-09-11 アプリケーションの実行管理方法、アプリケーションを実行するサーバ計算機及び中継装置

Publications (2)

Publication Number Publication Date
JP2010067016A true JP2010067016A (ja) 2010-03-25
JP5135135B2 JP5135135B2 (ja) 2013-01-30

Family

ID=41800103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008232805A Expired - Fee Related JP5135135B2 (ja) 2008-09-11 2008-09-11 アプリケーションの実行管理方法、アプリケーションを実行するサーバ計算機及び中継装置

Country Status (2)

Country Link
US (1) US8150985B2 (ja)
JP (1) JP5135135B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011209858A (ja) * 2010-03-29 2011-10-20 Sharp Corp 複合機、複合機制御システム、プログラムおよび記録媒体
JP2013003852A (ja) * 2011-06-16 2013-01-07 Konica Minolta Business Technologies Inc 端末装置、ウェブページ表示方法、およびコンピュータプログラム
CN107357559A (zh) * 2016-05-10 2017-11-17 北京京东尚科信息技术有限公司 远端执行服务器的信息控制方法和装置

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1875394B1 (en) * 2005-04-25 2011-06-08 Network Appliance, Inc. System and method for caching network file systems
JP5135135B2 (ja) * 2008-09-11 2013-01-30 株式会社日立製作所 アプリケーションの実行管理方法、アプリケーションを実行するサーバ計算機及び中継装置
US10567823B2 (en) 2008-11-26 2020-02-18 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US10419541B2 (en) 2008-11-26 2019-09-17 Free Stream Media Corp. Remotely control devices over a network without authentication or registration
US9386356B2 (en) 2008-11-26 2016-07-05 Free Stream Media Corp. Targeting with television audience data across multiple screens
US10631068B2 (en) 2008-11-26 2020-04-21 Free Stream Media Corp. Content exposure attribution based on renderings of related content across multiple devices
US10334324B2 (en) 2008-11-26 2019-06-25 Free Stream Media Corp. Relevant advertisement generation based on a user operating a client device communicatively coupled with a networked media device
US9026668B2 (en) 2012-05-26 2015-05-05 Free Stream Media Corp. Real-time and retargeted advertising on multiple screens of a user watching television
US9961388B2 (en) 2008-11-26 2018-05-01 David Harrison Exposure of public internet protocol addresses in an advertising exchange server to improve relevancy of advertisements
US9986279B2 (en) 2008-11-26 2018-05-29 Free Stream Media Corp. Discovery, access control, and communication with networked services
US10977693B2 (en) 2008-11-26 2021-04-13 Free Stream Media Corp. Association of content identifier of audio-visual data with additional data through capture infrastructure
US9519772B2 (en) 2008-11-26 2016-12-13 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US8180891B1 (en) 2008-11-26 2012-05-15 Free Stream Media Corp. Discovery, access control, and communication with networked services from within a security sandbox
US9154942B2 (en) 2008-11-26 2015-10-06 Free Stream Media Corp. Zero configuration communication between a browser and a networked media device
US10880340B2 (en) 2008-11-26 2020-12-29 Free Stream Media Corp. Relevancy improvement through targeting of information based on data gathered from a networked device associated with a security sandbox of a client device
US10142157B2 (en) * 2010-06-10 2018-11-27 Blackberry Limited Method and system for reducing transmission of redundant data
US9953052B1 (en) * 2012-06-19 2018-04-24 Amazon Technologies, Inc. Caching of updated network content portions
US9596313B2 (en) * 2013-04-12 2017-03-14 Tencent Technology (Shenzhen) Company Limited Method, terminal, cache server and system for updating webpage data
US10984175B2 (en) * 2013-08-09 2021-04-20 Yottaa Inc. Systems and methods for dynamically modifying a requested web page from a server for presentation at a client
US9906624B2 (en) 2013-10-30 2018-02-27 International Business Machines Corporation Method for throttling multiple client applications sending data to a server application
EP2892207A1 (en) * 2014-01-06 2015-07-08 Alcatel Lucent Identifying where user requests are serviced within a distributed system
JP6978447B2 (ja) * 2019-01-22 2021-12-08 ファナック株式会社 表示データ提供装置
US20220360595A1 (en) * 2021-05-10 2022-11-10 Webgap Inc System and method for secure web browsing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003036198A (ja) * 2001-07-23 2003-02-07 Alps System Integration Co Ltd ホワイトリストによるプロキシサーバのキャッシュ制御方法
JP2003281021A (ja) * 2002-03-25 2003-10-03 Alps System Integration Co Ltd プロキシキャッシュ又はプロキシログによるurl情報共有システム
JP2007200331A (ja) * 2006-01-27 2007-08-09 Internatl Business Mach Corp <Ibm> 構成可能な期間に関するプライベート・データをキャッシュする方法及び装置
JP2008204425A (ja) * 2007-01-26 2008-09-04 Yahoo Japan Corp Urlの類似性分析による処理省略判定プログラム、装置
US20090193129A1 (en) * 2008-01-26 2009-07-30 Puneet Agarwal Systems and Methods for Fine Grain Policy Driven Cookie Proxying

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216149B1 (en) 2000-08-18 2007-05-08 International Business Machines Corporation Gathering enriched web server activity data of cached web content
US7379980B1 (en) * 2000-12-21 2008-05-27 At&T Delaware Intellectual Property, Inc. Cookie management systems and methods
JP3845282B2 (ja) 2001-09-11 2006-11-15 株式会社デジタル ホームページの閲覧状態管理システム
JP4631301B2 (ja) * 2004-03-31 2011-02-16 株式会社日立製作所 記憶装置のキャッシュ管理方法
US20070005779A1 (en) * 2005-06-30 2007-01-04 Ebay Inc. Origin aware cookie verification systems and methods
US7870596B2 (en) * 2007-02-01 2011-01-11 Microsoft Corporation Accessing network resources outside a security boundary
US7979909B2 (en) * 2007-12-03 2011-07-12 Wells Fargo Bank Application controlled encryption of web browser data
US7761581B2 (en) * 2007-12-11 2010-07-20 International Business Machines Corporation Method and system for cookie expiration based on user idle and presence detection
JP5135135B2 (ja) * 2008-09-11 2013-01-30 株式会社日立製作所 アプリケーションの実行管理方法、アプリケーションを実行するサーバ計算機及び中継装置
US8595327B2 (en) * 2009-04-10 2013-11-26 Microsoft Corporation Obtaining instrumentation data

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003036198A (ja) * 2001-07-23 2003-02-07 Alps System Integration Co Ltd ホワイトリストによるプロキシサーバのキャッシュ制御方法
JP2003281021A (ja) * 2002-03-25 2003-10-03 Alps System Integration Co Ltd プロキシキャッシュ又はプロキシログによるurl情報共有システム
JP2007200331A (ja) * 2006-01-27 2007-08-09 Internatl Business Mach Corp <Ibm> 構成可能な期間に関するプライベート・データをキャッシュする方法及び装置
JP2008204425A (ja) * 2007-01-26 2008-09-04 Yahoo Japan Corp Urlの類似性分析による処理省略判定プログラム、装置
US20090193129A1 (en) * 2008-01-26 2009-07-30 Puneet Agarwal Systems and Methods for Fine Grain Policy Driven Cookie Proxying

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011209858A (ja) * 2010-03-29 2011-10-20 Sharp Corp 複合機、複合機制御システム、プログラムおよび記録媒体
CN103945083A (zh) * 2010-03-29 2014-07-23 夏普株式会社 复合机以及复合机控制系统
US9203817B2 (en) 2010-03-29 2015-12-01 Sharp Kabushiki Kaisha Multifunction apparatus and multifunction apparatus control system
CN103945083B (zh) * 2010-03-29 2016-11-02 夏普株式会社 复合机以及复合机控制系统
JP2013003852A (ja) * 2011-06-16 2013-01-07 Konica Minolta Business Technologies Inc 端末装置、ウェブページ表示方法、およびコンピュータプログラム
CN107357559A (zh) * 2016-05-10 2017-11-17 北京京东尚科信息技术有限公司 远端执行服务器的信息控制方法和装置
CN107357559B (zh) * 2016-05-10 2021-05-25 北京京东尚科信息技术有限公司 远端执行服务器的信息控制方法和装置

Also Published As

Publication number Publication date
US8150985B2 (en) 2012-04-03
US20100063998A1 (en) 2010-03-11
JP5135135B2 (ja) 2013-01-30

Similar Documents

Publication Publication Date Title
JP5135135B2 (ja) アプリケーションの実行管理方法、アプリケーションを実行するサーバ計算機及び中継装置
JP4906672B2 (ja) ウェブアプリケーションの処理記録方法および処理記録装置
US10027564B2 (en) Unobtrusive methods and systems for collecting information transmitted over a network
JP5006348B2 (ja) 応答出力キャッシュに対するマルチキャッシュ協調
US8352785B1 (en) Methods for generating a unified virtual snapshot and systems thereof
US7899991B2 (en) Method and system for an extensible caching framework
TWI449372B (zh) 用於網路式應用程式之離線執行的方法及電腦系統
US20070022166A1 (en) System, computer program product and method of keeping track of a detached e-mail attachment
US20100257255A1 (en) Tracking remote browser crashes via cookies
US8966059B2 (en) Cached data detection
US8819497B1 (en) Storage of mass data for monitoring
WO2007035580A2 (en) Providing local access to managed content
EP2671360B1 (en) Correlating input and output requests between client and server components in a multi-tier application
KR20150048861A (ko) 오프-힙 캐싱을 구비한 네트워크 서비스 시스템 및 방법
CN103152367A (zh) 一种缓存的动态维护更新方法及系统
KR100645742B1 (ko) 웹 문서 생성을 포함한 다양한 정보 획득을 통한 검색데이터 수집 방법 및 그 장치
JP5476326B2 (ja) ウェブ操作記録・再現方法および装置
US20120011324A1 (en) System and method for managing large filesystem-based caches
US20130263156A1 (en) Operation log collection method and device
US20090070336A1 (en) Method and system for managing transmitted requests
JPH113306A (ja) エージェント方式
JP5197351B2 (ja) 情報処理装置及び情報処理方法及びプログラム
KR20090009804A (ko) 네트워크 응답 버퍼링 거동을 관리하는 방법 및 그를 이용하는 컴퓨터 시스템
KR100748770B1 (ko) 웹 페이지 중재 시스템 및 방법
CN102959529A (zh) 用于缓存的网络的广播协议

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120907

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121016

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121112

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees