KR20130033708A - Event processing method using hierarchical structure and event processing engine and system thereof - Google Patents

Event processing method using hierarchical structure and event processing engine and system thereof Download PDF

Info

Publication number
KR20130033708A
KR20130033708A KR1020110097550A KR20110097550A KR20130033708A KR 20130033708 A KR20130033708 A KR 20130033708A KR 1020110097550 A KR1020110097550 A KR 1020110097550A KR 20110097550 A KR20110097550 A KR 20110097550A KR 20130033708 A KR20130033708 A KR 20130033708A
Authority
KR
South Korea
Prior art keywords
event
data
processing
definition
event processing
Prior art date
Application number
KR1020110097550A
Other languages
Korean (ko)
Other versions
KR101411266B1 (en
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/en
Publication of KR20130033708A publication Critical patent/KR20130033708A/en
Application granted granted Critical
Publication of KR101411266B1 publication Critical patent/KR101411266B1/en

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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

PURPOSE: An event processing method using a hierarchy structure, an event processing engine, and a system are provided to reuse an intermediate operation value, which is generated in an event process, thereby extracting meaningful data from an event determination and transmission result. CONSTITUTION: When data is generated in a data source system, an event sensor unit(110) senses the data as an event. An event processing engine(120) generates an action plan by processing the data as the event corresponding to defined contents. An event action unit(130) transmits an event processing result which is comprised in a content processor(123) and corresponds to an event definition. An event monitor unit(140) performs real time monitoring, event monitoring, sensor monitoring, queue monitoring, and processing situation monitoring of various situations. An event control unit(150) manages information necessary for executing an event processor.

Description

계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템 {EVENT PROCESSING METHOD USING HIERARCHICAL STRUCTURE AND EVENT PROCESSING ENGINE AND SYSTEM THEREOF}TECHNICAL FIELD [0001] The present invention relates to an event processing method using a hierarchical structure, and an event processing engine using the hierarchical structure,

본 출원은 이벤트 처리 기술에 관한 것으로, 보다 상세하게는, 계층 구조를 이용한 이벤트 처리 방법 및 그를 이용한 이벤트 처리 엔진 및 그 시스템에 관한 것이다.The present invention relates to an event processing technique, and more particularly, to an event processing method using a hierarchical structure and an event processing engine using the same and a system thereof.

이벤트 처리는 전산 시스템의 효율성 및 성능에 주요한 영향을 미치는 주요 기술 요소로서 다양하게 개발되고 있다. Event processing is being developed variously as a major technical factor that has a major influence on the efficiency and performance of the computer system.

종래의 이벤트 처리 방식의 일 예를 크게 다음과 같은 단계를 거쳐 수행된다.An example of a conventional event processing method is largely performed through the following steps.

(i) 비즈니스 이벤트에 대하여 실행 이벤트를 정의하고, (ii) 소스 데이터에서 이벤트가 발생하면, 룰 연산을 통하여 조건을 판단한 후, (iii) 실행 이벤트에 해당하면 비즈니스 이벤트로서 소정의 이벤트 처리를 수행한다.(i) define an execution event for the business event, (ii) determine the condition through rule operation if an event occurs in the source data, and (iii) perform a predetermined event processing as a business event if the event corresponds to an execution event. do.

그러나, 이러한 종래기술은 다음과 같은 문제점이 있다. 이벤트 처리 시, 룰 연산 정의가 한번으로 한정되어 있어 룰에 대하여 다양한 액션을 수행하기 위해서는 동일한 기능의 다른 액션으로 이벤트를 새로 만들어야 하므로, 필요 시스템 비용이 증대되는 문제가 있다. 또한, 이벤트 처리 과정 중 연산 과정에서 생성된 중간 연산값을 활용하지 못하고, 중간 연산이 필요한 경우 별도로 지표라는 구성요소를 정의하여 데이터베이스에 저장하고 이를 조회하여야하므로, 데이터베이스 억세스에 따른 시스템 성능 저하가 발생하는 문제가 있다. 이러한 문제들로 인하여, 실시간 대량으로 발생하는 데이터 처리가 실질적으로 어려워, 대규모의 복합 이벤트 처리가 수행되지 못하는 문제점이 있다.However, this prior art has the following problems. Since the rule operation definition is limited to one at the time of event processing, in order to perform various actions with respect to the rule, it is necessary to newly create an event with another action having the same function. In addition, if the intermediate operation value generated during the operation process is not utilized during the event processing, and the intermediate operation is required, the component called the indicator is defined and stored in the database, so that the system performance degradation due to the database access occurs There is a problem. Due to these problems, data processing occurring in real time in real time is practically difficult, and a large-scale complex event processing can not be performed.

본 출원은 기업의 다양한 시스템으로부터 발생하는 대용량의 트랜잭션(transaction)에 대하여 효율적으로 유의미한 복합이벤트를 처리할 수 있는 이벤트 처리 기술을 제공하고자 한다.The present application is to provide an event processing technology that can efficiently process a significant complex event for a large amount of transactions (transaction) generated from various systems of the enterprise.

또한, 본 출원은 이벤트 정의 구조를 표준화하여 컴포넌트의 추가로 유연하게 이벤트 정의를 재구성할 수 있는 이벤트 처리 기술을 제공하고자 한다.In addition, the present application is to provide an event processing technology that can be reconfigured event definition with the addition of components by standardizing the event definition structure.

또한, 본 출원은 분기 처리를 이용하여 하나의 이벤트에 대하여 하나의 룰로 복수의 액션을 처리할 수 있는 이벤트 처리 기술을 제공하고자 한다.In addition, the present application is to provide an event processing technique that can process a plurality of actions with one rule for one event using branch processing.

또한, 본 출원은 스트림 처리 기능을 더 구비하여, 이전에 발생한 필터 등의 오브젝트 및 그 연산 결과를 재사용할 수 있는 이벤트 처리 기술을 제공하고자 한다.In addition, the present application is further provided with a stream processing function, to provide an event processing technology that can reuse the object, such as a filter that occurred previously, and its operation result.

또한, 본 출원은 이벤트 컨텍스트 전달을 통해, 이벤트 처리과정에서 발생한 중간 연산결과를 재사용할 수 있는 이벤트 처리 기술을 제공하고자 한다.In addition, the present application aims to provide an event processing technique capable of reusing the intermediate calculation result generated in event processing through event context transfer.

실시예들 중에서, 이벤트 처리 엔진은 입력 데이터에 대하여 이벤트 처리를 수행한다. 상기 이벤트 처리 엔진은 이벤트 정의 모듈 및 이벤트 프로세스 엔진을 포함한다. 상기 이벤트 정의 모듈은 상기 이벤트에 대하여 적어도 하나의 이벤트 오브젝트 및 컨텐츠에 대한 순차적 구조이고, 상기 적어도 하나의 이벤트 오브젝트는 해당 이벤트에 상응하는 소스 데이터인지 여부를 판단하는 필터 오브젝트를 상기 순차적 구조의 루트로서 포함하고 상기 컨텐츠는 상기 순차적 구조의 말단으로 포함되는 추상 이벤트 정의를 생성한다. 상기 이벤트 프로세스 엔진은 상기 입력 데이터에 대하여 상기 추상 이벤트 정의에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 추상 이벤트 정의의 순차적 구조에 따라 순차적으로 처리하며, 상기 처리한 결과 상기 추상 이벤트 정의 구조를 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 한다.Among the embodiments, the event processing engine performs event processing on the input data. The event processing engine includes an event definition module and an event process engine. Wherein the event definition module is a sequential structure for at least one event object and content for the event and the at least one event object is a source of data corresponding to the event, And generates an abstract event definition including the content as an end of the sequential structure. Wherein the event processing engine processes the input data according to a sequential structure of the abstract event definition, if the data corresponds to the abstract event definition, If the definition structure is satisfied, process it according to the content of the abstract event.

일 실시예에서, 상기 순차적 구조는 비순환 방향성 그래프 구조 또는 종료 조건을 포함하는 순환 방향성 그래프 구조로서 정의될 수 있다.In one embodiment, the sequential structure may be defined as a cyclic directional graph structure or a cyclic directional graph structure including a termination condition.

일 실시예에서, 상기 적어도 하나의 이벤트 오브젝트는 상기 순차적 구조에서 분기점을 정의하여 상기 추상 이벤트 정의가 복수의 컨텐츠를 포함하도록 하는 컨디션 오브젝트를 포함할 수 있다.In at least one example embodiment, the at least one event object may include a condition object that defines a branch point in the sequential structure such that the abstract event definition includes a plurality of contents.

일 실시예에서, 상기 적어도 하나의 이벤트 오브젝트는 상기 필터 오브젝트의 인스턴스로서 상기 필터링된 데이터를 메모리에 저장하고 조회하며, 다른 이벤트 오브젝트가 상기 저장된 필터 오브젝트의 인스턴스를 직접적으로 조회할 수 있도록 하는 필터 스트림 뷰 오브젝트를 포함할 수 있다.In one embodiment, the at least one event object stores and references the filtered data as an instance of the filter object in memory, and a filter stream that allows another event object to directly query an instance of the stored filter object You can include view objects.

일 실시예에서, 상기 적어도 하나의 이벤트 오브젝트는 상기 순차적 구조에서 상기 생성된 데이터에 대하여 미리 정의된 특정 함수를 수행하여 특정 결과를 생성하고, 상기 생성된 특정 결과가 특정 조건을 만족시키는지 여부를 검토하는 컨디션 함수 오브젝트를 포함할 수 있다.In one embodiment, the at least one event object performs a predefined specific function on the generated data in the sequential structure to generate a specific result, and whether the generated specific result satisfies a specific condition. It can contain a condition function object to review.

일 실시예에서, 상기 적어도 하나의 이벤트 오브젝트는 상기 순차적 구조에서 외부의 데이터베이스를 참조하여 검색 결과를 가져오는 데이터베이스 참조 오브젝트를 포함할 수 있다.In at least one example embodiment, the at least one event object may include a database reference object for obtaining a search result by referring to an external database in the sequential structure.

일 실시예에서, 상기 이벤트 처리 엔진은 상기 필터 오브젝트에 대하여 상기 필터 스트림 뷰 오브젝트에 해당하는 데이터가 요구되면 해당 데이터를 세팅하는 전처리 엔진을 더 포함할 수 있다.In one embodiment, the event processing engine may further include a preprocessing engine for setting the corresponding data to the filter object when data corresponding to the filter stream view object is requested.

실시예들 중에서, 이벤트 정의 구조는 적어도 하나의 이벤트 오브젝트 및 컨텐츠에 대한 순차적 구조로서, 상기 적어도 하나의 이벤트 오브젝트는 해당 이벤트에 상응하는 소스 데이터인지 여부를 판단하는 필터 오브젝트를 상기 순차적 구조의 루트로서 포함하고, 상기 컨텐츠는 상기 순차적 구조의 말단으로 포함된다.Among the embodiments, the event definition structure is a sequential structure for at least one event object and contents, and the at least one event object is a source of data corresponding to the event, as a route of the sequential structure And the content is included as an end of the sequential structure.

일 실시예에서, 상기 이벤트 정의 구조는 특정 조건 판단을 위한 컨디션 오브젝트를 더 포함하고, 상기 컨디션 오브젝트는 상기 조건 판단에 따라 상기 순차적 구조의 분기점을 형성할 수 있다.In an exemplary embodiment, the event definition structure may further include a condition object for determining a specific condition, and the condition object may form a branch point of the sequential structure according to the condition determination.

일 실시예에서, 상기 이벤트 정의 구조는 상기 분기점에 따라 분기된 각각에 대하여 서로 상이한 컨텐츠를 포함할 수 있다.In one embodiment, the event definition structure may include contents different from each other for each branching according to the branch point.

실시예들 중에서, 이벤트 처리 시스템은 정의된 이벤트 정의 구조를 이용하여 소스 데이터에 대한 이벤트 처리를 수행한다. 상기 이벤트 정의 구조는 적어도 하나의 이벤트 오브젝트 및 컨텐츠에 대한 순차적 구조로서, 상기 적어도 하나의 이벤트 오브젝트는 해당 이벤트에 상응하는 소스 데이터인지 여부를 판단하는 필터 오브젝트를 상기 순차적 구조의 루트로서 포함하고, 상기 컨텐츠는 상기 순차적 구조의 말단으로 포함한다. 상기 이벤트 처리 시스템은 이벤트 센서부 및 이벤트 처리 엔진을 포함한다. 상기 이벤트 센서부는 상기 소스 데이터에 대하여 상기 이벤트 정의 구조와 상응하는 데이터인지 매핑한다. 상기 이벤트 처리 엔진은 상기 이벤트 센서부에서 제공된 입력 데이터에 대하여 상기 추상 이벤트 정의에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 추상 이벤트 정의의 순차적 구조에 따라 순차적으로 처리하며, 상기 처리한 결과 상기 추상 이벤트 정의 구조를 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 한다.Among the embodiments, the event processing system performs event processing on the source data using the defined event definition structure. Wherein the event definition structure is a sequential structure for at least one event object and content, the at least one event object includes a filter object for determining whether the source data corresponds to the event, as the root of the sequential structure, Content is included at the end of the sequential structure. The event processing system includes an event sensor unit and an event processing engine. The event sensor unit maps the source data to data corresponding to the event definition structure. Wherein the event processing engine processes the input data provided by the event sensor unit to determine whether the data corresponds to the abstract event definition and if so, sequentially processes the input data according to the sequential structure of the abstract event definition, As a result, if the abstract event definition structure is satisfied, it is processed according to the content of the abstract event.

일 실시예에서, 상기 순차적 구조는 비순환 방향성 그래프 구조 또는 종료 조건을 포함하는 순환 방향성 그래프 구조로서 정의될 수 있다.In one embodiment, the sequential structure may be defined as a cyclic directional graph structure or a cyclic directional graph structure including a termination condition.

일 실시예에서, 상기 이벤트 처리 시스템은 상기 이벤트 처리 엔진에서 구성된 이벤트 처리 결과를 상기 이벤트 정의 구조에 따라 전달하는 이벤트 액션부를 더 포함할 수 있다.In one embodiment, the event processing system may further include an event action unit for delivering the event processing result configured in the event processing engine according to the event definition structure.

일 실시예에서, 상기 이벤트 처리 엔진은 상기 이벤트 정의 구조에 따라 추상 이벤트 정의를 생성하는 이벤트 정의 모듈 및 상기 입력 데이터에 대하여 상기 이벤트 정의 구조에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 이벤트 정의 구조에 따라 순차적으로 처리하며, 상기 순차적인 처리를 모두 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 하는 이벤트 프로세스 엔진을 포함할 수 있다.In one embodiment, the event processing engine may include an event definition module for generating an abstract event definition according to the event definition structure, and data corresponding to the event definition structure for the input data, And an event process engine that processes the events sequentially according to the event definition structure, and processes the events according to contents of the abstract events when the sequential processes are satisfied.

실시예들 중에서, 이벤트 처리 방법은 (a) 수신된 소스 데이터와 기 정의된 이벤트 구조를 매핑하는 단계, (b) 상기 이벤트 정의 구조의 구성요소들에 대한 처리 순서를 구성하여 처리 프로세스를 생성하는 단계, (c) 상기 수신된 소스 데이터에 대하여 필터링하여 이벤트 처리를 시작하는 단계, (d) 상기 생성된 프로세스에 따라 해당 이벤트 오프젝트 프로세서에 작업을 할당하는 단계 및 (e) 상기 할당된 작업이 성공적으로 이루어지면, 상기 이벤트 정의 구조에 포함된 컨텐츠에 따라 전달 내용을 구성하는 단계를 포함한다.Among the embodiments, an event processing method includes the steps of: (a) mapping received source data and a predefined event structure; (b) constructing a processing sequence for the elements of the event definition structure to generate a processing process (C) filtering the received source data to start event processing; (d) assigning a job to a corresponding event object processor according to the generated process; and (e) And configuring the delivery contents according to the contents included in the event definition structure if it is successfully performed.

일 실시예에서, 상기 이벤트 처리 방법은 상기 소스 데이터에 대하여 필터 인스턴스에 대한 필터 스트림 뷰에 해당하는 데이터가 요구되면, 해당 데이터를 세팅하는 전처리 단계를 더 포함할 수 있다.In one embodiment, the event processing method may further include a preprocessing step of, when data corresponding to the filter stream view for the filter instance is requested for the source data, setting the corresponding data.

일 실시예에서, 상기 (c) 단계는 이벤트 인스턴스의 데이터 셋으로서, 이벤트에 포함된 이벤트 오브젝트(EventObject)에서 사용되는 입출력 데이터 정보를 포함하는 이벤트 컨택스트를 생성하는 단계를 포함할 수 있다.In an embodiment, the step (c) may include generating an event context including input / output data information used in an event object included in an event as a data set of an event instance.

일 실시예에서, 상기 (e) 단계는 상기 이벤트 처리 과정 중 발생하는 중간 연산 결과를 포함하여 상기 전달 내용을 구성하는 단계를 포함할 수 있다.In one embodiment, the step (e) may comprise the step of configuring the delivery content including the intermediate operation results generated during the event processing.

본 출원의 개시된 기술에 따르면, 이벤트 정의를 위한 이벤트 오브젝트에 대하여 독립성을 보장할 수 있으며, 또한 계층적이고 순차적인 정의 구조를 사용할 수 있어 하나의 이벤트에 대하여도 복수의 처리가 가능한 효과가 있다.According to the disclosed technology of the present application, independence of an event object for event definition can be guaranteed, and a hierarchical and sequential definition structure can be used, so that a plurality of processes can be processed for one event.

또한, 본 출원의 개시된 기술에 따르면, 이벤트 처리과정에서 생성되는 중간 연산 값을 다시 활용할 수 있으므로, 이벤트 판단 및 전달 결과에 의미있는 데이터 추출이 가능한 효과가 있다.In addition, according to the disclosed technology of the present application, since the intermediate operation value generated in the event processing process can be utilized again, there is an effect that can extract meaningful data in the event determination and delivery results.

또한, 본 출원의 개시된 기술에 따르면,기존에 DB에 저장하고 조회하던 데이터들을 메모리 상에 저장하고 조회하도록 변경함으로써 성능을 개선할 수 있는 효과가 있다.In addition, according to the disclosed technology of the present application, there is an effect that can improve the performance by changing to store and retrieve the data that was previously stored in the DB in the memory.

또한, 본 출원의 개시된 기술에 따르면, 이벤트 정의 및 처리에 대한 API를 제공함으로써 API기반으로 경량화되고 타 시스템과의 이식성이 높아지는 효과가 있다.In addition, according to the disclosed technology of the present application, providing an API for event definition and processing has the effect of making it lightweight based on API and increasing portability with other systems.

도 1은 개시된 기술에 따른 복합 이벤트 처리 시스템의 일 실시예를 설명하기 위한 참고도이다.
도 2는 개시된 기술에 따른 이벤트 구성의 일 실시예를 설명하기 위한 참고도이다.
도 3은 개시된 기술에 따른 이벤트 정의의 일 실시예를 설명하기 위한 참고도이다.
도 4는 개시된 기술에 따른 이벤트 처리 프로세스의 일 실시예를 설명하기 위한 흐름도이다.
도 5는 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 일 실시예를 설명하기 위한 참고도이다.
도 6은 도 5의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.
도 7은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이다.
도 8은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이다.
도 9는 도 8의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.
도 10은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이다.
도 11는 도 10의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.
1 is a reference diagram for explaining an embodiment of a complex event processing system according to the disclosed technology.
2 is a reference diagram for explaining an embodiment of an event configuration according to the disclosed technology.
3 is a reference diagram for explaining an embodiment of an event definition according to the disclosed technology.
4 is a flow diagram illustrating one embodiment of an event processing process in accordance with the disclosed technology.
5 is a reference diagram for explaining an embodiment of event processing performed in a complex event processing system according to the disclosed technology.
FIG. 6 is a reference diagram for explaining an embodiment of processing the event of FIG. 5 according to the related art.
7 is a reference diagram for explaining another embodiment of event processing performed in a complex event processing system according to the disclosed technology.
8 is a reference diagram for explaining another embodiment of event processing performed in a complex event processing system according to the disclosed technology.
9 is a reference diagram for explaining an embodiment of processing the event of FIG. 8 according to the related art.
10 is a reference diagram for explaining another embodiment of event processing performed in a complex event processing system according to the disclosed technology.
FIG. 11 is a reference diagram for explaining an embodiment of processing the event of FIG. 10 according to the related art.

개시된 기술에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 개시된 기술의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 개시된 기술의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.The description of the disclosed technique is merely an example for structural or functional explanation and the scope of the disclosed technology should not be construed as being limited by the embodiments described in the text. That is, the embodiments may be variously modified and may have various forms, and thus the scope of the disclosed technology should be understood to include equivalents capable of realizing the technical idea.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in the present application should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms "first "," second ", and the like are intended to distinguish one element from another, and the scope of the right should not be limited by these terms. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected to the other element, but there may be other elements in between. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that there are no other elements in between. On the other hand, other expressions describing the relationship between the components, such as "between" and "immediately between" or "neighboring to" and "directly neighboring to", should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It should be understood that the singular " include "or" have "are to be construed as including a stated feature, number, step, operation, component, It is to be understood that the combination is intended to specify that it does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (e.g., a, b, c, etc.) is used for convenience of explanation, the identification code does not describe the order of each step, Unless otherwise stated, it may occur differently from the stated order. That is, each step may occur in the same order as described, may be performed substantially concurrently, or may be performed in reverse order.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art unless otherwise defined. Commonly used predefined terms should be interpreted to be consistent with the meanings in the context of the related art and can not be interpreted as having ideal or overly formal meaning unless explicitly defined in the present application.

표 1은 개시된 기술에 따른 복합 이벤트를 설명하는 참고도이다.Table 1 is a reference diagram illustrating composite events in accordance with the disclosed technology.

EventEvent 비즈니스적으로 의미를 가지는 이벤트 Event that has business meaning AbstractEventElementAbstractEventElement Event의 구성요소 정의를 위한 오브젝트 Object for component definition of Event EventObjectEventObject FilterFilter 이벤트 처리의 시작점으로 원천 데이터를 정의Define source data as the starting point for event processing FilterStreamViewFilterStreamView Filter 인스턴스를 메모리에 저장하고 조회하는 오브젝트 Object that stores and queries Filter instances in memory DBReferenceDBReference 이벤트 처리를 위한 DB 데이터 참조를 정의Define a DB Data Reference for Event Processing ConditionCondition 조건 판단을 위한 룰 연산 정의(조건에 따른 분기 발생을 정의)Rule operation definition for condition determination (define occurrence of branching according to condition) ConditionFunctionConditionFunction 수식/논리/사용자 정의 함수 연산 componentFormula / Logic / User-Defined Function Arithmetic component ConditionFunctionStreamViewConditionFunctionStreamView ConditionFunction 인스턴스를 메모리에 저장하고 조회하는 오브젝트 An object that stores and queries the ConditionFunction instance in memory. ContentsContents 전달할 내용 및 대상 등을 정의Define what to deliver and what CacheManagerCachemanager 이벤트 처리에 필요한 필요한 데이터를 메모리에 저장하고 공유하기 위해 사용 Used to store and share data needed for event processing in memory MapperMapper Data Source와 Filter 간 맵핑 Mapping between Data Sources and Filters EventContextEventContext 이벤트 처리를 위해 이벤트 인스턴스의 데이터 셋 오브젝트 Data set object of the event instance for event processing

개시된 기술에서, EVENT는 비즈니스적으로 의미를 가지는 이벤트를 말하여, 이벤트를 처리를 위해 정의하는 최종 단위를 의미한다. In the disclosed technology, EVENT refers to an event that has a business meaning, and means a final unit that defines an event for processing.

추상 이벤트 요소(AbstractEventElement)는 개념적으로 이벤트의 구성 요소 정의를 위한 오브젝트를 말하며 이벤트와 1:1 관계를 가진다. 추상 이벤트 요소(AbstractEventElement)는 다수의 이벤트 오브젝트(EventObject)와 컨텐츠(Contents)로 구성될 수 있다. An abstract event element (AbstractEventElement) is an object for conceptual definition of an event component and has a one-to-one relationship with an event. An abstract event element (AbstractEventElement) can be composed of a number of event objects (EventObject) and contents (Contents).

이벤트 오브젝트(EventObject)는 이벤트의 구성요소가 될 수 있다. 이벤트 오브젝트(EventObject)들은 개별적으로 각각 정의하여 컴포넌트화 할 수 있다. 이렇게 생성된 이벤트 오브젝트(EventObject)들은 이벤트의 구성요소로 추가하여 사용될 수 있다. An event object (EventObject) can be a component of an event. EventObjects can be defined and componentized individually. The event objects generated in this way can be used in addition to the components of the event.

이벤트 오브젝트(EventObject)의 종류는 다음과 같이 있다. The types of event objects are as follows.

필터(Filter)는 이벤트가 트리거링(triggering)되는 이벤트 처리의 시작점을 나타내는 오브젝트이다. 필터(Filter)는 데이터 소스 시스템으로부터 수신되는 외부 원천 데이터를 정의할 수 있다.A filter is an object representing the starting point of event processing in which an event is triggered. A filter may define external source data received from a data source system.

필터 스트림 뷰(FilterStreamView)는 필터(Filter)의 실제 발생한 데이터 인스턴스(Filter instance)를 메모리에 저장하고 조회하는 오브젝트이다. 일 실시예에서, 필터 스트림 뷰(FilterStreamView)는 (PREVIOUS_VALUE, 직전값), (AVERAGE, 평균값), (SUM, 합계), (COUNT, 개수), (MAX, 최대값) 및 (MIN, 최소값) 중 적어도 하나에 대하여 연산 결과를 조회할 수 있다.A filter stream view (FilterStreamView) is an object that stores and queries the actual data instance (Filter instance) of the filter in memory. In one embodiment, the filter stream view (FilterStreamView) has a value of (PREVIOUS_VALUE, previous value), (AVERAGE, average value), (SUM, sum), (COUNT, The calculation result can be inquired for at least one.

데이터베이스 참조 오브젝트(DB Reference)는 외부 DB를 참조하여 필요한 데이트를 정의하기 위한 오브젝트이다. 데이터베이스 참조 오브젝트(DB Reference)는 DB connection 명으로 해당 DB에 접속하여 쿼리를 수행하여 결과를 조회할 수 있다.A database reference object (DB Reference) is an object for defining necessary data by referring to an external DB. A database reference object (DB Reference) can be accessed by executing a query by accessing the DB under a DB connection name.

컨디션(Condition)은 조건 판단을 위한 룰 연산을 정의한다. 또한 컨디션(Condition)은 연산 결과에 대하여 True/False 판단을 할 수 있다. 예를 들어, True일 경우 다음 프로세스를 진행하고 False일 경우 수행을 종료하도록 할 수 있다.Condition defines rule operations for condition determination. In addition, the condition may determine True / False on the operation result. For example, if it is True, you can proceed to the next process and if it is False, you can end it.

개시된 기술은 이벤트에 대하여 다수의 조건으로 분기가 필요한 경우, 이벤트 오브젝트(EventObject)에 컨디션(Condition)을 추가하여 정의함으로써 조건에 따른 분기를 설정할 수 있다.The disclosed technique can define a branch according to a condition by adding a condition to an event object (EventObject) when a branch is required under a plurality of conditions for the event.

컨디션 함수 오브젝트(ConditionFunction)는 이벤트 처리 전반에 걸쳐 사용 가능한 수식/논리/사용자 정의 함수 기능을 제공하는 연산 컴포넌트이다.Condition Function Object (ConditionFunction) is an operation component that provides expression, logic, and user-defined function functions that can be used throughout event processing.

컨디션 함수 스트림 뷰(ConditionFunctionStreamView)는 컨디션 함수 오브젝트(ConditionFunction)에 의하여 발생한 데이터 인스턴스를 메모리에 저장하고 조회하는 오브젝트이다. 일 실시예에서, 컨디션 함수 스트림 뷰(ConditionFunctionStreamView)는 (PREVIOUS_VALUE, 직전값), (AVERAGE, 평균값), (SUM, 합계), (COUNT, 개수), (MAX, 최대값) 및 (MIN, 최소값) 중 적어도 하나에 대한 연산 결과를 조회할 수 있다.The condition function stream view (ConditionFunctionStreamView) is an object storing and inquiring a data instance generated by a condition function object (ConditionFunction) in a memory. In one embodiment, the ConditionFunctionStreamView has a value of (PREVIOUS_VALUE, previous value), (AVERAGE, average value), (SUM, SUM), (COUNT, The result of the operation on at least one of them can be inquired.

컨텐츠(Contents)는 특정 이벤트에 해당할 경우, 전달할 내용 및 대상 등을 정의한다. 예를 들어, 최종 이벤트 판단 후 True일 경우, 컨텐츠(Contents)는 해당 이벤트에 상응하는 결과 동작, 예컨대, 특정 내용을 전달하거나 또는 특정 대상을 결정하는 등을 정의할 수 있다.Contents define contents and targets to be delivered when corresponding to a specific event. For example, if True after determining the final event, Contents may define a result action corresponding to the corresponding event, for example, delivering specific content or determining a specific target.

캐시 매니저(CacheManager)는 이벤트 처리에 필요한 데이터를 메모리에 저장하고 공유할 수 있도록 데이터를 임시 저장할 수 있다.The cache manager may temporarily store data to store and share data necessary for event processing in memory.

매퍼(Mapper)는 데이터 소스(Data Source)에서 수신된 데이터를 필터(Filter)와 맵핑할 수 있다.The mapper may map data received from the data source with a filter.

이벤트 컨택스트(EventContext)는 이벤트 처리를 위한 이벤트 인스턴스의 데이터 셋이다. 이벤트 컨택스트(EventContext)는 이벤트 처리요청에 1:1로 생성되며 이벤트 내의 이벤트 오브젝트(EventObject)에서 사용되는 입출력 데이터 정보를 포함할 수 있다.An event context is an event set for event handling. An event context is generated 1: 1 in an event processing request and may include input / output data information used in an event object in an event.

도 1은 개시된 기술에 따른 복합 이벤트 처리 시스템의 일 실시예를 설명하기 위한 참고도이다.1 is a reference diagram for explaining an embodiment of a complex event processing system according to the disclosed technology.

도 1을 참조하면, 복합 이벤트 처리 시스템(100)은 이벤트 센서부(Sensor)(110), 이벤트 처리 엔진(CEP: Complex Event Processing)(120) 및 이벤트 액션부(Action)(130)를 포함한다. 일 실시예에서, 복합 이벤트 처리 시스템(100)은 이벤트 모니터부(Monitor)(140) 또는 이벤트 통제부(Admin)(150)를 더 포함할 수 있다.Referring to FIG. 1, the complex event processing system 100 includes an event sensor 110, a complex event processing engine 120, and an event action unit 130. . In an embodiment, the complex event processing system 100 may further include an event monitor 140 or an event controller 150.

이벤트 센서부(110)는 데이터 소스 시스템에서 데이터가 발생되면, 이를 센싱하여 이벤트로 감지할 수 있다. 이벤트 센서부(110)는 센싱된 소스 데이터를 이벤트 처리 엔진(120)에 제공할 수 있다. When data is generated in the data source system, the event sensor unit 110 may sense the detected event as an event. The event sensor unit 110 may provide the sensed source data to the event processing engine 120.

일 실시예에서, 이벤트 센서부(110)는 센싱 API(111) 및 매핑부(Mapper)(112)를 포함할 수 있다. 센싱 API(111)는 소스 데이터를 이벤트로 판정하기 위하여 필요한 이벤트 정의 및 그 처리를 위한 API를 제공할 수 있다. 외부에서는 센싱 API(111)로 접근(호출)하여 이벤트를 정의하거나 정의된 이벤트를 처리할 수 있다. 센싱 API(111)는 수신된 데이터를 매핑부(112)에 제공할 수 있다. 매핑부(112)는 수신된 데이터를 기 정의된 이벤트와 매핑한 후, 이를 이벤트 처리 엔진(120)에 제공할 수 있다.In one embodiment, the event sensor unit 110 may include a sensing API 111 and a mapping unit 112. The sensing API 111 may provide an API for event definition and processing thereof required to determine the source data as an event. The outside may access (call) the sensing API 111 to define an event or process the defined event. The sensing API 111 may provide the received data to the mapping unit 112. The mapping unit 112 may map the received data with a predefined event and then provide it to the event processing engine 120.

일 실시예에서, 이벤트 센서부(110)는 수신한 소스 데이터에 대하여, 이벤트 타당성 점검, 이벤트 형식 변환, 에러처리 및 이벤트 소스와의 통신 모니터링 중 적어도 하나의 기능을 수행할 수 있다. 타당성 점검(Event Validation)은 이벤트 원천으로부터 수집한 데이터의 유효성을 검증하기 위한 소정의 작업을 수행하는 것이다. 이벤트 형식 변환(Event Formatter)은 복합이벤트인 경우 단순이벤트들 간의 연관관계(correlation)를 정의하기 위한 사전정의를 수행하는 것이다. 에러 처리(Error Processing)는 이벤트 큐에 저장할 원천 데이터의 오류를 검사하여 특정 폴더에 로깅(logging) 작업을 수행하는 것이고, 통신 모니터링(Status Monitoring)은 이벤트 소스와 이벤트 큐 사이의 통신상태를 점검하고 모니터링 하는 것을 의미한다.In an embodiment, the event sensor unit 110 may perform at least one function of event validity check, event format conversion, error processing, and communication with the event source on the received source data. Event Validation is to perform certain tasks to validate the data collected from the event source. Event formatter is to perform definition to define correlation between simple events in case of complex event. Error Processing checks for errors in the source data to be stored in the event queue and logs them to a specific folder. Status Monitoring checks the communication status between the event source and the event queue. Means monitoring.

일 실시예에서, 이벤트 센서부(110)는 소스 데이터의 수집에 있어서 실시간 또는 주기적 추출 방식을 사용할 수 있다. 예를 들어, 이벤트 센서부(110)는 에이전트(Agent) 감시에 의한 실시간 추출방식, 폴더감시를 통한 주기적 추출방식, Open API(Application Programming Interface)를 이용한 실시간 서버(Event Queue) 전송방식 또는 JMS(Java Message Service)를 이용한 실시간 서버 전송 방식 중 적어도 하나 또는 이들을 결합하여 사용할 수 있다.In one embodiment, the event sensor unit 110 may use a real-time or periodic extraction method for the collection of source data. For example, the event sensor 110 may be a real-time extraction method by agent monitoring, a periodic extraction method by folder monitoring, an event queue transmission method or JMS (Open API) using Open API (Application Programming Interface). At least one of real-time server transmission method using Java Message Service) or a combination thereof may be used.

이벤트 처리 엔진(CEP)(120)는 이벤트 센서부(110)에서 수집한 데이터를 정의된 내용에 따라서 이벤트를 처리하고 액션플랜을 생성할 수 있다. 이벤트 처리 엔진(CEP)(120)는 이벤트 처리 시스템의 핵심 엔진부로써 이벤트 처리를 위한 프로세서로 구성될 수 있다.The event processing engine (CEP) 120 may process an event and generate an action plan based on the data collected by the event sensor unit 110 according to a defined content. The event processing engine (CEP) 120 is a core engine unit of the event processing system and can be configured as a processor for event processing.

이벤트 처리 엔진(CEP)(120)는 전처리 엔진(Pre Processor Engine)(121), 이벤트 프로세서 엔진(EventObject Processor Engine)(122) 및 컨텐츠 프로세서(Contents Processor)(123)을 포함할 수 있다. 일 실시예에서, 이벤트 처리 엔진(CEP)(120)는 이벤트 정의 모듈(미도시) 또는 캐시 매니저(Cache Manager)(124)를 더 포함할 수 있다.The event processing engine (CEP) 120 may include a pre processor engine 121, an event object engine 122, and a content processor 123. In one embodiment, event processing engine (CEP) 120 may further include an event definition module (not shown) or a cache manager 124.

전처리 엔진(Pre Processor Engine)(121)은 이벤트 정의에 따라 이벤트 처리를 위한 선처리 작업을 수행할 수 있다.The preprocessor engine 121 may perform preprocessing for event processing according to the event definition.

이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 전처리 엔진(121)에서 구성한 이벤트 처리 프로세스에 따라 각 프로세스를 기동하여 처리할 수 있다.The event processor engine 122 may start and process each process according to the event processing process configured in the preprocessing engine 121.

일 실시예에서, 이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 이벤트 처리 프로세스를 수행함에 있어서, 각 이벤트 오브젝트마다 별도 구성된 프로세서를 구비하여 이벤트 처리를 수행할 수 있다. 예를 들어, 이벤트 프로세서 엔진(EventObject Processor Engine)(122)가 선처리 작업된 데이터에 대하여 소정의 필터링을 수행할 수도 있지만, 도시된 예와 같이 필터 프로세서(Filter Processor)를 구비하여 필터 작업을 전담시킬 수 있다.In one embodiment, in performing the event processing process, the event processor engine 122 may include a processor configured for each event object to perform event processing. For example, the event processor engine 122 may perform a predetermined filtering on the preprocessed data. However, as shown in the illustrated example, an event processor engine 122 may include a filter processor to dedicate a filter operation. Can be.

이러한 일 실시예에서, 이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 이벤트 오브젝트를 식별하고, 특정 이벤트 오브젝트에 해당하면 그에 상응하는 프로세서에 작업을 할당할 수 있다. 이를 위하여, 이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 필터 스트림 뷰 프로세서(FilterStreamView Processor), 데이터베이스 참조 프로세서(DBReference Processor), 컨디션 함수 프로세서(ConditionFunction Processor), 컨디션 함수 뷰 프로세서(ConditionFunctionView Processor), 컨디션 프로세서(Condition Processor)를 포함할 수 있다. In one such embodiment, the EventObject Processor Engine 122 may identify the event object and assign a task to the processor corresponding to the particular event object. To this end, the EventObject Processor Engine 122 includes a FilterStreamView Processor, a DBReference Processor, a ConditionFunction Processor, a ConditionFunctionView Processor, And a processor (Condition Processor).

컨텐츠 프로세서(Contents Processor)(123)는 이벤트 처리의 마지막 단계로 이벤트 사후 처리를 위한 내용을 포함할 수 있다.The contents processor 123 may include content for post-event processing as a final step of event processing.

이벤트 정의 모듈은 추상 이벤트 요소(AbstractEventElement)에 따라 이벤트의 구성요소를 정의할 수 있다. 전술한 바와 같이, 추상 이벤트 요소(AbstractEventElement)는 적어도 하나의 이벤트 오브젝트(EventObject) 및 그에 대한 컨텐츠(Contents)로 구성되며 순차 구조로 구성될 수 있다. 이벤트 정의 모듈은 사용자의 입력 또는 요청정보를 기초로 해당 시스템에서 적용될 수 있는 비즈니스 이벤트를 정의할 수 있다. 이벤트 정의 모듈은 정의된 이벤트에 대한 이벤트 정의 메타 정보를 생성할 수 있다.The event definition module may define components of an event according to an abstract event element. As described above, the abstract event element (AbstractEventElement) is composed of at least one event object (EventObject) and its contents (Contents) and may be configured in a sequential structure. The event definition module may define a business event that can be applied in a corresponding system based on user input or request information. The event definition module may generate event definition meta information about the defined event.

캐시 매니저(Cache Manager)(124) 이벤트 프로세서 엔진(EventObject Processor Engine)(122)과 연동하여 이벤트 처리에 필요한 캐시 메모리를 제공할 수 있다.The cache manager 124 may be linked with the event object processor engine 122 to provide a cache memory for event processing.

이벤트 액션부(Action)(130)는 컨텐츠 프로세서(Contents Processor)(123)에서 구성한 이벤트 처리 결과를 이벤트 정의에 따라 전달할 수 있다. 예를 들어, 이벤트 별로 정의된 전달 방법에 따라, SMS, E-mail, DB Insert 등의 방법으로 해당 내용을 전달할 수 있다.The event action unit 130 may deliver the event processing result configured in the contents processor 123 according to the event definition. For example, depending on the delivery method defined for each event, the contents can be delivered by SMS, E-mail, DB Insert, etc.

이벤트 모니터부(Monitor)(140)는 복합이벤트 처리시스템에서 발생하는 다양한 상황의 실시간 모니터링,이벤트 모니터링, 센서 모니터링, 큐모니터링, 처리현황모니터링 등의 기능을 수행할 수 있다.The event monitor unit 140 may perform functions such as real time monitoring, event monitoring, sensor monitoring, queue monitoring, and processing status monitoring of various situations occurring in the complex event processing system.

이벤트 통제부(Admin)(150)는 이벤트 프로세서 실행에 필요한 정보를 관리하는 기능을 담당한다. 사용자 또는 역할 관리, 이벤트 엔진 실행 또는 중지, 시스템 환경변수 관리 등의 기능을 수행할 수 있다.The event controller 150 is responsible for managing information necessary to execute the event processor. You can manage users or roles, run or stop the event engine, and manage system environment variables.

도 2는 개시된 기술에 따른 이벤트 구성의 일 실시예를 설명하기 위한 참고도이고, 도 3은 개시된 기술에 따른 이벤트 정의의 일 실시예를 설명하기 위한 참고도이다.2 is a reference diagram for explaining an embodiment of an event configuration according to the disclosed technology, and FIG. 3 is a reference diagram for explaining an embodiment of an event definition according to the disclosed technology.

도 2 및 도 3을 참조하여, 이벤트 구성 및 정의에 대하여 설명한다. 개시된 기술에서, 이벤트는 비즈니스적으로 의미가 있는 이벤트를 의미하며, 이벤트 정의는 이벤트로 감지할 내용을 이벤트 구성요소로 설계하고 구성요소를 조합하여 정의할 수 있다. 이벤트 처리는 기 정의된 이벤트 구성요소의 순서에 따라 필요한 데이터를 바탕으로 연산을 수행하는 작업을 거치면서 이루어질 수 있다. With reference to Figs. 2 and 3, the event configuration and definition will be described. In the disclosed technology, an event refers to an event that has a business meaning, and an event definition may design content to be detected as an event as an event component and define a combination of components. Event processing may be performed while performing operations based on necessary data in the order of predefined event elements.

도 2에 도시된 바와 같이, 이벤트는 추상 이벤트 요소(AEE : Abstract Event Element)를 포함하여 구성될 수 있으며, 도 3에 도시된 바와 같이, 이벤트는 Composite 패턴이 적용된 다수의 이벤트 요소(Event Element)를 포함하는 계층구조로서 정의될 수 있다. 개시된 계층 구조는 이벤트 구성요소의 순서를 구성할 수 있다. 일 실시예에서, 이벤트는 비순환 방향성 그래프 구조 또는 종료 조건을 포함하는 순환 방향성 그래프 구조로서 정의될 있다.As illustrated in FIG. 2, an event may include an abstract event element (AEE). As illustrated in FIG. 3, an event may include a plurality of event elements to which a composite pattern is applied. It may be defined as a hierarchy including a. The disclosed hierarchy may constitute an order of event components. In one embodiment, the event may be defined as a circular directional graph structure that includes an acyclic directional graph structure or an end condition.

예를 들어, 이벤트는 필터(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 판단 결과에 따라 처리 흐름을 변경(즉, 분기 등을 수행함)할 수 있다.For example, an event may be defined as a hierarchy starting with a filter (F) and ending with content (CT). At least one event object (EO) or condition (CD) may be added between the filter and the content. The event object EO may include the above-described FilterStreamView, DB Reference, ConditionFunction, ConditionFunctionStreamView. Condition (CD) can also be added as one of the Event Object (EO), and Condition (CD) changes the processing flow according to the True / False judgment result of the condition (i.e. branching, etc.). Can be performed).

도 4는 개시된 기술에 따른 이벤트 처리 프로세스의 일 실시예를 설명하기 위한 흐름도이다. 도 4에 도시된 바와 같이, 개시된 기술에 따른 이벤트 처리는 Visitor 패턴으로 계층적 이벤트 정의 구조를 순서대로 방문하며 수행될 수 있다.4 is a flow diagram illustrating one embodiment of an event processing process in accordance with the disclosed technology. As shown in FIG. 4, event processing according to the disclosed technique may be performed by visiting a hierarchical event definition structure in a Visitor pattern in order.

소스 시스템에서 데이터가 발생하면, 이벤트 센서부(110)는 소스 데이터에 대하여 이벤트 처리를 수행하여 이벤트 처리 엔진(CEP)(120)에 제공할 수 있다. 이벤트 처리 엔진(CEP)(120)는 일련의 절차를 수행하여 이벤트로서 판단하였을 때 TRUE로 판단되면, 정의된 액션을 수행하도록 이벤트 액션부(Action)(130)에 요청할 수 있다.When data occurs in the source system, the event sensor unit 110 may perform event processing on the source data and provide it to the event processing engine (CEP) 120. The event processing engine (CEP) 120 may request the event action unit 130 to perform a defined action if it is determined to be TRUE when it is determined as an event by performing a series of procedures.

더 상세히 설명하면, 매핑부(112)는 수신된 소스 데이터와 필터(Filter)에 정의된 데이터를 매핑할 수 있다(Mapper Processing). 매핑한 결과, 정의된 데이터에 해당하면, 이벤트에 해당할 수 있으므로 이를 이벤트 처리 엔진(CEP)(120)에 제공할 수 있다(S410). In more detail, the mapping unit 112 may map the received source data and data defined in the filter (Mapper Processing). As a result of mapping, since it corresponds to the defined data, it may correspond to an event and may provide it to the event processing engine (CEP) 120 (S410).

전처리 엔진(Pre Processor Engine)(121)은 제공받은 소스 데이터에 해당하는 필터(Filter) 인스턴스에 대하여 필터 스트림 뷰(FilterStreamView) 인스턴스가 존재하는 경우, 그에 따라 데이터 세팅 작업을 수행할 수 있다(S420).If a filter stream view instance exists for a filter instance corresponding to the provided source data, the pre-processor engine 121 may perform a data setting operation according to the filter stream view instance (S420) .

이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 입력 데이터에 대하여 이벤트 컨택스트(EventContext)를 생성할 수 있다(S430). 여기에서, 이벤트 컨택스트(EventContext)란 이벤트 처리를 위한 이벤트 인스턴스의 데이터 셋으로, 각 이벤트와 1:1로 생성된다. 이벤트 컨택스트(EventContext)는 이벤트에 포함된 이벤트 오브젝트(EventObject)에서 사용되는 입출력 데이터 정보를 포함할 수 있다.The event processor engine 122 may generate an event context for the input data in operation S430. Here, an event context is an event set of an event instance for event processing and is generated 1: 1 with each event. An event context may include input / output data information used in an event object included in an event.

이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 해당 이벤트에 대하여 처리해야 할 프로세스를 생성할 수 있다(S440). 즉, 이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 이벤트 정의 메타 정보에서 이벤트 정의 구성요소들에 대한 처리 순서를 구성함으로써, 처리 프로세스를 생성할 수 있다.The event processor engine 122 may generate a process to be processed for the corresponding event (S440). That is, the event processor engine 122 may generate a processing process by configuring the processing order for the event definition elements in the event definition meta information.

이벤트 프로세서 엔진(EventObject Processor Engine)(122)은 Filter 정의 정보에 따라 수신된 입력 데이터를 매핑 처리하고 이벤트를 시작하는 처리를 수행한다(S450).The event processor engine 122 performs a process of mapping the received input data according to the filter definition information and starting an event (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)를 처리하는 작업을 수행할 수 있다.The event processor engine 122 allocates and processes a task to each event object processor according to the process generated in step S440 (S460). As described above with reference to FIG. 1, an event object processor may include a FilterStreamView Processor, a DBReference Processor, a ConditionFunction Processor, a ConditionFunctionView Processor, and a Condition Processor, each of which processes an Event Object. You can do it.

컨텐츠 프로세서(Contents Processor)(123)는 이벤트 정의에 따라 전달 내용을 구성할 수 있다(S470). 컨텐츠에는 입력 데이터뿐만 아니라 이벤트 처리 과정 중 발생하는 중간 연산 결과도 포함할 수 있다. The contents processor 123 may configure delivery contents according to the event definition (S470). The content may include input data as well as intermediate calculation results generated during event processing.

이벤트 액션부(Action)(130)는 단계 S470에서 구성된 내용을 이벤트 정의시 정의한 전달 방법에 따라 전달하는 처리를 수행한다(S480). 여기에서, 전달 방법으로는 SMS, E-mail, DB Insert 등 다양한 방법으로 수행될 수 있다.The event action unit 130 performs a process of delivering the content configured in step S470 according to the delivery method defined when defining the event (S480). Here, the delivery method may be performed by various methods such as SMS, E-mail, DB Insert.

도 5는 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 일 실시예를 설명하기 위한 참고도이고, 도 6은 도 5의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.5 is a reference diagram for explaining an embodiment of event processing performed in a complex event processing system according to the disclosed technology, and FIG. 6 is a reference for explaining an embodiment of processing the event of FIG. 5 according to the related art. It is also.

도 5 및 도 6에 개시된 일 실시예는 측정 기기 내부 온도가 100도 이상이면 이벤트로서 감지하는 예를 도시하고 있다.5 and 6 illustrate an example of sensing as an event when the internal temperature of the measuring device is 100 degrees or more.

도 5를 참조하면, 개시된 기술에 따른 복합 이벤트 처리 시스템(100)은 Filter, ConditionFucntion을 포함하여 이벤트 오브젝트(EventObject)를 조합하고, 그에 대한 컨텐츠(Contents)를 포함하는 계층구조로서 이벤트를 구성할 수 있다. Referring to FIG. 5, the complex event processing system 100 according to the disclosed technology may combine an event object, including a Filter and a ConditionFucntion, and configure an event as a hierarchical structure including contents thereof. have.

더 상세히 설명하면, 복합 이벤트 처리 시스템(100)은 필터링(즉, 측정기기로부터 수신된 해당 측정기기의 내부 온도만을 필터링)을 수행하여 본 이벤트에 해당함을 확인하고(Filter), 측정된 내부온도 값이 정의된 조건(100도)에 부합하는지 룰을 적용할 수 있다(CF). 만약, 100도를 초과하면, True에 해당하므로 해당 이벤트에 대한 컨텐츠(Contents)에 따라 그 처리 결과를 전달할 수 있다.In more detail, the complex event processing system 100 performs filtering (i.e., filters only the internal temperature of the corresponding measuring device received from the measuring device) to confirm that the event corresponds to the present event (Filter), and measures the measured internal temperature value. The rule can be applied to meet the defined condition (100 degrees) (CF). If it exceeds 100 degrees, since it corresponds to True, the processing result can be delivered according to the contents of the corresponding event.

도 6을 참조하면, 본 실시예에서는 종래 기술에서도 유사하게 동작함을 알 수 있다. 즉, 이벤트 소스를 기초로 내부온도 측정 정보를 초기 이벤트로서 구성하고, 이를 기초로 실행타입을 구성한다. 이후, 룰(조건)을 적용하여 이에 해당하면 이후의 액션 플랜을 수행할 수 있다.Referring to Figure 6, it can be seen that this embodiment operates similarly in the prior art. That is, the internal temperature measurement information is configured as an initial event based on the event source, and the execution type is configured based on this. Subsequently, a rule (condition) may be applied to perform a subsequent action plan.

본 실시예는 분기 없이 단순 처리가 요구되는 이벤트로서, 종래기술과 개시된 기술에 따른 이벤트 처리 과정이 서로 상응함을 알 수 있다. This embodiment is an event requiring simple processing without branching, and it can be seen that the event processing procedures according to the prior art and the disclosed technology correspond to each other.

도 7은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이다.7 is a reference diagram for explaining another embodiment of event processing performed in a complex event processing system according to the disclosed technology.

도 7에 개시된 일 실시예는 측정 기기 내부 온도를 측정하여 현재값과 이전값의 차가 30이상이면 이벤트로서 감지하는 예를 도시하고 있다.7 shows an example of measuring the internal temperature of a measuring instrument and detecting an event as a difference if the difference between the current value and the previous value is 30 or more.

도 7을 참조하면, 복합 이벤트 처리 시스템(100)은 Filter, FilterStreamView(FSV), ConditionFucntion(CF)을 포함하여 이벤트 오브젝트(EventObject)를 조합하고, 그에 대한 컨텐츠(Contents)를 포함하는 계층구조로서 이벤트를 구성할 수 있다. Referring to FIG. 7, the complex event processing system 100 combines an event object, including a Filter, a FilterStreamView (FSV), and a ConditionFucntion (CF), and includes an event for the event as a hierarchical structure including contents thereof. Can be configured.

더 상세히 설명하면, 복합 이벤트 처리 시스템(100)은 측정기기가 보낸 내부온도에 대한 정보인지 필터링을 수행하고(Filter), 현재 측정 이전에 마지막으로 측정했던 내부 온도값을 스트림(stream)에서 조회할 수 있다(FSV). 복합 이벤트 처리 시스템(100)은 현재 측정값과 이전 측정값의 차이값이 정의된 조건보다 큰지 확인하고(CF), 그에 해당하면 해당 이벤트에 대한 컨텐츠(Contents)에 따라 그 처리 결과를 전달할 수 있다.In more detail, the complex event processing system 100 may perform information filtering or filtering on the internal temperature sent by the measuring device, and may query the stream for the internal temperature value that was last measured before the current measurement (FSV). The complex event processing system 100 may check whether the difference between the current measured value and the previous measured value is greater than a defined condition (CF), and if so, deliver the processing result according to the contents of the corresponding event. .

도 7에 도시된 일 실시예에서는, 이전에 처리된 중간 처리값(중간값)을 활용할 수 있는 실시예로서, 종래 기술에서는 중간값을 사용할 수 없는 구조이므로, 이러한 실시예를 처리할 수 없다. In the embodiment illustrated in FIG. 7, an embodiment in which a previously processed intermediate processing value (middle value) may be utilized, and since the intermediate value cannot be used in the prior art, such an embodiment cannot be processed.

도 8은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이고, 도 9는 도 8의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.FIG. 8 is a diagram illustrating another embodiment of event processing performed in a complex event processing system according to the disclosed technology, and FIG. 9 is a diagram for describing an embodiment of processing the event of FIG. 8 according to the related art. See also.

도 8 및 도 9에 개시된 일 실시예는 측정 기기 내부 온도를 측정하여 현재온도가 100보다 크고, 최근 1시간 동안 2회이상 발생한 경우 이벤트로서 감지하는 예를 도시하고 있다.8 and 9 illustrate an example in which the internal temperature of the measuring device is measured and sensed as an event when the current temperature is greater than 100 and occurred more than once in the last hour.

도 8을 참조하면, 복합 이벤트 처리 시스템(100)은 Filter, 2개의 ConditionFucntion(CF) 및 ConditionFunctionStreamView(CFSV)를 포함하여 이벤트 오브젝트(EventObject)를 조합하고, 그에 대한 컨텐츠(Contents)를 포함하는 계층구조로서 이벤트를 구성할 수 있다. Referring to FIG. 8, the complex event processing system 100 combines an event object, including a Filter, two ConditionFucntion (CF), and a ConditionFunctionStreamView (CFSV), and includes a hierarchy including contents thereof. You can configure events as

더 상세히 설명하면, 복합 이벤트 처리 시스템(100)은 측정기기가 보낸 내부온도에 대한 정보인지 필터링을 수행하고(Filter), 현재 발생한 내부온도 값이 조건(100도)에 부합하는지 판단한다(CF1). 복합 이벤트 처리 시스템(100)은 최근 1시간 동안 조건1(CF1)을 만족했던 횟수를 스트림에서 조회하고(CFSV), 그 조회한 값이 기준 횟수(2회)를 초과하는 지 판단하여(CF2), 그에 따라 이벤트 처리 결과를 전달할 수 있다(Contents).In more detail, the complex event processing system 100 performs filtering to determine whether the internal temperature sent by the measuring device is information (Filter), and determines whether the current internal temperature value corresponds to the condition (100 degrees) (CF1). The complex event processing system 100 inquires in the stream the number of times that the condition 1 (CF1) has been satisfied in the last hour (CFSV), and determines whether the inquired value exceeds the reference number (two times) (CF2). Eventually, the event processing result can be delivered (Contents).

도 9에 도시된 경우 종래 기술에서는, 연결 이벤트를 이용하여 2개의 이벤트를 정의해야 함을 알 수 있다. 즉, 종래 기술에서는 계층적 이벤트 구조를 사용할 수 없어 2가지 조건을 판단하기 위해서는 2개의 서로 다른 이벤트를 구성한 뒤 이를 상호 연결하여 동작시켜야 함을 알 수 있다. 이러한 종래기술은 단계가 복잡해지고 어려워지는 문제점이 있다.In the prior art illustrated in FIG. 9, it can be seen that two events should be defined using a connection event. That is, in the prior art, it is not possible to use a hierarchical event structure, and thus, in order to determine two conditions, two different events must be configured and then interconnected and operated. This prior art has a problem that the steps are complicated and difficult.

도 10은 개시된 기술에 따른 복합 이벤트 처리 시스템에서 수행되는 이벤트 처리의 다른 일 실시예를 설명하기 위한 참고도이고, 도 11는 도 10의 이벤트를 종래 기술에 따라 처리하는 일 실시예를 설명하기 위한 참고도이다.FIG. 10 is a diagram illustrating another embodiment of event processing performed in a complex event processing system according to the disclosed technology. FIG. 11 is a diagram for describing an embodiment of processing the event of FIG. 10 according to the related art. See also.

도 10 및 도 11에 개시된 일 실시예는 측정 기기 내부 온도를 측정하여 구간의 레벨의 범위(구간레벨 High (80<=온도<100), 구간레벨: Normal (60<=온도<80))에 포함되면 구간 레벨을 전달해주는 이벤트를 도시하고 있다.10 and 11, the internal temperature of the measuring device is measured to measure a range of levels of a section (section level High (80 <= temperature <100) and section level: Normal (60 <= temperature <80)). When included, the event delivers the interval level.

도 10을 참조하면, 복합 이벤트 처리 시스템(100)은 Filter, 2개의 컨디션(Condition) 및 각각의 Condition 에 대한 컨텐츠(Contents)를 포함하는 분기형 계층구조로서 이벤트를 구성할 수 있다. Referring to FIG. 10, the complex event processing system 100 may configure an event as a branched hierarchical structure including a filter, two conditions, and contents for each condition.

더 상세히 설명하면, 복합 이벤트 처리 시스템(100)은 측정기기가 보낸 내부온도에 대한 정보인지 필터링을 수행하고(Filter), 이를 각각 컨디션 1(Condition 1)과 컨디션 2(Condition 2)에 제공할 수 있다. 각 컨디션(Condition)들은 수신한 내부 온도 값이 해당 구간에 조건에 부합하는 지 판단하고, 그에 따라 각각 이벤트 처리 결과를 전달할 수 있다(Contents1, 2).In more detail, the complex event processing system 100 may filter whether information on the internal temperature sent by the measuring device is filtered, and may provide it to Condition 1 and Condition 2, respectively. . Each condition may determine whether the received internal temperature value satisfies a condition in the corresponding section, and may transmit the event processing result accordingly (Contents 1 and 2).

도 11에 도시된 종래 기술의 경우, 2개의 이벤트를 별도로 정의하여 처리함을 알 수 있다. 즉, 종래 기술에서는 동일한 내용에 대하여 구간 레벨 조건만 서로 상이한 2개의 이벤트를 각각 정의하고 이들을 각각 판단하여야만 하는 것을 알 수 있다. 이러한 종래기술은 이벤트의 개수가 많아져야 하고, 따라서 정의 단계가 많아져 성능이 저하되는 문제점이 있다.In the case of the prior art shown in FIG. 11, it can be seen that two events are separately defined and processed. That is, in the prior art, it is understood that two events different only in the section level condition with respect to the same contents are defined and judged respectively. This conventional technique has a problem in that the number of events must be increased, and therefore, the number of definition steps increases and the performance deteriorates.

상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 출원의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 출원을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made to the present invention without departing from the spirit and scope of the present invention as set forth in the following claims It can be understood that

Claims (18)

입력 데이터에 대하여 이벤트 처리를 수행하는 이벤트 처리 엔진에 있어서,
상기 이벤트에 대하여 적어도 하나의 이벤트 오브젝트 및 컨텐츠에 대한 순차적 구조이고, 상기 적어도 하나의 이벤트 오브젝트는 해당 이벤트에 상응하는 소스 데이터인지 여부를 판단하는 필터 오브젝트를 상기 순차적 구조의 루트로서 포함하고 상기 컨텐츠는 상기 순차적 구조의 말단으로 포함되는 추상 이벤트 정의를 생성하는 이벤트 정의 모듈; 및
상기 입력 데이터에 대하여 상기 추상 이벤트 정의에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 추상 이벤트 정의의 순차적 구조에 따라 순차적으로 처리하며, 상기 처리한 결과 상기 추상 이벤트 정의 구조를 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 하는 이벤트 프로세스 엔진을 포함하는 이벤트 처리 엔진.
An event processing engine for performing event processing on input data,
The event is a sequential structure for at least one event object and content, and the at least one event object includes a filter object for determining whether the source data corresponding to the event is the root of the sequential structure, and the content is An event definition module for generating an abstract event definition included at the end of the sequential structure; And
And if the input data is data corresponding to the abstract event definition, processing the input data sequentially according to the sequential structure of the abstract event definition, if the input data satisfies the abstract event definition structure as a result of the processing And an event processing engine for processing the contents of the abstract event according to the content of the abstract event.
제1항에 있어서, 상기 순차적 구조는
비순환 방향성 그래프 구조 또는 종료 조건을 포함하는 순환 방향성 그래프 구조로서 정의되는 것을 특징으로 하는 이벤트 처리 엔진.
The method of claim 1, wherein the sequential structure
A circular directional graph structure or a circular directional graph structure including an end condition.
제2항에 있어서, 상기 적어도 하나의 이벤트 오브젝트는
상기 순차적 구조에서 분기점을 정의하여 상기 추상 이벤트 정의가 복수의 컨텐츠를 포함하도록 하는 컨디션 오브젝트를 포함하는 것을 특징으로 하는 이벤트 처리 엔진.
The method of claim 2, wherein the at least one event object
And a condition object for defining a branch point in the sequential structure so that the abstract event definition includes a plurality of contents.
제2항에 있어서, 상기 적어도 하나의 이벤트 오브젝트는
상기 필터 오브젝트의 인스턴스로서 상기 필터링된 데이터를 메모리에 저장하고 조회하며, 다른 이벤트 오브젝트가 상기 저장된 필터 오브젝트의 인스턴스를 직접적으로 조회할 수 있도록 하는 필터 스트림 뷰 오브젝트를 포함하는 것을 특징으로 하는 이벤트 처리 엔진.
The method of claim 2, wherein the at least one event object
An event processing engine comprising: a filter stream view object for storing and querying the filtered data in memory as an instance of the filter object, and allowing other event objects to directly query the instance of the stored filter object; .
제2항에 있어서, 상기 적어도 하나의 이벤트 오브젝트는
상기 순차적 구조에서 상기 생성된 데이터에 대하여 미리 정의된 특정 함수를 수행하여 특정 결과를 생성하고, 상기 생성된 특정 결과가 특정 조건을 만족시키는지 여부를 검토하는 컨디션 함수 오브젝트를 포함하는 것을 특징으로 하는 이벤트 처리 엔진.
The method of claim 2, wherein the at least one event object
And a condition function object for performing a predetermined function defined on the generated data in the sequential structure to generate a specific result and examining whether or not the generated specific result satisfies a specific condition Event processing engine.
제2항에 있어서, 상기 적어도 하나의 이벤트 오브젝트는
상기 순차적 구조에서 외부의 데이터베이스를 참조하여 검색 결과를 가져오는 데이터베이스 참조 오브젝트를 포함하는 것을 특징으로 하는 이벤트 처리 엔진.
The method of claim 2, wherein the at least one event object
And a database reference object for referring to an external database in the sequential structure to obtain a search result.
제4항에 있어서, 상기 이벤트 처리 엔진은
상기 필터 오브젝트에 대하여 상기 필터 스트림 뷰 오브젝트에 해당하는 데이터가 요구되면 해당 데이터를 세팅하는 전처리 엔진을 더 포함하는 것을 특징으로 하는 이벤트 처리 엔진.
5. The method of claim 4, wherein the event processing engine
Further comprising a preprocessing engine for setting the corresponding data to the filter object when data corresponding to the filter stream view object is requested.
적어도 하나의 이벤트 오브젝트 및 컨텐츠에 대한 순차적 구조로서, 상기 적어도 하나의 이벤트 오브젝트는 해당 이벤트에 상응하는 소스 데이터인지 여부를 판단하는 필터 오브젝트를 상기 순차적 구조의 루트로서 포함하고, 상기 컨텐츠는 상기 순차적 구조의 말단으로 포함되는 이벤트 정의 구조.
A sequential structure for at least one event object and content, wherein the at least one event object includes a filter object that determines whether source data corresponding to the event is the root of the sequential structure, and the content is the sequential structure Event definition structure included at the end of.
제8항에 있어서, 상기 이벤트 정의 구조는
특정 조건 판단을 위한 컨디션 오브젝트를 더 포함하고, 상기 컨디션 오브젝트는 상기 조건 판단에 따라 상기 순차적 구조의 분기점을 형성하는 것을 특징으로 하는 이벤트 정의 구조.
9. The method of claim 8, wherein the event definition structure
And a condition object for determining a specific condition, wherein the condition object forms a branch point of the sequential structure according to the condition determination.
제9항에 있어서, 상기 이벤트 정의 구조는
상기 분기점에 따라 분기된 각각에 대하여 서로 상이한 컨텐츠를 포함하는 것을 특징으로 하는 이벤트 정의 구조.
10. The method of claim 9, wherein the event definition structure
And different contents for each branched according to the branch point.
정의된 이벤트 정의 구조를 이용하여 소스 데이터에 대한 이벤트 처리를 수행하는 이벤트 처리 시스템에 있어서,
상기 이벤트 정의 구조는 적어도 하나의 이벤트 오브젝트 및 컨텐츠에 대한 순차적 구조로서, 상기 적어도 하나의 이벤트 오브젝트는 해당 이벤트에 상응하는 소스 데이터인지 여부를 판단하는 필터 오브젝트를 상기 순차적 구조의 루트로서 포함하고, 상기 컨텐츠는 상기 순차적 구조의 말단으로 포함되고,
상기 소스 데이터에 대하여 상기 이벤트 정의 구조와 상응하는 데이터인지 매핑하는 이벤트 센서부; 및
상기 이벤트 센서부에서 제공된 입력 데이터가 상기 이벤트 정의 구조에 해당하는 데이터이면, 상기 입력 데이터를 상기 이벤트 정의 구조에 따라 순차적으로 처리하는 이벤트 처리 엔진을 포함하는 이벤트 처리 시스템.
In the event processing system that performs event processing on the source data using the defined event definition structure,
The event definition structure is a sequential structure for at least one event object and content, and the at least one event object includes a filter object for determining whether source data corresponding to the corresponding event is a root of the sequential structure. Content is included at the end of the sequential structure,
An event sensor for mapping the source data to data corresponding to the event definition structure; And
And an event processing engine that sequentially processes the input data according to the event definition structure when the input data provided by the event sensor unit corresponds to the event definition structure.
제11항에 있어서, 상기 순차적 구조는
비순환 방향성 그래프 구조 또는 종료 조건을 포함하는 순환 방향성 그래프 구조로서 정의되는 것을 특징으로 하는 이벤트 처리 시스템.
12. The method of claim 11, wherein the sequential structure
And a circular directional graph structure including an acyclic directional graph structure or an end condition.
제11항에 있어서, 상기 이벤트 처리 시스템은
상기 이벤트 처리 엔진에서 구성된 이벤트 처리 결과를 상기 이벤트 정의 구조에 따라 전달하는 이벤트 액션부를 더 포함하는 것을 특징으로 하는 이벤트 처리 시스템.
The system of claim 11, wherein the event processing system is
And an event action unit configured to deliver an event processing result configured in the event processing engine according to the event definition structure.
제11항에 있어서, 상기 이벤트 처리 엔진은
상기 이벤트 정의 구조에 따라 추상 이벤트 정의를 생성하는 이벤트 정의 모듈; 및
상기 입력 데이터에 대하여 상기 이벤트 정의 구조에 해당하는 데이터인지 필터링하고, 만일 해당하면 상기 입력 데이터를 상기 이벤트 정의 구조에 따라 순차적으로 처리하며, 상기 순차적인 처리를 모두 만족하면 해당 추상 이벤트의 컨텐츠에 따라 처리하도록 하는 이벤트 프로세스 엔진을 포함하는 것을 특징으로 하는 이벤트 처리 시스템.
The method of claim 11, wherein the event processing engine
An event definition module for generating an abstract event definition according to the event definition structure; And
The input data is processed according to the event definition structure, and if it is determined that the input data corresponds to the event definition structure, the input data is sequentially processed according to the event definition structure. If all the sequential processes are satisfied, The event processing system comprising:
(a) 수신된 소스 데이터와 기 정의된 이벤트 구조를 매핑하는 단계;
(b) 상기 이벤트 정의 구조의 구성요소들에 대한 처리 순서를 구성하여 처리 프로세스를 생성하는 단계;
(c) 상기 수신된 소스 데이터에 대하여 필터링하여 이벤트 처리를 시작하는 단계;
(d) 상기 생성된 프로세스에 따라 해당 이벤트 오프젝트 프로세서에 작업을 할당하는 단계 및
(e) 상기 할당된 작업이 성공적으로 이루어지면, 상기 이벤트 정의 구조에 포함된 컨텐츠에 따라 전달 내용을 구성하는 단계를 포함하는 이벤트 처리 방법.
(a) mapping the received source data with a predefined event structure;
(b) creating a processing process by constructing a processing order for the components of the event definition structure;
(c) filtering the received source data to start event processing;
(d) assigning a job to the corresponding event object processor according to the generated process; and
(e) if the assigned task is successful, constructing delivery content according to content included in the event definition structure.
제15항에 있어서, 상기 이벤트 처리 방법은
상기 소스 데이터에 대하여 필터 인스턴스에 대한 필터 스트림 뷰에 해당하는 데이터가 요구되면, 해당 데이터를 세팅하는 전처리 단계를 더 포함하는 것을 특징으로 하는 이벤트 처리 방법.
The method of claim 15, wherein the event processing method is
And when data corresponding to the filter stream view for the filter instance is requested for the source data, setting the corresponding data.
제15항에 있어서, 상기 (c) 단계는
이벤트 인스턴스의 데이터 셋으로서, 이벤트에 포함된 이벤트 오브젝트(EventObject)에서 사용되는 입출력 데이터 정보를 포함하는 이벤트 컨택스트를 생성하는 단계를 포함하는 것을 특징으로 하는 이벤트 처리 방법.
The method of claim 15, wherein step (c)
A data set of an event instance, comprising: generating an event context including input / output data information used in an event object included in the event.
제15항에 있어서, 상기 (e) 단계는
상기 이벤트 처리 과정 중 발생하는 중간 연산 결과를 포함하여 상기 전달 내용을 구성하는 단계를 포함하는 것을 특징으로 하는 이벤트 처리 방법.
The method of claim 15, wherein step (e)
And configuring the delivery contents including an intermediate operation result generated during the event processing process.
KR1020110097550A 2011-09-27 2011-09-27 Event processing method using hierarchical structure and event processing engine and system thereof KR101411266B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110097550A KR101411266B1 (en) 2011-09-27 2011-09-27 Event processing method using hierarchical structure and event processing engine and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110097550A KR101411266B1 (en) 2011-09-27 2011-09-27 Event processing method using hierarchical structure and event processing engine and system thereof

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020130103459A Division KR101461821B1 (en) 2013-08-29 2013-08-29 Event processing method using hierarchical structure and system performing the same

Publications (2)

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

Family

ID=48436030

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110097550A KR101411266B1 (en) 2011-09-27 2011-09-27 Event processing method using hierarchical structure and event processing engine and system thereof

Country Status (1)

Country Link
KR (1) KR101411266B1 (en)

Cited By (1)

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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675163B1 (en) * 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3082315A1 (en) * 2015-04-18 2016-10-19 Urban Software Institute GmbH Computer system and method for message routing
US10270647B2 (en) 2015-04-18 2019-04-23 Urban Software Institute GmbH Computer system and method for message routing
US11108625B2 (en) 2015-04-18 2021-08-31 Urban Software Institute GmbH Computer system and method for message routing

Also Published As

Publication number Publication date
KR101411266B1 (en) 2014-06-25

Similar Documents

Publication Publication Date Title
WO2019195121A1 (en) Digital worker management system
CN102043682B (en) Workflow exception handing method and system
EP3567496B1 (en) Systems and methods for indexing and searching
US20140067804A1 (en) Workflow generation server and method of generating workflow
CN104778032A (en) Method and equipment used for carrying out continuous integration
CN107276851B (en) Node abnormity detection method and device, network node and console
US9015731B2 (en) Event handling system and method
CN113242157B (en) Centralized data quality monitoring method under distributed processing environment
CN105989163A (en) Data real-time processing method and system
CN110609740A (en) Method and device for determining dependency relationship between tasks
CN103200027A (en) Method, device and system for locating network failure
KR20150118963A (en) Queue monitoring and visualization
CN111680104A (en) Data synchronization method and device, computer equipment and readable storage medium
CN112148779A (en) Method, device and storage medium for determining service index
CN112559525B (en) Data checking system, method, device and server
CN108153654A (en) A kind of log collecting method and device
US20130346908A1 (en) Late instantiation of dependent objects
CN112015995A (en) Data analysis method, device, equipment and storage medium
KR101411266B1 (en) Event processing method using hierarchical structure and event processing engine and system thereof
CN116645082A (en) System inspection method, device, equipment and storage medium
CN113641628B (en) Data quality detection method, device, equipment and storage medium
KR101461821B1 (en) Event processing method using hierarchical structure and system performing the same
CN115658478A (en) Test case screening method and device, electronic equipment and storage medium
US9098613B2 (en) Logging of application messages
CN105786865B (en) Fault analysis method and device for retrieval system

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