Information processing apparatus, information processing method, and computer program product

An information processing apparatus has one or more programs to execute a workflow and receives an execution request for the workflow. The information processing apparatus includes a workflow storage unit to store therein one or more workflow definitions each defining a workflow including an execution sequence of one or more processes each executed by any of the one or more programs; a selecting unit to receive a selection of a workflow to be executed based on the workflow definitions stored in the workflow storage unit; an editing unit to edit the selected workflow to be executed in response to a user operation to edit the selected workflow; and a workflow controller to execute, in response to reception of an execution request for the edited workflow to be executed, the edited workflow by any of the one or more programs corresponding to a process included in the edited workflow.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority to and incorporates by reference the entire contents of Japanese Patent Application No. 2013-108660 filed in Japan on May 23, 2013.

BACKGROUND OF THE INVENTION

1. Field of the Invention

2. Description of the Related Art

Conventionally, a scanner has a function, by defining in advance a sequence of a plurality of processes as a workflow, to execute the processes defined by the workflow on image data captured (for example, see Japanese Patent Application Laid-open No. 2009-146092). Defining a workflow enables the scanner to transmit the image data captured to a specified folder in a server automatically or to send it via mail automatically. In such a process, there may be a case in which image correction and character recognition are performed on the image data captured.

As in the foregoing, defining a workflow enables the scanner, when paper documents used in an office and others are computerized, to execute routine processes corresponding to the paper documents accurately and easily.

When a peripheral server or the like is updated or a new program is provided, for example, there may be a case in which a new process is available to add to a workflow. For example, as a new server is installed, a process to deliver scanned data to the new server may become available to add to a workflow. In such case, an administrator examines the content of an existing workflow, and updates the existing workflow or creates a new workflow, thereby enabling a user to select and execute the newly defined workflow.

However, when a great number of paper documents or operations are generated in the office and others, the number of workflows to be registered is also numerous. Consequently, for the user to execute a workflow that uses a newly added process, the user needs to wait until the administrator updates the existing workflow or creates a new workflow, and this may pose a problem in the operation of the user. Such a problem is not limited to the workflow executed on the image data captured by the scanner, and can arise in a use form in which a computer program or a device that is addable is used to execute a workflow.

Therefore, there is a need for a an information processing apparatus and an information processing method that enable efficient management of a workflow definition in which an execution sequence of processes is defined.

SUMMARY OF THE INVENTION

According to an embodiment, an information processing apparatus has one or more programs to execute a workflow and receives an execution request for the workflow. The information processing apparatus includes a workflow storage unit to store therein one or more workflow definitions each defining a workflow including an execution sequence of one or more processes each executed by any of the one or more programs; a selecting unit to receive a selection of a workflow to be executed based on the workflow definitions stored in the workflow storage unit; an editing unit to edit the selected workflow to be executed in response to a user operation to edit the selected workflow; and a workflow controller to execute, in response to reception of an execution request for the edited workflow to be executed, the edited workflow by any of the one or more programs corresponding to a process included in the edited workflow.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following describes an embodiment in detail with reference to the accompanying drawings. The invention, however, is not limited to the embodiment.

FIG. 1is a diagram illustrating the configuration of a delivery system10according to the embodiment. The delivery system10includes one or more scanning devices20, a delivery server30, one or more data storage devices40(40-1,40-2,40-3), and an administrator terminal50.

The delivery server30, each of the scanning devices20, and the administrator terminal50are connected to one another via a network. The delivery server30and each of the data storage devices40are connected to one another via a network.

The scanning device20is one example of an image-capturing device, and scans paper or the like to generate image data. The scanning device20may be a multifunction peripheral that has at least one of a facsimile function, a copying function, and a print function, together with the scanner function. The scanning device20transmits the image data generated to the delivery server30via the network.

The delivery server30is composed of one or more information processing apparatuses. The delivery server30acquires image data from each of the scanning devices20.

The delivery server30executes, in a predetermined order, one or more processes on the image data acquired from the scanning device20. The delivery server30executes a filtering process (image correction, file format conversion, character recognition, barcode reading, document information extraction, and others) on the image data acquired from the scanning device20, as one example. The delivery server30then transmits the image data acquired from the scanning device20as well as the various document information generated by the filtering process to the predetermined data storage device40to store them in the data storage device40.

Each of the data storage devices40is a device that stores therein image data. The data storage devices40include a file server40-1that manages shared folders of Windows (registered trademark), a file transfer protocol (FTP) server40-2, and a web-based distributed authoring and versioning (WebDAV) server40-3, as one example. The data storage devices40may be SharePoint servers or e-mail transmission servers, as one example.

The administrator terminal50is a computer operated by an administrator of the delivery system10. The administrator terminal50performs various settings on the delivery server30via the network.

The delivery server30stores therein in advance plug-in programs (processing programs) that cause a computer to execute processes on the image data captured by the scanning device20. The delivery server30executes the plug-in program to execute a corresponding filtering process and a data transmission process.

For example, the delivery server30stores therein in advance a plug-in program to execute image correction, a plug-in program to execute file format conversion, a plug-in program to transmit data to the file server40-1, a plug-in program to transmit data to the FTP server40-2, and others. The delivery server30then executes the respective plug-in programs to execute the image correction, the file format conversion, the data transmission to the file server40-1, and the data transmission to the FTP server40-2.

The delivery server30further stores therein in advance one or more workflow definitions each defining an execution sequence of one or more processes each executed by the at least one of the plug-in programs. The delivery server30stores therein a plurality of workflow definitions, as one example.

The delivery server30provides a screen to select a workflow definition to the scanning device20prior to a scanning process so as to prompt the user to select any of the workflow definitions. The delivery server30acquires, when the scanning device20executes the scanning process after the user selected a workflow definition, the image data captured by the scanning device20via the network. The delivery server30executes the plug-in programs in accordance with the workflow definition when the image data from the scanning device20is acquired. Consequently, the delivery server30can execute predetermined processes on the image data captured by the scanning device20in a predetermined order.

The delivery server30may be incorporated in the scanning device20in an integrated manner. The delivery system10may include an imaging apparatus or a facsimile, for example, as the image-capturing device in place of or in addition to the scanning device20. The data storage device40may be a device directly connected to the delivery server30, or may be a device configured with the delivery server30in an integrated manner.

FIG. 2is a block diagram illustrating the configuration of the scanning device20and the delivery server30in the embodiment. The scanning device20includes an operation panel61, a display controller62, an information holding unit63, a scanning unit64, and a communication unit65.

The operation panel61displays a screen for the user and receives operation input from the user via operation buttons and a text input box. The operation panel61includes a touch panel and various operation buttons, as one example.

The display controller62controls the operation panel61. The information holding unit63stores therein images to be displayed on the operation panel61and the information entered on the operation panel61. The scanning unit64scans paper and the like set on a platen to generate image data.

The communication unit65performs communication with the delivery server30via the network. The communication unit65acquires information to display on the operation panel61from the delivery server30, and transmits the information entered on the operation panel61to the delivery server30, as one example. The communication unit65further transmits the image data captured by the scanning unit64to the delivery server30, as one example.

The delivery server30includes a communication unit71, a program executing unit72, a workflow storage unit73, a selecting unit74, an editing unit75, a setting unit76, a selection information storage unit77, a post-edit workflow storage unit78, a setting information storage unit79, and a workflow controller80.

The communication unit71performs communication with the scanning devices20, the data storage devices40, and the administrator terminal50via the network.

The program executing unit72executes a plurality of plug-in programs registered in advance in accordance with the control of the workflow controller80.

The workflow storage unit73stores therein one or more workflow definitions. While each of the workflow definitions is assumed to be set (updated or added) by accessing the delivery server30from the administrator terminal50of the administrator with the administrative rights having an authority to define workflows, it is not limited to this. At least when the user uses the scanning device20to execute a workflow, the user selects a desired workflow out of the workflow definitions stored therein already.

The selecting unit74, prior to capturing image data by the scanning device20, receives a selection of any one of the workflow definitions (a selection of a workflow to be executed) out of the workflow definitions in response to the user operation made on the scanning device20. The selecting unit74, via the communication unit71, causes the operation panel61of the scanning device20to display a screen to select a workflow definition, and receives the selection of workflow definition in response to the user operation made on the selection screen, as one example. The selecting unit74then causes the selection information storage unit77to store therein the content of the selection received.

The editing unit75, prior to capturing the image data by the scanning device20, edits the selected workflow definition in response to the user operation made on the scanning device20. The editing unit75, via the communication unit71, causes the operation panel61of the scanning device20to display a screen to edit the selected workflow definition, and receives the user operation to edit the workflow definition made on the edit screen, as one example. The editing unit75edits the workflow definition stored in the workflow storage unit73in response to the user operation received, as one example. The editing unit75then causes the post-edit workflow storage unit78to store therein the edited workflow definition.

The setting unit76receives setting information necessary to process the respective plug-in programs to be executed in accordance with the workflow definition selected or the workflow definition edited. The setting unit76, via the communication unit71, causes the operation panel61of the scanning device20to display an entry screen for setting information, and receives the setting information entered on the entry screen, as one example. The setting unit76then causes the setting information storage unit79to store therein the setting information received.

The selection information storage unit77stores therein the selection information selected by the selecting unit74. The post-edit workflow storage unit78stores therein the workflow definition edited by the editing unit75. The setting information storage unit79stores therein the setting information received by the setting unit76.

When image data is captured by the scanning device20and the communication unit71receives the image data captured by the scanning device20, the workflow controller80refers to the selection information stored in the selection information storage unit77and reads out the workflow definition selected by the user from the workflow storage unit73. When the workflow definition is edited by the editing unit75, the workflow controller80reads out the edited workflow definition from the post-edit workflow storage unit78.

The workflow controller80then causes the program executing unit72to execute at least one of the plug-in programs in accordance with the workflow definition read out or with the workflow definition edited. In this case, the workflow controller80reads out the appropriate setting information from the setting information storage unit79and transfers it to the plug-in program when the respective plug-in programs are executed.

FIG. 3is a diagram illustrating one example of a workflow definition. When the scanning device20performs a scanning process, the delivery server30executes the plug-in programs in accordance with the workflow definition illustrated inFIG. 3, for example.

When the delivery server30receives the image data captured by the scanning device20, the delivery server30first executes a plug-in program that divides and recognizes barcode as the first process, for example. The barcode division/recognition process is a process to extract a barcode located at a given position within the image data from the image data and to acquire the content of the barcode.

Next, as the second process, the delivery server30executes a plug-in program that performs extensible markup language (XML) style sheet conversion, for example. The XML style sheet conversion is a process to convert the bibliographical information of image data to the data in XML format.

Subsequently, as the third process, the delivery server30executes a plug-in program that performs folder delivery, for example. The folder delivery is a process to transmit image data to a shared folder of the file server40-1on the network to store the image data in the shared folder. Furthermore, as the fourth process, the delivery server30executes a plug-in program that performs FTP delivery in parallel with the third process (folder delivery), for example. The FTP delivery is a process to transmit data to the FTP server40-2on the network via FTP to store the data in the FTP server40-2.

FIG. 4is a diagram illustrating an example of a workflow definition described in XML. In the delivery server30, the system configuration is implemented by the computer executing a delivery program. The delivery program runs on a Java virtual machine (Java VM) implemented on an operating system, as one example.

In this case, the workflow definition is implemented by a document described in XML, as one example. For example, the workflow definition illustrated inFIG. 3is implemented by the codes as illustrated inFIG. 4, as one example.

FIG. 5is a flowchart illustrating a sequence of processes performed by the scanning device20and the delivery server30. First, at Step S11, the delivery server30waits until the user sets a sheet of paper on the platen of the scanning device20and selects specific application software (application software to access the delivery server30and execute a workflow) (until the user presses an icon button for the specific application software, for example). When the specific application software is selected (Yes at Step S11), the process of the delivery server30proceeds to Step S12.

Next, at Step S12, the delivery server30performs a process of selecting a workflow definition. Specifically, the delivery server30causes the operation panel61of the scanning device20to display a selection screen to prompt the user to select a workflow definition stored in the workflow storage unit73, and receives the selection of workflow definition by the user. When the selection of workflow definition is completed, the process of the delivery server30proceeds to Step S13.

Then, at Step S13, the delivery server30displays an edit screen on the operation panel61of the scanning device20, performs the process of editing the selected workflow definition in response to the user operation, and stores it in the post-edit workflow storage unit78. When the process of editing the selected workflow definition is completed, the process of the delivery server30proceeds to Step S14.

At Step S13, there may be a case in which the selected workflow definition is not edited. The process at Step S13will be described in detail with reference toFIG. 6and the subsequent drawings.

Next, at Step S14, the delivery server30displays, on the operation panel61of the scanning device20, an entry screen to receive a user input of document information necessary for executing the workflow based on the workflow definition selected or the workflow definition selected and edited, and sets the document information associated with the captured image data (the name of user created and a company name, for example) according to the user input. The items to be set at Step S14may be preset by the administrator using the administrator terminal50or defined in advance in the plug-in program. At least a part of the document information may be input in advance or may be input dynamically by the scanning device20or the delivery server30.

At Step S15, the delivery server30displays, on the operation panel61of the scanning device20, an entry screen to receive a user input of delivery parameters necessary for executing the workflow based on the workflow definition selected or the workflow definition selected and edited, and sets the delivery parameters concerning the destination of the captured image data (a server name or a mail address of the destination, for example) according to the user input. The items to be set at Step S15may be preset by the administrator using the administrator terminal50or defined in advance in the plug-in program. At least a part of the delivery parameters may be input in advance or may be input dynamically by the scanning device20or the delivery server30.

Then, at Step S16, the delivery server30displays, on the operation panel61of the scanning device20, an entry screen to receive a user input of scanning parameters necessary for executing the workflow based on the workflow definition selected or the workflow definition selected and edited, and sets the scanning parameters for the image data (document name, resolution, file format, OCR, or parameters for a correction process, for example) according to the user input. The items to be set at Step S16may be preset by the administrator using the administrator terminal50or defined in advance in the plug-in program. At least a part of the scanning parameters may be input in advance or may be input dynamically by the scanning device20or the delivery server30. As for the input of settings of the document information, the delivery parameters, and the scanning parameters, the order of input does not matter, and thus a single entry screen may be displayed and the user may input the foregoing in any order, for example.

Then, at Step S17, the scanning device20determines whether a start button on the operation panel61is pressed. When the start button is pressed (Yes at Step S17), the process of the scanning device20proceeds to Step S18.

At Step S18, the scanning device20scans a sheet of paper set on the platen to generate image data. The scanning device20then transmits the image data and an execution request for the workflow to the delivery server30via the network.

Next, at Step S19, the delivery server30that has received the execution request executes the plug-in programs in sequence on the image data captured by the scanning device20in accordance with the workflow definition selected (the workflow definition selected at Step S12) or the workflow definition edited (the workflow definition edited at Step S13) and the various types of setting information (the information set at Step S14to Step S16) to execute the requested workflow. Consequently, the delivery server30can execute the predetermined filtering process on the image data captured by the scanning device20, and transmit the image data and others to the predetermined data storage device40to store them in the data storage device40.

FIG. 6is a flowchart illustrating the sequence of an editing process of a workflow definition in a first example. The editing unit75of the delivery server30executes, at Step S13inFIG. 5, the editing process illustrated inFIG. 6.

At Step S21, the editing unit75identifies the plug-in programs that are included in the selected workflow definition. The editing unit75analyzes the workflow definition described as an XML document to identify the plug-in programs included in the selected workflow definition, as one example.

Next, at Step S22, the editing unit75identifies all of the plug-in programs that are executable by the delivery server30. The editing unit75identifies all of the plug-in programs that the delivery server30stores therein, as one example.

Then, at Step S23, the editing unit75determines whether there is any plug-in program that is not defined in the selected workflow definition out of the executable plug-in programs. If there is no executable plug-in program that is not defined in the selected workflow definition (No at S23), the editing unit75breaks away from the present sequence and ends the process without editing the selected workflow definition. If there is any executable plug-in program that is not included in the selected workflow definition (Yes at Step S23), the process of the editing unit75proceeds to Step S24.

At Step S24, the editing unit75identifies the executable plug-in program that is not included in the selected workflow definition as an addable plug-in program. Then, at Step S25, the editing unit75displays a screen to inquire the user whether to edit the selected workflow definition. If the user selects not to edit (No at Step S25), the editing unit75breaks away from the present sequence and ends the process without editing the selected workflow definition. If the user selects to edit (Yes at Step S25), the process of the editing unit75proceeds to Step S26. Alternatively, the editing unit75may omit the display of the inquiry screen at Step S25and the process will proceed to Step S26.

At Step S26, the editing unit75causes the operation panel61of the scanning device20to display a screen to edit the selected workflow definition, and receives the editing operation for the workflow definition made on the edit screen. The editing unit75then edits the workflow definition stored in the workflow storage unit73in response to the user operation received.

For example, the editing unit75edits the workflow definition described as an XML document in response to the user operation. When the editing is completed, the editing unit75breaks away from the present sequence and ends the process.

FIG. 7is a diagram illustrating an example of the edit screen at a time when the editing of a workflow definition is started. The editing unit75displays the edit screen as illustrated inFIG. 7on the operation panel61of the scanning device20, as one example.

On the edit screen, displayed is a flowchart90representing the selected workflow definition. The flowchart90includes a start mark91representing the start, icons92(92-1to92-4) representing the plug-in programs “a” to “d” to be executed, and arrows93(93-1to93-4). The arrows93connect between the start mark91and each of icons92to represent the execution order of the plug-in programs.

On the edit screen, further displayed are icons94(94-1,94-2) representing the addable plug-in programs “e” and “f” in a display area separate from the display area for the flowchart90.

FIG. 8is a diagram illustrating an example of the edit screen while the workflow definition is edited. In response to the user operation to add the icon94-2representing an addable plug-in program “f” to the flowchart90as illustrated inFIG. 8, the editing unit75adds a process executed by a new plug-in program “f” to the workflow definition. This enables the editing unit75to generate the workflow definition defining the processes corresponding to the new plug-in program.

The editing unit75may restrict, with respect to the workflow definition, to delete a plug-in program incorporated already from the workflow definition, or to alter the execution order of the plug-in programs incorporated already. Consequently, the editing unit75can restrict the workflow definition created by the administrator to be substantially altered by the user. More specifically, because the workflow definition can be assumed to be a workflow that the administrator has appropriately defined for each user to use, there may be cases in which the administrator permits to add a process by a new plug-in program to the workflow defined in such manner but not want to permit an edit to delete a process from the defined workflow. In such cases, it is useful that the editing unit75has a function to restrict the workflow definition to be edited in response to the user operation.

As a determination method to determine whether to permit the workflow definition to be edited, the determination method of determining whether there is any plug-in program that is not defined in the selected workflow definition out of the executable plug-in programs is one example. Alternatively, for example, the determination method may be a method of determining whether there is any process that is not defined in the selected workflow definition out of the processes executed by the executable plug-in programs. For example, there may be a plug-in program capable of performing a plurality of processes. In this case for example, when only one process out of the plurality of processes executed by such a plug-in program is defined in the workflow definition, the editing unit75can edit the workflow definition to change processes to be executed by such a plug-in program. At this time, the processes to be executed by such a plug-in program that can be edited (added, for example) out of the plug-in programs already defined in the workflow definition may be displayed in the flowchart90inFIG. 7by changing the display colors to be distinguishable from the other plug-in programs, or may be displayed in another display area to be identifiable.

FIG. 9is a diagram illustrating an example of the edit screen when a workflow definition is newly created. When the selecting unit74prompts the user to select a workflow definition, the selecting module74may select an empty workflow definition not including any plug-in program to be executed For example, the selecting unit74displays a create-new button, and in response to the create-new button being pressed, selects an empty workflow definition.

In this case, on the edit screen, the flowchart90including only the start mark91is displayed first. On the edit screen, further displayed are the icons94(94-1to94-6) representing all of the plug-in programs executable by the delivery server30in the area different from the area for the flowchart90. Then, the editing unit75, in response to the user operation to add the icon94-4to the flowchart90including only the start mark91, adds a new process executed by the plug-in program “e” corresponding to the icon94-4to the workflow definition.

Consequently, the editing unit75can newly create a workflow definition on the operation panel61of the scanning device20.

FIG. 10is a flowchart illustrating the sequence of an editing process of a workflow definition in a second example. The editing unit75of the delivery server30may execute, at Step S13inFIG. 5, the editing process illustrated inFIG. 10, for example.

First, at Step S31to Step S33, the editing unit75executes the same processes as those executed at Step S21to Step S23illustrated inFIG. 6. At Step S33, if there is any executable plug-in program that is not defined in the selected workflow definition (Yes at Step S33), the process of the editing unit75proceeds to Step S34.

At Step S34, the editing unit75determines whether there is any plug-in program that has been added or updated after the last edition of any of the workflow definitions by the administrator terminal50and is not included in the selected workflow definition.

The editing unit75determines whether an edited flag, which is assigned to each plug-in program as illustrated inFIG. 11, is off (e.g., 0) for each of the plug-in programs that are not included in the selected workflow definition, as one example. The edited flag is set to off (e.g., 0) when the plug-in program thereof is added or updated, and is set to on (e.g., 1) when the administrator terminal50edits any of the workflow definitions.

If any added or updated plug-in program is not present, more specifically, any plug-in program with the edited flag being off is not present in the selected workflow definition (No at Step S34), the editing unit75breaks away from the present sequence and ends the process without editing the selected workflow definition.

If the added or updated plug-in program is present, more specifically, a plug-in program with the edited flag being off are present (Yes at Step S34), the process of the editing unit75proceeds to Step S35.

At Step S35, the editing unit75identifies, as an addable plug-in program, the plug-in program that is not defined in the selected workflow definition and has been added or updated after the last edition of any of the workflow definitions by the administrator terminal50.

Next, at Step S36and Step S37, the editing unit75executes the same processes as those executed at Step S25and Step S26illustrated inFIG. 6.

Consequently, on the operation panel61of the scanning device20, the editing unit75can add the plug-in program that has been added or updated after the last edition of any of the workflow definitions by the administrator terminal50to the selected workflow definition.

FIG. 12is a flowchart illustrating the sequence of an updating process of the edited flags inFIG. 11. First, at Step S41, the administrator terminal50adds or updates any of the plug-in programs to be executed by the program executing unit72. The plug-in programs are not necessarily be added or updated by the administrator terminal50, and there are other ways including the delivery server30being made to read and install a CD-ROM in which the plug-in programs are stored, for example. Then, at Step S42, the editing unit75registers the edited flag assigned to the plug-in program added or updated by the administrator terminal50to be off.

Next, at Step S43, the administrator terminal50edits any of the workflow definitions out of the workflow definitions stored in the workflow storage unit73or creates a new workflow definition. Then, at Step S44, the editing unit75registers the edited flags assigned to all of the plug-in programs to be on.

This enables the editing unit75, when any of the workflow definitions is not yet edited by the administrator after the plug-in program has been added or updated, to let the user of the scanning device20add the added or updated plug-in program to a workflow definition.

FIG. 13is a table illustrating an example of edited flags assigned to each workflow definition and each plug-in program. The editing unit75may manage the edited flags for each of the workflow definitions and for each of the plug-in programs as illustrated inFIG. 13.

In this case, at Step S34inFIG. 10, the editing unit75determines whether there is any plug-in program that has been added or updated after the last edition of the selected workflow definition by the administrator terminal50and is not defined in the selected workflow definition. More specifically, the editing unit75determines whether the edited flag for the selected workflow definition is off for each of the plug-in programs that are not included in the selected workflow definition.

This enables the editing unit75to add, on the operation panel61of the scanning device20, the plug-in program that has been added or updated after the last edition of the selected workflow definition by the administrator terminal50, to the selected workflow definition.

FIG. 14is a flowchart illustrating the sequence of an updating process of the edited flags inFIG. 13. First, at Step S51, the administrator terminal50adds or updates any of the plug-in programs to be executed by the program executing unit72. Then, at Step S52, the editing unit75registers the edited flags assigned to the plug-in program added or updated by the administrator terminal50in all of the workflow definitions to be off.

Next, at Step S53, the administrator terminal50edits any of the workflow definitions out of the workflow definitions stored in the workflow storage unit73or creates a new workflow definition. Then, at Step S54, the editing unit75registers the edited flags assigned to all of the plug-in programs in the edited or created workflow definition to be on.

This enables the editing unit75, when the selected workflow definition is not yet edited by the administrator after the plug-in program has been added or updated, to allow the user of the scanning device20to add the added or updated plug-in programs to the workflow definition.

The delivery server30in the above-described embodiment lets the user edit a workflow definition that defines the execution sequence of processes performed on the image data captured by the scanning device20at the time the scanning device20is used, thereby permitting the administrator to efficiently manage the workflow definitions.

InFIG. 10, the processes at Step S31and Step S33may be omitted. In other words, the processes at steps subsequent to Step S34may be performed on the executable plug-in programs including the plug-in programs included in the selected workflow definition. This means that, when a plug-in program defined in a workflow definition is subsequently updated (version upgraded) and executable processes are expanded (for example, a new process is available to be selected), the workflow definition defined based on the plug-in program before the update can be edited based on the plug-in program after the update.

In the sequence inFIG. 10, the determination method of determining whether any executable plug-in program that is not defined in the selected workflow definition is one example.

As for the registration of the edited flags (switching from off to on) of the plug-in programs, it is not limited to the way in which the administrator terminal50accessing the delivery server30and editing any of the workflow definitions already defined is regarded as a trigger. For example, a new workflow definition being set may be regarded as a trigger. Furthermore, in editing a workflow definition, a process to be executed by a new plug-in program being added to the workflow defined may be regarded as a trigger, or even if a new plug-in program is not added, a workflow definition being edited may be regarded as a trigger, or even if a workflow definition is not changed, at least the administrator terminal50accessing the delivery server30and requesting the display of a workflow setting screen may be regarded as a trigger. This is because when the administrator accesses the delivery server30from the administrator terminal50to perform the setting of workflow definitions, the administrator can identify the presence of a new plug-in program (a plug-in program with the edited flag being off) on the setting screen, and thus it can be interpreted that the administrator examined the workflow definitions after identifying the presence of the new plug-in program even if he/she did not define the new plug-in program in any of the workflows at that time. Consequently, the administrator only needs to set what kind of operation is regarded as a trigger, and perform the registration of edited flags according to the setting.

The invention can be applied but not limited to the workflow by the network coordination of the scanning device20and the delivery server30in the foregoing. The device that requests or edits and requests a workflow is not necessarily be the scanning device20, and the device (a requestor device) only needs to be capable of accessing the delivery server30and using the workflow executed in the delivery server30(capable of requesting execution of a workflow) and may be a PC, a projector, a whiteboard, an electronic blackboard, a handheld terminal, and a tablet device, for example. Furthermore, while the delivery server30is a device that executes a workflow including a delivery process, the delivery server30may not need to include the delivery process. The delivery server30may only need to be a device that executes at least a workflow, to which a computer program to execute a process that can be incorporated in a workflow is addable, and that causes a workflow by a process that uses the program to be defined. Thus, the delivery server30is not necessarily be a server and can be implemented by an information processing apparatus such as a PC.

The delivery server30in the embodiment includes a control device such as a CPU, a storage device such as a read only memory (ROM) and a random access memory (RAM), an external storage device such as an HDD and a CD drive device, a display device such as a display, and an input device such as a keyboard and a mouse, and is hardware configured using an ordinary computer.

The program executed by the delivery server30in the embodiment is recorded and provided in a computer readable recording medium such as a compact disc read only memory (CD-ROM), a flexible disk (FD), a compact disc recordable (CD-R), and a digital versatile disc (DVD), as an installable or executable file.

The program executed by the delivery server30in the embodiment may be stored in a computer connected to a network such as the Internet and provided being downloaded via the network. Furthermore, the program executed by the delivery server30in the embodiment may be provided or distributed via a network such as the Internet.

The program executed by the delivery server30in the embodiment may be embedded and provided in a ROM, for example.

The program executed by the delivery server30in the embodiment is modularly configured to include the above-described various units (the communication unit71, the program executing unit72, the workflow storage unit73, the selecting unit74, the editing unit75, the setting unit76, the selection information storage unit77, the post-edit workflow storage unit78, the setting information storage unit79, and the workflow controller80), and as the actual hardware, the CPU (a processor) reads out the program from the storage medium and executes it to load the various units on a main memory device, and thus the various units (the communication unit71, the program executing unit72, the workflow storage unit73, the selecting unit74, the editing unit75, the setting unit76, the selection information storage unit77, the post-edit workflow storage unit78, the setting information storage unit79, and the workflow controller80) are generated on the main memory device. Furthermore, a part or the whole of the respective various units (the communication unit71, the program executing unit72, the workflow storage unit73, the selecting unit74, the editing unit75, the setting unit76, the selection information storage unit77, the post-edit workflow storage unit78, the setting information storage unit79, and the workflow controller80) may be implemented by hardware.

The present invention enables efficient management of a workflow definition in which an execution sequence of processes is defined.