Information processing device, information processing method, and non-transitory computer program product

There is provided a device including an installer configured to install a program in the device, the program belonging to one or more classes of a plurality of classes of functions, and a determining unit configured to determine, for a specific class to which a specific program to be installed belongs, whether a number of programs available in the device reaches an upper limit number corresponding to the specific class in a storage unit configured to store, for each class, an upper limit number of programs to be available, wherein the installer is configured to vary a process related to installation of the specific program depending on a determination result by the determining unit.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present disclosure relates to an information processing device, an information processing method, and a non-transitory computer program product

2. Description of the Related Art

As for various types of devices, such as an image forming apparatus, convenience can be enhanced by optionally installing or updating an application program, etc., (which is referred to as the “application,” hereinafter) in such devices.

For similar functions or services, a plurality of types of applications may be provided. For example, with regard to an image forming apparatus, a plurality of types of applications may be provided for a printing function. Namely, as examples of applications related to the printing function, there may be, in addition to a normal printing application, a simple printing application that can assign only necessary functions for each user; a security enhanced printing application that can only print one's own job in response to an IC card being placed in close proximity, and so forth. A user can select, from a plurality of types of applications, an application that matches own needs, policies, etc.; and the user can install the selected application.

If a large number of applications related to similar functions is installed in one device, each user sharing the one device may be confused as to which application is to be used.

There is a need for a device that can prevent a user from being confused by presence of a large number of available programs.

SUMMARY OF THE INVENTION

According to an aspect of the present disclosure, there is provided a device including an installer that installs a program in the device, the program belonging to one or more classes of a plurality of classes of functions; and a determining unit that determines, for a specific class to which a specific program to be installed belongs, whether a number of programs available in the device reaches an upper limit number corresponding to the specific class in a storage unit that stores, for each class, an upper limit number programs to be available, wherein the installer varies a process related to installation of the specific program depending on a determination result by the determining unit.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following, embodiments of the present disclosure are described based on the drawings. According to the embodiments, a device is provided that can prevent a user from being confused by presence of a large number of available programs.FIG. 1is a diagram illustrating an example of a system configuration according to an embodiment. InFIG. 1, one or more image forming apparatuses10and a distribution server20are coupled through a network, such as a Local Area Network (LAN) or the Internet.

The image forming apparatus10is a multifunction apparatus provided with a single housing. The image forming apparatus10implements two or more functions of printing, scanning, copying, and facsimile transmission and reception. However, a device provided with any one of the functions may be used as the image forming apparatus10. Furthermore, the image forming apparatus10according to the embodiment is an example of a device; and a device, such as a projector, a video conference system, or a digital camera, may be used instead of the image forming apparatus10. In this case, the hardware configuration of the device may slightly differ from the hardware configuration ofFIG. 2depending on the device (e.g., a scanner12and a printer13included in the image forming apparatus10may not be required). It suffices if the device is provided with, in addition to configurations corresponding to an operations panel15, a controller11, and a network interface16illustrated inFIG. 2, a configuration specific to each device (e.g., if the device is a projector, a projection device including a projection lens; and if the device is a digital camera, an imaging device).

The distribution server20is one or more computers that distribute, to the image forming apparatus10, an application program (which is referred to as an “application,” hereinafter) requested by the image forming apparatus10.

FIG. 2is a diagram illustrating an example of a hardware configuration of the image forming apparatus10according to the embodiment. InFIG. 2, the image forming apparatus10is provided with hardware components, such as the controller11, a scanner12, a printer13, a modem14, the operations panel15, the network interface16, and a secure digital (SD) card slot17.

The controller11is provided with a central processing unit (CPU)111; a random-access memory (RAM)112; a read-only memory (ROM)113; a hard disk drive (HDD)114; and a non-volatile random access memory (NVRAM)115. The ROM113stores various types of programs and data items to be used by the programs. The RAM112is used as a storage area where programs are to be loaded, and as work areas for the loaded programs. The CPU111implements various types of functions by respectively processing programs loaded onto the RAM112. The HDD114stores programs and various types of data items to be used by the programs. The NVRAM115stores various types of configuration information (setting information).

The scanner12is a hardware component (an image reader) for reading image data on a paper document. The printer13is a hardware component (a printing unit) for printing print data onto a print sheet. The modem14is a hardware component for establishing a connection to a telephone line. The modem14is used for executing transmission and reception of image data via facsimile communication. The operations panel15is a hardware component provided with an input unit (e.g., a button) for receiving an input from a user and a display (e.g., a liquid crystal panel). The liquid crystal panel may be provided with a touch panel function. In this case, the liquid crystal panel also functions as an input unit. The network interface16is a hardware component for establishing a connection to a network, such as a local area network (LAN), regardless of whether the network is a wired network or a wireless network. The SD card slot17is used for reading a program stored in a SD card80. Namely, in the image forming apparatus10, not only a program stored in the ROM113, but also a program stored in the SD card80may be loaded into the RAM112to be executed. Note that the SD card80may be replaced with another recording medium (e.g., a compact disc read-only memory (CD-ROM) or a universal serial bus (USB) memory). Namely, types of the recording media equivalent to the SD card80are not limited to predetermined types. In this case, the SD card slot17may be replaced with a hardware component corresponding to the type of the recording medium.

FIG. 3is a diagram illustrating an example of a hardware configuration of the distribution server20according to the embodiment. The distribution server20ofFIG. 3is provided with a drive device200; an auxiliary storage device202; a memory device203; a CPU204; and an interface device205, which are mutually connected to via a bus B.

A program for implementing a process of the distribution server20may be provided using a recording medium201, such as a CD-ROM. In response to detecting that the recording medium201storing a program is attached to the drive device200, the program is read out from the recording medium201and is installed in the auxiliary storage device202through the drive device200. However, installation of a program may be performed without using the recording medium201. A program may be downloaded from another computer through a network. The auxiliary storage unit202stores an installed program together with necessary files and data items.

In response to detecting a command for activating a program, the memory device203reads out a program from the auxiliary storage device202and stores the program. The CPU204executes a function related to the distribution server20in accordance with a program stored in the memory device203. The interface device205is used as an interface for connecting to a network.

FIG. 4is a diagram illustrating an example of functional configurations of respective devices according to the embodiment. InFIG. 4, the image forming apparatus10is provided with, for example, various types of application121, such as an application A and an application B; various types of firmware122, such as firmware “a” and firmware “b”; an installation command receiver123; an installation target retrieval unit124; a determining unit125; and an installer126. Each of these components may be implemented by a process that is caused to be executed by the CPU111by one or more programs installed in the image forming apparatus10. Furthermore, the image forming apparatus10uses an installation information storage unit131. The installation information storage unit131may be implemented, for example, using the HDD114or a storage device that can be connected to the image forming apparatus10through a network.

The application121is a program for providing a function or a service requested by a user through a user interface, such as an operation screen.

The firmware122is a program provided with an application program interface (API) for using a function of the image forming apparatus10(e.g., a scanning function, a printing function, and a facsimile transmission/reception function).

The installation command receiver123receives an installation command for installing an application121from a user. The installation command specifies the application121, which is an installation target. The installation target retrieval unit124retrieves (downloads), from the distribution server20, data for installing the application121(which is referred to as “installation data,” hereinafter), which is specified as the installation target.

The determining unit125determines as to whether the application121that is specified as the installation target is allowed to be installed by referring to the installation information storage unit131. In the embodiment, for each class (which may include classification, the class is referred to as a “function type,” hereinafter) of functions of the application121or the image forming apparatus10, an upper limit number of installable applications121is defined. The determining unit125determines, for a function type to which the application121that is specified as the installation target belongs, whether installation of the application121that is the installation target is allowed by comparing a number of applications121that have already been installed in the image forming apparatus10with the upper limit number.

The installation information storage unit131stores, for each function type, identification information of one or more applications121that have already been installed and information indicating an upper limit number of installation.

The installer126executes an installation process for an application121that is an installation target. However, the installer126varies the installation process depending on a determination result by the determining unit125. Specifically, upon detecting that installation of the application121that is the installation target is allowed, the installer126executes installation of the application121. However, upon detecting that installation of the application121is disallowed, the installer126does not execute installation of the application121.

The distribution server20is provided with an application transmitter21. The application transmitter21is implemented by a process that is caused to be executed by the CPU204by one or more programs installed in the distribution server20. Furthermore, the distribution server20uses an application storage unit211. The application storage unit211may be implemented, for example, using the auxiliary storage device202or a storage device that can be connected to the distribution server20through a network.

The application transmitter21transmits, to the image forming apparatus10, installation data related to a retrieval request from the image forming apparatus10. The application storage unit211stores installation data for each application121that can be installed in the image forming apparatus10.

In the following, a procedure is described that is to be executed by the image forming apparatus10in the embodiment.FIG. 5is a flowchart illustrating an example of the procedure to be executed by the image forming apparatus10in the embodiment. InFIG. 5, a user operates the image forming apparatus10.

At step S101, the installation command receiver123receives an installation command for installing an application121from the user. In the installation command, identification information of the application121(which is referred to as “application ID,” hereinafter) that is the installation target is specified. For example, the installation command receiver123may obtain list information of installable applications121from the distribution server20; and the installation command receiver123may display, on the operations panel15, resultant information obtained by removing information about applications121that have already been installed in the image forming apparatus10from the list information. An application121selected by the user from the displayed list information may be an installation target. In the following, an application121that is an installation target is referred to as a “target application,” and an application ID of a target application is referred to as a “target application ID.”

Subsequently, the installation target retrieval unit124retrieves installation data of the target application from the distribution server20(S102). For example, the installation target retrieval unit124transmits, to the distribution server20, a retrieval request for retrieving the installation data including the target application ID. The application transmitter21of the distribution server20retrieves, from the application storage unit211, installation data related to the target application ID included in the retrieval request; and the application transmitter21transmits the installation data to the installation target retrieval unit124.

FIG. 6is a diagram illustrating an example of a configuration of the installation data. As illustrated inFIG. 6, the installation data dl includes application object data d11and application information data d12.

The application object data d11is an entity of the application121, namely, a program part of the application121. The application information data includes administrative information or attribute information of the application121. InFIG. 6, the application information data includes an application name, an application ID, and a function type.

The application name is, for example, identification information of the application121presented to the user. The application ID is identification information for the image forming apparatus10and the distribution server20to identify each application121. However, the image forming apparatus10and the distribution server20may identify each application121based on the application name. The function type represents a class (i.e., classification or a function type) to which the application121belongs. InFIG. 6, an example is illustrated where the target application belongs to three function types of “printing,” “scanning,” and “distributing.” Namely, a single application121may belong to one or more function types. A function type to which an application121belongs may be a function type of a function used by the application121, among functions provided by the image forming apparatus10; or a function type of a function implemented by the application121.

Subsequently, the determining unit125substitutes a function type number of the target application in a variable N (S103). A function type number of a target application is defined to be a number of function types to which the target application belongs. The function type number can be obtained by counting a number of function types the application information data of the target application. In the example ofFIG. 6, the function type number of the target application is three.

Subsequently, the determining unit125substitutes1in a variable “n” (S104). A variable “n” indicates an order of a function type to be processed, among function types to which a target application belongs. In the following, the n-th function type is referred to as a “function type n.” In the example ofFIG. 6, the function type1is “printing.”

Subsequently, the determining unit125determines, by referring to the installation information storage unit131, whether an installation number of applications121in the image forming apparatus10with respect to a function type n is less than the upper limit number (S105).

FIG. 7is a diagram illustrating an example of a configuration of the installation information storage unit131. As illustrated inFIG. 7, the installation information storage unit131stores, for each function type, a function type name, an upper limit number, and an installation status.

The function type name is a name of a function type. The upper limit number is an upper limit value of an installation number of applications121belonging to the function type. The installation status is a list of application names of applications121that have already been installed in the image forming apparatus10, among the applications121belonging to the function type. Accordingly, by counting the number of the application names in the installation status, the installation number with respect to the function type can be obtained. Note that, inFIG. 7, an example is illustrated where the application names of respective applications121are stored in the field of the installation status, for convenience. However, the application IDs may not be stored.

In the example ofFIG. 7, an example is illustrated where the App1belongs to the function types of scan, print, distribution, tracking, device address book referencing, and device address book writing. Additionally, the upper limit number with respect to the authentication is one, and the App8is installed with respect to the authentication.

According toFIG. 7, for each of the facsimile transmission, the print, the distribution, the accumulation, and the device address book referencing, the installation number does not reach the upper limit number. In contrast, for each of the authentication, the scan, the facsimile reception, the tracking, the OCR, and the device address book writing, the installation number reaches the upper limit number.

Note that, in the installation information storage unit131, the upper limit numbers and the installation status may differ depending on the image forming apparatus10, or may be common among a plurality of image forming apparatuses10. In the latter case, information about the plurality of image forming apparatuses10may be centrally managed by the distribution server20, for example.

Upon detecting that the installation number with respect to the function type n is less than the upper limit number (YES at S105), the determining unit125determines whether “n” is less than “N” (S106). In other words, a determination is made as to whether, for all the function types to which the target application belongs, the installation number has been compared with the upper limit number.

In response to detecting that “n” is less than “N” (NO at S106), 1 is added to “n” (S107), and the process on and after step S105is repeated. Namely, the process on and after step S105is executed for the next function type, among the function types to which the target application belongs.

Upon detecting that the value of “n” is equal to the value of “N” (YES at S106), the determining unit125determines that the installation of the target application is allowed (“installation is allowed” at S108) (S108). Subsequently, the installer126installs the installation data of the target application in the image forming apparatus10(S109). Upon detecting that the installation is successful, the installer126updates contents of the installation information storage unit131. Namely, the installer126stores, in the installation information storage unit131, the application name of the target application while associating the application name with each function type to which the target application belongs.

Upon detecting, for any one of the function types n, that the installation number reaches the upper limit number (NO at S105), the determining unit125determines that installation of the target application is disallowed (“installation is disallowed” at S110) (S110). In this case, the installer126does not execute installation of the target application. Namely, when the application121belongs to a plurality of function types, if there exists a function type of the plurality of function types for which the installation number reaches the upper limit number, the installation is not allowed.

As described above, according to the embodiment, installation of the applications121on the image forming apparatus10can be restricted. As a result, it can be avoided to install a large number of applications for similar functions without a limit, so that a user can be prevented from being confused by existence of a large number of applications121that can be used.

Additionally, by avoiding installing a large number of applications121, a frequency of occurrence of contention for using resources of the image forming apparatus10can be reduced.

Furthermore, likelihood of occurrence of inconsistency in the data can be reduced, which may be caused by a difference in specifications of a plurality of applications121that use the same data. For example, suppose that an application A and an application B are applications121for writing on an address book, respectively, and that a writing format of the application A differs from a writing format of the application B. In this case, if the address book is updated by the application A, the application B may not read the address book. In such a case, for example, by setting the upper limit number of applications121with respect to the device address book writing to one, occurrence of such a situation can be avoided.

Next, another embodiment is described. In this embodiment, points that are different from the above-described embodiment are described. Accordingly, points that are not specifically described may be the same as the above-described embodiment.

FIG. 8is a flowchart illustrating an example of a procedure to be executed by the image forming apparatus100according to the embodiment. InFIG. 8, the same reference numerals are attached to steps that are the same as the steps inFIG. 5, and the descriptions of the steps are omitted.

InFIG. 8, the procedure after determining that installation is disallowed (namely the procedure after step S110) is different from the procedure ofFIG. 5.

Subsequent to step S110, the installer126obtains, from the installation information storage device131, a list of names of applications that have already been installed for a function type “n” (S111). Namely, an installation status for the function type “n” is obtained. Subsequently, the installer126causes the operations panel15to display the list of the obtained application names in a state in which each application name can be selected (S112). Based on the displayed list, a user can find which application121is to be uninstalled, so that the target application is allowed to be installed.

Subsequently, upon detecting that one of the application names is selected by the user (S113), the installer126uninstalls the application121corresponding to the application name from the image forming apparatus10(S114). Upon detecting that uninstallation is successfully executed, the installer126updates the contents of the installation information storage unit131. Namely, the installer126deletes the application name of the uninstalled application121, among the application names stored in the installation information storage unit131. Here, each of the application names is stored in the installation information storage unit131while associated with the function types to which the corresponding application121belongs. Subsequently, the procedure on and after step S106is continued.

As described above, according to this embodiment, the user can be notified of an application121that is the cause of the denial of the installation of the target application. Furthermore, the application121that is selected, among the notified applications121, by the user can be automatically uninstalled, so that the operational burden on the use for installing the target application can be reduced.

Next, another embodiment is described. In this embodiment, points that are different from the above-described embodiment are described. Accordingly, points that are not specifically described may be the same as the above-described embodiment.

FIG. 9is a diagram illustrating an example of functional configurations of respective devices according to the embodiment. InFIG. 9, the same numerical references are attached to the parts that are the same as the corresponding parts ofFIG. 4, and the descriptions of the parts are omitted. InFIG. 9, the image forming apparatus10is not provided with the determining unit125and the installation information storage unit131.

In contrast, the distribution server20utilizes an installation information storage unit212. The installation information storage unit212is provided with a configuration that is the same as the installation information storage unit131of the above-described embodiments. However, the installation information storage unit212may store, for each image forming apparatus10, the information that is stored in the installation information storage unit131. For example, the information illustrated inFIG. 7may be stored in the installation information storage unit212while being associated with the identification information (which is referred to as the “device ID,” hereinafter) of the corresponding image forming apparatus10.

FIG. 10is a flowchart illustrating an example of a procedure to be executed by the image forming apparatus100according to the embodiment. InFIG. 10, the same reference numerals are attached to steps that are the same as the steps inFIG. 5, and the descriptions of the steps are omitted.

In this embodiment, upon detecting that the installation data is successfully obtained (YES at S121), the installer126executes installation of the target application. The case where the installation data is successfully obtained is the case where the installation data is transmitted from the distribution server20.

Upon detecting a failure in obtaining the installation data (NO at S121), the installer126does not execute installation of the target application. The case where it is failed to obtain the installation data is the case where information indicating that installation is disallowed is transmitted from the distribution server20.

FIG. 11is a flowchart illustrating an example of a procedure to be executed by the distribution server20according to the embodiment.

At step S201, the application transmitter21receives a retrieval request for the installation data. Subsequently, the application transmitter21retrieves, from the application storage unit211, the installation data corresponding to the application ID included in the retrieval request (S202).

With respect to subsequent steps S203through S208, the procedure that is the same as the procedure of steps S103through S108inFIG. 5is executed by the application transmitter21. However, when the information stored in the installation information storage unit212is separated for each image forming apparatus10, the information corresponding to the device ID included in the retrieval request for the installation data is used.

Upon detecting that installation is allowed (S208), the application transmitter21transmits the installation data retrieved at step S202to the image forming apparatus10that is the sender of the retrieval request for the installation data (S209).

However, upon detecting, for any function type n, that the installation number reaches the upper limit number (NO at S205), the application transmitter21transmits information indicating that installation of the target application is disallowed (“installation is disallowed”) to the image forming apparatus10(S210).

As described above, a device outside the image forming apparatus10may determine as to whether installation of a target application is allowed.

Next, another embodiment is described. In this embodiment, points that are different from the above-described embodiments are described. Accordingly, points that are not specifically described may be the same as the above-described embodiments.

FIG. 12is a diagram illustrating an example of configurations of respective devices in this embodiment. As described inFIG. 12, the image forming apparatus10utilizes an activation information storage unit132. The activation information storage unit132may be implemented by using, for example, the HDD114or a storage device that can be connected to the image forming apparatus10through a network.

The activation information storage unit132stores, for each function type, identification information of an application121activated in the image forming apparatus10and information indicating an upper limit of an activation number.

FIG. 13is a flowchart for illustrating an example of a procedure to be executed by the image forming apparatus10in the embodiment. InFIG. 13, the same step numbers are attached to steps that are the same as the corresponding steps inFIG. 8, and the descriptions of the steps are omitted as appropriate.

InFIG. 13, step S105is replaced with step S105a. At step S105a, the determining unit125determines, by referring to the activation information storage unit132, as to whether a number of applications121activated in the image forming apparatus10with respect to a function type n is less than the upper limit number.

FIG. 14is a diagram illustrating an example of a configuration of the activation information storage unit132. As illustrated inFIG. 14, the activation information storage unit132stores, for each function type, a function type name, an upper limit number, and an activation status. The meanings of the items other than the upper limit number and the activation status are as described inFIG. 7. The upper limit number is an upper limit value of a number of activated applications121belong to the function type. The activation status is a list of application names of currently activated applications121in the image forming apparatus10, among applications121belonging to the function type. Accordingly, by counting the number of application names in the activation status, the activation number for the function type can be obtained.

Upon detecting that the activation number with respect to the function type n is less than the upper limit number (YES at S105), the determining unit125determines as to whether “n” is less than “N” (S106). Namely, a determination is made as to whether, for all the function types to which the target application belongs, the activation number is compared with the upper limit number.

Upon detecting that “n” is less than “N” (NO at S106), 1 is added to “n” (S107), and the process on and after step S105ais repeated. Namely, the process on and after step S105sis executed for the next function type, among the function types to which the target application belongs.

Upon detecting that the value of “n” is equal to the value of “N” (YES at S106), the determining unit125determines that the activation of the target application is allowed (“activation is allowed” at S108a) (S108a). Subsequently, the installer126installs the installation data of the target application in the image forming apparatus10(S109). Then, the installer126activates the target application (S115). Upon detecting that the activation is successful, the installer126updates contents of the activation information storage unit132. Namely, the installer126stores, in the activation information storage unit132, the application name of the target application while associating the application name with each function type to which the target application belongs.

