[go: up one dir, main page]

KR100807355B1 - 업무 프로세스 관리 방법 및 시스템 - Google Patents

업무 프로세스 관리 방법 및 시스템 Download PDF

Info

Publication number
KR100807355B1
KR100807355B1 KR1020070067197A KR20070067197A KR100807355B1 KR 100807355 B1 KR100807355 B1 KR 100807355B1 KR 1020070067197 A KR1020070067197 A KR 1020070067197A KR 20070067197 A KR20070067197 A KR 20070067197A KR 100807355 B1 KR100807355 B1 KR 100807355B1
Authority
KR
South Korea
Prior art keywords
instance
queue
executed
instances
activity
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020070067197A
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 KR1020070067197A priority Critical patent/KR100807355B1/ko
Priority to PCT/KR2007/003603 priority patent/WO2009005181A1/en
Application granted granted Critical
Publication of KR100807355B1 publication Critical patent/KR100807355B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 업무 프로세스 관리 방법 및 시스템에 관한 것으로, 개시된 업무프로세스관리방법 및 시스템은 업무 프로세스의 논리적인 업무 단계를 의미하는 활동 및 업무의 흐름을 위해 활동을 연결하는 논리적인 연결선인 전이를 포함하는 업무 프로세스를 자동으로 관리하는 방법에 있어서, 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업에 대한 인스턴스를 생성하고, 생성된 인스턴스를 소정의 조건에 따라 제1대기열 또는 제2대기열에 삽입하며, 제1대기열 또는 제2대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 것을 특징으로 한다. 본 발명에 의할 경우 무한 루프에 빠지는 등 프로세스 디자인 과정에서 예상치 못했던 결과가 발생함이 없이 의도한 대로 프로세스가 처리되어 프로세스의 안정성이 제고된다.
업무프로세스, 활동, 전이, 대기열.

Description

