(57)【要約】【課題】  装置にレスキューは搭載せずにプログラム復旧が可能な画像形成装置を提供すること。【解決手段】  ＭＣＳのＲＯＭ更新モードスレッドにより、更新データ領域の先頭アドレスと、該更新データ領域の領域サイズとを受け取ったＲＲＵアプリは、ネットワーク情報を除去し、更新データパケットをＭＣＳのＲＯＭ更新モードスレッドから通知された更新データ領域の先頭アドレスから展開し（Ｓ１１）、ＮＶＲＡＭのネットブートアドレスの設定の読み出しを行う。ネットブートアドレスが正当であるか、実際にｔｆｔｐプロトコルでアクセスを行う（Ｓ１２）。成功するとプログラム記憶媒体から通常システムのコピーをｔｆｔｐプロトコルでｐｕｔを行う（Ｓ１４）。プログラム記憶媒体がフラッシュメモリであった場合は、メモリの吸い出しを行った後にｐｕｔを行う。また、プログラム記憶媒体がフラッシュカードであった場合はファイルをそのままの状態でｐｕｔする。【選択図】  図１０
2006103290.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを記憶するプログラム記憶手段と、
このプログラム記憶手段に記憶されているプログラムに係る更新データを受信する更新データ受信手段と、
前記更新データ受信手段において受信した前記更新データに基づいて、前記プログラム記憶手段に記録されている対応するプログラムを更新するプログラム更新手段と、を備えた複合機能を有するネットワーク対応の画像形成装置であって、
当該画像形成装置が起動されていたときに、前記プログラム更新手段によるプログラムの更新が中断されたかどうかを判断する更新中断判定手段と、
前記更新中断判定手段における判定結果に応じて、対応するオペレーティングシステムを起動するＯＳ起動手段を備え、
このＯＳ起動手段が送受信機能を有することを特徴とする画像形成装置。
【請求項２】
前記プログラム更新手段においてプログラムが更新される前に、当該画像形成装置からのデータ受信可能な手段を有する他の画像処理装置を判定する判定手段と、
この判定手段の判定結果に応じて、前記他の画像処理装置の記憶媒体に対して更新される前のプログラムを記録するために送信する送信手段と、を備え、
前記ＯＳ起動手段が前記他の画像形成装置内の記憶媒体から更新前プログラムを受信し、受信した前記プログラムを起動し、
起動された前記プログラムが再度更新データを受信し、この更新データに含まれるプログラムで書き換えることを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記判定手段が、前記他の画形成装置内の記憶媒体に起動可能なプログラムが有ることを確認する確認機能を備えていることを特徴とする請求項２記載の画像形成装置。
【請求項４】
前記ＯＳ起動手段は、更に前記起動可能なプログラムと対応する電子署名とで電子認証を行うことを特徴とする請求項１、請求項２または請求項３記載の画像形成装置。
【請求項５】
前記送信手段が更新される前のプログラムを送信する際、同時に前記電子署名を送信することを特徴とする請求項４記載の画像形成装置。
【請求項６】
前記ＯＳ起動手段が前記他の画像形成理装置内の記憶媒体から更新前プログラムを受信する際、同時に前記電子署名も受信することを特徴とする請求項５記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを用いたプログラム更新のエラー復旧対処が迅速に行える画像形成装置に関する。
【背景技術】
【０００２】
近年、プリンタ、コピー、ファクシミリ、スキャナを１つの筺体に収納した複合機が広く普及している。
このような複合機においては、多数の機能を実現する必要から不定期かつ頻繁にプログラムの更新をすることが求められていた。
そこで、出願人は、プログラムの更新作業を迅速、正確かつ容易に行う技術として、以下の発明を提案している。
【特許文献１】特開平２００３−１８２１９１
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、リモートでファームウェアの更新を行う場合、システムの書き換えを誤ると再起動できなくなるという問題があった。
これに対して、画像形成装置として動作するためのプログラムの他に、別途更新中断時の復旧のためのプログラム復旧プログラム（レスキュー）を用いる方法可能であるが、これでは、情報処理装置内にプログラム復旧を行うレスキューが必ず必要であり、記憶媒体の必要容量が増大していた。また、現在のレスキューはプラットフォームの一部を搭載しているためにサイズ削減には限界があった。
そこで、本発明では、画像形成装置にプラットフォームを使用するレスキューは搭載せずにプログラム復旧が可能な画像形成装置を提供することを目的としている。
【課題を解決するための手段】
【０００４】
請求項１記載の発明では、プログラムを記憶するプログラム記憶手段と、このプログラム記憶手段に記憶されているプログラムに係る更新データを受信する更新データ受信手段と、前記更新データ受信手段において受信した前記更新データに基づいて、前記プログラム記憶手段に記録されている対応するプログラムを更新するプログラム更新手段と、を備えた複合機能を有するネットワーク対応の画像形成装置であって、当該画像形成装置が起動されていたときに、前記プログラム更新手段によるプログラムの更新が中断されたかどうかを判断する更新中断判定手段と、前記更新中断判定手段における判定結果に応じて、対応するオペレーティングシステムを起動するＯＳ起動手段を備え、このＯＳ起動手段が送受信機能を有することを特徴とする。
請求項２記載の発明では、請求項１記載の発明において、前記プログラム更新手段においてプログラムが更新される前に、当該画像形成装置からのデータ受信可能な手段を有する他の画像処理装置を判定する判定手段と、この判定手段の判定結果に応じて、前記他の画像処理装置の記憶媒体に対して更新される前のプログラムを記録するために送信する送信手段と、を備え、前記ＯＳ起動手段が前記他の画像形成装置内の記憶媒体から更新前プログラムを受信し、受信した前記プログラムを起動し、起動された前記プログラムが再度更新データを受信し、この更新データに含まれるプログラムで書き換えることを特徴とする。
【０００５】
請求項３記載の発明では、請求項２記載の発明において、前記判定手段が、前記他の画形成装置内の記憶媒体に起動可能なプログラムが有ることを確認する確認機能を備えていることを特徴とする。
請求項４記載の発明では、請求項１、請求項２または請求項３記載の発明において、前記ＯＳ起動手段は、更に前記起動可能なプログラムと対応する電子署名とで電子認証を行うことを特徴とする。
【０００６】
請求項５記載の発明では、請求項４記載の発明において、前記送信手段が更新される前のプログラムを送信する際、同時に前記電子署名を送信することを特徴とする。
請求項６記載の発明では、請求項５記載の発明において、前記ＯＳ起動手段が前記他の画像形成理装置内の記憶媒体から更新前プログラムを受信する際、同時に前記電子署名も受信することを特徴とする。
【発明の効果】
【０００７】
請求項１および請求項２記載の発明では、画像形成装置の記憶媒体内にプログラム復旧手段を必要としないので、記憶媒体のサイズを低減することができる。
請求項３記載の発明では、他の画像形成装置への不要なプログラムの送信を行わないのでネットワークの負荷を低減でき、記憶媒体の容量も圧迫しないで済む。
請求項４記載の発明では、プログラムの改ざんの確認が行えるので、改ざんプログラムの起動を防止することができる。
【０００８】
請求項５記載の発明では、送信中にプログラムの改ざんが行われていないことが確認できるので、プログラムの改ざんを防止することができる。
請求項６記載の発明では、受信中にプログラムの改ざんが行われていないことが確認できるので、プログラムの改ざんを防止することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の好適な実施の形態を図１ないし図１５を参照して、詳細に説明する。
図１は、本実施例に係る画像形成装置を取り巻くネットワーク構成例を示した図である。このネットワークは、サーバー５０と、リモートホスト６０および複合機１００をデータの送受信可能に接続している。
サーバ５０は、ｔｆｔｐサーバ他各種ネットワーク設定がなされている。セキュリティー上の問題からｔｆｔｐでアクセス可能なディレクトリは指定しておく。
リモートホスト６０には、Ｗｉｎｄｏｗｓ（登録商標）等のＯＳ（オペレーティング・システム）がインストールされており、ｔｆｔｐアプリケーションの使用が可能になっている。
画像形成装置である複合機１００は、ネットワークＩ／Ｆ（インターフェイス）で接続されている。また、複合機１００は、ｔｆｔｐ等標準的なネットワークプロトコルを有している。
【００１０】
図２は、複合機１００の構成を示したブロック図である。なお、図２では、後述するＲＯＭモニタ４１０によって、汎用ＯＳ１２１が起動された場合の複合機の構成の一例を示している。
図２に示すように、複合機１００は、プロッタ１０１と、スキャナ１０２と、ＦＣＵ（Ｆａｘ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１０３と、その他ハードウェアリソース１０４等を有すると共に、汎用ＯＳ１２１と、プラットフォーム１２０と、アプリケーション１３０と、から構成されるソフトウェア群１１０と、電源投入時に実行される複合機起動部１４０と、を備えている。
【００１１】
複合機起動部１４０は、複合機１００の電源投入時にまず始めに実行され、後述する更新中断情報に更新情報が格納されていない場合及び、又は更新中断情報にメンテナンスフラグが格納されている場合、図２に示される汎用ＯＳ１２１や、プラットフォーム１２０、アプリケーション１３０を起動する。
プラットフォーム１２０は、アプリケーション１３０からの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一又は複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）１２３と、を有する。
コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）１２２と、ＥＣＳ（エンジンコントロールサービス）１２４と、ＭＣＳ（メモリコントロールサービス）１２５と、ＯＣＳ（オペレーションパネルコントロールサービス）１２６と、ＦＣＳ（ファックスコントロールサービス）１２７と、ＮＣＳ（ネットワークコントロールサービス）１２８と、から構成される。
なお、プラットフォーム１２０は、あらかじめ定義された関数によりアプリケーション１３０から処理要求を受信可能とするアプリケーションプログラムインターフェース（ＡＰＩ）を有する。
【００１２】
汎用ＯＳ１２１は、ＵＮＩＸ（登録商標）等の汎用オペレーティングシステムであり、プラットフォーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
なお、図２に示される汎用ＯＳ１２１は、プロセスに通常モードスレッドと、ＲＯＭ更新モードスレッドとが存在する場合、初めに、各プロセスの通常モードスレッドを実行するようになっている。
ＭＣＳ１２５は、メモリの制御を行うプロセスとして起動される。ＭＣＳ１２５のプロセスは、画像メモリの取得及び解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮及び伸張等のコピー、プリンタ、ファクシミリ及びスキャナ等の複合サービスを行う通常モードスレッドと、後述するリモートＲＯＭ更新アプリ１１７によって更新データパケットから展開された更新データを格納する更新データ領域をＳＤＲＡＭ２０３等に確保する等の処理を行うＲＯＭ更新モードスレッドとを有している。
【００１３】
ＯＣＳ１２６のプロセスは、オペレータと本体制御間の情報伝達手段となる操作パネル（オペレーションパネル１３１０）の制御を行う通常モードスレッドと、ＲＯＭの更新に係る情報等を操作パネル１３１０に表示する処理等を行うＲＯＭ更新モードスレッドと、を有している。
ＦＣＳ１２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読み取り、ファクシミリ受信印刷、複合送受信を行うためのＡＰＩを提供する等の処理を行う通常モードスレッドと、かかる機能を実行せずに単に起動されるだけのＲＯＭ更新モードスレッドと、を有している。
【００１４】
ＮＣＳ１２８は、ネットワークＩ／Ｏを必要とするアプリケーションに対して、共通に利用できるサービスを提供するためのプロセスである。ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行ったりする等の処理を行う通常モードスレッドを有している。
また、ＮＣＳ１２８の通常モードスレッドでは、さらに、ネットワークに接続された、例えば複合機開発元のホストコンピュータやアプリケーション開発元のサードベンダ等のリモートホストから、フラッシュメモリのＲＯＭ更新データパケットを受信する。
なお、ＮＣＳ１２８のプロセスは、フラッシュメモリのＲＯＭ更新データパケットに含まれる更新データを、後述するリモートＲＯＭ更新アプリ１１７に渡す等の処理を行う、ＲＯＭ更新モードスレッドも有している。
【００１５】
ＳＲＭ１２３のプロセスは、ＳＣＳ１２２と共にシステムの制御及びリソースの管理を行うものである。ＳＲＭ１２３のプロセスは、スキャナ部やプリンタ部等のエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロニクスＩ／Ｆ、ＩＥＥＥ１３９４  Ｉ／Ｆ、ＵＳＢ  Ｉ／Ｆ、ＮＩＣ  Ｉ／Ｆ等）のハードウェア資源を利用する上位層からの要求に従って調停を行い、実行制御する等の処理を行う通常モードスレッドと、かかるリソース管理を実行せずに単に起動されるだけのＲＯＭ更新モードスレッドを有している。
具体的には、このＳＲＭ１２３の通常モードスレッドは、要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。
また、ＳＲＭ１２３の通常モードスレッドは、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成等）を直接実施している。
【００１６】
ＳＣＳ１２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御等の処理を行う通常モードスレッドを有している。
また、ＳＣＳ１２２の通常モードスレッドは、後述するリモートＲＯＭ更新アプリ１１７からの要求に基づいて、プリンタアプリ１１１、コピーアプリ１１２、ファックスアプリ１１３、スキャナアプリ１１４、ネットファイルアプリ１１５や、ＥＣＳ１２４、ＭＣＳ１２５、ＯＣＳ１２６、ＦＣＳ１２７、ＮＣＳ１２８等にＲＯＭ更新モードスレッドの起動依頼を通知する。
また、ＳＣＳ１２２のプロセスは、ＲＯＭ更新モードスレッドも有し、該ＲＯＭ更新モードスレッドは、ＳＤＲＡＭ２０３等に展開された更新データの中から、複合機１００で動作するアプリケーション１３０、プラットフォーム１２０の構成に応じた更新データを選定する処理を行ったり、後述するＲＯＭ更新部４３０を起動したりする処理を行う。
【００１７】
ＥＣＳ１２４のプロセスは、プロッタ１０１、スキャナ１０２、ＦＣＵ（Ｆａｘ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）１０３、その他ハードウェアリソース１０４、のエンジンの制御等の処理を行う通常モードスレッドと、このようなエンジン制御を行わずに単に起動されるだけのＲＯＭ更新モードスレッドと、を有している。
このように、ＳＲＭ１２３、ＥＣＳ１２４、ＦＣＳ１２７の各ＲＯＭ更新モードスレッドはいずれも単に起動されるだけであるが、これは、ＲＯＭ更新処理時に、複合機内部で動作するコントロールサービスの存在を示すために起動されるようになっている。
【００１８】
一方、ＳＣＳ１２２、ＭＣＳ１２５、ＯＣＳ１２６、ＮＣＳ１２８の各ＲＯＭ更新モードスレッドも、それぞれＲＯＭ更新に必要な処理を行うと共に、複合機内部で動作するコントロールサービスの存在を示すために起動されるようになっている。
アプリケーション１３０は、ページ記述言語（ＰＤＬ）、ＰＣＬ及びポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、ＮＣＳ１２８によりネットワーク経由で受信した更新データパケットを更新データに展開し、その更新データをＭＣＳ１２５のＲＯＭ更新モードスレッドによって確保されたＳＤＲＡＭ２０３等の更新データ領域に格納する処理等を行うリモートＲＯＭ更新アプリ（以下、ＲＲＵアプリという）１１７と、を有している。
【００１９】
これらの各アプリも、プラットフォーム１２０と同様にそれぞれプロセスとして起動され、ＲＲＵアプリ１１７以外の各アプリは、各々上述したような処理を行う通常モードスレッドと、当該自身の存在を示すために起動されるＲＯＭ更新モードスレッドと、を有する。
【００２０】
図３は、複合機のハードウェア構成を示すブロック図である。以下、複合機１００のハードウェア構成の一例を図３を参照して説明する。
図３に示すように、複合機１００は、オペレーションパネル１３１０、ＦＡＸコントロールユニット（ＦＣＵ）１０３、スキャナ１０２等が接続されているエンジン部１３５０、及びプロッタ１０１とコントローラ１３００のＡＳＩＣ１３０１とをＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス１３０９等で接続した構成となっている。
【００２１】
コントローラ１３００は、ＡＳＩＣ１３０１にＮＶＲＡＭ２０８、ＳＤＲＡＭ２０３、フラッシュメモリ２０４、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１３０３等を接続している。また、このＡＳＩＣ１３０１とＣＰＵ１３０４とをＣＰＵチップセットのＮＢ１３０５を介して接続している。
このように、ＮＢ１３０５を介して接続する理由は、ＣＰＵ１３０４自体のインターフェースが公開されていないためである。
ここで、このＡＳＩＣ１３０１とＮＢ１３０５は、単にＰＣＩを介して接続されているのではなく、ＡＧＰ１３０８を介して接続されている。このようにＡＧＰ１３０８を介して接続することとした理由は、この複合機１００が図２に示したプラットフォーム１２０やアプリケーション１３０を形成する複数のプロセスを実行制御する関係上、これらを低速のＰＣＩで接続したのでは、パフォーマンスが低下するためである。
【００２２】
ＣＰＵ１３０４は、複合機１００の全体制御を行うものであり、具体的には、汎用ＯＳ１２１上でＳＲＭ１２３や、プラットフォーム１２０を形成するＳＣＳ１２２、ＥＣＳ１２４、ＭＣＳ１２５、ＯＣＳ１２６、ＦＣＳ１２７、ＮＣＳ１２８をそれぞれプロセスとして起動して実行させると共に、アプリケーション１３０を形成するプリンタアプリ１１１、コピーアプリ１１２、ファックスアプリ１１３、スキャナアプリ１１４、ネットファイルアプリ１１５、ＲＲＵアプリ１１７を起動して実行させる。
なお、例えば、複合機１００が（後述する図１０）に示すような構成の場合、ＣＰＵ１３０４は、汎用レスキューＯＳ１３１上でＳＲＭ１２３や、プラットフォーム１２０を形成するＳＣＳ１２２、ＭＣＳ１２５をそれぞれプロセスとして起動して実行させる。
【００２３】
ＮＢ１３０５は、ＣＰＵ１３０４と、システムメモリ１３０６と、ＳＢ１３０７と、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１３４１と、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）１３３０と、ＩＥＥＥ１３９４１３４０と、セントロニクス１３４２と、ドライバＩ／Ｆ１３４３と、ＡＳＩＣ１３０１と、を接続するためのブリッジである。
システムメモリ１３０６は、複合機の描画用メモリ等として用いるメモリであり、ＳＢ１３０７は、ＮＢ１３０５と周辺デバイスとを接続するためのブリッジである。ＳＢ１３０７は、コントローラ１３００での時間を計測するＲＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）を有する。また、ＳＢ１３０７は、内部にＵＳＢホストを有し、例えば、ＵＳＢ接続のカメラを接続することで画像データを取り込むことが可能であり、また、他のＵＳＢターゲットからデータを受け取ることも可能である。
【００２４】
ドライバＩ／Ｆ（インターフェイス）１３４３は、挿入されたプログラム又はアプリケーション等が格納されている記録媒体から、プログラム又はアプリケーション等を読み込んで、複合機１００に搭載するのに用いるＩ／Ｆである。なお、例えば記録媒体としては、ＳＤメモリカード、スマートメディア、マルチメディアカード、コンパクトフラッシュ（登録商標）等が用いられる。
ＳＤＲＡＭ２０３は、更新データパケットをネットワーク経由で受信したときに、受信した更新データパケットから展開される更新データを格納する更新データ領域が確保される不揮発性メモリである。
ＮＶＲＡＭ２０８は、例えば後述する更新中断情報等を格納する不揮発性メモリである。
フラッシュメモリ（以下、フラッシュＲＯＭという）２０４には、上述の各アプリ、プラットフォームを構成する各コントロールサービスやＳＲＭ１２３の各プログラムが格納されている。複合機１００は、これらの各プログラムがあらかじめフラッシュＲＯＭ２０４に組み込まれた状態で出荷され、ＲＯＭ更新データパケットの受信によって、フラッシュＲＯＭ２０４のプログラムが更新されるという、リモートＲＯＭ更新の処理が実行されるようになっている。
【００２５】
ＨＤＤ１３０３は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積、文書の蓄積を行うストレージであり、オペレーションパネル１３１０は、操作者からの入力操作の受け付け並びに操作者に向けた表示を行う操作部である。
ＡＳＩＣ１３０１には、ＮＶＲＡＭ２０８及びＳＤＲＡＭ２０３等を接続するためのＲＡＭインターフェースと、フラッシュＲＯＭ２０４を接続するためのＲＯＭインターフェースと、ＨＤＤ１３０３を接続するためのハードディスクインターフェースと、が設けられ、これらの記憶部に対して画像データの入出力を行う場合には、入出力先がＲＡＭインターフェース又はＲＯＭインターフェース又はハードディスクインターフェースに切り替えられる。
ＡＧＰ１３０８は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、システムメモリ１３０６に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にする。
【００２６】
以下、リモートＲＯＭ更新の全体処理の一例を、図４及び図５を用いて説明する。図４は、リモートＲＯＭ更新の全体処理を説明するための図である。
図４に示されるように、複合機１００が通常の複合サービスの動作を実行しているときは、通常モードスレッドと、ＲＯＭ更新モードスレッドと、を有している各アプリ、各コントロールサービス等は、いずれも通常モードスレッドを実行している。
この状態で、ネットワーク経由で複合機開発元のホストコンピュータやアプリケーション開発元のサードベンダのホストコンピュータ等のリモートホストから更新データパケットが送信されてくると、ＮＣＳ１２８の通常モードスレッドは、更新データパケットを受信する（シーケンスＳＱ１）。
ＮＣＳ１２８の通常モードスレッドは、受信したパケットの内容を判断し、更新データパケットであると判定すると、ＲＯＭの更新データパケットを受信した旨をＲＲＵアプリ１１７に通知する（シーケンスＳＱ２）。
【００２７】
ＮＣＳ１２８の通常モードスレッドよりＲＯＭの更新データパケットを受信した旨を通知されたＲＲＵアプリ１１７は、ＳＣＳ１２２の通常モードスレッドに対して、ＲＯＭ更新モードスレッドの移行依頼通知の発行を要求する（シーケンスＳＱ３）。
ＲＲＵアプリ１１７よりＲＯＭ更新モードスレッドの移行依頼通知の発行を要求されたＳＣＳ１２２の通常モードスレッドは、プリンタアプリ１１１、コピーアプリ１１２、ファックスアプリ１１３、スキャナアプリ１１４、ネットファイルアプリ１１５、ＥＣＳ１２４、ＭＣＳ１２５、ＯＣＳ１２６、ＦＣＳ１２７、ＮＣＳ１２８の各通常モードスレッドに対して、ＲＯＭ更新モードスレッドの移行依頼を通知する（シーケンスＳＱ４）。
【００２８】
図５は、リモートＲＯＭ更新の全体処理を説明するための図である。
図４のシーケンスＳＱ４によって、ＳＣＳ１２２の通常モードスレッドより、ＲＯＭ更新モードスレッドの移行依頼を通知されたプリンタアプリ１１１、コピーアプリ１１２、ファックスアプリ１１３、スキャナアプリ１１４、ネットファイルアプリ１１５、ＥＣＳ１２４、ＭＣＳ１２５、ＯＣＳ１２６、ＦＣＳ１２７、ＮＣＳ１２８は、図５に示されるようにそれぞれ通常モードスレッドからＲＯＭ更新モードスレッドに移行する。
また、ＲＲＵアプリ１１７は、更新データパケットを展開するのに必要な領域を得るために、ＭＣＳ１２５のＲＯＭ更新モードスレッドに対して、更新データ領域の確保を要求する（シーケンスＳＱ５）。
【００２９】
ＲＲＵアプリ１１７より更新データ領域の確保を要求されたＭＣＳ１２５のＲＯＭ更新モードスレッドは、例えば、ＳＤＲＡＭ２０３上に更新データ領域を確保して、該更新データ領域の先頭アドレスと、該更新データ領域の領域サイズと、をＲＲＵアプリ１１７に返す（シーケンスＳＱ６）。
ＭＣＳ１２５のＲＯＭ更新モードスレッドより、更新データ領域の先頭アドレスと、該更新データ領域の領域サイズと、を受け取ったＲＲＵアプリ１１７は、ネットワーク情報を除去し、また圧縮形式のデータを伸張した更新データパケットを、ＭＣＳ１２５のＲＯＭ更新モードスレッドから通知された更新データ領域の先頭アドレスから展開する。
【００３０】
以下、更新データ領域に展開された更新データパケットの一例を、図６を用いて説明する。図６は、複合機で受信した更新データパケットの展開後のデータ構造図である。
図６に示されるように、展開された更新データパケットは、ヘッダ部３０２と、データ部３０３と、を備えている。
ヘッダ部３０２は、更新するモジュールに対応するように、モジュールごとのヘッダブロックに分かれている。各ヘッダブロックには、次のヘッダブロックまでのオフセットである次ヘッダオフセットと、モジュールの更新データまでのオフセットである更新データオフセットと、更新データのサイズと、モジュールの識別情報であるモジュールＩＤと、該モジュールのフラッシュＲＯＭ２０４上での相対番地を示す更新先アドレスと、該モジュールのサイズである更新先領域長と、を備えている。
データ部３０３は、更新データがモジュールごとに格納されている。なお、各モジュールの更新データの先頭は、モジュールに対応するヘッダブロックの更新データオフセットにより参照できるようになっている。
【００３１】
図５に戻り、ＲＲＵアプリ１１７は、更新データパケットを展開した更新データ領域の先頭アドレスをＳＣＳ１２２の通常モードスレッドに通知し、更新データの選定を依頼する（シーケンスＳＱ８）。
ＲＲＵアプリ１１７より更新データの選定依頼を受け取ったＳＣＳ１２２の通常モードスレッドは、ＳＣＳ１２２のＲＯＭ更新モードスレッドを起動し、後述する図１２に示すような処理を行い、更新データを選定する（シーケンスＳＱ９）。
また、ＳＣＳ１２２のＲＯＭ更新モードスレッドは、後述する図８に示すＲＯＭ更新部４３０を起動し、後述する図１３に示すようなＲＯＭの更新処理を行う（シーケンスＳＱ１０）。
【００３２】
以下、複合機起動部１４０の構成の一例を、図７および図８を参照して説明する。図７は、複合機起動部の構成の一例を示すブロック図である。
図７に示されるように、複合機起動部１４０は、ＲＯＭモニタ４１０と、プログラム起動部４２０と、を備えている。
ＲＯＭモニタ４１０は、後述する更新中断情報に更新情報が格納されていない場合及び、又は更新中断情報にメンテナンスフラグが格納されていない場合、図２に示される汎用ＯＳ１２１を起動し、更新中断情報に更新情報が格納されている場合及び、又は更新中断情報にメンテナンスフラグが格納されている場合、後述する図９に示されるように、汎用レスキューＯＳ１３１を起動する。
プログラム起動部４２０は、汎用ＯＳ１２１又は汎用レスキューＯＳ１３１より呼び出され、サービス層起動部４２２と、アプリ起動部４２３と、起動情報設定部４２４と、を備えている。
【００３３】
サービス層起動部４２２は、プログラム起動部４２０が汎用ＯＳ１２１より呼び出された場合は、汎用ＯＳ１２１の起動情報を取得して、プラットフォーム１２０を起動する。一方、サービス層起動部４２２は、プログラム起動部４２０が汎用レスキューＯＳ１３１より呼び出された場合は、汎用レスキューＯＳ１３１の起動情報を取得して、後述する図１０に示すように、例えばＳＲＭ１２３や、ＭＣＳ１２５、ＳＣＳ１２２等を含むプラットフォーム１２０を起動する。
アプリ起動部４２３は、プログラム起動部４２０が汎用ＯＳ１２１より呼び出された場合に実行され、各アプリの起動情報を取得して各アプリを起動する。なお、後述する実施例４に示されるように、アプリ起動部４２３は、プログラム起動部４２０が汎用レスキューＯＳ１３１より呼び出された場合であっても実行され、ＲＲＵアプリ１１７の起動情報を取得してＲＲＵアプリ１１７を起動するようにしてもよい。
起動情報設定部４２４は、プラットフォーム１２０に含まれる各コントロールサービスやＳＲＭ１２３、アプリケーション１３０に含まれる各アプリのＲＯＭ更新モードスレッドが実行されたときに起動され、各コントロールサービスや、ＳＲＭ１２３及び各アプリの起動情報を取得して、取得した起動情報を環境変数に設定する。なお、起動情報設定部４２４は、後述する各コントロールサービスやＳＲＭ１２３、アプリケーション１３０に含まれる各アプリのレスキューモードスレッドが実行されたときにも起動され、各コントロールサービスや、ＳＲＭ１２３及び各アプリの起動情報を取得して、取得した起動情報を環境変数に設定するようにしてもよい。
【００３４】
以下、複合機１００のメモリ構成の例を、図８を用いて説明する。
図８に示されるように、例えば、更新中断情報は、ＮＶＲＡＭ空間に含まれ、ＲＯＭ空間には、ＲＯＭモニタ４１０に対応するプログラムや、図２に示したようなプラットフォーム１２０のプログラムに対応する通常システムや、各アプリのプログラムに対応するアプリ１、アプリ２等が含まれている。ＲＯＭ空間内のＲＯＭモニタ４１０は、通常システムの更新中断時の復旧動作に使用するため、書き換え不可となっている。
以下、図８に示したように、更新中断情報をＮＶＲＡＭ空間に格納する場合の更新中断情報のレイアウトの一例を、図９を参照して説明する。図９は、ＮＶＲＡＭに格納するネットワーク情報のレイアウトを説明するための図である。
図９に示されるように、ネットワーク情報は、自局ＩＰアドレスと、サブネットマスク、ゲートウェイアドレス、ネットワークブートアドレスをそれぞれ４バイトずつと、ＲＯＭモニタにネットブートを指示するネットブートフラグの１バイトを備えている。
【００３５】
次に、ＲＲＵアプリの処理手順を図１０のフローチャートを参照して説明する。
まず、ＲＲＵアプリは、更新データパケットを展開するのに必要な領域を得るための、ＭＣＳのＲＯＭ更新モードスレッドに対して、更新データ領域の確保を要求する（ステップ１０）。
ＭＣＳのＲＯＭ更新モードスレッドにより、更新データ領域の先頭アドレスと、該更新データ領域の領域サイズと、を受け取ったＲＲＵアプリは、ネットワーク情報を除去し、更新データパケットを、ＭＣＳのＲＯＭ更新モードスレッドから通知された更新データ領域の先頭アドレスから展開する（ステップ１１）。
次に、ＮＶＲＡＭのネットブートアドレスの設定の読み出しを行う。読み出したネットブートアドレスが正当であるか、実際にｔｆｔｐプロトコルでアクセスを行う（ステップ１２）。ここでのネットブートアドレスは、サーバのＩＰアドレスだったとして、ｔｆｔｐサーバ設定がなされていてアクセスが成功するものとする。
アクセスが成功すると（ステップ１３）、プログラム記憶媒体から通常システムのコピーをｔｆｔｐプロトコルでｐｕｔを行う（ステップ１４）。
【００３６】
もし、プログラム記憶媒体がフラッシュメモリであった場合は、メモリの吸い出しを行った後にｐｕｔを行う。また、プログラム記憶媒体がフラッシュカードであった場合はファイルをそのままの状態でｐｕｔする。さらに、すでにｐｕｔされているファイルがある場合は通常システムをｐｕｔをしなくてもいい。
その後、Ｐｕｔが正常に終了した場合、ＮＶＲＡＭのネットブートフラグをセットする（ステップ１５）。
最後に、更新データパケットを展開した更新データ領域の先頭アドレスをＳＣＳの通常モードスレッドに通知し、更新データの選定を依頼する（ステップ１６）。
【００３７】
次に、ＳＣＳのＲＯＭ更新部によるＲＯＭ更新処理終了後のリブート処理手順を図１１のフローチャートを参照して説明する。
まず、ＲＲＵアプリのＲＯＭ更新前処理シーケンスでセットしたＮＶＲＡＭのネットブートフラグをクリアする（ステップ２０）。その後、従来通りシステムリブートを行う（ステップ２１）。
【００３８】
次に、ＲＯＭモニタによるブート時のＯＳ切り換え処理手順を、図１２のフローチャート参照して説明する。
電源投入後（ステップ３０）、ＲＯＭモニタ４１０を起動し（ステップ３１）、ＲＯＭモニタ４１０は、ＮＶＲＡＭのネットブートフラグがセットされているかどうかを判定する。ＲＯＭモニタ４１０は、ＮＶＲＡＭのネットブートフラグがセットされていないと判定すると（ステップ３２；Ｎ）、汎用ＯＳ１２１を起動する（ステップ４０）。
そして、起動された汎用ＯＳ１２１は、プログラム起動部４２０を起動する（ステップ４１）。その後、プログラム起動部４２０に含まれるサービス層起動部４２２は、プラットフォーム１２０を起動する（ステップ４２）。
ここで、プログラム起動部４２０に含まれるアプリ起動部４２３は、アプリケーション１３０を起動し（ステップ４３）、一方、ＲＯＭモニタ４１０は、ｔｆｔｐ経由で通常システムのｇｅｔを行う（ステップ４４）。
【００３９】
一方、ＮＶＲＡＭのネットブートフラグがセットされていると判定すると（ステップ３２；Ｙ）、ネットブートサーバから通常システムを取得し（ステップ３３）、取得した通常システム内の汎用ＯＳ１２１を起動する（ステップ３４）。
そして、起動された汎用ＯＳ１２１は、ステップ３３において取得した通常システム内のプログラム起動部４２０を起動し（ステップ３５）、ここで起動されたプログラム起動部４２０に含まれるサービス層起動部４２２は、プラットフォーム１２０を起動する（ステップ３６）。
そして、ステップ３６において起動されたプログラム起動部４２０に含まれるアプリ起動部４２３は、アプリケーション１３０を起動し（ステップ３７）、続いて、複合機として起動する（ステップ３８）。
その後、ＳＣＳは、ＮＶＲＡＭのネットブートフラグがセットと更新中断情報の格納を確認すると、サービス、アプリに対して複合機機能停止通知を行い、ＲＲＵアプリ１１７は更新パケット受信待機状態になる。待機状態時、ＳＣＳは図１３に示す受信待機画面を表示する（ステップ３９）。
【００４０】
次に、第２の実施例を説明する。
以下、複合機１００のメモリ構成の例を、図１４参照して説明する。
図１４に示されるように、例えば、更新中断情報は、ＮＶＲＡＭ空間に含まれ、ＲＯＭ空間には、ＲＯＭモニタ４１０に対応するプログラムや、図２に示したようなプラットフォーム１２０のプログラムに対応する通常システム、それに対応する電子署名、公開鍵や、各アプリのプログラムに対応するアプリ１、アプリ２等とそれに対応する電子署名、公開鍵が含まれている。ＲＯＭ空間内のＲＯＭモニタ４１０は、通常システムの更新中断時の復旧動作に使用するため、書き換え不可となっている。
【００４１】
図１５は、プログラム起動部が行う電子署名チェックの処理手順を示したフローチャートである。プログラム起動部はまず、ＭＤａを作成する（ステップ５１）。ＭＤａは、通常システム、アプリ等プログラムのメッセージダイジェストである。プログラム起動部は次に、ＭＤｂを作成する（ステップ５２）。ＭＤｂは、電子署名（通常システム、アプリ等プログラムのメッセージダイジェストを秘密鍵により暗号化したもの）を公開鍵により復号化したメッセージダイジェストである。プログラム起動部はそして、通常システム、アプリ等プログラムの電子署名の正当性をＭＤａとＭＤｂとの照合をもって判断する（ステップ５３）。ここで、ＭＤａとＭＤｂとが一致すれば（ステップ５３；Ｙ）、通常システム、アプリ等プログラムの電子署名は正当であると判断される（ステップ５４）。一方、ＭＤａとＭＤｂとが一致しなければ（ステップ５３；Ｎ）、通常システム、アプリ等プログラムの電子署名は正当でないと判断される（ステップ５５）。
【００４２】
次に、ＲＲＵアプリの処理シーケンスについては、図１０と同様になる。ここで、実施例１との相違点は、ｔｆｔｐで通常システムのｐｕｔをする際、通常システム用の電子認証と公開鍵もｐｕｔを行う点のみである。
次に、ＲＯＭモニタによるブート時のＯＳ切り換え処理について、図１３と同様になる。実施例１との相違点は、ステップ１７に進み、ＲＯＭモニタ４１０は、ｔｆｔｐ経由で通常システムのｇｅｔを行うが、このとき通常システムの電子署名と、公開鍵をｇｅｔし、図１５の電子署名チェックを行う点のみである。
【図面の簡単な説明】
【００４３】
【図１】本実施例に係る画像形成装置を取り巻くネットワーク構成例を示した図である。
【図２】画像形成装置の構成を示すブロック図である。
【図３】複合機のハードウェア構成を示すブロック図である。
【図４】リモートＲＯＭ更新の全体処理を説明するための図である。
【図５】リモートＲＯＭ更新の全体処理を説明するための図である。
【図６】複合機で受信した更新データパケットの展開後のデータ構造図である。
【図７】複合機起動部の構成の一例を示すブロック図である。
【図８】複合機のメモリ構成の例を示した図である。
【図９】ＮＶＲＡＭに格納するネットワーク情報のレイアウトを説明するための図である。
【図１０】ＲＲＵアプリのＲＯＭ変更更新処理の手順を示したフローチャートである。
【図１１】ＳＣＳのＲＯＭ更新部によるＲＯＭ更新処理終了後のリブート処理の手順を示したフローチャートである。
【図１２】ブート時のＯＳ切り換え処理を説明するためのフローチャートである。
【図１３】受信待機画面の例を示した図である。
【図１４】メモリの構成の一例を示した図である。
【図１５】プログラム起動部が行う電子署名チェックに係るフローチャートである。
【符号の説明】
【００４４】
１００    複合機
１０１    プロッタ
１０２    スキャナ
１０３    ＦＣＵ（Ｆａｘ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）
１０４    その他ハードウェアリソース
１１０    ソフトウェア群
１１１    プリンタアプリ
１１２    コピーアプリ
１１３    ファックスアプリ
１１４    スキャナアプリ
１１５    ネットファイルアプリ
１１７    リモートＲＯＭ更新アプリ（ＲＲＵアプリ）
１２０    プラットフォーム
１２１    汎用ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）
１２２    ＳＣＳ
１２３    ＳＲＭ
１２４    ＥＣＳ
１２５    ＭＣＳ
１２６    ＯＣＳ
１２７    ＦＣＳ
１２８    ＮＣＳ
１３０    アプリケーション
１４０    複合機起動部
２０３    ＳＤＲＡＭ
２０４    フラッシュメモリ
２０８    ＮＶＲＡＭ
４１０    ＲＯＭモニタ
４２０    プログラム起動部
４２２    サービス層起動部
４２３    アプリ起動部
４２４    起動情報設定部
１３００  コントローラ
１３０１  ＡＳＩＣ
１３０３  ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）
１３０４  ＣＰＵ
１３０５  ＮＢ
１３０６  システムメモリ
１３０７  ＳＢ
１３０８  ＡＧＰ
１３０９  ＰＣＩバス
１３１０  オペレーションパネル
１３３０  ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）
１３４０  ＩＥＥＥ１３９４
１３４１  ＮＩＣ
１３４２  セントロニクス
１３４３  ドライバＩ／Ｆ
１３５０  エンジン部
【図１】
2006103290.tif 000003
【図２】
2006103290.tif 000004
【図３】
2006103290.tif 000005
【図４】
2006103290.tif 000006
【図５】
2006103290.tif 000007
【図６】
2006103290.tif 000008
【図７】
2006103290.tif 000009
【図８】
2006103290.tif 000010
【図９】
2006103290.tif 000011
【図１０】
2006103290.tif 000012
【図１１】
2006103290.tif 000013
【図１２】
2006103290.tif 000014
【図１３】
2006103290.tif 000015
【図１４】
2006103290.tif 000016
【図１５】
2006103290.tif 000017