JP5567906B2 - 画面の再現を支援する装置及び方法 - Google Patents
画面の再現を支援する装置及び方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/75—Indicating network or usage conditions on the user display
Description
特許文献1の技術では、サーバからクライアントに送信されたデータであってユーザによる操作を受け付ける第1画面をクライアントに表示させるためのデータである第1データと、クライアントからサーバに送信されたデータであってクライアントに表示された第1画面で受け付けられた操作を示すデータである第2データとを取得し、第1データ及び第2データに基づいて、第2データに基づく情報である操作情報を第1画面に付加してなる第2画面を表示させるための第3データを生成している。
即ち、Last-Modifiedの日時がサーバ側のファイルの情報と一致すれば、サーバは、ファイルの本体は送付せずに、キャッシュにあるファイルが有効であることを示すステータスコード「304(Not Modified)」を送る。そして、ブラウザは、キャッシュしてあるファイルを、画面を描画するためにHTMLファイルに埋め込むファイルとして使用する。この場合、レスポンスは、ステータスコードは含むものの、リクエストしたファイルは含まないので、ファイルはネットワークトレースに残らない。従って、埋め込まれたファイルをネットワークトレースから抽出できないため、画面の再現が不十分になる。
特許文献1は、画面再現のためのネットワークトレースに含まれる画面部品の処理しか開示しておらず、画面部品がネットワークトレースに含まれてない場合の問題は扱っていない。
特許文献2では、キャッシュされた画面の問題にも触れている。しかしながら、データ入力を伴う画面のみを対象に同じURLへのアクセスを遡って検索し、その画面が同じ入力を求めているかどうかによって同一性を確認する、という手法を採用している。この確認方法から、特許文献2では、Fromタグを含むHTMLファイルがキャッシュされている場合のみを処理を対象としていることが分かる。従って、入力画面の本体(HTMLファイル)だけでなく、HTMLファイルに埋め込まれる画像ファイル、スタイルシート等もキャッシュされ得るウェブシステムにおいて、特許文献2は、上記問題に対する解決手段を提供しない。また、特許文献2では、過去のネットワークトレースを遡って検索するため、画面再現の際の応答時間が長くなるという問題もある。
加えて、出力部は、記憶部に記憶されたファイルに設定されたファイルの有効性に関する情報に基づいて、ファイルの有効性が特定の時点で失われていないと判断できる場合に、ファイルを、受付部にて受け付けた画面の再現の要求に応じて出力する、ものであってよい。
加えて、出力部は、記憶部に記憶されたファイルに設定されたファイルの有効性に関する情報に基づいて、ファイルの有効性が、画面の部品以外の部分の表示を要求するデータがサーバへ送信された時点で失われていないと判断できる場合に、ファイルを、受付部にて受け付けた部品の再現の要求に応じて出力する、ものであってよい。
更にまた、抽出部は、ファイルを伴うデータが、ファイルがキャッシュされ得ることを示す情報として予め定められた情報を含む場合に、データからファイルを抽出する、ものであってよい。
HTTPでは、キャッシュの仕組みとして、検証モデルと期限モデルとが定義されている。検証モデルの場合、クライアントはキャッシュされているファイルが有効かサーバに問い合わせ、サーバは、ファイルが有効であれば、有効であることを示すレスポンスを返すだけで、レスポンス対象のファイル(以下、「レスポンスファイル」という)を送らない。また、期限モデルでは、キャッシュされているファイルに有効期限が設定されているので、クライアントは、サーバに問い合わせることなく、ファイルが有効かを判断する。従って、この何れのモデルにおいても、キャッシュされたファイルが有効な場合は、ネットワークトレース(以下、単に「トレース」という)にレスポンスファイルが含まれないこととなる。問題は、レスポンスファイルなしでは、画面イメージをトレースから完全には再現できない、ということである。
しかしながら、長時間に亘って取得したトレースをすべて保管し、必要に応じてその中を検索するという方法は、保管容量が膨らむこと、検索時間が長くなり画面再現のレスポンス時間が長くなること等のデメリットがあるので、よい解決法とは言えない。
即ち、トレースからキャッシャブルファイルを抽出し、保管しておく。その後、あるユーザがある時間に表示した画面を再現する際に、画面再現に必要なキャッシャブルファイルがその時間のトレースに含まれていなければ、保管しておいたキャッシャブルファイルから適切なものを取り出し、それを利用する。ここで、キャッシャブルファイルとは、予め定めた基準によって、キャッシュされるであろうと判断されるレスポンスファイルのことである。例えば、キャッシュされるファイルをサーバが送出する際、そのファイルを送出するためのHTTPパケットのヘッダには、そのファイルがキャッシュされてもよいことを示す情報が含まれるので、このような情報が含まれることを上記基準として採用すればよい。また、キャッシャブルファイルを保管する際には、HTTPパケットのヘッダ内の関連する情報もあわせて保管し、キャッシャブルファイルを適切に選択するために利用する。
[第1の実施の形態]
図1は、第1の実施の形態が適用されるコンピュータシステムの構成を示したブロック図である。
図示するように、コンピュータシステムは、ウェブシステム10と、クライアント20と、クライアント30と、画面再現装置40とが、インターネット等のネットワーク80に接続されることにより構成されている。特に、クライアント20は、代理サーバであるプロキシ70を経由してネットワーク80に接続されているものとする。
クライアント20,30は、ユーザが使用する端末装置である。このうち、クライアント20は、一般ユーザがウェブシステム10を利用する際に使用する端末装置である。図では、1つのクライアント20しか示していないが、複数のクライアント20が接続されていてもよく、その場合、クライアント20というときはそのうちの1つを指すものとする。また、本明細書において、単に「ユーザ」というときは、クライアント20を使用する一般ユーザのことを指すものとする。一方、クライアント30は、クライアント20に表示された画面を再現するために特定ユーザが使用する端末装置である。
図示するように、画面再現装置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参照)によって実現される。
キャッシャブルファイル判定部42は、キャプチャ部41が取得したトレース内のHTTPレスポンスパケット(以下、「レスポンスパケット」という)を解析し、このレスポンスパケットに含まれるレスポンスファイルがキャッシャブルかどうかを判定する。そして、キャッシャブルと判定すれば、レスポンスパケットからレスポンスヘッダとレスポンスファイルとを抽出してキャッシャブルファイル管理部48に送る。尚、本明細書では、レスポンスパケットのメッセージヘッダを「レスポンスヘッダ」と称し、これには、HTTPで定義された一般ヘッダやエンティティヘッダも含まれる。本実施の形態では、ファイルの一例として、レスポンスファイルを用いており、ファイルを抽出する抽出部の一例として、キャッシャブルファイル判定部42を設けている。
トレース記憶部44は、トレース分類部43が作成した複数のトレースファイルを記憶する。本実施の形態では、トレースデータを蓄積する蓄積部の一例として、トレース記憶部44を設けている。
キャッシャブルファイル記憶部49は、キャッシャブルファイルを付加情報と共に記憶する。本実施の形態では、ファイルを記憶する記憶部の一例として、キャッシャブルファイル記憶部49を設けている。
図2は、画面再現装置40がキャッシャブルファイルを保存するときの動作例を示したフローチャートである。尚、一般ユーザがクライアント20のブラウザからネットワーク80を介してウェブシステム10に接続し、ウェブシステム10を使用している状態で、このフローチャートの動作は開始するものとする。
その結果、キャッシャブルファイル判定処理の結果がキャッシャブルであることを示していない場合、キャッシャブルファイル判定部42は、そのまま制御をトレース分類部43に渡す。この場合、トレースには複数のクライアント20のトラフィックが混ざっているので、トレース分類部43は、クライアント20ごとに分類したトレースファイルを作成する(ステップ404)。そして、クライアント20ごとに分類したトレースファイルをトレース記憶部44に保存する(ステップ405)。
これにより、クライアント30のブラウザには、画面選択用画面が表示される。ここで、画面選択用画面には、例えば、ユーザが一連の操作によって表示した画面に対応するHTMLファイルのリストが含まれている。従って、画面を再現したい特定ユーザは、そのリストに含まれるHTMLファイルの中から、再現したい画面に対応するHTMLファイルを選択することになる。
これにより、画面再現装置40では、レスポンスファイル送出部47が、HTMLファイルのリクエストを受信する(ステップ414)。
その結果、検索が成功した場合、即ち、レスポンスファイル抽出部46が抽出したレスポンスファイルの中に目的のHTMLファイルがあった場合、レスポンスファイル送出部47は、そのHTMLファイルを選択する(ステップ417)。そして、HTMLファイルの書き換え処理を行う(ステップ418)。ここで、書き換え処理とは、HTMLファイル内でURLを参照している部分を検索し、参照先がウェブシステム10であれば、画面再現装置40を参照するように書き換える処理である。その後、レスポンスファイル送出部47は、書き換え処理後のHTMLファイルをクライアント30に送出する(ステップ419)。
ここで、適切なキャッシャブルファイルがあった旨の情報が返されたと判定した場合、レスポンスファイル送出部47は、キャッシャブルファイル管理部48が適切と判定したキャッシャブルファイルであるHTMLファイルを選択する(ステップ424)。そして、HTMLファイルの書き換え処理を行う(ステップ418)。ここで、書き換え処理とは、HTMLファイル内でURLを参照している部分を検索し、参照先がウェブシステム10であれば、画面再現装置40を参照するように書き換える処理である。その後、レスポンスファイル送出部47は、書き換え処理後のHTMLファイルをクライアント30に送出する(ステップ419)。
これにより、画面再現装置40では、図4に示すように、レスポンスファイル送出部47が、エンベッドファイルのリクエストを受信する(ステップ434)。
その結果、検索が成功した場合、即ち、レスポンスファイル抽出部46が抽出したレスポンスファイルの中に目的のエンベッドファイルがあった場合、レスポンスファイル送出部47は、そのエンベッドファイルを選択する(ステップ437)。そして、エンベッドファイルをクライアント30に送出する(ステップ439)。
ここで、適切なキャッシャブルファイルがあった旨の情報が返されたと判定した場合、レスポンスファイル送出部47は、キャッシャブルファイル管理部48が適切と判定したキャッシャブルファイルであるエンベッドファイルを選択する(ステップ444)。そして、エンベッドファイルをクライアント30に送出する(ステップ439)。
これにより、エンベッドファイルがクライアント30のブラウザで受信される。そして、ブラウザの機能によりエンベッドファイルがHTMLファイルに埋め込まれると、クライアント20に表示されたのと同じ画面が表示され、一画面分の画面再現が完了する。
HTMLファイルなしの異常ステータスコードがどのように表示されるかはブラウザによるが、クライアント20のブラウザでユーザが見た画面と同じ意味を持つ画面がクライアント30に表示されることになる。
これにより、クライアント30のブラウザには、キャッシャブルファイルが見つからなかった部分が空白となった画面が表示される。厳密には画面再現が正常に表示できたとは言えないかもしれないが、たとえ不完全だとしてもどのような画面だったかを確認したいときには有効である。
図5は、第2の実施の形態が適用されるコンピュータシステムの構成を示したブロック図である。
図示するように、コンピュータシステムは、ウェブシステム10と、クライアント20と、クライアント30と、画面再現装置40とが、インターネット等のネットワーク80に接続されることにより構成されている。特に、クライアント20は、代理サーバであるプロキシ70を経由してネットワーク80に接続されているものとする。
図示するように、画面再現装置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参照)によって実現される。
トレース分類部43は、キャプチャ部41が取得したネットワーク80上のトレースをクライアント20ごとに分類し、複数のトレースファイルを作成する。ここで、トレースファイルの作成は、キャプチャ部41によるトレースのキャプチャ中に連続的に行ってもよいし、再現対象の画面が表示されたクライアント20を選択してプル形式で行ってもよい。
トレース記憶部44は、トレース分類部43が作成した複数のトレースファイルを記憶する。本実施の形態では、トレースデータを蓄積する蓄積部の一例として、トレース記憶部44を設けている。
キャッシャブルファイル判定部42は、トレース管理部45が読み出したトレース内のレスポンスパケットを解析し、このレスポンスパケットに含まれるレスポンスファイルがキャッシャブルかどうかを判定する。そして、キャッシャブルと判定すれば、レスポンスパケットからレスポンスヘッダとレスポンスファイルとを抽出してキャッシャブルファイル管理部48に送る。本実施の形態では、ファイルの一例として、レスポンスファイルを用いており、ファイルを抽出する抽出部の一例として、キャッシャブルファイル判定部42を設けている。
まず、一般ユーザがクライアント20のブラウザからネットワーク80を介してウェブシステム10に接続し、ウェブシステム10を使用しているものとする。この状態で、キャプチャ部41が、ネットワーク80上のトラフィックのトレースを取得する。この場合、トレースは、ネットワーク80上のスイッチのミラーポートを使用したり、ネットワーク80にTAPを挿入したりすることによって、取得すればよい。トレースには複数のクライアント20のトラフィックが混ざっているので、トレース分類部43は、クライアント20ごとに分類したトレースファイルを作成する。そして、クライアント20ごとに分類したトレースファイルをトレース記憶部44に保存する。
その結果、キャッシャブルファイル判定処理の結果がキャッシャブルであることを示していない場合、キャッシャブルファイル判定部42は、そのまま制御をトレース管理部45に戻す。すると、トレース管理部45は、次回のバッチ処理で継続して処理できるように、キャッシャブルファイル判定部42により判定処理済のトレースの部分が分かるようにする(ステップ454)。例えば、どの時刻のトレースまで処理が終わったかを記録すればよい。
次に、図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は、レスポンスファイルをキャッシャブルファイルでないと判定する(ステップ504)。
しかしながら、このようなことが起こったとしても、問題は生じない。キャッシャブルでないファイルは、画面再現のためのトレースに必ず含まれているはずなので、キャッシャブルと誤判定されて記憶されたファイルが使われることはないからである。従って、ウェブシステム10でキャッシャブルとして扱われる可能性のあるファイルのファイルタイプは全て特定のファイルタイプとして判定対象とすればよい。
また、画面再現装置40からウェブシステム10上のファイルにアクセスできる場合には、ウェブシステム10上のスタティックファイルとみなせるファイルタイプのファイルを直接キャッシャブルファイル記憶部49にコピーしたり、ウェブシステム10上のファイルにリクエストに応じて直接アクセスしたりすることにより、このキャッシャブルファイル判定処理は更に容易に実装することができる。
図8は、この場合のキャッシャブルファイル選択処理の動作例を示したフローチャートである。
図8に示すように、まず、キャッシャブルファイル管理部48は、キャッシャブルファイル記憶部49からキャッシャブルファイルを1つ読み出す(ステップ511)。
そして、キャッシャブルファイルに付加されているURIが、トレース内のリクエストパケットにおけるURI(ホスト名、パス、ファイル名)と一致するかどうかを判定する(ステップ512)。
一方、これらのURIが一致しないと判定されれば、キャッシャブルファイル管理部48は、キャッシャブルファイル記憶部49に記憶された全てのキャッシャブルファイルについての処理が終了したかどうかを判定する(ステップ514)。そして、全てのキャッシャブルファイルについての処理が終了していないと判定されれば、ステップ511へ戻って、次のキャッシャブルファイルについて同様の処理を行う。また、全てのキャッシャブルファイルについての処理が終了したと判定されれば、キャッシャブルファイル管理部48は、選択すべきキャッシャブルファイルが存在しないと判定する(ステップ515)。
第一に、キャッシャブルファイル判定処理の厳密版ロジックについて説明する。
図9は、この場合のキャッシャブルファイル判定処理の動作例を示したフローチャートである。
図9に示すように、まず、キャッシャブルファイル判定部42は、レスポンスファイルがキャッシャブルファイルでない場合の条件を、レスポンスヘッダのフィールドが満たすかどうかを検査する(ステップ551)。ここで、レスポンスファイルがキャッシャブルファイルでない場合の条件とは、レスポンスヘッダにCache-Controlフィールドがあり、その値がno-cache又はno-storeであるという条件、レスポンスヘッダにPragmaフィールドがあり、その値がno-cacheであるという条件、レスポンスヘッダにVaryフィールドがあり、その値が*であるという条件である。即ち、このステップでは、これらの何れかの条件が満たされるかどうかを検査する。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル判定部42は、レスポンスファイルをキャッシャブルファイルでないと判定する(ステップ556)。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル判定部42は、レスポンスファイルをキャッシャブルファイルであると判定する(ステップ555)。
一方、条件を満たすことを示していると判定されなければ、即ち、レスポンスファイルがキャッシャブルファイルでない場合の条件、レスポンスファイルがキャッシャブルファイルである場合の条件の何れも満たされていないと判定されれば、キャッシャブルファイル判定部42は、レスポンスファイルをキャッシャブルファイルでないと判定する(ステップ556)。
図10は、レスポンスファイル本体に加えて、キャッシャブルファイル記憶部49に記憶される付加情報の一例を示した図である。
図示するように、付加情報には、URI、TimeStamp、Cache-Control、Pragma、Expires、ETag、Last-Modified、Vary、ユーザIDが含まれる。
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からエンベッドファイル本体は送られていないことが分かる。
また、図示していないが、トレースファイルには、あるユーザの一連の操作に関するトレースに対して、ユーザIDが関連付けて記録されているものとする。
図12,13は、この場合のキャッシャブルファイル選択処理の動作例を示したフローチャートである。
図12に示すように、まず、キャッシャブルファイル管理部48は、キャッシャブルファイル記憶部49からキャッシャブルファイルを1つ読み出す(ステップ561)。
そして、キャッシャブルファイルに付加されているURIが、トレース内のリクエストパケットにおけるURI(ホスト名、パス、ファイル名)と一致するかどうかを判定する(ステップ562)。
即ち、まず、キャッシャブルファイル管理部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が付加情報にない場合は、条件が満たされている旨を検査結果にセットする。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル管理部48は、ETagが付加情報にある場合に、その値が条件を満たすかどうかを検査する(ステップ565)。ここで、条件とは、その値がトレース内のリクエストヘッダのIf-None-Matchフィールドで示されるETagの値と一致するという条件である。即ち、このステップでは、この条件が満たされるかどうかを検査する。尚、ETagが付加情報にない場合は、条件が満たされている旨を検査結果にセットする。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル管理部48は、Last-Modifiedが付加情報にある場合に、その値が条件を満たすかどうかを検査する(ステップ567)。ここで、条件とは、その値がトレース内のリクエストヘッダのLast-Modifiedフィールドの値と一致するという条件である。即ち、このステップでは、この条件が満たされるかどうかを検査する。尚、Last-Modifiedが付加情報にない場合は、条件が満たされている旨を検査結果にセットする。
その結果、条件を満たすことを示していると判定されれば、図13に示すように、キャッシャブルファイル管理部48は、If-Modified-Sinceがトレース内のリクエストヘッダにある場合に、その値が条件を満たすかどうかを検査する(ステップ581)。ここで、条件とは、その値が付加情報内のLast-Modifiedで示される日時と等しいか又はその日時よりも古いという条件である。即ち、このステップでは、この条件が満たされるかどうかを検査する。尚、If-Modified-Sinceがトレース内のリクエストヘッダにない場合は、条件が満たされている旨を検査結果にセットする。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル管理部48は、Expiresが付加情報にある場合に、その値が条件を満たすかどうかを検査する(ステップ583)。ここで、条件とは、その値がトレース内のリクエストヘッダのDateフィールドで示される日時よりも新しいという条件である。即ち、このステップでは、この条件が満たされるかどうかを検査する。ここで、Expiresの値は、ファイルに設定されたファイルの有効性に関する情報の一例である。尚、Expiresが付加情報にない場合は、条件が満たされている旨を検査結果にセットする。
尚、上記では、エンベッドファイルがエンベッドされるHTMLファイルに対するリクエストパケットのDateフィールドを用いることとしたが、対象の画面の再現に用いられる如何なるファイルに対するリクエストパケットのDateフィールドを用いてもよい。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル管理部48は、Varyが付加情報にある場合に、その値が条件を満たすかどうかを検査する(ステップ585)。ここで、条件とは、Varyで示されるフィールドの値がトレース内のリクエストヘッダのそのフィールドの値と一致するという条件である。即ち、このステップでは、この条件が満たされるかどうかを検査する。尚、Varyが付加情報にない場合は、条件が満たされている旨を検査結果にセットする。
その結果、条件を満たすことを示していると判定されれば、キャッシャブルファイル管理部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)。
このように、本実施の形態では、トレースからキャッシャブルファイルを抽出して保管し、その後、あるユーザがある時間に表示した画面を再現する際に、保管しておいたキャッシャブルファイルを利用するようにした。これにより、キャッシャブルファイルを保管するための記憶容量、画面再現時のキャッシャブルファイルの検索時間の双方を、実用的なものとすることが可能となった。
Claims (11)
- クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置であって、
前記クライアントに前記画面が表示された複数の時点で当該画面を表示するために前記サーバから送信されたデータのうち、当該画面を表示するために用いられるファイルを伴うデータから、当該ファイルを抽出する抽出部と、
前記抽出部により抽出された前記ファイルを記憶する記憶部と、
前記複数の時点のうちの特定の時点で前記クライアントに表示された前記画面の再現の要求を受け付ける受付部と、
前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが前記ファイルを含まない場合に、前記記憶部に記憶された前記ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する出力部と
を含む、装置。 - 前記出力部は、前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが、キャッシュされている前記ファイルが有効であることを示すデータである場合に、前記記憶部に記憶された前記ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する、請求項1の装置。
- 前記出力部は、前記記憶部に記憶された前記ファイルに設定された当該ファイルの有効性に関する情報に基づいて、当該ファイルの有効性が前記特定の時点で失われていないと判断できる場合に、当該ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する、請求項2の装置。
- 前記ファイルは、前記画面の部品を表示するために用いられ、
前記受付部は、前記特定の時点で前記クライアントに表示された前記部品の再現の要求を受け付け、
前記出力部は、前記特定の時点で前記部品の表示を要求するデータが前記サーバへ送信されていない場合に、前記記憶部に記憶された前記ファイルを、前記受付部にて受け付けた前記部品の再現の要求に応じて出力する、請求項1乃至3の何れかの装置。 - 前記出力部は、前記記憶部に記憶された前記ファイルに設定された当該ファイルの有効性に関する情報に基づいて、当該ファイルの有効性が、前記画面の前記部品以外の部分の表示を要求するデータが前記サーバへ送信された時点で失われていないと判断できる場合に、当該ファイルを、前記受付部にて受け付けた前記部品の再現の要求に応じて出力する、請求項4の装置。
- 前記抽出部は、前記ファイルのタイプが予め定められたタイプである場合に、当該ファイルを伴うデータから、当該ファイルを抽出する、請求項1乃至5の何れかの装置。
- 前記抽出部は、前記ファイルを伴うデータが、当該ファイルがキャッシュされ得ることを示す情報として予め定められた情報を含む場合に、当該データから当該ファイルを抽出する、請求項1乃至5の何れかの装置。
- クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置であって、
前記クライアントに前記画面が表示された複数の時点で当該画面を表示するために前記サーバから送信されたデータであって、当該画面を表示するために用いられるファイルを伴うデータを含むネットワーク上のトレースデータを蓄積する蓄積部と、
前記蓄積部に前記トレースデータが蓄積される際に、前記ファイル及び前記ファイルを伴うデータの少なくとも何れか一方が、当該ファイルがキャッシュされ得ると判断するための条件として予め定められた条件を満たしていれば、当該トレースデータに含まれる当該ファイルを伴うデータから、当該ファイルを抽出する抽出部と、
前記抽出部により抽出された前記ファイルを記憶する記憶部と、
前記複数の時点のうちの特定の時点で前記クライアントに表示された前記画面の再現の要求を受け付ける受付部と、
前記蓄積部に蓄積された前記トレースデータに含まれるデータのうち、前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが、前記ファイルを含まず、キャッシュされている前記ファイルが有効であることを示す場合に、前記記憶部に記憶された前記ファイルに設定された当該ファイルの有効性に関する情報に基づいて、当該ファイルの有効性が前記特定の時点で失われていないと判断できれば、当該ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する出力部と
を含む、装置。 - クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置であって、
前記クライアントに前記画面が表示された複数の時点で当該画面を表示するために前記サーバから送信されたデータであって、当該画面を表示するために用いられるファイルを伴うデータを含むネットワーク上のトレースデータを蓄積する蓄積部と、
前記蓄積部に蓄積された前記トレースデータから読み出された前記ファイル及び前記ファイルを伴うデータの少なくとも何れか一方が、当該ファイルがキャッシュされ得ると判断するための条件として予め定められた条件を満たしていれば、当該トレースデータに含まれる当該ファイルを伴うデータから、当該ファイルを抽出する抽出部と、
前記抽出部により抽出された前記ファイルを記憶する記憶部と、
前記複数の時点のうちの特定の時点で前記クライアントに表示された前記画面の再現の要求を受け付ける受付部と、
前記蓄積部に蓄積された前記トレースデータに含まれるデータのうち、前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが、前記ファイルを含まず、キャッシュされている前記ファイルが有効であることを示す場合に、前記記憶部に記憶された前記ファイルに設定された当該ファイルの有効性に関する情報に基づいて、当該ファイルの有効性が前記特定の時点で失われていないと判断できれば、当該ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する出力部と
を含む、装置。 - クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する方法であって、
前記クライアントに前記画面が表示された複数の時点で当該画面を表示するために前記サーバから送信されたデータのうち、当該画面を表示するために用いられるファイルを伴うデータから、当該ファイルを抽出するステップと、
抽出された前記ファイルを記憶部に記憶するステップと、
前記複数の時点のうちの特定の時点で前記クライアントに表示された前記画面の再現の要求を受け付けるステップと、
前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが前記ファイルを含まない場合に、前記記憶部に記憶された前記ファイルを、受け付けた前記画面の再現の要求に応じて出力するステップと
を含む、方法。 - クライアントにサーバから送信されたデータに基づいて表示された画面の再現を支援する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記クライアントに前記画面が表示された複数の時点で当該画面を表示するために前記サーバから送信されたデータのうち、当該画面を表示するために用いられるファイルを伴うデータから、当該ファイルを抽出する抽出部と、
前記抽出部により抽出された前記ファイルを記憶する記憶部と、
前記複数の時点のうちの特定の時点で前記クライアントに表示された前記画面の再現の要求を受け付ける受付部と、
前記特定の時点で前記画面を表示するために前記サーバから送信されたデータが前記ファイルを含まない場合に、前記記憶部に記憶された前記ファイルを、前記受付部にて受け付けた前記画面の再現の要求に応じて出力する出力部と
して機能させる、プログラム。
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)
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)
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 | 株式会社日立製作所 | 動的コンテンツ保存復元装置、動的コンテンツ保存復元システム、動的コンテンツの保存および復元方法、ならびにプログラム |
-
2010
- 2010-06-04 JP JP2010129262A patent/JP5567906B2/ja not_active Expired - Fee Related
-
2011
- 2011-06-01 US US13/151,068 patent/US9619577B2/en active Active
-
2012
- 2012-03-22 US US13/426,989 patent/US9483575B2/en not_active Expired - Fee Related
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 |