(57)【要約】  アプリケーション分析システムは、アプリケーションの実行中に各モジュールが入出力したデータに関する情報を含むモジュール情報と、アプリケーションに係る指標を算出する分析プログラムがアクセスしたデータに関する情報を含む分析情報とを有し、モジュール情報と分析情報とに基づいて、複数のモジュールの中から指標の変動に影響を与える注目モジュールを特定する。
2017179163.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールを含むアプリケーションを分析するシステムであって、プロセッサ及びメモリを有し、
前記メモリは、
前記アプリケーションの実行中に各モジュールが入出力したデータに関する情報を含むモジュール情報と、
前記アプリケーションに係る指標を算出する分析プログラムがアクセスしたデータに関する情報を含む分析情報と、を有し、
前記プロセッサは、
前記モジュール情報と前記分析情報とに基づいて、複数のモジュールの中から前記指標の変動に影響を与える注目モジュールを特定する
アプリケーション分析システム。
【請求項２】
データは、データベースのテーブルに格納されており、
前記プロセッサは、
前記モジュール情報から、モジュールがアクセスしたデータの格納先のテーブルを特定し、
前記分析情報から、分析プログラムがアクセスしたデータの格納先のテーブルを特定し、
これら特定した２つのテーブルが同じ場合、当該モジュールを、前記注目モジュールとする
請求項１に記載のアプリケーション分析システム。
【請求項３】
前記プロセッサは、前記データベースのテーブルに対する、注目モジュール及び分析プログラムのアクセス方法に基づいて、当該注目モジュールが指標に影響を与える可能性の大きさを示す影響度を判定する
請求項２に記載のアプリケーション分析システム。
【請求項４】
前記データベースのテーブルに対する注目モジュール及び分析プログラムのアクセス方法は、ＳＱＬで表現されており、
前記テーブルに対して、分析プログラムと同じデータ項目をＳＱＬ文「ＧＲＯＵＰ  ＢＹ」に指定する注目モジュールの影響度は、ＳＱＬ文「ＧＲＯＵＰ  ＢＹ」を指定しない注目モジュールの影響度よりも、大きい
請求項３に記載のアプリケーション分析システム。
【請求項５】
前記アプリケーションは、業務遂行に関するアプリケーションであり、
前記指標は、前記業務遂行に関するＫＰＩ（Ｋｅｙ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｉｎｄｉｃａｔｏｒ）である
請求項４に記載のアプリケーション分析システム。
【請求項６】
前記プロセッサは、ＫＰＩの変化と、影響度の比較的大きい注目モジュールと、を合わせて表示する
請求項５に記載のアプリケーション分析システム。
【請求項７】
前記アプリケーション情報は、各モジュールが出力したログデータに関する情報を含み、
前記分析情報は、分析プログラムがアクセスした前記ログデータに関する情報を含む
請求項１に記載のアプリケーション分析システム。
【請求項８】
前記メモリは、各モジュールの変更に関する情報を含むモジュール変更情報を更に有し、
前記プロセッサは、前記モジュール変更情報に基づいて、前記注目モジュールの変更内容を特定する
請求項１に記載のアプリケーション分析システム。
【請求項９】
前記プロセッサは、前記分析情報において指標を良化させているモジュールを、注目モジュールとする
請求項８に記載のアプリケーション分析システム。
【請求項１０】
複数のモジュールを含むアプリケーションを分析する方法であって、
前記アプリケーションの実行中に各モジュールが入出力したデータに関する情報を含むモジュール情報と、前記アプリケーションに係る指標を算出する分析プログラムがアクセスしたデータに関する情報を含む分析情報と、に基づいて、複数のモジュールの中から前記指標の変動に影響を与える注目モジュールを特定する
アプリケーション分析方法。
【請求項１１】
コンピュータを、複数のモジュールを含むアプリケーションを分析する装置として機能させるコンピュータプログラムであって、コンピュータに、
前記アプリケーションの実行中に各モジュールが入出力したデータに関する情報を含むモジュール情報と、前記アプリケーションに係る指標を算出する分析プログラムがアクセスしたデータに関する情報を含む分析情報と、に基づいて、複数のモジュールの中から前記指標の変動に影響を与える注目モジュールを特定させる
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、計算機システムに関し、例えば、アプリケーションの分析に関する。
【背景技術】
【０００２】
市場環境の激動を受けて、業務を支えるアプリケーションの開発及び運用を継続的に改善する手法が注目されている。特許文献１には、業務システムによって得られた履歴データから業務効率低下の原因侯補となる処理の進め方の違いを自動的に抽出する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４３７６８８７号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１は、履歴データベースから一の案件に関する処理の実行履歴データを読み出し、当該案件に対する業務効率指標を算出するとともに、処理の進め方を表す複数の特徴についてそれぞれの分類先である各カテゴリに対する当該案件の分類割合を決定し、これらを全ての案件について行い、全ての案件に関する業務効率指標と特徴毎の各カテゴリに対する分類割合とから、特徴毎の分類前および分類後の業務効率指標分布を算出し、全ての案件に関する特徴毎の各カテゴリに対する分類割合と特徴毎の分類前および分類後の業務効率指標分布とから、各特徴毎の分類前後の業務効率指標のばらつきの変化量を算出する。【０００５】
しかし、特許技術１は、ユースケースとそれを実現するアプリケーション（モジュール）とを静的に対応付けているため、業務の改善サイクルの中でユースケースの変化やアプリケーション（モジュール）の変更が発生する開発では、変更の度にユースケースとモジュールとを対応付けし直す必要がある。これは手間のかかる作業であり、改善に要する時間も長くなる。【０００６】
そこで本発明の目的は、アプリケーションに係る指標に影響を与えるモジュールを容易に特定可能とすることにある。
【課題を解決するための手段】
【０００７】
本発明の一実施例に係るアプリケーション分析システムは、複数のモジュールを含むアプリケーションを分析するシステムであって、プロセッサ及びメモリを有する。メモリは、アプリケーションの実行中に各モジュールが入出力したデータに関する情報を含むモジュール情報と、アプリケーションに係る指標を算出する分析プログラムがアクセスしたデータに関する情報を含む分析情報と、を有する。プロセッサは、モジュール情報と分析情報とに基づいて、複数のモジュールの中から指標の変動に影響を与える注目モジュールを特定する。
【発明の効果】
【０００８】
本発明によれば、アプリケーションに係る指標に影響を与えるモジュールを容易に特定することができる。
【図面の簡単な説明】
【０００９】
【図１】実施例１に係るアプリケーション分析システムの構成例を示す。
【図２】アプリケーション変更履歴テーブルの構成例を示す。
【図３】ログ収集設定テーブルの構成例を示す。
【図４】モジュールアクセス履歴テーブルの構成例を示す。
【図５】分析アクセス履歴テーブルの一例である。
【図６】実施例１に係るモジュール関連テーブルの構成例を示す。
【図７】モジュール特定部の処理例を示すフローチャートである。
【図８】マッチング部の処理例を示すフローチャートである。
【図９】分析画面の例を示す。
【図１０】実施例２に係るアプリケーション分析システムの構成例を示す。
【図１１】ＫＰＩ（Ｋｅｙ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｉｎｄｉｃａｔｏｒ）変化テーブルの構成例である。
【図１２】実施例２に係るモジュール関連テーブルの例である。
【図１３】有効対策テーブルの構成例である。
【図１４】有効対策テーブルの生成処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、実施例を説明する。
【００１１】
以下の説明では、「ｘｘｘテーブル」又は「ｘｘｘリスト」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「ｘｘｘテーブル」又は「ｘｘｘリスト」を「ｘｘｘ情報」と呼ぶことができる。
【００１２】
さらに、各情報の内容を説明する際に、「識別子」、「名」、「名称」、「ＩＤ」という表現を用いるが、これらについてはお互いに置換が可能である。
【００１３】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び通信インターフェイスデバイスのうちの少なくとも１つを用いながら行うため、処理の主語が、プロセッサ、そのプロセッサを有する装置とされてもよい。プロセッサが行う処理の一部又は全部が、ハードウェア回路で行われてもよい。コンピュータプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア（例えば可搬型の記憶メディア）であってもよい。
【実施例１】
【００１４】
図１は、実施例１に係るアプリケーション分析システム１の構成例を示す。【００１５】
実行装置１００は、業務遂行に関するアプリケーションを実行する。実行装置１００は業務システムと呼ばれてもよい。アプリケーションは複数のモジュール１１１（例えばモジュールＡ、Ｂ、Ｃ）から構成されてよい。複数のモジュール１１１は、アプリケーションミドルウェア１１２上に構成されてよい。実行装置１００は、複数のモジュール１１１からアクセスされるアプリケーションデータ１２２を管理する。アプリケーションデータ１２２は、データ管理ミドルウェア１２１上で管理されてよい。また、実行装置１００は、複数のモジュール１１１から出力されるログデータ１２３を管理する。ログデータ１２３は、データ管理ミドルウェア１２１上で管理されてよい。【００１６】
複数のモジュール１１１は、アプリケーションの機能を実現するために、アプリケーションミドルウェア１１２やデータ管理ミドルウェア１２１を介して、アプリケーションデータ１２２を読み書き及び削除等してよい。また、複数のモジュール１１１は、アプリケーションの実行状態を確認できるように、アプリケーションミドルウェア１１２やデータ管理ミドルウェア１２１を介して、ログデータ１２３を出力（書き込み）してよい。【００１７】
実行装置１００は、アプリケーション（複数のモジュール１１１）の実行結果を分析する分析ジョブ１０１を実行する。分析ジョブ１０１は分析ミドルウェア上１０２に構成されてよい。分析ジョブ１０１は、アプリケーションデータ１２２やログデータ１２３等を参照して、アプリケーションの実行結果を分析してよい。【００１８】
分析装置１６０は、実行装置１００に分析ジョブ１０１を投入し実行させてよい。また、分析装置１６０は、実行装置１００におけるアプリケーションの実行結果に関する情報（アプリケーションデータ１２２やログデータ１２３など）や分析ジョブ１０１の分析結果に関する情報を収集してよい。また、分析装置１６０は、その収集した情報に基づき、アプリケーションの業務遂行に関する指標（例えばＫＰＩ）の変動に影響を与えるモジュール（「注目モジュール」という）を特定してよい。【００１９】
実行装置１００及び分析装置１６０は、それぞれ、ＣＰＵ、メモリ及び記憶デバイス等を有する計算機であってよい。そして、実行装置１００及び分析装置１６０がそれぞれ有する各種機能は、メモリ又は記憶デバイスに格納されているプログラムがＣＰＵで実行されることにより、実現されてよい。メモリの例は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。記憶デバイスの例は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。【００２０】
分析装置１６０は、実行装置１００から各種データを収集する収集部１５０、収集部１５０が収集したデータを保持する記憶部１４１、及び、記憶部１４１に保持されたデータに基づきモジュール１１１とＫＰＩとの関連性を特定する関連特定部１３０を有する。【００２１】
収集部１５０は、変更履歴管理部１５１、ログ収集部１５２、分析アクセス履歴取得部１５４、及び、モジュールアクセス履歴取得部１５３を含んでよい。【００２２】
変更履歴管理部１５１は、各モジュール１１１の変更履歴を、アプリケーション変更履歴テーブル２００（図２参照）によって管理する。【００２３】
ログ収集部１５２は、各モジュール１１１が実行時に出力するログデータ１２３を、ログ収集設定テーブル２５０（図３参照）の設定内容に基づいて収集する。ログ収集部１５２は、独立したプロセスとして動作してよい。【００２４】
分析アクセス履歴取得部１５４は、分析ジョブ１０１が分析の際にデータ管理ミドルウェア１２１のデータにアクセスした履歴（「分析アクセス履歴」という）を取得し、分析アクセス履歴テーブル３５０（図５参照）に格納する。分析ジョブ１０１は、入力部１３１から指示を受けて実行されてよい。分析アクセス履歴には、分析ジョブ１０１がデータ管理ミドルウェア１２１に対して発行したＳＱＬ文が記録されてよい。【００２５】
モジュールアクセス履歴取得部１５３は、モジュール１１１が実行の際にデータ管理ミドルウェア１２１のデータにアクセスした履歴（「モジュールアクセス履歴」という）を取得し、モジュールアクセス履歴テーブル３００（図４参照）に格納する。モジュールアクセス履歴には、モジュール１１１がデータ管理ミドルウェア１２１に対して発行したＳＱＬ文が記録されてよい。【００２６】
なお、分析ジョブ１０１又はモジュール１１１がデータ管理ミドルウェア１２１にアクセスする方法は、ＳＱＬに限られず、例えば所定のプログラムによるアクセスや、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）パーサによるアクセスなどであってもよい。また、上記のアプリケーション変更履歴テーブル２００、ログ収集設定テーブル２５０、分析アクセス履歴テーブル３５０、及び、モジュールアクセス履歴テーブル３００は、記憶部１４１に保持されてよい。【００２７】
関連特定部１３０は、入力部１３１、モジュール特定部１３２、マッチング部１３３１３３、及び、出力部１３４を含んで良い。【００２８】
入力部１３１は、分析装置１６０の利用者からの入力を受け付ける（図９参照）。【００２９】
モジュール特定部１３２は、モジュールアクセス履歴テーブル３５０及び分析アクセス履歴テーブル３００に基づいて、ＫＰＩの変動に影響を与えるモジュール（注目モジュール）を特定する。これにより、何れのモジュールが、ＫＰＩの変動に影響を与えているのかを知ることができる。【００３０】
マッチング部１３３は、モジュール特定部１３２が特定した注目モジュールと、その注目モジュールの変更履歴とを対応付ける、モジュール関連テーブル７００（図６参照）を生成する。これにより、何れのモジュールの何れの変更が、ＫＰＩの変動に影響を与えているのかを知ることができる。【００３１】
出力部１３４は、モジュール特定部１３２及びマッチング部１３３の実行結果、すなわち、モジュールとＫＰＩとの関係を示す情報を、利用者に提示する（図９参照）。【００３２】
図２は、アプリケーション変更履歴テーブル２００の構成例を示す。【００３３】
アプリケーション変更履歴テーブル２００は、データ項目として、日時２０１、モジュール管理ＩＤ２０２、モジュール名２０３、及び、変更種別２０４を有してよい。【００３４】
モジュール管理ＩＤ２０２には、当該テーブル２００のエントリの識別子が格納される。【００３５】
日時２０１には、モジュール名２０３のモジュールに変更種別２０４の変更が行われた日時が格納される。又は、日時２０１には、モジュール管理ＩＤ２０２のエントリが当該テーブル２００に登録された日時が格納されてもよい。【００３６】
モジュール名２０３には、変更されたモジュールの名称が格納される。【００３７】
変更種別２０４には、モジュール名２０３のモジュールにどのような変更がされたかを示す情報が格納される。例えば、変更種別２０４「コード」は、モジュール名２０３のモジュールのプログラムコードが変更されたことを示す。変更種別２０４「パラメータ」は、モジュール名２０３のモジュールのパラメータが変更されたことを示す。【００３８】
アプリケーション変更履歴テーブル２００は、記憶部１４１に保持され、変更履歴管理部１５１によって管理されてよい。変更履歴管理部１５１は、モジュール１１１がデプロイされる度に、アプリケーション変更履歴テーブル２００にエントリを追加してよい。【００３９】
アプリケーション変更履歴テーブル２００のエントリは、日時２０１の古い順に並べられてよい。その場合、図２のアプリケーション変更履歴テーブル２００から、エントリ２０７の時点においてアプリケーションミドルウェア１１２上で実行されているモジュールは、モジュールＡ（エントリ２０７）とモジュールＢ（エントリ２０６）であることがわかる。また、モジュールＡは、エントリ２０５の時点で変更（修正）された後、エントリ２０７の時点でさらに修正されたことがわかる。【００４０】
図３は、ログ収集設定テーブル２５０の構成例を示す。【００４１】
ログ収集設定テーブル２５０は、データ項目として、モジュール管理ＩＤ２５１、ファイル名２５２、フォーマット２５３、テーブル名２５４、及び、カラム名２５５を有して良い。【００４２】
モジュール管理ＩＤ２５１には、アプリケーション変更履歴テーブル２００のモジュール管理ＩＤ２０２が格納される。【００４３】
ファイル名２５２には、モジュール管理ＩＤ２５１のモジュールが出力するファイルの名称が格納される。【００４４】
フォーマット２５３には、ファイル名２５２のファイルに記載されている各行のデータを、複数のカラムデータに分割するための情報が格納される。この情報には、正規表現等が用いられてよい。【００４５】
テーブル名２５４には、フォーマット２５３に基づいて分割された各カラムデータの格納先のテーブルの名称が格納される。【００４６】
カラム名２５５には、テーブル名２５４のテーブルにおける、フォーマット２５３に基づいて分割された各カラムデータの格納先のカラム名が格納される。【００４７】
ログ収集部１５２は、モジュール（２５１）が出力するファイル（２５２）の各行のデータを、フォーマット（２１３）に基づいて複数のカラムデータに分割してよい。そして、ログ収集部１５２は、それらのカラムデータを、データ管理ミドルウェア１２１のテーブル（２５４）の各カラム（２５５）に格納してよい。例えば、図３のエントリ２５６は、フォーマット２５３で指定された最初の空白までの文字列を、テーブル名２５４「アクセスログ」のカラム名２５５「ユーザ」に格納することを示す。【００４８】
図４は、モジュールアクセス履歴テーブル３００の構成例を示す。【００４９】
モジュールアクセス履歴テーブル３００は、データ項目として、日時３０１、モジュール管理ＩＤ３０２、及び、ＳＱＬ文３０３を有して良い。【００５０】
日時３０１には、モジュール管理ＩＤ３０２のモジュールがＳＱＬ文３０３の内容を実行した日時が格納される。【００５１】
モジュール管理ＩＤ３０２には、アプリケーション変更履歴テーブル２００のモジュール管理ＩＤ２０２が格納される。【００５２】
ＳＱＬ文３０３には、モジュール管理ＩＤ３０２のモジュールが、実行時にどのデータにアクセスしたかに関する情報を示すＳＱＬ文が格納される。【００５３】
例えば、図４のモジュールアクセス履歴テーブル３００のエントリ３０５は、モジュール管理ＩＤ「ＩＤ００２」（モジュールＢ）が、アプリケーションデータ１２２に含まれるテーブル名「ユーザ」のカラム名「目的種別」を参照（アクセス）していることを示す。【００５４】
図５は、分析アクセス履歴テーブル３００の一例である。【００５５】
分析アクセス履歴テーブル３５０は、データ項目として、日時３５１、分析ジョブＩＤ３５２、ＫＰＩ３５３、及び、ＳＱＬ文３５４を有して良い。【００５６】
日時３５１には、分析ジョブＩＤ３５２の分析ジョブ１０１がＳＱＬ文３５４の内容を実行した日時が格納される。【００５７】
分析ジョブＩＤ３５２には、分析ジョブ１０１の識別子が格納される。【００５８】
ＫＰＩ３５２には、ＫＰＩの名称が格納される。ＫＰＩ３５２には、ユーザによって入力された名称が格納されてよい。【００５９】
ＳＱＬ文３５４には、分析ジョブＩＤ３５２の分析ジョブ１０１が、分析時にどのデータにアクセスしたかに関する情報を示すＳＱＬ文が格納される。【００６０】
図６は、モジュール関連テーブル７００の構成例を示す。【００６１】
モジュール関連テーブル７００は、データ項目として、分析ジョブＩＤ７０１、モジュール管理ＩＤ７０２、及び、マッチング種別７０３を有してよい。【００６２】
分析ジョブＩＤ７０１には、分析アクセス履歴テーブル３００の分析ジョブＩＤ３５２が格納される。【００６３】
モジュール管理ＩＤ７０２には、モジュールアクセス履歴テーブル３００のモジュール管理ＩＤが２０２が格納される。【００６４】
マッチング種別７０３には、分析ジョブＩＤ７０１の分析ジョブ１０１、及び、モジュール管理ＩＤ７０２のモジュール１１１が、同じデータにどのようにアクセスしているかを示す情報が格納される。マッチング種別７０２には、例えば次の「Ｗ」、「Ｒ」、「Ｐ」の情報が格納されてよい。【００６５】
（Ｗ）モジュール管理ＩＤ７０２のモジュール１１１が書き込んだデータを、分析ジョブＩＤ７０１の分析ジョブ１０１が参照している。
（Ｒ）モジュール管理ＩＤ７０２のモジュールが参照したデータを、分析ジョブＩＤ７０１の分析ジョブも参照している。
（Ｐ）モジュール管理ＩＤ７０２のモジュール１１１と分析ジョブＩＤ７０１の分析ジョブ１０１とが、同じデータを同じアクセスパターンで参照している。例えば、分析ジョブ１０１のＳＱＬ文とモジュール１１１のＳＱＬ文とが、同じテーブルに対して同じデータ項目を「ＧＲＯＵＰ  ＢＹ」に指定している場合などである。【００６６】
モジュール関連テーブル７００のエントリは、マッチング種別７０３に基づいて影響度（優先度）が決定されてよい。例えば、マッチング種別７０３の優先度は、高い順に「Ｐ」＞「Ｗ」＞「Ｒ」であってよい。【００６７】
図７は、モジュール特定部１３２の処理例を示すフローチャートである。【００６８】
モジュール特定部１３２は、分析データアクセス履歴３５０から、入力部１３１から指定されたエントリを抽出する（ステップ４０２）。例えば、モジュール特定部１３２は、図５の分析アクセス履歴テーブル３５０から、入力部１３１から指定された分析ジョブＩＤ３５２「００１」に対応するエントリ３５５を抽出する。【００６９】
モジュール特定部１３２は、アプリケーション変更履歴テーブル２００から、分析時における各モジュールのモジュール管理ＩＤ２０２を抽出する（ステップ４０３）。例えば、モジュール特定部１３２は、図２のアプリケーション変更履歴テーブル２００から、上記で抽出したエントリ３５５の日時３５１より以前のエントリを参照し、分析時におけるモジュールＡに対応するモジュール管理ＩＤ２０２「ＩＤ００３」、モジュールＢに対応するモジュール管理ＩＤ２０２「ＩＤ００２」を抽出する。【００７０】
モジュール特定部１３２は、モジュールアクセス履歴テーブル３００から、モジュール管理ＩＤ３０２に、ステップ４０３で抽出したモジュール管理ＩＤが格納されているエントリを抽出する（ステップ４０４）。例えば、モジュール特定部１３２は、図４のモジュールアクセス履歴テーブル３００から、上記で抽出したモジュール管理ＩＤ３０２「ＩＤ００２」、「ＩＤ００３」が格納されているエントリ３０５，３０６，３０７を抽出する。【００７１】
モジュール特定部１３２は、ログ収集設定テーブル２５０から、モジュール管理ＩＤ２５１に、ステップ４０３で抽出したモジュール管理ＩＤが格納されているエントリを抽出する（ステップ４０５）。例えば、モジュール特定部１３２は、図３のログ収集設定テーブル２５０から、上記で抽出したモジュール管理ＩＤ２５１「ＩＤ００３」が格納されているエントリ２５７を抽出する。【００７２】
モジュール特定部１３２は、ステップ４０２、４０４、４０５で抽出したエントリの情報を、マッチング部１３３に渡す（ステップ４０６）。例えば、モジュール特定部１３２は、上述の例において抽出したエントリ３５５、３０５、３０６、３０７、２５７を、マッチング部１３３に渡す。なお、下記図８の説明において、ステップ４０２で抽出されたエントリ群を「ＥＬ１」、ステップ４０４で抽出されたエントリ群を「ＥＬ２」、ステップ４０５で抽出されたエントリ群を「ＥＬ３」と表現する。【００７３】
図８は、マッチング部１３３の処理例を示すフローチャートである。【００７４】
マッチング部１３３は、分析ジョブ１０１とモジュール１１１とのデータアクセスパターン（ＳＱＬ文）を照合し、両者の関連性を特定する。例えば、マッチング部１３３は、両者がアクセスするデータや、そのデータに対するアクセスの種別などに基づいて、関連性を特定してよい。マッチング部１３３は、その特定した関連性を、モジュール関連テーブル７００に格納してよい。以下、当該処理の例を説明する。【００７５】
マッチング部１３３は、エントリ群「ＥＬ１」から、未処理の１つのエントリを選択する（ステップ５０２）。この選択されたエントリを「選択ＥＬ１」と表現する。【００７６】
マッチング部１３３は、エントリ群「ＥＬ２」から、未処理の１つのエントリを選択する（ステップ５０３）。この選択されたエントリを「選択ＥＬ２」と表現する。【００７７】
マッチング部１３３は、選択ＥＬ１のＳＱＬ文３５４と、選択ＥＬ２のＳＱＬ文３０３とに基づき、選択ＥＬ１の分析ジョブ１０１と選択ＥＬ２のモジュール１１１とが同じデータにアクセスしているか否かを判定する（ステップ５０４）。マッチング部１３３は、当該判定結果が「ＹＥＳ」の場合、ステップ５０５の処理へ進み、「ＮＯ」の場合、ステップ５０６の処理へ進む。例えば、選択ＥＬ１がエントリ３５５、選択ＥＬ２がエントリ３０５又はエントリ３０６である場合、何れもがテーブル「ユーザ情報」のデータ項目「目的種別」にアクセスしているので、当該判定結果は「ＹＥＳ」となる。【００７８】
マッチング部１３３は、ステップ５０４で判定したアクセスのマッチング種別（例えば上記の「Ｗ」、「Ｒ」、「Ｐ」の何れであるか）を特定する。そして、マッチング部１３３は、分析ジョブＩＤ７０１に選択ＥＬ１の分析ジョブＩＤ３５２、モジュール管理ＩＤ７０２に選択ＥＬ２のモジュール管理ＩＤ３０２、マッチング種別７０３に当該特定したマッチング種別を格納したエントリを、モジュール関連テーブル７００に追加し（ステップ５０５）、ステップ５０６の処理へ進む。例えば、選択ＥＬ１がエントリ３５５、選択ＥＬ２がエントリ３０５である場合、エントリ３０５のＳＱＬ文３０３はデータの参照を示しているので、マッチング種別は「Ｒ」と特定され、モジュール関連テーブル７００にエントリ７０４が追加される。【００７９】
なお、モジュール関連テーブル７００に、同一の分析ジョブＩＤ７０１及びモジュール管理ＩＤ７０２が格納されているエントリが存在する場合、マッチング部１３３は、その既存のエントリのマッチング種別７０３に当該特定したマッチング種別を追記すればよい。例えば、選択ＥＬ１がエントリ３５５、選択ＥＬ２がエントリ３０６である場合、エントリ３０６のＳＱＬ文３０３はデータの更新を示しているので、マッチング種別は「Ｗ」と特定され、モジュール関連テーブル７００のエントリ７０４のマッチング種別７０３に「Ｗ」が追記される。【００８０】
マッチング部１３３は、エントリ群ＥＬ２の全てを選択し終えるまでステップ５０３〜５０６の処理を実行し、全てを選択し終えたら、次のステップ５０７の処理へ進む（ステップ５０６）。【００８１】
マッチング部１３３は、エントリ群ＥＬ３から、未処理の１つのエントリを選択する（ステップ５０７）。この選択されたエントリを「選択ＥＬ３」という。【００８２】
マッチング部１３３は、選択ＥＬ１のＳＱＬ文３５４によってアクセスされるログデータと、選択ＥＬ３のフォーマット２５３及びカラム名２５５等に基づいて収集されたログデータと、が同じものであるか否かを判定する（ステップ５０８）。マッチング部１３３は、当該判定結果が「ＹＥＳ」の場合、ステップ５０９の処理へ進み、「ＮＯ」の場合、ステップ５１０の処理へ進む。例えば、選択ＥＬ１がエントリ３５６、選択ＥＬ３がエントリ２５６である場合、何れもがテーブル「アクセスログ」にアクセスしているので、当該判定結果は「ＹＥＳ」となる。【００８３】
マッチング部１３３は、分析ジョブＩＤ７０１に選択ＥＬ１の分析ジョブＩＤ３５２、モジュール管理ＩＤ７０２に選択ＥＬ３のモジュール管理ＩＤ２５１、マッチング種別７０３に「Ｒ」が格納されたエントリを、モジュール関連テーブル７００に追加し（ステップ５０９）、ステップ５１０の処理へ進む。【００８４】
マッチング部１３３は、エントリ群ＥＬ３の全てを選択し終えるまでステップ５０７〜５１０の処理を実行し、全てを選択し終えたたら、次のステップ５１１の処理へ進む（ステップ５１０）。【００８５】
マッチング部１３３は、エントリ群ＥＬ１の全てを選択し終えるまでステップ５０２〜５１１の処理を実行し、全てを選択し終えたら、本処理を終了する（ステップ５１１）。【００８６】
以上の処理により、モジュール関連テーブル７００が生成される。なお、モジュール１１１が何れのアプリケーションデータ１２２にアクセスしたかを含む情報（例えばモジュールアクセス履歴テーブル３００）と、モジュール１１１が何れのログデータ１２３を出力したかを含む情報とを、まとめてモジュール情報と呼んでもよい。また、分析ジョブ１０１が何れのアプリケーションデータ１２２にアクセスしたかを含む情報と、分析ジョブ１０１が何れのログデータ１２３にアクセスしたかを含む情報と、をまとめて分析情報（分析アクセス履歴テーブル３５０に相当）と呼んでもよい。【００８７】
図９は、分析画面８０１の例を示す。【００８８】
ユーザは、分析画面８０１を介して、ＫＰＩ８１０に算出したいＫＰＩ名を、対象データ８１１に分析対象のデータを、分析軸８１２に分析の目的種別を入力して、分析実行ボタン８１４をクリックしてよい。これにより、分析ミドルウェア１０２上に、その入力されたパラメータに対応する分析ジョブ１０１が生成および実行される。その実行結果は、例えばグラフとして、グラフ表示領域８１４に表示される。【００８９】
ユーザは、その分析結果が有意義であると判断した場合、モジュール特定実行ボタン８２２をクリックしてよい。これにより、モジュール特定部１３２及びマッチング部１３３が実行され、現在の分析ジョブ１０１のＫＰＩに影響を及ぼしているモジュールの一覧が抽出される。【００９０】
出力部１３４は、その抽出されたモジュールの一覧を、ＫＰＩ８１０に対する影響度（優先度）の高い順にモジュールリスト表示領域８２２に表示してよい。また、出力部１３４は、その抽出されたモジュールのトポロジーをモジュールトポロジ表示領域８２３に表示すると共に、影響度の高い（影響度が閾値以上である）モジュールに対してマーク８２４を付与してよい。【００９１】
モジュールの影響度は、マッチング種別７０３に基づいて決定されてよい。例えば、影響度の高い順に「Ｐ」、「Ｗ」、「Ｒ」であってよい。この場合、図８のモジュール関連テーブル７００において、マッチング種別７０３「Ｗ」を有するエントリ７０４の方が、マッチング種別７０３「Ｒ」のみのエントリ７０５よりも影響度が高いので、モジュールリスト表示領域８２２に、図９に示すように、モジュールＢ（モジュール管理ＩＤ７０２「ＩＤ００２」）、モジュールＡ（モジュール管理ＩＤ７０２「ＩＤ００３」）の順に表示されてよい。【００９２】
なお、複数のエントリが同一の影響度の場合、さらにデータアクセス頻度、データアクセス量などの情報を取得し、それらの値が大きい程、影響度が高いとしてもよい。【００９３】
本実施例によれば、ＫＰＩに対して影響度の比較的高いモジュールを、ユーザに提示することができる。ユーザは、この提示内容に基づいて、ＫＰＩを向上させるために優先的に修正すべきモジュールを絞り込むことができる。すなわち、ＫＰＩの改善を迅速に行うことができる。【００９４】
なお、ＫＰＩに影響を及ぼすモジュールを発見するためのデータは、アプリケーションデータ１２２、又は、ログデータ１２３に限られない。例えば、監視システムによって観測されるパフォーマンスデータ、又は、統計データも用いられてよい。この場合、監視対象モジュールに対する設定をログ収集設定テーブル２５０と同様に構成し、図８のステップ５１０の処理の後に、ステップ５０７からステップ５１０と同様の処理を実行してよい。【００９５】
本実施例では、同じデータにアクセスしているか否かを、データベースの同じテーブルにアクセスしているか否かによって判定している。また、データに対するアクセスパターンが同じであるか否かを、ＳＥＬＥＣＴ文において、同じデータに対して同じデータ項目でグループ化しているか（つまり、「ＧＲＯＵＰ  ＢＹ」に同じデータ項目が指定されているか）否かによって判定している。しかし、判定方法はこれらに限られない。【００９６】
例えば、同じデータにアクセスしているとは、所定の依存関係に基づいた一連のテーブル群にアクセスしていることであってもよいし、テーブルの特定のカラムにアクセスしていることであってもよい。【００９７】
例えば、データに対するアクセスパターンが同じであることは、グループ化されるデータ項目が完全に一致していることであってもよいし、グループ化されるデータ項目が日時、月、日など同系列（同類）であることであってもよい。
【実施例２】
【００９８】
実施例２は、複数のアプリケーションと、それに対する複数の分析ジョブが実行される環境において、モジュールの変更（修正）がＫＰＩの良化（向上）に寄与したか否かを判定する例である。この結果を用いることにより、同様の改善を行いたい場合に実績のある対策を提供することが可能となり、ＫＰＩの改善を迅速化できる。【００９９】
図１０は、実施例２に係るアプリケーション分析システム２の構成例を示す。【０１００】
アプリケーション分析システム２において、図１と同様の構成要素については、同一の参照符号を付して説明を省略する。【０１０１】
関連特定部１３０は、ＫＰＩ特定部９３２を有する。収集部１５０は、ＫＰＩ抽出部９０４を有する。記憶部１４１は、ＫＰＩ変化テーブル１１００（図１１参照）を有する。【０１０２】
ＫＰＩ特定部９３２は、ＫＰＩ値の向上に寄与したモジュール及びその修正内容を特定し、有効対策テーブル１２５０（図１３参照）を生成する。【０１０３】
ＫＰＩ抽出部９０４は、ＫＰＩ値の変化を、ＫＰＩ変化テーブル１１００に記録する。【０１０４】
図１１は、ＫＰＩ変化テーブル１１００の構成例である。【０１０５】
ＫＰＩ変化テーブル１１００は、データ項目として、日時１１０１、ＫＰＩ名１１０２、ＫＰＩ値１１０３を有してよい。【０１０６】
日時１１０１には、ＫＰＩ値１１０３が測定された日時又は期間が格納される。ＫＰＩ名１１０２には、測定されたＫＰＩの名称が格納される。ＫＰＩ値１１０３には、測定されたＫＰＩの値が格納される。同一のＫＰＩ名１１０２について日時１１０１の順にソートすることにより、ＫＰＩ値１１０３の変化がわかるようになる。【０１０７】
図１２は、実施例２に係るモジュール関連テーブル１２００の例である。【０１０８】
モジュール関連テーブル１２００は、データ項目として、分析ジョブＩＤ１２０１、モジュール管理ＩＤ１２０２、及び、マッチング種別１２０３を有してよい。これらのデータ項目に格納される値は、図６のモジュール管理テーブル７００と同様である。【０１０９】
図１２において、エントリ１２０４，１２０５は、図６のモジュール管理テーブル７００のエントリ７０４、７０５と同じであってよい。【０１１０】
エントリ１２０６は、図８のステップ５０４の処理において、図５の分析アクセス履歴テーブル３５０のエントリ３５５と、図４のモジュールアクセス履歴テーブル３００のエントリ３０８とのマッチングによって登録されたものであってよい。【０１１１】
エントリ１２０７は、図８のステップ５０４の処理において、図５の分析アクセス履歴テーブル３５０のエントリ３５５と、図４のモジュールアクセス履歴テーブル３００のエントリ３０９とのマッチングによって登録されたものであってよい。【０１１２】
エントリ１２０８は、図８のステップ５０８の処理において、図５の分析アクセス履歴テーブル３５０のエントリ３５６と、図３のログ収集設定テーブル２５０のエントリ２５７に対応するログデータとのマッチングによって登録されたものであってよい。【０１１３】
図１３は、有効対策テーブル１２５０の構成例である。【０１１４】
有効対策テーブル１２５０には、どのモジュールをどのように変更することが、ＫＰＩの向上に有効であるかを示す情報が格納される。【０１１５】
有効対策テーブル１２５０は、データ項目として、ＫＰＩ名１２５１、モジュール管理ＩＤ１２５２、モジュール名１２５３、及び、変更種別１２５４を有してよい。【０１１６】
ＫＰＩ名１２５１には、ＫＰＩの名称が格納される。【０１１７】
モジュール管理ＩＤ１２５２には、ＫＰＩ名１２５１のＫＰＩの向上に有効である修正に対応するモジュール管理ＩＤ２０２が格納される。【０１１８】
モジュール名１２５３には、アプリケーション変更履歴テーブル２００において、モジュール管理ＩＤ２５２と対応付けられているモジュール名２０３が格納される。【０１１９】
変更種別１２５４には、アプリケーション変更履歴テーブル２００において、モジュール管理ＩＤ２５２と対応付けられている変更種別２０４が格納される。【０１２０】
図１３の例は、ＫＰＩ名１２５１「再訪問率」を向上させるには、モジュール管理ＩＤ１２５２「ＩＤ０１０」において行われた、「モジュールＣ」（１２５３）のコード修正（１２５４）が有効である旨を示す。【０１２１】
図１４は、有効対策テーブル１２５０の生成処理の例を示すフローチャートである。【０１２２】
モジュール特定部１３２は、図７と同様の処理を実行し、ＥＬ１、ＥＬ２、ＥＬ３を抽出し、その抽出したエントリ群ＥＬ１、ＥＬ２、ＥＬ３を、マッチング部１３３に渡す。マッチング部１３３は、図８と同様の処理を実行し、モジュール関連テーブル１２００（図１２参照）を生成する（ステップ１００２）。【０１２３】
ＫＰＩ特定部９３２は、モジュール関連テーブル１２００のエントリから、マッチング種別１２０３「Ｐ」以外のエントリを除外する（ステップ１００３）。例えば、図１２のモジュール関連テーブル１２００においては、エントリ１２０４、１２０５及び１２０８が除外され、エントリ１２０６及び１２０７が残る。【０１２４】
ＫＰＩ特定部９３２は、ステップ１００３の処理後のモジュール関連テーブル１２００から、モジュール修正後から所定期間においてＫＰＩが向上していないエントリを除外する（ステップ１００４）。ＫＰＩ特定部９３２は、アプリケーション変更履歴テーブル２００を参照し、モジュール修正後から所定期間を算出してよい。ＫＰＩ特定部９３２は、ＫＰＩ変化テーブル１１００を参照し、モジュール修正後から所定期間において、ＫＰＩ値１１０３が向上しているか否かを判定してよい。例えば、図１２のモジュール関連テーブル１２００において、分析ジョブＩＤ１２０１「００２」及びモジュール管理ＩＤ１２０２「ＩＤ１０１」のエントリ１２０７に対応するＫＰＩ値１１０３が向上していない場合、当該エントリ１２０７は除外され、エントリ１２０６が残る。【０１２５】
ＫＰＩ特定部９３２は、上述の処理よって最終的に残ったエントリを含む有効対策テーブル１２５０を生成する（ステップ１００５）。【０１２６】
以上の処理によれば、有効対策テーブル１２５０をユーザに提供することができる。ユーザは、有効対策テーブル１２５０の内容から、モジュールの修正がＫＰＩの向上に寄与したか否かを容易に知ることができる。また、ユーザは、有効対策テーブル１２５０の内容から、所望のＫＰＩを向上させるには、どのモジュールを修正すれば良いかの目処を立てることができる。すなわち、ＫＰＩの改善を迅速に行うことができる。【０１２７】
上述した実施例は、本発明の説明のための例示であり、本発明の範囲を実施例にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。【０１２８】
実施例１と実施例２の内容は、どのように組み合わせてもよい。また、ＫＰＩはあくまで業務遂行に関する指標の一例であり、他のどのような指標であってもよい。
【符号の説明】
【０１２９】
１：アプリケーション分析システム  １００：実行装置  １６０：分析装置  １０１：分析ジョブ  １１１：モジュール  １３０：関連特定部  １４１：記憶部  １５０：収集部
【図１】
2017179163.tif 000003
【図２】
2017179163.tif 000004
【図３】
2017179163.tif 000005
【図４】
2017179163.tif 000006
【図５】
2017179163.tif 000007
【図６】
2017179163.tif 000008
【図７】
2017179163.tif 000009
【図８】
2017179163.tif 000010
【図９】
2017179163.tif 000011
【図１０】
2017179163.tif 000012
【図１１】
2017179163.tif 000013
【図１２】
2017179163.tif 000014
【図１３】
2017179163.tif 000015
【図１４】
2017179163.tif 000016
【国際調査報告】
2017179163.tif 000017
2017179163.tif 000018
2017179163.tif 000019
2017179163.tif 000020