JP2013250911A - 画像形成装置、画像形成装置の制御方法およびコンピュータプログラム - Google Patents

画像形成装置、画像形成装置の制御方法およびコンピュータプログラム Download PDF

Info

Publication number
JP2013250911A
JP2013250911A JP2012126831A JP2012126831A JP2013250911A JP 2013250911 A JP2013250911 A JP 2013250911A JP 2012126831 A JP2012126831 A JP 2012126831A JP 2012126831 A JP2012126831 A JP 2012126831A JP 2013250911 A JP2013250911 A JP 2013250911A
Authority
JP
Japan
Prior art keywords
software
image forming
forming apparatus
test
external application
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.)
Pending
Application number
JP2012126831A
Other languages
English (en)
Inventor
Yoko Tokumoto
曜子 徳元
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 JP2012126831A priority Critical patent/JP2013250911A/ja
Publication of JP2013250911A publication Critical patent/JP2013250911A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】自装置がアップデート管理対象とする第1のソフトウェアのアップデート後に、アップデート管理対象としない第2のソフトウェアが正常動作するかを自動でかつ効率良くテストする画像形成装置を提供する。
【解決手段】自装置がアップデート管理対象とする第1のソフトウェアと、アップデート管理対象としない第2のソフトウェアとがインストールされた画像形成装置102を設ける。画像形成装置102が、第1のソフトウェアがアップデートされた後に第2のソフトウェアの動作確認テストを実行するテストモジュールを起動する。そして、画像形成装置102が、上記テストモジュールによる第2のソフトウェアの動作確認テストの実行前に、動作確認テスト時に第2のソフトウェアの指示にしたがって動作する画像形成装置の機能のふるまいを設定する。
【選択図】図1

Description

