(57)【要約】【課題】ダウンロードスケジュールの重複による問題を低コストで解消すること。【解決手段】プログラム配布システムでは、端末１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｅの全てがプログラム配布サーバ５０からファームウェアをダウンロードするのではなく、一部の端末（例えば、端末１００ａ、１００ｃ）が他の端末の代わりにファームウェアをダウンロードしファームウェアを組み込む。そして、一部の端末から他の端末（例えば、端末１００ｂ、１００ｄ、１００ｅ）に対してファームウェアを配布する。【選択図】        図１
2008033445.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してプログラム配布サーバおよび複数の端末と接続されたプログラム配布装置であって、
前記複数の端末および自プログラム配布装置に組み込むプログラムを前記プログラム配布サーバから前記複数の端末に代わって取得する取得手段と、
前記取得手段において取得したプログラムを前記複数の端末に配布する配布手段と、
を備えたことを特徴とするプログラム配布装置。
【請求項２】
前記配布手段は、前記プログラムを配布できない場合に、当該プログラムの新たな配布元となる端末のアドレス情報を前記複数の端末に通知することを特徴とする請求項１に記載のプログラム配布装置。
【請求項３】
前記配布手段は、前記プログラムを配布する端末の数に上限値を設け、前記プログラムを配布する端末の数が前記上限値を上回った後に他の端末からプログラムの配布要求を受け付けた場合には、前記プログラムの新たな配布元となる端末のアドレス情報を通知することを特徴とする請求項１または２に記載のプログラム配布装置。
【請求項４】
前記配布手段は、端末に対する前記プログラムの配布が完了した後に、他の端末から前記プログラムの配布要求を受け付けた場合に、前記プログラムの配布が完了した端末を前記プログラムの新たな配布元として配布要求元の端末に通知することを特徴とする請求項１、２または３に記載のプログラム配布装置。
【請求項５】
ネットワークを介してプログラム配布サーバおよび複数の端末が接続されたプログラム配布システムであって、
前記複数の端末の内の一端末であり、当該複数の端末に組み込むプログラムを前記複数の端末に代わって取得する端末の情報であるプログラム取得端末情報を記録する記録手段と、
前記プログラム配布サーバが前記プログラムの配布要求を受け付けた場合に、前記記録手段に記録されたプログラム取得端末情報に基づいて、前記プログラムの配布元となる端末のアドレス情報を通知する通知手段と、
を備えたことを特徴とするプログラム配布システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の端末にプログラムを配布するプログラム配布装置およびプログラム配布システムに関し、特に、ダウンロードスケジュールの重複による問題を低コストで解消することができるプログラム配布装置およびプログラム配布システムに関するものである。
【背景技術】
【０００２】
近年、インターネット環境の普及に伴って、インターネットを介してファームウェアのダウンロードを行うという方法がとられるようになった。また、複数の装置がファームウェアのダウンロードを一度に開始するとインターネット帯域が圧迫されると共にダウンロード先のサーバ装置にかかる負担が大きくなるため、複数の装置でファームウェアをダウンロードする場合には、ダウンロードスケジュールが重ならないようなシステムを構築し、運用している。
【０００３】
しかし、ファームウェアサイズの増加に伴い、装置一台分のファームウェアをダウンロードする時間が延びたことで各装置のダウンロードスケジュールが重複してしまうという問題があった。これにより、インターネット帯域が圧迫されると共にダウンロード先のサーバ装置にかかる負担が増し、迅速にファームウェアをダウンロードすることができず、ファームウェアダウンロード処理がタイムアウトし、ファームウェアのダウンロードにかかる処理が失敗してしまう場合があった。
【０００４】
そこで、特許文献１では、システム内にファームウェアをダウンロードする専門のサーバ装置を設け、このサーバ装置が代表してファームウェアをダウンロードし、ダウンロードしたファームウェアをシステム内の他の装置に配布することで上記したようなダウンロードスケジュール重複による問題を解消していた。
【０００５】
【特許文献１】特開２００１−２１６１５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の技術では、ファームウェアの更新を行う装置の他に、ファームウェアのダウンロードのみを行う専用のサーバ装置をシステム内に設置する必要があったため、コストが高くなってしまうという問題があった。
【０００７】
すなわち、ダウンロードスケジュールの重複による問題を低コストで解消することが極めて重要な課題となっている。
【０００８】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、コストを低くすることができるプログラム配布装置およびプログラム配布システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明は、ネットワークを介してプログラム配布サーバおよび複数の端末と接続されたプログラム配布装置であって、前記複数の端末および自プログラム配布装置に組み込むプログラムを前記プログラム配布サーバから前記複数の端末に代わって取得する取得手段と、前記取得手段において取得したプログラムを前記複数の端末に配布する配布手段と、を備えたことを特徴とする。
【００１０】
また、本発明は、上記発明において、前記配布手段は、前記プログラムを配布できない場合に、当該プログラムの新たな配布元となる端末のアドレス情報を前記複数の端末に通知することを特徴とする。
【００１１】
また、本発明は、上記発明において、前記配布手段は、前記プログラムを配布する端末の数に上限値を設け、前記プログラムを配布する端末の数が前記上限値を上回った後に他の端末からプログラムの配布要求を受け付けた場合には、前記プログラムの新たな配布元となる端末のアドレス情報を通知することを特徴とする。
【００１２】
また、本発明は、上記発明において、前記配布手段は、端末に対する前記プログラムの配布が完了した後に、他の端末から前記プログラムの配布要求を受け付けた場合に、前記プログラムの配布が完了した端末を前記プログラムの新たな配布元として配布要求元の端末に通知することを特徴とする。
【００１３】
また、本発明は、ネットワークを介してプログラム配布サーバおよび複数の端末が接続されたプログラム配布システムであって、前記複数の端末の内の一端末であり、当該複数の端末に組み込むプログラムを前記複数の端末に代わって取得する端末の情報であるプログラム取得端末情報を記録する記録手段と、前記プログラム配布サーバが前記プログラムの配布要求を受け付けた場合に、前記記録手段に記録されたプログラム取得端末情報に基づいて、前記プログラムの配布元となる端末のアドレス情報を通知する通知手段と、を備えたことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、複数の端末および自プログラム配布装置に組み込むプログラムを複数の端末に代わって取得し、取得したプログラムを複数の端末に配布するので、ダウンロードスケジュールの重複による問題を低コストで解消することができる。
【００１５】
また、本発明によれば、プログラムを配布できない場合に、当該プログラムの新たな配布元となる端末のアドレス情報を複数の端末に通知するので、プログラムの配布を滞りなく実行することできる。
【００１６】
また、本発明によれば、プログラムを配布する端末の数に上限値を設け、プログラムを配布する端末の数が上限値を上回った後に他の端末からプログラムの配布要求を受け付けた場合には、プログラムの新たな配布元となる端末のアドレス情報を通知するので、特定の端末のみに負荷が集中することを防止することができる。
【００１７】
また、本発明によれば、端末に対するプログラムの配布が完了した後に、他の端末からプログラムの配布要求を受け付けた場合に、プログラムの配布が完了した端末をプログラムの新たな配布元として配布要求元の端末に通知するので、プログラムの配布処理にかかる負荷を配分し、効率よくプログラムの配布を実行することができる。
【００１８】
また、本発明によれば、複数の端末に含まれ、当該複数の端末に組み込むプログラムを前記複数の端末に代わって取得する端末の情報であるプログラム取得端末情報を記録し、プログラムに対する配布要求を受け付けた場合に、プログラム取得端末情報に基づいて、プログラムの配布元となる端末のアドレス情報を通知するので、ネットワーク回線の通信負荷を軽減させることができると共に、プログラムを配布する大元のサーバ装置に対する負荷を軽減させることができる。
【発明を実施するための最良の形態】
【００１９】
以下に添付図面を参照して、この発明に係るプログラム配布装置およびプログラム配布システムの好適な実施の形態を詳細に説明する。
【実施例１】
【００２０】
まず、本実施例１にかかるプログラム配布システムの概要および特徴について説明する。図１は、本実施例１にかかるプログラム配布システムの概要および特徴を説明するための説明図である。同図に示すように、本実施例１にかかるプログラム配布システムでは、端末１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｅの全てがプログラム配布サーバ５０（プログラム配布サーバ５０は、ファームウェアをクライアント端末に配布するサーバ装置である）からファームウェアを取得（ダウンロード）するのではなく、一部の端末が他の端末の代わりにファームウェアを取得する。
【００２１】
図１に示す例では、端末１００ａおよび端末１００ｂがグループＡを構成し、端末１００ａが端末１００ｂの代わりにファームウェアをプログラム配布サーバ５０からルータ１０、２０を介して取得し、取得したファームウェアを端末１００ａ自体に組み込むと共に、このファームウェアを端末１００ｂに配布する。
【００２２】
また、端末１００ｃ、端末１００ｄおよび端末１００ｅがグループＢを構成し、端末１００ｃが端末１００ｄおよび端末１００ｅの代わりにファームウェアをプログラム配布サーバ５０からルータ１０、２０を介して取得し、取得したファームウェアを端末１００ｃ自体に組み込むと共に、このファームウェアを端末１００ｄおよび端末１００ｅに配布する。
【００２３】
このように、本実施例１にかかるプログラム配布システムでは、一部の端末が他の端末の代わりにプログラム配布サーバ５０からファームウェアを取得し、他の端末にファームウェアを配布するので、プログラム配布サーバ５０、ルータ１０、２０に対する処理負荷を軽減させることができると共に、ネットワーク回線の通信負荷を軽減させることができる。
【００２４】
また、本実施例にかかるプログラム配布システムは、ファームウェアのダウンロードのみを行うサーバ装置を設置する必要が無く、顧客サイト内の装置自体によってファームウェアのダウンロードが行われるのでこのプログラム配布システムを低コストで構築することができる。
【００２５】
なお、図１では一例として、端末１００ａおよび端末１００ｃがプログラム配布サーバ５０からファームウェアを取得し、他の端末１００ｂ、１００ｄ、１００ｅにファームウェアを配布していたが、これに限定されるものではなく、端末１００ｂ、１００ｄあるいは１００ｅが他の端末の代わりにファームウェアを取得してもよい。
【００２６】
つぎに、図１に示したプログラム配布サーバ５０の構成について説明する。図２は、本実施例１にかかるプログラム配布サーバ５０の構成を示す機能ブロック図である。同図に示すように、このプログラム配布サーバ５０は、入力部５１と、出力部５２と、入出力制御ＩＦ部５３と、通信制御ＩＦ部５４と、記憶部５５と、制御部５６とを備えて構成される。
【００２７】
このうち、入力部５１は、各種の情報を入力する入力手段であり、キーボードやマウス、マイクなどによって構成される。なお、後述するモニタ（出力部５２）も、マウスと協働してポインティングディバイス機能を実現する。
【００２８】
出力部５２は、各種の情報を出力する出力手段であり、モニタ（若しくはディスプレイ、タッチパネルなど）やスピーカなどによって構成される。そして、入出力制御ＩＦ部５３はこれら入力部５１および出力部５２によるデータの入出力を制御する手段であり、通信制御ＩＦ部５４は、主に端末１００ａ〜端末１００ｅとの間における通信を制御する手段である。
【００２９】
記憶部５５は、制御部５６による各種の処理に必要なデータおよびプログラムを記憶する記憶手段（格納手段）であり、特に本発明に密接に関連するものとしては、図２に示すように、ファームウェアデータ５５ａとファームウェア版数データ５５ｂとを備える。
【００３０】
ここで、ファームウェアデータ５５ａは、ファームウェアを識別する情報とファームウェアのバイナリデータとを関連付けて記憶したデータであり、ファームウェア版数データ５５ｂは、最新のファームウェアの版数を記録したデータである。
【００３１】
制御部５６は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御手段であり、特に本発明に密接に関連するものとしては、図２に示すように、ファームウェア配布処理部５６ａを備える。
【００３２】
このファームウェア配布処理部５６ａは、ファームウェアの配布要求を受け付けた場合に、配布要求元の端末にファームウェアを配布する処理部である。具体的に、このファームウェア配布処理部５６ａは、配布要求元の端末に組み込まれたファームウェアの版数のデータを含んだ配布要求を取得し、取得したファームウェアの版数とファームウェア版数データ５５ｂとを比較し、ファームウェアが更新されているか否かを判定する。そして、ファームウェアが更新されている場合に、更新されたファームウェアをファームウェアデータ５５ａから検索し、検索したファームウェアを配布要求元の端末に配布する。
【００３３】
つぎに、図１に示した端末１００ａの構成について説明する（端末１００ｂ〜端末１００ｅは、端末１００ａと同様の構成であるため説明を省略する）。図３は、本実施例１にかかる端末１００ａの構成を示す機能ブロック図である。同図に示すように、この端末１００ａは、入力部１０１と、出力部１０２と、入出力制御ＩＦ部１０３と、通信制御ＩＦ部１０４と、記憶部１０５と、制御部１０６とを備えて構成される。
【００３４】
このうち、入力部１０１は、各種の情報を入力する入力手段であり、キーボードやマウス、マイクなどによって構成される。なお、後述するモニタ（出力部１０２）も、マウスと協働してポインティングディバイス機能を実現する。
【００３５】
出力部１０２は、各種の情報を出力する出力手段であり、モニタ（若しくはディスプレイ、タッチパネルなど）やスピーカなどによって構成される。そして、入出力制御ＩＦ部１０３はこれら入力部１０１および出力部１０２によるデータの入出力を制御する手段であり、通信制御ＩＦ部１０４は、主にプログラム配布サーバ５０と、端末１００ｂ〜端末１００ｅとの間における通信を制御する手段である。
【００３６】
記憶部１０５は、制御部１０６による各種の処理に必要なデータおよびプログラムを記憶する記憶手段（格納手段）であり、特に、本発明に密接に関連するものとしては、図３に示すように、ファームウェア取得先テーブル１０５ａ、ファームウェアデータ１０５ｂ、ファームウェア版数管理テーブル１０５ｃを備える。
【００３７】
ここで、ファームウェア取得先テーブル１０５ａは、プログラム配布サーバ５０のアドレス情報とファームウェアの配布元となる端末（例えば、端末１００ｃ）のアドレス情報とを記憶したデータである。なお、このファームウェア取得先テーブル１０５ａは、ファームウェアの配布元が変更されるたびに変更される。
【００３８】
ファームウェアデータ１０５ｂは、端末１００ａがプログラム配布サーバ５０あるいはファームウェアの配布元となる端末からダウンロードするファームウェアを記憶したデータである。ファームウェア版数管理テーブル１０５ｃは、端末１００ａに組み込まれた各ファームウェアの版数を記憶したデータである。
【００３９】
制御部１０６は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御手段であり、特に本発明に密接に関連するものとしては、図３に示すように、ファームウェア取得処理部１０６ａと、ファームウェア組込処理部１０６ｂと、ファームウェア配布処理部１０６ｃとを備える。
【００４０】
ファームウェア取得処理部１０６ａは、端末１００ａがサーバの役割をする場合に、プログラム配布サーバ５０にアクセスしてファームウェアを取得する。また、ファームウェア取得処理部１０６ａは、端末１００ａがクライアントの役割をする場合に、ファームウェアの配布元となる端末からファームウェアを取得する。以下において、端末１００ａがサーバの役割をする場合のファームウェア取得処理部１０６ａの処理を説明し、その後に、端末１００ａがクライアントの役割をする場合のファームウェア取得処理部１０６ａの処理を説明する。なお、端末１００ａがサーバの役割をするか、クライアントの役割をするかは、ユーザが入力部１０１を介して設定するものとする。
【００４１】
まず、端末１００ａがサーバの役割をする場合、ファームウェア取得処理部１０６ａは、ファームウェア版数管理テーブル１０５ｃに記憶されたファームウェアの版数のデータ（以下、版数データ）をプログラム配布サーバ５０に送信し、ファームウェアが更新されているか否かの応答を受け付ける。そして、ファームウェア取得処理部１０６ａは、ファームウェアが更新されている旨の情報をプログラム配布サーバ５０から取得した場合に、更新されたファームウェアを取得してファームウェアデータ１０５ｂに記憶させる。
【００４２】
なお、ファームウェア取得処理部１０６ａは、プログラム配布サーバ５０からファームウェアを取得できなかった場合（ファームウェアの取得に失敗した場合）に、ファームウェアの取得を失敗した旨の情報をファームウェア配布処理部１０６ｃに通知する。
【００４３】
一方、端末１００ａがクライアントの役割をする場合、ファームウェア取得処理部１０６ａは、ファームウェア取得先テーブル１０５ａを参照し、ファームウェアの配布元となる端末からファームウェアを取得し、取得したファームウェアをファームウェアデータ１０５ｂに記憶させる。
【００４４】
なお、ファームウェア取得処理部１０６ａは、ファームウェアの配布元となる端末から新たな配布先のアドレス情報を取得した場合には、取得したアドレス情報をファームウェア取得先テーブル１０５ａに記録すると共に、このアドレス情報に対応する配布元の端末からファームウェアを取得する。
【００４５】
例えば、ファームウェア取得処理部１０６ａが、端末１００ｃから新たなファームウェアの配布元となる端末１００ｅのアドレス情報を取得した場合には、このアドレス情報をファームウェア取得先テーブル１０５ａに登録すると共に、端末１００ｅからファームウェアを取得する。
【００４６】
ファームウェア組込処理部１０６ｂは、ファームウェア取得処理部１０６ａによって取得されたファームウェアデータ１０５ｂからファームウェアを取得し、取得したファームウェアを端末１００ａに組み込む処理部である。
【００４７】
ファームウェア配布処理部１０６ｃは、ファームウェアの配布要求を受け付けた場合に、配布要求元の端末にファームウェアを配布する処理部である。例えば、ファームウェア配布処理部１０６ｃは、端末１００ｂからファームウェアの配布要求を受け付けた場合に、ファームウェアデータ１０５ｂから配布対象となるファームウェアを取得し、取得したファームウェアを端末１００ｂに配布する。
【００４８】
また、ファームウェア配布処理部１０６ｃは、ファームウェアの取得を失敗した旨の情報をファームウェア取得処理部１０６ａから取得した後にファームウェアの配布要求を受け付けた場合には、ファームウェアの新たな配布元となる端末あるいはプログラム配布サーバのアドレス情報を配布要求元に通知する。
【００４９】
例えば、ファームウェア取得処理部１０６ａがファームウェアの取得を失敗した後にファームウェア配布処理部１０６ｃが端末１００ｂからファームウェアの配布要求を取得した場合には、ファームウェア取得先テーブル１０５ａを参照して、プログラム配布サーバ５０あるいは端末１００ｃ（ファームウェアをダウンロードする端末）のアドレス情報を端末１００ｂに通知する。なお、ファームウェア配布処理部１０６ｃがプログラム配布サーバ５０のアドレス情報を端末１００ｂに通知するか端末１００ｃのアドレス情報を端末１００ｂに通知するかは予め管理者が設定しておく（あるいは、プログラム配布サーバ５０および端末１００ｃの負荷状況を監視して、動的に優先順位を変更してもよい。）。
【００５０】
また、ファームウェア配布処理部１０６ｃは、ファームウェアを配布する端末の数に上限値を設け、この上限値を超える数の端末からファームウェアの配布要求を受け付けた場合には、新たなファームウェアの配布元を端末に通知する。
【００５１】
例えば、ファームウェア配布処理部１０６ｃに設定された上限値が５で、ファームウェア配布処理部１０６ｃが既に５台の端末にファームウェアを配布している状態で、端末１００ｂからファームウェアの配布要求を取得した場合には、ファームウェア配布処理部１０６ｃは、ファームウェア取得先テーブル１０５ａを参照して、新たなプログラム配布元となる端末の情報、すなわち、プログラム配布サーバ５０あるいは端末１００ｃ（ファームウェアをダウンロードする端末）のアドレス情報を端末１００ｂに通知する。なお、ファームウェア配布処理部１０６ｃがプログラム配布サーバ５０のアドレス情報を端末１００ｂに通知するか端末１００ｃのアドレス情報を端末１００ｂに通知するかは予め管理者が設定しておく（あるいは、プログラム配布サーバ５０および端末１００ｃの負荷状況を監視して、動的に優先順位を変更してもよい。）。
【００５２】
つぎに、本実施例１にかかるプログラム配布システムの処理手順について説明する。図４は、本実施例１にかかるプログラム配布システムの処理手順を示すフローチャートである。なお、図４では説明の便宜上、プログラム配布サーバ５０、端末（サーバの役割を担っているものとする）１００ａ、端末（クライアントの役割を担っているものとする）１００ｂを用いて説明する。
【００５３】
図４に示すように、端末（サーバ）１００ａがプログラム配布サーバ５０にファームウェアの版数データを送信し（ステップＳ１０１）、プログラム配布サーバ５０は、版数データとファームウェア版数データ５５ｂとを比較して更新対象となるファームウェアを判定する（ステップＳ１０２）。
【００５４】
そして、プログラム配布サーバ５０は、更新対象となるファームウェアの識別情報を端末（サーバ）１００ａに送信し（ステップＳ１０３）、端末（サーバ）１００ａは、識別情報に対応するファームウェアをプログラム配布サーバ５０に要求し（ステップＳ１０４）、プログラム配布サーバ５０は、識別情報に対応するファームウェアをファームウェアデータ５５ａから検索し、ファームウェアを端末（サーバ）１００ａに送信する（ステップＳ１０５）。
【００５５】
続いて、端末（サーバ）１００ａは、ファームウェアをプログラム配布サーバ５０から取得して、取得したファームウェアを組み込み（ステップＳ１０６）、端末（クライアント）１００ｂが端末（サーバ）１００ａに対してファームウェアを要求し（ステップＳ１０７）、端末（サーバ）１００ａはファームウェアデータ１０５ｂに記憶されたファームウェアを端末（クライアント）１００ｂに送信し（ステップＳ１０８）、端末（クライアント）１００ｂが取得したファームウェアを組み込む（ステップＳ１０９）。
【００５６】
ところで、端末（サーバ）１００ａは、プログラム配布サーバ５０からファームウェアを取得する処理を失敗した場合には、ステップＳ１０８において、ファームウェアの新たな配布元となる装置のアドレス情報を端末（クライアント）１００ｂに送信する。
【００５７】
また、端末（サーバ）１００ａは、同時にファームウェアを配布する端末の数が上限値に達している状態で、端末（クライアント）１００ｂからファームウェアの配布要求を取得した場合には、ステップＳ１０８において、ファームウェアの新たな配布元となる装置のアドレス情報を端末（クライアント）１００ｂに送信する。
【００５８】
このように、複数の端末全てがプログラム配布サーバ５０からファームウェアを取得するのではなく、一部の端末が他の端末に代わってファームウェアを取得するのでプログラム配布サーバ５０、ルータ１０、２０に対する負荷を軽減させることができる。
【００５９】
上述してきたように、本実施例１にかかるプログラム配布システムは、端末１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｅの全てがプログラム配布サーバ５０からファームウェアを取得するのではなく、一部の端末（例えば、端末１００ａ、１００ｃ）が他の端末（例えば、端末１００ｂ、１００ｄ、１００ｅ）の代わりにファームウェアを取得するので、プログラム配布サーバ５０、ルータ１０、２０に対する負荷を軽減させることができると共に、インターネット回線の通信負荷を軽減させることができる。
【００６０】
また、本実施例１にかかるプログラム配布システムは、ファームウェアを取得する専用の装置を顧客サイト内に設置することなく、ファームウェアを組み込む複数の端末の一部がプログラム配布サーバ５０からファームウェアを取得するので、プログラム配布システムにかかるコストを削減することができる。
【実施例２】
【００６１】
つぎに、本実施例２にかかるプログラム配布システムの概要および特徴について説明する。図５は、本実施例２にかかるプログラム配布システムの概要および特徴を説明するための説明図である。同図に示すように、本実施例２にかかるプログラム配布システムでは、実施例１において説明したプログラム配布システムのように、端末３００ａ、３００ｂ、３００ｃ、３００ｄ、３００ｅの全てがプログラム配布サーバ６０（プログラム配布サーバ６０は、図１において説明したプログラム配布サーバ５０と同様であるため説明を省略する）からファームウェアをダウンロードするのではなく、一部の端末が他の端末の代わりにファームウェアを取得する。
【００６２】
また、本実施例２にかかるプログラム配布システムでは、ファームウェアの配布が完了した場合に、ファームウェアの配布が完了した配布先の端末が新たにファームウェアの配布を開始する。図５に示す例では、グループＢにおいて、端末３００ａが端末３００ｂ、３００ｃの代わりにファームウェアをプログラム配布サーバ６０から取得し、取得したファームウェアを端末３００ｂ、３００ｃに配布する。そして、端末３００ｂに対するファームウェアの配布が完了した場合には、端末３００ｂが端末３００ａに代わってファームウェアを端末３００ｃに配布する。
【００６３】
このように、本実施例２にかかるプログラム配布システムでは、端末に対するファームウェアの配布が完了した場合に、配布が完了した配布先の端末が新たなファームウェアの配布元となり、他の端末にファームウェアを配布するので、顧客サイト内の各端末に対する負荷を分散し、効率よくファームウェアを配布することができる。
【００６４】
つぎに、図５に示した端末３００ａの構成について説明する（端末３００ｂ〜３００ｅは、端末３００ａと同様の構成であるため説明を省略する）。図６は、本実施例２にかかる端末３００ａの構成を示す機能ブロック図である。同図に示すように、この端末３００ａは、入力部３０１と、出力部３０２と、入出力制御ＩＦ部３０３と、通信制御ＩＦ部３０４と、記憶部３０５と、制御部３０６とを備えて構成される。
【００６５】
このうち、入力部３０１は、各種の情報を入力する入力手段であり、キーボードやマウス、マイクなどによって構成される。なお、後述するモニタ（出力部３０２）も、マウスと協働してポインティングディバイス機能を実現する。
【００６６】
出力部３０２は、各種の情報を出力する出力手段であり、モニタ（若しくはディスプレイ、タッチパネルなど）やスピーカなどによって構成される。そして、入出力制御ＩＦ部３０３はこれら入力部３０１および出力部３０２によるデータの入出力を制御する手段であり、通信制御ＩＦ部３０４は、主にプログラム配布サーバ６０と、端末３００ｂと、端末３００ｃとの間における通信を制御する手段である。
【００６７】
記憶部３０５は、制御部３０６による各種の処理に必要なデータおよびプログラムを記憶する記憶手段（格納手段）であり、特に、本発明に密接に関連するものとしては、図６に示すように、ファームウェア取得先テーブル３０５ａと、ファームウェアデータ３０５ｂと、ファームウェア版数管理テーブル３０５ｃとを備える。
【００６８】
ここで、ファームウェア取得先テーブル３０５ａは、プログラム配布サーバ６０のアドレス情報と、端末３００ｂ、３００ｃ、３００ｄ、３００ｅのアドレス情報を記憶したデータである。
【００６９】
ファームウェアデータ３０５ｂは、端末３００ａがプログラム配布サーバ６０から取得するファームウェアを記憶したデータである。ファームウェア版数管理テーブル３０５ｃは、端末３００ａに組み込まれた各ファームウェアの版数を記憶したデータである。
【００７０】
制御部３０６は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御手段であり、特に本発明に密接に関連するものとしては、図６に示すように、ファームウェア取得処理部３０６ａと、ファームウェア組込処理部３０６ｂと、ファームウェア配布処理部３０６ｃと、ファームウェア取得先通知部３０６ｄとを備える。
【００７１】
ファームウェア取得処理部３０６ａは、プログラム配布サーバ６０にアクセスしてファームウェアを取得する処理部である。具体的に、このファームウェア取得処理部３０６ａは、ファームウェア版数管理テーブル３０５ｃに記憶されたファームウェアの版数のデータ（以下、版数データ）をプログラム配布サーバ６０に送信し、ファームウェアが更新されているか否かの応答を受け付ける。そして、ファームウェア取得処理部３０６ａは、ファームウェアが更新されている旨の情報をプログラム配布サーバ６０から取得した場合に、更新されたファームウェアを取得してファームウェアデータ３０５ｂに記憶させる。
【００７２】
ファームウェア組込処理部３０６ｂは、ファームウェア取得処理部３０６ａによって取得されたファームウェアデータ３０５ｂからファームウェアを取得し、取得したファームウェアを端末３００ａに組み込む処理部である。ファームウェア組込処理部３０６ｂは、ファームウェアを組み込んだ場合に、ファームウェア版数管理テーブル３０５ｃの版数を更新する。
【００７３】
ファームウェア配布処理部３０６ｃは、ファームウェア配布要求を受け付けた場合に、配布要求元の端末にファームウェアを配布する処理部である。例えば、ファームウェア配布処理部３０６ｃは、端末３００ｂからファームウェアの配布要求を受け付けた場合に、ファームウェアデータ３０５ｂから配布対象となるファームウェアを取得し、取得したファームウェアを端末３００ｂに配布する。
【００７４】
ファームウェア取得先通知部３０６ｄは、ファームウェアの新たな配布元となる端末のアドレス情報をファームウェア要求先に通知する処理部である。具体的に、図６を用いてファームウェア取得先通知部３０６ｄの処理を説明すると、グループＢにおいて、ファームウェア配布処理部３０６ｃが端末３００ｂおよび端末３００ｃに対してファームウェアの配布を開始し、端末３００ｂに対するファームウェアの配布が完了した場合（ファームウェアの取得が完了した旨の情報を端末３００ｂから取得した場合）に、ファームウェア取得先通知部３０６ｄは、ファームウェアの新たな配布元となる端末３００ｂのアドレス情報を端末３００ｃに通知する。端末３００ｂのアドレス情報を取得した端末３００ｃは、端末３００ａからファームウェアを取得する処理を中断し、端末３００ｂからファームウェアを取得する。
【００７５】
つぎに、本実施例２にかかるプログラム配布システムの処理手順について説明する。図７は、本実施例２にかかるプログラム配布システムの処理手順を説明するための説明図である。同図に示すように、端末３００ａは、プログラム配布サーバ６０からファームウェアを取得した後に、端末３００ｂおよび端末３００ｃに対するファームウェアの配布を開始する（図７の（１）参照）。
【００７６】
続いて、端末３００ａが端末３００ｂからファームウェアの受信が完了した旨の通知を取得した場合に（図７の（２）参照）、端末３００ｂは、端末３００ｃに新たなファームウェアの配布元となる端末３００ｂのアドレス情報を端末３００ｃに通知する（図７の（３）参照）。
【００７７】
その後、端末３００ｂが端末３００ａに成り代わり（図７の（４）参照）、端末３００ｃは、端末３００ｂに対してファームウェアの配布要求を行い（図７の（５）参照）、端末３００ｂは端末３００ｃに対してファームウェアの配布を開始する（図７の（６）参照）。
【００７８】
上述してきたように、本実施例２にかかるプログラム配布システムは、複数の端末のうち一部の端末がプログラム配布サーバ６０からファームウェアを取得し、他の端末に対するファームウェアの配布を開始する。そして、一部の端末に対するファームウェアの配布が完了した場合に、ファームウェアの配布が完了した配布先の端末が新たにファームウェアの配布を開始するので、顧客サイト内の各端末に対する負荷を分散し、効率よくファームウェアを配布することができる。
【実施例３】
【００７９】
つぎに、本実施例３にかかるプログラム配布システムの概要および特徴について説明する。図８は、本実施例３にかかるプログラム配布システムの概要および特徴を説明するための説明図である。同図に示すように、本実施例３にかかるプログラム配布システムでは、管理装置４００を設け、この管理装置４００がファームウェアの配布元となる端末を管理し、各端末のファームウェアの取得先を制御する。
【００８０】
例えば、端末５００ａが、ファームウェアを取得する場合には、ファームウェアの配布元となる端末のアドレス情報を管理装置４００に問い合わせる。問い合わせを受け付けた管理装置４００は、端末５００ａの取得対象のファームウェアを保持する端末を判定し、判定した端末のアドレス情報を端末５００ａに通知し、端末５００ａは通知されたアドレス情報にかかる端末からファームウェアを取得する。
【００８１】
このように、本実施例３にかかるプログラム配布システムでは、管理装置４００が各端末のファームウェアの取得先を制御するので、プログラム配布サーバ７０、ルータ１０，２０にかかる負荷を軽減させることができると共に、ネットワーク回線の通信負荷を軽減させることができる。なお、プログラム配布サーバ７０の説明は、図１において説明したプログラム配布サーバ５０と同様であるため説明を省略する。
【００８２】
つぎに、図８に示した管理装置４００の構成について説明する。図９は、本実施例３にかかる管理装置４００の構成を示す機能ブロック図である。同図に示すように、この管理装置４００は、入力部４０１と、出力部４０２と、入出力制御ＩＦ部４０３と、通信制御ＩＦ部４０４と、記憶部４０５と、制御部４０６とを備えて構成される。
【００８３】
このうち、入力部４０１は、各種の情報を入力する入力手段であり、キーボードやマウス、マイクなどによって構成される。なお、後述するモニタ（出力部４０２）も、マウスと協働してポインティングディバイス機能を実現する。
【００８４】
出力部４０２は、各種の情報を出力する出力手段であり、モニタ（若しくはディスプレイ、タッチパネルなど）やスピーカなどによって構成される。そして、入出力制御ＩＦ部４０３はこれら入力部４０１および出力部４０２によるデータの入出力を制御する手段であり、通信制御ＩＦ部４０４は、主に端末５００ａ〜５００ｅとの間における通信を制御する手段である。
【００８５】
記憶部４０５は、制御部４０６による各種の処理に必要なデータおよびプログラムを記憶する記憶手段（格納手段）であり、特に、本発明に密接に関連するものとしては、図９に示すように、配布管理テーブル４０５ａを備える。図１０は、配布管理テーブル４０５ａのデータ構造の一例を示す図である。同図に示すように、この配布管理テーブル４０５ａは、端末を識別する識別情報と、ＩＰ（Internet Protocol）アドレス（アドレス情報）と、各端末が保持するファームウェアの版数を示すファームウェア版数とを有する。
【００８６】
制御部４０６は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御手段であり、特に本発明に密接に関連するものとしては、図９に示すように、配布先通知処理部４０６ａと配布管理テーブル更新部４０６ｂとを備える。
【００８７】
配布先通知処理部４０６ａは、端末からファームウェアの配布要求を受け付けた場合に、この配布要求に含まれる版数データと、配布管理テーブル４０５ａとを比較して、要求対象となるファームウェアを保持する端末を判定し、判定した端末のアドレス情報をファームウェアの配布要求元に送信する処理部である。
【００８８】
例えば、配布先通知処理部４０６ａが、端末５００ｂからファームウェアの配布要求を受け付け、この配布要求に含まれる版数データと配布管理テーブル４０５ａとを比較した結果、該当するファームウェアを端末５００ａが保持していると判定した場合には、配布先通知処理部４０６ａは、端末５００ｂに端末５００ａのアドレス情報を通知する。通知を受信した端末５００ｂは、端末５００ａからファームウェアを取得することになる。
【００８９】
このように、配布先通知処理部４０６ａが、ファームウェアの配布要求を行った端末にファームウェアの配布元のアドレス情報を通知し、アドレス情報を取得した端末は、プログラム配布サーバ７０にアクセスすることなく、ファームウェアを取得することができるので、プログラム配布サーバ７０にかかる負荷を軽減させることができると共に、迅速にファームウェアを取得することができる。
【００９０】
配布管理テーブル更新部４０６ｂは、配布管理テーブル４０５ａに記録されたデータを更新する処理部である。具体的に、この配布管理テーブル更新部４０６ｂは、端末からファームウェアを新たに組み込んだ旨の情報と、アドレス情報と、このファームウェアの版数データを取得した場合に、配布管理テーブル４０５ａの「ファームウェア版数」（図１０参照）を新たな版数に更新する。
【００９１】
つぎに、図８に示した端末５００ａの構成について説明する（端末５００ｂ〜５００ｅは、端末５００ａと同様の構成であるため説明を省略する）。図１１は、本実施例３にかかる端末５００ａの構成を示す機能ブロック図である。同図に示すように、この端末５００ａは、入力部５０１と、出力部５０２と、入出力制御ＩＦ部５０３と、通信制御ＩＦ部５０４と、記憶部５０５と、制御部５０６とを備えて構成される。
【００９２】
このうち、入力部５０１は、各種の情報を入力する入力手段であり、キーボードやマウス、マイクなどによって構成される。なお、後述するモニタ（出力部５０２）も、マウスと協働してポインティングディバイス機能を実現する。
【００９３】
出力部５０２は、各種の情報を出力する出力手段であり、モニタ（若しくはディスプレイ、タッチパネルなど）やスピーカなどによって構成される。そして、入出力制御ＩＦ部５０３はこれら入力部５０１および出力部５０２によるデータの入出力を制御する手段であり、通信制御ＩＦ部５０４は、主にプログラム配布サーバ７０と、端末５００ｂ〜端末５００ｅとの間における通信を制御する手段である。
【００９４】
記憶部５０５は、制御部５０６による各種の処理に必要なデータおよびプログラムを記憶する記憶手段（格納手段）であり、特に、本発明に密接に関連するものとしては、図１１に示すように、ファームウェア取得先テーブル５０５ａと、ファームウェアデータ５０５ｂと、ファームウェア版数管理テーブル５０５ｃとを備える。
【００９５】
ここで、ファームウェア取得先テーブル５０５ａは、プログラム配布サーバ７０のアドレス情報と、端末５００ｂ、５００ｃ、５００ｄ、５００ｅのアドレス情報を記憶したデータである。
【００９６】
ファームウェアデータ５０５ｂは、端末５００ａがプログラム配布サーバ７０あるいは端末５００ｂ〜５００ｅのいずれかから取得するファームウェアを記憶したデータである。ファームウェア版数管理テーブル５０５ｃは、端末５００ａに組み込まれた各ファームウェアの版数を記憶したデータである。
【００９７】
制御部５０６は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する制御手段であり、特に本発明に密接に関連するものとしては、図１１に示すように、ファームウェア取得処理部５０６ａと、ファームウェア組込処理部５０６ｂと、ファームウェア配布処理部５０６ｃとを備える。
【００９８】
ファームウェア取得処理部５０６ａは、管理装置４００にアクセスして版数データを通知し、管理像地４００からファームウェアの配布元にかかるアドレス情報を取得すると共に、取得したアドレス情報に対応する端末からファームウェアを取得し、取得したファームウェアをファームウェアデータ５０５ｂに記憶させる。
【００９９】
なお、ファームウェア取得処理部５０６ａは、管理装置４００にアクセスして版数データを通知した結果、該当するファームウェアを保持する端末が存在しない旨の情報を取得した場合には、プログラム配布サーバ７０からファームウェアを取得する。
【０１００】
ファームウェア組込処理部５０６ｂは、ファームウェア取得処理部５０６ａによって取得されたファームウェアデータ５０５ｂからファームウェアを取得し、取得したファームウェアを端末５００ａに組み込む処理部である。ファームウェア組込処理部５０６ｂは、ファームウェアを組み込んだ場合に、ファームウェア版数管理テーブル５０５ｃの版数を更新する。
【０１０１】
また、ファームウェア組込処理部５０６ｂは、新たなファームウェアを端末５００ａに組み込んだ場合に、ファームウェアを新たに組み込んだ旨の情報と、端末５００ａのアドレス情報と、このファームウェアの版数データを管理装置４００に通知する。
【０１０２】
ファームウェア配布処理部５０６ｃは、ファームウェア配布要求を受け付けた場合に、配布要求元の端末にファームウェアを配布する処理部である。例えば、ファームウェア配布処理部５０６ｃは、端末５００ｂからファームウェアの配布要求を受け付けた場合に、ファームウェアデータ５０５ｂから配布対象となるファームウェアを取得し、取得したファームウェアを端末３００ｂに配布する。
【０１０３】
つぎに、本実施例３にかかるプログラム配布システムの処理手順について説明する。図１２は、本実施例３にかかるプログラム配布システムの処理手順を示すフローチャートである。なお、図１２では説明の便宜上、ファームウェアの要求を端末５００ａが行い、該当するファームウェアを端末５００ｂが保持しているものとして説明を行う。
【０１０４】
図１２に示すように、端末５００ａが管理装置４００にファームウェアの版数データを送信し（ステップＳ２０１）、管理装置４００が更新対象となるファームウェアを有する端末を判定する（ステップＳ２０２）。
【０１０５】
そして、管理装置４００は判定した端末のアドレス情報（図１１に示す例では、端末５００ｂのアドレス情報）を端末５００ａに送信し（ステップＳ２０３）、端末５００ａはアドレス情報に対応する端末にファームウェアを要求する（ステップＳ２０４）。
【０１０６】
続いて、ファームウェアの要求を取得した端末５００ｂは、ファームウェアを端末５００ａに送信し（ステップＳ２０５）、端末５００ａは、ファームウェアを取得してファームウェアを組み込む（ステップＳ２０６）。
【０１０７】
端末５００ａは、ファームウェアを組み込んだ場合に、組み込んだファームウェアの版数データを管理装置４００に送信し（ステップＳ２０７）、管理装置４００は、配布管理テーブル４０５ａを更新する（ステップＳ２０８）。
【０１０８】
このように、端末５００ａは、ファームウェアの配布元となる端末を管理装置４００に問い合わせ、管理装置４００から通知されたアドレス情報に対応する端末からファームウェアを取得するので、プログラム配布サーバ７０、ルータ１０，２０に対する負荷を軽減させることができる。
【０１０９】
上述してきたように、本実施例３にかかるプログラム配布システムは、ファームウェアの取得先を制御するための管理装置４００を設け、管理装置４００が各端末５００ａ〜５００ｅからファームウェアの取得先を受け付けた場合に、該当するファームウェアを保持する端末を判定し、判定した端末のアドレス情報をファームウェア要求元に通知するので、プログラム配布サーバ７０、サーバ１０，２０にかかる負荷を軽減させることができると共に、ネットワーク回線の通信負荷を軽減させることができる。
【０１１０】
なお、上述した実施例１〜３にかかるプログラム配布システムでは、端末がファームウェアを取得する場合を例にあげて説明したがこれに限定されるものではなく、他のプログラムを取得する場合にでも同様に本発明を適用することができる。
【０１１１】
ところで、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図１３および図１４を用いて、上記各種処理を実現するプログラムを実行するコンピュータの一例について説明する。
【０１１２】
図１３は、上述した実施例１〜３にかかる端末を構成するコンピュータのハードウェア構成を示す図である。同図に示すように、このコンピュータは、ユーザからデータの入力を受け付ける入力装置３０、モニタ３１、ネットワークを介して他のコンピュータとの間でデータの授受をおこなう通信制御ＩＦ装置３２、ＲＡＭ（Random  Access  Memory）３３、ＨＤＤ（Hard  Disk  Drive）３４、ＲＯＭ（Read  Only  Memory）３５およびＣＰＵ（Central  Processing  Unit）３６をバス３７で接続して構成される。
【０１１３】
ＲＯＭ３５には、上述した端末の機能と同様の機能を発揮する各種プログラム（ファームウェア取得先プログラム３５ａ、ファームウェア組込プログラム３５ｂ、ファームウェア配布処理プログラム３５ｃ、ファームウェア取得先通知プログラム３５ｄ）が記憶されている。そして、ＣＰＵ３６が各種プログラム３５ａ〜３５ｄを読み出して実行することにより、上述した端末の機能部の機能を実現する各種プロセス（ファームウェア取得先プロセス３６ａ、ファームウェア組込プロセス３６ｂ、ファームウェア配布処理プロセス３６ｃ、ファームウェア取得先通知プロセス３６ｄ）が起動される。
【０１１４】
ここで、ファームウェア取得先プロセス３６ａ、ファームウェア組込プロセス３６ｂ、ファームウェア配布処理プロセス３６ｃ、ファームウェア取得先通知プロセス３６ｄは、例えば、図６に示したファームウェア取得処理部３０６ａ、ファームウェア組込処理部３０６ｂ、ファームウェア配布処理部３０６ｃ、ファームウェア取得先通知部３０６ｄにそれぞれ対応する。
【０１１５】
ＨＤＤ３４は、上述した端末の記憶部に記憶される各種データ（ファームウェア取得先テーブル３４ａ、ファームウェアデータ３４ｂ、ファームウェア版数管理テーブル３４ｃ）が記憶されている。ファームウェア取得先テーブル３４ａ、ファームウェアデータ３４ｂ、ファームウェア版数管理テーブル３４ｃは、例えば、図６に示したファームウェア取得先テーブル３０５ａ、ファームウェアデータ３０５ｂ、ファームウェア版数管理テーブル３０５ｃにそれぞれ対応する。
【０１１６】
ＣＰＵ３６は、各種データ３４ａ〜３４ｃをＨＤＤ３４に記憶すると共に、各種データ３４ａ〜３４ｃをＨＤＤ３４から読み出してＲＡＭ３３に格納し、ＲＡＭ３３に格納された各種データ３３ａ〜３３ｃに基づいてデータ処理を実行する。
【０１１７】
図１４は、上述した実施例３にかかる管理装置４００を構成するコンピュータのハードウェア構成を示す図である。同図に示すように、このコンピュータは、ユーザからデータの入力を受け付ける入力装置４０、モニタ４１、ネットワークを介して他のコンピュータとの間でデータの授受をおこなう通信制御ＩＦ装置４２、ＲＡＭ（Random  Access  Memory）４３、ＨＤＤ（Hard  Disk  Drive）４４、ＲＯＭ（Read  Only  Memory）４５およびＣＰＵ（Central  Processing  Unit）４６をバス４７で接続して構成される。
【０１１８】
ＲＯＭ４５には、上述した管理装置４００の機能と同様の機能を発揮する各種プログラム（配布先通知処理プログラム４５ａおよび配布管理テーブル更新プログラム４５ｂ）が記憶されている。そして、ＣＰＵ４６が各種プログラム４５ａ、４５ｂを読み出して実行することにより、上述した管理装置４００の機能を実現する各種プロセス（配布先通知処理プロセス４６ａおよび配布管理テーブル更新プロセス４６ｂ）が起動される。
【０１１９】
ここで、配布先通知処理プロセス４６ａおよび配布管理テーブル更新プロセス４６ｂは、図９に示した配布先通知処理部４０６ａおよび配布管理テーブル更新部４０６ｂにそれぞれ対応する。
【０１２０】
ＨＤＤ４４は、配布管理テーブル４４ａを記憶している。この配布管理テーブル４４ａは、図９に示した配布管理テーブル４０５ａに対応する。ＣＰＵ４６は、配布管理テーブル４４ａをＨＤＤ４４に記憶すると共に、配布管理テーブル４４ａをＨＤＤ４４から読み出してＲＡＭ４３に格納し、ＲＡＭ４３に格納された配布管理テーブル４３ａに基づいてデータ処理を実行する。
【０１２１】
ところで、上述した各種プログラム３５ａ〜３５ｄ、４５ａ、４５ｂは、必ずしも最初からＨＤＤ３４あるいは４４に記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などに各種プログラム３５ａ〜３５ｄ、４５ａ、４５ｂを記憶しておき、コンピュータがこれらから各種プログラム３５ａ〜３５ｄ、４５ａ、４５ｂを読み出して実行するようにしてもよい。
【０１２２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【０１２３】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。
【０１２４】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１２５】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１２６】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１２７】
（付記１）ネットワークを介してプログラム配布サーバおよび複数の端末と接続されたプログラム配布装置であって、
前記複数の端末および自プログラム配布装置に組み込むプログラムを前記プログラム配布サーバから前記複数の端末に代わって取得する取得手段と、
前記取得手段において取得したプログラムを前記複数の端末に配布する配布手段と、
を備えたことを特徴とするプログラム配布装置。
【０１２８】
（付記２）前記取得手段は、前記複数の端末および自プログラム配布装置に組み込むプログラムのうち、更新されたプログラムを取得し、当該プログラムを組み込むことを特徴とする付記１に記載のプログラム配布装置。
【０１２９】
（付記３）前記配布手段は、前記プログラムを配布できない場合に、当該プログラムの新たな配布元となる端末のアドレス情報を前記複数の端末に通知することを特徴とする付記１または２に記載のプログラム配布装置。
【０１３０】
（付記４）前記配布手段は、前記プログラムを配布する端末の数に上限値を設け、前記プログラムを配布する端末の数が前記上限値を上回った後に他の端末からプログラムの配布要求を受け付けた場合には、前記プログラムの新たな配布元となる端末のアドレス情報を通知することを特徴とする付記１、２または３に記載のプログラム配布装置。
【０１３１】
（付記５）前記配布手段は、端末に対する前記プログラムの配布が完了した後に、他の端末から前記プログラムの配布要求を受け付けた場合に、前記プログラムの配布が完了した端末を前記プログラムの新たな配布元として配布要求元の端末に通知することを特徴とする付記１〜４のいずれか一つに記載のプログラム配布装置。
【０１３２】
（付記６）ネットワークを介してプログラム配布サーバおよび複数の端末が接続されたプログラム配布システムであって、
前記複数の端末の内の一端末であり、当該複数の端末に組み込むプログラムを前記複数の端末に代わって取得する端末の情報であるプログラム取得端末情報を記録する記録手段と、
前記プログラム配布サーバが前記プログラムの配布要求を受け付けた場合に、前記記録手段に記録されたプログラム取得端末情報に基づいて、前記プログラムの配布元となる端末のアドレス情報を通知する通知手段と、
を備えたことを特徴とするプログラム配布システム。
【０１３３】
（付記７）複数の端末にプログラムを配布する配布処理実行プログラムであって、
前記複数の端末および自配布処理実行プログラムを備えた配布装置に組み込むプログラムを前記複数の端末に代わって取得する取得手順と、
前記取得手順において取得したプログラムを前記複数の端末に配布する配布手順と、
をコンピュータに実行させることを特徴とする配布処理実行プログラム。
【０１３４】
（付記８）前記配布手順は、前記プログラムを配布できない場合に、当該プログラムの新たな配布元となる端末のアドレス情報を前記複数の端末に通知することを特徴とする付記７に記載の配布処理実行プログラム。
【０１３５】
（付記９）前記配布手順は、前記プログラムを配布する端末の数に上限値を設け、前記プログラムを配布する端末の数が前記上限値を上回った後に他の端末からプログラムの配布要求を受け付けた場合には、前記プログラムの新たな配布元となる端末のアドレス情報を通知することを特徴とする付記７または８に記載の配布処理実行プログラム。
【０１３６】
（付記１０）前記配布手順は、端末に対する前記プログラムの配布が完了した後に、他の端末から前記プログラムの配布要求を受け付けた場合に、前記プログラムの配布が完了した端末を前記プログラムの新たな配布元として配布要求元の端末に通知することを特徴とする付記７、８または９に記載の配布処理実行プログラム。
【産業上の利用可能性】
【０１３７】
以上のように、本発明にかかるプログラム配布装置およびプログラム配布システムはプログラムをクライアントに配布するプログラム配布システムなどに有用であり、特に、プログラム配布元となるサーバ装置の負荷を軽減させる場合に適している。
【図面の簡単な説明】
【０１３８】
【図１】本実施例１にかかるプログラム配布システムの概要および特徴を説明するための説明図である。
【図２】本実施例１にかかるプログラム配布サーバの構成を示す機能ブロック図である。
【図３】本実施例１にかかる端末の構成を示す機能ブロック図である。
【図４】本実施例１にかかるプログラム配布システムの処理手順を示すフローチャートである。
【図５】本実施例２にかかるプログラム配布システムの概要および特徴を説明するための説明図である。
【図６】本実施例２にかかる端末の構成を示す機能ブロック図である。
【図７】本実施例２にかかるプログラム配布システムの処理手順を説明するための説明図である。
【図８】本実施例３にかかるプログラム配布システムの概要および特徴を説明するための説明図である。
【図９】本実施例３にかかる管理装置の構成を示す機能ブロック図である。
【図１０】配布管理テーブルのデータ構造の一例を示す図である。
【図１１】本実施例３にかかる端末の構成を示す機能ブロック図である。
【図１２】本実施例３にかかるプログラム配布システムの処理手順を示すフローチャートである。
【図１３】実施例１〜３にかかる端末を構成するコンピュータのハードウェア構成を示す図である。
【図１４】実施例３にかかる管理装置を構成するコンピュータのハードウェア構成を示す図である。
【符号の説明】
【０１３９】
１０，２０    ルータ
３０，４０    入力装置
３１，４１    モニタ
３２，４２    通信制御ＩＦ装置
３３，４３    ＲＡＭ
３３ａ，３４ａ  ファームウェア取得先テーブル
３３ｂ，３４ｂ  ファームウェアデータ
３３ｃ，３４ｃ  ファームウェア版数管理テーブル
４３ａ，４４ａ  配布管理テーブル
３４，４４    ＨＤＤ
３５，４５    ＲＯＭ
３５ａ  ファームウェア取得先プログラム
３５ｂ  ファームウェア組込プログラム
３５ｃ  ファームウェア配布処理プログラム
３５ｄ  ファームウェア取得先通知プログラム
３６，４６    ＣＰＵ
３６ａ  ファームウェア取得先プロセス
３６ｂ  ファームウェア組込プロセス
３６ｃ  ファームウェア配布処理プロセス
３６ｄ  ファームウェア取得先通知プロセス
４５ａ  配布先通知処理プログラム
４５ｂ  配布管理テーブル更新プログラム
４６ａ  配布先通知処理プロセス
４６ｂ  配布管理テーブル更新プロセス
５０，６０，７０    プログラム配布サーバ
５１，１０１，３０１，４０１，５０１    入力部
５２，１０２，３０２，４０２，５０２    出力部
５３，１０３，３０３，４０３，５０３    入出力制御ＩＦ部
５４，１０４，３０４，４０４，５０４    通信制御ＩＦ部
５５，１０５，３０５，４０５，５０５    記憶部
５５ａ，１０５ｂ，３０５ｂ，５０５ｂ  ファームウェアデータ
５５ｂ  ファームウェア版数データ
５６，１０６，３０６，４０６，５０６    制御部
５６ａ、１０６ｃ，３０６ｃ，５０６ｃ  ファームウェア配布処理部
１００ａ，１００ｂ，１００ｃ，１００ｄ，１００ｅ，３００ａ，３００ｂ，３００ｃ，３００ｄ，３００ｅ，５００ａ，５００ｂ，５００ｃ，５００ｄ，５００ｅ  端末
１０５ｃ，３０５ｃ，５０５ｃ  ファームウェア版数管理テーブル
１０６ａ，３０６ａ，５０６ａ  ファームウェア取得処理部
１０６ｂ，３０６ｂ，５０６ｂ  ファームウェア組込処理部
１０５ａ，３０５ａ，５０５ａ  ファームウェア取得先テーブル
３０６ｄ  ファームウェア取得先通知部
４００    管理装置
４０５ａ  配布管理テーブル
４０６ａ  配布先通知処理部
４０６ｂ  配布管理テーブル更新部
【図１】
2008033445.tif 000003
【図２】
2008033445.tif 000004
【図３】
2008033445.tif 000005
【図４】
2008033445.tif 000006
【図５】
2008033445.tif 000007
【図６】
2008033445.tif 000008
【図７】
2008033445.tif 000009
【図８】
2008033445.tif 000010
【図９】
2008033445.tif 000011
【図１０】
2008033445.tif 000012
【図１１】
2008033445.tif 000013
【図１２】
2008033445.tif 000014
【図１３】
2008033445.tif 000015
【図１４】
2008033445.tif 000016