KR100807355B1 - Method and system for business process managemnet - Google Patents

Method and system for business process managemnet 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
Application number
KR1020070067197A
Other languages
Korean (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 KR1020070067197A priority Critical patent/KR100807355B1/en
Priority to PCT/KR2007/003603 priority patent/WO2009005181A1/en
Application granted granted Critical
Publication of KR100807355B1 publication Critical patent/KR100807355B1/en

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

Abstract

A method and a system for managing a business process are provided to manage the business process including activity, which means a logical business step of the business process, and transition, which is a logical line for connecting the activities by using two waiting queues without using a loop count in a complex process including a loop. A generating module(211) generates instances for a work meaning one activity or transition performed according to the business process. An inserting module(215) inserts the instance, which satisfies a condition set for classifying the instances into each instance type or work type related to the instance among the generates instances, into a second waiting queue(253), and inserts the instances without satisfying the condition among the generated instances into a first waiting queue(251). An executing module(217) calls/executes the instances inserted into the first waiting queue when the instances inserted into the first waiting queue are found, and calls/executes the instances inserted into the second waiting queue when the instances inserted into the second waiting queue are found.

Description

업무 프로세스 관리 방법 및 시스템{Method And System For Business Process Managemnet} Business Process Management Method and System {Method And System For Business Process Managemnet}

본 발명은 업무 프로세스 관리 방법 및 시스템에 관한 것이다. 보다 구체적으로 본 발명은 업무 프로세스(Business Process)의 논리적인 업무 단계를 의미하는 활동(Activity) 및 업무의 흐름을 위해 활동을 연결하는 논리적인 연결선인 전이(Transition)를 포함하는 업무 프로세스를 자동으로 관리하는 방법에 있어서, 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업(Work)에 대한 인스턴스(instance)를 생성하고, 생성된 인스턴스를 소정의 조건에 따라 제1대기열 또는 제2대기열에 삽입하며, 제1대기열 또는 제2대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 것을 특징으로 하는 업무프로세스관리방법 및 시스템에 관한 것이다.The present invention relates to a business process management method and system. More specifically, the present invention automatically provides a business process including an activity that represents a logical business step of a business process and a transition, which is a logical connection line connecting activities for the flow of work. In the management method, an instance of a work representing a single activity or a transition performed according to a business process is created, and the generated instance is first queued or second queued according to a predetermined condition. It relates to a business process management method and system, characterized in that for inserting in, and executing by calling the instance inserted in the first queue or the second queue.

최근 컴퓨터 관련 기술이 발달함에 따라 각 기업들에서는 업무 프로세스 관리(Business Process Management;BPM) 시스템을 도입하고 있다. 업무프로세스관리시스템이란 특정 조직 내의 업무 프로세스를 설계, 실행, 모니터링, 분석하면서 기존의 전산 시스템들을 업무 프로세스에 융합시킬 수 있는 소프트웨어 시스템을 말 한다. Recently, with the development of computer technology, each company is adopting Business Process Management (BPM) system. A business process management system is a software system that can integrate existing computer systems with business processes while designing, executing, monitoring, and analyzing business processes within a specific organization.

업무 프로세스 관리 시스템을 도입하면 각 기업에서의 업무 처리 기간이 단축되고 작업의 오류 발생 가능성이 감소하며 업무 처리의 생산성이 향상되는 등 여러 가지 효과를 기대할 수 있으므로, 이에 대한 관심이 높아지고 있는 실정이다.The introduction of a business process management system is expected to reduce the processing time of each company, reduce the possibility of errors in the work, increase the productivity of the work process, etc., so that the interest is increasing.

이러한 업무프로세스 관리 시스템을 구현하기 위해서는 작업흐름(Workflow) 프로세스의 처리가 요구된다. 작업흐름 프로세스란 정의된 규칙에 의해 수행되는 자동화된 업무의 프로세스를 말하는 것이다.In order to implement such a work process management system, processing of a workflow process is required. Workflow processes are the processes of automated tasks performed by defined rules.

기업 환경이 복잡해지고 업무프로세스 관리 시스템이 발달할수록 복잡한 작업흐름 프로세스의 처리 요구가 증대되며 그 중에서도 루프(Loop)를 포함하는 프로세스를 처리할 필요성이 증가되고 있다. As the enterprise environment becomes more complex and the work process management system develops, the demand for processing complex workflow processes increases, and the need for processing processes including loops increases.

기존에는 이러한 루프를 포함한 작업흐름 프로세스를 처리함에 있어서 루프 카운트를 이용한 루프 처리 방식을 이용하여 업무 프로세스 관리 시스템을 구현하였다. 그러나 루프 카운트를 이용한 기존의 방식은 복잡한 루프 프로세스의 경우 무한 루프에 빠지는 등 프로세스에 오류가 발생하는 한편, 예상치 못한 결과를 산출하는 등의 이유로 다양한 루프 프로세스를 구현 및 처리하지 못하는 문제점이 있었다.In the past, the work process management system was implemented using the loop processing method using the loop count in processing the workflow process including such a loop. However, the conventional method using the loop count has a problem in that a complex loop process cannot implement and process various loop processes due to an error in the process such as falling into an infinite loop and an unexpected result.

도 1은 시뮬레이션을 위한 작업흐름 프로세스의 일실시예이다. 이를 통해 종래의 루프 카운트를 이용한 기존의 방식에 의한 시행된 작업흐름 프로세스의 시뮬레이션을 예를 들어 기존의 방식의 문제점을 설명하도록 한다.1 is one embodiment of a workflow process for simulation. Through this, the simulation of the executed workflow process by the conventional method using the conventional loop count, for example, to explain the problem of the conventional method.

활동(Activity)은 프로세스 구성에서 하나의 논리적인 작업 단계를 의미하는 것이다. 이러한 활동에는 프로세스의 시작을 의미하는 시작 활동(Start Activity)과 프로세스의 끝을 의미하는 종료 활동(End Activity)이 포함된다.Activity refers to one logical task step in process composition. These activities include Start Activity, which means the start of a process, and End Activity, which means the end of a process.

전이(Transition)는 각각의 작업을 연결하는 논리적인 연결선을 의미한다. 작업(Work)은 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미한다.Transitions are logical connections that connect each task. Work means a single activity or transition performed by a business process.

루프전이(Loop Transition)는 프로세스를 설계하는 과정에서 프로세스의 루프 구간을 판별한 경우 해당 루프 구간에 포함된 특정 전이를 가리킨다. 루프 카운트(Loop Count)라 함은 루프를 포함하는 프로세스를 처리하는 경우 루프 구간을 통과할 때마다 1씩 가산되는 숫자를 말한다.Loop transition refers to a specific transition included in the loop section when the loop section of the process is determined in the process design process. The loop count is a number that is added by 1 every time a loop section is processed when a process including a loop is processed.

도 1에서 프로세스는 여러 활동들과 각각의 활동들을 연결하는 전이로 이루어져 있다. 이러한 전이는 조건에 따라 활동을 호출하지 않을 수 있으며, 이러한 전이의 조건 판별을 위해서 전이는 일종의 작업으로 처리될 수 있다.In FIG. 1, the process consists of several activities and a transition that connects each one. Such a transition may not call an activity according to a condition, and the transition may be treated as a kind of task for determining the condition of the transition.

루프를 포함하는 프로세스는 프로세스를 설계하는 단계에서 루프구간을 판별하여 루프 구간에 포함된 특정 전이를 루프전이로 설정한다. 일련의 작업들에 대해서는 인스턴스들이 생성되고, 생성된 인스턴스들은 대기열에 삽입된 후 선입선출(First-in First-out;FIFO) 방식에 따라 대기열에서 호출되어 실행된다.The process including the loop determines a loop section in designing a process and sets a specific transition included in the loop section as a loop transition. Instances are created for a series of tasks, and the created instances are inserted into a queue and then invoked and executed in a queue according to First-in First-out (FIFO).

인스턴스(Instance)는 일반적으로 어떤 집합에 대하여 그 집합의 개별적인 요소를 말하는 것으로, 객체 지향 프로그래밍(Object Oriented Programming;OOP)에서 어떤 등급에 속하는 각 객체를 가리킨다. An instance generally refers to an individual element of a set for a set, and refers to each object belonging to a class in Object Oriented Programming (OOP).

인스턴스를 생성한다는 것은 인스턴스에 대하여 메모리 등의 기억장치를 할당하는 것을 말한다. 예를 들어, 목록(list)이라는 등급을 정의하고 그 후에 본인 목록(my list)이라는 객체를 생성하면 이에 대해 기억장치가 일부 할당되고 그 등급의 인스턴스가 생성되는 것이라 할 수 있다.Creating an instance means allocating storage, such as memory, to the instance. For example, if you define a class called list, and then create an object called my list, some storage is allocated and instances of that class are created.

대기열(Queue)이란 여러 개의 데이터 항목들이 일정한 순서로 나열된 자료 구조를 말하는 것으로, 스택(Stack)과는 달리 일단에서는 삽입만이 가능하고, 타단에서는 출력 및 삭제만이 가능하도록 되어 있는 것을 말한다.A queue is a data structure in which several data items are arranged in a certain order. Unlike a stack, a queue is only insertable at one end and only output and delete at the other end.

도 1에서 각 작업에 대해 생성되는 인스턴스들은 고유의 식별정보를 가지고 있다. 식별정보는 각 작업에 대한 인스턴스에 아이디(Identification;ID)를 부여하는 방식으로 정해질 수 있다. 이러한 식별정보에 의해 각 인스턴스들의 구별 및 호출이 수행되게 된다.In FIG. 1, the instances created for each job have unique identification information. The identification information may be determined by assigning an ID to an instance of each job. This identification allows identification and invocation of each instance to be performed.

모든 작업에 대한 인스턴스들은 동일한 작업에 대한 이전 인스턴스의 루프 카운트를 상속받게 된다. 루프 카운트는 루프전이를 통과하는 경우마다 1씩 증가한다. 본 시뮬레이션에서 루프 카운트의 초기값은 1로 설정되어 있다.Instances for all tasks inherit the loop count of the previous instance of the same task. The loop count is incremented by 1 for each pass through the loop transition. In this simulation, the initial value of the loop count is set to 1.

생성된 작업의 인스턴스들은 인스턴스 테이블(Instance Table)에 각 인스턴스의 고유의 식별정보 및 루프 카운트가 기록된다. 인스턴스의 작업이 성공적으로 처리가 되면 이와 연결된 다음 작업의 인스턴스가 생성된다. Instances of the created job are recorded with the unique identification and loop count of each instance in the instance table. If the job of the instance is processed successfully, the next job connected to it is created.

작업에 대한 인스턴스를 생성하기 이전에 이미 인스턴스 테이블에 생성될 작업에 대한 인스턴스와 고유한 식별정보 및 루프 카운트가 동일한 인스턴스가 기록되어 있고 대기열에 삽입되어 있다면 별개의 인스턴스가 생성되지 않고 기존의 인스턴스가 대기열에서 호출되어 실행될 것이다.If an instance with the same unique identification and loop count as the instance for the task to be created is already recorded and inserted into the queue before the instance for the task is created, no separate instance is created and the existing instance is created. It will be called and executed in the queue.

도 1에서 시뮬레이션되는 프로세스에서 루프 구간은 10B, 10T4, 10C, 10T5 이다. 도 1에서는 루프 구간 후에 위치하지만 루프 구간 전의 활동(10A)과 전이 10T3을 통해 연결되는 AND 조인 활동(10D)을 포함하는 프로세스가 시뮬레이션된다.In the process simulated in FIG. 1, the loop intervals are 10B, 10T4, 10C, and 10T5. In FIG. 1, a process is simulated that includes an AND join activity 10D that is located after the loop period but is connected via the transition 10T3 and the activity 10A before the loop period.

업무 프로세스에서의 작업은 조인(Join) 활동을 포함한다. 조인 활동은 입력되는 전이가 복수개인 활동을 말하며 이러한 조인 활동에는 OR 조인과 AND 조인이 있다.Work in business processes involves join activities. A join activity refers to an activity with multiple inputs, and these join activities include an OR join and an AND join.

AND 조인 활동은 복수개의 전이가 모두 실행되었고 이러한 복수개의 전이의 값이 모두 참인 경우에 실행될 수 있는 활동을 말하며, OR 조인 활동은 복수개의 전이 가운데 참의 값을 갖는 전이가 하나 이상 실행된 경우에 실행될 수 있는 활동을 말한다.An AND join activity refers to an activity that can be executed when a plurality of transitions have all been executed and the values of these multiple transitions are all true, and an OR join activity is performed when one or more transitions with a true value among a plurality of transitions have been executed. Speak an action that can be executed.

도 1의 종래 기술에 의한 시뮬레이션에서 전이 10T5 가 루프 전이가 되고, 모든 작업에 대한 인스턴스들은 루프 카운트를 상속받으며 루프 전이(10T5)에 대한 인스턴스가 실행될 때마다 루프 카운트는 1씩 증가한다.In the prior art simulation of FIG. 1, transition 10T5 becomes a loop transition, instances for all tasks inherit the loop count and the loop count increases by one each time the instance for loop transition 10T5 is executed.

시뮬레이션의 진행 및 결과는 도 2a, 도 2b, 도 2c 및 도 2d의 표에 기재되어 있다. 시작(100)과 종료(101)의 활동을 제외한 모든 작업에 대한 인스턴스들은 작업명 및 루프카운트를 포함하는 식별 정보에 의해 표시 및 구분된다. 도 2a, 도 2b, 도 2c 및 도 2d의 표에서 각 인스턴스에 대한 식별정보는 인스턴스가 상속받은 루프카운트를 표시하고 있으며, 인스턴스의 작업명은 소문자로 기재되어 있다.The progress and results of the simulations are described in the tables of FIGS. 2A, 2B, 2C and 2D. Instances for all jobs except activities at start 100 and end 101 are indicated and distinguished by identifying information including the job name and loop count. In the tables of FIGS. 2A, 2B, 2C, and 2D, the identification information for each instance indicates a loop count inherited by the instance, and the job name of the instance is written in lowercase.

예를 들어 도 2a, 도 2b, 도 2c 및 도 2d의 표에서 루프카운트가 1인 10A의 활동에 대한 인스턴스는 10a-1로 표시된다. 루프카운트가 4인 10T2 전이에 대한 인스턴스는 10t2-4로 표시된다.For example, in the tables of FIGS. 2A, 2B, 2C, and 2D, an instance of an activity of 10A with a loop count of 1 is represented by 10a-1. An instance for a 10T2 transition with a loopcount of 4 is represented by 10t2-4.

도 1에서 모든 활동에 대한 인스턴스들은 실행 시 성공으로 처리되는 것으로 가정하며, 전이에 대한 인스턴스는 루프를 종료시키기 위해 실패로 처리될 수 있다. 전이의 성공 및 실패는 본 시뮬레이션에서 임의로 결정된다. 종료 활동(101)에 대한 인스턴스가 실행되면 그 프로세스는 종료된다.In FIG. 1, instances for all activities are assumed to be treated as successful upon execution, and instances for transitions can be treated as failed to terminate the loop. The success and failure of the transition is arbitrarily determined in this simulation. When the instance for the terminating activity 101 is executed, the process terminates.

도 2a, 도 2b, 도 2c 및 도 2d의 표에서 실행시 성공으로 처리된 작업에 대한 인스턴스, 조건 대기 중인 작업에 대한 인스턴스, 실행시 실패로 처리된 인스턴스에 대한 분류 표는 도 2a에 나타나 있다.In the tables of FIGS. 2A, 2B, 2C, and 2D, a classification table for an instance that has been treated as successful in execution, an instance for a task waiting for condition, and an instance that has been treated as failed in execution is shown in FIG. .

이제부터 도 1의 프로세스에 대하여 종래 기술에 의한 시뮬레이션 과정을 2a, 도 2b, 도 2c 및 도 2d의 표에 의해 설명하도록 한다.The process of FIG. 1 will now be described with reference to the tables of prior art simulations 2a, 2b, 2c and 2d.

도 2a에서 프로세스가 시작되면 시작(100)에 대한 인스턴스가 대기열에 삽입된 후 실행된다. 그 결과 시작(100)에 연결된 전이인 10T1에 대한 인스턴스인 10t1-1이 생성되어 대기열에 삽입된 후 실행된다. In FIG. 2A, when the process starts, an instance for start 100 is inserted into a queue and then executed. As a result, 10t1-1, an instance of 10T1, which is a transition connected to the start 100, is generated, inserted into the queue, and executed.

그 후 10T1에 연결된 활동인 10A에 대한 인스턴스인 10a-1이 생성되어 대기열에 삽입된 후 실행되면 10A로부터 출력되는 두 개의 전이인 10T2와 10T3 각각에 대한 인스턴스 10t2-1과 10t3-1이 생성되어 대기열에 삽입된다. After that, 10a-1, an instance of 10A that is linked to 10T1, is created, inserted into a queue, and executed, then 10t2-1 and 10t3-1 are generated for each of the two transitions 10T2 and 10T3 that are output from 10A. It is inserted into the queue.

대기열의 선입선출의 원리에 따라 먼저 생성되어 삽입된 10t2-1이 10t3-1에 우선하여 실행되고, 그 결과 10T2에 연결된 활동 10B에 대한 인스턴스 10b-1이 생성되어 대기열에 삽입된다. 이후 10t3-1이 실행되고, 10T3로부터 입력을 받는 AND 조인 활동(10D)의 인스턴스 10d-1이 생성되어 대기열에 삽입된다. 10b-1이 실행되면 전이 10T4의 인스턴스 10t4-1이 생성되어 대기열에 삽입된다. According to the principle of first in, first out of the queue, 10t2-1, which is created and inserted first, is executed in preference to 10t3-1, and as a result, instance 10b-1 for activity 10B connected to 10T2 is generated and inserted into the queue. 10t3-1 is then executed, and an instance 10d-1 of AND join activity 10D that receives input from 10T3 is created and inserted into the queue. When 10b-1 is executed, an instance 10t4-1 of transition 10T4 is created and inserted into the queue.

이후 실행되는 10d-1는 AND 조인 활동(10D)의 인스턴스로 두 개의 전이 10T6와 10T3의 입력을 모두 필요로 한다. 그러나 현재 10T3의 인스턴스인 10t3-1은 실행되었으나 10T6의 인스턴스는 아직 실행된 바 없으므로 10d-1은 "대기" 상태로 처리되어 다시 대기열에 삽입된다.10d-1, which is subsequently executed, is an instance of the AND join activity 10D and requires input from both transitions 10T6 and 10T3. However, 10t3-1, which is currently an instance of 10T3, has been executed but 10T6 has not yet run, so 10d-1 is treated as "waiting" and requeued.

이후 10t4-1이 실행되어 10C의 인스턴스 10c-1이 생성되어 대기열에 삽입된다. 이후의 과정은 도 2b에 나타나 있다. 10d-1은 아직 10T6의 인스턴스가 실행되지 않았으므로 대기 상태로 처리되어 다시 대기열에 삽입된다.Thereafter, 10t4-1 is executed to generate 10C-1 of 10C and insert it into the queue. The subsequent process is shown in Figure 2b. 10d-1 is queued and requeued because no instances of 10T6 have yet been launched.

10c-1이 실행되면 10C에서 출력되는 두 개의 전이 10T5와 10T6에 대한 인스턴스 10t5-1과 10t6-1이 생성되어 대기열에 삽입된다. 10d-1은 다시 대기 상태로 처리되어 대기열에 삽입된다. When 10c-1 is executed, instances 10t5-1 and 10t6-1 for two transitions 10T5 and 10T6 output from 10C are created and inserted into the queue. 10d-1 is again queued and inserted into the queue.

10t5-1이 실행되면 10T5로부터 입력을 받는 활동인 10B에 대한 인스턴스 10b-2가 생성되어 대기열에 삽입된다. 10T5는 앞서 가정한 바와 같이 루프 전이에 해당하므로 10T5에 대한 인스턴스가 실행되면 루프 카운트가 1씩 증가하게 된다. 따라서 10B에 대한 인스턴스의 루프 카운트는 2가 되어 10b-2로 표시되고, 이후의 인스턴스들은 10b-2의 루프카운트 2를 상속받게 된다.When 10t5-1 is executed, an instance 10b-2 for 10B, an activity that receives input from 10T5, is created and inserted into the queue. Since 10T5 corresponds to a loop transition as previously assumed, the loop count is increased by 1 when an instance of 10T5 is executed. Therefore, the loop count of the instance for 10B becomes 2, which is represented by 10b-2, and subsequent instances inherit the loop count 2 of 10b-2.

도 2b에서 10t6-1은 실행시 실패로 처리된다. 이는 10T6에 연결된 활동인 10D는 10t6-1의 실행에 의해 10D에 대하여 인스턴스가 생성되거나 실행되지 않음을 의미한다. 따라서 10d-1의 경우 10t6-1이 실패로 처리되어 10T6로부터 입력을 받지 못하고 있으므로 대기 상태로 처리되어 대기열에 삽입된다.In FIG. 2B, 10t6-1 is treated as a failure in execution. This means that 10D, an activity linked to 10T6, is not instantiated or executed for 10D by the execution of 10t6-1. Therefore, in the case of 10d-1, 10t6-1 is treated as a failure and receives no input from 10T6, so it is processed as a waiting state and inserted into the queue.

이후 10b-2가 실행되고, 루프 카운트 2를 상속받은 10t4-2가 생성되어 대기 열에 삽입된다. 10d-1은 다시 대기 상태로 처리되어 대기열에 삽입된다. 이후의 과정은 도 2c에 기재되어 있다.10b-2 is then executed, and 10t4-2, which inherits loop count 2, is generated and inserted into the queue. 10d-1 is again queued and inserted into the queue. The subsequent procedure is described in Figure 2c.

도 2c에서 10t4-2가 실행되고 그 결과 10c-2가 생성되어 대기열에 삽입된다. 10d-1은 대기 상태로 처리되어 대기열에 삽입된다. 10c-2가 실행되면 10C로부터 출력되는 전이 10T5와 10T6에 대한 인스턴스인 10t5-2와 10t6-2가 순차적으로 생성되어 대기열에 삽입된다.In FIG. 2C, 10t4-2 is executed, resulting in 10c-2 being inserted into the queue. 10d-1 is treated as waiting and inserted into the queue. When 10c-2 is executed, instances 10t5-2 and 10t6-2, which are instances for transitions 10T5 and 10T6 output from 10C, are sequentially created and inserted into the queue.

10d-1은 대기 상태로 처리되어 대기열에 삽입된다. 10t5-2는 도 2c에서 실패로 처리된다. 따라서 10B에 대한 인스턴스는 생성되지 않는다. 10t6-2는 성공으로 처리되고 10t6-2로부터 루프카운트를 상속받은 인스턴스 10d-2가 생성되어 대기열에 삽입된다. 10d-1 is treated as waiting and inserted into the queue. 10t5-2 is treated as a failure in FIG. 2C. Therefore, no instance is created for 10B. 10t6-2 is treated as a success and an instance 10d-2 that inherits the loop count from 10t6-2 is created and inserted into the queue.

앞서 기재한 바에 따르면, 루프카운트를 이용한 종래의 기술에서 작업에 대한 인스턴스를 생성하기 이전에 인스턴스 테이블에 생성될 인스턴스와 고유한 식별정보 및 루프카운트가 동일한 인스턴스가 존재한다면 인스턴스를 생성하지 않고 기존의 인스턴스를 호출하여 실행할 것이다. As described above, in the conventional technique using loop count, if an instance to be created in the instance table and the same unique identification information and loop count exist in the instance table before the instance for the job exists, the existing instance is not created. We will call the instance and run it.

그러나 10d-1과 10d-2는 루프카운트가 서로 1과 2로 상이하므로 식별정보가 달라 서로 상이한 인스턴스로 인식되므로 도 2c에서는 기존의 인스턴스 10d-1 외에 새로운 인스턴스 10d-2가 생성되어 대기열에 삽입된다. However, since 10d-1 and 10d-2 are recognized as different instances because the loop counts are different from each other by 1 and 2, in FIG. 2c, a new instance 10d-2 is created and inserted into the queue in addition to the existing instance 10d-1. do.

도 2c 및 도 2d에서, 10d-1은 10t3-1과 10t6-1이 성공으로 처리되어야 실행될 것이지만 본 시뮬레이션에서 10t6-1이 실패로 처리되었으므로 10d-1은 계속해서 대기 상태로 처리된다. 10d-2는 10t3-2와 10t6-2가 성공으로 처리되어야 실행될 것 이지만 10t3-2가 실행되지 않았으므로 10d-2도 계속하여 대기 상태로 처리된다.In Figs. 2C and 2D, 10d-1 will be executed after 10t3-1 and 10t6-1 have been treated as successes, but 10d-1 is still processed as standby because 10t6-1 has been treated as a failure in this simulation. 10d-2 will be executed after 10t3-2 and 10t6-2 have been processed successfully, but since 10t3-2 has not been executed, 10d-2 will continue to be queued.

결국 루프카운트를 이용한 기존의 방법에 의하면 루프가 포함된 복잡한 프로세스의 경우 프로세스 디자인 과정에서는 의도하지 않았던 결과가 발생하거나 앞서 본 시뮬레이션의 결과처럼 무한루프에 빠져 프로세스가 실행되지 않는 결과가 발생하는 문제점이 있었다.As a result, according to the existing method using a loop count, a complicated process including a loop may have an unintended result in the process design process, or may result in an infinite loop like the result of the simulation, and thus the process may not be executed. there was.

상기한 문제를 해결하기 위해 본 발명에서는 루프를 포함하는 복잡한 프로세스에서 루프카운트를 이용하지 않고 두 개의 대기열을 이용하여 업무프로세스를 관리하는 방법 및 시스템을 제공하는 것을 목적으로 한다.In order to solve the above problems, an object of the present invention is to provide a method and system for managing a work process using two queues without using a loop count in a complex process including a loop.

상기한 목적을 달성하기 위해 본 발명에서는 활동 및 전이를 포함하는 업무 프로세스를 자동으로 관리하는 방법에 있어서, 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업에 대한 인스턴스를 생성하고, 생성된 인스턴스 가운데 소정의 조건을 만족시키는 인스턴스를 제2대기열에 삽입하고, 생성된 인스턴스 가운데 소정의 조건을 만족시키지 못하는 인스턴스를 제1대기열에 삽입하고, 제1대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키고, 제1대기열에 삽입되어 있는 인스턴스가 부존재하는 경우 제2대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 업무프로세스관리방법 및 시스템을 제공한다.In order to achieve the above object, the present invention provides a method for automatically managing a work process including an activity and a transition, and creates and creates an instance of a task representing one activity or a transition performed according to the work process. Insert an instance satisfying a predetermined condition among the created instances into the second queue, insert an instance that does not satisfy the predetermined condition among the created instances into the first queue, and execute an instance inserted into the first queue. The present invention provides a method and system for managing a business process that executes by calling an instance inserted into a second queue when an instance inserted into a first queue does not exist.

본 발명에 의하면 복잡한 프로세스에서도 기존의 루프카운트에 의한 방식과는 달리 프로세스 실행 중 무한루프에 빠져 프로세스가 더 이상 실행되지 않는 경우가 발생하지 않는다. 또한 프로세스의 처리시 프로세스 디자인 과정에서 예상하지 못했던 결과가 도출됨이 없이 의도했던 바 대로 프로세스가 처리된다.According to the present invention, unlike a conventional loop count method, a complicated process does not occur when the process is no longer executed due to an infinite loop during the process execution. In addition, when processing a process, the process is processed as intended, without yielding unexpected results in the process design process.

도 4는 본 발명에 따른 업무프로세스관리시스템의 구성을 도시한 블록도이다. 이를 통해 본 발명의 업무프로세스관리시스템에 대해 설명하도록 한다.4 is a block diagram showing the configuration of a business process management system according to the present invention. This will be described for the business process management system of the present invention.

도 4에 나타난 바와 같이 업무프로세스관리시스템(210)은 생성모듈(211), 삽입모듈(215), 실행모듈(217) 및 기록모듈(213)을 포함한다. 업무프로세스관리시스템(210)은 논리적으로 또는 전기적 신호에 의해 인스턴스테이블(230) 또는 대기열(250)과 연결된다. 대기열(250)은 제1대기열(251)과 제2대기열(253)을 포함한다.As shown in FIG. 4, the business process management system 210 includes a generation module 211, an insertion module 215, an execution module 217, and a recording module 213. The work process management system 210 is connected to the instance table 230 or the queue 250 either logically or by electrical signals. The queue 250 includes a first queue 251 and a second queue 253.

본 발명에 따른 업무프로세스관리시스템(210)은 업무 프로세스의 논리적인 업무 단계를 의미하는 활동 및 업무의 흐름을 위해 활동을 연결하는 논리적인 연결선인 전이를 포함하는 업무 프로세스를 자동으로 관리하는 시스템에 관한 것이다.The work process management system 210 according to the present invention is a system for automatically managing a work process including an activity representing a logical work step of a work process and a transition, which is a logical connection line connecting the activities for the flow of work. It is about.

여기서 활동(Activity)은 프로세스 구성에서 하나의 논리적인 작업 단계를 의미하는 것이다. 이러한 활동에는 프로세스의 시작을 의미하는 시작 활동(Start Activity)과 프로세스의 끝을 의미하는 종료 활동(End Activity)이 포함된다. 전이(Transition)는 각각의 작업을 연결하는 논리적인 연결선을 의미하며 작업(Work)은 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미한다.In this context, activity refers to one logical task step in process composition. These activities include Start Activity, which means the start of a process, and End Activity, which means the end of a process. Transition refers to the logical line connecting each work. Work refers to an activity or transition performed according to a business process.

생성모듈(211)은 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업에 대한 인스턴스를 생성한다. The generation module 211 creates an instance for a task that represents one activity or transition performed according to a business process.

작업 및 인스턴스에 대한 예는 다음과 같다. 어떠한 회사의 결제 프로세스 내에 A 부서에서 B 부서로 전자 서류를 전송하는 일을 수행하는 작업이 포함되어 있다고 가정한다. Examples of jobs and instances are as follows: Suppose a company's payment process involves sending electronic documents from department A to department B.

이 경우 제 1 전자 서류를 A 부서에서 B 부서로 첫 번째로 보내는 일을 수행 해야 하는 경우 위 작업에 대하여 제 1 인스턴스가 생성될 것이다. 제 2 전자 서류를 A 부서에서 B 부서로 보내는 일의 경우 제 1 전자 서류를 보내는 것과 다른 경우이므로 제 2 인스턴스가 생성될 것이다. 또한 이미 한 번 보낸 제 1 전자 서류를 다시 한 번 A 부서에서 B 부서로 보내는 경우에도 위 제 1 인스턴스의 경우와는 그 횟수에서 차이가 있으므로 별도의 새로운 인스턴스가 생성될 것이다.In this case a first instance will be created for the above task if it is necessary to perform the first task of sending the first electronic document from department A to department B. Sending the second electronic document from department A to department B is different than sending the first electronic document, so a second instance will be created. In addition, even if the first electronic document sent once from department A to department B is different from that of the first instance, a new instance will be created.

삽입모듈(215)은 생성된 인스턴스 가운데 소정의 조건을 만족시키는 인스턴스를 제2대기열(253)에 삽입하고, 생성된 인스턴스 가운데 소정의 조건을 만족시키지 못하는 인스턴스를 제1대기열(251)에 삽입한다.The insertion module 215 inserts an instance satisfying a predetermined condition among the generated instances into the second queue 253, and inserts an instance of the created instance that does not satisfy the predetermined condition into the first queue 251. .

실행모듈(217)은 제1대기열(251)에 삽입되어 있는 인스턴스가 존재하는 경우에는 제1대기열(251)에 삽입되어 있는 인스턴스를 호출하여 실행시키고, 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하는 경우 제2대기열(253)에 삽입되어 있는 인스턴스를 호출하여 실행시킨다.If there is an instance inserted into the first queue 251, the execution module 217 calls and executes the instance inserted into the first queue 251, and executes the instance inserted into the first queue 251. If does not exist, the instance inserted in the second queue 253 is called and executed.

종래의 발명에서 하나의 대기열만 사용한 것과는 달리 본 발명에 따른 업무프로세스관리시스템에서 대기열(250)은 제1대기열(251)과 제2대기열(253)의 두 개의 대기열을 포함한다. Unlike using only one queue in the related art, the queue 250 includes two queues of the first queue 251 and the second queue 253 in the work process management system according to the present invention.

제1대기열(251)은 소정의 조건을 만족시키지 못하는 인스턴스가 삽입모듈(215)에 의해 삽입되는 대기열이다. 제1대기열(251)에 삽입되어 있는 인스턴스는 제2대기열(253)에 삽입되어 있는 인스턴스보다 우선적으로 실행모듈(217)에 의해 호출되어 실행된다.The first queue 251 is a queue into which an instance that does not satisfy a predetermined condition is inserted by the insertion module 215. The instance inserted into the first queue 251 is called and executed by the execution module 217 in preference to the instance inserted into the second queue 253.

제2대기열(253)은 소정의 조건을 만족시키는 인스턴스가 삽입모듈(251)에 의 해 삽입되는 대기열이다. 제2대기열(253)에 삽입되어 있는 인스턴스는 제1대기열(251)에 삽입되어 있는 인스턴스가 존재하지 않는 경우에 실행모듈(217)에 의해 호출되어 실행된다.The second queue 253 is a queue into which an instance satisfying a predetermined condition is inserted by the insertion module 251. The instance inserted into the second queue 253 is called and executed by the execution module 217 when there is no instance inserted into the first queue 251.

삽입모듈(215)이 소정의 조건에 따라 인스턴스를 제1대기열(251) 또는 제2대기열(253)에 삽입하는 것은 다음과 같이 이루어질 수 있다. The insertion module 215 may insert the instance into the first queue 251 or the second queue 253 according to a predetermined condition as follows.

삽입모듈(215)은 생성된 인스턴스가 활동에 입력되는 복수개의 전이 가운데 일부 전이에 대한 인스턴스가 실행되지 않은 활동에 대한 인스턴스이거나, 생성된 인스턴스가 활동에 입력되는 복수개의 전이에 대한 인스턴스가 모두 실행되었고 복수개의 전이에 대한 인스턴스의 값이 모두 참인 것이 아닌 활동에 대한 인스턴스인 경우에 생성된 인스턴스를 상기 제2대기열(253)에 삽입하고 제2대기열(253)에 삽입되지 않는 나머지 인스턴스들을 제1대기열(251)에 삽입할 수 있다.The insertion module 215 may be an instance of an activity for which some of the transitions in which the generated instance is input to the activity is not executed, or an instance of a plurality of transitions in which the generated instance is input to the activity is executed. And insert the generated instance into the second queue 253 and the remaining instances not inserted into the second queue 253 when the values of the instances for the plurality of transitions are not all true. Can be inserted into the queue 251.

본 발명에 따른 업무프로세스관리시스템을 도 1에서의 프로세스에 적용시켜 본다. 도 1의 여러 활동 가운데 복수개의 전이가 입력되는 활동은 조인 활동에 해당하고, 조인 활동에는 OR 조인 활동 및 AND 조인 활동이 있다. The work process management system according to the present invention is applied to the process in FIG. Among the various activities of FIG. 1, an activity in which a plurality of transitions are input corresponds to a join activity, and the join activity includes an OR join activity and an AND join activity.

AND 조인 활동은 복수개의 전이가 모두 실행되었고 이러한 복수개의 전이의 값이 모두 참인 경우에 실행될 수 있는 활동을 말하며, OR 조인 활동은 복수개의 전이 가운데 참의 값을 갖는 전이가 하나 이상 실행된 경우에 실행될 수 있는 활동을 말한다.An AND join activity refers to an activity that can be executed when a plurality of transitions have all been executed and the values of these multiple transitions are all true, and an OR join activity is performed when one or more transitions with a true value among a plurality of transitions have been executed. Speak an action that can be executed.

삽입모듈(215)은 복수개의 전이 가운데 일부 전이에 대한 인스턴스가 실행되지 않은 OR 조인 활동 또는 AND 조인 활동에 대한 인스턴스를 제2대기열(253)에 삽 입한다. 또한 삽입모듈(215)은 AND 조인 활동에 대한 인스턴스 가운데 복수개의 입력 전이에 대한 인스턴스가 모두 실행되었더라도 입력되는 전이의 인스턴스의 값 중 거짓인 값이 존재하는 AND 조인 활동에 대한 인스턴스를 제2대기열(253)에 삽입한다. 위 두 가지 경우를 제외한 나머지 경우의 작업에 대한 인스턴스는 삽입모듈(215)에 의해 제1대기열(251)에 삽입된다.The insertion module 215 inserts an instance of an OR join activity or an AND join activity in which an instance of some of the plurality of transitions is not executed, into the second queue 253. In addition, the insertion module 215 stores the instance for the AND join activity in which the false value exists among the values of the instance of the input transition even if all the instances for the plurality of input transitions among the instances for the AND join activity have been executed. 253). Except for the above two cases, an instance of the work in the other cases is inserted into the first queue 251 by the insertion module 215.

실행모듈(217)이 제1대기열(251)에 삽입되어 있는 인스턴스를 호출하여 실행한 결과 생성될 인스턴스가 이미 생성되어 제2대기열(253)에 삽입되어 있는 경우, 생성모듈(211)은 그 인스턴스와 동일한 인스턴스를 다시 생성하지 않으며 삽입모듈(215)은 제2대기열(253)에 이미 삽입되어 있는 인스턴스를 호출하여 제1대기열에 삽입할 수 있다.When the execution module 217 calls the instance inserted into the first queue 251 and executes it, if an instance to be generated is already generated and inserted into the second queue 253, the generation module 211 generates the instance. The insertion module 215 may call the instance already inserted in the second queue 253 and insert the same instance into the first queue without re-creating the same instance as.

이를 위해 생성모듈(211)은 생성할 인스턴스가 이미 생성되어 대기열에 삽입되어 있는지를 판단하기 위해 인스턴스테이블(230)을 참조한다. 인스턴스테이블(230)은 생성모듈(211)에 의해 생성되어 삽입모듈(215)에 의해 제1대기열(251) 또는 제2대기열(253)에 삽입될 인스턴스를 기록하는 테이블을 말한다. 즉, 인스턴스테이블(230)에 생성할 인스턴스가 이미 생성된 것으로 기록되어 있다면 생성모듈(211)은 그 인스턴스와 동일한 인스턴스를 다시 생성하지 않는다. To this end, the generation module 211 refers to the instance table 230 to determine whether an instance to be created has already been created and inserted into the queue. The instance table 230 refers to a table that is generated by the generation module 211 and records an instance to be inserted into the first queue 251 or the second queue 253 by the insertion module 215. That is, if an instance to be generated is already recorded in the instance table 230, the generation module 211 does not recreate the same instance as the instance.

기록모듈(213)은 인스턴스테이블(230)에 삽입될 인스턴스를 각 인스턴스별로 부여되는 식별정보에 의해 각 인스턴스가 구별되도록 기록한다. 각 인스턴스는 이러한 식별정보에 의해 호출될 수 있다.The recording module 213 records the instances to be inserted into the instance table 230 so that each instance is distinguished by identification information given to each instance. Each instance can be called by this identification.

기존의 발명에서는 각 인스턴스별로 루프카운트가 부여되고 각 인스턴스는 이전의 루프카운트를 상속받게 되어 있었다. 그러나 본 발명에서는 각 인스턴스에 이러한 루프카운트가 부여되지 않는다. In the existing invention, a loop count is given to each instance, and each instance inherits the previous loop count. However, in the present invention, such a loop count is not given to each instance.

본 발명에서는 두 개의 대기열에 소정의 조건에 따라 인스턴스를 삽입한다. 또한 각 인스턴스에 부여되는 식별정보에는 하나의 프로세스에서 하나의 작업에 대해 생성된 인스턴스의 개수에 관한 정보가 포함된다.In the present invention, an instance is inserted into two queues according to a predetermined condition. In addition, the identification information given to each instance includes information about the number of instances generated for one job in one process.

예를 들어 도 1의 프로세스에서 OR 조인 활동인 10B에 대하여 첫 번째로 생성된 인스턴스의 식별정보는 10b-1으로 표현되고, 10B에 대해 두 번째로 생성된 인스턴스의 식별정보는 10b-2로 표현될 수 있다. 이 경우 -1 및 -2 등이 하나의 프로세스에서 하나의 작업에 대해 생성된 인스턴스의 개수에 관한 정보가 된다.For example, in the process of FIG. 1, the identification of the first instance created for 10B, which is an OR join activity, is represented by 10b-1, and the identification of the second instance created for 10B is represented by 10b-2. Can be. In this case, -1 and -2 become information about the number of instances created for one job in one process.

이하에서는 앞서 살펴본 바와 같이 루프카운트를 이용한 종래의 방식에 의할 경우 무한 루프에 의해 프로세스가 종료되지 못했던 도 1의 프로세스에 대하여 본 발명에 따른 업무프로세스관리시스템에 의한 프로세스의 진행 과정 및 결과를 도 3a, 도 3b, 도 3c의 표를 이용해 설명하도록 한다.Hereinafter, the process and the result of the process by the business process management system according to the present invention with respect to the process of FIG. 1, in which the process was not terminated by an endless loop in accordance with the conventional method using the loop count as described above. It demonstrates using the table of 3a, 3b, 3c.

이하의 모든 표에서 실행시 성공으로 처리된 작업에 대한 인스턴스, 조건 대기 중인 작업에 대한 인스턴스, 실행시 실패로 처리된 인스턴스에 대한 분류는 도 2a에 포함된 분류 표에 기재된 바와 같다.In all the tables below, the classification for an instance processed as a success in execution, an instance for a job waiting for condition, and an instance processed as a failure in execution are as described in the classification table included in FIG. 2A.

도 3a에서 생성모듈(211)은 시작(100)에 대한 인스턴스를 생성하고, 삽입모듈(215)은 생성된 인스턴스를 제1대기열(251)에 삽입한다. 실행모듈(215)은 제1대기열에 삽입되어 있는 시작(100)에 대한 인스턴스를 호출하여 실행한다. In FIG. 3A, the generation module 211 generates an instance for the start 100, and the insertion module 215 inserts the generated instance into the first queue 251. The execution module 215 calls and executes an instance for the start 100 inserted into the first queue.

생성모듈(211)은 시작(100)으로부터 출력되는 전이 10T1에 대한 인스턴스 10t1-1을 생성하고 삽입모듈(215)은 10t-1을 제1대기열(251)에 삽입하며 실행모듈(217)은 이를 호출하여 실행한다.The generation module 211 generates an instance 10t1-1 for the transition 10T1 output from the start 100, the insertion module 215 inserts 10t-1 into the first queue 251, and the execution module 217 does this. Call to run

10t-1이 실행되면 10a-1이 생성되어 제1대기열(251)에 삽입되고 10a-1이 실행되면 10A에서 출력되는 10T2와 10T3에 대한 인스턴스 10t2-1과 10t3-1이 생성되어 제1대기열(251)에 삽입된다.When 10t-1 is executed, 10a-1 is generated and inserted into the first queue 251. When 10a-1 is executed, instances 10t2-1 and 10t3-1 for 10T2 and 10T3 outputted at 10A are generated to generate the first queue. 251 is inserted.

먼저 삽입된 10t2-1이 실행되면 10B에 대한 인스턴스 10b-1이 생성된다. 10B는 입력되는 전이가 복수개인 OR 조인 활동이나 현재 10T2에 대한 인스턴스만이 실행되었고 10T5에 대한 인스턴스는 실행되지 않았으므로 삽입모듈(215)은 10b-1을 제2대기열(253)에 삽입한다. When the first inserted 10t2-1 is executed, an instance 10b-1 for 10B is generated. Since 10B has an OR join activity having a plurality of input transitions or only an instance of 10T2 currently executed and no instance of 10T5 executed, the insertion module 215 inserts 10b-1 into the second queue 253.

10t3-1이 실행되면 10D에 대한 인스턴스 10d-1이 생성된다. 10D는 입력되는 전이가 복수개인 AND 조인 활동이나 현재 10T3에 대한 인스턴스만이 실행되었고 10T6에 대한 인스턴스는 실행되지 않았으므로 삽입모듈(215)은 10d-1을 제2대기열(253)에 삽입한다.When 10t3-1 is executed, an instance 10d-1 for 10D is created. Since 10D is an AND join activity having a plurality of input transitions or only an instance for 10T3 and an instance for 10T6 is not executed, the insertion module 215 inserts 10d-1 into the second queue 253.

실행모듈(217)은 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 제2대기열(253)에 삽입되어 있는 10b-1을 호출하여 실행한다. 10b-1이 실행되면 10t4-1이 생성되어 제1대기열(251)에 삽입된다.The execution module 217 calls and executes 10b-1 inserted into the second queue 253 since there is no instance inserted into the first queue 251. When 10b-1 is executed, 10t4-1 is generated and inserted into the first queue 251.

10t4-1이 실행되면 10c-1이 생성되어 제1대기열(251)에 삽입된다. 이 경우 제2대기열에 삽입되어 있는 10d-1은 실행모듈(217)이 인스턴스를 호출하여 실행하는 경우에 제1대기열(251)에 10t4-1의 인스턴스가 존재하므로 실행되지 않는다.When 10t4-1 is executed, 10c-1 is generated and inserted into the first queue 251. In this case, 10d-1 inserted into the second queue is not executed because an instance of 10t4-1 exists in the first queue 251 when the execution module 217 calls and executes an instance.

10c-1이 실행되면 10t5-1과 10t6-1이 생성되어 제1대기열(251)에 삽입된다. When 10c-1 is executed, 10t5-1 and 10t6-1 are generated and inserted into the first queue 251.

도 3b에 나타난 바와 같이, 제1대기열(251)에 생성되어 삽입된 순서에 따라 10t5-1이 먼저 호출되어 실행되고 10b-2가 생성된다. 10B에서 생성되는 두 번째 인스턴스이므로 이 인스턴스의 식별정보는 -2의 정보를 포함한다. 삽입모듈(215)은 10B가 OR 조인이고 그에 대한 두 개의 입력 전이인 10T2와 10T5 모두에 대하여 인스턴스가 실행되었으므로 10b-2를 제1대기열(251)에 삽입한다. As shown in FIG. 3B, 10t5-1 is first called and executed according to the order in which the first queue 251 is generated and inserted. Since this is the second instance created in 10B, the identity of this instance contains information of -2. The insertion module 215 inserts 10b-2 into the first queue 251 because 10B is an OR join and instances have been executed for both 10T2 and 10T5, two input transitions thereof.

10t6-1은 도3a에서 호출되어 실행시 앞서 종래 기술에 의한 시뮬레이션에서의 경우와 마찬가지로 실패로 처리된다. 10b-2가 호출되어 실행되면 10t4-2가 생성되어 제1대기열(251)에 삽입되고, 10t4-2가 호출되어 실행되면 10c-2가 생성되어 제1대기열(251)에 삽입된다.10t6-1 is called in FIG. 3A and is treated as a failure upon execution as in the prior art simulation. If 10b-2 is called and executed, 10t4-2 is generated and inserted into the first queue 251. If 10t4-2 is called and executed, 10c-2 is generated and inserted into the first queue 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)에 삽입한다.When 10c-2 is called and executed, 10t5-2 and 10t6-2 are generated and inserted into the first queue 251. 10t5-2 is called and executed and treated as a failure. If execution module 217 executes 10t6-2, an instance for 10D should be created. However, since 10d-1 is inserted into the second queue 253, the generation module 211 does not generate a separate instance. Since 10D is an AND join activity or an instance of both input instances 10T6 and 10T3 has been executed and its value is also true, the insertion module 215 calls 10d-1 and inserts it into the first queue 251.

실행모듈(217)은 10d-1을 호출하여 실행하고 그 결과 10t7-1이 생성되어 제1대기열(251)에 삽입된다. 10t7-1이 호출되어 실행되면 종료 활동(101)에 대한 인스턴스가 생성되어 제1대기열(251)에 삽입된다. 종료 활동(101)에 대한 인스턴스가 호출되어 실행되면 프로세스가 종료한다.The execution module 217 calls and executes 10d-1, and as a result, 10t7-1 is generated and inserted into the first queue 251. When 10t7-1 is called and executed, an instance for the terminating activity 101 is created and inserted into the first queue 251. The process terminates when an instance for the shutdown activity 101 is invoked and executed.

이와 같이 본 발명에 따른 업무프로세스관리시스템에 의하면 기존의 루프카운트를 이용하는 방식에서와는 달리 프로세스가 무한 루프에 빠지는 일 없이 원활하고 안정적으로 처리된다.As described above, according to the work process management system according to the present invention, unlike the conventional loop count method, the process is smoothly and stably processed without falling into an infinite loop.

도 5a는 본 발명에 따른 업무프로세스관리시스템의 시뮬레이션을 위한 단일 루프를 포함하는 작업흐름 프로세스의 일실시예이다. 도 5a의 프로세스에서 루프구간은 30B, 30T3, 30C, 30T4이다. 기타의 가정은 앞서 도 1에 대한 본 발명의 시뮬레이션의 경우와 동일하다. 이하에서는 도 5b, 도 5b의 표를 이용하여 도 5a의 프로세스에 대한 본 발명의 시뮬레이션을 설명하도록 한다.5A is one embodiment of a workflow process including a single loop for simulation of a business process management system in accordance with the present invention. The loop sections in the process of FIG. 5A are 30B, 30T3, 30C, 30T4. Other assumptions are the same as in the case of the simulation of the present invention with respect to FIG. Hereinafter, the simulation of the present invention for the process of FIG. 5A will be described using the tables of FIGS. 5B and 5B.

도 5b에서 생성모듈(211)은 시작 활동(300)에 대한 인스턴스를 생성하고 삽입모듈(215)이 이를 제1대기열(251)에 삽입한다. 실행모듈(217)이 시작 활동(300)에 대한 인스턴스를 호출하여 실행하면, 시작활동(300)의 출력전이 30T1에 대한 인스턴스 30t1-1이 생성되어 제1대기열(251)에 삽입된다.In FIG. 5B, the generation module 211 creates an instance for the start activity 300 and the insertion module 215 inserts it into the first queue 251. When the execution module 217 calls and executes an instance for the start activity 300, an instance 30t1-1 for the output transition 30T1 of the start activity 300 is generated and inserted into the first queue 251.

30t1-1이 호출되어 실행되면 30a-1이 생성되어 제1대기열(251)에 삽입된다. 30a-1이 호출되어 실행되면 30t2-1이 생성되어 제1대기열(251)에 삽입된다. 30t2-1이 호출되어 실행되면, 생성모듈(211)은 OR 조인 활동 30B에 대한 인스턴스 30b-1을 생성한다. When 30t1-1 is called and executed, 30a-1 is generated and inserted into the first queue 251. When 30a-1 is called and executed, 30t2-1 is generated and inserted into the first queue 251. When 30t2-1 is called and executed, generation module 211 generates instance 30b-1 for OR join activity 30B.

30B에 대한 복수의 입력 전이 가운데 30T4에 대한 인스턴스가 아직 실행되지 않았으므로 삽입모듈(215)은 30b-1을 제2대기열(253)에 삽입한다. 이 경우 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 실행모듈(217)은 제2대기열(253)에 삽입되어 있는 30b-1을 호출하여 실행한다. 30B는 OR 조인 활동이므로 복수개의 입력 전이에 대한 인스턴스 가운데 하나의 인스턴스만이 실행되어 있고 그 값이 참이더라도 실행 결과가 성공으로 처리된다.Since the instance for 30T4 has not yet been executed among the plurality of input transitions for 30B, the insertion module 215 inserts 30b-1 into the second queue 253. In this case, since an instance inserted into the first queue 251 does not exist, the execution module 217 calls and executes 30b-1 inserted into the second queue 253. Since 30B is an OR join activity, even if only one of the instances for multiple input transitions is running and its value is true, the execution result is treated as success.

30b-1이 실행되면 30t3-1이 생성되어 제1대기열(251)에 삽입된다. 30t3-1이 호출되어 실행되면 30c-1이 생성되어 제1대기열(251)에 삽입된다. 30c-1이 호출되어 실행되면 30t4-1과 30t5-1이 생성되어 제1대기열(251)에 삽입된다. When 30b-1 is executed, 30t3-1 is generated and inserted into the first queue 251. When 30t3-1 is called and executed, 30c-1 is generated and inserted into the first queue 251. When 30c-1 is called and executed, 30t4-1 and 30t5-1 are generated and inserted into the first queue 251.

30t4-1이 호출되어 실행되면, 30B에 대하여 두 번째 인스턴스를 생성하는 경우이므로 생성모듈(211)은 30b-2를 생성한다. OR 조인 활동 30B에 대하여 복수개의 입력 전이에 대한 인스턴스가 모두 실행되었으므로 삽입모듈(215)은 30b-2를 제1대기열(251)에 삽입한다. When 30t4-1 is called and executed, the generation module 211 generates 30b-2 since the second instance is generated for 30B. Since all instances of the plurality of input transitions have been executed for the OR join activity 30B, the insertion module 215 inserts 30b-2 into the first queue 251.

도 5c에서 30t5-1은 실행시 실패로 처리된다. 30b-2가 호추뢰어 실행되면 30t3-2가 생성되어 제1대기열(251)에 삽입된다. 30t3-2가 생성되면 30c-2가 생성되어 제1대기열(251)에 삽입된다. 30c-2가 호출되어 실행되면 30t4-2와 30t5-2가 생성되어 제1대기열(251)에 삽입된다.In Fig. 5C, 30t5-1 is treated as a failure in execution. When 30b-2 is executed, the call thruster 30t3-2 is generated and inserted into the first queue 251. When 30t3-2 is generated, 30c-2 is generated and inserted into the first queue 251. When 30c-2 is called and executed, 30t4-2 and 30t5-2 are generated and inserted into the first queue 251.

30t4-2는 호출되어 실행시 실패로 처리된다. 30t5-2가 호출되어 실행되면 30d-1이 생성되어 제1대기열(251)에 삽입된다. 30d-1이 호출되어 실행되면 30t6-1이 생성되어 제1대기열(251)에 삽입된다. 30t6-1이 호출되어 실행되면 종료(301)에 대한 인스턴스가 생성되어 제1대기열(251)에 삽입되고, 종료(301)에 대한 인스턴스가 실행되면 도 5a의 프로세스가 종료하게 된다.30t4-2 is called and treated as a failure at run time. When 30t5-2 is called and executed, 30d-1 is generated and inserted into the first queue 251. When 30d-1 is called and executed, 30t6-1 is generated and inserted into the first queue 251. When 30t6-1 is called and executed, an instance for the end 301 is generated and inserted into the first queue 251. When the instance for the end 301 is executed, the process of FIG. 5A ends.

이상에서 기술한 바와 같이 도 5a의 단일 루프를 포함하는 프로세스에 대하여 본 발명에 따른 업무프로세스관리시스템을 시뮬레이션한 결과 오류 없이 예측한 대로 프로세스가 진행됨을 알 수 있다.As described above, as a result of simulating the work process management system according to the present invention for the process including the single loop of FIG. 5A, it can be seen that the process proceeds as expected without errors.

도 6a는 본 발명에 따른 업무프로세스관리시스템의 시뮬레이션을 위한 교차루프 타입 1을 포함하는 작업흐름 프로세스의 일실시예이다. 도 6a의 프로세스에서 루프구간은 40B, 40T3, 40C, 40T4, 40D, 40T5, 40T6, 40E, 40T7 이며 교차 지점은 40C 이다. 기타의 가정은 앞서 도 1에 대한 본 발명의 시뮬레이션의 경우와 동일하다. 이하에서는 도 6b, 도 6c, 도 6d, 도 6e, 도 6f의 표를 통해 도 6a의 프로세스에 대한 본 발명의 시뮬레이션을 설명하도록 한다.6A is an embodiment of a workflow process including a cross-loop type 1 for simulation of a business process management system in accordance with the present invention. In the process of FIG. 6A the loop sections are 40B, 40T3, 40C, 40T4, 40D, 40T5, 40T6, 40E, 40T7 and the intersection points are 40C. Other assumptions are the same as in the case of the simulation of the present invention with respect to FIG. Hereinafter, the simulation of the present invention for the process of FIG. 6A will be described through the tables of FIGS. 6B, 6C, 6D, 6E, and 6F.

도 6b에서 생성모듈(211)은 시작 활동(400)에 대한 인스턴스를 생성하고 삽입모듈(215)이 이를 제1대기열(251)에 삽입한다. 실행모듈(217)이 시작 활동(400)에 대한 인스턴스를 호출하여 실행하면, 시작활동(400)의 출력전이 40T1에 대한 인스턴스 40t1-1이 생성되어 제1대기열(251)에 삽입된다.In FIG. 6B, the generation module 211 creates an instance for the start activity 400 and the insertion module 215 inserts it into the first queue 251. When the execution module 217 calls and executes an instance for the start activity 400, an instance 40t1-1 for the output transition 40T1 of the start activity 400 is generated and inserted into the first queue 251.

40t1-1이 호출되어 실행되면 40a-1이 생성되어 제1대기열(251)에 삽입된다. 40a-1이 호출되어 실행되면 40t2-1이 생성되어 제1대기열(251)에 삽입된다. When 40t1-1 is called and executed, 40a-1 is generated and inserted into the first queue 251. When 40a-1 is called and executed, 40t2-1 is generated and inserted into the first queue 251.

40t2-1이 호출되어 실행되면 생성모듈(211)은 40b-1을 생성한다. 40B는 OR 조인 활동이고, 복수개의 입력 전이 가운데 40T5에 대한 인스턴스가 아직 실행되지 않았으므로 삽입모듈(215)은 40b-1을 제2대기열(253)에 삽입한다. 이 경우 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 실행모듈(217)은 제2대기열(253)에 삽입되어 있는 40b-1을 호출하여 실행한다.When 40t2-1 is called and executed, the generation module 211 generates 40b-1. 40B is an OR join activity, and the insertion module 215 inserts 40b-1 into the second queue 253 since the instance for 40T5 among the plurality of input transitions has not yet been executed. In this case, since the instance inserted into the first queue 251 does not exist, the execution module 217 calls 40b-1 inserted into the second queue 253 to execute it.

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을 호출하여 실행한다.When 40b-1 is executed, 40t3-1 is generated and inserted into the first queue 251. When 40t3-1 is called and executed, 40c-1 is generated. Since no instances of 40T7 among the plurality of input transitions of the OR join activity 40C have been executed, the insertion module 215 inserts 40c-1 into the second queue 253. In this case, since the instance inserted into the first queue 251 does not exist, the execution module 217 calls 40c-1 inserted into the second queue 253 to execute it.

40c-1이 호출되어 실행되면 40t4-1이 생성되어 제1대기열(251)에 삽입된다. 40t4-1이 호출되어 실행되면 40d-1이 생성되어 제1대기열에 삽입된다. 40d-1이 호출되어 실행되면 40t5-1과 40t6-1이 생성되어 제1대기열(251)에 삽입된다. When 40c-1 is called and executed, 40t4-1 is generated and inserted into the first queue 251. When 40t4-1 is called and executed, 40d-1 is generated and inserted into the first queue. When 40d-1 is called and executed, 40t5-1 and 40t6-1 are generated and inserted into the first queue 251.

40t5-1이 실행되면 생성모듈(211)은 40B에 대한 두 번째 인스턴스인 40b-2를 생성한다. 40B에 대한 복수개의 인스턴스가 모두 실행되었고 40B는 OR 조인 활동이므로 삽입모듈은 40b-2를 제1대기열(251)에 삽입한다. When 40t5-1 is executed, the generation module 211 generates 40b-2, which is the second instance of 40B. Since a plurality of instances for 40B have all been executed and 40B is an OR join activity, the insertion module inserts 40b-2 into the first queue 251.

40t6-1이 호출되어 실행되면 40e-1이 생성되어 제1대기열(251)에 삽입된다. 40b-2가 호출되어 실행되면 40t3-2가 생성되어 제1대기열(251)에 삽입된다. 40e-1이 호출되어 실행되면 40t7-1과 40t8-1이 생성되어 제1대기열(251)에 삽입된다.When 40t6-1 is called and executed, 40e-1 is generated and inserted into the first queue 251. When 40b-2 is called and executed, 40t3-2 is generated and inserted into the first queue 251. When 40e-1 is called and executed, 40t7-1 and 40t8-1 are generated and inserted into the first queue 251.

40t3-2가 호출되어 실행되면 생성모듈(211)은 40c-2를 생성한다. 40c-2에 대한 복수의 입력 전이 중 40T7에 대한 인스턴스 40t7-1이 아직 실행되지 않았으므로 삽입모듈(215)은 40c-2를 제2대기열(253)에 삽입한다.When 40t3-2 is called and executed, the generation module 211 generates 40c-2. Since the instance 40t7-1 for 40T7 of the plurality of input transitions for 40c-2 has not yet been executed, the insertion module 215 inserts 40c-2 into the second queue 253.

40t7-1이 호출되어 실행되면 40T7이 입력되는 OR 조인 활동 40C에 대한 인스턴스가 제2대기열(253)에 삽입되어 있으므로, 생성모듈(211)은 40C에 대하여 별도의 인스턴스를 생성하지 않는다. 삽입모듈(215)은 40c-2에 대한 복수의 입력전이가 모두 실행되었으므로 40c-2를 제1대기열(251)에 삽입한다.When 40t7-1 is called and executed, the instance for the OR join activity 40C to which 40T7 is input is inserted into the second queue 253, so the generation module 211 does not create a separate instance for 40C. The insertion module 215 inserts 40c-2 into the first queue 251 because all of the plurality of input transitions to 40c-2 have been performed.

도 6c에서 40t8-1은 실행시 실패로 처리된다. 40c-2가 호출되어 실행되면 40t4-2가 생성되어 제1대기열(251)에 삽입된다. 40t4-2가 호출되어 실행되면 40d-2가 생성되어 제1대기열(251)에 삽입된다.In Fig. 6C, 40t8-1 is treated as a failure in execution. When 40c-2 is called and executed, 40t4-2 is generated and inserted into the first queue 251. When 40t4-2 is called and executed, 40d-2 is generated and inserted into the first queue 251.

도 6d에서 40d-2가 호출되어 실행되면 40t5-2와 40t6-2가 생성되어 제1대기열(251)에 삽입된다. 40t5-2가 호출되어 실행되면 40b-3가 생성되어 제1대기열(251)에 삽입된다. 40t6-2가 호출되어 실행되면 40e-2가 생성되어 제1대기열(251)에 삽입된다.When 40d-2 is called and executed in FIG. 6D, 40t5-2 and 40t6-2 are generated and inserted into the first queue 251. When 40t5-2 is called and executed, 40b-3 is generated and inserted into the first queue 251. When 40t6-2 is called and executed, 40e-2 is generated and inserted into the first queue 251.

40b-3가 호출되어 실행되면 40t3-3이 생성되어 제1대기열(251)에 삽입된다. 40e-2가 호출되어 실행되면 40t7-2와 40t8-2가 생성되어 제1대기열(251)에 삽입된다. 40t3-3이 호출되어 실행되면 40c-3이 생성되어 제1대기열(251)에 삽입된다.When 40b-3 is called and executed, 40t3-3 is generated and inserted into the first queue 251. When 40e-2 is called and executed, 40t7-2 and 40t8-2 are generated and inserted into the first queue 251. When 40t3-3 is called and executed, 40c-3 is generated and inserted into the first queue 251.

40t7-2가 호출되어 실행되면 40c-4가 생성되어 제1대기열(251)에 삽입된다. 도 6의 시뮬레이션에서 40t8-2는 실행 결과 실패로 처리되므로 40F에 대한 인스턴스는 생성되지 않는다. 40c-3이 호출되어 실행되면 40t4-3이 생성되어 제1대기열(251)에 삽입되고, 40c-4가 호출되어 실행되면 40t4-4가 생성되어 제1대기열(251)에 삽입된다.When 40t7-2 is called and executed, 40c-4 is generated and inserted into the first queue 251. In the simulation of Fig. 6, 40t8-2 is treated as a result of execution failure, so no instance for 40F is created. When 40c-3 is called and executed, 40t4-3 is generated and inserted into the first queue 251. When 40c-4 is called and executed, 40t4-4 is generated and inserted into the first queue 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)에 삽입된다.When 40t4-3 and 40t4-4 are sequentially called and executed, 40d-3 and 40d-4 are sequentially generated and inserted into the first queue 251. When 40d-3 and 40d-4 are sequentially called and executed, 40t5-3, 40t6-3 and 40t5-4, 40t6-4 are sequentially generated and inserted into the first queue 251.

도 6e에서 40t5-3은 호출되어 실행시 실패로 처리되므로 40B에 대한 인스턴 스가 생성되지 않는다. 40t6-3은 호출되어 실행시 성공으로 처리되므로 40e-3이 생성되어 제1대기열(251)에 삽입된다.In FIG. 6E, since 40t5-3 is called and treated as a failure in execution, an instance for 40B is not generated. Since 40t6-3 is called and treated as a success at execution, 40e-3 is generated and inserted into the first queue 251.

40t5-4 역시 실행시 실패로 처리되므로 40B에 대한 인스턴스는 생성되지 않으며, 40t6-4는 실행시 성공으로 처리되므로 도 6f에서 40e-4가 생성되어 제1대기열(251)에 삽입된다.Since 40t5-4 is also treated as a failure in execution, an instance for 40B is not created, and 40t6-4 is treated as a success in execution, so 40e-4 is generated in FIG. 6F and inserted into the first queue 251.

40e-3와 40e-4가 순차적으로 호출되어 실행되면 40t7-3 및 40t8-3와 40t7-4 및 40t8-4가 순차적으로 생성되어 제1대기열(251)에 삽입된다. 도 6f에서 40t7-3은 호출되어 실행시 실패로 처리되므로 40C에 대한 인스턴스는 생성되지 않는다.When 40e-3 and 40e-4 are sequentially called and executed, 40t7-3 and 40t8-3 and 40t7-4 and 40t8-4 are sequentially generated and inserted into the first queue 251. In FIG. 6F, 40t7-3 is called and treated as a failure in execution, so no instance for 40C is created.

40t8-3은 호출되어 실행시 성공으로 처리되므로 40f-1이 생성되어 제1대기열(251)에 삽입된다. 40t7-4와 408-4는 순차적으로 호출되어 실행시 실패로 처리되므로 그 실행 후 인스턴스가 생성되지 않는다. 40f-1이 호출되어 실행되면 40t9-1이 생성되어 제1대기열(251)에 삽입되고, 40t9-1이 실행되면 종료(401)에 대한 인스턴스가 생성되어 제1대기열(251)에 삽입되며, 종료(401)에 대한 인스턴스가 실행되면 도 6a의 프로세스에 대한 시뮬레이션은 종료된다.Since 40t8-3 is called and treated as a success in execution, 40f-1 is generated and inserted into the first queue 251. 40t7-4 and 408-4 are called sequentially and treated as a failure at run time, so no instance is created after that. When 40f-1 is called and executed, 40t9-1 is generated and inserted into the first queue 251. When 40t9-1 is executed, an instance for the end 401 is generated and inserted into the first queue 251. The simulation for the process of FIG. 6A ends when the instance for termination 401 is executed.

도 6a는 본 발명에 따른 업무프로세스관리시스템의 시뮬레이션을 위한 교차루프 타입 2를 포함하는 작업흐름 프로세스의 일실시예이다. 도 7a의 프로세스에서 루프구간은 50B, 50T3, 50C, 50T4, 50D, 50T5, 50T6, 50E, 50T7, 50T8 이며 교차 지점은 50C 이다. 또한 이 프로세스는 50D, 50T5, 50B에 해당하는 중첩 루프를 가지고 있다.6A is an embodiment of a workflow process including a cross-loop type 2 for simulation of a business process management system in accordance with the present invention. The loop sections in the process of FIG. 7A are 50B, 50T3, 50C, 50T4, 50D, 50T5, 50T6, 50E, 50T7, 50T8 and the intersection point is 50C. The process also has nested loops corresponding to 50D, 50T5, and 50B.

기타의 가정은 앞서 도 1에 대한 본 발명의 시뮬레이션의 경우와 동일하다. 이하에서는 도 7b, 도 7c, 도5d, 도 7e, 도 7f의 표를 이용하여 도 7a의 프로세스에 대한 본 발명의 시뮬레이션을 설명하도록 한다.Other assumptions are the same as in the case of the simulation of the present invention with respect to FIG. Hereinafter, the simulation of the present invention for the process of FIG. 7A will be described using the tables of FIGS. 7B, 7C, 5D, 7E, and 7F.

도 7b에서 시작(500)에 대한 인스턴스가 생성되어 제1대기열(251)에 삽입되고, 시작(500)에 대한 인스턴스가 실행되면 50t1-1이 생성되어 제1대기열(251)에 삽입된다. 50t1-1이 실행되면 50a-1이 생성되어 제1대기열(251)에 삽입되고, 50a-1이 실행되면 50t2-1이 생성되어 제1대기열(251)에 삽입된다.In FIG. 7B, an instance for the start 500 is generated and inserted into the first queue 251. When an instance for the start 500 is executed, 50t1-1 is generated and inserted into the first queue 251. When 50t1-1 is executed, 50a-1 is generated and inserted into the first queue 251. When 50a-1 is executed, 50t2-1 is generated and inserted into the first queue 251.

50t2-1이 실행되면 생성모듈(211)은 OR 조인 활동인 50B에 대한 인스턴스 50b-1을 생성한다. 50b-1의 경우 아직 50B에 대한 복수의 입력 전이인 50T2, 50T5, 50T8 에 대한 인스턴스가 모두 실행된 것이 아니므로 삽입모듈(215)은 50b-1을 제2대기열(253)에 삽입한다.When 50t2-1 is executed, the generation module 211 generates an instance 50b-1 for 50B, which is an OR join activity. In the case of 50b-1, since all instances of 50T2, 50T5, and 50T8, which are multiple input transitions for 50B, are not yet executed, the insertion module 215 inserts 50b-1 into the second queue 253.

실행모듈(217)은 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 제2대기열(253)에 삽입되어 있는 50b-1을 호출하여 실행한다. 50b-1이 실행되면 50t3-1이 생성되어 제1대기열(251)에 삽입된다. The execution module 217 calls and executes 50b-1 inserted into the second queue 253 since there is no instance inserted into the first queue 251. When 50b-1 is executed, 50t3-1 is generated and inserted into the first queue 251.

50t3-1이 실행되면 생성모듈(211)은 OR 조인 활동 50C에 대한 인스턴스 50c-1을 생성한다. 50C에 대한 입력 전이인 50T3와 50T7에 대한 인스턴스가 모두 실행된 것은 아니므로 삽입모듈(215)은 50c-1을 제2대기열(253)에 삽입한다. 실행모듈은 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하므로 제2대기열(253)에 삽입되어 있는 인스턴스 50c-1을 호출하여 실행한다.When 50t3-1 is executed, the generation module 211 generates an instance 50c-1 for the OR join activity 50C. Since not all instances of 50T3 and 50T7, which are input transitions to 50C, have been executed, the insertion module 215 inserts 50c-1 into the second queue 253. The execution module calls and executes the instance 50c-1 inserted into the second queue 253 since the instance inserted into the first queue 251 does not exist.

50c-1이 실행되면 50t4-1이 생성되어 제1대기열(251)에 삽입된다. 50t4-1이 실행되면 50d-1이 생성되어 제1대기열(251)에 삽입된다. 50d-1이 실행되면 50t5-1 과 50t6-1이 생성되어 제1대기열(251)에 삽입된다. When 50c-1 is executed, 50t4-1 is generated and inserted into the first queue 251. When 50t4-1 is executed, 50d-1 is generated and inserted into the first queue 251. When 50d-1 is executed, 50t5-1 and 50t6-1 are generated and inserted into the first queue 251.

도 7c에서 50t5-1이 실행되면 생성모듈(211)은 50B에 대한 두 번째 인스턴스인 50b-2를 생성한다. 50B에 대한 복수개의 입력 전이 가운데 50T8에 대한 인스턴스가 실행되지 않았으므로 삽입모듈(215)은 50b-2를 제2대기열(253)에 삽입한다.When 50t5-1 is executed in FIG. 7C, the generation module 211 generates 50b-2, which is the second instance of 50B. Since the instance for 50T8 has not been executed among the plurality of input transitions for 50B, the insertion module 215 inserts 50b-2 into the second queue 253.

실행모듈(217)은 제1대기열(251)에 삽입되어 있는 인스턴스 50t6-1이 존재하므로 제2대기열(253)에 삽입되어 있는 50b-2에 우선하여 50t6-1을 호출하여 실행한다. 50t6-1이 실행되면 50e-1이 생성되어 제1대기열(251)에 삽입된다.Since the execution module 217 has an instance 50t6-1 inserted into the first queue 251, the execution module 217 calls 50t6-1 prior to 50b-2 inserted into the second queue 253 and executes it. When 50t6-1 is executed, 50e-1 is generated and inserted into the first queue 251.

50e-1이 호출되어 실행되면 50t7-1, 50t8-1, 50t9-1이 생성되어 제1대기열(251)에 삽입된다. 50t7-1이 실행되면 생성모듈은 50C에 대한 두 번째 인스턴스 50c-2를 생성한다. 50C에 대한 복수의 인스턴스가 모두 실행되었고 50C는 OR 조인 활동이므로 삽입모듈(215)은 50c-2를 제1대기열(251)에 삽입한다.When 50e-1 is called and executed, 50t7-1, 50t8-1, and 50t9-1 are generated and inserted into the first queue 251. When 50t7-1 is executed, the generation module creates a second instance 50c-2 for 50C. Since a plurality of instances for 50C have all been executed and 50C is an OR join activity, the insertion module 215 inserts 50c-2 into the first queue 251.

50t8-1이 실행되면 50B에 대한 인스턴스 50b-2가 제2대기열(253)에 삽입되어 있으므로 생성모듈(211)은 50B에 대한 별도의 인스턴스를 생성하지 않는다. 50B에 대한 복수의 인스턴스가 모두 실행되었고 50B는 OR 조인 활동이므로 삽입모듈(215)은 50b-2를 제2대기열(253)에서 호출하여 제1대기열(251)에 삽입한다.When 50t8-1 is executed, since the instance 50b-2 for 50B is inserted into the second queue 253, the generation module 211 does not generate a separate instance for 50B. Since a plurality of instances for 50B have all been executed and 50B is an OR join activity, the insertion module 215 calls 50b-2 from the second queue 253 and inserts 50b-2 into the first queue 251.

도 7c에서 50t9-1은 실행시 실패로 처리된다. 50c-2가 실행되면 50t4-2가 생성되어 제1대기열(251)에 삽입된다. 50b-2가 실행되면 50t3-2가 생성되어 제1대기열(251)에 삽입된다.In Fig. 7C, 50t9-1 is treated as a failure in execution. When 50c-2 is executed, 50t4-2 is generated and inserted into the first queue 251. When 50b-2 is executed, 50t3-2 is generated and inserted into the first queue 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)에 삽입된다.When 50t4-2 and 50t3-2 are executed sequentially, 50d-2 and 50c-3 are sequentially generated and inserted into the first queue 251. When 50d-2 is executed, 50t5-2 and 50t6-2 are generated and inserted into the first queue 251. When 50c3-2 is executed, 50t4-3 is generated and inserted into the first queue 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)에 삽입된다.In Fig. 7D, 50t5-2 is treated as a failure in execution. When 50t6-2 is executed and processed as success, 50e-2 is generated and inserted into the first queue 251. When 50t4-3 and 50e-2 are executed sequentially, 50d-3, 50t8-2, and 50t9-2 are sequentially generated and inserted into the first queue 251. When 50d-3 is executed, 50t5-3 and 50t6- are executed. 3 are sequentially generated and inserted into the first queue 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)에 삽입된다.In FIGS. 7D and 7E, 50t7-2 and 50t8-2 are treated as failures in execution. When 50t9-2 is executed and processed as success, 50f-1 is generated and inserted into the first queue 251. 50t5-3 is treated as a failure when executed. When 50t6-3 and 50f-1 are executed sequentially and processed as success, 50t-3-3 and 50t10-1 are sequentially generated and inserted into the first queue 251.

50e-3이 실행되면 50t7-3, 50t8-3, 50t9-3이 생성되어 제1대기열(251)에 삽입된다. 50t10-1이 실행되면 종료(501) 활동에 대한 인스턴스가 생성되어 제1대기열(251)에 삽입된다. 도 7e와 도 7f에서 50t7-3 및 도 70t8-3은 실행시 실패로 처리된다. When 50e-3 is executed, 50t7-3, 50t8-3, and 50t9-3 are generated and inserted into the first queue 251. When 50t10-1 is executed, an instance of the end 501 activity is created and inserted into the first queue 251. In FIGS. 7E and 7F, 50t7-3 and 70t8-3 are treated as failures in execution.

50t9-3이 실행되면 50f-2가 생성되어 제1대기열(251)에 삽입된다. 종료(501)에 대한 인스턴스가 실행되면 도 7a의 프로세스에 대한 본 발명의 업무프로세스관리시스템의 시뮬레이션이 종료된다.When 50t9-3 is executed, 50f-2 is generated and inserted into the first queue 251. When the instance for termination 501 is executed, the simulation of the business process management system of the present invention for the process of FIG. 7A ends.

