Process flow definition creating system, process flow definition creating device, and a method of creating process flow definition

A process flow definition creating system provides a process flow definition to a system for executing processes in an order in accordance with the process flow definition. The process flow definition creating system includes a device list storage unit; a screen information storage unit, wherein the screen information is for displaying a first field and a second field; a display control unit that displays the parsed screen information; a setting reception unit that receives a setting for the first field and a setting for the second field, wherein the setting for the first field defines the processes and the order of the processes, and the setting for the second field defines correspondence between the processes and devices that are to execute the processes; and a definition creating unit that creates the process flow definition, based on the settings.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a process flow definition creating system, a process flow definition creating device, and a method of creating a process flow definition. The process flow definition defines processes executed by corresponding devices, and an order of executing the processes.

2. Description of the Related Art

An information processing system has been known that executes a sequence of processes. In such an information processing system, an administrator or the like may define a sequence of processes as a workflow in advance. The sequence of processes may include a combination of a typical data input process, a typical data conversion process, and/or a typical data output process. When a user inputs a command to start execution of the sequence of processes defined in the workflow, the information processing system executes the processes in accordance with an order defined by the workflow. In order to execute the sequence of the processes, the user may select the predetermined workflow. The user may not be required to select and execute the processes individually. Thus, the sequence of the processes can be efficiently executed.

FIG. 25is a diagram showing an example of processes included in a workflow. Here, the process1is a process of scanning an original document, the process2is a process of data compression, the process3is an optical character recognition (OCR) process, the process4is a PDF conversion process, and the process5is a mail sending process. In many cases, such a workflow is defined by an administrator of a user's account. The definition of the workflow may be made by combining such processes. The user may select a desired workflow from a plurality of workflows that is defined in advance by the administrator (cf. Patent Document 1 (Japanese Unexamined Patent Publication No. 2011-035779), for example). Patent Document 1 discloses an image forming device that displays names of defined workflows and processes included in the corresponding workflows. Here, each of the workflows corresponds to the processes included in the workflow.

SUMMARY OF THE INVENTION

According to an aspect of the present invention, there is provided a process flow definition creating system configured to provide a process flow definition to a system for executing processes in an order in accordance with the process flow definition for defining the processes to be executed by corresponding devices and the order of executing the processes. The process flow definition creating system includes a device list storage unit configured store a list of the devices; a screen information storage unit configured to store screen information, wherein the screen information is for displaying a first field and a second field, the first field is for setting the processes in the order, and the second field is for setting the devices that are to execute the corresponding processes; a display control unit configured to parse the screen information, and configured to display the parsed screen information; a setting reception unit configured to receive a setting for the first field and a setting for the second field, wherein the setting for the first field defines the processes and the order of the processes, and the setting for the second field defines correspondence between the processes and the devices that are to execute the processes; a definition creating unit configured to create the process flow definition, based on the order of the processes and the devices corresponding to the processes that are received by the setting reception unit; and a definition storage unit configured to store the process flow definition.

According to another aspect of the present invention, there is provided a process flow definition creating device including a device list storage unit configured store a list of devices; a screen information storage unit configured to store screen information, wherein the screen information is for displaying a first field and a second field, the first field is for setting processes in an order, and the second field is for setting the devices that are to execute the corresponding processes; a display control unit configured to parse the screen information, and configured to display the parsed screen information; a setting reception unit configured to receive a setting for the first field and a setting for the second field, wherein the setting for the first field defines the processes and the order of the processes, and the setting for the second field defines correspondence between the processes and the devices that are to execute the processes; a definition creating unit configured to create a process flow definition, based on the order of the processes and the devices corresponding to the processes that are received by the setting reception unit; a definition storage unit configured to store the process flow definition; and a network communication unit configured to transmit the process flow definition to a system for executing the processes in the order in accordance with the process flow definition.

According to another aspect of the present invention, there is provided a method of creating a process flow definition, wherein the process flow definition is to be provided to a system for executing processes in an order in accordance with the process flow definition, and the process flow definition defines the processes to be executed by corresponding devices and the order of executing the processes. The method includes storing a list of the devices; storing screen information, wherein the screen information is for displaying a first field and a second field, the first field is for setting the processes in the order, and the second field is for setting the devices that are to execute the corresponding processes; parsing the screen information, and displaying the parsed screen information; receiving a setting for the first field and a setting for the second field, wherein the setting for the first field defines the processes and the order of the processes, and the setting for the second field defines correspondence between the processes and the devices that are to execute the processes; creating the process flow definition, based on the order of the processes and the devices corresponding to the processes that are received by the receiving; and storing the process flow definition.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A workflow can be executed, at least, by a single device. For example, all the processes included in a workflow may be executed by a single multifunction peripheral (MFP). However, in order to allow a workflow to be executed by a single device, a process that cannot be processed by the single device may not be included in a workflow. However, some users may wish to define a workflow by combining various types of processes.

Accordingly, a plurality of processes included in a workflow may be executed by a plurality of devices. When the plurality of processes included in the workflow is executed by the plurality of devices, an administrator of the workflow may be required to do some work for associating the processes with the devices. Such work can be facilitated, and operability for such work can be improved.

There is a need for a processing flow definition information creating system that can provide a graphical user interface (GUI) with which a workflow can be flexibly defined.

According to an embodiment of the present invention, a process flow definition creating system can be provided that may facilitate defining a workflow.

Hereinafter, the embodiment of the present invention is explained by referring to the accompanying drawings. However, a technical scope of the present invention is not limited to the embodiment.

FIG. 1is a diagram showing an example of correspondence between processes and devices. For example, the processes1,2,4, and5correspond to a multifunction peripheral (MFP), and the process3corresponds to a server. An administrator of workflow may define the correspondence between the processes and the devices by using a graphical user interface (GUI).

FIGS. 2A-2Dare diagrams schematically illustrating a procedure of the administrator for defining a workflow by using an information processing system according to the embodiment. InFIG. 2A, selection of the processes1to5have already been made. Thus, the processes1to5are included in a single workflow. For each ofFIGS. 2A-2D, the upper field of the figure may be referred to as “logical flow field” (or a first field), and the lower field of the figure may be referred to as “physical device flow field” (or a second field). The administrator may perform an operation for defining correspondence between the devices (which are to execute the processes1to5) and the processes1to5. Hereinafter, the screen shown in each ofFIGS. 2A-2Dmay be referred to as a correspondence screen. It is assumed that the correspondence screen is displayed on an administrator's personal computer (PC)150.

FIG. 2A: A device list is displayed on the correspondence screen. The device list may include an icon and/or a name of a physical device that can execute one or more of the processes1to5. A user may drag and drop a device icon61of a desired physical device to the physical device flow field by operating a pointing device, such as a mouse or a touch panel. At this time, the administrator's PC150may automatically display device icons61of physical devices that can execute the processes1to5in the physical device flow field.

FIG. 2B: The administrator's PC150may connect each of process icons62of the corresponding processes1to5and the device icon61by a line. The administrator can visually understand the correspondence between the processes1to5and the physical device, by confirming the lines that connect the physical device and the corresponding processes1to5.

