KR20150077474A - 룰 분배 서버, 이벤트 처리 시스템, 방법 및 프로그램 - Google Patents

룰 분배 서버, 이벤트 처리 시스템, 방법 및 프로그램 Download PDF

Info

Publication number
KR20150077474A
KR20150077474A KR1020157013466A KR20157013466A KR20150077474A KR 20150077474 A KR20150077474 A KR 20150077474A KR 1020157013466 A KR1020157013466 A KR 1020157013466A KR 20157013466 A KR20157013466 A KR 20157013466A KR 20150077474 A KR20150077474 A KR 20150077474A
Authority
KR
South Korea
Prior art keywords
rule
event
processing server
application
processing
Prior art date
Application number
KR1020157013466A
Other languages
English (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 닛본 덴끼 가부시끼가이샤
Publication of KR20150077474A publication Critical patent/KR20150077474A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)
  • Computer Hardware Design (AREA)

Abstract

룰 분배 서버는, 이벤트 조건에 기초하여, 해당 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하고, 애플리케이션 룰로 지정되는 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 해당 룰을 해당 프론트엔드 네트워크의 처리 서버로 등록하고, 해당 이벤트가 발생하지 않을 경우, 해당 룰을 백엔드 처리 서버로 등록하는 것으로 결정하고, 백엔드 처리 서버에 등록하는 룰에 대해서, 이벤트 조건마다 해당 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 처리 서버를 등록처로 하여, 이벤트 조건에 합치하는 이벤트를 백엔드 처리 서버에 전송하는 룰을 생성하고, 애플리케이션 룰과 전송 룰을 처리 서버에 등록한다.

Description

