Workflow processing system, and method for controlling same

According to the present invention, any deficiency caused by the use of a resource, which is in a different state from that assumed upon workflow registration, can be prevented. The workflow processing method of the present invention acquires and holds a resource or feature quantity, which is required upon workflow execution, so as to employ it upon workflow execution. In this manner, after execution of the workflow, the present invention can avoid the workflow execution result which is not intended by a user who has registered the workflow.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a workflow processing system, a workflow processing apparatus, and a workflow processing method for processing a workflow in which a series of operations is defined. In particular, in the present invention, a resource upon workflow registration is previously prepared, whereby the resource upon workflow registration can be utilized upon workflow execution.

2. Description of the Related Art

A workflow as a mechanism for executing previously-defined process in sequence is known. For example, work efficiency may be improved by automating the procedure of the workflow. On the other hand, various resources may be utilized during the processing of the workflow. However, when the resource is stored in a shared storage, any change may be applied to the resource between the time the workflow is registered and the time the resource is utilized by the workflow. In such a case, the resource, which is in a different state from that assumed upon workflow registration, is used upon workflow execution. This may cause a workflow execution result that is not intended by a user who has registered the workflow.

For example, in a workflow for inputting data on a Web page and making a printout in accordance with a predetermined format, the format upon an output of the data may be collapsed when the length of a character string and the size of an image, which are longer and bigger respectively than the character string length and the image size which are supposed to be in the format, are inserted. In such a workflow, if the resource in a predetermined format is changed at some midpoint after a user has input data, the length of the character string and the size of the image which have been input by the user are unexpected in the new format, resulting in a failure to output in the correct format.

In addition, there is another type of workflow in which a document, which is registered in a document management system, is checked out to convert data in accordance with a predetermined format based on the information described in the document. In this workflow, if a document, which is registered in a document management system, is checked out by another user, a document checkout by the workflow may cause a failure, and consequently the execution of the workflow cannot be continued.

Japanese Patent Laid-Open No. 7-44441 discloses a mechanism for conducting a change notification to a resource creator when any change is applied to the resource. In other words, by utilizing this mechanism, a notification indicating that the resource has been changed is sent to the resource creator when any change has been applied to the resource.

However, in the prior art described above, although a resource change notification is sent to a resource creator, it is difficult to prevent the occurrence of any problems in which the workflow execution result is not intended by a user who has registered the workflow. In addition, even if an instruction is made from a user after the resource change notification, it is still difficult to prevent the advantage of the automated procedure of the workflow from being impaired.

SUMMARY OF THE INVENTION

It is an object of the present invention to prevent the occurrence of any deficiency caused by the use of a resource which is in a different state from that assumed upon workflow registration. The workflow processing method of the present invention acquires and holds a resource or feature quantity, which is required upon workflow execution, so as to employ it upon workflow execution. In this manner, after execution of the workflow, the present invention can avoid a workflow execution result which is not intended by the user who has registered the workflow.

In order to achieve the aforementioned object, according to an aspect of the present invention, a workflow processing system is provided that includes: a workflow managing unit configured to register or store a workflow; a resource list generating unit configured to generate a resource list relating to a part or whole of a resource to be used in the workflow; a resource instructing unit configured to instruct which resource either upon workflow registration or upon workflow execution is to be used for each resource in the resource list; a resource acquiring unit configured to acquire the resource upon workflow registration, when the resource instructing unit has received an instruction to use the resource upon workflow registration; and a workflow executing unit configured to interpret and execute the workflow that has been stored in the workflow managing unit, wherein if the resource upon workflow registration is acquirable by the resource acquiring unit, the workflow executing unit executes the workflow using the resource that has been acquired by the resource acquiring unit, and wherein if the resource upon workflow registration is not acquirable by the resource acquiring unit, the workflow executing unit executes the workflow using the resource upon workflow execution.

DESCRIPTION OF THE EMBODIMENTS

Hereinafter, preferred embodiments of the present invention will now be described with reference to the accompanying drawings. The workflow processing apparatus according to an embodiment of the present invention is realized on a system consisting of a personal computer (hereinafter referred to simply as “PC”) having the configuration shown inFIG. 1, for example.

FIG. 1is a view showing an example of a configuration of the typical computer100. It should be noted that the hardware block diagram shown inFIG. 1corresponds to the hardware block diagram of a typical information processing apparatus, and the hardware configuration of the typical information processing apparatus can be applied to the computer100of the present embodiment.

InFIG. 1, a CPU (Central Processing Unit)201, a RAM (Random Access Memory)202, a ROM (Read Only Memory)203are connected to a bus204. A keyboard controller (hereinafter referred to simply as “KBC”)205, and a CRT controller (hereinafter referred to simply as “CRTC”)206are provided. Furthermore, a disk controller (hereinafter referred to simply as “DKC”)207, and a network controller (hereinafter referred to simply as “NC”)212are provided. These components transmit and receive data via the bus204.

The CPU201, which serves as a control center of the computer, interprets and executes a program. The program is stored in the program ROM of the ROM203, or is a program such as an OS, an application, or the like that is loaded from a storage device211such as a hard disk to the RAM202. The OS abbreviation is used herein to refer to an operating system running on a computer, and the operating system is hereinafter called “OS”. The processing shown in flowcharts to be described below can be realized by the execution of the program. In the present example, the ROM203includes a program ROM, a font ROM, and a data ROM.

The RAM202serves as the main memory, work area, and the like for the CPU201, and is configured by using a non-volatile memory device or the like. The KBC205controls a key input from a keyboard209constituting a operation unit, a direction operation input from a pointing device (not shown), and the like. The CRTC206controls the display on a CRT display210constituting a display unit. Also, the DKC207controls data access for the storage device211such as a hard disk (HD), a flexible disk (FD), or the like for storing various data. The NC212is connected to a network such as a LAN, WAN, or the like so as to perform communication control processing with other devices connected to the network.

FIG. 2is a view showing an example of a network configuration according to an embodiment of the present invention. A workflow management server401is a server that generates a workflow, interprets it, and performs the execution instruction. Each of servers402,403, and404is a workflow executing server that performs each process defined in the workflow that has been received from the workflow management server401, and constitutes a workflow executing unit together with an image processing apparatus to be described below. In the example shown, the document management server402, the form generation server403, and the output management server404are connected to the network400. Furthermore, an image processing apparatus405is connected via the network400. It should be noted that the workflow management server401can further serve as any one of or a plurality of the workflow executing servers402to404. In other words, the aforementioned structure need not be limited to the structure such that the workflow executing server is provided separately outside the device of the workflow management server, but both functions of the workflow management server and the workflow executing server may be realized in the same device. Also, the workflow management server401and the workflow executing servers402to404may be set up on a PC or on the image processing apparatus405.

FIG. 3is a view for explaining an exemplary procedure for workflow processing according to an embodiment of the present invention. In the present invention, it goes without saying that the procedure for workflow processing is not limited to the procedure shown inFIG. 3.

The workflow management server401makes a document request451to the document management server402in accordance with the previously-generated workflow. The document management server402makes a document request452to a document DB (database)406in accordance with the request from the workflow management server401so as to obtain a document453. Then, the document management server402returns the obtained document453to the workflow management server401.

When the workflow management server401receives the document453from the document management server402, the workflow management server401makes a form generation request461to the form generation server403in accordance with the previously-generated workflow, and sends the document453as well. The form generation server403makes a form template request462to a form template DB407in accordance with the request from the workflow management server401so as to obtain a form template463. Then, the form generation server403generates a form464from the form template463and the document453, and returns the generated form464to the workflow management server401.

When the workflow management server401receives the form464from the form generation server403, the workflow management server401makes a printing request471to the output management server404in accordance with the previously-generated workflow, and sends the form464as well. The output management server404makes a printing request472to the image processing apparatus405in accordance with the request from the workflow management server401so as to print the form464. The image processing apparatus405performs output processing in accordance with the printing request472from an output management server to complete the workflow.

FIG. 4is a module configuration diagram of a workflow management service section according to the present embodiment. The workflow management service section501is configured as a workflow managing unit on the workflow management server401, and performs workflow generation, registration, storage, its interpretation, and execution instructions. It should be noted that in the application of the present invention, the workflow management service section501is configured on the workflow management server401, but not limited thereto (a workflow managing unit may be configured with a plurality of servers).

The workflow management service section501includes a workflow generating section511, a use resource list generating section512, a use resource instruction receiving section513, a resource preparing section514, and a workflow interpreting section515. The workflow management service section501further includes a first workflow execution instructing section516and a second workflow execution instructing section517.

The workflow generating section511generates a workflow for registration and storage. The workflow interpreting section515interprets processing defined in the workflow that has been generated by the workflow generating section511. The use resource list generating section512generates a list (hereinafter referred to as “use resource list”) describing a part or whole of resource to be used in the generated workflow. Also, the use resource instruction receiving section513receives instructions about which resource either upon workflow registration or upon workflow execution is to be used for each resource in the generated use resource list.

When the instruction that has been received by the use resource instruction receiving section513indicates using the resource upon workflow registration, the resource preparing section514prepares by reserving the resource so that the resource upon workflow registration can be acquired upon workflow execution. The first workflow execution instructing section516or the second workflow execution instructing section517instructs the workflow executing servers402to404to execute the workflow. The reason why two workflow execution instructing sections are provided is because the resource to be used differs depending on the presence or absence of the resource that has been prepared by the resource preparing section514. In other words, when the resource that has been prepared by the resource preparing section514is present, the first workflow execution instructing section516instructs the workflow executing servers402to404to execute the workflow by using the prepared resource. When the resource that has been prepared by the resource preparing section514is not present, the second workflow execution instructing section517instructs the workflow executing servers402to404to execute the workflow by using the resource upon workflow execution.

In the present example, the description is given for the case where the contents of execution instruction using two workflow execution instructing sections516and517are separated into each case for ease of understanding. However, it goes without saying that only one workflow execution instructing section may be prepared so as to have the above execution instruction executed by the workflow executing server depending on the result of condition determination relating to the presence or absence of the prepared resource.

