System and program

The system addresses the challenge of installing new software versions in devices with existing custom configurations by determining software type and performing tailored installation processes, ensuring compatibility and functionality preservation.

JP2026114405APending Publication Date: 2026-07-08BROTHER KOGYO KK

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
BROTHER KOGYO KK
Filing Date
2024-12-26
Publication Date
2026-07-08

AI Technical Summary

Technical Problem

Existing software installation technologies are inadequate when multiple types of software, including standard and customized software, are available, as they do not effectively manage the installation of new software versions while preserving the functionality of existing custom software configurations.

Method used

A system and method for installing new software by determining the type of existing software, displaying installation information, and performing specific installation processes based on the software type, allowing for the installation of new software while maintaining or modifying the existing custom software configurations.

Benefits of technology

Enables seamless installation of new software versions while preserving the functionality of existing custom software configurations, ensuring compatibility and maintaining the desired software features.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026114405000001_ABST
    Figure 2026114405000001_ABST
Patent Text Reader

Abstract

If multiple types of software are available, install the newly provided software. [Solution] Using the first related information related to the first software and the second related information related to the second software already installed on the target device, it is determined whether the first software was provided after the second software was provided. It is also determined whether the second software is specific custom software. If the first software was provided after the second software was provided, and the second software is specific custom software, an installation information screen is displayed, which shows information indicating that the first software can be installed. In specific cases, the process for installing the first software on the target device is executed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This specification relates to the technology of installing software.

Background Art

[0002] When software such as firmware and applications has been installed on a device, newly provided software can be installed on the device. For example, when new version software is provided, the new version software is installed on the device. Thereby, the installed software is updated to the new version software. Patent Document 1 discloses a technology for updating firmware. Specifically, the CPU of a personal computer acquires information regarding the firmware currently possessed by a communication device. When the version of the firmware currently possessed by the communication device is not the version of the latest firmware, the CPU displays a message for prompting the user to execute the update of the firmware of the communication device.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] As software, various types of software can be used. For example, in addition to standard software, software customized for a specific purpose can be used. When multiple types of software can be used, there is room for improvement in the installation of newly provided software.

[0005] This specification discloses a technique for installing newly provided software when multiple types of software are available. [Means for solving the problem]

[0006] The technologies disclosed herein can be implemented as follows:

[0007] [Item 1] A system comprising: a first acquisition process for acquiring first related information from the server relating to first software stored on a server which causes a target device to execute a plurality of first functions determined by a software vendor; a second acquisition process for acquiring second related information relating to second software installed on the target device; a first determination process for determining whether the first software is software provided after the provision of the second software, using the first related information and the second related information; and a second determination process for determining whether the second software is specific custom software, wherein the specific custom software is software which causes the target device to execute a plurality of second functions requested by the administrator of the target device, and the plurality of second functions are (1) one or more excluded functions which are part of the plurality of first functions A system that performs a second determination process having one or more of three configurations: (1) a first configuration indicating that it includes one or more common functions that are the remainder of the plurality of first functions, excluding (2) a second configuration indicating that it includes one or more additional functions that are not included in the plurality of first functions and some or all of the plurality of first functions; and (3) a third configuration indicating that it includes a second function obtained by changing the operating settings of the first functions included in the plurality of first functions and some of the plurality of first functions; a display process that displays an installation information screen which is a screen that shows information indicating that the first software can be installed when the first software is software provided after the second software is provided and the second software is the specific custom software; and a specific process that performs a process for installing the first software on the target device in a specific case.

[0008] According to this configuration, if the second software is specific custom software, the first software, which causes the target device to execute multiple Type I functions determined by the software vendor, can be installed on the target device after the second software has been provided.

[0009] Furthermore, the technologies disclosed herein can be implemented in various forms, for example, as a method for updating software, a system for updating software, a computer program for implementing the functions of such methods or devices, a recording medium (e.g., a non-temporary recording medium) on which such computer programs are recorded, and so on. [Brief explanation of the drawing]

[0010] [Figure 1] This is an explanatory diagram showing a communication system as one embodiment. [Figure 2] (A)-(C) are diagrams showing examples of user interfaces. [Figure 3] This is a flowchart illustrating an example of version control processing. [Figure 4] This is a flowchart illustrating an example of version control processing. [Figure 5] This is a diagram illustrating an example of an update notification screen. [Figure 6] This is an example of an installation information screen. [Figure 7] This is a diagram illustrating an example of a stop selection screen. [Figure 8] This is a flowchart illustrating an example of software processing. [Figure 9] This is a flowchart illustrating an example of software processing. [Figure 10] (A) is a diagram showing an example of a custom boot screen. (B) is a diagram showing an example of a standard boot screen. [Figure 11] (A) is a diagram showing an example of a custom switching screen. (B) is a diagram showing an example of a standard switching screen. [Modes for carrying out the invention]

[0011] A. First example: A1. System configuration: Figure 1 is an explanatory diagram showing a communication system as one embodiment. This communication system 1000 includes a multifunction printer 100, a terminal device 200, and a server 300. The multifunction printer 100 and the terminal device 200 are connected to a local area network LN. The server 300 is connected to the Internet IT. The local area network LN is connected to the Internet IT via a router (not shown).

[0012] The multifunction printer 100 includes a processor 110, a storage device 115, a display unit 140, an operation unit 150, a print execution unit 160, a read execution unit 170, and a communication interface 180. These elements are connected to each other via a bus (not shown). The storage device 115 includes a volatile storage device 120 and a non-volatile storage device 130.

[0013] The display unit 140 is a device configured to display images, such as a liquid crystal display or an organic EL display. The operation unit 150 is a device configured to receive user input, such as buttons, levers, or a touch panel superimposed on the display unit 140. The display unit 140 and the operation unit 150 may form a so-called touchscreen. The user can input various requests and instructions to the multifunction device 100 by operating the operation unit 150. The display unit 140 may display operational elements such as buttons and sliders, and these displayed elements may be operated through the operation of the operation unit 150.

[0014] The printing execution unit 160 is a device that prints an image on a sheet such as paper. In this embodiment, the printing execution unit 160 is a so-called inkjet printer. Although not shown, the printing execution unit 160 includes a head having a plurality of nozzles, a drive circuit that drives the head, a plurality of conveyance rollers that convey the sheet, and a motor that drives the plurality of conveyance rollers. The printing execution unit 160 is configured to eject one or more types of coloring materials from the plurality of nozzles and print an image on the sheet. The printing execution unit 160 of this embodiment prints an image using four colors of ink: cyan, magenta, yellow, and black. Note that the printing execution unit 160 may be a device that prints an image by another method such as a laser method.

[0015] The reading execution unit 170 is a device that optically reads an object such as a document. Although not shown, the reading execution unit 170 includes an arrangement portion where the object is to be arranged and an optical sensor. The reading execution unit 170 generates scan data of a scan image representing the read object by optically reading the object arranged on the arrangement portion with the optical sensor.

[0016] The communication interface 180 is an interface for communicating with other devices and includes, for example, one or more of a USB interface, a wired LAN interface, and a wireless interface of IEEE 802.11. In this embodiment, the communication interface 180 is connected to a local area network LN.

[0017] The processor 110 is a device configured to perform data processing and is, for example, a Central Processing Unit (CPU) or a System on a chip (SoC). The volatile storage device 120 is, for example, a Dynamic Random Access Memory (DRAM), and the non-volatile storage device 130 is, for example, a flash memory. The non-volatile storage device 130 stores the data of the program PG1.

[0018] Program PG1 is a program for controlling the multifunction printer 100. The data for program PG1 is stored in a non-volatile storage device 130 by the manufacturer of the multifunction printer 100 during its manufacture. Alternatively, program PG1 may be downloaded from a server (not shown).

[0019] The terminal device 200 is a terminal device used by users of the multifunction device 100, such as personal computers, smartphones, and tablet computers. The terminal device 200 includes a processor 210, a storage device 215, a display unit 240, an operation unit 250, and a communication interface 280. These elements are connected to each other via a bus (not shown). The storage device 215 includes a volatile storage device 220 and a non-volatile storage device 230.

