(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続される機器に、導入対象のプログラムを送信する送信手段と、
再起動要求を前記機器に送信する再起動要求手段と、
再起動要求後の前記機器との通信不能状態の発生の有無を確認する再起動成否判定手段と、
前記再起動要求手段は、前記再起動成否判定手段によって前記通信不能状態の発生が確認されなかった場合は、前記再起動要求を再送信するプログラム導入支援装置。
【請求項２】
前記再起動成否判定手段は、通信不能状態が所定期間継続するかを確認し、
前記再起動要求手段は、前記再起動成否判定手段によって確認される前記通信不能状態が前記所定期間未満である場合は、前記再起動要求を再送信する請求項１記載のプログラム導入支援装置。
【請求項３】
前記再起動成否判定手段は、前記機器に応じて記憶手段に記憶されている期間の間、前記通信不能状態が継続するかを確認する請求項２記載のプログラム導入支援装置。
【請求項４】
前記通信不能状態の発生後、前記機器との通信が可能となったときに、前記機器より前記プログラムのバージョン情報を取得し、取得されたバージョン情報に基づいて該プログラムの導入の成否を判定する導入成否判定手段を有する請求項１乃至３いずれか一項記載のプログラム導入支援装置。
【請求項５】
ネットワークを介して接続される機器とプログラム導入支援装置とを有するプログラム導入支援システムであって、
前記プログラム導入支援装置は、
前記機器に、導入対象のプログラムを送信する送信手段と、
再起動要求を前記機器に送信する再起動要求手段と、
再起動要求後の前記機器との通信不能状態の発生の有無を確認する再起動成否判定手段と、
前記再起動要求手段は、前記再起動成否判定手段によって前記通信不能状態の発生が確認されなかった場合は、前記再起動要求を再送信するプログラム導入支援システム。
【請求項６】
ネットワークを介して接続される機器とプログラム導入支援装置とを有するプログラム導入支援システムにおけるプログラム導入支援方法であって、
前記プログラム導入支援装置が、
前記機器に、導入対象のプログラムを送信する送信手順と、
再起動要求を前記機器に送信する再起動要求手順と、
再起動要求後の前記機器との通信不能状態の発生の有無を確認する再起動成否判定手順と、
前記再起動成否判定手順において前記通信不能状態の発生が確認されなかった場合に、前記再起動要求を再送信する再送信手順とを実行するプログラム導入支援方法。
【請求項７】
前記再起動成否判定手順は、通信不能状態が所定期間継続するかを確認し、
前記再起動要求手順は、前記再起動成否判定手順によって確認される前記通信不能状態が前記所定期間未満である場合は、前記再起動要求を再送信する請求項６記載のプログラム導入支援方法。
【請求項８】
前記再起動成否判定手順は、前記機器に応じて記憶手順に記憶されている期間の間、前記通信不能状態が継続するかを確認する請求項７記載のプログラム導入支援方法。
【請求項９】
前記通信不能状態の発生後、前記機器との通信が可能となったときに、前記機器より前記プログラムのバージョン情報を取得し、取得されたバージョン情報に基づいて該プログラムの導入の成否を判定する導入成否判定手順を前記プログラム導入支援装置が実行する請求項６乃至８いずれか一項記載のプログラム導入支援方法。
【請求項１０】
コンピュータに、
ネットワークを介して接続される機器に、導入対象のプログラムを送信する送信手順と、
再起動要求を前記機器に送信する再起動要求手順と、
再起動要求後の前記機器との通信不能状態の発生の有無を確認する再起動成否判定手順と、
前記再起動成否判定手順において前記通信不能状態の発生が確認されなかった場合に、前記再起動要求を再送信する再送信手順とを実行させるためのプログラム導入支援プログラム。
【請求項１１】
前記再起動成否判定手順は、通信不能状態が所定期間継続するかを確認し、
前記再起動要求手順は、前記再起動成否判定手順によって確認される前記通信不能状態が前記所定期間未満である場合は、前記再起動要求を再送信する請求項１０記載のプログラム導入支援プログラム。
【請求項１２】
前記再起動成否判定手順は、前記機器に応じて記憶手順に記憶されている期間の間、前記通信不能状態が継続するかを確認する請求項１１記載のプログラム導入支援プログラム。
【請求項１３】
前記通信不能状態の発生後、前記機器との通信が可能となったときに、前記機器より前記プログラムのバージョン情報を取得し、取得されたバージョン情報に基づいて該プログラムの導入の成否を判定する導入成否判定手順を前記プログラム導入支援装置に実行させるための請求項１０乃至１２いずれか一項記載のプログラム導入支援プログラム。
【請求項１４】
請求項１０乃至１３いずれか一項記載のプログラム導入支援プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム導入支援装置、プログラム導入支援システム、プログラム導入支援方法、プログラム導入支援プログラム、及び記録媒体に関し、特にネットワークを介したプログラムの導入作業を支援するプログラム導入支援装置、プログラム導入支援システム、プログラム導入支援方法、プログラム導入支援プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
近年におけるプリンタ、コピー機、スキャナ、ファクシミリ、又はこれらの機能を一台の筐体で実現する複合機等の画像形成装置（以下、単に「機器」という。）では、メモリ等の制限は厳しいものの、汎用的なコンピュータと同様にＣＰＵを備え、各機能はプログラムの制御によって実現されるようになっている。
【０００３】
このようなプログラムのインストールやアップデート等の導入作業を複数台の機器や、遠隔地にあるに機器に対して行う必要がある場合は、当該機器とネットワークを介して接続されたＰＣ等からリモートで一括して導入作業を行うのが効率的である（例えば、特許文献１）。
【０００４】
一方で、プログラムのインストール又はアップデートを有効とするためには、機器の再起動が必要とされる場合がある。ネットワークを介して接続されたＰＣ等から遠隔的にプログラムの導入作業を行う場合、再起動要求がＰＣから機器に対して送信される。機器は、当該再起動要求に応じて再起動を実行する。ネットワークを介して再起動の制御が行えることで、遠隔地に配置されている機器についても導入作業を適切に完了させることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、機器側の都合によって、再起動要求が受信されても再起動できない場合がある。例えば、ユーザによって操作パネル等を介して所定の操作が行われている場合等の所定の状態において、機器は再起動要求を拒否する。現在の状態を優先させて、強制的に再起動が行われることによる不都合（例えば、設定内容が無効となってしまう等）を回避するためである。
【０００６】
そうすると、当該機器に関しては、機会を改めてプログラムの導入作業を行う必要がある。対象となる機器が多ければ多いほど、再起動に失敗する機器が発生する可能性は増加し、再起動に失敗した場合の作業負担は大きくなる。実際に、１００台を超える、広範囲に設置された機器に対して、ネットワークを介してプ導入作業が行われており、再起動に失敗した機器が広範囲にわたって散在する場合の作業負担の大きさは、遠隔的にかつ一括的な導入作業の利便性を没却しかねない。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、ネットワークを介したプログラムの導入作業の効率性を向上させることのできるプログラム導入支援装置、プログラム導入支援システム、プログラム導入支援方法、プログラム導入支援プログラム、及び記録媒体の提供を目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、本発明は、ネットワークを介して接続される機器に、導入対象のプログラムを送信する送信手段と、再起動要求を前記機器に送信する再起動要求手段と、再起動要求後の前記機器との通信不能状態の発生の有無を確認する再起動成否判定手段と、前記再起動要求手段は、前記再起動成否判定手段によって前記通信不能状態の発生が確認されなかった場合は、前記再起動要求を再送信する。
【０００９】
このようなプログラム導入支援装置では、ネットワークを介したプログラムの導入作業の効率性を向上させることができる。
【発明の効果】
【００１０】
本発明によれば、ネットワークを介したプログラムの導入作業の効率性を向上させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態におけるプログラム導入支援システムの構成例を示す図である。
【図２】本発明の実施の形態の画像形成装置のソフトウェア構成例を示す図である。
【図３】ＳＤＫプラットフォームにおけるファームウェアのアップデート機能の機能構成例を示す図である。
【図４】本発明の実施の形態における機器管理装置のハードウェア構成例を示す図である。
【図５】本発明の実施の形態における機器管理装置の機能構成例を示す図である。
【図６】アップデートオブジェクトの構成例を示す図である。
【図７】第一の実施の形態の画像形成装置のファームウェアのアップデート処理の処理手順を説明するためのシーケンス図である。
【図８】第一の実施の形態の機器管理装置の処理手順を説明するための図である。
【図９】第二の実施の形態の画像形成装置におけるアップデート処理に関する状態の遷移例を示す図である。
【図１０】第二の実施の形態の機器管理装置の処理手順を説明するための図である。
【図１１】第三の実施の形態の機器管理装置の処理手順を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態におけるプログラム導入支援システムの構成例を示す図である。
【００１３】
プログラム導入支援システム１において、機器管理装置１０と、一台以上の画像形成装置２０とは、ＬＡＮ（Local Area Network）又はインターネット等のネットワーク３０（有線又は無線の別は問わない。）を介して接続されている。
【００１４】
画像形成装置２０は、機器の一例であり、印刷、スキャン、コピー、及びファクス送受信等の複数の機能を一台の筐体において実現する複合機である。但し、画像形成装置２０は、必ずしも複合機でなくてもよい。プリンタやスキャナ等、単一の機能を実現する機器であってもよい。また、画像形成装置以外の機器が、画像形成装置２０の代わりに用いられてもよい。画像形成装置２０は、プログラムを追加又は更新することにより随時機能拡張等を図ることができる。
【００１５】
機器管理装置１０は、プログラム導入支援装置の一例であり、操作者による操作に応じて、画像形成装置２０に対するプログラムの導入作業（インストール又はアップデート等）を制御する、ＰＣ（Personal Computer）等のコンピュータである。
【００１６】
なお、一般的に「インストール」とは、画像形成装置２０が有していないプログラムの導入する作業をいう。一方、「アップデート」とは、画像形成装置２０に既にインストールされているプログラムを更新（アップデート）する作業をいう。但し、本実施の形態において、両者を区別する意義は無い。
【００１７】
画像形成装置２０について、更に詳細に説明する。図２は、本発明の実施の形態の画像形成装置のソフトウェア構成例を示す図である。同図において、画像形成装置２０は、標準アプリ２１、ＳＤＫアプリ２２、ＳＤＫプラットフォーム２３、コントロールサービス２４、及びＯＳ２５等を有する。
【００１８】
標準アプリ２１は、画像形成装置２０に標準的に（出荷時に予め）実装されているアプリケーションの集合である。同図では、スキャンアプリ２１１、印刷アプリ２１２、コピーアプリ２１３、及びＦＡＸアプリ２１４が例示されている。スキャンアプリ２１１は、スキャンジョブを実行する。印刷アプリ２１２は印刷ジョブを実行する。コピーアプリ２１３は、コピージョブを実行する。ＦＡＸアプリ２１４は、ＦＡＸの送信ジョブ又は受信ジョブを実行する。
【００１９】
コントロールサービス２４は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナの制御機能、プリンタの制御機能、メモリの管理機能等を有する。
【００２０】
ＳＤＫアプリ２２は、画像形成装置２０の出荷後において、画像形成装置２０の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションである。一台の画像形成装置２０に対して、一以上（一種類以上）のＳＤＫアプリ２２をインストールすることが可能である。
【００２１】
ＳＤＫプラットフォーム２３は、ＳＤＫアプリ２２の実行環境を提供するプログラムモジュール群である。各ＳＤＫアプリ２２は、ＳＤＫプラットフォーム２３が提供するＡＰＩ（Application Program Interface）を利用して開発される。例えば、ＳＤＫプラットフォーム２３は、スキャン機能を利用させるためのインタフェース、印刷機能を利用させるためのインタフェース、コピー機能を利用させるためのインタフェース等をＳＤＫアプリ２２に提供する。なお、ＳＤＫプラットフォーム２３のＡＰＩは公開されており、サードベンダ等によってもＳＤＫアプリ２２は開発されうる。本実施の形態では、ＳＤＫプラットフォーム２３を構成するプログラムモジュールを「ファームウェア」といい、ファームウェアがアップデート（更新）対象とされる例について説明する。
【００２２】
ＯＳ２５は、いわゆるＯＳ２５（Operating System）である。画像形成装置２０上の各ソフトウェアは、ＯＳ２５上においてプロセス又はスレッドとして動作する。
【００２３】
図３は、ＳＤＫプラットフォームにおけるファームウェアのアップデート機能の機能構成例を示す図である。同図に示されるように、ＳＤＫプラットフォーム２３は、ファームウェアのアップデートを実行するプログラムモジュールとして、要求応答部２３１、パッケージ展開部２３２、パッケージ一時記憶部２３３、及びアップデート実行部２３４等を有する。
【００２４】
要求応答部２３１は、機器管理装置１０からの要求に応じた処理を実行する。
【００２５】
パッケージ展開部２３２は、機器管理装置１０から転送される、アップデート対象のファームウェアのパッケージファイル（書庫ファイル）を展開し、展開されたフォームウェアをパッケージ一時記憶部２３３に保存する。
【００２６】
パッケージ一時記憶部２３３は、機器管理装置１０のＨＤＤ（Hard Disk Drive）等の不揮発性の記憶媒体を用いて、アップデート対象のファームウェアを一時的に記憶する。
【００２７】
アップデート実行部２３４は、画像形成装置２０の起動時又は再起動時に、パッケージ一時記憶部２３３を確認する。パッケージ一時記憶部２３３にファームウェアが保存されている場合、アップデート実行部２３４は、当該ファームウェアに関するアップデート処理を実行する。
【００２８】
続いて、機器管理装置１０について、更に詳細に説明する。図４は、本発明の実施の形態における機器管理装置のハードウェア構成例を示す図である。同図において、機器管理装置１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、ＣＰＵ１０４と、インタフェース装置１０５と、表示装置１０６と、入力装置１０７とを有する。
【００２９】
機器管理装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３０】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って機器管理装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００３１】
図５は、本発明の実施の形態における機器管理装置の機能構成例を示す図である。同図において、機器管理装置１０は、ＵＩ部１１、パッケージ生成部１２、パッケージ転送部１３、再起動要求部１４、再起動成否判定部１５、アップデート成否判定部１６、アップデートオブジェクト記憶部１７、及び機器情報記憶部１８等を有する。これら各部は、機器管理装置１０にインストールされたプログラムが、ＣＰＵ１０４に実行させる処理により実現される。
【００３２】
ＵＩ部１１は、ユーザインタフェースを提供する。例えば、ＵＩ部１１は、操作者より指示入力を受け付けるための画面を表示装置１０６に表示させる。
【００３３】
パッケージ生成部１２は、アップデート対象として選択されたアップデートオブジェジェクトに基づいて、アップデート先の画像形成装置２０（以下、「対象機器」という。）に応じたパッケージファイルを生成する。
【００３４】
アップデートオブジェクトとは、ＳＤＫプラットフォーム２３に対する更新部分に係るファームウェアの実体の集合を格納した書庫ファイルである。
【００３５】
図６は、アップデートオブジェクトの構成例を示す図である。同図における包含関係は、アップデートオブジェクトとしての書庫ファイル内のディレクトリの階層構造を示す。
【００３６】
アップデートオブジェクト内の直下のディレクトリには、ｐａｃｋａｇｅ．ｘｍｌ及びＵｐｄａｔｅＦｉｌｅｓディレクトリが含まれている。
【００３７】
ｐａｃｋａｇｅ．ｘｍｌは、アップデートオブジェクトに関する情報を格納したファイルである。例えば、ｐａｃｋａｇｅ．ｘｍｌには、アップデートオブジェクトの識別子、アップデートオブジェクト内に含まれている各ファームウェアの属性情報（識別子、バージョン情報等）が記録されている。
【００３８】
ＵｐｄａｔｅＦｉｌｅｓディレクトリ内には、ブートスクリプトファイル、及び一以上のファームウェア等を含む。ファームウェアは、アップデート対象とされるファームウェアの実体である。ブートスクリプトファイルは、画像形成装置２０のアップデート実行部２３４が実行する処理手順が記述されたスクリプトファイルである。すなわち、アップデート実行部２３４は、ブートスクリプトファイルのインタプリタであり、ブートスクリプトファイルの記述に従ってアップデート処理を実行する。
【００３９】
対象機器に応じてパッケージファイルが生成されるのは、同一のファームウェアであっても、インストール先のパスは、画像形成装置２０の機種に応じて異なりうるからである。したがって、アップデートオブジェクトは、機種に対して共通のファイルであり、パッケージファイルは、アップデートオブジェクトが機種に応じて編集されたファイルであるといえる。
【００４０】
パッケージ転送部１３は、パッケージ生成部１２によって生成されたパッケージファイルを、対象機器に転送（アップロード）する。
【００４１】
再起動要求部１４は、パッケージ転送部１３によるパッケージファイルの転送の実行後、対象機器に対して再起動要求を送信する。
【００４２】
再起動成否判定部１５は、対象機器における再起動の成否を判定する。図３において説明したように、画像形成装置２０は、起動時（再起動時）において、パッケージファイルがパッケージ一時記憶部２３３に保存されている場合は、アップデート処理を実行する。したがって、再起動の成否の判定は、実質的にアップデート処理が実行されたか否かの判定に相当する。
【００４３】
アップデート成否判定部１６は、対象機器におけるアップデート処理の成否を判定する。すなわち、再起動が成功したことによって確認されるのは、アップデート処理が実行されたことであって、アップデート処理の成否までは確認されない。そこで、アップデート成否判定部１６が、再起動が実行された場合に、アップデート処理の成否を確認（判定）するのである。
【００４４】
アップデートオブジェクト記憶部１７は、補助記憶装置１０２を用いて、各種のアップデートオブジェクトを記憶する。
【００４５】
機器情報記憶部１８は、各画像形成装置２０の機器情報を補助記憶装置１０２を用いて記憶する。機器情報には、画像形成装置２０の属性情報や、画像形成装置２０にインストールされているＳＤＫアプリ２２及びファームウェアの情報等が含まれる。
【００４６】
以下、プログラム導入支援システム１の処理手順について説明する。図７は、第一の実施の形態の画像形成装置のファームウェアのアップデート処理の処理手順を説明するためのシーケンス図である。
【００４７】
ステップＳ１０１において、機器管理装置１０のＵＩ部１１は、操作者よりアップデート指示を受け付ける。アップロード指示において、アップデート先の画像形成装置２０（対象機器）と、アップデート対象のアップデートオブジェクトが指定される。対象機器及びアップデート対象のアップデートオブジェクトの指定は、例えば、次のように行われる。
【００４８】
ＵＩ部１１は、画像形成装置２０の一覧を表示させる画面（以下、「機器選択画面」という。）を表示装置１０６に表示させる。機器選択画面では、例えば、予めそのＩＰアドレス及びホスト名等が補助記憶装置１０２に記憶されている画像形成装置２０が表示対象とされる。または、ネットワーク３０がＬＡＮである場合、機器管理装置１０がブロードキャストをネットワーク３０上に発行することにより、ネットワーク３０に接続されている画像形成装置２０を自動的に検索し、検索された画像形成装置２０のホスト名等が機器選択画面に表示されてもよい。
【００４９】
機器選択画面において、任意の画像形成装置２０の行が右クリックされると、ＵＩ部１１は、右クリックに係る画像形成装置２０を対象機器として記憶し、コンテキストメニューを表示させる。当該コンテキストメニューには、アップデート指示を受け付けるためのメニュー項目が含まれている。当該メニュー項目が選択されると、ＵＩ部１１は、アップデートオブジェクト記憶部１７に記憶されているアプデートオブジェクトの一覧画面を表示装置１０６に表示させる。ＵＩ部１１は、当該一覧画面において選択されたアップデートオブジェクトをアップデート対象として記憶する。
【００５０】
続いて、パッケージ生成部１２は、選択されたアップデートオブジェクトを、対象機器の機種に対応するように編集し、編集結果としてパッケージファイルを生成する（Ｓ１０２）。対象機器の機種は、対象機器に関して機器情報記憶部１８に記録されている機器情報に基づいて判定される。なお、機器情報は、図７の処理の前に予め取得されて機器情報記憶部１８に記録されていてもよいし、対象機器の選択に応じて対象機器より取得されてもよい。
【００５１】
続いて、パッケージ転送部１３は、生成されたパッケージファイルを対象機器に転送（アップロード）する（Ｓ１０３）。当該パッケージファイルは、対象機器の要求応答部２３１によって受信される。要求応答部２３１は、パッケージファイルの受信に応じ、パッケージ展開部２３２を呼び出す。パッケージ展開部２３２は、受信されたパッケージファイルに格納されている各種ファイルを、パッケージ一時記憶部２３３に展開する（Ｓ１０４）。すなわち、パッケージファイルが解凍され、ファームウェア、スクリプトファイル、及びｐａｃｋａｇｅ．ｘｍｌ等がパッケージ一時記憶部２３３に保存される。パッケージファイルの展開後、要求応答部２３１は、パッケージファイルの転送に対する応答を機器管理装置１０に返信する（Ｓ１０５）。
【００５２】
続いて、機器管理装置１０の再起動要求部１４は、再起動要求を対象機器に送信する（Ｓ１０６）。対象機器の要求応答部２３１は、再起動要求に応じ、対象機器の再起動処理を実行する（Ｓ１０７）。より詳しくは、要求応答部２３１は、コントロールサービス２４に対して、再起動の実行を要求する（Ｓ１０８）。コントロールサービス２４は、対象機器に再起動（リブート）を実行させる。
【００５３】
機器管理装置１０の再起動成否判定部１５は、再起動要求部１４による再起動要求の送信後、対象機器との通信状態（通信の可否）を確認（監視）するためのポーリングを行う（Ｓ１１０、Ｓ１１２、Ｓ１１４、Ｓ１１５、Ｓ１１７）。例えば、通信状態を確認するために所定のリクエストが所定の周期（例えば、５秒間隔等）で対象機器の要求応答部２３１に対して送信される。所定のリクエストの内容は、所定のものに限定されない。所定のリクエストの送信にｐｉｎｇコマンドが用いられてもよい。当該通信状態の確認は、対象機器の再起動の成否の確認（判定）に相当する。
【００５４】
再起動要求を受けた対象機器は、再起動処理の過程において、通信不能となるまでは、ステップＳ１１１及びＳ１１３のように、所定のリクエストに対して応答を返信する。したがって、この場合、再起動成否判定部１５は、再起動はまだ開始されていないと判定する。
【００５５】
その後、対象機器は、通信不能となる。そうすると、ステップＳ１１４及びＳ１１５のように、対象機器から応答は返信されなくなる。したがって、この場合、再起動成否判定部１５は、対象機器は、再起動中であると判定する。すなわち、再起動成否判定部１５は、通信不能状態の発生の有無を確認し、通信不能状態が発生した場合に、対象機器において再起動は実行されていると判定する。
【００５６】
続いて、対象機器のアップデート実行部２３４は、対象機器が再び起動する過程において、パッケージ一時記憶部２３３に保存されているスクリプトファイルに基づいて、パッケージ一時記憶部２３３に保存されているファームウェアのアップデート処理（更新処理）を実行する（Ｓ１１６）。アップデート処理によって、対象機器の記憶装置において記憶されている、各ファームウェアのバージョン情報のうち、アップデートされたファームウェアのバージョン情報も更新される。アップデート処理に成功した場合、アップデート実行部２３４は、パッケージ一時記憶部２３３に保存されているファイル群を削除する。
【００５７】
その後、対象機器において、ＯＳ２５、コントロールサービス２４、標準アプリ２１、ＳＤＫプラットフォーム２３の順で各種ソフトウェアが起動される。ＳＤＫプラットフォーム２３が通信可能な状態となると、ステップＳ１１８のように、所定のリクエスト（Ｓ１１７）に対して要求応答部２３１より応答が返信される。当該応答（一度、通信不能状態の発生後の応答）の受信により、再起動成否判定部１５は、対象機器における再起動は成功したと判定する。
【００５８】
続いて、機器管理装置１０のアップデート成否判定部１６は、アップデート対象とされた各ファームウェアの識別子を指定して、当該ファームウェアのバージョン情報の取得要求を対象機器に送信する（Ｓ１１９）。アップデート対象とされたファームウェアの識別子は、アップデート対象とされたアップデートオブジェクト内のｐａｃｋａｇｅ．ｘｍｌを参照することにより判定可能である。
【００５９】
対象機器の要求応答部２３１は、バージョン情報の取得要求に指定された識別子に係るファームウェアのバージョン情報を記憶装置より取得し、機器管理装置１０に返信する（Ｓ１２０）。
【００６０】
続いて、アップデート成否判定部１６は、返信されたバージョン情報と、アップデート対象とされたアップデートオブジェクト内のｐａｃｋａｇｅ．ｘｍｌにファームウェアごとに記録されているバージョン情報とを比較することにより、アップデート処理の成否を判定する（Ｓ１２１）。すなわち、アップデート対象の全てのファームウェア（アップデートオブジェクトに含まれる全てのファームウェア）に関して、双方のバージョン情報が一致する場合、アップデート成否判定部１６は、アップデート処理は成功したと判定する。一方、アップデート対象の少なくとも一部のファームウェアに関して、双方のバージョン情報が相違する場合、アップデート成否判定部１６は、アップデート処理は失敗したと判定する。アップデート成否判定部１６は、判定結果を表示装置１０６に表示させる。操作者は、表示された判定結果を参照し、アップデートに失敗している画像形成装置２０が有る場合は、当該画像形成装置２０に関して、適切な作業を行う。
【００６１】
なお、複数の画像形成装置２０が対象機器として選択された場合、ステップＳ１０２〜Ｓ１２１は、対象機器ごとに行われる。
【００６２】
続いて、図７において説明したアップデート処理において、機器管理装置１０が実行する処理手順について詳細に説明する。
【００６３】
図８は、第一の実施の形態の機器管理装置の処理手順を説明するための図である。同図において、括弧内のステップ番号は、図７において対応するステップのステップ番号を示す。
【００６４】
ステップＳ２０１〜Ｓ２０３については、図７のステップＳ１０２〜Ｓ１０６において説明した通りであるので、ここでの説明は省略する。
【００６５】
ステップＳ２０４において、再起動成否判定部１５は、対象機器に対するポーリングにより、対象機器との通信が切断されること（通信不能状態となること）を確認する。通信が可能である場合（通信不能状態の発生が確認されない場合）（Ｓ２０５で［通信可能］）、再起動は正常に開始されていないため、再起動要求部１４による再起動要求の送信（Ｓ２０３）と、再起動成否判定部１５によるポーリング（Ｓ２０４）とが所定の周期で繰り返される。すなわち、通信不能状態の発生が確認されるまで、再起動要求が対象機器に対して繰り返し送信される。
【００６６】
但し、ステップＳ２０３又はＳ２０４が最初に実行されてから所定時間が経過しても、通信不能状態が発生しない場合、再起動成否判定部１５は、タイムアウトであるとして（Ｓ２０６）、アップデート処理を中止する（Ｓ２０７）。当該所定時間は、ポーリングの繰り返しの回数によって規定されてもよいし、時間によって規定されてもよい。いずれの場合であっても、画像形成装置２０が再起動要求を受信してから、通信不能となるまでの十分な時間が所定時間として確保されるのが望ましい。
【００６７】
一方、タイムアウト前に、対象機器からの応答が返信されなくなり、対象機器との通信不能状態の発生が確認されると（Ｓ２０５で［通信不可能］）、再起動成否判定部１５は、対象機器が再起動されたことを確認するためのポーリングを所定の周期で実行する（Ｓ２０８）。当該ポーリングは、対象機器との通信が可能となるまで（すなわち、対象機器より応答が返信されるまで）繰り返し実行される（Ｓ２０９）。但し、ステップＳ２０８が最初に実行されてから所定期間が経過した場合、再起動成否判定部１５は、タイムアウトであるとして（Ｓ２０９）、対象機器の再起動は失敗したと判定し、アップデート処理を中止する（Ｓ２０７）。当該所定時間は、ポーリングの繰り返しの回数によって規定されてもよいし、時間によって規定されてもよい。いずれの場合であっても、画像形成装置２０が通信不能な状態となってから、通信可能となるまで（再起動されるまで）の十分な時間が所定時間として確保されるのが望ましい。
【００６８】
一方、タイムアウト前に、対象機器からの応答が返信されることにより、通信可能状態が確認されると、アップデート成否判定部１６は、アップデート対象とされたファームウェアのバージョン情報を確認することにより、アップデート処理の成否を判定する（Ｓ２１０）。当該処理内容は、図７のステップＳ１１９〜Ｓ１２１において説明した通りである。アップデート対象の全てのファームウェア（アップデートオブジェクトに含まれる全てのファームウェア）に関して、双方のバージョン情報が一致する場合、アップデート成否判定部１６は、アップデートは成功したと判定する（Ｓ２１１）。一方、アップデート対象の少なくとも一部のファームウェアに関して、双方のバージョン情報が相違する場合、アップデート成否判定部１６は、アップデートは失敗したと判定する（Ｓ２０７）。
【００６９】
上述したように、第一の実施の形態によれば、機器管理装置１０は、再起動要求に応じて対象機器との通信状態が不能とならない場合（すなわち、再起動が実行されない場合）、改めて再起動要求を送信する。したがって、対象機器が一時的に再起動できない状態にあり、再起動要求を拒否した場合であっても、当該状態からの回復後に、再起動要求が受信される可能性を高めることができるすなわち、再起動要求が繰り返されることにより、対象機器の再起動が成功する可能性を向上させることができる。したがって、ネットワークを介したプログラムの導入処理の失敗の可能性を低減させることができ、ネットワークを介したプログラムの導入作業の効率性を向上させることができる。
【００７０】
また、アップデート対象とされたファームウェアのバージョン情報を照合することにより、画像形成装置２０におけるアップデート処理の成否を適切に確認することができる。
【００７１】
なお、対象機器が再起動を実行していないにも拘わらず、一時的なネットワーク障害等によって、通信不能状態が検知される可能性もある。斯かる点を考慮して、機器管理装置１０は、画像形成装置２０が再起動に要する最低限の時間（以下、「最低所要時間」という。）を補助記憶装置１０２を用いて記憶しておいてもよい。最低所要時間が画像形成装置２０の機種に応じて異なる場合、機器管理装置１０は、機種毎に最低所要時間を記憶しておけばよい。再起動成否判定部１５は、再起動要求部１４による再起動要求の送信時（Ｓ２０３）から、ステップＳ２０８において通信可能状態が検知されるまでの時間を計測し、当該時間が、対象機器の機種に対応する最低所要時間より短い場合は、通信不能状態は、対象機器の再起動以外が原因であると判定する。この場合、ステップＳ２０３以降が再実行されればよい。すなわち、再起動要求が再実行されればよい。
【００７２】
続いて、第二の実施の形態について説明する。第二の実施の形態では、第一の実施の形態と異なる点について説明する。したがって、特に言及しない点については、第一の実施の形態と同様でよい。
【００７３】
図９は、第二の実施の形態の画像形成装置におけるアップデート処理に関する状態の遷移例を示す図である。画像形成装置２０の中には、機種に応じて、ファームウェアのアップデート処理に関して、ｎｏｒｍａｌ状態、Ｒｅｓｔａｒｔｉｎｇ状態、及びＷａｉｔＴｏＲｅｓｔａｒｔ状態の３種類の状態を有するものがある。
【００７４】
ｎｏｒｍａｌ状態は、再起動要求を受け付けていない状態、又は再起動要求に応じて正常に再起動が実行された状態である。
【００７５】
Ｒｅｓｔａｒｔｉｎｇ状態は、画像形成装置２０が再起動要求を受信し、再起動が可能である場合に遷移する状態である。Ｒｅｓｔａｒｔｉｎｇ状態に遷移した画像形成装置２０は、再起動を実行する。再起動後、画像形成装置２０は、ｎｏｒｍａｌ状態に遷移する。
【００７６】
ＷａｉｔＴｏＲｅｓｔａｒｔ状態は、画像形成装置２０が再起動要求を受信し、何らかの理由で再起動を拒否した場合に遷移する状態である。ＷａｉｔＴｏＲｅｓｔａｒｔ状態は、再起動が可能となった後に再起動が実行されるまで維持される。再起動が実行された場合、画像形成装置２０は、ｎｏｒｍａｌ状態に遷移する。
【００７７】
画像形成装置２０は、例えば、画像形成装置２０が有する不揮発性の記憶装置を用いて、自機の状態示す情報（状態情報）を記憶し、状態の遷移に応じて状態情報を更新する。画像形成装置２０の要求応答部２３１は、状態の問い合わせに応じて状態情報を返信するためのインタフェースを有する。
【００７８】
第二の実施の形態では、上記の状態を有する機種に関してファームウェアのアップデート処理を実行する場合について説明する。
【００７９】
図１０は、第二の実施の形態の機器管理装置の処理手順を説明するための図である。
【００８０】
同図において、ステップＳ３０１〜Ｓ３０３は、図８のステップＳ２０１〜Ｓ２０３と同様である。ステップＳ３０４において（すなわち、再起動の要求後）、再起動成否判定部１５は、対象機器の状態を問い合わせる（Ｓ３０４）。例えば、状態情報の取得要求が対象機器に対して送信される。当該取得要求に応じ、対象機器の要求応答部２３１は、対象機器の状態情報を機器管理装置１０に返信する。
【００８１】
返信された状態情報が、Ｒｅｓｔａｒｔｉｎｇ状態でない場合又は通信不能でない場合（Ｓ３０５）、再起動は正常に開始されていないため、再起動要求部１４による再起動要求の送信（Ｓ３０３）が再実行され、改めて対象機器に対して状態の問い合わせが行われる（Ｓ３０４）。すなわち、再起動が開始されることが確認されるまで、再起動要求が対象機器に対して繰り返し送信される。なお、Ｒｅｓｔａｒｔｉｎｇ状態の確認は、実質的に通信不能状態の確認に相当する。Ｒｅｓｔａｔｔｉｎｇ状態に遷移した画像形成装置２０は、その後に通信不能となるからである。
【００８２】
ステップＳ３０３又はＳ３０４が最初に実行されてから所定時間経過しても、対象機器がＲｅｓｔａｒｔｉｎｇ状態に遷移しない場合又は通信不能とならない場合、再起動成否判定部１５は、タイムアウトであるとして（Ｓ３０６）、アップデート処理を中止する（Ｓ３０７）。
【００８３】
一方、タイムアウト前に、Ｒｅｓｔａｒｔｉｎｇ状態を示す状態情報が返信された場合、又は対象機器からの応答が返信されなくなった（通信不能状態となった）場合（Ｓ３０５）、再起動成否判定部１５は、対象機器が再起動されたことを確認するための状態の問い合わせを実行する（Ｓ３０８）。当該問い合わせは、対象機器との通信が可能となるまで（すなわち、対象機器より応答が受信されるまで）繰り返し実行される（Ｓ３０９）。但し、ステップＳ３０８が最初に実行されてから所定期間経過した場合、再起動成否判定部１５は、タイムアウトであるとして（Ｓ３０９）、対象機器の再起動に失敗したと判定し、アップデート処理を中止する（Ｓ３０７）。
【００８４】
また、タイムアウト前に、ＷａｉｔＴｏＲｅｓｔａｒｔ状態又はＲｅｓｔａｒｔｉｎｇ状態を示す状態情報が対象機器より返信された場合（Ｓ３０９）、再起動成否判定部１５は、対象機器の再起動に失敗したと判定し、アップデート処理を中止する（Ｓ３０７）。再起動が正常に行われた後の画像形成装置２０の状態は、ｎｏｒｍａｌ状態であるはずだからである。
【００８５】
一方、タイムアウト前に、ｎｏｒｍａｌ状態を示す状態情報が対象機器より返信されると（Ｓ３０９）、アップデート成否判定部１６は、アップデート対象とされたファームウェアのバージョン情報を確認することにより、アップデート処理の成否を判定する（Ｓ３１０）。なお、当該ステップ以降の処理内容は、図８のステップＳ２０９以降と同様であるため、ここでの説明は省略する。
【００８６】
上述したように、第二の実施の形態によれば、状態の管理機能を有する機種に属する画像形成装置２０に関して、状態を問い合わせることにより、再起動の成否を確認することができる。その結果、第一の実施の形態と同様の効果を得ることができる。
【００８７】
続いて、第三の実施の形態について説明する。第三の実施の形態では、第一の実施の形態又は第二の実施の形態と異なる点について説明する。
【００８８】
図１１は、第三の実施の形態の機器管理装置の処理手順を説明するための図である。
【００８９】
同図において、ステップＳ４０１及びＳ４０２は、図８のステップＳ２０１及びＳ２０２と同様である。ステップＳ４０３において、再起動成否判定部１５は、対象機器の機器情報に基づいて対象機器の機種を判定し、対象機器が図９に示した状態の管理機能を有するか否かを判定する。
【００９０】
対象機器が当該管理機能を有さない場合、機器管理装置１０は、第一の実施の形態における処理（すなわち、図８のＳ２０３〜Ｓ２１１）を実行する（Ｓ４０４）。対象機器が当該状態を有する場合、機器管理装置１０は、第二の実施の形態における処理（すなわち、図１０のＳ３０３〜Ｓ３１１）を実行する（Ｓ４０５）。
【００９１】
上述したように、第三の実施の形態によれば、対象機器の機種に適した処理によって再起動の成否を確認することができる。
【００９２】
なお、図９に示される状態の管理機能を有する画像形成装置２０に関しては、必ず第二の実施の形態の処理が実行されなければならないというわけではない。当該管理機能を有する画像形成装置２０に対しても第一の実施の形態は有効に適用されうる。
【００９３】
なお、本実施の形態では、アップデート処理について説明したが、画像形成装置２０にインストール処理についても、本実施の形態は有効に適用されうる。
【００９４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００９５】
１            プログラム導入支援システム
１０          機器管理装置
１１          ＵＩ部
１２          パッケージ生成部
１３          パッケージ転送部
１４          再起動要求部
１５          再起動成否判定部
１６          アップデート成否判定部
１７          アップデートオブジェクト記憶部
１８          機器情報記憶部
２０          画像形成装置
２１          標準アプリ
２２          ＳＤＫアプリ
２３          ＳＤＫプラットフォーム
２４          コントロールサービス
２５          ＯＳ
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
２１１        スキャンアプリ
２１２        印刷アプリ
２１３        コピーアプリ
２１４        ＦＡＸアプリ
２３１        要求応答部
２３２        パッケージ展開部
２３３        パッケージ一時記憶部
２３４        アップデート実行部
Ｂ            バス
【先行技術文献】
【特許文献】
【００９６】
【特許文献１】特開２００５−１１５９２０号公報
【図１】
0005494348.tif 000002
【図２】
0005494348.tif 000003
【図３】
0005494348.tif 000004
【図４】
0005494348.tif 000005
【図５】
0005494348.tif 000006
【図６】
0005494348.tif 000007
【図７】
0005494348.tif 000008
【図８】
0005494348.tif 000009
【図９】
0005494348.tif 000010
【図１０】
0005494348.tif 000011
【図１１】
0005494348.tif 000012