이상의 시뮬레이션에서 나타난 바와 같이 본 발명에 따른 업무프로세스관리시스템은 도 1, 도 5a, 도 6a 및 도 7a 등의 복잡한 프로세스에서도 기존의 루프카 운트를 이용한 기존의 방식에서와 달리 무한 루프에 빠지지 않으며 프로세스의 처리시 예상 밖의 결과가 도출됨이 없이 의도했던 바 대로 프로세스가 처리되었다.As shown in the above simulation, the business process management system according to the present invention does not fall into an infinite loop unlike a conventional method using a conventional loop count even in a complicated process such as FIGS. 1, 5A, 6A, and 7A. The process was processed as intended, with no unexpected results in the processing of.

도 8은 본 발명에 따른 일실시예의 처리 흐름도이다. 이하에서는 본 발명의 일실시예에 따른 업무프로세스관리방법의 특징을 설명하도록 한다.8 is a process flow diagram of one embodiment according to the present invention. Hereinafter will be described the features of the work process management method according to an embodiment of the present invention.

생성모듈(211)은 생성될 인스턴스가 이미 생성되어 있는 경우 그 인스턴스와 동일한 인스턴스를 다시 생성하지 않기 위해 생성할 작업에 대한 인스턴스가 제2대기열(253)에 삽입되어 있는지 판단한다(601). 이를 위해 생성모듈(211)은 생성될 인스턴스가 인스턴스테이블(230)에 이미 생성된 것으로 기록되어 있는지를 참조한다.If an instance to be created is already created, the generation module 211 determines whether an instance of a job to be created is inserted into the second queue 253 in order not to recreate the same instance as the instance (601). To this end, the generation module 211 refers to whether an instance to be created is recorded as being already created in the instance table 230.

생성할 인스턴스가 제2대기열(253)에 삽입되어 있지 않은 경우 생성모듈(211)은 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업에 대한 인스턴스를 생성한다(603). When the instance to be generated is not inserted into the second queue 253, the generation module 211 generates an instance of a job representing one activity or a transition performed according to a business process (603).

생성할 인스턴스가 상기 제2대기열(253)에 삽입되어 있는 경우 생성모듈(211)은 별도의 인스턴스를 생성하지 않으며 삽입모듈(215)은 제2대기열(253)에 삽입되어 있는 인스턴스를 호출한다(605).When an instance to be created is inserted into the second queue 253, the generation module 211 does not create a separate instance, and the insertion module 215 calls an instance inserted into the second queue 253 ( 605).

기록모듈(213)은 제1대기열(251) 또는 제2대기열(253)에 삽입될 인스턴스를 기록하는 테이블인 인스턴스테이블(230)에, 삽입될 인스턴스가 식별정보에 의해 구별되도록 기록한다(607). 이를 통해 생성모듈(211)이 인스턴스테이블(230)을 참조하여 이미 생성되어 있는 인스턴스와 동일한 인스턴스를 다시 생성하지 않도록 한다.The recording module 213 records in the instance table 230, which is a table for recording the instance to be inserted into the first queue 251 or the second queue 253, so that the instances to be inserted are distinguished by the identification information (607). . In this way, the generation module 211 does not re-create the same instance as the already created instance with reference to the instance table 230.

본 발명에서 인스턴스는 식별정보에 의해 호출될 수 있으며, 식별정보는 하나의 프로세스에서 하나의 작업에 대해 생성된 인스턴스의 개수에 관한 정보를 포함한다.In the present invention, the instance may be called by the identification information, which includes information about the number of instances created for one job in one process.

삽입모듈(215)은 생성모듈(211)에 의해 생성된 인스턴스 가운데 소정의 조건을 만족시키는 인스턴스가 존재하는지 판단한다(609). 제2대기열(253)에 삽입되어 있어 별도로 동일한 인스턴스가 생성되지 않고 삽입모듈(215)에 의해 호출된 인스턴스도 제2대기열(253)에 삽입되기 이전에 생성모듈(211)에 의해 생성되었으므로 생성모듈(211)에 의해 생성된 인스턴스에 포함된다.The insertion module 215 determines whether there is an instance satisfying a predetermined condition among the instances generated by the generation module 211 (609). Since the same instance is not created separately because it is inserted into the second queue 253 and the instance called by the insertion module 215 is also generated by the generation module 211 before being inserted into the second queue 253, the generation module It is included in the instance created by 211.

삽입모듈(215)은 생성모듈(211)에 의해 생성된 인스턴스 가운데 소정의 조건을 만족시키는 인스턴스를 제2대기열(253)에 삽입하고(611), 생성모듈(211)에 의해 생성된 인스턴스 가운데 소정의 조건을 만족시키지 못하는 인스턴스를 제1대기열(251)에 삽입한다(613).The insertion module 215 inserts an instance satisfying a predetermined condition among the instances generated by the generation module 211 into the second queue 253 (611), and selects an instance among the instances generated by the generation module 211. An instance that does not satisfy the condition is inserted into the first queue 251 (613).

이 경우 생성모듈(211)에 의해 생성된 인스턴스가 활동에 입력되는 복수개의 전이 가운데 일부 전이에 대한 인스턴스가 실행되지 않은 활동에 대한 인스턴스이거나, 인스턴스가 활동에 입력되는 복수개의 전이에 대한 인스턴스가 모두 실행되었고 복수개의 전이에 대한 인스턴스의 값이 모두 참인 것이 아닌 활동에 대한 인스턴스인 경우에, 삽입모듈(215)은 생성모듈(211)에 의해 생성된 인스턴스를 제2대기열(253)에 삽입하며, 제2대기열(253)에 삽입되지 않는 나머지 인스턴스를 제1대기열(251)에 삽입할 수 있다.In this case, the instance generated by the generation module 211 is an instance of an activity for which some of the transitions input into the activity are not executed, or an instance of a plurality of transitions in which the instance is input into the activity. In the case where it is executed and the values of the instances for the plurality of transitions are not all true, the insertion module 215 inserts the instance generated by the generation module 211 into the second queue 253, The remaining instances that are not inserted into the second queue 253 may be inserted into the first queue 251.

실행모듈(217)은 제1대기열(251)에 삽입되어 있는 인스턴스가 존재하는지 판 단하여(615), 제1대기열(251)에 삽입되어 있는 인스턴스가 존재하는 경우 이를 호출하고, 제1대기열(251)에 삽입되어 있는 인스턴스가 부존재하는 경우 제2대기열(253)에 삽입되어 있는 인스턴스를 호출한다(619). 실행모듈(217)은 이렇게 제1대기열(251) 또는 제2대기열(253)에서 호출된 인스턴스를 실행한다(621).The execution module 217 determines whether there is an instance inserted into the first queue 251 (615), and if there is an instance inserted into the first queue 251, calls it and calls the first queue ( If the instance inserted into the second queue 253 does not exist, the instance inserted into the second queue 253 is called (619). The execution module 217 executes the instance called in the first queue 251 or the second queue 253 as described above (621).

실행모듈(617)이 실행한 인스턴스가 종료 활동에 대한 인스턴스인 경우에는 업무프로세스가 종료하지만 그렇지 않은 경우에는 실행모듈(617)이 실행한 인스턴스의 실행 결과가 성공으로 처리되는지를 판단하게 된다(625). If the instance executed by the execution module 617 is an instance for the end activity, the business process terminates. Otherwise, it is determined whether the execution result of the instance executed by the execution module 617 is treated as success (625). ).

인스턴스의 실행 결과가 성공으로 처리된다면 생성모듈(211)은 인스턴스를 생성할지 여부를 다시 판단하게 되고 이후 삽입모듈(215)은 인스턴스를 제1대기열(251) 또는 제2대기열(253)에 삽입하지만, 실패로 처리된다면 이러한 과정 없이 실행모듈(217)은 제1대기열(251) 또는 제2대기열(253)에 삽입되어 있는 인스턴스를 호출하여 실행한다.If the execution result of the instance is treated as a success, the generation module 211 re-determines whether or not to create an instance, and then the insertion module 215 inserts the instance into the first queue 251 or the second queue 253. If not, the execution module 217 calls and executes an instance inserted into the first queue 251 or the second queue 253 without this process.

본 발명의 상기 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는, ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The method of the present invention can also be embodied in computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, which are also implemented in the form of a carrier wave (for example, transmission over the Internet). It also includes. The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이상에서 실시예를 통해 설명한 본 발명의 기술적 범위는 상기 기재된 실시예에 한정되는 것은 아니고 본 발명의 사상 및 범위를 벗어나지 않는 범위에서 다양하게 수정 및 변형될 수 있음은 본 발명이 속한 기술 분야에서 통상의 지식을 가진 자에게 명백하다. 따라서 그러한 변형예 또는 수정예들은 본 발명의 특허청구범위에 기재된 발명의 범위에 속한다 해야 할 것이다.The technical scope of the present invention described above through the embodiments is not limited to the above-described embodiments, and various modifications and changes may be made without departing from the spirit and scope of the present invention. It is evident to those who have knowledge. Therefore, such modifications or variations will have to be belong to the scope of the invention described in the claims of the present invention.

도 1은 시뮬레이션을 위한 작업흐름 프로세스의 일실시예.1 is an embodiment of a workflow process for simulation.

도 2a, 도 2b, 도 2c 및 도 2d는 도 1의 프로세스의 일실시예에 대한 종래의 기술의 시뮬레이션 과정을 나타낸 도표. 2A, 2B, 2C, and 2D are diagrams illustrating a prior art simulation process for one embodiment of the process of FIG.

도 3a, 도 3b 및 도 3c는 도 1의 프로세스의 일실시예에 대한 본 발명의 시뮬레이션 과정을 나타낸 도표.3A, 3B and 3C are diagrams illustrating a simulation process of the present invention for one embodiment of the process of FIG.

도 4는 본 발명에 따른 업무프로세스관리시스템의 구성을 도시한 블록도.Figure 4 is a block diagram showing the configuration of a business process management system according to the present invention.

도 5a는 시뮬레이션을 위한 작업흐름 프로세스의 일실시예.5A illustrates one embodiment of a workflow process for simulation.

도 5b 및 도 5c는 도 5a의 프로세스의 일실시예에 대한 본 발명의 시뮬레이션 과정을 나타낸 도표.5B and 5C are diagrams illustrating a simulation process of the present invention for one embodiment of the process of FIG. 5A.

도 6a는 시뮬레이션을 위한 작업흐름 프로세스의 일실시예.6A illustrates one embodiment of a workflow process for simulation.

도 6b, 도 6c, 도 6d, 도 6e 및 도 6f는 도 6a의 프로세스의 일실시예에 대한 본 발명의 시뮬레이션 과정을 나타낸 도표.6B, 6C, 6D, 6E, and 6F are diagrams illustrating a simulation process of the present invention for one embodiment of the process of FIG. 6A.

도 7a는 시뮬레이션을 위한 작업흐름 프로세스의 일실시예.7A illustrates one embodiment of a workflow process for simulation.

도 7b, 도 7c, 도 7d, 도 7e 및 도 7f는 도 7a의 프로세스의 일실시예에 대한 본 발명의 시뮬레이션 과정을 나타낸 도표.7B, 7C, 7D, 7E and 7F are diagrams illustrating a simulation process of the present invention for one embodiment of the process of FIG. 7A.

도 8은 본 발명에 따른 일실시예의 처리 흐름도.8 is a process flow diagram of one embodiment according to the present invention.

Claims (9)

