1. Field of the Invention
The present invention generally relates to an electronic device capable of executing an interrupting program, an information processing method performed by the electronic device, and a non-transitory computer-readable recording medium storing an information processing program.
2. Description of the Related Art
In a typical example of a fault analysis (such as debugging) operation performed on a program running on a device, particularly an embedded device, a log output of the program is analyzed. Specifically, log output instructions (such as the “printf” function in C language) for outputting log information to a log file are embedded at various locations in a source code of the program. The log information may indicate the values of variables used by the program, or the status of hardware on which the program runs. In case of a fault, the log file is analyzed in order to infer or identify the cause of the fault.
However, such a log file (the initially outputted log file) outputted in accordance with the embedded log output instructions may not provide sufficient information for detailed analysis. In such a case, the location of the fault may be generally determined first based on the initially outputted log file. Then, the program may be replaced by modifying the source code and performing compiling and linking so that a log that provides more detailed information about the location of the fault can be obtained. If the cause of the fault cannot be identified by a newly obtained log file, an additional log output instruction may be embedded in the source code, and then the above operation may be repeated. Thus, log-based fault analysis can sometimes require very cumbersome operations.
Japanese Laid-Open Patent Application No. 2008-269163 discusses a technique for overcoming the above problem. The technique involves dynamically interrupting the program with a process of a diagnosis program at a desired location (“diagnosed position”) as the program is running (or being executed). Within the diagnosis program, values of variables and the like of the target program (that is interrupted) may be referred to. At the end of the diagnosis program, the process returns to the diagnosed position of the target program. According to this technique, a log of the target program may be obtained, the target program may be debugged, or function extension may be provided without modifying the source code of the program. Further, a user of the diagnosis program may transmit the diagnosis program via a network to a device on which the target program runs, thus allowing the user to control the execution of the diagnosis program via the network. Such remote-controlling capability of the diagnosis program is very useful for the user, such as personnel in charge of fault analysis.
However, because such a diagnosis program may be applied regardless of the status of the target program, the operation of the target program or that of the device controlled by the target program may be destabilized, depending on the timing of application of the diagnosis program. For example, if, during the execution of a job in the device, a program involved in the execution of the job is interrupted by a process of a diagnosis program that is inappropriate during the execution of the job, the process of the job may be destabilized.
On the other hand, there are some diagnosis programs that would be meaningless unless applied during the execution of a job. For example, a diagnosis program for recording a log of the target program as the job is being executed needs to be applied during the execution of the job.
The disadvantages of the prior art are overcome by the present invention which, in one aspect, is an electronic device including a status management unit detecting a change in a status of the electronic device and recognizing the status; an added program control unit applying an added program to a program of the electronic device in response to a validation request for the added program, the added program being capable of dynamically interrupting the program of the electronic device with a process; and an application determination information storage unit storing application determination information indicating whether the added program can be applied to the program of the electronic device depending on the status of the electronic device recognized by the status management unit. The added program control unit determines whether the added program can be applied based on the status of the electronic device recognized by the status management unit upon reception of the validation request, and the application determination information.
In another aspect, the invention is an information processing method performed by an electronic device. The method includes a status managing step of detecting a change in a status of the electronic device and recognizing the status of the electronic device; and an added program control step of applying an added program to a program of the electronic device in response to a validation request for the added program, the added program being capable of dynamically interrupting the program of the electronic device with a process. The added program control step includes determining whether the added program can be applied in accordance with the validation request based on the status of the electronic device recognized by the status managing step in response to the validation request, and application determination information stored in an application determination information storage unit of the electronic device. The application determination information indicates whether the added program can be applied depending on the status of the electronic device.
In another aspect, the invention provides a computer program product comprising a computer-readable information processing program embodied in a non-transitory computer-readable medium and including a program code to be executed by a computer to perform a status managing step of detecting a change in a status of the electronic device and recognizing the status of the electronic device; and an added program control step of applying an added program to a program of the electronic device in response to a validation request for the added program. The added program is capable of dynamically interrupting the program with a process. The added program control step includes determining whether the added program can be applied to the program of the electronic device in accordance with the validation request based on the status of the electronic device recognized by the status managing step in response to the validation request, and application determination information stored in an application determination information storage unit of the electronic device. The application determination information indicates whether the added program can be applied depending on the status of the electronic device.
A complete understanding of embodiments of the present invention may be obtained by reference to the accompanying drawings, when considered in conjunction with the subsequent, detailed description, in which:
Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views,
The device 20 may include an image forming apparatus, such as a multifunction peripheral (MFP) that realizes the multiple functions of a copier, a facsimile machine, a printer, and/or a scanner within a single enclosure. The device 20 includes a CPU and a memory. Various functions of the device 20 may be realized by the CPU controlling various hardware units of the device 20 in accordance with a program stored in the memory. The device 20 is an example of an electronic device.
The management server 10 may include a computer configured to manage the execution of an added program applied to a program (“target program”) used in the device 20. The computer may also be configured to manage the transfer of the added program to the device 20. In accordance with the present embodiment, the “added program” refers to a program that can cause a target program to be dynamically interrupted with a process defined by the added program at a desired location of the target program.
The table 502 contains definitions such that the instruction 2 is executed after performing initialization, pre-processing (such as placing a variable into a stack), calling the added program 505, and post-processing (such as recovering the variable from the stack), before returning to the instruction 3 of the program 501.
Thus, the process of the added program is executed when an execution step of the target program reaches a pre-designated location (added position). Upon completion of the process of the added program, process control returns to the target program. Thereafter, the target program resumes a process from the added position. The added program may contain information identifying the target program and the added position, in addition to the process with which the target program is interrupted.
In the added program, variables and the like of the target program may be referred to. Thus, the added program can cause the target program to be interrupted with various processes, such as a process for outputting log information about the value of a variable at a desired location of the target program, a process for correcting bugs, or a process for realizing a new function. Thus, the added program enables the target program to output log information, correct bugs, or enhance its functions dynamically, without performing modification of the source code, compiling and linking, or reinstalling.
In accordance with the present embodiment, the process of applying the added program to the target program and making the added program executable (
The device 20 is described in greater detail with reference to
The controller 601 includes a CPU 611, an ASIC (application specific integrated circuit) 612, an NB (north bridge) 621, a SB (south bridge) 622, a MEM-P 631, a MEM-C 632, a HDD (hard disk drive) 633, a memory card slot 634, a NIC (network interface controller) 641, a USB (universal serial bus) device 642, an IEEE 1394 device 643, and a Centronics device 644.
The CPU 611 may include an IC (integrated circuit) configured to process various information. The ASIC 612 is an IC for performing various image processes. The NB 621 is a north bridge of the controller 601. The SB 622 is a south bridge of the controller 601. The MEM-P 631 is a system memory of the device 20. The MEM-C 632 is a local memory of the device 20. The HDD 633 is a storage of the device 20. The memory card slot 634 is a slot into which a memory card 635 can be inserted. The NIC 641 is a network communication controller using a MAC address. The USB device 642 provides a USB-standard connection terminal. The IEEE 1394 device 643 provides a connection terminal according to the IEEE 1394 standard. The Centronics device 644 provides a Centronics-standard connection terminal. The operating panel 602 provides a hardware unit (operating unit) for allowing an operator to perform various input operations on the device 20. The operating panel 602 also provides a display unit allowing the operator to gain outputs from the device 20. The scanner 604 is a hardware unit for reading image data from a manuscript which may be a sheet of paper. The plotter 605 is a hardware unit for transferring an image onto a recording medium, such as a print paper.
The application 131 includes a copy application 141, a printer application 142, a scanner application 143, a facsimile application 144, and a network file application 145. The application 131 may be developed using a dedicated SDK (software develop kit). An application 131 developed using a SDK may be referred to as a “SDK application”. Examples of dedicated SDK applications include “CSDK” for developing the application 131 using C language; and “JSDK” for developing the application 131 using Java language. The application 131 developed using CSDK may be referred to as a “CSDK application”; the application 131 developed using JSDK may be referred to as a “JSDK application”.
The device 20 illustrated in
The platform 132 includes the control service 151 and a system resource manager (SRM) 152. The control service 151 includes a network control service (NCS) 161, a facsimile control service (FCS) 162, a delivery control service (DCS) 163, an engine control service (ECS) 164, a memory control service (MCS) 165, an operating panel control service (OCS) 166, a certification control service (CCS) 167, a user directory control service (UCS) 168, a system control service (SCS) 169, and an added program control unit 170.
The NCS 161 provides a network communications interface. The FCS 162 provides an API for the facsimile function. The DCS 163 controls a stored document distributing process. The ECS 164 controls jobs involving the scanner 604, the plotter 605, and the like. The application 131 executes jobs via the ECS 164. The MCS 165 controls memories or the hard disk drive, for example. The OCS 166 controls processes related to the operating panel 602. The CCS 167 controls processes of authentication or accounting, for example. The UCS 168 controls management of user information. The SCS 169, which is an example of a status management unit, detects a change (transition) in status of the device 20 and recognizes a status of the device 20.
For example, the SCS 169 is notified of an event such as a change in status of the device 20 itself, or a change in status of any of the services in the control service 151. Upon such notice, the SCS 169 notifies one or more other program modules that require the notice of such an event. The added program control unit 170 provides software for realizing an environment for the execution of an added program. For example, the added program control unit 170 receives the added program transferred from the management server 10, and applies the added program to a target program (thus validating the added program).
The SRM 152 manages hardware resources via an engine interface 134. Specifically, the SRM 152 arbitrates requests from the control service 151 for utilization of the hardware resources. The engine interface 134 provides an interface with the scanner 604, the plotter 605, or other hardware resources.
A virtual application service (VAS) 135 provides a software interface between the application 131 and the platform 132. The VAS 135 may be configured to operate as a client process using the platform 132 as a server, or as a server process using the application 131 as a client. The VAS 135 may be configured to provide a wrapping function for hiding an API 133 of the platform 132 from the view of the application 131, thus absorbing changes resulting from a version upgrade of the API 133 of the platform 132.
In the following, a process sequence of the device 20 according to Embodiment 1 is described, in which an added program is handled depending on an execution status of a job in the device 20.
Thereafter, the copy application 141 requests “job entry” from the ECS 164 (S104), requesting entry of a copy job in a job queue as an execution target. Such a request may designate setting information (execution condition) for the copy job, or information about hardware resources (such as scanner 604 or plotter 605) that the copy job requires. The ECS 164 sends the job entry request from the copy application 141 to the SCS 169 (S105). The SCS 169 sends the job entry request to the SRM 152 (S106).
In response to the job entry request, the SRM 152 confirms the status of the scanner 604 or the plotter 605, for example, that the copy job requires (S107, S108), and then notifies the SCS 169 whether the scanner 604 or the plotter 605, for example, can be utilized (S109, S110). Such a notice is transmitted via the SCS 169 and the ECS 164 to the copy application 141 (S111 through S114).
When both the scanner 604 and the plotter 605 are utilizable, the copy application 141 sends a copy job start request to the ECS 164 (S115). The ECS 164 then notifies the SCS 169 of the start of the copy job (S116). Thereafter, the scanner 604 and the plotter 605, for example, are controlled by the ECS 1164 via the SCS 169 and the SRM 152, for example, whereby a manuscript copy operation is carried out (S117). More specifically, an image is read by the scanner 604, the image is subjected to predetermined image processing, and a resultant image is transferred (printed) on a record medium such as a print sheet by the plotter 605. When there is more than one manuscript, the manuscript copy operation may be repeated.
When the process is completed for all manuscripts, the ECS 164 sends a job end notice to the copy application 141 and the SCS 169 (S118, S119). The SCS 169 then sends a job end notice to the SRM 152 (S120). In response to the job end notice, the copy application 141 sends a job close request to the ECS 164 (S121). The ECS 164 then notifies the SCS 169 about the job close by the copy application 141 (S122). The “job close” is a declaration of end of a job. The notice of job close allows the SCS 169 to recognize the transition of the job status of the device 20 from a job-executing status to an idle status (standby status).
Next, the handling (control) of the added program by the added program control unit 170 in accordance with the job status of the device 20 that changes (transitions) as described with reference to
Thereafter, the added program control unit 170 receives a validation request designating an added program ID from the management server 10 (S202). The transfer of the added program and the validation request from the management server 10 to the device 20 (added program control unit 170) is performed under the control of the management server 10. Namely, the added program as a transfer target or a validation target is selected by an operator of the management server 10, and the selected added program or a validation request for the program is transferred. Further, the transfer of the added program and the validation request may not occur in pairs. For example, the added program alone may be transferred first and then a validation request for the added program may be transferred at a later time.
In accordance with the validation request, the added program control unit 170 acquires the job status from the SCS 169 (i.e., queries the SCS 169 about the job status) (S203). This is because, as described with reference to
When the job status does not indicate that a job is being executed (NO in S204), the added program control unit 170 validates the added program (which may be the added program received in step S201) corresponding to the added program ID designated in the validation request (S208). As a result, the added program is applied to the target program, so that the process content of the target program is modified by a process of the added program. Thereafter, the added program control unit 170 transmits a response to the management server 10 indicating that the added program has been correctly validated (S209).
On the other hand, when the job status indicates that a job is being executed (YES in S204), the added program control unit 170 refers to a job-executing application determination table to determine whether the added program can be applied (S205).
Thus, the added program control unit 170 determines whether the added program can be applied by comparing the target program ID attached to the added program with the job-executing application determination table 181. If the determination provides a positive result (YES in S206), step S208 is performed as described above. If the determination result is negative (NO in S206), the added program control unit 170 stands by for a time and then repeats step S203 and the subsequent steps. Thus, in this case, validation of the added program is performed upon transition from the job-executing status to idle status (S208).
Next, the process sequence of
In step S202, the added program control unit 170 receives an validation request from the management server 10 for an added program having a target program ID corresponding to the program ID of the ECS 164. In
Thereafter, the added program control unit 170 sends a query for a job status to the SCS 169 (S203-1). In response, the SCS 169 sends a reply indicating that a job is being executed (“job-executing status”) (S203-2). Thus, the added program control unit 170 refers to the job-executing application determination table 181 to determine whether the added program can be applied to the ECS 164 in the job-executing status (S205). The job-executing application determination table 181 illustrated in
Next, a variation of the process sequence of
The sequence of
When the re-transmitted validation request for the added program for the ECS 164 is received when a job is not being executed (S202-n), step S208 and the subsequent steps are performed, whereby the added program is validated.
Next, another variation of the process sequence of
The process sequence of
Upon detection of transition of job status to the job-executing status, the SCS 169 notifies the added program control unit 170 (S221). In response to the notice, the added program control unit 170 recognizes that a job is being executed.
Thereafter, upon reception of a validation request from the management server 10 for the added program for the ECS 164, the added program control unit 170 determines whether the added program can be applied, by referring to the job-executing application determination table 181 (S205). When it is determined that the application is not allowed, the added program control unit 170 stands by until the job-executing status is gone.
Thereafter, in response to a notice from the SCS 169 indicating the transition of job status to the idle status (S222), the added program control unit 170 validates the added program (S208).
In the case of
As described above, in accordance with Embodiment 1, the application (validation) of an added program during the execution of a job can be properly controlled based on the job-executing application determination table 181. Thus, application of an added program to a target program that is not suitable for such application during the execution of a job can be prevented.
In accordance with Embodiment 2, the added program is handled depending on an offline status that indicates the status of the device 20 from a different viewpoint from the job status.
Generally, the term “offline” refers to a status where a device and the like is not connected to a network and the like. In accordance with the present embodiment, however, “offline” refers to a status where the execution of a program or a function is limited by the circumstance of another program or function within the device 20. Such limiting circumstance of a program and the like may be present when the program sets a parameter in accordance with a user instruction that affects the operation of plural programs; or when the device 20 as a whole or a group of its processes is rebooted so as to validate such a parameter setting. Thus, “offline” in the context of the present embodiment means that the function of a program and the like is not valid. A normal status as opposed to the offline status may be referred to as “the online status”.
First, as a prerequisite of the second embodiment, a process sequence of transition of the device 20 to the offline status is described with reference to a sequence diagram of
First, the application 131A receives an instruction for execution of a process that requires transition to the offline status via the operating panel 602 or a network and the like. The instruction may include an instruction for setting a parameter. In response to such an instruction, the application 131A sends an offline request (requesting transition to the offline status) to the SCS 169 (S301). In response to the offline request, the SCS 169 queries the application 131B as to whether transition to the offline status can be made (S302). The application 131B that receives the query may be an application whose ID information has been registered in the SCS 169 in advance (such as upon starting up of the application 131B) as a program that is affected by the offline status. Then, the application 131B sends a reply to the SCS 169 depending on its own status (S303). For example, when the application 131B is executing a process that should not be interrupted, the application 131B replies that the transition to the offline status cannot be made. On the other hand, when the process being executed by the application 131B may be interrupted, or when the application 131B is not executing any process, the application 131B replies that the transition to the offline status can be made.
When the reply from the application 131B indicates that transition to the offline status is allowed, the SCS 169 sends an offline finalization notice to the application 131A that made the offline request and to the added program control unit 170 and the application 131B that are registered in advance as destinations for the offline status transition notice (S304 through S306). The offline finalization notice may include the program ID of the program (application 131A) that caused the transition to the offline status.
Thus, the device 20 transitions to the offline status. The behavior of the programs upon reception of the offline finalization notice (i.e., their behavior in the offline status) may depend on the implementation of the programs.
The lifting of the offline status (i.e., return to the online status) may be realized when a process sequence similar to
The offline status may include plural offline modes. These offline modes are described with reference to
In the example of
The SP mode refers to a status in which a setting screen used by service personnel (such as a maintenance worker from the manufacturer of the device 20) is being displayed. The UP mode refers to a status in which an initial setting screen used by an end-user is being displayed. The remote request mode refers to a status in which setting information (such as a parameter) is being updated via a network. The system reboot mode refers to a status in which the device 20 is rebooted. The NCS reboot refers to a status in which a process of the NCS 161 is rebooted.
Thus, in
Next, the handling of an added program by the added program control unit 170 in accordance with the offline status is described.
When in the offline status (YES in S402), the added program control unit 170 refers to an offline-mode-based application determination table and determines whether the added program can be applied (S403).
Thus, the added program control unit 170 determines whether the added program can be applied by referring to the offline-mode-based application determination table 182 and comparing the target program ID attached to the added program with the current offline mode. If the determination provides a positive result (YES in S404), the added program control unit 170 refers to an offline-acquirer-based application determination table in order to determine whether the added program can be applied (S405).
Thus, the added program control unit 170 determines whether the added program can be applied by referring to the offline-acquirer-based application determination table 183 and comparing the target program ID attached to the added program and the program ID of the offline mode acquirer with the offline-acquirer-based application determination table 183. If the determinations provides a positive result (YES in S406), steps S408 and S409 are carried out as described above. If the determination in step S403 or S405 provides a negative result (NO in S404 or S406), the added program control unit 170 sends a reply to the management server 10 indicating that validation of the added program has not been successful (S407). Whereas in accordance with Embodiment 1, there is the standby period for transition from the job executing status to the idle status, there is no such standby period in accordance with Embodiment 2. This is due to the characteristics of the offline status, as described below.
The offline status is a status in which a user may make various parameter settings or reboot the device. Such setting operation by the user may take a very long time and it cannot be predicted when it will end. Thus, it is not appropriate to delay the validation of the added program until the offline status is lifted. Further, rebooting involves the severing of a session with the management server 10, which makes it difficult to continue communications with the management server 10.
Next, the process sequence of
In the offline status, the added program control unit 170 receives, from the management server 10, an validation request, designating the program ID of the OCS 166 as a target program (S401). In response to the validation request, the added program control unit 170 determines whether the added program can be applied (S403, S405). In the illustrated example, it is determined that the application is not allowed, based at least on the offline-acquirer-based application determination table 183. Namely, the offline-acquirer-based application determination table 183 of
As described above, in accordance with Embodiment 2, application (validation) of an added program in the offline status can be appropriately controlled based on the offline application determination table 182 and the offline-acquirer-based application determination table 183. Thus, the application of an added program to a target program that is not suitable for such application in the offline status can be prevented.
In accordance with Embodiment 3, the added program is handled in accordance with a power status (power supply status), which is a different category of status of the device 20 from the first embodiment or the second embodiment.
When the pre-heating status continues without any operation for a predetermined time, the power status of the device 20 may transition to a lower power consumption status, such as from the low-power status to the quiet status. In the quiet status, supply of power to the fusing unit may be terminated while access to the HDD 633 may be allowed. The normal power status may also transition to the quiet status upon pressing of a power supply key. The power supply key is different from a power supply switch in that the power supply switch is a switch for turning on or off the power to the device 20. On the other hand, the power supply key is a key (or a button) for switching the power status of the device 20 between the normal power status and the quiet status, for example. When the quiet status continues without any operation for a predetermined time, the power status of the device 20 may transition to the engine OFF status. In the engine OFF status, power consumption is minimum. Notices of such transitions of power status are also sent to the SCS 169. Thus, the SCS 169 can recognize what power status the device 20 is currently in.
In statuses other than the normal power status, the power status of the device 20 may transition to the normal power status upon a user making a key operation. For example,
For example, in the quiet status, upon reception of a print request from a PC (personal computer) connected via a network, the printer application 142 sends “job open” to the SCS 169 (S501). As described with reference to
In response to the job open notice, the SCS 169 determines that the power status of the device 20 needs to be transitioned from the quiet status to the normal status. Thus, the SCS 169 queries the added program control unit 170 and the application 131C, which are registered in the SCS 169 in advance as the destinations of a power status transition notice, as to whether the transition from the quiet status to the normal power status is allowed (S502, S503). In response, the added program control unit 170 and the application 131C reply to the SCS 169 depending on their individual statuses (S504, S505).
When all of the responses from the destinations to the query indicate that the transition to the normal power status is allowed, the power status of the device 20 physically transitions to the normal power status under the control of the SCS 169.
Thereafter, the SCS 169 sends a power status finalization notice to the printer application 142, added program control unit 170, and the application C 131C, which are registered in the SCS 169 as the destinations of a power status transition notice, indicating the transition of the power status to the normal power status (S506 through S508).
While the example of
The above-described handling of the added program depending on the transition of power status may be realized in the same way as in Embodiment 2. Namely, the added program control unit 170 according to Embodiment 3 may be configured to perform a process sequence similar to the process sequence of
As described above, in accordance with Embodiment 3, the application (validation) of the added program in each power status can be properly controlled based on the power-status-based application determination table. Thus, the application of an added program to a target program to which such application is meaningless in the quiet status, for example, can be prevented.
In Embodiments 1 through 3, the added program control unit 170 determines the possibility of validation (application) of an added program in response to the reception of an added program validation request from the management server 10. On the other hand, in accordance with Embodiment 4, the added program control unit 170 is configured to automatically or actively validate an added program suitable for a detected status of the device 20. The status of the device 20 in accordance with Embodiment 4 may refer to the job status, the offline status, or the power status.
When step S602 is initially performed, the added program A is selected as a process target. In the following, the added program that is selected as a process target may be referred to as “a current added program”. Thereafter, the added program control unit 170 determines whether the status detected in step S601 matches the validation condition for the current added program (S603). If the detected status matches the validation condition, the added program control unit 170 then determines whether the current added program is already validated (S604). Because the added program control unit 170 is responsible for validating the added program, the added program control unit 170 has information of a list of the currently validated added programs. For example, a list of the added program IDs of the currently validated added programs is recorded in memory. Thus, the added program control unit 170 can determine which added program is validated.
When the current added program is not validated (NO in S604), the added program control unit 170 validates the current added program (S605). When the current added program is already validated (YES in S604), the added program control unit 170 does nothing with respect to the current added program, and selects the next added program registered in the validation condition table 190 as the current added program.
On the other hand, when the detected status does not match the validation condition of the current added program (NO in S603), the added program control unit 170 determines whether the detected status belongs to the same category of status as the validation condition of the current added program (S606). For example, in the case of the added program A, the determination provides a positive result when the detected status indicates a power status other than the engine OFF status. On the other hand, when the detected status belongs to the same category as the offline status or the job status, the determination provides a negative result.
When the detected status belongs to the same category of status as the validation condition of the current added program (YES in S606), the added program control unit 170 determines whether the current added program is already validated (S607). If validated (YES in S607), the added program control unit 170 invalidates the current added program (S608). To “invalidate” means that the application of the added program to the target program (i.e., insertion of an interrupt instruction) is removed. By such invalidation, the process sequence of the target program returns to normal.
When the detected status does not belong to the same category of status as the validation condition of the current added program (NO in S606), or when the current added program is not validated (NO in S607), the added program control unit 170 does nothing with respect to the current added program, and instead selects the next added program registered in the validation condition table 190 as the current added program.
When the steps following step S602 are completed for all of the added programs registered in the validation condition table 170, the process of
Next, the process sequence of
For example, upon reception of a power status finalization notice from the SCS 169 indicating the transition to the engine OFF status (S601-1), the added program control unit 170 validates the added program A based on the validation condition table 190 of
Thereafter, upon reception of a power status finalization notice from the SCS 169 indicating the transition to the quiet status when the added program A is validated (S601-2), the added program control unit 170 invalidates the added program A based on the validation condition table 190 (S608), and further validates the added program B (S605-2).
Next, a variation of the process sequence of
For example, following the reception of a power status finalization notice from the SCS 169 indicating the transition to the engine OFF status (S601-1), the added program control unit 170 notifies the management server 10 (S701). In response, the management server 10 performs the process illustrated in
Thereafter, when the added program A is validated, upon reception of a power status finalization notice from the SCS 169 indicating the transition to the quiet status (S601-2), the added program control unit 170 notifies the management server 10 (S703). In response, the management server 10 performs the process of
Thus, the validation condition table 190 may be provided in the management server 10. In this case, the process of
As described above, in accordance with the fourth embodiment, the added program can be validated or invalidated automatically depending on the status of the device 20 based on the validation condition table 190. Thus, the timing of application of the added program can be controlled.
Embodiment 4 may be combined with any one of Embodiments 1 through 3. In this case, whether an added program should be validated may be determined by the process of any one of Embodiments 1 through 3. Alternatively, the processes of Embodiments 1 through 4 may be combined in a desired way.
While in the foregoing description of the embodiments an image forming apparatus has been described as an electronic device, the present invention may be applied to various other electronic devices, such as various digital household appliances, portable devices, and general-purpose computers.
A computer-readable program having a program code for performing an information processing method according to an embodiment of the present invention may be embodied in a non-transitory computer-readable medium, such as the memory card 635 or a computer-readable information recording disc (not shown). Such a computer-readable program may also be downloaded into the electronic device 20 from the outside via the NIC 641 through a network, such as the Internet.
Although this invention has been described in detail with reference to certain embodiments, variations and modifications exist within the scope and spirit of the invention as described and defined in the following claims.
The present application is based on Japanese Priority Application No. 2009-161105 filed Jul. 7, 2009, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | Kind |
---|---|---|---|
2009-161105 | Jul 2009 | JP | national |