以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)本実施の形態による情報処理システムの構成
図1において、1は全体として本実施の形態による情報処理システムを示す。この情報処理システム1は、管理サーバ2及び複数のクライアント3がネットワーク4を介して接続されることにより構成されている。
管理サーバ2は、CPU(Central Processing Unit)10、メモリ11、ハードディスク装置12及び通信インタフェース13を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。
CPU10は、管理サーバ2全体の動作制御を司るプロセッサである。メモリ11は、CPU10のワークメモリとして用いられるほか、各種プログラムを記憶するために用いられる。例えばメモリ11には、管理サーバ2の起動時にハードディスク装置12から読み出されたマネージャプログラム14及びOS(Operating System)15などが格納される。
ハードディスク装置12には、各種プログラム及び各種データが保存される。後述するスクリプトファイル雛形40、メールメッセージファイル雛形41、インストール媒体群42、クライアント管理テーブル43、配布物管理テーブル44及びインストール媒体管理テーブル45もこのハードディスク装置12に保存される。またハードディスク装置12が提供する記憶領域には、後述する臨時アカウント認証情報バッファ46も設けられる。
通信インタフェース13は、管理サーバ2がネットワーク4を介してクライアント3と通信する際のプロトコル変換などの処理を行う。通信インタフェース13は、1又は複数のポートを備えており、これらポートを介してネットワーク4と接続される。通信インタフェース13が備える各ポートには、それぞれそのポートをネットワーク4上において一意に識別するためのWWN(World Wide Name)やIP(Internet protocol)アドレスなどのネットワークアドレスが付与される。
ネットワーク4は、SAN(Storage Area Network)、LAN(Local Area Network)、インターネット、公衆回線又は専用回線などから構成される。このネットワーク4を介した管理サーバ2及びクライアント3間の通信は、例えばネットワーク4がSANである場合にはファイバーチャネルプロトコルに従って行われ、ネットワーク4がLANやインターネットである場合にはTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに従って行われる。
クライアント3は、管理サーバ2と同様に、CPU20、メモリ21、ハードディスク装置22及び通信インタフェース23を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。これらCPU20、メモリ21及びハードディスク装置22は、管理サーバ2の対応部位と同様の機能を有するものである。
ただしクライアント3のメモリ21には、当該クライアント3の起動時にハードディスク装置22から読み出されたOS24及びメールプログラム25のほか、後述のスクリプト26や管理サーバ2から送信された後述のインストールプログラム27なども格納される。またクライアント3のハードディスク装置22には、各種アプリケーションプログラムのほか、後述のように管理サーバ2から送信されたインストール媒体28、スクリプトファイル29及びメールメッセージファイル30などが格納される。
通信インタフェース23は、管理サーバ2の通信インタフェースと同様に、クライアント3がネットワーク4を介して管理サーバ2と通信する際のプロトコル変換などの処理を行う機能を備える。通信インタフェース13は、1又は複数のポートを備えており、これらポートを介してネットワーク4と接続される。通信インタフェース13が備える各ポートには、それぞれそのポートをネットワーク4上において一意に識別するためのWWNやIPアドレスなどのネットワークアドレスが付与される。
(1−2)本実施の形態によるソフトウェア配布方式
(1−2−1)本実施の形態によるソフトウェア配布方式の概要
次に、本情報処理システム1において管理サーバ2から各クライアント3にソフトウェアを配布する場合のソフトウェア配布方式について説明する。本実施の形態による情報処理システム1においては、以下の手順で管理サーバ2から各クライアント3に対してソフトウェアを配布することを特徴とする。なお、以下においては、配布物がエージェントプログラムであるものとする。
(a)事前処理
(a−1)まず、管理者が管理サーバ2に対して、配布対象のエージェントプログラム及びその配布先と、配布の開始日時(以下、これを配布開始日時と呼ぶ)とを指定したエージェント配布指示を与える。
(a−2)管理サーバ2は、管理者により指定された配布開始日時に応じて配布先のクライアント3ごとに配布時刻を割り当てる。また管理サーバ2は、割り当てた配布時刻にポートの開閉、並びに、臨時アカウントの生成及び削除を行う機能を有するスクリプトファイル29をクライアント3ごとにそれぞれ生成し、生成したスクリプトファイル29をそれぞれ所定のメールメッセージファイル30に添付して対応するクライアント3に送付する。
なお、スクリプトとは、機械語への変換作業を省略して簡易に実行できるようにした簡易プログラムをいう。例えばWindows(登録商標)ではVBScript、Unix(登録商標)ではシェルスクリプトがこれに相当する。以下においては、ファイルとしてのスクリプトについては「スクリプトファイル」と呼び、メモリにロードされて実行状態になっているプログラムとしてのスクリプトについては「スクリプト」と呼ぶものとする。
(a−3)かかるメールメッセージファイル30を受信したクライアント3側では、ユーザ操作により、そのメールメッセージファイル30に添付されたスクリプトファイル29を実行する。このとき実行されたスクリプト26は、ユーザに対し、エージェントプログラムの配布時刻をメッセージダイアログで通知し、その配布時刻にクライアント3を起動しておくように促す。
(a−4)この後、管理サーバ2及びクライアント3は、エージェントプログラムの配布時刻になるまで待機する。
(b)配布実行処理
(b−1)エージェントプログラムの配布時刻になると、クライアント3は、スクリプトファイル29に記述されている所定の生成ルールに従って臨時アカウントを作成し、さらに管理サーバ2から送付されるエージェントプログラムの受信に使用するポートを開く。
(b−2)このとき管理サーバ2は、クライアント3側と同じ生成ルールに従ってクライアント3側と同じ臨時アカウントを生成し、生成した臨時アカウントを用いてクライアント3にリモート接続する。そして管理サーバ2は、リモート接続先のクライアント3からOS情報(当該クライアント3に搭載されたOS24の種別情報)を収集し、そのクライアント3のOS24に適合するエージェントプログラムの種別を判定し、その種別のエージェントプログラムをクライアント3にプッシュ配布する。
(b−3)エージェントプログラムがプッシュ配布されたクライアント3のスクリプト26は、そのエージェントプログラムをインストールする。インストール完了後、スクリプト26(図1)が臨時アカウントを削除し、開けていたポートを閉じ、その後自分自身を削除する。
(1−2−2)本ソフトウェア配布方式に関する管理サーバ及びクライアントの構成
以上のような本実施の形態によるソフトウェア配信方式を実現するための手段として、管理サーバ2のマネージャプログラム14は、図1に示すように、マネージャ制御部31、スクリプトファイル生成部32、メール処理部33及びプッシュ配布処理部34を備えて構成され、管理サーバ2のOS15は、リモート管理用インタフェース35を備えて構成されている。
スクリプトファイル生成部32は、上述した事前処理の(a−2)においてクライアント3ごとのスクリプトファイル29を生成するためのプログラムであり、メール処理部33は、かかる事前処理の(a−2)において対応するメールメッセージファイル30を生成し、生成したメールメッセージファイル30をクライアント3に電子メール(以下、単にメールと呼ぶ)にて配布するためのプログラムである。
またプッシュ配布処理部34は、上述した配布実行処理の(b−2)においてエージェントプログラムをクライアント3にプッシュ配布するためのプログラムであり、マネージャ制御部31は、本ソフトウェア配信方式に関する各種処理のうちのスクリプトファイル生成部32、メール処理部33及びプッシュ配布処理部34に基づく上述の処理以外の処理を実行するためのプログラムである。
OS15のリモート管理用インタフェース35は、管理サーバ2がクライアント3にリモート接続する際のインタフェースである。
なお、以下においては、「プログラム」が各種処理を実行するものと説明するが、実際にはそのプログラムに基づいてCPU10が対応する処理を実行することは言うまでもない。
一方、管理サーバ2のハードディスク装置12には、図1に示すように、スクリプトファイル雛形40、メールメッセージファイル雛形41、インストール媒体群42、クライアント管理テーブル43、配布物管理テーブル44及びインストール媒体管理テーブル45が格納されると共に、臨時アカウント認証情報バッファ46が設けられている。
このうちスクリプトファイル雛形40は、上述した事前処理の(a−2)において管理サーバ2からクライアント3に送付するスクリプトファイル29の雛形であり、例えば図2A及び図2Bに示すような構成を有する。図中、実線1本の下線部分は、スクリプトファイル29の生成時に当該スクリプトファイル29の配布先となるクライアント3に対応させて対応する情報を格納する部分であり、また波線の下線部分は、各処理による取得結果を格納する部分である。さらに二重線の下線部分は、対応部位の説明のために記述している情報であり、実際のプログラムでは記述されない。
またメールメッセージファイル雛形41は、上述した事前処理の(a−2)において管理サーバ2からクライアント3に送付されるメールメッセージファイル30の雛形である。このメールメッセージファイル雛形41に基づいて、例えば図3に示すような文面のメールが作成される。図中、下線部分は、管理サーバ2からクライアント3に送付する際に対応する情報を格納する部分である。
インストール媒体群42は、クライアント3にインストールされた又はインストールされる可能性のあるOSの各種別(例えばWindows XP(登録商標)、Windows Vista(登録商標)及びWindows Server 2008(登録商標))にそれぞれ対応する複数種類のインストール媒体28から構成される。ここでインストール媒体28は、配布するエージェントプログラムをクライアント3にインストールするために必要なファイルの集合体(インストールプログラム及び配布物自体を含む)であり、具体的には、ZIP形式のファイル等のアーカイブデータから構成される。
なお、インストールプログラムとは、配布物(ここではエージェントプログラム)をインストールするために使用するプログラムのことをいう。本実施の形態においては、GUI(Graphical User Interface)からの入力を必要とせずにインストールを行うサイレントインストール可能なものを想定している。具体的にはWindows(登録商標) Installer形式のデータ等である。
クライアント管理テーブル43は、各クライアント3に対する配布物(エージェントプログラム)の配布状況を管理するためのテーブルであり、ノードID欄43A、IPアドレス欄43B、メールアドレス欄43C、OS欄43D、割当て済み配布物ID欄43E、配布時刻欄43F、時刻差分欄43G、スクリプト格納パス欄43H、スクリプトファイル実行パス欄43I、ステータス欄43J及び結果コード欄43Kから構成される。
そしてノードID欄43Aには、配布物を配布した又は配布すべきクライアント3に付与されたID(以下、これをノードIDと呼ぶ)が格納され、IPアドレス欄43Bには、そのクライアント3にアクセスする際のIPアドレスが格納される。
またメールアドレス欄43Cには、そのクライアント3のメールアドレスが格納され、OS欄43Dには、そのクライアント3に実装されたOSの種類が格納される。さらに割当て済み配布物ID欄43Eには、そのクライアント3に配布済みの配布物に付与されたID(以下、これを配布物IDと呼ぶ)が格納され、配布時刻欄43Fには、その配布済みの配布物をそのクライアント3に配布した配布時刻が格納される。
また時刻差分欄43Gには、そのクライアント3の内部時刻と、管理サーバ2の内部時刻との差分(以下、これを時刻差分と呼ぶ)が秒単位で格納される。この時刻差分は、管理サーバ2の内部時刻の方がクライアント3の内部時刻よりも遅い場合にはマイナスの値となる。この時刻差分の初期値は「0」である。
さらにスクリプト格納パス欄43Hには、管理サーバ2におけるそのクライアント3用に作成したスクリプトファイル29(図1)の格納位置までのパス名が格納され、スクリプトファイル実行パス欄43Iには、対応するクライアント3における対応するスクリプトファイル29の格納位置が格納される。さらにステータス欄43Jには、そのクライアント3に対する対応する配布物の配布状況を表すステータスが格納される。
本実施の形態の場合、かかるステータスとしては、「準備中」、「実行待ち」、「実行中」、「正常終了」及び「エラー終了」の5種類がある。このうち「準備中」は、そのクライアント3に対する配布物の配布状況が上述の事前処理ステップ中であることを表し、「実行待ち」は、事前処理ステップの終了後から配布物の配布を開始するまでの間であることを表す。また「実行中」は、配布物の配布処理を実行中であることを表し、「正常終了」は、配布物の配布が正常に完了したことを表す。さらに「エラー終了」は、配布物の配布処理中にエラーが発生したことを表す。なお、ステータスの初期値は「準備中」である。
さらに結果コード欄43Kには、そのクライアント3に対する配布物の配布処理の結果を表すコード(以下、これを結果コードと呼ぶ)が格納される。本実施の形態の場合、結果コードとしては、「−1」〜「2」の4種類がある。このうち「−1」は、配布処理が未完了であることを表し、「0」は、配布物の配布処理が正常終了したことを表す。また「1」は、そのクライアント3へのリモート接続時の認証処理に失敗したことを表し、「2」は、スクリプト26や配布物(エージェントプログラム)のインストール処理に失敗したことを表す。結果コードの初期値は、「−1」である。
かかるクライアント管理テーブル43では、配布物ごとにエントリが存在する。例えば1つのクライアント3に対して複数の配布物を配布する際には、同じノードIDのエントリが配布物数分だけ存在することになる。またAD(Active Directory)環境等の特殊な環境でない限り、初期状態では、各エントリのノードID欄43A及びメールアドレス欄43Cのみに情報が格納されている。
配布物管理テーブル44は、クライアント3に配布する配布物及びその配布状況を管理するためのテーブルであり、図5に示すように、配布物ID欄44A、配布物名欄44B、配布開始日時欄44C、残ノード数欄44D及びステータス欄44Eから構成される。
そして配布物ID欄44Aには、管理サーバ2のハードディスク装置12に保持しているクライアント3に配布予定、配布中又は配布した配布物のIDが格納され、配布物名欄44Bには、その配布物の名称が格納される。
また配布開始日時欄44Cには、その配布物の配布を開始する予定日時又は開始した日時が格納され、残ノード数欄44Dには、その配布物を配布すべきクライアント3のうちの配布処理が完了していないクライアント3の数が格納される。
さらにステータス欄44Eには、その配布物の配布状況を表すステータスが格納される。本実施の形態の場合、かかるステータスとしては、「実行待ち」、「実行中」、「正常終了」及び「エラー終了」の4種類がある。このうち「実行待ち」は、管理者による配布指示を待っている状態を表し、「実行中」は、その配布物を配布処理中であることを表す。また「正常終了」は、配布処理が正常に終了したことを表し、「エラー終了」は、配布処理中にエラーが発生したことを表す。
インストール媒体管理テーブル45は、管理サーバ2のハードディスク装置12に格納された各種インストール媒体28のうち、配布物ごと及びクライアント3に実装されたOSの種別ごとにそれぞれ適合するインストール媒体28(図1)へのパスを管理するためのテーブルであり、図6に示すように、配布物ID欄45A及びOS別パス欄45Bから構成される。そして配布物ID欄45Aには、管理サーバ2のハードディスク装置12に格納された配布物の配布物IDが格納される。
またOS別パス欄45Bには、クライアント3に搭載された又は搭載される可能性のある各種OSの種別にそれぞれ対応させてパス欄45Cが設けられており、ハードディスク装置12に格納された各種インストール媒体28のうち、対応する種別のOSに対応したインストール媒体28へのアクセスパスがこれらのパス欄45Bにそれぞれ格納される。
例えば図6の例の場合、配布物IDが「10001」のエージェントプログラムについては、WindowsXP(登録商標)用、WindowsVista(登録商標)用及びWindowsServer2008(登録商標)用のインストール媒体28が予め用意(ハードディスク装置に予め格納)されており、例えばWindowsXP(登録商標)用のインストール媒体28へのアクセスパスは「C:DeployFile\10001\Install#xp.zip」であることが示されている。
さらに臨時アカウント認証情報バッファ46は、管理サーバ2のマネージャプログラム14が生成した臨時アカウントの認証情報(ID及びパスワード)を一時的に保存しておくための記憶領域であり、図7に示すように、ノードID欄46A、臨時アカウントID欄46B及び臨時アカウントパスワード欄46Cから構成される。
そしてノードID欄には46Aには、そのとき生成した臨時アカウントの対象となるクライアント3のノードIDが格納される。また臨時アカウントID欄46Bには、生成された臨時アカウントのIDが格納され、臨時アカウントパスワード欄46Cには、生成された臨時アカウントのパスワードが格納される。
なお、クライアント3のOS24にも、管理サーバ2がそのクライアント3にリモート接続する際のインタフェースとして機能するリモート管理用インタフェース36が設けられている。
(1−2−3)事前処理及び配布実行処理の詳細
図8は、上述した本ソフトウェア配布方式における事前処理の具体的な処理の流れを示す。管理者は、エージェントプログラムをクライアント3に配布する場合、配布対象のエージェントプログラム、当該エージェントプログラムの配布先(配布先のクライアント3)及び配布開始日時等を指定した配布指示(以下、これをエージェントプログラム配布指示と呼ぶ)を管理サーバ2に入力する(SP1)。
管理サーバ2は、かかるエージェントプログラム配布指示が入力されると、管理者により指定された配布開始時刻に従ってエージェントプログラムを配布すべき各クライアント3に対して、エージェントプログラムを配布する配布時刻をそれぞれ割り当てる。そして管理サーバ2は、割り当てたクライアント3ごとの配布時刻をそれぞれクライアント管理テーブル43(図4)の対応するエントリの配布時刻欄43Fに格納する(SP2)。
続いて管理サーバ2は、それぞれクライアント3のノードID及び配布時刻と、臨時アカウントのID及びパスワードの生成ルールとを記述したクライアント3ごとのスクリプトファイル29(図1)を生成し、生成した各スクリプトファイル29をハードディスク装置12に保存する。また管理サーバ2は、このときハードディスク装置12に保存した各スクリプトファイル29へのパスをそれぞれクライアント管理テーブル43における対応するエントリのスクリプト格納パス欄43H(図1)に格納する(SP3)。
そして管理サーバ2は、この後、エージェントプログラムの配布先として指定された各クライアント3に対して、対応するスクリプトファイル29(図1)が添付されたメールメッセージファイル30を送付する(SP4)。
一方、かかるメールメッセージファイル30を受信したクライアント3のユーザは、そのクライアント3を操作して、当該メールメッセージファイル30の開封指示と、メールメッセージファイル30に添付されたスクリプトファイル29の実行指示とをクライアント3に与える(SP5)。
クライアント3は、かかるユーザからのメールメッセージファイル30の開封指示に応じてメールメッセージファイル30を開封する。これにより図3について上述したメールメッセージがクライアント3に表示される。またクライアント3は、ユーザからのスクリプトファイル29の実行指示に応じてスクリプトファイル29を実行する(SP6)。
そしてクライアント3は、かかるスクリプトファイル29に基づくスクリプト26に従った処理を実行し終えると、当該クライアント3のノードID、IPアドレス及びクライアント3における現在時刻等の情報を含むスクリプト26の実行完了通知(以下、これをスクリプト実行完了通知と呼ぶ)を管理サーバ2に送信し(SP7)、この後、エージェントプログラムの配布時刻まで待機する(SP8)。
また管理サーバ2は、かかるスクリプト実行完了通知を受信すると、このスクリプト実行完了通知に含まれるそのクライアント3のIPアドレス等を保存する。また管理サーバ2は、かかるスクリプト実行完了通知に含まれるそのクライアント3の現在時刻に基づいて、管理サーバ2の現在時刻とそのクライアント3の現在時刻との間にずれがあった場合には、そのずれの分だけ配布時刻を調整し、これに応じてクライアント管理テーブル43を更新する(SP9)。そして管理サーバ2は、この後、エージェントプログラムの配布時刻になるまで待機する(SP10)。
一方、図9は、管理サーバ2からクライアント3に対して当該クライアント3に配布対象のエージェントプログラムを配布する配布実行処理の流れを示す。
クライアント3側では、上述の事前処理により管理サーバ2から通知されたエージェントプログラムの配布時刻となると、事前処理においてインストールしたスクリプト26(図1)が、スクリプトファイル29において規定されていた所定の生成ルールに従って臨時アカウントの認証情報(ID及びパスワード)を生成するし、さらに管理サーバ2から送信されるエージェントプログラムを受信するためのポートを開く。そしてクライアント3は、この後、管理サーバ2からリモート接続要求が与えられるのを待ち受ける(SP20)。
なおスクリプト26は、この後所定のタイムアウト時間が経過する前に管理サーバ2からのリモート接続要求を受信できなかったときには、セキュリティホールを塞ぐため、臨時アカウントを削除し、開けていたポートを閉じ、管理サーバ2にエラー通知を送信した後、自分自身を削除する(SP21)。
一方、管理サーバ2は、エージェントプログラムの配布時刻となると、上述の生成ルールに従って臨時アカウントの認証情報を生成し、生成した認証情報を使用して、クライアント3に対してリモート接続要求を送信する(SP22)。
このリモート接続要求を受信したクライアント3のスクリプト26は、認証処理を行い(SP23)、管理サーバ2が自クライアント3にアクセスが許可された機器であることを確認すると、管理サーバ2及び自クライアント3間におけるリモート接続が確立したことを管理サーバ2に通知する(SP24)。なお、以下においては、この通知をリモート接続確立通知と呼ぶ。
このリモート接続確立通知を受信した管理サーバ2は、そのクライアント3にアクセスして、当該クライアント3のOS情報の送信を要求する(SP25)。かくしてクライアント3のスクリプト26は、この要求に応じて、管理サーバ2に対して自己のOS情報を送信する(SP26)。
そして管理サーバ2は、このようにして取得したそのクライアント3のOS情報に基づいて、そのクライアント3のOS24の種別に適合するエージェントプログラムを選択し(SP27)、選択したエージェントプログラムのインストール媒体28(図1)をそのクライアント3に送信する(SP28)。そして管理サーバ2は、この後、そのエージェントプログラムのインストールをクライアント3に指示(以下、このときの指示をインストール指示と呼ぶ)する(SP29)。
かかるインストール指示が与えられたクライアント3は、インストール媒体28に含まれるインストールプログラム27(図1)に基づいてエージェントプログラムのサイレントインストールを実行する(SP30)。またクライアント3は、かかるエージェントプログラムのサイレントインストールが完了すると、臨時アカウントを削除し、開けていたポートを閉じ、スクリプト26を削除する(SP31)。
この後、クライアント3は、ステップSP30においてインストールしたエージェントプログラムに基づいてインストール完了通知を管理サーバ2に送信し(SP32)、この後、エージェントプログラムの配布実行処理を終了する。また、インストール完了通知を受信した管理サーバ2も、この後、エージェントプログラムの配布実行処理を終了する。
(1−2−4)マネージャプログラムの処理
(1−2−4−1)マネージャ制御部の処理
ここで図10は、本実施の形態によるソフトウェア配布方式の事前処理に関するマネージャプログラム14のマネージャ制御部31の具体的な処理内容を示す。
この場合、マネージャ制御部31は、まず、所定のイベントが発生するのを待ち受ける(SP40)。ここでのイベントとは、図8のステップSP1について上述したエージェントプログラム配布指示が管理者から与えられ、又は、図8のステップSP7について上述したスクリプト実行完了通知がクライアント3から与えられることを指す。
そしてマネージャ制御部31は、やがてステップSP40において肯定結果を得ると、そのとき受信したのがエージェントプログラム配布指示であるか否かを判断する(SP41)。
マネージャ制御部31は、この判断において肯定結果を得ると、このとき管理者から与えられたエージェント配布指示に基づいて、かかるエージェントプログラム配布指示において指定された配布開始日時を配布物管理テーブル44(図5)における配布対象のエージェントプログラムに対応するエントリの配布開始日時欄44C(図5)に格納すると共に、配布先として指定されたクライアント3の数をそのエントリの残ノード数欄44D(図5)に格納する(SP42)。
続いてマネージャ制御部31は、配布物管理テーブル44のそのエントリのステータス欄44E(図5)に格納されているステータスを「実行中」に更新し(SP43)、この後、クライアント管理テーブル43(図4)に配布先として指定されたクライアント3ごとのエントリを作成する(SP44)。具体的にマネージャ制御部31は、配布先として指定されたクライアント3ごとのエントリをクライアント管理テーブル43に確保し、これらエントリの割当て済み配布物ID欄43E(図4)にそれぞれ配布対象のエージェントプログラムの配布物IDを格納する。またマネージャ制御部31は、これらエントリの配布時刻欄43F、時刻差分欄43G、スクリプト格納パス欄43H、スクリプトファイル実行パス欄43I、ステータス欄43J及び結果コード欄43Kにそれぞれ初期値を入力する。
次いでマネージャ制御部31は、管理者により指定されたエージェントプログラムの配布開始時刻に従って、配布先として指定された各クライアント3に対して配布時刻をそれぞれ割り当てる。例えば、管理者により指定された配布開始時刻が「2008/05/19 12:00:00」であった場合、配布対象のエージェントプログラムの1台当たりの配布所要時間が3分であるものとすると、図11に示すように、マネージャ制御部31は、1台目のクライアント3については「2008/05/19 12:00:00」、2台目のクライアント3については「2008/05/19 12:03:00」……のように配布時刻を割り当てる。なお、ここでは仮に配布対象のエージェントプログラムの1台当たりの配布所要時間を3分としたが、当該配布所要時間は、ネットワーク帯域と、配布対象のエージェントプログラムの容量とに基づいて算出するようにする。そしてマネージャ制御部31は、この後、配布先として指定された各クライアント3にそれぞれ割り当てた配布時刻をそれぞれクライアント管理テーブル43の対応するエントリの配布時刻欄43Fにそれぞれ格納する(SP45)。
続いてマネージャ制御部31は、配布先として指定された各クライアント3のノードIDのリストをスクリプトファイル生成部32(図1)に渡し、かかるクライアント3ごとのスクリプトファイル29を生成するようスクリプトファイル生成部32に指示(以下、これをスクリプトファイル生成指示と呼ぶ)与える(SP46)。
さらにマネージャ制御部31は、配布先として指定された各クライアント3のノードIDのリストをメール処理部33に渡し、スクリプトファイル生成部32により作成されたスクリプトファイル29を添付したメールメッセージファイル30(図1)をかかるクライアント3のそれぞれに送付するようメール処理部33に指示(以下、これをメールメッセージファイル送付指示と呼ぶ)を与える(SP47)。そしてマネージャ制御部31は、この後ステップSP40に戻る。
これに対してマネージャ制御部31は、ステップSP41の判断において否定結果を得ると、そのとき受信したのがスクリプト実行完了通知であるか否かを判断する(SP48)。そしてマネージャ制御部31は、この判断において否定結果を得るとステップSP40に戻る。
これに対してマネージャ制御部31は、かかる判断において肯定結果を得ると、管理サーバ2内の図示しない内部時計から管理サーバ2における現在時刻を取得する(SP49)。
次いでマネージャ制御部31は、スクリプト実行完了通知に含まれる当該スクリプト実行完了通知を送信してきたクライアント3における現在時刻と、ステップSP49において取得した管理サーバ2における現在時刻とを比較し、これら2つの現在時刻の間にずれがあるか否かを判断する(SP50)。
マネージャ制御部31は、この判断において否定結果を得るとステップSP52に進む。これに対してマネージャ制御部31は、この判断において肯定結果を得ると、かかるクライアント3における現在時刻と、管理サーバ2における現在時刻との差分を計算し、計算結果を、クライアント管理テーブル43(図4)内のそのクライアントと対応するエントリの時刻差分欄43Gに格納する。またマネージャ制御部31は、かかる計算結果に基づいてクライアント管理テーブル43のそのエントリの配布時刻欄43Fに格納された配布時刻を更新する(SP51)。
例えば、クライアント3に対するエージェントプログラムの配布時刻が「2008/05/19/13:00:00」であるものとする。このとき、そのクライアント3の現在時刻が「2008/05/19/12:13:45」であり、管理サーバ2の現在時刻が「2008/05/19/12:14:55」であった場合、管理サーバ2の方がクライアント3よりも1分10秒進んでいることになる。そこで、この場合、マネージャ制御部31は、クライアント管理テーブル43の配布時刻欄43Fに格納されているそのクライアント3に対するエージェントプログラムの配布時刻を「2008/05/19/13:01:10」に更新すると共に、時刻差分欄43Gに格納されているそのクライアント3及び管理サーバ2間の時刻差分を「70」に更新する。
次いでマネージャ制御部31は、スクリプト実行完了通知に含まれるそのクライアント3のIPアドレスをクライアント管理テーブル43の対応するエントリのIPアドレス欄43Bに保存する(SP52)。さらにマネージャ制御部31は、そのエントリのステータス欄43Jに格納されているステータスを「実行待ち」に更新し(SP53)、この後ステップSP40に戻る。
一方、図12は、本実施の形態によるソフトウェア配布方式の配布実行処理に関するマネージャ制御部31の具体的な処理内容を示す。
マネージャ制御部31は、図10について上述した事前処理を終了すると、この配布実行処理を開始し、まず、所定のイベントが発生するのを待ち受ける(SP60)。ここでのイベントとは、配布先として指定されたいずれかのクライアント3に対するエージェントプログラムの配布時刻となり、又は、図15のステップSP106又はステップSP115について後述するエージェントプログラムの配布処理完了通知がプッシュ配布処理部34から与えられることを指す。
そしてマネージャ制御部31は、やがてステップSP60において肯定結果を得ると、そのときのイベントが、配布先として指定されたいずれかのクライアント3に対するエージェントプログラムの配布時刻となったことであるか否かを判断する(SP61)。
マネージャ制御部31は、この判断において肯定結果を得ると、スクリプトファイル29(図1)において規定されている所定の生成ルールに従って、クライアント管理テーブル43におけるそのクライアント3に対応するエントリのIPアドレス欄43B(図4)及び配布時刻欄43F(図4)にそれぞれ格納されているIPアドレス及び配布時刻を用いて臨時アカウントのID及びパスワードを生成し、生成した臨時アカウント認証情報をハードディスク装置12内の臨時アカウント認証情報バッファ46に保存する(SP62)。
続いてマネージャ制御部31は、プッシュ配布処理部34に対して配布対象のエージェントプログラムのプッシュ配布の実行を指示し(SP63)、さらにクライアント管理テーブル43の対応するエントリにおけるステータス欄43Jに格納されたステータスを「実行中」に更新した後(SP64)、ステップSP60に戻る。
これに対してマネージャ制御部31は、ステップSP61の判断において否定結果を得ると、ステップSP60において発生したイベントがプッシュ配布処理部34からの配布処理完了通知の受信であったか否かを判断する(SP65)。そしてマネージャ制御部31は、この判断において否定結果を得るとステップSP60に戻る。
これに対してマネージャ制御部31は、ステップSP65の判断において肯定結果を得ると、そのとき受信した配布処理完了通知に含まれる結果コードが、正常終了を意味する「0」であるか否かを判断する(SP66)。
マネージャ制御部31は、この判断において肯定結果を得ると、クライアント管理テーブル43の対応するエントリのステータス欄43J(図4)に格納されているステータスを「正常終了」に更新すると共に、当該エントリの結果コード欄43K(図4)に格納されている結果コードを「0」に更新する。
またマネージャ制御部31は、ステップSP68の判断において否定結果を得ると、クライアント管理テーブル43の対応するエントリのステータス欄43Jに格納されているステータスを「エラー終了」に更新すると共に、当該エントリの結果コード欄43Kに格納されている結果コードを、そのとき受信した配布処理完了通知に含まれる結果コード(「1」又は「2」)に更新する。
続いてマネージャ制御部31は、配布物管理テーブル44(図5)の対応するエントリの残ノード数欄44D(図5)に格納された残ノード数を「1」減らし、その後、当該残ノード数をチェックする(SP69)。そしてマネージャ制御部31は、残ノード数が「0」となったか否かを判断する(SP70)。
マネージャ制御部31は、この判断において否定結果を得るとステップSP60に戻り、この後、そのとき配布しているエージェントプログラムを配布先として指定されたすべてのクライアント3に配布し終えるまで同様の処理を繰り返す。
そしてマネージャ制御部31は、やがてかかるエージェントプログラムを指定されたすべてのクライアント3に配布し終えることによりステップSP70の判断において肯定結果を得ると、そのときエージェントプログラムを配布した各クライアント3とそれぞれ対応するクライアント管理テーブル43(図4)の各エントリのステータス欄43J(図4)にそれぞれ格納されたステータスを検索し(SP71)、いずれかのエントリのステータス欄43Jに「エラー終了」のステータスが格納されているか否かを判断する(SP72)。
マネージャ制御部31は、この判断において否定結果を得ると、配布物管理テーブル44のエントリのうちのそのとき配布したエージェントプログラムと対応するエントリのステータス欄44Eに格納されているステータスを「正常終了」に更新し(SP73)、この後ステップSP60に戻る。
これに対してマネージャ制御部31は、かかる判断において肯定結果を得ると、配布物管理テーブル44のエントリのうちのそのとき配布したエージェントプログラムと対応するエントリのステータス欄44Eに格納されているステータスを「エラー終了」に更新し(SP74)、この後ステップSP60に戻る。
(1−2−4−2)スクリプトファイル生成部の処理
一方、図13は、図10について上述した事前処理のステップSP46においてマネージャ制御部31からスクリプトファイル生成指示が与えられたスクリプトファイル生成部32(図1)が実行するスクリプトファイル生成処理の処理内容を示す。
この場合、スクリプトファイル生成部32は、マネージャ制御部31からスクリプトファイル生成指示が与えられると、このスクリプトファイル生成処理を開始し、まず、スクリプトファイル生成指示と共にマネージャ制御部31から与えられる、エージェントプログラムの配布先として指定されたクライアント3のリストを参照して、これらすべてのクライアント3に対するスクリプトファイル29(図1)を生成済みであるか否かを判断する(SP80)。
スクリプトファイル生成部32は、この判断において否定結果を得ると、管理者により配布先として指定されたクライアント3のうちの対応するスクリプトファイル29を未だ生成していないクライアント3を1つ選択し(SP81)、選択したクライアント3の配布時刻をクライアント管理テーブル43(図4)上で検索して取得する(SP82)。
続いてスクリプトファイル生成部32は、ハードディスク装置12に格納されている図2A及び図2Bについて上述したスクリプトファイル雛形40(図1)の必要箇所にそのクライアント3のノードID、配布時刻、配布するコンテンツ(エージェントプログラム)のコンテンツ名などの必要な事項を追記するようにして、そのクライアント3用のスクリプトファイル29を生成し、生成したスクリプトファイル29をハードディスク装置12に保存する(SP83)。
次いでスクリプトファイル生成部32は、このようにしてハードディスク装置12に保存したスクリプトファイル29までのパスをクライアント管理テーブル43(図4)の対応するエントリのスクリプト格納パス欄43H(図4)に格納する(SP84)。
続いてスクリプトファイル生成部32は、ステップSP80に戻り、この後ステップSP81において選択するクライアント3を順次他のクライアント3に切り替えながら、同様の処理を繰り返す(SP80〜SP84−SP80)。
そしてスクリプトファイル生成部32は、やがて管理者により配布先として指定されたすべてのクライアント3に対するスクリプトファイル29を生成し終えると、このスクリプトファイル生成処理を終了する。
(1−2−4−3)メール処理部の処理
他方、図14は、図10について上述した事前処理のステップSP46においてマネージャ制御部31から与えられるメールメッセージファイル送付指示を受信したメール処理部33(図1)が実行するメールメッセージファイル送付処理の処理内容を示す。
この場合、メール処理部33は、かかるメールメッセージファイル送付指示を受信するとこのメールメッセージファイル送付処理を開始し、まず、メールメッセージファイル送付指示と共にマネージャ制御部31から与えられる、エージェントプログラムの配布先として指定されたクライアント3のリストを参照して、これらすべてのクライアント3に対してメールメッセージファイル30(図1)を送付済みであるか否かを判断する(SP90)。
メール処理部33は、この判断において否定結果を得ると、エージェントプログラムの配布先として指定されたクライアント3の中からメールメッセージファイル30を未送付のクライアント3を1つ選択し(SP91)、選択したクライアント3のメールアドレス及び対応するスクリプトファイル29(図1)へのパスをクライアント管理テーブル43(図4)から取得する(SP92)。
続いてメール処理部33は、ハードディスク装置12に格納されている図3について上述したメールメッセージファイル雛形41(図1)の必要箇所に、配布するコンテンツ(エージェントプログラム)のコンテンツ名及び配布開始時刻をそれぞれ追記することにより、対応するクライアント3に対するメールメッセージファイル30を生成する。
またメール処理部33は、生成したメールメッセージファイル30にスクリプトファイル29を添付し(SP93)、このメールメッセージファイル30を、ステップSP92において取得したメールアドレス先(ステップSP91において選択したクライアント3)に送付する(SP94)。
続いてメール処理部33は、ステップSP90に戻り、この後ステップSP91において選択するクライアント3を順次他のクライアント3に切り替えながら、同様の処理を繰り返す(SP90〜SP94−SP90)。
そしてメール処理部33は、やがて管理者によりエージェントプログラムの配布先として指定されたすべてのクライアント3に対してメールメッセージファイル30を送付し終えると、このメールメッセージファイル送付処理を終了する。
(1−2−4−4)プッシュ配布処理部の処理
図15は、図9について上述した配布実施処理に関するプッシュ配布処理部34(図1)の処理内容を示している。
この場合、プッシュ配布処理部34は、所定のイベントが発生するのを待ち受ける(SP100)。ここでのイベントとは、図12について上述した配布実行処理のステップSP63においてマネージャ制御部31からプッシュ配布実行指令が与えられ、若しくは、図9のステップSP24について上述したリモート接続要求に対する応答がクライアント3から与えられ、又は、図9のステップSP32について上述したインストールプログラムからのインストール完了通知が与えられることが該当する。
そしてプッシュ配布処理部34は、やがてイベントが発生することによりステップSP100において肯定結果を得ると、そのとき発生したイベントが、マネージャ制御部31からプッシュ配布実行指令が与えられたことであるか否かを判断する(SP101)。
プッシュ配布処理部34は、この判断において肯定結果を得ると、ハードディスク装置12内の臨時アカウント認証情報バッファ46(図1)からマネージャ制御部31により作成されて格納された臨時アカウント認証情報(ID及びパスワード)を読み出す(SP102)。またプッシュ配布処理部34は、読み出した臨時アカウント認証情報を用いて、対応するクライアント3に対してOS15(図1)のリモート管理用インタフェース35(図1)を介してリモート接続要求を送信し(SP103)、この後ステップSP100に戻る。
これに対してプッシュ配布処理部34は、ステップSP101の判断において否定結果を得ると、ステップSP100において発生したイベントが、リモート接続要求に対する応答がクライアント3から与えられたことであるか否かを判断する(SP104)。
そしてプッシュ配布処理部34は、この判断において肯定結果を得ると、かかるリモート接続要求に対するクライアント3からの応答に基づいて、クライアント3へのリモート接続が成功したか否かを判断する(SP105)。
プッシュ配布処理部34は、この判断において否定結果を得ると、マネージャ制御部31に対して「1」の結果コード(リモート接続時に認証処理に失敗したことを意味する結果コード)が格納された配布処理完了通知を送信する(SP106)。そしてプッシュ配布処理部34は、この後ステップSP100に戻る。
一方、プッシュ配布処理部34は、ステップSP104の判断において肯定結果を得ると、そのときリモート接続したクライアント3から、そのクライアント3に実装されたOS24(図1)の種別情報を表すOS情報を取得し(SP107)、取得したOS情報をクライアント管理テーブル43(図4)における対応するエントリのOS欄43Dに格納する(SP108)。
次いでプッシュ配布処理部34は、そのクライアント3のOSに適合するインストール媒体28(図1)までのパスをインストール媒体管理テーブル45(図6)から取得する(SP109)。そしてプッシュ配布処理部34は、このとき取得したインストール媒体28のパスを介して対応するインストール媒体28をハードディスク装置12から読み出し、読み出したインストール媒体28をクライアント3に送信する(SP110)。
さらにプッシュ配布処理部34は、そのクライアント3をリモート制御して、かかるインストール媒体28に含まれるインストールプログラム27(図1)を起動し、当該インストールプログラム27にそのインストール媒体28に含まれるエージェントプログラムのインストールを指示する(SP112)。そしてプッシュ配布処理部34は、この後、ステップSP100に戻る。
他方、プッシュ配布処理部34は、ステップSP104の判断において否定結果を得ると、ステップSP100において発生したイベントが、インストールプログラム27からのインストール完了通知が与えられたことであるか否かを判断する(SP113)。
そしてプッシュ配布処理部34は、この判断において否定結果を得ると、ステップSP100に戻り、これに対して肯定結果を得ると、かかるインストール完了通知に基づいて、そのクライアント3に対する配布対象のエージェントプログラムのインストールが成功したか否かを判断する(SP114)。
プッシュ配布処理部34は、この判断において肯定結果を得ると、マネージャ制御部31に対して「2」の結果コード(インストールに失敗したことを意味する結果コード)を格納した配布処理完了通知を送信する(SP115)。そしてプッシュ配布処理部34は、この後ステップSP100に戻る。
これに対してプッシュ配布処理部34は、ステップSP114の判断において肯定結果を得ると、マネージャ制御部31に対して「1」の結果コード(リモート接続時に認証処理に失敗したことを意味する結果コード)が格納された配布処理完了通知を送信し(SP106)、この後ステップSP100に戻る。
(1−2−5)クライアント側の処理
(1−2−5−1)メールプログラムの処理
図16は、上述した本実施の形態によるソフトウェア配布方式に関するクライアント3に実装されたメールプログラム25(図1)の具体的な処理内容を示している。
メールプログラム25は、通常時、所定のイベントが発生するのを待ち受ける。ここでのイベントとは、図14のステップSP94において管理サーバ2から送信されたメールメッセージファイル30(図1)を受信し、又は図8のステップSP5においてユーザからメールメッセージファイル30(図1)の保存又は開封指示が与えられたことが該当する。
そしてメールプログラム25は、やがてかかるイベントが発生することによりステップSP120において肯定結果を得ると、そのとき発生したイベントが、管理サーバ2からのメールメッセージファイル30を受信したことであるか否かを判断する(SP121)。
メールプログラム25は、この判断において肯定結果を得ると、受信したメールメッセージファイル30及び当該メールメッセージファイル30に添付されているスクリプトファイル29をクライアント3のハードディスク装置22内の既定のパスにより特定される記憶領域に格納し(SP122)、この後ステップSP120に戻る。
これに対してメールプログラム25は、ステップSP121の判断において否定結果を得ると、そのとき発生したイベントが、メールの表示指示をユーザから与えられたことであるか否かを判断する(SP123)。
そしてメールプログラム25は、この判断において肯定結果を得ると、ステップSP122においてハードディスク装置12内の既定のパスにより特定される記憶領域に保存したメールメッセージファイル30を開封し、当該メールメッセージファイル30に基づく図3について上述したメッセージをクライアント3のディスプレイに表示させる(S120)。そしてメールプログラム25は、この後ステップSP120に戻る。
これに対してメールプログラム25は、ステップSP123の判断において否定結果を得ると、そのとき発生したイベントが、かかるメールメッセージファイル30に添付されたスクリプトファイル29の保存又は開封指示をユーザから与えられたことである否かを判断する(SP125)。
そしてメールプログラム25は、この判断において否定結果を得るとステップSP120に戻る。これに対してメールプログラム25は、ステップSP125の判断において肯定結果を得ると、そのスクリプトファイル29を、ハードディスク装置22内の指定されたパスにより特定される記憶領域に保存し、又はそのスクリプトファイル29を開封し、この後ステップSP120に戻る。
(1−2−5−2)スクリプトの処理
一方、図17は、本実施の形態によるソフトウェア配布方式の事前処理に関するクライアント3にインストールされたスクリプト26(図1)の具体的な処理内容を示す。
クライアント3のユーザがスクリプトファイル29を実行すると、当該スクリプトファイル29に基づくスクリプト26は、既定の配布時間にクライアント3を起動しておくように促すメッセージが記述された図示しないメッセージダイアログをそのクライアント3のディスプレイに表示させる(SP130)。
続いてスクリプト26は、そのクライアント3のIPアドレス、スクリプトファイル29の実行パス及びそのクライアント3における現在時刻を取得し(SP131)、この後、そのクライアント3のノードIDと、ステップSP131において取得したそのクライアントのIPアドレス、スクリプトファイル29の実行パス及びそのクライアント3における現在時刻とをスクリプト実行完了通知として管理サーバ2のマネージャ制御部31に通知する(SP132)。そしてスクリプト26は、この後、この一連の処理を終了する。
他方、図18は、本実施の形態によるソフトウェア配布方式の配布実行処理に関するかかるスクリプト26の具体的な処理内容を示す。
この場合、スクリプト26は、所定のイベントが発生するのを待ち受ける。ここでのイベントとは、現在時刻がそのクライアント3について設定されたエージェントプログラムの配布時刻となり、若しくは、図9のステップSP21について上述したタイムアウトが発生し、又は、インストールプログラム27(図1)から後述する後処理の実行指示が与えられた(図19のステップSP152及びステップSP154参照)ことが該当する。
そしてスクリプト26は、やがてかかるイベントが発生することによりステップSP140において肯定結果を得ると、そのとき発生したイベントが、エージェントプログラムの配布時刻となったことであるか否かを判断する(SP141)。
スクリプト26は、この判断において肯定結果を得ると、図16のステップSP121において受信したスクリプトファイル29に基づき認識される臨時アカウントの生成ルールに基づいて、臨時アカウントを生成する(SP142)。またスクリプト26は、管理サーバ2から送信されるエージェントプログラムを受信する際に使用するポートを開く処理を実行し(SP143)、この後ステップSP140に戻る。
これに対してスクリプト26は、ステップSP141の判断において否定結果を得ると、エージェントプログラムの受信に使用するポートを開いてから所定のタイムアウト時間が経過し、又は、インストールプログラムから後述する後処理の実行指示が与えられたか否かを判断する(SP144)。
そしてスクリプト26は、この判断において否定結果を得るとステップSP140に戻る。これに対してスクリプト26は、ステップSP144の判断において肯定結果を得ると、事前に作成していた臨時アカウントを削除する(SP145)。またスクリプト26は、開いていたポートを閉じる処理を実行し(SP146)、さらに自分自身を削除する処理を実行し(SP147)、この後ステップSP140に戻る。
(1−2−5−3)インストールプログラムの処理
図19は、図9のステップSP30におけるインストールプログラム27(図1)の具体的な処理内容を示す。
インストールプログラム27は、管理サーバ2のプッシュ配布処理部34(図1)からエージェントプログラムのインストールを指示されると(図9のステップSP29参照)、エージェントプログラムのサイレントインストール処理を実行し(SP150)、この後、かかるサイレントインストール処理が正常に終了したか否かを判断する(SP151)。
インストールプログラム27は、このステップSP151において肯定結果を得ると、スクリプトファイル29の実行パスを使用して、スクリプト26に対して後処理(図18のステップSP145〜ステップSP147)の実行を指示し(SP152)、さらに正常終了コードを含むインストール完了通知を管理サーバ2のプッシュ配布処理部34に送信した後(SP153)、ステップSP150に戻る。
これに対してインストールプログラム27は、ステップSP151の判断において否定結果を得ると、スクリプトファイル29の実行パスを使用して、スクリプト26に対して後処理の実行を指示し(SP154)、さらにエラーコードを含むインストール完了通知を管理サーバ2のプッシュ配布処理部34に送信した後(SP155)、ステップSP150に戻る。
(1−2−5−4)OSの処理
図20は、管理サーバ2から送信される図9のステップSP22におけるリモート接続要求を受信し、又は管理サーバ2から送信される図9のステップSP25におけるリモート管理用インタフェース36(図1)のプロパティ参照要求を受信したクライアント3のOS24(図1)の処理内容を示している。
この場合、OS24は、所定のイベントが発生するのを待ち受ける(SP160)。ここでのイベントとは、管理サーバ2からのリモート接続要求又はリモート管理用インタフェース36のプロパティ参照要求を受信することが該当する。
そしてOS24は、やがてかかるイベントが発生することによりステップSP160において肯定結果を得ると、そのとき発生したイベントが、管理サーバ2からのリモート接続要求を受信したことであるか否かを判断する(SP161)。
OS24は、この判断において肯定結果を得ると、受信したID及びパスワードと、スクリプト26が生成した臨時アカウントのID及びパスワード(図18のステップSP142参照)とを比較する認証処理を実行し(SP162)、この後、かかる受信したID及びパスワードと、スクリプトが生成した臨時アカウントのID及びパスワードとが一致したか否かを判断する(SP163)。
OS24は、この判断において肯定結果を得ると、リモート接続要求の送信元(管理サーバ2)にリモート接続確立通知を送信し(SP164)、この後ステップSP160に戻る。
これに対してOS24は、ステップSP163の判断において否定結果を得ると、リモート接続要求の送信元にリモート接続が失敗した旨の応答を返信し(SP165)、この後ステップSP160に戻る。またOS24は、ステップSP161の判断において否定結果を得ると、そのとき発生したイベントが、リモート管理用インタフェース36のプロパティ参照要求を受信したことであるか否かを判断する(SP166)。
OS24は、この判断において否定結果を得るとステップSP160に戻り、これに対して肯定結果を得ると、リモート管理用インタフェース36のプロパティ値(クライアント3のOS情報等を含む)をかかるプロパティ参照要求の送信元(管理サーバ)に送信し(SP167)、この後ステップSP160に戻る。
(1−3)本実施の形態の効果
以上のように本実施の形態による情報処理システム1では、クライアント3において、そのクライアント3に割り当てられた配布時刻にのみポートが開閉されるため、それ以外の時間帯については、悪意のあるアクセスからクライアント3を保護することができる。かくするにつき、管理サーバ2からクライアント3に対して信頼性高くソフトウェア(ここではエージェントプログラム)を配布することができる。
(2)第2の実施の形態
(2−1)第2の実施の形態によるソフトウェア配布方式
図1において、50は全体として第2の実施の形態による情報処理システムを示す。この情報処理システム50は、エージェントプログラムの配布時間をクライアント3側において変更することができる点が第1の実施の形態による情報処理システム1と異なる。
実際上、第2の実施の形態による情報処理システム50では、例えば図8について上述した事前処理のステップSP5において、クライアント3側においてユーザの指示によりスクリプトファイルを実行したときに、図21に示すような配布時刻再設定画面60がクライアント3に表示される。
この配布時刻再設定画面60では、そのとき管理サーバ51(図1)から通知されたエージェントプログラムの配布時刻が画面上段に設けられた配布スケジュール表示部61に表示される。また配布時刻再設定画面60では、画面下段に配布スケジュール再設定部62が設けられ、この配布スケジュール再設定部62内にカレンダ63、時設定欄64A、分設定欄65A及び秒設定欄66Aがそれぞれ表示される。
この場合、配布スケジュール再設定部62に表示されたカレンダ63は、その右側に表示された送りボタン67Aをクリックすることによって来月のものに変更することができ、またカレンダ63の左側に表示された戻しボタン67Bをクリックすることによって先月のものに変更することができる。
かくしてユーザは、必要に応じて送りボタン67A又は戻しボタン67Bをクリックすることによって配布スケジュール再設定部62内に所望する月のカレンダ63を表示させ、その後、そのカレンダ63内の所望する日をクリックすることによって、その月のその日をエージェントプログラムの配布日として設定することができる。
また時設定欄64Aの右横にはプルダウンボタン64Bが設けられており、このプルダウンボタン64Bをクリックすることによって「0」から「23」までの数値が列記されたプルダウンメニュー(図示せず)を表示させることができる。かくしてユーザは、このプルダウンメニューの中からエージェントプログラムの配布時刻として希望する時刻のうちの「時」を指定することができ、このとき指定された「時」が時設定欄64Aに表示される。
同様に、分設定欄65Aの右横にはプルダウンボタン65Bが設けられており、このプルダウンボタン65Bをクリックすることによって「0」から「59」までの数値が列記されたプルダウンメニュー(図示せず)を表示させることができる。かくしてユーザは、このプルダウンメニューの中からエージェントプログラムの配布時刻として希望する時刻のうちの「分」を指定することができ、このとき指定された「分」が分設定欄65Aに表示される。
さらに秒設定欄66Aの右横にはプルダウンボタン66Bが設けられており、このプルダウンボタン66Bをクリックすることによって「0」から「59」までの数値が列記されたプルダウンメニュー(図示せず)を表示させることができる。かくしてユーザは、このプルダウンメニューの中からエージェントプログラムの配布時刻として希望する時刻のうちの「秒」を指定することができ、このとき指定された「秒」が秒設定欄66Aに表示される。
そして配布時刻再設定画面60では、以上のようにしてエージェントプログラムの配布時刻としてユーザが所望する日にち及び時刻を指定した後、画面下段に表示された更新ボタン58をクリックすることによって、その日にち及び時刻をエージェントプログラムの配布時刻として再設定することができる。なお、キャンセルボタン59をクリックした場合には、以上の操作がすべてキャンセルされる。
以上のようにしてユーザがエージェントプログラムの配布時刻を再設定すると、図8のステップSP6において、クライアント3は、再設定された時刻に当該クライアント3を起動しておくように促すメッセージを表示する。そしてクライアント3は、図8のステップSP7において、管理サーバ51にスクリプト実行完了通知を送信する際、ユーザにより再設定されたエージェントプログラムの配布時刻を管理サーバ51に通知する。そしてクライアント3は、この後、再設定されたエージェントプログラムの配布時刻になるまで待機状態となる(図8のステップSP8)。
一方、かかるスクリプト実行完了通知を受信した管理サーバ51は、図8のステップSP9において、クライアント管理テーブル43(図4)の対応するエントリの配布時刻欄43Fに格納された配布時刻を、そのときスクリプト実行完了通知と共に通知された、クライアント3のユーザにより再設定された配布時刻に変更する。そして管理サーバ51は、この後、待機状態となる(図8のステップSP10)。
なお、このようなソフトウェア配布処理方式を実現するに際しては、第2の実施の形態によるスクリプトファイル雛形54(図1)及びこれに基づき生成されるスクリプトファイル55(図1)の形式が図2A及び図2Bについて上述した第1の実施の形態によるスクリプトファイル雛形40及びこれに基づき生成されるスクリプトファイル55とは若干異なる形式となる。
具体的には、エージェントプログラムの配布時刻(DTIME)が定数でなく、グローバル変数となる。また「Display Message()」(配布時刻にクライアントを起動しておくように促すメッセージを表示する処理)の前にかかる配布時刻再設定画面60を表示し、この配布時刻再設定画面60を用いてエージェントプログラムの配布時刻の再設定がなされたときには、エージェントプログラムの配布時刻(DTIME)の値を書き換える処理を追加することになる。
図22は、以上のような第2の実施の形態によるソフトウェア配布方式において、管理サーバ51から送信されたスクリプトファイル55(図1)を実行したクライアント3のスクリプト56(図1)の具体的な処理内容を示している。
クライアント3のユーザがスクリプトファイル55を実行すると、スクリプト56は、この図22に示すクライアント側事前処理を開始し、まず、図21について上述した配布時刻再設定画面60をクライアント3に表示させる(SP170)。
続いてスクリプト56は、この配布時刻再設定画面60を用いてユーザがエージェントプログラムの配布時刻を再設定するのを待ち受け、再設定が行われなかったとき(配布時刻再設定画面60のキャンセルボタン59がクリックされたとき)には、ステップSP173に進む。
これに対してスクリプト56は、配布時刻再設定画面60を用いてエージェントプログラムの配布時刻が再設定されると(配布時刻再設定画面60において配布時刻が指定されて更新ボタン58がクリックされたとき)には、スクリプトファイル55におけるエージェントプログラムの配布時刻をユーザが再設定した時刻に更新する(SP172)。
そしてスクリプト56は、この後ステップSP173〜ステップSP175を、図17について上述した第1の実施の形態におけるクライアント側事前処理のステップSP130〜ステップSP132と同様に処理し、この後、このクライアント側事前処理を終了する。
一方、図23は、以上のような本実施の形態によるソフトウェア配布方式に関して管理サーバ51のマネージャプログラム52のマネージャ制御部53が実行する事前処理の具体的な処理内容を示す。
この場合、マネージャ制御部53は、まず、所定のイベントが発生するのを待ち受ける(SP180)。ここでのイベントとは、図8のステップSP1について上述したエージェントプログラム配布指示が管理者から与えられ、又は、図8のステップSP7について上述したスクリプト実行完了通知がクライアント3から与えられることを指す。
そしてマネージャ制御部53は、やがてステップSP180において肯定結果を得ると、そのとき受信したのがエージェントプログラム配布指示であるか否かを判断する(SP181)。
そしてマネージャ制御部53は、この判断において肯定結果を得ると、図10について上述した第1の実施の形態における事前処理のステップSP42〜ステップSP47と同様にステップSP182〜ステップSP187を処理する。
これに対してマネージャ制御部53は、ステップSP181の判断において否定結果を得ると、図10の事前処理のステップSP48〜ステップSP51と同様にステップSP188〜ステップSP191を処理する。
この後、マネージャ制御部53は、そのときクライアント3から送付されたスクリプト実行完了通知に含まれる、クライアント3に設定されたエージェントプログラムの配布時刻と、管理サーバ51が保持するクライアント管理テーブル43(図4)の対応するエントリの配布時刻欄43F(図4)に格納されている配布時刻との間にずれがあるか否か(つまりエージェントプログラムの配布時刻が再設定されたか否か)を判断する(SP192)。
そしてマネージャ制御部53は、この判断において否定結果を得るとステップSP194に進み、これに対して肯定結果を得ると、クライアント管理テーブル43の対応するエントリの配布時刻欄43Fに格納されている配布時刻を、そのとき受信したスクリプト実行完了通知により通知された配布時刻(クライアント3のユーザが再設定した配布時刻)に更新する(SP193)。
続いてマネージャ制御部53は、ステップSP193において更新した配布時刻を、クライアント管理テーブル43(図4)におけるそのクライアント3と対応するエントリの時刻差分欄43G(図4)に格納されている時刻差分だけずらした時刻に更新する(SP194)。
そしてマネージャ制御部53は、この後図10の事前処理のステップSP52及びステップSP53と同様にステップSP195及びステップSP196を処理し、この後ステップSP180に戻る。
(2−2)本実施の形態の効果
以上のように本実施の形態による情報処理システム50では、クライアント3側において配布時刻を再設定することができるため、第1の実施の形態により得られる効果に加えて、プル型の配布方式のようにクライアント3のユーザの都合も考慮したエージェントプログラムの配布を行うことができるという効果をも得ることができる。
(3)他の実施の形態
なお上述の第1及び第2の実施の形態においては、配布物がソフトウェア(特にエージェントプログラム)である場合について述べたが、本発明はこれに限らず、この他種々のコンテンツを配布する際に広く適用することができる。例えばクライアント3をストレージ管理サーバ、配布物をストレージ管理ソフトウェアとすれば、ストレージ管理サーバに対してストレージ管理ソフトウェアを配布することも可能である。
また上述の第2の実施の形態においては、配布時刻再設定画面60を図21のように構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を広く適用することができる。
1,50……情報処理システム、2,51……管理サーバ、3……クライアント、10,20……CPU、11,21……メモリ、12,22……ハードディスク装置、14,52……マネージャプログラム、15,24……OS、25……メールプログラム、26……スクリプト、27……インストールプログラム、28……インストール媒体28……スクリプトファイル、30……メールメッセージファイル、31,53……マネージャ制御部、32……スクリプトファイル生成部、33……メール処理部、34……プッシュ配布処理部、35,36……リモート管理用インタフェース、40……スクリプトファイル雛形、41……メールメッセージファイル雛形、42……インストール媒体、43……クライアント管理テーブル、44……配布物管理テーブル、45……インストール媒体管理テーブル、46……臨時アカウント認証情報バッファ、60……配布時刻再設定画面。