JP5921358B2 - 情報処理装置、プログラム更新方法及びプログラム - Google Patents

情報処理装置、プログラム更新方法及びプログラム Download PDF

Info

Publication number
JP5921358B2
JP5921358B2 JP2012139765A JP2012139765A JP5921358B2 JP 5921358 B2 JP5921358 B2 JP 5921358B2 JP 2012139765 A JP2012139765 A JP 2012139765A JP 2012139765 A JP2012139765 A JP 2012139765A JP 5921358 B2 JP5921358 B2 JP 5921358B2
Authority
JP
Japan
Prior art keywords
program
update
information processing
processing apparatus
updating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012139765A
Other languages
English (en)
Other versions
JP2014006571A (ja
JP2014006571A5 (ja
Inventor
広次 丹羽
広次 丹羽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012139765A priority Critical patent/JP5921358B2/ja
Priority to US13/921,318 priority patent/US9229815B2/en
Publication of JP2014006571A publication Critical patent/JP2014006571A/ja
Publication of JP2014006571A5 publication Critical patent/JP2014006571A5/ja
Application granted granted Critical
Publication of JP5921358B2 publication Critical patent/JP5921358B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置、プログラム更新方法及びプログラムに関する。
従来から、画像形成装置等の情報処理装置が実行するプログラムを更新する技術が知られている。
そして、プログラムの更新中にエラーが発生した場合や更新されたプログラム自体に問題がある場合に備え、更新前のプログラムを予め退避させておき、エラーが発生した場合に退避させたプログラムにより復元を行う技術が知られている(例えば、特許文献1)。
また、情報処理装置が実行する複数のプログラムを更新する際に複数のプログラムのバージョンの組み合わせを管理し、複数のプログラムのバージョンの組み合わせが適切でない場合に警告をする技術が知られている(例えば、特許文献2)。特許文献2の技術では、複数のプログラムに含まれる各プログラムの更新がそれぞれ独立して実行され、各プログラムの更新後にプログラムのバージョンの組み合わせが適切であるかどうか判断されている。
特開2001−117780号公報 特開2004−42304号公報
特許文献1の技術はエラー発生時に、予め退避させておいた更新前のプログラムに復元するものである。しかし、例えば、画像形成装置の動作制御のためのプログラムは、本体コントローラのみではなく、BIOSや、エンジンコントローラ、スキャナコントローラ等の外部コントローラが複数存在する。外部コントローラプログラムの中には、通信速度が遅く更新前のプログラムの退避に時間がかかるものや、更新前のプログラムを退避させておくことができないものが存在し、エラー時の復元が不可能である場合についての考慮がされていない問題点があった。
また、特許文献2の技術は、各プログラムの更新が正常に終了した場合にプログラムのバージョンの組み合わせが適切であるかどうか判断するものである。つまり、特許文献2の技術では、各プログラムの更新中にエラーが発生して更新が正常に行われない場合についての考慮がされていない問題点があった。
本発明はこのような問題点に鑑みなされたもので、複数のプログラムの更新中にエラーが発生しても更新前のプログラムのバージョンの組み合わせに戻すことを目的とする。
そこで、本発明は、サーバと通信可能な情報処理装置であって、第1のプログラムを記憶する第1のメモリと、第2のプログラムを記憶する第2のメモリと、前記第1のプログラムと前記第2のプログラムとを更新するための更新データと、更新が失敗した場合に前記第1のプログラムを元の状態に復元するための第1の復元データとを、前記サーバから取得する取得手段と、更新が失敗した場合に前記第2のプログラムを元の状態に復元するための第2の復元データを生成する生成手段と、前記取得手段が取得した前記更新データに基づいて、前記第1のプログラムと前記第2のプログラムとを更新する更新手段と、前記更新手段によるプログラムの更新が失敗した場合に、前記取得手段が取得した前記第1の復元データと、前記生成手段が生成した前記第2の復元データと、に基づいて前記第1のプログラムと前記第2のプログラムとを元の状態に復元する復元手段と、を備えることを特徴とする。
本発明によれば、複数のプログラムの更新中にエラーが発生しても更新前のプログラムのバージョンの組み合わせに戻すことができる。
情報処理装置のハードウェア構成の一例を示す図である。 情報処理装置のプログラム等の構成の一例を示す図である。 実施形態1におけるプログラム更新の処理の一例を示すフローチャートである。 実施形態1における更新対象のプログラム及び更新に必要な更新データの一覧を表すリストの一例を示す図である。 実施形態2におけるプログラム更新の処理の一例を示すフローチャートである。 実施形態2における更新対象のプログラム、更新に必要な更新データ、及び更新前に退避するプログラムの一覧を表すリストの一例を示す図である。
以下、本発明の実施形態について図面に基づいて説明する。
図1は、情報処理装置100のハードウェア構成の一例を示す図である。なお、以下に示す実施形態では、情報処理装置の一例として画像形成装置を用いて説明を行う。
制御部200は、情報処理装置100の全体を制御する。制御部200は、情報処理装置100を制御するための構成として、以下に示すものを含む。
CPU210は、FlashROM211に記憶された制御部200用のプログラムをRAM212に読み出して実行する。
ハードディスクドライブ(HDD)213は、ネットワークI/F218を介してPC225から受信した印刷データを記憶する。なお、CPU210により実行されるプログラムには、後述するプリント用アプリケーションプログラムが含まれる。そして、このプリント用アプリケーションプログラムに基づきCPU210が処理を行うことによって、HDD213に記憶された印刷データがプリンタ部220によるプリントが可能な画像データに変換される。そして、HDD213には、プリンタ部220によるプリントが可能な画像データも記憶される。また、CPU210により実行されるプログラムには、後述するスキャン用アプリケーションプログラムが含まれる。そして、このスキャン用アプリケーションプログラムに基づきCPU210が処理を行うことによって、スキャナ部221により画像データが読み取られると共に、読み取られた画像データがHDD213に転送される。そして、HDD213には、読み取られた画像データが記憶される。
操作部I/F214は、操作部219を介して情報処理装置100の操作者により入力される指示をCPU210に伝達するためのI/Fである。また、操作部I/F214は、操作部219に表示される内容を切替えるための指示をCPU210から受信して操作部219に伝達する。
プリンタI/F215は、制御部200とプリンタ部220とを接続するためのインターフェースである。ここで、プリンタ部220は、プリンタI/F215を介してHDD213から転送される画像データに基づいてシート上にプリントを行う。なお、プリンタ部220は、CPU220aとFlashROM220bとを有する。CPU220aは、FlashROM220bに記憶されたプログラムを実行することにより、プリント処理に伴う各種の動作をプリンタ部220に実行させる。
スキャナI/F216は、制御部200とスキャナ部221とを接続するためのインターフェースである。ここで、スキャナ部221は、原稿上の画像をCCD(ChargeCoupledDevice)等により構成されるラインセンサを用いて画像データとして読み取る。そして、スキャナ部221は、読み取った画像データをスキャナI/F216を介してHDD213へ転送する。HDD213へ転送され、記憶された画像データは、プリンタ部220によりプリントすることが可能である。スキャナ部221により読み取られた画像データをプリンタ部220によりプリントすることにより、複写(コピー)処理が可能となる。なお、スキャナ部221は、CPU221aとFlashROM221bとを有する。CPU221aは、FlashROM221bに記憶されたプログラムを実行することにより、スキャン処理に伴う各種の動作をスキャナ部221に実行させる。
USB−HostI/F217は、制御部200と外部USBデバイス223とを接続するためのインターフェースである。ここで、外部USBデバイス223は、USBメモリやUSBキーボード等が例として挙げられる。USBメモリにプログラムを格納し、ダウンロードしてFlashROM211のファイル格納領域に置く場合もある。
ネットワークI/F218は、制御部200をLAN110に接続し、LAN110上のPC225やサーバ装置224との通信を行う。なお、サーバ装置224は、後述する各種のプログラム(情報処理装置100により実行されるもの)をアップデート(更新)するための更新情報が記憶されており、情報処理装置100からの要求に応じて、更新情報を情報処理装置100へ送信する。
BIOSROM230は、BIOS(Basic Input/Output System)のプログラムを記憶する。BIOSは、情報処理装置100の起動及び運用を制御するプログラムである。
次に、制御部200のCPU210により実行されるプログラムの構成について図2を用いて説明する。図2は、情報処理装置100のプログラム等の構成の一例を示す図である。
情報処理装置100は、ユーザが通常使用する本体コントローラ400、BIOS410、プリンタ部220のエンジンコントローラプログラムとなるDCON430、スキャナ部221のコントローラプログラムとなるRCON420を有する。
本体コントローラ400は、FlashROM211に記憶されている。BIOS410は、BIOSROM230に記憶されている。DCON430は、プリンタ部220のFlashROM220bに記憶されている。RCON420は、スキャナ部221のFlashROM221bに記憶されている。
本体コントローラ400における各プログラムについて説明する。
OS401は、情報処理装置100を制御するためのOSであり、プリンタ部220、スキャナ部221を含む情報処理装置100の各部の動作を制御するためのドライバプログラムを含むものである。UI402は、操作部219を介して情報処理装置100の操作者により入力される指示をCPU210に伝達し、伝達された指示に応じた処理を実行するためのプログラムである。SCAN403は、前述したスキャナ部221によるスキャン処理を制御するためのプログラムである。PRINT404は、前述したプリンタ部220によるプリント処理を制御するためのプログラムである。N/W405は、LAN110上のPC225やサーバ装置224との通信を行うためのプログラムである。UPDATE406は、図2で示したような複数のファームウェアの更新を行うためのプログラムである。
これらのプログラムは情報処理装置100のプログラムの例であり、内部的には更に細かいサブプログラム群で構成されていてもよいし、ここに挙げた以外のプログラムが存在してもよい。
<実施形態1>
次に、実施形態1におけるプログラムの更新処理について図3、及び図4を用いて説明する。
図3は、実施形態1におけるプログラム更新の処理の一例を示すフローチャートである。
図4は、実施形態1における更新対象のプログラム及び更新に必要な更新データの一覧を表すリストの一例を示す図である。
なお、図3の各ステップにおける処理は、制御部200のCPU210がFlashROM211に記憶されたプログラムを実行することにより実現される。
ステップS301で、CPU210は、情報処理装置100のプログラムを更新するための更新処理の実行指示がなされたかどうかを判定し、更新処理の実行指示がなされたと判定した場合はステップS302へ処理を進める。ここで、更新処理の実行指示とは、例えば、情報処理装置100の操作者が操作部219を介してなされる指示を言う。また、一定期間(例えば、2週間)毎にプログラムを定期的に更新するようにスケジュールを予め設定しておき、定期的に更新処理の実行指示が自動的になされるようにしてもよい。
ステップS302で、CPU210は、OS401を介してUPDATE406を実行する。このことにより、CPU210は、FlashROM211、BIOSROM230、FlashROM220b、FlashROM221bに記憶された各プログラムのバージョンを取得する。一例として、更新前の各プログラムのバージョンは、図4aのリストの通りとする。
ステップS303で、CPU210は、OS401を介してUPDATE406を実行することにより、情報処理装置100を特定するための機種ID情報を含むバージョンの取得要求を、ネットワークを介して通信可能なサーバ装置224に送信する。そして、情報処理装置100は、サーバ装置224により機種ID情報に基づき管理されている情報処理装置の複数のプログラムのバージョンを取得し、更新対象プログラムの組み合わせを特定する(第1の特定)。ここで、CPU210は、組み合わせを指定するための表示画面を操作部219に表示させ、操作部219を介して操作者により指示されたプログラムを更新候補として特定してもよい。また、CPU210は、操作者による指示に基づくことなく、取得したバージョンに基づき、最新の組み合わせを更新対象として特定してもよい。一例として、更新対象の組み合わせは図4bの通りとする。なお、CPU210は、バージョンの取得を、サーバ装置224だけでなく、外部USBデバイス223(USBメモリ等)やPC225等から行ってもよい。
ステップS304で、CPU210は、OS401を介してUPDATE406を実行することにより、更新候補となるプログラムを特定する。つまり、CPU210は、ステップS302で取得した現在の各プログラム(図4a)の組み合わせから、ステップS303で取得した更新対象の各プログラム(図4b)の組み合わせへ更新するために必要な更新データを特定する。図4aの組み合わせから、図4bの組み合わせに更新するためには、本体コントローラ400に含まれるOS、UI、PRINTプログラム、及びBIOS、DCONのバージョン2.0が必要となるため、更新データの一覧は図4cの通りとなる。即ち、CPU210は、図4cに示されるように、更新対象の複数のプログラム名と各プログラムの更新後のバージョンとを特定する。
ステップS305で、CPU210は、OS401を介してUPDATE406を実行することにより、エラー時に更新前の組み合わせへ戻すためのプログラムを特定する。つまり、CPU210は、ステップS303で取得した更新対象の各プログラム(図4b)の組み合わせから、ステップS302で取得した現在(更新前)の各プログラム(図4a)の組み合わせへ更新するために必要な更新データを特定する。図4bの組み合わせから、図4aの組み合わせに更新するためには、本体コントローラ400に含まれるOS、UI、PRINTプログラム、及びBIOS、DCONのバージョン1.0が必要となるため、更新データの一覧は図4dの通りとなる。即ち、CPU210は、図4dに示されるように、更新対象の複数のプログラム名と各プログラムの更新前のバージョンとを特定する。
ステップS306で、CPU210は、OS401を介してUPDATE406を実行することにより、S304及びS305で特定した(図4c、図4dに示した)更新データ一覧を、サーバ装置224から取得する。CPU210は、取得した更新データを、情報処理装置100内(例えば、HDD213)に保存する。図4cに示す更新データは、更新対象のプログラムを更新するために使用される更新プログラムである。また、図4dに示す更新データは、更新対象のプログラムの更新が失敗した場合に、前記プログラムを更新前の状態に復元するために使用される復元プログラムである。更新対象(図4b)の組み合わせへ更新する際は、CPU210は、図4cに示した更新データを用いる。そして、更新時にエラーが発生した場合は、CPU210は、図4dに示した更新データを用いて更新前(図4a)の組み合わせに戻すことで、各プログラムのバージョンの組み合わせが不適切になることを防ぐことができる。なお、CPU210は、更新データの取得を、サーバ装置224だけでなく、外部USBデバイス223(USBメモリ等)やPC225等から行ってもよい。
ステップS307で、CPU210は、OS401を介してUPDATE406を実行することにより、ステップS306で取得した更新データを用いて、各プログラムをステップS303で取得した(図4b)組み合わせへ更新する。具体的には、CPU210は、本体コントローラ400やBIOS410を更新し、外部コントローラであるRCON420やDCON430を更新する。各プログラムは別々の記憶領域(ここではFlashROM211、BIOSROM230、FlashROM220b、FlashROM221b)に記憶されているため、可能な限り更新処理を並列に行うことで更新時間を短縮することができる。
ステップS308で、CPU210は、OS401を介してUPDATE406を実行することにより、S307で行われた更新処理が正しく完了したかどうかを判定する。CPU210は、正しく完了した場合はS312へ処理を進め、正しく完了しなかった場合はS309へ処理を進める。更新処理が正しく完了しなかった場合とは、例えば、所定時間経過しても各記憶領域に記憶された各プログラムのバージョンとステップS303で取得した各プログラム(図4b)のバージョンとが一致しなかった場合等である。ここで、各記憶領域とは、例えば、FlashROM211、BIOSROM230、FlashROM220b、FlashROM221bである。
更新処理に失敗した場合とは、例えば、本体コントローラ400の更新に失敗(FlashROM211への書き込みに失敗)したが、BIOS410、DCON430の更新は成功した場合がある。この様な場合、図4eのようなプログラムの組み合わせになる。なお、本体コントローラ400の更新に失敗する原因としては更新時の電源ダウン等が考えられる。図4eのようなプログラムの組み合わせになった場合、OS401とBIOS410、及びPRINT404とDCON430のバージョンの組み合わせが不整合となり、正常に起動できなくなる場合がある。そのため、CPU210は、ステップS309で復元処理を実行し、更新前の各プログラム(図4a)の組み合わせへ戻すことで、バージョンの組み合わせの不整合を解消する。
ステップS309で、CPU210は、OS401を介してUPDATE406を実行する。このことにより、CPU210は、ステップS306で取得した復元プログラムを用いて、各プログラムをステップS302で取得した更新前の各プログラム(図4a)の組み合わせへ更新(又は復元)する。より具体的には、CPU210は、本体コントローラ400やBIOS410を復元し、更にRCON420やDCON430を復元する。各プログラムは別々の記憶領域(ここではFlashROM211、BIOSROM230、FlashROM220b、FlashROM221b)に記憶されているため、並列に更新を行うことで更新時間を短縮することができる。
ステップS310で、CPU210は、OS401を介してUPDATE406を実行することにより、S309で行われた更新処理が正しく完了したかどうかを判定する。より具体的には、CPU210は、各記憶領域に記憶された各プログラムのバージョンとステップS302で取得した各プログラム(図4a)のバージョンとが一致するかどうかを判定する。CPU210は、一致した場合は、不整合を解消したとみなし、S312へ処理を進める。CPU210は、一致しなかった場合は、更新処理に失敗したとみなし、S311へ処理を進める。なお、各記憶領域とは、例えば、FlashROM211、BIOSROM230、FlashROM220b、FlashROM221bである。なお、CPU210は、不整合を解消したとみなした場合、不整合を解消した旨の画面等を操作部219等に表示し、操作者からシステムを再起動する旨の指示を前記画面を介して受け取った後、S312に処理を進めるようにしてもよい。
ステップS311で、CPU210は、OS401を介してUPDATE406を実行することにより、更新処理に失敗した旨を操作部219に表示する。
ステップS312で、CPU210は、OS401を介してシステム全体を再起動し、更新処理を完了する。
以上説明したように、実施形態1によれば、情報処理装置が実行する複数のプログラムの更新にあたって、何れかのプログラムの更新処理が完了しない場合であっても、各プログラムのバージョンの組み合わせが不適切な状態に陥らないようにすることができる。より具体的には、CPU210は、更新対象の各プログラム(図4b)の組み合わせへ更新するために必要な更新データ(図4c)と共に更新前の各プログラム(図4a)の組み合わせに戻すために必要な更新データ(図4d)をサーバ装置等から予め取得しておく。そして、CPU210は、何れかのプログラムの更新処理に失敗した場合に、予め取得していた更新データを用いて、更新前の各プログラム(図4a)の組み合わせへ戻す。このことで、各プログラムのバージョンの組み合わせを適切なものとすることができる。
<実施形態2>
次に、実施形態2について説明する。実施形態1では、更新対象のプログラムに対する復元プログラムを、プログラムの更新を実行する前に予め情報処理装置100がサーバ装置等から取得する例を説明した。しかしながら、OS401、UI402、PRINT404等のプログラムは、記憶領域(HDD213等)に退避することができる、つまり復元プログラムを情報処理装置100が生成することができる場合がある。実施形態2は、この点を鑑みたものである。
即ち、実施形態2では、CPU210は、本体コントローラ400においては更新前のプログラムを退避する。そして、CPU210は、BIOS410、RCON420、DCON430等の外部コントローラにおいては、更新前の組み合わせに戻すために必要な更新データを予め外部装置(サーバ装置224)から取得しておく。以下では図5、図6を用いて実施形態1との差分を主に説明する。更新前の各プログラムのバージョンは図6aのリストの通りとし、更新対象の組み合わせは図6bの通りとする。
図5は、実施形態2におけるプログラム更新の処理の一例を示すフローチャートである。
図6は、実施形態2における更新対象のプログラム、更新に必要な更新データ、及び更新前に退避するプログラムの一覧を表すリストの一例を示す図である。
なお、図5の各ステップにおける処理は、制御部200のCPU210がFlashROM211に記憶されたプログラムを実行することにより実現される。
ステップS505で、CPU210は、OS401を介してUPDATE406を実行することにより、エラー時に外部コントローラを更新前の組み合わせへ戻すためのプログラムを特定する。つまり、ステップS503で取得した更新対象の各プログラム(図6b)の組み合わせから、ステップS502で取得した現在(更新前)の各プログラム(図6a)の組み合わせへ更新するために必要な更新データを特定する。外部コントローラを図6bの組み合わせから、図6aの組み合わせに更新するためには、BIOS、DCONのバージョン1.0が必要となるため、更新データの一覧は図6dの通りである。実施形態1との差異は、更新データの一覧に本体コントローラ400のプログラムが含まれないことである。
なお、図6dに含まれるプログラムは、第1の復元プログラムの一例である。
ステップS506で、CPU210は、OS401を介してUPDATE406を実行することにより、エラー時に本体コントローラ400を更新前の組み合わせへ戻すために、復元プログラムとして更新前のプログラムを退避する。つまり、CPU210は、ステップS503で取得した更新対象の各プログラム(図6b)の組み合わせから、ステップS502で取得した現在(更新前)の各プログラム(図6a)の組み合わせを復元するために必要なプログラムを特定する(第2の特定)。そして、CPU210は、特定したプログラムを制御部200内(HDD213等)に退避する。本体コントローラ400を図6bの組み合わせから、図6aの組み合わせを復元するためには、OS、UI、PRINTのバージョン1.0を退避しておく必要があり、退避対象のプログラムは図6fの通りである。なお、CPU210は、制御部200内の空きメモリに応じて、本体コントローラ400に含まれるプログラムを全て退避するようにしてもよいし、上述したように必要なプログラムのみを退避するようにしてもよい。
なお、ステップS506において制御部200内(HDD213等)に退避する復元プログラムは、本体コントローラ400のプログラムである。BIOS410、RCON420、DCON430のプログラムは制御部200内(HDD213等)に退避させることができないため、ステップS507でサーバ装置224から復元プログラムを取得する。
なお、BIOS410、RCON420、DCON430のプログラムを制御部200内(HDD213等)に退避させることができないのは、プリンタI/F215やスキャナI/F215等の各種I/Fの仕様が原因である。仮にRCON420、DCON430のプログラムを制御部200内(HDD213等)に退避させることができたとしても、プリンタI/F215やスキャナI/F215の通信速度が遅い場合には、復元プログラムの生成に時間がかかってしまう。したがって、実施形態2のようにサーバ装置224から復元プログラムを取得することが望ましい。
なお、図6fに含まれるプログラムは、第2の復元プログラムの一例である。
また、図6cに含まれるOS、UI、PRINTのプログラムは、第1のプログラムの一例である。また、図6cに含まれるBIOS、DCONのプログラムは、第2のプログラムの一例である。
ステップS509で、CPU210は、OS401を介してUPDATE406を実行することにより、S508で行われた更新処理が正しく完了したかどうかを判定する。より具体的には、CPU210は、各記憶領域に記憶された各プログラムのバージョンとステップS503で取得した各プログラム(図6b)のバージョンとが一致するかどうかを判定する。CPU210は、一致した場合は、正しく更新処理が完了したとみなし、S513へ処理を進める。CPU210は、一致しなかった場合は、更新処理に失敗したとみなし、S510へ処理を進める。なお、各記憶領域とは、例えば、FlashROM211、BIOSROM230、FlashROM220b、FlashROM221bである。
更新処理に失敗した場合とは、例えば、本体コントローラ400及びBIOS410の更新に成功したが、DCON430の更新に失敗(FlashROM220bの書き込みに失敗)した場合であり、図6eのようなプログラムの組み合わせになる。この場合、PRINT404とDCON430とのバージョンの組み合わせが不整合となり、正常に起動できなくなる場合がある。そのため、CPU210は、ステップS510で復元処理を実行し、更新前の各プログラム(図6a)の組み合わせへ戻すことで、バージョンの組み合わせの不整合を解消する。
ステップS510で、CPU210は、OS401を介してUPDATE406を実行する。このことにより、CPU210は、ステップS506で予め制御部200内(HDD213等)に退避しておいた更新前の各プログラム、及びステップS507で取得した各更新データを用いて、各プログラムをステップS502で取得した更新前の各プログラム(図6a)の組み合わせへ復元する。より具体的には、CPU210は、ステップS506で予め制御部200内(HDD213等)に退避しておいた更新前の各プログラムを用いて、本体コントローラ400を更新前の組み合わせへ復元する。また、CPU210は、ステップS507で取得した各更新データを用いて、BIOS410、RCON420、DCON430を更新前の状態に復元する。各プログラムは別々の記憶領域(ここではFlashROM211、BIOSROM230、FlashROM220b、FlashROM221b)に記憶されているため、CPU210は、並列に更新(又は復元)を行うことで更新時間を短縮することができる。
以上説明したように、実施形態2によれば、更新対象のプログラムのうち本体コントローラ400については情報処理装置100自身が復元プログラムを生成する(ステップS506)。一方、BIOS410、RCON420、DCON430については情報処理装置が復元プログラムを生成せずにサーバ装置224から復元プログラムを取得する(ステップS507)。これにより、情報処理装置100自身が復元プログラムを生成できないプログラムについても、プログラムの更新を実行する前に予め復元プログラムを用意することができる。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施形態によれば、複数のプログラムの更新中にエラーが発生しても更新前のプログラムのバージョンの組み合わせに戻すことができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。

Claims (7)

  1. サーバと通信可能な情報処理装置であって、
    第1のプログラムを記憶する第1のメモリと、
    第2のプログラムを記憶する第2のメモリと、
    前記第1のプログラムと前記第2のプログラムとを更新するための更新データと、更新が失敗した場合に前記第1のプログラムを元の状態に復元するための第1の復元データとを、前記サーバから取得する取得手段と、
    更新が失敗した場合に前記第2のプログラムを元の状態に復元するための第2の復元データを生成する生成手段と、
    前記取得手段が取得した前記更新データに基づいて、前記第1のプログラムと前記第2のプログラムとを更新する更新手段と、
    前記更新手段によるプログラムの更新が失敗した場合に、前記取得手段が取得した前記第1の復元データと、前記生成手段が生成した前記第2の復元データと、に基づいて前記第1のプログラムと前記第2のプログラムとを元の状態に復元する復元手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記生成手段は、前記第2のプログラムを所定の記憶領域に退避させることで前記第2の復元データを生成することを特徴とする請求項1に記載の情報処理装置。
  3. 前記第1のプログラムは、前記所定の記憶領域に退避することができないプログラムであることを特徴とする請求項2に記載の情報処理装置。
  4. 前記情報処理装置は、前記情報処理装置を制御する制御部と、印刷を実行するプリンタ部とを有し、
    前記制御部は、前記第2のメモリを備え、
    前記プリンタ部は、前記第1のメモリを備えることを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
  5. 前記情報処理装置は、前記情報処理装置を制御する制御部と、原稿の読み取りを実行するスキャナ部とを有し、
    前記制御部は、前記第2のメモリを備え、
    前記スキャナ部は、前記第1のメモリを備えることを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
  6. 1のプログラムを記憶する第1のメモリと、第2のプログラムを記憶する第2のメモリとを有し、サーバと通信可能な情報処理装置が実行するプログラム更新方法であって、
    前記第1のプログラムと前記第2のプログラムとを更新するための更新データと、更新が失敗した場合に前記第1のプログラムを元の状態に復元するための第1の復元データとを、前記サーバから取得する取得ステップと、
    更新が失敗した場合に前記第2のプログラムを元の状態に復元するための第2の復元データを生成する生成ステップと、
    前記取得ステップで取得された前記更新データに基づいて、前記第1のプログラムと前記第2のプログラムとを更新する更新ステップと、
    前記更新ステップでのプログラムの更新が失敗した場合に、前記取得ステップで取得された前記第1の復元データと、前記生成ステップで生成された前記第2の復元データと、に基づいて、前記第1のプログラムと前記第2のプログラムとを元の状態に復元する復元ステップと、
    を含むことを特徴とするプログラム更新方法。
  7. 第1のプログラムを記憶する第1のメモリと、第2のプログラムを記憶する第2のメモリとを有し、サーバと通信可能なコンピュータに、
    前記第1のプログラムと前記第2のプログラムとを更新するための更新データと、更新が失敗した場合に前記第1のプログラムを元の状態に復元するための第1の復元データとを、前記サーバから取得する取得ステップと、
    更新が失敗した場合に前記第2のプログラムを元の状態に復元するための第2の復元データを生成する生成ステップと、
    前記取得ステップで取得された前記更新データに基づいて、前記第1のプログラムと前記第2のプログラムとを更新する更新ステップと、
    前記更新ステップでのプログラムの更新が失敗した場合に、前記取得ステップで取得された前記第1の復元データと、前記生成ステップで生成された前記第2の復元データと、に基づいて、前記第1のプログラムと前記第2のプログラムとを元の状態に復元する復元ステップと、
    を実行させるためのプログラム。
JP2012139765A 2012-06-21 2012-06-21 情報処理装置、プログラム更新方法及びプログラム Active JP5921358B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012139765A JP5921358B2 (ja) 2012-06-21 2012-06-21 情報処理装置、プログラム更新方法及びプログラム
US13/921,318 US9229815B2 (en) 2012-06-21 2013-06-19 Information processing apparatus, program update method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012139765A JP5921358B2 (ja) 2012-06-21 2012-06-21 情報処理装置、プログラム更新方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2014006571A JP2014006571A (ja) 2014-01-16
JP2014006571A5 JP2014006571A5 (ja) 2015-08-06
JP5921358B2 true JP5921358B2 (ja) 2016-05-24

Family

ID=49775486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012139765A Active JP5921358B2 (ja) 2012-06-21 2012-06-21 情報処理装置、プログラム更新方法及びプログラム

Country Status (2)

Country Link
US (1) US9229815B2 (ja)
JP (1) JP5921358B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9888087B2 (en) 2014-03-31 2018-02-06 Uber Technologies, Inc. Adjusting attributes for an on-demand service system based on real-time information
US9575837B2 (en) * 2015-02-03 2017-02-21 Uber Technologies, Inc. System and method for introducing functionality to an application for use with a network service
US10212536B2 (en) 2015-07-10 2019-02-19 Uber Technologies, Inc. Selecting a messaging protocol for transmitting data in connection with a location-based service
US10158528B2 (en) 2015-10-13 2018-12-18 Uber Technologies, Inc. Application service configuration system
US11533226B2 (en) 2015-10-13 2022-12-20 Uber Technologies, Inc. Application service configuration system
US10120678B2 (en) * 2016-11-15 2018-11-06 Dell Products, L.P. Firmware update control mechanism using organizational groups
JP6737169B2 (ja) * 2016-12-26 2020-08-05 京セラドキュメントソリューションズ株式会社 バージョンチェックシステム及びバージョンチェック方法
JP7040075B2 (ja) * 2017-03-17 2022-03-23 株式会社リコー 情報処理装置、画像形成装置、アップデート方法
JP7286926B2 (ja) * 2018-07-31 2023-06-06 株式会社リコー 情報処理装置、情報処理システム、情報処理方法及びプログラム
US10977105B2 (en) 2018-12-14 2021-04-13 Uber Technologies, Inc. Memory crash prevention for a computing device
JP7283359B2 (ja) * 2019-11-19 2023-05-30 株式会社オートネットワーク技術研究所 車載更新装置、及び更新処理プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438749B1 (en) * 1999-03-03 2002-08-20 Microsoft Corporation Method and system for restoring a computer to its original state after an unsuccessful patch installation attempt
JP2001117780A (ja) 1999-10-20 2001-04-27 Sharp Corp 情報記憶装置およびそのダウンロード方法
US6665813B1 (en) * 2000-08-03 2003-12-16 International Business Machines Corporation Method and apparatus for updateable flash memory design and recovery with minimal redundancy
JP2004042304A (ja) 2002-07-09 2004-02-12 Konica Minolta Holdings Inc 画像形成装置及び画像形成装置のプログラム管理システム
TW200713037A (en) * 2005-09-06 2007-04-01 Benq Corp System and method for updating firmware
JP2007219883A (ja) * 2006-02-17 2007-08-30 Sony Ericsson Mobilecommunications Japan Inc 移動端末装置およびソフトウェア更新方法
JP2009265877A (ja) * 2008-04-24 2009-11-12 Kyocera Mita Corp 電子機器
JP2010092324A (ja) * 2008-10-09 2010-04-22 Panasonic Corp 放送受信装置及びソフトウェア更新方法
US8869138B2 (en) * 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
JP5984326B2 (ja) * 2010-07-07 2016-09-06 キヤノン株式会社 情報処理装置、プログラムの更新方法及びプログラム

Also Published As

Publication number Publication date
US20130346796A1 (en) 2013-12-26
US9229815B2 (en) 2016-01-05
JP2014006571A (ja) 2014-01-16

Similar Documents

Publication Publication Date Title
JP5921358B2 (ja) 情報処理装置、プログラム更新方法及びプログラム
CN102045474B (zh) 包括固件的图像形成装置及图像形成装置的控制方法
JP7069826B2 (ja) 情報処理装置、ファームウェア更新方法、プログラム
JP6366354B2 (ja) 情報処理装置、画像形成装置、およびそのプログラムの更新方法、並びにプログラム
JP5894495B2 (ja) 情報処理装置、情報処理装置におけるファームウエアの更新方法およびプログラム
JP6351413B2 (ja) 画像形成装置およびその制御方法、並びにプログラム
US8922805B2 (en) Image processing apparatus having updatable firmware, method for controlling image processing apparatus, and program
JP7206106B2 (ja) 情報処理装置及びプログラム
JP5679714B2 (ja) 画像形成装置
JP5943681B2 (ja) 情報処理装置、情報処理装置のファームウエア更新方法及びプログラム
JP6448193B2 (ja) 画像形成装置及びその制御方法、並びにプログラム
JP5984326B2 (ja) 情報処理装置、プログラムの更新方法及びプログラム
JP6041588B2 (ja) 画像形成装置、プログラム更新方法及びプログラム
JP6399797B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2023068538A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP6312372B2 (ja) 画像形成装置及びその制御方法、並びにプログラム
JP6457756B2 (ja) 情報処理装置、その制御方法、及びプログラム
JP2019049907A (ja) 情報処理装置、情報処理方法及びプログラム
JP2012160112A (ja) 情報処理装置及びその制御方法
JP2016132186A (ja) 画像形成装置、画像形成処理方法及び画像形成処理プログラム
JP2014238647A (ja) 情報処理装置及びそのプログラム更新方法、並びにプログラム
JP6275227B2 (ja) 画像形成装置、プログラム更新方法及びプログラム
JP2003330655A (ja) 画像形成装置および画像形成装置の制御方法およびコンピュータが読み取り可能な記憶媒体およびプログラム
JP2013101560A (ja) プリンタ、その制御方法、およびそのプログラム
JP2009048484A (ja) 電子機器及び電子情報更新方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150617

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160309

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160412

R151 Written notification of patent or utility model registration

Ref document number: 5921358

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151