本発明は、画像形成装置、画像形成装置の制御方法およびコンピュータプログラムに関する。
デジタル複合機等の画像形成装置が備えるファームウェアのアップデートが必要になった場合、一般に、サービスマンが、顧客先に出向いて、当該ファームウェアのアップデートを実施する。しかし、近年は、インターネット環境が整い、ファームウェアをインターネットによってデジタル複合機に通知し、サービスマンが出向くことなく、ユーザによってファームウェアのアップデートを実施することが可能になってきている。上記ファームウェアは、画像形成装置のメーカーによって提供される。
アップデートを実施するファームウェア構成は、基本的に品質保証されたもので、アップデートしても動作に問題がないことを前提としている。しかし、現在のデジタル複合機には、ユーザのニーズによって機能をカスタマイズするためのオープンな外部アプリがインストールされていることがある。外部アプリは、デジタル複合機がアップデート管理対象としないソフトウェアであって、デジタル複合機のメーカーとは異なる他のメーカー(以下、外部アプリ提供メーカーと記述)によって提供される。一方、デジタル複合機には、デジタル複合機自身がアップデート管理対象とするソフトウェア(例えば、ファームウェア)がインストールされている。
外部アプリと、デジタル複合機自身がアップデート管理対象とするファームウェアとの組み合わせが、評価されていない組み合わせとなった場合、ファームウェアのアップデートが原因で機器の動作に異常が発生する可能性がある。例えば、ファームウェアのアップデート後にある機能のメモリの使用方法が変わると、外部アプリが動作しなくなる場合がある。
また、ファームウェアのアップデートの目的として、一度製品化されたファームウェアの機能を大きく変更することを目的とするよりも、バグの修正を目的とすることが多いと考えられる。したがって、外部アプリが、潜在バグに依存した作りになっている場合には、アップデートによってファームウェアのバグが修正された場合、外部アプリが動作しなくなることがある。
デジタル複合機内のファームウェアのアップデートに伴って外部アプリが動作しなくなった場合、ユーザは、カスタマイズされた外部アプリを使用するために、アップデート前の過去のバージョンにバージョンダウンを行う必要がある。特許文献1は、バージョンアップ指示対象のコンポーネントのテストを実行し、このコンポーネントの正常動作が確認できなかった場合に、当該コンポーネントとそのテストプログラムを削除するバージョンアップ管理装置を開示している。
特開2008−269128号公報
しかし、デジタル複合機本体とデジタル複合機のファームウェアを提供しているメーカーは、外部アプリをアップデート管理対象としない。したがって、外部アプリは、メーカー製のファームウェアから見ると未知のソフトウェアであり、ファームウェアは外部アプリの自動テストを実行することができない。その結果、デジタル複合機のファームウェアのアップデートの直後に、外部アプリが正常動作しないことを検知することができない場合がある。その場合、外部アプリを使用するときに初めて外部アプリが正常動作しないことが発見されることになり、ユーザの利便性を大きく損ねてしまう。
また、外部アプリの自動テストは、自動テスト時の画像形成装置102が有する機能のふるまいを自動テスト用に切り替えた上で実行したほうが効率的である。例えば、外部アプリの自動テストにおいて、画像形成装置102が有する印刷機能を動作させる場合、当該印刷機能が生成した画像データを実際に紙媒体に出力することなく自動テストの成否の判定に用いたほうが効率的である。
本発明は、自装置がアップデート管理対象とする第1のソフトウェアのアップデート後に、アップデート管理対象としない第2のソフトウェアが正常動作するかを自動でかつ効率良くテストする画像形成装置の提供を目的とする。
本発明の一実施形態の画像形成装置は、第1のソフトウェアと第2のソフトウェアとがインストールされた画像形成装置である。前記第1のソフトウェアは、前記画像形成装置がアップデート管理対象とするソフトウェアであり、前記第2のソフトウェアは、前記画像形成装置がアップデート管理対象としないソフトウェアである。そして、前記画像形成装置は、前記第1のソフトウェアをアップデートまたはダウングレードする更新手段と、前記第1のソフトウェアがアップデートされた後に前記第2のソフトウェアの動作確認テストを実行するテストモジュールを起動する起動手段と、前記起動したテストモジュールによる前記第2のソフトウェアの動作確認テストの実行前に、該動作確認テスト時に該第2のソフトウェアの指示にしたがって動作する前記画像形成装置の機能のふるまいを設定する設定手段とを備える。
本発明の画像形成装置によれば、自装置がアップデート管理対象とする第1のソフトウェアのアップデート後に、アップデート管理対象としない第2のソフトウェアが正常動作するかを自動でかつ効率良くテストすることができる。
本実施形態のシステム構成例を示す図である。 画像形成装置の構成例を示す図である。 画像形成装置が備えるコントローラ部の構成例を示す図である。 画像形成装置のファームウェア構成の一例を示す図である。 ファームウェアのアップデートを説明する図である。 ファームウェアのアップデート処理を説明するフローチャートである。 アップデートタイミング制御処理の例を説明するフローチャートである。 外部アプリの動作確認テストの実行処理の例を説明するフローチャートである。 他の実施形態のシステム構成例を示す図である。
図1は、本実施形態のシステム構成例を示す図である。本実施形態の情報処理システムは、コンテンツサーバ101と画像形成装置102とを備える。コンテンツサーバ101と画像形成装置102とは、ネットワーク(この例ではインターネット)100を介して通信する。画像形成装置102は、画像データを生成して出力する処理装置である。画像形成装置102は、例えば、プリンタ、スキャナ、ファクシミリ装置、MFP(Multifunction Peripheral)等である。画像形成装置102は、顧客先に設置される。
コンテンツサーバ101は、インターネット100を介して、画像形成装置102に対し、画像形成装置102のファームウェアをアップデートするために必要なファームウェア構成情報を配信する。また、コンテンツサーバ101は、ファームウェアのアップデート・ダウングレード時に画像形成装置102がインストールする差分モジュールを画像形成装置102に配信する。
図2は、画像形成装置の構成例を示す図である。画像形成装置102は、LAN(Local Area Network)201を介してインターネット100(図1)に接続されている。LAN201は、例えばイーサネット(登録商標)である。
画像形成装置102は、リーダ部203、プリンタ部204、操作部205、コントローラ部206を備える。リーダ部203は、画像データの読取処理を行う。プリンタ部204は、画像データの出力処理を行う。操作部205は、ユーザの操作に応じた処理を実行する。例えば、操作部205は、画像データや各種機能の表示処理を行う液晶パネルを備える。コントローラ部206は、画像形成装置102が備える各処理部に指示することによって、画像形成装置全体を制御する。
リーダ部203は、原稿給紙ユニット207、スキャナユニット208を備える。原稿給紙ユニット207は、原稿用紙を搬送する。スキャナユニット208は、搬送された原稿画像を光学的に読み取って電気信号としての画像データに変換する。
プリンタ部203は、給紙ユニット209、マーキングユニット210、排紙ユニット212、アクセサリユニット213を備える。給紙ユニット209は、記録用紙を収容する。このために、給紙ユニット209は、複数段の給紙カセットを備える。マーキングユニット210は、画像データを記録用紙に転写、定着する。排紙ユニット212は、印字された記録用紙を外部に排出する。この例では、排紙ユニット209は、画像形成装置102の外部に接続されたアクセサリユニット213に接続されている。したがって、排紙ユニット209は、記録用紙をアクセサリユニット213へ排出する。
アクセサリユニット213は、ソート処理やステイプル処理などのフィニッシング処理を施して、記録用紙を排出する。また、画像形成装置102がFAX機能付きの画像形成装置である場合は、アクセサリユニット213にFAX送信部が設けられる。
図3は、図2に示す画像形成装置が備えるコントローラ部の構成例を示す図である。コントローラ部206が備える構成要素のうち、メインコントローラ32は、CPU33とバスコントローラ34とを備える。本実施形態の画像形成装置の制御方法は、CPU33がFLASHメモリ99に格納されたコンピュータプログラムを実行することによって実現される。
メインコントローラ32は、DRAMI/F37を介して、DRAM38と接続される。また、メインコントローラ32は、コーデックI/F39を介して、コーデック40と接続される。また、メインコントローラ32は、ネットワークI/F41を介して、ネットワークコントローラ42と接続される。また、メインコントローラ32は、スキャナバス45を介して、スキャナI/F46に接続される。また、メインコントローラ32は、プリンタバス47を介して、プリンタI/F48に接続される。また、メインコントローラ42は、PCIバス等の汎用高速バス49を介して拡張ボードを接続するための拡張コネクタ50及び入出力制御部(I/O制御部)51に接続されている。
DRAM38は、CPU33が動作するための作業領域や画像データを蓄積するための領域として使用される。コーデック40は、DRAM38に蓄積されたラスターイメージデータをMH/MR/MMR/JBIGなどの周知の圧縮方式で圧縮する。また、コーデック40は、圧縮されたデータをラスターイメージに伸長する。また、コーデック40にはSRAM43が接続されており、SRAM43は、コーデック40の一時的な作業領域として使用される。
ネットワークコントローラ42は、ネットワークコネクタ44を介して、LAN201(図2)との間で所定の制御動作を行う。I/O制御部51は、図2に示すリーダ部203やプリンタ部204との間で、制御コマンドを送受信する。I/O制御部51には、上記制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ52が2チャンネル装備されている。シリアル通信コントローラ52は、I/Oバス53を介して、スキャナI/F46及びプリンタI/F48に接続されている。
スキャナI/F46は、第一の調歩同期シリアルI/F54及び第一のビデオI/F55を介して、スキャナコネクタ56に接続されている。また、スキャナコネクタ56は、リーダ部105のスキャナユニット208に接続されている。そして、スキャナI/F46は、スキャナユニット208から受信した画像データに対して、所望の2値化処理や、主走査方向及び/又は副走査方向の変倍処理を行う。また、スキャナI/F46は、スキャナユニット208から送られてきたビデオ信号に基づいて制御信号を生成し、スキャナバス45を介して、メインコントローラ32に転送する。
また、プリンタI/F48は、第2の調歩同期シリアルI/F57及び第2のビデオI/F58を介して、プリンタコネクタ59に接続されている。また、プリンタコネクタ59は、プリンタ部204のマーキングユニット210に接続されている。そして、プリンタI/F48は、メインコントローラ32から出力された画像データにスムージング処理を施して、マーキングユニット210に出力する。また、プリンタI/F48は、マーキングユニット210から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス47に出力する。プリンタI/F48は、例えば、LAN201に接続されたホストコンピュータから受信したPDL(ページ記述言語)データを解釈し、ラスターイメージデータに展開する。
また、バスコントローラ34は、スキャナI/F46プリンタI/F48、その他拡張コネクタ50等に接続された外部機器から入出力されるデータ転送を制御する。具体的には、バスコントローラ34は、バスの使用権のアービトレーション(調停)やDMAデータ転送の制御を行う。例えば、上述したDRAM38とコーデック40との間のデータ転送や、スキャナユニット208からDRAM38へのデータ転送、DRAM38からマーキングユニット210へのデータ転送等は、バスコントローラ34によって制御され、DMA転送される。
また、I/O制御部51は、LCDコントローラ60及びキー入力I/F61を介して、パネルI/F62に接続されている。パネルI/F62は、操作部107に接続されている。また,I/O制御部51は、E−IDEコネクタ63を介して、ハードディスクドライブ8および9、Flashメモリ99に接続されている。
Flashメモリ99は、メインコントローラ制御用の各種制御プログラム、各種データ記憶領域を記憶する。また、Flashメモリ99は、機器内で管理する日付と時刻を更新/保存するリアルタイムクロックモジュール64に接続されている。リアルタイムクロックモジュール64は、バックアップ用電池65に接続されて、バックアップ用電池65によりバックアップされている。
図4は、画像形成装置のファームウェア構成の一例を示す図である。画像形成装置102は、機能モジュール群401、Updater402、Tester403、Enginecon404、Accesory405、外部アプリ実行プラットフォーム407がファームウェアとしてインストールされている。このファームウェアは、画像形成装置102がアップデート管理対象とするソフトウェア(第1のソフトウェア)である。ファームウェアは、画像形成装置102のメーカーによって提供される。
また、画像形成装置102には、外部アプリ群406がインストールされている。外部アプリ群415に含まれる外部アプリ415は、画像形成装置102がアップデート管理対象としないソフトウェア(第2のソフトウェア)である。外部アプリ415は、画像形成装置102のメーカーとは異なる他のメーカーである外部アプリ提供メーカーによって提供される。
機能モジュール群401は、ユーザが通常使用する複数のモジュールであって、画像形成装置102の各種機能処理を実行する。Updater402は、ファームウェアのアップデートまたはダウングレードに用いられるモジュールである。Updater402は、ユーザアップデート、ダウングレード時に起動して、CPU33によって実行される。
Tester403は、ファームウェアのアップデート後の自動テスト、すなわち外部アプリ415の動作確認テストを実行する。Tester403は、画像形成装置102がテストフレームワークとして提供するモジュール(更新手段)である。Enginecon404は、プリンタ部204のエンジンコントローラモジュールである。Accessory405は、アクセサリユニット231のコントローラモジュールである。
外部アプリ群406は、ユーザが機能をカスタマイズして使用するアプリケーションプログラム群である。外部アプリ実行プラットフォーム407は、外部アプリ415の実行環境を提供するモジュールである。外部アプリテストサービス408は、外部アプリテストモジュール416による外部アプリ415の動作確認テストの実行前に、該動作確認テスト時に該外部アプリ415の指示にしたがって動作する画像形成装置の機能のふるまいを設定する。外部アプリテストサービス408は、画像形成装置の機能の動作結果すなわち外部アプリ415の動作結果を取得して外部アプリテストモジュール416に渡す。
機能モジュール群401、Updater402、Tester403、外部アプリ群406、外部アプリ実行プラットフォーム407は、FLASHメモリ99に格納される。Engincon404は、プリンタ部204に格納される。Acessory405は、アクセサリユニット213に格納される。
機能モジュール群401は、UI408、SCAN409、PRINT410、N/W411、FAX412、SEND413、PDL414を備える。UI408は、ユーザが操作部205を操作する際の動作モジュールである。スキャン409は、リーダ部203のコントローラモジュールである。PRINT410は、プリンタ部204のコントローラモジュールである。すなわち、PRINT410は、エンジンそのものに指示を出すEnginecon405の上位のコントローラモジュールである。
N/W411は、ネットワーク通信部分のモジュールであり、ネットワーク経由のプリント指示などを受ける。FAX412は、画像形成装置102上で読み取った画像データのFAX送信を行う。また、FAX412は、N/W411および外部のネットワークを介してFAX受信を行う。SEND413は、画像形成装置102上で読み取った画像データをメール添付で外部に送信するモジュールである。PDL414は、N/W410が外部のネットワーク経由で受信したPDLデータを画像変換する。機能モジュール群401が備える各々の機能モジュールは、画像形成装置102のモジュールの例であり、機能モジュール群401が、図4に示す機能モジュール以外の機能モジュールを備えるようにしてもよい。
外部アプリ群406は、外部アプリ415と外部アプリテストモジュール416とを備える。外部アプリ415は、外部アプリ実行プラットフォーム407が提供する実行環境で動作するように作られたモジュールである。外部アプリ415は、外部アプリ実行プラットフォーム407を通して、機能モジュール群401が備える各モジュールを使用して、ユーザのニーズに合わせてカスタマイズされた機能を提供する。
外部アプリテストモジュール416は、外部アプリ415とともに画像形成装置102にインストールされている。外部アプリテストモジュール416は、ファームウェアがアップデートされた後に外部アプリ415の動作確認テストを実行するテストモジュールである。外部アプリテストモジュール416は、Tester403および外部アプリテストサービス408と連携して動作することで、外部アプリ415の動作確認テストを実行する。外部アプリテストモジュール416は、外部アプリ作成者によって提供される。
外部アプリ実行プラットフォーム407が提供するAPIは、外部公開されており、外部アプリ提供メーカーが、外部アプリを作成して使用することができる。そのため、画像形成装置102のメーカー製のファームウェアを構成するモジュールがアップデートされて変更された場合、外部アプリ提供メーカー製の外部アプリ415とは評価されていない組み合わせとなる。
図5は、ファームウェアのアップデートを説明する図である。図5(A)に示す501は、画像形成装置102内のファームウェアを構成するモジュール一覧として機能するリストの例である。図5(B)は、アップデート対象となるモジュールを含むモジュール一覧として機能するリストである。以後、これらのリストをコンテンツリストと呼ぶ。また、ファームウェアを構成するモジュールは、パッケージと呼ばれる。すなわち、ファームウェアは、コンテンツリストに記述されたパッケージ群によって構成されている。コンテンツサーバ101は、コンテンツリストと対応付けて、ファームウェアの更新時に画像形成装置102に提供するTester403を保持している。
コンテンツサーバ101が、画像形成装置102のファームウェア構成を、コンテンツリストの単位で管理する。画像形成装置102のファームウェア構成のアップデート・ダウングレードは、画像形成装置102が、コンテンツリストのバージョンが変更されたときの差分パッケージをコンテンツサーバ101から取得してインストールすることで実施される。
図5(B)中に示すコンテンツリスト502は、図5(A)中に示すコンテンツリスト501に対してバージョンアップされたコンテンツリストである。画像形成装置102は、コンテンツリスト501とコンテンツリスト502とを比較して、図5(C)に示す差分パッケージ503を特定する。差分パッケージ503に記載されているモジュールは、コンテンツリスト501とコンテンツリスト502との差分に対応するモジュールである。そして、画像形成装置102は、特定した差分パッケージをコンテンツサーバ101からインストールする。
コンテンツリストに記述されているパッケージは、それぞれ、コントローラ部206のFlashメモリ99、プリンタ部204、アクセサリユニット213に格納されている。画像形成装置102が備える各モジュールに1または複数のパッケージが対応することになる。コンテンツリストは、コンテンツリストに記述されたファームウェア構成で品質を保証される。ファームウェアのアップデートが必要になった場合、ファームウェア提供者は、コンテンツリストに記述されたパッケージを変更し、その構成での品質保証を行い、バージョンを上げたコンテンツリストをコンテンツサーバ101へ登録する。これにより、各ユーザ先の機器から新しいバージョンのコンテンツリストを取得することができる。
ファームウェア提供者は、コンテンツリストをコンテンツサーバ101に登録する際に、コンテンツリストのバージョンに対応したテストフレームワーク(Tester403と外部アプリテストサービス408)を一緒に登録する。これにより、ユーザ先の機器がテストフレームワークも取得できるようになる。
図6は、ファームウェアのアップデート処理の例を説明するフローチャートである。図6を参照して説明するファームウェアのアップデート処理は、FLASHメモリ99に格納されたプログラムに従って、CPU33によって実行される。
まず、CPU33が、コンテンツサーバ101からファームウェアのアップデート通知を受信し、FLASHメモリ99内のUpdater402を起動する(ステップS601)。ファームウェアのアップデート通知は、画像形成装置102に対するファームウェアのアップデート指示として機能する。ファームウェアのアップデート通知には、アップデート対象のモジュールを含むコンテンツリスト502が含まれる。
次に、CPU33が、コンテンツサーバ101から受けたアップデート通知内容に基づいて、更新の発生する差分パッケージを特定する(ステップS602)。例えば、CPU33は、ファームウェアのアップデート前のコンテンツリスト501(図5(A))と、アップデート通知に含まれるコンテンツリスト502とを比較し、差分パッケージ503の特定を行う。
次に、CPU33が、コンテンツサーバ101から、ステップS602で特定した差分パッケージをダウンロードする(ステップS603)。ステップS603では、CPU33は、さらに、差分パッケージを特定するのに用いたコンテンツリスト502に対応するTester403をコンテンツサーバ101からダウンロードする。
次に、CPU33が、Updater402に設定されている定期アップデート時刻に達したかを判断する(ステップS604)。CPU33が、Updater402に設定されている定期アップデート時刻に達していないと判断した場合は、処理がステップS606に進む。そして、CPU33が、一定時間待機して(ステップS606)、処理がステップS604に戻る。
CPU33が、Updater402に設定されている定期アップデート時刻に達していると判断した場合は、処理がステップS605に進む。そして、CPU33が、アップデートタイミング制御処理を実行する(ステップS605)。
図7は、実施例1におけるアップデートタイミング制御処理の例を説明するフローチャートである。このアップデートタイミング制御処理は、図6のステップS605での処理に対応し、CPU33が、FLASHメモリ99に格納されているUpdater402を実行することで行われる。
まず、CPU33が、今回アップデート対象となっているモジュールを含むコンテンツリストのバージョンが、FLASHメモリ99に記憶されているコンテンツリストのバージョンであるかを判断する(ステップS701)。すなわち、CPU33は、ファームウェアがアップデートされた場合の当該ファームウェアが含むモジュールに関するバージョンが、記憶手段に記憶されているバージョンと合致するかを判断する判断手段として機能する。FLASHメモリ99に記憶されているコンテンツリストのバージョンは、過去に外部アプリ415が正常動作しなかった時に記憶されたコンテンツリストのバージョン、つまり、外部アプリ415が正常動作しない原因となったコンテンツリストのバージョンである。
今回アップデート対象となっているモジュールを含むコンテンツリストのバージョンが、FLASHメモリ99に記憶されているコンテンツリストのバージョンでない場合は、処理がステップS704に進む。
一方、今回アップデート対象となっているモジュールを含むコンテンツリストのバージョンが、FLASHメモリ99に記憶されているコンテンツリストのバージョンである場合は、処理がステップS702に進む。続いて、CPU33が、外部アプリ415のバージョンが前回のアップデート以後に修正されたか(アップデートされたか)を判断する(ステップS702)。
外部アプリ415のバージョンとインストール日時は、外部アプリ実行プラットフォーム407を介してFLASHメモリ99の特定の領域に保存されている。また、外部アプリ415の過去のアップデート日時も、FLASHメモリ99の特定の領域に保存されている。CPU33は、FLASHメモリ99に保存されている、外部アプリ415のインストール日時と過去のアップデート日時とを比較することで、外部アプリ415のバージョンが前回のアップデート以後に修正されたかを判断する。
外部アプリ415のバージョンが前回のアップデート以後に修正された場合は、ステップS704に進む。外部アプリ415のバージョンが前回のアップデート以後に修正されていなかった場合は、ステップS703に進む。そして、CPU33が、今回のファームウェアのアップデート処理を中止する。すなわち、CPU33は、Updater402によるファームウェアのアップデートを中止する中止手段として機能する。
ステップS704において、CPU33が、今回アップデート対象となっているモジュールを含むコンテンツリストと、アップデート前のコンテンツリストとに基づいて、差分パッケージを特定する。そして、CPU33が、コンテンツサーバ101から差分パッケージをダウンロードし、画像形成装置102にインストールする。これにより、ファームウェアがアップデートされる。
次に、CPU33が、外部アプリTester416によって、外部アプリ415の動作確認テストを行う(ステップS705)。外部アプリTester416による動作確認テストは、以下のようにして実行される。まず、CPU33が、Tester415を起動する。Tester415が、外部アプリテストモジュール416を起動する。そして、外部アプリテストモジュール416が、外部アプリ415を叩く。外部アプリ415が、外部アプリ実行プラットフォーム407を介して、機能モジュール群401に含まれるモジュールを叩く。これにより外部アプリ415が動作する。このとき、外部アプリテストモジュール416は、外部アプリテストサービス408と連携して動作確認テストを実行する。
外部アプリテストモジュール416が、外部アプリ415の動作結果を取得し、動作結果が予め決められた期待する動作(戻り値)と一致しているかを判断する。外部アプリテストモジュール416が、動作結果が予め決められた期待する動作(戻り値)と一致していると判断した場合、CPU33は、外部アプリ415が正常動作すると判断して、処理を終了する。外部アプリテストモジュール416が、動作結果が予め決められた期待する動作(戻り値)と一致していないと判断した場合、CPU33は、外部アプリ415が正常動作しないと判断して、処理がステップS707に進む。
ステップS707において、CPU33が、アップデート前のパッケージに戻すために、ファームウェアのダウングレードを実行する(ステップS707)。具体的には、CPU33は、アップデートの処理と同様に、アップデート前のコンテンツリストをコンテンツリストサーバ101から取得して、差分パッケージのインストールを行うことで、ダウングレードを実行する。
次に、CPU33が、今回アップデート対象となったモジュールを含むコンテンツリストのバージョンを取得して、FLASHメモリ99の特定の領域に記憶して管理し(ステップS708)、処理を終了する。すなわち、CPU33は、ファームウェアがアップデートされた後に外部アプリ415が正常動作しない場合に、このファームウェアが含むモジュールに関する版数を記憶手段に記憶して管理する管理手段として機能する。
なお、上記ステップS705において、画像形成装置102が備える機能モジュールが、ユーザの操作にしたがって機能動作するようにしてもよい。そして、CPU33が、上記ステップS706乃至708の処理を、ユーザの操作にしたがって実行するようにしてもよい。
また、他の実施形態においては、上記ステップS701において、CPU33が、以下の処理を行うようにしてもよい。CPU33が、今回アップデート対象であるモジュールを含むコンテンツリストに含まれる原因モジュールのバージョンが、FLASHメモリ99に記憶されている原因モジュールのバージョンであるかを判断する。今回アップデート対象であるモジュールを含むコンテンツリストに含まれる原因モジュールのバージョンが、FLASHメモリ99に記憶されている原因モジュールのバージョンである場合は、処理がステップS702に進む。
今回アップデート対象であるモジュールを含むコンテンツリストに含まれる原因モジュールのバージョンが、FLASHメモリ99に記憶されている原因モジュールのバージョンでない場合は、処理がステップS704に進む。また、上記ステップS708において、CPU33が、外部アプリ415が正常動作しない原因となったモジュールを原因モジュールとして、そのバージョンをFLASHメモリ99の特定の領域に保存する。
(外部アプリの動作確認テスト)
次に、外部アプリ415の動作確認テスト(自動テスト)について説明する。前提として、画像形成装置102に、外部アプリ415の動作確認テストを実行するためのテストフレームワークを提供する。この例では、テストフレームワークは、Tester403と外部アプリテストサービス408である。
画像形成装置102のメーカーは、テストフレームワークの仕様を公開し、外部アプリ提供メーカーは、公開された仕様に基づいて、Tester403から起動できるように外部アプリテストモジュール416を作成する。すなわち、外部アプリテストモジュール416は、予め決められたテストフレームワークの仕様に応じて作成され、外部アプリ415とともに画像形成装置102にインストールされる。外部アプリテストモジュール416がテストフレームワークの仕様に応じて作成されているので、Tester403から正常に外部アプリテストモジュールを起動させることができる。また、外部アプリテストモジュールから外部アプリテストサービス408に対して機能モジュールの動作のふるまいの設定を指示することができる。
外部アプリテストモジュール416は、テストフレームワークと連携して、外部アプリ415のテストを実行し、テスト結果をTester403に通知する。このテストフレームワークの仕組みにより、未知の外部アプリ415の自動テストが可能になる。前述した図7のS706においては、Tester403に通知された自動テストの実行結果に基づいて、そのままアップデートを終了するか、ダウングレードを実施するかが判断される。
図8は、外部アプリの動作確認テストの実行処理の例を説明するフローチャートである。外部アプリの動作確認テストの実行処理は、FLASHメモリ99に格納されたプログラムに従って、CPU33がTester403を実行することで行われる。
まず、CPU33が、Tester403を起動する(ステップS801)。続いて、Tester403が、外部アプリテストサービス408を起動する(ステップS802)。
次に、Tester403が、外部アプリ提供メーカーから提供された外部アプリテストモジュール416を起動する(ステップS803)。続いて、外部アプリテストモジュール416が、実際に外部アプリ415を動作させて自動テストを実行する前に、外部アプリテストサービス408に指示する(ステップS804)。そして外部アプリテストサービス408が、テスト実行中の機能モジュール群401の機能のふるまいを設定する(ステップS805)。
すなわち、外部アプリテストサービス408は、動作確認テストの内容に対応する、予め決められた画像形成装置の機能のふるまいを設定する。例えば、外部アプリテストサービス408は、動作確認テスト時のPRINT411の機能のふるまいを以下のように設定する。外部アプリテストサービス408は、PRINT411が外部アプリ415の指示により生成した画像データを媒体に印刷出力せずに外部アプリテストモジュール416による動作確認テスト用のデータとして出力することを設定する。動作確認テスト用のデータは、外部アプリ415の動作結果として、外部アプリテストサービス408を介して外部アプリテストモジュール416に渡される。
また、例えば、外部アプリテストサービス408は、動作確認テスト時のSEND414の機能のふるまいを以下のように設定する。外部アプリテストサービス408は、SEND414が外部アプリ415の指示により生成した送信用データを外部の機器に送信せずに、動作確認テスト用のデータとして出力することを設定する。外部アプリテストサービス408は、これらの例にとどまらず、機能モジュール群401の機能のふるまいをテスト実行用に切り替える処理を行うことができる。
外部アプリテストモジュール416は、実施したい自動テストに応じた機能モッジュール群401のふるまいの設定を外部アプリテストサービス408に指示する。このために、外部アプリテストサービス408からどのように機能動作の切り替えを行うかに関する情報が、外部アプリ提供メーカーに予め公開されている。外部アプリ提供メーカーは、公開されている情報に基づいて、外部アプリテストモジュール416を作成し、画像形成装置102に提供する。
次に、外部アプリテストモジュール416が、外部アプリ415の自動テストを実行する(ステップS806)。次に、外部アプリテストモジュール416が、外部アプリテストサービス408を介して、自動テスト時の外部アプリ415の動作結果を取得する(ステップS807)。そして、外部アプリテストモジュール416が、取得した動作結果に基づいて、自動テストの成否(成功したか失敗したか)を示す情報を生成する(ステップS808)。外部アプリテストモジュール416が、自動テストの成否を示す情報(テスト結果)をTester403に通知する(ステップS809)。これにより、外部アプリテストモジュール416による自動テスト実行が終了する。外部アプリテストモジュール416が、操作部205を介して自動テストの実行結果を表示するようにしてもよい。
自動テスト実行終了後、CPU33が、外部アプリテストサービス416から機能モジュール群401に対してテスト実行時の機能のふるまいが設定されているかを判断する(ステップS810)。テスト実行時の機能のふるまいが設定されていない場合は、処理がステップS813に進む。テスト実行時の機能のふるまいが設定されている場合、Tester403が、外部アプリテストサービス416に対して、機能のふるまいの設計の解除を指示する(ステップS811)。外部アプリテストサービス416が、機能モジュール群401内の各機能に対して行ったふるまいの設定を解除する(ステップS812)。そして、Tester403が、外部アプリテストサービス416を終了させる(ステップS813)。
本実施形態の画像形成装置102によれば、ファームウェアのアップデート後に、外部アプリが正常動作するかを自動でかつ効率良くテストすることができる。したがって、外部アプリが正常動作しない場合に、すぐにユーザに通知することができる。
図9は、他の実施形態のシステム構成例を示す図である。図9に示す情報処理システムでは、外部アプリ416が、画像形成装置102とネットワークを介して接続された情報処理装置である外部システムサーバ103と連携して動作する。ユーザは、画像形成装置102が備えるブラウザ417から外部システムサーバ103上の外部システムアプリ901を介して、外部アプリ415にアクセスし、画像形成装置102の機能を動作させる。
CPU33が、Tester403をアップデート処理終了後に起動する。Tester403が、外部アプリテストサービス408と外部アプリテストモジュール416とを起動する。起動された外部アプリテストモジュール416が、画像形成装置102内のブラウザ417を介して、外部システムサーバ103にアクセスする。
外部システムサーバ103には、外部アプリ415と連携動作する外部システムアプリ901(第3のアプリケーション)がインストールされている。外部システムアプリ901が、画像形成装置102内にインストールされている外部アプリ415にアクセスする。外部アプリ416は、外部システムアプリ901からのアクセスに応じて、外部アプリ実行プラットフォーム407、機能モジュール群401へ指示を行って、画像形成装置102の機能を動作させる。テストフレームワーク(Tester403と外部アプリテストサービス408)による自動テスト実行は、図8を参照して説明した手順と同様の手順で行うことができる。図9に示す情報処理システムによれば、画像形成装置102が、外部システムサーバ103と連携して外部アプリ415の自動テストを実行することができる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
100 コンテンツサーバ
102 画像形成装置

