Device management system and device management method

The device management system addresses inefficiencies and security risks by generating and executing temporary commands remotely, eliminating the need for firmware updates and ensuring secure, on-demand command execution.

JP2025126488APending Publication Date: 2025-08-29CANON KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024022696
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-02-19
Publication Date
2025-08-29

AI Technical Summary

Technical Problem

Existing remote device management systems require firmware updates to add temporary commands, which is inefficient and inconvenient, and pre-resident commands can pose security risks.

Method used

A device management system that uses a management device to generate and execute temporary commands via a network, eliminating the need for firmware updates and enhancing convenience by managing command execution through a command generation unit and execution unit.

Benefits of technology

Enables convenient and secure remote device management without firmware updates, allowing temporary commands to be used only when necessary.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025126488000001_ABST
    Figure 2025126488000001_ABST
Patent Text Reader

Abstract

To provide a device management system and a management method in which update of firmware is not needed, and convenience is improved.SOLUTION: A device management system includes one or more devices 130, and a cloud service 301 connected to the devices through a network. The cloud service manages an application comprising a temporary command generation unit which generates a temporary command among a plurality of commands, and transmits instructions of a series of processing including installation processing of the application to the devices via the network. The devices manage a command generation unit list, add the temporary command generation unit to the command generation unit list, add it to the command generation unit list based on instructions of start processing of the application among the instructions from the cloud service, execute the temporary command based on execution instructions of the temporary command, and execute restriction processing based on the instructions of restriction processing of use of the application, after the execution.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to management techniques for devices that may be connected to a network. [Background technology]

[0002] In recent years, with the advancement of cloud and IoT technologies, there has been an increase in use cases for remote diagnosis and repair of network equipment (hereinafter referred to as "devices") and systems. Remote diagnosis and repair eliminates the need for service personnel to visit the customer's site, which is expected to reduce service costs.

[0003] From the occurrence of a problem in a device or system to its resolution, the general process is to detect the problem, diagnose the cause, take action based on the diagnosis results, and finally verify that the problem has been properly restored.To handle these issues, it is common to prepare pre-determined problem detection methods, problem resolution methods, and problem confirmation methods in the form of commands in the firmware on the device / system side, and then respond by issuing instructions as commands remotely.

[0004] However, there are many different situations in which customers may need repairs, and it is difficult to anticipate and prepare all commands in advance. If a problem occurs for which no commands are prepared, a service technician will have to be dispatched to the customer, which halves the effect of reducing service costs.

[0005] Additionally, depending on the repair situation, there may be cases where the service provider needs to know the details of the customer's device / system environment. For example, there may be cases where it is necessary to obtain a list of device configuration information. In this case, it is necessary to prepare a command to obtain a list of all device information. From another perspective, commands that can be used to issue remote instructions can also be considered an interface for communicating with the outside world. For this reason, having commands residing on the device / system in the form of commands without due consideration could potentially be a security hole.

[0006] Therefore, it is desirable that special commands required for remote repairs be available only when necessary. Hereinafter, such commands will be referred to as temporary commands. On the other hand, if the device is an image forming device, commands such as bundle installation commands and firmware update commands that are pre-resident in the image forming device are commands that can be used at any time. Hereinafter, such commands will be referred to as basic commands.

[0007] Adding commands defined in firmware requires updating the device / system firmware. In the case of remote repairs, to enable temporary commands to be used only when necessary, repair commands can be added each time a customer requests them. This requires updating the firmware to include the repair commands, and then updating it again to firmware that does not include the repair commands after the remote repair is complete. However, this is not realistic, considering that firmware updates generally take time and that firmware must be prepared for each combination of commands.

[0008] Therefore, a method has been proposed in which a command is added and executed from an application program that can be installed on a device by a user (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0009] [Patent Document 1] Japanese Patent Application Laid-Open No. 2014-40059 Summary of the Invention [Problem to be solved by the invention]

[0010] In the technology of Patent Document 1, setting commands (application commands) held by the application itself are linked to commands (internal commands) prepared in advance on the device side. Therefore, when the application is installed on the device, the device executes the internal commands it holds. In other words, the internal commands must be prepared in advance on the device side, which is inefficient and inconvenient.

[0011] The present disclosure provides a device management technique that eliminates the need for firmware updates and improves convenience. [Means for solving the problem]

[0012] A device management system according to one embodiment of the present disclosure includes a device and a management device connected to the device via a network. The management device includes a first management unit that manages an application having a temporary command generation unit that generates temporary commands among commands, and an instruction unit that transmits instructions for a series of processes, including an installation process for the application, a start process for starting use of the application, a process for executing the temporary commands, and a restriction process for restricting use of the application, to the device via the network as instructions for executing the commands. The device includes a second management unit that manages the command generation unit that generates the commands and the temporary command generation unit as a command generation unit list, and an execution unit that executes the commands and the temporary commands generated by the command generation unit and the temporary command generation unit, respectively, as the series of processes based on the instructions received from the management device. The execution means adds the temporary command generation unit to the command generation unit list based on the instruction for the start processing among the instructions, executes the temporary command based on the instruction for the execution processing of the temporary command, and after executing the temporary command, executes the restriction processing of the use of the application based on the instruction for the restriction processing. [Effects of the Invention]

[0013] According to the present disclosure, it is possible to realize a device management technique that does not require firmware updates and that is more convenient. [Brief explanation of the drawings]

[0014] [Figure 1] FIG. 2 is a diagram illustrating a hardware configuration of a device that is an image forming apparatus according to the first embodiment. [Figure 2] FIG. 2 illustrates the software module hierarchy of a device. [Figure 3] 1A is a block diagram showing the configuration of a device management system according to a first embodiment, and FIG. 1B is a diagram showing an example of the hardware configuration of the cloud services. [Figure 4] 10 is a flowchart showing the overall process in which a user issues instructions in Instructions 1 and Instructions 2 to a device. [Figure 5] FIG. 2 is a block diagram showing the software module configuration of the device. [Figure 6] 1A is a block diagram showing the relationship between various command classes used for reading instructions and executing commands, and FIG. 1B is a block diagram showing the relationship between command script lists, command scripts, and command objects. [Figure 7] 1A is a block diagram showing the relationship between a command sequence object list, a command sequence object, and a command object, and FIG. 1B is a block diagram showing a bundle download command. [Figure 8] 1A and 1B are block diagrams showing the modular configuration of software included in each cloud service. [Figure 9] 10A and 10B are diagrams illustrating screens displayed by an instruction operation UI unit of the instruction operation cloud service. [Figure 10] 10A and 10B are diagrams illustrating screens displayed by an instruction operation UI unit of the instruction operation cloud service. [Figure 11] FIG. 10 is a diagram showing an instruction content list stored in an instruction content storage unit. [Figure 12] FIG. 10 is a block diagram showing a configuration information list acquisition command held by a repair bundle. [Figure 13] 10 is a flowchart showing an analysis process of an instruction sheet by an instruction sheet analysis unit. [Figure 14] 10 is a flowchart showing a command script list generation process performed by an instruction book analysis unit. [Figure 15] 10 is a flowchart showing a command sequence reading process performed by an instruction book analysis unit. [Figure 16] 10 is a flowchart showing a command sequence object generation process performed by an instruction book analysis unit. [Figure 17] 10 is a flowchart showing a process of executing a bundle install command by a command sequence executing unit. [Figure 18] 10 is a flowchart showing a bundle start process by a command bundle. [Figure 19] 10 is a block diagram showing a command generation unit list of a command generation unit management unit. FIG. [Figure 20] 10 is a flowchart showing the processing up to command execution by a command sequence execution unit. [Figure 21] 10 is a flowchart showing a command execution preparation process performed by a command sequence executing unit. [Figure 22] 10 is a flowchart showing a command execution process performed by a command sequence execution unit. [Figure 23] 10 is a flowchart illustrating a bundle uninstallation command process performed by a command sequence executing unit. [Figure 24] 10 is a flowchart showing a bundle stop process performed by a command bundle. [Figure 25] FIG. 11 is a block diagram showing a modular configuration of software for an instruction operation cloud service according to a second embodiment. [Figure 26] FIG. 10 is a diagram illustrating a command bundle correspondence table. [Figure 27]10A and 10B are diagrams illustrating screens displayed by an instruction operation UI unit of the instruction operation cloud service. [Figure 28] 10 is a flowchart showing a process for transmitting an instruction book 4 by the instruction operation cloud service. [Figure 29] 10 is a flowchart showing a process for transmitting an additional instruction by the instruction operation cloud service. DETAILED DESCRIPTION OF THE INVENTION

[0015] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. Not all of the features in the embodiments of the present disclosure are essential, and multiple features may be combined as desired. Furthermore, the configurations shown in the following embodiments are merely examples, and the present disclosure is not limited to the illustrated configurations. In the drawings, the same reference symbols are used to designate the same or similar configurations, and redundant explanations will be omitted.

[0016] In recent years, image forming devices have been provided with application program operating environments such as the JAVA (registered trademark) environment. Utilizing the program portability of JAVA, a technology has been proposed to provide extensible application programs.

[0017] In order to improve the functionality and usability of the image forming apparatus, an application program that operates in an environment such as the above-mentioned JAVA environment can be created and installed later on the image forming apparatus, thereby realizing the desired functionality. A program that can be installed later is not a program that the image forming apparatus has by default, but an application program that can be additionally installed on the image forming apparatus.

[0018] One application platform is the Open Services Gateway Initiative (OSGi) Service Platform (hereinafter referred to as OSGi), a Java application platform for embedded devices. OSGi defines bundles as management units for software modules and defines specifications for managing a lifecycle consisting of installation, start, stop, update, and uninstallation. Here, a bundle refers to a Java module, and in this disclosure, is synonymous with an application program. Therefore, hereafter, an application program will be referred to as a bundle. A bundle that is installed later to expand the functionality of an image forming apparatus is called a later-installed bundle.