FIG. 2C: The administrator may wish to modify the correspondence. For example, for defining correspondence between the process3and a workflow processing server100, the administrator may drag and drop a device icon61of the workflow processing server in the physical device flow field. Then, the administrator may drag from the process icon62of the process3to the device icon61of the workflow processing server100by using the pointing device. In this manner, the correspondence between the process3and the MFP201can be switched to the correspondence between the process3and the workflow processing server100.

FIG. 2D: The administrator's PC150may connect the process icon62of the process3and the device icon61of the workflow processing server100by a line. The administrator can visually understand that the process3corresponds to the workflow processing server100by confirming the line that connects the process icon62of the process3and the device icon61of the workflow processing server100. The correspondence between the MFP201and the processes4and5may be left as it is. Alternatively, the correspondence between the MFP201and the processes4and5(i.e., the processes downstream of the process3) may be automatically switched to the correspondence between the workflow processing server100and the processes4and5. Details are described below.

In this manner, the information processing system500according to the embodiment can create a logical flow and a physical device flow on the same screen. Accordingly, an administrator can visually define correspondence between a process and a physical device. Additionally or alternatively, the information processing system500can automatically define correspondence between a process and a physical device. Thus, an amount of operations to be performed by an administrator can be reduced. Additionally, after correspondence between a process and a physical device is automatically defined, the correspondence may be easily modified.

Hereinafter, a person who defines a process flow definition is referred to as “administrator.” A person who executes a workflow is referred to as “user.”

Here, a “process flow definition” is information that defines a workflow. The process flow definition may include at least the following information: (i) an order of processes (e.g., the processes1to5ofFIGS. 2A-2D); (ii) devices that execute the processes; and (iii) job settings that may be required for the corresponding processes. A job setting may include, for example, a resolution and/or concentration of scanning, and an e-mail address. A job setting may be defined by an administrator, or by a user who executes a workflow.

Configuration Example

FIG. 3Ais a diagram showing an example of a system configuration of the information processing system500. A workflow execution/request device200, the workflow processing server100, and an administration server250are mutually connected through a network400. Additionally, the administrator's personal computer (PC)150can be connected to the network400.

The network400may be a local area network (LAN). Alternatively, the network400may be a wide area network (WAN) in which a plurality of LANs is connected through corresponding routers. The Internet may be considered as an example of the network400, provided that a firewall may not be required. The network400may achieved by a wired line. Alternatively, a portion of or all the network400may be achieved by a wireless LAN (e.g., IEEE 802.11b/a/g/n). Additionally, a mobile communication network, such as a cellular phone network, a WiMAX-based network, or a PHS network, may be considered as an example of the network400. Here, an ad-hoc network may also be considered as an example of the network400. In the ad-hoc network, the devices included in the information processing system500are connected in a peer-to-peer manner by using an ad-hoc mode of the wireless LAN.

The workflow execution/request device200can execute a workflow by itself. The workflow execution/request device200can request the workflow processing server100to execute a workflow. InFIG. 3A, a MFP201, a mobile terminal202, and a client terminal203are depicted. An information processing device that includes a communication function, such as the MFP201, the mobile terminal202, or the client terminal203, can be the workflow execution/request device200. The information processing system500may include one or more workflow execution/request devices200. The MFP201is a device that includes a function for forming an image, such as a copier, a scanner, a printer, or a facsimile machine. The MFP201may include at least one of the functions of the above-described devices (i.e., the copier, the scanner, the printer, and the facsimile machine). The MFP201may process image data as job data. Here, the image data may be created by scanning an original document, for example. The MFP201may transmit the processed job data to the workflow processing server100, together with the process flow definition.

The mobile terminal202is a terminal that can be carried or held by a user, such as a mobile phone, a smart phone, a tablet terminal, a personal digital assistant (PDA), or a digital camera. The mobile terminal202may transmit, for example, image data, which may be job data that is captured by a camera of the mobile phone or the digital camera, and a process flow definition to the workflow processing server100.

The client terminal203is an information processing device that can be used by a user, such as a laptop PC, a desktop PC, a work station, or a video conference terminal. The client terminal203may transmit application data created by an application and/or web data retrieved from a web server, as job data, to the workflow processing server100, together with a process flow definition, for example.

Here, the workflow execution/request device200is assumed to be a device that is directly operated by a user. However, job data may not be created or stored by such a device that is directly operated by a user. For example, the client terminal203may specify job data stored in a network attached storage (NAS) or the like, and the client terminal203may cause the NAS or the like to transmit the job data to the workflow processing server100.

The workflow processing server100is an information processing device, such as a PC, a server, or a thin client. The MFP201can be the workflow processing server100. The workflow processing server100can execute one or more sequences of processes included in a workflow. The information processing system500may include one or more workflow processing servers100. When the workflow processing server100receives job data and a process flow definition from the workflow execution/request device200, the workflow processing server100may apply an OCR process to the job data, and the workflow processing server100may transmit an e-mail including the processed job data, in accordance with the process flow definition, for example.

The administration server250may receive a definition of a workflow from the administrator's PC150. The administration server250may store one or more process flow definitions that are defined by an administrator. The administration server250may transmit a process flow definition in response to a request from the flow execution/request device200. A user can select a workflow to be executed from a list of workflows.

As described above, an input process may be mainly executed by the workflow execution/request device200. A conversion process may be mainly executed by a combination of the workflow execution/request device200and the workflow processing server100. An output process may be mainly executed by the combination of the workflow execution/request device200and the workflow processing server100.

The job data to be input may be based on a physical medium, such as an original document. Alternatively, the job data to be input may be based on electronic data, such as data created by a word processor. The output may be based on a physical medium, such as an image printed on a paper sheet. Alternatively, the output may be based on electronic data, such as electronic data stored in a document box, or electronic data included in an e-mail.

FIG. 3Bis a diagram showing another example of the system configuration of the information processing system500. As shown inFIG. 3B, the work flow execution/request device200and a workflow server260are connected through the network400. The workflow server260includes the function of the workflow processing server100and the administration server250ofFIG. 3A. Accordingly, the workflow server260can store process flow definitions. In addition, the workflow server260can execute a workflow. The system configuration of the information processing system500can be that ofFIG. 3Aor that ofFIG. 3B. In the following, the embodiment is explained based on the system configuration shown inFIG. 3A.

FIG. 4is a diagram showing an example of a hardware configuration of the MFP201as an example of the workflow execution/request device200. The MFP201may include a controller130; an operations panel125; a facsimile control unit (FCU)126; a capturing unit127; and a printing unit128.

The controller130may include a CPU114; an ASIC116; a north bridge (NB)115; a south bridge (SB)117; a system memory (MEM-P)111; a local memory (MEM-C)112; a hard disk drive (HDD)113; a memory card slot123; a network interface controller118; a USB device119; an IEEE 1394 device121; and a Centronics device122.

The CPU114is an integrated circuit (IC) for executing various types of information processing. The CPU114can execute an application that runs on an operating system (OS) or on a platform. The CPU114can execute the application in a parallel manner on a process-by-process basis. The ASIC116is an IC for image processing. The NB115is a bridge for connecting the CPU114and the ASIC116. The SB117is a bridge for connecting the NB115to a peripheral device or the like. The ASIC116and the NB115can be connected through an accelerated graphics port (AGP), for example.

