(57)【要約】【課題】  アップデート時にファイル差分の適用方法を更新対象毎に切り替えなる必要がある。【解決手段】  複数のパッケージからならファームウェアと、前記パッケージ単位で前記ファームウェアを更新する通常アップデート手段と、前記パッケージに含まれるファイルの差分を抽出する手段と、前記抽出したファイルの差分のみを転送する事で更新する差分アップデート手段とを有し、差分アップデートに対応していないファイルに関しては通常アップデートを行い、差分アップデートに対応しているファイルに関しては適切な差分抽出方法を選択する事で、アップデートを実施する事を特徴とする画像形成装置。【選択図】  図７
2012190199.tif 000002
【特許請求の範囲】
【請求項１】
複数のパッケージからならファームウェアと、
前記パッケージ単位で前記ファームウェアを更新する通常アップデート手段と、
前記パッケージに含まれるファイルの差分を抽出する手段と、
前記抽出したファイルの差分のみを転送する事で更新する差分アップデート手段とを有し、
差分アップデートに対応していないファイルに関しては通常アップデートを行い、
差分アップデートに対応しているファイルに関しては適切な差分抽出方法を選択する事で、
アップデートを実施する事を特徴とする画像形成装置。
【請求項２】
予め定義された設定に基づいて、差分アップデートに対応しているか否かを実行時に切り替える事を特徴とする請求項１に記載の画像形成装置。
【請求項３】
予め定義された設定に基づいて、差分の抽出方法を実行時に切り替える事を特徴とする請求項１に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は市場でファームウェアを更新できる組み込み画像形成に関し、データ転送量を減らす事による更新時間の最適化に関するものである。例えばコピー、プリントなど多数の機能を有する複合機に関するものである。
【背景技術】
【０００２】
複合機の様な多数の機能を有する機器では、セキュリティリスクが高いため市場に設定したのちに定常的にファームウェアを更新し安全な状態にする必要がある。また、複合機は多数の機能を実現するためにファームサイズが増大しているが、ファーム更新時にはあたらしいファームウェアを転送する必要があるため、ファーム更新のための時間が増大している。サービスマンによるファーム更新作業では更新時間がサービスコストに直結するため、ファーム更新時間の増大が問題となっている。また、ユーザによりネットワークを介してファーム更新を行う機能が実現されているが、ユーザのネットワーク事情によりネットワーク転送率が遅い場合にはファーム更新の待ち時間の増大、セキュリティ問題の更新遅れなどの問題を起こす。
【０００３】
ファーム更新時間の増大に対して、一般技術として様々な転送量の削減構成が提案されている。システムに配置されるファイルをパッケージ化し、パッケージ単位で更新処理を行う事で変更のあったファイルだけを転送する技術が汎用オペレーティングシステムなどで採用されている。さらなる取り組みとして、パッケージに含まれるファイル内部の差分を抽出し、差分のみをパッケージに含めて転送し、受信側で差分情報を元に更新後のパッケージを構成し、更新処理を行う事で転送量を減らすＤｅｌｔａＲＰＭ等の技術が提案されている。また、差分の抽出方法に関しての課題として、ソースコード上での微小な変更が、ファイル内の位置情報などを埋め込みためにコンパイル後のプログラムファイルを大きく変えてしまう問題があった。これに対しては、コンパイル後のファイルをディスアセンブルし、アセンブリ記述上での差分を抽出する事で差分量を減らすことができる。
【０００４】
ディスアセンブル工程を利用して転送量を減らす技術として、Ｃｏｕｒｇｅｔｔｅ等の技術が提案されている。様々な更新方式から高速化の観点で効率的なものを選択する手段として特許文献１が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−３３４６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
組み込みファームへファイル内の差分を転送する差分アップデートでは課題がある。
【０００７】
汎用ファイルシステムを採用する組み込みシステムであっても、全てのファームウェアをフィルシステム上に配置するわけではない。複合機においてはＢＩＯＳ、ブートローダ、ファックスボード、エンジン制御ボードなどがメインコントローラファームとは別の不揮発メモリに格納されている場合が想定できる。この場合はファイルの形式で現状のファームを保持していないため、差分のみ取得しても更新対象のファームを構築する事ができない。これらの外部メモリに保持されているファームを差分更新するためには、外部メモリを更新する外部システムが差分のみを受け取り更新する構成も考えられる。しかし、複合機の例ではそれらのシステムはとても小さい事が想定されえるため、差分更新機能を実施するメリットがない。
【０００８】
汎用ファイルシステム上にファイルの形式で配置される場合であっても、一律にディスアセンブルするわけにはいかない。例えばテキストファイルなどであれば単純に差分を取ればよく、ファイル形式毎に適切な差分抽出方法が存在する。
【課題を解決するための手段】
【０００９】
上記課題を解決するために以下の構成によるシステムを提供する。
複数のパッケージからならファームウェアと、
前記パッケージ単位で前記ファームウェアを更新する通常アップデート手段と、
前記パッケージに含まれるファイルの差分を抽出する手段と、
前記抽出したファイルの差分のみを転送する事で更新する差分アップデート手段とを有し、
差分アップデートに対応していないファイルに関しては通常アップデートを行い、
差分アップデートに対応しているファイルに関しては適切な差分抽出方法を選択する事で、
アップデートを実施する事を特徴とする画像形成装置。
さらに予め定義された設定に基づいて、差分アップデートに対応しているか否かを実行時に切り替える事を特徴とする画像形成装置。
さらに予め定義された設定に基づいて、差分の抽出方法を実行時に切り替える事を特徴とする画像形成装置。
【発明の効果】
【００１０】
上記制御を行う事で、ユーザは最適化された速度でファームウェアの更新処理を実施する画像形成装置を提供する事ができる。
【図面の簡単な説明】
【００１１】
【図１】本発明に係わるデータ処理装置としての画像入出力システムの実施例形態を示すブロック構成図である。
【図２】画像入出力装置の内部構成図である。
【図３】本発明に係わる電子部品としてのコントローラ部の詳細を示すブロック構成図である。
【図４】本発明のアップデートで使用する作業領域の構造図である。
【図５】本発明の抽出処理テーブルの内部構造を構成図である。
【図６】本発明のＤＩＦＦファイルの内部構造を構成図である。
【図７】本発明のアップデート処理を実施するフロー図である。
【発明を実施するための形態】
【００１２】
［実施例１］
以下、本発明の実施の形態を図面に基づいて詳説する。ここでは画像形成装置を例に実施例を説明するが、本発明は計算機システム全般に適用可能な技術である。図１は本発明に係る電子部品としてのコントローラ部が搭載された画像入出力装置（データ処理装置）の一実施の形態を示すブロック構成図である。該画像入出力装置１は、イーサネット（登録商標）等のLAN（Local  Area Network）400にてのホストコンピュータ（本実施の形態では第一、第二のホストコンピュータ3,4）に接続されている。即ち、上記画像入出力システム（装置）1は、画像データの読取処理を行うリーダ部2と、画像データの出力処理を行うプリンタ部6を有する。また、及び画像データや各種機能の表示などを行う液晶パネルを備えた操作部7と、制御プログラムや画像データ等が予め書き込まれたハードディスクドライブ8及び9を装着する。これら各構成要素に接続されて該構成要素に接続されて該構成要素を制御する単一の電子部品からなるコントローラ部110とから構成されている。
【００１３】
さらにリーダ部2は原稿用紙を搬送する原稿給紙ユニット（部）10と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナ部11とを有する。プリンタ部6は記録用紙を収容する複数段の給紙カセットを備えた給紙ユニット（部）12と画像データを記録用紙に転写、定着するマーキングユニット(部)13を有する。さらに、印字された記録用紙にソート処理やステイプル処理を施して、外部に排出する排紙ユニット（部）14とを有している。
【００１４】
図２はリーダ部2及びプリンタ部6の詳細を示す内部構造であって、リーダ部5はプリンタ部6に載置されている。そして、リーダ部2では、原稿給送ユニット210に積層された原稿用紙がその積層順にしたがって、先頭から順次1枚ずつプラテンガラス215上に給送される。スキャナユニット11で所定の読取動作が終了した後、該読み取られた原稿用紙はプラテンガラス215上から原稿給送ユニット210に排出される。また、上記スキャナユニット11では、原稿用紙がプラテンガラス215上に搬送されてくるとランプ216が点灯し、次いで光学ユニット217の移動を開始させ、読み取り位置で固定する。
【００１５】
光学ユニット217は搬送される原稿用紙を下方から照射し、走査する。そして、原稿用紙からの反射光は、複数のミラー218〜220、及びレンズ221を介してCCDイメージセンサー（以下、単に「CCD」と記す）222へと導かれ、走査された原稿画像はCCD222によって読み取られる。そして、CCD222で読み取られた画像データは、所定の処理が施された後、コントローラユニット110（図２では図示省略）に転送される。あるいは、原稿プラテン上に載置された原稿を同様にランプ216を点灯し、次いで光学ユニット217の移動を開始させ、原稿用紙を下方から照射し、走査することで、走査された原稿画像をCCD222によって読み取ることが可能である。以上の手順で送出されたリーダからの画像データは、コネクタ56を介してコントローラ部110に送出される。
【００１６】
次いで、プリント部6では、コントローラ部110から出力された画像データに対応するレーザ光が、不図示のレーザドライバ23により駆動されるレーザ発行部224から発行される。該レーザ光はマーキング部13の感光ドラム225にはレーザ光に応じた静電潜像が形成され、現像器226により前記静電潜像の部分に現像剤が付着する。一方、レーザ光の照射開始と同期したタイミングで、給紙部12（給紙カセット212a,212b）から記録用紙が給紙されて転写部227に搬送され、感光ドラム225に付着している現像剤を記録用紙に転写する。画像データが転写された記録用紙は定着部228に搬送され、定着部228における加熱・加圧処理により画像データが記録紙に定着される。そして、画像データを記録用紙に片面記録する場合は、定着部228を通過した記録用紙が排出ローラ229によってそのまま排紙ユニット14に排出される。排紙ユニット14は排出された記録用紙を束ねて記録用紙の仕分けを行い、また、仕分けされた記録用紙のステイプル処理を行う。また、画像データを記録用紙に両面記録する場合は、排出ローラ229まで記録用紙を搬送した後、該は移出ローラ229の回転方向を逆転させる。
【００１７】
その後、フラッパ230によって再給紙搬送路231へと導かれ、該再給紙搬送路231に導かれた記録用紙は上述と同様にして転写部227に搬送される。コントローラ部110は、上述したように単一の電子部品で構成される。リーダ部2読み取った画像データをコードに変換し、ＬＡＮ400を介して第一及び第二のホストコンピュータ3、4に送信するスキャナ機能を有する。
【００１８】
さらに、ホストコンピュータ3、4から不図示のＬＡＮ2を介して受信したコードデータを画像データに変換し、プリンタ部6に出力するプリンタ機能、その他の機能ブロックを有している。
【００１９】
図３はコントローラ部110の詳細を示すブロック図である。メインコントローラ32は、ＣＰＵ33とバスコントローラ34と後述する各種コントローラ回路を含む機能ブロックとを内蔵する。さらに、ＤＲＡＭＩ／Ｆ37を介してＤＲＡＭ38と接続される。さらに、コーデックＩ／Ｆ39を介してコーデック40と接続され、また、ネットワークＩ／Ｆ41を介してネットワークコントローラ42と接続されている。ＤＲＡＭ38は、ＣＰＵ33が動作するための作業領域や画像データを蓄積するための領域として使用される。コーデック40はＤＲＡＭ38に蓄積されたラスターイメージデータをＭＨ／ＭＲ／ＭＭＲ／ＪＢＩＧなどの周知の圧縮方式で圧縮し、また圧縮されたデータをラスターイメージに伸長する。また、コーデック40にはＳＲＡＭ43が接続されており、該ＳＲＡＭ43は前記コーデック40の一時的な作業領域として使用される。
【００２０】
ネットワークコントローラ42は、ネットワークコネクタ44を介してＬＡＮ400との間で所定の制御動作を行う。また、前記メインコントローラ32はスキャナバス45を介してスキャナＩ／Ｆ46に接続され、プリンタバス47を介してプリンタＩ／Ｆ48に接続される。さらにＰＣＩバス等の汎用高速バス49を介して拡張ボードを接続するための拡張コネクタ50及び入出力制御部（Ｉ／Ｏ制御部）51に接続されている。
【００２１】
Ｉ／Ｏ制御部51はリーダ部2やプリンタ部6との間で制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ52が2チャンネル装備されている。該シリアル通信コントローラ52はＩ／Ｏバス53を介してスキャナＩ／Ｆ46及びプリンタＩ／Ｆ48に接続されている。スキャナＩ／Ｆ48は、第一の調歩同期シリアルＩ／Ｆ54及び第一のビデオＩ／Ｆ55を介してスキャナコネクタ56に接続され、さらに該スキャナコネクタ56はリーダ部2のスキャナユニット11に接続されている。そして、スキャナＩ／Ｆ46はスキャナ部11から受信した画像データに対し所望の2値化処理や、主走査方向及び／又は副走査方向の変倍処理を行う。またスキャナ部11から送られてきたビデオ信号に基づいて制御信号を生成し、スキャナバス45を介してメインコントローラ32に転送する。
【００２２】
また、プリンタＩ／Ｆ48は、第２の調歩同期シリアルＩ／Ｆ57及び第2のビデオＩ／Ｆ58を介してプリンタコネクタ59に接続され、さらに該プリンタコネクタ59はプリンタ部６のマーキングユニット13に接続されている。そして、プリンタI/F48はメインコントローラ３２から出力された画像データにスムージング処理を施して該画像データをマーキングユニット13に出力する。さらにマーキングユニット13から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス47に出力する。例えば、第1及び第2のホストコンピュータ3、4から受信したＰＤＬ（ページ記述言語）データを解釈し、ラスターイメージデータに展開処理を行う。また、バスコントローラ34は、スキャナＩ／Ｆ46プリンタＩ／Ｆ48、その他拡張コネクタ50等に接続された外部機器から入出力されるデータ転送を制御するものであり、バス競合時のアービトレーション（調停）やＤＭＡデータ転送の制御を行う。即ち、例えば、上述したＤＲＡＭ38とコーデック40との間のデータ転送や、スキャナ部５からＤＲＡＭ38へのデータ転送、ＤＲＡＭ38からマーキングユニット13へのデータ転送等は、バスコントローラ34によって制御され、ＤＭＡ転送される。また、Ｉ／Ｏ制御部51は、ＬＣＤコントローラ60及びキー入力Ｉ／Ｆ61を介してパネルＩ／Ｆ62は操作部７に接続されている。
【００２３】
またＥ−ＩＤＥコネクタ63を介してハードディスクドライブ8及び9に接続され、さらに、機器内で管理する日付と時刻を更新／保存するリアルタイムクロックモジュール64に接続されている。尚、リアルタイムクロックモジュール64はバックアップ用電池65に接続されて該バックアップ用電池65によりバックアップされている。さらに、Ｅ−ＩＤＥコネクタ６３を介してＦｌａｓｈメモリ９９に接続され、Ｆｌａｓｈメモリはメインコントローラ制御用の各種制御プログラム及び、各種データ記憶領域を記憶する。
【００２４】
次に図４を用いて異常検知に関わる構成について説明する。ＭＦＰ１０００１はアップデート対象の機器である。ファームウェア配置領域１０００２はＭＦＰを制御するファームウェアファイル１０００３を配置する場所であり、ファームウェアファイル１０００３を起動する事でＭＦＰは動作する。ファームウェア一時保存領域１０００４はアップデート時にファーム配信サーバ１０００２から取得したファームウェアを一時的に保持する領域である。抽出処理テーブル１０００７はファイル種別毎に適切な差分抽出方法を定義したテーブルであり、差分の反映時に反映前処理を決定するために用いる。アップデートモジュール１０００８はＭＦＰ１０００１のアップデート機能を制御するモジュールである。ＦＡＸボード１００１４はＭＦＰのファックスデバイスを制御するためのボードであり、独立したＣＰＵとファーム格納領域を内部に持つ。
【００２５】
パッケージ情報配置領域１００１３はファームウェア配置領域１０００２へ配置したファームウェア、およびＦＡＸボード１００１４に配置したファームウェアに対応するパッケージのバージョン情報を保持する領域である。ファーム配信サーバ１０００２はＭＦＰ１０００１へアップデート用のファームウェアを配信するサーバである。ファームウェア記憶領域１０００９は配信するためのファームウェアを配置する場所であり、アップデート前に予め配信対象のファイルを保持しておくための領域である。ＤＩＦＦファイル１００１０は差分の形式で適用するべきパッケージの差分情報ファイルであり、ＭＦＰ１０００１に転送された後はＤＩＦＦファイル１０００５として保持される。パッケージファイル１００１２はパッケージの形式で適用するべきパッケージのパッケージファイルであり、ＭＦＰ１０００１に転送された後はパッケージファイル１０００６として保持される。
【００２６】
ＢＩＯＳ、ブートローダ、ファックスボード制御ソフト、エンジン制御ボード制御ソフトなどの差分アップデート適用範囲外のファームに関してはパッケージ形式で適用する必要がある旨の情報をパッケージ情報記憶領域１００１１に保持する。パッケージ情報記憶領域１００１１はＭＦＰ１０００１に対して適用するべきパッケージがどれであるのかを定義した情報である。
【００２７】
次に図５を用いて抽出処理テーブルの内部構造を説明する。抽出処理テーブル２１０００はファイル種別毎に差分抽出方法を定義したテーブルである。例えば、Ｅｘｅｃｕｔａｂｌｅ、Ｄｙｎａｍｉｃ  ｌｉｎｋ  ｌｉｂｒａｒｙ形式であれば、ディスアセンブルしてアセンブリ記述に変換した後に比較する事で差分を抽出する形式である事が記述されている。同様に、ＪＡＶＡ（登録商標）  ａｒｃｈｉｖｅ形式であればｕｎｚｉｐして比較する事で差分を抽出する形式である事が記述されている。同様に、Ｓｈｅｌｌ  ｓｃｒｉｐｔ、Ｃｏｎｆｉｇ  ｆｉｌｅ形式であれば単純比較する事で差分を抽出する形式である事が記述されている。ＭＦＰ内で差分を適用するためには、この記述に従う形で差分を適用する必要がある。ファーム配信サーバに配置するＤＩＦＦファイルも同様のルールで作成された差分により構成する。
【００２８】
次に図６を用いてＤＩＦＦファイルの内部構造を説明する。ＤＩＦＦファイル２２０００は属性として更新前のパッケージバージョン、更新後のパッケージバージョン、パッケージに含まれるファイルのタイプ、差分の内容、パッケージ名をそれぞれ持つ。
【００２９】
次に図７を用いてアップデート処理に関わるフローを説明する。ステップ２０００１でアップデートモジュール１０００８はアップデート処理を開始する。ステップ２０００２でアップデートモジュール１０００９はファーム配信サーバ１０００２に対して、パッケージ情報配置領域１００１３に配置されたバージョン情報を送信する。ステップ２０００３でファーム配信サーバ１０００２からファームウェアをＤＩＦＦファイル１０００５、およびパッケージファイル１０００６として受信する。この時、アップデート対象とならなかったパッケージに対応するファームウェアは転送しないことで、パッケージ単位でのバージョンアップを実現する。
【００３０】
ステップ２０００４で受信したファームウェアのファイル形式を確認する。ステップ２０００５でＤＩＦＦファイル１０００５と判断しなかった場合には、パッケージの内容で上書きする必要があるのでパッケージを展開し、ファイルを抽出しＦＡＸボードへ転送する。ステップ２０００６でＤＩＦＦファイル１０００５と判断した場合はＤＩＦＦファイル１０００５に記述されたファイル種別と抽出テーブル１０００７と比較する事で、抽出方法を特定する。ステップ２０００７で差分抽出方法がｕｎｚｉｐと判断した場合は、ステップ２００１１へ遷移しファームウェア配置領域１０００２に格納された対応するファイルをｕｎｚｉｐする。その後、ＤＩＦＦファイル１０００５のＤｉｆｆｃｏｎｔｅｎｔｓの内容を適用し、再びｚｉｐ処理する事で更新の適用を実施する。
【００３１】
ステップ２０００８で差分抽出方法がｄｉｓａｓｓｅｍｂｌｅと判断した場合は、ステップ２００１２へ遷移しファームウェア配置領域１０００２に格納された対応するファイルをディスアセンブルする。その後、ＤＩＦＦファイル１０００５のＤｉｆｆｃｏｎｔｅｎｔｓの内容を適用し、再びサセンブル処理する事で更新の適用を実施する。ステップ２０００８で差分抽出方法がｄｉｓａｓｓｅｍｂｌｅと判断されなかった場合は、ファームウェア配置領域１０００２に格納された対応するファイルに差分を適用する事で更新を実施する。ステップ２００１３でファイルの更新が完了するとパッケージ情報配置領域１００１３のパッケージバージョン情報を更新し、更新処理を完了する。
【００３２】
［実施例２］
次に差分抽出方法の特定をＤＩＦＦファイルから行わない場合の実施例を説明する。この場合は図６記載のＤＩＦＦファイル構成のＦｉｌｅｔｙｐｅ属性は持たない。これにより配信対象のファイルの容量をさらに減らすことができる。アップデート処理は概ね実施例１と同一であるが、図７記載のステップ２０００４においてファームウェアファイルの形式を確認する手段が異なる。具体的には、パッケージ名から現状のファームウェアファイルを特定し、ＰＯＳＩＸのｆｉｌｅコマンドなどでファイルタイプを特定する事で、抽出処理テーブルとの照合を行い、差分抽出を実施する。これにより、ＭＦＰ１０００１にｆｉｌｅコマンドの配置とその実行コストがかかってしまうが、転送量を実施例１よりも減らすことが可能である。
【００３３】
以上制御を行う事で、ユーザは高速なアップデートを実現する事ができる。
【符号の説明】
【００３４】
１００１  ＭＦＰ
１００２  ファーム配信サーバ
１００３  作業領域
１００４  ダウンロード領域
１００５  ＤＩＦＦファイル
１００７  抽出処理テーブル
【図１】
2012190199.tif 000003
【図２】
2012190199.tif 000004
【図３】
2012190199.tif 000005
【図４】
2012190199.tif 000006
【図５】
2012190199.tif 000007
【図６】
2012190199.tif 000008
【図７】
2012190199.tif 000009