The embodiments discussed herein are directed to a method, device, and program for workflow definition alteration.
With recent increase in scales and complexities of information systems, operation management of the systems has also become more complicated. This has made normal operations of the systems more difficult. In view of this situation, procedures and rules of the operation management are defined by workflows, and a system administrator operates the system according to the definition or causes the system itself to perform an operation managing process according to the definition, thereby reducing burdens of the operation management (see Japanese Laid-open Patent Publication No. 09-044352 mentioned below).
In the operation management using the workflows, however, mutual interference among the workflows becomes a problem. Specifically, when there are plural workflows sharing the same resource and when these workflows are simultaneously executed, a resource contention occurs and this may pose problems such as delay in processing. Simulation is one of methods for solving the problems. The simulation assumes a certain scenario (input sequence) and evaluates a result of processing according to the scenario. Accordingly, a constraint violation that may occur in an unexpected scenario or a constraint violation with a small probability is often overlooked. There is another method in which a constraint violation is detected during execution of workflows, and then measures are taken to eliminate the constraint violation. In this method, the measures to eliminate the constraint violation need to be devised upon detection of the constraint violation. Therefore, burdens on the system administrator are so heavy, and even when occurrence of a constraint violation is predicted, the predicted constraint violation cannot be avoided.
According to an aspect of an embodiment of the invention, a workflow-definition alteration method is for presenting a workflow definition including process procedures related to various proceedings, policies related to rules on allocation of resources to be used when the process procedures are performed, and constraints related to rules to be complied with when the process procedures are performed. The workflow-definition alteration method includes: receiving the process procedures, the policies, and the constraints; generating a state transition model for execution of workflows corresponding to the process procedures, by using the process procedures and the policies received in the receiving; determining whether a constraint violation occurs when the workflows are executed, by using the state transition model generated in the generating and the constraints received in the receiving; altering any one or some of the process procedures, the policies, and the constraints when it is determined in the determining that the constraint violation occurs; and presenting, when alteration is applied in the altering, a workflow definition including the process procedures, the policies, and the constraints applied with the alteration as an alternative workflow definition.
According to another aspect of an embodiment of the invention, a workflow-definition alteration method is for presenting a workflow definition including process procedures related to various proceedings, policies related to rules on allocation of resources to be used when the process procedures are performed, and constraints related to rules to be complied with when the process procedures are performed. The workflow-definition alteration method includes: receiving the process procedures, the policies, and the constraints; generating a state transition model for execution of workflows corresponding to the process procedures, by using the process procedures and the policies received in the receiving; determining whether a constraint violation occurs when the workflows are executed, by using the state transition model generated in the generating and the constraints received in the receiving; and displaying, when it is determined in the determining that the constraint violation occurs, a workflow screen on which the workflows and the constraint violation are represented with graphics and character strings, on a predetermined display device.
The object and advantages of the embodiment will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the embodiment, as claimed.
Preferred embodiments of the present invention will be explained with reference to accompanying drawings.
A workflow-definition alteration device according to a first embodiment of the present invention is characterized in generating a state transition model for execution of plural workflows, by using a workflow definition inputted by a system administrator, determining whether a constraint violation occurs in each of the workflows by using the state transition model, and, when the constraint violation occurs, presenting the system administrator with the workflow definition from which the constraint violation is eliminated by altering the workflow definition. Accordingly, the constraint violation among the plural workflows can be eliminated before the execution of the workflows.
The workflow definition includes process procedures, policies, and constraints. The definition of the process procedures is associated with various proceedings in workflows. The definition of the policies is associated with rules on resource allocation applied when the process procedures are performed. The definition of the constraints is associated with rules to be complied with when the process procedures are performed.
Functions of the workflow-definition alteration device are explained in detail with reference to
The controller 11 includes a receiving unit 111, a state-transition-model generating unit 112, a constraint-violation determining unit 113, a workflow-definition altering unit 114, a display unit 115, and an altered-variable specifying unit 116.
The receiving unit 111 receives a workflow definition including plural process procedures, plural policies, and plural constraints, generated by a system administrator. The process procedures included in the workflow definition are explained with reference to
The process procedure of the workflow A depicted in
A process proceeding with a process number “A3” is performed third when the workflow A is executed. The substance of the process is “Backup” indicating that files in the server A are backed up to a server B. The minimum processing time thereof is 40 minutes and the maximum processing time is 60 minutes (that is, the processing time is 40 to 60 minutes). A process proceeding with a process number “A4” is performed fourth when the workflow A is executed. The substance of the process is “Apply patch” indicating that a patch is applied to the server A. The minimum processing time thereof is 10 minutes and the maximum processing time is 30 minutes (that is, the processing time is 10 to 30 minutes).
A process proceeding with a process number “A5” is performed fifth when the workflow A is executed. The substance of the process is “Reboot” indicating that the server A is rebooted. The minimum processing time thereof is 5 minutes and the maximum processing time is 10 minutes (that is, the processing time is 5 to 10 minutes). A process proceeding with a process number “A6” is performed sixth when the workflow A is executed. The substance of the process is “Start services” indicating that the services provided by the server A are started. The minimum processing time thereof is 5 minutes and the maximum processing time is 10 minutes (that is, the processing time is 5 to 10 minutes).
A process proceeding with a process number “A7” is performed seventh when the workflow A is executed. The substance of the process is “Is it successful?” indicating that the process branches according to whether the services in the server A have been successfully started. The minimum processing time thereof is 5 minutes and the maximum processing time is 10 minutes (that is, the processing time is 5 to 10 minutes). Based on a result of the determination in this process proceeding, “0” or “1” is assigned to a variable “Result”.
A process proceeding with a process number “A8” is performed when the services fail to start (NO) in the process proceeding with the process number “A7” during the execution of the workflow A. The substance of the process is “Is it first failure?” indicating that the process branches according to whether a failure of the service start is first one. The minimum processing time thereof is 5 minutes and the maximum processing time is 10 minutes (that is, the processing time is 5 to 10 minutes).
A process proceeding with a process number “A9” is performed when the failure of the service start in the process proceeding with the process number “A8” is the first one (YES) during the execution of the workflow A. The substance of the process is “Analyze causes” indicating that causes of the failure of the service start are analyzed. The minimum processing time thereof is 10 minutes and the maximum processing time is 60 minutes (that is, the processing time is 10 to 60 minutes). In this process proceeding, “1” is assigned to a variable “Flag”.
A process proceeding with a process number “A10” is performed when the failure of the service start in the process proceeding with the process number “A8” is the second one (NO) during the execution of the workflow A. The substance of the process is “Restore” indicating that the files are restored from the server B to the server A. The minimum processing time thereof is 40 minutes and the maximum processing time is 60 minutes (that is, the processing time is 40 to 60 minutes).
A process proceeding with a process number “A11” is performed after the process proceeding with the process number “A10” during the execution of the workflow A. The substance of the process is “Start services” indicating the services provided by the server A are started. The minimum processing time thereof is 5 minutes and the maximum processing time is 10 minutes (that is, the processing time is 5 to 10 minutes). A process proceeding with a process number “A12” is performed after the process proceeding with the process number “A11” during the execution of the workflow A. The substance of the process is “Generate report” indicating that a report is generated. The minimum processing time thereof is 10 minutes and the maximum processing time is 15 minutes (that is, the processing time is 10 to 15 minutes). A process proceeding with a process number “A13” is performed last during the execution of the workflow A. The substance of the process is “End” indicating that the workflow A ends. Both of the minimum and maximum processing times thereof are 0 minute (that is, the processing time is 0 minute).
The process procedure of the workflow B depicted in
A process proceeding with a process number “B3” is performed third when the workflow B is executed. The substance of the process is “Update” indicating that a vaccine file is updated. The minimum processing time thereof is 10 minutes and the maximum processing time is 20 minutes (that is, the processing time is 10 to 20 minutes). A process proceeding with a process number “B4” is performed fourth when the workflow B is executed. The substance of the process is “Scan for viruses” indicating that viruses are scanned for. The minimum processing time thereof is 60 minutes and the maximum processing time is 90 minutes (that is, the processing time is 60 to 90 minutes).
A process proceeding with a process number “B5” is performed fifth when the workflow B is executed. The substance of the process is “Is virus detected?” indicating that the process branches according to whether a virus is detected. The minimum processing time thereof is 5 minutes and the maximum processing time is 10 minutes (that is, the processing time is 5 to 10 minutes). Based on a result of this process proceeding, “0” or “1” is assigned to a variable “Detect”.
A process proceeding with a process number “B6” is performed when a virus is detected (YES) in the process proceeding with the process number “B5” during the execution of the workflow B. The substance of the process is “Alert” indicating that the administrator is alerted. The minimum processing time thereof is 5 minutes and the maximum processing time is 10 minutes (that is, the processing time is 5 to 10 minutes). A process proceeding with a process number “B7” is performed last during the execution of the workflow B. The substance of the process is “End” indicating that the workflow B ends. Both of the minimum and maximum processing times thereof are 0 minute (that is, the processing time is 0 minute).
Policies included in the workflow definition are explained with reference to
In the non-preemptive type, when plural process proceedings use the same resource, after a process proceeding performed first is completely finished, the subsequent process proceeding is performed. The non-preemptive allocation is applied when simultaneous writing into a file is to be inhibited, for example.
In the preemptive type, when plural process proceedings use the same resource, priorities of the process proceedings are compared, then a process proceeding with a higher priority is performed first, and a process proceeding with a lower priority is performed after completion of the previous process proceeding. Therefore, when a process proceeding using the resource earlier has a higher priority than a process proceeding using the resource later, the same operation as in the non-preemptive allocation is performed. The preemptive allocation is applied when an emergent operation is to be interposed, for example.
In the concurrent type, plural process proceedings are allowed to simultaneously use the same resource. Therefore, the processing time becomes longer than in cases where the resource is used with respect to each process proceeding. The concurrent allocation is applied when plural processes are to be executed by a central processing unit (CPU) in a server, for example.
The policies of the workflow A depicted in
The process proceeding with the process number “A9” is performed by using the “server A” as a resource and applying the “preemptive” type of allocation when a resource contention occurs. The process proceeding is assigned with a priority “1” indicating that the priority is higher when a contention in uses of the “server A” occurs. The process proceeding with the process number “A10” is performed by using the “server A” and “server B” as resources and applying the “preemptive” and “concurrent” types of allocation, respectively, when a resource contention occurs. The process proceeding is assigned with a priority “1” indicating that the priority is higher when a contention in uses of the “server A” occurs.
The policies of the workflow B depicted in
An exemplary constraint included in the workflow definition is that “When the workflow A is started at a 0th minute and the workflow B is started at a 200th minute, the workflows A and B have been finished at a 400th minute.” This constraint can be expressed by a logical formula.
The state-transition-model generating unit 112 depicted in
In the first embodiment, Hybrid automata are adopted as the state transition models. The Hybrid automata are obtained by generalizing timed automata in which a time concept is introduced (see R. Alur and D. L. Dill, “A theory of timed automata”, Theoretical Computer Sci., vol. 126, pp. 183 to 235, 1994). The Hybrid automata enable a system handling an analogous continuous quantity to be represented by a finite-state transition model. The timed automata enable to represent passage of time in a system by introducing a variable class “clock” that has characteristics of continuing to increase uniformly with an elapsed time. In contrast, the Hybrid automata enable to define a variation per unit time of each variable. With the Hybrid automata, a variable that decreases with time passage or plural variables having different increase amounts in the same time period can be represented.
A process of generating a state transition model is explained with reference to
“tA≦TSA” described in the location LA0 indicates that the process remains in the location LA0 until the timer variable tA reaches a predetermined start time TSA from 0. “tA=TSA” described between the locations LA0 and LA1 indicates that a transition from the location LA0 to the location LA1 occurs when the timer variable tA reaches the start time TSA. “tA:=0, Flag:=0” described between the locations LA0 and LA1 indicates that the timer variable tA and the variable Flag are set to 0 when the transition from the location LA0 to the location LA1 occurs.
“tA≦0”, “tA≦10”, and “tA≦60” described in the locations LA1, LA2, and LA3, respectively, indicate the maximum processing times in which the process can remain in the corresponding location. These maximum processing times correspond to the maximum processing times depicted in
“tA≧0” and “tA≧5” described between the locations LA1 and LA2 and between the locations LA2 and LA3, respectively, indicate the minimum processing times in which the process can remain in the corresponding transition source locations. These minimum processing times correspond to the minimum processing times depicted in
“tA:=0” described between the locations LA1 and LA2 and between the locations LA2 and LA3 indicates that the timer variable tA is set to 0 when a transition between the locations occurs.
“tBTSB” described in the location LB0 indicates that the process remains in the location LB0 until the timer variable tB reaches a predetermined start time TSB from 0. “tB=TSB” described between the locations LB0 and LB1 indicates that a transition from the location LB0 to the location LB1 occurs when the timer variable tB reaches the start time TSB. “tB:=0” described between the locations LB0 and LB1 indicates that the timer variable tB is set to 0 when a transition from the location LB0 to the location LB1 occurs.
“tB≦0”, “tB≦10”, and “tB≦20” described in the locations LB1, LB2, and LB3, respectively, indicate the maximum processing time in which the process can remain in the corresponding location. These maximum processing times correspond to the maximum processing times depicted in
“tB≧0” and “tB5” described between the locations LB1 and LB2 and between the locations LB2 and LB3, respectively, indicate the minimum processing times in which the process can remain in the corresponding transition source locations. These minimum processing times correspond to the minimum processing times depicted in
“tB:=0” described between the locations LB1 and LB2 and between the locations LB2 and LB3 indicate that the timer variable tB is set to 0 when a transition between the locations occurs.
A procedure performed when there is a process proceeding in which a resource contention occurs during the process proceedings included in the product automaton, to alter the process proceeding according to a state of the resource contention is explained with reference to
The location LW11 indicates that the process proceeding X1 is executed first, and the process proceeding Y1 is waited until the execution of the process procedure X1 is finished. “t′X=1” and “t′Y=0” described in the location LW11 indicate that the timer variable tX is incremented by one per minute and the timer variable tY does not vary. The location WL11 indicates that the process proceeding Y1 is executed first, and the process proceeding X1 is waited until the execution of the process procedure Y1 is finished. “t′X=0” and “t′Y=1” described in the location WL11 indicate that the timer variable tX does not vary and the timer variable tY is incremented by one per minute.
A transition from the location L01 to the location L11 is changed to transitions from the location L01 to the location LW11 and to the location WL11. A jump instruction for comparing the priorities between the process proceedings X1 and Y1, and selecting the transition to the location LW11 when the priority of the process proceeding X1 is higher while selecting the transition to the location WL11 when the priority of the process proceeding Y1 is higher is added as conditions for determining the transition destination in this situation.
A transition from the location L11 to the location L21 is changed to a transition from the location LW11 to the location L21, and a transition from the location L11 to the location L21 is changed to a transition from the location WL11 to the location L12.
The constraint-violation determining unit 113 depicted in
Various model checking methods (see E. M. Clarke, O. Grumberg, and D. A. Peled, Model Checking, The MIT Press, 1999.) can be used as a method for determining whether a constraint violation occurs. The model checking methods include model checking, SPIN (see G. J. Holzmann, “The model checker SPIN”, IEEE Transactions on Software Engineering, Vol. 23, No. 5, 1997.), and HyTech (see HyTech: The HYbrid TECHnology Tool, available at http://embedded.eecs.berkeley.edu/research/hytech/), for example.
The model checking is a typical technique for analyzing a behavior of a system modeled by using the Hybrid automata. The SPIN is a technique in which computing times are reduced by various algorithms. The HyTech is a technique that enables to facilitate expressions of the Hybrid automata.
In the model checking, properties to be checked whether the system comply with are first expressed by a temporal logical formula such as Computational Tree Logic (CTL) or Linear-time Temporal Logic (LTL). Negation of the temporal logical formula is then converted into an automaton, and a composite automaton is generated by using this automaton and a Hybrid automaton of the modeled system. It is then determined whether a set of languages accepted by the composite automaton is empty. When the set is empty, both the modeled system and the negation of the temporal logical formula are never satisfied. That is, it implies that the modeled system satisfies the properties expressed by the temporal logical formula. When there is some language accepted by the composite automaton, it implies that the modeled system does not satisfy the properties expressed by the temporal logical formula. The set of the accepted languages exemplifies that the system does not satisfy the properties expressed by the temporal logical formula.
The workflow-definition altering unit 114 depicted in
A method of applying alteration is explained specifically below. For example, when a workflow definition associated with the “workflow A” and the “workflow B” is provided in which “two workflows have been finished at a 400th minute” is defined as a constraint and when it is determined that the end time of the workflow A will be a 405th minute, following alteration can be applied.
When the start time of the workflow included in the process procedures is to be changed, the start time of the workflow B is changed to a 100th minute, which is a half of a 200th minute as the present start time, for example. When the start time of the workflow B is advanced, the processing timings of the workflows can be differentiated. Therefore, the resource contention can be eliminated, and the processing time of the workflow A can be reduced.
When the allocation type or the priory included in the policies is to be changed, and when the allocation type for the server B used in the workflows A and B is set as “concurrent”, for example, the allocation type for the server B is changed to “preemptive” to provide the workflow A with a higher priority than the workflow B. The processing time of the workflow A can be reduced by allowing the workflow A to have priority use of the resource.
When the end times of the workflows included in the constraints are to be changed, the end times of the two workflows are changed from the present end times (the 400th minute) to the 405th minute, which is the end time of the workflow A, for example. When the end times included in the constraint are adjusted to the later end times, the workflow A can be assuredly finished before the end time included in the constraints. That is, the constraint violation can be surely eliminated.
While the workflow-definition altering unit 114 can alter a part or all of the process procedures, the policies, and the constraints included in the workflow definition, what is important is to eliminate the constraint violation by application of the alteration. Therefore, the methods of altering the process procedures, the policies, and the constraints, and the specific changes are not limited to those described above. To efficiently eliminate the constraint violation, it is possible to store a result of the determination of a constraint violation with respect to each of the alteration methods and the specific changes and analyze the result, for example, thereby learning the alteration methods and the specific changes.
When the workflow-definition altering unit 114 applies the alteration, the display unit 115 displays the workflow definition including the process procedures, the policies, and the constraints after the application of the alteration, as an alternative workflow definition, on a monitor of the workflow-definition alteration device 10. The display unit 115 displays details of the constraint violation on the monitor of the workflow-definition alteration device 10, in addition to the alternative workflow definition. The details of the constraint violation include a message stating that a constraint violation occurs.
When the workflow-definition altering unit 114 applies no alteration, that is, no constraint violation occurs, the display unit 115 displays a message stating that no constraint violation occurs on the monitor of the workflow-definition alteration device 10. The display unit 115 can display the workflow definition including the process procedures, the policies, and the constraints received by the receiving unit 111 on the monitor of the workflow-definition alteration device 10, in addition to the message stating that no constraint violation occurs.
When the constraint-violation determining unit 113 determines that constraint violations occur and when the number of the constraint violations determined to occur reaches a predetermined value, the display unit 115 can display a message stating that it is impossible to present an alternative workflow definition on the monitor of the workflow-definition alteration device 10. This enables the system administrator to recognize that elimination of the constraint violations is difficult.
The method of presenting the alternative workflow definition and the like to the system administrator is not limited to the display on the monitor of the workflow-definition alteration device 10. For example, the alternative workflow definition can be presented by outputting on a printer or outputting as electronic data.
The altered-variable specifying unit 116 compares the state transition model and the altered state transition model generated by the state-transition-model generating unit 112, and specifies a variable having different values before and after the alteration of the state transition model. The variable specified by the altered-variable specifying unit 116 is displayed by the display unit 115 on the monitor of the workflow-definition alteration device 10.
A process procedure performed by the workflow-definition alteration device 10 according to the first embodiment is explained with reference to
The receiving unit 111 of the workflow-definition alteration device 10 first receives a workflow definition including plural process procedures, plural policies, and plural constraints generated by the system administrator (Step S101).
The state-transition-model generating unit 112 then generates a state transition model for execution of the plural workflows by using the process procedures and the policies received by the receiving unit 111 (Step S102).
The constraint-violation determining unit 113 then determines whether a constraint violation occurs when the workflows are executed by using the state transition model generated by the state-transition-model generating unit 112 and the constraints received by the receiving unit 111 (Step S103). When a result of the determination is No (No at Step S104), the display unit 115 displays a message stating that no constraint violation occurs on the monitor of the workflow-definition alteration device 10 (Step S111), and the process is ended.
When it is determined as a result of the determination at Step 5103 that a constraint violation occurs (YES at Step S104), the workflow-definition altering unit 114 alters any one or some of the process procedures, the policies, and the constraints (Step S105).
The state-transition-model generating unit 112 then generates a state transition model for execution of plural altered workflows by using the process procedures and the policies altered by the workflow-definition altering unit 114 at Step S105 (Step S106).
The constraint-violation determining unit 113 then determines whether a constraint violation occurs by using the altered state transition model generated by the state-transition-model generating unit 112 and the constraints altered by the workflow-definition altering unit 114 at Step S105 (Step S107). When a result of the determination is YES (YES at Step S108), the process proceeds to Step S105.
On the other hand, when it is determined as a result of the determination at Step S107 that no constraint violation occurs (NO at Step S108), the altered-variable specifying unit 116 compares the state transition model and the altered state transition model generated by the state-transition-model generating unit 112, and specifies a variable having different values before and after the alteration of the state transition model (Step S109).
The display unit 115 then displays a message stating that the constraint violation occurs, an alternative workflow definition including the process procedures, the policies, and the constraints having the alteration applied thereto, and the variable having different values before and after the alteration of the state transition model on the monitor of the workflow-definition alteration device 10 (Step S110), and the process is ended.
As described above, the workflow-definition alteration device 10 according to the first embodiment can generate by using the plural process procedures and the plural policies inputted by the system administrator, a state transition model for execution of workflows corresponding to the plural process procedures, and determine whether a constraint violation occurs when the workflows are executed, by using the generated state transition model and the plural constraints inputted by the system administrator. When it is determined in this determination that a constraint violation occurs, the workflow-definition alteration device 10 can alter any one or some of the process procedures, the policies, and the constraints, and present a workflow definition including the process procedures, the policies, and the constraints having been altered, as an alternative workflow definition to the system administrator.
The workflow-definition alteration device 10 can further determine whether a constraint violation occurs when the altered workflows are executed by using the state transition model based on the altered process procedures and policies, and the altered constraints, and when it is determined in the determination that no constraint violation occurs, present a workflow definition including the altered process procedures, policies, and constraints as an alternative workflow definition to the system administrator.
Therefore, the workflow-definition alteration device 10 according to the first embodiment can eliminate a constraint violation among the plural workflows before execution of the workflows.
The configuration of the workflow-definition alteration device 10 according to the first embodiment depicted in
The hard disk drive 1070 stores therein the workflow-definition alteration program 1071 having the same function as that of the controller 11 depicted in
When the CPU 1010 reads the workflow-definition alteration program 1071 from the hard disk drive 1070 and expands the workflow-definition alteration program 1071 in the RAM 1060, the workflow-definition alteration program 1071 functions as a workflow-definition altering process 1061. The workflow-definition altering process 1061 properly expands information read from the workflow-definition altering data 1072 or the like in an area allocated thereto on the RAM 1060, and performs the various data processes based on the expanded data or the like.
It is not always necessary to store the workflow-definition alteration program 1071 in the hard disk drive 1070, and the program 1071 can be stored in a recording medium such as a compact disk read only memory (CD-ROM), and read and executed by the computer 1000. The program can be stored in another computer (or server) connected to the computer 1000 via a public line, the Internet, a local area network (LAN), a wide area network (WAN), or the like, and then the computer 1000 can read the program therefrom.
In the first embodiment, the workflow-definition alteration device 10 that receives a workflow definition, and, when the workflows violate the constraints, eliminates the constraint violation by automatically altering the workflow definition is explained. However, when the workflows violate the constraints, the constraint violation can be eliminated by receiving an operation for altering the workflow definition from the system administrator. In a second embodiment, an example in which when the workflows violate the constraints, an alteration operation for the workflow definition is received from the system administrator is explained.
A workflow-definition alteration device according to the second embodiment receives the workflow definition generated by the system administrator, generates the state transition model, and then determines whether the state transition model violates the constraints. When the state transition model violates the constraints, the workflow-definition alteration device displays a screen showing the workflows and the constraints by using graphics and character strings (hereinafter, “workflow screen”) on the monitor, and receives an alteration operation for the workflow definition on the workflow screen. When receiving the alteration operation for the workflow definition, the workflow-definition alteration device determines again whether a constraint violation occurs and, when the constraint violation occurs, displays again the workflow screen on the monitor.
Functions of the workflow-definition alteration device according to the second embodiment are explained in detail with reference to
A state-transition-model generating unit 212 generates a state transition model by using the workflow-definition received by the receiving unit 111 in the same manner as the state-transition-model generating unit 112 explained in the first embodiment. The state-transition-model generating unit 212 according to the second embodiment further generates a state transition model by using the workflow definition applied with alteration received by an alteration-operation receiving unit 216 (explained later).
A constraint-violation determining unit 213 determines whether a constraint violation occurs when the plural process procedures are performed by using the state transition model generated by the state-transition-model generating unit 212 and the plural constraints received by the receiving unit 111. When determining that a constraint violation occurs, the constraint-violation determining unit 213 specifies a workflow determined to include the constraint violation (hereinafter, “constraint-violating workflow”) and a workflow including a process procedure that simultaneously uses the same resource as process procedures included in the constraint-violating workflow (hereinafter, “resource-sharing workflow”).
A display unit 215 displays a result of the determination on the constraint violation by the constraint-violation determining unit 213 on a monitor of the workflow-definition alteration device 20. Specifically, when the constraint-violation determining unit 213 determines that no constraint violation occurs, the display unit 215 displays a message stating that no constraint violation occurs on the monitor of the workflow-definition alteration device 20.
Meanwhile, when the constraint-violation determining unit 213 determines that a constraint violation occurs, the display unit 215 displays a workflow screen showing the constraint-violating workflow and the resource-sharing workflow by using graphics and character strings on the monitor. At that time, the display unit 215 distinguishably displays process procedures using the same resource, and process procedures not using the same resource. The display unit 215 also displays a violated constraint by using graphics and character strings. When two or more process procedures included in different workflows are performed at the same time, the display unit 215 displays the two or more process procedures with taking one of horizontal and vertical axes of the workflow screen as a time axis, to be recognized that these process procedures are performed at the same time.
The workflow screen displayed by the display unit 215 is explained below with reference to
Methods performed by the display unit 215 to distinguishably display the process procedures using the same resource and the process procedures not using the same resource are explained with references to
In the example depicted in
In the example depicted in
In the example depicted in
Methods performed by the display unit 215 to display a constraint violation are explained next with reference to
In the example depicted in
In the example depicted in
In the example depicted in
An example of the workflow screen using the methods of displaying the workflow screen by means of the display unit 215 as depicted in
On the workflow screen depicted in
By viewing the workflow screen depicted in
The alteration-operation receiving unit 216 depicted in
The alteration operation for the workflow definition received by the alteration-operation receiving unit 216 on the workflow screen is explained with reference to
For example, when a line indicating a deadline (line beneath “3PM” in the example depicted in
For example, when a graphic in an elliptical shape representing the process procedure P9 or a graphic in an elliptical shape representing the process procedure Q10 is clicked with the mouse or the like, the alteration-operation receiving unit 216 causes a transition to a screen for editing the allocation types and the priorities, and, when edition is performed on the screen to alter the allocation types from concurrent to non-preemptive and assign to the process procedure Q10 a higher priority than the process procedure P9, receives the alteration operation for the allocation types.
Further, for example, when the graphic in the elliptical shape representing the process procedure P9 or the graphic in the elliptical shape representing the process procedure Q10 is clicked with the mouse or the like, the alteration-operation receiving unit 216 displays a pull-down menu for selecting the allocation types and the priorities, and receives an alteration operation for the allocation type by altering the allocation types from concurrent to non-preemptive and selecting the priorities to assign to the process procedure Q10 a higher priority than the process procedure P9 on the pull-down menu. In this way, the process procedure Q10 is performed preferentially, and the processing time of the process procedure Q10 is reduced. Therefore, the constraint violation occurring in the workflow Q can be eliminated.
For example, like in the example described above, when a graphic in an elliptical shape representing the process procedure P9 or a graphic in an elliptical shape representing the process procedure Q10 is clicked with the mouse, the alteration-operation receiving unit 216 causes a transition to a screen for altering the resource to be used or displays a pull-down menu for selecting a resource to be used, thereby receiving the resource alteration operation. Accordingly, the sharing of the same resource between the process procedures P9 and Q10 can be avoided, and the processing time of the process procedure Q10 is reduced. Therefore, the constraint violation occurring in the workflow Q can be eliminated.
The alteration operations for the workflow definition are not limited to the examples depicted in
When the constraint on the resource contention is violated as in the example depicted in
An example in which another constraint violation occurs after the alteration-operation receiving unit 216 receives an alteration operation for the workflow definition is explained.
In the example depicted in
In this way, the constraint-violation determining unit 213 performs again the determining process for the constraint violation after the alteration-operation receiving unit 216 receives the alteration operation for the workflow definition. When determining there is a workflow that violates a constraint, the constraint-violation determining unit 213 specifies a constraint-violating workflow and a resource-sharing workflow, and the display unit 215 displays again the workflow screen on the monitor.
A process procedure performed by the workflow-definition alteration device 20 according to the second embodiment is explained with reference to
The receiving unit 111 of the workflow-definition alteration device 20 first receives a workflow definition including plural process procedures, plural policies, and plural constraints, generated by the system administrator (Step S201).
The state-transition-model generating unit 212 then generates a state transition model for execution of the workflows by using the process procedures and the policies received by the receiving unit 111 (Step S202).
The constraint-violation determining unit 213 then determines whether a constraint violation occurs when the workflows are executed by using the state transition model generated by the state-transition-model generating unit 212 and the constraints received by the receiving unit 111 (Step S203). When a result of the determination is NO (No at Step S204), the display unit 215 displays a message stating that no constraint violation occurs on the monitor of the workflow-definition alteration device 20 (Step S205), and the process is ended.
Meanwhile, when it is determined that a constraint violation occurs (YES at Step S204), the constraint-violation determining unit 213 specifies a constraint-violating workflow and a resource-sharing workflow (Step S206).
The display unit 215 then displays a workflow screen on which the constraint-violating workflow and the resource-sharing workflow specified by the constraint-violation determining unit 213 are represented with graphics and character strings on the monitor of the workflow-definition alteration device 20 (Step S207).
When receiving an alteration operation for the workflow definition on the workflow screen (YES at Step S208), the alteration-operation receiving unit 216 then inputs an altered workflow definition to the state-transition-model generating unit 212 to generate a state transition model.
The state-transition-model generating unit 212 to which the altered workflow definition is inputted by the alteration-operation receiving unit 216 generates a state transition model for execution of plural altered workflows by using the altered workflow definition (Step S202).
The constraint-violation determining unit 213 then determines whether a constraint violation occurs by using the altered state transition model generated by the state-transition-model generating unit 212 and altered constraints received by the alteration-operation receiving unit 216 at Step S208 (Step S203). When a result of the determination is YES (YES at Step S204), the processes at Steps S206 to S208 are performed.
As described above, the workflow-definition alteration device 20 according to the second embodiment can generate the state transition model for execution of the workflows corresponding to the plural process procedures by using the plural process procedures and the plural policies inputted by the system administrator. The workflow-definition alteration device 20 can determine whether a constraint violation occurs when the plural workflows are executed by using the state transition model and the plural constraints inputted by the system administrator. When it is determined in the determination that a constraint violation occurs, the workflow-definition alteration device 20 can specify the constraint-violating workflow and the resource-sharing workflow, and display the workflow screen. As a result, it is possible to easily recognize a workflow in which the constraint violation occurs and to easily recognize a cause of the constraint violation.
The workflow-definition alteration device 20 can receive an alteration operation for the workflow definition on the workflow screen, and determine whether a constraint violation occurs when the altered workflows are executed by using the state transition model based on the altered workflow definition and the altered constraints. When it is determined in the determination that a constraint violation occurs, the workflow-definition alteration device 20 can specify the constraint-violating workflow and the source-sharing workflow, and display the workflow screen. As a result, the system administrator can easily alter the workflow definition, and easily check whether the altered workflow definition violates the constraints.
Therefore, the workflow-definition alteration device 20 according to the second embodiment can eliminate a constraint violation occurring among the plural workflows before the workflows are executed.
In the second embodiment, the example in which the display unit 215 displays the process procedures P1 and the like in circular shapes is described. However, the process procedures P1 and the like can be displayed by using other graphics such as rectangle and star shapes.
In the second embodiment, the example in which, when it is determined that a constraint violation occurs, the constraint-violation determining unit 213 specifies the constraint-violating workflow and the resource-sharing workflow, and the display unit 215 displays only the constraint-violating workflow and the resource-sharing workflow on the workflow screen is described. However, when it is determined that a constraint violation occurs, the display unit 215 can display all the workflows received by the receiving unit 111 on the workflow screen.
In the second embodiment, the display unit 215 can distinguishably display the constraint-violating workflow and the resource-sharing workflow when it is determined that a constraint violation occurs. For example, the display unit 215 displays the constraint-violating workflow and the resource-sharing workflow in different colors.
In the second embodiment, when it is determined that no constraint violation occurs, the display unit 215 can display a message stating that no constraint violation occurs and also output an audio message stating that no constraint violation occurs. When it is determined that a constraint violation occurs, the display unit 215 can display the workflow screen on the monitor, and also output an audio message stating that a constraint violation occurs.
According to an embodiment, by using the plural process procedures and the plural policies received, the state transition model for execution of workflows corresponding to the plural process procedures can be generated. It can be determined by using the state transition model and the plural received constraints whether a constraint violation occurs during execution of the workflows. When it is determined in the determination that a constraint violation occurs, any one or some of the process procedures, the policies, and the constraints can be altered, and the workflow definition including the process procedures, policies, and constraints after the alteration can be presented to the system administrator as an alternative workflow definition.
According to an embodiment, it can be determined by using the state transition model based on the altered process procedures and policies and the altered constraints whether a constraint violation occurs during execution of the altered workflows. When it is determined in the determination that no constraint violation occurs, the workflow definition including the process procedures, the policies, and the constraints after the alteration can be presented to the system administrator as an alternative workflow definition.
According to an embodiment, a workflow in which the constraint violation occurs can be easily identified, and a cause of the constraint violation can be easily recognized.
According to an embodiment, the system administrator can easily alter the workflow definition, and can easily confirm whether the altered workflow definition violates the constraints.
That is, the embodiment of the present invention has an effect that a constraint violation among plural workflows can be eliminated before the workflows are executed.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
PCT/JP2007/061740 | Jun 2007 | JP | national |
This application is a continuation of International Application No. PCT/JP2008/059743, filed on May 27, 2008 which claims the benefit of priority from International Application No. PCT/JP2007/061740, filed on Jun. 11, 2007, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2008/059743 | May 2008 | US |
Child | 12626117 | US |