룰 분배 서버, 이벤트 처리 시스템, 방법 및 프로그램{RULE DISTRIBUTION SERVER, AS WELL AS EVENT PROCESSING SYSTEM, METHOD, AND PROGRAM}
본 발명은 다수의 디바이스로부터 발생하는 대량의 데이터(이벤트)를 처리하는 이벤트 처리 시스템에 관한 것이다.
애플리케이션 서버로부터 등록된 이벤트의 처리 조건(처리 룰)에 따라서 이벤트를 처리하는 이벤트 처리 시스템이 고안되었다. 예를 들어, 특허문헌 1의 이벤트 처리 시스템은, 처리 룰에 기초하여 이벤트를 처리하기 위해서, 로컬 시스템에 전송해야 할 이벤트의 조건(외부 디스패치 룰)을 모든 디스패처에 등록한다. 이에 의해, 어떤 이벤트가 어느 이벤트 발생원으로 발생해도, 그 이벤트를 처리 대상으로 하는 로컬 시스템에, 외부 디스패처를 개재해서 이벤트가 전송된다.
국제 특허 공개 제2010/107107호
그러나, 특허문헌 1의 시스템에서는, 이벤트 발생원의 수가 방대해지고, 이벤트 발생원으로부터 발생하는 이벤트의 수가 많아지면, 외부 디스패처와 로컬 시스템의 사이의 네트워크를 흐르는 데이터량이 많아진다. 이에 의해, 흐르는 데이터량이 네트워크의 수용 능력을 초과하여, 로컬 시스템에 전송되어야 할 이벤트를 모두 송신하기 어려워질 것이다.
본 발명은 상기 문제점을 감안하여 이루어진 것이며, 각 이벤트 발생원으로부터 발생하는 이벤트의 수가 많아져도, 네트워크를 흐르는 데이터량의 증대를 억제할 수 있는 룰 분배 서버, 이벤트 처리 시스템, 방법 및 프로그램을 제공하는 것을 목적으로 한다.
본 발명은, 애플리케이션 서버부터의 이벤트 처리에 관한 룰의 등록 시에, 이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속된 프론트엔드 처리 서버 및 백엔드 네트워크에 접속된 백엔드 처리 서버에 룰을 배치하는 룰 분배 서버로서, 이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 이벤트 발생원 네트워크 해결부와, 애플리케이션으로부터 등록된 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰을 상기 프론트엔드 네트워크에 접속되는 처리 서버에 등록하고, 상기 이벤트가 발생하지 않을 경우, 상기 애플리케이션 룰을 상기 백엔드 처리 서버에 등록하는 애플리케이션 룰 배치처 결정부와, 상기 백엔드 처리 서버에 등록되는 것으로 결정된 애플리케이션 룰에 대해서, 상기 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 처리 서버를 등록처로 하여, 상기 이벤트 조건에 합치하는 이벤트를 백엔드 처리 서버에 전송하는 처리 룰을 생성하는 룰 생성부와, 애플리케이션 룰과, 상기 룰 생성부에서 생성된 전송 룰을 각각 대응하는 처리 서버에 등록하는 룰 등록부를 포함하는 룰 분배 서버를 제공한다.
본 발명은, 이벤트 처리 시스템으로서, 이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속되는 프론트엔드 처리 서버와, 각 프론트엔드 네트워크의 처리 서버로부터 수집된 이벤트를 처리하는 백엔드 처리 서버와, 애플리케이션으로부터 등록되는 애플리케이션 룰로부터 각 처리 서버에 생성하고, 상기 애플리케이션 룰과 생성된 상기 전송 룰을 상기 처리 서버에 배치하는 룰 분배 서버를 포함하고, 상기 룰 분배 서버는, 이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 이벤트 발생원 네트워크 해결부와, 상기 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰을 상기 프론트엔드 네트워크에 등록하고, 그렇지 않을 경우, 상기 애플리케이션 룰이 상기 백엔드 처리 서버에 등록되는 애플리케이션 룰 배치처 결정부와, 상기 백엔드 처리 서버에 등록되는 것으로 결정된 애플리케이션 룰에 대해서, 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 상기 프론트엔드 네트워크에 접속된 처리 서버 또는 서버들을 등록처 또는 등록처들로 하여, 상기 이벤트 조건에 합치하는 이벤트를 상기 백엔드 처리 서버에 전송하는 처리 룰을 생성하는 룰 생성부와, 상기 애플리케이션 룰과 상기 룰 생성부에서 생성된 상기 전송 룰을 상기 처리 서버에 등록하는 룰 등록부를 포함하는 이벤트 처리 시스템을 제공한다.
본 발명은, 애플리케이션 서버부터의 이벤트 처리에 관한 룰의 등록 시에, 이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속된 프론트엔드 처리 서버 및 백엔드 네트워크에 접속된 백엔드 처리 서버에 룰을 배치하는 룰 분배 방법으로서, 이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 스텝과, 애플리케이션으로부터 등록된 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰이 상기 프론트엔드 네트워크에 접속되는 처리 서버에 등록되고, 상기 이벤트가 발생하지 않을 경우, 상기 애플리케이션 룰이 상기 백엔드 처리 서버에 등록되는 것으로 결정하는 스텝과, 상기 백엔드 처리 서버에 등록하는 것으로 결정된 애플리케이션 룰에 대해서, 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 처리 서버를 등록처로 하여, 상기 이벤트 조건에 합치하는 이벤트를 상기 백엔드 처리 서버에 전송하는 처리 룰을 생성하는 스텝과, 생성된 상기 전송 룰을 대응하는 처리 서버에 각각 등록하는 스템을 포함하는 룰 분배 방법을 제공한다.
본 발명은, 이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속된 프론트엔드 처리 서버 및 백엔드 네트워크에 접속된 백엔드 처리 서버에 접속된 컴퓨터가, 이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 처리 스텝과, 애플리케이션으로부터 등록된 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 대하여 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰이 상기 프론트엔드 네트워크에 접속되는 처리 서버에 등록되고, 상기 이벤트가 발생하지 않을 경우, 상기 애플리케이션 룰이 상기 백엔드 처리 서버에 등록되는 것으로 결정하는 애플리케이션 룰 배치처 결정 처리 스텝과, 상기 백엔드 처리 서버에 등록되는 것으로 결정된 상기 애플리케이션 룰에 대해서, 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 처리 서버를 등록처로 하여, 상기 이벤트 조건에 합치하는 이벤트를 상기 백엔드 처리 서버에 전송하는 처리 룰을 생성하는 룰 생성 처리 스텝과, 생성된 상기 전송 룰을 대응하는 처리 서버에 각각 등록하는 룰 등록 처리 스텝을 실행하게 하는 프로그램을 제공한다.
본 발명에 따르면, 각 이벤트 발생원으로부터 발생하는 이벤트의 수가 많아져도, 네트워크를 흐르는 데이터량의 증대를 억제할 수 있다.
도 1은 본 발명의 제1 실시 형태에 관한 이벤트 처리 시스템의 구성을 예시하는 도면.
도 2는 제1 실시 형태에 관한 이벤트 처리 시스템에서의 처리의 흐름을 도시하는 도면.
도 3은 제1 실시 형태의 룰 분배 서버의 구성을 도시하는 도면.
도 4는 제1 실시 형태의 애플리케이션 룰 재배치처 결정부의 동작을 설명하기 위한 흐름도.
도 5는 제1 실시 형태의 룰 생성부의 동작을 설명하기 위한 흐름도.
도 6은 제1 실시 형태의 룰 등록부의 동작을 설명하기 위한 흐름도.
도 7은 제1 실시 형태에 관한 이벤트 처리 시스템의 동작을 구체예를 사용해서 설명하기 위한 도면.
도 8은 점포 A 재고 관리 서버로부터 발생하는 이벤트를 예시하는 도면.
도 9는 종업원 001 휴대 단말기로부터 발생하는 이벤트를 예시하는 도면.
도 10은 DC1 재고 관리 서버로부터 발생하는 이벤트를 예시하는 도면.
도 11은 룰을 예시하는 도면.
도 12는 룰을 예시하는 도면.
도 13은 이벤트 발생원 NW 해결표를 예시하는 도면.
도 14는 이벤트 조건-NWID 표를 예시하는 도면.
도 15는 룰 배치표를 예시하는 도면.
도 16은 이벤트 조건-NWID 표를 예시하는 도면.
도 17은 룰 배치표를 예시하는 도면.
도 18은 제2 실시 형태에서의 룰 분배 서버의 구성을 도시하는 도면.
도 19는 제1 실시 형태의 룰 생성부의 동작을 설명하기 위한 흐름도.
도 20은 제2 실시 형태의 룰 등록 판정부의 동작을 설명하기 위한 흐름도.
도 21은 제3 실시 형태에서의 룰 분배 서버의 구성을 도시하는 도면.
도 22는 제3 실시 형태에서의 이벤트 발생원 NW 검출부의 구성을 도시하는 도면.
도 23은 출현 횟수표를 예시하는 도면.
도 24는 이벤트 발생원 NW 해결표를 예시하는 도면.
도 25는 제3 실시 형태에서의 룰 분배 서버의 구성을 도시하는 도면.
도 26은 제4 실시 형태에서의 룰 생성부의 동작을 설명하기 위한 흐름도.
도 27은 제4 실시 형태에서의 룰 재배치부의 동작을 설명하기 위한 흐름도.
도 28은 제4 실시 형태에 관한 이벤트 처리 시스템의 동작을 구체예를 사용해서 설명하기 위한 도면.
도 29는 출현 횟수표를 예시하는 도면.
도 30은 룰 배치표를 예시하는 도면.
도 31은 이벤트 발생원 NW 해결표를 예시하는 도면.
이하, 바람직한 실시 형태에 대해서 첨부 도면을 참조하여 설명한다.
(제1 실시 형태)
본 발명의 제1 실시 형태에 관한 이벤트 처리 시스템의 구성을 도 1에 도시한다. 본 실시 형태에 관한 이벤트 처리 시스템은, 프론트엔드 처리 서버(front-end processing server)(10), 백엔드 처리 서버(back-end processing server)(20) 및 룰 분배 서버(30)를 포함하고, 이들 장치는 네트워크(NW)를 개재해서 접속된다. 각 처리 서버(프론트엔드 처리 서버(10) 및 백엔드 처리 서버(20))가 접속되고 있는 네트워크는 네트워크 ID(NWID)에 의해 식별할 수 있다.
각 프론트엔드 처리 서버(10)는 이벤트 발생원인 각 디바이스가 접속되는 네트워크(프론트엔드 NW)에 접속되는 처리 서버이다. 백엔드 처리 서버(20)는 각 프론트엔드 처리 서버(10)로부터 수집된 이벤트를 처리하는 처리 서버이다. 룰 분배 서버(30)는 네트워크를 통해서 접속되는 애플리케이션 서버의 애플리케이션에 의해 이벤트의 처리 룰(애플리케이션 룰)의 등록을 받는다. 룰 분배 서버(30)는, 애플리케이션으로부터 등록된 이벤트의 처리 룰(애플리케이션 룰)로부터, 각 처리 서버에 등록되는 처리 룰(전송 룰)을 생성하여, 해당 애플리케이션 룰과 생성된 전송 룰을 대응하는 각 처리 서버에 배치한다.
본 이벤트 처리 시스템에서는, 도 2에 도시한 바와 같이, 애플리케이션으로부터 애플리케이션 룰이 등록되면, 룰 분배 서버(30)가 각 프론트엔드 처리 서버(10)에 등록하는 전송 룰을 생성하여, 각 프론트엔드 처리 서버(10) 및 각 백엔드 처리 서버(20)에 애플리케이션 룰과 생성된 전송 룰을 등록한다.
룰 분배 서버(30)의 구성을 도 3에 도시한다. 룰 분배 서버(30)는 이벤트 발생원 NW 해결부(31)와, 애플리케이션 룰 배치처 결정부(32)와, 룰 생성부(33)와, 룰 등록부(34)를 포함한다.
이벤트 발생원 NW 해결부(31)는, 이벤트 조건으로부터, 해당 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출한다. 이러한 산출은, 예를 들어 이벤트 조건과, 해당 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 NW의 ID의 쌍이 저장된 이벤트 발생원 NW 해결표를 참조하여 행한다. 이벤트 발생원 NW 해결표는 룰 분배 서버(30)가 보유해도 되고, 네트워크에 접속된 다른 서버가 보유해도 된다. 애플리케이션 룰 배치처 결정부(32)는, 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 NW에서 발생하는지 여부를 판별한다. “발생하는” 것으로 판별되는 경우, 룰 재배치처 결정부(32)는 그 애플리케이션 룰을 그 프론트엔드 NW의 프론트엔드 처리 서버(10)에 등록하고, 그렇지 않을 경우, 해당 애플리케이션 룰을 백엔드 처리 서버(20)에 등록하는 것으로 결정한다. 룰 생성부(33)는, 백엔드 처리 서버(20)에 등록하는 것으로 결정한 룰에 대해서, 이벤트 조건마다 프론트엔드 처리 서버(10)가 등록처가 되도록 하는데, 이때에 프론트엔드 처리 서버(10)는 해당 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 NW에 접속된다. 또한, 룰 생성부(33)는 이벤트 조건에 합치하는 이벤트를 백엔드 처리 서버(20)에 전송하는 처리 룰을 생성한다. 룰 등록부(34)는, 애플리케이션 룰과, 룰 생성부(33)로 생성한 전송 룰을 대응하는 백엔드 처리 서버(20)와 프론트엔드 처리 서버(10)에 등록한다.
애플리케이션 룰 배치처 결정부(32)의 동작을 도 4를 참조하여 설명한다.
애플리케이션 룰 배치처 결정부(32)는, 애플리케이션 룰을 수신하면(S4-1), 이벤트 조건과 해당 이벤트 조건에 합치하는 이벤트가 발생하는 네트워크의 ID의 쌍을 보유하기 위한 빈 이벤트 조건-NWID 표를 생성한다(S4-2). 애플리케이션 룰 배치처 결정부(32)는 해당 애플리케이션 룰에 의해 지정되는 이벤트 조건 C마다 이벤트 발생원 NW 해결표를 참조하여, 이벤트 조건 C를 포함하고 있는 이벤트 조건을 검색한다(S4-3, 4-4). 그러한 이벤트 조건이 이벤트 발생원 NW 해결표에 있을 경우(S4-5), 애플리케이션 룰 배치처 결정부(32)는 검색한 이벤트 조건에 대응하는 프론트엔드 NWID를 이벤트 조건 C와 대응지어서 이벤트 조건-NWID 표에 추가한다(S4-6). 그러한 이벤트 조건이 없을 경우, 애플리케이션 룰 배치처 결정부(32)는 백엔드 처리 서버(20)가 접속되고 있는 백엔드 네트워크(백엔드 NW)의 ID(백엔드 NWID)를 이벤트 조건과 대응지어서 이벤트 조건-NWID 표에 추가한다(S4-7).
애플리케이션 룰 배치처 결정부(32)는, 모든 이벤트 조건에 대하여 상기 처리를 실시한 후, 룰과 해당 룰의 등록처의 네트워크의 ID의 쌍을 보유하기 위한 빈 룰 재배치표를 생성한다(S4-8). 이벤트 조건-NWID 표의 NWID가 모두 동일한 경우(S4-9), 애플리케이션 룰 재배치처 결정부(32)는 해당 NWID를 해당 애플리케이션 룰의 등록처로서 해당 룰 재배치표에 추가한다(S4-10). 그 이외의 경우, 백엔드 NWID를 해당 애플리케이션 룰의 등록처로서 해당 룰 배치표에 추가한다(S4-11).
이어서, 룰 생성부(33)의 동작을 도 5의 흐름도를 참조하여 설명한다.
룰 생성부(33)는, 애플리케이션 룰 배치처 결정부(32)로 생성한 이벤트 조건-NWID 표의 NWID가 모두 같지 않을 경우(S5-1), 각 이벤트 조건에 대하여, 그 이벤트 조건에 합치하는 이벤트를 백엔드 NW에 접속되는 처리 서버에 전송하는 전송 룰을 생성한다(S5-2). 이어서, 룰 생성부(33)는 각 이벤트 조건에 대응해서 생성한 전송 룰과 그 이벤트 조건에 대응하는 NWID의 쌍을 룰 재배치표에 추가한다(S5-3).
이어서, 룰 등록부(34)의 동작을 도 6의 흐름도를 참조하여 설명한다.
룰 등록부(34)는 룰 배치표의 각 룰을 그것에 대응하는 NWID에 의해 특정되는 네트워크에 배치되는 서버에 등록한다(S6-1). 룰 등록부(34)는, 예를 들어 백엔드 NWID와 그 백엔드 NW에 배치되어 있는 처리 서버의 ID를 대응짓는 표(도시하지 않음)을 보유해 두고, 그 표를 참조함으로써 NWID로부터 처리 서버의 어드레스를 해결한다.
이하, 룰을 삭제할 경우의 처리에 대해서 설명한다. 예를 들어 룰 생성부(33)는, 룰 등록 시에 생성한 룰 배치표를 보유부(도시하지 않음)에 보유한다. 룰의 삭제 요구가 있을 경우, 룰 등록부(34)는 애플리케이션으로부터 지정된 룰 ID의 룰이 기술되는 룰 배치표를 특정하여, 해당 룰 배치표에 기술되는 각 룰을 해당 룰을 보유하고 있는 처리 서버로부터 삭제한다.
이어서, 제1 실시 형태에 관한 이벤트 처리 시스템의 동작을 구체예를 사용해서 설명한다. 이 예에서는, 도 7에 도시한 바와 같이, 프론트엔드 NW “점포 A-NW"에, 프론트엔드 처리 서버(10) ”점포 A 처리 서버"와, 디바이스 “점포 A 재고 관리 서버" 및 “종업원 001 휴대 단말기"가 접속된다. 또한, 프론트엔드 NW "DC1-NW(DC: 분배 거점(Distribution Center))”에 프론트엔드 처리 서버(10) "DC1 처리 서버"가 접속되고, 디바이스로서 "DC1 재고 관리 서버"가 접속된다. 백엔드 네트워크에는, 백엔드 처리 서버(20), 룰 분배 서버(30), 애플리케이션 서버가 접속된다.
점포 A 재고 관리 서버로부터 발생하는 이벤트의 예로서 이벤트 1과 이벤트 D2를 도 8에 나타낸다. 이벤트는 속성과 속성값의 쌍의 리스트에 의해 구성된다. 본 예에서는, 속성명 "이벤트 종류"는 이벤트가 어느 속성명으로부터 구성되는지를 특정하는 값으로 가정한다.
종업원 001 휴대 단말기로부터 발생하는 이벤트는 도 9에 나타내는 속성명에 의해 구성된다. 도 9에 나타내는 속성값은 예이다. DC1 재고 관리 서버로부터 발생하는 이벤트는, 도 10에 도시하는 속성명에 의해 구성된다. 도 10에 도시하는 속성값은 예이다.
룰은, 그 룰의 ID(룰 ID)와, 처리 대상의 이벤트의 조건(복합 이벤트 조건)과, 복합 이벤트 조건에 합치하는 이벤트에 대한 처리 내용(액션)에 의해 구성된다. 도 11에 예시하는 룰의 복합 이벤트 조건은, 이벤트 조건 11에 합치하는 이벤트와, 이벤트 조건 12에 합치하는 이벤트가 1분 이내에 발생하는 것을 나타낸다. 여기에서는, 1분 이내에 발생하는 이벤트를 처리 대상으로 하는 것을 “within”으로 표기한다. 그러한 조건에 합치하는 이벤트를 검출하면 액션을 실행한다.
이벤트 조건은, 0 이상의 속성명과, 각 속성명에 대한 속성값 조건에 의해 구성된다. 이벤트를 구성하는 각 속성값이 대응하는 속성값 조건에 합치할 경우, 해당 이벤트는 이벤트 조건에 합치한다. 도 11의 이벤트 조건 11에 대하여는, 이벤트 종류가 “점포 재고 이벤트"이고, 거점명이 “점포 A"이며, 상품 종류가 "LLL"이며, 갱신 시각은 임의이며, 매장에 디스플레이된 상품수가 1 이하이고, 백야드(backyard) 상품수가 0이상인 이벤트가 조건 11에 합치한다. 따라서, 도 8의 이벤트 D1은 이벤트 조건 11에 합치한다.
애플리케이션으로부터 도 11에 도시하는 애플리케이션 룰이 등록되었을 경우의 이벤트 처리 시스템의 동작을 설명한다. 애플리케이션 룰은 먼저 애플리케이션 룰 배치처 결정부(32)에 입력된다. 예를 들어, 도 13에 나타내는 이벤트 발생원 NW 표가 룰 분배 서버(30) 또는 다른 서버에 의해 보유되어 있는 것으로 가정한다. 이벤트 조건 11은 이벤트 발생원 NW 해결표의 제1 행의 이벤트 조건에 포함되고, 이벤트 조건 12는 제3 행의 이벤트 조건에 포함되기 때문에, 도 14에 도시하는 이벤트 조건-NWID 표가 생성된다. 이어서, 룰 생성부(33)는, 도 14에 도시하는 이벤트 조건-NWID 표의 모든 NWID가 같은 프론트엔드 NW의 ID이기 때문에, 도 15에 도시하는 룰 배치표를 생성한다.
마지막으로, 룰 등록부(34)는, 도 15에 도시하는 룰 재배치표를 사용함으로써, 룰 1을 점포 A-NW에 배치되는 처리 서버에 등록한다.
이어서, 룰 1이 등록된 후에 이벤트가 발생한 경우의 처리의 흐름을 설명한다.
먼저, 어떤 날의 12시 30분 00초에, 종업원 001 휴대 단말기가 도 9에 나타내는 종업원 위치 이벤트를 생성하고, 그 이벤트를 점포 A 처리 서버에 송신하는 것으로 가정한다. 해당 이벤트를 수신한 점포 A 처리 서버는, 수신한 이벤트가 룰 1을 구성하는 이벤트 조건 12에 합치한다고 판정한다.
그 후, 점포 A 재고 관리 서버가 도 8에 나타내는 점포 재고 이벤트 D1을 생성하고, 그 이벤트를 점포 A 처리 서버에 송신하는 것으로 가정한다. 해당 이벤트를 수신한 점포 A 처리 서버는, 수신한 이벤트가 룰 1을 구성하는 이벤트 조건 12에 합치한다고 판정함과 함께, 1분 이내에 이벤트 조건 12에 합치하는 종업원 위치 이벤트가 발생하기 때문에, 복합 이벤트 조건에 합치한다고 판정한다. 점포 A 처리 서버는, 이벤트가 룰 1의 복합 이벤트 조건에 합치한다고 판정하면, 이어서, 룰 1의 액션을 실행한다. 룰 1의 액션에서는, 종업원 ID “011”의 종업원의 휴대 단말기에 보충 지시 메시지를 송신한다.
이어서, 애플리케이션으로부터 도 12에 나타내는 애플리케이션 룰이 등록되었을 경우의 이벤트 처리 시스템의 동작을 설명한다. 애플리케이션 룰은 먼저 애플리케이션 룰 배치처 결정부(32)에 입력된다. 예를 들어, 도 13에 나타내는 이벤트 발생원 NW 해결표가 룰 분배 서버(30) 또는 다른 서버에 의해 보유되어 있는 것으로 가정하면, 이벤트 조건 21은 이벤트 발생원 NW 해결표의 제1 행의 이벤트 조건에 포함되고, 이벤트 조건 22는 제2 행의 이벤트 조건에 포함된다. 따라서, 도 16에 나타내는 이벤트 조건-NWID 표가 생성된다.
이어서, 룰 생성부(33)는, 도 16에 나타내는 이벤트 조건-NWID 표의 NWID가 같은 프론트엔드 NW의 ID가 아니므로, 도 17에 나타내는 룰 해결표를 생성한다.
마지막으로, 룰 등록부(34)는, 도 17에 나타내는 룰 배치표의 각 룰을, 거기에 대응하는 NWID에 배치되는 처리 서버에 등록한다.
이어서, 룰 2가 등록된 후에 이벤트가 발생한 경우의 처리의 흐름을 설명한다.
먼저, 어느 날의 16시 25분 00초에 DC1 재고 관리 서버가 도 10에 도시하는 DC 재고 이벤트를 생성하여, 그 이벤트를 DC1 처리 서버에 송신하는 것으로 가정한다. 해당 이벤트를 수신한 DC1 처리 서버는, 수신한 이벤트가 룰 2-2의 복합 이벤트 조건에 합치한다고 판정하고, 수신한 이벤트를 백엔드 처리 서버에 통지한다. 해당 이벤트를 수신한 백엔드 처리 서버는 그것이 룰 2를 구성하는 이벤트 조건 22에 합치한다고 판정한다.
그 후, 동일 일자의 16시 30분 00초에 점포 A 재고 관리 서버가 도 8에 나타내는 점포 재고 이벤트 D2를 생성하여, 그 이벤트를 점포 A 처리 서버에 송신하는 것으로 가정한다. 그러면, 해당 이벤트를 수신한 점포 A 처리 서버는, 수신한 이벤트가 룰 2-1의 복합 이벤트 조건에 합치한다고 판정하고, 수신한 이벤트를 백엔드 처리 서버에 통지한다. 해당 이벤트를 수신한 백엔드 처리 서버는, 룰 2를 구성하는 이벤트 조건 21에 합치한다고 판정함과 함께, 10분 이내에 이벤트 조건 22에 합치하는 DC 재고 이벤트가 발생하기 때문에, 룰 2의 복합 이벤트 조건에 합치한다고 판정한다. 백엔드 처리 서버는, 이벤트가 룰 2의 복합 이벤트 조건에 합치한다고 판정한 후에, 백엔드 처리 서버는 NW-DC1의 DC1 재고 관리 서버에 재배송 의뢰 메시지를 송신한다.
이상 설명한 바와 같이 본 실시 형태에 따르면, 애플리케이션 룰에 기초한 처리를 백엔드 처리 서버가 아니고, 프론트엔드 처리 서버에 의해서 행함으로써, 프론트엔드 NW로부터 백엔드 NW로 흐르는 이벤트의 수를 저감할 수 있다. 예를 들어, 도 11에 도시하는 애플리케이션 룰 1은 점포 A-NW에 등록되기 때문에, 룰 1을 실행하기 위해서 감시해야 할 이벤트가 백엔드 NW에 통지될 가능성은 없다. 따라서, 프론트엔드 NW로부터 백엔드 NW로 흐르는 이벤트의 수를 저감할 수 있다.
(제2 실시 형태)
제2 실시 형태에서는, 백엔드 처리 서버(20)의 성능보다 프론트엔드 처리 서버(10)의 성능이 낮은 경우, 특히 메모리 용량이 적은 경우에 적합한 이벤트 처리 시스템에 대해서 설명한다.
제2 실시 형태에 관한 이벤트 처리 시스템의 구성은, 룰 분배 서버(30)가 룰 등록 판정부(35)를 더 포함하는 점 이외에는 제1 실시 형태와 거의 동일하다. 본 실시 형태에서의 룰 분배 서버(30)의 구성을 도 18에 나타낸다. 룰 등록 판정부(35)는, 애플리케이션 룰을 프론트엔드 처리 서버에 등록가능한지 여부를 판정한다.
제2 실시 형태에 관한 이벤트 처리 시스템의 동작에 대해서 제1 실시 형태와의 차이점을 중심으로 설명한다.
애플리케이션 룰의 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 NW에서 발생하는 경우에도, 룰 등록 판정부(35)가 해당 애플리케이션 룰의 프론트엔드 NW에의 등록이 불가하다고 판정하는 경우가 발생할 수 있다. 이것은, 룰 분배 서버(30)의 룰 생성부(33)가 해당 애플리케이션 룰을 백엔드 처리 서버에 등록하도록 룰 배치표를 생성하게 한다.
보다 구체적으로는, 제1 실시 형태에서는 도 5의 스텝 S5-1의 처리에서 "예"가 되면 처리를 종료하지만, 제2 실시 형태에서는, 도 19의 흐름도에 도시한 바와 같이, 스텝 S19-4를 실행한다. 스텝 S19-4에서는, 룰 등록 판정부(35)에 의해 산출된 등록 판정 결과에 의해 다음 처리를 결정한다. 프론트엔드 NW에 애플리케이션 룰을 등록가능하면, 처리를 종료하고, 그렇지 않으면 스텝 S19-2를 실행한다.
룰 등록 판정부(35)의 설명에 앞서, 타임 윈도우(time window)에 대해서 설명한다. 타임 윈도우란, 처리 대상의 이벤트에 대한 시간 제약을 나타낸다. 타임 윈도우가 1분이라면, 1분 이내에 발생하는 이벤트가 처리가 대상으로 된다. 타임 윈도우의 표기에 대해서, 예를 들어 타임 윈도우가 1분이라면 "within 1 min"이라고 표기한다.
타임 윈도우는, 슬라이딩 윈도우와 고정 윈도우의 2개의 윈도우 타입으로 분류된다. 슬라이딩 윈도우란, 이벤트를 수신한 시각으로부터 과거 within 시간 내에 발생한 이벤트에 대하여 처리를 실행하는 것과 같은 타임 윈도우이다(이벤트가 발생할 때마다 시간 폭이 슬라이딩하기 때문에, 그러한 윈도우는 슬라이딩이라고 한다). 고정 윈도우란, 고정된 기간(예를 들어, 2012년 3월 중)에 발생한 이벤트에 대하여 처리를 실행하는 것과 같은 타임 윈도우이다.
룰의 기술성에 따라, 윈도우가 슬라이딩 윈도우인지 고정 윈도우인지가 애매할 경우도 있다. 예를 들어, t1 시간마다 과거 t2 시간에 발생한 이벤트에 대하여 통계 처리를 하는 것 같은 조건 "aggregation within t2 every t1”은 복합 이벤트 조건으로 기술할 수 있는 것으로 가정한다. 이것은, 복수의 고정 윈도우가 있다고 간주하거나, 슬라이딩 윈도우로 간주할 수도 있다. 이 경우, 예를 들어 t2/t1이 미리 정해진 값 이상이라면, 그러한 윈도우 타입은 슬라이딩 윈도우로 간주하고, 그렇지 않으면, 그러한 윈도우 타입은 고정 윈도우로 간주할 수 있다.
도 20의 흐름도에 도시한 바와 같이, 룰 등록 판정부(35)는, 애플리케이션 룰을 수신하면(S20-1), 수신된 애플리케이션 룰이 프론트엔드 처리 서버(10)에 등록가능한지 여부를 판정한다. 룰 등록 판정부(35)는 수신한 애플리케이션 룰의 within의 값이 미리 부여되고 있는 within 허용값 이하인지 여부를 판정한다(S20-2). 그 값이 허용값 이하라면, 룰 등록 판정부(35)는 애플리케이션 룰을 등록가능으로 판정한다(S20-3). 그 값이 within 허용값 이하가 아닐 경우, 룰 등록 판정부(35)는 액션 타입이 액션 타입이 애그리게이션인지 여부를 검증한다(S20-4). 애그리게이션이란, 미리 정해진 이벤트 조건에 합치하는 이벤트의 발생 횟수의 카운트, 특정한 속성값의 합계 값의 산출, 및/또는 그 평균값의 산출 등의 통계 처리이다. 액션 타입이 애그리게이션일 경우, 또한 윈도우 타입이 고정 윈도우 타입일 경우(S20-5), 룰 등록 판정부(35)는 애플리케이션 룰을 등록가능으로 판정한다(S20-3). 액션 타입이 애그리게이션이 아닐 경우, 룰 등록 판정부(35)는 애플리케이션 룰을 등록 불가로 판정한다(S20-6). 액션 타입이 애그리게이션이고 (S20-4), 또한 윈도우 타입이 슬라이딩 윈도우 타입일 경우(S20-5), 룰 등록 판정부(35)는 애플리케이션 룰을 등록 불가로 판정한다(S20-6).
상기 등록의 가부를 판정하는 판정 프로세스에서, 애플리케이션 룰에 의해 지정되는 within의 값이 작은 경우에는 프론트엔드 처리 서버(10)에의 등록이 허가되는데, 이것은, within의 값이 작으면 해당 애플리케이션 룰에 대하여 보유하는 스테이트(state)의 사이즈가 작아지기 때문이다. 스테이트란, 애플리케이션 룰을 실행하는 데에 있어서 과거에 수신한 이벤트가 어떤 이벤트 조건에 합치하는지 여부에 관한 상태를 나타내는 정보이다. within이 커지면, 처리 대상인 이벤트의 수가 많아진다. 이에 의해, 스테이트의 사이즈도 커진다.
또한, 상기 설명에서는 애플리케이션 룰을 프론트엔드 처리 서버(10)에 등록가능한지 여부를, 해당 애플리케이션 룰에만 기초해서 결정하지만, 그러한 등록가능성은 이미 등록되어 있는 애플리케이션 룰과의 관계에 의해 결정해도 된다. 예를 들어, 애플리케이션 룰로부터 그 애플리케이션 룰의 처리 부하와 우선도를 산출하여, 등록할 애플리케이션 룰의 처리 부하의 합계 값이, 프론트엔드 처리 서버(10)의 허용 부하 이하로 되도록, 우선도가 높은 애플리케이션 룰을 선택해도 된다.
애플리케이션 룰의 처리 부하는 그 애플리케이션 룰에 의해 지정되는 이벤트 조건에 합치하는 이벤트의 발생 레이트에 의존한다. 따라서, 발생 레이트에 기초하여, 애플리케이션 룰에 대한 부하 값을 재계산해도 된다. 애플리케이션 룰의 부하 값의 합계 값이 프론트엔드 처리 서버(10)의 허용 부하를 초과하는 경우에는, 우선도가 낮은 애플리케이션 룰을 프론트엔드 처리 서버(10)로부터 백엔드 처리 서버(20)로 이동시켜도 된다.
이상 설명한 바와 같이 제2 실시 형태에 의하면, 프론트엔드 처리 서버(10)가 보틀넥(bottleneck)으로 동작하지 않도록 제어하면서, 프론트엔드 NW로부터 백엔드 NW로 흐르는 이벤트의 수를 저감할 수 있다. 그 이유는, 프론트엔드 처리 서버(10)의 성능이 낮은 경우에, 부하가 큰 처리 룰을 백엔드 처리 서버(20)에 배치하기 때문이다.
(제3 실시 형태)
제3 실시 형태에서는, 이벤트 발생원 NW 해결표를 생성하는 구성요소에 대해서 설명한다. 제3 실시 형태에 관한 이벤트 처리 시스템의 구성은, 룰 분배 서버(30)가 이벤트 발생원 NW 검출부(36)를 더 포함하는 점 이외에는, 제1 실시 형태와 거의 동일하다. 본 실시 형태에서의 룰 분배 서버(30)의 구성을 도 21에 나타낸다. 이벤트 발생원 NW 검출부(36)는, 백엔드 처리 서버(20)가 수신하는 이벤트로부터 이벤트 발생원 NW 해결표를 생성한다.
제3 실시 형태에 관한 이벤트 처리 시스템의 동작에 대해서 제1 실시 형태와의 차이점을 중심으로 설명한다.
룰 분배 서버(30)의 이벤트 발생원 NW 검출부(36)는, 백엔드 처리 서버(20)가 수신하는 이벤트의 정보를 수신하고, 어떤 이벤트 조건에 합치하는 이벤트가 어느 프론트엔드 NW에서 발생할지를 산출한다. 산출한 조건과 프론트엔드 NWID의 쌍을 이벤트 발생원 NW 해결표에 추가한다.
보다 구체적으로는, 도 22의 흐름도에 도시한 바와 같이, 이벤트 발생원 NW 검출부(36)가 이벤트를 수신하면, 이벤트 발생원 NW 검출부(36)는 이벤트를 구성하는 각 속성(속성명 attr 및 속성값 value의 쌍)에 대하여 이하의 처리를 실시한다. 단, 이벤트 종류는 이벤트가 어떤 속성명으로부터 이루어질지를 특정하기 위한 속성이기 때문에, 처리 대상의 속성으로부터 배제된다. 이어서, 수신한 이벤트의 이벤트 종류 type과 속성명 attr의 쌍에 대응하는 출현 횟수표를 취득한다. 출현 횟수표는, 도 23에 예시한 바와 같이, 각 속성값이 각 프론트엔드 NW에서 몇 번 발생했는지를 나타내는 표이다. 이어서, 출현 횟수표의 출현 횟수 [value] [nwid]를 1만큼 증가시킨다. 구체적으로, nwid는 해당 이벤트의 발생원인 NW의 ID이며, 출현 횟수 [value][nwid]는 출현 횟수표에서 value에 의해 특정되는 행과 nwid에 의해 특정되는 열에 의해 결정되는 값이다. 이어서, 출현 횟수 [value][nwid]가 미리 정해진 횟수 이상이고, 출현 횟수 [value][nwid 이외의 임의의 NWID]가 0인지의 여부를 판정한다. 그 경우, 이벤트 종류의 속성값 조건을 type으로 설정하고, 속성명 attr의 속성값 조건을 value로 설정하고, 그 밖의 속성값 조건을 *(임의의 값)로 설정하는 이벤트 조건을 생성하여, 해당 이벤트 조건과 nwid의 쌍을 이벤트 발생원 NW 해결표에 추가한다.
상기에서는 1개의 속성명에 대하여 1개의 출현 횟수표가 이용되지만, 2개 이상의 속성명의 조합에 대하여 1개의 출현 횟수표를 생성해도 된다. 이벤트를 구성하는 속성명의 집합에 대한 멱집합을 생성하여, 해당 멱집합의 요소마다 출현 횟수표를 생성해도 된다. 그 경우, 행을 특정하기 위한 값은 해당 멱집합의 요소인 속성값의 튜플(tuple)에 대응한다. 생성하는 이벤트 조건은, 해당 튜플을 구성하는 각 속성값을 가지는 대응하는 속성명에 대한 속성값 조건에 대응한다.
예를 들어 도 23에 나타내는 예에서, 이벤트 종류가 “종업원 위치"이고, 속성명이 “종업원 ID"인 출현 횟수표에 기초하여 이벤트 조건을 생성할지의 여부에 관한 역치가 5인 경우, 제1 행으로부터 도 24의 제1 행이 생성되고, 제2 행으로부터 도 24의 제2 행이 생성된다.
이상 설명한 바와 같이, 제3 실시 형태에서는, 이벤트 발생원 NW 해결표가 발생하는 이벤트로부터 자동으로 생성되기 때문에, 이벤트 발생원 NW 해결표를 수동으로 작성하는 수고를 경감할 수 있다.
(제4 실시 형태)
제4 실시 형태는 디바이스가 이동할 경우에 룰의 배치를 갱신하는 구성요소를 포함한다. 이하, 제4 실시 형태에 대해서 설명한다.
제4 실시 형태에 관한 이벤트 처리 시스템의 구성은, 룰 분배 서버(30)가 룰 재배치부를 더 포함하는 점 이외에는 제3 실시 형태와 거의 동일하다. 본 실시 형태에서의 룰 분배 서버(30)의 구성을 도 25에 나타낸다. 룰 재배치부는, 이벤트 발생원 NW 해결표의 변경을 기초로 룰의 재배치를 행한다.
제4 실시 형태에 관한 이벤트 처리 시스템의 동작에 대해서 제3 실시 형태와의 차이점을 중심으로 설명한다.
룰 분배 서버(30)의 룰 생성부(33)는, 애플리케이션 룰을 프론트엔드 처리 서버(10)에 등록할 때에, 해당 애플리케이션 룰의 처리에 필요한 이벤트를 해당 프론트엔드 처리 서버에 전송하는 전송 룰을, 해당 프론트엔드 처리 서버 이외의 프론트엔드 처리 서버에 등록하기 위해서 생성한다. 이에 의해, 해당 애플리케이션 룰의 처리에 필요한 이벤트가 어느 프론트엔드 NW에서 발생해도, 해당 이벤트는 해당 애플리케이션 룰이 등록되는 프론트엔드 처리 서버에 도달한다.
보다 구체적으로는, 도 26의 흐름도에 도시한 바와 같이, 스텝 S2-3(애플리케이션 룰과 프론트엔드 NWID의 쌍을 룰 재배치표에 추가한다) 후에, 스텝 S26-4(상기 이벤트의 처리에 필요한 처리 서버에 이벤트를 전송하기 위한 전송 룰을 생성한다), 스텝 S26-5 및 스텝 S26-6(생성한 전송 룰에 대하여, 전송 룰과 상기 프론트엔드 처리 서버 이외의 각 프론트엔드 처리 서버의 쌍을 룰 재배치표에 추가한다)을 실행한다.
룰 분배 서버(30)의 룰 재배치부(37)는, 도 27의 흐름도에 도시한 바와 같이, 이벤트 발생원 NW 해결표가 변경되면(S27-1), 백엔드 처리 서버(10)가 보유하는 애플리케이션 룰을 재배치 대상으로 한다. 이하에서, 재배치 대상인 룰을 보유하는 처리 서버를 타깃 처리 서버라고 칭한다(S27-2). 해당 변경이 기존의 이벤트 조건에 대응하는 이벤트 발생원 NWID의 변경일 경우(S27-3), 변경 전의 이벤트 발생원 NWID에 대응하는 처리 서버를 타깃 처리 서버로 한다(S27-4).
이벤트 발생원 NW 해결표의 변경은, 새로운 이벤트 조건이 추가된 것인지, 혹은 기존의 이벤트 조건에 대응하는 이벤트 발생원 NWID의 변경인지로 분류된다. 룰 재배치부(37)는 해당 변경이 어느 쪽의 변경인지를 판별하여, 새로운 이벤트가 추가된 것일 경우, 새롭게 추가된 이벤트 조건에 포함되는 이벤트 조건이 지정되는 애플리케이션 룰은 백엔드 처리 서버 이외에는 등록되지 않는다. 이러한 이유로, 백엔드 처리 서버에 등록되고 있는 애플리케이션 룰을 재배치의 후보로 결정한다. 한편, 해당 변경이 기존의 이벤트 조건에 대응하는 이벤트 발생원 NWID의 변경일 경우, 해당 이벤트 조건에 포함되는 이벤트 조건이 지정되는 애플리케이션 룰은 변경 전의 이벤트 발생원 NWID에 대응하는 프론트엔드 처리 서버 및 백엔드 처리 서버 중 어느 하나에 등록되어 있다. 이러한 이유로, 해당 프론트엔드 처리 서버와 백엔드 처리 서버에 등록되고 있는 애플리케이션 룰을 재배치의 후보로 결정한다(S27-4).
애플리케이션 룰 배치처 결정부(32)와 룰 생성부(33)는 타깃 처리 서버가 보유하는 애플리케이션 룰에 대하여 룰 재배치표를 생성한다(S27-5). 그러한 룰 재배치표가 발생원 NW 해결표 갱신 전의 것과 상이한 경우(S27-7), 룰 해결부(37)는 룰의 재배치를 행한다.
룰의 재배치에서는, 룰 재배치부(37)는, 먼저, 애플리케이션 룰에 대응하는 스테이트의 데이터를 취득한다(S27-8). 이어서, 룰 재배치부(37)는 해당 애플리케이션 룰과, 그것에 대응하는 스테이트와, 전송 룰을, 그들을 보유하고 있는 처리 서버로부터 삭제한다(S27-9). 그 후, 룰 재배치부(37)는 새롭게 생성한 룰 배치표의 각 룰을 대응하는 NW의 처리 서버에 배치한다(S27-10). 애플리케이션 룰을 배치할 때에는, 룰 재배치부(37)는 취득한 스테이트로 룰을 배치한다. 스테이트를 함께 배치함으로써, 처리 룰의 삭제 시점에서의 처리 상황을 이어받아서 이벤트 처리를 실행하기 때문에, 복합 이벤트 조건에 대한 이벤트의 불합치를 방지할 수 있다.
이벤트 발생원 검출부(36)는 출현 횟수표를 생성하지만, 그러한 횟수표는 과거의 소정 시간 내에 발생한 이벤트를 대상으로 해서 생성한다. 그 이유는, 디바이스가 이동할 경우, 이동 전의 이벤트 발생원 NW는 이벤트 발생원 NW 해결표의 생성에 대해 유효하지 않기 때문이다.
또한, 이벤트 발생원 NW 검출부(36)가 도 22의 스텝 S22-7에서 이벤트 조건과 NWID의 쌍을 추가할 때에, 추가하는 해당 이벤트 조건과 동일한 조건이 이미 이벤트 발생원 해결표에 등록되어 있는 경우에는, 이벤트 발생원 NW 검출부(36)는 그 행의 NWID를 새로운 NWID에 의해 덮어 쓴다.
이어서, 본 실시 형태에 관한 이벤트 처리 시스템의 동작을 구체예를 사용해서 설명한다. 예를 들어, 도 28에 도시한 바와 같이 종업원 001 휴대 단말기가 점포 A-NW로부터 점포 B-NW으로 이동한 것으로 가정한다. 이에 의해, 종업원 ID가 001인 이벤트가 점포 B-NW로부터 발생하여, 예를 들어 도 23에 도시된 것과 같은 값을 가지는 출현 횟수표가, 도 29에 도시된 것과 같은 값을 갖도록 변경된다. 그것에 수반하여, 발생원 NW 해결표에서는, 도 24의 제1 행에 나타난 값이 도 31에 나타난 값으로 변경된다. 이벤트 발생원 NW 해결표의 변경에 기초하여, 도 30에 도시한 바와 같은 룰 배치표가 생성되고, 각 처리 서버에 배치된다.
이상 설명한 바와 같이, 제4 실시 형태에 의하면, 프론트엔드 처리 서버에 애플리케이션 룰이 등록될 경우, 어느 프론트엔드 NW에서 이벤트가 발생하더라도, 해당 애플리케이션 룰의 처리에 필요한 이벤트가 백엔드 처리 서버에 흐르지 않을 것이다. 이러한 이유로, 디바이스가 접속하는 네트워크가 바뀐 경우에도, 프론트엔드 NW로부터 백엔드 NW로 흐르는 이벤트의 수를 감소시킨 상태를 유지할 수 있다. 또한, 디바이스가 접속하는 네트워크가 바뀐 경우에, 애플리케이션 룰을 재배치함으로써, 프론트엔드 NW 사이를 흐르는 이벤트의 수를 저감할 수 있다.
상술한 본 발명의 실시 형태에 관한 통신 룰 분배 서버, 프론트엔드 처리 서버 및 백엔드 처리 서버는, CPU(Central Processing Unit)에 의해 메모리 또는 기억부에 저장된 동작 프로그램 등을 판독해서 그 프로그램을 실행함으로써 구현되어도 되고, 또는, 하드웨어에 의해 구성되어도 된다. 상술한 실시 형태의 일부 기능만을 컴퓨터 프로그램에 의해 실현할 수도 있다.
전술한 것과 같이 바람직한 실시 형태를 들어 본 발명을 설명했지만, 본 발명은 반드시 상기 실시 형태에 한정되는 것이 아니라, 그 기술적 사상의 범위 내에서 다양하게 변형되거나 변경되어 실시될 수 있다.
상기의 실시 형태의 일부 또는 전부는, 이하의 부기와 같이 기재될 수도 있다.
(부기 1) 애플리케이션 서버부터의 이벤트 처리에 관한 룰의 등록 시에, 이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속된 프론트엔드 처리 서버 및 백엔드 네트워크에 접속된 백엔드 처리 서버에 룰을 배치하는 룰 분배 서버로서,
이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 이벤트 발생원 네트워크 해결부와,
애플리케이션으로부터 등록된 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰을 상기 프론트엔드 네트워크에 접속되는 처리 서버에 등록하고, 상기 이벤트가 발생하지 않을 경우, 상기 애플리케이션 룰을 상기 백엔드 처리 서버에 등록하는 애플리케이션 룰 배치처 결정부와,
상기 백엔드 처리 서버에 등록되는 것으로 결정된 애플리케이션 룰에 대해서, 상기 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 처리 서버를 등록처로 하여, 상기 이벤트 조건에 합치하는 이벤트를 백엔드 처리 서버에 전송하는 처리 룰을 생성하는 룰 생성부와,
애플리케이션 룰과, 상기 룰 생성부에서 생성된 전송 룰을 각각 대응하는 처리 서버에 등록하는 룰 등록부를 포함하는 룰 분배 서버.
(부기 2) 부기 1에 있어서,
애플리케이션 룰의 내용으로부터, 처리 룰이 상기 프론트엔드 처리 서버에 등록될 수 있는지 여부를 판정하는 룰 등록 판정부를 더 포함하고,
상기 룰 생성부는, 상기 룰 등록 판정부에서 애플리케이션 룰이 등록가능한 것으로 판정되고, 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우에는, 상기 애플리케이션 룰을 상기 프론트엔드 네트워크에 등록하는 룰 분배 서버.
(부기 3) 부기 2에 있어서,
상기 룰 생성부는,
발생된 이벤트가 처리되는 시간으로 시간 폭 t가 지정될 때에, 상기 시간 폭이 미리 정해진 값 미만이면 상기 룰 생성부는 상기 애플리케이션 룰이 상기 프론트엔드 처리 서버에 등록되는 것을 허용하고,
상기 시간 폭이 상기 미리 정해진 값 이상이면, 상기 룰 생성부는 복수의 이벤트의 통계값을 산출하는 처리가 있는지 여부를 판정하고, 통계값을 산출하는 처리가 없는 경우, 상기 룰 생성부는 상기 애플리케이션 룰이 등록되도록 허용되는 것을 허용하지 않고,
통계값을 산출하는 처리가 있는 경우, 상기 룰 생성부는, 디바이스 또는 디바이스들로부터 발생하는 각 이벤트에 대하여, 상기 애플리케이션 룰에 의해 지정된 처리가 상기 각 이벤트가 발생한 시각으로부터 과거 시간 폭 t 동안에 발생한 이벤트에 대하여 처리를 행하는 슬라이딩 윈도우 처리인지, 혹은 상기 이벤트의 발생 시각에 관계없는 미리 정해진 시각으로부터 시간 폭 t 동안에 발생한 이벤트에 대하여 처리를 행하는 고정 윈도우 처리인지를 판정하여, 상기 애플리케이션 룰에 의해 지정된 처리가 상기 고정 윈도우 처리라면, 상기 룰 생성부는 상기 애플리케이션 룰이 등록되는 것을 허용하고, 상기 처리가 상기 슬라이딩 윈도우 처리라면, 상기 룰 생성부는 상기 애플리케이션 룰이 등록되는 것을 허용하지 않는 룰 분배 서버.
(부기 4) 부기 1 내지 3 중 어느 하나에 있어서,
백엔드 처리 서버가 수신한 이벤트의 정보를 취득하여, 이벤트 발생원 네트워크 해결표를 생성하는 이벤트 발생원 네트워크 검출부를 더 포함하고,
상기 이벤트 발생원 네트워크 검출부는, 속성의 집합의 멱집합의 각 요소에 대응하는 속성값과 수신된 이벤트가 그들 요소의 모든 속성값과 일치하는 경우, 상기 요소와 상기 이벤트 각각의 발생원 네트워크의 ID에 의해 특정되는 계수값을 1만큼 증가시키고, 상기 요소와 상기 이벤트의 발생원 네트워크의 ID에 의해 특정되는 계수값에 대해서, 상기 요소와 상기 발생원 네트워크의 ID 이외의 네트워크의 ID에 의해 특정되는 계수값이 0일 경우, 속성값 조건이 미리 정해진 수 이상인 상기 요소가 되고, 그 이외의 속성값 조건 또는 조건들이 임의의 값이 되게 하는 이벤트 조건을 생성하고, 생성된 상기 이벤트 조건과, 상기 발생원 네트워크 ID의 쌍을 이벤트 발생원 네트워크 해결표에 추가하는 룰 분배 서버.
(부기 5) 부기 1 내지 4 중 어느 하나에 있어서,
상기 룰 생성부는, 애플리케이션 룰을 상기 프론트엔드 처리 서버에 등록할 때에, 상기 애플리케이션 룰의 처리에 필요한 이벤트를 상기 프론트엔드 처리 서버에 전송하는 전송 룰을 생성하고, 이와 같이 생성된 상기 전송 룰을 상기 프론트엔드 처리 서버 이외의 프론트엔드 처리 서버 또는 서버들에 등록하는 룰 분배 서버.
(부기 6) 부기 5에 있어서,
상기 이벤트 발생원 네트워크 해결표의 변경에 기초하여 룰의 재배치를 행하는 룰 재배치부를 더 포함하고,
상기 룰 재배치부는, 상기 이벤트 발생원 네트워크 해결표가 변경되면, 상기 백엔드 처리 서버가 타깃 처리 서버가 되게 하고, 상기 변경이 기존의 이벤트 조건에 대응하는 이벤트 발생원 네트워크 ID의 변경일 경우, 변경 전의 이벤트 발생원 네트워크 ID에 대응하는 처리 서버 또한 타깃 처리 서버가 되게 하고,
상기 애플리케이션 룰 배치처 결정부와 상기 룰 생성부는, 타깃 처리 서버가 보유하는 애플리케이션 룰에 대하여, 전송 룰의 생성과, 상기 애플리케이션 룰의 배치처의 산출을 행하고,
상기 룰 재배치부는, 상기 산출 결과가 상기 이벤트 발생원 네트워크 해결표의 갱신 전의 내용과 상이한 경우, 상기 애플리케이션 룰이 등록된 처리 서버로부터 상기 애플리케이션 룰에 대한 스테이트를 취득하고, 상기 애플리케이션 룰과 그것에 대한 스테이트와 상기 전송 룰을, 그들을 보유하고 있는 처리 서버로부터 삭제하고, 새롭게 생성된 룰 배치표의 룰을 대응하는 네트워크의 처리 서버에 배치하고, 상기 애플리케이션 룰의 배치 시에 취득된 스테이트와 함께 상기 룰을 배치하는 룰 분배 서버.
(부기 7) 이벤트 처리 시스템으로서,
이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속되는 프론트엔드 처리 서버와,
각 프론트엔드 네트워크의 처리 서버로부터 수집된 이벤트를 처리하는 백엔드 처리 서버와,
애플리케이션으로부터 등록되는 애플리케이션 룰로부터 각 처리 서버에 생성하고, 상기 애플리케이션 룰과 생성된 상기 전송 룰을 상기 처리 서버에 배치하는 룰 분배 서버를 포함하고,
상기 룰 분배 서버는,
이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 이벤트 발생원 네트워크 해결부와,
상기 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰을 상기 프론트엔드 네트워크에 등록하고, 그렇지 않을 경우, 상기 애플리케이션 룰이 상기 백엔드 처리 서버에 등록되는 애플리케이션 룰 배치처 결정부와,
상기 백엔드 처리 서버에 등록되는 것으로 결정된 애플리케이션 룰에 대해서, 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 상기 프론트엔드 네트워크에 접속된 처리 서버 또는 서버들을 등록처 또는 등록처들로 하여, 상기 이벤트 조건에 합치하는 이벤트를 상기 백엔드 처리 서버에 전송하는 처리 룰을 생성하는 룰 생성부와,
상기 애플리케이션 룰과 상기 룰 생성부에서 생성된 상기 전송 룰을 상기 처리 서버에 등록하는 룰 등록부를 포함하는 이벤트 처리 시스템.
(부기 8) 애플리케이션 서버부터의 이벤트 처리에 관한 룰의 등록 시에, 이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속된 프론트엔드 처리 서버 및 백엔드 네트워크에 접속된 백엔드 처리 서버에 룰을 배치하는 룰 분배 방법으로서,
이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 스텝과,
애플리케이션으로부터 등록된 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰이 상기 프론트엔드 네트워크에 접속되는 처리 서버에 등록되고, 상기 이벤트가 발생하지 않을 경우, 상기 애플리케이션 룰이 상기 백엔드 처리 서버에 등록되는 것으로 결정하는 스텝과,
상기 백엔드 처리 서버에 등록하는 것으로 결정된 애플리케이션 룰에 대해서, 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 처리 서버를 등록처로 하여, 상기 이벤트 조건에 합치하는 이벤트를 상기 백엔드 처리 서버에 전송하는 처리 룰을 생성하는 스텝과,
생성된 상기 전송 룰을 대응하는 처리 서버에 각각 등록하는 스템을 포함하는 룰 분배 방법.
(부기 9) 부기 8에 있어서,
애플리케이션 룰의 내용으로부터 처리 룰이 상기 프론트엔드 처리 서버에 등록될 수 있는지 여부를 판정하는 스텝과,
애플리케이션 룰이 등록가능하다고 판정되고, 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰을 상기 프론트엔드 네트워크에 등록하는 스텝을 포함하는 룰 분배 방법.
(부기 10) 부기 9에 있어서,
이벤트가 처리될 시간으로 시간 폭 t가 지정될 때에, 상기 시간 폭이 미리 정해진 값 미만이면,
상기 애플리케이션 룰이 상기 프론트엔드 처리 서버에 등록되는 것을 허용하고,
상기 시간 폭이 상기 미리 정해진 값 이상이면, 복수의 이벤트의 통계값을 산출하는 처리가 있는지의 여부를 판정하고, 통계값을 산출하는 처리가 없으면, 상기 애플리케이션 룰이 등록되는 것으로 허용되는 것을 허용하지 않고,
통계값을 산출하는 처리가 있는 경우, 디바이스 또는 디바이스들로부터 발생하는 각 이벤트에 대하여, 상기 애플리케이션 룰에 의해 지정되는 처리가, 상기 이벤트 각각이 발생한 시각으로부터 과거 시간 폭 t 동안에 발생한 이벤트에 대하여 처리를 행하는 슬라이딩 윈도우 처리인지, 혹은 상기 이벤트의 발생 시각에 관계없이 미리 정해진 시각으로부터 시간 폭 t 동안에 발생된 이벤트에 대하여 처리를 행하는 고정 윈도우 처리인지를 판정하고, 상기 애플리케이션 룰에 의해 지정된 처리가 고정 윈도우 처리라면, 상기 애플리케이션 룰이 등록되는 것을 허용하고, 그 처리가 슬라이딩 윈도우 처리라면, 상기 애플리케이션 룰이 등록되는 것을 허용하지 않는 룰 분배 방법.
(부기 11) 부기 8 내지 10 중 어느 하나에 있어서,
백엔드 처리 서버가 수신한 이벤트의 정보를 취득하여, 이벤트 발생원 네트워크 해결표를 생성하도록 동작하는 스텝을 더 포함하고,
속성의 집합의 멱집합의 각 요소에 대응하는 속성값과 수신된 이벤트가 그들 요소의 모든 속성값과 일치하는 경우에,
상기 요소와, 상기 이벤트 각각의 발생원 네트워크의 ID에 의해 특정되는 계 수값을 1만큼 증가시키고,
상기 요소와 상기 이벤트의 상기 발생원 네트워크의 ID에 의해서 특정되는 계수값에 대하여, 상기 요소와 상기 발생원 네트워크의 ID 이외의 네트워크의 ID에 의해 특정되는 계수값이 0일 경우,
속성값 조건이 미리 정해진 수 이상인 상기 요소가 되고, 그 이외의 속성값 조건 또는 조건들이 임의의 값이 되는 이벤트 조건을 생성하고, 생성된 상기 이벤트 조건과, 상기 발생원 네트워크 ID의 쌍을 이벤트 발생원 네트워크 해결표에 추가하는 룰 분배 방법.
(부기 12) 부기 8로부터 11 중 어느 하나에 있어서,
애플리케이션 룰을 프론트엔드 처리 서버에 등록할 때에, 상기 애플리케이션 룰의 처리에 필요한 이벤트를 상기 프론트엔드 처리 서버에 전송하는 전송 룰을 생성하고, 상기 프론트엔드 처리 서버 이외의 프론트엔드 처리 서버에 상기 전송 룰을 등록하는 룰 분배 방법.
(부기 13) 부기 12에 있어서,
이벤트 발생원 네트워크 해결표의 변경에 기초하여 룰의 재배치를 행하는 스텝을 더 포함하고,
상기 이벤트 발생원 네트워크 해결표가 변경되면, 상기 백엔드 처리 서버가 타깃 처리 서버가 되게 하고, 상기 변경이 기존의 이벤트 조건에 대응하는 이벤트 발생원 네트워크 ID의 변경일 경우, 변경 전의 이벤트 발생원 네트워크 ID에 대응하는 처리 서버 또한 타깃 처리 서버가 되게 하며,
상기 타깃 처리 서버가 보유하는 애플리케이션 룰에 대하여, 전송 룰의 생성과, 상기 애플리케이션 룰의 배치처의 산출을 행하고,
상기 산출 결과가 상기 이벤트 발생원 네트워크 해결표의 갱신 전의 내용과 상이한 경우, 상기 애플리케이션 룰이 등록되고 있는 처리 서버로부터 상기 애플리케이션 룰에 대한 스테이트를 취득하고, 상기 애플리케이션 룰과 그것에 대한 스테이트와 상기 전송 룰을, 그들을 보유하고 있는 처리 서버로부터 삭제하고, 새롭게 생성된 룰 배치표의 룰을, 대응하는 네트워크의 처리 서버에 배치하고, 상기 애플리케이션 룰의 배치 시에 취득된 스테이트와 함께 상기 룰을 배치하는 룰 분배 방법.
(부기 14) 이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속된 프론트엔드 처리 서버 및 백엔드 네트워크에 접속된 백엔드 처리 서버에 접속된 컴퓨터가,
이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 처리 스텝과,
애플리케이션으로부터 등록된 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 대하여 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰이 상기 프론트엔드 네트워크에 접속되는 처리 서버에 등록되고, 상기 이벤트가 발생하지 않을 경우, 상기 애플리케이션 룰이 상기 백엔드 처리 서버에 등록되는 것으로 결정하는 애플리케이션 룰 배치처 결정 처리 스텝과,
상기 백엔드 처리 서버에 등록되는 것으로 결정된 상기 애플리케이션 룰에 대해서, 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 처리 서버를 등록처로 하여, 상기 이벤트 조건에 합치하는 이벤트를 상기 백엔드 처리 서버에 전송하는 처리 룰을 생성하는 룰 생성 처리 스텝과,
생성된 상기 전송 룰을 대응하는 처리 서버에 각각 등록하는 룰 등록 처리 스텝을 실행하게 하는 프로그램.
(부기 15) 부기 14에 있어서,
애플리케이션 룰의 내용으로부터, 처리 룰이 상기 프론트엔드 처리 서버에 등록될 수 있는지 여부를 판정하는 룰 등록 판정 스텝을 더 포함하고,
상기 룰 등록 판정 스텝에서는, 애플리케이션 룰이 등록가능한 것으로 판정되고, 각 이벤트 조건에 합치하는 이벤트가 모두 동일한 프론트엔드 네트워크에서 발생하는 경우에는, 상기 애플리케이션 룰을 상기 프론트엔드 네트워크에 등록하는 프로그램.
(부기 16) 부기 16에 있어서,
상기 룰 생성 스텝에서는,
생성된 이벤트가 처리되는 시간으로 시간 폭 t가 지정될 때에, 상기 시간 폭이 미리 정해진 값 이하이면, 상기 룰 생성 스텝에서는 상기 애플리케이션 룰이 상기 프론트엔드 처리 서버에 등록되는 것을 허용하고,
상기 시간 폭이 상기 미리 정해진 값 이상이면, 상기 룰 생성 스텝에서는, 복수의 이벤트의 통계값을 산출하는 처리가 있는지 여부를 판정하고, 통계값을 산출하는 처리가 없는 경우에는 상기 룰 생성 스텝에서는 상기 애플리케이션 룰이 등록되는 것이 허용되는 것을 허용하지 않고,
통계값을 산출하는 처리가 있는 경우에는, 상기 룰 생성 스텝에서는, 디바이스 또는 디바이스들로부터 발생하는 각 이벤트에 대하여, 상기 애플리케이션 룰에 의해 지정되는 처리가 상기 이벤트 각각이 발생한 시각으로부터 과거 시간 폭 t 동안에 발생한 이벤트에 대하여 처리를 행하는 슬라이딩 윈도우 처리인지, 혹은 상기 이벤트의 발생 시각에 관계없이 미리 정해진 시각으로부터 시간 폭 t 동안에 발생한 이벤트에 대하여 처리를 행하는 고정 윈도우 처리인지를 판정하고, 상기 애플리케이션에 의해 지정되는 처리가 상기 고정 윈도우 처리라면, 상기 룰 생성 스텝에서는 상기 애플리케이션 룰이 등록되는 것을 허용하고, 상기 처리가 상기 슬라이딩 윈도우 처리라면, 상기 룰 생성 스텝에서는 상기 애플리케이션 룰이 등록되는 것을 허용하지 않는 프로그램.
(부기 17) 부기 13 내지 16 중 어느 하나에 있어서,
백엔드 처리 서버가 수신한 이벤트의 정보를 취득하여, 이벤트 발생원 네트워크 해결표를 생성하는 이벤트 발생원 네트워크 검출 스텝을 더 포함하고,
상기 이벤트 발생원 네트워크 검출 스텝에서는, 속성의 집합의 멱집합의 각 요소에 대응하는 속성값과, 수신된 이벤트가, 그들 요소의 모든 속성값과 일치하는 경우에, 상기 요소와, 상기 이벤트 각각의 발생원 네트워크의 ID에 의해 특정되는 계수값을 1만큼 증가시키고, 상기 요소와 상기 이벤트의 발생원 네트워크의 ID에 의해 특정되는 계수값에 대해서, 상기 요소와 상기 발생원 네트워크의 ID 이외의 네트워크의 ID에 의해 특정되는 계수값이 0일 경우, 이벤트 발생원 네트워크 검출 스텝에서는 속성값 조건이 미리 정해진 수 이상인 상기 요소이고, 그 이외의 속성값 조건 또는 조건들이 임의의 값이 되는 이벤트 조건을 생성하고, 생성된 상기 이벤트 조건과, 상기 발생원 네트워크 ID의 쌍을 이벤트 발생원 네트워크 해결표에 추가하는 프로그램.
(부기 18) 부기 8 내지 17 중 어느 하나에 있어서,
상기 룰 생성 처리에서는, 애플리케이션 룰을 상기 프론트엔드 처리 서버에 등록할 때에, 상기 애플리케이션 룰의 처리에 필요한 이벤트를 상기 프론트엔드 처리 서버에 전송하는 전송 룰을 생성하고, 상기 프론트엔트 처리 서버 이외의 프론트엔드 처리 서버에 상기 전송 룰을 등록하는 프로그램.
(부기 19) 부기 18에 있어서,
이벤트 발생원 네트워크 해결표의 변경에 기초하여 룰의 재배치를 행하는 룰 재배치 스텝을 더 포함하고,
상기 룰 재배치 스텝에서는, 상기 이벤트 발생원 네트워크 해결표가 변경되면, 상기 백엔드 처리 서버가 타깃 처리 서버가 되게 하고, 상기 변경이 기존의 이벤트 조건에 대응하는 이벤트 발생원 네트워크 ID의 변경일 경우, 변경 전의 이벤트 발생원 네트워크 ID에 대응하는 처리 서버 또한 타깃 처리 서버가 되게 하고,
상기 애플리케이션 룰 배치처 결정 스텝과 상기 룰 생성 스텝에서는, 상기 타깃 처리 서버가 보유하는 애플리케이션 룰에 대하여, 전송 룰의 생성과, 상기 애플리케이션 룰의 배치처의 산출을 행하고,
상기 룰 재배치 스텝에서는, 상기 산출 결과가 상기 이벤트 발생원 네트워크 해결표의 갱신 전의 내용과 상이한 경우, 상기 애플리케이션 룰이 등록되고 있는 처리 서버로부터 상기 애플리케이션 룰에 대한 스테이트를 취득하고, 상기 애플리케이션 룰과, 그것에 대한 스테이트와, 상기 전송 룰을, 그들을 보유하고 있는 처리 서버로부터 삭제하고, 새롭게 생성한 룰 배치표의 룰을 대응하는 네트워크의 처리 서버에 배치하고, 상기 애플리케이션 룰의 배치 시에 취득된 스테이트와 함께 상기 룰을 배치하는 프로그램.
이상과 같이 바람직한 실시 형태를 들어 본 발명을 설명했지만, 본 발명은 반드시 상기 실시 형태에 한정되는 것이 아니라, 그 기술적 사상의 범위 내에서 다양하게 변경되거나 변형되어 실시될 수 있다.
본 발명은 2012년 10월 23일에 출원된 일본 특허 출원 제2012-233373호를 기초로 하는 우선권을 주장하고, 그 개시의 모두를 본 명세서에 도입한다.
10 프론트엔드 처리 서버
20 백엔드 처리 서버
30 룰 분배 서버
31 이벤트 발생원 NW 해결부
32 애플리케이션 룰 배치처 결정부
33 룰 생성부
34 룰 등록부
35 룰 등록 판정부
36 이벤트 발생원 NW 검출부
37 룰 재배치부

