(57)【要約】【課題】代表クライアントを用いたソフトウェア配信管理システムの利便性を向上させる。【解決手段】本発明に係る計算機システムは、複数のクライアントと、前記複数のクライアントの一つ又は複数に配布するソフトウェアを含むサーバと、前記サーバと前記複数のクライアントと、を備える。前記サーバは、前記複数のクライアントからの情報に基づいて、前記複数のクライアントを複数のグループに分類し、各グループについて代表クライアントを選定し、前記代表クライアントへ前記ソフトウェアを配布することを実行する。前記ソフトウェアの配布を受けた前記代表クライアントは、同一グループに属する他のクライアントに前記ソフトウェアを当該他のクライアントに配布する。サーバは、ソフトウェアの配布管理情報に基づいて、管理用表示情報を管理画面に出力する。なお、サーバから代表クライアントへのソフトウェア配布は事前に行われても良い。
2011135629.tif 000002
【特許請求の範囲】
【請求項１】
計算機システムにおけるソフトウェアプログラムに対応するソフトウェアイメージの配布管理方法であって、
前記計算機システムは、
複数のクライアント計算機と、
前記複数のクライアント計算機の一つ又は複数に配布するソフトウェアイメージを含むサーバと、
前記サーバ計算機と前記複数のクライアント計算機とを接続するネットワークと、
を備え、
前記サーバ計算機は、
前記複数のクライアント計算機からの情報に基づいて、前記複数のクライアント計算機を複数のグループに分類する第１のステップと、
各グループについて代表クライアント計算機を選定するステップと、
前記代表クライアント計算機へ前記ソフトウェアプログラムに対応するソフトウェアイメージを配布するステップと、
を実行し、
前記ソフトウェアイメージの配布を受けた前記代表クライアント計算機は、同一グループに属する他のクライアント計算機からの要求に基づいて前記ソフトウェアイメージを当該他のクライアント計算機に配布する、
計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項２】
前記サーバ計算機は、
前記ソフトウェアイメージを複数含み、
当該複数のソフトウェアプログラム又はソフトウェアイメージの属性に基づいて夫々の優先度を決定し、
当該優先度に基づく優先順位にしたがって前記代表クライアント計算機へ前記複数のソフトウェアイメージを配布する、
請求項１記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項３】
前記サーバ計算機は、
前記複数のクライアント計算機のリソース情報に基づいて夫々の優先度を決定し、
前記優先度に基づく優先順位にしたがって前記代表クライアント計算機へ前記ソフトウェアイメージを配布する、
請求項２記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項４】
前記サーバ計算機は、
前記複数のグループの少なくとも一つに、前記ソフトウェアイメージを存在させる割合に関する目標値を設定し、
前記複数のクライアント計算機から収集したリソース情報に基づいて、前記複数のクライアント計算機夫々の稼働状況を判定し、
前記目標値が設定されたグループに属する複数のクライアント計算機の中から、前記クライアント計算機の優先度にしたがって、一つのクライアント計算機を順番に選択し、
選択したクライアント計算機の前記稼働状況情報の合算値が前記目標値に到達するまで前記クライアント計算機の選択を継続し、
前記選択された一つ又は複数のクライアント計算機を前記代表クライアント計算機として設定する、
請求項３記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項５】
前記サーバ計算機は、前記ソフトウェアプログラムの優先度が高いほど前記目標値を高く設定する、請求項４記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項６】
前記サーバ計算機は、
同一グループに複数の前記代表クライアント計算機を設定し、
前記複数の代表クライアント計算機の一つに前記優先度順にアクセスして、一つの代表クライアント計算機に前記ソフトウェアイメージを配布し、
前記ソフトウェアイメージの配布を受けた代表クライアント計算機は、他の代表クライアント計算機に当該ソフトウェアイメージを配布する、
請求項３記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項７】
前記代表クライアント計算機が、同一のソフトウェアイメージの配布要求を前記複数のクライアント計算機から受信すると、
前記サーバ計算機は、
前記複数のクライアント計算機の少なくとも一つを新代表クライアント計算機に設定し、
前記新代表クライアント計算機から、前記複数のクライアント計算機のうち前記新代表クライアント計算機以外のクライアント計算機に前記ソフトウェアイメージを配布する、
請求項３記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項８】
前記サーバ計算機は、前記複数のクライアント計算機のうち、前記優先度が高いクライアント計算機を前記新代表クライアント計算機に設定する、
請求項７記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項９】
前記代表クライアント計算機は、前記新代表以外の前記複数のクライアント計算機への前記ソフトウェアイメージの配布を中断し、
前記新代表クライアント計算機は、前記ソフトウェアイメージの配布が中断されたクライアント計算機に対して前記ソフトウェアイメージの配布を実行する、
請求項７記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項１０】
前記サーバ計算機は、
前記ソフトウェアイメージを前記代表クライアント計算機に配布した後、当該代表クライアント計算機に変更を設定し、
変更後の代表クライアント計算機に対して前記ソフトウェアイメージの配布を再配置する、
請求項１記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項１１】
前記サーバ計算機は、
前記クライアント計算機の増設及び/又は減設を判定し、
当該判定に基づいて前記変更を設定し、
前記変更の設定に基づく新たな代表クライアント計算機は、前記変更の設定の前の代表クライアント計算機から前記ソフトウェアイメージの配布を受け、
前記変更の設定に基づいて、前記代表クライアント計算機から除かれたクライアント計算機は、前記配布されたソフトウェアイメージを削除する、
請求項１１記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
【請求項１２】
複数のクライアント計算機と、
前記複数のクライアント計算機の一つ又は複数に配布するソフトウェアイメージを含むサーバ計算機と、
前記サーバ計算機と前記複数のクライアント計算機とを接続するネットワークと、
を備える計算機システムであって、
前記サーバ計算機は、
前記複数のクライアント計算機とのインターフェースと、
前記ソフトウェアイメージの配布管理プログラムを含む第１のメモリと、
前記ソフトウェアと前記ソフトウェアイメージの配布管理情報を含む第２のメモリと、
前記配布管理プログラムと前記配布管理情報とに基づいて、前記ソフトウェアイメージの配布管理処理を実行するＣＰＵと、
を備え、
前記ＣＰＵは、前記複数のクライアント計算機からの情報に基づいて、前記複数のクライアント計算機を複数のグループに分類し、各グループについて代表クライアント計算機を選定し、前記代表クライアント計算機へ前記ソフトウェアイメージを配布し、
前記ソフトウェアイメージの配布を受けた前記代表クライアント計算機は、前記ソフトウェアイメージを当該他のクライアント計算機に配布し、
前記ＣＰＵは、前記第２のメモリの前記ソフトウェアイメージの配布管理情報に基づいて、管理用表示情報を生成し、当該管理用表示情報を管理画面に出力する、
計算機システム。
【請求項１３】
前記第２のメモリは、前記ソフトウェアイメージを複数含み、
前記ＣＰＵは、
当該複数のソフトウェアイメージの属性に基づいて夫々の優先度と前記複数のクライアント計算機のリソース情報に基づいて夫々の優先度とを夫々決定し、
当該決定された優先度に基づく優先順位にしたがって前記代表クライアント計算機へ前記複数のソフトウェアイメージを配布し、
前記複数のグループの少なくとも一つに、前記ソフトウェアイメージを存在させる割合に関する目標値を設定し、
前記複数のクライアント計算機から収集したリソース情報に基づいて、前記複数のクライアント計算機夫々の稼働状況を判定し、
前記目標値が設定されたグループに属する複数のクライアント計算機の中から、前記クライアント計算機の優先度にしたがって、一つのクライアント計算機を順番に選択し、
選択したクライアント計算機の前記稼働状況情報の合算値が前記目標値に到達するまで前記クライアント計算機の選択を継続し、
前記選択された一つ又は複数のクライアント計算機を前記代表クライアント計算機として設定し、
同一グループに複数の前記代表クライアント計算機を設定し、
前記複数の代表クライアント計算機の一つに前記優先度順にアクセスして、一つの代表クライアント計算機に前記ソフトウェアイメージを配布し、
前記ソフトウェアイメージの配布を受けた代表クライアント計算機に、他の代表クライアント計算機に当該ソフトウェアイメージを配布させ、
前記代表クライアント計算機が同一のソフトウェアイメージの配布要求を前記複数のクライアント計算機から受信すると、前記複数のクライアント計算機の少なくとも一つを新代表クライアント計算機に設定し、
前記新代表クライアント計算機に、前記複数のクライアント計算機のうち前記新代表クライアント計算機以外のクライアント計算機に前記ソフトウェアイメージを配布させ、
前記代表クライアント計算機は、前記新代表以外の前記複数のクライアント計算機への前記ソフトウェアイメージの配布を中断し、
前記新代表クライアント計算機は、前記ソフトウェアの配布が中断されたクライアント計算機に対して前記ソフトウェアイメージの配布を実行し、
前記ＣＰＵは、
前記クライアント計算機の増設及び/又は減設を判定すると、前記ソフトウェアイメージを前記代表クライアント計算機に配布した後、当該代表クライアント計算機に変更を設定し、前記変更の設定に基づく新たな代表クライアント計算機に、前記変更の設定の前の代表クライアント計算機から前記ソフトウェアイメージの配布を受けさせ、
前記変更の設定に基づいて、前記代表クライアント計算機から除かれたクライアント計算機に、前記配布されたソフトウェアイメージを削除させる、
請求項１２記載のソフトウェアイメージの配布管理のための計算機システム。
【請求項１４】
サーバ計算機と、第１のクライアント計算機と、に接続された第２のクライアント計算機が読み取り可能な記憶媒体であって、
前記記憶媒体は、
前記第２のクライアント計算機に、前記サーバから代表クライアントを特定する情報を受信させ、前記代表クライアントを特定する情報に基いて、前記第１のクライアント計算機と前記第２のクライアント計算機とから代表クライアント計算機を特定させる、代表クライアント特定プログラムコードと、
前記代表クライアント計算機が前記第２のクライアント計算機の場合は、前記第２のクライアント計算機に、以下の（Ａ１）乃至（Ａ３）を実行させるソフトウェア配布プログラムコードと、
（Ａ１）前記サーバ計算機からソフトウェアプログラムのソフトウェアイメージを受信して前記第２のクライアント計算機のメモリ又はディスクに格納させ、
（Ａ２）前記ソフトウェア取得要求を受信し、前記ソフトウェア取得要求によって指定されたソフトウェアプログラムに対応するソフトウェアイメージを、前記第２のクライアント計算機のメモリ又はディスクに格納しているか確認させ、
（Ａ３）前記（Ａ２）の確認の結果、前記指定されたソフトウェアプログラムのソフトウェアイメージを格納している場合は、前記指定されたソフトウェアプログラムに対応するソフトウェアイメージを送信させ、
前記代表クライアント計算機が前記第１のクライアント計算機の場合は、前記第２のクライアント計算機に、以下の（Ｂ１）乃至（Ｂ４）を実行させるソフトウェアインストールプログラムコードと、
（Ｂ１）インストール対象の所定のソフトウェアプログラムを指定したインストール入力を受信させ、
（Ｂ２）前記所定のソフトウェアプログラムを指定したソフトウェア取得要求を、前記代表クライアント計算機又は前記サーバに送信させ、
（Ｂ３）前記ソフトウェア取得要求に応じた所定のソフトウェアプログラムに対応する所定のソフトウェアイメージを受信させ、
（Ｂ４）前記所定のソフトウェアイメージを用いて前記所定のソフトウェアプログラムをインストールさせ、
前記第２のクライアント計算機に、前記代表クライアント計算機の識別子を表示させる、代表クライアント表示プログラムコードと、
を格納することを特徴とした記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システムに関するものである。
【背景技術】
【０００２】
大容量のソフトウェアプログラムをクライアントに配布する技術において、クライアントと中央の管理サーバとの通信がボトルネックとなる。この傾向は、インターネット等の比較的低速の回線によって、中央管理サーバとクライアント群とが接続される環境では顕著である。【０００３】
その対策の一例として、複数のクライアント間でＰ２Ｐ型のソフトウェアプログラムの配布を行うことによって、サーバとクライアント間の通信回数や通信負荷の低減を図っている。【０００４】
この種の方式に関連した先行技術として、例えば、特開２００９−２７１９０４号公報に記載されたものが存在する。この先行技術は、管理者が指定したソフトウェアプログラムをクライアント群へ配布する、いわゆるプッシュ型の配布に関して、Ｐ２Ｐ型の配布方式を提案している。すなわち、管理装置は、クライアント群の中から代表クライアントを選択し、代表クライアントを中継サーバのように動作させて、代表クライアントから他のクライアントへソフトウェアプログラムの配布を行うようにしている。【０００５】
さらに、この先行技術は、代表クライアントの数を、ソフトウェアの配布処理の並列度が十分になるように決定して、管理者が指定した、ソフトウェアプログラムの配布期限を満たすようにすることを開示している。【０００６】
さらに、他の関連先行技術として、米国特許７，５２９，８０９号公報に記載されたものがある。この先行技術は、クライアントのユーザが必要としたタイミングでソフトウェアプログラムを配布する、いわゆるプル型のソフトウェアプログラムの配布システムにおいて、サーバとクライアントとの間でソフトウェアプログラムの転送回数を減らす方式を開示している。【０００７】
すなわち、複数のクライアントが、リモートサイトのソフトウェアプログラムを要求する場合には、複数のクライアント間でネゴシエーションを行い、一回だけリモートサイトからソフトウェアプログラムを代表クライアントにダウンロードする方式が提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−２７１９０４号公報
【特許文献２】米国特許７，５２９，８０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
既存の先行技術は代表クライアントを用いたソフトウェア配布について開示はしているが、利便性については向上の余地がある。その例としては以下の二つがある。【００１０】
（Ａ）既述の先行技術では、クライアントへのソフトウェアの配布の状態、例えば、ソフトウェアのダウンロードに影響を与える設定、ソフトウェアのダウンロードの進捗などを把握できず管理面における利便性が低い。【００１１】
（Ｂ）既述の先行技術では、ソフトウェアが代表クライアントに存在しない場合、クライアントがネットワークを介してサーバからソフトウェアを取得するまでの時間が長いため、クライアントを用いるユーザの利便性が低い。【００１２】
そこで、本発明は以下の二つのいずれか又は両方を提供することを目的とする。【００１３】
（１）クライアントへのソフトウェアの配布の状態、ソフトウェアのダウンロードの進捗などを把握できる、ソフトウェアの配布管理システムを提供する。【００１４】
（２）クライアントがネットワークを介してサーバからソフトウェアを迅速に取得できる、ソフトウェアの配布管理システムを提供する。
【課題を解決するための手段】
【００１５】
そこで、本発明は、係る課題を解決するために、複数のクライアントと、前記複数のクライアントの一つ又は複数に配布するソフトウェアを含むサーバと、前記サーバと前記複数のクライアントとを接続するネットワーク、を備える。【００１６】
前記サーバは、前記複数のクライアントからの情報に基づいて、前記複数のクライアントを複数のグループに分類し、各グループについて代表クライアントを選定し、前記代表クライアントへ前記ソフトウェアを配布することを実行する。【００１７】
前記ソフトウェアの配布を受けた前記代表クライアントは、同一グループに属する他のクライアントに前記ソフトウェアを当該他のクライアントに配布する。【００１８】
サーバは、ソフトウェアの配布管理情報に基づいて、管理用表示情報を管理画面に出力する。なお、サーバから代表クライアントへのソフトウェア配布は事前に行われてもよい。
【発明の効果】
【００１９】
以上説明した本発明によれば、代表クライアントを用いたソフトウェア配布管理システムの利便性を向上させることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係る、管理サーバからクライアント群にソフトウェアの配布を実施するための計算機システムのブロック図である。
【図２】サーバの主機能を達成するためのフローチャートを示す。
【図３Ａ】クライアント情報テーブルの一部である。
【図３Ｂ】クライアント情報テーブルの他の一部である。
【図４】クライアント情報履歴テーブルの一例である。
【図５】クライアントのグルーピングテーブルの一例である。
【図６】ソフトウェア一覧テーブルの一例である。
【図７】ソフトウェア配布優先度と冗長係数値テーブルの一例である。
【図８】ソフトウェア配布状況テーブルの一例である。
【図９】サーバが代表クライアントへソフトウェアを送信する処理に対応するフローチャートの一例である。
【図１０】代表クライアントが管理サーバからフトウエアを受信する処理の一例に係るフローチャートである。
【図１１】代表クライアントが、同一グループの他の代表クライアントへソフトウェアを送信する一例に係るフローチャートである。
【図１２】図１２にソフトウェア配布タスクテーブルの一例である。
【図１３】代表クライアントのソフトウェア配信処理のフローチャートの一例である。
【図１４】ソフトウェアの要求元クライアントのソフトウェアの受信処理とインストール処理のフローチャートの一例である。
【図１５】代表クライアントの動作の概要を示すフローチャートの一例である。
【図１６】複数のクライアントから、新規の代表クライアントを作成する処理のフローチャートの一例である。
【図１７】ソフトウェア送信状況テーブルの一例である。
【図１８】代表クライアントのソフトウェアの送信又は中断のフローチャートの一例である。
【図１９】クライアントのソフトウェアの受信のフローチャートの一例である。
【図２０Ａ】ソフトウェアの配信管理画面の一部である。
【図２０Ｂ】ソフトウェアの配信管理画面の他の一部である。
【発明を実施するための形態】
【００２１】
以下に本発明に係る計算機システムの実施形態について説明する。なお、以後の説明では「ａａａテーブル」、「ａａａリスト」、「ａａａＤＢ」、「ａａａキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、ＤＢ、キュー、等に限定されるわけではなく、これら以外のデータ構造で表現されていてもよい。
【００２２】
そのため、データ構造に依存しないことを示すために「ａａａテーブル」、「ａａａリスト」、「ａａａＤＢ」、「ａａａキュー」等について「ａａａ情報」と呼ぶことがある。
【００２３】
さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いるが、これらについてはお互いに置換が可能である。
【００２４】
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはＣＰＵによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、ＣＰＵを主語とした説明としてもよい。
【００２５】
また、プログラムを主語として開示された処理はプログラムを実行する計算機が行う処理としてもよい。また、プログラムの一部または全てが専用ハードウエアによって実現されてもよい。
【００２６】
また、各種プログラムは、プログラム配布サーバ計算機や記憶メディアによって各計算機にインストールされてもよい。
【００２７】
図１は、管理サーバ計算機からクライアント計算機群にソフトウェアプログラムの配布を実施するための計算機システムのブロック図である。
【００２８】
なお、この計算機システムのハードウエア構成は、既述の特開２００９−２７１９０４号公報に類するものである。したがって、特開２００９−２７１９０４号公報の全ての記載事項が本願に引用され、そして補充される。
【００２９】
計算機システムは、ソフトウェアプログラムを含むファイルを備え、クライアント計算機にソフトウェアプログラムに対応するソフトウェアイメージの配布を管理するサーバ計算機（以下、単に「サーバ」と呼ぶ。）１０と、複数のクライアント計算機（以下、単に「クライアント」と呼ぶ。）１４と、が、インターネット等の広域ネットワーク２６によって接続された構成を備えている。
【００３０】
なお、ソフトウェアプログラムに対応するソフトウェアイメージには、クライアントがインストール対象とするソフトウェアプログラムを実行可能とするための情報及び／又はプログラムが含まれる。また、ソフトウェアプログラムとソフトウェアイメージについて「対応する」と表現した場合は前述の意味を持つものとする。実施形態中の説明として「ソフトウェアプログラムに対応したソフトウェアイメージ」という表現は長いため、単に「ソフトウェアイメージ」と表現する場合もある。なお、既述の「実行可能とするための情報」及び／又は「プログラム」の例は以下のとおりである。
【００３１】
＊  ソフトウェアプログラムのファイルとその設定情報。当然ながらソフトウェアイメージがソフトウェアプログラムのファイルそのものでもよい。
【００３２】
＊  ソフトウェアプログラムをインストールするためのインストールプログラムファイルと、インストールプログラムの設定情報。
【００３３】
なお、インストールプログラムを実行することで、クライアントはソフトウェアプログラムの一部または全てのファイル（又はデータ）をサーバ１０またはその他の計算機からダウンロードしてもよい。
【００３４】
また、インストールプログラムを実行することで、クライアントはインストールプログラムファイル内部に埋め込まれたデータからソフトウェアプログラムを取り出して、実行可能としてもよい。また、ソフトウェアイメージは対応元のソフトウェアプログラムの識別子を含んでもよい。
【００３５】
なお、代表クライアントが格納する所定のソフトウェアプログラムに対応したソフトウェアイメージと、配布サーバが格納する前述の所定のソフトウェアプログラムに対応したソフトウェアイメージは同一のデータでなくてもよい。なぜならば、要求元クライアントとしては指定した所定のソフトウェアプログラムがインストールできれば、ソフトウェアイメージのデータについては特に問わないからである。
【００３６】
同様に、第１の代表クライアントが格納する所定のソフトウェアプログラムに対応したソフトウェアイメージと、第２の代表クライアントが格納する前述の所定のソフトウェアプログラムに対応したソフトウェアイメージは同一のデータでなくてもよい。なぜならば、要求元クライアントとしては指定した所定のソフトウェアプログラムがインストールできれば、ソフトウェアイメージのデータについては特に問わないからである。
【００３７】
このような状況があるため、代表クライアントがクライアント（または他の代表クライアント）に送信するソフトウェアイメージは、当該代表クライアントが受信したソフトウェアイメージと同一でなくても、同じソフトウェアプログラムに対応していればよい。
【００３８】
なお、上述のサーバ、代表クライアント、他の代表クライアントの何れか二つの間でのインストールイメージのデータ同一性が必要とされない場合は、ソフトウェアイメージの優先順位の代わりとしてソフトウェアプログラムの優先順位を採用してもよい。
【００３９】
なお、本明細書で言うところの「配布」とは、配布対象のソフトウェアイメージを計算機間で転送することを指す。なお、計算機間の一例は以下である。
【００４０】
＊  サーバから、クライアントまたは代表クライアント
【００４１】
＊  代表クライアントから、クライアント又は別な代表クライアント
従って、「配布」は、サーバ、クライアント、または代表クライアントを主語として「送信」「受信」「転送」と読み替えてもよい。さらに、「配布」された計算機が配布されたソフトウェアイメージを用いて対応するソフトウェアプログラムをインストールすることを含めてもよく、または含めなくてもよい。
【００４２】
なお、「インストール」とはインストール対象のソフトウェアプログラムを実行可能とする処理を指す。実行可能とする処理の一例は以下の通りである。
【００４３】
＊  インストール対象のソフトウェアプログラムをインストール対象のクライアントで最初に実行する。
【００４４】
＊  ソフトウェアプログラムのファイルを、プログラム実行に適切なクライアントのディスクの適切なフォルダ（またはディレクトリ）に格納する。さらに、必須ではないが当該ソフトウェアプログラムの設定情報を設定ファイルまたはレジストリに記録する場合もある。
【００４５】
＊  ソフトウェアプログラムは分割してオンデマンドに配布される、アプリケーション仮想化のアプリケーションストリーミングの場合は、上記に以外の例として、配布されたソフトウェアプログラムを実行中に当該プログラムの一部をオンデマンド受信可能とする処理を指してもよい。
【００４６】
サーバ１０は複数のクライアントをグループに分類し、各グループについてソフトウェアイメージを配布すべきクライアントを決定する。ソフトウェアイメージの配布を受けるクライントを他のクライアントと区別するために、以下、当該クライアントを代表クライントと称する。ソフトウェアイメージを要求するクライアントは、同一グループの代表クライアントからソフトウェアイメージの配布を受ける。このクライアントを代表クライアントと区別するために、要求元クライアント、と称する。
【００４７】
プル型の通信において、ボトルネックとなるサーバとの通信回数を減らすには、クライアントが所属するグループにソフトウェアイメージを予め配置することが有効である。また、ノートPCのようにネットワークから切り離されることが多いクライアントも存在することから、クライアントのグループにソフトウェアイメージを冗長的に配置することが好ましい。なお、ソフトウェアイメージの配置とは代表クライアントにソフトウェアイメージを格納することを意味する。
【００４８】
すなわち、前記計算機システムは、中継サーバを省略する環境において、プル型のソフトウェアイメージの配布を高速にて実行できるように、サーバのソフトウェアイメージを予め代表クライアントに配布し、かつ、このソフトウェアイメージを他のクライアントに転送できるように、代表クライアントにおいてこのソフトウェアイメージを形成、換言すれば、代表クライアントにソフトウェアイメージの一時コピーを形成、さらに換言すれば、ソフトウェアイメージをキャッシュする。
【００４９】
その際、有限な記憶容量の下で、クライアントにソフトウェアイメージのキャッシュを持たせるため、計算機システムには次の主機能が実装されている。
【００５０】
第１の主機能は、サーバから代表クライアントへ配布されるソフトウェアイメージを選択することである。要求元クライアントが代表クライアントから目的のソフトウェアプログラムに対応するソフトウェアイメージを受信できなかった場合、要求元クライアントはサーバにアクセスして目的のソフトウェアイメージの配布を受けることになる。
【００５１】
これは、低速なネットワークを介することになって、ソフトウェアイメージの配布に長時間を有するばかりか、サーバの負荷が増大する。そこで、サーバは、ソフトウェアプログラムの特性やサーバが管理するダウンロード状況から判断し、優先度が高いソフトウェアイメージを、クライアントのディスク空き容量が許す範囲で、他のソフトウェアイメージに優先してクライアントに配布する。
【００５２】
第２の主機能は、要求元クライアントが、目的のソフトウェアプログラムに対応するソフトウェアイメージにアクセスできる、単位時間あたりの確率を想定し、この確率を満足させるように、ソフトウェアイメージを格納する代表クライアントを冗長的に設定することである。
【００５３】
要求元クライアントがソフトウェアプログラム（またはソフトウェアイメージ）の配布を必要とした時点で、要求元クライアントが代表クライアントにアクセスできるように、サーバは、複数クライアントを冗長的に計算機システムに存在させる。
【００５４】
そこで、管理者が、代表クライアントの冗長性に関する特性値を目標値としてサーバに設定すると、サーバはこの目標値を満たすように代表クライアントを選定する。なお、サーバは、クライアントの稼働率情報を利用して、代表クライアントを決定する。
【００５５】
第３の主機能は、グループ内でのソフトウェアイメージの配置について、メンテナンスを行うことである。クライアントの増減や、ソフトウェアイメージの優先順位の変更を受けて、サーバは、代表クライアントや代表クライアントが保持するソフトウェアイメージを変更する。
【００５６】
以下に、計算機システムのハード構成及びその諸動作を詳しく説明する。符号１４Ａは、ハードウエア構成が詳細に示されたクライアントである。他のクライアントも同じように構成されている。符号１２はサーバ１０の記憶領域であるディスク装置である。
【００５７】
符号１４Ｂはクライアント１４Ａのディスク装置である。他のクライアントにもディスク装置が接続されている。複数のクライアント１４はＬＡＮ７６によって互いに接続されている。サーバ側のＬＡＮにはサーバの管理情報を表示するクライアント２８が接続されている。
【００５８】
サーバ１０は、ソフトウェアイメージの配布制御の実施に必要なプログラムコードを格納したメモリ１６と、当該プログラムに基づいて、ソフトウェアの配布制御を実施するプロセッサ１８と、ディスク装置１２との間の通信を制御するインターフェース２２と、クライアントとの通信とを制御するインターフェース２０と、これらの各要素を相互に接続するバス２４と、を備えている。メモリ１６はソフトウェア配布管理プログラム１６０００を格納し、当該プログラムをＣＰＵ１８が実行することによりサーバ１０によるソフトウェア配布管理処理を行う。
【００５９】
サーバ１０のソフトウェア配布管理処理は複数の機能から達成される。この機能を明らかにするために、メモリ１６を、複数機能の各々にブロックを割当てた機能ブロック図として示した。これは言い方を変えると各処理部（３０、３２、３４、３６、４０、及び４２）はソフトウェア配布管理プログラム１６０００に含まれるともいえる。また、別な言い方としては各処理部に関する説明はソフトウェア配布管理プログラム１６０００に関する説明と言い換えることもできる。
【００６０】
クライアント情報管理処理部３０は、クライアントの情報、主として、インベントリ情報を管理するものである。クライアント情報管理処理部は、クライアント情報をクライアントから収集する処理部３０Ａと、クライアント情報に基づいて、複数のクライアントをグルーピングする処理部３０Ｂとを有する。
【００６１】
ソフトウェア情報管理処理部３６はサーバ１０のソフトウェアイメージの情報を管理するものであり、クライアントのグループ毎に、管理者が、ソフトウェアイメージをクライアントに配布するための優先順位を決定する優先度決定処理部３６Ａと、クライアントのグループ毎に存在するソフトウェアイメージのコピー（ソフトウェアイメージのキャッシュ）の冗長性に係る特性値(冗長係数値)を計算する冗長係数値計算処理部３６Ｂを有する。
【００６２】
代表クライアント管理処理部３２は、クライアントのグループ毎に、ソフトウェアイメージを予め配布すべきクライアント（代表クライアント）を管理するものであり、クライアントの優先度を決定する処理部３２Ａと、この優先度に基づいて代表クライアントを決定する処理部３２Ｂと、を有する。
【００６３】
通信処理部４０はクライアントとの通信を制御するものであり、ソフトウェアイメージの配布の処理を行う配布処理部４０Ａと、クライアントからの配布結果を受け付ける結果受付処理部４０Ｂとを有する。
【００６４】
再配置処理部３４は、ソフトウェアイメージのクライアント群における配置を再構築するための処理を行うものであり、配布状況画面表示処理部２２は画面表示用クライアントに管理画面を表示する処理を実行するものである。
【００６５】
サーバに接続するディスク装置１２は、サーバ１０からクライアントに配布されるソフトウェアイメージのデータ１２Ａと、ソフトウェアプログラムの一覧のテーブル１２Ｂと、クライアント情報のテーブル１２Ｃと、クライアントをグルーピングした情報のテーブル１２Ｄと、ソフトウェアイメージを配布する優先度と冗長係数値のテーブル１２Ｅと、ソフトウェアイメージの配布状況のテーブル１２Ｆとを備えている。
【００６６】
クライント１４Ｂは、サーバとの通信を制御する通信インターフェース５０と、ディスク相違１４Ｂとの通信を制御するディスクインターフェース５２と、サーバ１０又は代表クライアントからソフトウェアイメージの配布を受ける処理と、代表クライアントがソフトウェアイメージの要求元クライアントにソフトウェアイメージを配布する処理とを制御するプロセッサ５８と、これら処理のためのプログラムが格納されたメモリ６０と、これら各要素を互いに接続する内部バス５６とを備えている。メモリ６０はクライアント側配布管理プログラム６４０００を格納し、当該プログラムをＣＰＵ５８が実行することによりクライアント１４側のソフトウェア配布処理を実現する。
【００６７】
クライアント側配布管理プログラム６４０００は、複数のクライアントに共通する処理を実現するクライアント共通処理部６２と、代表クライアントに固有の処理を実現する代表クライアント固有処理部６４とを含む。なお、各処理部（６２、６４）に関する説明はクライアント側配布管理プログラム６４０００に関する説明と言い換えることもできる。
【００６８】
クライアント共通処理部６２は、クライアント情報をサーバに送信するクライアント情報送信部６２Ａと、サーバ１０又は代表クライアントからソフトウェアイメージを受信するソフトウェア受信処理部６２Ｂと、代表クライアントから受信したソフトウェアイメージを用いてソフトウェアプログラムをインストールするインストール処理部６２Ｃと、を有する。
【００６９】
代表クライアント固有処理部６４は、サーバ１０から受信したソフトウェアイメージを要求元クライアントに送信するソフトウェア送信処理部６４Ａを有している。クライアントのディスク１４Ｂは、クライアントが受信したソフトウェアイメージのデータ７０と、代表クライアントから要求元クライアンへのソフトウェアイメージの配布タスクのテーブル７２と、代表クライアントから要求元クライアントへのソフトウェアイメージの送信状況のテーブル７４と、を有する。
【００７０】
なお、メモリ１６及びメモリ６０に格納されている各処理部はプログラムコードであることが考えられるが、前述の通り、一部または全ての処理をハードウェアで代替してもよい。また、サーバ１０の記憶資源として考えた場合、記憶資源に含まれるメモリ１６とディスク１２の両方が含まれていてもよいが、メモリ１６またはディスク１２の何れかが記憶資源に含まれていてもよい。この場合、サーバ１０の記憶資源としてはメモリ１６に含まれるプログラム及び情報、及びディスク１２に含まれるテーブル（情報）が格納されていると考えることが出来る。
【００７１】
なお、クライアント１４Ａの記憶資源についても、記憶資源に含まれるメモリ６０とディスク１４Ｂの両方が含まれていてもよいが、メモリ６０またはディスク１４Ｂの何れかが記憶資源に含まれていてもよい。この場合、クライアント１４Ａの記憶資源としてはメモリ６０に含まれるプログラム及び情報、及びディスク１４Ｂに含まれるテーブル（情報）が格納されていると考えることが出来る。
【００７２】
図２に、サーバ１０の前記主機能を達成するためのフローチャートを示す。サーバ１０は、先ず、計算機システムに存在する複数のクライアント１４のそれぞれからクライアント情報を収集し（Ｓ２００）、収集した情報に基づいてクライアント１４のグループ分けを行う（Ｓ２０２）。
【００７３】
次いで、サーバ１０はクライアント１４に配布するソフトウェアイメージの優先順位を決定し（Ｓ２０４）、さらに、ソフトウェアイメージがクライアントのグループに存在する際の冗長性に関する特性値(冗長係数値)を計算する（Ｓ２０６）。
【００７４】
サーバ１０は各グループの複数のクライアントについて優先順位を計算して(Ｓ２０８)、ソフトウェアイメージを配布すべき代表クライアントを決定する(Ｓ２１０)。次いで、サーバ１０は、ソフトウェアイメージの配布を実施し、配布結果を更新する（Ｓ２１２）。
【００７５】
次に、各ステップの詳細について説明する。
【００７６】
（Ｓ２００）：
クライアント情報管理処理部３０の収集処理部３０Ａは複数のクライアント１４に定期的（または繰り返し）にアクセスして、各クライアントのクライアント情報送信部６２Ａから、クライアント情報、主に、インベントリ情報や性能情報を収集し、収集した情報をディスク装置１２のクライアント情報テーブル１２Ｂに更新格納する。
【００７７】
クライアントから収集するインベントリ情報の一例は、各クライアント１４のアドレス情報（ＩＰアドレスやサブネットマスク）、ディスク容量、空き容量、である。このインベントリ情報はクライアント１４のグルーピングに利用される。収集処理部３０Ａは、さらに、クライアントの平均稼働率を算出して、これをクライアント情報処理テーブル１２Ｃに登録する。
【００７８】
図３Ａ及び図３Ｂに、クライアント情報処理テーブル１２Ｃを示す。クライアント情報管理処理部３０は、平均稼働率を、例えば、次のようにして求める。サーバ１０から各クライアント１４に一定時間毎にアクセスし、クライアントがその都度稼動しているか否かを確認する。
【００７９】
クライアント情報管理処理部３０は、クライアント１４が稼動している時間の合計を接続可能時間と判定し、さらに、クライアントの業務時間の合計値に対する接続可能時間の割合を算出して、これをクライアント毎の平均稼働率とする。例えば、０８：００〜２０：００までの１２時間が１日の業務時間の合計値であり、サーバ１０がクライアント１４に１時間毎に１２回接続確認の要求を送信し、クライアント１４から９回応答があったとすると、一日の稼働率は０．７５（９／１２）になる。
【００８０】
クライアント情報管理処理部３０は、規定の日数分の稼働率をメモリ１６の所定領域に累積記録し、累積値の平均値を平均稼働率とする。クライアント毎の日毎の稼働率は、クライアント情報履歴テーブル（図４）に格納する。クライアント情報履歴テーブルもディスク装置１２に格納されている。クライアント履歴テーブルは、クライアントの諸性能の履歴が年月日毎に更新格納されており、平均CPU利用率、平均ディスクI/O量、平均ネットワークI/O量の値の算出方法は平均稼働率の算出方法と同じである。
【００８１】
（Ｓ２０２）：
次に、クライアント情報管理処理部３０のグルーピング処理部３０Ｂは、クライアント情報テーブル１２Ｃを参照して、複数のクライアント１４をグループに自動分類する。その方式として、次のものがある。
【００８２】
（ａ）  複数のクライアントをサブネット毎に分ける。
【００８３】
（ｂ）  複数のクライアントを、IGMP(Internet Group Management Protocol)によって管理されるマルチキャストグループに分ける。
【００８４】
（ｃ）  ルータのホップ数を取得し、固定もしくは管理者指定の閾値により複数のクライアントをグループに分類する。
【００８５】
（ｄ）  OSPF(Open Shortest Path First)等のルーティングプロトコルが用いるパス毎のコストを取得し、固定もしくは管理者指定の閾値により、複数のクライアントを分類する。
【００８６】
（ｅ）  クライアントが所属する部門の違いにより、複数のクライアントを分類する。このためには、サーバ１４は、クライアント１４毎に所属する部門の識別情報の入力を管理者に求め、入力結果をクライアント情報テーブル１２Ｃに登録する。
【００８７】
グルーピング処理部３０Ｂは、複数のクライアント１４をグルーピングした結果をディスク装置１２のグルーピングテーブル１２Ｄに登録する。図５は、グルーピングテーブルの一例であり、グループ名のエントリと、グループに属するクライアントのエントリとを有する。
【００８８】
（Ｓ２０４）：
管理サーバ１０のソフトウェア情報管理処理部３６の優先度決定処理部３６Ａは、クライアント１４のグループ毎に、管理者が、サーバ１０に配置されたソフトウェアイメージをクライアント１４に配布するための優先順位を決定する優先度決定処理を行う。
【００８９】
なお、本実施例では上述の通り、複数のソフトウェアイメージが同じソフトウェアプログラムに対応する場合にも対応するため、優先度決定に必要な情報はソフトウェアプログラムに対して保持する場合を例として説明する。しかし、よりシンプルに同様の情報をソフトウェアイメージに対して保持してもよい。この場合は各情報の「ソフトウェア名」または「ソフトウェアプログラム名」とされた説明を「ソフトウェアイメージの識別子」と置き変えればよい。なお、「ソフトウェア名」は「ソフトウェアプログラム名」と同じ意味である。
【００９０】
優先度決定処理部３６Ａは、図６に示すソフトウェア一覧テーブル１２Ｂにエントリがある、複数種類のソフトウェアプログラムについて、優先度決定処理を行う。ソフトウェア一覧テーブル１２Ｂは、ディスク装置１２に格納され、ソフトウェア情報管理部３６によって参照、又は更新される。ソフトウェアプログラムに優先度を設定する方式として、以下のものがある。
【００９１】
（ｆ）  容量が大きく、転送に時間がかかるソフトウェアイメージに対応するソフトウェアプログラムほど優先度を大きく設定する。
【００９２】
（ｇ）  グループ内で、ソフトウェアプログラムがインストールされたクライアンマシン数が全クライアントマシン数に対して成す比（インストール率）が高いソフトウェア程優先度を大きく設定する。
【００９３】
（ｈ）  このインストール率の直近での増加率が高いソフトウェアプログラムほど優先度を大きく設定する。
【００９４】
（ｉ）  サーバ１０の管理者が、複数のソフトウェアプログラムに設定した順番毎に優先度を決定する。又は、優先度を管理者がソフトウェアプログラムに対して設定した値とする。
【００９５】
ソフトウェア一覧テーブル１２Ｂには、ソフトウェアプログラム名とソフトウェアプログラムに対応するソフトウェアイメージのサイズが含まれている。なお、同じソフトウェアプログラムに対応するソフトウェアイメージが複数ある場合は、当該容量は例えば当該イメージの最大値、平均値、最小値等の所定のルールに従った値を入れても良い。
【００９６】
その他に、ソフトウェア一覧テーブルに、インストール率、インストール率の増加率が含まれてもよい。決定された優先度或いは管理者によって設定された優先度や優先順位は、ソフトウェア配布優先度と冗長係数値テーブル１２Ｅに設定される。このテーブルの一例を図７に示す。
【００９７】
図７のソフトウェア配布優先度・冗長係数値テーブルには、ソフトウェア情報管理処理部３６によって計算された冗長係数値の他、グループ毎のソフトウェアプログラムについての優先度、サーバからのソフトウェアプログラムに対応するソフトウェアイメージのダウンロード回数、総ダウンロード回数と、が登録されている。なお、ダウンロードという言葉は、ダウンロード元の存在を主語とした場合はダウンロード対象の「送信」を意味し、ダウンロード先の存在を主語とした場合はダウンロード対象の「受信」を意味する。
【００９８】
（Ｓ２０６）：
次に、サーバ１０のソフトウェア情報管理処理部３６の冗長係数値計算処理部は、ソフトウェアの冗長係数値の計算処理を実行する。
【００９９】
ここで、「冗長係数値」とは、特定のソフトウェアイメージのコピーを各グループに存在させる上での冗長性に関する指標であり、冗長係数値が高くなると、グループ内で、ソフトウェアイメージが配布されるクライアント数が増加される。したがって、クライアント１４が特定のソフトウェアイメージを必要としたとき、当該ソフトウェアイメージを代表クライアントから取得できる実際の確率が高いことになる。
【０１００】
なお、「特定のソフトウェアイメージのコピー」については、当該イメージの対応元である特定のソフトウェアプログラムに対応していれば、特定のソフトウェアイメージとはデータ同一でなくても、対応ソフトウェアイメージをコピーと見做してもよい。
【０１０１】
ソフトウェアプログラムに対応するソフトウェアイメージに対して、要求元クライアントが単位時間あたりに、代表クライアントのソフトウェアイメージのキャッシュにアクセス可能な所定確率を実現するために、サーバ１０は管理者からの入力によって、冗長係数値を設定する。
【０１０２】
クライアントのグループ毎に、クライアントが単位時間にアクセス可能なソフトウェアイメージのコピーが当該グループに存在する確率の目標値を想定して、冗長係数値は、計算、及び／又は設定によって決定される。この冗長係数値の計算或いは設定は、ソフトウェア一覧テーブルにエントリがある複数のソフトウェアプログラムについて、順番に、次のｊからｎいずれかによって、行われる。
【０１０３】
（ｊ）  冗長係数値計算処理部３６Ｂは、最も大きな容量のソフトウェアイメージに対応するソフトウェアプログラムの冗長係数値を管理者が指定した値にし、ソフトウェアイメージの容量が小さなくなるのに比例して、係数値を小さくする。
【０１０４】
（ｋ）  管理者が設定した優先度が最も高いソフトウェアプログラムの冗長係数値を管理者が設定した値にし、優先度が小さくなるのに比例して、値を小さくする。
【０１０５】
（ｌ）  ソフトウェアプログラムの冗長係数値を管理者が設定した値にする。
【０１０６】
（ｍ）  冗長係数値計算処理部３６Ｂは、その初期値を特定の値にし、或いは、ｊ〜ｌのいずれかで決めた値とする。その後、冗長係数値計算処理部３６Ｂは、ソフトウェア一覧テーブル（ソフトウェア毎の容量）１２Ｂとソフトウェア配布優先度・冗長係数値テーブル（管理サーバからのソフトウェアプログラムのダウンロード回数、ソフトウェアの総ダウンロード回数）１２Ｅとを参照して、クライアントのグループ別に、「図６のソフトウェアの容量×（配布管理サーバからのダウンロード回数÷総ダウンロード回数）」、即ち、ソフトウェアプログラムに対応したソフトウェアイメージの容量とソフトウェアプログラムに対応したソフトウェアイメージの配布状況との組み合わせによるソフトウェアプログラムの特性を定期的に測定し、一定期間内の平均量が、管理者が指定した上限の閾値を超えた場合に冗長係数値を特定の値だけ増やし、下限を下回った場合に特定の値だけ減らす。
【０１０７】
なお、総ダウンロード回数は、ソフトウェアプログラムに対応するソフトウェアイメージがソフトウェアの要求先クライアント１４に、サーバ１０からダウンロードされた回数と、同一グループ内の代表クライアントからダウンロードされた回数との合計数である。
【０１０８】
（ｎ）  前記（ｍ）の測定結果を複数のソフトウェアプログラムについてソートし、値の大きいものから順に管理者が指定した数のソフトウェアプログラムについて冗長係数値を特定の値だけ増やし、値の小さなものから順に管理者が指定した数のソフトウェアプログラムについて特定の値だけ減らす。
【０１０９】
ここで、「管理者が指定した数」について具体的に説明する。例えば、サーバ１０が１０種類のソフトウェアプログラムに対応する複数のソフトウェアイメージが代表クライアントに配布済みとし、各ソフトウェアプログラムの冗長係数を調整したいとする。そのために、サーバ１０は、まずソフトウェアプログラムを優先順位でソートし、上位３種類については冗長係数を増やしたい、逆に、下位３種類については冗長係数を減らしたい、ということをする。この例での「３」が、「管理者が指定した数」となる。
【０１１０】
（Ｓ２０８,Ｓ２１０）：
サーバ１０の代表クライアント管理処理部３２は、各グループについて、クライアントからのプル型のソフトウェアイメージ配信要求に備えるために、ソフトウェアイメージをプッシュ方式によって予め配布すべき代表クライアントを決定する。
【０１１１】
代表クライアントは、各グループにおいて、サーバ１０からソフトウェアイメージの配布を受け、これを配下のクライアントに再送信するべく、代表となるクライアントであり、代表クライアント管理処理部３２は、クライアントの優先度決定処理部３２Ａと、ソフトウェアイメージの配布先決定処理部３２Ｂと、を有する。
【０１１２】
サーバ１０は、ソフトウェアプログラムの優先順位付け（Ｓ２０４）、ソフトウェアプログラムの冗長係数値の計算（Ｓ２０６）を終了した後、クライアントの優先順位付け処理（Ｓ２００８）、ソフトウェアの配布先とすべき代表クライアントの決定処理（Ｓ２０１０）を行う。
【０１１３】
サーバ１０の優先度決定処理部３２Ａは、ソフトウェアプログラムに対応するソフトウェアイメージが配布される代表クライアントの候補となるクライアントを決定或いは選択するために、グループ毎に、クライアントの優先順位付けを行なう。優先度決定処理部３２Ｂが、クライアントの優先順位、すなわち、優先度を決定するには、次の複数の観点の一つ又は組み合わせを参照する。
【０１１４】
（ｏ）  クライアントがノートＰＣでないこと。ネットワークから切断される可能性のあるクライアントの優先度を低くする。
【０１１５】
（ｐ）  平均ＣＰＵ稼働率が少ないほど優先順位が高いこと。
【０１１６】
（ｑ）  平均ディスクＩ／Ｏが少ないほど優先順位が高いこと。
【０１１７】
（ｒ）  平均ネットワークＩ／Ｏが少ないほど優先順位が高いこと。
【０１１８】
（ｓ）  平均稼働率が高いほど優先順位が高いこと。
【０１１９】
（ｔ）  配布済み及び／又は配布される予定のソフトウェアイメージ数またはソフトウェアプログラム数が少ないほど優先順位が高いこと。
【０１２０】
（ｕ）  配布済み及び／又は配布される予定のソフトウェアイメージの総容量またはソフトウェアプログラムの総容量が少ないほど優先度が高いこと。
【０１２１】
優先度決定処理部３２Ａは、（ｏ）〜（ｓ）に係る優先順位を、クライアント情報テーブル１２Ｃを参照して決定する。さらに、（ｔ），（ｕ）に掲げる優先順位を、ソフトウェア配布状況テーブル１２Ｆを参照して決定する。
【０１２２】
優先度決定処理部３２Ａは、ソフトウェア一覧テーブル１２Ｃとソフトウェア配布状況テーブル１２Ｆとをソフトウェア名をキーにして関連させて、代表クライアントに配布されるソフトウェアイメージ（またはソフトウェアプログラム）の容量を得る。
【０１２３】
次いで、優先度決定処理部３２Ａがクライアントの優先度を決定すると、配布先決定処理部３２Ｂがソフトウェアプログラムに対応したソフトウェアイメージを配布すべき代表クライアント（群）を決定する（Ｓ２１０）。
【０１２４】
すなわち、配布先決定処理部３２Ｂは、グルーピングテーブル１２Ｄを参照して、グループ毎に、グループに所属するクライアントを把握する。
【０１２５】
そして、Ｓ２０１０で決定した優先度順にクライアントをソートし、クライアント情報テーブル１２Ｃに基づいて、クライアントごとの平均稼働率を順番に取得して平均稼働率を積算する。
【０１２６】
配布先決定処理部３２Ｂは、積算値と、ソフトウェア配布優先度・冗長係数テーブルに登録されているソフトウェアプログラムの冗長係数値と、を参照し、積算値が冗長係数値を超えるまでクライアントのソートを継続し、係数値を超えた時点でクライアントのソートを終了する。
【０１２７】
ソートされたクライアントが、積算値と比較された冗長係数値が設定されたソフトウェアプログラムについて、代表クライアントになる。一つ又は複数のクライアントが代表クライアントに分類される。
【０１２８】
なお、ソフトウェアの容量が、選択されたクライアントの最大ディスク容量を超える場合には、当該クライアントは代表クライアントに選択されず、配布先決定処理部３２Ｂは、優先度に基づいて次のクライアントをソートする。
【０１２９】
配布先決定処理部３２Ｂが、ソフトウェアプログラムに対応したソフトウェアイメージを配布すべき代表クライアントを決定すると、ソフトウェアの配布状況テーブル１２Ｆに当該代表クライアントのエントリを追加する。
【０１３０】
図８はソフトウェア配布状況テーブルの一例である。ソフトウェア配布状況テーブルは、グループ名のエントリと、配布すべきソフトウェア名のエントリと、グループ毎の代表クライアントのエントリと、ソフトウェアプログラム毎の対応ソフトウェアイメージの配布状態のエントリと、を有する。
【０１３１】
配布先決定処理部３２Ｂは、代表クライアントを決定すると、ソフトウェア配布状態テーブルに代表クライアントのエントリを追加し、ソフトウェアプログラムの配布状態に「配布予定」を登録する（８００）。なお、ソフトウェアプログラムに対応するソフトウェアイメージが配布されると、状態は「配布済み」に変更される（８０２）。
【０１３２】
なお、サーバ１０がソフトウェアの冗長係数値に拘わらず、ソフトウェアプログラムに対応したソフトウェアイメージを配布すべきクライアントを決定する形態として、例えば、ソフトウェアプログラムの冗長係数値を最大化する方式、即ち、グループの全てのクライアントへソフトウェアプログラムに対応したソフトウェアイメージを配布する方式、ディスク使用量を最小化する方式、グループの最も優先度が高いクライアントのみにソフトウェアプログラムに対応したソフトウェアイメージを配布する形態がある。
【０１３３】
（Ｓ２１２）：
次いで、サーバ１０の通信処理部４０は、フローチャートのＳ２１４に示されるように、Ｓ２１２で決定された、ソフトウェアプログラムに対応したソフトウェアイメージの配布先である代表クライアントにソフトウェアイメージの配布処理と、配布結果を代表クライアントから受付けてソフトウェア配状況テーブル１２Ｆに登録する、配布結果受付処理とを実行する。
【０１３４】
配布処理部４０Ａは、代表クライアント群に、ディスクに格納されているソフトウェアイメージを転送する。ソフトウェアイメージの配布はソフトウェアプログラムの優先度が高い順に行われる。管理者は所定のソフトウェアプログラムに対して、当該ソフトウェアプログラムに対応するソフトウェアイメージが配布されるべきグループに制限を設定することができる。
【０１３５】
グループ内に複数の代表クライアントがある場合には、配布処理部４０Ａは、優先度の高い順に、代表クライアントに対してユニキャスト通信を試みる。通信に成功した代表クライアントにソフトウェアイメージ、及び、他の代表クライアントを識別するための一覧情報を送信する。
【０１３６】
ソフトウェアイメージの配布を受けた代表クライアントは、一覧情報に基づいて、同一グループの他の代表クライアントに対してユニキャスト通信を行い、ソフトウェアイメージを転送する。
【０１３７】
そして、結果受付処理部４０Ｂが、配布結果受付処理によって、ソフトウェアイメージを配布した代表クライアントからソフトウェアイメージの受信した旨の配布結果応答を確認すると、ソフトウェア配布状況テーブル１２Ｆの状態の欄を「配布予定」から「配布済み」に変更する(８０２)。
【０１３８】
管理サーバから代表クライアントへのソフトウェアイメージの配布には、サーバ１０が代表クライアント１４へソフトウェアイメージを送信する第１の処理、代表クライアント１４が管理サーバ１０からソフトウェアイメージを受信する第２の処理、そして、代表クライアントが、同一グループの他の代表クライアントへソフトウェアイメージを送信する第３の処理と、がある。
【０１３９】
図９は第１の処理に対応するフローチャートであり、図１０は第２の処理に対応するフローチャートであり、図１１は第３の処理に対応するフローチャートである。
【０１４０】
図９のフローチャートを説明する。配布処理部は４０Ａ、ソフトウェア配布状況テーブル１２Ｆを参照し、ソフトウェアイメージを配信すべき代表クライアントを特定する。
【０１４１】
そして、配布処理部４０Ａは、最も優先度が高い代表クライアントに対して、配布すべきソフトウェアイメージの取得状況を確認するためのリクエストを送信し、リクエストに対する応答結果を受信する（Ｓ９００）。
【０１４２】
なお、リクエストに対する応答が無い場合には、リクエストの送信先代表クライアントへの通信は不可能として、優先度に従って、他の代表クライアントへリクエストを送信する。また、配布処理部４０Ａは、配布すべきソフトウェアプログラムに対応するソフトウェアイメージを、ソフトウェア配布状況テーブル１２Ｆに基づいて選定する。
【０１４３】
次いで、結果受付処理部４０Ｂは、リクエストを受けた代表クライアントからの応答結果に基づいて、代表クライアントがソフトウェアプログラムに対応したソフトウェアイメージを取得済みか否かの判定を行い（Ｓ９０２）、これを否定すると代表クライアントにソフトウェアイメージを送信する（Ｓ９０４）。Ｓ９０２を肯定するとＳ９０４をジャンプする。
【０１４４】
次いで、結果受付処理部４０Ｂは、ソフトウェア配布状況テーブル１２Ｆにおいて、ソフトウェアイメージを取得した代表クライアントの状態を「配布済み」に更新する（Ｓ９０６）。
【０１４５】
次いで、結果受付処理部４０Ｂは、ソフトウェア配布状況テーブ１２Ｆを参照して、ソフトウェアイメージを配布した代表クライアントと同一グループに属する他の代表クライアントを検索する(Ｓ９０８)。
【０１４６】
この検索は次のようにして行われる。結果受付部４０Ｂは、ソフトウェア配布状況テーブル１２Ｆから、以下の全てを満たすテーブルのエントリを選定する。
【０１４７】
＊  グループ名がソフトウェアイメージの送信を受けた代表クライアントに対応するグループ名と同一である。
【０１４８】
＊  ソフトウェア名がこの代表クライアントに配布したソフトウェアイメージに対応するソフトウェアプログラムの名前と同一である。
【０１４９】
＊  状態が「配布予定」である。
【０１５０】
そして、配布処理部４０Ａは選定した一つ又は複数のエントリに属するクライアント名を、Ｓ９０４において、ソフトウェアイメージを送信した代表クライアントに送信する（Ｓ９１０）。
【０１５１】
次に、図１０に基づいて、代表クライアント１４が行う、サーバ１０4からのソフトウェアイメージの受信処理を説明する。クライアント１４のソフトウェア受信処理部６２Ｂは、サーバ１０からソフトウェアイメージの取得状況を確認するためのリクエストを受信すると(Ｓ１０００)、ディスク装置１４Ｂ内のソフトウェアイメージのデータを参照して、ソフトウェアイメージを取得済みか否か判定する(Ｓ１００２)。
【０１５２】
ソフトウェア受信処理部６２Ｂがこの判定を否定すると、ソフトウェアイメージの未取得をサーバ１０の結果受付処理部４０Ｂに応答する(Ｓ１０００４)。
【０１５３】
次いで、ソフトウェア受信処理部６２Ｂは、サーバ１０からソフトウェアイメージを、通信インターフェース５０を介して受信し、これをディスクインターフェース５２からディスク１４Ｂのソフトウェアイメージの記憶領域に保存する(Ｓ１００６)。
【０１５４】
次いで、ソフトウェア受信処理部サーバ１０からクライアント名の一覧を受信して、受信データをソフトウェア配布タスクテーブル７２に登録する。
【０１５５】
ソフトウェア配布タスクテーブル７２は、ソフトウェアイメージの送信を受けた代表クライアントが同一グループの他の代表クライアントにソフトウェアイメージを送信するためのタスクを管理するものである。
【０１５６】
図１２にソフトウェア配布タスクテーブルの例を示す。ソフトウェア配布タスクテーブルには、タスクのエントリと、送信すべきソフトウェアイメージの対応元ソフトウェアプログラム名のエントリと、ソフトウェアプログラムに対応したソフトウェアイメージを送信すべき代表クライアントのエントリと、送信状態のエントリとが設けられている。
【０１５７】
なお、ソフトウェアプログラム名の代わりとしてソフトウェアイメージの識別子を用いても良い。ソフトウェア送信処理部６４Ａがクライアント名を送信タスク一覧テーブルに登録した最初の状態では、送信状態を「未完了」に設定する。なお、Ｓ１００２が否定されると、処理はＳ１００６にジャンプする。
【０１５８】
次に、図１１に基づいて、サーバ１０からソフトウェアイメージの配布を受けた代表クライアント１４が、この代表クライアントと同一グループに属する他の代表クライアントに当該ソフトウェアイメージを分配するフローチャートについて説明する。
【０１５９】
このフローチャートの説明を分かりやすくするため、前者の代表クライアントを第１の代表クライアントと、後者の代表クライアントを第２の代表クライアントとして、便宜上両者を区別する。
【０１６０】
第１の代表クライアントのソフトウェア送信処理部６４Ａは、ソフトウェア配布タスクテーブル７２を参照して、状態が「完了」でない第２の代表クライアントを選定し、通信インターフェース５０及びＬＡＮ７６を介して、選定された第２の代表クライアントに接続できるか否かを判定する（Ｓ１１００）。
【０１６１】
この判定を肯定すると、当該第２の代表クライアントに対してソフトウェアイメージの取得状況を確認するリクエストを送信し、その返答を受け取る（Ｓ１１０２）。
【０１６２】
次いで、ソフトウェア送信処理部６４Ａは、返答に基づいて、第２の代表クライアントがソフトウェアイメージを、取得済みか否かを判定する（Ｓ１１０４）。
【０１６３】
この判定を否定すると、ソフトウェア送信処理部６４Ａは、ディスク装置１４Ｂからソフトウェアイメージを読み出して、これを第２の代表クライアントに送信する（Ｓ１１０６）。
【０１６４】
次いで、ソフトウェア送信処理部６４Ａは、ソフトウェア配布タスクテーブル７２から代表クライアント名称の一覧を読み出し、これを第２の代表クライアントに送信する（Ｓ１１０８）。
【０１６５】
第１の代表クライアントのソフトウェア送信処理部６４Ａは、ソフトウェア配布ステータステーブル７２において、ソフトウェアイメージの送信先である第２の代表クライアントの「状態」を「送信済」に更新し（Ｓ１１１０）、第２の代表クライアントからソフトウェアイメージを受信した旨の応答を受けると、サーバ１０に、第１の代表クライアントから第２の代表クライアントへソフトウェアイメージの送信が済んだことを報告する（Ｓ１１１２）。
【０１６６】
なお、サーバ１０の配布状況画面表示処理部４２は、第２の代表クライアントからの係る報告に基づいて、ソフトウェアイメージの送信状況テーブルを作成し、これを管理者に表示する。このテーブルの詳細は後述する。
【０１６７】
次いで、ソフトウェア送信処理部６４Ａは、ソフトウェア配布タスクテーブル７２において、送信対象ソフトウェア名に対する第２の代表クライアントの「状態」のエントリを「完了」に更新する（Ｓ１１１４）。
【０１６８】
なお、ソフトウェア送信処理部６４ＡがＳ１１０４を否定判定すると、ソフトウェア配布タスクテーブルの「状態」を「接続不可」に更新して処理を終了する。さらに、ソフトウェア送信処理部６４Ａが、Ｓ１１０４を肯定判定すると、Ｓ１１１０にジャンプする。
【０１６９】
次に、クライアントが代表クライアントからソフトウェアイメージを取得し、これをインストールする動作について説明する。
【０１７０】
クライアントのユーザが、あるソフトウェアプログラムを必要とした場合、当該クライアントは、自身と同じグループに属す代表クライアントの一覧をサーバから取得し、一覧中の代表クライアントへ順次アクセスする。
【０１７１】
クライアントは、代表クライアントの１つと通信でき、代表クライアントが所望のソフトウェアプログラムに対応するソフトウェアイメージを保持していれば、代表クライアントからこのソフトウェアイメージを受信する。全ての代表クライアントと通信できない、あるいは、全代表クライアントが所望のソフトウェアプログラムに対応するソフトウェアイメージを所有していなかった場合には、クライアントは管理サーバから所望のソフトウェアプログラムに対応したソフトウェアイメージを取得する。
【０１７２】
サーバが、ソフトウェアの優先度および冗長係数値を決定する上で、サーバからのダウンロードか代表クライアントからのダウンロードかを区別することが必要な場合、クライアントは、サーバに対し、ソフトウェアイメージの取得元の種類（管理サーバか、或いは、代表クライアントか）を報告する。そして、クライアントは、受信したソフトウェアイメージを用いて所望のソフトウェアプログラムをインストールする。
【０１７３】
サーバがソフトウェアプログラムの使用ライセンスを管理する場合、あるいは、ソフトウェアプログラムのインストール回数を、ソフトウェアプログラムの配布の管理のパラメタとして用いる場合、クライアントはサーバに対し、ソフトウェアプログラムをインストールしたことを報告する。
【０１７４】
なお、代表クライアントは要求元クライアントのようにソフトウェアプログラムをインストレールすることなく、ソフトウェアプログラムに対応したソフトウェアイメージをキャッシュ（一時コピー）の状態でメモリに保持する。一方、代表クライアントがソフトウェアプログラムを必要とする場合は、ソフトウェアイメージのキャッシュを用いてインストールを行えばよい。
【０１７５】
図１３は代表クライアントのソフトウェア配布処理のフローチャートである。代表クライアントのソフトウェア送信処理部６４Ａは、クライアントから接続要求受けると（Ｓ１３００）、クライアントから要求されたソフトウェアプログラムに対応したソフトウェアイメージを保持しているか否かを判定し（Ｓ１３０２）、これを肯定すると、要求されたソフトウェアプログラムに対応したソフトウェアイメージを保持していることを表す情報を要求元クライアントに送信し（Ｓ１３０４）、次いで、要求されたソフトウェアプログラムに対応するソフトウェアイメージを送信する（Ｓ１３０６）。
【０１７６】
Ｓ１２００２の判定を否定すると、代表クライアントは、要求元クライアントへ要求されたソフトウェアプログラムに対応するソフトウェアイメージを保持していないことを示す情報を送信する（Ｓ１３０８）。
【０１７７】
図１４は、ソフトウェアの要求元クライアントのソフトウェアイメージの受信処理とインストール処理のフローチャートである。クライアント１４のソフトウェア受信処理部６２Ｂは、ユーザから、インストールしたいソフトウェアプログラム名の入力を受ける（Ｓ１４００）。
【０１７８】
次いで、ソフトウェア受信部６２Ｂは、サーバ１０から、自身が所属するグループにおいて、Ｓ１４００においてユーザが指定したソフトウェアプログラムに対応するソフトウェアイメージを保持する代表クライアントの一覧の情報を取得する(Ｓ１４０４)。一覧の情報を取得したソフトウェア受信部６２Ｂは、一覧中の各代表クライアントに対して、後述の処理を行う。
【０１７９】
次いで、要求元クライアント１４のソフトウェア受信処理部６２Ｂは、代表クライアントにソフトウェアイメージの取得要求を送信する（Ｓ１４０６）。なお、当該要求で指定するのはソフトウェアプログラムの名前だが、ソフトウェアイメージの識別子を指定してもよい。
【０１８０】
要求元クライアント１４は、代表クライアントからの応答に基づいて、代表クライアントが目的のソフトウェアプログラムに対応するソフトウェアイメージを保持しているか否かを判定する（Ｓ１４０７）。
【０１８１】
これを肯定すると、ソフトウェア受信処理部６２Ｂは、代表クライアントのソフトウェア送信処理部６４Ａから目的のソフトウェアプログラムに対応するソフトウェアイメージを受信する（Ｓ１４０８）。
【０１８２】
次いで、要求元クライアント１４は、サーバに、代表クライアントからソフトウェアプログラムに対応したソフトウェアイメージをダウンロードしたことを報告し（Ｓ１４１０）、次いで、後述するＳ１４１６を実行する（Ｓ１４１０）。
【０１８３】
Ｓ１４０７の判定が否定されると、要求元クライアント１４は、他の代表クライアントにアクセスして（取得要求を送信）、ソフトウェアプログラムに対応したソフトウェアイメージの取得を試みる。ソフトウェアイメージの取得が成功すると（Ｓ１４１２：Ｎｏ）、取得できたソフトウェアイメージを用いてソフトウェアプログラムをインストールし（Ｓ１４１６）、その旨をサーバに送信する（Ｓ１４１８）。
【０１８４】
一方、要求元クライアントのソフトウェア受信処理部６２Ｂがソフトウェアプログラムに対応するソフトウェアイメージを全ての代表クライアントから取得できないと判定すると（Ｓ１４１２：Ｙｅｓ）、サーバ１０にアクセスし、サーバ１０の配布処理部４０Ｂからソフトウェアイメージ配布を受ける（Ｓ１４１４）。
【０１８５】
ソフトウェアイメージの配布を受けたクライアント１４のインストール処理部６２Ｃは、配布されたソフトウェアイメージを用いてソフトウェアプログラムをインストールし（Ｓ１４１６）、その旨をサーバに送信する（Ｓ１４１８）。
【０１８６】
次に、代表クライアントに複数のクライアントから同時にソフトウェアイメージの配布の要求があった場合における、代表クライアントの動作について説明する。
【０１８７】
あるグループ内のある代表クライアントが、ある時点において、同一のソフトウェアイメージの規定数以上の取得要求を同時に処理する場合、代表クライアント又はサーバは、要求を出したクライアントの１つを新たな代表クライアントとして設定し、送信処理を並列化する。代表クライアントの係る処理をフローチャートにしたがって用いて説明する。
【０１８８】
図１５は代表クライアントの動作の概要を示すフローチャートである。代表クライアントが、ソフトウェアイメージの要求元クライアントから接続要求を受けると（Ｓ１５００）、要求されたソフトウェアプログラムに対応するソフトウェアイメージを保持しているか否かを判定する（Ｓ１５０２）。
【０１８９】
この判定を肯定すると、代表クライアントのソフトウェア送信処理部６４Ａは、ソフトウェアプログラムに対応するソフトウェアイメージを保持していることを示す情報を要求元クライアントに送信する（Ｓ１５０４）。
【０１９０】
次いで、代表クライアントのソフトウェア送信処理部６４Ａは、ソフトウェアプログラムに対応するソフトウェアイメージを要求元クライアントに送信し、そして、新規の代表クライアントを作成する（Ｓ１５０６）。このステップの詳細は、後述の図１６のフローチャートに示すとおりである。
【０１９１】
代表クライアントが要求されたソフトウェアプログラムに対応するソフトウェアイメージを保持していないと判定すると、その旨を示す情報を要求元クライアントに送信する（Ｓ１５０８）。
【０１９２】
図１６のフローチャートに示すように、代表クライアントのソフトウェア送信処理部６４Ａはソフトウェアイメージを送信する対象クライアントをメモリ６０の所定のワーク領域に格納する（Ｓ１６００）。対象クライアントが複数存在する場合には、複数の対象クライアントがワーク領域に格納される。
【０１９３】
ソフトウェア送信処理部６４Ａは、ワーク領域を参照して、複数のクライアントが登録されていると、これを、ソフトウェアの並列送信が実行されている対象数、即ち、並列処理数とする（Ｓ１６０２）。
【０１９４】
ソフトウェア送信処理部６４Ａは、並列処理数と規定数とを比較し（Ｓ１６０４）、並列数が規定数以上であると判定すると、ディスク装置１４Ｂのソフトウェア送信状況テーブル７４に必要な情報を登録する。
【０１９５】
図１７は、ソフトウェア送信状況テーブルの一例である。ソフトウェア送信状況テーブルは、ソフトウェアプログラム名のエントリと、ソフトウェアの送信先クライアント名のエントリと、新代表フラグのエントリと、中断フラグのエントリと、ソフトウェアプログラムに対応したソフトウェアイメージの受信元クライアント名のエントリとを有している。
【０１９６】
代表クライアントのソフトウェア送信処理部６４Ａはあるクライアントの中から新規の代表クライアントを選択し、ソフトウェア送信状況テーブル７４において、当該クライアントを送信先クライアント名とするエントリに新代表フラグを立てる（Ｓ１６０５）。
なお、複数の送信先クライアントのうち少なくとも一つのクライアントに代表フラグが既に立っている場合には、この処理を実際には行わない。
【０１９７】
新代表クライアントの選び方として、バイト数が最も少ないソフトウェアプログラムに対応するソフトウェアイメージが送信される予定のクライアントを新代表クライアントとする方式がある。
【０１９８】
また、ソフトウェアイメージの配布を要求された代表クライアントが、中央サーバに照会し、ソフトウェアイメージの配布先クライアント群の中で最も優先度の高いクライアントを新代表クライアントとする。
【０１９９】
ソフトウェア送信処理部６４Ａが、並列処理数が規定数より小さいと判定し、又は、Ｓ１６０５の処理を終了すると、ソフトウェア送信状況テーブル７４に、送信対象のクライアント名を追加する（Ｓ１６０６）。次いで、ソフトウェア送信処理部６４Ａは、ソフトウェアイメージの送信のための処理を実施する。この処理を、図１８に基づいて詳しく説明する。なお、送信の処理は、ソフトウェアイメージを複数のブロックに分け、順次転送されることによって達成される。
【０２００】
代表クライアントのソフトウェア送信処理部６４Ａは、ブロックを送信するためのパケットの種類を「ソフトウェア」とする（Ｓ１８００）。次いで、パケットを送信対象であるクライアントに送る（Ｓ１８０２）。
【０２０１】
次いで、ソフトウェア送信処理部６４Ａは、ソフトウェア送信状態テーブルを検索し、送信対象のクライアントについて中断フラグを確認し（Ｓ１８０４）、中断フラグの有無を判定する（Ｓ１８０６）。
【０２０２】
中断フラグが立っていないと判定すると、ソフトウェアイメージ送信の完了を判定し（Ｓ１８０８）、未完了と判定するとＳ１８００に戻る。完了と判定すると図１６のＳ１６１０に移動する。
【０２０３】
Ｓ１８０６において、中断フラグが立っていると判定されると、代表クライアントのソフトウェア送信処理部６４Ａは、パケットの種類を「中断」とし（Ｓ１８１０）、送信先クライアントに当該パケットを送信し、さらに、当該パケットを送信したクライアントに、ソフトウェア送信状況テーブル７４の受信元クライアント情報を送信して（Ｓ１８１２）、図１６のＳ１６１０に移動する。
【０２０４】
図１６のＳ１６１０において、代表クライアントのソフトウェア送信処理部６４Ａは、ソフトウェアイメージの送信が中断されたと判定すると、中断された対象のクライアント名のエントリをソフトウェア送信状況テーブルから削除する（Ｓ１６１２）。
【０２０５】
Ｓ１６１０が中断されないとの判定であると、代表クライアントのソフトウェア送信処理部６４Ａは、パケットの種類を「完了」にする（Ｓ１６１３）。
【０２０６】
次いで、代表クライアントのソフトウェア送信処理部６４Ａは、ソフトウェア送信状況テーブル７４を参照して、送信対象クライントに新代表フラグが立っているか否かを判定する（Ｓ１６１４）。新代表フラグが立っていないと判定すると、送信対象クライアントに新代表ではないことを通知する（Ｓ１６１６）。新代表フラグが立っていることを判定すると、送信対象クライアントに新代表クライアントになることを通知する（Ｓ１６１８）。さらに、サーバに送信対象クライアントが新代表になったことを通知する（Ｓ１６２０）。
【０２０７】
次いで、ソフトウェア送信処理部６４Ａは、送信処理中のクライアントのうち半数あるいは指定された割合のものを選び、ソフトウェア送信状況テーブル７４における、当該クライアントのエントリに中断フラグを立てる（Ｓ１６２２）。
【０２０８】
さらに、中継フラグを立てた送信先クライアントのエントリの受信元クライアントとして、新代表フラグを立てた新代表クライアントの名称を記録する（Ｓ１６２４）。
【０２０９】
サーバ又は新代表クライアントからソフトウェアイメージの配布を受けるクライアントの動作は、既述の図１４に沿ったものになるが「ソフトウェアイメージを受信する」（Ｓ１４０８）が、図１９のルーチンに置き換わる。
【０２１０】
すなわち、要求元クライアントのソフトウェア受信処理部６２Ｂがパケットを取得すると、パケットの種類を確認する（Ｓ１９００）。
【０２１１】
次いで、パケットの種類を判定する（Ｓ１９０２）。パケットの種類が「完了」の場合には、パケットのデータを確認して（Ｓ１９０４）、新代表フラグデータを立てるコマンドが存在するか否かを判定し（Ｓ１９０６）、この判定を肯定すると、代表クライアントから受信した、ソフトウェアイメージの全ブロックをディスク１４Ｂの配布用ソフトウェアデータ格納領域に保存する（Ｓ１９０８）。
【０２１２】
一方、パケットの種類が「ソフトウェア」の場合は、受信したブロックをディスク１４Ｂに保存する（Ｓ１９１２）。また、パケットの種類が「中断」の場合は、中断パケットを受信してソフトウェアイメージの配布が中断されたクライアントは、ソフトウェア送信状況テーブル７４の受信元クライアントに、新代表としてアクセスし、当該受信元クライアントから、中断されたソフトウェアイメージの再送信を受ける（Ｓ１９１０）。
【０２１３】
次に、サーバによって、クライアント群に一旦配置したソフトウェアプログラムに対応するソフトウェアイメージのコピーを再配置する動作について説明する。なお、ソフトウェアイメージのコピーの定義については既に説明した通りである。
【０２１４】
サーバは、例えば、クライアントの増設又は減設を確認すると、又は、定期的に、ソフトウェアプログラムの優先度と必要な冗長係数値を計算し、最新の計算結果に対して、ソフトウェアイメージのコピーが偏って配置されていれば、クライアント群におけるソフトウェアイメージのコピーを再配置する。
【０２１５】
以下、サーバが行う、再配置の処理について説明する。サーバの再配置処理部３４は、定期的に、以下の処理を実行する。
【０２１６】
（１）クライアントの増減を確認する。サーバは、当該サーバに接続するクライアントから、インベントリ情報を収集し、各グループ内でのクライアントの増減を確認する。増減を、前回の収集結果と最新の収集結果との差分に基づいて計算する。サーバは、インベントリ情報を収集する都度、最終更新日を記録し、管理者が指定した時間以上に亘って更新が無かったクライアントは減設されたと判定する。
【０２１７】
（２）クライアントが増減された場合、代表クライアントのリストをメンテナンスする。クライアントの減設が代表クライアントに及ぶと、ソフトウェア配布状況テーブル１２Ｆ等の減設されたクライアントのエントリを削除する。
【０２１８】
（３）ソフトウェアプログラムの優先度、冗長係数、クライアントの優先度を、増設又は減設後のクライアント群について再計算を実行する。
【０２１９】
（４）クライアント群に対して、ソフトウェアプログラムに対応したソフトウェアイメージを再配置する。この再配置の処理方式には複数の形態がある。
【０２２０】
例えば、（Ａ）計算し直した、ソフトウェア及び/又はクライアントの優先度に、クライアント群でのソフトウェアプログラムに対応したソフトウェアイメージの配置状況を合わせる方式、（Ｂ）現状のソフトウェアプログラムに対応したソフトウェアイメージの配布状況が、管理者が望む冗長性を満足していない、あるいは、管理者が望む冗長性を超過している場合に、対応するソフトウェアイメージの再配置を行う方式である。
【０２２１】
先ず、（Ａ）の方式について説明する。管理サーバの再配置処理部３４は、増設又は減設が生じたクライアント群について、新規の代表クライアントの一つ又は複数の候補を得る。再配置処理部３４は、既存の代表クライアントと新規の代表クライアントとを比較し、代表から外れるクライアントと、新たに代表になるクライアントを判定する。
【０２２２】
再配置処理部３４は、既存の代表クライアントの任意の１つに対し、新規に代表クライアントになるクライアントのアドレスを送ると共に、新代表クライアントへ既存代表クライアントからソフトウェアを送信する命令を与える。
【０２２３】
このソフトウェア送信命令を受けた代表クライアントのソフトウェア送信処理部６４は、新規に代表となるクライアントのそれぞれへソフトウェアイメージを送信し、送信が完了するとサーバの再配置処理部３４へこの送信が完了したことを報告する。サーバは、送信完了の報告を受けると、代表から外れるクライアントにソフトウェアイメージを削除するための命令を送る。
【０２２４】
次に（Ｂ）の方式について説明する。再配置処理部３４は、現状の代表クライアントについて、クライアント情報テーブル１２Ｃをして参照して、最新の平均稼働率を取得し、これらを積算する。
【０２２５】
この積算結果が修正後の冗長係数値と比較して、冗長係数値に対して不足している場合には、不足分を補うように、優先度順に新たなクライアントを新規の代表とする。
【０２２６】
さらに、再配置処理部３４は、既存の代表クライアントの１つを選び、例えば、最もＩ／Ｏ負荷が小さいクライアントを選択して、このクライアントに、新規に代表クライアントにソフトウェアイメージを送信するための命令を送る。
【０２２７】
反対に冗長係数値を超えている場合には、既存の代表クライアントのうち最も優先度の低いものを、平均稼働率を積算する対象から順番に除いて、積算結果が修正後の冗長係数値を下回るまでこれを続ける。積算結果が冗長係数値を下回る直前まで除かれたクライアントを代表から除くべきものと判断して、当該クライアントにソフトウェアイメージを削除する命令を送る。
【０２２８】
次に、サーバの配布状況画面表示処理部４２が管理者から画面表示の要求を受けると、ディスク１２の更新後の各テーブル情報に基づいて、管理用表示情報を生成し、これを画面表示用クライアント２８の管理画面に表示出力を行う。図２０は管理画面の一例である。この管理画面は、次の各エントリを有している。
【０２２９】
グループ名は、ソフトウェア配布状況テーブル１２Ｆのグループ名のカラムに対応する。グループ毎の｛総ディスク容量、総空きディスク容量｝は、クライアント情報テーブル１２Ｃのディスク総容量カラム、ディスク空き容量カラムに対応する。
【０２３０】
グループ毎の配布したソフトウェアイメージの総容量は、ソフトウェア配布状況テーブル１２Ｆとソフトウェア一覧テーブル１２Ｂとをソフトウェアプログラム名について関連させ、ソフトウェア配布状況テーブル１２Ｆの状態カラムが「配布済み」であるエントリの「サイズ」をグループ毎にまとめた値である。
【０２３１】
ソフトウェア名は、ソフトウェア配布状況テーブル１２Ｆのソフトウェア名のカラムに対応する。グループ毎、ソフトウェア毎の「代表クライアント数、代表クライアントの名前」は、ソフトウェア配布状況テーブル１２Ｆの、クライアント名のカラムに対応する。
グループ毎、ソフトウェアプログラム毎の、ソフトウェアプログラムの冗長係数値は、ソフトウェア配布優先度と冗長係数値テーブル１２Ｅの、冗長係数値カラムの値に対応する。
【０２３２】
グループ毎、ソフトウェアプログラム毎の、全代表クライアントの合計平均稼動率の履歴は、ソフトウェア配布状況テーブル１２Ｆとクライアント情報テーブル１２Ｂとを、クライアント名について結合し、ソフトウェア配布状況テーブル１２Ｆの状態カラムが「配布済み」であるエントリについて、日付毎の平均稼働率を、グループ毎かつソフトウェアプログラム毎にまとめた値に対応する。
【０２３３】
既述の実施形態の変形例として、次のものがある。サーバからの指示で、クライアントが自身を代表クライアントであるか否かを判断し、代表クライアントの場合には、ソフトウェアがキャッシュされる領域の情報（アドレス、容量など）をサーバに送信する。サーバはクライアントからの情報に応じてソフトウェアを当該クライアントに配布する。
【０２３４】
既述の実施形態では、サーバから代表クライアントへのプッシュ型の配布例について説明したが、ソフトウェアプログラムを代表クライアントへ配布する方式は、代表クライアントからの要求に基づくプル型であることを妨げるものではない。
【０２３５】
また、以上の実施形態では、プル型のクライアント（又は代表クライアント）が代表クライアント又はサーバに対するソフトウェアイメージの取得を要求する場合は、当該要求にてソフトウェアプログラム名を指定する（代表クライアント同士や代表クライアントとサーバ間も同様であってもよい）。
【０２３６】
これにより代表クライアント又はサーバから指定されたソフトウェアプログラム名に対応するソフトウェアイメージを代表クライアント又はサーバから受信する。また、ソフトウェアイメージの配布管理については一つのソフトウェアプログラムのインストールのために複数のソフトウェアイメージが存在する場合があるため、ソフトウェアプログラムとして配布管理（必要な情報の格納又は／及び処理の実施）を行うことを中心に開示した。
【０２３７】
しかし、取得時に指定するソフトウェアプログラム名の代わりにソフトウェアイメージの識別子を用いてもよい。また、ソフトウェアイメージの配布管理としてソフトウェアプログラムとしてではなく、ソフトウェアイメージとして配布管理を行ってもよい。
【産業上の利用可能性】
【０２３８】
本発明の計算機システムは、管理サーバがソフトウェアイメージを備え、ソフトウェアイメージを必要とするクライアントの要求に基づいて、当該ソフトウェアイメージをクライアントに配布するシステムに組み込むことができる。
【符号の説明】
【０２３９】
１０・・・ソフトウェア配布用管理サーバ
１２・・・サーバのディスク装置
１４・・・クライアント
１４Ａ・・代表クライアント
１４Ｂ・・クライアントのディスク装置
２８・・・画面表示用クライアント
【図１】
2011135629.tif 000003
【図２】
2011135629.tif 000004
【図３Ａ】
2011135629.tif 000005
【図３Ｂ】
2011135629.tif 000006
【図４】
2011135629.tif 000007
【図５】
2011135629.tif 000008
【図６】
2011135629.tif 000009
【図７】
2011135629.tif 000010
【図８】
2011135629.tif 000011
【図９】
2011135629.tif 000012
【図１０】
2011135629.tif 000013
【図１１】
2011135629.tif 000014
【図１２】
2011135629.tif 000015
【図１３】
2011135629.tif 000016
【図１４】
2011135629.tif 000017
【図１５】
2011135629.tif 000018
【図１６】
2011135629.tif 000019
【図１７】
2011135629.tif 000020
【図１８】
2011135629.tif 000021
【図１９】
2011135629.tif 000022
【図２０Ａ】
2011135629.tif 000023
【図２０Ｂ】
2011135629.tif 000024
【国際調査報告】
2011135629.tif 000025
2011135629.tif 000026
2011135629.tif 000027
2011135629.tif 000028