This application claims priority under 35 U.S.C. § 119 to Japanese Patent Application No. 2014-029004 filed on Feb. 18, 2014, the entire disclosure of which is incorporated herein by reference in its entirety.
Field of the Invention
The present invention relates to: an information processing apparatus such as a personal computer or an image processing apparatus; a set values update method for the information processing apparatus; and a recording medium.
Description of the Related Art
The following description sets forth the inventor's knowledge of related art and problems therein and should not be construed as an admission of knowledge in the prior art.
It takes so much time and effort to perform a program update and set values updates by working on every information processing apparatus on-site. To solve this problem, there are various methods of performing network updates.
In such a method, it is very common that a software developer prepares a new version of program and a software vendor customizes new set values for their individual customers. As a matter of course, such a new version of program and such new set values are stored on different locations (servers) and thus need to be mutually linked.
According to Japanese Patent No. 4021407, a new version of program and new set values are mutually linked by version information of program and title of settings information. When a user intends to perform set values updates with new set values downloaded from an external server, control is performed such that a new version of program is downloaded depending on the need for a program update.
In Japanese Patent No. 4021407, a new version of program, which has a great volume, is downloaded when a user intends to perform set values updates. This can cause poor levels of performance being achieved specifically during the busy time when users flock to a server. This is an unsolved problem.
Control can be performed such that downloading a new version of program is completely out of synchronization with downloading new set values. This means, a new version of program can be downloaded when users do not flock to a server and this is a possible solution to the above-described problem.
In this possible solution, in a case where there is a time interval between downloading a new version of program and downloading new set values, new set values already downloaded can be used only after a new version of program is downloaded, which causes a failure to make effective use of new set values. This is another unsolved problem.
The description herein of advantages and disadvantages of various features, embodiments, methods, and apparatus disclosed in other publications is in no way intended to limit the present invention. Indeed, certain features of the invention may be capable of overcoming certain disadvantages, while still retaining some or all of the features, embodiments, methods, and apparatus disclosed therein.
A first aspect of the present invention relates to an information processing apparatus including:
a program receiver that receives a new program externally, the new program for updating of an existing program currently installed on the information processing apparatus;
a set values receiver that receives new set values externally, the new set values including version information, the version information identifying the version of program linked to the new set values, the new set values being classified in a plurality of categories;
a version judgment portion that judges, in preparation for set values updates by replacing set values with the new set values received by the set values receiver, whether or not the version information included in the new set values matches a current program currently installed or the new program to be installed, the new program being received by the program receiver; and
an update portion that updates all the set values if the version judgment portion judges that the version information matches the current or new program, or only some of the set values if the version judgment portion judges that the version information does not match the current or new program.
A second aspect of the present invention relates to an information processing apparatus including:
a program receiver that receives a new program externally, the new program for updating of an existing program currently installed on the information processing apparatus;
a set values receiver that receives new set values externally, the new set values including version information, the version information identifying the version of program linked to the new set values, the new set values being classified in a plurality of categories;
a version judgment portion that judges, in preparation for disclosure of the new program received by the program receiver and the new set values received by the set values receiver so that other information processing apparatuses can receive them, whether or not the version information included in the new set values matches the new program received by the program receiver; and
a disclosure portion that discloses all the new set values if the version judgment portion judges that the version information matches the new program, or only some of the new set values if the version judgment portion judges that the version information does not match the new program.
A third aspect of the present invention relates to a set values update method for an information processing apparatus, including:
receiving a new program externally, the new program for updating of an existing program currently installed on the information processing apparatus;
receiving new set values externally, the new set values including version information, the version information identifying the version of program linked to the new set values, the new set values being classified in a plurality of categories;
judging, in preparation for set values updates by replacing set values with the new set values externally received, whether or not the version information included in the new set values matches a current program currently installed or the new program to be installed, the new program being externally received; and
updating all the set values if the version information matches the current or new program, or only some of the set values if the version information does not match the current or new program.
A fourth aspect of the present invention relates to a set values update method for an information processing apparatus, comprising:
receiving a new program externally, the new program for updating of an existing program currently installed on the information processing apparatus;
receiving new set values externally, the new set values including version information, the version information identifying the version of program linked to the new set values, the new set values being classified in a plurality of categories;
judging, in preparation for disclosure of the new program and the new set values both externally received so that other information processing apparatuses can receive them, whether or not the version information included in the new set values matches the new program externally received; and
disclosing all the new set values if the version information matches the new program, or only some of the new set values if the version information does not match the new program.
The above and/or other aspects, features and/or advantages of various embodiments will be further appreciated in view of the following description in conjunction with the accompanying figures. Various embodiments can include and/or exclude different aspects, features and/or advantages where applicable. In addition, various embodiments can combine one or more aspect or feature of other embodiments where applicable. The descriptions of aspects, features and/or advantages of particular embodiments should not be construed as limiting other embodiments or the claims.
The preferred embodiments of the present invention are shown by way of example, and not limitation, in the accompanying figures, in which:
In the following paragraphs, some preferred embodiments of the invention will be described by way of example and not limitation. It should be understood based on this disclosure that various other modifications can be made by those in the art based on these illustrated embodiments.
Hereinafter, some embodiments of the present invention will be described with reference to the accompanying figures.
The network system is provided with a plurality of (two, in this embodiment) image forming apparatuses 11 and 12 as information processing apparatuses and a plurality of (two, in this embodiment) data distribution apparatuses 21 and 22, all of which are connected to each other through a network 3 and an external network 4.
In this embodiment, the image forming apparatuses 11 and 12 are multifunctional digital machines which are referred to as Multi-functional Peripherals (MFP) or, alternatively, these may be image processing apparatuses. Yet alternatively, these may be personal computers or others.
The data distribution apparatus 21 is an external server that delivers a new version of control programs to the image forming apparatuses 11 and 12; the data distribution apparatus 22 is an external server that delivers new set values to the image forming apparatuses 11 and 12.
As illustrated in
The controller 100 is provided with: a CPU 101; a ROM 102; a static random access memory (S-RAM) 103; a NV-RAM 104; a clock IC 105; and others.
The CPU 101 controls the image forming apparatus 11 in a unified and systematic manner by executing control programs stored on a recording medium such as the ROM 102. In this embodiment, the CPU 101 allows downloading a new program for updating of an existing program (hereinafter referred to as a “new version of program”) from the data distribution apparatus 21 and new set values from the data distribution apparatus 22 via the network interface 160 and the network and allows also performing a program update and set values updates. Furthermore, the CPU 101 judges, in preparation for set values updates, whether or not version information included in the new set values matches the new version of program and also updates all the set values or only some of the set values which belong to certain categories, depending on the result of the judgment. This will be later described in details.
The ROM 102 stores programs to be executed by the CPU 101 and stores other data.
The S-RAM 103 stores programs and data for executing the programs on a temporal basis, serving as a work area for the CPU 101 to execute the programs.
The NV-RAM 104 is a battery backed-up non-volatile memory; the NV-RAM 104 stores various settings and others for image forming.
The clock IC 105 measures a period of time for processing and others, serving as an internal timer.
The fixed storage 110, which consists of a hard disk drive and others, stores programs, various data objects, and others.
The image scanner 120, which is provided with a scanner and others, obtains a document image by scanning a document put on a platen and converts the obtained document image into image data.
The operation panel 130 serves as a user interface for giving job and other instructions to the image forming apparatus 11 and performing various settings of the same. The operation panel 130 is provided with: a numeric keypad 131; a print key 132; a log-out key 133; a display 134; a touch panel 135; and others.
The numeric keypad 131 serves for performing various settings; the print key 132 serves for giving print instructions; the log-out key 133, which can be pressed by users, serves for logging out after using the image forming apparatus 11.
The display 134, which consists of a liquid-crystal screen for example, displays messages, various operation screens, and others.
The touch panel 135 covers the surface of the display screen of the display 134 to detect user touch events on the display screen.
The image output device 140 transfers toner images on paper.
The printer controller 150 forms toner images on the basis of print data received by the network interface 160.
The network interface (network I/F) 160 serves as a communicator that transmits and receives data to and from external apparatuses such as the data distribution apparatuses 21 and 22 and other image forming apparatuses; specifically, the network interface 160 receives a new version of program and new set values from the data distribution apparatuses 21 and 22.
The short-range wireless interface 170 serves for short-range wireless communications with portable terminal apparatuses, for example; the wireless interface (wireless I/F) 180 serves for wireless communications with the network 4 or with portable terminal apparatuses, for example. The short-range wireless communication system may be, for example, Bluetooth or an infrared communication system referred to as infrared data association (IrDA).
The control programs stored on the ROM 102 can be updated with new versions of control programs downloaded from the data distribution apparatus 21 as described above; the set values stored on the NV-RAM 104 and the fixed storage 110 can be updated with new set values downloaded from the data distribution apparatus 22 also as described above.
There are some categories of set values as exemplified in
The table of
As an example of the program version-independent set values, there are address information such as network scan addresses and facsimile addresses and authentication information including user name and password, which is required for authentication for use of the image forming apparatus 11. The program version-independent set values are never affected by function enhancement of a program update.
As an example of the function enhancement-dependent set values, there are function settings information including default settings of functions (color, staple, and others) and machine settings information including default settings of the image forming apparatus 11 (period of time before sleep mode, language, and others). There may be additional function enhancement-dependent set values because of function enhancement of a program update.
As an example of the reboot requiring set values, there is network settings information including various settings for network connection. The image forming apparatus 11 needs to be rebooted to activate new network settings.
As an example of the basic set values, there is service settings information for a service engineer to remotely control the image forming apparatus 11. Although the service settings information is very important for service engineers, it is not for ordinary users who do not mind having late updates of such information.
New set values include version information that matches a version of program, which is not shown in this figure. By examining the version information, the image forming apparatus 11 is allowed to identify the version of program linked to the new set values.
Hereinafter, a set values update operation to be performed by the image forming apparatus 11 will be described with reference to the flowchart of
In Step S300, it is judged whether or not new set values are received (downloaded) from the data distribution apparatus 22. Such a judgment depends on whether or not there are new set values in a temporal memory area because new set values are normally stored thereon upon being received.
If new set values are not received yet (NO in Step S300), the routine waits until these are received. If new set values are received already (YES in Step S300), the version information is compared in Step S301. New set values, as described above, normally include version information that identifies the version of program linked to the new set values. In a case where there is a new version of program to be installed which is received from the data distribution apparatus 21, the version information of the new set values is compared to the new version of program and thereby it is judged whether or not the version information matches the new version of program. In a case where there is not a new version of program received therefrom, the version information of the new set values is compared to the version of program currently installed.
If the version information matches the new version of program as a result of comparison (YES in Step S301), all the set values are judged to be updated with the new set values in Step S302, then the routine proceeds to Step S304. If the version information does not match the new version of program as a result of comparison (NO in Step S301), only some of the set values received therefrom are judged to be updated in Step S303, then the routine proceeds to Step S304. Specifically, the set values judged to be updated in this step belong to the category for program version-independent set values such as address information and authentication information.
In Step S304, the set values judged to be updated are updated. Upon a set values update, the new set values are copied from the temporal memory area to the main memory area, which means that the new set values are not stored anymore on the temporal memory area. In a case where there is a new version of program to be installed, a program update and set values updates are performed simultaneously.
As described above, version information included in new set values is compared to the version of program currently installed or a new version of program to be installed which is downloaded from the data distribution apparatus 21. If the version information matches either of them, all the set values are updated; if the version information matches neither of them, only some of the set values which belong to the category for program version-independent set values are updated. In this way, all the set values or only some of the set values, at least, can be updated soon. This can ensure in making effective use of new set values even in a case where there is a time interval between downloading new set values and downloading a new version of program.
Hereinafter, another operation of the image forming apparatus 11 will be described in details. In this embodiment, different set values depending on the type of program upgrade are judged to be updated.
Program updates serves for program version upgrades. The following are two principal types of program version upgrades: minor version upgrades aimed at bug fixes; and major version upgrades aimed at function enhancement in addition to bug fixes.
As indicated in the table of
Meanwhile, the program version-independent set values such as address information and authentication information can be updated prior to a program update, not depending on whether it is a major version upgrade or a minor version upgrade.
Different set values can be updated depending on whether or not the version information matches both of a major upgraded version of program and a minor upgraded version of program. Such an operation will be described in details with reference to the flowchart of
In Step S400, it is judged whether or not new set values are received (downloaded) from the data distribution apparatus 22. If new set values are not received yet (NO in Step S400), the routine waits until these are received. If new set values are received already (YES in Step S400), the routine proceeds to Step S401, in which: in a case where there is a new version of program to be installed which is received from the data distribution apparatus 21, version information included in the new set values is compared to the new version of program; and in a case where there is not a new version of program received therefrom, the version information of the new set values is compared to the version of program currently installed. In this embodiment, the version information of the new set values is compared to a major upgraded version of program and to a minor upgraded version of program and thereby it is judged whether or not the version information matches both of major and minor upgraded versions of program.
If the version information matches both of them as a result of comparison (YES in Step S401), all the set values are judged to be updated with the new set values in Step S402, then the routine proceeds to Step S406. If the version information does not match both of major and minor upgraded versions of program as a result of comparison (NO in Step S401), then it is judged in Step S403 whether or not the version information matches a major upgraded version of program, in other words, whether the version information matches only a major upgraded version of program or neither of them.
If the version information matches only a major upgraded version of program (YES in Step S403), only some of the set values (which can be updated if the version information matches only a major upgraded version of program) are judged to be updated in Step S404. In this case, the version information does not match a minor upgraded version of program aimed at bug fixes. Since no minor upgraded version of program is aimed at function enhancement, the program version-independent set values such as address information and authentication information and the program version-dependent set values such as function settings information and machine configuration information are judged to be updated.
Back to Step S403, if the version information does not match a major upgraded version of program (NO in Step S403), this naturally means that the version information does not match a minor upgraded version of program, neither. Thus only some of the set values (which can be updated if the version information does not match a major upgraded version of program) are judged to be updated in Step S405, then the routine proceeds to Step S406. That is, in this case, while the function enhancement-dependent set values such as function settings information and machine configuration information are judged not to be updated, the function enhancement-independent set values such as address information and authentication information are judged to be updated.
In Step S406, the set values judged to be updated are updated.
As described above, in this embodiment, version information included in new set values is compared to a new version of program to be installed or a new version of program currently installed. If the version information matches both of major and minor upgraded versions of program, all the set values are updated; if the version information matches neither of major and minor upgraded versions of program, only the program version-independent set values are updated; if the version information matches a major upgraded version of program and does not match a minor upgraded version of program, the program version-independent set values and the function enhancement-dependent set values are updated. This can ensure in making effective use of new set values on the basis of the type of program upgrade.
Some of the already downloaded new set values may belong to the category for reboot requiring set values to be activated by rebooting the image forming apparatus 11, such as network settings information, as mentioned in
In Step S500 of
If the version information matches both of them as a result of comparison (YES in Step S501), all the set values are judged to be updated with the new set values, except the reboot requiring set values, in Step S502, then the routine proceeds to Step S506. If the version information does not match both of major and minor upgraded versions of program as a result of comparison (NO in Step S501), then it is judged in Step S503 whether or not the version information matches a major upgraded version of program, in other words, whether the version information matches only a major upgraded version of program or neither of them.
If the version information matches only a major upgraded version of program (YES in Step S503), only some of the set values (which can be updated if the version information matches only a major upgraded version of program) are judged to be updated, except the reboot requiring set values, in Step S504. In this case, the version information does not match a minor upgraded version of program aimed at bug fixes. Since no minor upgraded version of program is aimed at function enhancement, the program version-independent set values such as address information and authentication information and the program version-dependent set values such as function settings information and machine configuration information are judged to be updated.
Back to Step S503, if the version information does not match a major upgraded version of program (NO in Step S503), this naturally means that the version information does not match a minor upgraded version of program, neither. Thus only some of the set values (which can be updated if the version information does not match a major upgraded version of program) are judged to be updated in Step S505, then the routine proceeds to Step S506. That is, in this case, while the function enhancement-dependent set values such as function settings information and machine configuration information are judged not to be updated, the function enhancement-independent set values such as address information and authentication information are judged to be updated.
In Step S506, it is judged whether or not it is in a period of time set in advance as the busy time. If it is in the busy time (YES in Step S506), the routine proceeds to Step S508. In this case, the reboot requiring set values are not updated. If it is not in the busy time (NO in Step S506), the reboot requiring set values are judged to be also updated in Step S507, then the routine proceeds to Step S508.
In Step S508, the set values judged to be updated are updated.
As described above, in this embodiment, if it is not in the busy time, the reboot requiring set values are also updated; if it is time in the busy time, the reboot requiring set values are not updated. Users are not bothered anymore by being unable to use the image forming apparatus 11 until it recovers from a reboot. This can ensure in making effective use of new set values.
In this embodiment, the image forming apparatus 11 serves as a server. This image forming apparatus 11 discloses a new version of program downloaded from the data distribution apparatus 21 and new set values downloaded from the data distribution apparatus 22 by storing them on a memory area that can be accessed from other image forming apparatuses 13 to 15 each serving as a terminal (each being linked to the server). The image forming apparatus 13 to 15 download the disclosed information from the image forming apparatus 11 through the network 3 and performs update operations.
The image forming apparatus 11, which serves as a server in this embodiment, is connected to the data distribution apparatuses 21 and 22 through the network 3 and the external network 4 in the same way as illustrated in
In Step S600, it is judged whether or not new set values are received (downloaded) from the data distribution apparatus 22. If new set values are not received yet (NO in Step S600), the routine waits until these are received. If new set values are received already (YES in Step S600), version information included in the new set values is compared to a new version of program downloaded from the data distribution apparatus 21, in Step S601.
If the version information matches the new version of program as a result of comparison (YES in Step S601), all the new set values received therefrom are judged to be disclosed in Step S602, then the routine proceeds to Step S604. If the version information does not match the new version of program as a result of comparison (NO in Step S601), only some of the new set values received therefrom are judged to be disclosed in Step S603, then the routine proceeds to Step S604. Specifically, the new set values judged to be disclosed in this step belong to the program version-independent categories, such as address information and authentication information.
In Step S604, the new set values judged to be disclosed are disclosed.
The image forming apparatuses 13 to 15 as terminals access the image forming apparatus as a server on a regular basis to check if there are a new version of program and new set values disclosed. If there are, the image forming apparatuses 13 to 15 download them to perform update operations.
As described above, the image forming apparatus 11 discloses a new version of program and new set values downloaded from the data distribution apparatuses 21 and 22, respectively, so that the other image forming apparatuses 13 to 15 can download them. In such a case, if the version information of the new set values matches the new version of program, all the new set values are disclosed; if the version information does not match the new version of program, only some of the new set values are disclosed. In this way, the other image forming apparatuses 13 to 15 can download the new version of program and the new set values to perform update operations. This can ensure in making effective use of new set values.
Hereinafter, another operation of the image forming apparatus 11 will be described in details. In this embodiment, different new set values depending on the type of program upgrade can be disclosed.
Such an operation of the image forming apparatus 11 will be described in details with reference to the flowchart of
In Step S700, it is judged whether or not new set values are received (downloaded) from the data distribution apparatus 22. If new set values are not received yet (NO in Step S700), the routine waits until these are received. If new set values are received already (YES in Step S700), version information included in the new set values is compared to a new version of program downloaded from the data distribution apparatus 21, in Step S701. In this embodiment, the version information of the new set values is compared to a major upgraded version of program and to a minor upgraded version of program and thereby it is judged whether or not the version information matches both of major and minor upgraded versions of program.
If the version information matches both of them as a result of comparison (YES in Step S701), all the new set values received therefrom are judged to be disclosed in Step S702, then the routine proceeds to Step S706. If the version information does not match both of major and minor upgraded versions of program as a result of comparison (NO in Step S701), then it is judged in Step S703 whether or not the version information matches a major upgraded version of program, in other words, whether the version information matches only a major upgraded version of program or neither of them.
If the version information matches only a major upgraded version of program (YES in Step S703), only some of the new set values (which can be disclosed if the version information matches only a major upgraded version of program) are judged to be disclosed, in Step S704. In this case, a minor upgraded version of program aimed at bug fixes is judged to be disclosed. Since no minor upgraded version of program is aimed at function enhancement, the program version-independent new set values such as address information and authentication information and the program version-dependent new set values such as function settings information and machine configuration information are judged to be disclosed.
Back to Step S703, if the version information does not match a major upgraded version of program (NO in Step S703), this naturally means that the version information does not match a minor upgraded version of program, neither. Thus only some of the new set values (which can be disclosed if the version information does not match a major upgraded version of program) are judged to be disclosed in Step S705, then the routine proceeds to Step S706. That is, in this case, while the function enhancement-dependent new set values as function settings information and machine configuration information are judged not to be disclosed, the function enhancement-independent new set values such as address information and authentication information are judged to be disclosed.
In Step S704, the new set values judged to be disclosed are disclosed.
As described above, in this embodiment, version information included in new set values is compared to a new version of program to be installed. If the version information matches both of major and minor upgraded versions of program, all the new set values are disclosed; if the version information matches neither of major and minor upgraded versions of program, only the program version-independent new set values are disclosed; if the version information matches a major upgraded version of program and does not match a minor upgraded version of program, the program version-independent new set values and the function enhancement-dependent new set values are disclosed. The other image forming apparatuses 13 to 15 as terminals can ensure in making effective use of new set values on the basis of the type of program upgrade.
While the present invention may be embodied in many different forms, a number of illustrative embodiments are described herein with the understanding that the present disclosure is to be considered as providing examples of the principles of the invention and such examples are not intended to limit the invention to preferred embodiments described herein and/or illustrated herein.
While illustrative embodiments of the invention have been described herein, the present invention is not limited to the various preferred embodiments described herein, but includes any and all embodiments having equivalent elements, modifications, omissions, combinations (e.g. of aspects across various embodiments), adaptations and/or alterations as would be appreciated by those in the art based on the present disclosure. The limitations in the claims are to be interpreted broadly based on the language employed in the claims and not limited to examples described in the present specification or during the prosecution of the application, which examples are to be construed as non-exclusive. For example, in the present disclosure, the term “preferably” is non-exclusive and means “preferably, but not limited to”. In this disclosure and during the prosecution of this application, means-plus-function or step-plus-function limitations will only be employed where for a specific claim limitation all of the following conditions are present In that limitation: a) “means for” or “step for” is expressly recited; b) a corresponding function is expressly recited; and c) structure, material or acts that support that structure are not recited. In this disclosure and during the prosecution of this application, the terminology “present invention” or “invention” may be used as a reference to one or more aspect within the present disclosure. The language present invention or invention should not be improperly interpreted as an identification of criticality, should not be improperly interpreted as applying across all aspects or embodiments (i.e., it should be understood that the present invention has a number of aspects and embodiments), and should not be improperly interpreted as limiting the scope of the application or claims. In this disclosure and during the prosecution of this application, the terminology “embodiment” can be used to describe any aspect, feature, process or step, any combination thereof, and/or any portion thereof, etc. In some examples, various embodiments may include overlapping features. In this disclosure and during the prosecution of this case, the following abbreviated terminology may be employed: “e.g.” which means “for example”, and “NB” which means “note well”.
Number | Date | Country | Kind |
---|---|---|---|
2014-029004 | Feb 2014 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5577244 | Killebrew | Nov 1996 | A |
6016107 | Kampe | Jan 2000 | A |
7231410 | Walsh | Jun 2007 | B1 |
7571262 | Shibata | Aug 2009 | B2 |
7814480 | Sakuda et al. | Oct 2010 | B2 |
9823921 | Mavinakayanahalli | Nov 2017 | B2 |
20010029178 | Criss | Oct 2001 | A1 |
20050132179 | Glaum et al. | Jun 2005 | A1 |
20060048130 | Napier | Mar 2006 | A1 |
20080301660 | Rao | Dec 2008 | A1 |
20090307661 | Vierzba | Dec 2009 | A1 |
20110321028 | Evans | Dec 2011 | A1 |
20130159991 | Sato et al. | Jun 2013 | A1 |
20140047429 | Gaither | Feb 2014 | A1 |
20160196135 | Mavinakayanahalli | Jul 2016 | A1 |
Number | Date | Country |
---|---|---|
2000137604 | May 2000 | JP |
4021407 | Dec 2007 | JP |
4577162 | Nov 2010 | JP |
Entry |
---|
Japanese Office Action (and English translation thereof) dated Jan. 26, 2016, issued in counterpart Japanese Application No. 2014-029004. |
Extended European Search Report dated Oct. 26, 2015, issued in counterpart European Application No. 15154639.7. |
Chinese Office Action (and English translation thereof) dated Oct. 11, 2017 issued in counterpart Chinese Application No. 201510083177.6. |
Number | Date | Country | |
---|---|---|---|
20150234649 A1 | Aug 2015 | US |