JP5494772B2 - 機器、プログラム更新方法、プログラム、及びプログラム更新システム - Google Patents

機器、プログラム更新方法、プログラム、及びプログラム更新システム Download PDF

Info

Publication number
JP5494772B2
JP5494772B2 JP2012225623A JP2012225623A JP5494772B2 JP 5494772 B2 JP5494772 B2 JP 5494772B2 JP 2012225623 A JP2012225623 A JP 2012225623A JP 2012225623 A JP2012225623 A JP 2012225623A JP 5494772 B2 JP5494772 B2 JP 5494772B2
Authority
JP
Japan
Prior art keywords
update
program
update process
storage device
file
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
JP2012225623A
Other languages
English (en)
Other versions
JP2013033498A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012225623A priority Critical patent/JP5494772B2/ja
Publication of JP2013033498A publication Critical patent/JP2013033498A/ja
Application granted granted Critical
Publication of JP5494772B2 publication Critical patent/JP5494772B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、機器、プログラム更新方法プログラム、及びプログラム更新システムに関する。
近年におけるプリンタ、コピー機、スキャナ、ファクシミリ、又はこれらの機能を一台の筐体で実現する複合機等の画像形成装置では、メモリ等の制限は厳しいものの、汎用的なコンピュータと同様にCPUを備え、各機能はアプリケーションの制御によって実現されるようになっている。このような画像形成装置の中にはアプリケーションを実装及び実行するためのプラットフォームを備え、その出荷後にユーザの利用環境に適したアプリケーションを作成及びインストールすることにより、機能強化を図れるものもある(例えば、特許文献1)。
ところで、このようなアプリケーションのインストールやアップデート等を複数台の画像形成装置や、遠隔地にあるに画像形成装置に対して行う必要がある場合は、当該画像形成装置とネットワークを介して接続されたPC等からリモートでインストール又はアップデートするのが効率的である。
しかしながら、リモートインストールやリモートアップデートの場合、インストール処理又はアップデート処理(以下「更新処理」で総称する。)は画像形成装置のバックグラウンドで行われるため、当該画像形成装置を操作中のユーザ(例えば、当該画像形成装置を用いてコピー等を行っているユーザ)は、更新処理が行われていることに気付かない場合がある。したがって、更新処理中に画像形成装置の電源がユーザによって落とされてしまう可能性がある。
電源断等の発生により更新処理が中断してしまうと、更新対象のファイルの破壊や、関連する複数のファイル間における不整合等が発生し、画像形成装置が正常に動作しなくなってしまうという可能性がある。
他方において、更新処理そのものは成功した場合でも、更新後のアプリケーションのメモリ消費量が増加した場合、改めて画像形成装置を起動した際にメモリ不足等の原因により画像形成装置が正常に動作しない場合も予測される。
本発明は、上記の点に鑑みてなされたものであって、プログラムの更新処理を適切に実行することのできるプログラム更新方法プログラム、及びプログラム更新システムの提供を目的とする。
そこで上記課題を解決するため、本発明は、プログラムを実行し前記プログラムを更新可能な機器であって、前記プログラムの更新用データを外部装置より受信する受信手段と、前記更新用データに基づいて前記プログラムの更新処理を実行することにより更新プログラムを生成し、前記更新プログラムを起動対象とさせる更新手段と、前記更新処理を構成する各段階の開始に応じ、当該段階の開始を示す第一の情報を記憶装置に記録し、前記更新処理の完了に応じ、前記更新処理の完了を示す第二の情報を前記記憶装置に記録する進捗情報記録手段と、前記更新プログラムの起動後に、前記第二の情報の有無に基づいて前記更新プログラムの起動の成否を確認し、起動に失敗しているときに、保存されている更新前のプログラムを起動対象とさせる復元手段とを有することを特徴とする。
このような機器では、プログラムの更新処理を適切に実行することができる。
また、上記課題を解決するため、本発明は、上記機器におけるプログラム更新方法、又は前記プログラム更新方法をコンピュータに実行させるためのプログラムとしてもよい。
本発明によれば、プログラムの更新処理を適切に実行することのできる機器、プログラム更新方法プログラム、及びプログラム更新システムを提供することができる。
本発明の実施の形態における画像形成装置の機能構成例を説明するための図である。 本発明の実施の形態における画像形成装置のハードウェア構成例を示すである。 本実施の形態の画像形成装置に対する更新処理の概要を説明するためのブロック図である。 本実施の形態の画像形成装置に対する更新処理の概要を説明するためのシーケンス図である。 複合機の起動処理を説明するためのシーケンス図である。 更新処理が正常に終了しなかったときの複合機の再起動時の起動処理を説明するためのフローチャートである。 リカバリ処理の処理手順を説明するためのシーケンス図である。 JSDKプラットフォームとは別のプロセスによって管理サーバとの通信が行われる場合の画像形成装置に対する更新処理の概要を説明するためのブロック図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における画像形成装置の機能構成例を説明するための図である。本実施の形態では、図1の複合機101は、種々のハードウェア111と、種々のソフトウェア112と、複合機起動部113により構成される。
複合機101のハードウェア111としては、撮像部121と、印刷部122と、その他のハードウェア123が存在する。撮像部121は、読取原稿から画像(画像データ)を読み取るためのハードウェアである。印刷部122は、画像(画像データ)を印刷用紙に印刷するためのハードウェアである。
複合機101のソフトウェア112としては、種々のアプリケーション131と、種々のプラットフォーム132が存在する。これらのプログラムは、UNIX(登録商標)等のOS(オペレーティングシステム)によりプロセス単位で並列的に実行される。
アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。更に、スクリプトパーサ182や、CSDKアプリ146及びJSDKアプリ147の制御用のソフトウェアであるSDKアプリケーションサービス(SAS)183が存在する。
アプリケーション131は、専用のSDK(ソフトウェア開発キット)を使用して開発することができる。SDKを使用して開発したアプリケーション131をSDKアプリと呼ぶ。専用のSDKとしては、C言語でアプリケーション131を開発するための「CSDK」や、Java(登録商標)言語でアプリケーション131を開発するための「JSDK」が提供される。CSDKを使用して開発したアプリケーション131を「CSDKアプリ」と呼び、JSDKを使用して開発したアプリケーション131を「JSDKアプリ」と呼ぶ。図1の複合機101にも、CSDKアプリ146と、JSDKアプリ147が存在する。図1の複合機101にはさらに、Java(登録商標)言語で記述されたJSDKアプリ147の実行環境を提供し、また、JSDKアプリ147とC言語で記述された他のソフトウェア112との仲介を行うソフトウェア112として、JSDKプラットフォーム148が存在する。また、一般的にJava(登録商標)によって実装されたアプリケーションの実行環境を実現するモジュールとして、Java(登録商標)仮想マシンであるCVM(コンパクト仮想マシン)191や、JNI(Java(登録商標) Native Interface)192等が存在する。更に、JNI192を介して呼び出される、Native Library193が存在する。
プラットフォーム132としては、種々のコントロールサービス151、システムリソースマネージャ152、種々のハンドラ153が存在する。コントロールサービス151としては、ネットワークコントロールサービス(NCS)161、ファクシミリコントロールサービス(FCS)162、デリバリコントロールサービス(DCS)163、エンジンコントロールサービス(ECS)164、メモリコントロールサービス(MCS)165、オペレーションパネルコントロールサービス(OCS)166、サーティフィケーションコントロールサービス(CCS)167、ユーザディレクトリコントロールサービス(UCS)168、システムコントロールサービス(SCS)169が存在する。ハンドラ153としては、ファクシミリコントロールユニットハンドラ(FCUH)171、イメージメモリハンドラ(IMH)172が存在する。
NCS161のプロセスは、ネットワーク通信の仲介を行う。FCS162のプロセスは、ファクシミリのAPIを提供する。DCS163のプロセスは、蓄積文書の配信処理に関する制御を行う。ECS164のプロセスは、撮像部121や印刷部122に関する制御を行う。MCS165のプロセスは、メモリやハードディスクドライブに関する制御を行う。OCS166のプロセスは、オペレーションパネルに関する制御を行う。CCS167のプロセスは、認証処理や課金処理に関する制御を行う。UCS168のプロセスは、ユーザ情報の管理に関する制御を行う。SCS169のプロセスは、システムの管理に関する制御を行う。
アプリケーション131とプラットフォーム132の仲介を行うソフトウェア112として、仮想アプリケーションサービス(VAS)135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132を隠蔽するラッピング機能を備え、プラットフォーム132のバージョンアップに伴うバージョン差を吸収する役割等を担う。
複合機起動部113は、複合機101の電源投入時に最初に実行される。これにより、UNIX(登録商標)等のOSが起動され、アプリケーション131やプラットフォーム132が起動される。これらのプログラムは、ハードディスクドライブやメモリカードに蓄積されており、ハードディスクドライブやメモリカードから再生されて、メモリに起動されることになる。
図2は、本発明の実施の形態における画像形成装置のハードウェア構成例を示すである。複合機101のハードウェア111としては、コントローラ201と、オペレーションパネル202と、ファクシミリコントロールユニット(FCU)203と、撮像部121と、印刷部122が存在する。
コントローラ201は、CPU211、ASIC212、NB221、SB222、MEM−P231、MEM−C232、HDD(ハードディスクドライブ)233、メモリカードスロット234、NIC(ネットワークインタフェースコントローラ)241、USBデバイス242、IEEE1394デバイス243、セントロニクスデバイス244により構成される。
CPU211は、種々の情報処理用のICである。ASIC212は、種々の画像処理用のICである。NB221は、コントローラ201のノースブリッジである。SB222は、コントローラ201のサウスブリッジである。MEM−P231は、複合機101のシステムメモリである。MEM−C232は、複合機101のローカルメモリである。HDD233は、複合機101のストレージである。メモリカードスロット234は、メモリカード235をセットするためのスロットである。NIC241は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス242は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス243は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス244は、セントロニクス仕様の接続端子を提供するためのデバイスである。
オペレーションパネル202は、オペレータが複合機101に入力を行うためのハードウェア(操作部)であると共に、オペレータが複合機101から出力を得るためのハードウェア(表示部)である。
上記のような複合機101において、アプリケーション131の更新処理(インストール、アンインストール、アップデート等)を実行する例について説明する。
図3は、本実施の形態の画像形成装置に対する更新処理の概要を説明するためのブロック図である。図3中、図1と同一部分には同一符号を付し、その説明は省略する。
図3において、管理サーバ30は、ネットワークを介して一台以上の画像形成装置と接続し、各画像形成装置の状態等を管理する装置であり、例えば、PCによって構成される。本実施の形態において管理サーバ30は、複合機101に対してリモート更新処理の実行を指示すると共に、リモート更新処理に必要なデータ(更新用データ310)を送信する。
管理サーバ30より送信されるリモート更新処理の実行指示や更新用データ310は、JSDKプラットフォーム148の一部を構成するリモート更新用通信部1481が受信する。リモート更新用通信部1481は、受信した更新用データ310を、複合機101のHDD233又はメモリカード235等に保存する。
更新用データ310には、更新処理に必要なデータとして、更新処理対象のアプリケーション自体の他、更新処理の実行情報(例えば、更新部分を示す情報や、更新処理を構成する命令等)が記述されたスクリプトファイル等が圧縮されて格納されている。
スクリプトパーサ182は、更新用データ310に格納されているスクリプトファイルの記述内容を解釈する。SAS183は、スクリプトパーサ182によって解釈された命令を実行することにより更新処理全体を制御する。
なお、図3において、破線320で囲まれた部分(以下「更新対象データ320」という。)は、リモート更新処理によって更新対象となり得る部分である。すなわち、JSDKアプリ147、SDKKプラットフォーム148、CVM191、JNI191、Native Library193、及びスクリプトパーサ182等が更新対象となり得る。
以下、複合機101の処理手順について説明する。図4は、本実施の形態の画像形成装置に対する更新処理の概要を説明するためのシーケンス図である。
例えば、管理サーバ30に対するユーザによる入力又はプログラム等による自動的かつ定期的なトリガーに応じて、管理サーバ30は、複合機101のリモート更新用通信部1481に対して機器情報の取得を要求する(S101)。リモート更新用通信部1481は、複合機101の機器情報を収集し、当該機器情報を例えば、XML(eXtensible Markup Language)形式のデータにして管理サーバ30に返信する(S102)。機器情報には、例えば、複合機101のシリアル番号、メモリ空き容量、JSDKプラットフォーム148のバージョン情報、及びインストール済みのJSDKアプリ147のアプリケーション情報等のソフトウェア構成に関する情報が含まれる。各JSDKアプリ147のアプリケーション情報には、アプリケーションごとに一意のプロダクトID、バージョン情報、インストールされている場所を示す情報(例えば、パス名)等が含まれる。
管理サーバ30は、機器情報を受信すると、当該機器情報を解析することにより、更新すべきモジュール(JSDKプラットフォーム148やJSDKアプリ147等)を判定し、その判定結果に応じた内容で更新用データ310を生成する(S103)。例えば、複合機101にインストールされているアプリケーション131のうち、新たなバージョンのアプリケーションが管理サーバ30に登録されている場合や、インストールされていないアプリケーション等がある場合には、それらのアプリケーションが更新用データ310に含められる。続いて、管理サーバ30は、生成された更新用データ310を複合機101に送信する(S104)。複合機101のリモート更新用通信部1481は、更新用データ310を受信し、HDD233又はメモリカード235に保存する。以下、更新用データ310が保存される記憶領域を「更新用データ保存領域」という。続いて、管理サーバ30は、リブート(再起動)要求を複合機101に送信する(S105)。
複合機101は、管理サーバ10からの要求に応じ、リブートを実行する(S106)。リブートの実行により電源が落とされ、続けて再起動を実行する過程において、複合機101は、更新用データ310に基づいて更新処理を実行する(S107)。但し、何らかのジョブが実行中である場合(例えば、コピー処理中等の場合)、リブートの実行は待機又は回避される。
更新処理が完了すると、複合機101は、更新処理の結果(更新処理の成否を示す情報)を管理サーバ30に通知(送信)する(S108)。この際、更新処理に失敗した場合は、その原因を示す情報も送信される。管理サーバ30側では、当該通知に基づいて、更新処理の成否を確認することができ、複合機101において動作しているプログラムのバージョン管理等を適切に行うことができる。
なお、更新処理の結果は、複合機101が能動的に送信しなくてもよい。例えば、管理サーバ30が、リブート要求後にポーリングを行うことにより更新処理の結果を定期的に問い合わせ、複合機101は、その問い合わせに対して更新結果を応答するようにしてもよい。
なお、図4では、管理サーバ30からの要求に応じて複合機101が機器情報を送信する例について説明したが、複合機101が能動的に管理サーバ30に対して機器情報を送信し、それをトリガーとして、ステップS103以降の処理が実行されるようにしてもよい。
続いて、ステップS107において、リブートにより複合機101が再び起動する際に実行される処理について説明する。図5は、複合機の起動処理を説明するためのシーケンス図である。
複合機101の起動処理において、SAS183は、少なくとも更新対象部分320より前にプロセス又はスレッドとして起動される。なお、更新対象データ320又は更新処理によって起動の可否に関して影響を受けるプログラムの中では、CVM191→JSDKプラットフォーム148→JSDKアプリ147aの順でプロセス又はスレッドとして起動される。但し、JSDKアプリ147aは、複合機101が起動する過程においては起動されず、当該アプリケーションの実行が指示された際に起動される。したがって、本実施の形態において、JSDKプラットフォーム148は、更新処理によって起動の可否に関して影響を受けるプログラムの中で、更新処理に続いて起動されるプログラムのうち最後に起動されるプログラムに相当する。
SAS183は、起動されると、更新用データ保存領域における更新用データ310の有無を確認する(S201)。更新用データ310が存在しない場合、ステップS202以降の更新処理は実行されず、通常の起動処理が実行される。更新用データ310が存在する場合、SAS183は、更新用データ310を取得し、解凍する(S202)。以降の処理は、解凍された更新用データ310に含まれているスクリプトファイルの記述内容がスクリプトパーサ182によって解釈されることにより実行される。
まず、SAS183は、状態ファイル410として、「phase_1」というファイル名のファイル(以下、「phase_x」というファイル名のファイルを「phase_xファイル」という。)をHDD233又はメモリカード235における所定の記憶領域(以下「状態ファイル記録領域」という。)に作成する。
ここで、状態ファイル410とは、更新処理の進捗状況を記録及び識別するためのファイルであり、そのファイル名自体が更新処理の進捗状況の識別情報(進捗情報)となっている。したがって、ステップS203におけるphase_1ファイルの作成は、これからフェーズ(段階)1の処理が開始されることが記録されたことを意味する。
続いて、SAS183は、バックアップエリア420より、前回の更新処理において作成されたバックアップファイルを削除する(S204)。ここで、バックアップエリア420とは、更新対象とされるファイルが退避される記憶領域をいい、例えば、HDD233又はメモリカード235が用いられる。また、バックファップファイルとは、バックアップエリア420に退避されたファイルをいう。
続いて、SAS183は、今回の更新処理において更新対象とされるファイル(更新対象ファイル320a)をバックアップエリア410にコピーする(更新対象ファイル320aの複製を生成する)ことによりバックアップを実行する(S205)。バックアップが正常に完了すると、SAS183は、phase_2ファイルを状態ファイル410として作成し(S206)、続けてphase_1ファイルが有る場合はphase_1ファイルを削除する(S207)。phase_2ファイルが作成され、phase_1ファイルが削除されることで、フェーズ2の処理の開始と、フェーズ1の処理(更新対象ファイル320aのバックアップ)の完了が記録されたことになる。
続いて、SAS183は、更新処理によって上書きされる更新対象ファイル320aを削除する(S208)。更新対象ファイル320aの削除が正常に完了すると、SAS183は、phase_3ファイルを状態ファイル410として作成し(S209)、続けてphase_2ファイルが有る場合はphase_2ファイルを削除する(S210)。phase_3ファイルが作成され、phase_2ファイルが削除されることで、フェーズ3の処理の開始と、フェーズ2の処理(更新対象ファイル320aの削除)の完了が記録されたことになる。
続いて、SAS183は、更新用データ保存領域に保存されている更新用データ310を対象パス(インストールされるべき位置)にコピーすることにより、更新用データ310に含まれるプログラムを起動対象として生成する(S211)。更新用データ310のコピーが正常に完了すると、SAS183は、phase_4ファイルを状態ファイル410として作成し(S212)、続けてphase_3ファイルが有る場合はphase_3ファイルを削除する(S213)。phase_4ファイルが作成され、phase_3ファイルが削除されることで、フェーズ4の処理の開始と、フェーズ3の処理(更新用データ310のコピー)の完了が記録されたことになる。
続いて、SAS183は、更新用データ保存領域より更新用データ310を削除する(S214)。更新用データ310の削除が正常に完了すると、SAS183は、phase_5ファイルを状態ファイル410として作成し(S215)、続けてphase_4ファイルが有る場合はphase_4ファイルを削除する(S216)。phase_4ファイルが削除されることで、フェーズ4の処理(更新用データ310の削除)の完了が記録されたことになる。
本実施の形態では、フェーズ4の完了をもって更新処理は完了する。その後は通常の起動処理として、CVM191→JSDKプラットフォーム148の順でそれぞれのプロセス又はスレッドが起動される。JSDKプラットフォーム148は、起動後、phase_5ファイルの存在を確認し、phase_5ファイルが存在する場合、phase_5ファイルを削除することで進捗情報を更新する(S217)。ここで、phase_5ファイルは、更新処理によって更新された、又は更新処理によって起動の可否に関して影響を受けるCVM191及びJSDKプラットフォーム148の双方が正常に起動されたときに初めて削除される。したがって、phase_5ファイルの削除は、CVM191及びJSDKプラットフォーム148の双方が正常に起動されたことの記録を意味する。すなわち、JSDKプラットフェーム148によって更新されたプログラムの起動の成否が判定され、その判定結果が記録される。
続いて、JSDKプラットフォーム148は、バックアップエリア420に退避されているバックアップファイルを削除する(S218)。
なお、JSDKプラットフォーム148は、起動に失敗した場合、その原因を示す情報を(プログラム内において発生した例外の内容等)をエラー情報ファイルに格納して、HDD233に記録する。エラー情報ファイルは、図4のステップS108において、更新結果を示す情報として管理サーバ30に送信される。管理サーバ30側では、エラー情報ファイルの内容に基づいて、更新処理の失敗の原因を把握することができ、どのようにリトライすべきかを判断することができる。
ところで、更新処理中に、ユーザによって電源を切られた場合や、停電等が発生した場合は、当該更新処理は中断してしまう。かかる場合において、複合機101に再度電源が投入されたときの処理手順について説明する。図6は、更新処理が正常に終了しなかったときの複合機の再起動時の起動処理を説明するためのフローチャートである。
SAS183は、起動されると、更新用データ保存領域における更新用データ310の有無を確認する(S301)。更新用データ310が存在しない場合(S302でNo)、通常の起動処理が実行される(S307)。なお、ステップS301の処理は、図5におけるステップS201の処理に相当する。すなわち、SAS183は、リブートによって複合機101が起動される際だけでなく、ユーザによって電源が投入される際にも複合機更新用データ310の存在を確認する。したがって、仮に図4のステップS106のリブート処理が回避された場合であっても、その後に電源が投入された際に、図5の処理は実行される。
更新用データ310が存在する場合(S302でYes)、SAS183は、状態ファイル記録領域における状態ファイル410の有無を確認する(S303)。状態ファイル記録領域にphase_1ファイル〜phase4ファイルまでのいずれかのファイルが存在する場合(S304でphase_1〜phase_4)、更新処理は完了していないことになる。したがって、SAS183は、残っている状態ファイル410のファイル名に応じて、図5の更新処理のうち実行されていない残りの処理を実行する(S305)。
より詳しくは、phase_1ファイルのみが残っている場合、SAS183は、ステップS203以降の処理を実行する。phase_2ファイルのみが残っている場合、SAS183は、ステップS208以降の処理を実行する。phase_2ファイルとphase_1ファイルとが残っている場合、SAS183は、ステップS207以降の処理を実行する。phase_3ファイルのみが残っている場合、SAS183は、ステップS211以降の処理を実行する。phase_3ファイルとphase_2ファイルとが残っている場合、SAS183は、ステップS210以降の処理を実行する。phase_4ファイルのみが残っている場合、SAS183は、ステップS214以降の処理を実行する。phase_4ファイルとphase_3ファイルとが残っている場合、SAS183は、ステップS213以降の処理を実行する。
また、ステップS304において、phase_5のファイルが存在する場合、更新処理は完了したが、何らかの原因(例えば、ファイル破壊、メモリ等のリソース不足等の発生等)によりCVM191又はJSDKプラットフォーム148の起動に失敗したことが考えられる。phase_5ファイルは、JSDKプラットフォーム148の起動に成功したときに初めて削除されるからである。したがって、この場合、複合機101は、リカバリ処理を実行する(S306)。リカバリ処理の詳細については後述する。
更に、ステップS304において、いずれの状態ファイル410も存在しない場合、更新処理は正常に行われ、かつ、CVM191及びJSDKプラットフォーム148も正常に起動されたことになる。したがって、この場合、複合機101は、通常の起動処理を実行する(S307)。
次に、図6のステップS307におけるリカバリ処理の詳細について説明する。図7は、リカバリ処理の処理手順を説明するためのシーケンス図である。
状態ファイル記録領域にphase_5ファイルの存在を検出した場合、SAS183は、バックアップエリア420に退避してあるバックアップファイルを復元する(S371)。すなわち、バックアップファイルを元の場所にコピーすることにより、更新対象データ320の状態を、更新処理の実行される前に戻し、更新前におけるプログラムを起動対象とする。
続いて、通常の起動処理として、CVM191→JSDKプラットフォーム148の順でそれぞれのプロセス又はスレッドが起動される。ここで、CVM191及びJSDKプラットフォーム148等は、正常に起動されていた状態に復元されているため正常に起動される可能性が高い。JSDKプラットフォーム148は、起動後、phase_5ファイルの存在を確認し(S372)、phase_5ファイルが存在する場合、phase_5ファイルを削除する(S373)。続いて、JSDKプラットフォーム148は、バックアップエリア420におけるバックアップファイルを削除する(S373)。
上述したように、本実施の形態における複合機101によれば、状態ファイル410に基づいて更新処理の進捗状況を管理する。したがって、更新処理が何らかの理由により中断した場合であっても、電源の再投入時に実行できなかった処理を識別し、残りの処理を実行することができる。
また、複合機101は、phase_5ファイルに基づいてファイル破壊、リソース不足等によりCVM191やJSDKプラットフォーム148等が起動できなかったことを検出し、リカバリ処理を実行する。したがって、少なくとも更新処理が実行される前の状態での動作が可能となる。特に、本実施の形態において更新対象とされ得るプログラムは、アプリケーションの実行環境を提供(実現)するプログラムである。したがって、当該プログラムの状態が適切にリカバリされることにより、複合機101のアプリケーションが動作不能なってしまうといった致命的な事態の発生を回避することができる。
また、JSDKプラットフォーム148は、リモート更新処理において管理サーバ30との通信を行うリモート更新用通信部1481を含むプログラムである。したがって、JSDKプラットフォーム148が起動できない場合、改めてリモート更新処理によって、更新用データ310を複合機101に送り込むことはできない。このように、本実施の形態における技術は、リモート更新処理によって通信機能を担う部分が更新対象となり得る場合に特に効果的であると言える。なお、リカバリ処理の要否の判断(すなわち、phase_5ファイルの存在のチェック)及びリカバ処理は、更新処理の実行後、複合機101の再起動時ではなく、更新処理の過程において、所定時間の経過後に行うようにしてもよい。
ところで、本実施の形態では、更新処理の進捗状況を管理するための情報として、状態ファイル410のファイル名を用いたが、進捗状況を管理するための情報は、必ずしも状態ファイル410のファイル名に限定されない。例えば、一つのファイル内に進捗状況を書き込んでもよい。但し、一つのファイルに進捗状況を逐次書き込むような方法は、進捗状況の書き込み中に電源が落とされた場合、当該ファイルが破壊されてしまい、再起動時において進捗状況が識別できなくなってしまう可能性がある。そこで、本実施の形態では、かかる事態の発生を回避するため、更新処理のフェーズの進行に応じて、常に次のフェーズの状態ファイル410を作成した後に、前のフェーズの状態ファイル410を削除するといった手順で進捗状況の管理を行っているのである。このような手順であれば、必ずしもファイルではなく、例えば、NVRAM等の不揮発性のメモリに対してフェーズを示すフラグ情報を記録するようにしてもよい。
なお、状態ファイル410のファイル名に基づいて更新処理の進捗状況が把握され、状態ファイル410のファイル名の改竄による不正な複製等が実行されるのを防止するため、状態ファイル410のファイル名について、機体番号等に基づく暗号化を行うようにしてもよい。
また、本実施の形態では、更新対象とされるファイルの複製を生成することにより、更新前の状態のバックアップを行う例について説明したが、バックアップの方法はこれだけに限られない。例えば、更新対象とされるファイルと異なる記憶領域に更新後のファイル(プログラム)を生成することにより、実質的に更新前の状態をバックアップするようにしてもよい。すなわち、更新前のファイル(プログラム)が保存された状態において、更新処理が行われればよい。
ところで、上記実施の形態では、更新対象データ320に含まれるJSDKプラットフォーム148のリモート更新用通信部1481によって更新用データ310の受信等、管理サーバ30との通信が行われる例を説明した。但し、管理サーバ30との通信は、JSDKプラットフォーム148とは別のプロセスとして起動されるプログラムによって実行されてもよい。
図8は、JSDKプラットフォームとは別のプロセスによって管理サーバとの通信が行われる場合の画像形成装置に対する更新処理の概要を説明するためのブロック図である。図8では、JSDKプラットフォームとは別プロセスであるSAS183が、管理サーバ30との通信(更新データ310の受信等)を行う。したがって、JSDKプラットフォーム148において、リモート更新用通信部1481は不要となる。
この場合、SAS183は、更新用データ310の受信に応じて更新対象用データ310に含まれる各プログラムのプロセスを停止し、その状態において、スクリプトパーサ182によるスクリプトファイルの解釈に基づいて更新処理を実行する。更新処理の完了後、SAS183は、停止したプロセスを再起動する。プロセスの再起動においてJSDKプラットフォーム148の起動に失敗したら、SAS183は、JSDKプラットフォーム148以前に起動されたプロセスを停止し、リカバリ処理を実行した後、改めて、各プロセスを起動する。
したがって、この場合、各プロセスが安全に停止できることが保証されれば、複合機101のリブート(管理サーバ30からのリブート要求)は不要とすることができる。なお、更新処理専用のプログラム(プロセス)によって、図8におけるSAS183の機能を実現してもよい。
また、図8の形態において、バックアップファイルを複合機101内に保持するのではなく、管理サーバ30に保持させるようにしてもよい。この場合、例えば、SAS183が、バックアップファイルを管理サーバ30に送信すればよい。
また、スクリプトパーサ182は、更新処理を実行するプログラム(本実施の形態では、SAS183)のプラグインとして実装してもよい。プラグインとして実装することにより、スクリプトファイルの記述内容の仕様変更に対して柔軟に対応することができる。
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
30 管理サーバ
101 複合機
111 ハードウェア
112 ソフトウェア
113 複合機起動部
121 撮像部
122 印刷部
123 その他のハードウェア
131 アプリケーション
132 プラットフォーム
133 アプリケーションプログラムインタフェース
134 エンジンインタフェース
135 仮想アプリケーションサービス
141 コピーアプリ
142 プリンタアプリ
143 スキャナアプリ
144 ファクシミリアプリ
145 ネットワークファイルアプリ
146 CSDKアプリ
147 JSDKアプリ
148 JSDKプラットフォーム
151 コントロールサービス
152 システムリソースマネージャ
153 ハンドラ
161 ネットワークコントロールサービス
162 ファクシミリコントロールサービス
163 デリバリコントロールサービス
164 エンジンコントロールサービス
165 メモリコントロールサービス
166 オペレーションパネルコントロールサービス
167 サーティフィケーションコントロールサービス
168 ユーザディレクトリコントロールサービス
169 システムコントロールサービス
171 ファクシミリコントロールユニットハンドラ
172 イメージメモリハンドラ
182 スクリプトパーサ
183 SDKアプリケーションサービス
191 CVM
192 JNI
193 Native Library
201 コントローラ
202 オペレーションパネル
203 ファクシミリコントロールユニット
211 CPU
212 ASIC
221 NB
222 SB
231 MEM−P
232 MEM−C
233 HDD
234 メモリカードスロット
235 メモリカード
241 NIC
242 USBデバイス
243 IEEE1394デバイス
244 セントロニクスデバイス
1481 リモート更新用通信部
特開2005−269619号公報

Claims (10)

  1. プログラムを実行し前記プログラムを更新可能な機器であって、
    複数のプログラムのうちの少なくとも一つのプログラムを更新対象とする更新用データを外部装置より受信する受信手段と、
    前記更新用データに基づいて前記更新対象のプログラムの更新処理を実行する更新手段と、
    前記更新処理を構成する各段階の開始に応じ、当該段階の開始を示す第一の情報を記憶装置に記録し、前記更新処理の完了に応じ、前記更新処理の完了を示す第二の情報を前記記憶装置に記録する進捗情報記録手段と、
    前記更新処理の完了後、前記更新処理によって起動に失敗する可能性の有るプログラム中で、当該機器の起動過程において最後に起動されるプログラムが起動された場合に、前記第二の情報を削除する削除手段と、
    当該機器が起動されるときに、前記第二の情報が前記記憶装置に記録されている場合は、保存されている更新前のプログラムを起動対象とさせる復元手段とを有し、
    記最後に起動されるプログラムが、当該機器を前記削除手段として機能させることを特徴とする機器。
  2. 前記進捗情報記録手段は、開始される段階の開始を示す前記第一の情報を前記記憶装置に記録した後に、当該段階の前の段階の開始を示す前記第一の情報を前記記憶装置より削除することを特徴とする請求項1記載の機器。
  3. 前記進捗情報記録手段は、前記更新処理を構成する各段階の開始に応じ、当該段階の識別情報をファイル名とするファイルを当該段階の開始を示す前記第一の情報として、前記記憶装置に記録する請求項1又は2記載の機器。
  4. 前記更新手段による更新処理が中断された後、当該機器が再び起動されるときに、前記記憶装置に記録された前記第一の情報に基づいて、残りの更新処理を実行することを特徴とする請求項1乃至3いずれか一項記載の機器。
  5. プログラムを実行し前記プログラムを更新可能な機器が実行するプログラム更新方法であって、
    複数のプログラムのうちの少なくとも一つのプログラムを更新対象とする更新用データを外部装置より受信する受信手順と、
    前記更新用データに基づいて前記プログラムの更新処理を実行する更新手順と、
    前記更新処理を構成する各段階の開始に応じ、当該段階の開始を示す第一の情報を記憶装置に記録し、前記更新処理の完了に応じ、前記更新処理の完了を示す第二の情報を前記記憶装置に記録する進捗情報記録手順と、
    前記更新処理の完了後、前記更新処理によって起動に失敗する可能性の有るプログラム中で、当該機器の起動過程において最後に起動されるプログラムが起動された場合に、前記第二の情報を削除する削除手順と、
    当該機器が起動されるときに、前記第二の情報が前記記憶装置に記録されている場合は、保存されている更新前のプログラムを起動対象とさせる復元手順とを有し、
    記最後に起動されるプログラムが、当該機器に前記削除手順を実行させることを特徴とするプログラム更新方法。
  6. 前記進捗情報記録手順は、開始される段階の開始を示す前記第一の情報を前記記憶装置に記録した後に、当該段階の前の段階の開始を示す前記第一の情報を前記記憶装置より削除することを特徴とする請求項5記載のプログラム更新方法。
  7. 前記進捗情報記録手順は、前記更新処理を構成する各段階の開始に応じ、当該段階の識別情報をファイル名とするファイルを当該段階の開始を示す前記第一の情報として、前記記憶装置に記録する請求項5又は6記載のプログラム更新方法。
  8. 前記更新手順による更新処理が中断された後、当該機器が再び起動されるときに、前記記憶装置に記録された前記第一の情報に基づいて、残りの前記更新処理を実行することを特徴とする請求項5乃至7いずれか一項記載のプログラム更新方法。
  9. 請求項5乃至8いずれか一項記載のプログラム更新方法を前記機器に実行させるためのプログラム。
  10. プログラムを実行し前記プログラムを更新可能な機器と、前記プログラムにネットワークを介して接続される情報処理装置とを含むプログラム更新システムであって、
    前記機器は、
    複数のプログラムのうちの少なくとも一つのプログラムを更新対象とする更新用データを外部装置より受信する受信手段と、
    前記更新用データに基づいて前記更新対象のプログラムの更新処理を実行する更新手段と、
    前記更新処理を構成する各段階の開始に応じ、当該段階の開始を示す第一の情報を記憶装置に記録し、前記更新処理の完了に応じ、前記更新処理の完了を示す第二の情報を前記記憶装置に記録する進捗情報記録手段と、
    前記更新処理の完了後、前記更新処理によって起動に失敗する可能性の有るプログラム中で、当該機器の起動過程において最後に起動されるプログラムが起動された場合に、前記第二の情報を削除する削除手段と、
    当該機器が起動されるときに、前記第二の情報が前記記憶装置に記録されている場合は、保存されている更新前のプログラムを起動対象とさせる復元手段とを有し、
    記最後に起動されるプログラムが、当該機器を前記削除手段として機能させることを特徴とするプログラム更新システム。
