Patent Description:
Conventionally, a technology for preventing unauthorized use of an upgraded application program (hereinafter referred to as an APP) has been developed (e.g., refer to Patent Document <NUM>).

Furthermore, in recent years, software update package (SUP) services have become widespread that enable upgrade of an APP during a valid period of a maintenance license by entering a maintenance contract. For example, a user can freely upgrade an owned APP during the valid period of the maintenance license by purchasing a time-limited maintenance license.

Patent Document <NUM>: <CIT>
Prior art includes <CIT>.

Incidentally, the validity of a maintenance license is normally determined by a server that provides a new version of an APP. For example, in a case where the server confirms the validity and a valid period of a maintenance license held by a user and determines that the maintenance license is valid, a new version of the APP is made available.

However, in this case, for security reasons or the like, a time-limited maintenance license cannot be used on an information processing apparatus such as a personal computer (PC) that is used offline and does not directly communicate with the server.

The present technology has been developed in view of such a situation, and enables use of a time-limited maintenance license in an information processing apparatus used offline.

An information processing method according to a first aspect of the present technology is provided in claim <NUM>.

A program according to the first aspect of the present technology executes processing and is provided in claim <NUM>.

An information processing apparatus according to the first aspect of the present technology is provided in claim <NUM>.

Hereinafter, modes for implementing the present technology will be described. Description will be given in the following order.

An embodiment of the present technology will be described with reference to <FIG>.

<FIG> illustrates a configuration example of an information processing system <NUM> to which the present technology is applied.

The information processing system <NUM> includes a server <NUM>, a client <NUM>, and a network <NUM>. The client <NUM> includes an information processing apparatus <NUM>, a removable medium <NUM>, and an information processing apparatus <NUM>.

The server <NUM> and the information processing apparatus <NUM> are connected via the network <NUM> and communicate with each other.

The server <NUM> provides and manages an APP used on the information processing apparatus <NUM> and a time-limited maintenance license of the APP.

Here, the time-limited maintenance license is a license that enables upgrade of the functions of the covered APP during a contracted valid period. For example, a user can upgrade the functions of the covered APP until the end of the valid period by purchasing a time-limited maintenance license.

Note that functions subject to the maintenance license may be all functions of the APP, or may be some of the functions of the APP. In the former case, the maintenance license can also be regarded as a maintenance license for the entire APP. Furthermore, the type of functions subject to the maintenance license is not particularly limited, and the functions may be functions provided for a fee or functions provided for free.

The information processing apparatus <NUM> exchanges various data with the server <NUM> by communicating with the server <NUM> via the network <NUM>. For example, the information processing apparatus <NUM> receives an APP used on the information processing apparatus <NUM> and maintenance license data regarding a maintenance license for the APP from the server <NUM>. Furthermore, the information processing apparatus <NUM> transmits various data such as data regarding the information processing apparatus <NUM> to the server <NUM> as necessary.

Note that the information processing apparatus <NUM> is not particularly limited as long as it is an apparatus capable of communicating with the server <NUM> via the network <NUM>. For example, the information processing apparatus <NUM> is configured as a PC.

The removable medium <NUM> includes elements such as a magnetic disk, an optical disk, a magneto-optical disk, or semiconductor memory, and is used to exchange various data between the information processing apparatus <NUM> and the information processing apparatus <NUM>.

For reasons such as security, the information processing apparatus <NUM> is prohibited from being connected to the network <NUM> or is difficult to connect to the network <NUM>, is basically used offline, and does not directly communicate with the server <NUM>. For example, the user can use the APP and the maintenance license on the information processing apparatus <NUM> by installing (storing) the APP and the maintenance license data provided from the server <NUM> on the information processing apparatus <NUM> via the removable medium <NUM>.

Note that the information processing apparatus <NUM> is not particularly limited as long as it can be used offline and can install (store) and execute the APP. For example, the information processing apparatus <NUM> is configured as a PC.

