(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置がプログラム配信サーバ装置からプログラムを取得するプログラム配信システムにおいて、
前記プログラム配信サーバ装置は、配信すべきプログラムを複数の断片に分割する分割手段と、前記複数の情報処理装置の一部または全部のそれぞれへ、前記複数の断片のうちの１つを送信する断片送信手段とを備え、
前記複数の情報処理装置のうちの１つは、前記複数の情報処理装置の一部または全部により受信された前記複数の断片を収集する収集手段と、前記収集手段により収集された前記複数の断片から前記プログラムを復元する復元手段と、前記復元手段により復元された前記プログラムを前記複数の情報処理装置のうちの他の情報処理装置へ送信するプログラム送信手段とを備えること、
を特徴とするプログラム配信システム。
【請求項２】
複数の情報処理装置へプログラムを配信するプログラム配信サーバ装置において、
配信すべきプログラムを複数の断片に分割する分割手段と、
前記複数の情報処理装置の一部または全部のそれぞれへ、前記複数の断片のうちの１つを送信する断片送信手段と、
を備え、
前記複数の情報処理装置の一部または全部により受信された前記複数の断片を収集し、収集した前記複数の断片から前記プログラムを復元し、復元した前記プログラムを前記複数の情報処理装置のうちの他の情報処理装置へ送信する処理を実行させる指令を、前記複数の情報処理装置の一部または全部のうちの１つへ送信すること、
を特徴とするプログラム配信サーバ装置。
【請求項３】
前記複数の情報処理装置の一部または全部から複数のプログラム送信要求を受信する要求受信手段を備え、
前記分割手段は、受信された前記プログラム送信要求の数に前記プログラムを分割して前記複数の断片を生成すること、
を特徴とする請求項２記載のプログラム配信サーバ装置。
【請求項４】
前記分割手段は、前記プログラム送信要求が最初に受信された時刻から所定の時間内に受信された前記プログラム送信要求の数に前記プログラムを分割して前記複数の断片を生成することを特徴とする請求項３記載のプログラム配信サーバ装置。
【請求項５】
複数の情報処理装置へプログラムを配信するプログラム配信サーバ装置において、
配信すべきプログラムを複数の断片に分割する分割手段と、
前記複数の情報処理装置の一部または全部のそれぞれへ、前記複数の断片のうちの１つを送信する断片送信手段と、
前記複数の情報処理装置の一部または全部から複数のプログラム送信要求を受信する要求受信手段とを備え、
前記分割手段は、受信された前記プログラム送信要求の数に前記プログラムを分割して前記複数の断片を生成し、
前記複数の情報処理装置の一部または全部により受信された前記複数の断片を収集し、収集した前記複数の断片から前記プログラムを復元し、復元した前記プログラムを前記複数の情報処理装置のうちの他の情報処理装置へ送信する処理を実行させる指令を、前記複数のプログラム送信要求の送信元のうちの１つへ送信すること、
を特徴とするプログラム配信サーバ装置。
【請求項６】
前記分割手段は、前記プログラム送信要求が最初に受信された時刻から所定の時間内に受信された前記プログラム送信要求の数に前記プログラムを分割して前記複数の断片を生成することを特徴とする請求項５記載のプログラム配信サーバ装置。
【請求項７】
前記断片を受信する前記情報処理装置において復号可能な暗号化方式で前記複数の断片のそれぞれを暗号化する暗号化手段を備え、
前記断片送信手段は、暗号化された前記複数の断片を送信すること、
を特徴とする請求項２から請求項６のうちのいずれか１項記載のプログラム配信サーバ装置。
【請求項８】
プログラムを複数の断片に分割し送信するプログラム配信サーバ装置から複数の情報処理装置の一部または全部により受信された前記複数の断片を収集する収集手段と、
前記収集手段により収集された前記複数の断片から前記プログラムを復元する復元手段と、
前記復元手段により復元された前記プログラムを前記複数の情報処理装置のうちの他の情報処理装置へ送信するプログラム送信手段と、
を備えることを特徴とする情報処理装置。
【請求項９】
プログラムを複数の断片に分割し送信するプログラム配信サーバ装置から前記複数の断片のいずれか１つの断片を受信し、前記プログラム配信サーバ装置から複数の情報処理装置の一部または全部により受信された前記複数の断片を収集し、収集した前記複数の断片から前記プログラムを復元し、復元した前記プログラムを前記複数の情報処理装置の一部または全部のそれぞれへ送信するプライマリ更新処理部と、
前記プログラム配信サーバ装置から前記複数の断片のいずれか１つの断片を受信し、受信した前記断片を、前記複数の情報処理装置のうち、前記複数の断片を収集する情報処理装置へ送信するセカンダリ更新処理部と、
前記プライマリ更新処理部および前記セカンダリ更新処理部のうちのいずれか一方のみを動作させる機能切替手段と、
を備えることを特徴とする情報処理装置。
【請求項１０】
プログラム送信要求を前記プログラム配信サーバ装置へ送信し前記プログラム送信要求に対する応答を受信する要求処理手段を備え、
前記機能切替手段は、前記応答に従って前記プライマリ更新処理部および前記セカンダリ更新処理部のうちのいずれか一方のみを動作させること、
を特徴とする請求項９記載の情報処理装置。
【請求項１１】
前記プライマリ更新処理部は、暗号化された前記断片を受信して復号し、
前記セカンダリ更新処理部は、暗号化された前記断片を受信して復号し、復号後の前記断片を送信すること、
を特徴とする請求項９記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム配信システム、プログラム配信サーバ装置および情報処理装置に関するものである。
【背景技術】
【０００２】
オフィスに導入されている電子機器（コピー機、複合機など）の管理作業の１つにファームウェアの更新がある。ファームウェアの更新には、例えば、インターネットなどのコンピュータネットワークを介してファームウェアを自動的にダウンロードし、電子機器内のファームウェアを更新する方法がある（例えば特許文献１参照）。この方法では、各電子機器について更新作業が必要になり、多くの電子機器が存在する場合、更新作業も多量になってしまう。
【０００３】
複数の電子機器にプログラムをインストールする方法としては、ユーザ操作に基づき、各電子機器がプログラムの送信要求をサーバへ送信し、サーバから個別的にプログラムをダウンロードして自己にインストールする方法がある（例えば特許文献２参照）。
【０００４】
【特許文献１】特開平６−２５０９５１号公報
【特許文献２】特開２００５−２２９２７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の複数の電子機器にプログラムを自動的にインストールする方法では、電子機器の演算処理能力が低い場合、プログラムのダウンロードなどに多くの時間がかかるため、ファームウェアの更新などの、プログラムのインストールに要する時間が長くなってしまう。特に、プログラムが暗号化された状態でダウンロードされる場合には、電子機器によりプログラムを復号する必要があり、復号に多くの時間がかかってしまう。
【０００６】
本発明は、上記の問題に鑑みてなされたものであり、複数の情報処理装置へのプログラムの配信を短時間で実行することができるプログラム配信システム、並びにそのシステムで使用可能なプログラム配信サーバ装置および情報処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明では以下のようにした。
【０００８】
本発明に係るプログラム配信システムは、プログラム配信サーバ装置と複数の情報処理装置とを備える。プログラム配信サーバ装置は、配信すべきプログラムを複数の断片に分割する分割手段と、複数の情報処理装置の一部または全部のそれぞれへ、複数の断片のうちの１つを送信する断片送信手段とを備える。また、複数の情報処理装置のうちの１つは、複数の情報処理装置の一部または全部により受信された複数の断片を収集する収集手段と、収集手段により収集された複数の断片からプログラムを復元する復元手段と、復元手段により復元されたプログラムを複数の情報処理装置のうちの他の情報処理装置へ送信するプログラム送信手段とを備える。
【０００９】
これにより、１つのプログラムを分割した複数の断片が複数の情報処理装置により受信されるため、受信処理が並列に実行されるとともに分散され、複数の情報処理装置へのプログラムの配信を短時間で実行することができる。
【００１０】
本発明に係るプログラム配信サーバ装置は、配信すべきプログラムを複数の断片に分割する分割手段と、複数の情報処理装置の一部または全部のそれぞれへ、複数の断片のうちの１つを送信する断片送信手段とを備える。そして、プログラム配信サーバ装置は、複数の情報処理装置の一部または全部により受信された複数の断片を収集し、収集した複数の断片からプログラムを復元し、復元したプログラムを複数の情報処理装置のうちの他の情報処理装置へ送信する処理を実行させる指令を、複数の情報処理装置の一部または全部のうちの１つへ送信する。
【００１１】
これにより、１つのプログラムを分割した複数の断片が複数の情報処理装置により受信されるため、受信処理が並列に実行されるとともに分散され、複数の情報処理装置へのプログラムの配信を短時間で実行することができる。また、複数の断片を収集する情報処理装置が固定されないため、適切な情報処理装置を、複数の断片を収集する情報処理装置に選択することができる。
【００１２】
また、本発明に係るプログラム配信サーバ装置は、上記のプログラム配信サーバ装置に加え、次のようにしてもよい。その場合、プログラム配信サーバ装置は、複数の情報処理装置の一部または全部から複数のプログラム送信要求を受信する要求受信手段を備える。そして、分割手段は、受信されたプログラム送信要求の数にプログラムを分割して複数の断片を生成する。
【００１３】
これにより、要求を送信した装置は電源が入っており断片を受信可能である可能性が高いため、断片が受信されない可能性を低減することができる。
【００１４】
また、本発明に係るプログラム配信サーバ装置は、上記のプログラム配信サーバ装置のいずれかに加え、次のようにしてもよい。その場合、分割手段は、プログラム送信要求が最初に受信された時刻から所定の時間内に受信されたプログラム送信要求の数にプログラムを分割して複数の断片を生成する。
【００１５】
これにより、ある特定の時刻に合わせて短時間でプログラムの配信を行うことができる。
【００１６】
また、本発明に係るプログラム配信サーバ装置は、配信すべきプログラムを複数の断片に分割する分割手段と、複数の情報処理装置の一部または全部のそれぞれへ、複数の断片のうちの１つを送信する断片送信手段と、複数の情報処理装置の一部または全部から複数のプログラム送信要求を受信する要求受信手段とを備える。そして、分割手段は、受信されたプログラム送信要求の数にプログラムを分割して複数の断片を生成する。さらに、プログラム配信サーバ装置は、複数の情報処理装置の一部または全部により受信された複数の断片を収集し、収集した複数の断片からプログラムを復元し、復元したプログラムを複数の情報処理装置のうちの他の情報処理装置へ送信する処理を実行させる指令を、複数のプログラム送信要求の送信元のうちの１つへ送信する。
【００１７】
これにより、要求を送信した装置は電源が入っており動作している可能性が高いため、動作している情報処理装置を、複数の断片を収集する情報処理装置に選択することができる。
【００１８】
また、本発明に係るプログラム配信サーバ装置は、上記のプログラム配信サーバ装置に加え、次のようにしてもよい。その場合、分割手段は、プログラム送信要求が最初に受信された時刻から所定の時間内に受信されたプログラム送信要求の数にプログラムを分割して複数の断片を生成する。
【００１９】
これにより、ある特定の時刻に合わせて短時間でプログラムの配信を行うことができる。
【００２０】
また、本発明に係るプログラム配信サーバ装置は、上記のプログラム配信サーバ装置のいずれかに加え、次のようにしてもよい。その場合、プログラム配信サーバ装置は、断片を受信する情報処理装置において復号可能な暗号化方式で複数の断片のそれぞれを暗号化する暗号化手段を備える。そして、断片送信手段は、暗号化された複数の断片を送信する。
【００２１】
本発明に係る情報処理装置は、プログラムを複数の断片に分割し送信するプログラム配信サーバ装置から複数の情報処理装置の一部または全部により受信された複数の断片を収集する収集手段と、収集手段により収集された複数の断片からプログラムを復元する復元手段と、復元手段により復元されたプログラムを複数の情報処理装置のうちの他の情報処理装置へ送信するプログラム送信手段とを備える。
【００２２】
これにより、１つのプログラムを分割した複数の断片が複数の情報処理装置により受信されるため、受信処理が並列に実行されるとともに分散され、複数の情報処理装置へのプログラムの配信を短時間で実行することができる。また、複数の情報処理装置のうちの１つが複数の断片から元のプログラムを復元し他の情報処理装置へ送信することで、プログラムが複数の情報処理装置に配信される。
【００２３】
本発明に係る情報処理装置は、プログラム配信サーバ装置から複数の断片のいずれか１つの断片を受信し、プログラム配信サーバ装置から複数の情報処理装置の一部または全部により受信された複数の断片を収集し、収集した複数の断片からプログラムを復元し、復元したプログラムを複数の情報処理装置の一部または全部のそれぞれへ送信するプライマリ更新処理部と、プログラム配信サーバ装置から複数の断片のいずれか１つの断片を受信し、受信した断片を、複数の情報処理装置のうち、複数の断片を収集する情報処理装置へ送信するセカンダリ更新処理部と、プライマリ更新処理部およびセカンダリ更新処理部のうちのいずれか一方のみを動作させる機能切替手段とを備える。
【００２４】
これにより、１つのプログラムを分割した複数の断片が複数の情報処理装置により受信されるため、受信処理が並列に実行されるとともに分散され、複数の情報処理装置へのプログラムの配信を短時間で実行することができる。また、複数の情報処理装置のうちの１つが複数の断片から元のプログラムを復元し他の情報処理装置へ送信することで、プログラムが複数の情報処理装置に配信される。
【００２５】
また、本発明に係る情報処理装置は、上記の情報処理装置に加え、次のようにしてもよい。その場合、情報処理装置は、プログラム送信要求をプログラム配信サーバ装置へ送信しプログラム送信要求に対する応答を受信する要求処理手段を備える。機能切替手段は、その応答に従ってプライマリ更新処理部およびセカンダリ更新処理部のうちのいずれか一方のみを動作させる。
【００２６】
これにより、プライマリ更新処理部を動作させる情報処理装置、つまり、複数の断片を収集する情報処理装置が固定されないため、適切な情報処理装置を、複数の断片を収集する情報処理装置に選択することができる。
【００２７】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。その場合、プライマリ更新処理部は、暗号化された断片を受信して復号し、セカンダリ更新処理部は、暗号化された断片を受信して復号し、復号後の断片を送信する。
【００２８】
これにより、プログラムの復号処理が、複数の情報処理装置で並行して実行されるとともに分散され、複数の情報処理装置へのプログラムの配信を短時間で実行することができる。
【発明の効果】
【００２９】
本発明によれば、複数の情報処理装置へのプログラムの配信を短時間で実行することができる。
【発明を実施するための最良の形態】
【００３０】
以下、図に基づいて本発明の実施の形態を説明する。
【００３１】
図１は、本発明の実施の形態に係るプログラム配信システムの構成を示すブロック図である。図１に示すシステムでは、更新用のファームウェアが配信される。
【００３２】
図１において、ファームウェア配信サーバ装置１（以下、単に、サーバ装置１という）は、複数の情報処理装置へプログラムを配信する装置である。サーバ装置１は、プログラム配信サーバ装置の一例である。この実施の形態では、サーバ装置１は、複合機２−１〜２−Ｎへ更新用ファームウェアを配信する。このサーバ装置１は、複合機２−１〜２−Ｎの販売会社、メーカ、ディーラなどにより管理される。
【００３３】
複合機２−ｉ（ｉ＝１，・・・，Ｎ，Ｎ＞１）は、企業内ＬＡＮ３（以下、単に、ＬＡＮ３という）に接続された情報処理装置である。ＬＡＮ３には複数の複合機２−１〜２−Ｎが接続されている。複合機２−ｉは、ＬＡＮ３を介して他の複合機２−ｊとの間でデータ通信を行うことができるとともに、ＬＡＮ３および公衆網４を介してサーバ装置１との間でデータ通信を行うことができる。ＬＡＮ３は、ローカルエリアネットワークである。
【００３４】
公衆網４は、ＬＡＮ３に接続された複合機２−ｉとサーバ装置１との間の通信に使用される通信路である。公衆網４としては、電話回線、インターネットなどが適宜使用される。ＬＡＮ３と公衆網４との境界にはゲートウェイ、ルータなどの図示せぬ中継装置が設置される。一般的に、公衆網４を介する通信の速度は、ＬＡＮ３内での通信速度より低い。
【００３５】
ここで、図１に示すシステムにおける更新用ファームウェアの配信方式を説明する。図２は、図１に示すシステムにおける更新用ファームウェアの配信方式を説明する図である。図２に示すように、このシステムでは、サーバ装置１において、更新用ファームウェアが複数の断片に分割される。複数の断片がサーバ装置１から複数の複合機２−１〜２−Ｎへ伝送される。そして、複数の複合機２−１〜２−Ｎのうちの１つの複合機２−ｉにおいて、複数の断片から更新用ファームウェアが復元される。
【００３６】
次に、図１におけるサーバ装置１の構成について説明する。図３は、図１におけるサーバ装置１の構成を示すブロック図である。図３において、ネットワーク通信装置１１は、公衆網４を介してデータ通信可能な装置である。ネットワーク通信装置１１としては、モデム、ネットワークインタフェースなどが使用される。
【００３７】
また、演算処理装置１２は、図示せぬＣＰＵ、ＲＡＭ、ＲＯＭなどを有するコンピュータであって、サーバプログラムを実行することにより各種処理部を実現する装置である。演算処理装置１２では、通信処理部１２ａ、更新確認受信部１２ｂ、分割処理部１２ｃ、暗号化処理部１２ｄおよび断片送信部１２ｅが実現される。通信処理部１２ａは、ネットワーク通信装置１１を制御して、所定のプロトコルでデータ通信を実行する処理部である。更新確認受信部１２ｂは、複数の複合機２−１〜２−Ｎからファームウェア更新確認要求を受信する処理部である。更新確認受信部１２ｂは、要求受信手段の一例である。分割処理部１２ｃは、データ格納装置１３に格納されている配信すべきファームウェア１３ａを複数の断片に分割する処理部である。分割処理部１２ｃは、分割手段の一例である。この実施の形態では、１つのプログラムであるファームウェア１３ａが、複合機２−１〜２−Ｎの数Ｎと同数の断片に分割される。暗号化処理部１２ｄは、各断片を、配信先となる複合機２−ｉにより復号可能な暗号化方式で暗号化する処理部である。暗号化処理部１２ｄは、暗号化手段の一例である。断片送信部１２ｅは、各断片を、配信先となる複合機２−ｉへそれぞれ送信する処理部である。この実施の形態では、暗号化された断片が送信される。断片送信部１２ｅは、断片送信手段の一例である。
【００３８】
また、データ格納装置１３は、ファームウェア１３ａ、図示せぬサーバプログラムなどを格納する装置である。データ格納装置１３としては、ハードディスクドライブ、ディスクアレイ、その他の記録媒体が使用される。
【００３９】
また、ここで、図１における複合機２−ｉの構成について説明する。複合機２−１〜２−Ｎは、同一機種の装置であっても、異なる機種の装置であってもよい。ただし、各複合機２−ｉは、次に示す機能を有する。図４は、図１における複合機２−ｉの構成を示すブロック図である。
【００４０】
図４において、印刷装置２１は、印刷データを供給され所定の種類の媒体へ印刷データに基づく画像を印刷する装置である。画像読取装置２２は、原稿面の画像を読み取り画像データとして出力する装置である。ファクシミリ通信装置２３は、ファクシミリデータを供給され図示せぬ電話回線を介してそのファクシミリデータに基づく画像をファクシミリ信号として送信するとともに、図示せぬ電話回線を介してファクシミリ信号を受信し画像データなどとして出力する装置である。印刷装置２１、画像読取装置２２およびファクシミリ通信装置２３は、演算処理装置２５により制御され、それぞれの機能を実行する。
【００４１】
また、ネットワーク通信装置２４は、ＬＡＮ３に接続され、ＬＡＮ３に接続された他の機器との間でデータ通信を行う装置である。ネットワーク通信装置２４は、ＬＡＮ３と公衆網４との境界に設置された中継機器を介して、公衆網４に接続されたサーバ装置１との間でデータ通信を行うことができる。
【００４２】
また、演算処理装置２５は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３およびインタフェース３４，３５を有するコンピュータである。ＣＰＵ３１は、プログラムを実行し、プログラムに記述された処理を実行する装置である。また、ＲＯＭ３２は、プログラムおよびデータを予め記憶した不揮発性のメモリである。更新可能な状態でファームウェアなどのプログラムを記憶する場合には、ＲＯＭ３２として、フラッシュメモリなどの、書換可能な不揮発性メモリが使用される。また、ＲＡＭ３３は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶するメモリである。演算処理装置２５では、図示せぬプログラム取得プログラムがＣＰＵ３１により実行されることにより後述の処理部が実現される。演算処理装置２５では、更新確認部３１ａ、プライマリ更新処理部３１ｂおよびセカンダリ更新処理部３１ｃが実現される。
【００４３】
更新確認部３１ａは、更新すべきファームウェアがサーバ装置１に存在するか否かを確認するとともに、ファームウェアをサーバ装置１から取得する際に、この複合機２−ｉにおいてプライマリ更新処理部３１ｂおよびセカンダリ更新処理部３１ｃのうちのどちらを動作させるかを決定する処理部である。
【００４４】
図５は、図４に示す複合機２−ｉにおける更新確認部３１ａの構成を示すブロック図である。更新確認部３１ａにおいて、通信処理部４１は、ネットワーク通信装置２４を制御して、所定のプロトコルでデータ通信を実行する処理部である。確認処理部４２は、ファームウェアの更新確認要求をサーバ装置１へ送信し、サーバ装置１からの応答に基づき、この複合機２−ｉにおいて更新すべきファームウェアがあるか否かを確認する処理部である。確認処理部４２は、要求処理手段の一例である。役割判定部４３は、サーバ装置１からの応答に基づき、プライマリ更新処理部３１ｂおよびセカンダリ更新処理部３１ｃのうちのどちらを動作させるかを決定する処理部である。役割判定部４３は、機能切替手段の一例である。
【００４５】
プライマリ更新処理部３１ｂは、（ａ１）サーバ装置１から複数の断片のいずれか１つの断片を受信し、（ｂ１）サーバ装置１から複合機２−１〜２−Ｎにより受信された複数の断片を収集し、（ｃ１）収集した複数の断片からプログラムを復元し、（ｄ１）復元したプログラムを複合機２−１〜２−Ｎのうちの自己以外のそれぞれへ送信する処理部である。
【００４６】
図６は、図４に示す複合機２−ｉにおけるプライマリ更新処理部３１ｂの構成を示すブロック図である。プライマリ更新処理部３１ｂにおいて、通信処理部５１は、ネットワーク通信装置２４を制御して、所定のプロトコルでデータ通信を実行する処理部である。断片収集処理部５２は、サーバ装置１から複数の断片のいずれか１つの断片を受信するとともに、他の複合機２−ｉから断片を取得して、サーバ装置１から送信されたすべての断片を収集する処理部である。断片収集処理部５２は、収集手段の一例である。復号処理部５３は、サーバ装置１から受信された断片が暗号化されている場合に、断片を復号する処理部である。断片合成処理部５４は、断片収集処理部５２により収集された断片を合成して元のファームウェアを復元する処理部である。断片合成処理部５４は、復元手段の一例である。転送処理部５５は、復元されたファームウェアを残りの複合機２−１〜２−Ｎへ転送する処理部である。更新処理部５６は、復元されたファームウェアで、ＲＯＭ３２またはデータ格納装置２６に格納されているファームウェアを更新する処理部である。
【００４７】
セカンダリ更新処理部３１ｃは、（ａ２）サーバ装置１から複数の断片のいずれか１つの断片を受信し、（ｂ２）受信した断片を、複合機２−１〜２−Ｎのうち、複数の断片を収集する特定の複合機２−ｉへ送信する処理部である。
【００４８】
図７は、図４に示す複合機２−ｉにおけるセカンダリ更新処理部３１ｃの構成を示すブロック図である。セカンダリ更新処理部３１ｃにおいて、通信処理部６１は、ネットワーク通信装置２４を制御して、所定のプロトコルでデータ通信を実行する処理部である。断片ダウンロード処理部６２は、サーバ装置１から複数の断片のいずれか１つの断片を受信する処理部である。復号処理部６３は、サーバ装置１から受信された断片が暗号化されている場合に、断片を復号する処理部である。断片転送処理部６４は、受信された断片を、プライマリ更新処理部３１ｂが動作している複合機２−ｉに転送する処理部である。受信された断片が暗号化されている場合には、復号された断片が転送される。
【００４９】
図４に戻り、データ格納装置２６は、図示せぬプログラム、データなどを格納する装置である。データ格納装置２６としては、ハードディスクドライブ、ディスクアレイ、その他の記録媒体が使用される。
【００５０】
次に、上記システムにおける各装置の動作について説明する。図８は、図１に示すシステムにおいて実行されるファームウェアの更新処理について説明するフローチャートである。
【００５１】
複合機２−１〜２−Ｎは、ファームウェアの更新確認要求を定期的に送信する。例えば、更新確認要求は、毎日、午前０時などといった特定の時刻に送信される。そのとき、電源がオンとなっている各複合機２−ｉにおいて、更新確認部３１ａの確認処理部４２が、更新確認要求を送信する。また、更新確認要求とともに、複合機２−ｉの機種情報が通知される。その際、更新確認部３１ａの通信処理部４１がネットワーク通信装置２４を制御することにより、更新確認要求および機種情報がＬＡＮ３および公衆網４を介してサーバ装置１へ伝送される。また、機種情報とともに、複合機２−ｉに固有な公開鍵を送信するようにしてもよい。また、その公開鍵と対となる秘密鍵で複合機２−ｉの証明書を暗号化し、暗号化した証明書を公開鍵とともに送信してもよい。
【００５２】
サーバ装置１は、その更新確認要求および機種情報を受信すると、その機種情報により特定される機種についての更新用のファームウェアが存在するか否かを判定する。そのとき、サーバ装置１では、更新確認受信部１２ｂが、更新確認要求および機種情報を受信し、データ格納装置１３の図示せぬファームウェアデータベースを参照し、更新用のファームウェアが存在するか否かを判定する。更新確認要求および機種情報は、ネットワーク通信装置１１により受信され、通信処理部１２ａによりネットワーク通信装置１１から取得され、更新確認受信部１２ｂに供給される。
【００５３】
更新確認受信部１２ｂは、その機種の更新用ファームウェアが存在する場合には、その更新確認要求が受信された時刻から所定の待機期間（例えば２分または３分）だけ同機種の複合機２−ｉからの更新確認要求を待つ（ステップＳ１）。ただし、同機種の１または複数の複合機２−ｉからの更新確認要求が既に受信されており、既に受信された１または複数の更新確認要求のうちの最初の更新確認要求が受信された時刻（待機開始時刻）から所定の待機期間が経過していない場合には、その待機開始時刻から所定の待機時間が経過するまで、同機種の複合機２−ｉからの更新確認要求をさらに待つ。
【００５４】
更新確認受信部１２ｂは、その機種の更新用ファームウェアが存在する場合、最初に受信された更新確認要求（つまり、待機期間の開始の契機となった更新確認要求）の送信元である複合機２−ｉをプライマリ更新処理を実行する装置に選択する。待機期間に受信されたその他の更新確認要求の送信元である複合機２−ｉは、セカンダリ更新処理を実行する装置に選択される。更新確認受信部１２ｂは、更新確認要求の送信元である複合機２−ｉ〜２−Ｎのそれぞれに対して、更新確認要求の応答において、プライマリ更新処理およびセカンダリ更新処理のいずれを実行すべきかを通知する（ステップＳ２）。そのとき、応答には、プライマリ更新処理を実行する装置のネットワーク識別情報（例えば、ＬＡＮ３内でのＩＰアドレス）が含まれる。また、応答において、サーバ装置１のデジタル署名（証明書）が含まれるようにしてもよい。これらのネットワーク識別情報およびデジタル署名も同様に暗号化されてから伝送されるようにしてもよい。
【００５５】
一方、各複合機２−ｉは、更新確認要求の応答を受信すると、その応答に基づき、更新用ファームウェアが存在すると判定した場合には、応答において、プライマリ更新処理およびセカンダリ更新処理のいずれが指定されているかを特定する。そのとき、各複合機２−ｉでは、確認処理部４２がその応答を受信し、役割判定部４３が、応答において、プライマリ更新処理およびセカンダリ更新処理のいずれが指定されているかを特定し、プライマリ更新処理が指定されている場合には、プライマリ更新処理部３１ｂを動作させ、セカンダリ更新処理が指定されている場合には、セカンダリ更新処理部３１ｃを動作させる。
【００５６】
また、サーバ装置１では、更新確認受信部１２ｂは、所定の待機期間が経過すると、受信された更新確認要求の数、つまり、ファームウェアの断片を受信する複合機２−１〜２−Ｎの数を特定する。分割処理部１２ｃは、データ格納装置１３に格納されている更新用のファームウェア１３ａを読み出し特定された更新確認要求の数で分割することにより、複数の断片を生成する。暗号化処理部１２ｄは、複数の断片のそれぞれを、送信先となる複合機２−ｉに応じて異なる暗号鍵（例えば上述の公開鍵）で暗号化する。断片送信部１２ｅは、その暗号化された複数の断片を、同数の複合機２−１〜２−Ｎに送信する（ステップＳ３）。このように、更新すべきファームウェアが存在する場合、更新確認要求に応じて、断片が送信されるため、更新確認要求は、ファームウェアの送信要求を兼ねている。
【００５７】
一方、プライマリ更新処理部３１ｂが動作している複合機２−ｉ（以下、プライマリ機という）では、断片収集処理部５２が、サーバ装置１から公衆網４およびＬＡＮ３を介して断片を受信し、復号処理部５３がその断片を復号する。復号処理部５３は、この複合機２−ｉに固有な暗号鍵（例えば上述の公開鍵と対になる秘密鍵）で断片を復号する。また、セカンダリ更新処理部３１ｂが動作している複合機２−ｉ（つまり、複合機２−１〜２−Ｎのうちのプライマリ機以外の複合機２−ｉ。以下、セカンダリ機という）では、断片ダウンロード処理部６２が、サーバ装置１から公衆網４およびＬＡＮ３を介して断片を受信し、復号処理部６３がその断片を復号する。復号処理部６３は、この複合機２−ｉに固有な暗号鍵（例えば上述の公開鍵と対になる秘密鍵）で断片を復号する。セカンダリ機では、断片転送処理部６４が、復号された断片をプライマリ機へ送信する。
【００５８】
そして、プライマリ機では、断片収集処理部５２が、セカンダリ機から送信された残りの１または複数の断片をＬＡＮ３を介して受信する。これにより、サーバ装置１から送信されたすべての断片が収集される（ステップＳ４）。
【００５９】
プライマリ機では、すべての断片が収集されると、断片合成処理部５４は、それらの断片から元のファームウェアを復元する（ステップＳ５）。復元されたファームウェアは、更新処理部５６に供給されるとともに、転送処理部５５によりセカンダリ機へ送信される（ステップＳ６）。セカンダリ機では、更新処理部６５がそのファームウェアを受信する。
【００６０】
そして、プライマリ機では更新処理部５６により、セカンダリ機では更新処理部６５により、そのファームウェアで、既存のファームウェアが更新される。
【００６１】
なお、更新すべきファームウェアが存在しない場合には、その旨を示す応答がサーバ装置１から複合機２−ｉへ送信される。
【００６２】
以上のように、上記実施の形態によれば、サーバ装置１は、配信すべきファームウェア１３ａを複数の断片に分割し、複数の複合機２−１〜２−Ｎのそれぞれへ、複数の断片のうちの１つを送信する。複合機２−１〜２−Ｎのうちの１つは、複合機２−１〜２−Ｎにより受信された複数の断片を収集し、収集した複数の断片からファームウェアを復元し、復元したファームウェアを他のすべての複合機２−ｉのそれぞれへ送信する。
【００６３】
これにより、１つのファームウェアを分割した複数の断片が複数の複合機２−１〜２−Ｎにより受信されるため、受信処理が並列に実行されるとともに分散され、複数の複合機２−１〜２−Ｎへのファームウェアの配信を短時間で実行することができる。また、１つのファームウェアが複数の分割されて別々に伝送されるため、公衆網４を介しても、セキュアな配信を行うことができる。また、よりセキュアな配信のために暗号化技術を使用する場合、復号処理が複数の複合機２−１〜２−Ｎに分散されるため、ファームウェア全体を暗号化して配信する場合に比べ、より短時間でファームウェアの配信を行うことができる。
【００６４】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００６５】
例えば、上記実施の形態において、複数の断片は、略同一サイズのデータとされるようにしてもよいし、複合機２−ｉの種別に応じて異なるサイズとされてもよい。複数の断片は、例えば、ファームウェアの先頭から所定のサイズごとに分割することにより生成される。また、複数の断片は、分割時に番号が付与され、ファームウェアを復元する際には、その番号の順に結合されるようにしてもよい。
【００６６】
また、上記実施の形態において、断片を受信した複数の複合機２−１〜２−Ｎのうちの一部のみに、復元されたファームウェアを転送するようにしてもよい。つまり、ファームウェアを更新する必要がない複合機２−ｉが断片をサーバ装置１から取得しプライマリ機に転送するようにしてもよい。
【００６７】
また、上記実施の形態において、断片を受信した複数の複合機２−１〜２−Ｎ以外の、ＬＡＮ３に接続された複合機に、復元されたファームウェアを転送するようにしてもよい。例えば、複数の断片がサーバ装置１から送信される際に、電源がオフであった複合機が、後で電源オンした場合に、その複合機は、ＬＡＮ３に接続された他の複合機２−ｉからファームウェアを受信し、更新を行うことが可能となる。また、例えば、処理能力の低い複合機は、断片を受信せずに、他の複合機２−ｉからファームウェアを受信し、更新を行うことが可能となる。
【００６８】
また、上記実施の形態においては、最初に受信された更新確認の送信元である複合機２−ｉが複数の断片を収集しているが、その代わりに、更新確認の送信元である複合機２−１〜２−Ｎのうちの処理能力の最も高い複合機が複数の断片を収集するようにしてもよい。この場合、更新確認時に、各複合機２−ｉは、機種識別情報をサーバ装置１に送信し、サーバ装置１は、その機種識別情報に基づいて、複数の断片を収集する複合機２−ｉを決定する。
【００６９】
また、上記実施の形態において、ファームウェアを断片へ分割する際の分割数に上限を設定するようにしてもよい。その場合、断片を受信しなかった複合機２−ｉは、プライマリ機より、復元されたファームウェアを受信するようにすればよい。
【００７０】
また、上記実施の形態においては、断片は暗号化された後に伝送されているが、暗号化せずに伝送されるようにしてもよい。
【００７１】
また、上記実施の形態においては、暗号方式として公開鍵方式が使用されているが、その代わりに共通鍵方式を使用するようにしてもよい
【００７２】
また、上記実施の形態において、ＬＡＮ３に接続された複合機であって、ファームウェアの更新に参加した複合機２−１〜２−Ｎ以外の複合機から、更新確認要求を受信した場合、サーバ装置１は、そのＬＡＮ３内でファームウェアの更新に参加した複合機２−１〜２−Ｎのいずれかのネットワーク識別情報をその複合機へ通知するようにしてもよい。その場合には、その複合機は、通知されたネットワーク識別情報の示す複合機２−ｉからそのファームウェアを取得する。サーバ装置１は、そのネットワーク識別情報としてプライマリ機のネットワーク識別情報を通知するようにしてもよい。
【００７３】
また、上記実施の形態において、同一ＬＡＮ３から機種の異なる複合機２−１〜２−Ｎから更新確認要求を受信した場合に、サーバ装置１は、ある機種の更新用ファームウェアが存在しないときでも、その機種の複合機２−ｉを含めて複数の断片を配信するようにしてもよい。その場合、上述の場合と同様にして、断片の受信、復号および収集が実行される。ただし、その更新用ファームウェアに適合しない複合機２−ｉは、復元されたファームウェアによる更新処理を実行しない。
【００７４】
また、上記実施の形態において、プライマリ機は、ファームウェアを復元するとただちにセカンダリ機へ送信しているが、ファームウェアを復元後に保存しておき、セカンダリ機等の要求に応じて、ファームウェアを供給するようにしてもよい。
【００７５】
また、上記実施の形態において、ＬＡＮ３の範囲は、ＩＰアドレスにより特定すればよい。つまり、ＬＡＮ３は、１つのＩＰネットワークでもよいし、複数のＩＰネットワークを含んでいてもよい。
【００７６】
また、上記実施の形態においては、更新用ファームウェアが複数の断片としてサーバ装置１から配信されているが、配信されるプログラムはファームウェアに限定されるものではなく、アプリケーションプログラム、ドライバなどのプログラムであってもよい。また、プログラムは、更新用のプログラムに限定されず、新規のプログラム、プログラムのインストーラなどであってもよい。
【００７７】
また、上記実施の形態においては、情報処理装置の一例として複合機２−ｉが挙げられているが、ネットワーク機能を有しプログラムをダウンロードし実行可能な他の情報処理装置でもよい。
【産業上の利用可能性】
【００７８】
本発明は、例えば、企業内ＬＡＮに接続されている多くの情報処理装置のファームウェア更新に適用可能である。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施の形態に係るプログラム配信システムの構成を示すブロック図である。
【図２】図１に示すシステムにおける更新用ファームウェアの配信方式を説明する図である。
【図３】図１におけるファームウェア配信サーバ装置の構成を示すブロック図である。
【図４】図１における複合機の構成を示すブロック図である。
【図５】図３に示す複合機における更新確認部の構成を示すブロック図である。
【図６】図３に示す複合機におけるプライマリ更新処理部の構成を示すブロック図である。
【図７】図３に示す複合機におけるセカンダリ更新処理部の構成を示すブロック図である。
【図８】図１に示すシステムにおいて実行されるファームウェアの更新処理について説明するフローチャートである。
【符号の説明】
【００８０】
１  ファームウェア配信サーバ装置（プログラム配信サーバ装置）
２−１〜２−Ｎ  複合機（情報処理装置）
１２ｂ  要求確認受信部（要求受信手段）
１２ｃ  分割処理部（分割手段）
１２ｄ  暗号化処理部（暗号化手段）
１２ｅ  断片送信部（断片送信手段）
３１ｂ  プライマリ更新処理部
３１ｃ  セカンダリ更新処理部
４２  確認処理部（要求処理手段）
４３  役割判定部（機能切替手段）
５２  断片収集処理部（収集手段）
５４  断片合成処理部（復元手段）
【図１】
0005145074.tif 000002
【図２】
0005145074.tif 000003
【図３】
0005145074.tif 000004
【図４】
0005145074.tif 000005
【図５】
0005145074.tif 000006
【図６】
0005145074.tif 000007
【図７】
0005145074.tif 000008
【図８】
0005145074.tif 000009