事件历史存储装置、 事件历史追踪装置、 事件历史存储方 法、 事件历史存储程序以及数据结构 技术领域 本发明涉及一种例如用于容易且高效地实现应用程序的动作日志中包含的信息 的追踪的数据管理技术、 以及使用通过所述数据管理技术所管理的数据的历史的追踪技 术。
背景技术 以信息安全、 网络监视、 设备管理等领域为中心, 从收集存储的日志数据中监视信 息泄露、 非法访问、 仪器故障等历史, 很好地管理信息、 网络、 设备。
例如, 收集对于作为追踪对象的实例 (Instance) 而产生的事件的历史数据, 并根 据该事件的历史数据来追踪在一定期间内该实例做出了何种行为。 追踪对象是指成为追踪 / 监视对象的对象, 例如是由 PC(Personal Computer : 个人计算机 ) 生成的文件等。另外, 追踪对象的实体称作实例。 也就是说, 如果追踪对象是文件, 则实例是指文件 A、 文件 B 等具 体的文件。也就是说, 实例的行为例如指文件 A 被编辑、 保存等。
通常, 在事件的历史数据中记录有识别与事件相关联的实例的追踪对象 ID( 标识 符 )、 表示发生了事件的时刻的时间戳、 事件的动作信息。即, 在称为 “文件 A 被编辑” 的事 件的历史数据中, 记录有文件 A 的标识符、 被编辑的日期时间信息、 以及表示编辑这样的动 作的信息。
在专利文献 1 中, 对分散记录在多个数据库中的各实例附加统一的标识符, 并且 使每个实例具有表示各实例被处理的顺序的信息。由此, 在事件历史数据分散地记录在多 个数据库中的情况下, 也会容易地按顺序追踪每个实例的处理。
专利文献 1 : 日本特开平 11-212831 号公报
发明内容 在现有的事件历史管理方法中, 在实例被分割的情况下等, 难以连续地追踪分割 前的实例的行为和分割后的实例的行为。 即, 当实例被分割时, 向被分割而生成的新的实例 附加新的标识符, 导致原来的实例 ( 分割前的实例 ) 与新的实例 ( 分割后的实例 ) 被附加 不同的标识符。 因此, 原来的实例与新的实例之间变得没有关联性, 从而难以连续地追踪原 来的实例和新的实例。 即, 在从实例中产生新的实例的情况下, 难以连续地追踪原来的实例 和新的实例 ( 费事 )。
不限于实例被分割的情况, 在实例被合并、 复制等的情况下也相同。
例如, 在实例为由 PC 所生成的文件时该文件被复制、 重命名等的情况下、 或在实 例为制造工序中的原料时该原料被分割、 合并了的情况下, 难以连续地追踪处理前的实例 和处理后的实例。
即, 当文件被复制而生成新的文件时, 向复制源的文件和新的文件附加不同的标 识符。因此, 难以连续地追踪复制源的文件和新的文件的行为。
另外, 在现有的事件历史管理方法中, 难以从不同的视角追踪关于某个实例的动 作 ( 费事 )。
例如, 在有多个文件且由多个用户使用该多个文件的情况下, 难以从使用了该文 件的用户这样的视角追踪关于某个文件的行为。 即, 对于某个文件即使能够进行被保存、 被 打开、 并再次被保存这样的追踪, 也难以对于某个文件进行由用户 1 保存、 由用户 2 打开、 并 由用户 2 再次保存这样的追踪。
本发明的目的在于, 例如从实例中产生新的实例的情况下, 也能够容易地连续地 追踪原来的实例和新的实例的事件历史。
另外, 本发明的目的在于, 例如能够从不同的视角容易地追踪关于某个实例的动 作。
与本发明有关的事件历史存储装置例如存储由应用程序所产生的事件的历史, 该 事件历史存储装置的特征在于, 具备 :
顺序关系存储部, 针对属于表示规定种类的分类之中成为追踪对象的分类的每个 实例, 对与该实例相关联地产生的事件附加标识符, 将利用所述标识符表示与该实例相关 联地产生的事件的产生顺序的顺序关系信息存储到存储装置中 ; 层次关系存储部, 在通过由所述顺序关系存储部存储了产生顺序的事件而从实例 产生新的实例的情况下, 关于所述事件, 对所述新的实例附加新的标识符, 将关于所述事件 对产生源的实例附加的标识符与所述新的标识符关联起来的层次关系信息存储到存储装 置中 ; 以及
关系结构存储部, 将对同一事件附加的标识符关联起来的关系结构信息存储到存 储装置中, 其中, 该对同一事件附加的标识符是所述顺序关系存储部和所述层次关系存储 部中的某一个对属于不同分类的实例附加的标识符。
所述层次关系存储部的特征在于, 将对新的实例附加的新的标识符设为子, 将对 产生源的实例附加的标识符设为父, 存储将所述新的标识符与对产生源的实例附加的标识 符关联起来的层次关系信息。
所述层次关系存储部的特征在于, 在实例通过事件而被分割或合并或复制的情况 下, 视作产生了新的实例。
与本发明有关的事件历史追踪装置例如从所述事件历史存储装置所存储的事件 的历史中追踪关于规定实例的事件的历史, 该事件历史追踪装置的特征在于, 具备 :
条件输入部, 通过输入装置来输入用于确定成为要追踪的对象的实例的条件信 息;
顺序关系追踪部, 按照所述顺序关系存储部所存储的顺序关系信息示出的顺序, 取得与根据所述条件输入部所输入的条件信息而确定的实例相关联地产生的事件 ; 以及
层次关系追踪部, 通过追寻对所述顺序关系追踪部所取得的事件附加的标识符和 所述层次关系存储部关联起来的标识符, 取得从根据所述条件信息而确定的实例产生的新 的实例或者根据所述条件信息而确定的实例的产生源的实例即下一层次的实例、 以及与所 述下一层次的实例相关联地产生的事件。
所述条件输入部的特征在于, 与所述条件信息一起输入用于确定分类的范围信 息, 其中, 该范围信息用于缩小要追踪的范围,
所述事件历史追踪装置的特征在于, 还具备分类间关系追踪部, 该分类间关系追 踪部通过追寻对所述顺序关系追踪部和所述层次关系追踪部所取得的事件附加的标识符、 以及所述关系结构存储部关联起来的对属于所述范围信息示出的分类的实例附加的标识 符, 取得与根据所述条件信息而确定的实例相关联并且属于根据所述范围信息而确定的分 类的实例即其它分类实例、 以及与所述其它分类实例相关联地产生的事件。
所述层次关系追踪部的特征在于, 还重复进行层次关系追踪处理, 其中, 该层次关 系追踪处理是如下处理 : 通过追寻对所述下一层次的实例附加的标识符和所述层次关系存 储部关联起来的标识符, 取得再下一层次的实例、 以及与所述再下一层次的实例相关联地 产生的事件。
所述条件输入部的特征在于, 与所述条件信息一起输入表示要追踪的层次的数的 层次信息,
所述层次关系追踪部的特征在于, 重复进行与所述层次信息示出的层次的数相应 次数的层次关系追踪处理后, 结束层次关系追踪处理。
与本发明有关的事件历史存储方法例如存储由应用程序所产生的事件的历史, 该 事件历史存储方法的特征在于, 具备 : 顺序关系存储步骤, 处理装置针对属于表示规定种类的分类之中成为追踪对象的 分类的每个实例, 对与该实例相关联地产生的事件附加标识符, 存储装置存储利用所述标 识符表示与该实例相关联地产生的事件的产生顺序的顺序关系信息 ;
层次关系存储步骤, 处理装置在通过在所述顺序关系存储步骤中存储了产生顺序 的事件而从实例产生新的实例的情况下, 关于所述事件, 对所述新的实例附加新的标识符, 存储装置存储将关于所述事件对产生源的实例附加的标识符与所述新的标识符关联起来 的层次关系信息 ; 以及
关系结构存储步骤, 存储装置存储将对同一事件附加的标识符关联起来的关系结 构信息, 其中, 该对同一事件附加的标识符是在所述顺序关系存储步骤和所述层次关系存 储步骤中的某一个中对属于不同分类的实例附加的标识符。
与本发明有关的事件历史存储程序例如存储由应用程序所产生的事件的历史, 该 事件历史存储程序的特征在于, 使计算机执行 :
顺序关系存储处理, 针对属于表示规定种类的分类之中成为追踪对象的分类的每 个实例, 对与该实例相关联地产生的事件附加标识符, 将利用所述标识符表示与该实例相 关联地产生的事件的产生顺序的顺序关系信息存储到存储装置中 ;
层次关系存储处理, 在通过在所述顺序关系存储处理中存储了产生顺序的事件而 从实例产生新的实例的情况下, 关于所述事件, 对所述新的实例附加新的标识符, 将关于所 述事件对产生源的实例附加的标识符与所述新的标识符关联起来的层次关系信息存储到 存储装置中 ; 以及
关系结构存储处理, 将对同一事件附加的标识符关联起来的关系结构信息存储到 存储装置中, 其中, 该对同一事件附加的标识符是在所述顺序关系存储处理和所述层次关 系存储处理中的某一个中对属于不同分类的实例附加的标识符。
与本发明有关的数据结构例如用于存储由应用程序所产生的事件的历史, 该数据 结构的特征在于,
具备实例信息存储区域, 该实例信息存储区域针对属于表示规定种类的分类之中 成为追踪对象的分类的每个实例存储信息,
所述实例信息存储区域的所述每个实例的存储区域具备 :
举动标识符存储区域, 针对与该实例相关联地产生的每个事件, 存储对该实例附 加的针对该事件所附加的举动标识符、 以及对在与所述实例相关联地产生的附加了所述举 动标识符的事件之前产生的事件附加的举动标识符和对之后产生的事件附加的举动标识 符中的至少一个举动标识符 ; 以及
子实例存储区域和父实例存储区域中的至少一个, 其中, 所述子实例存储区域存 储对从所述实例产生的新的实例进行识别的实例标识符、 和关于产生所述新的实例的事件 对所述新的实例附加的举动标识符, 所述父实例存储区域存储对产生所述实例的产生源的 实例进行识别的实例标识符、 和关于产生所述实例的事件对所述产生源的实例附加的举动 标识符,
所述举动标识符存储区域的所述每个事件的存储区域具备关系结构存储区域, 该 关系结构存储区域存储对属于其它分类的实例附加的举动标识符, 其中, 该对属于其它分 类的实例附加的举动标识符是对与该事件相同的事件附加的举动标识符。 与本发明有关的时间里使存储装置针对每个实例, 对事件附加标识符来管理事件 的产生顺序。另外, 在某个事件中从实例产生新的实例的情况下, 关于该事件, 向所述新的 实例附加新的标识符, 将关于该事件对产生源的实例附加的标识符与所述新的标识符关联 起来。因而, 能够追踪与各实例相关联地产生的事件的历史 ( 实例的行为 ), 并且即使在从 实例产生新的实例的情况下也能够容易地连续地追踪原来的实例和新的实例。
另外, 与本发明有关的事件历史存储装置将对同一事件附加的标识符关联起来, 其中, 该对同一事件附加的标识符是对属于不同分类的实例附加的标识符。 因而, 能够从不 同视角容易地追踪关于某个实例的动作。
附图说明 图 1 是表示事件历史存储装置 10 的功能的功能框图。
图 2 是表示合并数据的数据形式的一个例子的图。
图 3 是表示由举动索引存储部 21 所管理的数据模型的结构的图。
图 4 是表示举动索引的数据结构的图。
图 5 是表示分类信息生成部 16、 实例信息生成部 17、 顺序关系存储部 18 的顺序关 系信息生成处理的流程图。
图 6 是表示层次关系存储部 19 的层次关系信息生成处理的流程图。
图 7 是表示关系结构存储部 20 的关系结构信息生成处理的流程图。
图 8 是表示事件历史追踪装置 30 的功能的功能框图。
图 9 是将邮件的发送接收历史进行图形化的图。
图 10 是表示针对图 9 中所示的邮件的发送接收历史数据的举动索引的数据模型 的结构的图。
图 11 是表示事件历史追踪装置 30 的事件历史追踪处理的流程图。
图 12 是表示取得成为根源 (root) 的实例的处理的流程图。
图 13 是将制造工序进行图形化的图。 图 14 是表示直到被指定的层次级别为止追踪事件历史的事件历史追踪处理的流程图。 图 15 是表示事件历史存储装置 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。
具体实施方式
实施方式 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、 事件 ID 120、 分类数 130、 追踪对象信息 140 的项目。
头信息 110 具备时间戳 111、 原来的日志指定信息 112。在时间戳 111 中, 存储了 产生事件的日期时间信息。在原来的日志指定信息 112 中, 存储了事件历史数据的抽取源 的数据库以及表示是从该数据库的哪个记录中所抽取的行号 ( 记录号 )。 即, 在原来的日志 指定信息 112 中, 存储了表示事件历史数据是从哪个数据库的哪个记录中所抽取的信息。
在事件 ID 120 中, 存储了唯一地确定事件的标识符。在事件 ID 120 中, 例如也可 以存储在抽取源的数据库中对该事件附加的标识符。
在分类数 130 中, 存储了在其记录中包含的分类的数量 ( 追踪对象信息 140 的数 量, 在图 2 中为 n)。
在追踪对象信息 140 中, 存储了关于该事件中包含的实例的信息。在一个事件中 包含有多个实例的情况下, 存储关于多个实例各自的全部信息。追踪对象信息 140 针对每 个实例具备追踪对象分类 ID 141、 追踪对象实例 ID 142、 子的个数 143、 父的个数 144、 父/ 子的实例 ID 缓冲器 145。
在追踪对象分类 ID 141 中, 存储了唯一地识别该实例所属的分类的分类 ID。 在追 踪对象实例 ID 142 中, 存储了唯一地识别该实例的实例 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 的事件历史数据中获得消息 2 相对于消息 1 是子实例这样的信息。另一方面, 能够从关于消息 2 的事件历史数据中获 得针对消息 1 回送了消息 2 这样的信息。即, 能够从关于消息 2 的事件历史数据中获得消 息 1 相对于消息 2 是父实例这样的信息。在这种情况下, 在父侧的实例的子的个数 143 中 不会存储子的数量, 在父 / 子的实例 ID 缓冲器 145 中也不会存储子实例的实例 ID。但是, 在子侧的实例的父的个数 144 中存储父的数量, 在父 / 子的实例 ID 缓冲器 145 中存储父实 例的实例 ID。
即, 在合并数据中, 只要使父侧的实例的信息中具有子侧的实例的 ID、 或者使子侧 的实例的信息中具有父侧的实例的 ID 即可。因此, 在能够从父侧的实例得知子侧的实例但 无法从子侧的实例得知父侧的实例的情况下、 在能够从子侧的实例得知父侧的实例但无法 从父侧的实例得知子侧的实例的情况下, 也能够将全部的事件历史数据转换为合并数据的 形式。
要素抽取部 15 从合并数据存储部 14 中一件一件地读出事件历史数据, 一边参照 合并定义存储部 13 所存储的合并数据定义文件, 一边抽取事件 ID、 分类 ID、 追踪对象实例 ID、 父子关系的有无等用于生成后述的举动索引所需的信息。 分类信息生成部 16 和实例信息生成部 17 根据要素抽取部 15 所抽取的信息生成 固定信息, 并存储到举动索引存储部 21 中。
顺序关系存储部 18、 层次关系存储部 19 以及关系结构存储部 20 生成将针对每个 实例所产生的事件与基于该事件的状态的变化 ( 举动 ) 关联起来的图表结构的数据, 并存 储到举动索引存储部 21 中。
在后面详细说明分类信息生成部 16、 实例信息生成部 17、 顺序关系存储部 18、 层 次关系存储部 19、 关系结构存储部 20。
图 3 是以针对由规定的信息装置 (PC 等 ) 所生成的电子文件的操作历史为例示出 了由举动索引存储部 21 所管理的数据模型的结构的图。
图 3 表现出如下举动 : 用户 1 保存文件 A, 用户 2 将该文件 A 复制到 USB(Universal Serial Bus : 通用串行总线 ) 存储器中, 并且用户 1 打开作为复制源的文件 A, 用户 2 则退 出。
根据图 2 所示的合并数据的数据形式以及图 3 所示的图表结构, 来说明分类信息 生成部 16、 实例信息生成部 17、 顺序关系存储部 18、 层次关系存储部 19、 关系结构存储部 20。
分类信息生成部 16 根据合并数据的追踪对象分类 ID 141 中存储的分类 ID, 生成 文件分类和用户分类的分类。
实例信息生成部 17 根据合并数据的追踪对象实例 ID 142 中存储的实例 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 具备分类 ID 211、 实例数 212、 实例 ID 数组 213。
在分类 ID 211 中, 存储了识别其分类的分类 ID。
在实例数 212 中, 存储了属于其分类的实例的数量。 实例 ID 数组 213 针对属于其分类的每个实例, 生成了实例信息表 220( 实例信息 存储区域 )。
即, 在图 3 的文件分类中, 在分类 ID 211 中存储了表示文件分类的标识符。另外, 实例有文件 A 和文件 B 这两个, 因此在实例数 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 具备举动 ID 231、 事件 ID 232、 次举动 ID 233、 前举动 ID 234、 分类间关系管理数组 235。
在举动 ID 231 中, 存储唯一地识别其举动的举动 ID。 举动是指基于事件的实例的 状态变化。 即, 举动是针对每个事件、 每个实例所引起的, 针对每个事件、 每个实例分配举动 ID。
在事件 ID 232 中, 存储产生了该举动的事件的事件 ID。
在次举动 ID 233 中, 存储表示在该举动之后所产生的举动的举动 ID。
在前举动 ID 234 中, 存储表示在该举动之前所产生的举动的举动 ID。
在分类间关系管理数组 235 中, 生成关系结构信息表 240( 关系结构存储区域 ), 其 中, 该关系结构信息表 240 是关于产生了该举动的事件对于其它分类的实例所产生的举动 的信息 ( 关系结构信息 )。
即, 在图 3 的文件分类的文件 A 的 “USB 复制” 这样的举动中, 在举动 ID 231 中存 储表示关于文件 A 的 “USB 复制” 这样的举动的举动 ID。另外, 在事件 ID 232 中, 存储表示 “USB 复制” 的事件的事件 ID。并且, 在次举动 ID 233 中, 存储表示作为 “USB 复制” 的下一 举动的 “打开” 的举动的举动 ID。另外, 进一步在前举动 ID 234 中, 存储表示作为 “USB 复 制” 的前一举动的 “保存” 的举动的举动 ID。另外, 在分类间关系管理数组 235 中, 存储关 于产生了文件 A 的 “USB 复制” 的举动的事件使与文件 A 所属的文件分类不同的用户分类所 产生的举动 ( 关联的举动 ) 的信息。即, 在此存储关于用户 2 的 “USB 复制” 这样的举动的 信息。
关系结构信息表 240 具备分类 ID 241、 实例 ID 242、 举动 ID 243。
在分类 ID 241 中, 存储产生了相关联的举动的实例所属的分类 ID。
在实例 ID 242 中, 存储产生了相关联的举动的实例的实例 ID。
在举动 ID 243 中, 存储相关联的举动的举动 ID。
即, 在作为与文件 A 的 “USB 复制” 的举动相关联的举动的用户 2 的 “USB 复制” 这 样的举动中, 在分类 ID 241 中存储用户分类的分类 ID。另外, 在实例 ID 242 中存储用户 2 的用户 ID。在举动 ID 243 中, 存储表示关于用户 2 的 “USB 复制” 这样的举动的举动 ID。
子实例信息表 250 具备子实例 ID 251、 举动 ID 252。
在子实例 ID 251 中, 存储该实例的子实例的实例 ID。
在举动 ID 252 中, 存储表示由产生了子实例的事件所引起的子实例的举动的举 动 ID。
即, 在图 3 的文件分类的文件 A 中, 在子实例 ID 251 中存储表示作为文件 A 的子 实例的文本 B 的实例 ID。另外, 在举动 ID 252 中, 存储表示关于文件 B 的举动即 “USB 复 制” 这样的举动的举动 ID, 其中, 该举动是文件 B 产生的举动。即, 在举动 ID 252 中, 存储 表示在图 3 中从文件 A 到文件 B 的箭头的举动的举动 ID。
父实例信息表 260 具备父实例 ID 261、 举动 ID 262。
在父实例 ID 261 中, 存储该实例的父实例的实例 ID。
在举动 ID 262 中, 存储表示由产生了该实例的事件所引起的父实例的举动的举 动 ID。
即, 在图 3 的文件分类的文件 B 中, 在父实例 ID 261 中存储表示作为文件 B 的父 实例的文件 A 的实例 ID。另外, 在举动 ID 262 中存储表示关于文件 A 的举动即 “USB 复制” 这样的举动的举动 ID, 其中, 该举动是文件 B 产生的举动。即, 在举动 ID 262 中, 存储在图3 中表示关于文件 A 的 USB 复制的举动的横向箭头的举动 ID。
接着, 说明举动索引的生成处理。
首先, 说明分类信息生成部 16、 实例信息生成部 17、 顺序关系存储部 18 的处理。 图 5 是表示分类信息生成部 16、 实例信息生成部 17、 顺序关系存储部 18 的顺序关系信息生成 处理的流程图。
在顺序关系信息生成处理中, 要素抽取部 15 读入合并数据的 1 个记录, 取得包含 在该记录中的信息, 进行与包含在该记录中的追踪对象信息 140 的数相当的次数的以下处 理。此外, 顺序关系信息生成处理是从合并数据的前面的记录向后面的记录依次执行的。 即, 从关于先前产生的事件的记录到关于之后产生的事件的记录依次进行。通过进行顺序 关系信息生成处理, 生成图 3 所示的各分类的信息、 各实例的信息、 以及各实例中的举动的 顺序 ( 横向箭头 ) 的信息。
(S101) : 要素抽取部 15 从合并数据的未处理记录的最前面的记录中, 取得存储在 分类数 130 中的被存储在该记录中的分类的数 ( 追踪对象信息 140 的数量 )。
(S102) : 要素抽取部 15 根据在 (S101) 中取得的分类的数, 判定是否进行了关于全 部的追踪对象信息 140 的处理。在判定为进行了关于全部的追踪对象信息 140 的处理的情 况下 (S102 中为 “是” ), 结束处理。另一方面, 在判定为没有进行关于全部的追踪对象信息 140 的处理的情况下 ( 在 S102 中为 “否” ), 进入 (S103)。
(S103) : 要素抽取部 15 取得处理未完成的追踪对象信息 140 的追踪对象分类 ID 141 中存储的分类 ID。
(S104) : 分类信息生成部 16 判定关于在 (S103) 中取得的分类 ID 的处理是否已完 成、 即判定是否已经生成关于该分类 ID 的分类信息表 210。在判定为关于该分类 ID 的处 理已完成的情况下 ( 在 S104 中为 “是” ), 进入 (S107)。另一方面, 在判定为关于该分类 ID 的处理没有完成的情况下 ( 在 S104 中为 “否” ), 进入 (S105)。
(S105) : 分类信息生成部 16 生成关于在 (S103) 中取得的分类 ID 的分类信息表 210。
(S106) : 分类信息生成部 16 在 (S105) 中生成的分类信息表 210 中保存信息。此 外, 作为初始信息, 只在分类 ID 211 中保存信息, 在实例数 212 保存 0, 在实例 ID 数组 213 中保存 NULL( 空 )。
(S107) : 要素抽取部 15 取得所述追踪对象信息 140( 在 (S103) 中取得分类 ID 的 追踪对象信息 140) 的追踪对象实例 ID 142 中存储的实例 ID。
(S108) : 实例信息生成部 17 判定关于在 (S107) 中取得的实例 ID 的处理是否已完 成、 即判定是否已经生成关于该实例 ID 的实例信息表 220。在判定为关于该实例 ID 的处 理已完成的情况下 ( 在 S108 中为 “是” ), 进入 (S111)。另一方面, 在判定为关于该实例 ID 的处理没有完成的情况下 ( 在 S108 中为 “否” ), 进入 (S109)。
(S109) : 实例信息生成部 17 生成关于在 (S107) 中取得的实例 ID 的实例信息表 220。
(S110) : 实例信息生成部 17 在 (S109) 中生成的实例信息表 220 的实例头信息 221 中保存信息。并且, 对实例数 212 的实例数相加 ( 递增 )1。
(S111) : 顺序关系存储部 18 生成针对在 (S107) 中取得的实例 ID 的举动信息表230。 (S112) : 顺序关系存储部 18 取得在该记录的事件 ID 120 中存储的事件 ID, 生成 关于该事件 ID 所示的事件的、 针对所述实例 ID 的举动 ID。并且, 顺序关系存储部 18 将所 生成的举动 ID 存储到举动 ID 231 中, 并且将所述事件 ID 存储到事件 ID 232 中。
(S113) : 顺序关系存储部 18 在当前处理的举动信息表 230 的前举动 ID 234 中存 储前一个举动的举动 ID。 即, 顺序关系存储部 18 将关于当前处理的实例的举动即在 (S112) 中存储的举动 ID 所示的举动的前一个举动的举动 ID 存储到前举动 ID 234 中。顺序关系 存储部 18 例如从当前处理的实例信息表 220 的举动 ID 数组 222 中检索最末尾的举动信息 表 230, 取得在该举动信息表 230 的举动 ID 231 中存储的举动 ID, 由此能够取得前一个举 动的举动 ID。
(S114) : 顺序关系存储部 18 在当前处理的举动信息表 230 的次举动 ID 233 中存 储 0。 在下一个举动 ID 中保存有 0 的情况下, 表示不存在下一个举动、 即表示该举动信息表 230 为最末尾的举动。
(S115) : 顺序关系存储部 18 在所述最末尾的举动信息表 230 的次举动 ID 233 中 存储当前的 (S112) 中生成的举动 ID。
(S116) : 将当前处理的举动信息表 230 追加到举动 ID 数组 222 的最末尾。
即, 顺序关系存储部 18 针对属于表示规定种类的分类之中成为追踪对象的分类 的每个实例, 对与该实例相关联地产生的事件附加举动标识符, 将通过所述举动标识符来 示出与该实例相关联地产生的事件的产生顺序的顺序关系信息存储到存储装置中。
接着, 说明层次关系存储部 19 的处理。图 6 是表示层次关系存储部 19 的层次关 系信息生成处理的流程图。
在此, 接着基于图 5 所说明的顺序关系信息生成处理, 执行层次关系信息生成处 理。即, 接着顺序关系信息生成处理的 1 个记录的处理的结束, 执行下面所说明的 (S201)。 在这种情况下, 在下面所说明的 (S201) 中, 从在顺序关系信息生成处理中设为对象的记录 的追踪对象信息 140 中取得信息。此外, 也可以接着顺序关系信息生成处理的 1 个记录的 处理的结束, 不执行层次关系信息生成处理, 但是需要在顺序关系信息生成处理中生成成 为父的一侧的举动信息表 230。
通过对合并数据的各记录进行层次关系信息生成处理, 生成将图 2 所示的同一分 类内的实例之间进行连接的举动 ( 倾斜的实线箭头 ) 的信息。
(S201) : 要素抽取部 15 取得在规定的记录的规定的追踪对象信息 140 的子的个数 143 中存储的值。
此外, 在下面的说明中, 将所述规定的记录称作当前处理的记录, 将在所述规定的 追踪对象信息 140 的追踪对象实例 ID 142 中存储的实例 ID 称作当前处理的实例 ID。另 外, 将根据所述规定的追踪对象信息 140 的追踪对象分类 ID 141 中存储的分类 ID 而确定 的分类信息表 210 称作当前处理的分类信息表 210, 将根据所述当前处理的实例 ID 而确定 的实例信息表 220 称作当前处理的实例信息表 220。
(S202) : 层次关系存储部 19 根据在 (S201) 中取得的值, 判定在该实例中是否存在 子实例。即, 层次关系存储部 19 在取得的值为 0 时, 判定为不存在子实例, 在除此之外时判 定为存在子实例。在判定为存在子实例的情况下 ( 在 S202 中为 “是” ), 进入 (S203)。另一
方面, 在判定为不存在子实例的情况下 ( 在 S202 中为 “否” ), 结束处理。
(S203) : 层次关系存储部 19 取得存储在父 / 子的实例 ID 缓冲器 145 中的子实例 的实例 ID。
(S204) : 层次关系存储部 19 判定关于在 (S203) 中取得的子实例的实例 ID 的实 例信息表 220 是否已经存在。在判定为实例信息表 220 已经存在的情况下 ( 在 S204 中为 “是” ), 进入 (S206)。另一方面, 在判定为实例信息表 220 尚不存在的情况下 ( 在 S204 中 为 “否” ), 进入 (S205)。
(S205) : 层次关系存储部 19 在当前处理的分类信息表 210 的实例 ID 数组 213 中 生成关于子实例的实例 ID 的实例信息表 220。并且, 在所生成的实例信息表 220 的实例头 信息 221 中存储子实例的实例 ID。
(S206) : 层次关系存储部 19 在 (S205) 中生成的实例信息表 220 的父信息管理数 组 224 的最末尾, 生成父实例信息表 260。 并且, 层次关系存储部 19 在所生成的父实例信息 表 260 的父实例 ID 261 中存储当前处理的实例 ID, 并且在举动 ID 262 中存储关于当前处 理的记录的事件的、 针对当前处理的实例的举动 ID。此外, 该举动 ID 已经在顺序关系信息 生成处理中生成。 另外, 层次关系存储部 19 在关于在 (S205) 中生成的子实例的实例信息表 220 的 举动 ID 数组 222 的最末尾, 生成举动信息表 230。层次关系存储部 19 生成关于当前处理 的记录的事件的、 针对子实例的举动 ID, 并存储到所生成的举动信息表 230 的举动 ID 231 中。另外, 层次关系存储部 19 将所述事件的事件 ID 存储到事件 ID 232 中。而且, 层次关 系存储部 19 在次举动 ID 233 和前举动 ID 234 中存储 0。
(S207) : 层次关系存储部 19 在当前处理的实例信息表 220 的子信息管理数组 223 的最末尾, 生成关于子实例的子实例信息表 250。 并且, 层次关系存储部 19 将子实例的实例 ID 存储到所生成的子实例信息表 250 的子实例 ID 251 中, 并且将在 (S206) 中生成的举动 ID 存储到举动 ID 252 中。
(S208) : 层次关系存储部 19 判定是否执行了与在 (S201) 中取得的值所示的子实 例的个数相当的处理。 在判定为执行了与子实例的个数相当的处理的情况下 ( 在 S208 中为 “是” ), 结束处理。另一方面, 在判定为没有执行与子实例的个数相当的处理的情况下 ( 在 S208 中为 “否” ), 返回到 (S203)。
以能够从父侧的实例得知子侧的实例的情况为例说明了以上处理。但是, 关于能 够从子侧的实例得知父侧的实例的情况, 通过重新读取所述处理的父和子来进行基于相同 思路的处理, 从而也能够实现。
即, 在根据顺序关系存储部 18 存储了产生顺序的事件而从某个实例产生了新的 实例的情况下, 层次关系存储部 19 对于所述事件附加针对所述新的实例的新的举动标识 符, 并对于所述事件, 将对产生源的实例附加的举动标识符与所述新的举动标识符关联起 来的层次关系信息存储到存储装置中。
另外, 层次关系存储部 19 将附加给新的实例的新的标识符设为子, 将附加给产生 源的实例的标识符设为父, 存储将所述新的标识符与对产生源的实例附加的标识符关联起 来的层次关系信息。
接着, 说明关系结构存储部 20 的处理。图 7 是表示关系结构存储部 20 的关系结
构信息生成处理的流程图。
在此, 接着基于图 5 和图 6 进行了说明的顺序关系信息生成处理和层次关系信息 生成处理, 执行层次关系信息生成处理。即, 接着层次关系信息生成处理的 1 个记录的处理 的结束, 执行以下所说明的 (S301)。 在这种情况下, 在 (S301) 中, 从在顺序关系信息生成处 理和层次关系信息生成处理中设为对象的记录中取得信息。此外, 也可以接着层次关系信 息生成处理的 1 个记录的处理的结束, 不执行以下所说明的 (S301)。 但是, 在关系结构信息 生成处理之前, 需要通过顺序关系信息生成处理和层次关系信息生成处理, 来生成各分类 的信息、 各实例的信息、 各实例中的举动的顺序的信息、 以及将同一分类中的实例间进行连 接的举动的信息。
通过对合并数据的各记录进行关系结构信息生成处理, 生成图 2 所示的分类间的 实例间的关系 ( 虚线的箭头 ) 的信息。
(S301) : 关系结构存储部 20 判定在从合并数据中取得的一个记录内是否存在属 于不同分类的实例。例如, 要素抽取部 15 取得在记录的全部追踪对象信息 140 的追踪对象 分类 ID 141 中存储的分类 ID。然后, 关系结构存储部 20 通过判定在由要素抽取部 15 所取 得的分类 ID 中是否存在不同的分类 ID, 从而判定是否存在属于不同分类的实例。 在判定为 存在属于不同分类的实例的情况下 ( 在 S301 中为 “是” ), 进入 (S302)。另一方面, 在判定 为不存在属于不同分类的实例的情况下 ( 在 S301 中为 “否” ), 结束处理。
(S302) : 要素抽取部 15 分别取得在属于合并数据的不同分类的追踪对象信息 140 的追踪对象分类 ID 141 和追踪对象实例 ID 142 中存储的分类 ID 和实例 ID。即, 在合并数 据的一个记录中存在两个追踪对象信息 140、 且分别属于不同分类的情况下, 从各追踪对象 信息 140 取得分类 ID 和实例 ID。
(S303) : 关系结构存储部 20 在关于在当前处理的记录的事件 ID120 中存储的事件 ID 的、 举动信息表 230 的分类间关系管理数组 235 的最末尾, 生成关系结构信息表 240, 其 中, 该举动信息表 230 登记在根据在 (S302) 中取得的各实例 ID 而确定的实例信息表 220 的举动 ID 数组 222 中。即, 在取得图 3 的 “保存” 的事件的记录的情况下, 在关于文件 A 的 实例信息表 220 的关于 “保存” 事件的举动信息表 230 的分类间关系管理数组 235、 与关于 用户 1 的实例信息表 220 的关于 “保存” 事件的举动信息表 230 的分类间关系管理数组 235 中, 分别生成关系结构信息表 240。然后, 关系结构存储部 20 在所生成的关系结构信息表 240 的各个分类 ID 241、 实例 ID 242 和举动 ID 243 中, 分别存储 “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 按照由顺序关系存储部 18 存储的顺序关系信息所 表示的顺序, 取得与根据条件输入部 34 所输入的条件信息而确定的实例相关联地产生的 事件并进行追踪。
层次关系追踪部 32 根据层次关系信息来追踪实例的子实例或者父实例。即, 层次 关系追踪部 32 通过追寻对由顺序关系追踪部 31 取得的事件附加的举动标识符和由所述层 次关系存储部关联起来的举动标识符, 取得作为从根据所述条件信息而确定的实例产生的 新的实例或者根据所述条件信息而确定的实例的产生源的实例即下一层次的实例、 以及与 所述下一层次的实例相关联地产生的事件并进行追踪。并且, 对于通过层次关系追踪部 32 进行了追踪的子实例或者父实例, 顺序关系追踪部 31 根据顺序关系结构, 通过处理装置来 追踪事件的产生顺序。
分类间关系追踪部 33 对与顺序关系追踪部 31 追踪的举动 ID 相关联的属于不同 分类的实例 ID 以及举动 ID 进行追踪, 通过处理装置来追踪属于其它分类的实例。即, 分类 间关系追踪部 33 通过追寻对顺序关系追踪部 31 和层次关系追踪部 32 所取得的事件附加 的举动标识符、 以及由关系结构存储部 20 关联起来的对属于指定为追踪范围的分类的实 例附加的举动标识符, 从而取得作为与根据所述条件信息而确定的实例相关联并且属于指 定为追踪范围的分类的实例的其它分类实例、 以及与所述其它分类实例相关联地产生的事 件并进行追踪。
条件输入部 34 通过输入装置来输入对成为追踪对象的实例进行确定的条件信息 和用于缩小要追踪的范围的范围信息 ( 追踪范围 )。
在此, 使用邮件的发送接收历史的例子来说明事件历史追踪处理。
图 9 是将邮件的发送接收历史进行了图形化的图。
图 9 示出了 (1) 用户 A 向用户 B 和用户 C 发送消息 1, (2) 接着用户 B 向用户 A 发 送消息 2 而作为对消息 1 的回复这样的举动。
此外, 作为识别消息的 ID、 识别用户的 ID, 本来应该使用能够确保消息 ID、 邮件地 址等的唯一性的 ID, 但是在此抽象化地进行表现。
图 10 是示出了对于图 9 中所示的邮件的发送接收历史数据由实施方式 1 中说明的事件历史存储装置 10 所生成的举动索引的数据模型的结构的图。
在图 10 中, 在邮件的发送接收历史中成为追踪对象的分类是消息分类和用户分 类。在消息分类中, 作为实例而存在消息 1 和消息 2。在用户分类中, 作为示例而存在用户 A、 用户 B、 用户 C。由这些实例所生成的举动的数据模型结构表现为图表结构。
接着, 根据举动索引来说明追踪事件历史的事件历史追踪处理。图 11 是表示事件 历史追踪装置 30 的事件历史追踪处理的流程图。
(S401) : 条件输入部 34 输入追踪条件。作为追踪条件, 输入用于指定追踪对象的 数据的分类 ID 和实例 ID、 以及用于指定追踪范围的分类 ID。例如, 指定唯一地识别邮件消 息的实例 ID( 在此为消息 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 存储在分 类 ID 241 中的关系结构信息表 240。 然后, 分类间关系追踪部 33 取得在检索到的关系结构 信息表 240 的实例 ID 242 中存储的实例 ID、 以及存储在举动 ID 243 中的举动 ID。
例如, 在图 9 和图 10 所示的例子中, 取得与作为指定为追踪条件的消息 1 的初始 举动的 “发送” 相关联的属于其它分类的实例即用户 A、 以及举动 “发送” 。即, 得到由用户 A 发送了消息 1 这样的信息。
(S406) : 顺序关系追踪部 31 判定是否从在 (S402) 中确定的实例信息表 220 的举 动 ID 数组 222 的所有的举动信息表 230 中取得了举动信息。 在判定为从所有的举动信息表 230 中取得了举动信息的情况下 ( 在 S406 中为 “是” ), 进入 (S408)。另一方面, 在判定为没 有从所有的举动信息表 230 中取得举动信息的情况下 ( 在 S406 中为 “否” ), 进入 (S407)。
(S407) : 顺序关系追踪部 31 根据当前处理的举动信息表 230 的次举动 ID 233, 确 定其次的举动信息表 230。然后, 返回到 (S404), 从所确定的其次的举动信息表 230 中取得 举动信息, 分类间关系追踪部 33 从在其次的举动信息表 230 的分类间关系管理数组 235 中 登记的关系结构信息表 240 中, 取得指定为追踪范围的分类的实例 ID 及其举动 ID。
例如, 在图 9 和图 10 所示的例子中, 取得与作为指定为追踪条件的消息 1 的其次 的举动的 “接收” 相关联的属于其它分类的实例即用户 B、 举动 “接收” 、 以及用户 C、 举动 “接 收” 。即, 得到由用户 B 和用户 C 接收到消息 1 这样的信息。然后, 由于在消息 1 中没有其 次的举动, 因此 ( 在 S406 中为 “是” ) 进入 (S408)。
(S408) : 层次关系追踪部 32 参照在 (S402) 中确定的实例信息表 220 的子信息 管理数组 223, 判定是否存在从该实例产生的子实例。在判定为存在子实例的情况下 ( 在 S408 中为 “是” ), 进入 (S409)。另一方面, 在判定为不存在子实例的情况下 ( 在 S408 中为“否” ), 结束处理。
(S409) : 层次关系追踪部 32 取得在子信息管理数组 223 的子实例信息表 250 的子 实例 ID 251 中存储的实例 ID。然后, 以在 (S401) 中输入的分类 ID 和所取得的实例 ID 为 追踪条件, 返回 (S402) 进行追踪处理。此外, 在子信息管理数组 223 中登记有多个子实例 信息表 250 的情况下, 以在各子实例信息表 250 的子实例 ID 251 中存储的实例 ID 为追踪 条件来进行追踪处理。
例如, 在图 9 和图 10 所示的例子中, 作为指定为追踪条件的消息 1 的子实例而登 记有消息 2。因此, 以消息 2 为追踪条件来进行追踪处理。于是, 取得与作为消息 2 的初始 举动的 “发送” 相关联的属于其它分类的实例即用户 B、 和举动 “发送” 。即, 得到由用户 B 发 送了消息 2 这样的信息。接着, 获得与作为消息 2 的其次的举动的 “接收” 相关联的属于其 它分类的实例即用户 A、 和举动 “接收” 。即, 得到由用户 A 接收到消息 2 这样的信息。然后, 由于在消息 2 中没有其次的举动, 因此 ( 在 S406 中为 “是” ) 进入 (S408)。另外, 由于在消 息 2 中没有子实例, 因此结束处理。
在所述的例子中, 指定为追踪条件的消息 ID 被最初发送, 是成为图表结构的根源 (root) 的实例。 因此, 层次关系追踪部 32 不用进行父实例的追踪处理而只进行子实例的追 踪处理即可。但是, 例如在指定为以消息 2 为追踪对象的实例的情况下, 在子实例的追踪中 得不到任何信息。另一方面, 在消息 2 中存在父实例, 需要进行父实例的追踪处理。
即, 层次关系追踪部 32 追寻父实例的层次关系而取得成为根源的实例 ( 如果是图 10 则为消息 1), 需要按照图 11 的过程来追踪该取得的根源消息。此外, 成为根源的实例是 指不具有父实例的实例。
接着, 说明追寻父实例的层次关系而取得成为根源的实例的过程。图 12 是表示取 得成为根源的实例的处理的流程图。
(S501) : 与 (S401) 和 (S402) 同样地, 顺序关系追踪部 31 确定关于追踪对象的实 例的实例信息表 220。
(S502) : 参照在 (S501) 中确定的实例信息表 220 的父信息管理数组 224, 判定 是否存在作为该实例的产生源的父实例。在判定为存在父实例的情况下 ( 在 S502 中为 “是” ), 进入 (S503)。另一方面, 在判定为不存在父实例的情况下 ( 在 S502 中为 “否” ), 进 入 (S505)。
(S503) : 层次关系追踪部 32 取得登记在所述父信息管理数组 224 中的父实例信息 表 260 的父实例 ID 261 中存储的实例 ID。
(S504) : 层次关系追踪部 32 将在 (S503) 中取得的实例 ID 作为追踪对象的实例 ID 而返回到 (S502), 重复进行处理。
(S505) : 层次关系追踪部 32 以该实例为根源并结束。
通过以上的处理来明确成为根源的实例。因此, 通过指定成为根源的实例来进行 基于图 11 进行了说明的事件历史追踪处理, 从而能够追踪所有的事件。
此外, 在 (S503) 中在父信息管理数组 224 中登记有多个父实例信息表 260 的情况 下, 取得在各父实例信息表 260 的父实例 ID 261 中存储的实例 ID, 并对各实例 ID 进行探寻 父实例的处理。即, 有时存在多个成为根源的实例。在这种情况下, 从成为根源的多个实例 分别进行基于图 11 进行了说明的事件历史追踪处理。此外, 在此目的是取得成为根源的实例, 因此省略了取得举动信息的步骤, 但是在 需要举动信息的情况下, 能够以与取得子 ID 的情况同样的过程来取得父的举动信息。
如上所述, 根据与本实施方式有关的事件历史追踪装置 30, 从由事件历史存储装 置 10 以实例的举动的图表结构进行表示并存储的事件的历史数据, 能够追踪与实例相关 联地产生的事件的历史 ( 实例的行为 ), 并且即使在从实例中产生新的实例的情况下, 也能 够容易地连续地追踪原来的实例和新的实例。
另外, 同样地, 根据事件历史追踪装置 30, 能够从不同的实例 ( 用户 ) 的视角, 容易 地追踪关于某个实例 ( 例如消息 1) 的动作。
实施方式 3.
在本实施方式中, 说明与实施方式 2 不同的事件历史的追踪处理的例子。特别是 在本实施方式中说明对要追踪的层次级别进行了指定的追踪处理。
在此, 层次是指实例的父子关系, 层次级别是指相隔几个层次。即, 相对于规定的 实例, 子实例相隔 1 个层次 (1 个级别 )。另外, 所述子实例的子实例相对于所述规定的实 例相隔 2 个层次 (2 个级别 )。同样地, 相对于规定的实例, 父实例相隔 -1 个层次 (-1 个级 别 )。另外, 所述父实例的父实例, 相对于所述规定的实例相隔 -2 个层次 (-2 个级别 )。
图 13 是将制造工序进行了图形化的图。
在图 13 中, 作为工序具备搅拌工序、 燃烧工序、 冷却工序这三个工序。在各个工序 中, 分配唯一地识别制造单位的制造单位编号 ( 批号 )。 在搅拌工序中搅拌 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 中为 “是” ), 结束处理。另一方 面, 在判定为不是 D ≥ n 的情况下 ( 在 S605 中为 “否” ), 进入 (S606)。
(S606) : 层次关系追踪部 32 参照在 (S602) 中确定的实例信息表 220 的子信息 管理数组 223, 判定是否存在从该实例产生的子实例。在判定为存在子实例的情况下 ( 在 S606 中为 “是” ), 进入 (S607)。另一方面, 在判定为不存在子实例的情况下 ( 在 S606 中为 “否” ), 结束处理。
(S607) : 层次关系追踪部 32 对表示当前的层次级别的值 D 加 1( 递增 )。
例如, 在图 13 所示的例子中, 作为条件将层次级别指定为 2, 因此追踪到指定为实 例的燃烧 2 的 2 个层次之下的燃烧 4, 但是对于在其之下的层次 ( 燃烧 5 之后 ) 不进行追 踪。
另外, 将燃烧 2 设为实例 ID, 对停止的层次级别 n 指定 ±1 时, 追踪燃烧 1 和燃烧3。 在图 14 的过程中设想对所指定的层次级别进行指定的值为正的情况而说明了处 理过程, 但是如果是值为负的情况, 则在 (S607) 中加 -1( 递减 ), 并在 (S606) 中判定是否存 在父, 从而在父实例的追踪中也能够指定层次级别来进行追踪。
如上所述, 根据与本实施方式有关的事件历史追踪装置 30, 能够限定要追踪的层 次级别来进行追踪。
在以上实施方式中, 作为例子, 以文件操作、 邮件发送接收、 制造工序等的历史数 据为例进行了说明, 但是不限于此, 作为其它例子, 还能够应用于利用进入退出日志进行的 人的行动模式的追踪、 利用网络通信日志进行的通信路径的追踪等任意事件历史的追踪。
总结以上则如下。
与所述实施方式有关的历史追踪型数据管理方式的特征在于, 在处理多个被存储 的历史数据的装置中, 具备 : 实例抽取单元, 抽取历史数据的一个单位中包含的一个以上的 实例 ; 顺序关系结构管理单元, 管理在由所述实例抽取单元所抽取的实例中产生的事件所 引起的实例的顺序关系 ; 层次关系结构管理单元, 在所产生的事件中实例被合并或者分割 的情况下管理实例的层次关系 ; 以及分类间关系结构管理单元, 对于所产生的某个事件, 多 个属于不同分类的实例相关的情况下, 管理属于不同分类的实例间的关联性。
另外, 与所述实施方式有关的历史追踪型数据管理方式的特征在于, 还具备历史 数据合并单元, 该历史数据合并单元将所述历史数据合并为事先指定在定义文件中的统一 形式的数据。
另外, 所述历史数据合并单元的特征在于, 具备实例缩小功能, 该实例缩小功能通 过事先将实例条件等指定到定义文件中, 从而从全部历史数据中只将所需的对象生成为合
并数据。 另外, 与所述实施方式有关的历史追踪型数据管理方式的特征在于, 还具备要素 抽取单元, 该要素抽取单元从所述历史数据中抽取各个实例以及实例中产生的动作。
另外, 所述顺序关系结构管理单元的特征在于, 具备举动管理功能, 该举动管理功 能用于将全部实例中产生的事件与实例的状态以表方式进行管理, 对该表附加能够唯一地 识别的举动 ID, 并且管理举动 ID 的前后关系。
另外, 所述层次关系结构管理单元的特征在于, 具备 : 父 ID 识别功能, 在某个事件 使实例在同一分类内产生分割、 合并、 复制的情况下, 以在不同的实例间产生的关系, 将事 件产生前的实例识别为父 ; 子 ID 识别功能, 将事件产生后的实例识别为子 ; 以及层次信息 管理功能, 管理与父或者子的 ID 相关联的实例的事件。
另外, 所述分类间关系结构管理单元的特征在于, 具备分类间关系管理功能, 该分 类间关系管理功能在产生某个事件的情况下, 在对于该事件关联所属的分类不同的多个实 例时, 将属于不同分类的实例的举动之间关联起来进行管理。
另外, 特征在于具备举动索引生成单元, 该举动索引生成单元将由所述顺序关系 结构管理单元、 层次关系管理单元以及分类间关系结构管理单元所生成的三个关系结构作 为举动索引而生成。
另外, 与所述实施方式有关的历史追踪型数据管理方式的特征在于, 具备 : 顺序关 系追踪单元, 根据用于对由所述举动索引所管理的所述顺序关系进行指定的实例来追踪所 指定的实例的行为 ; 层次关系追踪单元, 根据层次结构关系来追踪层次关系 ; 以及分类间 关系追踪单元, 根据不同分类之间的分类间关系来进行追踪。
另外, 所述分类间关系追踪单元的特征在于, 具备 : 追踪范围指定功能, 根据用户 的输入来指定多个成为要追踪的范围的分类 ; 以及追踪范围分类限定功能, 只限定于所指 定的范围的分类而进行追踪。
另外, 所述层次关系追踪单元的特征在于, 具备 : 级别指定功能, 根据用户的输入 来指定层次的级别 ; 以及层次级别限定追踪功能, 在被指定的级别的层次内限定追踪范围。
接着, 说明所述实施方式中的事件历史存储装置 10 和事件历史追踪装置 30 的硬 件结构。
图 15 是表示事件历史存储装置 10 和事件历史追踪装置 30 的硬件结构的一个例 子的图。
如图 15 所示, 事件历史存储装置 10 和事件历史追踪装置 30 具备执行程序的 CPU 911( 还称作 Central Processing Unit( 中央处理器 )、 中央处理装置、 处理装置、 运算装 置、 微处理器、 微型计算机、 处理器 )。CPU 911 通过总线 912 而与 ROM 913、 RAM 914、 LCD 901(Liquid Crystal Display : 液晶显示器 )、 键盘 902、 鼠标 903、 通信板 (communication board)915、 磁盘装置 920 连接, 并控制这些硬件设备。代替磁盘装置 920, 也可以是光盘装 置、 存储卡读写装置等存储装置。
ROM 913、 磁盘装置 920 是非易失性存储器的一个例子。RAM 914 是易失性存储器 的一个例子。ROM 913、 RAM 914 以及磁盘装置 920 是存储装置的一个例子。通信板 915 和 键盘 902 是输入装置的一个例子。另外, 通信板 915 是输出装置的一个例子。而且, 通信板 915 是通信装置的一个例子。另外, LCD 901 还是显示装置的一个例子。
在磁盘装置 920 或者 ROM 913 等中, 存储有操作系统 921(OS)、 视窗系统 922、 程序 群 923、 文件群 924。程序群 923 的程序是通过 CPU911、 操作系统 921、 视窗系统 922 来执行 的。
在程序群 923 中, 存储有执行所述说明中以 “历史数据合并部 11” 、 “要素抽取部 15” 、 “分类信息生成部 16” 、 “实例信息生成部 17” 、 “顺序关系存储部 18” 、 “层次关系存储部 19” 、 “关系结构存储部 20” 等而进行说明的功能的程序、 其它程序。程序是由 CPU 911 读出 并执行的。
在文件群 924 中, 在所述说明中以 “条件指定存储部 12” 、 “合并定义存储部 13” 、 “合并数据存储部 14” “举动索引存储部 21” 、 等而进行说明的信息、 数据、 信号值、 变量值、 参 数存储为 “文件” 、 “数据库” 的各项目。 “文件” 、 “数据库” 存储在盘、 存储器等记录介质中。 存储在盘、 存储器等存储介质中的信息、 数据、 信号值、 变量值、 参数, 经过读写电路而被 CPU 911 读出到主存储器、 高速缓冲存储器中, 用于抽取、 检索、 参照、 比较、 运算、 计算、 处理、 输 出、 打印、 显示等 CPU 911 的动作中。在抽取、 检索、 参照、 比较、 运算、 计算、 处理、 输出、 打 印、 显示等 CPU 911 的动作期间, 信息、 数据、 信号值、 变量值、 参数被临时存储在主存储器、 高速缓冲存储器、 缓冲存储器中。
另外, 所述说明中的流程图的箭头部分主要表示数据、 信号的输入输出, 数据、 信 号值被记录在 RAM 914 的存储器、 其它光盘等记录介质中。另外, 数据、 信号通过总线 912、 信号线、 线缆、 其它传送介质而被在线传送。
另外, 在所述说明中说明为 “~部” 的部分, 既可以是 “~电路” 、 “~装置” 、 “~仪 器” 、 “~单元” 、 “~功能” , 另外也可以是 “~步骤” 、 “~过程” 、 “~处理” 。另外, 说明为 “~ 装置” 的部分, 既可以是 “~电路” 、 “~装置” 、 “~仪器” 、 “~单元” 、 “~功能” , 另外也可以是 “~步骤” 、 “~过程” 、 “~处理” 。而且, 以 “~处理” 进行说明的部分, 也可以是 “~步骤” 。 即, 说明为 “~部” 的部分, 也可以由存储在 ROM 913 中的固件 (firmware) 来实现。或者, 也可以仅由软件、 或者仅由元件、 设备、 基板、 布线等硬件、 或者软件和硬件的组合、 进一步 与固件的组合来实施。固件和软件作为程序被存储在 ROM 913 等记录介质中。程序被 CPU 911 读出, 并通过 CPU 911 来执行。即, 程序作为上述所说明的 “~部” 而使计算机等工作。 或者, 使计算机等执行上述所说明的 “~部” 的过程、 方法。