(57)【要約】【課題】複数のコンポーネントから構成されるソフトウェアの効率的なバージョンアップ手法を提供する。【解決手段】バージョンアップ管理装置５０は、指示受付部５１が受け付けたバージョンアップ対象のコンポーネント及びそのテストプログラムをコンポーネント管理サーバ３０から取得するコンポーネント取得部５２と、バージョンアップを実行するバージョンアップ試行部５３と、対応するテストプログラムを用いて当該コンポーネントのテストを行うテスト実行部５４と、テストに成功したコンポーネントでソフトウェア記憶部５９に記憶された対応コンポーネントを更新するバージョンアップ実行部５５とを有する。バージョンアップ試行部５３は、テストに失敗したことで実行制御部５６により未実行コンポーネント記憶部５８に登録されたコンポーネントが存在すれば、当該コンポーネントをバージョンアップ対象のコンポーネントと共にバージョンアップを実行する。【選択図】図４
2008269128.tif 000002
【特許請求の範囲】
【請求項１】
バージョンアップ対象機器に搭載されたソフトウェアの一部を構成するコンポーネントであってバージョンアップ単位となるコンポーネントのうち、バージョンアップ指示対象のコンポーネントと当該コンポーネントのテストプログラムとを所定の格納先から取得してコンポーネント記憶手段に登録する取得手段と、
前記コンポーネント記憶手段からバージョンアップ対象となるコンポーネントを取り出して、前記バージョンアップ対象機器においてバージョンアップを試行するバージョンアップ試行手段と、
前記バージョンアップ試行手段によりバージョンアップが試行されたことに伴いテスト対象として選択されたコンポーネントのテストプログラムを前記コンポーネント記憶手段から取り出して、当該選択されたコンポーネントのテストを実行するテスト実行手段と、
前記テスト実行手段によりコンポーネントの正常動作が確認できた場合には、確認できたコンポーネントのバージョンアップを実行することで、前記バージョンアップ対象機器搭載のソフトウェアを更新するバージョンアップ実行手段と、
を有することを特徴とするバージョンアップ管理装置。
【請求項２】
請求項１記載のバージョンアップ管理装置において、
前記テスト実行手段によりコンポーネントの正常動作が確認できなかった場合には、確認できなかったコンポーネント及びそのテストプログラムを前記コンポーネント記憶手段から削除する実行制御手段を有することを特徴とするバージョンアップ管理装置。
【請求項３】
請求項１記載のバージョンアップ管理装置において、
前記実行制御手段は、前記テスト実行手段によりコンポーネントの正常動作が確認できなかった場合には、確認できなかったコンポーネントの特定情報をバージョンアップ未実行情報記憶手段に登録し、
前記バージョンアップ試行手段は、バージョンアップ指示対象のコンポーネントのバージョンアップを試行する際に前記バージョンアップ未実行情報記憶手段にコンポーネントの特定情報が登録されていた場合には、当該コンポーネントをバージョンアップ対象として前記コンポーネント記憶手段から取り出してバージョンアップを試行することを特徴とするバージョンアップ管理装置。
【請求項４】
請求項３記載のバージョンアップ管理装置において、
前記バージョンアップ実行手段は、前記テスト実行手段により全てのコンポーネントの正常動作が確認できた場合には、当該全てのコンポーネントのバージョンアップを実行することを特徴とするバージョンアップ管理装置。
【請求項５】
請求項３記載のバージョンアップ管理装置において、
前記テスト実行手段によりテスト対象とされるコンポーネントのうちいずれかのコンポーネントにおいて正常動作が確認できなかった場合、正常動作が確認できなかったコンポーネントのみ、あるいは正常動作が確認できなかったコンポーネントの実行に連携して動作するコンポーネントの全てを実行不可能な状態に設定する手段を有することを特徴とするバージョンアップ管理装置。
【請求項６】
請求項３記載のバージョンアップ管理装置において、
前記実行制御手段は、前記テスト実行手段によりバージョンアップ指示対象のコンポーネントの正常動作が確認できた場合でも、前記バージョンアップ未実行情報記憶手段に特定情報が登録されているコンポーネントであってバージョンアップ指示対象のコンポーネントの実行に連携して動作するコンポーネントの正常動作が確認できなかった場合には、バージョンアップ指示対象のコンポーネントのバージョンアップを実行せずに当該コンポーネントの特定情報を前記バージョンアップ未実行情報記憶手段に登録することを特徴とするバージョンアップ管理装置。
【請求項７】
コンピュータを、
バージョンアップ対象機器に搭載されたソフトウェアの一部を構成するコンポーネントであってバージョンアップ単位となるコンポーネントのうち、バージョンアップ指示対象のコンポーネントと当該コンポーネントのテストプログラムとを所定の格納先から取得してコンポーネント記憶手段に登録する取得手段、
前記コンポーネント記憶手段からバージョンアップ対象となるコンポーネントを取り出して、前記バージョンアップ対象機器においてバージョンアップを試行するバージョンアップ試行手段、
前記バージョンアップ試行手段によりバージョンアップが試行されたコンポーネントのテストプログラムを前記コンポーネント記憶手段から取り出して、前記バージョンアップ対象機器においてバージョンアップされたコンポーネントのテストを実行するテスト実行手段、
前記テスト実行手段によりコンポーネントの正常動作が確認できた場合には、確認できたコンポーネントのバージョンアップを実行することで、前記バージョンアップ対象機器搭載のソフトウェアを更新するバージョンアップ実行手段、
として機能させることを特徴とするバージョンアップ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンポーネントから構成されるソフトウェアのバージョンアップに関する。
【背景技術】
【０００２】
画像形成装置には、コピー機能、スキャナ機能等種々の機能を実現するソフトウェアが搭載されているが、メーカー側は、契約等によって適宜バージョンアップする必要がある。従来においては、客先に設置された画像形成装置搭載のソフトウェアを、次のようにしてバージョンアップしていた。
【０００３】
すなわち、画像形成装置に搭載されるソフトウェアのモジュール構成は既知であるため、これらのモジュールを開発サイドでパッケージングして顧客向けのパッケージングソフトウェアを生成し、このパッケージングソフトウェアの動作確認テストを開発サイドにある画像形成装置にて行う。そして、テスト済みのソフトウェアを顧客の画像形成装置にインストールすることでソフトウェアのバージョンアップを行っていた。
【０００４】
このように、従来では、開発サイドにてソフトウェアの動作確認を行っていたので、客先設置の実機でバージョンアップ後の動作確認は特に行う必要はなかった。
【０００５】
ところで、近年では、機能の多種多様化に伴って客先設置の画像形成装置に搭載されるソフトウェアのモジュール組合せも多種多様化が進んでいる。また、画像形成装置を顧客の基幹システムと連動させるなど、開発サイドで提供していないソフトウェアが客先設置の画像形成装置に搭載される場合が少なくない。この結果、客先の実機でのテストが必須となってきている。
【０００６】
従来において、実機でのバージョンアップされたソフトウェアの動作確認を行う方法として、例えば、プログラム動作確認用ＲＡＭに最新のファームウェアプログラムをダウンロードし、そのダウンロードしたファームウェアプログラムのテスト印刷を行い、そのテスト印刷結果を確認したユーザによりＯＫスイッチが押下された場合には、ダウンロード兼書替えプログラムにより、ファームウェアプログラム用ＥＰＲＯＭの格納内容を消去し、プログラム動作確認用ＲＡＭに記憶されている最新のファームウェアプログラムで更新するプリンタのファームウェアプログラム更新技術が提案されている（例えば、特許文献１）。
【０００７】
【特許文献１】特開２０００−３２６５９３号公報
【特許文献２】特開平７−２００３０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来技術においては、バージョンアップされたソフトウェアの動作確認を客先で行うことはできても、ソフトウェア全体でのテストしか行うことができない。つまり、バージョンアップされたモジュールに関連する部分だけのテストを行うことができなかった。このように、モジュール等の複数のコンポーネントから構成されるソフトウェアを、コンポーネント単位でバージョンアップできれば都合よい。
【０００９】
本発明は、複数のコンポーネントから構成されるソフトウェアの効率的なバージョンアップの実現を目的とする。
【課題を解決するための手段】
【００１０】
以上のような目的を達成するために、本発明に係るバージョンアップ管理装置は、バージョンアップ対象機器に搭載されたソフトウェアの一部を構成するコンポーネントであってバージョンアップ単位となるコンポーネントのうち、バージョンアップ指示対象のコンポーネントと当該コンポーネントのテストプログラムとを所定の格納先から取得してコンポーネント記憶手段に登録する取得手段と、前記コンポーネント記憶手段からバージョンアップ対象となるコンポーネントを取り出して、前記バージョンアップ対象機器においてバージョンアップを試行するバージョンアップ試行手段と、前記バージョンアップ試行手段によりバージョンアップが試行されたことに伴いテスト対象として選択されたコンポーネントのテストプログラムを前記コンポーネント記憶手段から取り出して、当該選択されたコンポーネントのテストを実行するテスト実行手段と、前記テスト実行手段によりコンポーネントの正常動作が確認できた場合には、確認できたコンポーネントのバージョンアップを実行することで、前記バージョンアップ対象機器搭載のソフトウェアを更新するバージョンアップ実行手段とを有することを特徴とする。
【００１１】
また、前記テスト実行手段によりコンポーネントの正常動作が確認できなかった場合には、確認できなかったコンポーネント及びそのテストプログラムを前記コンポーネント記憶手段から削除する実行制御手段を有することを特徴とする。
【００１２】
また、前記実行制御手段は、前記テスト実行手段によりコンポーネントの正常動作が確認できなかった場合には、確認できなかったコンポーネントの特定情報をバージョンアップ未実行情報記憶手段に登録し、前記バージョンアップ試行手段は、バージョンアップ指示対象のコンポーネントのバージョンアップを試行する際に前記バージョンアップ未実行情報記憶手段にコンポーネントの特定情報が登録されていた場合には、当該コンポーネントをバージョンアップ対象として前記コンポーネント記憶手段から取り出してバージョンアップを試行することを特徴とする。
【００１３】
また、前記バージョンアップ実行手段は、前記テスト実行手段により全てのコンポーネントの正常動作が確認できた場合には、当該全てのコンポーネントのバージョンアップを実行することを特徴とする。
【００１４】
また、前記テスト実行手段によりテスト対象とされるコンポーネントのうちいずれかのコンポーネントにおいて正常動作が確認できなかった場合、正常動作が確認できなかったコンポーネントのみ、あるいは正常動作が確認できなかったコンポーネントの実行に連携して動作するコンポーネントの全てを実行不可能な状態に設定する手段を有することを特徴とする。
【００１５】
また、前記実行制御手段は、前記テスト実行手段によりバージョンアップ指示対象のコンポーネントの正常動作が確認できた場合でも、前記バージョンアップ未実行情報記憶手段に特定情報が登録されているコンポーネントであってバージョンアップ指示対象のコンポーネントの実行に連携して動作するコンポーネントの正常動作が確認できなかった場合には、バージョンアップ指示対象のコンポーネントのバージョンアップを実行せずに当該コンポーネントの特定情報を前記バージョンアップ未実行情報記憶手段に登録することを特徴とする。
【００１６】
本発明に係るバージョンアップ管理プログラムは、コンピュータを、バージョンアップ対象機器に搭載されたソフトウェアの一部を構成するコンポーネントであってバージョンアップ単位となるコンポーネントのうち、バージョンアップ指示対象のコンポーネントと当該コンポーネントのテストプログラムとを所定の格納先から取得してコンポーネント記憶手段に登録する取得手段、前記コンポーネント記憶手段からバージョンアップ対象となるコンポーネントを取り出して、前記バージョンアップ対象機器においてバージョンアップを試行するバージョンアップ試行手段、前記バージョンアップ試行手段によりバージョンアップが試行されたコンポーネントのテストプログラムを前記コンポーネント記憶手段から取り出して、前記バージョンアップ対象機器においてバージョンアップされたコンポーネントのテストを実行するテスト実行手段、前記テスト実行手段によりコンポーネントの正常動作が確認できた場合には、確認できたコンポーネントのバージョンアップを実行することで、前記バージョンアップ対象機器搭載のソフトウェアを更新するバージョンアップ実行手段、として機能させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、バージョンアップされたコンポーネントと、そのコンポーネントのテストプラグラムとを関連付けて取り扱えるようにしたので、コンポーネント単位でのバージョンアップ及びバージョンアップ後のコンポーネントに対するテストを容易に行うことができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００１９】
図１は、本発明に係るバージョンアップ管理装置の一実施の形態を含むネットワークシステムの全体構成図である。図１には、画像形成装置１０と、ソフトウェアを構成するコンポーネントを管理するコンポーネント管理サーバ３０とがネットワーク２２を介して接続された構成が示されている。画像形成装置１０は、コンポーネント管理サーバ３０が管理するコンポーネントを含むソフトウェアが搭載されることによって動作する情報機器であり、本実施の形態におけるバージョンアップ管理装置を内蔵している。コンポーネント管理サーバ３０は、画像形成装置１０を動作させるためのソフトウェアをコンポーネント単位に管理するサーバコンピュータである。コンポーネント管理サーバ３０はコンポーネントをパッケージングして顧客に提供するメーカサイトに、画像形成装置１０は各顧客の事業所に、それぞれ設置される。
【００２０】
ここで、本実施の形態におけるコンポーネントというのは、プログラムモジュールの一部のプログラムのことである。画像形成装置１０の場合、コピー機能、スキャナ機能、ＦＡＸ機能、フィニッシャー機能等のソフトウェア若しくはソフトウェアとハードウェアとの協調動作によって実現される機能のうち、顧客からの要求に応じた機能ソフトウェアがそれぞれパッケージングされて画像形成装置１０に搭載されることになるが、本実施の形態では、機能毎にコンポーネントが形成されることになる。そして、本実施の形態では、機能単位にバージョンアップすることを想定しているので、コンポーネントは、バージョンアップを実施するソフトウェア単位のことでもある。
【００２１】
図２は、本実施の形態における画像形成装置１０のハードウェア構成図である。画像形成装置１０は、コピー機能、スキャナ機能等各種機能を搭載した複合機であり、コンピュータを内蔵した装置である。なお、本実施の形態におけるバージョンアップ管理装置は、このコンピュータによって実現される。図２において、ＣＰＵ１１は、リードオンリメモリ（ＲＯＭ）１９に格納されたプログラムにしたがってスキャナ１４やプリンタエンジン１６等本装置に搭載された各種機構の動作制御を行う。アドレスデータバス１２は、ＣＰＵ１１の制御対象となる各種機構と接続してデータの通信を行う。操作パネル１３は、ユーザからの指示の受け付け、情報の表示を行う。スキャナ１４は、ユーザがセットした原稿を読み取り、電子データとしてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１５等に蓄積する。ＨＤＤ１５は、スキャナ１４を使用して読み取った電子文書などを格納する。本実施の形態で利用する親展ボックスは、ＨＤＤ１５に設けられる。プリンタエンジン１６は、ＣＰＵ１１で実行される制御プログラムからの指示に従い出力用紙上に画像を印字する。ネットワークインタフェース（Ｉ／Ｆ）１７は、ネットワーク２２を接続し、本装置が生成した電子データの送信、本装置宛に送信されてきた電子データの受信、またブラウザ経由による本装置へのアクセスなどに利用される。ランダムアクセスメモリ（ＲＡＭ）１８は、プログラム実行時のワークメモリや電子データ送受信時の通信バッファとして利用される。ＲＯＭ１９は、本装置の制御や電子データの暗号、電子データの送受信に関する各種プログラムが格納されている。各種プログラムが実行されることで後述する各構成要素が所定の処理機能を発揮する。外部メディアインタフェース（Ｉ／Ｆ）２０は、ＵＳＢメモリ、フラッシュメモリ等の外部メモリ機器とのインタフェースである。
【００２２】
図３は、本実施の形態におけるコンポーネント管理サーバ３０を形成するコンピュータのハードウェア構成図である。本実施の形態におけるコンポーネント管理サーバ３０は、従前から存在する汎用的なハードウェア構成で実現できる。すなわち、コンピュータは、図３に示したようにＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ハードディスクドライブ（ＨＤＤ）３４を接続したＨＤＤコントローラ３５、入力手段として設けられたマウス３６とキーボード３７、及び表示装置として設けられたディスプレイ３８をそれぞれ接続する入出力コントローラ３９、通信手段として設けられたネットワークコントローラ４０を内部バス４１に接続して構成される
【００２３】
図４は、本実施の形態におけるネットワークシステムを示したブロック構成図である。なお、画像形成装置１０及びコンポーネント管理サーバ３０において、本実施の形態の説明に用いない機能については、図４から省略した。また、コンポーネント管理サーバ３０からソフトウェアの提供を受ける画像形成装置１０は、以下に説明する動作をする上で同様の構成を有していればよいので、図４では１台の画像形成装置１０のみ示した。
【００２４】
まず、コンポーネント管理サーバ３０は、コンポーネント配信部４２とコンポーネントデータベース４３を有している。コンポーネントデータベース４３には、ソフトウェアを構成する全てのコンポーネントと、各コンポーネントの動作確認用のテストプログラムが格納される。コンポーネント配信部４２は、画像形成装置１０からの取得要求に応じて指示されたコンポーネントと、対応するテストプログラムとを組にしてダウンロードする。従って、図４に示したように、コンポーネントと、対応するテストプログラムとを組にしてコンポーネントデータベース４３で保持するように構成するのが好適である。
【００２５】
コンポーネント配信部４２は、コンポーネント管理サーバ３０を形成するコンピュータと、コンピュータに搭載されたＣＰＵ３１で動作するプログラムとの協調動作により実現される。また、コンポーネントデータベース４３は、ＨＤＤ３４にて実現される。
【００２６】
一方、画像形成装置１０は、前述したように本実施の形態におけるバージョンアップ管理装置５０と、画像形成装置１０において所定機能を発揮するためのパッケージングソフトウェアを保存するソフトウェア記憶部５９とを有している。ソフトウェア記憶部５９には、画像形成装置１０搭載の各種機能を実現するコンポーネントが格納される。
【００２７】
バージョンアップ管理装置５０は、指示受付部５１、コンポーネント取得部５２、バージョンアップ試行部５３、テスト実行部５４、バージョンアップ実行部５５、実行制御部５６、コンポーネント記憶部５７及び未実行コンポーネント記憶部５８を有している。指示受付部５１は、画像形成装置１０を操作するユーザからのバージョンアップ指示を受け付ける。コンポーネント取得部５２は、ユーザによって指示されたバージョンアップ対象のコンポーネントと当該コンポーネントのテストプログラムとを所定の格納先であるコンポーネント管理サーバ３０から取得してコンポーネント記憶部５７に登録する。バージョンアップ試行部５３は、コンポーネント記憶部５７からバージョンアップ対象となるコンポーネントを取り出して、画像形成装置１０においてバージョンアップを実行する。テスト実行部５４は、バージョンアップ試行部５３によりバージョンアップが実行されたことに伴いテスト対象として選択されたコンポーネントのテストプログラムをコンポーネント記憶部５７から取り出して、当該選択されたコンポーネントの動作確認テストを実行する。バージョンアップ実行部５５は、テスト実行部５４によりコンポーネントの正常動作が確認できた場合には、確認できたコンポーネントのバージョンアップを実行することで、画像形成装置１０搭載のソフトウェアを更新する。
【００２８】
なお、バージョンアップ試行部５３によるバージョンアップの実行というのは、取得されたコンポーネントのバージョンアップ（インストール処理）を実行することに相当する。このバージョンアップを実行した結果は、ＲＡＭ１８にロードされた状態にある。一方、バージョンアップ実行部５５によるバージョンアップの実行というのは、テスト実行部５４によりコンポーネントの正常動作が確認できたことによって、その正常動作が確認できたコンポーネントを画像形成装置１０における所定の格納先、すなわちソフトウェア記憶部５９に格納することによってソフトウェアを更新する。このソフトウェアの更新によって当該コンポーネントのバージョンアップは完了し、当該コンポーネントは有効になり、これ以降、更新されたコンポーネントが起動され実行されることになる。本実施の形態では、この相違を明確にするためにテスト実行前のバージョンアップ（インストール処理）を「試行」と称することにした。
【００２９】
実行制御部５６は、前述した各構成要素５１〜５５と連携動作して、バージョンアップ全体の処理制御を行う。コンポーネント記憶部５７には、上記の通りコンポーネント取得部５２により取得されたコンポーネントと当該コンポーネントのテストプログラムとを組にして登録される。未実行コンポーネント記憶部５８には、バージョンアップを試行した結果、テストにより正常動作が確認されなかったコンポーネントの特定情報が登録される。コンポーネントの特定情報というのは、コンポーネント自体でもよいが、本実施の形態では、コンポーネント管理サーバ３０から取得したコンポーネントに識別情報（コンポーネントＩＤ）を付加して各コンポーネントを管理することを想定しているので、該当するコンポーネントのコンポーネントＩＤを未実行コンポーネント記憶部５８に登録するようにしてもよい。このコンポーネントＩＤをキーにしてコンポーネント記憶部５７を検索することで、バージョンアップに用いるコンポーネント及び当該コンポーネントのテストプログラムを特定できる。
【００３０】
画像形成装置１０における各構成要素５１〜５６は、画像形成装置１０に搭載されたコンピュータと、コンピュータに搭載されたＣＰＵ１１で動作するプログラムとの協調動作により実現される。また、コンポーネント記憶部５７及びソフトウェア記憶部５９は、ＨＤＤ１５にて実現される。未実行コンポーネント記憶部は、ＨＤＤ１５またはＲＡＭ１８にて実現される。
【００３１】
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムはコンピュータにインストールされ、コンピュータのＣＰＵがインストールプログラムを順次実行することで各種処理が実現される。
【００３２】
次に、本実施の形態におけるソフトウェアのバージョンアップ処理について図５に示したフローチャートを用いて説明する。なお、ここでは、バージョンアップ対象機器の画像形成装置１０には、９つのコンポーネントＡ〜Ｉの組合せで構成されたソフトウェアが搭載されているものとして説明する。
【００３３】
まず、例えばコンポーネントＡがバージョンアップされたことを知ったユーザが、そのコンポーネントＡのバージョンアップ指示を操作パネル１３から入力したとすると、指示受付部５１は、その入力された指示内容を受け付ける（ステップ１０１）。続いて、コンポーネント取得部５２は、指示受付部５１が受け付けたユーザ指示に従って最新バージョンのコンポーネントＡの取得要求をコンポーネント管理サーバ３０へ送信する。コンポーネント管理サーバ３０のコンポーネント配信部４２は、この要求に応じて指定されたコンポーネントＡ及びコンポーネントＡのテストプログラムをコンポーネントデータベース４３から取り出し、要求送信元の画像形成装置１０へ返信する。このようにして、コンポーネント管理サーバ３０からコンポーネントＡ及び当該テストプログラムを取得すると、コンポーネント取得部５２は、コンポーネントＡにコンポーネントＩＤを新たに生成し、このコンポーネントＩＤ、コンポーネントＡ及び当該テストプログラムを組にしてコンポーネント記憶部５７に登録する（ステップ１０２）。
【００３４】
以上のようにバージョンアップ対象のソフトウェア、すなわち最新バージョンのコンポーネントＡがコンポーネント記憶部５７に登録されると、バージョンアップ試行部５３は、バージョンアップを試行する（ステップ１０３）。なお、ここでは、基本的な処理の流れを先に説明することにして、未実行コンポーネント記憶部５８にコンポーネントＩＤが登録されていないものとすると（ステップ１０４でＮ、１０６）、次に、テスト実行部５４は、バージョンアップされたコンポーネントＡの動作確認テストを実施する（ステップ１０７）。この結果、テスト対象のコンポーネントＡの正常動作が確認できた場合（ステップ１０８でＹ）、他にテストを行うべきコンポーネントの存在を確認する。ここでは、他のコンポーネントは存在しないので（ステップ１０９でＮ）、次に、バージョンアップ実行部５５は、テストに成功したことにより正常動作が確認できたコンポーネントＡでソフトウェア記憶部５９に記憶されているバージョンアップ前のコンポーネントＡを更新することで、バージョンアップを実行する（ステップ１１０）。この処理によりバージョンアップが正常に完了するので、コンポーネントと、対応するテストプログラムとをコンポーネント記憶部５７から削除してもよい。また、追って説明するように、未実行コンポーネント記憶部５８に登録されているコンポーネントＩＤ対応のコンポーネントに対するバージョンアップが正常に終了した場合には、該当するコンポーネントＩＤを未実行コンポーネント記憶部５８から削除する。
【００３５】
本実施の形態では、以上説明したように、指示されたコンポーネントと当該テストプログラムとの組を取得するようにしたので、ソフトウェアのバージョンアップ及びテストをコンポーネント単位で画像形成装置１０側において行うことができる。
【００３６】
一方、動作確認のテストを行った結果、コンポーネント単位でのバージョンアップが正常に終了しなかった場合（ステップ１０８でＮ）、テストに失敗したことにより正常動作が確認できなかったことを認識した実行制御部５６は、そのテストに失敗したコンポーネントＡのコンポーネントＩＤを未実行コンポーネント記憶部５８に登録する（ステップ１１１）。なお、動作確認が失敗した場合、実行制御部５６は、ソフトウェア記憶部５９を更新せずに処理を終了させる。
【００３７】
本実施の形態では、以上のようにバージョンアップが正常に終了しなかった場合、その旨が認識できるように当該コンポーネントＩＤを未実行コンポーネント記憶部５８に登録しておく。未実行コンポーネント記憶部５８には、コンポーネントに対するバージョンアップが続けて正常に終了しなかった場合には、それら複数のコンポーネントＩＤが未実行コンポーネント記憶部５８に順番に登録されていくことになる。
【００３８】
このようにして、未実行コンポーネント記憶部５８には、コンポーネントＩＤが登録されていくことになる。なお、説明の便宜のために、ここでは、コンポーネントＡに対してバージョンアップが指示されたときにコンポーネントＥ，ＦのコンポーネントＩＤが未実行コンポーネント記憶部５８に登録されているとする。
【００３９】
この例のように、未実行コンポーネント記憶部５８にコンポーネントＩＤが登録されていた場合（ステップ１０４でＹ）、バージョンアップ試行部５３は、未実行コンポーネント記憶部５８に記憶されているコンポーネントＩＤに対応するコンポーネントをコンポーネント記憶部５７から順番に取り出して、バージョンアップを試行する（ステップ１０５）。つまり、ここでは、バージョンアップ指示対象のコンポーネントＡに加えて、バージョンアップは指示されていないものの未実行コンポーネント記憶部５８への登録内容から特定できるコンポーネントＥ，Ｆも合わせてバージョンアップ対象として選択されることによってバージョンアップが試行されることになる。そして、この例のように、動作確認対象のコンポーネントが複数存在する場合には、その中からいずれかのコンポーネントを選択して動作確認テストを順番に行うことにしている（ステップ１０６）。
【００４０】
そして、ステップ１０６〜１０９において、テスト対象として選択された全てのコンポーネント、この例ではコンポーネントＡ，Ｅ，Ｆに対するテストが正常終了した場合（ステップ１０９でＮ）、バージョンアップ実行部５５は、正常動作が確認できた全てのコンポーネントＡ，Ｅ，Ｆでソフトウェア記憶部５９に記憶されているバージョンアップ前の対応するコンポーネントを更新することで、バージョンアップを実行する（ステップ１１０）。なお、バージョンアップの正常終了に伴い、実行制御部５６は、バージョンアップが正常に終了したコンポーネントＥ，ＦのコンポーネントＩＤを未実行コンポーネント記憶部５８から削除する。
【００４１】
このように、本実施の形態では、バージョンアップが失敗したコンポーネントをいったん待機させておき、他のコンポーネントのバージョンアップ指示に便乗して待機させていたコンポーネントのバージョンアップを合わせて試行し、そしてテストが成功したときにはソフトウェアを更新することでバージョンアップを完了するようにした。本実施の形態によれば、このように、テストに失敗していたコンポーネントのバージョンアップを、他のコンポーネントのバージョンアップ時に便乗して実行可能にしたので、バックアップ管理者のバージョンアップ作業にかかる負荷を軽減することができる。なお、バージョンアップが指示されたコンポーネントと、そのバージョンアップに便乗させるコンポーネントとの間に、機能上の関連性など特別な関係はなくてよい。
【００４２】
ところで、例えば未実行コンポーネント記憶部５８への登録内容から複数のコンポーネントが動作確認できずにバージョンアップの実行が待機状態にあり、他のコンポーネントに対するバージョンアップ指示（ステップ１０１）に便乗してバージョンアップ（ステップ１０５）が実行されたとする。全てのコンポーネントが共にテストに成功した場合については前述したとおりであるが、テストに成功したコンポーネントと、テストに失敗したコンポーネントとが混在する場合が考えられる。この場合、次のような対応が考えられる。
【００４３】
第１に、テストに成功したコンポーネントは、そのコンポーネントでソフトウェア記憶部５９を更新し、テストに失敗したコンポーネントは、当該コンポーネントＩＤを未実行コンポーネント記憶部５８に登録する。
【００４４】
第２に、バージョンアップ対象のコンポーネントの全てが共に成功しなかった場合、テストに成功したコンポーネントも、テストに失敗したコンポーネントと共に当該コンポーネントＩＤを未実行コンポーネント記憶部５８に登録する。
【００４５】
第３に、テストに失敗したコンポーネントに関しては、コンポーネント及び対応するテストプログラムをコンポーネント記憶部５７から削除する。つまり、削除対象のコンポーネントに対するバージョンアップは、ユーザにより改めて指示されるのを待つことになる。なお、テストに成功したコンポーネントに対しては、正常終了としてそのコンポーネントでソフトウェア記憶部５９を更新する。あるいは、第２のケースのようにテストに成功したコンポーネントに対しても、コンポーネント及び対応するテストプログラムをコンポーネント記憶部５７から削除する。
【００４６】
第４に、テストに失敗したコンポーネントに関しては、コンポーネントの実行を不可能にする。これは、バージョンアップ対象となったバージョンアップ前のコンポーネントに対して有効とするものであり、よって画像形成装置１０において当該コンポーネントによる機能が使えなくなることに等しい。テストに成功したコンポーネントに対しては、正常終了としてそのコンポーネントでソフトウェア記憶部５９を更新する。あるいは、第２のケースのようにテストに成功したコンポーネントに対しても、当該コンポーネントによる機能を使えなくする。
【００４７】
第１のケースは、最も単純な対応であるが、これは、各コンポーネントに関連性のない場合に適している。なお、関連性のあるというのは、例えばコピー機能は、スキャナ機能とは異なる機能を実現するが、紙媒体を読み取る際にスキャナ機能を利用することになるので、このように完全に独立していない関係にあることをいう。
【００４８】
第２のケースは、第１のケースとは逆に、テストに失敗したコンポーネントが基幹機能を成し、このコンポーネントが正常に動作しないのであれば、他のコンポーネントをバージョンアップしても無用な場合に適している。あるいは、バージョンを一致させなければならないコンポーネントの場合に適している。
【００４９】
第３のケースは、バージョンアップより既存バージョンで画像形成装置１０を確実に動作させることを優先したい場合に適している。
【００５０】
第４のケースは、例えばセキュリティ問題を解消するためのバージョンアップであって、このセキュリティ問題が解消できなければ機能の停止を選択する、緊急性の高いバージョンアップに適している。なお、このケースは、バージョンアップに関する実行制御ではなくコンポーネントに対する実行制御まで制御関係が及ぶので、実行制御部５６は、画像形成装置１０の該当する制御機構に、該当するコンポーネントの起動禁止を要求することになる。
【００５１】
以上のように、テストに成功したコンポーネントと、テストに失敗したコンポーネントとが混在する場合の対応としては、コンポーネントの特徴や関係等によっていずれか１つを選択したり、あるいは管理者等によっていずれかを選択できるようにしたりする。
【００５２】
また、本実施の形態では、バージョンアップ指示対象のコンポーネントを、あるいはバージョンアップ指示対象のコンポーネントに加えて未実行コンポーネント記憶部５８にコンポーネントＩＤが登録されているコンポーネントを、それぞれテスト対象として自動的に選択するようした。ただ、いずれかのコンポーネントのバージョンアップが試行され、テストに成功した場合でも、テストが成功したコンポーネントに関連する他のコンポーネントやソフトウェア全体の動作確認テストを、慎重を期すことなどを理由に行いたい場合がある。このような場合には、未実行コンポーネント記憶部５８にコンポーネントＩＤが登録されていなくても、システム管理者等による選択、指示に従って、テスト対象として選択されたコンポーネントのテストをテスト実行部５４に実行させるようにしてもよい。
【００５３】
本実施の形態では、本発明に係るバージョンアップ管理装置をバージョンアップ対象機器である画像形成装置１０に搭載した場合を例を用いて説明したが、バージョンアップ対象機器としては画像形成装置１０に限定する必要はなく、汎用的なコンピュータやコンピュータ搭載の他の情報機器であってもよい。
【図面の簡単な説明】
【００５４】
【図１】本発明に係るバージョンアップ管理装置の一実施の形態を含むネットワークシステムの全体構成図である。
【図２】本実施の形態における画像形成装置のハードウェア構成図である。
【図３】本実施の形態におけるコンポーネント管理サーバを形成するコンピュータのハードウェア構成図である。
【図４】本実施の形態におけるネットワークシステムを示したブロック構成図である。
【図５】本実施の形態におけるソフトウェアのバージョンアップ処理を示したフローチャートである。
【符号の説明】
【００５５】
１０  画像形成装置、１１，３１  ＣＰＵ、１２  アドレスデータバス、１３  操作パネル、１４  スキャナ、１５，３４  ハードディスクドライブ（ＨＤＤ）、１６  プリンタエンジン、１７  ネットワークインタフェース（Ｉ／Ｆ）、１８，３３  ＲＡＭ、１９，３２  ＲＯＭ、２０  外部メディアインタフェース（Ｉ／Ｆ）、２２  ネットワーク、３０  コンポーネント管理サーバ、３５  ＨＤＤコントローラ、３６  マウス、３７  キーボード、３８  ディスプレイ、３９  入出力コントローラ、４０  ネットワークコントローラ、４１  内部バス、４２  コンポーネント配信部、４３  コンポーネントデータベース、５０  バージョンアップ管理装置、５１  指示受付部、５２  コンポーネント取得部、５３  バージョンアップ試行部、５４  テスト実行部、５５  バージョンアップ実行部、５６  実行制御部、５７  コンポーネント記憶部、５８  未実行コンポーネント記憶部、５９  ソフトウェア記憶部。
【図１】
2008269128.tif 000003
【図２】
2008269128.tif 000004
【図３】
2008269128.tif 000005
【図４】
2008269128.tif 000006
【図５】
2008269128.tif 000007