(57)【要約】      （修正有）【課題】時間経過とともに順次受け付けたログデータ列をバッチ処理する場合であって、一連のログが複数のバッチデータに渡る場合であっても、デバッグの結果が誤ったものとなることを抑制する情報処理プログラム、情報処理装置及びデバッグシステムを提供する。【解決手段】デバッグ装置は、デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次受け付けて、予め定めた範囲のログをバッチ処理する処理中バッチデータとし、処理中バッチデータをグループ化して、グループ化されたログの集合が条件を満たしていない場合に、当該グループを未完了の状態として記録するとともに、新たな処理中バッチデータと未完了のグループとの間に共通するグループが存在する場合、未完了のグループのログデータを新たな処理データに加える。【選択図】図１１
2019133497.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、
前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、
前記グループ化手段によってグループ化されたログの集合が完了の条件を満たしていない場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、
前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段として機能させるための情報処理プログラム。
【請求項２】
前記グループ処理手段は、前記未完了結果にタイムアウト時刻を設定して記録する請求項１に記載の情報処理プログラム。
【請求項３】
グループ処理手段は、前記グループ化手段がグループ化したログの集合が完了の条件を満たした場合、当該グループを処理して完了結果として保存し、
前記コンピュータを、
前記未完了結果のうち、前記タイムアウト時刻を経過した未完了結果と、前記完了結果とをデバッグの結果として出力する結果出力手段としてさらに機能させる請求項２に記載の情報処理プログラム。
【請求項４】
デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、
前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、
前記グループ化手段によってグループ化されたログの集合が完了の条件を満たしていない場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、
前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段とを有する情報処理装置。
【請求項５】
前記グループ処理手段は、前記未完了結果にタイムアウト時刻を設定して記録する請求項４に記載の情報処理装置。
【請求項６】
グループ処理手段は、前記グループ化手段がグループ化したログの集合が完了の条件を満たした場合、当該グループを処理して完了結果として保存し、
前記コンピュータを、
前記未完了結果のうち、前記タイムアウト時刻を経過した未完了結果と、前記完了結果とをデバッグの結果として出力する結果出力手段としてさらに機能させる請求項４に記載の情報処理装置。
【請求項７】
デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次出力するデバッグ対象装置と、
前記デバッグ対象装置から受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、前記グループ化手段によってグループ化されたログの集合が完了の条件を満たしていない場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段とを有する情報処理装置とから構成されるデバッグシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置及びデバッグシステムに関する。
【背景技術】
【０００２】
アプリケーション等のプログラムをデバッグするには、アプリケーションを実行することで生じるイベントを時間経過に沿って記録される履歴（以下、「ログ」ともいう。）を収集し、アプリケーションがある動作を実行することによって記録されるひとまとまりのログ（ログの「グループ」ともいう。）を分析処理する必要がある。
【０００３】
従来の技術として、イベントの成立条件を判断する必要があるプログラムに関して自動でデバッグを行う情報処理装置が提案されている（例えば、特許文献１参照）。
【０００４】
特許文献１に開示された情報処理装置は、受け付けたコマンドに、イベントに関するバッチ記述が含まれているかどうかをイベント検出器において判断し、イベント検出器がイベントの存在を検出した場合に当該イベントの成立を示すための成立フラグをＯＮとし、成立フラグがＯＮである場合にイベント成立時のバッチ処理をイベント情報解析手段が実行することで、自動でプログラムのデバッグを行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００‐２９３３９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１の情報処理装置は、コマンドにイベントに関するバッチ記述が含まれる場合にデバッグを自動化するものの、コマンドを実行して動作した結果記録されるログを一つのまとまりとしてバッチ処理する場合のみを前提としており、ログを複数に分けて処理するような場合を想定していない。また、複数種類の動作を構成するデータが順不同で実行されて、その結果記録される複数種類のログをバッチ処理するような状況は想定されていない。つまり、複数種類のアプリケーションやサービスを動作させ、これらからログを時間経過に沿って受け付けて、複数種類のグループのログを含むある期間のデータをバッチ処理するような状況において、あるグループのログが複数のバッチ処理の単位に渡って含まれるような場合は、特許文献１の情報処理装置は、バッチ処理の単位においてはデータが不完全であるためデバッグの結果、未完了のログの集合として扱ってしまい、又はエラーと判断してしまい、正しくデバッグを行えない、という問題がある。
【０００７】
従って本発明の目的は、時間経過とともに順次受け付けたログデータ列をバッチ処理する場合であって、一連のログが複数のバッチデータに渡る場合であっても、デバッグの結果が誤ったものとなることを抑制する情報処理プログラム、情報処理装置及びデバッグシステムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一態様は、上記目的を達成するため、以下の情報処理プログラム、情報処理装置及びデバッグシステムを提供する。
【０００９】
［１］コンピュータを、
デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、
前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、
前記グループ化手段によってグループ化されたログの集合が完了の条件を満たしていない場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、
前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段として機能させるための情報処理プログラム。
［２］前記グループ処理手段は、前記未完了結果にタイムアウト時刻を設定して記録する前記［１］に記載の情報処理プログラム。
［３］グループ処理手段は、前記グループ化手段がグループ化したログの集合が完了の条件を満たした場合、当該グループを処理して完了結果として保存し、
前記コンピュータを、
前記未完了結果のうち、前記タイムアウト時刻を経過した未完了結果と、前記完了結果とをデバッグの結果として出力する結果出力手段としてさらに機能させる前記［２］に記載の情報処理プログラム。
［４］デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、
前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、
前記グループ化手段によってグループ化されたログの集合が完了の条件を満たしていない場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、
前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段とを有する情報処理装置。
［５］前記グループ処理手段は、前記未完了結果にタイムアウト時刻を設定して記録する前記［４］に記載の情報処理装置。
［６］グループ処理手段は、前記グループ化手段がグループ化したログの集合が完了の条件を満たした場合、当該グループを処理して完了結果として保存し、
前記コンピュータを、
前記未完了結果のうち、前記タイムアウト時刻を経過した未完了結果と、前記完了結果とをデバッグの結果として出力する結果出力手段としてさらに機能させる前記［４］に記載の情報処理装置。
［７］デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次出力するデバッグ対象装置と、
前記デバッグ対象装置から受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、前記グループ化手段によってグループ化されたログの集合が完了の条件を満たしていない場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段とを有する情報処理装置とから構成されるデバッグシステム。
【発明の効果】
【００１０】
請求項１、４、７に係る発明によれば、時間経過とともに順次受け付けたログデータ列をバッチ処理する場合であって、一連のログが複数のバッチデータに渡る場合であっても、デバッグの結果が誤ったものとなることを抑制することができる。
請求項２、５に係る発明によれば、未完了結果にタイムアウト時刻を設定して記録することができる。
請求項３、６に係る発明によれば、グループ化手段がグループ化したログの集合が完了の条件を満たした場合、当該グループを処理して完了結果として保存し、未完了結果のうち、タイムアウト時刻を経過した未完了結果と、完了結果とをデバッグの結果として出力することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態に係るデバッグシステムの構成の一例を示す概略図である。
【図２】図２は、実施の形態に係るデバッグ装置の構成例を示すブロック図である。
【図３】図３は、デバッグ装置のログ受付動作を説明するための概略図である。
【図４】図４は、デバッグ装置のバッチデータ選択動作を説明するための概略図である。
【図５】図５は、デバッグ装置がバッチデータをグループ化する前のバッチデータの構成を示す概略図である。
【図６】図６は、デバッグ装置がバッチデータをグループ化した後のバッチデータの構成を示す概略図である。
【図７】図７は、デバッグ装置の未完了結果出力動作を説明するための概略図である。
【図８】図８は、デバッグ装置の未完了グループの継続処理動作を説明するための概略図である。
【図９】図９は、デバッグ装置の未完了グループの継続処理動作を説明するための他の概略図である。
【図１０】図１０は、デバッグ装置のグループ処理動作を説明するための概略図である。
【図１１】図１１は、デバッグ装置のデバッグ動作の概要を示すフローチャートである。
【図１２】図１２は、デバッグ装置のバッチデータ選択動作の概要を示すフローチャートである。
【図１３】図１３は、デバッグ装置の未完了結果出力動作の概要を示すフローチャートである。
【図１４】図１４は、デバッグ装置の未完了グループの継続処理動作の概要を示すフローチャートである。
【図１５】図１５は、デバッグ装置のグループ処理動作の概要を示すフローチャートである。
【発明を実施するための形態】
【００１２】
［実施の形態］
（デバッグシステムの構成）
図１は、実施の形態に係るデバッグシステムの構成の一例を示す概略図である。
【００１３】
このデバッグシステム５は、情報処理装置としてのデバッグ装置１と、デバッグ対象装置２とをネットワークによって互いに通信可能に接続することで構成される。
【００１４】
デバッグ装置１は、サーバ型の情報処理装置であり、操作者の操作する図示しない端末の要求に応じて動作するものであって、本体内に情報を処理するための機能を有するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はフラッシュメモリ等の電子部品を備える。デバッグ装置１は、デバッグ対象装置２から時間経過とともに順次ログを受け付け、受け付けたログに逐次バッチ処理を行って、ログのグループを解析してデバッグを実行する。
【００１５】
デバッグ対象装置２は、端末型又はサーバ型の情報処理装置であり、デバッグ対象であるプログラムに基づいて動作するものであって、本体内に情報を処理するための機能を有するＣＰＵやＨＤＤ又はフラッシュメモリ等の電子部品を備える。デバッグ対象装置２は、プログラムに基づいて動作し、動作の結果としてのログをデバッグ装置１に対して逐次出力する。なお、デバッグ対象装置２は、プログラムに基づいて複数種類の動作を順番に又は並行して実行し、各動作のログは順不同に時間経過とともに出力される。
【００１６】
ネットワークは、高速通信が可能な通信ネットワークであり、例えば、イントラネットやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の有線又は無線の通信網である。
【００１７】
一例として、デバッグ装置１は、Ｆｌｕｅｎｔｄ、Ｅｌａｓｔｉｃｓｅａｒｃｈ、Ｈａｄｏｏｐ等のミドルウエアを動作させることによって上記のように機能するものであり、主にＦｌｕｅｎｔｄによりログ収集を行い、Ｅｌａｓｔｉｃｓｅａｒｃｈによりログの保存を行い、Ｈａｄｏｏｐによってログを解析してサマライズする。なお、デバッグ装置１は、複数のクラスターによって構成してもよく、Ａｐａｃｈｅ  Ｓｐａｒｋにより分散処理を実行するよう構成してもよい。
【００１８】
なお、図１においてデバッグ装置１及びデバッグ対象装置２は説明を簡単にするため単一の装置で描かれているが、各機能を複数の装置に分けて動作させてもよいし、動作を複数の装置で分散処理させてもよい。また、デバッグ装置１及びデバッグ対象装置２を単一の装置内で構成してもよい。
【００１９】
また、デバッグ対象装置２は、プログラムが動作し、動作の結果ログを出力するものであれば特に構成は限定されない。デバッグ装置２を用意せずに、ログデータだけを用意してデバッグ装置１で処理する構成としてもよい。
【００２０】
（デバッグ装置の構成）
図２は、実施の形態に係るデバッグ装置１の構成例を示すブロック図である。
【００２１】
デバッグ装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等から構成され、各部を制御するとともに、各種のプログラムを実行する制御部１０と、フラッシュメモリ等の記憶媒体から構成され情報を記憶する記憶部１１と、ネットワークを介して外部と通信する通信部１２とを備える。
【００２２】
制御部１０は、後述する情報処理プログラムとしてのデバッグプログラム１１０を実行することで、ログ受付手段１００、処理データ選択手段１０１、グループ化手段１０２、未完了結果出力手段１０３、未完了グループ処理手段１０４、グループ処理手段１０５、未完了結果テーブル作成手段１０６及び結果出力手段１０７等として機能する。
【００２３】
ログ受付手段１００は、デバッグ対象装置２でデバッグ対象であるプログラムが動作した結果であるログをデバッグ対象装置２から時間経過とともに順次受け付けてログデータ１１１として記憶部１１に格納する。つまり、ログデータ１１１は、時間経過とともに増加する。
【００２４】
処理データ選択手段１０１は、ログデータ１１１から処理すべきデータを選択し、処理中バッチデータ１１２として記憶部１１に格納する。処理中バッチデータ１１２は順次新たなデータが作成される。
【００２５】
グループ化手段１０２は、処理中バッチデータ１１２をプログラムの動作の種類毎に、例えば、イベントＩＤ等でグループ化する。
【００２６】
未完了結果出力手段１０３は、未完了の結果を出力するものであり、具体的には、未完了結果テーブル１１３において予め定められたタイムアウト時刻を過ぎたグループを未完了結果として出力して出力結果リスト１１４に追加するとともに、未完了結果テーブル１１３からタイムアウト時刻をすぎたグループを削除して未完了結果テーブル１１３の内容を更新する。出力結果リスト１１４は状態が確定した結果が記載されるものであり、未完了結果テーブル１１３は状態が確定していない未完了の結果が記載された中間データである。なお、「完了」とは、ログの集合が予め定めた条件を満たしていることを指し、「未完了」とは、ログの集合が予め定めた条件を満たしていないことを指す。
【００２７】
未完了グループ処理手段１０４は、未完了グループのデータについて処理を継続するものであり、具体的には、処理中バッチデータ１１２のグループと未完了結果テーブル１１３のグループとを比較し、共通するグループが存在する場合は当該グループの全データで処理中バッチデータ１１２の該当するグループのデータを置き換える。つまり、未完了グループ処理手段１０４は、状態が確定していない未完了の結果に含まれるログをリアルタイムで処理中の処理中バッチデータ１１２のグループに改めて追加する。
【００２８】
グループ処理手段１０５は、あるグループに含まれるログの内容が予め定めた条件を満たしているか否かに応じてグループを処理し、完了又は未完了のいずれかの状態が記載された結果を出力する。
【００２９】
未完了結果テーブル作成手段１０６は、グループ処理手段１０５によって未完了とされたグループについて未完了結果テーブル１１３を作成する。なお、未完了結果テーブル作成手段１０６は、未完了結果が保存される時刻から予め定めた期間だけ追加した時刻をタイムアウトの時刻として設定する。未完了結果であってもタイムアウトの時刻を過ぎるまでは状態が確定せず、タイムアウトの時刻を過ぎれば状態が確定する。
【００３０】
結果出力手段１０７は、結果出力手段１０７は、完了した結果と、タイムアウトにより状態が確定した未完了結果とを結果データ１１５として記憶部１１に格納するとともに、デバッグ結果を確認する利用者が操作する図示しない端末等に、まとめて出力する。つまり、状態が確定した結果を結果データ１１５として出力する。
【００３１】
記憶部１１は、制御部１０を上述した各手段１００‐１０７として動作させるデバッグプログラム１１０、ログデータ１１１、処理中バッチデータ１１２、未完了結果テーブル１１３、出力結果リスト１１４及び結果データ１１５等を記憶する。
【００３２】
（情報処理装置の動作）
次に、本実施の形態の作用を、（１）全体動作、（２）デバッグ動作に分けて説明する。
【００３３】
（１）全体動作
まず、デバッグ対象装置２は、デバッグ対象であるプログラムに基づき動作し、動作に伴い生じるイベントを時間経過に沿って記録してログとして順次出力する。
【００３４】
デバッグ装置１は、デバッグ対象装置２からログを順次受け付け、受け付けたログをバッチ処理し、分析可能なデータにしてデバッグを実行する。また、デバッグ装置１は、デバッグ結果を図示しない端末等へ出力する。なお、デバッグ装置１の処理の内容は以下の「（２）デバッグ動作」において詳細に説明する。
【００３５】
（２）デバッグ動作
以下、デバッグ装置１のデバッグ動作について詳細に説明する。
【００３６】
図１１は、デバッグ装置１のデバッグ動作の概要を示すフローチャートである。
【００３７】
（２‐１）ログ受付動作
まず、デバッグ装置１のログ受付手段１００は、デバッグ対象装置２でデバッグ対象であるプログラムが動作した結果であるログをデバッグ対象装置２から順次受け付けてログデータ１１１として記憶部１１に格納する（ステップＳ１０）。
【００３８】
図３は、デバッグ装置１のログ受付動作を説明するための概略図である。
【００３９】
ログデータ１１１ａは、ログデータ１１１の構成の一例であり、複数のログを含む。ログのそれぞれはタイプを変更可能な複数のフィールドを含む抽象クラスのオブジェクトである。ログデータ１１１ａは、図３に示す例では、各ログを識別するためのＩＤと、ログが生成された時刻を示すタイムスタンプと、ログに対応するイベントを識別するためのイベントＩDと、イベントが生じたノードを示すノードと、イベントの動作種別を示すオペレーションと、ノードの親ノードを示すペアレントノードとを有する。なお、ログデータ１１１ａは、デバッグ対象装置２のシステムに応じてそのフォーマットは変化してもよい。
【００４０】
ログ受付手段１００は、データ列を受け付けると自動で生成される連番をＩＤとして付与し、追加ログ１１１０として追加する。なお、ログ受付動作は、バッチデータ選択動作以降に説明する動作とは独立して常時実行される。
【００４１】
なお、ログ受付手段１００は、一例として、ログデータ１１１をフィールドや値が厳格にマッピングされたＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）ドキュメントとして格納する。また、ログ受付手段１００は、Ｆｌｕｅｎｔｄを使用してデバッグ対象装置２で動作するアプリケーションやサービスからログを収集し、Ｅｌａｓｔｉｃｓｅａｒｃｈによりログ受付の時刻、デバッグ対象装置２のノード、自動生成される連番等をログのＩＤとして付与する。
【００４２】
（２‐２）バッチデータ選択動作
次に、処理データ選択手段１０１は、ログデータ１１１から処理すべきデータを選択し、処理中バッチデータ１１２として記憶部１１に格納する（ステップＳ１１）。
【００４３】
図４は、デバッグ装置１のバッチデータ選択動作を説明するための概略図である。また、図１２は、デバッグ装置１のバッチデータ選択動作の概要を示すフローチャートである。
【００４４】
処理データ選択手段１０１は、前回のバッチデータ選択動作がある場合は前回選択したログの連番のうち最終ＩＤの存在を確認し（ステップＳ２０；Ｙｅｓ）、図４に示す例では、ログデータ１１１ｂの前回選択ログ１１１１のＩＤを確認し、当該最終ＩＤ「２３７８９６５」以前のログをフィルタに設定するとともに（ステップＳ２１）、ログを取得する（ステップＳ２３）。つまり、ＩＤ「２３７８９６６」以降のログを選択ログ１１１２として取得する。なお、ＩＤ「２３７８９６６」以降の取得時点で存在する全てのログを取得してもよいし、予め定めた数のログを取得してもよく、いずれを選択するか及び予め定めた数の値はデバッグ装置１及び／又はデバッグ実行装置３の処理能力によって定めることができる。また、バッチデータ選択動作の頻度やタイミングは、ログの生成数等のデバッグ装置１の動作量に応じて適宜調整可能である。
【００４５】
また、処理データ選択手段１０１は、前回のバッチデータ選択動作がない場合は（ステップＳ２０；Ｎｏ）、一例として現在時刻より１日前のログをフィルタに設定するとともに（ステップＳ２２）、ログを取得する（ステップＳ２３）。つまり、１日前より後のログを選択ログ１１１２として取得する。
【００４６】
処理データ選択手段１０１は、一例として、Ｅｌａｓｔｉｃｓｅａｒｃｈ‐Ｈａｄｏｏｐを用いてＥｌａｓｔｉｃｓｅａｒｃｈ  ｑｕｅｒｙを実行することでバッチデータ選択動作を行う。
【００４７】
（２‐３）バッチデータグループ化動作
次に、グループ化手段１０２は、処理中バッチデータ１１２を動作の種類毎にグループ化する（ステップＳ１２）。
【００４８】
図５は、デバッグ装置１がバッチデータをグループ化する前のバッチデータの構成を示す概略図である。図６は、デバッグ装置１がバッチデータをグループ化した後のバッチデータの構成を示す概略図である。
【００４９】
グループ化手段１０２は、図５に示す処理中バッチデータ１１２ａに含まれるログを、一例として、イベントＩＤをグループキーとして、「１３１１４５」、「１３１１４６」、「１３１１４７」のログをそれぞれ抽出する。次に、グループ化手段１０２は、グループキーをデリミター（区切り文字）としてログデータを並び替えてグループ化した処理中バッチデータ１１２ｂを生成する。
【００５０】
グループ化手段１０２は、一例として、Ａｐａｃｈｅ  Ｓｐａｒｋの「ｇｒｏｕｐＢｙ」ファンクションを用いてバッチデータグループ化動作を行う。
【００５１】
（２‐４）未完了結果出力動作
次に、未完了結果出力手段１０３は、状態の確定した未完了結果を出力する（ステップＳ１３）。
【００５２】
図７は、デバッグ装置１の未完了結果出力動作を説明するための概略図である。また、図１３は、デバッグ装置１の未完了結果出力動作の概要を示すフローチャートである。
【００５３】
まず、未完了結果出力手段１０３は、図７に示すように、状態の確定していない未完了結果が記載された未完了結果テーブル１１３ａを参照する（ステップＳ３０）。未完了結果テーブル１１３ａは、結果を識別するためのＩＤと、結果の状態を確定させる時刻を示すタイムアウトと、結果に対応するグループのキーを示すグループキーと、グループの結果の内容（検証結果が妥当であることを示す「ＰＡＳＳ」又は妥当でないことを示す「ＦＡＩＬ」のいずれか。未完了結果は、この時点ではデータが完全ではないため検証ができず、仮の値としてリザルトタイプは「ＦＡＩＬ」となる。）を示すリザルトタイプと、検証結果の内容を示すリザルトデータとを有する。なお、未完了結果テーブル１１３ａの作成方法については「（２‐７）未完了結果保存動作」において後述する。
【００５４】
次に、未完了結果出力手段１０３は、タイムアウトの時刻が現在時刻（ここでは現在時刻を２０１７年１０月１１日００時００分００秒とする。）より前の結果をフィルタリングする（ステップＳ３１）。また、未完了結果出力手段１０３は、フィルタリングにより残った結果をログに復元してログデータ１１１に格納する（ステップＳ３２）。
【００５５】
次に、未完了結果出力手段１０３は、未完了結果テーブル１１３ａにおいてタイムアウト時刻を過ぎたグループは状態が確定したグループであるとして、当該グループから出力結果リスト１１４ａを作成する（ステップＳ３３）。出力結果リスト１１４ａは、グループキーと、リザルトタイプと、リザルトデータとを有する。
【００５６】
また、未完了結果出力手段１０３は、タイムアウト時刻を過ぎたグループは状態が確定したグループであるため、未完了結果テーブル１１３からタイムアウト時刻を過ぎたグループの結果を削除して未完了結果テーブル１１３の内容を更新する（ステップＳ３４）。
【００５７】
なお、未完了結果出力手段１０３は、一例として、上記未完了結果出力動作をＥｌａｓｔｉｃｓｅａｒｃｈ‐Ｈａｄｏｏｐの代わりに直接Ｅｌａｓｔｉｃｓｅａｒｃｈにより実行する。これは、Ｅｌａｓｔｉｃｓｅａｒｃｈ‐Ｈａｄｏｏｐがデータの取得及び保存は可能であるものの、データの削除ができないためである。また、Ｅｌａｓｔｉｃｓｅａｒｃｈが現在時刻のタイムスタンプで容易にフィルタリングを実行できるよう、未完了結果テーブル１１３のタイムアウト時刻は、タイムスタンプの形式で保存される。
【００５８】
（２‐５）未完了グループ継続処理動作
次に、未完了グループ処理手段１０４は、未完了グループのデータについて処理を継続する（ステップＳ１４）。
【００５９】
図８は、デバッグ装置１の未完了グループの継続処理動作を説明するための概略図である。また、図９は、デバッグ装置１の未完了グループの継続処理動作を説明するための他の概略図である。また、図１４は、デバッグ装置１の未完了グループの継続処理動作の概要を示すフローチャートである。
【００６０】
まず、未完了グループ処理手段１０４は、図８に示すように、処理中バッチデータ１１２ｃからグループキー１０４０ｂを抽出する（ステップＳ４０）。
【００６１】
また、未完了グループ処理手段１０４は、図８に示すように、未完了結果テーブル１１３ｃからグループキー１０４０ａを抽出する（ステップＳ４１）。
【００６２】
次に、未完了グループ処理手段１０４は、グループキー１０４０ａ及び１０４０ｂにおいて重複するグループキー１０４０ｃを特定する（ステップＳ４２）。
【００６３】
次に、未完了グループ処理手段１０４は、図９に示すように、重複するグループキー１０４０ｃのログをログデータ１１１から取得して取得グループ１０４ａとし（ステップＳ４３）、処理中バッチデータ１１２ｃのうち重複するグループキーのログを取得グループ１０４ａのログで置き換えて処理中バッチデータ１１２ｄとする（ステップＳ４４）。これは、過去に未完了であったグループのログが、新たに処理している処理中バッチデータ１１２ｄに存在しているため、これらのグループのログをまとめる必要があるためである。なお、処理中バッチデータ１１２ｃのログに未完了のログを追加できればよく、必ずしも該当するグループのログをすべて置き換えなくともよい。
【００６４】
なお、未完了グループ処理手段１０４は、一例として、上記未完了グループ継続処理動作のうち、重複するグループキーの抽出動作を、Ｅｌａｓｔｉｃｓｅａｒｃｈを用いて、処理中バッチデータ１１２ｃのグループリストを利用してログデータ１１１を検索する代わりに、Ａｐａｃｈｅ  Ｓｐａｒｋの「ｉｎｔｅｒｓｅｃｔｉｏｎ」ファンクションを用いて、処理中バッチデータ１１２ｃのグループキー１０４０ｂのＲＤＤ（Ｒｅｓｉｌｉｅｎｔ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａｓｅｔ）と、未完了結果テーブル１１３ｃのグループキー１０４０ａのＲＤＤとから重複するグループキー１０４０ｃを得る。これはＥｌａｓｔｉｃｓｅａｒｃｈが検索要求においては大きなインプットを扱うことができないためである。
【００６５】
重複するグループキー１０４０ｃが得られた後は、専用設計されたプラグインを用い、Ｅｌａｓｔｉｃｓｅａｒｃｈからグループキーでフィルタリングすることでグループキー１０４０ａを取得し、処理中バッチデータ１１２ｃのうち重複するグループキーのログを取得グループ１０４ａのログで置き換えて処理中バッチデータ１１２ｄとする。
【００６６】
（２‐６）グループ処理動作
次に、グループ処理手段１０５は、グループを処理して結果を出力する（ステップＳ１５）。ここで、処理とは、グループを結果に変換する抽象メソッドで定義されたビジネスロジックの構成要素である。また、結果は、「ｃｏｍｐｌｅｔｅ」（完了）又は「ｉｎｃｏｍｐｌｅｔｅ」（未完了）の記載以外については厳格な形態が定められていないビジネスデータである。
【００６７】
図１０は、デバッグ装置１のグループ処理動作を説明するための概略図である。また、図１５は、デバッグ装置１のグループ処理動作の概要を示すフローチャートである。
【００６８】
グループ処理手段１０５は、図１０に示すように、あるグループの処理中バッチデータ１１２ｅの処理を開始する（ステップS５０）。
【００６９】
まず、グループ処理手段１０５は、値の入力されていない結果データ１１５ｅを生成する（ステップS５１）。結果データ１１５ｅは、グループの状態が完了又は未完了のいずれであるかを示すステータスと、グループのログが予め定められた条件を満たしているか否かの検証結果を示すリザルトデータとを有し、この状態でステータス及びリザルトデータには何も記載されていないものとする（又はデフォルト値が記載されていてもよい。）。
【００７０】
次に、グループ処理手段１０５は、予め定められた条件として典型的なモデルグループを予め用意し、当該典型的なモデルグループと比較して当該グループにログの欠陥があるか否かを確認し（ステップＳ５２）、欠陥がある場合（ステップS５２；Ｙｅｓ）、結果データ１１５ｅのステータスに「Ｉｎｃｏｍｐｌｅｔｅ」と記載する（ステップS５３）。また、当該結果データ１１５ｅのリザルトデータは、検証を行えないため、一例として、仮の値として「ＦＡＩＬ」と記載される。
【００７１】
次に、グループ処理手段１０５は、当該グループにログの欠陥があるか否かを確認し（ステップＳ５２）、欠陥がない場合（ステップS５２；Ｎｏ）、結果データ１１５ｅのステータスに「Ｃｏｍｐｌｅｔｅ」と記載する（ステップS５４）。また、当該結果データ１１５ｅのリザルトデータは、ログに欠陥がないため検証が可能であり、グループ処理手段１０５が予め定めた検証方法によりログのグループが妥当と判断すれば「PＡＳＳ」と記載され、妥当でないと判断すれば「ＦＡＩＬ」と記載される。なお、ログのグループの妥当性の判断は外部装置や外部機能により実現するものであってもよい。
【００７２】
次に、グループ処理手段１０５は、結果データ１１５ｅを記憶部１１に出力して格納する（ステップS５５）。
【００７３】
（２‐７）未完了結果保存動作
次に、グループ処理手段１０５は、結果データ１１５ｅのうちステータスが「Ｉｎｃｏｍｐｌｅｔｅ」である未完了結果を保存する（ステップＳ１６）。また、未完了結果テーブル作成手段１０６は、未完了結果が保存される時刻から予め定めた期間だけ追加した時刻をタイムアウトの時刻に設定して、状態の確定していない未完了結果として未完了結果テーブル１１３を作成する。
【００７４】
ここで、タイムアウトを設定する目的は、アプリケーションのパフォーマンスを低下させる未完了結果が構築されるのを防ぐためである。例えば、システムのクラッシュが生じて、グループが終了しないような場合、当該グループの未完了結果はアプリケーションのパフォーマンスを低下させる。つまり、タイムアウトは当該グループを取り除いて結果に反映させるための安全網となる。
【００７５】
また、同時にタイムアウトは、以下に示すシチュエーションにグループを適応させるものでもある。例えば、数日、数週間に渡るイベントに対しては、非常に長いタイムアウトを設定することで、長い期間データを受け付けない場合であっても、グループの完了又は未完了を正しく評価できる。従って、アプリケーションのパフォーマンスの向上と、長期間に渡るイベントへの対応とはトレードオフの関係にあるため、利用者によってタイムアウトの期間は適宜調整されるものとする。
【００７６】
（２‐８）結果出力動作
次に、結果出力手段１０７は、完了した結果と、未完了結果のうちタイムアウトにより出力された結果とを、状態の確定した結果として、図示しない端末等に、まとめて出力する（ステップＳ１７）。つまり、「（２‐６）グループ処理動作」においてステータスが「Ｃｏｍｐｌｅｔｅ」となった結果と、「（２‐４）未完了結果出力動作」において作成された出力結果リスト１１４ａの結果とをまとめて出力する。
【００７７】
なお、結果出力手段１０７は、一例として、システムの検証に関するすべての情報を、デバッグを要求したユーザーに提供するため、すべての結果をＥｌａｓｔｉｃｓｅａｒｃｈに保存し直す。また、結果出力手段１０７は、次のバッチ処理のために、リザルトデータが「ＰＡＳＳ」である数、リザルトデータが「ＦＡＩＬ」である数、処理中バッチデータ１１２の最終ＩＤ等を含むバッチ処理のサマリーを作成する。
【００７８】
（実施の形態の効果）
上記した実施の形態によれば、未完了結果テーブル１１３を中間結果データとして保持することで、単一のバッチデータ中では未完了とされていたログを、新たなバッチデータを受け取った際に異なるバッチデータ間のログと改めてグループ化でき、複数のバッチデータに渡る時間のスケールで起きるような動作グループにも対応してデバッグできるようになる。
【００７９】
また、複数のバッチデータに渡る時間のスケールで起きるような動作グループにも対応できるため、動作が完了するまでに要する期間が異なる複数のグループのログをバッチ処理する場合であっても、他のグループの動作の完了を待つことなく完了した動作から順にデバッグ結果を出力することができる。
【００８０】
なお、従来のデバッグ装置において、グループのデータがすべて含まれるようにバッチデータの期間を長く設定することでもデバッグは可能なようにも思えるが、複数のグループがすべてデバッグされるように期間を調整すると、デバッグに要する時間が各グループに要する時間以上必要となるという問題がある。また、複数種類のグループに対応する動作の開始時刻がそれぞれ異なり、順次データを受け付けるような場合は、やはりバッチデータに含まれるグループのデバッグしか行うことしかできず、期間を長くすることでは対応ができない。
【００８１】
［他の実施の形態］
なお、本発明は、上記実施の形態に限定されず、本発明の趣旨を逸脱しない範囲で種々な変形が可能である。
【００８２】
上記実施の形態では制御部１０の各手段１００〜１０７の機能をプログラムで実現したが、各手段の全て又は一部をＡＳＩＣ等のハードウエアによって実現してもよい。また、上記実施の形態で用いたプログラムをＣＤ‐ＲＯＭ等の記録媒体に記憶して提供することもできる。また、上記実施の形態で説明した上記ステップの入れ替え、削除、追加等は本発明の要旨を変更しない範囲内で可能である。
【符号の説明】
【００８３】
１              ：デバッグ装置
２              ：デバッグ対象装置
５              ：デバッグシステム
１０            ：制御部
１１            ：記憶部
１２            ：通信部
１００          ：ログ受付手段
１０１          ：処理データ選択手段
１０２          ：グループ化手段
１０３          ：未完了結果テーブル作成手段
１０４          ：未完了結果出力手段
１０５          ：未完了グループ処理手段
１０６          ：グループ処理手段
１０７          ：結果出力手段
１１０          ：デバッグプログラム
１１１          ：ログデータ
１１２          ：処理中バッチデータ
１１３          ：未完了結果テーブル
１１４          ：出力結果リスト
１１５          ：結果データ
【図１】
2019133497.tif 000003
【図２】
2019133497.tif 000004
【図３】
2019133497.tif 000005
【図４】
2019133497.tif 000006
【図５】
2019133497.tif 000007
【図６】
2019133497.tif 000008
【図７】
2019133497.tif 000009
【図８】
2019133497.tif 000010
【図９】
2019133497.tif 000011
【図１０】
2019133497.tif 000012
【図１１】
2019133497.tif 000013
【図１２】
2019133497.tif 000014
【図１３】
2019133497.tif 000015
【図１４】
2019133497.tif 000016
【図１５】
2019133497.tif 000017
【手続補正書】
【提出日】平成30年5月23日(2018.5.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータを、
デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、
前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、
前記グループ化手段によってグループ化されたログの集合に、予め定めた条件と比較して、欠陥がある場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、
前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に前記グループ化手段がグループ化したフィールドの値が共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段として機能させるための情報処理プログラム。
【請求項２】
前記グループ処理手段は、前記未完了結果にタイムアウト時刻を設定して記録する請求項１に記載の情報処理プログラム。
【請求項３】
グループ処理手段は、前記グループ化手段がグループ化したログの集合が完了の条件を満たした場合、当該グループを処理して完了結果として保存し、
前記コンピュータを、
前記未完了結果のうち、前記タイムアウト時刻を経過した未完了結果と、前記完了結果とをデバッグの結果として出力する結果出力手段としてさらに機能させる請求項２に記載の情報処理プログラム。
【請求項４】
デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、
前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、
前記グループ化手段によってグループ化されたログの集合に、予め定めた条件と比較して、欠陥がある場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、
前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に前記グループ化手段がグループ化したフィールドの値が共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段とを有する情報処理装置。
【請求項５】
前記グループ処理手段は、前記未完了結果にタイムアウト時刻を設定して記録する請求項４に記載の情報処理装置。
【請求項６】
グループ処理手段は、前記グループ化手段がグループ化したログの集合が完了の条件を満たした場合、当該グループを処理して完了結果として保存し、
前記未完了結果のうち、前記タイムアウト時刻を経過した未完了結果と、前記完了結果とをデバッグの結果として出力する結果出力手段としてさらに機能させる請求項５に記載の情報処理装置。
【請求項７】
デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次出力するデバッグ対象装置と、
前記デバッグ対象装置から受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、前記グループ化手段によってグループ化されたログの集合に、予め定めた条件と比較して、欠陥がある場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に前記グループ化手段がグループ化したフィールドの値が共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段とを有する情報処理装置とから構成されるデバッグシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
［１］コンピュータを、
デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、
前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、
前記グループ化手段によってグループ化されたログの集合に、予め定めた条件と比較して、欠陥がある場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、
前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に前記グループ化手段がグループ化したフィールドの値が共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段として機能させるための情報処理プログラム。
［２］前記グループ処理手段は、前記未完了結果にタイムアウト時刻を設定して記録する前記［１］に記載の情報処理プログラム。
［３］グループ処理手段は、前記グループ化手段がグループ化したログの集合が完了の条件を満たした場合、当該グループを処理して完了結果として保存し、
前記コンピュータを、
前記未完了結果のうち、前記タイムアウト時刻を経過した未完了結果と、前記完了結果とをデバッグの結果として出力する結果出力手段としてさらに機能させる前記［２］に記載の情報処理プログラム。
［４］デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、
前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、
前記グループ化手段によってグループ化されたログの集合に、予め定めた条件と比較して、欠陥がある場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、
前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に前記グループ化手段がグループ化したフィールドの値が共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段とを有する情報処理装置。
［５］前記グループ処理手段は、前記未完了結果にタイムアウト時刻を設定して記録する前記［４］に記載の情報処理装置。
［６］グループ処理手段は、前記グループ化手段がグループ化したログの集合が完了の条件を満たした場合、当該グループを処理して完了結果として保存し、
前記未完了結果のうち、前記タイムアウト時刻を経過した未完了結果と、前記完了結果とをデバッグの結果として出力する結果出力手段としてさらに機能させる前記［５］に記載の情報処理装置。
［７］デバッグ対象のプログラムの動作に伴い生じるログを時間経過とともに順次出力するデバッグ対象装置と、
前記デバッグ対象装置から受け付けたログデータの列から、予め定めた範囲のログを、バッチ処理する処理中バッチデータとして選択する処理データ選択手段と、前記処理データ選択手段が選択した前記処理中バッチデータを、ログのフィールドに基づいてグループ化するグループ化手段と、前記グループ化手段によってグループ化されたログの集合に、予め定めた条件と比較して、欠陥がある場合に、当該グループを未完了の状態として未完了結果として記録するグループ処理手段と、前記処理データ選択手段が前記処理中バッチデータの後に新たな処理中バッチデータを選択し、前記グループ化手段が当該新たな処理中バッチデータをグループ化した後、当該新たな処理中バッチデータと前記グループ処理手段が未完了結果としたグループとの間に前記グループ化手段がグループ化したフィールドの値が共通するグループが存在する場合、前記新たな処理中バッチデータの当該共通するグループのログデータを、当該共通するグループに属するすべてのログデータとする未完了グループ処理手段とを有する情報処理装置とから構成されるデバッグシステム。