An information processing device including a flow definition memory unit configured to store flow definition information in which a process flow of image data read by an image reading unit is defined, and an authentication screen generating unit configured to determine plural processing units that execute a part of the process flow based on the flow definition information, acquire item information indicative of items of authentication information corresponding to a part or all of the plural processing units which require authentication from the part or all of the plural processing units which require the authentication, and generate authentication screen definition information used for displaying an authentication screen integrating and showing the item information.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to an information processing device, an information processing method, and a program, and more specifically, to a an information processing device, an information processing method, and a program which carry out a process flow constructed by combining plural software components.

2. Description of the Related Art

Interfaces of software programs for recent image forming apparatuses have been opened to the public. Therefore, it is possible to enhance functions of the software programs using a software program developed by a party other than manufacturers of the image forming apparatuses. With such an enhancement of function, it becomes possible to associate a user's business system with the image forming apparatus, thereby enhancing a degree of compatibility between the user's business system and the image forming apparatus.

As an example of collaboration between an image forming apparatus and business system, a network delivery system can be mentioned. The network delivery system delivers image data scanned by the image forming device into a predetermined computer. For example, in Patent Document 1, there is disclosed a network delivery system which can construct a sequential flow of a delivery process by arbitrarily combining a processing unit or plural processing units. With the technique disclosed in Patent Document 1, it is possible to concisely construct a delivery flow suitable for a business flow of a user by changing the combination of the processing units.

It is possible to open an interface for implementing the processing units to the public, to thereby enable modifying of the processing unit as a plug-in. By implementing each of the plug-ins when necessary, it is possible to enhance a degree of compatibility with the business flow of the user.

When the processing unit is installed with the plug-in, it is also possible to restrict use of the plug-in user by user. One example of the restricted use is to permit only a predetermined user to use a certain plug-in. In this case, an authentication process is necessary when the plug-in is started. Further, even though the restricted use is not provided in the plug-in, authentication may be required in a process carried out during operation of the plug-in. For example, authentication on a communication protocol used for a delivery process may be required during plug-in of carrying out the delivery process. In this case also, an authentication process is necessary when the plug-in is started.

In consideration of enhancement of degree of freedom and eventually enhancement of scalability of a network delivery system, it is preferable that each plug-in has its own authentication information requirements that is determined by itself.

However, there is a problem of a cumbersome procedure for the user to be required to input pieces of authentication information one after another to authentication screens, which are displayed in correspondence with a plug-in carrying out every step of a delivery flow as the steps advance. An extreme example of the problem is that the user cannot leave a place where the delivery flow is instructed in order to input the authentication information until a last step of the delivery flow is completed.

Japanese Unexamined Patent Application Publication No. 2008-97586

SUMMARY OF THE INVENTION

Accordingly, the embodiment of the present invention provides a novel and useful information processing device, information processing method, and program, which can simplify input operation of authentication information related to a process flow, constructed in combination with plural software components.

One aspect of the embodiment of the present invention may be to provide an information processing device including a flow definition memory unit configured to store flow definition information in which a process flow of image data read by an image reading unit is defined, and an authentication screen generating unit configured to determine plural processing units that execute a part of the process flow based on the flow definition information, acquire item information indicative of items of authentication information corresponding to a part or all of the plural processing units which require authentication from the part or all of the plural processing units which require the authentication, and generating authentication screen definition information used for displaying an authentication screen integrating and showing the item information.

Additional objects and advantages of the embodiment will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. Objects and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A description is given below, with reference to theFIG. 1throughFIG. 19of the Embodiment of the present invention.

FIG. 1illustrates a network delivery system configuration according to Embodiment of the present invention, as an example. InFIG. 1, the network delivery system1has a delivery server10, a multifunction peripheral (MFP)20, a file server30, a Web server40, a Simple Mail Transfer Protocol (SMTP) server50, or the like. The delivery server10, the multifunction peripheral (MFP)20, the file server30, the web server40, and the Simple Mail Transfer Protocol (SMTP) server50are connected via a network61(regardless of wired or wireless) such as the Internet. The delivery server10and the multifunction peripheral (MFP)20are connected via a network62(regardless of wired or wireless) such as a LAN and the Internet.

The multifunction peripheral (MFP)20is an image forming apparatus configured to install a scan function, a copy function, a printer function, and a facsimile function. The multifunction peripheral (MFP)20produces image data by scanning a paper medium or the like with the scanner function, and sends the produced image data to the delivery server10. Although, in the Embodiment, application of the multifunction peripheral (MFP) is exemplified, any device such as a scanner, a fax machine and a copy machine is applicable.

The delivery server10is a computer such as a personal computer (PC) and a workstation, which receives image data scanned by the multifunction peripheral20and carries out various processes and delivery processes in conformity with flow definition data described below.

The file server30is a computer which accumulates files commonly owned on the network61and administrates the files. The web server40is a so-called Web server. The SMTP server50carries out a transmission process of an electric mail in conformity with a Simple Mail Transfer Protocol (SMTP), which is a protocol used when e-mails are sent. The file server30, the web server40, and the SMTP server50are positioned as a destination of delivery in a delivery process with the delivery server10.

Next, the delivery server10is described in detail.FIG. 2illustrates a hardware configuration of the delivery server according to the Embodiment of the present invention. The delivery server10inFIG. 2includes a drive device100, an auxiliary storage device102, a memory device103, a CPU104, an interface device105, a display device106, and an input device107, which are mutually connected by a bus B.

A program realizing processes in the delivery server10is supplied by a recording medium such as CD-ROM. When the recording medium101with the program recorded on it is installed in the driving device100, the program is installed in the auxiliary storage device102via the drive device100. However, the program needs not to be always installed from the recording medium101and may be downloaded from another computer via the network. The auxiliary storage device102stores necessary files, data and so on in addition to the installed program.