[0019] The image forming apparatus is, for example, a printer, a scanner, a copier, or a multifunction device including these. Hereinafter, the image forming apparatus will be referred to as a device.

[0020] [First embodiment] The first embodiment illustrates a use case of remote repair in which, for example, a "get setting information list" command, which is a temporary command for acquiring all the setting information in a required device, is desired to be used.

[0021] The "Get configuration information list" command is a command that is only used in remote repair use cases, and since we do not want it to become a security hole, it is desirable to treat it as a "temporary command" that does not need to be kept resident. The later-added bundle that holds this temporary command is called a command bundle. In other words, a "command bundle" is synonymous with a "command application."

[0022] The "get setting information list" command is a command for acquiring information (device setting information) set in the device 130 so that, for example, an engineer can diagnose, repair, etc. the device 130. The device setting information includes various information set in the device, such as device identification information, as well as operation information and log information held by the device. Note that the device setting information is almost synonymous with the "device configuration information" described below. Another example of a temporary command is a repair command that can be used when a solution is needed that cannot be prepared in advance, such as updating or deleting a configuration file for an application that is experiencing problems.

[0023] In this embodiment, a command bundle (repair bundle) that holds a "get configuration information list" command is used as an example. Instructions 1 and 2 are given as examples of instructions that instruct how to handle this command bundle. Specifically, Instruction 1 describes a method of installing the command bundle and adding temporary commands that this command bundle has, and then Instruction 2 describes a method of executing the "get configuration information list" command.

[0024] 1 is a hardware configuration diagram of device 130, which is an image forming apparatus having, for example, a print function, a scan function, and a network communication function. Device 130 may have any one of the print function, the scan function, and the copy function.

[0025] The device 130 is electrically connected to the scanner unit 113 and the printer unit 114, and is also connected to external devices via the LAN 116.

[0026] The CPU 101 performs overall control of access to various connected hardware based on a control program stored in the ROM 102, and also performs overall control of various processes performed within the controller.

[0027] The ROM 102 is a read-only non-volatile storage area, and stores the boot program, firmware, etc. of the device 130.

[0028] 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.

[0029] The HDD 104 is a non-volatile storage area that stores the system bundle, the later-installed bundle, etc. The firmware for the device is stored in the HDD 104. Even if the HDD 104 is replaced due to a failure, the RAM 103 is not affected.

[0030] The operation unit I / F 105 is an interface unit that connects the system bus 119 and the operation unit 118. Specifically, it 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 device 130 are performed via the operation unit 118.

[0031] The network I / F 106 is connected to a LAN 116, a WAN 117 and a system bus 119, and inputs and outputs information to and from external devices.

[0032] The scanner I / F 108 corrects, processes, and edits the image data received from the scanner unit 113 .

[0033] The image forming unit 109 performs image data direction conversion, image compression, decompression, and the like.

[0034] 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.

[0035] FIG. 2 is a software module hierarchy diagram 220 of device 130. 2 and subsequent figures are stored in ROM 102 or HDD 104 and executed by CPU 101. CPU 101 stores various information used during execution in RAM 103 or HDD 104 and exchanges various pieces of information between software functions. Furthermore, communication with external devices is performed using network I / F 106.

[0036] Next, each piece of software will be explained. The software includes an operating system (OS) platform 201, firmware 250, and a UI 202.

[0037] The firmware 250 performs basic control of the hardware incorporated in the device 130. By updating this firmware 250, it is possible to add functions to the device 130.

[0038] The UI 202 is a user interface module that acts as an intermediary between the device 130 and user operations when the operator (user) performs various operations and settings on the device 130. This module transfers input information to various modules in accordance with the operator's operations to request processing or change data settings.

[0039] Next, we will explain the configuration on the JAVA side. 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.

[0040] The library 208 includes a standard API library.

[0041] The framework group 209 includes an OSGi 210, which runs a plurality of bundles on a single Java VM 207.

[0042] The OSGi extension unit 211 is a module that implements the interface specification OSGi 210. The OSGi extension unit 211 indicates that its functions can be extended as needed within the scope of the OSGi 210 specification.

[0043] The OSGi 210 and the OSGi extension unit 211 provide functions such as bundle lifecycle management and inter-bundle communication functions.

[0044] There are a plurality of system bundles 212 on the OSGi 210. The system bundles of the system bundles 212 include basic built-in functions of the device 130, such as copy, scan, and print (not shown).

[0045] The bundle management service 214 is a system bundle that manages the life cycle of bundles, such as adding / updating, installing, uninstalling, starting, and stopping multiple bundles.

[0046] The device information transmission service 215 is a system bundle that notifies external cloud services of various device configuration information. For example, the device configuration information includes currently installed bundle information managed by the bundle management service 214. Another example of the device configuration information includes a list of currently available commands managed by the command generation management unit 530 (described later).

[0047] The instruction execution service 216 is a system bundle that analyzes various instructions received from cloud services and executes the processes in the specified order.

[0048] The polling service 217 is a system bundle that communicates with a cloud service at regular intervals. For example, the polling service 217 communicates with the cloud service periodically (for example, every six hours), and when an instruction is received from the cloud service, the polling service 217 notifies an instruction notification receiving unit 510 (described later) of the instruction execution service 216 that the instruction has been received.

[0049] In addition to the system bundle group 212, there is a later-installed bundle group 218 that is installed by the user later. As a representative example of the later-installed bundle group 218, bundle 219 provides the user with various functions in the device 130. The functions include a variety of functions such as an image processing function, an authentication management function, and a department management function such as print restrictions.

[0050] The later-added bundle group 218, which realizes various functions, operates 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.

[0051] FIG. 3A is a block diagram showing the configuration of a device management system, illustrating a network configuration of devices and various cloud services. This device management system includes one or more devices 130 and a cloud service 301 connected to the devices 130 via a network. The network may be, for example, the Internet 300, but may also be a local area network such as an intranet, or may include both the Internet and a local area network. The cloud service 301 manages the devices 130 by managing applications that the devices 130 may execute.

[0052] The device 130 can communicate with an instruction operation cloud service 310 , a license management service 320 , and a bundle pool service 330 on a cloud service 301 via the Internet 300 .

[0053] The instruction operation cloud service 310 is a service that transmits instructions to the device 130 via an instruction operation UI and controls the configuration of the device 130.

[0054] The license management service 320 is a service that issues a license for installing a bundle in response to a request from the instruction operation cloud service 310 and the device 130 .

[0055] The bundle pool service 330 is a service that returns the actual bundle in response to a request from the device 130 .

[0056] Each of the services 310, 320, and 330 in the cloud service 301 is an example of a management device. The management device may be physically configured as one computer, or may be configured as separate computers for each of the services or functions.

[0057] 3B is a diagram showing an example of the hardware configuration of the three services 310, 320, and 330 of the cloud service 301. Since all three services have the same basic configuration, the instruction operation cloud service 310 will be used as an example for explanation.

[0058] The instruction operation cloud service 310 includes a control unit 341, a memory unit 345, an input unit 347, an output unit 348, a communication control unit 349, and a storage medium drive unit 350. The memory unit 345, the input unit 347, the output unit 348, the communication control unit 349, and the storage medium drive unit 350 are connected to the control unit 341 via a bus line 351.

[0059] The control unit 341 includes a CPU 342, a ROM 344, a RAM 343, and the like.

[0060] The CPU 342 performs various calculations / information processing and overall control of the instruction operation cloud service 310 according to a predetermined program.

[0061] The ROM 344 ​​is a read-only storage device that stores basic programs, data, parameters, and the like for operating the instruction operation cloud service 310 .

[0062] The RAM 343 is a randomly accessible storage device, and provides, for example, a working area when the CPU 342 manages instructions.

[0063] The storage unit 345 is a readable and writable storage medium configured, for example, by a large-capacity hard disk, and is provided with a program storage unit 346 and the like. The program storage unit 346 stores the OS and other programs.

[0064] The input unit 347 includes input devices such as a keyboard and a mouse. The output unit 348 includes an output device such as a display device or a printing device.

[0065] The storage medium drive unit 350 is a drive device for driving a removable storage medium to read and write data.

[0066] The communication control unit 349 is a functional unit for communicating with the device 130, other terminals, server devices, etc. via the Internet.

[0067] It should be noted that a PLD (Programmable Logic Device) such as an FPGA (Field Programmable Gate Array) may be used instead of the CPUs 101 and 342. Alternatively, an ASIC (Application Specific Integrated Circuit) may be used. Furthermore, the HDD 104 and the storage unit 345 are not limited to HDDs, and other storage devices such as flash memory, SSD (Solid State Drive), optical recording device, or magneto-optical recording device may be used.

[0068] FIG. 4 is a flowchart showing the overall process in which a user issues instructions in the instruction book 1 and the instruction book 2 from the instruction operation cloud service 310 to the device 130.

[0069] In S400 , the instruction operation cloud service 310 transmits an instruction book 1 to the device 130 .

[0070] In S401, the device 130 executes the install command described in Instruction Book 1. Here, the install command described is for installing a command bundle that holds a command generator (temporary command generator) that generates the temporary command described in Instruction Book 2. As a result, as will be described later, the command generator 600 (FIG. 6(A)) for this temporary command is additionally registered in the command generator management unit 530 (FIG. 5(C)), and hence the temporary command can be executed thereafter. Details of this process are shown in FIGS. 17 and 18.

[0071] In S402, the instruction operation cloud service 310 confirms that the processing of the instruction book 1 is complete. If the confirmation is obtained, the instruction operation cloud service 310 transmits the instruction book 2 to the device 130 in S403.

[0072] In S404, the temporary command written in the instruction book 2 is executed. Details of this process are shown in FIGS.

[0073] In S405, the device 130 executes the uninstall command described in the instruction book 2. Here, the uninstall command described therein uninstalls the command bundle installed in S401. As a result, the command generator 600 for temporary commands is deleted from the command generator management unit 530, and hence temporary commands cannot be executed thereafter. In other words, since temporary commands become unnecessary after their use, it is desirable to disable the command generator 600 for temporary commands from the viewpoints of security and resources. Details of this processing are shown in FIGS. 23 and 24. In S406, this process ends.

[0074] 5A is a block diagram showing the module configuration of the bundle management service 214. The bundle management service 214 includes a bundle management unit 500, a bundle installation unit 501, a bundle start unit 502, a bundle stop unit 503, and a bundle uninstall unit 504.

[0075] The bundle management unit 500 is a module that manages installed bundles. Each bundle has a bundle ID that uniquely identifies the bundle. The bundle management unit 500 manages the bundle so that various information about the bundle can be obtained by specifying the bundle ID.

[0076] The bundle installation unit 501 is a module that handles bundle installation processing. The bundle installation unit 501 first receives a file (a jar file in the case of JAVA) that is the actual encrypted bundle and a license for decrypting it, and decrypts the bundle using the key information attached to the license. The decrypted bundle is installed and managed by the bundle management unit 500.

[0077] The bundle start unit 502 is a module that is responsible for changing the state of an installed bundle from a state in which the use of the bundle is stopped to a state in which the use of the bundle is started. A bundle that has started to be used is managed by the bundle management unit 500 as being in the started state.

[0078] The bundle stop unit 503 is a module responsible for changing the state of an installed bundle from a started state to a stopped state. A stopped bundle is managed by the bundle management unit 500 as being in a stopped state. The stopped state includes the meaning of a state in which use of the bundle is restricted. The state in which use of the bundle is restricted means a state in which the bundle is stopped, or a state in which the bundle has been uninstalled after the stop processing.

[0079] The bundle uninstallation unit 504 is a module that is responsible for the process of uninstalling an installed bundle. An uninstalled bundle is no longer managed by the bundle management unit 500.

[0080] 5(B) is a block diagram showing the module configuration of the instruction execution service 216. The instruction execution service 216 has an instruction analysis unit 512, an instruction notification receiving unit 510, an instruction acquisition unit 511, a command sequence management unit 520, and a command generation management unit 530.

[0081] The instruction book analysis unit 512 is a module that interprets the commands contained in each command sequence written in the received instruction book.

[0082] The instruction notification receiving unit 510 is a module that receives an instruction from the polling service 217. The instruction notification receiving unit 510 does nothing if there is no instruction.

[0083] The instruction book acquisition unit 511 is a module that acquires an instruction book from the instruction operation cloud service 310 when the instruction notification receiving unit 510 receives a notice that an instruction has been issued.

[0084] The command generation unit management unit 530 holds and manages a command generation unit list 531 having one or more command generation units 600 (FIG. 6) in list form. A command generation unit 600 is prepared in advance for each command by the command generation unit management unit 530 in correspondence with each command. The command generation unit 600 will be described with reference to FIGS. 6 and 8. The command generation unit management unit 530 controls available commands using the command generation unit list 531. That is, the commands (commands (command objects) generated by the command generation unit) corresponding to the command generation unit 600 held in the command generation unit list 531 are available commands at that time. The command generation unit management unit 530 is an example of a second management unit that manages the command generation unit list mainly in cooperation with the CPU 101.

[0085] The instruction book analysis unit 512 includes a command script generation unit 513 and a command sequence object generation unit 515 .

[0086] The command script generation unit 513 generates a command script 630 (FIG. 6). Specifically, the command script generation unit 513 first identifies a command generation unit 600 from the command generation unit list 531 using the command name (command type) of each command written in the instruction as a key.

[0087] The identified command generator 600 reads the command parameters and generates a command object 610 (FIG. 6) associated with this command generator 600. As will be described later, the generated command object 610 is set in a command script 630, and the command script 630 is added to the command script list 514.

[0088] There is a one-to-one relationship between the command script 630 and the command object 610. Therefore, the command script list 514 is made up of one or more command scripts 630, and therefore, is made up of one or more command objects 610 corresponding to them.

[0089] The command script list 514 is a class that stores, in list format, the command script 630 generated for each command. At this time, the execution time 641 read from the instruction is held.

[0090] A command sequence object generation unit 515 generates a command sequence object from the generated command script list 514 and adds it to a command sequence object list 521 managed by a command sequence management unit 520 .

[0091] The command sequence management unit 520 holds a command sequence object list 521 and manages the entire instruction book. When reading an instruction book, the command sequence management unit 520 uses an execution timer 523 to set a specified time for each command sequence object 650. When the set execution timer 523 is fired (when the current time reaches the set time), the command sequence execution unit 522 executes the corresponding command sequence object 650 linked to the timer.

[0092] The command sequence management unit 520, particularly the command sequence execution unit, is an example of an execution means that executes a command sequence (command sequence object 650) primarily in cooperation with the CPU 101. That is, the execution means executes commands and temporary commands generated by the command generation unit and temporary command generation unit, respectively, managed in the command generation unit list 531, as a series of processes related to a command bundle, based on instructions in one or more instruction documents. The series of processes includes, for example, processes such as downloading, installing, starting, and restricting use of a bundle. As described above, application usage restriction processing refers to both stopping the application, or stopping the application and uninstalling it after the stopping process.

[0093] FIG. 5C is a block diagram showing an example of the command generation unit list 531 of the command generation unit manager 530. As shown in FIG. The command generation unit list 531 holds a list of command generation units for each command. In this example, command generation unit 1 (532) indicates the command generation unit for a command called DownloadBundle. Furthermore, command generation unit 2 (533) indicates the command generation unit for a command called InstallBundle. Furthermore, command generation unit 3 (534) indicates the command generation unit for a command called UninstallBundle. A command generation unit is added to the command generation unit list 531 from an external bundle via a command generation unit addition I / F (535). Conversely, a command generation unit is deleted from the command generation unit list 531 via a command generation unit deletion I / F 536.

[0094] 6A is a block diagram showing the relationship between various command classes used in reading an instruction sheet and executing commands. First, the command script 630 and command script list 514 used in the reading of an instruction sheet will be described.

[0095] The command script 630 is a class that collectively stores the contents of each command read from the instruction sheet. The command script 630 reads the command name written in the command when the instruction is executed from the downloaded instruction, and stores it in command name 631. Similarly, the command script 630 stores the content read as the command parameters in read parameters 632. The read parameters are passed to the command generation unit 600, and a command object 610 is generated.

[0096] The command script list 514 is a class that stores, in list format, the command script 630 generated for each command. At this time, the execution time 641 read from the instruction is held.

[0097] From the generated command script list 514, a command object 610 is generated via the command generation unit 600 as described above. That is, a command to be executed is generated by the command generation unit 600. The command to be executed is a command object and a command action 620 generated thereby.

[0098] The command generation unit 600 holds a command name 601 and a parameter reading unit 602. The command name 601 is used to identify the command generation unit 600 based on a command name 631 of a command script 630. The parameter reading unit 602 reads parameters from a read parameter 632 of the command script. The command generation unit 600 generates a command object 610 based on the read parameters.

[0099] There is a one-to-one relationship between the command generator 600 and the command object 610. As described above, there is a one-to-one relationship between the command generator 600 and the command object 610. Therefore, there is a one-to-one-to-one relationship between the command generator 600, the command object 610, and the command script 630.

[0100] The command object 610 holds the parameters read by the command generation unit 600 as parameters 611. When preparing to execute a command, one command object 610 generates one or more command actions 620 from the parameters 611. The generated command actions 620 are held as a command action list. The command objects 610 generated by the command generation unit 600 are managed by a list held by the command sequence object 650.

[0101] A specific example of the class relationships described above is shown in Figure 6(B), which is a block diagram showing the relationship between the command script list 514, command script 630, and command object 610.

[0102] The command script list 514 holds a list of command script 1 (660) and command script 2 (662) as command scripts 630 generated for each command when the instruction book is read.

[0103] Furthermore, command script 1 (660) holds command object 1 (661) generated by command generator 600 corresponding to the command. Similarly, command script 2 (662) holds command object 2 (663). As mentioned above, as shown in Figure 6(B), the relationship between command script 630 and command object 610 is one-to-one.

[0104] Returning to the explanation of Figure 6(A), as described above, the command action 620 is generated by the command object 610 based on the parameters 611 held by the command object 610 when preparing to execute the command. At this time, the parameters 611 are passed to and held by the command action 620 as parameters 621. When executing the command, the command action 620 uses these parameters 621 to execute the command logic 622 for each command.

[0105] The command sequence object 650 has a one-to-one relationship with the command script list 514. Therefore, the command sequence object 650 holds, in a list, the command objects 610 passed from one or more command scripts 630 held by the command script list 514. The command objects 610 managed in this list are used when executing a command by the command action 620. The command sequence object 650 also stores the time passed from the execution time 641 as the execution time 651.

[0106] One command sequence object list 521 stores, in list form, one or more generated command sequence objects 650. Therefore, the command sequence management unit 520 can simultaneously manage multiple command sequences (multiple command sequence objects) held by multiple instruction documents.

[0107] A specific example of the class relationships described above is shown in Figure 7A, which is a block diagram showing the relationship between the command sequence object list 521, the command sequence object 650, and the command object 610.

[0108] Here, it is assumed that one command sequence is written in each of the instruction documents (for example, two instruction documents 1 and 2 described below), and after these instruction documents are read, this command sequence object list 521 is generated. For example, it is assumed that the first command sequence contains two commands, and the second command sequence contains one command.

[0109] The command sequence object list 521 holds a list of command sequence object 1 (670) and command sequence object 2 (676) as command sequence objects 650. Command sequence object 1 (670) is generated from the first command sequence. Command sequence object 2 (676) is generated from the second command sequence.

[0110] Command sequence object 1 (670) holds a list (command script list) of command object 1 (671) and command object 2 (673) as command objects 610. Command object 1 (671) then generates command action 1 (672) as a command action 620 when preparing to execute a command. Similarly, command object 2 (673) generates command action 2-1 (674) and command action 2-2 (675).

[0111] Similarly, command sequence object 2 (676) holds command object 3 (677) in a list as a command object 610. Command object 3 (677) generates command action 3 (678) when preparing to execute the command.

[0112] 7B is a block diagram showing the relationship between a command generation unit 600, a command object 610, and a command action 620 in a bundle download command, which is a basic command. A specific example of the bundle download command is shown below.

[0113] In the bundle download class 680, the command generation unit 600 corresponds to DownloadBundleCmdBuilder (681), and the command object 610 corresponds to DownloadBundleCmd (684). Furthermore, the command action 620 corresponds to DownloadBundleAction (686). In DownloadBundleCmdBuilder (681), DownloadBundle (682) is defined as the command name 601. Furthermore, the parameter reading unit 602 reads the download ID (downloadId) / bundle ID (appId) 683.

[0114] The DownloadBundleCmd (684) holds the read download ID (downloadId) / bundle ID (appId) 683 parameters as parameters 685. Furthermore, in the preparation stage for command execution, a DownloadBundleAction (686) is generated based on these parameters 685.

[0115] The DownloadBundleAction (686) holds the specified download ID (downloadId) / bundle ID (appId) (687) as parameters, and executes the bundle download process 688 as the command logic 622 using these parameters (687).

[0116] In this way, a command generator 600, a command object 610, and a command action 620 are prepared for each command.

[0117] FIG. 8A is a block diagram showing the module configuration of the instruction operation cloud service 310. As shown in FIG. The device information acquisition unit 700 receives currently installed bundle information sent from the device information transmission service 215 and stores it as bundle information 708. Similarly, it also stores command list information sent from the device information transmission service 215 as command list information 709. This allows the instruction operation cloud service 310 to know what bundles and commands the device 130 currently has.

[0118] The instruction operation UI unit 701 is a UI for specifying an instruction to be sent to the device 130. This UI can instruct bundle installation, bundle uninstallation, or firmware update. Specific examples are shown in Figures 9 and 10, which will be referenced later.

[0119] The instruction content storage unit 702 is a module that stores the content of an instruction given by the user in the instruction operation UI unit 701. Furthermore, in response to an inquiry from the polling service 217 as to whether or not there is an instruction, the instruction content storage unit 702 replies that there is an instruction if the instruction is stored. On the other hand, if the instruction content storage unit 702 does not store the instruction, it replies that there is no instruction. Specific examples of the instruction content are shown in Figures 11(A) and 11(B) to be referred to later.

[0120] The instruction acquisition receiving unit 703 is a module that receives an instruction acquisition notification (a notification requesting the instruction operation cloud service 310 that the device acquire an instruction) from the instruction execution service 216. When the instruction is received, the instruction creation unit 703 notifies the instruction creation unit 704 of instruction generation.

[0121] Upon receiving the notification from the instruction acquisition receiving unit 703, the instruction creation unit 704 generates an instruction based on the content stored in the instruction content storage unit 702. For example, if the content stored in the instruction content storage unit 702 is a bundle installation, the license acquisition unit 706 goes to the license management service 320 to acquire a license access number (LAN). The license access number is a number used to acquire the license associated with it.

[0122] The instruction creation unit 704 generates an instruction that describes bundle download and installation commands based on the acquired license access number. When the instruction creation unit 704 has generated the instruction, it notifies the instruction transmission unit 707 of the instruction.

[0123] Upon receiving the instruction, the instruction sending unit 707 sends the instruction to the instruction execution service 216 .

[0124] For example, the instruction operation UI unit 701 to the instruction book transmission unit 707 cooperate with the control unit 341 to transmit to the device 130 instructions for a series of processes including application installation processing.

[0125] FIG. 8B is a block diagram showing the module configuration of the license management service 320. The license access number acquisition notification receiving unit 710 is a module that receives a license access number acquisition notification from the license acquisition unit 706. Upon receiving the notification, the license access number acquisition notification receiving unit 710 requests a license to be issued from a license management unit 711. Upon receiving the request, the license management unit 711 requests a license issuance unit 712 to issue a license for the requested bundle.

[0126] Upon receiving the request, the license issuing unit 712 issues a license. The license contains information such as key information for encrypting the bundle, a bundle ID for identifying the bundle, and information on the period during which the bundle can be used. The license management unit 711 issues a license access number for the issued license. The license management unit 711 manages this license access number and the license in association with each other. The license access number sending unit 713 sends the license access number to the license acquisition unit 706.

[0127] The license acquisition notification receiving unit 714 receives a license acquisition notification together with the license access number from the instruction execution service 216. Upon receiving the notification, the license acquisition notification receiving unit 714 passes the received license access number to the license management unit 711, and acquires the license linked to the license access number. The acquired license is notified to the license sending unit 715. Upon being notified of the license, the license sending unit 715 sends the license to the instruction execution service 216.

[0128] FIG. 8C is a block diagram showing the module configuration of the bundle pool service 330. The bundle management unit 721 is a module that manages the entities of bundles. The entities of bundles are stored by a bundle pool 722. The bundle management unit 721 manages the bundle IDs by linking them with the entities of the bundles. The bundle management unit 721 is an example of a first management means that manages applications (bundles).

[0129] The bundle acquisition notification receiving unit 720 receives a bundle acquisition notification together with the bundle ID from the instruction execution service 216. Upon receiving the notification, the bundle acquisition notification receiving unit 720 passes the received bundle ID to the bundle management unit 721, and acquires the bundle linked to the bundle ID. The acquired bundle is notified to the bundle sending unit 723. Upon being notified of the bundle, the bundle sending unit 723 transmits the bundle to the instruction execution service 216.

[0130] Next, the UI for creating instruction book 1 and instruction book 2 will be described. Instruction book 1 has an instruction to install a repair bundle, which is a command bundle having a command generation unit 600 for "get setting information list." Instruction book 2 has an instruction to uninstall the "get setting information list" command and the repair bundle. Figure 9(A) is a diagram showing a command addition UI 800 in the instruction operation cloud service 310.

[0131] When the user selects a command from the command selection area 803 and presses the add command button 801, the specified command specification UI is displayed. In this case, bundle installation is selected, so an operation UI 810a for instructing bundle installation, shown in FIG. 9(B), is displayed as the command specification UI. When an instruction is confirmed in each command specification UI, the command thus confirmed is displayed in the specified command list display area 804. Here, it is assumed that the instruction confirmation button 815 of the operation UI 810a for instructing bundle installation is pressed, and a bundle installation instruction is displayed in the specified command list display area 804. In this state, when the user presses the send instruction button 802, the instruction content of the specified command (see FIG. 11(A)) is saved in the instruction content storage unit 702. This becomes the instruction content of the instruction book 1.

[0132] FIG. 9B is a diagram showing UI operations for issuing a bundle installation instruction in the instruction operation cloud service 310. As shown in FIG. In this operation UI 810a, an instruction type 811 is a button for specifying the type of instruction, such as bundle installation, firmware update, etc. Here, "bundle installation" is specified to instruct bundle installation.

[0133] When "bundle install" is specified as the instruction type 811, the user specifies the bundle 812 to be installed that corresponds to the instruction type 811. In this case, a "repair bundle" is specified.

[0134] The start button check box 813 is a button for specifying whether or not to start the installed bundle. If checked, the bundle will continue to run until it starts after installation is complete.

[0135] The instruction execution time 814 is an area for specifying the time to execute this instruction. Time or immediate execution can be selected. In the case of immediate execution, the instruction is executed immediately after the instruction execution service 216 receives the instruction.

[0136] When all the designations are completed and the instruction decision button 815 is pressed, the instruction content is decided.

[0137] FIG. 11A shows an instruction content list stored in the instruction content storage unit 702. As shown in FIG. 9B, assume that "Immediate time," "Repair bundle," and "Start check" are specified. In this case, the contents held by No. (900).1 (910) are that the execution time (901) is immediate execution (911), the command type (902) is bundle install (912), and these respective values ​​are held. In addition, the bundle ID (903) is 9876543 (913), which is the bundle ID of the repair bundle, and the status change (904) is started (914), and these respective values ​​are held.

[0138] Next, we will describe the UI operations for generating the instruction book 2. Fig. 9(C) is a diagram showing the operation UI for specifying the "get setting information list" command in the instruction operation cloud service 310. This operation UI 810b is displayed when the command addition button 801 is pressed with "get setting information list" selected in Fig. 9(A).

[0139] In the instruction type 820, "get setting information list" is selected to instruct to get a list of setting information. In the instruction execution time 814, immediate execution is selected. Note that there are no parameters to be specified for "Get setting information list." When all the designations are completed and the instruction decision button 815 is pressed, the instruction content is decided.

[0140] Fig. 10(A) is a diagram showing an operation UI for instructing bundle uninstallation in the instruction operation cloud service 310. This operation UI 810c is displayed when the command addition button 801 is pressed with bundle uninstallation selected in Fig. 9(A).

[0141] In the instruction type 830, "Bundle Uninstall Command" is selected to instruct uninstallation of a setting bundle. In bundle 831, the repair bundle that is to be uninstalled is selected. In the instruction execution time 814, immediate execution is selected. When all the designations are completed and the instruction decision button 815 is pressed, the instruction content is decided.

[0142] 10B is a diagram showing a command addition UI in the instruction operation cloud service 310, similar to FIG. 9A. In this command addition UI 840, the commands "Get configuration information list" and "Uninstall bundle" that were specified in Figures 9(C) and 10(A) are displayed in the specified command list 841. When the instruction send button 802 is pressed, the specified instruction (see Figure 11(B)) is saved in the instruction content storage unit 702. This becomes the instruction content of the instruction book 2.

[0143] FIG. 11B shows an instruction content list stored in the instruction content storage unit 702. As shown in FIG. Suppose that an immediate time is specified in the operation UI for obtaining a list of setting information in Fig. 9(C). In this case, the contents stored in No. (900).1 (920) are the execution time (901) as immediate execution (921), the command type (902) as obtain list of setting information (922), and the respective values ​​are stored.

[0144] 10(A), assume that an immediate time and a repair bundle are specified. In this case, the values ​​No. (900).2 (930) are stored, with the execution time (901) set to immediate execution (931) and the command type (902) set to bundle uninstallation (932). The bundle ID (903) is also stored as 9876543 (933), which is the bundle ID of the repair bundle.

[0145] Next, instruction sheet 1 and instruction sheet 2 will be described as specific examples of instruction sheets generated by the instruction sheet creation unit 704. These instruction sheets are configured in, for example, JSON format, but the present disclosure is not limited to this format and may be in other formats such as XML format.

[0146] First, we will explain Instruction 1. Instruction 1 is shown below. This is an instruction command corresponding to the content of No. 1 (910) in Figure 11(A). Instruction 1 is an example of first instruction information.

[0147] <Instructions 1> 1. { 2. "script" : { 3. "instructionid" : "00001", 4. "commandSequence" : [ 5. { 6. "commandSequenceId" : "001", 7. "time" : "Immediate", 8. "command" : [ 9. { 10. "commandId" : 1, 11. "name" : "DownloadBundle", 12. "parameter" : { 13. "downloadId" : "1234567-89", 14. "appId" : "9876543" 15.} 16.}, 17. 18. "commandId" : 2, 19. "name" : "InstallBundle", 20. "parameter" : { 21. "appId" : "9876543", 22. "lan" : "LAN1", 23. "start" : "true" twenty four.} twenty five.} 26.] 27.} 28.] 29.} 30.}

[0148] The second line, Script, shows the entire instruction manual. The instruction ID on the third line indicates the instruction number, and a unique number 00001 is assigned to each instruction. The commandSequence on the fourth line indicates the arrangement of the command sequences in Instruction 1. In this example of Instruction 1, one command sequence is described (the same applies to Instruction 2), but one instruction may have multiple command sequences. A command sequence is made up of a command array consisting of multiple commands (two commands in the example of Instruction 1). "Reading a command sequence" means reading each command in this command array in order.

[0149] The commandSequenceId on line 6 is assigned a unique number for each command sequence. Here, the value 001 is specified. The Time on the seventh line is the instruction execution time, indicating the time when the instruction is to be executed. However, if "Immediate" is specified, it means immediate execution.

[0150] The command on line 8 indicates the command sequence. Here, the command sequence for bundle installation is written as two commands: a command to download the bundle, and a command to actually install the downloaded bundle.

[0151] The first command shown on lines 9 to 16 is a DownloadBundle command that indicates a bundle download instruction. A unique number is assigned to each command in commandId. Here, 1 is specified. name indicates the command name. Here, "DownloadBundle" is specified. In parameter, 1234567-89 is specified as the download number (downloadId) and 9876543 is specified as the bundle ID (appid). When this command is executed, the bundle with the specified bundle ID is downloaded from the bundle pool service 330.

[0152] The second command, shown on lines 17 to 25, is an InstallBundle command that indicates a bundle installation. A unique number 2 is assigned to each command as commandId. "InstallBundle", indicating the command name, is specified as name. The license access number (lan) is specified as LAN1 as parameter, which is the license information required for bundle installation. The license associated with this LAN1 is obtained from the license management service 320. 9876543, indicating the bundle ID (appid), is also specified. When this command is executed, the bundle previously downloaded with the DownloadBundle command is identified, and the bundle is installed using the obtained license.

[0153] The start option, which specifies whether or not to start the bundle upon installation, is set to true. If true is specified, the installed bundle is started via the bundle start unit 502.

[0154] Similarly, we will explain Instruction 2. Instruction 2 is shown below. This is an instruction command corresponding to the contents of No. 1 (920) and No. 2 (930) in Figure 11 (B). Instruction 2 is an example of second instruction information.

[0155] <Instructions 2> 1. { 2. "script": { 3. "instructionid": "00002", 4. "commandSequence": [ 5. { 6. "commandSequenceId": "001", 7. "time": "Immediate", 8. "command": [ 9. { 10. "commandId": 1, 11. "name": "getDeviceSettings" 12.}, 13. 14. "commandId": 2, 15. "name": "UninstallBundle", 16. "parameter": { 17. "appId": "9876543" 18.} 19.} 20.] twenty one.} twenty two. ] twenty three.} twenty four.}

[0156] The second line, Script, shows the entire instruction manual. The instruction ID on the third line indicates the instruction number, and a unique number 00002 is assigned to each instruction. The commandSequence on the fourth line indicates the command sequence of Instruction 2. The commandSequenceId on the sixth line is assigned a unique number, 001, for each command sequence. The Time on the seventh line is the instruction execution time, indicating the time when the instruction is to be executed. Here, "Immediate" is specified, which means immediate execution.

[0157] The command on line 8 indicates the command sequence. Here, the command sequence for uninstalling the bundle is described as two commands: a command to obtain a list of configuration information, and a command to uninstall the actual bundle.

[0158] The command on lines 9 to 12 is a getDeviceSettings command that instructs the acquisition of device setting information. A unique number 1 is assigned to commandId for each command. "getDeviceSettings", which indicates the command name, is specified for name. Parameters are not required for this command, so they are not included. When this command is executed, current device information is acquired and returned to the instruction operation cloud service 310.

[0159] The command on lines 13 to 19 is an UninstallBundle command that instructs to uninstall a bundle. A unique number 2 is assigned to each command as commandId. "UninstallBundle", which indicates the command name, is specified as name. In this case, 9876543, which indicates the bundle ID (appid), is specified as parameter. When this command is executed, the bundle with the specified bundle ID is uninstalled via the bundle uninstallation unit 504.

[0160] In the above example, the getDeviceSettings command is described in Instruction Book 2. However, depending on the format of the instruction book, the getDeviceSettings command may be described in Instruction Book 1. Alternatively, Instruction Books 1 and 2 may be combined into one instruction book. Alternatively, one instruction book may be created for each command (command ID).

[0161] FIG. 12 is a block diagram showing the relationship between a command generation unit 600, a command object 610, and a command action 620 of the setting information list acquisition command held by the repair bundle.

[0162] This repair bundle 1000 is a temporary command (for example, a "get settings information list" command). To handle this command, the repair bundle 1000 holds a getDeviceSettingsCmdBuilder (1001) as the command generation unit 600. The repair bundle 1000 also holds a getDeviceSettingsCmd (1004) as the command object 610 and a getDeviceSettingsAction (1006) as the command action 620.

[0163] In the getDeviceSettingsCmdBuilder (1001), getDeviceSettings (1002) is defined as the command name 601. The parameter reading unit 602 does nothing because it does not have any parameters (1003). The getDeviceSettingsCmd (1004) does not have any parameters (1005). The getDeviceSettingsCmd (1004) also generates a getDeviceSettingsAction (1006) in the command execution preparation stage. The getDeviceSettingsAction (1006) does not have any parameters (1007). The getDeviceSettingsAction (1006) also executes the setting information list acquisition processing logic 1008 as the command logic 622.

[0164] In addition to this getDeviceSettings command, the command bundle also prepares a command generator 600, a command object 610, and a command action 620. If the command bundle registers (adds) its own command generator 600 to the command generator manager 530 during its own startup process (application startup process), it will then be able to execute commands. On the other hand, the command bundle deletes the registered command generator 600 from the command generator list 531 during its own shutdown processing.

[0165] 13 to 16, the process from when the job order acquisition unit 511 acquires the job order until the job order analysis unit 512 generates the read command sequence as a command sequence object capable of executing commands will be described.

[0166] FIG. 13 is a flowchart showing the analysis process of the instruction sheet by the instruction sheet analysis unit 512.

[0167] In S1100, the instruction analysis process starts. In S1101, a loop process is started for the number of commands that make up the command sequence written in the instruction. In the examples of Instructions 1 and 2, two commands are written in each command sequence, so one instruction is looped twice.

[0168] In S1102, the instruction book analysis unit 512 reads the instruction book and generates a command script list 514. The process of generating this command script list 514 is shown in FIG.

[0169] In S1103, the instruction book analysis unit 512 uses the command script list 514 generated in S1102 to generate a command sequence object 650. The process of generating this command sequence object 650 is shown in FIG.

[0170] In S1104, the timer of the execution timer 523 is set to the time specified by the execution time 651 held by the command sequence object 650 created in S1103. The execution timer 523 requests the command sequence execution unit 522 to execute the command sequence object 650 at the set time. The execution process of the requested command sequence execution unit 522 is shown in FIGS. 20 to 22.

[0171] S1105 is the end of the loop processing of the command sequence. When all command sequences written in the instruction book have been read, the instruction book analysis process ends in S1106.

[0172] FIG. 14 is a flowchart showing the command script list generation process (S1102) by the instruction book analysis unit 512 (the command script generation unit 513 thereof).

[0173] In S1200, the command script list generation process starts. In step S1201, the command sequence written in the instruction book is read and a command script list is generated. Details of this reading process are shown in FIG.

[0174] In S1202, a loop process is started for the number of command scripts included in the command script list 514 generated in S1201.

[0175] In S1203, a loop process is started for the number of command generating units 600 included in the command generating unit list 531 held by the command generating unit management unit 530.

[0176] In S1204, the command name 631 (the command name read from the instruction) held by the command script 630 is compared with the command name 601 (the command name previously associated with the command generation unit 600) defined by the command generation unit 600. If they match, the process proceeds to S1205, and if they do not match, the process proceeds to S1207.

