(57)【特許請求の範囲】
【請求項１】
カスタマイズアプリをインストール可能な情報処理装置であって、
前記情報処理装置のプログラムを更新する更新手段と、
前記プログラムの更新履歴を表示する表示手段と、
前記カスタマイズアプリがインストールされた時刻又はアンインストールされた時刻を示すカスタマイズアプリ情報を記憶する記憶手段と、
前記カスタマイズアプリ情報に基づいて、前記更新履歴が示すプログラムによって前記情報処理装置が動作していたときの前記カスタマイズアプリの状態を、前記更新履歴に対応付けて表示するように前記表示手段を制御する制御手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記更新履歴として複数のバージョンのプログラムを表示し、当該複数のバージョンのプログラムそれぞれについて、当該プログラムが動作していたときの前記カスタマイズアプリの状態を表示するように前記表示手段を制御することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記更新手段は、前記複数のバージョンのプログラムのうちユーザに指定されたプログラムに基づいて、前記情報処理装置のプログラムを更新することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記制御手段は、ユーザに指定された時期に対応する更新履歴を表示するように前記表示手段を制御することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記カスタマイズアプリの状態は、前記カスタマイズアプリがインストールされていないこと、又は前記カスタマイズアプリが稼働中であることのいずれかを示すことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記更新履歴には、前記更新履歴が示すプログラムによって前記情報処理装置が動作していたときの動作情報が含まれることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記動作情報は、ジョブの実行回数、システムエラーの回数、総印刷枚数、前記プログラムの稼働期間のうち、少なくとも１つを示すことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
カスタマイズアプリをインストール可能な情報処理装置の制御方法であって、
前記情報処理装置のプログラムを更新する更新ステップと、
前記プログラムの更新履歴を表示する表示ステップと、
前記カスタマイズアプリがインストールされた時刻又はアンインストールされた時刻を示すカスタマイズアプリ情報を記憶する記憶ステップと、
前記カスタマイズアプリ情報に基づいて、前記更新履歴が示すプログラムで前記情報処理装置が動作していたときの前記カスタマイズアプリの状態を、前記更新履歴に対応付けて表示するように前記表示ステップを制御する制御ステップとを備えることを特徴とする情報処理装置の制御方法。
【請求項９】
カスタマイズアプリをインストール可能な情報処理装置の制御方法をコンピュータに実行させるプログラムであって、
前記情報処理装置の制御方法は、
前記情報処理装置のプログラムを更新する更新ステップと、
前記プログラムの更新履歴を表示する表示ステップと、
前記カスタマイズアプリがインストールされた時刻又はアンインストールされた時刻を示すカスタマイズアプリ情報を記憶する記憶ステップと、
前記カスタマイズアプリ情報に基づいて、前記更新履歴が示すプログラムで前記情報処理装置が動作していたときの前記カスタマイズアプリの状態を、前記更新履歴に対応付けて表示するように前記表示ステップを制御する制御ステップとを備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバからネットワークを介してダウンロードしたファームウェアの差分アップデートが可能な情報処理装置及びその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、デジタル複合機等の情報処理装置におけるファームウェア（情報処理装置が実行するプログラム）のアップデートは、サービスマンがリムーバブルメモリ等に記憶されたファームウェアを用いて実施するのが一般的である。一方、昨今はインターネット環境が整ったことから、ユーザがインターネットからファームウェアの更新部分のみを情報処理装置にダウンロードし、ファームウェアのアップデートを実施するようになってきている。
【０００３】
ユーザにアップデートしてもらうファームウェアは情報処理装置の製造者が品質保証したもので、アップデートしても情報処理装置の動作に問題がないことを前提としている。
【０００４】
しかしながら、情報処理装置の中には、情報処理装置の製造者以外が作成した、いわゆるサードパーティー製のプログラムがインストール可能なものがある。この場合、サードパーティー製のプログラムとアップデートするファームウェアとの組み合わせが情報処理装置の製造者によって品質保証されておらず、ファームウェアのアップデートが原因で情報処理装置の動作に異常が発生する可能性がある。そのため、情報処理装置のユーザが安心してアップデートを実施するには、情報処理装置の動作に異常があった場合に、ユーザ自身の手で確実にアップデート前の安定した状態に戻せることが望ましい。
【０００５】
ユーザが情報処理装置のファームウェアをアップデートする前の状態に戻すには、ユーザ自身が過去のどの時点のファームウェアの状態に戻すかを判断しなければならない。そのためには、ユーザが判断する材料となる情報を提供する必要がある。ユーザに提供する情報としては、過去の情報処理装置の動作状態の解析結果を基に、どの時点のファームウェアの状態に戻すかを提示することが考えられる。そして、情報処理装置の動作状態を解析することで適切な時点のファームウェアの状態に戻すという技術が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３４４０９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、情報処理装置にサードパーティー製のプログラムがインストールされている場合、情報処理装置の動作状態の解析だけでなく、ファームウェアとサードパーティー製のプログラムとの関係を踏まえた情報が必要になる。
【０００８】
また、ユーザがファームウェアのアップデートによる情報処理装置の異常に気付いても、ユーザにファームウェアを過去の適切な時点の状態に戻させるには、ユーザが異常に気付いた機能やジョブに対応する過去のアップデート時期の情報等を提供する必要がある。
【０００９】
本発明は、上記問題に鑑みて成されたものであり、ユーザによるプログラムの更新作業の利便性を向上させることができる情報処理装置及びその制御方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の情報処理装置は、カスタマイズアプリをインストール可能な情報処理装置であって、前記情報処理装置のプログラムを更新する更新手段と、前記プログラムの更新履歴を表示する表示手段と、前記カスタマイズアプリがインストールされた時刻又はアンインストールされた時刻を示すカスタマイズアプリ情報を記憶する記憶手段と、前記カスタマイズアプリ情報に基づいて、前記更新履歴が示すプログラムによって前記情報処理装置が動作していたときの前記カスタマイズアプリの状態を、前記更新履歴に対応付けて表示するように前記表示手段を制御する制御手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ユーザによるプログラムの更新作業の利便性を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係る情報処理装置が置かれたネットワーク環境の一例を示す図である。
【図２】図１の複合機１０２の概略構成を示すブロック図である。
【図３】図２のコントローラ部２０６の概略構成を示すブロック図である。
【図４】複合機１０２のファームウェア構成の概略を示す図である。
【図５】複合機１０２が有するモジュールリストの一例を示す図である。
【図６】複合機１０２におけるファームウェアのアップデート処理の流れを示すフローチャートである。
【図７】操作部に表示されるファームウェアのアップデート画面の一例を示す図であり、（ａ）はダウンロード開始画面、（ｂ）はインストール開始画面である。
【図８】複合機１０２におけるファームウェアのダウングレード処理の流れを示すフローチャートである。
【図９】操作部に表示されるファームウェアのダウングレード画面の一例を示す図である。
【図１０】複合機１０２で記録管理される履歴情報の一例を示す図であり、（ａ）はアップデート履歴情報、（ｂ）は影響範囲情報、（ｃ）はジョブ履歴情報、（ｄ）はシステム稼動履歴情報、（ｅ）はカスタマイズアプリ履歴情報である。
【図１１】複合機１０２で記録管理される動作実績情報の一例を示す図である。
【図１２Ａ】図８のステップＳ８０２におけるコンテンツリスト選択処理の流れを示すフローチャートである（その１）。
【図１２Ｂ】図８のステップＳ８０２におけるコンテンツリスト選択処理の流れを示すフローチャートである（その２）。
【図１３】コンテンツリスト選択処理の際に操作部に表示される画面の一例を示す図であり、（ａ）はコンテンツリスト検索方法選択画面、（ｂ）はアップデート時期入力画面である。
【図１４】コンテンツリスト選択処理の際に操作部に表示される画面の一例を示す図であり、（ａ）はコンテンツリスト選択画面、（ｂ）は機能選択画面である。
【図１５】コンテンツリスト選択処理の際に操作部に表示される画面の一例を示す図であり、（ａ）はジョブ履歴選択画面、（ｂ）はジョブ履歴検索方法選択画面である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１４】
図１は、本発明の実施形態に係る情報処理装置が置かれたネットワーク環境の一例を示す図である。
【００１５】
図１において、１０１はインターネット１００に接続されたコンテンツサーバである。１０２は、本実施形態に係る情報処理装置であって、例えば、顧客先に設置されたデジタル複合機（以下、単に「複合機」とする）である。複合機１０２は、複合機１０２は、イーサネット（登録商標）等のＬＡＮ（Local Area Network）２０１に接続され、ゲートウェイ２０２を介してインターネット１００に接続されている。なお、図示例では、ＬＡＮ２０１に１台の複合機１０２が接続されているが、複数台の複合機が接続されていても、他の装置、例えば、ＰＣ（パーソナルコンピュータ）等が接続されていてもよい。
【００１６】
コンテンツサーバ１０１は、顧客先の複合機１０２に対して、インターネット１００を経由して、ファームウェア（プログラム）の更新に必要なファームウェア構成情報や、ファームウェアの更新時にインストールする差分モジュールを配信する機能を有する。なお、本実施形態においてファームウェアの更新とは、ファームウェアのアップデートとダウングレードを含むものとする。
【００１７】
図２は、図１の複合機１０２の概略構成を示すブロック図である。
【００１８】
複合機１０２は、原稿から画像を読み取るための読取処理を行うリーダ部２０３と、該読取処理により得られた画像データ等の出力（印刷）処理を行うプリンタ部２０４とを有する。また、複合機１０２は、画像データや各種機能の表示などを行う液晶パネルと操作キーやボタンが配置された操作部２０５を備える。また、これら各部に接続され、当該各部の制御を行うコントローラ部２０６を備える。コントローラ部２０６はＬＡＮ２０１に接続する。
【００１９】
リーダ部２０３は、原稿用紙を搬送する原稿給紙ユニット（ＤＦユニット）２０７と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナユニット２０８とを有する。
【００２０】
プリンタ部２０４は、記録用紙を収容する複数段の給紙カセットを備えた給紙ユニット２０９と、画像データを記録用紙に転写、定着するマーキングユニット２１０と、印字された記録用紙を外部に排出する排紙ユニット２１２とを有する。排紙ユニット２１２は、複合機１０２の外部にあるアクセサリユニット２１３に接続することができ、記録用紙をアクセサリユニット２１３へ排出することができる。アクセサリユニット２１３は、ソート処理やステイプル処理などのフィニッシング処理を行い、記録用紙を排出する。また、ＦＡＸ機能付きの複合機の場合は、アクセサリユニット２１３にＦＡＸ送信部が配備される。
【００２１】
図３は、図２のコントローラ部２０６の概略構成を示すブロック図である。
【００２２】
メインコントローラ３２は、ＣＰＵ３３とバスコントローラ３４を内蔵し、後述する各機能ブロックを制御する。また、メインコントローラ３２は、ＤＲＡＭ＿Ｉ／Ｆ３７を介してＤＲＡＭ３８に接続されている。また、メインコントローラ３２は、コーデックＩ／Ｆ３９を介してコーデック（Codec）４０に接続されている。さらに、メインコントローラ３２は、ネットワークＩ／Ｆ４１を介してネットワークコントローラ（Network Controller）４２に接続されている。
【００２３】
ＤＲＡＭ３８は、ＣＰＵ３３が動作するための作業領域や画像データを蓄積するための領域として使用される。コーデック４０は、ＤＲＡＭ３８に蓄積されたラスターイメージデータをＭＨ／ＭＲ／ＭＭＲ／ＪＢＩＧなどの周知の圧縮方式で圧縮し、また圧縮されたデータをラスターイメージに伸長する。また、コーデック４０にはＳＲＡＭ４３が接続されている。ＳＲＡＭ４３は、コーデック４０の一時的な作業領域として使用される。ネットワークコントローラ４２は、ネットワークコネクタ４４を介してＬＡＮ２０１との間で所定の制御動作を行う。
【００２４】
メインコントローラ３２は、スキャナバス４５を介してスキャナＩ／Ｆ４６に接続され、また、プリンタバス４７を介してプリンタＩ／Ｆ４８に接続されている。また、メインコントローラ３２は、ＰＣＩバス等の汎用高速バス４９を介して拡張ボードを接続するための拡張コネクタ５０と、入出力制御部（Ｉ／Ｏ制御部）５１に接続されている。
【００２５】
Ｉ／Ｏ制御部５１は、リーダ部２０３やプリンタ部２０４との間で制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ５２が２チャンネル装備されている。シリアル通信コントローラ５２は、Ｉ／Ｏバス５３を介してスキャナＩ／Ｆ４６及びプリンタＩ／Ｆ４８に接続されている。
【００２６】
スキャナＩ／Ｆ４６は、第１の調歩同期シリアルＩ／Ｆ５４及び第１のビデオＩ／Ｆ５５を介してスキャナコネクタ５６に接続されている。スキャナコネクタ５６は、リーダ部２０３のスキャナユニット２０８に接続されている。そして、スキャナＩ／Ｆ４６は、スキャナユニット２０８から受信した画像データに対して所望の２値化処理や、主走査方向及び／又は副走査方向の変倍処理を行う。また、スキャナＩ／Ｆ４６は、スキャナユニット２０８から送られてきたビデオ信号に基づいて制御信号を生成し、スキャナバス４５を介してメインコントローラ３２に転送する。
【００２７】
プリンタＩ／Ｆ４８は、第２の調歩同期シリアルＩ／Ｆ５７及び第２のビデオＩ／Ｆ５８を介してプリンタコネクタ５９に接続されている。プリンタコネクタ５９は、プリンタ部２０４のマーキングユニット２１０に接続されている。そして、プリンタＩ／Ｆ４８は、メインコントローラ３２から出力された画像データにスムージング処理を施して該画像データをマーキングユニット２１０に出力する。また、プリンタＩ／Ｆ４８は、マーキングユニット２１０から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス４７に出力する。プリンタＩ／Ｆ４８は、例えば、ＬＡＮ２０１に接続されたホストコンピュータから受信したＰＤＬ（ページ記述言語）データを解釈し、ラスターイメージデータに展開処理を行う。
【００２８】
バスコントローラ３４は、スキャナＩ／Ｆ４６やプリンタＩ／Ｆ４８、拡張コネクタ５０等に接続された外部機器から入出力されるデータの転送を制御するものであり、バス競合時のアービトレーション（調停）やＤＭＡデータ転送の制御を行う。例えば、上述したＤＲＡＭ３８とコーデック４０との間のデータ転送や、スキャナユニット２０８からＤＲＡＭ３８へのデータ転送、ＤＲＡＭ３８からマーキングユニット２１０へのデータ転送等は、バスコントローラ３４によって制御され、ＤＭＡ転送される。
【００２９】
Ｉ／Ｏ制御部５１は、ＬＣＤコントローラ６０及びキー入力Ｉ／Ｆ６１を介してパネルＩ／Ｆ６２に接続されている。パネルＩ／Ｆ６２は操作部２０５に接続されている。また、Ｉ／Ｏ制御部５１は、Ｅ−ＩＤＥコネクタ６３を介してハードディスク８，９、Ｆｌａｓｈメモリ９９に接続されている。Ｆｌａｓｈメモリ９９には、メインコントローラが実行する各種制御プログラムと各種データが記憶されている。
【００３０】
さらに、Ｉ／Ｏ制御部５１は、機器内で管理する日付と時刻を更新／保存するリアルタイムクロックモジュール６４に接続されている。なお、リアルタイムクロックモジュール６４は、バックアップ用電池６５に接続され、該バックアップ用電池６５によりバックアップされている。
【００３１】
図４は、複合機１０２のファームウェア構成の概略を示す図である。
【００３２】
複合機１０２のファームウェア４００は、ユーザが通常使用する機能モジュール群４０１と、Ｕｐｄａｔｅｒ４０２と、Ｅｎｇｉｎｅｃｏｎ４０３と、Ａｃｃｅｓｓｏｒｙ４０４とで構成される。Ｕｐｄａｔｅｒ４０２は、ファームウェアのアップデートやダウングレード時に起動される。Ｅｎｇｉｎｅｃｏｎ４０３は、プリンタ部２０４のエンジンコントローラモジュールである。Ａｃｃｅｓｓｏｒｙ４０４は、アクセサリユニット２１３のコントローラモジュールである。機能モジュール群４０１とｕｐｄａｔｅｒ４０２はＦＬＡＳＨメモリ９９に格納されている。Ｅｎｇｉｎｅｃｏｎ４０３はプリンタ部２０４に格納されており、Ａｃｃｅｓｓｏｒｙ４０４はアクセサリユニット２１３に格納されている。
【００３３】
まず、機能モジュール群４０１の各モジュールについて説明する。
【００３４】
ＵＩ４０５は、ユーザが操作部２０５を操作する際に動作するモジュールである。スキャン４０６はリーダ部２０３のコントローラモジュールであり、プリント４０７はプリンタ部２０４のコントローラモジュール（エンジンそのものに指示を出すＥｎｇｉｎｅｃｏｎ４０３の上位のコントローラモジュール）である。
【００３５】
Ｎ／Ｗ４０８は、ネットワーク上の他の機器と通信するためのモジュールであり、ネットワーク経由でプリント指示などを受け付ける。ＳＥＮＤ・ＦＡＸ送信４０９は、複合機１０２上で読み取った画像データをメールに添付して送信（ＳＥＮＤ）したり、ＦＡＸ通信で外部に送信（ＦＡＸ）するモジュールである。ＳＥＮＤ・ＦＡＸ・ＰＤＬ受信４１０は、Ｎ／Ｗ４０８が受けた外部のネットワークからのＳＥＮＤ、ＦＡＸ、ＰＤＬデータを受信するモジュールである。
【００３６】
カスタマイズアプリプラットフォーム４１１は、ユーザが複合機１０２にインストールするカスタマイズアプリの動作環境を提供するモジュールである。このカスタマイズアプリには、サードパーティー製アプリも含まれる。なお、上述した機能モジュール群４０１は、通常の複合機が有するモジュールの一例であり、ここに挙げた以外の機能モジュールも存在してもよい。
【００３７】
次に、本実施形態におけるファームウェアのダウングレードについて説明する前に、前提となるファームウェアのアップデートの概要について図５、図６、図７を参照して説明する。
【００３８】
図５は、複合機１０２が有するモジュールリストの一例を示す図である。
【００３９】
図５において、５０１，５０２は、複合機１０２が有する「パッケージ」と呼ばれるモジュールのリスト（以後、「コンテンツリスト」とも呼ぶ）の一例である。複合機１０２のファームウェアは、これらのパッケージ群によって構成されている。
【００４０】
複合機１０２のファームウェアは、コンテンツリストの単位でコンテンツサーバ１０１によって管理されている。複合機１０２のプログラム更新（アップデート又はダウングレード）を行う場合、コンテンツリストのバージョンを変更し、そのときの差分パッケージ５０３をコンテンツサーバ１０１から受信してインストールする。コンテンツリスト記載のパッケージはそれぞれ、コントローラ部２０６のＦｌａｓｈメモリ９９や、プリンタ部２０４、アクセサリユニット２１３に格納されている。図４に示したファームウェア４００の各モジュールに対して、１つ又は複数のパッケージが対応することになる。
【００４１】
次に、ファームウェアのアップデート処理を図６のフローチャートで説明する。
【００４２】
図６は、複合機１０２におけるファームウェアのアップデート処理の流れを示すフローチャートである。なお、図６に示す処理は、図３に示したＦＬＡＳＨメモリ９９に格納されたプログラムに従って、ＣＰＵ３３によって実行される。
【００４３】
ステップＳ６０１において、ＣＰＵ３３は、コンテンツサーバ１０１からインターネット１００、ＬＡＮ２０１等を経由して、ファームウェアのアップデート通知を受信する。このとき、ＣＰＵ３３がＦＬＡＳＨメモリ９９内のアップデータツールであるＵｐｄａｔｅｒ４０２を起動する。なお、ユーザがアップデータツールを起動し、操作部２０５に表示された図７（ａ）に示すダウンロード開始画面７００の「ダウンロード」ボタン７０１を押下し、コンテンツサーバ１０１に更新パッケージの問い合わせを行ってもよい。
【００４４】
次に、ステップＳ６０２において、ＣＰＵ３３は、コンテンツサーバ１０１から受信したアップデート通知の内容から更新の発生する差分パッケージを特定する。例えば、図５のように、アップデート前のコンテンツリスト５０１とコンテンツサーバ１０１から通知されたアップデート後のコンテンツリスト５０２を比較し、差分パッケージ５０３の特定を行う。
【００４５】
ステップＳ６０３において、ＣＰＵ３３は、ステップＳ６０２で特定した差分パッケージをコンテンツサーバ１０１からダウンロードする。続いて、ＣＰＵ３３は、操作部２０５に図７（ｂ）に示すインストール開始画面７０２を表示する（ステップＳ６０４）。そして、ユーザに対して、「インストール」ボタン７０３、「後で行う」ボタン７０４、「キャンセル」ボタン７０５のいずれかを選択させる（ステップＳ６０５）。
【００４６】
ユーザがインストール開始画面７０２上で「インストール」ボタン７０３を選択して押下した場合、ＣＰＵ３３は、ダウンロードした差分パッケージによりアップデート処理を実行する（ステップＳ６０６）。一方、ユーザがインストール開始画面７０２上で「後で行う」ボタン７０４を選択して押下した場合は、ＣＰＵ３３は、一定時間待機（ステップＳ６０７）した後、再び操作部２０５にインストール開始画面７０２を表示する（ステップＳ６０４）。さらに、ユーザがインストール開始画面７０２上で「キャンセル」ボタン７０５を選択して押下した場合は、ＣＰＵ３３はそのままアップデート処理を終了する。
【００４７】
次に、本実施形態におけるファームウェアのダウングレードの概要について図８、図９を参照して説明する。
【００４８】
図８は、複合機１０２におけるファームウェアのダウングレード処理の流れを示すフローチャートである。なお、図８に示す処理は、図３に示したＦｌａｓｈメモリ９９に格納されたプログラムに従って、ＣＰＵ３３によって実行される。
【００４９】
ステップＳ８０１では、ユーザが操作部２０５に表示された図９に示すファームウェアのダウングレード開始画面９００で「過去のコンテンツリストの表示」ボタン９０１を押下すると、ＣＰＵ３３はコンテンツリスト選択画面の表示の指示を受け付ける。そして、ＣＰＵ３３は、ステップＳ８０２においてコンテンツリスト選択処理を行う。なお、コンテンツリスト選択処理の詳細については後述する。
【００５０】
ステップＳ８０３では、ＣＰＵ３３は、ステップＳ８０２のコンテンツリスト選択処理でユーザに選択された過去のコンテンツリストをコンテンツサーバ１０１に問い合わせる。次に、ステップＳ８０４では、ＣＰＵ３３は、コンテンツサーバ１０１からコンテンツリストファイルを受信する。
【００５１】
ステップＳ８０５では、ＣＰＵ３３は、受信したコンテンツリストファイルに記載されたパッケージと複合機１０２内にインストールされたパッケージから差分パッケージを特定する。差分パッケージの特定は、前述した図６のステップＳ６０２と同様にして行われる。
【００５２】
次に、ステップＳ８０６では、ＣＰＵ３３は、特定した差分パッケージをコンテンツサーバ１０１に問い合わせ、ステップＳ８０７で差分パッケージファイルをコンテンツサーバ１０１から受信する。続いて、ステップＳ８０８では、ＣＰＵ３３は、受信した差分パッケージファイルをインストールし、ファームウェアのダウングレード処理を終了する。ステップＳ８０８では、ＣＰＵ３３は更新手段として機能する。
【００５３】
次に、図８のステップＳ８０２におけるコンテンツリスト選択処理の概要について説明する。
【００５４】
ユーザが自らファームウェアのダウングレードを行わなければならないケースとは、例えば、ユーザによるファームウェアのアップデート後に複合機１０２の動作に異常が発生した場合である。特に、コンテンツサーバ１０１で管理されていないカスタマイズアプリが複合機１０２にインストールされている場合は、品質保証されていないファームウェアとの組み合わせとなり、動作の異常が発生することが考えられる。例えば、アップデートによってファームウェアのバグが修正され、カスタマイズアプリがアップデート前のファームウェアのバグに合わせて作りこまれていた場合、アップデートによってカスタマイズアプリが正常に動作しなくなる可能性がある。また、バグ修正に限らずアップデートによって機器の内部処理が修正され、メモリの使用方法が変更された場合なども、カスタマイズアプリが正常に動作しなくなる可能性がある。
【００５５】
ユーザがファームウェアのアップデート後に複合機１０２の異常に気付くタイミングは、ユーザの機器の使用状況による。機器の機能やカスタマイズアプリのユーザの使用頻度によっては、アップデート直後に機器の異常に気付かない場合も考えられる。特に、頻繁にファームウェアのアップデートが行われている環境だと、異常の原因となるアップデートが行われてから複数回のアップデートが行われた後にユーザが異常に気付くこともある。その場合、ユーザは過去のどの時点のファームウェア構成へ戻したらいいのか判断することができなくなってしまう。そこで、ユーザが異常に気付いたタイミングで適切なファームウェアのダウングレードを実施するには、過去にアップデートしたコンテンツリストのうち、どのコンテンツリストのファームウェア構成に戻すべきか判断できるような情報を提供する必要がある。
【００５６】
本実施形態におけるコンテンツリスト選択処理では、上記ケースを考え、ユーザがダウングレードすべき過去のコンテンツリストを適切に選択できるよう、ユーザが入力した条件に基づき、候補となるコンテンツリストを検索して表示する。検索方法としては、アップデートされた各コンテンツリストのファームウェア構成での動作実績情報（動作履歴情報）を作成し、それを検索データとする。
【００５７】
動作実績情報は、複合機１０２の動作状態を示す情報であって、過去のコンテンツリストのバージョンが記録されたアップデート履歴情報（更新履歴情報）に対応付けられている。さらに、動作実績情報は、そのコンテンツリストのバージョンのファームウェアが実行した処理（ジョブ）の履歴を示すジョブ履歴情報（処理履歴情報）と、システム稼動履歴情報と、カスタマイズアプリ履歴情報（インストール状態情報）とに対応付けられている。
【００５８】
次に、本実施形態における動作実績情報の作成方法を図１０（ａ）〜図１０（ｅ）、図１１を参照して説明する。
【００５９】
図１０（ａ）は、アップデートした過去のコンテンツリストのバージョンが記録されたアップデート履歴情報の一例を示す図である。
【００６０】
アップデート履歴情報１００１において、「ｉｄ」はファームウェアのアップデートの度にインクリメントされるデータ管理上のＩＤである。この「ｉｄ」は、後述する他の履歴情報とアップデート履歴情報１００１とを紐付けるための「アップデート履歴ｉｄ」である。「時刻」はアップデートが実行された日付時刻である。「ＣＬ  Ｖｅｒ．」はコンテンツリストのバージョンである。「Ｐａｃｋａｇｅ  Ｖｅｒ．」は実際にアップデートされた差分パッケージのファイル名である。
【００６１】
アップデート履歴情報１００１における「影響範囲」は、複合機１０２が有する複数の機能のうち、アップデートされたコンテンツリストがその動作に影響を与える機能を示す影響範囲情報である。影響範囲情報はコンテンツリストに付加された情報である。複合機１０２がコンテンツリストファイルをコンテンツサーバ１０１から受信した際に、影響範囲情報も同時に受信する。受信するタイミングは、例えば、図８のステップＳ８０４である。各コンテンツリストに付加される影響範囲情報の一例を図１０（ｂ）に示す。
【００６２】
図１０（ｂ）において、影響範囲情報１００２では、「影響箇所」の欄で各機能の名称を示し、それらに対する修正の有無をフラグで示している。図示例では、「○」が修正有り、「×」が修正無しのフラグであり、「スキャン」機能と「プリント／ペーパーハンドリング」機能には、前バージョンのコンテンツリストから修正があったことを示している。影響範囲情報に記載される機能は、図４に示したファームウェア構成のうち、ユーザが使用する機能モジュールに対応している。
【００６３】
もしコンテンツリストのバージョンが飛ばされてアップデートが行われた場合は、飛ばされたバージョンのコンテンツリストの情報をアップデート履歴情報に保持しておくことも可能である。なお、この場合は、該当するファームウェアがインストールされていないので動作実績はない。また、コンテンツリストファイルを受信したときに、飛ばされたバージョンのコンテンツリストの影響範囲情報をマージしたデータを取得するなどして、飛ばされたバージョンを含む影響範囲情報をアップデート履歴情報に保持することも可能である。
【００６４】
図１０（ｃ）は、複合機１０２で実行されたジョブの履歴情報の一例を示す図である。
【００６５】
ジョブ履歴情報１００３において、「ｉｄ」は複合機１０２でジョブが実行される度にインクリメントされるデータ管理上のＩＤである。「時刻」はジョブが実行された日付時刻である。「ジョブ種」は実行されたジョブの種類である。「部数」は、そのジョブで指定された部数である。「ページ数」は、そのジョブで実行された印刷ページ数である。「ＯＫ／ＮＧ」は、そのジョブの実行結果の成功（ＯＫ）、失敗（ＮＧ）を示している。
【００６６】
ジョブ履歴情報としては、ここに述べた以外の項目についても考えられるので、以上に挙げたものだけに限るものではなく、必要はあれば他の項目についても使用してよい。また、「ジョブ種」に関しては、図１０（ｃ）の例では、カスタマイズアプリによって実行されたジョブについては「Ｐｒｉｎｔ（Ｃｕｓｔｏｍ）」としているが、「ジョブ種」の項目とは別にしてジョブ履歴情報に保持してもよい。
【００６７】
また、ジョブ履歴情報を構成する各ジョブ履歴には、ジョブ実行時のファームウェア構成のコンテンツリストのバージョンを示す「アップデート履歴ｉｄ」が付加される。
【００６８】
図１０（ｄ）は、複合機１０２のシステム稼動履歴情報の一例を示す図である。
【００６９】
システム稼動履歴情報１００４において、「ｉｄ」はシステム稼動履歴が記録される度にインクリメントされるデータ管理上のＩＤである。「時刻」はシステム稼動履歴が記録された日付時刻である。「内容」はシステム稼動履歴の内容を示す。なお、本実施形態では、「ＥＣＯＤＥ」（システムエラー発生）、「ＪＡＭ」（紙詰まり）などの複合機１０２で発生したエラーをシステム稼動履歴とした場合について説明したが、これらに限定されるものではなく、他のイベントであってもよい。
【００７０】
また、システム稼動履歴情報を構成する各システム稼動履歴には、システム稼動履歴が記録されたときのファームウェア構成のコンテンツリストのバージョンを示す「アップデート履歴ｉｄ」が付加される。
【００７１】
図１０（ｅ）は、複合機１０２のカスタマイズアプリ履歴情報の一例を示す図である。
【００７２】
カスタマイズアプリ履歴情報１００５において、「ｉｄ」はカスタマイズアプリ履歴が記録される度にインクリメントされるデータ管理上のＩＤである。「時刻」は、カスタマイズアプリがインストール又はアンインストールされたときの日付時刻である。「内容」は、該当するカスタマイズアプリの名称と実行された処理内容（インストール／アンインストール）を示す。なお、必要があればその他のカスタマイズアプリに関するイベントの履歴を保持して使用してもよい。
【００７３】
また、カスタマイズアプリ履歴情報を構成する各カスタマイズアプリ履歴には、カスタマイズ履歴が記録されたときのファームウェア構成のコンテンツリストのバージョンを示す「アップデート履歴ｉｄ」が付加される。
【００７４】
上述した「アップデート履歴ｉｄ」によって、アップデート履歴情報１００１と、ジョブ履歴情報１００３及びシステム稼動履歴情報１００４及びカスタマイズアプリ履歴情報１００５とを紐付けておくことで、図１１の動作実績情報１１０１を作成できる。
【００７５】
動作実績情報１１０１において、「ＣＬ  Ｖｅｒ．」（コンテンツリストのバージョン）、「稼動期間」、「影響範囲」は、アップデート履歴情報１００１の「ＣＬ  Ｖｅｒ．」、「時刻」、「影響範囲」から取得される。なお、「稼働期間」は、「時刻」から算出されたものである。
【００７６】
また、動作実績情報１１０１において、「Ｃｏｐｙ」、「Ｐｒｉｎｔ」、「Ｓｅｎｄ」等のジョブ種ごとのジョブ数、「総ジョブ数」、「総印刷数」（総ページ数）は、ジョブ履歴情報１００３から取得される。すなわち、「アップデートｉｄ」によってアップデート履歴情報１００１と紐付けられたジョブ履歴情報１００３の「ジョブ種」、「部数」、「ページ数」から取得される。
【００７７】
さらに、「システムエラー」、「カスタマイズアプリ」も同様に、「アップデートｉｄ」によってアップデート履歴情報１００１と紐付けられたシステム稼動履歴情報１００４の「内容」、カスタマイズアプリ履歴情報１００５の「内容」から取得される。作成された動作実績情報１１０１は、後述するコンテンツリスト選択フローで使用される。
【００７８】
また、図１０（ａ）、図１０（ｃ）〜図１０（ｅ）の各履歴情報や図１１の動作確認情報は、ＣＰＵ３３によりハードディスク８又はハードディスク９に記憶される。なお、ハードディスクを持たない機器の場合はＦｌａｓｈメモリ９９に格納される。これらハードディスク８やＦｌａｓｈメモリ９９等は、更新履歴記憶手段、処理履歴記憶手段、動作履歴記憶手段、及びインストール状態記憶手段として機能する。
【００７９】
動作実績情報１１０１の作成タイミングは、ジョブ履歴情報、システム稼動履歴情報、カスタマイズアプリ履歴情報が更新されたときである。そして、動作実績情報１１０１は、動作実績情報の差分を特定することにより更新される。なお、ファームウェアのアップデート又はダウングレードのタイミングに合わせて、一定期間に記録された各履歴情報から動作実績情報１１０１を作成して更新するようにしてもよい。
【００８０】
次に、図８のステップＳ８０２におけるコンテンツリスト選択処理の流れを図１２Ａ及び図１２Ｂのフローチャート、図１３（ａ）〜図１３（ｆ）を用いて説明する。
【００８１】
図１２Ａ及び図１２Ｂは、図８のステップＳ８０２におけるコンテンツリスト選択処理の流れを示すフローチャートである。なお、図１２Ａ及び図１２Ｂに示す処理は、図３に示したＦｌａｓｈメモリ９９に格納されたプログラムに従って、ＣＰＵ３３によって実行される。
【００８２】
図１２Ａにおいて、ＣＰＵ３３は、図８のステップＳ８０１でユーザからコンテンツリスト選択画面の表示の指示を受け付けると、ステップＳ１２０１において、図１３（ａ）に示すコンテンツリスト検索方法選択画面１３００を操作部２０５に表示する。ユーザは、コンテンツリスト検索方法選択画面１３００上で検索方法を選ぶ。ユーザは「アップデート時期から検索」ボタン１３０１、「機能から検索」ボタン１３０２、「ジョブ履歴から検索」ボタン１３０３のいずれかを選択して押下する。
【００８３】
ステップＳ１２０２では、ＣＰＵ３３は、ユーザからコンテンツリスト検索方法の選択を受け付けて、受け付けたコンテンツリスト検索方法が何かを判断する（ステップＳ１２０３）。ユーザが「アップデート時期から検索」ボタン１３０１を選択した場合、ＣＰＵ３３は、図１３（ｂ）のアップデート時期入力画面１３０４を操作部２０５に表示する（ステップＳ１２０４）。
【００８４】
ユーザがアップデート時期入力画面１３０４上でアップデート時期を入力すると、ＣＰＵ３３は、ユーザが入力したアップデート時期（更新日時）を受け付ける（ステップＳ１２０５）。次に、ステップＳ１２０６では、ＣＰＵ３３は、ユーザが入力したアップデート時期に該当するコンテンツリストのうち、動作実績が安定しているコンテンツリストを検索して、候補として図１４（ａ）のコンテンツリスト選択画面１３０５を操作部２０５に表示する。このとき、操作部２０５は表示手段として機能する。コンテンツリストの動作実績が安定しているか否かを判断する基準としては、図１１の動作実績情報１１０１の「稼動期間」、「総ジョブ数」、「システムエラー」などである。なお、必要があればその他の項目について加味してもよい。
【００８５】
図示例のコンテンツリスト選択画面１３０５では、コンテンツリストがバージョンの降順つまり新しい順に表示されている。例えば、ユーザは、候補として表示されたコンテンツリストの情報を見て、より古いコンテンツリストを選択したければ、「次の候補へジャンプ」ボタン１３０６を押下し、引き続き候補となる過去のコンテンツリストを検索することができる。
【００８６】
ユーザは、コンテンツリスト選択画面１３０５上でコンテンツリストを選択して「ＯＫ」ボタン１３０７を押下すると、ＣＰＵ３３は、ユーザが選択したコンテンツリストを受け付け（ステップＳ１２０７）、コンテンツリスト選択処理を終了してリターンする。
【００８７】
一方、ステップＳ１２０３において、ユーザが「機能から検索」ボタン１３０２を選択した場合、ＣＰＵ３３は、図１４（ｂ）の機能選択画面１３０８を操作部２０５に表示する（ステップＳ１２０８）。機能選択画面１３０８には、図１０（ｂ）の影響範囲情報に対応したボタン群１３０９が設けられている。ユーザは、ボタン群１３０９から現在の複合機１０２の異常に関係すると思われる機能名のボタンを選択して押下する。
【００８８】
次に、ステップＳ１２０９において、ＣＰＵ３３は、ユーザが選択した機能を受け付ける。ＣＰＵ３３は、ユーザが選択した機能に影響を与えるコンテンツリストのうち、動作実績が安定しているコンテンツリストを検索して、候補として図１４（ａ）のコンテンツリスト選択画面１３０５を操作部２０５に表示する（ステップＳ１２１０）。このとき、操作部２０５は表示手段として機能する。コンテンツリストの動作実績が安定しているか否かを判断する基準は、上述した通りである。なお、図１４（ａ）に示す例では、動作実績が少ない順に表示されているが動作実績が多い順に並べ替えて表示できるように構成してもよい。
【００８９】
そして、上述した「アップデート時期から検索」の場合と同様に、ＣＰＵ３３は、ユーザが選択したコンテンツリストを受け付け（ステップＳ１２０７）、コンテンツリスト選択処理を終了してリターンする。なお、「アップデート時期から検索」と「機能から検索」の検索結果として表示された画面を図１４（ａ）のコンテンツリスト選択画面１３０５として説明したが、互いに異なる画面構成にしてもよいことは云うまでもない。
【００９０】
一方、ステップＳ１２０３において、ユーザが「ジョブ履歴から検索」ボタン１３０３を選択した場合、ＣＰＵ３３は、図１５（ａ）のジョブ履歴選択画面１３１０を操作部２０５に表示する（図１２ＢのステップＳ１２１１）。ユーザは、ジョブ履歴選択画面１３１０から検索条件として使用したいジョブ履歴を選択し、「次へ」ボタン１３１１を押下する。
【００９１】
ＣＰＵ３３は、ユーザから検索に利用するジョブ履歴を受け付けると（図１２ＢのステップＳ１２１２）、図１５（ｂ）のジョブ履歴検索方法選択画面１３１２を操作部２０５に表示する（ステップＳ１２１３）。このとき、操作部２０５は表示手段として機能する。
【００９２】
ユーザは、ジョブ履歴検索方法選択画面１３１２上で「選択したジョブが実行されたコンテンツリストを検索」ボタン１３１３か、「選択したジョブと同じジョブ種が成功したコンテンツリストを検索」ボタン１３１４のいずれかを選択して押下する。例えば、ユーザが過去の成功したジョブ履歴を把握しており、そのジョブが成功したファームウェア構成に戻したいことが明確であれば、ボタン１３１３を押下してコンテンツリストを検索する。一方、ユーザは過去に実行が成功したジョブを把握していないが、種類が同じジョブで過去に実行に成功したジョブのジョブ履歴に対応するファームウェア構成に戻したいときは、ボタン１３１４を押下してコンテンツリストを検索する。
【００９３】
ユーザがボタン１３１３を選択した場合、ＣＰＵ３３は、ステップＳ１２１２で受け付けたジョブ履歴が実行されたコンテンツリストを検索して、候補として図１４（ａ）のコンテンツリスト選択画面１３０５を表示する（ステップＳ１２１５）。
【００９４】
一方、ユーザがボタン１３１４を選択した場合、ＣＰＵ３３は、以下を実行する。すなわち、ステップＳ１２１２で受け付けたジョブ履歴と同じジョブ種の過去に成功したジョブ履歴があるコンテンツリストを検索して、候補として図１４（ａ）のコンテンツリスト選択画面１３０５を操作部２０５に表示する。そして、上述した「アップデート時期から検索」の場合と同様に、ＣＰＵ３３は、ユーザが選択したコンテンツリストを受け付けて（ステップＳ１２０７）、コンテンツリスト選択処理を終了してリターンする。
【００９５】
このように、ジョブ履歴からコンテンツリストを検索する場合でも、ジョブ種としてサードパーティー製のカスタマイズアプリの情報を利用することができる。これにより、アップデートによる異常がカスタマイズアプリに起因する場合、ユーザはジョブ履歴を利用すると、ダウングレードすべき過去の適切なコンテンツリストを検索しやすくなる。
【００９６】
本実施形態によれば、ユーザがアップデートする前の過去のファームウェアに戻す際に、アップデート履歴やジョブ履歴、システム稼動履歴や管理外のサードパーティー製アプリのインストール履歴等に基づいて、過去の適切なコンテンツリストを選択できる。これにより、ユーザは安定したプログラムに戻すことが可能になり、ユーザによるプログラムの更新作業の利便性が向上する。
【００９７】
上記実施形態では、複合機１０２にインストールされたファームウェアについて説明したが、複合機に限らず、他の情報機器、例えばプリンタやスキャナ、ファクシミリであってもよいことは云うまでもない。また、機器で更新する対象は、ファームウェアだけでなく、単なるソフトウェアであってもよい。
【００９８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９９】
３２  メインコントローラ
３３  ＣＰＵ
１００  インターネット
１０１  コンテンツサーバ
１０２  複合機
４００  ファームウェア
４０１  機能モジュール群
４０２  Ｕｐｄａｔｅｒ
５０１，５０２  コンテンツリスト
５０３  差分パッケージ
【図１】
0005599055.tif 000002
【図２】
0005599055.tif 000003
【図３】
0005599055.tif 000004
【図４】
0005599055.tif 000005
【図５】
0005599055.tif 000006
【図６】
0005599055.tif 000007
【図７】
0005599055.tif 000008
【図８】
0005599055.tif 000009
【図９】
0005599055.tif 000010
【図１０】
0005599055.tif 000011
【図１１】
0005599055.tif 000012
【図１２Ａ】
0005599055.tif 000013
【図１２Ｂ】
0005599055.tif 000014
【図１３】
0005599055.tif 000015
【図１４】
0005599055.tif 000016
【図１５】
0005599055.tif 000017