Claims (9)

  1. 애플리케이션 서버부터의 이벤트 처리에 관한 룰들(rules)의 등록 시에, 이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속된 프론트엔드 처리 서버, 및 백엔드 네트워크에 접속된 백엔드 처리 서버에 룰들을 배치하도록 동작하는 룰 분배 서버로서,
    이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 이벤트 발생원 네트워크 해결부와,
    애플리케이션으로부터 등록된 애플리케이션 룰들에 의해 지정되는 각 이벤트 조건에 합치하는 이벤트들이 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰을 상기 프론트엔드 네트워크에 접속되는 처리 서버에 등록하고, 상기 이벤트들이 발생하지 않을 경우, 상기 애플리케이션 룰을 상기 백엔드 처리 서버에 등록하는 애플리케이션 룰 배치처 결정부(applicaiton rule location destination determining unit)와,
    상기 백엔드 처리 서버에 등록되는 것으로 결정된 애플리케이션 룰에 대해서, 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 처리 서버를 등록처로 하여, 상기 이벤트 조건에 합치하는 이벤트를 백엔드 처리 서버에 전송하기 위한 처리 룰을 생성하도록 동작하는 룰 생성부와,
    애플리케이션 룰과, 상기 룰 생성부에서 생성된 전송 룰을 각각 대응하는 처리 서버들에 등록하도록 동작하는 룰 등록부
    를 포함하는 룰 분배 서버.
  2. 제1항에 있어서,
    애플리케이션 룰의 내용으로부터, 처리 룰이 상기 프론트엔드 처리 서버에 등록될 수 있는지 여부를 판정하는 룰 등록 판정부를 더 포함하고,
    상기 룰 생성부는, 상기 룰 등록 판정부에서 애플리케이션 룰이 등록가능한 것으로 판정되고, 각 이벤트 조건들에 합치하는 이벤트들이 모두 동일한 프론트엔드 네트워크에서 발생하는 경우에는, 상기 애플리케이션 룰을 상기 프론트엔드 네트워크에 등록하는 룰 분배 서버.
  3. 제2항에 있어서,
    상기 룰 생성부는,
    발생된 이벤트가 처리되는 동안의 시간에 대해 시간 폭 t가 지정될 때에, 상기 시간 폭이 미리 정해진 값 미만이면 상기 룰 생성부는 상기 애플리케이션 룰이 상기 프론트엔드 처리 서버에 등록되는 것을 허용하고,
    상기 시간 폭이 상기 미리 정해진 값 이상이면, 상기 룰 생성부는 복수의 이벤트의 통계값들을 산출하는 처리가 있는지 여부를 판정하고, 통계값들을 산출하는 처리가 없는 경우, 상기 룰 생성부는 상기 애플리케이션 룰이 등록되는 것을 허용하지 않고,
    통계값들을 산출하는 처리가 있는 경우, 상기 룰 생성부는, 디바이스 또는 디바이스들로부터 발생하는 각 이벤트에 대하여, 상기 애플리케이션 룰에 의해 지정된 처리가 상기 각 이벤트가 발생한 시각으로부터 과거 시간 폭 t 동안에 발생한 이벤트에 대하여 처리를 행하는 슬라이딩 윈도우 처리인지, 혹은 상기 이벤트의 발생 시각에 관계없이 미리 정해진 시각으로부터 시간 폭 t 동안에 발생한 이벤트들에 대하여 처리를 행하는 고정 윈도우 처리인지를 판정하여, 상기 애플리케이션 룰에 의해 지정된 처리가 상기 고정 윈도우 처리라면, 상기 룰 생성부는 상기 애플리케이션 룰이 등록되는 것을 허용하고, 상기 처리가 상기 슬라이딩 윈도우 처리라면, 상기 룰 생성부는 상기 애플리케이션 룰이 등록되는 것을 허용하지 않는 룰 분배 서버.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    백엔드 처리 서버가 수신한 이벤트의 정보를 취득하여, 이벤트 발생원 네트워크 해결표를 생성하도록 동작하는 이벤트 발생원 네트워크 검출부를 더 포함하고,
    상기 이벤트 발생원 네트워크 검출부는, 속성들의 집합의 멱집합(power aggregation)의 각 요소에 대응하는 속성값들과 수신된 이벤트들이 그들 요소들의 모든 속성값들과 일치하는 경우, 그 요소와 그 이벤트들 각각의 발생원 네트워크의 ID에 의해 특정되는 계수값을 1만큼 증가시키고, 상기 요소와 상기 이벤트의 발생원 네트워크의 ID에 의해 특정되는 계수값에 대해서, 상기 요소들과 상기 발생원 네트워크의 ID 이외의 네트워크들의 ID들에 의해 특정되는 계수값들이 0일 경우, 속성값 조건이 미리 정해진 수 이상인 상기 요소가 되고, 그 이외의 속성값 조건 또는 조건들이 임의의 값이 되게 하는 이벤트 조건을 생성하여, 생성된 이벤트 조건과, 상기 발생원 네트워크 ID의 쌍을 이벤트 발생원 네트워크 해결표에 추가하는 룰 분배 서버.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 룰 생성부는, 애플리케이션 룰을 상기 프론트엔드 처리 서버에 등록할 때에, 상기 애플리케이션 룰의 처리에 필요한 이벤트를 상기 프론트엔드 처리 서버에 전송하는 전송 룰을 생성하여, 생성된 상기 전송 룰을 상기 프론트엔드 처리 서버 이외의 프론트엔드 처리 서버 또는 서버들에 등록하는 룰 분배 서버.
  6. 제5항에 있어서,
    상기 이벤트 발생원 네트워크 해결표의 변경에 기초하여 룰들의 재배치를 행하는 룰 재배치부를 더 포함하고,
    상기 룰 재배치부는, 상기 이벤트 발생원 네트워크 해결표가 변경되면, 상기 백엔드 처리 서버가 타깃 처리 서버가 되게 하고, 상기 변경이 기존의 이벤트 조건에 대응하는 이벤트 발생원 네트워크 ID의 변경일 경우, 또한, 변경 전의 이벤트 발생원 네트워크 ID에 대응하는 처리 서버가 타깃 처리 서버가 되게 하고,
    상기 애플리케이션 룰 배치처 결정부와 상기 룰 생성부는, 타깃 처리 서버가 보유하는 애플리케이션 룰에 대하여, 전송 룰의 생성과, 상기 애플리케이션 룰의 배치처의 산출을 행하고,
    상기 룰 재배치부는, 상기 산출된 결과가 상기 이벤트 발생원 네트워크 해결표의 갱신 전의 내용과 상이한 경우, 상기 애플리케이션 룰이 등록된 처리 서버로부터 상기 애플리케이션 룰에 대한 스테이트를 취득하여, 상기 애플리케이션 룰과 그것에 대한 스테이트와 상기 전송 룰을, 그들을 보유하고 있는 처리 서버로부터 삭제하고, 새롭게 생성된 룰 배치표의 룰을 대응하는 네트워크의 처리 서버에 배치하고, 상기 애플리케이션 룰의 배치 시에 취득된 스테이트와 함께 상기 룰을 배치하는 룰 분배 서버.
  7. 이벤트 처리 시스템으로서,
    이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속되는 프론트엔드 처리 서버와,
    각 프론트엔드 네트워크의 처리 서버들로부터 수집된 이벤트들을 처리하도록 동작하는 백엔드 처리 서버와,
    애플리케이션으로부터 등록되는 애플리케이션 룰들로부터 각 처리 서버에 생성하여, 상기 애플리케이션 룰들과 생성된 전송 룰들을 상기 처리 서버들에 배치하도록 동작하는 룰 분배 서버
    를 포함하고,
    상기 룰 분배 서버는,
    이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하도록 동작하는 이벤트 발생원 네트워크 해결부와,
    상기 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 합치하는 이벤트들이 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰을 상기 프론트엔드 네트워크에 등록하고, 그렇지 않을 경우, 상기 애플리케이션 룰이 상기 백엔드 처리 서버에 등록되도록 하는 애플리케이션 룰 배치처 결정부와,
    상기 백엔드 처리 서버에 등록되는 것으로 결정된 애플리케이션 룰에 대해서, 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트들이 발생하는 상기 프론트엔드 네트워크에 접속된 처리 서버 또는 서버들을 등록처 또는 등록처들로 하여, 상기 이벤트 조건에 합치하는 이벤트를 상기 백엔드 처리 서버에 전송하기 위한 처리 룰을 생성하도록 동작하는 룰 생성부와,
    상기 애플리케이션 룰과 상기 룰 생성부에서 생성된 상기 전송 룰을 상기 처리 서버에 등록하도록 동작하는 룰 등록부
    를 포함하는 이벤트 처리 시스템.
  8. 애플리케이션 서버부터의 이벤트 처리에 관한 룰의 등록 시에, 이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속된 프론트엔드 처리 서버, 및 백엔드 네트워크에 접속된 백엔드 처리 서버에 상기 룰을 배치하는 룰 분배 방법으로서,
    이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 스텝과,
    애플리케이션으로부터 등록된 애플리케이션 룰들에 의해 지정되는 각 이벤트 조건에 합치하는 이벤트들이 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰이 상기 프론트엔드 네트워크에 접속되는 처리 서버에 등록되고, 상기 이벤트들이 발생하지 않을 경우, 상기 애플리케이션 룰이 상기 백엔드 처리 서버에 등록되는 것으로 결정하는 스텝과,
    상기 백엔드 처리 서버에 등록하는 것으로 결정된 애플리케이션 룰에 대해서, 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 처리 서버를 등록처로 하여, 상기 이벤트 조건에 합치하는 이벤트를 상기 백엔드 처리 서버에 전송하기 위한 처리 룰을 생성하는 스텝과,
    생성된 전송 룰을 대응하는 처리 서버들에 각각 등록하는 스텝
    을 포함하는 룰 분배 방법.
  9. 이벤트 발생원이 접속되는 프론트엔드 네트워크에 접속된 프론트엔드 처리 서버 및 백엔드 네트워크에 접속된 백엔드 처리 서버에 접속된 컴퓨터로 하여금,
    이벤트 조건으로부터, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 네트워크의 ID를 산출하는 처리 스텝과,
    애플리케이션으로부터 등록된 애플리케이션 룰에 의해 지정되는 각 이벤트 조건에 대하여 합치하는 이벤트들이 모두 동일한 프론트엔드 네트워크에서 발생하는 경우, 상기 애플리케이션 룰이 상기 프론트엔드 네트워크에 접속되는 처리 서버에 등록되고, 이러한 이벤트들이 발생하지 않을 경우, 상기 애플리케이션 룰이 상기 백엔드 처리 서버에 등록되는 것으로 결정하는 애플리케이션 룰 배치처 결정 처리 스텝과,
    상기 백엔드 처리 서버에 등록되는 것으로 결정된 상기 애플리케이션 룰에 대해서, 이벤트 조건마다, 상기 이벤트 조건에 합치하는 이벤트가 발생하는 프론트엔드 처리 서버를 등록처로 하여, 상기 이벤트 조건에 합치하는 이벤트를 상기 백엔드 처리 서버에 전송하기 위한 처리 룰을 생성하는 룰 생성 처리 스텝과,
    생성된 전송 룰을 대응하는 처리 서버들에 각각 등록하는 룰 등록 처리 스텝
    을 실행하게 하는 프로그램.
KR1020157013466A 2012-10-23 2013-10-09 룰 분배 서버, 이벤트 처리 시스템, 방법 및 프로그램 KR20150077474A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2012-233373 2012-10-23
JP2012233373 2012-10-23
PCT/JP2013/077407 WO2014065115A1 (ja) 2012-10-23 2013-10-09 ルール分配サーバ、イベント処理システム、方法及びプログラム

Publications (1)

Publication Number Publication Date
KR20150077474A true KR20150077474A (ko) 2015-07-07

Family

ID=50544495

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157013466A KR20150077474A (ko) 2012-10-23 2013-10-09 룰 분배 서버, 이벤트 처리 시스템, 방법 및 프로그램

Country Status (6)

Country Link
US (1) US9736226B2 (ko)
EP (1) EP2913752A4 (ko)
JP (1) JP6217644B2 (ko)
KR (1) KR20150077474A (ko)
CN (1) CN104756079A (ko)
WO (1) WO2014065115A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101856487B1 (ko) * 2017-03-03 2018-06-19 주식회사 티맥스데이터 파싱을 처리하기 위한 컴퓨팅 장치
KR20200124434A (ko) * 2019-04-24 2020-11-03 주식회사 티맥스티베로 데이터베이스 중단 관리 방법
KR20200140078A (ko) * 2019-06-05 2020-12-15 주식회사 티맥스티베로 데이터베이스 관리 방법
KR20210154525A (ko) * 2020-06-12 2021-12-21 건국대학교 산학협력단 이벤트 기반 비동기식 통신 미들웨어에서의 직접 및 간접 동기식 통신 방법 및 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6547580B2 (ja) * 2015-10-20 2019-07-24 富士通株式会社 分散制御方法、分散制御システム、および分散制御プログラム
US12047861B2 (en) * 2019-05-21 2024-07-23 Nec Corporation Communication system, communication method, and server
CN112631740A (zh) * 2019-09-24 2021-04-09 中兴通讯股份有限公司 一种事件处理方法、装置、终端及计算机可读存储介质
CN111309498B (zh) * 2020-02-13 2023-09-15 山东汇贸电子口岸有限公司 请求处理方法、装置及计算机可读介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101124566A (zh) * 2005-01-06 2008-02-13 特维拉有限公司 端到端的发布/订购中间件体系结构
US20090089325A1 (en) * 2007-09-28 2009-04-02 Rockwell Automation Technologies, Inc. Targeted resource allocation
JP5470720B2 (ja) 2008-03-07 2014-04-16 日本電気株式会社 イベント処理システムおよびイベント処理方法
JP5299437B2 (ja) * 2008-12-15 2013-09-25 日本電気株式会社 イベント処理システム、イベント処理方法、ルール分配装置、及びルール分配プログラム
JP5327315B2 (ja) 2009-03-17 2013-10-30 日本電気株式会社 イベント処理システム、イベント処理方法、ルール分配装置、及びプログラム記憶媒体
US20120246214A1 (en) 2009-11-02 2012-09-27 Hitachi, Ltd. Method for supporting service setting

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101856487B1 (ko) * 2017-03-03 2018-06-19 주식회사 티맥스데이터 파싱을 처리하기 위한 컴퓨팅 장치
KR20200124434A (ko) * 2019-04-24 2020-11-03 주식회사 티맥스티베로 데이터베이스 중단 관리 방법
KR20200140078A (ko) * 2019-06-05 2020-12-15 주식회사 티맥스티베로 데이터베이스 관리 방법
KR20210154525A (ko) * 2020-06-12 2021-12-21 건국대학교 산학협력단 이벤트 기반 비동기식 통신 미들웨어에서의 직접 및 간접 동기식 통신 방법 및 장치

