KR101791536B1 - 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템 - Google Patents

규칙 기반의 업무 애플리케이션 작성 및 실행 시스템 Download PDF

Info

Publication number
KR101791536B1
KR101791536B1 KR1020150120755A KR20150120755A KR101791536B1 KR 101791536 B1 KR101791536 B1 KR 101791536B1 KR 1020150120755 A KR1020150120755 A KR 1020150120755A KR 20150120755 A KR20150120755 A KR 20150120755A KR 101791536 B1 KR101791536 B1 KR 101791536B1
Authority
KR
South Korea
Prior art keywords
rule
screen
processing
data
application
Prior art date
Application number
KR1020150120755A
Other languages
English (en)
Other versions
KR20170024998A (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 KR1020150120755A priority Critical patent/KR101791536B1/ko
Publication of KR20170024998A publication Critical patent/KR20170024998A/ko
Application granted granted Critical
Publication of KR101791536B1 publication Critical patent/KR101791536B1/ko

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

애플리케이션의 모든 로직 정보를 데이터베이스화함으로써 유지보수를 간편화할 수 있으면서도 빠르게 실행할 수 있는 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템이 제공된다. 본 발명의 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템은, 애플리케이션 구성 요소를 규칙화한 규칙개체들을 저장하기 위한 규칙저장 데이터베이스; 규칙개체들을 정의하여 상기 상기 규칙저장 데이터베이스에 저장하고, 상기 규칙저장 데이터베이스에 저장된 규칙개체들을 실행을 위한 규칙파일로 변환하기 위한 규칙메타정의기; 규칙파일을 실행하기 위한 규칙실행엔진을 구비한다. 본 발명에 따르면, 애플리케이션의 모든 구성 정보가 데이터베이스화 되어 저장되므로, 각 규칙 개체가 사용하는 데이터모델 규칙개체 등을 데이터베이스 내에서 조회할 수 있어서 규칙개체 간의 연관성을 용이하게 파악할 수 있고 애플리케이션의 사이드 이펙트를 감소시킬 수 있다.

Description

규칙 기반의 업무 애플리케이션 작성 및 실행 시스템 {System for authoring and executing rule-based business application}
본 발명은 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템에 관한 것으로서, 더욱 상세하게는 애플리케이션의 모든 로직 정보를 데이터베이스화함으로써 유지보수를 간편화할 수 있으면서도 빠르게 실행할 수 있는 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템에 관한 것이다.
비즈니스 환경이 복잡해지고 기업이 거대화함에 따라 기업의 업무를 처리하기 위한 업무 애플리케이션의 규모도 커지고 복잡해져서 업무 애플리케이션의 개발에 많은 시간과 비용이 소요되고 있다. 또한, 급변하는 상황에 대처하기 위하여 업무 애플리케이션을 자주 변경해야 하는 경우도 많이 발생하고 있다.
도 1은 종래의 프로그램 소스 코드 조작 방법에 의한 업무 처리 애플리케이션 개발 및 변경 절차의 개념적인 흐름을 예시적으로 보여주고 있다. 도 1에 도시되어 있는 바와 같아, 각각의 업무 처리 애플리케이션(14)에 프로그래밍 된 업무처리화면, 업무처리로직, 그리고 업무처리 데이터베이스 조작 부분은 사용자(10)의 요구에 따라 프로그래머/데이터베이스 개발자(11)가 상위 레벨 프로그램 소스 코드를 프로그래밍(13)하여 개발된다. 프로그래밍된 애플리케이션(14)은 컴파일(15)과정을 거쳐 실행 가능한 바이너리 코드(16)로 변환된 뒤에 운용된다. 즉, 이러한 과정을 거친 최종 산출물인 바이너리 코드(16)가 사용자(10)에게 제공되는 업무용 소프트웨어이다.
또한, 도 1은 이미 실행가능 형태로 생성된 업무 처리 애플리케이션에 추가 및 변경 요건이 가해졌을 경우의 애플리케이션의 변경 개발 및 운용의 개념적인 구성을 예시하고 있다. 사용자(10)가 애플리케이션 사양에 대한 추가 또는 변경을 요구했을 경우에 프로그래머(11)는 업무처리 애플리케이션(14)을 구성하는 업무처리화면, 업무처리로직, 그리고 업무처리 데이터베이스 조작의 소스를 재코딩(13)하고 재컴파일(15) 한 후에 수정된 바이너리 코드(16)를 획득하게 된다.
이와 같이 도 1과 같은 종래의 프로그래밍 방법으로는 약간의 수정 사항이 발생하여도 소스 코딩 및 컴파일 과정을 다시 거쳐야 하므로, 소스 코드의 크기가 큰 경우에는 컴파일하는데 시간이 많이 소요되어 불편하다. 또한, 소스 코드를 직접 프로그래밍하거나 수정하여야 하므로 프로그래밍 언어를 능숙하게 다룰 수 있어야 한다. 또한, 소스 코드 크기가 커지면 프로그램 변수 간의 상호 연관성이 높아져서 한쪽 기능을 수정하면 다른 쪽 기능에 영향을 미치게 될 가능성이 높아지는데, 이를 효과적으로 관리하기가 어려워진다.
이러한 불편을 해소하기 위하여 규칙기반으로 상위레벨의 비즈니스 규칙을 규정함으로써 업무 애플리케이션을 작성할 수 있도록 하는 규칙기반 시스템이 제안되고 있다. 이러한 규칙기반 시스템의 예가 도 2에 도시되어 있다.
종래의 규칙기반 시스템에서는 사용자가 비즈니스 규칙 정의(21)에 따라 스크립트 형태로 상위 레벨의 비즈니스 규칙(25)을 작성하면, 작성된 비즈니스 규칙(25)은 규칙 저장소(24)에 저장된다. 저장된 비즈니스 규칙은 비즈니스 규칙 엔진(23)에 의해 해석되며, 사용자는 비즈니스 규칙 모니터링 툴(22)을 사용하여 비즈니스 규칙의 동작을 모니터링할 수 있다. 비즈니스 규칙을 실행하기 위한 실행 프로그램들은 상위 레벨 프로그램, 예를 들면 자바(Java) 등으로 작성 혹은 생성한다. 상위레벨 프로그램 코드(26)들 내에는 비즈니스 규칙 엔진(23)이 인식할 수 있는 API(application Programming Interface)가 삽입되어 있고, 비즈니스 규칙 엔진(23)은 이를 통해 실제 실행할 상위레벨 프로그램과 통신을 하며 비즈니스 규칙(25)에 따른 프로세스를 실행한다.
이와 같이, 종래의 규칙기반 시스템(예: 미국특허 제8,196,126)에서는 실제 실행 목적에 맞춰 실행을 담당하는 부분은 모두 상위레벨 프로그램 코드로 작성되거나 코드를 자동 생성하여야 하며, 실제 실행시에는 실행가능 형태로 컴파일된 실행 모듈이 필요하다. 또한, 프로그램 변수 간의 상호 연관성이 높아짐에 따라 발생되는 사이드 이펙트(side effect)를 효과적으로 줄이기가 어려워진다.
본 발명은 이러한 점을 감안하여 이루어진 것으로서, 애플리케이션의 관리성을 향상시키면서도 애플리케이션의 빠른 제작과 실행을 담보할 수 있는 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템을 제공하는 것을 목적으로 한다.
본 발명의 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템은, 애플리케이션 구성 요소를 규칙화한 규칙개체들을 저장하기 위한 규칙저장 데이터베이스; 규칙개체들을 정의하여 상기 규칙저장 데이터베이스에 저장하고, 상기 규칙저장 데이터베이스에 저장된 규칙개체들을 실행을 위한 규칙파일로 변환하기 위한 규칙메타정의기; 및 규칙파일을 실행하기 위한 규칙실행엔진을 구비한다. 상기 규칙개체들은 화면처리에 대하여 정의하는 화면규칙과, 처리로직에 대하여 정의하는 로직규칙과, 데이터에 대하여 정의하는 데이터 규칙 중의 하나에 포함된다.
화면규칙은 정의된 화면의 속성을 정의하는 화면구성 규칙개체와, 애플리케이션 화면에서 발생될 이벤트에 따라 실행되어야 할 이벤트 처리로직을 정의하는 화면이벤트 처리관리 규칙개체를 포함한다.
로직규칙은 업무처리 애플리케이션에서의 데이터 처리 기능에 맞는 규칙을 정의하는 로직처리 규칙개체를 포함한다.
데이터규칙은 데이터베이스 질의문 실행을 통한 애플리케이션 업무 데이터의 입력, 수정, 삭제, 조회 등의 동작 시에 데이터베이스로부터 혹은 데이터베이스로 전달되는 사용자 데이터를 정의하는 처리로직용 데이터모델 규칙개체와, 특정 애플리케이션의 화면에서 입출력하는 데이터를 정의하는 화면연결용 데이터모델 규칙개체를 포함한다.
각 규칙개체들은 애플리케이션에서의 흐름을 제어하기 위한 규칙 값이 저장되는 이벤트 규칙 유형, 흐름 상의 분기점에서의 조건 분기 또는 병합 동작을 제어할 수 있는 규칙 값이 저장되는 게이트웨이 규칙 유형, 처리될 태스크에 대한 규칙 값이 저장되는 태스크 규칙 유형 중의 하나의 유형을 가질 수 있다.
규칙저장 데이터베이스는, 규칙메타정의기를 사용하여 정의하는 규칙 흐름 상에 존재하는 모든 규칙노드들에 대한 테이블로서 규칙흐름 상의 제어와 실행규칙 등의 정보를 담고 있는 노드 테이블과, 규칙메타정의기를 사용하여 정의하는 규칙 흐름 상에 존재하는 특정 규칙노드 내에서 실행될 세부 규칙들을 저장한 규칙 테이블과, 규칙메타정의기를 사용하여 정의하는 화면관련 규칙 정보를 저장하는 컨트롤 테이블과, 규칙메타정의기를 사용하여 정의하는 애플리케이션의 화면에 관한 구성정보를 저장하고 관리하기 위한 컨트롤속성 테이블과, 규칙메타정의기를 사용하여 정의한 애플리케이션의 화면 실행시에 사용자 액션 이벤트에 대한 속성값을 저장하고 관리하기 위한 이벤트속성 테이블을 구비한다.
노드 테이블에는 노드 식별자 값과 규칙흐름 상의 직전 노드 식별자를 포함하는 규칙 흐름에 대한 정보와, 해당 노드에서 실행될 규칙 테이블과의 연결 정보가 함께 저장될 수 있다.
규칙파일은 XML 파일 형태인 것이 바람직하다. 규칙파일은, 규칙메타정의기를 통해 정의된 규칙 플로우 상에 정의된 규칙노드들과 규칙노드 내부의 세부규칙정보에 대한 값으로 구성되는 로직처리규칙 오브젝트 XML 파일과, 규칙메타정의기를 통해 정의된 화면구성 규칙정보에 대한 값으로 구성되어 있으며, 화면에서 정의한 각 사용자 인터페이스 컨트롤과 컨트롤 제어 속성값들로 구성되는 화면 오브젝트 XML 파일과, 규칙메타정의기를 통해 정의된 화면에서, 애플리케이션의 특정 사용자 동작을 위한 이벤트를 정의한 규칙정보에 대한 값으로 구성되어 있으며, 화면에서 정의한 각 사용자 인터페이스 컨트롤에서 발생하는 이벤트와 이벤트 제어 속성값들로 구성되는 화면 이벤트 오브젝트 XML 파일을 구비한다. 화면 오브젝트 XML 파일에는 애플리케이션의 시작화면을 규정하는 시작화면규칙 XML 파일이 포함된다.
규칙실행엔진은, 화면규칙을 실행하는 화면규칙 메타처리엔진과, 로직처리규칙 오브젝트 XML파일을 읽어와서 그 속성값을 파악하고, 규칙 플로우 속성값을 읽고, 규칙 흐름에 따라 관련 규칙파일을 읽고 해석한 후에 관련 처리를 실행하는 로직규칙 메타처리엔진과, 이벤트를 실행하여 상기 로직규칙 메타처리엔진(530)으로 데이터를 전달하는 이벤트실행규칙 메타처리엔진을 포함한다.
사용자가 규칙파일을 최초로 실행하면 화면규칙 메타처리엔진이 시작화면규칙 XML 파일에 규정되어 있는 화면규칙파일들을 읽어와서 화면을 구성하여 표시한다. 사용자가 이벤트를 발생시키면 이벤트실행규칙 메타처리엔진이 로직규칙 메타처리엔진으로 전달할 데이터를 생성하고, 로직규칙 메타처리엔진에게 실행할 규칙 오브젝트명을 전달한다. 로직규칙 메타처리엔진은 로직처리규칙 오브젝트 XML파일을 읽어와서 그 속성값을 파악하고, 규칙 플로우 속성값을 읽고, 규칙 흐름에 따라 관련 규칙파일을 읽고 해석한 후에 관련 처리를 실행한다.
본 발명에 따르면, 애플리케이션의 모든 구성 정보가 데이터베이스화 되어 규칙저장 데이터베이스에 저장되므로, 각 규칙 개체가 사용하는 데이터모델 규칙개체 등을 데이터베이스 내에서 조회할 수 있어서 규칙개체 간의 연관성을 용이하게 파악할 수 있고 애플리케이션의 사이드 이펙트를 감소시킬 수 있다. 또한, 규칙저장 데이터베이스에 저장된 규칙들을 XML 파일 형태로 변환한 후에 규칙실행엔진에서 실행하므로 애플리케이션의 빠른 실행이 가능하다.
도 1은 종래의 프로그램 소스 코드 조작 방법에 의한 업무 처리 애플리케이션 개발 및 변경 절차의 개념적인 흐름을 예시적으로 보여주는 도면이다.
도 2는 규칙기반으로 상위레벨의 비즈니스 규칙을 규정함으로써 업무 애플리케이션을 작성할 수 있도록 하는 종래의 규칙기반 시스템의 예를 보여주는 도면이다.
도 3은 본 발명의 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템의 구성을 보여주는 개념 블록도이다.
도 4는 본 발명에서의 애플리케이션 구성 요소를 규칙 정의할 때 사용되는 규칙개체들의 유형을 보여주는 도면이다.
도 5는 규칙메타정의기를 사용하여 업무처리 애플리케이션에서 사용할 화면을 정의하는 화면예이다.
도 6은 규칙메타정의기를 사용하여 화면이벤트 처리관리 규칙개체를 정의하는 모습을 보여주는 화면예이다.
도 7은 규칙메타정의기를 사용하여 처리로직용 데이터모델 규칙개체를 정의하는 모습을 보여주는 화면예이다.
도 8은 규칙메타정의기를 사용하여 화면연결용 데이터모델 규칙개체를 정의하는 모습을 보여주는 화면예이다.
도 9는 처리로직용 데이터모델 규칙개체 요소와 화면연결용 데이터모델 규칙개체 요소를 연결해 주는 데이터 모델 매핑을 설명하기 위한 개념도이다.
도 10은 규칙메타정의기를 사용하여 로직처리 규칙개체를 정의하는 모습을 보여주는 화면예이다.
도 11은 도 6의 이벤트 플로우 다이어그램과 도 10의 로직 플로우 다이어그램에서 사용되는 노드의 기본구조를 보여주는 도면이다.
도 12는 규칙저장 데이터베이스 내의 테이블 구조 및 관계를 보여주는 도면이다.
도 13은 규칙파일의 내부 구성을 보여주는 도면이다.
이하, 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도 3은 본 발명의 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템의 구성을 보여주는 개념 블록도이다.
본 발명에서는 애플리케이션의 모든 구성요소를 규칙화한 규칙 개체로 정의한다. 사용자는 규칙메타정의기(110)를 사용하여 애플리케이션 구성 요소들인 화면규칙(121), 로직규칙(122), 그리고 데이터 규칙(123)을 정의한다. 화면규칙(121)은 화면처리에 대해 정의하며, 로직규칙(122)은 처리로직에 대해 정의하며, 데이터 규칙(123)은 데이터에 대해 정의한다. 각 규칙을 구성하는 규칙개체에 대해서는 후술한다.
정의된 규칙개체들은 규칙저장 데이터베이스(200)에 저장되어 관리된다. 규칙저장 데이터베이스(200)의 구성에 대해서는 후술한다.
규칙저장 데이터베이스(200)에 저장되어 있는 애플리케이션 규칙개체 정보들은 규칙메타정의기(110) 내의 규칙정보 추출기능을 통해, 규칙실행엔진(500)이 읽고 해석해 동작할 수 있도록 하는 규칙파일(300)로 추출된다. 애플리케이션 실행을 위한 규칙화일(300)은 예를 들면 XML 파일 유형이며, 애플리케이션이 실제 실행될 물리적 위치에 배포된다.
규칙실행엔진(500)은 로직규칙을 처리하는 로직규칙 메타처리엔진(530)과 화면구성규칙을 처리하는 화면규칙 메타처리엔진(510), 그리고 화면이벤트실행규칙을 처리하는 이벤트실행규칙 메타처리엔진(520)를 구비하며, 규칙실행엔진(500)이 규칙파일(300)를 읽고 해석해 동작함으로써 사용자가 제작한 애플리케이션의 전 기능을 실행하고 서비스한다.
로직규칙 메타처리엔진(530)은 규칙파일(300)을 읽고 해석하여 동작하며, 규칙파일(300) 내에 업무 데이터베이스(400)를 조작(입력, 수정, 삭제, 조회 등)하는 규칙이 존재할 경우에는 해당 업무 데이터베이스(400)에 액세스하여 데이터베이스 조작 처리를 실행한다.
다음으로, 도 4를 참조하여 규칙개체의 유형에 대해서 설명한다.
도 4는 본 발명에서의 애플리케이션 구성 요소를 규칙 정의할 때 사용되는 규칙개체(130)들의 유형이다. 본 발명에서는 일반적인 애플리케이션 구조 패턴 중 하나인 MVC(Model, View, Control) 패턴 개념에 맞춰 애플리케이션 구성 요소들에 대한 규칙개체를 정의한다. 즉, 모델(Model)에 대응하는 규칙 개체로 데이터규칙(123)이, 뷰(View)에 대응하는 규칙개체로 화면규칙(121)이, 그리고 컨트롤(Control)에 대응하는 규칙개체로 로직규칙(122)이 구성되며, 화면규칙(121)은 화면구성 규칙개체(131)과 화면이벤트 처리관리 규칙개체(132)로, 로직규칙(122)은 로직처리 규칙개체(133)로, 그리고 데이터규칙(123)은 처리로직용 데이터모델 규칙개체(134)와 화면연결용 데이터모델 규칙개체(135)로 정의된다. 정의된 각 규칙 개체들은 규칙저장 데이터베이스(200)에 저장된다.
각 규칙개체들은 다양한 유형을 가질 수 있다. 예를 들면, 애플리케이션에서의 흐름을 제어하는 시작점, 끝점, 루프의 시작점과 끝점 등을 제어하기 위한 규칙 값이 저장되는 이벤트 규칙 유형, 흐름 상의 분기점에서의 조건 분기 또는 병합 동작을 제어할 수 있는 규칙 값이 저장되는 게이트웨이 규칙 유형, 처리될 태스크(task), 예를 들면 규칙개체 호출, 라이브러리 내의 특정 모듈 호출, 화면개체를 클라이언트 화면에 표시, 파일의 다운로드, 파일의 저장, 이메일 발송 등의 태스크에 대한 규칙 값이 저장되는 태스크 규칙 유형 등을 가질 수 있다.
다음으로, 각 규칙개체에 대해서 상세히 설명한다.
도 5에 도시한 것처럼 규칙메타정의기(110)를 사용하여 업무처리 애플리케이션에서 사용할 화면(A)을 정의하면, 정의된 화면의 속성들은 화면구성 규칙개체(131)로서 소정의 규칙 메타 스키마 구조로 규칙저장 데이터베이스(200)에 저장된다. 이는 화면구성을 위한 정보들을 상위레벨 프로그램으로 생성해야 하는 일반적인 프로그램 소스 코딩 방식과 구별된다.
화면구성 규칙개체(131)는 예를 들면, 콘트롤 생성을 위한 기본 정보인 콘트롤(Control) 기본정보(콘트롤의 유형, 식별자, 콘트롤 값의 유형, 부모 콘트롤, 매개변수 존재 여부 등)와, 콘트롤 세부속성(Control Property)(속성 식별자, 속성 데이터 등), 콘트롤 위치와 사이즈(X 위치, Y 위치, 폭, 높이 등) 등을 구비할 수 있다.
도 6은 규칙메타정의기(110)를 사용하여 화면이벤트 처리관리 규칙개체(132)를 정의하는 모습을 보여주고 있다.
화면이벤트 처리관리 규칙개체(132)란, 애플리케이션 화면에서 발생될 이벤트에 따라 실행되어야 할 이벤트 처리로직을 상위레벨 프로그램을 대체해 플로우(1321)와 규칙노드(1322)를 사용하여 정의한 것으로서, 플로우 다이어그램 형태로 정의된다.
도 6의 플로우 다이어그램은 본 발명에서의 화면 이벤트 발생에 따라 처리되어야 할 이벤트 플로우를 정의한 일 예로서, 앞서 예시한 도 5의 애플리케이션 화면(A)에서 발생할 사용자 정의 이벤트인 키맨정보 입력, 수정, 삭제, 그리고 조회 이벤트에 따른 이벤트 처리 흐름을 정의(디자인)한 것이다.
플로우 다이어그램 상에서의 화살표선은 처리의 흐름을 나타내며, 각각의 규칙노드(Node)는 목적에 맞는 규칙을 세부적으로 정의하는 것으로서, 종래의 상위레벨 프로그램 상의 메소드(Method) 혹은 펑션(Function)을 대신한다.
사용자가 도 6과 같이 플루우 다이어그램 형태로 화면 이벤트를 정의하면, 정의된 화면이벤트는 화면이벤트 처리관리 규칙개체(132)로서 소정의 규칙 메타 스키마 구조로 변환되어 규칙저장 데이터베이스(200)에 저장된다. 화면이벤트 처리관리 규칙개체(132)는, 규칙 플로우(흐름)내 노드(Node) 생성 기본 정보인 규칙노드(Node) 생성 기본 정보(노드 이름, 노드 유형, 규칙 유형, 부모 노드, 노드 설명 등), 규칙노드 세부 정보인 노드 세부 속성(글자 색상, 폰트, 테두리 색상, 배경 색상, 투명도 등), 노드 위치와 사이즈(X 위치, Y 위치, 폭, 높이 등) 등을 구비할 수 있다.
도 7은 규칙메타정의기(110)를 사용하여 처리로직용 데이터모델 규칙개체(134)를 정의하는 모습을 보여주고 있다.
처리로직용 데이터모델 규칙개체(134)는 종래에 상위레벨 프로그램으로 구현할 때에 작성해야 하는 클래스(Class)와 데이터 변수(Variable)와 같은 데이터 임시 저장소를 대신한다. 즉, 본 발명에서는 규칙메타정의기(110)를 사용하여 애플리케이션에서 사용할 데이터베이스 모델, 즉 테이블이나, 데이터베이스 질의어 실행 결과인 결과집합(Result Set)을 담을 수 있는 구조체(Structure) 혹은 클래스(Class)를 대신하는 처리로직용 데이터모델 규칙개체(134)를 정의한다.
또한 본 발명에서는, 업무 처리 모델에 변화가 생기면 매번 상위레벨 프로그램상에서 변경 코딩을 해야 하는 종래의 관리 데이터모델인 구조체나 클래스와는 달리, 처리로직용 데이터모델 규칙개체(134)를 다시 정의하기만 하면 된다.
도 7의 규칙메타정의기(110) 화면에서 데이터베이스 스키마에 정의된 각 데이터 유형에 따라 처리로직용 데이터모델 규칙개체(134)를 정의한다.
데이터베이스 질의문 실행을 통한 애플리케이션 업무 데이터의 입력, 수정, 삭제, 조회 등의 동작 시에, 데이터베이스로부터 혹은 데이터베이스로 전달되는 사용자 데이터는 모두 처리로직용 데이터모델 규칙개체(134)로서 저장된다.
종래와 같이 애플리케이션을 상위레벨 프로그램 언어로 개발하는 경우에는 처리할 모델에 따라 별도의 구조체나 클래스를 정의하고 코딩해야 하지만, 본 발명에서는 규칙메타정의기(110)를 사용하여 처리로직용 데이터모델 규칙개체(134)를 정의하는 작업만 수행하면 된다. 이는 애플리케이션에서 처리할 데이터모델의 변화 수용 시에도 동적으로 변화를 수용할 수 있도록 함으로써 애플리케이션의 변화 수용력을 향상시킬 수 있다.
본 발명에서, 처리로직용 데이터모델 규칙개체(134)의 각 요소(element)를 멤버(Member)라 통칭한다. 멤버(Member)는 애플리케이션에서 사용되는 데이터베이스 질의어를 통해 데이터베이스에 저장된 데이터를 조회한 후에 결과값을 저장하는 데이터 저장소로 사용된다.
각 멤버 규칙은 멤버 식별 ID, 데이터 유형, 기본(default) 값, 데이터베이스 테이블의 열(column) 이름, 데이터베이스 테이블의 열(column) 유형, 사용자 정의 멤버 표현, 데이터베이스 테이블 이름 등의 속성을 갖는다.
도 7의 좌측의 데이터모델 정의영역(B)에서 멤버에 대한 이름(Name)과 데이터베이스 내의 실제 필드명이 정의된 멤버들의 집합(이하, "멤버 셋"이라 함)을 정의하고, 우측의 데이터 유형(Type) 정의영역(C)에서는 각 멤버들에 대한 속성을 정의한다. 정의된 데이터 모델에 대한 규칙은 소정의 규칙 메타 스키마 구조로 규칙저장 데이터베이스(200)에 저장된다.
도 8은 규칙메타정의기(110)를 사용하여 화면연결용 데이터모델 규칙개체(135)를 정의하는 모습을 보여주고 있다.
화면연결용 데이터모델 규칙개체(135)는 종래에 상위레벨 프로그램으로 구현할 때에 작성해야 하는 화면 처리용 데이터 클래스(Class)와 데이터 변수(Variable)와 같은 데이터 임시 저장소를 대신한다. 즉, 본 발명에서는 규칙메타정의기(110)를 사용하여 애플리케이션 화면 규칙개체와 연결된 데이터 모델, 즉 화면에 사용될 사용자 데이터를 저장할 구조체(Structure) 혹은 클래스(Class)를 대신하는 화면연결용 데이터모델 규칙개체(135)를 정의한다.
또한 본 발명에서는, 업무 처리 모델이 변화되면 매번 상위레벨 프로그램상에서 변경 코딩을 해야 하는 종래의 화면 연결용 데이터 구조체나 클래스와는 달리, 화면연결용 데이터모델 규칙개체(135)를 다시 정의하기만 하면 된다.
도 8의 좌측의 사용할 데이터모델을 정의하는 영역(D)에서 화면연결용 데이터모델 규칙개체(135)의 각 요소(Element)와, 사용될 데이터 유형을 정의한다. 도 8은 도 5에 도시된 키맨정보관리 화면에 필요한 화면연결용 데이터모델 규칙개체(135)의 각 요소(Element)에 대한 데이터 유형을 정의하는 예를 보여주고 있다.
화면연결용 데이터모델 정의 영역(D)의 각 데이터 모델에 대해서는 우측의 세부 데이터 유형 정의영역(E)에서 데이터 유형 및 데이터 소스를 정의한다. 도 8에서는 애플리케이션 화면(A) 상의 날짜형 데이터를 처리하기 위한 데이터인 'HRE_DATE’라는 화면용 데이터에 대한 세부 유형과 데이터 소스를 정의하는 예가 도시되어 있다.
세부 데이터 유형 정의영역(E)에서는 데이터 소스로 사용할 처리로직용 데이터모델 규칙개체(E1)를 지정하고, 지정된 처리로직용 데이터모델 규칙개체 내의 특정 데이터 멤버(E2) 지정한다. 도 9와 같이 처리로직용 데이터모델 규칙개체(134)의 요소와 화면연결용 데이터모델 규칙개체(135) 요소를 연결해 주는 것을 데이터 모델 매핑이라 부른다.
종래에 애플리케이션을 상위레벨 프로그램 언어로 개발할 때에는 화면에서 처리할 데이터 모델에 따라 별도의 구조체나 클래스를 정의하고 코딩해야 하는 것과는 달리, 본 발명에서는 도 8와 같이 규칙메타정의기(110)를 사용하여 정의하는 작업만으로 프로그래밍 작업을 대체할 수 있다.
규칙메타정의기(110)를 사용하여 특정 애플리케이션의 화면에서 입출력 하는 데이터를 위하여 사용될 데이터 모델과 구조에 대한 규칙을 정의하면, 이는 소정의 규칙 메타 스키마 구조로 규칙저장 데이터베이스(200)에 저장된다. 예를 들어, 화면연결용 데이터모델 규칙개체(135), 즉 화면용 데이터베이스 테이블의 속성으로는 화면 데이터 식별 ID, 연결된 멤버 이름, 화면 데이터의 캡션, 자동번호 사용여부, 기본값, 화면 데이터 수식, 문자 유형인 경우의 최대 길이, 이미지 저장 방식 등이 정의될 수 있다.
도 10은 규칙메타정의기(110)를 사용하여 로직처리 규칙개체(133)를 정의하는 모습을 보여주고 있다.
로직처리 규칙개체(133)는 종래에 상위레벨 프로그램으로 구현할 때에 작성해야 하는 업무처리기능 구현 프로그램을 대체한다. 즉, 업무처리 애플리케이션에서의 데이터 입력, 수정, 삭제, 조회 등의 데이터 처리 기능에 맞는 규칙을 정의함으로써 상위레벨 프로그램을 대신한다.
또한 본 발명에서는, 업무 처리로직이 변화되면 매번 상위레벨 프로그램 상에서 변경 코딩을 해야 하는 종래의 프로그래밍 방식과는 달리, 데이터의 치환, 변환, 저장 등의 업무 데이터 조작을 모두 규칙노드와 플로우를 사용하여 로직처리 규칙개체(133)를 다시 정의하기만 하면 된다.
도 10에 도시된 것처럼, 로직 플로우 다이어그램은 로직의 시작과 끝을 알리는 규칙노드인 시작노드(1331)로 시작되며 로직의 마지막임을 알리는 끝노드(1336)에서 종료되도록 구성된다. 시작노드(1331)와 끝노드(1336)는 이벤트 규칙 유형으로서 흐름의 시작과 끝을 나타낸다.
도 10의 사례에서는, 또한 태스크 규칙 유형의 다수의 노드와 게이트웨이 규칙 유형의 노드가 도시되어 있다. 로직이 시작되면 태스크 규칙 유형의 노드 1332에 의해 데이터베이스 연결이 생성되고, 게이트웨이 규칙 유형의 노드 1333에서 업무처리 애플리케이션의 처리 기능을 처리하기 위한 이벤트 키 값이 체크되며, 전달받은 이벤트 키에 따라 정의된, 데이터 조회를 위한 동작규칙인 SQL(Structured Query Language) 로드, 데이터 추가를 위한 SQL 삽입, 데이터 갱신을 위한 SQL 갱신, 그리고 데이터 삭제를 위한 SQL 삭제 규칙노드들(1334)을 실행한 후에 데이터베이스 연결을 종료하고(1335), 전체 흐름 실행이 종료(1336)됨을 나타낸다.
도 10의 로직 플로우 다이어그램 내에서 사용하는 각 규칙노드들은 사전에 정의된 규칙들로서 본 발명에서 규칙노드라 통칭한다. 도 6의 이벤트 플로우 다이어그램과 도 10의 로직 플로우 다이어그램에서 사용되는 노드의 기본구조는 도 11과 같으며, 종래의 상위레벨 프로그램에서의 함수나 매소드를 대체한다.
규칙 스키마(1338)는 각 규칙노드가 실행되기 위한 규칙 값들이 저장된 스키마이며, 입력 값 스키마(1337)는 규칙 스키마(1338)가 실행하기 위해 필요한 조건 데이터 등을 전달받기 위한, 상위 레벨 프로그램 함수에서의 매개변수(Parameter) 역할을 한다. 출력 값 스키마(1339)는 규칙 스키마(1338)에 저장된 규칙 데이터에 따라 해당 규칙이 실행된 후의 결과 값에 대한 규칙 스키마이다. 출력 값 스키마(1339)는 또 다른 규칙노드의 입력 값으로 연결되어 사용될 수 있다. 이는 상위레벨 프로그램의 함수 결과 값이 다른 함수의 입력 매개변수로 사용되는 것에 대응된다.
규칙노드 유형별로 규칙 스키마(1338)는 각기 다르며, 필요로 하는 입력 값 스키마(1337)과 출력 값 스키마(1339)도 달라진다.
도 10의 예를 들어 설명하면, 데이터 조회를 위한 SQL 로드 규칙노드가 실행될 때에, 입력 값 스키마에 조회 데이터 키 값을 함께 전달받아서, Select 데이터 질의어가 저장된 규칙 스키마(1338)가 실행되고, 조회된 데이터 값은 출력 값 스키마(1339)에 저장될 것이다.
각 노드 간의 흐름은 규칙실행엔진(500)에 의해 제어되며, 각 노드는 입력값을 전달받아서 처리할 규칙을 정의하거나 정의된 규칙을 실행한 후에 로직처리 결과값을 필요로 하는 데이터 저장소로 출력한다.
다음으로, 도 12를 참조하여 규칙저장 데이터베이스(200) 내의 테이블 구조 및 관계를 설명한다.
규칙메타정의기(110)를 통해 애플리케이션을 제작할 때에 정의된 모든 애플리케이션 규칙 정보는 규칙저장 데이터베이스(200)에서 관리되며, 애플리케이션 실행을 위한 XML 형태의 규칙파일(300)은 규칙저장 데이터베이스(200)의 연관 테이블내의 데이터를 조합하여 추출 생성된다.
솔루션은 규칙메타정의기(110)를 사용하여 제작하고자 하는 애플리케이션을 대표하는 이름의 역할을 한다. 예를 들어 ERP(기업전사자원관리) 솔루션을 제작하는 경우에는 "ERP"가 솔루션 이름이 된다. 솔루션 테이블(201)은 제작하는 솔루션에 대한 전체 관리 단위이며, 솔루션 식별자와 이름 등의 기초 데이터를 저장 관리한다.
프로젝트는 규칙메타정의기(110)를 사용하여 정의하는 솔루션의 하부 관리 단위이며, 특정 비즈니스 도메인 영역을 관리하는 단위로 사용된다. 예를 들어 본 발명을 통해 ERP(기업전사자원관리) 솔루션을 제작하는 경우에는 "ERP" 솔루션 내의 "인사", "재무" 등의 비즈니스 도메인 영역에 대한 이름이 된다. 프로젝트 테이블(203)은 프로젝트 식별자와 이름, 속해있는 솔루션 식별자 등의 기초 데이터를 저장 관리한다.
오브젝트는 규칙 개체를 뜻하며, 규칙메타정의기(110)를 사용하여 정의하는 패키지의 하부 관리 단위로서, 특정 비즈니스 기능을 관리하는 단위로 사용된다. 예를 들어 본 발명을 통해 ERP(기업전사자원관리) 솔루션을 제작하는 경우에는 "ERP" 솔루션 내의 "인사 시스템"을 구성하는 각종 업무 처리 영역을 구분하고 관리하는 단위로 사용하며, 예를 들어 "인사이력관리", "급여관리", 등의 업무 처리 영역 등이 오브젝트 단위에 해당한다. 오브젝트 테이블(207)은 오브젝트 식별자와 이름, 속한 패키지 식별자 등의 기초 데이터를 저장 관리하며, 규칙메타정의기(110)를 통해 정의되는 규칙개체들을 실제로 관리하는 단위가 된다.
패키지는 규칙메타정의기(110)를 사용하여 정의하는 프로젝트의 하부 관리 단위이며 오브젝트의 논리적 위치를 특정한다. 오브젝트 테이블(207)의 관리 단위이며, 모든 오브젝트는 특정 패키지로 묶어 관리한다. 패키지 테이블(205)은 패키지 식별자와 이름, 속한 프로젝트 식별자 등의 기초 데이터를 저장 관리한다.
노드 테이블(209)은 규칙메타정의기(110)를 사용하여 정의하는 규칙 흐름(Flow) 상에 존재하는 모든 규칙노드들에 대한 테이블로서, 규칙 흐름 구조 상에 존재하는 모든 노드를 표현하기 위한 정보를 담고 있으며, 노드의 개수만큼 물리적 데이터베이스 테이블이 존재한다. 본 발명에서의 다양한 규칙개체 역시 규칙개체 수 만큼의 규칙 테이블(211)이 존재하며, 규칙 흐름 상의 하나의 노드에 여러 개의 규칙 테이블이 연관된다. 노드 테이블(209)에는 노드 식별자 값과 규칙흐름 상의 직전 노드 식별자 등 규칙 흐름에 대한 정보가 함께 저장되며, 해당 노드에서 실행될 규칙 테이블(211)과의 연결 정보 또한 가지고 있어서, 규칙흐름 상의 제어와 실행규칙 등의 정보를 담고 있는 핵심 데이터베이스 테이블이다.
규칙 테이블(211)은 규칙메타정의기(110)를 사용하여 정의하는 규칙 흐름(Flow)상에 존재하는 특정 규칙노드 내에서 실행될 세부 규칙들을 저장한 데이터베이스 테이블로서, 해당 노드에서 정의한 규칙의 개수만큼 규칙 테이블의 개수가 연관된다. 즉, 하나의 노드 테이블에 n개의 규칙 테이블이 관계(relationship)를 맺고 있는 것이다. 규칙 테이블(211) 내에서 관리되는 정보는 규칙 식별자 값과 규칙흐름 상의 노드 식별자, 사용할 사용자 데이터베이스 이름과 SQL문 정보, 결과값 전달 데이터모델 규칙 등 애플리케이션에서 업무를 처리하기 위하여 실행되는 대부분의 데이터 처리로직 정보를 담고 있으며, 규칙저장 데이터베이스(200) 내에서 가장 많은 데이터베이스 테이블로 구성되어 있다. 즉, 로직처리 규칙의 종류만큼 물리적 데이터베이스 테이블로 각각 구성되며, 특정 처리를 위한 로직 규칙이 추가되면 이를 위한 데이터베이스 테이블이 추가될 수 있다.
컨트롤 테이블(213)은 규칙메타정의기(110)를 사용하여 정의하는 화면관련 규칙 정보를 저장하고 관리하기 위한 데이터베이스 테이블로서, 화면 구성에 사용되는 UI(사용자 인터페이스) 컨트롤들의 컨트롤 식별자 값이나 서로 연관된 컨트롤 식별자값 등을 저장하고 있다. 컨트롤 테이블(213)은 모든 UI 컨트롤의 수만큼 물리적으로 존재하며 UI 컨트롤이 추가되는 경우 해당 컨트롤을 관리하기 위한 데이터베이스 테이블 역시 추가될 수 있다.
컨트롤속성 테이블(215)은 규칙메타정의기(110)를 사용하여 정의하는 애플리케이션의 화면에 관한 모든 구성정보를 저장하고 관리하기 위한 데이터베이스 테이블로서, 화면 구성에 사용되고 속성값이 정의된 경우에 이 값을 저장하고 관리하는 테이블이다. 컨트롤속성 테이블(215)은 컨트롤 속성 식별자 값, 해당 컨트롤을 제어할 수 있는 제어값 등을 저장하고 관리한다.
이벤트속성 테이블(217)은 규칙메타정의기(110)를 사용하여 정의한 애플리케이션의 화면 실행시에 마우스 클릭 이벤트와 같은 사용자 액션 이벤트에 대한 속성값을 저장하고 관리하기 위한 데이터베이스 테이블로서, 이벤트 속성 식별자 값, 관련 컨트롤 식별자 값, 그리고 이벤트를 실행하기 위한 제어값 등을 저장하고 관리한다.
다음으로, 규칙저장 데이터베이스(200)로부터 애플리케이션이 동작하기 위한 규칙파일(300)을 생성하는 방법에 대해서 설명한다.
규칙파일(300)을 추출할 때에는 소정의 규칙에 따라 파일 이름을 생성하는 것이 바람직하다. 예를 들면, 규칙메타정의기(110)를 사용하여 애플리케이션에 대한 정의를 하기 전에 지정한 프로젝트명, 패키지명, 오브젝트명을 조합하여 사용할 수 있다. 프로젝트명과 패키지명 등 규칙파일의 명명에 필요한 정보는 규칙저장 데이터베이스(200) 내의 프로젝트 테이블(203)과 패키지 테이블(205) 등의 컬럼(column)명에서 추출한다.
규칙파일(300)의 내부 구성이 도 13에 도시되어 있다.
로직처리규칙 오브젝트 XML 파일(310)은 규칙메타정의기(110)를 통해 정의된 규칙 플로우 상에 정의된 규칙노드들과 규칙노드 내부의 세부규칙정보에 대한 값으로 구성되어 있다.
화면 오브젝트 XML 파일(320)은 규칙메타정의기(110)를 통해 정의된 화면구성 규칙정보에 대한 값으로 구성되어 있으며, 화면에서 정의한 각 UI 컨트롤과 컨트롤 제어 속성값들로 구성되어 있다. 화면 오브젝트 XML 파일(320)은 애플리케이션의 시작화면을 규정하는 시작화면규칙 XML 파일을 포함할 수 있다.
화면 이벤트 오브젝트 XML 파일(330)은 규칙메타정의기(110)를 통해 정의된 화면에서, 애플리케이션의 특정 사용자 동작을 위한 이벤트를 정의한 규칙정보에 대한 값으로 구성되어 있으며, 화면에서 정의한 각 UI 컨트롤에서 발생하는 이벤트와 이벤트 제어 속성값들로 구성되어 있다.
다음으로, 도 3를 참조하여 XML 파일형태로 구성된 규칙파일(300)을 규칙실행엔진(500)이 읽어 애플리케이션을 작동시키는 절차를 설명한다.
사용자가 규칙파일(300)을 최초로 실행하면 애플리케이션의 시작화면을 규정하는 시작화면규칙 XML 파일명이 화면규칙 메타처리엔진(510)에게 전달되고, 화면규칙 메타처리엔진(510)은 시작화면규칙 XML 파일에 규정되어 있는 다양한 화면규칙파일을 읽어와서 화면을 구성하여 표시한다. 즉, 규칙파일(300)에 속성값으로 저장되어 있는 값들을 이용하며 화면을 구성하는 컨트롤을 생성 및 배치하고, 컨트롤 속성값대로 컨트롤에 속성을 부여하여 화면을 표시한다.
사용자가 이벤트, 예를 들면 특정 컨트롤을 마우스로 클릭하는 이벤트를 발생시키면, 이벤트실행규칙 메타처리엔진(520)은 로직규칙 메타처리엔진(530)으로 전달될 전달값(데이터 처리를 위하여 실행될 오브젝트명, 데이터 전달 방법 등)을 생성하고, 로직규칙 메타처리엔진(530)에게 실행할 규칙 오브젝트명을 전달한다.
로직규칙 메타처리엔진(530)은 로직처리규칙 오브젝트 XML파일을 읽어와서 그 속성값을 파악하고, 규칙 플로우 속성값을 읽고, 규칙 흐름에 따라 관련 규칙파일을 읽고 해석한 후에 관련 처리를 실행한다.
이와 같은 절차를 반복하면서 규칙실행엔진(500)은 규칙파일(300)에 따라 사용자의 이벤트를 처리하면서 애플리케이션을 작동하게 된다.
한편, 본 발명에서는 애플리케이션의 모든 로직 정보를 규칙저장 데이터베이스에 저장하고 있다. 이와 같이 모든 로직 정보가 데이터베이스화되어 저장되어 있으므로, 애플리케이션을 변경할 경우에 각 규칙개체에서 사용하는 구성개체들간의 상호 연관성 등을 규칙메타정의기를 통해 확인할 수 있다.
도 14는 애플리케이션의 관리성을 확인할 수 있는 예제화면으로서, 규칙메타정의기(110)에서 확인할 수 있는 애플리케이션의 규칙개체 간의 상호 연관성을 추적해볼 수 있는 매트릭스 다이어그램을 보여주고 있다. 도 14에서 행과 열에는 규칙개체가 나열되어 있으며, 상호 연관된 규칙개체들에 대해서는 두 규칙개체가 만나는 셀에 상호 연관되어 있음을 나타내는 아이콘이 표시된다.
이와 같이 도 14에서 볼 수 있는 것처럼, 특정 규칙 개체 A의 변경 필요성이 발생하면 도 14와 같은 화면에서 이와 연관된 규칙 개체 B가 있음을 사전에 파악할 수 있다. 따라서, 애플리케이션 변경자는 연관 규칙 개체 B를 함께 사전 검토해 볼 수 있으므로, 프로그램 변경 시의 사이드 이펙트를 감소시킬 수 있다. 즉, 규칙 개체 A 와 B가 연관되어 있음을 규칙메타정의기가 안내해 줄 수 있는 것은, 애플리케이션의 모든 구성 정보가 데이터베이스화 되어 있는 규칙저장 데이터베이스가 존재하므로 각 규칙 개체가 사용하는 데이터모델 규칙개체 등을 데이터베이스내에서 조회할 수 있기 때문이다.
이상, 본 발명을 몇가지 예를 들어 설명하였으나, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다.
또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110 규칙메타정의기,
200 규칙저장 데이터베이스,
300 규칙파일,
400 업무 데이터베이스,
500 규칙실행엔진.

Claims (11)

  1. 애플리케이션의 구성 요소를 규칙화한 규칙개체들을 저장하기 위한 규칙저장 데이터베이스;
    사용자가 규칙개체들을 정의할 수 있도록 하고 정의된 규칙개체들을 상기 규칙저장 데이터베이스에 저장하고, 상기 규칙저장 데이터베이스에 저장된 규칙개체들을 실행을 위한 규칙파일로 변환하는 규칙메타정의기; 및
    애플리케이션이 실제 실행될 물리적 위치에 배포된 상기 규칙파일을 읽고 해석하여 동작하며 상기 규칙파일 내에 업무 데이터베이스를 조작하는 규칙이 존재할 경우에는 상기 업무 데이터베이스에 액세스하여 데이터베이스 조작처리를 실행하는 로직규칙 메타처리엔진과, 규칙파일에 저장되어 있는 값들을 이용하여 화면을 구성하여 표시하는 화면규칙 메타처리엔진과, 사용자가 이벤트를 발생시키면 상기 로직규칙 메타처리엔진으로 전달할 전달값을 생성하여 전달하는 이벤트실행규칙 메타처리엔진을 구비하며, 상기 규칙파일로 정의되는 애플리케이션의 전 기능을 실행하는 규칙실행엔진
    을 포함하며,
    상기 규칙저장 데이터베이스는, 규칙메타정의기를 사용하여 정의하는 규칙 흐름 상에 존재하는 모든 규칙노드들에 대한 테이블로서 규칙흐름 상의 제어와 실행규칙에 대한 정보를 담고 있는 노드 테이블과, 규칙메타정의기를 사용하여 정의하는 규칙 흐름 상에 존재하는 특정 규칙노드 내에서 실행될 세부 규칙들을 저장한 규칙 테이블과, 규칙메타정의기를 사용하여 정의하는 화면관련 규칙 정보를 저장하는 컨트롤 테이블과, 규칙메타정의기를 사용하여 정의하는 애플리케이션의 화면에 관한 구성정보를 저장하고 관리하기 위한 컨트롤속성 테이블과, 규칙메타정의기를 사용하여 정의한 애플리케이션의 화면 실행시에 사용자 액션 이벤트에 대한 속성값을 저장하고 관리하기 위한 이벤트속성 테이블을 포함하며,
    상기 규칙메타정의기는, 애플리케이션 화면에서 발생될 이벤트에 따라 실행되어야 할 이벤트 처리로직 및 데이터의 치환, 변환, 저장을 포함하는 업무 데이터 조작을 플로우와, 입력값 스키마, 규칙 스키마, 출력값 스키마로 구성되는 규칙노드를 사용하여 플로우 다이어그램 형태로 정의할 수 있도록 하고,
    상기 규칙실행엔진은 규칙노드 간의 흐름을 제어하되, 흐름 상의 각 규칙노드에 대해서 입력값 스키마에 따라 입력값을 전달받아서 규칙 스키마에 정의된 규칙을 실행한 후에 출력값 스키마에 따라 처리 결과값을 출력하도록 제어하며,
    상기 규칙파일은, 규칙 플로우 상에 정의된 규칙노드들과 규칙노드 내부의 세부규칙정보에 대한 값으로 구성되는 로직처리규칙 오브젝트 XML 파일과, 애플리케이션의 시작화면을 규정하는 시작화면규칙 XML 파일을 포함하며 화면에서 정의한 각 사용자 인터페이스 컨트롤과 컨트롤 제어 속성값들로 구성되는 화면 오브젝트 XML 파일과, 화면에서 정의한 각 사용자 인터페이스 컨트롤에서 발생하는 이벤트와 이벤트 제어 속성값들로 구성되는 화면 이벤트 오브젝트 XML 파일을 포함하며,
    사용자가 규칙파일을 최초로 실행하면 상기 화면규칙 메타처리엔진이 상기 시작화면규칙 XML 파일에 규정되어 있는 화면규칙들을 읽어와서 화면을 구성하여 표시하고,
    사용자가 이벤트를 발생시키면 상기 이벤트실행규칙 메타처리엔진이 상기 로직규칙 메타처리엔진으로 전달할 데이터를 생성하여 전달하며,
    상기 로직규칙 메타처리엔진은 로직처리규칙 오브젝트 XML 파일을 읽어와서 그 속성값을 파악하고 규칙 플로우 속성값을 읽고 규칙 플로우에 따라 관련 규칙파일을 읽고 해석한 후에 관련 처리를 실행하는 것을 특징으로 하는 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템.
  2. 제1항에 있어서, 상기 규칙개체들은 화면처리에 대하여 정의하는 화면규칙과, 처리로직에 대하여 정의하는 로직규칙과, 데이터에 대하여 정의하는 데이터 규칙 중의 하나에 포함되는 것을 특징으로 하는 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템.
  3. 제2항에 있어서,
    상기 화면규칙은 정의된 화면의 속성을 정의하는 화면구성 규칙개체와, 애플리케이션 화면에서 발생될 이벤트에 따라 실행되어야 할 이벤트 처리로직을 정의하는 화면이벤트 처리관리 규칙개체를 포함하며,
    상기 로직규칙은 업무처리 애플리케이션에서의 데이터 처리 기능에 맞는 규칙을 정의하는 로직처리 규칙개체를 포함하며,
    상기 데이터규칙은 데이터베이스 질의문 실행을 통한 애플리케이션 업무 데이터의 입력, 수정, 삭제, 조회의 동작 시에 데이터베이스로부터 혹은 데이터베이스로 전달되는 사용자 데이터를 정의하는 처리로직용 데이터모델 규칙개체와, 특정 애플리케이션의 화면에서 입출력하는 데이터를 정의하는 화면연결용 데이터모델 규칙개체를 포함하는 것을 특징으로 하는 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템.
  4. 제2항에 있어서, 각 규칙개체들은 애플리케이션에서의 흐름을 제어하기 위한 규칙 값이 저장되는 이벤트 규칙 유형, 흐름 상의 분기점에서의 조건 분기 또는 병합 동작을 제어할 수 있는 규칙 값이 저장되는 게이트웨이 규칙 유형, 처리될 태스크에 대한 규칙 값이 저장되는 태스크 규칙 유형 중의 하나의 유형을 갖는 것을 특징으로 하는 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템.
  5. 삭제
  6. 제1항에 있어서,
    상기 노드 테이블에는 노드 식별자 값과 규칙흐름 상의 직전 노드 식별자를 포함하는 규칙 흐름에 대한 정보와, 해당 노드에서 실행될 규칙 테이블과의 연결 정보가 함께 저장되는 것을 특징으로 하는 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템.

  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
KR1020150120755A 2015-08-27 2015-08-27 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템 KR101791536B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150120755A KR101791536B1 (ko) 2015-08-27 2015-08-27 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150120755A KR101791536B1 (ko) 2015-08-27 2015-08-27 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템

Publications (2)

Publication Number Publication Date
KR20170024998A KR20170024998A (ko) 2017-03-08
KR101791536B1 true KR101791536B1 (ko) 2017-10-30

Family

ID=58404758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150120755A KR101791536B1 (ko) 2015-08-27 2015-08-27 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템

Country Status (1)

Country Link
KR (1) KR101791536B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210090955A (ko) * 2020-01-13 2021-07-21 주식회사 그라운드컨트롤 부동산 통합 데이터베이스 구축 장치 및 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902104A (zh) * 2019-02-11 2019-06-18 北京百度网讯科技有限公司 用于管理知识库的方法、装置、设备和介质
CN111338716A (zh) * 2020-02-28 2020-06-26 中国平安人寿保险股份有限公司 基于规则引擎的数据处理方法、装置及终端设备
CN112148353B (zh) * 2020-09-22 2024-05-17 京东科技控股股份有限公司 一种数据处理方法及装置
CN112199259B (zh) * 2020-10-21 2024-03-26 中国电子科技集团公司第十五研究所 一种基于规则引擎的故障判定与实现方法和***
CN112286521A (zh) * 2020-10-30 2021-01-29 上海中通吉网络技术有限公司 一种任务流程处理方法、存储介质及处理器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210090955A (ko) * 2020-01-13 2021-07-21 주식회사 그라운드컨트롤 부동산 통합 데이터베이스 구축 장치 및 방법
KR102419993B1 (ko) 2020-01-13 2022-07-13 주식회사 그라운드컨트롤 부동산 통합 데이터베이스 구축 장치 및 방법

Also Published As

Publication number Publication date
KR20170024998A (ko) 2017-03-08

Similar Documents

Publication Publication Date Title
KR101791536B1 (ko) 규칙 기반의 업무 애플리케이션 작성 및 실행 시스템
EP1388054B1 (en) Method and system for transforming legacy software applications into modern object-oriented systems
US20180357055A1 (en) System and method for computer language migration
US8856737B2 (en) Techniques for displaying customizations for composite applications
US7810069B2 (en) Methods and systems for relating data structures and object-oriented elements for distributed computing
US7788238B2 (en) Extensible object-modelling mechanism
US7188332B2 (en) Methods and systems for relating a data definition file and a data model for distributed computing
US20050081141A1 (en) Visual programming system and method
US10282198B2 (en) Mechanisms to persist hierarchical object relations
CN103631601A (zh) 一种代码生成方法和装置
CN104216701B (zh) 用于在制造执行***内创建图形用户界面的***和方法
US11762636B2 (en) Method and system for implementing application lineage metadata and registration
Trias et al. Migrating traditional web applications to CMS-based web applications
Rabiser et al. A prototype-based approach for managing clones in clone-and-own product lines
CN103500099A (zh) 一种通过扩展点和扩展实现软件快速二次开发的方法
Sáenz-Adán et al. Automating provenance capture in software engineering with UML2PROV
US11809844B2 (en) Creating an app method and system
Magnani et al. BPDMN: A conservative extension of BPMN with enhanced data representation capabilities
CN103383683A (zh) It运维***知识库的优化管理方法
Heller et al. Graph-based specification of a management system for evolving development processes
CN202584128U (zh) It运维***知识库的修改管理***
Ali et al. Towards modular combination and reuse of languages with perspectives
KR100609240B1 (ko) Mof 메타 모델과 사용자 요구 사항에 기반한 다이어그램 모델링 도구 생성 장치 및 방법
KR101765324B1 (ko) Sql과 다이어그램을 이용하는 소스코드 생성 장치 및 그의 처리 방법
EP4261678A1 (en) Generation of a technical instruction

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant