Image processing apparatus, information processing method, and storage medium

A plurality of licenses included in a package license and respectively corresponding to a plurality of applications is stored in a first storage unit, the plurality of applications is stored in a second storage unit, and a product information table associating product information with application information for identifying each of the applications is stored in the second storage unit.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an image processing apparatus, an information processing method, and a storage medium.

2. Description of the Related Art

In recent years, in an image forming apparatus such as a multifunction peripheral, an environment for extending its functions by installing a predetermined application has been improved. As a mechanism of preventing unauthorized installation and transfer of such an application, the application is generally managed by a license. Japanese Patent Application Laid-Open No. 2009-123100 discusses license management that prevents, even when a hard disk is damaged, a loss of a license by storing the license in a nonvolatile memory higher in reliability than the hard disk.

SUMMARY OF THE INVENTION

According to an aspect of the present invention, there is provided an image processing system that includes a service platform for managing a job related to image processing in a distributed environment in response to a processing request received via a request reception program and at least one computer for processing the job by a backend processing program. The image processing system includes a reception unit configured to receive a plurality of processing requests related to the image processing under control of the request reception program, a registration unit configured to register the processing request received by the reception unit as a job, an acquisition unit configured to acquire the job registered by the registration unit under control of the backend processing program without waiting for a request from a user or a program, an execution unit configured to execute a task defined in the job acquired by the acquisition unit under the control of the backend processing program, and a recording unit configured to record information regarding a processing result of the task executed by the execution unit, which is used to maintain consistency of the image processing system, in an area which is protected from writing of the task and managed on the service platform.

DESCRIPTION OF THE EMBODIMENTS

In recent years, various pieces of additional information have been requested to be attached to a license. For example, to sell a plurality of applications as one integrated solution product, a mechanism of preventing the applications included in one product from being separately installed in different image forming apparatuses or a mechanism of preventing the applications from being individually transferred is requested. In order to realize such a mechanism, not only information of each application but also product information need to be stored in a nonvolatile memory. However, the nonvolatile memory is higher in price than a hard disk, and hence a capacity of the nonvolatile memory needs to be reduced to lower costs in some cases. In such a case, an issue may arise that the nonvolatile memory may be used to store only important information such as charging information, and other pieces of information such as the information of each application included in one product cannot be stored in the nonvolatile memory.

FIG. 1illustrates an example of a system configuration of a license management system according to a first exemplary embodiment of the present invention. An image forming apparatus103and an information processing apparatus104are connected to communicate with each other via a local area network (LAN)105. The LAN105can be connected to the Internet106. A license server102and a delivery server101are connected to the Internet106. InFIG. 1, the image forming apparatus103and the information processing apparatus104are connected one each. However, the numbers of respective apparatuses can be arbitrarily set.

FIG. 2illustrates an example of a hardware configuration of the image forming apparatus103. The image forming apparatus103includes units201to213described below.

A document feeding unit201automatically feeds a document to be read to an image reader202. The image reader (scanner)202reads the document. An image forming unit203converts the read document and received data into a print image and prints it. A sheet feeding unit204feeds paper for printing. A network interface (I/F)205is connected to the LAN and the Internet via a network to exchange information with the outside. A sensor206detects a state of each unit in the image forming apparatus103.

A central processing unit (CPU)207executes each processing in the image forming apparatus103. A hard disk208stores a program or data relating to each processing of the image forming apparatus103. A volatile memory209is a rewritable memory that can electrically store temporary data relating to each processing of the image forming apparatus103. A nonvolatile memory210is a rewritable memory that can store data even without any power supply.

An operation unit211receives an instruction input to the image forming apparatus103. A display unit212displays information regarding an operation state of the image forming apparatus103and an operation performed on the operation unit211. A system bus213connects the units201to212with each other to exchange data.

The nonvolatile memory210is higher in reliability than the hard disk208, and hence a possibility of a data loss caused by a failure is lower than that of the hard disk208. The reliability is higher because the nonvolatile memory210includes a plurality of memories, and one data is written in each of the plurality of memories. In other words, the nonvolatile memory210includes a plurality of memories to acquire backup data.

