以下、図面を参照して、本発明の各実施形態について説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る通信監視記録再生システムが接続されるネットワークシステムについて説明するための図である。
本実施形態に係る通信監視記録再生システムは、複数の端末(第1の端末)、通信監視記録再生装置20及び管理サーバ(第2の端末)30を備える。複数の端末は、端末10を含む。なお、図1では便宜的に端末10以外の端末については省略されている。
端末10は、例えばインターネット40を介してWebサーバ50と接続されている。この端末10及びWebサーバ50間では、例えばHTTP(HyperText Transfer Protocol)による通信が実行される。この場合、端末10からWebサーバ50に対してHTTPリクエストが送信され、Webサーバ50から端末10に対して当該HTTPリクエストに対するレスポンス(応答)が返される。この一連の処理(の内容)を、1つの通信内容(1セッション)とする。このような通信により、端末10は、Webサーバ50から各種コンテンツを読み込むことができる。このWebサーバ50から読み込まれる各種コンテンツには、当該コンテンツのネットワーク上での位置を示すURL(Uniform Resource Locator)及び当該コンテンツのコンテンツタイプが含まれている。
端末10には、例えばブラウザがインストールされており、Webサーバ50から読み込まれたコンテンツは当該ブラウザにより表示される。
通信監視記録再生装置20は、監視対象となるネットワーク(ネットワークセグメント)60により端末10と接続されている。通信監視記録再生装置20は、端末10を含む複数の端末及びWebサーバ50間での通信内容が分割されたパケット(パケットデータ)を、監視対象となるネットワーク60から収集する。このとき、通信監視記録再生装置20は、スイッチ70を介してパケットを収集する。通信監視記録再生装置20は、収集されたパケットから端末10及びWebサーバ50間での通信内容を再構築して記録(格納)する。
管理サーバ30には、例えばブラウザがインストールされている。管理サーバ30は、当該管理サーバ30を利用するユーザ(管理者)からの要求に応じて、通信監視記録再生装置20によって再構築された通信内容(コンテンツ)をブラウザにより当該ユーザに対して表示する。これにより、例えば端末10において表示されたコンテンツ(画面)が、管理サーバ30において再現される。
図2は、図1に示す端末10の主として機能構成を示すブロック図である。図2に示すように、端末10は、操作情報収集条件テーブル11、操作情報取得部12、操作情報管理テーブル13及び操作情報送信部14を含む。
ここで、操作情報取得部12及び操作情報送信部14は、端末10にインストールされているブラウザにプラグインとして動的に組み込まれる。つまり、端末10にインストールされているブラウザは、特別に用意したものではなく既存のブラウザをそのまま使用できる。このプラグインは、例えば端末10のブラウザを使用してWebページからダウンロードすることで、端末10のユーザが容易にブラウザに組み込むことが可能である。
操作情報収集条件テーブル11には、端末10を利用してユーザが行った操作に関する操作情報を取得(収集)する対象となるコンテンツ(通信内容)の条件(を示す情報)が予め保持される。操作情報収集条件テーブル11には、操作情報を取得する対象となるコンテンツの条件として、当該コンテンツのネットワーク上での位置を示すURL及び当該コンテンツのコンテンツタイプが対応付けて保持される。この操作情報収集条件テーブル11に保持される条件は、端末10にインストールされているブラウザの起動時、ユーザによって指定された時刻または不定期に更新される。この操作情報収集条件テーブル11の更新は、例えばユーザによって指定されたURLを読み込む、または管理サーバ30を利用するユーザ(管理者)によって指定されたURLを通信監視記録再生装置20から受信することにより実行される。
操作情報取得部12は、端末10にインストールされているブラウザがWebサーバ50からWebページのようなコンテンツを読み込む際に、当該コンテンツに含まれるURL及びコンテンツタイプを取得する。操作情報取得部12は、取得されたURL及びコンテンツタイプが操作情報収集条件テーブル11に保持される条件に合致するか否かを判定する。
操作情報取得部12は、ブラウザにより読み込まれたコンテンツに対して端末10を利用してユーザが行う操作(イベント)が発生した場合、当該発生したイベントに関するイベント情報を取得する。操作情報取得部12は、ブラウザAPI(Application Program Interface)を介してイベント情報を取得する。発生するイベント(端末10を利用してユーザが行う操作)には例えばマウスイベント及びキーボードイベント等が含まれ、イベント情報には当該マウスイベント及びキーボードイベント等のイベント種別及びイベント発生時のマウスのカーソル位置等が含まれる。操作情報取得部12は、取得されたイベント情報に応じて、当該イベント情報を含む操作情報取得する。操作情報取得部12は、取得された操作情報を操作情報管理テーブル13に登録する。
操作情報管理テーブル13は、操作情報取得部12によって取得された操作情報を保持する。操作情報管理テーブル13に保持される操作情報には、イベント(操作)の発生時刻、イベント情報(イベント種別、カーソル位置)及びDOM(Document Object Model)オブジェクト(情報)等が含まれる。DOMとはコンテンツ(Webページ)の構造を木構造で表現したものであり、DOMオブジェクトは、当該Webページ内の位置を特定するものである。つまり、このDOMオブジェクトにより、例えばユーザが端末10(マウスまたはキーボード)に対して操作を行った箇所(位置)が特定される。
操作情報送信部14は、操作情報管理テーブル13に予め定められた数の操作情報が登録されると、当該操作情報管理テーブル13に保持(登録)されている操作情報を、ネットワーク60を介して通信監視記録再生装置20に送信する。
図3は、図1に示す通信監視記録再生装置20の主として機能構成を示すブロック図である。図3に示すように、通信監視記録再生装置20は、操作情報受信部21、パケット収集記録部22、パケット格納部23、パケット解析部24、解析結果記録再生部25及び解析結果格納部26を含む。
操作情報受信部21は、端末10に含まれる操作情報送信部14によって送信された操作情報を受信する。
パケット収集記録部22は、通信監視記録再生装置20の監視対象となるネットワーク60上のパケットを収集する。パケット収集記録部22は、スイッチ70を介してパケットを収集する。この収集されたパケットは、端末10及びWebサーバ50間での通信の通信内容が分割されたデータのまとまりである。なお、1つの通信内容を構成するパケットの数は、例えば通信内容の容量により異なる。また、ネットワーク60上から収集されたパケットには、当該パケットを送信または受信した端末10に割り当てられたネットワークアドレス(IPアドレス:Internet Protocolアドレス)が含まれている。このネットワークアドレスにより、ネットワーク上から収集されたパケットを送信または受信した端末を特定することができる。
パケット収集記録部22は、操作情報受信部21によって受信された操作情報と共に、収集されたパケットをパケット格納部23に格納する。また、パケット収集記録部22は、操作情報受信部21によって受信された操作情報及び収集されたパケットをパケット解析部24に送信する。
パケット解析部24は、パケット収集記録部22によって送信された1つ乃至複数のパケットを解析することによって、当該1つ乃至複数のパケットから1つの通信内容を再構築する。このとき、パケット解析部24は、パケットの各々に含まれるポート番号に基づいて通信内容を再構築する。これにより、パケット解析部24は、例えばHTTPリクエストまたはHTTPリプライ(コンテンツ)を取り出し、パケット収集記録部22によって送信された操作情報と共に解析結果記録再生部25に送信する。
解析結果記録再生部25は、パケット解析部24によって送信されたコンテンツ及び操作情報を対応付けて解析結果格納部26に格納する。また、解析結果記録再生部25は、例えばユーザによって指定された検索条件に応じて、当該検索条件に合致するコンテンツを解析結果格納部26から検索する機能を有する。解析結果記録再生部25は、検索結果となるコンテンツ及び当該コンテンツに対応付けられている操作情報を、当該コンテンツを表示する機能を有する管理サーバ30に送信する。
図4は、図1に示す管理サーバ30の主として機能構成を示すブロック図である。図4に示すように、管理サーバ30は、コンテンツ受信部31、操作情報受信部32、イベント生成部33及び通信内容再現部34を含む。
ここで、コンテンツ受信部31、操作情報受信部32、イベント生成部33及び通信内容再現部34は、管理サーバ30にインストールされているブラウザにプラグインとして動的に組み込まれる。つまり、管理サーバ30にインストールされているブラウザは、特別に用意したものではなく既存のブラウザをそのまま使用できる。このプラグインは、例えば管理サーバ30のブラウザを使用してWebページからダウンロードすることで、管理サーバ30のユーザが容易にブラウザに組み込むことが可能である。
コンテンツ受信部31は、通信監視記録再生装置20に含まれる解析結果記録再生部25によって送信されたコンテンツ(再構築された通信内容)を受信する。
操作情報受信部32は、通信監視記録再生装置20に含まれる解析結果記録再生部25によって送信された操作情報を受信する。
イベント生成部33は、操作情報受信部32によって受信された操作情報に含まれるイベント種別に応じたイベントを生成する。
通信内容再現部34は、コンテンツ受信部31によって受信されたコンテンツから、管理サーバ30にインストールされているブラウザに初期画面イメージを表示する。また、通信内容再現部34は、操作情報受信部32によって受信された操作情報に含まれるブラウザのDOMオブジェクトに対して、ブラウザAPIを介してイベント生成部33によって生成されたイベントを送信する。これにより、通信内容再現部34は、表示された初期画面イメージに対してユーザが端末10を利用して実行された操作を発生させることで、当該端末10に表示された画面を管理サーバ30のブラウザに再現する。
図5は、図2に示す操作情報収集条件テーブル11のデータ構造の一例を示す。図5に示すように、操作情報収集条件テーブル11には、URL及びコンテンツタイプが保持されている。
図5に示す例では、操作情報収集条件テーブル11には、URL「http://aa.bb.cc」及びコンテンツタイプ「application/javascript」が保持されている。また、操作情報収集条件テーブル11には、URL「http://dd.ee.ff/xx/yy」及びコンテンツタイプ「application/javascript」が保持されている。
図6は、図2に示す操作情報管理テーブル13に保持される操作情報のデータ構造の一例を示す。図6に示すように、操作情報には、時刻、イベント種別、カーソル位置、DOMオブジェクト、キーコードが含まれる。時刻は、イベントが発生した時刻を示す。イベント種別は、例えばキーボードイベントまたはマウスイベント等のイベントの種別を示す。カーソル位置は、イベント発生時のマウスカーソル位置を示す。DOMオブジェクトは、イベントが発生した箇所を特定するものである。キーコードは、発生したイベント種別がキーボードイベントである場合のキーコードを示す。
図6に示す例では、操作情報131には、時刻「2007/09/03 9:00:00.1234」、イベント種別「右マウスクリック」、カーソル位置「100,200」及びDOMオブジェクト「div test」が含まれている。この場合、イベント種別が「右マウスクリック」であることから、発生したイベントはマウスイベントである。よって、操作情報131には、キーコードは含まれない。
また、操作情報132には、時刻「2007/09/03 9:00:01.3456」、イベント種別「キープレス」、カーソル位置「100,200」、DOMオブジェクト「div test」及びキーコード「32」が含まれている。
次に、図7のフローチャートを参照して、端末10の処理手順について説明する。まず、操作情報取得部12は、端末10のブラウザがWebサーバ50からコンテンツを読み込む際に、当該コンテンツに含まれるURL及びコンテンツタイプを取得する(ステップS1)。
操作情報取得部12は、取得されたURL及びコンテンツタイプが操作情報収集条件テーブル11に保持されているか否かを判定する(ステップS2)。
取得されたURL及びコンテンツタイプが操作情報収集条件テーブル11に保持されていると判定された場合(ステップS2のYES)、操作情報取得部12は、端末10のブラウザにより読み込まれたコンテンツの操作情報収集選択フラグをONに設定する(ステップS3)。
ここで、例えばユーザがブラウザ(に表示されているコンテンツ)に対して操作を行った場合、またはWebページの読み込みが完了した場合などに、ブラウザ内でイベントが発生する。イベントが発生すると、ブラウザAPIを介して操作情報取得部12に対してイベントの発生が通知される(ステップS4)。
操作情報取得部12は、イベントの発生が通知されると、当該イベントが発生したコンテンツの操作情報収集選択フラグがONであるか否かを判定する(ステップS5)。
操作情報収集選択フラグがONであると判定された場合(ステップS5のYES)、ブラウザからキーボードイベントまたはマウスイベント等のイベント情報を取得する。このイベント情報には、キーボードイベントまたはマウスイベント等を示すイベント種別及びカーソル位置が含まれる。
操作情報取得部12は、取得されたイベント情報に応じて当該イベント情報を含む操作情報を取得する(ステップS6)。操作情報取得部12は、操作情報をブラウザAPIを介して取得する。操作情報取得部12は、例えば取得されたイベント情報がキーボードイベントである場合、イベント発生時刻、キーボードのプレスまたはリリースイベント、キーコード情報、キーボードイベント発生時のマウスカーソル位置及びDOMオブジェクトを操作情報として取得する。また、操作情報取得部12は、例えば取得されたイベント情報がマウスイベントである場合、イベント発生時刻、マウスのクリック、移動イベント、マウスイベント発生時のマウスカーソル位置及びDOMオブジェクトを操作情報として取得する。マウスのクリックには、例えばダブルクリックまたはリリース等が含まれる。また、操作情報取得部12は、例えば取得されたイベント情報がキーボードイベント及びマウスイベント以外のイベントである場合には、例えばイベント発生時刻及びイベント種別等を操作情報として取得する。
操作情報取得部12は、取得された操作情報を操作情報管理テーブル13に登録する(ステップS7)。このとき、操作情報取得部12は、操作情報に含まれるイベント種別によっては、全ての操作情報を登録するのではなく、一部の操作情報を登録する、または複数の操作情報を1つにまとめて登録するように選択する設定も可能である。例えば、マウス移動イベントの場合、移動を開始した始点と、移動を終了した終点のイベントから移動距離を計算し、複数の移動イベントをまとめて1つの操作情報として操作情報管理テーブル13に登録する構成でも構わない。
次に、操作情報送信部14は、操作情報管理テーブル13の操作情報の登録数が閾値以上であるか否かを判定する(ステップS8)。
操作情報の登録数が閾値以上であると判定された場合(ステップS8のYES)、操作情報送信部14は、操作情報管理テーブル13に登録(保持)されている操作情報を、ネットワーク60経由で、通信監視記録再生装置20に送信する(ステップS9)。操作情報の送信に際しては、トラフィック量を削減するために、当該操作情報を圧縮して送信することも可能である。また、通信監視記録再生装置20への送信が失敗した場合には、一時的に端末10のディスク等に保存し、後で再送する構成であっても構わない。
操作情報送信部14は、操作情報が通信監視記録再生装置20に送信されると、操作情報管理テーブル13に保持されている操作情報を当該操作情報管理テーブル13から削除(クリア)する(ステップS10)。
一方、ステップS2においてURL及びコンテンツタイプが操作情報収集条件テーブル11に保持されていないと判定された場合、端末10のブラウザにより読み込まれたコンテンツの操作情報収集選択フラグをOFFに設定する(ステップS11)。ステップS11の処理が実行されると、ステップS4の処理が実行される。
また、ステップS5において操作情報収集選択フラグがONでない、つまりOFFであると判定された場合には処理が終了される。また、ステップS8において操作情報の登録数が閾値以上でないと判定された場合には処理が終了される。
次に、図8のフローチャートを参照して、通信監視記録再生装置20の処理手順について説明する。
まず、パケット収集記録部22は、ネットワーク60上のパケットを収集する(ステップS21)。
次に、操作情報受信部21は、端末10に含まれる操作情報送信部14によって送信された操作情報を受信する(ステップS22)。
パケット収集記録部22は、収集されたパケットを、操作情報受信部21によって受信された操作情報と共にパケット格納部23に格納する(ステップS23)。また、パケット収集記録部22は、収集されたパケット及び操作情報受信部21によって受信された操作情報をパケット解析部24に送信する。
ここで、図9は、パケット格納部23に格納されたパケット及び操作情報について説明するための図である。
図9に示すように、パケット格納部23には、HTTPパケット231、操作情報232〜234及びHTTPパケット235が格納されている。HTTPパケット231及びHTTPパケット235は、HTTP通信によるパケットであり、パケット収集記録部22によって収集されたパケットである。また、操作情報232〜234は、操作情報受信部21によって受信された操作情報である。
図9に示すように、パケット収集記録部22によって収集されたパケット(HTTPパケット231及びHTTPパケット235)及び操作情報受信部21によって受信された操作情報(操作情報232〜234)は、例えば収集または受信された順、つまり時系列的にパケット格納部23に格納される。
再び図8に戻ると、パケット解析部24は、パケット収集記録部22によって送信された1つ乃至複数のパケットを解析することによって、当該1つ乃至複数のパケットから1つの通信内容(コンテンツ)の再構築を行う(ステップS24)。このとき、パケット解析部24は、再構築されたコンテンツからHTTPリクエストまたはHTTPリプライを取り出す。(ステップS24)。パケット解析部24は、再構築されたコンテンツ(HTTPリクエストまたはHTTPリプライ)及びパケット収集記録部22によって送信された操作情報を解析結果記録再生部25に送信する。この操作情報は、再構築されたコンテンツに対して発生したイベント情報を含む操作情報である。
解析結果記録再生部25は、パケット解析部24によって送信されたコンテンツ及び操作情報を対応付けて解析結果格納部26に格納する。
ここで、解析結果格納部26に格納されているコンテンツを検索するために、ユーザによって検索条件が指定された場合を想定する。なお、この検索条件は、例えば管理サーバ30を利用するユーザが当該管理サーバ30を操作することによって指定される。この場合、解析結果記録再生部25は、ユーザによって指定された検索条件に合致するコンテンツを解析結果格納部26から検索する(ステップS25)。また、解析結果記録再生部25は、検索されたコンテンツに対応付けて解析結果格納部26に格納されている操作情報を取得する。
解析結果記録再生部25は、検索されたコンテンツ及び取得された操作情報を管理サーバ30に送信する(ステップS26)。
次に、図10のフローチャートを参照して、管理サーバ30の処理手順について説明する。
ここで、管理サーバ30において通信内容(コンテンツ)を再生(再現)する場合には、上記したように管理サーバ30を利用するユーザが通信監視記録再生装置20に含まれる解析結果格納部26に格納されているコンテンツを検索するための検索条件を指定する。この場合、ユーザによって指定された検索条件は通信監視記録再生装置20に通知され、当該検索条件に対する応答として当該検索条件に合致するコンテンツ及び当該コンテンツに対応付けられている操作情報が送信される。管理サーバ30では、通信監視記録再生装置20によって送信されたコンテンツ及び操作情報に基づいて再生処理が実行される。
まず、コンテンツ受信部31は、通信監視記録再生装置20に含まれる解析結果記録再生部25によって送信されたコンテンツを受信する(ステップS31)。
次に、通信内容再現部34は、コンテンツ受信部31によって受信されたコンテンツから、管理サーバ30のブラウザに初期画面イメージを表示する(ステップS32)。
操作情報受信部32は、通信監視記録再生装置20に含まれる解析結果記録再生部25によって送信された操作情報を受信する(ステップS33)。
イベント生成部33は、操作情報受信部32によって受信された操作情報を読み込み、当該操作情報に含まれるイベント種別に応じたイベントを生成する(ステップS34)。例えばイベント種別がキーボードイベントの場合、操作情報受信部32によって受信された操作情報に含まれるキーボードのプレスまたはリリースイベント、及びキーコードに基づいてイベントを生成する。一方、例えばイベント種別がマウスイベントの場合、操作情報受信部32によって受信された操作情報に含まれるマウスのクリック、移動イベント、マウスイベントが発生した時点でのマウスカーソル位置に基づいてイベントを生成する。また、キーボードイベント及びマウスイベント以外のイベントの場合には、操作情報受信部32によって受信された操作情報に含まれるイベント種別に応じたイベントを生成する。
通信内容再現部34は、操作情報受信部32によって受信された操作情報に含まれるDOMオブジェクトをもとに、ブラウザAPIを介して対象のDOMオブジェクトに対してイベント生成部33によって生成されたイベントを送信する(ステップS35)。イベントが送信されると、上記したステップS32において表示された初期画面イメージ(コンテンツ)に対して端末10を利用してユーザが行った操作(イベント)を発生させることができる。これにより、発生したイベントに応じて動的に変化する画面イメージを再現することができる。
通信内容再現部34によってイベントが送信されると、操作情報受信部32によって受信された操作情報に含まれる時刻に応じて、次のイベント発生までの時間間隔(イベント間隔)の後、次のイベントを送信する。これにより、端末10において発生したイベントと同様の間隔でイベントを発生させることで、当該端末10のブラウザに表示されていたコンテンツ(通信内容)と同様の速度で画面遷移を再現することができる。
なお、通信内容を再現する際には、必ずしも操作情報に含まれる時刻と同じ時刻(速度)で再現する必要はなく、例えば記録されている時間間隔の1/2の時間間隔でイベントを送信することにより、2倍の速度で画面遷移を再現することも可能である。
上記したように本実施形態においては、パケットと共にユーザが端末10に対して実行した操作に関する操作情報が収集され、記録(格納)される。本実施形態においては、再構築された通信内容(コンテンツ)が再現される際には、当該コンテンツ及び操作情報が管理サーバ30に送信される。これにより、管理サーバ30においては、操作情報に基づいて生成されたイベントが当該操作情報に含まれるDOMオブジェクトに送信されるので、コンテンツの再現時に当該DOMオブジェクトによって特定される箇所において発生したイベント(操作)を再現することができる。したがって、本実施形態においては、コンテンツまたはスクリプトを解析することなく、ユーザのキーボード操作またはマウス操作によってブラウザに表示される画面が動的に変化するダイナミックHTMLのようなコンテンツが端末10において表示された場合であっても、当該端末10のブラウザに表示された画面を再現することが可能となる。
[第2の実施形態]
次に、図11〜図13を参照して、本発明の第2の実施形態に係る通信監視記録再生システムについて説明する。
本実施形態に係る通信監視記録再生システムは、前述した第1の実施形態の端末10、通信監視記録再生装置20及び管理サーバ30に代えて、端末(第1の端末)100、通信監視記録再生装置200及び管理サーバ(第2の端末)30を備える。なお、本実施形態に係る通信監視記録再生システムが接続されるネットワークシステムについては、前述した第1の実施形態と同様であるため、図1を用いて説明する。
図11は、本実施形態に係る通信監視記録再生システムを構成する端末100の主として機能構成を示すブロック図である。なお、端末100には、前述した第1の実施形態の端末10と同様に、例えばブラウザがインストールされており、Webサーバ50から読み込まれたコンテンツは当該ブラウザにより表示される。
図11に示すように、端末100は、イメージ収集条件テーブル101、イメージ取得部102、イメージ管理テーブル103及びイメージ送信部104を含む。
ここで、イメージ取得部102及びイメージ送信部104は、端末100にインストールされているブラウザにプラグインとして動的に組み込まれている。
イメージ収集条件テーブル101には、端末10(の画面)にコンテンツ(通信内容)が表示されている場合に、その画面イメージを取得(収集)する対象となるコンテンツの条件(を示す情報)が予め保持される。イメージ収集条件テーブル101には、画面イメージを取得する対象となるコンテンツの条件として、当該コンテンツのネットワーク上での位置を示すURL及び当該コンテンツのコンテンツタイプが対応付けて保持される。つまり、イメージ収集条件テーブル101のデータ構造自体は、前述した第1の実施形態の操作情報収集条件テーブル11と同様であるため、その詳しい説明は省略する。
イメージ取得部102は、端末100にインストールされているブラウザがWebサーバ50からコンテンツを読み込む際に、当該コンテンツに含まれるURL及びコンテンツタイプを取得する。イメージ取得部102は、取得されたURL及びコンテンツタイプがイメージ収集条件テーブル101に保持される条件に合致するか否かを判定する。
イメージ取得部102は、ブラウザにより読み込まれたコンテンツに対して端末100を利用してユーザが行う操作(イベント)が発生した場合、当該発生したイベントに関するイベント情報を取得する。イメージ取得部102は、取得されたイベント情報に応じて、端末100に表示されているコンテンツの画面イメージを示す画面イメージ情報を取得する。つまり、イメージ取得部102は、発生したイベントに応じて動的に変化した(更新された)画面イメージを示す画面イメージ情報を取得する。この画面イメージ情報には、コンテンツに対して発生したイベント情報を含む。イメージ取得部102は、ブラウザAPIを介して画面イメージ情報を取得する。イメージ取得部102は、取得された画面イメージ情報をイメージ管理テーブル103に登録する。
イメージ管理テーブル103は、イメージ取得部102によって取得された画面イメージ情報を保持する。イメージ管理テーブル103に保持される画面イメージ情報には、イベントの発生時刻、イベント情報、画面イメージの座標、画面イメージのサイズ及び画面イメージを識別するための識別子が含まれる。
イメージ送信部104は、イメージ管理テーブル103に予め定められた数の画面イメージ情報が登録されると、当該イメージ管理テーブル103に保持されている画面イメージ情報を、ネットワーク60を介して通信監視記録再生装置200に送信する。
図12は、本実施形態に係る通信監視記録再生システムを構成する通信監視記録再生装置200の主として機能構成を示すブロック図である。図12に示すように、通信監視記録再生装置200は、イメージ受信部201、パケット収集記録部202、パケット格納部203、パケット解析部204、解析結果記録再生部205及び解析結果格納部206を含む。
イメージ受信部201は、端末100に含まれるイメージ送信部104によって送信された画面イメージ情報を受信する。
パケット収集記録部202は、通信監視記録再生装置200の監視対処となるネットワーク60上のパケットを収集する。パケット収集記録部202は、スイッチ70を介してパケットを収集する。パケット収集記録部202は、イメージ受信部201によって受信されたイメージ情報と共に、収集されたパケットをパケット格納部203に格納する。また、パケット収集記録部202は、イメージ受信部201によって受信された画面イメージ情報及び収集されたパケットをパケット解析部204に送信する。
パケット解析部204は、パケット収集記録部202によって送信された1つ乃至複数のパケットを解析することによって、当該1つ乃至複数のパケットから1つの通信内容を再構築する。これにより、パケット解析部204は、例えばHTTPリクエストまたはHTTPリプライ(コンテンツ)を取り出し、パケット収集記録部202によって送信された画面イメージ情報と共に解析結果記録再生部205に送信する。
解析結果記録再生部205は、パケット解析部204によって送信されたコンテンツ及び画面イメージ情報を対応付けて解析結果格納部206に格納する。また、解析結果記録再生部205は、例えば管理サーバ300を利用するユーザによって指定された検索条件に応じて、当該検索条件に合致するコンテンツを解析結果格納部206から検索する機能を有する。解析結果記録再生部205は、検索結果となるコンテンツ及び当該コンテンツに対応付けられている画面イメージ情報を管理サーバ300に送信する。
図13は、本実施形態に係る通信監視記録再生システムを構成する管理サーバ300の主として機能構成を示すブロック図である。なお、図4と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図4と異なる部分について主に述べる。また、管理サーバ300には、前述した第1の実施形態の管理サーバ30と同様に、例えばブラウザがインストールされており、Webサーバ50から読み込まれたコンテンツは当該ブラウザにより表示される。
図13に示すように、管理サーバ300は、イメージ受信部301、イメージ生成部302及び通信内容再現部303を含む。
ここで、イメージ受信部301、イメージ生成部302及び通信内容再現部303は、管理サーバ300にインストールされているブラウザにプラグインとして動的に組み込まれている。
イメージ受信部301は、通信監視記録再生装置200に含まれる解析結果記録再生部205によって送信された画面イメージ情報を受信する。
イメージ生成部302は、イメージ受信部301によって受信された画面イメージ情報に含まれる画面イメージの座標位置に、当該画面イメージ情報に含まれる画面イメージのサイズの画面イメージを生成する。
通信内容再現部303は、イメージ生成部302によって生成された画面イメージを、ブラウザAPIを介して表示する。これにより、管理サーバ300のブラウザに端末100のブラウザに表示された画面が再現される。
図14は、図11に示すイメージ管理テーブル103に保持される画面イメージ情報のデータ構造の一例を示す。図14に示すように、画面イメージ情報には、時刻、イベント種別、カーソル位置、画面イメージ座標、画面イメージサイズ及び画面イメージ識別子を含む。時刻は、イベントが発生した時刻を示す。イベント種別は、例えばキーボードイベントまたはマウスイベント等のイベント種別を示す。カーソル位置は、イベント発生時のマウスカーソル位置を示す。画面イメージ座標は、画面イメージの座標位置を示す。画面イメージサイズは、画面イメージの大きさを示す。画面イメージ識別子は、画面イメージを識別するために用いられる識別子である。
図14に示す例では、画面イメージ情報103aには、時刻「2007/09/03 9:00:00.1234」、イベント種別「右マウスクリック」、カーソル位置「100,200」、画面イメージ座標「50,200」、画面イメージサイズ「100,100」及び画面イメージ識別子「1」が含まれている。また、画面イメージ情報103bには、時刻「2007/09/03 9:00:01.3456」、イベント種別「キープレス」、カーソル位置「100,200」、画面イメージ座標「50,400」、画面イメージサイズ「100,100」及び画面イメージ識別子「2」が含まれている。
次に、図15のフローチャートを参照して、端末100の処理手順について説明する。まず、イメージ取得部102は、端末100のブラウザがWebサーバ50からコンテンツを読み込む際に、当該コンテンツに含まれるURL及びコンテンツタイプを取得する(ステップS41)。
イメージ取得部102は、取得されたURL及びコンテンツタイプがイメージ収集条件テーブル1に保持されているか否かを判定する(ステップS42)。
取得されたURL及びコンテンツタイプがイメージ収集条件テーブル11に保持されていると判定された場合(ステップS42のYES)、イメージ取得部102は、端末100のブラウザにより読み込まれたコンテンツのイメージ収集選択フラグをONに設定する(ステップS43)。
ここで、例えばユーザがブラウザ(に表示されているコンテンツ)に対して操作を行った場合、またはWebページの読み込みが完了した場合などに、ブラウザ内でイベントが発生する。イベントが発生すると、ブラウザAPIを介してイメージ取得部12に対してイベントの発生が通知される(ステップS44)。
イメージ取得部102は、イベントの発生が通知されると、当該イベントが発生したコンテンツのイメージ収集選択フラグがONであるか否かを判定する(ステップS45)。
イメージ収集選択フラグがONであると判定された場合(ステップS45のYES)、ブラウザからキーボードイベントまたはマウスイベント等のイベント情報を取得する。このイベント情報には、キーボードイベントまたはマウスイベント等を示すイベント種別及びカーソル位置が含まれる。
イメージ取得部102は、取得されたイベント情報に応じて、端末100に表示されているコンテンツの画面イメージ(ブラウザの画面イメージ)を示す画面イメージ情報を取得する(ステップS46)。イメージ取得部102は、画面イメージ情報をブラウザAPIを介して取得する。
このとき、例えば発生したイベントによって端末100のブラウザの画面イメージ全体が更新された場合には、イメージ取得部102は、当該ブラウザの全画面イメージを示す画面イメージ情報を取得する。一方、例えば発生したイベントによって端末100のブラウザの画面イメージの一部のみが更新された場合、イメージ取得部102は、当該ブラウザの画面イメージの更新された一部のみ(差分)を示す画面イメージ情報を取得する。
この場合、更新前の画面イメージ情報を端末100のディスク等に保存しておき、当該更新前の画面イメージ情報と更新後の画面イメージ情報を比較することにより、画面イメージの全体が更新されたか、または一部が更新されたかを判別することができる。
イメージ取得部12は、取得された画面イメージ情報をイメージ管理テーブル103に登録する(ステップS47)。
次に、イメージ送信部104は、イメージ管理テーブル103の画面イメージ情報の登録数が閾値以上であるか否かを判定する(ステップS48)。
画面イメージ情報の登録数が閾値以上であると判定された場合(ステップS48のYES)、イメージ送信部104は、イメージ管理テーブル103に保持されている画面イメージ情報を、ネットワーク60経由で通信監視記録再生装置200に送信する(ステップS49)。画面イメージ情報の送信に際しては、トラフィック量を削減するために、当該画面イメージ情報を圧縮して送信することも可能である。また、通信監視記録再生装置200への送信が失敗した場合には、一時的に端末100のディスク等に保存し、後で再送する構成であっても構わない。
イメージ送信部104は、画面イメージ情報が通信監視記録再生装置200に送信されると、イメージ管理テーブル103に保持されている画面イメージ情報を当該イメージ管理テーブル103から削除(クリア)する(ステップS50)。
一方、ステップS42においてURL及びコンテンツタイプがイメージ収集条件テーブル101に保持されていないと判定された場合、端末100のブラウザにより読み込まれたコンテンツのイメージ収集選択フラグをOFFに設定する(ステップS51)。ステップS51の処理が実行されると、ステップS44の処理が実行される。
また、ステップS45においてイメージ収集選択フラグがONでない、つまりOFFであると判定された場合には処理が終了される。また、ステップS48において画面イメージ情報の登録数が閾値以上でないと判定された場合には処理が終了される。
次に、図16のフローチャートを参照して、通信監視記録再生装置200の処理手順について説明する。
まず、パケット収集記録部202は、ネットワーク60上のパケットを収集する(ステップS61)。
次に、イメージ受信部201は、端末100に含まれるイメージ送信部104によって送信された画面イメージ情報を受信する(ステップS62)。
パケット収集記録部202は、収集されたパケットを、イメージ受信部201によって受信された画面イメージ情報と共にパケット格納部203に格納する(ステップS63)。また、パケット収集記録部202は、収集されたパケット及びイメージ受信部201によって受信された画面イメージ情報をパケット解析部204に送信する。
パケット解析部204は、パケット収集記録部202によって送信された1つ乃至複数のパケットを解析することによって、当該1つ乃至複数のパケットから1つの通信内容(コンテンツ)の再構築を行う(ステップS64)。このとき、パケット解析部204は、再構築されたコンテンツからHTTPリクエストまたはHTTPリプライを取り出す(ステップS64)。パケット解析部204は、再構築されたコンテンツ(HTTPリクエストまたはHTTPリプライ)及びパケット収集記録部202によって送信された画面イメージ情報を解析結果記録再生部205に送信する。この画面イメージ情報は、再構築されたコンテンツに対して発生したイベント情報を含む画面イメージ情報である。
解析結果記録再生部205は、パケット解析部204によって送信されたコンテンツ及び画面イメージ情報を対応付けて解析結果格納部206に格納する。
ここで、解析結果格納部206に格納されているコンテンツを検索するために、ユーザによって検索条件が指定された場合を想定する。なお、この検索条件は、例えば管理サーバ300を利用するユーザが、当該管理サーバ300を操作することによって指定される。この場合、解析結果記録再生部205は、ユーザによって指定された検索条件に合致するコンテンツを解析結果格納部206から検索する(ステップS65)。また、解析結果記録再生部205は、検索されたコンテンツに対応付けて解析結果格納部206に格納されている画面イメージ情報を取得する。
解析結果記録再生部205は、検索されたコンテンツ及び取得された画面イメージ情報を管理サーバ300に送信する(ステップS66)。
次に、図17のフローチャートを参照して、管理サーバ300の処理手順について説明する。
ここで、管理サーバ300において通信内容(コンテンツ)を再生(再現)する場合には、上記したように管理サーバ300を利用するユーザが通信監視記録再生装置200に含まれる解析結果格納部206に格納されているコンテンツを検索するための検索条件を指定する。この場合、ユーザによって指定された検索条件は通信監視記録再生装置200に通知され、当該検索条件に対する応答として当該検索条件に合致するコンテンツ及び当該コンテンツに対応付けられている画面イメージ情報が送信される。管理サーバ300では、通信監視記録再生装置200によって送信されたコンテンツ及び画面イメージ情報に基づいて再生処理が実行される。
まず、前述した図10に示すステップS31及びステップS32に相当するステップS71及びステップS72の処理が実行される。
次に、イメージ受信部301は、通信監視記録再生装置200に含まれる解析結果記録再生部205によって送信された画面イメージ情報を受信する(ステップS73)。
イメージ生成部302は、イメージ受信部301によって受信された画面イメージ情報を読み込み、当該画面イメージ情報に含まれる画面イメージ座標及び画面イメージサイズに応じて画面イメージを生成する(ステップS74)。つまり、イメージ生成部302は、イメージ受信部301によって受信された画面イメージ情報に含まれる画面イメージ座標の位置に、当該画面イメージ情報に含まれる画面イメージサイズの画面イメージ(更新された画面イメージ)を生成する。
通信内容再現部303は、イメージ生成部302によって生成された画面イメージを、ブラウザAPIを介して表示する(ステップS75)。これにより、上記したステップS72において表示された初期画面イメージ(コンテンツ)に対して端末10を利用してユーザが操作を行うことによって動的に変化した画面イメージ(更新された画面イメージ)を再現することができる。
通信内容再現部303は、イメージ受信部301によって受信された画面イメージ情報に含まれる時刻に応じて、次のイベント発生まで、つまり、次の画面イメージの更新までの時間間隔の後、次の画面イメージを表示する。これにより、端末100において発生したイベントと同様の間隔で画面イメージを表示させることで、当該端末100のブラウザに表示されていたコンテンツと同様の速度で画面遷移を再現することができる。
なお、通信内容を再現する際に、例えば画面イメージを時系列的にサムネイル形式で縮小して一覧表示し、ユーザに画面イメージを選択させ、選択された画面イメージを指定されたサイズで表示するようにすることも可能である。
上記したように本実施形態においては、パケット共にユーザが端末100に対して実行した操作に応じて更新された画面イメージを示す画面イメージ情報が収集され、記録(格納)される。本実施形態においては、再構築された通信内容(コンテンツ)が再現される際には、当該コンテンツ及び画面イメージ情報が管理サーバ300に送信される。これにより、管理サーバ300においては、イベントの発生時刻に応じて画面イメージ情報に応じて更新された画面イメージが表示される。従って、本実施形態においては、コンテンツまたはスクリプトを解析することなく、ユーザの操作によってブラウザに表示されている画面が動的に変化するダイナミックHTMLのようなコンテンツが端末100において表示された場合であっても、当該端末100のブラウザに表示された画面を再現することが可能となる。
[第3の実施形態]
次に、図18を参照して、本発明の第3の実施形態に係る通信監視記録再生システムについて説明する。
本実施形態に係る通信監視記録再生システムは、前述した第1の実施形態の端末10に代えて、端末110を備える。
図18は、本実施形態に係る通信監視記録再生システムを構成する端末110の主として機能構成を示すブロック図である。なお、前述した図2と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図2と異なる部分について主に述べる。
図18に示すように、端末110は、操作情報格納処理部111及び操作情報格納部112を含む。
ここで、操作情報格納処理部111は、端末110にインストールされているブラウザにプラグインとして動的に組み込まれる。
操作情報格納処理部111は、操作情報管理テーブル13に予め定められた数の操作情報が登録されると、当該操作情報管理テーブル13に保持されている操作情報を操作情報格納部112に格納(保存)する処理を実行する。操作情報格納部112は、例えばハードディスクドライブ(HDD:Hard Disk Drive)のようなディスクである。
操作情報格納部112に操作情報が格納される際に、当該操作情報を圧縮して格納することが選択可能な構成であっても構わない。
操作情報格納処理部111によって操作情報管理テーブル13に保持されている操作情報が操作情報格納部112に正常に格納されると、当該操作情報管理テーブル13に保持されている操作情報は当該操作情報管理テーブル13から削除(クリア)される。
つまり、本実施形態においては、通信監視記録再生装置20では、操作情報は管理(格納)されない。管理サーバ30において通信内容の再生処理が実行される際には、通信監視記録再生装置20が当該再生されるコンテンツに対応する操作情報をネットワーク60を介して操作情報格納処理部111から読み込み、管理サーバ30に送信する。これにより、管理サーバ30においては当該送信された操作情報に基づいて端末10のブラウザに表示された画面が再現される。本実施形態においては、この点以外の動作については前述した第1の実施形態と同様であるためその詳しい説明は省略する。
前述した第1の実施形態では収集(取得)された操作情報が全てネットワーク60を介して通信監視記録再生装置20に送信されるが、上記したように本実施形態においては、管理サーバ30において通信内容の再生処理が実行される際に、必要な操作情報のみがネットワーク60を介して通信監視記録再生装置20によって読み込まれるので、端末10及び通信監視記録再生装置20間の通信にかかるデータ量(トラフィック量)を削減することが可能となる。
[第4の実施形態]
次に、図19を参照して、本発明の第4の実施形態に係る通信監視記録再生システムについて説明する。
図19は、本実施形態に係る通信監視記録再生システムが接続されるネットワークシステムについて説明するための図である。なお、前述した図1と同様の部分については同一参照符号を付してその詳しい説明は省略する。ここでは、図1と異なる部分について主に述べる。
本実施形態に係る通信監視記録再生システムは、前述した第1の実施形態の通信監視記録再生装置20に代えて、通信監視記録再生装置210を備える。この通信監視記録再生装置210は、ネットワーク60を介してプロキシサーバ(中継装置)80と接続されている。このプロシキサーバ80は、端末10及びWebサーバ間の通信を中継する機能を有する。
図20は、図19に示す通信監視記録再生装置210の主として機能構成を示すブロック図である。なお、前述した図3と同様の部分には同一参照符号を付してその詳しい説明は省略する。ここでは、図3と異なる部分について述べる。
通信監視記録再生装置210は、検出部211及び通信制御指示部212を含む。検出部211は、パケット収集記録部22によって収集されたパケットが操作情報を収集する機能を有する端末10から送信されたパケットであるか否かを判定する。つまり、検出部211は、パケット収集記録部22によって収集されたパケットが操作情報取得部12及び操作情報送信部14がプラグインとしてブラウザに組み込まれている端末10から送信されたパケットであるか否かを判定する。
具体的には、検出部211は、パケット収集記録部22によって収集されたパケットから再構築される通信内容(コンテンツ)に対して発生したイベント情報を含む操作情報(以下、パケットに対応する操作情報と表記)が操作情報受信部21によって受信されたか否かに基づいて判定する。
検出部211は、パケット収集記録部22によって収集されたパケットに対応する操作情報が操作情報受信部21によって受信されたか否かを通信制御指示部212に通知する。
通信制御指示部212は、検出部211によってパケット収集記録部22によって収集されたパケットに対応する操作情報が操作情報受信部21によって受信されていない旨が通知されると、例えば当該パケットに含まれるIPアドレスが割り当てられている端末10とWebサーバ50との通信を遮断するようにプロシキサーバ80に対して指示する。この指示により、プロキシサーバ80においては、例えばこの端末10からのHTTPリクエストを受け取っても応答しないように設定される。これにより、端末10とWebサーバ50との通信は遮断される。
一方、通信制御指示部212は、検出部211によってパケット収集記録部22によって収集されたパケットに対応する操作情報が操作情報受信部21によって受信されている旨が通知されると、例えば当該パケットに含まれるIPアドレスが割り当てられている端末10とWebサーバ50との間で通信ができるようにプロシキサーバ80に対して指示する。この指示により、プロキシサーバ80においては、例えばこの端末10からのHTTPリクエストを受け取った場合には当該リクエストに対して応答するように設定される。
上記したように本実施形態においては、操作情報を収集する機能を有しない端末10から送信されたパケットがパケット収集記録部22によって収集された場合、当該パケットを送信した端末10とWebサーバ50との間の通信を遮断するようにプロキシサーバ80に指示され、プロキシサーバ80において当該端末10とWebサーバ50との間の通信は遮断される。
このように、本実施形態においては、例えばユーザの操作によってブラウザに表示される画面が動的に変化するダイナミックHTMLのようなコンテンツを再現しようとした場合、操作情報を収集する機能を有しない端末10からは操作情報を収集することができないため当該コンテンツを再現することはできない。したがって、本実施形態においては、通信内容(コンテンツ)を再現することができない端末10からのWebサーバ50に対する通信を遮断することができる。
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
10,100,110…端末(第1の端末)、11…操作情報収集条件テーブル、12…操作情報取得部、13…操作情報管理テーブル、14…操作情報送信部、20,200,210…通信監視記録再生装置、21…操作情報受信部、22,202…パケット収集記録部、23,203…パケット格納部、24,204…パケット解析部、25,205…解析結果記録再生部、26,206…解析結果格納部、30,300…管理サーバ(第2の端末)、31…コンテンツ受信部、32…操作情報受信部、33…イベント生成部、34,303…通信内容再現部、40…インターネット、50…Webサーバ、60…ネットワーク、70…スイッチ、80…プロシキサーバ、101…イメージ収集条件テーブル、102…イメージ取得部、103…イメージ管理テーブル、104…イメージ送信部、111…操作情報格納処理部、112…操作情報格納部、201…イメージ受信部、211…検出部、212…通信制御指示部、301…イメージ受信部、302…イメージ生成部。