Also Published As

Publication number Publication date
JPWO2014065115A1 (ja) 2016-09-08
US9736226B2 (en) 2017-08-15
EP2913752A4 (en) 2016-07-13
CN104756079A (zh) 2015-07-01
US20150271252A1 (en) 2015-09-24
WO2014065115A1 (ja) 2014-05-01
JP6217644B2 (ja) 2017-10-25
EP2913752A1 (en) 2015-09-02

Similar Documents

Publication Publication Date Title
KR20150077474A (ko) 룰 분배 서버, 이벤트 처리 시스템, 방법 및 프로그램
US9509706B2 (en) Service performance monitoring method
US20170289294A1 (en) Proxy application with dynamic filter updating
US8898520B1 (en) Method of assessing restart approach to minimize recovery time
US10944655B2 (en) Data verification based upgrades in time series system
US8984337B2 (en) Apparatus and method for selecting candidate for failure component
CN102045192A (zh) 网络结构的假定所用的装置及系统
US20180285184A1 (en) Apparatus, system, and method for analyzing logs
CN105760240A (zh) 分布式任务处理方法及装置
US8769339B2 (en) Apparatus and method for managing network system
US9514176B2 (en) Database update notification method
CN103207727A (zh) 用于处理数据的方法和系统
JP2017069895A (ja) 障害切り分け方法および障害切り分けを行う管理サーバ
US10645155B2 (en) Scalable parallel messaging process
JP6668456B2 (ja) 処理システムおよび処理方法
JP2012094049A (ja) インシデント管理システムおよびインシデント管理プログラム
US20150356017A1 (en) Predictive cache apparatus and method of cache prediction
CN112860496A (zh) 故障修复操作推荐方法、装置及存储介质
US20220405115A1 (en) Server and application monitoring
JP2015082221A (ja) 管理装置、管理システム、保守管理方法、及びプログラム
CN112199188A (zh) 非暂态计算机可读记录介质、信息处理的方法和设备
JP6926646B2 (ja) 事業者間一括サービス管理装置および事業者間一括サービス管理方法
CN109818767B (zh) 一种Redis集群容量调整的方法、装置及存储介质
US20140297636A1 (en) Information processing technique for configuration management database
US20110119384A1 (en) Information processing apparatus, information processing program, and information processing method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application