The MEM-P111is a memory that is connected to the NB115. The MEM-C112is a memory that is connected to the ASIC116. The HDD113is a storage device that is connected to the ASIC116. The HDD113can be used for storing, for example, image data, document data, programs, font data, and/or form data. The HDD113stores various types of application programs (e.g., programs of a copy application, a scanner application, a printer application, and a facsimile application) and a program131. The program131is for receiving a definition of a workflow defined by a user.

The memory card slot123is connected to the SB117. The memory card slot123is used for attaching (inserting) a memory card124to the MFP201. The memory card124is a flash memory, such as a USB memory or a SD memory. The memory card124can be used for loading the program131. Alternatively, the program131may be downloaded from a predetermined server to the MFP201.

The NIC118is a controller for executing data communication through the network400, for example. A MAC address may be used for the data communication. The USB device119is a device that provides a serial port conforming to the USB standard. The IEEE 1394 device121is a device that provides a serial port conforming to the IEEE 1394 standard. The Centronics device122is a device that provides a parallel port conforming to the Centronics specification. The NIC118, the USB device119, the IEEE 1394 device121, and the Centronics device122are connected to the NB115and to the SB117through a peripheral component interconnect (PCI) bus.

The operations panel125is a hardware component (an operation unit) for a user to make an input to the MFP201. At the same time, the operations panel125is a hardware component (a display) for the MFP201to display a menu screen. The operations panel125is connected to the ASIC116. The FCU126, the capturing unit127, and the printing unit128are connected to the ASIC116through a peripheral component interconnect (PCI) bus.

The capturing unit127is for generating color digital data or monochrome digital data (which may be referred to as “image data,” hereinafter). The capturing unit127optically scans an original document disposed on contact glass. The capturing unit127applies an analog-to-digital (A/D) conversion process to the reflected light. Then, the capturing unit127generates the image data by applying image processing to the resultant data.

The printing unit128may include a tandem type photosensitive drum, for example. The printing unit128can modulate a laser beam based on the above-described image data or based on page description language (PDL) data received from a user's PC. The printing unit128can form a latent image by scanning the modulated laser beam onto the photosensitive drum. The printing unit128can develop an image by applying toner onto the latent image. Here, the image is for one page. The printing unit128can transfer the image onto a paper sheet by using heat and pressure. Here, an electrophotographic plotter is explained as an example of the printing unit128. However, the printing unit128is not limited to this example. For example, the printing unit128may be an inkjet plotter engine that forms an image by discharging liquid droplets.

The FCU126can establish connection to the network400through the NIC118. In this case, the FCU126may communicate image data in accordance with a communication protocol conforming to T.37 standard or T.38 standard, for example. Alternatively, the FCU126can establish connection to a public telecommunication network. In this case, the FCU126may communicate image data in accordance with a communication protocol conforming to G3 standard or G4 standard, for example. Even if image data is received while a power supply of the MFP201is turned off, the FCU126can activate the printing unit128, and the FCU126can cause the printing unit128to print the image data onto a paper sheet.

FIG. 5is a diagram showing an example of a hardware configuration of the workflow processing server100, the administration server250, and the administrator's PC150. Each of the workflow processing server100, the administration server250, and the administrator's PC150may include a CPU301; a ROM302; a RAM303, a HDD304, a graphics board305to which a display320is connected; a keyboard and mouse306; a media drive307; and a network communication unit308. The CPU301may load the program310stored in the HDD304into the RAM303, and the CPU301may execute the program310. In this manner, the CPU301can execute an input process, an output process, and/or data processing by controlling corresponding components. The ROM302may store the Basic Input/Output System (BIOS) and/or a starting program for reading out a bootstrap loader from the HDD304and writing the bootstrap loader in the RAM303. The bootstrap loader reads out an operating system (OS) program from the HDD304, and the bootstrap loader writes the operating system program in the RAM303.

Here, the HDD304is used as a non-volatile memory. However, the non-volatile memory is not limited to the HDD304. For example, a solid state drive (SSD) may be used, instead of the HDD304. The HDD304stores the OS, a device driver, and the program310. The program310is for providing a function described below. The display320displays a GUI screen. The GUI screen may be created by the graphics board305under control of a program.

The keyboard and mouse306is an input device for receiving a user's operation. The media drive307may read and write data in an optical medium, such as a compact disk, a DVD, or a Blu-ray Disc. Additionally, the media drive307may read and write data in a flash memory. The network communication unit308may be an Ethernet (registered trade mark) card for establishing connection to a LAN, for example. Protocol processing of the TCP/IP (and/or UDP/IP) and an application layer may be executed by the OS and/or by the program310. There are many types of application layer protocols. For example, the Simple Network Management Protocol (SNMP), the HTTP, the FTP, the Server Message Block (SMB) can be considered as examples of the application layer protocol.

The program310may be stored in a computer readable recording medium as a file in an installable format or in an executable format. Accordingly, the program310may be distributed by distributing the computer readable recording medium storing the program310. Alternatively or additionally, the program310may be distributed by a server (not shown) as a file in an installable format or in an executable format.

FIG. 6is a diagram showing an example of functional blocks of the administration server250and the administrator's PC150. The administrator's PC150may include a screen data request unit51; an operation reception unit52; a display controller53; and a process flow definition transmitter54. The operation reception unit52receives a user's operation on the keyboard and mouse306. The screen data request unit51requests to the administration server250for screen data. The display controller53may be a browser application, for example. The display controller53parses screen data, and the display controller53can displays the parsed screen data on the display320. The screen displayed on the display320may be a correspondence screen. A process flow definition can be defined by receiving, through the operation reception unit52, an administrator's operation on the correspondence screen displayed on the display320. The process flow definition transmitter54transmits the process flow definition that is defined by the administrator to the administration server250.

The administration server250may include a screen data database44; a device list table45; a workflow list database38; a connection information database46; a screen data transmitter41; a process flow definition receiver42; and a process flow definition creating unit43. The screen data database44stores screen data described in HTML, JavaScript (registered trademark), and/or XML, for example. The device list table45registers a list of physical devices that can execute a process. The workflow list database38registers a list of workflows that are defined by an administrator. Here, a physical device is an element included in the information processing system500that can execute a workflow. Specifically, a physical device may be the workflow execution/request device200or the workflow processing server100.

When the administration server250receives a request from the administrator's PC150, the screen data transmitter41retrieves screen data from the screen data database44, and the screen data transmitter41transmits the retrieved screen data to the administrator's PC150. The process flow definition receiver42receives a process flow definition from the administrator's PC150. The process flow definition receiver42outputs the received process flow definition to the process flow definition creating unit43. The process flow definition creating unit43completes (creates) the process flow definition by referring to the connection information database46, and the process flow definition creating unit43registers the completed (created) process flow definition in the workflow list database38. Here, data that is the same as the data stored in the workflow list data base38may be stored in the workflow processing server100and/or in the MFP201.

FIG. 7Ais a diagram showing an example of the device list table45. The device list table45registers information of processes, information of devices that can execute the processes, and machine identifications (IDs) that identifies the corresponding devices. Here, in the device list table45, the information of the processes corresponds to the information of the devices and the machine IDs. A machine ID is identifying information that uniquely identifies a physical device in the information processing system500. The device list table45is transmitted to the administrator's PC150together with the screen data. With the device list table45, the administrator's PC150can avoid mismatch between the process and the physical device.

FIG. 7Bis a diagram showing an example of the connection information database46. The connection information database46registers IP addresses of connection destination physical devices and authentication information. With these IP addresses, when a single workflow is to be executed by a plurality of physical devices, for example, the MFP201can transmit a process flow definition and job data to the workflow processing server100. In the above-described example, the connection information database46registers the IP addresses. However, the connection information database46according to the embodiment is not limited to this. For example, the connection information database46may register machine IDs, instead of the IP addresses. In this case, the connection information database46may query a Domain Name System (DNS) server for an IP address, based on the machine ID. In this manner, the connection information database46may identify the IP address based on the machine ID. The authentication information is information that is used by a physical device (e.g., the MFP201or the workflow processing server100) to authenticate a user. For example, authentication information used by the MFP201may be a user name and a password. Authentication information used by the workflow processing server100may be an administrator name and a password. For executing a workflow, the workflow execution/request device200queries a user for valid authentication information.

FIGS. 8A and 8Bare diagrams showing examples of the process flow definition.FIG. 8Ashows the examples of the process flow definition from a viewpoint of an administrator or a user.FIG. 8Bshows the example of the process flow definition that is created by the administration server250. InFIG. 8B, the workflows2and3are omitted. Immediately after a process flow definition is transmitted from the administrator's PC150to the administration server250, the process flow definition is in a state shown inFIG. 8A.

As shown inFIG. 8A, the workflow list database38registers process flow definitions of corresponding workflows. Specifically, for each of the workflow names (e.g., the workflow1, the workflow2, or the workflow3), an order of a sequence of processes and the devices corresponding to the processes are registered. Here, a number of processes included in a single workflow may be greater than or equal to five. Alternatively, a number of processes included in a single workflow may be less than five. A single work flow may be defined only to include one process. InFIG. 8A, the job settings (i.e., the information (iii) described above) of the corresponding processes are omitted.

The process flow definition creating unit43completes (creates) the process flow definition as shown inFIG. 8Bby inserting some connection processes into the process flow definition transmitted from the administrator's PC150. As described in detail below, when a physical device to execute a process is to be switched, a connection process is inserted into a corresponding portion of a process flow definition. InFIG. 8B, the process2-1and the process3-1are connection processes.

FIG. 9is a diagram showing an example of a process flow definition in XML format. The lines from <flows> to </flows> define a single workflow. The lines from <flow> to </flow> define an order of the processes in the workflow.

A single process is described in units of a <plugin id> tag. The <plugin id> tag described a type of the process to be executed. For example, plugin id=“SCAN” represents a process of reading an original document, and type=“input” represents that a type of data processing is an input process. Similarly, displayName=“Scanning” represents a name of a process that can be visually confirmed by a user on the administrator's PC150or on the operations panel125. Similarly, proceed=machineID_001 represents a machine ID of a physical device that corresponds to the process.

Similarly, plugin id=“Compression” represents a process of data compression, plugin id=“Connect” represents a connection process, plugin id=“OCR” represents an OCR process, plugin id=“PDFConverter” represents a PDF conversion process, and plugin id=“MailSend” represents a mail sending process. Further, type=“filter” represents that a type of data processing is a conversion process, type=“output” represents that a type of data processing is an output process, and type=“send” represents a transmission process for a connection process, which is neither a conversion process nor an output process.

The lines from <parameter> to </parameter> defines a job setting. The job setting describes settings that may be required for a corresponding process. Some job settings can be defined by an administrator or a user. Some job settings may be determined in advance as corresponding fixed values.

The <current_point> tag represents a process of a workflow that is to be currently executed (e.g., upon receiving the process flow definition, or immediately after update) by a physical device. Hereinafter, “current_point” may be referred to as a “current point.” The MFP201or the workflow processing server100determines a process to execute by referring to the current point. When a process is completed, content of the current point is updated to be a succeeding process to be executed. For example, when a scanning process is completed, the <current_point> tag is updated as shown below.

FIG. 10a diagram showing an example of functional blocks of the workflow execution/request device200(e.g., the MFP201) and the workflow processing server100. The workflow execution/request device200may include a log-in unit37and a process flow definition selection unit36. The log-in unit37may query authentication information that may be required for executing a workflow. The authentication information may be log-in information for logging in to the MFP201operated by a user, for example. In other words, a user that can log in to the MFP201is allowed to execute a workflow. In this case, when a physical device is to be switched to another physical device, the other physical device refers to the connection information database46, and retrieves required authentication information from the connection information database46. The other physical device attaches the retrieved authentication information to the process flow definition. For a case where authentication information is strictly required, the log-in unit37may query a user for authentication information of each of physical devices that executes a corresponding process included in a workflow.

A user can make a selection of a workflow by using the process flow definition selection unit36. The process flow definition selection unit36receives the selection of the workflow made by the user. When the MFP201is used within an office, the MFP201may obtain the workflow list database38from the administration server250in advance. A user may cause the MFP201to display a list of workflows on the operations panel125by a predetermined operation. Then, the user may select a desired workflow. When the workflow execution/request device200is the mobile terminal202, for example, the mobile terminal202(as the workflow execution/request device200) may access the administration server250or the workflow processing server100, and the mobile terminal202may retrieve a list of workflows registered in the workflow list database38.

The process flow definition selection unit36queries, for each process included in the workflow selected by the user, a required job setting. For example, for an input process, a setting of a resolution and/or concentration (density) that can be set for scanning may be queried. For a conversion process, for example, a compression ratio may be queried. For an output process (printing), a setting of an e-mail address may be received, for example. When an input is based on electronic data, a setting of job data (e.g., document data, image data, and/or video data) to be processed may be received. When an output is based on printing on a physical medium, such as a sheet of paper, a setting of a size of a sheet, magnification/reduction, aggregation printing (N in 1 printing), color/monochrome, a number sheets to be printed, a finish, and/or the like may be received. The process flow definition selection unit36updates the process flow definition with the job settings of the corresponding process.

As for functions related to execution of a workflow, the MFP201(i.e., the workflow execution/request device200) may include one ore more plug-ins21; a flow control unit22; and a job controller23. The job controller23controls execution of each of processes of the workflow. First, a job receiver33of the job controller23retrieves a process flow definition from the process flow definition selection unit36. Subsequently, by executing an input process, job data is obtained. The process flow definition is stored in a job queue35of the job controller23together with the job data.

A process flow definition and job data may be transmitted from another physical device. In other words, the MFP201(i.e., the workflow execution/request device200) may receive a process flow definition and job data from the workflow processing server100. (Additionally, the workflow processing server100may receive a process flow definition and job data from the MFP201(i.e., the workflow execution/request device200).) In such a case, the job controller23stores the process flow definition and the job data in the job queue35. Here, a single job may correspond to a single process to which a single plug-in is attached.

