Information processing apparatus, information processing method, and computer-readable medium

An image forming apparatus installs a license instructed to be installed when a reliable date has been successfully acquired from a server. When the reliable date fails to be acquired and the license instructed to be installed is a valid-days-designated license, the information forming apparatus installs the valid-days-designated license based on the image forming apparatus' built-in clock. When the reliable date fails to be acquired and the license instructed to be installed is an expiration-date-designated license, the information forming apparatus does not install the expiration-date-designated license.

BACKGROUND

Field

The present disclosure relates to an information processing apparatus, an information processing method, and a computer-readable medium that are particularly suitable to be used for executing an application.

Description of the Related Art

Extended functions are prepared as optional functions in some image forming apparatuses including standard basic functions such as a copying function, a printing function, and a scanning function. A user who wishes to use such an extended function purchases a product (application) providing the extended function, thereby receiving a license of the product. Then, the product is installed in the image forming apparatus to be used in the image forming apparatus (see Japanese Patent Application Laid-Open No. 2012-221054). Japanese Patent Application Laid-Open No. 2012-221054 discusses that the license includes a valid period for which the product is usable under the license.

The technique discussed in Japanese Patent Application Laid-Open No. 2012-221054, manages the remaining valid period during which the application is usable in the image forming apparatus. Such a technique does not provide for managing the valid period of the license for usage of the application. For example, unauthorized change of a time managed by the image forming apparatus results in discrepancy between the valid period of the license for usage of the application and the actual valid period.

SUMMARY

The present disclosure is directed to achieving appropriate management for a valid period of an application.

An information processing apparatus according an aspect of to the present invention includes an acquisition unit configured to acquire a license related to usage of an application, the license including information designating a valid period of the application, a communication unit configured to communicate with an external apparatus, and a control unit configured to control installation of the license based on one or more of whether information on current time managed by the external apparatus has been acquired from the external apparatus and a method for designating the valid period in the information designating the valid period in the license.

DESCRIPTION OF THE EMBODIMENTS

Exemplary embodiments are described in detail below with reference to the drawings. Note that components described in the following exemplary embodiments are merely examples, and the following exemplary embodiments are not seen to be limiting.

A first exemplary embodiment will now be described.

When a valid period of a product is set to a license, a period such as the number of days (for example, 10 days), or a usage start timing and a usage end timing such as a usage start date and a usage end date can be set. In such a case, a function provided by the product needs to be limited or disabled when the valid period set to the product expires, so that unauthorized use of the product can be prevented after the expiration.

Thus, usage of a product, acquired by a user, can be limited based on the date indicated by a built-in clock in an image forming apparatus in which the product is installed. More specifically, the image forming apparatus compares the date indicated by the built-in clock in the image forming apparatus with the date of the valid period set in a program or a license file. The product can be normally operated (with functions partially limited in some cases) as long as the valid period has not expired yet. When the valid period expires, the image forming apparatus only enables the operation of the function provided by the product in a limited manner or disables the operation, so that the product cannot be used against the will of the provider of the product.

However, the date indicated by the built-in clock in the image forming apparatus is changeable by a user operation in many cases. Thus, if the date indicated by the built-in clock in the image forming apparatus is directly used for expiration period management, it leaves room for unauthorized use of a product using an expired expiration-date-designated license. A license with a usage start timing and a usage end timing designated is hereinafter referred to as an expiration-date-designated license. For example, assume that the date indicated by the built-in clock in the image forming apparatus is 2016 Oct. 1, while the actual date is 2016 Nov. 1. In such a situation, when an expiration-date-designated license for 2016 Oct. 1 to 2016 Oct. 31 is installed in the image forming apparatus, a product corresponding to the expiration-date-designated license can be used on 2016 Nov. 1.

In view of this, the image forming apparatus can be configured to determine whether the license is valid by acquiring a reliable date from an external server. However, a license in which the number of valid days is designated (hereinafter, referred to as a valid-days-designated license) is managed based on the number of days elapsed after the license has been installed in the image forming apparatus. The valid-days-designated license is to enable a product to be operated in the image forming apparatus without the reliable date acquired from the external server. The valid-days-designated license is unusable in an off-line environment where the reliable date cannot be acquired from the external server.

In view of the above, the present exemplary embodiment provides a mechanism for enabling the valid-days-designated license to be used in an off-line environment while preventing unauthorized use of the expiration-date-designated license. The mechanism is one example of mechanisms for appropriately managing the valid period of an application.

FIG. 1is a diagram illustrating an example of a configuration of an image forming system.

An image forming apparatus101(101aor101b) is an apparatus (typically, a multifunction peripheral) that includes a function for forming an image.

A server102serves as a source of a reliable date to be acquired by the image forming apparatus101. An application is a software program that enables the image forming apparatus101to utilize an extended function and/or standard function. A license is data that proves the right to use the application. Data on the license is registered to the image forming apparatus101and an application corresponding to the license is activated. This process is referred to as license installation. The user can use the activated application.

An execution file for operating the application can be incorporated in firmware of the image forming apparatus101in advance or can be downloaded to the image forming apparatus101at any time. The server102need not be a specific server, and can be any type of server, such as, for example, a cloud-based server.

An information terminal103is an information processing apparatus (typically, a personal computer). A user of the terminal can operate a web browser by using a keyboard, a mouse, and a display, or by using a touch panel of the information terminal103. A local area network (LAN)110is a network line for establishing connection between the image forming apparatus101and the Internet111serving as an external network. The Internet111is a network with which the image forming apparatus101, the server102, and the information terminal103are connected to each other such that they can communicate with each other. The image forming apparatus101and the information terminal103can communicate with the server102via the LAN110and the Internet111.

The image forming apparatuses101aand101bcan be realized by the same configuration. As such, the following description is provided with the image forming apparatus101aas an example.

FIG. 2is a diagram illustrating an example of a hardware configuration of the image forming apparatus101a. A central processing unit (CPU)201executes a program and controls various types of processing. A nonvolatile memory202includes a read only memory (ROM). The nonvolatile memory202stores therein a program and data required in an initial stage of processing of starting the device. A volatile memory203includes a random-access memory (RAM). The volatile memory203is used as a temporary storage location for a program and data. An auxiliary storage device204includes a large-capacity storage device such as a hard disk and a RAM drive. The auxiliary storage device204stores large-volume data, holds a code for executing a program, holds setting values of the image forming apparatus101, and the like. The auxiliary storage device204stores therein data that needs to be held for a relatively long period of time compared with data to be held in the volatile memory203. The auxiliary storage device204is a nonvolatile storage device and thus can hold data even after the image forming apparatus101is turned OFF. A display205is a display device that presents information to the user.

An input device206receives a selection instruction from the user, and transmits the instruction to the program through an internal bus210. A network communication device207enables the image forming apparatus101to communicate with other information devices through the LAN110. A built-in battery209provides a battery backup for a real-time clock (RTC)208. Thus, the RTC208can constantly count (measure) the date even when the image forming apparatus101ais powered OFF. The RTC208enables the user to adjust the date. The internal bus210serves as a communication bus with which the hardware devices are connected with each other such that they can communicate with each other in the image forming apparatus101. An example of a hardware configuration of each of the server102and the information terminal103is the same as that illustrated inFIG. 2. Thus, the detailed description of the hardware configuration of each of the server102and the information terminal103is omitted. The image forming apparatus101aincluding the configuration described above also includes a printing unit and/or a scanner unit (not illustrated).

In the present exemplary embodiment, the image forming apparatus101ais used to implement an example of an information processing apparatus. The server102is used to implement an example of an external apparatus that manages the current time. The RTC208is used to implement an example of a time measurement unit.

FIG. 3is a diagram illustrating an example of software configurations of the image forming apparatus101aand the server102. Software units of the image forming apparatus101aare stored in the nonvolatile memory202or the auxiliary storage device204of the image forming apparatus101a, and provide functions upon being executed by the CPU201. Various types of information, used when the software units of the image forming apparatus101aare executed, are stored in the volatile memory203or the auxiliary storage device204of the image forming apparatus101a, and are transmitted and received among the software units. Software units of the server102are also stored in a nonvolatile memory or an auxiliary storage device (not illustrated) of the server102as in the case of the software units of the image forming apparatus101a, and provide functions upon being executed by a CPU similar to the CPU201. Various types of information, used for executing the software unit of the server102, are held in the nonvolatile memory or the auxiliary storage device (not illustrated) of the server102, and are transmitted and received among the software units. The image forming apparatus101aand the server102include software units implementing general functions implementable in the image forming apparatus101aand the server102, in addition to the software units illustrated inFIG. 3.FIG. 3illustrates only units required for describing the present exemplary embodiment.

An example of the software units of the image forming apparatus101ais described below.

A device clock management unit303includes a function of applying, when date indicated by the device clock is changed by the user of the image forming apparatus101ausing the display205, the changed date information to the RTC208. The device clock management unit303also includes a function of acquiring date information, such as current date, from the RTC208.

A license status monitoring unit304monitors the status of a license for an application that runs on the image forming apparatus101a. The license status monitoring unit304includes a function of deactivating an application for which the valid period of the license has already expired, using a function provided by an application control unit307.

A license information storage unit305includes a function of storing information on a license installed in the image forming apparatus101a, as a license for an application that runs on the image forming apparatus101a, in the nonvolatile memory202.

A license installation unit306includes a function of installing a license, instructed to be installed, in the image forming apparatus101a. When the license is installed in the image forming apparatus101a, license information (Table 1) recorded in the nonvolatile memory202is updated. Table 1 illustrates an example of the license information.

FIGS. 4A and 4Beach illustrate an example of a license.FIG. 4Aillustrates an example of a valid-days-designated license401.FIG. 4Billustrates an example of an expiration-date-designated license402.

The valid-days-designated license401and the expiration-date-designated license402are each a license in a file format and include information for specifying a right to use an application.

An application identifier411is an identifier for uniquely identifying an application that runs on the image forming apparatus101a. In this example, the application identifier411is represented by a simple integer. The application identifier411can be configured to include a more complex character string or a Universally Unique Identifier (UUID). A device identifier412is an identifier for uniquely identifying the image forming apparatus101ausing the valid-days-designated license401or the expiration-date-designated license402. Valid days413indicates the number of days the valid-days-designated license401is valid. Usage start date415indicates a usage start date set to the expiration-date-designated license402. Usage end date416indicates a usage end date set to the expiration-date-designated license402. Electronic signature414is a certificate for verifying the validity of the valid-days-designated license401or the expiration-date-designated license402.

In the present exemplary embodiment, for example, the valid-days-designated license401and the expiration-date-designated license402are used to implement an example of a license including information designating the valid period of the application as a license related to the usage of an application. The valid days413, the usage start date415, and the usage end date416are used to implement an example of information for designating the valid period. The valid days413is used, for example, to implement a method (first method) for designating a usage period of an application, without designating a start timing and an end timing of the usage of the application. The usage start date415and the usage end date416are used to implement an example of a method (second method) for designating a usage start timing and a usage end timing of an application.

Referring again toFIG. 3, the license installation unit306checks whether the device identifier412in the license matches the device identifier of the image forming apparatus101a. When the device identifiers match, the license installation unit306determines whether the license information in Table 1 includes a record including an application identifier that is the same as the application identifier411in the license. When there is a record including an application identifier that is the same as the application identifier411in the license, the license installation unit306overwrites the usage start date, the usage end date, and the license status of the record, and stores the overwritten record. When there is no record including an application identifier that is the same as the application identifier411in the license, the license installation unit306adds a new record. The license installation unit306stores the usage start date, the usage end date, and the license status for the added record.

In a case where the expiration-date-designated license402is installed, the license installation unit306sets the usage start date415to be the usage start date in the license information illustrated in Table 1, and sets the usage end date416to be the usage end date in the license information. In a case where the valid-days-designated license401is installed, the license installation unit306sets a date (year/month/day) on which the valid days413elapses from the current date as the usage end date in the license information illustrated in Table 1. The image forming apparatus101acan determine whether a license is the expiration-date-designated license402or is the valid-days-designated license401by determining whether the license information in Table 1 includes a value indicating the usage start date. An application becomes usable when the license is installed in the image forming apparatus101a. The application is a part of a product, and the product is to be provided to the user when the application becomes usable in the image forming apparatus101a.

The application control unit307manages a life cycle of an application that runs on the image forming apparatus101a. The application control unit307manages information, such as a version and a product name, and a status (activated or deactivated), for an application that runs on the image forming apparatus101. The application control unit307provides a management screen (not illustrated) for an application, used by a system administrator. The system administrator can activate/deactivate an application, uninstall an application, and install a license using the management screen.

An application unit308is an application that runs on the image forming apparatus101aand provides an extended function and/or a standard function to the image forming apparatus101a. Operations of the application are controlled with the license. The application operates only when a valid license for the application is in the license information (Table 1) stored in the license information storage unit305. For example, whether there is a valid license can be determined by searching the license information for a record including an application identifier that is the same as that of the application. In a case where the license is the valid-days-designated license401, whether there is a valid license is determined by determining whether the current date is before the usage end date in the license information. In a case where the license is the expiration-date-designated license402, whether there is a valid license is determined by determining whether the current date is within a period between the usage start date and the usage end date in the license information. When there is no record corresponding to the application identifier of the application, it is determined that there is no valid license.

Next, an example of software units of the server102is described.

A server date response unit311transmits the current date managed in the server102in response to a request from the image forming apparatus101a.

FIG. 5is a flowchart illustrating an example of a flow of processing executed by the image forming apparatus101ato install a license.

In step S501, the license installation unit306acquires license information from a license file (i.e., the valid-days-designated license401or the expiration-date-designated license402). In the present exemplary embodiment, the processing in step S501implements an example of an acquisition unit configured to acquire a license.

Next, in step S502, a server date request unit309acquires a reliable date from the server102. In this example, the current date is acquired as the reliable date. In the present exemplary embodiment, the processing in step S502implements an example of a communication unit configured to communicate with an external apparatus that manages time information.

Next, in step S503, the server date request unit309determines whether the reliable date has been successfully acquired from the server102. When the reliable date is determined to have been successfully acquired (YES in step S503), the processing proceeds to step S504. In step S504, the license installation unit306installs the license based on the reliable date, which is the current date. In this processing, the license installation unit306sets the usage start date and usage end date in the license information in Table 1, based on the reliable date. In the present exemplary embodiment, the processing in step S504implements an example of installing, when information on current time is acquired from the external apparatus, a license based on time information specified by the information.

When the reliable date is determined to have failed to be acquired in step S503(NO in step S503), the processing proceeds to step S505. In step S505, the license installation unit306determines whether the type of the license is the expiration-date-designated license402. In the present exemplary embodiment, the processing in step S505implements an example of identifying a method for designating the valid period in information designating the valid period in the license, when the information on the current time has not been acquired from the external apparatus by the communication unit.

When the type of the license is determined not to be the expiration-date-designated license402, i.e., when the type of the license is determined to be the valid-days-designated license401(NO in step S505), the processing proceeds to step S506. In step S506, the license installation unit306installs the license based on the built-in clock (RTC208) in the image forming apparatus101a. In this processing, the license installation unit306sets the usage end date in the license information illustrated in Table 1, based on the date measured by the built-in clock (RTC208) in the image forming apparatus101a. In the present exemplary embodiment, for example, in a case where the determined method is the first method, an example of installing the license based on time information specified by time measured by the time measurement unit is implemented by the processing in step S506.

When the type of the license is determined to be the expiration-date-designated license402in step S505(YES in step S505), the processing proceeds to step S507. In step S507, the license installation unit306causes the license installation to fail. In this processing, the license installation unit306can display information indicating that the license installation has failed on the display205. In the present exemplary embodiment, for example, in a case where the determined method is the second method, an example of not installing the license is implemented by the processing in step S507.

As described above, in the present exemplary embodiment, the image forming apparatus101ainstalls a license instructed to be installed when the reliable date is successfully acquired from the server102. When the reliable date fails to be acquired and the license instructed to be installed is the valid-days-designated license401, the image forming apparatus101ainstalls the valid-days-designated license401based on the built-in clock in the image forming apparatus101a. When the reliable date fails to be acquired and the license instructed to be installed is the expiration-date-designated license402, the image forming apparatus101adoes not install the expiration-date-designated license402. Thus, the valid-days-designated license401can be used off-line while unauthorized use of the expiration-date-designated license402can be prevented.

