JP5567906B2 - 画面の再現を支援する装置及び方法 - Google Patents

画面の再現を支援する装置及び方法 Download PDF

Info

Publication number
JP5567906B2
JP5567906B2 JP2010129262A JP2010129262A JP5567906B2 JP 5567906 B2 JP5567906 B2 JP 5567906B2 JP 2010129262 A JP2010129262 A JP 2010129262A JP 2010129262 A JP2010129262 A JP 2010129262A JP 5567906 B2 JP5567906 B2 JP 5567906B2
Authority
JP
Japan
Prior art keywords
file
screen
data
unit
response
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.)
Expired - Fee Related
Application number
JP2010129262A
Other languages
English (en)
Other versions
JP2011257796A (ja
Inventor
雅彦 小須田
英典 合田
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010129262A priority Critical patent/JP5567906B2/ja
Priority to US13/151,068 priority patent/US9619577B2/en
Publication of JP2011257796A publication Critical patent/JP2011257796A/ja
Priority to US13/426,989 priority patent/US9483575B2/en
Application granted granted Critical
Publication of JP5567906B2 publication Critical patent/JP5567906B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by 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]
    • 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/50Network services
    • H04L67/75Indicating network or usage conditions on the user display

Description

本発明は、画面の再現を支援する装置及び方法に関する。特に、本発明は、クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置及び方法に関する。
クライアントサーバ方式のウェブアプリケーションシステムにおいて、端末にユーザが入力した情報とウェブシステムが端末に表示した画面とを、ネットワークモニタが取得するネットワークトレースから再現する技術がある。この技術では、アプリケーション開発が行われているシステムにおいて、ネットワークトレースを連続的にキャプチャし、実行されたテスト内容、実行結果の記録、エラーの際に表示された画面の確認等を行っている。
ここで、同様の画面再現に関する技術は、公報記載の技術としても知られている(例えば、特許文献1、2参照)。
特許文献1の技術では、サーバからクライアントに送信されたデータであってユーザによる操作を受け付ける第1画面をクライアントに表示させるためのデータである第1データと、クライアントからサーバに送信されたデータであってクライアントに表示された第1画面で受け付けられた操作を示すデータである第2データとを取得し、第1データ及び第2データに基づいて、第2データに基づく情報である操作情報を第1画面に付加してなる第2画面を表示させるための第3データを生成している。
特許文献2の技術では、ネットワーク上のパケットを傍受し、傍受したパケットから通信内容を再構築し、通信内容に対応付けて通信元アドレス、通信先アドレス及び日時を格納し、検索条件に応じて通信内容を検索し、検索した通信内容が入力値を含むかを判定し、通信元アドレス、通信先アドレス又は日時に基づいて入力画面を含む通信内容を取得し、入力値を入力画面に埋め込むことによって表示画面を作成し表示している。
特開2007−280357号公報 特開2008−108047号公報
ところで、HTTP(HyperText Transfer Protocol)では、データの転送量を削減するために、キャッシュの仕組みが定義されており、端末のブラウザや通信経路上のプロキシにキャッシュが実装されている。従って、ウェブアプリケーションシステムでは、画面の部品がブラウザやプロキシにキャッシュされることがあるため、画面再現に必要な部品が、画面再現のためのネットワークトレースに全て含まれているとは限らない。このため、ネットワークトレースから完全な画面が再現できないことがある。
一例を挙げる。ブラウザは、HTML(HyperText Markup Language)ファイルに埋め込むファイルをリクエストする際、該当のファイルを既にキャッシュに持っていれば、リクエストにLast-Modifiedの日時を付加してサーバに送る。すると、サーバは、その日時を確認し、キャッシュしてあるファイルが有効かどうかを判断する。
即ち、Last-Modifiedの日時がサーバ側のファイルの情報と一致すれば、サーバは、ファイルの本体は送付せずに、キャッシュにあるファイルが有効であることを示すステータスコード「304(Not Modified)」を送る。そして、ブラウザは、キャッシュしてあるファイルを、画面を描画するためにHTMLファイルに埋め込むファイルとして使用する。この場合、レスポンスは、ステータスコードは含むものの、リクエストしたファイルは含まないので、ファイルはネットワークトレースに残らない。従って、埋め込まれたファイルをネットワークトレースから抽出できないため、画面の再現が不十分になる。
かかる問題に対して、特許文献1、2の技術は、何ら解決手段を提供するものでない。
特許文献1は、画面再現のためのネットワークトレースに含まれる画面部品の処理しか開示しておらず、画面部品がネットワークトレースに含まれてない場合の問題は扱っていない。
特許文献2では、キャッシュされた画面の問題にも触れている。しかしながら、データ入力を伴う画面のみを対象に同じURLへのアクセスを遡って検索し、その画面が同じ入力を求めているかどうかによって同一性を確認する、という手法を採用している。この確認方法から、特許文献2では、Fromタグを含むHTMLファイルがキャッシュされている場合のみを処理を対象としていることが分かる。従って、入力画面の本体(HTMLファイル)だけでなく、HTMLファイルに埋め込まれる画像ファイル、スタイルシート等もキャッシュされ得るウェブシステムにおいて、特許文献2は、上記問題に対する解決手段を提供しない。また、特許文献2では、過去のネットワークトレースを遡って検索するため、画面再現の際の応答時間が長くなるという問題もある。
本発明の目的は、クライアントにサーバから送信されたデータに基づいて表示された画面を完全に再現できる可能性を、実用性の低下を抑えつつ高めることにある。
かかる目的のもと、本発明は、クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置であって、クライアントに画面が表示された複数の時点で画面を表示するためにサーバから送信されたデータのうち、画面を表示するために用いられるファイルを伴うデータから、ファイルを抽出する抽出部と、抽出部により抽出されたファイルを記憶する記憶部と、複数の時点のうちの特定の時点でクライアントに表示された画面の再現の要求を受け付ける受付部と、特定の時点で画面を表示するためにサーバから送信されたデータがファイルを含まない場合に、記憶部に記憶されたファイルを、受付部にて受け付けた画面の再現の要求に応じて出力する出力部とを含む、装置を提供する。
ここで、出力部は、特定の時点で画面を表示するためにサーバから送信されたデータが、キャッシュされているファイルが有効であることを示すデータである場合に、記憶部に記憶されたファイルを、受付部にて受け付けた画面の再現の要求に応じて出力する、ものであってよい。
加えて、出力部は、記憶部に記憶されたファイルに設定されたファイルの有効性に関する情報に基づいて、ファイルの有効性が特定の時点で失われていないと判断できる場合に、ファイルを、受付部にて受け付けた画面の再現の要求に応じて出力する、ものであってよい。
また、この装置において、ファイルは、画面の部品を表示するために用いられ、受付部は、特定の時点でクライアントに表示された部品の再現の要求を受け付け、出力部は、特定の時点で部品の表示を要求するデータがサーバへ送信されていない場合に、記憶部に記憶されたファイルを、受付部にて受け付けた部品の再現の要求に応じて出力する、ものであってよい。
加えて、出力部は、記憶部に記憶されたファイルに設定されたファイルの有効性に関する情報に基づいて、ファイルの有効性が、画面の部品以外の部分の表示を要求するデータがサーバへ送信された時点で失われていないと判断できる場合に、ファイルを、受付部にて受け付けた部品の再現の要求に応じて出力する、ものであってよい。
更に、抽出部は、ファイルのタイプが予め定められたタイプである場合に、ファイルを伴うデータから、ファイルを抽出する、ものであってよい。
更にまた、抽出部は、ファイルを伴うデータが、ファイルがキャッシュされ得ることを示す情報として予め定められた情報を含む場合に、データからファイルを抽出する、ものであってよい。
また、本発明は、クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置であって、クライアントに画面が表示された複数の時点で画面を表示するためにサーバから送信されたデータであって、画面を表示するために用いられるファイルを伴うデータを含むネットワーク上のトレースデータを蓄積する蓄積部と、蓄積部にトレースデータが蓄積される際に、ファイル及びファイルを伴うデータの少なくとも何れか一方が、ファイルがキャッシュされ得ると判断するための条件として予め定められた条件を満たしていれば、トレースデータに含まれるファイルを伴うデータから、ファイルを抽出する抽出部と、抽出部により抽出されたファイルを記憶する記憶部と、複数の時点のうちの特定の時点でクライアントに表示された画面の再現の要求を受け付ける受付部と、蓄積部に蓄積されたトレースデータに含まれるデータのうち、特定の時点で画面を表示するためにサーバから送信されたデータが、ファイルを含まず、キャッシュされているファイルが有効であることを示す場合に、記憶部に記憶されたファイルに設定されたファイルの有効性に関する情報に基づいて、ファイルの有効性が特定の時点で失われていないと判断できれば、ファイルを、受付部にて受け付けた画面の再現の要求に応じて出力する出力部とを含む、装置も提供する。
また、本発明は、クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置であって、クライアントに画面が表示された複数の時点で画面を表示するためにサーバから送信されたデータであって、画面を表示するために用いられるファイルを伴うデータを含むネットワーク上のトレースデータを蓄積する蓄積部と、蓄積部に蓄積されたトレースデータから読み出されたファイル及びファイルを伴うデータの少なくとも何れか一方が、ファイルがキャッシュされ得ると判断するための条件として予め定められた条件を満たしていれば、トレースデータに含まれるファイルを伴うデータから、ファイルを抽出する抽出部と、抽出部により抽出されたファイルを記憶する記憶部と、複数の時点のうちの特定の時点でクライアントに表示された画面の再現の要求を受け付ける受付部と、蓄積部に蓄積されたトレースデータに含まれるデータのうち、特定の時点で画面を表示するためにサーバから送信されたデータが、ファイルを含まず、キャッシュされているファイルが有効であることを示す場合に、記憶部に記憶されたファイルに設定されたファイルの有効性に関する情報に基づいて、ファイルの有効性が特定の時点で失われていないと判断できれば、ファイルを、受付部にて受け付けた画面の再現の要求に応じて出力する出力部とを含む、装置も提供する。
更に、本発明は、クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する方法であって、クライアントに画面が表示された複数の時点で画面を表示するためにサーバから送信されたデータのうち、画面を表示するために用いられるファイルを伴うデータから、ファイルを抽出するステップと、抽出されたファイルを記憶部に記憶するステップと、複数の時点のうちの特定の時点でクライアントに表示された画面の再現の要求を受け付けるステップと、特定の時点で画面を表示するためにサーバから送信されたデータがファイルを含まない場合に、記憶部に記憶されたファイルを、受け付けた画面の再現の要求に応じて出力するステップとを含む、方法も提供する。
更にまた、本発明は、クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置としてコンピュータを機能させるプログラムであって、コンピュータを、クライアントに画面が表示された複数の時点で画面を表示するためにサーバから送信されたデータのうち、画面を表示するために用いられるファイルを伴うデータから、ファイルを抽出する抽出部と、抽出部により抽出されたファイルを記憶する記憶部と、複数の時点のうちの特定の時点でクライアントに表示された画面の再現の要求を受け付ける受付部と、特定の時点で画面を表示するためにサーバから送信されたデータがファイルを含まない場合に、記憶部に記憶されたファイルを、受付部にて受け付けた画面の再現の要求に応じて出力する出力部として機能させる、プログラムも提供する。
本発明によれば、クライアントにサーバから送信されたデータに基づいて表示された画面を完全に再現できる可能性を、実用性の低下を抑えつつ高めることができる。
本発明の第1の実施の形態が適用されるコンピュータシステムの構成例を示したブロック図である。 本発明の第1の実施の形態における画面再現装置のキャッシャブルファイル記憶時の動作例を示したフローチャートである。 本発明の第1、第2の実施の形態における画面再現装置の画面再現時の動作例を示したフローチャートである。 本発明の第1、第2の実施の形態における画面再現装置の画面再現時の動作例を示したフローチャートである。 本発明の第2の実施の形態が適用されるコンピュータシステムの構成例を示したブロック図である。 本発明の第2の実施の形態における画面再現装置のキャッシャブルファイル記憶時の動作例を示したフローチャートである。 キャッシャブルファイル判定処理(簡易版ロジック)の動作例を示したフローチャートである。 キャッシャブルファイル選択処理(簡易版ロジック)の動作例を示したフローチャートである。 キャッシャブルファイル判定処理(厳密版ロジック)の動作例を示したフローチャートである。 キャッシャブルファイル判定処理(厳密版ロジック)の結果としてキャッシャブルファイルと共に記憶される付加情報の一例を示した図である。 キャッシャブルファイル判定処理(厳密版ロジック)の結果として記憶された付加情報との比較の対象であるトレースの一例を示した図である。 キャッシャブルファイル選択処理(厳密版ロジック)の動作例を示したフローチャートである。 キャッシャブルファイル選択処理(厳密版ロジック)の動作例を示したフローチャートである。 本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
まず、本発明の実施の形態の概要を説明する。
HTTPでは、キャッシュの仕組みとして、検証モデルと期限モデルとが定義されている。検証モデルの場合、クライアントはキャッシュされているファイルが有効かサーバに問い合わせ、サーバは、ファイルが有効であれば、有効であることを示すレスポンスを返すだけで、レスポンス対象のファイル(以下、「レスポンスファイル」という)を送らない。また、期限モデルでは、キャッシュされているファイルに有効期限が設定されているので、クライアントは、サーバに問い合わせることなく、ファイルが有効かを判断する。従って、この何れのモデルにおいても、キャッシュされたファイルが有効な場合は、ネットワークトレース(以下、単に「トレース」という)にレスポンスファイルが含まれないこととなる。問題は、レスポンスファイルなしでは、画面イメージをトレースから完全には再現できない、ということである。
ここで、ブラウザやプロキシにキャッシュされているレスポンスファイルも、元をただせば同じサーバから送出されたファイルである。トレースを連続的に取得している限り、トレースを遡って検索すればレスポンスファイルは見つかるはずである。
しかしながら、長時間に亘って取得したトレースをすべて保管し、必要に応じてその中を検索するという方法は、保管容量が膨らむこと、検索時間が長くなり画面再現のレスポンス時間が長くなること等のデメリットがあるので、よい解決法とは言えない。
そこで、本実施の形態では、次のように問題を解決した。
即ち、トレースからキャッシャブルファイルを抽出し、保管しておく。その後、あるユーザがある時間に表示した画面を再現する際に、画面再現に必要なキャッシャブルファイルがその時間のトレースに含まれていなければ、保管しておいたキャッシャブルファイルから適切なものを取り出し、それを利用する。ここで、キャッシャブルファイルとは、予め定めた基準によって、キャッシュされるであろうと判断されるレスポンスファイルのことである。例えば、キャッシュされるファイルをサーバが送出する際、そのファイルを送出するためのHTTPパケットのヘッダには、そのファイルがキャッシュされてもよいことを示す情報が含まれるので、このような情報が含まれることを上記基準として採用すればよい。また、キャッシャブルファイルを保管する際には、HTTPパケットのヘッダ内の関連する情報もあわせて保管し、キャッシャブルファイルを適切に選択するために利用する。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
[第1の実施の形態]
図1は、第1の実施の形態が適用されるコンピュータシステムの構成を示したブロック図である。
図示するように、コンピュータシステムは、ウェブシステム10と、クライアント20と、クライアント30と、画面再現装置40とが、インターネット等のネットワーク80に接続されることにより構成されている。特に、クライアント20は、代理サーバであるプロキシ70を経由してネットワーク80に接続されているものとする。
ウェブシステム10は、クライアントにインストールされたブラウザからの要求に応じてサービスを提供するサーバ上のシステムであり、本実施の形態ではモニタ対象となるシステムである。
クライアント20,30は、ユーザが使用する端末装置である。このうち、クライアント20は、一般ユーザがウェブシステム10を利用する際に使用する端末装置である。図では、1つのクライアント20しか示していないが、複数のクライアント20が接続されていてもよく、その場合、クライアント20というときはそのうちの1つを指すものとする。また、本明細書において、単に「ユーザ」というときは、クライアント20を使用する一般ユーザのことを指すものとする。一方、クライアント30は、クライアント20に表示された画面を再現するために特定ユーザが使用する端末装置である。
画面再現装置40は、あるユーザがある時間にクライアント20に表示した画面をクライアント30で再現するための処理を行う装置である。この第1の実施の形態では、トレースをキャプチャしながらトレースからキャッシャブルファイルを抽出して保管し、あるユーザがある時間に表示した画面の部品がトレースに存在しない場合に、保管したキャッシャブルファイルを利用して画面を再現する。尚、以下では、クライアント30からの画面の再現の要求に応じて、画面を再現しクライアント30に出力するものとして説明するが、自身のユーザインターフェイスからの画面の再現の要求に応じて、画面を再現し自身が表示するようにしてもよい。
ここで、画面再現装置40の機能構成について詳細に説明する。
図示するように、画面再現装置40は、キャプチャ部41と、キャッシャブルファイル判定部42と、トレース分類部43と、トレース記憶部44と、レスポンスファイル抽出部46と、レスポンスファイル送出部47と、キャッシャブルファイル管理部48と、キャッシャブルファイル記憶部49とを備える。このうち、キャプチャ部41、キャッシャブルファイル判定部42、トレース分類部43、レスポンスファイル抽出部46、レスポンスファイル送出部47、キャッシャブルファイル管理部48は、CPU90a(図14参照)がプログラムを磁気ディスク装置90g(図14参照)からメインメモリ90c(図14参照)に読み込んで実行することにより、実現される。また、トレース記憶部44、キャッシャブルファイル記憶部49は、例えば磁気ディスク装置90g(図14参照)によって実現される。
キャプチャ部41は、ネットワーク80上のトラフィックのトレースを取得する。尚、トレースは、図中斜線で示したミラーポート又はTAP接続により取得する。
キャッシャブルファイル判定部42は、キャプチャ部41が取得したトレース内のHTTPレスポンスパケット(以下、「レスポンスパケット」という)を解析し、このレスポンスパケットに含まれるレスポンスファイルがキャッシャブルかどうかを判定する。そして、キャッシャブルと判定すれば、レスポンスパケットからレスポンスヘッダとレスポンスファイルとを抽出してキャッシャブルファイル管理部48に送る。尚、本明細書では、レスポンスパケットのメッセージヘッダを「レスポンスヘッダ」と称し、これには、HTTPで定義された一般ヘッダやエンティティヘッダも含まれる。本実施の形態では、ファイルの一例として、レスポンスファイルを用いており、ファイルを抽出する抽出部の一例として、キャッシャブルファイル判定部42を設けている。
トレース分類部43は、キャプチャ部41が取得したネットワーク80上のトレースをクライアント20ごとに分類し、複数のトレースファイルを作成する。ここで、トレースファイルの作成は、キャプチャ部41によるトレースのキャプチャ中に連続的に行ってもよいし、再現対象の画面が表示されたクライアント20を選択してプル形式で行ってもよい。
トレース記憶部44は、トレース分類部43が作成した複数のトレースファイルを記憶する。本実施の形態では、トレースデータを蓄積する蓄積部の一例として、トレース記憶部44を設けている。
レスポンスファイル抽出部46は、トレース記憶部44に記憶されたトレースファイルからHTTPリクエストパケット(以下、「リクエストパケット」という)とレスポンスパケットとを抽出し保持しておく。そして、レスポンスパケットから、クライアント20のブラウザに送られたレスポンスファイルを抽出する。また、クライアント20でユーザが表示した画面を例えばリクエストパケットにより特定してユーザに提示する処理も行う。
レスポンスファイル送出部47は、クライアント30から要求されたレスポンスファイルがレスポンスファイル抽出部46によって抽出されている場合には、その抽出されたレスポンスファイルをクライアント30に送出する。また、クライアント30から要求されたレスポンスファイルがレスポンスファイル抽出部46によって抽出されておらず、レスポンスファイル抽出部46が保持するレスポンスパケット内のステータスコードが「304(Not Modified)」である場合には、キャッシャブルファイル管理部48を通して、キャッシャブルファイル記憶部49から適切なキャッシャブルファイルを選択し、これをレスポンスファイルとしてクライアント30に送出する。その際、レスポンスファイル送出部47は、レスポンスファイルにおいてウェブシステム10内のURL(Uniform Resource Locator)を参照している部分を、画面再現装置40を参照するように書き換える書き換え処理も行う。尚、クライアント30のブラウザでファイルが不用意にキャッシュされることを防止するため、レスポンスファイル送出部47が送出するレスポンスパケットにおいて、レスポンスヘッダには、念のため「Cache-Control:no-cache」を含めておくとよい。本実施の形態では、画面の再現の要求を受け付ける受付部の一例として、レスポンスファイル送出部47を設けている。
キャッシャブルファイル管理部48は、キャッシャブルファイル判定部42から受け取ったレスポンスファイルの本体を、同じくキャッシャブルファイル判定部42から受け取ったレスポンスヘッダ内の付加情報と共にキャッシャブルファイル記憶部49に記憶する。また、レスポンスファイル送出部47からの要求に応じて、レスポンスファイルとして送出すべきキャッシャブルファイルをキャッシャブルファイル記憶部49から選択する。本実施の形態では、ファイルを出力する出力部の一例として、キャッシャブルファイル管理部48を設けている。
キャッシャブルファイル記憶部49は、キャッシャブルファイルを付加情報と共に記憶する。本実施の形態では、ファイルを記憶する記憶部の一例として、キャッシャブルファイル記憶部49を設けている。
次に、第1の実施の形態における画面再現装置40の動作について詳細に説明する。
図2は、画面再現装置40がキャッシャブルファイルを保存するときの動作例を示したフローチャートである。尚、一般ユーザがクライアント20のブラウザからネットワーク80を介してウェブシステム10に接続し、ウェブシステム10を使用している状態で、このフローチャートの動作は開始するものとする。
画面再現装置40では、図2に示すように、まず、キャプチャ部41が、ネットワーク80上のトラフィックのトレースを取得する(ステップ401)。この場合、トレースは、ネットワーク80上のスイッチのミラーポートを使用したり、ネットワーク80にTAPを挿入したりすることによって、取得すればよい。
次に、キャッシャブルファイル判定部42は、トレース内のレスポンスパケットを解析し、レスポンスパケットに含まれるレスポンスファイルがキャッシャブルかどうかを判定するキャッシャブルファイル判定処理を行う(ステップ402)。尚、このキャッシャブルファイル判定処理では、レスポンスファイルがキャッシュされ得ると判断するための条件として予め定められた条件を満たしているかどうかを判定するが、その詳細については後述する。
そして、キャッシャブルファイル判定部42は、キャッシャブルファイル判定処理の結果がキャッシャブルであることを示しているかどうかを判定する(ステップ403)。
その結果、キャッシャブルファイル判定処理の結果がキャッシャブルであることを示していない場合、キャッシャブルファイル判定部42は、そのまま制御をトレース分類部43に渡す。この場合、トレースには複数のクライアント20のトラフィックが混ざっているので、トレース分類部43は、クライアント20ごとに分類したトレースファイルを作成する(ステップ404)。そして、クライアント20ごとに分類したトレースファイルをトレース記憶部44に保存する(ステップ405)。
一方、キャッシャブルファイル判定処理の結果がキャッシャブルであることを示している場合、キャッシャブルファイル判定部42は、トレース内のレスポンスパケットからレスポンスファイルとレスポンスヘッダとを抽出し、キャッシャブルファイル管理部48を通して、レスポンスファイル本体とレスポンスヘッダ内の付加情報とをキャッシャブルファイル記憶部49に記憶する(ステップ406)。具体的には、キャッシャブルファイル判定部42が、抽出したレスポンスファイルとレスポンスヘッダとをキャッシャブルファイル管理部48に送る。そして、キャッシャブルファイル管理部48が、レスポンスヘッダから必要な付加情報を取り出し、キャッシャブルファイル本体と付加情報とをキャッシャブルファイル記憶部49に記憶する。或いは、キャッシャブルファイル判定部42が、トレース内のレスポンスパケットから、レスポンスファイルと、レスポンスヘッダ内の必要な付加情報とを抽出し、これらをキャッシャブルファイル管理部48に送り、キャッシャブルファイル管理部48が、これらの情報をキャッシャブルファイル記憶部49に記憶するようにしてもよい。
その後、キャッシャブルファイル判定部42は、制御をトレース分類部43に渡す。この場合、トレースには複数のクライアント20のトラフィックが混ざっているので、トレース分類部43は、クライアント20ごとに分類したトレースファイルを作成する(ステップ404)。そして、クライアント20ごとに分類したトレースファイルをトレース記憶部44に保存する(ステップ405)。
図3,4は、画面再現装置40が画面を再生するときの動作例を示したフローチャートである。尚、クライアント20で表示された画面を再現したい特定ユーザが、クライアント30のブラウザから画面再現装置40にアクセスすることにより、このフローチャートの動作は開始するものとする。
画面再現装置40では、図3に示すように、まず、レスポンスファイル抽出部46が、画面再現に用いるトレースファイルをトレース記憶部44から選択する(ステップ411)。具体的には、あるユーザがある時間に表示した画面を再現したい旨の情報をクライアント30から受け付け、そのユーザがその時間に使用していたクライアント20のトレースファイルのその時間の部分をトレース記憶部44から読み出す。本実施の形態では、ユーザのウェブシステム10に対するログインからログアウトまでを単位としてトレースを管理しているので、あるクライアント20のトレースファイルのある時間の部分には、1人のユーザの操作に関するトレースのみが含まれることになる。
次に、レスポンスファイル抽出部46は、選択したトレースファイルから、クライアント20のブラウザに送信されたレスポンスファイルを抽出する(ステップ412)。この場合、例えば、トレースファイルからリクエストパケットとレスポンスパケットとを抽出して保持しておき、このうちレスポンスパケットからレスポンスファイルを抽出すればよい。尚、ここでいうレスポンスファイルには、画面に対応するHTMLファイルと、このHTMLファイルにエンベッドされるエンベッドファイルとが含まれる。
ところで、上述したように、トレースファイルには、クライアント20におけるユーザの一連の操作による複数の画面が含まれている。そこで、レスポンスファイル抽出部46は、これら複数の画面のうちのどの画面を再現するのかを選択させる画面選択用画面を生成し、この画面選択用画面をクライアント30のブラウザに送出する(ステップ413)。
これにより、クライアント30のブラウザには、画面選択用画面が表示される。ここで、画面選択用画面には、例えば、ユーザが一連の操作によって表示した画面に対応するHTMLファイルのリストが含まれている。従って、画面を再現したい特定ユーザは、そのリストに含まれるHTMLファイルの中から、再現したい画面に対応するHTMLファイルを選択することになる。
すると、クライアント30のブラウザは、選択されたHTMLファイルのリクエストを画面再現装置40に送信する。
これにより、画面再現装置40では、レスポンスファイル送出部47が、HTMLファイルのリクエストを受信する(ステップ414)。
そして、レスポンスファイル送出部47は、レスポンスファイル抽出部46が抽出したレスポンスファイルの中から、このリクエストの対象であるHTMLファイルを検索し(ステップ415)、検索が成功したかどうかを判定する(ステップ416)。
その結果、検索が成功した場合、即ち、レスポンスファイル抽出部46が抽出したレスポンスファイルの中に目的のHTMLファイルがあった場合、レスポンスファイル送出部47は、そのHTMLファイルを選択する(ステップ417)。そして、HTMLファイルの書き換え処理を行う(ステップ418)。ここで、書き換え処理とは、HTMLファイル内でURLを参照している部分を検索し、参照先がウェブシステム10であれば、画面再現装置40を参照するように書き換える処理である。その後、レスポンスファイル送出部47は、書き換え処理後のHTMLファイルをクライアント30に送出する(ステップ419)。
一方、検索が成功しなかった場合、即ち、レスポンスファイル抽出部46が抽出したレスポンスファイルの中に目的のHTMLファイルがなかった場合、レスポンスファイル送出部47は、レスポンスファイル抽出部46が保持しているリクエストパケットのうち目的のHTMLファイルを要求するリクエストパケットに対応するレスポンスパケットが、ステータスコード「304(Not Modified)」を含むかどうかを判定する(ステップ421)。
ここで、ステータスコード「304(Not Modified)」を含むと判定した場合、レスポンスファイル送出部47は、制御をキャッシャブルファイル管理部48に渡す。そして、キャッシャブルファイル管理部48が、キャッシャブルファイル記憶部49に記憶されたキャッシャブルファイルの中から適切なキャッシャブルファイルを選択するキャッシャブルファイル選択処理を行う(ステップ422)。尚、このキャッシャブルファイル選択処理では、キャッシャブルファイルが画面の再現に用いるのに適切であると判断するための条件として予め定められた条件を満たしているかどうかを判定するが、その詳細については後述する。
そして、レスポンスファイル送出部47は、キャッシャブルファイル管理部48から適切なキャッシャブルファイルがあった旨の情報が返されたかどうかを判定する(ステップ423)。
ここで、適切なキャッシャブルファイルがあった旨の情報が返されたと判定した場合、レスポンスファイル送出部47は、キャッシャブルファイル管理部48が適切と判定したキャッシャブルファイルであるHTMLファイルを選択する(ステップ424)。そして、HTMLファイルの書き換え処理を行う(ステップ418)。ここで、書き換え処理とは、HTMLファイル内でURLを参照している部分を検索し、参照先がウェブシステム10であれば、画面再現装置40を参照するように書き換える処理である。その後、レスポンスファイル送出部47は、書き換え処理後のHTMLファイルをクライアント30に送出する(ステップ419)。
このようにして送られてきたHTMLファイルはクライアント30のブラウザに表示される。すると、クライアント30のブラウザは、そのHTMLファイル内に埋め込まれたURL参照に基づいて、エンベッドファイルのリクエストを画面再現装置40に送信する。
これにより、画面再現装置40では、図4に示すように、レスポンスファイル送出部47が、エンベッドファイルのリクエストを受信する(ステップ434)。
そして、レスポンスファイル送出部47は、レスポンスファイル抽出部46が抽出したレスポンスファイルの中から、このリクエストの対象であるエンベッドファイルを検索し(ステップ435)、検索が成功したかどうかを判定する(ステップ436)。
その結果、検索が成功した場合、即ち、レスポンスファイル抽出部46が抽出したレスポンスファイルの中に目的のエンベッドファイルがあった場合、レスポンスファイル送出部47は、そのエンベッドファイルを選択する(ステップ437)。そして、エンベッドファイルをクライアント30に送出する(ステップ439)。
一方、検索が成功しなかった場合、即ち、レスポンスファイル抽出部46が抽出したレスポンスファイルの中に目的のエンベッドファイルがなかった場合、レスポンスファイル送出部47は、レスポンスファイル抽出部46が保持しているリクエストパケットの中に、目的のエンベッドファイルを要求するリクエストパケットがあるかどうかを判定する(ステップ440)。期限モデルの場合、リクエストパケット自体がトレースに存在しないことがあるので、このような判断を行っている。そして、目的のエンベッドファイルを要求するリクエストパケットがないと判定すれば、そのままステップ442へ進む。また、目的のエンベッドファイルを要求するリクエストパケットがあると判定すれば、そのリクエストパケットに対応するレスポンスパケットが、ステータスコード「304(Not Modified)」を含むかどうかを判定する(ステップ441)。
ここで、ステータスコード「304(Not Modified)」を含むと判定した場合、又は、ステップ440でリクエストパケットがないと判定した場合、レスポンスファイル送出部47は、制御をキャッシャブルファイル管理部48に渡す。そして、キャッシャブルファイル管理部48が、キャッシャブルファイル記憶部49に記憶されたキャッシャブルファイルの中から適切なキャッシャブルファイルを選択するキャッシャブルファイル選択処理を行う(ステップ442)。尚、このキャッシャブルファイル選択処理では、キャッシャブルファイルが画面の再現に用いるのに適切であると判断するための条件として予め定められた条件を満たしているかどうかを判定するが、その詳細については後述する。
そして、レスポンスファイル送出部47は、キャッシャブルファイル管理部48から適切なキャッシャブルファイルがあった旨の情報が返されたかどうかを判定する(ステップ443)。
ここで、適切なキャッシャブルファイルがあった旨の情報が返されたと判定した場合、レスポンスファイル送出部47は、キャッシャブルファイル管理部48が適切と判定したキャッシャブルファイルであるエンベッドファイルを選択する(ステップ444)。そして、エンベッドファイルをクライアント30に送出する(ステップ439)。
これにより、エンベッドファイルがクライアント30のブラウザで受信される。そして、ブラウザの機能によりエンベッドファイルがHTMLファイルに埋め込まれると、クライアント20に表示されたのと同じ画面が表示され、一画面分の画面再現が完了する。
尚、ステップ421又はステップ441でステータスコード「304(Not Modified)」を含まないと判定された場合としては、例えば、ウェブシステム10でエラーが発生したこと等により、「200(OK)」でも「304(Not Modified)」でもないステータスコードがトレースに記録されたような場合が考えられる。このような場合、レスポンスファイル送出部47は、トレースに記録されたのと同じステータスコードをセットしたレスポンスパケット(HTMLファイルなし)を、クライアント30のブラウザに送出し(ステップ445)、処理を終了する。
HTMLファイルなしの異常ステータスコードがどのように表示されるかはブラウザによるが、クライアント20のブラウザでユーザが見た画面と同じ意味を持つ画面がクライアント30に表示されることになる。
或いは、ステップ421又はステップ441でステータスコード「304(Not Modified)」を含まないと判定される場合としては、例えば、ウェブシステム10は正常に動作しているものの、画面再現装置40のエラーによるパケットロス等で正しくファイルを取り出せないような場合も考えられる。具体的には、ステータスコード「200(OK)」なのにレスポンスファイルがない、もしくは更に悪く、リクエストパケットに対応するレスポンスパケットがない、といった場合である。このような場合、レスポンスファイル送出部47は、「再現を要求された画面はトレースのエラーにより再現不能」といったエラー画面をクライアント30のブラウザに送出するとよい。
また、ステップ423又はステップ443で適切なキャッシャブルファイルがあった旨の情報が返されなかったと判定された場合、レスポンスファイル送出部47は、ステータスコード「404(Not Found)」を含むレスポンスパケットをクライアント30に送出し(ステップ446)、処理を終了する。
これにより、クライアント30のブラウザには、キャッシャブルファイルが見つからなかった部分が空白となった画面が表示される。厳密には画面再現が正常に表示できたとは言えないかもしれないが、たとえ不完全だとしてもどのような画面だったかを確認したいときには有効である。
或いは、ステップ423又はステップ443で適切なキャッシャブルファイルがあった旨の情報が返されなかったと判定された場合、レスポンスファイル送出部47は、「画面再現に必要なファイルが足りないために正常な画面再現が行えない」といったエラー画面をクライアント30のブラウザに送出してもよい。これは、画面が再現できなかったことを厳密に確認したいときに有効となる。
[第2の実施の形態]
図5は、第2の実施の形態が適用されるコンピュータシステムの構成を示したブロック図である。
図示するように、コンピュータシステムは、ウェブシステム10と、クライアント20と、クライアント30と、画面再現装置40とが、インターネット等のネットワーク80に接続されることにより構成されている。特に、クライアント20は、代理サーバであるプロキシ70を経由してネットワーク80に接続されているものとする。
ウェブシステム10、クライアント20,30については、第1の実施の形態で述べたのと同様であるので、ここでの説明は省略する。
画面再現装置40は、あるユーザがある時間にクライアント20に表示した画面をクライアント30で再現するための処理を行う装置である。この第2の実施の形態では、キャプチャして記憶されたトレースから適切なタイミングでキャッシャブルファイルを抽出して保管し、あるユーザがある時間に表示した画面の部品がトレースに存在しない場合に、保管したキャッシャブルファイルを利用して画面を再現する。尚、以下では、クライアント30からの画面の再現の要求に応じて、画面を再現しクライアント30に出力するものとして説明するが、自身のユーザインターフェイスからの画面の再現の要求に応じて、画面を再現し自身が表示するようにしてもよい。
ここで、画面再現装置40の機能構成について詳細に説明する。
図示するように、画面再現装置40は、キャプチャ部41と、キャッシャブルファイル判定部42と、トレース分類部43と、トレース記憶部44と、トレース管理部45と、レスポンスファイル抽出部46と、レスポンスファイル送出部47と、キャッシャブルファイル管理部48と、キャッシャブルファイル記憶部49とを備える。このうち、キャプチャ部41、キャッシャブルファイル判定部42、トレース分類部43、トレース管理部45、レスポンスファイル抽出部46、レスポンスファイル送出部47、キャッシャブルファイル管理部48は、CPU90a(図14参照)がプログラムを磁気ディスク装置90g(図14参照)からメインメモリ90c(図14参照)に読み込んで実行することにより、実現される。また、トレース記憶部44、キャッシャブルファイル記憶部49は、例えば磁気ディスク装置90g(図14参照)によって実現される。
キャプチャ部41は、ネットワーク80上のトラフィックのトレースを取得する。尚、トレースは、図中斜線で示したミラーポート又はTAP接続により取得する。
トレース分類部43は、キャプチャ部41が取得したネットワーク80上のトレースをクライアント20ごとに分類し、複数のトレースファイルを作成する。ここで、トレースファイルの作成は、キャプチャ部41によるトレースのキャプチャ中に連続的に行ってもよいし、再現対象の画面が表示されたクライアント20を選択してプル形式で行ってもよい。
トレース記憶部44は、トレース分類部43が作成した複数のトレースファイルを記憶する。本実施の形態では、トレースデータを蓄積する蓄積部の一例として、トレース記憶部44を設けている。
トレース管理部45は、トレース記憶部44に記憶されたトレースファイルのどの部分までキャッシャブルファイル判定部42による判定処理が行われているかを管理する。そして、キャッシャブルファイル判定部42による判定処理が行われていないトレースを適切なタイミングで読み出す。
キャッシャブルファイル判定部42は、トレース管理部45が読み出したトレース内のレスポンスパケットを解析し、このレスポンスパケットに含まれるレスポンスファイルがキャッシャブルかどうかを判定する。そして、キャッシャブルと判定すれば、レスポンスパケットからレスポンスヘッダとレスポンスファイルとを抽出してキャッシャブルファイル管理部48に送る。本実施の形態では、ファイルの一例として、レスポンスファイルを用いており、ファイルを抽出する抽出部の一例として、キャッシャブルファイル判定部42を設けている。
レスポンスファイル抽出部46、レスポンスファイル送出部47、キャッシャブルファイル管理部48、キャッシャブルファイル記憶部49については、第1の実施の形態で述べたのと同様であるので、ここでの説明は省略する。
次に、第2の実施の形態における画面再現装置40の動作について詳細に説明する。
まず、一般ユーザがクライアント20のブラウザからネットワーク80を介してウェブシステム10に接続し、ウェブシステム10を使用しているものとする。この状態で、キャプチャ部41が、ネットワーク80上のトラフィックのトレースを取得する。この場合、トレースは、ネットワーク80上のスイッチのミラーポートを使用したり、ネットワーク80にTAPを挿入したりすることによって、取得すればよい。トレースには複数のクライアント20のトラフィックが混ざっているので、トレース分類部43は、クライアント20ごとに分類したトレースファイルを作成する。そして、クライアント20ごとに分類したトレースファイルをトレース記憶部44に保存する。
その後、画面再現装置40は、適切なタイミングで、バッチ処理によりキャッシャブルファイルを保存する。尚、適切なタイミングの例としては、処理対象のトレースがそれほど多くなければ、画面再現装置40の使用開始時が挙げられる。即ち、画面再現装置40のユーザが画面再現装置40の使用開始時等に手動でバッチ処理を起動するとよい。或いは、画面再現装置40が連続的に稼働しておりトレースが多くなるのであれば、毎晩一定時刻というタイミングも考えられる。この場合は、毎晩一定時刻に画面再現装置40を自動起動してバッチ処理を行い、当日のトレースから画面再生する際に当日分のトレースについてのバッチ処理を追加で行えばよい。
図6は、画面再現装置40がキャッシャブルファイルを保存するときの動作例を示したフローチャートである。尚、上記バッチ処理が起動されることにより、このフローチャートの動作は開始するものとする。
画面再現装置40では、図6に示すように、まず、トレース管理部45が、トレース記憶部44から、キャッシャブルファイル判定部42による判定処理を行っていないトレースを順次読み出す(ステップ451)。
次に、キャッシャブルファイル判定部42は、トレース内のレスポンスパケットを解析し、レスポンスパケットに含まれるレスポンスファイルがキャッシャブルかどうかを判定するキャッシャブルファイル判定処理を行う(ステップ452)。尚、このキャッシャブルファイル判定処理では、レスポンスファイルがキャッシュされ得ると判断するための条件として予め定められた条件を満たしているかどうかを判定するが、その詳細については後述する。
そして、キャッシャブルファイル判定部42は、キャッシャブルファイル判定処理の結果がキャッシャブルであることを示しているかどうかを判定する(ステップ453)。
その結果、キャッシャブルファイル判定処理の結果がキャッシャブルであることを示していない場合、キャッシャブルファイル判定部42は、そのまま制御をトレース管理部45に戻す。すると、トレース管理部45は、次回のバッチ処理で継続して処理できるように、キャッシャブルファイル判定部42により判定処理済のトレースの部分が分かるようにする(ステップ454)。例えば、どの時刻のトレースまで処理が終わったかを記録すればよい。
一方、キャッシャブルファイル判定処理の結果がキャッシャブルであることを示している場合、キャッシャブルファイル判定部42は、トレース内のレスポンスパケットからレスポンスファイルとレスポンスヘッダとを抽出し、キャッシャブルファイル管理部48を通して、レスポンスファイル本体とレスポンスヘッダ内の付加情報とをキャッシャブルファイル記憶部49に記憶する(ステップ456)。具体的には、キャッシャブルファイル判定部42が、抽出したレスポンスファイルとレスポンスヘッダとをキャッシャブルファイル管理部48に送る。そして、キャッシャブルファイル管理部48が、レスポンスヘッダから必要な付加情報を取り出し、キャッシャブルファイル本体と付加情報とをキャッシャブルファイル記憶部49に記憶する。或いは、キャッシャブルファイル判定部42が、トレース内のレスポンスパケットから、レスポンスファイルと、レスポンスヘッダ内の必要な付加情報とを抽出し、これらをキャッシャブルファイル管理部48に送り、キャッシャブルファイル管理部48が、これらの情報をキャッシャブルファイル記憶部49に記憶するようにしてもよい。
その後、キャッシャブルファイル判定部42は、制御をトレース管理部45に戻す。すると、トレース管理部45は、次回のバッチ処理で継続して処理できるように、キャッシャブルファイル判定部42により判定処理済のトレースの部分が分かるようにする(ステップ454)。例えば、どの時刻のトレースまで処理が終わったかを記録すればよい。
尚、画面再現装置40が画面を再生するときの動作は、図3,4のフローチャートに示したものと同様であるので、説明を省略する。
[キャッシャブルファイル判定処理及びキャッシャブルファイル選択処理]
次に、図2のステップ402と図6のステップ452におけるキャッシャブルファイル判定処理、及び、図3のステップ422と図4のステップ442におけるキャッシャブルファイル選択処理について、詳細に説明する。
ここで、キャッシャブルファイル判定処理及びキャッシャブルファイル選択処理には、簡易版ロジックと厳密版ロジックとがある。
ウェブシステム10によっては、キャッシャブルファイルが、追加や削除はされることがあっても更新されることはなく、かつ、全てのユーザにより共通に使用されることが保証されている場合がある。即ち、キャッシャブルファイルのバージョンコントロールが不要であり、同一のURI(Uniform Resource Identifier)で示されるキャッシャブルファイルが1個又は0個である場合である。このような場合は、簡易版ロジックで十分である。
一方で、キャッシャブルファイルが、追加や削除だけでなく更新されることがあったり、ユーザごとにその内容が異なったりする場合がある。即ち、時間によって複数のバージョンのキャッシャブルファイルが存在する場合、又は、同一のURIで示されるキャッシャブルファイルがユーザによって異なる場合である。このような場合は、厳密版ロジックを用いる必要がある。
(簡易版ロジック)
第一に、キャッシャブルファイル判定処理の簡易版ロジックについて説明する。
図7は、この場合のキャッシャブルファイル判定処理の動作例を示したフローチャートである。
図7に示すように、まず、キャッシャブルファイル判定部42は、レスポンスファイルのファイルタイプを検査する(ステップ501)。
そして、レスポンスファイルのファイルタイプが特定のファイルタイプと一致するかどうかを判定する(ステップ502)。キャッシュされ得るレスポンスファイルのファイルタイプは、スタイルシート(CSS)や画像ファイル(png, gif)であるので、特定のファイルタイプとしては、これらのファイルタイプを採用すればよい。
その結果、レスポンスファイルのファイルタイプが特定のファイルタイプと一致すると判定されれば、キャッシャブルファイル判定部42は、レスポンスファイルをキャッシャブルファイルであると判定する(ステップ503)。
一方、レスポンスファイルのファイルタイプが特定のファイルタイプと一致しないと判定されれば、キャッシャブルファイル判定部42は、レスポンスファイルをキャッシャブルファイルでないと判定する(ステップ504)。
ところで、この簡易版ロジックでは、ファイルタイプのみに基づいてキャッシャブルファイルであるかどうかを判定しているので、キャッシャブルでないファイルを誤ってキャッシャブルと判定し記憶してしまうことがあるかもしれない。
しかしながら、このようなことが起こったとしても、問題は生じない。キャッシャブルでないファイルは、画面再現のためのトレースに必ず含まれているはずなので、キャッシャブルと誤判定されて記憶されたファイルが使われることはないからである。従って、ウェブシステム10でキャッシャブルとして扱われる可能性のあるファイルのファイルタイプは全て特定のファイルタイプとして判定対象とすればよい。
尚、この簡易版ロジックにおいて、キャッシャブルファイル判定部42は、既にキャッシャブルファイルとして記憶されているファイルのURL及びファイル名と同じURL及びファイル名を持つファイルがトレースから見つかった場合、この見つかったファイルを重複して記憶する必要はない。
また、画面再現装置40からウェブシステム10上のファイルにアクセスできる場合には、ウェブシステム10上のスタティックファイルとみなせるファイルタイプのファイルを直接キャッシャブルファイル記憶部49にコピーしたり、ウェブシステム10上のファイルにリクエストに応じて直接アクセスしたりすることにより、このキャッシャブルファイル判定処理は更に容易に実装することができる。
さて、上記キャッシャブルファイル判定処理でキャッシャブルであると判定されたレスポンスファイルはキャッシャブルファイル記憶部49に保存される。簡易版ロジックにおいて、このとき最低限記憶すべきデータは、URI(ホスト名、パス、ファイル名)及びレスポンスファイル本体である。また、必須ではないが、レスポンスヘッダのContent-Typeフィールドの値を記憶してもよい。レスポンスヘッダのその他のフィールドについてはオプショナルである。
第二に、キャッシャブルファイル選択処理の簡易版ロジックについて説明する。
図8は、この場合のキャッシャブルファイル選択処理の動作例を示したフローチャートである。
図8に示すように、まず、キャッシャブルファイル管理部48は、キャッシャブルファイル記憶部49からキャッシャブルファイルを1つ読み出す(ステップ511)。
そして、キャッシャブルファイルに付加されているURIが、トレース内のリクエストパケットにおけるURI(ホスト名、パス、ファイル名)と一致するかどうかを判定する(ステップ512)。
その結果、これらのURIが一致すると判定されれば、キャッシャブルファイル管理部48は、ステップ511で読み出したキャッシャブルファイルを、選択すべきキャッシャブルファイルであると判定する(ステップ513)。
一方、これらのURIが一致しないと判定されれば、キャッシャブルファイル管理部48は、キャッシャブルファイル記憶部49に記憶された全てのキャッシャブルファイルについての処理が終了したかどうかを判定する(ステップ514)。そして、全てのキャッシャブルファイルについての処理が終了していないと判定されれば、ステップ511へ戻って、次のキャッシャブルファイルについて同様の処理を行う。また、全てのキャッシャブルファイルについての処理が終了したと判定されれば、キャッシャブルファイル管理部48は、選択すべきキャッシャブルファイルが存在しないと判定する(ステップ515)。
(厳密版ロジック)
第一に、キャッシャブルファイル判定処理の厳密版ロジックについて説明する。
図9は、この場合のキャッシャブルファイル判定処理の動作例を示したフローチャートである。
図9に示すように、まず、キャッシャブルファイル判定部42は、レスポンスファイルがキャッシャブルファイルでない場合の条件を、レスポンスヘッダのフィールドが満たすかどうかを検査する(ステップ551)。ここで、レスポンスファイルがキャッシャブルファイルでない場合の条件とは、レスポンスヘッダにCache-Controlフィールドがあり、その値がno-cache又はno-storeであるという条件、レスポンスヘッダにPragmaフィールドがあり、その値がno-cacheであるという条件、レスポンスヘッダにVaryフィールドがあり、その値が*であるという条件である。即ち、このステップでは、これらの何れかの条件が満たされるかどうかを検査する。
そして、この検査結果が条件を満たすことを示しているかどうかを判定する(ステップ552)。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル判定部42は、レスポンスファイルをキャッシャブルファイルでないと判定する(ステップ556)。
一方、ステップ552で条件を満たすことを示していると判定されなければ、キャッシャブルファイル判定部42は、レスポンスファイルがキャッシャブルファイルである場合の条件を、レスポンスヘッダのフィールドが満たすかどうかを検査する(ステップ553)。ここで、レスポンスファイルがキャッシャブルファイルである場合の条件とは、レスポンスヘッダにCache-Controlフィールドがあり、その値がpublic、private、max-age=#seconds、must-revalidate、s-maxageの何れかであるという条件、レスポンスヘッダにExpiresフィールドがあるという条件、レスポンスヘッダにETagフィールド又はLast-Modifiedフィールドがあるという条件、レスポンスヘッダにVaryフィールドがあり、その値が別のフィールド名であるという条件である。即ち、このステップでは、これらの何れかの条件が満たされるかどうかを検査する。
そして、この検査結果が条件を満たすことを示しているかどうかを判定する(ステップ554)。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル判定部42は、レスポンスファイルをキャッシャブルファイルであると判定する(ステップ555)。
一方、条件を満たすことを示していると判定されなければ、即ち、レスポンスファイルがキャッシャブルファイルでない場合の条件、レスポンスファイルがキャッシャブルファイルである場合の条件の何れも満たされていないと判定されれば、キャッシャブルファイル判定部42は、レスポンスファイルをキャッシャブルファイルでないと判定する(ステップ556)。
尚、この厳密版ロジックにおいて、キャッシャブルファイル判定部42は、既にキャッシャブルファイルとして記憶されているファイルのURL及びファイル名と同じURL及びファイル名を持つファイルがトレースから見つかった場合、上記で検査したフィールドの値が異なれば、この見つかったファイルを別のキャッシャブルファイルとして記憶し、上記で検査したフィールドの値が同じであれば、この見つかったファイルを重複して記憶しないようにすればよい。
さて、上記キャッシャブルファイル判定処理でキャッシャブルであると判定されたレスポンスファイルはキャッシャブルファイル記憶部49に保存される。
図10は、レスポンスファイル本体に加えて、キャッシャブルファイル記憶部49に記憶される付加情報の一例を示した図である。
図示するように、付加情報には、URI、TimeStamp、Cache-Control、Pragma、Expires、ETag、Last-Modified、Vary、ユーザIDが含まれる。
URIは、リクエストヘッダのHostフィールドのホスト名及びポート名と、リクエスト行のパス及びファイル名とを含む。尚、本明細書では、リクエストパケットのメッセージヘッダを「リクエストヘッダ」とするが、これには、HTTPで定義された一般ヘッダやエンティティヘッダも含まれる。
TimeStampは、画面再現装置40がレスポンスファイルを取得した日時であり、レスポンスヘッダのDateフィールドの値がセットされる。
Cache-Controlは、レスポンスヘッダのCache-Controlフィールドの値であり、Pragmaは、レスポンスヘッダのPragmaフィールドの値であり、Expiresは、レスポンスヘッダのExpiresフィールドの値であり、ETagは、レスポンスヘッダのETagフィールドの値であり、Last-Modifiedは、レスポンスヘッダのLast-Modifiedフィールドの値である。
Varyは、レスポンスヘッダのVaryフィールドの値であるフィールド名及びそのフィールド名のフィールドの値である。図中、「Fn=Vn」の「Fn」がフィールド名を、「Vn」がそのフィールド名のフィールドの値を示している(n=1,2,3,4,…)。
ユーザIDは、cache-controlフィールドの値がprivateである場合のみ有効であり、ユーザがクライアント30でログイン時に入力されたユーザIDがセットされる。
また、必須ではないが、レスポンスヘッダのContent-Typeフィールドの値を記憶してもよい。レスポンスヘッダのその他のフィールドについてはオプショナルである。
次に、このキャッシャブルファイルの付加情報と比較する対象であるトレースファイルについても説明しておく。
図11は、トレースファイルの内容の一例を示した図である。
(a)は、検証モデルが使用された場合のトレースの内容を示す。1行目に示すように、トレースには、開始行と、メッセージヘッダと、メッセージボディとが含まれる。そして、2行目はHTMLファイルに対するリクエストパケットであり、3行目はそのリクエストパケットに対応するレスポンスパケットである。ここで、3行目の開始行では、ステータスコード「304」が返されているので、ウェブシステム10からHTMLファイル本体は送られていないことが分かる。また、5行目はエンベッドファイルに対するリクエストパケットであり、6行目はそのリクエストパケットに対応するレスポンスパケットである。ここで、6行目の開始行では、ステータスコード「304」が返されているので、ウェブシステム10からエンベッドファイル本体は送られていないことが分かる。
(b)は、期限モデルが使用された場合のトレースの内容を示す。1行目に示すように、トレースには、開始行と、メッセージヘッダと、メッセージボディとが含まれる。そして、2行目はHTMLファイルに対するリクエストパケットであり、3行目はそのリクエストパケットに対応するレスポンスパケットである。ここで、3行目の開始行では、ステータスコード「304」が返されているので、ウェブシステム10からHTMLファイル本体は送られていないことが分かる。また、(b)では、(a)と異なり、エンベッドファイルに対するリクエストパケットが記録されていないので、ウェブシステム10に対してリクエストパケットが送られておらず、ウェブシステム10からエンベッドファイル本体が送られてもいないことが分かる。
尚、図において、メッセージヘッダについては、キャッシャブルファイル選択処理で使用するフィールドを主に示し、その他のフィールドについては記載を省略している。
また、図示していないが、トレースファイルには、あるユーザの一連の操作に関するトレースに対して、ユーザIDが関連付けて記録されているものとする。
第二に、キャッシャブルファイル選択処理の厳密版ロジックについて説明する。
図12,13は、この場合のキャッシャブルファイル選択処理の動作例を示したフローチャートである。
図12に示すように、まず、キャッシャブルファイル管理部48は、キャッシャブルファイル記憶部49からキャッシャブルファイルを1つ読み出す(ステップ561)。
そして、キャッシャブルファイルに付加されているURIが、トレース内のリクエストパケットにおけるURI(ホスト名、パス、ファイル名)と一致するかどうかを判定する(ステップ562)。
その結果、これらのURIが一致すると判定されれば、キャッシャブルファイル管理部48は、キャッシャブルファイル記憶部49に記憶された付加情報内の値とトレース内のリクエストヘッダのフィールドの値とで以下の比較を行う。
即ち、まず、キャッシャブルファイル管理部48は、Cache-Controlが付加情報にある場合に、その値が条件を満たすかどうかを検査する(ステップ563)。ここで、条件とは、その値がpublicであるという条件、その値がprivateであり、付加情報内のユーザIDとトレース内のユーザIDとが一致するという条件、その値がs-maxage=#secondsであり、付加情報内のTimeStampからトレース内のリクエストヘッダのDateフィールドで示される日時までの時間が#seconds以内であるという条件、その値がmax-age=#secondsであり、付加情報内のTimeStampからトレース内のリクエストヘッダのDateフィールドで示される日時までの時間が#seconds以内であるという条件、その値がmust-revalidateであるという条件である。即ち、このステップでは、これらの何れかの条件が満たされるかどうかを検査する。ここで、s-maxage及びmax-ageの値は、ファイルに設定されたファイルの有効性に関する情報の一例である。尚、Cache-Controlが付加情報にない場合は、条件が満たされている旨を検査結果にセットする。
そして、この検査結果が条件を満たすことを示しているかどうかを判定する(ステップ564)。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル管理部48は、ETagが付加情報にある場合に、その値が条件を満たすかどうかを検査する(ステップ565)。ここで、条件とは、その値がトレース内のリクエストヘッダのIf-None-Matchフィールドで示されるETagの値と一致するという条件である。即ち、このステップでは、この条件が満たされるかどうかを検査する。尚、ETagが付加情報にない場合は、条件が満たされている旨を検査結果にセットする。
そして、この検査結果が条件を満たすことを示しているかどうかを判定する(ステップ566)。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル管理部48は、Last-Modifiedが付加情報にある場合に、その値が条件を満たすかどうかを検査する(ステップ567)。ここで、条件とは、その値がトレース内のリクエストヘッダのLast-Modifiedフィールドの値と一致するという条件である。即ち、このステップでは、この条件が満たされるかどうかを検査する。尚、Last-Modifiedが付加情報にない場合は、条件が満たされている旨を検査結果にセットする。
そして、この検査結果が条件を満たすことを示しているかどうかを判定する(ステップ568)。
その結果、条件を満たすことを示していると判定されれば、図13に示すように、キャッシャブルファイル管理部48は、If-Modified-Sinceがトレース内のリクエストヘッダにある場合に、その値が条件を満たすかどうかを検査する(ステップ581)。ここで、条件とは、その値が付加情報内のLast-Modifiedで示される日時と等しいか又はその日時よりも古いという条件である。即ち、このステップでは、この条件が満たされるかどうかを検査する。尚、If-Modified-Sinceがトレース内のリクエストヘッダにない場合は、条件が満たされている旨を検査結果にセットする。
そして、この検査結果が条件を満たすことを示しているかどうかを判定する(ステップ582)。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル管理部48は、Expiresが付加情報にある場合に、その値が条件を満たすかどうかを検査する(ステップ583)。ここで、条件とは、その値がトレース内のリクエストヘッダのDateフィールドで示される日時よりも新しいという条件である。即ち、このステップでは、この条件が満たされるかどうかを検査する。ここで、Expiresの値は、ファイルに設定されたファイルの有効性に関する情報の一例である。尚、Expiresが付加情報にない場合は、条件が満たされている旨を検査結果にセットする。
ところで、Expiresが付加情報にある場合は、期限モデルによるキャッシュ制御が行われており、トレース内にエンベッドファイルに対するリクエストパケットが存在しないことがある。そうなると、上記Dateフィールドとして、エンベッドファイルに対するリクエストパケットのDateフィールドを用いることはできない。そこで、代用として、エンベッドファイルがエンベッドされるHTMLファイルに対するリクエストパケットのDateフィールドを用いることとする。図11(b)を例にとれば、4行目以降にエンベッドファイルに対するリクエストパケットがないので、2行目のHTMLファイルに対するリクエストパケットのDateフィールドを用いる。厳密には、HTMLファイルに対するリクエストパケットのDateフィールドの日時は、エンベッドファイルを要求した日時よりも若干早くなるが、期限モデルによるキャッシュ制御は本来厳密性を要求しない場合に行われるものなので、問題はないと考えられる。
尚、上記では、エンベッドファイルがエンベッドされるHTMLファイルに対するリクエストパケットのDateフィールドを用いることとしたが、対象の画面の再現に用いられる如何なるファイルに対するリクエストパケットのDateフィールドを用いてもよい。
そして、キャッシャブルファイル管理部48は、ステップ583の検査結果が条件を満たすことを示しているかどうかを判定する(ステップ584)。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル管理部48は、Varyが付加情報にある場合に、その値が条件を満たすかどうかを検査する(ステップ585)。ここで、条件とは、Varyで示されるフィールドの値がトレース内のリクエストヘッダのそのフィールドの値と一致するという条件である。即ち、このステップでは、この条件が満たされるかどうかを検査する。尚、Varyが付加情報にない場合は、条件が満たされている旨を検査結果にセットする。
そして、この検査結果が条件を満たすことを示しているかどうかを判定する(ステップ586)。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル管理部48は、ステップ561で読み出したキャッシャブルファイルを、選択すべきキャッシャブルファイルであると判定する(ステップ587)。
一方、図12のステップ562でURIが一致しないと判定された場合、図12のステップ564で条件を満たさないと判定された場合、図12のステップ566で条件を満たさないと判定された場合、図12のステップ568で条件を満たさないと判定された場合、図13のステップ582で条件を満たさないと判定された場合、図13のステップ584で条件を満たさないと判定された場合、図13のステップ586で条件を満たさないと判定された場合、キャッシャブルファイル管理部48は、キャッシャブルファイル記憶部49に記憶された全てのキャッシャブルファイルについての処理が終了したかどうかを判定する(ステップ588)。そして、全てのキャッシャブルファイルについての処理が終了していないと判定されれば、図12のステップ561へ戻って、次のキャッシャブルファイルについて同様の処理を行う。また、全てのキャッシャブルファイルについての処理が終了したと判定されれば、キャッシャブルファイル管理部48は、選択すべきキャッシャブルファイルが存在しないと判定する(ステップ589)。
以上、本発明の実施の形態について説明した。
このように、本実施の形態では、トレースからキャッシャブルファイルを抽出して保管し、その後、あるユーザがある時間に表示した画面を再現する際に、保管しておいたキャッシャブルファイルを利用するようにした。これにより、キャッシャブルファイルを保管するための記憶容量、画面再現時のキャッシャブルファイルの検索時間の双方を、実用的なものとすることが可能となった。
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図14は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるCPU(Central Processing Unit)90aと、M/B(マザーボード)チップセット90bを介してCPU90aに接続されたメインメモリ90cと、同じくM/Bチップセット90bを介してCPU90aに接続された表示機構90dとを備える。また、M/Bチップセット90bには、ブリッジ回路90eを介して、ネットワークインターフェイス90fと、磁気ディスク装置(HDD)90gと、音声機構90hと、キーボード/マウス90iと、フレキシブルディスクドライブ90jとが接続されている。
尚、図14において、各構成要素は、バスを介して接続される。例えば、CPU90aとM/Bチップセット90bの間や、M/Bチップセット90bとメインメモリ90cの間は、CPUバスを介して接続される。また、M/Bチップセット90bと表示機構90dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構90dがPCI Express対応のビデオカードを含む場合、M/Bチップセット90bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路90eと接続する場合、ネットワークインターフェイス90fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置90gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス90i、及び、フレキシブルディスクドライブ90jについては、USB(Universal Serial Bus)を用いることができる。
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
10…ウェブシステム、20,30…クライアント、40…画面再現装置、41…キャプチャ部、42…キャッシャブルファイル判定部、43…トレース分類部、44…トレース記憶部、45…トレース管理部、46…レスポンスファイル抽出部、47…レスポンスファイル送出部、48…キャッシャブルファイル管理部、49…キャッシャブルファイル記憶部

Claims (11)

  1. クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置であって、
    前記クライアントに前記画面が表示された複数の時点で当該画面を表示するために前記サーバから送信されたデータのうち、当該画面を表示するために用いられるファイルを伴うデータから、当該ファイルを抽出する抽出部と、
    前記抽出部により抽出された前記ファイルを記憶する記憶部と、
    前記複数の時点のうちの特定の時点で前記クライアントに表示された前記画面の再現の要求を受け付ける受付部と、
    前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが前記ファイルを含まない場合に、前記記憶部に記憶された前記ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する出力部と
    を含む、装置。
  2. 前記出力部は、前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが、キャッシュされている前記ファイルが有効であることを示すデータである場合に、前記記憶部に記憶された前記ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する、請求項1の装置。
  3. 前記出力部は、前記記憶部に記憶された前記ファイルに設定された当該ファイルの有効性に関する情報に基づいて、当該ファイルの有効性が前記特定の時点で失われていないと判断できる場合に、当該ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する、請求項2の装置。
  4. 前記ファイルは、前記画面の部品を表示するために用いられ、
    前記受付部は、前記特定の時点で前記クライアントに表示された前記部品の再現の要求を受け付け、
    前記出力部は、前記特定の時点で前記部品の表示を要求するデータが前記サーバへ送信されていない場合に、前記記憶部に記憶された前記ファイルを、前記受付部にて受け付けた前記部品の再現の要求に応じて出力する、請求項1乃至3の何れかの装置。
  5. 前記出力部は、前記記憶部に記憶された前記ファイルに設定された当該ファイルの有効性に関する情報に基づいて、当該ファイルの有効性が、前記画面の前記部品以外の部分の表示を要求するデータが前記サーバへ送信された時点で失われていないと判断できる場合に、当該ファイルを、前記受付部にて受け付けた前記部品の再現の要求に応じて出力する、請求項4の装置。
  6. 前記抽出部は、前記ファイルのタイプが予め定められたタイプである場合に、当該ファイルを伴うデータから、当該ファイルを抽出する、請求項1乃至5の何れかの装置。
  7. 前記抽出部は、前記ファイルを伴うデータが、当該ファイルがキャッシュされ得ることを示す情報として予め定められた情報を含む場合に、当該データから当該ファイルを抽出する、請求項1乃至5の何れかの装置。
  8. クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置であって、
    前記クライアントに前記画面が表示された複数の時点で当該画面を表示するために前記サーバから送信されたデータであって、当該画面を表示するために用いられるファイルを伴うデータを含むネットワーク上のトレースデータを蓄積する蓄積部と、
    前記蓄積部に前記トレースデータが蓄積される際に、前記ファイル及び前記ファイルを伴うデータの少なくとも何れか一方が、当該ファイルがキャッシュされ得ると判断するための条件として予め定められた条件を満たしていれば、当該トレースデータに含まれる当該ファイルを伴うデータから、当該ファイルを抽出する抽出部と、
    前記抽出部により抽出された前記ファイルを記憶する記憶部と、
    前記複数の時点のうちの特定の時点で前記クライアントに表示された前記画面の再現の要求を受け付ける受付部と、
    前記蓄積部に蓄積された前記トレースデータに含まれるデータのうち、前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが、前記ファイルを含まず、キャッシュされている前記ファイルが有効であることを示す場合に、前記記憶部に記憶された前記ファイルに設定された当該ファイルの有効性に関する情報に基づいて、当該ファイルの有効性が前記特定の時点で失われていないと判断できれば、当該ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する出力部と
    を含む、装置。
  9. クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置であって、
    前記クライアントに前記画面が表示された複数の時点で当該画面を表示するために前記サーバから送信されたデータであって、当該画面を表示するために用いられるファイルを伴うデータを含むネットワーク上のトレースデータを蓄積する蓄積部と、
    前記蓄積部に蓄積された前記トレースデータから読み出された前記ファイル及び前記ファイルを伴うデータの少なくとも何れか一方が、当該ファイルがキャッシュされ得ると判断するための条件として予め定められた条件を満たしていれば、当該トレースデータに含まれる当該ファイルを伴うデータから、当該ファイルを抽出する抽出部と、
    前記抽出部により抽出された前記ファイルを記憶する記憶部と、
    前記複数の時点のうちの特定の時点で前記クライアントに表示された前記画面の再現の要求を受け付ける受付部と、
    前記蓄積部に蓄積された前記トレースデータに含まれるデータのうち、前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが、前記ファイルを含まず、キャッシュされている前記ファイルが有効であることを示す場合に、前記記憶部に記憶された前記ファイルに設定された当該ファイルの有効性に関する情報に基づいて、当該ファイルの有効性が前記特定の時点で失われていないと判断できれば、当該ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する出力部と
    を含む、装置。
  10. クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する方法であって、
    前記クライアントに前記画面が表示された複数の時点で当該画面を表示するために前記サーバから送信されたデータのうち、当該画面を表示するために用いられるファイルを伴うデータから、当該ファイルを抽出するステップと、
    抽出された前記ファイルを記憶部に記憶するステップと、
    前記複数の時点のうちの特定の時点で前記クライアントに表示された前記画面の再現の要求を受け付けるステップと、
    前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが前記ファイルを含まない場合に、前記記憶部に記憶された前記ファイルを、受け付けた前記画面の再現の要求に応じて出力するステップと
    を含む、方法。
  11. クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置としてコンピュータを機能させるプログラムであって、
    前記コンピュータを、
    前記クライアントに前記画面が表示された複数の時点で当該画面を表示するために前記サーバから送信されたデータのうち、当該画面を表示するために用いられるファイルを伴うデータから、当該ファイルを抽出する抽出部と、
    前記抽出部により抽出された前記ファイルを記憶する記憶部と、
    前記複数の時点のうちの特定の時点で前記クライアントに表示された前記画面の再現の要求を受け付ける受付部と、
    前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが前記ファイルを含まない場合に、前記記憶部に記憶された前記ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する出力部と
    して機能させる、プログラム。