The job receiver33determines whether the job data is to be processed by the MFP201(i.e., the workflow execution/request device200), based on the process flow definition of the workflow that is temporarily stored in the job queue35. Namely, the job receiver33determines whether the process of the current point corresponds to the machine ID of the MFP201(i.e., the workflow execution/request device200) itself. Even if the process of the current point corresponds to the machine ID of the MFP201(i.e., the workflow execution/request device200) itself, if Plugin id=“Connect” is specified, the process is a connection process. Accordingly, in this case, a job execution unit31of the job controller23updates the process flow definition, and subsequently the job execution unit31causes a job transmitter32of the job controller23to transmit the process flow definition and the job data. The destination of the transmission is described in the process flow definition.

When the process of the current point corresponds to the machine ID of the MFP201(i.e., the workflow execution/request device200) itself, and when the process of the current point is not a connection process, the job execution unit31reads out the process flow definition and the job data from the job queue35, and the job execution unit31executes the process defined by the process flow definition and the job data. The job execution unit31outputs the process flow definition and the job data to the flow control unit22.

The flow control unit22selects a plug-in21in accordance with the process flow definition. As described above, a plug-in21may be a plug-in for executing an input process, a plug-in for executing a PDF conversion process, a plug-in for sending an e-mail, a plug-in for executing an OCR process, a plug-in for executing a translation process, or a plug-in for executing an output process, for example. Each of the plug-ins21can operate on a common platform. The MFP201(i.e., the workflow execution/request device200) and the workflow processing server100can independently add a single plug-in21, or can independently remove a single plug-in21. A plug-in21does not interfere with processing of another plug-in21. In this example, it is explained that a process may be executed by a plug-in21. However, the embodiment is not limited to this. For example, a process may be executed by an application program.

The flow control unit22identifies the process of the current point. Then, the flow control unit22calls a plug-in21that is to execute the process, and the flow control unit22causes the plug-in21to execute the process. When the job is successfully completed, the flow control unit22updates the process of the current point. The flow control unit22stores the process flow definition and the job data in the job queue35.

A job detection unit34of the job controller23detects that the job is input to the job queue35. Namely, when job data that is created by the plug-in by executing a single process is stored in the job queue35, the job detection unit34detects that the job data is stored in the job queue35. After that, the job execution unit31and the like repeat similar processes.

The workflow processing server100may include one ore more plug-ins21; a flow control unit22; and a job controller23. As for execution of a job, the workflow processing server100may include the same functions as those of the MFP201(i.e., the workflow execution/request device200). In other words, an execution procedure of a workflow by the workflow processing server100may be the same as that of the MFP201(i.e., the workflow execution/request device200).

Accordingly, even if a process is to be processed across the MFP201and the workflow processing server100, a corresponding workflow can be processed because a process flow definition and job data are communicated through a connection process. Namely, a workflow can be flexibly defined.

[Operation Procedure of Creating a Process Flow Definition]

FIG. 11shows a flowchart of an example of a procedure for the administrator's PC150and the administration server250to create a process flow definition.

When the screen data request unit51of the administrator's PC150queries the administration server250for screen data of the correspondence screen, the screen data transmitter41of the administration server250transmits the screen data to the administrator's PC150(S210).

The screen data request unit51receives the screen data (S110).

The display controller53parses the screen data, and the display controller53displays the correspondence screen on the display320(S120).

A user sets one ore more processes in the logical flow field by operating the keyboard and mouse306(S130).

Next, the user defines correspondence between the processes in the logical flow field and physical devices by operating the keyboard and mouse306(S140). Details of the procedure are explained by referring toFIGS. 12 to 17.

The process flow definition transmitter54transmits the process flow definition to the administration server250(S150).

The process flow definition receiver42of the administration server250receives the process flow definition (S220).

The process flow definition creating unit43determines whether the process flow definition includes a process for which a physical device is to be switched to another physical device that is to execute the process (S230). Namely, a determination is made as to whether the process flow definition includes a process for which the MFP201is to be switched to the workflow processing server100, or for which the workflow processing server100is to be switched to the MFP201.

When the process flow definition does not include a process for which a physical device is to be switched to another physical device that is to execute the process (S230: No), the process flow definition creating unit43registers the process flow definition in the workflow list database38without updating the process flow definition (S250).

When the process flow definition includes a process for which a physical device is to be switched to another physical device that is to execute the process (S230: Yes), the process flow definition creating unit43inserts a connection process immediately prior to the process for which the physical device is to be switched to the other physical device (S240). Then, the process flow definition creating unit43registers the updated process flow definition in the workflow list database (S250). Here, as shown inFIG. 9, “plugin id” of the connection process is defined to be “Connect” in advance, and “type” of the connection process is defined to be “send” in advance. The connection process is not to be displayed. Accordingly, for the connection process, “displayName” is not defined (i.e., the corresponding field is blank). The field “proceed” defines the physical device for executing the connection process, which is the device that is to execute the process immediately prior to the connection process. The process flow definition creating unit43reads out an IP address corresponding to the physical device (i.e., a connection destination) that is to execute the process subsequent to the connection process from the connection information database46, and the process flow definition creating unit43writes the IP address in the job setting (i.e., in the field of <parameter>) of the connection process. In this manner, by using the connection information database46, a connection process can be easily inserted.

In the above example, a case is explained where the administration server250and the administrator's PC150communicate and define the process flow definition. However, the embodiment is not limited to this. For example, the administrator's PC150may be a standalone PC, and a process flow definition may be created by the administrator's PC150itself. In such a case, the administrator's PC150may include the screen data transmitter41; the process flow definition receiver42; the process flow definition creating unit43; the screen data base44; the device list table45; the connection information database46; and the workflow list database38, in addition to the screen data request unit51; the operation reception unit52; the display controller53; and the process flow definition transmitter54. Additionally, the network communication unit308of the administrator's PC150may provide a process flow definition to a system that sequentially executes processes defined by the process flow definition through the network400.

[Example of a Process Flow Definition]

FIGS. 12A-12Dare diagrams illustrating an example of a process flow definition.FIG. 12Ashows an example of an initial condition of the correspondence screen. An administrator sets processes in a logical flow field that is the upper side of the correspondence screen. The administrator defines devices that execute corresponding processes in a physical device flow field that is the lower side of the correspondence screen. In the correspondence screen, a process list and a device list are displayed. The device icons61of the device list are based on information of the physical devices stored in the device list table45. The process icons62of the process list are based on information of the processes stored in the device list table45. The processes1to5of the process list can actually be displayed in such a manner that the process names, such as an OCR process or a PDF conversion process, can be recognized.

In the initial condition, in the upper side of the correspondence table (i.e., the logical flow field), “process1” is displayed while being blinked, for example. This is for explicitly indicating a position where the administrator is to drag and drop a process icon62of the process list. Alternatively, the administrator may arrange the process icons62in a desired order, or only a box for setting the process icons62maybe displayed, without supporting an input operation. In a server-client environment, an operation, such as dragging of an icon, may be enabled for a rich client environment. For example, such an operation can be achieved by combining a Canvas tag of HTML 5 and JavaScript. As shown inFIG. 12A, when the administrator selects a process, and drags the selected process to the position of “process1” in the logical flow field, the first process is defined.

