JPWO2011135629A1 - 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム - Google Patents
計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム Download PDFInfo
- Publication number
- JPWO2011135629A1 JPWO2011135629A1 JP2012512540A JP2012512540A JPWO2011135629A1 JP WO2011135629 A1 JPWO2011135629 A1 JP WO2011135629A1 JP 2012512540 A JP2012512540 A JP 2012512540A JP 2012512540 A JP2012512540 A JP 2012512540A JP WO2011135629 A1 JPWO2011135629 A1 JP WO2011135629A1
- Authority
- JP
- Japan
- Prior art keywords
- software
- client
- representative
- software image
- client computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
【課題】代表クライアントを用いたソフトウェア配信管理システムの利便性を向上させる。【解決手段】本発明に係る計算機システムは、複数のクライアントと、前記複数のクライアントの一つ又は複数に配布するソフトウェアを含むサーバと、前記サーバと前記複数のクライアントと、を備える。前記サーバは、前記複数のクライアントからの情報に基づいて、前記複数のクライアントを複数のグループに分類し、各グループについて代表クライアントを選定し、前記代表クライアントへ前記ソフトウェアを配布することを実行する。前記ソフトウェアの配布を受けた前記代表クライアントは、同一グループに属する他のクライアントに前記ソフトウェアを当該他のクライアントに配布する。サーバは、ソフトウェアの配布管理情報に基づいて、管理用表示情報を管理画面に出力する。なお、サーバから代表クライアントへのソフトウェア配布は事前に行われても良い。
Description
本発明は、計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システムに関するものである。
大容量のソフトウェアプログラムをクライアントに配布する技術において、クライアントと中央の管理サーバとの通信がボトルネックとなる。この傾向は、インターネット等の比較的低速の回線によって、中央管理サーバとクライアント群とが接続される環境では顕著である。
その対策の一例として、複数のクライアント間でP2P型のソフトウェアプログラムの配布を行うことによって、サーバとクライアント間の通信回数や通信負荷の低減を図っている。
この種の方式に関連した先行技術として、例えば、特開2009−271904号公報に記載されたものが存在する。この先行技術は、管理者が指定したソフトウェアプログラムをクライアント群へ配布する、いわゆるプッシュ型の配布に関して、P2P型の配布方式を提案している。すなわち、管理装置は、クライアント群の中から代表クライアントを選択し、代表クライアントを中継サーバのように動作させて、代表クライアントから他のクライアントへソフトウェアプログラムの配布を行うようにしている。
さらに、この先行技術は、代表クライアントの数を、ソフトウェアの配布処理の並列度が十分になるように決定して、管理者が指定した、ソフトウェアプログラムの配布期限を満たすようにすることを開示している。
さらに、他の関連先行技術として、米国特許7,529,809号公報に記載されたものがある。この先行技術は、クライアントのユーザが必要としたタイミングでソフトウェアプログラムを配布する、いわゆるプル型のソフトウェアプログラムの配布システムにおいて、サーバとクライアントとの間でソフトウェアプログラムの転送回数を減らす方式を開示している。
すなわち、複数のクライアントが、リモートサイトのソフトウェアプログラムを要求する場合には、複数のクライアント間でネゴシエーションを行い、一回だけリモートサイトからソフトウェアプログラムを代表クライアントにダウンロードする方式が提案されている。
既存の先行技術は代表クライアントを用いたソフトウェア配布について開示はしているが、利便性については向上の余地がある。その例としては以下の二つがある。
(A)既述の先行技術では、クライアントへのソフトウェアの配布の状態、例えば、ソフトウェアのダウンロードに影響を与える設定、ソフトウェアのダウンロードの進捗などを把握できず管理面における利便性が低い。
(B)既述の先行技術では、ソフトウェアが代表クライアントに存在しない場合、クライアントがネットワークを介してサーバからソフトウェアを取得するまでの時間が長いため、クライアントを用いるユーザの利便性が低い。
そこで、本発明は以下の二つのいずれか又は両方を提供することを目的とする。
(1)クライアントへのソフトウェアの配布の状態、ソフトウェアのダウンロードの進捗などを把握できる、ソフトウェアの配布管理システムを提供する。
(2)クライアントがネットワークを介してサーバからソフトウェアを迅速に取得できる、ソフトウェアの配布管理システムを提供する。
そこで、本発明は、係る課題を解決するために、複数のクライアントと、前記複数のクライアントの一つ又は複数に配布するソフトウェアを含むサーバと、前記サーバと前記複数のクライアントとを接続するネットワーク、を備える。
前記サーバは、前記複数のクライアントからの情報に基づいて、前記複数のクライアントを複数のグループに分類し、各グループについて代表クライアントを選定し、前記代表クライアントへ前記ソフトウェアを配布することを実行する。
前記ソフトウェアの配布を受けた前記代表クライアントは、同一グループに属する他のクライアントに前記ソフトウェアを当該他のクライアントに配布する。
サーバは、ソフトウェアの配布管理情報に基づいて、管理用表示情報を管理画面に出力する。なお、サーバから代表クライアントへのソフトウェア配布は事前に行われてもよい。
以上説明した本発明によれば、代表クライアントを用いたソフトウェア配布管理システムの利便性を向上させることができる。
以下に本発明に係る計算機システムの実施形態について説明する。なお、以後の説明では「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、DB、キュー、等に限定されるわけではなく、これら以外のデータ構造で表現されていてもよい。
そのため、データ構造に依存しないことを示すために「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等について「aaa情報」と呼ぶことがある。
さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはCPUによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、CPUを主語とした説明としてもよい。
また、プログラムを主語として開示された処理はプログラムを実行する計算機が行う処理としてもよい。また、プログラムの一部または全てが専用ハードウエアによって実現されてもよい。
また、各種プログラムは、プログラム配布サーバ計算機や記憶メディアによって各計算機にインストールされてもよい。
図1は、管理サーバ計算機からクライアント計算機群にソフトウェアプログラムの配布を実施するための計算機システムのブロック図である。
なお、この計算機システムのハードウエア構成は、既述の特開2009−271904号公報に類するものである。したがって、特開2009−271904号公報の全ての記載事項が本願に引用され、そして補充される。
計算機システムは、ソフトウェアプログラムを含むファイルを備え、クライアント計算機にソフトウェアプログラムに対応するソフトウェアイメージの配布を管理するサーバ計算機(以下、単に「サーバ」と呼ぶ。)10と、複数のクライアント計算機(以下、単に「クライアント」と呼ぶ。)14と、が、インターネット等の広域ネットワーク26によって接続された構成を備えている。
なお、ソフトウェアプログラムに対応するソフトウェアイメージには、クライアントがインストール対象とするソフトウェアプログラムを実行可能とするための情報及び/又はプログラムが含まれる。また、ソフトウェアプログラムとソフトウェアイメージについて「対応する」と表現した場合は前述の意味を持つものとする。実施形態中の説明として「ソフトウェアプログラムに対応したソフトウェアイメージ」という表現は長いため、単に「ソフトウェアイメージ」と表現する場合もある。なお、既述の「実行可能とするための情報」及び/又は「プログラム」の例は以下のとおりである。
* ソフトウェアプログラムのファイルとその設定情報。当然ながらソフトウェアイメージがソフトウェアプログラムのファイルそのものでもよい。
* ソフトウェアプログラムをインストールするためのインストールプログラムファイルと、インストールプログラムの設定情報。
なお、インストールプログラムを実行することで、クライアントはソフトウェアプログラムの一部または全てのファイル(又はデータ)をサーバ10またはその他の計算機からダウンロードしてもよい。
また、インストールプログラムを実行することで、クライアントはインストールプログラムファイル内部に埋め込まれたデータからソフトウェアプログラムを取り出して、実行可能としてもよい。また、ソフトウェアイメージは対応元のソフトウェアプログラムの識別子を含んでもよい。
なお、代表クライアントが格納する所定のソフトウェアプログラムに対応したソフトウェアイメージと、配布サーバが格納する前述の所定のソフトウェアプログラムに対応したソフトウェアイメージは同一のデータでなくてもよい。なぜならば、要求元クライアントとしては指定した所定のソフトウェアプログラムがインストールできれば、ソフトウェアイメージのデータについては特に問わないからである。
同様に、第1の代表クライアントが格納する所定のソフトウェアプログラムに対応したソフトウェアイメージと、第2の代表クライアントが格納する前述の所定のソフトウェアプログラムに対応したソフトウェアイメージは同一のデータでなくてもよい。なぜならば、要求元クライアントとしては指定した所定のソフトウェアプログラムがインストールできれば、ソフトウェアイメージのデータについては特に問わないからである。
このような状況があるため、代表クライアントがクライアント(または他の代表クライアント)に送信するソフトウェアイメージは、当該代表クライアントが受信したソフトウェアイメージと同一でなくても、同じソフトウェアプログラムに対応していればよい。
なお、上述のサーバ、代表クライアント、他の代表クライアントの何れか二つの間でのインストールイメージのデータ同一性が必要とされない場合は、ソフトウェアイメージの優先順位の代わりとしてソフトウェアプログラムの優先順位を採用してもよい。
なお、本明細書で言うところの「配布」とは、配布対象のソフトウェアイメージを計算機間で転送することを指す。なお、計算機間の一例は以下である。
* サーバから、クライアントまたは代表クライアント
* 代表クライアントから、クライアント又は別な代表クライアント
従って、「配布」は、サーバ、クライアント、または代表クライアントを主語として「送信」「受信」「転送」と読み替えてもよい。さらに、「配布」された計算機が配布されたソフトウェアイメージを用いて対応するソフトウェアプログラムをインストールすることを含めてもよく、または含めなくてもよい。
従って、「配布」は、サーバ、クライアント、または代表クライアントを主語として「送信」「受信」「転送」と読み替えてもよい。さらに、「配布」された計算機が配布されたソフトウェアイメージを用いて対応するソフトウェアプログラムをインストールすることを含めてもよく、または含めなくてもよい。
なお、「インストール」とはインストール対象のソフトウェアプログラムを実行可能とする処理を指す。実行可能とする処理の一例は以下の通りである。
* インストール対象のソフトウェアプログラムをインストール対象のクライアントで最初に実行する。
* ソフトウェアプログラムのファイルを、プログラム実行に適切なクライアントのディスクの適切なフォルダ(またはディレクトリ)に格納する。さらに、必須ではないが当該ソフトウェアプログラムの設定情報を設定ファイルまたはレジストリに記録する場合もある。
* ソフトウェアプログラムは分割してオンデマンドに配布される、アプリケーション仮想化のアプリケーションストリーミングの場合は、上記に以外の例として、配布されたソフトウェアプログラムを実行中に当該プログラムの一部をオンデマンド受信可能とする処理を指してもよい。
サーバ10は複数のクライアントをグループに分類し、各グループについてソフトウェアイメージを配布すべきクライアントを決定する。ソフトウェアイメージの配布を受けるクライントを他のクライアントと区別するために、以下、当該クライアントを代表クライントと称する。ソフトウェアイメージを要求するクライアントは、同一グループの代表クライアントからソフトウェアイメージの配布を受ける。このクライアントを代表クライアントと区別するために、要求元クライアント、と称する。
プル型の通信において、ボトルネックとなるサーバとの通信回数を減らすには、クライアントが所属するグループにソフトウェアイメージを予め配置することが有効である。また、ノートPCのようにネットワークから切り離されることが多いクライアントも存在することから、クライアントのグループにソフトウェアイメージを冗長的に配置することが好ましい。なお、ソフトウェアイメージの配置とは代表クライアントにソフトウェアイメージを格納することを意味する。
すなわち、前記計算機システムは、中継サーバを省略する環境において、プル型のソフトウェアイメージの配布を高速にて実行できるように、サーバのソフトウェアイメージを予め代表クライアントに配布し、かつ、このソフトウェアイメージを他のクライアントに転送できるように、代表クライアントにおいてこのソフトウェアイメージを形成、換言すれば、代表クライアントにソフトウェアイメージの一時コピーを形成、さらに換言すれば、ソフトウェアイメージをキャッシュする。
その際、有限な記憶容量の下で、クライアントにソフトウェアイメージのキャッシュを持たせるため、計算機システムには次の主機能が実装されている。
第1の主機能は、サーバから代表クライアントへ配布されるソフトウェアイメージを選択することである。要求元クライアントが代表クライアントから目的のソフトウェアプログラムに対応するソフトウェアイメージを受信できなかった場合、要求元クライアントはサーバにアクセスして目的のソフトウェアイメージの配布を受けることになる。
これは、低速なネットワークを介することになって、ソフトウェアイメージの配布に長時間を有するばかりか、サーバの負荷が増大する。そこで、サーバは、ソフトウェアプログラムの特性やサーバが管理するダウンロード状況から判断し、優先度が高いソフトウェアイメージを、クライアントのディスク空き容量が許す範囲で、他のソフトウェアイメージに優先してクライアントに配布する。
第2の主機能は、要求元クライアントが、目的のソフトウェアプログラムに対応するソフトウェアイメージにアクセスできる、単位時間あたりの確率を想定し、この確率を満足させるように、ソフトウェアイメージを格納する代表クライアントを冗長的に設定することである。
要求元クライアントがソフトウェアプログラム(またはソフトウェアイメージ)の配布を必要とした時点で、要求元クライアントが代表クライアントにアクセスできるように、サーバは、複数クライアントを冗長的に計算機システムに存在させる。
そこで、管理者が、代表クライアントの冗長性に関する特性値を目標値としてサーバに設定すると、サーバはこの目標値を満たすように代表クライアントを選定する。なお、サーバは、クライアントの稼働率情報を利用して、代表クライアントを決定する。
第3の主機能は、グループ内でのソフトウェアイメージの配置について、メンテナンスを行うことである。クライアントの増減や、ソフトウェアイメージの優先順位の変更を受けて、サーバは、代表クライアントや代表クライアントが保持するソフトウェアイメージを変更する。
以下に、計算機システムのハード構成及びその諸動作を詳しく説明する。符号14Aは、ハードウエア構成が詳細に示されたクライアントである。他のクライアントも同じように構成されている。符号12はサーバ10の記憶領域であるディスク装置である。
符号14Bはクライアント14Aのディスク装置である。他のクライアントにもディスク装置が接続されている。複数のクライアント14はLAN76によって互いに接続されている。サーバ側のLANにはサーバの管理情報を表示するクライアント28が接続されている。
サーバ10は、ソフトウェアイメージの配布制御の実施に必要なプログラムコードを格納したメモリ16と、当該プログラムに基づいて、ソフトウェアの配布制御を実施するプロセッサ18と、ディスク装置12との間の通信を制御するインターフェース22と、クライアントとの通信とを制御するインターフェース20と、これらの各要素を相互に接続するバス24と、を備えている。メモリ16はソフトウェア配布管理プログラム16000を格納し、当該プログラムをCPU18が実行することによりサーバ10によるソフトウェア配布管理処理を行う。
サーバ10のソフトウェア配布管理処理は複数の機能から達成される。この機能を明らかにするために、メモリ16を、複数機能の各々にブロックを割当てた機能ブロック図として示した。これは言い方を変えると各処理部(30、32、34、36、40、及び42)はソフトウェア配布管理プログラム16000に含まれるともいえる。また、別な言い方としては各処理部に関する説明はソフトウェア配布管理プログラム16000に関する説明と言い換えることもできる。
クライアント情報管理処理部30は、クライアントの情報、主として、インベントリ情報を管理するものである。クライアント情報管理処理部は、クライアント情報をクライアントから収集する処理部30Aと、クライアント情報に基づいて、複数のクライアントをグルーピングする処理部30Bとを有する。
ソフトウェア情報管理処理部36はサーバ10のソフトウェアイメージの情報を管理するものであり、クライアントのグループ毎に、管理者が、ソフトウェアイメージをクライアントに配布するための優先順位を決定する優先度決定処理部36Aと、クライアントのグループ毎に存在するソフトウェアイメージのコピー(ソフトウェアイメージのキャッシュ)の冗長性に係る特性値(冗長係数値)を計算する冗長係数値計算処理部36Bを有する。
代表クライアント管理処理部32は、クライアントのグループ毎に、ソフトウェアイメージを予め配布すべきクライアント(代表クライアント)を管理するものであり、クライアントの優先度を決定する処理部32Aと、この優先度に基づいて代表クライアントを決定する処理部32Bと、を有する。
通信処理部40はクライアントとの通信を制御するものであり、ソフトウェアイメージの配布の処理を行う配布処理部40Aと、クライアントからの配布結果を受け付ける結果受付処理部40Bとを有する。
再配置処理部34は、ソフトウェアイメージのクライアント群における配置を再構築するための処理を行うものであり、配布状況画面表示処理部22は画面表示用クライアントに管理画面を表示する処理を実行するものである。
サーバに接続するディスク装置12は、サーバ10からクライアントに配布されるソフトウェアイメージのデータ12Aと、ソフトウェアプログラムの一覧のテーブル12Bと、クライアント情報のテーブル12Cと、クライアントをグルーピングした情報のテーブル12Dと、ソフトウェアイメージを配布する優先度と冗長係数値のテーブル12Eと、ソフトウェアイメージの配布状況のテーブル12Fとを備えている。
クライント14Bは、サーバとの通信を制御する通信インターフェース50と、ディスク相違14Bとの通信を制御するディスクインターフェース52と、サーバ10又は代表クライアントからソフトウェアイメージの配布を受ける処理と、代表クライアントがソフトウェアイメージの要求元クライアントにソフトウェアイメージを配布する処理とを制御するプロセッサ58と、これら処理のためのプログラムが格納されたメモリ60と、これら各要素を互いに接続する内部バス56とを備えている。メモリ60はクライアント側配布管理プログラム64000を格納し、当該プログラムをCPU58が実行することによりクライアント14側のソフトウェア配布処理を実現する。
クライアント側配布管理プログラム64000は、複数のクライアントに共通する処理を実現するクライアント共通処理部62と、代表クライアントに固有の処理を実現する代表クライアント固有処理部64とを含む。なお、各処理部(62、64)に関する説明はクライアント側配布管理プログラム64000に関する説明と言い換えることもできる。
クライアント共通処理部62は、クライアント情報をサーバに送信するクライアント情報送信部62Aと、サーバ10又は代表クライアントからソフトウェアイメージを受信するソフトウェア受信処理部62Bと、代表クライアントから受信したソフトウェアイメージを用いてソフトウェアプログラムをインストールするインストール処理部62Cと、を有する。
代表クライアント固有処理部64は、サーバ10から受信したソフトウェアイメージを要求元クライアントに送信するソフトウェア送信処理部64Aを有している。クライアントのディスク14Bは、クライアントが受信したソフトウェアイメージのデータ70と、代表クライアントから要求元クライアンへのソフトウェアイメージの配布タスクのテーブル72と、代表クライアントから要求元クライアントへのソフトウェアイメージの送信状況のテーブル74と、を有する。
なお、メモリ16及びメモリ60に格納されている各処理部はプログラムコードであることが考えられるが、前述の通り、一部または全ての処理をハードウェアで代替してもよい。また、サーバ10の記憶資源として考えた場合、記憶資源に含まれるメモリ16とディスク12の両方が含まれていてもよいが、メモリ16またはディスク12の何れかが記憶資源に含まれていてもよい。この場合、サーバ10の記憶資源としてはメモリ16に含まれるプログラム及び情報、及びディスク12に含まれるテーブル(情報)が格納されていると考えることが出来る。
なお、クライアント14Aの記憶資源についても、記憶資源に含まれるメモリ60とディスク14Bの両方が含まれていてもよいが、メモリ60またはディスク14Bの何れかが記憶資源に含まれていてもよい。この場合、クライアント14Aの記憶資源としてはメモリ60に含まれるプログラム及び情報、及びディスク14Bに含まれるテーブル(情報)が格納されていると考えることが出来る。
図2に、サーバ10の前記主機能を達成するためのフローチャートを示す。サーバ10は、先ず、計算機システムに存在する複数のクライアント14のそれぞれからクライアント情報を収集し(S200)、収集した情報に基づいてクライアント14のグループ分けを行う(S202)。
次いで、サーバ10はクライアント14に配布するソフトウェアイメージの優先順位を決定し(S204)、さらに、ソフトウェアイメージがクライアントのグループに存在する際の冗長性に関する特性値(冗長係数値)を計算する(S206)。
サーバ10は各グループの複数のクライアントについて優先順位を計算して(S208)、ソフトウェアイメージを配布すべき代表クライアントを決定する(S210)。次いで、サーバ10は、ソフトウェアイメージの配布を実施し、配布結果を更新する(S212)。
次に、各ステップの詳細について説明する。
(S200):
クライアント情報管理処理部30の収集処理部30Aは複数のクライアント14に定期的(または繰り返し)にアクセスして、各クライアントのクライアント情報送信部62Aから、クライアント情報、主に、インベントリ情報や性能情報を収集し、収集した情報をディスク装置12のクライアント情報テーブル12Bに更新格納する。
クライアント情報管理処理部30の収集処理部30Aは複数のクライアント14に定期的(または繰り返し)にアクセスして、各クライアントのクライアント情報送信部62Aから、クライアント情報、主に、インベントリ情報や性能情報を収集し、収集した情報をディスク装置12のクライアント情報テーブル12Bに更新格納する。
クライアントから収集するインベントリ情報の一例は、各クライアント14のアドレス情報(IPアドレスやサブネットマスク)、ディスク容量、空き容量、である。このインベントリ情報はクライアント14のグルーピングに利用される。収集処理部30Aは、さらに、クライアントの平均稼働率を算出して、これをクライアント情報処理テーブル12Cに登録する。
図3A及び図3Bに、クライアント情報処理テーブル12Cを示す。クライアント情報管理処理部30は、平均稼働率を、例えば、次のようにして求める。サーバ10から各クライアント14に一定時間毎にアクセスし、クライアントがその都度稼動しているか否かを確認する。
クライアント情報管理処理部30は、クライアント14が稼動している時間の合計を接続可能時間と判定し、さらに、クライアントの業務時間の合計値に対する接続可能時間の割合を算出して、これをクライアント毎の平均稼働率とする。例えば、08:00〜20:00までの12時間が1日の業務時間の合計値であり、サーバ10がクライアント14に1時間毎に12回接続確認の要求を送信し、クライアント14から9回応答があったとすると、一日の稼働率は0.75(9/12)になる。
クライアント情報管理処理部30は、規定の日数分の稼働率をメモリ16の所定領域に累積記録し、累積値の平均値を平均稼働率とする。クライアント毎の日毎の稼働率は、クライアント情報履歴テーブル(図4)に格納する。クライアント情報履歴テーブルもディスク装置12に格納されている。クライアント履歴テーブルは、クライアントの諸性能の履歴が年月日毎に更新格納されており、平均CPU利用率、平均ディスクI/O量、平均ネットワークI/O量の値の算出方法は平均稼働率の算出方法と同じである。
(S202):
次に、クライアント情報管理処理部30のグルーピング処理部30Bは、クライアント情報テーブル12Cを参照して、複数のクライアント14をグループに自動分類する。その方式として、次のものがある。
次に、クライアント情報管理処理部30のグルーピング処理部30Bは、クライアント情報テーブル12Cを参照して、複数のクライアント14をグループに自動分類する。その方式として、次のものがある。
(a) 複数のクライアントをサブネット毎に分ける。
(b) 複数のクライアントを、IGMP(Internet Group Management Protocol)によって管理されるマルチキャストグループに分ける。
(c) ルータのホップ数を取得し、固定もしくは管理者指定の閾値により複数のクライアントをグループに分類する。
(d) OSPF(Open Shortest Path First)等のルーティングプロトコルが用いるパス毎のコストを取得し、固定もしくは管理者指定の閾値により、複数のクライアントを分類する。
(e) クライアントが所属する部門の違いにより、複数のクライアントを分類する。このためには、サーバ14は、クライアント14毎に所属する部門の識別情報の入力を管理者に求め、入力結果をクライアント情報テーブル12Cに登録する。
グルーピング処理部30Bは、複数のクライアント14をグルーピングした結果をディスク装置12のグルーピングテーブル12Dに登録する。図5は、グルーピングテーブルの一例であり、グループ名のエントリと、グループに属するクライアントのエントリとを有する。
(S204):
管理サーバ10のソフトウェア情報管理処理部36の優先度決定処理部36Aは、クライアント14のグループ毎に、管理者が、サーバ10に配置されたソフトウェアイメージをクライアント14に配布するための優先順位を決定する優先度決定処理を行う。
管理サーバ10のソフトウェア情報管理処理部36の優先度決定処理部36Aは、クライアント14のグループ毎に、管理者が、サーバ10に配置されたソフトウェアイメージをクライアント14に配布するための優先順位を決定する優先度決定処理を行う。
なお、本実施例では上述の通り、複数のソフトウェアイメージが同じソフトウェアプログラムに対応する場合にも対応するため、優先度決定に必要な情報はソフトウェアプログラムに対して保持する場合を例として説明する。しかし、よりシンプルに同様の情報をソフトウェアイメージに対して保持してもよい。この場合は各情報の「ソフトウェア名」または「ソフトウェアプログラム名」とされた説明を「ソフトウェアイメージの識別子」と置き変えればよい。なお、「ソフトウェア名」は「ソフトウェアプログラム名」と同じ意味である。
優先度決定処理部36Aは、図6に示すソフトウェア一覧テーブル12Bにエントリがある、複数種類のソフトウェアプログラムについて、優先度決定処理を行う。ソフトウェア一覧テーブル12Bは、ディスク装置12に格納され、ソフトウェア情報管理部36によって参照、又は更新される。ソフトウェアプログラムに優先度を設定する方式として、以下のものがある。
(f) 容量が大きく、転送に時間がかかるソフトウェアイメージに対応するソフトウェアプログラムほど優先度を大きく設定する。
(g) グループ内で、ソフトウェアプログラムがインストールされたクライアンマシン数が全クライアントマシン数に対して成す比(インストール率)が高いソフトウェア程優先度を大きく設定する。
(h) このインストール率の直近での増加率が高いソフトウェアプログラムほど優先度を大きく設定する。
(i) サーバ10の管理者が、複数のソフトウェアプログラムに設定した順番毎に優先度を決定する。又は、優先度を管理者がソフトウェアプログラムに対して設定した値とする。
ソフトウェア一覧テーブル12Bには、ソフトウェアプログラム名とソフトウェアプログラムに対応するソフトウェアイメージのサイズが含まれている。なお、同じソフトウェアプログラムに対応するソフトウェアイメージが複数ある場合は、当該容量は例えば当該イメージの最大値、平均値、最小値等の所定のルールに従った値を入れても良い。
その他に、ソフトウェア一覧テーブルに、インストール率、インストール率の増加率が含まれてもよい。決定された優先度或いは管理者によって設定された優先度や優先順位は、ソフトウェア配布優先度と冗長係数値テーブル12Eに設定される。このテーブルの一例を図7に示す。
図7のソフトウェア配布優先度・冗長係数値テーブルには、ソフトウェア情報管理処理部36によって計算された冗長係数値の他、グループ毎のソフトウェアプログラムについての優先度、サーバからのソフトウェアプログラムに対応するソフトウェアイメージのダウンロード回数、総ダウンロード回数と、が登録されている。なお、ダウンロードという言葉は、ダウンロード元の存在を主語とした場合はダウンロード対象の「送信」を意味し、ダウンロード先の存在を主語とした場合はダウンロード対象の「受信」を意味する。
(S206):
次に、サーバ10のソフトウェア情報管理処理部36の冗長係数値計算処理部は、ソフトウェアの冗長係数値の計算処理を実行する。
次に、サーバ10のソフトウェア情報管理処理部36の冗長係数値計算処理部は、ソフトウェアの冗長係数値の計算処理を実行する。
ここで、「冗長係数値」とは、特定のソフトウェアイメージのコピーを各グループに存在させる上での冗長性に関する指標であり、冗長係数値が高くなると、グループ内で、ソフトウェアイメージが配布されるクライアント数が増加される。したがって、クライアント14が特定のソフトウェアイメージを必要としたとき、当該ソフトウェアイメージを代表クライアントから取得できる実際の確率が高いことになる。
なお、「特定のソフトウェアイメージのコピー」については、当該イメージの対応元である特定のソフトウェアプログラムに対応していれば、特定のソフトウェアイメージとはデータ同一でなくても、対応ソフトウェアイメージをコピーと見做してもよい。
ソフトウェアプログラムに対応するソフトウェアイメージに対して、要求元クライアントが単位時間あたりに、代表クライアントのソフトウェアイメージのキャッシュにアクセス可能な所定確率を実現するために、サーバ10は管理者からの入力によって、冗長係数値を設定する。
クライアントのグループ毎に、クライアントが単位時間にアクセス可能なソフトウェアイメージのコピーが当該グループに存在する確率の目標値を想定して、冗長係数値は、計算、及び/又は設定によって決定される。この冗長係数値の計算或いは設定は、ソフトウェア一覧テーブルにエントリがある複数のソフトウェアプログラムについて、順番に、次のjからnいずれかによって、行われる。
(j) 冗長係数値計算処理部36Bは、最も大きな容量のソフトウェアイメージに対応するソフトウェアプログラムの冗長係数値を管理者が指定した値にし、ソフトウェアイメージの容量が小さなくなるのに比例して、係数値を小さくする。
(k) 管理者が設定した優先度が最も高いソフトウェアプログラムの冗長係数値を管理者が設定した値にし、優先度が小さくなるのに比例して、値を小さくする。
(l) ソフトウェアプログラムの冗長係数値を管理者が設定した値にする。
(m) 冗長係数値計算処理部36Bは、その初期値を特定の値にし、或いは、j〜lのいずれかで決めた値とする。その後、冗長係数値計算処理部36Bは、ソフトウェア一覧テーブル(ソフトウェア毎の容量)12Bとソフトウェア配布優先度・冗長係数値テーブル(管理サーバからのソフトウェアプログラムのダウンロード回数、ソフトウェアの総ダウンロード回数)12Eとを参照して、クライアントのグループ別に、「図6のソフトウェアの容量×(配布管理サーバからのダウンロード回数÷総ダウンロード回数)」、即ち、ソフトウェアプログラムに対応したソフトウェアイメージの容量とソフトウェアプログラムに対応したソフトウェアイメージの配布状況との組み合わせによるソフトウェアプログラムの特性を定期的に測定し、一定期間内の平均量が、管理者が指定した上限の閾値を超えた場合に冗長係数値を特定の値だけ増やし、下限を下回った場合に特定の値だけ減らす。
なお、総ダウンロード回数は、ソフトウェアプログラムに対応するソフトウェアイメージがソフトウェアの要求先クライアント14に、サーバ10からダウンロードされた回数と、同一グループ内の代表クライアントからダウンロードされた回数との合計数である。
(n) 前記(m)の測定結果を複数のソフトウェアプログラムについてソートし、値の大きいものから順に管理者が指定した数のソフトウェアプログラムについて冗長係数値を特定の値だけ増やし、値の小さなものから順に管理者が指定した数のソフトウェアプログラムについて特定の値だけ減らす。
ここで、「管理者が指定した数」について具体的に説明する。例えば、サーバ10が10種類のソフトウェアプログラムに対応する複数のソフトウェアイメージが代表クライアントに配布済みとし、各ソフトウェアプログラムの冗長係数を調整したいとする。そのために、サーバ10は、まずソフトウェアプログラムを優先順位でソートし、上位3種類については冗長係数を増やしたい、逆に、下位3種類については冗長係数を減らしたい、ということをする。この例での「3」が、「管理者が指定した数」となる。
(S208,S210):
サーバ10の代表クライアント管理処理部32は、各グループについて、クライアントからのプル型のソフトウェアイメージ配信要求に備えるために、ソフトウェアイメージをプッシュ方式によって予め配布すべき代表クライアントを決定する。
サーバ10の代表クライアント管理処理部32は、各グループについて、クライアントからのプル型のソフトウェアイメージ配信要求に備えるために、ソフトウェアイメージをプッシュ方式によって予め配布すべき代表クライアントを決定する。
代表クライアントは、各グループにおいて、サーバ10からソフトウェアイメージの配布を受け、これを配下のクライアントに再送信するべく、代表となるクライアントであり、代表クライアント管理処理部32は、クライアントの優先度決定処理部32Aと、ソフトウェアイメージの配布先決定処理部32Bと、を有する。
サーバ10は、ソフトウェアプログラムの優先順位付け(S204)、ソフトウェアプログラムの冗長係数値の計算(S206)を終了した後、クライアントの優先順位付け処理(S2008)、ソフトウェアの配布先とすべき代表クライアントの決定処理(S2010)を行う。
サーバ10の優先度決定処理部32Aは、ソフトウェアプログラムに対応するソフトウェアイメージが配布される代表クライアントの候補となるクライアントを決定或いは選択するために、グループ毎に、クライアントの優先順位付けを行なう。優先度決定処理部32Bが、クライアントの優先順位、すなわち、優先度を決定するには、次の複数の観点の一つ又は組み合わせを参照する。
(o) クライアントがノートPCでないこと。ネットワークから切断される可能性のあるクライアントの優先度を低くする。
(p) 平均CPU稼働率が少ないほど優先順位が高いこと。
(q) 平均ディスクI/Oが少ないほど優先順位が高いこと。
(r) 平均ネットワークI/Oが少ないほど優先順位が高いこと。
(s) 平均稼働率が高いほど優先順位が高いこと。
(t) 配布済み及び/又は配布される予定のソフトウェアイメージ数またはソフトウェアプログラム数が少ないほど優先順位が高いこと。
(u) 配布済み及び/又は配布される予定のソフトウェアイメージの総容量またはソフトウェアプログラムの総容量が少ないほど優先度が高いこと。
優先度決定処理部32Aは、(o)〜(s)に係る優先順位を、クライアント情報テーブル12Cを参照して決定する。さらに、(t),(u)に掲げる優先順位を、ソフトウェア配布状況テーブル12Fを参照して決定する。
優先度決定処理部32Aは、ソフトウェア一覧テーブル12Cとソフトウェア配布状況テーブル12Fとをソフトウェア名をキーにして関連させて、代表クライアントに配布されるソフトウェアイメージ(またはソフトウェアプログラム)の容量を得る。
次いで、優先度決定処理部32Aがクライアントの優先度を決定すると、配布先決定処理部32Bがソフトウェアプログラムに対応したソフトウェアイメージを配布すべき代表クライアント(群)を決定する(S210)。
すなわち、配布先決定処理部32Bは、グルーピングテーブル12Dを参照して、グループ毎に、グループに所属するクライアントを把握する。
そして、S2010で決定した優先度順にクライアントをソートし、クライアント情報テーブル12Cに基づいて、クライアントごとの平均稼働率を順番に取得して平均稼働率を積算する。
配布先決定処理部32Bは、積算値と、ソフトウェア配布優先度・冗長係数テーブルに登録されているソフトウェアプログラムの冗長係数値と、を参照し、積算値が冗長係数値を超えるまでクライアントのソートを継続し、係数値を超えた時点でクライアントのソートを終了する。
ソートされたクライアントが、積算値と比較された冗長係数値が設定されたソフトウェアプログラムについて、代表クライアントになる。一つ又は複数のクライアントが代表クライアントに分類される。
なお、ソフトウェアの容量が、選択されたクライアントの最大ディスク容量を超える場合には、当該クライアントは代表クライアントに選択されず、配布先決定処理部32Bは、優先度に基づいて次のクライアントをソートする。
配布先決定処理部32Bが、ソフトウェアプログラムに対応したソフトウェアイメージを配布すべき代表クライアントを決定すると、ソフトウェアの配布状況テーブル12Fに当該代表クライアントのエントリを追加する。
図8はソフトウェア配布状況テーブルの一例である。ソフトウェア配布状況テーブルは、グループ名のエントリと、配布すべきソフトウェア名のエントリと、グループ毎の代表クライアントのエントリと、ソフトウェアプログラム毎の対応ソフトウェアイメージの配布状態のエントリと、を有する。
配布先決定処理部32Bは、代表クライアントを決定すると、ソフトウェア配布状態テーブルに代表クライアントのエントリを追加し、ソフトウェアプログラムの配布状態に「配布予定」を登録する(800)。なお、ソフトウェアプログラムに対応するソフトウェアイメージが配布されると、状態は「配布済み」に変更される(802)。
なお、サーバ10がソフトウェアの冗長係数値に拘わらず、ソフトウェアプログラムに対応したソフトウェアイメージを配布すべきクライアントを決定する形態として、例えば、ソフトウェアプログラムの冗長係数値を最大化する方式、即ち、グループの全てのクライアントへソフトウェアプログラムに対応したソフトウェアイメージを配布する方式、ディスク使用量を最小化する方式、グループの最も優先度が高いクライアントのみにソフトウェアプログラムに対応したソフトウェアイメージを配布する形態がある。
(S212):
次いで、サーバ10の通信処理部40は、フローチャートのS214に示されるように、S212で決定された、ソフトウェアプログラムに対応したソフトウェアイメージの配布先である代表クライアントにソフトウェアイメージの配布処理と、配布結果を代表クライアントから受付けてソフトウェア配状況テーブル12Fに登録する、配布結果受付処理とを実行する。
次いで、サーバ10の通信処理部40は、フローチャートのS214に示されるように、S212で決定された、ソフトウェアプログラムに対応したソフトウェアイメージの配布先である代表クライアントにソフトウェアイメージの配布処理と、配布結果を代表クライアントから受付けてソフトウェア配状況テーブル12Fに登録する、配布結果受付処理とを実行する。
配布処理部40Aは、代表クライアント群に、ディスクに格納されているソフトウェアイメージを転送する。ソフトウェアイメージの配布はソフトウェアプログラムの優先度が高い順に行われる。管理者は所定のソフトウェアプログラムに対して、当該ソフトウェアプログラムに対応するソフトウェアイメージが配布されるべきグループに制限を設定することができる。
グループ内に複数の代表クライアントがある場合には、配布処理部40Aは、優先度の高い順に、代表クライアントに対してユニキャスト通信を試みる。通信に成功した代表クライアントにソフトウェアイメージ、及び、他の代表クライアントを識別するための一覧情報を送信する。
ソフトウェアイメージの配布を受けた代表クライアントは、一覧情報に基づいて、同一グループの他の代表クライアントに対してユニキャスト通信を行い、ソフトウェアイメージを転送する。
そして、結果受付処理部40Bが、配布結果受付処理によって、ソフトウェアイメージを配布した代表クライアントからソフトウェアイメージの受信した旨の配布結果応答を確認すると、ソフトウェア配布状況テーブル12Fの状態の欄を「配布予定」から「配布済み」に変更する(802)。
管理サーバから代表クライアントへのソフトウェアイメージの配布には、サーバ10が代表クライアント14へソフトウェアイメージを送信する第1の処理、代表クライアント14が管理サーバ10からソフトウェアイメージを受信する第2の処理、そして、代表クライアントが、同一グループの他の代表クライアントへソフトウェアイメージを送信する第3の処理と、がある。
図9は第1の処理に対応するフローチャートであり、図10は第2の処理に対応するフローチャートであり、図11は第3の処理に対応するフローチャートである。
図9のフローチャートを説明する。配布処理部は40A、ソフトウェア配布状況テーブル12Fを参照し、ソフトウェアイメージを配信すべき代表クライアントを特定する。
そして、配布処理部40Aは、最も優先度が高い代表クライアントに対して、配布すべきソフトウェアイメージの取得状況を確認するためのリクエストを送信し、リクエストに対する応答結果を受信する(S900)。
なお、リクエストに対する応答が無い場合には、リクエストの送信先代表クライアントへの通信は不可能として、優先度に従って、他の代表クライアントへリクエストを送信する。また、配布処理部40Aは、配布すべきソフトウェアプログラムに対応するソフトウェアイメージを、ソフトウェア配布状況テーブル12Fに基づいて選定する。
次いで、結果受付処理部40Bは、リクエストを受けた代表クライアントからの応答結果に基づいて、代表クライアントがソフトウェアプログラムに対応したソフトウェアイメージを取得済みか否かの判定を行い(S902)、これを否定すると代表クライアントにソフトウェアイメージを送信する(S904)。S902を肯定するとS904をジャンプする。
次いで、結果受付処理部40Bは、ソフトウェア配布状況テーブル12Fにおいて、ソフトウェアイメージを取得した代表クライアントの状態を「配布済み」に更新する(S906)。
次いで、結果受付処理部40Bは、ソフトウェア配布状況テーブ12Fを参照して、ソフトウェアイメージを配布した代表クライアントと同一グループに属する他の代表クライアントを検索する(S908)。
この検索は次のようにして行われる。結果受付部40Bは、ソフトウェア配布状況テーブル12Fから、以下の全てを満たすテーブルのエントリを選定する。
* グループ名がソフトウェアイメージの送信を受けた代表クライアントに対応するグループ名と同一である。
* ソフトウェア名がこの代表クライアントに配布したソフトウェアイメージに対応するソフトウェアプログラムの名前と同一である。
* 状態が「配布予定」である。
そして、配布処理部40Aは選定した一つ又は複数のエントリに属するクライアント名を、S904において、ソフトウェアイメージを送信した代表クライアントに送信する(S910)。
次に、図10に基づいて、代表クライアント14が行う、サーバ104からのソフトウェアイメージの受信処理を説明する。クライアント14のソフトウェア受信処理部62Bは、サーバ10からソフトウェアイメージの取得状況を確認するためのリクエストを受信すると(S1000)、ディスク装置14B内のソフトウェアイメージのデータを参照して、ソフトウェアイメージを取得済みか否か判定する(S1002)。
ソフトウェア受信処理部62Bがこの判定を否定すると、ソフトウェアイメージの未取得をサーバ10の結果受付処理部40Bに応答する(S10004)。
次いで、ソフトウェア受信処理部62Bは、サーバ10からソフトウェアイメージを、通信インターフェース50を介して受信し、これをディスクインターフェース52からディスク14Bのソフトウェアイメージの記憶領域に保存する(S1006)。
次いで、ソフトウェア受信処理部サーバ10からクライアント名の一覧を受信して、受信データをソフトウェア配布タスクテーブル72に登録する。
ソフトウェア配布タスクテーブル72は、ソフトウェアイメージの送信を受けた代表クライアントが同一グループの他の代表クライアントにソフトウェアイメージを送信するためのタスクを管理するものである。
図12にソフトウェア配布タスクテーブルの例を示す。ソフトウェア配布タスクテーブルには、タスクのエントリと、送信すべきソフトウェアイメージの対応元ソフトウェアプログラム名のエントリと、ソフトウェアプログラムに対応したソフトウェアイメージを送信すべき代表クライアントのエントリと、送信状態のエントリとが設けられている。
なお、ソフトウェアプログラム名の代わりとしてソフトウェアイメージの識別子を用いても良い。ソフトウェア送信処理部64Aがクライアント名を送信タスク一覧テーブルに登録した最初の状態では、送信状態を「未完了」に設定する。なお、S1002が否定されると、処理はS1006にジャンプする。
次に、図11に基づいて、サーバ10からソフトウェアイメージの配布を受けた代表クライアント14が、この代表クライアントと同一グループに属する他の代表クライアントに当該ソフトウェアイメージを分配するフローチャートについて説明する。
このフローチャートの説明を分かりやすくするため、前者の代表クライアントを第1の代表クライアントと、後者の代表クライアントを第2の代表クライアントとして、便宜上両者を区別する。
第1の代表クライアントのソフトウェア送信処理部64Aは、ソフトウェア配布タスクテーブル72を参照して、状態が「完了」でない第2の代表クライアントを選定し、通信インターフェース50及びLAN76を介して、選定された第2の代表クライアントに接続できるか否かを判定する(S1100)。
この判定を肯定すると、当該第2の代表クライアントに対してソフトウェアイメージの取得状況を確認するリクエストを送信し、その返答を受け取る(S1102)。
次いで、ソフトウェア送信処理部64Aは、返答に基づいて、第2の代表クライアントがソフトウェアイメージを、取得済みか否かを判定する(S1104)。
この判定を否定すると、ソフトウェア送信処理部64Aは、ディスク装置14Bからソフトウェアイメージを読み出して、これを第2の代表クライアントに送信する(S1106)。
次いで、ソフトウェア送信処理部64Aは、ソフトウェア配布タスクテーブル72から代表クライアント名称の一覧を読み出し、これを第2の代表クライアントに送信する(S1108)。
第1の代表クライアントのソフトウェア送信処理部64Aは、ソフトウェア配布ステータステーブル72において、ソフトウェアイメージの送信先である第2の代表クライアントの「状態」を「送信済」に更新し(S1110)、第2の代表クライアントからソフトウェアイメージを受信した旨の応答を受けると、サーバ10に、第1の代表クライアントから第2の代表クライアントへソフトウェアイメージの送信が済んだことを報告する(S1112)。
なお、サーバ10の配布状況画面表示処理部42は、第2の代表クライアントからの係る報告に基づいて、ソフトウェアイメージの送信状況テーブルを作成し、これを管理者に表示する。このテーブルの詳細は後述する。
次いで、ソフトウェア送信処理部64Aは、ソフトウェア配布タスクテーブル72において、送信対象ソフトウェア名に対する第2の代表クライアントの「状態」のエントリを「完了」に更新する(S1114)。
なお、ソフトウェア送信処理部64AがS1104を否定判定すると、ソフトウェア配布タスクテーブルの「状態」を「接続不可」に更新して処理を終了する。さらに、ソフトウェア送信処理部64Aが、S1104を肯定判定すると、S1110にジャンプする。
次に、クライアントが代表クライアントからソフトウェアイメージを取得し、これをインストールする動作について説明する。
クライアントのユーザが、あるソフトウェアプログラムを必要とした場合、当該クライアントは、自身と同じグループに属す代表クライアントの一覧をサーバから取得し、一覧中の代表クライアントへ順次アクセスする。
クライアントは、代表クライアントの1つと通信でき、代表クライアントが所望のソフトウェアプログラムに対応するソフトウェアイメージを保持していれば、代表クライアントからこのソフトウェアイメージを受信する。全ての代表クライアントと通信できない、あるいは、全代表クライアントが所望のソフトウェアプログラムに対応するソフトウェアイメージを所有していなかった場合には、クライアントは管理サーバから所望のソフトウェアプログラムに対応したソフトウェアイメージを取得する。
サーバが、ソフトウェアの優先度および冗長係数値を決定する上で、サーバからのダウンロードか代表クライアントからのダウンロードかを区別することが必要な場合、クライアントは、サーバに対し、ソフトウェアイメージの取得元の種類(管理サーバか、或いは、代表クライアントか)を報告する。そして、クライアントは、受信したソフトウェアイメージを用いて所望のソフトウェアプログラムをインストールする。
サーバがソフトウェアプログラムの使用ライセンスを管理する場合、あるいは、ソフトウェアプログラムのインストール回数を、ソフトウェアプログラムの配布の管理のパラメタとして用いる場合、クライアントはサーバに対し、ソフトウェアプログラムをインストールしたことを報告する。
なお、代表クライアントは要求元クライアントのようにソフトウェアプログラムをインストレールすることなく、ソフトウェアプログラムに対応したソフトウェアイメージをキャッシュ(一時コピー)の状態でメモリに保持する。一方、代表クライアントがソフトウェアプログラムを必要とする場合は、ソフトウェアイメージのキャッシュを用いてインストールを行えばよい。
図13は代表クライアントのソフトウェア配布処理のフローチャートである。代表クライアントのソフトウェア送信処理部64Aは、クライアントから接続要求受けると(S1300)、クライアントから要求されたソフトウェアプログラムに対応したソフトウェアイメージを保持しているか否かを判定し(S1302)、これを肯定すると、要求されたソフトウェアプログラムに対応したソフトウェアイメージを保持していることを表す情報を要求元クライアントに送信し(S1304)、次いで、要求されたソフトウェアプログラムに対応するソフトウェアイメージを送信する(S1306)。
S12002の判定を否定すると、代表クライアントは、要求元クライアントへ要求されたソフトウェアプログラムに対応するソフトウェアイメージを保持していないことを示す情報を送信する(S1308)。
図14は、ソフトウェアの要求元クライアントのソフトウェアイメージの受信処理とインストール処理のフローチャートである。クライアント14のソフトウェア受信処理部62Bは、ユーザから、インストールしたいソフトウェアプログラム名の入力を受ける(S1400)。
次いで、ソフトウェア受信部62Bは、サーバ10から、自身が所属するグループにおいて、S1400においてユーザが指定したソフトウェアプログラムに対応するソフトウェアイメージを保持する代表クライアントの一覧の情報を取得する(S1404)。一覧の情報を取得したソフトウェア受信部62Bは、一覧中の各代表クライアントに対して、後述の処理を行う。
次いで、要求元クライアント14のソフトウェア受信処理部62Bは、代表クライアントにソフトウェアイメージの取得要求を送信する(S1406)。なお、当該要求で指定するのはソフトウェアプログラムの名前だが、ソフトウェアイメージの識別子を指定してもよい。
要求元クライアント14は、代表クライアントからの応答に基づいて、代表クライアントが目的のソフトウェアプログラムに対応するソフトウェアイメージを保持しているか否かを判定する(S1407)。
これを肯定すると、ソフトウェア受信処理部62Bは、代表クライアントのソフトウェア送信処理部64Aから目的のソフトウェアプログラムに対応するソフトウェアイメージを受信する(S1408)。
次いで、要求元クライアント14は、サーバに、代表クライアントからソフトウェアプログラムに対応したソフトウェアイメージをダウンロードしたことを報告し(S1410)、次いで、後述するS1416を実行する(S1410)。
S1407の判定が否定されると、要求元クライアント14は、他の代表クライアントにアクセスして(取得要求を送信)、ソフトウェアプログラムに対応したソフトウェアイメージの取得を試みる。ソフトウェアイメージの取得が成功すると(S1412:No)、取得できたソフトウェアイメージを用いてソフトウェアプログラムをインストールし(S1416)、その旨をサーバに送信する(S1418)。
一方、要求元クライアントのソフトウェア受信処理部62Bがソフトウェアプログラムに対応するソフトウェアイメージを全ての代表クライアントから取得できないと判定すると(S1412:Yes)、サーバ10にアクセスし、サーバ10の配布処理部40Bからソフトウェアイメージ配布を受ける(S1414)。
ソフトウェアイメージの配布を受けたクライアント14のインストール処理部62Cは、配布されたソフトウェアイメージを用いてソフトウェアプログラムをインストールし(S1416)、その旨をサーバに送信する(S1418)。
次に、代表クライアントに複数のクライアントから同時にソフトウェアイメージの配布の要求があった場合における、代表クライアントの動作について説明する。
あるグループ内のある代表クライアントが、ある時点において、同一のソフトウェアイメージの規定数以上の取得要求を同時に処理する場合、代表クライアント又はサーバは、要求を出したクライアントの1つを新たな代表クライアントとして設定し、送信処理を並列化する。代表クライアントの係る処理をフローチャートにしたがって用いて説明する。
図15は代表クライアントの動作の概要を示すフローチャートである。代表クライアントが、ソフトウェアイメージの要求元クライアントから接続要求を受けると(S1500)、要求されたソフトウェアプログラムに対応するソフトウェアイメージを保持しているか否かを判定する(S1502)。
この判定を肯定すると、代表クライアントのソフトウェア送信処理部64Aは、ソフトウェアプログラムに対応するソフトウェアイメージを保持していることを示す情報を要求元クライアントに送信する(S1504)。
次いで、代表クライアントのソフトウェア送信処理部64Aは、ソフトウェアプログラムに対応するソフトウェアイメージを要求元クライアントに送信し、そして、新規の代表クライアントを作成する(S1506)。このステップの詳細は、後述の図16のフローチャートに示すとおりである。
代表クライアントが要求されたソフトウェアプログラムに対応するソフトウェアイメージを保持していないと判定すると、その旨を示す情報を要求元クライアントに送信する(S1508)。
図16のフローチャートに示すように、代表クライアントのソフトウェア送信処理部64Aはソフトウェアイメージを送信する対象クライアントをメモリ60の所定のワーク領域に格納する(S1600)。対象クライアントが複数存在する場合には、複数の対象クライアントがワーク領域に格納される。
ソフトウェア送信処理部64Aは、ワーク領域を参照して、複数のクライアントが登録されていると、これを、ソフトウェアの並列送信が実行されている対象数、即ち、並列処理数とする(S1602)。
ソフトウェア送信処理部64Aは、並列処理数と規定数とを比較し(S1604)、並列数が規定数以上であると判定すると、ディスク装置14Bのソフトウェア送信状況テーブル74に必要な情報を登録する。
図17は、ソフトウェア送信状況テーブルの一例である。ソフトウェア送信状況テーブルは、ソフトウェアプログラム名のエントリと、ソフトウェアの送信先クライアント名のエントリと、新代表フラグのエントリと、中断フラグのエントリと、ソフトウェアプログラムに対応したソフトウェアイメージの受信元クライアント名のエントリとを有している。
代表クライアントのソフトウェア送信処理部64Aはあるクライアントの中から新規の代表クライアントを選択し、ソフトウェア送信状況テーブル74において、当該クライアントを送信先クライアント名とするエントリに新代表フラグを立てる(S1605)。
なお、複数の送信先クライアントのうち少なくとも一つのクライアントに代表フラグが既に立っている場合には、この処理を実際には行わない。
なお、複数の送信先クライアントのうち少なくとも一つのクライアントに代表フラグが既に立っている場合には、この処理を実際には行わない。
新代表クライアントの選び方として、バイト数が最も少ないソフトウェアプログラムに対応するソフトウェアイメージが送信される予定のクライアントを新代表クライアントとする方式がある。
また、ソフトウェアイメージの配布を要求された代表クライアントが、中央サーバに照会し、ソフトウェアイメージの配布先クライアント群の中で最も優先度の高いクライアントを新代表クライアントとする。
ソフトウェア送信処理部64Aが、並列処理数が規定数より小さいと判定し、又は、S1605の処理を終了すると、ソフトウェア送信状況テーブル74に、送信対象のクライアント名を追加する(S1606)。次いで、ソフトウェア送信処理部64Aは、ソフトウェアイメージの送信のための処理を実施する。この処理を、図18に基づいて詳しく説明する。なお、送信の処理は、ソフトウェアイメージを複数のブロックに分け、順次転送されることによって達成される。
代表クライアントのソフトウェア送信処理部64Aは、ブロックを送信するためのパケットの種類を「ソフトウェア」とする(S1800)。次いで、パケットを送信対象であるクライアントに送る(S1802)。
次いで、ソフトウェア送信処理部64Aは、ソフトウェア送信状態テーブルを検索し、送信対象のクライアントについて中断フラグを確認し(S1804)、中断フラグの有無を判定する(S1806)。
中断フラグが立っていないと判定すると、ソフトウェアイメージ送信の完了を判定し(S1808)、未完了と判定するとS1800に戻る。完了と判定すると図16のS1610に移動する。
S1806において、中断フラグが立っていると判定されると、代表クライアントのソフトウェア送信処理部64Aは、パケットの種類を「中断」とし(S1810)、送信先クライアントに当該パケットを送信し、さらに、当該パケットを送信したクライアントに、ソフトウェア送信状況テーブル74の受信元クライアント情報を送信して(S1812)、図16のS1610に移動する。
図16のS1610において、代表クライアントのソフトウェア送信処理部64Aは、ソフトウェアイメージの送信が中断されたと判定すると、中断された対象のクライアント名のエントリをソフトウェア送信状況テーブルから削除する(S1612)。
S1610が中断されないとの判定であると、代表クライアントのソフトウェア送信処理部64Aは、パケットの種類を「完了」にする(S1613)。
次いで、代表クライアントのソフトウェア送信処理部64Aは、ソフトウェア送信状況テーブル74を参照して、送信対象クライントに新代表フラグが立っているか否かを判定する(S1614)。新代表フラグが立っていないと判定すると、送信対象クライアントに新代表ではないことを通知する(S1616)。新代表フラグが立っていることを判定すると、送信対象クライアントに新代表クライアントになることを通知する(S1618)。さらに、サーバに送信対象クライアントが新代表になったことを通知する(S1620)。
次いで、ソフトウェア送信処理部64Aは、送信処理中のクライアントのうち半数あるいは指定された割合のものを選び、ソフトウェア送信状況テーブル74における、当該クライアントのエントリに中断フラグを立てる(S1622)。
さらに、中継フラグを立てた送信先クライアントのエントリの受信元クライアントとして、新代表フラグを立てた新代表クライアントの名称を記録する(S1624)。
サーバ又は新代表クライアントからソフトウェアイメージの配布を受けるクライアントの動作は、既述の図14に沿ったものになるが「ソフトウェアイメージを受信する」(S1408)が、図19のルーチンに置き換わる。
すなわち、要求元クライアントのソフトウェア受信処理部62Bがパケットを取得すると、パケットの種類を確認する(S1900)。
次いで、パケットの種類を判定する(S1902)。パケットの種類が「完了」の場合には、パケットのデータを確認して(S1904)、新代表フラグデータを立てるコマンドが存在するか否かを判定し(S1906)、この判定を肯定すると、代表クライアントから受信した、ソフトウェアイメージの全ブロックをディスク14Bの配布用ソフトウェアデータ格納領域に保存する(S1908)。
一方、パケットの種類が「ソフトウェア」の場合は、受信したブロックをディスク14Bに保存する(S1912)。また、パケットの種類が「中断」の場合は、中断パケットを受信してソフトウェアイメージの配布が中断されたクライアントは、ソフトウェア送信状況テーブル74の受信元クライアントに、新代表としてアクセスし、当該受信元クライアントから、中断されたソフトウェアイメージの再送信を受ける(S1910)。
次に、サーバによって、クライアント群に一旦配置したソフトウェアプログラムに対応するソフトウェアイメージのコピーを再配置する動作について説明する。なお、ソフトウェアイメージのコピーの定義については既に説明した通りである。
サーバは、例えば、クライアントの増設又は減設を確認すると、又は、定期的に、ソフトウェアプログラムの優先度と必要な冗長係数値を計算し、最新の計算結果に対して、ソフトウェアイメージのコピーが偏って配置されていれば、クライアント群におけるソフトウェアイメージのコピーを再配置する。
以下、サーバが行う、再配置の処理について説明する。サーバの再配置処理部34は、定期的に、以下の処理を実行する。
(1)クライアントの増減を確認する。サーバは、当該サーバに接続するクライアントから、インベントリ情報を収集し、各グループ内でのクライアントの増減を確認する。増減を、前回の収集結果と最新の収集結果との差分に基づいて計算する。サーバは、インベントリ情報を収集する都度、最終更新日を記録し、管理者が指定した時間以上に亘って更新が無かったクライアントは減設されたと判定する。
(2)クライアントが増減された場合、代表クライアントのリストをメンテナンスする。クライアントの減設が代表クライアントに及ぶと、ソフトウェア配布状況テーブル12F等の減設されたクライアントのエントリを削除する。
(3)ソフトウェアプログラムの優先度、冗長係数、クライアントの優先度を、増設又は減設後のクライアント群について再計算を実行する。
(4)クライアント群に対して、ソフトウェアプログラムに対応したソフトウェアイメージを再配置する。この再配置の処理方式には複数の形態がある。
例えば、(A)計算し直した、ソフトウェア及び/又はクライアントの優先度に、クライアント群でのソフトウェアプログラムに対応したソフトウェアイメージの配置状況を合わせる方式、(B)現状のソフトウェアプログラムに対応したソフトウェアイメージの配布状況が、管理者が望む冗長性を満足していない、あるいは、管理者が望む冗長性を超過している場合に、対応するソフトウェアイメージの再配置を行う方式である。
先ず、(A)の方式について説明する。管理サーバの再配置処理部34は、増設又は減設が生じたクライアント群について、新規の代表クライアントの一つ又は複数の候補を得る。再配置処理部34は、既存の代表クライアントと新規の代表クライアントとを比較し、代表から外れるクライアントと、新たに代表になるクライアントを判定する。
再配置処理部34は、既存の代表クライアントの任意の1つに対し、新規に代表クライアントになるクライアントのアドレスを送ると共に、新代表クライアントへ既存代表クライアントからソフトウェアを送信する命令を与える。
このソフトウェア送信命令を受けた代表クライアントのソフトウェア送信処理部64は、新規に代表となるクライアントのそれぞれへソフトウェアイメージを送信し、送信が完了するとサーバの再配置処理部34へこの送信が完了したことを報告する。サーバは、送信完了の報告を受けると、代表から外れるクライアントにソフトウェアイメージを削除するための命令を送る。
次に(B)の方式について説明する。再配置処理部34は、現状の代表クライアントについて、クライアント情報テーブル12Cをして参照して、最新の平均稼働率を取得し、これらを積算する。
この積算結果が修正後の冗長係数値と比較して、冗長係数値に対して不足している場合には、不足分を補うように、優先度順に新たなクライアントを新規の代表とする。
さらに、再配置処理部34は、既存の代表クライアントの1つを選び、例えば、最もI/O負荷が小さいクライアントを選択して、このクライアントに、新規に代表クライアントにソフトウェアイメージを送信するための命令を送る。
反対に冗長係数値を超えている場合には、既存の代表クライアントのうち最も優先度の低いものを、平均稼働率を積算する対象から順番に除いて、積算結果が修正後の冗長係数値を下回るまでこれを続ける。積算結果が冗長係数値を下回る直前まで除かれたクライアントを代表から除くべきものと判断して、当該クライアントにソフトウェアイメージを削除する命令を送る。
次に、サーバの配布状況画面表示処理部42が管理者から画面表示の要求を受けると、ディスク12の更新後の各テーブル情報に基づいて、管理用表示情報を生成し、これを画面表示用クライアント28の管理画面に表示出力を行う。図20は管理画面の一例である。この管理画面は、次の各エントリを有している。
グループ名は、ソフトウェア配布状況テーブル12Fのグループ名のカラムに対応する。グループ毎の{総ディスク容量、総空きディスク容量}は、クライアント情報テーブル12Cのディスク総容量カラム、ディスク空き容量カラムに対応する。
グループ毎の配布したソフトウェアイメージの総容量は、ソフトウェア配布状況テーブル12Fとソフトウェア一覧テーブル12Bとをソフトウェアプログラム名について関連させ、ソフトウェア配布状況テーブル12Fの状態カラムが「配布済み」であるエントリの「サイズ」をグループ毎にまとめた値である。
ソフトウェア名は、ソフトウェア配布状況テーブル12Fのソフトウェア名のカラムに対応する。グループ毎、ソフトウェア毎の「代表クライアント数、代表クライアントの名前」は、ソフトウェア配布状況テーブル12Fの、クライアント名のカラムに対応する。
グループ毎、ソフトウェアプログラム毎の、ソフトウェアプログラムの冗長係数値は、ソフトウェア配布優先度と冗長係数値テーブル12Eの、冗長係数値カラムの値に対応する。
グループ毎、ソフトウェアプログラム毎の、ソフトウェアプログラムの冗長係数値は、ソフトウェア配布優先度と冗長係数値テーブル12Eの、冗長係数値カラムの値に対応する。
グループ毎、ソフトウェアプログラム毎の、全代表クライアントの合計平均稼動率の履歴は、ソフトウェア配布状況テーブル12Fとクライアント情報テーブル12Bとを、クライアント名について結合し、ソフトウェア配布状況テーブル12Fの状態カラムが「配布済み」であるエントリについて、日付毎の平均稼働率を、グループ毎かつソフトウェアプログラム毎にまとめた値に対応する。
既述の実施形態の変形例として、次のものがある。サーバからの指示で、クライアントが自身を代表クライアントであるか否かを判断し、代表クライアントの場合には、ソフトウェアがキャッシュされる領域の情報(アドレス、容量など)をサーバに送信する。サーバはクライアントからの情報に応じてソフトウェアを当該クライアントに配布する。
既述の実施形態では、サーバから代表クライアントへのプッシュ型の配布例について説明したが、ソフトウェアプログラムを代表クライアントへ配布する方式は、代表クライアントからの要求に基づくプル型であることを妨げるものではない。
また、以上の実施形態では、プル型のクライアント(又は代表クライアント)が代表クライアント又はサーバに対するソフトウェアイメージの取得を要求する場合は、当該要求にてソフトウェアプログラム名を指定する(代表クライアント同士や代表クライアントとサーバ間も同様であってもよい)。
これにより代表クライアント又はサーバから指定されたソフトウェアプログラム名に対応するソフトウェアイメージを代表クライアント又はサーバから受信する。また、ソフトウェアイメージの配布管理については一つのソフトウェアプログラムのインストールのために複数のソフトウェアイメージが存在する場合があるため、ソフトウェアプログラムとして配布管理(必要な情報の格納又は/及び処理の実施)を行うことを中心に開示した。
しかし、取得時に指定するソフトウェアプログラム名の代わりにソフトウェアイメージの識別子を用いてもよい。また、ソフトウェアイメージの配布管理としてソフトウェアプログラムとしてではなく、ソフトウェアイメージとして配布管理を行ってもよい。
本発明の計算機システムは、管理サーバがソフトウェアイメージを備え、ソフトウェアイメージを必要とするクライアントの要求に基づいて、当該ソフトウェアイメージをクライアントに配布するシステムに組み込むことができる。
10・・・ソフトウェア配布用管理サーバ
12・・・サーバのディスク装置
14・・・クライアント
14A・・代表クライアント
14B・・クライアントのディスク装置
28・・・画面表示用クライアント
12・・・サーバのディスク装置
14・・・クライアント
14A・・代表クライアント
14B・・クライアントのディスク装置
28・・・画面表示用クライアント
Claims (14)
- 計算機システムにおけるソフトウェアプログラムに対応するソフトウェアイメージの配布管理方法であって、
前記計算機システムは、
複数のクライアント計算機と、
前記複数のクライアント計算機の一つ又は複数に配布するソフトウェアイメージを含むサーバと、
前記サーバ計算機と前記複数のクライアント計算機とを接続するネットワークと、
を備え、
前記サーバ計算機は、
前記複数のクライアント計算機からの情報に基づいて、前記複数のクライアント計算機を複数のグループに分類する第1のステップと、
各グループについて代表クライアント計算機を選定するステップと、
前記代表クライアント計算機へ前記ソフトウェアプログラムに対応するソフトウェアイメージを配布するステップと、
を実行し、
前記ソフトウェアイメージの配布を受けた前記代表クライアント計算機は、同一グループに属する他のクライアント計算機からの要求に基づいて前記ソフトウェアイメージを当該他のクライアント計算機に配布する、
計算機システムにおけるソフトウェアイメージの配布管理方法。 - 前記サーバ計算機は、
前記ソフトウェアイメージを複数含み、
当該複数のソフトウェアプログラム又はソフトウェアイメージの属性に基づいて夫々の優先度を決定し、
当該優先度に基づく優先順位にしたがって前記代表クライアント計算機へ前記複数のソフトウェアイメージを配布する、
請求項1記載の計算機システムにおけるソフトウェアイメージの配布管理方法。 - 前記サーバ計算機は、
前記複数のクライアント計算機のリソース情報に基づいて夫々の優先度を決定し、
前記優先度に基づく優先順位にしたがって前記代表クライアント計算機へ前記ソフトウェアイメージを配布する、
請求項2記載の計算機システムにおけるソフトウェアイメージの配布管理方法。 - 前記サーバ計算機は、
前記複数のグループの少なくとも一つに、前記ソフトウェアイメージを存在させる割合に関する目標値を設定し、
前記複数のクライアント計算機から収集したリソース情報に基づいて、前記複数のクライアント計算機夫々の稼働状況を判定し、
前記目標値が設定されたグループに属する複数のクライアント計算機の中から、前記クライアント計算機の優先度にしたがって、一つのクライアント計算機を順番に選択し、
選択したクライアント計算機の前記稼働状況情報の合算値が前記目標値に到達するまで前記クライアント計算機の選択を継続し、
前記選択された一つ又は複数のクライアント計算機を前記代表クライアント計算機として設定する、
請求項3記載の計算機システムにおけるソフトウェアイメージの配布管理方法。 - 前記サーバ計算機は、前記ソフトウェアプログラムの優先度が高いほど前記目標値を高く設定する、請求項4記載の計算機システムにおけるソフトウェアイメージの配布管理方法。
- 前記サーバ計算機は、
同一グループに複数の前記代表クライアント計算機を設定し、
前記複数の代表クライアント計算機の一つに前記優先度順にアクセスして、一つの代表クライアント計算機に前記ソフトウェアイメージを配布し、
前記ソフトウェアイメージの配布を受けた代表クライアント計算機は、他の代表クライアント計算機に当該ソフトウェアイメージを配布する、
請求項3記載の計算機システムにおけるソフトウェアイメージの配布管理方法。 - 前記代表クライアント計算機が、同一のソフトウェアイメージの配布要求を前記複数のクライアント計算機から受信すると、
前記サーバ計算機は、
前記複数のクライアント計算機の少なくとも一つを新代表クライアント計算機に設定し、
前記新代表クライアント計算機から、前記複数のクライアント計算機のうち前記新代表クライアント計算機以外のクライアント計算機に前記ソフトウェアイメージを配布する、
請求項3記載の計算機システムにおけるソフトウェアイメージの配布管理方法。 - 前記サーバ計算機は、前記複数のクライアント計算機のうち、前記優先度が高いクライアント計算機を前記新代表クライアント計算機に設定する、
請求項7記載の計算機システムにおけるソフトウェアイメージの配布管理方法。 - 前記代表クライアント計算機は、前記新代表以外の前記複数のクライアント計算機への前記ソフトウェアイメージの配布を中断し、
前記新代表クライアント計算機は、前記ソフトウェアイメージの配布が中断されたクライアント計算機に対して前記ソフトウェアイメージの配布を実行する、
請求項7記載の計算機システムにおけるソフトウェアイメージの配布管理方法。 - 前記サーバ計算機は、
前記ソフトウェアイメージを前記代表クライアント計算機に配布した後、当該代表クライアント計算機に変更を設定し、
変更後の代表クライアント計算機に対して前記ソフトウェアイメージの配布を再配置する、
請求項1記載の計算機システムにおけるソフトウェアイメージの配布管理方法。 - 前記サーバ計算機は、
前記クライアント計算機の増設及び/又は減設を判定し、
当該判定に基づいて前記変更を設定し、
前記変更の設定に基づく新たな代表クライアント計算機は、前記変更の設定の前の代表クライアント計算機から前記ソフトウェアイメージの配布を受け、
前記変更の設定に基づいて、前記代表クライアント計算機から除かれたクライアント計算機は、前記配布されたソフトウェアイメージを削除する、
請求項11記載の計算機システムにおけるソフトウェアイメージの配布管理方法。 - 複数のクライアント計算機と、
前記複数のクライアント計算機の一つ又は複数に配布するソフトウェアイメージを含むサーバ計算機と、
前記サーバ計算機と前記複数のクライアント計算機とを接続するネットワークと、
を備える計算機システムであって、
前記サーバ計算機は、
前記複数のクライアント計算機とのインターフェースと、
前記ソフトウェアイメージの配布管理プログラムを含む第1のメモリと、
前記ソフトウェアと前記ソフトウェアイメージの配布管理情報を含む第2のメモリと、
前記配布管理プログラムと前記配布管理情報とに基づいて、前記ソフトウェアイメージの配布管理処理を実行するCPUと、
を備え、
前記CPUは、前記複数のクライアント計算機からの情報に基づいて、前記複数のクライアント計算機を複数のグループに分類し、各グループについて代表クライアント計算機を選定し、前記代表クライアント計算機へ前記ソフトウェアイメージを配布し、
前記ソフトウェアイメージの配布を受けた前記代表クライアント計算機は、前記ソフトウェアイメージを当該他のクライアント計算機に配布し、
前記CPUは、前記第2のメモリの前記ソフトウェアイメージの配布管理情報に基づいて、管理用表示情報を生成し、当該管理用表示情報を管理画面に出力する、
計算機システム。 - 前記第2のメモリは、前記ソフトウェアイメージを複数含み、
前記CPUは、
当該複数のソフトウェアイメージの属性に基づいて夫々の優先度と前記複数のクライアント計算機のリソース情報に基づいて夫々の優先度とを夫々決定し、
当該決定された優先度に基づく優先順位にしたがって前記代表クライアント計算機へ前記複数のソフトウェアイメージを配布し、
前記複数のグループの少なくとも一つに、前記ソフトウェアイメージを存在させる割合に関する目標値を設定し、
前記複数のクライアント計算機から収集したリソース情報に基づいて、前記複数のクライアント計算機夫々の稼働状況を判定し、
前記目標値が設定されたグループに属する複数のクライアント計算機の中から、前記クライアント計算機の優先度にしたがって、一つのクライアント計算機を順番に選択し、
選択したクライアント計算機の前記稼働状況情報の合算値が前記目標値に到達するまで前記クライアント計算機の選択を継続し、
前記選択された一つ又は複数のクライアント計算機を前記代表クライアント計算機として設定し、
同一グループに複数の前記代表クライアント計算機を設定し、
前記複数の代表クライアント計算機の一つに前記優先度順にアクセスして、一つの代表クライアント計算機に前記ソフトウェアイメージを配布し、
前記ソフトウェアイメージの配布を受けた代表クライアント計算機に、他の代表クライアント計算機に当該ソフトウェアイメージを配布させ、
前記代表クライアント計算機が同一のソフトウェアイメージの配布要求を前記複数のクライアント計算機から受信すると、前記複数のクライアント計算機の少なくとも一つを新代表クライアント計算機に設定し、
前記新代表クライアント計算機に、前記複数のクライアント計算機のうち前記新代表クライアント計算機以外のクライアント計算機に前記ソフトウェアイメージを配布させ、
前記代表クライアント計算機は、前記新代表以外の前記複数のクライアント計算機への前記ソフトウェアイメージの配布を中断し、
前記新代表クライアント計算機は、前記ソフトウェアの配布が中断されたクライアント計算機に対して前記ソフトウェアイメージの配布を実行し、
前記CPUは、
前記クライアント計算機の増設及び/又は減設を判定すると、前記ソフトウェアイメージを前記代表クライアント計算機に配布した後、当該代表クライアント計算機に変更を設定し、前記変更の設定に基づく新たな代表クライアント計算機に、前記変更の設定の前の代表クライアント計算機から前記ソフトウェアイメージの配布を受けさせ、
前記変更の設定に基づいて、前記代表クライアント計算機から除かれたクライアント計算機に、前記配布されたソフトウェアイメージを削除させる、
請求項12記載のソフトウェアイメージの配布管理のための計算機システム。 - サーバ計算機と、第1のクライアント計算機と、に接続された第2のクライアント計算機が読み取り可能な記憶媒体であって、
前記記憶媒体は、
前記第2のクライアント計算機に、前記サーバから代表クライアントを特定する情報を受信させ、前記代表クライアントを特定する情報に基いて、前記第1のクライアント計算機と前記第2のクライアント計算機とから代表クライアント計算機を特定させる、代表クライアント特定プログラムコードと、
前記代表クライアント計算機が前記第2のクライアント計算機の場合は、前記第2のクライアント計算機に、以下の(A1)乃至(A3)を実行させるソフトウェア配布プログラムコードと、
(A1)前記サーバ計算機からソフトウェアプログラムのソフトウェアイメージを受信して前記第2のクライアント計算機のメモリ又はディスクに格納させ、
(A2)前記ソフトウェア取得要求を受信し、前記ソフトウェア取得要求によって指定されたソフトウェアプログラムに対応するソフトウェアイメージを、前記第2のクライアント計算機のメモリ又はディスクに格納しているか確認させ、
(A3)前記(A2)の確認の結果、前記指定されたソフトウェアプログラムのソフトウェアイメージを格納している場合は、前記指定されたソフトウェアプログラムに対応するソフトウェアイメージを送信させ、
前記代表クライアント計算機が前記第1のクライアント計算機の場合は、前記第2のクライアント計算機に、以下の(B1)乃至(B4)を実行させるソフトウェアインストールプログラムコードと、
(B1)インストール対象の所定のソフトウェアプログラムを指定したインストール入力を受信させ、
(B2)前記所定のソフトウェアプログラムを指定したソフトウェア取得要求を、前記代表クライアント計算機又は前記サーバに送信させ、
(B3)前記ソフトウェア取得要求に応じた所定のソフトウェアプログラムに対応する所定のソフトウェアイメージを受信させ、
(B4)前記所定のソフトウェアイメージを用いて前記所定のソフトウェアプログラムをインストールさせ、
前記第2のクライアント計算機に、前記代表クライアント計算機の識別子を表示させる、代表クライアント表示プログラムコードと、
を格納することを特徴とした記憶媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/003077 WO2011135629A1 (ja) | 2010-04-28 | 2010-04-28 | 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2011135629A1 true JPWO2011135629A1 (ja) | 2013-07-18 |
Family
ID=44859360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012512540A Pending JPWO2011135629A1 (ja) | 2010-04-28 | 2010-04-28 | 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110271275A1 (ja) |
JP (1) | JPWO2011135629A1 (ja) |
WO (1) | WO2011135629A1 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2452325A (en) * | 2007-08-31 | 2009-03-04 | Sony Corp | Method and system for distributing software to a portable device using software on a pre-recorded medium. |
JP5449044B2 (ja) * | 2010-06-10 | 2014-03-19 | シャープ株式会社 | サーバ装置、端末装置およびアプリケーション制御システム |
US8762521B2 (en) * | 2011-03-14 | 2014-06-24 | 1E Limited | Monitoring the distribution of software |
CN102521031B (zh) * | 2011-12-13 | 2014-11-05 | 华为终端有限公司 | 移动终端预置应用程序的管理方法和移动终端 |
JP2013238949A (ja) * | 2012-05-14 | 2013-11-28 | Ricoh Co Ltd | 情報配信装置、及び情報配信システム並びにプログラム |
US20130332522A1 (en) * | 2012-06-08 | 2013-12-12 | Microsoft Corporation | Fast channel for system management |
US9432452B2 (en) * | 2012-09-10 | 2016-08-30 | Joosy, Inc. | Systems and methods for dynamic networked peer-to-peer content distribution |
EP2720146A1 (en) | 2012-10-11 | 2014-04-16 | Thomson Licensing | Distributed application life-cycle management |
US9411571B2 (en) * | 2013-02-28 | 2016-08-09 | Adobe Systems Incorporated | Method and apparatus for deploying software as a service |
JP2014216943A (ja) * | 2013-04-26 | 2014-11-17 | 株式会社東芝 | 電子機器、方法、及びプログラム |
US9696982B1 (en) * | 2013-11-05 | 2017-07-04 | Amazon Technologies, Inc. | Safe host deployment for a heterogeneous host fleet |
JP6365070B2 (ja) * | 2014-07-28 | 2018-08-01 | 富士通株式会社 | 検索プログラム、装置、及び方法 |
US9395969B2 (en) * | 2014-09-23 | 2016-07-19 | International Business Machines Corporation | Complex computer environment installation |
JP6380645B2 (ja) * | 2015-02-17 | 2018-08-29 | 富士通株式会社 | アプリケーション配信方法、アプリケーション配信プログラム、およびサーバ |
US10200416B2 (en) * | 2015-02-24 | 2019-02-05 | Vizio Inc | Global setting for casting content to networked renderer |
JP2017021566A (ja) * | 2015-07-10 | 2017-01-26 | 日本電気株式会社 | ネットワーク管理装置、通信装置、プログラム更新システムおよびプログラム更新方法 |
JP6323480B2 (ja) | 2016-03-02 | 2018-05-16 | 住友電気工業株式会社 | プログラム更新システム、プログラム更新方法及びコンピュータプログラム |
WO2017209049A1 (ja) * | 2016-06-02 | 2017-12-07 | 住友電気工業株式会社 | プログラム配信システム、サーバ、プログラム配信方法、およびコンピュータプログラム |
US20200183678A1 (en) * | 2016-12-08 | 2020-06-11 | Xiang Tan | Software classification |
JP6525105B2 (ja) * | 2017-02-01 | 2019-06-05 | 住友電気工業株式会社 | 制御装置、プログラム更新方法、およびコンピュータプログラム |
KR102166336B1 (ko) * | 2017-05-15 | 2020-10-15 | 삼성전자주식회사 | 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법 |
CN110896404B (zh) * | 2018-09-12 | 2021-09-14 | 华为技术有限公司 | 数据处理的方法、装置和计算节点 |
US11029936B2 (en) * | 2019-04-11 | 2021-06-08 | Microsoft Technology Licensing, Llc | Deploying packages to devices in a fleet in stages |
US11221837B2 (en) | 2019-04-11 | 2022-01-11 | Microsoft Technology Licensing, Llc | Creating and deploying packages to devices in a fleet based on operations derived from a machine learning model |
JP7374675B2 (ja) * | 2019-09-06 | 2023-11-07 | キヤノン株式会社 | 管理システムおよびその制御方法、並びにプログラム |
JP7389949B2 (ja) * | 2019-09-20 | 2023-12-01 | 章弘 長谷川 | ファイル配布システム、及びファイル配布プログラム |
US11422792B2 (en) | 2019-10-09 | 2022-08-23 | Toyota Motor North America, Inc. | Management of transport software updates |
US11169795B2 (en) | 2019-10-09 | 2021-11-09 | Toyota Motor North America, Inc. | Management of transport software updates |
US11294662B2 (en) | 2019-10-09 | 2022-04-05 | Toyota Motor North America, Inc. | Management of transport software updates |
WO2021072324A1 (en) * | 2019-10-09 | 2021-04-15 | Toyota Motor North America, Inc. | Management of transport software updates |
US12265808B1 (en) * | 2022-05-04 | 2025-04-01 | Juniper Networks, Inc. | Automated application service deployment across multiple environments |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002124945A (ja) * | 2000-10-12 | 2002-04-26 | Ntt Comware Corp | ファイル多重配信方法及びシステム装置 |
JP2006172305A (ja) * | 2004-12-17 | 2006-06-29 | Nec Corp | 無線基地局装置及びプログラムダウンロード方法並びにそのプログラム |
JP2009271904A (ja) * | 2008-04-10 | 2009-11-19 | Hitachi Ltd | 配布管理方法、配布管理システム、および配布管理サーバ |
JP2010032976A (ja) * | 2008-07-31 | 2010-02-12 | Daiichikosho Co Ltd | 通信カラオケシステム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8898256B2 (en) * | 2004-07-13 | 2014-11-25 | International Business Machines Corporation | Prioritization of application component distribution |
US7770168B1 (en) * | 2005-05-25 | 2010-08-03 | Landesk Software Limited | Systems and methods for distributing software using nodes within a network group |
WO2009007967A2 (en) * | 2007-07-09 | 2009-01-15 | Nolio Ltd. | System and method for application process automation over a computer network |
US8201164B2 (en) * | 2007-07-20 | 2012-06-12 | Microsoft Corporation | Dynamically regulating content downloads |
US9665729B2 (en) * | 2009-04-13 | 2017-05-30 | Microsoft Technology Licensing, Llc | Revocation of application on mobile device |
-
2010
- 2010-04-28 JP JP2012512540A patent/JPWO2011135629A1/ja active Pending
- 2010-04-28 WO PCT/JP2010/003077 patent/WO2011135629A1/ja active Application Filing
- 2010-04-28 US US12/864,184 patent/US20110271275A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002124945A (ja) * | 2000-10-12 | 2002-04-26 | Ntt Comware Corp | ファイル多重配信方法及びシステム装置 |
JP2006172305A (ja) * | 2004-12-17 | 2006-06-29 | Nec Corp | 無線基地局装置及びプログラムダウンロード方法並びにそのプログラム |
JP2009271904A (ja) * | 2008-04-10 | 2009-11-19 | Hitachi Ltd | 配布管理方法、配布管理システム、および配布管理サーバ |
JP2010032976A (ja) * | 2008-07-31 | 2010-02-12 | Daiichikosho Co Ltd | 通信カラオケシステム |
Also Published As
Publication number | Publication date |
---|---|
US20110271275A1 (en) | 2011-11-03 |
WO2011135629A1 (ja) | 2011-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2011135629A1 (ja) | 計算機システムにおけるソフトウェアの配布管理方法、及び、ソフトウェアの配布管理のための計算機システム | |
JP4265245B2 (ja) | 計算機システム | |
US11082512B2 (en) | Routing and filtering event notifications | |
KR101585146B1 (ko) | 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체 | |
US8346843B2 (en) | System and method for scalable data distribution | |
JP4621273B2 (ja) | データ同期方法、データ同期プログラム、データベースサーバ装置、および、データベースシステム | |
US8661055B2 (en) | File server system and storage control method | |
US9361474B2 (en) | Network filesystem asynchronous I/O scheduling | |
US8250171B2 (en) | Content delivery apparatus, content delivery method, and content delivery program | |
CN111200657A (zh) | 一种管理资源状态信息的方法和资源下载系统 | |
JP2014044677A (ja) | 送信制御プログラム、通信ノード、および送信制御方法 | |
US8086629B2 (en) | Content delivery apparatus, content delivery method, and content delivery program | |
CN103366022B (zh) | 信息处理系统及其处理方法 | |
US9811534B2 (en) | File server, information system, and control method thereof | |
WO2009042609A2 (en) | Exchange of syncronization data and metadata | |
US20160234129A1 (en) | Communication system, queue management server, and communication method | |
CN114124971B (zh) | 一种基于边缘缓存的cdn-p2p网络的内容副本放置方法 | |
JP3672483B2 (ja) | コンテンツ配信装置、コンテンツ配信方法、コンテンツ配信プログラムを記録した記録媒体 | |
EP2879353B1 (en) | Method for controlling operations of a network system | |
JP2003006071A (ja) | 個人データ配送方法、システム及びプログラム並びに該プログラムを記録した記録媒体 | |
JP4064162B2 (ja) | ファイル蓄積装置および方法 | |
JP2018036947A (ja) | 分散処理システム、分散処理方法および分散処理プログラム | |
JP2000155711A (ja) | データ管理装置及びデータ管理方法 | |
JP6020210B2 (ja) | クォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラム | |
CN119071355A (zh) | 一种基于Redis有序集合的延迟消息的确定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130723 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131210 |