(57)【特許請求の範囲】
【請求項１】
クライアントに対してソフトウェアを配布する際に、管理サーバが、前記ソフトウェアの配布の中継を担う代表クライアントを、前記クライアントの中から選定し、前記選定した代表クライアントを介して前記ソフトウェアを配布する配布管理方法であって、
前記管理サーバは、
各クライアントのリソースに関する情報が登録されたインベントリ情報を有するとともに、各クライアントが代表クライアントに選定された際の配布状況の実績として、クライアント１台当たりに要した配布時間の実績値である実績平均配布時間が登録された配布履歴情報を有する記憶部を備え、
前記管理サーバは、
配布する対象クライアント数、平均配布時間、前記インベントリ情報の所定値を指定したポリシー、および配布が完了するまでに要する目標の配布完了時間、を代表クライアントの選定条件とし、
前記選定条件に合致するクライアントを、前記インベントリ情報および前記配布履歴情報を参照して選定し、
前記選定したクライアントを、代表クライアントとする
ことを特徴とする配布管理方法。
【請求項２】
前記ポリシーにおけるインベントリ情報はＣＰＵの稼働率であり、
前記管理サーバは、
前記インベントリ情報に登録されているクライアントごとのＣＰＵ稼働率が、前記ＣＰＵ稼働率の所定値よりも低い稼働率であるクライアントであること、
前記配布履歴情報における実績の平均配布時間が短いクライアントであること、
を満たすクライアントを代表クライアントの候補として所定台数選定し、
当該選定した代表クライアントの候補が各クライアントに配布可能な配布可能台数を、当該代表クライアント候補の実績平均配布時間と前記目標の配布完了時間とから算出し、
前記算出した配布可能台数と、前記選定条件における対象クライアント台数とを比較して、代表クライアントの台数を決定する
ことを特徴とする請求項１に記載の配布管理方法。
【請求項３】
前記管理サーバは、
複数の前記中継を担う代表クライアントをひとつのグループとしてグループ化し、前記グループ化された各代表クライアントに同一の配布指令を送信し、
前記配布指令を識別するジョブＩＤと、前記グループを識別するグループＩＤと、前記各代表クライアントと、前記各代表クライアントが配布する配布対象のクライアントと、前記配布指令の結果通知期限とを関連付けて、実行ジョブ情報として前記記憶部に登録する
ことを特徴とする請求項１に記載の配布管理方法。
【請求項４】
前記管理サーバは、
前記各代表クライアントから配布指令の配布結果を受理すると、ジョブ実行結果情報として前記配布結果を前記記憶部に登録し、
前記各代表クライアントから未配布のクライアントがあるか否かの問い合わせを受理すると、前記実行ジョブ情報と前記ジョブ実行結果情報とを検索して未配布のクライアントがあるか否かを判定し、
前記未配布のクライアントがある場合に、前記各代表クライアントが配布するクライアントの持ち分を前記グループ内で変更する
ことを特徴とする請求項３に記載の配布管理方法。
【請求項５】
前記クライアントは、
配布指令毎の前記グループの複数の代表クライアント名を有する代表グループ情報をクライアントの記憶部に登録し、
前記代表グループ情報に基づいて、配布結果の通知先である代表クライアントを切り替える
ことを特徴とする請求項３に記載の配布管理方法。
【請求項６】
前記クライアントは、配布結果通知先である全ての代表クライアント端末に対して配布結果を通知できなかった場合、その配布結果を未通知結果情報として前記クライアントの記憶部に登録し、
前記管理サーバは、前記実行ジョブ情報を検索し、配布結果通知期限をすぎているジョブがある場合に、結果収集の代表クライアントを設定し前記結果収集の代表クライアントに対して未通知結果を収集する命令である結果収集命令を送信し、
前記結果収集の代表クライアントは、前記結果収集命令受理すると、収集対象となるクライアントに対して配布結果を要求する通知命令である結果通知命令を送信し、
前記クライアントは、結果通知命令を受信すると、前記未通知結果情報を元に該当する配布結果を前記結果収集の代表クライアントに対して送信する
ことを特徴とする請求項３に記載の配布管理方法。
【請求項７】
前記管理サーバは、前記代表クライアントの候補を選定する際に、
情報システムとして推奨している推奨セキュリティ情報を記憶しているリファレンス装置から、前記推奨セキュリティ情報を受信するとともに、各クライアントからクライアントのセキュリティ情報を受信し、
前記推奨セキュリティ情報と、前記クライアントのセキュリティ情報とを比較することにより、セキュリティ対策状態が前記リファレンス装置の状態に保たれているクライアントを前記代表クライアントの候補として選定する
ことを特徴とする請求項２に記載の配布管理方法。
【請求項８】
前記インベントリ情報には、各クライアントの電源状態が含まれ、
前記管理サーバは、
各クライアントの出張中、休暇中、通常勤務のスケジュール管理情報を管理するスケジュール管理サーバから、各クライアントのスケジュール情報を受信して、前記記憶部にスケジュール管理情報を記憶し、
前記代表クライアントの候補を選定する際に、前記インベントリ情報を参照して、電源状態が起動中であり、かつ、前記スケジュール管理情報を参照して通常勤務以外であるクライアントを前記代表クライアントの候補として選定する
ことを特徴とする請求項２に記載の配布管理方法。
【請求項９】
前記インベントリ情報には、各クライアントのデスクトップ端末であるか否かの端末の機種種別が含まれ、
前記管理サーバは、前記代表クライアントの候補を選定する際に、
前記インベントリ情報を参照して、デスクトップ端末であるクライアントを前記代表クライアントの候補として選定する
ことを特徴とする請求項２に記載の配布管理方法。
【請求項１０】
クライアントと、前記クライアントに対してソフトウェアを配布する際に、前記ソフトウェアの配布の中継を担う代表クライアントを、前記クライアントの中から選定し、前記選定した代表クライアントを介して前記ソフトウェアを配布する管理サーバとを有する配布管理システムであって、
前記管理サーバは、
各クライアントのリソースに関する情報が登録されたインベントリ情報を有するとともに、各クライアントが代表クライアントに選定された際の配布状況の実績として、クライアント１台当たりに要した配布時間の実績値である実績平均配布時間が登録された配布履歴情報を有する記憶部を備え、
前記管理サーバは、
配布する対象クライアント数、平均配布時間、前記インベントリ情報の所定値を指定したポリシー、および配布が完了するまでに要する目標の配布完了時間、を代表クライアントの選定条件とし、
前記選定条件に合致するクライアントを、前記インベントリ情報および前記配布履歴情報を参照して選定し、
前記選定したクライアントを、代表クライアントとする
ことを特徴とする配布管理システム。
【請求項１１】
前記ポリシーにおけるインベントリ情報はＣＰＵの稼働率であり、
前記管理サーバは、
前記インベントリ情報に登録されているクライアントごとのＣＰＵ稼働率が、前記ＣＰＵ稼働率の所定値よりも低い稼働率であるクライアントであること、
前記配布履歴情報における実績の平均配布時間が短いクライアントであること、
を満たすクライアントを代表クライアントの候補として所定台数選定し、
当該選定した代表クライアントの候補が各クライアントに配布可能な配布可能台数を、当該代表クライアント候補の実績平均配布時間と前記目標の配布完了時間とから算出し、
前記算出した配布可能台数と、前記選定条件における対象クライアント台数とを比較して、代表クライアントの台数を決定する
ことを特徴とする請求項１０に記載の配布管理システム。
【請求項１２】
前記管理サーバは、
複数の前記中継を担う代表クライアントをひとつのグループとしてグループ化し、前記グループ化された各代表クライアントに同一の配布指令を送信し、
前記配布指令を識別するジョブＩＤと、前記グループを識別するグループＩＤと、前記各代表クライアントと、前記各代表クライアントが配布する配布対象のクライアントと、前記配布指令の結果通知期限とを関連付けて、実行ジョブ情報として前記記憶部に登録する
ことを特徴とする請求項１０に記載の配布管理システム。
【請求項１３】
前記管理サーバは、
前記各代表クライアントから配布指令の配布結果を受理すると、ジョブ実行結果情報として前記配布結果を前記記憶部に登録し、
前記各代表クライアントから未配布のクライアントがあるか否かの問い合わせを受理すると、前記実行ジョブ情報と前記ジョブ実行結果情報とを検索して未配布のクライアントがあるか否かを判定し、
前記未配布のクライアントがある場合に、前記各代表クライアントが配布するクライアントの持ち分を前記グループ内で変更する
ことを特徴とする請求項１２に記載の配布管理システム。
【請求項１４】
前記クライアントは、
配布指令毎の前記グループの複数の代表クライアント名を有する代表グループ情報をクライアントの記憶部に登録し、
前記代表グループ情報に基づいて、配布結果の通知先である代表クライアントを切り替える
ことを特徴とする請求項１２に記載の配布管理システム。
【請求項１５】
前記クライアントは、配布結果通知先である全ての代表クライアント端末に対して配布結果を通知できなかった場合、その配布結果を未通知結果情報として前記クライアントの記憶部に登録し、
前記管理サーバは、前記実行ジョブ情報を検索し、配布結果通知期限をすぎているジョブがある場合に、結果収集の代表クライアントを設定し前記結果収集の代表クライアントに対して未通知結果を収集する命令である結果収集命令を送信し、
前記結果収集の代表クライアントは、前記結果収集命令受理すると、収集対象となるクライアントに対して配布結果を要求する通知命令である結果通知命令を送信し、
前記クライアントは、結果通知命令を受信すると、前記未通知結果情報を元に該当する配布結果を前記結果収集の代表クライアントに対して送信する
ことを特徴とする請求項１２に記載の配布管理システム。
【請求項１６】
クライアントに対してソフトウェアを配布する際に、前記ソフトウェアの配布の中継を担う代表クライアントを、前記クライアントの中から選定し、前記選定した代表クライアントを介して前記ソフトウェアを配布する配布管理サーバであって、
前記配布管理サーバは、
各クライアントのリソースに関する情報が登録されたインベントリ情報を有するとともに、各クライアントが代表クライアントに選定された際の配布状況の実績として、クライアント１台当たりに要した配布時間の実績値である実績平均配布時間が登録された配布履歴情報を有する記憶部を備え、
前記配布管理サーバは、
配布する対象クライアント数、平均配布時間、前記インベントリ情報の所定値を指定したポリシー、および配布が完了するまでに要する目標の配布完了時間、を代表クライアントの選定条件とし、
前記選定条件に合致するクライアントを、前記インベントリ情報および前記配布履歴情報を参照して選定し、
前記選定したクライアントを、代表クライアントとする
ことを特徴とする配布管理サーバ。
【請求項１７】
前記ポリシーにおけるインベントリ情報はＣＰＵの稼働率であり、
前記配布管理サーバは、
前記インベントリ情報に登録されているクライアントごとのＣＰＵ稼働率が、前記ＣＰＵ稼働率の所定値よりも低い稼働率であるクライアントであること、
前記配布履歴情報における実績の平均配布時間が短いクライアントであること、
を満たすクライアントを代表クライアントの候補として所定台数選定し、
当該選定した代表クライアントの候補が各クライアントに配布可能な配布可能台数を、当該代表クライアント候補の実績平均配布時間と前記目標の配布完了時間とから算出し、
前記算出した配布可能台数と、前記選定条件における対象クライアント台数とを比較して、代表クライアントの台数を決定する
ことを特徴とする請求項１６に記載の配布管理サーバ。
【請求項１８】
前記配布管理サーバは、
複数の前記中継を担う代表クライアントをひとつのグループとしてグループ化し、前記グループ化された各代表クライアントに同一の配布指令を送信し、
前記配布指令を識別するジョブＩＤと、前記グループを識別するグループＩＤと、前記各代表クライアントと、前記各代表クライアントが配布する配布対象のクライアントと、前記配布指令の結果通知期限とを関連付けて、実行ジョブ情報として前記記憶部に登録する
ことを特徴とする請求項１６に記載の配布管理サーバ。
【請求項１９】
前記配布管理サーバは、
前記各代表クライアントから配布指令の配布結果を受理すると、ジョブ実行結果情報として前記配布結果を前記記憶部に登録し、
前記各代表クライアントから未配布のクライアントがあるか否かの問い合わせを受理すると、前記実行ジョブ情報と前記ジョブ実行結果情報とを検索して未配布のクライアントがあるか否かを判定し、
前記未配布のクライアントがある場合に、前記各代表クライアントが配布するクライアントの持ち分を前記グループ内で変更する
ことを特徴とする請求項１８に記載の配布管理サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの配布管理方法、配布管理システム、および配布管理サーバに関わり、特に、中継を担う代表クライアントの選出の技術およびソフトウェアの配布結果を収集する技術に関する。
【背景技術】
【０００２】
ソフトウェアの配布管理システムにおいて、配布管理サーバとクライアント端末の間に中継システムを設けることでソフトウェア配布時におけるネットワークの負荷を軽減させる技術がある（例えば、特許文献１参照）。また、中継システムを明示的に設けずに、クライアント端末間での応答を行うことによって中継システムの代替を担う代表のクライアント端末（以下、代表クライアント端末という。）を設けることによって、代表クライアント端末を自由に設定でき、配布管理システムにおけるコストの削減を図るものがある（例えば、特許文献２参照）。
【特許文献１】特開平９−１４６８５８号公報
【特許文献２】特開２００６−３０９４１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、前記した中継システムを設ける場合、中継システムは常に稼働していなければならず、また少数のクライアント端末に対しても中継システムを設置する必要があり運用コストの面で優れていないという問題がある。
【０００４】
また、代表クライアント端末を設定する方法では、中継システムを設けなくてよい点でコスト面では優れているが、クライアント端末同士での通信によって１つの代表クライアント端末を決定しているため、配布管理サーバが配布するソフトウェアの容量や重要度、また、配布するクライアント端末数に相応しいクライアント端末が代表クライアント端末として選定されていない場合がある。
【０００５】
さらに、クライアント端末はエンドユーザが使用しているため、代表クライアント端末からソフトウェアを受信してからインストール、配布結果の通知までの間に、代表クライアント端末のシャットダウンや障害、移設による配布管理サーバへのソフトウェアの配布結果通知の遅延といった配布効率低下の問題が発生する。
【０００６】
本発明は、前記の課題を解決するための発明であって、配布管理サーバとクライアント端末の間に中継システムを設けず、代表クライアント端末によるソフトウェアの配布効率の高い配布管理システムの実現、および、クライアント端末の状態に依存せずに確実に配布結果を収集できる配布管理システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
前記した課題を解決するために、本発明の配布管理サーバでは、データベースに格納された各クライアント端末のソフトウェア配布履歴（例えば、ジョブ実行履歴テーブル３００）に基づく代表クライアント端末の決定方法であって、ソフトウェアの配布中継を行う複数の代表クライアント端末をグループ化し、各代表クライアント端末の配布実行状況を配布管理サーバが監視し、実行状況に応じて各代表クライアント端末が配布するクライアント端末の割り振りを変更することを特徴とする。
【０００８】
また、ソフトウェア配布指令ごとにグループ化された代表クライアント端末のリストをクライアント端末が記憶しておくことで、代表クライアント端末の状態変化による配布結果を通知する代表クライアント端末を変更できることを特徴とする。
【０００９】
さらに、全ての代表クライアント端末とネットワーク接続ができないことによって、クライアント端末が配布結果を通知できない状態の場合には、配布管理サーバが新たに配布結果通知用の代表クライアント端末を再設定することで、配布結果が確実に配布管理サーバに通知されることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、配布管理サーバとクライアント端末の間に中継システムを設けず、選出された代表クライアント端末によりソフトウェアの配布効率を高くできる。また、クライアント端末の状態に依存せずに確実に配布結果を収集できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を実施するための実施形態を図面に基づいて詳細に説明する。
図１は、配布管理システムのシステム構成を示す図である。配布管理システムは、配布管理サーバ１０１と複数のクライアント端末１１３を有し、これらがネットワーク１１２を介して接続されている。クライアント端末１１３の数は、図１に示す数に限定されない。
【００１２】
配布管理サーバ１０１は、プロセッサ１０２とメモリ１０３を有し、通信インターフェイス１０９を介してＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等のネットワーク１１２に接続される。また、ディスクインターフェイス１１０を介してハードディスクドライブ（ＨＤＤ）等の記憶装置によって実現されたデータベース１１１に接続する。また、クライアント端末１１３は、プロセッサ１１５とメモリ１１６を有し、通信インターフェイス１１４を介してＬＡＮ，ＷＡＮ等のネットワーク１１２に接続される。
【００１３】
配布管理サーバ１０１のプロセッサ１０２は、メモリ１０３に格納される各種プログラムを実行する。データベース１１１は、配布管理サーバ１０１が処理を実行するための各種データを保存する。メモリ１０３は、配布管理サーバ１０１が処理を実行する各種プログラムおよび一時的なデータを保持する。同様に、クライアント端末１１３のプロセッサ１０２は、メモリ１１６に格納される各種プログラムを実行する。メモリ１１６は、クライアント端末１１３が処理を実行する各種プログラムおよび一時的なデータを保持する。
【００１４】
配布管理サーバ１０１のデータベース１１１には、インベントリテーブル（インベントリ情報）２００（図２参照）、ジョブ実行履歴テーブル（配布履歴情報）３００（図３参照）、実行ジョブテーブル（実行ジョブ情報）９００（図９参照）、ジョブ実行結果テーブル（ジョブ実行結果情報）１７００（図１７参照）が格納される。各テーブルの詳細は、後記する。なお、インベントリとは、情報機器の資産情報（リソース情報）、例えば、クライアント端末１１３の機種情報、そこに搭載されているＣＰＵのクロック数、メモリ容量、ハードディスク容量などに関する情報である。
【００１５】
配布管理サーバ１０１のメモリ１０３には、代表クライアント選定部１０４（図４参照）、ジョブ配布部１０５（図６参照）、ジョブ実行管理部１０６（図１６参照）、ジョブ結果収集部１０７（図１８参照）、インベントリ情報管理部１０８が格納される。
【００１６】
代表クライアント選定部１０４は、ソフトウェアをクライアント端末１１３へ配布（送信）する際に、管理者からの配布指令を元にクライアント端末１１３の中から配布中継を担うクライアント端末１１３である代表クライアント端末を選定する処理を行う。
【００１７】
ジョブ配布部１０５は、選定された代表クライアント端末の代表クライアントグループリスト７０１（図７参照）、および、配布対象クライアントリスト８０１（図８参照）を生成し、選定された代表クライアント端末に対して、配布するソフトウェアおよびソフトウェアの配布に必要な各種情報を送信し、送信したジョブ情報をデータベース１１１の実行ジョブテーブル９００（図９参照）に格納する処理を行う。なお、代表クライアントグループリスト７０１および配布対象クライアントリスト８０１の詳細は後記する。
【００１８】
ジョブ実行管理部１０６は、代表クライアント端末から通知された結果をデータベース１１１のジョブ実行結果テーブル１７００（図１７参照）へ格納し、各代表クライアント端末の配布状況を管理する処理を行う。
【００１９】
ジョブ結果収集部１０７は、結果通知期限を超過した際に、配布結果を配布管理サーバ１０１に通知していないクライアント端末１１３の配布結果情報を収集し、データベース１１１のジョブ実行履歴テーブル３００（図３参照）を更新する処理を行う。
【００２０】
インベントリ情報管理部１０８は、クライアント端末１１３のマシン属性情報（ホスト名、ＩＰ（Internet Protocol）アドレス、ＣＰＵ（Central Processing Unit）、メモリ容量、空きハードディスク容量、ＣＰＵ利用率、メモリ使用率）を収集しデータベース１１１のインベントリテーブル２００（図２参照）に格納する処理を行う。
【００２１】
なお、メモリ１０３に格納された代表クライアント選定部１０４、ジョブ配布部１０５、ジョブ実行管理部１０６、ジョブ結果収集部１０７、インベントリ情報管理部１０８は、配布管理サーバ１０１のプロセッサ１０２が実行することにより実現される。
【００２２】
クライアント端末１１３のメモリ１１６には、配布管理サーバ１０１から受け取った配布指令を他のクライアント端末１１３へ中継し、または、受け取ったソフトウェアをインストールし、インストール結果を配布管理サーバ１０１へ通知するジョブ管理部１１７（図１０〜図１５、図１９参照）と、クライアント端末１１３のマシン属性情報を配布管理サーバ１０１へアップロード（送信）するためのインベントリ収集部１２４とが格納される。
【００２３】
ジョブ管理部１１７は、ジョブ中継プログラム１１８（図１０参照）、ジョブ実行プログラム１１９（図１１、図１２参照）、ジョブ結果収集プログラム１２０（図１９参照）、実行済みジョブリスト１２１（図１３参照）、代表グループリスト（代表グループ情報）１２２（図１４参照）、未通知結果リスト（未通知結果情報）１２３（図１５参照）を有する。
【００２４】
ジョブ中継プログラム１１８は、クライアント端末１１３が配布管理サーバ１０１に代表クライアント端末として選定された場合に、配布管理サーバ１０１から受け取った配布指令を、配布対象リストを元に他のクライアント端末１１３に配布する機能、および配布結果を配布管理サーバ１０１へ通知する機能を有したプログラムである。
【００２５】
ジョブ実行プログラム１１９は、代表クライアント端末から配布された配布指令を元にソフトウェアのインストールおよびそのインストール結果を代表クライアント端末へ通知する機能を有したプログラムである。
【００２６】
ジョブ結果収集プログラム１２０は、ジョブ結果収集部１０７の結果収集命令を元に、結果通知期限を過ぎても配布管理サーバ１０１に通知していない配布指令ＩＤと一致する配布結果を代表クライアント端末へ通知する機能を有したプログラムである。
【００２７】
実行済みジョブリスト１２１（図１３参照）は、ジョブ実行プログラム１１９によって実行（ソフトウェアのインストール）が行われた配布指令ＩＤが記録されたリストである。代表グループリスト１２２（図１４参照）は、各配布指令の配布指令ＩＤ、代表クライアントグループのグループＩＤ、代表クライアント端末として割り当てられているクライアント端末１１３のホスト名、ＩＰアドレスが記録されたリストである。未通知結果リスト１２３（図１５参照）は、配布指令の結果を代表クライアント端末に通知できなかった配布指令の配布指令ＩＤと通知する結果情報とを記録したリストである。
【００２８】
図２は、インベントリテーブルの一例を示す図である。データベース１１１（図１参照）に格納されるインベントリテーブル２００は、管理対象となる各クライアント端末１１３のホスト名２０１、ＩＰアドレス２０２、ＣＰＵクロック数２０３、メモリ容量２０４、空きハードディスク（ＨＤＤ）容量２０５、現在のクライアント端末１１３のＣＰＵ使用率２０６およびメモリ使用率２０７といったクライアント端末１１３に関する各種マシン属性情報が記憶されている。インベントリテーブル２００は、図１の配布管理サーバ１０１のインベントリ情報管理部１０８が、クライアント端末１１３のインベントリ収集部１２４からアップロードされたインベントリ情報に基づき更新する。
【００２９】
なお、インベントリ情報管理部１０８によるクライアント端末１１３のインベントリ情報の取得は、所定期間ごと定期的に行うようにしてもよいし、不定期に行うようにしてもよい。
【００３０】
図３は、ジョブ実行履歴テーブルの一例を示す図である。データベース１１１（図１参照）に格納されるジョブ実行履歴テーブル３００は、配布するソフトウェアのファイルサイズ（ファイル容量）、配布するクライアント端末１１３の対象数ごとに、各クライアント端末１１３が代表クライアント端末に選定された際に、クライアント端末１台あたりにソフトウェアを配布し結果が配布管理サーバ１０１に通知されるまでに費やした平均時間を管理するテーブルであり、過去の配布実績情報に該当する。例えば、ジョブ実行履歴テーブル３００には、ソフトウェアのファイルサイズ３０１と、ソフトウェアを配布する対象クライアント数３０２と、各クライアント端末１１３のホスト名３０３と、各クライアント端末１１３が代表クライアント端末になった際にソフトウェアを配布するのに費やした１台あたりの平均配布時間３０４が記憶されている。
【００３１】
ジョブ実行履歴テーブル３００は、代表クライアント選定部１０４が代表クライアント端末を選定する際に参照され、ジョブ結果収集部１０７によって各クライアント端末１１３から通知された結果情報に基づき更新される。なお、このジョブ実行履歴テーブル３００は、各代表クライアント端末の組み合わせによるソフトウェアの配布実績を管理するようにしてもよい。また、ジョブ実行履歴テーブル３００において、登録されていないクライアント端末１１３に関しては、インベントリ情報に基づいて、初期設定してもよい。
【００３２】
図４は、代表クライアント選定部の処理を示すフローチャートである。配布管理サーバ１０１（図１参照）の代表クライアント選定部１０４は、ソフトウェアをクライアント端末１１３へ配布（送信）する際に、システム管理者からの配布指令を元にクライアント端末１１３の中から配布中継を担うクライアント端末１１３（以下、代表クライアント端末という。）を選定する処理を行う。具体的には、代表クライアント選定部１０４は、システム管理者がモニタ、マウス、キーボードといった入出力装置を利用して、各クライアント端末１１３に配布するソフトウェア、配布対象となるクライアント端末１１３、代表選定時のポリシー、配布完了時間、および結果通知期限を指定し実行することを契機として開始される。
【００３３】
代表クライアント選定部１０４は、各クライアント端末１１３に対してインベントリ情報の収集、通知命令を送信し（ステップＳ４０１）、クライアント端末１１３から受信したインベントリ情報をインベントリテーブル２００（図２参照）へ格納する（ステップＳ４０２）。次に、配布するソフトウェアのファイルサイズ３０１、配布する対象クライアント数３０２、ポリシーの３つを代表クライアント端末の選定条件としてジョブ実行履歴テーブル３００（図３参照）から条件に合致するホスト名３０３および平均配布時間３０４を取得する（ステップＳ４０３）。
【００３４】
ここで、ポリシーとは、ＣＰＵ使用率、メモリ使用率それぞれの使用率の上限値を指定したものであり、例えば、ＣＰＵ使用率を３０％という入力を受け付けた場合に代表クライアント選定部１０４は、インベントリテーブル２００のＣＰＵ使用率２０６を参照し、ＣＰＵ使用率が３０％以下のクライアント端末１１３に関するジョブ実行履歴をジョブ実行履歴テーブル３００から取得することになる。
【００３５】
そして、取得した履歴情報を元に平均配布時間が短いクライアント端末１１３から順に、配布の中継を担う代表クライアント候補として、当該配布指令において選定する代表クライアントを台数分選択する（ステップＳ４０４）。台数分選択とは、１台以上の代表クライアントを選定し、ジョブの実行に用いることを意味する。配布完了時間と平均配布時間を元に各クライアント端末１１３が配布完了時間までに配布可能なクライアント端末数の最大数を算出する（ステップＳ４０５）。配布可能なクライアント最大数（配布可能なクライアント数の合計数）が配布対象クライアント数より小さいか否かを判定する（ステップＳ４０６）。配布可能なクライアント最大数が配布対象クライアント数より小さくなければ（ステップＳ４０６，Ｎｏ）、選択されたクライアント端末１１３を、代表クライアント候補から中継を担う代表クライアント端末として選定する。
【００３６】
一方、配布可能なクライアント最大数が配布対象クライアント数より小さい場合（ステップＳ４０６，Ｙｅｓ）、配布条件を満たさないと判定し、選定する代表クライアント数を１つ増やし（ステップＳ４０７）、再度、代表クライアント候補として代表クライアント端末の選定をする（ステップＳ４０４）。なお、代表クライアント端末の選定後に、実際に配布完了時間内にソフトウェアの配布が完了するか否かを、配布シミュレーションにより行うようにしてもよい。
【００３７】
図５は、代表クライアン端末選定時のシステム構成を示す説明図である。代表クライアント端末は、サブネットワーク１（５０２）、サブネットワーク２（５０４）、サブネットワーク３（５０６）ごとに選定される。サブネットワークごとに選定された代表クライアント端末には、配布管理サーバ１０１が一意のグループＩＤが割り振られた代表クライアントグループ５０１，５０３，５０５を設定し、配布管理サーバ１０１から受信したソフトウェアをクライアント端末１１３へ送信する中継の役割を担うことになる。
【００３８】
配布管理サーバ１０１は、代表クライアントグループごとの代表クライアント端末に対して同一の配布指令を送信する。このように複数の代表クライアント端末を１つの代表クライアントグループとして設定することで、配布管理サーバ１０１が生成する配布指令が１つで済むというメリットがある。また、代表クライアント端末にシャットダウンや障害が発生した場合でも、同一代表クライアントグループ内の別代表クライアント端末が継続して配布指令のクライアント端末１１３に対して配布することができる。
【００３９】
図６は、ジョブ配布部の処理を示すフローチャートである。配布管理サーバ１０１（図１参照）のジョブ配布部１０５は、代表クライアント選定部１０４による代表クライアント端末の選定完了を契機として実行される。まず、ジョブ配布部１０５は、全ての代表のクライアント端末１１３とのネットワーク接続確認をし（ステップＳ６０１）、全ての代表のクライアント端末１１３と接続が可能か否かを判定する（ステップＳ６０２）。１台でも接続不可の状態であった場合（ステップＳ６０２，Ｎｏ）には、代表クライアント端末の再設定として処理を終了し、代表クライアント選定部１０４に処理を戻す（ステップＳ６０７）。全て接続可能であった場合（ステップＳ６０２，Ｙｅｓ）には、代表クライアントグループリスト７０１（図７参照）を生成し（ステップＳ６０３）、および、配布対象クライアントリスト８０１（図８参照）を生成し（ステップＳ６０４）、配布するソフトウェアと共にジョブ中継指令として全ての代表クライアント端末へ送信する（ステップＳ６０５）。送信完了後は、実行した指令に関する情報を実行ジョブテーブル９００（図９参照）に格納する（ステップＳ６０６）。
【００４０】
図７は、代表クライアントグループリストの一例を示す図である。ジョブ配布部１０５（図１参照）がジョブ実行時に生成した代表クライアントグループリスト７０１は、実行する配布指令を識別するために割り振られた一意に決定するジョブＩＤと、代表クライアントグループに割り振られたグループＩＤ、および代表クライアント端末に選定されたクライアント端末１１３のホスト名とＩＰアドレスの一覧が設定されたリストである。
【００４１】
図８は、配布対象クライアントリストの一例を示す図である。ジョブ配布部１０５（図１参照）がジョブ実行時に生成した配布対象クライアントリスト８０１は、実行する配布指令を識別するために割り振られた一意に決定するジョブＩＤと、ソフトウェアを配布する対象となるクライアント端末１１３のホスト名とＩＰアドレスおよびどの代表クライアント端末に優先的に配布させるかを設定した配布優先代表クライアントの一覧が設定されたリストである。
【００４２】
ここで、配布優先代表クライアントの設定は、代表クライアント選定部１０４で算出した各代表クライアント端末が配布可能なクライアント端末数の最大数（最大値）をもとに、一覧の先頭から順に最大値を分割して割り当てていく。また、配布状況は、代表クライアント端末がクライアント端末へのソフトウェアの配布有無のフラグを設定するために用いる。具体的には、代表クライアント端末が、クライアント端末にソフトウェアの配布（送信）が完了すると、配布状況に配布完了フラグが設定される。
【００４３】
図９は、実行ジョブテーブルの一例を示す図である。データベース１１１に格納される実行ジョブテーブル９００には、実行された配布指令ごとに、配布指令のジョブＩＤ９０１、設定した代表クライアントグループのグループＩＤ９０２、グループに所属する代表クライアント端末のホスト名を格納する代表クライアント９０３、ソフトウェアを配布するクライアント端末１１３のホスト名を格納する配布対象クライアント９０４、配布指令の結果通知期限を表すジョブ結果通知期限９０５、および実際に配布指令が完了したジョブ完了時間９０６が記憶されている。
【００４４】
例えば、図９に示すジョブＩＤが１０１の場合、代表クライアント９０３は、クライアントＡ、クライアントＣ、クライアントＦがあり、図７に示す代表クライアントグループリスト７０１に対応している。同様に、配布対象クライアント９０４は、クライアントＢ、クライアントＤ、クライアントＥ、クライアントＧなどがあり、図８に示す配布対象クライアントリスト８０１に対応する。ジョブ結果通知期限９０５は、２００８年１月１日１７：００（０８／０１／０１  １７：００）であるが、ジョブ完了時間９０６から、２００８年１月１日１３：００（０８／０１／０１  １３：００）に完了していることがわかる。
【００４５】
図１０は、ジョブ中継プログラムの処理を示すフローチャートである。クライアント端末１１３のジョブ管理部１１７におけるジョブ中継プログラム１１８は、代表クライアント端末として、配布管理サーバ１０１から配布指令を受信した際、または、クライアント端末１１３から配布したソフトウェアのインストール結果（配布結果）を受信した際に実行される。
【００４６】
ジョブ中継プログラム１１８は、配布管理サーバ１０１もしくはクライアント端末１１３から指令を受信すると、受信した指令がジョブ中継命令（配布指令）か否かを判定する（ステップＳ１００１）。ジョブ中継指令であった場合（ステップＳ１００１，Ｙｅｓ）、受信した配布対象クライアントリスト８０１からジョブを配布するクライアントを選定する（ステップＳ１００２）。具体的には、受信した配布対象クライアントリスト８０１から自ホストが配布優先代表に設定されているクライアント端末１１３のホスト名、ＩＰアドレスの情報をリストのＩＤ順に１つずつ取得する。
【００４７】
一方、受信した指令がジョブ中継指令で無かった場合（ステップＳ１００１，Ｎｏ）、つまり、クライアント端末１１３からの結果情報を受信した場合には、受信した結果を配布管理サーバ１０１へそのまま送信し処理を終了する（ステップＳ１０１１）。
【００４８】
次に、ステップＳ１００２の処理後、配布対象クライアントとネットワーク接続が可能か否かを判定する（ステップＳ１００３）。具体的には、配布対象クライアントリスト８０１から取得したホスト、つまりソフトウェアを配布するクライアント端末１１３に対してネットワーク接続を確認する。接続が可能であった場合（ステップＳ１００３，Ｙｅｓ）、配布するソフトウェアと代表クライアントグループリスト７０１を送信し（ステップＳ１００４）、送信完了後に配布結果として配布完了フラグを設定する（ステップＳ１００５）。そして、配布結果および配布対象としたクライアント端末１１３のホスト名、ジョブＩＤを配布管理サーバ１０１へ送信する（ステップＳ１００６）。
【００４９】
一方、クライアント端末１１３とネットワーク接続ができなかった場合（ステップＳ１００３，Ｎｏ）、配布結果として送信失敗フラグを設定し（ステップＳ１０１２）、ステップＳ１００６の処理に進む。
【００５０】
ステップＳ１００６の処理後、全ての優先クライアントに送信完了したか否かを判定する（ステップＳ１００７）。具体的には、配布対象クライアントリスト８０１から自ホストが配布優先代表に設定されている全てのクライアント端末１１３に対して配布処理を行ったか判定する。送信完了していない場合（ステップＳ１００７，Ｎｏ）、ステップＳ１００２へ処理に戻る。全てのクライアント端末１１３に対して配布処理（送信）を完了した場合（ステップＳ１００７，Ｙｅｓ）、配布管理サーバ１０１に対して他代表クライアント端末のタスクでソフトウェアの配布がまだ完了していないクライアント端末１１３があるかどうか問い合わせを行う（ステップＳ１００８）。
【００５１】
問い合わせ結果として新たな配布対象クライアントリスト８０１を受信したか否かを判定する（ステップＳ１００９）。受信した場合（ステップＳ１００９，Ｙｅｓ）、ステップＳ１００２に戻る。そして、ステップ１００２において、ソフトウェアが未配布のクライアント端末１１３に対して配布処理を実行する。一方、問い合わせ結果として、新たな配布対象クライアントリストを受信しなかった場合（ステップＳ１００９，Ｎｏ）、すなわち、ジョブ終了命令を受信した際には、受信したジョブ中継指令を削除し（ステップＳ１０１０）、処理を終了する。
【００５２】
図１１および図１２は、ジョブ実行プログラムの処理を示すフローチャートである。クライアント端末１１３（図１参照）のジョブ管理部１１７におけるジョブ実行プログラム１１９は、代表クライアント端末からインストールするソフトウェアと代表クライアントグループリスト７０１（図７参照）を受信した際に実行され、代表クライアントグループリスト７０１からジョブＩＤを取得する（ステップＳ１１０１）。次に、取得したジョブＩＤがジョブ管理部１１７で管理されている実行済みジョブリスト１２１（図１３参照）に存在するか否かを判定する（ステップＳ１１０２）。取得したジョブＩＤが実行済みジョブリスト１２１に存在する場合には（ステップＳ１１０２，Ｎｏ）、受信した配布指令（受信したジョブ）を削除し（ステップＳ１１１０）、処理を終了する。取得したジョブＩＤが実行済みジョブリスト１２１に存在しない場合には（ステップＳ１１０２，Ｙｅｓ）、実行済みジョブリスト１２１に取得したジョブＩＤを登録する（ステップＳ１１０３）。そして、受信した代表クライアントグループリスト７０１から当該配布指令で選定されている全ての代表クライアント端末のホスト名、ＩＰアドレスを取得し、代表グループリスト１２２（図１４参照）を生成し登録する（ステップＳ１１０４）。その後、配布されたソフトウェアのインストールを実行する（ステップＳ１１０５）。
【００５３】
インストール処理が終わったら、自ホストが当該配布指令において代表クライアントであるか否かを代表クライアントグループリスト７０１から判定する（ステップＳ１１０６）。自ホストが代表クライアントであった場合は（ステップＳ１１０６，Ｙｅｓ）、ステップＳ１１０８へ進み、ジョブを受け取った代表クライアント端末のホスト名、自クライアント端末のホスト名（自ホスト名）、ジョブＩＤおよびインストール結果を配布管理サーバへ送信する。
【００５４】
一方、自ホストが代表クライアントで無かった場合には（ステップＳ１１０６，Ｎｏ）、インストール結果を代表クライアント端末経由で配布管理サーバ１０１に通知するために、配布指令を受け取った代表クライアント端末とのネットワーク接続確認する（ステップＳ１１０７）。代表クライアント端末との接続が可能であった場合は（ステップＳ１１０７，Ｙｅｓ）、ジョブを受け取った代表クライアント端末のホスト名、自クライアント端末のホスト名、ジョブＩＤおよびインストール結果を代表クライアントへ送信する（ステップＳ１１０８）。そして、配布管理サーバまたは代表クライアントへの結果送信完了後には、代表グループリスト１２２から当該ジョブの情報を削除し（ステップＳ１１０９）、処理を終了する。
【００５５】
万が一、配布結果を送信する代表クライアント端末が障害等で接続不可であった場合には（ステップＳ１１０７，Ｎｏ）、代表グループリスト１２２の当該代表クライアント端末に対して接続不可フラグ（接続不可情報）を設定する（ステップＳ１２０１）。そして、代表グループリスト１２２の全ての代表クライアント端末との接続が不可であるか否かを判定する（ステップＳ１２０２）。代表グループリスト１２２に設定してある全ての代表クライアント端末との接続が不可であった場合には（ステップＳ１２０２，Ｙｅｓ）、未通知結果リストにジョブＩＤとインストール結果を設定し（ステップＳ１２０３）、処理を終了する。
【００５６】
一方、まだ全ての代表クライアント端末との接続確認が終わっていない場合には（ステップＳ１２０２，Ｎｏ）、代表グループリスト１２２から次にネットワーク接続を試みる代表クライアント端末を選択し（ステップＳ１２０４）、処理をステップＳ１１０７へ進む。そして、ネットワーク接続確認し、接続可能であればその代表クライアント端末に対して結果を送信することになる。
【００５７】
図１３は、実行済みジョブリストの一例を示す図である。ジョブ管理部１１７の実行済みジョブリスト１２１は、受信し実行された配布指令のジョブＩＤが設定されたリストであり、同一配布指令の二重実行を防ぐために使用する。
【００５８】
図１４は、代表グループリストの一例を示す図である。ジョブ管理部１１７の代表グループリスト１２２は、受信した配布指令のジョブＩＤと、当該ジョブで設定されている代表クライアントグループのグループＩＤと、代表クライアント端末のホスト名および結果通知時の代表クライアント端末との接続状況が設定されたリストである。
【００５９】
図１５は、未通知結果リストの一例を示す図である。ジョブ管理部１１７の未通知結果リスト１２３は、クライアント端末１１３がソフトウェアのインストール結果を通知する際に全ての代表クライアント端末と接続ができなかった場合に生成され、ジョブＩＤおよびインストール結果が設定される。
【００６０】
図１６は、ジョブ実行管理部の処理を示すフローチャートである。配布管理サーバ１０１（図１参照）のジョブ実行管理部１０６は、代表クライアント端末からの配布指令におけるソフトウェアの未配布クライアントがあるかという問い合わせを受信（図１０、ステップＳ１００８における問い合わせに対応）、または、クライアント端末から代表クライアント端末を経由して通知されたインストール結果を受信した際（図１０、ステップＳ１０１１に対応）に実行される。
【００６１】
まず、ジョブ実行管理部１０６は、代表クライアント端末からインストール結果を受信したか否かを判定する（ステップＳ１６０１）。インストール結果であった場合には（ステップＳ１６０１，Ｙｅｓ）、受信した結果および受信した日時をジョブ実行結果テーブル１７００（図１７参照）へ格納し（ステップＳ１６０７）、処理を終了する。受信した情報がインストール結果でなかった場合（ステップＳ１６０１，Ｎｏ）、つまり代表のクライアント端末１１３からの問い合わせであった場合には、実行ジョブテーブル９００（図９参照）とジョブ実行結果テーブル１７００のホスト名をキーとして、ソフトウェアが配布されていないクライアント、つまりジョブ実行結果テーブル１７００にデータが格納されていないクライアント端末１１３を検索する（ステップＳ１６０２）。
【００６２】
そして、ソフトウェアの未配布のクライアント端末１１３があるか否かを判定する（ステップＳ１６０３）。未配布のクライアント端末１１３があった場合（ステップＳ１６０３，Ｙｅｓ）、未配布のクライアント端末１１３に関する配布優先代表の割り当てを問い合わせを行ってきた代表クライアント端末に変更をし（ステップＳ１６０４）、配布対象クライアントリスト８０１を更新する（ステップＳ１６０５）。
【００６３】
ここで、配布優先代表を変更する未配布クライアントの数は、現時刻から設定されている配布完了時間までの時間を、問い合わせをした代表クライアント端末の平均配布時間で割った数とする（小数点は切捨て）。また、配布完了予定時間を過ぎていた場合には未配布クライアント数を代表クライアント端末数で割った数とする。
【００６４】
更新した配布対象クライアントリスト８０１は、各代表クライアント端末に送信され（Ｓ１６０６）、処理を終了する。そして、各代表クライアント端末は更新された配布対象クライアントリスト８０１を元にソフトウェアの配布処理を実行することとなる。
【００６５】
一方、全てのクライアント端末１１３にソフトウェアの配布が完了している場合には（ステップＳ１６０３，Ｎｏ）、問い合わせをしてきた代表クライアント端末に対して配布指令の終了命令を送信し（ステップＳ１６０８）、処理を終了する。なお、ステップＳ１６０４およびステップＳ１６０６は、各代表クライアントが配布するクライアントの持ち分をグループ単位（グループＩＤ）内で変更していくことを意味している。
【００６６】
図１７は、ジョブ実行結果テーブルの一例を示す図である。データベース１１１（図１参照）に格納されるジョブ実行結果テーブル１７００は、代表クライアント端末から配布結果を受信することを契機として更新され、配布管理サーバ１０１から実行された各配布指令のクライアント端末１１３ごとの実行結果を格納することで、各配布指令の実行状況を確認することを目的としたテーブルである。ジョブ実行結果テーブル１７００には、ジョブＩＤ１７０１と、ジョブの実行対象となっている各クライアント端末１１３のホスト名１７０２と、実行状況を表すステータス１７０３と、当該クライアント端末１１３に対して配布を行った代表クライアント端末のホスト名を表す配布代表１７０４と、結果通知時刻１７０５とが記録される。
【００６７】
図１８は、ジョブ結果収集部の処理を示すフローチャートである。配布管理サーバ１０１（図１参照）のジョブ結果収集部１０７は、結果通知期限を過ぎた際に実行され（システム設定次第で期限前の任意のタイミングで実行されてもよい。）、配布管理サーバ１０１に対して配布結果を通知していないクライアント端末１１３の配布結果を収集することを目的とする。
【００６８】
まず、ジョブ結果収集部１０７は、実行ジョブテーブル９００（図９参照）を定期的に参照し（ステップＳ１８０１）、ジョブ結果通知期限９０５を超過している配布指令があるか否かを検索する（ステップＳ１８０２）。ジョブ結果通知期限９０５を超過している配布指令がある場合（ステップＳ１８０２，Ｙｅｓ）、ジョブＩＤ９０１を元に実行ジョブテーブル９００の配布対象クライアント９０４と、ジョブ実行結果テーブル１７００（図１７参照）のホスト名１７０２を取得し、配布結果の回収率を算出する（ステップＳ１８０３）。算出した回収率（ジョブ結果回収率）が１００％であるか否かを判定し（ステップＳ１８０４）、１００％で無い場合には（ステップＳ１８０４，Ｙｅｓ）、当該配布指令の代表クライアント端末に設定されている全てのクライアント端末１１３に対してネットワーク接続確認を行い、全ての代表クライアントと接続できないか否かを判定する（ステップＳ１８０５）。全ての代表クライアントと接続できた場合（ステップＳ１８０５，Ｎｏ）、代表クライアント端末に対して、結果収集命令として配布結果が未回収であるクライアントリストを送信する（ステップＳ１８０７）。一方、算出した回収率が１００％である場合（ステップＳ１８０４，Ｎｏ）、ステップＳ１８１０に進む。
【００６９】
全ての代表クライアント端末とネットワーク接続ができない場合には（ステップＳ１８０５，Ｙｅｓ）、新たに結果回収用の代表クライアント端末を選定し（ステップＳ１８０６）、選定された代表クライアント端末に対して配布結果未回収のクライアントリストを送信することとなる。
【００７０】
ここで、結果回収用の代表クライアント端末の選定方法は、ジョブ実行履歴テーブル３００（図３参照）における平均配布時間３０４が短いクライアント端末１１３から当該配布指令で設定されていた代表クライアント台数分を選定することとする。（当該配布指令実行時のポリシーを記憶しておき、そのポリシーを満たすマシン属性を所持するクライアント端末１１３を代表クライアント端末に選定してもよい。）。
【００７１】
そして、代表クライアント端末から配布結果が通知された際には、新たに取得した実行結果をジョブ実行結果テーブル１７００に格納し（ステップＳ１８０８）、結果収集命令を用いても配布結果が格納されないクライアント端末１１３に対しては、ステータスを失敗として配布結果を格納する（ステップＳ１８０９）。その後、ジョブ実行結果テーブル１７００の配布代表１７０４および結果通知時刻１７０５を元に、各代表クライアント端末の平均配布時間を算出し（ステップＳ１８１０）、ジョブ実行履歴テーブル３００の平均配布時間３０４を更新する（ステップＳ１８１１）。このように、配布結果履歴を管理していくことでより精度の高い配布指令の生成が可能となる。
【００７２】
図１９および図２０は、ジョブ結果収集プログラムの処理を示すフローチャートである。クライアント端末１１３（図１参照）のジョブ管理部におけるジョブ結果収集プログラム１２０は、配布管理サーバ１０１からの結果収集命令を受信した際、または、代表クライアント端末からの結果通知命令を受信した際に実行される。
【００７３】
まず、受信した情報が結果収集命令であるか否かを判定し（ステップＳ１９０１）、結果収集命令であった場合（ステップＳ１９０１，Ｙｅｓ）、受信した未回収クライアントリストからジョブＩＤ、および配布結果を回収するクライアント端末１１３のホスト名を順に選択する（ステップＳ１９０２）。選択したクライアント端末１１３とネットワーク接続できるか否かを確認する（ステップＳ１９０３）。ネットワーク接続が可能な場合は（ステップＳ１９０３，Ｙｅｓ）、ジョブＩＤを含む結果通知命令を当該クライアント端末１１３に対して送信する（ステップＳ１９０４）。その後、クライアント端末１１３からの通知された配布結果を受信し（ステップＳ１９０６）、配布管理サーバ１０１に対して結果を送信する（ステップＳ１９０７）。
【００７４】
全てのクライアント端末１１３の配布結果を受信したか否かを判定し（ステップＳ１９０８）、全てのクライアント端末１１３の配布結果の受信が完了していない場合には（ステップＳ１９０８，Ｎｏ）、ステップＳ１９０２に戻り、全てのクライアント端末１１３の配布結果の受信が完了した場合には（ステップＳ１９０８，Ｙｅｓ）、結果収集命令を削除し（ステップＳ１９０９）、処理を終了する。なお、ステップＳ１９０３において、クライアント端末１１３とのネットワーク接続ができなかった場合には（ステップＳ１９０３，Ｎｏ）、ステータスを取得失敗として、取得失敗フラグを設定し（ステップＳ１９０５）、ステップＳ１９０７に進む。
【００７５】
一方、ステップＳ１９０１において、受信した情報が結果収集命令でなかった場合（Ｓ１９０１，Ｎｏ）、すなわち、受信した情報が結果通知命令であった場合には、受信した結果通知命令のジョブＩＤを元に、図２０に示すように、未通知結果リスト１２３を参照する（ステップＳ２００１）。そして、未通知結果リスト１２３に受信したジョブＩＤと同一のジョブＩＤがあるか否かを判定する（ステップＳ２００２）。受信したジョブＩＤと同一のジョブＩＤが存在する場合は（ステップＳ２００２，Ｙｅｓ）、未通知結果リスト１２３に設定されているインストール結果を代表クライアント端末に対して送信し（ステップＳ２００３）、未通知結果リスト１２３から当該ジョブＩＤの情報を削除（ステップＳ２００４）、および代表グループリスト１２２から当該ジョブＩＤに関する情報を削除し（ステップＳ２００５）、処理を終了する。
【００７６】
受信したジョブＩＤが、未通知結果リスト１２３に無い場合には（ステップＳ２００２，Ｎｏ）、当該ジョブに関する結果は通知済みとし、結果通知済み情報を代表クライアント端末に対して送信する（ステップＳ２００６）。
【００７７】
前記した実施形態によれば、各クライアント端末１１３のソフトウェア配布実績情報および現在のインベントリ情報を元にした代表クライアント端末の選定および代表クライアントグループの設定と、配布管理サーバ１０１による配布状況の監視、再割り当てを行うことによって配布完了時間までのソフトウェア配布を効率良く行うことができる。
【００７８】
また、代表クライアントグループを設定することでクライアント端末１１３による配布結果を通知する際に、特定の代表クライアント端末に障害が発生した場合においても代表グループリスト１２２を元にした別代表クライアント端末からの配布結果の通知、および配布管理サーバ１０１における結果通知期限による結果回収用の代表クライアント端末の再選定により、配布結果の確実な取得を行うことが可能となる。
【００７９】
また、各クライアント端末が代表クライアント端末に選定された際のソフトウェアの配布実績情報を蓄積していくことでより精度の高い配布管理システムを実現することが可能となる。
【００８０】
（第１の変形例）
本実施形態の第１の変形例として、配布管理サーバ１０１の代表クライアント選定部１０４における代表クライアントの選定処理について、図２１から図２４を参照して説明する。代表クライアント選定部１０４は、リファレンスマシン１３０から情報システムとして推奨しているセキュリティ情報（推奨セキュリティ情報）と各クライアント端末１１３のセキュリティ情報をそれぞれ取得・比較し、セキュリティ対策状態がリファレンスマシン１３０の状態に保たれているクライアント端末１１３を代表クライアントとして選定することで、検疫を考慮した配布管理システムを実現することが可能となる。
【００８１】
図２１は、第１の変形例に係る配布管理システムのシステム構成を示す図である。図２１に示すように、図１と比較して、ネットワーク１１２にリファレンスマシン１３０が接続されている。また、配布管理サーバ１０１のデータベース１１１には、ソフトウェアインベントリテーブル２１０（図２２参照）が記憶されている。追加された構成要素には、符号を四角で囲んで明確にしている。図１に記載の同一構成品については、同一番号を付し、説明を省略する。
【００８２】
図２２は、ソフトウェアインベントリテーブルの一例を示す図である。データベース１１１に格納されるソフトウェアインベントリテーブル２１０は、任意のＩＤ番号２１１、リファレンスマシンおよび管理対象となる各クライアント端末のホスト名２１２、各ホストにインストールされているパッチ、ウィルス対策製品名２１３、および各パッチ、ウィルス対策製品名のバージョン情報２１４が記憶されている。ソフトウェアインベントリテーブル２１０は、配布管理サーバ１０１のインベントリ情報管理部１０８が、クライアント端末１１３のインベントリ収集部１２４からアップロードされたインベントリ情報に基づき更新する。
【００８３】
図２３は、第１の変形例に係る代表クライアント選定部の処理を示すフローチャートである。図４に記載の同一処理については、同一番号を付し説明を省略し、主に異なる処理を説明する。配布管理サーバ１０１の代表クライアント選定部１０４は、図４のステップＳ４０１の処理に加え、リファレンスマシン１３０に対してもインベントリ情報の収集、通知命令を送信し（ステップＳ４０１ａ）、各クライアント端末１１３およびリファレンスマシン１３０から受信したインベントリ情報をインベントリテーブル２００およびソフトウェアインベントリテーブル２１０に格納する（ステップＳ４０２ａ）。
【００８４】
ここで、リファレンスマシン１３０は、通常のクライアント端末１１３と同様の機能を有するマシンであり、情報システム内にあるマシンのセキュリティ対策状態として最低限保たれていなければならない状態が管理者によって管理されているマシンである。したがって、リファレンスマシン１３０にインストールされているパッチ情報やウィルス対策製品情報がインストールされていないクライアント端末はセキュリティ対策状態が低いマシンということになる。
【００８５】
次に、図４と同様に、代表クライアント端末の選定条件としてジョブ実行履歴テーブル３００（図３参照）から条件に合致するホスト名３０３および平均配布時間３０４を取得する（ステップＳ４０３）。そして、各クライアント端末１１３のセキュリティチェックを実施し、代表クライアント候補を限定する処理（図２４参照）を行う（ステップＳ４１０）。
【００８６】
図２４は、各クライアント端末のセキュリティチェックを実施し、代表クライアントの候補を限定する処理を示すフローチャートである。選定条件によって限定された代表クライアント候補のセキュリティ対策状態と、リファレンスマシン１３０のセキュリティ対策状態との比較を行い、代表クライアント候補について限定する。
【００８７】
代表クライアント選定部１０４は、セキュリティチェックが完了していない代表クライアント候補を１台選定する（ステップＳ４１１）。次に、リファレンスマシン１３０のソフトウェアインベントリ情報をＩＤ順に１つ参照する（ステップＳ４１２）。選択したクライアント端末１１３のソフトウェアインベントリ情報に、リファレンスマシン１３０と同一のソフトウェアインベントリ情報が存在するか否かを判定する（ステップＳ４１３）。存在する場合は（ステップＳ４１３，Ｙｅｓ）、リファレンスマシン１３０の全てのソフトウェアインベントリ情報とのチェックが完了したか否かかを判定し（ステップＳ４１４）、行っていない場合（ステップＳ４１４，Ｎｏ）、ステップＳ４１２の処理を戻る。そして、次のソフトウェアインベントリ情報を参照し、クライアント端末にインストールされているか再度チェックを行っていく。
【００８８】
また、代表クライアント候補にリファレンスマシン１３０のソフトウェアインベントリ情報が存在しない場合（ステップＳ４１３，Ｎｏ）、その代表クライアント候補は、セキュリティ対策状態が低いクライアントと判定され、代表クライアント候補から除外し、（ステップＳ４１６）、ステップＳ４１５に進む。
【００８９】
ステップＳ４１４において、リファレンスマシン１３０の全てのソフトウェアインベントリ情報のチェックが完了したら（ステップＳ４１４，Ｙｅｓ）、全ての代表クライアント候補についてセキュリティチェックが完了したか否かを判定する（ステップＳ４１５）、全ての代表クライアント候補についてセキュリティチェックが完了していない場合（ステップＳ４１５，Ｎｏ）、ステップＳ４１１に戻り、完了した場合（ステップＳ４１５，Ｙｅｓ）、ステップＳ４１０の一連の処理が終了する。
【００９０】
図２３に戻り、セキュリティチェックを全ての代表クライアント候補に対して完了した場合は処理を４０４に進む。このようにして、代表クライアント候補に対するセキュリティチェック処理を行った上で、図４で示したステップＳ４０４以降の処理を行い代表クライアントを台数分選択していく。
【００９１】
第１の変形例によれば、ソフトウェアを配布する場合に、各クライアントのセキュリティ対策状態をチェックすることで、例えば、セキュリティ対策状態が低いクライアントを代表クライアントとして選定してしまうことによって、配布するソフトウェアがウィルスに感染してしまい、ウィルス感染したソフトウェアが各クライアント端末に配布されてしまうといったセキュリティリスクを未然に防ぐことが可能となる。その結果として、安全性の高いソフトウェアの配布管理システムを実現することができる。また、第１の変形例に示したセキュリティチェックを取り入れた代表クライアントの選定は、結果収集時にも使用することが可能である。
【００９２】
（第２の変形例）
本実施形態の第２の変形例として、配布管理サーバ１０１の代表クライアント選定部１０４における代表クライアントの選定処理において、図２５から図２７を参照して説明する。代表クライアント選定部１０４は、各クライアント端末１１３の電源状態およびそのマシン（端末）を使用しているエンドユーザのスケジュール情報を取得しておき、利用されていないクライアント端末１１３を代表クライアントとして選定することで、ソフトウェアの配布処理中に代表クライアントを使用しているエンドユーザによるソフトウェアの配布効率の低下を防ぐことを考慮した配布管理システムを実現することが可能となる。
【００９３】
図２５は、第２の変形例に係る配布管理システムのシステム構成を示す図である。図２５に示すように、図１と比較して、ネットワーク１１２にスケジュール管理サーバ１４０が接続されている。また、配布管理サーバ１０１のデータベース１１１には、スケジュール管理テーブル２２０（図２６参照）が記憶されている。また、インベントリテーブル２００Ａ（図２７参照）には、クライアント端末１１３の電源状態２０８が記憶されている。追加された構成要素には、符号を四角で囲んで明確にしている。図１に記載の同一構成品については、同一番号を付し、説明を省略する。
【００９４】
図２６は、スケジュール管理テーブルの一例を示す図である。配布管理サーバ１０１のデータベース１１１に格納されるスケジュール管理テーブル２２０は、各クライアント端末１１３のホスト名２２１、各ホストのエンドユーザのスケジュール情報（通常勤務、出張、休暇）が日付ごと（例えば、符号２２２から符号２２４）に記憶されている。具体的には、クライアントＡの場合、２００Ｘ年７月２４日および２００Ｘ年７月２５日は出張であり、２００Ｘ年７月２６日は、通常勤務であることがわかる。また、クライアントＤの場合、２００Ｘ年７月２４日は通常勤務であるが、２００Ｘ年７月２５日および２００Ｘ年７月２６日は、休暇であることがわかる。
【００９５】
スケジュール管理テーブル２２０は、配布管理サーバ１０１のインベントリ情報管理部１０８が、スケジュール管理サーバ１４０からアップロードされたスケジュール情報に基づき更新する。
【００９６】
図２７は、インベントリテーブルの他の一例を示す図である。図２に記載の同一項目については、同一番号を付し説明を省略する。インベントリテーブル２００Ａには、各クライアント端末１１３の電源状態２０８および各クライアント端末１１３がデスクトップＰＣかノートＰＣかといった機器種別２０９が含まれる。なお、機器種別２０９に関しては、第３の変形例においてさらに後記する。
【００９７】
図２８は、第２の変形例に係る代表クライアント選定部の処理を示すフローチャートである。図４に記載の同一処理については、同一番号を付し説明を省略する。配布管理サーバ１０１のインベントリ情報管理部１０８は、各クライアント端末１１３からインベントリ情報としてを各クライアント端末１１３の電源状態を取得し、インベントリテーブル２００Ａ（図２７参照）の電源状態２０８の欄に格納する。また、前記処理に加え、代表クライアント選定部１０４は、スケジュール管理サーバ１４０と連携し、スケジュール管理サーバ１４０に対して各クライアント端末のエンドユーザのスケジュール情報の通知命令を送信し（ステップＳ４０１ｂ）、スケジュール管理サーバ１４０から受信した各スケジュール情報をスケジュール管理テーブル２２０に格納する（ステップＳ４０２ｂ）。その後、設定された選定条件を元に、ジョブ実行履歴テーブル３００（図３参照）から条件に合致するホスト名３０３および平均配布時間３０４を取得し（ステップＳ４０３）、代表クライアント候補を選出する。
【００９８】
次に、代表クライアント候補の中で、インベントリテーブル２００Ａから電源状態が起動中のクライアントに関して、各クライアントのエンドユーザのスケジュール情報をスケジュール管理テーブル２２０から取得する。そして、ステータスがエンドユーザが利用していない状態、例えば、通常勤務、出張、休暇といったステータスがあった場合に、ステータスが「通常勤務」以外のクライアントを、平均配布時間が短いものから選定台数分を選択する（ステップＳ４０４ｂ）。そして、選定台数分の代表クライアントが選定されているか否か、すなわち、選定台数が足りないか否かを判定を行う（ステップＳ４２０）。選定台数が足りなくなければ（ステップＳ４２０，Ｎｏ）、ステップＳ４０５に進む。選定台数分の代表クライアントが選定されていない場合（ステップＳ４２０，Ｙｅｓ）、代表クライアント候補の中で電源状態が停止であるクライアントを選定し、平均配布時間が短いクライアント端末１１３から順に、代表クライアント候補として、当該配布指令において選定する代表クライアントを台数分選択する（ステップＳ４２１）。その後、選定された代表クライアント候補をもとに、図４同様にジョブ完了時間までに配布可能なクライアント最大数を算出する（ステップＳ４０５）。
【００９９】
なお、ステップＳ４２１において、電源状態が停止であるクライアント端末１１３が選定された場合は、ＷＯＬ（Wake On LAN）機能で、電源状態が停止のクライアント端末１１３の電源を立ち上げるとよい。ＷＯＬ機能は、ＬＡＮ経由でコンピュータの電源を投入するための機能である。
【０１００】
第２の変形例によれば、利用されていないマシンを代表クライアントとして選定していくことで、ソフトウェアの配布効率を未然に防ぎ、例えば、パッチやウィルス対策製品といったセキュリティとして緊急性が高いものや、教育、教材ソフトウェアの配布、アンケート結果の収集といった即時性が求められるものを配布、収集したい場合に有効な配布管理システムを実現することが可能となる。
【０１０１】
（第３の変形例）
本実施形態の第３の変形例として、配布管理サーバ１０１の代表クライアント選定部１０４における代表クライアントの選定処理において、図１、図２７、図２９、図３０を参照して説明する。インベントリ情報管理部１０８は、各クライアント端末１１３がデスクトップＰＣかノートＰＣかといった機器種別をインベントリ情報として取得しておき（図２７の機器種別２０９参照）、代表クライアント選定部１０４は、代表クライアントの選定時に、ＰＣの特性上、持ち運び（ネットワークの切り離し）が自由に行えるノートＰＣを選定しないようにする。
【０１０２】
これにより、配布処理の実行中にネットワークが切り離されることによって配布処理が中断されるリスクを考慮した信頼性の高い配布管理システムを実現できる。また、前記に述べたノートＰＣの特性上、機器種別がデスクトップＰＣのクライアント端末よりもノートＰＣのクライアント端末を優先して配布を行うようにする。これは、例えば、パッチやウィルス対策製品、情報セキュリティ対策ソフトウェアといったソフトウェアのインストールやバージョンアップをノートＰＣから優先的に行うことによって、情報漏洩のリスクの高いクライアント端末のセキュリティ対策を早急に行うためである。
【０１０３】
図２９は、第３の変形例に係る代表クライアント選定部の処理を示すフローチャートである。図４に記載の同一処理については、同一番号を付し説明を省略する。配布管理サーバ１０１の代表クライアント選定部１０４は、各クライアントからインベントリ情報を取得し、ＤＢに格納後、設定された選定条件を元に代表クライアント候補を選定する。次に、代表クライアント候補の中で、インベントリテーブル２００Ａ（図２７参照）の機器種別２０９の情報から、機器種別がデスクトップＰＣであるクライアントに候補を限定する（ステップＳ４３０）。このようにして、代表クライアント候補に対する機器種別の判定処理を行った上で、ステップＳ４０４以降の処理を行い、代表クライアントを台数分選択していく。
【０１０４】
また、ジョブ中継プログラム１１８のステップＳ１００２の処理に関して、各代表クライアントが配布対象クライアントリスト８０１Ａ（図３０参照）からジョブを配布するクライアントを選択する場合に、配布対象クライアントリストの機器種別がノートＰＣのクライアントをデスクトップＰＣのクライアントよりも優先して選択し、配布処理を行うようにする。
【０１０５】
図３０は、配布対象クライアントリストの他の一例を示す図である。ジョブ配布部１０５（図１参照）がジョブ実行時に生成した配布対象クライアントリスト８０１Ａは、実行する配布指令を識別するために割り振られた一意に決定するジョブＩＤと、ソフトウェアを配布する対象となるクライアント端末１１３のホスト名とＩＰアドレスおよびどの代表クライアント端末に優先的に配布させるかを設定した配布優先代表クライアントの一覧が設定されたリストである。図３０は、図８と比較して、機器種別の項目が付加されている。具体的には、機器種別がノートＰＣのクライアントＢが、デスクトップＰＣのクライアントＤよりも優先して選択されており、同様に、機器種別がノートＰＣのクライアントＧが、デスクトップＰＣのクライアントＥよりも優先して選択されている。
【０１０６】
第３の変形例によれば、デスクトップＰＣのクライアントを代表クライアントとして選定することで、配布処理の中断のリスクを軽減することが可能になると共に、ノートＰＣへのソフトウェアの配布を優先的に行うことで、情報漏洩による機密情報の流出のリスクを軽減することが可能となる。
【０１０７】
以上、説明したように、第１の変形例１から第３の変形例のように、配布管理サーバ１１０１の代表クライアント選定部１０４に、各クライアントのセキュリティ状態や電源状態、機器種別を考慮した処理を追加することによって、配布管理システムの安全性、即時性、信頼性を向上させることが可能となる。
【０１０８】
本発明によれば、例えば、ＯＳ（Operation System)のパッチやウィルス定義ファイルの適用などクライアント端末に対して早期にソフトウェアを配布したい場合に、状況に応じて代表クライアントの配布状態を変更することで、情報処理システムにおけるクライアント端末の早期セキュリティ対策を行うことができる。また、その適用結果を配布管理サーバへ確実に通知することで、システム管理者が、各クライアント端末の適用状況を確実に監視、確認することが可能となり、情報処理システム全体のセキュリティ向上およびその施策を図ることが可能となる。
【図面の簡単な説明】
【０１０９】
【図１】配布管理システムのシステム構成を示す図である。
【図２】インベントリテーブルの一例を示す図である。
【図３】ジョブ実行履歴テーブルの一例を示す図である。
【図４】代表クライアント選定部の処理を示すフローチャートである。
【図５】代表クライアン端末選定時のシステム構成を示す説明図である。
【図６】ジョブ配布部の処理を示すフローチャートである。
【図７】代表クライアントグループリストの一例を示す図である。
【図８】配布対象クライアントリストの一例を示す図である。
【図９】実行ジョブテーブルの一例を示す図である。
【図１０】ジョブ中継プログラムの処理を示すフローチャートである。
【図１１】ジョブ実行プログラムの処理を示すフローチャートである。
【図１２】ジョブ実行プログラムの処理を示すフローチャートである。
【図１３】実行済みジョブリストの一例を示す図である。
【図１４】代表グループリストの一例を示す図である。
【図１５】未通知結果リストの一例を示す図である。
【図１６】ジョブ実行管理部の処理を示すフローチャートである。
【図１７】ジョブ実行結果テーブルの一例を示す図である。
【図１８】ジョブ結果収集部の処理を示すフローチャートである。
【図１９】ジョブ結果収集プログラムの処理を示すフローチャートである。
【図２０】ジョブ結果収集プログラムの処理を示すフローチャートである。
【図２１】第１の変形例に係る配布管理システムのシステム構成を示す図である。
【図２２】ソフトウェアインベントリテーブルの一例を示す図である。
【図２３】第１の変形例に係る代表クライアント選定部の処理を示すフローチャートである。
【図２４】各クライアントのセキュリティチェックを実施し、代表クライアントの候補を限定する処理を示すフローチャートである。
【図２５】第２の変形例に係る配布管理システムのシステム構成を示す図である。
【図２６】スケジュール管理テーブルの一例を示す図である。
【図２７】インベントリテーブルの他の一例を示す図である。
【図２８】第２の変形例に係る代表クライアント選定部の処理を示すフローチャートである。
【図２９】第３の変形例に係る代表クライアント選定部の処理を示すフローチャートである。
【図３０】配布対象クライアントリストの他の一例を示す図である。
【符号の説明】
【０１１０】
１０１    配布管理サーバ
１０２，１１５    プロセッサ
１０３，１１６    メモリ
１０４    代表クライアント選定部
１０５    ジョブ配布部
１０６    ジョブ実行管理部
１０７    ジョブ結果収集部
１０８    インベントリ情報管理部
１０９，１１４    通信インターフェイス
１１０    ディスクインターフェイス
１１１    データベース
１１２    インターネット（ネットワーク）
１１３    クライアント端末
１１７    ジョブ管理部
１１８    ジョブ中継プログラム
１１９    ジョブ実行プログラム
１２０    ジョブ結果収集プログラム
１２１    実行済みジョブリスト
１２２    代表グループリスト（代表グループ情報）
１２３    未通知結果リスト（未通知結果情報）
１２４    インベントリ収集部
１３０    リファレンスマシン
１４０    スケジュール管理サーバ
２００    インベントリテーブル（インベントリ情報）
２１０    ソフトウェアインベントリテーブル
２２０    スケジュール管理テーブル
３００    ジョブ実行履歴テーブル（配布履歴情報）
９００    実行ジョブテーブル（実行ジョブ情報）
１７００    ジョブ実行結果テーブル（ジョブ実行結果情報）
【図１】
0004560115.tif 000002
【図２】
0004560115.tif 000003
【図３】
0004560115.tif 000004
【図４】
0004560115.tif 000005
【図５】
0004560115.tif 000006
【図６】
0004560115.tif 000007
【図７】
0004560115.tif 000008
【図８】
0004560115.tif 000009
【図９】
0004560115.tif 000010
【図１０】
0004560115.tif 000011
【図１１】
0004560115.tif 000012
【図１２】
0004560115.tif 000013
【図１３】
0004560115.tif 000014
【図１４】
0004560115.tif 000015
【図１５】
0004560115.tif 000016
【図１６】
0004560115.tif 000017
【図１７】
0004560115.tif 000018
【図１８】
0004560115.tif 000019
【図１９】
0004560115.tif 000020
【図２０】
0004560115.tif 000021
【図２１】
0004560115.tif 000022
【図２２】
0004560115.tif 000023
【図２３】
0004560115.tif 000024
【図２４】
0004560115.tif 000025
【図２５】
0004560115.tif 000026
【図２６】
0004560115.tif 000027
【図２７】
0004560115.tif 000028
【図２８】
0004560115.tif 000029
【図２９】
0004560115.tif 000030
【図３０】
0004560115.tif 000031