However, upon detecting, for any one of the function types n, that the activation number reaches the upper limit number (NO at S105a), the determining unit125determines that activation of the target application is disallowed as it is (“activation is disallowed” at S110a) (S110a).

Subsequently, the installer126retrieves, from the activation information storage unit132, a list of application names of applications121that have already been activated for the function type n (S111a). Namely, the content of the activation status for the function type n is obtained. Subsequently, the installer126causes the operations panel15to display the obtained list of the application names in a state in which each application name can be selected (S112a). Based on the displayed list, a user can find which application121is to be deactivated, so that the target application is allowed to be activated.

Subsequently, upon detecting that one of the application names is selected by the user (S113a), the installer126deactivates the application121corresponding to the application name (S114a). Upon detecting that deactivation is successfully executed, the installer126updates the contents of the activation information storage unit132. Namely, the installer126deletes the application name of the deactivated application121, among the application names stored in the activation information storage unit132. Here, each of the application names is stored in the activation information storage unit132while associated with the function types to which the corresponding application121belongs. Subsequently, the procedure on and after step S106is continued.

As described above, according to this embodiment, a number of activated applications121can be restricted. As a result, it can be avoided to activate a large number of applications121for similar functions, so that a user can be prevented from being confused by existence of a large number of applications121that can be used.

Additionally, as there is no upper limit for the installation number, an operation may be allowed such that installation of applications121is temporarily executed, and an unnecessary application121is uninstalled after using the respective applications121.

Next, further embodiment is described. In this embodiment, points that are different from the above-described embodiment are described. Accordingly, points that are not specifically described may be the same as the above-described embodiment.

FIG. 15is a flowchart illustrating an example of a procedure to be executed by the image forming apparatus100according to the embodiment. InFIG. 15, the same step numbers are attached to steps that are the same as the steps inFIG. 13, and the descriptions of the steps are omitted.

InFIG. 15, step S104is replaced with step S104a. At step S104a, the determining unit125further substitutes a value “True” in an activation flag. The activation flag is information indicating whether a target application is to be activated, and the activation flag can take one of values of “True” and “False.” The value “True” indicates that a target application is to be activated. The value “False” indicates that a target application is not to be activated.

Furthermore, inFIG. 15, steps S110athrough S114ainFIG. 13are replaced with step S116. At step S116, the determining unit125substitutes the value “False” in the activation flag.

Furthermore, inFIG. 15, step S117is executed prior to execution of step S115. At step S117, the installer126determines as to whether the value of the activation flag is “True.” Upon detecting that the value of the activation flag is “True” (YES at S117), the installer126activates the target application (S115). Upon detecting that the value of the activation flag is “False” (NO at S117), the installer126does not activate the target application.

As described above, in this application, the effect that is the same as the effect of the above-described embodiment can be achieved.

In the above-described embodiments, installation of the applications121is described. However, the above-described embodiments may be applied to programs other than the applications121, such as the firmware122.

In the above-described embodiment, the image forming apparatus is an example of a device. The distribution server20is an example of an information processing device. The application transmitter21is an example of a receiver, a determining unit, and a transmitter. In some of the above-described embodiments, the applications121installed in the image forming apparatus10are examples of programs available in the device; and the upper limit number in the installation information storage unit131is an example of an upper limit number of the programs to be available. In some of the above-described embodiments, the applications121that are activated in the image forming apparatus10are examples of programs available in the device; and the upper limit number in the activation information storage unit132is an example of an upper limit number of the programs to be available.

The embodiments of the present invention are described above. However, the present invention is not limited to the specifically-described embodiments, and various variations and modifications may be made within the gist of the present invention described in the scope of claims.

It should be noted that a person skilled in the field of information processing technology may employ the present invention using application specific integrated circuits (ASIC) or an apparatus in which circuit modules are connected.

Further, each of the functions (units) may be implemented by one or more circuits.

It should be noted that, in this specification, the circuit may include a processor programmed by software to execute the corresponding functions and hardware which is designed to execute the corresponding functions such as the ASIC and the circuit module.

The present application is based on and claims the benefit of priority under 35 U.S.C. § 119 to Japanese priority application No. 2016-098571 filed on May 17, 2016 and Japanese priority application No. 2016-182082 filed on Sep. 16, 2016, the entire contents of which are hereby incorporated herein by reference in their entirety.