Note that, in <FIG>, only one client <NUM> is illustrated for easy understanding of the figure and the description, but a plurality of clients <NUM> is actually provided. Moreover, although only one server <NUM> is illustrated, a plurality of servers <NUM> may be provided. Furthermore, one client <NUM> may include a plurality of at least one of the information processing apparatus <NUM>, the removable medium <NUM>, or the information processing apparatus <NUM>.

<FIG> is a block diagram illustrating a configuration example of a computer <NUM> applicable to the server <NUM>, the information processing apparatus <NUM>, and the information processing apparatus <NUM>.

In the computer <NUM>, a central processing unit (CPU) <NUM>, read-only memory (ROM) <NUM>, and random-access memory (RAM) <NUM> are connected to each other by a bus <NUM>.

An input/output interface <NUM> is further connected to the bus <NUM>. An input section <NUM>, an output section <NUM>, a recording section <NUM>, a communication section <NUM>, and a drive <NUM> are connected to the input/output interface <NUM>.

The input section <NUM> includes elements such as an input switch, a button, a microphone, and an imaging element.

The output section <NUM> includes elements such as a display and a speaker.

The recording section <NUM> includes elements such as a hard disk and nonvolatile memory.

The communication section <NUM> includes elements such as a network interface.

The drive <NUM> drives a removable medium <NUM> such as a magnetic disk, an optical disk, a magneto-optical disk, or semiconductor memory. The removable medium <NUM> in <FIG> is a type of removable medium <NUM>.

In the computer <NUM> configured as described above, for example, the CPU <NUM> loads a program such as an APP stored in the recording section <NUM> into the RAM <NUM> via the input/output interface <NUM> and the bus <NUM> and executes the program, thereby performing a series of processing.

The program executed by the computer <NUM> (CPU <NUM>) can be provided by being recorded in the removable medium <NUM> as a package medium or the like, for example. Furthermore, the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.

In the computer <NUM>, the program can be installed in the recording section <NUM> via the input/output interface <NUM> by attaching the removable medium <NUM> to the drive <NUM>. Furthermore, the program can be received by the communication section <NUM> via a wired or wireless transmission medium and installed in the recording section <NUM>. In addition, the program can be installed in the ROM <NUM> or the recording section <NUM> in advance.

Note that description of the bus <NUM> and the input/output interface <NUM> in the computer <NUM> will be omitted in the following. For example, in a case where the CPU <NUM> and the communication section <NUM> perform communication via the bus <NUM> and the input/output interface <NUM>, description of the bus <NUM> and the input/output interface <NUM> is omitted, and the CPU <NUM> and the communication section <NUM> are simply described as performing communication.

Furthermore, an example in which the server <NUM>, the information processing apparatus <NUM>, and the information processing apparatus <NUM> are configured as the computer <NUM> will be described below.

Moreover, hereinafter, in order to distinguish each section of the computer <NUM> constituting the server <NUM>, the information processing apparatus <NUM>, and the information processing apparatus <NUM>, a letter A, B, or C is added to the end of the reference sign of each section. For example, the letter A is added to the end of the CPU <NUM> of the computer <NUM> constituting the server <NUM> to obtain a CPU 111A. For example, the letter B is added to the end of the CPU <NUM> of the computer <NUM> constituting the information processing apparatus <NUM> to obtain a CPU 111B. For example, the letter C is added to the end of the CPU <NUM> of the computer <NUM> constituting the information processing apparatus <NUM> to obtain a CPU 111C.

<FIG> illustrates an example of functions achieved by the CPU 111A of the server <NUM> executing a predetermined program.

The CPU 111A executes the program to achieve an information processing section <NUM>. The information processing section <NUM> includes a user interface (UI) controller <NUM> and a license issuing section <NUM>.

The UI controller <NUM> communicates with the information processing apparatus <NUM> via the communication section <NUM> and the network <NUM>, and controls a UI of the information processing apparatus <NUM>. For example, the UI controller <NUM> causes the information processing apparatus <NUM> to display a screen for performing a maintenance license purchase procedure, and performs processing regarding the maintenance license purchase procedure.