Claims (8)

  1. 第1のソフトウェアと第2のソフトウェアとがインストールされた画像形成装置であって、
    前記第1のソフトウェアは、前記画像形成装置がアップデート管理対象とするソフトウェアであり、前記第2のソフトウェアは、前記画像形成装置がアップデート管理対象としないソフトウェアであり、
    前記第1のソフトウェアをアップデートまたはダウングレードする更新手段と、
    前記第1のソフトウェアがアップデートされた後に前記第2のソフトウェアの動作確認テストを実行するテストモジュールを起動する起動手段と、
    前記起動したテストモジュールによる前記第2のソフトウェアの動作確認テストの実行前に、該動作確認テスト時に該第2のソフトウェアの指示にしたがって動作する前記画像形成装置の機能のふるまいを設定する設定手段とを備える
    ことを特徴とする画像形成装置。
  2. 前記テストモジュールは、予め決められた前記起動手段と前記設定手段の仕様に応じて作成され、前記第2のソフトウェアとともに前記画像形成装置にインストールされており、
    前記設定手段は、前記テストモジュールが実行する前記動作確認テストの内容に対応する、予め決められた前記画像形成装置の機能のふるまいを設定する
    ことを特徴とする請求項1に記載の画像形成装置。
  3. 前記設定手段は、前記動作確認テスト時に、前記画像形成装置が、前記第2のソフトウェアの指示により生成した画像データを媒体に印刷出力せずに前記テストモジュールによる動作確認テスト用のデータとして出力することを設定する
    ことを特徴とする請求項1に記載の画像形成装置。
  4. 前記設定手段は、前記動作確認テスト時に、前記画像形成装置が、前記第2のソフトウの指示により生成された外部装置への送信用データを送信せずに前記テストモジュールによる前記動作確認テスト用のデータとして出力することを設定する
    ことを特徴とする請求項1に記載の画像形成装置。
  5. 前記第1のソフトウェアがアップデートされた後に前記第2のソフトウェアが正常動作しない場合に、該第1のソフトウェアが含むモジュールに対応する版数を記憶手段に記憶して管理する管理手段と、
    前記第1のソフトウェアのアップデート指示がされた場合に、該第1のソフトウェアがアップデートされた場合の該第1のソフトウェアが含むモジュールに関する版数が前記記憶手段に記憶されている版数と合致するかを判断する判断手段と、
    前記第1のソフトウェアがアップデートされた場合の該第1のソフトウェアが含むモジュールに関する版数が前記記憶手段に記憶されている版数と合致すると判断された場合に、前記更新手段による該第1のソフトウェアのアップデートを中止する中止手段とを備える
    ことを特徴とする請求項1乃至4のいずれか1項に記載の画像形成装置。
  6. 第1のソフトウェアと第2のソフトウェアとがインストールされた画像形成装置と、前記画像形成装置にインストールされた前記第2のソフトウェアと連携動作する第3のアプリケーションがインストールされた情報処理装置とを備えるシステムであって、
    前記第1のソフトウェアは、前記画像形成装置がアップデート管理対象とするソフトウェアであり、前記第2のソフトウェアは、前記画像形成装置がアップデート管理対象としないソフトウェアであり、
    前記画像形成装置は、
    前記第1のソフトウェアをアップデートまたはダウングレードする更新手段と、
    前記第1のソフトウェアがアップデートされた後に前記第2のソフトウェアの動作確認テストを実行するテストモジュールを起動する起動手段と、
    前記テストモジュールによる前記第2のソフトウェアの動作確認テストの実行前に、該動作確認テスト時に該第2のソフトウェアの指示にしたがって動作する前記画像形成装置の機能のふるまいを設定する設定手段とを備え、
    前記起動されたテストモジュールは、前記情報処理装置にアクセスし、
    前記アクセスされた情報処理装置にインストールされた前記第3のアプリケーションが、前記画像形成装置にインストールされている前記第2のソフトウェアにアクセスし、該アクセスされた第2のソフトウェアが前記画像形成装置の機能を動作させる
    ことを特徴とする情報処理システム。
  7. 第1のソフトウェアと第2のソフトウェアとがインストールされた画像形成装置の制御方法であって、
    前記第1のソフトウェアは、前記画像形成装置がアップデート管理対象とするソフトウェアであり、前記第2のソフトウェアは、前記画像形成装置がアップデート管理対象としないソフトウェアであり、
    前記第1のソフトウェアがアップデートされた後に前記第2のソフトウェアの動作確認テストを実行するテストモジュールを起動する工程と、
    前記テストモジュールによる前記第2のソフトウェアの動作確認テストの実行前に、該動作確認テスト時に該第2のソフトウェアの指示にしたがって動作する前記画像形成装置の機能のふるまいを設定する工程とを有する
    ことを特徴とする制御方法。
  8. 請求項7に記載の制御方法をコンピュータに実行させる
    ことを特徴とするコンピュータプログラム。