[0177] S1207 is the end of the loop for the command generation unit list 531. If the process has looped for all command generation unit lists 531, the process proceeds to S1208. If the process has looped for all command generation units 600 in S1207, this means that there is no command generation unit that corresponds to the command written in the instruction book. In this case, the command object 610 is not set in the command script 630. This means that this command cannot be executed. In this embodiment, even if the instruction book execution service 216 attempts to execute instruction book 2 without executing instruction book 1, the command of the repair bundle 1000 (FIG. 12) in instruction book 2 cannot be executed. If instruction book 1 is not executed, the bundle installation process according to instruction book 1 is not executed, and therefore the command generator 1700 (FIG. 19) corresponding to the getDeviceSettings command of the repair bundle 1000 is not added. In this case, the instruction book analysis unit 512 analyzes instruction books 1 and 2, and the command generator list 531 managed by the command generator management unit 530 after the analysis is in the state shown in FIG. 5(C). In other words, this is a state in which the command generator 1700 corresponding to the getDeviceSettings command does not exist. The commands corresponding to the command generators 1 to 3 shown in FIG. 5(C) are, for example, basic commands 2410 described in the second embodiment, which are different command types from the temporary command 2440. The basic commands 2410 are commands that the instruction book execution service 216 previously stores.

[0178] On the other hand, when instruction book 2 is executed after instruction book 1 is executed, the command generator list 531 is in the state shown in Fig. 19. That is, since a command generator 1700 corresponding to the getDeviceSettings command exists, the instruction book execution service 216 can execute this command. This will be described in detail later with reference to Fig. 18.

[0179] In S1205, the parameter reading unit 602 of the command generation unit 600 identified in S1204 reads parameters from the read parameters 632 of the command script 630, and generates a command object 610. The parameters read by the parameter reading unit 602 are set as parameters 611 of the command object 610.

[0180] In S1206, the command object 610 generated in S1205 is set in the command script 630.

[0181] S1208 is the end of the loop processing of the command script list 514. When the loop processing for generating all the command scripts 630 has been completed, the command script list generation processing ends in S1209. In this way, the command script list 514 shown in Fig. 6(B) is generated.

[0182] FIG. 15 is a flowchart showing the command sequence reading process (S1201) by the instruction book analysis unit 512.

[0183] In S1300, the command sequence read process begins. In S1301, the instruction book analysis unit 512 reads the execution time of the command sequence and generates the command script list 514. The read execution time is set in the execution time 641.

[0184] In S1302, a loop process is started for the number of commands constituting the command sequence written in the instruction book.

[0185] In S1303, a command script 630 is generated based on the command name and parameters of the read command. The read command name is set in command name 631, and the parameters are set in read parameters 632.

[0186] In S1304, the command script 630 generated in S1303 is added to the command script list 514 generated in S1201.

[0187] S1305 is the end of the loop processing of the command sequence. When all commands have been read, processing ends in S1306. As described above, a command script 630 is generated for each command written in the command sequence, and one or more command script lists 514 containing read information are completed.

[0188] FIG. 16 is a flowchart showing the command sequence object generation process (S1103) performed by the job order analysis unit 512.

[0189] In S1400, the command sequence object generation process starts. In S1401, a command sequence object 650 is created.

[0190] In S1402, the execution time 641 held by the command script list 514 is set as the execution time 651 of the command sequence object 650 created in S1401.

[0191] In S1403, a loop process is started for each command script included in the command script list 514.

[0192] In S1404, the command object 610 held by the command script 630 is set in the command sequence object 650 created in S1401. S1405 is the end of the loop processing of the command script list 514.

[0193] In S1406, the command sequence object 650 created in S1401 is added to the command sequence object list 521.

[0194] In S1407, the command sequence object generation process ends. As a result of the above, the command sequence object list 521 shown in Fig. 7(A) is generated.

[0195] Next, the flow up to when the command bundle adds the command generation unit 600 to the command generation unit management unit 530 when the command bundle itself is installed is shown. Fig. 17 is a flowchart showing the execution processing of the bundle install command by the command sequence execution unit 522. This processing corresponds to the processing when the InstallBundle command is executed according to the instruction manual 1.

[0196] In S1500, the bundle install command execution process starts. In S1501, the bundle installation process is executed via the bundle installation unit 501 of the bundle management service 214.

[0197] In S1502, the bundle installation unit 501 checks whether there is a start option in the installation command. If there is no start option, the bundle installation unit 501 does nothing in S1504 and ends the process.

[0198] If there is a start option, in S1503, bundle start processing (application start processing) is executed via the bundle start unit 502 of the bundle management service 214. The bundle start unit 502 requests the bundle to perform bundle start processing as start processing. This start processing on the bundle side is shown in FIG. When the bundle start process is completed, the bundle install command execution process ends.

[0199] FIG. 18 is a flowchart showing the bundling start process (S1503) by the command bundle.

[0200] In S1600, the bundle start process begins. In S1601, the command generation unit 1001 (FIG. 12) held by the command generation unit management unit 530 is added via the command generation unit addition I / F 535 of the command generation unit management unit 530. The state of the command generation unit management unit 530 at this time is shown in FIG. 19. FIG. 19 is a block diagram showing the command generation unit list 531 of the command generation unit management unit 530.

[0201] Command generation unit 1 (532) to command generation unit 3 (534) have the same meaning as those shown in Fig. 5(C). Command generation unit 4 (1700) is added via command generation unit addition I / F 535 in S1601 of Fig. 18.

[0202] In S1602, the bundle start logic process is executed, and in S1603, the bundle start process ends.

[0203] 20 to 22, a process in which command sequence execution unit 522 executes each command object 610 at a time specified in the job order will be described. As described above, each command object 610 is held by a command sequence object 650 managed by command sequence object list 521 generated in FIGS. 13 to 16.

[0204] FIG. 20 is a flowchart showing the processing up to command execution by the command sequence executing section 522.

[0205] In S1800, when the execution timer 523 is fired at the specified time, the execution process of the command sequence object 650 linked to the timer in the command sequence object list 521 is started.

[0206] In S1801, a process for preparing to execute the command sequence object 650 is performed. This preparation process is shown in FIG.

[0207] In S1802, execution processing is performed for the command sequence object 650. This preparation processing is shown in FIG.

[0208] In S1803, the executed command sequence object 650 is deleted from the command sequence object list 521. In S1804, the execution process of the command sequence object 650 ends.

[0209] FIG. 21 is a flowchart showing command execution preparation processing by the command sequence executing unit.

[0210] In S1900, command sequence execution preparation processing begins. In S1901, the command objects 610 constituting the command sequence object 650 start loop processing for the number of command objects.

[0211] In S1902, a command action 620 held by the command object 610 is generated.

[0212] In S1903, the command action 620 is registered in the command action list that the command object 610 holds in memory.

[0213] S1904 is the end of the loop processing of the command sequence object 650. When the loop processing of all command objects is completed, in S1905 the command sequence execution preparation processing ends.

[0214] FIG. 22 is a flowchart showing the command execution process in the command sequence execution unit.

[0215] In S2000, the command sequence execution process starts. In S2001, a loop process is started for the number of command objects 610 that make up the command sequence object 650.

[0216] In S2002, a loop process is started for the number of command actions 620 included in the command action list in the memory generated in S1903 and held by the command object 610.

[0217] In S2003, the command action 620 executes the processing of the command logic 622.

[0218] S2004 is the end of the loop processing of the command action list. When the loop processing of all command actions is completed, the processing proceeds to S2005.

[0219] S2005 is the end of the loop processing of the command sequence object 650. When the loop for all command objects is completed, in S2006 the command sequence execution processing ends.

[0220] Next, a process for deleting the command generator 600 from the command generator manager 530 when uninstalling a command bundle will be described.

[0221] 23 is a flowchart showing bundle uninstall command processing by the command sequence execution unit 522. This processing corresponds to the processing when the UninstallBundle command is executed based on the instruction book 2. Although not shown in FIG. 23, a temporary command, that is, in this embodiment, the getDeviceSettings command, is executed to obtain a list of device setting information and send it to the instruction operation cloud service 310.

[0222] In S2100, the bundle uninstall command process starts. In S2101, bundle stop processing is executed via the bundle stop unit 503 of the bundle management service 214. The bundle stop unit 503 requests the bundle to perform bundle stop processing as stop processing. This stop processing on the bundle side is shown in FIG.

[0223] In S2102, the bundle uninstallation process is executed via the bundle uninstallation unit 504 of the bundle management service 214.

[0224] When the bundle uninstallation process is completed, in S2103, the bundle uninstallation command process ends.

[0225] FIG. 24 is a flowchart showing the bundle stop processing (S2101) by the command bundle.

[0226] In S2200, the bundle stop process starts. In S2201, the command bundle deletes the command generator 1001 held by itself via the command generator deletion I / F 536 of the command generator management unit 530. After the deletion, the command generator list 531 returns to the state shown in FIG.

[0227] In S2202, the bundling stop logic process is executed, and in S2203, the bundling stop process ends.

[0228] 23, the command generation unit 600 is deleted from the command generation unit management unit 530 by the command bundle stop processing, and then the uninstall processing is performed. However, instead of uninstalling as described above, the command sequence execution unit 522 can also delete the command generation unit 600 from the command generation unit management unit 530 by simply stopping the command bundle. If the command sequence execution unit 522 simply stops the command bundle, by executing the bundle start processing again, the command generation unit 600 is registered again according to the flow in FIG. 18, and the state can be restored to one in which commands can be executed.

[0229] As described above, the method described in the first embodiment can provide the following specific effects.

