Patent Publication Number: US-9846594-B2

Title: Workflow control apparatus and method therefor

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2013-066846, filed on Mar. 27, 2013, the entire contents of which are incorporated herein by reference. 
     FIELD 
     The embodiments discussed herein are related to a workflow control apparatus and a method therefor. 
     BACKGROUND 
     A business system is composed of many resources including a number of apparatuses, such as servers, storages, and network equipment; and programs, such as operating systems (OS), middleware, and applications installed on the apparatuses. In a situation where a plurality of such business systems are in operation, a data center carries out operational work, such as monitoring and maintenance, of the business systems. 
     In recent years, Runbook Automation (RBA) has attracted attention as a technology for advancing operations automation by expressing operational work of business systems in workflows. RBA is expected to have various effects including reduction in operation load with simple tasks, reduction of human errors, and reduction in operational costs. 
     As for technology related to workflows, there is provided, for example, a workflow system for acquiring, from connected devices, information of valid combinations of a plurality of functions and allowing a user to edit a workflow based on the information. 
     Japanese Laid-open Patent Publication No. 2010-009243 
     Workflow designers design individual workflows trying not to include unnecessary tasks. However, it is not easy for the designers to design each workflow by considering relationships of tasks among a plurality of workflows. Therefore, in a situation where a plurality of workflows are executed, omissible and unnecessary tasks may be executed. The execution of unnecessary tasks leads to problems such as a prolonged execution time for the entire process and an increase in the network load. 
     SUMMARY 
     According to one embodiment, there is provided a computer-readable storage medium storing therein a computer program. The computer program causes a computer to perform a procedure including identifying, among tasks included in a plurality of workflows individually including one or more tasks using a resource, a plurality of tasks using the resource based on workflow definition information that defines content of each of the tasks included in the plurality of workflows; determining an execution sequence of the identified tasks based on the content of each of the identified tasks, defined in the workflow definition information; and identifying, among the identified tasks, one or more tasks whose execution is omissible based on the content of each of the identified tasks and the execution sequence. 
     The object and advantages of the invention 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 invention. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  illustrates a configuration and processing example of a workflow control apparatus according to a first embodiment; 
         FIG. 2  illustrates a configuration example of an operational system according to a second embodiment; 
         FIG. 3  illustrates an example of a hardware configuration of an operation automation server; 
         FIG. 4  is a block diagram illustrating a configuration example of processing functions of the operation automation server; 
         FIG. 5  is a flowchart illustrating an example of an overall process of the operation automation server; 
         FIGS. 6A and 6B  illustrate modeling of operation components defined in workflows; 
         FIGS. 7A and 7B  illustrate processing for determining exclusive sections based on the same operation targets and the use of the same variables; 
         FIG. 8  illustrates a lock contention relationship of the exclusive sections; 
         FIG. 9  illustrates an example of merging the exclusive sections; 
         FIG. 10  illustrates an example of splitting an exclusive section; 
         FIG. 11  is a first part illustrating an example of extracting an exclusive section having the highest execution priority and determining a subsequent exclusive section to be executed; 
         FIG. 12  is a second part illustrating the example of extracting an exclusive section having the highest execution priority and determining a subsequent exclusive section to be executed; 
         FIG. 13  is a first part illustrating an example of acquisition of an exclusive right (execution right) by a workflow in a case where there is a change in execution priority during execution of workflows; 
         FIG. 14  is a second part illustrating the example of acquisition of an exclusive right (execution right) by a workflow in a case where there is a change in execution priority during execution of workflows; 
         FIG. 15  illustrates an example of a plurality of workflows including redundant operations for the same operation target; 
         FIG. 16  is a first diagram for illustrating challenges for dynamic detection and omission of the redundant operations; 
         FIG. 17  is a second diagram for illustrating the challenges for dynamic detection and omission of the redundant operations; 
         FIG. 18  illustrates an example of assembling optimization control workflows; 
         FIG. 19  illustrates an example of omitting operations based on optimization conditions; 
         FIG. 20  illustrates an example of setting an execution result for an omitted operation component; 
         FIG. 21  illustrates an example of a filter process performed when the execution of an operation component is omitted; 
         FIG. 22  illustrates an example of a workflow including conditional branching; 
         FIG. 23  illustrates an example of reassembling an optimization control workflow in association with the conditional branching; 
         FIG. 24  illustrates an example of reassembling the optimization control workflow in response to a change in execution priority; 
         FIG. 25  illustrates an example of a change in a target for execution omission due to reassembly of the optimization control workflow; 
         FIG. 26  illustrates timing for assembling the optimization control workflow; 
         FIG. 27  illustrates a display example of an optimization control workflow list; 
         FIG. 28  illustrates a display example of content of the optimization control workflow; 
         FIG. 29  illustrates an example of a workflow management table; 
         FIG. 30  illustrates an example of an operation component definition table; 
         FIG. 31  illustrates an example of a variable management table; 
         FIG. 32  illustrates an example of an instance management table; 
         FIG. 33  illustrates an example of an exclusive information management table; 
         FIG. 34  illustrates an example of an exclusive right acquisition history table; 
         FIG. 35  illustrates an example of a user coefficient table; 
         FIG. 36  illustrates an example of an initiation method coefficient table; 
         FIG. 37  illustrates an example of a time coefficient table; 
         FIG. 38  illustrates an example of a first optimization target component definition table; 
         FIG. 39  illustrates an example of a second optimization target component definition table; 
         FIG. 40  illustrates an example of an optimization control workflow management table; 
         FIG. 41  illustrates an example of an execution result management table; 
         FIG. 42  is a flowchart illustrating an example of a process carried out by a workflow executing unit; 
         FIG. 43  is a flowchart illustrating an example of a process of setting output information of an operation component whose execution is omitted; 
         FIG. 44  is a flowchart illustrating an example of a process carried out by an exclusive control unit; 
         FIG. 45  is a flowchart illustrating an example of an exclusive control process performed at start of a workflow; 
         FIG. 46  is a flowchart illustrating an example of a process of provisionally determining an exclusive section; 
         FIG. 47  is a flowchart illustrating an example of a process of calculating the execution priority of the exclusive section; 
         FIG. 48  is a flowchart illustrating an example of the exclusive control process performed when a workflow is running; 
         FIG. 49  is a flowchart illustrating an example of an exclusive action determination process; 
         FIG. 50  is a flowchart illustrating an example of a process of optimization control workflow assembly (registration); 
         FIG. 51  is a flowchart illustrating an example of a process of optimization control workflow assembly (change); 
         FIG. 52  is a flowchart illustrating an example of a process of optimization control workflow assembly (deletion); 
         FIG. 53  is a flow chart illustrating an example of a correction process; 
         FIG. 54  illustrates an example of a workflow in which loops of different exclusive sections may occur; and 
         FIG. 55  illustrates an example of a workflow including parallel branches. 
     
    
    
     DESCRIPTION OF EMBODIMENTS 
     Several embodiments will be described below with reference to the accompanying drawings, wherein like reference numerals refer to like elements throughout. 
     (a) First Embodiment 
       FIG. 1  illustrates a configuration and processing example of a workflow control apparatus according to a first embodiment. A workflow control apparatus  1  is an apparatus for controlling execution of a plurality of workflows, and includes a storage unit  3  storing therein workflow definition information  2 ; and a control unit  4 . 
     In the workflow definition information  2 , the content of tasks included in a plurality of individual workflows is defined. Each workflow includes one or more tasks. Each task included in a workflow is for carrying out some sort of operation on a resource, for example, monitoring and maintenance of the resource. The term ‘resource’ here means, for example, an external apparatus of the workflow control apparatus  1  or a program to be executed by the external apparatus. According to the example of  FIG. 1 , servers  5  are illustrated as an example of such external apparatuses. A plurality of workflows may individually include tasks using the same resource. 
     Based on the workflow definition information  2 , the control unit  4  identifies, among the tasks included in the workflows, a plurality of tasks using the same resource. Then, based on the content of each of the identified tasks, defined in the workflow definition information  2 , the control unit  4  determines an execution sequence of the tasks. Subsequently, based on the content of each of the identified tasks and the determined execution sequence of the tasks, the control unit  4  identifies one or more tasks whose execution is omissible among the tasks. In this manner, the control unit  4  is able to identify tasks whose execution is omissible among a plurality of workflows. 
     Workflows  11  and  12  are illustrated on the right side of  FIG. 1 . Using the example of the workflows  11  and  12 , the following explains an example of processing performed by the control unit  4 . The workflow includes tasks  11   a  to  11   d , and the workflow  12  includes tasks  12   a  to  12   c . The control unit  4  identifies, among the tasks included in the workflows  11  and  12 , tasks using resource R, for example (step S 1 ). Assume that, in the workflow  11 , the tasks  11   a  and  11   b  are identified as tasks using resource R. In the following description, a section in which the tasks  11   a  and  11   b  are sequentially executed is referred to as ‘section r 1 ’. Assume on the other hand that, in the workflow  12 , the tasks  12   b  and  12   c  are identified as tasks using resource R. A section in which the tasks  12   b  and  12   c  are sequentially executed is referred to as ‘section r 2 ’. 
     Next, the control unit  4  determines an execution sequence of the tasks  11   a ,  11   b ,  12   b , and  12   c  based on the content of each of the tasks  11   a ,  11   b ,  12   b , and  12   c , which content is defined in the workflow definition information  2  (step S 2 ). Assume here that the sequence is determined as the tasks  11   a ,  11   b ,  12   b , and  12   c  in the stated order. Note that the determination of the execution sequence is based on calculation, for example, of execution priority of the sections r 1  and r 2 . 
     Subsequently, based on the content of each of the tasks  11   a ,  11   b ,  12   b , and  12   c  and the determined execution sequence of the tasks  11   a ,  11   b ,  12   b , and  12   c , the control unit  4  identifies, among the tasks  11   a ,  11   b ,  12   b , and  12   c , tasks whose execution is omissible (step S 3 ). Assume here that the execution of the tasks  11   b  and  12   b  is determined to be omissible. Note that when subsequently the time to execute each of the tasks  11   b  and  12   b  comes, the control unit  4  is able to skip the tasks  11   b  and  12   b  and execute the task  12   c.    
     According to the above-described process, focusing on the content of tasks using the same resource facilitates analysis and comparison of the content of tasks, which in turn facilitates identifying omissible tasks and also improves the accuracy of the identification. For example, by identifying tasks using the same resource, it is possible to easily identify, among the tasks, tasks whose content is the same and tasks having contents opposite to each other. 
     In addition, focusing on the execution sequence determined based on the content of tasks using the same resource enables appropriate determination on selecting tasks whose content is compared to each other in order to identify omissible tasks. For example, because a plurality of tasks using the same resource are not executed concurrently in time, the execution sequence of the individual tasks is clearly determined in time series. For example, in the case where one or both of two consecutive tasks are omissible, it is possible to appropriately determine these two consecutive tasks. 
     As for sections (for example, the sections r 1  and r 2  of  FIG. 1 ) included in individual workflows, in which sections tasks using the same resource are executed, the execution is preferably carried out for each of the sections in a mutually exclusive manner. This enables the consistency of the content and results of the tasks to be maintained, and also improves the processing efficiency. 
     According to the first embodiment, the workflow control apparatus  1  identifies omissible tasks by focusing on tasks using the same resource, to thereby determine an execution sequence not based on individual tasks, but based on individual sections executed in a mutually exclusive manner. As a result, it is possible to determine omissible tasks by comparing the content of appropriate tasks. In the case of the workflows  11  and  12  of  FIG. 1 , for example, the comparison is made between the sections r 1  and r 2 , which thereby limits pairs of tasks to be compared to two pairs of the tasks  11   a  and  12   c  and the tasks  11   b  and  12   b . In addition, it is possible to reduce the likelihood of losing the processing consistency when the execution of tasks determined to be omissible is skipped. 
     (b) Second Embodiment 
       FIG. 2  illustrates a configuration example of an operational system according to a second embodiment. The operational system of  FIG. 2  includes an operation automation server  100  and one or more business servers  210 . The operation automation server  100  and the business servers  210  are connected to each other via a network  200 . The business servers  210  carry out various types of business processes. The operation automation server  100  manages operational work, such as monitoring and maintenance, of the business servers  210  by automating the operational work. Using RBA, the operation automation server  100  manages operations of the business servers  210  according to workflows describing operational work procedures of the business servers  210 . 
       FIG. 3  illustrates an example of a hardware configuration of an operation automation server. The operation automation server  100  is implemented, for example, as a computer of  FIG. 3 . Overall control of the operation automation server  100  is exercised by a processor  101 . To the processor  101 , a random access memory (RAM)  102  and a plurality of peripherals are connected via a bus  108 . The processor  101  may be a multi-processor. The processor  101  is, for example, a central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), or a programmable logic device (PLD). Alternatively, the processor  101  may be a combination of two or more of these devices. 
     The RAM  102  is used as a main storage device of the operation automation server  100 . The RAM  102  temporarily stores therein at least part of an OS program and application programs to be executed by the processor  101 . The RAM  102  also stores therein various types of data to be used by the processor  101  for its processing. The peripherals connected to the bus  108  include a hard disk drive (HDD)  103 , a graphics processing unit  104 , an input interface  105 , a reader  106 , and a communication interface  107 . 
     The HDD  103  is used as a secondary storage device of the operation automation server  100 . The HDD  103  stores therein the OS program, application programs, and various types of data. Note that, as a secondary device, a different type of non-volatile storage device such as a solid state drive (SSD) may be used in place of the HDD  103 . 
     To the graphics processing unit  104 , a display device  104   a  is connected. According to an instruction from the processor  101 , the graphics processing unit  104  displays an image on a screen of the display device  104   a . A cathode ray tube (CRT) display or a liquid crystal display, for example, may be used as the display device  104   a.    
     To the input interface  105 , an input device  105   a  is connected. The input interface  105  transmits signals output from the input device  105   a  to the processor  101 . The input device  105   a  is, for example, a keyboard or a pointing device. Examples of the pointing device include a mouse, a touch panel, a tablet, a touch-pad, and a track ball. 
     On the reader  106 , a portable storage medium  106   a  is loaded. The reader  106  reads data recorded on the portable storage medium  106   a  and transmits the read data to the processor  101 . The portable storage medium  106   a  may be an optical disk, a magneto optical disk, or a semiconductor memory, for example. 
     Via the network  200 , the communication interface  107  transmits and receives data to and from different apparatuses such as the business servers  210 . 
     The hardware configuration described above achieves processing functions of the operation automation server  100 . Note that the business servers  210  of  FIG. 2  and the workflow control apparatus  1  of  FIG. 1  may also be individually implemented as a computer with the hardware of  FIG. 3 . 
       FIG. 4  is a block diagram illustrating a configuration example of processing functions of an operation automation server. The operation automation server  100  includes an exclusive control unit  110  and workflow executing units  120 . Processes of the exclusive control unit  110  and the workflow executing units  120  are implemented, for example, by execution of predetermined programs by the processor  101  of the operation automation server  100 . 
     The exclusive control unit  110  manages the execution of workflows. The term ‘exclusive section’ in this specification refers to a predetermined section of a workflow, in which exclusive control is exercised. The term ‘exclusive control’ refers to control exercised in the case where a plurality of workflows are running at the same time and contention would take place if the workflows use a common resource at the same time. The exclusive control allows only one workflow to run at a time and puts other workflows into a process wait state, to thereby avoid the contention for the resource. The exclusive control unit  110  dynamically determines exclusive sections during the execution of the workflows. Once determining the exclusive sections, the exclusive control unit  110  controls an execution sequence of the workflows according to anticipated operation priority. In addition, the exclusive control unit  110  removes redundant operations to thereby optimize the operation procedure. 
     The workflow executing units  120  execute workflows under the control of the exclusive control unit  110 . The workflow executing units  120  are provided in one-to-one correspondence with workflows. That is, in the case where a plurality of workflows are executed, there are provided a plurality of workflow executing units  120 . Note in the following that when simply referred to as ‘the workflow executing unit  120 ’, it means one of the workflow executing units  120 , associated with a workflow concerned. 
     The operation automation server  100  also includes a storage unit  130  for storing various types of information used for processes of the exclusive control unit  110  and the workflow executing units  120 . The storage unit  130  stores therein the following tables: a workflow management table  131 , an operation component definition table  132 , a variable management table  133 , an instance management table  134 , an exclusive information management table  135 , an exclusive right acquisition history table  136 , a user coefficient table  137 , an initiation method coefficient table  138 , a time coefficient table  139 , an optimization target component definition table  140 , an optimization control workflow management table  141 , and an execution result management table  142 . 
     The workflow management table  131  stores therein information of operation components included in individual workflows. The operation component definition table  132  stores therein definition information of the operation components. 
     The variable management table  133  stores therein variable names and values used in instances. The instance management table  134  stores therein information managed for each of the instances. 
     The exclusive information management table  135  stores therein information of exclusive sections. The exclusive right acquisition history table  136  stores therein history information regarding exclusive right (execution right) acquisition of the exclusive sections. 
     The user coefficient table  137  stores therein user coefficients for individual users. The initiation method coefficient table  138  stores therein initiation method coefficients for individual workflow initiation methods. The time coefficient table  139  stores therein time coefficients for individual remaining time periods until an operation is completed. 
     The optimization target component definition table  140  stores therein information of operation components targeted for optimization (that is, targeted for execution omission). The optimization control workflow management table  141  stores therein information of optimization control workflows each assembled for a different exclusive resource. The execution result management table  142  stores therein information regarding execution results for the operation components targeted for optimization. 
     Next described in detail are processes carried out by the operation automation server  100 . First, ‘dynamic exclusive control during execution of workflows’ that is a basic process of the operation automation server  100  is described, which is then followed by a description of ‘operation procedure optimization control by removing redundant operations’. 
     &lt;Dynamic Exclusive Control during Execution of Workflows&gt; 
     During the execution of a plurality of workflows, the operation automation server  100  dynamically determines appropriate exclusive sections according to the progress of each workflow. When a workflow starts running, the exclusive control unit  110  provisionally determines exclusive sections based on types of operation components included in the workflow and resources (operation targets and variables) to be used by the operation components. Based on the provisionally determined exclusive sections, the exclusive control unit  110  dynamically determines exclusive sections when the workflow is running in view of the progress of the execution of other workflows and their exclusive control situation. Here, the term ‘operation components’ refers to scripts directed to the business servers  210  so as to cause the business servers  210  to automatically execute individual tasks included in workflows. 
     In addition, when determining exclusive sections, the exclusive control unit  110  takes into account a workflow having acquired an exclusive right, information of scheduled acquisition of an exclusive right by other workflows having yet to acquire the exclusive right, and execution priority, and thereby exercises exclusive control based on a prediction. Therefore, the exclusive control unit  110  makes timely and appropriate changes to the operation sequence of workflows. 
       FIG. 5  is a flowchart illustrating an example of an overall process of an operation automation server. When a workflow is registered in the operation automation server  100 , the exclusive control unit  110  carries out a modeling process (step S 11 ) and an exclusive-section initial setting process (step S 12 ). In addition, when the workflow is running, the exclusive control unit  110  carries out an exclusive-section resetting process (step S 13 ). 
     First explained are the processes carried out when a workflow is registered. The modeling process (step S 11 ) includes the following processing. That is, the exclusive control unit  110  groups operation components of the registered workflow by the content of the operation components, and then defines operational importance of each group. For example, the exclusive control unit  110  sets the operational importance of setting-related operation components, such as information registration in the business servers  210  and network setting, to ‘high’ (or ‘3’). In addition, the exclusive control unit  110  sets the operational importance of operation-related operation components, such as restart of the OS and start-up of a service, to ‘medium’ (or ‘2’). The exclusive control unit  110  sets the operational importance of reference-, confirmation-, and notification-related operation components, such as confirmation of the server/service status, to ‘low’ (or ‘1’). This allows operation components defined in the workflow to be models (i.e., simplified representations), as explained in  FIGS. 6A and 6B  below. In a modeled workflow, the operational importance is determined for each operation component. 
       FIGS. 6A and 6B  illustrate modeling of operation components defined in workflows. According to an example of  FIG. 6A , the following operation components are defined in workflow A: acquisition of operation target or resource  21 ; service stop  22 ; confirmation of service stop  23 ; server stop  24 ; server start-up  25 ; confirmation of server start-up  26 ; and error notification mail  27  and  28 . According to an example of  FIG. 6B , the following operation components are defined in workflow B: acquisition of operation target or resource  31 ; software installation  32 ; information registration  33 ; server restart  34 ; confirmation of server start-up  35 ; mail transmission  36 ; and error notification mail  37 . 
     When workflow A is modeled, the individual operation components are changed as follows: acquisition of operation target or resource  21  is modeled into a reference-related operation component  21 - 1  with an importance of 1; service stop  22  is modeled into an operation-related operation component  22 - 1  with an importance of 2; confirmation of service stop  23  is modeled into a reference-related operation component  23 - 1  with an importance of 1; server stop  24  is modeled into an operation-related operation component  24 - 1  with an importance of 2; server start-up  25  is modeled into an operation-related operation component  25 - 1  with an importance of 2; confirmation of server start-up  26  is modeled into a reference-related operation component  26 - 1  with an importance of 1; and error notification mail  27  and  28  are individually modeled into notification-related operation components  27 - 1  and  28 - 1 . 
     When workflow B is modeled, the individual operation components are changed as follows: acquisition of operation target or resource  31  is modeled into a reference-related operation component  31 - 1  with an importance of 1; software installation  32  is modeled into a setting-related operation component  32 - 1  with an importance of 3; information registration  33  is modeled into a setting-related operation component  33 - 1  with an importance of 3; server restart  34  is modeled into an operation-related operation component  34 - 1  with an importance of 2; confirmation of server start-up  35  is modeled into a reference-related operation component  35 - 1  with an importance of 1; and mail transmission  36  and error notification mail  37  are individually modeled into notification-related operation components  36 - 1  and  37 - 1 . 
     Subsequently, the exclusive-section initial setting process (step S 12  of  FIG. 5 ) is carried out, which includes the following processing. As described in  FIGS. 7A, 7B and 8  below, the exclusive control unit  110  automatically determines exclusive sections based on (i) the same operation targets and the use of the same variables and (ii) flows of resources (passing of variables) used by individual operation components. Specifically, to determine an exclusive section, the exclusive control unit  110  checks whether or not consecutive operation components have the same operation target server, or have the same operation target server and the same operation content (such as a service, and software to be installed). Note that ‘A’ in the notation of [exclusive section: A] is referred to as the exclusive section name. For example, a section whose operation target is server A is defined by the notation [exclusive section: A]. Similarly, a section whose operation target is server B is defined by the notation [exclusive section: B]. In addition, within [exclusive section: A], a section whose operation content is service X is defined by the notation [exclusive section: A+X]. Within [exclusive section: A], a section whose operation content is InstallSoftY is defined by the notation [exclusive section: A+Y]. A section in which output information of an operation component is input to the subsequent operation component is defined by the notation [exclusive section: C]. 
       FIGS. 7A and 7B  illustrate processing for determining exclusive sections based on the same operation targets and the use of the same variables. According to  FIG. 7A , the operation components  22 - 1  and  23 - 1  have the same operation target, ‘server A’, and the same service, ‘service X’. In this case, the exclusive control unit  110  determines the operation components  22 - 1  and  23 - 1  as [exclusive section: A+X]. The operation target of the operation component  24 - 1  is server A. In this case, the exclusive control unit  110  determines the operation component  24 - 1  as [exclusive section: A]. The operation target of the operation components  25 - 1  and  26 - 1  is server B. In this case, the exclusive control unit  110  determines the operation components  25 - 1  and  26 - 1  as [exclusive section: B]. According to  FIG. 7B , the exclusive control unit  110  determines the operation components  32 - 1  and  33 - 1  as [exclusive section: A+Y], and determines the operation components  34 - 1  and  35 - 1  as [exclusive section: A]. 
     Note that the exclusive control unit  110  may determine exclusive sections based on flows of resources (passing of variables) used by individual operation components. In this processing, the exclusive control unit  110  determines a section for exclusive control based on whether an output value of an operation component is used as an input value of the subsequent operation component. For example, in the case where an event log (log information) acquired from a server (referred to as ‘server C’) is stored in a database server, the exclusive control unit  110  defines a corresponding section by the notation [exclusive section: C]. 
     Lock contention in each exclusive section occurs if one of the following cases regarding exclusive section names is true: 
     (i) the name of an exclusive section acquiring an exclusive right at least partially matches the name of an exclusive section having acquired an exclusive right; and 
     (ii) the name of an exclusive section having acquired an exclusive right at least partially matches the name of an exclusive section acquiring an exclusive right. 
     Therefore, the exclusive control unit  110  determines whether the name of an exclusive section acquiring an exclusive right at least partially matches the name of an exclusive section having acquired an exclusive right, or whether the name of an exclusive section having acquired an exclusive right at least partially matches the name of an exclusive section acquiring an exclusive right. If determining that the name of an exclusive section acquiring an exclusive right at least partially matches the name of an exclusive section having acquired an exclusive right, the exclusive control unit  110  determines the occurrence of exclusive lock contention. Also if determining that the name of an exclusive section having acquired an exclusive right at least partially matches the name of an exclusive section acquiring an exclusive right, the exclusive control unit  110  determines the occurrence of exclusive lock contention. 
       FIG. 8  illustrates a lock contention relationship of exclusive sections. For example, if the exclusive section having acquired an exclusive right is [exclusive section: A] and the exclusive section acquiring an exclusive right is one of [exclusive section: A], [exclusive section: A+X], and [exclusive section: A+Y], exclusive lock contention occurs. On the other hand, if the exclusive section having acquired an exclusive right is [exclusive section: A] and the exclusive section acquiring an exclusive right is either [exclusive section: B] or [exclusive section: C], extensive lock contention does not take place. 
     Next explained is the process carried out when a workflow is running. The exclusive-section resetting process (step S 13  of  FIG. 5 ) includes the following processing. That is, when a workflow is initiated, the exclusive control unit  110  acquires and analyzes the content of the workflow. Then, the exclusive control unit  110  adjusts and determines exclusive sections of the initiated workflow based on all operation components included in the workflow. The exclusive control unit  100  also adjusts and determines exclusive sections of already running workflows based on all operation components included in the running workflows. Based on the adjustment and determination results, the individual workflow executing units  120  instruct the business servers  210  about the execution of the operation components. 
     The following gives a detailed description of the process carried out when a workflow is running (i.e., the exclusive-section resetting process). 
     (1-1) Details of Acquisition and Analysis of Workflow Content 
     When a workflow is initiated, the exclusive control unit  110  determines the execution priority of the workflow in the following manner. First, the exclusive control unit  110  acquires information of operation components defined in the workflow and resources to be used by the operation components, which information is preliminarily registered in a storage device of the operation automation server  100 . Subsequently, based on the information of the resources to be used by the individual operation components (information of operation targets and content of variables), the exclusive control unit  110  carries out the same process as step S 12  of  FIG. 5  once again and, then, carries out exclusive section resetting in the following cases. That is, when, in exclusive sections in each of which a different variable is used as an input, a change is made in such a manner that the variables have the same value, the exclusive control unit  110  merges the exclusive sections. In addition, when, in an exclusive section set based on the same variable, a change is made to the content of the variable, the exclusive control unit  110  splits the exclusive section. 
       FIG. 9  illustrates an example of merging exclusive sections. The example of  FIG. 9  illustrates the case of merging exclusive sections when, in the exclusive sections set based on different variables, a change is made in such a manner that the variables have the same value. Prior to the mergence of the exclusive sections, the operation components  22 - 1  to  24 - 1  are set as [exclusive section: A] and the operation components  25 - 1  and  26 - 1  are set as [exclusive section: B]. Assume here that the workflow is subsequently executed and a change is made to the value of a variable. As a result of the change, the value of variable A of the operation components  22 - 1  to  24 - 1  is ‘ServerA’, and the value of variable B of the operation components  25 - 1  and  26 - 1  is also ‘ServerA’. In this case, because variable A and variable B in the neighboring [exclusive section: A] and [exclusive section: B] have the same value, the exclusive control unit  110  merges [exclusive section: A] and [exclusive section: B] into [exclusive section: A]. 
       FIG. 10  illustrates an example of splitting an exclusive section. The example of  FIG. 10  illustrates the case of splitting an exclusive section when, in an exclusive section set based on the same variable, a change is made to the content of the variable. Prior to the split of the exclusive section, the operation components  22 - 1  to  26 - 1  are set as [exclusive section: A]. Assume here that the workflow is subsequently executed and a change is made to a value of the variable. As a result of the change, the value of variable A of the operation components  22 - 1  and  23 - 1  is ‘ServerA’, and the value of variable A of the operation components  24 - 1  to  26 - 1  is ‘ServerB’. In this case, because the operation components  22 - 1  and  23 - 1  and the operation components  24 - 1  to  26 - 1  have different values for variable A, the exclusive control unit  110  splits [exclusive section: A] into [exclusive section: A] and [exclusive section: B]. 
     Next, according to equation (1) below, the exclusive control unit  110  determines the degree of the operational urgency of a workflow based on a user having initiated the workflow, how the workflow has been initiated, and the remaining time before the scheduled time of completion.
 