FIG. 5is a flowchart showing an example of processing in the case in which a resource to be used in the workflow is acquired in advance. In step S601, the workflow generating section511registers individual processing included in the workflow. The details of step S601will be described below in steps S611to S615.

In step S602, the workflow generating section511determines whether or not the registration of individual processing included in the workflow is all completed. As a result, if the registration is incomplete, the process returns to step S601to repeat the registration. If the registration is completed, the process advances to step S603. In step S603, the first workflow execution instructing section516or the second workflow execution instructing section517determines whether or not the workflow that has been generated by the workflow generating section511in steps S601and S602is the workflow for immediate execution. As a result, if the generated workflow is not the workflow for immediate execution, the process advances to step S605. If the generated workflow is the workflow for immediate execution, the process advances to step S604.

In step S604, the first workflow execution instructing section516or the second workflow execution instructing section517instructs the workflow executing servers402to404to execute the generated workflow. This allows them to start executing the workflow. In step S605, the first workflow execution instructing section516or the second workflow execution instructing section517waits until an execution instruction for the generated workflow is given. Then, the process advances to step S604.

Hereinafter, the flowchart for the registration of individual processing included in the workflow will be described in accordance with steps S611to S615. First, in step S611, the workflow generating section511receives an instruction about the content to be executed in the workflow from a user.

In step S612, the use resource list generating section512receives an instruction from the user about the resource to be used in the workflow so as to generate a use resource list. In step S613, the use resource instruction receiving section513receives an instruction from the user about whether the resource to be used in the workflow is the resource upon workflow registration or the resource upon workflow execution.

In step S614, the resource preparing section514determines the content of the instruction that has been received by the use resource instruction receiving section513from the user in step S613. As a result, if it is determined that an instruction to use the resource upon workflow registration has been provided, the process advances to step S615. If it is determined that an instruction to use the resource upon workflow execution has been provided, the process is terminated.

In step S615, the resource preparing section514acquires the relevant resource in the use resource list that has been generated in step S612in accordance with the content of the instruction that has been received from the user in step S613. Then, a series of operations is terminated.

FIG. 6is a flowchart according to the present embodiment showing an example of processing in the case in which the workflow is executed by using the previously-acquired resource.

In step S701, the workflow interpreting section515interprets the workflow that has been generated by the workflow generating section511in the steps S601and S602, and instructs that the workflow be executed. The details of step S601will be described below in steps S711to S714.

In step S702, the workflow interpreting section515determines whether or not the execution of individual processing included in the workflow is all completed. As a result, if the execution is incomplete, the process returns to step S701, whereas if all the processing is completed, a series of operations is terminated.

Hereinafter, the flowchart for the execution of individual processing included in the workflow will be described in accordance with steps S711to S714.

First, in step S711, the workflow management service section501determines whether or not the resource that has been previously acquired by the resource preparing section514is present. As a result, if it is determined that the previously-acquired resource is present, the process advances to step S712. If it is determined that the previously-acquired resource is not present, the process advances to step S714.

In step S712, the first workflow execution instructing section516instructs the workflow executing servers402to404to execute the workflow so as to cause them to process the workflow by using the resource that has been previously acquired by the resource preparing section514. After the execution instruction of the workflow has been carried out, the process advances to step S713.

In step S713, the workflow management service section501waits for the result of the workflow execution instruction. This instruction is the workflow execution instruction given by the first workflow execution instructing section516or the second workflow execution instructing section517in step S712or step S714. The workflow management service section501receives the workflow execution result from the workflow executing servers402to404, and then the process is terminated.

In step S714, the second workflow execution instructing section517instructs the workflow executing servers402to404to execute the workflow by using the resource upon workflow execution. Then, the process advances to step S713.

According to the present embodiment, a necessary resource may be previously acquired upon workflow registration to utilize the resource upon workflow execution. Hence, this prevents the workflow execution result from differing from the intention of the user who has registered the workflow.

Hereinafter, the second embodiment of the present invention will be described.

FIG. 7is a module configuration diagram of a workflow management service section according to the second embodiment of the present invention. The workflow management service section501includes the workflow generating section511, the use resource list generating section512, the use resource instruction receiving section513, and the workflow interpreting section515. Furthermore, a second use resource instruction receiving section521, a second resource preparing section522, a third workflow execution instructing section523, a resource acquisition enabled/disabled determining section524, a fourth workflow execution instructing section525, and a fifth workflow execution instructing section526are provided.

As described above, the workflow interpreting section515interprets the workflow that has been generated by the workflow generating section511. The second use resource instruction receiving section521receives an instruction about which resource is to be preferentially used either upon workflow registration or upon workflow execution. The second resource preparing section522makes preparations so that upon workflow registration, the resource can always be acquired upon workflow execution.

