KR20170130741A - 룰 관리 시스템 및 방법 - Google Patents

룰 관리 시스템 및 방법 Download PDF

Info

Publication number
KR20170130741A
KR20170130741A KR1020160061314A KR20160061314A KR20170130741A KR 20170130741 A KR20170130741 A KR 20170130741A KR 1020160061314 A KR1020160061314 A KR 1020160061314A KR 20160061314 A KR20160061314 A KR 20160061314A KR 20170130741 A KR20170130741 A KR 20170130741A
Authority
KR
South Korea
Prior art keywords
rule
virtual
query
attribute information
optimizing unit
Prior art date
Application number
KR1020160061314A
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 삼성에스디에스 주식회사
Priority to KR1020160061314A priority Critical patent/KR20170130741A/ko
Publication of KR20170130741A publication Critical patent/KR20170130741A/ko

Links

Images

Classifications

    • 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/23Updating
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

룰 관리 시스템 및 방법이 개시된다. 본 발명의 일 실시예에 따른 룰 관리 시스템은 기간계 시스템(legacy system)으로부터 하나 이상의 쿼리(query) 및 상기 하나 이상의 쿼리 각각에 대응되는 속성 정보를 입력 받고, 입력된 상기 쿼리 및 상기 속성 정보로부터 하나 이상의 가상 룰을 생성하는 룰 최적화부(rule optimizer); 및 상기 기간계 시스템으로부터 신규 쿼리를 입력 받고, 입력된 상기 신규 쿼리와 연관된 하나 이상의 가상 룰을 상기 신규 쿼리에 적용하여 의사 결정(decision-making)을 수행하는 룰 엔진(rule engine)을 포함한다.

Description