The exemplary embodiment is described below using the nonvolatile memory210as an example of a first storage unit. As an example of a second storage unit which is lower in reliability than the first storage unit, the hard disk208is used. However, these examples are in no way limitative of the exemplary embodiment. For example, a mirrored hard disk can be used as the first storage unit, and a non-mirrored hard disk can be used as the second storage unit lower in reliability than the first storage unit.

The CPU207executes processing based on a program to achieve a software configuration of the image forming unit103and processing in a flowchart executed by the image forming apparatus103described below.

FIG. 3illustrates an example of a hardware configuration of the information processing apparatus104, the delivery server101, and the license server102. These apparatuses respectively include units301to307described below.

A display unit301displays a window, an icon, a message, a menu, and other user interface information. An operation unit302receives information input by an end user via the display unit301, a keyboard, or a mouse.

A CPU303executes each processing in the apparatus. A hard disk304stores a program or data relating to each processing of the apparatus. A volatile memory305is a rewritable memory that can electrically store temporary data relating to each processing of the apparatus. A network I/F306is connected to the LAN and the Internet via a network to exchange information with the outside. A system bus307connects the units301to306with each other to exchange data.

The CPU303of each of the information processing apparatus104, the deliver server101, and the license server102executes processing based on the program to achieve a software configuration of each of the information processing apparatus104, the delivery server101, and the license server102.

FIG. 4illustrates an example of a software configuration of the image forming apparatus103. A license management system1901includes units1902to1909described below. An installation unit1902installs an application in the image forming apparatus103. The application and a license are necessary for the installation at the installation unit1902. The license is information necessary for validating an application function. Even when the application has been introduced, the application function cannot be used unless the license has been introduced. The installation at the installation unit1902is described below referring toFIG. 17.

A transfer license issuance unit1903issues a transfer license included in a transfer package license to uninstall the installed application and enable the other image forming apparatus to use the application. The transfer license issued from the transfer license issuance unit1903is transmitted together with a transfer request to the license server102, and can be transferred to the other image forming apparatus. When the license is transferred to the other image forming apparatus, the license sever102that has received the transfer license can issue a new license, and the issued new license can be input to the other image forming apparatus. The transfer license issuance processing in the transfer license issuance unit1903is described below referring toFIGS. 18 and 19.

A recovery request license issuance unit1904issues a recovery request license to recover, after replacement of a damaged hard disk208with a new hard disk208, an application lost due to the failure. The recovery request license issued from the recovery request license issuance unit1904is transmitted together with a recovery license issuance request to the license server102, thus the license server102can issue a recovery license. The recovery request license issuance processing in the recovery request license issuance unit1904is described below referring toFIGS. 20 and 21.

A request reception unit1905receives a request from the network I/F205. In the present exemplary embodiment, the request received by the request reception unit1905is a Hyper Text Transfer Protocol (HTTP) request transmitted from the information processing apparatus104. However, any type of request can be used.

A request transmission unit1906transmits a request from the network I/F205. In the present exemplary embodiment, the request transmitted by the request transmission unit1906is an HTTP request transmitted to the license server102and the delivery server101. However, any type of request can be used.

A screen generation unit1907generates a response screen for the request received by the request reception unit1905. In the present exemplary embodiment, Hyper Text Markup Language (HTML) data of the screen is used as a HTTP response. However, any type of data can be used.

An application management unit1908manages the application installed by the installation unit1902in the image forming apparatus103. The application management unit1908has functions of controlling activation of the application, checking presence of the application, and managing the application.

A license management unit1909manages the license installed by the installation unit1902in the image forming apparatus103. The license management unit1909has functions of controlling the application by the license and checking presence of the license.

FIG. 5illustrates an example of a software configuration of the license server102. A license issuance system2001includes units2002to2004described below. A license issuance unit2002issues a license necessary for installing the application in the image forming apparatus103.