After the process1is defined by the administrator, a device icon61can be selected in the device list. The display controller53can control the correspondence screen, so that only the device icons61of the physical devices that can execute the process1can be selected in the device list. Additionally, when there is only one physical device that can execute the process1, the display controller53can cause the device icon61of the device that can execute the process1to be automatically displayed in the physical device flow field, even if the administrator does not operate the correspondence screen. Hereinafter, such automatic arrangement of a device icon61is referred to as “automatic arrangement.” When the automatic arrangement is executed, the process icon62and the device icon61can be automatically connected with a line.

As shown inFIG. 12B, when the administrator selects a process and drags the selected process into the logical flow field, the second process is defined. The display controller53displays an arrow at a position downstream the process1, and the display controller53displays the process icon62of the process2at a predetermined position. The administrator defines a logical flow by repeating such an operation. After defining the process2, the administrator drags the device icon61of the MFP201into the physical device flow field.

The administrator may arrange a device icon61prior to arranging a process icon62. When a device icon61is arranged in the physical device flow field, and when the administrator arranges a process icon62in the logical flow field, it is possible that the process represented by the process icon62cannot be executed by the physical device represented by the device icon61. In such a case, the display controller53replaces the device icon61in the physical device flow field with another device icon61of the physical device that can execute the process represented by the process icon62.

As shown inFIG. 12C, when the administrator arranges the device icon61in the physical device flow field, the process icons62and the device icon61are connected with the corresponding lines. In this manner, the device icon61of the MFP201and the process icons62of the processes1and2are connected with the corresponding lines.FIG. 12Dshows the correspondence screen to which the administrator adds the process3. When the administrator adds the process icon62representing the process3to the logical flow field, the display controller53automatically applies the correspondence between the physical device and the preceding process to the added process3. In other words, the display controller53defines correspondence between the process3and the MFP201because the process2corresponds to the MFP201. In this manner, the administrator can define the correspondence between the process3and the physical device with fewer steps.

Consequently, an administrator can define correspondence between a single physical device and a plurality of processes only by dragging process icons62into the logical flow field.

FIGS. 13A-13Care diagrams illustrating an example of modifying the correspondence. As shown inFIG. 13A, the processes1to5correspond to the MFP201. When the administrator wishes to define correspondence between some of the preprocess1to5and another physical device, the administrator drags a device icon61of the other device into the physical device flow field, as shown inFIG. 13A.

FIG. 13Bshows the correspondence screen in which the device icon62of the workflow processing server100is added to the physical device flow field. At this moment, the display controller53does not modify anything because the process for which the correspondence is to be modified is not identified. Furthermore, for example, when correspondence between the process3and the workflow processing server100is to be defined, the administrator's PC150may not determine whether only the correspondence between the process3and the physical device is to be modified or the correspondence between the processes3to5and the physical device is to be modified.

Accordingly, the display controller53displays a dialog box for receiving a selection of a method of modifying the correspondence. This dialog box can be displayed at the timing of adding the device icon61as shown inFIG. 13B. Additionally, this dialog box can be displayed by the administrator at desired timing.

FIG. 13Cis a diagram showing an example of the dialog box. For the description “correspondence of the subsequent logical flow” in the dialog box, one method of modification can be selected amongst three alternative methods of modification, which are “to be linked with modification of the correspondence,” “not to be linked with modification of the correspondence,” and “query as to whether or not to modify the correspondence.” The administrator may click a radio button by considering necessity to modify the physical device for the subsequent processes4and5.“to be linked with modification of the correspondence”

FIG. 14Ais a diagram showing an example of the correspondence screen for a case in which the administrator selects “to be linked with modification of the correspondence.” The administrator defines correspondence between the process3and the workflow processing server100. The correspondence may be defined by dragging from the process icon62of the process3in the logical flow field to the device icon61of the workflow processing server100. Alternatively, the correspondence may be defined by connecting the process icon62of the process3and the device icon61of the workflow processing server100by a dashed line in the correspondence screen.

FIG. 14Bis a diagram showing an example of the correspondence screen after the correspondence is modified. In accordance with the modification of the correspondence of the process3, the correspondence between the physical device and the processes4and5is modified from the correspondence between the MFP201and the processes4and5to the correspondence between the workflow processing server100and the processes4and5.“not to be linked with modification of the correspondence”

FIG. 15Ais a diagram showing an example of the correspondence screen for a case in which the administrator selects “not to be linked with modification of the correspondence.”FIG. 15Bis a diagram showing an example of the correspondence screen after the correspondence is modified. After the correspondence of the process3is modified, the processes4and5still correspond to the MFP201because “not to be linked with modification of the correspondence” is selected. In this case, the display controller53displays the device icon61of the MFP201at a position downstream the device icon61of the workflow processing server100. The display controller53connects the device icon61of the MFP201to the process icons62of the processes4and5with corresponding lines.“query as to whether or not to modify the correspondence”

FIG. 16Ais a diagram showing an example of the correspondence screen for a case in which the administrator selects “query as to whether or not to modify the correspondence.”FIG. 16Bshows an example of a dialog box for query. When “query as to whether or not to modify the correspondence” is selected, and when a device icon61is added to the physical device flow field and the correspondence between the process3and the device icon61of the workflow processing server100is defined, the display controller53display this dialog box.

The dialog box displays “please check a radio button of a process that is to correspond to the physical device “workflow processing server,” and press the OK button.” Additionally, a “select all” button and a “release all” button are displayed. The processes4and5that are subsequent to the process3are displayed with corresponding check boxes. The administrator can select a method of defining the correspondence of the workflow processing server100(i.e., a method of modifying the correspondence), for example, by selecting the “select all” button, or by clicking the corresponding check box.color coding display after defining the correspondence

FIG. 17Ais a diagram showing a display example of the correspondence screen after the administrator defines the correspondence between the processes1to5and the physical devices. InFIG. 17A, the area where the process icons62of the processes1and2and the device icon61of the MFP201are arranged is filled with a single color. The area where the process icon62of the process3and the device icon61of the workflow processing server100are arranged is filled with a single color that is different from the color of the area of the processes1and2. The area where the process icons62of the processes4and5and the device icon61of the MFP201are arranged is filled with the same color as the color of the area of the processes1and2. Namely, when correspondence is defined between a process and a physical device, an area where a process icon62of the process and a device icon61of the physical device are arranged is filled with the same single color. Namely, an administrator can easily visualize correspondence between a process and a physical device by the color coding.

FIG. 17Bis a diagram showing another display example of the correspondence between the processes1to5and the physical devices. InFIG. 17A, the areas other than the areas of the icons are filled with the corresponding colors. InFIG. 17B, the icons are filled with corresponding colors. In other words, the process icons62of the processes1and2are filled with a single color that is the same color as the color of the device icon61of the MFP201. The process icon62of the process3and the device icon61of the workflow preprocess server100are filled with a single color that is different from the color of the process icons62of the processes1and2. The process icons62of the processes4and5and the device icon61of the MFP201are filled with the same color as the color of the process icons62of the processes1and2. With such color coding, correspondence between a process and a physical device can be easily visualized.

