(57)【要約】      （修正有）【課題】複数の装置におけるソフトウェアのバージョンアップを適切なタイミングで行うシステムを提供する。【解決手段】情報処理装置（ＤＦＥ）１２１は、画像処理装置（ＭＦＰ）１２２にインストールされている第１のソフトウェアのバージョンアップの実行の通知Ｓ４０３に対して、インストールされている第２のソフトウェアのバージョンアップの実行を行う旨を付加し、付加された通知Ｓ４０３をサーバ１１３に送信する。サーバ１１３から配信された第２のバージョンアップ用ソフトウェア４１７を取得して、第２のバージョンアップ用ソフトウェア４１７を用いて第２のソフトウェアをバージョンアップする。【選択図】図４
2016161986.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置と、
情報処理装置と、
前記画像処理装置にインストールされている第１のソフトウェアと、前記情報処理装置にインストールされ前記画像処理装置に関連する第２のソフトウェアとを管理するサーバと、を含むシステムであって、
前記画像処理装置は、
前記第１のソフトウェアのバージョンアップの実行を前記情報処理装置を介して前記サーバに通知する通知手段と、
前記通知手段による通知に応じて前記サーバから配信された、前記第１のソフトウェアをバージョンアップするための第１のバージョンアップ用ソフトウェアを取得する第１の取得手段と、
前記第１の取得手段により取得された前記第１のバージョンアップ用ソフトウェアを用いて前記第１のソフトウェアをバージョンアップする第１のバージョンアップ手段と、を備え、
前記サーバは、
前記通知手段による通知に応じて、前記第１のバージョンアップ用ソフトウェアと、前記第２のソフトウェアをバージョンアップするための第２のバージョンアップ用ソフトウェアを配信する第１の配信手段、を備え、
前記情報処理装置は、
前記通知手段による通知に対して、前記第２のソフトウェアのバージョンアップの実行を行う旨を付加し、当該付加された通知を前記サーバに送信する送信手段と、
前記第１の配信手段により配信された前記第２のバージョンアップ用ソフトウェアを取得する第２の取得手段と、
前記第２の取得手段により取得された前記第２のバージョンアップ用ソフトウェアを用いて前記第２のソフトウェアをバージョンアップする第２のバージョンアップ手段と、を備える、
ことを特徴とするシステム。
【請求項２】
画像処理装置と、
情報処理装置と、
前記画像処理装置にインストールされている第１のソフトウェアと、前記情報処理装置にインストールされ前記画像処理装置に関連する第２のソフトウェアとを管理するサーバと、を含むシステムであって、
前記画像処理装置は、
前記第１のソフトウェアのバージョンアップの実行を前記サーバに通知する通知手段と、
前記通知手段による通知に応じて前記サーバから配信された、前記第１のソフトウェアをバージョンアップするための第１のバージョンアップ用ソフトウェアを取得する第１の取得手段と、
前記第１の取得手段により取得された前記第１のバージョンアップ用ソフトウェアを用いて前記第１のソフトウェアをバージョンアップする第１のバージョンアップ手段と、を備え、
前記サーバは、
前記通知手段による通知に応じて、前記第１のバージョンアップ用ソフトウェアと、前記第２のソフトウェアをバージョンアップするための第２のバージョンアップ用ソフトウェアを配信する第１の配信手段、を備え、
前記情報処理装置は、
前記第１の配信手段により配信された前記第２のバージョンアップ用ソフトウェアを取得する第２の取得手段と、
前記第２の取得手段により取得された前記第２のバージョンアップ用ソフトウェアを用いて前記第２のソフトウェアをバージョンアップする第２のバージョンアップ手段と、を備える、
ことを特徴とするシステム。
【請求項３】
前記第１の配信手段は、前記第１のバージョンアップ用ソフトウェアと前記第２のバージョンアップ用ソフトウェアを前記情報処理装置に送信し、
前記情報処理装置は、
前記第１のバージョンアップ用ソフトウェアを前記画像処理装置に転送する第１の転送手段、をさらに備えることを特徴とする請求項１又は２に記載のシステム。
【請求項４】
前記情報処理装置は、
前記サーバから受信したバージョンアップ用ソフトウェアが前記第１のバージョンアップ用ソフトウェアであるか、若しくは、前記第２のバージョンアップ用ソフトウェアであるかを判定する判定手段、をさらに備え、
前記第２の取得手段は、当該受信したバージョンアップ用ソフトウェアが前記第２のバージョンアップ用ソフトウェアであると前記判定手段により判定された場合、前記第２のバージョンアップ用ソフトウェアを取得し、
前記第１の転送手段は、当該受信したバージョンアップ用ソフトウェアが前記第１のバージョンアップ用ソフトウェアであると前記判定手段により判定された場合、前記第１のバージョンアップ用ソフトウェアを前記画像処理装置に転送する、
ことを特徴とする請求項３に記載のシステム。
【請求項５】
前記サーバは、
前記通知手段による通知に応じて、前記第１のバージョンアップ用ソフトウェアと前記第２のバージョンアップ用ソフトウェアを配信する前に、前記第１のソフトウェアのバージョンアップに関連してバージョンアップされるソフトウェアのリストを配信する第２の配信手段、をさらに備え、
前記判定手段は、前記サーバから配信された前記リストに基づいて、前記サーバから受信したバージョンアップ用ソフトウェアが前記第１のバージョンアップ用ソフトウェアであるか、若しくは、前記第２のバージョンアップ用ソフトウェアであるかを判定する、
ことを特徴とする請求項４に記載のシステム。
【請求項６】
前記第２の配信手段は、前記リストを前記情報処理装置に送信し、
前記情報処理装置は、
前記第２の配信手段により送信された前記リストを取得して当該リストを前記画像処理装置に転送する第２の転送手段、をさらに備えることを特徴とする請求項５に記載のシステム。
【請求項７】
前記サーバは、
前記通知手段による通知に応じて、配信対象のバージョンアップ用ソフトウェアがないことを前記情報処理装置を介して前記画像処理装置に通知する第２の通知手段、をさらに備え、
前記情報処理装置は、
前記第２の通知手段による通知を取得する第３の取得手段と、
前記第３の取得手段により取得した通知が前記第２のバージョンアップ用ソフトウェアが前記サーバにないことを示す場合、第２のサーバに前記第２のバージョンアップ用ソフトウェアを要求する要求手段と、をさらに備える、ことを特徴とする請求項６に記載のシステム。
【請求項８】
画像処理装置、および、
前記画像処理装置にインストールされている第１のソフトウェアと、情報処理装置にインストールされ前記画像処理装置に関連する第２のソフトウェアとを管理するサーバ、とネットワークを介して通信可能な前記情報処理装置であって、
前記画像処理装置から前記サーバあてに送信された前記第１のソフトウェアのバージョンアップの実行の通知を取得する取得手段と、
前記取得手段により取得された通知に対して、前記第２のソフトウェアのバージョンアップの実行を行う旨を付加し、当該付加された通知を前記サーバに送信する送信手段と、
前記サーバから配信された、前記第２のソフトウェアをバージョンアップするための第２のバージョンアップ用ソフトウェアを取得する第２の取得手段と、
前記第２の取得手段により取得された前記第２のバージョンアップ用ソフトウェアを用いて、前記第２のソフトウェアをバージョンアップするバージョンアップ手段と、
を備えることを特徴とする情報処理装置。
【請求項９】
前記サーバから受信したバージョンアップ用ソフトウェアが前記第１のソフトウェアをバージョンアップするための第１のバージョンアップ用ソフトウェアであるか、若しくは、前記第２のバージョンアップ用ソフトウェアであるかを判定する判定手段、をさらに備え、
前記第２取得手段は、当該受信したバージョンアップ用ソフトウェアが前記第２のバージョンアップ用ソフトウェアであると前記判定手段により判定された場合、前記第２のバージョンアップ用ソフトウェアを取得する、ことを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
当該受信したバージョンアップ用ソフトウェアが前記第１のバージョンアップ用ソフトウェアであると前記判定手段により判定された場合、前記第１のバージョンアップ用ソフトウェアを前記画像処理装置に転送する転送手段、をさらに備えることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記第１のソフトウェアのバージョンアップに関連してバージョンアップされるソフトウェアのリストを前記サーバから受信する受信手段、をさらに備え、
前記判定手段は、前記受信手段により受信した前記リストに基づいて、前記サーバから受信したバージョンアップ用ソフトウェアが前記第１のバージョンアップ用ソフトウェアであるか、若しくは、前記第２のバージョンアップ用ソフトウェアであるかを判定する、ことを特徴とする請求項９又は１０に記載の情報処理装置。
【請求項１２】
画像処理装置と、
情報処理装置と、
前記画像処理装置にインストールされている第１のソフトウェアと、前記情報処理装置にインストールされ前記画像処理装置に関連する第２のソフトウェアとを管理するサーバと、を含むシステムにおいて実行されるバージョンアップ方法であって、
前記画像処理装置が、
前記第１のソフトウェアのバージョンアップの実行を前記情報処理装置を介して前記サーバに通知する通知工程と、
前記通知工程における通知に応じて前記サーバから配信された、前記第１のソフトウェアをバージョンアップするための第１のバージョンアップ用ソフトウェアを取得する第１の取得工程と、
前記第１の取得工程において取得された前記第１のバージョンアップ用ソフトウェアを用いて前記第１のソフトウェアをバージョンアップする第１のバージョンアップ工程と、を有し、
前記サーバが、
前記通知工程における通知に応じて、前記第１のバージョンアップ用ソフトウェアと、前記第２のソフトウェアをバージョンアップするための第２のバージョンアップ用ソフトウェアを配信する第１の配信工程、を有し、
前記情報処理装置が、
前記通知工程における通知に対して、前記第２のソフトウェアのバージョンアップの実行を行う旨を付加し、当該付加された通知を前記サーバに送信する送信工程と、
前記第１の配信工程において配信された前記第２のバージョンアップ用ソフトウェアを取得する第２の取得工程と、
前記第２の取得工程において取得された前記第２のバージョンアップ用ソフトウェアを用いて前記第２のソフトウェアをバージョンアップする第２のバージョンアップ工程と、を有する、
ことを特徴とするバージョンアップ方法。
【請求項１３】
画像処理装置と、
情報処理装置と、
前記画像処理装置にインストールされている第１のソフトウェアと、前記情報処理装置にインストールされ前記画像処理装置に関連する第２のソフトウェアとを管理するサーバと、を含むシステムにおいて実行されるバージョンアップ方法であって、
前記画像処理装置が、
前記第１のソフトウェアのバージョンアップの実行を前記サーバに通知する通知工程と、
前記通知工程における通知に応じて前記サーバから配信された、前記第１のソフトウェアをバージョンアップするための第１のバージョンアップ用ソフトウェアを取得する第１の取得工程と、
前記第１の取得工程において取得された前記第１のバージョンアップ用ソフトウェアを用いて前記第１のソフトウェアをバージョンアップする第１のバージョンアップ工程と、を有し、
前記サーバが、
前記通知工程における通知に応じて、前記第１のバージョンアップ用ソフトウェアと、前記第２のソフトウェアをバージョンアップするための第２のバージョンアップ用ソフトウェアを配信する第１の配信工程、を有し、
前記情報処理装置が、
前記第１の配信工程において配信された前記第２のバージョンアップ用ソフトウェアを取得する第２の取得工程と、
前記第２の取得工程において取得された前記第２のバージョンアップ用ソフトウェアを用いて前記第２のソフトウェアをバージョンアップする第２のバージョンアップ工程と、を有する、
ことを特徴とするバージョンアップ方法。
【請求項１４】
画像処理装置、および、
前記画像処理装置にインストールされている第１のソフトウェアと、情報処理装置にインストールされ前記画像処理装置に関連する第２のソフトウェアとを管理するサーバ、とネットワークを介して通信可能な前記情報処理装置において実行されるバージョンアップ方法であって、
前記画像処理装置から前記サーバあてに送信された前記第１のソフトウェアのバージョンアップの実行の通知を取得する取得工程と、
前記取得工程において取得された通知に対して、前記第２のソフトウェアのバージョンアップの実行を行う旨を付加し、当該付加された通知を前記サーバに送信する送信工程と、
前記サーバから配信された、前記第２のソフトウェアをバージョンアップするための第２のバージョンアップ用ソフトウェアを取得する第２の取得工程と、
前記第２の取得工程において取得された前記第２のバージョンアップ用ソフトウェアを用いて、前記第２のソフトウェアをバージョンアップするバージョンアップ工程と、
を有することを特徴とするバージョンアップ方法。
【請求項１５】
請求項１４に記載のバージョンアップ方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのバージョンアップを行うシステム、バージョンアップ方法およびプログラム、並びに、情報処理装置に関する。
【背景技術】
【０００２】
ネットワーク上の情報機器にインストールされているソフトウェアをバージョンアップする場合がある。そのバージョンアップの方法の一つとして、ネットワーク上の配信サーバが新しいバージョンのソフトウェアを保持し、情報機器からのバージョンアップ要求に応じて、新しいバージョンのソフトウェアを配信する。また、複数の情報機器が一つのシステムとして構成されている場合、これらの複数の情報機器についてバージョンアップする場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１２８５７１号公報
【特許文献２】特開２０１２−１６３９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１には、生体情報イメージング装置が複数のコントローラから構成され、それら複数のコントローラをバージョンアップする方法が記載されている。特許文献１では、複数のコントローラをバージョンアップモードに移行し、各コントローラのインストール済みのバージョンを確認し、バージョンアップが必要な各コントローラを特定し、そのコントローラについてバージョンアップを行う。
【０００５】
しかしながら、複数のコントローラが別々の会社で設計されている場合、配信サーバやバージョンアップモードへの移行方法、バージョンアップ方法が異なるので、各コントローラでタイミングを整合させてバージョンアップモードに移行することが難しい。
【０００６】
特許文献２には、管理装置が一旦、複数の情報機器に対するバージョンアップのソフトウェアを受信し、各情報機器に対して最適な方法で配信する方法が記載されている。特許文献２では、管理装置が各情報機器に対する代理サーバ的な役割を果たしており、各情報機器と配信サーバとの仲介を行っている。
【０００７】
しかしながら、複数の情報機器が一つのシステムとして構成されている場合、各機器でタイミングを整合させてバージョンアップを行う方法については考慮されていない。
【０００８】
本発明の目的は、このような従来の問題点を解決することにある。上記の点に鑑み、本発明は、複数の装置におけるソフトウェアのバージョンアップを適切なタイミングで行うシステム、バージョンアップ方法およびプログラム、並びに、情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明に係るシステムは、画像処理装置と、情報処理装置と、前記画像処理装置にインストールされている第１のソフトウェアと、前記情報処理装置にインストールされ前記画像処理装置に関連する第２のソフトウェアとを管理するサーバと、を含むシステムであって、前記画像処理装置は、前記第１のソフトウェアのバージョンアップの実行を前記情報処理装置を介して前記サーバに通知する通知手段と、前記通知手段による通知に応じて前記サーバから配信された、前記第１のソフトウェアをバージョンアップするための第１のバージョンアップ用ソフトウェアを取得する第１の取得手段と、前記第１の取得手段により取得された前記第１のバージョンアップ用ソフトウェアを用いて前記第１のソフトウェアをバージョンアップする第１のバージョンアップ手段と、を備え、前記サーバは、前記通知手段による通知に応じて、前記第１のバージョンアップ用ソフトウェアと、前記第２のソフトウェアをバージョンアップするための第２のバージョンアップ用ソフトウェアを配信する第１の配信手段、を備え、前記情報処理装置は、前記通知手段による通知に対して、前記第２のソフトウェアのバージョンアップの実行を行う旨を付加し、当該付加された通知を前記サーバに送信する送信手段と、前記第１の配信手段により配信された前記第２のバージョンアップ用ソフトウェアを取得する第２の取得手段と、前記第２の取得手段により取得された前記第２のバージョンアップ用ソフトウェアを用いて前記第２のソフトウェアをバージョンアップする第２のバージョンアップ手段と、を備える、ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、複数の装置におけるソフトウェアのバージョンアップを適切なタイミングで行うことができる。
【図面の簡単な説明】
【００１１】
【図１】システムの構成を示す図である。
【図２】ＤＦＥのハードウェア構成を示すブロック図である。
【図３】ＤＦＥの機能ブロック図である。
【図４】ソフトウェアをバージョンアップする装置間での処理の流れを示す図である。
【図５】ＤＦＥでの基本的な処理の手順を示すフローチャートである。
【図６】ソフトウェアのバージョンアップ処理の手順を示すフローチャートである。
【図７】ソフトウェアをバージョンアップする装置間での処理の流れを示す図である。
【図８】ソフトウェアのバージョンアップ処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１３】
［第１の実施形態］
図１は、システム１００の構成を示す図である。第１ネットワーク１０１に、画像処理装置１２２、クライアントＰＣ１１１、配信サーバ１１２、ＤＦＥ１２１が相互に通信可能に接続されている。また、第１ネットワーク１０１にインターネット１０３を介して、別の配信サーバ１１３が接続されている。ＤＦＥ１２１は、第１ネットワーク１０１に接続するネットワークポートとは別のネットワークポートにより第２ネットワーク１０２を介して画像処理装置１２２と接続されている。画像処理装置１２２は、例えば、ＭＦＰである。ＭＦＰとはＭｕｌｔｉＦｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌの略語であり、コピーやプリンタなどの複数の機能が一体化された装置である。以下、画像処理装置１２２をＭＦＰ１２２として説明する。ＤＦＥとは、Ｄｉｇｉｔａｌ  Ｆｒｏｎｔ  Ｅｎｄの略語であり、ＭＦＰに接続してＭＦＰが持つ印刷などの機能に対し、機能拡張や機能補助を提供するための情報処理装置である。
【００１４】
システム１００では、例えば、クライアントＰＣ１１１がＭＦＰ１２２に対して、ＭＦＰ１２２が実行可能なジョブ（印刷ジョブ等）を送信し、印刷ジョブである場合には、印刷用紙等の記録媒体に対して印刷を行うことができる。その場合、例えば、クライアントＰＣ１１１には、印刷アプリケーション等がインストールされている。また、ＭＦＰ１２２やＤＦＥ１２１には、その印刷アプリケーションのバージョンに対応したファームウェア若しくはソフトウェア（以下、ソフトウェアと総称）がインストールされている。その場合には、クライアントＰＣ１１１の印刷アプリケーションがバージョンアップされると、ＭＦＰ１２２やＤＦＥ１２１のソフトウェアもバージョンアップして整合させる必要がある。また、ＤＦＥ１２１のようなＭＦＰ１２２の機能に関連した装置がＭＦＰ１２２に接続される際には、ＭＦＰ１２２のソフトウェアがバージョンアップされる場合、ＤＦＥ１２１のソフトウェアもバージョンアップして整合させる必要がある。配信サーバ１１２及び１１３は、各装置にインストールされるソフトウェアのバージョン情報や、ソフトウェアをバージョンアップするためのバージョンアップ用ソフトウェアを管理している。バージョンアップ用ソフトウェアとは、インストールされているソフトウェアのバージョンを更新するための全てのソフトウェア形式を含む。例えば、バージョンアップ用ソフトウェアとは、パッチファイル形式の修正用ソフトウェアである。
【００１５】
ＤＦＥ１２１やＭＦＰ１２２のソフトウェアをバージョンアップする場合、第１ネットワーク１０１上に存在する配信サーバ１１２によりバージョンアップする場合と、インターネット１０３を介した配信サーバ１１３によりバージョンアップする場合がある。以下に説明するＤＦＥ１２１とＭＦＰ１２２のソフトウェアのバージョンアップ処理は、上記のいずれの場合についても適用することができる。本実施形態では、印刷に関する機能を有するＤＦＥ１２１とＭＦＰ１２２のソフトウェアのバージョンアップ処理について説明しているが、他の機能を有するＤＦＥ１２１とＭＦＰ１２２のソフトウェアのバージョンアップ処理にも適応することができる。
【００１６】
図４を参照しながら、ＤＦＥ１２１とＭＦＰ１２２のソフトウェアをバージョンアップする処理の流れを説明する。まず、ユーザがＭＦＰ１２２の操作画面上でソフトウェアのバージョンアップの実行を指示する。ＭＦＰ１２２は、予め決められている配信サーバ１１２或いは配信サーバ１１３にバージョンアップ要求を送信する（Ｓ４０１）。以下、配信サーバ１１３にバージョンアップ要求を送信するものとして説明する。
【００１７】
図４において、ＭＦＰ１２２と配信サーバ１１３との間の通信は、以下の通りである。ＤＦＥ１２１は、ＭＦＰ１２２から配信サーバ１１３へのソフトウェアのバージョンアップ要求を第２ネットワーク１０２を介して受信し、第１ネットワーク１０１から配信サーバ１１３へ転送する。また、ＤＦＥ１２１は、配信サーバ１１３からＭＦＰ１２２へのバージョンアップ用ソフトウェアを、第１ネットワーク１０１を介して受信し、第２ネットワーク１０２からＭＦＰ１２２へ転送する。
【００１８】
配信サーバ１１３へ送信されるソフトウェアのバージョンアップ要求のコマンドには、バージョンアップ要求対象が記述されている。バージョンアップ要求対象とは、例えば、自装置であるＭＦＰ１２２である。また、本実施形態では、ＤＦＥ１２１は、ＭＦＰ１２２から送信されたバージョンアップ要求に対して、バージョンアップ要求対象として、自装置であるＤＦＥ１２１を付加する。
【００１９】
配信サーバ１１３は、バージョンアップ要求対象のバージョンアップ用ソフトウェアの名称やバージョンなどの情報が記述された情報ファイル４１１を、ＭＦＰ１２２に対して送信する（Ｓ４０２）。その際、ＤＦＥ１２１は、送信された情報ファイル４１１をコピーして情報ファイル４１２として保持するとともに、情報ファイル４１１をＭＦＰ１２２に送信する。ＭＦＰ１２２は、受信した情報ファイル４１１を受信する。本実施形態では、受信した情報ファイル４１１を情報ファイル４１３とする。情報ファイル４１１には、ＭＦＰ１２２及びＤＦＥ１２１の両方についての情報が記述されている。
【００２０】
ＭＦＰ１２２は、情報ファイル４１３に記述された情報に基づいて、バージョンアップ要求対象のバージョンアップ用ソフトウェアの送信を配信サーバ１１３に要求する（Ｓ４０３）。配信サーバ１１３は、バージョンアップ用ソフトウェア４１４をＭＦＰ１２２に送信する（Ｓ４０４）。ＭＦＰ１２２は、バージョンアップ用ソフトウェア４１４を受信する。本実施形態では、受信したバージョンアップ用ソフトウェア４１４をバージョンアップ用ソフトウェア４１５とする。
【００２１】
ＭＦＰ１２２は、バージョンアップ用ソフトウェア４１５が正しいものであるか否かを判定する。正しいものであるか否かとは、例えば、受信したソフトウェアがシステム１００において認証されたものであるか否かである。ＭＦＰ１２２は、Ｓ４０３及びＳ４０４の処理を、バージョンアップ要求対象分だけ繰り返す。その繰り返しの中で、ＤＦＥ１２１のバージョンアップ用ソフトウェアの要求（Ｓ４０５）とバージョンアップ用ソフトウェアの送信（Ｓ４０６）が行われる。ＤＦＥ１２１は、自身のバージョンアップ用ソフトウェアを受信したと判定した場合、送信されたバージョンアップ用ソフトウェア４１６をコピーしてバージョンアップ用ソフトウェア４１７として保持する。また、その保持とともに、ＤＦＥ１２１は、バージョンアップ用ソフトウェア４１６をＭＦＰ１２２に転送する。ＭＦＰ１２２は、バージョンアップ用ソフトウェア４１６を受信する。本実施形態では、受信したバージョンアップ用ソフトウェア４１６をバージョンアップ用ソフトウェア４１８とする。
【００２２】
ＭＦＰ１２２は、情報ファイル４１３に基づいて、受信すべきバージョンアップ用ソフトウェアが全て揃ったと判定した場合、自身のソフトウェアをバージョンアップする（Ｓ４０８）。また、ＤＦＥ１２１は、情報ファイル４１２に基づいて、受信すべきバージョンアップ用ソフトウェアが全て揃ったと判定した場合、自身のソフトウェアをバージョンアップする（Ｓ４０７）。
【００２３】
ＭＦＰ１２２及びＤＦＥ１２１におけるソフトウェアのバージョンアップでは、再起動等による汎用的な方法が用いられて良い。なお、ＭＦＰ１２２は、受信したＤＦＥ１２１用のバージョンアップ用ソフトウェア４１８については、バージョンアップ処理では使用しない。
【００２４】
図２は、ＤＦＥ１２１のハードウェア構成を示すブロック図である。ＤＦＥ１２１は、ＣＰＵ２１１、ＲＯＭ２１２、ＲＡＭ２１３、表示／操作装置インタフェース（Ｉ／Ｆ）部２１４、記憶装置Ｉ／Ｆ部２１５、プリンタ装置Ｉ／Ｆ部２１６、第１ネットワークＩ／Ｆ部２１７、第２ネットワークＩ／Ｆ部２１８を含む。これらのハードウェアは、例えば、チップセットと呼ばれるＬＳＩなどで実現される。また、複数の機能ブロックが一つのチップセットで実現される場合もある。上記の機能ブロックは、内部バス２２０を介して相互に通信可能に接続されている。
【００２５】
記憶装置２１９は、例えばハードディスクドライブ（ＨＤＤ）やＦｌａｓｈメモリなどの外部記憶装置であり、記憶装置Ｉ／Ｆ部２１５に接続されている。第１ネットワーク１０１及び第２ネットワーク１０２は、例えばＥｔｈｅｒｎｅｔ（登録商標）であり、それぞれ第１ネットワークＩ／Ｆ部２１７、第２ネットワークＩ／Ｆ部２１８と接続されている。また、第２ネットワーク１０２は、ＭＦＰ１２２とも接続されている。更に、ＭＦＰ１２２は、ＤＦＥ１２１のプリンタ装置Ｉ／Ｆ部２１６と、専用ケーブル或いは汎用ケーブルで接続されている。この接続は、一般的にＶｉｄｅｏと呼ばれており、例えば、ＤＦＥ１２１において画像処理された印刷データをＭＦＰ１２２に送信するために用いられる。表示／操作装置２３１は、例えば、表示用のディスプレイと、入力操作用のキーボード、ポインティングデバイスを含み、ディスプレイケーブルやＵＳＢケーブルなどを介して表示／操作装置Ｉ／Ｆ部２１４と接続されている。
【００２６】
ＤＦＥ１２１では、ＲＯＭ２１２或いは記憶装置２１９に記憶されたプログラムに基づき、ＣＰＵ２１１がそのプログラムの一部或いは全部をＲＡＭ２１３上で実行する。また、第１ネットワークＩ／Ｆ部２１７及び第２ネットワークＩ／Ｆ部２１８は、上記のプログラムの実行により、クライアントＰＣ１１１、配信サーバ１１２、配信サーバ１１３との通信を行う。表示／操作装置Ｉ／Ｆ部２１４は、上記のプログラムの実行により、例えば、ユーザに対してＤＦＥ１２１上で動作するソフトウェアの処理状況を表示したり、ユーザからの指示操作を受け付けたりする。また、記憶装置Ｉ／Ｆ部２１５は、上記のプログラムの実行により、ファイルやデータを記憶する。また、プリンタ装置Ｉ／Ｆ部２１６は、上記のプログラムの実行により、ＭＦＰ１２２に対して印刷用データを送信する。本実施形態においては、ＭＦＰ１２２は、例えば、インクジェット記録方式や電子写真方式により記録媒体への印刷を行う。
【００２７】
第１のネットワーク１０１及び第２のネットワーク１０２は、有線ネットワークでも良いし、無線ネットワークでも良い。また、第１のネットワークＩ／Ｆ部２１７及び第２のネットワークＩ／Ｆ部２１８は、第１のネットワーク１０１及び第２のネットワーク１０２の媒体に応じた構成を有する。
【００２８】
図３は、ＤＦＥ１２１の機能ブロック図である。図３の機能ブロック図は、ＲＯＭ２１２或いは記憶装置２１９に記憶されたプログラムに基づき、ＣＰＵ２１１がそのプログラムの一部或いは全部をＲＡＭ２１３上で実行することにより実現される。
【００２９】
第１ネットワークＩ／Ｆ処理部３０６及び第２ネットワークＩ／Ｆ処理部３０７は、ハードウェアである第１ネットワークＩ／Ｆ部２１７及び第２ネットワークＩ／Ｆ部２１８と連携して動作する。そして、ハードウェア用ドライバソフトウェア及びＴＣＰ／ＩＰ層を処理する所謂ネットワークプロトコルスタックとして機能する。第１ネットワークＩ／Ｆ処理部３０６は、第１ネットワークＩ／Ｆ部２１７で自身宛てのネットワークパケットとして受信しＭＡＣヘッダが処理されたデータに対し、ＴＣＰ／ＩＰヘッダを処理してペイロード（データ本体）をデータ記憶部３０８に保存する。
【００３０】
第２ネットワークＩ／Ｆ処理部３０７は、第２ネットワークＩ／Ｆ部２１８で自身宛てのネットワークパケットとして受信しＭＡＣヘッダが処理されたデータに対し、ＴＣＰ／ＩＰヘッダを処理してペイロード（データ本体）をデータ記憶部３０８に保存する。データ記憶部３０８は、例えば、記憶装置２１９内に実現される。また、第１ネットワークＩ／Ｆ処理部３０６及び第２ネットワークＩ／Ｆ処理部３０７は、データ記憶部３０８に保存されたデータ本体を第１ネットワーク１０１や第２ネットワーク１０２へ送信する。第１ネットワーク１０１及び第２ネットワーク１０２はＥｔｈｅｒｎｅｔを想定しているが、それ以外のＴｏｋｅｎＲｉｎｇや光ファイバなど別の通信方式のネットワークが用いられても良い。
【００３１】
第１サービス固有処理部３０１は、本実施形態におけるバージョンアップ処理を実行する。第２サービス固有処理部３０２、第３サービス固有処理部３０３、第４サービス固有処理部３０４は、バージョンアップ処理以外の処理に対応する処理部である。また、サービス基本処理部３０５は、第１サービス固有処理部３０１〜第４サービス固有処理部３０４の複数のサービスに共通な処理に対応する処理部である。第２サービス固有処理部３０２〜第２ネットワークＩ／Ｆ処理部３０７の動作の一例について、図５において説明する。
【００３２】
図５は、ＤＦＥ１２１での、図４のシーケンス図におけるソフトウェアのバージョンアップ要求の送信（Ｓ４０１）やバージョンアップ用ソフトウェアの返信（Ｓ４０２）などのパケット処理において共通となる基本的な処理の手順を示すフローチャートである。図５及び図６のフローチャートは、例えば、ＲＯＭ２１２或いは記憶装置２１９に記憶されたプログラムに基づき、ＣＰＵ２１１がそのプログラムの一部或いは全部をＲＡＭ２１３上で実行することにより実現される。
【００３３】
ＤＦＥ１２１は、処理を開始すると（Ｓ５００）、第１ネットワークＩ／Ｆ処理部３０６或いは第２ネットワークＩ／Ｆ処理部３０７がネットワークからネットワークパケットを受信する（Ｓ５０１）。すると、サービス基本処理部３０５は、受信したネットワークパケットのうちペイロードをデータ記憶部３０８に保存する（Ｓ５０２）。サービス基本処理部３０５は、データ記憶部３０８にペイロードを保存すると、ペイロードのデータを検証する（Ｓ５０３）。この検証は、例えば、固有サービスごとに予め定められた文字列やデータ名、データ形式などが存在するかを検証するものである。検証した結果、予め定められた文字列やデータ名、データ形式などが存在する場合、サービス基本処理部３０５は、サービス固有処理部３０１〜３０４のうち該当するサービス固有処理部に通知する（Ｓ５０４）。通知を受けたサービス固有処理部は、そのサービス固有の処理をペイロードに対して行う（Ｓ５０５）。その際に行われる処理は、例えば、ペイロードの該当データをコピーしたり、ペイロード内の文字列の一部を編集したりする処理である。ペイロードに対する処理が終われば、サービス基本処理部３０５は、処理されたペイロードを第１ネットワークＩ／Ｆ処理部３０６又は第２ネットワークＩ／Ｆ処理部３０７に渡す（Ｓ５０６）。第１ネットワークＩ／Ｆ処理部３０６又は第２ネットワークＩ／Ｆ処理部３０８は、渡されたペイロードをネットワークに対して送信し（Ｓ５０７）、図５の処理を終了する（Ｓ５０８）。Ｓ５０６とＳ５０７の処理は、所謂ネットワークパケットを送信する処理であり、既存のネットワーク技術で実現されても良い。
【００３４】
図６は、本実施形態におけるソフトウェアのバージョンアップ処理の手順を示すフローチャートである。図６において、図５のＳ５０１〜Ｓ５０４およびＳ５０６〜Ｓ５０７のサービス基本処理部３０５の処理については同じである。従って、図６では、サービス基本処理部３０５の処理についての説明は省略し、Ｓ５０５のサービス固有処理部の処理について説明する。
【００３５】
ＤＦＥ１２１は、処理を開始すると（Ｓ６００）、サービス基本処理部３０５は、ペイロードを検証し、ソフトウェアのバージョンアップ要求があるか否かを判定する（Ｓ６０１）。例えば、サービス基本処理部３０５は、ペイロードにＭＦＰ１２２から配信サーバ１１３へのソフトウェアのバージョンアップ要求コマンドの文字列が存在するか否かを判定する。その判定の結果（Ｓ６０２）、存在すると判定された場合にはＳ６０３へ進み、存在しないと判定された場合にはＳ６０１の処理を繰り返す。
【００３６】
Ｓ６０３において、第１サービス固有処理部３０１は、ペイロード内の、ソフトウェアのバージョンアップ要求コマンドのパラメータを参照し、バージョンアップ要求対象にＤＦＥ１２１が含まれているか否かを判定する。その判定は、例えば、バージョンアップ要求コマンド及びバージョンアップ要求対象のパラメータが下記のような構造をしている場合、＜request versionup＞の文字列によりバージョンアップ要求が行われていると判定する。また、さらに、そのパラメータ“Target=”により対象物を判定する。下記例では、メインコントローラとフィニッシャコントローラが対象であり、ＤＦＥ１２１は対象として含まれていないことが分かる。Ｓ６０３の判定の結果（Ｓ６０４）、ＤＦＥ１２１が含まれていると判定された場合にはＳ６０６へ進み、ＤＦＥ１２１は含まれていないと判定された場合にはＳ６０５へ進む。
【００３７】
＜request versionup＞
Target=Main_controller
Target=Finisher_controller
＜/request versionup＞
Ｓ６０５において、第１サービス固有処理部３０１は、バージョンアップ要求対象にＤＦＥを追加する（Ｓ６０５）。この追加は、ペイロードのコマンドの上記該当部分に対して下記のように“Target=DFE_controller”の行を追加し、ペイロードを変更することで行われる。
【００３８】
＜request versionup＞
Target=Main_controller
Target=Finisher_controller
Target=DFE_controller
＜/request versionup＞
Ｓ６０６において、図５で説明したように、第１ネットワークＩ／Ｆ処理部３０６又は第２ネットワークＩ／Ｆ処理部３０７は、ペイロードが処理されたネットワークパケットをネットワークに送信する。ここまでの処理は、図４のＳ４０１に対応する。そして、次に受信したペイロードに対する処理としてＳ６０６の処理が行われる。
【００３９】
Ｓ６０６において、第１サービス固有処理部３０１は、ペイロードを検証し、バージョンアップ情報があるか否かを判定する。本実施形態では、配信サーバ１１３は、バージョンアップ要求コマンドを受信してバージョンアップ要求対象に指定されているバージョンアップ用ソフトウェアを送信するにあたり、まず、送信するバージョンアップ用ソフトウェアのリストを送信する。このリストは、例えば、ＭＦＰ１２２でのソフトウェアをバージョンアップする際に、システム１００内で関連してバージョンアップされる対象のソフトウェアのリストである。例えば、配信サーバ１１３は、バージョンアップ用ソフトウェアのリストをバージョンアップ情報として、下記に示すようなinfo.lstというファイルを送信する。この処理は、図４のＳ４０２に対応する。Ｓ６０６において、第１サービス固有処理部３０１は、ペイロードにinfo.lstというファイルが存在するか否かを判定する。その判定の結果（Ｓ６０７）、存在すると判定された場合にはＳ６０８へ進み、存在しないと判定された場合にはＳ６０６の処理を繰り返す。
【００４０】
＜file_name = info.lst＞
＜versionup＞
Target=Main_controller; Name=main.pkg. Ver=5.01, Checksum=1234,
Target=Finisher_controller; Name=finisher.pkg. Ver=5.02, Checksum=4567,
Target=DFE_controller; Name=dfe.dwl. Ver=012, Checksum=7890,
＜/versionup＞
本実施形態では、第１サービス固有処理部３０１は、Ｓ６０８の処理を行う前に、受信したinfo.lstをＲＡＭ２１３などの記憶領域にコピーし、以降、そのコピーしたデータに対して処理を継続する。また、第１サービス固有処理部３０１は、受信したinfo.lstをＭＦＰ１２２に対して送信し、ＭＦＰ１２２は、第１サービス固有処理部３０１から送信されたinfo.lstを使ってソフトウェアのバージョンアップ処理を行う。
【００４１】
次に、第１サービス固有処理部３０１は、info.lstを解析して、ソフトウェア名などの情報を取得する（Ｓ６０８）。上記のinfo.lstの例では、第１サービス固有処理部３０１は、info.lstデータの内容を解析する。そして、ＤＦＥ１２１用のバージョンアップ用ソフトウェアの名称は「dfe.dwl」であり、そのバージョンは「012」であり、そのチェックサムは「7890」であるとの情報を取得する。
【００４２】
以降、図４のＳ４０３〜Ｓ４０６の処理が行われ、特にＤＦＥ１２１では、Ｓ６０９以降の処理が行われる。
【００４３】
Ｓ６０９において、第１サービス固有処理部３０１は、ペイロードを検証し、バージョンアップ用ソフトウェアがあるか否かを判定する。この処理は、図４のＳ４０４又はＳ４０６において行われる。また、この判定処理は、例えば、配信サーバ１１３からバージョンアップ用ソフトウェアが送信されると、ペイロードがデータ記憶部３０８に保存されるので、データ記憶部３０８から名称がdfe.dwlであるデータを検索することにより行われる。その判定の結果（Ｓ６１０）、バージョンアップ用ソフトウェアがあると判定された場合にはＳ６１１へ進み、バージョンアップ用ソフトウェアがないと判定された場合にはＳ６２１へ進む。
【００４４】
Ｓ６１１において、第１サービス固有処理部３０１は、バージョンアップ用ソフトウェアを取得する。そして、第１サービス固有処理部３０１は、取得したバージョンアップ用ソフトウェアが正しいか否かを検証する（Ｓ６１２）。この検証は、例えば、info.lstの解析により取得したバージョンとチェックサムの値を用いてdfe.dwlを解析し、解析の欠課、そのバージョンが012であり、dfe.dwlのチェックサムの計算結果が7890であれば正しいと検証する。検証の結果、正しいと判定されればＳ６１３へ進み、正しくないと判定されればエラー表示（不図示）を行う。エラー表示の際には、ソフトウェアのバージョンアップ処理を中断しても良いかについてユーザの指示入力を待機し、中断の指示入力を受け付けると、処理を終了するか或いはＳ６０１から処理を繰り返す。
【００４５】
次に、第１サービス固有処理部３０１は、ソフトウェアのバージョンアップ処理を実行する（Ｓ６１３）。ソフトウェアのバージョンアップ処理の実行においては、一般的なバージョンアップの方法が用いられて良い。通常、ソフトウェアのバージョンアップ処理を行えば、システムの再起動が必要な場合がある。ＤＦＥ１２１は、配信サーバ１１３からＭＦＰ１２２へのバージョンアップ用ソフトウェアの転送を行っているので、ＤＦＥ１２１の再起動を行えば転送が中断されてしまい、ＭＦＰ１２２でのソフトウェアのバージョンアップ処理が失敗してしまう。従って、ＤＦＥ１２１でのソフトウェアのバージョンアップ処理の実行は、ＭＦＰ１２２へのバージョンアップ用ソフトウェアの送信が終了するまで待つ必要がある。
【００４６】
そこで、第１サービス固有処理部３０１は、配信サーバ１１３からＭＦＰ１２２へのバージョンアップ用ソフトウェアの送信が終了する時点で送信される終了コマンドに着目する。この終了コマンドは、例えば、システム１００内で予め定められるようにしても良い。第１サービス固有処理部３０１は、ペイロードを検証し、その終了コマンドを検出したか否かに基づいて、バージョンアップ用ソフトウェアの送信が終了したか否かを判定する（Ｓ６１４）。若しくは、第１サービス固有処理部３０１は、Ｓ６０８でinfo.lstを解析する際、ＤＦＥ１２１だけでなく送信される全てのファイル名の情報を取得し、Ｓ６０９でペイロードの検証の際、それらのファイルが全て存在するかを判定するようにしても良い。
【００４７】
第１サービス固有処理部３０１は、バージョンアップ用ソフトウェアの送信が終了したと判定した場合、リブートしても良いか否かをユーザに選択させる画面の表示処理を行う（Ｓ６１５）。図１において説明したように、ソフトウェアのバージョンアップ処理の実行指示は、ＭＦＰ１２２の操作画面上で行われるので、ＤＦＥ１２１のリブートをしても良いかの表示は、ＭＦＰ１２２の操作画面上に表示される。この表示処理は、例えば、ＭＦＰ１２２とＤＦＥ１２１との間の第２ネットワーク１０２を介したリモート表示処理により実行される。ユーザは、ＭＦＰ１２２の操作画面上でＭＦＰ１２２のバージョンアップ処理状況をモニタすることができる。そして、ユーザは、バージョンアップ用ソフトウェアの受信は全て終了していてＤＦＥ１２１を再起動しても良いと判断すると、操作画面上でＤＦＥ１２１の再起動を了承する旨の指示を入力する。
【００４８】
上記の了承の旨の指示がＭＦＰ１２２からＤＦＥ１２１に通知されると、第１サービス固有処理部３０１は、リブートを実行する（Ｓ６１６）。ＤＦＥ１２１のリブートにおいては、例えば、ＯＳのrebootコマンドを実行するか、ＤＦＥ１２１のシステムコマンドとして用意されているrestartコマンドを実行しても良い。ＤＦＥ１２１の再起動が行われると、図６の処理を終了する（Ｓ６３０）。
【００４９】
次に、Ｓ６１０でバージョンアップ用ソフトウェアがないと判定された場合について説明する。ないと判定される場合とは、例えば、Ｓ６０８で第１サービス固有処理部３０１がinfo.lstを解析し、バージョンアップ用ソフトウェアが全て送信されたにも関わらず、ＤＦＥ１２１用のバージョンアップ用ソフトウェアが見つからない場合である。若しくは、バージョンアップ用ソフトウェアの送信が終了した旨の終了コマンドを検出したにも関わらず、ＤＦＥ１２１用のバージョンアップ用ソフトウェアが見つからない場合である。その場合、第１サービス固有処理部３０１は、バージョンアップ用ソフトウェアが見つからない旨のエラー及び中止受付可能な画面をＭＦＰ１２２の操作画面に表示し、ユーザからの指示入力を待機する（Ｓ６２１）。ユーザが中止の旨の指示を入力すれば、第１サービス固有処理部３０１は、ソフトウェアのバージョンアップ処理を中止し（Ｓ６２２）、図６の処理を終了する（Ｓ６３０）。
【００５０】
以上のように、本実施形態では、まず、ＭＦＰ１２２がソフトウェアのバージョンアップ要求を配信サーバ１１３に対して送信する。ＭＦＰ１２２と配信サーバ１１３との通信経路の間に位置するＤＦＥ１２１は、バージョンアップ要求対象に自身が記述されていない場合、ＤＦＥ１２１を付加して、ソフトウェアのバージョンアップ要求を配信サーバ１１３に転送する。配信サーバ１１３は、ソフトウェアのバージョンアップ要求を受信すると、各装置のバージョンアップ用ソフトウェアの一覧（バージョンアップ情報）を送信する。ＤＦＥ１２１は、バージョンアップ情報を自身にコピーするとともに、ＭＦＰ１２２に転送する。その結果、ＭＦＰ１２２とＤＦＥ１２１は、各装置についてのソフトウェアのバージョンアップ情報を把握することができる。
【００５１】
ＭＦＰ１２２は、各装置のバージョンアップ情報に従って、順次、バージョンアップ用ソフトウェアの要求を送信し、配信サーバ１１３は、要求に応じて、バージョンアップ用ソフトウェアを送信する。ＤＦＥ１２１は、配信サーバから１１３から送信されてきたバージョンアップ用ソフトウェアのうち、自身に対応するものがあれば、自身に対応したバージョンアップ用ソフトウェアを取得する。
【００５２】
以上のような構成により、複数の装置がシステムとして構成され、各装置におけるソフトウェアのバージョンアップの方法が異なる場合であっても、各装置でソフトウェアのバージョンアップの実行を適切なタイミングで同期させて行うことができる。
【００５３】
［第２の実施形態］
第１の実施形態では、配信サーバ１１３が、ＤＦＥ１２１とＭＦＰ１２２の両方のバージョンアップ用ソフトウェアを配信していた。本実施形態では、ＭＦＰ１２２用のバージョンアップ用ソフトウェアを配信する配信サーバ１１３と、ＤＦＥ１２１用のバージョンアップ用ソフトウェアを配信する配信サーバ１１２とが用いられる。なお、図１では、ＭＦＰ１２２用の配信サーバ１１３はインターネット１０３上に構成され、ＤＦＥ１２１用の配信サーバ１１２は第１ネットワーク１０１上に構成されるように記載されている。しかしながら、これらのサーバは、ＤＦＥ１２１およびＭＦＰ１２２と通信可能であれば、他の構成であっても良い。本実施形態では、配信サーバ１１３は、ＭＦＰ１２２に対してバージョンアップ用ソフトウェアを配信し、配信サーバ１１２は、ＤＦＥ１２１に対してバージョンアップ用ソフトウェアを配信する。また、図２のハードウェアブロック図、図３の処理機能ブロック図、図５のフローチャート、についての説明は、本実施形態においても同じである。
【００５４】
図７を参照しながら、ＤＦＥ１２１とＭＦＰ１２２のソフトウェアをバージョンアップする処理の流れを説明する。まず、ユーザがＭＦＰ１２２の操作画面上でソフトウェアのバージョンアップの実行を指示する。ＭＦＰ１２２は、予め決められている配信サーバ１１３にバージョンアップ要求を送信する（Ｓ７０１）。
【００５５】
図７において、ＭＦＰ１２２と配信サーバ１１３との通信は、以下の通りである。ＤＦＥ１２１は、ＭＦＰ１２２から配信サーバ１１３へのバージョンアップ要求を第２ネットワーク１０２を介して受信し、第１ネットワーク１０１から配信サーバ１１３へ転送する。また、ＤＦＥ１２１は、配信サーバ１１３からＭＦＰ１２２へのバージョン用アップソフトウェアを、第１ネットワーク１０１を介して受信し、第２ネットワーク１０２からＭＦＰ１２２へ転送する。
【００５６】
ＭＦＰ１２２からのバージョンアップ要求には、バージョンアップ要求対象が記述されている。バージョンアップ要求対象は、例えば、ＭＦＰ１２２と、ＭＦＰ１２２と動作上関連するＤＦＥ１２１である。配信サーバ１１３は、要求されたバージョンアップ要求対象のバージョンアップ用ソフトウェアの名称やバージョンなどの情報が記述された情報ファイル７１１を、ＭＦＰ１２２に対して送信する（Ｓ７０２）。その際、ＤＦＥ１２１は、送信された情報ファイル７１１をコピーして情報ファイル７１２として保持するとともに、情報ファイル７１１をＭＦＰ１２２に送信する。ＭＦＰ１２２は、受信した情報ファイル７１１を受信する。本実施形態では、受信した情報ファイル７１１を情報ファイル７１３とする。
【００５７】
ＭＦＰ１２２は、情報ファイル４１３に記述された情報に基づいて、バージョンアップ要求対象のバージョンアップ用ソフトウェアの送信を配信サーバ１１３に要求する（Ｓ７０３）。配信サーバ１１３は、バージョンアップ用ソフトウェア７１４をＭＦＰ１２２に送信する（Ｓ７０４）。ＭＦＰ１２２は、バージョンアップ用ソフトウェア７１４を受信する。本実施形態では、受信したバージョンアップ用ソフトウェア７１４をバージョンアップ用ソフトウェア７１５とする。
【００５８】
ＭＦＰ１２２は、バージョンアップ用ソフトウェア７１５が正しいものであるか否かを判定する。正しいものであるか否かとは、例えば、受信したソフトウェアがシステム１００において認証されたものであるか否かである。ＭＦＰ１２２は、Ｓ７０３及びＳ７０４の処理を、バージョンアップ要求対象分だけ繰り返す。その繰り返しの中で、ＤＦＥ１２１のバージョンアップ用ソフトウェアの要求（Ｓ７０３’）が行われる。しかしながら、本実施形態においては、配信サーバ１１３には、ＤＦＥ１２１用のバージョンアップ用ソフトウェアは存在しない。従って、配信サーバ１１３は、要求されたバージョンアップ用ソフトウェアは存在しない旨のエラーを送信する（Ｓ７０４’）。
【００５９】
ＤＦＥ１２１は、情報ファイル７１２を解析して、自身のバージョンアップ用ソフトウェアの要求（Ｓ７０３’）が行われていることを検出する。さらに、ＤＦＥ１２１は、配信サーバ１１３からの返信（Ｓ７０４’）により、配信サーバ１１３にはＤＦＥ１２１のバージョンアップ用ソフトウェアは存在しない旨のエラーを検出する。ＤＦＥ１２１は、そのエラーを検出すると、バージョンアップ用ソフトウェアの送信を配信サーバ１１２に要求する（Ｓ７０５）。配信サーバ１１２は、バージョンアップ用ソフトウェア７１６をＤＦＥ１２１に送信する（Ｓ７０６）。ＤＦＥ１２１は、バージョンアップ用ソフトウェア７１６を受信し、バージョンアップ用ソフトウェア７１７としてＤＦＥ１２１内に保存する。
【００６０】
ここで、ＤＦＥ１２１が上記のエラーを検出する方法の他、ＤＦＥ１２１が配信サーバ１１２に対してバージョンアップ用ソフトウェアの要求（Ｓ７０５）を行うことを決定する方法について説明する。
【００６１】
ＭＦＰ１２２が情報ファイル７１３を解析した時に、バージョンアップ要求対象のうち配信サーバ１１３に要求しない対象物を検出可能な場合がある。例えば、情報ファイル７１３に要求先の配信サーバを識別する情報（名称等）が記述されている場合である。若しくは、ＭＦＰ１２２が予め保持しているＭＦＰ１２２のオプション構成情報に基づいて、ＭＦＰ１２２は、各オプションに対応するバージョンアップ用ソフトウェアはどの配信サーバで配信対象として保持されているかが分かっている場合である。それらの場合、ＭＦＰ１２２は、Ｓ７０３’でエラーになるような要求をあえて行わなくても良い。その場合、ＤＦＥ１２１は、Ｓ７０３’での要求がＭＦＰ１２２から送信されないことを、例えば、Ｓ７０３での最後の要求からのタイムアウトにより検出するようにしても良い。
【００６２】
若しくは、ＭＦＰ１２２は、情報ファイル７１３を解析した時にＤＦＥ１２１のバージョンアップ用ソフトウェアについて配信サーバ１１２に要求することを認識すれば、その旨をＤＦＥ１２１に対して通知するようにしても良い。そして、その通知を受けたＤＦＥ１２１は、ＤＦＥ１２１用の配信サーバ１１２に対して、Ｓ７０５でのバージョンアップ用ソフトウェアの要求を行う。
【００６３】
若しくは、ＤＦＥ１２１は、情報ファイル７１２の解析時にＤＦＥ１２１のバージョンアップ用ソフトウェアについて配信サーバ１１２に要求することを認識すれば、配信サーバ１１２に対しＳ７０５でのバージョンアップ用ソフトウェアの要求を行っても良い。
【００６４】
以上のように、様々な方法でＤＦＥ１２１は、ＤＦＥ１２１用の配信サーバ１１２に対してバージョンアップ用ソフトウェアの要求を行う。
【００６５】
ＤＦＥ１２１は、バージョンアップ用ソフトウェア７１７が正しいものであるか否かを判定する。正しいものであるか否かとは、例えば、受信したソフトウェアがシステム１００において認証されたものであるか否かである。ＤＦＥ１２１は、Ｓ７０５及びＳ７０６の処理を、バージョンアップ要求対象分だけ繰り返す。
【００６６】
ＭＦＰ１２２は、情報ファイル７１３に基づいて、受信すべきバージョンアップ用ソフトウェアが全て揃ったと判定した場合、自身のソフトウェアのバージョンアップ処理を実行する（Ｓ７０８）。また、ＤＦＥ１２１は、情報ファイル７１２に基づいて、受信すべきバージョンアップ用ソフトウェアが全て揃ったと判定した場合、自身のソフトウェアのバージョンアップ処理を実行する（Ｓ７０７）。
【００６７】
図８は、本実施形態におけるソフトウェアのバージョンアップ処理の手順を示すフローチャートである。図８では、図５のＳ５０１〜Ｓ５０４およびＳ５０６〜Ｓ５０７のサービス基本処理部３０５の処理について同じである。従って、図８では、サービス基本処理部３０５の処理についての説明は省略し、Ｓ５０５のサービス固有処理部の処理について説明する。なお、図８の各処理は、例えば、ＲＯＭ２１２或いは記憶装置２１９に記憶されたプログラムに基づき、ＣＰＵ２１１がそのプログラムの一部或いは全部をＲＡＭ２１３上で実行することにより実現される。
【００６８】
ＤＦＥ１２１は、処理を開始すると（Ｓ８００）、サービス基本処理部３０５は、ペイロードを検証し、ソフトウェアのバージョンアップ要求があるか否かを判定する（Ｓ８０１）。例えば、サービス基本処理部３０５は、ペイロードにＭＦＰ１２２から配信サーバ１１３へのソフトウェアのバージョンアップ要求コマンドの文字列が存在するか否かを判定する。その判定の結果（Ｓ８０２）、存在すると判定された場合にはＳ８０３へ進み、存在しないと判定された場合にはＳ８０１の処理を繰り返す。
【００６９】
Ｓ８０３において、第１サービス固有処理部３０１は、ペイロードを検証し、配信サーバ１１３から送信されたinfo.lstを検出するとＲＡＭ２１３などの記憶領域にコピーし、以降、そのコピーしたinfo.lstに対して処理を継続する。また、第１サービス固有処理部３０１は、受信したinfo.lstをＭＦＰ１２２に対して送信し、ＭＦＰ１２２は、第１サービス固有処理部３０１から送信されたinfo.lstを使ってソフトウェアのバージョンアップ処理を行う。
【００７０】
Ｓ８０４において、第１サービス固有処理部３０１は、ＤＦＥ１２１用のバージョンアップ用ソフトウェアの要求があるか否かを判定する。例えば、Ｓ７０１でＭＦＰ１２２から受信したバージョンアップ要求コマンドのバージョンアップ要求対象のパラメータが下記のような構造の場合、＜request versionup＞の文字列によりバージョンアップ要求が行われると判定する。そして、そのパラメータ”Target=”により対象物を判定する。下記例では、メインコントローラとフィニッシャコントローラ、ＤＦＥが対象であることが分かる。
【００７１】
＜request versionup＞
Target=Main_controller
Target=Finisher_controller
Target=DFE_controller
＜/request versionup＞
第１サービス固有処理部３０１は、受信したネットワークパケットのペイロードを解析した結果、ＭＦＰ１２２から配信サーバ１１３に対して、ＤＦＥ１２１用のバージョンアップ用ソフトウェアの要求が送信されていることを検出すると以下の処理を行う。検出後、第１サービス固有処理部３０１は、配信サーバ１１３からＤＦＥ１２１用のバージョンアップ用ソフトウェアが配信されたか、配信サーバ１１３にＤＦＥ１２１用のバージョンアップ用ソフトウェアは存在しない旨のエラーが送信されたかを判定する。その際に、図７のシーケンス図において説明したように、他の検出方法が用いられても良い。
【００７２】
判定の結果（Ｓ８０５）、配信サーバ１１３にＤＦＥ１２１用のバージョンアップ用ソフトウェアは存在しない旨のエラーが送信されたと判定された場合、Ｓ８０６へ進む。一方、配信サーバ１１３からＤＦＥ１２１用のバージョンアップ用ソフトウェアが配信されたと判定された場合には、図８の処理を終了し、第１の実施形態で説明したような処理が行われる。
【００７３】
配信サーバ１１３にＤＦＥ１２１用のバージョンアップ用ソフトウェアは存在しない旨のエラーが送信されたと判定された場合、以降、第１サービス固有処理部３０１は、配信サーバ１１２にバージョンアップ用ソフトウェアを配信させるための処理を行う。
【００７４】
第１サービス固有処理部３０１は、ＤＦＥ１２１用の配信サーバ１１２との接続を試みる。接続を試みた結果（Ｓ８０７）、接続できないと判定された場合にはＳ８２１へ進む。Ｓ８２１において、第１サービス固有処理部３０１は、表示／操作装置２３１に、配信サーバ１１２に接続できない旨のエラーを表示してユーザからの指示入力を待機する。第１のサービス固有処理部３０１は、表示／操作装置２３１を介してユーザから接続中止の指示入力を受け付けた場合、配信サーバ１１２への接続を中止し、ソフトウェアのバージョンアップ処理も中止し（Ｓ８２２）、図８の処理を終了する（Ｓ８３０）。
【００７５】
Ｓ８０７において接続できると判定された場合には、Ｓ８０８へ進む。
【００７６】
Ｓ８０８において、第１サービス固有処理部３０１は、配信サーバ１１２に対して、ＤＦＥ１２１用のバージョンアップ用ソフトウェアが存在するか否かを問い合わせる。問い合わせた結果（Ｓ８０９）、存在しないと判定された場合にはＳ８２３へ進む。Ｓ８２３において、第１サービス固有処理部３０１は、表示／操作装置２３１に、配信サーバ１１２にＤＦＥ１２１用のバージョンアップ用ソフトウェアが存在しない旨のエラーを表示し、ユーザからの指示入力を待機する。第１サービス固有処理部３０１は、表示／操作装置２３１を介してユーザから接続中止の指示入力を受け付けた場合、ソフトウェアのバージョンアップ処理を中止し（Ｓ８２４）、図８の処理を終了する（Ｓ８３０）。
【００７７】
問い合わせた結果（Ｓ８０９）、存在すると判定された場合にはＳ８１０へ進む。第１サービス固有処理部３０１は、配信サーバ１１２に対して、ＤＦＥ１２１用のバージョンアップ用ソフトウェアの送信を要求する（Ｓ８１０）。第１サービス固有処理部３０１は、配信サーバ１１２から受信したバージョンアップ用ソフトウェアが正しいか否かを検証する（Ｓ８１１）。この検証は、情報ファイル７１２に記述されているソフトウェア名称や、バージョン、チェックサム等の情報を用いて検証する。例えば、第１の実施形態と同様に、info.lstの解析により取得したバージョンとチェックサムの値を用いてdfe.dwlを解析し、そのバージョンが012であることと、dfe.dwlのチェックサムの計算結果が7890であれば正しいと検証する。
【００７８】
次に、第１サービス固有処理部３０１は、ソフトウェアのバージョンアップ処理を実行する（Ｓ８１２）。ソフトウェアのバージョンアップ処理の実行においては、一般的なバージョンアップの方法が用いられて良い。通常、ソフトウェアのバージョンアップ処理を行えば、システムの再起動が必要な場合が多い。但し、ＤＦＥ１２１は、配信サーバ１１３からＭＦＰ１２２へのバージョンアップ用ソフトウェアの転送を行っているので、ＤＦＥ１２１の再起動を行えば転送が中断されてしまい、ＭＦＰ１２２のバージョンアップが失敗する。従って、バージョンアップの実行は、ＭＦＰ１２２へのバージョンアップ用ソフトウェアの送信が終了するまで待つ必要がある。そこで、第１サービス固有処理部３０１は、配信サーバ１１３からＭＦＰ１２２へのバージョンアップ用ソフトウェアの送信が終了する時点で送信される終了コマンドに着目する。この終了コマンドは、例えば、システム１００内で予め定められるようにしても良い。第１サービス固有処理部３０１は、ペイロードを検証し、その終了コマンドの送信の検出結果に基づいて、ＭＦＰ１２２へのバージョンアップ用ソフトウェアの送信が終了したか否かを判定する（Ｓ８１３）。若しくは、第１サービス固有処理部３０１は、Ｓ８０３でinfo.lstを取得して解析する際ＭＦＰ１２２用のバージョンアップ用ソフトウェアの全ファイル名の情報を取得し、Ｓ８０４でそれらのファイルが全て存在するかを判定するようにしても良い。
【００７９】
第１サービス固有処理部３０１は、バージョンアップ用ソフトウェアの送信が終了したと判定した場合、リブートしても良いか否かをユーザに選択させる画面の表示処理を行う（Ｓ８１４）。図１において説明したように、ソフトウェアのバージョンアップの指示は、ＭＦＰ１２２の操作画面上で行われるので、ＤＦＥ１２１のリブートをしても良いかの表示は、ＭＦＰ１２２の操作画面上に表示される。この表示処理は、例えば、ＭＦＰ１２２とＤＦＥ１２１との間の第２ネットワーク１０２を介したリモート表示処理により実行される。ユーザは、ＭＦＰ１２２の操作画面上でＭＦＰ１２２のバージョンアップ状況をモニタすることができる。そして、ユーザは、バージョンアップ用ソフトウェアの受信は全て終了していてＤＦＥ１２１を再起動しても良いと判断すると、操作画面上でＤＦＥ１２１の再起動を了承する旨の指示を入力する。
【００８０】
上記の了承の旨の指示がＭＦＰ１２２からＤＦＥ１２１に通知されると、第１サービス固有処理部３０１は、リブートを実行する（Ｓ８１５）。ＤＦＥ１２１のリブートにおいては、例えば、ＯＳのrebootコマンドを実行するか、ＤＦＥ１２１のシステムコマンドとして用意されているrestartコマンドを実行しても良い。ＤＦＥ１２１の再起動が行われると、図８の処理を終了する（Ｓ８３０）。
【００８１】
以上のように、本実施形態では、まず、ＭＦＰ１２２が、ＤＦＥ１２１及びＭＦＰ１２２のソフトウェアのバージョンアップ要求を配信サーバ１１３に対して送信する。配信サーバ１１３は、ソフトウェアのバージョンアップ要求を受信すると、各装置のバージョンアップ用ソフトウェアの一覧（バージョンアップ情報）を送信する。ＤＦＥ１２１は、バージョンアップ情報を自身にコピーするとともに、ＭＦＰ１２２に転送する。その結果、ＭＦＰ１２２とＤＦＥ１２１は、各装置についてのソフトウェアのバージョンアップ情報を把握することができる。
【００８２】
ＭＦＰ１２２は、各装置のバージョンアップ情報に従って、順次、バージョンアップ用ソフトウェアの要求を送信し、配信サーバ１１３は、要求に応じて、バージョンアップ用ソフトウェアを送信する。ＤＦＥ１２１は、配信サーバ１１２にＤＦＥ１２１用のバージョンアップ用ソフトウェアが存在しない旨のエラーを受信すると、配信サーバ１１２への接続を試みる。そして、配信サーバ１１２に接続でき、配信サーバ１１２にＤＦＥ１２１用のバージョンアップ用ソフトウェアが存在することを認識すると、配信サーバ１１２にＤＦＥ１２１用のバージョンアップ用ソフトウェアを要求する。
【００８３】
以上のような構成により、複数の装置がシステムとして構成され、各装置におけるソフトウェアのバージョンアップの方法が異なる場合であっても、各装置でソフトウェアのバージョンアップの実行を適切なタイミングで同期させて行うことができる。
【００８４】
第２の実施形態では、ＭＦＰ１２２は、ＤＦＥ１２１及びＭＦＰ１２２の両方をバージョンアップ要求対象として、ソフトウェアのバージョンアップ要求を送信していた。しかしながら、第１の実施形態と同様に、ＤＦＥ１２１が、バージョンアップ要求対象に自身を追加するように構成しても良い。また、ＭＦＰ１２２がバージョンアップ要求対象を自身のみとして送信し、配信サーバ１１３がソフトウェアのバージョンアップ要求を受信した場合に、バージョンアップ情報にＭＦＰ１２２及びＤＦＥ１２１の両方を含めるようにしても良い。
【００８５】
第２の実施形態では、ＤＦＥ１２１は、配信サーバ１１３からのエラー通知を受信した際に配信サーバ１１２への接続を試みるが、配信サーバが複数ある場合の接続の試行順序をＤＦＥ１２１内で予め定めるようにしても良い。若しくは、配信サーバ１１３が送信するエラー通知内で、ＤＦＥ１２１用のバージョンアップ用ソフトウェアが存在する旨が記述されるようにしても良い。
【００８６】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８７】
１１２、１１３  配信サーバ：  １２１  ＤＦＥ：  １２２  ＭＦＰ：  ２１１  ＣＰＵ：  ２１２  ＲＯＭ：  ２１３  ＲＡＭ：  ２１９  記憶装置
【図１】
2016161986.tif 000003
【図２】
2016161986.tif 000004
【図３】
2016161986.tif 000005
【図４】
2016161986.tif 000006
【図５】
2016161986.tif 000007
【図６】
2016161986.tif 000008
【図７】
2016161986.tif 000009
【図８】
2016161986.tif 000010