[0020] The display unit 240 is a device configured to display images, such as a liquid crystal display or an organic EL display. The operation unit 250 is a device configured to receive user input, such as buttons, levers, or a touch panel superimposed on the display unit 240. The display unit 240 and the operation unit 250 may form a so-called touchscreen. The user can input various requests and instructions to the terminal device 200 by operating the operation unit 250. The display unit 240 may display operational elements such as buttons and sliders, and these displayed elements may be operated through the operation unit 250.

[0021] The communication interface 280 is an interface for communicating with other devices and includes, for example, one or more of the following: a USB interface, a wired LAN interface, and an IEEE 802.11 wireless interface. In this embodiment, the communication interface 280 is connected to a local area network LN.

[0022] The processor 210 is a device configured to perform data processing, such as a CPU or SoC. The volatile storage device 220 is, for example, DRAM, and the non-volatile storage device 230 is, for example, flash memory. The non-volatile storage device 230 stores data for one or both of the application programs 400a and 400b, the management application program 500, and the database 232.

[0023] Hereafter, application programs 400a, 400b, and 500 will be referred to as apps 400a, 400b, and 500. As will be explained later, app 400a is the standard application program, and app 400b is a customized application program. Hereafter, the standard app 400a will also be referred to as standard app 400a. The customized app 400b will also be referred to as custom app 400b. Furthermore, the management application program 500 will also be referred to as management app 500.

[0024] An operating system (not shown) runs on the terminal device 200. Applications 400a, 400b, and 500 are software that runs on the operating system. In this embodiment, the processor 210 executes various functions (printing, scanning, etc.) using the multifunction printer 100 by executing either the standard application 400a or the custom application 400b. The processor 210 also manages the versions of applications 400a and 400b by executing the management application 500. Hereinafter, applications subject to version management will also be referred to as target applications. Target applications 400a, 400b and the management application 500 are provided by a software vendor. The software vendor may be, for example, the manufacturer of the multifunction printer 100. Hereinafter, the execution of processing by the processor 210 according to applications 400a, 400b, and 500 will also be expressed as applications 400a, 400b, and 500 executing processing.

[0025] Database 232 stores various information related to the target applications 400a and 400b. In this embodiment, database 232 stores update history information IFO for the target applications 400a and 400b, the current version of the standard application 400a, the standard version V1c, the current version of the custom application 400b, the custom version V2c, and the deactivated version Vst. Details of this information IFO, V1c, V2c, and Vst will be described later.

[0026] Database 232 may be a database managed by the operating system, such as a registry. Alternatively, database 232 may be a database managed by applications 400a, 400b, and 500, without being managed by the operating system.

[0027] The server 300 includes a processor 310, a storage device 315, and a communication interface 380. These elements are connected to each other via a bus (not shown). The storage device 315 includes a volatile storage device 320 and a non-volatile storage device 330.

[0028] The processor 310 is a device configured to perform data processing, such as a CPU or SoC. The volatile storage device 320 is, for example, DRAM, and the non-volatile storage device 330 is, for example, flash memory or a hard disk drive. The communication interface 380 is an interface for communicating with other devices. For example, it includes one or more of the following: a USB interface, a wired LAN interface, and an IEEE 802.11 wireless interface. The communication interface 380 is connected to the Internet IT.

[0029] The non-volatile storage device 330 of server 300 stores data for program PG3, standard software 411, and version information 332. When a defect (e.g., security hole, bug, etc.) is discovered in the software, the software vendor, which is the provider of the software, provides a new version of the software in which the defect has been resolved. In this embodiment, the software vendor updates the standard software 410 included in the standard application 400a. The standard software 411 stored in the non-volatile storage device 330 of server 300 is the software updated from standard software 410. Server 300 provides data for the latest version of the standard software. Version information 332 represents the latest version V1s. Program PG3 is configured to perform the process of providing data for the standard software.

[0030] Program PG3, the latest version of standard software 411, and the latest version information 332 are uploaded to server 300 by the software vendor. Hereafter, we assume that the updated version of standard software 411 is 1.1.0, and the original version of standard software 410 was 1.0.0. The software vendor updates the latest version V1s of version information 332 in accordance with the standard software update.

[0031] B. Application Configuration: The multifunction printer 100 and the terminal device 200 are used by various users. For example, a general user may use the multifunction printer 100 and the terminal device 200. The standard application 400a is an application program for general users. The standard application 400a is provided, for example, through the server 300, another server (not shown), or a recording medium such as a CD-ROM. The standard application 400a is installed on the terminal device 200 by the user, for example.

[0032] The process of installing an application on a device includes the process of setting up the application so that it can be launched on the device. The setup process can be various processes suitable for the system running on the device, such as the operating system. If the application data is stored in a storage device, such as in a data backup, but the application cannot be launched, this storage process is a different process from installation.

[0033] When a user launches the standard application 400a on the terminal device 200, the standard application 400a displays an operation screen on the display unit 240. Figure 2(A) shows an example of the operation screen of the standard application 400a. In this embodiment, the operation screen DP1a represents a print button B11, a scan button B12, a PCFAX button B13a, a scan USB button B14a, and texts T11a and T12a. Text T11a indicates that the software is standard software. Text T12a indicates the software version.

[0034] The print button B11 is associated with the print function F11, which prints an image to the multifunction printer 100 shown in Figure 1. In this embodiment, in response to the operation of the print button B11, the standard application 400a prompts the user to specify the target image and supplies a print instruction containing the data of the target image to the multifunction printer 100. The processor 110 of the multifunction printer 100 causes the print execution unit 160 to print the target image according to the print instruction.

[0035] The scan button B12 is associated with the scan function F12, which causes the multifunction printer 100 to read an object. In this embodiment, the user places an object on a designated area (not shown) of the reading execution unit 170 and operates the scan button B12. In response to the operation of the scan button B12, the standard application 400a supplies a scan command to the multifunction printer 100. The processor 110 of the multifunction printer 100, in accordance with the scan command, causes the reading execution unit 170 to read the object and supplies the scan data to the terminal device 200.

[0036] The PCFAX button B13a is associated with the Type 1 FAX function F13a, which causes the multifunction printer 100 to send a fax. In this embodiment, in response to the operation of the PCFAX button B13a, the standard application 400a prompts the user to specify the target image and target destination, and supplies a fax transmission instruction to the multifunction printer 100 that includes data representing the target image and target destination. The processor 110 of the multifunction printer 100 sends a fax image representing the target image to the target destination in accordance with the fax transmission instruction. Here, the Type 1 setting STa is used as the operation setting for the Type 1 FAX function F13a. In this embodiment, the Type 1 setting STa indicates a resolution of 300 DPI (Dots Per Inch) for the fax image. The standard application 400a supplies a fax transmission instruction to the multifunction printer 100 that includes data indicating the Type 1 setting STa. The processor 110 of the multifunction printer 100 sends the fax image to the target destination in accordance with the Type 1 setting STa. Furthermore, the transmission of fax images may be done through a fax server (not shown). Also, the multifunction printer 100 may be connected to a telephone line (not shown). The transmission of fax images may be done via the telephone line.

[0037] The scan USB button B14a is associated with the scan storage function F14a, which causes the multifunction printer 100 to perform the process of reading an object and storing the scanned data in a portable storage device (not shown) connected to the USB interface of the multifunction printer 100. In this embodiment, the user places an object on a placement area (not shown) of the reading execution unit 170 and operates the scan USB button B14a. In response to the operation of the scan USB button B14a, the standard application 400a supplies a scan USB instruction to the multifunction printer 100. The processor 110 of the multifunction printer 100 causes the reading execution unit 170 to read the object according to the scan USB instruction and stores the scanned data in the portable storage device.

[0038] The functions F11, F12, F13a, and F14a, which are associated with the buttons B11, B12, B13a, and B14a, are provided by the standard application 400a. Hereinafter, the set of functions provided by the standard application 400a will be referred to as the Type 1 Function Set FSa. The functions F11, F12, F13a, and F14a of the Type 1 Function Set FSa are determined by the software vendor. The software vendor selects multiple functions for the Type 1 Function Set FSa from the multiple functions that they can provide.

[0039] The multifunction printer 100 and terminal device 200 may be used not by general users, but by members of groups such as companies and schools. The group may request a set of functions for the terminal device 200 that is suitable for the group's activities. For example, a high resolution of fax images may be requested as a setting for the fax function. A function to send scanned data via email to a specific recipient may be requested. Storing scanned data on a portable storage device may be prohibited. The software vendor creates an application program configured to cause the terminal device 200 to execute a customized set of functions, according to the request of the administrator of the terminal device 200, who is a member of the group. Custom app 400b is such a customized application program. The multiple functions of custom app 400b are selected from multiple functions available from the software vendor, according to the request of the administrator of the terminal device 200.

[0040] Figure 2(B) shows an example of the operation screen for custom application 400b. In this embodiment, the operation screen DP1b represents a print button B11, a scan button B12, a PC fax button B13b, a scan mail button B14b, and texts T11b and T12b. Text T11b indicates that the software is custom software. Text T12b indicates the software version.

[0041] Buttons B11 and B12 are the same as buttons B11 and B12 in Figure 2(A). Functions F11 and F12 described above are associated with these buttons B11 and B12, respectively. Depending on the operation of any of the buttons, custom application 400b executes the process associated with the operated button.

[0042] The PCFAX button B13b is associated with the Type 2 FAX function F13b, which causes the multifunction printer 100 to send a fax. This Type 2 FAX function F13b is a function that causes the multifunction printer 100 to send a fax, similar to the Type 1 FAX function F13a in Figure 2(A). However, for the operation setting of the Type 2 FAX function F13b, a Type 2 setting STb different from the Type 1 setting STa is used. In this embodiment, the Type 2 setting STb is set to a resolution of 600 DPI, which is higher than 300 DPI.

[0043] The scan mail button B14b is associated with the scan mail function F14b, which causes the multifunction printer 100 to perform the processes of reading an object and sending the scanned data to a specific email address. In this embodiment, the user places an object on a placement area (not shown) of the reading execution unit 170 and operates the scan mail button B14b. In response to the operation of button B14b, the custom application 400b supplies a scan mail instruction to the multifunction printer 100. The scan mail instruction includes data for a predetermined recipient email address. The processor 110 of the multifunction printer 100, in accordance with the scan mail instruction, causes the reading execution unit 170 to read the object and sends the scanned data to the recipient email address.

[0044] The functions F11, F12, F13b, and F14b, which correspond to the buttons B11, B12, B13b, and B14b mentioned above, are provided by custom application 400b. Hereinafter, the set of multiple functions provided by custom application 400b will be referred to as the second function set FSb.

[0045] In this embodiment, the first-type fax function F13a and scan storage function F14a in Figure 2(A) are included in the first-type function set FSa, but are excluded from the second-type function set FSb in Figure 2(B). Such functions are also called excluded functions. The second-type fax function F13b and scan mail function F14b in Figure 2(B) are not included in the first-type function set FSa, but are added to the second-type function set FSb. Such functions are called added functions.

[0046] The configurations of the standard application 400a software and the custom application 400b software can vary. For example, the custom application 400b may be separate software independent of the standard application 400a. Alternatively, the standard application 400a and the custom application 400b may include a shared software portion and a corresponding dedicated software portion. In this embodiment, as shown in Figure 1, the standard application 400a is formed by combining the shared portion 405 and the standard software 410. The custom application 400b is formed by combining the shared portion 405 and the custom software 420.

[0047] The shared portion 405 may include various data shared by the standard application 400a and the custom application 400b. For example, the shared portion 405 may include executable binary data. The shared portion 405 may include data of information used for processing (such as operation settings, images, and sounds). The standard software 410 may include various data that form the standard application 400a. For example, the standard software 410 may include executable binary data. The standard software 410 may include flags indicating the validity of functions included in the shared portion 405. The standard software 410 may include data of information used for processing (such as operation settings, images, and sounds). Similarly, the custom software 420 may include various data that form the custom application 400b.

[0048] In this embodiment, the common section 405 includes executable binary data for functions F11 and F12 common to both the standard application 400a and the custom application 400b, functions F13a and F14a exclusive to the standard application 400a, and functions F13b and F14b exclusive to the custom application 400b. The standard software 410 includes data for function flags indicating that functions F11, F12, F13a, and F14a are enabled and functions F13b and F14b are disabled, and data for a first type setting STa. The custom software 420 includes data for function flags indicating that functions F11, F12, F13b, and F14b are enabled and functions F13a and F14a are disabled, and data for a second type setting STb.

[0049] In this embodiment, the updated standard software 411 is software that causes the terminal device 200 to execute functions F11, F12, F13a, and F14a, just like the standard software 410 before the update.

[0050] Hereinafter, the multifunction printer 100 and the terminal device 200 will be used by a specific group. The terminal device 200 will not have the standard application 400a installed, but will have the custom application 400b installed. The installation of the custom application 400b will be performed by a member of the group, for example, with the assistance of a software vendor.

[0051] Note that the standard version V1c of database 232 is recorded upon installation of standard application 400a. If standard application 400a is not installed, standard version V1c is not set. Custom version V2c is recorded upon installation of custom application 400b. If custom application 400b is not installed, custom version V2c is not set. When a standard application or custom application is installed for the first time, the stop version Vst is not set, and the history information IFO is set to the installation type (here, "Standard" or "Custom").

[0052] Furthermore, in this embodiment, the software vendor generates custom software based on standard software. For example, the software vendor generates custom software by modifying a part of the standard software. The version of the custom software is set to the same version as the original standard software. For example, the custom software 420 in Figure 2 is created based on the standard software 410. In this case, the version of the custom software 420 is the same as the version of the standard software 410, "1.0.0".

[0053] The Management App 500 is installed along with the standard or custom app when it is installed for the first time.

[0054] C. Version control process: Figures 3 and 4 are flowcharts illustrating an example of the version control process. Figure 4 shows the continuation of the process shown in Figure 3. The version control process is performed periodically by the management application 500.

[0055] In S110, the management application 500 determines whether the elapsed time since the completion of the last version control process exceeds a threshold. The threshold may be, for example, one day. If the elapsed time is less than or equal to the threshold (S110: No), the management application 500 waits for the elapsed time to exceed the threshold.

[0056] If the elapsed time exceeds the threshold (S110: Yes), in S115, the management application 500 refers to the database 232 to retrieve the history information IFO and the data for the current versions V1c and V2c.

[0057] In S120, the management application 500 refers to the history information IFO to determine whether the terminal device 200 has standard software. The management application 500 makes the determination in S120 by referring to the type of the most recent installation represented by the history information IFO.

[0058] In this embodiment, the installation type can be set to one of the following: "Standard," "Custom," or "Combined." "Standard" indicates that the standard software is installed and no custom software is installed. "Custom" indicates that the custom software is installed and no standard software is installed. As will be described later, in this embodiment, both the standard software and the custom software can be installed in parallel. "Combined" indicates that both software programs are installed.

[0059] If the latest installation type is "Standard" or "Combined," the result of S120 is Yes. In this case, management app 500 sets the target version Vc, which is the current version to be processed, to standard version V1c in S125 and then proceeds to S135.

[0060] If the latest installation type is "Custom," the result of S120 is No. In this case, management app 500 sets the target version Vc to custom version V2c in S130 and migrates to S135.

[0061] In S135, the management application 500 queries the server 300 for the latest version V1s. The processor 310 of the server 300 sends the data for the latest version V1s, represented by the version information 332, to the terminal device 200. The management application 500 retrieves the data for the latest version V1s.

[0062] In S140, the management application 500 compares the latest version V1s with the target version Vc. In S145, the management application 500 determines whether the latest version V1s is newer than the target version Vc. If the target version Vc is the same as the latest version V1s (S145: No), the management application 500 terminates the version control process.

[0063] If the latest version V1s is newer than the target version Vc, that is, if server 300 provides a version of standard software that is newer than the target version Vc, the result of the S145 decision is Yes. The following explanation assumes that server 300 provides standard software 411 with version V1s that is newer than version V2c of custom software 420. In this case, in S150, the management application 500 refers to the history information IFO to obtain the latest installation type. If the latest installation type is "Standard", the process proceeds to S155.

[0064] In S155, the management application 500 displays an update notification screen on the display unit 240. Figure 5 shows an example of the update notification screen. The update notification screen DP2 consists of text T21 and an OK button B21. Text T21 indicates that new standard software can be installed and that the software will be updated. In response to the user pressing the OK button B21, the management application 500 proceeds to S160 in Figure 3.

[0065] In S160, the management application 500 executes the process for installing the latest standard software 411. The process for installing the standard software may be various. In this embodiment, the server 300 provides an installer program for installing the latest standard software. The process for installing the latest standard software includes the process of downloading the installer program from the server 300 and the process of launching the downloaded installer. Hereinafter, the process by which the processor 210 executes the process according to the installer will also be expressed as "the installer executes the process."

[0066] The installer shall have the functionality to install the latest standard software and the functionality to uninstall installed software (for example, either standard software or custom software, or both). The installer shall also have the functionality to select whether or not to uninstall installed software according to the startup settings. In S160, the management application 500 supplies the installer with the settings necessary to perform the uninstallation.

[0067] In S165, the latest standard software 411 is installed. In this embodiment, the installer launched in S160 uninstalls the already installed software (in this case, standard software 410) and installs the latest standard software 411. If the old standard software 410 is already installed on the terminal device 200, the standard software 410 is deleted from the non-volatile storage device 330. The latest standard software 411 is associated with the standard application and stored in the non-volatile storage device 330. Then, the standard application containing the latest standard software 411 becomes launchable.

[0068] In S168, the installer updates the history information IFO and the current versions V1c and V2c. Specifically, the installer adds information to the history information IFO indicating the latest installation type (in this case, "Standard"). The installer sets the current standard version V1c to the version of the installed standard software 411 (in this case, 1.1.0). The installer updates the current custom version V2c to unset. Then, the version control process ends.

[0069] Note that the process for installing the standard software may be any other process. For example, the management application 500 may perform the above processes S165 and S168 instead of the installer. Specifically, the management application 500 downloads the latest standard software 411 data from the server 300. Then, the management application 500 uninstalls the old standard software 410, installs the latest standard software 411, updates the history information IFO, and sets versions V1c and V2c.

[0070] The software may be installed using the operating system's installation function. In this case, the installer or management application 500 may supply the operating system with data and installation instructions for the new standard software 411. Similarly, the software may be uninstalled using the operating system's uninstall function. In this case, the installer or management application 500 may supply the operating system with instructions for uninstalling the old standard software 410. The current versions V1c and V2c may be set by the operating system. Alternatively, the software may be installed without using the operating system's installation function. Similarly, the software may be uninstalled without using the operating system's uninstall function.

[0071] If the latest installation type in S150 is "Custom" or "Combined," the process moves to S170. In S170, the management app 500 determines whether the latest version V1s is the same as the deactivated version Vst. As will be explained in detail later, the deactivated version Vst indicates the version for which notifications will be stopped. If the latest version V1s is the same as the deactivated version Vst (S170: Yes), the management app 500 terminates the version control process.

[0072] If the latest version V1s is newer than the deactivated version Vst, or if the deactivated version Vst is not set, the result of S170 is No. In this case, in S180 of Figure 4, the management application 500 displays the installation information screen on the display unit 240.

[0073] Figure 6 shows an example of an installation information screen. The installation information screen DP3 consists of text T30, multiple radio buttons RB31-RB33, labels L31-L33 corresponding to each of the radio buttons RB31-RB33, and an OK button BT31. Text T30 indicates that new standard software can be installed. Text T30 further prompts the user to select a processing method. Radio buttons RB31-RB33 show the candidate processing methods. The user can select a processing method by checking one of the radio buttons RB31-RB33.

[0074] The label L31 for the first radio button RB31 indicates an update installation. An update installation is a method of removing the installed software and installing new standard software. When an update installation is performed, the installed custom software 420 is removed and the new standard software is installed. Near the first radio button RB31, the texts T31a and T31b are displayed. Text T31a indicates that some functions F13a and F14a of the standard app will become available. Text T31b indicates that additional functions F13b and F14b of the custom app will become unavailable.

[0075] The label L32 for the second radio button RB32 indicates co-installation. Co-installation is a method of installing the latest standard software while maintaining the installed custom software 420. This means that the latest standard software will be installed in parallel with the custom software 420. The custom software 420 and the latest standard software will coexist. Near the second radio button RB32, the text T32 is displayed. Text T32 indicates that you can switch between using the standard software and the custom software.

[0076] Label L33 for the third radio button RB33 indicates that no new software will be installed.

[0077] Users can understand the outline of each processing method by referring to these labels L31-L33 and texts T30, T31a, T31b, and T32. They can then select the appropriate processing method. For example, if the additional features F13b and F14b of custom app 400b are used infrequently, the user may select an update installation, i.e., the first radio button RB31. If a group member requests both the additional features of custom app 400b and the features of the new standard app, the user may select a combined installation, i.e., the second radio button RB32. Users unfamiliar with software updates may select the third radio button RB33.

[0078] The user checks one radio button and then operates the OK button BT31. This causes the management application 500 to proceed to S185 in Figure 4.

[0079] In S185, the management application 500 branches its processing according to the processing method selected by the user. If update installation, i.e., the first radio button RB31 is selected, in S190 the management application 500 executes the processing for update installation. The processing for update installation may be various processes. In this embodiment, the processing for update installation is the same as the processing in S160 in Figure 3.

[0080] The processes in S195 and S198 are the same as those in S165 and S168 in Figure 3, respectively. In S195, the installed custom software 420 is uninstalled and the latest standard software 411 is installed. The custom software 420 is removed from the non-volatile storage device 330, and the latest standard software 411 is stored in the non-volatile storage device 330 in association with a standard application. The standard application, including the latest standard software 411, then becomes launchable.

[0081] In S198, the history information IFO and versions V1c and V2c are updated. Information indicating the latest installation type (in this case, "Standard") is added to the history information IFO. This indicates a switch from "Custom" to "Standard" in the history information IFO. Standard version V1c is set to the version of the installed standard software 411 (in this case, 1.1.0), and custom version V2c is updated to unset. Then, the version control process ends.

[0082] In S180 and S185, if a combined installation is selected, i.e., the second radio button RB32 is selected, in S210, the management application 500 executes the process for combined installation. The process for combined installation may be various. In this embodiment, the process for combined installation is performed in the same manner as in S160 in Figure 3 and S190 in Figure 4. If an installer is used, the management application 500 supplies the installer with settings to postpone uninstallation.

[0083] On the S215, the latest standard software 411 is installed. The previously installed custom software 420 is not uninstalled. In addition to custom apps 400b, which include custom software 420, standard apps, including the latest standard software 411, become launchable.

[0084] In S218, the history information IFO and versions V1c and V2c are updated. Information indicating the latest installation type (in this case, "combined") is added to the history information IFO. As a result, the history information IFO indicates a switch from "custom" to "combined". Standard version V1c is set to the version of the installed standard software 411 (in this case, 1.1.0). Custom version V2c remains unchanged. Then, the version control process ends.

[0085] If, in S180 and S185, "Do not install new software," i.e., the third radio button RB33 is selected, then in S230, the management application 500 displays a stop selection screen on the display unit 240. Figure 7 shows an example of the stop selection screen. The stop selection screen DP4 consists of texts T41-T43 and buttons B41 and B42. Text T41 prompts the user to choose whether or not to stop update notifications. Text T42 indicates that the type of software that can be updated is standard software, and text T43 indicates that the latest software version is 1.1.0. Button B41 is for entering an instruction to stop notifications. Button B42 is for entering an instruction to continue notifications.

[0086] The user chooses whether to stop or continue receiving notifications about software updates, as represented by texts T42 and T43, by referring to texts T41-T43. The user then inputs instructions by operating either button B41 or B42.

[0087] In S235 of Figure 4, the management application 500 branches its processing according to the user's instructions. If the user's instructions indicate stopping notifications, in S240, the management application 500 sets the stopped version Vst to the latest version V1s. Then, the management application 500 terminates the version control process. In S170 of Figure 3, the next version control process, if the latest version V1s is the same as the stopped version Vst (S170: Yes), the update notification via the installation information screen DP3 (Figure 6) (Figure 4: S180) is omitted.

[0088] In step S235 of Figure 4, if the user's instruction indicates the continuation of the notification, the management application 500 skips step S240 and terminates the version control process.

[0089] As described above, the management application 500 performs version control processing. The management application 500 repeats the version control processing at time intervals indicated by the threshold S110 in Figure 3.

[0090] In this embodiment, custom software updates are performed by group members with the support of the software vendor, without going through the server 300. Therefore, if the custom software is not installed, the second radio button RB32, which indicates concurrent installation, may be omitted from the installation information screen DP3 in Figure 6.

[0091] D. Software Processing: Figures 8 and 9 are flowcharts illustrating examples of software processing. Figure 9 shows the continuation of the processing shown in Figure 8. In this embodiment, the target application, i.e., a standard application or a custom application, is launched in response to user instructions. If both standard and custom software are installed, the user may be able to select either the standard application or the custom application. Hereinafter, the target application currently running will be referred to as the current application. As shown in Figure 1, the current application 400t may be a custom application 400b. Alternatively, the current application 400t may be a standard application that includes standard software 411. The software processing in Figures 8 and 9 is executed by the current application 400t.

[0092] In S310, the current application 400t retrieves the current version of the startup software by referring to database 232 (Figure 1). Here, either the standard version V1c or the custom version V2c is retrieved.

[0093] In S315, the current application 400t refers to database 232 to obtain historical information IFO.

[0094] In S320, the current application 400t branches its processing depending on the type of startup software. If the current application 400t is a custom application, in S325, the current application 400t displays a custom startup screen on the display unit 240. Figure 10(A) shows an example of a custom startup screen. The custom startup screen DP5 represents texts T51 and T52. Text T51 indicates that the type of startup software is custom software. Text T52 indicates the version of the current application 400t. By referring to texts T51 and T52, the user can recognize that the application being launched is a custom application. Note that in S325 of Figure 8, the current application 400t may display the custom startup screen DP5 for a certain period of time while the current application 400t is running. Such a screen is also called a splash screen. After S325, the current application 400t proceeds to S340 of Figure 9.

[0095] In S320 of Figure 8, if the current application 400t is a standard application, in S330, the current application 400t determines whether the history information IFO indicates a history of changes in the installation type. For example, if the installation type has been changed from "custom" to "combined" or "standard", the result of the determination in S330 is Yes. If the result of the determination in S330 is Yes, in S335, the current application 400t displays the standard startup screen on the display unit 240. Figure 10(B) is a diagram showing an example of a standard startup screen. The standard startup screen DP6 represents texts T61 and T62. Text T61 indicates that the type of startup software is standard software. Text T62 indicates the version of the current application 400t. By referring to texts T61 and T62, the user can recognize that the application being launched is a standard application. In S335 of Figure 8, the current application 400t may display the standard startup screen DP6 as a splash screen. After S335, the current application 400t will migrate to S340 (Figure 9).

[0096] If the initial installation type was "Standard" and the installation type has not been changed, the result of S330 is No. If the result of S330 is No, the current application 400t skips S335 and proceeds to S340 in Figure 9.

[0097] In the S340, the current app 400t refers to the history information IFO to determine whether the latest installation type is "Normal," "Custom," or "Combined."

[0098] If the latest installation type is "Normal" or "Custom", the current application 400t in S390 will display the operation screen on the display unit 240.

[0099] If the current application 400t is a custom application 400b that includes the custom software 420 in Figure 1, the current application 400t displays, for example, the operation screen DP1b in Figure 2(B). If the current application 400t is a standard application 400a that includes the standard software 410, the current application 400t displays, for example, the operation screen DP1a in Figure 2(A). Figure 2(C) is a diagram showing an example of the operation screen of a standard application that includes the updated standard software 411. If the current application 400t is a standard application that includes the updated standard software 411, the current application 400t displays, for example, the operation screen DP1au in Figure 2(C). The only difference between operation screen DP1au and operation screen DP1a in Figure 2(A) is that the text T12a representing the version in Figure 2(A) is replaced with the text T12au representing the updated version.

[0100] In step S395 of Figure 9, the current application 400t performs processes such as printing and scanning according to user instructions entered through the operation screen. Then, the current application 400t terminates its software processing.

[0101] In S340, if the latest installation type is "combined," in S345, the current application 400t branches its processing according to the type of startup software. If the current application 400t is a custom application, in S350, the current application 400t displays the custom switching screen on the display unit 240.

[0102] Figure 11(A) shows an example of a custom switching screen. The custom switching screen DP8 consists of texts T81 and T82, and buttons B81 and B82. Text T81 indicates that the custom software has been launched and that it is possible to switch from the custom software to the standard software. Text T82 indicates important points regarding the switch. Specifically, text T82 indicates that additional functions F13b and F14b will become unavailable after the switch. Button B81 is for inputting the instruction to switch to the standard software. Button B82 is for inputting the instruction to use the custom software.

[0103] The user selects whether or not to switch software by referring to texts T81 and T82. Then, the user inputs instructions by operating either button B81 or B82.

[0104] In S355 of Figure 9, the current application 400t branches its processing according to the user's instructions. If the user's instructions indicate maintaining the custom software, the current application 400t proceeds to S390. Then, the current application 400t executes the processes in S390 and S395 and terminates the software processing.

[0105] If the user instructs a switch, at S360, the current application 400t executes a process to switch to the standard software. This switch process can be various. For example, a custom application and a standard application may be configured to allow switching from custom software to standard software without terminating the application. Specifically, the shared section 405 in Figure 1 may have the function of unloading custom software 420 and loading standard software such as standard software 411 without terminating the application. In this case, the process at S360 causes the current application 400t to switch from the custom application to the standard application. After S360, the current application 400t proceeds to S390. Then, the current application 400t executes the processes at S390 and S395 and terminates the software processing.

[0106] Furthermore, the custom app and the standard app may be configured to allow switching from the custom software to the standard software by restarting the app. In this case, in S360, the current app 400t starts the standard app and then terminates its software processing. The started standard app then executes the software processing shown in Figures 8 and 9. Note that automatic startup of the standard app may be omitted. The current app 400t may set a flag to select the standard app the next time the app is started.

[0107] In S345, if the current application 400t is the standard application, then in S370, the standard switching screen for the current application 400t is displayed on the display unit 240.

[0108] Figure 11(B) shows an example of a standard switching screen. The standard switching screen DP9 consists of texts T91 and T92, and buttons B91 and B92. Text T91 indicates that the standard software has been launched, that additional functions F13b and F14b are unavailable, and that it is possible to switch from the standard software to custom software that enables the additional functions. Text T92 indicates points to note regarding the switch. Specifically, text T92 indicates that some functions F13a and F14a will become unavailable after the switch. Button B91 is for inputting instructions to switch to custom software. Button B92 is for inputting instructions to use the standard software.

[0109] The user selects whether or not to switch software by referring to texts T91 and T92. Then, the user inputs instructions by operating either button B91 or B92.

[0110] In S375 of Figure 9, the current application 400t branches its processing according to the user's instructions. If the user's instructions indicate maintaining the standard software, the current application 400t proceeds to S390. Then, the current application 400t executes the processes in S390 and S395 and terminates the software processing.

[0111] If the user instructs a switch, at S380, the current application 400t executes the process to switch to the custom software. This switch process is performed in the same way as the switch process at S360. For example, the current application 400t switches from the standard application to the custom application without terminating the application. In this case, after S380, the current application 400t moves to S390. Then, the current application 400t executes the processes at S390 and S395 and terminates the software processing. Alternatively, the current application 400t may launch the custom application and then terminate the software processing. The launched custom application executes the software processing shown in Figures 8 and 9. Note that the automatic launch of the custom application may be omitted. The current application 400t may set a flag to select the custom application the next time the application is launched.

[0112] As described above, in this embodiment, the processor 210 of the terminal device 200 in Figure 1 executes the following processes according to the management application program 500. In S135 of Figure 3, the processor 210 obtains data of the latest version V1s related to the standard software 411 stored in the server 300 from the server 300. The standard software 411 is software that causes the terminal device 200 to execute multiple functions F11, F12, F13a, and F14a of the first type function set FSa in Figure 2(A). The multiple functions F11, F12, F13a, and F14a of the first type function set FSa are examples of multiple first type functions determined by the software vendor. Hereinafter, functions F11, F12, F13a, and F14a will also be referred to as first type functions F11, F12, F13a, and F14a. The terminal device 200 is an example of a target device that executes first type functions. Standard software 411 is an example of first software for causing a target device to execute multiple first functions. The data for the latest version V1s is an example of first related information associated with the first software stored in server 300. The process in S135 is an example of a first acquisition process for obtaining first related information from the server.

[0113] In S115 of Figure 3, the processor 210 obtains version data of the software installed on the terminal device 200. Here, either the standard version V1c and / or the custom version V2c are obtained. The software installed on the terminal device 200 may be custom software 420 or standard software 410. The software installed on the terminal device 200 is an example of the second software. The version data obtained in S115 is an example of second related information related to the second software. The process in S115 is an example of a second acquisition process that obtains second related information.

[0114] In S140 and S145, the processor 210 determines whether the latest version V1s is newer than the version obtained in S115. That is, the processor 210 determines whether the standard software 411 stored in the server 300 is newer than the second software already installed in the terminal device 200. Such processing in S140 and S145 is an example of a first determination process that determines whether the first software stored in the server 300 was provided after the second software was provided.

[0115] In S120, the processor 210 determines whether the terminal device 200 has standard software. If the terminal device 200 does not have standard software, the second software installed on the terminal device 200 is custom software 420. Thus, in S120, the processor 210 determines whether the second software is custom software 420.

[0116] As explained in Figure 2(B), the custom software 420 is software that causes the terminal device 200 to execute multiple functions F11, F12, F13b, and F14b of the Type II function set FSb. The multiple functions F11, F12, F13b, and F14b of the Type II function set FSb are examples of multiple Type II functions requested by the administrator of the terminal device 200. Hereinafter, functions F11, F12, F13b, and F14b will also be referred to as Type II functions F11, F12, F13b, and F14b.

[0117] As explained in Figures 2(A) and 2(B), the multiple Type 2 functions F11, F12, F13b, and F14b, i.e., the Type 2 function set FSb, have the following three configurations. (First configuration C1) Includes one or more common functions F11, F12, which are the remaining functions of the multiple Type 1 functions F11, F12, F13a, F14a, but does not include one or more excluded functions F13a, F14a, which are part of the multiple Type 1 functions F11, F12, F13a, F14a. (Second configuration C2) Includes one or more additional functions F13b, F14b that are not included in the multiple Type 1 functions, and functions F11, F12 that are some or all of the multiple Type 1 functions. (Third configuration C3) Includes a Type 2 FAX function F13b obtained by changing the Type 1 setting STa, which is the operation setting of Type 1 FAX function F13a, an example of a Type 1 function included in multiple Type 1 functions, and functions F11 and F12, which are part of multiple Type 1 functions.

[0118] Custom software having multiple Type 2 functions and possessing one or more of the three configurations C1-C3 described above is called specific custom software. Custom software 420 forming the custom application 400b in Figure 1 is an example of specific custom software. Hereafter, custom software 420 will also be referred to as specific custom software 420. In S120 of Figure 3, the processor 210 determines whether the Type 2 software installed on the terminal device 200 is specific custom software 420. The process in S120 is an example of a second determination process that determines whether the Type 2 software is specific custom software.

[0119] If the second software is specific custom software 420 (S120: No), then in S150, the latest installation type is "custom" or "combined". Thus, if the standard software 411 stored in the server 300 is software provided after the provision of the second software (S145: Yes), and the second software is specific custom software 420 (S120: No, S150: "custom" or "combined"), the processor 210 executes the process in S180 of Figure 4. In S180, the processor 210 displays the installation information screen DP3 of Figure 6 on the display unit 240. The installation information screen DP3 represents text T30. Text T30 is an example of information indicating that the standard software 411 can be installed.

[0120] As shown in Figure 4, the processor 210 executes S190 or S210 in certain cases. In S190 or S210, the processor 210 executes a process to install standard software 411 on the terminal device 200. In this embodiment, the specific case is when the user instruction for the installation information screen DP3 displayed in S180 indicates "update installation" or "combined installation". The processes in S190 and S210 are examples of specific processes that execute a process to install standard software 411.

[0121] According to this configuration, if the second software already installed on the terminal device 200 is specific custom software 420, standard software 411, which causes the terminal device 200 to execute a plurality of first-type functions F11, F12, F13a, F14a determined by the software vendor, and which is provided after the specific custom software 420 is provided, can be installed on the terminal device 200. Note that the terminal device 200 having a non-volatile storage device 230 that stores the management application program 500 and a processor 210 is an example of a system that performs the above processing.

[0122] Furthermore, in this embodiment, the installation information screen DP3 in Figure 6 displays texts T31a and T31b associated with "Update Installation" which is linked to the first radio button RB31. "Update Installation" is a process that updates specific custom software 420 already installed on the terminal device 200 to standard software 411 by installing standard software 411. Texts T31a and T31b represent notes regarding the update installation. Text T31a indicates that one or more exclusion functions F13a and F14a will become available. Text T31b indicates that one or more additional functions F13b and F14b will become unavailable. With this configuration, the installation information screen DP3 can make the user aware of the changes in functionality due to the update installation.

[0123] Furthermore, in this embodiment, the installation information screen DP3 in Figure 6 includes radio buttons RB31-RB33. Radio buttons RB31-RB33 include a first radio button RB31 associated with update installation and a second radio button RB32 associated with concurrent installation. The update installation method is an installation method for standard software 411 that updates specific custom software 420 to standard software 411. The concurrent installation method is an installation method that installs standard software 411 in parallel with specific custom software 420. Radio buttons RB31-RB33 are an example of a user interface that allows the user to choose between update installation and concurrent installation. With this configuration, the user can select the appropriate installation method. For example, if the additional functions provided by custom software 420 are used infrequently, the user may choose update installation. To use both the additional functions provided by custom software 420 and the functions provided by standard software 411, the user may choose concurrent installation.

[0124] Furthermore, in this embodiment, the installation information screen DP3 in Figure 6 represents the second radio button RB32, and the label L32 and text T32 associated with the second radio button RB32. Label L32 indicates that the second radio button RB32 is associated with a combined installation. A combined installation is a method of installing the standard software 411 in parallel with the custom software 420. With this configuration, by selecting a combined installation, the user can use both the additional functions provided by the custom software 420 and the functions provided by the standard software 411.

[0125] In this embodiment, a custom application 400b including custom software 420, or a standard application including standard software 411, executes software processing (Figures 8 and 9). If standard software 411 is installed on the terminal device 200 in parallel with the specific custom software 420, the processing moves from S340 to S345 in Figure 9. After S345, S350 or S370 is executed. In S350, the custom switching screen DP8 in Figure 11(A) is displayed on the display unit 240. The custom switching screen DP8 includes buttons B81 and B82. Buttons B81 and B82 are examples of a user interface that allows the user to switch between standard software and custom software. In S370 in Figure 9, the standard switching screen DP9 in Figure 11(B) is displayed on the display unit 240. The standard switching screen DP9 includes buttons B91 and B92. Buttons B91 and B92 are examples of a user interface that allows the user to switch between standard software and custom software. Since such switching screens DP8 and DP9 are displayed, the user can easily switch between the first type of function set FSa provided by the standard software and the second type of function set FSb provided by the custom software. A terminal device 200 having a non-volatile storage device 230 that stores one or both of the programs, either a custom application 400b containing custom software 420 or a standard application containing standard software 411, and a processor 210, is an example of a system that displays a switching screen.

[0126] Furthermore, in this embodiment, the multiple Type 2 functions F11, F12, F13b, and F14b provided by the custom software 420 have the second configuration C2 described above. The custom switching screen DP8 in Figure 11(A) represents the text T82. The text T82 indicates that switching from the custom software 420 to the standard software 411 will render one or more additional functions F13b, F14b in Figure 2(B) unusable. With this configuration, the custom switching screen DP8 can appropriately allow the user to decide whether or not to switch from the custom software 420 to the standard software 411.

[0127] Furthermore, as shown in Figure 4, the processor 210 executes S190 or S210 to install the standard software 411 on the terminal device 200 in certain cases. In this embodiment, the certain cases are when the installation information screen DP3 is displayed in S180, and then in S185, the processor receives a user instruction indicating "update installation" or "combined installation". These user instructions indicate the installation of the standard software 411. With this configuration, the processor 210 can install the standard software 411 in response to a user instruction indicating the installation of the standard software 411.

[0128] Furthermore, in this embodiment, if, after the installation information screen DP3 in Figure 6 is displayed at S180 in Figure 4, the processor 210 receives a user instruction at S185 not to install the standard software 411, the processor 210 proceeds to S230. At S230, the processor 210 displays the stop selection screen DP4 in Figure 7 on the display unit 240. The stop selection screen DP4 includes buttons B41 and B42. As explained in S170 in Figure 3 and S235 and S240 in Figure 4, if button B41 is operated, the display of the installation information screen DP3 is stopped until the standard software 411 stored in the server is updated to a newer standard software. If button B42 is operated, the installation information screen DP3 may be displayed again. Thus, in S230-S240 of Figure 4, the processor 210 allows the user to choose whether or not to stop the display of the installation information screen DP3. With this configuration, if the user does not wish to install the standard software 411, the processor 210 can stop repeatedly displaying the installation information screen DP3.

[0129] Furthermore, in this embodiment, as shown in Figure 1, the terminal device 200 includes a display unit 240. In S180 of Figure 4, the processor 210 displays the installation information screen DP3 of Figure 6 on the display unit 240 of the terminal device 200. Thus, the processor 210 can make the user observing the display unit 240 of the terminal device 200 aware that it is possible to install the standard software 411.

[0130] B. Variations: (1) The configuration of the installation information screen is not limited to the configuration of the installation information screen DP3 in Figure 6, and may be in various configurations. For example, the first information, which is a note on update installation and indicates that exclusion functions will be available, may include various information instead of text T31a. For example, the first information may include a checklist indicating whether each of several functions is available or not. The first information may be omitted. The second information, which indicates that one or more additional functions will be unavailable, may include various information instead of text T31b. For example, the second information may include a checklist indicating whether each of several functions is available or not. The second information may be omitted. The user interface that allows the user to select the installation method may include various user interfaces instead of radio buttons RB31-RB33. For example, a pull-down menu may be used.

[0131] (2) The configuration of the switching screen, which includes a user interface that allows the user to switch between standard software and custom software, is not limited to the configurations of the switching screens DP8 and DP9 in Figures 11(A) and 11(B), but may be in various configurations. For example, information indicating that one or more additional functions will become unavailable when switching from custom software to standard software may include various types of information instead of the text T82 in Figure 11(A). For example, a checklist indicating whether each of several functions is available or not may be used. Note that such information may be omitted.

[0132] (3) The version control process is not limited to the processes shown in Figures 3 and 4, but may be various processes. For example, after the installation information screen DP3 in Figure 6 is displayed in S180 in Figure 4, the management application 500 may execute S190 or S210 without using user instructions. Thus, in the specific cases in which S190 or S210 for installing the standard software 411 is executed, the installation information screen DP3 may be displayed. Here, one of S190 and S210 may be executed based on predetermined processes. Also, in the specific cases, various specific conditions may be met. Furthermore, either the update installation or the concurrent installation may be omitted. Also, S170 in Figure 3 and S230-S240 in Figure 4 may be omitted.

[0133] (4) Various screens displayed by the version control process may be displayed on the display unit 140 of the multifunction printer 100 instead of the display unit 240 of the terminal device 200. For example, the management application 500 of the terminal device 200 supplies the multifunction printer 100 with instructions to display screens such as the installation information screen DP3. The processor 110 of the multifunction printer 100 displays the screen on the display unit 140 according to the instructions. The user inputs instructions by operating the operation unit 150 of the multifunction printer 100. The processor 110 of the multifunction printer 100 transmits data representing the input instructions to the terminal device 200. Similarly, various screens displayed by software processing may be displayed on the display unit 140 of the multifunction printer 100 instead of the display unit 240 of the terminal device 200.

[0134] (5) Multiple Type 1 functions provided by standard software 410, 411 may include a variety of functions, not limited to functions F11, F12, F13a, F14a in Figure 2(A). Similarly, multiple Type 2 functions provided by custom software 420 may include a variety of functions, not limited to Type 2 functions F11, F12, F13b, F14b in Figure 2(B). For example, Type 2 function set FSb may include some or all of Type 1 function set FSa in Figure 2(A). Also, Type 2 function set FSb may include functions F13a, F14a. That is, the first configuration C1 may be omitted from Type 2 function set FSb. Also, functions F13b, F14b may be omitted from Type 2 function set FSb. That is, the second configuration C2 may be omitted from Type 2 function set FSb. Furthermore, the first-type fax function F13a may be omitted from the first-type function set FSa, and the second-type fax function F13b may be omitted from the second-type function set FSb. In other words, the third configuration C3 may be omitted from the second-type function set FSb. Generally, multiple second-type functions provided by specific custom software may have one or more configurations selected from the above configurations C1-C3.

[0135] (6) The standard application 400a and other standard applications in Figure 1, and the custom application 400b, may be applications that run on the multifunction printer 100. The management application 500 running on the terminal device 200 may perform the version management process shown in Figures 3 and 4 to install the new standard software 411 on the multifunction printer 100. In this case, the data for the standard application 400a and other standard applications, the custom application 400b, and the database 232 are stored in the non-volatile storage device 130 of the multifunction printer 100. In S115 of Figure 3, the management application 500 obtains the history information IFO and the current versions V1c and V2c from the multifunction printer 100. In S160 of Figure 3 and S190 and S210 of Figure 4, the management application 500 may supply the multifunction printer 100 with an installation instruction that includes the data for the new standard software 411. In steps S165, S195, and S215, the processor 110 of the multifunction printer 100 may install the standard software 411 on the multifunction printer 100 according to the installation instructions. Alternatively, in steps S160, S190, and S210, the management application 500 may supply the multifunction printer 100 with installation instructions that do not include the data for the standard software 411. In steps S165, S195, and S215, the processor 110 of the multifunction printer 100 may download the data for the standard software 411 from the server 300 according to the installation instructions and install the standard software 411 on the multifunction printer 100. In addition, various screens such as the installation information screen DP3 in Figure 6 may be displayed on the display unit 140 of the multifunction printer 100. Furthermore, the software processing in Figures 8 and 9 may be executed by the multifunction printer 100 without using the terminal device 200. In the above configuration, the entire system consisting of the multifunction printer 100 and the terminal device 200 is an example of a system that performs management processing and software processing. Here, the management application 500 may also be an application that runs on the multifunction printer 100. In this case, the multifunction printer 100 is an example of a system that performs management processing and software processing. The terminal device 200 may be omitted.

[0136] (7) In each of the above embodiments and modifications, the management application 500 may be omitted, and a standard application such as the standard application 400a and a custom application 400b may be configured to perform version control processing. If both the standard application and the custom application 400b are installed, one of them may be predetermined to perform version control processing.

[0137] (8) The application subject to version control is not limited to an application that causes the multifunction printer 100 to perform processes such as printing and scanning, but may be any application. For example, the application subject to version control may be a status monitor application that displays the status of the multifunction printer 100. A standard status monitor may have an ink level display function and a paper level display function. A customized status monitor may have a cumulative print count display function in addition to these display functions. Furthermore, the application subject to version control may be software for controlling a device other than the multifunction printer 100. The device to be controlled may be a variety of devices such as a scanner, digital camera, sewing machine, cutting machine, or machine tool. Furthermore, the device on which the application is executed is not limited to a terminal device such as a personal computer, smartphone, or tablet computer, or a multifunction printer, but may be a variety of devices such as a scanner, digital camera, sewing machine, cutting machine, or machine tool.

[0138] (9) The software processing performed by the target application is not limited to the processing shown in Figures 8 and 9, but may be various other processing. For example, steps S320-S335 in Figure 8 may be omitted. In this case as well, the operation screens DP1a, DP1b, and DP1au in Figures 2(A)-2(C) represent the text T11a and T11b indicating the type of software launched. The user can recognize the type of software launched by referring to the text T11a and T11b. A custom application may be a dedicated application for a specific group. In this way, a general user may use a standard application without being aware of the existence of a custom application. Information indicating a comparative relationship with custom software, such as "Standard" in text T11a, may be omitted from the operation screen of a standard application. In this case as well, it is preferable that the operation screen of a standard application displays information that identifies the launched software, such as the name of the application. Furthermore, the operation screen of a custom application may display various information indicating that the launched software is different from standard software, not limited to "Custom Software" in text T11b. For example, the operation screen of a custom application may display a name different from that of a standard application. Information identifying the launched software, such as the type or name of the launched software, may be omitted from the operation screen. In this case, it is preferable to notify the user of the information identifying the launched software using S320-S335 in Figure 8. Similar to the operation screen of a standard application, information indicating a comparative relationship with custom software, such as "Standard" in text T61 of Figure 10(B), may be omitted from the launch screen of a standard application. It is preferable that the launch screen of a standard application displays information identifying the launched software, such as the application name. Similar to the operation screen of a custom application, the launch screen of a custom application may display various information indicating that the launched software is different from standard software, not limited to "Custom Software" in text T51 of Figure 10(A). Furthermore, after a combined installation, the user may be able to select which application to launch from the standard application and the custom application. In this case, S340-S380 in Figure 9 may be omitted.

[0139] (10) In each of the above embodiments and modifications, multiple devices (e.g., computers) that can communicate with each other via a network may share the functions of version control processing, and as a whole, provide the functions of version control processing. A system comprising these devices corresponds to a system that performs version control processing.

[0140] In each of the above embodiments, some of the configurations implemented by hardware may be replaced with software, and conversely, some or all of the configurations implemented by software may be replaced with hardware. For example, version control processing may be performed by a dedicated hardware circuit such as an Application Specific Integrated Circuit (ASIC).

[0141] Furthermore, if some or all of the functions of this disclosure are implemented by a computer program, that program may be provided in the form of a computer-readable recording medium (e.g., a non-temporary recording medium). The program may be used while stored on the same or a different recording medium (computer-readable recording medium) as it was provided. "Computer-readable recording medium" is not limited to portable recording media such as memory cards and CD-ROMs, but may also include internal storage devices within a computer, such as various ROMs, and external storage devices connected to a computer, such as hard disk drives.

[0142] The above embodiments and modifications can be combined as appropriate. Furthermore, the above embodiments and modifications are provided to facilitate understanding of this disclosure and do not limit the present invention. The present invention can be modified and improved without departing from its spirit, and equivalents thereof are included. [Explanation of symbols]

[0143] 100...Multifunction printer, 110, 210, 310...Processor, 115, 215, 315...Storage device, 120, 220, 320...Volatile storage device, 130, 230, 330...Non-volatile storage device, 140, 240...Display unit, 150, 250...Operation unit, 160...Print execution unit, 170...Reading execution unit, 180, 280, 380...Communication interface, 200...Terminal device, 232...Database, 300...Server, 332...Version information, PG1, PG3...Program, 400a...Standard application, 400b...Custom application, 410, 411...Standard software Software, 420...Custom software, 500...Management application program, 400t...Current application, 405...Shared area, 1000...Communication system, DP1a, DP1b, DP1au...Operation screen, DP2...Update notification screen, DP3...Installation information screen, DP4...Stop selection screen, DP5...Custom startup screen, DP6...Standard startup screen, DP8...Custom switching screen, DP9...Standard switching screen, IT...Internet, LN...Local area network, FSa...Type 1 function set, FSB...Type 2 function set, IFO...History information

Claims

1. It is a system, A first acquisition process that acquires first related information from the server relating to first software stored on the server, which is used to execute a plurality of first functions determined by the software vendor on a target device, A second acquisition process for acquiring second related information related to the second software already installed on the target device, A first determination process that uses the first related information and the second related information to determine whether the first software is software provided after the provision of the second software, A second determination process for determining whether the second software is specific custom software, wherein the specific custom software is software that causes the target device to execute a plurality of Type II functions requested by the administrator of the target device, and the plurality of Type II functions have one or more configurations from three configurations: (1) a first configuration indicating that it includes one or more common functions that are the remaining parts of the plurality of Type I functions, but does not include one or more excluded functions that are part of the plurality of Type I functions; (2) a second configuration indicating that it includes one or more additional functions that are not included in the plurality of Type I functions and some or all of the plurality of Type I functions; and (3) a third configuration indicating that it includes a second function obtained by changing the operating settings of a Type I function included in the plurality of Type I functions and some of the plurality of Type I functions. A display process that displays an installation information screen, which is a screen showing information indicating that the first software can be installed, when the first software is software provided after the second software is provided, and the second software is the specific custom software; In a specific case, a specific process is performed to install the first software on the target device, A system that executes this.

2. The system according to claim 1, The installation information screen displays, as a note for updating the second software, which is the specific custom software already installed on the target device, to the first software by installing the first software, one or both of the following: information indicating that one or more exclusion functions will become available, and information indicating that one or more additional functions will become unavailable. system.

3. A system according to claim 1 or 2, The aforementioned installation information screen is, A method for installing the first software to update the second software to the first software, An installation method for installing the first software in parallel with the second software, Includes a user interface that allows the user to choose the installation method, system.

4. A system according to claim 1 or 2, The aforementioned installation information screen displays information indicating that the first software will be installed in parallel with the second software. system.

5. The system according to claim 4, If the first software is installed on the target device in parallel with the second software, the system executes a process to display a switching screen that includes a user interface allowing the user to switch between the first software and the second software. system.

6. The system according to claim 5, The plurality of second functions provided by the second software have the second configuration, The aforementioned switching screen displays information indicating that the one or more additional functions become unavailable when switching from the second software to the first software. system.

7. A system according to claim 1 or 2, In the aforementioned specific case, the user instructions for installing the first software are received after the installation information screen is displayed. system.

8. A system according to claim 1 or 2, If the system receives a user instruction not to install the first software after the installation information screen has been displayed, it executes a process that allows the user to choose whether or not to stop displaying the installation information screen until the first software stored on the server is updated to a newer version of the first software. system.

9. A system according to claim 1 or 2, The aforementioned target device includes a display device, The display process includes the process of displaying the installation information screen on the display device of the target device. system.

10. It is a program, A first acquisition function that acquires first related information from the server relating to first software stored on the server, which is used to execute a plurality of first functions determined by the software vendor on a target device, A second acquisition function for acquiring second related information related to the second software already installed on the target device, A first determination function that uses the first related information and the second related information to determine whether the first software is software provided after the provision of the second software, A second determination function for determining whether the second software is specific custom software, wherein the specific custom software is software that causes the target device to execute a plurality of Type II functions requested by the administrator of the target device, and the plurality of Type II functions have one or more configurations from three configurations: (1) a first configuration indicating that it includes one or more common functions that are the remaining of the plurality of Type I functions, but does not include one or more excluded functions that are part of the plurality of Type I functions; (2) a second configuration indicating that it includes one or more additional functions that are not included in the plurality of Type I functions and some or all of the plurality of Type I functions; and (3) a third configuration indicating that it includes a second function obtained by changing the operating settings of the first functions included in the plurality of Type I functions and some of the plurality of Type I functions. A display function that displays an installation information screen, which is a screen showing information indicating that the first software can be installed when the first software is software provided after the second software is provided, and the second software is the specific custom software; A specific function that, in a specific case, performs a process to install the first software on the target device, A program that enables a computer to realize this.