ネットワークを介して接続された端末にソフトウェアを配布するソフトウェア配布サーバであって、前記端末を識別するための端末識別情報と、少なくとも前記端末が停止しているか否かを示す稼動状況を含む前記端末の稼働情報と、前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを示す帯域情報とを対応付けて記憶する配布状況テーブルを記憶する記憶部と、前記端末の稼動状況を判定し、判定した結果を前記稼動情報に記憶させるステータス判定部と、前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを判定し、判定した結果を前記帯域情報に記憶させる帯域判定部と、前記稼動情報として前記端末が停止している旨が記憶されていない場合であって、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されている場合に、前記端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる配布制御部と、を備えることを特徴とするソフトウェア配布サーバ。前記端末が停止している旨の稼動情報が記憶されている場合に、前記端末を遠隔起動させる遠隔操作部をさらに備え、前記配布制御部は、前記遠隔操作部が前記端末を遠隔起動させ、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されている場合に、前記端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる、ことを特徴とする請求項1に記載のソフトウェア配布サーバ。前記記憶部は、あらかじめ、前記ソフトウェアを識別するためのソフトウェア識別情報と、前記ソフトウェアを配布する際に必要な前記端末の状況を示す対象端末ステータス情報とを対応付けて記憶する配布計画テーブルをさらに記憶し、前記配布制御部は、前記配布状況テーブルが記憶する前記稼動情報が、前記配布計画テーブルが記憶する前記対象端末ステータス情報に含まれる場合に、前記端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる、ことを特徴とする請求項1または2に記載のソフトウェア配布サーバ。前記配布制御部は、前記ネットワークに前記端末が複数接続されている場合には、あらかじめ定められた所定の順序より、または前記順序とは無関係に前記ソフトウェアを前記端末に配布させる、ことを特徴とする請求項1~3のいずれか1項に記載のソフトウェア配布サーバ。前記遠隔操作部は、前記端末を遠隔起動させ、前記配布制御部が前記ソフトウェアを前記端末に配布させた後、前記端末を遠隔起動前の停止状態に戻して前記稼動情報をリセットする、ことを特徴とする請求項2~4のいずれか1項に記載のソフトウェア配布サーバ。ネットワークを介して接続された端末にソフトウェアを配布するソフトウェア配布サーバで行われるソフトウェア配布方法であって、前記端末の稼動状況を判定し、判定した結果を少なくとも前記端末が停止しているか否かを示す稼動状況を含む前記端末の稼動情報として記憶させるステータス判定ステップと、前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを判定し、判定した結果を前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを示す帯域情報に記憶させる帯域判定ステップと、前記稼動情報として前記端末が停止している旨が記憶されているか否かを判定する第1の判定ステップと、前記稼動情報として前記端末が停止している旨が記憶されていないと判定された場合において、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されているか否かを判定する第2の判定ステップと、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されていると判定された場合において、前記端末を識別するための端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる配布ステップと、を含むことを特徴とするソフトウェア配布方法。コンピュータに、ネットワークを介して接続された端末の稼動状況を判定し、判定した結果を少なくとも前記端末が停止しているか否かを示す稼動状況を含む前記端末の稼動情報として記憶させるステータス判定ステップと、前記ネットワークの帯域がソフトウェアの配布に必要な条件を満たしているか否かを判定し、判定した結果を前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを示す帯域情報に記憶させる帯域判定ステップと、前記稼動情報として前記端末が停止している旨が記憶されているか否かを判定する第1の判定ステップと、前記稼動情報として前記端末が停止している旨が記憶されていないと判定された場合において、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されているか否かを判定する第2の判定ステップと、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されていると判定された場合において、前記端末を識別するための端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる配布ステップと、を実行させることを特徴とするソフトウェア配布プログラム。請求項7に記載されたソフトウェア配布プログラムを格納したコンピュータの読み取り可能な記録媒体。上述した特許文献1に開示された技術では、ソフトウェア配布における事前定義可能な項目として、時間帯によるソフトウェアの配布制限を設けているが、本項目についての考慮のみでは下記1~3に示すような課題がある。まず、1対象端末とのネットワーク利用状況が考慮されておらず、ネットワーク帯域の圧迫を引き起こす可能性がある。次に、2対象端末の状況稼働中、休止中、停止中に対する考慮がなされていない為、稼働中端末に対してソフトウェアの配布によって生じる対象端末負荷の懸念、休止中端末への優先配布、停止中端末への配布等の制御ができない。さらに、3対象端末の選定方法が順次的であり、隣接端末へのソフトウェア配布が集中する可能性がある。本発明の目的は、これらの従来技術の課題を解決し、ネットワーク帯域の圧迫や対象端末負荷増大、ソフトウェア配布進捗の遅延、隣接端末へのソフトウェア配布集中を引き起こすことなく、ソフトウェア配布を実行することを可能とするソフトウェア配布サーバ、ソフトウェア配布方法、ソフトウェア配布プログラム、および記録媒体を提供することである。上述した目的を達成するために、本発明にかかるソフトウェア配布サーバは、ネットワークを介して接続された端末にソフトウェアを配布するソフトウェア配布サーバであって、前記端末を識別するための端末識別情報と、少なくとも前記端末が停止しているか否かを示す稼動状況を含む前記端末の稼働情報と、前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを示す帯域情報とを対応付けて記憶する配布状況テーブルを記憶する記憶部と、前記端末の稼動状況を判定し、判定した結果を前記稼動情報に記憶させるステータス判定部と、前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを判定し、判定した結果を前記帯域情報に記憶させる帯域判定部と、前記稼動情報として前記端末が停止している旨が記憶されていない場合であって、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されている場合に、前記端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる配布制御部と、を備えることを特徴とする。また、本発明は、上記ソフトウェア配布サーバで実行されるソフトウェア配布方法、ソフトウェア配布プログラム、およびこれを格納した記録媒体である。本発明によれば、ネットワーク帯域の圧迫、対象端末負荷増大、ソフトウェア配布進捗の遅延、隣接端末へのソフトウェア配布の集中を引き起こすことなく、ソフトウェア配布を実行することが可能となり、その結果として高品質なソフトウェア配布を提供できる。以下に添付図面を参照して、この発明にかかるソフトウェア配布サーバ、ソフトウェア配布方法、ソフトウェア配布プログラム、および記録媒体の実施の形態を詳細に説明する。図1は、本実施の形態におけるソフトウェア配布システム1000のシステム全体構成図である。図1に示すように、ソフトウェア配布システム1000は、ソフトウェア配布サーバ101と対象端末群114とを有し、これらが互いにネットワーク網113によって接続されている。なお、ネットワーク網113は、例えば、LANLocalAreaNetworkやWANWideAreaNetwork等の一般的な通信回線網である。まず、ソフトウェア配布サーバ101について説明する。ソフトウェア配布サーバ101は、対象端末群114を構成するそれぞれの端末以下、対象端末、あるいは単に端末等と呼ぶ。に対して所定のソフトウェアを配布するものである。図1に示すように、ソフトウェア配布サーバ101は、主制御部102Aと、記憶部102Bとを有している。主制御部102Aは、例えば、CPUCentralProcessingUnit等の演算装置から構成され、後述する各種の処理やソフトウェア配布サーバ101を構成する各部の動作を制御するものである。主制御部102Aは、機能的には、配布制御部103と、端末ステータス判定部104と、端末遠隔操作部105と、帯域判定部106とを有している。配布制御部103は、端末管理テーブル108、配布計画テーブル110、配布状況テーブル111等を参照することにより、端末の状況を確認しつつソフトウェアを配布するものである。配布制御部103が行う具体的な処理については、図6A~6Cを用いて後述する。端末ステータス判定部104は、配布制御部103がソフトウェアを配布する際における端末の状況を判定するものである。端末ステータス判定部104が行う具体的な処理については、図7を用いて後述する。端末遠隔操作部105は、ソフトウェアが配布される対象端末を遠隔起動または停止させるものである。端末遠隔操作部105が行う具体的な処理については、図8を用いて後述する。帯域判定部106は、ソフトウェアが配布される際に必要となるネットワーク帯域が確保されていることを確認するものである。帯域判定部106は、が行う具体的な処理については、図9を用いて後述する。なお、ソフトウェア配布サーバ101が有する各部は、配布制御部103、端末ステータス判定部104、端末遠隔操作部105、および帯域判定部106の各機能を実現するためのプログラムにより実行される。これらのプログラムは、例えば、上述した各部を含むモジュール構成となっており、実際のハードウェアとしては、CPU等の制御部がHDDHardDiskDrive等の記録装置からこれらのプログラムを読み出して実行することにより、上記各部が主記憶装置上にロードされ、配布制御部103、端末ステータス判定部104、端末遠隔操作部105、および帯域判定部106の各部が主記憶装置上に生成されるようになっている。また、上述したプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスクFD、CD-R、DVDDigitalVersatileDisc等のコンピュータで読み取り可能な記録媒体に記録されて提供することも可能である。さらに、これらのプログラムを、ネットワーク経由でダウンロードさせて提供または配布するように構成してもよい。続いて、記憶部102Bについて説明する。記憶部102Bは、例えば、HDDHardDiskDrive等の記憶装置から構成され、後述する各種の処理で用いられる種々のデータを記憶するものである。記憶部102Bは、端末管理DBDataBase107と、端末管理テーブル108と、ソフト配布DB109と、計画テーブル110と、配布状況テーブル111と、帯域テーブル112とを有している。図1に示すように、端末管理テーブル108は、端末管理DB107の内部に記憶され、計画テーブル110と、配布状況テーブル111と、帯域テーブル112とは、ソフト配布DB109の内部に記憶されている。図2は、端末管理テーブル108の例を示す図である。図2に示すように、端末管理テーブル108は、ソフトウェアの配布対象となる端末を識別するための端末IDと、その端末のIPアドレスと、その端末のMACアドレスと、その端末を使用する社員を識別するための社員番号と、その社員の氏名と、その社員が所属する部署と、その社員の連絡先とが対応付けて記憶されている。図2では、例えば、端末ID1000001、IPアドレス10.100.1.1、MACアドレス00-22-15-03-07-D1の端末は、経理部に所属する社員番号30001の田中一郎が使用している端末であり、連絡先が00-1111-2222であることを示している。この端末管理テーブル108に記憶されるデータは、あらかじめ管理者等によって設定されているものとする。続いて、配布計画テーブル110について説明する。図3は、配布計画テーブル110の例を示す図である。図3に示すように、配布計画テーブル110は、配布するソフトウェアを識別するためのソフトウェア名と、そのソフトウェアの配布を開始する日時を示す開始日時と、そのソフトウェアの配布を終了する日時を示す終了日時と、そのソフトウェアの配布対象となる端末の指定方法を示す端末選択方式と、指定された端末の状態を示す対象端末ステータスとが対応付けて記憶されている。図3では、例えば、ソフトウェアAのソフトウェアは、2010年12月24日0:00に配布が開始され、2010年12月24日11:00にその配布が終了する予定であり、そのソフトウェアの端末への配布方法はランダム方式であり、そのランダム方式によって指定された配布対象端末のうち、休止状態、停止状態、稼動状態のステータスとなっている端末に対して、そのソフトウェアを配布することを示している。なお、配布計画テーブル110が有する端末選択方式には、ランダム方式と順次方式とが設定されている。ランダム方式は、配布対象端末が、端末対象ステータスに設定されたステータスを満たしている端末であれば、任意の順序でソフトウェアを配布することを示している。また、順次方式は、配布対象端末が、端末対象ステータスに設定されたステータスを満たしている場合に、例えば、端末ID順、IPアドレス順、MACアドレス順、あるいは社員番号順等、あらかじめ定められた順序でソフトウェアを配布することを示している。また、配布計画テーブル110が有する対象端末ステータスは、ソフトウェアを配布する際に必要な端末の状況を示すものであり、停止状態、休止状態、稼動状態の3つの状態、あるいはこれらの組み合わせが設定されている。停止状態は、配布対象端末が稼動していない状態であり、休止状態は、配布対象端末が稼動しているものの、アクティブではない状態であり、稼動状態は、配布対象端末が稼動し、アクティブな状態であることを示している。したがって、上述したソフトウェアAを配布する場合の例では、これら3つの状態にある配布対象端末に対して配布されることとなる。この配布計画テーブル110に記憶されるデータは、上述した端末管理テーブル108と同様に、あらかじめ管理者等によって設定されているものとする。続いて、配布状況テーブル111について説明する。図4は、配布状況テーブル111の例を示す図である。図4に示すように、配布状況テーブル111は、端末を識別するための端末ID端末IDと、ソフトウェアのインストール対象となっている端末であることを示すインストールフラグと、その端末の状態を示す端末ステータスと、そのソフトウェアをインストールする場合に必要となるネットワーク上の帯域を満たしていることを示す帯域フラグと、配布計画テーブル110が有する端末対象ステータスを満たすことを示す対象ステータスとが対応付けて記憶されている。図4では、例えば、端末ID1000001の端末は、あるソフトウェア例えば、ソフトウェアAのインストール対象であり、現在は休止状態であることを示しており、端末が接続されたネットワークの現在の回線状況は、ソフトウェアを配布するための帯域を満たしている状態でありソフトウェアの配布に必要な帯域が確保された状態にあり、現在の端末ステータスは、配布計画テーブル110が有する対象端末ステータスを満たしている含まれている状態にあることを示している。なお、配布状況テーブル111が有するインストールフラグには、Yインストール対象である、Nインストール対象でない、-未設定のいずれかが設定されている。また、配布状況テーブル111が有する端末ステータスには、上述した配布計画テーブル110が有する対象端末ステータスと同様に、休止状態、停止状態、稼動状態の各ステータスのほか、休止状態にある配布対象端末を遠隔操作によって起動している状態を示す遠隔起動状態のいずれかが設定されている。さらに、配布状況テーブル111が有する帯域フラグには、Y端末が接続されたネットワークの現在の回線がソフトウェアの配布に必要な帯域が確保された状態である、N端末が接続されたネットワークの現在の回線がソフトウェアの配布に必要な帯域が確保されていない状態である、-未設定のいずれかが設定されている。また、配布状況テーブル111が有する対象ステータスには、Y現在の端末の状態が、配布計画テーブル110が有する対象端末ステータスを満たしている含まれている、N現在の端末の状態が、配布計画テーブル110が有する対象端末ステータスを満たしていない含まれていない、-未設定のいずれかが設定されている。この配布状況テーブル111に記憶されるデータは、端末の状態に応じて設定あるいは更新されるものとする。また、配布状況テーブル111は、配布されるソフトウェアごとに作成されるものとする。続いて、必要帯域テーブル112について説明する。図5は、必要帯域テーブル112の例を示す図である。図5に示すように、必要帯域テーブル112は、配布されるソフトウェアのソフトウェア名と、そのソフトウェアを配布して端末にインストールする場合の必要帯域帯域条件とが対応付けて記憶されている。図5では、例えば、ソフトウェアAを配布対象端末にインストールする場合には、少なくともネットワーク回線の帯域が10KB必要であることを示している。この必要帯域テーブル112に記憶されるデータは、上述した端末管理テーブル108等と同様に、あらかじめ管理者等によって設定されているものとする。続いて、本実施の形態におけるソフトウェア配布システム1000で行われる各種の処理について説明する。図6A~Cは、配布制御部103が行うソフトウェア配布処理の処理手順を示すフローチャートである。図6Aに示すように、配布制御部103は、配布計画テーブル110にアクセスし、ソフトウェア名と、開始時間と、終了時間とを読み込み、現時点でソフトウェアの配布予定となっているソフトウェア名を抽出して、その対象があるか否かを判定しステップS601、対象がないと判定した場合ステップS601;No、図6に示すソフトウェア配布処理を終了させる。なお、現時点でソフトウェアの配布予定となっているか否かは、例えば、タイマ不図示の時刻が開始時間となっているか、タイマの日付が開始日となっているか等によって判定する。一方、配布制御部103は、対象があると判定した場合ステップS601;Yes、そのソフトウェアのソフトウェア名をキーとして、ソフト配布DB203に、そのソフトウェア向けの配布状況テーブル111が存在するか否かを判定しステップS602、そのソフトウェア向けの配布状況テーブル111が存在しないと判定した場合ステップS602;No、そのソフトウェアについて、端末管理テーブル108が有する端末IDで識別される全ての端末を含む配布状況テーブル111を生成しステップS603、ステップS604に進む。一方、配布制御部103は、そのソフトウェア向けの配布状況テーブル111が存在したと判定した場合ステップS602;Yes、そのままステップS604に進む。次に、配布制御部103は、配布計画テーブル110にアクセスし、そのソフトウェアのソフトウェア名をキーとして、そのソフトウェアに対応する端末選択方式と対象端末ステータスとを抽出するステップS604。そして、配布制御部103は、さらに配布状況テーブル111にアクセスし、抽出した端末選択方式をキーとして、そのソフトウェアの配布候補となる端末IDを抽出し、その対象があるか否かを判定するステップS605。このとき、既にそのソフトウェアがインストールされている端末への配布をしないように、配布状況テーブル111のインストールフラグY、帯域フラグ-以外、対象ステータス-以外となっている端末は除外するものとする。そして、配布制御部103は、そのソフトウェアの配布候補となる端末IDを抽出し、その対象がないと判定した場合ステップS605;No、図6A~Cに示したソフトウェア配布処理を終了させる。一方、配布制御部103は、そのソフトウェアの配布候補となる端末IDを抽出し、その対象があると判定した場合ステップS605;Yes、ステップS605において抽出した端末IDをキーとして端末管理テーブル108にアクセスし、その端末IDに対応するIPアドレスとMACアドレスを抽出しステップS606、図6Bに示すステータス判定処理ステップS607に進む。図7は、端末ステータス判定部104が行うステータス判定処理の処理手順を示すフローチャートである。図7に示すように、端末ステータス判定部104は、ステップS606で取得したIPアドレスに対して、1バイトのpingパケットを5回送信し、端末ステータスを確認するステップS608。具体的には、端末ステータス判定部104は、ステップS606で取得したIPアドレスに対して、コマンドping-llt5<IPアドレス>|findbytes1>NULを発行し、そのリターンコードがゼロであるか否かを判定する。そして、端末ステータス判定部104は、発行したコマンドに対するリターンコードがゼロではないと判定した場合ステップS701;No、その端末は停止状態にあると判断し、その端末IDに対応する配布状況テーブル111の端末ステータスを停止に更新するステップS702。一方、端末ステータス判定部104は、発行したコマンドに対するリターンコードがゼロであると判定した場合ステップS701;Yes、その端末は少なくとも稼動した状態になると判断し、さらにその端末上でスクリーンセーバプロセスが稼動しているか否かを判定するステップS703。具体的には、端末ステータス判定部104は、その端末上で稼動しているプロセスの中から、拡張子が.scrであるプロセスがあるか否かを判定する。そして、端末ステータス判定部104は、その端末上でスクリーンセーバプロセスが稼動していると判定した場合ステップS703;Yes、その端末は休止状態にあると判断し、その端末IDに対応する配布状況テーブル111の端末ステータスを休止に更新するステップS704。一方、端末ステータス判定部104は、その端末上でスクリーンセーバプロセスが稼動していないと判定した場合ステップS703;No、その端末は稼動状態にあると判断し、その端末IDに対応する配布状況テーブル111の端末ステータスを稼動に更新するステップS705。そして、ステップS702、S704、S705のいずれかの処理が終了すると、図7に示したステータス判定処理のすべての処理が終了する。続いて、図6Bに戻り、ステップS607以降の各処理について説明する。図6Bにおいて、ステータス判定処理ステップS607が終了すると、配布制御部103は、ステップS605において抽出した端末IDをキーとして、その端末IDに対応する端末ステータスと、ステップS604で抽出した対象端末ステータスとを比較し、両者が一致するか否かあるいは端末ステータスが対象端末ステータスに含まれるか否かを判定するステップS608。そして、配布制御部103は、両者が一致しないあるいは端末ステータスが対象端末ステータスに含まれないと判定した場合ステップS608;No、その端末IDに対応する配布状況テーブル111の対象ステータスをNに更新し、ステップS605に戻って以降の処理を繰り返す。一方、配布制御部103は、両者が一致するあるいは端末ステータスが対象端末ステータスに含まれると判定した場合ステップS608;Yes、その端末IDに対応する配布状況テーブル111の対象ステータスをYに更新し、さらに、その端末IDに対応する配布状況テーブル111の端末ステータスが停止となっているか否かを判定するステップS609。配布制御部103は、その端末IDに対応する配布状況テーブル111の端末ステータスが停止となっていると判定した場合ステップS609;Yes、ステップS610に進み、端末遠隔操作部105は端末遠隔操作処理を行うステップS610図8は、端末遠隔操作部105が行う端末遠隔操作処理の処理手順を示すフローチャートである。この端末遠隔操作処理は、上述したステップS609または後述するステップS616の後続処理となっており、各処理が実行されるタイミングによって、端末を遠隔起動するか否かが分かれることとなる。図8に示すように、端末遠隔操作部105は、ステップS605において抽出した端末IDをキーとして、その端末IDに対応する配布状況テーブル111の端末ステータスが停止となっているか否か判定するステップS801。端末遠隔操作部105は、その端末IDに対応する配布状況テーブル111の端末ステータスが停止となっていると判定した場合ステップS801;Yes、ステップS606で取得した端末のMACアドレスに対して、WakeOnLan仕様に準拠したMagicPacketを送信しステップS802、配布状況テーブル111の端末ステータスを遠隔起動に更新するステップS803。一方、端末遠隔操作部105は、その端末IDに対応する配布状況テーブル111の端末ステータスが停止となっておらず、遠隔起動となっていると判定した場合ステップS801;No、ステップS606で取得した端末のIPアドレスに対して、shutdown命令を発行しステップS804、配布状況テーブル111の端末ステータスを-に更新するステップS805。このステップS803またはステップS805の処理が終了すると、図8に示した全ての処理が終了する。なお、図8に示す端末遠隔操作処理のステップS802およびS803の各処理は、ステップS609の処理においてYesと判定された際に実行され、ステップS804およびS805の各処理は、その後、配布状況テーブル111の端末ステータスが遠隔起動に更新された状態で、ステップS616の処理においてYESと判定された場合に行われることとなる。続いて、図6Bに戻って、ステップS611以降の処理について説明する。ステップS609において、ステップS605において抽出した端末IDに対応する配布状況テーブル111の端末ステータスが停止となっていないと判定した場合ステップS609;No、またはステップS610において、端末遠隔操作処理が行われると、帯域判定部106は、帯域判定処理を行うステップS611。図9は、帯域判定部106が行う帯域判定処理の処理手順を示すフローチャートである。図9に示すように、帯域判定部106は、ステップS601において配布制御部103がキーとしたソフトウェアのソフトウェア名をキーとして、必要帯域テーブル112にアクセスし、そのソフトウェア名に対応する必要帯域を抽出するステップS901。次に、帯域判定部106は、ステップS606において配布制御部103が取得したIPアドレスに対して、64キロバイトのpingパケットを5回送信し、その平均応答時間を取得する。具体的には、帯域判定部106は、そのIPアドレスに対して、コマンドping-l64000-t5<IPアドレス>|findAverageを発行して平均応答時間を取得する。そして、帯域判定部106は、帯域速度を算出するステップS903。具体的には、帯域判定部106は、計算式64KB×2÷平均応答時間=帯域速度を用いて帯域速度を計算する。次に、帯域判定部106は、ステップS901で抽出した必要帯域と、ステップS903で算出した帯域速度とを比較して帯域速度が必要帯域以上であるか否かを判定しステップS904、帯域速度が必要帯域以上であると判定した場合ステップS904;Yes、配布状況テーブル111の帯域フラグをYに更新するステップS905。一方、帯域判定部106は、帯域速度が必要帯域以上でないと判定した場合ステップS904;No、配布状況テーブル111の帯域フラグをNに更新するステップS906。このステップS905またはS906の処理が終了すると、図9に示す全ての処理が終了する。続いて、図6Bに戻り、ステップS612以降の処理について説明する。ステップS611において帯域判定処理が終了すると、配布制御部103は、配布状況テーブル111から帯域フラグを読み込み、帯域フラグがYであるか否か判定し、帯域フラグがYであると判定した場合、図6Cに示すステップS613に進む。一方、配布制御部103が、帯域フラグがYでないと判定した場合、ステップS605に戻って以降の処理を繰り返す。そして、配布制御部103は、ステップS606で取得したIPアドレスを有する端末に対して、ステップS601において配布対象としたソフトウェアを送信してそのリターンコードを取得し、取得したリターンコードが0であるか否かを判定するステップS613。配布制御部103は、取得したリターンコードが0であると判定した場合ステップS613;Yes、さらに、ソフトウェアのインストール処理を行ってそのリターンコードを取得し、取得したリターンコードが0であるか否かを判定するステップS614。一方、配布制御部103が、取得したリターンコードが0でないと判定した場合ステップS613;No、ステップS605に戻って以降の処理を繰り返す。そして、配布制御部103は、取得したリターンコードが0であると判定した場合ステップS614;Yes、ソフトウェアが正常にインストールできたと判断し、配布状況テーブル111のインストールフラグをYに更新するステップS615。一方、配布制御部103が、取得したリターンコードが0でないと判定した場合ステップS614;No、ステップS605に戻って以降の処理を繰り返す。次に、配布制御部103は、配布状況テーブル111の端末ステータスを読み込み、端末ステータスが遠隔起動であるか否かを判定しステップS616、端末ステータスが遠隔起動であると判定した場合ステップS616;Yes、端末遠隔操作部105は、図8に示した端末遠隔操作処理を行うステップS617。このとき、上述したように、ステップS803において配布状況テーブル111の端末ステータスが遠隔起動に更新されているので、この段階では、端末遠隔操作処理のうちのステップS804およびS805の各処理が行われることとなる。一方、配布制御部103は、端末ステータスが遠隔起動でないと判定した場合ステップS616;No、何もせずにステップS618に進む。配布制御部103は、配布計画テーブル110にアクセスし、インストールしたソフトウェアのソフトウェア名に対応する開始時間および終了時間の読み込み処理を実行し、現在の時刻が計画時間内であるか否かを判定しステップS618、現在の時刻が計画時間内であると判定した場合ステップS618;Yes、ステップS605に戻って以降の処理を繰り返す。一方、配布制御部103が、現在の時刻が計画時間内でないと判定した場合ステップS618;No、配布状況テーブル111の帯域フラグを-に更新するとともに、対象ステータスを-に更新してリセットするステップS619。このステップS619の処理が終了すると、図6A~6Cに示した全ての処理が終了する。このように、本実施の形態におけるソフトウェア配布システムでは、ソフトウェア配布の条件として必要となるネットワーク帯域を予め設定し、ソフトウェア配布時におけるネットワーク帯域を測定し、設定した条件を満たす場合のみソフトウェア配布を行い、ネットワーク帯域が混み合っている場合には、ソフトウェア配布は見送られる。このことにより、ソフトウェア配布によるネットワーク帯域の圧迫を防止することができる。すなわち、ネットワーク帯域の圧迫、対象端末負荷増大、ソフトウェア配布進捗の遅延、隣接端末へのソフトウェア配布の集中を引き起こすことなく、ソフトウェア配布を実行することが可能となり、その結果として高品質なソフトウェア配布を提供できる。また、ソフトウェア配布の対象端末を端末状況稼働中、休止中、停止中毎に選定させる。このことによって、稼働中の対象端末への負荷の増大を防止し、停止中の対象端末を遠隔起動してソフトウェア配布を実行させることで、ソフトウェア配布の進捗遅延を防止するといった、端末状況の応じたソフトウェアの配布を実施することができる。さらに、対象端末の選定方式として順次選択とランダム選択を指定可能としており、順次選択時には、例えば、ある部署の配置されている同じネットワーク領域にある端末へのソフトウェア配布によって、その部署のネットワーク帯域が込み合ってレスポンスの低下を招く等、インストール対象となる端末の場所が1箇所に集中してしまうことによる弊害を回避することも可能となる。なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。例えば、ソフトウェアの配布対象となる対象端末の台数が多く処理負荷が大きい場合には、ソフトウェア配布サーバ101が有する複数の機能を物理的に2以上のサーバに分ける等、実施の形態に示される全構成要素からいくつかの構成要素を変更したり、構成要素を適宜組み合わせても良い。