In the above example, the correspondence is represented by the color coding. However, the embodiment is not limited to this. For example, correspondence may be represented by a halftone pattern that is applied to an area and/or an icon (e.g., presence or absence of a halftone pattern is switched depending on correspondence). Alternatively or additionally, correspondence may be represented by a shape of an icon.

[Procedure of Executing a Workflow]

FIG. 18is a sequence diagram showing an example of a procedure of the information processing system500to execute a workflow.FIGS. 19A and 19Bare examples of a screen for selecting a workflow.

S1: When a user operates the MFP201, the MFP201displays a list of workflows.FIG. 19Ashows an example of a workflow selection screen on which the list of workflows is displayed. The user selects a desired workflow from the workflows1to3, and presses the OK button. By pressing the OK button, execution of the workflow is started. Here, depending on necessity, a user may press a detail button to display processes included in the workflow and an order of the processes.

When the execution of the workflow is started, the MFP201requests the user to input a user name and a password, as shown inFIG. 19B. Here, the user name and the password are authentication information for executing the workflow. A user name and a password that are used for logging in the MFP201may be used as the authentication information. A user name and a password may preferably be included in a process flow definition. When a user name and a password are included in a process flow definition, authentication can be performed for physical devices. Consequently, security of the workflow can be enhanced.

S2: The user selects a workflow, and inputs a command for starting execution of the workflow to the MFP201.

S3: The MFP201starts execution of the workflow. For example, the MFP201identifies a process and/or a machine ID described in the process flow definition.

S4: The MFP201transmits a workflow connection request to the identified workflow processing server100. This communication is for confirming whether a physical device that is to execute the workflow is available for executing the workflow.

S5: The workflow processing server100executes a reception process for receiving the workflow. The reception process for receiving the workflow is, for example, a process for attaching a unique JobID to the workflow.

S6: The workflow processing server100starts processing of the workflow. Here, to start processing of the workflow means that the workflow is executed when a process flow definition is received.

S7: The workflow processing server100transmits workflow reception information (e.g., the JobID) to the MFP201.

S8: When the MFP201confirms that the workflow can be executed, the MFP201starts executing the processes1to5. The job receiver33parses the process flow definition. This parsing process is for confirming that the MFP201is to execute processing of the current point.

S9: When the MFP201determines, as a result of the parsing process, that the MFP102is to execute processing, the flow control unit22executes processing that is assigned to the MFP201by using the plug-in21. The process1is an input process. Accordingly, job data is prepared, for example, by scanning an original document, or by reading out or receiving e-mail data that is specified as job data.

S10: The flow control unit22updates the process flow definition by updating the current point with the subsequent process. The job data and the process flow definition are stored in the job queue35.

Steps S8to S10are repeated for each of the processes. When the process flow definition is updated after the processes1and2are executed, the current point is updated to be the connection process of the process2-1. The job receiver33parses the process flow definition, and determines that the process is the connection process (S8). Accordingly, the flow control unit22requests the job transmitter32to transmits the job without executing the process (S9). Then, the flow control unit22updates the process flow definition (S10).

S11: As the connection process, the job transmitter32transmits the process flow definition and the job data to the workflow processing server100, while associating the JobID with the process flow definition and the job data. During steps S11to S15, the MFP201may query the workflow processing server for progress of the processing.

S12: The procedure of the workflow processing server100is the same as that of the MFP201. The job receiver33stores the process flow definition and the job data in the job queue35, and parses the process flow definition.

S13: When the job receiver33determines, as a result of the parsing process, that the process is to be executed by the workflow processing server100, the flow control unit22executes the process that is assigned to the workflow processing server100by using the plug-in21.

S14: The flow control unit22updates the process flow definition by updating the current point with the subsequent process.

When the process flow definition is updated, the current point is updated to be the connection process of the process3-1(S12). Accordingly, the flow control unit22requests the job transmitter32to transmit the job without executing the process (S13). The flow control unit22updates the process flow definition (S14).

S15: As the connection process, the job transmitter32transmits the process flow definition and the job data to the MFP201.

S16: The job receiver33stores the process flow definition and the job data in the job queue35, and the job receiver33parses the process flow definition.

S17: When the job receiver33determines, as a result of the parsing process, that the process is to be executed by the MFP201, the flow control unit22executes the process that is assigned to the MFP201by using the plug-in21.

S18: The flow control unit22updates the process flow definition by updating the current point with the subsequent process. Steps S16to S18are repeated for the processes4and5.

As described above, the information processing system500according to this embodiment displays the logical flow field and the physical device flow field in a single screen. Accordingly, an administrator can easily define a process flow definition. Additionally, correspondence between an upstream process and a physical device can be applied to an inserted process. Thus, operational steps for an administrator can be reduced. By setting a plurality of methods of modifying correspondence in advance, a desired method of modifying the correspondence can be selected. For example, only correspondence between a part of processes and a physical device can be modified. Alternatively, correspondence between all downstream processes and a physical device can be modified.

In the above-described example, a location of a physical device that executes a workflow is not particularly limited. A workflow may include a process that is to be executed by a cloud computer (which is referred to as “cloud,” hereinafter) on the Internet.

FIG. 20is a diagram showing a schematic configuration of the information processing system500according to another example. The workflow execution/request device200and the workflow processing server100are located within an office. The cloud600is located outside the office. Accordingly, in order for the cloud600to communicate with the workflow processing server100and/or the workflow execution/request device200, communication is to be performed across a firewall601.

However, the firewall601may prevent the cloud600to access the system inside the office. Accordingly, it may be difficult to return the workflow executed by the cloud600to the system inside the office. Hereinafter, an example of the information processing system500is explained that may conform to cloud computing.

FIG. 21Ais a diagram illustrating an example of an outline of execution of a workflow by the information processing system500. Suppose that the processes1and2are to be executed by the MFP201, the process3is to be executed by the cloud600, and the processes4and5are to be executed by the MFP201. In this case, the workflow execution/request device200(i.e., MFP201) that executes the process2polls the cloud600. Here, polling is to query the cloud600for completion of the processing. When the cloud600responds to the query from the system inside the office, the cloud600can transmits the process flow definition and the job data to the system inside the office. In general, for a firewall, a setting can be made such that transmission of a response is allowed that is from a destination IP address of a packet transmitted from the system inside the office by an administrator or the like (i.e., for a case where an IP address of an external transmission source of communication corresponds to an IP address of a destination that is set for communication from the system inside the office). Accordingly, when such a setting is made for the firewall601, the process flow definition and the job data can be received as a response to a packet that is transmitted from a physical device inside the office.

FIG. 21Bis a diagram illustrating examples of the workflow including a process to be executed by the workflow processing server100, and the information processing system500that executes the workflow. Suppose that the process1is to be executed by the MFP201, the process2is to be executed by the workflow processing server100, the process3is to be executed by the cloud600, the process4is to be executed by the workflow processing server100, and the process5is to be executed by the MFP201. In this case, the workflow processing server that executes the process2polls the cloud600.