업무 프로세스 관리 방법 및 시스템{Method And System For Business Process Managemnet}
본 발명은 업무 프로세스 관리 방법 및 시스템에 관한 것이다. 보다 구체적으로 본 발명은 업무 프로세스(Business Process)의 논리적인 업무 단계를 의미하는 활동(Activity) 및 업무의 흐름을 위해 활동을 연결하는 논리적인 연결선인 전이(Transition)를 포함하는 업무 프로세스를 자동으로 관리하는 방법에 있어서, 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업(Work)에 대한 인스턴스(instance)를 생성하고, 생성된 인스턴스를 소정의 조건에 따라 제1대기열 또는 제2대기열에 삽입하며, 제1대기열 또는 제2대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 것을 특징으로 하는 업무프로세스관리방법 및 시스템에 관한 것이다.
최근 컴퓨터 관련 기술이 발달함에 따라 각 기업들에서는 업무 프로세스 관리(Business Process Management;BPM) 시스템을 도입하고 있다. 업무프로세스관리시스템이란 특정 조직 내의 업무 프로세스를 설계, 실행, 모니터링, 분석하면서 기존의 전산 시스템들을 업무 프로세스에 융합시킬 수 있는 소프트웨어 시스템을 말 한다.
업무 프로세스 관리 시스템을 도입하면 각 기업에서의 업무 처리 기간이 단축되고 작업의 오류 발생 가능성이 감소하며 업무 처리의 생산성이 향상되는 등 여러 가지 효과를 기대할 수 있으므로, 이에 대한 관심이 높아지고 있는 실정이다.
이러한 업무프로세스 관리 시스템을 구현하기 위해서는 작업흐름(Workflow) 프로세스의 처리가 요구된다. 작업흐름 프로세스란 정의된 규칙에 의해 수행되는 자동화된 업무의 프로세스를 말하는 것이다.
기업 환경이 복잡해지고 업무프로세스 관리 시스템이 발달할수록 복잡한 작업흐름 프로세스의 처리 요구가 증대되며 그 중에서도 루프(Loop)를 포함하는 프로세스를 처리할 필요성이 증가되고 있다.
기존에는 이러한 루프를 포함한 작업흐름 프로세스를 처리함에 있어서 루프 카운트를 이용한 루프 처리 방식을 이용하여 업무 프로세스 관리 시스템을 구현하였다. 그러나 루프 카운트를 이용한 기존의 방식은 복잡한 루프 프로세스의 경우 무한 루프에 빠지는 등 프로세스에 오류가 발생하는 한편, 예상치 못한 결과를 산출하는 등의 이유로 다양한 루프 프로세스를 구현 및 처리하지 못하는 문제점이 있었다.
도 1은 시뮬레이션을 위한 작업흐름 프로세스의 일실시예이다. 이를 통해 종래의 루프 카운트를 이용한 기존의 방식에 의한 시행된 작업흐름 프로세스의 시뮬레이션을 예를 들어 기존의 방식의 문제점을 설명하도록 한다.
활동(Activity)은 프로세스 구성에서 하나의 논리적인 작업 단계를 의미하는 것이다. 이러한 활동에는 프로세스의 시작을 의미하는 시작 활동(Start Activity)과 프로세스의 끝을 의미하는 종료 활동(End Activity)이 포함된다.
전이(Transition)는 각각의 작업을 연결하는 논리적인 연결선을 의미한다. 작업(Work)은 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미한다.
루프전이(Loop Transition)는 프로세스를 설계하는 과정에서 프로세스의 루프 구간을 판별한 경우 해당 루프 구간에 포함된 특정 전이를 가리킨다. 루프 카운트(Loop Count)라 함은 루프를 포함하는 프로세스를 처리하는 경우 루프 구간을 통과할 때마다 1씩 가산되는 숫자를 말한다.
도 1에서 프로세스는 여러 활동들과 각각의 활동들을 연결하는 전이로 이루어져 있다. 이러한 전이는 조건에 따라 활동을 호출하지 않을 수 있으며, 이러한 전이의 조건 판별을 위해서 전이는 일종의 작업으로 처리될 수 있다.
루프를 포함하는 프로세스는 프로세스를 설계하는 단계에서 루프구간을 판별하여 루프 구간에 포함된 특정 전이를 루프전이로 설정한다. 일련의 작업들에 대해서는 인스턴스들이 생성되고, 생성된 인스턴스들은 대기열에 삽입된 후 선입선출(First-in First-out;FIFO) 방식에 따라 대기열에서 호출되어 실행된다.
인스턴스(Instance)는 일반적으로 어떤 집합에 대하여 그 집합의 개별적인 요소를 말하는 것으로, 객체 지향 프로그래밍(Object Oriented Programming;OOP)에서 어떤 등급에 속하는 각 객체를 가리킨다.
인스턴스를 생성한다는 것은 인스턴스에 대하여 메모리 등의 기억장치를 할당하는 것을 말한다. 예를 들어, 목록(list)이라는 등급을 정의하고 그 후에 본인 목록(my list)이라는 객체를 생성하면 이에 대해 기억장치가 일부 할당되고 그 등급의 인스턴스가 생성되는 것이라 할 수 있다.
대기열(Queue)이란 여러 개의 데이터 항목들이 일정한 순서로 나열된 자료 구조를 말하는 것으로, 스택(Stack)과는 달리 일단에서는 삽입만이 가능하고, 타단에서는 출력 및 삭제만이 가능하도록 되어 있는 것을 말한다.
도 1에서 각 작업에 대해 생성되는 인스턴스들은 고유의 식별정보를 가지고 있다. 식별정보는 각 작업에 대한 인스턴스에 아이디(Identification;ID)를 부여하는 방식으로 정해질 수 있다. 이러한 식별정보에 의해 각 인스턴스들의 구별 및 호출이 수행되게 된다.
모든 작업에 대한 인스턴스들은 동일한 작업에 대한 이전 인스턴스의 루프 카운트를 상속받게 된다. 루프 카운트는 루프전이를 통과하는 경우마다 1씩 증가한다. 본 시뮬레이션에서 루프 카운트의 초기값은 1로 설정되어 있다.
생성된 작업의 인스턴스들은 인스턴스 테이블(Instance Table)에 각 인스턴스의 고유의 식별정보 및 루프 카운트가 기록된다. 인스턴스의 작업이 성공적으로 처리가 되면 이와 연결된 다음 작업의 인스턴스가 생성된다.
작업에 대한 인스턴스를 생성하기 이전에 이미 인스턴스 테이블에 생성될 작업에 대한 인스턴스와 고유한 식별정보 및 루프 카운트가 동일한 인스턴스가 기록되어 있고 대기열에 삽입되어 있다면 별개의 인스턴스가 생성되지 않고 기존의 인스턴스가 대기열에서 호출되어 실행될 것이다.
도 1에서 시뮬레이션되는 프로세스에서 루프 구간은 10B, 10T4, 10C, 10T5 이다. 도 1에서는 루프 구간 후에 위치하지만 루프 구간 전의 활동(10A)과 전이 10T3을 통해 연결되는 AND 조인 활동(10D)을 포함하는 프로세스가 시뮬레이션된다.
업무 프로세스에서의 작업은 조인(Join) 활동을 포함한다. 조인 활동은 입력되는 전이가 복수개인 활동을 말하며 이러한 조인 활동에는 OR 조인과 AND 조인이 있다.
AND 조인 활동은 복수개의 전이가 모두 실행되었고 이러한 복수개의 전이의 값이 모두 참인 경우에 실행될 수 있는 활동을 말하며, OR 조인 활동은 복수개의 전이 가운데 참의 값을 갖는 전이가 하나 이상 실행된 경우에 실행될 수 있는 활동을 말한다.
도 1의 종래 기술에 의한 시뮬레이션에서 전이 10T5 가 루프 전이가 되고, 모든 작업에 대한 인스턴스들은 루프 카운트를 상속받으며 루프 전이(10T5)에 대한 인스턴스가 실행될 때마다 루프 카운트는 1씩 증가한다.
시뮬레이션의 진행 및 결과는 도 2a, 도 2b, 도 2c 및 도 2d의 표에 기재되어 있다. 시작(100)과 종료(101)의 활동을 제외한 모든 작업에 대한 인스턴스들은 작업명 및 루프카운트를 포함하는 식별 정보에 의해 표시 및 구분된다. 도 2a, 도 2b, 도 2c 및 도 2d의 표에서 각 인스턴스에 대한 식별정보는 인스턴스가 상속받은 루프카운트를 표시하고 있으며, 인스턴스의 작업명은 소문자로 기재되어 있다.
예를 들어 도 2a, 도 2b, 도 2c 및 도 2d의 표에서 루프카운트가 1인 10A의 활동에 대한 인스턴스는 10a-1로 표시된다. 루프카운트가 4인 10T2 전이에 대한 인스턴스는 10t2-4로 표시된다.
도 1에서 모든 활동에 대한 인스턴스들은 실행 시 성공으로 처리되는 것으로 가정하며, 전이에 대한 인스턴스는 루프를 종료시키기 위해 실패로 처리될 수 있다. 전이의 성공 및 실패는 본 시뮬레이션에서 임의로 결정된다. 종료 활동(101)에 대한 인스턴스가 실행되면 그 프로세스는 종료된다.
도 2a, 도 2b, 도 2c 및 도 2d의 표에서 실행시 성공으로 처리된 작업에 대한 인스턴스, 조건 대기 중인 작업에 대한 인스턴스, 실행시 실패로 처리된 인스턴스에 대한 분류 표는 도 2a에 나타나 있다.
이제부터 도 1의 프로세스에 대하여 종래 기술에 의한 시뮬레이션 과정을 2a, 도 2b, 도 2c 및 도 2d의 표에 의해 설명하도록 한다.
도 2a에서 프로세스가 시작되면 시작(100)에 대한 인스턴스가 대기열에 삽입된 후 실행된다. 그 결과 시작(100)에 연결된 전이인 10T1에 대한 인스턴스인 10t1-1이 생성되어 대기열에 삽입된 후 실행된다.
그 후 10T1에 연결된 활동인 10A에 대한 인스턴스인 10a-1이 생성되어 대기열에 삽입된 후 실행되면 10A로부터 출력되는 두 개의 전이인 10T2와 10T3 각각에 대한 인스턴스 10t2-1과 10t3-1이 생성되어 대기열에 삽입된다.
대기열의 선입선출의 원리에 따라 먼저 생성되어 삽입된 10t2-1이 10t3-1에 우선하여 실행되고, 그 결과 10T2에 연결된 활동 10B에 대한 인스턴스 10b-1이 생성되어 대기열에 삽입된다. 이후 10t3-1이 실행되고, 10T3로부터 입력을 받는 AND 조인 활동(10D)의 인스턴스 10d-1이 생성되어 대기열에 삽입된다. 10b-1이 실행되면 전이 10T4의 인스턴스 10t4-1이 생성되어 대기열에 삽입된다.
이후 실행되는 10d-1는 AND 조인 활동(10D)의 인스턴스로 두 개의 전이 10T6와 10T3의 입력을 모두 필요로 한다. 그러나 현재 10T3의 인스턴스인 10t3-1은 실행되었으나 10T6의 인스턴스는 아직 실행된 바 없으므로 10d-1은 "대기" 상태로 처리되어 다시 대기열에 삽입된다.
이후 10t4-1이 실행되어 10C의 인스턴스 10c-1이 생성되어 대기열에 삽입된다. 이후의 과정은 도 2b에 나타나 있다. 10d-1은 아직 10T6의 인스턴스가 실행되지 않았으므로 대기 상태로 처리되어 다시 대기열에 삽입된다.
10c-1이 실행되면 10C에서 출력되는 두 개의 전이 10T5와 10T6에 대한 인스턴스 10t5-1과 10t6-1이 생성되어 대기열에 삽입된다. 10d-1은 다시 대기 상태로 처리되어 대기열에 삽입된다.
10t5-1이 실행되면 10T5로부터 입력을 받는 활동인 10B에 대한 인스턴스 10b-2가 생성되어 대기열에 삽입된다. 10T5는 앞서 가정한 바와 같이 루프 전이에 해당하므로 10T5에 대한 인스턴스가 실행되면 루프 카운트가 1씩 증가하게 된다. 따라서 10B에 대한 인스턴스의 루프 카운트는 2가 되어 10b-2로 표시되고, 이후의 인스턴스들은 10b-2의 루프카운트 2를 상속받게 된다.
도 2b에서 10t6-1은 실행시 실패로 처리된다. 이는 10T6에 연결된 활동인 10D는 10t6-1의 실행에 의해 10D에 대하여 인스턴스가 생성되거나 실행되지 않음을 의미한다. 따라서 10d-1의 경우 10t6-1이 실패로 처리되어 10T6로부터 입력을 받지 못하고 있으므로 대기 상태로 처리되어 대기열에 삽입된다.
이후 10b-2가 실행되고, 루프 카운트 2를 상속받은 10t4-2가 생성되어 대기 열에 삽입된다. 10d-1은 다시 대기 상태로 처리되어 대기열에 삽입된다. 이후의 과정은 도 2c에 기재되어 있다.
도 2c에서 10t4-2가 실행되고 그 결과 10c-2가 생성되어 대기열에 삽입된다. 10d-1은 대기 상태로 처리되어 대기열에 삽입된다. 10c-2가 실행되면 10C로부터 출력되는 전이 10T5와 10T6에 대한 인스턴스인 10t5-2와 10t6-2가 순차적으로 생성되어 대기열에 삽입된다.
10d-1은 대기 상태로 처리되어 대기열에 삽입된다. 10t5-2는 도 2c에서 실패로 처리된다. 따라서 10B에 대한 인스턴스는 생성되지 않는다. 10t6-2는 성공으로 처리되고 10t6-2로부터 루프카운트를 상속받은 인스턴스 10d-2가 생성되어 대기열에 삽입된다.
앞서 기재한 바에 따르면, 루프카운트를 이용한 종래의 기술에서 작업에 대한 인스턴스를 생성하기 이전에 인스턴스 테이블에 생성될 인스턴스와 고유한 식별정보 및 루프카운트가 동일한 인스턴스가 존재한다면 인스턴스를 생성하지 않고 기존의 인스턴스를 호출하여 실행할 것이다.
그러나 10d-1과 10d-2는 루프카운트가 서로 1과 2로 상이하므로 식별정보가 달라 서로 상이한 인스턴스로 인식되므로 도 2c에서는 기존의 인스턴스 10d-1 외에 새로운 인스턴스 10d-2가 생성되어 대기열에 삽입된다.
도 2c 및 도 2d에서, 10d-1은 10t3-1과 10t6-1이 성공으로 처리되어야 실행될 것이지만 본 시뮬레이션에서 10t6-1이 실패로 처리되었으므로 10d-1은 계속해서 대기 상태로 처리된다. 10d-2는 10t3-2와 10t6-2가 성공으로 처리되어야 실행될 것 이지만 10t3-2가 실행되지 않았으므로 10d-2도 계속하여 대기 상태로 처리된다.
결국 루프카운트를 이용한 기존의 방법에 의하면 루프가 포함된 복잡한 프로세스의 경우 프로세스 디자인 과정에서는 의도하지 않았던 결과가 발생하거나 앞서 본 시뮬레이션의 결과처럼 무한루프에 빠져 프로세스가 실행되지 않는 결과가 발생하는 문제점이 있었다.
상기한 문제를 해결하기 위해 본 발명에서는 루프를 포함하는 복잡한 프로세스에서 루프카운트를 이용하지 않고 두 개의 대기열을 이용하여 업무프로세스를 관리하는 방법 및 시스템을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위해 본 발명에서는 활동 및 전이를 포함하는 업무 프로세스를 자동으로 관리하는 방법에 있어서, 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업에 대한 인스턴스를 생성하고, 생성된 인스턴스 가운데 소정의 조건을 만족시키는 인스턴스를 제2대기열에 삽입하고, 생성된 인스턴스 가운데 소정의 조건을 만족시키지 못하는 인스턴스를 제1대기열에 삽입하고, 제1대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키고, 제1대기열에 삽입되어 있는 인스턴스가 부존재하는 경우 제2대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 업무프로세스관리방법 및 시스템을 제공한다.
본 발명에 의하면 복잡한 프로세스에서도 기존의 루프카운트에 의한 방식과는 달리 프로세스 실행 중 무한루프에 빠져 프로세스가 더 이상 실행되지 않는 경우가 발생하지 않는다. 또한 프로세스의 처리시 프로세스 디자인 과정에서 예상하지 못했던 결과가 도출됨이 없이 의도했던 바 대로 프로세스가 처리된다.
도 4는 본 발명에 따른 업무프로세스관리시스템의 구성을 도시한 블록도이다. 이를 통해 본 발명의 업무프로세스관리시스템에 대해 설명하도록 한다.
도 4에 나타난 바와 같이 업무프로세스관리시스템(210)은 생성모듈(211), 삽입모듈(215), 실행모듈(217) 및 기록모듈(213)을 포함한다. 업무프로세스관리시스템(210)은 논리적으로 또는 전기적 신호에 의해 인스턴스테이블(230) 또는 대기열(250)과 연결된다. 대기열(250)은 제1대기열(251)과 제2대기열(253)을 포함한다.
본 발명에 따른 업무프로세스관리시스템(210)은 업무 프로세스의 논리적인 업무 단계를 의미하는 활동 및 업무의 흐름을 위해 활동을 연결하는 논리적인 연결선인 전이를 포함하는 업무 프로세스를 자동으로 관리하는 시스템에 관한 것이다.
여기서 활동(Activity)은 프로세스 구성에서 하나의 논리적인 작업 단계를 의미하는 것이다. 이러한 활동에는 프로세스의 시작을 의미하는 시작 활동(Start Activity)과 프로세스의 끝을 의미하는 종료 활동(End Activity)이 포함된다. 전이(Transition)는 각각의 작업을 연결하는 논리적인 연결선을 의미하며 작업(Work)은 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미한다.
생성모듈(211)은 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업에 대한 인스턴스를 생성한다.
작업 및 인스턴스에 대한 예는 다음과 같다. 어떠한 회사의 결제 프로세스 내에 A 부서에서 B 부서로 전자 서류를 전송하는 일을 수행하는 작업이 포함되어 있다고 가정한다.
이 경우 제 1 전자 서류를 A 부서에서 B 부서로 첫 번째로 보내는 일을 수행 해야 하는 경우 위 작업에 대하여 제 1 인스턴스가 생성될 것이다. 제 2 전자 서류를 A 부서에서 B 부서로 보내는 일의 경우 제 1 전자 서류를 보내는 것과 다른 경우이므로 제 2 인스턴스가 생성될 것이다. 또한 이미 한 번 보낸 제 1 전자 서류를 다시 한 번 A 부서에서 B 부서로 보내는 경우에도 위 제 1 인스턴스의 경우와는 그 횟수에서 차이가 있으므로 별도의 새로운 인스턴스가 생성될 것이다.
삽입모듈(215)은 생성된 인스턴스 가운데 소정의 조건을 만족시키는 인스턴스를 제2대기열(253)에 삽입하고, 생성된 인스턴스 가운데 소정의 조건을 만족시키지 못하는 인스턴스를 제1대기열(251)에 삽입한다.
실행모듈(217)은 제1대기열(251)에 삽입되어 있는 인스턴스가 존재하는 경우에는 제1대기열(251)에 삽입되어 있는 인스턴스를 호출하여 실행시키고, 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하는 경우 제2대기열(253)에 삽입되어 있는 인스턴스를 호출하여 실행시킨다.
종래의 발명에서 하나의 대기열만 사용한 것과는 달리 본 발명에 따른 업무프로세스관리시스템에서 대기열(250)은 제1대기열(251)과 제2대기열(253)의 두 개의 대기열을 포함한다.
제1대기열(251)은 소정의 조건을 만족시키지 못하는 인스턴스가 삽입모듈(215)에 의해 삽입되는 대기열이다. 제1대기열(251)에 삽입되어 있는 인스턴스는 제2대기열(253)에 삽입되어 있는 인스턴스보다 우선적으로 실행모듈(217)에 의해 호출되어 실행된다.
제2대기열(253)은 소정의 조건을 만족시키는 인스턴스가 삽입모듈(251)에 의 해 삽입되는 대기열이다. 제2대기열(253)에 삽입되어 있는 인스턴스는 제1대기열(251)에 삽입되어 있는 인스턴스가 존재하지 않는 경우에 실행모듈(217)에 의해 호출되어 실행된다.
삽입모듈(215)이 소정의 조건에 따라 인스턴스를 제1대기열(251) 또는 제2대기열(253)에 삽입하는 것은 다음과 같이 이루어질 수 있다.
삽입모듈(215)은 생성된 인스턴스가 활동에 입력되는 복수개의 전이 가운데 일부 전이에 대한 인스턴스가 실행되지 않은 활동에 대한 인스턴스이거나, 생성된 인스턴스가 활동에 입력되는 복수개의 전이에 대한 인스턴스가 모두 실행되었고 복수개의 전이에 대한 인스턴스의 값이 모두 참인 것이 아닌 활동에 대한 인스턴스인 경우에 생성된 인스턴스를 상기 제2대기열(253)에 삽입하고 제2대기열(253)에 삽입되지 않는 나머지 인스턴스들을 제1대기열(251)에 삽입할 수 있다.
본 발명에 따른 업무프로세스관리시스템을 도 1에서의 프로세스에 적용시켜 본다. 도 1의 여러 활동 가운데 복수개의 전이가 입력되는 활동은 조인 활동에 해당하고, 조인 활동에는 OR 조인 활동 및 AND 조인 활동이 있다.
AND 조인 활동은 복수개의 전이가 모두 실행되었고 이러한 복수개의 전이의 값이 모두 참인 경우에 실행될 수 있는 활동을 말하며, OR 조인 활동은 복수개의 전이 가운데 참의 값을 갖는 전이가 하나 이상 실행된 경우에 실행될 수 있는 활동을 말한다.
삽입모듈(215)은 복수개의 전이 가운데 일부 전이에 대한 인스턴스가 실행되지 않은 OR 조인 활동 또는 AND 조인 활동에 대한 인스턴스를 제2대기열(253)에 삽 입한다. 또한 삽입모듈(215)은 AND 조인 활동에 대한 인스턴스 가운데 복수개의 입력 전이에 대한 인스턴스가 모두 실행되었더라도 입력되는 전이의 인스턴스의 값 중 거짓인 값이 존재하는 AND 조인 활동에 대한 인스턴스를 제2대기열(253)에 삽입한다. 위 두 가지 경우를 제외한 나머지 경우의 작업에 대한 인스턴스는 삽입모듈(215)에 의해 제1대기열(251)에 삽입된다.
실행모듈(217)이 제1대기열(251)에 삽입되어 있는 인스턴스를 호출하여 실행한 결과 생성될 인스턴스가 이미 생성되어 제2대기열(253)에 삽입되어 있는 경우, 생성모듈(211)은 그 인스턴스와 동일한 인스턴스를 다시 생성하지 않으며 삽입모듈(215)은 제2대기열(253)에 이미 삽입되어 있는 인스턴스를 호출하여 제1대기열에 삽입할 수 있다.
이를 위해 생성모듈(211)은 생성할 인스턴스가 이미 생성되어 대기열에 삽입되어 있는지를 판단하기 위해 인스턴스테이블(230)을 참조한다. 인스턴스테이블(230)은 생성모듈(211)에 의해 생성되어 삽입모듈(215)에 의해 제1대기열(251) 또는 제2대기열(253)에 삽입될 인스턴스를 기록하는 테이블을 말한다. 즉, 인스턴스테이블(230)에 생성할 인스턴스가 이미 생성된 것으로 기록되어 있다면 생성모듈(211)은 그 인스턴스와 동일한 인스턴스를 다시 생성하지 않는다.
기록모듈(213)은 인스턴스테이블(230)에 삽입될 인스턴스를 각 인스턴스별로 부여되는 식별정보에 의해 각 인스턴스가 구별되도록 기록한다. 각 인스턴스는 이러한 식별정보에 의해 호출될 수 있다.
기존의 발명에서는 각 인스턴스별로 루프카운트가 부여되고 각 인스턴스는 이전의 루프카운트를 상속받게 되어 있었다. 그러나 본 발명에서는 각 인스턴스에 이러한 루프카운트가 부여되지 않는다.
본 발명에서는 두 개의 대기열에 소정의 조건에 따라 인스턴스를 삽입한다. 또한 각 인스턴스에 부여되는 식별정보에는 하나의 프로세스에서 하나의 작업에 대해 생성된 인스턴스의 개수에 관한 정보가 포함된다.
예를 들어 도 1의 프로세스에서 OR 조인 활동인 10B에 대하여 첫 번째로 생성된 인스턴스의 식별정보는 10b-1으로 표현되고, 10B에 대해 두 번째로 생성된 인스턴스의 식별정보는 10b-2로 표현될 수 있다. 이 경우 -1 및 -2 등이 하나의 프로세스에서 하나의 작업에 대해 생성된 인스턴스의 개수에 관한 정보가 된다.
이하에서는 앞서 살펴본 바와 같이 루프카운트를 이용한 종래의 방식에 의할 경우 무한 루프에 의해 프로세스가 종료되지 못했던 도 1의 프로세스에 대하여 본 발명에 따른 업무프로세스관리시스템에 의한 프로세스의 진행 과정 및 결과를 도 3a, 도 3b, 도 3c의 표를 이용해 설명하도록 한다.
이하의 모든 표에서 실행시 성공으로 처리된 작업에 대한 인스턴스, 조건 대기 중인 작업에 대한 인스턴스, 실행시 실패로 처리된 인스턴스에 대한 분류는 도 2a에 포함된 분류 표에 기재된 바와 같다.
도 3a에서 생성모듈(211)은 시작(100)에 대한 인스턴스를 생성하고, 삽입모듈(215)은 생성된 인스턴스를 제1대기열(251)에 삽입한다. 실행모듈(215)은 제1대기열에 삽입되어 있는 시작(100)에 대한 인스턴스를 호출하여 실행한다.
생성모듈(211)은 시작(100)으로부터 출력되는 전이 10T1에 대한 인스턴스 10t1-1을 생성하고 삽입모듈(215)은 10t-1을 제1대기열(251)에 삽입하며 실행모듈(217)은 이를 호출하여 실행한다.
10t-1이 실행되면 10a-1이 생성되어 제1대기열(251)에 삽입되고 10a-1이 실행되면 10A에서 출력되는 10T2와 10T3에 대한 인스턴스 10t2-1과 10t3-1이 생성되어 제1대기열(251)에 삽입된다.
먼저 삽입된 10t2-1이 실행되면 10B에 대한 인스턴스 10b-1이 생성된다. 10B는 입력되는 전이가 복수개인 OR 조인 활동이나 현재 10T2에 대한 인스턴스만이 실행되었고 10T5에 대한 인스턴스는 실행되지 않았으므로 삽입모듈(215)은 10b-1을 제2대기열(253)에 삽입한다.
10t3-1이 실행되면 10D에 대한 인스턴스 10d-1이 생성된다. 10D는 입력되는 전이가 복수개인 AND 조인 활동이나 현재 10T3에 대한 인스턴스만이 실행되었고 10T6에 대한 인스턴스는 실행되지 않았으므로 삽입모듈(215)은 10d-1을 제2대기열(253)에 삽입한다.
실행모듈(217)은 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 제2대기열(253)에 삽입되어 있는 10b-1을 호출하여 실행한다. 10b-1이 실행되면 10t4-1이 생성되어 제1대기열(251)에 삽입된다.
10t4-1이 실행되면 10c-1이 생성되어 제1대기열(251)에 삽입된다. 이 경우 제2대기열에 삽입되어 있는 10d-1은 실행모듈(217)이 인스턴스를 호출하여 실행하는 경우에 제1대기열(251)에 10t4-1의 인스턴스가 존재하므로 실행되지 않는다.
10c-1이 실행되면 10t5-1과 10t6-1이 생성되어 제1대기열(251)에 삽입된다.
도 3b에 나타난 바와 같이, 제1대기열(251)에 생성되어 삽입된 순서에 따라 10t5-1이 먼저 호출되어 실행되고 10b-2가 생성된다. 10B에서 생성되는 두 번째 인스턴스이므로 이 인스턴스의 식별정보는 -2의 정보를 포함한다. 삽입모듈(215)은 10B가 OR 조인이고 그에 대한 두 개의 입력 전이인 10T2와 10T5 모두에 대하여 인스턴스가 실행되었으므로 10b-2를 제1대기열(251)에 삽입한다.
10t6-1은 도3a에서 호출되어 실행시 앞서 종래 기술에 의한 시뮬레이션에서의 경우와 마찬가지로 실패로 처리된다. 10b-2가 호출되어 실행되면 10t4-2가 생성되어 제1대기열(251)에 삽입되고, 10t4-2가 호출되어 실행되면 10c-2가 생성되어 제1대기열(251)에 삽입된다.
10c-2가 호출되어 실행되면 10t5-2와 10t6-2가 생성되어 제1대기열(251)에 삽입된다. 10t5-2는 호출되어 실행된 후 실패로 처리된다. 실행모듈(217)이 10t6-2를 실행하면 10D에 대한 인스턴스를 생성해야 한다. 그런데 10d-1이 제2대기열(253)에 삽입되어 있으므로 생성모듈(211)은 별도의 인스턴스를 생성하지 않는다. 10D는 AND 조인 활동이나 두 입력 인스턴스 10T6와 10T3에 대한 인스턴스가 모두 실행되었고 그 값도 참이므로 삽입모듈(215)은 10d-1을 호출하여 제1대기열(251)에 삽입한다.
실행모듈(217)은 10d-1을 호출하여 실행하고 그 결과 10t7-1이 생성되어 제1대기열(251)에 삽입된다. 10t7-1이 호출되어 실행되면 종료 활동(101)에 대한 인스턴스가 생성되어 제1대기열(251)에 삽입된다. 종료 활동(101)에 대한 인스턴스가 호출되어 실행되면 프로세스가 종료한다.
이와 같이 본 발명에 따른 업무프로세스관리시스템에 의하면 기존의 루프카운트를 이용하는 방식에서와는 달리 프로세스가 무한 루프에 빠지는 일 없이 원활하고 안정적으로 처리된다.
도 5a는 본 발명에 따른 업무프로세스관리시스템의 시뮬레이션을 위한 단일 루프를 포함하는 작업흐름 프로세스의 일실시예이다. 도 5a의 프로세스에서 루프구간은 30B, 30T3, 30C, 30T4이다. 기타의 가정은 앞서 도 1에 대한 본 발명의 시뮬레이션의 경우와 동일하다. 이하에서는 도 5b, 도 5b의 표를 이용하여 도 5a의 프로세스에 대한 본 발명의 시뮬레이션을 설명하도록 한다.
도 5b에서 생성모듈(211)은 시작 활동(300)에 대한 인스턴스를 생성하고 삽입모듈(215)이 이를 제1대기열(251)에 삽입한다. 실행모듈(217)이 시작 활동(300)에 대한 인스턴스를 호출하여 실행하면, 시작활동(300)의 출력전이 30T1에 대한 인스턴스 30t1-1이 생성되어 제1대기열(251)에 삽입된다.
30t1-1이 호출되어 실행되면 30a-1이 생성되어 제1대기열(251)에 삽입된다. 30a-1이 호출되어 실행되면 30t2-1이 생성되어 제1대기열(251)에 삽입된다. 30t2-1이 호출되어 실행되면, 생성모듈(211)은 OR 조인 활동 30B에 대한 인스턴스 30b-1을 생성한다.
30B에 대한 복수의 입력 전이 가운데 30T4에 대한 인스턴스가 아직 실행되지 않았으므로 삽입모듈(215)은 30b-1을 제2대기열(253)에 삽입한다. 이 경우 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 실행모듈(217)은 제2대기열(253)에 삽입되어 있는 30b-1을 호출하여 실행한다. 30B는 OR 조인 활동이므로 복수개의 입력 전이에 대한 인스턴스 가운데 하나의 인스턴스만이 실행되어 있고 그 값이 참이더라도 실행 결과가 성공으로 처리된다.
30b-1이 실행되면 30t3-1이 생성되어 제1대기열(251)에 삽입된다. 30t3-1이 호출되어 실행되면 30c-1이 생성되어 제1대기열(251)에 삽입된다. 30c-1이 호출되어 실행되면 30t4-1과 30t5-1이 생성되어 제1대기열(251)에 삽입된다.
30t4-1이 호출되어 실행되면, 30B에 대하여 두 번째 인스턴스를 생성하는 경우이므로 생성모듈(211)은 30b-2를 생성한다. OR 조인 활동 30B에 대하여 복수개의 입력 전이에 대한 인스턴스가 모두 실행되었으므로 삽입모듈(215)은 30b-2를 제1대기열(251)에 삽입한다.
도 5c에서 30t5-1은 실행시 실패로 처리된다. 30b-2가 호추뢰어 실행되면 30t3-2가 생성되어 제1대기열(251)에 삽입된다. 30t3-2가 생성되면 30c-2가 생성되어 제1대기열(251)에 삽입된다. 30c-2가 호출되어 실행되면 30t4-2와 30t5-2가 생성되어 제1대기열(251)에 삽입된다.
30t4-2는 호출되어 실행시 실패로 처리된다. 30t5-2가 호출되어 실행되면 30d-1이 생성되어 제1대기열(251)에 삽입된다. 30d-1이 호출되어 실행되면 30t6-1이 생성되어 제1대기열(251)에 삽입된다. 30t6-1이 호출되어 실행되면 종료(301)에 대한 인스턴스가 생성되어 제1대기열(251)에 삽입되고, 종료(301)에 대한 인스턴스가 실행되면 도 5a의 프로세스가 종료하게 된다.
이상에서 기술한 바와 같이 도 5a의 단일 루프를 포함하는 프로세스에 대하여 본 발명에 따른 업무프로세스관리시스템을 시뮬레이션한 결과 오류 없이 예측한 대로 프로세스가 진행됨을 알 수 있다.
도 6a는 본 발명에 따른 업무프로세스관리시스템의 시뮬레이션을 위한 교차루프 타입 1을 포함하는 작업흐름 프로세스의 일실시예이다. 도 6a의 프로세스에서 루프구간은 40B, 40T3, 40C, 40T4, 40D, 40T5, 40T6, 40E, 40T7 이며 교차 지점은 40C 이다. 기타의 가정은 앞서 도 1에 대한 본 발명의 시뮬레이션의 경우와 동일하다. 이하에서는 도 6b, 도 6c, 도 6d, 도 6e, 도 6f의 표를 통해 도 6a의 프로세스에 대한 본 발명의 시뮬레이션을 설명하도록 한다.
도 6b에서 생성모듈(211)은 시작 활동(400)에 대한 인스턴스를 생성하고 삽입모듈(215)이 이를 제1대기열(251)에 삽입한다. 실행모듈(217)이 시작 활동(400)에 대한 인스턴스를 호출하여 실행하면, 시작활동(400)의 출력전이 40T1에 대한 인스턴스 40t1-1이 생성되어 제1대기열(251)에 삽입된다.
40t1-1이 호출되어 실행되면 40a-1이 생성되어 제1대기열(251)에 삽입된다. 40a-1이 호출되어 실행되면 40t2-1이 생성되어 제1대기열(251)에 삽입된다.
40t2-1이 호출되어 실행되면 생성모듈(211)은 40b-1을 생성한다. 40B는 OR 조인 활동이고, 복수개의 입력 전이 가운데 40T5에 대한 인스턴스가 아직 실행되지 않았으므로 삽입모듈(215)은 40b-1을 제2대기열(253)에 삽입한다. 이 경우 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 실행모듈(217)은 제2대기열(253)에 삽입되어 있는 40b-1을 호출하여 실행한다.
40b-1이 실행되면 40t3-1이 생성되어 제1대기열(251)에 삽입된다. 40t3-1이 호출되어 실행되면 40c-1이 생성된다. OR 조인 활동 40C의 복수개의 입력 전이 가 운데 40T7에 대한 인스턴스가 실행되지 않았으므로 삽입모듈(215)는 40c-1을 제2대기열(253)에 삽입한다. 이 경우 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 실행모듈(217)은 제2대기열(253)에 삽입되어 있는 40c-1을 호출하여 실행한다.
40c-1이 호출되어 실행되면 40t4-1이 생성되어 제1대기열(251)에 삽입된다. 40t4-1이 호출되어 실행되면 40d-1이 생성되어 제1대기열에 삽입된다. 40d-1이 호출되어 실행되면 40t5-1과 40t6-1이 생성되어 제1대기열(251)에 삽입된다.
40t5-1이 실행되면 생성모듈(211)은 40B에 대한 두 번째 인스턴스인 40b-2를 생성한다. 40B에 대한 복수개의 인스턴스가 모두 실행되었고 40B는 OR 조인 활동이므로 삽입모듈은 40b-2를 제1대기열(251)에 삽입한다.
40t6-1이 호출되어 실행되면 40e-1이 생성되어 제1대기열(251)에 삽입된다. 40b-2가 호출되어 실행되면 40t3-2가 생성되어 제1대기열(251)에 삽입된다. 40e-1이 호출되어 실행되면 40t7-1과 40t8-1이 생성되어 제1대기열(251)에 삽입된다.
40t3-2가 호출되어 실행되면 생성모듈(211)은 40c-2를 생성한다. 40c-2에 대한 복수의 입력 전이 중 40T7에 대한 인스턴스 40t7-1이 아직 실행되지 않았으므로 삽입모듈(215)은 40c-2를 제2대기열(253)에 삽입한다.
40t7-1이 호출되어 실행되면 40T7이 입력되는 OR 조인 활동 40C에 대한 인스턴스가 제2대기열(253)에 삽입되어 있으므로, 생성모듈(211)은 40C에 대하여 별도의 인스턴스를 생성하지 않는다. 삽입모듈(215)은 40c-2에 대한 복수의 입력전이가 모두 실행되었으므로 40c-2를 제1대기열(251)에 삽입한다.
도 6c에서 40t8-1은 실행시 실패로 처리된다. 40c-2가 호출되어 실행되면 40t4-2가 생성되어 제1대기열(251)에 삽입된다. 40t4-2가 호출되어 실행되면 40d-2가 생성되어 제1대기열(251)에 삽입된다.
도 6d에서 40d-2가 호출되어 실행되면 40t5-2와 40t6-2가 생성되어 제1대기열(251)에 삽입된다. 40t5-2가 호출되어 실행되면 40b-3가 생성되어 제1대기열(251)에 삽입된다. 40t6-2가 호출되어 실행되면 40e-2가 생성되어 제1대기열(251)에 삽입된다.
40b-3가 호출되어 실행되면 40t3-3이 생성되어 제1대기열(251)에 삽입된다. 40e-2가 호출되어 실행되면 40t7-2와 40t8-2가 생성되어 제1대기열(251)에 삽입된다. 40t3-3이 호출되어 실행되면 40c-3이 생성되어 제1대기열(251)에 삽입된다.
40t7-2가 호출되어 실행되면 40c-4가 생성되어 제1대기열(251)에 삽입된다. 도 6의 시뮬레이션에서 40t8-2는 실행 결과 실패로 처리되므로 40F에 대한 인스턴스는 생성되지 않는다. 40c-3이 호출되어 실행되면 40t4-3이 생성되어 제1대기열(251)에 삽입되고, 40c-4가 호출되어 실행되면 40t4-4가 생성되어 제1대기열(251)에 삽입된다.
40t4-3와 40t4-4가 순차적으로 호출되어 실행되면 40d-3, 40d-4가 순차적으로 생성되어 제1대기열(251)에 삽입된다. 40d-3와 40d-4가 순차적으로 호출되어 실행되면 40t5-3, 40t6-3와 40t5-4, 40t6-4가 순차적으로 생성되어 제1대기열(251)에 삽입된다.
도 6e에서 40t5-3은 호출되어 실행시 실패로 처리되므로 40B에 대한 인스턴 스가 생성되지 않는다. 40t6-3은 호출되어 실행시 성공으로 처리되므로 40e-3이 생성되어 제1대기열(251)에 삽입된다.
40t5-4 역시 실행시 실패로 처리되므로 40B에 대한 인스턴스는 생성되지 않으며, 40t6-4는 실행시 성공으로 처리되므로 도 6f에서 40e-4가 생성되어 제1대기열(251)에 삽입된다.
40e-3와 40e-4가 순차적으로 호출되어 실행되면 40t7-3 및 40t8-3와 40t7-4 및 40t8-4가 순차적으로 생성되어 제1대기열(251)에 삽입된다. 도 6f에서 40t7-3은 호출되어 실행시 실패로 처리되므로 40C에 대한 인스턴스는 생성되지 않는다.
40t8-3은 호출되어 실행시 성공으로 처리되므로 40f-1이 생성되어 제1대기열(251)에 삽입된다. 40t7-4와 408-4는 순차적으로 호출되어 실행시 실패로 처리되므로 그 실행 후 인스턴스가 생성되지 않는다. 40f-1이 호출되어 실행되면 40t9-1이 생성되어 제1대기열(251)에 삽입되고, 40t9-1이 실행되면 종료(401)에 대한 인스턴스가 생성되어 제1대기열(251)에 삽입되며, 종료(401)에 대한 인스턴스가 실행되면 도 6a의 프로세스에 대한 시뮬레이션은 종료된다.
도 6a는 본 발명에 따른 업무프로세스관리시스템의 시뮬레이션을 위한 교차루프 타입 2를 포함하는 작업흐름 프로세스의 일실시예이다. 도 7a의 프로세스에서 루프구간은 50B, 50T3, 50C, 50T4, 50D, 50T5, 50T6, 50E, 50T7, 50T8 이며 교차 지점은 50C 이다. 또한 이 프로세스는 50D, 50T5, 50B에 해당하는 중첩 루프를 가지고 있다.
기타의 가정은 앞서 도 1에 대한 본 발명의 시뮬레이션의 경우와 동일하다. 이하에서는 도 7b, 도 7c, 도5d, 도 7e, 도 7f의 표를 이용하여 도 7a의 프로세스에 대한 본 발명의 시뮬레이션을 설명하도록 한다.
도 7b에서 시작(500)에 대한 인스턴스가 생성되어 제1대기열(251)에 삽입되고, 시작(500)에 대한 인스턴스가 실행되면 50t1-1이 생성되어 제1대기열(251)에 삽입된다. 50t1-1이 실행되면 50a-1이 생성되어 제1대기열(251)에 삽입되고, 50a-1이 실행되면 50t2-1이 생성되어 제1대기열(251)에 삽입된다.
50t2-1이 실행되면 생성모듈(211)은 OR 조인 활동인 50B에 대한 인스턴스 50b-1을 생성한다. 50b-1의 경우 아직 50B에 대한 복수의 입력 전이인 50T2, 50T5, 50T8 에 대한 인스턴스가 모두 실행된 것이 아니므로 삽입모듈(215)은 50b-1을 제2대기열(253)에 삽입한다.
실행모듈(217)은 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 제2대기열(253)에 삽입되어 있는 50b-1을 호출하여 실행한다. 50b-1이 실행되면 50t3-1이 생성되어 제1대기열(251)에 삽입된다.
50t3-1이 실행되면 생성모듈(211)은 OR 조인 활동 50C에 대한 인스턴스 50c-1을 생성한다. 50C에 대한 입력 전이인 50T3와 50T7에 대한 인스턴스가 모두 실행된 것은 아니므로 삽입모듈(215)은 50c-1을 제2대기열(253)에 삽입한다. 실행모듈은 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 제2대기열(253)에 삽입되어 있는 인스턴스 50c-1을 호출하여 실행한다.
50c-1이 실행되면 50t4-1이 생성되어 제1대기열(251)에 삽입된다. 50t4-1이 실행되면 50d-1이 생성되어 제1대기열(251)에 삽입된다. 50d-1이 실행되면 50t5-1 과 50t6-1이 생성되어 제1대기열(251)에 삽입된다.
도 7c에서 50t5-1이 실행되면 생성모듈(211)은 50B에 대한 두 번째 인스턴스인 50b-2를 생성한다. 50B에 대한 복수개의 입력 전이 가운데 50T8에 대한 인스턴스가 실행되지 않았으므로 삽입모듈(215)은 50b-2를 제2대기열(253)에 삽입한다.
실행모듈(217)은 제1대기열(251)에 삽입되어 있는 인스턴스 50t6-1이 존재하므로 제2대기열(253)에 삽입되어 있는 50b-2에 우선하여 50t6-1을 호출하여 실행한다. 50t6-1이 실행되면 50e-1이 생성되어 제1대기열(251)에 삽입된다.
50e-1이 호출되어 실행되면 50t7-1, 50t8-1, 50t9-1이 생성되어 제1대기열(251)에 삽입된다. 50t7-1이 실행되면 생성모듈은 50C에 대한 두 번째 인스턴스 50c-2를 생성한다. 50C에 대한 복수의 인스턴스가 모두 실행되었고 50C는 OR 조인 활동이므로 삽입모듈(215)은 50c-2를 제1대기열(251)에 삽입한다.
50t8-1이 실행되면 50B에 대한 인스턴스 50b-2가 제2대기열(253)에 삽입되어 있으므로 생성모듈(211)은 50B에 대한 별도의 인스턴스를 생성하지 않는다. 50B에 대한 복수의 인스턴스가 모두 실행되었고 50B는 OR 조인 활동이므로 삽입모듈(215)은 50b-2를 제2대기열(253)에서 호출하여 제1대기열(251)에 삽입한다.
도 7c에서 50t9-1은 실행시 실패로 처리된다. 50c-2가 실행되면 50t4-2가 생성되어 제1대기열(251)에 삽입된다. 50b-2가 실행되면 50t3-2가 생성되어 제1대기열(251)에 삽입된다.
50t4-2와 50t3-2가 순차적으로 실행되면 50d-2와 50c-3가 순차적으로 생성되어 제1대기열(251)에 삽입된다. 50d-2가 실행되면 50t5-2와 50t6-2가 생성되어 제1 대기열(251)에 삽입된다. 50c3-2가 실행되면 50t4-3가 생성되어 제1대기열(251)에 삽입된다.
도 7d에서 50t5-2는 실행시 실패로 처리된다. 50t6-2가 실행되어 성공으로 처리되면 50e-2가 생성되어 제1대기열(251)에 삽입된다. 50t4-3와 50e-2가 순차적으로 실행되면 50d-3와 50t8-2, 50t9-2가 순차적으로 생성되어 제1대기열(251)에 삽입된다.50d-3가 실행되면 50t5-3과 50t6-3이 순차적으로 생성되어 제1대기열(251)에 삽입된다.
도 7d와 도 7e에서 50t7-2와 50t8-2는 실행시 실패로 처리된다. 50t9-2가 실행되어 성공으로 처리되면 50f-1이 생성되어 제1대기열(251)에 삽입된다. 50t5-3은 실행시 실패로 처리되며, 50t6-3과 50f-1이 순차적으로 실행되어 성공으로 처리되면 50e-3, 50t10-1이 순차적으로 생성되어 제1대기열(251)에 삽입된다.
50e-3이 실행되면 50t7-3, 50t8-3, 50t9-3이 생성되어 제1대기열(251)에 삽입된다. 50t10-1이 실행되면 종료(501) 활동에 대한 인스턴스가 생성되어 제1대기열(251)에 삽입된다. 도 7e와 도 7f에서 50t7-3 및 도 70t8-3은 실행시 실패로 처리된다.
50t9-3이 실행되면 50f-2가 생성되어 제1대기열(251)에 삽입된다. 종료(501)에 대한 인스턴스가 실행되면 도 7a의 프로세스에 대한 본 발명의 업무프로세스관리시스템의 시뮬레이션이 종료된다.
이상의 시뮬레이션에서 나타난 바와 같이 본 발명에 따른 업무프로세스관리시스템은 도 1, 도 5a, 도 6a 및 도 7a 등의 복잡한 프로세스에서도 기존의 루프카 운트를 이용한 기존의 방식에서와 달리 무한 루프에 빠지지 않으며 프로세스의 처리시 예상 밖의 결과가 도출됨이 없이 의도했던 바 대로 프로세스가 처리되었다.
도 8은 본 발명에 따른 일실시예의 처리 흐름도이다. 이하에서는 본 발명의 일실시예에 따른 업무프로세스관리방법의 특징을 설명하도록 한다.
생성모듈(211)은 생성될 인스턴스가 이미 생성되어 있는 경우 그 인스턴스와 동일한 인스턴스를 다시 생성하지 않기 위해 생성할 작업에 대한 인스턴스가 제2대기열(253)에 삽입되어 있는지 판단한다(601). 이를 위해 생성모듈(211)은 생성될 인스턴스가 인스턴스테이블(230)에 이미 생성된 것으로 기록되어 있는지를 참조한다.
생성할 인스턴스가 제2대기열(253)에 삽입되어 있지 않은 경우 생성모듈(211)은 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업에 대한 인스턴스를 생성한다(603).
생성할 인스턴스가 상기 제2대기열(253)에 삽입되어 있는 경우 생성모듈(211)은 별도의 인스턴스를 생성하지 않으며 삽입모듈(215)은 제2대기열(253)에 삽입되어 있는 인스턴스를 호출한다(605).
기록모듈(213)은 제1대기열(251) 또는 제2대기열(253)에 삽입될 인스턴스를 기록하는 테이블인 인스턴스테이블(230)에, 삽입될 인스턴스가 식별정보에 의해 구별되도록 기록한다(607). 이를 통해 생성모듈(211)이 인스턴스테이블(230)을 참조하여 이미 생성되어 있는 인스턴스와 동일한 인스턴스를 다시 생성하지 않도록 한다.
본 발명에서 인스턴스는 식별정보에 의해 호출될 수 있으며, 식별정보는 하나의 프로세스에서 하나의 작업에 대해 생성된 인스턴스의 개수에 관한 정보를 포함한다.
삽입모듈(215)은 생성모듈(211)에 의해 생성된 인스턴스 가운데 소정의 조건을 만족시키는 인스턴스가 존재하는지 판단한다(609). 제2대기열(253)에 삽입되어 있어 별도로 동일한 인스턴스가 생성되지 않고 삽입모듈(215)에 의해 호출된 인스턴스도 제2대기열(253)에 삽입되기 이전에 생성모듈(211)에 의해 생성되었으므로 생성모듈(211)에 의해 생성된 인스턴스에 포함된다.
삽입모듈(215)은 생성모듈(211)에 의해 생성된 인스턴스 가운데 소정의 조건을 만족시키는 인스턴스를 제2대기열(253)에 삽입하고(611), 생성모듈(211)에 의해 생성된 인스턴스 가운데 소정의 조건을 만족시키지 못하는 인스턴스를 제1대기열(251)에 삽입한다(613).
이 경우 생성모듈(211)에 의해 생성된 인스턴스가 활동에 입력되는 복수개의 전이 가운데 일부 전이에 대한 인스턴스가 실행되지 않은 활동에 대한 인스턴스이거나, 인스턴스가 활동에 입력되는 복수개의 전이에 대한 인스턴스가 모두 실행되었고 복수개의 전이에 대한 인스턴스의 값이 모두 참인 것이 아닌 활동에 대한 인스턴스인 경우에, 삽입모듈(215)은 생성모듈(211)에 의해 생성된 인스턴스를 제2대기열(253)에 삽입하며, 제2대기열(253)에 삽입되지 않는 나머지 인스턴스를 제1대기열(251)에 삽입할 수 있다.
실행모듈(217)은 제1대기열(251)에 삽입되어 있는 인스턴스가 존재하는지 판 단하여(615), 제1대기열(251)에 삽입되어 있는 인스턴스가 존재하는 경우 이를 호출하고, 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하는 경우 제2대기열(253)에 삽입되어 있는 인스턴스를 호출한다(619). 실행모듈(217)은 이렇게 제1대기열(251) 또는 제2대기열(253)에서 호출된 인스턴스를 실행한다(621).
실행모듈(617)이 실행한 인스턴스가 종료 활동에 대한 인스턴스인 경우에는 업무프로세스가 종료하지만 그렇지 않은 경우에는 실행모듈(617)이 실행한 인스턴스의 실행 결과가 성공으로 처리되는지를 판단하게 된다(625).
인스턴스의 실행 결과가 성공으로 처리된다면 생성모듈(211)은 인스턴스를 생성할지 여부를 다시 판단하게 되고 이후 삽입모듈(215)은 인스턴스를 제1대기열(251) 또는 제2대기열(253)에 삽입하지만, 실패로 처리된다면 이러한 과정 없이 실행모듈(217)은 제1대기열(251) 또는 제2대기열(253)에 삽입되어 있는 인스턴스를 호출하여 실행한다.
본 발명의 상기 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 실시예를 통해 설명한 본 발명의 기술적 범위는 상기 기재된 실시예에 한정되는 것은 아니고 본 발명의 사상 및 범위를 벗어나지 않는 범위에서 다양하게 수정 및 변형될 수 있음은 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자에게 명백하다. 따라서 그러한 변형예 또는 수정예들은 본 발명의 특허청구범위에 기재된 발명의 범위에 속한다 해야 할 것이다.
도 1은 시뮬레이션을 위한 작업흐름 프로세스의 일실시예.
도 2a, 도 2b, 도 2c 및 도 2d는 도 1의 프로세스의 일실시예에 대한 종래의 기술의 시뮬레이션 과정을 나타낸 도표.
도 3a, 도 3b 및 도 3c는 도 1의 프로세스의 일실시예에 대한 본 발명의 시뮬레이션 과정을 나타낸 도표.
도 4는 본 발명에 따른 업무프로세스관리시스템의 구성을 도시한 블록도.
도 5a는 시뮬레이션을 위한 작업흐름 프로세스의 일실시예.
도 5b 및 도 5c는 도 5a의 프로세스의 일실시예에 대한 본 발명의 시뮬레이션 과정을 나타낸 도표.
도 6a는 시뮬레이션을 위한 작업흐름 프로세스의 일실시예.
도 6b, 도 6c, 도 6d, 도 6e 및 도 6f는 도 6a의 프로세스의 일실시예에 대한 본 발명의 시뮬레이션 과정을 나타낸 도표.
도 7a는 시뮬레이션을 위한 작업흐름 프로세스의 일실시예.
도 7b, 도 7c, 도 7d, 도 7e 및 도 7f는 도 7a의 프로세스의 일실시예에 대한 본 발명의 시뮬레이션 과정을 나타낸 도표.
도 8은 본 발명에 따른 일실시예의 처리 흐름도.

