JPWO2009107234A1 - イベント履歴記憶装置、イベント履歴追跡装置、イベント履歴記憶方法、イベント履歴記憶プログラム及びデータ構造 - Google Patents
イベント履歴記憶装置、イベント履歴追跡装置、イベント履歴記憶方法、イベント履歴記憶プログラム及びデータ構造 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 102
- 238000012545 processing Methods 0.000 claims description 70
- 230000006399 behavior Effects 0.000 description 262
- 238000007726 management method Methods 0.000 description 44
- 238000002485 combustion reaction Methods 0.000 description 31
- 238000000605 extraction Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 12
- 238000004519 manufacturing process Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000010354 integration Effects 0.000 description 7
- 238000001816 cooling Methods 0.000 description 6
- 238000013523 data management Methods 0.000 description 6
- 238000013499 data model Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000003756 stirring Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000011143 downstream manufacturing Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002994 raw material Substances 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-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
Description
例えば、追跡対象であるインスタンスに対して発生したイベントの履歴データを収集し、そのイベントの履歴データに基づき、一定期間にそのインスタンスがどのような振舞いをしたかを追跡する。追跡対象とは、追跡・監視対象となる対象であり、例えば、PC(Personal Computer)で生成されたファイル等である。また、追跡対象の実体をインスタンスと呼ぶ。つまり、追跡対象がファイルであれば、インスタンスはファイルA、ファイルB等の具体的なファイルを指す。つまり、インスタンスの振舞いとは、例えば、ファイルAが編集され、保存された等である。
インスタンスが分割される場合に限らず、インスタンスが統合、複製等される場合も同様である。
つまり、ファイルがコピーされ新たなファイルが生成されると、コピー元のファイルと新たなファイルとには異なる識別子が付される。そのため、コピー元のファイルと新たなファイルとの振舞いを連続して追跡することは困難である。
例えば、複数のファイルがあり、その複数のファイルを複数のユーザが使用する場合において、あるファイルについての振舞いを、そのファイルを使用したユーザという視点から追跡するということは困難である。つまり、あるファイルについて、保存され、開かれ、再び保存されたという追跡は行えたとしても、あるファイルについて、ユーザ1が保存して、ユーザ2により開かれ、ユーザ2により再び保存されたという追跡を行うことは困難である。
また、本発明は、例えば、あるインスタンスについての動作を異なる視点から容易に追跡可能とすることを目的とする。
所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶装置に記憶する順序関係記憶部と、
上記順序関係記憶部が発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶装置に記憶する階層関係記憶部と、
上記順序関係記憶部と上記階層関係記憶部とのいずれかが異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶装置に記憶する関係構造記憶部と
を備えることを特徴とする。
ことを特徴とする。
ことを特徴とする。
追跡する対象となるインスタンスを特定する条件情報を入力装置により入力する条件入力部と、
上記条件入力部が入力した条件情報により特定されるインスタンスに関連して発生したイベントを上記順序関係記憶部が記憶した順序関係情報が示す順に取得する順序関係追跡部と、
上記順序関係追跡部が取得したイベントに付された識別子と上記階層関係記憶部が関連付けした識別子を辿ることにより、上記条件情報により特定されるインスタンスから発生した新たなインスタンス又は上記条件情報により特定されるインスタンスの発生元のインスタンスである次の階層のインスタンスと、上記次の階層のインスタンスに関連して発生したイベントとを取得する階層関係追跡部と
を備えることを特徴とする。
上記イベント履歴追跡装置は、さらに、
上記順序関係追跡部と上記階層関係追跡部とが取得したイベントに付された識別子と上記関係構造記憶部が関連付けした識別子であって、上記範囲情報が示すクラスに属するインスタンスに付された識別子を辿ることにより、上記条件情報により特定されるインスタンスに関連するとともに上記範囲情報により特定されるクラスに属するインスタンスである他クラスインスタンスと、上記他クラスインスタンスに関連して発生したイベントとを取得するクラス間関係追跡部
を備えることを特徴とする。
ことを特徴とする。
上記階層関係追跡部は、上記階層情報が示す階層の数だけ階層関係追跡処理を繰り返して、階層関係追跡処理を終了する
ことを特徴とする。
処理装置が、所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、記憶装置が、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶する順序関係記憶ステップと、
処理装置が、上記順序関係記憶ステップで発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、記憶装置が、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶する階層関係記憶ステップと、
記憶装置が、上記順序関係記憶ステップと上記階層関係記憶ステップとのいずれかで異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶する関係構造記憶ステップと
を備えることを特徴とする。
所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶装置に記憶する順序関係記憶処理と、
上記順序関係記憶処理で発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶装置に記憶する階層関係記憶処理と、
上記順序関係記憶処理と上記階層関係記憶処理とのいずれかで異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶装置に記憶する関係構造記憶処理と
をコンピュータに実行させることを特徴とする。
所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、情報を記憶するインスタンス情報記憶領域を備え、
上記インスタンス情報記憶領域の上記インスタンス毎の記憶領域は、
そのインスタンスに関連して発生したイベント毎に、そのイベントに付された挙動識別子であって、そのインスタンスに対して付された挙動識別子と、上記インスタンスに関連して発生したイベントであって、上記挙動識別子が付されたイベントの前に発生したイベントに付された挙動識別子と後に発生したイベントに付された挙動識別子との少なくともいずれかの挙動識別子を記憶する挙動識別子記憶領域と、
上記インスタンスから発生した新たなインスタンスを識別するインスタンス識別子と、上記新たなインスタンスを発生させたイベントについて上記新たなインスタンスに対して付された挙動識別子とを記憶する子インスタンス記憶領域、又は、上記インスタンスを発生させた発生元のインスタンスを識別するインスタンス識別子と、上記インスタンスを発生させたイベントについて上記発生元のインスタンスに対して付された挙動識別子とを記憶する親インスタンス記憶領域の少なくともいずれかとを備え、
上記挙動識別子記憶領域の上記イベント毎の記憶領域は、
そのイベントと同一のイベントに付された挙動識別子であって、他のクラスに属するインスタンスに対して付された挙動識別子を記憶する関係構造記憶領域
を備えることを特徴とする。
また、本発明に係るイベント履歴記憶装置は、異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けする。したがって、あるインスタンスについての動作を異なる視点から容易に追跡することができる。
この実施の形態では、所定のアプリケーションで発生したイベント履歴の記憶方法について説明する。
イベント履歴記憶装置10は、履歴データ統合部11、条件指定記憶部12、統合定義記憶部13、統合データ記憶部14、要素抽出部15、クラス情報生成部16、インスタンス情報生成部17、順序関係記憶部18、階層関係記憶部19、関係構造記憶部20、挙動インデックス記憶部21を備える。
条件指定記憶部12は、イベント履歴データベース22に記憶されたイベント履歴データに含まれる情報からインスタンスを抽出するための絞込条件を指定した条件指定ファイルを記憶装置に記憶する。条件指定ファイルは、例えば、ファイル操作に関連したイベントのみを抽出する等の条件を指定する。この場合、条件指定ファイルは、例えば、イベント履歴データに実行されたコマンド名が含まれていれば、ファイル操作に関連したコマンド名が記憶されたイベント履歴データを抽出する条件を指定する。
統合定義記憶部13は、条件指定ファイルが指定する条件に基づき抽出されたイベント履歴データの各項目が、統合データのどのカラムに格納されるかを定義した統合データ定義ファイルを記憶装置に記憶する。つまり、統合データ定義ファイルは、例えば、各形式のイベント履歴データのカラムと、統合データのカラムとの対応関係を示す。
統合データ記憶部14は、履歴データ統合部11が変換した統合データを記憶装置に記憶する。
図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が記憶される。
また、子インスタンスとは、そのインスタンスが分割、統合、複製等されることにより発生した新たなインスタンスである。例えば、インスタンスが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を持たせるだけでよい。そのため、親側のインスタンスから子側のインスタンスを知ることはできるが、子側のインスタンスから親側のインスタンスを知ることはできない場合であっても、子側のインスタンスから親側のインスタンスを知ることはできるが、親側のインスタンスから子側のインスタンスを知ることはできない場合であっても、全てのイベント履歴データを統合データの形式に変換することができる。
クラス情報生成部16とインスタンス情報生成部17とは、要素抽出部15が抽出した情報から固定的な情報を生成して、挙動インデックス記憶部21に記憶する。
順序関係記憶部18と階層関係記憶部19と関係構造記憶部20とは、インスタンス毎に発生したイベントとそのイベントによる状態の変化(挙動)とを関連付けたグラフ構造のデータを生成して、挙動インデックス記憶部21に記憶する。
クラス情報生成部16、インスタンス情報生成部17、順序関係記憶部18、階層関係記憶部19、関係構造記憶部20について詳しくは後述する。
図3は、ファイルAをユーザ1が保存し、そのファイルAをユーザ2がUSB(Universal Serial Bus)メモリにコピーし、さらにコピー元のファイルAをユーザ1が開き、ユーザ2は退室したという挙動を表現している。
クラス情報生成部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は、インスタンスに関連して発生したイベントの履歴データを、各インスタンスの状態の変化を示す挙動を関連付けしたグラフ構造によって記憶する。
挙動インデックス200には、クラス毎にクラス情報テーブル210が生成される。つまり、図3の例では、挙動インデックス200には、ファイルクラスとユーザクラスとのそれぞれに対してクラス情報テーブル210が生成される。
クラスID211には、そのクラスを識別するクラスIDが記憶される。
インスタンス数212には、そのクラスに属するインスタンスの数が記憶される。
インスタンスID配列213は、そのクラスに属するインスタンス毎にインスタンス情報テーブル220(インスタンス情報記憶領域)が生成される。
つまり、図3のファイルクラスにおいては、クラスID211には、ファイルクラスを示す識別子が記憶される。また、インスタンスは、ファイルAとファイルBとの2つであるので、インスタンス数212には「2」が記憶される。さらに、ファイルAとファイルBとのそれぞれに対してインスタンス情報テーブル220が生成される。
インスタンスヘッダ情報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についての情報が記憶される。
挙動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コピー」という挙動についての情報が記憶される。
クラスID241には、関連した挙動が発生したインスタンスの属するクラスIDが記憶される。
インスタンスID242には、関連した挙動が発生したインスタンスのインスタンスIDが記憶される。
挙動ID243には、関連した挙動の挙動IDが記憶される。
つまり、ファイルAの「USBコピー」の挙動に関連した挙動であるユーザ2の「USBコピー」という挙動においては、クラスID241には、ユーザクラスのクラスIDが記憶される。また、インスタンスID242には、ユーザ2のユーザIDが記憶される。挙動ID243には、ユーザ2についての「USBコピー」という挙動を示す挙動IDが記憶される。
子インスタンスID251には、そのインスタンスの子インスタンスのインスタンスIDが記憶される。
挙動ID252には、子インスタンスを発生させたイベントによる子インスタンスの挙動を示す挙動IDが記憶される。
つまり、図3のファイルクラスのファイルAにおいては、子インスタンスID251には、ファイルAの子インスタンスであるファイルBを示すインスタンスIDが記憶される。また、挙動ID252には、ファイルBが発生した挙動であって、ファイルBについての挙動である「USBコピー」という挙動を示す挙動IDが記憶される。つまり、挙動ID252には、図3において、ファイルAからファイルBへの矢印の挙動を示す挙動IDが記憶される。
親インスタンス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に示す各クラスの情報と、各インスタンスの情報と、各インスタンスにおける挙動の順序(横向きの矢印)の情報とが生成される。
(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を格納する。
(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加算(インクリメント)する。
(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の最後尾に追加する。
ここでは、図5に基づき説明した順序関係情報生成処理に続き、階層関係情報生成処理を実行する。つまり、順序関係情報生成処理の1レコード分の処理の終了に続き、以下に説明する(S201)を実行する。この場合以下で説明する(S201)では、順序関係情報生成処理で対象としたレコードの追跡対象情報140から情報を取得するものとする。なお、順序関係情報生成処理の1レコード分の処理の終了に続き階層関係情報生成処理を実行しなくてもよいが、親となる側の挙動情報テーブル230が順序関係情報生成処理で生成されている必要がある。
階層関係情報生成処理を統合データの各レコードに対して行うことにより、図2に示す同一クラス内におけるインスタンス間を接続する挙動(斜めの実線矢印)の情報が生成される。
なお、以下の説明で、上記所定のレコードを現在処理しているレコードと呼び、上記所定の追跡対象情報140の追跡対象インスタンスID142に記憶されたインスタンスIDを現在処理しているインスタンスIDと呼ぶ。また、上記所定の追跡対象情報140の追跡対象クラスID141に記憶されたクラスIDから特定されるクラス情報テーブル210を現在処理しているクラス情報テーブル210と呼び、上記現在処理しているインスタンスIDから特定されるインスタンス情報テーブル220を現在処理しているインスタンス情報テーブル220と呼ぶ。
(S202):階層関係記憶部19は、(S201)で取得した値に基づき、そのインスタンスに子インスタンスが存在するか否かを判定する。つまり、階層関係記憶部19は、取得した値が0であれば、子インスタンスが存在しないと判定し、それ以外であれば子インスタンスが存在すると判定する。子インスタンスが存在すると判定した場合(S202でYES)、(S203)へ進む。一方、子インスタンスが存在しないと判定した場合(S202でNO)、処理を終了する。
(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は、新たなインスタンスに付された新たな識別子を子とし、発生元のインスタンスに対して付された識別子を親として、上記新たな識別子と発生元のインスタンスに対して付された識別子とを関連付けした階層関係情報を記憶する。
ここでは、図5と図6とに基づき説明した順序関係情報生成処理と階層関係情報生成処理とに続き、階層関係情報生成処理を実行する。つまり、階層関係情報生成処理の1レコード分の処理の終了に続き、以下に説明する(S301)を実行する。この場合、(S301)では、順序関係情報生成処理と階層関係情報生成処理とで対象としたレコードから情報を取得する。なお、階層関係情報生成処理の1レコード分の処理の終了に続き、以下に説明する(S301)を実行しなくてもよい。しかし、関係構造情報生成処理の前に、順序関係情報生成処理と階層関係情報生成処理とにより、各クラスの情報と、各インスタンスの情報と、各インスタンスにおける挙動の順序の情報と、同一クラス内におけるインスタンス間を接続する挙動の情報とが生成されている必要がある。
関係構造情報生成処理を統合データの各レコードに対して行うことにより、図2に示すクラス間におけるインスタンス間の関係(破線の矢印)の情報が生成される。
(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とを記憶する。
また、同様に、イベント履歴記憶装置10は、異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けする。したがって、あるインスタンス(ファイル)についての動作を異なるクラス(ユーザ)の視点から容易に追跡することができる。
この実施の形態では、実施の形態1で説明したイベント履歴記憶装置10が記憶した挙動インデックスを用いて、イベント履歴の追跡を行う方法について説明する。
順序関係追跡部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において、メールの送受信履歴で追跡の対象となるクラスは、メッセージクラスとユーザクラスとである。メッセージクラスには、インスタンスとしてメッセージ1とメッセージ2とが存在する。ユーザクラスにはインスタンスとしてユーザA、ユーザB、ユーザCが存在する。これらインスタンスで生成された挙動のデータモデル構造がグラフ構造をとして表現される。
(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が送信したという情報が得られる。
(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)へ進む。
(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には子インスタンスがないため、処理が終了する。
つまり、階層関係追跡部32が親インスタンスの階層関係を辿ってルートとなるインスタンス(図10であれば、メッセージ1)を取得し、その取得したルートメッセージに対して図11の手順にしたがって追跡する必要がある。なお、ルートとなるインスタンスとは、親インスタンスを持たないインスタンスのことである。
次に、親インスタンスの階層関係を辿りルートとなるインスタンスを取得する手順について説明する。図12は、ルートとなるインスタンスを取得する処理を示すフローチャートである。
(S502):(S501)で特定したインスタンス情報テーブル220の親情報管理配列224を参照して、このインスタンスの発生元である親インスタンスが存在するか否かを判定する。親インスタンスが存在すると判定した場合(S502でYES)、(S503)へ進む。一方、親インスタンスが存在しないと判定した場合(S502でNO)、(S505)へ進む。
(S503):階層関係追跡部32は、上記親情報管理配列224に登録された親インスタンス情報テーブル260の親インスタンスID261に記憶されたインスタンスIDを取得する。
(S504):階層関係追跡部32は、(S503)で取得したインスタンスIDを追跡対象のインスタンスIDとして(S502)へ戻り、処理を繰り返す。
(S505):階層関係追跡部32は、そのインスタンスをルートとして終了する。
なお、(S503)で親情報管理配列224に複数の親インスタンス情報テーブル260が登録されている場合には、各親インスタンス情報テーブル260の親インスタンスID261に記憶されたインスタンスIDを取得し、各インスタンスIDに対して親インスタンスを探す処理を行う。つまり、ルートとなるインスタンスが複数存在する場合もある。この場合には、ルートとなる複数のインスタンスそれぞれから図11に基づき説明したイベント履歴追跡処理を行う。
また、同様に、イベント履歴追跡装置30によれば、あるインスタンス(例えば、メッセージ1)についての動作を異なるインスタンス(ユーザ)の視点から容易に追跡することができる。
この実施の形態では、実施の形態2とは異なるイベント履歴の追跡処理の例について説明する。特に、この実施の形態では、追跡する階層レベルを指定した追跡処理について説明する。
ここで、階層とは、インスタンスの親子関係のことであり、階層レベルとは、何階層離れているかを意味する。つまり、所定のインスタンスに対して、子インスタンスは1階層(1レベル)離れている。また、上記子インスタンスの子インスタンスは、上記所定のインスタンスに対して2階層(2レベル)離れている。同様に、所定のインスタンスに対して、親インスタンスは−1階層(−1レベル)離れている。また、上記親インスタンスの親インスタンスは、上記所定のインスタンスに対して−2階層(−2レベル)離れている。
図13では、工程として攪拌工程、燃焼工程、冷却工程の3つの工程を備える。それぞれの工程で製造単位を一意に識別する製造単位番号(バッチ番号)が割り当てられている。攪拌工程では攪拌1、燃焼工程では燃焼1から燃焼nまで、冷却工程では冷却1から冷却nまでが製造単位番号である。
なお工程の前後の製造単位番号の関連性(たとえば攪拌1と燃焼1)はシステムで管理されているものとする。また、挙動インデックスの構造としては各工程がクラスに、製造単位番号がインスタンスに該当する。
つまり、燃焼2に対して、燃焼3は1階層(1レベル)離れている。また、燃焼4は、燃焼2に対して2階層(2レベル)離れている。同様に、燃焼2に対して、燃焼1は−1階層(−1レベル)離れている。
(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加算(インクリメント)する。
また燃焼2をインスタンスインスタンスID、打ち切りの階層レベルnに±1を指定すると燃焼1と燃焼3とを追跡することになる。
上記実施の形態に係る履歴追跡型データ管理方式は、複数の蓄積された履歴データを処理する装置において、履歴データの1単位に含まれる1つ以上のインスタンスを抽出するインスタンス抽出手段と、前記インスタンス抽出手段によって抽出されたインスタンスにおいて発生したイベントによるインスタンスの順序関係を管理する順序関係構造管理手段と、発生したイベントにおいてインスタンスが統合または分割される場合においてインスタンスの階層関係を管理する階層関係構造管理手段と、発生したあるイベントに対して複数の異なるクラスに属するインスタンスが関係する場合において異なるクラスに属するインスタンス間の関連性を管理するクラス間関係構造管理手段とを備えることを特徴とする。
図15は、イベント履歴記憶装置10とイベント履歴追跡装置30とのハードウェア構成の一例を示す図である。
図15に示すように、イベント履歴記憶装置10とイベント履歴追跡装置30とは、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902、マウス903、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ファイル群924には、上記の説明において「条件指定記憶部12」、「統合定義記憶部13」、「統合データ記憶部14」、「挙動インデックス記憶部21」等として説明した情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
Claims (10)
- アプリケーションで発生したイベントの履歴を記憶するイベント履歴記憶装置であり、
所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶装置に記憶する順序関係記憶部と、
上記順序関係記憶部が発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶装置に記憶する階層関係記憶部と、
上記順序関係記憶部と上記階層関係記憶部とのいずれかが異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶装置に記憶する関係構造記憶部と
を備えることを特徴とするイベント履歴記憶装置。 - 上記階層関係記憶部は、新たなインスタンスに付された新たな識別子を子とし、発生元のインスタンスに対して付された識別子を親として、上記新たな識別子と発生元のインスタンスに対して付された識別子とを関連付けした階層関係情報を記憶する
ことを特徴とする請求項1に記載のイベント履歴記憶装置。 - 上記階層関係記憶部は、イベントによってインスタンスが分割又は統合又は複製された場合に、新たなインスタンスが発生したとみなす
ことを特徴とする請求項1に記載のイベント履歴記憶装置。 - 請求項1に記載のイベント履歴記憶装置が記憶したイベントの履歴から、所定のインスタンスについてのイベントの履歴を追跡するイベント履歴追跡装置であり、
追跡する対象となるインスタンスを特定する条件情報を入力装置により入力する条件入力部と、
上記条件入力部が入力した条件情報により特定されるインスタンスに関連して発生したイベントを上記順序関係記憶部が記憶した順序関係情報が示す順に取得する順序関係追跡部と、
上記順序関係追跡部が取得したイベントに付された識別子と上記階層関係記憶部が関連付けした識別子を辿ることにより、上記条件情報により特定されるインスタンスから発生した新たなインスタンス又は上記条件情報により特定されるインスタンスの発生元のインスタンスである次の階層のインスタンスと、上記次の階層のインスタンスに関連して発生したイベントとを取得する階層関係追跡部と
を備えることを特徴とするイベント履歴追跡装置。 - 上記条件入力部は、上記条件情報とともに、追跡する範囲を絞り込むための範囲情報であって、クラスを特定する範囲情報を入力し、
上記イベント履歴追跡装置は、さらに、
上記順序関係追跡部と上記階層関係追跡部とが取得したイベントに付された識別子と上記関係構造記憶部が関連付けした識別子であって、上記範囲情報が示すクラスに属するインスタンスに付された識別子を辿ることにより、上記条件情報により特定されるインスタンスに関連するとともに上記範囲情報により特定されるクラスに属するインスタンスである他クラスインスタンスと、上記他クラスインスタンスに関連して発生したイベントとを取得するクラス間関係追跡部
を備えることを特徴とする請求項4に記載のイベント履歴追跡装置。 - 上記階層関係追跡部は、さらに、上記次の階層のインスタンスに付された識別子と上記階層関係記憶部が関連付けした識別子を辿ることにより、さらに次の階層のインスタンスと、上記さらに次の階層のインスタンスに関連して発生したイベントとを取得する階層関係追跡処理を繰り返す
ことを特徴とする請求項4に記載のイベント履歴追跡装置。 - 上記条件入力部は、上記条件情報とともに、追跡する階層の数を示す階層情報を入力し、
上記階層関係追跡部は、上記階層情報が示す階層の数だけ階層関係追跡処理を繰り返して、階層関係追跡処理を終了する
ことを特徴とする請求項4に記載のイベント履歴追跡装置。 - アプリケーションで発生したイベントの履歴を記憶するイベント履歴記憶方法であり、
処理装置が、所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、記憶装置が、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶する順序関係記憶ステップと、
処理装置が、上記順序関係記憶ステップで発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、記憶装置が、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶する階層関係記憶ステップと、
記憶装置が、上記順序関係記憶ステップと上記階層関係記憶ステップとのいずれかで異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶する関係構造記憶ステップと
を備えることを特徴とするイベント履歴記憶方法。 - アプリケーションで発生したイベントの履歴を記憶するイベント履歴記憶プログラムであり、
所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、そのインスタンスに関連して発生したイベントに識別子を付し、そのインスタンスに関連して発生したイベントの発生順序を上記識別子により表した順序関係情報を記憶装置に記憶する順序関係記憶処理と、
上記順序関係記憶処理で発生順序を記憶したイベントによってインスタンスから新たなインスタンスが発生した場合、上記イベントについて上記新たなインスタンスに対して新たな識別子を付し、上記イベントについて発生元のインスタンスに対して付された識別子と上記新たな識別子とを関連付けした階層関係情報を記憶装置に記憶する階層関係記憶処理と、
上記順序関係記憶処理と上記階層関係記憶処理とのいずれかで異なるクラスに属するインスタンスに対して付した識別子であって、同一のイベントについて付した識別子を関連付けした関係構造情報を記憶装置に記憶する関係構造記憶処理と
をコンピュータに実行させることを特徴とするイベント履歴記憶プログラム。 - アプリケーションで発生したイベントの履歴を記憶するためのデータ構造であり、
所定の種別を示すクラスのうち、追跡の対象となるクラスに属するインスタンス毎に、情報を記憶するインスタンス情報記憶領域を備え、
上記インスタンス情報記憶領域の上記インスタンス毎の記憶領域は、
そのインスタンスに関連して発生したイベント毎に、そのイベントに付された挙動識別子であって、そのインスタンスに対して付された挙動識別子と、上記インスタンスに関連して発生したイベントであって、上記挙動識別子が付されたイベントの前に発生したイベントに付された挙動識別子と後に発生したイベントに付された挙動識別子との少なくともいずれかの挙動識別子を記憶する挙動識別子記憶領域と、
上記インスタンスから発生した新たなインスタンスを識別するインスタンス識別子と、上記新たなインスタンスを発生させたイベントについて上記新たなインスタンスに対して付された挙動識別子とを記憶する子インスタンス記憶領域、又は、上記インスタンスを発生させた発生元のインスタンスを識別するインスタンス識別子と、上記インスタンスを発生させたイベントについて上記発生元のインスタンスに対して付された挙動識別子とを記憶する親インスタンス記憶領域の少なくともいずれかとを備え、
上記挙動識別子記憶領域の上記イベント毎の記憶領域は、
そのイベントと同一のイベントに付された挙動識別子であって、他のクラスに属するインスタンスに対して付された挙動識別子を記憶する関係構造記憶領域
を備えることを特徴とするデータ構造。
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)
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)
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 |
-
2008
- 2008-02-29 JP JP2010500506A patent/JP4989761B2/ja active Active
- 2008-02-29 US US12/919,774 patent/US20110078218A1/en not_active Abandoned
- 2008-02-29 KR KR1020107019072A patent/KR101171551B1/ko active IP Right Grant
- 2008-02-29 CN CN200880127636.5A patent/CN101965558B/zh active Active
- 2008-02-29 WO PCT/JP2008/053653 patent/WO2009107234A1/ja active Application Filing
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 |