Degree of Operational Urgency=User Coefficient×Initiation Method Coefficient×Time Coefficient  (1)
 
     The user coefficient is a coefficient of a user having initiated the workflow. For example, an administration user is assigned a user coefficient of 3.0, and a general user is assigned a user coefficient of 2.0. As for the initiation method coefficient, for example, an initiation method coefficient of 2.0 is assigned in the case where the workflow has been initiated manually. When the workflow has been initiated on schedule at a specified time, an initiation method coefficient of 3.0 is assigned. Also, when the workflow has been initiated with a notice from a monitoring system, an initiation method coefficient of 3.0 is assigned. As for the time coefficient, for example, a time coefficient of 1.5 is assigned when the remaining time before the scheduled time of completion is 10 minutes or less. In other cases, or in the case where the scheduled time of completion is not specified, a time coefficient of 1.0 is assigned. 
     Next, the exclusive control unit  110  provisionally determines the execution priority of the workflow according to equation (2) below.
 
Execution Priority=Σ(Operational Importance)×Degree of Operational Urgency  (2)
 
     Here, the calculation of the execution priority to be provisionally determined is demonstrated using an example of workflow A in which an operation-related operation component 1 and a reference-related operation component 2 are designated as an exclusive section. Assume here that workflow A is assigned a user coefficient of 2.0, an initiation method coefficient of 1.0, and a time coefficient of 1.5. The operation importance of the operation component 1 is ‘2’ and that of the operation component 2 is ‘1’, and therefore, the sum of the operational importance, Σ(operational importance), is: 2+1=3. According to equation (1), the degree of the operational urgency is: 2.0×1.0×1.5=3.0. As a result, according to equation (2), the execution priority is: 3×3.0=9.0. 
     (1-2) Adjustment and Determination of Provisionally Determined Exclusive Section when Workflow is Running 
     Next, the exclusive control unit  110  adjusts and determines a provisionally determined exclusive section when a workflow is running. When the workflow is running, the exclusive control unit  110  changes the execution priority according to branches in the workflow and processing results of operation components. Then, according to the execution priority, the exclusive control unit  110  determines whether to immediately execute an operation component following a currently executed operation component or keep it wait. The adjustment and determination process is achieved by the following steps (I) to (V). 
     (I) The exclusive control unit  110  receives predetermined notification from the workflow executing unit  120 . 
     (II) The exclusive control unit  110  carries out the processes described in ‘Details of Acquisition and Analysis of Workflow Content’ in (1-1) above, to thereby determine exclusive sections and execution priority once again. 
     (III) The exclusive control unit  110  stores, in a storage device, the exclusive sections and execution priority re-determined in (II) above. 
     (IV) The exclusive control unit  110  extracts, from workflows currently being executed, an exclusive section having the highest execution priority. 
     (V) The exclusive control unit  110  determines whether to immediately execute a following operation component of the workflow or keep it wait. At this point, the exclusive control unit  110  causes the operation component to be executed when the workflow is determined to acquire an exclusive right. On the other hand, when another workflow has acquired an exclusive right in preference, the exclusive control unit  110  delays the execution of the operation component. 
     Steps (IV) and (V) above are explained further with reference to  FIGS. 11 to 16 .  FIGS. 11 and 12  illustrate an example of extracting an exclusive section having the highest execution priority and determining whether to execute a following operation component. Assume in  FIGS. 11 and 12  that workflows A, B, and C are executed in parallel. In each workflow of  FIGS. 11 and 12 , an inverted triangle indicates a current processing point in the workflow. While a workflow is holding an exclusive right (execution right) to be described later, the workflow is allowed to execute its operations. 
     In  FIG. 11 , when the operation of [exclusive section: A+X] of workflow A is about to be executed, workflow A is placed into a wait state until exclusive control associated with workflow C is released because [exclusive section: A+X] of workflow C has higher execution priority (step S 21 ). Because [exclusive section: A+Y] of workflow B does not conflict with [exclusive section: A+X], workflow B acquires an exclusive right (execution right) (step S 22 ). Because [exclusive section: A+X] of workflow C has the highest execution priority among the exclusive sections of workflows A, B, and C at this point in time, workflow C acquires an exclusive right (execution right) (step S 23 ). 
     Next, as illustrated in  FIG. 12 , when the operation of [exclusive section: A+X] of workflow C is completed, the exclusive control associated with [exclusive section: A+X] is released. As a result, workflow A acquires an exclusive right (execution right) (step S 24 ) because [exclusive section: A+X] of workflow A has the highest execution priority. As for [exclusive section: A] of workflow C, workflow C is placed into a wait state until the exclusive control associated with [exclusive section: A+X] of workflow A is released (step S 25 ). Subsequently, when the operation of [exclusive section: A+X] of workflow A is completed, the exclusive control associated with [exclusive section: A+X] is released although no illustration is made in  FIG. 12 . At this point, if [exclusive section: A] of workflows B and C have the same execution priority, workflow C acquires an exclusive right (execution right) in preference to workflow B because of its administrative privileges (that is, because of having a larger user coefficient). 
       FIGS. 13 and 14  illustrate an example of acquisition of an exclusive right (execution right) by a workflow in the case where there is a change in the execution priority during execution of workflows. As illustrated in  FIG. 13 , as for [exclusive section: A], when workflow A is about to acquire an exclusive right (execution right), workflow B has higher execution priority for [exclusive section: A] than workflow A does although the current processing point in workflow B is located prior to its [exclusive section: A]. Therefore, workflow A is placed into a wait state (step S 31 ) until workflow B releases exclusive control associated with [exclusive section: A] after acquiring an exclusive right (execution right) for [exclusive section: A] and then carrying out the operation of [exclusive section: A]. Assume, however, that subsequently the time coefficient changes with time, as illustrated in  FIG. 14 . As a result, the execution priority of [exclusive section: A] of workflow A is changed. Since the execution priority of [exclusive section: A] of workflow A becomes higher, the workflow A acquires an exclusive right (execution right) and carries out the operation of its [exclusive section: A] (step S 32 ). 
     As illustrated in  FIGS. 11 to 14  above, exclusive sections of individual workflows, which sections use the same resource, are processed sequentially in descending order of the execution priority. If there is a change in the execution priority among the workflows, the execution priority is examined once again, and the operation of an exclusive section having the highest execution priority at that point in time is executed first. 
     &lt;Operation Procedure Optimization Control by Removing Redundant Operations&gt; 
     Because workflows are individually defined, a plurality of workflows executed around the same time may include redundant operations for the same operation target.  FIG. 15  illustrates an example of a plurality of workflows including redundant operations for the same operation target. For example, the following two cases are considered as the execution of redundant operations: (1) the same operation is carried out consecutively (i.e., in an uninterrupted succession) on the same operation target; and (2) operations opposite to each other are carried out consecutively on the same operation target. 
     According to the example of  FIG. 15 , an operation of starting a service is carried out at the end of [exclusive section: A] of workflow B, and then an operation of starting the service is carried out at the beginning of [exclusive section: A] of workflow C. In this case, the same operation of starting the service is performed consecutively and, therefore, redundantly although the operation needs to be executed only once. 
     In addition, in  FIG. 15 , an operation of starting the service is carried out at the end of [exclusive section: A] of workflow A, and then an operation of stopping the service is carried out at the beginning of [exclusive section: A] of workflow B. In this case, the opposite operations of starting the service and stopping the service are performed consecutively. However, consecutively executing the opposite operations is unnecessary and, therefore, redundant. 
     The execution of redundant operations as illustrated in the example of  FIG. 15  unnecessarily lengthens the workflow processing time. In the case where workflows are implemented for the purpose of maintaining resources such as business servers and programs, the execution of redundant operations in fact shortens the time for the resources to be used for services, which results in a decrease in service performance. In addition, the execution of redundant operations increases the number of operating instructions to the business servers, putting unnecessary load on the network. Further, unnecessary repetition of service start and stop lengthens the stop time of the service, which also results in a decrease in service performance. 
     One way to avoid redundant operations from being executed may be, for example, to adopt such measures that eliminate the redundant operations when workflows are developed. Specifically, when developing workflows, the developer removes operational redundancy by sorting out workflows to be executed concurrently and then checking operation contents defined in the individual workflows against the workflow execution schedule. However, it is not easy for the developer to design individual workflows, considering in advance the operation relationship among a plurality of workflows. For example, business operations include not only regularly scheduled services for which set workflows are implemented but also irregular services, for example, for handling troubles and accommodating occasional requests, and workflows corresponding to such irregular services are also executed. Workflows executed at the same time may include those executed irregularly, and in such a case, the developer is not able to comprehend whether redundant operations take place, at the time of workflow development. 
     Therefore, in order to reliably avoid the execution of redundant operations, it is desired to dynamically detect the redundant operations when workflows are executed and appropriately omit the execution of such redundant operations, to thereby dynamically remove operational redundancy. However, this has challenges, for example, as described in  FIGS. 16 and 17  below. 
       FIG. 16  is a first diagram for illustrating challenges for dynamic detection and omission of redundant operations. One challenge is how to cope in the case where workflows include an operation component for implementing conditional branching. When there is conditional branching, operation components to be executed are changed according to its branch condition. Therefore, even when there is an apparently redundant operation after conditional branching, the operation may or may not be omissible depending on determination on a branch destination. 
     For example, in  FIG. 16 , operation component T included in workflow B implements conditional branching based on, for example, the result of a previously executed operation. Assuming that the branch destination of operation component T is determined to be an operation component  42 , [exclusive section: A] of workflow B is executed after [exclusive section: A] of workflow A. In this case, it is possible to omit the execution of opposite operations, an operation component  41  for starting a service and the operation component  42  for stopping the service. However, if the branch destination of operation component T is determined to be operation component U, the execution of the operation component  41  is not omissible. Thus, when there is conditional branching, omissible operations are not detected properly. 
     In addition, assume that, according to the example of  FIG. 16 , the execution of the operation component  41  is omitted before the branch destination of operation component T is determined. In this case, if the branch destination of operation component T is determined to be operation component U, the operation component  41  needs to be executed. However, because workflow A has progressed to a point after the operation component  41  when the branch destination is determined to be operation component U, it is not possible to execute the operation component  41  as an operation of workflow A anymore. 
     The above-described challenge may be solved by uniformly preventing operations from being omitted when workflows include conditional branching. However, because conditional branching is included in many workflows, this method hardly allows for a reduction in the processing time. 
       FIG. 17  is a second diagram for illustrating the challenges for dynamic detection and omission of redundant operations. Another challenge is that, if the execution of an operation is omitted, the execution result is not available in a subsequent operation. 
     For example, in  FIG. 17 , an operation component  44  for transmitting a mail involves reference to the execution result of a preceding operation component  43 . In this case, if the operation component  43  is omitted, the subsequent operation component  44  is not able to be executed because there is no information to be referred to. Thus, when an operation is omitted, a workflow may not be continued due to incapability of the execution of a subsequent operation involving reference to an execution result of the operation. 
     In addition, there is a case where execution information of an operation component is edited by a filter process and then set as a variable to be referred to by a different operation component. In such a case also, the omission of the operation component results in no variable being set for the different operation component to refer to, and therefore the workflow is not continued. 
     In view of the above-described challenges, the operation automation server  100  of this embodiment dynamically detects and omits redundant operations in the following manner, to thereby optimize the operational procedure of workflows.  FIG. 18  illustrates an example of assembling optimization control workflows. When a workflow is executed, the exclusive control unit  110  collects operation components for operating the same exclusive resource and assembles virtual workflows for individual exclusive resources. Such a virtual workflow is herein referred to as the ‘optimization control workflow’. For example, an optimization control workflow for exclusive resource X is referred to as the ‘optimization control workflow X’. Based on optimization control workflows, the exclusive control unit  110  dynamically determines redundancy in executing operation components according to operation content and execution sequences of other workflows when each workflow is executed, and then appropriately omits the execution of redundant operations. 
     For example, in  FIG. 18 , workflow A includes [exclusive section: Y] and workflow B includes [exclusive section: X] and [exclusive section: Y]. To carry out control of the exclusive sections, the exclusive control unit  110  collects exclusive information of workflows A and B, and manages the exclusive information using the instance management table  134  and the exclusive information management table  135 . The managed exclusive information includes information items of an exclusive resource, an exclusive section, and execution priority. 
     Based on these exclusive information items, the exclusive control unit  110  assembles optimization control workflows in the following manner when workflows A and B are executed. The exclusive control unit  110  generates an instance of optimization control workflow X for exclusive resource X. The exclusive control unit  110  assembles optimization control workflow X based on the exclusive information of [exclusive section: X] of workflow B, and registers information of optimization control workflow X in the optimization control workflow management table  141 . 
     As for exclusive resource Y, the following process takes place since [exclusive section: Y] is set in more than one workflow. The exclusive control unit  110  generates an instance of optimization control workflow Y for exclusive resource Y. The exclusive control unit  110  determines a processing order for exclusive resource Y based on the execution priority of the exclusive sections of workflows A and B. Based on the exclusive information of [exclusive section: Y] of workflow A and [exclusive section: Y] of workflow B, the exclusive control unit  110  assembles optimization control workflow Y, and registers information of optimization control workflow Y in the optimization control workflow management table  141 . 
     Next, the workflow executing units  120  individually in charge of each of workflows A and B check with the exclusive control unit  110  regarding acquisition of an exclusive right when executing each operation component. At this point, the exclusive control unit  110  determines, in an optimization control workflow for a corresponding exclusive resource, the previous and following operation components of the operation component, and determines whether one of the following optimization conditions (that is, conditions for execution omission) is met:
         consecutive execution condition, in which the same operation is consecutively executed on the same operation target; and   opposite operation condition, in which operations opposite to each other are consecutively executed on the same operation target.       

     These optimization conditions are determined based on the optimization target component definition table  140 . The optimization target component definition table  140  holds lists of operation components targeted for optimization, and includes two tables (optimization target component definition tables) individually corresponding to each of the two optimization conditions above. One of the tables includes operation components subject to the consecutive execution condition, and the other table includes paired operation components for carrying out opposite operations, subject to the opposite operation condition. 
       FIG. 19  illustrates an example of omitting operations based on optimization conditions. According to  FIG. 19 , workflows A, B, and C individually include [exclusive section: X]. Assume here that [exclusive section: X] of workflow A, [excusive section: X] of workflow B, and [exclusive section: X] of workflow C are executed in the stated order according to the execution priority. In this case, in optimization control workflow X for exclusive resource X, two opposite operations including an operation component  45  for starting a service and an operation component  46  for stopping the service take place consecutively. Therefore, the operation components  45  and  46  satisfy the opposite operation condition. In addition, in optimization control workflow X, operation components  47  and  48  both for starting a service take place consecutively. Therefore, the operation components  47  and  48  satisfy the consecutive execution condition. 
     As for operation components satisfying one of the optimization conditions, the following processes are carried out: (2-1) omission of execution of operation component; (2-2) setting of execution result for omitted operation component; and (2-3) implementation of post-process for omitted operation component. The following gives a detailed description of each of the processes (2-1), (2-2), and (2-3). 
     (2-1) Omission of Execution of Operation Component 
     As for operation components carrying out the same operation and satisfying the consecutive execution condition, the exclusive control unit  110  causes only one of the operation components to be executed. According to this embodiment, the execution of the latter one of the consecutive operation components is omitted. In the example of  FIG. 19 , the operation component  47  is executed while the execution of the operation component  48  is omitted. 
     As for a pair of operation components satisfying the opposite operation condition, the exclusive control unit  110  causes the execution of both the operation components to be omitted. In the example of  FIG. 19 , the execution of both the operation components  45  and  46  is omitted. 
     Note that when the execution of operation components satisfying the opposite operation condition is omitted, the following process is carried out on a workflow including the foregoing one of the operation components (workflow A including the operation component according to the example of  FIG. 19 ) prior to the process of (2-2). That is, the workflow executing unit  120  in charge of the workflow omits the execution of an operation component instructed by the exclusive control unit  110 , and carries out the remaining processes of (2-2) and (2-3) as if the operation component has been executed successfully. 
     Note however that the following process may be carried out in the case where the same operation component as the one omitted is defined in the optimization control workflow. That is, the exclusive control unit  110  puts a workflow including the omitted operation component into an execution wait state until the same operation component is executed. Then, once the same operation component is executed, the exclusive control unit  110  instructs the workflow executing unit  120  in charge of the workflow in an execution wait state to release the workflow from the wait state. Upon receiving the instruction, the workflow executing unit  120  sets, in an execution history database, a result obtained by executing the same operation component prior to the workflow being released from the wait state as an execution result of the omitted operation component. Subsequently, the workflow executing unit  120  carries out the process of (2-3), using the execution result set in the execution history database. Note that this process by the workflow executing unit  120  is performed in place of the process of (2-2). 
     According to the example of  FIG. 19 , after the execution of the operation component  45  is omitted, workflow A is put into a wait state until the operation component  47  of workflow B is executed. Then, when the operation component  47  is executed, workflow A is released from the wait state, and a result obtained by actually executing the operation component  47  is set in the execution history database as an execution result of the omitted operation component  45 . 
     (2-2) Setting of Execution Result for Omitted Operation Component 
     The execution result of an operation component may be used when a subsequent operation component is executed. For this reason, a value indicating successful operation also needs to be set for an omitted operation component as its execution history. 
     When the execution of an operation component satisfying the consecutive execution condition is omitted, the same operation component as the one omitted is always executed immediately before the omission. Therefore, the workflow executing unit  120  sets a result obtained by executing the same operation component immediately before the omitted operation component as the execution result of the omitted operation component. According to the example of  FIG. 19 , when the execution of the operation component  48  of workflow C is omitted, the execution result of the operation component  47  of workflow B is set as the execution result of the omitted operation component  48 . 
     In addition, when the execution of an operation component satisfying the opposite operation condition is omitted, the workflow executing unit  120  sets an execution result for the omitted operation component in the following manner. In the case where the same operation component as the one omitted has been executed at least once in the same workflow after the system is started, the workflow executing unit  120  sets the result of the already executed operation component as the execution result of the omitted operation component. On the other hand, in the case where the same operation component has not been executed even once in the same workflow, the workflow executing unit  120  sets a prepared execution result as the execution result of the omitted operation component. 
       FIG. 20  illustrates an example of setting an execution result for an omitted operation component. According to this embodiment, the execution result management table  142  prestores, in a column headed ‘default value’, execution results for operation components that are omissible according to the opposite operation condition. Subsequently, when such operation components are individually executed for the first time after corresponding workflows are initiated, the execution results are registered in a column headed ‘actual execution result’ of the execution result management table  142 , for example, with respect to each workflow. Then, when omitting the execution of an operation component satisfying the opposite operation condition, the workflow executing unit  120  reads a corresponding execution result from the execution result management table  142  and sets the read execution result in an execution history database  151 . 
     Note that if the same operation component as the one omitted has been executed at least once in any workflow (i.e., either in the same or a different workflow) after the system is started, the workflow executing unit  120  may set a result obtained by the execution as the execution result of an omitted operation component. In addition, when executing an operation component implementing a given operation for the first time, for example, after a corresponding workflow is initiated or in any workflow after the system is started, the workflow executing unit  120  may not omit but always execute the operation component. In this case, there is no need to prepare execution results in advance, and results obtained by actually executing operation components are used. 
     Note that the execution history database  151  may be configured, for example, as a part of the workflow management table  131 . In the execution history database  151 , execution results are set, for example, with respect to each workflow and each operation component. Also, the execution history database  151  may include an omission flag for each operation component, which omission flag indicates that the execution of the operation component has been omitted or not. 
     (2-3) Implementation of Post-process for Omitted Operation Component 
     In the workflow definition information, a filter process (editing process) for an execution result of an operation component may be defined to be performed as a post-process of the operation component. Even when the execution of an operation component for which a filter process has been defined is omitted, the workflow executing unit  120  does not omit but executes the filter process. At that time, an execution result obtained in the above-described procedure is used. 
       FIG. 21  illustrates an example of a filter process performed when the execution of an operation component is omitted. In workflow A of  FIG. 21 , a variable obtained by filtering the execution result of an operation component  51  for starting a service is subsequently referred to when an operation component  52  for creating a file is executed. According to the example of  FIG. 21 , when the operation component  52  is executed, the variable obtained by processing an execution result of the operation component  51  by a filter process is set in the file of a service name list. Therefore, if the execution of the operation component  51  is omitted, information needed when the operation component  52  is executed is not obtained. 
     In view of this, when omitting the execution of the operation component  51 , the workflow executing unit  120  in charge of workflow A acquires a result obtained by previously executing the same operation component or a prepared execution result (default value) according to the above-described procedure. Then, the workflow executing unit  120  carries out a filter process on the acquired execution result, and stores a variable obtained from the filter process in the workflow management table  131 . This enables the needed information to be referenced without any trouble when the operation component  52  is executed. 
     As explained above, the operation automation server  100  assembles an optimization control workflow for each exclusive resource by referencing exclusive information of individual workflows collected for exclusive control. Then, based on the optimization control workflows, the operation automation server  100  identifies, across a plurality of workflows, operations carried out on the same exclusive resources and easily detects omissible, redundant operations among the identified operations. The operation automation server  100  also easily detects omissible, redundant operations, for example, by referring to the optimization target component definition table  140 . 
     Omission of the execution of the detected redundant operations streamlines the processing of workflows, which shortens the entire processing time of the workflows. As a result, it is possible to avoid a situation, for example, where service performance decreases due to prolonged downtime of servers and services caused by unnecessary repetition of start and stop of the servers and services. In addition, the number of operating instructions to the business servers is reduced, which reduces the load on the network. Further, because unnecessary operations are not executed, the time for acquiring an exclusive right is reduced, which also results in reducing the entire processing time of the workflows. 
     In addition, even when omitting the execution of a redundant operation, the operation automation server  100  registers execution result information for the omitted operation in the execution history database  151  by referencing the execution result management table  142 . Further, in the case where a post-process, such as a filter process, needs to be performed using the execution result of an operation, the operation automation server  100  generates the execution result and executes the post-process even when the execution of the operation has been omitted. 
     The processes described above ensure the successful execution of each subsequent operation that references the execution result of an omitted operation. That is, the operation automation server  100  is able to omit the execution of redundant operations without affecting the execution of subsequent operations. 
     Next explained is reassembly of an optimization control workflow. The exclusive control unit  110  reassembles an optimization control workflow when one of the following events occurs:
         the execution of an exclusive section is cancelled due to conditional branching; and   the execution sequence is changed according to a change in the execution priority.       

       FIG. 22  illustrates an example of a workflow including conditional branching. In workflow A of  FIG. 22 , operation component D implements conditional branching. According to the execution result of operation component D, either one of [exclusive section: X] and [exclusive section: Y] is executed. When the execution of workflow A is started (that is, prior to the execution of operation component D), the exclusive control unit  110  registers exclusive information of both the branches of the conditional branching (that is, exclusive information of the individual exclusive resources X and Y) in the exclusive information management table  135 . The exclusive control unit  110  assembles an optimization control workflow for each of exclusive resources X and Y. Subsequently, when the execution of operation component D is completed, one of [exclusive section: X] and [exclusive section: Y] is determined not to be executed. Thus, in the case where the execution of operation components of an entire exclusive section is cancelled, an optimization control workflow for an exclusive resource corresponding to the exclusive section needs to be reassembled. 
       FIG. 23  illustrates an example of reassembling an optimization control workflow in association with conditional branching. The example of  FIG. 23  illustrates a case where workflows B and C are executed with workflow A of  FIG. 22 . Prior to the execution of operation component D (refer to  FIG. 22 ) for implementing conditional branching, optimization control workflow X for exclusive resource X and optimization control workflow Y for exclusive resource Y are assembled, as illustrated in the upper part of  FIG. 23 . 
     Subsequently, for example, when the execution of operation component A is determined according to an execution result of operation component D, the workflow executing unit  120  in charge of workflow A requests the exclusive control unit  110  to delete information of operation components M, N, and O. Upon receiving the deletion request, the exclusive control unit  110  deletes the information of operation components M, N, and O from the workflow management table  131 , and also reassembles optimization control workflow Y for exclusive resource Y. As illustrated in the lower part of  FIG. 23 , the information of operation components M, N, and O included in workflow A is deleted from optimization control workflow Y. 
     Thus, when an operation component for implementing conditional branching is executed and then a branch destination is determined, an optimization control workflow is reassembled if it includes an exclusive section whose execution has been cancelled due to the destination determination. Herewith, even when workflows include an operation component for implementing conditional branching, the operation automation server  100  is able to identify omissible, redundant operations properly. In addition, the operation automation server  100  is able to identify omissible, redundant operations properly while causing individual workflows to be executed, without the need to wait for a branch destination of each conditional branching in the workflows to be determined. Therefore, it is possible to properly identify redundant operations and omit the execution of the redundant operations without a decrease in the execution efficiency of each workflow. 
       FIG. 24  illustrates an example of reassembling an optimization control workflow in response to a change in the execution priority. As mentioned above, the execution priority of individual exclusive sections in running workflows continually changes according to the operational importance, the remaining time before the scheduled time of completion, and the like. Such a change in the execution priority may cause a change in the execution sequence of the exclusive sections. Also, when there is a change in the execution sequence according to a change in the execution priority, a corresponding optimization control workflow needs to be reassembled. 
     Assume in the example of  FIG. 24  that, when optimization control workflow X for exclusive resource X is assembled for the first time, the exclusive section of workflow B has higher execution priority than that of workflow C. In this case, as for the execution sequence in optimization control workflow X, operation components F and G included in workflow B come before operation components M, N, and O included in workflow C, as illustrated in the upper part of  FIG. 24 . 
     Assume that subsequently there is a change in the execution priority of the exclusive section of workflow C and, then, the exclusive section of workflow C has higher execution priority than that of workflow B. In this case, optimization control workflow X is reassembled in such a manner that operation components F and G of workflow B come after operation components M, N, and O of workflow C, as illustrated in the lower part of  FIG. 24 . 
     Thus, even when a change in the execution status of workflows causes a change in the execution priority of exclusive sections of the workflows, the operation automation server  100  reassembles a corresponding optimization control workflow, to thereby properly identify omissible, redundant operations. Note that also in the case where a new workflow including operation components for operating the same exclusive resource is initiated, a corresponding optimization control workflow is reassembled in view of the execution priority of an exclusive section of the new workflow. 
     Next descried are correction processes in response to a change in a target for execution omission.  FIG. 25  illustrates an example of a change in a target for execution omission due to reassembly of an optimization control workflow. When an optimization control workflow is reassembled according to the execution of conditional branching or a change in the execution priority, as described above, an operation component targeted for execution omission may change due to a change in the execution sequence of operation components. For example, as illustrated in  FIG. 25 , an operation component having been a target for execution omission may become no longer a target for execution omission. 
     Assume in  FIG. 25  that operation component C of workflow A and operation component F of workflow B implement, for example, operations opposite to each other, and therefore both of these are targets for execution omission prior to a change in the execution priority. Subsequently, when the execution of operation component C is omitted, the exclusive section of workflow C has higher execution priority than the exclusive section of workflow B. At this point in time, reassembly of optimization control workflow takes place, and the operation component to be executed following operation component C is changed from operation component F to operation component M of workflow C. 
     Due to such a change in the execution sequence, operation component C becomes no longer a target for execution omission. In this case, operation component C whose execution has been once omitted needs to be executed in order to ensure successful execution of workflow C. Operation component C is originally an operation component to be executed as a part of workflow A. However, the processing of workflow A has proceeded as if the execution of operation component C was completed successfully. Therefore, operation component C may not be executed as a part of workflow A anymore. 
     In view of this, one of the following correction processes is carried out in order to execute an operation component whose execution has been omitted. Assume here that an operation component whose execution was omitted but has become needed, (that is, an operation component needing correction) is ‘operation component C’ and a workflow including operation component C is ‘workflow A’. 
     (Correction Process  1 ) 
     In the case where, in workflow A, an operation component following operation component C is in a state waiting for acquiring an exclusive right over a different exclusive resource, the exclusive control unit  110  brings the control of workflow A back to the previous operation component (i.e., operation component C). In this case, the workflow executing unit  120  in charge of workflow A executes operation component C. 
     (Correction Process  2 ) 
     In the case where, in workflow A, an activity involving a process according to an operation by a person is defined after operation component C and the activity is in a state waiting for the operation of a person to be made, the exclusive control unit  110  cancels the execution of the activity and brings the control of workflow A back to the previous operation component (i.e., operation component C). In this case also, the workflow executing unit  120  in charge of workflow A executes operation component C. 
     (Correction Process  3 ) 
     In the case where the processing of workflow A has been further ahead of the operation component following operation component C, or where the execution of workflow A has already been completed, the exclusive control unit  110  executes operation component C on behalf of the workflow executing unit  120 . 
     The individual correction processes above enable the operation automation server  100  to omit the execution of redundant operations while stopping the processing of workflows as little as possible. In addition, even when omitting the execution of redundant operations in this manner, it is possible to ensure performance of operation targets according to workflows. For example, the likelihood of operations of operation target servers and services being interfered is reduced. 
       FIG. 26  illustrates timing for assembling an optimization control workflow. Optimization control workflows are managed in the following manner with respect to individual exclusive resources. As an example, an optimization control workflow for exclusive resource A is described here. When the execution of workflow W 1  including operation components for operating exclusive resource A is started, the exclusive control unit  110  creates instance A 1  of the optimization control workflow for exclusive resource A, and registers the information in the optimization control workflow management table  141  (time T 11 ). Subsequently, when new workflows (workflows W 2  and W 3  according to the example of  FIG. 26 ) including operation components for operating exclusive resource A are individually executed, the exclusive control unit  110  reassembles the optimization control workflow for exclusive resource A (times T 12  and T 13 ). 
     When no more operation component for operating exclusive resource A is running, the exclusive control unit  110  ends instance A 1  of the optimization control workflow for exclusive resource A (time T 14 ). Then, when the execution of new workflow W 4  including operation components for operating exclusive resource A is started, the exclusive control unit  110  creates instance A 2  of an optimization control workflow for exclusive resource A, and registers the information in the optimization control workflow management table  141  (time T 15 ). 
     As just described, when the execution of even one workflow including operation components for operating an exclusive resource is started, an optimization control workflow corresponding to the exclusive resource is assembled. In addition, each time a new workflow including operation components for operating the same exclusive resource is executed, the optimization control workflow is reassembled. In this manner, omissible, redundant operations are detected dynamically. 
     Next described is a process of displaying execution results of optimization control workflows. The exclusive control unit  110  stores execution information of each optimization control workflow in the execution history database  151 . The execution information includes, for example, execution results of corresponding operation components, information regarding execution omission for each of the operation components (for example, an omission flag), and information indicating workflows having actually processed the operation components. Based on information stored in the execution history database  151 , the exclusive control unit  110  sends the execution information of optimization control workflows to a terminal of an administrator, to thereby cause the execution information to be displayed on a screen of the terminal. This allows the administrator to easily check the execution information. The information to be displayed includes the execution status of the optimization, the presence or absence of operation components executed by correction control, and results of the execution by correction control. 
       FIG. 27  illustrates an example of a display of an optimization control workflow list. An optimization control workflow list display screen  61  of  FIG. 27  includes columns for individual data items of exclusive resource name; instance name; data and time of execution; and status. In the exclusive resource name column, each entry contains a name for identifying an exclusive resource. In the instance name column, each entry contains a name for identifying an instance of a corresponding optimization control workflow. In the date and time of execution column, each entry contains a date and time of execution of a corresponding instance. The date and time of execution stored in each entry may indicate the date and time of the start and end of the execution. In the status column, each entry contains status information indicating whether a corresponding instance has been completed or is running. One or more entries in the instance name column are associated with each entry in the exclusive resource name column. Each entry in the date and time of execution column and the status column is associated with a corresponding entry in the instance name column. 
     The optimization control workflow list display screen  61  described above allows the administrator to easily understand how many optimization control workflows have been assembled for each exclusive resource and what the status of each optimization control workflow is. 
       FIG. 28  illustrates a display example of content of an optimization control workflow. An optimization control workflow display screen  62  of  FIG. 28  displays information of operations included in an optimization control workflow, with respect to each instance for each exclusive resource. This allows the administrator to easily understand the content of each optimization control workflow. According to the example of  FIG. 28 , the optimization control workflow display screen  62  includes a list of operation components included in the optimization control workflow and the execution sequence of the operation components. On the optimization control workflow display screen  62 , operation components whose execution has been omitted may be displayed in a different color, for example, to facilitate the administrator to visually distinguish the omitted operation components from others. 
     Next described are examples of information tables used in the processing of the operation automation server  100 . 
       FIG. 29  illustrates an example of a workflow management table. The workflow management table  131  is used to manage operation components included in individual workflows and generated when the workflows are registered. The workflow management table  131  includes columns for individual data items of workflow number (No.); component number; operation component name; operation target; operation service or resource; output; and next component number. 
     In the workflow number column, each entry contains the number for identifying a workflow. In the component number column, each entry contains the number of an operation component included in a corresponding workflow. In the operation component name column, each entry contains the name of a corresponding operation component (operation content). 
     In the operation target column, each entry contains, as an input value, a variable corresponding to the name of an operation target server, device, or the like. In the operation service or resource column, each entry contains, as an input value, a variable corresponding to the name of a service or resource to be operated. In the output column, each entry contains the variable to which an output value is assigned. In the next component number column, each entry contains the number indicating an operation component to be executed next in a corresponding workflow. 
       FIG. 30  illustrates an example of an operation component definition table. The operation component definition table  132  prestores therein definition information of operation components. The operation component definition table  132  includes columns for individual data items of operation component name; component type; operation/confirmation target; and operational importance. 
     In the operation component name column, each entry contains the name of an operation component (operation content). In the component type column, each entry contains the type of a corresponding operation component. Operation components are classified into, for example, the following types: operation-related; confirmation-related; notification-related; and setting-related. In the operation/confirmation target column, each entry contains the operation target or confirmation target of a corresponding operation component. In the operational importance column, each entry contains information indicating operational importance of a corresponding operation component. 
       FIG. 31  illustrates an example of a variable management table. The variable management table  133  is a table for managing variable names and variable values used by instances, which are information identifying entities of defined workflow information. The variable management table  133  includes columns for individual data items of instance number; workflow number; variable name; and variable value. In the instance number column, each entry contains the number for identifying an instance. In the workflow number column, each entry contains the number for identifying a workflow. In the variable name column, each entry contains a variable name. In the variable value column, each entry contains a value set for a corresponding variable. 
       FIG. 32  illustrates an example of an instance management table. The instance management table  134  stores therein information managed for each instance. The instance management table  134  includes columns for individual data items of instance number; workflow number; component number (currently being executed); host name; service name; user identifier (ID); initiation method coefficient; exclusive section number’; and ‘scheduled time of completion. 
     In the instance number column, each entry contains the number for identifying an instance. In the workflow number column, each entry contains the number for identifying a workflow. In the component number (currently being executed) column, each entry contains the number for identifying, within a corresponding workflow, an operation component corresponding to the current processing point. In the host name column, each entry contains the name of a host. In the service name column, each entry contains the name of a service. In the user identifier column, each entry contains information for identifying a user (user identifier). In the initiation method coefficient column, each entry contains an initiation method coefficient. In the exclusive section number column, each entry contains the number for identifying an exclusive section. In the scheduled time of completion column, each entry contains the scheduled time for completing a corresponding workflow. 
       FIG. 33  illustrates an example of an exclusive information management table. The exclusive information management table  135  is used to manage information of exclusive sections. The exclusive information management table  135  includes columns for individual data items of exclusive section number; component number (lock start); component number (lock release); execution priority; and operational urgency. In the exclusive section number column, each entry contains the number for identifying an exclusive section. In the component number (lock start) column, each entry contains the number for identifying the first operation component of a corresponding exclusive section. In the component number (lock release) column, each entry contains the number for identifying the last operation component of a corresponding exclusive section. In the execution priority column, each entry contains the degree of execution priority of a corresponding exclusive section. In the operational urgency column, each entry contains the degree of operational urgency of a corresponding exclusive section. 
       FIG. 34  illustrates an example of an exclusive right acquisition history table. The exclusive right acquisition history table  136  manages information on exclusive right (execution right) acquisition history of exclusive sections. The exclusive right acquisition history table  136  includes columns for individual data items of instance number; workflow number; exclusive section number; start-waiting time; start time; and completion time. 
     In the instance number column, each entry contains the number for identifying an instance. In the workflow number column, each entry contains the number for identifying a workflow. In the exclusive section number column, each entry contains the number for identifying an exclusive section. In the start-waiting time column, each entry contains the waiting time until a corresponding exclusive section acquires an exclusive right (execution right). In the start time column, each entry contains the time when a corresponding exclusive section acquires an exclusive right (execution right). In the completion time column, each entry contains the completion time of operations of a corresponding exclusive section after the exclusive section acquires an exclusive right (execution right) and executes the operations. 
       FIG. 35  illustrates an example of a user coefficient table. The user coefficient table  137  prestores therein user coefficients for individual users. The user coefficient table  137  includes columns for individual data items of user identifier; and user coefficient. In the user identifier column, each entry contains information for identifying a user (user identifier). In the user coefficient column, each entry contains the user coefficient of a corresponding user identifier. 
       FIG. 36  illustrates an example of an initiation method coefficient table. The initiation method coefficient table  138  prestores therein initiation method coefficients for individual initiation methods. The initiation method coefficient table  138  includes columns for individual data items of initiation method; and initiation method coefficient. In the initiation method column, each entry contains a workflow initiation method. In the initiation method coefficient column, each entry contains the coefficient of a corresponding initiation method. 
       FIG. 37  illustrates an example of a time coefficient table. The time coefficient table  139  prestores therein time coefficients for individual periods of time. The time coefficient table  139  includes columns for individual data items of remaining time; and time coefficient. In the remaining time column, each entry contains the remaining time until a scheduled time of completion. In the time coefficient column, each entry contains the time coefficient of corresponding remaining time. 
     Next described is the optimization target component definition table  140 . As described above, the optimization target component definition table  140  holds lists of operation components targeted for optimization, and includes the following two tables. 
       FIG. 38  illustrates an example of one of the optimization target component definition tables. An optimization target component definition table  140   a  prestores therein operation components subject to the consecutive execution condition. The optimization target component definition table  140   a  includes columns for individual data items of operation component; and option. 
     In the operation component column, each entry contains the name of an operation component (operation content) subject to the consecutive execution condition. In the option column, each entry contains the variable assignable to a corresponding operation component. A plurality of entries in the option column may be associated with each entry in the operation component column. 
     When extracting two consecutive operation components having the same name from an optimization control workflow, the exclusive control unit  110  determines that the execution of the latter one of the operation components is omissible if the name has been registered in the optimization target component definition table  140   a.    
       FIG. 39  illustrates an example of the other optimization target component definition table. An optimization target component definition table  140   b  prestores therein operation components subject to the opposite operation condition. The optimization target component definition table  140   b  includes columns for individual data items of Go; and Back, each of which is provided with columns for individual data items of operation component; and option. 
     In the operation component column, each entry contains the name of an operation component (operation content). In the option column, each entry contains the variable assignable to a corresponding operation component. A plurality of entries in the option column may be associated with each entry in the operation component column. An operation component registered in the Go column and a corresponding operation component registered in the Back column form a pair of operation components carrying out operations opposite to each other. 
     The exclusive control unit  110  identifies omissible operation components satisfying the opposite operation condition, for example, in the following procedure. The exclusive control unit  110  identifies, in an optimization control workflow, an operation component registered in the Go column of the optimization target component definition table  140   b . Then, the exclusive control unit  110  determines whether an operation component following the identified operation component in the optimization control workflow has been registered in the Back column, in association with the identified operation component. If such an operation component has been registered in the Back column, the exclusive control unit  110  determines that the execution of the identified operation component and the following operation component is omissible. 
       FIG. 40  illustrates an example of an optimization control workflow management table. The optimization control workflow management table  141  is used to manage optimization control workflows, and includes columns for individual data items of optimization control workflow number; component number; operation component; workflow number; omission flag; execution wait; next component number; and next component number after omission. 
     In the optimization control workflow number column, each entry contains the number for identifying an optimization control workflow. In the component number column, each entry contains the number for identifying an operation component included in a corresponding optimization control workflow. In the operation component column, each entry contains the name of a corresponding operation component (operation content). In the workflow number column, each entry contains the number for identifying a workflow actually including a corresponding operation component. 
     In the omission flag column, each entry contains information indicating whether the execution of a corresponding operation component is omissible. When indicating that the execution is omissible, the information also indicates whether the operation component satisfies the consecutive execution condition or the opposite operation condition. In the execution wait column, each entry contains the number for identifying an operation component whose execution is waited for. 
     In the next component number column, each entry contains the number indicating an operation component to be executed next in a corresponding optimization control workflow. In the next component number after omission column, each entry contains the number indicating an operation component to be executed next in a corresponding optimization control workflow in the case where omission of operation component execution takes place. 
       FIG. 41  illustrates an example of an execution result management table. The execution result management table  142  stores therein information of execution results for individual operation components targeted for execution omission according to the opposite operation condition. The execution result management table  142  includes columns for individual data items of operation component; output information; default value; and actual execution result. 
     In the operation component column, each entry contains the name of an operation component (operation content) targeted for execution omission according to the opposite operation condition. In the output information column, each entry contains the variable to which an output value (execution result) is assigned. A plurality of entries in the output information column may be associated with each entry in the operation component column. In the default value column, each entry contains the default value to be assigned to the variable registered in a corresponding entry in the output information column. Information is prestored in each entry of the operation component, output information, and default value columns. 
     In the actual execution result column, each entry contains the value (actual result) assigned, by actual processing, to the variable registered in a corresponding entry in the output information column. According to this embodiment, when each omission target operation component is executed for the first time after the system is started, the execution result is stored in a corresponding entry of the actual execution result column. Alternatively, each time an omission target operation component is executed, the latest execution result may be stored in a corresponding entry of the actual execution result column. 
     Note that the data item of ‘actual execution result’ may be provided for each workflow. In this case, when each omission target operation component is executed for the first time in a workflow, the execution result is stored in a corresponding entry of the actual execution result column associated with the workflow. Alternatively, each time an omission target operation component is executed in a workflow, the latest execution result may be stored in a corresponding entry of the actual execution result column associated with the workflow. 
     Next described are processes carried out by the operation automation server  100  with reference to flowcharts. 
       FIG. 42  is a flowchart illustrating an example of a process carried out by a workflow executing unit. The process of  FIG. 42  is performed for each workflow by the workflow executing unit  120  in charge of the workflow. 
     [Step S 51 ] When starting the processing of the workflow, the workflow executing unit  120  notifies the exclusive control unit  110  of the start of the workflow and information of variables to be used in the execution of the workflow. The information of variables includes, for example, a user identifier of a user who has initiated the workflow and a workflow initiation method. 
     [Step S 52 ] The workflow executing unit  120  determines an operation component to be executed next by referring to the workflow management table  131 , and then notifies the exclusive control unit  110  of the start of the execution of the operation component. Specifically, the workflow executing unit  120  notifies the exclusive control unit  110  of the identification number of the operation component to be executed and information of variables to be used by the operation component. After notifying the exclusive control unit  110  of these items, the workflow executing unit  120  enters a state waiting for an instruction from the exclusive control unit  110 . 
     The exclusive control unit  110  determines whether the operation component notified in step S 52  is omissible, and issues an instruction according to the determination result to the workflow executing unit  120 . The instruction is one of the following: an execution instruction; an instruction to omit the execution according to the consecutive execution condition; and an instruction to omit the execution according to the opposite operation condition. In addition, the instruction to omit the execution according to the opposite operation condition includes information indicating whether to put a corresponding workflow into an execution wait state. 
     [Step S 53 ] The workflow executing unit  120  receives an instruction from the exclusive control unit  110 . The workflow executing unit  120  determines content of the instruction (steps S 54 , S 55 , and S 58 ) and carries out processing according to the instruction content. 
     [Step S 54 ] If the instruction received in step S 53  is an instruction to omit the execution according to the opposite operation condition, the process moves to step S 55 . If the received instruction is other than an instruction to omit the execution according to the opposite operation condition, the process moves to step S 58 . 
     [Step S 55 ] If the instruction to omit the execution according to the opposite operation condition indicates to put the workflow into an execution wait state, the process moves to step S 57 . If not, the process moves to step S 56 . 
     [Step S 56 ] The workflow executing unit  120  sets, in the execution history database  151 , an execution result for the operation component to be omitted. Details of the process are described in  FIG. 43 . 
     [Step S 57 ] An execution wait is indicated by the instruction when, in an optimization control workflow including the operation component whose execution has been instructed to be omitted, there is the same operation component included in a different workflow. In this case, when the same operation component included in the different workflow is executed, the exclusive control unit  110  instructs the workflow executing unit  120  to cancel the execution wait and also passes the execution result of the different workflow to the workflow executing unit  120 . The workflow executing unit  120  sets the execution result acquired from the exclusive control unit  110  in the execution history data base  151  as an execution result of the operation component whose execution has been omitted. 
     [Step S 58 ] If the instruction received in step S 53  is an instruction to omit the execution according to the consecutive execution condition, the process moves to step S 59 . On the other hand, if the received instruction is an execution instruction, the process moves to step S 60 . 
     [Step S 59 ] The workflow executing unit  120  acquires, from the execution history database  151 , an execution result of the same operation component having been executed immediately before the operation component whose execution has been instructed to be omitted. The workflow executing unit  120  sets the acquired execution result in the execution history database  151  as an execution result of the operation component whose execution is omitted. 
     [Step S 60 ] The workflow executing unit  120  causes the business server  210  to execute an operation corresponding to the operation component, and then sets the execution result in the execution history database  151 . 
     In addition, if the executed operation component is an operation component subject to the opposite operation condition, registered in the optimization target component definition table  140   b , the workflow executing unit  120  carries out the following process. That is, if, within the execution result management table  142 , no information is set in an entry corresponding to the operation component under the column headed ‘actual execution result’, the workflow execution unit  120  sets the execution result in the entry of the actual execution result column. 
     [Step S 61 ] The workflow executing unit  120  determines whether a filter process has been defined for the operation component. If a filter process has been defined, the process moves to step S 62 . If not, the process moves to step S 63 . 
     Note that the content of a filter process corresponding to each operation component may be defined, for example, in the operation component definition table  132  or the workflow management table  131  in association with the operation component. 
     [Step S 62 ] The workflow executing unit  120  carries out the defined filter process on the execution result. 
     [Step S 63 ] The workflow executing unit  120  notifies the exclusive control unit  110  of the end of the execution of the operation component. At the same time, based on the workflow management table  131 , the workflow executing unit  120  determines whether a next operation component has been registered in the workflow. If there is a next operation component, the processing starting from step S 52  is executed for the next operation component. On the other hand, if a next operation component is not present, the workflow executing unit  120  notifies the exclusive control unit  110  of the completion of the workflow and then ends the process. 
       FIG. 43  is a flowchart illustrating an example of a process of setting output information of an operation component whose execution is omitted. The process of  FIG. 43  corresponds to step S 56  of  FIG. 42 . 
     [Step S 81 ] The workflow executing unit  120  determines whether, in a workflow including the operation component whose execution is omitted, the same operation component has already been executed. If the same operation component has already been executed, the process moves to step S 82 . If not, the process moves to step S 84 . 
     [Step S 82 ] The workflow executing unit  120  determines whether the execution of the same operation component has been completed successfully. If the execution has been completed successfully, the process moves to step S 83 . If not, the process moves to step S 84 . 
     [Step S 83 ] The workflow executing unit  120  acquires an execution result of the already executed operation component from the execution history database  151  and, then, sets the acquired execution result in the execution history database  151  as an execution result of the operation component whose execution is omitted. 
     [Step S 84 ] The workflow executing unit  120  determines whether the same operation component as the operation component whose execution is omitted has already been executed after the system is started. If, within the execution result management table  142 , information has been registered in an entry corresponding to the operation component under the column headed ‘actual execution result’, the workflow executing unit  120  determines that the same operation component has already been executed. If the same operation component has already been executed, the process moves to step S 85 . If not, the process moves to step S 86 . 
     [Step S 85 ] The workflow executing unit  120  reads, from the execution result management table  142 , information registered in an entry corresponding to the operation component under the column headed ‘actual execution result’ and, then, sets the read information in the execution history database  151  as an execution result of the operation component whose execution is omitted. 
     [Step S 86 ] The workflow executing unit  120  reads, from the execution result management table  142 , information registered in an entry corresponding to the operation component under the column headed ‘default value’ and, then, sets the read information in the execution history database  151  as an execution result of the operation component whose execution is omitted. 
       FIG. 44  is a flowchart illustrating an example of a process carried out by an exclusive control unit. The process of  FIG. 44  is carried out for each workflow. 
     [Step S 101 ] The exclusive control unit  110  waits for notification sent from the workflow executing unit  120 . When the exclusive control unit  110  receives notification from the workflow executing unit  120 , the process moves to a subsequent step S 102 . 
     [Step S 102 ] If the notification received by the exclusive control unit  110  is the notification of the start of a workflow output in step S 51  of  FIG. 42 , the process moves to step S 103 . In the notification is other kind of notification, the process moves to step S 105 . 
     [Step S 103 ] The exclusive control unit  110  executes an exclusive control process designed for the case where the workflow is started. Details of the process are described in  FIG. 45 . 
     [Step S 104 ] The exclusive control unit  110  executes an optimization control workflow assembling process (registration). Details of the process are described in  FIG. 50 . 
     [Step S 105 ] If the notification received by the exclusive control unit  110  is the notification of ending the execution of an operation component, output in step S 63  of  FIG. 42 , the process moves to step S 106 . On the other hand, if the notification received by the exclusive control unit  110  is the notification of starting the execution of an operation component, output in step S 52  of  FIG. 42 , the process moves to step S 107 . 
     [Step S 106 ] The exclusive control unit  110  executes an optimization control workflow assembling process (deletion). Details of the process are described in  FIG. 52 . 
     [Step S 107 ] The exclusive control unit  110  executes an exclusive control process designed for the case where a workflow is running. Details of the process are described in  FIG. 48 . 
     [Step S 108 ] If the workflow has yet to be completed, the process returns to step S 101 . On the other hand, if the workflow is completed, the exclusive control unit  110  ends the process for the workflow. The exclusive control unit  110  determines completion of the workflow by receiving the notification of the completion of the workflow, output in step S 63  of  FIG. 42 . 
       FIG. 45  is a flowchart illustrating an example of the exclusive control process performed at the start of a workflow. 
     [Step S 121 ] The exclusive control unit  110  acquires, from the workflow management table  131 , information of an execution target workflow (i.e., the workflow, the execution start of which is notified in step S 101  of  FIG. 44 ). 
     [Step S 122 ] The exclusive control unit  110  acquires, from the operation component definition table  132 , ‘component types’ corresponding to ‘operation component names’ included in the execution target workflow information. Herewith, the exclusive control unit  110  determines types of operation components included in the execution target workflow information. 
     [Step S 123 ] The exclusive control unit  110  records, in the variable management table  133 , variable information already established at the start of the workflow. The variable information already established at the start of the workflow is, for example, variables to which values are assigned in advance and variables supplied by the workflow executing unit  120 . 
     [Step S 124 ] The exclusive control unit  110  provisionally determines an exclusive section of the workflow to be started. Details of the process are described in  FIG. 46 . 
     [Step S 125 ] The exclusive control unit  110  calculates execution priority of the provisionally determined exclusive section. Details of the process are described in  FIG. 47 . 
       FIG. 46  is a flowchart illustrating an example of a process of provisionally determining an exclusive section. The process of  FIG. 46  corresponds to each of step S 124  of  FIG. 45  and step S 163  of  FIG. 48  to be described later. 
     [Step S 131 ] The exclusive control unit  101  acquires, from the workflow management table  131 , information of operation components included in the execution target workflow. 
     [Step S 132 ] The exclusive control unit  110  models the operation components of the execution target workflow based on the operation component definition table  132 . That is, based on the operation component definition table  132 , the exclusive control unit  110  converts the operation components of the execution target workflow into corresponding component types. 
     [Step S 133 ] Using the workflow management table  131  and the variable management table  133 , the exclusive control unit  110  extracts consecutive operation components having the same variable value or variable name from the execution target workflow. That is, based on entries in the component number column and the next component number column of the workflow management table  131 , the exclusive control unit  110  determines the operation order of the component types (modeled operation components) of the execution target workflow. Then, based on the variable management table  133 , the exclusive control unit  110  determines whether the same variable value or variable name appears in consecutive operation components in the operation order. As a result, the exclusive control unit  110  extracts, from the workflow management table  131 , a section of consecutive operation components having the same variable value or the same variable name in the operation order. 
     [Step S 134 ] Using the data items under the columns headed ‘operation target’, ‘operation service or resource’, and ‘output’ in the workflow management table  131 , the exclusive control unit  110  extracts, according to the operation order, a section in which an output value (execution result) of an operation component is used as an input value of the subsequent operation component. 
     [Step S 135 ] The exclusive control unit  110  provisionally determines the section extracted in step S 133  or S 134  as an exclusive section. 
     [Step S 136 ] The exclusive control unit  110  provisionally determines execution priority of the provisionally determined exclusive section based on the operation component definition table  132 , the user coefficient table  137 , the initiation method coefficient table  138 , and the time coefficient table  139 . 
     That is, the exclusive control unit  110  acquires, from the operation component definition table  132 , operational importance corresponding to the individual component types included in the provisionally determined exclusive section, and sums the operational importance. In addition, the exclusive control unit  110  acquires, from the user coefficient table  137 , a user coefficient corresponding to a user ID of a user who has initiated the workflow. The exclusive control unit  110  also acquires, from the initiation method coefficient table  138 , an initiation method coefficient corresponding to an initiation method of the workflow. 
     Further, the exclusive control unit  110  calculates the remaining time until a scheduled time of completion of the workflow by subtracting the current time from the scheduled time of completion. At this point, the exclusive control unit  110  may calculate the scheduled time of completion of the workflow based on preliminarily registered time needed for completion of each operation component. Alternatively, the exclusive control unit  110  may use completion time acquired from history information of workflows executed in the past (for example, the exclusive right acquisition history table  136 ) as the scheduled time of completion. The exclusive control unit  110  acquires, from the time coefficient table  139 , a time coefficient corresponding to the calculated remaining time. Subsequently, the exclusive control unit  110  calculates the operational urgency using equation (1) above, and then calculates the execution priority using equation (2) above. 
     [Step S 137 ] The exclusive control unit  110  stores, in the instance management table  134  and the exclusive information management table  135 , information related to the provisionally determined exclusive section (i.e., information used in steps S 133  to S 136 , including the provisionally determined exclusive section, the execution priority, the user coefficient, the initiation method coefficient, and the operational urgency). 
       FIG. 47  is a flowchart illustrating an example of a process of calculating execution priority of an exclusive section. The process of  FIG. 47  corresponds to each of step S 125  of  FIG. 45  and step S 164  of  FIG. 48  to be described later. 
     [Step S 141 ] The exclusive control unit  110  acquires, from the instance management table  134  and the user coefficient table  137 , information related to the provisionally determined exclusive section (such as a user coefficient, an initiation method coefficient, an exclusive section number, and scheduled time of completion). 
     [Step S 142 ] The exclusive control unit  110  acquires, from the operation component definition table  132 , component types included in an exclusive section corresponding to the exclusive section number. 
     [Step S 143 ] The exclusive control unit  110  acquires, from the operation component definition table  132 , information of operational importance for the exclusive section corresponding to the exclusive section number. 
     Note that the operation order of steps S 142  and S 143  may be reversed. 
     [Step S 144 ] The exclusive control unit  110  calculates remaining time until the scheduled time of completion by subtracting the current time from the scheduled time of completion acquired in step S 141 , and then acquires a time coefficient corresponding to the calculated remaining time from the time coefficient table  139 . The exclusive control unit  110  calculates the operational urgency using equation (1) above, and then calculates the execution priority using equation (2) above. 
     [Step S 145 ] The exclusive control unit  110  stores the calculated operational urgency and execution priority in the exclusive information management table  135 . 
       FIG. 48  is a flowchart illustrating an example of the exclusive control process performed when a workflow is running. The process of  FIG. 48  corresponds to step S 107  of  FIG. 44 . 
     [Step S 161 ] The exclusive control unit  110  stores, in the variable management table  133 , information of variables included in information notified by the workflow executing unit  120  (i.e., information of established variables) or variables whose values have been assigned in advance. 
     [Step S 162 ] The exclusive control unit  110  acquires workflow definition information from the instance management table  134 . 
     [Step S 163 ] The exclusive control unit  110  updates information of the provisionally determined exclusive section. Details of the processing of step S 163  are the same as in  FIG. 46 . 
     [Step S 164 ] The exclusive control unit  110  updates the execution priority information. Details of the processing of step S 164  are the same as in  FIG. 47 . 
     [Step S 165 ] The exclusive control unit  110  executes an optimization control workflow assembling process (change). Details of the process are described in  FIG. 51 . 
     [Step S 166 ] The exclusive control unit  110  determines an exclusive action. Details of the process are described in  FIG. 49 . 
       FIG. 49  is a flowchart illustrating an example of an exclusive action determination process. The process of  FIG. 49  corresponds to step S 166  of  FIG. 48 . 
     [Step S 171 ] With respect to the execution target workflow, the exclusive control unit  110  acquires information of the provisionally determined exclusive section and execution priority information. At this point, the exclusive control unit  110  acquires, from the instance management table  134 , information related to the provisionally determined exclusive section of the execution target workflow (such as an exclusive section number). The exclusive control unit  110  acquires the execution priority from the exclusive information management table  135  using the exclusive section number as a key. 
     [Step S 172 ] With respect to workflows currently running, the exclusive control unit  110  acquires execution status of the workflows, information of a currently executed exclusive section and corresponding execution priority information, and information of scheduled provisionally-determined exclusive sections and corresponding execution priority information. At this point, the exclusive control unit  110  loads the instance management table  134  to thereby acquire the execution status of the workflows. 
     As for the currently running workflows (except for the execution target workflow, the execution start of which is notified in step S 101  of  FIG. 44 ), the exclusive control unit  110  acquires the information of the currently executed exclusive section from the instance management table  134  and the exclusive information management table  135 . Specifically, the exclusive control unit  110  first determines a currently targeted operation component (current processing point) in each of the workflows by referring to a corresponding entry under the column headed ‘component number (currently being executed)’ in the instance management table  134 . Next, based on the instance management table  134  and the workflow management table  131 , the exclusive control unit  110  determines which exclusive section the operation component (current processing point) is included in. The exclusive control unit  110  acquires the execution priority from the exclusive information management table  135  using an exclusive section number of the determined exclusive section as a key. 
     [Step S 173 ] As for the currently running workflows (except for the execution target workflow, the execution start of which is notified in step S 101  of  FIG. 44 ), the exclusive control unit  110  acquires information of provisionally determined exclusive sections from the instance management table  134  and the exclusive information management table  135 . Specifically, the exclusive control unit  110  first acquires, from the instance management table  134 , information of exclusive sections other than exclusive sections to which the currently targeted operation components (current processing points) in the workflows belong. Next, the exclusive control unit  110  acquires corresponding execution priority from the exclusive information management table  135  using exclusive section numbers of the exclusive sections as keys. The exclusive control unit  110  extracts an exclusive section having the highest execution priority from all exclusive sections included in the execution target workflow and the workflows whose information is acquired in step S 172 . 
     [Step S 174 ] With reference to the instance management table  134  and the exclusive information management table  135 , the exclusive control unit  110  checks exclusive control information of an execution target operation component (i.e., an operation component, the execution start of which is notified in relation to the latest process of step S 101  in  FIG. 44 ). 
     If the execution target operation component is subject to exclusive control (that is, if the operation component is included in an exclusive section), the exclusive control unit  110  determines whether the execution of the operation component is omissible, based on a corresponding entry under the column headed ‘omission flag’ in the optimization control workflow management table  141 . In addition, when the execution is omissible, the exclusive control unit  110  also determines which one of the consecutive execution condition and the opposite operation condition the omission of the operation component is based on. 
     [Step S 175 ] If a workflow to which the exclusive section extracted in step S 173  belongs is the execution target workflow, the execution start of which is notified in step S 101  of  FIG. 44 , the process moves to step S 176 . On the other hand, if the workflow is not the execution target workflow, the process moves to step S 177 . 
     [Step S 176 ] The exclusive control unit  110  outputs notification, called Action, indicting continuation of the operation of the execution target workflow to the workflow executing unit  120  in charge of the execution target workflow. With the Action, the exclusive control unit  110  instructs the workflow executing unit  120  to carry out a process in the following manner. 
     In the case where the execution target operation component is determined in step S 174  to be not omissible, the exclusive control unit  110  instructs the workflow executing unit  120  to execute the operation component. On the other hand, in the case where the execution target operation component is determined to be omissible, the exclusive control unit  110  issues an instruction to the workflow executing unit  120  in the following manner. 
     In the case where two consecutive operation components including the execution target operation component and its foregoing or following operation component satisfy the consecutive execution condition, the exclusive control unit  110  instructs the workflow executing unit  120  to omit the execution according to the consecutive execution condition. 
     In the case where the omission is based on the opposite operation condition, the exclusive control unit  110  issues an instruction to the workflow executing unit  120  in the following manner. When two consecutive operation components including the execution target operation component and its foregoing operation component satisfy the opposite operation condition, the exclusive control unit  110  instructs the workflow executing unit  120  to omit the execution according to the opposite operation condition. When two consecutive operation components including the execution target operation component and its following operation component satisfy the opposite operation condition, the exclusive control unit  110  issues an instruction to the workflow executing unit  120  in the following manner. 
     When an optimization control workflow including the execution target operation component does not include the same operation component as the execution target operation component, which same operation component is included in a different workflow and appears after the execution target operation component within the optimization control workflow, the exclusive control unit  110  instructs the workflow executing unit  120  to omit the execution according to the opposite operation condition. 
     On the other hand, when an optimization control workflow including the execution target operation component includes such an operation component, the exclusive control unit  110  instructs the workflow executing unit  120  to put a corresponding workflow into an execution wait state. In this case, when the same operation component is executed, the exclusive control unit  110  instructs the workflow executing unit  120  to cancel the execution wait and also outputs the execution result. 
     Alternatively, in the case where two consecutive operation components including the execution target operation component and its foregoing or following operation component satisfy the opposite operation condition, the exclusive control unit  110  may uniformly instruct the workflow executing unit  120  to omit the execution according to the opposite operation condition. 
     The exclusive control unit  110  outputs an Action as described above, and also registers information according to the content of the instruction issued to the workflow executing unit  120  in an entry corresponding to the execution target operation component under the column headed ‘omission flag’ of the optimization control workflow management table  141 . 
     [Step S 177 ] The exclusive control unit  110  does not output an Action to the workflow executing unit  120  until an exclusive right (execution right) given to a workflow including the exclusive section extracted in step S 173  is terminated, to thereby put the execution target workflow into a process wait state. 
     Note that, in steps S 176  and S 177 , the exclusive control unit  110  newly registers or updates information in the exclusive right acquisition history table  136  as needed basis. For example, if an exclusive section acquires an exclusive right and the operation of the exclusive section is completed, the exclusive control unit  110  updates information corresponding to the exclusive section under the column headed ‘completion time’. In addition, if an exclusive section including the execution target operation component is in a state waiting for exclusive control to be released, the exclusive control unit  110  updates information corresponding to the exclusive section under the column headed ‘start-waiting time’. 
       FIG. 50  is a flowchart illustrating an example of a process of optimization control workflow assembly (registration). The process of  FIG. 50 , corresponding to step S 104  of  FIG. 44 , is performed when the exclusive control unit  110  receives the notification of the start of a workflow from the workflow executing unit  120 . 
     [Step S 191 ] The exclusive control unit  110  determines whether the execution target workflow includes an exclusive section. The execution target workflow is determined to include an exclusive section if an exclusive section is extracted in step S 124  of  FIG. 45  and then information of the exclusive section is registered in the instance management table  134  and the exclusive information management table  135 . If an exclusive section is included, the process moves to step S 192 . If not, the process is ended. 
     [Step S 192 ] The exclusive control unit  110  identifies an exclusive resource to be an operation target in the exclusive section of the execution target workflow. Then, the exclusive control unit  110  determines whether an optimization control workflow corresponding to the identified exclusive resource has been registered in the optimization control workflow management table  141 . If the optimization control workflow has been registered, the process moves to step S 194 . If not, the process moves to step S 193 . 
     [Step S 193 ] The exclusive control unit  110  newly registers, in the optimization control workflow management table  141 , an instance of an optimization control workflow corresponding to the exclusive resource identified in step S 192 . In this instance, information of operation components of the exclusive section included in the execution target workflow is registered. 
     [Step S 194 ] The exclusive control unit  110  updates the optimization control workflow management table  141  in such a manner that the operation components of the exclusive section included in the execution target workflow are inserted into an existing optimization control workflow corresponding to the exclusive resource identified in step S 192 . With this, the existing optimization control workflow is reassembled. 
     In this reassembling step, as for the exclusive section included in the execution target workflow and exclusive sections of individual workflows included in the existing optimization control workflow, the exclusive control unit  110  reads their execution priority from the exclusive information management table  135  and, then, compares the execution priority among these exclusive sections. Based on the comparison result, the exclusive control unit  110  inserts the exclusive section of the execution target workflow into the existing optimizationcontrol workflow in such a manner that the compared exclusive sections are arranged in descending order of the execution priority. 
     In addition, based on the optimization target component definition table  140 , the exclusive control unit  110  identifies again, within the reassembled optimization control workflow, operation components whose execution is omissible. The exclusive control unit  110  updates entries under the column headed ‘omission flag’ in the optimization control workflow management table  141 . Specifically, the exclusive control unit  110  updates entries under the column headed ‘omission flag’ corresponding to operation components whose execution omission propriety has been changed as well as omissible operation components with a change in their optimization condition (i.e., a change from the consecutive execution condition to the opposite operation condition and vice versa). 
     [Step S 195 ] Based on the execution history database  151 , the exclusive control unit  110  determines whether, in the reassembled optimization control workflow, the execution of an operation component immediately before the inserted exclusive section has already been omitted. If the execution has already been omitted, the process moves to step S 196 . If not, the process is ended. 
     [Step S 196 ] The exclusive control unit  110  executes a correction process for the operation component whose execution has been omitted. Details of the process are described in  FIG. 53 . 
       FIG. 51  is a flowchart illustrating an example of a process of optimization control workflow assembly (change). The process of  FIG. 51 , corresponding to step S 165  of  FIG. 48 , is performed when the exclusive control unit  110  receives the notification of the execution start of an operation component from the workflow executing unit  120 . 
     [Step S 201 ] As for workflow-based exclusive sections belonging to an optimization control workflow including the execution target operation component, the exclusive control unit  110  determines whether there is a change in the execution priority of at least one of the exclusive sections. If there is a change in the execution priority of at least one of the exclusive sections, the process moves to step S 202 . If there is no change in the execution priority, the process is ended. 
     [Step S 202 ] The exclusive control unit  110  identifies, in the optimization control workflow management table  141 , an optimization control workflow including the execution target operation component. Based on the exclusive information management table  135 , the exclusive control unit  110  compares the execution priority of individual exclusive sections included in the identified optimization control workflow. 
     When the sequence of the exclusive sections needs to be changed as a result of the comparison, the exclusive control unit  110  reassembles the optimization control workflow and updates the optimization control workflow management table  141 . In this reassembling step, the exclusive control unit  110  changes the sequence of the exclusive sections in the optimization control workflow in such a manner that the exclusive sections are arranged in descending order of the execution priority. 
     After reassembling the optimization control workflow, the exclusive control unit  110  identifies again operation components whose execution is omissible within the reassembled optimization control workflow, based on the optimization target component definition table  140 . The exclusive control unit  110  updates entries under the column headed ‘omission flag’ in the optimization control workflow management table  141 . Specifically, the exclusive control unit  110  updates entries under the column headed ‘omission flag’ corresponding to operation components whose execution omission propriety has been changed as well as omissible operation components with a change in their optimization condition (i.e., a change from the consecutive execution condition to the opposite operation condition and vice versa). 
     [Step S 203 ] Based on the execution history database  151 , the exclusive control unit  110  determines whether, in the optimization control workflow reassembled in step S 202 , the execution of an operation component immediately before each exclusive section whose position in the sequence has been changed has already been omitted. If the execution has already been omitted, the process moves to step S 204 . If not, the process is ended. 
     [Step S 204 ] The exclusive control unit  110  executes a correction process for the operation component whose execution has been omitted. Details of the process are described in  FIG. 53 . 
       FIG. 52  is a flowchart illustrating an example of a process of optimization control workflow assembly (deletion). The process of  FIG. 52 , corresponding to step S 106  of  FIG. 44 , is performed when the exclusive control unit  110  receives the notification of the execution completion of an operation component from the workflow executing unit  120 . 
     [Step S 211 ] The exclusive control unit  110  acquires the component number of an operation component to be executed following the operation component whose execution completion has been notified (hereinafter, referred to as the ‘completed operation component’) by referring to an entry corresponding to the completed operation component under the column headed ‘next component number’ in the workflow management table  131 . 
     [Step S 212 ] The exclusive control unit  110  determines whether the following condition is met: a plurality of component numbers are acquired in step S 211  (that is, the completed operation component is an operation component for implementing conditional branching), and one of operation components included in a branch determined not to be taken according to the execution result of the conditional branching belongs to an exclusive section different from the exclusive section including the completed operation component. If this condition is satisfied, the process moves to step S 213 . If not, the process is ended. 
     [Step S 213 ] The exclusive control unit  110  deletes, from the optimization control workflow management table  141 , processing information included in the different exclusive section including the operation components of the branch determined not to be taken. With this, the optimization control workflow having included the deletion target exclusive section is reassembled. 
     In addition, based on the optimization target component definition table  140 , the exclusive control unit  110  identifies again, within the reassembled optimization control workflow, operation components whose execution is omissible. The exclusive control unit  110  updates entries under the column headed ‘omission flag’ in the optimization control workflow management table  141 . Specifically, the exclusive control unit  110  updates entries under the column headed ‘omission flag’ corresponding to operation components whose execution omission propriety has been changed as well as omissible operation components with a change in their optimization condition (i.e., a change from the consecutive execution condition to the opposite operation condition and vice versa). 
     [Step S 214 ] Based on the execution history database  151 , the exclusive control unit  110  determines whether, in the optimization control workflow from which the processing information has been deleted, the execution of an operation component immediately before the deleted exclusive section has already been omitted. If the execution has already been omitted, the process moves to step S 215 . If not, the process moves to step S 108 . 
     [Step S 215 ] The exclusive control unit  110  executes a correction process for the operation component whose execution has been omitted. Details of the process are described in  FIG. 53 . 
       FIG. 53  is a flow chart illustrating an example of a correction process. The process of  FIG. 53  corresponds to each of step S 196  of  FIG. 50 , step S 204  of  FIG. 51 , and step S 215  of  FIG. 52 . Note that a workflow including a correction target operation component (that is, an operation component whose execution has been omitted) is referred to as the ‘correction target workflow’). 
     [Step S 221 ] The exclusive control unit  110  determines the processing state of the correction target workflow. In the case where an operation following the correction target operation component is to be implemented by an operation component and this operation component has been in a state waiting for acquisition of an exclusive right, the process moves to step S 222 . If the operation following the correction target operation component is to be implemented by an activity and the activity has been in a state waiting for acquisition of an exclusive right, the process moves to step S 225 . If the operation following the correction target operation component is running or has already been completed, the process moves to step S 229 . 
     [Step S 222 ] The exclusive control unit  110  sets exclusive control for the correction target workflow. 
     [Step S 223 ] The exclusive control unit  110  instructs the workflow executing unit  120  in charge of the correction target workflow to cancel the operation component following the correction target operation component. 
     Note that the processing order of steps S 222  and S 223  may be reversed. 
     [Step S 224 ] The exclusive control unit  110  instructs the workflow executing unit  120  to bring the control of the workflow back to the correction target operation component. Upon receiving the instruction, the workflow executing unit  120  newly executes the once omitted operation component. 
     [Step S 225 ] The exclusive control unit  110  notifies an informer in the activity following the correction target operation component (that is, a person performing an input operation related to, for example, an approval action during the execution of the activity) of cancellation of the execution of the activity. For example, the informer is notified of the cancellation by email. 
     [Step S 226 ] The exclusive control unit  110  instructs the workflow executing unit  120  in charge of the correction target workflow to cancel the activity following the correction target operation component. 
     [Step S 227 ] The exclusive control unit  110  sets exclusive control for the correction target workflow. 
     Note that the processing order of steps S 225 , S 226 , and S 227  may be changed. However, steps S 225  and S 226  are preferably executed with a time interval therebetween as short as possible. 
     [Step S 228 ] The exclusive control unit  110  instructs the workflow executing unit  120  to bring the control of the workflow back to the correction target operation component. Upon receiving the instruction, the workflow executing unit  120  newly executes the once omitted operation component. 
     [Step S 229 ] Because, in the correction target workflow, at least the operation following the correction target operation component has already been executed, the exclusive control unit  110  is not able to cause the workflow executing unit  120  in charge of the correction target workflow to execute the correction target operation component. Therefore, the exclusive control unit  110  executes the correction target operation component on behalf of the workflow executing unit  120 , and then sets the execution result in the execution history database  151 . 
     Examples of different workflow configurations are described next, along with a process of building exclusive sections of each workflow into corresponding optimization control workflows. 
       FIG. 54  illustrates an example of a workflow in which loops of different exclusive sections may occur. In the workflow of  FIG. 54 , an operation target list is acquired by an operation component  71 , and an operation target is set (selected) from the list by an operation component  72 . As a result of the setting made by the operation component  72 , operation components corresponding to the set operation target are dynamically set and then executed. That is, the operation component  72  is followed by an exclusive section corresponding to the set operation target. For example, in the case where exclusive resource X is set as the operation target, the operation component  72  is followed by [exclusive section: X]. 
     The last operation component in each exclusive section implements conditional branching, after which one branch leads to operation component D and another branch leads to the operation component  72 . That is, a processing loop occurs when the process moves to the operation component  72  after the conditional branching, and the process leaves the loop when having moved to operation component D. 
     With such a workflow, it is not possible to predict that operation components corresponding to which one of the exclusive resources will be executed and how many times the execution of these operation components will be repeated. In view of this, once the operation component  72  is executed and then the variable indicating an operation target is set, the exclusive control unit  110  builds operation components included in the following exclusive section into an optimization control workflow corresponding to the operation target. That is, each time a loop is executed, an optimization control workflow corresponding to the set operation target is reassembled. This enables operation components in a loop section to be targets for execution omission. 
       FIG. 55  illustrates an example of a workflow including parallel branches. In the workflow of  FIG. 55 , [exclusive section: X] and [exclusive section: Y] are executed in parallel after the execution of operation component D. In this case, the exclusive control unit  110  builds operation components included in [exclusive section: X] into an optimization control workflow corresponding to exclusive resource X, and also builds operation components included in [exclusive section: Y] into an optimization control workflow corresponding to exclusive resource Y. 
     Thus, in the case where individual exclusive sections for operating different exclusive resources are executed in parallel, operation components are registered in an optimization control workflow with respect to each exclusive resource. This enables all the operation components of the exclusive sections to be targets for execution omission. 
     Note that when an exclusive section contains a parallel execution section, the exclusive control unit  110  simply registers, in a corresponding optimization control workflow, information of operation components included in the excusive section, which information is defined in the workflow management table  131 . 
       FIG. 22  above illustrates a workflow in which an operation component for implementing conditional branching is located outside exclusive sections, however, conditional branching may occur inside an exclusive section. In this case, the exclusive control unit  110  registers, in a corresponding optimization control workflow, information of all the operation components of the exclusive section including the conditional branching. For example, in the case where all operation components A to E and M to O of  FIG. 22  are included in the same [exclusive section: X], information of all the operation components is registered in an optimization control workflow corresponding to exclusive resource X. In the case where operation components D, A, and M of  FIG. 22  are included in the same [exclusive section: X], information of operation components D, A, and M is registered in an optimization control workflow corresponding to exclusive resource X. In the case where operation components D, and A to C of  FIG. 22  are included in the same [exclusive section: X], information of operation components D, and A to C is registered in an optimization control workflow corresponding to exclusive resource X. Such processing enables operation components included in branches after conditional branching to be targets for execution omission. 
     Note that the processing functions of the apparatuses (such as the workflow control apparatus  1  and the operation automation server  100 ) described in each of the embodiments above may be achieved by a computer. In this case, a program is provided which describes processing contents of the functions to be implemented by each of the apparatuses. By executing the program on the computer, the above-described processing functions are achieved on the computer. The program in which the processing contents are described may be recorded on computer-readable recording media. Such computer-readable recording media include a magnetic storage device, an optical disk, a magneto-optical recording medium, and a semiconductor memory. Examples of the magnetic storage device are a hard disk drive (HDD), a flexible disk (FD), and a magnetic tape. Examples of the optical disk are a digital versatile disc (DVD), a DVD-RAM, a compact disc-read only memory (CD-ROM), a CD-recordable (CD-R) and a CD-rewritable (CD-RW). An example of the magneto-optical recording medium is a magneto-optical disk (MO). 
     To distribute the program, for example, portable recording media, such as DVDs and CD-ROMs, on which the program is recorded are sold. In addition, the program may be stored in a storage device of a server computer and then transferred from the server computer to another computer via a network. 
     The computer for executing the program stores, for example, in its own storage device, the program which is originally recorded on a portable recording medium or transferred from the server computer. Subsequently, the computer reads the program from its own storage device and performs processing according to the program. Note that the computer is able to read the program directly from the portable recording medium and perform processing according to the program. In addition, the computer is able to sequentially perform processing according to a received program each time such a program is transferred from the server computer connected via the network. 
     According to one aspect, it is possible to identify omissible operations in a plurality of workflows. 
     All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations 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 one or more embodiments of the present invention have been described in detail, it should be understood that various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.