This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2010-110284 filed May 12, 2010.
The present invention relates to an image forming apparatus, an image forming method, and a computer readable medium storing a control program therefor.
According to an aspect of the invention, there is provided an image forming apparatus including a first processing unit, a second processing unit, a receiving unit, and a transfer unit. The first processing unit is implemented by executing a first application program by using an internal computer in an environment where a first operating system is operating. The first processing unit is configured to perform a process in accordance with instruction information describing a process to be executed. When the instruction information describes information specifying the first process as the process to be executed, the first processing unit performs a first process. When the instruction information describes information specifying the external service call as the process to be executed, the first processing unit performs an external service call. The second processing unit is implemented by executing a second application program by using the internal computer or an additional computer connected to the internal computer in an environment where a second operating system is operating. The second processing unit is configured to perform a second process when instructed by the external service call to execute the second process. The receiving unit receives set or input instruction information describing a process to be executed. When set or input instruction information is received by the receiving unit, the transfer unit finds whether or not information specifying the second process as the process to be executed is included in the received set or input instruction information. When information specifying the second process as the process to be executed is included, the transfer unit updates the information included in the instruction information to information specifying, as a process to be executed, the external service call for instructing the second processing unit to execute the second process and transfers the instruction information that has been updated to the first processing unit.
Exemplary embodiment(s) of the present invention will be described in detail based on the following figures, wherein:
An example of an exemplary embodiment of the present invention will be described in detail with reference to the drawings.
The apparatus controller 12 may be formed of a microcomputer or the like, and includes a central processing unit (CPU) 12A, a memory 12B, and a non-volatile storage unit 12C such as a hard disk drive (HDD) or a flash memory. The storage unit 12C stores at least a program of a standard application (hereinafter also referred to as a “standard application program”) for performing a process of providing standard functionality (such as a copying function and a facsimile transmission and reception function) of the image forming apparatus 10 to the user of the image forming apparatus 10 and for performing screen control to display on the display unit 18A a screen to provide the standard functionality, and a program of a standard operating system (standard OS) (hereinafter also referred to as a “standard OS program”) functioning as a platform for executing the standard application program. The standard OS may be an example of a first operating system according to the present invention, and the standard application program may be an example of a first application program according to the present invention. The apparatus controller 12 may be an example of an internal computer according to the present invention, and the CPU 12A may function as an example of a first processing unit according to the present invention by executing the standard OS program and the standard application program.
The image forming apparatus 10 according to the exemplary embodiment is also capable of additionally storing a program of an additional application and the like in the storage unit 12C of the apparatus controller 12 to provide additional functionality to the user of the image forming apparatus 10. In
When the storage unit 12C of the apparatus controller 12 does not additionally store an additional program group (including the additional OS program, the additional application program, the control program, and the hypervisor program), the CPU 12A executes the standard OS program in a state where the image forming apparatus 10 is in operation, and also executes the standard application program in an environment where the standard OS is operating (see also
When the storage unit 12C of the apparatus controller 12 additionally stores the additional program group described above, a logical partition (virtual environment) assigned to the standard application and the standard OS is different from that assigned to the additional application, the additional OS, and the control program. Further, by way of example, as also illustrated in
Specifically, in the image forming apparatus 10 that is in an operating state, the CPU 12A (the apparatus controller 12) that executes the additional application program performs screen control for displaying on the display unit 18A a menu screen that provides a list of all the functions available to the user (the standard functionality and the additional functionality) as selection options. Here, if the user selects one of the functions displayed on the menu screen as selection options, in accordance with the control program executed by the CPU 12A, it is determined whether or not the selected function is the standard functionality provided by the standard application or the additional functionality provided by the additional application. If the selected function is the standard functionality provided by the standard application, the process for notifying the standard application of the selection of the standard functionality is performed. Thus, the CPU 12A (the apparatus controller 12) that executes the standard application program causes the operation screen corresponding to the selected function (standard functionality) to be displayed. When the user specifies content of a process through the operation screen and instructs execution of the process, a process for controlling the operation of the corresponding H/W module via the hypervisor is performed so that the process corresponding to the specified content of the process may be performed.
If the user selects the additional functionality provided by the additional application among the functions displayed as selection options on the menu screen, the CPU 12A (the apparatus controller 12) that executes the additional application program causes an operation screen for specifying content of a process for providing the selected additional functionality to be displayed on the display unit 18A. When the user specifies content of a process through the operation screen and then instructs execution of the process, a process for controlling the operation of the corresponding H/W module via the hypervisor is performed so that the process corresponding to the specified content of the process may be performed. In the exemplary embodiment, the process corresponding to the additional functionality provided by the additional application is made open on the computer network as a web service that can be called from outside by specifying the address such as the uniform resource locator (URL).
The additional OS may be an example of a second operating system according to the present invention, and the additional application program may be an example of a second application program according to the present invention. The CPU 12A executes the additional OS program and the additional application program, thereby allowing the apparatus controller 12 to function as an example of a second processing unit according to the present invention. Furthermore, the control program includes an instruction storage program for implementing an instruction storage process described below, and an instruction output program for implementing an instruction output process described below. The CPU 12A executes the control program, thereby allowing the apparatus controller 12 to also function as an example of a receiving unit and a transfer unit according to the present invention and further function as a first output unit or a second output unit according to the present invention.
The details of the exemplary embodiment will now be described. In the exemplary embodiment, the user generally uses the image forming apparatus 10 by operating the operation receiving unit 18B of the operation panel 18, selecting an available function through a menu screen, specifying content of a process through an operation screen, and then instructing execution of the process. However, for example, if the process to be executed by the image forming apparatus 10 is a routine process including plural types of processes and providing iterations of the processes, a process that the user wishes to execute each time it is determined that preset execution conditions are satisfied, or any other suitable process, instruction information may be used to utilize the image forming apparatus 10 (or to instruct the image forming apparatus 10 to execute a process). The instruction information may be information in which one or more processes to be executed by the image forming apparatus 101 are described in accordance with a predetermined form as illustrated in
Further, the standard application program includes a program of an instruction editor used to create an instruction (or to generate instruction information). Before creating an instruction, the user performs the operation of, first, starting the instruction editor, selecting, through an operation screen displayed on the display unit 18A of the operation panel 18 by the started instruction editor, a process to be described in the instruction, as a process to be executed, from among plural types of processes executable by the image forming apparatus 10, which are recognized by the instruction editor and displayed as selection options on the screen, and specifying content of the selected process. When the operation performed by the user is completed, in accordance with the predetermined form, the instruction editor describes the process selected by the user as the process to be executed, and generates instruction information describing the content of the process specified by the user. The creation of an instruction (or the generation of instruction information) may also be performed by a terminal apparatus such as a PC having the program of the instruction editor installed therein.
Further, the process described in the instruction information may be executed using, as a trigger, the selection of instruction information by the user ahead of the arrival of the execution timing and the instruction of execution of (the process described in) the selected instruction information. Alternatively, execution conditions of (the process described in) instruction information may be set and the (process described in the) instruction information may be executed each time it is determined that the execution conditions are satisfied. The execution conditions of the instruction information include the execution condition “when a file is stored in a specific confidential box (an example of a personal area according to the present invention), the process described in the instruction information is executed on the stored file”. This execution condition may be set in the instruction information by storing (setting) the instruction information to be subjected to setting in a specific confidential box.
The process provided as standard functionality by executing the standard application program includes an instruction storage process for storing (setting) instruction information in a specified confidential box among confidential boxes established in a confidential box storage area provided in the storage unit 12C of the apparatus controller 12. Furthermore, the standard application program includes a program (instruction operation program) for allowing the apparatus controller 12 to function as an instruction operation unit 30 (see
In the exemplary embodiment, when the user of the image forming apparatus 10 operates the operation receiving unit 18B of the operation panel 18 to create an instruction (or to generate instruction information) via the instruction editor or when, after already generated instruction information is input from another terminal apparatus, a confidential box in which the instruction information is to be stored (set) is specified and storage (setting) of the instruction information in the specified confidential box is instructed, if the storage unit 12C of the apparatus controller 12 does not additionally store the additional program group, as illustrated in
If the storage unit 12C of the apparatus controller 12 additionally stores the additional program group, the operation of the operation receiving unit 18B performed by the user is monitored during the operation of the image forming apparatus 10 by the CPU 12A (the apparatus controller 12) that executes the control program. If the user of the image forming apparatus 10 instructs storage (setting) of instruction information in a confidential box by operating the operation receiving unit 18B of the operation panel 18, the instruction storage program included in the control program is started, thus allowing the apparatus controller 12 to function as an instruction operation unit 32 (see
In the instruction storage process illustrated in
Further, when storage (setting) of the instruction information in the confidential box is instructed, the user operates the operation receiving unit 18B of the operation panel 18, thereby also inputting authentication information set in the confidential box specified as the storage (setting) location of the instruction information. Then, in step 52, the authentication information input by the user is compared with the authentication information included in the attribute information obtained in step 50 to determine whether or not the instruction information instructed to be stored (set) in the confidential box can be stored (set) in the specified confidential box. If the authentication information input by the user does not match the obtained authentication information, a negative result is determined in step 52. Then, the process proceeds to step 54, in which a message indicating the instruction information cannot be stored (set) in the confidential box because no match is found for authentication information is displayed on the display unit 18A. Then, the instruction storage process ends.
If a match is found for authentication information, a positive result is determined in step 52. Then, the process proceeds to step 56, in which information specifying a single process as a process to be executed (“execution target”) is extracted from the instruction information instructed to be stored (set) in the confidential box. In step 58, it is determined whether or not a process specified in the information extracted in step 56 as a process to be executed is a process executed by the additional application. If the process specified in the information extracted in step 56 as a process to be executed is a process executed by the standard application, a negative result is determined in step 58, and the process then proceeds to step 62. If the process specified in the information extracted in step 56 as a process to be executed is a process executed by the additional application, a positive result is determined in step 58. Then, the process proceeds to step 60, in which the information extracted in step 56 within the instruction information instructed to be stored (set) in the confidential box is updated to information for instructing execution of a process of calling the web service corresponding to the process to be executed in the extracted information among web services that are made open on the computer network and that are provided by the additional application. Then, the process proceeds to step 62.
In step 62, it is determined whether or not information corresponding to all the processes specified as objects to be executed in the instruction information instructed to be stored (set) in the confidential box has been extracted in step 56. If a negative result is determined, the process returns to step 56 and the processing of steps 56 to 62 is repeated until a positive result is determined in step 62. Thus, information describing a process executed by the additional application among the processes specified as objects to be executed in the instruction information instructed to be stored (set) in the confidential box is updated to information specifying, as a process to be executed, a process for calling a specific web service corresponding to the process executed by the additional application.
For example, as illustrated in
If a positive result is determined in step 62, the process proceeds to step 64, in which the instruction operation program included in the standard application program is started to cause the apparatus controller 12 to also function as the instruction operation unit 30 of the standard application. Thereafter, instruction information that has been updated as necessary through the processing of steps 56 to 62 described above is transferred to the instruction operation unit 30 of the standard application, and storage (setting) of the instruction information in the confidential box specified by the user is instructed. Thus, the instruction operation unit 30 of the standard application performs a process for storing (setting) the instruction information transferred from the instruction operation unit 32 in the confidential box specified by the user (see also “store (set) instruction information in specified confidential box” in
When the storage unit 12C of the apparatus controller 12 additionally stores the additional program group, the image forming apparatus 10 is also capable of executing the process implemented by the additional application. Thus, as described above, the process implemented by the additional application may be described in the instruction information as a process to be executed. However, in order to cause the instruction operation unit 30 (see
In the exemplary embodiment, in contrast, when the additional program group is additionally stored in the storage unit 12C of the apparatus controller 12, if storage (setting) of instruction information in a confidential box is instructed, the instruction storage program included in the control program is started, and the instruction storage process illustrated in
Next, a case where a file is stored in a confidential box in which instruction information is stored (set) will be described. If a file is stored in a confidential box in which instruction information is stored (set), regardless of whether or not the storage unit 12C of the apparatus controller 12 additionally stores the additional program group, as illustrated in
In the instruction execution process, first, in step 80, instruction information stored (set) in a confidential box in which a file is stored is read from a confidential box storage area as instruction information to be executed. Then, in step 82, information specifying a single process as an object to be executed is extracted from the instruction information to be executed, which is read in step 80. Further, in step 84, it is determined whether or not the process specified as an object to be executed (“target process”) in the information extracted in step 82 is a process for calling a web service that is made open on a computer network. If a negative result is determined in step 84, the process specified as an object to be executed in the information extracted in step 82 is a process executable by the standard application. Thus, the process proceeds from step 84 to step 86, in which the file stored in the confidential box is subjected to the process specified as an object to be executed in the information extracted in step 82 (for example, a process such as causing the image forming unit 16 to print, as an image, the file stored in the confidential box on recording paper and discharging the recording paper on which the image is printed to a specific paper discharge unit used as a mailbox). Then, the process proceeds to step 92.
If the process specified as an object to be executed in the information extracted in step 82 is a process for calling a web service that is made open on a computer network, the process proceeds from step 84 to step 88, in which a process for calling the web service set in the extracted information is performed. Thus, an external processing unit that provides the called web service performs a web service providing process on the file stored in the confidential box.
Here, the external processing unit that performs a web service providing process may be generally a service processing apparatus such as a server computer or an image forming apparatus connected to a computer network. If the information extracted in step 82 is information (the information updated in step 60 in the above instruction storage process (
Then, in step 90, it is determined whether or not the notification of completion of the called web service providing process has been received from the external processing unit. The processing of step 90 is repeated until a positive result is determined. If the notification of completion of the called web service providing process is received from the external processing unit, a positive result is determined in step 90. Then, the process proceeds to step 92. If the web service providing process is performed by the CPU 12A (the apparatus controller 12) that executes the additional application program, as indicated by “completion notification” in
In step 92, it is determined whether or not information corresponding to all the processes specified as objects to be executed in the instruction information read in step 80 has been extracted from the instruction information. If a negative result is determined, the process returns to step 82, and the processing of steps 82 to 92 is repeated until a positive result is determined in step 92. Thus, even when the storage unit 12C of the apparatus controller 12 additionally stores the additional program group, among the processes specified as processes to be executed in the initial instruction information instructed to be stored (set) in a confidential box by the user, the process executed by the standard application is executed by the standard application while the process executed by the additional application is executed by the additional application through a web service call, without updating the standard application program. Then, if a positive result is determined in step 92, the instruction execution process ends.
Next, an output of instruction information will be described. When the user wishes to output specific instruction information (such as display the content on the display unit 18A or transmit the specific instruction information to another apparatus), the user operates the operation receiving unit 18B to select specific instruction information that the user wishes to output as an object to be output, and instructs output of the selected instruction information. Here, if the storage unit 12C of the apparatus controller 12 additionally stores the additional program group, in response to the above operation performed by the user, an instruction output program included in the control program is executed by the CPU 12A to perform an instruction output process illustrated in
In the instruction output process, first, in step 100, instruction information selected as an object to be output by a user within instruction information saved in the instruction information save area of the storage unit 12C is read from the storage unit 12C. Then, in step 102, information specifying a single process as an object to be executed is extracted from the instruction information to be output, which is read in step 100. In step 104, it is determined whether or not the process specified as an object to be executed (“target process”) in the information extracted in step 102 is a process for calling a web service that is made open on a computer network. If a negative result is determined, the process proceeds to step 108. If a positive result is determined in step 104, the process proceeds to step 106, in which the information extracted in step 102 is updated to information (information described in the initial instruction information instructed to be stored (set) in a confidential box by the user) for directly specifying, as a process to be executed, the process (process executed by the additional application) corresponding to the web service to be called in the information. Then, the process proceeds to step 108.
In step 108, it is determined whether or not information corresponding to all the processes specified as objects to be executed (“target processes”) in the instruction information read in step 100 has been extracted from the instruction information. If a negative result is determined, the process return to step 102, and the processing of steps 102 to 108 is repeated until a positive result is determined in step 108. Thus, the initial instruction information instructed to be stored (set) in a confidential box by the user is restored from the instruction information read in step 100. If a positive result is determined in step 108, the process proceeds to step 110, in which the instruction information that has been updated (the restored initial instruction information) is output in accordance with the instruction from the user (for example, displaying the content of the instruction information on the display unit 18A or transmitting the instruction information to another apparatus (for example, a client terminal or another image forming apparatus) specified by the user). Then, the instruction output process ends.
The instruction output process illustrated in
In the foregoing description, the exemplary embodiment of the present invention has been described in the context of instruction information that is stored (set) in a confidential box and that is executed when a file is stored in the confidential box, by way of example. However, instruction information according to an exemplary embodiment of the present invention is not limited to instruction information used for the above purposes. For example, instruction information executed each time it is determined that a preset time has arrived, or instruction information selected by a user and executed in accordance with an execution instruction may also be used.
In the foregoing description, furthermore, the standard application program as an example of the first application program and the additional application program as an example of the second application program are executed by the CPU 12A of the apparatus controller 12, by way of example. However, the present invention is not limited to this exemplary embodiment. For example, a configuration as illustrated in
In the foregoing description, furthermore, a program as an example of a control program for an image forming apparatus according to the present invention is additionally stored in the storage unit 12C of the apparatus controller 12, by way of example. However, a control program for an image forming apparatus according to the present invention may also be provided in a form recorded on a recording medium such as a compact disc read only memory (CD-ROM) or a digital versatile disc read only memory (DVD-ROM).
The foregoing description of the exemplary embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2010-110284 | May 2010 | JP | national |