KR102046571B1 - 데이터 처리 룰 생성 방법 - Google Patents

데이터 처리 룰 생성 방법 Download PDF

Info

Publication number
KR102046571B1
KR102046571B1 KR1020160049894A KR20160049894A KR102046571B1 KR 102046571 B1 KR102046571 B1 KR 102046571B1 KR 1020160049894 A KR1020160049894 A KR 1020160049894A KR 20160049894 A KR20160049894 A KR 20160049894A KR 102046571 B1 KR102046571 B1 KR 102046571B1
Authority
KR
South Korea
Prior art keywords
rule
data
definition
area
link
Prior art date
Application number
KR1020160049894A
Other languages
English (en)
Other versions
KR20170121460A (ko
Inventor
안발라간 아룬
조윤석
홍성순
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020160049894A priority Critical patent/KR102046571B1/ko
Publication of KR20170121460A publication Critical patent/KR20170121460A/ko
Application granted granted Critical
Publication of KR102046571B1 publication Critical patent/KR102046571B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/22Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • 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/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

데이터 처리용 룰을 생성하는 룰 생성 방법이 제공된다. 상기 룰 생성 방법에 따르면, 데이터의 포맷과 무관하게 동일한 룰 생성 방법으로 데이터 처리용 룰을 생성할 수 있으며, 기 생성된 룰은 쉽게 변경 될 수 있다. 본 발명의 일 실시예에 따른 룰 생성 방법은, 룰(rule)을 구성하는 각각의 스텝을 정의하기 위한 복수의 스텝 정의 UI(User Interface)를 제공하되, 상기 스텝 정의 UI는 오퍼레이션을 지정하기 위한 제1 영역, 상기 오퍼레이션의 파라미터를 지정하기 위한 제2 영역, 상기 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 제3 영역 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 제4 영역을 포함하는 것인 단계와, 상기 복수의 스텝 정의 UI를 통하여 입력된 각 스텝의 데이터로 구성된 룰(rule) 정의 데이터를 생성하는 단계를 포함한다. 이 때, 상기 복수의 스텝 정의 UI 중 상기 제3 영역의 링크 또는 상게 제4 영역의 링크를 통하여 연결되는 후속 스텝에 대한 스텝 정의 UI는, 상기 오퍼레이션의 파라미터로서 상기 후속 스텝 보다 이전에 수행 되는 스텝의 오퍼레이션 출력 데이터가 지정 될 수 있도록 지원하는 것이다.

Description

데이터 처리 룰 생성 방법{Method for generating data processing rule}
본 발명은 데이터 처리 룰 생성 방법에 관한 것이다. 보다 자세하게는 처리 대상인 데이터의 포맷과 무관하게 적용할 수 있으며, 특정 프로그래밍 언어에 종속되지 않는 스텝-바이-스텝 형식의 데이터 처리 룰 생성 방법과, 그 방법을 이용하여 생성된 룰을 이용하여, 서로 다른 환경에서 생성된 데이터를 동일한 룰 엔진으로 처리하는 방법에 관한 것이다.
특정 처리 규칙에 따라 데이터를 처리하기 위하여, 다양한 방식이 적용된다. 가장 기초적인 방식으로, 처리 대상 데이터의 포맷과 처리 규칙을 반영한 프로그래밍을 고려할 수 있다. 하지만, 프로그래밍에 의한 방식은 처리 규칙이 조금이라도 변경되는 경우, 프로그램 소스코드를 수정해야 하는 불편함이 있고, 코드를 재사용하기도 어렵다. 또한, 프로그래밍 능력이 있는 사람만 사용할 수 있는 방법이라는 한계도 존재한다.
룰 기반의 데이터 처리 시스템 역시 고려될 수 있다. 예를 들어, 한국 특허출원 제2012-0120098호 등에 룰 기반 데이터 분석 방법이 제시되어 있다. 룰 기반 시스템(rule based system)은 'if-then' 구문의 세트로 구성된다. 이러한 룰 기반 시스템을 활용하여 데이터 처리를 수행하는 경우, 프로그래밍을 통하여 데이터를 처리하는 것에 비하여는 더 편리하나, 특정 룰 기반 시스템에 종속되는 문제는 여전히 존재한다. 따라서, 특정 룰 기반 시스템에 종속되지 않고, 다양한 포맷의 데이터를 처리할 수 있으면서도, 다양한 룰을 표현할 수 있고, 사용자가 쉽게 룰을 생성할 수 있는 데이터 처리 방법의 제공이 요청된다.
한국특허출원 제2012-0120098호
본 발명이 해결하고자 하는 기술적 과제는, 특정 프로그래밍 언어에 종속되지 않는 데이터 처리 룰(rule)을 생성하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 동일한 툴을 이용하여 다양한 포맷의 처리 대상 데이터에 적용될 수 있는 데이터 처리 룰을 생성하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 룰을 구성하는 각각의 스텝을 정의하는 것만으로, 다양한 룰을 구현할 수 있는 데이터 처리 룰을 생성하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 기 생성된 룰을 쉽게 수정할 수 있는 데이터 처리 룰의 생성 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 룰의 실행 시 연산 복잡도(computation complexity) 측면의 효율성을 담보하는 데이터 처리 룰의 생성 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 공통의 룰 생성 툴(rule generation tool) 및 공통의 룰 엔진을 이용하여 서로 다른 포맷을 가진 데이터를 평가(assessment)하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 데이터 처리 이외의 다양한 용도로 확장될 수 있는 룰을 생성할 수 있는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 상기 기술적 과제에 따라 제공되는 방법들을 구현한 연산 장치 또는 연산 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 룰 생성 방법은, 룰(rule)을 구성하는 각각의 스텝을 정의하기 위한 복수의 스텝 정의 UI(User Interface)를 제공하되, 상기 스텝 정의 UI는 오퍼레이션을 지정하기 위한 제1 영역, 상기 오퍼레이션의 파라미터를 지정하기 위한 제2 영역, 상기 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 제3 영역 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 제4 영역을 포함하는 것인 단계와, 상기 복수의 스텝 정의 UI를 통하여 입력된 각 스텝의 데이터로 구성된 룰(rule) 정의 데이터를 생성하는 단계를 포함한다. 이 때, 상기 복수의 스텝 정의 UI 중 상기 제3 영역의 링크 또는 상기 제4 영역의 링크를 통하여 연결되는 후속 스텝에 대한 스텝 정의 UI는, 상기 오퍼레이션의 파라미터로서 상기 후속 스텝 보다 이전에 수행 되는 스텝의 오퍼레이션 출력 데이터가 지정 될 수 있도록 지원하는 것이 바람직하다.
일 실시예에서, 상기 복수의 스텝 정의 UI는, 상기 제3 영역의 링크 또는 상기 제4 영역의 링크 중 어느 하나가, 다음 스텝을 가리키는 인디케이터로 지정 될 수 있도록 지원하는 것이다. 이 때, 상기 복수의 스텝 정의 UI를 제공하는 단계는, 상기 제3 영역의 링크 또는 상기 제4 영역의 링크 중 어느 하나가 다음 스텝을 가리키는 인디케이터로 지정된 경우 상기 다음 스텝을 정의하기 위한 스텝 정의 UI를 제공하고, 상기 제3 영역의 링크 및 상기 제4 영역의 링크 모두 다음 스텝을 가리키는 인디케이터로 지정되지 않은 경우 더 이상의 스텝 정의 UI를 제공하지 않는 단계를 포함할 수 있다.
일 실시예에서, 상기 룰은 평가 대상 데이터를 평가하기 위한 것이다. 이 때, 몇몇 실시예에서, 상기 복수의 스텝 정의 UI는, 상기 제3 영역의 링크 및 상기 제4 영역의 링크에, 다음 스텝을 가리키는 인디케이터, 데이터 정상을 가리키는 인디케이터 및 데이터 비정상을 가리키는 인디케이터 중 어느 하나가 각각 지정 될 수 있도록 지원한다. 적어도 하나가 지정 될 수 있다.
또한, 몇몇 실시예에서, 상기 스텝 정의 UI의 제1 영역은, 찾기(grep/find) 오퍼레이션, 컷(cut) 오퍼레이션 및 비교(compare) 오퍼레이션 중 어느 하나가 상기 스텝의 오퍼레이션으로 지정되도록 지원하는 것일 수 있다. 또한, 몇몇 실시예에서, 상기 제2 영역은 복수의 파라미터 각각에 대하여 파라미터 명칭이 표시되는 영역 및 파라미터 값을 입력하는 영역을 포함하고, 상기 파라미터 값에는 사전 정의 된 환경 인디케이터의 입력이 지원되며, 상기 환경 인디케이터는, 룰 엔진에 의하여, 상기 평가 대상 데이터에 포함된 헤더정보를 이용하여 상기 환경 인디케이터가 가리키는 환경 값으로 치환되는 것이고, 상기 룰 엔진은, 상기 룰 정의 데이터를 해석하여 룰을 구성하고, 상기 구성된 룰을 이용하여 상기 평가 대상 데이터를 평가하는 것일 수 있다.
일 실시예에서, 상기 룰 정의 데이터를 생성하는 단계는, 마크업 언어(markup language) 형식의 상기 룰 정의 데이터를 생성하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따르면, 스텝-바이-스텝(step-by-step) 방식의 룰 생성 툴에 의하여 생성된 룰을 이용한 이종 환경 생성 데이터의 평가 방법이 제공된다. 상기 이종 환경 생성 데이터의 평가 방법은 제1 환경에서 작성된 제1 평가 대상 데이터를 평가하기 위한 제1 룰(rule)을 구성하는 각각의 스텝을 정의하고, 상기 제1 환경과 다른 제2 환경에서 작성된 제2 평가 대상 데이터를 평가하기 위한 제2 룰을 구성하는 각각의 스텝을 정의하기 위한 복수의 스텝 정의 UI(User Interface)를 제공하는 단계와, 상기 복수의 스텝 정의 UI를 통하여 입력된 데이터를 이용하여 상기 제1 룰의 룰 정의 데이터 및 상기 제2 룰의 룰 정의 데이터를 생성하는 단계; 및
상기 룰 정의 데이터를 해석하여 룰을 구성하고, 상기 구성된 룰을 이용하여 평가 대상 데이터를 평가하는 룰 엔진을 이용하여, 상기 제1 룰에 기반한 상기 제1 평가 대상 데이터의 평가를 수행하고, 상기 제2 룰에 기반한 상기 제2 평가 대상 데이터의 평가를 수행하는 단계를 포함한다. 이 때, 상기 복수의 스텝 정의 UI에 포함되는 각각의 스텝 정의 UI는, 정의되는 스텝에 대응되는 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 영역 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 영역과, 상기 오퍼레이션의 파라미터로서 상기 정의되는 스텝 이전에 수행되는 스텝의 오퍼레이션 출력 데이터가 지정 될 수 있도록 지원하는 것이다. 이 때, 상기 복수의 스텝 정의 UI는 평가 대상 데이터의 포맷과 무관하게 적용되는 것이고, 상기 룰 엔진은
상기 룰 정의 데이터가 기 정의된 형식에 부합하는 것이기만 하면, 평가 대상 데이터의 포맷과 무관하게 사용되는 것일 수 있다. 일 실시예에서, 상기 제1 평가 대상 데이터의 포맷과 상기 제2 평가 대상 데이터의 포맷은 서로 상이한 것이고, 상기 제1 룰의 룰 정의 데이터와 상기 제2 룰의 룰 정의 데이터의 형식은 서로 동일한 것일 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 또 다른 실시예에 따른 룰 기반 데이터 처리 장치는, 룰을 구성하는 각각의 스텝을 정의하기 위한 복수의 스텝 정의 UI를 구성하기 위한 데이터를 사용자 단말에 송신하는 룰 생성 툴 제공부와 상기 복수의 스텝 정의 UI를 통하여 사용자 단말로부터 수신된 각 스텝의 데이터로 룰(rule) 정의 데이터를 구성하는 룰 정의 데이터 생성부를 포함한다. 이 때, 상기 스텝 정의 UI는 오퍼레이션을 지정하기 위한 제1 영역, 상기 오퍼레이션의 파라미터를 지정하기 위한 제2 영역, 상기 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 제3 영역 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 제4 영역을 포함하고, 상기 복수의 스텝 정의 UI 중 상기 제3 영역의 링크 또는 상게 제4 영역의 링크를 통하여 연결되는 후속 스텝에 대한 스텝 정의 UI는, 상기 오퍼레이션의 파라미터로서 상기 후속 스텝 보다 이전에 수행 되는 스텝의 오퍼레이션 출력 데이터가 지정될 수 있도록 지원한다.
일 실시예에서, 상기 룰 기반 데이터 처리 장치는, 상기 룰 정의 데이터 생성부에 의하여 생성된 룰 정의 데이터 및 처리 대상 데이터를 수신하여, 상기 룰 정의 데이터를 해석하고, 해석 된 룰에 따라 상기 처리 대상 데이터를 처리하며, 데이터 처리 결과를 출력하는 룰 엔진 구동부를 더 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른 스텝-바이-스텝(step-by-step) 방식의 룰 생성 툴에 의하여 생성된 룰을 이용한 이종 환경 생성 데이터의 평가 방법의 개념을 설명하기 위한 도면이다.
도 2는 본 발명의 다른 실시예에 따른 룰 기반 데이터 처리 시스템의 구성도이다.
도 3a는 본 발명의 또 다른 실시예에 따른 룰 기반 데이터 처리 장치의 블록 구성도이다.
도 3b는 본 발명의 또 다른 실시예에 따른 룰 기반 데이터 처리 장치의 하드웨어 구성도이다.
도 4는 본 발명의 또 다른 실시예에 따른 폐쇄 사이트 내 발생 데이터의 룰 기반 처리 시스템의 구성도이다.
도 5는 본 발명의 몇몇 실시예들에서 스텝-바이-스텝 방식으로 룰이 구성될 때, 각 스텝이 어떤 정보를 포함하는지 설명하기 위한 도면이다.
도 6a 내지 도 6g는 본 발명의 몇몇 실시예들을 참조하여, 스텝-바이-스텝 방식으로 샘플 룰이 구성되는 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 또 다른 실시예에 따른 룰 기반 데이터 처리 방법의 순서도이다.
도 8은 도 7에 도시된 일부 동작을 보다 자세히 설명하기 위한 상세 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
이하, 도면을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
본 발명의 일 실시예에 따른 스텝-바이-스텝(step-by-step) 방식의 룰 생성 툴(tool)에 의하여 생성된 룰을 이용한 이종 환경 생성 데이터의 평가 방법을, 도 1을 참조하여 설명한다.
서로 다른 환경(environment)에서 생성된 데이터는 그 포맷이 서로 다르다. 예를 들어, 윈도우즈(10), 리눅스(11), 오라클(12), AIX(13) 환경에서 생성된 로그 데이터(20, 21, 22, 23)는, 서로 그 포맷이 다를 것이다. 따라서, 데이터의 생성 환경과 무관하게 동일한 로직을 적용하고자 하더라도, 제1 환경에서 생성된 데이터를 위한 데이터 처리 룰은 제2 환경에서 생성된 데이터를 처리하기 위하여 사용될 수 없다. 따라서, 각 데이터가 생성된 환경 별로 서로 다른 데이터 처리 룰을 생성해야 한다.
본 명세서에서 '환경'은, 시스템을 특정할 수 있는 다양한 구성요소를 가리킬 수 있다. 예를 들어, '환경'은 운영체제(OS)를 가리키거나, DBMS(Database Management System)을 가리키거나, 스토리지 제품을 가리키거나, 네트워크 장비를 가리킬 수 있다.
도 1에 도시된 것과 같이 서로 다른 종류의 복수의 시스템을 운영하는 업체라면, 각 시스템에서 발생된 데이터를 처리할 수 있는 복수의 룰들을 하나의 룰 기반 데이터 처리 솔루션으로 모두 생성할 수 있기를 원할 것이다. 그러나, 각각의 룰 기반 데이터 처리 솔루션은 룰 표현 방식 및 지원 함수의 차이로 인해, 구현할 수 있는 로직에 한계를 가지므로, 하나의 룰 기반 데이터 처리 솔루션으로 모든 포맷의 데이터를 모두 처리하기는 쉽지 않다.
본 실시예에 따라 제공되는 룰 생성 툴은 순차적으로 각각의 스텝을 정의하는 방식의 룰 생성 툴(30)을 제공한다. 이 때, 각각의 스텝은 지정된 오퍼레이션의 실행 및 그 실행 결과에 따른 링크를 정의한다. 룰 생성 툴(30)은 각각의 스텝에서 실행되어야 하는 오퍼레이션으로서, 사전에 지정된 기본 오퍼레이션들 중 하나가 선택될 수 있도록 가이드 한다. 상기 기본 오퍼레이션들은, 아래의 오퍼레이션들을 포함한다.
A. GREP/FIND - 입력된 데이터 또는 특정 커맨드의 실행 결과에서 특정 문자열 또는 패턴을 찾는 오퍼레이션
B. CUT - 입력된 데이터 또는 문자열에서 특정 위치의 값을 잘라내는 오퍼레이션
C. COMPARE - 둘 이상의 값 또는 문자열을 서로 비교하는 오퍼레이션
D. WORDCOUNT - 특정 워드나 패턴의 발생 횟수를 카운트하는 오퍼레이션
E. LINECOUNT - 입력된 데이터 또는 특정 커맨드의 실행 결과의 라인 수를 카운트하는 오퍼레이션
생성되는 룰이 입력되는 데이터를 평가(assessment)하는 것일 수 있다. 예를 들어, 룰 생성 툴(30)을 통하여, 입력된 보안/방화벽 시스템의 로그 데이터를 평가하여 침입이 발생했는지 평가하기 위한 룰이 생성되거나, 금융 기관의 거래 데이터(transaction data)를 평가하여 이상 금융 거래가 발생했는지 평가하기 위한 룰이 생성되거나, 소프트웨어 테스팅 과정에서 발생된 디버깅 데이터를 평가하기 위한 룰이 생성되거나, 소프트웨어 품질 검사과정에서 발생된 로그 데이터를 평가하기 위한 룰이 생성되거나, 시뮬레이션 과정에서 발생된 데이터를 이용하여 리스크를 평가하기 위한 룰이 생성되거나, 연구 과정에서 실시된 테스트 결과 데이터를 평가하기 위한 룰이 생성되거나, 생산 과정에서 각 생산 설비들이 생성한 로그 데이터를 평가하여 이상 패턴이 발생했는지 여부를 평가하기 위한 룰이 생성되거나, 생성된 데이터에서 특정 패턴을 인식하기 위한 룰이 생성될 수 있다.
상기 된 여러 가지의 데이터 평가 룰들의 생성을 통해 룰 생성 툴(30)의 범용성을 평가한 결과, 'GREP/FIND', 'CUT' 및 'COMPARE'의 3개 기본 오퍼레이션이 활용도가 가장 높은 것으로 판단되었다. 즉, 어떠한 데이터의 정상/비정상을 판단하기 위하여 가장 많이 요구되는 판단은 특정 패턴의 몇 번째 값이 어떤 값을 가지는지 인데, 이러한 판단은 'GREP/FIND', 'CUT' 및 'COMPARE'의 3개 기본 오퍼레이션을 순차적으로 수행함으로써 가능해진다.
또한, 룰 생성 툴(30)은 각 오퍼레이션의 실행 결과에 따라 다음 플로우(flow)를 지정하도록 가이드 한다. 다음 플로우는 다음 스텝을 실행하는 것이거나, 특정 출력 값을 결정하고 룰의 플로우를 종료하는 것일 수 있다.
또한, 룰 생성 툴(30)은 이전에 수행된 스텝이 존재하는 경우, 그 스텝에서 수행된 오퍼레이션의 출력 데이터를 현재 스텝의 오퍼레이션이 입력 받을 수 있도록 가이드 한다.
즉, 룰 생성 툴(30)은, 데이터 평가 룰의 생성에 범용적으로 활용 될 수 있는 기본 오퍼레이션을 순차적으로 수행하고, 이전에 수행 된 오퍼레이션이 있다면 그 출력 데이터를 현재 스텝 오퍼레이션의 입력 값으로 사용하며, 각 오퍼레이션의 수행 결과에 따라 다음 플로우가 지정 되도록 가이드 함으로써, 쉽게 다양한 데이터 평가용 룰을 지정하도록 한다.
물론, 룰 생성 툴(30)에 의하여 생성될 수 있는 룰이 데이터를 평가하기 위한 것으로 제한되지는 않는다. 대부분의 룰이 데이터를 평가하기 위한 것이기는 하나, 인지(Perception), 추론(reasoning), 기계 학습(machine learning) 등 다양한 인공지능의 세부 영역에 해당하는 판단을 위한 룰들이 룰 생성 툴(30)에 의하여 생성될 수 있다. 인공지능과 관련된 룰을 생성하기 위하여는, 인공지능 관련 룰에 활용도가 높은 또 다른 기본 오퍼레이션들이 선정 될 수 있을 것이다.
상기 설명한 것과 같이, 룰 생성 툴(30)에 대한 사용자 입력(50)에 의하여, 서로 다른 포맷의 데이터를 위한 룰들(31, 32, 33, 34)이 생성된다. 룰들(31, 32, 33, 34)은 룰 엔진(40)에 의하여 해석될 수 있는 형식으로 생성된다. 이하, 룰 생성 툴(30)에 의한 룰 생성 결과물을 '룰 정의 데이터'로 지칭한다.
룰 생성 툴(30)에 의하여 생성된 룰 정의 데이터가 다양한 룰 엔진(40)에 의하여 해석될 수 있도록, '룰 정의 데이터'는 XML(eXtensible Markup Language) 등의 마크업 언어 형식으로 생성되거나, 기 지정된 구조의 데이터베이스에 저장될 수 있다. 룰 엔진(40)이 현대적인 프로그래밍 언어로 구현되었다면, XML 등의 마크업 언어로 기재된 데이터를 입력 받고 해석하거나, 데이터베이스로부터 데이터를 입력 받고 해석하는 것이 용이할 것이기 때문이다. 이 때, 룰 정의 데이터를 '해석'한다는 것은, 룰 엔진(40) 내부의 다양한 자료 구조(data structure)로 룰 정의 데이터를 재구성하는 것을 의미한다.
본 실시예에 따른 이종 환경 생성 데이터의 평가 방법을 정리한다.
먼저, 제1 환경에서 작성된 제1 평가 대상 데이터를 평가하기 위한 제1 룰(rule)을 구성하는 각각의 스텝을 정의하고, 상기 제1 환경과 다른 제2 환경에서 작성된 제2 평가 대상 데이터를 평가하기 위한 제2 룰을 구성하는 각각의 스텝을 정의하기 위한 복수의 스텝 정의 UI(User Interface)를 제공한다.
다음으로, 상기 복수의 스텝 정의 UI를 통하여 입력된 데이터를 이용하여 상기 제1 룰의 룰 정의 데이터 및 상기 제2 룰의 룰 정의 데이터를 생성한다.
다음으로, 상기 룰 정의 데이터를 해석하여 룰을 구성하고, 상기 구성된 룰을 이용하여 평가 대상 데이터를 평가하는 룰 엔진을 이용하여, 상기 제1 룰에 기반한 상기 제1 평가 대상 데이터의 평가를 수행하고, 상기 제2 룰에 기반한 상기 제2 평가 대상 데이터의 평가를 수행한다. 이 때, 상기 복수의 스텝 정의 UI에 포함되는 각각의 스텝 정의 UI는, 정의되는 스텝에 대응되는 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 영역 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 영역과, 상기 오퍼레이션의 파라미터로서 상기 정의되는 스텝 이전에 수행되는 스텝의 오퍼레이션 출력 데이터가 지정 될 수 있도록 지원하는 것이다. 상기 복수의 스텝 정의 UI는 평가 대상 데이터의 포맷과 무관하게 적용되는 것이고, 상기 룰 엔진은 상기 룰 정의 데이터가 기 정의된 형식에 부합하는 것이기만 하면, 평가 대상 데이터의 포맷과 무관하게 사용되는 것이다.
지금까지 도 1을 참조하여 설명한 바와 같이, 본 실시예에 따른 이종 환경 생성 데이터의 평가 방법은 하나의 룰 생성 툴(30) 및 하나의 룰 엔진(40)을 이용하여 다양한 환경에서 생성된 데이터의 룰들을 생성하고, 생성된 룰들을 이용하여 각 환경의 데이터에 대한 처리 결과(평가 결과)(41, 42, 43, 44)를 출력한다. 따라서, 본 실시예는 데이터 생성 환경에 따라 둘 이상의 툴을 사용해야 하는 것에서 오는 비용 낭비 및 업무 부담 증대를 막을 수 있다.
즉, 본 실시예에 따른 룰 생성 툴(30)은 각각의 스텝에서 수행될 오퍼레이션 및 그 파라미터를 정의하고, 각각의 스텝 사이의 플로우를 정의하며, 특히 각각의 스텝에서 수행될 오퍼레이션이 그 입력 데이터로서 이전에 수행 된 스텝의 오퍼레이션 출력도 사용할 수 있도록 지원함으로써, 유연하게 다양한 로직을 정의할 수 있도록 가이드 한다.
본 명세서에서는 '룰(rule)'이라는 표현을 사용하고 있으나, 일반적인 룰 기반 시스템(rule-based system)이 'if-then' 구문들로 로직을 표현하는 점을 고려하면, 본 실시예에 따른 룰 생성 툴(30)은 고차원 프로그래밍 툴으로 이해될 수도 있을 것이다. 따라서, 본 발명의 범위가 'if-then' 구문들로 표현되는 로직을 생성하고, 그 로직에 의하여 데이터를 처리하는 방법으로 한정되어서는 아니된다.
이하, 본 발명의 실시예들에 따른, 룰 기반 데이터 처리 장치 및 시스템의 구성 및 동작을 설명한다.
일 실시예에 따른 룰 기반 데이터 처리 시스템은, 도 2에 도시된 바와 같이 룰 기반 데이터 처리 장치(80)가 룰 생성 툴 제공 및 룰 엔진 구동의 역할을 모두 담당하는 중앙 집중형 구조를 가질 수 있다. 도 2에 도시된 시스템 구성은 ASP(Application Service Provider) 형태의 비즈니스를 제공하기 위하여, 최적화된 구성으로 볼 수 있다.
룰 기반 데이터 처리 장치(80)가 네트워크1(70a)을 통해 연결된 사용자 단말(60a, 60b, 60c)에 룰 생성 툴을 제공한다. 일 실시예에서, 상기 룰 생성 툴은 웹 기반 UI를 가진다. 웹 기반 UI로 룰 생성 툴을 구성함으로써, 특정 프로그래밍 언어로 룰 정의를 하지 않아도 되고, 룰 생성 툴을 사용하기 위한 클라이언트 프로그램을 사전에 설치하지 않아도 되는 장점이 있다. 즉, 사용자 단말(60a, 60b, 60c)은 웹에 접근할 수 있는 PC, 태블릿, 스마트 폰 등 모든 장치를 가리킨다. 이 때, 네트워크1(70a)은 인터넷을 가리킨다.
룰 기반 데이터 처리 장치(80)는 데이터 생성 장치(90a, 90b, 90c, 90d)에 의하여 생성된 데이터를 네트워크2(70b)를 통해 제공받고, 제공된 데이터를 처리하기 위한 룰 정의 데이터를 로드하며, 룰 정의 데이터를 해석하여 룰 엔진 상의 로직으로 구현한 후, 상기 제공된 데이터를 상기 구현된 로직에 입력한다. 데이터 생성 장치(90a, 90b, 90c, 90d)에서 생성되는 데이터가 외부 네트워크(예를 들어, 네트워크1(70a))에서 접근되는 것을 방지하기 위하여, 데이터 생성 장치(90a, 90b, 90c, 90d)와 룰 기반 데이터 처리 장치(80)는 외부 네트워크와 서로 다른 네트워크(70b)로 연결 될 수 있다. 예를 들어, 네트워크2(70b)는 SDN(Software Defined Network)로 구성될 수 있다.
도 3a는 본 발명의 또 다른 실시예에 따른 룰 기반 데이터 처리 장치의 블록 구성도이다. 도 3a에 도시된 바와 같이, 룰 기반 데이터 처리 장치(80)는 외부 장치와의 데이터 송수신을 위한 네트워크 인터페이스(800), 스텝-바이-스텝 방식의 룰 생성 툴을 제공하는 룰 생성 툴 제공부(802), 상기 룰 생성 툴에 대한 사용자 입력 데이터를 이용하여 XML과 같은 범용 포맷의 룰 정의 데이터를 생성하는 룰 정의 데이터 생성부(804) 및 룰 정의 데이터 및 처리 대상 데이터를 제공 받아 룰에 기반한 처리 대상 데이터 처리를 수행하고, 그 결과를 네트워크 인터페이스(800)를 통해 외부 장치에 출력하는 룰 엔진 구동부(806)를 포함할 수 있다. 룰 생성 툴이 웹 기반 UI로 구성될 수 있도록, 룰 생성 툴 제공부(802)는 웹 서버 모듈을 구비할 수 있다.
도 3b는 본 발명의 또 다른 실시예에 따른 룰 기반 데이터 처리 장치의 하드웨어 구성도이다. 룰 기반 데이터 처리 장치는 도 3b에 도시된 것과 같은 하드웨어로 구현될 수도 있다. 본 실시예에 따른 룰 기반 데이터 처리 장치(80)는 프로세서(810), RAM(812), 네트워크 인터페이스(816), 스토리지(818) 및 시스템 버스(814)를 포함한다. 프로세서(810), 네트워크 인터페이스(816), 스토리지(818) 및 RAM(812)은 시스템 버스(814)를 통하여 데이터를 송수신한다.
RAM(812)은 네트워크 인터페이스(816)를 통해 연결된 사용자 단말에 룰 생성 툴을 제공하고, 상기 룰 생성 툴을 통해 입력 된 사용자 입력 데이터를 이용하여 룰 정의 데이터를 생성하고, 상기 룰 정의 데이터를 해석하여 데이터 처리 룰을 구성하고, 상기 데이터 처리 룰으로 데이터를 처리한 후 그 결과를 출력하는 컴퓨터 프로그램을 로드한다. 프로세서(810)는 메모리에 로드 된 컴퓨터 프로그램을 실행한다.
스토리지(818)에는 상기 컴퓨터 프로그램의 바이너리 데이터 및 리소스 데이터가 저장된다. 상기 컴퓨터 프로그램은 룰 생성 툴 제공용 웹 서버 모듈(820), 룰 정의 데이터 생성 모듈(822) 및 룰 엔진 모듈(824)으로 구성된다.
룰 생성 툴 제공용 웹 서버 모듈(820)은, 룰(rule)을 구성하는 각각의 스텝을 정의하기 위한 복수의 스텝 정의 UI(User Interface)를 제공하는 오퍼레이션을 포함한다. 상기 스텝 정의 UI는 오퍼레이션을 지정하기 위한 제1 영역, 상기 오퍼레이션의 파라미터를 지정하기 위한 제2 영역, 상기 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 제3 영역 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 제4 영역을 포함하는 것인, 오퍼레이션을 포함한다. 상기 복수의 스텝 정의 UI 중 상기 제3 영역의 링크 또는 상게 제4 영역의 링크를 통하여 연결되는 후속 스텝에 대한 스텝 정의 UI는, 상기 오퍼레이션의 파라미터로서 상기 후속 스텝 보다 이전에 수행 되는 스텝의 오퍼레이션 출력 데이터가 지정 될 수 있도록 지원한다.
일 실시예에서, 상기 파라미터 값에는 사전 정의 된 환경 인디케이터의 입력이 지원된다. 상기 환경 인디케이터는, 평가 대상 데이터에 포함된 헤더정보를 이용하여 상기 환경 인디케이터가 가리키는 환경 값으로 치환되는 것이다.
상기 치환 작업은 룰 엔진 모듈이 담당한다. 룰 엔진 모듈(824)에는 각각의 환경 별로 상기 치환 작업을 담당하기 위한 특화 함수가 포함되어 있다. 상기 특화 함수는 평가 대상 데이터의 헤더 정보를 해석하여 상기 환경 인디케이터에 대응되는 값을 리턴한다. 아래는 상기 환경 인디케이터의 예시이다.
NUM_CPU_CORE: CPU 코어의 개수로 치환됨
OS_VERSION: OS VERSION 정보로 치환됨
HA_AVAILABILITY: High Availability 기능의 존재 여부(TRUE/FALSE)로 치환됨
룰 정의 데이터 생성 모듈(822)은 상기 복수의 스텝 정의 UI를 통하여 입력된 각 스텝의 데이터로 구성된 룰(rule) 정의 데이터를 생성하는 오퍼레이션을 포함한다. 예를 들어, 룰 정의 데이터가 XML 기반으로 생성된다면, 생성 모듈(822)은 각 스텝의 오퍼레이션을 확인하고, 각 오퍼레이션 별로 사전 세팅 된 XML 템플릿에 사용자 입력 데이터를 덧붙인 후, 각 스텝의 대응 XML 결과물들을 연결(concatenation)하는 것에 의하여, 룰 정의 데이터를 생성할 수 있다.
룰 엔진 모듈(824)은 상기 룰 정의 데이터 및 처리 대상 데이터를 제공 받아 룰에 기반한 처리 대상 데이터 처리를 수행하고, 그 결과를 네트워크 인터페이스(816)를 통해 외부 장치에 출력하는 오퍼레이션을 포함한다.
본 명세서에서, 상기 오퍼레이션은, 프로세서(810)에 의하여 해석되고 실행 될 수 있으며, 특정 기능을 수행하는 일련의 이상의 명령어로 구성 된다.
도 4는 본 발명의 또 다른 실시예에 따른 폐쇄 사이트 내 발생 데이터의 룰 기반 처리 시스템의 구성도이다. 본 발명의 일 실시예에 따른 룰 기반 처리 시스템은, 도 4에 도시된 바와 같이, 룰 생성 툴 제공 기능 및 룰 엔진 기능이 서로 분리된 장치(81, 82)를 통하여 제공될 수도 있다. 즉, 본 실시예에서, 룰 생성 툴 제공 기능 및 룰 엔진 기능은 서로 독립 되어 있다. 룰 생성 툴 제공 장치(81)에 의하여 생성 되는 룰 정의 데이터는 사용자 단말(60d)에 제공된다.
룰 엔진 실행 장치(82)가 폐쇄 네트워크(70d)에 연결된 경우, 룰 엔진 실행 장치(82)는 외부 네트워크를 통하여 접속할 수 없다. 데이터 처리 룰을 작성하고자 하는 사용자는 인터넷을 통하여 자유롭게 접속할 수 있는 룰 생성 툴 제공 장치(81)로 미리 룰 정의 데이터를 생성함으로써, 업무의 효율성을 기할 수 있을 것이다. 상기 사용자는, 처리하고자 하는 데이터의 샘플을 이용하여 룰이 제대로 구현 되었는지 쉽게 테스트 할 수 있을 것이다.
상기 사용자는 폐쇄 네트워크(70d)에 연결 된 룰 엔진 실행 장치(82)에 상기 룰 정의 데이터가 저장 된 기록 매체를 삽입함으로써, 룰 엔진 실행 장치(82)에 데이터 생성 장치(90e)에서 생성된 데이터를 처리하기 위한 새로운 룰을 입력할 수 있다.
이하, 도 5 내지 도 8을 참조하여, 스텝-바이-스텝 방식의 룰 구성에 대하여 보다 자세히 설명한다.
도 5는 본 발명의 몇몇 실시예들에서 스텝-바이-스텝 방식으로 룰이 구성될 때, 각 스텝이 어떤 정보를 포함하는지 설명하기 위한 도면이다. 이미 설명한 바와 같이, '룰'은 각각의 스텝(100-1, 100-2, 100-3, 100-4)이 순차적으로 수행되는 것에 의하여 구현된다. 다만, 각각의 스텝이 '무조건적으로' 순차적으로 수행되는 것은 아니다. 즉, 무조건 스텝1, 스텝2, 스텝3, 스텝4 등과 같이 순서대로 수행되는 것은 아니며, 각 스텝의 오퍼레이션 수행 결과에 따라 다음 플로우가 지정된다.
일 실시예에서, 오퍼레이션 수행 결과는 오퍼레이션 성공(SUCCESS) 및 오퍼레이션 실패(FAIL)의 경우로 나뉜다. 오퍼레이션 성공은, 지정된 오퍼레이션의 수행 과정에서 예외 처리 없이 정상 출력이 발생한 것을 가리킨다. 예를 들어, GREP 오퍼레이션에서 입력된 데이터 또는 특정 커맨드의 실행 결과에서 특정 문자열 또는 패턴을 찾았다면 오퍼레이션 성공, 찾지 못했다면 오퍼레이션 실패로 간주한다. 다른 실시예에서, 오퍼레이션 수행 결과는 3개 이상의 경우로 나뉠 수도 있다.
각각의 스텝에는 고유의 아이디 또는 순차적인 아이디가 부여될 수 있다.
각각의 스텝은 아이디, 오퍼레이션 및 그 파라미터, 수행 성공시 링크 및 수행 실패시 링크로 정의될 수 있다.
이하, 하나의 샘플 데이터 평가 룰을 이용하여, 스텝-바이-스텝 방식으로 룰이 구성되고, 룰 생성 툴을 통하여 룰이 구성되며, 룰 정의 데이터로 표현되는 과정을 설명한다.
도 6a는 'AIX' 환경에서 생성 된 데이터에서 'tcp_sendspace'라는 아이템이 평가되는 룰을 도시한다. 도 6a에 도시된 룰은 tcp_sendspace의 값이 8192보다 커야 한다는 것이다. tcp_sendspace를 얻는 방법은 다음과 같다.'no -a tcp_sendspace'라는 command를 수행하고, 그 결과물에서 tcp_sendspace를 찾은 다음(grep tcp_sendspace), 그 결과물에서 3번째 컬럼의 값을 찾는다.
도 6b는 상기 룰을 스텝-바이-스텝 방식으로 구성한 것이다.
도 6c는 도 6b에 기재된 것을 기초로, 도 5에 도시된 바와 같이 각 스텝을 정의한 것이다.
첫 번째 스텝(100-1)은 'grep' 오퍼레이션을 수행하는 것이다. 'no -a tcp_sendspace' command의 결과 데이터에서 'tcp_sendspace'를 찾는 것으로 파라미터가 설정되었다. 'grep' 오퍼레이션의 성공 시, 즉, 'no -a tcp_sendspace' command의 결과 데이터에 'tcp_sendspace'가 존재하는 경우, 오퍼레이션 성공 링크(101)에 지정된 바와 같이, 두 번째 스텝(100-2)으로 플로우가 이동하고, 반대의 경우, 오퍼레이션 실패 링크(103)에 지정된 바와 같이, 데이터 평가 결과가 비정상인 것으로 종료된다.
두 번째 스텝(100-2)은 'cut' 오퍼레이션을 수행하는 것이다. 첫 번째 스텝의 출력 데이터(즉, 'tcp_sendspace = 8000')에서 첫 번째 줄, 3 번째 필드를 cut하도록 파라미터가 설정되었다. 여기서 중요한 것은, 파라미터 중 cut 대상을 가리키는 'where to find'(105)에 이전 스텝이 지정된 것이다. 이로써, 이전 스텝의 오퍼레이션 수행 결과를 이어 받아 처리할 수 있게 된다. 첫 번째 스텝의 출력 데이터에서 첫 번째 줄, 3 번째 필드가 존재하는 경우, 오퍼레이션 성공 링크(107)에 지정된 바와 같이, 세 번째 스텝(100-3)으로 플로우가 이동하고, 반대의 경우, 오퍼레이션 실패 링크(109)에 지정된 바와 같이, 데이터 평가 결과가 비정상인 것으로 종료된다.
세 번째 스텝(100-3)은 'compare' 오퍼레이션을 수행하는 것이다. 두 번째 스텝의 출력 데이터(즉, '8000')와 '8192'를 비교하도록 파라미터가 설정되었다. 여기서 중요한 것은, 파라미터 중 비교 대상을 가리키는 'item to compare'(111)에 이전 스텝이 지정된 것이다. 이로써, 이전 스텝의 오퍼레이션 수행 결과를 이어 받아 처리할 수 있게 된다. 두 번째 스텝의 출력 데이터가 8192보다 큰 경우(Greater than or Equal; GE), 오퍼레이션 성공 링크(113)에 지정된 바와 같이, 데이터 평가 결과가 정상인 것으로 종료되고, 반대의 경우, 오퍼레이션 실패 링크(115)에 지정된 바와 같이, 데이터 평가 결과가 비정상인 것으로 종료된다. 세 번째 스텝에서는, 두 번째 스텝의 출력 데이터가 8192보다 작으므로, 데이터 평가 결과가 비정상인 것으로 종료될 것이다.
도 6d 내지 도 6f는 각각 첫 번째 스텝(100-1), 두 번째 스텝(100-2), 세 번째 스텝(100-3)이 각각 입력되는 스텝 정의 UI(User Interface) 예시를 도시한다.
첫 번째 스텝의 스텝 정의 UI(200)는 오퍼레이션을 지정하기 위한 제1 영역(201), 상기 오퍼레이션의 파라미터를 지정하기 위한 제2 영역(203), 상기 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 제3 영역(205) 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 제4 영역(207)을 포함한다.
일 실시예에서, 제3 영역(205)의 오퍼레이션 성공 링크 또는 제4 영역(207)의 오퍼레이션 실패 링크 중 어느 하나가 다음 스텝을 가리키는 인디케이터(NEXT)로 지정된 경우, 상기 다음 스텝을 정의하기 위한 스텝 정의 UI가 제공될 수 있다. 첫 번째 스텝의 오퍼레이션 성공 링크가 'NEXT'로 지정되어, 두 번째 스텝의 스텝 정의 UI(202)가 제공된다.
두 번째 스텝의 스텝 정의 UI(202) 역시 오퍼레이션을 지정하기 위한 제1 영역(220), 상기 오퍼레이션의 파라미터를 지정하기 위한 제2 영역(222), 상기 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 제3 영역(224) 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 제4 영역(226)을 포함한다.
두 번째 스텝의 경우, 파라미터 중 어디서 찾을 것인지를 가리키는 where_to_find 파라미터에 직전 스텝을 가리키는 'step1' 값이 입력되어 있다(222a). 두 번째 스텝의 오퍼레이션 성공 링크가 'NEXT'로 지정되어, 세 번째 스텝의 스텝 정의 UI(204)가 제공된다.
세 번째 스텝의 스텝 정의 UI(204) 역시 오퍼레이션을 지정하기 위한 제1 영역(240), 상기 오퍼레이션의 파라미터를 지정하기 위한 제2 영역(242), 상기 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 제3 영역(244) 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 제4 영역(246)을 포함한다.
세 번째 스텝의 경우, 파라미터 중 무엇을 비교할 것인지를 가리키는 item_to_compare 파라미터에 직전 스텝을 가리키는 'step2' 값이 입력되어 있다(242a). 일 실시예에서, 상기 제3 영역의 링크 및 상기 제4 영역의 링크 중 어느 하나에 다음 스텝을 가리키는 인디케이터가 지정되지 않은 경우, 더 이상의 스텝 정의 UI를 제공하지 않는다. 이 때, 상기 룰 정의 데이터의 생성을 진행하기 위한 확인(confirm) 버튼이 자동으로 표시될 수 있다. 세 번째 스텝의 오퍼레이션 성공 링크가 'OK'로 지정되고, 오퍼레이션 실패 링크가 'NO'로 지정되어, 더 이상의 스텝 정의 UI가 제공되지 않고, 룰 정의 데이터의 생성을 진행하기 위한 확인(confirm) 버튼이 자동으로 표시될 수 있다.
일 실시예에서, 초보자를 가이드 하기 위한 wizard 형의 룰 정의 툴이 제공될 수 있다. 많은 경우, 특정 패턴을 찾고, 그 패턴 내에서 데이터를 cut 하고, cut 된 필드 값을 특정 한계치와 비교하여 데이터 평가 룰을 생성할 수 있다는 것에 착안하여, 상기 복수의 스텝 정의 UI는, 제1 스텝을 정의하는 제1 스텝 정의 UI, 상기 제1 스텝 다음으로 수행되는 제2 스텝을 정의하는 제2 스텝 정의 UI 및 상기 제2 스텝 다음으로 수행되는 제3 스텝을 정의하는 제3 스텝 정의 UI를 포함하고, 상기 제1 스텝 정의 UI의 제1 영역은, 평가 대상 데이터로부터 특정 패턴을 찾는 찾기 오퍼레이션이 디폴트 세팅된 것이고, 상기 제2 스텝 정의 UI의 제1 영역은, 상기 제1 스텝의 오퍼레이션 출력 데이터로부터 특정 위치를 컷 하는 컷 오퍼레이션이 디폴트 세팅된 것이고, 상기 제3 스텝 정의 UI의 제1 영역은, 상기 제2 스텝의 오퍼레이션 출력 데이터와 특정 값을 비교하는 비교 오퍼레이션이 디폴트 세팅된 것일 수 있다. 즉, 본 실시예에 따르면, 초보자가 쉽게 간단한 형태의 룰을 정의해 볼 수 있는 효과가 있다.
도 6g는 도 6d 내지 도 6f를 참조하여 설명된 사용자 입력에 따라 XML 형식의 룰 정의 데이터가 생성된 결과를 도시한다. 총 3개의 스텝 태그를 포함하는 룰 태그가 생성 된 것을 확인할 수 있다.
이하, 도 7 내지 도 8을 참조하여, 본 발명의 또 다른 실시예에 따른 룰 기반 데이터 처리 방법을 설명한다. 중복된 설명을 피하기 위하여, 이미 설명 된 사항은 중복하여 설명하지 않는다.
도 7은, 본 실시예의 룰 기반 데이터 처리 방법을 전체적으로 표현한 순서도이다. 룰 생성용 툴의 UI를 단말에 제공하고(S300), 상기 단말로부터 룰 생성용 사용자 입력을 제공받으면(S302), 사용자 입력을 이용하여 룰 정의 데이터를 생성하며(S304), 상기 룰 정의 데이터를 룰 엔진에 제공 되어 해석되며(S306), 룰 엔진이 처리 대상 데이터를 입력 받아 룰 기반 데이터 처리를 수행한다(S308). 도 8을 참조하여, 룰 엔진의 동작을 상세히 설명한다.
도 8에 도시된 바와 같이, 룰 엔진은 각각의 스텝에 대하여 오퍼레이션 특화 모듈을 호출하고(S382)(예, 'grep' 오퍼레이션이 사용된 스텝이면 'grep' 함수 처리 모듈을 호출), 현재 스텝의 오퍼레이션을 수행한다(S384).
오퍼레이션의 성공 시(S386), 오퍼레이션 출력 데이터를 생성하여 다음 스텝의 입력 데이터로서 사용될 수 있도록 한다(S388). 수행 성공 시 링크로 지정된 사항에 따라 다음 플로우가 달라지는데, OK의 경우, 데이터 처리 결과를 정상으로 출력하고 종료하고(S392), NO의 경우, 데이터 처리 결과를 비정상으로 출력하고 종료하며(S394), NEXT의 경우, 다음 스텝으로 이동한다(S396).
오퍼레이션의 실패 시(S398), 수행 실패 시 링크로 지정된 사항에 따라 다음 플로우가 달라지는데, OK의 경우, 데이터 처리 결과를 정상으로 출력하고 종료하고(S400), NO의 경우, 데이터 처리 결과를 비정상으로 출력하고 종료하며(S402), NEXT의 경우, 다음 스텝으로 이동한다(S404).
지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.
상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (9)

  1. 룰(rule)을 구성하는 각각의 스텝을 정의하기 위한 복수의 스텝 정의 UI(User Interface)를 제공하되, 상기 스텝 정의 UI는 오퍼레이션을 지정하기 위한 제1 영역, 상기 오퍼레이션의 파라미터를 지정하기 위한 제2 영역, 상기 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 제3 영역 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 제4 영역을 포함하는 것인 단계; 및
    상기 복수의 스텝 정의 UI를 통하여 입력된 각 스텝의 데이터로 구성된 룰(rule) 정의 데이터를 생성하는 단계를 포함하되,
    상기 복수의 스텝 정의 UI 중 상기 제3 영역의 링크 또는 상기 제4 영역의 링크를 통하여 연결되는 후속 스텝에 대한 스텝 정의 UI는, 상기 오퍼레이션의 파라미터로서 상기 후속 스텝 보다 이전에 수행 되는 스텝의 오퍼레이션 출력 데이터가 지정 될 수 있도록 지원하는 것이며
    상기 룰은 평가 대상 데이터를 평가하기 위한 것이고,
    상기 제2 영역은 복수의 파라미터 각각에 대하여 파라미터 명칭이 표시되는 영역 및 파라미터 값을 입력하는 영역을 포함하고,
    상기 파라미터 값에는 사전 정의 된 환경 인디케이터의 입력이 지원되며,
    상기 환경 인디케이터는, 룰 엔진에 의하여, 상기 평가 대상 데이터에 포함된 헤더정보를 이용하여 상기 환경 인디케이터가 가리키는 환경 값으로 치환되는 것이고,
    상기 룰 엔진은, 상기 룰 정의 데이터를 해석하여 룰을 구성하고, 상기 구성된 룰을 이용하여 상기 평가 대상 데이터를 평가하는 것인,
    룰 생성 방법.
  2. 제1 항에 있어서,
    상기 복수의 스텝 정의 UI는, 상기 제3 영역의 링크 또는 상기 제4 영역의 링크 중 어느 하나가, 다음 스텝을 가리키는 인디케이터로 지정 될 수 있도록 지원하고,
    상기 복수의 스텝 정의 UI를 제공하는 단계는, 상기 제3 영역의 링크 또는 상기 제4 영역의 링크 중 어느 하나가 다음 스텝을 가리키는 인디케이터로 지정된 경우 상기 다음 스텝을 정의하기 위한 스텝 정의 UI를 제공하고, 상기 제3 영역의 링크 및 상기 제4 영역의 링크 모두 다음 스텝을 가리키는 인디케이터로 지정되지 않은 경우 더 이상의 스텝 정의 UI를 제공하지 않는 단계를 포함하는,
    룰 생성 방법.
  3. 제1 항 또는 제2항 중 어느 한항에 있어서,
    상기 룰은 평가 대상 데이터를 평가하기 위한 것이고,
    상기 복수의 스텝 정의 UI는, 상기 제3 영역의 링크 및 상기 제4 영역의 링크에, 다음 스텝을 가리키는 인디케이터, 데이터 정상을 가리키는 인디케이터 및 데이터 비정상을 가리키는 인디케이터 중 어느 하나가 각각 지정 될 수 있도록 지원하는,
    룰 생성 방법.
  4. 삭제
  5. 룰(rule)을 구성하는 각각의 스텝을 정의하기 위한 복수의 스텝 정의 UI(User Interface)를 제공하되, 상기 스텝 정의 UI는 오퍼레이션을 지정하기 위한 제1 영역, 상기 오퍼레이션의 파라미터를 지정하기 위한 제2 영역, 상기 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 제3 영역 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 제4 영역을 포함하는 것인 단계; 및
    상기 복수의 스텝 정의 UI를 통하여 입력된 각 스텝의 데이터로 구성된 룰(rule) 정의 데이터를 생성하는 단계를 포함하되,
    상기 복수의 스텝 정의 UI 중 상기 제3 영역의 링크 또는 상기 제4 영역의 링크를 통하여 연결되는 후속 스텝에 대한 스텝 정의 UI는, 상기 오퍼레이션의 파라미터로서 상기 후속 스텝 보다 이전에 수행 되는 스텝의 오퍼레이션 출력 데이터가 지정 될 수 있도록 지원하는 것이고,
    상기 룰은 평가 대상 데이터를 평가하기 위한 것이고,
    상기 스텝 정의 UI의 제1 영역은, 찾기 오퍼레이션, 컷 오퍼레이션 및 비교 오퍼레이션 중 어느 하나가 상기 스텝의 오퍼레이션으로 지정되도록 지원하는 것이며,
    상기 복수의 스텝 정의 UI는,
    제1 스텝을 정의하는 제1 스텝 정의 UI, 상기 제1 스텝 다음으로 수행되는 제2 스텝을 정의하는 제2 스텝 정의 UI 및 상기 제2 스텝 다음으로 수행되는 제3 스텝을 정의하는 제3 스텝 정의 UI를 포함하고,
    상기 제1 스텝 정의 UI의 제1 영역은, 평가 대상 데이터로부터 특정 패턴을 찾는 찾기 오퍼레이션이 디폴트 세팅된 것이고,
    상기 제2 스텝 정의 UI의 제1 영역은, 상기 제1 스텝의 오퍼레이션 출력 데이터로부터 특정 위치를 컷 하는 컷 오퍼레이션이 디폴트 세팅된 것이고,
    상기 제3 스텝 정의 UI의 제1 영역은, 상기 제2 스텝의 오퍼레이션 출력 데이터와 특정 값을 비교하는 비교 오퍼레이션이 디폴트 세팅된 것인,
    룰 생성 방법.
  6. 제1 항에 있어서,
    상기 룰 정의 데이터를 생성하는 단계는,
    마크업 언어(markup language) 형식의 상기 룰 정의 데이터를 생성하는 단계를 포함하는,
    룰 생성 방법.
  7. 삭제
  8. 제1 환경에서 작성된 제1 평가 대상 데이터를 평가하기 위한 제1 룰(rule)을 구성하는 각각의 스텝을 정의하고, 상기 제1 환경과 다른 제2 환경에서 작성된 제2 평가 대상 데이터를 평가하기 위한 제2 룰을 구성하는 각각의 스텝을 정의하기 위한 복수의 스텝 정의 UI(User Interface)를 제공하는 단계;
    상기 복수의 스텝 정의 UI를 통하여 입력된 데이터를 이용하여 상기 제1 룰의 룰 정의 데이터 및 상기 제2 룰의 룰 정의 데이터를 생성하는 단계; 및
    상기 룰 정의 데이터를 해석하여 룰을 구성하고, 상기 구성된 룰을 이용하여 평가 대상 데이터를 평가하는 룰 엔진을 이용하여, 상기 제1 룰에 기반한 상기 제1 평가 대상 데이터의 평가를 수행하고, 상기 제2 룰에 기반한 상기 제2 평가 대상 데이터의 평가를 수행하는 단계를 포함하되,
    상기 복수의 스텝 정의 UI에 포함되는 각각의 스텝 정의 UI는, 정의되는 스텝에 대응되는 오퍼레이션의 수행 성공시의 링크를 지정하기 위한 영역 및 상기 오퍼레이션의 수행 실패시의 링크를 지정하기 위한 영역과, 상기 오퍼레이션의 파라미터로서 상기 정의되는 스텝 이전에 수행되는 스텝의 오퍼레이션 출력 데이터가 지정 될 수 있도록 지원하는 것이고,
    상기 복수의 스텝 정의 UI(User Interface)를 제공하는 단계는,
    파라미터 명칭이 표시되는 영역 및 파라미터 값을 입력하는 영역으로부터 파라미터 값이 입력되고,
    상기 파라미터 값에는 사전 정의 된 환경 인디케이터의 입력이 지원되며,
    상기 환경 인디케이터는, 룰 엔진에 의하여, 상기 평가 대상 데이터에 포함된 헤더정보를 이용하여 상기 환경 인디케이터가 가리키는 환경 값으로 치환되는 것이고,
    상기 룰 엔진은, 상기 룰 정의 데이터를 해석하여 룰을 구성하고, 상기 구성된 룰을 이용하여 상기 평가 대상 데이터를 평가하는 것인,
    스텝-바이-스텝(step-by-step) 방식의 룰 생성 툴에 의하여 생성된 룰을 이용한 이종 환경 생성 데이터의 평가 방법.
  9. 제8 항에 있어서,
    상기 제1 평가 대상 데이터의 포맷과 상기 제2 평가 대상 데이터의 포맷은 서로 상이한 것이고, 상기 제1 룰의 룰 정의 데이터의 형식과 상기 제2 룰의 룰 정의 데이터의 형식은 서로 동일한 것인,
    스텝-바이-스텝(step-by-step) 방식의 룰 생성 툴에 의하여 생성된 룰을 이용한 이종 환경 생성 데이터의 평가 방법.
KR1020160049894A 2016-04-25 2016-04-25 데이터 처리 룰 생성 방법 KR102046571B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160049894A KR102046571B1 (ko) 2016-04-25 2016-04-25 데이터 처리 룰 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160049894A KR102046571B1 (ko) 2016-04-25 2016-04-25 데이터 처리 룰 생성 방법

Publications (2)

Publication Number Publication Date
KR20170121460A KR20170121460A (ko) 2017-11-02
KR102046571B1 true KR102046571B1 (ko) 2019-11-19

Family

ID=60383557

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160049894A KR102046571B1 (ko) 2016-04-25 2016-04-25 데이터 처리 룰 생성 방법

Country Status (1)

Country Link
KR (1) KR102046571B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102267920B1 (ko) * 2020-03-13 2021-06-21 성재모 매트릭스 연산 방법 및 그 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130179772A1 (en) * 2011-07-22 2013-07-11 International Business Machines Corporation Supporting generation of transformation rule

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100058445A (ko) * 2010-05-24 2010-06-03 (주)위세아이텍 규칙기반 기술을 이용한 이종 메타데이터 자동 추출방법 및 시스템
KR101281451B1 (ko) 2012-09-20 2013-07-03 주식회사 트레이스 커버 윈도우 일체형 터치 스크린 및 그 제조방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130179772A1 (en) * 2011-07-22 2013-07-11 International Business Machines Corporation Supporting generation of transformation rule

Also Published As

Publication number Publication date
KR20170121460A (ko) 2017-11-02

Similar Documents

Publication Publication Date Title
US10769056B2 (en) System for autonomously testing a computer system
US11392485B2 (en) Auto test generator
US11551105B2 (en) Knowledge management using machine learning model trained on incident-knowledge relationship fingerprints
CN114586048A (zh) 机器学习(ml)基础设施技术
EP3462268B1 (en) Classification modeling for monitoring, diagnostics optimization and control
CN114616560A (zh) 用于机器学习(ml)的自适应和上下文感知自动化服务组成的技术
US20100241244A1 (en) Natively retaining project documentation in a controller
US11593562B2 (en) Advanced machine learning interfaces
US11573788B2 (en) Creation and execution of customized code for a data processing platform
CN112380255A (zh) 一种业务处理方法、装置、设备和存储介质
JP6808588B2 (ja) エレベータシステム
Qiao et al. Taskweaver: A code-first agent framework
CN116034369A (zh) 利用合规性验证对设计项目数据进行自动功能集群
Wilking et al. Integrating machine learning in digital twins by utilizing SysML system models
Niranjan Jenkins pipelines: A novel approach to machine learning operations (mlops)
KR102046571B1 (ko) 데이터 처리 룰 생성 방법
US11842170B2 (en) Collaborative industrial integrated development and execution environment
Parashar et al. Revolutionary transformations in twentieth century: Making AI-assisted software development
US20230376795A1 (en) Device, computing platform and method of analyzing log files of an industrial plant
WO2022140650A2 (en) Systems and methods for building and deploying machine learning applications
CN110928761B (zh) 需求链及其应用的系统和方法
Zorn Interactive elicitation of resilience scenarios in microservice architectures
Ivers et al. Can AI Close the Design-Code Abstraction Gap?
CN117806980B (zh) 一种基于大语言模型的测试用例自动生成装置
US11868166B2 (en) Repairing machine learning pipelines

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant