Information processing apparatus, program management method for information processing apparatus, and non-transitory computer-readable storage medium

An information processing apparatus provided with an extension unit, the extension unit comprises a unit that performs control to download an introduction program that provides information about an extension program for extending functionality which can be downloaded and to install the introduction program; a unit that obtains, from the installed introduction program, information about an extension program which can be downloaded; a unit that performs control to download the extension program that can be downloaded and install the extension program that can be downloaded, based on the information obtained from the introduction program, in response to receiving an instruction to install the extension program which can be downloaded; and a unit that performs control to uninstall the installed extension program, based on limitation information for the extension program, which is included in the information obtained from the introduction program.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to an information processing apparatus, a program management method for an information processing apparatus, and a non-transitory computer readable medium.

Description of the Related Art

In recent years, systems capable of extending the functions of an image forming apparatus located in an office dynamically by installation of programs for function extension on the image forming apparatus are spreading. For example, one type of this system is Canon Inc.'s MEAP (registered trademark), or the like.

Also, techniques for preventing unauthorized usage of applications by monitoring license information, operating status, or the like, for a management target application are known (refer to Japanese Patent Laid-Open No. 2001-84137, for example).

In the above described system, when it is envisioned that under certain conditions a for-profit function extension program is allowed to be used for free, it is necessary to modify the function extension program, to hold the conditions under which it is possible to use the program for free, and to have a function for stopping the function extension program in accordance with the conditions. Further, there is the issue that in programs for function extension that will be developed hereafter, double development, and double management of a program for function extension that is stopped depending on certain conditions, and the normal program for function extension is necessary, and so maintenance and development costs rise.

Also, even if a function for monitoring an application and causing its usage to be stopped is employed as in Japanese Patent Laid-Open No. 2001-84137, it will be necessary to add conditions by which it is possible to use programs for function extension installed later for free to the monitoring means, and image forming apparatus function extension will be necessary. For this reason, there will be a maintenance burden.

SUMMARY OF THE INVENTION

In view of the above described issues, the present invention provides an information processing apparatus comprising a means for performing management of limitations of programs for function extension simply and at low-cost, to make it possible to use programs for function extension with limitations.

According to one aspect of the present invention, there is provided an information processing apparatus provided with an extension unit for performing control to download an extension program for extending functionality from an external server and to install the extension program, the extension unit comprising: a first install control unit configured to perform control to download from the external server an introduction program that provides information about an extension program which can be downloaded from the external server, and to install the introduction program; an obtaining unit configured to obtain, from the installed introduction program, information about an extension program which can be downloaded; a second install control unit configured to perform control to download the extension program that can be downloaded from the external server and install the extension program that can be downloaded, based on the information obtained from the introduction program by the obtaining unit, in response to receiving an instruction to install the extension program which can be downloaded; and a uninstall control unit configured to perform control to uninstall the installed extension program, based on limitation information for the extension program, which is included in the information obtained from the introduction program by the obtaining unit.

According to another aspect of the present invention, there is provided a program management method in an information processing apparatus provided with an extension unit for performing control to download an extension program for extending functionality from an external server and to install the extension program, the method comprising: by the extension unit, a first install control step of performing control to download from the external server an introduction program that provides information about an extension program which can be downloaded from the external server, and to install the introduction program; an obtaining step of obtaining, from the installed introduction program, information about an extension program which can be downloaded; a second install control step of performing control to download the extension program that can be downloaded from the external server and install the extension program that can be downloaded, based on the information obtained from the introduction program in the obtaining step, in response to receiving an instruction to install the extension program which can be downloaded; and a uninstall control step of performing control to uninstall the installed extension program, based on limitation information for the extension program, which is included in the information obtained from the introduction program by the obtaining step.

According to another aspect of the present invention, there is provided a non-transitory computer readable medium storing a program for causing a computer to function as a first install control unit configured to perform control to download from an external server an introduction program that provides information about an extension program which can be downloaded from the external server, and to install the introduction program; an obtaining unit configured to obtain, from the installed introduction program, information about an extension program which can be downloaded; a second install control unit configured to perform control to download the extension program that can be downloaded from the external server and install the extension program that can be downloaded, based on the information obtained from the introduction program by the obtaining unit, in response to receiving an instruction to install the extension program which can be downloaded; and a uninstall control unit configured to perform control to uninstall the installed extension program, based on limitation information for the extension program, which is included in the information obtained from the introduction program by the obtaining unit.

According to the present invention, an information processing apparatus that can realize usage of an extension program with a limitation for a fixed interval or a fixed number of times without changing the already existing extension program can be provided.

DESCRIPTION OF THE EMBODIMENTS

Below, the drawings are used to explain embodiments according to the present invention.FIG. 1is a view for showing an example of a device configuration of a distribution system that includes an image forming apparatus capable of applying a program management method according to the present application invention. The distribution system including the image forming apparatus of the present application invention is comprised by an image forming apparatus101, a network102, and a distribution server103. Note that, while not shown, the image forming apparatus101is connected to a client, and performs predetermined processing in response to an instruction from the client. The client (not shown) has a Web browser, and the Web browser transmits a request in an HTTP format to a Web server system of the image forming apparatus101. Regarding an application according to the present application invention, there is a plurality of types, such as those that cooperate with the Web browser, and details of these types are explained later.

The image forming apparatus101is a multi-function peripheral (MFP: Multi Function Peripheral) which integrates a plurality of functions, such as a scanner function, a printer function, a facsimile function and a file transmission function. The image forming apparatus101is connected to the network102. The network102is a so-called a computer network, and is a communication network capable of freely exchanging information between devices connected thereto. The network102may exist at various scales, such as a LAN (Local Area Network) or the Internet, but may be of any scale in the present embodiment. The distribution server103is an external server capable of holding and managing extension programs, and of distributing an extension program in response to a request from another device, such as the image forming apparatus101. Also, the distribution server103is connected to the network102. Because the image forming apparatus101and the distribution server103are both connected to the network102, they are able to exchange information freely.

Note that while a single instance of the image forming apparatus101is shown inFIG. 1, a plurality may be included. The processing of the distribution server103may be distributed to a plurality of physically separate information processing apparatuses. An image forming apparatus is given as an example of a device that performs function extension in the present embodiment, but said device may be another information processing apparatus, such as a PC.

FIG. 2is a block diagram for showing an example configuration of main components of the image forming apparatus101. The image forming apparatus101includes a controller unit200. The controller unit200is connected to a scanner270, which is an image input device, a printer295, which is an image output device, and an operation unit212. The controller unit200performs control to realize a copy function by printing out image data, read by the scanner270, by means of the printer295.

The controller unit200includes a CPU201. The CPU201starts up an OS (Operating System) by means of a boot program stored in a ROM203. The CPU201, via the OS, executes a program stored on an HDD (Hard Disk Drive)204, and thereby executes various later described types of processes. A RAM202provides a work area and also provides an image memory area for temporarily storing image data. The RAM202is also used as a work area for the CPU201. The HDD204is a non-volatile storage region, and stores various programs and image data.

The CPU201is connected to the ROM203, the RAM202, an operation unit I/F (interface)206, a network I/F210, a USB host I/F213and an image bus I/F205, through a system bus207. The operation unit I/F206is an interface for the operation unit212, which has a touch panel, and outputs to the operation unit212image data to be displayed on the operation unit212. The operation unit I/F206sends information, input by a user through the operation unit212, to the CPU201.

The network I/F210is an interface for connecting the image forming apparatus101to the network102. The USB host I/F213is an interface that communicates with a USB storage214. The USB host I/F213outputs data stored in the HDD204to the USB storage214. The USB host I/F213also obtains data stored in the USB storage214, and transfers said data to the CPU201. The USB host I/F213is able to be connected to a plurality of USB devices, including the USB storage214. The USB storage214is an external storage apparatus that stores data, and is removable with regard to the USB host I/F213.

The image bus I/F205connects the system bus207to an image bus208, which transfers image data at high speed, and is a bus bridge for converting data formats. The image bus208is configured by a PCI bus, IEEE 1394 or the like. A device I/F220, a scanner image processing unit280, and a printer image processing unit290are provided on the image bus208. The scanner270and the printer295are connected to the device I/F220, and the device I/F220performs conversion between synchronous and asynchronous systems for image data. The scanner image processing unit280performs correction, modification and editing for input image data. The printer image processing unit290performs correction, resolution conversion and the like in accordance with the printer295for printed output image data.

FIG. 3is a view for illustrating an example configuration of software in the image forming apparatus101. Operating on an OS301are a native program302, which is a program for controlling printers, fax machines, scanners and the like, and an extension program execution platform303, which is a platform for executing extension programs305. The extension program execution platform303is, for example, a program for realizing dynamic addition and deletion of programs, and implements the OSGi (Open Service Gateway initiative) framework. An extension program system service304is a service that provides shared functions used by the extension programs305. By the extension programs305calling a function of the extension program system service304, effort to develop shared functions used by the extension programs305can be reduced.

Each of the extension programs305is a program, operating on the extension program execution platform303, for extending the functions of the image forming apparatus101, and is capable of being installed/uninstalled as necessary. Each of the extension programs305is capable of being started/stopped as necessary, and when stopped, resources for processing are not consumed, and services and functions are not provided. Each of the extension programs305is capable of accessing each module of the image forming apparatus101, such as another extension program or the RAM202, via the extension program execution platform303or the extension program system service304. Those of the extension programs305that have a UI (User Interface) are capable of displaying an icon on a main menu screen displayed on the operation unit212of the image forming apparatus101. When the operation unit I/F206detects that a user has selected an icon via the operation unit212, the operation unit I/F206transmits to the CPU201something to that effect. Upon receiving said transmission, the CPU201displays the UI for the extension program selected by the user on the operation unit212.

A download program500which will be explained later usingFIG. 5may be included in the extension programs305. Additionally, the download program500itself has a function to download and install on the image forming apparatus101the extension programs305. Therefore, in the present embodiment, other extension programs are installed in the image forming apparatus101through a different method. The different method may be, for example, a method using a function provided by the image forming apparatus101as a standard function, wherein an extension program is installed through a manual operation. An introduction program900may be given as a kind of the extension programs305. Details of the introduction program900are explained later, but installation control of the introduction program900is performed by the download program500. In the present specification, for convenience, control of installation of the introduction program900is also referred to as “first installation control”, and control of installation of those of the extension programs305other than the introduction program900is referred to as “second installation control”.

Note that the software configuration shown inFIG. 3only describes basic portions, and other services or the like may be included in accordance with the execution environment. Unnecessary services may be eliminated for reasons of restricting settings or the like.

FIG. 4is a view for illustrating an example configuration of a main menu screen400displayed on the operation unit212of the image forming apparatus101. The main menu screen400has a program icon display area401, standard program icons402, and extension program icons403. The program icon display area401is an area that displays icons for programs (functions) currently able to be operated through the image forming apparatus101. Standard program icons402are icons for displaying a UI (not shown) for operating standard functions provided by a control program of the image forming apparatus101. The extension program icons403are icons for displaying a UI (not shown) for operating the extension programs305installed on the image forming apparatus101. The main menu screen400is displayed, for example, when power is turned on and when designated processing is complete or suspended.

[Download Program and Extension Program System Service]

Below, explanation will be given for the extension program system service304, which is used in limitation management for the download program500and extension programs according to the present embodiment.FIG. 5is a view for showing an example of a functional configuration of the download program500and the extension program system service304. Each function is realized by the CPU201executing a program corresponding to said function.

In the present embodiment, the extension programs305are explained as being classified into three types. Each of the extension programs305is described through a Java (registered trademark) program, and is an application program able to be dynamically added to or deleted from the image forming apparatus101. A first type is an applet type, which is an application displayed on the user interface of the operation unit212. An applet type application is an application that is downloaded by the Web browser of the image forming apparatus101, embedded in the Web browser and then executed. Note that a type of application that performs UI display or processing independently without being embedded in the Web browser is also included in the applet type. An instruction to activate or execute an application of the applet type is performed via the operation screen of the image forming apparatus101.

A second type is a servlet type, which displays a user interface on a Web browser for a client that can access the network (not shown). An application of the servlet type is a module executed on the Web server, and is of a type that performs processing in accordance with an instruction from the Web browser for the client, and returns the result thereof to the client. An application of the servlet type is activated in accordance with a request transmitted by inputting a URL for a Web server for the application (for example, Web server508) into the Web browser for the client. Then, in response to a request from the client side, processing is performed on the server side, and the processing result is returned to the client.

A third type is an esplet type that does not have an independent user interface, which is a type that activates in response to an instruction from an application or the like of the applet or servlet type, and then executes. Thus, the esplet type application has no function to display a UI, and requires collaboration with a different program to display specific information that relates to the application.

As shown above, each application has different presentation methods for information and a different user interface configuration, in accordance with the type thereof. Thus, in the present application invention, a presentation method for a processing result (such as a notification of a limit expiration for an application) is changed in accordance with the type. The specific method therefor is explained later alongside flowcharts or the like. Note that a Java (registered trademark) applet and Java (registered trademark) servlet or the like may be given as an example of an applet or servlet.

The download program500has an extension program information management unit501, an extension program download unit502, an extension program information display control unit503, an extension program limitation management unit504, an elapsed time management unit505and a use count management unit506. The extension program information management unit501is a functional unit for managing information about the extension programs305that are able to be downloaded from the distribution server103. The extension program information management unit501holds in advance identification information for the introduction program900, which is explained later usedFIG. 9, and key information, limitation information or the like necessary when downloading the introduction program900. Also, the extension program information management unit501has a function of instructing the extension program download unit502to download the introduction program900. A download instruction is performed based on identification information for the introduction program900. Furthermore, the extension program information management unit501has a function for exchanging information with the introduction program900. Note that identification information is information for uniquely identifying one of the extension programs305in the distribution server103. Also, key information associated with authentication information more specifically corresponds to a license key, a product key, a license access number, or the like. The key information is necessary when downloading or installing an application, or when viewing applications that can be installed. In the present embodiment, for the image forming apparatus101, the key information for each of the extension programs305is included in the introduction program900.

The extension program download unit502uses key information or other information held by the introduction program900to download the extension programs305from the distribution server103and install the extension programs305. The extension program information display control unit503obtains, from the extension program information management unit501, information about those of the extension programs305that are able to be downloaded from the distribution server103, configures a screen based on said information and provides said screen to a user via the operation unit212. Furthermore, the extension program information display control unit503accepts a user operation via the provided screen.

The extension program limitation management unit504counts and manages a usage count and a usage duration by a function of the extension programs305, through the elapsed time management unit505and the use count management unit506. Furthermore, the extension program limitation management unit504performs limitation management for installed extension programs305.

The extension program system service304has a use count management unit507, a Web server508, and an applet registration unit509. The use count management unit507manages a count of a function, registered by an extension program, that is used by the image forming apparatus101. For example, if the usage of the one of the extension programs305is restricted in accordance with a number of times that the extension programs305uses a color copy function, the download program500registers to the effect that the color copy function is managed to the use count management unit507of the extension program system service304. The use count management unit507performs management by incrementing the function usage count each time the extension program uses the color copy function. Note that a function that is managed may be a function installed as standard on the image forming apparatus101, or may be a function provided by another one of the extension programs305.

When one of the extension programs305is of the servlet type, the Web server508registers a URL (Uniform Resource Locator) by which the one of the extension programs305operates. The applet registration unit509displays an expansion program icon for starting one of the extension programs on the operation unit212by registering the name of the one of the extension programs305and an expansion program icon1008that represents the one of the extension programs305. When one of the extension programs305is of the applet type, applet registration is performed by the applet registration unit509. Registration processing in accordance with each type is explained byFIG. 25.

Hereinafter, explanation will be given for the introduction program900according to the present embodiment.FIG. 9is a view for showing an example of a functional configuration of the introduction program900. Each function is realized by the CPU201reading and executing a program corresponding to said function.

The introduction program900has an extension program information management unit901. The extension program information management unit901notifies the download program500that information from the distribution server103about distributable extension programs (hereinafter, distributable extension program information) has been updated. The extension program information management unit901provides distributable extension program information1000to the download program500.

Below, explanation will be given for the distributable extension program information according to the present embodiment.FIG. 10is a view for illustrating an example configuration of the distributable extension program information1000.

The distributable extension program information1000includes setting information1001and one or a plurality of pieces of extension program information1002. The setting information1001is a setting file in which version information for the distributable extension program information1000, identification information for the extension programs305included in the distributable extension program information1000, or the like, are recorded. The extension program information1002is information for each of the extension programs305included in the distributable extension program information1000, and here three distributable extension programs are indicated. The extension program information1002is information distinguished by identification information recorded in the setting information1001. Each of the extension program information1002items includes explanation information1003, logo information1005, manifest information1009, summary information1011, and limitation information1014.

The explanation information1003includes one or a plurality of explanation images1004. Each of the explanation images1004is, for example, image data displayed by detailed information display panels703shown inFIGS. 7A and 7B, on each of which characteristics or the usage for one of the extension programs305is drawn. For example, by adding a sequential serial number that is a natural number to the file name for each of the explanation images1004, it is possible to designate an order in which the explanation images1004are displayed. Additionally, in the present embodiment, the PNG format is shown as an example of the file format for image data included in the distributable extension program information1000, but limitation is not made to this.

The logo information1005includes a list screen button logo1006, a details screen title logo1007, and the extension program icon1008. The list screen button logo1006is image data displayed in extension program information buttons602shown onFIG. 6. The details screen title logo1007is image data displayed in a title image702shown onFIGS. 7A and 7B. The extension program icon1008corresponds to one of the extension program icons403displayed on the main menu screen400shown onFIG. 4after the extension programs305are installed.

The manifest information1009includes a manifest file1010. The manifest file1010is an extraction of files packaged in one of the extension programs305. The manifest file1010is a file in which a version for a tool that generated the one of the extension programs305, information about resources, such as a memory usage amount used when the one of the extension programs305is executed, and information such as a URL to call a servlet, or the like is recorded. Details of the manifest file1010will be explained later usingFIGS. 14A and 14B.

The summary information1011includes a default summary information file1012and one or more localization summary information files1013. The default summary information file1012and the localization summary information files1013record information not recorded in the manifest file1010, such as an extension program name or overview descriptive text for an extension program. A localization summary information file1013is created when changing display content in response to a language setting of the image forming apparatus101. The file name of the localization summary information file1013includes locale information for the corresponding language (for example, “ja” for Japanese and “de” for German). If there is no instance of the localization summary information file1013corresponding to the display language of the image forming apparatus101, data from the default summary information file1012is used.

The limitation information1014includes a limitation information file1015and a limitation detailed information file1016. The limitation information file1015records information such as a usable number of days for the one of the extension programs305, a number of times each function can be used, a type of a function that has a restriction on the number of times usable, or whether the function will automatically stop when the number of times usable is restricted. Note that “the function will automatically stop” denotes that an extension program itself has a function of referring to information about a function use count, and automatically stopping when used a certain number of times. When “automatic-stop”1603is set to “true”, the one of the extension programs305automatically stops when used the certain number of times. The limitation detailed information file1016records an application type1701for the one of the extension programs305. Note that the application type of the one of the extension programs305may be included in the manifest file1010.

FIG. 11is a view for illustrating an example configuration of the setting information1001. The setting information1001includes version information1101, list information1102and key information1103. The version information1101is information that shows the version of the distributable extension program information1000. List information1102is information that lists identification information for the extension programs305included in the distributable extension program information1000. In an extension program list screen600shown inFIG. 6, the extension program information buttons602line up in the order described by the list information1102. Key information1103is key information associated with identification information for uniquely identifying the extension programs305held by the distribution server103. When downloading the extension programs305from the distribution server103, the value of the key information1103associated with each piece of identification information is designated. The key information1103describes key information corresponding to all identification information enumerated by the list information1102. For example,FIG. 10shows “LicenseAccessNumber-82bfff3b-012a-1000-b1ef-00e000c4ae6f” as a key for identification information corresponding to the identification information “82bfff3b-012a-1000-b1ef-00e000c4ae6f”, and the corresponding value is “1111222233337777”.

FIG. 12AtoFIG. 12Care views for showing examples of the explanation images1004. The image data here is in the PNG format, and the file name is shown.

FIGS. 13A, 13B and 13Care views for showing examples of the logo information1005.FIG. 13Ais a view for showing an example of the list screen button logo1006.FIG. 13Bis a view for showing an example of the details screen title logo1007.FIG. 13Cis a view for showing an example of an icon that displays the extension program icons403on the main menu screen400when extension programs of the applet type are installed. The image data here is in the PNG format, and the file name is shown.

FIG. 14Ais a view for illustrating an example configuration of the manifest file1010. The manifest file1010includes two areas: a program information section1401and a resource information section1402. The program information section1401describes information about one of the extension programs305. Included in the program information section1401are an Application-Id for uniquely identifying the one of the extension programs305, a Bundle-Name that shows the name of the one of the extension programs305, a Bundle-Version that shows version information, or the like. The Application-Id corresponds to identification information included in the setting information1001. The resource information section1402describes a resource amount used by an extension program. Included in the resource information section1402is a maximum memory usage amount (MaximumMemoryUsage), a maximum thread usage amount (MaximumThreadUsage), a maximum file space usage amount (MaximumFilespaceUsage), or the like, for the extension program.

FIG. 14Bshows an example of the manifest file1010for one of the extension programs305of the servlet type. The manifest file1010for one of the extension programs305of the servlet type further includes a servlet information section1403as an area. The servlet information section1403describes a URL for using one of the extension programs305which itself is of servlet type as a servlet. Note that when the one of the extension programs305has a plurality of URLs, each URL is recorded with a comma delimiter. Additionally, information included in the manifest file1010is not limited to information shown here, and may further include information required when downloading or installing one of the extension programs305.

FIGS. 15A and 15Bare views for illustrating example configurations of the summary information1011.FIG. 15Ais a view for showing an example of the default summary information file1012.FIG. 15Bis a view for showing an example of a summary information file for Japanese in the localization summary information files1013. The summary information1011includes extension program name information1501and extension program summary information1502.

FIGS. 16A, 16B, 16C and 16Dare views for illustrating example configurations of the limitation information file1015.FIG. 16AandFIG. 16Bshow the definition of a restriction of a number of times a function of the one of the extension programs305is usable.FIG. 16Ashows that it is possible to use a copy function 100 times.FIG. 16Bshows that it is possible to use a scan function 100 times. The value of the “automatic-stop”1603is recorded as “true”. This designation means that the one of the extension programs305corresponding to the limitation information file1015will stop when the scan function is used 100 times. This control is executed through the use count management unit507of the extension program system service304.

FIG. 16CandFIG. 16Dshow definition of restriction of a usable number of days for one of the extension programs305. The case of setting shown inFIG. 16Cshows that the usable number of days for one of the extension programs305is 100 days.FIG. 16Dshows an example in which a usable number of days restriction is not designated. Here the value of “available-days”1605is recorded as “false”. Note that when a usable number of times restriction or a usable number of days restriction is not designated, a state of not recording anything in the limitation information file1015or a configuration of not having the limitation information file1015itself may be taken.

FIGS. 17A, 17B, 17Care views for illustrating example configurations of the limitation detailed information file1016.FIG. 17Ashows that the one of the extension programs305is an applet type.FIG. 17Bshows that the one of the extension programs305is a servlet type.FIG. 17Cshows that the one of the extension programs305is an esplet type.

An example of a configuration of the distributable extension program information1000, shown inFIG. 10, and data included therein were described, but these are not limited to the foregoing. For example, configuration may be taken such that a display or a layout of an image is further defined in detail.

FIG. 18Ashows an information management table1800that manages the distributable extension program information1000in the extension program information management unit501. The information management table1800includes an Application-Id1801, a Bundle-Name1802, an application type1803, an extended program usable day number1804, an extended program usable count1805, and a function type1806for the function for which the extension programs305restricts a usable number of times.

FIG. 18Bshows a limitation management table1810that manages the state of limitation information and the extension programs305, on the basis of an Application-Id in the distributable extension program information1000, in the extension program limitation management unit504. The limitation management table1810includes the Application-Id1801, a number of days elapsed1807after starting an extension program, a use count1808for usage of the function of the extension program, and a status1809of the extension program.

The value of the number of days elapsed1807of the limitation management table1810is incremented by each number of days that elapse since the one of the extension programs305is installed. The value of the use count1808is also incremented each time the one of the extension programs305uses the function designated by the function type1806. The status1809becomes a “start” status when the extension program is started, and a “limit expiration” status in the case of limit expiration. Note that configuration may also be taken such that other statuses can be set in accordance with an installation status.

[Download Process for an Extension Program]

Upon receiving an instruction from a user, the download program500performs control to download one of the extension programs305from the distribution server103and install the one of the extension programs305. UsingFIG. 21, explanation will be given below of a process for downloading the one of the extension programs305. Step S2101to step S2104represent each step.

In step S2101, the download program500uses the key information1103and the identification information for the introduction program900, held by the extension program information management unit501, to request one of the extension programs305from the distribution server103.

In step S2102, upon receiving the request, as a response the distribution server103replies to the download program500with the one of the extension programs305corresponding to the identification information and the key information1103.

In step S2103, the download program500instructs the extension program execution platform303to install the one of the extension programs305received from the distribution server103.

In step S2104, the extension program execution platform303executes the installation of the one of the extension programs305which is designated, and notifies the download program500of the installation result. This processing flow then terminates.

Additionally, before the processing of step S2101, the download program500may perform processing to use the identification information and the key information1103to perform, towards the distribution server103, a query about the one of the extension programs305designated by a user, and, based on the response to the query, determine whether it is possible to download and install the one of the extension programs305without any problem.

[Download Process for Introduction Program]

At a time such as when the download program500is first activated, or a predetermined date and a time is reached, or a time when the download program500receives an update instruction from a user (pressing an update button604inFIG. 6), the download program500queries the distribution server103for information about the introduction program900. The download program500then, as necessary, downloads the introduction program900from the distribution server103and installs the introduction program900. UsingFIG. 19, explanation will be given below of a process for downloading the introduction program900. Step S1901to step S1907represent each step.

In step S1901, the download program500uses the key information1103and the identification information for the introduction program900, held by the extension program information management unit501, to request information of the introduction program900from the distribution server103. Here, information of a version of the introduction program900which can be distributed is included in the requested information.

In step S1902, upon receiving the request, the distribution server103replies to the download program500with the response of extension program information corresponding to the identification information and the key information1103(that is, information that includes information of a version of the introduction program900).

In step S1903, the download program500compares the version information for the instance of the introduction program900that is currently installed with the version information included in the information about the introduction program900received from the distribution server103. If the version information differs, the download program500performs step S1904, enabling the download of the new version of the introduction program900. However, if the version information matches, the download program500determines that it is unnecessary to download the introduction program900from the distribution server103as the latest version of the introduction program900is installed, and this processing flow terminates.

In step S1904, the download program500uses the identification information and the key information1103for the introduction program900to request the latest version of the introduction program900from the distribution server103.

In step S1905, upon receiving the request, as a response the distribution server103replies to the download program500with the introduction program900corresponding to the identification information and the key information1103.

In step S1906, the download program500instructs the extension program execution platform303to install the introduction program900received from the distribution server103.

In step S1907, the extension program execution platform303performs the installation of the introduction program900, and notifies the download program500of the result of said installation. This processing flow is then terminated.

When started, the introduction program900notifies the download program500that the distributable extension program information1000has been updated. In response to the update notification from the introduction program900, the download program500obtains the distributable extension program information1000from the introduction program900. UsingFIG. 20, explanation will be given below of a process for updating the introduction program900. Step S2001to step S2007represent each step.

In step S2001, the extension program execution platform303generates the introduction program900. This generation indicates disposing and configuring the introduction program900that was downloaded within the image forming apparatus101so that the introduction program900can be executed. Thus, the introduction program900is loaded into the RAM202, and enters a state of being able to be executed by the CPU201.

In step S2002, the extension program execution platform303instructs start of the introduction program900.

In step S2003, the introduction program900notifies the download program500to the effect that the distributable extension program information1000has been updated.

In step S2004, upon receiving an update notification from the introduction program900, as a response the download program500makes a request to the introduction program900to obtain the distributable extension program information1000.

In step S2005, upon receiving the request from the download program500, the introduction program900, as a response, transmits the distributable extension program information1000to the download program500. For the distributable extension program information1000that is transmitted, configuration may be taken such that only an updated differential is transmitted, or configuration may be taken such that the entirety of the distributable extension program information1000after the update is transmitted.

In step S2006, upon receiving the distributable extension program information1000after the update from the introduction program900, the download program500transmits the result of updating processing to the introduction program900.

In step S2007, upon receiving the result of updating processing for the distributable extension program information1000from the download program500, the introduction program900transmits the result of start processing to the extension program execution platform303. This processing flow is then terminated.

UsingFIG. 6,FIG. 7A, andFIG. 7B, explanation will be given for screens the download program500displays on the operation unit212.

FIG. 6is a view for showing an example of the extension program list screen600that the download program500displays on the operation unit212. The extension program list screen600has a button display panel601, the extension program information buttons602, change buttons603and the update button604. The button display panel601is a panel for handling the extension program information buttons602together. There are cases where a plurality of button display panels601are prepared in accordance with the number of the extension program information buttons602. Extension program information buttons602are buttons that display an overview of the extension programs305that are distributable by combining an image and text. Upon detecting that one of the extension program information buttons602has been pressed, the download program500displays a detailed information screen700, which is explained later usingFIGS. 7A and 7B. Change buttons603are buttons for changing the button display panel601to be displayed when there is a plurality of the button display panel601. The update button604is a button for updating the distributable extension program information1000held by the download program500. In other words, the processing flow shown inFIG. 19is performed when the update button604is pressed.

FIGS. 7A and 7Bare views for showing examples of detailed information screens700the download program500displays on the operation unit212.FIG. 7Ashows an example configuration of a screen when the one of the extension programs305that is displayed is able to be downloaded and installed without any problem.FIG. 7Bshows an example of a screen when downloading and installing the one of the extension programs305that is displayed is restricted. A case of already being downloaded, a case of expiration of an installation limitation, or the like may be given as a reason for restricting download or the like here.

The icon for a download button701is different inFIG. 7AandFIG. 7B. The process to change the icon for the download button701will be explained later. The detailed information screen700has the download button701, the title image702, a detailed information display panel703and change buttons704. The download button701is a button for instructing the download and installation of the one of the extension programs305for which detailed information is displayed.

The title image702is an image of the title of the one of the extension programs305. The detailed information display panel703is a panel for displaying an image on which the characteristics or usage of one of the extension programs305is drawn. There may be cases where a plurality of the detailed information display panel703are prepared in accordance with the number of images on which characteristics or usage is drawn. The detailed information display panel703corresponds to the explanation images1004shown inFIGS. 12A to 12C. The change buttons704of the detailed information display panel are buttons for changing the detailed information display panel703which is displayed in a case where there is a plurality of the detailed information display panel703.

FIG. 22is a flowchart for showing an example of a change process for the download button701. Step S2201to step S2203represent each step.

In step S2201, the download program500determines whether a distributable extension program305has been downloaded, or has a limit expiration. If the one of the extension programs305has been downloaded or has a limit expiration (YES in step S2201), processing transitions to step S2202, otherwise (NO in step S2201) processing transitions to step S2203.

In step S2202, the download program500obtains the default icon for the download button701(that is, the image shown inFIG. 7A) held by the download program500, and sets the default icon as the icon for the download button701.

In step S2203, the download program500obtains an invalid icon (that is, an image shown in FIG.7B), and sets the obtained icon as the icon for the download button701. This processing flow is then terminated.

[Extension Program Download And Installation]

Upon detecting that the download button701has been pressed via the detailed information screen700, the download program500downloads the designated one of the extension programs305from the distribution server103, and installs the designated one of the extension programs305into the extension program execution platform303. UsingFIG. 23, explanation will be given below of extension program download and install processes. Step S2301to step S2315represent each step.

In step S2301, the download program500uses the key information1103and identification information obtained from the introduction program900to download the one of the extension programs305designated by a user from the distribution server103. In step S2302, the download program500then, installs the extension program downloaded from the distribution server103.

In step S2303, the download program500obtains the limitation information1014for an installed one of the extension programs305from the distributable extension program information1000held. In step S2304, the download program500determines whether there is a function use count restriction in the limitation information1014. More specifically, determination is made whether the limitation information file1015is included and whether there is a setting regarding a limitation. If there is a function use count restriction in the limitation information1014(YES in step S2304), processing transitions to step S2305, and when that is not the case (NO in step S2304), processing transitions to step S2306.

In step S2305, the download program500determines that there is a function with a usable count restriction for the installed one of the extension programs305, and registers the designated function usable count in the use count management unit507of the extension program system service304. For example, if a usable count for a copy function is restricted to 100 times, a copy function restriction count of 100 times is registered to the use count management unit507of the extension program system service304.

In step S2306, the download program500starts the installed one of the extension programs305. This processing flow then terminates.

Upon starting one of the extension programs305, the download program500starts limitation management of the one of the extension programs305. UsingFIG. 24, explanation will be given below of limitation management processing for an extension program. Step S2401to step S2422represent each step.

In step S2401, the download program500determines whether there is an extension program with a limitation, out of the extension programs305that are started. Whether there is a limitation can be determined by whether, after referencing the information management table1800, there is a restriction on a usable number of times for a function or a usable number of days for the extension programs305. If there is not one of the extension programs305having a restriction on a usable number of times for a function or a usable number of days (NO in step S2401), this processing flow terminates as it is unnecessary to perform limitation management for the extension programs305that are installed. If there is one of the extension programs305having a restriction on a usable number of times for a function or a usable number of days (YES in step S2401), processing transitions to each of step S2402and step S2407, and limitation management of the one of the extension programs305is performed. Step S2402to step S2406is processing for the case in which there is restriction on a use count, and step S2407to step S2411is processing for the case in which there is restriction on a number of days used. Note that step S2402and step S2407are processed in parallel on the one of the extension programs305, and execute limitation management on the one of the extension programs305in accordance with set restriction information.

In step S2402, the download program500refers to the limitation information1014held by the extension program information management unit501, and determines whether there is a restriction on a usable count for a function. If there is a restriction on a usable count for a function (YES in step S2402), a transition is made to step S2403.

In step S2403, the download program500determines a number of times the one of the extension programs305subject to limitation management has used the function, and determines whether it is an extension program that stops automatically when the usable count restriction is reached. More specifically, as shown inFIG. 16B, this is referring to the “automatic-stop”1603included in the limitation information file1015, and determining whether the value thereof is “true”. If the one of the extension programs305automatically stops (YES in step S2403), transition is made to step S2401as limitation management is not necessary because the one of the extension programs305automatically stops when a limitation is reached. When the one of the extension programs305does not stop automatically (NO in step S2403), transition is made to step S2404.

In step S2404, the download program500obtains the number of times that the one of the extension programs305has used a designated function, via the use count management unit507of the extension program system service304. In other words, for one of the extension programs305that is not set to automatically stop, monitoring is performed by periodically polling information about a use count for that one of the extension programs305.

In step S2405, the download program500determines whether the function use count obtained in step S2404is greater than or equal to the usable number of times for the one of the extension programs305. If the number of times that the extension programs305has used the function is greater than or equal to the usable number of times (YES in step S2405), a transition is made to step S2406because there is a limit expiration for the one of the extension programs305. Processing of step S2406will be explained later. If the number of times that the one of the extension programs305has used the function is less than the usable number of times (NO in step S2405), a transition is made to step S2401to continuously execute limitation management for the extension programs305.

Meanwhile, in step S2407, the download program500refers to the limitation information1014held by the extension program information management unit501, and determines whether there is a restriction on a usable number of days. If there is a restriction on a usable number of days (YES in step S2407), a transition is made to step S2408.

In step S2408, the download program500detects an interrupt from a timer after a fixed interval has elapsed. The interrupt here may be generated in a unit of one day, or configuration may be taken such that generation is by using another time unit.

In step S2409, the download program500adds the elapsed time detected in step S2408to the usage elapsed time for the one of the extension programs305.

In step S2410, the download program500determines whether the elapsed time calculated in step S2409is greater than the usable number of days for the one of the extension programs305. When greater than the usable number of days for the one of the extension programs305(YES in step S2410), a transition is made to step S2411. Processing of step S2411will be explained later. When not greater than the usable number of days for the one of the extension programs305(NO in step S2410), a transition is made to step S2401to continue to execute limitation management of the extension programs305.

The download program500executes processing at a time of a limit expiration (step S2406and step S2411) to the one of the extension programs305that has exceeded the usable number of days or usable count, and then performs uninstallation control for the one of the extension programs305. Note that when others of the extension programs305that require limitation management have been started, processing of step S2401to step S2411is continuously executed through another process, and limitation management for the others of the extension programs305is continued.

In step S2406and step S2411, when the download program500determines that a limitation, under which the one of the extension programs305is usable, has expired, the download program500starts limit expiration processing for the one of the extension programs305. The download program500instructs the extension program download unit502to uninstall the one of the extension programs305for which there is a limit expiration. The extension program download unit502stops the one of the extension programs305for which the instruction was received, and instructs the extension program execution platform303to execute uninstallation.

Therefore, according to the present embodiment, it is possible to realize usage of an extension program for just a fixed interval or a fixed number of times by giving the extension program a limitation, without editing an existing extension program.

Explanation will be given of a different embodiment according to the present application invention. The first embodiment illustrated an example of performing limitation management for an extension program, and performing uninstallation without notifying a user to make an extension program with a limit expiration unusable. However, when the system automatically uninstalls the extension program, there is the possibility that the user is suddenly unable to use the extension program and is not aware of the reason why the extension program is not usable. So in the present embodiment, explanation will be given for a means of notifying a user of an extension program with a limit expiration.

Because an esplet type one of the extension programs305does not have a UI on either the operation unit212or on a client Web browser (not shown), a means for notifying a limit expiration is designated in the limitation detailed information file1016. As shown inFIG. 17C, if the notifying means for limit expiration of the one of the extension programs is designated as “statusline”, the limit expiration is displayed on the status line of the main menu screen400(FIG. 8C) when the limitation of the one of the extension programs305has expired. If nothing is designated as the notifying means, then only the detailed information screen700displays the limit expiration. Note that the notifying means set here is not limited to displaying on the status line of the main menu screen400, and configuration may be taken such that the notifying means can be set so as it is possible to display in another position or another screen.

[Extension Program Limit Expiration Information Display]

When an extension program has a limit expiration, the extension program information display control unit503of the download program500has a function of configuring information notifying that the limit expiration occurred with a screen, and providing the screen to a user through the operation unit212or the network I/F210.

Below, explanation will be given, usingFIG. 8AtoFIG. 8D, of a notification screen displayed on the operation unit212or a client Web browser (not shown) when one of the extension programs305has a limit expiration.FIG. 8AtoFIG. 8Dare views for illustrating example configurations of a screen the download program500uses to notify a user of a limit expiration when limit expiration occurs for usage of one of the extension programs305.

FIG. 8Ais an example configuration of a screen notifying a user of a limit expiration on the operation unit212when a limit expiration occurs for an applet type of one of the extension programs305. A limit expiration notification screen800shown onFIG. 8Ahas a confirmation button801for closing the screen after there is confirmation of the limit expiration, and a limit expiration notification display panel802. The limit expiration notification screen800notifies a user of a message notifying the name of the one of the extension programs305together with the limit expiration of an application, in accordance with the application type of the one of the extension programs305.

FIG. 8Bis the example configuration of a screen, displayed on a Web browser that has accessed a URL that operates a servlet, that notifies a user of a limit expiration, when a limit expiration has occurred for one of the extension programs305of the servlet type. When a user is using the one of the extension programs305, it is possible to confirm a limit expiration for an extension program through a URL accessed by using a Web browser. The limit expiration notification screen800shown onFIG. 8Bhas the confirmation button801for transitioning from the screen after there is confirmation of the limit expiration, and the limit expiration notification display panel802.

FIG. 8Cis an example of a screen for notifying a user of a limit expiration in a case in which one of the extension programs305of the esplet type has a limit expiration and a “statusline” has been designated in the limitation detailed information file1016corresponding to the one of the extension programs305. For the esplet type, a user is notified by displaying to the effect of a limit expiration on a status line803of the main menu screen400displayed on the operation unit212.

FIG. 8Dis a screen for a case in which there is a limit expiration for a displayed one of the extension programs305, when displaying the detailed information screen700, notifying to that effect. With the detailed information screen700shown inFIG. 8D, a download button804is controlled so as to be unselectable, and instead of the detailed information as shown on the detailed information display panels703inFIGS. 7A and 7B, information to the effect of limit expiration is displayed. The screen shown onFIG. 8Dcan be displayed when a limit expiration has occurred for one of the extension programs305whatever the type.

Upon determining that a usable limitation for one of the extension programs305has expired, the download program500starts processing to notify a user of the limit expiration, as limit expiration processing for the extension program. UsingFIG. 25, explanation will be given below of limit expiration processing for one of the extension programs305. Step S2501to step S2514represent each step.

In step S2501, the download program500causes one of the extension programs305, which has been determined to have a limit expiration by the extension program download unit502, to stop.

In step S2502, the download program500obtains name information for the stopped one of the extension programs305from the information management table1800, which is managed by the extension program information management unit501.

In step S2503, the download program500obtains the application type for the stopped one of the extension programs305from the information management table1800, which is managed by the extension program information management unit501.

In step S2504, the download program500determines the application type for the stopped one of the extension programs305, based on the application type for the one of the extension programs305obtained in step S2503. If the application type of the stopped one of the extension programs305is the applet type, a transition is made to step S2505. If the application type of the stopped one of the extension programs305is the servlet type, a transition is made to step S2508. If the application type of the stopped one of the extension programs305is the esplet type, a transition is made to step S2511.

If the one of the extension programs305is of the applet type, in step S2505, the download program500obtains the extension program icon1008from the extension program information management unit501.

In step S2506, the download program500associates and registers in the applet registration unit509the name information for the one of the extension programs305obtained in step S2502, and the icon for the one of the extension programs305obtained in step S2505.

In step S2507, the download program500stores an association between the name information for the one of the extension programs305registered in the applet registration unit509, and data (for example, a message shown on the limit expiration notification display panel802ofFIG. 8A) displayed when the icon registered in the applet registration unit509is pressed. By associating and registering the name information and icon for the one of the extension programs305in the applet registration unit509, the icon for the one of the extension programs305and the name information for the one of the extension programs305, which are displayed the main menu screen400, are registered. Thus, when the icon for a stopped one of the extension programs305is pressed by a user, the download program500uses the registered information to display a screen notifying of a limit expiration on the operation unit212, as withFIG. 8A.

If the one of the extension programs is of the servlet type, in step S2508, the download program500obtains the URL used for the one of the extension programs305of the servlet type from the extension program information management unit501.

In step S2509, the download program500registers the name information for the one of the extension programs305obtained in step S2502, and the URL obtained in step S2508in the Web server508for the extension program system service304.

In step S2510, the download program500stores an association between the name information for the one of the extension programs registered in the Web server508for the extension program system service304, and data displayed on the Web browser when the URL for the one of the extension programs305of the servlet type is accessed. Thus, when a user accesses the URL for the one of the extension programs305of the servlet type, the download program500uses the registered information to display a screen notifying of the name information for the one of the extension programs305and a limit expiration as withFIG. 8B.

If the one of the extension programs305is of the esplet type, in step S2511, the download program500determines whether a means to notify of a limit expiration for the one of the extension programs305has been designated. That is, determining whether a means such as the “statusline”, as shown inFIG. 17C, has been set. If a means to notify to the effect that there is a limit expiration for the one of the extension programs is not designated (NO in step S2511), a transition is made to step S2513. If a means to notify to the effect that there is a limit expiration for the one of the extension programs305is designated (YES in step S2511), a transition is made to step S2512.

In step S2512, the download program500displays to the effect that there is a limit expiration for the one of the extension programs305on the operation unit212, through the extension program information display control unit503. Because the one of the extension programs305of the esplet type does not have a UI, for example, if “statusline” has been set at step S2511, the name information for the extension program and something to the effect that there is a limit expiration are displayed by the status line803in a lower part of the main menu screen400, as inFIG. 8C.

In step S2513, the download program500displays that there is a limit expiration to the detailed information screen700. In the present embodiment, even for one of the extension programs305for which a means of notifying a limit expiration is not designated, such as for one of the extension programs305of the esplet type, it is possible for the user to confirm the limit expiration and non-usability by displaying the detailed information screen700.

In step S2514, the download program500instructs the uninstallation of the one of the extension programs305for which the limit expiration occurred. This processing flow is then terminated.

By executing the present flowchart, it is possible to set an extension program having a limit expiration as unusable, and notify a user who was using the extension program that there is a limit expiration for the extension program.

Other Embodiments

This application claims the benefit of Japanese Patent Application No. 2014-158991, filed Aug. 4, 2014, which is hereby incorporated by reference herein in its entirety.