JP2012225623A 2006-09-01 2012-10-11 機器、プログラム更新方法、プログラム、及びプログラム更新システム Active JP5494772B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012225623A JP5494772B2 (ja) 2006-09-01 2012-10-11 機器、プログラム更新方法、プログラム、及びプログラム更新システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006237985 2006-09-01
JP2006237985 2006-09-01
JP2012225623A JP5494772B2 (ja) 2006-09-01 2012-10-11 機器、プログラム更新方法、プログラム、及びプログラム更新システム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007216004A Division JP5112787B2 (ja) 2006-09-01 2007-08-22 情報処理装置、プログラム更新方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2013033498A JP2013033498A (ja) 2013-02-14
JP5494772B2 true JP5494772B2 (ja) 2014-05-21

Family

ID=47789286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012225623A Active JP5494772B2 (ja) 2006-09-01 2012-10-11 機器、プログラム更新方法、プログラム、及びプログラム更新システム

Country Status (1)

Country Link
JP (1) JP5494772B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6160688B2 (ja) * 2013-03-18 2017-07-12 富士通株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004348434A (ja) * 2003-05-22 2004-12-09 Mitsubishi Electric Corp 通信機能付き情報処理装置およびそのプログラム更新方法
JP2005215841A (ja) * 2004-01-28 2005-08-11 Mitsubishi Electric Corp ソフトウエア修正機能付き携帯電話端末装置

Also Published As

Publication number Publication date
JP2013033498A (ja) 2013-02-14

Similar Documents

Publication Publication Date Title
JP5112787B2 (ja) 情報処理装置、プログラム更新方法及びプログラム
US7533381B2 (en) Image forming apparatus and method for operating image forming apparatus by using remote application
EP1387264A2 (en) Image forming apparatus, a program adding method, and a recording medium
US20080244057A1 (en) Program management apparatus and method
JP5310246B2 (ja) 情報処理装置、情報処理システム、及びプログラム
US8429727B2 (en) Authentication control apparatus and authentication control method
JP5095325B2 (ja) 画像処理装置及び画像処理方法
JP2004303216A (ja) 情報処理装置,画像形成装置,プログラム起動時のエラー処理方法および記録媒体
JP2008171306A (ja) 電子装置およびプログラム
JP2007293737A (ja) ソフトウェア資源の登録管理方法、電子機器、プログラム
JP2004118237A (ja) 画像形成装置およびアプリケーションインストール方法
US20050151987A1 (en) Information processing apparatus, program recovery method, and recording medium storing a program for program recovery
JP2004165734A (ja) 画像形成装置及びファームウェアプログラム
JP4512565B2 (ja) 画像形成装置およびアプリケーションインストール方法
JP2009037589A (ja) プログラム判定装置、プログラム判定方法及びプログラム
JP5494772B2 (ja) 機器、プログラム更新方法、プログラム、及びプログラム更新システム
JP4246540B2 (ja) 画像形成装置およびプログラム実行方法
US9940334B2 (en) Image forming apparatus and control method thereof
JP2004303209A (ja) 画像形成装置、プログラム更新方法、及び更新用記憶媒体
JP2007295371A (ja) 画像形成装置及びコンピュータプログラム
JP2004303222A (ja) 情報処理装置,画像形成装置,プログラム起動方法および記録媒体
JP2005269439A (ja) 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2006271005A (ja) 画像形成装置およびアプリケーションインストール方法
JP4237511B2 (ja) 画像形成装置、プログラム更新方法
JP4021289B2 (ja) 画像形成装置、記憶領域確保方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130827

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140108

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: 20140204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140217

R151 Written notification of patent or utility model registration

Ref document number: 5494772

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151