JP2012126831A 2012-06-04 2012-06-04 画像形成装置、画像形成装置の制御方法およびコンピュータプログラム Pending JP2013250911A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012126831A JP2013250911A (ja) 2012-06-04 2012-06-04 画像形成装置、画像形成装置の制御方法およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012126831A JP2013250911A (ja) 2012-06-04 2012-06-04 画像形成装置、画像形成装置の制御方法およびコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2013250911A true JP2013250911A (ja) 2013-12-12

Family

ID=49849482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012126831A Pending JP2013250911A (ja) 2012-06-04 2012-06-04 画像形成装置、画像形成装置の制御方法およびコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP2013250911A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007514B2 (en) 2016-01-04 2018-06-26 Fuji Xerox Co., Ltd. Management apparatus, management system, management method, and non-transitory computer readable medium
JP2019074847A (ja) * 2017-10-13 2019-05-16 株式会社デンソー 電子制御装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007514B2 (en) 2016-01-04 2018-06-26 Fuji Xerox Co., Ltd. Management apparatus, management system, management method, and non-transitory computer readable medium
JP2019074847A (ja) * 2017-10-13 2019-05-16 株式会社デンソー 電子制御装置
JP7087334B2 (ja) 2017-10-13 2022-06-21 株式会社デンソー 電子制御装置