A request reception unit2003receives a request from the network I/F306. In the present exemplary embodiment, the request received by the request reception unit2003is an HTTP request transmitted from the image forming apparatus103or the information processing apparatus104. However, any type of request can be used. An issued license management unit2004manages issuance history of the license issued by the license issuance unit2002.

FIG. 6illustrates an example of manifest information401included in an application to be installed in the image forming apparatus103. The manifest information401is information about an application (application information) to identify the application. The application information contains at least one of application identification (ID) and an application name. Application ID402is for uniquely identifying the application, and an application name403is a name of the application.

FIG. 7illustrates an example of a license501necessary for installing the application in the image forming apparatus. License ID502is for uniquely identifying the license501. Application ID503describes the application ID402of the application which can be installed using the license501. A validity period504describes a usable period by the license501. A print upper limit505describes an upper limit of prints usable by the license501. A scan upper limit506describes an upper limit of scanning usable by the license501. Device ID507describes the image forming apparatus103in which the application can be installed. Encrypted data508is data encrypted in a form that enables decryption of the data pieces502to507and a key (decoding key) for decrypting the application.

FIG. 8illustrates an example of manifest information601included in a package license which stores a plurality of licenses in one container-type file. Product ID602is for uniquely identifying a product. A product name603is a name of the product. The manifest information601is product information for identifying a composite product packaging a plurality of applications. The product information contains at least one of ID for identifying the composite product and a product name of the composite product.

FIG. 9illustrates an example of a license management table701for managing licenses installed in the image forming apparatus. The license management table701is stored in the nonvolatile memory210of the image forming apparatus103. Each license corresponds to each of the plurality of applications in the product package.

An application ID column702stores application ID of the application installed in the image forming apparatus103. A validity period column703stores remaining time of the validity period in which the application can be used in the image forming apparatus103. A scan upper limit column704stores the upper limit of scanning times in which the application can be used in the image forming apparatus103. A print upper limit column705stores the upper limit of printing times in which the application can be used in the image forming apparatus103. A license ID column706stores license ID of a license used for installing the application in the image forming apparatus103.

FIG. 10illustrates an example of a license history table801for managing history of licenses used for installation in the image forming apparatus. The license history table801is stored in the nonvolatile memory210of the image forming apparatus103. A license ID column802stores license ID of a license used for installation. A transfer column803stores a flag indicating whether the license has been transferred and stores data “YES” when it is determined that the license has been transferred.

FIG. 11illustrates an example of a product information table901for associating product information with an application. The product information table901is stored in the hard disk208of the image forming apparatus103. A product ID column902stores product ID. A product name column903stores a name of the product. An application ID column904stores application ID of an application associated with the product. An application name column905stores an application name of the application associated with the product.

FIG. 12illustrates an example of a license issuance history table1001for managing issuance history of licenses. The license issuance history table1001is stored in the hard disk304of the license server102.

A license ID column1002stores license ID of licenses issued thus far from the license server102. A product ID column1003stores product ID of a product including an application for which the license is issued. A product name column1004stores a product name of the product including the application for which the license is issued. An application ID column1005stores application ID of the application for which the license is issued. An application name column1006stores an application name of the application for which the license is issued.

FIG. 13illustrates an example of a transfer screen1101on which application transfer can be instructed. The transfer screen1101is generated by the image forming apparatus103when a transfer request is received from the information processing apparatus104, and transmitted as a response to the image processing apparatus104. The information processing apparatus104displays the transfer screen1101received as the response on the display unit301. Displaying on the transfer screen1101is described in detail below referring toFIG. 18.

A product name of a product installed in the image forming apparatus103is displayed in a product name column1102. An application name of an application installed in the image forming apparatus103is displayed in an application name column1103. Application names displayed on the application name column1103are collectively displayed by product units because they are transferred by the product units. A transfer button1104is used for instructing transfer of the product installed in the image forming apparatus103. One transfer button1104is displayed for each product unit to execute transfer by product units.

FIG. 14illustrates an example of a recovery screen1201for recovering an application. The recovery screen1201is generated by the image forming apparatus103to be returned as a response when an application information request is received from the information processing apparatus104. The information processing apparatus104displays the recovery screen1201received as the response on the display unit301. The displaying of the recovery screen1201is described in detail below referring toFIG. 20.

A recovery method radio button1202is for selecting an application recovery method. An operator can select on-line or off-line by the recovery method radio button1202. A recovery button1203is used for instructing application recovery.

FIG. 15illustrates installation and transfer of a license. InFIG. 15, for simplicity, for example, some pieces of information stored in the table or the license are omitted.

The installation unit1902of the image forming apparatus103stores, to execute installation, an application and the product information table901in the hard disk208. The product informant table901stores pieces of information602and603acquired from manifest information601. The installation unit1902stores the license management table701and the license history table801in the nonvolatile memory210.

The license management table701stores data503to506included in the license501. The license history table801stores the license ID502of the manifest information601. This installation is described in detail below referring toFIG. 17.

The screen generation unit1907of the image forming apparatus103combines, based on a transfer request, the pieces of product information of the product information table901with the licenses of the license management table701to generate the transfer screen1101for transferring the licenses by product units. The generation of the transfer screen is described in detail below referring toFIG. 18.

The transfer license issuance unit1903of the image forming apparatus103acquires, after reception of a transfer license generation request, the applications (application ID and application names) associated with the designated products from the product information table901to generate an application list. The transfer license issuance unit1903acquires the licenses of the applications included in the generated application list from the license management table701to acquire a license list. The transfer license issuance unit1903then issues a package transfer license2102storing the licenses included in the license list. The issuance of the package transfer license2102is described in detail below referring toFIG. 19.

Thus, the image forming apparatus103can transfer the licenses by product units by combining the licenses in the nonvolatile memory210with the pieces of product information in the hard disk208.

FIG. 16illustrates application recovery. InFIG. 16, for simplicity, for example, some pieces of information stored in the table or the license are omitted.

FIG. 16illustrates a state of the image forming apparatus103in which the hard disk208that has damaged is replaced with a new hard disk208, and an application and a product information table902stored at the time of installing an application are not present. When the product information table901is not present in the hard disk208while a license is present in the nonvolatile memory, the image forming apparatus103executes the following processing. The image forming apparatus103issues a recovery request license2201for storing a list of license ID which has not been transferred yet in the license history table801in the nonvolatile memory210. The issuance of the recovery request license2201is described in detail below referring toFIG. 21.

Upon receiving the recovery request license2201, the license server102identifies a list of records of the license issuance history table1001including the same license ID from the license ID list included in the recovery request license2201. The license server102acquires product ID and product names which are pieces of product information of the identified record to generate the manifest information601.

The license server102generates the license501including application ID, application name, device ID, decoding key, newly issued license ID, validity period, scan upper limit, and print upper limit acquired from the identified record. At that time, the license server102generates the license501with the validity period, the scan upper limit, and the print upper limit set to zero (0). This is to prevent addition of these values during reinstallation since the license management table701in the nonvolatile memory201remains even when the hard disk208of the image forming apparatus103is damaged. Thus, the license sever102generates and issues a license recovery license to prevent any changes in valid values of the license including the upper limit and the validity period.

The license server102generates a recovery package license2202from the generated manifest information601and the list of licenses501to transmit it to the image forming apparatus103.

Processing of the present exemplary embodiment is described referring to a flowchart ofFIG. 17.FIG. 17is a flowchart illustrating processing when an application and a license are installed. The processing of the flowchart is executed when the request reception unit1905of the image forming apparatus103receives an installation instruction request from the information processing apparatus104with use of the application and the package license2101as arguments.

In step S1301, the installation unit1902acquires the application and the package license2101from the request. In step S1302, the installation unit1902acquires the application ID402from the manifest information401of the application.

In step S1303, the installation unit1902acquires the license501including application ID identical to the application ID402acquired in step S1302from the package license2101. In step S1304, the installation unit1902acquires the encrypted data508from the license501acquired in step S1303, and the decoded data pieces502to507of the license501. Hereinafter, the decoded data pieces502to507are referred to as license information.

In step S1305, the installation unit1902acquires the device ID stored in the nonvolatile memory210.

