(57)【要約】【課題】プログラムのインストールや更新による失敗により動作しなくなるデバイスが広がることを効率的に防ぐことを目的とする。【解決手段】プログラム情報取得手段で取得されたプログラム情報に含まれるデバイス識別情報群に含まれるデバイス識別情報を配信履歴のデバイス識別情報に含み、プログラム情報に含まれる更新前バージョンを配信履歴の更新前バージョンに含み、プログラム情報に含まれる更新後バージョンを配信履歴の更新後バージョンに含む配信履歴を記憶装置より取得する配信履歴取得手段と、配信履歴取得手段で取得された配信履歴に含まれる更新結果がプログラムの更新が成功したことを示している場合、プログラム情報に含まれる更新後バージョンをプログラムデータに追加する追加手段と、プログラムデータを取得要求の応答としてデバイスに返す応答手段と、を有する。【選択図】図１３
2011238007.tif 000002
【特許請求の範囲】
【請求項１】
デバイスの機種を識別する機種情報と、前記機種情報で識別される機種に属するデバイスを識別するデバイス識別情報を複数含むデバイス識別情報群と、前記機種情報で識別される機種に属するデバイスに配信可能なプログラムの更新前のバージョンである更新前バージョンと、前記デバイスに配信可能なプログラムの更新後のバージョンである更新後バージョンと、を関連付けてプログラム情報として記憶装置に保持する保持手段と、
プログラムを配信したデバイスを識別するデバイス識別情報と、前記デバイスの更新前のプログラムのバージョンである更新前バージョンと、配信したプログラムのバージョンである更新後バージョンと、前記プログラムの更新が成功したか否かを表す更新結果と、を配信履歴として記憶装置に記憶する配信履歴記憶手段と、
デバイスを識別するデバイス識別情報と、前記デバイスで動作しているプログラムのバージョンと、を含む、デバイスに適用可能なプログラムの一覧であるプログラムデータの取得要求をデバイスより受け取ると、前記取得要求に含まれるデバイス識別情報を前記保持手段で保持されているデバイス識別情報群に含み、前記取得要求に含まれるバージョンを前記保持手段で保持されている更新前バージョンに含む前記プログラム情報を記憶装置より取得するプログラム情報取得手段と、
前記プログラム情報取得手段で取得されたプログラム情報に含まれるデバイス識別情報群に含まれるデバイス識別情報を前記配信履歴のデバイス識別情報に含み、前記プログラム情報に含まれる更新前バージョンを前記配信履歴の更新前バージョンに含み、前記プログラム情報に含まれる更新後バージョンを前記配信履歴の更新後バージョンに含む前記配信履歴を記憶装置より取得する配信履歴取得手段と、
前記配信履歴取得手段で取得された配信履歴に含まれる更新結果がプログラムの更新が成功したことを示している場合、前記プログラム情報に含まれる更新後バージョンをプログラムデータに追加する追加手段と、
前記プログラムデータを前記取得要求の応答としてデバイスに返す応答手段と、
を有する配信装置。
【請求項２】
前記配信履歴記憶手段は、プログラムを配信したデバイスを識別するデバイス識別情報と、前記デバイスの更新前のプログラムのバージョンである更新前バージョンと、配信したプログラムのバージョンである更新後バージョンと、前記プログラムの更新が成功したか否かを表す更新結果と、更に、プログラムを配信したときのデバイスのハードウェア構成と、プログラムを配信したときのデバイスで発生していたエラー情報を配信履歴として記憶装置に記憶し、
前記配信履歴取得手段で取得された配信履歴に含まれる更新結果がプログラムの更新が成功したことを示していない場合、前記取得要求に含まれるデバイス識別情報を含むデバイス情報の取得要求を前記複数のデバイスのデバイス情報を管理するデバイス管理装置に送信し、デバイス情報として前記デバイス識別情報のデバイスのハードウェア構成と前記デバイスで発生したエラー情報とを取得するデバイス情報取得手段と、
前記デバイス情報取得手段で取得されたデバイス情報と、前記配信履歴取得手段で取得された配信履歴と、に基づいて、前記デバイスに対するプログラムの更新を許可するか否か判断する判断手段と、
を更に有し、
前記追加手段は、前記判断手段でプログラムの更新を許可すると判断された場合、前記配信履歴に含まれる更新後バージョンをプログラムデータに追加する請求項１記載の配信装置。
【請求項３】
前記判断手段でプログラムの更新を許可しないと判断された場合、前記配信履歴取得手段で取得された配信履歴の中から、前記プログラムデータの取得要求に含まれるバージョンから複数回、プログラムを更新することによって前記プログラム情報に含まれる更新後バージョンに更新することができる配信履歴の組み合わせを検索する検索手段と、
前記検索手段で前記組み合わせを検索し、検索の結果として前記組み合わせが取得された場合、取得された組み合わせの配信履歴に含まれる前記更新結果に基づいて、前記配信履歴の中に、プログラムの更新に失敗したことを表す更新結果を含む配信履歴が存在するか否かを判定する判定手段と、
前記判定手段でプログラムの更新に失敗したことを表す更新結果を含む配信履歴が存在しないと判定された場合、前記組み合わせの配信履歴に関する更新後バージョンの組み合わせを複数回更新プログラムデータに追加する複数回更新追加手段と、
を更に有し、
前記応答手段は、前記プログラムデータと、前記複数回更新プログラムデータと、を前記プログラムデータの取得要求の応答としてデバイスに返す請求項２記載の配信装置。
【請求項４】
前記判断手段は、前記デバイス情報取得手段で取得されたデバイス情報に含まれるハードウェア構成と、前記配信履歴取得手段で取得された配信履歴に含まれるハードウェア構成と、が一致するか否かを判断し、一致すると判断した場合、前記配信履歴に含まれるエラー情報と同じエラー情報が、前記デバイス情報に含まれるエラー情報に含まれるか否か判断し、含まれると判断した場合、前記配信履歴に含まれる更新結果がプログラムの更新が成功したことを示しているか否かを判断し、前記更新結果がプログラムの更新が成功したことを示している場合、プログラムの更新を許可すると判断し、前記更新結果がプログラムの更新が失敗したことを示している場合、プログラムの更新を許可しないと判断する請求項２又は３記載の配信装置。
【請求項５】
前記判断手段は、前記デバイス情報取得手段で取得されたデバイス情報に含まれるハードウェア構成と、前記配信履歴取得手段で取得された配信履歴に含まれるハードウェア構成と、が一致するか否かを判断し、一致しないと判断した場合、前記デバイス情報取得手段で取得されたハードウェア構成に含まれるハードウェア情報に基づき、前記ハードウェア情報を有する全ての配信履歴の更新結果がプログラムの更新に失敗したことを表すか否かを判断し、前記ハードウェア情報を有する全ての配信履歴の更新結果がプログラムの更新に失敗したことを表していない場合、前記デバイス情報取得手段で取得されたエラー情報に基づき、前記エラー情報を有する全ての配信履歴の更新結果がプログラムの更新に失敗したことを表すか否かを判断し、前記エラー情報を有する全ての配信履歴の更新結果がプログラムの更新に失敗したことを表していない場合、プログラムの更新を許可すると判断し、前記ハードウェア情報を有する少なくとも一つ以上の配信履歴の更新結果がプログラムの更新に失敗したことを表している場合、又は前記エラー情報を有する少なくとも一つ以上の配信履歴の更新結果がプログラムの更新に失敗したことを表している場合、プログラムの更新を許可しないと判断する請求項２乃至４何れか１項記載の配信装置。
【請求項６】
配信装置と、複数のデバイスと、を含むプログラム配信システムであって、
前記配信装置は、
デバイスの機種を識別する機種情報と、前記機種情報で識別される機種に属するデバイスを識別するデバイス識別情報を複数含むデバイス識別情報群と、前記機種情報で識別される機種に属するデバイスに配信可能なプログラムの更新前のバージョンである更新前バージョンと、前記デバイスに配信可能なプログラムの更新後のバージョンである更新後バージョンと、を関連付けてプログラム情報として記憶装置に保持する保持手段と、
プログラムを配信したデバイスを識別するデバイス識別情報と、前記デバイスの更新前のプログラムのバージョンである更新前バージョンと、配信したプログラムのバージョンである更新後バージョンと、前記プログラムの更新が成功したか否かを表す更新結果と、を配信履歴として記憶装置に記憶する配信履歴記憶手段と、
デバイスを識別するデバイス識別情報と、前記デバイスで動作しているプログラムのバージョンと、を含む、デバイスに適用可能なプログラムデータの取得要求をデバイスより受け取ると、前記取得要求に含まれるデバイス識別情報を前記保持手段で保持されているデバイス識別情報群に含み、前記取得要求に含まれるバージョンを前記保持手段で保持されている更新前バージョンに含む前記プログラム情報を記憶装置より取得するプログラム情報取得手段と、
前記プログラム情報取得手段で取得されたプログラム情報に含まれるデバイス識別情報群に含まれるデバイス識別情報を前記配信履歴のデバイス識別情報に含み、前記プログラム情報に含まれる更新前バージョンを前記配信履歴の更新前バージョンに含み、前記プログラム情報に含まれる更新後バージョンを前記配信履歴の更新後バージョンに含む前記配信履歴を記憶装置より取得する配信履歴取得手段と、
前記配信履歴取得手段で取得された配信履歴に含まれる更新結果がプログラムの更新が成功したことを示している場合、前記プログラム情報に含まれる更新後バージョンをプログラムデータに追加する追加手段と、
前記プログラムデータを前記取得要求の応答としてデバイスに返す応答手段と、
を有し、
前記デバイスは、
デバイスの画面を介したプログラムの更新の指示に応じて、前記デバイスを識別するデバイス識別情報と、前記デバイスで動作しているプログラムのバージョンと、を含む、デバイスに適用可能なプログラムデータの取得要求を前記配信装置に送信する送信手段と、
前記取得要求の応答として前記配信装置より前記プログラムデータを受信すると、前記プログラムデータに含まれる前記更新後バージョンをデバイスの画面に表示する表示手段と、
を有するプログラム配信システム。
【請求項７】
配信装置が実行する配信方法であって、
デバイスの機種を識別する機種情報と、前記機種情報で識別される機種に属するデバイスを識別するデバイス識別情報を複数含むデバイス識別情報群と、前記機種情報で識別される機種に属するデバイスに配信可能なプログラムの更新前のバージョンである更新前バージョンと、前記デバイスに配信可能なプログラムの更新後のバージョンである更新後バージョンと、を関連付けてプログラム情報として記憶装置に保持する保持ステップと、
プログラムを配信したデバイスを識別するデバイス識別情報と、前記デバイスの更新前のプログラムのバージョンである更新前バージョンと、配信したプログラムのバージョンである更新後バージョンと、前記プログラムの更新が成功したか否かを表す更新結果と、を配信履歴として記憶装置に記憶する配信履歴記憶ステップと、
デバイスを識別するデバイス識別情報と、前記デバイスで動作しているプログラムのバージョンと、を含む、デバイスに適用可能なプログラムデータの取得要求をデバイスより受け取ると、前記取得要求に含まれるデバイス識別情報を前記保持ステップで保持されているデバイス識別情報群に含み、前記取得要求に含まれるバージョンを前記保持ステップで保持されている更新前バージョンに含む前記プログラム情報を記憶装置より取得するプログラム情報取得ステップと、
前記プログラム情報取得ステップで取得されたプログラム情報に含まれるデバイス識別情報群に含まれるデバイス識別情報を前記配信履歴のデバイス識別情報に含み、前記プログラム情報に含まれる更新前バージョンを前記配信履歴の更新前バージョンに含み、前記プログラム情報に含まれる更新後バージョンを前記配信履歴の更新後バージョンに含む前記配信履歴を記憶装置より取得する配信履歴取得ステップと、
前記配信履歴取得ステップで取得された配信履歴に含まれる更新結果がプログラムの更新が成功したことを示している場合、前記プログラム情報に含まれる更新後バージョンをプログラムデータに追加する追加ステップと、
前記プログラムデータを前記取得要求の応答としてデバイスに返す応答ステップと、
を有する配信方法。
【請求項８】
配信装置と、複数のデバイスと、を含むプログラム配信システムにおける配信方法であって、
前記配信装置が、デバイスの機種を識別する機種情報と、前記機種情報で識別される機種に属するデバイスを識別するデバイス識別情報を複数含むデバイス識別情報群と、前記機種情報で識別される機種に属するデバイスに配信可能なプログラムの更新前のバージョンである更新前バージョンと、前記デバイスに配信可能なプログラムの更新後のバージョンである更新後バージョンと、を関連付けてプログラム情報として記憶装置に保持する保持ステップと、
前記配信装置が、プログラムを配信したデバイスを識別するデバイス識別情報と、前記デバイスの更新前のプログラムのバージョンである更新前バージョンと、配信したプログラムのバージョンである更新後バージョンと、前記プログラムの更新が成功したか否かを表す更新結果と、を配信履歴として記憶装置に記憶する配信履歴記憶ステップと、
前記配信装置が、デバイスを識別するデバイス識別情報と、前記デバイスで動作しているプログラムのバージョンと、を含む、デバイスに適用可能なプログラムデータの取得要求をデバイスより受け取ると、前記取得要求に含まれるデバイス識別情報を前記保持ステップで保持されているデバイス識別情報群に含み、前記取得要求に含まれるバージョンを前記保持ステップで保持されている更新前バージョンに含む前記プログラム情報を記憶装置より取得するプログラム情報取得ステップと、
前記配信装置が、前記プログラム情報取得ステップで取得されたプログラム情報に含まれるデバイス識別情報群に含まれるデバイス識別情報を前記配信履歴のデバイス識別情報に含み、前記プログラム情報に含まれる更新前バージョンを前記配信履歴の更新前バージョンに含み、前記プログラム情報に含まれる更新後バージョンを前記配信履歴の更新後バージョンに含む前記配信履歴を記憶装置より取得する配信履歴取得ステップと、
前記配信装置が、前記配信履歴取得ステップで取得された配信履歴に含まれる更新結果がプログラムの更新が成功したことを示している場合、前記プログラム情報に含まれる更新後バージョンをプログラムデータに追加する追加ステップと、
前記配信装置が、前記プログラムデータを前記取得要求の応答としてデバイスに返す応答ステップと、
前記デバイスが、デバイスの画面を介したプログラムの更新の指示に応じて、前記デバイスを識別するデバイス識別情報と、前記デバイスで動作しているプログラムのバージョンと、を含む、デバイスに適用可能なプログラムデータの取得要求を前記配信装置に送信する送信ステップと、
前記デバイスが、前記取得要求の応答として前記配信装置より前記プログラムデータを受信すると、前記プログラムデータに含まれる前記更新後バージョンを画面に表示する表示ステップと、
を有する配信方法。
【請求項９】
コンピュータを、
デバイスの機種を識別する機種情報と、前記機種情報で識別される機種に属するデバイスを識別するデバイス識別情報を複数含むデバイス識別情報群と、前記機種情報で識別される機種に属するデバイスに配信可能なプログラムの更新前のバージョンである更新前バージョンと、前記デバイスに配信可能なプログラムの更新後のバージョンである更新後バージョンと、を関連付けてプログラム情報として記憶装置に保持する保持手段と、
プログラムを配信したデバイスを識別するデバイス識別情報と、前記デバイスの更新前のプログラムのバージョンである更新前バージョンと、配信したプログラムのバージョンである更新後バージョンと、前記プログラムの更新が成功したか否かを表す更新結果と、を配信履歴として記憶装置に記憶する配信履歴記憶手段と、
デバイスを識別するデバイス識別情報と、前記デバイスで動作しているプログラムのバージョンと、を含む、デバイスに適用可能なプログラムデータの取得要求をデバイスより受け取ると、前記取得要求に含まれるデバイス識別情報を前記保持手段で保持されているデバイス識別情報群に含み、前記取得要求に含まれるバージョンを前記保持手段で保持されている更新前バージョンに含む前記プログラム情報を記憶装置より取得するプログラム情報取得手段と、
前記プログラム情報取得手段で取得されたプログラム情報に含まれるデバイス識別情報群に含まれるデバイス識別情報を前記配信履歴のデバイス識別情報に含み、前記プログラム情報に含まれる更新前バージョンを前記配信履歴の更新前バージョンに含み、前記プログラム情報に含まれる更新後バージョンを前記配信履歴の更新後バージョンに含む前記配信履歴を記憶装置より取得する配信履歴取得手段と、
前記配信履歴取得手段で取得された配信履歴に含まれる更新結果がプログラムの更新が成功したことを示している場合、前記プログラム情報に含まれる更新後バージョンをプログラムデータに追加する追加手段と、
前記プログラムデータを前記取得要求の応答としてデバイスに返す応答手段と、
して機能させるプログラム。
【請求項１０】
更新前のバージョンの制御プログラムの制御下にて動作するデバイスと通信する配信装置であって、
更新後のバージョンの制御プログラムを前記デバイスに対して送信する送信手段と、
前記制御プログラムの更新前のバージョンから更新後のバージョンへの制御プログラムの更新が成功したか否かを示す情報を含む配信履歴を前記デバイスから受信する受信手段と、
前記配信履歴が、更新前のバージョンから更新後のバージョンへの制御プログラムの更新が成功していないことを示している場合に、前記プログラムの更新前のバージョンから更新後のバージョンへのプログラムの更新を制限するユーザインタフェースの表示情報を形成する形成手段と、
を有する配信装置。
【請求項１１】
更新前のバージョンの制御プログラムの制御下にて動作するデバイスと通信する配信装置が実行する配信方法であって、
更新後のバージョンの制御プログラムを前記デバイスに対して送信する送信ステップと、
前記制御プログラムの更新前のバージョンから更新後のバージョンへの制御プログラムの更新が成功したか否かを示す情報を含む配信履歴を前記デバイスから受信する受信ステップと、
前記配信履歴が、更新前のバージョンから更新後のバージョンへの制御プログラムの更新が成功していないことを示している場合に、前記プログラムの更新前のバージョンから更新後のバージョンへのプログラムの更新を制限するユーザインタフェースの表示情報を形成する形成ステップと、
を有する配信方法。
【請求項１２】
更新前のバージョンの制御プログラムの制御下にて動作するデバイスと通信するコンピュータを、
更新後のバージョンの制御プログラムを前記デバイスに対して送信する送信手段と、
前記制御プログラムの更新前のバージョンから更新後のバージョンへの制御プログラムの更新が成功したか否かを示す情報を含む配信履歴を前記デバイスから受信する受信手段と、
前記配信履歴が、更新前のバージョンから更新後のバージョンへの制御プログラムの更新が成功していないことを示している場合に、前記プログラムの更新前のバージョンから更新後のバージョンへのプログラムの更新を制限するユーザインタフェースの表示情報を形成する形成手段と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、配信装置、プログラム配信システム、配信方法及びプログラムに関する。
【背景技術】
【０００２】
近年、インターネット環境の標準利用や回線速度の向上により、インターネット経由でのソフトウェアのインストールや更新が実行できるようになった。それに伴い、よりソフトウェアをインストール、更新をする機会も増えてきている。
しかしながら、機会が増えることによってインストール対象のデバイスの状態や配信設定のミスにより、配信するソフトウェアが対象のデバイスに正常にインストールできない等の問題が市場で広まりやすくなることが懸念されている。その懸念事項に対して、特許文献１では、配信するソフトウェアのインストールに失敗した場合に、元の環境に戻すことも自動的に実施する方法を提案している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９―２３１０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術ではソフトウェアのインストールに失敗した後で元の環境に戻しているが、ソフトウェアの配信にかかる時間が無駄となってしまう。特にソフトウェアのサイズが大きい場合には、配信時間も増加してしまうことになる。
【０００５】
そこで本発明は、ソフトウェア（プログラム）のインストールや更新による失敗により動作しなくなるデバイスが広がることを効率的に防ぐことを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明の配信装置は、デバイスの機種を識別する機種情報と、前記機種情報で識別される機種に属するデバイスを識別するデバイス識別情報を複数含むデバイス識別情報群と、前記機種情報で識別される機種に属するデバイスに配信可能なプログラムの更新前のバージョンである更新前バージョンと、前記デバイスに配信可能なプログラムの更新後のバージョンである更新後バージョンと、を関連付けてプログラム情報として記憶装置に保持する保持手段と、プログラムを配信したデバイスを識別するデバイス識別情報と、前記デバイスの更新前のプログラムのバージョンである更新前バージョンと、配信したプログラムのバージョンである更新後バージョンと、前記プログラムの更新が成功したか否かを表す更新結果と、を配信履歴として記憶装置に記憶する配信履歴記憶手段と、デバイスを識別するデバイス識別情報と、前記デバイスで動作しているプログラムのバージョンと、を含む、デバイスに適用可能なプログラムデータの取得要求をデバイスより受け取ると、前記取得要求に含まれるデバイス識別情報を前記保持手段で保持されているデバイス識別情報群に含み、前記取得要求に含まれるバージョンを前記保持手段で保持されている更新前バージョンに含む前記プログラム情報を記憶装置より取得するプログラム情報取得手段と、前記プログラム情報取得手段で取得されたプログラム情報に含まれるデバイス識別情報群に含まれるデバイス識別情報を前記配信履歴のデバイス識別情報に含み、前記プログラム情報に含まれる更新前バージョンを前記配信履歴の更新前バージョンに含み、前記プログラム情報に含まれる更新後バージョンを前記配信履歴の更新後バージョンに含む前記配信履歴を記憶装置より取得する配信履歴取得手段と、前記配信履歴取得手段で取得された配信履歴に含まれる更新結果がプログラムの更新が成功したことを示している場合、前記プログラム情報に含まれる更新後バージョンをプログラムデータに追加する追加手段と、前記プログラムデータを前記取得要求の応答としてデバイスに返す応答手段と、を有する。
【発明の効果】
【０００７】
本発明によれば、ソフトウェア（プログラム）のインストールや更新による失敗により動作しなくなるデバイスが広がることを効率的に防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】ソフトウェア配信システムのシステム構成の一例を示す図である。
【図２】画像形成装置のハードウェア構成の一例を示す図である。
【図３】配信サーバ及びデバイス管理サーバのハードウェア構成の一例を示す図である。
【図４】デバイス管理サーバが画像形成装置の情報を収集する処理の一例を示すシーケンス図である。
【図５】デバイス管理サーバがハードディスクに保持する、画像形成装置のハードウェア情報を格納するテーブルの一例を示す図である。
【図６】デバイス管理サーバがハードディスクに保持する画像形成装置で発生したエラー情報を格納するテーブルの一例を示す図である。
【図７】ソフトウェアのインストール、ファームウェアの更新をするためのソフトウェア管理画面の一例を示す図である。
【図８】更新するファームウェアを選択するための更新ファームウェア選択画面の一例を示す図である。
【図９】ファームウェアの更新結果を表示するためのファームウェア更新結果画面の一例を示す図である。
【図１０】配信サーバが保持する配信可能なファームウェア情報を格納する配信ファームウェアテーブルの一例を示す図である。
【図１１】配信サーバが保持する配信履歴を格納する配信履歴テーブルの一例を示す図である。
【図１２】ファームウェアを更新する場合の処理の一例を示すシーケンス図である。
【図１３】図１２の１２０２で実行する適用可能ファームウェアの算出のために配信サーバが実施する処理の一例を示すフローチャートである。
【図１４】図１３のステップＳ１３０６で実行されるファームウェアの更新の可否の判断をする処理の一例を示すフローチャートである。
【図１５】図１２の１２０５の応答を受信したときの画像形成装置で実施する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
＜第１の実施の形態＞
図１は、ソフトウェア配信システム（プログラム配信システム）のシステム構成の一例を示す図である。
図１では画像形成装置にソフトウェア（プログラム）を配信する配信サーバ１０１と画像形成装置の情報を管理するデバイス管理サーバ１０２と画像形成装置１０３−１乃至１０３−３がインターネット１０４で接続されていることを表している。なお、図１では画像形成装置は１０３−１乃至１０３−３の３台を記述しているが、任意の台数を接続してもよい。以降、画像形成装置を区別する必要がない場合は画像形成装置１０３と称する。
【００１１】
図２は、画像形成装置１０３のハードウェア構成の一例を示す図である。
画像形成装置１０３は、以下の２０１乃至２１３の各部分により構成される。
原稿給送部２０１は、読み込む原稿を自動的にイメージリーダ２０２に送る。イメージリーダ（スキャナ）２０２は、原稿を読み込む。画像形成部２０３は、読み込んだ原稿及び受信したデータを印刷画像に変換・印刷する。給紙部２０４は、印刷用の紙を給紙する。ＮｅｔｗｏｒｋＩ／Ｆ２０５は、ネットワーク経由でＬＡＮ及びインターネットに接続し、外部と情報交換を行う。センサ２０６は、本装置の各部分の状態を検知する。ＣＰＵ２０７は、本装置上の各処理を司る。ハードディスク２０８は、本装置の各処理に関わるプログラムやデータを記憶する。メモリ２０９は、本装置の各処理に関わる一時的なデータを電気的に記憶でき、かつ、書き換え可能なメモリである。操作部２１０は、本装置への指示入力を受け付ける。表示部２１１は、本装置の動作状況及び操作部２１０に対する操作に関わる情報を表示する。ＦＡＸボード２１２は、ＦＡＸをするために機能を提供する。システムバス２１３は、２０１乃至２１２の各部分を結びつけ、データのやり取りを行う。
ＣＰＵ２０７が、ハードディスク２０８等に記憶されているプログラムに基づき処理を実行することによって、画像形成装置１０３の機能及び後述する画像形成装置１０３が実行する処理が実現される。
画像形成装置を販売する際には、商品の提供する機能によって不要なハードウェアを提供しないケースがある。例えば、ＦＡＸ機能の不要な商品においてＦＡＸボード２１２をつける必要はなくなる。そのため、ＦＡＸ機能を提供する画像形成装置１０３は図２の（Ａ）で表しているようにＦＡＸボード２１２があるハードウェア構成となる。また、ＦＡＸ機能を提供しない画像形成装置１０３は図２の（Ｂ）で表しているようにＦＡＸボード２１２がないハードウェア構成となる。
ここではＦＡＸ機能の提供の有無によるＦＡＸボード２１２の有無だけ説明をしたが、ＦＡＸボード２１２に限らず他のハードウェアであってもよい。
【００１２】
図３は、配信サーバ１０１及びデバイス管理サーバ１０２のハードウェア構成の一例を示す図である。
配信サーバ１０１及びにデバイス管理サーバ１０２は、以下の３０１乃至３０７の各部分により構成される。
表示部３０１は、ウィンドウ、アイコン、メッセージ、メニュー、その他のユーザインタフェース情報を表示する。操作部３０２は、キーボード、マウスを利用したエンドユーザの入力を受け付ける。
ＣＰＵ３０３は、本装置上の各処理を司る。ハードディスク３０４は、本装置の各処理に関わるプログラムやデータを記憶する。メモリ３０５は、本装置の各処理に関わる一時的なデータを電気的に記憶でき、かつ、書き換え可能なメモリである。ＮｅｔｗｏｒｋＩ／Ｆ３０６は、ネットワーク経由でＬＡＮ及びインターネットに接続し、外部と情報交換を行う。システムバス３０７は、３０１乃至３０６の各部分を結びつけ、データのやり取りを行う。
配信サーバ１０１のＣＰＵ３０３が、ハードディスク３０４等に記憶されているプログラムに基づき処理を実行することによって、配信サーバ１０１の機能及び後述する配信サーバ１０１が実行する処理が実現される。同様に、デバイス管理サーバ１０２のＣＰＵ３０３が、ハードディスク３０４等に記憶されているプログラムに基づき処理を実行することによって、デバイス管理サーバ１０２の機能及び後述するデバイス管理サーバ１０２が実行する処理が実現される。
【００１３】
図４は、デバイス管理サーバ１０２が画像形成装置１０３の情報を収集する処理の一例を示すシーケンス図である。画像形成装置１０３は、特定のタイミングで図４のシーケンスの処理を開始する。例えば、画像形成装置１０３は、１時間に１回の間隔や、エラーが生じた際に、図４のシーケンスの処理を開始する。
画像形成装置１０３は、４０１で、デバイス管理サーバ１０２に対してデバイス情報を送信する。前述のデバイス情報とは、デバイスを構成するハードウェア情報、及びエラーが発生した場合にはエラーの情報（エラー情報）である。
デバイス管理サーバ１０２は、４０１で受信したデバイス情報をハードディスク３０４に保存する。そして、デバイス管理サーバ１０２は、４０２で、デバイス情報の登録結果を画像形成装置１０３に通知する。
画像形成装置１０３は、４０２で受信したデバイス情報の登録結果を受けて処理を終了する。
【００１４】
図５は、デバイス管理サーバ１０２がハードディスク３０４に保持する、画像形成装置のハードウェア構成を格納するテーブルの一例を示す図である。
ハードウェア構成テーブル５０１は、画像形成装置のハードウェア構成を格納するテーブルである。
デバイス番号カラム５０２は、画像形成装置１０３を一意に識別するためのＩＤであるデバイス番号を格納するカラムである。デバイス番号は、デバイス識別情報の一例である。
機種カラム５０３は、画像形成装置１０３の機種情報を格納するカラムである。
原稿給送部有無カラム５０４は、画像形成装置１０３の原稿給送部２０１の有無を格納するカラムである。
ＦＡＸボード有無カラム５０５は、画像形成装置１０３のＦＡＸボード２１２の有無を格納するカラムである。
ハードディスク有無カラム５０６は、画像形成装置１０３のハードディスク２０８の有無を格納するカラムである。
本実施の形式では、ハードウェアとして５０４乃至５０６を挙げているがその他のハードウェアであってもよい。
なお、ハードウェア構成テーブル５０１は、デバイス管理サーバ１０２によって前述の４０１で受信したデバイス情報を基にデータが更新される。
なお、本実施形態では、図５に示されるデータの１つの行の情報をハードウェア構成といい、ハードウェア構成に含まれる、原稿給送部、ＦＡＸボード、ハードディスク等の情報をハードウェア情報という。
【００１５】
図６は、デバイス管理サーバ１０２がハードディスク３０４に保持する画像形成装置で発生したエラー情報を格納するテーブルの一例を示す図である。
エラー情報テーブル６０１は、デバイス管理サーバ１０２がハードディスク３０４に保持する画像形成装置で発生したエラー情報を格納するテーブルである。
エラーＮｏカラム６０２は、画像形成装置１０３で発生したエラー情報を一意に識別するためのＩＤであるカラムである。
エラー発生デバイス番号カラム６０３は、エラーが発生した画像形成装置１０３のデバイス番号を格納するカラムである。
エラーコードカラム６０４は、発生したエラーのエラーコードを格納するカラムである。
エラー発生日時カラム６０５は、エラーの発生した日時を格納するカラムである。
なお、エラー情報テーブル６０１は、デバイス管理サーバ１０２によって前述の４０１で受信したデバイス情報を基にデータが更新される。
【００１６】
図７は、ソフトウェアのインストール、ファームウェアの更新をするためのソフトウェア管理画面の一例を示す図である。
ソフトウェア管理画面７０１は、ユーザが画像形成装置１０３の操作部２１０を操作することにより表示部２１１に表示される画面の一例である。
ソフトウェアインストールボタン７０２は、ユーザがソフトウェアのインストールを指示するためのボタンである。
ファームウェア更新ボタン７０３は、ユーザがファームウェアの更新を指示するためのボタンである。
図８は、更新するファームウェアを選択するための更新ファームウェア選択画面の一例を示す図である。図７のファームウェア更新ボタン７０３が押下されると、図８に示す更新ファームウェア選択画面が表示部２１１に表示される。
更新ファームウェア選択画面８０１は、ユーザが更新するファームウェアを選択するための画面である。
ファームウェア選択ラジオボタン８０２は、更新が可能なファームウェアの一覧を表示するラジオボタンのファームウェア選択ラジオボタンのリストである。
ファームウェア更新開始ボタン８０３は、ユーザがファームウェアの更新の開始を指示するためのボタンである。
【００１７】
図９は、ファームウェアの更新結果を表示するためのファームウェア更新結果画面の一例を示す図である。図８のファームウェア更新開始ボタン８０３が押下され、ファームウェアの更新（ファームウェアのバージョンアップ）が成功すると、図９に示すファームウェア更新結果画面が表示部２１１に表示される。
ファームウェア更新結果画面９０１は、ファームウェアの更新結果を表示するための画面である。
更新結果ラベル９０２は、ファームウェアの更新結果を表示するラベルである。
図１０は、配信サーバ１０１が保持する配信可能なファームウェア情報を格納する配信ファームウェアテーブルの一例を示す図である。
配信ファームウェアテーブル１００１は、配信サーバ１０１が保持する配信可能なプログラム情報の一例であるファームウェア情報を格納するテーブルである。
機種カラム１００２は、配信対象の機種を格納するカラムである。
デバイス番号カラム１００３は、配信対象の機種に属するデバイス番号を記述するカラムである。図１０の例ではデバイス番号ＡＡＡ０００００乃至ＡＡＡ９９９９９とＢＢＢ０００００乃至ＢＢＢ９９９９９とが機種Ｃ７０６５に属していることを示している。つまり、デバイス番号カラム１００３には、配信対象の機種に属するデバイスのデバイス番号を複数含むデバイス番号群が記憶される。デバイス番号群は、デバイス識別情報群の一例である。
更新前バージョンカラム１００４は、ファームウェアの更新前のファームウェアのバージョンを格納するカラムである。
更新後バージョンカラム１００５は、ファームウェアの更新後のファームウェアのバージョンを格納するカラムである。
【００１８】
図１１は、配信サーバ１０１が保持する配信履歴を格納する配信履歴テーブルの一例を示す図である。
配信履歴テーブル１１０１は、配信サーバ１０１が保持する配信履歴を格納するテーブルである。
配信日時カラム１１０２は、ファームウェアを配信した日時を格納するカラムである。
配信デバイス番号カラム１１０３は、ファームウェア配信をした画像形成装置１０３のデバイス番号を格納するカラムである。
機種カラム１１０４は、ファームウェア配信をした画像形成装置１０３の機種を格納する機種カラムである。
更新前バージョンカラム１１０５は、ファームウェア配信をした画像形成装置１０３の更新前のファームウェアのバージョンを格納するカラムである。
更新後バージョンカラム１１０６は、ファームウェア配信をした画像形成装置１０３の更新後のファームウェアのバージョンを格納するカラムである。
結果カラム１１０７は、配信した結果を格納するカラムである。
配信時原稿給送部有無カラム１１０８は、配信したときの画像形成装置１０３の原稿給送部２０１の有無を格納するカラムである。
配信時ＦＡＸボード有無カラム１１０９は、配信したときの画像形成装置１０３のＦＡＸボード２１２の有無を格納するカラムである。
配信時ハードディスク有無カラム１１１０は、配信したときの画像形成装置１０３のハードディスク２０８の有無を格納するカラムである。
配信時エラーカラム１１１１は、配信したときの画像形成装置１０３で発生していたエラーを格納するカラムである。
【００１９】
以降、図１２から本実施形態について、シーケンス図とフローチャートとを用いて説明する。
図１２は、ファームウェアを更新する場合の処理の一例を示すシーケンス図である。
本シーケンスは、画像形成装置１０３の表示部２１１に表示されたソフトウェア管理画面７０１で、ファームウェア更新ボタン７０３がクリックされた際に開始されるものである。
１２０１で、ユーザは、操作部２１０を用いて、ソフトウェア管理画面でファームウェア更新ボタン７０３をクリックして、画像形成装置１０３にファームウェアの更新の開始を通知する。
１２０２で、画像形成装置１０３は、自分自身のデバイス番号と現在のファームウェアバージョンとを配信サーバ１０１に送信してプログラムデータの一例である配信可能ファームウェアリストの提供要求をする。
１２０２の配信可能ファームウェアリスト提供要求を受け取った配信サーバ１０１は、適用可能ファームウェアリストを算出して、１２０５で応答として返す。なお、１２０３、１２０４に関しては、後述する図１３において説明する。適用可能ファームウェアリストを算出する方法の詳細も同様に、後述する図１３において説明する。
１２０５で、適用可能ファームウェアリストを受信した画像形成装置１０３は、表示部２１１に更新ファームウェア選択画面８０１を表示し、適用可能ファームウェアリストをファームウェア選択ラジオボタン８０２に表示する。
【００２０】
１２０６で、ユーザは、操作部２１０を用いて、１２０５で表示された更新ファームウェア選択画面８０１のファームウェア選択ラジオボタン８０２を選択してファームウェア更新開始ボタン８０３をクリックする。
１２０７で、画像形成装置１０３は、自分自身のデバイス番号と選択されたファームウェア情報とを配信サーバ１０１に送信してファームウェア提供要求をする。
１２０８で、配信サーバ１０１は、１２０７のファームウェア提供要求を受信したファームウェアを応答として返す。
１２０９で、画像形成装置１０３は、１２１０で受信したファームウェアをハードディスク２０８に格納をし、ファームウェアの更新処理をする。
１２１０で、画像形成装置１０３は、自分自身のデバイス番号とファームウェアの更新結果とを配信サーバ１０１に通知する。配信サーバ１０１は、受信したファームウェア更新結果を基に配信履歴テーブルの更新をする。この処理は、配信履歴記憶の処理の一例である。
１２１１で、配信サーバ１０１は、画像形成装置１０３に１２０６の通知の結果として、配信履歴登録完了通知をする。画像形成装置１０３は、表示部２１１にファームウェア更新結果画面９０１を表示し、ファームウェアの更新結果を更新結果ラベル９０２に表示する。
【００２１】
図１３は、図１２の１２０２で実行する適用可能ファームウェアの算出のために配信サーバ１０１が実施する処理の一例を示すフローチャートである。このフローチャートは１２０２の配信可能ファームウェアリスト提供要求を受け取った際に実行される。
ステップＳ１３０１で、配信サーバ１０１のＣＰＵ３０３は、インターネット１０４を介してＮｅｔｗｏｒｋＩ／Ｆ３０６より画像形成装置１０３のデバイス番号と現在のファームウェアバージョンを取得し、メモリ３０５に格納する。
ステップＳ１３０２で、ＣＰＵ３０３は、ハードディスク３０４に格納している配信ファームウェアテーブル１００１をメモリ３０５にロードする。そして、ＣＰＵ３０３は、ステップＳ１３０１で取得したデバイス番号とファームウェアバージョンとが、それぞれデバイス番号カラム１００３と更新前バージョンカラム１００４とに含まれているレコードのリストである関連付けファームウェアリストを取得する。
ステップＳ１３０３で、ＣＰＵ３０３は、Ｓ１３０２で取得した関連付けファームウェアリストから未処理のレコードを取得する。ステップＳ１３０１〜ステップＳ１３０３の処理は、プログラム情報取得の処理の一例である。
ステップＳ１３０４で、ＣＰＵ３０３は、ハードディスク３０４に格納している配信履歴テーブル１１０１をメモリ３０５にロードする。そして、ＣＰＵ３０３は、ステップＳ１３０３で取得したレコードの機種カラム１００２、更新前バージョンカラム１００４、更新後バージョンカラム１００５のデータを取得する。そして、ＣＰＵ３０３は、取得した機種、更新前バージョン、更新後バージョンが配信履歴テーブル１１０１の機種カラム１１０４、更新前バージョンカラム１１０５、更新後バージョンカラム１１０６と一致するレコードのリストを取得する。これらの処理は、配信履歴取得の処理の一例である。そして、ＣＰＵ３０３は、取得したレコードのリストの結果カラム１１０７をチェックし、全て成功の場合は、ステップＳ１３０８に進み、失敗が１つでもある場合は、ステップＳ１３０５に進む。
【００２２】
ステップＳ１３０５で、ＣＰＵ３０３は、インターネット１０４を介してＮｅｔｗｏｒｋＩ／Ｆ３０６よりデバイス管理サーバ１０２へメモリ３０５に格納したデバイス番号に対するデバイス情報取得要求をする（図１２の１２０３）。デバイス管理サーバ１０２は、受信したデバイス情報取得要求で渡されたデバイス番号のハードウェア構成をハードウェア構成テーブル５０１から、エラー情報をエラー情報テーブル６０１から取得し、デバイス情報取得応答として返す（図１２の１２０４）。そして、配信サーバ１０１のＣＰＵ３０３は、インターネット１０４を介してＮｅｔｗｏｒｋＩ／Ｆ３０６よりデバイス情報取得応答１２０４を受信し、ハードウェア構成とエラー情報とをメモリ３０５に格納する。ステップＳ１３０５の処理は、デバイス情報取得の処理の一例である。
ステップＳ１３０６で、ＣＰＵ３０３は、ステップＳ１３０５で取得したハードウェア構成とエラー情報と配信履歴テーブル１１０１とを基にファームウェアの更新の可否の判断をする。判断の処理については、図１４のフローチャートを用いて説明する。ステップＳ１３０６の処理は、判断の処理の一例である。
ステップＳ１３０７で、ＣＰＵ３０３は、ステップＳ１３０６の結果で、ファームウェアの更新を許可する場合には、ステップＳ１３０８に進み、許可しない場合には、ステップＳ１３０９に進む。
ステップＳ１３０８で、ＣＰＵ３０３は、Ｓ１３０３で取得したレコードを適用可能ファームウェアリストとしてメモリ３０５に追加する。ステップＳ１３０８の処理は、追加の処理の一例である。
ステップＳ１３０９で、ＣＰＵ３０３は、ステップＳ１３０２でメモリ３０５にロードした配信ファームウェアテーブル１００１で最終的にステップＳ１３０３の更新後ファームウェアバージョンになるレコードの組み合わせがあるかどうかを検索する。ＣＰＵ３０３は、存在した場合にはステップＳ１３１０に進み、存在しない場合にはステップＳ１３１２に進む。ステップＳ１３０９の処理は、検索の処理の一例である。
【００２３】
ステップＳ１３１０で、ＣＰＵ３０３は、Ｓ１３０９で検索したレコードの組み合わせがステップＳ１３０４でメモリ３０５にロードした配信履歴テーブル１１０１の中に配信履歴が成功として記憶されているかどうかを確認する。ＣＰＵ３０３は、成功であった場合にはステップＳ１３１１に進み、失敗であった場合はステップＳ１３１２に進む。ステップＳ１３１０の処理は、判定の処理の一例である。
ステップＳ１３１１で、ＣＰＵ３０３は、ステップＳ１３０９で検索したレコードの組み合わせを、複数回の更新により適用可能ファームウェアリストとしてメモリ３０５に追加する。ステップＳ１３１１の処理は、複数回更新追加の処理の一例である。複数回の更新により適用可能ファームウェアリストは、複数回更新プログラムデータの一例である。
ステップＳ１３１２で、ＣＰＵ３０３は、ステップＳ１３０２で取得した関連付けファームウェアリストで未処理であるレコードがないかどうかをチェックし、まだ未処理のレコードがあればステップＳ１３０３に戻る。ＣＰＵ３０３は、全てのレコードを処理した場合には、ステップＳ１３１３に進む。
ステップＳ１３１３で、ＣＰＵ３０３は、メモリ３０５に格納されている適用可能ファームウェアリストと複数回の更新により適用可能ファームウェアリストとを、インターネット１０４を介してＮｅｔｗｏｒｋＩ／Ｆ３０６より画像形成装置１０３に送信する。そして、ＣＰＵ３０３は、図１３に示す処理を終了する。ステップＳ１３１３の処理は、応答の処理の一例である。
【００２４】
図１４は、図１３のステップＳ１３０６で実行されるファームウェアの更新の可否の判断をする処理の一例を示すフローチャートである。
ステップＳ１４０１で、ＣＰＵ３０３は、ステップＳ１３０１で受信したデバイス番号と同じ機種であり、ステップＳ１３０３で取得した更新前と更新後とのバージョンと同じである配信履歴のレコードを配信履歴テーブルから検索し、同機種配信履歴リストとする。
ステップＳ１４０２で、ＣＰＵ３０３は、ステップＳ１３０５で取得したハードウェア構成と同構成の画像形成装置がＳ１４０１で取得した同機種配信履歴リストに存在するかどうかをチェックする。ＣＰＵ３０３は、存在する場合にはステップＳ１４０３に進み、存在しない場合にはステップＳ１４０５に進む。
ステップＳ１４０３で、ＣＰＵ３０３は、ステップＳ１４０２で発見した画像形成装置にステップＳ１３０５で取得したエラーが全て発生しているかどうかを同機種配信履歴リストでチェックする。ＣＰＵ３０３は、エラーが全て発生している場合にはステップＳ１４０４に進み、エラーが全て発生していない場合にはステップＳ１４０５に進む。
ステップＳ１４０４で、ＣＰＵ３０３は、ステップＳ１４０３で発見した画像形成装置での配信履歴を同機種配信リストで確認し、成功している場合にはステップＳ１４１１に進み、失敗している場合にはステップＳ１４１２に進む。
【００２５】
ステップＳ１４０５で、ＣＰＵ３０３は、ステップＳ１３０５で取得したハードウェア構成から未処理のハードウェア情報を１つ取得する。例えば、ＣＰＵ３０３は、ハードウェア構成に、原稿給送部、ＦＡＸボード、ハードでディスク等のハードウェア情報が含まれる場合、未処理のハードウェア情報（例えば「原稿給送部」）を取得する。
ステップＳ１４０６で、ＣＰＵ３０３は、ステップ１４０５で取得したハードウェア情報が同じである配信履歴を同機種配信リストから検索をして、全ての配信履歴で更新に失敗しているかどうかを確認する。ＣＰＵ３０３は、全て更新に失敗していた場合にはステップＳ１４１２に進み、１つでも成功していればステップＳ１４０７に進む。
ステップＳ１４０７で、ＣＰＵ３０３は、未処理のハードウェア情報があるかどうかをチェックし、もしある場合にはステップＳ１４０５に戻り、ない場合はステップＳ１４０８に進む。
ステップＳ１４０８で、ＣＰＵ３０３は、ステップＳ１３０５で取得したエラー情報から未処理のエラーコードを１つ取得する。
ステップＳ１４０９で、ＣＰＵ３０３は、ステップ１４０８で取得したエラーコードが同じである配信履歴を同機種配信リストから検索をして、全ての配信履歴で更新に失敗しているかどうかを確認する。ＣＰＵ３０３は、全て更新に失敗していた場合にはステップＳ１４１２に進み、１つでも成功していればステップＳ１４１０に進む。
ステップＳ１４１０で、ＣＰＵ３０３は、未処理のエラーコードがあるかどうかをチェックし、未処理のエラーコードがある場合にはステップＳ１４０８に戻り、ない場合はステップＳ１４１１に進む。
ステップＳ１４１１で、ＣＰＵ３０３は、ステップＳ１３０３で取得した更新前と更新後とのバージョンの組み合わせでの更新を可として結果を返し、図１４に示す処理を終了する。
ステップＳ１４１２で、ＣＰＵ３０３は、ステップＳ１３０３で取得した更新前と更新後とのバージョンの組み合わせでの更新を不可として結果を返し、図１４に示す処理を終了する。
【００２６】
なお、ネットワーク上に、限定されたデバイス番号しか存在しないことも想定できる。この場合、ＣＰＵ３０３は、図１３のＳ１３０５のデバイス情報の取得の処理をスキップすることもできる。
配信履歴テーブルのデバイス番号には、デバイスが工場出荷時に定められる所定の定数（例えば、顧客ごとに定められる一意の番号）が入力されているものとする、又はデバイス番号は省略されているものとする。つまり、ＣＰＵ３０３は、ステップＳ１４０１の処理もスキップすることで、Ｓ１４０２以下の処理を実行することもできる。
本実施形態では、更新前のバージョンの制御プログラムの一例としてのファームウェアを説明した。また、本実施形態では、このファームウェアの制御下にて動作するデバイスの一例である画像形成装置１０３を説明した。更に、本実施形態では、画像形成装置１０３と通信する配信装置の一例である配信サーバ１０１を説明した。配信サーバ１０１は、更新後のバージョンのファームウェアを画像形成装置１０３に対して送信する。この際、配信サーバ１０１は、ネットワークインタフェースを介して画像形成装置１０３にファームウェアを送信する。そして、配信サーバ１０１は、ファームウェアの更新前のバージョンから更新後のバージョンへのファームウェアの更新が成功したか否かを示す情報を含む配信履歴の一例であるデバイス情報取得応答を、画像形成装置１０３から受信する。デバイス情報取得応答には、更新前と更新後とのバージョンと同じである配信履歴のレコードが含まれ、これにより、配信サーバ１０１は、ファームウェアの更新前のバージョンから更新後のバージョンへのファームウェアへの更新が成功したかどうかを判定する。
更に、配信履歴のレコードが、更新前のバージョンから更新後のバージョンへのファームウェアの更新が成功していないことを示している場合、配信サーバ１０１は、以下の様な処理を実行してもよい。即ち、配信サーバ１０１は、ファームウェアの更新前のバージョンから更新後のバージョンへのファームウェアの更新を制限するユーザインタフェースの表示情報を、画像形成装置１０３の操作部や配信サーバ１０１の表示部において形成するための情報の一例である適用可能ファームウェアリストを形成（Ｓ１２０５）するようにしてもよい。即ち、適用可能ファームウェアリストの中に、更新後のバージョンが含まれていない場合、ファームウェアの更新前のバージョンから更新後のバージョンへのファームウェアの更新を例えば画像形成装置１０３等のユーザインタフェースにて制限することになる。表示情報においては、単に適用可能ファームウェアリストを含めるだけではなく、更新前のバージョンから更新後のバージョンへのファームウェアの更新が制限されている旨とその理由とを含ませるようにしてもよい。
【００２７】
図１５は、図１２の１２０５の応答を受信したときの画像形成装置１０３で実施する処理の一例を示すフローチャートである。
ステップＳ１５０１で、画像形成装置１０３のＣＰＵ２０７は、インターネット１０４を介してＮｅｔｗｏｒｋＩ／Ｆ２０５よりステップＳ１３１３で返される適用可能ファームウェアリストと複数回の更新により適用可能ファームウェアリストとを受信する。
ステップＳ１５０２で、ＣＰＵ２０７は、更新ファームウェア選択画面８０１を生成してメモリ２０９に保持する。
ステップＳ１５０３で、ＣＰＵ２０７は、ステップＳ１５０１で取得した適用可能ファームウェアの適用後バージョンを、ステップＳ１５０２で生成した更新ファームウェア選択画面８０１のファームウェア選択ラジオボタン８０２として追加する。
ステップＳ１５０４で、ＣＰＵ２０７は、ステップＳ１５０１で取得した複数回の更新により適用可能ファームウェアの適用後バージョンをステップＳ１５０２で生成した更新ファームウェア選択画面８０１のファームウェア選択ラジオボタン８０２として追加する。
なお、この際に、ＣＰＵ２０７は、ファームウェア選択ラジオボタン８０２には注意書きとして複数回バージョンアップするという文言を追加する。
ステップＳ１５０５で、ＣＰＵ２０７は、更新ファームウェア選択画面８０１を表示部２１１に表示をする。
【００２８】
以上、本実施形態により、ソフトウェアの更新ができないと判断したものは更新の対象外とすることで、ソフトウェアの更新に失敗する可能性のある組み合わせでソフトウェア配信を防ぐことができる。また、失敗する可能性のあるファームウェアの組み合わせを避け、複数回のソフトウェア更新をすることで目的のバージョンにすることで、より適切なソフトウェア配信を行うことができる。
【００２９】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００３０】
以上、上述した各実施形態によれば、ソフトウェアのインストールや更新による失敗により動作しなくなるデバイスが広がることを効率的に防ぐことができる。
【００３１】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
例えば、上述した実施形態では、デバイスを識別するデバイス識別情報の一例としてデバイス番号を例に説明を行ったが、例えば、デバイスの機種名とデバイスのオプション構成との組を、デバイスを識別するデバイス識別情報として用いてもよい。
【図１】
2011238007.tif 000003
【図２】
2011238007.tif 000004
【図３】
2011238007.tif 000005
【図４】
2011238007.tif 000006
【図５】
2011238007.tif 000007
【図６】
2011238007.tif 000008
【図７】
2011238007.tif 000009
【図８】
2011238007.tif 000010
【図９】
2011238007.tif 000011
【図１０】
2011238007.tif 000012
【図１１】
2011238007.tif 000013
【図１２】
2011238007.tif 000014
【図１３】
2011238007.tif 000015
【図１４】
2011238007.tif 000016
【図１５】
2011238007.tif 000017