In the description of the present exemplary embodiment, the built-in clock in the image forming apparatus101acan be set to match the reliable date acquired from the server102. In this example, processing of setting the built-in clock in the image forming apparatus101ato match the reliable date acquired from the server102can be additionally provided between steps S503and S504. In the example described in the present exemplary embodiment, the time information for managing the valid period of the license is described in the time unit of year/month/day. However, how the time information for managing the valid period of the license is not limited to year/month/day. For example, the valid period of a license can be managed using the unit with time added to month/day/year. In a case where the image forming apparatus101athat is aware of being in an offline state (a state of not being capable of communicating with an external apparatus), the processing in steps S502to S504can be omitted.

Next, a second exemplary embodiment is described. The image forming apparatus101aaccording to the first exemplary embodiment inquires with the server102regarding the reliable date each time the license is installed, even when the reliable date was previously acquired from the server102. This causes unnecessary network traffic to occur and also increases load on the server102. Thus, the image forming apparatus101aaccording to the present exemplary embodiment does not inquire with the server102regarding the reliable date if the reliable date was previously acquired from the server102. Thus, the present exemplary embodiment is different from the first exemplary embodiment mainly in a part of the processing of inquiring with the server102regarding the date. In the description of the present exemplary embodiment, components that are the same as those in the first exemplary embodiment are denoted with the same reference numerals as those inFIGS. 1 to 5, and the detailed description thereof are omitted. The date according to the present exemplary embodiment described below is year/month/day, as in the first exemplary embodiment.

FIG. 6is a flowchart illustrating an example of a flow of processing executed by the image forming apparatus101ato install a license.

In step S601, the license installation unit306acquires license information from a license file (the valid-days-designated license401or the expiration-date-designated license402). In the present exemplary embodiment, the processing in step S601implements an example of the acquisition unit configured to acquire a license.

Next, in step S602, the server date request unit309determines whether the reliable date was previously acquired from the server102, based on information stored in step S605described below. When the reliable date is determined to have previously been acquired (YES in step S602), the processing proceeds to step S606with processing in steps S603to S605skipped (without acquiring the reliable date from the server102again). In step S606, the license installation unit306determines the current date based on the reliable date that has been acquired, and installs the license based on the current date thus determined. In this example, the current date is acquired as the reliable date. For example, determination of the current date is implemented by measuring the elapsed time (number of days) from the reliable date acquired by the built-in clock (RTC208) in the image forming apparatus101a. The current date can also be determined by changing a current measurement value obtained by the built-in clock (RTC208) in the image forming apparatus101ato the reliable date when the reliable date is acquired.

In the present exemplary embodiment, for example, the case where the processing proceeds to step S606with the processing in steps S603to S605skipped corresponds to a case where the information specifying that the information on time was previously acquired is stored in a storage unit. For example, when the processing proceeds to step S606with the processing in steps S603to S605skipped, an example of not acquiring the information on time from the external apparatus is implemented. The processing in step S606implements an example of installing a license based on the time information specified by the information on time previously acquired.

When the reliable date is determined not to have been acquired from the server102yet in step S602(NO in step S602), the processing proceeds to step S603. In step S603, the server date request unit309acquires the reliable date from the server102. In the present exemplary embodiment, the processing in step S603implements an example of the communication unit configured to communicate with an external apparatus. Next, in step S604, the server date request unit309determines whether the reliable date has been successfully acquired from the server102. When the reliable date is determined to have been successfully acquired (YES in step S604), the processing proceeds to step S605. In step S605, the server date request unit309stores the information indicating that the reliable date has previously been acquired in the nonvolatile memory202. In the present exemplary embodiment, the processing in step S605implements an example of a storage unit configured to store the information indicating that the information on the current time has previously been acquired when the information on the current time has been acquired from the external apparatus by the communication unit.

In step S606, the license installation unit306installs the license based on the reliable date, which is the current date. In this processing, the license installation unit306sets the usage start date and usage end date in the license information illustrated in Table 1, based on the reliable date. In the present exemplary embodiment, when the processing proceeds from step S605to step S606, this is an example of installing, if information on the current time has been acquired from the external apparatus, a license based on the time information specified by the information.

When the reliable date is determined to have failed to be acquired in step S604(NO in step S604), the processing proceeds to step S607. In step S607, the license installation unit306determines whether the type of the license is the expiration-date-designated license402. In the present exemplary embodiment, the processing in step S607implements an example of identifying a method for designating the valid period in the information designating the valid period in the license when the information on time has not been acquired from the external apparatus by the communication unit.