Claims (9)

  1. 업무 프로세스(Business Process)의 논리적인 업무 단계를 의미하는 활동(Activity) 및 상기 업무의 흐름을 위해 상기 활동을 연결하는 논리적인 연결선인 전이(Transition)를 포함하는 업무 프로세스를 자동으로 관리하는 방법에 있어서,
    상기 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업(Work)에 대한 인스턴스(instance)를 생성하는 생성모듈이 상기 작업(Work)에 대한 인스턴스(instance)를 생성하는 단계;
    상기 생성된 인스턴스를 제1대기열(Queue) 또는 제2대기열(Queue)에 삽입하는 삽입모듈이 상기 생성된 인스턴스 가운데 상기 인스턴스의 상태 및 상기 인스턴스에 관련된 작업의 종류에 따라 상기 인스턴스를 분류하기 위해 설정된 조건을 만족시키는 인스턴스를 제2대기열(Queue)에 삽입하는 단계;
    상기 삽입모듈이 상기 생성된 인스턴스 가운데 상기 설정된 조건을 만족시키지 못하는 인스턴스를 제1대기열에 삽입하는 단계;
    상기 인스턴스를 호출하여 실행시키는 실행모듈이 상기 제1대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 단계; 및
    상기 실행모듈이 상기 제1대기열에 삽입되어 있는 인스턴스가 부존재하는 경우 상기 제2대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 단계;를 포함하는 것을 특징으로 하는 업무프로세스관리방법.
  2. 제1항에 있어서, 상기 인스턴스를 제2대기열에 삽입하는 단계는
    상기 생성된 인스턴스가 상기 활동에 입력되는 복수개의 전이 가운데 일부 전이에 대한 인스턴스가 실행되지 않은 활동에 대한 인스턴스이거나,
    상기 인스턴스가 상기 활동에 입력되는 복수개의 전이에 대한 인스턴스가 모두 실행되었고 상기 복수개의 전이의 인스턴스의 값이 모두 참인 경우에 실행되도록 설정된 활동에 대한 인스턴스인데 상기 복수개의 전이에 대한 인스턴스가 모두 실행되었으나 상기 복수개의 전이에 대한 인스턴스의 값이 모두 참인 것이 아닌 경우에 상기 삽입모듈이 상기 생성된 인스턴스를 상기 제2대기열에 삽입하는 것을 특징으로 하는 업무프로세스관리방법.
  3. 제1항에 있어서, 상기 인스턴스를 제1대기열에 삽입하는 단계는
    상기 제1대기열에 삽입된 인스턴스를 호출하여 실행한 결과 생성할 인스턴스가 상기 제2대기열에 삽입되어 있는 경우 상기 삽입모듈이 상기 제2대기열에 삽입되어 있는 인스턴스를 호출하여 상기 제1대기열에 삽입하는 것을 특징으로 하는 업무프로세스관리방법.
  4. 제1항에 있어서, 상기 업무프로세스관리방법은
    상기 제1대기열 또는 제2대기열에 삽입될 인스턴스를 기록하는 테이블인 인스턴스테이블(Instance Table)에 상기 삽입될 인스턴스를 식별정보에 의해 구별되도록 기록하는 단계;를 더 포함하고, 상기 인스턴스는 상기 식별정보에 의해 호출될 수 있으며, 상기 식별정보는 상기 하나의 프로세스에서 상기 하나의 작업에 대해 생성된 인스턴스의 개수에 관한 정보를 포함하는 것을 특징으로 하는 업무프로세스관리방법.
  5. 제1항 내지 제4항 중 어느 한 항에 기재된 업무프로세스관리방법을 실현시키 기 위한 프로그램을 수록한 기록매체.
  6. 업무 프로세스(Business Process)의 논리적인 업무 단계를 의미하는 활동(Activity) 및 상기 업무의 흐름을 위해 상기 활동을 연결하는 논리적인 연결선인 전이(Transition)를 포함하는 업무 프로세스를 자동으로 관리하는 시스템에 있어서,
    상기 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업(Work)에 대한 인스턴스(instance)를 생성하는 생성모듈;
    상기 생성된 인스턴스 가운데 상기 인스턴스의 상태 및 상기 인스턴스에 관련된 작업의 종류에 따라 상기 인스턴스를 분류하기 위해 설정된 조건을 만족시키는 인스턴스를 제2대기열에 삽입하고, 상기 생성된 인스턴스 가운데 상기 설정된 조건을 만족시키지 못하는 인스턴스를 제1대기열에 삽입하는 삽입모듈; 및
    상기 제1대기열에 삽입되어 있는 인스턴스가 존재하는 경우에는 상기 제1대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키고, 상기 제1대기열에 삽입되어 있는 인스턴스가 부존재하는 경우 상기 제2대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 실행모듈;을 포함하는 것을 특징으로 하는 업무프로세스관리시스템.
  7. 제6항에 있어서, 상기 삽입모듈은
    상기 생성된 인스턴스가 상기 활동에 입력되는 복수개의 전이 가운데 일부 전이에 대한 인스턴스가 실행되지 않은 활동에 대한 인스턴스이거나,
    상기 인스턴스가 상기 활동에 입력되는 복수개의 전이에 대한 인스턴스가 모두 실행되었고 상기 복수개의 전이의 인스턴스의 값이 모두 참인 경우에 실행되도록 설정된 활동에 대한 인스턴스인데 상기 복수개의 전이에 대한 인스턴스가 모두 실행되었으나 상기 복수개의 전이에 대한 인스턴스의 값이 모두 참인 것이 아닌 경우에 상기 생성된 인스턴스를 상기 제2대기열에 삽입하는 것을 특징으로 하는 업무프로세스관리시스템.
  8. 제6항에 있어서, 상기 삽입모듈은
    상기 제1대기열에 삽입된 인스턴스를 호출하여 실행한 결과 생성할 인스턴스가 상기 제2대기열에 삽입되어 있는 경우 상기 제2대기열에 삽입되어 있는 인스턴스를 호출하여 상기 제1대기열에 삽입하는 것을 특징으로 하는 업무프로세스관리시스템.
  9. 제6항에 있어서, 상기 업무프로세스관리시스템은
    상기 제1대기열 또는 제2대기열에 삽입될 인스턴스를 기록하는 테이블인 인스턴스테이블(Instance Table)에 상기 삽입될 인스턴스를 식별정보에 의해 구별되도록 기록하는 기록모듈;을 더 포함하고, 상기 인스턴스는 상기 식별정보에 의해 호출될 수 있으며, 상기 식별정보는 상기 하나의 프로세스에서 상기 하나의 작업에 대해 생성된 인스턴스의 개수에 관한 정보를 포함하는 것을 특징으로 하는 업무프로세스관리시스템.
