JPWO2009107234A1 - イベント履歴記憶装置、イベント履歴追跡装置、イベント履歴記憶方法、イベント履歴記憶プログラム及びデータ構造 - Google Patents

イベント履歴記憶装置、イベント履歴追跡装置、イベント履歴記憶方法、イベント履歴記憶プログラム及びデータ構造 Download PDF

Info

Publication number
JPWO2009107234A1
JPWO2009107234A1 JP2010500506A JP2010500506A JPWO2009107234A1 JP WO2009107234 A1 JPWO2009107234 A1 JP WO2009107234A1 JP 2010500506 A JP2010500506 A JP 2010500506A JP 2010500506 A JP2010500506 A JP 2010500506A JP WO2009107234 A1 JPWO2009107234 A1 JP WO2009107234A1
Authority
JP
Japan
Prior art keywords
instance
event
information
identifier
behavior
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010500506A
Other languages
English (en)
Other versions
JP4989761B2 (ja
Inventor
平井 規郎
規郎 平井
光則 郡
光則 郡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2009107234A1 publication Critical patent/JPWO2009107234A1/ja
Application granted granted Critical
Publication of JP4989761B2 publication Critical patent/JP4989761B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

追跡対象のインスタンスが分割、複製等されて新たなインスタンスが発生する場合に、元のインスタンスと新たなインスタンスとに関連するイベントの履歴を容易に連続して追跡できるようにする。インスタンス毎にイベントに挙動IDを付して、インスタンス毎にイベントの発生順序を管理する。また、あるイベントでインスタンスから新たなインスタンスが発生した場合、そのイベントについて上記新たなインスタンスに対して新たな挙動IDを付す。そして、そのイベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けする。

Description

本発明は、例えば、アプリケーションの動作ログに含まれる情報の追跡を容易にかつ効率よく実現するためのデータ管理技術と、上記データ管理技術により管理されたデータを用いた履歴の追跡技術に関するものである。
情報セキュリティ、ネットワーク監視、設備管理などの分野を中心に、収集蓄積されたログデータから情報漏えい、不正アクセス、機器故障などの履歴を監視し、情報、ネットワーク、設備を高度に管理している。
例えば、追跡対象であるインスタンスに対して発生したイベントの履歴データを収集し、そのイベントの履歴データに基づき、一定期間にそのインスタンスがどのような振舞いをしたかを追跡する。追跡対象とは、追跡・監視対象となる対象であり、例えば、PC(Personal Computer)で生成されたファイル等である。また、追跡対象の実体をインスタンスと呼ぶ。つまり、追跡対象がファイルであれば、インスタンスはファイルA、ファイルB等の具体的なファイルを指す。つまり、インスタンスの振舞いとは、例えば、ファイルAが編集され、保存された等である。
通常、イベントの履歴データには、イベントに関連したインスタンスを識別する追跡対象ID(識別子)、イベントが発生した時刻を示すタイムスタンプ、イベントの動作情報が記録されている。つまり、「ファイルAが編集された」というイベントの履歴データには、ファイルAの識別子と、編集された日時情報と、編集という動作を示す情報とが記録されている。
特許文献1では、複数のデータベースに分散して記録された各インスタンスに対して統一的な識別子を付すとともに、各インスタンスが処理された順序を示す情報をインスタンス毎に持たせる。これにより、複数のデータベースに分散してイベント履歴データが記録された場合であっても、インスタンス毎の処理を順に追跡することを容易にしている。
特開平11−212831号公報
従来のイベント履歴管理方法では、インスタンスが分割される場合等には、分割前のインスタンスの振舞いと、分割後のインスタンスの振舞いとを連続して追跡することは困難である。つまり、インスタンスが分割されると、分割され生成された新たなインスタンスには新たな識別子が付され、元のインスタンス(分割前のインスタンス)と新たなインスタンス(分割後のインスタンス)とは異なる識別子が付されてしまう。そのため、元のインスタンスと新たなインスタンスとの間の関連性がなくなり、元のインスタンスと新たなインスタンスとを連続して追跡することが困難となる。すなわち、インスタンスから新たなインスタンスが発生する場合には、元のインスタンスと新たなインスタンスとを連続して追跡することが困難である(手間がかかる)。
インスタンスが分割される場合に限らず、インスタンスが統合、複製等される場合も同様である。
例えば、インスタンスがPCで生成されたファイルであるときに、そのファイルがコピー、リネーム等された場合や、インスタンスが製造工程における原料であるときに、その原料が分割、統合された場合には、処理前のインスタンスと処理後のインスタンスとを連続して追跡することは困難である。
つまり、ファイルがコピーされ新たなファイルが生成されると、コピー元のファイルと新たなファイルとには異なる識別子が付される。そのため、コピー元のファイルと新たなファイルとの振舞いを連続して追跡することは困難である。
また、従来のイベント履歴管理方法では、あるインスタンスについての動作を異なる視点から追跡することは困難である(手間がかかる)。
例えば、複数のファイルがあり、その複数のファイルを複数のユーザが使用する場合において、あるファイルについての振舞いを、そのファイルを使用したユーザという視点から追跡するということは困難である。つまり、あるファイルについて、保存され、開かれ、再び保存されたという追跡は行えたとしても、あるファイルについて、ユーザ1が保存して、ユーザ2により開かれ、ユーザ2により再び保存されたという追跡を行うことは困難である。
本発明は、例えば、インスタンスから新たなインスタンスが発生する場合であっても、元のインスタンスと新たなインスタンスとのイベント履歴を容易に連続して追跡可能とすることを目的とする。
また、本発明は、例えば、あるインスタンスについての動作を異なる視点から容易に追跡可能とすることを目的とする。
本発明に係るイベント履歴記憶装置は、例えば、アプリケーションで発生したイベントの履歴を記憶するイベント履歴記憶装置であり、
所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶装置に記憶する順序関係記憶部と、
上記順序関係記憶部が発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶装置に記憶する階層関係記憶部と、
上記順序関係記憶部と上記階層関係記憶部とのいずれかが異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶装置に記憶する関係構造記憶部と
を備えることを特徴とする。
上記階層関係記憶部は、新たなインスタンスに付された新たな識別子を子とし、発生元のインスタンスに対して付された識別子を親として、上記新たな識別子と発生元のインスタンスに対して付された識別子とを関連付けした階層関係情報を記憶する
ことを特徴とする。
上記階層関係記憶部は、イベントによってインスタンスが分割又は統合又は複製された場合に、新たなインスタンスが発生したとみなす
ことを特徴とする。
本発明に係るイベント履歴追跡装置は、例えば、上記イベント履歴記憶装置が記憶したイベントの履歴から、所定のインスタンスについてのイベントの履歴を追跡するイベント履歴追跡装置であり、
追跡する対象となるインスタンスを特定する条件情報を入力装置により入力する条件入力部と、
上記条件入力部が入力した条件情報により特定されるインスタンスに関連して発生したイベントを上記順序関係記憶部が記憶した順序関係情報が示す順に取得する順序関係追跡部と、
上記順序関係追跡部が取得したイベントに付された識別子と上記階層関係記憶部が関連付けした識別子を辿ることにより、上記条件情報により特定されるインスタンスから発生した新たなインスタンス又は上記条件情報により特定されるインスタンスの発生元のインスタンスである次の階層のインスタンスと、上記次の階層のインスタンスに関連して発生したイベントとを取得する階層関係追跡部と
を備えることを特徴とする。
上記条件入力部は、上記条件情報とともに、追跡する範囲を絞り込むための範囲情報であって、クラスを特定する範囲情報を入力し、
上記イベント履歴追跡装置は、さらに、
上記順序関係追跡部と上記階層関係追跡部とが取得したイベントに付された識別子と上記関係構造記憶部が関連付けした識別子であって、上記範囲情報が示すクラスに属するインスタンスに付された識別子を辿ることにより、上記条件情報により特定されるインスタンスに関連するとともに上記範囲情報により特定されるクラスに属するインスタンスである他クラスインスタンスと、上記他クラスインスタンスに関連して発生したイベントとを取得するクラス間関係追跡部
を備えることを特徴とする。
上記階層関係追跡部は、さらに、上記次の階層のインスタンスに付された識別子と上記階層関係記憶部が関連付けした識別子を辿ることにより、さらに次の階層のインスタンスと、上記さらに次の階層のインスタンスに関連して発生したイベントとを取得する階層関係追跡処理を繰り返す
ことを特徴とする。
上記条件入力部は、上記条件情報とともに、追跡する階層の数を示す階層情報を入力し、
上記階層関係追跡部は、上記階層情報が示す階層の数だけ階層関係追跡処理を繰り返して、階層関係追跡処理を終了する
ことを特徴とする。
本発明に係るイベント履歴記憶方法は、例えば、アプリケーションで発生したイベントの履歴を記憶するイベント履歴記憶方法であり、
処理装置が、所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、記憶装置が、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶する順序関係記憶ステップと、
処理装置が、上記順序関係記憶ステップで発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、記憶装置が、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶する階層関係記憶ステップと、
記憶装置が、上記順序関係記憶ステップと上記階層関係記憶ステップとのいずれかで異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶する関係構造記憶ステップと
を備えることを特徴とする。
本発明に係るイベント履歴記憶プログラムは、例えば、アプリケーションで発生したイベントの履歴を記憶するイベント履歴記憶プログラムであり、
所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶装置に記憶する順序関係記憶処理と、
上記順序関係記憶処理で発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶装置に記憶する階層関係記憶処理と、
上記順序関係記憶処理と上記階層関係記憶処理とのいずれかで異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶装置に記憶する関係構造記憶処理と
をコンピュータに実行させることを特徴とする。
本発明に係るデータ構造は、例えば、アプリケーションで発生したイベントの履歴を記憶するためのデータ構造であり、
所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、情報を記憶するインスタンス情報記憶領域を備え、
上記インスタンス情報記憶領域の上記インスタンス毎の記憶領域は、
そのインスタンスに関連して発生したイベント毎に、そのイベントに付された挙動識別子であって、そのインスタンスに対して付された挙動識別子と、上記インスタンスに関連して発生したイベントであって、上記挙動識別子が付されたイベントの前に発生したイベントに付された挙動識別子と後に発生したイベントに付された挙動識別子との少なくともいずれかの挙動識別子を記憶する挙動識別子記憶領域と、
上記インスタンスから発生した新たなインスタンスを識別するインスタンス識別子と、上記新たなインスタンスを発生させたイベントについて上記新たなインスタンスに対して付された挙動識別子とを記憶する子インスタンス記憶領域、又は、上記インスタンスを発生させた発生元のインスタンスを識別するインスタンス識別子と、上記インスタンスを発生させたイベントについて上記発生元のインスタンスに対して付された挙動識別子とを記憶する親インスタンス記憶領域の少なくともいずれかとを備え、
上記挙動識別子記憶領域の上記イベント毎の記憶領域は、
そのイベントと同一のイベントに付された挙動識別子であって、他のクラスに属するインスタンスに対して付された挙動識別子を記憶する関係構造記憶領域
を備えることを特徴とする。
本発明に係るイベント履歴記憶装置は、インスタンス毎にイベントに識別子を付してイベントの発生順序を管理する。また、あるイベントでインスタンスから新たなインスタンスが発生した場合、そのイベントについて上記新たなインスタンスに対して新たな識別子を付し、そのイベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けする。したがって、各インスタンスに関連して発生したイベントの履歴(インスタンスの振舞い)を追跡することができるとともに、インスタンスから新たなインスタンスが発生する場合であっても、元のインスタンスと新たなインスタンスとを容易に連続して追跡することができる。
また、本発明に係るイベント履歴記憶装置は、異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けする。したがって、あるインスタンスについての動作を異なる視点から容易に追跡することができる。
実施の形態1.
この実施の形態では、所定のアプリケーションで発生したイベント履歴の記憶方法について説明する。
図1は、この実施の形態に係るイベント履歴記憶装置10の機能を示す機能ブロック図である。
イベント履歴記憶装置10は、履歴データ統合部11、条件指定記憶部12、統合定義記憶部13、統合データ記憶部14、要素抽出部15、クラス情報生成部16、インスタンス情報生成部17、順序関係記憶部18、階層関係記憶部19、関係構造記憶部20、挙動インデックス記憶部21を備える。
履歴データ統合部11は、複数のイベント履歴データベース22のそれぞれの形式で記憶されたイベントの履歴データを各イベント履歴データベース22から取得して、条件指定記憶部12が記憶した条件指定ファイルと統合定義記憶部13が記憶した統合データ定義ファイルとに基づき、統一的な形式の統合データに変換する。
条件指定記憶部12は、イベント履歴データベース22に記憶されたイベント履歴データに含まれる情報からインスタンスを抽出するための絞込条件を指定した条件指定ファイルを記憶装置に記憶する。条件指定ファイルは、例えば、ファイル操作に関連したイベントのみを抽出する等の条件を指定する。この場合、条件指定ファイルは、例えば、イベント履歴データに実行されたコマンド名が含まれていれば、ファイル操作に関連したコマンド名が記憶されたイベント履歴データを抽出する条件を指定する。
統合定義記憶部13は、条件指定ファイルが指定する条件に基づき抽出されたイベント履歴データの各項目が、統合データのどのカラムに格納されるかを定義した統合データ定義ファイルを記憶装置に記憶する。つまり、統合データ定義ファイルは、例えば、各形式のイベント履歴データのカラムと、統合データのカラムとの対応関係を示す。
統合データ記憶部14は、履歴データ統合部11が変換した統合データを記憶装置に記憶する。
図2は、統合データのデータ形式の一例を示す図である。
図2に示す統合データは、ヘッダ情報110、イベントID120、クラス数130、追跡対象情報140の項目を備える。
ヘッダ情報110は、タイムスタンプ111、元のログ指定情報112を備える。タイムスタンプ111には、イベントの発生した日時情報が記憶される。元のログ指定情報112には、イベント履歴データの抽出元のデータベースとそのデータベースのどのレコードから抽出されたかを示す行番号(レコード番号)とが記憶される。つまり、元のログ指定情報112には、イベント履歴データがどのデータベースのどのレコードから抽出されたかを示す情報が記憶される。
イベントID120には、イベントを一意に特定する識別子が記憶される。イベントID120には、例えば、抽出元のデータベースでそのイベントに付された識別子が記憶されてもよい。
クラス数130には、そのレコードに含まれるクラスの数(追跡対象情報140の数、図2ではn)が記憶される。
追跡対象情報140には、そのイベントに含まれるインスタンスについての情報が記憶される。1つのイベントに複数のインスタンスが含まれる場合は、複数のインスタンスそれぞれについての情報が全て記憶される。追跡対象情報140は、インスタンス毎に、追跡対象クラスID141、追跡対象インスタンスID142、子の個数143、親の個数144、親・子のインスタンスIDバッファ145を備える。
追跡対象クラスID141には、そのインスタンスの属するクラスを一意に識別するクラスIDが記憶される。追跡対象インスタンスID142には、そのインスタンスを一意に識別するインスタンスIDが記憶される。子の個数143には、そのインスタンスの子インスタンスの個数が記憶される。そのインスタンスに子インスタンスがない場合には、0が記憶される。親の個数144には、そのインスタンスの親インスタンスの個数が記憶される。そのインスタンスに親インスタンスがない場合には、0が記憶される。親・子のインスタンスIDバッファ145は、子インスタンス又は親インスタンスがある場合に、その子インスタンス又は親インスタンスとのインスタンスIDが記憶される。
なお、クラスとは、所定の種別を示すものである。例えば、ファイルであることを示すファイルクラス、ユーザであることを示すユーザクラス等である。また、インスタンスとは、追跡対象の実体を示すものである。例えば、ファイルクラスに属するインスタンスであれば、ファイルA、ファイルB等の実際のファイルであるし、ユーザクラスに属するインスタンスであれば、ユーザ1、ユーザ2等の実際のユーザである。
また、子インスタンスとは、そのインスタンスが分割、統合、複製等されることにより発生した新たなインスタンスである。例えば、インスタンスがPCで生成されたファイルであるとすると、ファイルがコピーされ、新たなファイルが生成された場合、新たなファイルはコピー元のファイルの子インスタンスである。一方、上記新たなファイルに対してコピー元のファイルは親インスタンスである。
ここで、例えば、ファイルAがコピーされてファイルBが生成された場合、ファイルAについてのイベント履歴データを辿れば、「ユーザ1によってファイルAがコピーされてファイルBが生成された」という情報を得ることができる。つまり、ファイルAについてのイベント履歴データを辿れば、ファイルBがファイルAの子インスタンスであるという情報を得ることができる。一方、ファイルBについてのイベント履歴データを辿っても、「ユーザ1によってファイルAがコピーされてファイルBが生成された」という情報を得ることはできない。つまり、ファイルBについてのイベント履歴データを辿っても、ファイルAがファイルBの親インスタンスであるという情報を得ることはできない。すなわち、親側のインスタンスから子側のインスタンスを知ることはできるが、子側のインスタンスから親側のインスタンスを知ることはできない。この場合には、親側のインスタンスの子の個数143には、子の数が入れられ、親・子のインスタンスIDバッファ145には子インスタンスのインスタンスIDが入れられる。しかし、子側のインスタンスの親の個数144には、親の数が入れられず、親・子のインスタンスIDバッファ145にも親インスタンスのインスタンスIDは入らない。
また、例えば、電子メールのメッセージ1に対してメッセージ2が返信された場合、メッセージ1に対してメッセージ2は子インスタンスであり、メッセージ2に対してメッセージ1は親インスタンスである。ここで、メッセージ1についてのイベント履歴データからは、メッセージ1に対してメッセージ2が返信されたという情報を得ることができない。つまり、メッセージ1についてのイベント履歴データからは、メッセージ1に対してメッセージ2は子インスタンスであるという情報を得ることはできない。一方、メッセージ2についてのイベント履歴データからは、メッセージ1に対してメッセージ2が返信されたという情報を得ることができる。つまり、メッセージ2についてのイベント履歴データからは、メッセージ2に対してメッセージ1は親インスタンスであるという情報を得ることができる。この場合には、親側のインスタンスの子の個数143には、子の数が入れられず、親・子のインスタンスIDバッファ145にも子インスタンスのインスタンスIDは入らない。しかし、子側のインスタンスの親の個数144には、親の数が入れられ、親・子のインスタンスIDバッファ145には親インスタンスのインスタンスIDが入れられる。
つまり、統合データでは、親側のインスタンスの情報に子側のインスタンスのIDを持たせる、または子側のインスタンスの情報に親側のインスタンスのIDを持たせるだけでよい。そのため、親側のインスタンスから子側のインスタンスを知ることはできるが、子側のインスタンスから親側のインスタンスを知ることはできない場合であっても、子側のインスタンスから親側のインスタンスを知ることはできるが、親側のインスタンスから子側のインスタンスを知ることはできない場合であっても、全てのイベント履歴データを統合データの形式に変換することができる。
要素抽出部15は、統合データ記憶部14から1件ずつイベント履歴データを読み出して、統合定義記憶部13が記憶した統合データ定義ファイルを参照しながら、イベントID、クラスID、追跡対象インスタンスID、親子関係の有無等の後述する挙動インデックスを生成するために必要な情報を抽出する。
クラス情報生成部16とインスタンス情報生成部17とは、要素抽出部15が抽出した情報から固定的な情報を生成して、挙動インデックス記憶部21に記憶する。
順序関係記憶部18と階層関係記憶部19と関係構造記憶部20とは、インスタンス毎に発生したイベントとそのイベントによる状態の変化(挙動)とを関連付けたグラフ構造のデータを生成して、挙動インデックス記憶部21に記憶する。
クラス情報生成部16、インスタンス情報生成部17、順序関係記憶部18、階層関係記憶部19、関係構造記憶部20について詳しくは後述する。
図3は、所定の情報装置(PC等)で生成された電子ファイルに対する操作履歴を例に挙動インデックス記憶部21で管理されるデータモデルの構造を表した図である。
図3は、ファイルAをユーザ1が保存し、そのファイルAをユーザ2がUSB(Universal Serial Bus)メモリにコピーし、さらにコピー元のファイルAをユーザ1が開き、ユーザ2は退室したという挙動を表現している。
図2に示す統合データのデータ形式と、図3に示すグラフ構造とに基づき、クラス情報生成部16、インスタンス情報生成部17、順序関係記憶部18、階層関係記憶部19、関係構造記憶部20について説明する。
クラス情報生成部16は、統合データの追跡対象クラスID141に記憶されたクラスIDに基づき、ファイルクラスとユーザクラスとのクラスを生成する。
インスタンス情報生成部17は、統合データの追跡対象インスタンスID142に記憶されたインスタンスIDに基づき、ファイルクラスにファイルAとファイルBとを、ユーザクラスにユーザ1とユーザ2とのインスタンスを生成する。
順序関係記憶部18は、ファイルAにおける「保存、USBコピー、開く」という順序を示す履歴(順序関係情報)と、ユーザ1における「保存、開く」という順序を示す履歴(順序関係情報)と、ユーザ2における「USBコピー、退室」という順序を示す履歴(順序関係情報)とをそれぞれ生成する。つまり、順序関係記憶部18は、図3に示す横向きの矢印(有向辺)の情報を生成する。
階層関係記憶部19は、USBコピーイベントによりファイルAからファイルBが生成されたことを示す階層関係情報を生成する。つまり、階層関係記憶部19は、図3に示すファイルAからファイルBへの矢印の情報を生成する。
関係構造記憶部20は、ファイルクラスのインスタンスとユーザクラスのインスタンスとの間の対応する(同一の)イベントの関係を示す関係構造情報を生成する。つまり、関係構造記憶部20は、ファイルクラスのインスタンスとユーザクラスのインスタンスとの間の破線矢印の情報を生成する。
挙動インデックス記憶部21は、クラス情報生成部16、インスタンス情報生成部17、順序関係記憶部18、階層関係記憶部19、関係構造記憶部20によって生成された情報を挙動インデックスとして記憶装置に記憶する。
つまり、イベント履歴記憶装置10は、インスタンスに関連して発生したイベントの履歴データを、各インスタンスの状態の変化を示す挙動を関連付けしたグラフ構造によって記憶する。
図4は、挙動インデックスのデータ構造を示す図である。
挙動インデックス200には、クラス毎にクラス情報テーブル210が生成される。つまり、図3の例では、挙動インデックス200には、ファイルクラスとユーザクラスとのそれぞれに対してクラス情報テーブル210が生成される。
各クラス情報テーブル210は、クラスID211、インスタンス数212、インスタンスID配列213を備える。
クラスID211には、そのクラスを識別するクラスIDが記憶される。
インスタンス数212には、そのクラスに属するインスタンスの数が記憶される。
インスタンスID配列213は、そのクラスに属するインスタンス毎にインスタンス情報テーブル220(インスタンス情報記憶領域)が生成される。
つまり、図3のファイルクラスにおいては、クラスID211には、ファイルクラスを示す識別子が記憶される。また、インスタンスは、ファイルAとファイルBとの2つであるので、インスタンス数212には「2」が記憶される。さらに、ファイルAとファイルBとのそれぞれに対してインスタンス情報テーブル220が生成される。
各インスタンス情報テーブル220は、インスタンスヘッダ情報221、挙動ID配列222、子供情報管理配列223、親情報管理配列224を備える。
インスタンスヘッダ情報221には、インスタンスID等の情報が記憶される。
挙動ID配列222には、そのインスタンスに関連して発生したイベントの情報である挙動情報テーブル230(挙動識別子記憶領域)が生成される。つまり、そのインスタンスの状態の変化を示す挙動の情報が記憶される。
子供情報管理配列223には、そのインスタンスの子インスタンスの情報である子インスタンス情報テーブル250(子インスタンス記憶領域)が生成される。
親情報管理配列224には、そのインスタンスの親インスタンスの情報である親インスタンス情報テーブル260(親インスタンス記憶領域)が生成される。
つまり、図3のファイルクラスのファイルAにおいては、インスタンスヘッダ情報221には、ファイルAの識別子が記憶される。また、挙動ID配列222には、ファイルAの「保存」、「USBコピー」、「開く」というそれぞれの挙動についての情報が記憶される。さらに、子供情報管理配列223には、ファイルAの子インスタンスであるファイルBについての情報が記憶される。また、さらに、親情報管理配列224には、ファイルAに親インスタンスがないため、親インスタンスなしを示す情報が記憶される。一方、ファイルBにおいては、インスタンスヘッダ情報221には、ファイルBの識別子が記憶される。また、挙動ID配列222には、ファイルBの「USBコピー」という挙動についての情報が記憶される。さらに、子供情報管理配列223には、ファイルBに子インスタンスがないため、子インスタンスなしを示す情報が記憶される。親情報管理配列224には、ファイルBの親インスタンスであるファイルAについての情報が記憶される。
各挙動情報テーブル230は、挙動ID231、イベントID232、次挙動ID233、前挙動ID234、クラス間関係管理配列235を備える。
挙動ID231には、その挙動を一意に識別する挙動IDが記憶される。挙動とは、イベントによるインスタンスの状態の変化である。つまり、挙動は、イベント毎、インスタンス毎に起こるものであり、挙動IDは、イベント毎、インスタンス毎に割り当てられる。
イベントID232には、その挙動を発生させたイベントのイベントIDが記憶される。
次挙動ID233には、その挙動の次に発生する挙動を示す挙動IDが記憶される。
前挙動ID234には、その挙動の前に発生した挙動を示す挙動IDが記憶される。
クラス間関係管理配列235には、その挙動を発生させたイベントが他のクラスのインスタンスに対して発生させた挙動についての情報(関係構造情報)である関係構造情報テーブル240(関係構造記憶領域)が生成される。
つまり、図3のファイルクラスのファイルAの「USBコピー」という挙動においては、挙動ID231には、ファイルAについての「USBコピー」という挙動を示す挙動IDが記憶される。また、イベントID232には、「USBコピー」のイベントを示すイベントIDが記憶される。さらに、次挙動ID233には、「USBコピー」の次の挙動である「開く」という挙動を示す挙動IDが記憶される。また、さらに、前挙動ID234には、「USBコピー」の前の挙動である「保存」という挙動を示す挙動IDが記憶される。また、クラス間関係管理配列235には、ファイルAの「USBコピー」の挙動を発生させたイベントが、ファイルAが属するファイルクラスと異なるユーザクラスに発生させた挙動(関連した挙動)についての情報が記憶される。つまり、ここでは、ユーザ2の「USBコピー」という挙動についての情報が記憶される。
関係構造情報テーブル240は、クラスID241、インスタンスID242、挙動ID243を備える。
クラスID241には、関連した挙動が発生したインスタンスの属するクラスIDが記憶される。
インスタンスID242には、関連した挙動が発生したインスタンスのインスタンスIDが記憶される。
挙動ID243には、関連した挙動の挙動IDが記憶される。
つまり、ファイルAの「USBコピー」の挙動に関連した挙動であるユーザ2の「USBコピー」という挙動においては、クラスID241には、ユーザクラスのクラスIDが記憶される。また、インスタンスID242には、ユーザ2のユーザIDが記憶される。挙動ID243には、ユーザ2についての「USBコピー」という挙動を示す挙動IDが記憶される。
子インスタンス情報テーブル250は、子インスタンスID251、挙動ID252を備える。
子インスタンスID251には、そのインスタンスの子インスタンスのインスタンスIDが記憶される。
挙動ID252には、子インスタンスを発生させたイベントによる子インスタンスの挙動を示す挙動IDが記憶される。
つまり、図3のファイルクラスのファイルAにおいては、子インスタンスID251には、ファイルAの子インスタンスであるファイルBを示すインスタンスIDが記憶される。また、挙動ID252には、ファイルBが発生した挙動であって、ファイルBについての挙動である「USBコピー」という挙動を示す挙動IDが記憶される。つまり、挙動ID252には、図3において、ファイルAからファイルBへの矢印の挙動を示す挙動IDが記憶される。
親インスタンス情報テーブル260は、親インスタンスID261、挙動ID262を備える。
親インスタンスID261には、そのインスタンスの親インスタンスのインスタンスIDが記憶される。
挙動ID262には、そのインスタンスを発生させたイベントによる親インスタンスの挙動を示す挙動IDが記憶される。
つまり、図3のファイルクラスのファイルBにおいては、親インスタンスID261には、ファイルBの親インスタンスであるファイルAを示すインスタンスIDが記憶される。また、挙動ID262には、ファイルBが発生した挙動であって、ファイルAについての挙動である「USBコピー」という挙動を示す挙動IDが記憶される。つまり、挙動ID262には、図3において、ファイルAについてのUSBコピーの挙動を示すの横向き矢印の挙動IDが記憶される。
次に、挙動インデックスの生成処理について説明する。
まず、クラス情報生成部16、インスタンス情報生成部17、順序関係記憶部18による処理について説明する。図5は、クラス情報生成部16、インスタンス情報生成部17、順序関係記憶部18による順序関係情報生成処理を示すフローチャートである。
順序関係情報生成処理では、統合データの1レコードを要素抽出部15が読み込み、そのレコードに含まれる情報を取得し、そのレコードに含まれる追跡対象情報140の数だけ以下の処理を行なう。なお、順序関係情報生成処理は、統合データの前のレコードから後のレコードへ順に実行される。つまり、先に発生したイベントについてのレコードから後に発生したイベントについてのレコードへ順に行う。順序関係情報生成処理を行うことにより、図3に示す各クラスの情報と、各インスタンスの情報と、各インスタンスにおける挙動の順序(横向きの矢印)の情報とが生成される。
(S101):要素抽出部15は、統合データの未処理レコードの最も前のレコードから、クラス数130に記憶された、そのレコードに記憶されているクラスの数(追跡対象情報140の数)を取得する。
(S102):要素抽出部15は、(S101)で取得したクラスの数に基づき、すべての追跡対象情報140についての処理を行ったか否かを判定する。すべての追跡対象情報140についての処理を行ったと判定した場合(S102でYES)、処理を終了する。一方、すべての追跡対象情報140についての処理を行っていないと判定した場合(S102でNO)、(S103)へ進む。
(S103):要素抽出部15は、処理の済んでいない追跡対象情報140の追跡対象クラスID141に記憶されたクラスIDを取得する。
(S104):クラス情報生成部16は、(S103)で取得したクラスIDについての処理が済んでいるか否か、つまりそのクラスIDについてのクラス情報テーブル210を生成済であるか否かを判定する。そのクラスIDについての処理が済んでいると判定した場合(S104でYES)、(S107)へ進む。一方、そのクラスIDについての処理が済んでいないと判定した場合(S104でNO)、(S105)へ進む。
(S105):クラス情報生成部16は、(S103)で取得したクラスIDについてのクラス情報テーブル210を生成する。
(S106):クラス情報生成部16は、(S105)で生成したクラス情報テーブル210に情報を格納する。なお初期情報としては、クラスID211のみに情報を格納し、インスタンス数212には0、インスタンスID配列213にはNULLを格納する。
(S107):要素抽出部15は、上記追跡対象情報140((S103)でクラスIDを取得した追跡対象情報140)の追跡対象インスタンスID142に記憶されたインスタンスIDを取得する。
(S108):インスタンス情報生成部17は、(S107)で取得したインスタンスIDについての処理が済んでいるか否か、つまりそのインスタンスIDについてのインスタンス情報テーブル220を生成済であるか否かを判定する。そのインスタンスIDについての処理が済んでいると判定した場合(S108でYES)、(S111)へ進む。一方、そのインスタンスIDについての処理が済んでいないと判定した場合(S108でNO)、(S109)へ進む。
(S109):インスタンス情報生成部17は、(S107)で取得したインスタンスIDについてのインスタンス情報テーブル220を生成する。
(S110):インスタンス情報生成部17は、(S109)で生成したインスタンス情報テーブル220のインスタンスヘッダ情報221に情報を格納する。合わせて、インスタンス数212のインスタンス数に1加算(インクリメント)する。
(S111):順序関係記憶部18は、(S107)で取得したインスタンスIDに対しての挙動情報テーブル230を生成する。
(S112):順序関係記憶部18は、このレコードのイベントID120に記憶されたイベントIDを取得して、このイベントIDが示すイベントについての上記インスタンスIDに対する挙動IDを生成する。そして、順序関係記憶部18は、生成した挙動IDを挙動ID231に記憶するとともに、上記イベントIDをイベントID232に記憶する。
(S113):順序関係記憶部18は、現在処理している挙動情報テーブル230の前挙動ID234に1つ前の挙動の挙動IDを記憶する。つまり、順序関係記憶部18は、現在処理しているインスタンスについての挙動であって、(S112)で記憶した挙動IDが示す挙動の1つ前の挙動の挙動IDを前挙動ID234に記憶する。順序関係記憶部18は、例えば、現在処理しているインスタンス情報テーブル220の挙動ID配列222から、最後尾の挙動情報テーブル230を検索して、その挙動情報テーブル230の挙動ID231に記憶された挙動IDを取得することにより、1つ前の挙動の挙動IDを取得することができる。
(S114):順序関係記憶部18は、現在処理している挙動情報テーブル230の次挙動ID233に0を記憶する。次の挙動IDに0が格納されている場合は、次の挙動が存在しないこと、つまりこの挙動情報テーブル230が最後尾の挙動であることを表す。
(S115):順序関係記憶部18は、上記最後尾の挙動情報テーブル230の次挙動ID233に現在の(S112)で生成した挙動IDを記憶する。
(S116):現在処理している挙動情報テーブル230を挙動ID配列222の最後尾に追加する。
つまり、順序関係記憶部18は、所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに挙動識別子を付し、そのインスタンスに関連して発生したイベントの発生順序を上記挙動識別子により表した順序関係情報を記憶装置に記憶する。
次に、階層関係記憶部19による処理について説明する。図6は、階層関係記憶部19による階層関係情報生成処理を示すフローチャートである。
ここでは、図5に基づき説明した順序関係情報生成処理に続き、階層関係情報生成処理を実行する。つまり、順序関係情報生成処理の1レコード分の処理の終了に続き、以下に説明する(S201)を実行する。この場合以下で説明する(S201)では、順序関係情報生成処理で対象としたレコードの追跡対象情報140から情報を取得するものとする。なお、順序関係情報生成処理の1レコード分の処理の終了に続き階層関係情報生成処理を実行しなくてもよいが、親となる側の挙動情報テーブル230が順序関係情報生成処理で生成されている必要がある。
階層関係情報生成処理を統合データの各レコードに対して行うことにより、図2に示す同一クラス内におけるインスタンス間を接続する挙動(斜めの実線矢印)の情報が生成される。
(S201):要素抽出部15は、所定のレコードの所定の追跡対象情報140の子の個数143に記憶された値を取得する。
なお、以下の説明で、上記所定のレコードを現在処理しているレコードと呼び、上記所定の追跡対象情報140の追跡対象インスタンスID142に記憶されたインスタンスIDを現在処理しているインスタンスIDと呼ぶ。また、上記所定の追跡対象情報140の追跡対象クラスID141に記憶されたクラスIDから特定されるクラス情報テーブル210を現在処理しているクラス情報テーブル210と呼び、上記現在処理しているインスタンスIDから特定されるインスタンス情報テーブル220を現在処理しているインスタンス情報テーブル220と呼ぶ。
(S202):階層関係記憶部19は、(S201)で取得した値に基づき、そのインスタンスに子インスタンスが存在するか否かを判定する。つまり、階層関係記憶部19は、取得した値が0であれば、子インスタンスが存在しないと判定し、それ以外であれば子インスタンスが存在すると判定する。子インスタンスが存在すると判定した場合(S202でYES)、(S203)へ進む。一方、子インスタンスが存在しないと判定した場合(S202でNO)、処理を終了する。
(S203):階層関係記憶部19は、親・子のインスタンスIDバッファ145に記憶した子インスタンスのインスタンスIDを取得する。
(S204):階層関係記憶部19は、(S203)で取得した子インスタンスのインスタンスIDについてのインスタンス情報テーブル220が既に存在するか否かを判定する。インスタンス情報テーブル220が既に存在すると判定した場合(S204でYES)、(S206)へ進む。一方、インスタンス情報テーブル220がまだ存在しないと判定した場合(S204でNO)、(S205)へ進む。
(S205):階層関係記憶部19は、現在処理しているクラス情報テーブル210のインスタンスID配列213に子インスタンスのインスタンスIDについてのインスタンス情報テーブル220を生成する。そして、生成したインスタンス情報テーブル220のインスタンスヘッダ情報221に子インスタンスのインスタンスIDを記憶する。
(S206):階層関係記憶部19は、(S205)で生成したインスタンス情報テーブル220の親情報管理配列224の最後尾に、親インスタンス情報テーブル260を生成する。そして、階層関係記憶部19は、生成した親インスタンス情報テーブル260の親インスタンスID261に現在処理しているインスタンスIDを記憶するとともに、挙動ID262に、現在処理しているレコードのイベントについての現在処理しているインスタンスに対する挙動IDを記憶する。なお、この挙動IDは、既に順序関係情報生成処理にて生成されている。
また、階層関係記憶部19は、(S205)で生成した子インスタンスについてのインスタンス情報テーブル220の挙動ID配列222の最後尾に、挙動情報テーブル230を生成する。階層関係記憶部19は、現在処理しているレコードのイベントについての子インスタンスに対する挙動IDを生成して、生成した挙動情報テーブル230の挙動ID231に記憶する。また、階層関係記憶部19は、上記イベントのイベントIDをイベントID232に記憶する。さらに、階層関係記憶部19は、次挙動ID233と前挙動ID234とに0を記憶する。
(S207):階層関係記憶部19は、現在処理しているインスタンス情報テーブル220の子供情報管理配列223の最後尾に、子インスタンスについての子インスタンス情報テーブル250を生成する。そして、階層関係記憶部19は、子インスタンスのインスタンスIDを生成した子インスタンス情報テーブル250の子インスタンスID251に記憶するとともに、(S206)で生成した挙動IDを挙動ID252に記憶する。
(S208):階層関係記憶部19は、(S201)で取得した値が示す子インスタンスの個数分処理を実行したか否かを判定する。子インスタンスの個数分処理を実行したと判定した場合(S208でYES)、処理を終了する。一方、子インスタンスの個数分処理を実行していないと判定した場合(S208でNO)、(S203)へ戻る。
以上の処理は、親側のインスタンスから子側のインスタンスを知ることができる場合を例として説明した。しかし、子側のインスタンスから親側のインスタンスを知ることができる場合についても、上記処理の親と子とを読み替えして、同様の考え方による処理を行うことで実現できる。
つまり、階層関係記憶部19は、順序関係記憶部18が発生順序を記憶したイベントによってあるインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対する新たな挙動識別子を付し、上記イベントについて発生元のインスタンスに対して付された挙動識別子と上記新たな挙動識別子とを関連付けした階層関係情報を記憶装置に記憶する。
また、階層関係記憶部19は、新たなインスタンスに付された新たな識別子を子とし、発生元のインスタンスに対して付された識別子を親として、上記新たな識別子と発生元のインスタンスに対して付された識別子とを関連付けした階層関係情報を記憶する。
次に、関係構造記憶部20による処理について説明する。図7は、関係構造記憶部20による関係構造情報生成処理を示すフローチャートである。
ここでは、図5と図6とに基づき説明した順序関係情報生成処理と階層関係情報生成処理とに続き、階層関係情報生成処理を実行する。つまり、階層関係情報生成処理の1レコード分の処理の終了に続き、以下に説明する(S301)を実行する。この場合、(S301)では、順序関係情報生成処理と階層関係情報生成処理とで対象としたレコードから情報を取得する。なお、階層関係情報生成処理の1レコード分の処理の終了に続き、以下に説明する(S301)を実行しなくてもよい。しかし、関係構造情報生成処理の前に、順序関係情報生成処理と階層関係情報生成処理とにより、各クラスの情報と、各インスタンスの情報と、各インスタンスにおける挙動の順序の情報と、同一クラス内におけるインスタンス間を接続する挙動の情報とが生成されている必要がある。
関係構造情報生成処理を統合データの各レコードに対して行うことにより、図2に示すクラス間におけるインスタンス間の関係(破線の矢印)の情報が生成される。
(S301):関係構造記憶部20は、統合データから取得した1つのレコード内に異なるクラスに属するインスタンスが存在するか否かを判定する。例えば、要素抽出部15は、レコードの全ての追跡対象情報140の追跡対象クラスID141に記憶されたクラスIDを取得する。そして、関係構造記憶部20は、要素抽出部15が取得したクラスIDに異なるクラスIDが存在するか否かを判定することにより、異なるクラスに属するインスタンスが存在するかを判定する。異なるクラスに属するインスタンスが存在すると判定した場合(S301でYES)、(S302)へ進む。一方、異なるクラスに属するインスタンスが存在しないと判定した場合(S301でNO)、処理を終了する。
(S302):要素抽出部15は、統合データの異なるクラスに属する追跡対象情報140の追跡対象クラスID141と追跡対象インスタンスID142とに記憶されたクラスIDとインスタンスIDとをそれぞれ取得する。つまり、統合データの1つのレコードに2つの追跡対象情報140が存在し、それぞれ異なるクラスに属する場合には、各追跡対象情報140からクラスIDとインスタンスIDとを取得する。
(S303):関係構造記憶部20は、(S302)で取得した各インスタンスIDから特定されるインスタンス情報テーブル220の挙動ID配列222に登録された挙動情報テーブル230であって、現在処理しているレコードのイベントID120に記憶されたイベントIDについての挙動情報テーブル230のクラス間関係管理配列235の最後尾に、関係構造情報テーブル240を生成する。つまり、図3の「保存」のイベントのレコードを取得した場合には、ファイルAについてのインスタンス情報テーブル220の「保存」イベントについての挙動情報テーブル230のクラス間関係管理配列235と、ユーザ1についてのインスタンス情報テーブル220の「保存」イベントについての挙動情報テーブル230のクラス間関係管理配列235とにそれぞれ、関係構造情報テーブル240を生成する。そして、関係構造記憶部20は、生成した関係構造情報テーブル240のそれぞれのクラスID241とインスタンスID242と挙動ID243に、(S302)で取得した相手側のクラスIDとインスタンスIDと挙動IDとをそれぞれ記憶する。つまり、図3の「保存」のイベントのレコードを取得した場合には、ファイルAのクラス間関係管理配列235には、ユーザ1のクラスID「ユーザクラス」と、インスタンスID「ユーザ1」と、保存についてのユーザ1に対する挙動IDとを記憶する。また、ユーザ1のクラス間関係管理配列235には、ファイルAのクラスID「ファイルクラス」と、インスタンスID「ファイルA」と、保存についてのファイルAに対する挙動IDとを記憶する。
つまり、関係構造記憶部20は、順序関係記憶部18と階層関係記憶部19とのいずれかが異なるクラスに属するインスタンスに対して付した挙動識別子であって、同一のイベントについて付した挙動識別子を関連付けした関係構造情報を記憶装置に記憶する。
以上の順序関係情報生成処理と階層関係情報生成処理と関係構造情報生成処理とにより、挙動インデックスが生成され、挙動インデックス記憶部21には生成された挙動インデックスが記憶される。
以上のように、この実施の形態に係るイベント履歴記憶装置10によれば、インスタンスに関連して発生したイベントの履歴データを、インスタンスの挙動のグラフ構造として表す。この挙動のグラフ構造を辿ることにより、インスタンスに関連して発生したイベントの履歴(インスタンスの振舞い)を追跡することができるとともに、インスタンスから新たなインスタンスが発生する場合であっても、元のインスタンスと新たなインスタンスとを容易に連続して追跡することができる。
また、同様に、イベント履歴記憶装置10は、異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けする。したがって、あるインスタンス(ファイル)についての動作を異なるクラス(ユーザ)の視点から容易に追跡することができる。
実施の形態2.
この実施の形態では、実施の形態1で説明したイベント履歴記憶装置10が記憶した挙動インデックスを用いて、イベント履歴の追跡を行う方法について説明する。
図8は、この実施の形態に係るイベント履歴追跡装置30の機能を示す機能ブロック図である。イベント履歴追跡装置30は、順序関係追跡部31、階層関係追跡部32、クラス間関係追跡部33を備える。
順序関係追跡部31は、追跡条件として指定されたクラスIDとインスタンスIDから特定されるインスタンスの順序関係情報(挙動IDの前後関係)に基づき、インスタンスに関連して発生したイベントの発生順序を処理装置により追跡する。つまり、順序関係追跡部31は、条件入力部34が入力した条件情報により特定されるインスタンスに関連して発生したイベントを順序関係記憶部18が記憶した順序関係情報が示す順に取得して追跡する。
階層関係追跡部32は、階層関係情報に基づき、インスタンスの子インスタンスまたは親インスタンスを追跡する。つまり、階層関係追跡部32は、順序関係追跡部31が取得したイベントに付された挙動識別子と上記階層関係記憶部が関連付けした挙動識別子を辿ることにより、上記条件情報により特定されるインスタンスから発生した新たなインスタンス又は上記条件情報により特定されるインスタンスの発生元のインスタンスである次の階層のインスタンスと、上記次の階層のインスタンスに関連して発生したイベントとを取得して追跡する。さらに、階層関係追跡部32により追跡した子インスタンスまたは親インスタンスについて、順序関係追跡部31は、順序関係構造に基づきイベントの発生順序を処理装置により追跡する。
クラス間関係追跡部33は、順序関係追跡部31が追跡した挙動IDに関連付けされた異なるクラスに属するインスタンスID及び挙動IDを追跡して、他のクラスに属するインスタンスを処理装置により追跡する。つまり、クラス間関係追跡部33は、順序関係追跡部31と階層関係追跡部32とが取得したイベントに付された挙動識別子と関係構造記憶部20が関連付けした挙動識別子であって、追跡範囲として指定されたクラスに属するインスタンスに付された挙動識別子を辿ることにより、上記条件情報により特定されるインスタンスに関連するとともに追跡範囲として指定されたクラスに属するインスタンスである他クラスインスタンスと、上記他クラスインスタンスに関連して発生したイベントとを取得して追跡する。
条件入力部34は、追跡する対象となるインスタンスを特定する条件情報と追跡する範囲を絞り込むための範囲情報(追跡範囲)を入力装置により入力する。
ここでは、メールの送受信履歴の例を用いて、イベント履歴追跡処理について説明する。
図9は、メールの送受信履歴をイメージ化した図である。
図9は、ユーザAがユーザBとユーザCとへメッセージ1を送信し(1)、次に、ユーザBがユーザAへメッセージを1への返信としてメッセージ2を送信した(2)という挙動を表現している。
なお、メッセージを識別するIDやユーザを識別するIDとしては本来はメッセージIDやメールアドレスなどの一意性を確保できるものが使われるべきであるがここでは抽象化して表現している。
図10は、図9で示したメールの送受信履歴データに対して、実施の形態1で説明したイベント履歴記憶装置10が生成した挙動インデックスのデータモデルの構造を示した図である。
図10において、メールの送受信履歴で追跡の対象となるクラスは、メッセージクラスとユーザクラスとである。メッセージクラスには、インスタンスとしてメッセージ1とメッセージ2とが存在する。ユーザクラスにはインスタンスとしてユーザA、ユーザB、ユーザCが存在する。これらインスタンスで生成された挙動のデータモデル構造がグラフ構造をとして表現される。
次に、挙動インデックスに基づき、イベント履歴を追跡するイベント履歴追跡処理について説明する。図11は、イベント履歴追跡装置30によるイベント履歴追跡処理を示すフローチャートである。
(S401):条件入力部34は、追跡条件を入力する。追跡条件として、追跡対象のデータを指定するクラスIDとインスタンスIDと、追跡範囲を指定するクラスIDを入力する。例えば、追跡条件として、メールのメッセージを一意に識別するインスタンスID(ここでは、メッセージ1)と、追跡範囲としてユーザクラスを指定する。この追跡条件により指定したメッセージ1が誰に配信されたかを追跡する。なお、ここでは追跡範囲クラスを1つ指定しているが、複数個指定することも可能である。
(S402):順序関係追跡部31は、(S401)で入力されたクラスIDとインスタンスIDとに基づき、追跡するインスタンスについてのインスタンス情報テーブル220を特定する。
(S403):順序関係追跡部31は、(S402)で特定したインスタンス情報テーブル220の挙動ID配列222の先頭に登録された挙動情報テーブル230を特定する。
(S404):順序関係追跡部31は、(S403)で特定した挙動情報テーブル230に記憶された挙動情報を取得する。
(S405):クラス間関係追跡部33は、(S403)で取得した挙動情報テーブル230のクラス間関係管理配列235に登録された関係構造情報テーブル240から、追跡範囲として指定されたクラスIDがクラスID241に記憶された関係構造情報テーブル240を検索する。そして、クラス間関係追跡部33は、検索した関係構造情報テーブル240のインスタンスID242に記憶されたインスタンスIDと、挙動ID243に記憶された挙動IDとを取得する。
例えば、図9と図10に示す例においては、追跡条件として指定されたメッセージ1の初めの挙動である「送信」と関連付けされた他のクラスに属するインスタンスであるユーザAと、挙動「送信」とが取得される。つまり、メッセージ1をユーザAが送信したという情報が得られる。
(S406):順序関係追跡部31は、(S402)で特定したインスタンス情報テーブル220の挙動ID配列222のすべての挙動情報テーブル230から挙動情報を取得したか否かを判定する。すべての挙動情報テーブル230から挙動情報を取得したと判定した場合(S406でYES)、(S408)へ進む。一方、すべての挙動情報テーブル230から挙動情報を取得していないと判定した場合(S406でNO)、(S407)へ進む。
(S407):順序関係追跡部31は、現在処理している挙動情報テーブル230の次挙動ID233に基づき、次の挙動情報テーブル230を特定する。そして、(S404)へ戻り、特定した次の挙動情報テーブル230から挙動情報を取得し、クラス間関係追跡部33は、次の挙動情報テーブル230のクラス間関係管理配列235に登録された関係構造情報テーブル240から、追跡範囲として指定されたクラスのインスタンスIDと、その挙動IDとを取得する。
例えば、図9と図10に示す例においては、追跡条件として指定されたメッセージ1の次の挙動である「受信」と関連付けされた他のクラスに属するインスタンスであるユーザBと、挙動「受信」、及びユーザCと、挙動「受信」とが取得される。つまり、メッセージ1をユーザBとユーザCとが受信したという情報が得られる。そして、メッセージ1には次の挙動がないため、(S406でYES)となり(S408)へ進む。
(S408):階層関係追跡部32は、(S402)で特定したインスタンス情報テーブル220の子供情報管理配列223を参照して、このインスタンスから発生した子インスタンスが存在するか否かを判定する。子インスタンスが存在すると判定した場合(S408でYES)、(S409)へ進む。一方、子インスタンスが存在しないと判定した場合(S408でNO)、処理を終了する。
(S409):階層関係追跡部32は、子供情報管理配列223の子インスタンス情報テーブル250の子インスタンスID251に記憶されたインスタンスIDを取得する。そして、(S401)で入力されたクラスIDと、取得したインスタンスIDとを追跡条件として、(S402)へ戻り追跡処理を行う。なお、子供情報管理配列223に複数の子インスタンス情報テーブル250が登録されている場合には、各子インスタンス情報テーブル250の子インスタンスID251に記憶されたインスタンスIDを追跡条件として追跡処理を行う。
例えば、図9と図10に示す例においては、追跡条件として指定されたメッセージ1の子インスタンスとしてメッセージ2が登録されている。そこで、メッセージ2を追跡条件として、追跡処理を行う。すると、メッセージ2の初めの挙動である「送信」と関連付けされた他のクラスに属するインスタンスであるユーザBと、挙動「送信」とが取得される。つまり、メッセージ2をユーザBが送信したという情報が得られる。続いて、メッセージ2の次の挙動である「受信」と関連付けされた他のクラスに属するインスタンスであるユーザAと、挙動「受信」とが取得される。つまり、メッセージ2をユーザAが受信したという情報が得られる。そして、メッセージ2には次の挙動がないため、(S406でYES)となり(S408)へ進む。また、メッセージ2には子インスタンスがないため、処理が終了する。
上記の例では追跡条件として指定したメッセージIDが最初に送信されたものでありグラフ構造のルートとなるインスタンスであった。そのため、階層関係追跡部32は、親インスタンスの追跡処理を行うことなく、子インスタンスの追跡処理のみ行えば足りた。しかし、例えば、メッセージ2を追跡対象するインスタンスとして指定した場合は、子インスタンスの追跡では何も情報を得ることができない。一方、メッセージ2には親インスタンスが存在しており、親インスタンスの追跡処理が必要である。
つまり、階層関係追跡部32が親インスタンスの階層関係を辿ってルートとなるインスタンス(図10であれば、メッセージ1)を取得し、その取得したルートメッセージに対して図11の手順にしたがって追跡する必要がある。なお、ルートとなるインスタンスとは、親インスタンスを持たないインスタンスのことである。
次に、親インスタンスの階層関係を辿りルートとなるインスタンスを取得する手順について説明する。図12は、ルートとなるインスタンスを取得する処理を示すフローチャートである。
(S501):(S401)と(S402)と同様に、順序関係追跡部31は、追跡対象するインスタンスについてのインスタンス情報テーブル220を特定する。
(S502):(S501)で特定したインスタンス情報テーブル220の親情報管理配列224を参照して、このインスタンスの発生元である親インスタンスが存在するか否かを判定する。親インスタンスが存在すると判定した場合(S502でYES)、(S503)へ進む。一方、親インスタンスが存在しないと判定した場合(S502でNO)、(S505)へ進む。
(S503):階層関係追跡部32は、上記親情報管理配列224に登録された親インスタンス情報テーブル260の親インスタンスID261に記憶されたインスタンスIDを取得する。
(S504):階層関係追跡部32は、(S503)で取得したインスタンスIDを追跡対象のインスタンスIDとして(S502)へ戻り、処理を繰り返す。
(S505):階層関係追跡部32は、そのインスタンスをルートとして終了する。
以上の処理によりルートとなるインスタンスが判明する。そこで、ルートとなるインスタンスを指定して、図11に基づき説明したイベント履歴追跡処理を行うことで、すべてのイベントを追跡することができる。
なお、(S503)で親情報管理配列224に複数の親インスタンス情報テーブル260が登録されている場合には、各親インスタンス情報テーブル260の親インスタンスID261に記憶されたインスタンスIDを取得し、各インスタンスIDに対して親インスタンスを探す処理を行う。つまり、ルートとなるインスタンスが複数存在する場合もある。この場合には、ルートとなる複数のインスタンスそれぞれから図11に基づき説明したイベント履歴追跡処理を行う。
なお、ここではルートとなるインスタンスを取得することが目的であったため挙動の情報を取得するステップを省略したが、挙動情報が必要な場合は子供のIDを取得した場合と同様の手順で親の挙動情報を取得することができる。
以上のように、この実施の形態に係るイベント履歴追跡装置30によれば、イベント履歴記憶装置10がインスタンスの挙動のグラフ構造として表して記憶したイベントの履歴データから、インスタンスに関連して発生したイベントの履歴(インスタンスの振舞い)を追跡することができるとともに、インスタンスから新たなインスタンスが発生する場合であっても、元のインスタンスと新たなインスタンスとを容易に連続して追跡することができる。
また、同様に、イベント履歴追跡装置30によれば、あるインスタンス(例えば、メッセージ1)についての動作を異なるインスタンス(ユーザ)の視点から容易に追跡することができる。
実施の形態3.
この実施の形態では、実施の形態2とは異なるイベント履歴の追跡処理の例について説明する。特に、この実施の形態では、追跡する階層レベルを指定した追跡処理について説明する。
ここで、階層とは、インスタンスの親子関係のことであり、階層レベルとは、何階層離れているかを意味する。つまり、所定のインスタンスに対して、子インスタンスは1階層(1レベル)離れている。また、上記子インスタンスの子インスタンスは、上記所定のインスタンスに対して2階層(2レベル)離れている。同様に、所定のインスタンスに対して、親インスタンスは−1階層(−1レベル)離れている。また、上記親インスタンスの親インスタンスは、上記所定のインスタンスに対して−2階層(−2レベル)離れている。
図13は、製造工程をイメージ化した図である。
図13では、工程として攪拌工程、燃焼工程、冷却工程の3つの工程を備える。それぞれの工程で製造単位を一意に識別する製造単位番号(バッチ番号)が割り当てられている。攪拌工程では攪拌1、燃焼工程では燃焼1から燃焼nまで、冷却工程では冷却1から冷却nまでが製造単位番号である。
なお工程の前後の製造単位番号の関連性(たとえば攪拌1と燃焼1)はシステムで管理されているものとする。また、挙動インデックスの構造としては各工程がクラスに、製造単位番号がインスタンスに該当する。
図13において、燃焼工程の次の工程は冷却工程であり、燃焼1の次に冷却1へと進む。ここで、燃焼1されたものの一部は再生処理として再度燃焼工程に戻り燃焼2へ進む。このような操作の場合、燃焼1と燃焼2とは挙動インデックスで階層関係構造として管理される。つまり、燃焼1(インスタンス)の子インスタンスとして燃焼2が管理され、燃焼2の子インスタンスとして燃焼3が管理される。
つまり、燃焼2に対して、燃焼3は1階層(1レベル)離れている。また、燃焼4は、燃焼2に対して2階層(2レベル)離れている。同様に、燃焼2に対して、燃焼1は−1階層(−1レベル)離れている。
ここで、ある製造単位番号を指定して上流工程から下流工程、又は下流工程から上流工程へインスタンスを追跡する場合、すべての情報を追跡するのではなく、あらかじめ指定した深さまで追跡してそれ以上の深さの追跡を打ち切ることが想定される。そのような追跡では追跡の範囲として階層のレベルを指定して追跡を実行する。
次に、挙動インデックスに基づき、指定された階層レベルまでイベント履歴を追跡するイベント履歴追跡処理について説明する。図14は、指定された階層レベルまでイベント履歴を追跡するイベント履歴追跡処理を示すフローチャートである。
(S601):条件入力部34は、追跡条件を入力する。追跡条件として、追跡対象のデータを指定するクラスIDとインスタンスIDと、追跡範囲を指定するクラスIDと、追跡する階層レベルとを入力する。例えば、追跡条件として、製造単位番号を一意に識別するインスタンスID(ここでは、燃焼2)と、追跡範囲として燃焼クラスと、階層レベルn(ここでは、n=2)とを指定する。
(S602):階層関係追跡部32は、現在の階層レベルを表す値Dに0をセットする。階層レベルを表す値はこのように挙動インデックス内部に固定的に持つのではなく追跡時に動的に算出することにより挙動インデックスの更新がきわめて容易になる。
(S603):順序関係追跡部31は、(S601)で入力されたクラスIDとインスタンスIDとに基づき、インスタンスについてのインスタンス情報テーブル220を特定する。
(S604):(S403)から(S407)までの処理を実行する。
(S605):階層関係追跡部32は、条件として指定された階層レベルnと、現在の階層レベルの値Dとを比較して、D≧nであるか否かを判定する。D≧nであると判定した場合(S605でYES)、処理を終了する。一方、D≧nでないと判定した場合(S605でNO)、(S606)へ進む。
(S606):階層関係追跡部32は、(S602)で特定したインスタンス情報テーブル220の子供情報管理配列223を参照して、このインスタンスから発生した子インスタンスが存在するか否かを判定する。子インスタンスが存在すると判定した場合(S606でYES)、(S607)へ進む。一方、子インスタンスが存在しないと判定した場合(S606でNO)、処理を終了する。
(S607):階層関係追跡部32は、現在の階層レベルを表す値Dに1加算(インクリメント)する。
例えば、図13に示す例においては、条件として階層レベルを2と指定したため、インスタンスとして指定した燃焼2の2階層下の燃焼4まで追跡するが、それよりも下の階層(燃焼5以降)は追跡しない。
また燃焼2をインスタンスインスタンスID、打ち切りの階層レベルnに±1を指定すると燃焼1と燃焼3とを追跡することになる。
図14の手順では指定する階層レベルを指定する値が正の場合を想定して処理手順を説明したが、値が負の場合であれば(S607)で−1加算(デクリメント)し、(S606)で親がいるかどうかの判定を行うことで親インスタンスの追跡においても階層レベルを指定して追跡することが可能である。
以上のように、この実施の形態に係るイベント履歴追跡装置30によれば、追跡する階層レベルを限定して追跡を行うことができる。
以上実施の形態では、例としてファイル操作、メール送受信、製造工程などの履歴データを例として説明したがこれに限定されるものではなく、別の例として、入退室ログによる人の行動パターンの追跡、ネットワーク通信ログによる通信経路の追跡等、いなかるイベント履歴の追跡へも適用することができる。
以上をまとめると以下のようになる。
上記実施の形態に係る履歴追跡型データ管理方式は、複数の蓄積された履歴データを処理する装置において、履歴データの1単位に含まれる1つ以上のインスタンスを抽出するインスタンス抽出手段と、前記インスタンス抽出手段によって抽出されたインスタンスにおいて発生したイベントによるインスタンスの順序関係を管理する順序関係構造管理手段と、発生したイベントにおいてインスタンスが統合または分割される場合においてインスタンスの階層関係を管理する階層関係構造管理手段と、発生したあるイベントに対して複数の異なるクラスに属するインスタンスが関係する場合において異なるクラスに属するインスタンス間の関連性を管理するクラス間関係構造管理手段とを備えることを特徴とする。
また、上記実施の形態に係る履歴追跡型データ管理方式は、さらに、前記履歴データを事前に定義ファイルに指定した統一的な形式のデータに統合する履歴データ統合手段を備えることを特徴とする。
また、前記履歴データ統合手段は、事前にインスタンス条件などを定義ファイルに指定することで全履歴データの中から必要な対象だけを統合データに生成するインスタンス絞込み機能を備えることを特徴とする。
また、上記実施の形態に係る履歴追跡型データ管理方式は、さらに、前記履歴データから個々のインスタンス及びインスタンスに発生した動作を抽出する要素抽出手段を備えることを特徴とする。
また、前記順序関係構造管理手段は、すべてのインスタンスに発生したイベントとインスタンスの状態をテーブルに管理し、そのテーブルに一意に識別可能な挙動IDを付加し、かつ挙動IDの前後関係を管理するための挙動管理機能を備えたことを特徴とする。
また、前記階層関係構造管理手段は、あるイベントがインスタンスを同一クラス内で分割、統合、複製を発生させる場合において異なるインスタンス間で発生する関係でイベント発生前のインスタンスを親として識別する親ID識別機能と、イベント発生後のインスタンスを子供として識別する子ID識別機能と、親または子のIDに関連するインスタンスのイベントを管理する階層情報管理機能とを備えることを特徴とする。
また、前記クラス間関係構造管理手段は、あるイベントが発生した場合において該イベントに対して属するクラスが異なる複数のインスタンスが関連するとき、異なるクラスに属するインスタンスの挙動間を関係付けて管理するクラス間関係管理機能を備えることを特徴とする。
また、前記順序関係構造管理手段と階層関係管理手段とクラス間関係構造管理手段によって生成された3つの関係構造を挙動インデックスとして生成する挙動インデックス生成手段とを備えることを特徴とする。
また、上記実施の形態に係る履歴追跡型データ管理方式は、指定したインスタンスの振舞いを前記挙動インデックスが管理する前記順序関係を指定したインスタンスに基づいて追跡する順序関係追跡手段と、階層関係を階層構造関係に基づいて追跡する階層関係追跡手段と、異なるクラス間におけるクラス間関係に基づいて追跡するクラス間関係追跡手段とを備えることを特徴とする。
また、前記クラス間関係追跡手段は、ユーザの入力により追跡する範囲となるクラスを複数指定する追跡範囲指定機能と、指定された範囲のクラスだけに限定して追跡する追跡範囲クラス限定機能を備えることを特徴とする。
また、前記階層関係追跡手段は、ユーザの入力により階層のレベルを指定するレベル指定機能と、指定されたレベルの階層内に追跡範囲を限定する階層レベル限定追跡機能を備えることを特徴とする。
次に、上記実施の形態におけるイベント履歴記憶装置10とイベント履歴追跡装置30とのハードウェア構成について説明する。
図15は、イベント履歴記憶装置10とイベント履歴追跡装置30とのハードウェア構成の一例を示す図である。
図15に示すように、イベント履歴記憶装置10とイベント履歴追跡装置30とは、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902、マウス903、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ROM913、磁気ディスク装置920は、不揮発性メモリの一例である。RAM914は、揮発性メモリの一例である。ROM913とRAM914と磁気ディスク装置920とは、記憶装置の一例である。通信ボード915とキーボード902とは、入力装置の一例である。また、通信ボード915は、出力装置の一例である。さらに、通信ボード915は、通信装置の一例である。また、さらに、LCD901は、表示装置の一例である。
磁気ディスク装置920又はROM913などには、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
プログラム群923には、上記の説明において「履歴データ統合部11」、「要素抽出部15」、「クラス情報生成部16」、「インスタンス情報生成部17」、「順序関係記憶部18」、「階層関係記憶部19」、「関係構造記憶部20」等として説明した機能を実行するプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、上記の説明において「条件指定記憶部12」、「統合定義記憶部13」、「統合データ記憶部14」、「挙動インデックス記憶部21」等として説明した情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
イベント履歴記憶装置10の機能を示す機能ブロック図。 統合データのデータ形式の一例を示す図。 挙動インデックス記憶部21で管理されるデータモデルの構造を表した図。 挙動インデックスのデータ構造を示す図。 クラス情報生成部16、インスタンス情報生成部17、順序関係記憶部18による順序関係情報生成処理を示すフローチャート。 階層関係記憶部19による階層関係情報生成処理を示すフローチャート。 関係構造記憶部20による関係構造情報生成処理を示すフローチャート。 イベント履歴追跡装置30の機能を示す機能ブロック図。 メールの送受信履歴をイメージ化した図。 図9で示したメールの送受信履歴データに対する挙動インデックスのデータモデルの構造を示した図。 イベント履歴追跡装置30によるイベント履歴追跡処理を示すフローチャート。 ルートとなるインスタンスを取得する処理を示すフローチャート。 製造工程をイメージ化した図。 指定された階層レベルまでイベント履歴を追跡するイベント履歴追跡処理を示すフローチャート。 イベント履歴記憶装置10とイベント履歴追跡装置30とのハードウェア構成の一例を示す図。
符号の説明
10 イベント履歴記憶装置、11 履歴データ統合部、12 条件指定記憶部、13 統合定義記憶部、14 統合データ記憶部、15 要素抽出部、16 クラス情報生成部、17 インスタンス情報生成部、18 順序関係記憶部、19 階層関係記憶部、20 関係構造記憶部、21 挙動インデックス記憶部、22 イベント履歴データベース、30 イベント履歴追跡装置、31 順序関係追跡部、32 階層関係追跡部、33 クラス間関係追跡部、34 条件入力部、110 ヘッダ情報、111 タイムスタンプ、112 元のログ指定情報、120 イベントID、130 クラス数、140 追跡対象情報、141 追跡対象クラスID、142 追跡対象インスタンスID、143 子の個数、144 親の個数、145 親・子のインスタンスIDバッファ、200 挙動インデックス、210 クラス情報テーブル、211 クラスID、212 インスタンス数、213 インスタンスID配列、220 インスタンス情報テーブル、221 インスタンスヘッダ情報、222 挙動ID配列、223 子供情報管理配列、224 親情報管理配列、230 挙動情報テーブル、231 挙動ID、232 イベントID、233 次挙動ID、234 前挙動ID、235 クラス間関係管理配列、240 関係構造情報テーブル、241 クラスID、242 インスタンスID、243 挙動ID、250 子インスタンス情報テーブル、251 子インスタンスID、252 挙動ID、260 親インスタンス情報テーブル、261 親インスタンスID、262 挙動ID。

Claims (10)

  1. アプリケーションで発生したイベントの履歴を記憶するイベント履歴記憶装置であり、
    所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶装置に記憶する順序関係記憶部と、
    上記順序関係記憶部が発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶装置に記憶する階層関係記憶部と、
    上記順序関係記憶部と上記階層関係記憶部とのいずれかが異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶装置に記憶する関係構造記憶部と
    を備えることを特徴とするイベント履歴記憶装置。
  2. 上記階層関係記憶部は、新たなインスタンスに付された新たな識別子を子とし、発生元のインスタンスに対して付された識別子を親として、上記新たな識別子と発生元のインスタンスに対して付された識別子とを関連付けした階層関係情報を記憶する
    ことを特徴とする請求項1に記載のイベント履歴記憶装置。
  3. 上記階層関係記憶部は、イベントによってインスタンスが分割又は統合又は複製された場合に、新たなインスタンスが発生したとみなす
    ことを特徴とする請求項1に記載のイベント履歴記憶装置。
  4. 請求項1に記載のイベント履歴記憶装置が記憶したイベントの履歴から、所定のインスタンスについてのイベントの履歴を追跡するイベント履歴追跡装置であり、
    追跡する対象となるインスタンスを特定する条件情報を入力装置により入力する条件入力部と、
    上記条件入力部が入力した条件情報により特定されるインスタンスに関連して発生したイベントを上記順序関係記憶部が記憶した順序関係情報が示す順に取得する順序関係追跡部と、
    上記順序関係追跡部が取得したイベントに付された識別子と上記階層関係記憶部が関連付けした識別子を辿ることにより、上記条件情報により特定されるインスタンスから発生した新たなインスタンス又は上記条件情報により特定されるインスタンスの発生元のインスタンスである次の階層のインスタンスと、上記次の階層のインスタンスに関連して発生したイベントとを取得する階層関係追跡部と
    を備えることを特徴とするイベント履歴追跡装置。
  5. 上記条件入力部は、上記条件情報とともに、追跡する範囲を絞り込むための範囲情報であって、クラスを特定する範囲情報を入力し、
    上記イベント履歴追跡装置は、さらに、
    上記順序関係追跡部と上記階層関係追跡部とが取得したイベントに付された識別子と上記関係構造記憶部が関連付けした識別子であって、上記範囲情報が示すクラスに属するインスタンスに付された識別子を辿ることにより、上記条件情報により特定されるインスタンスに関連するとともに上記範囲情報により特定されるクラスに属するインスタンスである他クラスインスタンスと、上記他クラスインスタンスに関連して発生したイベントとを取得するクラス間関係追跡部
    を備えることを特徴とする請求項4に記載のイベント履歴追跡装置。
  6. 上記階層関係追跡部は、さらに、上記次の階層のインスタンスに付された識別子と上記階層関係記憶部が関連付けした識別子を辿ることにより、さらに次の階層のインスタンスと、上記さらに次の階層のインスタンスに関連して発生したイベントとを取得する階層関係追跡処理を繰り返す
    ことを特徴とする請求項4に記載のイベント履歴追跡装置。
  7. 上記条件入力部は、上記条件情報とともに、追跡する階層の数を示す階層情報を入力し、
    上記階層関係追跡部は、上記階層情報が示す階層の数だけ階層関係追跡処理を繰り返して、階層関係追跡処理を終了する
    ことを特徴とする請求項4に記載のイベント履歴追跡装置。
  8. アプリケーションで発生したイベントの履歴を記憶するイベント履歴記憶方法であり、
    処理装置が、所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、記憶装置が、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶する順序関係記憶ステップと、
    処理装置が、上記順序関係記憶ステップで発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、記憶装置が、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶する階層関係記憶ステップと、
    記憶装置が、上記順序関係記憶ステップと上記階層関係記憶ステップとのいずれかで異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶する関係構造記憶ステップと
    を備えることを特徴とするイベント履歴記憶方法。
  9. アプリケーションで発生したイベントの履歴を記憶するイベント履歴記憶プログラムであり、
    所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶装置に記憶する順序関係記憶処理と、
    上記順序関係記憶処理で発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶装置に記憶する階層関係記憶処理と、
    上記順序関係記憶処理と上記階層関係記憶処理とのいずれかで異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶装置に記憶する関係構造記憶処理と
    をコンピュータに実行させることを特徴とするイベント履歴記憶プログラム。
  10. アプリケーションで発生したイベントの履歴を記憶するためのデータ構造であり、
    所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、情報を記憶するインスタンス情報記憶領域を備え、
    上記インスタンス情報記憶領域の上記インスタンス毎の記憶領域は、
    そのインスタンスに関連して発生したイベント毎に、そのイベントに付された挙動識別子であって、そのインスタンスに対して付された挙動識別子と、上記インスタンスに関連して発生したイベントであって、上記挙動識別子が付されたイベントの前に発生したイベントに付された挙動識別子と後に発生したイベントに付された挙動識別子との少なくともいずれかの挙動識別子を記憶する挙動識別子記憶領域と、
    上記インスタンスから発生した新たなインスタンスを識別するインスタンス識別子と、上記新たなインスタンスを発生させたイベントについて上記新たなインスタンスに対して付された挙動識別子とを記憶する子インスタンス記憶領域、又は、上記インスタンスを発生させた発生元のインスタンスを識別するインスタンス識別子と、上記インスタンスを発生させたイベントについて上記発生元のインスタンスに対して付された挙動識別子とを記憶する親インスタンス記憶領域の少なくともいずれかとを備え、
    上記挙動識別子記憶領域の上記イベント毎の記憶領域は、
    そのイベントと同一のイベントに付された挙動識別子であって、他のクラスに属するインスタンスに対して付された挙動識別子を記憶する関係構造記憶領域
    を備えることを特徴とするデータ構造。
JP2010500506A 2008-02-29 2008-02-29 イベント履歴記憶装置、イベント履歴追跡装置、イベント履歴記憶方法及びイベント履歴記憶プログラム Active JP4989761B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/053653 WO2009107234A1 (ja) 2008-02-29 2008-02-29 イベント履歴記憶装置、イベント履歴追跡装置、イベント履歴記憶方法、イベント履歴記憶プログラム及びデータ構造

Publications (2)

Publication Number Publication Date
JPWO2009107234A1 true JPWO2009107234A1 (ja) 2011-06-30
JP4989761B2 JP4989761B2 (ja) 2012-08-01

Family

ID=41015647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010500506A Active JP4989761B2 (ja) 2008-02-29 2008-02-29 イベント履歴記憶装置、イベント履歴追跡装置、イベント履歴記憶方法及びイベント履歴記憶プログラム

Country Status (5)

Country Link
US (1) US20110078218A1 (ja)
JP (1) JP4989761B2 (ja)
KR (1) KR101171551B1 (ja)
CN (1) CN101965558B (ja)
WO (1) WO2009107234A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012101775A1 (ja) * 2011-01-26 2012-08-02 富士通株式会社 参照支援装置、参照支援方法、及び参照支援プログラム
KR102203810B1 (ko) 2013-10-01 2021-01-15 삼성전자주식회사 사용자 입력에 대응되는 이벤트를 이용한 유저 인터페이싱 장치 및 방법
KR101525747B1 (ko) * 2014-11-20 2015-06-03 한국 한의학 연구원 사용자 반응에 따른 이벤트 활성 계층화 장치 및 방법
CN110083596A (zh) * 2018-05-16 2019-08-02 陈刚 一种数据历史跟踪和数据变化历史跟踪的方法
CN110532048B (zh) * 2019-07-05 2022-11-15 武楚荷 一种事件的记录方法、装置以及存储装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3224426B2 (ja) * 1992-09-04 2001-10-29 富士通株式会社 プログラム解析支援装置
JPH11212831A (ja) * 1998-01-27 1999-08-06 Ntt Data Corp オブジェクト間協調動作のログ管理およびイベント追跡のための方式および方法
JP4051765B2 (ja) 1998-05-20 2008-02-27 富士ゼロックス株式会社 バージョン管理装置及び管理方法
US7398282B2 (en) * 2000-06-16 2008-07-08 Fujitsu Limited System for recording process information of a plurality of systems
US20030023408A1 (en) * 2001-03-06 2003-01-30 Robin Wight System for collecting and storing information
US6895503B2 (en) * 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US6778979B2 (en) * 2001-08-13 2004-08-17 Xerox Corporation System for automatically generating queries
US8108429B2 (en) * 2004-05-07 2012-01-31 Quest Software, Inc. System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services
JP2007279883A (ja) * 2006-04-04 2007-10-25 Hitachi Ltd ファイル構成管理システム
US20080059539A1 (en) * 2006-08-08 2008-03-06 Richard Chin Document Collaboration System and Method

Also Published As

Publication number Publication date
JP4989761B2 (ja) 2012-08-01
KR101171551B1 (ko) 2012-08-06
US20110078218A1 (en) 2011-03-31
CN101965558B (zh) 2014-07-02
WO2009107234A1 (ja) 2009-09-03
CN101965558A (zh) 2011-02-02
KR20100108609A (ko) 2010-10-07

Similar Documents

Publication Publication Date Title
US20200160297A1 (en) Tracking processed machine data
US8533193B2 (en) Managing log entries
US7690000B2 (en) Metadata journal for information technology systems
CN109842628A (zh) 一种异常行为检测方法及装置
JP2009075655A (ja) ファイル管理システム、ファイル管理方法、およびファイル管理プログラム
Bleifuß et al. Exploring change: A new dimension of data analytics
WO2021175009A1 (zh) 预警事件图谱的构建方法、装置、设备及存储介质
JP5452030B2 (ja) 統合ログ生成装置及び統合ログ生成プログラム及び記録媒体
US10002142B2 (en) Method and apparatus for generating schema of non-relational database
KR101436033B1 (ko) 운용 관리 장치, 운용 관리 방법 및 운용 관리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP4989761B2 (ja) イベント履歴記憶装置、イベント履歴追跡装置、イベント履歴記憶方法及びイベント履歴記憶プログラム
CN109753596B (zh) 用于大规模网络数据采集的信源管理与配置方法和系统
CN114428822B (zh) 一种数据处理的方法、装置、电子设备及存储介质
CN104036034A (zh) 用于数据仓库的日志分析方法和装置
CN113779261B (zh) 知识图谱的质量评价方法、装置、计算机设备及存储介质
US10192031B1 (en) System for extracting information from DICOM structured reports
JP5506527B2 (ja) 同義カラム検出装置及び同義カラム検出方法
CN112631889A (zh) 针对应用系统的画像方法、装置、设备及可读存储介质
CN101662388A (zh) 一种网络故障分析方法及设备
JP5845961B2 (ja) 情報処理装置及び情報処理プログラム
CN116089417A (zh) 信息获取方法、装置、存储介质及计算机设备
US11405276B2 (en) Device configuration management apparatus, system, and program
US8589444B2 (en) Presenting information from heterogeneous and distributed data sources with real time updates
CN114297406A (zh) 一种审计方法、装置及电子设备
CN117056301A (zh) 数据库的日志审计方法、装置、计算设备以及存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120427

R150 Certificate of patent or registration of utility model

Ref document number: 4989761

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250