JP2010129262A 2010-06-04 2010-06-04 画面の再現を支援する装置及び方法 Expired - Fee Related JP5567906B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010129262A JP5567906B2 (ja) 2010-06-04 2010-06-04 画面の再現を支援する装置及び方法
US13/151,068 US9619577B2 (en) 2010-06-04 2011-06-01 Reproducing a graphical user interface display
US13/426,989 US9483575B2 (en) 2010-06-04 2012-03-22 Reproducing a graphical user interface display

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010129262A JP5567906B2 (ja) 2010-06-04 2010-06-04 画面の再現を支援する装置及び方法

Publications (2)

Publication Number Publication Date
JP2011257796A JP2011257796A (ja) 2011-12-22
JP5567906B2 true JP5567906B2 (ja) 2014-08-06

Family

ID=45065327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010129262A Expired - Fee Related JP5567906B2 (ja) 2010-06-04 2010-06-04 画面の再現を支援する装置及び方法

Country Status (2)

Country Link
US (2) US9619577B2 (ja)
JP (1) JP5567906B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104106073B (zh) * 2011-12-21 2017-06-27 阿卡麦科技公司 安全策略编辑器
US9953052B1 (en) * 2012-06-19 2018-04-24 Amazon Technologies, Inc. Caching of updated network content portions
US20140317602A1 (en) * 2013-04-19 2014-10-23 International Business Machines Corporation Graphical User Interface Debugger with User Defined Interest Points

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173739A (ja) 1991-12-24 1993-07-13 Toshiba Corp オペレーション操作画面再現装置
US6845102B1 (en) * 1997-10-09 2005-01-18 Cisco Technology, Inc. Method and system for network access over a low bandwidth link
JP4250859B2 (ja) 2000-07-04 2009-04-08 沖電気工業株式会社 通信端末装置および通信傍受装置
US6941351B2 (en) 2000-07-11 2005-09-06 Microsoft Corporation Application program caching
JP4309629B2 (ja) 2002-09-13 2009-08-05 株式会社日立製作所 ネットワークシステム
EP2264592A3 (en) * 2005-06-08 2011-02-02 Panasonic Corporation GUI content reproducing device and program
US8904529B2 (en) 2005-09-07 2014-12-02 International Business Machines Corporation Automated deployment of protection agents to devices connected to a computer network
JP2008071092A (ja) 2006-09-13 2008-03-27 Casio Comput Co Ltd サーバ装置、クライアント装置、サーバベースコンピューティングシステムおよびプログラム
JP2008108047A (ja) * 2006-10-25 2008-05-08 Toshiba Corp 通信画面再現装置及び通信画面再現プログラム
US8504775B2 (en) * 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
JP2009098897A (ja) 2007-10-16 2009-05-07 Sharp Corp 情報表示装置および方法
JP2009301084A (ja) 2008-06-10 2009-12-24 Hitachi Ltd 情報処理装置および情報処理方法
JP5167179B2 (ja) * 2009-03-24 2013-03-21 株式会社日立製作所 動的コンテンツ保存復元装置、動的コンテンツ保存復元システム、動的コンテンツの保存および復元方法、ならびにプログラム