In step S1306, the installation unit1902compares the device ID507stored in the license information acquired in step S1304with the device ID acquired in step S1305. If the device IDs match with each other as a result of comparison (YES in step S1306), the installation unit1902advances the processing to step S1307. Whereas if not, (NO in step S1306) the installation unit1902advances the processing to step S1317.

In step S1307, the installation unit1902compares the application ID503stored in the license information acquired in step S1304with the application ID acquired instep S1302. If the application IDs match with each other as a result of comparison (YES in step S1307), the installation unit1902advances the processing to step S1308. Whereas if not, (NO in step S1307) the installation unit1902advances the processing to step S1317.

In step S1308, the installation unit1902acquires the decoding key of the application from the license501. In step S1309, the installation unit902decodes the application acquired in step S1301using the application decoding key acquired in step S1308and stores the decoded application in the hard disk208.

In step S1310, the installation unit1902checks whether the application ID402acquired in step S1302is present in the license management table701in the nonvolatile memory210. If the application ID identical to the application ID402acquired in step S1302is not present in the license management table701(NO in step S1310), the installation unit1902advances the processing to step S1311. Whereas if present (YES in step S1310), the installation unit1902advances the processing to step S1313.

In step S1311, the installation unit1902adds a new record to the license management table701in the nonvolatile memory210.

In step S1312, the installation unit1902stores the application ID402acquired in step S1302in the record added in step S1311.

In step S1313, the installation unit1902identifies a record having application ID identical to the application ID402acquired in step S1302from the license management table701in the nonvolatile memory210.

In step S1314, the installation unit1902adds the validity period, the print upper limit, and the scan upper limit included in the license501to the record in the license management table701. Through the processing in step S1314, the license corresponding to the application stored in step S1309is stored in the nonvolatile memory210.

In step S1315, the installation unit1902acquires the license ID502from the license501, and adds a new record to the license history table801in the nonvolatile memory210. The installation unit1902then stores the acquired license ID502in the license ID column802.

In step S1316, the installation unit1902adds a record to the product information table901in the hard disk208. The installation unit1902stores the product ID602and the product name603of the manifest information601of the package license2101in the added record. Further, the installation unit1902stores the application ID402and the application name403of the manifest information of the application in the added record. Through the processing in step S1306, the manifest information601(product information) of the package license2101and the manifest information401(application information) of the application are associated with each other.

FIG. 18is a flowchart illustrating processing when a license transfer screen is displayed. The processing of the flowchart is executed when the request reception unit1905of the image forming apparatus103receives a transfer instruction from the information processing apparatus104.

In step S1401, the screen generation unit1907acquires a product information list from the product information table901stored in the hard disk208. In step S1402, the screen generation unit1907acquires one piece of unprocessed product information from the product information list acquired in step S1401.

In step S1403, the screen generation unit1907acquires the application ID list associated with the product ID602of the product information from the product information table901. In step S1404, the screen generation unit1907acquires unprocessed application ID from the application ID list acquired in step S1403.

In step S1405, the screen generation unit1907identifies the application from the application ID acquired in step S1404.

In step S1406, the screen generation unit1907checks whether any unprocessed application is present in the application list. If unprocessed application is present in the application list (YES in step S1406), the processing returns to step S1404, and if not (NO in step S1406), the processing proceeds to step S1407.

In step S1407, the screen generation unit1907generates data to display the product name of the product information acquired in step S1402in the product name column1102of the transfer screen1101. The screen generation unit1907generates data to display the application name of the application acquired in step S1405in the application name column1103.

In step S1408, the screen generation unit1907checks whether any unprocessed product is present in the product list. If unprocessed product is present in the product list (YES in step S1408), the processing returns to step S1403, and if not (NO in step S1408), the processing proceeds to step S1409.

In step S1409, the screen generation unit1907transmits the transfer screen1101as a response to the information processing apparatus104that has issued the transfer instruction.

FIG. 19is a flowchart illustrating processing when a transfer license is issued. The processing of the flowchart is executed when the transfer button1104is pressed on the transfer screen1101.