In the above example, the physical device that executes the process immediately prior to the process to be executed by the cloud600polls the cloud600. However, the embodiment is not limited to this. For example, the physical device that is to execute the process immediately after the process to be executed by the cloud600may poll the cloud600. Alternatively, the workflow execution/request device200may always poll the cloud600. In the example described below, it is assumed that the physical device that executes the process immediately prior to the process to be executed by the cloud600polls the cloud600.

[Process Flow Definition Including a Polling Process]

A process flow definition may include a polling process, so that a physical device inside the office can poll the cloud600. As explained above, an administrator creates a process flow definition such as shown inFIG. 8A. The process flow definition creating unit43of the administration server250creates a process flow definition including a connection process. In this example, the process flow definition creating unit43creates a process flow definition including a polling process.

FIGS. 22A and 22Bare diagrams illustrating examples of a process flow definition for polling. The process flow definition creating unit43identifies, by referring to the process flow definition into which the connection processes ofFIG. 22Aare inserted, a physical device (the cloud600) that is defined as the physical device after the connection process. As shown inFIG. 22A, the process3is to be executed by the cloud600. The device list table45registers that the physical device to execute the process is the cloud600, for example.

As shown inFIG. 22B, the process flow definition creating unit43creates another process flow definition for polling such that the process3is defined to be a polling process, and the physical device for executing the process3is defined to be the MFP201that is to execute the process2-1. It suffices if a polling process can be executed by this process flow definition for polling. The processes1to2-1are defined to be blank (i.e., the processes1to2-1are not to be executed). The cloud600that executes the process3is the only one target of polling. The IP address and the like of the cloud600may be registered in the device list table45.

For a workflow with which a process flow definition and job data are to be received from the cloud600more than once, process flow definitions for polling may be created such that the number of the created process flow definitions for polling is equal to the number of times that the process flow definition and the job data are to be received from the could600.

During execution of the workflow, the physical device updates the process flow definition depending on progress of the processing, and the physical device updates the current point of the process flow definition for polling. When the process of the process flow definition is updated to be the process3, and when the current point of the process flow definition for polling is updated to be the process3, only the process flow definition and the job data are transmitted to the cloud600. In the process flow definition for polling, the physical device that is to execute the process3is defined to be the MFP201. Accordingly, the process flow definition for polling is held by the MFP201. In this manner, the MFP201can poll the cloud600. In the process flow definition for polling, there is no process after the process3. Accordingly, after the polling process is completed, the process flow definition for polling is discarded.

A physical device may create the process flow definition for polling during execution of a workflow. When the current point is a connection process, and when a process after the connection process is to be executed by a cloud, the physical device may create the process flow definition for polling. In this case, the physical device that created the process flow definition for polling is to execute the polling process. Accordingly, the physical device executes the polling process.

FIG. 23is a flowchart showing another example of the procedure of the administrator's PC150and the administration server250for creating the process flow definition. The flow chart ofFIG. 23is almost the same as that ofFIG. 11. However, as shown in the flowchart ofFIG. 23, after the process flow definition creating unit43inserts a connection process (S240) immediately prior to switching of a physical device, a determination is made as to whether a physical device that is to execute the process after the connection process is a cloud or not (S245).

When the physical device that is to execute the process after the connection process is a cloud (S245: Yes), the process flow definition creating unit43creates a process flow definition for polling (S246). The process after step S246is the same as that ofFIG. 11.FIG. 24is a sequence diagram showing another example of the procedure of the information processing system500for executing the workflow. The procedure ofFIG. 24is almost the same as that ofFIG. 18. The procedure ofFIG. 24is different from that ofFIG. 18in the procedure of executing the process3.

By steps S8to S10, the current point of the process flow definition is updated to be the process3, and the current point of the process flow definition for monitoring is updated to be the process3.

S11: As the connection process, the job transmitter32transmits the process flow definition and the job data to the cloud600. The procedure of the cloud600is the same as that ofFIG. 18.

S31: The job receiver33parses the process flow definition. Here, the job queue35stores at least the process flow definition for polling.

S32: The job receiver33determines, as a result of the parsing process, that the MFP201is to execute the polling process. Accordingly, the job controller23of the MFP201(or the flow control unit22of the MFP201) executes the polling process for polling the cloud600. The job controller23attempts to update the process flow definition for polling by updating the current point with the subsequent process. However, the job controller23discards the process flow definition for polling because there is not subsequent process.

S15: As the connection process, a job transmitter32of the cloud600transmits the process flow definition and the job data to the MFP201as a response to a query from the MFP201.

The process after step S15is the same as that ofFIG. 18.

As explained above, the information processing system500according to this embodiment displays the logical flow field and the physical device flow field in a single screen. Accordingly, an administrator can easily define a process flow definition. Additionally, with the information processing system500, a workflow can be easily and flexibly defined such that processing is executed across a firewall.

Hereinabove, a process flow definition creating system, a process flow definition creating device, and a method of creating a process flow definition are explained by the embodiment. However, the present invention is not limited to the specifically disclosed embodiment, and variations and modifications may be made within the scope of the present invention. Specific examples of numerical values are used in order to facilitate understanding of the invention. However, these numerical values are simply illustrative, and any other appropriate values may be used, except as indicated otherwise. The separations of the sections of the specification are not essential to the present invention. Depending on necessity, subject matter described in two or more sections may be combined and used, and subject matter described in a section may be applied to subject matter described in another section (provided that they do not contradict). A boundary of a functional unit or a processing unit in a functional block may not correspond to a boundary of a physical component. An operation by a plurality of functional units may be physically executed by a single component. Alternatively, an operation by a single functional unit may be physically executed by a plurality of components.

The present invention can be implemented in any convenient form, for example using dedicated hardware, or a mixture of dedicated hardware and software. The present invention may be implemented as computer software implemented by one or more network processing apparatuses. The network can comprise any conventional terrestrial or wireless communications network, such as the Internet. The processing apparatuses can compromise any suitable programmed apparatuses such as a general purpose computer, personal digital assistant, mobile telephone (such as a WAP or 3G-compliant phone) and so on. Since the present invention can be implemented as software, each and every aspect of the present invention thus encompasses computer software implementable on a programmable device. The computer software can be provided to the programmable device using any storage medium for storing processor readable code such as a floppy disk, hard disk, CD ROM, magnetic tape device or solid state memory device. The hardware platform includes any desired hardware resources including, for example, a central processing unit (CPU), a random access memory (RAM), and a hard disk drive (HDD). The CPU may include processors of any desired kinds and numbers. The RAM may include any desired volatile or nonvolatile memories. The HDD may include any desired nonvolatile memories capable of recording a large amount of data. The hardware resources may further include an input device, an output device, and a network device in accordance with the type of the apparatus. The HDD may be provided external to the apparatus as long as the HDD is accessible from the apparatus. In this case, the CPU, for example, the cache memory of the CPU, and the RAM may operate as a physical memory or a primary memory of the apparatus, while the HDD may operate as a secondary memory of the apparatus.

The present application is based on and claims the benefit of priority of Japanese priority application No. 2013-054326 filed on Mar. 15, 2013, the entire contents of which are hereby incorporated herein by reference.