The license issuing section <NUM> performs maintenance license issuance processing in response to the maintenance license purchase procedure performed by the UI controller <NUM> through the information processing apparatus <NUM>. The license issuing section <NUM> generates an installation key which is maintenance license data regarding an issued maintenance license. The license issuing section <NUM> transmits the license file including the generated installation key to the information processing apparatus <NUM> via the communication section <NUM> and the network <NUM>.

<FIG> illustrates a configuration example of functions achieved by the information processing apparatus <NUM> executing an APP <NUM>.

The information processing apparatus <NUM> executes the APP <NUM>, thereby achieving an execution section <NUM> and a license processing section <NUM>.

The execution section <NUM> executes processing regarding each function of the APP <NUM>. Furthermore, the execution section <NUM> controls the validation of functions subject to the maintenance license on the basis of a determination result of the validity of the maintenance license by the license processing section <NUM>.

The license processing section <NUM> executes processing regarding a license for the APP <NUM>. For example, the license processing section <NUM> performs processing to install an installation key <NUM> corresponding to the maintenance license for the APP <NUM> in the information processing apparatus <NUM>. For example, the license processing section <NUM> determines the validity of the maintenance license on the basis of an APP release date stored in the APP <NUM> and the installation key <NUM>, and notifies the execution section <NUM> of the determination result.

Note that the APP release date indicates a date on which the APP <NUM> was released (a date on which provision of the APP <NUM> was started). Note that the APP release date is set to a different date for each version of the APP <NUM>. That is, a different APP release date for each version of the APP <NUM> is stored (recorded) in the binary data of the APP <NUM> for each version.

Furthermore, the functions subject to the maintenance license may be all functions of the APP <NUM>, or may be some of the functions of the APP <NUM>.

Moreover, different maintenance licenses may be used for respective functions of the APP <NUM>. In other words, a plurality of maintenance licenses may apply to different respective functions of the APP <NUM>.

Furthermore, for example, the installation key <NUM> is provided from the server <NUM> in a state of being included in a license file <NUM>, and is stored in a file <NUM> of the recording section 118C of the information processing apparatus <NUM>.

<FIG> illustrates a format example of the installation key <NUM>.

The installation key <NUM> includes, for example, system unique information, a unique device ID, a maintenance start date, and a valid period length.

The system unique information is identification information for uniquely identifying the maintenance license corresponding to the installation key <NUM> in the server <NUM>.

The unique device ID is an ID unique to the information processing apparatus <NUM> for which the maintenance license is used, and is identification information for uniquely identifying the information processing apparatus <NUM>.

Note that the maintenance license and the information processing apparatus <NUM> using the maintenance license are associated with each other by the system unique information and the unique device ID.

A start date of the maintenance license is set as the maintenance start date.

The length of the valid period of the maintenance license is set as the valid period length. The valid period length is set in units of year (e.g., <NUM> year), month (e.g., <NUM> months), week (e.g., <NUM> weeks), and day.

Note that the valid period of the maintenance license, that is, the start date of the maintenance license and the end date of the maintenance license (the expiration date of the maintenance license) are specified on the basis of the maintenance start date and the valid period length.

Next, maintenance license issuance processing executed by the server <NUM> will be described with reference to a flowchart in <FIG>.

This processing is started, for example, when the user performs an operation for a maintenance license purchase procedure of the APP <NUM> using the information processing apparatus <NUM> and a command to start the purchase procedure is transmitted from the information processing apparatus <NUM> to the server <NUM>.

In step S1, the server <NUM> starts the maintenance license purchase procedure. For example, the UI controller <NUM> controls the information processing apparatus <NUM> via the communication section 119A and the network <NUM> to display a maintenance license purchase screen in response to a command from the information processing apparatus <NUM>.

By contrast, the user starts the maintenance license purchase procedure according to the purchase screen displayed on the information processing apparatus <NUM>. The information processing apparatus <NUM> transmits data appropriately input by the user to the server <NUM> via the network <NUM>.

By contrast, the UI controller <NUM> of the server <NUM> receives data input by the user via the communication section 119A, and supplies the data to the license issuing section <NUM> as necessary. The license issuing section <NUM> generates a purchase code which uniquely identifies the maintenance license purchased by the user.

In step S2, the server <NUM> acquires a unique device ID.

For example, the user inputs the unique device ID of the information processing apparatus <NUM> to the information processing apparatus <NUM>. The information processing apparatus <NUM> transmits the input unique device ID to the server <NUM> via the network <NUM>.

By contrast, the UI controller <NUM> of the server <NUM> receives the unique device ID via the communication section 119A, and supplies the unique device ID to the license issuing section <NUM>.

In step S3, the server <NUM> sets the valid period of the maintenance license.

For example, the user inputs a maintenance start date and a valid period length of the APP <NUM> to the information processing apparatus <NUM>. The information processing apparatus <NUM> transmits information indicating the input maintenance start date and the valid period length to the server <NUM> via the network <NUM>.

By contrast, the UI controller <NUM> of the server <NUM> receives the information indicating the maintenance start date and the valid period length via the communication section <NUM>, and supplies the information to the license issuing section <NUM>. The license issuing section <NUM> sets a valid period of the maintenance license of the APP <NUM> in the information processing apparatus <NUM> on the basis of the received information.

In step S4, the license issuing section <NUM> generates the installation key <NUM> of the maintenance license. Specifically, the license issuing section <NUM> generates the installation key <NUM> illustrated in <FIG> described above.

The purchase code generated in the processing of step S1 is set in the system unique information of the installation key <NUM>. The unique device ID of the information processing apparatus <NUM> received from the information processing apparatus <NUM> in the processing of step S2 is set as the unique device ID of the installation key <NUM>. The maintenance start date and the valid period length received from the information processing apparatus <NUM> in the processing of step S3 are set as the maintenance start date and the valid period length of the installation key <NUM>.

In step S5, the server <NUM> transmits the installation key <NUM>. For example, the license issuing section <NUM> encrypts the installation key <NUM> using a private key, and generates the license file <NUM> including the encrypted installation key <NUM>. The license issuing section <NUM> transmits the license file <NUM> to the information processing apparatus <NUM> via the communication section 119A and the network <NUM>.

By contrast, the information processing apparatus <NUM> receives the license file <NUM> and stores the license file in the removable medium <NUM>.

Next, maintenance license application processing executed by the information processing apparatus <NUM> will be described with reference to a flowchart in <FIG>.

Note that it is assumed that the APP <NUM> has been installed in the information processing apparatus <NUM> and that the APP <NUM> has been activated before this processing.

In step S101, the information processing apparatus <NUM> acquires the installation key <NUM>.

For example, the user attaches the removable medium <NUM> storing the license file <NUM> to the drive 120C of the information processing apparatus <NUM>.

By contrast, the drive 120C reads the license file <NUM> from the removable medium <NUM> and supplies the license file <NUM> to the license processing section <NUM>. For example, the license processing section <NUM> causes the recording section 118C to store the license file <NUM>.

In step S102, the license processing section <NUM> confirms the validity of the installation key <NUM>.

Specifically, the license processing section <NUM> decrypts the installation key <NUM> included in the license file <NUM> using a public key acquired in advance. This public key is a key corresponding to the private key used by the server <NUM> to encrypt the installation key <NUM>.

Furthermore, in a case where decryption of the installation key <NUM> is successful, the license processing section <NUM> reads the unique device ID of the information processing apparatus <NUM> stored in advance in the recording section 118C at the time of factory shipment or the like. The license processing section <NUM> compares the unique device ID included in the installation key <NUM> with the read unique device ID.

In step S103, the license processing section <NUM> determines whether or not the installation key <NUM> is valid. In a case where the unique device ID included in the installation key <NUM> matches the unique device ID of the information processing apparatus <NUM> stored in the recording section 118C, the license processing section <NUM> determines that the installation key <NUM> is valid, and the processing proceeds to step S104.

