WO2009005181A1 - Method and system for business process management - Google Patents
Method and system for business process management Download PDFInfo
- Publication number
- WO2009005181A1 WO2009005181A1 PCT/KR2007/003603 KR2007003603W WO2009005181A1 WO 2009005181 A1 WO2009005181 A1 WO 2009005181A1 KR 2007003603 W KR2007003603 W KR 2007003603W WO 2009005181 A1 WO2009005181 A1 WO 2009005181A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- instance
- queue
- generated
- executed
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Definitions
- the present invention relates to a method and system for business process management (BPM), and more particularly, to a method and system for BPM by which a business process, including an activity indicating a logical business step and a transition indicating a logical connection line connecting activities for workflow, is automatically managed, the method including: generating an instance for a work which is one activity or transition performed according to a business process; inserting the generated instance into a first or second queue according to a predetermined condition; and calling and executing the instance inserted into the first or second queue.
- BPM business process management
- the BPM system is a software system capable of designing, executing, monitoring, and analyzing business processes in a predetermined organization, thereby integrating existing computer systems with the business processes.
- the workflow process is a process of an automated business performed according to defined rules.
- FIG. 1 is a diagram illustrating an example of a workflow process for a simulation according to conventional technology.
- An activity is one logical work step in the structure of a process. These activities include a start activity meaning the start of a process and an end activity meaning the end of a process.
- a transition is a logical connection line connecting each work.
- a work is one activity or one transition performed according to a business process.
- a loop transition is a predetermined transition included in a loop interval.
- a loop interval of a process is determined in a process of designing the process.
- a loop count is a number which increases by 1 whenever a loop interval is passed in the case where a process including a loop is processed.
- a process is composed of a plurality of activities and transitions connecting the activities.
- a transition may not call an activity according to a condition.
- the transition may be processed as a kind of work.
- a loop interval is determined in a stage of designing a process including a loop.
- a predetermined transition included in a loop interval is set as a loop transition.
- instances are generated. The generated instances are inserted into a queue, and then, according to a first-in first-out (FIFO) method, the instances are called from the queue and executed.
- FIFO first-in first-out
- an instance is an individual element of the set. That is, an instance indicates an object included in a predetermined class in object oriented programming (OOP).
- OOP object oriented programming
- An instance is generated by allocating a memory space of a memory device such as a memory unit, in relation to the instance.
- a memory device such as a memory unit
- An instance is generated by allocating a memory space of a memory device such as a memory unit, in relation to the instance.
- a class named as a list is defined, and then, if an object named as my list is generated, part of a memory device is allocated to the object and an instance of the class is generated.
- a queue is a data structure in which a plurality of data items are arranged in a predetermined order. Unlike a stack, the queue is designed such that only insertion is possible at one end of the queue and only output and deletion are possible at the other end of the queue.
- an instance generated in relation to each work has its own unique identification information.
- the identification information may be determined such that an identification (ID) can be assigned to an instance for each work. According to this identification information, each instance can be identified and called.
- Instances for all works inherit the loop counts of the previous instances in relation to identical works.
- a loop count increases by 1 whenever a loop transition is passed.
- the initial value of a loop count is set as 1.
- unique identification information and a loop count of each generated instance are recorded. If the work of an instance is successfully processed, an instance for a next work connected to the successful work is generated.
- loop intervals are 10B, 10T4, 10C and 10T5.
- a process including an AND join activity 10D which is positioned after the loop interval but is connected to an activity 10A before the loop interval through a transition 10T3, is simulated.
- Works of a business process include a join activity.
- the join activity is an activity in which the number of transitions input to the activity is plural.
- Join activities include an OR join and an AND join.
- the AND join activity is an activity that can be executed when a plurality of input transitions have been executed and the values of the plurality of transitions are all true.
- the OR join activity is an activity that can be executed when one or more transitions with values being true have been executed among a plurality of input transitions.
- the transition 10T5 is a loop transition. Instances for all works inherit loop counts. Whenever an instance for the loop transition 10T5 is executed, the loop count increases by 1.
- the proceeding and result of the simulation are written in the tables illustrated in FIGS. 2 through 5.
- Instances for all works except the activities for start 100 and end 101 are expressed and identified by identification information, including a work name and a loop count.
- the identification information for each instance in the tables illustrated in FIGS. 2 through 5 shows a loop count inherited by the instance and the work name of the instance is written in lowercase letters.
- an instance for an activity 10A having the loop count of 1 is expressed as 10a-1.
- An instance for a transition 10T2 having the loop count of 4 is expressed as 10t2-4.
- each of instances for all activities is treated as a success when the instance is executed.
- An instance for a transition may be treated as a failure in order to end a loop. The success and failure of a transition are determined arbitrarily in the current simulation. If an instance for an end activity 101 is executed, the process finishes.
- FIG. 2 In relation to instances shown in tables of FIGS. 2 through 5, a classification table for an instance for a work treated as a success when executed, an instance for a conditionally waiting work, and an instance for a work treated as a failure when executed are shown in FIG. 2.
- a simulation process according to the conventional technology in relation to the process illustrated in FIG. 1 will now be explained with reference to tables of FIGS. 2 through 5.
- 10a-1 which is an instance for an activity 10A connected to 10T1 is generated, inserted into the queue, and executed.
- instances 10t2-1 and 10t3-1 for two transitions 10T2 and 10T3 output from 10A are generated and inserted into the queue.
- 10t2-1 which is first generated and inserted is first executed before 10t3-1 .
- an instance 10b-1 for the activity 10B connected to 10T2 is generated and inserted into the queue.
- 10t3-1 is executed and an instance 10d-1 for an AND join activity 10D receiving an input from 10T3 is generated and inserted into the queue.
- instance 10t4-1 for a transition 10T4 is generated and inserted into the queue.
- 10d-1 which is executed thereafter is an instance for the AND join activity 10D
- the inputs of two transitions 10T6 and 10T3 are all required.
- 10t3-1 which is the current instance for 10T3
- the instance for 10T6 has not been executed yet. Accordingly, 10d-1 is treated as being in a "waiting" state, and is again inserted into the queue.
- 10t4-1 is executed and an instance 10c-1 for 10C is generated and inserted into the queue.
- the process thereafter is illustrated in FIG. 3. Since an instance for 10T6 has not been executed yet, 10d-1 is treated as being in a waiting state, and is again inserted into the queue.
- 10t6-1 when executed, 10t6-1 is treated as a failure. This means that according to execution of 10t6-1 , an instance for an activity 10D connected to 10T6 is no generated or executed. Accordingly, since 10t6-1 is treated as a failure and cannot receive an input from 10T6, 10d-1 is treated as being in a waiting state and is inserted into the queue.
- 10b-2 is executed and 10t4-2, which inherits the loop count of 2, is generated and inserted into the queue.
- 10d-1 is again treated as being in a waiting state, and inserted into the queue. The process thereafter is illustrated in FIG. 4.
- 10t4-2 is executed and as a result, 10c-2 is generated and inserted into the queue.
- 10d-1 is treated as being in a waiting state and inserted into the queue. If 10c-2 is executed, instances 10t5-2 and 10t6-2 for transitions 10T5 and 10T6 output from 10C are sequentially generated and inserted into the queue.
- 10d-1 is treated as being in a waiting state and inserted into the queue.
- 10t5-2 is treated as a failure in FIG. 4. Accordingly, an instance for 10B is not generated.
- 10t6-2 is treated as a success, and an instance 10d-2 which inherits the loop count from 10t6-2 is generated and inserted into the queue.
- 10d-1 and 10d-2 have identification information that is different from each other, because the loop counts 1 and 2 are different. Accordingly, both10d-1 and 10d-2 are recognized as different instances, and as illustrated in FIG. 4, in addition to the existing instance 10d-1 , a new instance 10d-2 is generated and inserted into the queue.
- FIG. 1 is a diagram illustrating an example of a workflow process for a simulation according to conventional technology
- FIGS. 2 through 5 are diagrams illustrating a simulation process of the example process illustrated in FIG. 1 according to conventional technology
- FIGS. 6 through 8 are diagrams illustrating a simulation process of the example process illustrated in FIG. 1 according to an embodiment of the present invention
- FIG. 9 is a block diagram illustrating a structure of a business process management system according to an embodiment of the present invention.
- FIG. 10 is a diagram illustrating a workflow process for a simulation according to an embodiment of the present invention.
- FIGS. 11 and 12 are diagrams illustrating a simulation process of the embodiment of the process illustrated in FIG. 10 according to an embodiment of the present invention
- FIG. 13 is a diagram illustrating a workflow process for a simulation according to an embodiment of the present invention
- FIGS. 14 through 18 are diagrams illustrating a simulation process of the embodiment of the process illustrated in FIG. 13 according to an embodiment of the present invention
- FIG. 19 is a diagram illustrating a workflow process for a simulation according to an embodiment of the present invention.
- FIGS. 20 through 24 are diagrams illustrating a simulation process of the embodiment of the process illustrated in FIG. 19 according to an embodiment of the present invention.
- FIG. 25 is a flowchart illustrating a business process management method according to an embodiment of the present invention.
- the present invention provides a method of and system for managing a business process by using two queues without using a loop count in a complicated process including a loop.
- a method of automatically managing a business process including an activity which is a logical business step and a transition which is a logical connection line connecting the activities for the flow of the business, the method including: generating an instance for a work which is one activity or transition performed according to the business process; inserting an instance satisfying a predetermined condition from among generated instances, into a second queue; inserting an instance not satisfying the predetermined condition from among the generated instances, into a first queue; calling and executing an instance inserted into the first queue; and if there is no instance inserted into the first queue, calling and executing an instance inserted into the second queue.
- ADVANTAGEOUS EFFECTS ADVANTAGEOUS EFFECTS
- the process even when a complicated process is performed, a case where during execution of the process the process falls into an infinite loop and cannot be executed further does not occur, unlike the conventional method using a loop count. Also, when performing a process, the process is performed as intended without causing any unexpected results in the process design stage.
- FIG. 9 is a block diagram illustrating a structure of a business process management (BPM) system according to an embodiment of the present invention.
- BPM business process management
- the BPM system 210 includes a generation module 211 , an insertion module 215, an execution module 217, and a recording module 213.
- the BPM system 210 is logically or electrically connected to an instance table 230 or a queue 250.
- the queue 250 includes a first queue 251 and a second queue 253.
- the BPM system 210 relates to a system for automatically managing a business process including an activity meaning a logical business step of a business process and a transition which is a logical connection line connecting activities for a workflow.
- an activity is one logical work step in the structure of a process. These activities include a start activity meaning the start of a process and an end activity meaning the end of a process.
- a transition is a logical connection line connecting each work.
- a work means one activity or one transition performed according to a business process.
- the generation module 211 generates an instance for a work. Examples of a work and an instance will now be explained. It is assumed that in a settlement process of a predetermined company, a work for performing a job of transmitting an electronic document from a department A to a department B is included.
- a first instance for the work will be generated.
- the work is different from the work for transmitting the first electronic document, and therefore a second instance will be generated.
- the first electronic document which has already been sent once is to be transmitted again from the department A to the department B
- the work is different from the first instance in terms of the number of times of transmission, and therefore a new instance separate from the first instance will be generated.
- the insertion module 215 inserts an instance satisfying a predetermined condition from among generated instances, into the second queue 253.
- the insertion module 215 inserts an instance not satisfying the predetermined condition from among generated instances, into the first queue 251.
- the execution module 217 calls and executes the instance inserted into the first queue 251. If no instance inserted into the first queue 251 exists, the execution module 251 calls and executes an instance inserted into the second queue 253.
- the queue 250 of the BPM system includes the first queue 251 and the second queue 253.
- the first queue 251 is a queue into which an instance not satisfying the 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 with a priority over an instance inserted into the second queue 253.
- the second queue 253 is a queue into which an instance satisfying the predetermined condition is inserted by the insertion module 215.
- the instance inserted into the second queue 253 is called and executed by the execution module 217 when no instance inserted into the first queue 251 exists.
- a generated instance is for an activity in which any instances for a plurality of transitions input to the activity have not been executed, or the generated instance is for an activity in which all instances for a plurality of transitions input to the activity have been executed and the values of the instances for the plurality of transitions are not all true, then, the insertion module 215 inserts the generated instance into the second queue 253, and can insert remaining instances that are not inserted into the second queue 253, into the first queue 251.
- Join activities include OR join activities and AND join activities.
- the AND join activity is an activity that can be executed when a plurality of input transitions have been executed and the values of the plurality of transitions are all true.
- the OR join activity is an activity that can be executed when one or more transitions with values being true have been executed among a plurality of input transitions.
- the insertion module 215 inserts an instance for an OR join activity or AND join activity in which any instances for a plurality of input transitions have not been executed, into the second queue 253. Also, the insertion module 215 inserts an instance for an AND join activity in which though all the instances for a plurality of input transitions have been executed, false values exist among the instance values for the input transitions, to the second queue 253. The remaining instances for works excluding the above two cases are inserted into the first queue 251 by the insertion module 215.
- the generation module 211 does not generate an instance identical to the instance, and the insertion module 215 can call and insert the instance which has already been generated and inserted into the second queue 253, into the first queue 251.
- the generation module 211 refers to the instance table 230 in order to determine whether or not an instance desired to be generated has already been generated and inserted into a queue.
- the instance table 230 is a table in which an instance which is to be generated by the generation module 211 and inserted into the first queue 251 or the second queue 253 by the insertion module 215 is recorded. That is, if an instance to be generated is recorded in the instance table as having already been generated, the generation module 211 does not generate again an instance identical to the already generated instance.
- the recording module 213 records an instance to be inserted into the instance table 230 so that each instance can be distinguished by identification information assigned to the instance. Each instance can be called by this identification information. According to the conventional technology, each instance is assigned a loop count and inherits a previous loop count. However, in the present invention, this loop count is not assigned to each instance.
- instances are inserted into two queues according to a predetermined condition.
- identification information assigned to each instance includes information on the number of instances generated in relation to one work in one process.
- identification information of an instance which is generated for the first time in relation to 10B which is an OR join activity in the process illustrated in FIG. 1 can be expressed as 10b-1
- identification information of an instance which is generated for the second time in relation to 10B can be expressed as 10b-2.
- '-1 ' and '-2' are information on the number of instances which are generated in relation to one work in one process.
- Classification of an instance for a work treated as a success when executed, an instance for a conditionally waiting work, and an instance for a work treated as a failure when executed is as illustrated in the classification table included in FIG. 2.
- the generation module 211 generates an instance for a start 100, and the insertion module 215 inserts the generated instance into the first queue 251.
- the execution module 215 calls and executes the instance for the start 100 inserted into the first queue 251 .
- the generation module 21 1 generates an instance 10t1-1 for a transition
- 10T1 output from the start 100 and the insertion module 215 inserts 10t-1 into the first queue 251. Then, the execution module 217 calls and executes 10t-1. If 10t-1 is executed, 10a-1 is generated and inserted into the first queue 251. If 10a-1 is executed, instances 10t2-1 and 10t-3 for 10T2 and 10T3 output from 10A are generated and inserted into the first queue 251.
- an instance 10b-1 for 10B is generated.
- the activity 10B is an OR join activity to which a plurality of transitions are input. Since only an instance for 10T2 has been executed and an instance for 10T5 has not been executed at that time, the insertion module 215 inserts 10b-1 into the second queue 253.
- an instance 10d-1 for 10D is generated.
- the activity 10D is an AND join activity to which a plurality of transitions are input. Since only an instance for 10T3 has been executed and an instance for 10T6 has not been executed at that time, the insertion module 215 inserts 10d-1 into the second queue 253.
- the execution module 217 calls and executes 10b-1 inserted into the second queue 253. If 10b-1 is executed, 10t4-1 is generated and inserted into the first queue 251.
- 10t4-1 is executed, 10c-1 is generated and inserted into the first queue 251.
- 10d-1 inserted into the second queue 253 is not executed, because the instance 10t4-1 exists in the first queue 251.
- 1015-1 and 10t6-1 are generated and inserted into the first queue 251.
- 10t5-1 is first called and executed, and 10b-2 is generated. Since 10b-2 is an instance which is generated in 10B for the second time, the identification information of the instance 10b-2 includes the information '-2'. Since 10B is an OR join activity and both instances for 10T2 and 10T5 that are transitions input to 10B have been executed, the insertion module 215 inserts 10b-2 into the first queue 251.
- 10t6-1 when 10t6-1 is called and executed, 10t6-1 is treated as a failure as in the simulation according to the conventional technology described above. If 10b-2 is called and executed, 10t4-2 is generated and inserted into the first queue 251 and if 10t4-2 is called and executed, 10c-2 is generated and inserted into the first queue 251.
- 10t5-2 and 10t6-2 are generated and inserted into the first queue 251.
- the instance 10t5-2 is called and executed, and then, is treated as a failure.
- the execution module 217 executes 10t6-2, an instance for 10D should be generated.
- the generation module 211 does not generate a separate instance.
- 10D is an AND join activity. Since both instances for two input instances 10T6 and 10T3 have been executed, and the values of the instances are all true, the insertion module 215 calls 10d-1 and inserted 10d-1 into the first queue 251.
- the execution module 217 calls and executes 10d-1. As a result, 10t7-1 is generated and inserted into the first queue 251. If 10t7-1 is called and executed, an instance for an end activity 101 is generated and inserted into the first queue 251. If the instance for the end activity 101 is called and executed, the process is finished. According to the BPM system of the present invention as described above, the process can be smoothly and stably performed without the process falling into an infinite loop unlike the conventional method using a loop count.
- FIG. 10 is a diagram illustrating a workflow process including a single loop for a simulation of a BPM system according to an embodiment of the present invention.
- Loop intervals in FIG. 10 are 3OB, 30T3, 3OC, and 30T4.
- Other assumptions are the same as those in the simulation of the present invention related to FIG. 1.
- a simulation of the present invention for the process illustrated in FIG. 10 will now be explained with reference to tables of FIGS. 11 and 12.
- the generation module 211 generates an instance for a start activity 300, and the insertion module 215 inserts the start activity 300 into the first queue 251. If the execution module 217 calls and executes the instance for the start activity 300, an instance 30t1-1 for an output transition 30T1 is generated and inserted into the first queue 251.
- 30t1-1 is called and executed, 30a-1 is generated and inserted into the first queue 251. If 30a-1 is called and executed, 30t2-1 is generated and inserted into the first queue 251. If 30t2-1 is called and executed, the generation module 211 generates an instance 30b-1 for an activity 3OB which is an OR join activity. Since an instance for 30T4 among a plurality of transitions input to 3OB has not been executed yet, the insertion module 215 inserts 30b-1 into the second queue 253. In this case, since no instance inserted into the first queue 251 exists, the execution module 217 calls and executes 30b-1 inserted into the second queue 253. Since 3OB is an OR join activity, even though only one among the instances for a plurality of input transitions has been executed and the value is true, the execution result is treated as a success.
- 3OB is an OR join activity
- 30t3-1 is generated and inserted into the first queue 251. If 30t3-1 is called and executed, 30c-1 is generated and inserted into the first queue 251. If 30c-1 is called and executed, 30t4-1 and 30t5-1 are generated and inserted into the first queue 251.
- 30t4-1 is called and executed, this corresponds to a case where an instance for 3OB is generated for the second time, and therefore the generation module 211 generates 30b-2. Since all instances for a plurality of transitions input to the OR join activity 3OB have been executed, the insertion module 215 inserts 30b-2 into the first queue 251.
- 30t5-1 is treated as a failure when executed. If 30b-2 is called and executed, 30t3-2 is generated and inserted into the first queue 251. If 30t3-2 is generated, 30c-2 is generated and inserted into the first queue 251. If 30c-2 is called and executed, 30t4-2 and 30t5-2 are generated and inserted into the first queue 251.
- 30t4-2 When 30t4-2 is called and executed, 30t4-2 is treated as a failure. If 30t5-2 is called and executed, 30d-1 is generated and inserted into the first queue 251. If 30d-1 is called and executed, 30t6-1 is generated and inserted into the first queue 251.
- FIG. 13 is a diagram illustrating a workflow process including a crossing loop type 1 for a simulation of a BPM system according to an embodiment of the present invention.
- loop intervals include 4OB, 40T3, 4OC, 40T4, 4OD, 40T5, 40T6, 4OE, and 40T7, and a crossing point is 4OC.
- Other assumptions are the same as those in the simulation of the present invention related to FIG. 1.
- the generation module 211 generates an instance for a start activity 400, and the insertion module 215 inserts the start activity 400 into the first queue 251. If the execution module 217 calls and executes the instance for the start activity 400, an instance 40t1-1 for an output transition 40T1 of the start activity 400 is generated and inserted into the first queue 251.
- 40t1-1 is called and executed, 40a-1 is generated and inserted into the first queue 251. If 40a-1 is called and executed, 40t2-1 is generated and inserted into the first queue 251.
- the generation module 211 If 40t2-1 is called and executed, the generation module 211 generates 40b-1. Since 40B is an OR join activity and an instance for 40T5 among a plurality of input transitions has not been executed yet, the insertion module 215 inserts 40b-1 into the second queue 253. In this case, since no instance inserted into the first queue 251 exists, the execution module 217 calls and executes 40b-1 inserted into the second queue 253.
- 40t3-1 is generated and inserted into the first queue 251. If 40t3-1 is called and executed, 40c-1 is generated. Since an instance for 40T7 among a plurality of transitions input to an OR join activity 4OC has not been executed, the insertion module 215 inserts 40c-1 into the second queue 253. In this case, since no instance has been inserted into the first queue 251 , the execution module 217 calls and executes 40c-1 inserted into the second queue 253.
- 40t4-1 is generated and inserted into the first queue 251. If 40t4-1 is called and executed, 40d-1 is generated and inserted into the first queue 251. If 40d-1 is called and executed, 40t5-1 and 40t6-1 are generated and inserted into the first queue 251. If 40t5-1 is executed, the generation module 21 1 generates 40b-2 which is a second instance for 4OB. Since all the plurality of instances for 4OB have been executed and 4OB is an OR join activity, the insertion module 215 inserts 40b-2 into the first queue 251 . If 40t6-1 is called and executed, 40e-1 is generated and inserted into the first queue 251. If 40b-2 is called and executed, 40t3-2 is generated and inserted into the first queue 251. If 40e-1 is called and executed, 40t7-1 and 40t8-1 are generated and inserted into the first queue 251.
- the generation module 21 1 If 40t3-2 is called and executed, the generation module 21 1 generates 40c-2. Since an instance 40t7-1 for 40T7 among a plurality of transitions input to 40c-2 has not been executed yet, the insertion module 215 inserts 40c-2 into the second queue
- the generation module 211 does not generate a separate instance for 4OC. Since all the plurality of transitions input to 40c-2 have been executed, the insertion module 215 inserts
- 40t8-1 is treated as a failure when executed. If 40c-2 is called and executed, 40t4-2 is generated and inserted into the first queue 251. If 40t4-2 is called and executed, 40d-2 is generated and inserted into the first queue 251.
- 40e-2 is generated and inserted into the first queue 251. If 40b-3 is called and executed, 40t3-3 is generated and inserted into the first queue 251. If 40e-2 is called and executed, 40t7-2 and 40t8-2 are generated and inserted into the first queue 251 . If 40t3-3 is called and executed, 40c-3 is generated and inserted into the first queue 251. If 40t7-2 is called and executed,
- 40c-4 is generated and inserted into the first queue 251. Since 40t8-2 is treated as a failure as a result of execution in the simulation illustrated in FIG. 16, an instance for 4OF is not generated. If 40c-3 is called and executed, 40t4-3 is generated and inserted into the first queue 251. If 40c-4 is called and executed, 40t4-4 is generated and inserted into the first queue 251.
- 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. If 40d-3 and 40d-4 are sequentially called and executed, 40t5-3, 40t6-3, 40t5-4 and 40t6-4 are sequentially generated and inserted into the first queue 251.
- 40t5-3 is treated as a failure when executed, and therefore an instance for 4OB is not generated. Since 40t6-3 is treated as a success when it is called and executed, 40e-3 is generated and inserted into the first queue 251. Since 40t5-4 is also treated as a failure when executed, an instance for 40B is not generated. Since 40t6-4 is treated as a success when executed, 40e-4 is generated and inserted into the first queue 251 as illustrated in FIG. 18.
- 40t7-3, 40t8-3, 40t7-4 and 40t8-4 are sequentially generated and inserted into the first queue 251.
- 40t7-3 is treated as a failure, and therefore an instance for 4OC is not generated.
- FIG. 19 is a diagram illustrating a workflow process including a crossing loop type 2 for a simulation of a BPM system according to an embodiment of the present invention.
- loop intervals include 5OB, 50T3, 5OC, 50T4, 5OD, 50T5, 50T6, 5OE, 50T7, and 50T8, and a crossing point is 5OC.
- the process has an overlapping loop corresponding to 5OD, 50T5, and 5OB.
- Other assumptions are the same as those in the simulation of the present invention related to FIG. 1.
- a simulation of the present invention related to the process illustrated in FIG. 19 will now be explained with reference to tables illustrated in FIGS. 20 through 24.
- an instance for a start activity 500 is generated and inserted into the first queue 251. If the instance for the start activity 500 is executed, 50t1-1 is generated and inserted into the first queue 251. If 50t1-1 is executed, 50a-1 is generated and inserted into the first queue 251. If 50a-1 is executed, 50t2-1 is generated and inserted into the first queue 251.
- the generation module 211 If 50t2-1 is executed, the generation module 211 generates an instance 50b-1 for 5OB which is an OR join activity. In the case of 50b-1 , since all instances for 50T2, 50T5, and 50T8 that are a plurality of transitions input to 5OB have not bee executed yet, the insertion module 215 inserts 50b-1 into the second queue 253.
- the execution module 217 calls and executes 50b-1 inserted into the second queue 253. If 50b-1 is executed, 50t3-1 is generated and inserted into the first queue 251. If 50t3-1 is executed, the generation module 211 generates an instance 50c-1 for 5OC which is an OR join activity. Since the instances for 50T3 and 50T7 that are transitions input to 5OC have not all been executed, the insertion module 215 inserts 50c-1 into the second queue 253. Since no instance inserted into the first queue 251 exists, the execution module 217 calls and executes 50c-1 inserted into the second queue 253.
- 50t4-1 is generated and inserted into the first queue 251. If 50t4-1 is executed, 50d-1 is generated and inserted into the first queue 251. If 50d-1 is executed, 50t5-1 and 50t6-1 are generated and inserted into the first queue.
- the generation module 211 if 50t5-1 is executed, the generation module 211 generates 50b-2 which is the second instance for 5OB. Since an instance for 50T8 among a plurality of transitions input to 5OB has not been executed, the insertion module 215 inserts 50b-2 into the second queue 253.
- the execution module 217 calls and executes 50t6-1 with a priority over 50b-2 inserted into the second queue 253. If 50t6-1 is executed, 50e-1 is generated and inserted into the first queue 251. If 5Oe- 1 is called and executed, 50t7-1 , 50t8-1 , and 50t9-1 are generated and inserted into the first queue 251. If 50t7-1 is executed, the generation module 211 generates an instance 50c-2 which is the second instance for 5OC. Since all the plurality of instances for 5OC have been executed and 5OC is an OR join activity, the insertion module 215 inserts 50c-2 into the first queue 251.
- the generation module 211 does not generate a separate instance for 5OB. Since all the plurality of instances for 5OB have been executed and 5OB is an OR join activity, the insertion module 215 calls 50b-2 and inserts 50b-2 into the first queue 251.
- 50t9-1 is treated as a failure when executed. If 50c-2 is executed, 50t4-2 is generated and inserted into the first queue 251. If 50b-2 is executed, 50t3-2 is generated and inserted into the first queue 251.
- 50t4-2 and 50t3-2 are sequentially executed, 50d-2 and 50c-3 are sequentially generated and inserted into the first queue 251. If 50d-2 is executed, 50t5-2 and 50t6-2 are generated and inserted into the first queue 251. If 50c3-2 is executed, 50t4-3 is generated and inserted into the first queue 251.
- 50t5-2 is treated as a failure when executed. If 50t6-2 is executed and treated as a success, 50e-2 is generated and inserted into the first queue 251. If 50t4-3 and 50e-2 are sequentially executed, 50d-3, 50t8-2, and
- 50t9-2 are sequentially generated and inserted into the first queue 251. If 50d-3 is executed, 50t5-3 and 50t6-3 are sequentially generated and inserted into the first queue 251.
- 50t7-2 and 50t8-2 are treated as failures when executed. If 50t9-2 is executed and treated as a success, 50f-1 is generated and inserted into the first queue 251. When 50t5-3 is executed, 50t5-3 is executed as a failure. If 50t6-3 and 50f-1 are sequentially executed and treated as successes, 50e-3 and 50t10-1 are sequentially generated and inserted into the first queue 251.
- 50t7-3, 50t8-3, and 50t9-3 are generated and inserted into the first queue 251. If 50t10-1 is executed, an instance for an end activity 501 is generated and inserted into the first queue 251. In FIGS. 23 and 24, 50t7-3 and 50t8-3 are treated as failures when executed. If 50t9-3 is executed, 50f-2 is generated and inserted into the first queue 251 . If the instance for the end activity 501 is executed, the simulation of the BPM system of the present invention related to the process illustrated in FIG. 19 is finished.
- the BPM system according to the present invention does not fall into an infinite loop even in the complicated processes illustrated in FIGS. 1 , 10, 13, and 19, unlike the conventional method using the conventional loop count.
- the process is performed, it is done as intended without causing an unexpected result.
- FIG. 25 is a flowchart illustrating a BPM method according to an embodiment of the present invention. The characteristics of the BPM method according to the current embodiment will now be explained.
- the generation module 211 determines whether or not an instance for a work to be generated is inserted into the second queue 253 in operation 601. For this, the generation module 21 1 refers to the instance table 230 in order to determine whether or not the instance to be generated is recorded as having already been generated.
- the generation module 211 If the instance to be generated is not inserted into the second queue 253, the generation module 211 generates the instance for the work which is one activity or transition performed according to a business process in operation 603.
- the generation module 211 does not generate a separate instance, and calls the instance inserted into the second queue 253 in operation 605.
- the recording module 213 records the instance in the instance table which is a table for recording instances to be inserted into the first queue 251 or the second queue 253 so that the instance to be inserted can be distinguished by identification information in operation 607.
- the generation module 211 can refer to the instance table 230 so that an instance identical to an already generated instance cannot be generated again.
- an instance can be called by identification information, and the identification information includes information on the number of instances which are generated in relation to one work in one process.
- the insertion module 215 determines whether or not an instance satisfying a predetermined condition exists among instances generated by the generation module 211 in operation 609.
- the instance is also generated by the generation module 211 before being inserted into the second queue 253. Therefore, the instance is included in the instances generated by the generation module 211.
- the insertion module 215 inserts an instance satisfying a predetermined condition from among the instances generated by the generation module 211 , into the second queue 253 in operation 611.
- the insertion module 215 inserts an instance not satisfying the predetermined condition from among the instances generated by the generation module 211 , into the first queue 251 in operation 613.
- the insertion module 215 inserts the generated instance into the second queue 253, and can insert remaining instances that are not inserted into the second queue 253, into the first queue 251.
- the execution module 217 determines whether or not an instance inserted into the first queue 251 exists in operation 615. If an instance inserted into the first queue 251 exists, the execution module 217 calls the instance, and if no instance inserted into the first queue 251 exists, the execution module 217 calls an instance inserted into the second queue 253 in operation 619. The execution module 217 executes the instance thus called from the first queue 251 or the second queue 253 in operation 621.
- the instance executed by the execution module 217 is an instance for an end activity, the business process is finished, or else, it is determined whether or not the execution result by the execution module 217 of the instance is treated as a success in operation 625. If the execution result of the instance is treated as a success, the generation module 211 determines again whether or not to generate an instance, and then, the insertion module 215 inserts the instance into the first queue 251 or the second queue 253. If the execution result of the instance is treated as a failure, the execution module 217 without this process calls an instance inserted into the first queue 251 or the second queue 253.
- the present invention can also be embodied as computer readable codes on a computer readable recording medium.
- the computer readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, and carrier waves (such as data transmission through the Internet).
- ROM read-only memory
- RAM random-access memory
- CD-ROMs compact discs
- magnetic tapes magnetic tapes
- floppy disks optical data storage devices
- carrier waves such as data transmission through the Internet
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
A method and system for business process management (BPM) are provided. The method for BPM by which a business process, including an activity indicating a logical business step and a transition indicating a logical connection line connecting activities for workflow, is automatically managed, includes: generating an instance for a work which is one activity or transition performed according to a business process; inserting the generated instance into a first or second queue according to a predetermined condition; and calling and executing the instance inserted into the first or second queue.
Description
METHOD AND SYSTEM FOR BUSINESS PROCESS MANAGEMENT
TECHNICAL FIELD
The present invention relates to a method and system for business process management (BPM), and more particularly, to a method and system for BPM by which a business process, including an activity indicating a logical business step and a transition indicating a logical connection line connecting activities for workflow, is automatically managed, the method including: generating an instance for a work which is one activity or transition performed according to a business process; inserting the generated instance into a first or second queue according to a predetermined condition; and calling and executing the instance inserted into the first or second queue.
BACKGROUND ART
With the recent development of computer related technologies, corporations have been introducing business process management (BPM) systems. The BPM system is a software system capable of designing, executing, monitoring, and analyzing business processes in a predetermined organization, thereby integrating existing computer systems with the business processes.
If the BPM system is introduced, a variety of effects can be expected, including reducing a business transaction time in each company, decreasing probability of an occurrence of errors in work, and increasing productivity of business transactions, and therefore the number of corporations interested in the BPM system has been increasing.
In order to implement this BPM system, processing of a workflow process is required. The workflow process is a process of an automated business performed according to defined rules.
As the company environment becomes more complicated and the BPM system becomes more developed, the processing requirement of a complicated
workflow process increases. Among these complicated workflow processes, a necessity for a process including a loop to be processed increases in particular.
According to conventional technology, when the workflow process including a loop is processed, a loop processing method using a loop count is used in order to implement a BPM system. However, the conventional method using the loop count cannot implement and process a variety of loop processes. This is because when a complicated loop process is processed by the conventional method, errors occur in the process, including falling into an infinite loop, and unexpected results are obtained. FIG. 1 is a diagram illustrating an example of a workflow process for a simulation according to conventional technology. The problem of the conventional method will now be explained with an example of a simulation of a workflow process performed according to the conventional method using the conventional loop count with reference to FIG. 1. An activity is one logical work step in the structure of a process. These activities include a start activity meaning the start of a process and an end activity meaning the end of a process.
A transition is a logical connection line connecting each work. A work is one activity or one transition performed according to a business process. A loop transition is a predetermined transition included in a loop interval. A loop interval of a process is determined in a process of designing the process. A loop count is a number which increases by 1 whenever a loop interval is passed in the case where a process including a loop is processed.
Referring to FIG. 1 , a process is composed of a plurality of activities and transitions connecting the activities. A transition may not call an activity according to a condition. In order to determine the condition of the transition, the transition may be processed as a kind of work.
A loop interval is determined in a stage of designing a process including a loop. A predetermined transition included in a loop interval is set as a loop transition. In relation to a series of works, instances are generated. The generated instances are inserted into a queue, and then, according to a first-in first-out (FIFO) method, the instances are called from the queue and executed.
In general, in relation to a set an instance is an individual element of the set. That is, an instance indicates an object included in a predetermined class in object oriented programming (OOP).
An instance is generated by allocating a memory space of a memory device such as a memory unit, in relation to the instance. For example, a class named as a list is defined, and then, if an object named as my list is generated, part of a memory device is allocated to the object and an instance of the class is generated.
A queue is a data structure in which a plurality of data items are arranged in a predetermined order. Unlike a stack, the queue is designed such that only insertion is possible at one end of the queue and only output and deletion are possible at the other end of the queue.
In FIG. 1 , an instance generated in relation to each work has its own unique identification information. The identification information may be determined such that an identification (ID) can be assigned to an instance for each work. According to this identification information, each instance can be identified and called.
Instances for all works inherit the loop counts of the previous instances in relation to identical works. A loop count increases by 1 whenever a loop transition is passed. In the current simulation, the initial value of a loop count is set as 1. In an instance table, unique identification information and a loop count of each generated instance are recorded. If the work of an instance is successfully processed, an instance for a next work connected to the successful work is generated.
Before an instance for a work is generated, if an instance having the same unique identification information and loop count as those of the instance for the work to be generated are already recorded in the instance table, and inserted into a queue, the existing instance is called from the queue and executed without separately generating the instance.
In FIG. 1 , in the process being simulated, loop intervals are 10B, 10T4, 10C and 10T5. In FIG. 1 , a process, including an AND join activity 10D which is positioned after the loop interval but is connected to an activity 10A before the loop interval through a transition 10T3, is simulated.
Works of a business process include a join activity. The join activity is an activity in which the number of transitions input to the activity is plural. Join activities include an OR join and an AND join.
The AND join activity is an activity that can be executed when a plurality of input transitions have been executed and the values of the plurality of transitions are all true. The OR join activity is an activity that can be executed when one or more transitions with values being true have been executed among a plurality of input transitions.
In the simulation according to the conventional technology illustrated in FIG. 1 , the transition 10T5 is a loop transition. Instances for all works inherit loop counts. Whenever an instance for the loop transition 10T5 is executed, the loop count increases by 1.
The proceeding and result of the simulation are written in the tables illustrated in FIGS. 2 through 5. Instances for all works except the activities for start 100 and end 101 are expressed and identified by identification information, including a work name and a loop count. The identification information for each instance in the tables illustrated in FIGS. 2 through 5 shows a loop count inherited by the instance and the work name of the instance is written in lowercase letters.
For example, in the tables illustrated in FIGS. 2 through 5, an instance for an activity 10A having the loop count of 1 is expressed as 10a-1. An instance for a transition 10T2 having the loop count of 4 is expressed as 10t2-4.
In FIG. 1 , it is assumed that each of instances for all activities is treated as a success when the instance is executed. An instance for a transition may be treated as a failure in order to end a loop. The success and failure of a transition are determined arbitrarily in the current simulation. If an instance for an end activity 101 is executed, the process finishes.
In relation to instances shown in tables of FIGS. 2 through 5, a classification table for an instance for a work treated as a success when executed, an instance for a conditionally waiting work, and an instance for a work treated as a failure when executed are shown in FIG. 2.
A simulation process according to the conventional technology in relation to the process illustrated in FIG. 1 will now be explained with reference to tables of FIGS. 2 through 5.
Referring to FIG. 2, if the process begins, an instance for the start 100 is inserted into a queue and executed. As a result, 10t1 -1 which is an instance for a transition 10T1 connected to the start 100 is generated, inserted into the queue, and executed.
Then, 10a-1 which is an instance for an activity 10A connected to 10T1 is generated, inserted into the queue, and executed. Then, instances 10t2-1 and 10t3-1 for two transitions 10T2 and 10T3 output from 10A are generated and inserted into the queue.
According to the FIFO principle of the queue, 10t2-1 which is first generated and inserted is first executed before 10t3-1 . As a result, an instance 10b-1 for the activity 10B connected to 10T2 is generated and inserted into the queue. Then, 10t3-1 is executed and an instance 10d-1 for an AND join activity 10D receiving an input from 10T3 is generated and inserted into the queue. If 10b-1 is executed, instance 10t4-1 for a transition 10T4 is generated and inserted into the queue.
Since 10d-1 which is executed thereafter is an instance for the AND join activity 10D, the inputs of two transitions 10T6 and 10T3 are all required. However, although 10t3-1 , which is the current instance for 10T3, is executed, the instance for 10T6 has not been executed yet. Accordingly, 10d-1 is treated as being in a "waiting" state, and is again inserted into the queue.
Then, 10t4-1 is executed and an instance 10c-1 for 10C is generated and inserted into the queue. The process thereafter is illustrated in FIG. 3. Since an instance for 10T6 has not been executed yet, 10d-1 is treated as being in a waiting state, and is again inserted into the queue.
If 10c-1 is executed, instances 10t5-1 and 10t6-1 for two transitions 10T5 and 10T6 output from 10C are generated and inserted into the queue. 10d-1 is again treated as being in a waiting state, and inserted into the queue. If 10t5-1 is executed, an instance 10b-2 for 10B which is an activity receiving the input of 10T5, is generated and inserted into the queue. Since 10T5 is a loop transition as previously assumed, if an instance for 10T5 is executed, the loop count
increases by 1. Accordingly, the loop count of the instance for 1OB becomes 2 and the instance is expressed as 10b-2. Instances thereafter inherit the loop count 2 of 10b-2.
Referring to FIG. 3, when executed, 10t6-1 is treated as a failure. This means that according to execution of 10t6-1 , an instance for an activity 10D connected to 10T6 is no generated or executed. Accordingly, since 10t6-1 is treated as a failure and cannot receive an input from 10T6, 10d-1 is treated as being in a waiting state and is inserted into the queue.
Then, 10b-2 is executed and 10t4-2, which inherits the loop count of 2, is generated and inserted into the queue. 10d-1 is again treated as being in a waiting state, and inserted into the queue. The process thereafter is illustrated in FIG. 4.
Referring to FIG. 4, 10t4-2 is executed and as a result, 10c-2 is generated and inserted into the queue. 10d-1 is treated as being in a waiting state and inserted into the queue. If 10c-2 is executed, instances 10t5-2 and 10t6-2 for transitions 10T5 and 10T6 output from 10C are sequentially generated and inserted into the queue.
10d-1 is treated as being in a waiting state and inserted into the queue. 10t5-2 is treated as a failure in FIG. 4. Accordingly, an instance for 10B is not generated. 10t6-2 is treated as a success, and an instance 10d-2 which inherits the loop count from 10t6-2 is generated and inserted into the queue.
According to the conventional technology using the loop count as described above, before an instance for a work is generated, if an instance having the same unique identification information and loop count as those of the instance for the work to be generated are already recorded in an instance table, the existing instance is called from the queue and executed without separately generating the instance.
However, 10d-1 and 10d-2 have identification information that is different from each other, because the loop counts 1 and 2 are different. Accordingly, both10d-1 and 10d-2 are recognized as different instances, and as illustrated in FIG. 4, in addition to the existing instance 10d-1 , a new instance 10d-2 is generated and inserted into the queue.
In FIGS. 4 and 5, only when 10t3-1 and 10t6-1 are treated as successes, 10d-1 can be executed. However, in the current simulation, since 10t6-1 is treated
as a failure, 10d-1 is continuously treated as being in a waiting state. Only when 10t3-2 and 10t6-2 are treated as successes, can 10d-2 be executed. However, since 10t3-2 is not executed, 10d-2 is also continuously treated as being in a waiting state. Accordingly, in the process design when a complicated process including a loop is processed, the conventional method using the loop count can cause an unexpected result or the process may fall into an infinite loop and cannot be executed as a result of the current simulation described above.
DETAILED DESCRIPTION OF THE INVENTION
DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagram illustrating an example of a workflow process for a simulation according to conventional technology;
FIGS. 2 through 5 are diagrams illustrating a simulation process of the example process illustrated in FIG. 1 according to conventional technology;
FIGS. 6 through 8 are diagrams illustrating a simulation process of the example process illustrated in FIG. 1 according to an embodiment of the present invention;
FIG. 9 is a block diagram illustrating a structure of a business process management system according to an embodiment of the present invention;
FIG. 10 is a diagram illustrating a workflow process for a simulation according to an embodiment of the present invention;
FIGS. 11 and 12 are diagrams illustrating a simulation process of the embodiment of the process illustrated in FIG. 10 according to an embodiment of the present invention;
FIG. 13 is a diagram illustrating a workflow process for a simulation according to an embodiment of the present invention;
FIGS. 14 through 18 are diagrams illustrating a simulation process of the embodiment of the process illustrated in FIG. 13 according to an embodiment of the present invention;
FIG. 19 is a diagram illustrating a workflow process for a simulation according to an embodiment of the present invention;
FIGS. 20 through 24 are diagrams illustrating a simulation process of the embodiment of the process illustrated in FIG. 19 according to an embodiment of the present invention; and
FIG. 25 is a flowchart illustrating a business process management method according to an embodiment of the present invention.
TECHNICAL PROBLEM The present invention provides a method of and system for managing a business process by using two queues without using a loop count in a complicated process including a loop.
TECHNICAL SOLUTION
According to an aspect of the present invention, there is provided a method of automatically managing a business process including an activity which is a logical business step and a transition which is a logical connection line connecting the activities for the flow of the business, the method including: generating an instance for a work which is one activity or transition performed according to the business process; inserting an instance satisfying a predetermined condition from among generated instances, into a second queue; inserting an instance not satisfying the predetermined condition from among the generated instances, into a first queue; calling and executing an instance inserted into the first queue; and if there is no instance inserted into the first queue, calling and executing an instance inserted into the second queue.
ADVANTAGEOUS EFFECTS
According to the present invention, even when a complicated process is performed, a case where during execution of the process the process falls into an infinite loop and cannot be executed further does not occur, unlike the conventional method using a loop count. Also, when performing a process, the process is performed as intended without causing any unexpected results in the process design stage.
MODE OF THE INVENTION
FIG. 9 is a block diagram illustrating a structure of a business process management (BPM) system according to an embodiment of the present invention. The BPM system according to the present invention will now be explained with reference to FIG. 9.
As illustrated in FIG. 9, the BPM system 210 includes a generation module 211 , an insertion module 215, an execution module 217, and a recording module 213. The BPM system 210 is logically or electrically connected to an instance table 230 or a queue 250. The queue 250 includes a first queue 251 and a second queue 253.
The BPM system 210 according to the current embodiment relates to a system for automatically managing a business process including an activity meaning a logical business step of a business process and a transition which is a logical connection line connecting activities for a workflow.
Here, an activity is one logical work step in the structure of a process. These activities include a start activity meaning the start of a process and an end activity meaning the end of a process. A transition is a logical connection line connecting each work. A work means one activity or one transition performed according to a business process.
The generation module 211 generates an instance for a work. Examples of a work and an instance will now be explained. It is assumed that in a settlement process of a predetermined company, a work for performing a job of transmitting an electronic document from a department A to a department B is included.
In this case, when a job of first transmitting a first electronic document from the department A to the department B should be performed, a first instance for the work will be generated. In the case of a job of transmitting a second electronic document from the department A to the department B, the work is different from the work for transmitting the first electronic document, and therefore a second instance will be generated.
Also, when the first electronic document which has already been sent once is to be transmitted again from the department A to the department B, the work is different from the first instance in terms of the number of times of transmission, and therefore a new instance separate from the first instance will be generated. The insertion module 215 inserts an instance satisfying a predetermined condition from among generated instances, into the second queue 253. The insertion module 215 inserts an instance not satisfying the predetermined condition from among generated instances, into the first queue 251.
If an instance inserted into the first queue 251 exists, the execution module 217 calls and executes the instance inserted into the first queue 251. If no instance inserted into the first queue 251 exists, the execution module 251 calls and executes an instance inserted into the second queue 253.
Unlike the conventional technology using only one queue, the queue 250 of the BPM system according to the present invention includes the first queue 251 and the second queue 253.
The first queue 251 is a queue into which an instance not satisfying the 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 with a priority over an instance inserted into the second queue 253. The second queue 253 is a queue into which an instance satisfying the predetermined condition is inserted by the insertion module 215. The instance inserted into the second queue 253 is called and executed by the execution module 217 when no instance inserted into the first queue 251 exists.
Insertion by the insertion module 215 of an instance into the first queue 251 or the second queue 253 will now be explained.
If a generated instance is for an activity in which any instances for a plurality of transitions input to the activity have not been executed, or the generated instance is for an activity in which all instances for a plurality of transitions input to the activity have been executed and the values of the instances for the plurality of transitions are not all true, then, the insertion module 215 inserts the generated instance into the second queue 253, and can insert remaining instances that are not inserted into the second queue 253, into the first queue 251.
A case of applying the BPM system according to the present invention to the process illustrated in FIG. 1 will now be explained. Among a variety of activities illustrated in FIG. 1 , an activity to which a plurality of transitions are input is a join activity. Join activities include OR join activities and AND join activities. The AND join activity is an activity that can be executed when a plurality of input transitions have been executed and the values of the plurality of transitions are all true. The OR join activity is an activity that can be executed when one or more transitions with values being true have been executed among a plurality of input transitions. The insertion module 215 inserts an instance for an OR join activity or AND join activity in which any instances for a plurality of input transitions have not been executed, into the second queue 253. Also, the insertion module 215 inserts an instance for an AND join activity in which though all the instances for a plurality of input transitions have been executed, false values exist among the instance values for the input transitions, to the second queue 253. The remaining instances for works excluding the above two cases are inserted into the first queue 251 by the insertion module 215.
When an instance, which will be generated if the execution module 217 calls and executes an instance inserted into the first queue 251 , has already been generated and inserted into the second queue 253, the generation module 211 does not generate an instance identical to the instance, and the insertion module 215 can call and insert the instance which has already been generated and inserted into the second queue 253, into the first queue 251.
For this, the generation module 211 refers to the instance table 230 in order to determine whether or not an instance desired to be generated has already been generated and inserted into a queue. The instance table 230 is a table in which an instance which is to be generated by the generation module 211 and inserted into the first queue 251 or the second queue 253 by the insertion module 215 is recorded. That is, if an instance to be generated is recorded in the instance table as having already been generated, the generation module 211 does not generate again an instance identical to the already generated instance.
The recording module 213 records an instance to be inserted into the instance table 230 so that each instance can be distinguished by identification information assigned to the instance. Each instance can be called by this identification information. According to the conventional technology, each instance is assigned a loop count and inherits a previous loop count. However, in the present invention, this loop count is not assigned to each instance.
According to the present invention, instances are inserted into two queues according to a predetermined condition. Also, identification information assigned to each instance includes information on the number of instances generated in relation to one work in one process.
For example, identification information of an instance which is generated for the first time in relation to 10B which is an OR join activity in the process illustrated in FIG. 1 can be expressed as 10b-1 , and identification information of an instance which is generated for the second time in relation to 10B can be expressed as 10b-2. In this case, '-1 ' and '-2' are information on the number of instances which are generated in relation to one work in one process.
The proceeding process and result of a process for a case where a BPM system according to the present invention is applied to the process illustrated in FIG. 1 which cannot be finished by an infinite loop occurring when the conventional method using a loop count is used, will now be explained with reference to tables illustrated in FIGS. 6 through 8.
Classification of an instance for a work treated as a success when executed, an instance for a conditionally waiting work, and an instance for a work treated as a failure when executed is as illustrated in the classification table included in FIG. 2. Referring to FIG. 6, the generation module 211 generates an instance for a start 100, and the insertion module 215 inserts the generated instance into the first queue 251. The execution module 215 calls and executes the instance for the start 100 inserted into the first queue 251 . The generation module 21 1 generates an instance 10t1-1 for a transition
10T1 output from the start 100, and the insertion module 215 inserts 10t-1 into the first queue 251. Then, the execution module 217 calls and executes 10t-1.
If 10t-1 is executed, 10a-1 is generated and inserted into the first queue 251. If 10a-1 is executed, instances 10t2-1 and 10t-3 for 10T2 and 10T3 output from 10A are generated and inserted into the first queue 251.
If 10t2-1 which is first inserted is executed, an instance 10b-1 for 10B is generated. The activity 10B is an OR join activity to which a plurality of transitions are input. Since only an instance for 10T2 has been executed and an instance for 10T5 has not been executed at that time, the insertion module 215 inserts 10b-1 into the second queue 253.
If 10t-3 is executed, an instance 10d-1 for 10D is generated. The activity 10D is an AND join activity to which a plurality of transitions are input. Since only an instance for 10T3 has been executed and an instance for 10T6 has not been executed at that time, the insertion module 215 inserts 10d-1 into the second queue 253.
Since no instance inserted into the first queue 251 exists, the execution module 217 calls and executes 10b-1 inserted into the second queue 253. If 10b-1 is executed, 10t4-1 is generated and inserted into the first queue 251.
If 10t4-1 is executed, 10c-1 is generated and inserted into the first queue 251. In this case, when the execution module 217 calls and executes an instance, 10d-1 inserted into the second queue 253 is not executed, because the instance 10t4-1 exists in the first queue 251.
If 10c-1 is executed, 1015-1 and 10t6-1 are generated and inserted into the first queue 251. As illustrated in FIG. 7, according to the order in which an instance is generated and inserted into the first queue 251 , 10t5-1 is first called and executed, and 10b-2 is generated. Since 10b-2 is an instance which is generated in 10B for the second time, the identification information of the instance 10b-2 includes the information '-2'. Since 10B is an OR join activity and both instances for 10T2 and 10T5 that are transitions input to 10B have been executed, the insertion module 215 inserts 10b-2 into the first queue 251.
In FIG. 6, when 10t6-1 is called and executed, 10t6-1 is treated as a failure as in the simulation according to the conventional technology described above. If 10b-2 is called and executed, 10t4-2 is generated and inserted into the first queue
251 and if 10t4-2 is called and executed, 10c-2 is generated and inserted into the first queue 251.
If 10c-2 is called and executed, 10t5-2 and 10t6-2 are generated and inserted into the first queue 251. The instance 10t5-2 is called and executed, and then, is treated as a failure. If the execution module 217 executes 10t6-2, an instance for 10D should be generated. However, since 10d-1 is inserted into the second queue 253, the generation module 211 does not generate a separate instance. 10D is an AND join activity. Since both instances for two input instances 10T6 and 10T3 have been executed, and the values of the instances are all true, the insertion module 215 calls 10d-1 and inserted 10d-1 into the first queue 251.
The execution module 217 calls and executes 10d-1. As a result, 10t7-1 is generated and inserted into the first queue 251. If 10t7-1 is called and executed, an instance for an end activity 101 is generated and inserted into the first queue 251. If the instance for the end activity 101 is called and executed, the process is finished. According to the BPM system of the present invention as described above, the process can be smoothly and stably performed without the process falling into an infinite loop unlike the conventional method using a loop count.
FIG. 10 is a diagram illustrating a workflow process including a single loop for a simulation of a BPM system according to an embodiment of the present invention. Loop intervals in FIG. 10 are 3OB, 30T3, 3OC, and 30T4. Other assumptions are the same as those in the simulation of the present invention related to FIG. 1. A simulation of the present invention for the process illustrated in FIG. 10 will now be explained with reference to tables of FIGS. 11 and 12.
Referring to FIG. 11 , the generation module 211 generates an instance for a start activity 300, and the insertion module 215 inserts the start activity 300 into the first queue 251. If the execution module 217 calls and executes the instance for the start activity 300, an instance 30t1-1 for an output transition 30T1 is generated and inserted into the first queue 251.
If 30t1-1 is called and executed, 30a-1 is generated and inserted into the first queue 251. If 30a-1 is called and executed, 30t2-1 is generated and inserted into the first queue 251. If 30t2-1 is called and executed, the generation module 211 generates an instance 30b-1 for an activity 3OB which is an OR join activity.
Since an instance for 30T4 among a plurality of transitions input to 3OB has not been executed yet, the insertion module 215 inserts 30b-1 into the second queue 253. In this case, since no instance inserted into the first queue 251 exists, the execution module 217 calls and executes 30b-1 inserted into the second queue 253. Since 3OB is an OR join activity, even though only one among the instances for a plurality of input transitions has been executed and the value is true, the execution result is treated as a success.
If 30b-1 is executed, 30t3-1 is generated and inserted into the first queue 251. If 30t3-1 is called and executed, 30c-1 is generated and inserted into the first queue 251. If 30c-1 is called and executed, 30t4-1 and 30t5-1 are generated and inserted into the first queue 251.
If 30t4-1 is called and executed, this corresponds to a case where an instance for 3OB is generated for the second time, and therefore the generation module 211 generates 30b-2. Since all instances for a plurality of transitions input to the OR join activity 3OB have been executed, the insertion module 215 inserts 30b-2 into the first queue 251.
In FIG. 12, 30t5-1 is treated as a failure when executed. If 30b-2 is called and executed, 30t3-2 is generated and inserted into the first queue 251. If 30t3-2 is generated, 30c-2 is generated and inserted into the first queue 251. If 30c-2 is called and executed, 30t4-2 and 30t5-2 are generated and inserted into the first queue 251.
When 30t4-2 is called and executed, 30t4-2 is treated as a failure. If 30t5-2 is called and executed, 30d-1 is generated and inserted into the first queue 251. If 30d-1 is called and executed, 30t6-1 is generated and inserted into the first queue 251.
If 30t6-1 is called and executed, an instance for an end activity 301 is generated and inserted into the first queue 251 and if the instance for the end activity 301 is executed, the process illustrated in FIG. 10 is finished.
As described above, it can be determined that as a result of the simulation of the BPM system according to the present invention in relation to the process including the single loop illustrated in FIG. 10, the process is performed as predicted without an error.
FIG. 13 is a diagram illustrating a workflow process including a crossing loop type 1 for a simulation of a BPM system according to an embodiment of the present invention. In FIG. 13, loop intervals include 4OB, 40T3, 4OC, 40T4, 4OD, 40T5, 40T6, 4OE, and 40T7, and a crossing point is 4OC. Other assumptions are the same as those in the simulation of the present invention related to FIG. 1.
A simulation of the present invention for the process illustrated in FIG. 13 will now be explained with reference to tables illustrated in FIGS. 14 through 18.
In FIG. 14, the generation module 211 generates an instance for a start activity 400, and the insertion module 215 inserts the start activity 400 into the first queue 251. If the execution module 217 calls and executes the instance for the start activity 400, an instance 40t1-1 for an output transition 40T1 of the start activity 400 is generated and inserted into the first queue 251.
If 40t1-1 is called and executed, 40a-1 is generated and inserted into the first queue 251. If 40a-1 is called and executed, 40t2-1 is generated and inserted into the first queue 251.
If 40t2-1 is called and executed, the generation module 211 generates 40b-1. Since 40B is an OR join activity and an instance for 40T5 among a plurality of input transitions has not been executed yet, the insertion module 215 inserts 40b-1 into the second queue 253. In this case, since no instance inserted into the first queue 251 exists, the execution module 217 calls and executes 40b-1 inserted into the second queue 253.
If 40b-1 is executed, 40t3-1 is generated and inserted into the first queue 251. If 40t3-1 is called and executed, 40c-1 is generated. Since an instance for 40T7 among a plurality of transitions input to an OR join activity 4OC has not been executed, the insertion module 215 inserts 40c-1 into the second queue 253. In this case, since no instance has been inserted into the first queue 251 , the execution module 217 calls and executes 40c-1 inserted into the second queue 253.
If 40c- 1 is called and executed, 40t4-1 is generated and inserted into the first queue 251. If 40t4-1 is called and executed, 40d-1 is generated and inserted into the first queue 251. If 40d-1 is called and executed, 40t5-1 and 40t6-1 are generated and inserted into the first queue 251.
If 40t5-1 is executed, the generation module 21 1 generates 40b-2 which is a second instance for 4OB. Since all the plurality of instances for 4OB have been executed and 4OB is an OR join activity, the insertion module 215 inserts 40b-2 into the first queue 251 . If 40t6-1 is called and executed, 40e-1 is generated and inserted into the first queue 251. If 40b-2 is called and executed, 40t3-2 is generated and inserted into the first queue 251. If 40e-1 is called and executed, 40t7-1 and 40t8-1 are generated and inserted into the first queue 251.
If 40t3-2 is called and executed, the generation module 21 1 generates 40c-2. Since an instance 40t7-1 for 40T7 among a plurality of transitions input to 40c-2 has not been executed yet, the insertion module 215 inserts 40c-2 into the second queue
253.
If 40t7-1 is called and executed, since an instance for an OR join activity 4OC to which 40T7 is input is inserted into the second queue 253, the generation module 211 does not generate a separate instance for 4OC. Since all the plurality of transitions input to 40c-2 have been executed, the insertion module 215 inserts
40c-2 into the first queue 251.
In FIG. 15, 40t8-1 is treated as a failure when executed. If 40c-2 is called and executed, 40t4-2 is generated and inserted into the first queue 251. If 40t4-2 is called and executed, 40d-2 is generated and inserted into the first queue 251.
In FIG. 16, if 40d-2 is called and executed, 40t5-2 and 40t6-2 are generated and inserted into the first queue 251. If 40t5-2 is called and executed, 40b-3 is generated and inserted into the first queue 251. If 40t6-2 is called and executed,
40e-2 is generated and inserted into the first queue 251. If 40b-3 is called and executed, 40t3-3 is generated and inserted into the first queue 251. If 40e-2 is called and executed, 40t7-2 and 40t8-2 are generated and inserted into the first queue 251 . If 40t3-3 is called and executed, 40c-3 is generated and inserted into the first queue 251. If 40t7-2 is called and executed,
40c-4 is generated and inserted into the first queue 251. Since 40t8-2 is treated as a failure as a result of execution in the simulation illustrated in FIG. 16, an instance for 4OF is not generated. If 40c-3 is called and
executed, 40t4-3 is generated and inserted into the first queue 251. If 40c-4 is called and executed, 40t4-4 is generated and inserted into the first queue 251.
If 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. If 40d-3 and 40d-4 are sequentially called and executed, 40t5-3, 40t6-3, 40t5-4 and 40t6-4 are sequentially generated and inserted into the first queue 251.
In FIG. 17, 40t5-3 is treated as a failure when executed, and therefore an instance for 4OB is not generated. Since 40t6-3 is treated as a success when it is called and executed, 40e-3 is generated and inserted into the first queue 251. Since 40t5-4 is also treated as a failure when executed, an instance for 40B is not generated. Since 40t6-4 is treated as a success when executed, 40e-4 is generated and inserted into the first queue 251 as illustrated in FIG. 18.
If 40e-3 and 40e-4 are sequentially called and executed, 40t7-3, 40t8-3, 40t7-4 and 40t8-4 are sequentially generated and inserted into the first queue 251. In FIG. 18, when 40t7-3 is called and executed, 40t7-3 is treated as a failure, and therefore an instance for 4OC is not generated.
Since 40t8-3 is treated as a success when 40t8-3 is called and executed, 40f-1 is generated and inserted into the first queue 251. Since 40t7-4 and 40t8-4 are treated as failures when 40t7-4 and 40t8-4 are sequentially called and executed, an instance is not generated after the execution.
If 4Of- 1 is called and executed, 40t9-1 is generated and inserted into the first queue 251. If 40t9-1 is executed, an instance for an end activity 401 is generated and inserted into the first queue 251. If the instance for the end activity 401 is executed, the simulation for the process illustrated in FIG. 13 is finished. FIG. 19 is a diagram illustrating a workflow process including a crossing loop type 2 for a simulation of a BPM system according to an embodiment of the present invention. In the process illustrated in FIG. 19, loop intervals include 5OB, 50T3, 5OC, 50T4, 5OD, 50T5, 50T6, 5OE, 50T7, and 50T8, and a crossing point is 5OC. Also, the process has an overlapping loop corresponding to 5OD, 50T5, and 5OB. Other assumptions are the same as those in the simulation of the present invention related to FIG. 1.
A simulation of the present invention related to the process illustrated in FIG. 19 will now be explained with reference to tables illustrated in FIGS. 20 through 24.
In FIG. 20, an instance for a start activity 500 is generated and inserted into the first queue 251. If the instance for the start activity 500 is executed, 50t1-1 is generated and inserted into the first queue 251. If 50t1-1 is executed, 50a-1 is generated and inserted into the first queue 251. If 50a-1 is executed, 50t2-1 is generated and inserted into the first queue 251.
If 50t2-1 is executed, the generation module 211 generates an instance 50b-1 for 5OB which is an OR join activity. In the case of 50b-1 , since all instances for 50T2, 50T5, and 50T8 that are a plurality of transitions input to 5OB have not bee executed yet, the insertion module 215 inserts 50b-1 into the second queue 253.
Since no instance inserted into the first queue 251 exists, the execution module 217 calls and executes 50b-1 inserted into the second queue 253. If 50b-1 is executed, 50t3-1 is generated and inserted into the first queue 251. If 50t3-1 is executed, the generation module 211 generates an instance 50c-1 for 5OC which is an OR join activity. Since the instances for 50T3 and 50T7 that are transitions input to 5OC have not all been executed, the insertion module 215 inserts 50c-1 into the second queue 253. Since no instance inserted into the first queue 251 exists, the execution module 217 calls and executes 50c-1 inserted into the second queue 253.
If 50c-1 is executed, 50t4-1 is generated and inserted into the first queue 251. If 50t4-1 is executed, 50d-1 is generated and inserted into the first queue 251. If 50d-1 is executed, 50t5-1 and 50t6-1 are generated and inserted into the first queue.
In FIG. 21 , if 50t5-1 is executed, the generation module 211 generates 50b-2 which is the second instance for 5OB. Since an instance for 50T8 among a plurality of transitions input to 5OB has not been executed, the insertion module 215 inserts 50b-2 into the second queue 253.
Since an instance 50t6-1 inserted into the first queue 251 exists, the execution module 217 calls and executes 50t6-1 with a priority over 50b-2 inserted into the second queue 253. If 50t6-1 is executed, 50e-1 is generated and inserted into the first queue 251.
If 5Oe- 1 is called and executed, 50t7-1 , 50t8-1 , and 50t9-1 are generated and inserted into the first queue 251. If 50t7-1 is executed, the generation module 211 generates an instance 50c-2 which is the second instance for 5OC. Since all the plurality of instances for 5OC have been executed and 5OC is an OR join activity, the insertion module 215 inserts 50c-2 into the first queue 251.
If 50t8-1 is executed, since an instance 50b-2 for 5OB is inserted into the second queue 253, the generation module 211 does not generate a separate instance for 5OB. Since all the plurality of instances for 5OB have been executed and 5OB is an OR join activity, the insertion module 215 calls 50b-2 and inserts 50b-2 into the first queue 251.
In FIG. 21 , 50t9-1 is treated as a failure when executed. If 50c-2 is executed, 50t4-2 is generated and inserted into the first queue 251. If 50b-2 is executed, 50t3-2 is generated and inserted into the first queue 251.
If 50t4-2 and 50t3-2 are sequentially executed, 50d-2 and 50c-3 are sequentially generated and inserted into the first queue 251. If 50d-2 is executed, 50t5-2 and 50t6-2 are generated and inserted into the first queue 251. If 50c3-2 is executed, 50t4-3 is generated and inserted into the first queue 251.
In FIG. 22, 50t5-2 is treated as a failure when executed. If 50t6-2 is executed and treated as a success, 50e-2 is generated and inserted into the first queue 251. If 50t4-3 and 50e-2 are sequentially executed, 50d-3, 50t8-2, and
50t9-2 are sequentially generated and inserted into the first queue 251. If 50d-3 is executed, 50t5-3 and 50t6-3 are sequentially generated and inserted into the first queue 251.
In FIGS. 22 and 23, 50t7-2 and 50t8-2 are treated as failures when executed. If 50t9-2 is executed and treated as a success, 50f-1 is generated and inserted into the first queue 251. When 50t5-3 is executed, 50t5-3 is executed as a failure. If 50t6-3 and 50f-1 are sequentially executed and treated as successes, 50e-3 and 50t10-1 are sequentially generated and inserted into the first queue 251.
If 50e-3 is executed, 50t7-3, 50t8-3, and 50t9-3 are generated and inserted into the first queue 251. If 50t10-1 is executed, an instance for an end activity 501 is generated and inserted into the first queue 251. In FIGS. 23 and 24, 50t7-3 and 50t8-3 are treated as failures when executed.
If 50t9-3 is executed, 50f-2 is generated and inserted into the first queue 251 . If the instance for the end activity 501 is executed, the simulation of the BPM system of the present invention related to the process illustrated in FIG. 19 is finished.
As illustrated in the simulations described above, the BPM system according to the present invention does not fall into an infinite loop even in the complicated processes illustrated in FIGS. 1 , 10, 13, and 19, unlike the conventional method using the conventional loop count. When the process is performed, it is done as intended without causing an unexpected result.
FIG. 25 is a flowchart illustrating a BPM method according to an embodiment of the present invention. The characteristics of the BPM method according to the current embodiment will now be explained.
In order not to generate again an identical instance when an instance desired to be generated has already been generated, the generation module 211 determines whether or not an instance for a work to be generated is inserted into the second queue 253 in operation 601. For this, the generation module 21 1 refers to the instance table 230 in order to determine whether or not the instance to be generated is recorded as having already been generated.
If the instance to be generated is not inserted into the second queue 253, the generation module 211 generates the instance for the work which is one activity or transition performed according to a business process in operation 603.
If the instance to be generated is inserted into the second queue 253, the generation module 211 does not generate a separate instance, and calls the instance inserted into the second queue 253 in operation 605.
The recording module 213 records the instance in the instance table which is a table for recording instances to be inserted into the first queue 251 or the second queue 253 so that the instance to be inserted can be distinguished by identification information in operation 607. In this way, the generation module 211 can refer to the instance table 230 so that an instance identical to an already generated instance cannot be generated again. In the present invention, an instance can be called by identification information, and the identification information includes information on the number of instances which are generated in relation to one work in one process.
The insertion module 215 determines whether or not an instance satisfying a predetermined condition exists among instances generated by the generation module 211 in operation 609.
If an instance is inserted into the second queue 253 and therefore without generating a separate identical instance, is called by the insertion module 215, the instance is also generated by the generation module 211 before being inserted into the second queue 253. Therefore, the instance is included in the instances generated by the generation module 211.
The insertion module 215 inserts an instance satisfying a predetermined condition from among the instances generated by the generation module 211 , into the second queue 253 in operation 611. The insertion module 215 inserts an instance not satisfying the predetermined condition from among the instances generated by the generation module 211 , into the first queue 251 in operation 613.
In this case, if a generated instance is for an activity in which all instances for a plurality of transitions input to the activity have not been executed, or the generated instance is for an activity in which all instances for a plurality of transitions input to the activity have been executed and the values of the instances for the plurality of transitions are not all true, then, the insertion module 215 inserts the generated instance into the second queue 253, and can insert remaining instances that are not inserted into the second queue 253, into the first queue 251.
The execution module 217 determines whether or not an instance inserted into the first queue 251 exists in operation 615. If an instance inserted into the first queue 251 exists, the execution module 217 calls the instance, and if no instance inserted into the first queue 251 exists, the execution module 217 calls an instance inserted into the second queue 253 in operation 619. The execution module 217 executes the instance thus called from the first queue 251 or the second queue 253 in operation 621.
If the instance executed by the execution module 217 is an instance for an end activity, the business process is finished, or else, it is determined whether or not the execution result by the execution module 217 of the instance is treated as a success in operation 625.
If the execution result of the instance is treated as a success, the generation module 211 determines again whether or not to generate an instance, and then, the insertion module 215 inserts the instance into the first queue 251 or the second queue 253. If the execution result of the instance is treated as a failure, the execution module 217 without this process calls an instance inserted into the first queue 251 or the second queue 253.
The present invention can also be embodied as computer readable codes on a computer readable recording medium. The computer readable recording medium is any data storage device that can store data which can be thereafter read by a computer system. Examples of the computer readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, and carrier waves (such as data transmission through the Internet). 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.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims. The preferred embodiments should be considered in descriptive sense only and not for purposes of limitation. Therefore, the scope of the invention is defined not by the detailed description of the invention but by the appended claims, and all differences within the scope will be construed as being included in the present invention.
Claims
1. A method of automatically managing a business process including an activity which means a logical business step and a transition which is a logical connection line connecting the activities for the flow of the business, the method comprising: generating an instance for a work which is one activity or transition performed according to the business process; inserting an instance satisfying a predetermined condition from among generated instances, into a second queue; inserting an instance not satisfying the predetermined condition from among the generated instances, into a first queue; calling and executing an instance inserted into the first queue; and if there is no instance inserted into the first queue, calling and executing an instance inserted into the second queue.
2. The method of claim 1 , wherein in the inserting of the instance into the second queue, if the generated instance is for an activity in which all instances for a plurality of transitions input to the activity have not been executed, or the generated instance is for an activity in which all instances for a plurality of transitions input to the activity have been executed and the values of the instances for the plurality of transitions are not all true, the generated instance is inserted into the second queue.
3. The method of claim 1 , wherein in the inserting of the instance into the first queue, if an instance which will be generated as a result of calling and executing an 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.
4. The method of claim 1 , further comprising recording the instance to be inserted, in an instance table which is a table for recording instances to be inserted into the first queue or the second queue so that the instance can be distinguished by identification information, wherein the instance can be called by the identification information, and the identification information includes information on the number of instances which are generated in relation to the one work in the one process, antecedent basis.
5. A computer readable recording medium having embodied thereon a computer program for executing the method of managing a business process of any one of claims 1 through 4.
6. A system for automatically managing a business process including an activity which is a logical business step and a transition which is a logical connection line connecting the activities for the flow of the business (connecting it to what?), the system comprising: a generation module generating an instance for a work which is_one activity or transition performed according to the business process; an insertion module inserting an instance satisfying a predetermined condition from among the generated instances, into a second queue, and inserting an instance not satisfying the predetermined condition from among the generated instances, into a first queue; and an execution module, if an instance inserted into the first queue exists, calling and executing the instance inserted into the first queue, and if there is no instance inserted into the first queue, calling and executing an instance inserted into the second queue.
7. The system of claim 6, wherein if the generated instance is for an activity in which all instances for a plurality of transitions input to the activity have not been executed, or the generated instance is for an activity in which all instances for a plurality of transitions input to the activity have been executed and the values of the instances for the plurality of transitions are not all true, the insertion module inserts the generated instance into the second queue.
8. The system of claim 6, wherein if an instance which will be generated as a result of calling and executing an 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.
9. The system of claim 6, further comprising a recording module recording the instance to be inserted, in an instance table which is a table for recording instances to be inserted into the first queue or the second queue so that the instance can be distinguished by identification information, wherein the instance can be called by the identification information, and the identification information includes information on the number of instances which are generated in relation to the one work in the one process, antecedent basis.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2007-0067197 | 2007-07-04 | ||
| KR1020070067197A KR100807355B1 (en) | 2007-07-04 | 2007-07-04 | Business process management method and system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2009005181A1 true WO2009005181A1 (en) | 2009-01-08 |
Family
ID=39383332
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2007/003603 Ceased WO2009005181A1 (en) | 2007-07-04 | 2007-07-26 | Method and system for business process management |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR100807355B1 (en) |
| WO (1) | WO2009005181A1 (en) |
Families Citing this family (3)
| 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 |
| KR102783930B1 (en) * | 2022-07-13 | 2025-03-21 | 쿠팡 주식회사 | Instance managing method and electronic device for the same |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20000033212A (en) * | 1998-11-20 | 2000-06-15 | 정선종 | Method for defining and controlling process for work flow management system |
| US20010044738A1 (en) * | 2000-03-22 | 2001-11-22 | Alex Elkin | Method and system for top-down business process definition and execution |
| JP2002032544A (en) * | 2000-07-13 | 2002-01-31 | Suntory Ltd | Business managing system, work flow processor and work flow messenger |
| 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 |
| KR20060091501A (en) * | 2005-02-15 | 2006-08-21 | 부산대학교 산학협력단 | Work processing method and supply chain management method using workflow engine |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7562041B2 (en) * | 2001-01-09 | 2009-07-14 | International Business Machines Corporation | Method and apparatus for facilitating business processes |
| CA2452730A1 (en) * | 2001-07-06 | 2003-01-16 | Computer Associates Think, Inc. | Business process policy object |
| KR100445916B1 (en) * | 2002-11-18 | 2004-08-25 | 주식회사 케이티 | Method for processing business processes using workflow technique |
-
2007
- 2007-07-04 KR KR1020070067197A patent/KR100807355B1/en active Active
- 2007-07-26 WO PCT/KR2007/003603 patent/WO2009005181A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20000033212A (en) * | 1998-11-20 | 2000-06-15 | 정선종 | Method for defining and controlling process for work flow management system |
| 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 (en) * | 2000-07-13 | 2002-01-31 | Suntory Ltd | Business managing system, work flow processor and work flow messenger |
| KR20060091501A (en) * | 2005-02-15 | 2006-08-21 | 부산대학교 산학협력단 | Work processing method and supply chain management method using workflow engine |
Also Published As
| Publication number | Publication date |
|---|---|
| KR100807355B1 (en) | 2008-02-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102508716B (en) | Task control device and task control method | |
| CN108595157B (en) | Block chain data processing method, device, equipment and storage medium | |
| CN1798111B (en) | Server queuing system and method | |
| US8763012B2 (en) | Scalable, parallel processing of messages while enforcing custom sequencing criteria | |
| US20110246994A1 (en) | Scheduling heterogeneous partitioned resources with sharing constraints | |
| US9251476B2 (en) | Managing calendar conflicts | |
| CN106802826A (en) | A kind of method for processing business and device based on thread pool | |
| US8584144B2 (en) | Determining the processing order of a plurality of events | |
| CN107273195A (en) | A kind of batch processing method of big data, device and computer system | |
| CN102541661A (en) | Wait on address synchronization interface | |
| US20150254117A1 (en) | Apparatus and method for executing agent | |
| EP3018581B1 (en) | Data staging management system | |
| US8903883B2 (en) | Apparatus, system, and method for pattern-based archiving of business events | |
| CN113760297B (en) | Strategic class division method, system, computer equipment and medium | |
| WO2009005181A1 (en) | Method and system for business process management | |
| CN112256783A (en) | Data export method and device, electronic equipment and storage medium | |
| CN116700938B (en) | Flow processing method of transaction approval business, electronic equipment and storage medium | |
| CN113778650B (en) | Task scheduling method, device, electronic device and storage medium | |
| US6938219B2 (en) | Method and system for displaying actions and historical content in an output view | |
| US8656395B2 (en) | Method and system for optimizing a job scheduler in an operating system | |
| CN116185654A (en) | Method and system for realizing asynchronous data processing based on message queue | |
| CN118798611A (en) | Business process scheduling method and device, electronic device and storage medium | |
| CN116881133A (en) | Method and system for generating full-scene test case set based on message log | |
| CN115048158A (en) | Process arranging and calling method, system and computer equipment thereof | |
| CN116319055B (en) | Risk processing method, apparatus, device and readable storage medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07793263 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 07793263 Country of ref document: EP Kind code of ref document: A1 |