KR1020070067197A 2007-07-04 2007-07-04 업무 프로세스 관리 방법 및 시스템 Active KR100807355B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070067197A KR100807355B1 (ko) 2007-07-04 2007-07-04 업무 프로세스 관리 방법 및 시스템
PCT/KR2007/003603 WO2009005181A1 (en) 2007-07-04 2007-07-26 Method and system for business process management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070067197A KR100807355B1 (ko) 2007-07-04 2007-07-04 업무 프로세스 관리 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR100807355B1 true KR100807355B1 (ko) 2008-02-28

Family

ID=39383332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070067197A Active KR100807355B1 (ko) 2007-07-04 2007-07-04 업무 프로세스 관리 방법 및 시스템

Country Status (2)

Country Link
KR (1) KR100807355B1 (ko)
WO (1) WO2009005181A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101950397B1 (ko) 2018-01-11 2019-02-20 주식회사 피앤피소프트 사용자 간 업무 정보 공유를 통한 업무 관리 시스템 제공 방법
KR102258163B1 (ko) 2020-08-31 2021-05-27 주식회사 케이비손해보험 계층형 조직구조를 위한 협업서비스 제공방법, 시스템 및 장치
WO2024014600A1 (ko) * 2022-07-13 2024-01-18 쿠팡 주식회사 인스턴스 관리 방법 및 이를 위한 전자 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030086250A (ko) * 2001-01-09 2003-11-07 비아코어, 인코포레이티드 비즈니스 프로세스를 용이하게 하는 방법 및 장치
KR20040035674A (ko) * 2001-07-06 2004-04-29 컴퓨터 어소시에이츠 싱크, 인코포레이티드 비즈니스 프로세스 정책 객체
KR20040043367A (ko) * 2002-11-18 2004-05-24 한국전자통신연구원 워크플로우 기법을 이용한 업무 프로세스 처리 방법
KR20060091501A (ko) * 2005-02-15 2006-08-21 부산대학교 산학협력단 워크플로우엔진을 이용한 업무처리방법 및 공급사슬관리방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100289058B1 (ko) * 1998-11-20 2001-05-02 정선종 워크플로우 관리시스템의 프로세스 정의 및 제어방법
US20010044738A1 (en) * 2000-03-22 2001-11-22 Alex Elkin Method and system for top-down business process definition and execution
US6892192B1 (en) * 2000-06-22 2005-05-10 Applied Systems Intelligence, Inc. Method and system for dynamic business process management using a partial order planner
JP2002032544A (ja) * 2000-07-13 2002-01-31 Suntory Ltd 業務運営システム、ワークフロープロセッサおよびワークフローメッセンジャー

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030086250A (ko) * 2001-01-09 2003-11-07 비아코어, 인코포레이티드 비즈니스 프로세스를 용이하게 하는 방법 및 장치
KR20040035674A (ko) * 2001-07-06 2004-04-29 컴퓨터 어소시에이츠 싱크, 인코포레이티드 비즈니스 프로세스 정책 객체
KR20040043367A (ko) * 2002-11-18 2004-05-24 한국전자통신연구원 워크플로우 기법을 이용한 업무 프로세스 처리 방법
KR20060091501A (ko) * 2005-02-15 2006-08-21 부산대학교 산학협력단 워크플로우엔진을 이용한 업무처리방법 및 공급사슬관리방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101950397B1 (ko) 2018-01-11 2019-02-20 주식회사 피앤피소프트 사용자 간 업무 정보 공유를 통한 업무 관리 시스템 제공 방법
KR102258163B1 (ko) 2020-08-31 2021-05-27 주식회사 케이비손해보험 계층형 조직구조를 위한 협업서비스 제공방법, 시스템 및 장치
WO2024014600A1 (ko) * 2022-07-13 2024-01-18 쿠팡 주식회사 인스턴스 관리 방법 및 이를 위한 전자 장치