When the type of the license is determined not to be the expiration-date-designated license402, i.e., when the type of the license is determined to be the valid-days-designated license401(NO in step S607), the processing proceeds to step S608. In step S608, the license installation unit306installs the license based on the built-in clock (RTC208) in the image forming apparatus101a. In this processing, the license installation unit306sets the usage end date in the license information illustrated in Table 1, based on the date measured by the built-in clock (RTC208) in the image forming apparatus101a. In the present exemplary embodiment, in a case where the determined method is the first method, an example of installing a license based on the time information specified by time measured by the time measurement unit is implemented by the processing in step S608.

When the type of the license is determined to be the expiration-date-designated license402in step S607(YES in step S607), the processing proceeds to step S609. In step S609, the license installation unit306causes the license installation to fail. In this processing, the license installation unit306can display information indicating that the license installation has failed on the display205. In the present exemplary embodiment, in a case where the determined method is the second method, an example of not installing the license is implemented by the processing in step S609.

The flowchart inFIG. 6is different from the flowchart inFIG. 5in the following points. In the flowchart inFIG. 6, a step (step S605) of storing the information indicating that the reliable date has previously been acquired in the nonvolatile memory202by the server date request unit309is additionally provided to the flowchart inFIG. 5. The flowchart inFIG. 6also includes a step (step S602) of determining whether the reliable date has been acquired from the server102, based on the information stored in step S605, by the server date request unit309in addition to the flowchart inFIG. 5.

As described above, the image forming apparatus101athat previously acquired the reliable date from the server102does not acquire the reliable date from the server102thereafter. Thus, effects of reducing a load on the server102for transmitting the reliable date and preventing increase in unnecessary network traffic can be obtained, in addition to the effects described in the first exemplary embodiment.

The present exemplary embodiment can also employ the modifications described in the first exemplary embodiment.

In the present exemplary embodiment, when the reliable date has been acquired from the server102, the reliable date is not acquired from the server102thereafter. However, the configuration is not limited thereto. For example, the server date request unit309can determine whether a predetermined period of time has elapsed after a time at which the reliable date has been acquired from the server102, and, when the predetermined time has elapsed, acquire a reliable date from the server102to update the reliable date. This configuration enables the image forming apparatus101ato periodically specify a reliable date.

Next, a third exemplary embodiment is described. In the first exemplary embodiment and the second exemplary embodiment, when the valid-days-designated license401or the expiration-date-designated license402is to be installed, the reliable date is acquired from the server102in step S502or S603. The valid-days-designated license401previously installed based on the built-in clock in the image forming device101ain step S506or S608exits if the reliable date has been successfully acquired. In this case, if the date based on which the license is managed is changed from the date indicated by the built-in clock in the image forming apparatus101ato the reliable date, issues as described below can occur. In the description below, the date indicated by the built-in clock in the image forming apparatus101ais referred to as device date as appropriate.

If the device date is set to be later than the reliable date, the application can be used for a longer period of time than the proper valid period. For example, if the valid-days-designated license with a valid period of 10 days is installed in a state where the device date is set to 2016 Oct. 1, the usage end date of the license is set to 2016 Oct. 11. If the date on which the reliable date is acquired from the server102thereafter is 2016 Sep. 1, the application corresponding to the license can be used for a period between 2016 Sep. 1 and 2016 Oct. 11.

If the device date is set to be earlier than the reliable date, the usable period of the application becomes shorter than the proper valid period. For example, if the valid-days-designated license with a valid period of 10 days is installed in a state where the device date is set to 2016 Oct. 1, the usage end date of the license is set to 2016 Oct. 11. If the date on which the reliable date is acquired from the server102thereafter is 2016 Oct. 5, the application corresponding to the license can only be used for a period between 2016 Oct. 5 and 2016 Oct. 11. Thus, the valid period of the application is shortened.

Such an issue is considered in the present exemplary embodiment. As described above, the present exemplary embodiment is different from the first exemplary embodiment and the second exemplary embodiment mainly in a part of the processing of setting the valid period of the license. In the description of the present exemplary embodiment, components that are the same as those in the first exemplary embodiment and the second exemplary embodiment are denoted with the same reference numerals as those inFIGS. 1 to 6, and the detailed description thereof are omitted. The date according to the present exemplary embodiment is year/month/day, as in the first exemplary embodiment and the second exemplary embodiment.