The third workflow execution instructing section523instructs the workflow executing servers402to404upon workflow execution. In other words, if the instruction that has been received by the second use resource instruction receiving section521is an instruction for prioritizing the resource upon workflow registration, the third workflow execution instructing section523instructs the workflow executing server to execute the workflow using the resource that has been prepared by the second resource preparing section522. The resource acquisition enabled/disabled determining section524determines whether or not the resource is acquirable upon workflow execution when, upon workflow execution, the instruction that has been received by the second use resource instruction receiving section521is the instruction for prioritizing the resource upon workflow execution.

The fourth workflow execution instructing section525instructs the workflow executing servers402to404upon workflow execution. In other words, if the resource upon workflow execution is not acquirable as a result of a determination made by the resource acquisition enabled/disabled determining section524, the fourth workflow execution instructing section525instructs the workflow executing server to execute the workflow using the resource that has been prepared by the second resource preparing section522.

The fifth workflow execution instructing section526instructs the workflow executing servers402to404upon workflow execution. In other words, if the resource upon workflow execution is acquirable as a result of a determination made by the resource acquisition enabled/disabled determining section524, the fifth workflow execution instructing section526instructs the workflow executing server to execute the workflow using the resource upon workflow execution.

As explained in the foregoing, in the present embodiment, the third to fifth workflow execution instructing sections instruct the workflow executing server to execute the workflow in accordance with the resource preparation state made by the second resource preparing section522and the determination result made by the resource acquisition enabled/disabled determining section524.

FIG. 8is a flowchart according to the second embodiment of the present invention, which shows an example of processing in the case in which the resource to be used in the workflow is acquired in advance so as to use the previously-acquired resource when a resource cannot be acquired upon workflow execution.

Steps S801to S804are the flowchart for the registration of individual processing included in the workflow. It should be noted that the processing in steps S801to S804is executed in step S601shown inFIG. 5described above.

In step S801, the workflow generating section511receives an instruction about the content to be executed in the workflow from a user. In step S802, the use resource list generating section512receives an instruction from the user about the resource to be used in the workflow so as to generate a use resource list.

In step S803, the second use resource instruction receiving section521receives an instruction relating to the priority of the resource from the user. In other words, the second use resource instruction receiving section521receives an instruction about which resource either upon workflow registration or upon workflow execution is to be preferentially used. In step S804, the second resource preparing section522acquires the relevant resource in the use resource list that has been generated in step S802. Then, a series of operations is terminated.

FIG. 9is a flowchart according to the second embodiment of the present invention, which shows an example of processing in the case in which the workflow is executed by using the previously-acquired resource and the priority information that has been received from the user. Steps S901to S905are the flowchart for the execution of individual processing included in the workflow. It should be noted that the processing in steps S901to S905are executed in step S701shown inFIG. 6described above.

In step S901, the workflow management service section501examines the instruction that has been received from the user by the second use resource instruction receiving section521so as to determine whether the priority is given to the acquired resource or the resource upon execution. As a result, if it is determined that the priority has been given to the acquired resource, the process advances to step S902. If it is determined that the priority has been given to the resource upon execution, the process advances to step S904.

In step S902, the third workflow execution instructing section523instructs the workflow executing servers402to404to execute the workflow so as to cause them to process the workflow by using the resource that has been previously acquired by the second resource preparing section522. After the execution instruction of the workflow has been carried out, the process advances to step S903.

In step S903, the workflow management service section501waits for the execution result obtained in step S902or step S905. The workflow management service section501receives the workflow execution result from the workflow executing servers402to404, and then the process is terminated. In step S904, the resource acquisition enabled/disabled determining section524determines whether or not the resource to be used in the workflow is acquirable. As a result, if it is determined that the resource is not acquirable, the process advances to step S902. If it is determined that the resource is acquirable, the process advances to step S905.

In step S905, the fourth workflow execution instructing section525instructs the workflow executing servers402to404to execute the workflow by using the resource upon workflow execution. Then, the process advances to step S903.

According to the present embodiment, even if for some reason the required resource cannot be acquired upon workflow execution, the workflow execution can be continued by using the previously-acquired resource.

Next, the third embodiment according to the present invention will be described.

FIG. 10is a module configuration diagram showing a workflow management service section according to the third embodiment of the present invention. The workflow management service section501includes the workflow generating section511, the use resource list generating section512, the use resource instruction receiving section513, the resource preparing section514, and the workflow interpreting section515. Furthermore, a resource feature quantity acquisition instruction receiving section531, a registration-time feature quantity acquiring section532, an execution-time feature quantity acquiring section533, and a feature quantity comparing section534are provided. In addition, three execution instruction sections, i.e., a sixth workflow execution instructing section535, a seventh workflow execution instructing section536, and an eighth workflow execution instructing section537are provided.

The workflow generating section511generates a workflow. The resource feature quantity acquisition instruction receiving section531receives an instruction about whether or not a feature quantity upon workflow registration is acquired for each resource in the generated resource list. For example, hash value or the like can be used for the feature quantity of the resource.

The registration-time feature quantity acquiring section532acquires and stores the feature quantity of the resource upon workflow registration (registration-time feature quantity), when the resource feature quantity acquisition instruction receiving section531has received an instruction to acquire the feature quantity. The execution-time feature quantity acquiring section533obtains the resource upon workflow execution so as to acquire and store its feature quantity (execution-time feature quantity), when the feature quantity that has been acquired by the registration-time feature quantity acquiring section532is present upon workflow execution.

The feature quantity comparing section534compares the registration-time feature quantity that has been acquired and stored by the registration-time feature quantity acquiring section532with the execution-time feature quantity that has been acquired by the execution-time feature quantity acquiring section533. According to this comparison result, the sixth to eighth workflow execution instructing sections535,536, and537instruct the workflow executing servers402to404to execute the workflow. The sixth workflow execution instructing section535instructs the workflow executing servers402to404to execute the workflow using the resource upon workflow execution, when the registration-time feature quantity and the execution-time feature quantity are matched with each other.

Also, the seventh workflow execution instructing section536instructs the workflow executing servers402to404to execute the workflow using the resource when the registration-time feature quantity and the execution-time feature quantity do not match and the resource that has been prepared by the resource preparing unit514is present. The eighth workflow execution instructing section537instructs the workflow executing servers402to404to execute the workflow using the resource upon workflow execution, when the predetermined condition is fulfilled. The condition refers to the case where the registration-time feature quantity and the execution-time feature quantity do not match and the resource that has been prepared by the resource preparing section514is not present.

FIG. 11is a flowchart according to the third embodiment of the present invention, which shows an example of processing in the case in which the feature quantity of the resource to be used in the workflow is acquired in advance.

Steps S1001to S1006are the flowchart for the registration of individual processing included in the workflow. It should be noted that the processing in steps S1001to S1006is executed in step S601shown inFIG. 5described above.

In step S1001, the workflow generating section511receives an instruction about the content to be executed in the workflow from a user.

In step S1002, the use resource list generating section512receives an instruction from the user about the resource to be used in the workflow so as to generate a use resource list.

In step S1003, the use resource instruction receiving section513receives an instruction from the user about whether the resource to be used in the workflow is the resource upon workflow registration or the resource upon workflow execution. If it is determined that an instruction to use the resource upon workflow registration has been provided, the process advances to step S1004. If it is determined that an instruction to use the resource upon workflow execution has been provided, the process advances to step S1005.

In step S1004, the resource preparing section514prepares such that the required resource is acquired in accordance with the content of the instruction that has been received from the user in step S1003. In other words, the resource preparing section514acquires the relevant resource in the use resource list that has been generated in step S1002, and the process advances to step S1005.

In step S1005, the resource feature quantity acquisition instruction receiving section531receives an instruction from the user about whether or not the feature quantity (hash value, etc.) of the resource is to be acquired. If the resource feature quantity acquisition instruction receiving section531is instructed to acquire the feature quantity, the process advances to step S1006, whereas if the resource feature quantity acquisition instruction receiving section531is instructed not to acquire the feature quantity, the process is terminated.

In step S1006, the registration-time feature quantity acquiring section532acquires and stores the feature quantity of the relevant resource in the use resource list that has been generated in step S1002in accordance with the content of the instruction that has been received from the user in step S1005. Then, a series of operations is terminated.

FIG. 12is a flowchart according to the third embodiment of the present invention, which shows an example of processing in the case in which the workflow is executed by using the previously-acquired resource and the resource feature quantity information.

Steps S1101to S1108are the flowchart for the execution of individual processing included in the workflow. It should be noted that the processing in steps S1101to S1108is executed in step S701shown inFIG. 6described above.

In step S1101, the workflow management service section501determines whether or not the registration-time feature quantity (e.g., hash value) that has been acquired and stored by the registration-time feature quantity acquiring section532is present. As a result, if the registration-time feature quantity is present, the process advances to step S1102, whereas if the registration-time feature quantity is not present, the process advances to step S1106.

In step S1102, the execution-time feature quantity acquiring section533acquires the execution-time feature quantity, and the feature quantity comparing section534compares the registration-time feature quantity with the execution-time feature quantity. As a result, if both match, the process advances to step S1104, whereas if they are different, the process advances to step S1106.

In step S1104, the sixth workflow execution instructing section535instructs the workflow executing servers402to404to execute the workflow by using the resource upon workflow execution. Then, the process advances to step S1105.

In step S1105, the workflow management service section501waits for the result of the workflow execution instruction received in step S1104, step S1107, or step S1108. The workflow management service section501receives the workflow execution result from the workflow executing servers402to404, and then the process is terminated.

In step S1106, the workflow management service section501determines the presence or absence of the resource that has been previously acquired by the resource preparing section514. As a result, if it is determined that the previously-acquired resource is present, the process advances to step S1107. If it is determined that the previously-acquired resource is not present, the process advances to step S1108.

In step S1107, the seventh workflow execution instructing section536instructs the workflow executing servers402to404to execute the workflow, causing them to process the workflow by using the resource that has been previously acquired by the resource preparing section514. After the execution instruction of the workflow has been carried out, the process advances to step S1105.

