(57)【特許請求の範囲】
【請求項１】
プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージ群の中から、前記システム内のデータベースを操作するためのプロトコルの直上層のプロトコルのリクエストとレスポンスのペアを検出する検出工程と、
前記メッセージ群の中から、所定期間内に送信された、前記データベースに対する所定の操作に関するメッセージの集合を選択する選択工程と、
前記選択工程によって選択されたメッセージの集合のうち、前記検出工程によって検出された１以上のペアのリクエスト時刻とレスポンス時刻の間に送信されたメッセージの割合を表す第１の指標値を算出する第１の算出工程と、
前記所定期間のうち、前記１以上のペアのリクエスト時刻からレスポンス時刻までの期間が占める割合を表す第２の指標値を算出する第２の算出工程と、
前記第１および第２の算出工程によって算出された第１および第２の指標値に基づいて、前記所定の操作がバッチ処理の操作か否かを判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
をコンピュータに実行させることを特徴とするシステム分析支援プログラム。
【請求項２】
前記判定工程は、
前記第１の指標値が第１の閾値以下かつ前記第２の指標値が第２の閾値以下の場合、前記所定の操作がバッチ処理の操作であると判定することを特徴とする請求項１に記載のシステム分析支援プログラム。
【請求項３】
前記選択工程は、
複数の所定期間の各々の所定期間ごとに、前記メッセージ群の中から、前記各々の所定期間内に送信された、前記データベースに対する所定の操作に関するメッセージの集合を選択し、
前記第１の算出工程は、
前記各々の所定期間ごとに、前記各々の所定期間ごとに選択された前記メッセージの集合のうち、前記１以上のペアのリクエスト時刻とレスポンス時刻の間に送信されたメッセージの割合を表す第１の指標値を算出し、
前記第２の算出工程は、
前記各々の所定期間ごとに、前記各々の所定期間のうち、前記１以上のペアのリクエスト時刻からレスポンス時刻までの期間が占める割合を表す第２の指標値を算出し、
前記判定工程は、
前記各々の所定期間ごとに算出された第１および第２の指標値に基づいて、前記所定の操作がバッチ処理の操作か否かを判定することを特徴とする請求項１または２に記載のシステム分析支援プログラム。
【請求項４】
前記判定工程は、
前記複数の所定期間のうち前記第２の指標値が最小となる所定期間の前記第２の指標値が前記第２の閾値以下、かつ、前記第２の指標値が最小となる所定期間の前記第１の指標値が前記第１の閾値以下の場合、前記所定の操作がバッチ処理の操作であると判定することを特徴とする請求項３に記載のシステム分析支援プログラム。
【請求項５】
前記コンピュータに、
前記各々の所定期間ごとに算出された第１および第２の指標値に基づいて、前記第１の指標値を表す軸と前記第２の指標値を表す軸とからなる座標系における回帰直線の傾きを算出する第３の算出工程を実行させ、
前記判定工程は、
前記第３の算出工程によって算出された前記回帰直線の傾きが第３の閾値以上の場合、前記所定の操作がバッチ処理の操作であると判定することを特徴とする請求項３に記載のシステム分析支援プログラム。
【請求項６】
前記コンピュータに、
前記判定工程によって前記所定の操作がバッチ処理の操作であると判定された場合、前記メッセージ群の中から、前記所定の操作に関するメッセージを削除する削除工程と、
前記削除工程によって前記所定の操作に関するメッセージが削除された削除後の前記メッセージ群を出力するメッセージ出力工程と、
を実行させることを特徴とする請求項１〜５のいずれか一つに記載のシステム分析支援プログラム。
【請求項７】
プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージ群の中から、前記システム内のデータベースを操作するためのプロトコルの直上層のプロトコルのリクエストとレスポンスのペアを検出する検出部と、
前記メッセージ群の中から、所定期間内に送信された、前記データベースに対する所定の操作に関するメッセージの集合を選択する選択部と、
前記選択部によって選択されたメッセージの集合のうち、前記検出部によって検出された１以上のペアのリクエスト時刻とレスポンス時刻の間に送信されたメッセージの割合を表す第１の指標値を算出する第１の算出部と、
前記所定期間のうち、前記１以上のペアのリクエスト時刻からレスポンス時刻までの期間が占める割合を表す第２の指標値を算出する第２の算出部と、
前記第１および第２の算出部によって算出された第１および第２の指標値に基づいて、前記所定の操作がバッチ処理の操作か否かを判定する判定部と、
前記判定部によって判定された判定結果を出力する出力部と、
を備えることを特徴とするシステム分析支援装置。
【請求項８】
コンピュータが、
プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージ群の中から、前記システム内のデータベースを操作するためのプロトコルの直上層のプロトコルのリクエストとレスポンスのペアを検出し、
前記メッセージ群の中から、所定期間内に送信された、前記データベースに対する所定の操作に関するメッセージの集合を選択し、
選択したメッセージの集合のうち、検出した１以上のペアのリクエスト時刻とレスポンス時刻の間に送信されたメッセージの割合を表す第１の指標値を算出し、
前記所定期間のうち、前記１以上のペアのリクエスト時刻からレスポンス時刻までの期間が占める割合を表す第２の指標値を算出し、
算出した第１および第２の指標値に基づいて、前記所定の操作がバッチ処理の操作か否かを判定し、
判定した判定結果を出力する、
処理を実行することを特徴とするシステム分析支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムの分析を支援するシステム分析支援プログラム、システム分析支援装置、およびシステム分析支援方法に関する。
【背景技術】
【０００２】
近年、大規模化、複雑化するネットワークシステムの運用状況や性能問題などを的確に把握することが難しくなっている。例えば、複数のアプリケーションが連携して動作するネットワークシステムでは、性能劣化や障害の原因を突き止めるために、各サーバの挙動だけでなくシステム全体の性能を観測、分析するため、運用状況や性能問題を把握することが難しい。
【０００３】
関連する先行技術としては、例えば、複数のプロセッサから構成される並列データベースシステムの動作解析を行う技術がある。従来の動作解析方法は、複数のプロセッサの各々についてデータベースアクセス処理の開始時刻と終了時刻の履歴情報を収集し、同一プロセッサについてデータベースアクセス処理の開始時刻と終了時刻とを対応付ける。そして、動作解析方法は、各プロセッサについて対応付けた終了時刻と開始時刻から処理時間を計算し、該処理時間が規定時間を超えているかどうかを判定する。
【０００４】
また、先行技術として、データベースに対する操作履歴を管理する技術がある。従来の管理装置は、バッチ処理の実行中を除き、データベースの操作を行うごとに操作内容を示す操作履歴をログ記憶手段に格納する。また、管理装置は、バッチ処理要求に応じてバッチ処理が実行されたときには、バッチ処理実行中の操作履歴を格納することなく、バッチ処理の実行を示すチェックポイントログをログ記憶手段に格納する。
【０００５】
また、先行技術として、システムの稼働状況を分析する技術がある。従来のシステム分析装置は、モデル生成指示が入力されると、処理間の呼出関係の確からしさに基づく選択基準に従って選択されたメッセージ集合に基づきサーバ間の呼出の制約条件を満たすトランザクションモデルを生成する。また、システム分析装置は、分析指示が入力されると、トランザクションモデルに合致するプロトコルログによりトランザクションの処理状態を分析する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−３３９３８１号公報
【特許文献２】特許第４１６６０５６号公報
【特許文献３】特開２００６−１１６８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術は、ネットワークシステムにおいてオンライン処理とバッチ処理が混在して行われる場合、システム内のサーバ間で送受信されるメッセージがオンライン処理またはバッチ処理のいずれのものかを判別することが難しいという問題がある。この結果、例えば、オンライン処理にかかる各サーバの処理時間を正確に求めることが難しくなり、ネットワークシステムの分析精度の低下を招くという問題がある。
【０００８】
１つの側面では、本発明は、バッチ処理にかかるメッセージを判別することができるシステム分析支援プログラム、システム分析支援装置、およびシステム分析支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、プロトコルの階層構造が定義されたシステム内で受け渡されたメッセージ群の中から、前記システム内のデータベースを操作するためのプロトコルの直上層のプロトコルのリクエストとレスポンスのペアを検出し、前記メッセージ群の中から、所定期間内に送信された、前記データベースに対する所定の操作に関するメッセージの集合を選択し、選択されたメッセージの集合のうち、検出された１以上のペアのリクエスト時刻とレスポンス時刻の間に送信されたメッセージの割合を表す第１の指標値を算出し、前記所定期間のうち、前記１以上のペアのリクエスト時刻からレスポンス時刻までの期間が占める割合を表す第２の指標値を算出し、算出された第１および第２の指標値に基づいて、前記所定の操作がバッチ処理の操作か否かを判定し、判定された判定結果を出力する。
【発明の効果】
【００１０】
１態様によれば、バッチ処理にかかるメッセージを判別することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態にかかるネットワークシステムの一実施例を示すシステム構成図である。
【図２】図２は、ネットワークシステム内のメッセージ群の一例を示す説明図（その１）である。
【図３】図３は、ネットワークシステム内のメッセージ群の一例を示す説明図（その２）である。
【図４】図４は、実施の形態にかかるシステム分析支援装置のハードウェア構成の一例を示すブロック図である。
【図５】図５は、メッセージＤＢの記憶内容の一例を示す説明図である。
【図６】図６は、階層構造定義情報の具体例を示す説明図である。
【図７】図７は、実施の形態にかかるシステム分析支援装置の機能的構成の一例を示すブロック図である。
【図８】図８は、ペア情報テーブルの記憶内容の一例を示す説明図である。
【図９】図９は、出現率／占有率テーブルの記憶内容の一例を示す説明図である。
【図１０】図１０は、オブジェクトリストの具体例を示す説明図である。
【図１１】図１１は、レスポンスメッセージのオブジェクトの特定例を示す説明図である。
【図１２】図１２は、ネットワークシステム内のメッセージ群の一例を示す説明図（その３）である。
【図１３】図１３は、中間テーブルの記憶内容の一例を示す説明図である。
【図１４】図１４は、ネットワークシステム内のメッセージ群の一例を示す説明図（その４）である。
【図１５】図１５は、多重度テーブルの記憶内容の一例を示す説明図である。
【図１６】図１６は、バッチ処理のオブジェクトの判定例を示す説明図（その１）である。
【図１７】図１７は、バッチ処理のオブジェクトの判定例を示す説明図（その２）である。
【図１８】図１８は、処理対象テーブルの記憶内容の一例を示す説明図である。
【図１９】図１９は、実施の形態にかかるシステム分析支援装置のシステム分析支援処理手順の一例を示すフローチャートである。
【図２０】図２０は、ステップＳ１９０５の出現率算出処理の具体的な処理手順の一例を示すフローチャートである。
【図２１】図２１は、ステップＳ１９０６の占有率算出処理の具体的な処理手順の一例を示すフローチャートである。
【図２２】図２２は、ステップＳ１９０９の判定処理の具体的な処理手順の一例を示すフローチャート（その１）である。
【図２３】図２３は、ステップＳ１９０９の判定処理の具体的な処理手順の一例を示すフローチャート（その２）である。
【図２４】図２４は、メッセージ削除処理の具体的な処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかるシステム分析支援プログラム、システム分析支援装置、およびシステム分析支援方法の好適な実施の形態を詳細に説明する。
【００１３】
（ネットワークシステムのシステム構成）
図１は、実施の形態にかかるネットワークシステムの一実施例を示すシステム構成図である。図１において、ネットワークシステム１００は、システム分析支援装置１０１と、Ｗｅｂサーバ１０２と、ＡＰ（アプリケーション）サーバ１０３と、ＤＢ（データベース）サーバ１０４と、クライアント端末１０５と、を含む構成である。
【００１４】
ネットワークシステム１００において、Ｗｅｂサーバ１０２、ＡＰサーバ１０３、ＤＢサーバ１０４およびクライアント端末１０５は、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワーク１１０を介して相互に通信可能に接続されている。
【００１５】
ここで、ネットワークシステム１００は、プロトコルの階層構造が定義されたシステムである。プロトコルとは、ネットワーク１１０を介してコンピュータ（Ｗｅｂサーバ１０２、ＡＰサーバ１０３、ＤＢサーバ１０４）同士が通信を行う際の通信規約である。ここでは、最上位の第１階層には、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）が定義されている。このＨＴＴＰは、クライアント端末１０５とＷｅｂサーバ１０２との通信に用いられるプロトコルである。
【００１６】
第２階層には、ＩＩＯＰ（Ｉｎｔｅｒｎｅｔ  Ｉｎｔｅｒ−ＯＲＢ  Ｐｒｏｔｏｃｏｌ）が定義されている。このＩＩＯＰは、Ｗｅｂサーバ１０２とＡＰサーバ１０３との通信に用いられるプロトコルである。最下位の第３階層には、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）が定義されている。このＳＱＬは、ＡＰサーバ１０３とＤＢサーバ１０４との通信に用いられるプロトコルである。
【００１７】
また、ネットワークシステム１００は、オンライン処理とバッチ処理が混在するシステムである。オンライン処理は、クライアント端末１０５からの要求に応じて処理を行う処理方式である。バッチ処理は、例えば、一定期間収集したデータを一括処理、または、複数の手順からなる処理を予め決められた手順に従って連続処理する処理方式である。
【００１８】
システム分析支援装置１０１は、ネットワークシステム１００のシステム分析を支援するコンピュータである。Ｗｅｂサーバ１０２は、クライアント端末１０５に搭載されたブラウザからの要求に応じて、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）文書を送信するコンピュータである。
【００１９】
ＡＰサーバ１０３は、Ｗｅｂサーバ１０２とＤＢサーバ１０４との橋渡しをおこない、データベース１２０に対する処理（例えば、検索処理、更新処理、削除処理など）を制御するコンピュータである。ＤＢサーバ１０４は、データ群を格納するデータベース１２０を備え、データベース１２０に対する処理を実行するコンピュータである。
【００２０】
クライアント端末１０５は、ブラウザを備え、Ｗｅｂサーバ１０２と通信するコンピュータである。クライアント端末１０５は、例えば、パーソナル・コンピュータ、スマートフォン、携帯電話端末などである。
【００２１】
ここで、ネットワークシステム１００内で受け渡されたメッセージ群の一例について説明する。メッセージとは、ＨＴＴＰ、ＩＩＯＰ、ＳＱＬのいずれかのプロトコルを用いて、ネットワークシステム１００内のコンピュータ間で送受信される電文である。
【００２２】
図２は、ネットワークシステム内のメッセージ群の一例を示す説明図（その１）である。図２において、ネットワークシステム１００内のコンピュータ（Ｗｅｂサーバ１０２、ＡＰサーバ１０３、ＤＢサーバ１０４）間で送受信されたメッセージＭ１〜Ｍ１６が時系列に示されている。図２中、右向矢印はリクエストメッセージを表し、左向矢印はレスポンスメッセージを表している。
【００２３】
メッセージＭ１〜Ｍ１０は、クライアント端末１０５からの要求に応じて、各コンピュータ間で送受信されたメッセージの集合である。具体的には、メッセージＭ１〜Ｍ１０は、クライアント端末１０５のブラウザにより「ＵＲＬ１」が指定されたことで発生したオンライン処理のトランザクションを示している。
【００２４】
また、メッセージＭ１１〜Ｍ１６は、ＡＰサーバ１０３からの要求に応じて、ＡＰサーバ１０３とＤＢサーバ１０４との間で送受信されたメッセージの集合である。具体的には、メッセージＭ１１〜Ｍ１６は、バッチ処理のメッセージの集合である。すなわち、オンライン処理のメッセージＭ１〜Ｍ１０が、バッチ処理のメッセージＭ１１〜Ｍ１６と混在している。
【００２５】
例えば、メッセージ群Ｍ１〜Ｍ１６を解析して、オンライン処理にかかる各コンピュータの処理時間を計算する場合、メッセージ群Ｍ１〜Ｍ１６の中からバッチ処理のメッセージＭ１１〜Ｍ１６を除外する必要がある。ところが、各メッセージＭ１〜Ｍ１６には、オンライン処理またはバッチ処理のいずれの処理のものかを判別するための情報が含まれていない。
【００２６】
そこで、本実施の形態にかかるシステム分析支援装置１０１は、バッチ処理のメッセージが有する特徴を利用して、ネットワークシステム１００内で受け渡されるメッセージ群の中からバッチ処理のメッセージを判別するための情報を作成する。つぎに、図３を用いて、バッチ処理のメッセージが有する特徴について説明する。
【００２７】
なお、以下の説明において、本明細書では、上位階層のプロトコル（例えば、ＩＩＯＰ）のリクエストメッセージの送信時刻とレスポンスメッセージの送信時刻との間に送信された下位階層のプロトコル（例えば、ＳＱＬ）のメッセージを「親が存在するメッセージ」という。一方、上位階層のプロトコルのリクエストメッセージの送信時刻とレスポンスメッセージの送信時刻との間に送信されたものではない下位階層のプロトコルのメッセージを「親が存在しないメッセージ」という。
【００２８】
図３は、ネットワークシステム内のメッセージ群の一例を示す説明図（その２）である。図３において、メッセージＭ１１〜Ｍ１６は、ＡＰサーバ１０３とＤＢサーバ１０４との間で送受信されるバッチ処理のメッセージである。バッチ処理のメッセージＭ１１〜Ｍ１６は、プロトコル「ＳＱＬ」のメッセージである。
【００２９】
ここで、バッチ処理のメッセージＭ１１〜Ｍ１６は、直上層のプロトコル「ＩＩＯＰ」のメッセージと親子関係を有さない。親子関係とは、上位階層のプロトコルのコンピュータへの処理要求に伴って、下位階層のプロトコルのコンピュータへの処理要求が発生する呼出関係を表している。
【００３０】
バッチ処理のメッセージは直上層のプロトコルのメッセージと親子関係を有さないため、第３階層のプロトコル「ＳＱＬ」のメッセージうち、親が存在しないメッセージはバッチ処理のメッセージであるといえる。ところが、オンライン処理のメッセージとバッチ処理のメッセージとが混在すると、バッチ処理のメッセージであっても親が存在する場合がある。
【００３１】
図３の例では、バッチ処理のメッセージＭ１１〜Ｍ１６のうちメッセージＭ１１，Ｍ１２，Ｍ１６は、親が存在するメッセージである。このため、オンライン処理とバッチ処理とが混在するネットワークシステム１００では、親子関係の有無だけを判断して、バッチ処理のメッセージを判別することは難しい。
【００３２】
ここで、バッチ処理のメッセージに親が存在する傾向は、集計期間Ｔに対する、直上層のプロトコルのリクエストメッセージの送信時刻とレスポンスメッセージの送信時刻との間の期間（以下、「占有期間」という）が占める割合が増加するに伴って顕著になる。
【００３３】
図３の例では、集計期間Ｔにおいて、直上層のプロトコル「ＩＩＯＰ」のリクエストメッセージＭ２の送信時刻とレスポンスメッセージＭ９との間の占有期間は、『ｔ１』である。また、集計期間Ｔにおいて、直上層のプロトコル「ＩＩＯＰ」のリクエストメッセージＭ１７の送信時刻とレスポンスメッセージ（不図示）との間の占有期間は、『ｔ２』である。
【００３４】
換言すれば、集計期間Ｔに対する占有期間（例えば、『ｔ１＋ｔ２』）が占める割合（以下、「占有率」という）の増加に伴って、親が存在する割合が増加するメッセージは、バッチ処理のメッセージであるといえる。
【００３５】
そこで、システム分析支援装置１０１は、直上層のプロトコルの占有率の増加に伴って親が存在する割合が増加するという特徴を利用して、バッチ処理のメッセージを判別するための情報を作成する。具体的には、例えば、システム分析支援装置１０１は、第３階層のプロトコル「ＳＱＬ」のメッセージをオブジェクト単位で分類する。
【００３６】
オブジェクトとは、メッセージを分類するためのものである。第３階層のプロトコル「ＳＱＬ」のメッセージの場合、該メッセージに含まれるデータベース１２０に対する操作を表す命令文の一部または全部によって表現される。なお、オブジェクトの具体例については後述する。
【００３７】
つぎに、システム分析支援装置１０１は、プロトコル「ＳＱＬ」のメッセージのオブジェクトごとに、該オブジェクトの集計期間Ｔ内のメッセージのうち親が存在するメッセージの出現率を求める。そして、システム分析支援装置１０１は、集計期間Ｔに対する直上層のプロトコル「ＩＩＯＰ」の占有期間の占有率と、オブジェクトごとの出現率とに基づいて、バッチ処理のオブジェクトを判断する。
【００３８】
これにより、システム分析時に、処理対象となるネットワークシステム１００内のメッセージデータ群の中からバッチ処理のオブジェクトのメッセージを判別して除去することができ、分析精度の向上を図ることができる。
【００３９】
（システム分析支援装置１０１のハードウェア構成）
図４は、実施の形態にかかるシステム分析支援装置のハードウェア構成の一例を示すブロック図である。図４において、システム分析支援装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）４０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０３と、磁気ディスクドライブ４０４と、磁気ディスク４０５と、光ディスクドライブ４０６と、光ディスク４０７と、ディスプレイ４０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）４０９と、キーボード４１０と、マウス４１１と、スキャナ４１２と、プリンタ４１３と、を備えている。また、各構成部はバス４００によってそれぞれ接続されている。
【００４０】
ここで、ＣＰＵ４０１は、システム分析支援装置１０１の全体の制御を司る。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される。磁気ディスクドライブ４０４は、ＣＰＵ４０１の制御にしたがって磁気ディスク４０５に対するデータのリード／ライトを制御する。磁気ディスク４０５は、磁気ディスクドライブ４０４の制御で書き込まれたデータを記憶する。
【００４１】
光ディスクドライブ４０６は、ＣＰＵ４０１の制御にしたがって光ディスク４０７に対するデータのリード／ライトを制御する。光ディスク４０７は、光ディスクドライブ４０６の制御で書き込まれたデータを記憶したり、光ディスク４０７に記憶されたデータをコンピュータに読み取らせたりする。
【００４２】
ディスプレイ４０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ４０８は、例えば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４３】
Ｉ／Ｆ４０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク１１０に接続され、このネットワーク１１０を介して他のコンピュータに接続される。そして、Ｉ／Ｆ４０９は、ネットワーク１１０と内部のインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ４０９には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４４】
キーボード４１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス４１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００４５】
スキャナ４１２は、画像を光学的に読み取り、システム分析支援装置１０１内に画像データを取り込む。なお、スキャナ４１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ４１３は、画像データや文書データを印刷する。プリンタ４１３には、例えば、レーザプリンタやインクジェットプリンタを採用することができる。
【００４６】
なお、図１に示したＷｅｂサーバ１０２、ＡＰサーバ１０３、ＤＢサーバ１０４およびクライアント端末１０５についても、上述したシステム分析支援装置１０１と同様のハードウェア構成によって実現することができる。
【００４７】
（メッセージＤＢ５００の記憶内容）
つぎに、図５を用いて、システム分析支援装置１０１が用いるメッセージＤＢ５００について説明する。メッセージＤＢ５００は、例えば、図４に示したＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置により実現される。
【００４８】
図５は、メッセージＤＢの記憶内容の一例を示す説明図である。図５において、メッセージＤＢ５００は、メッセージＩＤ、タイムスタンプ、プロトコル、メッセージ種別およびオブジェクトのフィールドを有する。各フィールドに情報を設定することで、メッセージのメッセージデータ（例えば、メッセージデータ５００−１〜５００−１２）がレコードとして記憶されている。
【００４９】
メッセージＩＤは、ネットワークシステム１００内で送受信されたメッセージの識別子である。ペアとなる一対のメッセージには、同一のメッセージＩＤが付与される。タイムスタンプは、メッセージの送信時刻である。なお、各メッセージデータは、送信時刻の早い順にソートされてメッセージＤＢ５００に記憶されている。プロトコルは、メッセージのプロトコルである。
【００５０】
メッセージ種別は、リクエストメッセージまたはレスポンスメッセージを示す情報である。以下、リクエストメッセージはメッセージ種別「リクエスト」のメッセージを示し、レスポンスメッセージはメッセージ種別「レスポンス」のメッセージを示す。オブジェクトは、各メッセージを分類するための識別子である。図５の例では、第３階層のプロトコル「ＳＱＬ」のリクエストメッセージについてのオブジェクトのみ表記されている。
【００５１】
ここで、第３階層のプロトコル「ＳＱＬ」のリクエストメッセージについてのオブジェクトについて説明する。例えば、オブジェクトＳＱＬ１は、リクエストメッセージＳ１に含まれるＤＢ１２０に対する操作を表す命令文から抽出された文字列である。
【００５２】
より具体的には、例えば、リクエストメッセージＳ１に含まれるＤＢ１２０に対する操作を表す命令文を「ＳＥＬＥＣＴ  ＩＤ，  Ｎａｍｅ  ＦＲＯＭ  Ｃｕｓｔｏｍｅｒ  ＷＨＥＲＥ  ＩＤ＝１００」とする。この命令文は、ＤＢ１２０内の「Ｃｕｓｔｏｍｅｒ」テーブルの中から、「ＩＤ＝１００」の「ＩＤ」および「Ｎａｍｅ」を取得するためのものである。この場合、例えば、命令文に含まれる「ＳＥＬＥＣＴ  …  ＦＲＯＭ  Ｃｕｓｔｏｍｅｒ  ＷＨＥＲＥ  …」をオブジェクト「ＳＱＬ１」とすることができる。なお、オブジェクト「ＳＱＬ１」に含まれる「…」は任意の文字列を示している。
【００５３】
また、命令文を「ＤＥＬＥＴＥ  ＦＲＯＭ  Ｃｕｓｔｏｍｅｒ  ＷＨＥＲＥ  ＩＤ＝１００」とする。この命令文は、ＤＢ１２０内の「Ｃｕｓｔｏｍｅｒ」テーブルの中から、「ＩＤ＝１００」のレコードを削除するためのものである。この場合、例えば、命令文に含まれる「ＤＥＬＥＴＥ  ＦＲＯＭ  Ｃｕｓｔｏｍｅｒ  ＷＨＥＲＥ  …」をオブジェクト「ＳＱＬ１」とすることができる。
【００５４】
また、命令文を「ＵＰＤＡＴＥ  Ｃｕｓｔｏｍｅｒ  ＳＥＴ  ＩＤ＝１００」とする。この命令文は、ＤＢ１２０内の「Ｃｕｓｔｏｍｅｒ」テーブルの中から、「ＩＤ＝１００」のレコードを更新するためのものである。この場合、例えば、命令文に含まれる「ＵＰＤＡＴＥ  Ｃｕｓｔｏｍｅｒ  ＳＥＴ  …」をオブジェクト「ＳＱＬ１」とすることができる。
【００５５】
このように、オブジェクトは、リクエストメッセージに含まれる命令文の一つ以上の句や文節の組合せによって表現することができる。プロトコル「ＨＴＴＰ」のリクエストメッセージの場合、オブジェクトとして、例えば、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を用いることができる。また、プロトコル「ＩＩＯＰ」のリクエストメッセージの場合、オブジェクトとして、例えば、ある機能を実現するためのプログラムの名称を用いることができる。
【００５６】
ここで、メッセージデータ５００−４を例に挙げると、送信時刻「００：００：００．００３」にプロトコル「ＳＱＬ」のリクエストメッセージＳ１が、ＡＰサーバ１０３からＤＢサーバ１０４に送信されたことを認識できる。また、リクエストメッセージＳ１のオブジェクト「ＳＱＬ１」を認識することができる。
【００５７】
メッセージの送信元および送信先のコンピュータは、プロトコルとメッセージ種別から特定することができる。例えば、プロトコル「ＨＴＴＰ」、メッセージ種別「リクエスト」の場合、送信元のコンピュータはクライアント端末１０５であり、送信先のコンピュータはＷｅｂサーバ１０２である。なお、上述した説明では、タイムスタンプをメッセージの送信時刻と定義したが、タイムスタンプをメッセージの受信時刻と定義してもよい。
【００５８】
（階層構造定義情報６００の具体例）
つぎに、ネットワークシステム１００のプロトコルの階層構造を定義する階層構造定義情報の具体例について説明する。
【００５９】
図６は、階層構造定義情報の具体例を示す説明図である。図６において、階層構造定義情報６００には、ネットワークシステム１００の３階層のプロトコルが定義されている。具体的には、階層構造定義情報６００には、最上位の第１階層にＨＴＴＰが定義され、第２階層にＩＩＯＰが定義され、最下位の第３階層にＳＱＬが定義されている。
【００６０】
（分析支援装置１０１の機能的構成）
図７は、実施の形態にかかるシステム分析支援装置の機能的構成の一例を示すブロック図である。図７において、システム分析支援装置１０１は、取得部７０１と、検出部７０２と、特定部７０３と、選択部７０４と、第１の算出部７０５と、第２の算出部７０６と、判定部７０７と、出力部７０８と、削除部７０９と、を含む構成である。各機能部（取得部７０１〜削除部７０９）は、具体的には、例えば、図４に示したＲＯＭ４０２、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶されたプログラムをＣＰＵ４０１に実行させることにより、または、Ｉ／Ｆ４０９により、その機能を実現する。また、各機能部の処理結果は、特に指定する場合を除いて、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶される。
【００６１】
取得部７０１は、ネットワークシステム１００のプロトコルの階層構造が定義された階層構造定義情報６００（図６参照）を取得する機能を有する。具体的には、例えば、取得部７０１が、階層構造定義情報６００を、図４に示したキーボード４１０やマウス４１１を用いたユーザの操作入力により取得してもよく、また、外部のコンピュータから階層構造定義情報６００を受信してもよい。階層構造定義情報６００によれば、ネットワークシステム１００のプロトコルの階層構造を認識することができる。
【００６２】
また、取得部７０１は、ネットワークシステム１００内で受け渡されたメッセージ群を取得する機能を有する。メッセージは、例えば、メッセージＩＤ、タイムスタンプ、プロトコルおよびメッセージ種別を含む電文である。また、リクエストメッセージには、オブジェクトが含まれている。
【００６３】
具体的には、例えば、取得部７０１が、ネットワークシステム１００内に設けられたスイッチ（不図示）を介して、ネットワークシステム１００内のコンピュータ間で送受信されるパケットをキャプチャする。そして、システム分析支援装置１０１において、キャプチャしたパケット群をメッセージ解析して各メッセージを再構成することにより、メッセージ群を取得する。
【００６４】
また、取得部７０１が、例えば、メッセージ群を、キーボード４１０やマウス４１１を用いたユーザの操作入力により取得してもよく、さらに、外部のコンピュータからメッセージ群を受信してもよい。取得されたメッセージのメッセージＩＤ、タイムスタンプ、プロトコルおよびメッセージ種別は、例えば、図５に示したメッセージＤＢ５００に記憶される。
【００６５】
検出部７０２は、取得されたメッセージ群の中から、ネットワークシステム１００内のデータベース１２０を操作するためのプロトコルの直上層のプロトコルのリクエストメッセージとレスポンスメッセージのペアを検出する機能を有する。
【００６６】
ここで、データベース１２０を操作するためのプロトコルは、ネットワークシステム１００の第３階層に定義されている「ＳＱＬ」である。また、プロトコル「ＳＱＬ」の直上層のプロトコルは、ネットワークシステム１００の第２階層に定義されている「ＩＩＯＰ」である。
【００６７】
具体的には、例えば、まず、検出部７０２が、メッセージＤＢ５００の中から、プロトコル「ＩＩＯＰ」の任意のメッセージデータを検出する。つぎに、検出部７０２が、メッセージＤＢ５００の中から、選択したメッセージデータとメッセージＩＤが同一かつプロトコル「ＩＩＯＰ」のメッセージデータを検出する。これにより、プロトコル「ＩＩＯＰ」のリクエストメッセージとレスポンスメッセージのペアを検出することができる。
【００６８】
一例として、検出部７０２が、メッセージＤＢ５００の中からメッセージデータ５００−３を検出した場合を想定する。この場合、検出部７０２が、メッセージＤＢ５００の中からメッセージＩＤ「Ｉ１」かつプロトコル「ＩＩＯＰ」のメッセージデータ５００−７を検出する。これにより、プロトコル「ＩＩＯＰ」のリクエストメッセージＩ１とレスポンスメッセージＩ１とのペアを検出することができる。
【００６９】
検出部７０２は、例えば、メッセージＤＢ５００の中から検出されていないプロトコル「ＩＩＯＰ」のメッセージデータがなくなるまで、ペアを検出する処理を繰り返し行う。これにより、メッセージＤＢ５００の中からプロトコル「ＩＩＯＰ」のリクエストメッセージとレスポンスメッセージのすべてのペアを検出することができる。
【００７０】
また、検出部７０２は、検出したペアごとに、該ペアのリクエストメッセージの送信時刻をリクエスト時刻として特定し、該ペアのレスポンスメッセージの送信時刻をレスポンス時刻として特定する。一例として、プロトコル「ＩＩＯＰ」かつメッセージＩＤ「Ｉ１」のペアが検出された場合を想定する。この場合、メッセージデータ５００−３のタイムスタンプ「００：００：００．００２」をリクエスト時刻とし、メッセージデータ５００−７のタイムスタンプ「００：００：００．００６」をレスポンス時刻として特定する。
【００７１】
検出された検出結果は、例えば、図８に示すペア情報テーブル８００に記憶される。ペア情報テーブル８００は、例えば、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置により実現される。ここで、ペア情報テーブル８００について説明する。
【００７２】
図８は、ペア情報テーブルの記憶内容の一例を示す説明図である。図８において、ペア情報テーブル８００は、ペアＩＤ、メッセージＩＤ、リクエスト時刻およびレスポンス時刻のフィールドを有する。各フィールドに情報を設定することで、検出されたペアごとのペア情報（例えば、ペア情報８００−１，８００−２）がレコードとして記憶されている。
【００７３】
ここで、ペアＩＤは、プロトコル「ＩＩＯＰ」のリクエストメッセージとレスポンスメッセージとのペアの識別子である。メッセージＩＤは、ペアのメッセージＩＤである。リクエスト時刻は、ペアのリクエストメッセージの送信時刻である。レスポンス時刻は、ペアのレスポンスメッセージの送信時刻である。
【００７４】
例えば、ペア情報８００−１によれば、リクエスト時刻「００：００：００．００２」にペアＰ１のリクエストメッセージＩ１が送信され、レスポンス時刻「００：００：００．００６」にペアＰ１のレスポンスメッセージＩ１が送信されたことを認識できる。
【００７５】
図７の説明に戻り、特定部７０３は、取得されたメッセージ群のうち、ネットワークシステム１００内のデータベース１２０を操作するためのプロトコルのメッセージのオブジェクトを特定する機能を有する。
【００７６】
具体的には、例えば、まず、特定部７０３が、プロトコル「ＳＱＬ」のリクエストメッセージのオブジェクトを特定する。より具体的には、例えば、特定部７０３が、取得されたプロトコル「ＳＱＬ」のリクエストメッセージの中から、予め規定された抽出ルールに従って命令文の一部または全部を抽出することによりオブジェクトを特定する。
【００７７】
例えば、取得されたリクエストメッセージＳ１に含まれる命令文を「ＳＥＬＥＣＴ  ＩＤ，  Ｎａｍｅ  ＦＲＯＭ  Ｃｕｓｔｏｍｅｒ  ＷＨＥＲＥ  ＩＤ＝１００」とする。この場合、例えば、特定部７０３が、リクエストメッセージＳ１の中から、「ＳＥＬＥＣＴ  …  ＦＲＯＭ  Ｃｕｓｔｏｍｅｒ  ＷＨＥＲＥ  …」を抽出することにより、オブジェクト「ＳＱＬ１」を特定する。
【００７８】
特定されたリクエストメッセージのオブジェクトは、メッセージＤＢ５００内の該当するメッセージデータのオブジェクトフィールドに設定される。例えば、特定されたリクエストメッセージＳ１のオブジェクト「ＳＱＬ１」は、メッセージＤＢ５００内のメッセージデータ５００−４のオブジェクトフィールドに設定される。
【００７９】
つぎに、特定部７０３が、プロトコル「ＳＱＬ」のレスポンスメッセージのオブジェクトを特定する。具体的には、例えば、まず、特定部７０３が、メッセージＤＢ５００の中から、プロトコル「ＳＱＬ」かつメッセージ種別「リクエスト」のメッセージデータを選択する。そして、特定部７０３が、選択したメッセージデータのオブジェクトを特定する。
【００８０】
このあと、特定部７０３が、メッセージＤＢ５００の中から、選択したメッセージデータとメッセージＩＤが同一かつプロトコル「ＳＱＬ」のメッセージデータを検索する。ここで、メッセージデータが検索された場合、特定部７０３が、メッセージＤＢ５００内の該メッセージデータのオブジェクトフィールドに、特定したオブジェクトを設定する。
【００８１】
これにより、プロトコル「ＳＱＬ」のレスポンスメッセージのオブジェクトを特定することができる。なお、プロトコル「ＳＱＬ」のレスポンスメッセージのオブジェクトの特定例については、図１１を用いて後述する。
【００８２】
選択部７０４は、取得されたメッセージ群の中から、所定期間Ｔ内に送信された、データベース１２０に対する所定の操作に関するメッセージの集合を選択する機能を有する。データベース１２０に対する所定の操作に関するメッセージとは、データベース１２０に対する所定の操作を表す命令文を含むリクエストメッセージおよび該リクエストメッセージと同一メッセージＩＤのレスポンスメッセージである。
【００８３】
すなわち、所定の操作に関するメッセージの集合は、プロトコル「ＳＱＬ」の同一オブジェクトのメッセージの集合である。具体的には、例えば、選択部７０４が、メッセージＤＢ５００のオブジェクトフィールドを参照して、プロトコル「ＳＱＬ」のオブジェクトごとに、所定期間Ｔ内に送信された同一オブジェクトのメッセージの集合を抽出する。
【００８４】
一例として、所定期間Ｔを「００：００：００．０００〜００：００：００．０１１」とする。この場合、選択部７０４が、例えば、メッセージＤＢ５００のオブジェクトフィールドを参照して、所定期間Ｔ内に送信されたオブジェクト「ＳＱＬ１」のリクエストメッセージＳ１およびレスポンスメッセージＳ１を選択する。
【００８５】
なお、所定期間Ｔは、任意に設定可能であり、例えば、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶されている。具体的には、例えば、所定期間Ｔは、例えば、１０分単位や１時間単位の期間である。
【００８６】
第１の算出部７０５は、選択されたメッセージの集合のうち、検出部７０２によって検出された１以上のペアのリクエスト時刻とレスポンス時刻の間に送信されたメッセージの割合を表す指標値を算出する機能を有する。
【００８７】
ここで、選択されたメッセージは、プロトコル「ＳＱＬ」のメッセージである。検出されたペアは、プロトコル「ＩＩＯＰ」のメッセージのペアである。すなわち、検出された１つ以上のペアのリクエスト時刻とレスポンス時刻の間に送信されたメッセージとは、親が存在するメッセージである。
【００８８】
具体的には、例えば、第１の算出部７０５が、プロトコル「ＳＱＬ」のオブジェクトごとに、選択された該オブジェクトのメッセージの集合のうち、親が存在するメッセージの割合を表す指標値（以下、「出現率」という）を算出する。なお、第１の算出部７０５の具体的な処理内容については、図１２を用いて後述する。
【００８９】
以下説明のため、プロトコル「ＳＱＬ」の任意のオブジェクトを「オブジェクトＳＱＬｉ」と表記する。
【００９０】
第２の算出部７０６は、所定期間Ｔのうち、検出された１以上のペアのリクエスト時刻からレスポンス時刻までの期間（以下、「占有期間」という）が占める割合を表す指標値（以下、「占有率」という）を算出する機能を有する。ここで、占有期間とは、所定期間Ｔのうち多重度が１以上の期間の合計である。多重度とは、データベース１２０を操作するためのプロトコルの直上層のプロトコルのペアのリクエスト時刻からレスポンス時刻までの期間が重なっている数である。
【００９１】
具体的には、例えば、第２の算出部７０６が、所定期間Ｔのうち、多重度が１以上の期間の合計を表すプロトコル「ＩＩＯＰ」の占有期間を算出する。そして、第２の算出部７０６が、所定期間Ｔのうち、プロトコル「ＩＩＯＰ」の占有期間が占める割合を表す占有率を算出する。なお、第２の算出部７０６の具体的な処理内容は、図１３を用いて後述する。
【００９２】
判定部７０７は、算出された出現率および占有率に基づいて、データベース１２０に対する所定の操作がバッチ処理の操作か否かを判定する。具体的には、例えば、判定部７０７が、プロトコル「ＳＱＬ」のオブジェクトＳＱＬｉの出現率（以下、「出現率Ａｉ」という）および所定期間Ｔの占有率（以下、「占有率Ｐ」という）に基づいて、オブジェクトＳＱＬｉがバッチ処理のオブジェクトか否かを判定する。
【００９３】
より具体的には、例えば、判定部７０７が、オブジェクトＳＱＬｉの出現率Ａｉが閾値α以下かつ所定期間Ｔの占有率Ｐが閾値β以下の場合、オブジェクトＳＱＬｉがバッチ処理のオブジェクトであると判定する。閾値α、βは、予め設定されてＲＯＭ４０２、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶されている。
【００９４】
ここで、オブジェクトＳＱＬｉの出現率Ａｉが低ければ低いほど、オブジェクトＳＱＬｉがバッチ処理のオブジェクトである可能性が高くなる。また、所定期間Ｔの占有率Ｐが低ければ低いほど、オブジェクトＳＱＬｉがバッチ処理のオブジェクトである可能性が高くなる。
【００９５】
すなわち、上記閾値α、βを小さい値に設定するほど、バッチ処理のオブジェクトを正確に判定することができる。一方、上記閾値α、βの値が小さすぎると、バッチ処理のオブジェクトであると判定される基準が厳しくなり、オブジェクトＳＱＬｉがバッチ処理のオブジェクトであっても判定されない場合がある。
【００９６】
このため、閾値αは、シミュレーションを行うなどして、オブジェクトＳＱＬｉの出現率Ａｉが閾値α以下の場合、オブジェクトＳＱＬｉがバッチ処理のオブジェクトである可能性が高くなる適切な値（例えば、１０［％］）に設定される。同様に、閾値βは、シミュレーションを行うなどして、所定期間Ｔの占有率Ｐが閾値β以下の場合、オブジェクトＳＱＬｉがバッチ処理のオブジェクトである可能性が高くなる適切な値（例えば、１０［％］）に設定される。
【００９７】
また、選択部７０４は、複数の所定期間の各々の所定期間ごとに、メッセージ群の中から、各々の所定期間内に送信された、オブジェクトＳＱＬｉのメッセージの集合を選択することにしてもよい。ここで、複数の所定期間は、例えば、メッセージ群の集計期間全体を所定期間Ｔで区切って分割された期間の集合である。
【００９８】
以下説明のため、複数の所定期間を「集計期間Ｔ１〜Ｔｍ」と表記し、集計期間Ｔ１〜Ｔｍのうち任意の集計期間を「集計期間Ｔｊ」と表記する（ｊ＝１，２，…，ｍ）。
【００９９】
また、第１の算出部７０５は、集計期間Ｔｊごとに、集計期間Ｔｊごとに選択されたオブジェクトＳＱＬｉのメッセージの集合のうち、親が存在するメッセージの割合を表す出現率Ａｉを算出することにしてもよい。また、第２の算出部７０６は、集計期間Ｔｊごとに、集計期間Ｔｊのうち占有期間が占める割合を表す占有率Ｐを算出することにしてもよい。
【０１００】
以下説明のため、集計期間ＴｊにおけるオブジェクトＳＱＬｉの出現率Ａｉを「出現率Ａjｉ」と表記する。また、集計期間Ｔｊのうち占有期間が占める割合を表す占有率Ｐを「占有率Ｐｊ」と表記する。
【０１０１】
算出された集計期間ＴｊにおけるオブジェクトＳＱＬｉの出現率Ａjｉおよび占有率Ｐｊは、例えば、図９に示す出現率／占有率テーブル９００に記憶される。出現率／占有率テーブル９００は、例えば、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置により実現される。ここで、出現率／占有率テーブル９００について説明する。
【０１０２】
図９は、出現率／占有率テーブルの記憶内容の一例を示す説明図である。図９において、出現率／占有率テーブル９００は、集計期間ＩＤ、オブジェクトＩＤ、出現率および占有率のフィールドを有する。各フィールドに情報を設定することで、集計期間Ｔｊごとの出現率／占有率情報（例えば、出現率／占有率情報９００−１，９００−２）がレコードとして記憶されている。
【０１０３】
集計期間ＩＤは、集計期間Ｔｊの識別子である。オブジェクトＩＤは、プロトコル「ＳＱＬ」のオブジェクトの識別子である。出現率は、集計期間ＴｊにおけるオブジェクトＳＱＬｉの出現率Ａjｉである。占有率は、集計期間Ｔｊのうち占有期間が占める割合を表す占有率Ｐｊである。
【０１０４】
一例として出現率／占有率情報９００−１を例に挙げると、集計期間Ｔ１におけるオブジェクトＳＱＬ１の出現率Ａ1１、オブジェクトＳＱＬ２の出現率Ａ1２、オブジェクトＳＱＬ３の出現率Ａ1３、および集計期間Ｔ１の占有率Ｐ１が設定されている。
【０１０５】
図７の説明に戻り、また、判定部７０７は、集計期間Ｔｊごとに算出されたオブジェクトＳＱＬｉの出現率Ａjｉおよび占有率Ｐｊに基づいて、オブジェクトＳＱＬｉがバッチ処理のオブジェクトか否かを判定することにしてもよい。なお、判定部７０７の具体的な処理内容については、図１６および図１７を用いて後述する。
【０１０６】
出力部７０８は、判定された判定結果を出力する機能を有する。具体的には、例えば、出力部７０８が、後述の図１０に示すような、バッチ処理のオブジェクトＳＱＬｉをリスト化して示すオブジェクトリスト１０００を出力することにしてもよい。
【０１０７】
出力形式としては、例えば、ディスプレイ４０８への表示、プリンタ４１３への印刷出力、Ｉ／Ｆ４０９による外部装置への送信がある。また、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶領域に記憶することとしてもよい。ここで、オブジェクトリスト１０００の具体例について説明する。
【０１０８】
図１０は、オブジェクトリストの具体例を示す説明図である。図１０において、オブジェクトリスト１０００は、バッチ処理のオブジェクトＳＱＬ３，ＳＱＬ４，ＳＱＬ６をリスト化して示す情報である。オブジェクトリスト１０００によれば、プロトコル「ＳＱＬ」のオブジェクトのうち、バッチ処理のオブジェクトであると判定されたオブジェクトＳＱＬ３，ＳＱＬ４，ＳＱＬ６を判別することができる。
【０１０９】
図７の説明に戻り、削除部７０９は、オブジェクトＳＱＬｉがバッチ処理のオブジェクトであると判定された場合、ネットワークシステム１００内で受け渡されたメッセージ群の中から、オブジェクトＳＱＬｉのメッセージを削除する機能を有する。
【０１１０】
具体的には、例えば、削除部７０９が、メッセージ群の中から、オブジェクトＳＱＬｉを表す文字列を含むリクエストメッセージを特定する。つぎに、削除部７０９が、メッセージ群の中から、特定したリクエストメッセージと同一メッセージＩＤのレスポンスメッセージを検索する。
【０１１１】
そして、削除部７０９が、メッセージ群の中から、特定したリクエストメッセージおよびレスポンスメッセージを削除する。これにより、ネットワークシステム１００内で受け渡されたメッセージ群の中から、バッチ処理のオブジェクトＳＱＬｉのメッセージを削除することができる。なお、メッセージの削除例については、図１８を用いて後述する。
【０１１２】
また、出力部７０８は、ネットワークシステム１００内で受け渡されたメッセージ群の中から、バッチ処理のオブジェクトＳＱＬｉのメッセージが削除された削除後のメッセージ群を出力することにしてもよい。これにより、バッチ処理のオブジェクトＳＱＬｉのメッセージを除く残余のメッセージ群を用いて、ネットワークシステム１００内の各コンピュータの処理時間を求めることが可能となり、システム分析の分析精度を向上させることができる。
【０１１３】
なお、上述した説明では、ＨＴＴＰ、ＩＩＯＰおよびＳＱＬの３階層のネットワークシステム１００を例に挙げて説明したが、これに限らない。例えば、ネットワークシステム１００内のデータベース１２０を操作するためのプロトコルを含む多階層システム（例えば、２階層、４階層など）であればよい。
【０１１４】
（レスポンスメッセージのオブジェクトの特定例）
つぎに、図１１を用いて、プロトコル「ＳＱＬ」のレスポンスメッセージのオブジェクトＳＱＬｉの特定例について説明する。
【０１１５】
図１１は、レスポンスメッセージのオブジェクトの特定例を示す説明図である。図１１の（１１−１）において、メッセージＤＢ５００には、プロトコル「ＳＱＬ」のリクエストメッセージＳ１，Ｓ２，Ｓ３のオブジェクトＳＱＬ１，ＳＱＬ２，ＳＱＬ３が設定されている。
【０１１６】
以下、リクエストメッセージＳ１，Ｓ２，Ｓ３と同一メッセージＩＤのレスポンスメッセージＳ１〜Ｓ３のオブジェクトＳＱＬｉを特定する場合を例に挙げて説明する。
【０１１７】
・レスポンスメッセージＳ１のオブジェクトＳＱＬｉ
まず、特定部７０３が、メッセージＤＢ５００の中から、プロトコル「ＳＱＬ」かつメッセージ種別「リクエスト」のメッセージデータ５００−４を選択する。そして、特定部７０３が、メッセージデータ５００−４のオブジェクトＳＱＬ１を特定する。つぎに、特定部７０３が、メッセージＤＢ５００の中から、メッセージデータ５００−４とメッセージＩＤが同一かつプロトコル「ＳＱＬ」のメッセージデータを検索する。
【０１１８】
ここでは、メッセージデータ５００−６が検索される。そして、特定部７０３が、メッセージＤＢ５００内のメッセージデータ５００−６のオブジェクトフィールドに、特定したオブジェクトＳＱＬ１を設定する（図１１中、（１１−２）参照）。これにより、レスポンスメッセージＳ１のオブジェクトＳＱＬ１を特定することができる。
【０１１９】
・レスポンスメッセージＳ２のオブジェクトＳＱＬｉ
まず、特定部７０３が、メッセージＤＢ５００の中から、プロトコル「ＳＱＬ」かつメッセージ種別「リクエスト」のメッセージデータ５００−８を選択する。そして、特定部７０３が、メッセージデータ５００−８のオブジェクトＳＱＬ２を特定する。つぎに、特定部７０３が、メッセージＤＢ５００の中から、メッセージデータ５００−８とメッセージＩＤが同一かつプロトコル「ＳＱＬ」のメッセージデータを検索する。
【０１２０】
ここでは、メッセージデータ５００−９が検索される。そして、特定部７０３が、メッセージＤＢ５００内のメッセージデータ５００−９のオブジェクトフィールドに、特定したオブジェクトＳＱＬ２を設定する（図１１中、（１１−２）参照）。これにより、レスポンスメッセージＳ２のオブジェクトＳＱＬ２を特定することができる。
【０１２１】
・レスポンスメッセージＳ３のオブジェクトＳＱＬｉ
まず、特定部７０３が、メッセージＤＢ５００の中から、プロトコル「ＳＱＬ」かつメッセージ種別「リクエスト」のメッセージデータ５００−１１を選択する。そして、特定部７０３が、メッセージデータ５００−１１のオブジェクトＳＱＬ３を特定する。つぎに、特定部７０３が、メッセージＤＢ５００の中から、メッセージデータ５００−１１とメッセージＩＤが同一かつプロトコル「ＳＱＬ」のメッセージデータを検索する。
【０１２２】
ここでは、メッセージデータ５００−１２が検索される。そして、特定部７０３が、メッセージＤＢ５００内のメッセージデータ５００−１２のオブジェクトフィールドに、特定したオブジェクトＳＱＬ３を設定する（図１１中、（１１−２）参照）。これにより、レスポンスメッセージＳ３のオブジェクトＳＱＬ３を特定することができる。
【０１２３】
（第１の算出部７０５の具体的な処理内容）
つぎに、図１２を用いて、集計期間ＴｊにおけるオブジェクトＳＱＬｉの出現率Ａjｉを算出する第１の算出部７０５の具体的な処理内容について説明する。
【０１２４】
第１の算出部７０５は、例えば、下記式（１）を用いて、集計期間ＴｊにおけるオブジェクトＳＱＬｉの出現率Ａjｉを算出する。ただし、Ａjｉは、集計期間ＴｊにおけるオブジェクトＳＱＬｉの出現率である。Ｙは、集計期間ＴｊにおけるオブジェクトＳＱＬｉのメッセージの総数である。Ｘは、集計期間Ｔｊにおける親が存在するオブジェクトＳＱＬｉのメッセージの総数である。
【０１２５】
Ａjｉ＝Ｘ／Ｙ      ・・・（１）
【０１２６】
図１２は、ネットワークシステム内のメッセージ群の一例を示す説明図（その３）である。図１２において、メッセージｍ１〜ｍ３は、集計期間Ｔｘにおいて、Ｗｅｂサーバ１０２とＡＰサーバ１０３との間で送受信されたプロトコル「ＩＩＯＰ」のメッセージである。また、メッセージｍ４〜ｍ１７は、集計期間ＴｘにおいてＡＰサーバ１０３とＤＢサーバ１０４との間で送受信されたプロトコル「ＳＱＬ」のメッセージである。なお、集計期間Ｔｘは、集計期間Ｔ１〜Ｔｍのいずれかの集計期間である。
【０１２７】
ここで、プロトコル「ＩＩＯＰ」のメッセージｍ１，ｍ２は、メッセージＩＤが同一のペアｐ１である。時刻ｔ１は、プロトコル「ＩＩＯＰ」のメッセージｍ１（リクエスト）の送信時刻である。時刻ｔ２は、プロトコル「ＩＩＯＰ」のメッセージｍ２（レスポンス）の送信時刻である。
【０１２８】
また、プロトコル「ＩＩＯＰ」のメッセージｍ３，ｍ１８は、メッセージＩＤが同一のペアｐ２である。時刻ｔ３は、プロトコル「ＩＩＯＰ」のメッセージｍ３（リクエスト）の送信時刻である。時刻ｔ５は、プロトコル「ＩＩＯＰ」のメッセージｍ１８（レスポンス）の送信時刻である。ただし、メッセージｍ１８（レスポンス）の送信時刻は集計期間Ｔｘ外となっている。時刻ｔ４は、集計期間Ｔｘの終期の時刻である。
【０１２９】
また、メッセージｍ４，ｍ５，ｍ８，ｍ１０，ｍ１６，ｍ１７は、オブジェクトＳＱＬ１のメッセージの集合である。メッセージｍ６，ｍ７は、オブジェクトＳＱＬ２のメッセージの集合である。メッセージｍ９，ｍ１１，ｍ１２，ｍ１３，ｍ１４，ｍ１５は、オブジェクトＳＱＬ３のメッセージの集合である。
【０１３０】
・オブジェクトＳＱＬ１の出現率Ａx１
ここで、集計期間ＴｘにおけるオブジェクトＳＱＬ１の出現率Ａx１を算出する第１の算出部７０５の具体的な処理内容の一例について説明する。まず、第１の算出部７０５は、集計期間ＴｘにおけるオブジェクトＳＱＬ１のメッセージｍ４，ｍ５，ｍ８，ｍ１０，ｍ１６，ｍ１７の総数Ｙを計数する。ここでは、総数Ｙは「Ｙ＝６」である。計数された総数Ｙは、例えば、後述の図１３に示す中間テーブル１３００に記憶される。
【０１３１】
つぎに、第１の算出部７０５は、集計期間Ｔｘにおけるプロトコル「ＩＩＯＰ」の１以上のペアのリクエスト時刻とレスポンス時刻の間に送信されたオブジェクトＳＱＬ１のメッセージの総数を計数する。すなわち、第１の算出部７０５が、集計期間Ｔｘにおける親が存在するオブジェクトＳＱＬ１のメッセージの総数Ｘを計数する。
【０１３２】
ここで、オブジェクトＳＱＬ１のメッセージｍ４，ｍ５，ｍ８，ｍ１０，ｍ１６，ｍ１７のうち、メッセージｍ４，ｍ５，ｍ８，ｍ１０は、プロトコル「ＩＩＯＰ」のペアｐ１のリクエスト時刻ｔ１とレスポンス時刻ｔ２の間に送信されたメッセージである。すなわち、メッセージｍ４，ｍ５，ｍ８，ｍ１０は、親が存在するメッセージである。
【０１３３】
また、オブジェクトＳＱＬ１のメッセージｍ４，ｍ５，ｍ８，ｍ１０，ｍ１６，ｍ１７のうち、メッセージｍ１６，ｍ１７は、プロトコル「ＩＩＯＰ」のペアｐ２のリクエスト時刻ｔ３と、レスポンス時刻ｔ５前の時刻ｔ４の間に送信されたメッセージである。すなわち、メッセージｍ１６，ｍ１７は、親が存在するメッセージである。
【０１３４】
したがって、メッセージｍ４，ｍ５，ｍ８，ｍ１０，ｍ１６，ｍ１７は、すべて親が存在するメッセージである。このため、集計期間Ｔｘにおける親が存在するオブジェクトＳＱＬ１のメッセージの総数Ｘは「Ｘ＝６」となる。計数された総数Ｘは、例えば、後述の図１３に示す中間テーブル１３００に記憶される。
【０１３５】
この場合、第１の算出部７０５は、上記式（１）に「Ｘ＝６」および「Ｙ＝６」を代入することにより、集計期間ＴｘにおけるオブジェクトＳＱＬ１の出現率Ａx１を算出する。ここでは、出現率Ａx１は「Ａx１＝６／６＝１」となる。
【０１３６】
・オブジェクトＳＱＬ２の出現率Ａx２
つぎに、集計期間ＴｘにおけるオブジェクトＳＱＬ２の出現率Ａx２を算出する第１の算出部７０５の具体的な処理内容の一例について説明する。まず、第１の算出部７０５は、集計期間ＴｘにおけるオブジェクトＳＱＬ２のメッセージｍ６，ｍ７の総数Ｙを計数する。ここでは、総数Ｙは「Ｙ＝２」である。
【０１３７】
つぎに、第１の算出部７０５は、集計期間Ｔｘにおける親が存在するオブジェクトＳＱＬ２のメッセージの総数Ｘを計数する。ここで、メッセージｍ６，ｍ７は、プロトコル「ＩＩＯＰ」のペアｐ１のリクエスト時刻ｔ１とレスポンス時刻ｔ２の間に送信されたメッセージである。
【０１３８】
すなわち、オブジェクトＳＱＬ２のメッセージｍ６，ｍ７は、すべて親が存在するメッセージである。このため、集計期間Ｔｘにおける親が存在するオブジェクトＳＱＬ２のメッセージの総数Ｘは「Ｘ＝２」となる。この場合、第１の算出部７０５は、上記式（１）に「Ｘ＝２」および「Ｙ＝２」を代入することにより、集計期間ＴｘにおけるオブジェクトＳＱＬ２の出現率Ａx２を算出する。ここでは、出現率Ａx２は「Ａx２＝２／２＝１」となる。
【０１３９】
・オブジェクトＳＱＬ３の出現率Ａx３
つぎに、集計期間ＴｘにおけるオブジェクトＳＱＬ３の出現率Ａx３を算出する第１の算出部７０５の具体的な処理内容の一例について説明する。まず、第１の算出部７０５は、集計期間ＴｘにおけるオブジェクトＳＱＬ３のメッセージｍ９，ｍ１１，ｍ１２，ｍ１３，ｍ１４，ｍ１５の総数Ｙを計数する。ここでは、総数Ｙは「Ｙ＝６」である。
【０１４０】
つぎに、第１の算出部７０５は、集計期間Ｔｘにおける親が存在するオブジェクトＳＱＬ３のメッセージの総数Ｘを計数する。ここで、オブジェクトＳＱＬ３のメッセージｍ９，ｍ１１，ｍ１２，ｍ１３，ｍ１４，ｍ１５のうち、メッセージｍ９，ｍ１１は、プロトコル「ＩＩＯＰ」のペアｐ１のリクエスト時刻ｔ１とレスポンス時刻ｔ２の間に送信されたメッセージである。すなわち、メッセージｍ９，ｍ１１は、親が存在するメッセージである。
【０１４１】
また、オブジェクトＳＱＬ３のメッセージｍ９，ｍ１１，ｍ１２，ｍ１３，ｍ１４，１５のうち、メッセージｍ１５は、プロトコル「ＩＩＯＰ」のペアｐ２のリクエスト時刻ｔ３と、レスポンス時刻ｔ５前の時刻ｔ４の間に送信されたメッセージである。すなわち、メッセージｍ１５は、親が存在するメッセージである。
【０１４２】
一方、オブジェクトＳＱＬ３のメッセージｍ９，ｍ１１，ｍ１２，ｍ１３，ｍ１４，ｍ１５のうち、メッセージｍ１２，ｍ１３，ｍ１４は、プロトコル「ＩＩＯＰ」のペアｐ１，ｐ２のいずれのペアのリクエスト時刻とレスポンス時刻の間に送信されていないメッセージである。すなわち、メッセージｍ１２，ｍ１３，ｍ１４は、親が存在しないメッセージである。
【０１４３】
このため、集計期間Ｔｘにおける親が存在するオブジェクトＳＱＬ３のメッセージの総数Ｘは「Ｘ＝３」となる。この場合、第１の算出部７０５は、上記式（１）に「Ｘ＝３」および「Ｙ＝６」を代入することにより、集計期間ＴｘにおけるオブジェクトＳＱＬ３の出現率Ａx３を算出する。ここでは、出現率Ａx３は「Ａx３＝３／６＝０．５」となる。
【０１４４】
上述した第１の算出部７０５の一連の処理の途中で計数される集計期間ＴｘにおけるオブジェクトＳＱＬ１のメッセージの総数Ｙ、および親が存在するオブジェクトＳＱＬｉのメッセージの総数Ｘは、例えば、図１３に示す中間テーブル１３００に記憶される。中間テーブル１３００は、例えば、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置により実現される。ここで、中間テーブル１３００について説明する。
【０１４５】
図１３は、中間テーブルの記憶内容の一例を示す説明図である。図１３において、中間テーブル１３００は、集計期間ＩＤ、オブジェクトＩＤ、メッセージ数および親有メッセージ数のフィールドを有する。各フィールドに情報を設定することで、中間データ１３００−１〜１３００−３がレコードとして記憶されている。
【０１４６】
集計期間ＩＤは、集計期間Ｔｊの識別子である。オブジェクトＩＤは、プロトコル「ＳＱＬ」のオブジェクトＳＱＬｉの識別子である。メッセージ数は、集計期間ＴｊにおけるオブジェクトＳＱＬｉのメッセージの総数Ｙである。親有メッセージ数は、集計期間Ｔｊにおける親が存在するオブジェクトＳＱＬｉのメッセージの総数Ｘである。
【０１４７】
中間データ１３００−１を例に挙げると、集計期間ＴｘにおけるオブジェクトＳＱＬ１のメッセージの総数「Ｙ＝６」、および集計期間Ｔｊにおける親が存在するオブジェクトＳＱＬ１のメッセージの総数「Ｘ＝６」が示されている。ここでは、集計期間Ｔｘを例に挙げて、中間テーブル１３００の記憶内容について説明したが、中間テーブル１３００は集計期間Ｔ１〜Ｔｍごとに作成される。
【０１４８】
（第２の算出部７０６の具体的な処理内容）
つぎに、図１４を用いて、集計期間Ｔｊのうち占有期間が占める割合を表す占有率Ｐｊを算出する第２の算出部７０６の具体的な処理内容について説明する。
【０１４９】
第２の算出部７０６は、例えば、下記式（２）を用いて、集計期間Ｔｊのうち占有期間が占める割合を表す占有率Ｐｊを算出する。ただし、Ｌは、集計期間Ｔｊのうち、プロトコル「ＩＩＯＰ」の１以上のペアのリクエスト時刻からレスポンス時刻までの占有期間（時間長）である。Ｔｊは、集計期間（時間長）である。Ｐｊは、集計期間Ｔｊのうち占有期間Ｌが占める割合を表す占有率である。
【０１５０】
Ｐｊ＝Ｌ／Ｔｊ      ・・・（２）
【０１５１】
図１４は、ネットワークシステム内のメッセージ群の一例を示す説明図（その４）である。図１４において、メッセージｍ１９〜ｍ２３は、集計期間Ｔｙにおいて、Ｗｅｂサーバ１０２とＡＰサーバ１０３との間で送受信されたプロトコル「ＩＩＯＰ」のメッセージである。また、メッセージｍ２４〜ｍ３７は、集計期間ＴｙにおいてＡＰサーバ１０３とＤＢサーバ１０４との間で送受信されたプロトコル「ＳＱＬ」のメッセージである。なお、集計期間Ｔｙは、集計期間Ｔ１〜Ｔｍのいずれかの集計期間である。
【０１５２】
ここで、プロトコル「ＩＩＯＰ」のメッセージｍ１９，ｍ２１は、メッセージＩＤが同一のペアｐ３である。時刻ｔ６は、プロトコル「ＩＩＯＰ」のメッセージｍ１９（リクエスト）の送信時刻である。時刻ｔ８は、プロトコル「ＩＩＯＰ」のメッセージｍ２１（レスポンス）の送信時刻である。
【０１５３】
また、プロトコル「ＩＩＯＰ」のメッセージｍ２０，ｍ２２は、メッセージＩＤが同一のペアｐ４である。時刻ｔ７は、プロトコル「ＩＩＯＰ」のメッセージｍ２０（リクエスト）の送信時刻である。時刻ｔ９は、プロトコル「ＩＩＯＰ」のメッセージｍ２２（レスポンス）の送信時刻である。
【０１５４】
また、プロトコル「ＩＩＯＰ」のメッセージｍ２３，ｍ３８は、メッセージＩＤが同一のペアｐ５である。時刻ｔ１０は、プロトコル「ＩＩＯＰ」のメッセージｍ２３（リクエスト）の送信時刻である。時刻ｔ１２は、プロトコル「ＩＩＯＰ」のメッセージｍ３８（レスポンス）の送信時刻である。ただし、メッセージｍ３８（レスポンス）の送信時刻は集計期間Ｔｙ外となっている。時刻ｔ１１は、集計期間Ｔｙの終期の時刻である。また、メッセージｍ２４〜ｍ３７は、プロトコル「ＳＱＬ」のメッセージである。
【０１５５】
まず、第２の算出部７０６は、集計期間Ｔｙにおけるプロトコル「ＩＩＯＰ」の多重度を算出する。具体的には、例えば、第２の算出部７０６が、集計期間Ｔｙに送信されたプロトコル「ＩＩＯＰ」のメッセージｍ１９〜ｍ２３の送信時刻ｔ６〜ｔ１０ごとの多重度を時系列に算出する。
【０１５６】
より具体的には、例えば、第２の算出部７０６が、集計期間Ｔｙにおいて、リクエストメッセージが送信されるごとに多重度をインクリメントし、リクエストメッセージが送信されるごとに多重度をデクリメントする。ただし、多重度の初期値は「０」である。これにより、メッセージｍ１９〜ｍ２３の送信時刻ｔ６〜ｔ１０ごとの多重度を算出することができる。
【０１５７】
図１４の例では、まず、第２の算出部７０６が、送信時刻ｔ６において、リクエストメッセージｍ１９が送信されたため、多重度をインクリメントする。この結果、送信時刻ｔ６の多重度は「１」となる。つぎに、第２の算出部７０６が、送信時刻ｔ７において、リクエストメッセージｍ２０が送信されたため、多重度をインクリメントする。この結果、送信時刻ｔ７の多重度は「２」となる。
【０１５８】
つぎに、第２の算出部７０６が、送信時刻ｔ８において、レスポンスメッセージｍ２１が送信されたため、多重度をデクリメントする。この結果、送信時刻ｔ８の多重度は「１」となる。つぎに、第２の算出部７０６が、送信時刻ｔ９において、レスポンスメッセージｍ２２が送信されたため、多重度をデクリメントする。この結果、送信時刻ｔ９の多重度は「０」となる。
【０１５９】
つぎに、第２の算出部７０６が、送信時刻ｔ１０において、リクエストメッセージｍ２３が送信されたため、多重度をインクリメントする。この結果、送信時刻ｔ１０の多重度は「１」となる。
【０１６０】
算出された送信時刻ｔ６〜ｔ１０ごとの多重度は、例えば、図１５に示す多重度テーブル１５００に記憶される。多重度テーブル１５００は、例えば、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置により実現される。ここで、多重度テーブル１５００について説明する。
【０１６１】
図１５は、多重度テーブルの記憶内容の一例を示す説明図である。図１５において、多重度テーブル１５００は、集計期間Ｔｙにおける送信時刻ｔ６〜ｔ１０ごとの多重度を記憶している。ここでは、集計期間Ｔｙを例に挙げて、多重度テーブル１５００の記憶内容について説明したが、多重度テーブル１５００は集計期間Ｔ１〜Ｔｍごとに作成される。
【０１６２】
このあと、第２の算出部７０６は、例えば、多重度テーブル１５００を参照して、集計期間Ｔｙのうち多重度が１以上の期間の合計を求めることにより占有期間Ｌを算出する。具体的には、例えば、まず、第２の算出部７０６が、集計期間Ｔｙのうち多重度が１以上の期間Ｌ１，Ｌ２を算出する。
【０１６３】
期間Ｌ１は、送信時刻ｔ６から送信時刻ｔ９までの期間である。期間Ｌ２は、送信時刻ｔ１０から送信時刻ｔ１１までの期間である。つぎに、第２の算出部７０６が、集計期間Ｔｙのうち多重度が１以上の期間Ｌ１，Ｌ２の合計を求めることにより占有期間Ｌ（＝Ｌ１＋Ｌ２）を算出する。
【０１６４】
そして、第２の算出部７０６は、上記式（２）に集計期間Ｔｙ（時間長）および占有期間Ｌ（時間長）を代入することにより、集計期間Ｔｙのうち占有期間Ｌが占める割合を表す占有率Ｐｙを算出する。
【０１６５】
なお、集計期間Ｔｊの終期における多重度は、集計期間Ｔｊに時系列に連続する集計期間（例えば、集計期間Ｔ（ｊ＋１））に持ち越すことにしてもよい。これにより、プロトコル「ＩＩＯＰ」のリクエストメッセージとレスポンスメッセージのペアが複数の集計期間に跨る場合にも、多重度を適切に算出することができる。
【０１６６】
（判定部７０７の具体的な処理内容）
つぎに、図１６および図１７を用いて、集計期間Ｔｊごとに算出されたオブジェクトＳＱＬｉの出現率Ａjｉおよび占有率Ｐｊに基づいて、オブジェクトＳＱＬｉがバッチ処理のオブジェクトか否かを判定する判定部７０７の具体的な処理内容について説明する。
【０１６７】
＜判定例１＞
図１６は、バッチ処理のオブジェクトの判定例を示す説明図（その１）である。図１６において、集計期間Ｔｊの占有率Ｐｊを表すＸ軸と、集計期間ＴｊのオブジェクトＳＱＬｉの出現率Ａjｉを表すＹ軸とからなる座標系１６００が示されている。座標系１６００において、点ｆ１〜ｆ２７は、集計期間Ｔｊごとに算出された占有率ＰｊおよびオブジェクトＳＱＬｉの出現率Ａjｉの組合せを示している。
【０１６８】
具体的には、点ｆ１〜ｆ９は、集計期間Ｔｊごとに算出された占有率ＰｊおよびオブジェクトＳＱＬ１の出現率Ａj１の組合せを示している。点ｆ１０〜ｆ１８は、集計期間Ｔｊごとに算出された占有率ＰｊおよびオブジェクトＳＱＬ２の出現率Ａj２の組合せを示している。点ｆ１９〜ｆ２７は、集計期間Ｔｊごとに算出された占有率ＰｊおよびオブジェクトＳＱＬ３の出現率Ａj３の組合せを示している。
【０１６９】
より具体的には、例えば、点ｆ１は、集計期間Ｔ１〜Ｔｍのいずれかの集計期間Ｔｚの占有率Ｐｚと、集計期間ＴｚのオブジェクトＳＱＬ１の出現率Ａz１の組合せを示している。すなわち、点ｆ１の座標位置は、「（Ｘ，Ｙ）＝（Ｐｚ，Ａz１）」である。また、点ｆ１０は、集計期間Ｔｚの占有率Ｐｚと、集計期間ＴｚのオブジェクトＳＱＬ２の出現率Ａz２の組合せを示している。すなわち、点ｆ１０の座標位置は、「（Ｘ，Ｙ）＝（Ｐｚ，Ａz２）」である。また、点ｆ１９は、集計期間Ｔｚの占有率Ｐｚと、集計期間ＴｚのオブジェクトＳＱＬ３の出現率Ａz３の組合せを示している。すなわち、点ｆ１９の座標位置は、「（Ｘ，Ｙ）＝（Ｐｚ，Ａz３）」である。
【０１７０】
判定部７０７は、集計期間Ｔ１〜Ｔｍのうち占有率が最小となる集計期間Ｔｊの占有率Ｐｊが閾値β以下、かつ、該集計期間ＴｊのオブジェクトＳＱＬｉの出現率Ａjｉが閾値α以下の場合、オブジェクトＳＱＬｉがバッチ処理のオブジェクトであると判定する。
【０１７１】
具体的には、例えば、まず、判定部７０７が、集計期間Ｔ１〜Ｔｍのうち占有率が最小となる集計期間Ｔｊの占有率Ｐｊを特定する。図１６の例では、占有率が最小となる集計期間Ｔｚの占有率Ｐｚが特定される。つぎに、判定部７０７が、占有率が最小となる集計期間Ｔｚの占有率Ｐｚが閾値β以下となるか否かを判断する。
【０１７２】
ここで、占有率が最小となる集計期間Ｔｚの占有率Ｐｚが閾値βより大きい場合、判定部７０７が、オブジェクトＳＱＬ１，ＳＱＬ２，ＳＱＬ３がバッチ処理のオブジェクトではないと判定する。図１６の例では、集計期間Ｔｚの占有率Ｐｚが閾値β以下のため、判定部７０７はつぎの処理に移行する。
【０１７３】
つぎに、判定部７０７が、オブジェクトＳＱＬｉごとに、集計期間ＴｚのオブジェクトＳＱＬｉの出現率Ａzｉが閾値α以下となるか否かを判断する。ここで、オブジェクトＳＱＬｉの出現率Ａzｉが閾値α以下の場合、判定部７０７が、オブジェクトＳＱＬｉがバッチ処理のオブジェクトであると判定する。一方、オブジェクトＳＱＬｉの出現率Ａzｉが閾値αより大きい場合、判定部７０７が、オブジェクトＳＱＬｉがバッチ処理のオブジェクトではないと判定する。
【０１７４】
図１６の例では、集計期間ＴｚのオブジェクトＳＱＬ１の出現率Ａz１は閾値αより大きい。このため、判定部７０７が、オブジェクトＳＱＬ１がバッチ処理のオブジェクトではないと判定する（点ｆ１に相当）。また、集計期間ＴｚのオブジェクトＳＱＬ２の出現率Ａz２は閾値αより大きい。このため、判定部７０７が、オブジェクトＳＱＬ２がバッチ処理のオブジェクトではないと判定する（点ｆ１０に相当）。
【０１７５】
一方、集計期間ＴｚのオブジェクトＳＱＬ３の出現率Ａz３は閾値α以下である。このため、判定部７０７が、オブジェクトＳＱＬ３がバッチ処理のオブジェクトであると判定する。これにより、プロトコル「ＳＱＬ」のオブジェクトＳＱＬ１，ＳＱＬ２，ＳＱＬ３のうち、オブジェクトＳＱＬ３がバッチ処理のオブジェクトであると判別することができる。
【０１７６】
なお、図１６において、オブジェクトＳＱＬ１は、オンライン処理のみに用いられるオブジェクトである。オブジェクトＳＱＬ２は、オンライン処理およびバッチ処理の両方に用いられるオブジェクトである。オブジェクトＳＱＬ３は、バッチ処理のみに用いられるオブジェクトである。すなわち、上記判定によれば、オンライン処理およびバッチ処理のオブジェクトが混在するネットワークシステム１００において、バッチ処理のみに用いられるオブジェクトＳＱＬ３を判別することができる。
【０１７７】
＜判定例２＞
図１７は、バッチ処理のオブジェクトの判定例を示す説明図（その２）である。図１７において、集計期間Ｔｊの占有率Ｐｊを表すＸ軸と、集計期間ＴｊのオブジェクトＳＱＬｉの出現率Ａjｉを表すＹ軸とからなる座標系１７００が示されている。座標系１７００において、点ｆ２８〜ｆ４２は、集計期間Ｔｊごとに算出された占有率ＰｊおよびオブジェクトＳＱＬｉの出現率Ａjｉの組合せを示している。
【０１７８】
具体的には、点ｆ２８〜ｆ３２は、集計期間Ｔｊごとに算出された占有率ＰｊおよびオブジェクトＳＱＬ１の出現率Ａj１の組合せを示している。点ｆ３３〜ｆ３７は、集計期間Ｔｊごとに算出された占有率ＰｊおよびオブジェクトＳＱＬ２の出現率Ａj２の組合せを示している。点ｆ３８〜ｆ４２は、集計期間Ｔｊごとに算出された占有率ＰｊおよびオブジェクトＳＱＬ３の出現率Ａj３の組合せを示している。
【０１７９】
判定部７０７は、集計期間Ｔｊごとに算出されたオブジェクトＳＱＬｉの出現率Ａjｉおよび占有率Ｐｊに基づいて、座標系１７００におけるオブジェクトＳＱＬｉの回帰直線Ｄｉの傾きａｉを算出する。具体的には、例えば、判定部７０７が、最小二乗法により、集計期間Ｔｊごとに算出されたオブジェクトＳＱＬｉの出現率Ａjｉおよび占有率Ｐｊに基づいて、回帰直線Ｄｉの傾きａｉを求める。
【０１８０】
例えば、回帰直線Ｄ１を「Ｙ＝ａ１×Ｘ＋ｂ１」とする。ただし、ａ１は回帰直線Ｄ１の傾き、ｂ１は回帰直線Ｄ１の切片である。この場合、判定部７０７が、最小二乗法により、座標系１７００の各点２８〜ｆ３２と回帰直線Ｄ１との距離の２乗を足し合わせた値が最小となる傾きａ１および切片ｂ１を算出する。
【０１８１】
そして、判定部７０７は、算出したオブジェクトＳＱＬｉの回帰直線Ｄｉの傾きａｉが所定の閾値γ以上か否かを判断する。ここで、回帰直線Ｄｉの傾きａｉが閾値γ以上の場合、判定部７０７は、オブジェクトＳＱＬｉがバッチ処理のオブジェクトであると判定する。
【０１８２】
一方、回帰直線Ｄｉの傾きａｉが閾値γ未満の場合、判定部７０７は、オブジェクトＳＱＬｉがバッチ処理のオブジェクトではないと判定する。閾値γは、予め設定されてＲＯＭ４０２、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置に記憶されている。
【０１８３】
ここで、オブジェクトＳＱＬｉの出現率Ａjｉが低ければ低いほど、オブジェクトＳＱＬｉがバッチ処理のオブジェクトである可能性が高くなる。また、集計期間Ｔｊの占有率Ｐｊが低ければ低いほど、オブジェクトＳＱＬｉがバッチ処理のオブジェクトである可能性が高くなる。
【０１８４】
換言すれば、バッチ処理のオブジェクトＳＱＬｉは、占有率Ｐｊが高くなると出現率Ａjｉが高くなる傾向が強い。このため、バッチ処理のオブジェクトＳＱＬｉの回帰直線Ｄｉは、オンライン処理のオブジェクトの回帰直線に比べて傾きａｉが大きくなる。
【０１８５】
したがって、上記閾値γを大きい値に設定するほど、バッチ処理のオブジェクトを正確に判定することができる。一方、上記閾値γの値が大きすぎると、バッチ処理のオブジェクトであると判定される基準が厳しくなり、オブジェクトＳＱＬｉがバッチ処理のオブジェクトであっても判定されない場合がある。
【０１８６】
このため、閾値γは、シミュレーションを行うなどして、オブジェクトＳＱＬｉの回帰直線Ｄｉの傾きａｉが閾値γ以上の場合、オブジェクトＳＱＬｉがバッチ処理のオブジェクトである可能性が高くなる適切な値（例えば、０．７）に設定される。
【０１８７】
図１７において、回帰直線Ｄは、傾きが上記閾値γの直線である。図１７の例では、オブジェクトＳＱＬ１の回帰直線Ｄ１の傾きａ１は閾値γ未満である。また、オブジェクトＳＱＬ２の回帰直線Ｄ２の傾きａ２は閾値γ未満である。このため、判定部７０７は、オブジェクトＳＱＬ１，ＳＱＬ２がバッチ処理のオブジェクトではないと判定する。
【０１８８】
一方、オブジェクトＳＱＬ３の回帰直線Ｄ３の傾きａ３は閾値γ以上である。このため、判定部７０７は、オブジェクトＳＱＬ３がバッチ処理のオブジェクトであると判定する。これにより、プロトコル「ＳＱＬ」のオブジェクトＳＱＬ１，ＳＱＬ２，ＳＱＬ３のうち、オブジェクトＳＱＬ３がバッチ処理のオブジェクトであると判別することができる。
【０１８９】
（メッセージの削除例）
つぎに、図１８を用いて、ネットワークシステム１００内で受け渡されたメッセージ群の中から、バッチ処理のオブジェクトであると判定されたオブジェクトＳＱＬｉのメッセージを削除する削除部７０９の具体的な処理内容について説明する。
【０１９０】
まず、取得部７０１は、ネットワークシステム１００内で受け渡された処理対象となるメッセージ群を取得する。取得された処理対象となるメッセージ群は、例えば、図１８に示す処理対象テーブル１８００に記憶される。処理対象テーブル１８００は、例えば、ＲＡＭ４０３、磁気ディスク４０５、光ディスク４０７などの記憶装置により実現される。ここで、処理対象テーブル１８００について説明する。
【０１９１】
図１８は、処理対象テーブルの記憶内容の一例を示す説明図である。図１８において、処理対象テーブル１８００は、メッセージＩＤ、タイムスタンプ、プロトコル、メッセージ種別および削除フラグのフィールドを有する。各フィールドに情報を設定することで、処理対象となるメッセージのメッセージデータ１８００−１〜１８００−１２がレコードとして記憶されている。
【０１９２】
メッセージＩＤは、ネットワークシステム１００内で送受信されたメッセージの識別子である。タイムスタンプは、メッセージの送信時刻である。メッセージ種別は、リクエストメッセージまたはレスポンスメッセージを示す情報である。削除フラグは、削除対象となるメッセージを示すフラグである。ここでは、削除フラグが「１」のメッセージが削除対象となる。削除フラグは、初期状態は「０」である。
【０１９３】
図１８の（１８−１）の処理対象テーブル１８００において、取得された処理対象となるメッセージ群のメッセージデータ１８００−１〜１８００−１２が記憶されている。なお、図示は省略するが、処理対象テーブル１８００には、各メッセージデータ１８００−１〜１８００−１２に対応するメッセージが関連付けられて記憶されている。
【０１９４】
以下、プロトコル「ＳＱＬ」のオブジェクトＳＱＬ３がバッチ処理のオブジェクトであると判定された場合を例に挙げて説明する。
【０１９５】
まず、削除部７０９が、処理対象テーブル１８００の中から、プロトコル「ＳＱＬ」の任意のメッセージデータを選択する。つぎに、削除部７０９が、選択したメッセージデータのメッセージ種別フィールドに「リクエスト」が設定されているか否かを判断する。ここで、「リクエスト」が設定されている場合、削除部７０９が、選択したメッセージデータに対応するメッセージからオブジェクトＳＱＬｉを抽出する。
【０１９６】
そして、削除部７０９が、抽出したオブジェクトＳＱＬｉがオブジェクトＳＱＬ３か否かを判断する。ここで、オブジェクトＳＱＬｉがオブジェクトＳＱＬ３の場合、選択したメッセージデータの削除フラグに「１」を設定する。図１８の（１８−２）の例では、メッセージデータ１８００−１１の削除フラグに「１」が設定されている。
【０１９７】
また、選択したメッセージデータのメッセージ種別フィールドに「レスポンス」が設定されている場合、削除部７０９が、処理対象テーブル１８００の中から、選択したメッセージデータと同一メッセージＩＤのメッセージデータを検索する。ここで、検索された場合、削除部７０９が、検索したメッセージデータに対応するメッセージからオブジェクトＳＱＬｉを抽出する。
【０１９８】
そして、削除部７０９が、抽出したオブジェクトＳＱＬｉがオブジェクトＳＱＬ３か否かを判断する。ここで、オブジェクトＳＱＬｉがオブジェクトＳＱＬ３の場合、選択したメッセージデータの削除フラグに「１」を設定する。図１８の（１８−２）の例では、メッセージデータ１８００−１２の削除フラグに「１」が設定されている。
【０１９９】
削除部７０９は、例えば、処理対象テーブル１８００の中から選択されていない未選択のメッセージデータがなくなるまで、上述した一連の処理を繰り返す。最後に、削除部７０９が、処理対象テーブル１８００の中から削除フラグに「１」が設定されているメッセージデータを削除する。
【０２００】
図１８の（１８−３）の例では、処理対象テーブル１８００の中からメッセージデータ１８００−１１，１８００−１２が削除されている。これにより、処理対象となるメッセージ群の中から、バッチ処理のオブジェクトＳＱＬｉのメッセージを除去することができる。
【０２０１】
なお、図１８に示した例では、バッチ処理のオブジェクトＳＱＬｉのメッセージを削除する場合を例に挙げて説明したが、バッチ処理のオブジェクトＳＱＬｉのメッセージを除く残余のメッセージを削除することにしてもよい。これにより、処理対象となるメッセージ群の中からバッチ処理のオブジェクトＳＱＬｉのメッセージを抽出することができる。
【０２０２】
（システム分析支援装置１０１のシステム分析支援処理手順）
つぎに、実施の形態にかかるシステム分析支援装置１０１のシステム分析支援処理手順について説明する。
【０２０３】
図１９は、実施の形態にかかるシステム分析支援装置のシステム分析支援処理手順の一例を示すフローチャートである。図１９のフローチャートにおいて、まず、取得部７０１により、ネットワークシステム１００内で受け渡されたメッセージ群を取得したか否かを判断する（ステップＳ１９０１）。
【０２０４】
ここで、取得部７０１により、メッセージ群を取得するのを待つ（ステップＳ１９０１：Ｎｏ）。そして、メッセージ群が取得された場合（ステップＳ１９０１：Ｙｅｓ）、検出部７０２により、取得されたメッセージ群の中から、プロトコル「ＩＩＯＰ」のリクエストメッセージとレスポンスメッセージのペアを検出する（ステップＳ１９０２）。
【０２０５】
つぎに、特定部７０３により、取得されたメッセージ群のうち、プロトコル「ＳＱＬ」のメッセージのオブジェクトＳＱＬｉを特定する（ステップＳ１９０３）。このあと、選択部７０４により、集計期間Ｔｊの「ｊ」を「ｊ＝１」とする（ステップＳ１９０４）。
【０２０６】
そして、第１の算出部７０５により、集計期間ＴｊにおけるオブジェクトＳＱＬｉの出現率Ａjｉを算出する出現率算出処理を実行する（ステップＳ１９０５）。つぎに、第２の算出部７０６により、集計期間Ｔｊのうち占有期間Ｌが占める割合を表す占有率Ｐｊを算出する占有率算出処理を実行する（ステップＳ１９０６）。
【０２０７】
このあと、選択部７０４により、集計期間Ｔｊの「ｊ」をインクリメントして（ステップＳ１９０７）、「ｊ」が「ｍ」より大きいか否かを判断する（ステップＳ１９０８）。ここで、「ｊ」が「ｍ」以下の場合（ステップＳ１９０８：Ｎｏ）、ステップＳ１９０５に戻る。
【０２０８】
一方、「ｊ」が「ｍ」より大きい場合（ステップＳ１９０８：Ｙｅｓ）、判定部７０７により、オブジェクトＳＱＬｉがバッチ処理のオブジェクトか否かを判定する判定処理を実行する（ステップＳ１９０９）。そして、出力部７０８により、バッチ処理のオブジェクトＳＱＬｉをリスト化して示すオブジェクトリスト１０００を出力して（ステップＳ１９１０）、本フローチャートによる一連の処理を終了する。
【０２０９】
これにより、プロトコル「ＳＱＬ」のオブジェクトのうち、バッチ処理のオブジェクトＳＱＬｉを判別することができる。
【０２１０】
＜出現率算出処理の具体的な処理手順＞
つぎに、図１９に示したステップＳ１９０５の出現率算出処理の具体的な処理手順について説明する。
【０２１１】
図２０は、ステップＳ１９０５の出現率算出処理の具体的な処理手順の一例を示すフローチャートである。図２０のフローチャートにおいて、まず、選択部７０４により、図１９に示したステップＳ１９０１において取得されたメッセージ群の中から、集計期間Ｔｊ内に送信された、オブジェクトＳＱＬｉのメッセージの集合を選択する（ステップＳ２００１）。
【０２１２】
つぎに、第１の算出部７０５により、選択されたメッセージの集合のオブジェクトＳＱＬｉのオブジェクトＩＤを集計期間Ｔｊの中間テーブル１３００に登録する（ステップＳ２００２）。このあと、第１の算出部７０５により、選択されたメッセージの集合の中から任意のメッセージを選択する（ステップＳ２００３）。
【０２１３】
そして、第１の算出部７０５により、中間テーブル１３００内のオブジェクトＳＱＬｉのメッセージ数をインクリメントする（ステップＳ２００４）。なお、中間テーブル１３００内のオブジェクトＳＱＬｉのメッセージ数の初期値は「０」である。
【０２１４】
つぎに、第１の算出部７０５により、選択されたメッセージに親が存在するか否かを判断する（ステップＳ２００５）。ここで、親が存在しない場合（ステップＳ２００５：Ｎｏ）、ステップＳ２００７に移行する。
【０２１５】
一方、親が存在する場合（ステップＳ２００５：Ｙｅｓ）、第１の算出部７０５により、中間テーブル１３００内のオブジェクトＳＱＬｉの親有メッセージ数をインクリメントする（ステップＳ２００６）。なお、中間テーブル１３００内のオブジェクトＳＱＬｉの親有メッセージ数の初期値は「０」である。
【０２１６】
つぎに、第１の算出部７０５により、ステップＳ２００１において選択されたメッセージの集合の中から選択されていない未選択のメッセージがあるか否かを判断する（ステップＳ２００７）。ここで、未選択のメッセージがある場合（ステップＳ２００７：Ｙｅｓ）、ステップＳ２００３に戻る。
【０２１７】
一方、未選択のメッセージがない場合（ステップＳ２００７：Ｎｏ）、選択部７０４により、メッセージ群の中から選択されていない未選択のオブジェクトＳＱＬｉのメッセージの集合があるか否かを判断する（ステップＳ２００８）。ここで、未選択のメッセージの集合がある場合（ステップＳ２００８：Ｙｅｓ）、ステップＳ２００１に戻る。
【０２１８】
一方、未選択のメッセージの集合がない場合（ステップＳ２００８：Ｎｏ）、第１の算出部７０５により、中間テーブル１３００を参照して、オブジェクトＳＱＬｉごとの出現率Ａjｉを算出して（ステップＳ２００９）、図１９に示したステップＳ１９０６に移行する。なお、算出されたオブジェクトＳＱＬｉごとの出現率Ａjｉは、図９に示した出現率／占有率テーブル９００に記憶される。
【０２１９】
これにより、集計期間ＴｊにおけるオブジェクトＳＱＬｉごとの出現率Ａjｉを算出することができる。
【０２２０】
＜占有率算出処理の具体的な処理手順＞
つぎに、図１９に示したステップＳ１９０６の占有率算出処理の具体的な処理手順について説明する。
【０２２１】
図２１は、ステップＳ１９０６の占有率算出処理の具体的な処理手順の一例を示すフローチャートである。図２１のフローチャートにおいて、まず、第２の算出部７０６により、図１９に示したステップＳ１９０１において取得されたメッセージ群の中から、集計期間Ｔｊ内に送信された、プロトコル「ＩＩＯＰ」のメッセージの集合を抽出する（ステップＳ２１０１）。
【０２２２】
つぎに、第２の算出部７０６により、抽出したメッセージの集合の中から、送信時刻が最古の未選択のメッセージを選択する（ステップＳ２１０２）。そして、第２の算出部７０６により、選択したメッセージのメッセージ種別が「リクエスト」であるか否かを判断する（ステップＳ２１０３）。
【０２２３】
ここで、メッセージ種別が「リクエスト」の場合（ステップＳ２１０３：Ｙｅｓ）、第２の算出部７０６により、集計期間Ｔｊの多重度をインクリメントして（ステップＳ２１０４）、ステップＳ２１０６に移行する。なお、集計期間Ｔｊの多重度の初期値は「０」である。
【０２２４】
一方、メッセージ種別が「レスポンス」の場合（ステップＳ２１０３：Ｎｏ）、第２の算出部７０６により、集計期間Ｔｊの多重度をデクリメントする（ステップＳ２１０５）。そして、第２の算出部７０６により、集計期間Ｔｊの多重度、および、選択したメッセージの送信時刻を、集計期間Ｔｊの多重度テーブル１５００に登録する（ステップＳ２１０６）。
【０２２５】
このあと、第２の算出部７０６により、ステップＳ２１０１において抽出したメッセージの集合の中から選択されていない未選択のメッセージがあるか否かを判断する（ステップＳ２１０７）。ここで、未選択のメッセージがある場合（ステップＳ２１０７：Ｙｅｓ）、ステップＳ２１０２に戻る。
【０２２６】
一方、未選択のメッセージがない場合（ステップＳ２１０７：Ｎｏ）、第２の算出部７０６により、多重度テーブル１５００を参照して、集計期間Ｔｊのうち多重度が１以上の期間の合計を求めることにより占有期間Ｌを算出する（ステップＳ２１０８）。
【０２２７】
そして、第２の算出部７０６により、上記式（２）に集計期間Ｔｊおよび占有期間Ｌを代入することで、集計期間Ｔｊの占有率Ｐｊを算出して（ステップＳ２１０９）、図１９に示したステップＳ１９０７に移行する。
【０２２８】
これにより、集計期間Ｔｊの占有率Ｐｊを算出することができる。なお、上述した説明では、集計期間Ｔｊの多重度の初期値を「０」としたが、集計期間Ｔ（ｊ−１）の終期における多重度を集計期間Ｔｊの多重度の初期値としてもよい。
【０２２９】
＜判定処理の具体的な処理手順（その１）＞
つぎに、図１９に示したステップＳ１９０９の判定処理の具体的な処理手順について説明する。ここでは、まず、上述した＜判定例１＞に対応する判定処理の具体的な処理手順について説明する。
【０２３０】
図２２は、ステップＳ１９０９の判定処理の具体的な処理手順の一例を示すフローチャート（その１）である。図２２のフローチャートにおいて、まず、判定部７０７により、出現率／占有率テーブル９００を参照して、集計期間Ｔ１〜Ｔｍのうち占有率が最小となる集計期間Ｔｊの占有率Ｐｊを特定する（ステップＳ２２０１）。
【０２３１】
このあと、判定部７０７により、特定した集計期間Ｔｊの占有率Ｐｊが閾値β以下となるか否かを判断する（ステップＳ２２０２）。ここで、占有率Ｐｊが閾値β以下の場合（ステップＳ２２０２：Ｙｅｓ）、判定部７０７により、出現率／占有率テーブル９００を参照して、集計期間Ｔｊの任意のオブジェクトＳＱＬｉを選択する（ステップＳ２２０３）。
【０２３２】
このあと、判定部７０７により、出現率／占有率テーブル９００を参照して、選択したオブジェクトＳＱＬｉの出現率Ａzｉが閾値α以下となるか否かを判断する（ステップＳ２２０４）。ここで、出現率Ａzｉが閾値αより大きい場合（ステップＳ２２０４：Ｎｏ）、ステップＳ２２０７に移行する。
【０２３３】
一方、出現率Ａzｉが閾値α以下の場合（ステップＳ２２０４：Ｙｅｓ）、判定部７０７により、選択したオブジェクトＳＱＬｉがバッチ処理のオブジェクトであると判定する（ステップＳ２２０５）。そして、判定部７０７により、オブジェクトリスト１０００に、バッチ処理のオブジェクトであると判定されたオブジェクトＳＱＬｉのオブジェクトＩＤを登録する（ステップＳ２２０６）。
【０２３４】
このあと、判定部７０７により、出現率／占有率テーブル９００を参照して、選択されていない未選択のオブジェクトＳＱＬｉがあるか否かを判断する（ステップＳ２２０７）。ここで、未選択のオブジェクトＳＱＬｉがある場合（ステップＳ２２０７：Ｙｅｓ）、ステップＳ２２０３に戻る。一方、未選択のオブジェクトＳＱＬｉがない場合（ステップＳ２２０７：Ｎｏ）、図１９に示したステップＳ１９１０に移行する。
【０２３５】
また、ステップＳ２２０２において、占有率Ｐｊが閾値βより大きい場合（ステップＳ２２０２：Ｎｏ）、判定部７０７により、すべてのオブジェクトＳＱＬｉがバッチ処理のオブジェクトではないと判定して（ステップＳ２２０８）、図１９に示したステップＳ１９１０に移行する。
【０２３６】
これにより、閾値αおよび閾値βを、バッチ処理のオブジェクトである可能性が高くなる任意の値にそれぞれ設定して、バッチ処理のオブジェクトの判定を行うことができる。
【０２３７】
＜判定処理の具体的な処理手順（その２）＞
つぎに、上述した＜判定例２＞に対応する判定処理の具体的な処理手順について説明する。
【０２３８】
図２３は、ステップＳ１９０９の判定処理の具体的な処理手順の一例を示すフローチャート（その２）である。図２３のフローチャートにおいて、まず、判定部７０７により、出現率／占有率テーブル９００を参照して、任意のオブジェクトＳＱＬｉを選択する（ステップＳ２３０１）。
【０２３９】
このあと、判定部７０７により、出現率／占有率テーブル９００を参照して、選択したオブジェクトＳＱＬｉの回帰直線Ｄｉの傾きａｉを算出する（ステップＳ２３０２）。そして、判定部７０７により、算出した回帰直線Ｄｉの傾きａｉが閾値γ以上か否かを判断する（ステップＳ２３０３）。
【０２４０】
ここで、回帰直線Ｄｉの傾きａｉが閾値γ以上の場合（ステップＳ２３０３：Ｙｅｓ）、判定部７０７により、オブジェクトＳＱＬｉがバッチ処理のオブジェクトであると判定する（ステップＳ２３０４）。そして、判定部７０７により、オブジェクトリスト１０００に、バッチ処理のオブジェクトであると判定されたオブジェクトＳＱＬｉのオブジェクトＩＤを登録する（ステップＳ２３０５）。
【０２４１】
このあと、判定部７０７により、出現率／占有率テーブル９００を参照して、選択されていない未選択のオブジェクトＳＱＬｉがあるか否かを判断する（ステップＳ２３０６）。ここで、未選択のオブジェクトＳＱＬｉがある場合（ステップＳ２３０６：Ｙｅｓ）、ステップＳ２３０１に戻る。一方、未選択のオブジェクトＳＱＬｉがない場合（ステップＳ２３０６：Ｎｏ）、図１９に示したステップＳ１９１０に移行する。
【０２４２】
また、ステップＳ２３０３において、回帰直線Ｄｉの傾きａｉが閾値γ未満の場合（ステップＳ２３０３：Ｎｏ）、判定部７０７により、オブジェクトＳＱＬｉがバッチ処理のオブジェクトではないと判定して（ステップＳ２３０７）、ステップＳ２３０６に移行する。
【０２４３】
これにより、プロトコル「ＳＱＬ」のオブジェクトのうち、集計期間Ｔｊの占有率Ｐｊの増加に伴って出現率Ａjｉが増加する傾向が大きいオブジェクトＳＱＬｉをバッチ処理のオブジェクトとして判定することができる。
【０２４４】
＜メッセージ削除処理手順＞
つぎに、バッチ処理のオブジェクトであると判定されたオブジェクトＳＱＬｉのメッセージを削除する削除処理の具体的な処理手順について説明する。
【０２４５】
図２４は、メッセージ削除処理の具体的な処理手順の一例を示すフローチャートである。図２４のフローチャートにおいて、まず、取得部７０１により、ネットワークシステム１００内で受け渡された処理対象となるメッセージ群を取得したか否かを判断する（ステップＳ２４０１）。
【０２４６】
ここで、処理対象となるメッセージ群を取得するのを待って（ステップＳ２４０１：Ｎｏ）、取得した場合（ステップＳ２４０１：Ｙｅｓ）、取得部７０１により、取得したメッセージ群を処理対象テーブル１８００に登録する（ステップＳ２４０２）。
【０２４７】
つぎに、削除部７０９により、処理対象テーブル１８００の中から、プロトコル「ＳＱＬ」の任意のメッセージデータを選択する（ステップＳ２４０３）。そして、削除部７０９により、選択したメッセージデータのメッセージ種別フィールドに「リクエスト」が設定されているか否かを判断する（ステップＳ２４０４）。
【０２４８】
ここで、メッセージ種別フィールドに「レスポンス」が設定されている場合（ステップＳ２４０４：Ｎｏ）、削除部７０９により、処理対象テーブル１８００の中から、選択したメッセージデータと同一メッセージＩＤのメッセージデータを検索する（ステップＳ２４０５）。
【０２４９】
ここで、メッセージデータが検索された場合（ステップＳ２４０６：Ｙｅｓ）、削除部７０９により、検索したメッセージデータに対応するメッセージからオブジェクトＳＱＬｉを抽出する（ステップＳ２４０７）。一方、メッセージデータが検索されなかった場合（ステップＳ２４０６：Ｎｏ）、ステップＳ２４１０に移行する。
【０２５０】
また、ステップＳ２４０４において、メッセージ種別フィールドに「リクエスト」が設定されている場合（ステップＳ２４０４：Ｙｅｓ）、削除部７０９により、ステップＳ２４０３において選択したメッセージデータに対応するメッセージからオブジェクトＳＱＬｉを抽出する（ステップＳ２４０７）。
【０２５１】
このあと、削除部７０９により、抽出したオブジェクトＳＱＬｉのオブジェクトＩＤがオブジェクトリスト１０００に含まれるか否かを判断する（ステップＳ２４０８）。ここで、オブジェクトリスト１０００に含まれない場合（ステップＳ２４０８：Ｎｏ）、ステップＳ２４１０に移行する。
【０２５２】
一方、オブジェクトリスト１０００に含まれる場合（ステップＳ２４０８：Ｙｅｓ）、削除部７０９により、ステップＳ２４０３において選択したメッセージデータの処理対象テーブル１８００内の削除フラグを「０」から「１」に変更する（ステップＳ２４０９）。そして、削除部７０９により、処理対象テーブル１８００の中から選択されていない未選択のプロトコル「ＳＱＬ」のメッセージデータがあるか否かを判断する（ステップＳ２４１０）。
【０２５３】
ここで、未選択のメッセージデータがある場合（ステップＳ２４１０：Ｙｅｓ）、ステップＳ２４０３に戻る。一方、未選択のメッセージデータがない場合（ステップＳ２４１０：Ｎｏ）、削除部７０９により、処理対象となるメッセージ群の中から、処理対象テーブル１８００内の削除フラグが「１」のメッセージデータに対応するメッセージを削除する（ステップＳ２４１１）。
【０２５４】
そして、出力部７０８により、処理対象となるメッセージ群の中から削除フラグが「１」のメッセージデータに対応するメッセージが削除された削除後のメッセージ群を出力して（ステップＳ２４１２）、本フローチャートによる一連の処理を終了する。
【０２５５】
これにより、ネットワークシステム１００のシステム分析を行う際に、処理対象となるメッセージ群の中からバッチ処理のオブジェクトＳＱＬｉのメッセージを除去することができる。
【０２５６】
以上説明したように、本実施の形態にかかるシステム分析支援装置１０１によれば、集計期間ＴｊにおけるオブジェクトＳＱＬｉの出現率Ａjｉおよび占有率Ｐｊに基づいて、オブジェクトＳＱＬｉがバッチ処理のオブジェクトか否かを判定することができる。これにより、ネットワークシステム１００内で受け渡されたメッセージ群の中から、バッチ処理のオブジェクトＳＱＬｉのメッセージを判別することができる。
【０２５７】
また、システム分析支援装置１０１によれば、集計期間ＴｊにおけるオブジェクトＳＱＬｉの出現率Ａjｉが閾値α以下かつ占有率Ｐｊが閾値β以下の場合、オブジェクトＳＱＬｉがバッチ処理のオブジェクトであると判定することができる。これにより、閾値αおよび閾値βを、バッチ処理のオブジェクトである可能性が高くなる任意の値にそれぞれ設定して、バッチ処理のオブジェクトの判定を行うことができる。
【０２５８】
また、システム分析支援装置１０１によれば、集計期間Ｔｊごとに算出されたオブジェクトＳＱＬｉの出現率Ａjｉおよび占有率Ｐｊに基づいて、オブジェクトＳＱＬｉがバッチ処理のオブジェクトか否かを判定することができる。これにより、オブジェクトＳＱＬｉがバッチ処理のオブジェクトか否かの判定を統計的に行って、判定精度を向上させることができる。
【０２５９】
また、システム分析支援装置１０１によれば、集計期間Ｔ１〜Ｔｍのうち占有率が最小となる集計期間Ｔｊの占有率Ｐｊが閾値β以下、かつ、オブジェクトＳＱＬｉの出現率Ａjｉが閾値α以下の場合、オブジェクトＳＱＬｉがバッチ処理のオブジェクトであると判定することができる。
【０２６０】
また、システム分析支援装置１０１によれば、集計期間ＴｊごとのオブジェクトＳＱＬｉの出現率Ａjｉおよび占有率Ｐｊに基づく回帰直線Ｄｉの傾きａｉに基づいて、オブジェクトＳＱＬｉがバッチ処理のオブジェクトか否かを判定することができる。これにより、プロトコル「ＳＱＬ」のオブジェクトのうち、集計期間Ｔｊの占有率Ｐｊの増加に伴って出現率Ａjｉが増加する傾向が大きいオブジェクトＳＱＬｉをバッチ処理のオブジェクトとして判定することができる。
【０２６１】
また、システム分析支援装置１０１によれば、ネットワークシステム１００内で受け渡されたメッセージ群の中から、バッチ処理のオブジェクトであると判定されたオブジェクトＳＱＬｉのメッセージを削除することができる。これにより、ネットワークシステム１００のシステム分析を行う際に、処理対象となるメッセージ群の中からバッチ処理のオブジェクトＳＱＬｉのメッセージを除去することができる。この結果、ネットワークシステム１００内の各コンピュータの処理時間を精度よく求めることができ、システム分析の分析精度を向上させることができる。
【０２６２】
なお、本実施の形態で説明したシステム分析支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本システム分析支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本システム分析支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０２６３】
１００  ネットワークシステム
１０１  システム分析支援装置
１０２  Ｗｅｂサーバ
１０３  ＡＰサーバ
１０４  ＤＢサーバ
５００  メッセージＤＢ
７０１  取得部
７０２  検出部
７０３  特定部
７０４  選択部
７０５  第１の算出部
７０６  第２の算出部
７０７  判定部
７０８  出力部
７０９  削除部
８００  ペア情報テーブル
９００  出現率／占有率テーブル
１０００  オブジェクトリスト
１３００  中間テーブル
１５００  多重度テーブル
１８００  処理対象テーブル
【図１】
0005561182.tif 000002
【図２】
0005561182.tif 000003
【図３】
0005561182.tif 000004
【図４】
0005561182.tif 000005
【図５】
0005561182.tif 000006
【図６】
0005561182.tif 000007
【図７】
0005561182.tif 000008
【図８】
0005561182.tif 000009
【図９】
0005561182.tif 000010
【図１０】
0005561182.tif 000011
【図１１】
0005561182.tif 000012
【図１２】
0005561182.tif 000013
【図１３】
0005561182.tif 000014
【図１４】
0005561182.tif 000015
【図１５】
0005561182.tif 000016
【図１６】
0005561182.tif 000017
【図１７】
0005561182.tif 000018
【図１８】
0005561182.tif 000019
【図１９】
0005561182.tif 000020
【図２０】
0005561182.tif 000021
【図２１】
0005561182.tif 000022
【図２２】
0005561182.tif 000023
【図２３】
0005561182.tif 000024
【図２４】
0005561182.tif 000025