The memory device103reads out the program from the auxiliary storage device102when it is instructed to invoke the program and stores the program in the memory device103. The CPU104realizes a function related to the delivery server10in conformity with the program stored in the memory device103. The interface device105is used as an interface for connecting the delivery server to the network. The display unit106displays a Graphical User Interface (GUI) or the like with the program. The input unit107is configured to include a keyboard, a mouse or the like, and is used to input various operational instructions.

FIG. 3illustrates a functional structure of the delivery server according to the Embodiment of the present invention, as an example. InFIG. 3, the delivery server10includes a filter plug-in11, an output plug-in12, an authentication plug-in13, a flow process controlling unit14, an authentication controlling unit15, a flow definition generating unit16, an authentication screen generating unit17, a flow selection screen generating unit18, flow definition data180, authentication screen definition data190and so on.

The flow definition data180are input via the multifunction peripheral20when the flow definition data180are scanned by the multifunction peripheral20. The flow definition data180define a process flow carried out for delivering the image data received from the multifunction peripheral20.

The filter plug-in11and the output plug-in12are software components which carry out a part or all of processes (steps) forming the process flow. The filter plug-in11carries out an intermediate process including the delivery such as a conversion process for the image data. The output plug-in12carries out the delivery process (output process). In the Embodiment, the process flow is defined by inserting the filter plug-in11or the output plug-in12in a process sequence.

InFIG. 3, an image conversion plug-in111is exemplified as the filter plug-in11. The image conversion plug-in111converts the image data of a predetermined format (e.g. Tagged Image File Format: TIFF) to another predetermined format (e.g. PDF format).

Further, a web delivery plug-in121, a folder delivery plug-in122, a mail delivery plug-in123, and a FTP delivery plug-in124are exemplified as the output plug-in12. The web delivery plug-in121delivers data input in the web delivery plug-in121itself to the web server40with Web-based Distributed Authoring and Versioning (WebDAV). The folder delivery plug-in122delivers data input to the folder delivery plug-in122itself to a predetermined folder in a file system of the file server30. The mail delivery plug-in123delivers data input to the mail delivery plug-in123itself to a predetermined mail address via the SMTP server50. The FTP delivery plug-in124delivers data input to the FTP delivery plug-in124itself to the file server30and so on with a File Transfer Protocol (FTP).

The flow process controlling unit14controls execution of the process flow in compliance with a content defined by the flow definition data180. The flow process controlling unit14causes the filter plug-in11or the output plug-in12to execute the process in an order defined by the flow definition data180.

The flow definition generating unit16generates or edits the flow definition data16in accordance with an instruction input by the user.

The flow selection screen generating unit18generates definition data (e.g. flow selection screen data) of a screen (e.g. flow selection screen) for selecting a process flow to be executed.

The authentication screen definition data190are data which define configuration information of an authentication screen used for authenticating the user before starting the process flow.

The authentication plug-in13is a software component which carries out the authentication process based on the authentication information input to the authentication screen. InFIG. 3, an authentication plug-in A131and an authentication plug-in B132are exemplified as the authentication plug-in13.

What authentication process is carried out by each of the authentication plug-ins13using any parameter (hereinafter, referred to as authentication information item) forming the authentication information depends on implementation of the each of the authentication plug-ins13.

Each of the authentication plug-ins13relate to either the filter plug-in11or the output plug-in12. A result of the authentication with the each authentication plug-in13is used as an item an item for determining whether the filter plug-in11or the output plug-in12is permitted to be used, an item for determining execution of the process flow, or the like. In the Embodiment, the authentication plug-in A131is associated with the image conversion plug-in111, and the authentication plug-in B132is associated with the folder delivery plug-in122. A relation between either the filter plug-in11or the output plug-in12and the authentication plug-in13is administrated by the filter plug-in11or the output plug-in12. Said differently, the filter plug-in11or the output plug-in12has identification information of the authentication plug-in13for determining whether the filter plug-in11or the output plug-in12is permitted to be used. For example, such an identification information is built in the filter plug-in11or the output plug-in12. Alternatively, a relation between either the filter plug-in11or the output plug-in12and the authentication plug-in13may be defined in editable data such as a file. Here, the filter plug-in11and the output plug-in12which do not require authentication have no relation with the authentication plug-in13. Whether the authentication is necessary or not depends on the implementation of each of the filter plug-ins11and the output plug-ins12.

In the Embodiment, the “plug-in” designates a software component which can be arbitrarily added (installed) or deleted (uninstalled). Therefore, the filter plug-in11, the output plug-in12and the authentication plug-in13are added to or deleted from the delivery server10where necessary. An Application Program Interface (API) used by each plug-in is opened to the public. Therefore, a third vendor can develop various plug-ins. For example, the “API” for the filter plug-in11and the output plug-in12is an interface associated with the flow process controlling unit14. Further, the “API” for the authentication plug-in13is an interface associated with the authentication controlling unit15.

The authentication controlling unit15controls the entire authentication process. Specifically, the authentication controlling unit15causes the each authentication plug-in13associated with the filter plug-in11or the output plug-in12to execute the authentication process, and integrates a response (whether or not the authentication is successful) from the each authentication plug-in13, thereby determining success of the authentication as a whole. Here, the filter plug-in11or the output plug-in12is used in the process flow to be executed.

The authentication screen generating unit17acquires an authentication information item necessary for determining whether the filter plug-in11or the output plug-in12is permitted to be used from the filter plug-in11or the output plug-in12, which is subject to use in the process flow defined in the flow definition data180, and generates the authentication screen definition data190based on the acquired information.

Next, a detailed description of the multifunction peripheral is described.FIG. 4illustrates a hardware configuration of the multifunction peripheral according to the Embodiment of the present invention, as an example.

Referring toFIG. 4, the multifunction peripheral20includes hardware such as a controller21, a scanner22, a printer23, a modem24, an operation panel25, a network interface card26, and an SD card slot27.

The controller21includes a CPU211, a RAM212, a ROM213, an HDD214or the like. The ROM213records various programs, data used by the programs, or the like. The programs are a delivery application for executing a delivery job in association with the delivery server10, for example. The RAM212is used as a memory area for loading the program, a work area for the loaded program or the like. The CPU211realizes various functions by processing the program loaded on the RAM212. The HDD214records the programs, various data used by the programs, or the like.

The scanner22is hardware for reading image data from a manuscript. The printer23is hardware for printing the image data on a printing paper. The modem24is hardware for connecting to a telecommunication line and is used for sending and receiving the image data with fax communication. The operation panel25is hardware provided with an input means for receiving an input from a user and a display means such as a liquid crystal panel. The network interface card26is hardware for connecting the multifunction peripheral20to a network (regardless of wired or wireless) such as a LAN. The SD card slot27is used to read the program recorded in the SD card80. Said differently, not only the program recorded in the ROM213but also the program recorded in the SD card are loaded into the RAM212and executed in the multifunction peripheral20.

Next, the procedure of the network delivery system1is described.FIG. 5is a sequence diagram explaining the procedure of the delivery server when flow definition is generated.

In response to an instruction input by a user (e.g. system administrator) to the delivery server10, the flow definition generating unit16displays a flow definition generating screen to the display unit106in step S101.

FIG. 6illustrates a display example of a flow definition generating screen. InFIG. 6, the flow definition generating screen500includes a filter plug-in list display area510, an output plug-in display area520, an edit area530, or the like.

Buttons corresponding to the filter plug-ins11installed in the delivery server10are displayed on the filter plug-in list display area510. Buttons corresponding to the output plug-ins12installed in the delivery server10are displayed on the output plug-in list display area520.

The edit area530is an area for generating definition of the process flow. The user can define the process flow by disposing a button, present in the filter plug-in list display area510or the output plug-in list display area520, at a predetermined position of the edit area530using drag and drop.FIG. 6exemplifies a process flow defined so that the scanned image data are executed in two parallel paths. With the first path, the scanned image data are converted by the image conversion plug-in111, and a result of the conversion is delivered by the folder delivery plug-in123. With the second path, the scanned image data are delivered in a mail by the mail delivery plug-in123. In the Embodiment, the “path” designates a processing route, through which a process flow can be tracked back to previous steps from an output plug-in12as a final destination of the process flow, i.e. from downstream to upstream. At least one path is included in one process flow.

A circle mark of ∘, indicated at a starting point of the process flow on the edit area530, designates a scanning process. Further, an arrow mark among the buttons corresponding to the plug-ins designate a sequential relationship among the plug-ins connected by the arrows.

Meanwhile, when the buttons put in the edit area530are clicked, the flow definition generating unit16displays a setup screen for the plug-in corresponding to the clicked button. The user can set a value to a parameter related to an execution condition of the plug-in via the setup screen. The value set up via the setup screen is recorded in the memory device103in association with each of the plug-ins.

When the user completes editing in the edit area530and clicks a storing button (not shown), the flow definition generating unit16generates the flow definition data180based on a content of the edit area530and stores the generated flow definition data180in the auxiliary storage device102in step S102.

FIG. 7illustrates an example of the flow definition data. Referring toFIG. 7, the flow definition data180are described by an eXtensible Markup Language (XML), as an example. However, the flow definition data180may be described by another description format. The flow definition data180inFIG. 7correspond to a content of an edit area530.

The flow definition data180include a Distribution element surrounded by a <Distribution> tag as a root element. The Distribution element is an element corresponding to the process flow one-on-one, and includes the ID element and the Plugin element as a subelement.

The ID element has a flow ID value for identifying the various process flows. In the ID element181, “TEST flow” is the flow ID. The flow ID is input by a user via a flow ID dialogue displayed before displaying, for example, the flow definition generating screen500.

The Plugin element has information values related to the plug-in used in the process flow. The Plugin element which is a subelement of the Distribution element corresponds to a plug-in positioned at an end among the connected plug-ins. Referring toFIG. 6, the image conversion plug-in111and the mail delivery plug-in123are positioned at an end among the connected plug-ins. Referring toFIG. 7, the Plugin element182corresponding to an image conversion plug-in and a Plugin element183corresponding to a mail delivery plug-in123are defined as the subelement.

The Plugin element includes a Plug-in ID element, a Plug-in Type element, a Parameters element and so on, as the subelement.

The value of the Plugin element is an ID of the plug-in (plug-in ID). Said differently, the value “ImageConverter” of Plugin element which is the subelement of the Plugin element182designates the plug-in ID of the image conversion plug-in111. Said differently, a value “ToEmail” of a Plugin element which is a subelement of the Plugin element183designates a plug-in ID of the mail delivery plug-in123.

The value of the Plug-in Type element designates a type of the plug-in (the filter plug-in11or the output plug-in12). “Filter” designates the filter plug-in11, and “Output” designates the output plug-in12.

The value of the Parameters element designates a setup value corresponding to a parameter forming an execution condition of the plug-in.

The Plugin element corresponding to the plug-in to which another plug-in is connected in a subsequent stage of the plug-in further includes a Next element. The next element includes a Plugin element corresponding to the plug-in in the subsequent stage as a subelement. Referring toFIG. 6, a folder delivery plug-in122is connected to the subsequent stage of the image conversion plug-in111. Therefore, the Plugin element182includes the Next element, and the Next element includes the Plugin element corresponding to the folder delivery plug-in122as the subelement. Further, the Plugin element, i.e. a Plugin element having a Plugin element of a value “Output” as a subelement, of the output plug-in includes a required element. The value of the required element designates whether execution of the output plug-in is indispensable “true” or not “false”. Referring toFIG. 7, the folder delivery plug-in122, i.e. the Plugin element184, is not indispensable and the mail delivery plug-in123, i.e. the Plugin element183, is indispensable. When the indispensable output plug-in12cannot be executed, for example, when authentication concerning the output plug-in12fails an entire process flow is not executed. On the other hand, when the output plug-in12is not executed, a process flow of executable parts except for the output plug-in12is executed. Although it is determined whether the output plug-in12is indispensable in Embodiment 1, indispensability of the filter plug-in11may be determined in a manner similar thereto.

When the flow definition data180are completely generated, the flow definition generating unit16requests the authentication screen generating unit17to generate an authentication screen in step S103by designating a flow ID corresponding to the generated flow definition data180. Subsequently, the authentication screen generating unit17refers to the flow definition data180corresponding to the designated flow ID, and acquires data (plug-in authentication data) indicative of authentication screen information corresponding to the plug-in out of the various plug-ins used in the process flow defined in the flow definition data180.

In the Embodiment, it is required of the image conversion plug-in111to acquire the plug-in authentication screen data based on the Plugin element182in step S104. The image conversion plug-in111requests the authentication plug-in A131, which is the authentication plug-in A131related to the image conversion plug-in111, to acquire the plug-in authentication screen data upon the request in step S105. The authentication plug-in A131returns the plug-in authentication screen data including screen information for inputting the authentication information item necessary for the authentication process executed by the authentication plug-in A131to the image conversion plug-in111in step S106. The plug-in authentication screen data may be previously stored in the auxiliary storage device102in association with the authentication plug-ins13, or may be generated by the various authentication plug-ins13when the plug-in authentication screen data are required in step S104. The image conversion plug-in111returns the plug-in authentication screen data, returned from the authentication plug-in A131, to the authentication screen generating unit17in step S107, as the plug-in authentication screen data corresponding to the image conversion plug-in111. Further, the image conversion plug-in111returns an ID (authentication plug-in ID) of the authentication plug-in A131corresponding to the authentication screen data generating unit17in step S107.

FIG. 8illustrates an example of plug-in authentication screen data corresponding to the image conversion plug-in in the Embodiment, as an example.FIG. 8illustrates a case where the plug-in authentication screen data are described by an XML. However, the plug-in authentication screen data may be described using other description formats.

Display information for making an authentication screen display or the like is defined in the plug-in authentication screen data by each authentication information item, used in authentication of the corresponding plug-in. The plug-in authentication screen data610illustrated inFIG. 8include display information related to two authentication information items of Option1and Option2, which are used in the authentication process with the authentication plug-in A131or the like. Here, the name “OptionN” is used for the purpose of convenience.

The description611is a definition related to Option1and the description612is a definition related to Option2. The description611and the description612include a Label element and an EditBox element, respectively.

The Label element is a definition related to a level of the authentication information item. The Label element includes an id attribute and a label attribute. A value of the id attribute is an ID of the label. The value of the label attribute is a character string displayed on the label.

The Edit Box element is a definition related to a display part (edit box) for inputting a value of the authentication information item for receiving the value of the authentication information item. The EditBox element includes the id attribute and the required attribute. A value of the id attribute is an ID of the edit box. The value of the required attribute designates whether an input to the edit box is indispensable (true) or not (false).

The EditBox element further includes a parameterID element and a value element as subelements. A value of the parameterID element designates an ID (authentication information item ID) for identifying an authentication information item corresponding to the edit box. The value element is an initial value of an input value into the edit box. The value element is not defined for the edit box without an initial value.

Next, the authentication screen generating unit17requests the folder delivery plug-in122for acquisition of plug-in authentication screen data based on the Plug-in element184in step S108. The folder delivery plug-in122requests the authentication plug-in B132, which is the authentication plug-in13related to the folder delivery plug-in122, to acquire the plug-in authentication screen data upon the request in step S109. The authentication plug-in B132returns the plug-in authentication screen data including screen information for inputting the authentication information item necessary for the authentication process executed by the authentication plug-in B132to the folder delivery plug-in122in step S110. The folder delivery plug-in122returns plug-in authentication screen data returned from the authentication plug-in B132to the authentication screen generating unit17as the plug-in authentication screen data corresponding to the folder delivery plug-in122in step S111. Further, the folder delivery plug-in122returns an authentication plug-in ID of the authentication plug-in B132corresponding to the authentication screen data to the authentication screen data generating unit17in step S111.

FIG. 9illustrates an example of the plug-in authentication screen data corresponding to folder delivery plug-in in the Embodiment.

The plug-in authentication screen data620illustrated inFIG. 8include display information related to two authentication information items of Option3and Option4, which are used in the authentication process with the authentication plug-in B132or the like. The description621is a definition related to Option3, and the description622is a definition related to Option4.

The description621includes the Label element and the ComboBox element. The Label element is as described inFIG. 8. The ComboBox element is a definition related to a display part (combo box) for selecting a value of the authentication information item.

The ComboBox element includes the id attribute, the required attribute, a viewableItemNum attribute or the like. A value of the id attribute is an ID of the combo box. A value of the required attribute designates whether a selection in the combo box is indispensable (true) or not (false). The ComboBox element further includes the parameterID element and the Data element as subelements. A value of the parameterID element designates an authentication information item ID of an authentication information item corresponding to the combo box. The Data element is a definition related to a choice (i.e. selection item) of the combo box and includes an item element by each selection item as subelements. Values of the selection items are defined as values of the Value elements in each of the item elements.

When the display parts other than the label, the edit box and the combo box are used, it is sufficient to define the element corresponding to the display part in the plug-in authentication screen data.

Next, the authentication screen generating unit17requests the mail delivery plug-in123of acquisition of the plug-in authentication screen data based on the Plugin element183in step S112. In the Embodiment, there is no authentication plug-in13in association with the mail delivery plug-in123. Therefore, the mail delivery plug-in123responds to indicate that there are no plug-in authentication screen data in step S113.

Next, the authentication screen generating unit17integrates authentication screen data acquired from the plug-ins, the authentication plug-in ID or the like, to thereby generate the authentication screen definition data190in step S114. In the Embodiment, the authentication screen definition data190for displaying the authentication screen illustrated inFIG. 10are generated.

FIG. 10illustrates a display example of the authentication screen in the Embodiment. Referring toFIG. 10, the authentication screen700includes labels701thru706, edit boxes711thru714and716, a combo box715, a cancel button721, a login button722, a label723or the like.

The label701and the edit box711are display parts corresponding to a user name, which is one of the authentication information items. The label702and the edit box712are the display parts corresponding to a password, which is one of the authentication information items. The label703and the edit box713are the display parts corresponding to Option1, which is one of the authentication information items. The label704and the edit box714are the display parts corresponding to Option2, which is one of the authentication information items. The label705and the edit box715are the display parts corresponding to Option3, which is one of the authentication information items. The label706and the edit box716are the display parts corresponding to Option4, which is one of the authentication information items.

The authentication screen definition data190for displaying the authentication screen700, i.e. the authentication screen definition data190generated in step S114, may be defined as illustrated inFIGS. 11 and 12.

FIGS. 11 and 12illustrate an example of the authentication screen definition data in the Embodiment. An example of a single content of the authentication screen definition data190is illustrated throughoutFIGS. 11 and 12. Said differently,FIG. 11is followed byFIG. 12in explaining the example of the content of the authentication screen.

The authentication screen definition data190include a window element surrounded by a <window> tag as the root element and an authentication element1950(videFIG. 12) surrounded by an <authentication> tag.

The window element is a definition mainly relating to a display content of the authentication screen700. Specifically, the window element includes a part element by each display part as the subelements. One of the part elements is a definition relating to one of the display parts. Referring toFIGS. 11 and 12, the lowest two digits of numerical references of the parts elements are the same as the lowest two digits of numerical references of the corresponding display parts inFIG. 10.

The parts elements include as common attributes, a type attribute, an id attribute, an X attribute, a Y attribute, a width attribute and a height attribute. The value of the type attribute indicate types of the display parts such as Label, EditBox, ComboBox or Button. The value of the id attribute indicates an ID of the display part. The values of the X attribute and the Y attribute designate an X coordinate value and a Y coordinate value at the left top corner on the authentication screen700. The value of the width attribute and the value of the height attribute indicate a width and a height of the display part.

The part elements corresponding to the labels, i.e. the part elements1901thru1906and1923having values of the type attributes of “Label” have the label attributes in addition to the common attributes. The values of the label attributes are character strings displayed on the labels.

Further, the part elements corresponding to the display parts receiving the values of the authentication information items such as the edit box and the combo box have the required attribute and includes the parameterID element as the subelements. The value of the required attribute designates whether the inputs of the values are indispensable (true) or not (false). The values of the paramaterID elements indicate the authentication information item IDs corresponding to the display parts.

The part element corresponding to the combo box includes the item element. A content of the item element is the same as the content of the item element of the plug-in authentication screen data.

The part elements corresponding to buttons (i.e. the part elements1921and1922having values of the type attributes of “Button”) include action elements as the subelements. The action elements are definitions related to processes which should be executed when the display parts are operated.

Meanwhile, the authentication element1950is a definition related to the authentication plug-in13, which executes the authentication process based on the authentication information input to the authentication screen definition data190. Specifically, the authentication elements1950include a Plugin element by each one of the authentication plug-ins13. Each of the Plugin elements includes the id attribute and the required attribute. The value of the id attribute indicates the authentication plug-in ID. The “authA” is the authentication plug-in ID of the authentication plug-in A131. The “authB” is the authentication plug-in ID of the authentication plug-in B132The value of the required attribute indicates whether the plug-in related to the authentication plug-in13, which is identified by the authentication plug-in ID of the id attribute, is an indispensable plug-in or not. The authentication plug-in ID returned in a response (S107, S111or the like) from the plug-ins (the image conversion plug-in111, the folder delivery plug-in122or the like) to the authentication screen generating unit17is recorded as the value of the id attribute. The value of the required element, which is the subelement of the Plugin element in the flow definition data180of the plug-in (the image conversion plug-in111and the folder delivery plug-in122) on a responding side, is recorded as the value of the required attribute.

Meanwhile, the part elements1903thru1906, the part elements1913thru1916, and the authentication element1950(hereinafter, referred to as an expanded definition part) are generated based on information (plug-in authentication screen data or the like) collected by the authentication screen generating unit17via the image conversion plug-in111and the folder delivery plug-in122. Said differently, the expanded definition part is a part which changes its definition content in response to the process flow.

Meanwhile, parts (hereinafter, referred to as basic definition part) other than the expanded definition part are included in all authentication screen data, which are generated by the authentication screen generating unit17, in common with all authentication screen data. Here, the basic definition part includes the part elements corresponding to the user name and the password. In the Embodiment, the user name and the password are the authentication information item which is input to any of the process flows. The basic definition part may be previously stored in a file as a template of the authentication screen definition data190and may be coded with hard coding in the authentication screen generating unit17.

The authentication screen definition data190are stored in the auxiliary storage device102in association with the process flow (flow definition data180). In the Embodiment, the association of the authentication screen definition data190with the process flow is done by giving a flow ID to the file name of the authentication screen definition data190. However, the association can be done with another method. For example, information which can identify the flow definition data180may be described in the authentication screen definition data190.

As described, the flow definition data180and the authentication screen definition data190can be generated. Therefore, the process flow can be executed. Next, the procedure of executing the process flow is described.

FIG. 13is a sequence diagram explaining the procedure of executing a process flow.

In step S201, the delivery application (hereinafter, referred to as “delivery application”) is activated in a multifunction peripheral20in response to a predetermined instructing input, which is input by a user from an operation panel25of the multifunction peripheral20. When the delivery application is activated, the delivery application sends a sending request of the flow selection screen data to the delivery server10in step S202. Identification information (e.g. IP address) for identifying the delivery server10in the network62is recorded on an HDD214of the multifunction peripheral20.

The flow selection screen generating unit18of the delivery server10generates flow selection screen data upon receipt of the sending request of the flow selection screen data, and sends it back to a delivery application in step S203. The flow selection screen generating unit18acquires a flow ID from the flow definition data180, which are generated in the auxiliary storage device102of the delivery server10, and generates the flow selection screen data so that a list of the flow IDs can be selectable as the choice. The flow selection screen data may be previously generated. For example, the flow selection screen data may be generated before or after the generation of the authentication screen definition data190.

Subsequently, the delivery application makes the flow selection screen on the operation panel25based on the flow selection screen data when the delivery application receives the flow selection screen data in step S204.

FIG. 14is a display example of the flow selection screen. Referring toFIG. 14, a button having a flow ID as a label is displayed by each of executable process flows on a flow selection screen810. The executable process flows are determined by defining the flow definition data180.

Subsequently, when the button on the flow selection screen is turned on by the user, the delivery application recognizes a flow ID allocated to the turned-on button as a flow ID of the process flow subject to execution in step S205. Here, the explanation is given on the premise that the button811is turned on. Therefore, the flow ID subject to the execution (hereinafter referred to as “current flow”) is “TEST flow”. Subsequently, the delivery application sends the current flow ID to the delivery server10in step S206.

When the current flow ID is received by the delivery server10, the authentication controlling unit15searches the authentication screen definition data190from the auxiliary storage device102in step S207. The authentication controlling unit15records the current flow ID as a flow ID of the process flow subject to execution in the memory device103. When the authentication screen definition data190are successfully searched, the authentication controlling unit15sends the authentication screen definition data190to the delivery application in step S208.

When the delivery application receives the authentication screen definition data, the delivery application displays the authentication screen700(videFIG. 10) on the operation screen based on the authentication screen definition data190in step S209. Subsequently, the user inputs the value of the authentication information item via the authentication screen700in step S210. It is possible to input not only the value of default authentication information item (user name and password) but also a value of the authentication information item (Option1thru Option4) for the plug-in used in the process flow subject to the execution to the authentication screen700. Therefore, the user can input the values of all the authentication information items which are required to input in the process flow subject to the execution from the authentication screen700.

When the value of the authentication information item is input via the authentication screen700and a login button722is turned on, the delivery application sends the authentication information to the delivery server10in step S211.

FIG. 15illustrates a structural example of the authentication information. As illustrated inFIG. 15, the authentication information includes the authentication information item ID and the input value by each of the authentication information items. The delivery application identifies the authentication information item ID of the authentication information items based on the parameterID element included in the authentication screen definition data190. The input value input via the authentication screen700is included in the authentication information as is.

Subsequently, when the delivery information is received by the delivery server10, the authentication controlling unit15controls execution of the authentication process based on the authentication information in step S212. When the authentication process ends, the authentication controlling unit15returns the result of the authentication to the delivery application in step S213. The delivery application displays error information indicating failure of the authentication on the operation panel25and stops the process when the received result of the authentication indicates failure of the authentication. On the other hand, when the received result of the authentication indicates the success of the authentication, the authentication application causes the scanner22to execute reading of a manuscript in step S214. The manuscript may be placed in the scanner before activating the delivery application or after success of the authentication.

Subsequently, the delivery application sends the image data read from the manuscript (scanned image data) to the delivery server10in step S215. When the scanned image data are received by the delivery server10, the flow process controlling unit14acquires the flow definition data180corresponding to the current flow ID recorded in the memory device103, and controls execution of the flow process defined in the flow definition data180in step S216. By executing the flow process, the delivery process of the scanned image data is executed.

Next, step S212is described in detail.FIG. 16is a sequence diagram explaining the procedure of the authentication process.

In step S301, the authentication controlling unit15determines whether the value of the authentication information item indispensable for the received authentication information is input (whether the input value is vacant or not) in step S301. The judgment is carried out by acquiring the value of the required attribute corresponding to the authentication information item IDs of the authentication information from the authentication screen definition data190. When there is the indispensable authentication information item without the value input to it, the authentication controlling unit15returns the result of the authentication to the delivery application. In this case, the delivery application launches the authentication screen700on the operation panel25and enables the inputting of the value of the indispensable authentication information item.

When the values are input for all indispensable authentication information items, the authentication controlling unit15determines the authentication plug-ins13associated with the plug-ins used in the process flow subject to execution based on the authentication element1950, and causes the authentication plug-ins13to execute the authentication process.