Note that installation of the installation key <NUM> on the information processing apparatus <NUM> is normally completed when the validity of the installation key <NUM> has been confirmed. Note that hereinafter, installation of the installation key <NUM> on the information processing apparatus <NUM> is also referred to as installation of a maintenance license on the information processing apparatus <NUM>.

In step S104, the license processing section <NUM> determines whether or not the release date of the APP <NUM> is on or before the expiration date of the maintenance license. Specifically, the license processing section <NUM> calculates the expiration date of the maintenance license on the basis of the maintenance start date and the valid period length included in the installation key <NUM>. In a case where the license processing section <NUM> determines that the APP release date stored in the APP <NUM> is on or before the calculated expiration date (including a case where the APP release date and the expiration date match), the processing proceeds to step S105.

In step S105, the information processing apparatus <NUM> validates the functions subject to the maintenance license. Specifically, the license processing section <NUM> notifies the execution section <NUM> that the maintenance license is valid. The execution section <NUM> validates functions subject to the maintenance license determined to be valid and enters an executable state.

Thereafter, the maintenance license application processing ends.

Conversely, in step S104, in a case where the license processing section <NUM> determines that the APP release date stored in the APP <NUM> is after the calculated expiration date of the maintenance license, the processing of step S105 is skipped, and the maintenance license application processing ends.

In this case, the functions subject to the maintenance license are not validated.

Furthermore, in step S103, in a case where decryption of the installation key <NUM> has failed, or in a case where the unique device ID included in the installation key <NUM> does not match the unique device ID of the information processing apparatus <NUM>, the license processing section <NUM> determines that the installation key <NUM> is not valid, the processing of steps S104 and S105 is skipped, and the maintenance license application processing ends.

Also in this case, the functions subject to the maintenance license are not validated. Furthermore, installation of the installation key <NUM> on the information processing apparatus <NUM> is not normally completed.

Next, APP activation processing executed by the information processing apparatus <NUM> will be described with reference to a flowchart in <FIG>.

This processing is started, for example, when the user inputs an instruction to activate the APP <NUM> using the input section 116C of the information processing apparatus <NUM>.

In step S151, the license processing section <NUM> acquires the internal installation key <NUM>. Specifically, the license processing section <NUM> reads the license file <NUM> including the installation key <NUM> from the recording section <NUM>.

In steps S152 to S155, processing similar to that of steps S102 to S105 in <FIG> is performed. Therefore, the validation of functions subject to the maintenance license is controlled on the basis of the determination result of the validity of the maintenance license.

In step S156, the execution section <NUM> completes activation of the APP <NUM>.

Thereafter, the APP activation processing ends.

Next, an example of a maintenance license operation method of the APP <NUM> will be described with reference to <FIG>.

Note that hereinafter, it is assumed that three APPs <NUM> have been installed on the information processing apparatus <NUM>: APPs 251a to 251c.

Furthermore, hereinafter, it is assumed that a maintenance license covering all functions of the APP 251a whose valid period is from September <NUM>, <NUM> to September <NUM>, <NUM> is installed on the information processing apparatus <NUM>. It is assumed that a maintenance license covering all functions of the APP 251b whose valid period is from March <NUM>, <NUM> to March <NUM>, <NUM> and from August <NUM>, <NUM> to January <NUM>, <NUM> is installed on the information processing apparatus <NUM>. It is assumed that a maintenance license covering function <NUM> of the APP 251c whose valid period is from September <NUM>, <NUM> to September <NUM>, <NUM> is installed on the information processing apparatus <NUM>. It is assumed that a maintenance license covering function <NUM> of the APP 251c whose valid period is from March <NUM>, <NUM> to March <NUM>, <NUM> is installed on the information processing apparatus <NUM>.

Furthermore, hereinafter, it is assumed that version <NUM> of the APPs 251a to 251c was released on January <NUM>, <NUM>, version <NUM> was released on July <NUM>, <NUM>, version <NUM> was released on January <NUM>, <NUM>, version <NUM> was released on July <NUM>, <NUM>, and version <NUM> was released on January <NUM>, <NUM>.

