Image processing apparatus, method for controlling image processing apparatus, and storage medium
The image processing device optimizes installation efficiency by rearranging script execution orders to ensure compatible processes are executed correctly in parallel with firmware updates, addressing inefficiencies in existing installation methods.
Patent Information
- Application Number
- JP2024100194
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-06-21
- Publication Date
- 2026-01-08
AI Technical Summary
Existing image processing device installation processes are inefficient due to the need to execute firmware updates, application installations, and setting data imports in a specific order, which can lead to incorrect device configurations if the firmware update is executed before or after these processes, and it is difficult to determine the optimal execution order.
An image processing device with a script execution mechanism that confirms whether instructions can be executed before firmware updates and rearranges their order to ensure correct and efficient installation by executing compatible processes in parallel with firmware updates.
Ensures correct and efficient installation of image processing devices by allowing parallel execution of compatible processes with firmware updates, reducing overall installation time.
Smart Images

Figure 2026002299000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an image processing apparatus, a control method for an image processing apparatus, and a program. [Background technology]
[0002] When introducing a new image processing device, it is necessary to carry out installation work in advance to change the device configuration, such as updating firmware, installing applications, enabling optional functions, and importing setting data, depending on the image processing device's usage environment and the service content of the contract.
[0003] When installing a plurality of image processing devices, the installation work takes a lot of time and effort. Therefore, to make the installation process more efficient, there are systems that automate the installation process by registering the necessary firmware, applications, and setting value data in advance as installation data and processing it according to a script.The installation process can be shortened by carefully planning the order in which it is executed.
[0004] Patent Document 1 describes an image processing device that executes processes such as firmware update, application installation, activation of optional functions, and import of setting value data in accordance with information that specifies the execution order contained in a script. Patent Document 1 also describes that if the script does not contain information that specifies the execution order, the execution order is determined based on the amount of data used in each process, and the installation process is executed. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] Japanese Patent Application Publication No. 2020-107944 Summary of the Invention [Problem to be solved by the invention]
[0006] The firmware update process takes time, so if it could be performed in parallel with the installation of applications, the activation of optional functions, and the import of setting data, it would be possible to shorten the installation time. However, there are cases where the environment becomes one in which applications can run for the first time after the firmware update process is executed, or new optional functions or setting items are added. In such cases, the device configuration cannot be changed correctly unless the application is installed, the optional functions are enabled, and the setting value data is imported after the firmware update process. Conversely, depending on the current state of the image processing device, there may be cases where the environment allows applications to run even before the firmware update process is executed, or where optional functions to be enabled and setting items to be imported already exist. In such cases, the device configuration can be changed correctly even if the application is installed, optional functions are enabled, and setting value data is imported before the firmware update process.
[0007] However, when creating a script, it may be difficult to grasp the state of the image processing device when the script is executed. In such cases, in order to ensure that the configuration of the image processing device is changed correctly, a script must be created that specifies an installation order such that applications are installed, optional functions are enabled, and setting value data is imported after the firmware update. In conventional technologies, because processes are executed according to the installation order specified in the script, even if there is a more efficient installation order that can correctly change the configuration of the image processing device, it is not possible to execute the installation order, resulting in poor installation efficiency.
[0008] The present invention has been made to solve the above-mentioned problems, and an object of the present invention is to provide a mechanism that enables installation processing of an image processing device to be performed correctly and efficiently. [Means for solving the problem]
[0009] The present invention is an image processing device capable of executing a script, comprising: an acquisition means for acquiring a script including instructions for performing a firmware update; a confirmation means for, if the acquired script further includes at least one of an instruction to install an application, an instruction to enable an optional function, and an instruction to change a setting value, confirming whether each of the further included instructions satisfies the condition that it can be executed before the firmware update process; and an execution means for changing the execution order of the instructions included in the script in accordance with the result of the confirmation and executing the script, wherein the execution means changes the execution order for instructions that satisfy the condition so that they are executed before the firmware update process, and does not change the execution order for instructions that do not satisfy the condition. [Effects of the Invention]
[0010] According to the present invention, the installation process of the image processing device can be performed correctly and efficiently. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is a diagram illustrating an example of a hardware configuration of an image forming apparatus according to an embodiment of the present invention. [Figure 2] FIG. 2 is a diagram illustrating an example of a software module hierarchy of the image forming apparatus. [Figure 3] FIG. 2 is a diagram illustrating an example of a module configuration of a script execution service of an image forming apparatus. [Figure 4] FIG. 1 is a diagram illustrating an example of a network configuration of an image forming apparatus and a software distribution service. [Figure 5] A diagram showing the relationship between scripts and commands. [Figure 6] FIG. 3 is a diagram illustrating a list of commands handled in the present embodiment. [Figure 7] 3 is a diagram illustrating information on each content managed by a device configuration management server. [Figure 8]A diagram showing the data structure of a script. [Figure 9] 10 is a flowchart illustrating a series of processes of a script execution service. [Figure 10] FIG. 10 is a diagram illustrating an example of a UI screen of a script execution service. [Figure 11] 10 is a flowchart illustrating details of a script execution process. [Figure 12] 6 is a flowchart illustrating details of script analysis in the first embodiment. [Figure 13] 10 is a flowchart illustrating details of analysis of a crypt in the second embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0012] The following describes embodiments of the present invention with reference to the drawings. Note that the following embodiments do not limit the scope of the invention as claimed, and not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
[0013] [First embodiment] FIG. 1 is a diagram showing an example of the hardware configuration of an image forming apparatus 130 according to an embodiment of the present invention. The image processing apparatus is an image processing apparatus that has a printing function, a scanning function, a network communication function, and the like.
[0014] In the image forming apparatus 130, a controller unit including a CPU 101 is electrically connected to a scanner unit 113 and a printer unit 114, and is also connected to external devices via a LAN 116.
[0015] The CPU 101 is connected to devices connected to the system bus 119 via a system bus 119. The CPU 101 comprehensively controls access to various connected hardware based on a control program stored in a ROM 102, and also comprehensively controls various processes performed within the controller unit.
[0016] The ROM 102 is a read-only nonvolatile storage area, and stores the boot program, firmware, etc. of the image forming apparatus 130. The RAM 103 is a system work memory for the operation of the CPU 101 and is a memory for temporarily storing various data. The RAM 103 is configured by nonvolatile static RAM (SRAM), Ferroelectric RAM (FRAM (registered trademark), volatile dynamic RAM (DRAM), etc.
[0017] The HDD 104 is a non-volatile storage area that stores a system bundle, a later-installed bundle, etc. Firmware for the image forming apparatus 130 is stored in the HDD 104. For example, even if the HDD 104 breaks down and is replaced, this does not affect the RAM 103. Note that the configuration may include other storage devices such as an SSD (Solid State Drive) or an eMMC (Embedded MultiMediaCard) instead of or in addition to the HDD (Hard Disk Drive).
[0018] The operation unit I / F 105 is an interface unit that connects the system bus 119 and the operation unit 118. Specifically, the operation unit I / F 105 receives data to be displayed on the operation unit 118 from the system bus 119 and displays it, and also outputs input information from the operation unit 118 to the system bus 119. User instructions and information presentation to the image forming apparatus 130 are performed via the operation unit 118. The network I / F 106 is connected to a LAN 116, a WAN 117 and a system bus 119, and performs input and output of information with the outside.
[0019] The scanner I / F 108 corrects, processes, and edits the image data received from the scanner unit 113 . The image forming unit 109 performs image data direction conversion, image compression, decompression, and the like. The printer I / F 110 receives image data sent from the image forming unit 109, and prints the image at the printer unit 114 after image formation.
[0020] 2 is a diagram showing an example of a software module hierarchy 200 of the image forming apparatus 130 according to this embodiment. Each piece of software shown in FIG. 2 and subsequent figures is stored in the ROM 102 or HDD 104 and executed by the CPU 101 to realize its function. Various pieces of information used during execution are stored in the RAM 103 or HDD 104, and various pieces of information are exchanged between software functions. Furthermore, communication with external devices is performed using the network I / F 106.
[0021] The software first has an operating system (OS) platform 201. Firmware 250 performs basic control of the hardware incorporated in the image forming apparatus 130. By updating this firmware 250, it becomes possible to add functions to the image forming apparatus 130.
[0022] The UI 202 is a user interface (UI) module that mediates between the device and user operations when an operator performs various operations and settings on the image forming device 130. This module transfers input information to various modules in accordance with the operator's operations to request processing or change data settings.
[0023] Next, the configuration on the JAVA (registered trademark) side will be described. The software platform on the JAVA side is configured as a runtime environment of a JavaVM 207, and is configured of the JavaVM 207 as an interpreter, a library 208, and a framework group 209.
[0024] The library 208 includes a standard API (Application Programming Interface) library. The framework group 209 includes an OSGi 210. This OSGi 210 runs multiple bundles on a single Java VM 207. Furthermore, the OSGi extension unit 211 is a module that implements the interface specification of the OSGi 210. The OSGi extension unit 211 indicates that functions can be extended as needed within the scope of the OSGi 210 specifications. The OSGi 210 and the OSGi extension unit 211 provide functions such as bundle lifecycle management and inter-bundle communication functions.
[0025] A system bundle group 212 consisting of multiple system bundles exists on this OSGi 210. The system bundles include basic built-in functions of the image forming device 130, such as copy, scan, and print (not shown), as well as the following functions 214 to 219.
[0026] The bundle management service 214 is a system bundle that manages the life cycle of a bundle, such as adding / updating, installing, uninstalling, starting, and stopping multiple bundles. The firmware update service 215 is a system bundle that installs downloaded firmware. Firmware installation involves a preparation process of backing up the firmware and an installation process of restarting the device and applying the firmware. The firmware update service 215 also acquires the version of firmware 250 currently running in the image forming apparatus 130 as the current firmware version.
[0027] The settings management service 216 is a system bundle that imports and exports device settings. The optional feature management service 217 is a system bundle that enables and disables optional features of a device.
[0028] The login service 218 is a service that handles the authentication management function of the image forming device 130. This login service is designed so that only one can operate at a time when managing the image forming device 130. In other words, in order to use a new login service, it is necessary to stop the login bundle that was originally operating and then start the other login bundle that you want to operate.
[0029] The script execution service 219 is a system bundle that analyzes a script (instruction information related to installation processing) containing the contents of a configuration change instruction received from the cloud and executes the processing in the specified order. If the script instructs installation of a later-installed bundle 221, the script execution service 219 requests the bundle management service 214 to install the downloaded bundle. If an instruction to update the firmware 250 is received, the script execution service 219 requests the firmware update service 215 to update the downloaded firmware 250. If an instruction to change a setting value is received, the script execution service 219 requests the setting value management service 216 to import the setting value. If an instruction to enable an optional function is received, the script execution service 219 requests the optional function management service 217 to enable the function. When analyzing the script, the script execution service 219 obtains the current firmware version from the firmware update service 215.
[0030] Furthermore, there is a later-installed bundle group 220 that is installed after the system bundle group 212. As the later-installed bundle group 220, a plurality of later-installed bundles 221 that provide the user with various functions in the image forming apparatus 130 can be installed. The functions provided by the later-installed bundles include various functions such as image processing functions, authentication management functions, and department management functions such as print restrictions. For example, in the case of an authentication management function, in order to perform unique authentication management, a later-installed login bundle having that management function can be installed, and the login service 218 can be switched to and used with the newly installed login bundle.
[0031] The later-added bundles 221 that realize various functions operate under the management of the bundle management service 214. The bundle management service 214 holds bundle information including the bundle ID and bundle version of the added bundle. A bundle can be uniquely identified from the bundle ID and bundle version.
[0032] FIG. 3 is a diagram showing an example of the module configuration of the script execution service 219. The communication unit 300 has a function to acquire (receive) a script 500 (FIG. 5) described later from a device configuration management server 403 (FIG. 4) described later, and acquire (receive) firmware, applications, and device setting value data from a content server 404 (FIG. 4). The communication unit 300 also has a function to notify the device configuration management server 403 of the results of a configuration control process described later.
[0033] The script analysis unit 301 analyzes the script 500 acquired by the communication unit 300 and the commands 502 (FIG. 5) described later, and also sets the content of each command and whether the commands are to be executed in parallel or sequentially. The process execution unit 302 has a function of executing configuration control processes based on the information analyzed by the script analysis unit 301 .
[0034] The UI control unit 303 displays screens such as a script search screen, a script execution confirmation screen, and a script execution result screen on the operation unit 118 via the UI 202. In addition, in response to user input from the above-mentioned screens, the UI control unit 303 sends a script acquisition instruction to the communication unit 300 and a script analysis / execution instruction to the script analysis unit 301 and the process execution unit 302.
[0035] FIG. 4 is a diagram showing an example of a network configuration of the image forming apparatus 130 and a software distribution service. The image forming apparatus 130 communicates with a device configuration management server 403 and a content server 404 on a cloud 402 via the Internet 401 (which may be a network such as an intranet). The device configuration management server 403 manages a script 500 in which the procedure for changing the device configuration is written. The content server 404 manages firmware, applications, setting value data, and the like that are required to change the configuration of the device.
[0036] The device configuration management server 403 and the content server 404 may be realized by one computer or by multiple computers. For example, the device configuration management server 403 and the content server 404 may be configured to be realized using cloud computing technology.
[0037] FIG. 5 is a diagram showing the relationship between scripts and commands. Command 502 indicates a configuration control process. Command 502 has, as attributes, a command ID 503 that uniquely identifies the command in script 500, a command name 504 that identifies the configuration control process, and parameters 505 that indicate details of the command. Note that the types of commands and their parameters will be explained in detail with reference to FIG. 6. The command ID 503 also plays a role in controlling the order in which commands in the script 500 are executed, with commands being executed in order from the smallest value.
[0038] The script 500 has one or more commands, and has as an attribute a script ID 501 that uniquely identifies the script 500. The script 500 is created by the device configuration management server 403 and acquired by the image forming apparatus 130.
[0039] FIG. 6 is a diagram showing an example of a list (command table) 600 of command names 504 of commands 502 managed by the script analysis unit 301 and parameters 505 which are information required to execute each process.
[0040] UpdateFirmwareCommand 601 is a firmware update command (an instruction to execute a firmware update). This command instructs the script execution service 219 to download firmware from the content server 404 and the firmware update service 215 to install the downloaded firmware in the image forming apparatus 130. In other words, this command corresponds to an instruction to execute a firmware update. Parameters of UpdateFirmwareCommand 601 include the firmware version and a firmware download ID for querying the content server 404 about the firmware acquisition source.
[0041] InstallApplicationCommand602 is an application installation command. This command instructs the script execution service 219 to download an application (bundle 221) from the content server 404 and the bundle management service 214 to install the downloaded application on the image forming apparatus 130. In other words, this command corresponds to an instruction to install an application. The parameters of InstallApplicationCommand602 include an application download ID for inquiring of the content server 404 about where to obtain the application, an application version indicating the version of the application, and an operable firmware version indicating that the application can be run from a later firmware version.
[0042] ActivateOptionCommand603 is a command to activate an optional function. In response to this command, the optional function management service 217 activates the corresponding function. In other words, this command corresponds to an instruction to activate an optional function. The parameters of ActivateOptionCommand603 include a function ID that identifies the optional function to be activated, and an available firmware version that indicates that the optional function will be added and available for use in subsequent firmware versions.
[0043] The ImportSettingDataCommand 604 is a command to change settings. This command instructs the script execution service 219 to download device setting data from the content server 404 and the setting value management service 216 to import the downloaded setting data into the image forming apparatus 130. In other words, this command corresponds to an instruction to change settings. The parameters of the ImportSettingDataCommand 604 include a setting value download ID used to inquire of the content server 404 about the source from which the device setting data is obtained, and a setting value database version that indicates the version of the setting value database that manages the setting items used to create the setting data.
[0044] FIG. 7 is a diagram showing an example of information on each content item managed by the device configuration management server 403. As shown in FIG. The device configuration management server 403 collectively manages information such as application name 701, application version 702, operable firmware version 703 for each device model, and download ID 704, as in the application management table 700. When registering an application in the content server 404, this information is also registered. Note that the application version 702 indicates the version of the application. The operable firmware version 703 indicates that the application can be run from this or a later version of firmware. The download ID 704 indicates an ID (identifier) for identifying the application to be downloaded.
[0045] The device configuration management server 403 also collectively manages information such as the device model name 706, firmware version 707, setting value database version 708, and download ID, as in the firmware management table 705. When registering firmware in the content server 404, this information is also registered. The setting value database version 708 indicates the version of the database that manages the device setting items included in the firmware. The download ID 709 indicates an ID (identifier) for identifying the firmware to be downloaded.
[0046] The device configuration management server 403 also collectively manages information such as option names 711, function IDs 712, and available firmware versions 713 for each device model, as in an optional function management table 710. The function IDs 712 indicate IDs (identifiers) that identify optional functions. The available firmware versions 713 indicate that the optional functions can be used with firmware versions later than this one.
[0047] As described above, the information managed by the application management table 700, firmware management table 705, and option function management table 710 is used when creating the script 500.
[0048] FIG. 8 is a diagram showing an example of the script 500. The script 500 is created by an operator using an editor, and is registered and managed in the device configuration management server 403. The script 500 managed by the device configuration management server 403 is acquired and used by the image forming apparatus 130. In this embodiment, the script 500 is defined in JSON (JavaScript Object Notation) format, but the format is not limited to this and other formats may be used.
[0049] In the script 500, the script ID 801 is an ID for uniquely identifying the script. The command 802 indicates the processing content of the device configuration control processing, such as firmware update or application installation.
[0050] In the command 802, the command ID 803 is an ID that identifies the command within the script. The command name 804 is a name that identifies the configuration control process. The parameters 805 indicate information required to execute the command.
[0051] For example, a firmware update command 804a (corresponding to UpdateFirmwareCommand 601) indicates, as parameters, a firmware version 806 and a firmware acquisition ID 807 to query the content server 404 for.
[0052] In addition, the setting value change command 804b (corresponding to ImportSettingDataCommand 604) indicates, as parameters, a setting value database version 808 indicating the version of the setting value database that manages the setting items used to create the setting value data, and an ID 809 for obtaining device setting value data to query the content server 404.
[0053] In addition, the application install command 804c (corresponding to InstallApplicationCommand602) indicates as parameters an application ID 810 indicating the application version, an operable firmware version 811 indicating that the application can be run from a later firmware version, and an application acquisition ID 812 to query the content server 404.
[0054] Furthermore, the optional function activation command 804d (corresponding to ActivateOptionCommand 603) indicates, as parameters, a function ID 813 that identifies the optional function, and an available firmware version 814 that indicates that the optional function can be used from the firmware version onwards.
[0055] 9 is a flowchart illustrating a series of processes of the script execution service 219. The processes of the flowcharts shown in FIG. 9 and in FIGS. 11 and 12, which will be described later, are executed by the script execution service 219. That is, these processes are realized by the CPU 101 of the image forming apparatus 130 executing a program stored in any one of the storage units, RAM 103, HDD 104, and ROM 102. The processes of this flowchart are started when the script execution service 219 is started by the user, for example, through a predetermined user operation on the operation unit 118.
[0056] In step S901, in the script execution service 219, the UI control unit 303 displays a script search screen 1000 such as that shown in FIG. 10A on the operation unit 118 via the UI 202. FIG. 10(a) is a diagram showing an example of a script search screen 1000 of the script execution service. The script search screen 1000 includes a message 1001 , a script ID input field 1002 , and a search button 1003 .
[0057] The message 1001 displays a character string notifying the user of the start of a script search and a character string prompting the user to input a script ID. The script ID input section 1002 is an area where the user inputs a script ID. For example, "aa11-bb22-cc33-dd44" is input as the script ID. The input method may be to use hard keys (not shown) provided on the operation section 118, or to display soft keys on the operation section 118 via the UI 202 by selecting the script ID input section 1002.
[0058] The search button 1003 is a button that is pressed when acquiring the script 500 linked to the script ID input in the script ID input section 1002. When the user presses the search button 1003, the UI control section 303 instructs the communication section 300 to acquire the script 500 linked to the script ID input in the script ID input section 1002. This causes the process to proceed to S902.
[0059] In step S902 , the communication unit 300 acquires the script associated with the script ID input in the script ID input unit 1002 from the device configuration management server 403 , and transfers control to the UI control unit 303 .
[0060] Next, in step S903, the UI control unit 303 displays a script execution confirmation screen 1004 as shown in FIG. 10B on the operation unit 118 via the UI 202.
[0061] FIG. 10B is a diagram showing an example of a script execution confirmation screen 1004 for the script execution service. The script execution confirmation screen 1004 includes a message 1005 , a script details display section 1006 , a cancel button 1007 , and an execute button 1008 .
[0062] A message 1005 displays a character string notifying the user that a script will be executed. The script details display area 1006 is an area that displays details of a script obtained from the device configuration management server 403. In this example, in addition to the script ID, each process (command 502) written in the script is displayed.
[0063] A cancel button 1007 is a button that is pressed when the execution of a script is to be canceled. The execution button 1008 is a button that is pressed when executing a script.
[0064] Next, in S904, the UI control unit 303 of the script execution service 219 receives button input from the user via the script execution confirmation screen 1004, and determines whether to execute the script in accordance with the input. If the cancel button 1007 is pressed here, the script execution service 219 determines not to execute the script (determines No in S904), and the UI control unit 303 of the script execution service 219 proceeds to S901.
[0065] On the other hand, if the execute button 1008 is pressed, the script execution service 219 determines to execute the script (determines Yes in S904), and the UI control unit 303 instructs the script analysis unit 301 to analyze the script 500. As a result, the process proceeds to S902.
[0066] In S905, the script analysis unit 301 analyzes the script 500 instructed by the UI control unit 303. When the analysis is complete, the process execution unit 302 executes the script 500 analyzed by the script analysis unit 301. A detailed flow will be explained in Fig. 11. When the execution of the script 500 is complete, the process execution unit 302 advances the process to S906. In S906, the UI control unit 303 displays a script execution result screen 1009 as shown in FIG. 10C on the operation unit 118 via the UI 202.
[0067] FIG. 10C is a diagram showing an example of a script execution result screen of the script execution service. The script execution result screen 1009 includes a message 1010 , a script execution result display section 1011 , and a complete button 1012 .
[0068] Message 1010 displays a string of characters informing the user that the script has finished executing. The script execution result display area 1011 is an area that displays the details of the execution result of the script. In this example, in addition to the script ID, the results of each process (command 502) defined in the script are displayed.
[0069] The Finish button 1012 is a button that is pressed when terminating the script execution service 219. When the user presses the Finish button 1012, the script execution service 219 terminates the processing of this flowchart.
[0070] FIG. 11 is a flowchart illustrating the details of the script execution process in S905 of FIG. In S1101, the script analysis unit 301 analyzes the script 500 specified by the UI control unit 303, and checks whether the execution order of the commands executed by the script can be changed to a more efficient execution order. Specifically, before executing the firmware update command 601 and applying it to the desired version, it checks whether each command can be processed in parallel with the firmware update command 601. Details of S1101 will be described with reference to FIG. 12. When the processing of S1101 is completed, the process proceeds to S1102.
[0071] FIG. 12 is a flowchart illustrating the details of the process of S1101 in FIG. 11 in the first embodiment. In S1201, the script analysis unit 301 checks whether the firmware update command (UpdateFirmwareCommand 601) exists in the specified script. If there is no firmware update command in the script (No in S1201), the script analysis unit 301 determines that it cannot change the execution order to one that is more efficient, and proceeds to S1202. In S1202, the script analysis unit 301 sets the execution type of all commands in the script to "Cannot be processed in parallel with firmware update preparation processing," ends the processing of this flowchart, and proceeds to S1102 in Fig. 11. Note that the firmware update preparation processing is, for example, firmware download and firmware backup processing, but is not limited to this and may include other processing.
[0072] On the other hand, in the above S1201, if a firmware update command exists in the script (Yes in S1201), the script analysis unit 301 executes the processes of S1203 to S1210. In S1203 to S1210, the script analysis unit 301 controls so that the processes of S1204 to S1209 are executed for all commands in the script.
[0073] First, in S1203, the script analysis unit 301 acquires one unprocessed command from the specified script as a target command, and proceeds to S1204. In S1204, the script analysis unit 301 checks whether the target command is a firmware update command (UpdateFirmwareCommand 601).
[0074] If the target command is a firmware update command (Yes in S1204), the script analysis unit 301 advances the process to S1205. In S1205, the script analysis unit 301 sets the execution type of the target command to "Can be executed in parallel with firmware update preparation processing" and proceeds to S1210 (described later). In other words, the script analysis unit 301 has confirmed that the target command can be executed before the firmware update processing.
[0075] On the other hand, if the target command is not a firmware update command (No in S1204), the script analysis unit 301 advances the process to S1206. In S1206, the script analysis unit 301 confirms whether the target command satisfies the condition "that the target command is an application install command (InstallApplicationCommand 602), and that the "operable firmware version" in the parameter of the command does not exceed the current firmware version (the version of the firmware currently operating in the image forming apparatus 130) obtained from the firmware update service 215." In other words, it is confirmed whether the application to be installed by this application install command can be operated with the current firmware version.
[0076] If the condition is met (Yes in S1206), the script analysis unit 301 determines that the application can be installed before updating the firmware, and proceeds to S1205.
[0077] On the other hand, if the condition is not met (No in S1206), the script analysis unit 301 advances the process to S1207. In S1207, the script analysis unit 301 confirms whether the target command satisfies the condition "an activation command for an optional function (ActivateOptionCommand 603) and the 'operable firmware version' in the parameter of the command does not exceed the current firmware version obtained from the firmware update service 215." In other words, it is confirmed whether the optional function to be activated by the activation command for this optional function can be activated with the current firmware version.
[0078] If the condition is met (Yes in S1207), the script analysis unit 301 determines that the target optional function exists in the image forming apparatus 130 and can be enabled, and proceeds to S1205.
[0079] On the other hand, if the condition is not met (No in S1207), the script analysis unit 301 advances the process to S1208. In S1208, the script analysis unit 301 checks whether the target command satisfies the condition "a setting value change command (ImportSettingDataCommand 604) and the 'setting value database version' in the parameter of the command matches the current setting value database version that can be acquired from the setting value management service 216." In other words, it checks whether all setting items corresponding to this setting value change command are current setting items in the image forming apparatus 130.
[0080] Here, if the condition is met (Yes in S1208), the script analysis unit 301 determines that no new device setting items will be added to the image forming device 130 after the firmware update, and that the settings will be correctly reflected even if the setting values are imported before the firmware update, and proceeds to S1205.
[0081] On the other hand, if the condition is not met (No in S1208), the script analysis unit 301 advances the process to S1209. In S1209, the script analysis unit 301 sets the execution type of the target command to "Cannot be executed in parallel with firmware update preparation processing" and proceeds to S1210. In other words, the script analysis unit 301 confirmed that the target command cannot be executed before the firmware update processing.
[0082] In S1210, the script analysis unit 301 determines whether the processes in S1204 to S1209 have been performed on all commands in the script. Here, if there is a command in the script that has not yet undergone the processing in steps S1204 to S1209, the script analysis unit 301 returns the processing to step S1203. On the other hand, if the processes in S1204 to S1209 have been performed on all commands in the script, the script analysis unit 301 ends the process of this flowchart and proceeds to S1102 in FIG.
[0083] Returning to the description of the flowchart in FIG. In S1102, the process execution unit 302 checks the execution type set for each command in S1101 above, and determines whether there is a command whose execution type is "can be processed in parallel with firmware update preparation processing." Here, if there is no command whose execution type is "can be processed in parallel with firmware update preparation processing" (No in S1102), the process execution unit 302 advances the process to S1105.
[0084] On the other hand, if there is a command whose execution type is "can be processed in parallel with firmware update preparation processing" (Yes in S1102), the process execution unit 302 advances the process to S1103.
[0085] In S1103, the process execution unit 302 executes all commands whose execution type is "Can be processed in parallel with firmware update preparation processing" in parallel with the firmware update preparation processing (firmware download and firmware backup processing) of UpdateFirmwareCommand 601. Then, when the firmware preparation processing and execution of all commands are completed, the process execution unit 302 proceeds to S1104.
[0086] In S1104, the process execution unit 302 restarts the image forming apparatus 130. When the restart is executed, the firmware is applied to the version specified in the script. When the restart in S1104 is completed, the process execution unit 302 advances the process to S1105.
[0087] In S1105, the process execution unit 302 checks the execution type set for each command in S1101 above, and determines whether there is a command whose execution type is "cannot be processed in parallel with firmware update preparation processing." If there is no command whose execution type is "cannot be processed in parallel with firmware update preparation processing" (No in S1105), the process execution unit 302 ends the script execution process and proceeds to S906 in FIG.
[0088] On the other hand, if there is a command whose execution type is "cannot be processed in parallel with firmware update preparation processing" (Yes in S1105), the process execution unit 302 advances the process to S1106. In S1106, the process execution unit 302 executes commands whose execution type is "cannot be processed in parallel with firmware update preparation processing" (i.e., whose execution type is sequential execution) sequentially, starting with the command with the smallest command ID value (the commands may be executed in the order in which they are written). Note that if the image forming apparatus 130 needs to be restarted when each command is executed, the process execution unit 302 executes the restart each time. Then, when all commands whose execution type is sequential execution have been executed, the process execution unit 302 ends the script execution process and proceeds to S906 in FIG. 9.
[0089] As described above, according to the first embodiment, even if the execution order is specified in the script, if it is possible to guarantee that the configuration control contents can be correctly reflected, the execution order can be rearranged to a more efficient order, thereby reducing the installation processing time.
[0090] Second Embodiment In the first embodiment, even if the command execution order is specified in the script, if it is possible to guarantee that the desired configuration can be correctly reflected on the device even if each command is executed before the firmware update is applied, commands that can be guaranteed to be executed in parallel with the firmware update and commands that cannot be guaranteed to be executed sequentially afterwards, thereby realizing an efficient execution order. In the first embodiment, with regard to the setting value import command, if the setting value database version is different before and after the firmware update, it is determined that a new setting item has been added and the order cannot be changed. Even if a setting item is added, if the added item does not exist in the setting value data to be actually imported, it is possible to guarantee that the configuration control contents can be correctly reflected even if the setting value is imported in parallel with the application of the firmware update. Therefore, in the second embodiment, if the setting value database version is different, the setting items of the actual setting value data are also checked, and a determination is made as to whether the execution order can be changed to an efficient order based on the results of this check. This configuration is described in detail below.
[0091] Fig. 13 is a flowchart illustrating the details of the process of S1101 in Fig. 11 in the second embodiment. Note that the same steps as in Fig. 12 are assigned the same step numbers, and their explanations will be omitted.
[0092] In the second embodiment, if the answer is No in S1207, the script analysis unit 301 advances the process to S1301. In S1301, the script analysis unit 301 checks whether the target command is a "setting value change command (ImportSettingDataCommand 604)". If the target command is not a "setting value change command" (No in S1301), the script analysis unit 301 advances the process to S1209. On the other hand, if the target command is a "setting value change command" (Yes in S1301), the script analysis unit 301 advances the process to S1302.
[0093] In S1302, the script analysis unit 301 checks whether the “setting value database version” in the parameter of the target command matches the current setting value database version that can be acquired from the setting value management service 216. Here, if the "setting value database version" in the parameter of the target command matches the current setting value database version that can be acquired from the setting value management service 216 (Yes in S1302), the process proceeds to S1205.
[0094] On the other hand, if the “setting value database version” in the parameter of the target command does not match the current setting value database version that can be acquired from the setting value management service 216 (No in S1302), the process proceeds to step S1303.
[0095] In S1303, the script analysis unit 301 instructs the communication unit 300, and the communication unit 300 uses the "setting value download ID" in the parameter of the target command to acquire device setting value data from the content server 404. The script analysis unit 301 causes the setting value management service 216 to analyze the device setting value data acquired by the communication unit 300, and checks whether any items not included in the current device setting items exist in the device setting value data.
[0096] Here, if the acquired device setting value data does not contain any items that are not included in the current device setting items (No in S1303), that is, if it is confirmed that all of the setting items whose setting values will actually be changed by this setting value change command are current setting items in the image forming device 130, the script analysis unit 301 determines that the settings will be reflected correctly even if the setting values are imported before the firmware is applied, and proceeds to S1205.
[0097] On the other hand, if the acquired device setting value data contains an item that is not included in the current device setting items (Yes in S1303), the script analysis unit 301 determines that the setting value data cannot be correctly reflected unless the firmware is applied and the setting item is added before importing it, and proceeds to step 1209.
[0098] As described above, according to the second embodiment, even if new setting items are added before and after a firmware update, if the added items do not exist in the setting value data to be actually imported, the execution order of the scripts can be changed to a more efficient order and executed.
[0099] In the above-described embodiment, a configuration has been described in which scripts are acquired from the device configuration management server 403, and firmware, applications, and device setting value data are acquired from the content server 404. However, the present invention is not limited to this. An interface for attaching a storage medium such as a USB memory is provided in the image forming device 130, and the storage medium storing the script 500 (firmware, applications, and device setting value data may also be stored) is attached to the image forming device 130. The image forming device 130 may read (obtain) the script 500 from the attached storage medium, and analyze and execute it.
[0100] Furthermore, the present invention is not limited to image processing devices, but can also be applied to information processing devices such as various home appliances and other electronic devices. As described above, according to each embodiment, the installation process of a device such as an image processing device can be performed correctly and efficiently.
[0101] It goes without saying that the configurations and contents of the various data described above are not limited to those described above, and that the data may be configured in various configurations and contents depending on the application and purpose. Although one embodiment has been described above, the present invention can be embodied as, for example, a system, an apparatus, a method, a program, a storage medium, etc. Specifically, the present invention may be applied to a system made up of multiple devices, or may be applied to an apparatus made up of a single device. Furthermore, the present invention also includes any combination of the above embodiments.
[0102] Other Embodiments The present invention can also be realized by supplying a program that realizes one or more functions of the above-described embodiments to a system or device via a network or a storage medium, and having one or more processors in the computer of the system or device read and execute the program.The present invention can also be realized by a circuit (e.g., ASIC) that realizes one or more functions. Furthermore, the present invention may be applied to a system made up of multiple devices, or to an apparatus made up of a single device. The present invention is not limited to the above-described embodiments, and various modifications (including organic combinations of the embodiments) are possible based on the spirit of the present invention, and these modifications are not excluded from the scope of the present invention. In other words, all configurations that combine the above-described embodiments and their modifications are included in the present invention.
[0103] The disclosure of this embodiment includes the following configuration, method, and program. (Configuration 1) An image processing device capable of executing a script, obtaining means for obtaining a script including instructions for performing a firmware update; a confirmation means for, when the acquired script further includes at least one of an instruction to install an application, an instruction to enable an optional function, and an instruction to change a setting value, confirming whether each of the further included instructions satisfies a condition that it can be executed before the firmware update process; and an execution means for executing the script by changing the execution order of instructions included in the script according to the result of the confirmation; The image processing device is characterized in that the execution means changes the execution order so that instructions that satisfy the conditions are executed before the firmware update process, and does not change the execution order for instructions that do not satisfy the conditions. (Configuration 2) 2. The image processing device according to configuration 1, wherein the execution means changes the execution order so that instructions that satisfy the condition are executed in parallel with preparatory processing for updating the firmware. (Configuration 3) The image processing device described in configuration 1 or 2, characterized in that the confirmation means determines that the application installation instruction satisfies the condition if the application to be installed in response to the application installation instruction is operable with the firmware version currently running on the image processing device. (Configuration 4) The image processing device described in any one of configurations 1 to 3, characterized in that the confirmation means determines that the instruction to enable the optional function satisfies the condition if the optional function to be enabled by the instruction to enable the optional function can be enabled with the firmware version currently running in the image processing device. (Configuration 5) The image processing device described in any one of configurations 1 to 4, characterized in that the confirmation means determines that the instruction to change the setting value satisfies the condition if all of the setting items corresponding to the instruction to change the setting value are current setting items in the image processing device. (Configuration 6) The image processing device described in configuration 5 is characterized in that the confirmation means determines that the instruction to change the setting value satisfies the condition if all of the setting items whose setting values are actually changed by the instruction to change the setting value are current setting items in the image processing device, even if there is a setting item corresponding to the instruction to change the setting value that is not currently included in the setting items in the image processing device. (Method 1) A method for controlling an image processing device capable of executing a script, comprising: obtaining a script including instructions for performing a firmware update; a confirmation step of, when the acquired script further includes at least one of an instruction to install an application, an instruction to enable an optional function, and an instruction to change a setting value, confirming whether each of the further included instructions satisfies a condition that it can be executed before the firmware update process; an execution step of changing the execution order of instructions included in the script in accordance with the result of the confirmation and executing the script; A control method for an image processing device, characterized in that in the execution process, the execution order of instructions that satisfy the conditions is changed so that they are executed before the firmware update process, and the execution order of instructions that do not satisfy the conditions is not changed. (Program 1) A program for causing a computer to function as each of the means according to any one of configurations 1 to 6.
Claims
1. An image processing device capable of executing a script, obtaining means for obtaining a script including instructions for performing a firmware update; a confirmation means for, when the acquired script further includes at least one of an instruction to install an application, an instruction to enable an optional function, and an instruction to change a setting value, confirming whether each of the further included instructions satisfies a condition that it can be executed before the firmware update process; and an execution means for executing the script by changing the execution order of instructions included in the script according to the result of the confirmation; The image processing device is characterized in that the execution means changes the execution order so that instructions that satisfy the conditions are executed before the firmware update process, and does not change the execution order for instructions that do not satisfy the conditions.
2. 2. The image processing apparatus according to claim 1, wherein the execution unit changes the execution order so that the instruction that satisfies the condition is executed in parallel with a preparation process for the firmware update process.
3. The image processing device according to claim 1 or 2, characterized in that the confirmation means determines that the application installation instruction satisfies the condition if the application to be installed in response to the application installation instruction is operable with the firmware version currently running in the image processing device.
4. The image processing device described in claim 1 or 2, characterized in that the confirmation means determines that the optional function activation instruction satisfies the condition if the optional function to be activated by the optional function activation instruction can be activated with the firmware version currently running in the image processing device.
5. 3. The image processing device according to claim 1, wherein the confirmation means determines that the instruction to change the setting value satisfies the condition if all of the setting items corresponding to the instruction to change the setting value are current setting items in the image processing device.
6. The image processing device described in claim 5, characterized in that the confirmation means determines that the setting value change instruction satisfies the condition if all of the setting items whose setting values are actually changed by the setting value change instruction are current setting items in the image processing device, even if there is a setting item corresponding to the setting value change instruction that is not among the current setting items in the image processing device.
7. A method for controlling an image processing device capable of executing a script, comprising: obtaining a script including instructions for performing a firmware update; a confirmation step of, when the acquired script further includes at least one of an instruction to install an application, an instruction to enable an optional function, and an instruction to change a setting value, confirming whether each of the further included instructions satisfies a condition that it can be executed before the firmware update process; an execution step of changing the execution order of instructions included in the script in accordance with the result of the confirmation and executing the script; A control method for an image processing device, characterized in that in the execution process, the execution order of instructions that satisfy the conditions is changed so that they are executed before the firmware update process, and the execution order of instructions that do not satisfy the conditions is not changed.
8. A program for causing a computer to function as each of the means according to claim 1 or 2.
Citation Information
Patent Citations
Image processing device, installation information management method of the same, installation information management system for image processing device, and program
JP2020107944A