KR101171551B1 - 이벤트 이력 기억 장치, 이벤트 이력 추적 장치, 이벤트 이력 기억 방법, 이벤트 이력 기억 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 데이터 구조를 기록한 컴퓨터 판독 가능한 기록 매체 - Google Patents
이벤트 이력 기억 장치, 이벤트 이력 추적 장치, 이벤트 이력 기억 방법, 이벤트 이력 기억 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 데이터 구조를 기록한 컴퓨터 판독 가능한 기록 매체 Download PDFInfo
- Publication number
- KR101171551B1 KR101171551B1 KR1020107019072A KR20107019072A KR101171551B1 KR 101171551 B1 KR101171551 B1 KR 101171551B1 KR 1020107019072 A KR1020107019072 A KR 1020107019072A KR 20107019072 A KR20107019072 A KR 20107019072A KR 101171551 B1 KR101171551 B1 KR 101171551B1
- Authority
- KR
- South Korea
- Prior art keywords
- instance
- event
- information
- relationship
- behavior
- Prior art date
Links
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
추적 대상의 인스턴스가 분할, 복제 등 되어 새로운 인스턴스가 발생하는 경우에, 원래의 인스턴스와 새로운 인스턴스와 관련되는 이벤트의 이력을 용이하게 연속하여 추적할 수 있도록 한다. 인스턴스마다 이벤트에 거동 ID를 부여하여, 인스턴스마다 이벤트의 발생 순서를 관리한다. 또한, 어떤 이벤트에서 인스턴스로부터 새로운 인스턴스가 발생한 경우, 그 이벤트에 대하여 상기 새로운 인스턴스에 대하여 새로운 거동 ID를 부여한다. 그리고, 그 이벤트에 대하여 발생원의 인스턴스에 대하여 부여된 식별자와 상기 새로운 식별자를 관련시킨다.
Description
본 발명은, 예컨대, 애플리케이션의 동작 로그에 포함되는 정보의 추적을 용 이하고 또한 효율적으로 실현하기 위한 데이터 관리 기술과, 상기 데이터 관리 기술에 의해 관리된 데이터를 이용한 이력의 추적 기술에 관한 것이다.
정보 보안, 네트워크감시, 설비 관리 등의 분야를 중심으로, 수집 축적된 로그 데이터로부터 정보 누설, 부정 액세스, 기기 고장 등의 이력을 감시하고, 정보, 네트워크, 설비를 고도로 관리하고 있다.
예컨대, 추적 대상인 인스턴스(instance)에 대하여 발생한 이벤트의 이력 데이터를 수집하고, 그 이벤트의 이력 데이터에 근거하여, 일정 기간에 그 인스턴스가 어떠한 행위를 했는지를 추적한다. 추적 대상은 추적?감시 대상으로 되는 대상이며, 예컨대, PC(Personal Computer)로 생성된 파일 등이다. 또한, 추적 대상의 실체를 인스턴스라고 부른다. 즉, 추적 대상이 파일이면, 인스턴스는 파일 A, 파일 B 등의 구체적인 파일을 가리킨다. 즉, 인스턴스의 행위란, 예컨대, 파일 A가 편집되고, 보존된 것 등이다.
보통, 이벤트의 이력 데이터에는, 이벤트에 관련된 인스턴스를 식별하는 추적 대상 ID(식별자), 이벤트가 발생한 시각을 나타내는 타임 스탬프, 이벤트의 동작 정보가 기록되어 있다. 즉, 「파일 A가 편집되었다」라고 하는 이벤트의 이력 데이터에는, 파일 A의 식별자와, 편집된 일시 정보와, 편집이라는 동작을 나타내는 정보가 기록되어 있다.
특허문헌 1에서는, 복수의 데이터베이스에 분산되어 기록된 각 인스턴스에 대하여 통일적인 식별자를 부여하고 또한, 각 인스턴스가 처리된 순서를 나타내는 정보를 인스턴스마다 갖게 한다. 이것에 의해, 복수의 데이터베이스에 분산되어 이벤트 이력 데이터가 기록된 경우에도, 인스턴스마다의 처리를 순서대로 추적하는 것을 용이하게 하고 있다.
[특허문헌 1] 일본 특허 공개 평성 제11-212831호 공보
종래의 이벤트 이력 관리 방법에서는, 인스턴스가 분할되는 경우 등에는, 분할 전의 인스턴스의 행위와, 분할 후의 인스턴스의 행위를 연속하여 추적하는 것은 곤란하다. 즉, 인스턴스가 분할되면, 분할되어 생성된 새로운 인스턴스에는 새로운 식별자가 부여되고, 원래의 인스턴스(분할 전의 인스턴스)와 새로운 인스턴스(분할 후의 인스턴스)는 다른 식별자가 부여되어 버린다. 그 때문에, 원래의 인스턴스와 새로운 인스턴스 사이의 관련성이 없어지고, 원래의 인스턴스와 새로운 인스턴스를 연속하여 추적하기 어려워진다. 즉, 인스턴스로부터 새로운 인스턴스가 발생하는 경우에는, 원래의 인스턴스와 새로운 인스턴스를 연속하여 추적하기 어렵다(수고가 많이 필요하다).
인스턴스가 분할되는 경우에 한하지 않고, 인스턴스가 통합, 복제 등 되는 경우도 마찬가지이다.
예컨대, 인스턴스가 PC에서 생성된 파일일 때, 그 파일이 복사(copy), 리네임(rename) 등 된 경우나, 인스턴스가 제조 공정에서의 원료일 때, 그 원료가 분할, 통합된 경우에는, 처리 전의 인스턴스와 처리 후의 인스턴스를 연속하여 추적하는 것은 곤란하다.
즉, 파일이 복사되어 새로운 파일이 생성되면, 복사원(copy source)의 파일과 새로운 파일에는 다른 식별자가 부여된다. 그 때문에, 복사원의 파일과 새로운 파일의 행위를 연속하여 추적하는 것은 곤란하다.
또한, 종래의 이벤트 이력 관리 방법에서는, 어떤 인스턴스에 대한 동작을 다른 시점으로부터 추적하는 것은 곤란하다(수고가 많이 필요하다).
예컨대, 복수의 파일이 있고, 그 복수의 파일을 복수의 사용자가 사용하는 경우에, 어떤 파일에 대한 행위를, 그 파일을 사용한 사용자의 시점으로부터 추적한다는 것은 곤란하다. 즉, 어떤 파일에 대하여, 보존되고, 열리고, 다시 보존되었다고 하는 추적은 행할 수 있었다고 해도, 어떤 파일에 대하여, 사용자 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는 루트로 되는 인스턴스를 취득하는 처리를 나타내는 흐름도,
도 13은 제조 공정을 이미지화한 도면,
도 14는 지정된 계층 레벨까지 이벤트 이력을 추적하는 이벤트 이력 추적 처리를 나타내는 흐름도,
도 15는 이벤트 이력 기억 장치(10)와 이벤트 이력 추적 장치(30)의 하드웨어 구성의 일례를 나타내는 도면.
도 2는 통합 데이터의 데이터 형식의 일례를 나타내는 도면,
도 3은 거동 인덱스 기억부(21)에서 관리되는 데이터 모델의 구조를 나타낸 도면,
도 4는 거동 인덱스의 데이터 구조를 나타내는 도면,
도 5는 클래스 정보 생성부(16), 인스턴스 정보 생성부(17), 순서 관계 기억부(18)에 의한 순서 관계 정보 생성 처리를 나타내는 흐름도,
도 6은 계층 관계 기억부(19)에 의한 계층 관계 정보 생성 처리를 나타내는 흐름도,
도 7은 관계 구조 기억부(20)에 의한 관계 구조 정보 생성 처리를 나타내는 흐름도,
도 8은 이벤트 이력 추적 장치(30)의 기능을 나타내는 기능 블록도,
도 9는 메일의 송수신 이력을 이미지화한 도면,
도 10은 도 9에서 나타낸 메일의 송수신 이력 데이터에 관한 거동 인덱스의 데이터 모델의 구조를 나타낸 도면,
도 11은 이벤트 이력 추적 장치(30)에 의한 이벤트 이력 추적 처리를 나타내는 흐름도,
도 12는 루트로 되는 인스턴스를 취득하는 처리를 나타내는 흐름도,
도 13은 제조 공정을 이미지화한 도면,
도 14는 지정된 계층 레벨까지 이벤트 이력을 추적하는 이벤트 이력 추적 처리를 나타내는 흐름도,
도 15는 이벤트 이력 기억 장치(10)와 이벤트 이력 추적 장치(30)의 하드웨어 구성의 일례를 나타내는 도면.
(실시예 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에 대한 이벤트 이력 데이터로부터는, 메시지 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)는, 통합 데이터의 추적 대상 클래스 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의 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)은, 거동 ID(231), 이벤트 ID(232), 다음 거동 ID(233), 이전 거동 ID(234), 클래스간 관계 관리 배열(235)을 구비한다.
거동 ID(231)에는, 그 거동을 일의로 식별하는 거동 ID가 기억된다. 거동이란, 이벤트에 의한 인스턴스의 상태의 변화이다. 즉, 거동은 이벤트마다, 인스턴스마다 일어나는 것이며, 거동 ID는 이벤트마다, 인스턴스마다 할당된다.
이벤트 ID(232)에는, 그 거동을 발생시킨 이벤트의 이벤트 ID가 기억된다.
다음 거동 ID(233)에는, 그 거동의 다음에 발생하는 거동을 나타내는 거동 ID가 기억된다.
이전 거동 ID(234)에는, 그 거동의 앞에 발생한 거동을 나타내는 거동 ID가 기억된다.
클래스간 관계 관리 배열(235)에는, 그 거동을 발생시킨 이벤트가 다른 클래스의 인스턴스에 대하여 발생시킨 거동에 대한 정보(관계 구조 정보)인 관계 구조 정보 테이블(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가 발생한 거동으로서, 파일 B에 대한 거동인 「USB 복사」라는 거동을 나타내는 거동 ID가 기억된다. 즉, 거동 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)에는, 파일 B가 발생한 거동으로서, 파일 A에 대한 거동인 「USB 복사」라는 거동을 나타내는 거동 ID가 기억된다. 즉, 거동 ID(262)에는, 도 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에서 "예"), 처리를 종료한다. 한편, 모든 추적 대상 정보(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)로 되돌아간다.
이상의 처리는 부모측의 인스턴스로부터 자식측의 인스턴스를 알 수 있는 경우를 예로 하여 설명했다. 그러나, 자식측의 인스턴스로부터 부모측의 인스턴스를 알 수 있는 경우에 관해서도, 상기 처리의 부모와 자식를 바꿔 읽어, 마찬가지의 사고 방식에 의한 처리를 행하는 것으로 실현된다.
즉, 계층 관계 기억부(19)는, 순서 관계 기억부(18)가 발생 순서를 기억한 이벤트에 의해 임의의 인스턴스로부터 새로운 인스턴스가 발생한 경우, 상기 이벤트에 대하여 상기 새로운 인스턴스에 관한 새로운 거동 식별자를 부여하고, 상기 이벤트에 대하여 발생원의 인스턴스에 대하여 부여된 거동 식별자와 상기 새로운 거동 식별자를 관련시킨 계층 관계 정보를 기억 장치에 기억한다.
또한, 계층 관계 기억부(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를 각각 취득한다. 즉, 통합 데이터의 하나의 레코드에 2개의 추적 대상 정보(140)가 존재하고, 각각 다른 클래스에 속하는 경우에는, 각 추적 대상 정보(140)로부터 클래스 ID와 인스턴스 ID를 취득한다.
(S303) : 관계 구조 기억부(20)는, (S302)에서 취득한 각 인스턴스 ID에서 특정되는 인스턴스 정보 테이블(220)의 거동 ID 배열(222)에 등록된 거동 정보 테이블(230)로서, 현재 처리하고 있는 레코드의 이벤트 ID(120)에 기억된 이벤트 ID에 대한 거동 정보 테이블(230)의 클래스간 관계 관리 배열(235)의 최후미에, 관계 구조 정보 테이블(240)을 생성한다. 즉, 도 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)는, 조건 입력부(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이 누구에게 전달됐는지를 추적한다. 한편,여기서는 추적 범위 클래스를 하나 지정하고 있지만, 복수개 지정하는 것도 가능하다.
(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와, 거동 「송신」이 취득된다. 즉, 메시지 1을 사용자 A가 송신했다고 하는 정보가 얻어진다.
(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와, 거동 「수신」이 취득된다. 즉, 메시지 1을 사용자 B와 사용자 C가 수신했다고 하는 정보가 얻어진다. 그리고, 메시지 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와, 거동 「송신」이 취득된다. 즉, 메시지 2를 사용자 B가 송신했다고 하는 정보가 얻어진다. 계속해서, 메시지 2의 다음 거동인 「수신」과 관련지어진 다른 클래스에 속하는 인스턴스인 사용자 A와, 거동 「수신」이 취득된다. 즉, 메시지 2를 사용자 A가 수신했다고 하는 정보가 얻어진다. 그리고, 메시지 2에는 다음 거동이 없기 때문에(S406에서 "예"), 다음(S408)으로 진행한다. 또한, 메시지 2에는 자식 인스턴스가 없기 때문에, 처리가 종료된다.
상기의 예에서는 추적 조건으로서 지정한 메시지 ID가 최초에 송신된 것이며 그래프 구조의 루트로 되는 인스턴스였다. 그 때문에, 계층 관계 추적부(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에서는, 공정으로서 교반 공정, 연소 공정, 냉각 공정의 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에서 "예"), 처리를 종료한다. 한편, 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)에 의하면, 추적하는 계층 레벨을 한정하여 추적을 행할 수 있다.
이상 실시예에서는, 예로서 파일 조작, 메일 송수신, 제조 공정 등의 이력 데이터를 예로서 설명했지만 이것에 한정되는 것이 아니라, 별도의 예로서, 입퇴실 로그에 의한 사람의 거동 패턴의 추적, 네트워크 통신 로그에 의한 통신 경로의 추적 등, 어떠한 이벤트 이력의 추적에도 적용할 수 있다.
이상을 정리하면 아래와 같이 된다.
상기 실시예에 따른 이력 추적형 데이터 관리 방식은, 복수의 축적된 이력 데이터를 처리하는 장치에 있어서, 이력 데이터의 1단위에 포함되는 하나 이상의 인스턴스를 추출하는 인스턴스 추출 수단과, 상기 인스턴스 추출 수단에 의해 추출된 인스턴스에서 발생한 이벤트에 의한 인스턴스의 순서 관계를 관리하는 순서 관계 구조 관리 수단과, 발생한 이벤트에 있어서 인스턴스가 통합 또는 분할되는 경우에 인스턴스의 계층 관계를 관리하는 계층 관계 구조 관리 수단과, 발생한 임의의 이벤트에 대하여 복수의 다른 클래스에 속하는 인스턴스가 관계하는 경우에 다른 클래스에 속하는 인스턴스 사이의 관련성을 관리하는 클래스간 관계 구조 관리 수단을 구비하는 것을 특징으로 한다.
또한, 상기 실시예에 따른 이력 추적형 데이터 관리 방식은, 상기 이력 데이터를 사전에 정의 파일로 지정한 통일적인 형식의 데이터에 통합하는 이력 데이터 통합 수단을 더 구비하는 것을 특징으로 한다.
또한, 상기 이력 데이터 통합 수단은, 사전에 인스턴스 조건 등을 정의 파일로 지정하는 것으로 모든 이력 데이터 중에서 필요한 대상만을 통합 데이터에 생성하는 인스턴스 엄선 기능을 구비하는 것을 특징으로 한다.
또한, 상기 실시예에 따른 이력 추적형 데이터 관리 방식은, 상기 이력 데이터로부터 개개의 인스턴스 및 인스턴스에 발생한 동작을 추출하는 요소 추출 수단을 더 구비하는 것을 특징으로 한다.
또한, 상기 순서 관계 구조 관리 수단은, 모든 인스턴스에 발생한 이벤트와 인스턴스의 상태를 테이블로 관리하고, 그 테이블에 일의로 식별 가능한 거동 ID를 부가하고, 또한 거동 ID의 전후 관계를 관리하기 위한 거동 관리 기능을 구비한 것을 특징으로 한다.
또한, 상기 계층 관계 구조 관리 수단은, 어떤 이벤트가 인스턴스를 동일 클래스 내에서 분할, 통합, 복제를 발생시키는 경우에 다른 인스턴스 사이에서 발생하는 관계로 이벤트 발생 전의 인스턴스를 부모로서 식별하는 부모 ID 식별 기능과, 이벤트 발생 후의 인스턴스를 자식으로서 식별하는 자식 ID 식별 기능과, 부모 또는 자식의 ID에 관련되는 인스턴스의 이벤트를 관리하는 계층 정보 관리 기능을 구비하는 것을 특징으로 한다.
또한, 상기 클래스간 관계 구조 관리 수단은, 어떤 이벤트가 발생한 경우에 상기 이벤트에 대하여 속하는 클래스가 다른 복수의 인스턴스가 관련될 때, 다른 클래스에 속하는 인스턴스의 거동 사이를 관련지어 관리하는 클래스간 관계 관리 기능을 구비하는 것을 특징으로 한다.
또한, 상기 순서 관계 구조 관리 수단과 계층 관계 관리 수단과 클래스간 관계 구조 관리 수단에 의해서 생성된 3개의 관계 구조를 거동 인덱스로서 생성하는 거동 인덱스 생성 수단을 구비하는 것을 특징으로 한다.
또한, 상기 실시예에 따른 이력 추적형 데이터 관리 방식은, 지정한 인스턴스의 행위를 상기 거동 인덱스가 관리하는 상기 순서 관계를 지정한 인스턴스에 근거하여 추적하는 순서 관계 추적 수단과, 계층 관계를 계층 구조 관계에 근거하여 추적하는 계층 관계 추적 수단과, 다른 클래스 사이에서의 클래스간 관계에 근거하여 추적하는 클래스간 관계 추적 수단을 구비하는 것을 특징으로 한다.
또한, 상기 클래스간 관계 추적 수단은, 사용자의 입력에 의해 추적하는 범위로 되는 클래스를 복수 지정하는 추적 범위 지정 기능과, 지정된 범위의 클래스만큼 한정하여 추적하는 추적 범위 클래스 한정 기능을 구비하는 것을 특징으로 한다.
또한, 상기 계층 관계 추적 수단은, 사용자의 입력에 의해 계층의 레벨을 지정하는 레벨 지정 기능과, 지정된 레벨의 계층 내에 추적 범위를 한정하는 계층 레벨 한정 추적 기능을 구비하는 것을 특징으로 한다.
다음으로 상기 실시예에서의 이벤트 이력 기억 장치(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), 통신 보드(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)의 프로그램은 CPU(911), 운영 시스템(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)에 기억된 펌웨어로 실현되어 있더라도 상관없다. 혹, 소프트웨어만, 혹은, 소자?디바이스?기판?배선 등의 하드웨어만, 혹은, 소프트웨어와 하드웨어와의 조합, 또는, 펌웨어와의 조합으로 실시되더라도 상관없다. 펌웨어와 소프트웨어는 프로그램으로서 ROM(913) 등의 기록 매체에 기억된다. 프로그램은 CPU(911)에 의해 판독되고, CPU(911)에 의해 실행된다. 즉, 프로그램은 상기에서 설명한 「~ 부」로서 컴퓨터 등을 기능하게 하는 것이다. 또는, 상기에서 설명한 「~ 부」의 순서나 방법을 컴퓨터 등에 실행하게 하는 것이다.
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
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 항에 있어서,
상기 계층 관계 기억부는, 새로운 인스턴스에 부여된 새로운 식별자를 자식으로 하고, 발생원의 인스턴스에 대하여 부여된 식별자를 부모로 하여, 상기 새로운 식별자와 발생원의 인스턴스에 대하여 부여된 식별자를 관련시킨 계층 관계 정보를 기억하는 것을 특징으로 하는 이벤트 이력 기억 장치.
- 제 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 |
---|---|
KR20100108609A KR20100108609A (ko) | 2010-10-07 |
KR101171551B1 true KR101171551B1 (ko) | 2012-08-06 |
Family
ID=41015647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107019072A KR101171551B1 (ko) | 2008-02-29 | 2008-02-29 | 이벤트 이력 기억 장치, 이벤트 이력 추적 장치, 이벤트 이력 기억 방법, 이벤트 이력 기억 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 데이터 구조를 기록한 컴퓨터 판독 가능한 기록 매체 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20110078218A1 (ko) |
JP (1) | JP4989761B2 (ko) |
KR (1) | KR101171551B1 (ko) |
CN (1) | CN101965558B (ko) |
WO (1) | WO2009107234A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101525747B1 (ko) * | 2014-11-20 | 2015-06-03 | 한국 한의학 연구원 | 사용자 반응에 따른 이벤트 활성 계층화 장치 및 방법 |
US10310615B2 (en) | 2013-10-01 | 2019-06-04 | Samsung Electronics Co., Ltd. | Apparatus and method of using events for user interface |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012101775A1 (ja) * | 2011-01-26 | 2012-08-02 | 富士通株式会社 | 参照支援装置、参照支援方法、及び参照支援プログラム |
CN110083596A (zh) * | 2018-05-16 | 2019-08-02 | 陈刚 | 一种数据历史跟踪和数据变化历史跟踪的方法 |
CN110532048B (zh) * | 2019-07-05 | 2022-11-15 | 武楚荷 | 一种事件的记录方法、装置以及存储装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11327980A (ja) | 1998-05-20 | 1999-11-30 | Fuji Xerox Co Ltd | バージョン管理装置 |
JP2007279883A (ja) | 2006-04-04 | 2007-10-25 | Hitachi Ltd | ファイル構成管理システム |
Family Cites Families (8)
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 | オブジェクト間協調動作のログ管理およびイベント追跡のための方式および方法 |
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 |
US20080059539A1 (en) * | 2006-08-08 | 2008-03-06 | Richard Chin | Document Collaboration System and Method |
-
2008
- 2008-02-29 KR KR1020107019072A patent/KR101171551B1/ko active IP Right Grant
- 2008-02-29 US US12/919,774 patent/US20110078218A1/en not_active Abandoned
- 2008-02-29 CN CN200880127636.5A patent/CN101965558B/zh active Active
- 2008-02-29 WO PCT/JP2008/053653 patent/WO2009107234A1/ja active Application Filing
- 2008-02-29 JP JP2010500506A patent/JP4989761B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11327980A (ja) | 1998-05-20 | 1999-11-30 | Fuji Xerox Co Ltd | バージョン管理装置 |
JP2007279883A (ja) | 2006-04-04 | 2007-10-25 | Hitachi Ltd | ファイル構成管理システム |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10310615B2 (en) | 2013-10-01 | 2019-06-04 | Samsung Electronics Co., Ltd. | Apparatus and method of using events for user interface |
US10838508B2 (en) | 2013-10-01 | 2020-11-17 | Samsung Electronics Co., Ltd. | Apparatus and method of using events for user interface |
KR101525747B1 (ko) * | 2014-11-20 | 2015-06-03 | 한국 한의학 연구원 | 사용자 반응에 따른 이벤트 활성 계층화 장치 및 방법 |
WO2016080641A1 (ko) * | 2014-11-20 | 2016-05-26 | 한국 한의학 연구원 | 사용자 반응에 따른 이벤트 활성 계층화 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN101965558B (zh) | 2014-07-02 |
CN101965558A (zh) | 2011-02-02 |
JPWO2009107234A1 (ja) | 2011-06-30 |
JP4989761B2 (ja) | 2012-08-01 |
KR20100108609A (ko) | 2010-10-07 |
WO2009107234A1 (ja) | 2009-09-03 |
US20110078218A1 (en) | 2011-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108446407A (zh) | 基于区块链的数据库审计方法和装置 | |
US20050165865A1 (en) | Metadata journal for information technology systems | |
CN110908997A (zh) | 数据血缘构建方法、装置、服务器及可读存储介质 | |
US20120290544A1 (en) | Data compliance management | |
CN107807932B (zh) | 一种基于路径枚举的层级数据管理方法和*** | |
JP2009075655A (ja) | ファイル管理システム、ファイル管理方法、およびファイル管理プログラム | |
KR101171551B1 (ko) | 이벤트 이력 기억 장치, 이벤트 이력 추적 장치, 이벤트 이력 기억 방법, 이벤트 이력 기억 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 데이터 구조를 기록한 컴퓨터 판독 가능한 기록 매체 | |
JP2010182194A (ja) | 統合ログ生成装置及び統合ログ生成プログラム及び記録媒体 | |
CN110245149A (zh) | 元数据的版本管理方法及装置 | |
CN115329011A (zh) | 数据模型的构建方法、数据查询的方法、装置及存储介质 | |
CN111176901B (zh) | 一种hdfs删除文件恢复方法、终端设备及存储介质 | |
CN110275890B (zh) | 一种数据查询方法及*** | |
CN114124977B (zh) | 跨租户间的数据分享方法、装置和电子设备 | |
CN116204540A (zh) | 操作日志记录方法、装置、设备及存储介质 | |
JP5845961B2 (ja) | 情報処理装置及び情報処理プログラム | |
EP3591481B1 (en) | Device configuration management apparatus, system, and program | |
CN111552847B (zh) | 一种变更对象数量的方法和装置 | |
US20170262439A1 (en) | Information processing apparatus and non-transitory computer readable medium | |
CN112257284A (zh) | 基于区块链的cad***中设计知识追溯方法与*** | |
CN113868253A (zh) | 一种数据关系捕获及大数据关系树构建方法 | |
US20200112621A1 (en) | Method and system for tracking chain of custody on unstructured data | |
CN111209330A (zh) | 一种识别一致行动人的方法及*** | |
Singh | NoSQL: A new horizon in big data | |
CN116049190B (zh) | 基于Kafka的数据处理方法、装置、计算机设备和存储介质 | |
US20070162492A1 (en) | Reconstruction of historic business object state |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150630 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160701 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170704 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180628 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190627 Year of fee payment: 8 |