In step S1108, the eighth workflow execution instructing section537instructs the workflow executing servers402to404to execute the workflow by using the resource upon workflow execution. Then, the process advances to step S1105.

According to the present embodiment, when the required resource has been previously acquired upon workflow registration and no change has been made to the feature quantity of the resource upon workflow execution, there is no need to send the previously-acquired resource to the workflow execution service section. On the other hand, if any change has been made to the feature quantity of the resource upon workflow execution, the workflow can be processed by using the previously-acquired resource.

Next, the fourth embodiment of the present invention will be described.

FIG. 13is a module configuration diagram of a workflow management service section according to the fourth embodiment of the present invention. The workflow management service section501includes the workflow generating section511, the use resource list generating section512, the use resource instruction receiving section513, the resource preparing section514, and the workflow interpreting section515. Furthermore, the first workflow execution instructing section516, the second workflow execution instructing section517, the resource feature quantity acquisition instruction receiving section531, the registration-time feature quantity acquiring section532, the execution-time feature quantity acquiring section533, and the feature quantity comparing section534are provided. In addition to these components, a resource change-time behavior receiving section541and a ninth workflow execution instructing section (workflow execution instructing section upon resource change)542are provided.

The workflow interpreting section515interprets the workflow that has been generated by the workflow generating section511. If it is determined that the feature quantity of the resources is different as a result of the comparison processing performed by the feature quantity comparing section534, upon resource change the workflow execution instructing section542executes processing in accordance with the behavior that has been previously received by the resource change-time behavior receiving section541. In other words, the resource change-time behavior receiving section541receives an instruction about the behavior of the case assuming that the feature quantity becomes different upon workflow execution when the registration-time feature quantity acquiring section532acquires the registration-time feature quantity of the resource. Then, the workflow execution instructing section542instructs the workflow executing servers402to404to execute processing that has been received by the resource change-time behavior receiving section541, when the registration-time feature quantity and the execution-time feature quantity do not match each other as a result of a comparison performed by the feature quantity comparing section534.

FIG. 14is a flowchart according to the fourth embodiment of the present invention, which shows an example of processing in the case in which a behavior, when the resource feature quantity is different upon workflow execution, is previously received from a user.

Steps S1201to S1207are the flowchart for the registration of individual processing included in the workflow. It should be noted that the processing in steps S1201to S1207is executed in step S601shown inFIG. 5described above.

In step S1201, the workflow generating section511receives an instruction about the content to be executed in the workflow from a user.

In step S1202, the use resource list generating section512receives an instruction from the user about the resource to be used in the workflow so as to generate a use resource list.

In step S1203, the use resource instruction receiving section513receives an instruction given from the user about whether the resource to be used in the workflow is the resource upon workflow registration or the resource upon workflow execution. If the section513is instructed to use the resource upon workflow registration, the process advances to step S1204. On the other hand, if the section513is instructed to use the resource upon workflow execution, the process advances to step S1205.

In step S1204, the resource preparing section514acquires the relevant resource in the use resource list that has been generated in step S1202, in accordance with the instruction content that has been received from the user in step S1203. Then, the process advances to step S1205.

In step S1205, the resource feature quantity acquisition instruction receiving section531receives an instruction about whether or not the resource feature quantity is acquired from a user. If the section531is instructed to acquire the resource feature quantity, the process advances to step S1206. On the other hand, if the section531is instructed not to acquire the resource feature quantity, the process is terminated.

In step S1206, the registration-time feature quantity acquiring section532acquires and stores the feature quantities of the relevant resources in the use resource list that has been generated in step S1202, in accordance with the instruction content that has been received from the user in step S1205, and the process advances to step S1207.

In step S1207, the resource change-time behavior receiving section541receives the behavior in the case where the feature quantity that has been acquired in step S1206has not been matched with the execution-time feature quantity upon workflow execution from a user. Then, a series of operations is terminated.

FIG. 15is a flowchart according to the fourth embodiment of the present invention, which shows an example of processing to be carried out in accordance with the behavior, which has been previously received from the user, upon resource change, when the execution-time feature quantity of the resource according to the workflow is different from the registration-time feature quantity.

Steps S1301and S1308are the flowchart for the execution of individual processing included in the workflow. It should be noted that the processing in steps S1301and S1308is executed in step S701shown inFIG. 6described above.

In step S1301, the workflow management service section501determines whether or not the registration-time feature quantity that has been acquired by the registration-time feature quantity acquiring section532is present. As a result, if the registration-time feature quantity is present, the process advances to step S1302. If the registration-time feature quantity is not present, the process advances to step S1306.

In step S1302, the execution-time feature quantity acquiring section533acquires the execution-time feature quantity of the resource, and the feature quantity comparing section534compares the registration-time feature quantity with the execution-time feature quantity. As a result of comparison, if both match, the process advances to step S1304. On the other hand, if they do not match, the process advances to step S1306.

In step S1304, the first workflow execution instructing section516instructs the workflow executing servers402to404to execute the workflow by using the resource upon workflow execution. Then, the process advances to step S1305.