업무 프로세스(Business Process)의 논리적인 업무 단계를 의미하는 활동(Activity) 및 상기 업무의 흐름을 위해 상기 활동을 연결하는 논리적인 연결선인 전이(Transition)를 포함하는 업무 프로세스를 자동으로 관리하는 방법에 있어서,A method for automatically managing a business process including an activity representing a logical business step of a business process and a transition, a logical connection line connecting the activities for the flow of the work. In 상기 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업(Work)에 대한 인스턴스(instance)를 생성하는 생성모듈이 상기 작업(Work)에 대한 인스턴스(instance)를 생성하는 단계;Generating an instance of the work by a generation module that generates an instance of a work representing one activity or a transition performed according to the business process; 상기 생성된 인스턴스를 제1대기열(Queue) 또는 제2대기열(Queue)에 삽입하는 삽입모듈이 상기 생성된 인스턴스 가운데 상기 인스턴스의 상태 및 상기 인스턴스에 관련된 작업의 종류에 따라 상기 인스턴스를 분류하기 위해 설정된 조건을 만족시키는 인스턴스를 제2대기열(Queue)에 삽입하는 단계; An insertion module for inserting the created instance into a first queue or a second queue is configured to classify the instance according to the state of the created instance and the type of a task related to the instance. Inserting an instance satisfying the condition into a second queue; 상기 삽입모듈이 상기 생성된 인스턴스 가운데 상기 설정된 조건을 만족시키지 못하는 인스턴스를 제1대기열에 삽입하는 단계;Inserting, by the insertion module, an instance which does not satisfy the set condition among the generated instances into a first queue; 상기 인스턴스를 호출하여 실행시키는 실행모듈이 상기 제1대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 단계; 및Calling and executing an instance inserted into the first queue by an execution module calling and executing the instance; And 상기 실행모듈이 상기 제1대기열에 삽입되어 있는 인스턴스가 부존재하는 경우 상기 제2대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 단계;를 포함하는 것을 특징으로 하는 업무프로세스관리방법.And executing, by the execution module, calling and executing an instance inserted into the second queue when the instance inserted into the first queue does not exist. 제1항에 있어서, 상기 인스턴스를 제2대기열에 삽입하는 단계는The method of claim 1, wherein inserting the instance into a second queue comprises: 상기 생성된 인스턴스가 상기 활동에 입력되는 복수개의 전이 가운데 일부 전이에 대한 인스턴스가 실행되지 않은 활동에 대한 인스턴스이거나, The generated instance is an instance of an activity in which an instance of some of the plurality of transitions input to the activity is not executed, 상기 인스턴스가 상기 활동에 입력되는 복수개의 전이에 대한 인스턴스가 모두 실행되었고 상기 복수개의 전이의 인스턴스의 값이 모두 참인 경우에 실행되도록 설정된 활동에 대한 인스턴스인데 상기 복수개의 전이에 대한 인스턴스가 모두 실행되었으나 상기 복수개의 전이에 대한 인스턴스의 값이 모두 참인 것이 아닌 경우에 상기 삽입모듈이 상기 생성된 인스턴스를 상기 제2대기열에 삽입하는 것을 특징으로 하는 업무프로세스관리방법.The instance is an instance of an activity set to be executed when all instances of a plurality of transitions input to the activity have been executed and the values of the instances of the plurality of transitions are all true, but all the instances of the plurality of transitions have been executed. And when the values of the instances for the plurality of transitions are not all true, the insertion module inserts the generated instances into the second queue. 제1항에 있어서, 상기 인스턴스를 제1대기열에 삽입하는 단계는 The method of claim 1, wherein inserting the instance into the first queue comprises: 상기 제1대기열에 삽입된 인스턴스를 호출하여 실행한 결과 생성할 인스턴스가 상기 제2대기열에 삽입되어 있는 경우 상기 삽입모듈이 상기 제2대기열에 삽입되어 있는 인스턴스를 호출하여 상기 제1대기열에 삽입하는 것을 특징으로 하는 업무프로세스관리방법.If the instance to be created as a result of calling and executing the instance inserted into the first queue is inserted into the second queue, the insertion module calls the instance inserted into the second queue and inserts the instance into the first queue. Business process management method characterized in that. 제1항에 있어서, 상기 업무프로세스관리방법은The method of claim 1, wherein the business process management method 상기 제1대기열 또는 제2대기열에 삽입될 인스턴스를 기록하는 테이블인 인스턴스테이블(Instance Table)에 상기 삽입될 인스턴스를 식별정보에 의해 구별되도록 기록하는 단계;를 더 포함하고, 상기 인스턴스는 상기 식별정보에 의해 호출될 수 있으며, 상기 식별정보는 상기 하나의 프로세스에서 상기 하나의 작업에 대해 생성된 인스턴스의 개수에 관한 정보를 포함하는 것을 특징으로 하는 업무프로세스관리방법.And recording the instance to be inserted by the identification information into an instance table, which is a table for recording the instance to be inserted into the first queue or the second queue, by the identification information. And the identification information includes information regarding the number of instances created for the one job in the one process. 제1항 내지 제4항 중 어느 한 항에 기재된 업무프로세스관리방법을 실현시키 기 위한 프로그램을 수록한 기록매체.A recording medium which contains a program for realizing the business process management method according to any one of claims 1 to 4. 업무 프로세스(Business Process)의 논리적인 업무 단계를 의미하는 활동(Activity) 및 상기 업무의 흐름을 위해 상기 활동을 연결하는 논리적인 연결선인 전이(Transition)를 포함하는 업무 프로세스를 자동으로 관리하는 시스템에 있어서,System that automatically manages business processes including activities that represent the logical business stages of the business process and transitions, which are logical connections that connect the activities for the flow of the business. In 상기 업무 프로세스에 따라 수행되는 하나의 활동 또는 전이를 의미하는 작업(Work)에 대한 인스턴스(instance)를 생성하는 생성모듈;A generation module for generating an instance of a work representing an activity or a transition performed according to the business process; 상기 생성된 인스턴스 가운데 상기 인스턴스의 상태 및 상기 인스턴스에 관련된 작업의 종류에 따라 상기 인스턴스를 분류하기 위해 설정된 조건을 만족시키는 인스턴스를 제2대기열에 삽입하고, 상기 생성된 인스턴스 가운데 상기 설정된 조건을 만족시키지 못하는 인스턴스를 제1대기열에 삽입하는 삽입모듈; 및 Among the created instances, an instance satisfying a condition set for classifying the instance according to the state of the instance and a type of a task related to the instance is inserted into a second queue, and the set condition is not satisfied among the created instances. An insertion module for inserting an unsuccessful instance into the first queue; And 상기 제1대기열에 삽입되어 있는 인스턴스가 존재하는 경우에는 상기 제1대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키고, 상기 제1대기열에 삽입되어 있는 인스턴스가 부존재하는 경우 상기 제2대기열에 삽입되어 있는 인스턴스를 호출하여 실행시키는 실행모듈;을 포함하는 것을 특징으로 하는 업무프로세스관리시스템.If there is an instance inserted into the first queue, the instance inserted into the first queue is called and executed. If there is no instance inserted into the first queue, the instance is inserted into the second queue. Execution module for calling and executing the instance; Business process management system comprising a. 제6항에 있어서, 상기 삽입모듈은 The method of claim 6, wherein the insertion module 상기 생성된 인스턴스가 상기 활동에 입력되는 복수개의 전이 가운데 일부 전이에 대한 인스턴스가 실행되지 않은 활동에 대한 인스턴스이거나, The generated instance is an instance of an activity in which an instance of some of the plurality of transitions input to the activity is not executed, 상기 인스턴스가 상기 활동에 입력되는 복수개의 전이에 대한 인스턴스가 모두 실행되었고 상기 복수개의 전이의 인스턴스의 값이 모두 참인 경우에 실행되도록 설정된 활동에 대한 인스턴스인데 상기 복수개의 전이에 대한 인스턴스가 모두 실행되었으나 상기 복수개의 전이에 대한 인스턴스의 값이 모두 참인 것이 아닌 경우에 상기 생성된 인스턴스를 상기 제2대기열에 삽입하는 것을 특징으로 하는 업무프로세스관리시스템.The instance is an instance of an activity set to be executed when all instances of a plurality of transitions input to the activity have been executed and the values of the instances of the plurality of transitions are all true, but all the instances of the plurality of transitions have been executed. And inserting the created instance into the second queue when the values of the instances for the plurality of transitions are not all true. 제6항에 있어서, 상기 삽입모듈은The method of claim 6, wherein the insertion module 상기 제1대기열에 삽입된 인스턴스를 호출하여 실행한 결과 생성할 인스턴스가 상기 제2대기열에 삽입되어 있는 경우 상기 제2대기열에 삽입되어 있는 인스턴스를 호출하여 상기 제1대기열에 삽입하는 것을 특징으로 하는 업무프로세스관리시스템.If an instance to be generated as a result of calling and executing the instance inserted into the first queue is inserted into the second queue, the instance inserted into the second queue is called and inserted into the first queue. Work Process Management System. 제6항에 있어서, 상기 업무프로세스관리시스템은The method of claim 6, wherein the business process management system 상기 제1대기열 또는 제2대기열에 삽입될 인스턴스를 기록하는 테이블인 인스턴스테이블(Instance Table)에 상기 삽입될 인스턴스를 식별정보에 의해 구별되도록 기록하는 기록모듈;을 더 포함하고, 상기 인스턴스는 상기 식별정보에 의해 호출될 수 있으며, 상기 식별정보는 상기 하나의 프로세스에서 상기 하나의 작업에 대해 생성된 인스턴스의 개수에 관한 정보를 포함하는 것을 특징으로 하는 업무프로세스관리시스템.And a recording module for recording the instance to be inserted to be distinguished by the identification information into an instance table, which is a table for recording the instance to be inserted into the first queue or the second queue. And the identification information includes information on the number of instances created for the one job in the one process.
KR1020070067197A 2007-07-04 2007-07-04 Method and system for business process managemnet KR100807355B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070067197A KR100807355B1 (en) 2007-07-04 2007-07-04 Method and system for business process managemnet
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 (en) 2007-07-04 2007-07-04 Method and system for business process managemnet

Publications (1)

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

Family

ID=39383332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070067197A KR100807355B1 (en) 2007-07-04 2007-07-04 Method and system for business process managemnet

Country Status (2)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101950397B1 (en) 2018-01-11 2019-02-20 주식회사 피앤피소프트 Method for providing business management system by sharing business information between users
KR102258163B1 (en) 2020-08-31 2021-05-27 주식회사 케이비손해보험 Method, System and Apparatus of Cooperation Service Provision for Hierarchical Organizational Structure
WO2024014600A1 (en) * 2022-07-13 2024-01-18 쿠팡 주식회사 Instance management method, and electronic device therefor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030086250A (en) * 2001-01-09 2003-11-07 비아코어, 인코포레이티드 Method and apparatus for facilitating business processes
KR20040035674A (en) * 2001-07-06 2004-04-29 컴퓨터 어소시에이츠 싱크, 인코포레이티드 Business process policy object
KR20040043367A (en) * 2002-11-18 2004-05-24 한국전자통신연구원 Method for processing business processes using workflow technique
KR20060091501A (en) * 2005-02-15 2006-08-21 부산대학교 산학협력단 Method of business management and supply chain management using work flow engine

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100289058B1 (en) * 1998-11-20 2001-05-02 정선종 Process definition and control method of workflow management system
AU4927301A (en) * 2000-03-22 2001-10-03 Webmethods Inc 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 (en) * 2000-07-13 2002-01-31 Suntory Ltd Business managing system, work flow processor and work flow messenger

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030086250A (en) * 2001-01-09 2003-11-07 비아코어, 인코포레이티드 Method and apparatus for facilitating business processes
KR20040035674A (en) * 2001-07-06 2004-04-29 컴퓨터 어소시에이츠 싱크, 인코포레이티드 Business process policy object
KR20040043367A (en) * 2002-11-18 2004-05-24 한국전자통신연구원 Method for processing business processes using workflow technique
KR20060091501A (en) * 2005-02-15 2006-08-21 부산대학교 산학협력단 Method of business management and supply chain management using work flow engine

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101950397B1 (en) 2018-01-11 2019-02-20 주식회사 피앤피소프트 Method for providing business management system by sharing business information between users
KR102258163B1 (en) 2020-08-31 2021-05-27 주식회사 케이비손해보험 Method, System and Apparatus of Cooperation Service Provision for Hierarchical Organizational Structure
WO2024014600A1 (en) * 2022-07-13 2024-01-18 쿠팡 주식회사 Instance management method, and electronic device therefor

Also Published As

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

Similar Documents

Publication Publication Date Title
CN100458705C (en) Method and system for scheduling computer jobs employing dynamically determined top job party
CN102508716B (en) Task control device and task control method
US8392926B2 (en) Scheduling heterogeneous partitioned resources with sharing constraints
US8434085B2 (en) Scalable scheduling of tasks in heterogeneous systems
TW200401529A (en) System and method for the allocation of grid computing workload to network workstations
JP4041002B2 (en) Database update processing system, update data input method for database update, update data processing method, and program
US9052972B2 (en) Determining the processing order of a plurality of events
US7681196B2 (en) Providing optimal number of threads to applications performing multi-tasking using threads
US8627327B2 (en) Thread classification suspension
KR100807355B1 (en) Method and system for business process managemnet
US20170236085A1 (en) Information processing apparatus and method for managing connections
CN108810125A (en) The service discovery method and system of physical node
CN115907683A (en) Realization system and method of workflow engine based on financial product management
US8806490B1 (en) Method and apparatus for managing workflow failures by retrying child and parent elements
CA2631255A1 (en) Scalable scheduling of tasks in heterogeneous systems
CN112364005A (en) Data synchronization method and device, computer equipment and storage medium
US20220229692A1 (en) Method and device for data task scheduling, storage medium, and scheduling tool
CN115756765A (en) Distributed transaction processing method and device
CN117112121A (en) Distributed task processing system, method, apparatus and computer program product
US20080126036A1 (en) System and method for scheduling token arrival in a business process simulation
CN113010278A (en) Batch processing method and system for financial insurance core system
CN110597686B (en) Noise-tolerant process mining method based on mixed event log
JP4611397B2 (en) Exclusive execution control device and exclusive execution control program
CN117172518A (en) Asynchronous analysis method and system based on activity workflow
Sirjani et al. Timed Actors and Their Formal Verification

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130219

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140212

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150213

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160205

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170210

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190219

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200212

Year of fee payment: 13