In this case, versions <NUM> to <NUM> of the APP 251a can be used because they were released before the expiration date (September <NUM>, <NUM>) of the maintenance license for the APP 251a. Conversely, version <NUM> of the APP 251a cannot be used because it was released after the expiration date of the maintenance license for the APP 251a.

For the APP 251a, the expiration date of the latest maintenance license is valid. Therefore, versions <NUM> to <NUM> of the APP 251b can be used because they were released before the second expiration date (January <NUM>, <NUM>) of the maintenance license of the APP 251b. That is, versions <NUM> and <NUM> of the APP 251b were released outside the first and second valid periods of the maintenance license of the APP 251b, but were released before the expiration date of the second maintenance license, and thus can be used.

Note that operation may be performed to prohibit provision of a blank period in the valid period of the maintenance license covering the same function of the APP <NUM>. For example, operation may be performed such that a blank period provided between the first valid period and the second valid period of the maintenance license for the APP 251b in <FIG> is not allowed.

Versions <NUM> to <NUM> of function <NUM> of the APP 251c can be used because they were released before the expiration date (September <NUM>, <NUM>) of the maintenance license for function <NUM>. Versions <NUM> to <NUM> of function <NUM> of the APP 251c can be used because they were released before the expiration date (March <NUM>, <NUM>) of the maintenance license for function <NUM>.

That is, version <NUM> of function <NUM> of the APP 251c was released before the expiration date of the maintenance license for function <NUM> but after the expiration date of the maintenance license for function <NUM>, and thus cannot be used. Furthermore, version <NUM> of function <NUM> of the APP 251c cannot be used because it was released after the expiration date of the maintenance license for function <NUM>.

That is, in this example, in each version of the APP <NUM>, when the expiration date of the maintenance license for at least one function has expired, operation is performed to make all functions subject to each maintenance license unusable. In other words, in each version of the APP <NUM>, in a case where the APP release date is on or before the expiration date of all maintenance licenses, all functions subject to each maintenance license can be used, and in a case where the APP release date is after the expiration date of at least one maintenance license, no functions subject to each maintenance license can be used.

Note that, in this example, for example, only the version <NUM> of function <NUM> whose expiration date has expired may be made unusable, and version <NUM> of the function <NUM> may be made usable. That is, a function corresponding to a maintenance license whose expiration date is on or after the APP release date may be validated, and a function corresponding to a maintenance license whose expiration date is before the APP release date may be invalidated.

Furthermore, version <NUM> of function <NUM> of the APP 251c cannot be used because it was released after the expiration date of the maintenance license for function <NUM>. Moreover, version <NUM> of function <NUM> of the APP 251c cannot be used because it was released after the expiration date of the maintenance license for function <NUM>.

As described above, a time-limited maintenance license can be easily used in the information processing apparatus <NUM> that does not communicate with the server <NUM>.

Hereinafter, a variation of the above-described embodiment of the present technology will be described.

For example, in addition to a maintenance license, a use license for using the APP <NUM> may be used. That is, a user holding a use license for the APP <NUM> may be allowed to use the APP <NUM>.

In this case, a user who holds only a use license for the APP <NUM> but does not hold a maintenance license may be allowed to use the APP <NUM>, or may not be allowed to use the APP <NUM>.

In the former case, for example, the user installs (stores) use license data (e.g., an installation key for a use license) regarding a use license for the APP <NUM> on the information processing apparatus <NUM>, thus enabling use of functions of the APP <NUM> of the version at time of purchase of the use license in the information processing apparatus <NUM>. Conversely, the user cannot upgrade the functions of the APP <NUM> unless a license held by the APP <NUM> is installed on the information processing apparatus <NUM>.

Note that hereinafter, installation of the use license data on the information processing apparatus <NUM> is also referred to as installation of a use license on the information processing apparatus <NUM>.

In the latter case, even if the user installs a use license for the APP <NUM> on the information processing apparatus <NUM>, the user cannot use the functions of the APP <NUM> on the information processing apparatus <NUM> unless the user installs a maintenance license for the APP <NUM> on the information processing apparatus <NUM>.

