Information processing apparatus, method for controlling the same, and storage medium
Summary by NHIP
Program Update Restoration System
The apparatus saves two programs from separate memories before updating them sequentially. If the first update succeeds but the second fails due to incompatibility, the system restores both programs using the saved data.
Claim Score by NHIP
Abstract
An apparatus saves first and second programs stored in a storage unit as saved information before the first and the second programs are updated. If the update of the first program is finished and then an error occurs while the second program is being updated, the information processing apparatus restores the second program which is being updated to the program yet to be updated based on the saved information and also restores the first program whose update is finished to the program yet to be updated based on the saved information.

Term
4.8 yearsleft in the term
Expires 21 July 2031, including 22 days of term adjustment.
- Priority
- Filed
- Granted
- Today
- Expires
15 claims: 3 independent, 12 dependent
- 1An information processing apparatus, comprising:a first memory configured to store a first program;a second memory configured to store a second program, wherein the second memory is different from the first memory;a save unit configured to save the first program and the second program as saved information;an update unit configured to update the first program and the second program based on update information;and a restoration unit configured to, in a case where the update of the first program is successful and the update of the second program is unsuccessful, restore the second program and the first program based on the saved information, wherein the updating of the second program is unsuccessful when the first program and the second program are unadaptable.
- 12Broadest claimClaim Score 80, broad(NHIP)A method comprising:storing a first program in a first memory;storing a second program in a second memory, wherein the second memory is different from the first memory;saving the first program and the second program as saved information;updating the first program and the second program based on update information;and in a case where the updating of the first program is successful and the updating of the second program is unsuccessful, restore the second program and the first program based on the saved information, wherein the updating of the second program is unsuccessful when the first program and the second program are unadaptable.
- 14A computer readable storage medium storing a computer-executable program of instructions for causing a computer to perform a method, comprising:storing a first program in a first memory;storing a second program in a second memory, wherein the second memory is different from the first memory;saving the first program and the second program as saved information;updating the first program and the second program based on update information;and in a case where the updating of the first program is successful and the updating of the second program is unsuccessful, restore the second program and the first program based on the saved information, wherein the updating of the second program is unsuccessful when the first program and the second program are unadaptable.
Independent claims3
103 paragraphs in 4 sections, as filed
BACKGROUND OF THE INVENTION
p-00021. Field of the Invention
p-0003The present invention relates to an information processing apparatus, a method for controlling the same, and a storage medium.
p-00042. Description of the Art
p-0005Heretofore, a technique has been known for updating a program executed by an information processing apparatus in an image forming apparatus. Furthermore, a technique has been known in which a program yet to be updated is previously saved in preparation for cases where an error occurs during the update of a program and a defect is found in the updated program itself, and restoration is performed by the saved program in a case where an error occurs.
p-0006Still furthermore, a technique has been known in which a combination of the versions of a plurality of programs is managed in updating a plurality of programs executed by the information processing apparatus, and warning is issued if the combination of the versions of a plurality of programs is inappropriate. Japanese Patent Application Laid-Open No. 2004-42304 discusses a technique in which each program included in a plurality of programs is independently updated and it is determined whether a combination of the versions of programs is appropriate after each program is updated.
p-0007In Japanese Patent Application Laid-Open No. 2004-42304, however, it is determined whether a combination of the versions of programs is appropriate in a case where the update of each program is normally ended. In other words, the technique discussed in Japanese Patent Application Laid-Open No. 2004-42304 has an issue in that a consideration is not taken into account for the case where an error occurs during the update of each program not to normally end the update.
SUMMARY OF THE INVENTION
p-0008According to an aspect of the present invention, an apparatus includes a first storage unit configured to store a first program, a second storage unit configured to store a second program, an acquisition unit configured to acquire update information for updating the first and the second programs, a save unit configured to save the first and the second programs as saved information, an update unit configured to update the first and the second programs based on the update information, and a restoration unit configured to restore the first and the second programs based on the saved information if the update of the first program is successful but the update of the second program is unsuccessful.
p-0009Further features and aspects of the present invention will become apparent from the following detailed description of exemplary embodiments with reference to the attached drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
p-0010The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate exemplary embodiments, features, and aspects of the invention and, together with the description, serve to explain the principles of the invention.
p-0011<figref idrefs="DRAWINGS">FIG. 1</figref> is a block diagram illustrating a configuration of an information processing apparatus according to an exemplary embodiment of the present invention.
p-0012<figref idrefs="DRAWINGS">FIG. 2</figref> is a block diagram illustrating a configuration of a program executed by a central processing unit (CPU) of a control unit.
p-0013<figref idrefs="DRAWINGS">FIG. 3</figref> is a flow chart illustrating processing in a case where the program of a main partition is executed in a normal starting mode.
p-0014<figref idrefs="DRAWINGS">FIG. 4</figref> is a flow chart illustrating processing in a case where the program of a sub partition is executed.
p-0015<figref idrefs="DRAWINGS">FIG. 5</figref> is a flow chart illustrating processing in a case where the program of the main partition is executed in an update mode.
p-0016<figref idrefs="DRAWINGS">FIGS. 6A to 6D</figref> illustrate screens displayed on an operation unit.
p-0017<figref idrefs="DRAWINGS">FIG. 7</figref> illustrates a table for determining adaptability between the versions of programs.
DESCRIPTION OF THE EMBODIMENTS
p-0018Various exemplary embodiments, features, and aspects of the invention will be described in detail below with reference to the drawings.
p-0019In the following description, the same reference numeral is given to the same components and the description thereof is not repeated herein. Configuration blocks required for the present exemplary embodiment are described first and the processing thereof is described next.
p-0020<figref idrefs="DRAWINGS">FIG. 1</figref> is a block diagram illustrating a configuration of an information processing apparatus <b>100</b>.
p-0021In <figref idrefs="DRAWINGS">FIG. 1</figref>, a control unit <b>200</b> controls the entire information processing apparatus <b>100</b>. The control unit <b>200</b> being a configuration for controlling the information processing apparatus <b>100</b> includes the following.
p-0022A CPU <b>210</b> reads and executes a program (a first program) for the control unit <b>200</b> stored in a flash read-only memory (ROM) <b>211</b>.
p-0023A hard disc drive (HDD) <b>213</b> stores print data received from a personal computer (PC) <b>226</b> via a network interface (I/F) <b>218</b>. The program executed by the CPU <b>210</b> includes a print application program (described below). The print application program converts the print data stored in the HDD <b>213</b> to image data which can be printed by a printer unit <b>220</b>. The HDD <b>213</b> also stores the image data which can be printed by a printer unit <b>220</b>. The program executed by the CPU <b>210</b> includes a scan application program (described below). The scan application program causes a scanner unit <b>221</b> to read the image data and the read image data are transferred to the HDD <b>213</b>. The HDD <b>213</b> stores the read image data.
p-0024A static random access memory (SRAM) <b>227</b> stores information indicating that the information processing apparatus <b>100</b> should be started by either a main-partition program or a sub-partition program (described below). If the information indicating that the information processing apparatus <b>100</b> should be started by the main-partition program is stored, the SRAM <b>227</b> further stores information indicating that the information processing apparatus <b>100</b> should be started in either a normal start mode or an update mode for updating the sub-partition program.
p-0025An operation unit I/F <b>214</b> is an interface for transmitting an instruction input by an operator of the information processing apparatus <b>100</b> via an operation unit <b>219</b> to the CPU <b>210</b>. The operation unit I/F <b>214</b> receives an instruction from the CPU <b>210</b> for changing the contents displayed on the operation unit <b>219</b> and transmits the instruction to the operation unit <b>219</b>.
p-0026A printer I/F <b>215</b> is an interface for connecting the control unit <b>200</b> to a printer unit <b>220</b> and a finisher unit <b>222</b>.
p-0027The printer unit <b>220</b> performs printing on a sheet based on the image data transferred from the HDD <b>213</b> via the printer I/F <b>215</b>. The printer unit <b>220</b> (a printing unit) includes a CPU <b>220</b><i>a </i>and a flash ROM <b>220</b><i>b</i>. The CPU <b>220</b><i>a </i>executes a program (a second program) stored in the flash ROM <b>220</b><i>b </i>to cause the printer unit <b>220</b> to execute various operations for the print processing.
p-0028The finisher unit <b>222</b> subjects the sheet on which printing is performed by the printer unit <b>220</b> to various types of finishing processes. The finishing process refers to a staple process for a sheet or a punch process (punching) for the sheet, for example. The finisher unit <b>222</b> includes a CPU <b>222</b><i>a </i>and a flash ROM <b>222</b><i>b</i>. The CPU <b>222</b><i>a </i>executes a program (a second program) stored in the flash ROM <b>222</b><i>b </i>to cause the finisher unit <b>222</b> to execute various operations for the finishing process.
p-0029A scanner I/F <b>216</b> is an interface for connecting the control unit <b>200</b> to a scanner unit <b>221</b>. The scanner unit <b>221</b> (an input unit for inputting image data) reads an image on a document as image data using a line sensor formed of a charge coupled device (CCD) and such. The scanner unit <b>221</b> transfers the read image data to the HDD <b>213</b> via the scanner I/F <b>216</b>. The image data transferred to and stored in the HDD <b>213</b> can be printed by the printer unit <b>220</b>. The image data read by the scanner unit <b>221</b> is printed to allow a copy process. The scanner unit <b>221</b> includes a CPU <b>221</b><i>a </i>and a flash ROM <b>221</b><i>b</i>. The CPU <b>221</b><i>a </i>executes a program (a second program) stored in the flash ROM <b>221</b><i>b </i>to cause the scanner unit <b>221</b> to execute various operations for the scan processing.
p-0030A universal serial bus (USB)-Host I/F <b>217</b> is an interface for connecting the control unit <b>200</b> to a USB-FAX unit <b>223</b>. The USB-FAX unit <b>223</b> sends a facsimile via a FAX line <b>115</b> based on the image data transferred from the HDD <b>213</b> via the USB-Host I/F <b>217</b>. The USB-FAX unit <b>223</b> generates image data based on data received via the FAX line <b>115</b> and transfers the image data to the HDD <b>213</b> via the USB-Host I/F <b>217</b>. The image data stored in the HDD <b>213</b> is printed on a sheet by the printer unit <b>220</b> as described above. The USB-FAX unit <b>223</b> includes a CPU <b>223</b><i>a </i>and a flash ROM <b>223</b><i>b</i>. The CPU <b>223</b><i>a </i>executes a program (a second program) stored in the flash ROM <b>223</b><i>b </i>to cause the USB-FAX unit <b>223</b> to execute various operations for the facsimile communication processing.
p-0031The network I/F <b>218</b> connects the control unit <b>200</b> to a LAN <b>110</b> to communicate the PC <b>226</b> and a server apparatus <b>225</b> on the LAN <b>110</b>. The server apparatus <b>225</b> stores update information for updating under-mentioned various programs (executed by the information processing apparatus <b>100</b>) and transmits the update information to the information processing apparatus <b>100</b> according to a request from the information processing apparatus <b>100</b>.
p-0032The configuration of a program executed by the CPU <b>210</b> of the control unit <b>200</b> is described below with reference to <figref idrefs="DRAWINGS">FIG. 2</figref>.
p-0033The program illustrated in <figref idrefs="DRAWINGS">FIG. 2</figref> is presumed to be stored in the flash ROM <b>211</b> in <figref idrefs="DRAWINGS">FIG. 1</figref>.
p-0034The program stored in the flash ROM <b>211</b> is separately stored in two partitions on the flash ROM <b>211</b>; a main partition <b>401</b> and a sub partition <b>402</b>. When the information processing apparatus <b>100</b> is caused to perform a normal operation, the CPU <b>210</b> is caused to execute an operating system program (hereinafter referred to as OS) stored in the main partition <b>401</b>. On the other hand, when the program (an under-mentioned main module <b>410</b>) for causing the information processing apparatus <b>100</b> to perform the normal operation is updated, the CPU <b>210</b> is caused to execute the OS stored in the sub partition <b>402</b>.
p-0035The main partition <b>401</b> includes three program modules; an OS <b>411</b>, the main module <b>410</b>, and an update module <b>420</b>. The OS <b>411</b> controls the information processing apparatus <b>100</b> and includes a driver program for controlling the operation of each unit of the information processing apparatus <b>100</b> including the printer unit <b>220</b>, the scanner unit <b>221</b>, the finisher unit <b>222</b>, and the USB-FAX unit <b>223</b>.
p-0036The sub partition <b>402</b> includes two program modules; an OS <b>431</b> and an update module <b>430</b>. The OS <b>431</b> controls the information processing apparatus <b>100</b> and includes a driver program for controlling the operation of each unit of the information processing apparatus <b>100</b> including the printer unit <b>220</b>, the scanner unit <b>221</b>, the finisher unit <b>222</b>, and the USB-FAX unit <b>223</b>. The OS <b>431</b> is similar to the OS <b>411</b> described above.
p-0037The reason the main partition <b>401</b> stores two modules in addition to the OS <b>411</b> is that each module is selectively executed according to the starting mode of the information processing apparatus <b>100</b>. More specifically, the CPU <b>210</b> executes the OS <b>411</b> and each program included in the main module <b>410</b> in a normal starting mode in which the information processing apparatus <b>100</b> is normally operated. In the normal starting mode, the CPU <b>210</b> does not execute the program included in the update module <b>420</b>. In the update mode in which the program stored in the sub partition <b>402</b> is updated, the CPU <b>210</b> executes the OS <b>411</b> and the program included in the update module <b>420</b>. In the update mode, the CPU <b>210</b> does not execute each program included in the main module <b>410</b>.
p-0038The program modules included in the main module <b>410</b> of the main partition <b>401</b> are described below. The program modules are application programs executed by the OS <b>411</b> after the OS <b>411</b> is started.
p-0039An operation-unit application program <b>412</b> included in the main module <b>410</b> transmits instructions input by the operator of the information processing apparatus <b>100</b> via the operation unit <b>219</b> to the CPU <b>210</b> and executes the processing according to the transmitted instructions. A scan application program <b>413</b> controls the scan processing by the scanner unit <b>221</b>. A print application program <b>414</b> controls the print processing by the printer unit <b>220</b>. A network application program <b>415</b> is a program for communicating with the PC <b>226</b> and the server apparatus <b>225</b> on the LAN <b>110</b>. An update preparation application program <b>416</b> is a program for executing a preparation operation for executing the update of the program by the information processing apparatus <b>100</b> operating in the normal starting mode.
p-0040A sub-partition update <b>421</b> included in the update module <b>420</b> updates the update module <b>430</b> and the OS <b>431</b> included in the sub partition <b>402</b>.
p-0041The program modules included in the update module <b>430</b> of the sub partition <b>402</b> are described below. The program modules are application programs executed by the OS <b>411</b> after the OS <b>411</b> is started.
p-0042A main-partition update <b>432</b> is a program for updating the main module <b>410</b>, the update module <b>420</b>, and the OS <b>411</b> included in the main partition <b>401</b>. A processing-unit update program <b>433</b> is a program for executing the print processing included in the flash ROM <b>220</b><i>b </i>and updating the program for executing the scan processing included in the flash ROM <b>221</b><i>b</i>. The processing-unit update program <b>433</b> is a program for executing the finishing process included in the flash ROM <b>222</b><i>b</i>. The processing-unit update program <b>433</b> is a program for updating a program for executing the facsimile communication processing included in the flash ROM <b>223</b><i>b. </i>
p-0043An update processing for a program in the present exemplary embodiment is described below with respect to <figref idrefs="DRAWINGS">FIGS. 3 to 5</figref>.
p-0044<figref idrefs="DRAWINGS">FIG. 3</figref> is a flow chart illustrating processing in a case where the program of the main partition <b>401</b> is executed in the normal starting mode.
p-0045<figref idrefs="DRAWINGS">FIG. 4</figref> is a flow chart illustrating processing in a case where the program of the sub partition <b>402</b> is executed.
p-0046<figref idrefs="DRAWINGS">FIG. 5</figref> is a flow chart illustrating processing in a case where the program of the main partition <b>401</b> is executed in the update mode.
p-0047The processing in each step in <figref idrefs="DRAWINGS">FIGS. 3 to 5</figref> is performed by the CPU <b>210</b> of the control unit <b>200</b> executing the program stored in the flash ROM <b>211</b>.
p-0048The processing in a case where the program of the main partition <b>401</b> is executed in the normal starting mode is described below with reference to <figref idrefs="DRAWINGS">FIG. 3</figref>.
p-0049In step S<b>301</b>, the CPU <b>210</b> starts the information processing apparatus <b>100</b> in the normal starting mode. More specifically, the CPU <b>210</b> starts the OS <b>411</b>. The started OS <b>411</b> executes the program modules included in the main module <b>410</b>.
p-0050In step S<b>302</b>, the CPU <b>210</b> determines whether the execution of update processing for updating the program of the information processing apparatus <b>100</b> is instructed. If the CPU <b>210</b> determines that the execution of the update processing is instructed (YES in step S<b>302</b>), the processing proceeds to step S<b>303</b>. The instructions for executing the update processing refer to those performed by the operator of the information processing apparatus <b>100</b>, for example, via the operation unit <b>219</b>. A schedule for periodically updating the program every constant time period (every two weeks, for example) may be previously determined to issue instructions for periodically executing the update processing.
p-0051In step S<b>303</b>, the CPU <b>210</b> executes the update preparation program <b>416</b> via the OS <b>411</b> to identify a program capable of serving as an update candidate out of the programs stored in the flash ROM <b>211</b> and the flash ROMs <b>220</b><i>b </i>to <b>223</b><i>b</i>. For example, a display screen for specifying each program is displayed on the operation unit <b>219</b> to identify the program specified by the operator via the operation unit <b>219</b> as the update candidate. All programs capable of serving as the update candidate may be identified as the update candidate not based on instructions by the operator.
p-0052In step S<b>304</b>, the CPU <b>210</b> executes the update preparation program <b>416</b> and the network application program <b>415</b> and transmits a request for acquiring model ID information for identifying the information processing apparatus <b>100</b> and version information to the server apparatus <b>225</b>. The information processing apparatus <b>100</b> acquires the version information managed by the server apparatus <b>225</b>. The term “version information” refers to information indicating the version of each program module included in the main module <b>410</b>. If the server apparatus <b>225</b> receives a request for acquiring the model ID information and the version information from the information processing apparatus <b>100</b>, the server apparatus <b>225</b> identifies the version information corresponding to the model ID and transmits the identified version information to the information processing apparatus <b>100</b>.
p-0053In step S<b>305</b>, the CPU <b>210</b> executes the update preparation program <b>416</b> to acquire the version information of the information processing apparatus <b>100</b>. The term “version information of the information processing apparatus <b>100</b>” refers to information indicating the version of each program stored in the flash ROM <b>211</b> and the flash ROMs <b>220</b><i>b </i>to <b>223</b><i>b. </i>
p-0054In step S<b>306</b>, the CPU <b>210</b> executes the update preparation program <b>416</b> to identify the program to be updated. More specifically, the CPU <b>210</b> identifies the program different in the version information between the server apparatus <b>225</b> and the information processing apparatus <b>100</b> among the programs capable of serving as update candidates identified in step S<b>303</b>. This shows that a program later in version than the information processing apparatus <b>100</b> can be downloaded from the server apparatus <b>225</b>.
p-0055In step S<b>307</b>, the CPU <b>210</b> acquires the program to be updated (update information) identified in step S<b>305</b> from the server apparatus <b>225</b>. More specifically, the information processing apparatus <b>100</b> transmits program identification information showing the program to be updated identified in step S<b>306</b> to the server apparatus <b>225</b>. If the server apparatus <b>225</b> receives the program identification information from the information processing apparatus <b>100</b>, it transmits the program corresponding to the program identification information to the information processing apparatus <b>100</b>. The program to be updated received from the server apparatus <b>225</b> is stored in the main partition <b>401</b> of the flash ROM <b>211</b>.
p-0056In step S<b>308</b>, the CPU <b>210</b> executes the update preparation program <b>416</b> to store a flag indicating that the program of the sub partition is started at the next startup in order to update the program of the information processing apparatus <b>100</b> in the SRAM <b>227</b>.
p-0057Following step S<b>308</b>, the CPU <b>210</b> brings the information processing apparatus <b>100</b> into a shut-off state where the supply of electric power to each unit of the information processing apparatus <b>100</b> is shut off to reboot the information processing apparatus <b>100</b>.
p-0058The processing in a case where the program of the sub partition <b>402</b> is executed (the processing for updating the program of the information processing apparatus <b>100</b>) is described below with reference to <figref idrefs="DRAWINGS">FIG. 4</figref>.
p-0059Each processing in <figref idrefs="DRAWINGS">FIG. 4</figref> is started by the power supply of the information processing apparatus <b>100</b> being automatically turned on after the processing in <figref idrefs="DRAWINGS">FIG. 3</figref> is ended and the information processing apparatus <b>100</b> is brought into the shut-off state.
p-0060In step S<b>401</b>, the CPU <b>210</b> confirms that the flag indicating that the program of the sub partition is started is stored in the SRAM <b>227</b>, and starts the program of the sub partition.
p-0061In step S<b>402</b>, the CPU <b>210</b> executes save processing for saving the program stored in the main partition <b>401</b> (saved information). More specifically, the save processing is performed by copying all programs stored in the main partition <b>401</b> into the sub partition <b>402</b>. If the sub partition <b>402</b> has an insufficient free space, the programs may be saved into the HDD <b>213</b>. The reason the save processing is performed is that the program of the main partition <b>401</b> can be restored to the state before the update is performed if an error occurs during the update processing.
p-0062In step S<b>403</b>, the CPU <b>210</b> executes the main-partition update program <b>432</b> to execute the update processing of each program of the main partition <b>401</b>.
p-0063In step S<b>404</b>, the CPU <b>210</b> determines whether the update processing of each program of the main partition <b>401</b> is successful. If the CPU <b>210</b> determines that the update processing is successful (YES in step S<b>404</b>), the processing proceeds to step S<b>405</b>. If the CPU <b>210</b> determines that the update processing is unsuccessful to cause an error (NO in step S<b>404</b>), the processing proceeds to step S<b>410</b>. The reason the update processing becomes unsuccessful to cause the error is that, for example, the update processing is not ended even after a certain time period elapses after the update processing is started.
p-0064In step S<b>405</b>, the CPU <b>210</b> executes the processing-unit update program <b>433</b>. The CPU <b>210</b> executes the save processing for saving the program stored in the processing units (the printer unit <b>220</b>, the scanner unit <b>221</b>, the USB-FAX unit <b>223</b>, and the finisher unit <b>222</b>). Specifically, all programs (saved information) stored in each processing unit are copied into the sub partition <b>402</b> to save all programs. If the sub partition <b>402</b> has an insufficient free space, the programs may be saved into the HDD <b>213</b>.
p-0065In step S<b>406</b>, the CPU <b>210</b> executes the processing-unit update program <b>433</b> to execute the update processing of the programs executed by the processing units (the printer unit <b>220</b>, the scanner unit <b>221</b>, the USB-FAX unit <b>223</b>, and the finisher unit <b>222</b>).
p-0066In step S<b>407</b>, the CPU <b>210</b> determines whether the update processing of the program of each processing unit is successful. If the CPU <b>210</b> determines that the update processing is successful (YES in step S<b>407</b>), the processing proceeds to step S<b>408</b>. If the CPU <b>210</b> determines that the update processing is unsuccessful to cause an error (NO in step S<b>407</b>), the processing proceeds to step S<b>409</b>. The reason the update processing becomes unsuccessful to cause the error is that, for example, the update processing is not ended even after a certain time period elapses after the update processing is started. In the present exemplary embodiment, the processing unit includes the printer unit <b>220</b>, the scanner unit <b>221</b>, the USB-FAX unit <b>223</b>, and the finisher unit <b>222</b>. If an error occurs in the update processing of any of the processing units, the CPU <b>210</b> determines that the update processing is unsuccessful.
p-0067In step S<b>408</b>, the CPU <b>210</b> starts the program of the main partition at the next startup to renew the program of the sub partition, storing a flag specifying the start in the update mode into the SRAM <b>227</b>.
p-0068Following step S<b>408</b>, the CPU <b>210</b> brings the information processing apparatus <b>100</b> into a stop state where the supply of electric power to each unit of the information processing apparatus <b>100</b> is shut off to reboot the information processing apparatus <b>100</b>.
p-0069In step S<b>409</b>, the CPU <b>210</b> restores the programs (a plurality of sub programs) of each processing unit using the program saved into the sub partition <b>402</b> in step S<b>405</b>. More specifically, the program saved into the sub partition <b>402</b> is copied into the flash ROMs <b>220</b><i>b </i>to <b>223</b><i>b </i>of each processing unit to be restored. The reason such a restoration is performed is that the CPU <b>210</b> determines that the update processing of the program (the second program) is unsuccessful to cause an error.
p-0070In step S<b>410</b>, the CPU <b>210</b> restores the programs of the main partition <b>401</b> using the program saved into the sub partition <b>402</b> in step S<b>402</b>. More specifically, the program saved into the sub partition <b>402</b> is copied into the main partition <b>401</b> to be restored. The reason such a restoration is performed is that the CPU <b>210</b> determines that the update processing of the program is unsuccessful to cause an error in step S<b>404</b> or step S<b>407</b>.
p-0071The restoration of programs in the main partition <b>401</b> is executed if the CPU <b>210</b> determines that the update processing is unsuccessful in step S<b>407</b> even if the CPU <b>210</b> determines that the update processing of program of the main partition <b>401</b> is successful in step S<b>404</b>. The CPU <b>210</b> determines that the update processing is unsuccessful in step S<b>407</b> in a case where the update processing of program of each processing unit is unsuccessful to cause an error. The reason the program of the main partition <b>401</b> is restored to the program yet to be updated is due to the following.
p-0072That is because a combination of versions of programs of the main partition <b>401</b> and each processing unit is made appropriate. For example, if the program of the main partition <b>401</b> is upgraded but that of each processing unit is not upgraded, the versions of programs of the main partition <b>401</b> and each processing unit are not conformed to each other. In this case, the transfer of data between the control unit <b>200</b> and each processing unit, instructions from the control unit <b>200</b> to each processing unit, and response thereto are not made appropriately. In the present exemplary embodiment, the program of the main partition <b>401</b> is restored to the program yet to be updated not to cause such an unconformity of combination of versions even if the CPU <b>210</b> determines that the update processing of program of the main partition <b>401</b> is successful.
p-0073The processing in a case where the sub-partition update program of the main partition <b>401</b> is executed is described below with reference to <figref idrefs="DRAWINGS">FIG. 5</figref>.
p-0074Each processing in <figref idrefs="DRAWINGS">FIG. 5</figref> is started by the power supply of the information processing apparatus <b>100</b> being automatically turned on after the processing in <figref idrefs="DRAWINGS">FIG. 4</figref> is ended and the information processing apparatus <b>100</b> is brought into the shut-off state.
p-0075In step S<b>501</b>, the CPU <b>210</b> causes the SRAM <b>227</b> to start the program of the main partition <b>401</b>, confirms that the flag specifying the start in the update mode is stored therein, and starts the information processing apparatus <b>100</b> in the update mode. More specifically, the CPU <b>210</b> starts the OS <b>411</b> and the started OS <b>411</b> starts the sub-partition update program <b>421</b>.
p-0076In step S<b>502</b>, the CPU <b>210</b> executes save processing for saving the program stored in the sub partition <b>402</b>. More specifically, the save processing is performed by copying all programs stored in the sub partition <b>402</b> into the main partition <b>401</b>. If the main partition <b>401</b> has an insufficient free space, the programs may be saved into the HDD <b>213</b>. The reason the save processing is performed is that the program of the sub partition <b>402</b> can be restored to the state before the update is performed if an error occurs during the update processing.
p-0077In step S<b>503</b>, the CPU <b>210</b> executes the sub-partition update program <b>421</b> to execute the update processing of each program of the sub partition <b>402</b>.
p-0078In step S<b>504</b>, the CPU <b>210</b> determines whether the update processing of each program of the sub partition <b>402</b> is successful. If the CPU <b>210</b> determines that the update processing is successful (YES in step S<b>504</b>), the processing proceeds to step S<b>505</b>. If the CPU <b>210</b> determines that the update processing is unsuccessful to cause an error (NO in step S<b>504</b>), the processing proceeds to step S<b>506</b>. The reason the update processing becomes unsuccessful to cause the error is that, for example, the update processing is not ended even after a certain time period elapses after the update processing is started.
p-0079In step S<b>505</b>, the CPU <b>210</b> starts the program of the main partition <b>401</b> at the next startup to store the flag specifying the start in the normal start mode into the SRAM <b>227</b>.
p-0080Following step S<b>505</b>, the CPU <b>210</b> brings the information processing apparatus <b>100</b> into a stop state where the supply of electric power to each unit of the information processing apparatus <b>100</b> is shut off to reboot the information processing apparatus <b>100</b>.
p-0081In step S<b>506</b>, the CPU <b>210</b> restores the programs of each processing unit using the program saved into the main partition <b>401</b> in step S<b>502</b> because the update processing of the program is unsuccessful to cause an error in step S<b>504</b>. More specifically, the program saved into the main partition <b>401</b> is copied into the sub partition <b>402</b> to be restored.
p-0082The screen displayed on the operation unit <b>219</b> is described below with respect to <figref idrefs="DRAWINGS">FIGS. 6A to 6D</figref>.
p-0083<figref idrefs="DRAWINGS">FIGS. 6A to 6C</figref> illustrate screens displayed on the operation unit <b>219</b> while the processing (the processing for updating the program of the main partition) is being executed according to the flow chart in <figref idrefs="DRAWINGS">FIG. 4</figref>. <figref idrefs="DRAWINGS">FIG. 6D</figref> illustrates a screen displayed on the operation unit <b>219</b> while the processing (the processing for updating the program of the sub partition) is being executed according to the flow chart in <figref idrefs="DRAWINGS">FIG. 5</figref>.
p-0084<figref idrefs="DRAWINGS">FIG. 6A</figref> illustrates a screen displayed in steps S<b>401</b> and <b>402</b> in <figref idrefs="DRAWINGS">FIG. 4</figref>. The processing according to the flow chart in <figref idrefs="DRAWINGS">FIG. 4</figref> is conducted to update the program identified as an object to be updated in the processing in <figref idrefs="DRAWINGS">FIG. 3</figref>. As illustrated in <figref idrefs="DRAWINGS">FIG. 6A</figref>, the screen displays the version of the program identified as an object to be updated in step S<b>306</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>. In <figref idrefs="DRAWINGS">FIG. 6A</figref>, the programs identified as objects to be updated are the main partition program, the processing-unit program, and the sub-partition program. <figref idrefs="DRAWINGS">FIG. 6A</figref> also illustrates that their respective versions are 1.0.
p-0085<figref idrefs="DRAWINGS">FIG. 6B</figref> illustrates a screen displayed in step S<b>405</b> in <figref idrefs="DRAWINGS">FIG. 4</figref>. Step S<b>405</b> is the processing executed in a case where the update processing is successful in step S<b>404</b>. The version of the main partition program is updated from 1.0 in <figref idrefs="DRAWINGS">FIG. 6A</figref> to 2.0 in <figref idrefs="DRAWINGS">FIG. 6B</figref>.
p-0086<figref idrefs="DRAWINGS">FIG. 6C</figref> illustrates a screen displayed in step S<b>408</b> in <figref idrefs="DRAWINGS">FIG. 4</figref>. Step S<b>408</b> is the processing executed in a case where the update processing is successful in step S<b>407</b>. The version of the processing-unit program is updated from 1.0 in <figref idrefs="DRAWINGS">FIG. 6A</figref> to 2.0 in <figref idrefs="DRAWINGS">FIG. 6B</figref>.
p-0087<figref idrefs="DRAWINGS">FIG. 6D</figref> illustrates a screen displayed in step S<b>505</b> in <figref idrefs="DRAWINGS">FIG. 5</figref>. Step S<b>505</b> is the processing executed in a case where the update processing is successful in step S<b>504</b>. The version of the sub-partition program is updated from 1.0 in <figref idrefs="DRAWINGS">FIG. 6A</figref> to 2.0 in <figref idrefs="DRAWINGS">FIG. 6C</figref>.
p-0088The main-partition program is restored in step S<b>410</b> in <figref idrefs="DRAWINGS">FIG. 4</figref> to switch the display screen in <figref idrefs="DRAWINGS">FIG. 6B</figref> to the display screen in <figref idrefs="DRAWINGS">FIG. 6A</figref>. This allows recognizing that the main-partition program is restored to change the version of the program from 2.0 to 1.0.
p-0089As described above, according to the present exemplary embodiment, there can be provided an information processing apparatus and a method for controlling the same which appropriately restore each program according to the state where each program is updated if an error occurs while a plurality of programs is being updated. More specifically, if an error occurs while the processing-unit program is being updated after the update of the main-partition program is finished, the processing-unit program which is being updated is restored to the program yet to be updated. The main-partition program whose update is finished is written back to the program yet to be updated. This avoids the problem that a combination of versions of programs of the main partition <b>401</b> and each processing unit is inappropriate.
p-0090Another exemplary embodiment of the present invention is described below. The present exemplary embodiment is a modification of the first exemplary embodiment and similar to the first exemplary embodiment except for the points described below.
p-0091In the first exemplary embodiment, in step S<b>407</b> in <figref idrefs="DRAWINGS">FIG. 4</figref>, if the update processing for a program of at least any of the processing units among the programs of a plurality of processing units causes an error, the CPU <b>210</b> determines that the update processing is unsuccessful in step S<b>407</b> and the CPU <b>210</b> restores the programs of all processing units.
p-0092On the other hand, in the present exemplary embodiment, the programs adaptable to the restored main-partition programs among the programs of the plurality of processing units are kept updated, i.e., not restored.
p-0093A table for determining adaptability between the versions of the main-partition programs and those of programs of the processing units is described below with reference to <figref idrefs="DRAWINGS">FIG. 7</figref>. The table illustrated in <figref idrefs="DRAWINGS">FIG. 7</figref> is stored in the main partition <b>401</b>. The CPU <b>210</b> performs determination described below with reference to the table.
p-0094<figref idrefs="DRAWINGS">FIG. 7</figref> shows that the versions 1.0 and 2.0 of program of the printer unit <b>220</b> are adaptable to the version 1.0 of the main-partition program. <figref idrefs="DRAWINGS">FIG. 7</figref> also shows that the version 1.0 of program of the scanner unit <b>221</b> is adaptable to the version 1.0 of the main-partition program. <figref idrefs="DRAWINGS">FIG. 7</figref> also shows that the version 1.0 of program of the USB-FAX unit <b>222</b> is adaptable to the version 1.0 of the main-partition program. <figref idrefs="DRAWINGS">FIG. 7</figref> also shows that the versions 1.0 and 2.0 of program of the finisher unit <b>223</b> are adaptable to the version 1.0 of the main-partition program.
p-0095<figref idrefs="DRAWINGS">FIG. 7</figref> shows that the versions 1.0 and 2.0 of program of the printer unit <b>220</b> are adaptable to the version 2.0 of the main-partition program. <figref idrefs="DRAWINGS">FIG. 7</figref> also shows that the version 2.0 of program of the scanner unit <b>221</b> is adaptable to the version 2.0 of the main-partition program. <figref idrefs="DRAWINGS">FIG. 7</figref> also shows that the version 2.0 of program of the USB-FAX unit <b>222</b> is adaptable to the version 2.0 of the main-partition program. <figref idrefs="DRAWINGS">FIG. 7</figref> also shows that the versions 1.0 and 2.0 of program of the finisher unit <b>223</b> are adaptable to the version 2.0 of the main-partition program.
p-0096In the present exemplary embodiment, the processing in step S<b>409</b> of the flow chart illustrated in <figref idrefs="DRAWINGS">FIG. 4</figref> is executed as described below. When the processing in step S<b>409</b> is executed, it is presumed that the version of the main-partition program is updated from 1.0 to 2.0.
p-0097In step S<b>409</b> in <figref idrefs="DRAWINGS">FIG. 4</figref>, the CPU <b>210</b> determines which program among the programs of each processing unit is updated. For example, if the update processing of programs of the printer unit, the scanner unit, and the finisher unit is finished, but the update processing of program of the USB-FAX unit is not finished, the CPU <b>210</b> determines that the update processing in the printer unit, the scanner unit, and the finisher unit is finished. The CPU <b>210</b> confirms the versions (2.0) of the updated programs of the printer unit, the scanner unit, and the finisher unit and determines adaptability between the above versions and the version 1.0 of the main-partition program. In the example of <figref idrefs="DRAWINGS">FIG. 7</figref>, the CPU <b>210</b> determines that the version of the program of the printer unit is adaptable to that of the main-partition program and the versions of programs of the scanner unit and the finisher unit are not adaptable to that of the main-partition program. The reason the adaptability is determined with respect to the version 1.0 of the main-partition program is that the version of the main-partition program is restored from 2.0 to 1.0 in step S<b>410</b>.
p-0098The programs of the scanner unit and the finisher unit which are determined as unadaptable are restored by the programs of the scanner unit and the finisher unit saved in the sub partition <b>402</b> in step S<b>405</b>. More specifically, the program of the scanner unit saved in the sub partition <b>402</b> is copied into the flash ROM <b>221</b><i>b </i>of the scanner unit <b>221</b>. The program of the finisher unit <b>222</b> saved in the sub partition <b>402</b> is copied into the flash ROM <b>222</b><i>b </i>of the finisher unit <b>222</b> to be restored.
p-0099As described above, according to the present exemplary embodiment, there can be provided an information processing apparatus and a method for controlling the same which appropriately restore each program according to the state where each program is updated if an error occurs while a plurality of programs is being updated.
p-0100More specifically, the program of the processing unit during the update processing is restored to the program yet to be updated if an error occurs while the program of the processing unit is being updated after the update of the program of the main partition is finished. The programs adaptable to the restored main-partition programs among the processing-unit programs whose update processing is finished are not restored. Therefore, only the programs unadaptable to the restored main-partition programs among a plurality of the processing-unit programs can be appropriately restored. Only the unadaptable programs are restored to enable preventing unnecessary restoration.
p-0101In the above description, update information is received from the server apparatus <b>225</b> via the network I/F <b>218</b>, but another configuration may be used. For example, such a configuration may be used that a USB memory (an external memory) is connected via the USB-Host I/F <b>217</b> to receive the update information stored in the USB memory via the USB-Host I/F <b>217</b>.
p-0102Aspects of the present invention can also be realized by a computer of a system or apparatus (or devices such as a CPU or MPU) that reads out and executes a program recorded on a memory device to perform the functions of the above-described embodiments, and by a method, the steps of which are performed by a computer of a system or apparatus by, for example, reading out and executing a program recorded on a memory device to perform the functions of the above-described embodiments. For this purpose, the program is provided to the computer for example via a network or from a recording medium of various types serving as the memory device (e.g., computer-readable medium).
p-0103While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all modifications, equivalent structures, and functions.
p-0104This application claims priority from Japanese Patent Application No. 2010-154959 filed Jul. 7, 2010, which is hereby incorporated by reference herein in its entirety.
Contents4
8 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2022382533A1 | Cited by | United States of America | Search report |
| US2002161890A1 | Cites | United States of America | Search report |
| JP2003263323A | Cites | Japan | Applicant |
| JP2004042304A | Cites | Japan | Applicant |
| JP2004094832A | Cites | Japan | Applicant |
| US2005132179A1 | Cites | United States of America | Search report |
| US2005188170A1 | Cites | United States of America | Search report |
| US2005289533A1 | Cites | United States of America | Search report |
| JP2007052666A | Cites | Japan | Applicant |
| US2007169075A1 | Cites | United States of America | Search report |
| JP2008084304A | Cites | Japan | Applicant |
| US2008155526A1 | Cites | United States of America | Search report |
| US2008196019A1 | Cites | United States of America | Search report |
| US2008201702A1 | Cites | United States of America | Search report |
| US2008222604A1 | Cites | United States of America | Search report |
| US2008313416A1 | Cites | United States of America | Search report |
| US2008320110A1 | Cites | United States of America | Search report |
| US2010017613A1 | Cites | United States of America | Search report |
| US2011145807A1 | Cites | United States of America | Search report |
| US5155837A | Cites | United States of America | Search report |
| US6438749B1 | Cites | United States of America | Search report |
4 priority claims, no other members on record
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 2010154959 | Japan | A | |
| 2010154959 | Japan | A | |
| 2010154959 | – | – | – |
| JP20100154959 | – | – | – |
61 transactions on the USPTO file
Allowed after 2 non-final rejections, 1 final rejection and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mailing Corrected Notice of AllowabilityMCNOA | MCNOA | |
| Reasons for AllowanceEX.R | EX.R | |
| Corrected Notice of AllowabilityCNOA | CNOA | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| Cleared by OIPE CSRL194 | L194 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Request from applicant for the USPTO to retrieve the Priority DocumentPDREQUST | PDREQUST | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 08799887
- Publication, DOCDB
- 8799887
- Publication, EPODOC
- US8799887
- Application
- 13172077
- Application, DOCDB
- 201113172077
- Application, EPODOC
- US201113172077
Titles
- English
- Information processing apparatus, method for controlling the same, and storage medium
Patent term adjustment
- A delay
- +117 daysthe office missed an examination deadline
- Applicant delay
- −95 days
- Net adjustment
- 22 days
Classification
- CPC, 2
- G06F8/65
- G06F11/1433
- IPC, 5
- G06F15 177
- G06F9 44
- G06F9 445
- G06F12 00
- H04L9 32
- USPC, 10
- 717169000
- 709221000
- 711162000
- 713172000
- 717120000
- 717168000
- 717170000
- 717171000
- 717173000
- 717174000