In the Embodiment, the authentication controlling unit15requests, based on the id attribute of the Plugin element1951in the authentication element1950, the authentication plug-in A131to execute, based on the authentication information, the authentication process in step S302. The authentication plug-in A131executes the authentication process based on the authentication process, and returns the result (whether the authentication is successful) of the authentication to the authentication controlling unit19in step S303. The authentication controlling unit19records the result of the authentication by the authentication plug-in A131in the memory device103in association with the authentication plug-in ID of the authentication plug-in A131. The content of the authentication process and an occasion in which the authentication is succeeded or failed depends on implementation of the authentication plug-in13. Further, all of the authentication information may be input in the authentication plug-ins13or only a part related to the indispensable authentication information item may be input.

Subsequently, the authentication controlling unit15requests, based on the id attribute of the Plugin element1952in the authentication element1950, the authentication plug-in B132to execute, based on the authentication information, the authentication process in step S304. The authentication plug-in B132executes the authentication process based on the authentication process, and returns the result (whether the authentication is successful) of the authentication to the authentication controlling unit19in step S305. The authentication controlling unit19records the result of the authentication by the authentication plug-in B132in the memory device103of the authentication plug-in B132in association with the authentication plug-in ID of the authentication plug-in B132.

Subsequently, the authentication controlling unit15determines the integrative or comprehensive result of judgment (the result of the authentication process as a whole) based on the result of the authentication by the authentication plug-ins13recorded in the memory device103in step S306. The result of the integrative authentication is returned to the delivery application in step S213ofFIG. 13.

Next, step S306ofFIG. 16is described in detail.FIG. 17is a flowchart explaining a procedure of a determination process of the integrative result of the authentication with an authentication controlling unit.

In step S361, the authentication controlling unit15determines whether the output plug-in12indispensable to the process flow exists, based on the values of the required attributes of the Plugin elements in the authentication elements of the authentication screen definition data190. When there is the indispensable output plug-in12in YES of step S361, the authentication controlling unit15determines whether the authentication for the output plug-in12is successful, based on the result of the authentication recorded in the memory device103in association with each of the authentication plug-in IDs in step S362. When the authentication for the indispensable output plug-in12is successful in YES of step S362, the authentication controlling unit15determines whether the authentication for all the plug-ins connected to the previous step is successful or not in the process flow, based on the result of the authentication recorded in the memory device103in step S363. The plug-in of the previous stage of the indispensable output plug-in12is determined based on the flow definition data180. When the authentication for all of the plug-ins connected to the previous stage of the indispensable output plug-in12is successful including a case where there is no plug-in in the previous stage of the indispensable output plug-in12in YES of step S363, the authentication controlling unit15determines that the integrative result of the authentication is successful in step S364.

On the other hand, when the authentication for the output plug-in12is failed in NO of step S362, the authentication controlling unit15determines that the integrative result of the authentication is failed in step S365.

Further, when there is no indispensable output plug-in12in NO of step S361, the authentication controlling unit15determines whether there exists at least one executable path or not in the process flow in step S366. Here, the executable path is a path to which only plug-ins successfully authorized or plug-ins unnecessary to be authorized belong, said differently a path in which the authentication for all the plug-ins requiring the authentication is successful. When there is the executable path in YES of step S366, the authentication controlling unit15determines that the integrated result of the authentication is successful in step S367. When there is no executable path in NO of step S366, the authentication controlling unit15determines that the integrated result of the authentication is failed in step S368.

Next, specific examples ofFIG. 17is explained.FIG. 18illustrates specific examples of the integrative results of the authentication.

The tables inFIG. 18are specific examples of the integrative results of the authentication. Reference signs A, B and C in the first columns of the tables designate identifiers for plug-ins used in the process flow. The reference sign A designates an image conversion plug-in111, the reference sign B designates a filter delivery plug-in111, and the reference sign C designates a mail delivery plug-in123. The structure of the process flow is as illustrated inFIG. 6. Referring only toFIG. 17, the authentication plug-in13is associated with the mail delivery plug-in123. The plug-ins of which identifiers are surrounded by rectangles are output plug-ins.

Indication of OK or NG in the second columns indicates success or failure of the authentication by each plug-in. The third columns indicate the integrative results of the authentication.

InFIG. 18, cases (1) thru (10) are illustrated. In case (1), since the all results of the authentication are failures (no good: NG) as NO in step S366, the integrative results of the authentication are determined to be NG.

In cases (2) and (5), since the result of the authentication for the indispensable reference sign B is NG as NO in step S362, the integrative result of the authentication is determined to be NG. In cases (3) and (8), since the result of the authentication for the indispensable reference sign A is NG as NO in step S363, the integrative result of the authentication is determined to be NG. In case (4), since the result of the authentication for the indispensable reference sign B and the result of the authentication for the reference sign A in the previous stage of the reference sign B are OK as YES in step S363, the integrative result of the authentication is determined to be NG.

In case (6), since the result of the authentication for the indispensable reference sign C is OK as YES in step S362and there is no plug-in in the previous stage of the indispensable reference sign C as YES in step S363, the integrative result of the authentication of the authentication is determined to be OK. In case (7), since the path formed by the reference sign C can be executable in YES of S366, the integrative result of the authentication is determined to be OK. In case (9), since the result of the authentication for the indispensable sign C is NG as NO in step S362, the integrative result of the authentication is determined to be NG. In case (10), since the results of the authentication for all the plug-ins are OK, and all the paths can be executed in YES of step S366, the integrative result of the authentication is determined to be OK.

Next, step S216ofFIG. 13is described in detail.FIG. 19is a sequence diagram explaining a procedure of executing the process flow.

In step S401, the flow process controlling unit14stores the scanned image data, which is received in step S215, in the auxiliary storage device102. Subsequently, the flow process controlling unit14acquires flow definition data180corresponding to the current flow recorded in the memory device103from the auxiliary storage device102in step S402. Here, the flow definition data180illustrated inFIG. 7are acquired.

