(57)【要約】      （修正有）【課題】構成要素の整理・分析をより簡便に行う技術を提供する。【解決手段】構成要素分析装置であって、ジョブと、当該ジョブにおいて稼動するプログラムとが含まれる複数の構成要素について、第一の構成要素の稼動開始日時から稼動終了日時までの稼動時間帯が、前記第一の構成要素と異なる第二の前記構成要素の稼動開始日時から稼動終了日時までの時間帯に含まれる場合に、前記第一の構成要素は前記第二の構成要素との間で関連があると推定する。【選択図】図１
2014186668.tif 000002
【特許請求の範囲】
【請求項１】
複数の構成要素ごとの稼動開始日時と、稼動終了日時と、に基づき、前記複数の構成要素間に存在する関連を推定する関連推定部、
を備えることを特徴とする構成要素分析装置。
【請求項２】
請求項１に記載の構成要素分析装置であって、
前記構成要素には、ジョブと、当該ジョブにおいて稼動するプログラムと、が含まれる、
ことを特徴とする構成要素分析装置。
【請求項３】
請求項１または２に記載の構成要素分析装置であって、
前記関連推定部は、第一の前記構成要素の稼動開始日時から前記稼動終了日時までの稼動時間帯が、前記第一の構成要素と異なる第二の前記構成要素の稼動開始日時から稼動終了日時までの時間帯に含まれる場合に、前記第一の構成要素は前記第二の構成要素との間で関連があると推定する、
ことを特徴とする構成要素分析装置。
【請求項４】
請求項３に記載の構成要素分析装置であって、
前記関連推定部は、関連があると推定した構成要素の組み合わせについて、前記稼動開始日時の差および前記稼動終了日時の差が小さいほど、関連が大きいと推定する、
ことを特徴とする構成要素分析装置。
【請求項５】
請求項１〜４のいずれか一項に記載の構成要素分析装置であって、
前記関連が推定された構成要素について、グラフ情報を出力する出力部、
を備えることを特徴とする構成要素分析装置。
【請求項６】
請求項１〜５のいずれか一項に記載の構成要素分析装置であって、
前記構成要素には、ファイルが含まれ、
前記関連推定部は、前記ファイルの更新開始日時を前記稼動開始日時として扱い、前記ファイルの更新終了日時を前記稼動終了日時として扱う、
ことを特徴とする構成要素分析装置。
【請求項７】
請求項１〜６のいずれか一項に記載の構成要素分析装置であって、
前記構成要素ごとに、前記稼動開始日時と、前記稼動終了日時と、を特定する日時特定部と、
前記日時特定部により特定された前記稼動開始日時と、前記稼動終了日時と、を格納する記憶部を備える、
ことを特徴とする構成要素分析装置。
【請求項８】
請求項７に記載の構成要素分析装置であって、
前記構成要素にはプログラムが含まれ、
前記プログラムの実行状態を取得するプログラム実行状態取得部を備え、
前記日時特定部は、前記プログラム実行状態取得部から得た前記実行状態の変化から、前記稼動開始日時と前記稼動終了日時とを取得して特定する、
ことを特徴とする構成要素分析装置。
【請求項９】
コンピューターのジョブを構成する構成要素の分析方法であって、
前記コンピューターは、
複数の構成要素ごとの稼動開始日時と、稼動終了日時と、に基づき、前記複数の構成要素間に存在する関連を推定する関連推定ステップ、
を実施することを特徴とする構成要素分析方法。
【請求項１０】
コンピューターに、ジョブを構成する構成要素の分析手順を実行させるプログラムであって、
前記コンピューターを、制御手段として動作させ、
前記制御手段に対して、
複数の構成要素ごとの稼動開始日時と、稼動終了日時と、に基づき、前記複数の構成要素間に存在する関連を推定する関連推定手順、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構成要素分析処理の技術に関するものである。
【背景技術】
【０００２】
従来、バッチジョブについてのログデータを読み出してジョブ間の関係データを生成して因果関係を用いてジョブの終了時刻を予測する技術が存在する。特許文献１には、このような技術についての技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１１８７９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記技術では、一連のバッチジョブの動作中にその終了予定を予測して表示することができる。しかし、ジョブに関連するプログラムやスクリプト等を整理することはなく、大量のジョブが登録されているシステムのジョブの整理・分析の用途にはそれほど適さない。
【０００５】
本発明の目的は、構成要素の整理・分析をより簡便に行う技術を提供することにある。
【課題を解決するための手段】
【０００６】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。上記課題を解決すべく、本発明に係る構成要素分析装置は、複数の構成要素ごとの稼動開始日時と、稼動終了日時と、に基づき、前記複数の構成要素間に存在する関連を推定する関連推定部、を備えることを特徴とする。
【０００７】
また、上記の構成要素分析装置においては、前記構成要素には、ジョブと、当該ジョブにおいて稼動するプログラムと、が含まれる、ことを特徴とするものであってもよい。
【０００８】
また、上記の構成要素分析装置においては、前記関連推定部は、第一の前記構成要素の稼動開始日時から前記稼動終了日時までの稼動時間帯が、前記第一の構成要素と異なる第二の前記構成要素の稼動開始日時から稼動終了日時までの時間帯に含まれる場合に、前記第一の構成要素は前記第二の構成要素との間で関連があると推定する、ことを特徴とするものであってもよい。
【０００９】
また、上記の構成要素分析装置においては、前記関連推定部は、関連があると推定した構成要素の組み合わせについて、前記稼動開始日時の差および前記稼動終了日時の差が小さいほど、関連が大きいと推定する、ことを特徴とするものであってもよい。
【００１０】
また、上記の構成要素分析装置においては、前記関連が推定された構成要素について、グラフ情報を出力する出力部、を備えることを特徴とするものであってもよい。
【００１１】
また、上記の構成要素分析装置においては、前記構成要素には、ファイルが含まれ、前記関連推定部は、前記ファイルの更新開始日時を前記稼動開始日時として扱い、前記ファイルの更新終了日時を前記稼動終了日時として扱う、ことを特徴とするものであってもよい。
【００１２】
また、上記の構成要素分析装置においては、構成要素ごとに、稼動開始日時と、稼動終了日時と、を特定する日時特定部と、日時特定部により特定された稼動開始日時と、稼動終了日時と、を格納する記憶部を備える、ことを特徴とするものであってもよい。
【００１３】
また、上記の構成要素分析装置においては、構成要素にはプログラムが含まれ、プログラムの実行状態を取得するプログラム実行状態取得部を備え、日時特定部は、プログラム実行状態取得部から得た実行状態の変化から、稼動開始日時と稼動終了日時とを取得して特定する、ことを特徴とするものであってもよい。
【００１４】
また、本発明に係る分析方法は、コンピューターのジョブを構成する構成要素の分析方法であって、前記コンピューターは、複数の構成要素ごとの稼動開始日時と、稼動終了日時と、に基づき、前記複数の構成要素間に存在する関連を推定する関連推定ステップ、を実施することを特徴とする。
【００１５】
また、本発明に係るプログラムは、コンピューターに、ジョブを構成する構成要素の分析手順を実行させるプログラムであって、前記コンピューターを、制御手段として動作させ、前記制御手段に対して、複数の構成要素ごとの稼動開始日時と、稼動終了日時と、に基づき、前記複数の構成要素間に存在する関連を推定する関連推定手順、を実行させることを特徴とする。
【００１６】
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【発明の効果】
【００１７】
本発明によると、ジョブ等の構成要素の整理・分析をより簡便に行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係るバッチジョブ分析システムの構成例を示す図である。
【図２】サーバー装置の構成例を示す図である。
【図３】ジョブ登録情報記憶部に格納されるデータ構造を示す図である。
【図４】稼動情報記憶部に格納されるデータ構造を示す図である。
【図５】関連推定情報記憶部に格納されるデータ構造を示す図である。
【図６】サーバー装置のハードウェア構成を示す図である。
【図７】ジョブ定義取得処理フローを示す図である。
【図８】ジョブ稼動情報収集処理フローを示す図である。
【図９】プログラム稼動情報収集処理フローを示す図である。
【図１０】ファイル稼動情報収集処理フローを示す図である。
【図１１】関連推定処理フローを示す図である。
【図１２】関連推定処理の結果出力される画面例を示す図である。
【発明を実施するための形態】
【００１９】
以下に、本発明に係る第一の実施形態を適用したバッチジョブ分析システム１について、図面を参照して説明する。
【００２０】
図１は、本発明の第一の実施形態におけるバッチジョブ分析システム１の構成例を示す図である。バッチジョブ分析システム１には、ジョブ制御部１１と、プロセス実行制御部１２と、ファイル更新管理部１３と、稼動情報収集部１４と、関連推定部１５と、出力生成部１６と、が含まれる。
【００２１】
ジョブ制御部１１は、ジョブ定義ファイル１１Ａ等のジョブの設定情報を用いて、ジョブ実行時に実行するスクリプトやプログラム等のプロセスを指定する。すなわち、ジョブ制御部１１は、ジョブの実行を制御するいわゆるジョブコントローラである。
【００２２】
プロセス実行制御部１２は、ジョブ制御部１１にて指定されたプロセスに関するスクリプトファイル１２Ａと、スクリプトファイル１２Ａから呼び出されるプログラム１２Ｂと、の呼び出しを制御する。
【００２３】
ファイル更新管理部１３は、プロセス実行制御部１２にて呼び出されたスクリプトファイル１２Ａあるいはプログラム１２Ｂにより参照・更新・削除される業務データファイル１３Ａを管理する。
【００２４】
稼動情報収集部１４は、ジョブ制御部１１と、プロセス実行制御部１２と、業務データファイル１３Ａと、に係る稼動実績の情報を収集する。
【００２５】
関連推定部１５は、収集された稼動実績の情報を用いてジョブに関連するプログラムやスクリプトファイル、データファイルを推定する。
【００２６】
出力生成部１６は、関連が推定されるプログラムやスクリプトファイル、データファイルを関連付けて表示出力する情報を生成する。
【００２７】
ここで、大規模なシステムでは、多数のバッチ処理が存在し、システム運用を自動化するためジョブスケジューラが一般的に利用される。各バッチ処理は更に、ジョブ定義、スクリプトファイル、プログラム、ファイルの構成要素で成り立つことが多い。そのため、バッチ処理の構成要素は多数あり、その関係性も複雑になる。これらのシステムをシステムエンジニアが改造を行う場合や、運用管理者が障害の調査をする場合に、これら構成要素間の関連を把握する必要がある。
【００２８】
また、多くの場合、ジョブ定義の実行対象にスクリプトファイル（ＵＮＩＸ（登録商標）ではシェル、Ｗｉｎｄｏｗｓ（登録商標）ではバッチファイル）を設定し、スクリプトファイルの中で実行するプログラムを定義し、スクリプトファイルまたはプログラムの中で処理結果を出力するファイル（ファイル格納場所、ファイル名）を指定するのが一般的である。上記のようにシステムの構成要素が多段階の構成とされるのは、主に、各層での役割を分担させることで、システム変更に対する影響を局所化するためである。
【００２９】
例えば、大規模なシステムでは、ジョブスケジューラに登録されるジョブ定義が数百もしくはそれ以上になることもある。更に各バッチ処理が、ジョブ定義、スクリプトファイル、プログラム、ファイル等で成り立つため、全体として膨大な構成要素が存在する。これらのバッチ処理に対して、システム改造を行うような場合には、既存のバッチ処理の構成であるジョブ定義、スクリプトファイル、プログラム、ファイルの関係を正確に把握しておく必要がある。本来であれば、システムの設計書としてこれらの関係が整理されていることが理想であるが、設計書の記載誤りや記載漏れ、場合によっては設計書自体が存在しないこともある。その場合、エンジニアが稼動しているジョブ定義の内容を確認してスクリプトファイルを特定することや、更に、そのスクリプトファイルの内容を解析して実行しているプログラムを特定するようなことも行われがちである。更に、そのプログラムを解析して更新ファイルを特定することになるが、スクリプトやプログラムの解析には大変な労力がかかる。１つのジョブの整理だけでも手間が生じるが、その対象が複数存在するときは多大な労力が必要になる。
【００３０】
図２は、バッチジョブ分析システム１を実現する一例として挙げるサーバー装置１００の構成例である。バッチジョブ分析システム１を実現する方法としては、当該方法に限られず、例えばサーバー装置１００によらないパソコンやスマートフォン、ワークステーション等情報処理装置を用いるものであればよい。
【００３１】
サーバー装置１００は、制御部１１０と、記憶部１２０と、表示部１３０と、を備える。
【００３２】
制御部１１０には、ジョブ制御部１１１と、プロセス実行制御部１１２と、ファイル更新管理部１１３と、稼動情報収集部１１４と、関連推定部１１５と、出力生成部１１６と、が含まれる。また、記憶部１２０には、ジョブ登録情報記憶部１２１と、モジュール記憶部１２２と、業務データ記憶部１２３と、稼動情報記憶部１２４と、関連推定情報記憶部１２５と、が格納される。
【００３３】
図３は、ジョブ登録情報記憶部１２１のデータ構造の例を示す図である。ジョブ登録情報記憶部１２１には、ジョブセットＩＤ１２１Ａと、ジョブＩＤ１２１Ｂと、実行対象１２１Ｃと、実行サーバー１２１Ｄと、実行時刻１２１Ｅと、が含まれる。
【００３４】
ジョブセットＩＤ１２１Ａには、一つまたは複数のジョブを含む実行単位であるジョブセットを識別する情報が格納される。
【００３５】
ジョブＩＤ１２１Ｂには、実行単位となるジョブを識別する情報が格納される。
【００３６】
実行対象１２１Ｃには、ジョブＩＤ１２１Ｂで識別されるジョブにおいて実行させる対象となるスクリプトファイルあるいはプログラムを識別する情報が格納される。
【００３７】
実行サーバー１２１Ｄには、ジョブＩＤ１２１Ｂで識別されるジョブを実行する処理主体となるサーバーを識別する情報が格納される。
【００３８】
実行時刻１２１Ｅには、ジョブＩＤ１２１Ｂで識別されるジョブを実行する日時を特定する情報が格納される。
【００３９】
図４は、稼動情報記憶部１２４のデータ構造の例を示す図である。稼動情報記憶部１２４には、構成識別子１２４Ａと、構成要素１２４Ｂと、名称１２４Ｃと、開始日時１２４Ｄと、終了日時１２４Ｅと、実行サーバー１２４Ｆと、ジョブ定義１２４Ｇと、が含まれる。
【００４０】
構成識別子１２４Ａには、バッチジョブ分析システム１において取り扱われる対象となるジョブ、スクリプトファイルあるいはプログラム、業務データファイルを識別する情報が格納される。
【００４１】
構成要素１２４Ｂには、構成識別子１２４Ａにより識別される構成が、ジョブ、スクリプトファイルあるいはプログラム、業務データファイルのいずれの要素であるのかを識別する情報が格納される。
【００４２】
名称１２４Ｃには、構成識別子１２４Ａにより識別される構成が有する名称を識別する情報が格納される。例えば、ファイル名や、スクリプトファイル名、プログラムファイル名等である。
【００４３】
開始日時１２４Ｄには、構成識別子１２４Ａにより識別される構成が実行を開始した日時あるいは業務データファイルについては更新が開始された日時を特定する情報が格納される。
【００４４】
終了日時１２４Ｅには、構成識別子１２４Ａにより識別される構成が実行を終了した日時あるいは業務データファイルについては更新を終了した日時を特定する情報が格納される。
【００４５】
実行サーバー１２４Ｆには、構成識別子１２４Ａにより識別される構成が実行されたサーバーあるいはそのサーバーを実装するハードウェアを特定する情報が格納される。
【００４６】
ジョブ定義１２４Ｇには、構成識別子１２４Ａにより識別される構成が属するジョブを特定する情報が格納される。
【００４７】
図５は、関連推定情報記憶部１２５のデータ構造の例を示す図である。関連推定情報記憶部１２５には、構成識別子１２５Ａと、構成要素１２５Ｂと、名称１２５Ｃと、の組み合わせに応じて、ジョブ定義１２５Ｄと、関連度１２５Ｅと、が対応付けられて格納される。
【００４８】
構成識別子１２５Ａには、バッチジョブ分析システム１において取り扱われる対象となるジョブ、スクリプトファイルあるいはプログラム、業務データファイルを識別する情報が格納される。
【００４９】
構成要素１２５Ｂには、構成識別子１２５Ａにより識別される構成が、ジョブ、スクリプトファイルあるいはプログラム、業務データファイルのいずれの要素であるのかを識別する情報が格納される。
【００５０】
名称１２５Ｃには、構成識別子１２５Ａにより識別される構成が有する名称を識別する情報が格納される。例えば、ファイル名や、スクリプトファイル名、プログラムファイル名等である。
【００５１】
ジョブ定義１２５Ｄには、構成識別子１２５Ａにより識別される構成が属するジョブを識別する情報が格納される。
【００５２】
関連度１２５Ｅには、構成識別子１２５Ａにより識別される構成がジョブ定義１２５Ｄで識別されるジョブと関連する度合いである関連度が格納される。
【００５３】
図２に説明を戻す。ジョブ制御部１１１は、上記した図１のジョブ制御部１１に相当するジョブコントローラである。ジョブ制御部１１１は、記憶部１２０のジョブ登録情報記憶部１２１に格納されたジョブＩＤで識別されるジョブごとの実行対象を、実行サーバーにて、実行時刻に実行させる。すなわち、ジョブ制御部１１１は、ジョブの起動命令を発する。
【００５４】
プロセス実行制御部１１２は、上記した図１のプロセス実行制御部１２に相当する。プロセス実行制御部１１２は、ジョブ制御部１１１から起動命令を受け付けると、実行対象として指定されたスクリプトファイルあるいはプログラムを記憶部１２０に格納されたモジュール記憶部１２２から特定し、起動させる。また、プロセス実行制御部１１２は、スクリプトファイル内でプログラムの起動命令があれば、該当するプログラムを起動させる。また、プロセス実行制御部１１２は、プログラムの実行状態を取得する。なお、モジュール記憶部１２２には、スクリプトファイル、プログラム等の実行対象が実行可能に格納される。
【００５５】
ファイル更新管理部１１３は、上記した図１のファイル更新管理部１３に相当する。ファイル更新管理部１１３は、プロセス実行制御部１１２により起動されたスクリプトファイルおよびプログラムから参照され、更新され、削除される業務データファイル１３Ａに対しての操作を制御する。また、ファイル更新管理部１１３は、業務データファイル１３Ａに対するファイル操作の開始／終了についても制御する。なお、業務データ記憶部１２３には、業務データ１３Ａ等の管理対象のデータファイルが格納される。
【００５６】
稼動情報収集部１１４は、上記した図１の稼動情報収集部１４に相当する。稼動情報収集部１１４は、ジョブ制御部１１１と、プロセス実行制御部１１２と、のそれぞれから、ジョブの開始／終了、スクリプトファイル又はプログラムの開始／終了、業務データファイル１３Ａに対して更新開始／終了の情報を収集する。
【００５７】
関連推定部１１５は、上記した図１の関連推定部１５に相当する。関連推定部１１５は、稼動情報収集部１１４が収集した実行開始／終了の情報および更新開始／終了の情報を用いて、主に時刻の近さから構成要素とジョブとの関連度を算出し、関連度の高いジョブを構成要素に関連のあるジョブとして特定する。
【００５８】
出力生成部１１６は、ジョブごとに、関連推定部１１５が特定した関連のある構成要素を関連づけてグラフ化する画面情報を生成する。
【００５９】
表示部１３０は、ディスプレイやプリンタ等の画像出力装置に対する出力依頼を受け付けると、出力を依頼された画面情報を画像出力装置へ出力する。
【００６０】
以上が、サーバー装置１００の構成である。なお、特に図示しないが、サーバー装置１００は、一般的なコンピューターとしての動作を行うことが可能である。すなわち、サーバー装置１００は、操作者によるキーボードあるいはマウス、タッチパネル、タッチペン等を介した入力を受け付けて、ディスプレイ等へ出力を行うことができる。
【００６１】
図６は、サーバー装置１００のハードウェア構成例を示す図である。サーバー装置１００は、演算装置１０２と、外部記憶装置１０３と、主記憶装置１０４と、出力装置１０５と、各装置をつなぐバス１０６と、を少なくとも備える。また、他に、サーバー装置１００は、キーボード、マウスといった入力装置１０１を備えるものであってもよい。
【００６２】
演算装置１０２は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置である。
【００６３】
外部記憶装置１０３は、デジタル情報を記憶可能な、いわゆるハードディスク（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）あるいはフラッシュメモリなどの不揮発性記憶装置である。
【００６４】
主記憶装置１０４は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリ装置である。
【００６５】
出力装置１０５は、例えば液晶ディスプレイや、有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等の表示装置である。
【００６６】
入力装置１０１は、キーボードやマウス、タッチパネル等の各種入力装置である。
【００６７】
入力装置１０１と、演算装置１０２と、外部記憶装置１０３と、主記憶装置１０４と、出力装置１０５とは、バス１０６等の接続導線により互いに接続される。
【００６８】
上記したサーバー装置１００のジョブ制御部１１１、プロセス実行制御部１１２、ファイル更新管理部１１３、稼動情報収集部１１４、関連推定部１１５、出力生成部１１６は、演算装置１０２に処理を行わせるプログラムによって実現される。このプログラムは、主記憶装置１０４、外部記憶装置１０３または図示しないＲＯＭ装置内に記憶され、実行にあたって主記憶装置１０４上にロードされ、演算装置１０２により実行される。
【００６９】
また、サーバー装置１００の記憶部１２０は、主記憶装置１０４及び外部記憶装置１０３により実現される。また、表示部１３０は、出力装置１０５により実現される。以上が、サーバー装置１００のハードウェア構成例である。
【００７０】
[動作の説明]次に、本実施形態におけるサーバー装置１００の動作を説明する。図７は、本実施形態におけるサーバー装置１００が実施するジョブ定義取得処理のフロー図である。
【００７１】
ジョブ定義取得処理は、サーバー装置１００が稼動を開始しジョブ定義取得処理の開始の指示を受け付けると、開始される。
【００７２】
まず、稼動情報収集部１１４は、ジョブ制御部１１１のジョブ定義と、当該ジョブで実行するスクリプトファイルを特定する（ステップＳ００１）。具体的には、稼動情報収集部１１４は、ジョブ登録情報記憶部１２１を参照して、ジョブＩＤ１２１Ｂごとに、ジョブセットＩＤ１２１ＡとジョブＩＤ１２１Ｂとを文字列結合させた情報と、実行対象１２１Ｃの情報と、実行サーバー１２１Ｄの情報とを読み出す。
【００７３】
そして、稼動情報収集部１１４は、読み出したジョブＩＤ１２１Ｂごとに、稼動情報記憶部１２４に、構成要素を「ジョブ定義」とするレコードを追加し、当該レコードの「構成識別子」と、「名称」と、「実行サーバー」と、「ジョブ定義」と、にそれぞれ、ジョブ登録情報の該当する情報を格納する（ステップＳ００２）。具体的には、稼動情報収集部１１４は、読み出したジョブＩＤ１２１Ｂごとに、稼動情報記憶部１２４の構成要素１２４Ｂに「ジョブ定義」を指定したレコードを格納する。そして、稼動情報収集部１１４は、追加したレコードの構成識別子１２４ＡにジョブセットＩＤ１２１ＡとジョブＩＤ１２１Ｂとを文字列結合させた情報を格納する。そして、稼動情報収集部１１４は、追加したレコードの名称１２４ＣにジョブＩＤ１２１Ｂの情報を格納する。そして、稼動情報収集部１１４は、追加したレコードの実行サーバー１２４Ｆに実行サーバー１２１Ｄの情報を格納する。そして、稼動情報収集部１１４は、追加したレコードのジョブ定義１２４ＧにジョブセットＩＤ１２１ＡとジョブＩＤ１２１Ｂとを文字列結合させた情報を格納する。
【００７４】
次に、稼動情報収集部１１４は、読み出したジョブＩＤ１２１Ｂにおいて呼び出されるスクリプトファイルごとに、稼動情報記憶部１２４に、構成要素を「スクリプトファイル」とするレコードを追加し、当該レコードの「構成識別子」と、「名称」と、「実行サーバー」と、「ジョブ定義」と、にそれぞれ、スクリプトファイルの該当する情報を格納する（ステップＳ００３）。具体的には、稼動情報収集部１１４は、読み出したジョブＩＤ１２１Ｂにおいて呼び出されるスクリプトファイルごとに、稼動情報記憶部１２４の構成要素１２４Ｂに「スクリプトファイル」を指定したレコードを格納する。そして、稼動情報収集部１１４は、追加したレコードの構成識別子１２４ＡにジョブセットＩＤ１２１ＡとジョブＩＤ１２１Ｂと実行対象１２１Ｃとを文字列結合させた情報を格納する。そして、稼動情報収集部１１４は、追加したレコードの名称１２４Ｃに実行対象１２１Ｃの情報を格納する。そして、稼動情報収集部１１４は、追加したレコードの実行サーバー１２４Ｆに実行サーバー１２１Ｄの情報を格納する。そして、稼動情報収集部１１４は、追加したレコードのジョブ定義１２４ＧにジョブセットＩＤ１２１ＡとジョブＩＤ１２１Ｂとを文字列結合させた情報を格納する。
【００７５】
以上が、ジョブ定義取得処理である。ジョブ定義取得処理によれば、登録されているジョブごとのレコードと、ジョブから呼び出される実行対象のスクリプトファイルごとのレコードとが、稼動情報記憶部１２４に格納される。
【００７６】
図８は、本実施形態におけるサーバー装置１００が実施するジョブ稼動情報収集処理のフロー図である。
【００７７】
ジョブ稼動情報収集処理は、サーバー装置１００が稼動を開始しジョブ稼動情報収集処理の開始の指示を受け付けると、開始される。
【００７８】
まず、稼動情報収集部１１４は、ジョブ制御部１１１の稼動結果情報を読み取り、稼動したジョブと、その実行開始日時と、終了日時と、実行サーバーと、を特定する（ステップＳ１０１）。具体的には、稼動情報収集部１１４は、ジョブ制御部１１１のログ情報等を参照するか、ジョブ制御部に実行結果の問い合わせを行い、該当する情報を特定する。
【００７９】
そして、稼動情報収集部１１４は、稼動情報記憶部１２４の該当するジョブのレコードについて、開始日時と、終了日時と、実行サーバーと、を格納する（ステップＳ１０２）。具体的には、稼動情報収集部１１４は、稼動情報記憶部１２４から、ステップＳ１０１において特定したジョブのジョブセットＩＤ１２１ＡとジョブＩＤ１２１Ｂとを文字列結合させた情報を構成識別子１２４Ａに有し、構成要素１２４Ｂが「ジョブ定義」であるレコードを特定し、開始日時と、終了日時と、実行サーバーと、をそれぞれ開始日時１２４Ｄ、終了日時１２４Ｅ、実行サーバー１２４Ｆに格納する。
【００８０】
なお、該当するジョブのレコードに既に開始日時と、終了日時と、実行サーバーと、が格納されている場合には、稼動情報収集部１１４は、当該ジョブのレコードをコピーして、開始日時と、終了日時と、実行サーバーと、の情報を変更した新たなレコードとして稼動情報記憶部１２４に追加する。
【００８１】
以上が、ジョブ稼動情報収集処理である。ジョブ稼動情報収集処理によれば、登録されているジョブごとの稼動実績の情報が、稼動情報記憶部１２４に格納される。
【００８２】
図９は、本実施形態におけるサーバー装置１００が実施するプログラム稼動情報収集処理のフロー図である。
【００８３】
プログラム稼動情報収集処理は、サーバー装置１００が稼動を開始しプログラム稼動情報収集処理の開始の指示を受け付けると、開始される。
【００８４】
まず、稼動情報収集部１１４は、実行中のプログラム（スクリプトファイルを含む）を特定する情報を読み取り、読み取った日時と、読み取ったサーバーと、を特定する（ステップＳ２０１）。具体的には、稼動情報収集部１１４は、プロセス実行制御部１２に対して、現在実行中のプロセスを表示させる命令を行い、プロセスのリストを得る。例えば、ＵＮＩＸＯＳ系では、「ＰＳ」コマンド等を発行した結果を得る。
【００８５】
そして、稼動情報収集部１１４は、前回特定時の実行中のプログラムから追加されたプログラムについて、読み取った日時を開始日時とし、読み取ったサーバーを実行サーバーとして、稼動情報記憶部１２４に格納する（ステップＳ２０２）。具体的には、稼動情報収集部１１４は、前回特定時に実行中としてリストされたプロセスのリストと、ステップＳ２０１にて今回特定時に実行中としてリストされたプロセスのリストを比較して、同一名称のプロセスを除外し、前回特定時に実行中としてリストされたプロセスのリストに含まれておらず、ステップＳ２０１にて今回特定時に実行中としてリストされたプロセスを特定する。そして、稼動情報収集部１１４は、特定したプロセスについて、構成要素１２４Ｂに「プログラム」を設定し、稼動情報記憶部１２４の名称１２４Ｃにプロセス名を設定した新たなレコードを格納し、開始日時１２４Ｄに今回特定時に読み取った日時を格納する。また、稼動情報収集部１１４は、当該レコードについて、読み取った実行サーバーの名称を実行サーバー１２４Ｆに格納する。
【００８６】
そして、稼動情報収集部１１４は、前回特定時の実行中のプログラムから消滅したプログラムについて、読み取った日時を終了日時として、稼動情報記憶部１２４に格納する（ステップＳ２０３）。具体的には、稼動情報収集部１１４は、前回特定時に実行中としてリストされたプロセスのリストと、ステップＳ２０１にて今回特定時に実行中としてリストされたプロセスのリストを比較して、同一名称のプロセスを除外し、前回特定時に実行中としてリストされたプロセスのリストに含まれていて、ステップＳ２０１にて今回特定時に実行中としてリストされなかったプロセスを特定する。そして、稼動情報収集部１１４は、特定したプロセスの名称が稼動情報記憶部１２４の名称１２４Ｃに設定されたレコードを特定し、終了日時１２４Ｅに今回特定時に読み取った日時を格納する。
【００８７】
そして、稼動情報収集部１１４は、所定時間、処理を中断する（ステップＳ２０４）。具体的には、稼動情報収集部１１４は、例えば１秒間計時し、１秒経過後に制御をステップＳ２０１に戻す。
【００８８】
以上が、プログラム稼動情報収集処理である。プログラム稼動情報収集処理によれば、所定の間隔で稼動中のプロセスを特定し、追加されたプロセスを開始されたプログラム、削除されたプロセスを終了したプログラムとして取り扱うことで、プログラムの稼動の開始終了日時を記録しうる。
【００８９】
図１０は、本実施形態におけるサーバー装置１００が実施するファイル稼動情報収集処理のフロー図である。
【００９０】
ファイル稼動情報収集処理は、サーバー装置１００が稼動を開始しファイル稼動情報収集処理の開始の指示を受け付けると、開始される。
【００９１】
まず、稼動情報収集部１１４は、稼動監視対象のファイルごとにファイルの編集開始日時と、編集終了日時と、を取得し、取得した日時と、取得したサーバーと、を特定する（ステップＳ３０１）。具体的には、稼動情報収集部１１４は、ファイル更新管理部１３に対して、現在監視中のファイルの属性を表示させる命令を行い、ファイル属性のリストを得る。
【００９２】
そして、稼動情報収集部１１４は、前回特定時から編集開始日時が更新されたファイルについて、取得した日時を開始日時とし、取得したサーバーを実行サーバーとして、稼動情報記憶部１２４に格納する（ステップＳ３０２）。具体的には、稼動情報収集部１１４は、前回特定時のファイルの編集開始日時と、ステップＳ２０１にて今回特定時にリストされたファイルの編集開始日時を比較して、編集開始日時が変更されたファイルを特定する。そして、稼動情報収集部１１４は、特定したファイルについて、構成要素１２４Ｂに「ファイル」を設定し、稼動情報記憶部１２４の名称１２４Ｃにファイル名を設定した新たなレコードを格納し、開始日時１２４Ｄに今回特定時に取得した日時を格納する。また、稼動情報収集部１１４は、当該レコードについて、読み取った実行サーバーの名称を実行サーバー１２４Ｆに格納する。
【００９３】
そして、稼動情報収集部１１４は、前回特定時から編集終了日時が更新されたファイルについて、取得した日時を終了日時として、稼動情報記憶部１２４に格納する（ステップＳ３０３）。具体的には、稼動情報収集部１１４は、前回特定時のファイルの編集終了日時と、ステップＳ３０１にて今回特定時にリストされたファイルの編集終了日時を比較して、編集終了日時が変更されたファイルを特定する。そして、稼動情報収集部１１４は、特定したファイルの名称が稼動情報記憶部１２４の名称１２４Ｃに設定されたレコードを特定し、終了日時１２４Ｅに今回特定時に取得した日時を格納する。
【００９４】
そして、稼動情報収集部１１４は、所定時間、処理を中断する（ステップＳ３０４）。具体的には、稼動情報収集部１１４は、例えば１秒間計時し、１秒経過後に制御をステップＳ３０１に戻す。
【００９５】
以上が、ファイル稼動情報収集処理である。ファイル稼動情報収集処理によれば、所定の間隔で監視対象のファイルを特定し、更新開始日時が変更されたファイルを編集が開始されたファイル、更新終了日時が変更されたファイルを編集が終了したファイルとして取り扱うことで、ファイルの稼動の開始終了日時を記録しうる。
【００９６】
図１１は、本実施形態におけるサーバー装置１００が実施する関連推定処理のフロー図である。
【００９７】
関連推定処理は、サーバー装置１００が稼動を開始し関連推定処理の開始の指示を受け付けると、開始される。
【００９８】
まず、関連推定部１１５は、稼動情報記憶部１２４の構成要素１２４Ｂが「プログラム」又は「ファイル」であるレコードを、名称の順に整列して取得する（ステップＳ４０１）。
【００９９】
そして、関連推定部１１５は、取得したレコードのそれぞれについて、構成要素が「ジョブ定義」であるレコードであって、取得したレコードの開始日時よりも早い開始日時かつ取得したレコードの終了日時よりも遅い終了日時が格納されているレコードを一つ以上特定する（ステップＳ４０２）。すなわち、関連推定部１１５は、取得したレコードの稼動時間帯がすべて含まれるジョブ定義のレコードを一つ以上特定する。
【０１００】
そして、関連推定部１１５は、特定した一つ以上のレコードとの間で、開始日時および終了日時のそれぞれについて差異の大きさを特定する（ステップＳ４０３）。具体的には、関連推定部１１５は、ステップＳ４０２にて特定した「ジョブ定義」のレコードごとに、開始日時の差と終了日時の差を算出して両差を合算する。
【０１０１】
そして、関連推定部１１５は、取得したレコードのうち名称１２４Ｃが互いに同一のレコードについて、それぞれ特定した一つ以上のレコードのジョブ定義１２４Ｇごとに、日時の差異の大きさの平均を求め、平均に基づいて関連度合いを算出する（ステップＳ４０４）。具体的には、関連推定部１１５は、ステップＳ４０１で取得したレコードのうち名称１２４Ｃが互いに同一のレコードについて、ジョブ定義ごとに、ステップＳ４０３で算出した日時の差異の大きさの平均を求め、平均に基づいて関連度合いを算出する。なお、算出する関連度合いは、開始日時と終了日時の差異の合計が「０」となる場合に「１００」等の最大値をとり、両差の合計が無限大となる場合に「０」等の最小値をとるようノーマライズされるのが望ましい。そして、レコードごとの差異の大きさの指標値の平均値を算出する。なお、平均値は、相加平均、相乗平均であってもよい。また、平均値ではなく、中央値や偏差値等の数値であってもよい。
【０１０２】
そして、関連推定部１１５は、関連度合いを算出したジョブ定義１２４Ｇについて、関連度合いが大きい順を特定し、関連推定情報記憶部１２５に、ジョブ定義１２５Ｄと関連度１２５Ｅとを格納する（ステップＳ４０５）。すなわち、関連推定部１１５は、スクリプトファイルやプログラムを含むプロセスおよびファイルについて、関連度合いが高いと推定される順にジョブを関連推定情報記憶部１２５に記憶させる。
【０１０３】
以上が、関連推定処理である。関連推定処理によれば、プログラム等のモジュールと、業務データファイルと、ジョブとの関連性が、実行された日時の近さに応じて客観的に数値化されるため、実際に稼動したジョブに基づく確実性の高い関連付けを行うことができる。また、関連推定処理によれば、関連があると推定された構成要素の組み合わせについて、前記稼動開始日時の差および前記稼動終了日時の差が小さいほど、関連が大きいと推定される。例えば、バッチジョブが数百を超えるような大規模なバッチシステムについて容易にモジュールの関連性を整理することができるといえる。そのため、エラー発生時の影響範囲の切り分けや、改造範囲の整理に有効活用できる。また、バッチジョブの設計資料が逸失して入手できないようなシステムであっても、実際の稼動環境から直接的にアプリケーションの呼び出し関係の概要を推測することができるといえる。また、業務データファイルの更新開始日時については、稼動開始日時として扱い、ファイルの更新終了日時を稼動終了日時として扱われている。
【０１０４】
図１２は、関連推定処理により格納された関連度に応じて、ジョブ、スクリプトファイル、プログラム、業務データファイルを整理して出力する画面であるジョブ構成要素関連性推定結果表示３００の画面の例である。
【０１０５】
ジョブ構成要素関連性推定結果表示３００は、当該画面がジョブ構成要素関連性推定結果表示を行う画面であることを示すタイトル表示領域３１０と、当該画面で表示するジョブが実行されるサーバーを表示するサーバー表示領域３１１と、ジョブ、スクリプトファイル、プログラム、業務データファイルの関連を図示するグラフ表示領域３２０と、を含む。
【０１０６】
グラフ表示領域３２０は、出力生成部１６により生成された画面表示の情報である。グラフ表示領域３２０には、ジョブ、スクリプトファイル、プログラム、業務データファイルの利用関係をノードと矢印で示すグラフが表示される。当該グラフにおいては、構成要素３２１ごとにノードが表示され、ノードにより利用される他の構成要素を示すノードが矢印３２２でつなげられる。また、ノードには、構成要素の名称３２１Ａと、ジョブとの関連度３２１ｂとが含められて表示される。なお、構成要素が複数の構成要素を直接利用する場合には、矢印は分岐されて表示される。
【０１０７】
以上が、ジョブ構成要素関連性推定結果表示３００の出力画面例である。
【０１０８】
以上、本発明の第一の実施形態を適用したバッチジョブ分析システム１について説明した。当該実施形態によると、ジョブの整理・分析をより簡便に行うことができる。
【０１０９】
本発明は、上記の第一の実施形態に制限されない。上記の第一の実施形態は、本発明の技術的思想の範囲内で様々な変形が可能である。例えば、上記の第一の実施形態においては、サーバー装置１００は自装置上のスクリプトファイル、プログラム、業務データファイルの利用関係を対象として分析する例を示しているが、これに限られず、他のサーバー装置に係るこれらの利用関係を分析するようにしてもよい。このようにすることで、より多様なバッチシステムの分析をも行うことができるといえる。
【０１１０】
また、上記した実施形態の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウェア部品のような複数の部分に分けられて適用されるようにしてもよい。
【０１１１】
以上、本発明について、実施形態を中心に説明した。
【符号の説明】
【０１１２】
１・・・バッチジョブ分析システム、１１、１１１・・・ジョブ制御部、１２、１１２・・・プロセス実行制御部、１３、１１３・・・ファイル更新管理部、１４、１１４・・・稼動情報収集部、１５、１１５・・・関連推定部、１６、１１６・・・出力生成部、１００・・・サーバー装置、１１０・・・制御部、１２０・・・記憶部、１３０・・・出力部
【図１】
2014186668.tif 000003
【図２】
2014186668.tif 000004
【図３】
2014186668.tif 000005
【図４】
2014186668.tif 000006
【図５】
2014186668.tif 000007
【図６】
2014186668.tif 000008
【図７】
2014186668.tif 000009
【図８】
2014186668.tif 000010
【図９】
2014186668.tif 000011
【図１０】
2014186668.tif 000012
【図１１】
2014186668.tif 000013
【図１２】
2014186668.tif 000014