룰 관리 시스템 및 방법{SYSTEM AND METHOD FOR MANAGING RULES}
본 발명의 실시예들은 룰 처리를 효율적으로 수행하기 위한 기술과 연관된다.
룰 엔진(Rule Engine)이란 기업의 의사 결정에 사용되는 복잡한 업무 규칙 또는 변경이 잦은 프로세스를 도출 및 정형화하여 관리하는 자동화 시스템, 기술 또는 솔루션을 의미한다. 일반적으로, 룰 엔진은 기간계 시스템과 연동하여 의사 결정을 수행하게 된다. 기간계 시스템은 룰 엔진과 연동하여 업무 처리를 수행하는 시스템으로서, 기존의 플랫폼, 프로그래밍 언어, 기술 등에 기초하여 개발될 수 있다.
최근 IT 기술이 발달함에 따라 업무 처리를 위한 의사 결정 절차가 복잡해졌다. 이에 따라, 의사 결정을 위해 룰 엔진이 수행하는 룰 또한 다양해지고 복잡해졌다. 룰의 개수가 증가할수록 룰 엔진이 의사 결정을 수행하는 데 소모되는 시간 및 자원이 증가하게 된다. 이러한 시간 및 자원의 증가는 룰 엔진의 성능과 직결된다.
문제는 룰 저장소에 저장되어 있는 룰 중에는 실제로 사용되지 않는 룰들 및 중복되는 룰들도 존재한다는 점이다. 그러나 복잡한 의사 결정을 수행하는 룰들을 사용자가 일일히 관리하기에는 무리가 있다. 이에 따라, 불필요한 룰들을 배제하고, 실제로 의사 결정에 사용되는 룰들을 최적화시킬 수 있는 기술의 필요성이 대두되었다.
한국공개특허공보 제10-2015-0106365호(2015.09.21)
본 발명의 실시예들은 룰 엔진에 입력되는 쿼리를 분석하여 기존의 복잡한 룰들을 최적화시키고 최적화된 룰들을 이용하여 의사 결정을 수행하기 위한 것이다.
본 발명의 예시적인 실시예에 따르면, 기간계 시스템(legacy system)으로부터 하나 이상의 쿼리(query) 및 상기 하나 이상의 쿼리 각각에 대응되는 속성 정보를 입력 받고, 입력된 상기 쿼리 및 상기 속성 정보로부터 하나 이상의 가상 룰을 생성하는 룰 최적화부(rule optimizer); 및 상기 기간계 시스템으로부터 신규 쿼리를 입력 받고, 입력된 상기 신규 쿼리와 연관된 하나 이상의 가상 룰을 상기 신규 쿼리에 적용하여 의사 결정(decision-making)을 수행하는 룰 엔진(rule engine)을 포함하는, 룰 관리 시스템이 제공된다.
상기 속성 정보는, 상기 쿼리에 포함되는 데이터의 범위(Range) 및 상기 쿼리의 데이터 타입(Data Type) 중 하나 이상을 포함할 수 있다.
상기 룰 최적화부는, 상기 쿼리에 포함된 데이터 중 적어도 일부로부터 상기 쿼리에 포함된 데이터의 속성을 획득하고, 상기 획득된 속성을 상기 기간계 시스템으로부터 입력된 속성 정보와 비교하여 상기 가상 룰의 속성을 결정할 수 있다.
상기 룰 최적화부는, 상기 가상 룰을 이용하여 기 정의된 하나 이상의 룰을 삭제하거나 수정할 수 있다.
상기 룰 최적화부는, 상기 가상 룰과 기 정의된 룰의 적어도 일부가 중복되는 경우, 상기 가상 룰과 중복되는 상기 룰을 삭제하거나 상기 가상 룰과 중복되는 상기 룰의 데이터의 범위 또는 데이터 타입을 변경할 수 있다.
상기 룰 최적화부는, 상기 가상 룰을 이용하여 수정된 룰이 하나 이상 존재하는 경우, 수정된 하나 이상의 상기 룰과 상기 가상 룰을 병합할 수 있다.
상기 룰 최적화부는, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 입력 받는 경우, 오류 메시지를 생성할 수 있다.
상기 룰 최적화부는, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 설정된 횟수 이상 입력 받는 경우, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 이용하여 상기 가상 룰을 업데이트할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 룰 최적화부(rule optimizer)에서, 기간계 시스템(legacy system)으로부터 하나 이상의 쿼리(query) 및 상기 하나 이상의 쿼리 각각에 대응되는 속성 정보를 입력 받는 단계; 상기 룰 최적화부에서, 입력된 상기 쿼리 및 상기 속성 정보로부터 하나 이상의 가상 룰을 생성하는 단계; 룰 엔진(rule engine)에서, 상기 기간계 시스템으로부터 신규 쿼리를 입력 받는 단계; 및 상기 룰 엔진에서, 입력된 상기 신규 쿼리와 연관된 하나 이상의 가상 룰을 상기 신규 쿼리에 적용하여 의사 결정(decision-making)을 수행하는 단계를 포함하는, 룰 관리 방법이 제공된다.
상기 속성 정보는, 상기 쿼리에 포함되는 데이터의 범위(Range) 및 상기 쿼리의 데이터 타입(Data Type) 중 하나 이상을 포함할 수 있다.
상기 가상 룰을 생성하는 단계는, 상기 룰 최적화부에서, 상기 쿼리에 포함된 데이터 중 적어도 일부로부터 상기 쿼리에 포함된 데이터의 속성을 획득하는 단계; 및 상기 룰 최적화부에서, 상기 획득된 속성을 상기 기간계 시스템으로부터 입력된 속성 정보와 비교하여 상기 가상 룰의 속성을 결정하는 단계를 더 포함할 수 있다.
상기 가상 룰을 생성하는 단계는, 상기 룰 최적화부에서, 상기 가상 룰을 이용하여 기 정의된 하나 이상의 룰을 삭제하거나 수정하는 단계를 더 포함할 수 있다.
상기 룰을 삭제하거나 수정하는 단계는, 상기 가상 룰과 기 정의된 룰의 적어도 일부가 중복되는 경우, 상기 가상 룰과 중복되는 상기 룰을 삭제하거나 상기 가상 룰과 중복되는 상기 룰의 데이터의 범위 또는 데이터 타입을 변경할 수 있다.
상기 가상 룰을 생성하는 단계는, 상기 가상 룰을 이용하여 수정된 룰이 하나 이상 존재하는 경우, 상기 최적화부에서, 수정된 하나 이상의 상기 룰과 상기 가상 룰을 병합하는 단계를 더 포함할 수 있다.
상기 룰 최적화부에서, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 입력 받는 경우, 오류 메시지를 생성하는 단계를 더 포함할 수 있다.
상기 룰 최적화부에서, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 설정된 횟수 이상 입력 받는 경우, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 이용하여 상기 가상 룰을 업데이트할 수 있다.
본 발명의 실시예들에 따르면, 기간계 시스템으로부터 입력 받은 쿼리 및 쿼리의 속성 정보를 이용하여 가상 룰을 생성하고 가상 룰을 이용하여 기 정의된 룰들을 삭제 또는 수정함으로써, 기존의 복잡한 룰들을 최적화할 수 있다.
또한, 본 발명의 실시예들에 따르면, 가상 룰을 이용하여 의사 결정을 수행함으로써, 의사 결정을 수행하는 데 소요되는 시간을 단축하고 룰 수행 과정에서 발생되는 오류를 효율적으로 탐지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 룰 관리 시스템의 상세 구성을 나타낸 블록도
도 2는 본 발명의 일 실시예에 따른 가상 룰을 이용하여 기 정의된 룰들을 최적화하는 과정을 설명하기 위한 블록도
도 3은 본 발명의 일 실시예에 따른 가상 룰을 이용하여 기 정의된 룰들을 병합하는 과정을 설명하기 위한 블록도
도 4는 본 발명의 일 실시예에 따른 룰 관리 방법을 설명하기 위한 흐름도
도 5는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 연관된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 룰 관리 시스템(100)의 상세 구성을 나타낸 블록도이다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 룰 관리 시스템(100)은 기간계 시스템(150, legacy system)과 연동하여 의사 결정(decision-making)을 수행하는 시스템이다.
본 실시예들에 있어서, 의사 결정이란 업무 처리 과정에서 여러 행동 집합 중 특정 행동을 선택하는 과정을 의미한다. 또한, 업무란 기업, 단체, 공공기관 등에 존재하는 각종 사무로서, 예를 들어 병원에서 구급차의 경로를 배정하는 업무(emergency car routing), 도로교통공단에서 교통체증 패턴을 파악하고 대중 교통의 최적 경로를 설정하는 업무(traffic optimization) 등이 될 수 있다. 다만, 본 발명의 실시예들은 특정 종류 또는 형태의 업무에 한정되는 것은 아니다.
또한, 본 실시예들에 있어서, 기간계 시스템(150)은 룰 관리 시스템(100)과 연동하여 업무 처리를 수행하는 시스템으로서, 기존의 플랫폼, 프로그래밍 언어, 기술 등에 기초하여 개발될 수 있다. 구체적으로, 기간계 시스템(150)은 각 업무별 처리 로직을 관리하는 시스템으로서, 예를 들어 병원, 은행, 보험사 등에서 사용될 수 있다. 일 예시로서, 병원에서 사용되는 기간계 시스템(150)인 경우, 기간계 시스템(150)은 구급차의 경로를 배정하는 업무의 처리 로직(예컨대, 프로세스 1 → 프로세스 2 → 프로세스 3...), 환자의 병원 예약을 등록하는 업무의 처리 로직(예컨대, 프로세스 4 → 프로세스 5...) 등을 구비할 수 있으며 상기 처리 로직에 따라 업무 처리를 수행할 수 있다.
기간계 시스템(150)의 처리 로직 수행 중 사전에 정의된 룰(rule)을 기반으로 의사 결정을 도출하여야 하는 작업이 필요한 경우, 기간계 시스템(150)은 룰 엔진(102)에 쿼리(query)를 전송할 수 있다. 일 실시예에서, 기간계 시스템(150)은 API(160: application program interface)를 통해 룰 엔진(102)에 쿼리를 전송할 수 있다. API(160)는 응용 프로그램 또는 어플리케이션이 운영체제 등과 통신하는 데 사용되는 함수의 집합체로서, 룰 관리 시스템(100)과 기간계 시스템(150) 사이의 매개 역할을 수행할 수 있다. 룰 엔진(102)은 기 정의된 룰을 상기 쿼리에 적용하여 의사 결정을 수행하고, 의사 결정 결과를 기간계 시스템(150)으로 전송할 수 있다. 기간계 시스템(150)은 룰 엔진(102)으로부터 상기 의사 결정 결과를 수신하고, 상기 의사 결정 결과를 이용하여 처리 로직을 계속적으로 수행할 수 있다. 여기서, 룰은 의사 결정 과정에서 사용되는 규칙, 절차, 노하우, 지식 등을 모두 포함하는 넓은 의미로 사용된다.
이하에서는, 도 1을 참조하여 본 발명의 일 실시예에 따른 룰 관리 시스템(100)의 상세 구성에 대해 자세히 살펴보기로 한다. 도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 룰 관리 시스템(100)은 룰 엔진(102, rule engine), 룰 최적화부(104, rule optimizer) 및 룰 저장소(106, rule repository)를 포함한다.
룰 엔진(102)은 기 정의된 하나 이상의 룰을 기반으로 의사 결정을 수행하는 모듈이다. 구체적으로, 룰 엔진(102)은 기간계 시스템(150)으로부터 쿼리를 입력받고, 입력 받은 쿼리와 연관된 룰(또는 가상 룰)을 호출하여 의사 결정을 수행한 뒤, 의사 결정 결과를 기간계 시스템(150)으로 송신하도록 구성된다. 일 실시예에서, 룰 엔진(102)은 API(160)를 통해 기간계 시스템(150)으로부터 쿼리를 입력 받을 수 있으나, 본 발명의 실시예들은 특정한 종류의 쿼리 입력 방법에 제한되는 것은 아니다.
일 실시예에서, 룰 엔진(102)은 상기 가상 룰을 이용하여 의사 결정을 수행하도록 구성될 수 있다. 여기서, 가상 룰은 기 정의된 룰들을 삭제, 수정 또는 병합함으로써 새롭게 생성되는 룰로서, 의사 결정을 수행하는 데 소요되는 시간을 단축하고 룰 수행 과정에서 발생되는 오류를 효율적으로 탐지하기 위한 수단으로써 사용될 수 있다. 이하에서, 가상 룰을 삭제, 수정, 병합하는 등의 행위는 룰 엔진(102)에서의 룰 처리 속도(또는, 의사 결정의 수행 속도)를 최대로 증가시키기 위해 기 정의된 룰들을 최적화하는 것을 의미한다. 본 발명의 실시예들에서, 상기 가상 룰은 룰 최적화부(104)에 의하여 생성되며, 이에 대한 상세한 사항은 후술하기로 한다. 한편, 룰 엔진(102)은 가상 룰을 이용하여 의사 결정을 수행할 수 있으나, 여전히 기 정의된 룰(즉, 기존의 룰)을 이용하여 의사 결정을 수행할 수 있음은 물론이다. 이를 위해, 룰 엔진(102)은 기 정의된 룰들을 이용하여 가상 룰을 생성하되, 기 정의된 룰들을 룰 저장소(106)에 백업해 놓을 수 있다.
구체적으로, 룰 엔진(102)은 기간계 시스템(150)으로부터 입력 받은 쿼리와 연관된 룰(또는 가상 룰)을 호출하여 의사 결정을 수행할 수 있다. 이때, 룰과 연관된 쿼리는 룰을 수행하기 위한 요청을 포함할 수 있으며, 룰 엔진(102)은 입력 받은 쿼리와 대응되는 룰을 수행할 수 있다. 입력 받은 쿼리와 룰이 대응된다는 것은, 입력 받은 쿼리가 상기 룰을 수행시키기 위한 조건을 만족한다는 것이다. 일 실시예에서, 룰 저장소(106)에 저장된 하나 이상의 룰은 각각 대응되는 쿼리의 조건에 관한 정보를 포함할 수 있다. 예를 들어, 룰은 0에서 50 사이의 데이터 x를 포함하는 쿼리가 입력된 경우 수행되도록 구성될 수 있다. 상술한 예시에서, x=30인 데이터를 포함하는 쿼리가 입력되는 경우, 룰 엔진(102)은 상기 룰과 입력 받은 쿼리가 대응되는 것으로 판단하고 상기 룰을 수행할 수 있다.
룰 최적화부(104)는 기간계 시스템(150)으로부터 입력 받은 쿼리 및 쿼리의 속성 정보에 기초하여 룰 저장소(106)에 저장된 하나 이상의 룰을 최적화시키는 모듈이다. 룰 최적화부(104)는 기간계 시스템(150)으로부터 입력 받은 쿼리를 분석하고, 분석된 쿼리의 정보를 기반으로 가상 룰을 생성할 수 있다.
일 실시예에서, 룰 최적화부(104)는 기간계 시스템(150)으로부터 하나 이상의 쿼리(query) 및 상기 하나 이상의 쿼리 각각에 대응되는 속성 정보를 입력 받을 수 있다. 즉, 룰 최적화부(104)는 기간계 시스템(150)으로부터 API(160)를 통해 쿼리뿐만 아니라, 쿼리의 속성 정보를 함께 입력 받을 수 있다. 이때 쿼리의 속성 정보는 쿼리에 포함되는 데이터의 속성(property)을 나타내는 정보로서, 상기 쿼리에 포함되는 데이터의 범위(Range) 및 상기 쿼리의 데이터 타입(Data Type) 중 하나 이상을 포함할 수 있다. 일 예시로서, 쿼리의 속성 정보는 쿼리에 포함되는 데이터의 범위로서 "0 내지 240"을 포함할 수 있다. 다른 예시로서, 쿼리의 속성 정보는 쿼리에 포함되는 데이터의 타입으로서 "int, long, float" 등을 포함할 수 있다.
룰 최적화부(104)는 기간계 시스템(150)으로부터 입력 받은 상기 쿼리 및 상기 속성 정보로부터 하나 이상의 가상 룰을 생성할 수 있다. 기간계 시스템(150)으로부터 입력 받은 쿼리에 포함된 실제 데이터의 범위 또는 데이터 타입은 한정적일 수 있다. 일 예시로서, 쿼리의 속성 정보에 포함된 데이터의 범위는 "0 내지 240"인 반면 쿼리에 포함된 실제 데이터의 범위는 "80 내지 210" 일 수 있다. 다른 예시로서, 쿼리의 속성 정보에 포함된 데이터의 타입은 "int, long, float"인 반면 쿼리에 포함된 실제 데이터의 타입은 "int" 뿐일 수 있다. 즉, 쿼리에 실제로 포함된 데이터의 범위 또는 타입은 쿼리의 속성 정보에 포함된 데이터의 범위 또는 타입 중 일부에 해당될 수 있다.
이에 따라, 룰 최적화부(104)는 상기 쿼리에 포함된 데이터 중 적어도 일부로부터 상기 쿼리에 포함된 데이터의 속성을 획득하고, 상기 획득된 속성을 상기 기간계 시스템(150)으로부터 입력된 속성 정보와 비교하여 상기 가상 룰의 속성을 결정할 수 있다. 구체적으로, 룰 최적화부(104)는 기간계 시스템(150)으로부터 입력 받은 쿼리에 실제로 포함된 데이터를 복수 개 수집하고, 수집된 데이터들의 속성을 획득할 수 있다. 이때, 데이터의 속성은 상기 데이터의 범위 및 데이터 타입 중 하나 이상을 포함할 수 있다. 이후, 룰 최적화부(104)는 수집된 데이터들의 속성과 기간계 시스템(150)으로부터 입력된 속성 정보를 비교할 수 있다. 일 실시예에 따르면, 룰 최적화부(104)는 입력된 상기 속성 정보와 수집된 쿼리의 속성 간에 중복되는 쿼리의 속성만을 추출하고, 추출된 속성을 갖는 가상 룰을 생성할 수 있다. 예를 들어, 쿼리의 속성 정보에 포함된 데이터의 범위가 "0 내지 240"이고 쿼리에 포함된 실제 데이터의 범위는 "80 내지 210"인 경우, 룰 최적화부(104)는 데이터의 범위가 "80 내지 210"인 속성을 갖는 가상 룰을 생성할 수 있다. 또한, 쿼리의 속성 정보에 포함된 데이터의 타입이 "int, long, float 이고 쿼리에 포함된 실제 데이터의 타입이 "int"인 경우, 룰 최적화부(104)는 데이터의 타입이 "int"인 속성을 갖는 가상 룰을 생성할 수 있다.
룰 최적화부(104)는 생성된 가상 룰을 이용하여 룰 저장소(106)에 저장된 하나 이상의 룰을 삭제하거나 수정함으로써 상기 룰을 최적화할 수 있다. 일 예시로서, 룰 최적화부(104)에서 생성된 가상 룰과 기 저장된 룰의 적어도 일부가 중복되는 경우, 룰 최적화부(104)는 가상 룰과 중복되는 룰을 삭제하거나 수정할 수 있다. 이때, 가상 룰과 기 정의된 룰의 적어도 일부가 중복된다는 것은, 수행되기 위한 쿼리의 조건 중 일부가 중복된다는 의미일 수 있다. 예를 들어, 가상 룰의 속성 정보에 포함되는 데이터의 범위가 "80 내지 210"이고 룰 저장소(106)에 저장된 룰의 속성이 "0 내지 240"의 데이터 범위인 경우, 가상 룰의 속성 정보를 만족하는 쿼리는 상기 기 정의된 룰의 속성을 만족한다. 이 경우, 룰 최적화부(104)는 가상 룰과 상기 기 정의된 룰의 적어도 일부가 중복되는 것으로 판단할 수 있다. 상술한 예시에서, 룰 최적화부(104)는 룰 저장소(106)에 저장된 해당 룰을 삭제하거나 해당 룰의 속성에 포함되는 데이터의 범위를 "80 내지 210"로 수정할 수 있다. 다시 말해, 룰 저장소(106)에 저장된 룰이 가상 룰과 중복되는 경우, 룰 최적화부(104)는 상기 가상 룰과 중복되는 룰을 삭제하거나 상기 가상 룰과 중복되는 룰의 데이터의 범위 또는 데이터 타입을 변경함으로써 룰 저장소(106)에 저장된 룰을 최적화할 수 있다.
또한, 룰 최적화부(104)는 상기 가상 룰과 최적화된 상기 룰을 병합할 수 있다. 구체적으로, 룰 최적화부(104)는 가상 룰을 이용하여 수정된 룰이 하나 이상 존재하는 경우, 수정된 하나 이상의 상기 룰과 상기 가상 룰을 병합할 수 있다. 이때, 수정된 하나 이상의 룰은 각각 가상 룰과 병합될 수도 있고, 수정된 하나 이상의 룰 및 상기 가상 룰이 하나로서 병합될 수도 있다.
일 실시예에 따르면, 룰은 조건문(When statements)(예를 들어, 0<x<100인 경우)과 출력문(Then statements)(예를 들어, y = 50 출력)으로 이루어질 수 있으며, 가상 룰은 상기 기 정의된 룰과 공통되는 부분(예를 들어, 조건문)을 포함할 수 있다. 이 경우, 룰 최적화부(104)는 기 정의된 룰의 조건문을 가상 룰의 조건문으로 대체하고 이들을 병합할 수 있다. 만약, 가상 룰과 중복되는 부분을 포함하는 룰이 복수 개 존재하는 경우, 룰 최적화부(104)는 최적화된 복수의 룰을 가상 룰에 병합할 수 있다. 여기서, 최적화된 복수의 룰은 서로 OR 연산(OR operation)으로 결합되고, 최적화된 복수의 룰과 가상 룰은 AND 연산(AND operation)으로 결합될 수 있다. 이에 따라, 서로 다른 출력문을 갖는 룰의 조건문을 가상 룰의 조건문으로 대체할 수 있으며, 이 경우 입력된 쿼리에 대응되는 룰을 검출하는 데 소요되는 시간 및 자원을 절약할 수 있다. 룰 최적화부(104)는 이와 같이 생성된 가상 룰, 상기 가상 룰과 병합된 룰들의 조합 등을 룰 저장소(150)에 저장할 수 있다.
또한, 룰 최적화부(104)는 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 입력 받는 경우 오류 메시지를 생성할 수 있다. 예를 들어, 가상 룰의 속성 정보가 데이터 범위 "80 내지 210"의 값을 갖는 것으로 가정할 때 데이터 값 40을 포함하는 쿼리가 룰 최적화부(104)에 입력되는 경우, 룰 최적화부(104)는 오류 메시지를 생성할 수 있다. 룰 최적화부(104)는 생성된 오류 메시지를 관리자 단말(미도시)에 전송하거나 이를 디스플레이할 수 있다.
또한, 룰 최적화부(104)는 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 설정된 횟수 이상 입력 받는 경우 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 이용하여 상기 가상 룰을 업데이트할 수 있다. 구체적으로, 가상 룰과 대응되지 않는 쿼리가 설정된 횟수 이상(예를 들어, 10번 또는 100번) 룰 최적화부(104)에 입력되는 경우, 룰 최적화부(104)는 상기 대응되지 않는 쿼리에 기초하여 새로운 가상 룰을 생성할 수 있다. 룰 최적화부(104)는 앞서 설명한 가상 룰을 생성하는 방법과 동일한 방법으로 상기 대응되지 않는 쿼리에 기초하여 새로운 가상 룰을 생성할 수 있다.
이후, 룰 엔진(102)은 기간계 시스템(150)으로부터 신규 쿼리를 입력 받는 경우, 입력된 신규 쿼리와 연관된 하나 이상의 가상 룰을 상기 신규 쿼리에 적용하여 의사 결정을 수행할 수 있다. 이때, 신규 쿼리는 룰 최적화부(104)에서 가상 룰을 생성한 후에 기간계 시스템(150)으로부터 입력 되는 쿼리를 의미한다.
룰 저장소(106)는 의사 결정을 수행하는 데 필요한 하나 이상의 룰이 저장되는 저장소이다. 룰 엔진(102)은 기간계 시스템(150)으로부터 입력된 쿼리에 따라 룰 저장소(106)에 저장된 룰을 수행할 수 있다. 도 1에서는 설명의 편의상 룰 저장소(106)가 룰 엔진(102)과 별도의 구성인 것으로 도시하였으나, 룰 저장소(106)는 룰 엔진(102)과 일체로서 형성될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 가상 룰을 이용하여 기 정의된 하나 이상의 룰들을 최적화하는 과정을 설명하기 위한 블록도이다. 도 2에서 설명되는 과정은 상술한 룰 최적화부(104)에 의해 수행될 수 있다.
도 2에 도시된 바와 같이, 가상 룰(202) 및 기 정의된 룰들(204-1, 204-2, 204-3, 204-4)이 존재할 수 있다. 이때, 각각의 룰(204)은 대응되는 쿼리의 조건(룰의 조건문)을 포함할 수 있다. 일 실시예에 따르면, 룰 엔진(102)은 입력된 쿼리가 특정 룰의 조건문을 만족하는 경우 상기 특정 룰을 수행할 수 있다. 예를 들어, 제1 룰(204-1)의 조건문은 "데이터 x의 범위가 0 내지 240"이며, 제2 룰(204-2)의 조건문은 "데이터 x의 범위가 0 내지 210" 일 수 있고, 제3 룰(204-3)의 조건문은 "데이터 x의 범위가 40 내지 210" 일 수 있다. 또한, 제4 룰(204-4)의 조건문은 "데이터 x의 범위가 0 이상"일 수 있다.
한편, 룰 최적화부(104)는 상기 쿼리에 포함된 데이터 중 적어도 일부로부터 상기 쿼리에 포함된 데이터의 속성을 획득하고, 상기 획득된 속성을 상기 기간계 시스템(150)으로부터 수신된 속성 정보와 비교하여 상기 가상 룰의 속성을 결정할 수 있다. 구체적으로, 룰 최적화부(104)는 기간계 시스템(150)으로부터 입력 받은 쿼리에 실제로 포함된 데이터를 복수 개 수집하고, 수집된 데이터들의 속성을 획득할 수 있다. 일 실시예에 따르면, 가상 룰(202)은 기간계 시스템(150)으로부터 입력된 쿼리의 속성을 가질 수 있다. 예를 들어, 가상 룰(202)은 데이터 x의 범위가 "80 내지 210"이라는 쿼리의 속성을 가질 수 있다.
룰 최적화부(104)는 가상 룰(202)과 기 정의된 룰(204)의 적어도 일부가 중복되는지 여부를 판단할 수 있다. 가상 룰과 기 정의된 룰의 적어도 일부가 중복된다는 것은, 수행되기 위한 쿼리의 조건 중 일부가 중복된다는 의미일 수 있다. 예를 들어, 가상 룰(202)은 데이터 x의 범위가 "80 내지 210"이라는 쿼리의 속성 정보를 포함하며 제1 룰(204-1)의 조건문이 "데이터 x의 범위가 0 내지 240"인 경우, 가상 룰의 속성 정보를 만족하는 쿼리는 제1 룰의 조건문 또한 만족할 수 있다. 이러한 예시에서, 룰 최적화부(104)는 가상 룰(202)과 제1 룰(204-1)이 중복되는 것으로 판단할 수 있다.
마찬가지로, 룰 최적화부(104)는 가상 룰(202)과 제2 룰(204-2), 제3 룰(204-3) 및 제4 룰(204-4)이 중복되는 것으로 판단할 수 있다.
룰 최적화부(104)는 가상 룰(202)과 기 정의된 룰의 적어도 일부가 중복되는 경우, 상기 가상 룰(202)과 중복되는 룰(204)을 삭제하거나 수정함으로써 상기 룰(204)을 최적화할 수 있다. 특히, 룰 최적화부(104)는 상기 가상 룰(202)과 중복되는 룰(204)의 데이터 범위 또는 데이터 타입을 변경함으로써 상기 룰(204)을 최적화할 수 있다. 예를 들어, 룰 최적화부(104)는 제1 룰(204-1)의 조건문을 가상 룰(202)의 속성으로 변경할 수 있다.
도 3 은 본 발명의 일 실시예에 따른 가상 룰을 이용하여 기 정의된 하나 이상의 룰들을 병합하는 과정을 설명하기 위한 블록도이다. 도 3에서 설명되는 과정은 상술한 룰 최적화부(104)에 의해 수행될 수 있다.
도 3을 참조하면, 기 정의된 하나 이상의 룰(204)은 각각 조건문 외에 별도의 서브 룰(sub rule)을 더 포함할 수 있다. 실시예에 따르면, 서브 룰은 상술한 룰의 출력문과 대응될 수 있다. 룰 엔진(102)는 룰(204)의 조건문을 만족하는 쿼리가 입력되는 경우 상기 룰(204)의 서브 룰을 수행할 수 있다.
룰 최적화부(104)는 가상 룰(202)과 최적화된 기 정의된 룰(204)을 병합할 수 있다. 구체적으로 룰 최적화부(104)는 서로 다른 출력문을 갖는 상기 룰(204)의 조건문을 상기 가상 룰(202)로 대체할 수 있다. 예를 들어, 룰 최적화부(104)는 제1 룰(204-1)의 조건문(데이터 x의 범위가 0 내지 240)을 가상 룰(202)을 병합할 수 있다. 이 경우, 제1 룰(204-1)에 포함되었던 상기 서브 룰들이 가상 룰(202)에 포함될 수 있다. 복수의 룰들이 가상 룰과 중복되는 경우에도 상기 복수의 룰들을 가상 룰과 병합할 수 있다. 이에 따라, 룰의 개수를 줄일 수 있고, 입력된 쿼리에 대응되는 룰을 검출하는 데 소요되는 시간 및 자원을 절약할 수 있다. 구체적으로, 룰 엔진(102)은 입력된 쿼리가 가상 룰의 속성 정보에 대응되는 것으로 판단된 경우, 상기 쿼리가 각각의 룰들의 조건문을 만족하는지 여부를 별도로 판단할 필요 없이 상기 가상 룰(202)과 병합된 룰들을 수행할 수 있다. 이때, 가상 룰(202)과 병합되는 룰들의 개수에는 특별한 제한이 없다.
도 4는 본 발명의 일 실시예에 따른 룰 관리 방법(400)을 설명하기 위한 흐름도이다. 도시된 흐름도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
먼저, 룰 최적화부(104)는 기간계 시스템(150)으로부터 룰과 연관된 쿼리 및 상기 쿼리의 속성 정보를 입력 받을 수 있다(S402). 쿼리의 속성 정보는 상기 쿼리에 포함되는 데이터의 범위(Range) 및 상기 쿼리의 데이터 타입(Data Type) 중 하나 이상을 포함할 수 있다.
다음으로, 룰 최적화부(104)는 입력 받은 상기 쿼리 및 상기 속성 정보로부터 가상 룰(202)을 생성할 수 있다(S404). 구체적으로, 룰 최적화부(104)는 상기 쿼리에 실제로 포함된 데이터를 복수 개 수집하고, 수집된 상기 데이터들과 상기 속성 정보를 비교하여 상기 가상 룰을 생성할 수 있다. 이때, 가상 룰(202)은 수집된 상기 쿼리의 데이터들과 대응되는 속성 정보를 포함할 수 있다.
다음으로, 룰 최적화부(104)는 상기 가상 룰을 이용하여 룰 저장소에 저장된 하나 이상의 룰을 삭제하거나 수정함으로써 상기 룰 저장소에 저장된 룰을 최적화할 수 있다(S406). 또한, 룰 최적화부(104)는 상기 룰 저장소에 저장된 룰이 상기 가상 룰과 중복되는 경우, 상기 가상 룰과 중복되는 룰을 삭제하거나 상기 가상 룰과 중복되는 룰의 데이터의 범위 또는 데이터 타입을 한정할 수 있다.
다음으로, 룰 최적화부(104)는 최적화하는 단계의 수행 이후, 상기 가상 룰과 최적화된 상기 룰을 병합할 수 있다(S408).
다음으로, 룰 엔진(102)은 기 정의된 하나 이상의 룰을 기반으로 의사 결정을 수행하되, 상기 가상 룰을 이용하여 상기 의사 결정을 수행할 수 있다(S410). 이때, 가상 룰은 최적화된 상기 룰과 병합된 가상 룰일 수 있다.
한편, 룰 최적화부(104)는 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 입력 받는 경우, 오류 메시지를 생성할 수 있다. 또한, 룰 최적화부(104)는 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 설정된 횟수 이상 입력 받는 경우, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 이용하여 상기 가상 룰을 업데이트할 수 있다.
도 5는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 룰 관리 시스템(100), 또는 룰 관리 시스템(100)에 포함되는 하나 이상의 컴포넌트일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(102)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 룰 관리 시스템
102: 룰 엔진
104: 룰 최적화부
106: 룰 저장소
150: 기간계 시스템
160: API(application program interface)
202: 가상 룰
204: 기 정의된 룰

