KR101411266B1 - 계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템 - Google Patents

계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템 Download PDF

Info

Publication number
KR101411266B1
KR101411266B1 KR1020110097550A KR20110097550A KR101411266B1 KR 101411266 B1 KR101411266 B1 KR 101411266B1 KR 1020110097550 A KR1020110097550 A KR 1020110097550A KR 20110097550 A KR20110097550 A KR 20110097550A KR 101411266 B1 KR101411266 B1 KR 101411266B1
Authority
KR
South Korea
Prior art keywords
event
processing
definition
data
condition
Prior art date
Application number
KR1020110097550A
Other languages
English (en)
Other versions
KR20130033708A (ko
Inventor
김시환
김현표
이상우
김재만
이상윤
이신태
최의열
장유진
김교탁
강현상
Original Assignee
주식회사 엘지씨엔에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엘지씨엔에스 filed Critical 주식회사 엘지씨엔에스
Priority to KR1020110097550A priority Critical patent/KR101411266B1/ko
Publication of KR20130033708A publication Critical patent/KR20130033708A/ko
Application granted granted Critical
Publication of KR101411266B1 publication Critical patent/KR101411266B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 출원은 복합 이벤트 처리 기술에 관한 것으로, 본 출원 발명의 일 실시예에 따른 이벤트 처리 엔진은 입력 데이터에 대하여 이벤트 처리를 수행한다. 상기 이벤트 처리 엔진은 이벤트 정의 모듈 및 이벤트 프로세스 엔진을 포함한다. 상기 이벤트 정의 모듈은 상기 이벤트에 대하여 적어도 하나의 이벤트 오브젝트 및 컨텐츠에 대한 순차적 구조이고 상기 적어도 하나의 이벤트 오브젝트는 해당 이벤트에 상응하는 소스 데이터인지 여부를 판단하는 필터 오브젝트를 상기 순차적 구조의 루트로서 포함하고 상기 컨텐츠는 상기 순차적 구조의 말단으로 포함되는 추상 이벤트 정의를 생성한다. 상기 이벤트 프로세스 엔진은 상기 입력 데이터에 대하여 상기 추상 이벤트 정의에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 추상 이벤트 정의의 순차적 구조에 따라 순차적으로 처리하며, 상기 처리한 결과 상기 추상 이벤트 정의 구조를 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 한다.

Description

계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템 {EVENT PROCESSING METHOD USING HIERARCHICAL STRUCTURE AND EVENT PROCESSING ENGINE AND SYSTEM THEREOF}
본 출원은 이벤트 처리 기술에 관한 것으로, 보다 상세하게는, 계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템에 관한 것이다.
이벤트 처리는 전산 시스템의 효율성 및 성능에 주요한 영향을 미치는 주요 기술 요소로서 다양하게 개발되고 있다.
종래의 이벤트 처리 방식의 일 예를 크게 다음과 같은 단계를 거쳐 수행된다.
(i) 비즈니스 이벤트에 대하여 실행 이벤트를 정의하고, (ii) 소스 데이터에서 이벤트가 발생하면, 룰 연산을 통하여 조건을 판단한 후, (iii) 실행 이벤트에 해당하면 비즈니스 이벤트로서 소정의 이벤트 처리를 수행한다.
그러나, 이러한 종래기술은 다음과 같은 문제점이 있다. 이벤트 처리 시, 룰 연산 정의가 한번으로 한정되어 있어 룰에 대하여 다양한 액션을 수행하기 위해서는 동일한 기능의 다른 액션으로 이벤트를 새로 만들어야 하므로, 필요 시스템 비용이 증대되는 문제가 있다. 또한, 이벤트 처리 과정 중 연산 과정에서 생성된 중간 연산값을 활용하지 못하고, 중간 연산이 필요한 경우 별도로 지표라는 구성요소를 정의하여 데이터베이스에 저장하고 이를 조회하여야하므로, 데이터베이스 억세스에 따른 시스템 성능 저하가 발생하는 문제가 있다. 이러한 문제들로 인하여, 실시간 대량으로 발생하는 데이터 처리가 실질적으로 어려워, 대규모의 복합 이벤트 처리가 수행되지 못하는 문제점이 있다.
본 출원은 기업의 다양한 시스템으로부터 발생하는 대용량의 트랜잭션(transaction)에 대하여 효율적으로 유의미한 복합이벤트를 처리할 수 있는 이벤트 처리 기술을 제공하고자 한다.
또한, 본 출원은 이벤트 정의 구조를 표준화하여 컴포넌트의 추가로 유연하게 이벤트 정의를 재구성할 수 있는 이벤트 처리 기술을 제공하고자 한다.
또한, 본 출원은 분기 처리를 이용하여 하나의 이벤트에 대하여 하나의 룰로 복수의 액션을 처리할 수 있는 이벤트 처리 기술을 제공하고자 한다.
또한, 본 출원은 스트림 처리 기능을 더 구비하여, 이전에 발생한 필터 등의 오브젝트 및 그 연산 결과를 재사용할 수 있는 이벤트 처리 기술을 제공하고자 한다.
또한, 본 출원은 이벤트 컨텍스트 전달을 통해, 이벤트 처리과정에서 발생한 중간 연산결과를 재사용할 수 있는 이벤트 처리 기술을 제공하고자 한다.
실시예들 중에서, 이벤트 처리 엔진은 입력 데이터에 대하여 이벤트 처리를 수행한다. 상기 이벤트 처리 엔진은 이벤트 정의 모듈 및 이벤트 프로세스 엔진을 포함한다. 상기 이벤트 정의 모듈은 상기 이벤트에 대하여 적어도 하나의 이벤트 오브젝트 및 컨텐츠에 대한 순차적 구조이고, 상기 적어도 하나의 이벤트 오브젝트는 해당 이벤트에 상응하는 소스 데이터인지 여부를 판단하는 필터 오브젝트를 상기 순차적 구조의 루트로서 포함하고 상기 컨텐츠는 상기 순차적 구조의 말단으로 포함되는 추상 이벤트 정의를 생성한다. 상기 이벤트 프로세스 엔진은 상기 입력 데이터에 대하여 상기 추상 이벤트 정의에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 추상 이벤트 정의의 순차적 구조에 따라 순차적으로 처리하며, 상기 처리한 결과 상기 추상 이벤트 정의 구조를 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 한다.
일 실시예에서, 상기 순차적 구조는 비순환 방향성 그래프 구조 또는 종료 조건을 포함하는 순환 방향성 그래프 구조로서 정의될 수 있다.
일 실시예에서, 상기 적어도 하나의 이벤트 오브젝트는 상기 순차적 구조에서 분기점을 정의하여 상기 추상 이벤트 정의가 복수의 컨텐츠를 포함하도록 하는 컨디션 오브젝트를 포함할 수 있다.
일 실시예에서, 상기 적어도 하나의 이벤트 오브젝트는 상기 필터 오브젝트의 인스턴스로서 상기 필터링된 데이터를 메모리에 저장하고 조회하며, 다른 이벤트 오브젝트가 상기 저장된 필터 오브젝트의 인스턴스를 직접적으로 조회할 수 있도록 하는 필터 스트림 뷰 오브젝트를 포함할 수 있다.
일 실시예에서, 상기 적어도 하나의 이벤트 오브젝트는 상기 순차적 구조에서 상기 생성된 데이터에 대하여 미리 정의된 특정 함수를 수행하여 특정 결과를 생성하고, 상기 생성된 특정 결과가 특정 조건을 만족시키는지 여부를 검토하는 컨디션 함수 오브젝트를 포함할 수 있다.
일 실시예에서, 상기 적어도 하나의 이벤트 오브젝트는 상기 순차적 구조에서 외부의 데이터베이스를 참조하여 검색 결과를 가져오는 데이터베이스 참조 오브젝트를 포함할 수 있다.
일 실시예에서, 상기 이벤트 처리 엔진은 상기 필터 오브젝트에 대하여 상기 필터 스트림 뷰 오브젝트에 해당하는 데이터가 요구되면 해당 데이터를 세팅하는 전처리 엔진을 더 포함할 수 있다.
실시예들 중에서, 이벤트 정의 구조는 적어도 하나의 이벤트 오브젝트 및 컨텐츠에 대한 순차적 구조로서, 상기 적어도 하나의 이벤트 오브젝트는 해당 이벤트에 상응하는 소스 데이터인지 여부를 판단하는 필터 오브젝트를 상기 순차적 구조의 루트로서 포함하고, 상기 컨텐츠는 상기 순차적 구조의 말단으로 포함된다.
일 실시예에서, 상기 이벤트 정의 구조는 특정 조건 판단을 위한 컨디션 오브젝트를 더 포함하고, 상기 컨디션 오브젝트는 상기 조건 판단에 따라 상기 순차적 구조의 분기점을 형성할 수 있다.
일 실시예에서, 상기 이벤트 정의 구조는 상기 분기점에 따라 분기된 각각에 대하여 서로 상이한 컨텐츠를 포함할 수 있다.
실시예들 중에서, 이벤트 처리 시스템은 정의된 이벤트 정의 구조를 이용하여 소스 데이터에 대한 이벤트 처리를 수행한다. 상기 이벤트 정의 구조는 적어도 하나의 이벤트 오브젝트 및 컨텐츠에 대한 순차적 구조로서, 상기 적어도 하나의 이벤트 오브젝트는 해당 이벤트에 상응하는 소스 데이터인지 여부를 판단하는 필터 오브젝트를 상기 순차적 구조의 루트로서 포함하고, 상기 컨텐츠는 상기 순차적 구조의 말단으로 포함한다. 상기 이벤트 처리 시스템은 이벤트 센서부 및 이벤트 처리 엔진을 포함한다. 상기 이벤트 센서부는 상기 소스 데이터에 대하여 상기 이벤트 정의 구조와 상응하는 데이터인지 매핑한다. 상기 이벤트 처리 엔진은 상기 이벤트 센서부에서 제공된 입력 데이터에 대하여 상기 추상 이벤트 정의에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 추상 이벤트 정의의 순차적 구조에 따라 순차적으로 처리하며, 상기 처리한 결과 상기 추상 이벤트 정의 구조를 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 한다.
일 실시예에서, 상기 순차적 구조는 비순환 방향성 그래프 구조 또는 종료 조건을 포함하는 순환 방향성 그래프 구조로서 정의될 수 있다.
일 실시예에서, 상기 이벤트 처리 시스템은 상기 이벤트 처리 엔진에서 구성된 이벤트 처리 결과를 상기 이벤트 정의 구조에 따라 전달하는 이벤트 액션부를 더 포함할 수 있다.
일 실시예에서, 상기 이벤트 처리 엔진은 상기 이벤트 정의 구조에 따라 추상 이벤트 정의를 생성하는 이벤트 정의 모듈 및 상기 입력 데이터에 대하여 상기 이벤트 정의 구조에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 이벤트 정의 구조에 따라 순차적으로 처리하며, 상기 순차적인 처리를 모두 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 하는 이벤트 프로세스 엔진을 포함할 수 있다.
실시예들 중에서, 이벤트 처리 방법은 (a) 수신된 소스 데이터와 기 정의된 이벤트 구조를 매핑하는 단계, (b) 상기 이벤트 정의 구조의 구성요소들에 대한 처리 순서를 구성하여 처리 프로세스를 생성하는 단계, (c) 상기 수신된 소스 데이터에 대하여 필터링하여 이벤트 처리를 시작하는 단계, (d) 상기 생성된 프로세스에 따라 해당 이벤트 오프젝트 프로세서에 작업을 할당하는 단계 및 (e) 상기 할당된 작업이 성공적으로 이루어지면, 상기 이벤트 정의 구조에 포함된 컨텐츠에 따라 전달 내용을 구성하는 단계를 포함한다.
일 실시예에서, 상기 이벤트 처리 방법은 상기 소스 데이터에 대하여 필터 인스턴스에 대한 필터 스트림 뷰에 해당하는 데이터가 요구되면, 해당 데이터를 세팅하는 전처리 단계를 더 포함할 수 있다.
일 실시예에서, 상기 (c) 단계는 이벤트 인스턴스의 데이터 셋으로서, 이벤트에 포함된 이벤트 오브젝트(EventObject)에서 사용되는 입출력 데이터 정보를 포함하는 이벤트 컨택스트를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 (e) 단계는 상기 이벤트 처리 과정 중 발생하는 중간 연산 결과를 포함하여 상기 전달 내용을 구성하는 단계를 포함할 수 있다.
본 출원의 개시된 기술에 따르면, 이벤트 정의를 위한 이벤트 오브젝트에 대하여 독립성을 보장할 수 있으며, 또한 계층적이고 순차적인 정의 구조를 사용할 수 있어 하나의 이벤트에 대하여도 복수의 처리가 가능한 효과가 있다.
또한, 본 출원의 개시된 기술에 따르면, 이벤트 처리과정에서 생성되는 중간 연산 값을 다시 활용할 수 있으므로, 이벤트 판단 및 전달 결과에 의미있는 데이터 추출이 가능한 효과가 있다.
또한, 본 출원의 개시된 기술에 따르면,기존에 DB에 저장하고 조회하던 데이터들을 메모리 상에 저장하고 조회하도록 변경함으로써 성능을 개선할 수 있는 효과가 있다.
또한, 본 출원의 개시된 기술에 따르면, 이벤트 정의 및 처리에 대한 API를 제공함으로써 API기반으로 경량화되고 타 시스템과의 이식성이 높아지는 효과가 있다.
도 1은 개시된 기술에 따른 복합 이벤트 처리 시스템의 일 실시예를 설명하기 위한 참고도이다.
도 2는 개시된 기술에 따른 이벤트 구성의 일 실시예를 설명하기 위한 참고도이다.
도 3은 개시된 기술에 따른 이벤트 정의의 일 실시예를 설명하기 위한 참고도이다.
도 4는 개시된 기술에 따른 이벤트 처리 프로세스의 일 실시예를 설명하기 위한 흐름도이다.
도 5는 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 일 실시예를 설명하기 위한 참고도이다.
도 6은 도 5의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.
도 7은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이다.
도 8은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이다.
도 9는 도 8의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.
도 10은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이다.
도 11는 도 10의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.
개시된 기술에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 개시된 기술의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 개시된 기술의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
표 1은 개시된 기술에 따른 복합 이벤트를 설명하는 참고도이다.
Event 비즈니스적으로 의미를 가지는 이벤트
AbstractEventElement Event의 구성요소 정의를 위한 오브젝트
EventObject Filter 이벤트 처리의 시작점으로 원천 데이터를 정의
FilterStreamView Filter 인스턴스를 메모리에 저장하고 조회하는 오브젝트
DBReference 이벤트 처리를 위한 DB 데이터 참조를 정의
Condition 조건 판단을 위한 룰 연산 정의(조건에 따른 분기 발생을 정의)
ConditionFunction 수식/논리/사용자 정의 함수 연산 component
ConditionFunctionStreamView ConditionFunction 인스턴스를 메모리에 저장하고 조회하는 오브젝트
Contents 전달할 내용 및 대상 등을 정의
CacheManager 이벤트 처리에 필요한 필요한 데이터를 메모리에 저장하고 공유하기 위해 사용
Mapper Data Source와 Filter 간 맵핑
EventContext 이벤트 처리를 위해 이벤트 인스턴스의 데이터 셋 오브젝트
개시된 기술에서, EVENT는 비즈니스적으로 의미를 가지는 이벤트를 말하여, 이벤트를 처리를 위해 정의하는 최종 단위를 의미한다.
추상 이벤트 요소(AbstractEventElement)는 개념적으로 이벤트의 구성 요소 정의를 위한 오브젝트를 말하며 이벤트와 1:1 관계를 가진다. 추상 이벤트 요소(AbstractEventElement)는 다수의 이벤트 오브젝트(EventObject)와 컨텐츠(Contents)로 구성될 수 있다.
이벤트 오브젝트(EventObject)는 이벤트의 구성요소가 될 수 있다. 이벤트 오브젝트(EventObject)들은 개별적으로 각각 정의하여 컴포넌트화 할 수 있다. 이렇게 생성된 이벤트 오브젝트(EventObject)들은 이벤트의 구성요소로 추가하여 사용될 수 있다.
이벤트 오브젝트(EventObject)의 종류는 다음과 같이 있다.
필터(Filter)는 이벤트가 트리거링(triggering)되는 이벤트 처리의 시작점을 나타내는 오브젝트이다. 필터(Filter)는 데이터 소스 시스템으로부터 수신되는 외부 원천 데이터를 정의할 수 있다.
필터 스트림 뷰(FilterStreamView)는 필터(Filter)의 실제 발생한 데이터 인스턴스(Filter instance)를 메모리에 저장하고 조회하는 오브젝트이다. 일 실시예에서, 필터 스트림 뷰(FilterStreamView)는 (PREVIOUS_VALUE, 직전값), (AVERAGE, 평균값), (SUM, 합계), (COUNT, 개수), (MAX, 최대값) 및 (MIN, 최소값) 중 적어도 하나에 대하여 연산 결과를 조회할 수 있다.
데이터베이스 참조 오브젝트(DB Reference)는 외부 DB를 참조하여 필요한 데이트를 정의하기 위한 오브젝트이다. 데이터베이스 참조 오브젝트(DB Reference)는 DB connection 명으로 해당 DB에 접속하여 쿼리를 수행하여 결과를 조회할 수 있다.
컨디션(Condition)은 조건 판단을 위한 룰 연산을 정의한다. 또한 컨디션(Condition)은 연산 결과에 대하여 True/False 판단을 할 수 있다. 예를 들어, True일 경우 다음 프로세스를 진행하고 False일 경우 수행을 종료하도록 할 수 있다.
개시된 기술은 이벤트에 대하여 다수의 조건으로 분기가 필요한 경우, 이벤트 오브젝트(EventObject)에 컨디션(Condition)을 추가하여 정의함으로써 조건에 따른 분기를 설정할 수 있다.
컨디션 함수 오브젝트(ConditionFunction)는 이벤트 처리 전반에 걸쳐 사용 가능한 수식/논리/사용자 정의 함수 기능을 제공하는 연산 컴포넌트이다.
컨디션 함수 스트림 뷰(ConditionFunctionStreamView)는 컨디션 함수 오브젝트(ConditionFunction)에 의하여 발생한 데이터 인스턴스를 메모리에 저장하고 조회하는 오브젝트이다. 일 실시예에서, 컨디션 함수 스트림 뷰(ConditionFunctionStreamView)는 (PREVIOUS_VALUE, 직전값), (AVERAGE, 평균값), (SUM, 합계), (COUNT, 개수), (MAX, 최대값) 및 (MIN, 최소값) 중 적어도 하나에 대한 연산 결과를 조회할 수 있다.
컨텐츠(Contents)는 특정 이벤트에 해당할 경우, 전달할 내용 및 대상 등을 정의한다. 예를 들어, 최종 이벤트 판단 후 True일 경우, 컨텐츠(Contents)는 해당 이벤트에 상응하는 결과 동작, 예컨대, 특정 내용을 전달하거나 또는 특정 대상을 결정하는 등을 정의할 수 있다.
캐시 매니저(CacheManager)는 이벤트 처리에 필요한 데이터를 메모리에 저장하고 공유할 수 있도록 데이터를 임시 저장할 수 있다.
매퍼(Mapper)는 데이터 소스(Data Source)에서 수신된 데이터를 필터(Filter)와 맵핑할 수 있다.
이벤트 컨택스트(EventContext)는 이벤트 처리를 위한 이벤트 인스턴스의 데이터 셋이다. 이벤트 컨택스트(EventContext)는 이벤트 처리요청에 1:1로 생성되며 이벤트 내의 이벤트 오브젝트(EventObject)에서 사용되는 입출력 데이터 정보를 포함할 수 있다.
도 1은 개시된 기술에 따른 복합 이벤트 처리 시스템의 일 실시예를 설명하기 위한 참고도이다.
도 1을 참조하면, 복합 이벤트 처리 시스템(100)은 이벤트 센서부(Sensor)(110), 이벤트 처리 엔진(CEP: Complex Event Processing)(120) 및 이벤트 액션부(Action)(130)를 포함한다. 일 실시예에서, 복합 이벤트 처리 시스템(100)은 이벤트 모니터부(Monitor)(140) 또는 이벤트 통제부(Admin)(150)를 더 포함할 수 있다.
이벤트 센서부(110)는 데이터 소스 시스템에서 데이터가 발생되면, 이를 센싱하여 이벤트로 감지할 수 있다. 이벤트 센서부(110)는 센싱된 소스 데이터를 이벤트 처리 엔진(120)에 제공할 수 있다.
일 실시예에서, 이벤트 센서부(110)는 센싱 API(111) 및 매핑부(Mapper)(112)를 포함할 수 있다. 센싱 API(111)는 소스 데이터를 이벤트로 판정하기 위하여 필요한 이벤트 정의 및 그 처리를 위한 API를 제공할 수 있다. 외부에서는 센싱 API(111)로 접근(호출)하여 이벤트를 정의하거나 정의된 이벤트를 처리할 수 있다. 센싱 API(111)는 수신된 데이터를 매핑부(112)에 제공할 수 있다. 매핑부(112)는 수신된 데이터를 기 정의된 이벤트와 매핑한 후, 이를 이벤트 처리 엔진(120)에 제공할 수 있다.
일 실시예에서, 이벤트 센서부(110)는 수신한 소스 데이터에 대하여, 이벤트 타당성 점검, 이벤트 형식 변환, 에러처리 및 이벤트 소스와의 통신 모니터링 중 적어도 하나의 기능을 수행할 수 있다. 타당성 점검(Event Validation)은 이벤트 원천으로부터 수집한 데이터의 유효성을 검증하기 위한 소정의 작업을 수행하는 것이다. 이벤트 형식 변환(Event Formatter)은 복합이벤트인 경우 단순이벤트들 간의 연관관계(correlation)를 정의하기 위한 사전정의를 수행하는 것이다. 에러 처리(Error Processing)는 이벤트 큐에 저장할 원천 데이터의 오류를 검사하여 특정 폴더에 로깅(logging) 작업을 수행하는 것이고, 통신 모니터링(Status Monitoring)은 이벤트 소스와 이벤트 큐 사이의 통신상태를 점검하고 모니터링 하는 것을 의미한다.
일 실시예에서, 이벤트 센서부(110)는 소스 데이터의 수집에 있어서 실시간 또는 주기적 추출 방식을 사용할 수 있다. 예를 들어, 이벤트 센서부(110)는 에이전트(Agent) 감시에 의한 실시간 추출방식, 폴더감시를 통한 주기적 추출방식, Open API(Application Programming Interface)를 이용한 실시간 서버(Event Queue) 전송방식 또는 JMS(Java Message Service)를 이용한 실시간 서버 전송 방식 중 적어도 하나 또는 이들을 결합하여 사용할 수 있다.
이벤트 처리 엔진(CEP)(120)는 이벤트 센서부(110)에서 수집한 데이터를 정의된 내용에 따라서 이벤트를 처리하고 액션플랜을 생성할 수 있다. 이벤트 처리 엔진(CEP)(120)는 이벤트 처리 시스템의 핵심 엔진부로써 이벤트 처리를 위한 프로세서로 구성될 수 있다.
이벤트 처리 엔진(CEP)(120)는 전처리 엔진(Pre Processor Engine)(121), 이벤트 프로세서 엔진(EventObject Processor Engine)(122) 및 컨텐츠 프로세서(Contents Processor)(123)을 포함할 수 있다. 일 실시예에서, 이벤트 처리 엔진(CEP)(120)는 이벤트 정의 모듈(미도시) 또는 캐시 매니저(Cache Manager)(124)를 더 포함할 수 있다.
전처리 엔진(Pre Processor Engine)(121)은 이벤트 정의에 따라 이벤트 처리를 위한 선처리 작업을 수행할 수 있다.
이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 전처리 엔진(121)에서 구성한 이벤트 처리 프로세스에 따라 각 프로세스를 기동하여 처리할 수 있다.
일 실시예에서, 이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 이벤트 처리 프로세스를 수행함에 있어서, 각 이벤트 오브젝트마다 별도 구성된 프로세서를 구비하여 이벤트 처리를 수행할 수 있다. 예를 들어, 이벤트 프로세서 엔진(EventObject Processor Engine)(122)가 선처리 작업된 데이터에 대하여 소정의 필터링을 수행할 수도 있지만, 도시된 예와 같이 필터 프로세서(Filter Processor)를 구비하여 필터 작업을 전담시킬 수 있다.
이러한 일 실시예에서, 이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 이벤트 오브젝트를 식별하고, 특정 이벤트 오브젝트에 해당하면 그에 상응하는 프로세서에 작업을 할당할 수 있다. 이를 위하여, 이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 필터 스트림 뷰 프로세서(FilterStreamView Processor), 데이터베이스 참조 프로세서(DBReference Processor), 컨디션 함수 프로세서(ConditionFunction Processor), 컨디션 함수 뷰 프로세서(ConditionFunctionView Processor), 컨디션 프로세서(Condition Processor)를 포함할 수 있다.
컨텐츠 프로세서(Contents Processor)(123)는 이벤트 처리의 마지막 단계로 이벤트 사후 처리를 위한 내용을 포함할 수 있다.
이벤트 정의 모듈은 추상 이벤트 요소(AbstractEventElement)에 따라 이벤트의 구성요소를 정의할 수 있다. 전술한 바와 같이, 추상 이벤트 요소(AbstractEventElement)는 적어도 하나의 이벤트 오브젝트(EventObject) 및 그에 대한 컨텐츠(Contents)로 구성되며 순차 구조로 구성될 수 있다. 이벤트 정의 모듈은 사용자의 입력 또는 요청정보를 기초로 해당 시스템에서 적용될 수 있는 비즈니스 이벤트를 정의할 수 있다. 이벤트 정의 모듈은 정의된 이벤트에 대한 이벤트 정의 메타 정보를 생성할 수 있다.
캐시 매니저(Cache Manager)(124) 이벤트 프로세서 엔진(EventObject Processor Engine)(122)과 연동하여 이벤트 처리에 필요한 캐시 메모리를 제공할 수 있다.
이벤트 액션부(Action)(130)는 컨텐츠 프로세서(Contents Processor)(123)에서 구성한 이벤트 처리 결과를 이벤트 정의에 따라 전달할 수 있다. 예를 들어, 이벤트 별로 정의된 전달 방법에 따라, SMS, E-mail, DB Insert 등의 방법으로 해당 내용을 전달할 수 있다.
이벤트 모니터부(Monitor)(140)는 복합이벤트 처리시스템에서 발생하는 다양한 상황의 실시간 모니터링,이벤트 모니터링, 센서 모니터링, 큐모니터링, 처리현황모니터링 등의 기능을 수행할 수 있다.
이벤트 통제부(Admin)(150)는 이벤트 프로세서 실행에 필요한 정보를 관리하는 기능을 담당한다. 사용자 또는 역할 관리, 이벤트 엔진 실행 또는 중지, 시스템 환경변수 관리 등의 기능을 수행할 수 있다.
도 2는 개시된 기술에 따른 이벤트 구성의 일 실시예를 설명하기 위한 참고도이고, 도 3은 개시된 기술에 따른 이벤트 정의의 일 실시예를 설명하기 위한 참고도이다.
도 2 및 도 3을 참조하여, 이벤트 구성 및 정의에 대하여 설명한다. 개시된 기술에서, 이벤트는 비즈니스적으로 의미가 있는 이벤트를 의미하며, 이벤트 정의는 이벤트로 감지할 내용을 이벤트 구성요소로 설계하고 구성요소를 조합하여 정의할 수 있다. 이벤트 처리는 기 정의된 이벤트 구성요소의 순서에 따라 필요한 데이터를 바탕으로 연산을 수행하는 작업을 거치면서 이루어질 수 있다.
도 2에 도시된 바와 같이, 이벤트는 추상 이벤트 요소(AEE : Abstract Event Element)를 포함하여 구성될 수 있으며, 도 3에 도시된 바와 같이, 이벤트는 Composite 패턴이 적용된 다수의 이벤트 요소(Event Element)를 포함하는 계층구조로서 정의될 수 있다. 개시된 계층 구조는 이벤트 구성요소의 순서를 구성할 수 있다. 일 실시예에서, 이벤트는 비순환 방향성 그래프 구조 또는 종료 조건을 포함하는 순환 방향성 그래프 구조로서 정의될 있다.
예를 들어, 이벤트는 필터(Filter, F)로 시작하여 컨텐츠(Contents, CT)로 종료되는 계층구조로서 정의될 수 있다. 필터와 컨텐츠 사이에는 이벤트 오브젝트(Event Object, EO) 또는 컨디션(Condition, CD)가 적어도 하나 이상 추가될 수 있다. 이벤트 오브젝트(Event Object, EO)로는 전술한 FilterStreamView, DB Reference, ConditionFunction, ConditionFunctionStreamView가 있을 수 있다. 컨디션(Condition, CD)도 이벤트 오브젝트(Event Object, EO)의 하나로서 추가될 수 있으며, 컨디션(Condition, CD)은 해당 조건의 True/False 판단 결과에 따라 처리 흐름을 변경(즉, 분기 등을 수행함)할 수 있다.
도 4는 개시된 기술에 따른 이벤트 처리 프로세스의 일 실시예를 설명하기 위한 흐름도이다. 도 4에 도시된 바와 같이, 개시된 기술에 따른 이벤트 처리는 Visitor 패턴으로 계층적 이벤트 정의 구조를 순서대로 방문하며 수행될 수 있다.
소스 시스템에서 데이터가 발생하면, 이벤트 센서부(110)는 소스 데이터에 대하여 이벤트 처리를 수행하여 이벤트 처리 엔진(CEP)(120)에 제공할 수 있다. 이벤트 처리 엔진(CEP)(120)는 일련의 절차를 수행하여 이벤트로서 판단하였을 때 TRUE로 판단되면, 정의된 액션을 수행하도록 이벤트 액션부(Action)(130)에 요청할 수 있다.
더 상세히 설명하면, 매핑부(112)는 수신된 소스 데이터와 필터(Filter)에 정의된 데이터를 매핑할 수 있다(Mapper Processing). 매핑한 결과, 정의된 데이터에 해당하면, 이벤트에 해당할 수 있으므로 이를 이벤트 처리 엔진(CEP)(120)에 제공할 수 있다(S410).
전처리 엔진(Pre Processor Engine)(121)은 제공받은 소스 데이터에 해당하는 필터(Filter) 인스턴스에 대하여 필터 스트림 뷰(FilterStreamView) 인스턴스가 존재하는 경우, 그에 따라 데이터 세팅 작업을 수행할 수 있다(S420).
이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 입력 데이터에 대하여 이벤트 컨택스트(EventContext)를 생성할 수 있다(S430). 여기에서, 이벤트 컨택스트(EventContext)란 이벤트 처리를 위한 이벤트 인스턴스의 데이터 셋으로, 각 이벤트와 1:1로 생성된다. 이벤트 컨택스트(EventContext)는 이벤트에 포함된 이벤트 오브젝트(EventObject)에서 사용되는 입출력 데이터 정보를 포함할 수 있다.
이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 해당 이벤트에 대하여 처리해야 할 프로세스를 생성할 수 있다(S440). 즉, 이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 이벤트 정의 메타 정보에서 이벤트 정의 구성요소들에 대한 처리 순서를 구성함으로써, 처리 프로세스를 생성할 수 있다.
이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 Filter 정의 정보에 따라 수신된 입력 데이터를 매핑 처리하고 이벤트를 시작하는 처리를 수행한다(S450).
이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 단계 S440에서 생성된 프로세스대로 각 이벤트 오브젝트 프로세서(Event Object Processor)에 작업을 할당하여 처리한다 (S460). 이벤트 오브젝트 프로세서(Event Object Processor)로는 도 1에서 전술한 바와 같이, FilterStreamView Processor, DBReference Processor, ConditionFunction Processor, ConditionFunctionView Processor, Condition Processor가 있을 수 있으며, 이러한 각각의 프로세서들은 이벤트 오브젝트(Event Object)를 처리하는 작업을 수행할 수 있다.
컨텐츠 프로세서(Contents Processor)(123)는 이벤트 정의에 따라 전달 내용을 구성할 수 있다(S470). 컨텐츠에는 입력 데이터뿐만 아니라 이벤트 처리 과정 중 발생하는 중간 연산 결과도 포함할 수 있다.
이벤트 액션부(Action)(130)는 단계 S470에서 구성된 내용을 이벤트 정의시 정의한 전달 방법에 따라 전달하는 처리를 수행한다(S480). 여기에서, 전달 방법으로는 SMS, E-mail, DB Insert 등 다양한 방법으로 수행될 수 있다.
도 5는 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 일 실시예를 설명하기 위한 참고도이고, 도 6은 도 5의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.
도 5 및 도 6에 개시된 일 실시예는 측정 기기 내부 온도가 100도 이상이면 이벤트로서 감지하는 예를 도시하고 있다.
도 5를 참조하면, 개시된 기술에 따른 복합 이벤트 처리 시스템(100)은 Filter, ConditionFucntion을 포함하여 이벤트 오브젝트(EventObject)를 조합하고, 그에 대한 컨텐츠(Contents)를 포함하는 계층구조로서 이벤트를 구성할 수 있다.
더 상세히 설명하면, 복합 이벤트 처리 시스템(100)은 필터링(즉, 측정기기로부터 수신된 해당 측정기기의 내부 온도만을 필터링)을 수행하여 본 이벤트에 해당함을 확인하고(Filter), 측정된 내부온도 값이 정의된 조건(100도)에 부합하는지 룰을 적용할 수 있다(CF). 만약, 100도를 초과하면, True에 해당하므로 해당 이벤트에 대한 컨텐츠(Contents)에 따라 그 처리 결과를 전달할 수 있다.
도 6을 참조하면, 본 실시예에서는 종래 기술에서도 유사하게 동작함을 알 수 있다. 즉, 이벤트 소스를 기초로 내부온도 측정 정보를 초기 이벤트로서 구성하고, 이를 기초로 실행타입을 구성한다. 이후, 룰(조건)을 적용하여 이에 해당하면 이후의 액션 플랜을 수행할 수 있다.
본 실시예는 분기 없이 단순 처리가 요구되는 이벤트로서, 종래기술과 개시된 기술에 따른 이벤트 처리 과정이 서로 상응함을 알 수 있다.
도 7은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이다.
도 7에 개시된 일 실시예는 측정 기기 내부 온도를 측정하여 현재값과 이전값의 차가 30이상이면 이벤트로서 감지하는 예를 도시하고 있다.
도 7을 참조하면, 복합 이벤트 처리 시스템(100)은 Filter, FilterStreamView(FSV), ConditionFucntion(CF)을 포함하여 이벤트 오브젝트(EventObject)를 조합하고, 그에 대한 컨텐츠(Contents)를 포함하는 계층구조로서 이벤트를 구성할 수 있다.
더 상세히 설명하면, 복합 이벤트 처리 시스템(100)은 측정기기가 보낸 내부온도에 대한 정보인지 필터링을 수행하고(Filter), 현재 측정 이전에 마지막으로 측정했던 내부 온도값을 스트림(stream)에서 조회할 수 있다(FSV). 복합 이벤트 처리 시스템(100)은 현재 측정값과 이전 측정값의 차이값이 정의된 조건보다 큰지 확인하고(CF), 그에 해당하면 해당 이벤트에 대한 컨텐츠(Contents)에 따라 그 처리 결과를 전달할 수 있다.
도 7에 도시된 일 실시예에서는, 이전에 처리된 중간 처리값(중간값)을 활용할 수 있는 실시예로서, 종래 기술에서는 중간값을 사용할 수 없는 구조이므로, 이러한 실시예를 처리할 수 없다.
도 8은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이고, 도 9는 도 8의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.
도 8 및 도 9에 개시된 일 실시예는 측정 기기 내부 온도를 측정하여 현재온도가 100보다 크고, 최근 1시간 동안 2회이상 발생한 경우 이벤트로서 감지하는 예를 도시하고 있다.
도 8을 참조하면, 복합 이벤트 처리 시스템(100)은 Filter, 2개의 ConditionFucntion(CF) 및 ConditionFunctionStreamView(CFSV)를 포함하여 이벤트 오브젝트(EventObject)를 조합하고, 그에 대한 컨텐츠(Contents)를 포함하는 계층구조로서 이벤트를 구성할 수 있다.
더 상세히 설명하면, 복합 이벤트 처리 시스템(100)은 측정기기가 보낸 내부온도에 대한 정보인지 필터링을 수행하고(Filter), 현재 발생한 내부온도 값이 조건(100도)에 부합하는지 판단한다(CF1). 복합 이벤트 처리 시스템(100)은 최근 1시간 동안 조건1(CF1)을 만족했던 횟수를 스트림에서 조회하고(CFSV), 그 조회한 값이 기준 횟수(2회)를 초과하는 지 판단하여(CF2), 그에 따라 이벤트 처리 결과를 전달할 수 있다(Contents).
도 9에 도시된 경우 종래 기술에서는, 연결 이벤트를 이용하여 2개의 이벤트를 정의해야 함을 알 수 있다. 즉, 종래 기술에서는 계층적 이벤트 구조를 사용할 수 없어 2가지 조건을 판단하기 위해서는 2개의 서로 다른 이벤트를 구성한 뒤 이를 상호 연결하여 동작시켜야 함을 알 수 있다. 이러한 종래기술은 단계가 복잡해지고 어려워지는 문제점이 있다.
도 10은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이고, 도 11는 도 10의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.
도 10 및 도 11에 개시된 일 실시예는 측정 기기 내부 온도를 측정하여 구간의 레벨의 범위(구간레벨 High (80<=온도<100), 구간레벨: Normal (60<=온도<80))에 포함되면 구간 레벨을 전달해주는 이벤트를 도시하고 있다.
도 10을 참조하면, 복합 이벤트 처리 시스템(100)은 Filter, 2개의 컨디션(Condition) 및 각각의 Condition 에 대한 컨텐츠(Contents)를 포함하는 분기형 계층구조로서 이벤트를 구성할 수 있다.
더 상세히 설명하면, 복합 이벤트 처리 시스템(100)은 측정기기가 보낸 내부온도에 대한 정보인지 필터링을 수행하고(Filter), 이를 각각 컨디션 1(Condition 1)과 컨디션 2(Condition 2)에 제공할 수 있다. 각 컨디션(Condition)들은 수신한 내부 온도 값이 해당 구간에 조건에 부합하는 지 판단하고, 그에 따라 각각 이벤트 처리 결과를 전달할 수 있다(Contents1, 2).
도 11에 도시된 종래 기술의 경우, 2개의 이벤트를 별도로 정의하여 처리함을 알 수 있다. 즉, 종래 기술에서는 동일한 내용에 대하여 구간 레벨 조건만 서로 상이한 2개의 이벤트를 각각 정의하고 이들을 각각 판단하여야만 하는 것을 알 수 있다. 이러한 종래기술은 이벤트의 개수가 많아져야 하고, 따라서 정의 단계가 많아져 성능이 저하되는 문제점이 있다.
상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 출원의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (18)

  1. 입력 데이터에 대하여 이벤트 처리를 수행하는 이벤트 처리 엔진에 있어서,
    상기 이벤트에 대한 구성요소인 적어도 하나의 이벤트 오브젝트(상기 적어도 하나의 이벤트 오브젝트는 이벤트 처리의 시작점을 나타내는 필터 오브젝트 및 상기 필터 오브젝트의 인스턴스로서 필터링된 데이터를 메모리에 저장하고 조회하는 필터 스트림 뷰 오브젝트를 포함함) 및 상기 이벤트가 기 설정된 이벤트에 해당하는 경우 전달하는 내용을 정의하는 컨텐츠에 대한 순차적 구조로 구성(상기 컨텐츠는 상기 순차적 구조의 말단으로 포함됨)되는 추상 이벤트 정의를 생성하는 이벤트 정의 모듈; 및
    상기 입력 데이터에 대하여 상기 추상 이벤트 정의에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 추상 이벤트 정의의 순차적 구조에 따라 순차적으로 처리하며, 상기 처리한 결과 상기 추상 이벤트 정의 구조를 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 하는 이벤트 프로세스 엔진을 포함하는 이벤트 처리 엔진.
  2. 제1항에 있어서, 상기 순차적 구조는
    비순환 방향성 그래프 구조 또는 종료 조건을 포함하는 순환 방향성 그래프 구조로서 정의되는 것을 특징으로 하는 이벤트 처리 엔진.
  3. 제2항에 있어서, 상기 적어도 하나의 이벤트 오브젝트는
    상기 순차적 구조에서 분기점을 정의하여 상기 추상 이벤트 정의가 복수의 컨텐츠를 포함하도록 하는 컨디션 오브젝트를 포함하는 것을 특징으로 하는 이벤트 처리 엔진.
  4. 제2항에 있어서, 상기 필터 스트림 뷰 오브젝트는
    다른 이벤트 오브젝트가 상기 저장된 필터 오브젝트의 인스턴스를 직접적으로 조회할 수 있도록 하는 것을 특징으로 하는 이벤트 처리 엔진.
  5. 제2항에 있어서, 상기 적어도 하나의 이벤트 오브젝트는
    상기 순차적 구조에서 상기 생성된 데이터에 대하여 미리 정의된 특정 함수를 수행하여 특정 결과를 생성하고, 상기 생성된 특정 결과가 특정 조건을 만족시키는지 여부를 검토하는 컨디션 함수 오브젝트를 포함하는 것을 특징으로 하는 이벤트 처리 엔진.
  6. 제2항에 있어서, 상기 적어도 하나의 이벤트 오브젝트는
    상기 순차적 구조에서 외부의 데이터베이스를 참조하여 검색 결과를 가져오는 데이터베이스 참조 오브젝트를 포함하는 것을 특징으로 하는 이벤트 처리 엔진.
  7. 제4항에 있어서, 상기 이벤트 처리 엔진은
    상기 필터 오브젝트에 대하여 상기 필터 스트림 뷰 오브젝트에 해당하는 데이터가 요구되면 해당 데이터를 세팅하는 전처리 엔진을 더 포함하는 것을 특징으로 하는 이벤트 처리 엔진.
  8. 이벤트에 대한 구성요소인 적어도 하나의 이벤트 오브젝트(상기 적어도 하나의 이벤트 오브젝트는 이벤트 처리의 시작점을 나타내는 필터 오브젝트 및 상기 필터 오브젝트의 인스턴스로서 필터링된 데이터를 메모리에 저장하고 조회하는 필터 스트림 뷰 오브젝트를 포함함) 및 상기 이벤트가 기 설정된 이벤트에 해당하는 경우 전달하는 내용을 정의하는 컨텐츠에 대한 순차적 구조로 구성(상기 컨텐츠는 상기 순차적 구조의 말단으로 포함됨)되는 이벤트 정의 구조를 포함하는 이벤트 처리 엔진.
  9. 제8항에 있어서, 상기 이벤트 정의 구조는
    특정 조건 판단을 위한 컨디션 오브젝트를 더 포함하고, 상기 컨디션 오브젝트는 상기 조건 판단에 따라 상기 순차적 구조의 분기점을 형성하는 것을 특징으로 하는 이벤트 처리 엔진.
  10. 제9항에 있어서, 상기 이벤트 정의 구조는
    상기 분기점에 따라 분기된 각각에 대하여 서로 상이한 컨텐츠를 포함하는 것을 특징으로 하는 이벤트 처리 엔진.
  11. 정의된 이벤트 정의 구조를 이용하여 소스 데이터에 대한 이벤트 처리를 수행하는 이벤트 처리 시스템에 있어서,
    상기 이벤트 정의 구조는 이벤트에 대한 구성요소인 적어도 하나의 이벤트 오브젝트(상기 적어도 하나의 이벤트 오브젝트는 이벤트 처리의 시작점을 나타내는 필터 오브젝트를 포함함) 및 상기 이벤트가 기 설정된 이벤트에 해당하는 경우 전달하는 내용을 정의하는 컨텐츠에 대한 순차적 구조로 구성(상기 컨텐츠는 상기 순차적 구조의 말단으로 포함됨)되고,
    상기 소스 데이터에 대하여 상기 이벤트 정의 구조와 상응하는 데이터인지 매핑하는 이벤트 센서부;
    상기 이벤트 센서부에서 제공된 입력 데이터가 상기 이벤트 정의 구조에 해당하는 데이터이면, 상기 입력 데이터를 상기 이벤트 정의 구조에 따라 순차적으로 처리하는 이벤트 처리 엔진; 및
    상기 이벤트 처리 엔진에서 구성된 이벤트 처리 결과를 상기 이벤트 정의 구조에 따라 전달하는 이벤트 액션부를 포함하는 이벤트 처리 시스템.
  12. 제11항에 있어서, 상기 순차적 구조는
    비순환 방향성 그래프 구조 또는 종료 조건을 포함하는 순환 방향성 그래프 구조로서 정의되는 것을 특징으로 하는 이벤트 처리 시스템.
  13. 삭제
  14. 제11항에 있어서, 상기 이벤트 처리 엔진은
    상기 이벤트 정의 구조에 따라 추상 이벤트 정의를 생성하는 이벤트 정의 모듈; 및
    상기 입력 데이터에 대하여 상기 이벤트 정의 구조에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 이벤트 정의 구조에 따라 순차적으로 처리하며, 상기 순차적인 처리를 모두 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 하는 이벤트 프로세스 엔진을 포함하는 것을 특징으로 하는 이벤트 처리 시스템.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020110097550A 2011-09-27 2011-09-27 계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템 KR101411266B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110097550A KR101411266B1 (ko) 2011-09-27 2011-09-27 계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110097550A KR101411266B1 (ko) 2011-09-27 2011-09-27 계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020130103459A Division KR101461821B1 (ko) 2013-08-29 2013-08-29 계층 구조를 이용한 이벤트 처리 방법 및 이를 수행하는 이벤트 처리 시스템

Publications (2)

Publication Number Publication Date
KR20130033708A KR20130033708A (ko) 2013-04-04
KR101411266B1 true KR101411266B1 (ko) 2014-06-25

Family

ID=48436030

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110097550A KR101411266B1 (ko) 2011-09-27 2011-09-27 계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템

Country Status (1)

Country Link
KR (1) KR101411266B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3082315B1 (en) 2015-04-18 2017-02-15 Urban Software Institute GmbH Computer system and method for message routing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010103588A (ko) * 2000-04-06 2001-11-23 포만 제프리 엘 네트워크 프로세서용 완전 정합(fm) 검색 알고리즘 구현

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010103588A (ko) * 2000-04-06 2001-11-23 포만 제프리 엘 네트워크 프로세서용 완전 정합(fm) 검색 알고리즘 구현

Also Published As

Publication number Publication date
KR20130033708A (ko) 2013-04-04

Similar Documents

Publication Publication Date Title
EP3567496B1 (en) Systems and methods for indexing and searching
US9146705B2 (en) Split brain protection in computer clusters
US8645907B2 (en) Capturing effort level by task upon check-in to source control management system
CN109614262B (zh) 业务校验方法、装置及计算机可读存储介质
CN104778032A (zh) 一种用于进行持续集成的方法和设备
CN107276851B (zh) 一种节点的异常检测方法、装置、网络节点及控制台
CN111522728A (zh) 自动化测试用例的生成方法、电子设备及可读存储介质
US10868741B2 (en) Anchor shortening across streaming nodes
CN105989163A (zh) 数据实时处理方法及系统
CN104572448A (zh) 一种线程堆栈的使用情况的实现方法和装置
CN113242157B (zh) 一种分布式处理环境下的集中式数据质量监测方法
CN110609740A (zh) 一种确定任务间依赖关系的方法及装置
CN107463612A (zh) 高并发redis数据库操作方法及系统
CN110647447A (zh) 用于分布式系统的异常实例检测方法、装置、设备和介质
EP2199905A1 (en) Lifecycle management and consistency checking of object models using application platform tools
CN111680104A (zh) 数据同步方法、装置、计算机设备及可读存储介质
CN113806332B (zh) 一种异构系统集成数据处理方法、装置和计算机设备
CN108153654A (zh) 一种日志收集方法及装置
van der Aalst et al. Conformance checking
KR101411266B1 (ko) 계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템
WO2012088761A1 (zh) 基于数据分析的安全性信息交互监测系统及方法
CN115984022B (zh) 分布式支付系统统一对账方法和装置
KR101461821B1 (ko) 계층 구조를 이용한 이벤트 처리 방법 및 이를 수행하는 이벤트 처리 시스템
US9348721B2 (en) Diagnosing entities associated with software components
US9998341B2 (en) Method of constructing data collector, server performing the same and storage medium for the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
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: 20170403

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180404

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 6