In step S1501, the transfer license issuance unit1903acquires the license list by acquiring, based on the application ID list of the product names associated with the transfer button1104, the record including the application ID identical to the application ID included in the list from the license management table701.

In step S1502, the transfer license issuance unit1903acquires the record of the unprocessed license from the license list acquired in step S1501. In step S1503, the transfer license issuance unit1903issues the transfer license of the license acquired in step S1502.

In step S1504, the transfer license issuance unit1903acquires the license ID from the license ID column706of the record acquired in step S1502, and acquires a record having matched license ID from the license history table801. The transfer license issuance unit1903sets the transfer flag by setting a value of “YES” in the transfer column803of the acquired record. In step S1505, the transfer license issuance unit1903deletes the record of the license acquired in step S1502from the license management table701.

In step S1506, the transfer license issuance unit1903determines whether any record of an unprocessed license is present in the license list acquired in step S1501. If the record of the unprocessed license is present in the license list (YES in step S1506), the processing returns to step S1502. If not (NO in step S1506), the processing proceeds to step S1507.

In step S1507, the transfer license issuance unit1903generates the package transfer license from the transfer license list generated in step S1503. In step S1508, the transfer license issuance unit1903deletes the record of the product information associated with the transfer button1104pressed on the transfer screen1101from the product information table901.

In step S1509, the transfer license issuance unit1903transmits the package transfer license generated in step S1507as a response to the information processing apparatus104.

According to the above-described processing, the transfer can be performed not by each application unit but a product unit. Thus, when there is an application to be transferred, the user can collectively transfer applications even without understanding the other applications included in a product that need to be simultaneously transferred. Conventionally, transfer must be executed by a number of times equal to the number of applications included in the product. However, according to the present exemplary embodiment, transfer can be executed by a product unit, and time necessary for transfer can be shortened.

FIG. 20is a flowchart illustrating processing for checking presence of an application. The processing in the flowchart is executed when the request reception unit1905of the image forming apparatus103receives a request of application information from the information processing apparatus104.

In step S1601, the screen generation unit1907acquires the application ID from the application ID column702of the license management table701to acquire an application ID list that is a list of the application ID.

In step S1602, the screen generation unit1907acquires the application list that is a list of the applications from the hard disk208.

In step S1603, the screen generation unit1907checks whether all the application IDs included in the application ID list acquired instep S1601are present in the application list acquired instep S1602. If all the application IDs are present (YES in step S1603), the screen generation unit1907advances the processing to step S1605. Whereas if not (NO in step S1603), the screen generation unit1907advances the processing to step S1604.

In step S1604, the screen generation unit1907transmits information to display the recovery screen1201as a response to the information processing apparatus104.

In step s1605, the screen generation unit1907transmits information to display a normal startup screen as a response to the information processing apparatus104.

The example of the processing executed when the information processing apparatus104requests the application information to the image forming apparatus103is described above. However, the processing in the flowchart inFIG. 20can be executed when the image forming apparatus103is activated. In this case, the screen generation unit1907displays the recovery screen1201of step S1604and the normal startup screen of step S1605.

FIG. 21is a flowchart illustrating processing when a recovery request license is issued. The processing in the flowchart is executed when the recovery button1203of the recovery screen1201is pressed.

In step S1701, the recovery request license issuance unit1904acquires information regarding which of on-line and off-line selection of the recovery method radio button1202is.

In step S1702, the recovery request license issuance unit1904acquires a license ID list by acquiring the license ID of the record in which YES is not set in the transfer column803of the license history table801from the license ID column802. In step S1703, the recovery request license issuance unit1904generates the recovery request license2201including the license ID list acquired in step S1702.

In step S1704, the recovery request license issuance unit1904determines whether the recovery method acquired in step S1701is on-line. If on-line is selected (YES in step S1704), the processing proceeds to step S1705. If off-line is selected (NO in step S1704), the processing proceeds to step S1711.

In step S1705, the recovery request license issuance unit1904transmits the recovery request license2201generated in step S1703to the license server102via the request transmission unit1906.

In step S1706, the installation unit1902receives the recovery package license2202from the license server102via the request reception unit1905as a response to the request in step S1705.

In step S1707, the installation unit1902acquires a record of the license ID matched with the license ID included in the license ID list acquired in step S1702. The installation unit1902acquires the application ID list by acquiring the application ID from the record.

In step S1708, the installation unit1902transmits the application ID list acquired in step S1707to the delivery server101via the request transmission unit1906. In step S1709, the installation unit1902receives the list of the applications from the delivery server101via the request reception unit1905as a response to the request in step S1708.

In step S1710, the installation unit1902executes installation using the recovery package license received in step S1706and the application list received in step S1709. The installation executed in this case is illustrated inFIG. 17.

In step S1711, the recovery request license issuance unit1904transmits the recovery request license generated in step S1703as a response to the image processing apparatus104.

FIG. 22is a flowchart illustrating processing when a recovery license is issued. The processing in the flowchart is executed when the license sever102receives the recovery request license from the image forming apparatus103in step S1705.

In step S1801, the request reception unit2003receives the recovery request license2201from the image forming apparatus103. In step S1802, the license issuance unit2002acquires the license ID list from the recovery request license2201.

In step S1803, the license issuance unit2002acquires unprocessed license ID from the license ID list acquired in step S1802. In step1804, the license issuance unit2002acquires the record including the license ID acquired in step S1803in the license ID column1002of the license issuance history table1001.

In step S1805, the license issuance unit2002issues the license ID not used in the license issuance history table1001. In step S1806, the license issuance unit2002acquires the application ID, the device ID, and the decoding key from the application ID column1005, the device ID column1010, and the decoding key column1011of the record acquired in step S1804.

In step S1807, the license issuance unit2002issues the recovery license including the license ID issued in step S1805and the application ID, the device ID, and the decoding key acquired in step S1806. The license issuance unit2002includes the validity period, the scan upper limit, and the print upper limit having values of zero (0) in the recovery license.

In step S1808, the license issuance unit2002acquires the product ID from the product ID column1003of the record acquired in step S1804.

In step S1809, the license issuance unit2002checks whether the recovery license of the record having the product ID identical to the product ID acquired in step S1808has been issued. If the recovery license has not been issued (NO in step S1809), the license issuance unit2002advances the processing to step S1810. If the recovery license has been issued (YES in step S1809), the license issuance unit2002advances the processing to step S1812.

In step S1810, the license issuance unit2002acquires the product name from the product name column1004of the record acquired in step S1804. In step S1811, the license issuance unit2002issues the recovery package license2202storing the recovery license issued in step S1807and the manifest information601including the product ID acquired in step S1808and the product name acquired in step S1810.

In step S1812, the license issuance unit2002acquires the recovery package license2202including the recovery license including the product ID identical to the product ID acquired in step S1808. In step S1813, the license issuance unit2002adds the recovery license issued in step S1807to the recovery package license2202acquired in step S1812.

In step S1814, the license issuance unit2202checks whether unprocessed license ID is present in the license ID list. If unprocessed license ID is present (YES in step S1814), the processing returns to step S1803, and if not (NO in step S1814), the processing proceeds to step S1815.

In step S1815, the license issuance unit2002transmits the issued recovery package license2202as a response to the image forming apparatus103.

The present exemplary embodiment can provide the license management function that uses much more information by storing the license in the highly reliable nonvolatile memory and storing the product information in the hard disk lower in reliability. Further, if the hard disk lower in reliability is damaged, the present exemplary embodiment can provide the highly reliable license management by recovering the product information based on the license stored in the nonvolatile memory.

Thus, according to the above-described exemplary embodiment, a low-cost and highly reliable license management technique can be provided, which combines a first storage unit and a second storage unit lower in reliability than the first storage unit. The image forming apparatus103is one example of such an image processing apparatus.

Aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or an MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiment, and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiment. For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., computer-readable medium).

This application claims priority from Japanese Patent Application No. 2011-083840 filed Apr. 5, 2011, which is hereby incorporated by reference herein in its entirety.