<FIG> illustrates an example of an operation method in the latter case.

Note that hereinafter, as illustrated in the upper part of <FIG>, it is assumed that the use license for function <NUM> at the time of version <NUM> of an APP 251d is installed on the information processing apparatus <NUM> and validated. It is assumed that the use license for function <NUM> at the time of version <NUM> of the APP 251d is installed on the information processing apparatus <NUM> and validated. Moreover, it is assumed that the maintenance license for function <NUM> of the APP 251d whose valid period is from March <NUM>, <NUM> to September <NUM>, <NUM> is installed on the information processing apparatus <NUM>. Conversely, it is assumed that the maintenance license for function <NUM> of the APP 251d is not installed on the information processing apparatus <NUM>.

Furthermore, hereinafter, it is assumed that version <NUM> of the APP 251d was released on January <NUM>, <NUM>, version <NUM> was released on July <NUM>, <NUM>, version <NUM> was released on January <NUM>, <NUM>, version <NUM> was released on July <NUM>, <NUM>, and version <NUM> was released on January <NUM>, <NUM>.

In this case, versions <NUM> and <NUM> of function <NUM> of the APP 251d can be used because they were released before the expiration date (September <NUM>, <NUM>) of the maintenance license for function <NUM>.

That is, versions <NUM> and <NUM> of function <NUM> of the APP 251d were released before the expiration date of the maintenance license for function <NUM> but a maintenance license for function <NUM> has not been installed, and thus cannot be used. Version <NUM> of function <NUM> of the APP 251d cannot be used because it was released after the expiration date of the maintenance license for function <NUM>. Furthermore, all versions of function <NUM> of the APP 251d cannot be used because a maintenance license for function <NUM> has not been installed.

By contrast, as illustrated in the lower part of <FIG>, the maintenance license for function <NUM> of the APP 251d whose expiration date is from March <NUM>, <NUM> to September <NUM>, <NUM> has been installed on the information processing apparatus <NUM>, thus enabling use of versions <NUM> to <NUM> of function <NUM> released before the expiration date (September <NUM>, <NUM>) of the maintenance license for function <NUM>. At the same time, after the use license for function <NUM> has been installed, versions <NUM> and <NUM> of function <NUM> released before the expiration date (September <NUM>, <NUM>) of the maintenance license for function <NUM> can be used.

Conversely, version <NUM> of function <NUM> of the APP 251d cannot be used because it was released after the expiration date of the maintenance license for function <NUM>. Version <NUM> of function <NUM> of the APP 251d cannot be used because it was released after the expiration date of the maintenance license for function <NUM>.

That is, in this operation method, in each version of the APP <NUM>, if there is even one use license function for which no maintenance license is installed among the functions (hereinafter referred to as use license functions) for which a use license is installed on the information processing apparatus <NUM>, none of the use license functions can be used.

Furthermore, for example, the maintenance license may be operated so that only a version released during the valid period of the maintenance license can be used. For example, in the example of <FIG>, regarding function <NUM> of the APP 251c, only versions <NUM> and <NUM> released during the valid period of the maintenance license may be usable, and versions <NUM>, <NUM>, and <NUM> released outside the valid period may be unusable.

Moreover, for example, the valid period of the APP <NUM> may be managed in units of time (e.g., in units of hours, minutes, seconds, etc.) instead of units of days. In this case, for example, the release time of the APP <NUM> stored in the APP <NUM> is also expressed in units of time. For example, dates and times such as <NUM>:<NUM> on July <NUM>, <NUM> are stored as the release time of the APP <NUM>.

Furthermore, for example, in the example of <FIG>, even after the expiration date of the maintenance license for the APP 251a has expired, an operation is assumed in which a minor version obtained by applying a patch such as correction of a bug or a security hole to version <NUM> of the APP 251a can be used on the information processing apparatus <NUM>.