[0230] In a case where a temporary command that does not exist in the device 130 beforehand needs to be executed, a command bundle containing the temporary command generator 600 is installed in accordance with instruction 1, thereby adding a command generator for the temporary command. Then, instruction for the temporary command is issued in accordance with instruction 2, thereby enabling the temporary command to be executed. As described above, instruction 1 and instruction 2 may be configured as a single instruction. After the command is executed, the command bundle is uninstalled, thereby deleting the command generator for the temporary command, and the command can no longer be executed. As described above, this embodiment allows temporary commands to be easily added and deleted without requiring firmware updates, thereby improving convenience. Furthermore, since firmware updates are not required and there is no need to prepare firmware for each combination of commands, low-cost and efficient device management can be achieved.

[0231] This mechanism also provides the following benefits in the remote repair use case: By sending a command bundle later (when attempting to solve a problem that only occurs with a specific user) that contains commands to solve that problem, it becomes possible to deal with that problem remotely. Furthermore, beyond the remote repair use case, when a new service that requires remote instructions is launched, it becomes possible to support the new service by sending a command bundle containing the complete set of commands required for that service later.

[0232] [Second embodiment] In the first embodiment, a case where a command bundle is added by manual instruction was described. That is, in the first embodiment, a user sends a command bundle to the device 130 in advance using instruction 1 via the instruction operation cloud service 310. Then, the user sends instruction 2 to the device 130 to execute the desired command, causing the device 130 to execute the command. However, if the user does not know the command bundle required to execute the temporary command, the user cannot issue an instruction to install the command bundle, and the temporary command cannot be executed. Specifically, the user may know the instruction type 811 shown in FIG. 9(C) but may not know which command bundle (bundle 812) corresponds to the instruction type 811. Therefore, in the second embodiment, the system automatically determines whether a command bundle is required and, if required, sends the command bundle in advance. This second embodiment will be described below.

[0233] Fig. 25 is a block diagram showing the module configuration of the instruction operation cloud service 310 in the second embodiment. Blocks 700 to 707 in the figure are the same as blocks 700 to 707 shown in Fig. 8(A), and therefore a description thereof will be omitted.

[0234] The storage unit 345 of the instruction operation cloud service 310 stores a command bundle correspondence table 2300. In this case, the storage unit 345 is an example of a storage means. The command bundle correspondence table 2300 is a table that shows the association between commands and command bundles. Fig. 26 shows the command bundle correspondence table 2300. The command bundle correspondence table 2300 shows the association between command names and command bundles.

[0235] The command type 2400 indicates whether the command is a basic command 2410 or a temporary command 2440. The basic command 2410 is a command that is held in advance by the instruction execution service 216. On the other hand, the temporary command 2440 is a command that is added later by a command bundle.

[0236] Command name 2401 indicates the name of each command. Here, DownloadBundle (2411), InstallBundle (2421), and UninstallBundle (2431) are shown. These commands are basic commands. There are no command bundles corresponding to these basic commands, and bundle ID 2402 is left blank.

[0237] On the other hand, getDeviceSettings (2441) is a temporary command 2440. For example, 9876543 (2442) is set as the bundle ID 2402 of this command bundle. This is a command that performs processing to obtain a list of setting information held by a repair bundle that holds the bundle ID of 9876543 (2442).

[0238] The command processing explanation 2403 provides an overview of the processing content of each command.

[0239] 27 is a diagram showing an instruction operation UI unit 701 for specifying a setting information list acquisition command in the instruction operation cloud service 310. The instruction execution time 814, instruction decision button 815, and instruction type 820 in the figure are the same as the elements 814, 815, and 820 shown in FIG. 9(C), and therefore their explanation will be omitted.

[0240] The automatic command addition button 2500 is a checkbox for selecting whether to automatically add the command bundle required to execute the specified command. If checked, the command bundle corresponding to this command is identified based on the command bundle correspondence table 2300, and the identified command bundle is automatically installed as necessary.

[0241] The instruction operation UI unit 701 in this embodiment is an example of a receiving means that, in cooperation with the control unit 341, receives a specified input of a temporary command and a selection input of whether or not to automatically identify a command application corresponding to the specified temporary command.

[0242] Next, a specific example of a repair instruction sheet generated by the instruction operation UI unit 701 in Fig. 27 will be described. This instruction sheet will be referred to as instruction sheet 4 below. However, since the contents of instruction sheet 4 are basically the same as the contents of the device setting information acquisition command shown on lines 6 to 12 of instruction sheet 2 in the first embodiment, only the differences will be described. Instruction sheet 4 is an example of second instruction information.

[0243] <Instructions 4> 1. { 2. "script" : { 3. "instructionid" : "00004", 4. "commandSequence" : [ 5. { 6. "commandSequenceId" : "001", 7. "time" : "Immediate", 8. "command" : [ 9. { 10. "commandId" : 1, 11. "name" : "getDeviceSettings" 12. "parameter" : { 13. "addcommand" : "auto" 14.} 15.}, 16.] 17.} 18.] 19.} 20.}

[0244] The instruction ID on the third line is set to the unique number 00004. The parameter addcommand corresponding to the automatic command addition button 2500 on the thirteenth line is set to auto, which indicates the specified automatic command.

[0245] FIG. 28 is a flowchart showing the process in which the instruction operation cloud service 310 transmits the instruction book 4.

[0246] In S2600, the process of transmitting the instruction sheet 4 is started. In S2601, it is determined whether or not to install the command bundle required for instruction sheet 4, that is, whether or not additional instruction sheets (instruction sheet 3 described below) are necessary, and if they are necessary, the transmission process for the additional instruction sheets is executed before instruction sheet 4. Details of this process are shown in FIG.

[0247] In S2602, if an additional instruction is transmitted in S2601, the process waits for the completion of the execution of the process based on the instructions in the additional instruction.

[0248] If the execution of the process based on the instructions in the additional instruction sheet is completed in S2602, or if the additional instruction sheet is not sent in S2601, the instruction sheet sending unit 707 sends instruction sheet 4 in S2603.

[0249] In S2604, the process waits for completion of the execution of the process based on the instructions in the instruction sheet 4. When the execution of the process based on the instructions in the instruction sheet 4 is completed, in S2605, it is determined whether or not an additional instruction sheet has been sent (S2601). If an additional instruction sheet has not been sent, the process proceeds to S2607, and the process of sending the instruction sheet 4 ends.

[0250] If an additional instruction has been transmitted, in S2606, an instruction 5 for uninstalling the command bundle is transmitted as an additional instruction by the instruction transmission unit 707. Specific details of the instruction 5 will be described later.

[0251] FIG. 29 is a flowchart showing the process (S2601) of transmitting an additional instruction by the instruction operation cloud service 310.

[0252] In S2700, the process of transmitting the additional instruction starts. In S2701, a loop process is started for the number of commands that make up the command sequence of the instruction book 4.

[0253] In S2702, it is determined whether "auto" is specified as the parameter "addcommand" indicating automatic command addition. If "auto" is not specified, the process proceeds to S2708, and if specified, the process proceeds to S2703.

[0254] In S2703, it is determined whether the command targeted in the current loop (here, the getDeviceSettings command) exists in the destination device 130. By referring to command list information 709 held by device information acquisition unit 700, it is determined whether the destination device has the corresponding command. If the device holds the command, the process proceeds to S2708; if not, the process proceeds to S2704.

[0255] In S2704, the command name 2401 in the command bundle correspondence table 2300 (FIG. 26) is referenced, and the necessary command bundle is identified from the command name of the command targeted in the current loop.

[0256] In S2705, it is determined whether the command bundle identified in S2704 has been installed. By using bundle information 708 held by device information acquisition unit 700, it is determined whether the identified command bundle has been installed on the destination device. If it has been installed, the process proceeds to S2707. If it has not been installed, the process proceeds to S2706.

[0257] In S2706, the command bundle identified in S2704 is added to the list of additional command bundles in memory. This is a process to add the command bundle because it is not installed and no commands have been added. Therefore, after this, the command bundle is stored in memory as a command bundle for which an "install" command must be written in Instruction 3, which is an additional instruction.

[0258] In S2707, the command bundle identified in S2704 is added to the start command bundle list in memory. This is a process to add commands because the command bundle has already been installed but no commands have been added. This means that the command bundle has not yet been started. Therefore, the command bundle is then stored in memory as a command bundle for which a start command must be entered in instruction sheet 3.

[0259] S2708 is the end of the loop processing of the commands that make up the command sequence. When the loop processing of all commands has finished, in S2709, a loop processing is started for the number of additional command bundles included in the additional command bundle list stored in S2706.

[0260] In S2710, a command for installing a command bundle in the additional command bundle list is added as instruction 3. Specific details of instruction 3 will be described later. In this example, the installation of a repair command bundle (for example, a getDeviceSettings command) is instructed.

[0261] S2711 is the end of the loop process for the list of additional command bundles. When the installation commands for all command bundles that need to be added have been written, the process proceeds to S2712.

[0262] In S2712, a loop process is started for the number of start command bundles included in the start command bundle list stored in S2707.

[0263] In S2713, the command for the start process of the command bundle in the start command bundle list is added as instruction 3.

[0264] S2714 is the end of the loop processing of the start command bundle list. When the start commands of all command bundles that need to be added have been written, the processing proceeds to S2715.

[0265] In S2715, it is determined whether or not an instruction statement 3 has been generated. If an instruction statement 3 has not been generated, that is, if no command bundle to be added is required, the additional instruction statement transmission process ends in S2717. In this case, the process ends without transmitting the additional instruction statement. If an instruction statement 3 has been generated, the instruction statement transmission unit 707 transmits the instruction statement 3 in S2716.

[0266] Next, a specific example of instruction sheet 3 in which the repair command bundle installation command automatically generated by the process of Fig. 29 is described is shown below. Instruction sheet 3 is an example of first instruction information.