Also Published As

Publication number Publication date
WO2009005181A1 (en) 2009-01-08

Similar Documents

Publication Publication Date Title
CN102508716B (zh) 任务控制装置和任务控制方法
CN102567180B (zh) 用于分布式处理系统中的相关警报传送的方法和系统
TW200401529A (en) System and method for the allocation of grid computing workload to network workstations
US5313574A (en) Method for starting processing of an iconic programming system
US20130227127A1 (en) Schedule management method and schedule management server
JP4041002B2 (ja) データベース更新処理システム、データベース更新のための更新データ入力方法、更新データ処理方法、およびプログラム
US7681196B2 (en) Providing optimal number of threads to applications performing multi-tasking using threads
US11947996B2 (en) Execution of services concurrently
US9052972B2 (en) Determining the processing order of a plurality of events
US7926057B2 (en) Scheduling of computer jobs employing dynamically determined top job party
US8627327B2 (en) Thread classification suspension
KR100807355B1 (ko) 업무 프로세스 관리 방법 및 시스템
CN111258774A (zh) 流程处理方法、装置、计算机设备及存储介质
US10733554B2 (en) Information processing apparatus and method for managing connections
CN108810125A (zh) 物理节点的服务发现方法及系统
US20200348926A1 (en) System and method for automating environment management of one or more software applications
CA2631255A1 (en) Scalable scheduling of tasks in heterogeneous systems
Tan et al. BPEL4JOB: A fault-handling design for job flow management
US8806490B1 (en) Method and apparatus for managing workflow failures by retrying child and parent elements
CN112364005A (zh) 数据同步方法、装置、计算机设备及存储介质
CN117519947A (zh) 协程监控方法、装置、设备及可读存储介质
CN111459625A (zh) 一种基于微服务的流程调度方法
US20220229692A1 (en) Method and device for data task scheduling, storage medium, and scheduling tool
CN113032141B (zh) 一种ai平台资源切换方法、系统及介质
CN113010278B (zh) 一种用于财险核心系统的批处理方法及系统

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20070704

PA0201 Request for examination
A302 Request for accelerated examination
PA0302 Request for accelerated examination

Patent event date: 20070705

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20070704

Patent event code: PA03021R01I

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20071002

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20080110

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20080219

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20080220

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20110217

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20120213

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20130219

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20130219

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20140212

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20140212

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20150213

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20150213

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20160205

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20160205

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20170210

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20170210

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20180219

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20190219

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20190219

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20200212

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20200212

Start annual number: 13

End annual number: 13

PR1001 Payment of annual fee

Payment date: 20210310

Start annual number: 14

End annual number: 14

PR1001 Payment of annual fee

Payment date: 20220222

Start annual number: 15

End annual number: 15