Claims (16)

  1. 기간계 시스템(legacy system)으로부터 하나 이상의 쿼리(query) 및 상기 하나 이상의 쿼리 각각에 대응되는 속성 정보를 입력 받고, 입력된 상기 쿼리 및 상기 속성 정보로부터 하나 이상의 가상 룰을 생성하는 룰 최적화부(rule optimizer); 및
    상기 기간계 시스템으로부터 신규 쿼리를 입력 받고, 입력된 상기 신규 쿼리와 연관된 하나 이상의 가상 룰을 상기 신규 쿼리에 적용하여 의사 결정(decision-making)을 수행하는 룰 엔진(rule engine)을 포함하는, 룰 관리 시스템.
  2. 청구항 1에 있어서,
    상기 속성 정보는, 상기 쿼리에 포함되는 데이터의 범위(Range) 및 상기 쿼리의 데이터 타입(Data Type) 중 하나 이상을 포함하는, 룰 관리 시스템.
  3. 청구항 2에 있어서,
    상기 룰 최적화부는, 상기 쿼리에 포함된 데이터 중 적어도 일부로부터 상기 쿼리에 포함된 데이터의 속성을 획득하고,
    상기 획득된 속성을 상기 기간계 시스템으로부터 입력된 속성 정보와 비교하여 상기 가상 룰의 속성을 결정하는, 룰 관리 시스템.
  4. 청구항 2에 있어서,
    상기 룰 최적화부는, 상기 가상 룰을 이용하여 기 정의된 하나 이상의 룰을 삭제하거나 수정하는, 룰 관리 시스템.
  5. 청구항 4에 있어서,
    상기 룰 최적화부는, 상기 가상 룰과 기 정의된 룰의 적어도 일부가 중복되는 경우, 상기 가상 룰과 중복되는 상기 룰을 삭제하거나 상기 가상 룰과 중복되는 상기 룰의 데이터의 범위 또는 데이터 타입을 변경하는, 룰 관리 시스템.
  6. 청구항 4에 있어서,
    상기 룰 최적화부는, 상기 가상 룰을 이용하여 수정된 룰이 하나 이상 존재하는 경우, 수정된 하나 이상의 상기 룰과 상기 가상 룰을 병합하는, 룰 관리 시스템.
  7. 청구항 1에 있어서,
    상기 룰 최적화부는, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 입력 받는 경우, 오류 메시지를 생성하는, 룰 관리 시스템.
  8. 청구항 1에 있어서,
    상기 룰 최적화부는, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 설정된 횟수 이상 입력 받는 경우, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 이용하여 상기 가상 룰을 업데이트하는, 룰 관리 시스템.
  9. 룰 최적화부(rule optimizer)에서, 기간계 시스템(legacy system)으로부터 하나 이상의 쿼리(query) 및 상기 하나 이상의 쿼리 각각에 대응되는 속성 정보를 입력 받는 단계;
    상기 룰 최적화부에서, 입력된 상기 쿼리 및 상기 속성 정보로부터 하나 이상의 가상 룰을 생성하는 단계;
    룰 엔진(rule engine)에서, 상기 기간계 시스템으로부터 신규 쿼리를 입력 받는 단계; 및
    상기 룰 엔진에서, 입력된 상기 신규 쿼리와 연관된 하나 이상의 가상 룰을 상기 신규 쿼리에 적용하여 의사 결정(decision-making)을 수행하는 단계를 포함하는, 룰 관리 방법.
  10. 청구항 9에 있어서,
    상기 속성 정보는, 상기 쿼리에 포함되는 데이터의 범위(Range) 및 상기 쿼리의 데이터 타입(Data Type) 중 하나 이상을 포함하는, 룰 관리 방법.
  11. 청구항 10에 있어서,
    상기 가상 룰을 생성하는 단계는,
    상기 룰 최적화부에서, 상기 쿼리에 포함된 데이터 중 적어도 일부로부터 상기 쿼리에 포함된 데이터의 속성을 획득하는 단계; 및
    상기 룰 최적화부에서, 상기 획득된 속성을 상기 기간계 시스템으로부터 입력된 속성 정보와 비교하여 상기 가상 룰의 속성을 결정하는 단계를 더 포함하는, 룰 관리 방법.
  12. 청구항 10에 있어서,
    상기 가상 룰을 생성하는 단계는, 상기 룰 최적화부에서, 상기 가상 룰을 이용하여 기 정의된 하나 이상의 룰을 삭제하거나 수정하는 단계를 더 포함하는, 룰 관리 방법.
  13. 청구항 12에 있어서,
    상기 룰을 삭제하거나 수정하는 단계는, 상기 가상 룰과 기 정의된 룰의 적어도 일부가 중복되는 경우, 상기 가상 룰과 중복되는 상기 룰을 삭제하거나 상기 가상 룰과 중복되는 상기 룰의 데이터의 범위 또는 데이터 타입을 변경하는, 룰 관리 방법.
  14. 청구항 12에 있어서,
    상기 가상 룰을 생성하는 단계는, 상기 가상 룰을 이용하여 수정된 룰이 하나 이상 존재하는 경우, 상기 최적화부에서, 수정된 하나 이상의 상기 룰과 상기 가상 룰을 병합하는 단계를 더 포함하는, 룰 관리 방법.
  15. 청구항 9에 있어서,
    상기 룰 최적화부에서, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 입력 받는 경우, 오류 메시지를 생성하는 단계를 더 포함하는, 룰 관리 방법.
  16. 청구항 9에 있어서,
    상기 룰 최적화부에서, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 설정된 횟수 이상 입력 받는 경우, 상기 가상 룰의 속성 정보와 대응되지 않는 쿼리를 이용하여 상기 가상 룰을 업데이트하는, 룰 관리 방법.

KR1020160061314A 2016-05-19 2016-05-19 룰 관리 시스템 및 방법 KR20170130741A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160061314A KR20170130741A (ko) 2016-05-19 2016-05-19 룰 관리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160061314A KR20170130741A (ko) 2016-05-19 2016-05-19 룰 관리 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20170130741A true KR20170130741A (ko) 2017-11-29

Family

ID=60811715

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160061314A KR20170130741A (ko) 2016-05-19 2016-05-19 룰 관리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20170130741A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299150A (zh) * 2018-10-24 2019-02-01 万惠投资管理有限公司 一种可配置多数据源适配规则引擎解决方法
CN109857833A (zh) * 2018-12-30 2019-06-07 贝壳技术有限公司 一种规则引擎实现方法、装置及电子设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299150A (zh) * 2018-10-24 2019-02-01 万惠投资管理有限公司 一种可配置多数据源适配规则引擎解决方法
CN109299150B (zh) * 2018-10-24 2022-01-28 万惠投资管理有限公司 一种可配置多数据源适配规则引擎解决方法
CN109857833A (zh) * 2018-12-30 2019-06-07 贝壳技术有限公司 一种规则引擎实现方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN102542382B (zh) 业务规则的操作方法和装置
US7886028B2 (en) Method and system for system migration
US20130304713A1 (en) System and method for metadata level validation of custom setup objects
US10127218B2 (en) Object templates for data-driven applications
US7937432B2 (en) State transition management according to a workflow management policy
KR20150106365A (ko) 계층적인 룰 구조를 가지고 있는 비즈니스 룰 관리 시스템 및 그 표현 방법
US20090106733A1 (en) Software Engineering System and method for Self-Adaptive Dynamic Software Components
CN111858615A (zh) 数据库表生成方法、系统、计算机系统和可读存储介质
AU2019201100A1 (en) Data modelling and flow engine for building automated flows within a cloud based developmental platform
KR20200093441A (ko) 지식 그래프 중의 데이터 모델을 획득하는 방법, 장치, 기기 및 저장 매체
US11405472B2 (en) Migration delta analyzer and transition recommendation engine
JP2022505231A (ja) 人工知能/機械学習を用いたicsフローのオートコンプリートのためのシステムおよび方法
US20130326464A1 (en) SADL Consumption Service
US11036802B2 (en) Classification rules engine and API generator
KR20170130741A (ko) 룰 관리 시스템 및 방법
US10664653B2 (en) Automated structured cloud datatester
US11593363B1 (en) Comprehension indexing feature
US10831473B2 (en) Locating business rules in application source code
JP4906968B1 (ja) データベース問合せ端末
WO2023103815A1 (en) Contextual dialogue framework over dynamic tables
KR20170129540A (ko) 룰 관리 시스템 및 방법
US20120310701A1 (en) Method and system for dynamic user profile handling and management
CN115794858A (zh) 查询语句处理方法、装置、设备及存储介质
US9031998B2 (en) Analytics enablement objects
US20230168866A1 (en) Method for incorporating a business rule into an sap-customized application on an sap cloud platform or on-premise solution

Legal Events

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