Also Published As

Publication number Publication date
JP2011257796A (ja) 2011-12-22
US9483575B2 (en) 2016-11-01
US20120197983A1 (en) 2012-08-02
US20110302241A1 (en) 2011-12-08
US9619577B2 (en) 2017-04-11

Similar Documents

Publication Publication Date Title
US8645453B2 (en) Method and system of processing cookies across domains
KR100705411B1 (ko) 로컬 컴퓨터 검색 시스템 및 이를 이용한 로컬 컴퓨터 검색방법
US20140244727A1 (en) Method and apparatus for streaming multimedia content of server by using cache
US20100082747A1 (en) Real-time collaborative browsing
US20090019151A1 (en) Method for media discovery
US8019884B2 (en) Proxy content for submitting web service data in the user's security context
CN103152367A (zh) 一种缓存的动态维护更新方法及系统
CN101978665B (zh) 对网络通信请求的选择性过滤
JP5567906B2 (ja) 画面の再現を支援する装置及び方法
CN104023046A (zh) 移动终端识别方法和装置
US8230002B2 (en) Method and system for automatic setup in web-based applications
JP4878193B2 (ja) 判定プログラム、判定方法及び判定装置
US20120042017A1 (en) Techniques for Reclassifying Email Based on Interests of a Computer System User
CN108920589B (zh) 浏览劫持识别方法、装置、服务器及存储介质
JP2001034525A (ja) Webページ表示方法およびその処理プログラムを記録した記録媒体
RU2295760C2 (ru) Устройство и способ воспроизведения контента и носитель информации для этого
US9516111B2 (en) Communication apparatus, communication method, and computer program product
KR101498920B1 (ko) 오프라인 실행을 위한 웹 페이지 사전 캐싱 시스템 및 방법
KR101137059B1 (ko) 동영상 색인 방법 및 시스템
US20130104034A1 (en) System and method of providing off-network access to network content
CN105959261A (zh) 在代理服务器上执行的业务监控方法、装置及代理服务器
JP2000132480A (ja) インターネット閲覧方法、装置、およびインターネット閲覧プログラムを記録した記録媒体
KR100490410B1 (ko) 데이터 구조체 기반의 멀티미디어 문서 버퍼링 장치 및 방법
JP3567845B2 (ja) メタ情報提供方法、装置及びメタ情報提供プログラムを記録した記録媒体
JP2007259059A (ja) 中継処理システム、装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140522

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: 20140603

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140603

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140620

R150 Certificate of patent or registration of utility model

Ref document number: 5567906

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees