以下、図面を用いて実施形態を説明する。
図1は、情報処理装置、情報処理システムおよびプログラムの一実施形態を示す。図1に示す情報処理システム100は、情報処理装置10、情報処理装置10に接続された記憶装置20および情報処理装置10を管理する管理装置30を有する。
管理装置30は、データの取得条件を含む取得要求を情報処理装置10に発行し、取得条件を満たす取得対象のデータを情報処理装置10を介して記憶装置20から取得する。情報処理装置10は、取得要求を管理装置30から受信した場合、取得条件を満たす取得対象のデータを記憶装置20から取得する。この際、情報処理装置10は、後述するように、記憶装置20からの取得時間が最も短いと想定される取得手法を使用して取得対象のデータを取得する。そして、情報処理装置10は、取得したデータを管理装置30に送信する。情報処理装置10は、第1の情報処理装置の一例であり、管理装置30は、第2の情報処理装置の一例である。
情報処理装置10は、測定部11、設定部12、取得部13およびメモリ14を有する。例えば、測定部11、設定部12および取得部13の機能は、メモリ14に格納されたプログラムを情報処理装置10が実行することで実現される。なお、測定部11、設定部12および取得部13の機能は、情報処理装置10が有するFPGA(Field-Programmable Gate Array)等のハードウェアにより実現されてもよい。
メモリ14は、セッション数と、取得対象のデータのオブジェクト単位での記憶装置20からの取得時間と、取得対象のデータのセッション単位での記憶装置20からの取得時間とを記憶する記憶領域15を有する。セッション数の記憶領域には、データの取得条件を満たす取得対象のデータが属するセッションSSNの数が格納される。また、メモリ14は、判定条件を記憶する記憶領域16とプログラムを記憶する記憶領域17とを有する。
記憶装置20には、所定数のセッションSSNに属するデータを含むオブジェクトOBJが格納される。以下では、セッションSSNに属するデータは、セッションSSNとも称される。例えば、セッションSSNは、図示しない他の情報処理装置間での通信セッションに対応し、データ(パケット)の送信元と宛先との組み合わせ毎に異なる。例えば、図示しないキャプチャ装置は、通信装置等の他の情報処理装置間で伝送されるデータをキャプチャし、キャプチャしたデータを、所定数のセッションSSNの各々に属するデータを含むオブジェクトOBJにまとめて記憶装置20に格納する。なお、キャプチャ装置は、情報処理装置10内に設けられてもよい。
測定部11は、取得要求に含まれる取得条件毎に、取得対象のデータをオブジェクト単位で記憶装置20から取得するのに掛かる取得時間と、取得対象のデータをセッション単位での記憶装置20から取得するのに掛かる取得時間とを測定する。例えば、測定部11は、記憶装置20に格納されたオブジェクトOBJの中から取得条件を満たすデータを含むオブジェクトOBJを検索する。そして、測定部11は、検索により得たオブジェクトOBJの各々について、取得対象のデータのオブジェクト単位での取得時間と、取得対象のデータのセッション単位での取得時間とを測定する。
測定部11は、測定したオブジェクト単位での取得時間とセッション単位での取得時間とを、各オブジェクトOBJに含まれる取得対象のデータが属するセッションSSNの数とともに記憶領域15に格納する。なお、測定部11は、取得対象のデータを含むオブジェクトOBJ内において取得対象のデータが占める割合(オブジェクトOBJのデータ量に対する取得対象のデータ量の割合)をセッション数の代わりに記憶領域15に格納してもよい。
設定部12は、記憶領域15に格納された情報に基づいて、データをオブジェクト単位またはセッション単位のいずれで記憶装置から取得するかを判定する判定条件を設定する。例えば、設定部12は、オブジェクト単位での取得時間とセッション単位での取得時間とのどちらが短いかをセッション数毎に判定する。そして、設定部12は、オブジェクト単位での取得時間とセッション単位での取得時間との長短の関係が逆転するセッション数を求め、求めたセッション数を判定条件(閾値)に設定する。これにより、記憶装置20に格納されたデータを取得する場合、オブジェクト単位での取得方式とセッション単位での取得方式とのいずれが効率よくデータを取得できるかの指標である判定条件を求めることができる。なお、取得時間の長短の関係が逆転するセッション数は、統計的手法を用いて求められてもよい。
取得部13は、例えば、取得条件を含む取得要求を管理装置30から受信したことに基づいて動作する。取得部13は、取得条件を満たす取得対象のデータを含むオブジェクトOBJ毎に、判定条件16(閾値)に基づいて、データをオブジェクト単位またはセッション単位で記憶装置20から取得し、取得したデータを管理装置30に送信する。
例えば、取得条件に”データの送信元の情報処理装置”が指定される場合、取得部13は、取得条件を満たす情報処理装置から送信されたデータ(パケット)を含むオブジェクトOBJを選択する。そして、取得部13は、設定部12が設定した判定条件16に基づいて、取得対象のデータをオブジェクト単位で取得するかセッション単位で取得するかをオブジェクトOBJ毎に決定し、決定した取得方式でデータを記憶装置20から取得する。取得対象のデータの取得方式を判定条件に基づいてオブジェクトOBJ毎に選択することで、取得方式を選択せずに1つの選択方式に設定する場合に比べて、取得対象のデータを効率よく取得することができる。
図2は、図1に示す測定部11が測定する取得時間と、図1に示す設定部12が設定する判定条件の一例を示す。図2において、測定部11が取得対象のデータをオブジェクト単位で取得する場合のセッション数別の取得時間は、黒丸で示される。また、測定部11が取得対象のデータをセッション単位で取得する場合のセッション数別の取得時間は、白丸で示される。設定部12は、オブジェクト単位での取得時間とセッション単位での取得時間との分布に基づいて、取得時間が逆転するセッション数を判定条件(閾値)に設定する。
例えば、図1に示す取得部13は、取得条件を満たすデータを含む各オブジェクトOBJにおいて、取得条件を満たすデータが属するセッションSSNの数が判定条件(閾値)で示されるセッション数を超える場合、データをオブジェクト単位で取得する。一方、取得部13は、取得条件を満たすデータを含む各オブジェクトOBJにおいて、取得条件を満たすデータが属するセッションSSNの数が判定条件(閾値)で示されるセッション数以下の場合、データをセッション単位で取得する。すなわち、取得部13は、判定条件に基づいてオブジェクトOBJ毎にデータの取得方式を切り替える。これにより、データをオブジェクト単位のみで取得する場合、または、データをセッション単位のみで取得する場合に比べて、記憶装置20からのデータの取得効率を向上することができる。
以上、図1および図2に示す実施形態では、以下に示す効果を得ることができる。設定部12は、取得条件を満たすデータをオブジェクト単位での取得方式とセッション単位での取得方式とのいずれで取得する方がデータを効率よく取得できるかの指標である判定条件を設定できる。この際、設定部12は、測定部11が測定した取得時間の実測値に基づいて判定条件を設定することで、計算または予測による得られる取得時間に基づいて判定条件を設定する場合に比べて、高い精度で判定条件を設定できる。取得部13は、設定部12が設定した判定条件に基づいて、オブジェクトOBJ毎にデータの取得方式を切り替えることで、取得方式を切り替えない場合に比べて、記憶装置20からのデータの取得効率を向上することができる。この結果、情報処理システム100の処理性能を向上することができる。
図3は、情報処理装置、情報処理システムおよびプログラムの別の実施形態を示す。図3に示す情報処理システム100Aは、ネットワークスイッチ2に接続されたキャプチャサーバ40と、キャプチャサーバ40に接続されたストレージ装置70と、キャプチャサーバ40に接続された管理装置80とを有する。例えば、管理装置80は、ネットワークNWを管理する管理者により使用される。なお、管理装置80は、ネットワークスイッチを介してキャプチャサーバ40に接続されてもよい。
キャプチャサーバ40は、情報処理装置および第1の情報処理装置の一例であり、管理装置80は、第2の情報処理装置の一例である。ストレージ装置70は、記憶装置の一例である。
ネットワークスイッチ2は、ネットワークNWに接続された端末装置1(1a、1b、1c)と、ウェブサーバ3(3a、3b)との間で送受信されるパケットの経路を切り替える。例えば、各端末装置1は、ウェブサーバ3を利用するユーザが使用するコンピュータである。端末装置1およびウェブサーバ3は、他の情報処理装置の一例である。
ネットワークNWは、ネットワークスイッチ2のポート2aに接続され、ウェブサーバ3a、3bの各々は、ネットワークスイッチ2のポート2b、2cのいずれかに接続される。キャプチャサーバ40は、ポート2bに伝送されるパケットを、ミラーポート2dを介して受信し、ポート2cに伝送されるパケットを、ミラーポート2eを介して受信する。
なお、情報処理システム100Aは、ネットワークスイッチ2およびウェブサーバ3を含んでもよい。キャプチャサーバ40は、ミラーポート2d、2eでなく、ネットワークNWとウェブサーバ3a、3bとの間に配置されるタップに接続されてもよい。この場合、キャプチャサーバ40は、端末装置1とウェブサーバ3との間で送受信されるパケットを、タップを介してキャプチャする。また、キャプチャサーバ40は、端末装置1およびウェブサーバ3以外の装置間で送受信されるデータ等の情報をキャプチャしてもよい。例えば、ウェブサーバ3の代わりに計算サーバが配置されてもよい。あるいは、端末装置1の代わりにウェブサーバが配置され、ウェブサーバ3の代わりにストレージサーバまたはデータベースシステム等が配置されてもよい、
キャプチャサーバ40は、キャプチャ制御部42、セッション取得部44、オフライン診断部46およびメモリ50を有する。キャプチャ制御部42は、パケットをキャプチャするキャプチャモード中に動作し、端末装置1とウェブサーバ3との間で送受信されるパケットを、ミラーポート2を介してキャプチャし、キャプチャしたパケットをストレージ装置70に格納する。ストレージ装置70に格納されるパケットは、データの一例である。キャプチャ制御部42の動作の例は、図6に示される。
セッション取得部44は、例えば、送信元および宛先が共通のパケットを含むセッションを取得する取得要求を、管理装置80から受信した場合、取得要求に含まれる取得条件を満たすセッションに含まれるパケットをストレージ装置70から取得する。例えば、取得条件は、送信元を示す情報および宛先を示す情報の少なくともいずれかを含む。ここで、セッション取得部44は、後述する閾値を用いて、ストレージ装置70からのセッションに含まれる取得対象のパケットの取得時間が最も短くなると予想される取得方式でパケットを取得する。セッション取得部44は、取得したパケットを管理装置80に送信する。セッション取得部44の動作の例は、図7および図12に示される。セッション取得部44は、セッションに含まれるパケット(データ)をオブジェクト単位またはセッション単位でストレージ装置70から取得する取得部の一例である。以下の説明では、セッションに含まれるパケットは、単にセッションとも称され、セッション取得部44がパケットを取得することは、セッションを取得するとも称される。
オフライン診断部46は、キャプチャサーバ40がミラーポート2(2d、2e)からパケットをキャプチャしない非キャプチャモード中に動作し、ストレージ装置70に予め格納されたパケット(セッション)を利用して閾値を算出する。閾値は、判定条件の一例である。オフライン診断部46の動作の例は、図8から図11に示される。なお、オフライン診断部46は、管理装置80が取得要求を発行しない非取得モード中に動作してもよい。
メモリ50は、例えば、複数のSDRAM(Synchronous Dynamic Random Access Memory)を含むメモリモジュールを有する。なお、メモリ50は、SRAM(Static Random Access Memory)を有してもよく、フラッシュメモリまたはMRAM(Magnetoresistive Random Access Memory)等の不揮発性メモリを有してもよい。
メモリ50は、セッション情報テーブル52、オブジェクト情報テーブル54、診断情報テーブル56、閾値保持部58およびパケットバッファ60が割り当てられる記憶領域と、データ取得制御プログラム62が格納される記憶領域とを有する。セッション情報テーブル52およびオブジェクト情報テーブル54の例は、図4に示される。診断情報テーブル56の例は、図5に示される。閾値保持部58には、後述する閾値が保持される。なお、閾値は、閾値保持部58の代わりに、キャプチャサーバ40に含まれる図示しないプロセッサが有するレジスタに保持されてもよい。パケットバッファ60には、ミラーポート2d、2eを介して受信するパケットであって、ストレージ装置70に格納する前のパケットが保持される。
キャプチャ制御部42、セッション取得部44およびオフライン診断部46の機能は、キャプチャサーバ40がデータ取得制御プログラム62を実行することで実現される。なお、キャプチャ制御部42、セッション取得部44およびオフライン診断部46は、キャプチャサーバ40が有するFPGA等のハードウェアにより実現されてもよい。
ストレージ装置70は、HDD(Hard Disk Drive)またはSSD(Solid State Drive)等を有し、キャプチャサーバ40によりキャプチャされたパケットを記憶する。管理装置80は、取得条件を満たすセッションを取得するための取得要求を取得条件とともにキャプチャサーバ40に送信し、キャプチャサーバ40から受信したセッションに含まれるパケットを解析する。そして、パケットの解析結果に応じて、ネットワークNWとウェブサーバ3間の通信経路で発生した通信障害等の原因が究明される。
図4は、図3に示すセッション情報テーブル52およびオブジェクト情報テーブル54の一例を示す。セッション情報テーブル52は、送信元および宛先が共通の所定数のパケットを含むセッションに関する情報を保持する。図4において、セッション情報テーブル52の各行が、1つのセッションに対応する。セッション情報テーブル52は、時刻、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、通信タイプ、オブジェクト名、オフセットおよびサイズが格納される複数の領域(以下、行領域とも称する)を有する。セッション情報テーブル52の各行領域は、1つのセッションに対応する。
時刻の領域には、例えば、セッションに含まれるパケットのいずれか(例えば、最初のパケット)をキャプチャサーバ40が受信した時刻が格納される。なお、各パケットが、パケットの送信時刻を示す情報を含む場合、時刻の領域には、送信時刻が格納されてもよい。送信元アドレスの領域には、セッションに含まれるパケットの送信元の装置のIP(Internet Protocol)アドレスが格納され、送信元ポートの領域には、セッションに含まれるパケットの送信元のアプリケーションを識別するポート番号が格納される。
宛先アドレスの領域には、セッションに含まれるパケットの宛先の装置のIPアドレスが格納され、宛先ポートの領域には、セッションに含まれるパケットの宛先のアプリケーションを識別するポート番号が格納される。通信タイプの領域には、セッションに含まれるパケットの通信プロトコルを示す情報が格納される。送信元アドレス、送信元ポート、宛先アドレス、宛先ポートおよび通信タイプは、セッションを識別するセッション情報である。
オブジェクト名の領域には、ストレージ装置70が保持する複数のオブジェクトのうち、セッションを含むオブジェクトを識別する情報が格納される。オフセットの領域には、オブジェクト名で示されるオブジェクト内でのセッションの位置を示すアドレス等の情報が格納される。サイズの領域には、セッションのサイズが格納される。
オブジェクト情報テーブル54は、キャプチャサーバ40がパケット群をストレージ装置70に格納する単位であるオブジェクト(所定数のセッションを含む)に関する情報を保持する。オブジェクト情報テーブル54は、オブジェクト名、オフセットおよびサイズが格納される複数の領域(以下、行領域とも称する)を有する。オブジェクト情報テーブル54の各行領域は、1つのオブジェクトに対応する。
オブジェクト名は、セッション情報テーブル52に格納されるオブジェクト名と同じである。例えば、オブジェクトに3つのセッションが含まれる場合、セッション情報テーブル52において、3つのセッションに対応する3つの行領域に同じオブジェクト名が格納される。オフセットの領域には、オブジェクトを格納するためにストレージ装置70に割り当てられた記憶領域内でのオブジェクトの位置を示すアドレス等の情報が格納される。サイズの領域には、オブジェクトのサイズが格納される。
キャプチャ制御部42は、キャプチャしたパケット(セッション)を含むオブジェクトを生成した場合、生成したオブジェクトに関する情報をオブジェクト情報テーブル54の行領域に格納する。また、キャプチャ制御部42は、オブジェクトに含まれるセッションに関する情報をセッション情報テーブル52の行領域に格納する。ここで、行領域に格納される送信元アドレス、送信元ポート、宛先アドレス、宛先ポートおよび通信タイプは、パケットに含まれる情報である。キャプチャ制御部42がオブジェクトを生成する例は、図6に示される。
図5は、図3に示す診断情報テーブル56に格納される情報の一例を示す。診断情報テーブル56は、”取得条件を満たすセッション数”、”オブジェクト単位での取得時間”および”セッション単位での取得時間”が格納される複数の領域(以下、行領域とも称する)を有する。診断情報テーブル56が保持する情報は、オフライン診断部46により格納される。オフライン診断部46が診断情報テーブル56に情報を格納する例は、図9に示される。
”取得条件を満たすセッション数”の領域には、管理装置80からの取得要求に含まれる取得条件を満たすセッションを含む所定数のオブジェクトの各々に含まれるセッションの数が格納される。”オブジェクト単位での取得時間”の領域には、”取得条件を満たすセッション数”で示されるセッションをストレージ装置70からオブジェクト単位で読み出した場合の取得時間が格納される。”セッション単位での取得時間”の領域には、”取得条件を満たすセッション数”で示されるセッションをストレージ装置70からセッション単位で読み出した場合の取得時間が格納される。
図5に示す例では、あるオブジェクトから10個のセッションを取得する場合、オブジェクト単位での取得時間は2秒であり、セッション単位での取得時間は0.7秒である。また、あるオブジェクトから50個のセッションを取得する場合、オブジェクト単位での取得時間は3秒であり、セッション単位での取得時間は4秒である。図5では、説明のために、各行領域において取得時間が短い側に下線を付している。なお、診断情報テーブル56に格納される取得時間は、セッション数で示されるセッションの取得時間の一例であり、取得するセッションのサイズにより異なる。このため、図5において、セッション数が”20”の場合、2通りの取得時間が診断情報テーブル56に格納されている。
図6は、図3に示すキャプチャ制御部42の動作の一例を示す。図6では、説明を分かりやすくするため、パケットバッファ60が保持可能なパケットPCKTの数は6個であるとする。各パケットPCKTの末尾に付けた数字は、パケットPCKTのキャプチャ順を示す。各パケットPCKTの括弧内に示す矢印の左側の符号は、パケットPCKTの送信元の装置を示し、各パケットPCKTの括弧内に示す矢印の右側の符号は、パケットPCKTの宛先の装置を示す。図6では、説明を分かりやすくするために、端末装置1からウェブサーバ3に伝送されるパケットPCKTがキャプチャされるとする。
まず、キャプチャ制御部42は、キャプチャしたパケットPCKT(PCKT1−PCKT6)を、パケットバッファ60に順次格納する(図6(a))。キャプチャ制御部42は、パケットバッファ60に6個のパケットPCKTが保持された場合、送信元と宛先のペアが同じパケットPCKTをセッションSSN(SSN1、SSN2)としてまとめる(図6(b))。そして、セッションSSN1、SSN2を含むオブジェクトOBJ1をストレージ装置70に格納する(図6(c))。
キャプチャ制御部42は、オブジェクトOBJ1に関する情報を図4に示すオブジェクト情報テーブル54に格納する。また、キャプチャ制御部42は、オブジェクトOBJ1に含まれるセッションSSN1、SSN2に関する情報を図4に示すセッション情報テーブル52に格納する。
キャプチャ制御部42は、ストレージ装置70に格納されたパケットPCKTを、パケットバッファ60から削除する。例えば、キャプチャ制御部42は、送信元と宛先のペアが同じ他のパケットPCKTがパケットバッファ60に保持されていないパケットPCKT5を、セッションSSNとしてまとめない。このため、パケットPCKT5は、パケットバッファ60に残される。
この後、キャプチャ制御部42は、新たにキャプチャしたパケットPCKT(PCKT6−PCKT11)を、パケットバッファ60に順次格納する(図6(d))。キャプチャ制御部42は、パケットバッファ60に6個のパケットPCKTが保持されたため、送信元と宛先のペアが同じパケットPCKTをセッションSSN(SSN3、SSN4、SSN5)としてまとめる(図6(e))。そして、セッションSSN3、SSN4、SSN5を含むオブジェクトOBJ2をストレージ装置70に格納する(図6(f))。
キャプチャ制御部42は、オブジェクトOBJ2に関する情報をオブジェクト情報テーブル54に格納し、オブジェクトOBJ2に含まれるセッションSSN3、SSN4、SSN5に関する情報をセッション情報テーブル52に格納する。また、キャプチャ制御部42は、ストレージ装置70に格納されたパケットPCKTを、パケットバッファ60から削除する。
このようにして、キャプチャ制御部42は、ミラーポート2を介してキャプチャしたパケットPCKTを、所定数のセッションSSNを含むオブジェクト単位でストレージ装置70に格納する。なお、キャプチャ制御部42は、パケットバッファ60が保持するパケットPCKTを所定の時間毎(例えば、10秒毎)にセッションSSNとしてまとめてオブジェクトOBJを生成し、生成したオブジェクトOBJをストレージ装置70に格納してもよい。
図7は、図3に示すセッション取得部44の動作の一例を示す。図7では、ストレージ装置70には、複数のオブジェクトOBJ3、OBJ4が格納されている。例えば、セッション取得部44は、管理装置80から受信した取得要求に含まれる取得条件に基づいて、セッション情報テーブル52を参照してストレージ装置70を検索し、取得対象のセッションSSNを含むオブジェクトOBJを見つける。図7において、取得条件を満たすセッションSSNは、太枠で示される。
セッション取得部44は、検索により見つけたオブジェクトOBJ毎に、取得対象のセッションSSNをオブジェクト単位またはセッション単位のいずれでストレージ装置70から取得するかを、閾値保持部58に保持された閾値に基づいて決定する。例えば、各オブジェクトOBJにおいて、取得条件を満たすセッションSSNの数が閾値で示されるセッション数を超える場合、セッション取得部44は、セッションSSNをオブジェクト単位で取得し、メモリ50に格納する。一方、各オブジェクトOBJにおいて、取得条件を満たすセッションSSNの数が閾値で示されるセッション数以下の場合、セッション取得部44は、セッションSSNをセッション単位で取得し、メモリ50に格納する。
ストレージ装置70からデータを読み出す場合、ストレージ装置70へのアクセス毎に、データを読み出すための準備の時間であるアクセスペナルティがストレージ装置70内で発生する。例えば、ストレージ装置70が有するHDDからデータを読み出す場合、シーク時間および回転待ち時間等のアクセスペナルティが発生する。オブジェクトOBJに読み出し対象の複数のセッションSSNが含まれる場合、複数のセッションSSNをオブジェクト単位で読み出す場合のアクセスペナルティは、複数のセッションSSNをセッション単位で読み出す場合のアクセスペナルティに比べて小さい。
一方、ストレージ装置70からデータの転送時間は、読み出すデータのデータ量に比例して長くなる。したがって、ストレージ装置70に記憶されたオブジェクトOBJから複数のセッションSSNを読み出す場合、データの転送時間とアクセスペナルティの合計であるアクセス時間は、セッションSSNを取得する取得方式により異なる。セッション取得部44は、アクセス時間がより短くなると推定される取得方式を選択するために閾値(セッション数)を使用する。オフライン診断部46が閾値を算出する手法は、図8から図11に示される。
図7に示す例では、閾値は”3”である。このため、セッション取得部44は、オブジェクトOBJ3に含まれる4つのセッションSSNをストレージ装置70から取得する場合、オブジェクトOBJ3を読み出し、読み出したオブジェクトOBJ3からセッションSSNを抽出する。すなわち、取得対象のセッションSSNは、オブジェクト単位でストレージ装置70から読み出される。また、セッション取得部44は、オブジェクトOBJ4に含まれる3つのセッションSSNをストレージ装置70から取得する場合、取得対象のセッションSSNをセッション毎にストレージ装置70から読み出す。そして、セッション取得部44は、取得条件を満たすセッションSSNを管理装置80に送信する。
なお、メモリ50に転送されたオブジェクトOBJからセッションSSNを抽出する時間(メモリアクセス時間)は、ストレージ装置70からセッションSSNを取得する時間(例えば、ディスクアクセス時間)に対して無視できる程度に短い。このため、オブジェクト単位でセッションSSNを取得する場合において、メモリ50内でのセッションSSNの抽出に掛かる時間的なペナルティはない。
図8は、図3に示すキャプチャサーバ40の非キャプチャモードでの動作の一例を示す。上述したように、非キャプチャモードでは、キャプチャサーバ40は、ネットワークスイッチ2のミラーポート2からパケットをキャプチャしない。なお、図8は、管理装置80が取得要求を発行しない非取得モードの動作の例も示している。
オフライン診断部46は、閾値の診断を開始する診断開始指示を管理装置80から受信したことに基づいて動作を開始する。オフライン診断部46は、診断開始指示に基づいて、メモリ50内のセッション情報テーブル52(図4)を参照し、ストレージ装置70にアクセスして診断開始指示に含まれる取得条件を満たすセッションSSNを検索する(図8(a)、(b))。オフライン診断部46は、取得条件を満たすセッションSSNの数であるセッション数をオブジェクトOBJ毎に算出し、算出したセッション数のそれぞれを図5に示す診断情報テーブル56の”取得条件を満たすセッション数”の領域に格納する(図8(c))。
なお、ストレージ装置70には、オブジェクトOBJが予め格納されており、図4に示すセッション情報テーブル52およびオブジェクト情報テーブル54は、ストレージ装置70が保持するオブジェクトOBJに対応する情報を保持している。例えば、オフライン診断部46は、診断開始指示を受信した日の前日にキャプチャされてストレージ装置70に格納されたパケットPCKTを含むセッションSSNを検索する。
なお、管理装置80は、キャプチャサーバ40の初回の起動時であって、閾値保持部58に閾値が保持されていない場合、または、閾値保持部58に保持された閾値を更新する場合、診断開始指示をキャプチャサーバ40に発行する。例えば、管理装置80は、”宛先ポートが80のセッションSSN”の取得条件を含む診断開始指示をオフライン診断部46に発行する。
オフライン診断部46は、オブジェクト情報テーブル54を参照し、取得条件を満たすセッションSSNをそれぞれ含む全てのオブジェクトOBJのストレージ装置70内での格納位置を算出する。そして、オフライン診断部46は、取得条件を満たすセッションSSNを含む全てのオブジェクトOBJをストレージ装置70から順次取得し、取得に掛かる取得時間を測定する(図8(d)、(e))。オフライン診断部46は、診断情報テーブル56においてセッション数に対応する行領域の”オブジェクト単位での取得時間”の領域に、測定した取得時間を格納する(図8(f)、(g))。例えば、取得したオブジェクトOBJは、メモリ50等に保持されることなく廃棄される。
次に、オフライン診断部46は、オブジェクト情報テーブル54およびセッション情報テーブル52を参照し、取得条件を満たす全てのセッションSSNのストレージ装置70内での格納位置を算出する。そして、オフライン診断部46は、取得条件を満たすセッションSSNのそれぞれをストレージ装置70から順次取得し、取得に掛かる取得時間を測定する(図8(h)、(i))。オフライン診断部46は、診断情報テーブル56においてセッション数に対応する行領域の”セッション単位での取得時間”の領域に、測定した取得時間を格納する(図8(j)、(k))。例えば、取得したセッションSSNは、メモリ50等に保持されることなく廃棄される。
この後、オフライン診断部46は、診断情報テーブル56に格納した情報に基づいて閾値を算出し、算出した閾値を閾値保持部58に格納する(図8(l)、(m))。閾値を算出する動作の例は、図10に示される。
図9は、図3に示すオフライン診断部46の動作の一例を示す。すなわち、図9は、図3に示すキャプチャサーバ40が実行するデータ取得制御プログラム62の一例を示す。図9に示す動作は、診断開始指示を管理装置80から受信したことに基づいて開始される。ステップS102からステップS112までの処理を実行するオフライン診断部46は、測定部の一例であり、ステップS200の処理を実行するオフライン診断部46は、設定部の一例である。
まず、ステップS102において、オフライン診断部46は、セッション情報テーブル52を用いて取得条件を満たすセッションSSNを検索し、取得条件を満たすセッションSSNの数であるセッション数をオブジェクトOBJ毎に算出する。次に、ステップS104において、オフライン診断部46は、オブジェクトOBJ毎に算出したセッション数のそれぞれを診断情報テーブル56に格納し、処理をステップS106に移行する。
ステップS106からステップS112は、取得条件を満たすセッションSSNを含む全てのオブジェクトOBJについて実行される。ステップS106において、オフライン診断部46は、オブジェクト情報テーブル54を用いて、取得条件を満たすセッションSSNを含むオブジェクトOBJの1つをストレージ装置70から取得する。次に、ステップS108において、オフライン診断部46は、ステップS106で取得したオブジェクトOBJの取得時間を診断情報テーブル56に格納する。
次に、ステップS110において、オフライン診断部46は、取得条件を満たすセッションSSNを含むオブジェクトOBJの1つに含まれる所定数のセッションSSNをストレージ装置70から順次取得する。セッションSSNのストレージ装置70からの取得は、オブジェクト情報テーブル54およびセッション情報テーブル52を用いて実行される。次に、ステップS112において、オフライン診断部46は、セッションSSNの取得時間の合計を診断情報テーブル56に格納する。
取得条件を満たすセッションSSNを含む全てのオブジェクトOBJについて、ステップS106からステップS112の処理が実行された場合、ステップS200の処理が実行される。ステップS200において、オフライン診断部46は、診断情報テーブル56に格納した情報に基づいて、閾値を算出し、算出した閾値を閾値保持部58に格納し、図9に示す処理を終了する。ステップS200の例は、図10に示される。
図10は、図9に示すステップS200の処理の一例を示す。ステップS200において、オフライン診断部46は、閾値の算出に使用する最大値を”0”に設定し、処理をステップS204に移行する。
ステップS204からステップS212は、診断情報テーブル56に格納された”取得条件を満たすセッション数”のそれぞれについて実行される。ステップS204において、オフライン診断部46は、診断情報テーブル56に格納された”取得条件を満たすセッション数”を仮の閾値とする。次に、ステップS206において、オフライン診断部46は、”取得条件を満たすセッション数”に対応するセッションSSNの取得方式を仮の閾値に基づいて選択する。
次に、ステップS208において、オフライン診断部46は、ステップS206で選択した取得方式でのセッションSSNの取得時間が、選択しなかった取得方式でのセッションSSNの取得時間より短いか否かを判定する。次に、ステップS210において、オフライン診断部46は、ステップS206で選択した取得方式の方が、選択しなかった取得方式に比べて取得時間が短くなる割合(正解率)を算出する。
次に、ステップS212において、オフライン診断部46は、ステップS210で算出した割合(正解率)が最大値を超えた場合、処理をステップS214に移行する。オフライン診断部46は、ステップS210で算出した割合(正解率)が最大値以下の場合、処理をステップS204に戻す。
ステップS214において、オフライン診断部46は、ステップS204で設定した仮の閾値を最大値にし、処理をステップS204に戻す。診断情報テーブル56に格納された”取得条件を満たすセッション数”のそれぞれについて、ステップS204からステップS212の処理が完了した場合、ステップS216の処理に移行される。診断情報テーブル56に格納された”取得条件を満たすセッション数”を仮の閾値に順次設定し、ステップS204からステップS214の処理を実行することで、正解率が最も高い仮の閾値を求めることができる。ステップS216において、オフライン診断部46は、正解率が最も高い仮の閾値である最大値を、閾値として閾値保持部58(図3)に格納し、図10に示す処理を終了する。
図11は、図9に示すステップS200による閾値の算出方法の一例を示す。図11において、”取得条件を満たすセッション数”の欄に格納されたセッション数は、図5に示す診断情報テーブル56の”取得条件を満たすセッション数”に格納されたセッション数と同じである。
図11において、”取得時間が短い取得方法”の欄には、図5に示す診断情報テーブル56に格納されたオブジェクト単位での取得時間およびセッション単位での取得時間のうち、取得時間が短い取得方式を符号”O”または符号”S”で示す。符号”O”は、オブジェクト単位での取得時間がセッション単位での取得時間に比べて短いことを示し、以下では取得方式Oとも称される。符号”S”は、セッション単位での取得時間がオブジェクト単位での取得時間に比べて短いことを示し、以下では、取得方式Sとも称される。換言すれば、図5に示す診断情報テーブル56において、下線を付した取得時間の取得方式が、符号”O”または符号”S”で示される。
また、図11において、仮の閾値に対応する領域は、図10のステップS204で設定した仮の閾値の各々に基づき、”取得条件を満たすセッション数”のセッションSSNを取得方式Oまたは取得方式Sのいずれで取得するかが示される。そして、丸印を付けた取得方式は、”取得時間が短い取得方法”の欄の取得方式と一致することを示す。仮の閾値の各々に対応する正解率は、”取得条件を満たすセッション数”の種類の数(行数)に対する丸印を付けた取得方式の数の比率を示す。そして、図11に示す例では、正解率が最も高い仮の閾値(=25)が閾値に設定される。
図12は、図3に示すセッション取得部44の動作の一例を示す。すなわち、図12は、図3に示すキャプチャサーバ40が実行するデータ取得制御プログラム62の一例を示す。セッション取得部44は、管理装置80からセッションSSNの取得要求を受信したことに基づいて図12に示す処理を開始する。ステップS402からステップS408は、取得要求に含まれる取得条件を満たすセッションSSNを含むオブジェクトOBJのそれぞれについて実行される。なお、セッション取得部44は、ステップS402の処理を開始する前に、セッション情報テーブル52およびオブジェクト情報テーブル54を参照し、取得対象のセッションSSNおよび取得対象のセッションSSNを含むオブジェクトOBJを検索する。
ステップS402において、セッション取得部44は、取得対象のセッションSSNを含むオブジェクトOBJにおいて、取得するセッションSSNの数が閾値を超えているか否かを判定する。セッションSSNの数が閾値を超えている場合、処理はステップS404に移行され、セッションSSNの数が閾値以下の場合、処理はステップS408に移行される。
ステップS404において、セッション取得部44は、オブジェクトOBJの全体をストレージ装置70から取得する。次に、ステップS406において、セッション取得部44は、取得したオブジェクトOBJから取得条件を満たすセッションSSNを抽出し、処理をステップS402に戻す。一方、ステップS408において、セッション取得部44は、セッション単位でセッションSSNをストレージ装置70から取得し、処理をステップS402に戻す。
取得条件を満たすセッションSSNを含むオブジェクトOBJのそれぞれについて、ステップS402からステップS408の処理が実行された場合、処理はステップS410に移行される。ステップS410において、セッション取得部44は、取得したセッションSSNを管理装置80に送信し、図12に示す処理を終了する。なお、セッション取得部44は、オブジェクト単位でセッションSSNを取得する毎、またはセッション単位でセッションSSNを取得する毎に、取得したセッションSSNを管理装置80に送信してもよい。
以上、図3から図12に示す実施形態においても、図1および図2に示す実施形態と同様に、取得条件を満たすデータをオブジェクト単位またはセッション単位のいずれで取得するかの指標である閾値を判定条件として設定することができる。オブジェクトOBJ毎に閾値に基づいてデータの取得方式を切り替えることで、取得方式を切り替えない場合に比べて、ストレージ装置70からのデータの取得効率を向上することができ、情報処理システム100Aの処理性能を向上することができる。
さらに、図3から図12に示す実施形態では、以下に示す効果を得ることができる。診断情報テーブル56に格納されたセッション数の各々を仮の閾値に設定し、取得方式の正解率が最も高い仮の閾値を閾値に設定することで、セッション数の変化に対して取得時間の変化の傾向がばらつく場合にも、閾値を統計的に求めることができる。ミラーポート2からパケットをキャプチャしない非キャプチャモード中にオフライン診断部46を動作させることで、キャプチャ制御部42によるパケットのキャプチャ動作の影響を受けることなく閾値を求めることができる。管理装置80が取得要求を発行しない非取得モード中にオフライン診断部46を動作させることで、セッション取得部44によるセッションSSNの取得動作の影響を受けることなく閾値を求めることができる。
図13は、情報処理装置、情報処理システムおよびプログラムの別の実施形態を示す。図3と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図13に示す情報処理システム100Bは、図3に示す情報処理システム100Aと同様に、管理装置80およびストレージ装置70に接続されたキャプチャサーバ40を有する。そして、キャプチャサーバ40は、端末装置1とウェブサーバ3との間で送受信されるパケットを、ミラーポート2を介してキャプチャし、キャプチャしたパケットをストレージ装置70に格納する。
キャプチャサーバ40は、図3に示すセッション取得部44の代わりにセッション取得部44Bを有し、図3に示すオフライン診断部46の代わりにオンライン診断部48Bを有する。キャプチャサーバ40のメモリ50には、キャプチャ制御部42、セッション取得部44Bおよびオンライン診断部48Bの機能を実現するデータ取得制御プログラム62Bが格納される。なお、キャプチャ制御部42、セッション取得部44Bおよびオンライン診断部48Bの機能は、ハードウェアにより実現されてもよい。
セッション取得部44Bは、図3に示すセッション取得部44の機能に加えて、オブジェクトOBJから取得したセッションSSNの数と、ストレージ装置70からの取得時間とをオンライン診断部48Bに通知する機能を有する。オンライン診断部48Bは、キャプチャ制御部42がパケットをキャプチャするキャプチャモード中、かつ、管理装置80が取得要求を発行する取得モード中に動作し、セッションSSNの取得時間等を診断情報テーブル56に格納する。なお、オンライン診断部48Bは、キャプチャ制御部42がパケットをキャプチャしない非キャプチャモード中、かつ、管理装置80が取得要求を発行する取得モード中に動作してもよい。オンライン診断部48Bの動作の例は、図15から図18に示される。
図14は、図13に示す診断情報テーブル56に格納される情報の一例を示す。診断情報テーブル56は、図5に示す診断情報テーブル56と同様に、”取得条件を満たすセッション数”、”オブジェクト単位での取得時間”および”セッション単位での取得時間”が格納される複数の行領域を有する。但し、図14に示す診断情報テーブル56では、”取得条件を満たすセッション数”の行毎に、オブジェクト単位での取得時間またはセッション単位での取得時間のいずれかが格納される。
図15は、図13に示すキャプチャサーバ40のキャプチャモードでの動作の一例を示す。キャプチャモード中、キャプチャサーバ40のキャプチャ制御部42は、端末装置1とウェブサーバ3との間で送受信されるパケットを、ミラーポート2を介してキャプチャし、キャプチャしたパケットをストレージ装置70に格納する(図15(a)、(b))。キャプチャ制御部42は、図6で説明したように、受信したパケットをセッションSSNとしてまとめ、所定数のセッションSSNを含むオブジェクトOBJをストレージ装置70に格納する。
セッション取得部44Bは、管理装置80からセッションSSNの取得要求を受信する毎に、取得要求に含まれる取得条件を満たすセッションSSNを、オブジェクト単位またはセッション単位でストレージ装置70から取得する(図15(c)、(d))。そして、セッション取得部44Bは、セッションSSNの取得に掛かった取得時間を測定する。セッション取得部44Bは、取得したセッションSSNを管理装置80に送信する(図15(e))。セッション取得部44Bは、取得対象のセッションSSNを含むオブジェクトOBJにおける取得対象のセッション数に対応付けて、オブジェクト単位またはセッション単位でのセッションSSNの取得時間を診断情報テーブル56に格納する(図15(f))。セッション取得部44Bが、取得対象のセッションSSNをオブジェクト単位またはセッション単位のいずれでストレージ装置70から取得するかは、図17で説明する。
オンライン診断部48Bは、セッションSSNの取得要求をセッション取得部44Bが所定回数受信する毎に、診断情報テーブル56に格納された情報に基づいて閾値を算出し、算出した閾値を閾値保持部58に格納する(図15(g)、(h))。例えば、セッション取得部44Bは、取得要求の回数をカウントし、カウント値が所定回数に達したことに基づいて、閾値の算出要求をオンライン診断部48Bに発行する。オンライン診断部48Bは、セッション取得部44Bからの算出要求に基づいて、閾値を算出する。
このように、キャプチャサーバ40は、端末装置1とウェブサーバ3との間で送受信されるパケットを、ミラーポート2を介してキャプチャするキャプチャモード中に、閾値を算出し、更新することができる。換言すれば、キャプチャサーバ40は、ネットワークスイッチ2を介してリアルタイムでキャプチャするパケットの情報を、閾値に反映させることができる。また、キャプチャサーバ40は、管理装置80が取得要求を発行する取得モード中に、閾値を算出し、更新することができる。したがって、キャプチャサーバ40の本来の機能であるキャプチャ動作と取得対象のセッションの取得動作を停止することなく、閾値を算出することができる。
図16は、図13に示すセッション取得部44BによるセッションSSNの取得方式を切り替える動作の一例を示す。セッション取得部44Bは、閾値保持部58が閾値を保持していない場合、所定回数の取得要求に基づいて、オブジェクト単位での取得方式とセッション単位での取得方式との頻度を互いに同じに設定する(図16(a))。すなわち、セッション取得部44Bは、オンライン診断部48Bが閾値を一度も算出していない場合、オブジェクト単位での取得方式とセッション単位での取得方式との頻度を互いに同じに設定する。そして、オンライン診断部48Bは、セッションSSNの取得に掛かった取得時間を診断情報テーブル56に格納する。
オンライン診断部48Bは、所定回数の取得要求に対応してセッション取得部44BがセッションSSNを取得したことに基づいて、診断情報テーブル56に保持された情報に基づいて閾値を算出し、算出した閾値を閾値保持部58に格納する。
この後、セッション取得部44Bは、閾値保持部58が保持する閾値により取得方式を判定し、判定した閾値を用いてセッションSSNを取得する(図16(b)、(c))。但し、セッション取得部44Bは、所定の頻度で、閾値により判定した取得方式と異なる取得方式でセッションSSNを取得する。そして、オンライン診断部48Bは、セッションSSNの取得に掛かった取得時間を診断情報テーブル56に格納する。
図17は、図13に示すオンライン診断部48Bおよびセッション取得部44Bの動作の一例を示す。すなわち、図17は、図13に示すキャプチャサーバ40が実行するデータ取得制御プログラム62Bの一例を示す。図17に示す処理は、管理装置80からセッションSSNの取得要求を受信したことに基づいて開始される。
ステップS302において、セッション取得部44Bは、所定回数の取得要求を受信した場合、オンライン診断部48BにステップS200Aの処理を実行させ、所定回数の取得要求を受信していない場合、処理をステップS304に移行する。なお、セッション取得部44Bは、所定回数の取得要求を受信した場合、取得要求の回数を計数するカウンタの値を”0”にリセットする。ステップS200Aにおいて、オンライン診断部48Bは、閾値を算出し、算出した閾値を閾値保持部58に格納し、セッション取得部44BにステップS304の処理を実行させる。ステップS200Aの処理の例は、図18に示される。
ステップS304において、セッション取得部44Bは、閾値保持部58に閾値が保持されている場合、処理をステップS314に移行し、閾値保持部58に閾値が保持されていない場合、処理をステップS306に移行する。ステップS306において、セッション取得部44Bは、0から1の乱数を生成する。
次に、ステップS308において、セッション取得部44Bは、生成した乱数が0.5以上の場合、処理をステップS310に移行し、生成した乱数が0.5未満の場合、処理をステップS312に移行する。ステップS310において、セッション取得部44Bは、オブジェクト単位でセッションSSNを取得し、取得したセッションSSNを管理装置80に送信する。また、セッション取得部44Bは、取得したセッションSSNの数に対応して、取得時間を診断情報テーブル56に格納し、処理を終了する。ステップS312において、セッション取得部44Bは、セッション単位でセッションSSNを取得し、取得したセッションSSNを管理装置80に送信する。また、セッション取得部44Bは、取得したセッションSSNの数に対応して、取得時間を診断情報テーブル56に格納し、処理を終了する。以上より、閾値保持部58に閾値が保持されていない場合、オブジェクト単位でのセッションSSNの取得と、セッション単位でのセッションSSNの取得とが、互いに同じ頻度で実施される。
一方、ステップS314において、セッション取得部44Bは、0から1の乱数を生成する。次に、ステップS316において、セッション取得部44Bは、例えば、生成した乱数が0.99以上の場合、処理をステップS318に移行し、生成した乱数が0.99未満の場合、処理をステップS320に移行する。なお、ステップS314で判定する乱数は、0.99以外の値でもよい。
ステップS318において、セッション取得部44Bは、閾値により判定した取得方式と異なる取得方式でセッションSSNを取得し、取得したセッションSSNを管理装置80に送信する。また、セッション取得部44Bは、取得したセッションSSNの数に対応して、取得時間を診断情報テーブル56に格納し、処理を終了する。ステップS320において、オンライン診断部48Bは、閾値により判定した取得方式でセッションSSNを取得し、取得したセッションSSNを管理装置80に送信する。また、セッション取得部44Bは、取得したセッションSSNの数に対応して、取得時間を診断情報テーブル56に格納し、処理を終了する。
以上より、閾値保持部58に閾値が保持されている場合、閾値により判定した取得方式と異なる取得方式でセッションSSNの取得が1%の頻度で実施される。これにより、図14の診断情報テーブル56に示すように、”取得条件を満たすセッション数”(例えば、”10”、”20”、”40”)において、オブジェクト単位での取得時間とセッション単位での取得時間との両方を得ることができる。この結果、オブジェクト単位での取得時間とセッション単位での取得時間とを使用して、オンライン診断部48Bにより閾値を算出することができる。なお、閾値により判定した取得方式と異なる取得方式でセッションSSNを取得する確率は1%であるため、セッションSSNの取得効率の低下の影響を最小限にすることができる。ステップS200Aの処理を実行するオンライン診断部48Bは、設定部の一例であり、ステップS310、S312、S318、S320の処理を実行するセッション取得部44Bは、測定部および取得部の一例である。
図18は、図17に示すステップS200Aの処理の一例を示す。図18は、ステップS202の後にステップS203が追加されることを除き、図10に示す処理と同様である。ステップS203において、オンライン診断部48Bは、オブジェクト単位での取得方式とセッション単位での取得時間との両方が格納された”取得条件を満たすセッション数”を抽出する。そして、ステップS203で抽出した”取得条件を満たすセッション数”を用いて、図10と同様に、ステップS204からステップS214の処理が実行される。
なお、図13に示すキャプチャサーバ40は、オンライン診断部48Bとともに、図3に示すオフライン診断部46を有してもよい。この場合、キャプチャサーバ40は、管理装置80からの指示に基づいて、オンライン診断部48Bまたはオフライン診断部46の一方を選択的に動作させて、閾値を算出する。これにより、パケットをキャプチャするキャプチャモードと、パケットをキャプチャしない非キャプチャモードとの両方において閾値を算出することができる。また、管理装置80が取得要求を発行する取得モードと、取得要求を発行しない非取得モードとの両方において閾値を算出することができる。
以上、図13から図18に示す実施形態においても、図1から図12に示す実施形態と同様に、取得条件を満たすデータをオブジェクト単位またはセッション単位のいずれで取得するかの指標である閾値を判定条件として設定することができる。これにより、ストレージ装置70からのデータの取得効率を向上することができ、情報処理システム100Bの処理性能を向上することができる。仮の閾値に基づいて閾値を設定することで、セッション数の変化に対して取得時間の変化の傾向がばらつく場合にも、閾値を統計的に求めることができる。
さらに、図13から図18に示す実施形態では、ミラーポート2からパケットをキャプチャするキャプチャモード中に閾値を算出することができ、また、管理装置80が取得要求を発行する取得モード中に閾値を算出することができる。この結果、キャプチャサーバ40の本来の機能であるキャプチャ動作と取得対象のセッションの取得動作を停止することなく、閾値を算出し、さらに閾値を更新することができる。
キャプチャサーバ40に閾値が設定されていない場合、取得要求に基づくオブジェクト単位とセッション単位でのセッションSSNの取得を互いに同じ頻度で行うことで、閾値を設定するための情報を診断情報テーブル56Cに格納することができる。また、キャプチャサーバ40の初期状態において閾値が設定されていない場合にも、管理装置80からの取得要求に基づいて取得対象のセッションSSNを取得することができる。
閾値の設定後、閾値による判定と異なる取得方式を所定の頻度で選択することで、セッション数毎にオブジェクト単位とセッション単位の両方でのセッションSSNの取得時間を測定する確率を、閾値にしたがって取得方式を選択する場合に比べて向上できる。この結果、閾値にしたがって選択された取得方式のみで取得時間を測定する場合に比べて、閾値の算出に使用するセッション数(すなわち、図18に示すステップS204の仮の閾値)を増やすことができ、閾値の算出精度を向上することができる。
図19は、情報処理装置、情報処理システムおよびプログラムの別の実施形態を示す。図3と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図19に示す情報処理システム100Cは、図3に示す情報処理システム100Aと同様に、管理装置80およびストレージ装置70に接続されたキャプチャサーバ40を有する。そして、キャプチャサーバ40は、端末装置1とウェブサーバ3との間で送受信されるパケットを、ミラーポート2を介してキャプチャし、キャプチャしたパケットをストレージ装置70に格納する。
キャプチャサーバ40は、図3に示すオフライン診断部46の代わりにオフライン診断部46Cを有し、図3に示す診断情報テーブル56の代わりに診断情報テーブル56Cを有する。診断情報テーブル56Cの例は、図20に示される。メモリ50には、キャプチャ制御部42、セッション取得部44およびオフライン診断部46Cの機能を実現するデータ取得制御プログラム62Cが格納される。なお、キャプチャ制御部42、セッション取得部44およびオフライン診断部46Cの機能は、ハードウェアにより実現されてもよい。
オフライン診断部46Cは、管理装置80からの診断開始指示に基づいて、取得条件を満たすセッションSSNのデータ量の割合をオブジェクトOBJ毎に算出し、算出したデータ量の割合のそれぞれを診断情報テーブル56Cに格納する。また、オフライン診断部46Cは、取得条件を満たすセッションSSNを、オブジェクト単位でストレージ装置70から取得するために掛かる取得時間と、セッション単位でストレージ装置70から取得するために掛かる取得時間とを測定する。そして、オフライン診断部46Cは、算出したデータ量の割合毎に、オブジェクト単位での取得時間とセッション単位での取得時間とを診断情報テーブル56Cに格納する。取得対象のセッションSSNのオブジェクト単位での取得時間とセッション単位での取得時間とを測定するオフライン診断部46Cは、測定部の一例である。オフライン診断部46Cの動作は、図9および図10において、”セッション数”を”データ量の割合”に置き換えることで実現される。図9のステップS200の処理を実行するオフライン診断部46Cは、設定部の一例である。
なお、図19に示すキャプチャサーバ40は、管理装置80からの取得要求に対応して診断情報テーブル56Cに格納される情報に基づいて閾値を算出するオンライン診断部を有してもよい。オンライン診断部の機能は、図17に示すステップS200Aにおいて、データ量の割合に基づいて閾値を算出することを除き、図13に示すオンライン診断部48Bの機能と同様である。図19に示すセッション取得部44は、管理装置80からの取得要求に基づいてストレージ装置70から取得したセッションSSNに関する情報(データ量の割合、取得時間)を診断情報テーブル56Cに格納する機能を有する。セッション取得部44は、図17に示すステップS304からステップS320の機能を有する。但し、セッション取得部44は、ステップS310、S312、S318、S320において、取得したセッションSSNのデータ量の割合に対応して、取得時間を診断情報テーブル56Cに格納する。そして、キャプチャサーバ40は、管理装置80からの指示に基づいて、オフライン診断部46Cまたはオンライン診断部の一方を選択的に動作させて閾値を算出する。
図20は、図19に示す診断情報テーブル56Cに格納される情報の一例を示す。図5に示す診断情報テーブル56と同じ要素については、詳細な説明は省略する。診断情報テーブル56Cは、図5の診断情報テーブル56の”取得条件を満たすセッション数”の領域の代わりに、”取得条件を満たすセッションのデータ量の割合”の領域を有する。例えば、データの割合の”0.1”は、取得対象のセッションSSNを含む1つのオブジェクトOBJ全体のデータ量に対して取得対象のセッションSSNのデータ量の割合が10%であることを示す。
なお、図13に示した情報処理システム100Bに図20に示す診断情報テーブル56Cを設けてもよい。この場合、図15において、セッション取得部44Bは、セッション数の代わりに、データ量の割合に対応付けて、オブジェクト単位またはセッション単位でのセッションSSNの取得時間を診断情報テーブル56Cに格納する。そして、オンライン診断部48Bは、診断情報テーブル56Cに格納された情報に基づいて閾値を算出する。
以上、図19および図20に示す実施形態においても、図1から図12に示す実施形態と同様に、取得条件を満たすデータをオブジェクト単位またはセッション単位のいずれで取得するかの指標である閾値を判定条件として設定することができる。仮の閾値に基づいて閾値を設定することで、セッション数の変化に対して取得時間の変化の傾向がばらつく場合にも、閾値を統計的に求めることができる。さらに、図19および図20に示す実施形態では、取得条件を満たすセッションSSNのデータ量の割合に基づいて閾値を算出することができる。
図21は、情報処理装置、情報処理システムおよびプログラムの別の実施形態を示す。図3と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図21に示す情報処理システム100Dは、図3に示す情報処理システム100Aと同様に、管理装置80およびストレージ装置70に接続されたキャプチャサーバ40を有する。そして、キャプチャサーバ40は、端末装置1とウェブサーバ3との間で送受信されるパケットを、ミラーポート2を介してキャプチャし、キャプチャしたパケットをストレージ装置70に格納する。
キャプチャサーバ40は、図3に示すセッション取得部44の代わりにセッション取得部44Dを有し、オフライン診断部46の代わりにオフライン診断部46Dを有する。また、キャプチャサーバ40は、図3に示す診断情報テーブル56の代わりに診断情報テーブル56Dを有し、閾値保持部58の代わりに閾値保持部58Dを有する。診断情報テーブル56Dの例は、図22に示される。閾値保持部58Dは、第1の閾値と第2の閾値とを保持する。キャプチャサーバ40のメモリ50には、キャプチャ制御部42、セッション取得部44Dおよびオフライン診断部46Dの機能を実現するデータ取得制御プログラム62Dが格納される。なお、キャプチャ制御部42、セッション取得部44Dおよびオフライン診断部46Dの機能は、ハードウェアにより実現されてもよい。
セッション取得部44Dは、管理装置80からのセッションSSNの取得要求に基づいて、取得要求に含まれる取得条件を満たすセッションSSNをストレージ装置70から取得する。ここで、セッション取得部44Dは、オブジェクトOBJ毎に、取得条件を満たすセッション数を第1の閾値と比較し、取得条件を満たすセッションSSNのデータ量を第2の閾値と比較する。そして、セッション取得部44Dは、比較結果に基づいて、各オブジェクトOBJに含まれるセッションSSNを、オブジェクト単位またはセッション単位でストレージ装置70から取得し、取得したセッションSSNを管理装置80に送信する。セッション取得部44Dの動作の例は、図25および図26に示される。セッション取得部44Dは、取得部の一例である。
オフライン診断部46Dは、図3に示すオフライン診断部46と同様に、診断開始指示に基づいて、取得条件を満たすセッションSSNの数であるセッション数をオブジェクトOBJ毎に算出し、算出したセッション数を診断情報テーブル56Dに格納する。また、オフライン診断部46Dは、図19に示すオフライン診断部46Cと同様に、診断開始指示に基づいて、取得条件を満たすセッションSSNのデータ量の割合をオブジェクトOBJ毎に算出し、算出したデータ量の割合を診断情報テーブル56Dに格納する。さらに、オフライン診断部46Dは、取得条件を満たすセッションSSNのオブジェクト単位での取得時間とセッション単位での取得時間とを測定し、測定した取得時間を診断情報テーブル56Dに格納する。
また、オフライン診断部46Dは、診断情報テーブル56Dに格納した情報に基づいて、第1の閾値および第2の閾値を算出する。第1の閾値は、図5に示す診断情報テーブル56の”取得条件を満たすセッション数”の領域に格納されたセッション数に基づいて算出される閾値と同じである。すなわち、第1の閾値は、オブジェクトOBJ毎のセッション数に対応するセッションSSNのストレージ装置70からの取得時間に基づいて、オフライン診断部46Dにより算出される。第2の閾値は、図20に示す診断情報テーブル56Cの”取得条件を満たすセッションのデータ量の割合”の領域に格納されたデータ量の割合に基づいて算出される閾値と同じである。すなわち、第2の閾値は、オブジェクトOBJ毎のセッションSSNのデータ量の割合に対応するセッションSSNのストレージ装置70からの取得時間に基づいて、オフライン診断部46Dにより算出される。第1の閾値は、第1の判定条件の一例であり、第2の閾値は、第2の判定条件の一例である。オフライン診断部46Dの動作の例は、図23および図24に示される。
なお、図21に示すキャプチャサーバ40は、管理装置80からの取得要求に対応して診断情報テーブル56Dに格納される情報に基づいて閾値を算出するオンライン診断部を有してもよい。オンライン診断部の機能は、図17に示すステップS200Aにおいて、セッション数に基づいて第1の閾値を算出し、データ量の割合に基づいて第2の閾値を算出することを除き、図13に示すオンライン診断部48Bの機能と同様である。図21に示すセッション取得部44Dは、管理装置80からの取得要求に基づいてストレージ装置70から取得したセッションSSNに関する情報(セッション数、データ量の割合、取得時間)を診断情報テーブル56Dに格納する機能を有する。セッション取得部44Dは、図17に示すステップS304からステップS320の機能を有する。但し、セッション取得部44Dは、ステップS310、S312、S318、S320において、取得したセッションSSNの数とデータ量の割合とに対応して、取得時間を診断情報テーブル56Dに格納する。そして、キャプチャサーバ40は、管理装置80からの指示に基づいて、オフライン診断部46Dまたはオンライン診断部の一方を選択的に動作させて閾値を算出する。
図22は、図21に示す診断情報テーブル56Dに格納される情報の一例を示す。診断情報テーブル56Dは、図5の診断情報テーブル56に示す”取得条件を満たすセッション数”の領域と、図20の診断情報テーブル56Cに示す”取得条件を満たすセッションのデータ量の割合”の領域とを有する。また、診断情報テーブル56Dは、”セッション数”と”データ量の割合”とのペアの各々に対応して、”オブジェクト単位での取得時間”の領域と”セッション単位での取得時間”の領域とを有する。
図23は、図21に示すオフライン診断部46Dの動作の一例を示す。すなわち、図23は、図21に示すキャプチャサーバ40が実行するデータ取得制御プログラム62Dの一例を示す。図9と同一または同様の処理については、詳細な説明は省略する。図23に示すステップS100Dの処理のうち、ステップS102DからステップS112までの処理を実行するオフライン診断部46Dは、測定部の一例であり、ステップS200Dを処理するオフライン診断部46Dは、設定部の一例である。
まず、ステップS102Dにおいて、オフライン診断部46Dは、セッション情報テーブル52を用いて取得条件を満たすセッションSSNを検索し、取得条件を満たすセッションSSNの数であるセッション数をオブジェクトOBJ毎に算出する。また、オフライン診断部46Dは、取得条件を満たすセッションSSNのサイズ(データ量)をセッション情報テーブル52(図4)から読み出す。さらに、オフライン診断部46Dは、取得条件を満たすセッションSSNを含むオブジェクトOBJのサイズ(データ量)をオブジェクト情報テーブル54(図4)から読み出す。そして、オフライン診断部46Dは、オブジェクトOBJ毎に、取得条件を満たすセッションSSNを含むオブジェクトOBJのデータ量に対する取得条件を満たすセッションSSNのデータ量の割合を算出する。
次に、ステップS104Dにおいて、オフライン診断部46Dは、オブジェクトOBJ毎に算出したセッション数とセッションSSNのデータ量の割合とを診断情報テーブル56Dに格納する。この後に繰り返し実行されるステップS106からステップS112間での処理は、図9と同じである。すなわち、オフライン診断部46Dは、取得条件を満たすセッションSSNをオブジェクト単位とセッション単位でそれぞれ取得し、取得に掛かった取得時間を測定し、測定した取得時間を診断情報テーブル56Dに格納する。
取得条件を満たすセッションSSNを含む全てのオブジェクトOBJについて、ステップS106からステップS112の処理が完了した場合、ステップS200Dの処理が実行される。ステップS200Dにおいて、オフライン診断部46Dは、診断情報テーブル56Dに格納した情報に基づいて、第1の閾値および第2の閾値を算出し、算出した第1の閾値および第2の閾値を閾値保持部58Dに格納する。ステップS200Dの例は、図24に示される。
図24は、図23に示すステップS200Dの処理の一例を示す。図10と同一または同様の処理については詳細な説明は省略する。まず、ステップS200において、オフライン診断部46Dは、図10に示すステップS200と同じ処理を実行し、第1の閾値を算出する。次に、ステップS202Dにおいて、オフライン診断部46Dは、第2の閾値の算出に使用する最大値を”0”に設定し、処理をステップS204Dに移行する。
ステップS204DからステップS214の処理は、診断情報テーブル56に格納された”取得条件を満たすセッションのデータ量の割合”の行領域のそれぞれについて実行される。ステップS204Dにおいて、オフライン診断部46Dは、診断情報テーブル56に格納された”取得条件を満たすセッションのデータ量の割合”を仮の第2の閾値とする。次に、ステップS206Dにおいて、オフライン診断部46Dは、”取得条件を満たすセッションのデータ量の割合”に対応するセッションSSNの取得方式を仮の第2の閾値に基づいて選択する。
次に、ステップS208Dにおいて、オフライン診断部46Dは、ステップS206Dで選択した取得方式でのセッションSSNの取得時間が、選択しなかった取得方式でのセッションSSNの取得時間より短いか否かを判定する。次に、ステップS210Dにおいて、オフライン診断部46は、ステップS206Dで選択した取得方式の方が、選択しなかった取得方式に比べて取得時間が短くなる割合(正解率)を算出する。
次に、ステップS212Dにおいて、オフライン診断部46Dは、ステップS210Dで算出した割合(正解率)が最大値を超えた場合、処理をステップS214Dに移行する。オフライン診断部46Dは、ステップS210Dで算出した割合(正解率)が最大値以下の場合、処理をステップS204Dに戻す。
ステップS214Dにおいて、オフライン診断部46Dは、ステップS204Dで設定した仮の第2の閾値を最大値にし、処理をステップS204Dに戻す。診断情報テーブル56に格納された”取得条件を満たすセッションのデータ量の割合”のそれぞれについて、ステップS204DからステップS214の処理が完了した場合、ステップS216Dの処理が実行される。診断情報テーブル56Dに格納された”取得条件を満たすセッションのデータ量の割合”を仮の第2の閾値に順次設定し、ステップS204DからステップS214Dの処理を実行することで、正解率が最も高い仮の第2の閾値を求めることができる。
ステップS216Dにおいて、オフライン診断部46Dは、正解率が最も高い仮の第2の閾値である最大値を、第2の閾値として閾値保持部58Dに格納し、処理を終了する。
図25は、図21に示すセッション取得部44Dの動作の一例を示す。すなわち、図25は、図21に示すキャプチャサーバ40が実行するデータ取得制御プログラム62Dの一例を示す。図12と同一または同様の処理については詳細な説明は省略する。図25は、図12に示すステップS402の代わりに、ステップS402D、S403Dが実行されることを除き、図12と同じである。
ステップS402Dにおいて、セッション取得部44Dは、取得対象のセッションSSNを含むオブジェクトOBJにおいて、取得するセッションSSNの数が第1の閾値を超えているか否かを判定する。セッションSSNの数が第1の閾値を超えている場合、処理はステップS404に移行され、セッションSSNの数が第1の閾値以下の場合、処理はステップS403Dに移行される。
ステップS403Dにおいて、セッション取得部44Dは、取得対象のセッションSSNを含むオブジェクトOBJにおいて、取得するセッションSSNのデータ量の割合が第2の閾値を超えているか否かを判定する。セッションSSNのデータ量の割合が第2の閾値を超えている場合、処理はステップS404に移行され、セッションSSNのデータ量の割合が第2の閾値以下の場合、処理はステップS408に移行される。
すなわち、セッション取得部44Dは、第1の閾値による第1の判定条件と第2の閾値による第2の判定条件とのいずれかを満足する場合、セッションSSNをオブジェクト単位で取得する。一方、セッション取得部44Dは、第1の閾値による第1の判定条件と第2の閾値による第2の判定条件との両方を満足しない場合、セッションSSNをセッション単位で取得する。
図26は、図21に示すセッション取得部44Dの動作の別の例を示す。すなわち、図26は、図21に示すキャプチャサーバ40が実行するデータ取得制御プログラム62Dの別の例を示す。図12および図25と同一または同様の処理については詳細な説明は省略する。図25は、図12に示すステップS402の代わりに、ステップS402D、S403Dが実行されることを除き、図12と同じである。ステップS402D、S403Dの処理は、図25に示すステップS402D、S403Dの処理と同様である。
ステップS402Dにおいて、セッション取得部44Dは、取得対象のセッションSSNを含むオブジェクトOBJにおいて、取得するセッションSSNの数が第1の閾値を超えている場合、処理をステップS403Dに移行する。セッション取得部44Dは、セッションSSNの数が第1の閾値以下の場合、処理をステップS408に移行する。
ステップS403Dにおいて、セッション取得部44Dは、取得対象のセッションSSNを含むオブジェクトOBJにおいて、取得するセッションSSNのデータ量の割合が第2の閾値を超えている場合、処理をステップS404に移行する。セッション取得部44Dは、セッションSSNのデータ量の割合が第2の閾値以下の場合、処理をステップS408に移行する。
すなわち、セッション取得部44Dは、第1の閾値による第1の判定条件と第2の閾値による第2の判定条件との両方を満足する場合、セッションSSNをオブジェクト単位で取得する。一方、セッション取得部44Dは、第1の閾値による第1の判定条件と第2の閾値による第2の判定条件との少なくともいずれかを満足しない場合、セッションSSNをセッション単位で取得する。なお、図25および図26に示すフローの代わりに、図12のステップS402をステップS402Dに変更したフローと、図12のステップS402をステップS403Dに変更したフローとを切り替え可能に使用してもよい。
以上、図21から図26に示す実施形態においても、図1から図12に示す実施形態と同様に、取得条件を満たすデータをオブジェクト単位またはセッション単位のいずれで取得するかの指標である閾値を判定条件として設定することができる。仮の第1の閾値に基づいて第1の閾値を設定し、仮の第2の閾値に基づいて第2の閾値を設定することで、セッション数の変化に対して取得時間の変化の傾向がばらつく場合にも、第1の閾値および第2の閾値を統計的に求めることができる。
さらに、図21から図26に示す実施形態では、セッション数とデータ量の割合との2つのパラメータから2つの閾値を算出することで、閾値の複数種の組み合わせに基づいてセッションSSNの取得方式を判定することができる。すなわち、取得対象のセッションSSNを取得する場合に、複数種の判定条件を使い分けることができる。
図27は、情報処理装置、情報処理システムおよびプログラムの別の実施形態を示す。図3または図21と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図27に示す情報処理システム100Eは、図3に示す情報処理システム100Aと同様に、管理装置80とストレージ装置70とに接続されたキャプチャサーバ40を有する。そして、キャプチャサーバ40は、端末装置1とウェブサーバ3との間で送受信されるパケットを、ミラーポート2を介してキャプチャし、キャプチャしたパケットをストレージ装置70に格納する。
キャプチャサーバ40は、図3に示すセッション取得部44の代わりにセッション取得部44Eを有し、オフライン診断部46の代わりにオフライン診断部46Eを有する。また、キャプチャサーバ40は、図3に示す診断情報テーブル56の代わりに図21に示す診断情報テーブル56Dを有し、図3に示す閾値保持部58の代わりに判定条件保持部58Eを有する。すなわち、キャプチャサーバ40は、”セッション数”と”データ量の割合”とのペアの各々に対応して、”オブジェクト単位での取得時間”の領域と”セッション単位での取得時間”の領域とが格納される診断情報テーブル56Dを有する。キャプチャサーバ40のメモリ50には、キャプチャ制御部42、セッション取得部44Eおよびオフライン診断部46Eの機能を実現するデータ取得制御プログラム62Eが格納される。なお、キャプチャ制御部42、セッション取得部44Eおよびオフライン診断部46Eの機能は、ハードウェアにより実現されてもよい。
セッション取得部44Eは、管理装置80からのセッションSSNの取得要求に基づいて、取得要求に含まれる取得条件を満たすセッションSSNをストレージ装置70から取得する。ここで、セッション取得部44Eは、オブジェクトOBJ毎に、判定条件保持部58Eに保持された判定条件に基づいて、各オブジェクトOBJに含まれるセッションSSNのストレージ装置70からの取得方式を決定する。そして、セッション取得部44Eは、決定した取得方式でセッションSSNを取得し、取得したセッションSSNを管理装置80に送信する。セッション取得部44Eの動作の例は、図29に示される。セッション取得部44Eは、取得部の一例である。
オフライン診断部46Eは、図3に示すオフライン診断部46と同様に、診断開始指示に基づいて、取得条件を満たすセッションSSNの数であるセッション数をオブジェクトOBJ毎に算出し、算出したセッション数を診断情報テーブル56Dに格納する。また、オフライン診断部46Eは、図19に示すオフライン診断部46Cと同様に、診断開始指示に基づいて、取得条件を満たすセッションSSNのデータ量の割合をオブジェクトOBJ毎に算出し、算出したデータ量の割合を診断情報テーブル56Dに格納する。
さらに、オフライン診断部46Eは、取得条件を満たすセッションSSNのオブジェクト単位での取得時間とセッション単位での取得時間とを測定し、測定した取得時間を診断情報テーブル56Dに格納する。オフライン診断部46Eは、診断情報テーブル56Dに格納された情報に基づいて、セッション数とデータ量の割合との二次元分布において、セッションSSNを取得する取得方式を判定する境界線(分離線)を示す判定式の係数等の情報を判定条件として算出する。そして、オフライン診断部46Eは、算出した境界線を示す判定条件を判定条件保持部58Eに格納する。オフライン診断部46Eが算出する境界線の例は、図28に示される。取得対象のセッションSSNのオブジェクト単位での取得時間とセッション単位での取得時間とを測定するオフライン診断部46Eは、測定部の一例である。境界線を示す判定式の係数等の情報を算出し、算出した情報を判定条件として判定条件保持部58Eに格納するオフライン診断部46Eは、設定部の一例である。
なお、図27に示すキャプチャサーバ40は、管理装置80からの取得要求に対応して診断情報テーブル56Dに格納される情報に基づいて閾値を算出するオンライン診断部を有してもよい。オンライン診断部の機能は、図17に示すステップS200Aにおいて、セッション数に基づいて第1の閾値を算出し、データ量の割合に基づいて第2の閾値を算出することを除き、図13に示すオンライン診断部48Bの機能と同様である。図27に示すセッション取得部44Eは、管理装置80からの取得要求に基づいてストレージ装置70から取得したセッションSSNに関する情報(セッション数、データ量の割合、取得時間)を診断情報テーブル56Dに格納する機能を有する。セッション取得部44Eは、図17に示すステップS304からステップS320の機能を有する。但し、セッション取得部44Eは、ステップS310、S312、S318、S320において、取得したセッションSSNの数とデータ量の割合とに対応して、取得時間を診断情報テーブル56Dに格納する。そして、キャプチャサーバ40は、管理装置80からの指示に基づいて、オフライン診断部46Eまたはオンライン診断部の一方を選択的に動作させて閾値を算出する。
図28は、図27に示すオフライン診断部46Eが算出する境界線の概要を示す。図28(A)は、境界線(分離線)が直線の場合の例を示し、図28(B)は、境界線(分離線)が曲線の場合の例を示す。
図28(A)では、オフライン診断部46Eは、図22に示す診断情報テーブル56Dに格納された情報を参照する。そして、オフライン診断部46Eは、取得条件を満たすセッションSSNの数であるセッション数と取得条件を満たすセッションSSNのデータ量の割合との二次元分布に、セッションSSNの取得時間を対応させる。これにより、”オブジェクト単位での取得時間がセッション単位での取得時間より短いもの(白い四角印)”および”セッション単位での取得時間がオブジェクト単位での取得時間より短いもの(黒い丸印)”の二次元分布が得られる。オフライン診断部46Eは、得られた分布に基づいて、セッション数とデータ量の割合とが与えられた場合に、オブジェクト単位での取得方式とセッション単位での取得方式のどちらの取得時間が短いかを切り分ける境界線を示す判定式の係数等の情報を算出する。図28(B)では、求める境界線が曲線であることを除き、オフライン診断部46Eは、図28(A)と同様に、境界線を示す判定式の係数等の情報を算出する。
セッション取得部44Eは、図28(A)または図28(B)に示す境界線を使用して、セッション数とデータ量の割合とに基づいて判定した取得方式でセッションSSNを取得する。セッション取得部44Eは、取得対象のセッション数とデータ量の割合とが、境界線の右上側の分布に含まれる場合、オブジェクト単位での取得方式を選択する。一方、セッション取得部44Eは、取得対象のセッション数とデータ量の割合とが、境界線の左下側の分布に含まれる場合、セッション単位での取得方式を選択する。境界線を使用することで、閾値を使用する場合に比べて、取得時間が短い取得方式を選択する可能性を高くすることができる。
例えば、オフライン診断部46Eは、ニューラルネットワークを使用して、セッション数とデータ量の割合とに基づいて境界線を示す判定式の係数等を算出する。なお、オフライン診断部46Eが算出する判定条件は、境界線を示す判定式の係数等に限定されず、例えば、決定木またはロジスティック回帰等の手法を用いて判定条件が決められてもよい。
決定木による手法では、オフライン診断部46Eは、セッション数とデータ量の割合とを独立変数に設定し、独立変数の組み合わせ毎に、オブジェクト単位でセッションSSNを取得するか否かを示す従属変数を求め、決定木を生成する。ロジスティック回帰による手法では、オフライン診断部46Eは、セッション数とデータ量の割合とを説明変数に設定し、説明変数の組み合わせ毎に、オブジェクト単位でセッションSSNを取得するか否かを示す目的変数を求め、関係式を生成する。セッション取得部44Eは、管理装置80からの取得要求に含まれる取得条件を満たすオブジェクトOBJ毎のセッションSSNの数とデータ量の割合と決定木またはロジスティック回帰の関係式に当てはめる。そして、セッション取得部44Eは、決定木またはロジスティック回帰の関係式に基づいてセッションSSNを取得する取得方式を決定し、セッションSSNを取得する。
図29は、図28に示す境界線を使用するセッション取得部44Eの動作の一例を示す。すなわち、図29は、図27に示すキャプチャサーバ40が実行するデータ取得制御プログラム62Eの一例を示す。図12と同一または同様の処理については詳細な説明は省略する。図29は、図12に示すステップS402の代わりに、ステップS402Eが実行され、ステップS402Eの前にステップS401Eの処理が実行されることを除き、図12と同様である。ステップS401EからステップS408は、取得要求に含まれる取得条件を満たすセッションSSNを含むオブジェクトOBJのそれぞれについて実行される。
まず、ステップS401Eにおいて、セッション取得部44Eは、取得条件を満たすセッションSSNの数とデータ量の割合との二次元分布上の位置と、境界線との位置関係に基づいて、取得時間が他より短い取得方式を決定する。次に、ステップS402Eにおいて、セッション取得部44Eは、オブジェクト単位での取得方式を決定した場合、ステップS404の処理に移行し、セッション単位での取得方式を決定した場合、ステップS408の処理に移行する。
以上、図27から図29に示す実施形態においても、図1から図12に示す実施形態と同様に、取得条件を満たすデータをオブジェクト単位またはセッション単位のいずれで取得するかの指標である判定条件を設定することができる。さらに、図27から図29に示す実施形態では、セッション数とデータ量の割合との二次元分布上に描かれる境界線を使用してセッションSSNの取得方式を決定する。これにより、取得方式を閾値で判定する場合に比べて、取得時間が短い取得方式を選択する可能性を高くすることができる。
図30は、情報処理装置、情報処理システムおよびプログラムの別の実施形態を示す。図30に示す情報処理システム100Fは、ネットワークスイッチ72を介してキャプチャサーバ40に接続される複数のストレージサーバ74と、ストレージサーバ74の各々に接続されるストレージ装置70とを有する。例えば、端末装置1とウェブサーバ3との間でのネットワーク流量が、図3に比べて高い場合、キャプチャサーバ40は、キャプチャしたパケットを失わないために、図30に示すように、複数のストレージ装置70に並列に格納することが望ましい。なお、図30に示すキャプチャサーバ40と同様に、図13、図19、図21および図27に示すキャプチャサーバ40が、ネットワークスイッチ72とストレージサーバ74とを介して複数のストレージ装置70に接続されてもよい。
図31は、図1、図3、図13、図19、図21、図27および図30に示すキャプチャサーバ40のハードウェア構成の一例を示す。キャプチャサーバ40は、マザーボード200、光学ドライブ装置300、ハードディスク装置320、入力装置340および出力装置360等を有する。マザーボード200には、プロセッサ210、主記憶装置220、光学ドライブコントローラ230、ハードディスクコントローラ240、入力インタフェース250、出力インタフェース260およびネットワークインタフェース270等の各種部品が搭載される。例えば、プロセッサ210は、CPU(Central Processing Unit)またはGPU(Graphics Processing Unit)等である。プロセッサ210、主記憶装置220、光学ドライブコントローラ230、ハードディスクコントローラ240、入力インタフェース250、出力インタフェース260およびネットワークインタフェース270は、システムバスSBUSに接続される。主記憶装置220は、図1に示すメモリ14および図3等に示すメモリ50に対応する。なお、プロセッサ210、光学ドライブコントローラ230、ハードディスクコントローラ240、入力インタフェース250、出力インタフェース260およびネットワークインタフェース270は、共通の半導体チップに含まれてもよい。
プロセッサ210は、主記憶装置220に格納されたプログラム(図1に示した記憶領域17に格納されるプログラムおよび図3に示すデータ取得制御プログラム62等)を実行することで、キャプチャサーバ40の機能を実現する。
光学ドライブコントローラ230は、光学ドライブ装置300に接続され、光学ドライブ装置300に装着される記録媒体380にアクセス可能である。記録媒体380は、CD(Compact Disc:登録商標)またはDVD(Digital Versatile Disc:登録商標)等であり、例えば、プロセッサ210が実行するプログラムが格納される。プロセッサ210が実行するプログラム等は、光学ドライブ装置300を介して記録媒体380からハードディスク装置320にダウンロードされ、主記憶装置220に転送される。なお、プロセッサ210は、ハードディスク装置320を介することなく、記録媒体380から主記憶装置220にプログラムをダウンロードしてもよい。
ハードディスクコントローラ240は、ハードディスク装置320に接続される。例えば、キャプチャサーバ40の電源が起動されたときに、プロセッサ210は、ハードディスク装置320に格納されているプログラムを主記憶装置220に転送し、主記憶装置220に転送されたプログラムを実行することで動作する。
入力インタフェース250は、キーボードやマウス等の入力装置340に接続される。出力インタフェース260は、ディスプレイやプリンタ等の出力装置360に接続される。ネットワークインタフェース270は、図3に示すネットワークスイッチ2等に接続される。なお、プロセッサ210は、ネットワークスイッチ2等を介して接続されるネットワーク上の装置に格納されたプログラムを、ネットワークを介してハードディスク装置320や主記憶装置220にダウンロードしてもよい。
以上の図1から図31に示す実施形態に関し、さらに以下の付記を開示する。
(付記1)
所定数のセッションの各々に属するデータを含むオブジェクトが格納される記憶装置からデータを取得する情報処理装置において、
データの取得条件毎に、前記取得条件を満たす取得対象のデータをオブジェクト単位で前記記憶装置から取得するのに掛かる取得時間と、前記取得対象のデータをセッション単位での前記記憶装置から取得するのに掛かる取得時間とを測定する測定部と、
前記測定部が測定した取得時間に基づいて、データの取得要求に含まれる前記取得条件を満たすデータをオブジェクト単位またはセッション単位のいずれで前記記憶装置から取得するかを判定する判定条件を設定する設定部と
を備えることを特徴とする情報処理装置。
(付記2)
前記設定部は、オブジェクトに含まれる前記取得対象のデータが属するセッションの数であるセッション数を、データの取得方式をオブジェクト単位またはセッション単位に切り替える閾値として前記判定条件に設定することを特徴とする付記1に記載の情報処理装置。
(付記3)
前記設定部は、
前記測定部が測定した取得時間に基づいて、オブジェクト単位およびセッション単位でのデータの取得方式のうち取得時間が短い取得方式を複数の前記セッション数毎に特定し、
前記セッション数の各々を仮の判定条件に設定し、前記セッション数のそれぞれについて前記仮の判定条件に基づいて判定される取得方式が、特定した取得方式と一致するかを判定し、
一致した割合が最も高いセッション数を前記閾値に設定する
ことを特徴とする付記2に記載の情報処理装置。
(付記4)
前記設定部は、オブジェクト内において前記取得対象のデータが占める割合を、データの取得方式をオブジェクト単位またはセッション単位に切り替える閾値として前記判定条件に設定することを特徴とする付記1に記載の情報処理装置。
(付記5)
前記取得条件を含む取得要求に基づいて、前記取得対象のデータを含むオブジェクトを検索し、検索により見つけたオブジェクト毎に、前記判定条件に基づいてデータをオブジェクト単位またはセッション単位で前記記憶装置から取得する取得部を備えることを特徴とする付記1ないし付記4のいずれか1項に記載の情報処理装置。
(付記6)
前記設定部は、オブジェクトに含まれる前記取得対象のデータが属するセッションの数であるセッション数を、データの取得方式をオブジェクト単位またはセッション単位に切り替える第1の閾値として前記判定条件に設定し、オブジェクト内において前記取得対象のデータが占める割合を、データの取得方式をオブジェクト単位またはセッション単位に切り替える第2の閾値として前記判定条件に設定し、
前記情報処理装置はさらに、
前記取得条件に基づいて、前記取得対象のデータを含むオブジェクトを検索し、検索により見つけたオブジェクト毎に、前記第1の閾値および前記第2の閾値に基づいてデータをオブジェクト単位またはセッション単位で前記記憶装置から取得する取得部を備えることを特徴とする付記1に記載の情報処理装置。
(付記7)
前記取得部は、オブジェクトに含まれる前記取得対象のデータが属するセッションの数が前記第1の閾値を超え、またはオブジェクト内において前記取得対象のデータが占める割合が前記第2の閾値を超える場合、データをオブジェクト単位で前記記憶装置から取得することを決定することを特徴とする付記6に記載の情報処理装置。
(付記8)
前記取得部は、オブジェクトに含まれる前記取得対象のデータが属するセッションの数が前記第1の閾値を超え、かつオブジェクト内において前記取得対象のデータが占める割合が前記第2の閾値を超える場合、データをオブジェクト単位で前記記憶装置から取得することを決定することを特徴とする付記6に記載の情報処理装置。
(付記9)
前記取得部は、前記設定部が前記判定条件を設定するまで、データをオブジェクト単位で取得する頻度とデータをセッション単位で取得する頻度とを互いに同じに設定し、
前記測定部は、前記取得部によるデータの取得時間を測定し、
前記設定部は、データが所定回数取得された後、前記測定部が測定した取得時間に基づいて前記判定条件を設定し、
前記取得部は、前記判定条件が設定された後、前記判定条件に基づいてデータをオブジェクト単位またはセッション単位で前記記憶装置から取得することを特徴とする付記5ないし付記8のいずれか1項に記載の情報処理装置。
(付記10)
前記取得部は、前記判定条件が設定された後、前記判定条件に基づいて決定した取得方式と逆の取得方式でのデータの取得を所定の頻度で実行し、
前記設定部は、前記判定条件が設定された後、データが所定回数取得される毎に、前記測定部が測定した取得時間に基づいて前記判定条件を更新することを特徴とする付記9に記載の情報処理装置。
(付記11)
前記設定部は、オブジェクトに含まれる前記取得対象のデータが属するセッションの数であるセッション数とオブジェクト内において前記取得対象のデータが占める割合とのペアと、前記ペアに対応して前記測定部が測定したオブジェクト単位でのデータの取得時間とセッション単位でのデータの取得時間とに基づいて、前記セッション数と前記データが占める割合との二次元分布において前記取得条件を満たすデータをオブジェクト単位またはセッション単位のいずれで前記記憶装置から取得するかを判定する境界線を示す情報を前記判定条件として設定し、
前記情報処理装置はさらに、
前記取得条件を含む取得要求に基づいて、前記取得対象のデータを含むオブジェクトを検索し、検索により見つけたオブジェクト毎の前記セッション数と前記データが占める割合との二次元分布上の位置と前記境界線との位置関係に基づいてデータをオブジェクト単位またはセッション単位で前記記憶装置から取得する取得部を備えることを特徴とする付記1に記載の情報処理装置。
(付記12)
他の情報処理装置間で伝送されるデータをキャプチャし、キャプチャしたデータを、所定数のセッションの各々に属するデータを含むオブジェクトにまとめて前記記憶装置に格納するキャプチャ制御部を備えることを特徴とする付記1ないし付記11のいずれか1項に記載の情報処理装置。
(付記13)
所定数のセッションの各々に属するデータを含むオブジェクトが格納される記憶装置からデータを取得する第1の情報処理装置と、データの取得条件を含む取得要求を前記第1の情報処理装置に発行する第2の情報処理装置とを有する情報処理システムにおいて、
前記第1の情報処理装置は、
データの取得条件毎に、前記取得条件を満たす取得対象のデータをオブジェクト単位で前記記憶装置から取得するのに掛かる取得時間と、前記取得対象のデータをセッション単位での前記記憶装置から取得するのに掛かる取得時間とを測定する測定部と、
前記測定部が測定した取得時間に基づいて、データの取得要求に含まれる前記取得条件を満たすデータをオブジェクト単位またはセッション単位のいずれで前記記憶装置から取得するかを判定する判定条件を設定する設定部と
を備えることを特徴とする情報処理システム。
(付記14)
所定数のセッションの各々に属するデータを含むオブジェクトが格納される記憶装置からデータを取得する情報処理装置に、
データの取得条件毎に、前記取得条件を満たす取得対象のデータをオブジェクト単位で前記記憶装置から取得するのに掛かる取得時間と、前記取得対象のデータをセッション単位での前記記憶装置から取得するのに掛かる取得時間とを測定させ、
測定した取得時間に基づいて、データの取得要求に含まれる前記取得条件を満たすデータをオブジェクト単位またはセッション単位のいずれで前記記憶装置から取得するかを判定する判定条件を設定させることを特徴とするプログラム。
(付記15)
所定数のセッションの各々に属するデータを含むオブジェクトが格納される記憶装置からデータを取得する情報処理装置に、
データの取得条件毎に、前記取得条件を満たす取得対象のデータをオブジェクト単位で前記記憶装置から取得するのに掛かる取得時間と、前記取得対象のデータをセッション単位での前記記憶装置から取得するのに掛かる取得時間とを測定させ、
測定した取得時間に基づいて、データの取得要求に含まれる前記取得条件を満たすデータをオブジェクト単位またはセッション単位のいずれで前記記憶装置から取得するかを判定する判定条件を設定させるプログラムを記録したことを特徴とする記録媒体。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。