Subsequently, the low process controlling unit14inquires the image conversion plug-in111of whether the authentication is necessary or not, e.g. whether the authentication plug-in13is associated or not, based on the Plugin element182of the flow definition data180in step S403. In the Embodiment, the authentication plug-in A131is associated with the image conversion plug-in111. Therefore, the image conversion plug-in111responds to the flow process controlling unit14to report necessity of the authentication and send an authentication plug-in ID of the authentication plug-in A131in step S404.

In response to the response that the authentication is necessary, the flow process controlling unit14requests the authentication controlling unit15to execute the authentication by designating the responded authentication plug-in ID in step S405. The authentication controlling unit15designates the authentication information, i.e. the authentication information illustrated inFIG. 15received in step S211, which is stored in the memory device103, and requests the execution of the authentication of the authentication plug-in A131identified by the authentication plug-in ID in step S406. The authentication plug-in A131executes the authentication process using the authentication information, and returns the result of the authentication to the authentication controlling unit15in step S407. The authentication controlling unit15returns the result of the authentication to the flow process controlling unit14is step S408.

When the authentication succeeds, the flow process controlling unit14requests the image conversion plug-in111to execute the process by designating the identification information, for example, file name of the scanned image data in step S409. The image conversion plug-in111converts an image of the scanned image data based on the designated identification information, and stores the generated data in the auxiliary storage device102. The image conversion plug-in111returns the identification information of the generated data, for example, a file name to the flow process controlling unit14in step S410.

Subsequently, the flow process controlling unit14inquires whether the authentication is necessary or not of the folder delivery plug-in122, based on the Plugin element184of the flow definition data180. In the Embodiment, the authentication plug-in B132is associated with the folder delivery plug-in122. Therefore, the folder delivery plug-in122responds to the flow process controlling unit14to report necessity of the authentication and send an authentication plug-in ID of the authentication plug-in B132in step S412.

In response to the response that the authentication is necessary, the flow process controlling unit14requests the authentication controlling unit15to execute the authentication by designating the responded authentication plug-in ID in step S413. The authentication controlling unit15designates the authentication information stored in the memory device103, and requests the authentication plug-in B132, identified by the authentication plug-in ID, to execute the authentication in step S414. The authentication plug-in B132executes the authentication process using the authentication information, and returns the result of the authentication to the authentication controlling unit15in step S415. The authentication controlling unit15returns the result of the authentication to the flow process controlling unit14in step S416.

When the authentication succeeds, the flow process controlling unit14requests the folder delivery plug-in122to execute the process by designating the identification information, for example, file name returned from the image conversion plug-in111in step S417. The folder delivery plug-in122executes the delivery process of the data of the designated identification information, and returns the result of the delivery process whether the delivery process is successful or failed to the flow process controlling unit14is step S418.

Subsequently, the flow process controlling unit14inquires whether the authentication is necessary or not of the mail delivery plug-in123, based on the Plugin element183of the flow definition data180in step S419. In the Embodiment, the authentication plug-in13is not associated with the mail delivery plug-in123. Therefore, the mail delivery plug-in123responds to the flow process controlling unit14to inform that the authentication is unnecessary in step S420.

In response to the response that the authentication is unnecessary, the flow process controlling unit14requests the image conversion plug-in123to execute the process by designating the identification information, for example, file name of the scanned image data in step S421. Here, the reason why the scanned image data are designated as a processing object is that the mail delivery plug-in123is a plug-in located at an end of the process flow in parallel with the image conversion plug-in111.

Subsequently, the mail delivery plug-in123executes the mail delivery of the scanned image data, and returns the result of the delivery process to the flow process controlling unit14in step S422.

Meanwhile, when the authentication of the plug-in, for example, the image conversion plug-in111and the folder delivery plug-in122requiring the authentication is failed, the flow process controlling unit14stops to execute the plug-in and another plug-in belonging to the path, to which the plug-in belongs. Specifically, when the authentication of the image conversion plug-in111fails, not only the image conversion plug-in111but also the folder delivery plug-in122is not executed.

However, the plug-ins belonging to the other paths on the process flow are not excluded from the execution object. Therefore, when the authentication of the image conversion plug-in111fails, steps S407thru S416are not executed. However, steps S417or later may be executed.

In this way, only the path that failed to authenticate is excluded from the execution object, and the entire process flow is not stopped. Thus, the process flow may be executed in a range usable by the user. Therefore, it is possible to make the execution of the process flow flexible.

Although an explanation has been provided about the example that the plug-in is executed by sequentially confirming the authentication inFIG. 19, it is also possible to instruct to execute the plug-in belonging to the executable path after first authenticating the plug-in requiring the authentication, determining the usable plug-ins and determining the executable paths.

Further, the usable plug-ins may be determined by using the results of the authentication in step S212. In this case, it is unnecessary to execute the authentication process inFIG. 19.

Further, although there has been explained such that the process of the mail delivery plug-in123is executed after the folder delivery plug-in122inFIG. 19, parallel paths in the process flow may be executed in parallel. Said differently, the process related to the mail delivery plug-in123may be executed in parallel with the process related to the image conversion plug-in111.

As described, the delivery server10of the Embodiment generates the authentication screen definition data190of the integrative authentication screen, which enables to input the authentication information necessary for each plug-in from a single screen. Therefore, all the authentication information necessary for the process flow is input by a single input operation via the authentication screen. As a result, it is possible to suppress increment of input load of the authentication information by a user by enabling the authentication process by each plug-in.

It is possible for the information processing device to simplify an input operation of the authentication information related to the process flow, constructed by combining plural software components.

This patent application is based on Japanese Priority Patent Application No. 2009-034263 filed on Feb. 17, 2009, the entire contents of which are hereby incorporated herein by reference.