In step S1305, the workflow management service section501waits for the result of the workflow execution instruction received in step S1304, step S1307, or step S1308. The workflow management service section501receives the workflow execution result from the workflow executing servers402to404, and then a series of operations is terminated.

In step S1306, the workflow management service section501determines whether or not the resource that has been previously acquired by the resource preparing section514is present. As a result, if it is determined that the previously-acquired resource is present, the process advances to step S1307. On the other hand, if it is determined that the previously-acquired resource is not present, the process advances to step S1308.

In step S1307, the second workflow execution instructing section517instructs the workflow executing servers402to404to execute the workflow so as to cause them to process the workflow by using the resource that has been previously acquired by the second resource preparing section514. After the execution instruction of the workflow has been made, the process advances to step S1305.

In step S1308, the workflow execution instructing section542executes processing in accordance with the behavior upon resource change that has been received from the user in step S1207. Then, a series of operations is terminated.

According to the present embodiment, if the feature quantity of the necessary resource has been previously acquired upon workflow registration, the workflow can be executed in accordance with the processing that has been previously specified by a user, when it is determined that the feature quantity has been changed upon workflow execution.

Hereinafter, the fifth embodiment of the present invention will be described.

FIG. 16is a view for explaining the fifth embodiment of the present invention and is a module configuration diagram of a workflow management service section. The workflow management service section501includes the workflow generating section511, the use resource list generating section512, the use resource instruction receiving section513, the resource preparing section514, and the workflow interpreting section515. Furthermore, the first workflow execution instructing section516, the second workflow execution instructing section517, the resource feature quantity acquisition instruction receiving section531, the registration-time feature quantity acquiring section532, the execution-time feature quantity acquiring section533, the feature quantity comparing section534, and the resource change-time behavior receiving section541are provided. In addition to these components, a workflow creator determining section551, a resource editor determining section552, a user comparing section553, and a tenth workflow execution instructing section554are provided. It should be noted that the workflow execution instructing section554corresponds to the second workflow execution instructing section upon resource change.

The workflow creator determining section551determines the user (workflow creator) who has generated the workflow at the workflow generating section511. The resource editor determining section552determines who the resource editor upon workflow execution is. Then, the user comparing section553compares the workflow creator with the last editor of the resource. As a result of comparison, if the workflow creator and the last editor of the resource do not match, the workflow execution instructing section554upon resource change instructs the workflow executing servers402to404in accordance with the behavior that has been previously received by the resource change-time behavior receiving section541. In other words, these workflow executing servers are instructed to execute the workflow by using the resource upon workflow execution.

FIG. 17is a flowchart according to the fifth embodiment of the present invention, which shows an example of processing in the case in which if it is determined that the last person to update the resource coincides with and is identical with the workflow creator, an instruction for continuing the workflow is received from a user even if the resource has been changed.

The flowchart inFIG. 17is for the case in which steps S1211and S1212receive an instruction about the behavior for in the case where the resource has been changed, from a user. It should be noted that the processing in steps S1211and S1212is executed in step S1207shown inFIG. 14described above.

In step S1211, the resource change-time behavior receiving section541receives an instruction from a user about whether or not processing is to be continued, if the last person to update the resource matches the workflow registrant when the execution-time feature quantity is different from the registration-time feature quantity. If it is determined that the instruction that has been received from the user is to continue the workflow, the process advances to step S1212. If a user instruction is to stop the workflow regardless of the last person to update the resource when the execution-time feature quantity is different from the registration-time feature quantity, the workflow is stopped, and a series of operations is terminated.

In step S1212, the workflow creator determining section551determines the user who is directing the workflow generating instruction to the workflow generating section511. Data representing the specified user is stored in a memory.

FIG. 18is a flowchart according to the fifth embodiment of the present invention, which shows an example of processing in the case in which, if the last person to update the resource matches the workflow creator, the workflow is continued even if the resource has been changed. It should be noted that the processing in steps S1311to S1316is executed in step S1308shown inFIG. 15described above.

In step S1311, the workflow management service section501determines the instruction that has been received from the user in the step S1211. In other words, the workflow management service section501determines whether or not the received instruction is to continue processing even if the resource has been changed as long as the last person to update the resource matches the workflow registrant. As a result, if the received instruction is to continue processing when the last person to update the resource matches the workflow registrant, the process advances to step S1312. If the received instruction is to stop the workflow regardless of the intention of the last person to update the resource when the execution-time feature quantity is different from the registration-time feature quantity, the process advances to step S1316.

In step S1312, the resource editor determining section552acquires the last person to update the resource upon workflow execution, and the process advances to step S1313.

In step S1313, the user comparing section553compares the workflow creator who has been acquired in step S1212with the last person to update the resource who has been acquired in step S1312. As a result of the comparison, when both match, the process advances to step S1314. When both do not match, the process advances to step S1316.

In step S1314, the workflow execution instructing section554instructs the workflow executing servers402to404to execute the workflow by using the resource upon workflow execution. Then, the process advances to step S1315.