[0267] <Instructions 3> 1. { 2. "script" : { 3. "instructionid" : "00003", 4. "commandSequence" : [ 5. { 6. "commandSequenceId" : "001", 7. "time" : "Immediate", 8. "command" : [ 9. { 10. "commandId" : 1, 11. "name" : "DownloadBundle", 12. "parameter" : { 13. "downloadId" : "1234567-89", 14. "appId" : "9876543" 15.} 16.}, 17. 18. "commandId" : 2, 19. "name" : "InstallBundle", 20. "parameter" : { 21. "appId" : "9876543", 22. "lan" : "LAN1", 23. "start" : "true" twenty four.} twenty five.} 26.] 27.} 28.] 29.} 30.}

[0268] The instruction ID on the third line is assigned the unique number 00003. The command parameter appId on the 14th line describes the value of the command bundle ID 2442 associated with getDeviceSettings (2441) in the command bundle correspondence table 2300. The LAN required for this command bundle ID is obtained from the license management service 320 and is entered in the command parameter lan on the 22nd line.

[0269] In this way, the commands DownloadBundle and InstallBundle for installing bundles are written in combination with their respective parameters.

[0270] This instruction 3 allows the repair bundle 1000 required to execute the getDeviceSettings command to be installed on the device 130.

[0271] Furthermore, a specific example of instruction sheet 5 in which the repair command bundle uninstallation command automatically generated in FIG. 28 is described is shown below.

[0272] <Instructions 5> 1. { 2. "script" : { 3. "instructionid" : "00005", 4. "commandSequence" : [ 5. { 6. "commandSequenceId" : "001", 7. "time" : "Immediate", 8. "command" : [ 9. { 10. "commandId" : 1, 11. "name" : "UninstallBundle", 12. "parameter" : { 13. "appId" : "9876543" 14.} 15.} 16.] 17.} 18.] 19.} 20.}

[0273] The instruction ID on the third line is assigned the unique number 00005. The command parameter appId on the thirteenth line describes the value of the command bundle ID 2442 associated with getDeviceSettings (2441) in the command bundle correspondence table 2300.

[0274] These parameters are used to write the UninstallBundle command for bundle uninstallation of the bundle.

[0275] This instruction 5 allows the repair bundle 1000, which becomes unnecessary after the getDeviceSettings command is executed, to be uninstalled from the device 130.

[0276] As described above, the method described in the second embodiment can provide the following specific effects. Even if the user does not know the command bundle required to execute the desired command, they can execute the desired command by setting up the system so that instructions to install the required command bundle are automatically sent before issuing the command. After the command is executed, they can return to the state before the command was executed by sending instructions to uninstall the command bundle.

[0277] [Other embodiments] In the second embodiment described above, a command bundle corresponding to a specified command was automatically installed via the automatic command addition button 2500. However, if the automatic command addition button 2500 is checked, the command bundle corresponding to the specified command may simply be identified based on the command bundle correspondence table 2300. In this case, the identified command bundle is displayed on the screen, and the user can manually specify the command bundle.

[0278] For example, an instruction set that includes temporary command processing but does not include uninstallation processing, such as instruction set 4 in the second embodiment, may be sent to the device as instruction set 2 in the first embodiment. After that, another instruction set that includes uninstallation may be sent to the device.

[0279] The disclosure of this embodiment includes the following configurations and methods. (Configuration 1) A device management system including a device and a management apparatus connected to the device via a network, The management device a first management means for managing an application having a temporary command generation unit for generating a temporary command among the commands; an instruction means for transmitting instructions for a series of processes, including an installation process for the application, a start process for starting use of the application, an execution process for the temporary command, and a restriction process for restricting use of the application, to the device via the network as instructions for the execution process of the command; The device comprises: a second management means for managing the command generation unit that generates the command and the temporary command generation unit as a command generation unit list; an execution unit that executes, as the series of processes, the command and the temporary command generated by the command generation unit and the temporary command generation unit, respectively, based on the instruction received from the management device; The execution means adds the temporary command generation unit to the command generation unit list based on an instruction for the start process among the instructions, executes the temporary command based on an instruction for execution process of the temporary command, and, after executing the temporary command, executes a process for restricting use of the application based on an instruction for the restriction process. A device management system comprising: (Configuration 2) The restriction process includes a process of stopping the application, or both a process of stopping the application and a process of uninstalling the application after the stop process. 2. The device management system according to configuration 1. (Configuration 3) the second management means further includes a deletion unit for deleting the added temporary command generation unit from the command generation unit list; The execution means deletes the added temporary command generation unit via the deletion unit in the process of stopping the application. 3. The device management system according to configuration 2. (Configuration 4) The instruction means transmits, to the device, first instruction information indicating an instruction including an installation process of the application and a start process of the application among the series of processes. 4. The device management system according to any one of configurations 1 to 3. (Configuration 5) The instruction means transmits second instruction information including an instruction for executing the temporary command to the device after the execution means has completed the execution of the process corresponding to the first instruction information. 5. The device management system according to configuration 4. (Configuration 6) The second instruction information further includes an instruction for the restriction process. 6. The device management system according to configuration 5. (Configuration 7) The management device further includes a storage unit for storing a table that associates the commands with the applications. 7. The device management system according to any one of configurations 1 to 6. (Configuration 8) The management device further includes a receiving unit that receives a designated input of the temporary command and a selection input of whether to automatically identify an application corresponding to the designated temporary command, and when automatic identification of the application is selected, identifies the application corresponding to the designated temporary command based on the table. 8. The device management system according to configuration 7. (Configuration 9) When automatic identification of the application is selected, the instruction means automatically transmits an instruction for at least the installation process of the series of processes of the identified application. 9. The device management system of configuration 8. (Configuration 10) The device is a printer, scanner, copier, or multifunction device. 10. The device management system according to any one of configurations 1 to 9. (method) A device management method using a device management system including a device and a management apparatus connected to the device via a network, a management step of managing an application having a temporary command generation unit that generates temporary commands among the commands; an instruction step of transmitting, from the management device, instructions for a series of processes including an installation process for the application, a start process for starting use of the application, an execution process for the temporary command, and a restriction process for restricting use of the application, as instructions for the execution process of the command to the device via the network; an execution step of executing, by the device as the series of processes, the commands and the temporary commands that are generated by the command generating unit and the temporary command generating unit, respectively, managed as a command generating unit list in the device based on the instruction received from the management device; The execution step includes adding the temporary command generation unit to the command generation unit list based on an instruction for the start process among the instructions, executing the temporary command based on an instruction for execution process of the temporary command, and, after the execution of the temporary command, executing a process for restricting use of the application based on an instruction for the restriction process. A device management method comprising:

[0280] The present disclosure has been described in detail above based on preferred embodiments thereof, but the present disclosure is not limited to the above embodiments, and various modifications are possible based on the gist of the present disclosure, and these modifications are not excluded from the scope of the present disclosure.

Claims

1. A device management system including a device and a management apparatus connected to the device via a network, The management device a first management means for managing an application including a temporary command generation unit for generating a temporary command among the commands; an instruction means for transmitting instructions for a series of processes, including an installation process for the application, a start process for starting use of the application, an execution process for the temporary command, and a restriction process for restricting use of the application, to the device via the network as instructions for the execution process of the command; The device comprises: a second management means for managing the command generation unit that generates the command and the temporary command generation unit as a command generation unit list; an execution unit that executes, as the series of processes, the command and the temporary command generated by the command generation unit and the temporary command generation unit, respectively, based on the instruction received from the management device; The execution means adds the temporary command generation unit to the command generation unit list based on an instruction for the start process among the instructions, executes the temporary command based on an instruction for execution process of the temporary command, and, after executing the temporary command, executes a process for restricting use of the application based on an instruction for the restriction process. A device management system comprising:

2. The restriction process includes a process of stopping the application, or both a process of stopping the application and a process of uninstalling the application after the stop process. The device management system according to claim 1 .

3. the second management means further includes a deletion unit for deleting the added temporary command generation unit from the command generation unit list; The execution unit deletes the added temporary command generation unit via the deletion unit in the process of stopping the application. The device management system according to claim 2 .

4. The instruction means transmits, to the device, first instruction information indicating an instruction including an installation process of the application and a start process of the application among the series of processes. The device management system according to claim 1 .

5. The instruction means transmits second instruction information to the device, the second instruction information including an instruction for executing the temporary command, after the execution means has completed the execution of the process corresponding to the first instruction information. The device management system according to claim 4 .

6. The second instruction information further includes an instruction for the restriction process. The device management system according to claim 5 .

7. The management device further includes a storage unit for storing a table that associates the commands with the applications. The device management system according to claim 1 .

8. The management device further includes a receiving unit that receives a designated input of the temporary command and a selection input of whether to automatically identify an application corresponding to the designated temporary command, and when automatic identification of the application is selected, identifies the application corresponding to the designated temporary command based on the table. The device management system according to claim 7 .

9. When automatic identification of the application is selected, the instruction means automatically transmits an instruction for at least the installation process of the series of processes of the identified application. The device management system according to claim 8 .

10. The device is a printer, scanner, copier, or multifunction device.

10. The device management system according to claim 1 (or any one of claims 1 to 9).

11. A device management method using a device management system including a device and a management apparatus connected to the device via a network, a management step of managing an application having a temporary command generation unit that generates temporary commands among the commands; an instruction step of transmitting, from the management device, instructions for a series of processes including an installation process for the application, a start process for starting use of the application, an execution process for the temporary command, and a restriction process for restricting use of the application, as instructions for the execution process of the command to the device via the network; an execution step of executing, by the device as the series of processes, the commands and the temporary commands that are generated by the command generating unit and the temporary command generating unit, respectively, managed as a command generating unit list in the device based on the instruction received from the management device; The execution step includes adding the temporary command generation unit to the command generation unit list based on an instruction for the start process among the instructions, executing the temporary command based on an instruction for execution process of the temporary command, and, after the execution of the temporary command, executing a process for restricting use of the application based on an instruction for the restriction process. A device management method comprising:

Citation Information

Patent Citations

  • Image forming apparatus, image forming system, application installation method and application installation program

    JP2014040059A