(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続された端末にソフトウェアを配布するソフトウェア配布サーバであって、
前記端末を識別するための端末識別情報と、少なくとも前記端末が停止しているか否かを示す稼動状況を含む前記端末の稼動情報と、前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを示す帯域情報とを対応付けて記憶する配布状況テーブルを記憶する記憶部と、
前記端末の稼動状況を判定し、判定した結果を前記稼動情報に記憶させるステータス判定部と、
前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを判定し、判定した結果を前記帯域情報に記憶させる帯域判定部と、
前記ソフトウェアの配布計画に基づいて、現時点で配布予定となっているソフトウェアごとに前記配布状況テーブルを生成し、生成した前記配布状況テーブルの前記稼動情報として前記端末が停止している旨が記憶されていない場合であって、生成した前記配布状況テーブルの前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されている場合に、前記端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる配布制御部と、
を備えることを特徴とするソフトウェア配布サーバ。
【請求項２】
前記端末が停止している旨の稼動情報が記憶されている場合に、前記端末を遠隔起動させる遠隔操作部をさらに備え、
前記配布制御部は、前記遠隔操作部が前記端末を遠隔起動させ、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されている場合に、前記端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる、
ことを特徴とする請求項１に記載のソフトウェア配布サーバ。
【請求項３】
前記記憶部は、前記配布計画として、あらかじめ、前記ソフトウェアを識別するためのソフトウェア識別情報と、前記ソフトウェアを配布する際に必要な前記端末の状況を示す対象端末ステータス情報とを対応付けて記憶する配布計画テーブルをさらに記憶し、
前記配布制御部は、前記配布状況テーブルが記憶する前記稼動情報が、前記配布計画テーブルが記憶する前記対象端末ステータス情報に含まれる場合に、前記端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる、
ことを特徴とする請求項１または２に記載のソフトウェア配布サーバ。
【請求項４】
前記配布制御部は、前記ネットワークに前記端末が複数接続されている場合には、あらかじめ定められた所定の順序より、または前記順序とは無関係に前記ソフトウェアを前記端末に配布させる、
ことを特徴とする請求項１〜３のいずれか１項に記載のソフトウェア配布サーバ。
【請求項５】
前記遠隔操作部は、前記端末を遠隔起動させ、前記配布制御部が前記ソフトウェアを前記端末に配布させた後、前記端末を遠隔起動前の停止状態に戻して前記稼動情報をリセットする、
ことを特徴とする請求項２に記載のソフトウェア配布サーバ。
【請求項６】
ネットワークを介して接続された端末にソフトウェアを配布するソフトウェア配布サーバで行われるソフトウェア配布方法であって、
前記端末の稼動状況を判定し、判定した結果を少なくとも前記端末が停止しているか否かを示す稼動状況を含む前記端末の稼動情報として記憶させるステータス判定ステップと、
前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを判定し、判定した結果を前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを示す帯域情報に記憶させる帯域判定ステップと、
前記ソフトウェアの配布計画に基づいて、現時点で配布予定となっているソフトウェアごとに前記端末を識別するための端末識別情報と前記稼動情報と前記帯域情報とを対応付けて記憶する配布状況テーブルを生成する生成ステップと、
生成された前記配布状況テーブルの前記稼動情報として前記端末が停止している旨が記憶されているか否かを判定する第１の判定ステップと、
生成された前記配布状況テーブルの前記稼動情報として前記端末が停止している旨が記憶されていないと判定された場合において、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されているか否かを判定する第２の判定ステップと、
前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されていると判定された場合において、前記端末を識別するための端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる配布ステップと、
を含むことを特徴とするソフトウェア配布方法。
【請求項７】
コンピュータに、
ネットワークを介して接続された端末の稼動状況を判定し、判定した結果を少なくとも前記端末が停止しているか否かを示す稼動状況を含む前記端末の稼動情報として記憶させるステータス判定ステップと、
前記ネットワークの帯域がソフトウェアの配布に必要な条件を満たしているか否かを判定し、判定した結果を前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを示す帯域情報に記憶させる帯域判定ステップと、
前記ソフトウェアの配布計画に基づいて、現時点で配布予定となっているソフトウェアごとに前記端末を識別するための端末識別情報と前記稼動情報と前記帯域情報とを対応付けて記憶する配布状況テーブルを生成する生成ステップと、
生成された前記配布状況テーブルの前記稼動情報として前記端末が停止している旨が記憶されているか否かを判定する第１の判定ステップと、
生成された前記配布状況テーブルの前記稼動情報として前記端末が停止している旨が記憶されていないと判定された場合において、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されているか否かを判定する第２の判定ステップと、
前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されていると判定された場合において、前記端末を識別するための端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる配布ステップと、
を実行させることを特徴とするソフトウェア配布プログラム。
【請求項８】
請求項７に記載されたソフトウェア配布プログラムを格納したコンピュータの読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの配布対象端末とのネットワーク利用状況、対象端末の状態を考慮した上で、ソフトウェア配布を実現するソフトウェア配布サーバ、ソフトウェア配布方法、ソフトウェア配布プログラム、および記録媒体に関するものである。
【背景技術】
【０００２】
従来の技術では、端末へのソフトウェア配布について、あらかじめ定義した時間帯によって配布制限を行う方法が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１６６９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した特許文献１に開示された技術では、ソフトウェア配布における事前定義可能な項目として、時間帯によるソフトウェアの配布制限を設けているが、本項目についての考慮のみでは下記（１）〜（３）に示すような課題がある。
【０００５】
まず、（１）対象端末とのネットワーク利用状況が考慮されておらず、ネットワーク帯域の圧迫を引き起こす可能性がある。次に、（２）対象端末の状況（稼働中、休止中、停止中）に対する考慮がなされていない為、稼働中端末に対してソフトウェアの配布によって生じる対象端末負荷の懸念、休止中端末への優先配布、停止中端末への配布等の制御ができない。さらに、（３）対象端末の選定方法が順次的であり、隣接端末へのソフトウェア配布が集中する可能性がある。
【０００６】
本発明の目的は、これらの従来技術の課題を解決し、ネットワーク帯域の圧迫や対象端末負荷増大、ソフトウェア配布進捗の遅延、隣接端末へのソフトウェア配布集中を引き起こすことなく、ソフトウェア配布を実行することを可能とするソフトウェア配布サーバ、ソフトウェア配布方法、ソフトウェア配布プログラム、および記録媒体を提供することである。
【課題を解決するための手段】
【０００７】
上述した目的を達成するために、本発明にかかるソフトウェア配布サーバは、ネットワークを介して接続された端末にソフトウェアを配布するソフトウェア配布サーバであって、前記端末を識別するための端末識別情報と、少なくとも前記端末が停止しているか否かを示す稼動状況を含む前記端末の稼働情報と、前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを示す帯域情報とを対応付けて記憶する配布状況テーブルを記憶する記憶部と、前記端末の稼動状況を判定し、判定した結果を前記稼動情報に記憶させるステータス判定部と、前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしているか否かを判定し、判定した結果を前記帯域情報に記憶させる帯域判定部と、前記稼動情報として前記端末が停止している旨が記憶されていない場合であって、前記帯域情報として前記ネットワークの帯域が前記ソフトウェアの配布に必要な条件を満たしている旨が記憶されている場合に、前記端末識別情報によって識別される前記端末に前記ソフトウェアを配布させる配布制御部と、を備えることを特徴とする。
【０００８】
また、本発明は、上記ソフトウェア配布サーバで実行されるソフトウェア配布方法、ソフトウェア配布プログラム、およびこれを格納した記録媒体である。
【発明の効果】
【０００９】
本発明によれば、ネットワーク帯域の圧迫、対象端末負荷増大、ソフトウェア配布進捗の遅延、隣接端末へのソフトウェア配布の集中を引き起こすことなく、ソフトウェア配布を実行することが可能となり、その結果として高品質なソフトウェア配布を提供できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態におけるソフトウェア配布システムのシステム全体構成図である。
【図２】端末管理テーブルの例を示す図である。
【図３】配布計画テーブルの例を示す図である。
【図４】配布状況テーブルの例を示す図である。
【図５】必要帯域テーブルの例を示す図である。
【図６Ａ】配布制御部が行うソフトウェア配布処理の処理手順を示すフローチャートである。
【図６Ｂ】配布制御部が行うソフトウェア配布処理の処理手順を示すフローチャートである。
【図６Ｃ】配布制御部が行うソフトウェア配布処理の処理手順を示すフローチャートである。
【図７】端末ステータス判定部が行うステータス判定処理の処理手順を示すフローチャートである。
【図８】端末遠隔操作部が行う端末遠隔操作処理の処理手順を示すフローチャートである。
【図９】帯域判定部が行う帯域判定処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、この発明にかかるソフトウェア配布サーバ、ソフトウェア配布方法、ソフトウェア配布プログラム、および記録媒体の実施の形態を詳細に説明する。
【００１２】
図１は、本実施の形態におけるソフトウェア配布システム１０００のシステム全体構成図である。図１に示すように、ソフトウェア配布システム１０００は、ソフトウェア配布サーバ１０１と対象端末群１１４とを有し、これらが互いにネットワーク網１１３によって接続されている。なお、ネットワーク網１１３は、例えば、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等の一般的な通信回線網である。まず、ソフトウェア配布サーバ１０１について説明する。
【００１３】
ソフトウェア配布サーバ１０１は、対象端末群１１４を構成するそれぞれの端末（以下、対象端末、あるいは単に端末等と呼ぶ。）に対して所定のソフトウェアを配布するものである。図１に示すように、ソフトウェア配布サーバ１０１は、主制御部１０２Ａと、記憶部１０２Ｂとを有している。
【００１４】
主制御部１０２Ａは、例えば、ＣＰＵ（Central  Processing  Unit）等の演算装置から構成され、後述する各種の処理やソフトウェア配布サーバ１０１を構成する各部の動作を制御するものである。主制御部１０２Ａは、機能的には、配布制御部１０３と、端末ステータス判定部１０４と、端末遠隔操作部１０５と、帯域判定部１０６とを有している。
【００１５】
配布制御部１０３は、端末管理テーブル１０８、配布計画テーブル１１０、配布状況テーブル１１１等を参照することにより、端末の状況を確認しつつソフトウェアを配布するものである。配布制御部１０３が行う具体的な処理については、図６Ａ〜６Ｃを用いて後述する。
【００１６】
端末ステータス判定部１０４は、配布制御部１０３がソフトウェアを配布する際における端末の状況を判定するものである。端末ステータス判定部１０４が行う具体的な処理については、図７を用いて後述する。
【００１７】
端末遠隔操作部１０５は、ソフトウェアが配布される対象端末を遠隔起動または停止させるものである。端末遠隔操作部１０５が行う具体的な処理については、図８を用いて後述する。
【００１８】
帯域判定部１０６は、ソフトウェアが配布される際に必要となるネットワーク帯域が確保されていることを確認するものである。帯域判定部１０６は、が行う具体的な処理については、図９を用いて後述する。
【００１９】
なお、ソフトウェア配布サーバ１０１が有する各部は、配布制御部１０３、端末ステータス判定部１０４、端末遠隔操作部１０５、および帯域判定部１０６の各機能を実現するためのプログラムにより実行される。これらのプログラムは、例えば、上述した各部を含むモジュール構成となっており、実際のハードウェアとしては、ＣＰＵ等の制御部がＨＤＤ（Hard  Disk  Drive）等の記録装置からこれらのプログラムを読み出して実行することにより、上記各部が主記憶装置上にロードされ、配布制御部１０３、端末ステータス判定部１０４、端末遠隔操作部１０５、および帯域判定部１０６の各部が主記憶装置上に生成されるようになっている。
【００２０】
また、上述したプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disc）等のコンピュータで読み取り可能な記録媒体に記録されて提供することも可能である。さらに、これらのプログラムを、ネットワーク経由でダウンロードさせて提供または配布するように構成してもよい。続いて、記憶部１０２Ｂについて説明する。
【００２１】
記憶部１０２Ｂは、例えば、ＨＤＤ（Hard  Disk  Drive）等の記憶装置から構成され、後述する各種の処理で用いられる種々のデータを記憶するものである。記憶部１０２Ｂは、端末管理ＤＢ（Data  Base）１０７と、端末管理テーブル１０８と、ソフト配布ＤＢ１０９と、計画テーブル１１０と、配布状況テーブル１１１と、帯域テーブル１１２とを有している。図１に示すように、端末管理テーブル１０８は、端末管理ＤＢ１０７の内部に記憶され、計画テーブル１１０と、配布状況テーブル１１１と、帯域テーブル１１２とは、ソフト配布ＤＢ１０９の内部に記憶されている。
【００２２】
図２は、端末管理テーブル１０８の例を示す図である。図２に示すように、端末管理テーブル１０８は、ソフトウェアの配布対象となる端末を識別するための端末ＩＤと、その端末のＩＰアドレスと、その端末のＭＡＣアドレスと、その端末を使用する社員を識別するための社員番号と、その社員の氏名と、その社員が所属する部署と、その社員の連絡先とが対応付けて記憶されている。図２では、例えば、端末ＩＤ「１０００００１」、ＩＰアドレス「１０．１００．１．１」、ＭＡＣアドレス「００−２２−１５−０３−０７−Ｄ１」の端末は、「経理部」に所属する社員番号「３０００１」の「田中一郎」が使用している端末であり、連絡先が「００−１１１１−２２２２」であることを示している。この端末管理テーブル１０８に記憶されるデータは、あらかじめ管理者等によって設定されているものとする。続いて、配布計画テーブル１１０について説明する。
【００２３】
図３は、配布計画テーブル１１０の例を示す図である。図３に示すように、配布計画テーブル１１０は、配布するソフトウェアを識別するためのソフトウェア名と、そのソフトウェアの配布を開始する日時を示す開始日時と、そのソフトウェアの配布を終了する日時を示す終了日時と、そのソフトウェアの配布対象となる端末の指定方法を示す端末選択方式と、指定された端末の状態を示す対象端末ステータスとが対応付けて記憶されている。図３では、例えば、「ソフトウェアＡ」のソフトウェアは、「２０１０年１２月２４日  ０：００」に配布が開始され、「２０１０年１２月２４日  １１：００」にその配布が終了する予定であり、そのソフトウェアの端末への配布方法は「ランダム」方式であり、その「ランダム」方式によって指定された配布対象端末のうち、「休止」状態、「停止」状態、「稼動」状態のステータスとなっている端末に対して、そのソフトウェアを配布することを示している。
【００２４】
なお、配布計画テーブル１１０が有する端末選択方式には、「ランダム」方式と「順次」方式とが設定されている。「ランダム」方式は、配布対象端末が、端末対象ステータスに設定されたステータスを満たしている端末であれば、任意の順序でソフトウェアを配布することを示している。また、「順次」方式は、配布対象端末が、端末対象ステータスに設定されたステータスを満たしている場合に、例えば、端末ＩＤ順、ＩＰアドレス順、ＭＡＣアドレス順、あるいは社員番号順等、あらかじめ定められた順序でソフトウェアを配布することを示している。
【００２５】
また、配布計画テーブル１１０が有する対象端末ステータスは、ソフトウェアを配布する際に必要な端末の状況を示すものであり、「停止」状態、「休止」状態、「稼動」状態の３つの状態、あるいはこれらの組み合わせが設定されている。「停止」状態は、配布対象端末が稼動していない状態であり、「休止」状態は、配布対象端末が稼動しているものの、アクティブではない状態であり、「稼動」状態は、配布対象端末が稼動し、アクティブな状態であることを示している。したがって、上述した「ソフトウェアＡ」を配布する場合の例では、これら３つの状態にある配布対象端末に対して配布されることとなる。この配布計画テーブル１１０に記憶されるデータは、上述した端末管理テーブル１０８と同様に、あらかじめ管理者等によって設定されているものとする。続いて、配布状況テーブル１１１について説明する。
【００２６】
図４は、配布状況テーブル１１１の例を示す図である。図４に示すように、配布状況テーブル１１１は、端末を識別するための端末ＩＤ端末ＩＤと、ソフトウェアのインストール対象となっている端末であることを示すインストールフラグと、その端末の状態を示す端末ステータスと、そのソフトウェアをインストールする場合に必要となるネットワーク上の帯域を満たしていることを示す帯域フラグと、配布計画テーブル１１０が有する端末対象ステータスを満たすことを示す対象ステータスとが対応付けて記憶されている。図４では、例えば、端末ＩＤ「１０００００１」の端末は、あるソフトウェア（例えば、ソフトウェアＡ）のインストール対象であり、現在は「休止」状態であることを示しており、端末が接続されたネットワークの現在の回線状況は、ソフトウェアを配布するための帯域を満たしている状態であり（ソフトウェアの配布に必要な帯域が確保された状態にあり）、現在の端末ステータスは、配布計画テーブル１１０が有する対象端末ステータスを満たしている（含まれている）状態にあることを示している。
【００２７】
なお、配布状況テーブル１１１が有するインストールフラグには、「Ｙ」（インストール対象である）、「Ｎ」（インストール対象でない）、「−」（未設定）のいずれかが設定されている。また、配布状況テーブル１１１が有する端末ステータスには、上述した配布計画テーブル１１０が有する対象端末ステータスと同様に、「休止」状態、「停止」状態、「稼動」状態の各ステータスのほか、「休止」状態にある配布対象端末を遠隔操作によって起動している状態を示す「遠隔起動」状態のいずれかが設定されている。
【００２８】
さらに、配布状況テーブル１１１が有する帯域フラグには、「Ｙ」（端末が接続されたネットワークの現在の回線がソフトウェアの配布に必要な帯域が確保された状態である）、「Ｎ」（端末が接続されたネットワークの現在の回線がソフトウェアの配布に必要な帯域が確保されていない状態である）、「−」（未設定）のいずれかが設定されている。また、配布状況テーブル１１１が有する対象ステータスには、「Ｙ」（現在の端末の状態が、配布計画テーブル１１０が有する対象端末ステータスを満たしている（含まれている））、「Ｎ」（現在の端末の状態が、配布計画テーブル１１０が有する対象端末ステータスを満たしていない（含まれていない））、「−」（未設定）のいずれかが設定されている。この配布状況テーブル１１１に記憶されるデータは、端末の状態に応じて設定あるいは更新されるものとする。また、配布状況テーブル１１１は、配布されるソフトウェアごとに作成されるものとする。続いて、必要帯域テーブル１１２について説明する。
【００２９】
図５は、必要帯域テーブル１１２の例を示す図である。図５に示すように、必要帯域テーブル１１２は、配布されるソフトウェアのソフトウェア名と、そのソフトウェアを配布して端末にインストールする場合の必要帯域（帯域条件）とが対応付けて記憶されている。図５では、例えば、「ソフトウェアＡ」を配布対象端末にインストールする場合には、少なくともネットワーク回線の帯域が１０ＫＢ必要であることを示している。この必要帯域テーブル１１２に記憶されるデータは、上述した端末管理テーブル１０８等と同様に、あらかじめ管理者等によって設定されているものとする。続いて、本実施の形態におけるソフトウェア配布システム１０００で行われる各種の処理について説明する。
【００３０】
図６Ａ〜Ｃは、配布制御部１０３が行うソフトウェア配布処理の処理手順を示すフローチャートである。図６Ａに示すように、配布制御部１０３は、配布計画テーブル１１０にアクセスし、ソフトウェア名と、開始時間と、終了時間とを読み込み、現時点でソフトウェアの配布予定となっているソフトウェア名を抽出して、その対象があるか否かを判定し（ステップＳ６０１）、対象がないと判定した場合（ステップＳ６０１；Ｎｏ）、図６に示すソフトウェア配布処理を終了させる。なお、現時点でソフトウェアの配布予定となっているか否かは、例えば、タイマ（不図示）の時刻が開始時間となっているか、タイマの日付が開始日となっているか等によって判定する。
【００３１】
一方、配布制御部１０３は、対象があると判定した場合（ステップＳ６０１；Ｙｅｓ）、そのソフトウェアのソフトウェア名をキーとして、ソフト配布ＤＢ２０３に、そのソフトウェア向けの配布状況テーブル１１１が存在するか否かを判定し（ステップＳ６０２）、そのソフトウェア向けの配布状況テーブル１１１が存在しないと判定した場合（ステップＳ６０２；Ｎｏ）、そのソフトウェアについて、端末管理テーブル１０８が有する端末ＩＤで識別される全ての端末を含む配布状況テーブル１１１を生成し（ステップＳ６０３）、ステップＳ６０４に進む。一方、配布制御部１０３は、そのソフトウェア向けの配布状況テーブル１１１が存在したと判定した場合（ステップＳ６０２；Ｙｅｓ）、そのままステップＳ６０４に進む。
【００３２】
次に、配布制御部１０３は、配布計画テーブル１１０にアクセスし、そのソフトウェアのソフトウェア名をキーとして、そのソフトウェアに対応する端末選択方式と対象端末ステータスとを抽出する（ステップＳ６０４）。そして、配布制御部１０３は、さらに配布状況テーブル１１１にアクセスし、抽出した端末選択方式をキーとして、そのソフトウェアの配布候補となる端末ＩＤを抽出し、その対象があるか否かを判定する（ステップＳ６０５）。このとき、既にそのソフトウェアがインストールされている端末への配布をしないように、配布状況テーブル１１１のインストールフラグ「Ｙ」、帯域フラグ「−」以外、対象ステータス「−」以外となっている端末は除外するものとする。
【００３３】
そして、配布制御部１０３は、そのソフトウェアの配布候補となる端末ＩＤを抽出し、その対象がないと判定した場合（ステップＳ６０５；Ｎｏ）、図６Ａ〜Ｃに示したソフトウェア配布処理を終了させる。
【００３４】
一方、配布制御部１０３は、そのソフトウェアの配布候補となる端末ＩＤを抽出し、その対象があると判定した場合（ステップＳ６０５；Ｙｅｓ）、ステップＳ６０５において抽出した端末ＩＤをキーとして端末管理テーブル１０８にアクセスし、その端末ＩＤに対応するＩＰアドレスとＭＡＣアドレスを抽出し（ステップＳ６０６）、図６Ｂに示すステータス判定処理（ステップＳ６０７）に進む。
【００３５】
図７は、端末ステータス判定部１０４が行うステータス判定処理の処理手順を示すフローチャートである。図７に示すように、端末ステータス判定部１０４は、ステップＳ６０６で取得したＩＰアドレスに対して、１バイトのｐｉｎｇパケットを５回送信し、端末ステータスを確認する（ステップＳ６０８）。具体的には、端末ステータス判定部１０４は、ステップＳ６０６で取得したＩＰアドレスに対して、コマンド「ｐｉｎｇ−ｌｌｔ  ５＜ＩＰアドレス＞｜ｆｉｎｄ“ｂｙｔｅｓ=１”＞ＮＵＬ」を発行し、そのリターンコードがゼロであるか否かを判定する。
【００３６】
そして、端末ステータス判定部１０４は、発行したコマンドに対するリターンコードがゼロではないと判定した場合（ステップＳ７０１；Ｎｏ）、その端末は停止状態にあると判断し、その端末ＩＤに対応する配布状況テーブル１１１の端末ステータスを「停止」に更新する（ステップＳ７０２）。
【００３７】
一方、端末ステータス判定部１０４は、発行したコマンドに対するリターンコードがゼロであると判定した場合（ステップＳ７０１；Ｙｅｓ）、その端末は少なくとも稼動した状態になると判断し、さらにその端末上でスクリーンセーバプロセスが稼動しているか否かを判定する（ステップＳ７０３）。具体的には、端末ステータス判定部１０４は、その端末上で稼動しているプロセスの中から、拡張子が「．ｓｃｒ」であるプロセスがあるか否かを判定する。
【００３８】
そして、端末ステータス判定部１０４は、その端末上でスクリーンセーバプロセスが稼動していると判定した場合（ステップＳ７０３；Ｙｅｓ）、その端末は休止状態にあると判断し、その端末ＩＤに対応する配布状況テーブル１１１の端末ステータスを「休止」に更新する（ステップＳ７０４）。
【００３９】
一方、端末ステータス判定部１０４は、その端末上でスクリーンセーバプロセスが稼動していないと判定した場合（ステップＳ７０３；Ｎｏ）、その端末は稼動状態にあると判断し、その端末ＩＤに対応する配布状況テーブル１１１の端末ステータスを「稼動」に更新する（ステップＳ７０５）。そして、ステップＳ７０２、Ｓ７０４、Ｓ７０５のいずれかの処理が終了すると、図７に示したステータス判定処理のすべての処理が終了する。続いて、図６Ｂに戻り、ステップＳ６０７以降の各処理について説明する。
【００４０】
図６Ｂにおいて、ステータス判定処理（ステップＳ６０７）が終了すると、配布制御部１０３は、ステップＳ６０５において抽出した端末ＩＤをキーとして、その端末ＩＤに対応する端末ステータスと、ステップＳ６０４で抽出した対象端末ステータスとを比較し、両者が一致するか否か（あるいは端末ステータスが対象端末ステータスに含まれるか否か）を判定する（ステップＳ６０８）。
【００４１】
そして、配布制御部１０３は、両者が一致しない（あるいは端末ステータスが対象端末ステータスに含まれない）と判定した場合（ステップＳ６０８；Ｎｏ）、その端末ＩＤに対応する配布状況テーブル１１１の対象ステータスを「Ｎ」に更新し、ステップＳ６０５に戻って以降の処理を繰り返す。
【００４２】
一方、配布制御部１０３は、両者が一致する（あるいは端末ステータスが対象端末ステータスに含まれる）と判定した場合（ステップＳ６０８；Ｙｅｓ）、その端末ＩＤに対応する配布状況テーブル１１１の対象ステータスを「Ｙ」に更新し、さらに、その端末ＩＤに対応する配布状況テーブル１１１の端末ステータスが「停止」となっているか否かを判定する（ステップＳ６０９）。
【００４３】
配布制御部１０３は、その端末ＩＤに対応する配布状況テーブル１１１の端末ステータスが「停止」となっていると判定した場合（ステップＳ６０９；Ｙｅｓ）、ステップＳ６１０に進み、端末遠隔操作部１０５は端末遠隔操作処理を行う（ステップＳ６１０）
図８は、端末遠隔操作部１０５が行う端末遠隔操作処理の処理手順を示すフローチャートである。この端末遠隔操作処理は、上述したステップＳ６０９または後述するステップＳ６１６の後続処理となっており、各処理が実行されるタイミングによって、端末を遠隔起動するか否かが分かれることとなる。
【００４４】
図８に示すように、端末遠隔操作部１０５は、ステップＳ６０５において抽出した端末ＩＤをキーとして、その端末ＩＤに対応する配布状況テーブル１１１の端末ステータスが「停止」となっているか否か判定する（ステップＳ８０１）。
【００４５】
端末遠隔操作部１０５は、その端末ＩＤに対応する配布状況テーブル１１１の端末ステータスが「停止」となっていると判定した場合（ステップＳ８０１；Ｙｅｓ）、ステップＳ６０６で取得した端末のＭＡＣアドレスに対して、ＷａｋｅＯｎＬａｎ仕様に準拠したＭａｇｉｃＰａｃｋｅｔを送信し（ステップＳ８０２）、配布状況テーブル１１１の端末ステータスを「遠隔起動」に更新する（ステップＳ８０３）。
【００４６】
一方、端末遠隔操作部１０５は、その端末ＩＤに対応する配布状況テーブル１１１の端末ステータスが「停止」となっておらず、「遠隔起動」となっていると判定した場合（ステップＳ８０１；Ｎｏ）、ステップＳ６０６で取得した端末のＩＰアドレスに対して、ｓｈｕｔｄｏｗｎ命令を発行し（ステップＳ８０４）、配布状況テーブル１１１の端末ステータスを「−」に更新する（ステップＳ８０５）。
【００４７】
このステップＳ８０３またはステップＳ８０５の処理が終了すると、図８に示した全ての処理が終了する。なお、図８に示す端末遠隔操作処理のステップＳ８０２およびＳ８０３の各処理は、ステップＳ６０９の処理においてＹｅｓと判定された際に実行され、ステップＳ８０４およびＳ８０５の各処理は、その後、配布状況テーブル１１１の端末ステータスが「遠隔起動」に更新された状態で、ステップＳ６１６の処理においてＹＥＳと判定された場合に行われることとなる。続いて、図６Ｂに戻って、ステップＳ６１１以降の処理について説明する。
【００４８】
ステップＳ６０９において、ステップＳ６０５において抽出した端末ＩＤに対応する配布状況テーブル１１１の端末ステータスが「停止」となっていないと判定した場合（ステップＳ６０９；Ｎｏ）、またはステップＳ６１０において、端末遠隔操作処理が行われると、帯域判定部１０６は、帯域判定処理を行う（ステップＳ６１１）。
【００４９】
図９は、帯域判定部１０６が行う帯域判定処理の処理手順を示すフローチャートである。図９に示すように、帯域判定部１０６は、ステップＳ６０１において配布制御部１０３がキーとしたソフトウェアのソフトウェア名をキーとして、必要帯域テーブル１１２にアクセスし、そのソフトウェア名に対応する必要帯域を抽出する（ステップＳ９０１）。
【００５０】
次に、帯域判定部１０６は、ステップＳ６０６において配布制御部１０３が取得したＩＰアドレスに対して、６４キロバイトのｐｉｎｇパケットを５回送信し、その平均応答時間を取得する(ステップＳ９０２)。具体的には、帯域判定部１０６は、そのＩＰアドレスに対して、コマンド「ｐｉｎｇ−ｌ  ６４０００−ｔ  ５  ＜ＩＰアドレス＞｜ｆｉｎｄ  “Ａｖｅｒａｇｅ”」を発行して平均応答時間を取得する。
【００５１】
そして、帯域判定部１０６は、帯域速度を算出する（ステップＳ９０３）。具体的には、帯域判定部１０６は、計算式「（６４ＫＢ×２）÷平均応答時間＝帯域速度」を用いて帯域速度を計算する。
【００５２】
次に、帯域判定部１０６は、ステップＳ９０１で抽出した必要帯域と、ステップＳ９０３で算出した帯域速度とを比較して帯域速度が必要帯域以上であるか否かを判定し（ステップＳ９０４）、帯域速度が必要帯域以上であると判定した場合（ステップＳ９０４；Ｙｅｓ）、配布状況テーブル１１１の帯域フラグを「Ｙ」に更新する（ステップＳ９０５）。
【００５３】
一方、帯域判定部１０６は、帯域速度が必要帯域以上でないと判定した場合（ステップＳ９０４；Ｎｏ）、配布状況テーブル１１１の帯域フラグを「Ｎ」に更新する（ステップＳ９０６）。このステップＳ９０５またはＳ９０６の処理が終了すると、図９に示す全ての処理が終了する。続いて、図６Ｂに戻り、ステップＳ６１２以降の処理について説明する。
【００５４】
ステップＳ６１１において帯域判定処理が終了すると、配布制御部１０３は、配布状況テーブル１１１から帯域フラグを読み込み、帯域フラグが「Ｙ」であるか否か判定し(ステップＳ６１２)、帯域フラグが「Ｙ」であると判定した場合(ステップＳ６１２；Ｙｅｓ)、図６Ｃに示すステップＳ６１３に進む。一方、配布制御部１０３が、帯域フラグが「Ｙ」でないと判定した場合(ステップＳ６１２；Ｎｏ)、ステップＳ６０５に戻って以降の処理を繰り返す。
【００５５】
そして、配布制御部１０３は、ステップＳ６０６で取得したＩＰアドレスを有する端末に対して、ステップＳ６０１において配布対象としたソフトウェアを送信してそのリターンコードを取得し、取得したリターンコードが「０」であるか否かを判定する（ステップＳ６１３）。
【００５６】
配布制御部１０３は、取得したリターンコードが「０」であると判定した場合（ステップＳ６１３；Ｙｅｓ）、さらに、ソフトウェアのインストール処理を行ってそのリターンコードを取得し、取得したリターンコードが「０」であるか否かを判定する（ステップＳ６１４）。一方、配布制御部１０３が、取得したリターンコードが「０」でないと判定した場合（ステップＳ６１３；Ｎｏ）、ステップＳ６０５に戻って以降の処理を繰り返す。
【００５７】
そして、配布制御部１０３は、取得したリターンコードが「０」であると判定した場合（ステップＳ６１４；Ｙｅｓ）、ソフトウェアが正常にインストールできたと判断し、配布状況テーブル１１１のインストールフラグを「Ｙ」に更新する（ステップＳ６１５）。一方、配布制御部１０３が、取得したリターンコードが「０」でないと判定した場合（ステップＳ６１４；Ｎｏ）、ステップＳ６０５に戻って以降の処理を繰り返す。
【００５８】
次に、配布制御部１０３は、配布状況テーブル１１１の端末ステータスを読み込み、端末ステータスが「遠隔起動」であるか否かを判定し（ステップＳ６１６）、端末ステータスが「遠隔起動」であると判定した場合（ステップＳ６１６；Ｙｅｓ）、端末遠隔操作部１０５は、図８に示した端末遠隔操作処理を行う（ステップＳ６１７）。このとき、上述したように、ステップＳ８０３において配布状況テーブル１１１の端末ステータスが「遠隔起動」に更新されているので、この段階では、端末遠隔操作処理のうちのステップＳ８０４およびＳ８０５の各処理が行われることとなる。一方、配布制御部１０３は、端末ステータスが「遠隔起動」でないと判定した場合（ステップＳ６１６；Ｎｏ）、何もせずにステップＳ６１８に進む。
【００５９】
配布制御部１０３は、配布計画テーブル１１０にアクセスし、インストールしたソフトウェアのソフトウェア名に対応する開始時間および終了時間の読み込み処理を実行し、現在の時刻が計画時間内であるか否かを判定し（ステップＳ６１８）、現在の時刻が計画時間内であると判定した場合（ステップＳ６１８；Ｙｅｓ）、ステップＳ６０５に戻って以降の処理を繰り返す。一方、配布制御部１０３が、現在の時刻が計画時間内でないと判定した場合（ステップＳ６１８；Ｎｏ）、配布状況テーブル１１１の帯域フラグを「−」に更新するとともに、対象ステータスを「−」に更新してリセットする（ステップＳ６１９）。このステップＳ６１９の処理が終了すると、図６Ａ〜６Ｃに示した全ての処理が終了する。
【００６０】
このように、本実施の形態におけるソフトウェア配布システムでは、ソフトウェア配布の条件として必要となるネットワーク帯域を予め設定し、ソフトウェア配布時におけるネットワーク帯域を測定し、設定した条件を満たす場合のみソフトウェア配布を行い、ネットワーク帯域が混み合っている場合には、ソフトウェア配布は見送られる。このことにより、ソフトウェア配布によるネットワーク帯域の圧迫を防止することができる。すなわち、ネットワーク帯域の圧迫、対象端末負荷増大、ソフトウェア配布進捗の遅延、隣接端末へのソフトウェア配布の集中を引き起こすことなく、ソフトウェア配布を実行することが可能となり、その結果として高品質なソフトウェア配布を提供できる。
【００６１】
また、ソフトウェア配布の対象端末を端末状況（稼働中、休止中、停止中）毎に選定させる。このことによって、稼働中の対象端末への負荷の増大を防止し、停止中の対象端末を遠隔起動してソフトウェア配布を実行させることで、ソフトウェア配布の進捗遅延を防止するといった、端末状況の応じたソフトウェアの配布を実施することができる。
【００６２】
さらに、対象端末の選定方式として順次選択とランダム選択を指定可能としており、順次選択時には、例えば、ある部署の配置されている同じネットワーク領域にある端末へのソフトウェア配布によって、その部署のネットワーク帯域が込み合ってレスポンスの低下を招く等、インストール対象となる端末の場所が１箇所に集中してしまうことによる弊害を回避することも可能となる。
【００６３】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。例えば、ソフトウェアの配布対象となる対象端末の台数が多く処理負荷が大きい場合には、ソフトウェア配布サーバ１０１が有する複数の機能を物理的に２以上のサーバに分ける等、実施の形態に示される全構成要素からいくつかの構成要素を変更したり、構成要素を適宜組み合わせても良い。
【符号の説明】
【００６４】
１０００  ソフトウェア配布システム
１０１  ソフトウェア配布サーバ
１０２Ａ  主制御部
１０２Ｂ  記憶部
１０３  配布制御部
１０４  端末ステータス判定部
１０５  端末遠隔操作部
１０６  帯域判定部
１０７  端末管理ＤＢ
１０８  端末管理テーブル
１０９  ソフト配布ＤＢ
１１０  計画テーブル
１１１  配布状況テーブル
１１２  帯域テーブル
１１３  ネットワーク網
１１４  対象端末群。
【図１】
0005839664.tif 000002
【図２】
0005839664.tif 000003
【図３】
0005839664.tif 000004
【図４】
0005839664.tif 000005
【図５】
0005839664.tif 000006
【図６Ａ】
0005839664.tif 000007
【図６Ｂ】
0005839664.tif 000008
【図６Ｃ】
0005839664.tif 000009
【図７】
0005839664.tif 000010
【図８】
0005839664.tif 000011
【図９】
0005839664.tif 000012