In step S1315, the workflow management service section501waits for the result of the workflow execution instruction received in step S1314. The workflow management service section501receives the workflow execution result from the workflow executing servers402to404, and then a series of operations is terminated.

In step S1316, the workflow management service section501stops the workflow because the last person to update the resource upon workflow execution is different from the workflow creator, and then the process is terminated.

According to the present embodiment, if the user who made the change matches the workflow creator, the workflow can be processed by using the resource upon workflow execution even when the resource has been changed upon workflow execution.

Hereinafter, the sixth embodiment of the present invention will be described.

FIG. 19is a module configuration diagram of a workflow management service section according to the sixth embodiment of the present invention. The workflow management service section501includes the workflow generating section511, the use resource list generating section512, the use resource instruction receiving section513, the resource preparing section514, and the workflow interpreting section515, the first workflow execution instructing section516, and the second workflow execution instructing section517. Furthermore, a workflow registration-time resource acquiring section561and a workflow registration-time resource storage section562are provided.

The resource preparing section514acquires the resource upon workflow registration from the workflow registration-time resource acquiring section561, and stores the resource in the workflow registration-time resource storage section562. In other words, when the resource preparation is made by the resource preparing section514, the workflow registration-time resource acquiring section561has previously acquired the resource upon workflow registration. Then, the workflow registration-time resource storage section562stores the resource that has been acquired by the workflow registration-time resource acquiring section561.

FIG. 20is a flowchart according to the sixth embodiment of the present invention flowchart, which shows an example of processing in the case in which the resource upon workflow registration is stored.

Steps S1411to S1413are a flowchart for storing the resource upon workflow registration in accordance with the instruction of the resource preparing section514. It should be noted that the processing in steps S1411to S1413is executed in step S615shown inFIG. 5described above.

In step S1411, the resource preparing section514specifies the resource to be used in the workflow.

In step S1412, the workflow registration-time resource acquiring section561specifies whether the resource that has been specified in step S1411is used in the server or its service section of any of the workflow executing servers402to404.

In step S1413, the workflow registration-time resource acquiring section561makes a request for the resource that has been specified in step S1411to the server or service section that has been specified in step S1412. The workflow registration-time resource storage section562stores the obtained resource in accordance with the request. After the resource is stored, the process is terminated.

According to the present embodiment, the resource that is required upon workflow execution can be previously acquired upon workflow registration so as to store it in the resource storage section in the workflow management service section.

Hereinafter, the seventh embodiment of the present invention will be described.

FIG. 21is a module configuration diagram of a workflow processing system according to the seventh embodiment of the present invention. The workflow processing system is constituted by the workflow management service section501and a plurality of the workflow execution service sections502. The workflow management service section501includes the workflow generating section511, the use resource list generating section512, the use resource instruction receiving section513, the resource preparing section514, and the workflow interpreting section515. Furthermore, the first workflow execution instructing section516, the second workflow execution instructing section517, the workflow registration-time resource acquiring section561, and the workflow registration-time resource storage section562are provided. In addition to these components, a service function determining section571and a workflow registration-time resource storage requesting section572are provided.

The workflow execution service section502includes a workflow execution section518, and may also include a second workflow registration-time resource storage section573(second upon registration resource storage section). The service function determining section571included in the workflow management service section501determines whether or not the workflow execution service section502includes the second workflow registration-time resource storage section573. When the workflow execution service section502includes the workflow registration-time resource storage section573, the workflow registration-time resource storage requesting section572requests the workflow execution service section502to store the resource upon workflow registration.

FIG. 22is a flowchart according to the seventh embodiment of the present invention flowchart, which shows an example of processing for requesting a workflow execution service section so as to store the resource, when the workflow execution service section includes a resource storage section. It should be noted that the processing in steps S1511and S1515is executed in step S615shown inFIG. 5described above.

In step S1511, the resource preparing section514specifies the resource to be used in the workflow.

In step S1512, the workflow registration-time resource acquiring section561specifies which service section of the workflow executing servers402to404uses the resource that has been specified step S1511.

In step S1513, the service function determining section571determines whether or not the service section that has been specified in step S1512has a version management function. As a result, if it is determined that the service section that has been specified in step S1512has a version management function, the process advances to step S1514. On the other hand, if it is determined that the service section does not have a version management function, the process advances to step S1515.

In step S1514, the workflow registration-time resource storage requesting section572requests the service section that has been specified in step S1512to store the state of the resource, which has been specified in step S1511, upon workflow registration. Then, a series of operations is terminated. In step S1515, the workflow registration-time resource acquiring section561requests the resource, which has been specified in step S1511, to the service section that has been specified in step S1512. In response, the workflow registration-time resource storage section562stores the obtained resource. After the resource is stored, a series of operations is terminated.

According to the present embodiment, when the workflow execution service section includes the resource storage section, the resource that is required upon workflow execution can be stored in the workflow execution service section.

This application claims the benefit of Japanese Patent Application No. 2009-058735 filed Mar. 11, 2009 which is hereby incorporated by reference herein it its entirety.