Similar Documents

Publication Publication Date Title
US8793677B2 (en) Electronic apparatus, software update method, and storage medium
EP2284704B1 (en) Information processing apparatus, method, and control program for determinnig the suitable monitoring time corresponding to a selected mode of processing
KR101478600B1 (ko) 펌웨어를 포함하는 화상형성장치, 화상형성장치의 제어방법, 및 기억매체
US9544450B2 (en) Image forming apparatus and method for updating firmware
US8922805B2 (en) Image processing apparatus having updatable firmware, method for controlling image processing apparatus, and program
JP5599055B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
US11076055B2 (en) Control apparatus detects an error in image processor and reboots the image processor before transmits printing data to printing apparatus
JP2011159232A (ja) 画像処理装置、消耗品発注方法、及び消耗品発注プログラム
JP2013250911A (ja) 画像形成装置、画像形成装置の制御方法およびコンピュータプログラム
US20170187889A1 (en) Information processing apparatus, information system, information processing method, and storage medium
JP2013250910A (ja) 画像形成装置、画像形成装置の制御方法およびコンピュータプログラム
US20110010718A1 (en) Electronic device, information processing method, and computer program product having computer-readable information processing program
JP6651895B2 (ja) 機器、制御方法及びプログラム
US20080114876A1 (en) Image forming apparatus and management system of image forming apparatus
CN109462711B (zh) 打印装置及其控制方法
JP5515642B2 (ja) 印刷装置とプログラムとサーバ装置
US9924059B2 (en) Apparatus having power-saving function, method of processing information, and computer program product
JP2011008568A (ja) 電子機器、電源の制御方法および制御プログラム
JP2007213404A (ja) 組込機器、ダウンロード方法、記憶媒体、プログラム
JP5932511B2 (ja) 情報処理装置、ソフトウェアの更新方法及びコンピュータプログラム
JP2020170984A (ja) 情報処理装置、画像処理装置及びプログラム
EP3699749B1 (en) Image forming device
JP2019213154A (ja) 画像処理装置、その制御方法、およびプログラム
JP7424457B2 (ja) 画像形成装置及びプログラム
JP6071684B2 (ja) 画像形成装置及びその制御方法、並びにプログラム