FIG. 7is a diagram illustrating an example of a software configuration of the image forming apparatus101a. A current date management unit302manages the current date without being affected by a change in the date indicated by the RTC208. The current date management unit302sets the reliable date acquired from the server102to be the current date. The device clock management unit303, the license status monitoring unit304, the license information storage unit305, the license installation unit306, the application control unit307, the application unit308, and the server date request unit309are the same as those inFIG. 3, and will not be described in detail herein. A license valid period correction unit310corrects the valid period of the valid-days-designated license401that has been installed when the reliable date acquired from the server102is different from the device date.

FIG. 8is a flowchart illustrating an example of a flow of processing for correcting the valid period of the valid-days-designated license401that has been installed, by the valid period correction unit310, when the reliable date is acquired from the server102.

In step S801, the license valid period correction unit310acquires the reliable date from the current date management unit302. Then, in step S802, the license valid period correction unit310acquires the device date from the device clock management unit303.

Next, in step S803, the license valid period correction unit310calculates a difference between the date acquired in step S802and the date acquired in step S801. In the present exemplary embodiment, the difference implements an example of a difference between the time information specified by the time measured by the time measurement unit and the time information specified by the information on the time acquired by the communication unit. The processing in step S803implements an example of an obtaining unit.

Next, in step S804, the license valid period correction unit310determines whether the difference, calculated in step S803, is ±1 day or more. The determination is based on ±1 day because the usage end date in the license information illustrated in Table 1 only includes information based on the unit of the number of days and does not include information based on the unit of time.

When the difference calculated in step S803is determined to be less than ±1 day in step S804(NO in step S804), the processing in the flowchart inFIG. 8is terminated without updating the valid period. When the difference calculated in step S803is determined to be ±1 day or more (YES in step S804), the processing proceeds to step S805. In step S805, the license valid period correction unit310acquires the license information (Table 1). Then, in step S806, the license valid period correction unit310determines whether the license information including the usage end date exists. When it is determined that no license information including the usage end date exists (NO in step S806), the processing in the flowchart inFIG. 8is terminated without updating the valid period of the license.

When unselected license information including the usage end date exists (YES in step S806), the processing proceeds to step S807. In step S807, the license valid period correction unit310selects the license information. Then, the license valid period correction unit310determines whether the license information is license information corresponding to the valid-days-designated license401. As described above in the first exemplary embodiment, the license information is the license information corresponding to the valid-days-designated license401if no usage start date is set therein.

When the selected license information is determined to be the license information corresponding to the valid-days-designated license401(YES in step S807), the processing proceeds to step S808. In step S808, the license valid period correction unit310updates the usage end date of the valid-days-designated license401with the date as a result of adding the difference calculated in step S803to the usage end date. Then, the processing returns to step S806to check the next license information. In the present exemplary embodiment, the processing in step S808implements an example of a change unit configured to change the valid period of the license installed by the control unit, based on the difference obtained by the obtaining unit.

When the selected license information is determined not to be the valid-days-designated license401, i.e., when the selected license information is determined to be the expiration-date-designated license402in step S807(NO in step S807), the processing in the flowchart inFIG. 8is terminated without updating the valid period of the expiration-date-designated license402.

As described above, in the present exemplary embodiment, the valid period of the valid-days-designated license is changed based on the reliable date. Thus, effects of preventing unauthorized use of the valid-days-designated license due to a change in the date indicated by the built-in clock in the image forming apparatus and assuring a user of a proper valid period can be obtained in addition to the effects described in the first exemplary embodiment and the second exemplary embodiment.

The present exemplary embodiment can be applied to each of the first exemplary embodiment and the second exemplary embodiment. Thus, the present exemplary embodiment can employ the modifications described in the first exemplary embodiment and the second exemplary embodiment.

The exemplary embodiments described above are merely examples, and thus the technical scope of the present disclosure should not be construed in a limiting sense by the exemplary embodiments. That is, the present disclosure can be implemented in various ways without departing from its technical idea and main features.

The exemplary embodiments described above enable proper management of a valid period of an application.

Other Embodiments

This application claims the benefit of Japanese Patent Application No. 2017-024960, filed Feb. 14, 2017, which is hereby incorporated by reference herein in its entirety.