(57)【要約】【課題】操作要求間の関連性を抽出する処理の負荷を低減すること。【解決手段】情報処理装置１０は、データベース２２ａに対して順番に適用される複数の操作要求と、複数の操作要求をデータベース２２ａに適用する場合に出力される第１の出力結果５１とを得て、複数の操作要求の中から第１の操作要求を選択し、第１の操作要求を適用する前におけるデータベース２２ａの内容を取得し、複数の操作要求のうち第１の操作要求の後に適用される一連の操作要求を、取得したデータベース２２ａの内容に適用する場合に出力される第２の出力結果５２を生成し、第１の出力結果５１と第２の出力結果５２とが同じ場合に、複数の操作要求の中で最後に適用される第２の操作要求と、第１の操作要求との間に関連がないと判定し、第２の出力結果５２を生成する際に、一連の操作要求の中から第２の操作要求と関連がない操作要求を除外する。【選択図】図１
2018067174.tif 000002
【特許請求の範囲】
【請求項１】
データベースに対して順番に適用される複数の操作要求と、前記複数の操作要求を前記データベースに適用する場合に出力される第１の出力結果とを記憶する記憶部と、
前記複数の操作要求の中から第１の操作要求を選択し、
前記第１の操作要求を適用する前における前記データベースの内容を取得し、
前記複数の操作要求のうち前記第１の操作要求の後に適用される一連の操作要求を、取得した前記データベースの内容に適用する場合に出力される第２の出力結果を生成し、
前記第１の出力結果と前記第２の出力結果とが同じ場合に、前記複数の操作要求の中で最後に適用される第２の操作要求と、前記第１の操作要求との間に関連がないと判定する演算部とを有し、
前記演算部は、前記第２の出力結果を生成する際に、前記一連の操作要求の中から前記第２の操作要求と関連がない操作要求を除外する
情報処理装置。
【請求項２】
前記演算部は、前記複数の操作要求のうち、適用順序とは逆の方向に順次一の操作要求を前記第１の操作要求として選択する
請求項１に記載の情報処理装置。
【請求項３】
前記演算部は、前記第２の出力結果を生成する処理の中で、前記一連の操作要求に含まれる操作要求と前記第１の操作要求との間に関連がある場合、前記第２の操作要求と前記第１の操作要求との間に関連があると判定し、当該第１の操作要求について前記第２の出力結果を生成する処理のうち残りの処理を回避する
請求項２に記載の情報処理装置。
【請求項４】
前記複数の操作要求のそれぞれは、前記データベースに対する少なくとも１つの操作を要求する命令文の集合に対応し、
前記命令文の集合は、前記データベースの更新を伴う操作に関する第１の命令文、及び前記データベースの更新を伴わない操作に関する第２の命令文の少なくとも一方を含む
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記演算部は、
前記複数の操作要求のうち前記第１の命令文を含む操作要求を前記データベースに適用する際、前記第１の命令文から、操作の対象を絞り込む条件と、前記操作の内容とを抽出し、
抽出した前記条件に合う前記データベースの位置を出力させる第３の命令文と、前記第３の命令文により出力される前記データベースの位置に対して、抽出した前記操作の内容を適用させる第４の命令文とを生成し、
前記第１の命令文の適用に際し、前記第３の命令文及び前記第４の命令文を順に前記データベースに対して適用する
請求項４に記載の情報処理装置。
【請求項６】
前記演算部は、
前記データベースに対する適用順に、前記複数の操作要求にそれぞれ対応する複数の第１の表示情報を時系列で表示させ、
前記第２の操作要求との間に関連があると判定した操作要求の集合から一の操作要求を選択し、前記操作要求の集合の中で、選択した前記一の操作要求と関連があり、前記一の操作要求の直近にある他の操作要求を特定し、前記複数の第１の表示情報のうち、選択した前記一の操作要求に対応する第１の表示情報と、特定した前記他の操作要求に対応する第１の表示情報とを接続する第２の表示情報を表示させる
請求項３に記載の情報処理装置。
【請求項７】
プロセッサ及びメモリを有するコンピュータの前記プロセッサが、
前記メモリから、データベースに対して順番に適用される複数の操作要求と、前記複数の操作要求を前記データベースに適用する場合に出力される第１の出力結果とを取得し、
前記複数の操作要求の中から第１の操作要求を選択し、
前記第１の操作要求を適用する前における前記データベースの内容を取得し、
前記複数の操作要求のうち前記第１の操作要求の後に適用される一連の操作要求を、取得した前記データベースの内容に適用する場合に出力される第２の出力結果を生成し、
前記第１の出力結果と前記第２の出力結果とが同じ場合に、前記複数の操作要求の中で最後に適用される第２の操作要求と、前記第１の操作要求との間に関連がないと判定する
処理を実行し、前記第２の出力結果を生成する処理の際に、前記一連の操作要求の中から前記第２の操作要求と関連がない操作要求を除外する
関連性分析方法。
【請求項８】
プロセッサ及びメモリを有するコンピュータの前記プロセッサに、
前記メモリから、データベースに対して順番に適用される複数の操作要求と、前記複数の操作要求を前記データベースに適用する場合に出力される第１の出力結果とを取得し、
前記複数の操作要求の中から第１の操作要求を選択し、
前記第１の操作要求を適用する前における前記データベースの内容を取得し、
前記複数の操作要求のうち前記第１の操作要求の後に適用される一連の操作要求を、取得した前記データベースの内容に適用する場合に出力される第２の出力結果を生成し、
前記第１の出力結果と前記第２の出力結果とが同じ場合に、前記複数の操作要求の中で最後に適用される第２の操作要求と、前記第１の操作要求との間に関連がないと判定する
処理を実行させ、前記第２の出力結果を生成する処理の際に、前記一連の操作要求の中から前記第２の操作要求と関連がない操作要求を除外させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、関連性分析方法、及びプログラムに関する。
【背景技術】
【０００２】
Ｗｅｂアプリケーションが広く利用されている。Ｗｅｂアプリケーションの多くは、ユーザに提供する機能を実現するためにネットワーク上にあるデータベースシステム（例えば、ＲＤＢＭＳ（Relational Database Management System））を利用する。
【０００３】
例えば、Ｗｅｂアプリケーションは、データベースに対する操作を要求するＨＴＴＰ（Hypertext Transfer Protocol）リクエストをデータベースシステムに送信する。ＨＴＴＰリクエストには、データベースシステムで実行されるＳＱＬ文に対応する情報（ＨＴＴＰメタデータ）が含まれる。データベースシステムは、受信したＨＴＴＰリクエストのＨＴＴＰメタデータを解析し、ＨＴＴＰメタデータに対応するＳＱＬ文を実行する。
【０００４】
１つのＨＴＴＰリクエストに対して少なくとも１つのＳＱＬ文が実行される。また、データベースの内容を更新させる更新系のＳＱＬ文（更新系ＳＱＬ）が実行されると、その更新系ＳＱＬの後に実行されるＳＱＬ文の実行結果に影響が及ぶことがある。そのため、Ｗｅｂアプリケーションから送信される一連のＨＴＴＰリクエストの中には、ＳＱＬ文の実行結果に影響を及ぼす関係にあるＨＴＴＰリクエストの組み合わせが生じうる。つまり、互いに関連がある複数のＨＴＴＰリクエストが存在しうる。
【０００５】
Ｗｅｂアプリケーションの利用中に不自然な出力が見られる場合など、何らかの障害が疑われる場合には、データベースの操作に関する処理要素の中に障害が発生している可能性がある。互いに関連がある複数のＨＴＴＰリクエストが存在するとき、あるＨＴＴＰリクエストの処理中に生じたエラーが他のＨＴＴＰリクエストの処理に伝搬しうる。そのため、上記のような障害を特定する際、ＨＴＴＰリクエストの間にある関連性を分析しないと障害の特定が困難になる可能性がある。
【０００６】
なお、ＨＴＴＰリクエストの処理について性能障害の原因を特定する際に、ＨＴＴＰリクエストとＳＱＬ文との間にある処理上の関連性を推定する方法が提案されている。この方法では、関連性の推定方法として、ＨＴＴＰリクエストの処理中にＲＤＢＭＳで処理されることが多いＳＱＬ文をＨＴＴＰリクエストと関連付ける。また、この方法では、計算量を削減するために、特定のＨＴＴＰリクエストと同時に処理される他のＨＴＴＰリクエストの数が多い期間のデータを排除し、残りのデータから関連付けを実施する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１４／１７４６８１号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上記の方法は、ＨＴＴＰリクエストとＳＱＬ文との間の関連性を分析する方法である。一方、ＨＴＴＰリクエスト同士の関連性を分析する方法として、例えば、あるＨＴＴＰリクエストに対応するＳＱＬ文の実行結果が、他のＨＴＴＰリクエストに対応するＳＱＬ文の実行結果に影響するか否かを逐一確認する方法を採用しうる。しかし、対象となるＨＴＴＰリクエストの集合から１つ１つＨＴＴＰリクエストを選択し、選択したＨＴＴＰリクエストに対応する各ＳＱＬ文について上記の影響を確認する処理は処理負担が大きい。
【０００９】
１つの側面によれば、本開示の目的は、操作要求間の関連性を抽出する処理の負荷を低減できる情報処理装置、関連性分析方法、及びプログラムを提供することにある。なお、ＳＱＬ文の実行を要求するＨＴＴＰリクエストは操作要求の一例である。
【課題を解決するための手段】
【００１０】
一態様によれば、データベースに対して順番に適用される複数の操作要求と、複数の操作要求をデータベースに適用する場合に出力される第１の出力結果とを記憶する記憶部と、複数の操作要求の中から第１の操作要求を選択し、第１の操作要求を適用する前におけるデータベースの内容を取得し、複数の操作要求のうち第１の操作要求の後に適用される一連の操作要求を、取得したデータベースの内容に適用する場合に出力される第２の出力結果を生成し、第１の出力結果と第２の出力結果とが同じ場合に、複数の操作要求の中で最後に適用される第２の操作要求と、第１の操作要求との間に関連がないと判定する演算部とを有し、演算部は、第２の出力結果を生成する際に、一連の操作要求の中から第２の操作要求と関連がない操作要求を除外する情報処理装置が提供される。
【発明の効果】
【００１１】
操作要求間の関連性を抽出する処理の負荷を低減できる。
【図面の簡単な説明】
【００１２】
【図１】第１実施形態に係る情報処理装置の一例を示した図である。
【図２】ＳＱＬ文の間の関連性を分析する方法の一例を示した図である。
【図３】第２実施形態に係るシステムの一例を示した図である。
【図４】データベースの一例を示した図である。
【図５】データベースの操作に関するサーバ装置及びクライアント装置の動作例を示したシーケンス図である。
【図６】ＳＱＬログの一例を示した図である。
【図７】第２実施形態に係る情報処理装置の機能を実現可能なハードウェアの一例を示したブロック図である。
【図８】第２実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。
【図９】第２実施形態に係るＳＱＬログ情報の一例を示した図である。
【図１０】第２実施形態に係る対応ＳＱＬ情報の一例を示した図である。
【図１１】第２実施形態に係る再現対象の情報の一例を示した図である。
【図１２】第２実施形態に係る試行結果の情報の一例を示した図である。
【図１３】第２実施形態に係る関連性情報の一例を示した図である。
【図１４】第２実施形態に係る再現対象の選択画面の一例を示した図である。
【図１５】第２実施形態に係る基準生成方法の一例を示した第１の図である。
【図１６】第２実施形態に係る基準生成方法の一例を示した第２の図である。
【図１７】第２実施形態に係る基準生成方法の一例を示した第３の図である。
【図１８】第２実施形態に係る関連性分析方法の一例を示した第１の図である。
【図１９】第２実施形態に係る関連性分析方法の一例を示した第２の図である。
【図２０】第２実施形態に係る関連性分析方法の一例を示した第３の図である。
【図２１】第２実施形態に係る分析結果の表示画面の一例を示した図である。
【図２２】更新系ＳＱＬの分解による出力への影響について説明するための図である。
【図２３】第２実施形態に係る情報処理装置が実行する処理の流れを示した第１のフロー図である。
【図２４】第２実施形態に係る情報処理装置が実行する処理の流れを示した第２のフロー図である。
【図２５】第２実施形態に係る情報処理装置が実行する処理の流れを示した第３のフロー図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１４】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。第１実施形態は、データベースに対する一連の操作要求の中で、ある操作要求に関連する操作要求を特定する方法に関する。図１は、第１実施形態に係る情報処理装置の一例を示した図である。なお、図１に示した情報処理装置１０は、第１実施形態に係る情報処理装置の一例である。
【００１５】
図１に示すように、情報処理装置１０は、記憶部１１及び演算部１２を有する。
記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置である。演算部１２は、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などのプロセッサである。演算部１２は、例えば、記憶部１１又は他のメモリに記憶されたプログラムを実行する。
【００１６】
図１の例において、情報処理装置１０は、ＬＡＮ（Local Area Network）などのネットワーク４０に接続される。ネットワーク４０には、サーバ装置２１、及び端末装置３０が接続されている。サーバ装置２１は、データベース２２ａが格納される記憶装置２２に接続されている。
【００１７】
なお、記憶装置２２は、例えば、ＨＤＤやＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置などである。また、サーバ装置２１は、データベース２２ａに対する操作を実行する。サーバ装置２１及び記憶装置２２は、例えば、ＲＤＢＭＳなどのデータベースシステムとして機能する。
【００１８】
端末装置３０は、データベース２２ａを利用するユーザがサーバ装置２１へアクセスする際に用いるコンピュータである。
例えば、端末装置３０は、データベース２２ａに対する操作をサーバ装置２１に要求する操作要求を送信する。操作要求は、データベース２２ａの操作に用いる少なくとも１つの命令文（実行命令）に対応している。なお、ＳＱＬ文は、実行命令の一例である。また、ＳＱＬ文の実行を要求するＨＴＴＰ通信（ＨＴＴＰリクエスト）は、操作要求の一例である。
【００１９】
図１の例では、端末装置３０がサーバ装置２１に対して複数の操作要求（ＲＥＱ＃１、＃２、＃３）を順次送信する。サーバ装置２１は、端末装置３０から受信したＲＥＱ＃１、＃２、＃３に応じたＤＢ操作を実行し、端末装置３０に応答（ＲＥＱ＃１、＃２、＃３）を送信する。
【００２０】
ＲＥＱ＃１は、ＮＡＭＥが「ＡＡＡ」のレコードを対象に、ＶＡＬの値を「１９７５／１１」に書き換える更新操作を要求する操作要求である。ＲＥＱ＃２は、ＮＡＭＥが「ＢＢＢ」のレコードを対象に、ＶＡＬの値を出力させる出力操作を要求する操作要求である。ＲＥＱ＃３は、ＮＡＭＥが「ＡＡＡ」のレコードを対象に、ＶＡＬの値を出力させる出力操作を要求する操作要求である。
【００２１】
ＲＥＱ＃１に応じたＤＢ操作が実行される前の時点で、データベース２２ａには、ＩＤが００１、００２のレコードが格納されている。ＩＤが００１のレコードは、ＮＡＭＥの欄が「ＡＡＡ」、ＶＡＬの欄が「１９７４／１２」である。ＩＤが００２のレコードは、ＮＡＭＥの欄が「ＢＢＢ」、ＶＡＬの欄が「２００８／８」である。
【００２２】
まず、端末装置３０は、ＲＥＱ＃１をサーバ装置２１に送信する（Ｓ１１）。ＲＥＱ＃１を受信したサーバ装置２１は、ＲＥＱ＃１に応じたＤＢ操作を実行する（Ｓ１２）。ＲＥＱ＃１の操作は、例えば、実行命令Ｃ１、Ｃ２に対応する。
【００２３】
Ｃ１は、データベース２２ａの中からＮＡＭＥが「ＡＡＡ」のレコードを特定し、特定したレコードのＶＡＬを「１９７５／１１」に書き換える実行命令である。Ｃ２は、ＮＡＭＥが「ＡＡＡ」のレコードに対する書き換え結果（例えば、レコードの全て）を出力させる実行命令である。
【００２４】
サーバ装置２１は、Ｃ１、Ｃ２を順番に実行する。そして、サーバ装置２１は、Ｓ１２のＤＢ操作による出力結果をＲＥＱ＃１に対する応答ＲＥＱ＃１として端末装置３０に送信する（Ｓ１３）。この場合、サーバ装置２１は、Ｃ２の実行時に出力される出力結果（００１；ＡＡＡ；１９７５／１１）を端末装置３０に送信する。なお、（００１；ＡＡＡ；１９７５／１１）は、ＩＤの欄が「００１」、ＮＡＭＥの欄が「ＡＡＡ」、ＶＡＬの欄が「１９７５／１１」であることを表している。
【００２５】
次いで、端末装置３０は、ＲＥＱ＃２をサーバ装置２１に送信する（Ｓ１４）。ＲＥＱ＃２を受信したサーバ装置２１は、ＲＥＱ＃２に応じたＤＢ操作を実行する（Ｓ１５）。ＲＥＱ＃２の操作は、実行命令Ｃ３に対応する。Ｃ３は、データベース２２ａの中からＮＡＭＥが「ＢＢＢ」のレコードを特定し、特定したレコードのＶＡＬを出力させる実行命令である。サーバ装置２１は、Ｃ３を実行してデータベース２２ａの出力結果（２００８／８）を取得する。そして、サーバ装置２１は、Ｓ１５のＤＢ操作による出力結果をＲＥＱ＃２に対する応答ＲＥＱ＃２として端末装置３０に送信する（Ｓ１６）。
【００２６】
次いで、端末装置３０は、ＲＥＱ＃３をサーバ装置２１に送信する（Ｓ１７）。ＲＥＱ＃３を受信したサーバ装置２１は、ＲＥＱ＃３に応じたＤＢ操作を実行する（Ｓ１８）。ＲＥＱ＃３の操作は、実行命令Ｃ４に対応する。Ｃ４は、データベース２２ａの中からＮＡＭＥが「ＡＡＡ」のレコードを特定し、特定したレコードのＶＡＬを出力させる実行命令である。
【００２７】
サーバ装置２１は、Ｃ４を実行してデータベース２２ａの出力結果（１９７５／１１）を取得する。そして、サーバ装置２１は、Ｓ１８のＤＢ操作による出力結果をＲＥＱ＃３に対する応答ＲＥＱ＃３として端末装置３０に送信する（Ｓ１９）。
【００２８】
情報処理装置１０は、上記のようなＤＢ操作の流れを分析し、特定の操作要求と他の操作要求との間における関連の有無を判定する。図１の例では、情報処理装置１０が、ＲＥＱ＃１、＃２、＃３のうち、データベース２２ａに対して最後に適用されたＲＥＱ＃３を特定の操作要求とし、ＲＥＱ＃３と、ＲＥＱ＃１、＃２との関連性を分析する。
【００２９】
記憶部１１は、データベース２２ａに対して順番に適用されるＲＥＱ＃１、＃２、＃３と、ＲＥＱ＃１、＃２、＃３をデータベース２２ａに適用する場合に出力される第１の出力結果５１（出力５１ａ、５１ｂ、５１ｃ）とを記憶する。また、記憶部１１は、操作要求と、その操作要求に応じて実行される実行命令とを対応付けて記憶する。例えば、記憶部１１は、ＲＥＱ＃１とＣ１、Ｃ２とを対応付け、ＲＥＱ＃２とＣ３とを対応付け、ＲＥＱ＃３とＣ４とを対応付けて記憶する。
【００３０】
演算部１２は、ＲＥＱ＃１、＃２の中から第１の操作要求（ＲＥＱ＃３との関連性が分析される分析対象の操作要求）を選択する。例えば、演算部１２は、データベース２２ａに対する適用順序が新しい順（ＲＥＱ＃２、＃１の順）に第１の操作要求を選択する。
【００３１】
第１の操作要求としてＲＥＱ＃２が選択された場合、演算部１２は、ＲＥＱ＃２を適用する前（ＲＥＱ＃１の適用後）におけるデータベース２２ａの内容を取得する（Ｓ２０：ＲＥＱ＃２の適用前の状態にデータベース２２ａをリストアする処理）。ＲＥＱ＃２を適用する前の時点で、ＩＤが００１のレコードにあるＶＡＬの値が「１９７５／１１」に更新されている。
【００３２】
演算部１２は、Ｓ２０で取得した内容に対し、第１の操作要求の後に適用される一連の操作要求（ＲＥＱ＃３）を適用し（Ｓ２１）、出力される第２の出力結果５２を生成する（Ｓ２２）。つまり、演算部１２は、Ｓ２０−Ｓ２２の処理により、ＲＥＱ＃１、＃２、＃３の中から第１の操作要求として選択したＲＥＱ＃２を排除し、ＲＥＱ＃１、＃３をデータベース２２ａに適用した場合の出力結果（第２の出力結果５２）を生成する。この例では、第２の出力結果５２としてＣ４による出力「１９７５／１１」が得られる。
【００３３】
演算部１２は、第１の出力結果５１と第２の出力結果５２とを比較する（Ｓ２３）。そして、演算部１２は、第１の出力結果５１と第２の出力結果５２とが同じ場合に、最後に適用される操作要求（第２の操作要求：ＲＥＱ＃３）と、第１の操作要求（ＲＥＱ＃２）との間に関連がないと判定する。
【００３４】
図１の例では、第１の出力結果５１（出力５１ａ、５１ｂ、５１ｃのうちＲＥＱ＃３に対応する出力５１ｃ）と第２の出力結果５２とが同じであるため、ＲＥＱ＃２、＃３の間に関連がないと判定される。
【００３５】
次に、演算部１２は、第１の操作要求としてＲＥＱ＃１を選択する。そして、演算部１２は、ＲＥＱ＃１を適用する前におけるデータベース２２ａの内容を取得する。ＲＥＱ＃１を適用する前の時点で、ＩＤが００１のレコードにあるＶＡＬの値は「１９７４／１２」である。
【００３６】
演算部１２は、取得した内容に対し、第１の操作要求の後に適用される一連の操作要求（ＲＥＱ＃２、＃３）を適用し、出力される第２の出力結果５２を生成する。つまり、演算部１２は、ＲＥＱ＃１、＃２、＃３の中から第１の操作要求として選択したＲＥＱ＃１を排除し、ＲＥＱ＃２、＃３をデータベース２２ａに適用した場合の出力結果（第２の出力結果５２）を生成する。但し、演算部１２は、第２の出力結果５２を生成する際に、一連の操作要求（ＲＥＱ＃２、＃３）の中から、第２の操作要求（ＲＥＱ＃３）と関連がない操作要求（ＲＥＱ＃２）を除外する。
【００３７】
つまり、演算部１２は、第１の操作要求としてＲＥＱ＃１を選択して第２の出力結果５２を生成する際、ＲＥＱ＃１の適用前におけるデータベース２２ａの内容に対してＲＥＱ＃３を適用した場合の出力結果を第２の出力結果５２とする。
【００３８】
ＲＥＱ＃２の適用はＲＥＱ＃３の出力結果に影響しないため、上記のようにＲＥＱ＃２を除外しても、第２の出力結果５２には影響しない。この例では、第２の出力結果５２としてＣ４による出力「１９７４／１２」が得られる。
【００３９】
演算部１２は、第１の出力結果５１と第２の出力結果５２とを比較する。この例では、第１の出力結果５１（出力５１ａ、５１ｂ、５１ｃのうちＲＥＱ＃３に対応する出力５１ｃ）と第２の出力結果５２とが異なるため、ＲＥＱ＃１、＃３の間に関連があると判定される。図１の例では、演算部１２により、ＲＥＱ＃１、＃３の間に関連があり、ＲＥＱ＃２、＃３の間に関連がないという分析結果が得られる。
【００４０】
上記のように、適用順が後の操作要求から順に、特定の操作要求に対する関連性を分析し、分析過程で関連がないと判定される操作要求を分析対象から除外することで、関連性の分析にかかる処理負荷を低減することが可能になる。
【００４１】
なお、上記の例では、説明の都合上、３つの操作要求を例に説明したが、操作要求の数や種類は図１の例に限定されない。また、図１の例では情報処理装置１０、サーバ装置２１、端末装置３０を別体で表現しているが、情報処理装置１０の機能をサーバ装置２１、端末装置３０に搭載する変形も可能である。
【００４２】
また、上記の説明では、説明の都合上、「サーバ」、「端末」という表現を用いているが、用途を限定する趣旨ではない。情報処理装置１０、サーバ装置２１、端末装置３０の機能は、例えば、パーソナルコンピュータ、サーバ装置、スマートフォン、タブレット端末などの各種コンピュータを利用して実現可能である。また、ネットワーク４０としてＬＡＮを例に挙げたが、有線又は無線ＬＡＮの他、光回線ネットワークや専用回線などの各種通信回線を利用する変形も可能である。
【００４３】
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。第２実施形態は、ＳＱＬ文の実行を要求する一連のＨＴＴＰ通信（ＨＴＴＰリクエスト）の中で、あるＨＴＴＰ通信（再現対象のＨＴＴＰ通信）に関連する他のＨＴＴＰ通信を特定する方法に関する。
【００４４】
ＨＴＴＰ通信間における関連の有無は、再現対象に対応するＳＱＬ文より前に実行されるＳＱＬ文を省略した場合に再現対象に対応するＳＱＬ文の実行結果が変わるか否かに基づいて判定される。実行結果が変わる場合、省略したＳＱＬ文に対応するＨＴＴＰ通信と再現対象との間に関連があると判定される。
【００４５】
例えば、図２に示したＳＱＬ文の間の関連性を分析する方法を利用してＨＴＴＰ通信間の関連性が分析される。図２は、ＳＱＬ文の間の関連性を分析する方法の一例を示した図である。図２の例は、ＴＡＢＬＥ＃１に対してＳＱＬ＃Ａ、＃Ｂ、＃Ｃが順次適用される状況で、ＳＱＬ＃Ｃに関連するＳＱＬ文を特定する様子を示している。
【００４６】
ＳＱＬ＃Ａ、＃Ｂは、ＴＡＢＬＥ＃１の「文字列」欄にある値を更新させる更新系ＳＱＬの一例（ＵＰＤＡＴＥ文）である。ＳＱＬ＃Ｃは、ＴＡＢＬＥ＃１にある「文字列」欄の値を検索条件として指定し、その検索条件に適合する行の「ＩＤ」欄にある値を出力させる参照系ＳＱＬの一例（ＳＥＬＥＣＴ文）である。
【００４７】
図２に例示した遷移＃１のように、ＴＡＢＬＥ＃１にＳＱＬ＃Ａ、＃Ｂ、＃Ｃが順次適用されると、ＳＱＬ＃Ｃの実行結果として「ＩＤ」欄の値「１０」が出力される。一方、遷移＃２のように、ＳＱＬ＃Ａの適用を省略（Ｓｋｉｐ）すると、ＳＱＬ＃Ｃの検索条件に該当する行がないため、ＳＱＬ＃Ｃの実行結果として有意な値が出力されない。
【００４８】
遷移＃１、＃２を比較すると、ＳＱＬ＃Ｃの実行結果が異なっている。つまり、省略したＳＱＬ＃Ａは、ＳＱＬ＃Ｃに関連している。同様に、ＳＱＬ＃Ｂを省略する遷移＃３と、遷移＃１とを比較した場合、ＳＱＬ＃Ｃの実行結果は同じになる。つまり、省略したＳＱＬ＃Ｂと、ＳＱＬ＃Ｃとの間には関連がない。
【００４９】
仮に、ＳＱＬ＃Ａ、＃Ｂ、＃Ｃの実行がそれぞれＨＴＴＰ通信＃Ａ、＃Ｂ、＃Ｃで要求される場合、再現対象となるＨＴＴＰ通信＃Ｃに関連するＨＴＴＰ通信は、ＨＴＴＰ通信＃Ａとなる。また、ＳＱＬ＃Ａ、＃Ｂの実行がＨＴＴＰ通信＃Ｘで要求され、ＳＱＬ＃Ｃの実行がＨＴＴＰ通信＃Ｙで要求される場合、ＨＴＴＰ通信＃Ｘ、＃Ｙ間に関連があると判定される。
【００５０】
なお、以下の説明の中で、サーバ装置２２０が実行したＳＱＬ文によるデータベースの操作を情報処理装置１００が再現する処理を「試行」と呼ぶ場合がある。また、一連のＳＱＬ文のうち途中にあるＳＱＬ文を省略した状態や、一連のＨＴＴＰ通信のうち途中にあるＨＴＴＰ通信を省略した状態で、再現対象に対応するＳＱＬ文の実行結果を得る処理を「試行」と呼ぶ場合がある。
【００５１】
一連のＨＴＴＰ通信に対応する全てのＳＱＬ文を対象に上記の方法を適用することで、再現対象に関連するＨＴＴＰ通信を特定することができる。しかし、対象となるＳＱＬ文の数が多くなると、再現対象に関連するＨＴＴＰ通信の特定にかかる処理負荷が大きくなり、処理にかかる時間が長くなる。そのため、第２実施形態では、ＨＴＴＰ通信間の関連性を効率的に分析する方法を提供する。
【００５２】
［２−１．システム］
ここで、図３を参照しながら、第２実施形態に係るシステムについて説明する。図３は、第２実施形態に係るシステムの一例を示した図である。なお、図３に例示したシステムは一例であり、システムに含まれる要素の数や種類などを変更することが可能である。但し、以下では説明の都合上、図３のシステムを例に説明を進める。
【００５３】
図３に示すように、上記のシステムには、情報処理装置１００、クライアント装置２１０、サーバ装置２２０、及び記憶装置２３０が含まれる。情報処理装置１００、クライアント装置２１０、及びサーバ装置２２０は、例えば、ＬＡＮやＷＡＮ（Wide Area Network）などのネットワークを介して接続されている。サーバ装置２２０及び記憶装置２３０は、例えば、ＲＤＢＭＳなどのデータベースシステムとして機能する。
【００５４】
記憶装置２３０は、例えば、ＨＤＤやＳＳＤ（Solid State Drive）などの記録媒体、或いは、複数の記録媒体を搭載するＲＡＩＤ装置などである。記憶装置２３０には、例えば、図４に示すようなテーブル（ＵＳＥＲテーブル２３０ａ）を含むデータベースが格納される。図４は、データベースの一例を示した図である。
【００５５】
ＲＤＢＭＳの場合、記憶装置２３０に格納されるデータベースには複数のテーブルが含まれている。ＲＤＢＭＳはテーブル同士を関連付けて管理する。図４に例示したＵＳＥＲテーブル２３０ａは、記憶装置２３０に格納されるデータベースに含まれるテーブルの１つである。
【００５６】
なお、後述する第２実施形態の技術は、ＲＤＢＭＳ以外のデータベースシステムに適用することも可能である。例えば、ＲＤＢＭＳのようにテーブル同士を関連付けてデータを管理する方法とは異なる方法でデータを管理するデータベースシステムに対して第２実施形態の技術を適用することも可能である。但し、以下では、説明の都合上、図４に示したＵＳＥＲテーブル２３０ａの内容を例に説明を進める。
【００５７】
クライアント装置２１０は、記憶装置２３０にあるデータベースを利用するユーザがデータベースの操作に用いるコンピュータである。クライアント装置２１０は、ユーザの操作に応じて、ＨＴＴＰ通信を介してサーバ装置２２０にＳＱＬ文の実行を要求する。
【００５８】
サーバ装置２２０は、ＳＱＬ文の実行を要求するＨＴＴＰ通信を受信し、受信したＨＴＴＰ通信の内容に応じてＳＱＬ文を生成する。そして、サーバ装置２２０は、生成したＳＱＬ文を実行して記憶装置２３０にあるデータベースを操作する。
【００５９】
例えば、サーバ装置２２０は、更新系ＳＱＬを実行してＵＳＥＲテーブル２３０ａの内容を更新する。また、サーバ装置２２０は、参照系ＳＱＬを実行して、検索条件に適合するデータをＵＳＥＲテーブル２３０ａから抽出し、抽出したデータをクライアント装置２１０に送信する（応答）。
【００６０】
例えば、図５に示すような流れで、ＳＱＬ文の実行を要求するＨＴＴＰ通信と、その要求に対する応答とが実施される。図５は、データベースの操作に関するサーバ装置及びクライアント装置の動作例を示したシーケンス図である。
【００６１】
なお、以下では、説明の都合上、ｋ番目のＨＴＴＰ通信をＨＴＴＰ通信＃ｋと表記する場合がある。この場合、ｋは、ＨＴＴＰ通信＃ｋのＨＴＴＰ通番（ＨＴＴＰ通信を識別するための識別情報）である。また、ｎ番目に実行されるＳＱＬ文をＳＱＬ＃ｎと表記する場合がある。この場合、ｎは、ＳＱＬ＃ｎのＳＱＬ通番（ＳＱＬ文を識別するための識別情報）である。
【００６２】
図５の例では、ＨＴＴＰ通信＃０、＃１、＃２、＃３を介して、クライアント装置２１０からサーバ装置２２０にＳＱＬ＃０、＃１、…、＃５の実行が要求される。ＨＴＴＰ通信＃０は、ＳＱＬ＃０、＃１、＃２に対応する。ＨＴＴＰ通信＃１、＃２、＃３は、それぞれＳＱＬ＃３、＃４、＃５に対応する。
【００６３】
図５の例において、ＳＱＬ＃０、＃１、…、＃５は、図６のような内容を有する。図６は、ＳＱＬログの一例を示した図である。また、ＳＱＬ＃０、＃１、…、＃５は、図４に例示したＵＳＥＲテーブル２３０ａの内容を初期状態（ＳＱＬ＃０を実行する前の状態）として、ＵＳＥＲテーブル２３０ａに順次適用される。
【００６４】
（Ｓ１０１）クライアント装置２１０は、ＨＴＴＰ通信＃０を介してサーバ装置２２０にＳＱＬ文の実行を要求する。図５の例では、ＨＴＴＰ通信＃０として、Ｓ１０１の矢印下に括弧書きで表記したＰＯＳＴ文を含むＨＴＴＰリクエストがクライアント装置２１０からサーバ装置２２０に送信される。
【００６５】
（Ｓ１０２、Ｓ１０３、Ｓ１０４）サーバ装置２２０は、クライアント装置２１０から受信したＨＴＴＰリクエストの内容を解釈し、そのＨＴＴＰリクエストに含まれるＰＯＳＴ文に対応するＳＱＬ＃０、＃１、＃２を生成する。そして、サーバ装置２２０は、ＳＱＬ通番の順にＳＱＬ＃０、＃１、＃２を実行する。
【００６６】
（Ｓ１０５）サーバ装置２２０は、クライアント装置２１０から受信したＨＴＴＰリクエストに対する応答として、ＳＱＬ＃０、＃１、＃２の実行結果をクライアント装置２１０に送信する。この場合、参照系ＳＱＬであるＳＱＬ＃２の出力がサーバ装置２２０からクライアント装置２１０に送信される。
【００６７】
（Ｓ１０６）クライアント装置２１０は、ＨＴＴＰ通信＃１を介してサーバ装置２２０にＳＱＬ文の実行を要求する。図５の例では、ＨＴＴＰ通信＃１として、Ｓ１０６の矢印下に括弧書きで表記したＰＵＴ文を含むＨＴＴＰリクエストがクライアント装置２１０からサーバ装置２２０に送信される。
【００６８】
（Ｓ１０７）サーバ装置２２０は、クライアント装置２１０から受信したＨＴＴＰリクエストの内容を解釈し、そのＨＴＴＰリクエストに含まれるＰＵＴ文に対応するＳＱＬ＃３（更新系ＳＱＬ；図６を参照）を生成する。そして、サーバ装置２２０は、ＳＱＬ＃３を実行する。
【００６９】
（Ｓ１０８）クライアント装置２１０は、ＨＴＴＰ通信＃２を介してサーバ装置２２０にＳＱＬ文の実行を要求する。図５の例では、ＨＴＴＰ通信＃２として、Ｓ１０８の矢印下に括弧書きで表記したＰＯＳＴ文を含むＨＴＴＰリクエストがクライアント装置２１０からサーバ装置２２０に送信される。
【００７０】
（Ｓ１０９）サーバ装置２２０は、クライアント装置２１０から受信したＨＴＴＰリクエストの内容を解釈し、そのＨＴＴＰリクエストに含まれるＰＯＳＴ文に対応するＳＱＬ＃４（更新系ＳＱＬ；図６を参照）を生成する。そして、サーバ装置２２０は、ＳＱＬ＃４を実行する。
【００７１】
（Ｓ１１０）クライアント装置２１０は、ＨＴＴＰ通信＃３を介してサーバ装置２２０にＳＱＬ文の実行を要求する。図５の例では、ＨＴＴＰ通信＃３として、Ｓ１１０の矢印下に括弧書きで表記したＧＥＴ文を含むＨＴＴＰリクエストがクライアント装置２１０からサーバ装置２２０に送信される。
【００７２】
（Ｓ１１１）サーバ装置２２０は、クライアント装置２１０から受信したＨＴＴＰリクエストの内容を解釈し、そのＨＴＴＰリクエストに含まれるＧＥＴ文に対応するＳＱＬ＃５（参照系ＳＱＬ；図６を参照）を生成する。そして、サーバ装置２２０は、ＳＱＬ＃５を実行する。
【００７３】
（Ｓ１１２）サーバ装置２２０は、クライアント装置２１０から受信したＨＴＴＰリクエストに対する応答として、ＳＱＬ＃５の実行結果（参照系ＳＱＬであるＳＱＬ＃５の出力）をクライアント装置２１０に送信する。Ｓ１１２の処理が完了すると、図５に示した一連の処理が終了する。
【００７４】
なお、上記のＧＥＴ文、ＰＯＳＴ文、ＰＵＴ文はＨＴＴＰメソッドの一例である。ＧＥＴ文は、ＵＲＩ（Uniform Resource Identifier）で指定した情報の提供を要求するメソッドである。ＰＯＳＴ文は、データ名と、そのデータ名に対応する値とをセットにして送信先に渡すメソッドである。
【００７５】
ＰＵＴ文は、ＵＲＩで指定した情報を置き換えるように要求するメソッドである。その他、ＵＲＩで指定した情報を削除するように要求するＤＥＬＥＴＥ文などがある。Ｗｅｂベースのデータベースシステムでは、上記のようなＨＴＴＰメソッドを活用してデータベースの操作が実施される。
【００７６】
以上、システムについて説明した。
［２−２．ハードウェア］
次に、図７を参照しながら、情報処理装置１００のハードウェアについて説明する。図７は、第２実施形態に係る情報処理装置の機能を実現可能なハードウェアの一例を示したブロック図である。
【００７７】
情報処理装置１００の機能は、例えば、図７に示すハードウェア資源を用いて実現することが可能である。つまり、情報処理装置１００が有する機能は、コンピュータプログラムを用いて図７に示すハードウェアを制御することにより実現されうる。
【００７８】
図７に示すように、このハードウェアは、主に、ＣＰＵ９０２と、ＲＯＭ（Read Only Memory）９０４と、ＲＡＭ９０６と、ホストバス９０８と、ブリッジ９１０とを有する。さらに、このハードウェアは、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とを有する。
【００７９】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。ＲＡＭ９０６には、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
【００８０】
これらの要素は、例えば、高速なデータ伝送が可能なホストバス９０８を介して相互に接続される。一方、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続される。また、入力部９１６としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。また、入力部９１６としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
【００８１】
出力部９１８としては、例えば、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、又はＥＬＤ（Electro-Luminescence Display）などのディスプレイ装置が用いられる。また、出力部９１８として、オーディオ出力装置やプリンタなどが用いられることもある。
【００８２】
記憶部９２０は、各種のデータを格納するための装置である。記憶部９２０としては、例えば、ＨＤＤなどの磁気記憶デバイスが用いられる。また、記憶部９２０として、ＳＳＤやＲＡＭディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
【００８３】
ドライブ９２２は、着脱可能な記録媒体であるリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
【００８４】
接続ポート９２４は、例えば、ＵＳＢ（Universal Serial Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small Computer System Interface）、ＲＳ−２３２Ｃポート、又は光オーディオ端子など、外部接続機器９３０を接続するためのポートである。外部接続機器９３０としては、例えば、ＲＡＩＤ装置などの外部記憶装置が用いられうる。
【００８５】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスである。通信部９２６としては、例えば、有線又は無線ＬＡＮ用の通信回路、ＷＵＳＢ（Wireless USB）用の通信回路、光通信用の通信回路やルータ、ＡＤＳＬ（Asymmetric Digital Subscriber Line）用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられうる。通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークであり、例えば、インターネットやＬＡＮなどを含む。
【００８６】
以上、情報処理装置１００のハードウェアについて説明した。
なお、クライアント装置２１０及びサーバ装置２２０の機能も同様に、図６に示したハードウェアを利用して実現可能である。ここでは、クライアント装置２１０及びサーバ装置２２０のハードウェアについては詳細な説明を省略する。
【００８７】
［２−３．情報処理装置］
次に、図８を参照しながら、情報処理装置１００の機能について説明する。図８は、第２実施形態に係る情報処理装置が有する機能の一例を示したブロック図である。
【００８８】
図８に示すように、情報処理装置１００は、記憶部１０１、基準生成部１０２、関連性分析部１０３、及び表示制御部１０４を有する。なお、記憶部１０１の機能は、上述したＲＡＭ９０６や記憶部９２０などを用いて実現できる。基準生成部１０２、関連性分析部１０３、表示制御部１０４の機能は、上述したＣＰＵ９０２などを用いて実現できる。
【００８９】
（記憶部１０１）
記憶部１０１には、ＳＱＬログ情報１０１ａ、対応ＳＱＬ情報１０１ｂ、初期ＤＢ情報１０１ｃ、再現対象の情報１０１ｄ、試行結果の情報１０１ｅ、及び関連性情報１０１ｆが格納される。
【００９０】
ＳＱＬログ情報１０１ａは、一連のＨＴＴＰ通信（ＨＴＴＰリクエスト）に応じてサーバ装置２２０により実行されたＳＱＬ文のログに関する情報である。対応ＳＱＬ情報１０１ｂは、ＨＴＴＰ通信とＳＱＬ文との対応関係に関する情報である。初期ＤＢ情報１０１ｃは、一連のＨＴＴＰ通信に対応するＳＱＬ文が実行される前のデータベース（ＵＳＥＲテーブル２３０ａ）に関する情報である。
【００９１】
再現対象の情報１０１ｄは、一連のＨＴＴＰ通信のうちデータベース（ＵＳＥＲテーブル２３０ａ）への適用時点が最も後のＨＴＴＰ通信（再現対象）に関する情報である。試行結果の情報１０１ｅは、再現対象に関連するＨＴＴＰ通信の特定時における試行の結果（ＳＱＬ文の実行に応じた出力）に関する情報である。関連性情報１０１ｆは、再現対象に関連するＨＴＴＰ通信に関する情報である。
【００９２】
（ＳＱＬログ情報１０１ａ）
上記のＳＱＬログ情報１０１ａは、例えば、図９のような内容を有する。図９は、第２実施形態に係るＳＱＬログ情報の一例を示した図である。
【００９３】
図９に示すように、ＳＱＬログ情報１０１ａは、ＳＱＬ通番、ＳＱＬ文、分解後ＳＱＬ文を含む情報である。ＳＱＬ通番は、ＳＱＬ文の識別に利用される識別情報である。また、ＳＱＬ通番は、ＳＱＬ文の実行順序を表す。分解後ＳＱＬ文は、ＳＱＬ文と同じ出力となるＳＱＬ文の集合である。
【００９４】
更新系ＳＱＬは、更新対象となる行を特定する参照系ＳＱＬと、その参照系ＳＱＬによる特定される行の内容を更新する更新系ＳＱＬとに分解することができる。
例えば、図９のＳＱＬ通番０に対応するＳＱＬ文（ＳＱＬ＃０）は、ＵＳＥＲテーブル２３０ａの中で、ＮＡＭＥが「ＴＯＭ」、ＳＴＡＴＵＳが「ＬＯＧＯＦＦ」の行にあるＳＴＡＴＵＳの値を「ＬＯＧＩＮ」に書き換える命令である。
【００９５】
ＳＱＬ＃０のうち、更新対象となる行を指定する部分は、ＮＡＭＥが「ＴＯＭ」、ＳＴＡＴＵＳが「ＬＯＧＯＦＦ」となる検索条件を記述したＷＨＥＲＥ文である。他方、ＳＱＬ＃０のうち、更新内容を指定する部分は、ＳＴＡＴＵＳの値を「ＬＯＧＩＮ」に書き換える命令を記述したＳＥＴ文である。また、ＵＳＥＲテーブル２３０ａの場合、各行はＩＤを用いて特定される。
【００９６】
そのため、ＳＱＬ＃０は、ＷＨＥＲＥ文で記述される検索条件に適合する行のＩＤを出力するＳＥＬＥＣＴ文と、ＳＥＬＥＣＴ文で出力されるＩＤの値に対応するＳＴＡＴＵＳの値を「ＬＯＧＩＮ」に書き換えるＵＰＤＡＴＥ文に分解されうる。このように、更新系ＳＱＬは、同じ出力が得られる複数のＳＱＬ文に分解されうる。
【００９７】
図９の例では、更新系ＳＱＬであるＳＱＬ＃０、＃１、＃３、＃４が複数のＳＱＬ文に分解されうる。なお、ＨＴＴＰ通信間の関連性を分析する際に用いる基準を生成する処理の中で分解後ＳＱＬ文が利用されるため、例えば、その基準を生成する処理の中でＳＱＬ文が分解され、その分解の結果が分解後ＳＱＬ文の欄に記述される。
【００９８】
なお、ＳＱＬログ情報１０１ａのうち、ＳＱＬ通番及びＳＱＬ文の内容は、サーバ装置２２０から取得され、ＨＴＴＰ通信間の関連性を分析する処理の実行前には記憶部１０１に格納される。
【００９９】
（対応ＳＱＬ情報１０１ｂ）
上記の対応ＳＱＬ情報１０１ｂは、例えば、図１０のような内容を有する。図１０は、第２実施形態に係る対応ＳＱＬ情報の一例を示した図である。
【０１００】
図１０に示すように、対応ＳＱＬ情報１０１ｂは、ＨＴＴＰ通番、ＳＱＬ通番、ＨＴＴＰメタデータを含む。ＨＴＴＰ通番は、ＨＴＴＰ通信の識別に利用される識別情報である。また、ＨＴＴＰ通番は、ＨＴＴＰ通信（ＨＴＴＰリクエスト）の発行順序を表す。ＨＴＴＰメタデータは、ＨＴＴＰ通信の内容である。
【０１０１】
１つのＨＴＴＰ通番には、少なくとも１つのＳＱＬ通番が対応付けられる。図１０の例では、ＨＴＴＰ通番が０のＨＴＴＰ通信（ＨＴＴＰ通信＃０）に３つのＳＱＬ通番｛０，１，２｝が対応付けられている。つまり、ＨＴＴＰ通信＃０は、ＳＱＬ＃０、＃１、＃２に対応する。この例では、ＨＴＴＰ通信＃１、＃２、＃３にそれぞれＳＱＬ＃３、＃４、＃５が対応付けられている。
【０１０２】
なお、対応ＳＱＬ情報１０１ｂの内容は、サーバ装置２２０から取得され、ＨＴＴＰ通信間の関連性を分析する処理の実行前には記憶部１０１に格納される。
（再現対象の情報１０１ｄ）
上記の再現対象の情報１０１ｄは、例えば、図１１のような内容を有する。図１１は、第２実施形態に係る再現対象の情報の一例を示した図である。
【０１０３】
図１１に示すように、再現対象の情報１０１ｄは、ＨＴＴＰ通番、ＨＴＴＰメタデータを含む。再現対象の情報１０１ｄに記述されるＨＴＴＰ通番は、再現対象としてユーザにより選択されたＨＴＴＰ通信に対応する。また、再現対象の情報１０１ｄに記述されるＨＴＴＰメタデータは、対応ＳＱＬ情報１０１ｂに記述されるＨＴＴＰメタデータと同じ内容である。
【０１０４】
（試行結果の情報１０１ｅ）
上記の試行結果の情報１０１ｅは、例えば、図１２のような内容を有する。図１２は、第２実施形態に係る試行結果の情報の一例を示した図である。
【０１０５】
図１２に示すように、試行結果の情報１０１ｅは、試行区分、除外ＨＴＴＰ通番、試行ＳＱＬ通番、試行結果を含む。
後述するように、ＨＴＴＰ通信間の関連性を特定する際に、一連のＨＴＴＰ通信の中から再現対象より前に処理されたＨＴＴＰ通信を省略し、再現対象に対応するＳＱＬ文の実行結果（試行結果）を省略前後で比較する試行が実施される。比較時に基準となる省略前の試行結果が、試行区分「基準」に対応付けて記述される。
【０１０６】
試行ＳＱＬ通番は、試行結果を得るために実行されるＳＱＬ文のＳＱＬ通番である。基準となる試行結果を得る場合、一連のＨＴＴＰ通信に対応するＳＱＬ文（ＳＱＬ＃０、＃１、…、＃５）がＳＱＬ通番の順に実行される。そのため、試行区分「基準」に対応する試行ＳＱＬ通番の欄には０、１、…、５と記述され、試行結果の欄には、それぞれＳＱＬ＃０、＃１、…、＃５の実行結果が記述される。
【０１０７】
一方、省略後の試行結果は、試行区分「除外対象」に対応付けて記述される。除外ＨＴＴＰ通番の欄には、省略されたＨＴＴＰ通信（一連のＨＴＴＰ通信の中から試行時に除外されるＨＴＴＰ通信）を示すＨＴＴＰ通番が記述される。なお、以下では、除外ＨＴＴＰ通番に対応するＨＴＴＰ通信を除外ＨＴＴＰ通信と呼ぶ場合がある。また、試行ＳＱＬ通番に対応するＳＱＬ文を試行ＳＱＬと呼ぶ場合がある。
【０１０８】
（関連性情報１０１ｆ）
上記の関連性情報１０１ｆは、例えば、図１３のような内容を有する。図１３は、第２実施形態に係る関連性情報の一例を示した図である。
【０１０９】
図１３に示すように、関連性情報１０１ｆは、互いに関連があるＨＴＴＰ通信のＨＴＴＰ通番を含む。再現対象と関連があるＨＴＴＰ通信を特定する処理の中で、再現対象と直接的に関連するＨＴＴＰ通信の他、再現対象と間接的に関連するＨＴＴＰ通信が特定されることがある。そのため、関連性情報１０１ｆには、再現対象とは異なる２つのＨＴＴＰ通信のＨＴＴＰ通番が記述されることがある。
【０１１０】
例えば、ＨＴＴＰ通信＃３が再現対象である場合、ＨＴＴＰ通信＃１、＃３に関連があるとき、関連性情報１０１ｆには、依存元の欄にＨＴＴＰ通信＃１のＨＴＴＰ通番が記述され、依存先の欄にＨＴＴＰ通信＃３のＨＴＴＰ通番が記述される。依存元は、依存先におけるＳＱＬ文の実行結果に影響を与える側のＨＴＴＰ通信である。
【０１１１】
依存先が再現対象の場合、依存元のＨＴＴＰ通信は再現対象と直接的に関連している。一方、ＨＴＴＰ＃０がＨＴＴＰ通信＃１を介してＨＴＴＰ＃３（再現対象）に関連している場合、関連性情報１０１ｆには、依存元にＨＴＴＰ通信＃０のＨＴＴＰ通番が記述され、依存先にＨＴＴＰ通信＃１のＨＴＴＰ通番が記述される。
【０１１２】
ＨＴＴＰ通信＃１、＃３に関連がある場合、ＨＴＴＰ通信＃１に対応するＳＱＬ文の実行結果に影響を与えるＨＴＴＰ通信＃０は、ＨＴＴＰ通信＃３に対応するＳＱＬ文の実行結果にも影響を与える。そのため、関連性情報１０１ｆには、ＨＴＴＰ通信＃０、＃１の関連を示すＨＴＴＰ通番の情報が記述される。このように、関連性情報１０１ｆには、直接的又は間接的に再現対象と関連があるＨＴＴＰ通信の情報が記述される。
【０１１３】
（基準生成部１０２）
再び図８を参照する。基準生成部１０２は、図８に示すように、ＳＱＬ分解の機能１０２ａ、ＤＢ操作の機能１０２ｂを有する。
【０１１４】
基準生成部１０２は、除外ＨＴＴＰ通信を省略した場合の試行結果と比較される省略なしの試行結果（基準）を生成する。
ＳＱＬ分解の機能１０２ａは、試行対象のＳＱＬ文が更新ＳＱＬである場合に、更新対象の行を特定するＩＤを出力する参照系ＳＱＬと、出力されるＩＤの行を更新する更新ＳＱＬとに分解する機能である。基準生成部１０２は、ＳＱＬ分解の機能１０２ａにより、ＳＱＬログ情報１０１ａに含まれる更新系ＳＱＬから分解後ＳＱＬ文を生成し、生成した分解後ＳＱＬ文をＳＱＬログ情報１０１ａに記述する。
【０１１５】
ＤＢ操作の機能１０２ｂは、ＳＱＬログ情報１０１ａに含まれるＳＱＬ文をＳＱＬ通番の順に初期ＤＢ情報１０１ｃに対して適用し（試行）、適用時に出力される参照系ＳＱＬの実行結果（試行結果）を試行結果の情報１０１ｅに記述する機能である。このとき、基準生成部１０２は、ＤＢ操作の機能１０２ｂによりＳＱＬ文を実行する際、ＳＱＬログ情報１０１ａに分解後ＳＱＬ文がある場合には、分解後ＳＱＬ文を実行する。
【０１１６】
（関連性分析部）
関連性分析部１０３は、図８に示すように、対象選択の機能１０３ａ、リストアの機能１０３ｂ、ＤＢ操作の機能１０３ｃ、比較＆判定の機能１０３ｄを有する。
【０１１７】
関連性分析部１０３は、一連のＨＴＴＰ通信の中から、再現対象より前のＨＴＴＰ通信を時系列とは逆順（ＨＴＴＰ通番が大きい順）に選択し、選択したＨＴＴＰ通信（除外ＨＴＴＰ通信）を省略した試行を実施する。そして、関連性分析部１０３は、除外ＨＴＴＰ通信を省略した試行結果と、基準の試行結果との比較に基づいて再現対象と除外ＨＴＴＰ通信との関連性を判断する。
【０１１８】
対象選択の機能１０３ａは、除外ＨＴＴＰ通信を選択する機能である。関連性分析部１０３は、対象選択の機能１０３ａにより、対応ＳＱＬ情報１０１ｂを参照し、ＨＴＴＰ通番が大きい順に、再現対象よりＨＴＴＰ通番が小さいＨＴＴＰ通信を除外ＨＴＴＰ通信として１つずつ選択する。
【０１１９】
リストアの機能１０３ｂは、除外ＨＴＴＰ通信に対応するＳＱＬ文が実行される直前の状態にデータベースの内容をリストアする機能である。関連性分析部１０３は、リストアの機能１０３ｂにより、対応ＳＱＬ情報１０１ｂを参照し、除外ＨＴＴＰ通番に対応するＳＱＬ通番のうち最も小さいＳＱＬ通番のＳＱＬ文が実行される直前の状態にデータベースの内容を復元する。
【０１２０】
例えば、除外ＨＴＴＰ通信がＨＴＴＰ通信＃２である場合、関連性分析部１０３は、リストアの機能１０３ｂにより、ＳＱＬ＃４の実行直前（ＳＱＬ＃３の実行後）の状態にあるデータベースの内容（ＵＳＥＲテーブル２３０ａ）を取得する。
【０１２１】
ＤＢ操作の機能１０３ｃは、リストアの機能１０３ｂにより復元されたデータベースの内容に対し、除外ＨＴＴＰ通信より後のＨＴＴＰ通信に対応するＳＱＬ文を適用して試行結果を生成する機能である。但し、関連性分析部１０３は、ＤＢ操作の機能１０３ｃにより試行結果を生成する際、関連性情報１０１ｆを参照し、再現対象と関連がないＨＴＴＰ通信に対応するＳＱＬ文の適用を省略する。
【０１２２】
比較＆判定の機能１０３ｄは、試行結果の情報１０１ｅを参照し、ＤＢ操作の機能１０３ｃにより生成される試行結果と、その試行結果に対応する基準の試行結果とを比較し、比較結果に応じて関連の有無を判定する機能である。
【０１２３】
関連性分析部１０３は、比較＆判定の機能１０３ｄにより比較した２つの試行結果が異なる場合に、その２つの試行結果に対応するＨＴＴＰ通信間に関連があると判定し、関連があるＨＴＴＰ通信のＨＴＴＰ通番を関連性情報１０１ｆに記述する。
【０１２４】
（表示制御部１０４）
表示制御部１０４は、図１４に示すように、関連性の分析を実施可能な一連のＨＴＴＰ通信に関する情報を表示画面に表示させ、ユーザに再現対象の選択を促す。図１４は、第２実施形態に係る再現対象の選択画面の一例を示した図である。
【０１２５】
例えば、表示制御部１０４は、図１４に示すように、情報処理装置１００の表示画面１０４ａに時間軸１４１、１４２を表示させる。時間軸１４１は、ＳＱＬ文の実行順序を規定する時間軸である。一方、時間軸１４２は、ＨＴＴＰ通信の順序を規定する時間軸である。
【０１２６】
枠１４３、１４４、１４５、１４６は、それぞれＨＴＴＰ通信＃０、＃１、＃２、＃３を表す表示情報である。また、枠１４３ａ、１４３ｂ、１４３ｃ、１４４ａ、１４５ａ、１４６ａは、それぞれＳＱＬ＃０、＃１、＃２、＃３、＃４、＃５を表す表示情報である。
【０１２７】
例えば、ＨＴＴＰ通信＃０を表す枠１４３の内部には、ＳＱＬ＃０、＃１、＃２をそれぞれ表す枠１４３ａ、１４３ｂ、１４３ｃが含まれている。この表示は、ＨＴＴＰ通信＃０と、ＳＱＬ＃０、＃１、＃２との対応関係を示している。
【０１２８】
表示制御部１０４は、対応ＳＱＬ情報１０１ｂに基づいて枠１４３、１４４、１４５、１４６、１４３ａ、１４３ｂ、１４３ｃ、１４４ａ、１４５ａ、１４６ａを表示画面１０４ａに表示させる。また、表示制御部１０４は、再現対象の選択用にカーソル１４０を表示させる。ユーザは、カーソル１４０を表示画面１０４ａ上で移動させて再現対象とするＨＴＴＰ通信を選択する。
【０１２９】
ユーザにより再現対象として選択されたＨＴＴＰ通信のＨＴＴＰ通番及びＨＴＴＰメタデータは、表示制御部１０４により再現対象の情報１０１ｄに記述される。また、関連性分析部１０３による分析処理が完了した後、表示制御部１０４は、関連性情報１０１ｆに基づいて分析結果を表示画面１０４ａに表示させる。
【０１３０】
なお、表示画面１０４ａは、情報処理装置１００以外のコンピュータに接続されているディスプレイ装置の表示画面であってもよい。例えば、表示画面１０４ａは、クライアント装置２１０やサーバ装置２２０などのネットワークを介して情報処理装置１００に接続されているコンピュータの表示画面であってもよい。このような変形も第２実施形態の技術的範囲に属する。
【０１３１】
（基準生成方法）
ここで、図４のＵＳＥＲテーブル２３０ａ、図９のＳＱＬログ情報１０１ａ（ＳＱＬ文）、図１０の対応ＳＱＬ情報１０１ｂ、図１１の再現対象の情報１０１ｄを基に図１２に示した基準の試行結果を生成する方法（基準生成方法）について述べる。この基準生成方法の処理は、図１５〜図１７の工程に沿って実行される。
【０１３２】
図１５は、第２実施形態に係る基準生成方法の一例を示した第１の図である。図１６は、第２実施形態に係る基準生成方法の一例を示した第２の図である。図１７は、第２実施形態に係る基準生成方法の一例を示した第３の図である。
【０１３３】
基準生成部１０２は、ＳＱＬログ情報１０１ａに基づいて、ＳＱＬ文の適用対象となるテーブル（ＵＳＥＲテーブル２３０ａ）を特定する。また、基準生成部１０２は、初期ＤＢ情報１０１ｃとして、ＳＱＬログ情報１０１ａに含まれるＳＱＬ文の実行前におけるＵＳＥＲテーブル２３０ａを取得する。そして、基準生成部１０２は、ＳＱＬログ情報１０１ａを参照し、ＳＱＬ通番の順にＳＱＬ文（ＳＱＬ＃０、＃１、…、＃５）を実行する。
【０１３４】
図９に示したように、ＳＱＬ＃０はＵＳＥＲテーブル２３０ａを対象とし、ＮＡＭＥが「ＴＯＭ」、ＳＴＡＴＵＳが「ＬＯＧＯＦＦ」の行にあるＳＴＡＴＵＳの値を「ＬＯＧＩＮ」に設定するＳＱＬ文（更新系ＳＱＬ）である。
【０１３５】
基準生成部１０２は、図１５に示すように、ＳＱＬ＃０のＳＱＬ文を分解する。ＳＱＬ＃０の場合、基準生成部１０２は、ＮＡＭＥが「ＴＯＭ」、ＳＴＡＴＵＳが「ＬＯＧＯＦＦ」の行を識別するＩＤを出力させるＳＱＬ文（ａ）と、出力されたＩＤの行にあるＳＴＡＴＵＳを「ＬＯＧＩＮ」に設定するＳＱＬ文（ｂ）とに分解する。但し、ＳＱＬ文（ｂ）の検索条件（ＷＨＥＲＥ文）は、ＳＱＬ文（ａ）の実行後に設定される。分解後のＳＱＬ文（ａ、ｂ）は、ＳＱＬログ情報１０１ａの分解後ＳＱＬ文の欄に記述される。
【０１３６】
基準生成部１０２は、分解後のＳＱＬ文（ａ）をＵＳＥＲテーブル２３０ａに適用する（Ｓｔｅｐ．１）。初期ＤＢ情報１０１ｃのＵＳＥＲテーブル２３０ａ（初期状態１１０にあるＵＳＥＲテーブル２３０ａ）に分解後のＳＱＬ文（ａ）を適用すると、ＩＤの値「１０」が出力される。基準生成部１０２は、ＳＱＬ＃０のＳＱＬ通番を試行ＳＱＬ通番とし、出力されたＩＤ「１０」を試行結果として試行結果の情報１０１ｅに記述する。
【０１３７】
また、基準生成部１０２は、出力されたＩＤ「１０」を検索条件とする分解後のＳＱＬ文（ｂ）を初期状態１１０のＵＳＥＲテーブル２３０ａに適用する（Ｓｔｅｐ．２）。分解後のＳＱＬ文（ｂ）を適用すると、ＩＤが１０の行にあるＳＴＡＴＵＳが「ＬＯＧＩＮ」に更新され、ＵＳＥＲテーブル２３０ａがＳＱＬ＃０適用後の状態（ＳＱＬ＃１適用前の状態１１１）になる。なお、基準生成部１０２は、ＳＱＬ＃１適用前の状態１１１にあるＵＳＥＲテーブル２３０ａを記憶部１０１に格納しておいてもよい。
【０１３８】
次に、基準生成部１０２は、ＳＱＬ＃１を実行する。図９に示したように、ＳＱＬ＃１はＵＳＥＲテーブル２３０ａを対象とし、ＩＤが「１０」の行にあるＬＡＳＴの値を「２０１６／０７／２５」に設定するＳＱＬ文（更新系ＳＱＬ）である。
【０１３９】
基準生成部１０２は、図１６に示すように、ＳＱＬ＃１のＳＱＬ文を分解する。ＳＱＬ＃１の場合、基準生成部１０２は、ＩＤが「１０」の行を識別するＩＤを出力させるＳＱＬ文（ａ）と、出力されたＩＤの行にあるＬＡＳＴを「２０１６／０７／２５」に設定するＳＱＬ文（ｂ）とに分解する。但し、ＳＱＬ文（ｂ）の検索条件（ＷＨＥＲＥ文）は、ＳＱＬ文（ａ）の実行後に設定される。分解後のＳＱＬ文（ａ、ｂ）は、ＳＱＬログ情報１０１ａの分解後ＳＱＬ文の欄に記述される。
【０１４０】
基準生成部１０２は、分解後のＳＱＬ文（ａ）をＳＱＬ＃１適用前の状態１１１にあるＵＳＥＲテーブル２３０ａに適用する（Ｓｔｅｐ．１）。ＳＱＬ＃１適用前の状態１１１にあるＵＳＥＲテーブル２３０ａに分解後のＳＱＬ文（ａ）を適用すると、ＩＤの値「１０」が出力される。基準生成部１０２は、ＳＱＬ＃１のＳＱＬ通番を試行ＳＱＬ通番とし、出力されたＩＤ「１０」を試行結果として試行結果の情報１０１ｅに記述する。
【０１４１】
また、基準生成部１０２は、出力されたＩＤ「１０」を検索条件とする分解後のＳＱＬ文（ｂ）をＳＱＬ＃１適用前の状態１１１にあるＵＳＥＲテーブル２３０ａに適用する（Ｓｔｅｐ．２）。分解後のＳＱＬ文（ｂ）を適用すると、ＩＤが１０の行にあるＬＡＳＴが「２０１６／０７／２５」に更新され、ＵＳＥＲテーブル２３０ａがＳＱＬ＃１適用後の状態（ＳＱＬ＃２適用前の状態１１２）になる。なお、基準生成部１０２は、ＳＱＬ＃２適用前の状態１１２にあるＵＳＥＲテーブル２３０ａを記憶部１０１に格納しておいてもよい。
【０１４２】
次に、基準生成部１０２は、図１７に示すように、ＳＱＬ＃２を実行する。図９に示したように、ＳＱＬ＃２はＵＳＥＲテーブル２３０ａを対象とし、ＩＤが「１０」の行にある全ての値を出力させるＳＱＬ文（参照系ＳＱＬ）である。なお、適用対象のＳＱＬ文が参照系ＳＱＬであるため、ＳＱＬ＃２は分解されず、ＳＱＬ＃２については、ＳＱＬログ情報１０１ａの分解後ＳＱＬ文の欄にＳＱＬ文が記述されない。
【０１４３】
基準生成部１０２は、ＳＱＬ＃２適用前の状態１１２にあるＵＳＥＲテーブル２３０ａにＳＱＬ＃２を適用する（Ｓｔｅｐ．１）。ＳＱＬ＃２の適用により、ＳＱＬ＃２適用前の状態１１２にあるＵＳＥＲテーブル２３０ａのうち、ＩＤが１０の行にあるＩＤ、ＮＡＭＥ、ＳＴＡＴＵＳ、ＬＡＳＴの値が出力される。基準生成部１０２は、ＳＱＬ＃２のＳＱＬ通番を試行ＳＱＬ通番とし、出力されたＩＤ「１０」、ＮＡＭＥ「ＴＯＭ」、ＳＴＡＴＵＳ「ＬＯＧＩＮ」、ＬＡＳＴ「２０１６／０７／２５」を試行結果として試行結果の情報１０１ｅに記述する。
【０１４４】
上記と同様に、基準生成部１０２は、ＳＱＬ＃３、＃４、＃５をＵＳＥＲテーブル２３０ａに適用し、試行結果などを試行結果の情報１０１ｅに記述する。なお、ＳＱＬ＃２の適用後におけるＵＳＥＲテーブル２３０ａの状態をＳＱＬ＃３適用前の状態１１３と呼ぶ場合がある。同様に、ＳＱＬ＃３の適用後におけるＵＳＥＲテーブル２３０ａの状態をＳＱＬ＃４適用前の状態１１４、ＳＱＬ＃４の適用後におけるＵＳＥＲテーブル２３０ａの状態をＳＱＬ＃５適用前の状態１１５と呼ぶ場合がある。
【０１４５】
上記の工程を経て、基準生成部１０２により、ＳＱＬログ情報１０１ａにおける分解後ＳＱＬ文、試行結果の情報１０１ｅにおける基準の試行結果が得られる。
（関連性分析方法）
次に、上記の基準生成方法により得られた基準を利用してＨＴＴＰ通信間の関連性を分析する方法（関連性分析方法）について述べる。この関連性分析方法の処理は、図１８〜図２０の工程に沿って実行される。
【０１４６】
図１８は、第２実施形態に係る関連性分析方法の一例を示した第１の図である。図１９は、第２実施形態に係る関連性分析方法の一例を示した第２の図である。図２０は、第２実施形態に係る関連性分析方法の一例を示した第３の図である。
【０１４７】
（Ｓｔｅｐ．１）関連性分析部１０３は、対応ＳＱＬ情報１０１ｂを参照し、時系列で再現対象（ＨＴＴＰ通信＃３）の前にあるＨＴＴＰ通信＃２を除外ＨＴＴＰ通信として選択する。そして、関連性分析部１０３は、図１８に示すように、ＨＴＴＰ通信＃２のＨＴＴＰ通番を除外ＨＴＴＰ通番として試行結果の情報１０１ｅに記述する。
【０１４８】
また、関連性分析部１０３は、対応ＳＱＬ情報１０１ｂを参照し、時系列で除外ＨＴＴＰ通信の後にあるＨＴＴＰ通信＃３を特定する。また、関連性分析部１０３は、ＳＱＬログ情報１０１ａを参照し、特定したＨＴＴＰ通信＃３に対応するＳＱＬ文のうち、最小のＳＱＬ通番（ＳＱＬ通番「５」；図１０を参照）に対応するＳＱＬ＃５を試行ＳＱＬとして特定する。そして、関連性分析部１０３は、図１８に示すように、特定したＳＱＬ＃５のＳＱＬ通番を試行ＳＱＬ通番として試行結果の情報１０１ｅに記述する。
【０１４９】
また、関連性分析部１０３は、除外ＨＴＴＰ通信（ＨＴＴＰ通信＃２）に対応するＳＱＬ文のうち、最小のＳＱＬ通番に対応するＳＱＬ文（ＳＱＬ＃４）を適用前の状態（ＳＱＬ＃４適用前の状態１１４）にあるＵＳＥＲテーブル２３０ａを取得する。例えば、関連性分析部１０３は、ＳＱＬ＃４適用前の状態１１４にあるＵＳＥＲテーブル２３０ａをサーバ装置２２０から取得する。
【０１５０】
なお、ＳＱＬ＃４適用前の状態１１４にあるＵＳＥＲテーブル２３０ａが記憶部１０１にある場合、関連性分析部１０３は、記憶部１０１にあるＵＳＥＲテーブル２３０ａを利用してもよい。また、関連性分析部１０３は、初期ＤＢ情報１０１ｃからＳＱＬ＃４適用前の状態１１４にあるＵＳＥＲテーブル２３０ａを生成してもよい。
【０１５１】
（Ｓｔｅｐ．２）関連性分析部１０３は、ＳＱＬ＃４適用前の状態１１４におけるＵＳＥＲテーブル２３０ａに試行ＳＱＬ（ＳＱＬ＃５）を適用する。また、関連性分析部１０３は、試行ＳＱＬの適用により出力される値（この例ではＮＡＭＥの値「ＴＯＭ−Ｊｒ」）を試行結果として試行結果の情報１０１ｅに記述する。
【０１５２】
（Ｓｔｅｐ．３）関連性分析部１０３は、試行結果の情報１０１ｅを参照し、試行ＳＱＬ通番が同じ「基準」の試行結果と「除外対象」の試行結果とを比較する。試行ＳＱＬ通番が同じ「基準」の試行結果と「除外対象」の試行結果とが同じ場合、関連性分析部１０３は、再現対象（ＨＴＴＰ通信＃３）と、除外ＨＴＴＰ通信（ＨＴＴＰ通信＃２）との間に関連がないと判定する。図１８の例では試行結果（ＮＡＭＥの値）がいずれも「ＴＯＭ−Ｊｒ」であるから、関連性分析部１０３は、ＨＴＴＰ通信＃２、＃３の間に関連がないと判定する。
【０１５３】
（Ｓｔｅｐ．４）関連性分析部１０３は、対応ＳＱＬ情報１０１ｂを参照し、時系列で前回選択した除外ＨＴＴＰ通信（ＨＴＴＰ通信＃２）の前にあるＨＴＴＰ通信＃１を今回の除外ＨＴＴＰ通信として選択する。そして、関連性分析部１０３は、図１９に示すように、ＨＴＴＰ通信＃１のＨＴＴＰ通番を除外ＨＴＴＰ通番として試行結果の情報１０１ｅに記述する。
【０１５４】
また、関連性分析部１０３は、対応ＳＱＬ情報１０１ｂ及び関連性情報１０１ｆを参照し、時系列で除外ＨＴＴＰ通信の後にあるＨＴＴＰ通信のうち、再現対象、及び再現対象と関連があるＨＴＴＰ通信（ＨＴＴＰ通信＃３）を特定する。なお、図１９の例では、ＨＴＴＰ通信＃２、＃３の間に関連がないため、ＨＴＴＰ通信＃２は特定対象から排除される。その結果、除外ＨＴＴＰ通番が１の場合における試行結果を得る処理において、ＨＴＴＰ通信＃２に対応するＳＱＬ文の実行が省略される。
【０１５５】
関連性分析部１０３は、ＳＱＬログ情報１０１ａを参照し、特定したＨＴＴＰ通信＃３に対応するＳＱＬ文のうち、最小のＳＱＬ通番（ＳＱＬ通番「５」；図１０を参照）に対応するＳＱＬ＃５を試行ＳＱＬとして特定する。そして、関連性分析部１０３は、図１９に示すように、特定したＳＱＬ＃５のＳＱＬ通番を試行ＳＱＬ通番として試行結果の情報１０１ｅに記述する。
【０１５６】
また、関連性分析部１０３は、除外ＨＴＴＰ通信（ＨＴＴＰ通信＃１）に対応するＳＱＬ文のうち、最小のＳＱＬ通番に対応するＳＱＬ文（ＳＱＬ＃３）を適用前の状態（ＳＱＬ＃３適用前の状態１１３）にあるＵＳＥＲテーブル２３０ａを取得する。例えば、関連性分析部１０３は、ＳＱＬ＃３適用前の状態１１３にあるＵＳＥＲテーブル２３０ａをサーバ装置２２０から取得する。
【０１５７】
なお、ＳＱＬ＃３適用前の状態１１３にあるＵＳＥＲテーブル２３０ａが記憶部１０１にある場合、関連性分析部１０３は、記憶部１０１にあるＵＳＥＲテーブル２３０ａを利用してもよい。また、関連性分析部１０３は、初期ＤＢ情報１０１ｃからＳＱＬ＃３適用前の状態１１３にあるＵＳＥＲテーブル２３０ａを生成してもよい。
【０１５８】
（Ｓｔｅｐ．５）関連性分析部１０３は、ＳＱＬ＃３適用前の状態１１３におけるＵＳＥＲテーブル２３０ａに試行ＳＱＬ（ＳＱＬ＃５）を適用する。また、関連性分析部１０３は、試行ＳＱＬの適用により出力される値（この例ではＮＡＭＥの値「ＴＯＭ」）を試行結果として試行結果の情報１０１ｅに記述する。
【０１５９】
（Ｓｔｅｐ．６）関連性分析部１０３は、試行結果の情報１０１ｅを参照し、試行ＳＱＬ通番が同じ「基準」の試行結果と「除外対象」の試行結果とを比較する。図１９の例では「基準」の試行結果（ＮＡＭＥの値）が「ＴＯＭ−Ｊｒ」、「除外対象」の試行結果が「ＴＯＭ」であり、試行結果が異なる。そのため、関連性分析部１０３は、ＨＴＴＰ通信＃１、＃３の間に関連があると判定する。
【０１６０】
また、関連性分析部１０３は、関連性情報１０１ｆの依存元の欄に除外ＨＴＴＰ通信（ＨＴＴＰ通信＃１）のＨＴＴＰ通番を記述し、依存先の欄に再現対象（ＨＴＴＰ通信＃３）のＨＴＴＰ通番を記述する。
【０１６１】
（Ｓｔｅｐ．７）関連性分析部１０３は、対応ＳＱＬ情報１０１ｂを参照し、時系列で前回選択した除外ＨＴＴＰ通信（ＨＴＴＰ通信＃１）の前にあるＨＴＴＰ通信＃０を今回の除外ＨＴＴＰ通信として選択する。そして、関連性分析部１０３は、図２０に示すように、ＨＴＴＰ通信＃０のＨＴＴＰ通番を除外ＨＴＴＰ通番として試行結果の情報１０１ｅに記述する。
【０１６２】
また、関連性分析部１０３は、対応ＳＱＬ情報１０１ｂ及び関連性情報１０１ｆを参照し、時系列で除外ＨＴＴＰ通信の後にあるＨＴＴＰ通信のうち、再現対象、及び再現対象と関連があるＨＴＴＰ通信（ＨＴＴＰ通信＃１）を特定する。なお、図２０の例では、ＨＴＴＰ通信＃２、＃３の間に関連がないため、ＨＴＴＰ通信＃２は特定対象から排除される。その結果、除外ＨＴＴＰ通番が０の場合における試行結果を得る処理において、ＨＴＴＰ通信＃２に対応するＳＱＬ文の実行が省略される。
【０１６３】
関連性分析部１０３は、ＳＱＬログ情報１０１ａを参照し、特定したＨＴＴＰ通信＃１、＃３に対応するＳＱＬ文のうち、最小のＳＱＬ通番（ＳＱＬ通番「３」；図１０を参照）に対応するＳＱＬ＃３を試行ＳＱＬとして特定する。そして、関連性分析部１０３は、図２０に示すように、特定したＳＱＬ＃３のＳＱＬ通番を試行ＳＱＬ通番として試行結果の情報１０１ｅに記述する。
【０１６４】
また、関連性分析部１０３は、除外ＨＴＴＰ通信（ＨＴＴＰ通信＃０）に対応するＳＱＬ文のうち、最小のＳＱＬ通番に対応するＳＱＬ文（ＳＱＬ＃０）を適用前の状態（初期状態１１０）にあるＵＳＥＲテーブル２３０ａを取得する。例えば、関連性分析部１０３は、初期状態１１０にあるＵＳＥＲテーブル２３０ａを初期ＤＢ情報１０１ｃから抽出する。
【０１６５】
（Ｓｔｅｐ．８）関連性分析部１０３は、初期状態１１０におけるＵＳＥＲテーブル２３０ａに試行ＳＱＬ（ＳＱＬ＃３）を適用する。また、関連性分析部１０３は、試行ＳＱＬの適用により出力される値（この例では出力なし；ブランク）を試行結果として試行結果の情報１０１ｅに記述する。
【０１６６】
（Ｓｔｅｐ．９）関連性分析部１０３は、試行結果の情報１０１ｅを参照し、試行ＳＱＬ通番が同じ「基準」の試行結果と「除外対象」の試行結果とを比較する。図２０の例では「基準」の試行結果（ＩＤの値）が「１０」、「除外対象」の試行結果が「」であり、試行結果が異なる。そのため、関連性分析部１０３は、除外ＨＴＴＰ通信であるＨＴＴＰ通信＃０と、試行ＳＱＬ（ＳＱＬ＃３）に対応するＨＴＴＰ通信＃１との間に関連があると判定する。
【０１６７】
この場合、関連性分析部１０３は、ＨＴＴＰ通信＃１を介して、除外ＨＴＴＰ通信であるＨＴＴＰ通信＃０と、再現対象であるＨＴＴＰ通信＃３との間に関連（間接的な関連）があると判定する。そして、関連性分析部１０３は、関連性情報１０１ｆの依存元の欄に除外ＨＴＴＰ通信（ＨＴＴＰ通信＃１）のＨＴＴＰ通番を記述し、依存先の欄にＨＴＴＰ通信＃１のＨＴＴＰ通番を記述する。
【０１６８】
上記の工程により、再現対象と関連があるＨＴＴＰ通信について、ＨＴＴＰ通信間の関連性が関連性情報１０１ｆに記述されたことになる。なお、ＨＴＴＰ通信＃０、＃１の間の関連が検出されたことで、ＨＴＴＰ通信＃０の有無がＨＴＴＰ通信＃３に対応するＳＱＬ文の実行結果に影響することが判明しているため、ＨＴＴＰ通信＃０、＃３の間における直接的な関連性を分析する処理が省略される。
【０１６９】
上記の分析結果は、例えば、表示制御部１０４により、図２１に示すような形で表示画面１０４ａに表示される。図２１は、第２実施形態に係る分析結果の表示画面の一例を示した図である。矢印１４７、１４８は、ＨＴＴＰ通信間の関連性を示す表示情報である。
【０１７０】
矢印１４７は、ＨＴＴＰ通信＃０、＃１の間に関連があることを示している。また、矢印１４７は、依存先であるＨＴＴＰ通信＃１から依存元であるＨＴＴＰ通信＃０へ向かう方向を指しており、その方向が依存関係の向きを表現している。他方、矢印１４８は、ＨＴＴＰ通信＃１、＃３の間に関連があることを示している。矢印１４８は、依存先であるＨＴＴＰ通信＃３から依存元であるＨＴＴＰ通信＃１へ向かう方向を指しており、その方向が依存関係の向きを表現している。
【０１７１】
図２１に示すように、表示制御部１０４は、直接的に関連があるＨＴＴＰ通信同士を連結する矢印１４７、１４８を表示画面１０４ａに表示させる。この表示を採用すると、再現対象と関連がある各ＨＴＴＰ通信から再現対象へ至る連結経路が明確になる。例えば、再現対象に対応するＳＱＬ文の出力に異常がある場合、表示画面１０４ａに表示されている連結経路に沿って順番に原因調査を実施することで、より迅速に原因を究明することが可能になると期待される。
【０１７２】
以上、基準の生成から関連性の分析に至る処理の工程について述べた。
（更新系ＳＱＬの分解）
ここで、図２２を参照しながら、更新系ＳＱＬの分解について、さらに説明する。図２２は、更新系ＳＱＬの分解による出力への影響について説明するための図である。
【０１７３】
既に述べたように、上記の基準生成方法及び関連性分析方法では、分解後のＳＱＬ文が利用される。上述した方法で更新系ＳＱＬ文を分解する理由は、更新対象の行を識別する識別情報の比較結果に基づいて関連の有無を判定することで誤判定が生じるリスクを回避するためである。
【０１７４】
例えば、更新系ＳＱＬの実行により影響が生じたＵＳＥＲテーブル２３０ａの行数（影響を与えた行数）を試行結果として出力する仕様にすると誤判定のリスクが生じる。
図２２の例は、ＳＱＬ＃１０の適用によりＵＳＥＲテーブル３０１が得られ、ＵＳＥＲテーブル３０１にＳＱＬ＃１１を適用してＵＳＥＲテーブル３０２が得られる様子を示している。ＩＮＳＥＲＴ文（ＳＱＬ＃１０）の適用により、ＩＤが１０の行が挿入されてＵＳＥＲテーブル３０１が得られる。
【０１７５】
次いで、ＵＳＥＲテーブル３０１にＵＰＤＡＴＥ文（ＳＱＬ＃１１）を適用すると、ＩＤが１０の行が更新され、影響を与えた行数が１である旨の出力３０３が得られる。ＳＱＬ＃１０を省略した場合、ＳＱＬ＃１１は、ＩＤが２０の行にあるデータを更新する。そのため、ＳＱＬ＃１１を分解しない場合、ＳＱＬ＃１０を省略した場合も同じ内容の出力３０３となる。つまり、「影響を与えた行数」を利用する場合、ＳＱＬ＃１０、＃１１の間に関連があること（省略の前後で更新内容が変更されること）が正しく判定されない。
【０１７６】
一方、ＳＱＬ＃１１を分解したＳＱＬ文の集合３０４を利用すると、ＳＱＬ＃１０を省略前に出力される内容は、ＩＤが１０である旨を示す出力３４１となる。また、ＳＱＬ＃１０を省略後に出力される内容は、ＩＤが２０である旨を示す出力３４２となる。出力３４１、３４２の内容が異なることから、ＳＱＬ＃１０、＃１１の間に関連があること（省略の前後で更新内容が変更されること）を正しく判定することができる。このように、更新系ＳＱＬを分解することで、誤判定のリスクを回避することが可能になる。
【０１７７】
以上、情報処理装置１００の機能について説明した。
［２−４．処理の流れ］
次に、図２３〜図２５を参照しながら、情報処理装置１００が実行する処理の流れについて説明する。なお、図中ではＵＳＥＲテーブル２３０ａをＤＢと表記する場合がある。
【０１７８】
図２３は、第２実施形態に係る情報処理装置が実行する処理の流れを示した第１のフロー図である。図２４は、第２実施形態に係る情報処理装置が実行する処理の流れを示した第２のフロー図である。図２５は、第２実施形態に係る情報処理装置が実行する処理の流れを示した第３のフロー図である。
【０１７９】
（Ｓ２０１）表示制御部１０４は、記憶部１０１にあるＳＱＬログ情報１０１ａ、対応ＳＱＬ情報１０１ｂに基づいて再現対象の選択画面を表示する（図１４を参照）。
（Ｓ２０２）表示制御部１０４は、再現対象となるＨＴＴＰ通信の入力を受け付ける。例えば、表示制御部１０４は、ユーザが操作するカーソル１４０の位置と枠１４３、１４４、１４５、１４６との重畳関係を検知し、再現対象の選択操作が行われた際にカーソル１４０が重畳している枠に対応するＨＴＴＰ通信を再現対象として特定する。表示制御部１０４は、特定したＨＴＴＰ通信の情報を再現対象の情報１０１ｄに記述する。
【０１８０】
（Ｓ２０３）基準生成部１０２は、ＤＢダンプを実行して初期ＤＢ情報１０１ｃをサーバ装置２２０から取得し、取得した初期ＤＢ情報１０１ｃを記憶部１０１に格納する。
例えば、再現対象としてＨＴＴＰ通信＃３が選択され、時系列でＨＴＴＰ通信＃３より前にＨＴＴＰ通信＃０、＃１、＃２がある場合、基準生成部１０２は、ＨＴＴＰ通信＃０に対応するＳＱＬ文が実行される前のＵＳＥＲテーブル２３０ａを取得する。この場合、基準生成部１０２は、ＳＱＬ＃０適用前の状態（初期状態１１０）にあるＵＳＥＲテーブル２３０ａを初期ＤＢ情報１０１ｃとして取得する。
【０１８１】
（Ｓ２０４）基準生成部１０２は、試行ＳＱＬとして、ＳＱＬログ情報１０１ａに含まれるＳＱＬ文のうち、未選択のＳＱＬ文を先頭から順（ＳＱＬ通番が小さい順）に１つずつ選択する。また、基準生成部１０２は、選択した試行ＳＱＬのＳＱＬ通番を試行結果の情報１０１ｅにある試行ＳＱＬ通番の欄に記述する。
【０１８２】
（Ｓ２０５）基準生成部１０２は、選択した試行ＳＱＬが更新系ＳＱＬであるか否かを判定する。試行ＳＱＬが更新系ＳＱＬである場合、処理はＳ２０６へと進む。一方、試行ＳＱＬが更新系ＳＱＬでない場合（参照系ＳＱＬである場合）、処理はＳ２０９へと進む。
【０１８３】
（Ｓ２０６）基準生成部１０２は、試行ＳＱＬを参照系ＳＱＬと更新系ＳＱＬとに分解する。このとき、基準生成部１０２は、試行ＳＱＬによる更新対象の行を特定する識別情報（ＩＤ）を出力する参照系ＳＱＬと、その参照系ＳＱＬによる出力を検索条件として試行ＳＱＬによる更新操作を適用する更新系ＳＱＬとを生成する。基準生成部１０２は、試行ＳＱＬの分解により生成された参照系ＳＱＬと更新系ＳＱＬとをＳＱＬログ情報１０１ａにある分解後ＳＱＬ文の欄に記録する。
【０１８４】
（Ｓ２０７、Ｓ２０８）基準生成部１０２は、ＳＱＬログ情報１０１ａの分解後ＳＱＬ文の欄に記録した参照系ＳＱＬをＵＳＥＲテーブル２３０ａに適用する。そして、基準生成部１０２は、参照系ＳＱＬの適用時に出力された内容を試行結果（基準）として試行結果の情報１０１ｅに記録する。また、基準生成部１０２は、参照系ＳＱＬの出力に基づいて、ＳＱＬログ情報１０１ａの分解後ＳＱＬ文の欄に記録した更新系ＳＱＬをＵＳＥＲテーブル２３０ａに適用する。Ｓ２０８の処理が完了すると、処理はＳ２１０へと進む。
【０１８５】
（Ｓ２０９）基準生成部１０２は、試行ＳＱＬをＵＳＥＲテーブル２３０ａに適用し、適用時に出力される内容を試行結果（基準）として試行結果の情報１０１ｅに記録する。Ｓ２０９の処理が完了すると、処理はＳ２１０へと進む。
【０１８６】
（Ｓ２１０）基準生成部１０２は、ＳＱＬログ情報１０１ａを参照し、試行対象となるＳＱＬ文（試行ＳＱＬ）を選択し終えたか否かを判定する。試行対象となるＳＱＬ文を選択し終えた場合、処理はＳ２１１へと進む。一方、未選択のＳＱＬ文がある場合、処理はＳ２０４へと進む。
【０１８７】
なお、Ｓ２０１からＳ２１０までの処理が上述した基準生成方法に相当する。他方、Ｓ２１１以降の処理は上述した関連性分析方法に相当する。
（Ｓ２１１）関連性分析部１０３は、対応ＳＱＬ情報１０１ｂに基づき、適用順（ＨＴＴＰ通番が大きくなる方向）が再現対象より前のＨＴＴＰ通信を除外ＨＴＴＰ通信として１つずつ選択する。このとき、関連性分析部１０３は、適用順とは逆順（ＨＴＴＰ通番が小さくなる方向）に未選択のＨＴＴＰ通信を選択する。
【０１８８】
（Ｓ２１２）関連性分析部１０３は、対応ＳＱＬ情報１０１ｂを参照し、除外ＨＴＴＰ通信に対応するＳＱＬ文のうち、ＳＱＬ通番が最小のＳＱＬ文を特定する。そして、関連性分析部１０３は、特定したＳＱＬ文が適用される前の状態にあるＵＳＥＲテーブル２３０ａを取得する（リストア）。例えば、関連性分析部１０３は、リストアした状態のＵＳＥＲテーブル２３０ａを生成するか、或いは、サーバ装置２２０から取得する。
【０１８９】
（Ｓ２１３）関連性分析部１０３は、対応ＳＱＬ情報１０１ｂを参照し、適用順が除外ＨＴＴＰ通信より後のＨＴＴＰ通信のうち、未選択のＨＴＴＰ通信を適用順（ＨＴＴＰ通番が大きくなる方向）に比較対象として１つずつ選択する。
【０１９０】
（Ｓ２１４）関連性分析部１０３は、関連性情報１０１ｆを参照し、比較対象と再現対象との間に直接的又は間接的な関連があるか否かを判定する。比較対象と再現対象との間に関連がある場合、処理はＳ２１８へと進む。一方、比較対象と再現対象との間に関連がない場合、処理はＳ２１５へと進む。
【０１９１】
（Ｓ２１５）関連性分析部１０３は、対応ＳＱＬ情報１０１ｂを参照し、比較対象となるＨＴＴＰ通信を選択し終えたか否かを判定する。比較対象となるＨＴＴＰ通信を選択し終えた場合、処理はＳ２１６へと進む。一方、比較対象となる未選択のＨＴＴＰ通信がある場合、処理はＳ２１３へと進む。
【０１９２】
（Ｓ２１６）関連性分析部１０３は、対応ＳＱＬ情報１０１ｂを参照し、除外ＨＴＴＰ通信となるＨＴＴＰ通信を選択し終えたか否かを判定する。除外ＨＴＴＰ通信となるＨＴＴＰ通信を選択し終えた場合、処理はＳ２１７へと進む。一方、除外ＨＴＴＰ通信となる未選択のＨＴＴＰ通信がある場合、処理はＳ２１１へと進む。
【０１９３】
（Ｓ２１７）表示制御部１０４は、関連性情報１０１ｆに基づいてＨＴＴＰ通信間の関連性を示す情報を表示する（図２１を参照）。Ｓ２１７の処理が完了すると、図２３〜図２５に示した一連の処理は終了する。
【０１９４】
（Ｓ２１８）関連性分析部１０３は、ＳＱＬログ情報１０１ａ、対応ＳＱＬ情報１０１ｂに基づいて、比較対象に対応するＳＱＬ文の中から適用順（ＳＱＬ通番が大きくなる方向）にＳＱＬ文を１つずつ選択する。このとき、関連性分析部１０３は、ＳＱＬログ情報１０１ａに分解後ＳＱＬ文がある場合、分解後ＳＱＬ文を選択する。
【０１９５】
（Ｓ２１９）関連性分析部１０３は、選択したＳＱＬ文（分解後ＳＱＬ文）をＵＳＥＲテーブル２３０ａに適用する。そして、関連性分析部１０３は、試行結果の情報１０１ｅを参照し、ＳＱＬ文（分解後ＳＱＬ文）の適用時に出力される内容（試行結果）と、その出力に対応する基準の試行結果とを比較する。このとき、関連性分析部１０３は、試行ＳＱＬ通番が同じ試行結果を比較する。
【０１９６】
（Ｓ２２０）関連性分析部１０３は、Ｓ２１９におけるＳＱＬ文（分解後ＳＱＬ文）の適用時に出力される試行結果と、基準の試行結果とが同じであるか否かを判定する。２つの試行結果が同じである場合、処理はＳ２２２へと進む。一方、２つの試行結果が異なる場合、処理はＳ２２１へと進む。
【０１９７】
（Ｓ２２１）関連性分析部１０３は、比較対象に対応するＳＱＬ文（分解後ＳＱＬ文）を選択し終えたか否かを判定する。比較対象に対応するＳＱＬ文（分解後ＳＱＬ文）を選択し終えた場合、処理はＳ２１５へと進む。一方、未選択のＳＱＬ文（分解後ＳＱＬ文）がある場合、処理はＳ２１８へと進む。
【０１９８】
（Ｓ２２２）関連性分析部１０３は、依存先を比較対象のＨＴＴＰ通信、依存元を除外ＨＴＴＰ通信とする情報（ＨＴＴＰ通番）を関連性情報１０１ｆに記述する。Ｓ２２２の処理が完了すると、処理はＳ２１６へと進む。
【０１９９】
以上、情報処理装置１００が実行する処理の流れについて説明した。
上記の流れに沿って処理を進めることにより、再現対象と関連がないＨＴＴＰ通信に関する処理の一部が省略される。また、ＨＴＴＰ通信に対応するＳＱＬ文の一部を利用して、そのＨＴＴＰ通信と再現対象との間にある関係が検出されると、そのＨＴＴＰ通信に対応する残りのＳＱＬ文に関する処理の一部又は全部が省略される。そのため、処理負荷が低減される。
【０２００】
また、更新系ＳＱＬを分解してＵＳＥＲテーブル２３０ａに適用し、適用時に出力される内容に応じてＨＴＴＰ通信間の関連性を判定するため、誤判定が生じるリスクが抑制される。また、直接的な関連性を表示することで、再現対象に至る関連経路が一目瞭然になり、その表示を活用するユーザの利便性が向上する。
【０２０１】
以上、第２実施形態について説明した。
【符号の説明】
【０２０２】
１０  情報処理装置
１１  記憶部
１２  演算部
２１  サーバ装置
２２  記憶装置
２２ａ  データベース
３０  端末装置
４０  ネットワーク
５１  第１の出力結果
５１ａ、５１ｂ、５１ｃ  出力
５２  第２の出力結果
【図１】
2018067174.tif 000003
【図２】
2018067174.tif 000004
【図３】
2018067174.tif 000005
【図４】
2018067174.tif 000006
【図５】
2018067174.tif 000007
【図６】
2018067174.tif 000008
【図７】
2018067174.tif 000009
【図８】
2018067174.tif 000010
【図９】
2018067174.tif 000011
【図１０】
2018067174.tif 000012
【図１１】
2018067174.tif 000013
【図１２】
2018067174.tif 000014
【図１３】
2018067174.tif 000015
【図１４】
2018067174.tif 000016
【図１５】
2018067174.tif 000017
【図１６】
2018067174.tif 000018
【図１７】
2018067174.tif 000019
【図１８】
2018067174.tif 000020
【図１９】
2018067174.tif 000021
【図２０】
2018067174.tif 000022
【図２１】
2018067174.tif 000023
【図２２】
2018067174.tif 000024
【図２３】
2018067174.tif 000025
【図２４】
2018067174.tif 000026
【図２５】
2018067174.tif 000027