By contrast, for example, the versions of the APP <NUM> may be divided into two stages of major versions and minor versions according to change content, and the release time of a minor version stored in the APP <NUM> may be matched with the release time of a major version that is the basis of the minor version. For example, in the example of <FIG>, the release time of a minor version released between versions <NUM> and <NUM>, which are major versions of the APP 251a, may be stored in the APP 251a in accordance with the release time of version <NUM>.

Therefore, for example, even after the maintenance license of the APP 251a expires on September <NUM>, <NUM>, a minor version of version <NUM> of the APP 251a can be used.

Although <FIG> illustrates an example in which the installation key <NUM> includes a maintenance start date and a valid period length as information associated with the valid period of the maintenance license, for example, a maintenance start date and a maintenance end date may be included. Furthermore, for example, a maintenance end date and a valid period length may be included.

Moreover, for example, the installation key <NUM> may include only a maintenance end date. In this case, for example, the valid period of the maintenance license is from when the installation key <NUM> is installed on the information processing apparatus <NUM> to the maintenance end date.

Furthermore, for example, information associated with a maintenance license for each function of the APP <NUM> may be included in one installation key <NUM>. For example, information associated with a maintenance license for functions <NUM> and <NUM> of the APP 251c in the example of <FIG> may be included in one installation key <NUM>.

Security measures against eavesdropping, falsification, and the like of the installation key <NUM> are not particularly limited.

For example, in order to prevent unauthorized use of the maintenance license, the license processing section <NUM> of the APP <NUM> may be obfuscated. In particular, it is desirable to obfuscate a portion in which the APP release date is stored and a portion in which processing of comparing the APP release date to the expiration date of the maintenance license is performed. Note that the obfuscation method is not particularly limited.

<FIG> illustrates an example of a maintenance license confirmation screen displayed on a display of the output section 117C of the information processing apparatus <NUM>.

In this example, a window <NUM> is displayed on the display.

For example, a top field of the window <NUM> displays the name of a provider which provides an SUP service (maintenance license).

In the window <NUM>, a list of functions subject to the maintenance license and whether or not each function has been validated are displayed. In this example, an example is illustrated in which a <NUM> conversion function and an MPEG conversion function are validated and an <NUM> conversion function is invalidated.

Furthermore, the window <NUM> indicates that the valid period of the maintenance license (SUP contract period) is from January <NUM>, <NUM> to January <NUM>, <NUM>.

Therefore, the user can easily confirm the valid period of the maintenance license and the functions and operating state subject to the maintenance license.

The present technology can also be applied to a maintenance license of a program other than an APP, for example, a program such as an operating system or middleware.

The above-described series of processing can be executed by hardware, or can be executed by software. In a case where the series of processing is executed by software, a program constituting the software is installed on a computer. Here, examples of the computer include a computer incorporated in dedicated hardware and, for example, a general-purpose personal computer, etc. capable of executing various functions by installing various programs.

Note that the program executed by the computer may be a program in which processing is performed in a time series in the order described in the present specification, or may be a program in which processing is performed in parallel or at a necessary timing such as when a call is made.

Furthermore, in the present specification, a system refers to a set of a plurality of constituent elements (devices, modules (parts), etc.), and it does not matter whether or not all of the constituent elements are in the same housing. Therefore, a plurality of devices housed in separate housings and connected via a network and one device in which a plurality of modules is housed in one housing are both systems.

Moreover, the embodiments of the present technology are not limited to the above-described embodiments, and various modifications can be made without departing from the gist of the present technology.

For example, the present technology can have a cloud computing configuration in which one function is shared and cooperatively processed by a plurality of devices via a network.

Furthermore, each step described in the above-described flowcharts can be executed by one device or can be shared and executed by a plurality of devices.

Moreover, in a case where a plurality of processes is included in one step, the processes included in the one step can be executed by one device or can be shared and executed by a plurality of devices.

Claim 1:
An information processing method comprising controlling, by an information processing apparatus (<NUM>), execution of a function of a program subject to a maintenance license on a basis of a result of comparison between a valid period of the maintenance license based on maintenance license data stored in the information processing apparatus and a release time of the program stored in the program.