(57)【要約】【課題】複数ホストで構成され，単一機能を提供する計算機システムでは，複数ホストにまたがるソフトウェアに依存関係がある場合が多い。この計算機システムでは，どのソフトウェアをどのホストにインストールすればよいかを判断することは困難であり、ソフトウェア管理者は個々のソフトウェアのインストール先ホストをパッケージごとに決定する必要があり，大きな負担となっていた。【解決手段】計算機システムで，個々の計算機が果たす機能に応じて人間可読かつ再利用可能な名前を前もって定義しておき，その名前を使用して複数のホストにまたがるソフトウェア間の依存関係を記述する。ソフトウェアのインストール時に，汎用的な機能を表す名称と，対象とするホスト内の実ホストを対応付け，そのインストール先を自動的に決定する処理を再帰的に実行し，複数の計算機で構成されるシステムのインストール処理を自動化する。【選択図】図１
2006099307.tif 000002
【特許請求の範囲】
【請求項１】
複数のホストで構成されるシステムのソフトウェアのインストール処理を管理するシステムであって，
前記ホストは、
ホストの機能を表わす情報を保持する記憶部と、
インストール処理の対象となるソフトウェアに含まれる依存関係情報と前記機能を表わす情報を用いて依存先ホストを特定する処理と、前記依存先ホストでのインストール完了後に開始される前記ソフトウェアのインストール処理と、を実行する演算処理部と、
を有することを特徴とするソフトウェア管理システム。
【請求項２】
複数のホストで構成されるシステムのソフトウェアのインストール処理を管理するシステムであって，
前記ホストは、
ホストの機能を表わす情報を保持する記憶部と、
インストール処理の対象となるソフトウェアに含まれる依存関係情報と前記機能を表わす情報を用いて依存先ホストを特定して依存関係の確認指示を出力する機能と、前記依存先ホストでのインストール完了後に開始される前記ソフトウェアのインストール処理を行う機能を有する管理エージェントと、
を有することを特徴とするソフトウェア管理システム。
【請求項３】
複数のホストで構成されるシステムのソフトウェアのインストール処理を管理するシステムであって，
依存先ホストに関する情報をホストの機能を表す情報によって依存関係情報に保持する依存関係データを利用するものであって，インストール時に前記機能を表す情報と，事前に各ホストに個別に与えられた機能を表す情報を用いて，インストール先を動的に決定する手段、
を有することを特徴とするソフトウェア管理システム。
【請求項４】
請求項２のシステムにおいて，
各ホストに配置された前記管理エージェントは独立に動作し，他ホストの管理エージェントに直接要求を出すことを再帰的に繰り返すことによってインストール処理を進めることを特徴とするソフトウェア管理システム。
【請求項５】
請求項１乃至３のいずれかに記載のソフトウェア管理システムにおいて，
インストール先を決定することが出来なかった場合に，代替可能な条件を持つホストを取得し，ホストがシステム内において担う機能を動的に決定することを特徴とするソフトウェア管理システム。
【請求項６】
請求項1乃至３のいずれかに記載のソフトウェア管理システムにおいて，
各ホストの機能を表す情報を外部記録装置から読み取ることによって付与することを特徴とするソフトウェア管理システム。
【請求項７】
請求項１乃至３のいずれかに記載のソフトウェア管理システムにおいて，
ソフトウェア間の依存関係情報に，依存関係情報が有効になる条件を記述し，1つのパッケージ内に複数の状況下における依存関係を併記することを特徴とするソフトウェア管理システム。
【請求項８】
請求項１乃至３のいずれかに記載のソフトウェア管理システムにおいて，
ソフトウェアをインストールする対象となるシステムのシステム構成を識別する情報をソフトウェアパッケージ内に持つことを特徴とするソフトウェア管理システム。
【請求項９】
複数のホストで構成されるシステムのソフトウェアのインストール処理を実行する方法であって，
記憶部からホストの機能を表わす情報を読み出すステップと、
インストール処理の対象となるソフトウェアに含まれる依存関係情報と前記機能を表わす情報を用いて依存先ホストを特定する処理するステップと、
前記依存先ホストにおけるインストール完了後に前記ソフトウェアのインストールを演算処理部により実行するステップと、
を有することを特徴とするソフトウェアのインストール方法。
【請求項１０】
複数のホストで構成されるシステムのソフトウェアのインストール処理を実行する方法であって，
記憶部からホストの機能を表わす情報を読み出すステップと、
インストール処理の対象となるソフトウェアに含まれる依存関係情報と前記機能を表わす情報を用いて依存先ホストを特定して依存関係の確認指示を出力するステップと、
前記依存先ホストにおけるインストール完了後に前記ソフトウェアのインストールを演算処理部により実行するステップと、
を有することを特徴とするソフトウェアのインストール方法。
【発明の詳細な説明】
【技術分野】
【０００１】
ソフトウェアインストール管理方法に関する。
【背景技術】
【０００２】
特定業務を稼動させるための計算機システムを構築するためには，OS上で動作する複数のソフトウェアを配布，インストールする必要がある。ソフトウェアは単体で機能が完結することが少なく，他のソフトウェア，あるいは他のライブラリに依存していることが多い。
【０００３】
ソフトウェア間の依存関係が複雑な計算機システムでは，依存関係のあるソフトウェアのインストール，更新の管理を容易にする目的で，ソフトウェア管理機構を使用することが一般的である。
【０００４】
特許文献１では，前記ソフトウェア管理機構の基本機能として，単一の計算機内のソフトウェア間の依存関係を調査して，自動的に依存するソフトウェアをインストールする機能を提案している。前記発明では，ソフトウェアAをインストールする場合に，前記ソフトウェアAが依存するソフトウェアBを自動的にインストール・更新する。
【０００５】
複数の物理的な計算機，あるいは，前記計算機上で独立してOSなどが稼動して処理を行う単位であるホストで構成される計算機システムでは，複数の計算機にまたがってソフトウェアに依存関係がある場合が多い(以下では，計算機システムは全て1つ以上のホストで構成されるとする)。例えば，データベースシステムでは，サーバ処理を行うホスト上と，クライアント処理を行うホスト上でそれぞれ異なる機能を持ったソフトウェアがインストールされる必要があり，互いに依存している。
【０００６】
特許文献２では，前記計算機システム上で，複数の計算機にわたって依存関係のあるソフトウェアの依存関係が満たされていることを保証するソフトウェア管理機構を提案している。前記ソフトウェア管理機構では，あるソフトウェアAがインストールされる前に，ソフトウェアAの依存しているソフトウェアBが計算機システム内にインストール済みであるかを調査する。前記ソフトウェアBがインストールされているホストが見つかった場合に，そのホストのソフトウェアBに対してソフトウェアAが依存していることを記録して，ソフトウェアAをインストールする。依存するソフトウェアBがインストールされていない場合には，ソフトウェア管理者の指示に従って，ソフトウェアBがインストールされるのを待った後に，ソフトウェアAのインストールを行う。依存するソフトウェアBをインストールする場合も再帰的に上記処理を繰り返し，全ての依存ソフトウェアをインストールした後でソフトウェアAのインストールが行われることを保証する。
【０００７】
【特許文献１】特開平10-83280号公報
【特許文献２】特開2001-175460号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
複数のホストで構成される計算機システムでは，どのソフトウェアをどのホストにインストールすればよいかを判断し，決定することは困難な作業である。
【０００９】
本来，個々のソフトウェアパッケージの作成者が，作成するソフトウェアパッケージに対する知見・ノウハウを元に，どのソフトウェアをどのホストにインストールすべきかをソフトウェア間の依存関係を参照して決定するためのヒントとなる情報を記述した上で，ソフトウェア管理者にパッケージを提供すべきであるが，従来技術では汎用的に前記依存関係を記述する方法はなかった。そのため，ソフトウェア管理者が全てのソフトウェアに関して，個別にインストール先のホストを決定する必要があった。
【００１０】
計算機システムのソフトウェア管理者が全てのソフトウェアについてインストール先を個別に決定する場合，前記ソフトウェア管理者は，インストールする全てのソフトウェアについて，それぞれのインストール先のホストを決定する方法を知っている必要がある。インストール先のホストを決定するためには各ソフトウェア固有のノウハウを熟知していなければ困難な場合が多く，ソフトウェアのインストール先を決定することは，ソフトウェア管理者の大きな負担となる。
【００１１】
前記のインストール先を決定する負担に関して，従来技術には，考慮されていない次の問題があった。
【００１２】
（１）ソフトウェアのインストール先ホストの決定を支援する機能の欠如
計算機システム内の全ソフトウェアに対してインストール先のホストを決定する作業はソフトウェア管理者にとって大きな負担であるが，従来技術ではインストール先決定作業について支援を行う方法は考慮されていなかった。
【００１３】
特許文献１では，ソフトウェア管理機構は１つのホストに閉じたソフトウェア間の依存関係しか記述することが出来ず，複数のホストで構成される計算機システムの管理において，ソフトウェア管理者は，各ソフトウェアごとにインストール先のホストを個別に決定し，明示的に各ホストでインストール処理を実行する必要があった。
【００１４】
特許文献２では，複数ホストにまたがった依存関係を記述する方式を提供し，ソフトウェアAの依存関係が満たされた場合に限り，ソフトウェアAのインストールが実行されることを保証していたが，ソフトウェアAの依存するソフトウェアBが未インストールであった場合に，依存するソフトウェアBのインストール先ホストの決定を支援する具体的な方法を提示しておらず，実施例では依然としてソフトウェア管理者がインストール先を決定する必要があった。
【００１５】
（２）依存先ホスト情報の再利用性の欠如
引用文献２では，依存先ホストを一意に特定するIDと，依存先ソフトウェアを一意に特定するIDの組で依存関係を表現していた。そのため，ホスト数，ホストに割り当てられたIDが異なる構成のシステムでは以前に定義された依存先ホストについての依存関係を再利用できず，依存関係を再定義する必要が生じる。ホストIDを含めたシステム構成は，個別のシステムごとに異なることが殆どであるため，実質的に，前記方式ではシステム管理者が個別のシステムごとに依存関係を再定義する必要がある。このため，以前に構築した計算機システムの依存関係を再利用することが困難であった。
【００１６】
（３）ソフトウェアパッケージ作成者，システム設計者の情報提供手段の欠如
一般的に，ソフトウェアパッケージの作成者，もしくはシステム設計者がソフトウェアに関するノウハウを持ち，インストール先を決定するための手段を持っている場合が多いが，従来手法では，これらのノウハウを客観的な情報として記述する手法がなかった。そのため，前記のノウハウを記述するためにはシステム構成を示した一覧表，あるいは，インストールに関する注意書きを示したマニュアルなどの形で記載し，人間がそれらを解釈してインストール作業を行う必要があった。すなわち，ソフトウェア管理者とソフトウェアパッケージ作成者は同じノウハウを共有する必要があった。
【００１７】
本発明では，複数のホストで構成される計算機システムにおいて，ソフトウェア間の依存関係を再利用可能な形式で記述する方式，及び，ソフトウェアのインストール先の計算ホストを簡易的な指示で容易に一括して指定できる方式を提案し，ソフトウェア管理者が各計算機システムの各ソフトウェアに対して決定する負担を削減することを目的とする。
【課題を解決するための手段】
【００１８】
複数のホストで構成されるシステムの，複数のホストにまたがる依存関係を再利用可能な形式でデータとして記述し，各ホストが自律的，再帰的に依存関係を参照してインストール先を実行時に決定し，自動的に処理を実行する。
【００１９】
システム内の各ホストに，システム内での機能を人間が理解可能な名前で表した業務ホスト機能名称ラベルを付与し，各ホストにインストール管理を行うエージェントを配置する。各エージェントはシステム内のホストと業務ホスト機能名称ラベルの対応関係を参照する機能を持ち，ある業務ホスト機能名称ラベルと対応付けられたホストの一覧を取得する機能を有する。
【００２０】
各エージェントが，ソフトウェアの依存関係情報，システム内の各ホストの業務ホスト機能名称ラベルを参照してインストールが必要なソフトウェアパッケージ，及び，前記ソフトウェアのインストール先のホストを自動的に決定する機能を持つ。また，各エージェントはソフトウェアパッケージを取得する手段，依存先のホストにソフトウェアパッケージのインストールを要求する機能，インストールを実行する機能を持ち，各ホストに要求されたインストール処理を行う。
【発明の効果】
【００２１】
（１）インストール先ホストの自動的な解決方法の提供
依存関係に抽象的な機能名の形式で依存先ホストを決定するための情報が書かれているので，抽象的な機能名から具体的なホストへのマッピングを，インストール実行時に自動的に参照，決定することができ，システム管理者がホストごとに詳細なソフトウェア構成を指定することなく，自動的にシステム全体を構築できる。
【００２２】
（２）再利用性の高い記述方法の提供
複数ホストにまたがる依存関係を，対象となるシステムに固有な情報(ホスト名，ホスト数，ネットワークアドレスなど)に依存しない形式で階層的に記述することができるようになり，ある特定のシステムに対して設計されたシステム構成に関する情報を，他のシステムで利用することが可能になる。
【００２３】
(３)ソフトウェア作成者，システム設計者によるシステム記述形式の提供
各パッケージを作成するソフトウェア作成者が，事前に取り決められたシステム全体の構成に従って，提供部分のみに関係する依存先ホストについての依存関係を記述することができるようになり，ソフトウェアのインストール先に関するノウハウを，依存関係定義に含めて提供することが可能になる。これにより，システム全体の定義，ソフトウェアの依存関係の定義，及び，インストールの実行に必要な知識がそれぞれ明確に分担され，従来技術のように前記の複数のステップの実行者が同じノウハウを共有する必要がなくなる。
【発明を実施するための最良の形態】
【００２４】
以下に、実施例１、２、３を詳述する。
【実施例１】
【００２５】
本発明の一実施例としてのシステム構成例を図1に示す。構成例は，１つ以上の業務ホスト10 で構成される。業務ホスト10はある単一のサービスを提供するシステムにおいて使用するホストのことである。業務ホスト10は、ソフトウェア管理エージェント100と業務ホスト機能名称ラベル101のデータを有する。業務ホスト10（A、B、‥、N）はそれぞれソフトウェア管理エージェント100を有し、ソフトウェア管理エージェント100間の通信により、各業務ホスト機能名称ラベル101を参照し、インストールするソフトウェアパッケージ20の依存関係を確認しながら各業務ホスト10はインストール処理を実行する。その具体的な機能構成については後述する。また，以下では1つ以上の業務ホストによって構成された，単一のサービスを提供するシステムを業務システムと呼ぶ。業務ホスト10は図２のように，メモリ2001，CPU2002，ハードディスク2003，表示装置2004，入力装置2005，ネットワーク通信装置2006，及び，外部記録媒体読み取り装置2007で構成される。外部記録媒体読み取り装置2007は，業務ホスト外部の記録媒体2008からデータを読み込み，取得することが出来る。
【００２６】
業務システムの一例を図３に示す。図３の業務システム例3000は典型的なWebシステムのクラスタ構成を表す。前記Webシステムの例では，複数台のWebサーバ3001-1〜3001-2，複数台のアプリケーションサーバ3002-1〜3002-2，データベースサーバ(DBサーバ)3003の業務ホストで構成される。Webサーバ3001-1〜3001-2，アプリケーションサーバ3002-1〜3002-2はそれぞれ同一の構成であり，業務システム内では同一の機能を果たす。本実施例では同一の機能を果たす業務ホストにインストールされるソフトウェアの構成はすべて同一であることを前提とする。本実施例では、同一構成である業務ホスト（１つ以上）の構築が一度の作業で完了する方法を提供している。
【００２７】
業務ホスト機能名称ラベル101は業務システム内における各業務ホストの機能を一意に特定する文字列，もしくはIDである。例えば，前記業務システム例3000において，Webサーバとして同一の機能を持つWebサーバ3001-1〜3001-2に対して，「Webサーバ」という文字列情報を業務ホスト機能名称ラベルとして割り当てる。
【００２８】
以下、図１に示す具体的機能、具体的情報について詳述する。
【００２９】
（システム構成パターン表30）
図１のシステム構成パターン表30は，1つのシステムで使用される業務ホスト機能名称ラベル301のリストである。業務ホスト機能名称ラベル301の内容は，各業務ホスト10が保持する業務ホスト機能ラベル101と同一である。システム構成パターン表30には，同一の業務ホスト機能名称ラベルが1つずつ記述される。同一構成の業務ホスト10が複数台あったとしても、同一の業務ホスト機能名称ラベル301が複数回記述されることはない。システム構成パターン表30は，システムを構成する業務ホストの機能の一覧となり，システム構成の特徴の情報を保持しているが，ホスト数，ホスト名などの個別のシステム構成に依存した記述は無い。例えば，前記業務システム例3000のシステム構成パターン表には，「Webサーバ」「APサーバ」「DBサーバ」という3個の業務ホスト機能名称ラベルが含まれる。
【００３０】
（エージェント概要）
図1にあるように，業務システム内の全業務ホスト10にソフトウェア管理エージェント100を配置する。ソフトウェア管理エージェント100は，ソフトウェアパッケージ20を処理し，ソフトウェアパッケージ20のインストール管理を行う。ソフトウェア管理エージェント100は，図２の業務ホスト2000上のCPU2002上で処理されて動作するプログラムである。
【００３１】
業務システム内のエージェント100はネットワークを介して通信を行い， システム内における任意の2つのソフトウェア管理エージェント間で互いにデータを送受信可能にする。また，ソフトウェア管理者は業務システム内の全ての業務ホスト10のソフトウェア管理エージェント100に対して，並列に同一データを送信可能にする。これをブロードキャスト通信と呼ぶ。
【００３２】
以下に，図１に示される，ソフトウェア管理エージェント100の各構成要素について説明する。
【００３３】
（業務ホスト機能名称ラベル101）
前記業務システム内の全業務ホスト10は，1つの業務ホスト機能名称ラベル101を持つことができる。業務ホスト機能名称ラベル101は，業務システム内における業務ホストの機能を特定する。業務ホスト機能名称ラベル101はハードディスク2003にデータとして格納される。業務ホスト10が業務ホスト機能名称ラベルを1つも持たない場合は，その業務ホスト10は「機能未割り当て状態」となる。業務ホスト機能名称ラベル101には，システム構成パターン表30から業務ホスト機能名称ラベル301を選択して記述する。
【００３４】
各ソフトウェア管理エージェント100は，ソフトウェア管理エージェント100が配置されている業務ホスト10の業務ホスト機能名称ラベルを取得，更新する機能を有する。各ソフトウェア管理エージェント100は，自己の有する業務ホスト機能名称ラベル101を取得、更新し，他ホストからの取得要求に応答する機能名情報提供手段1006と，機能名対応ホスト問い合わせ手段1007を持つ。機能名対応ホスト問い合わせ手段1007は，特定の機能名（ラベル）と同一の機能名を有する業務ホストを探す機能を有し、他のソフトウェア管理エージェント100の機能名情報提供手段1006と互いに通信を行い，業務システム内の他の業務ホストの業務ホスト機能名称ラベル101の情報を参照，変更する。機能名対応ホスト問い合わせ手段1007と，機能名情報提供手段1006は次の通信を行う。
【００３５】
（特定の業務ホスト機能名称ラベル101を保持する業務ホスト10の取得を要求する通信）
機能名対応ホスト問い合わせ手段1007は，ブロードキャスト通信を用いて，業務システム内の全業務ホスト上で動作する機能名情報提供手段1006に対して、特定の業務ホスト機能名称ラベルを保持するホストの取得要求を送信する。この取得要求は，パラメータとして取得すべき業務ホストの業務ホスト機能名称ラベル（図示せず）を含む。機能名情報提供手段1006は，この取得要求を受信し，その中に含まれる取得すべき業務ホスト機能名称ラベルを取得する。そして，機能名情報提供手段1006が配置されている業務ホストに割り当てられた業務ホスト機能名称ラベル101と，取得すべき業務ホスト機能名称ラベルが等しいかどうかを判定する。等しい場合には，機能名情報提供手段1006が配置された業務ホスト10のホスト名を，取得要求の送信元であるソフトウェア管理エージェント100の機能名対応ホスト問い合わせ手段1007に返信する。機能名対応ホスト問い合わせ手段1007は，一定期間内に返信された業務ホスト（ホスト名）のリストを，その取得要求にかかる「業務ホスト機能名称ラベル」と同一のラベルが割り当てられた業務ホストの一覧として扱う。
【００３６】
（機能未割り当て業務ホスト問い合わせ要求をする通信）
機能未割り当て業務ホスト問い合わせ要求は、前述の特定の業務ホスト機能名称ラベルを保持するホストの取得要求の場合と同様の問い合わせを行うが，前述の取得要求の「業務ホスト機能名称ラベル」の項目を空白とする点で異なる。機能名対応ホスト問い合わせ手段1007よりブロードキャスト通信を受けた機能名情報提供手段1006は，それが配置されている業務ホスト10に業務ホスト機能名称ラベル101が割り当てられていない場合に，そのホスト名を、問い合わせ要求の送信元であるソフトウェア管理エージェント100の機能名対応ホスト問い合わせ手段1007に返信する。
【００３７】
（業務ホスト機能名称ラベルの設定要求をする通信）
機能名対応ホスト問い合わせ手段1007が，特定業務ホストの機能名情報提供手段1006に機能名設定要求を送信する。機能名設定要求は，パラメータとし設定要求にかかる「業務ホスト機能名称ラベル」のデータを含む。機能名情報提供手段1006は，自ホストの業務ホスト機能名称ラベルが未割り当て状態の場合に限り，機能名設定要求を受信して，業務ホスト機能名称ラベル101を機能名設定要求に含まれる要求業務ホスト機能名称ラベルの値に変更する。
（ソフトウェアパッケージ取得手段1005）
ソフトウェアパッケージ取得手段1005は，インストールするソフトウェアパッケージ20を一意に特定するソフトウェア名称を与えられたときに，要求されたソフトウェアパッケージ20を取得する。ソフトウェアパッケージ取得手段1005により実行される取得方法の例としては次のようなものがある。以下の例の1つ以上の方法を同時に用いてもよい。
【００３８】
（ソフトウェアパッケージ取得方法-１）  ：外部記録媒体2008からの取得
図２の外部記録媒体2008に格納されているソフトウェアパッケージ20のファイル名一覧を取得して，その一覧から対象となるソフトウェアパッケージ20の格納場所を特定する。そして，対象となるソフトウェアパッケージ20のファイルイメージを取得する。
【００３９】
（ソフトウェアパッケージ取得方法-２）  ：内部ハードディスク2003からの取得
図２にあるようなホスト内部のハードディスク2003に，あらかじめ1つ以上のソフトウェアパッケージ20のファイルイメージを格納しておく。ソフトウェア管理エージェント100は格納されたソフトウェアパッケージ20のファイル名一覧を取得し，その中から対象となるソフトウェアパッケージ20の格納場所を特定する。そして，対象となるソフトウェアパッケージのイメージを取得する。
【００４０】
(ソフトウェアパッケージ取得方法-３)  ：外部リポジトリ（図示せず）からの取得
ソフトウェアパッケージ20のファイルイメージを複数格納し，格納されているファイルイメージの一覧と，ファイルイメージの取得手段を提供するファイル共有装置（HTTPサーバ，FTPサーバ，ファイル共有サーバ，NASストレージなど：図示せず）を，業務ホスト10から通信可能な場所に設置し，1つ以上のソフトウェアパッケージ20のファイルイメージを格納しておく。これを外部リポジトリと呼ぶ。ソフトウェアパッケージ取得手段1005は1つ以上の外部リポジトリへのアクセスプロトコル，及び，アクセスターゲットのネットワーク上の場所を記述する記憶領域を図２のハードディスク2003に持ち，業務システムのソフトウェア管理者などが，記憶領域のデータを編集することにより，事前に設定することが出来る。ソフトウェア管理エージェントが指定された前記外部リポジトリと通信を行ってソフトウェアパッケージ20のファイル名一覧を取得し，その中から対象となるソフトウェアパッケージ20の格納場所を特定する。そして，ソフトウェアパッケージ20のイメージを取得する。
【００４１】
(ソフトウェアパッケージ取得方法-４)  ：業務システム内のソフトウェア管理エージェントからの取得
ソフトウェア管理エージェント100が，ブロードキャスト通信により，ソフトウェアパッケージの取得要求を送信する。ソフトウェアパッケージ取得要求を受信したソフトウェア管理エージェント100は，(ソフトウェアパッケージ取得方法-１)〜(ソフトウェアパッケージ取得方法-４)の1つ以上の方法によりソフトウェアパッケージを取得する。取得に成功した場合に，そのソフトウェアパッケージ20を，取得要求を送信したソフトウェア管理エージェント100に送信する。
【００４２】
（インストール要求手段1003）
インストール要求手段1003は，他のソフトウェア管理エージェント上のインストール要求受付機能1001と互いに次に詳述する各メッセージを用いた通信を行い，ソフトウェアのインストール処理の要求と，その結果の返信を行う。各業務ホスト10のソフトウェア管理エージェント100は，この通信処理を用いて他の業務ホスト10のソフトウェア管理エージェント100にメッセージを送信し，インストール処理を実行する。
【００４３】
（依存関係解決要求メッセージ：図１には図示せず）
ソフトウェア管理者はソフトウェア管理エージェント100に対して、またソフトウェア管理エージェント100は他のソフトウェア管理エージェント100に対してインストール対象のソフトウェアパッケージ20を指定してインストールすることを要求する。これは、後述する図６に示す「ソフトウェアXのインストール要求メッセージ」であり、インストール処理のトリガとなる。このインストール要求に際し、ソフトウェア管理者はソフトウェア管理エージェント100に対して、またソフトウェア管理エージェント100は他のソフトウェア管理エージェント100に対して、依存関係解決要求メッセージを送信する。依存関係解決要求メッセージを受信したソフトウェア管理エージェント100は，依存関係を確認して、指定されたソフトウェアパッケージ20のインストールに必要なソフトウェアパッケージ20（指定されたソフトウェアパッケージ20のインストールと依存関係があり、先立ってインストールすべきソフトウェアパッケージ20）をリストアップする。ただし，インストール処理は実行しない。要求の詳細は後述する。
【００４４】
（インストール可能メッセージ：図１には図示せず）
依存関係解決要求メッセージで指定されたソフトウェアパッケージ20の依存ソフトウェアパッケージ20をリストアップし，その依存ソフトウェアパッケージ20がすべてインストール可能であることを確認した場合に、依存関係解決要求メッセージの送信元であるソフトウェア管理エージェント100に対してインストール可能メッセージを返信する。
【００４５】
（インストール失敗メッセージ：図１には図示せず）
依存関係解決要求メッセージで指定されたソフトウェアパッケージ20の依存ソフトウェアパッケージ20をリストアップし，1つ以上の依存ソフトウェアパッケージ20がインストール不可能であることを確認した場合に、依存関係解決要求メッセージの送信元であるソフトウェア管理エージェント100に対してインストール失敗メッセージを返信する。
【００４６】
（インストール実行要求メッセージ：図１には図示せず）
インストール可能メッセージを受信したソフトウェア管理エージェント100は、他のソフトウェア管理エージェント100（インストール可能メッセージの送信元）に対して，前述の依存関係解決要求メッセージの受信によりリストアップされたソフトウェアパッケージ20を実際にインストールするように要求する。
【００４７】
（インストール成功メッセージ：図１には図示せず）
インストール実行要求メッセージを受信し，実際にインストールプログラムを実行し，正常終了した場合に，依存関係解決要求メッセージの送信元であるソフトウェア管理エージェント100に対してインストール成功メッセージを返信する。
【００４８】
（インストール管理機能1002）
図1のインストール管理機能1002は，ソフトウェアパッケージ20をインストール処理の単位として扱う。インストール管理機能1002は，ソフトウェアパッケージ20を受け取り，インストール処理を実行する。
【００４９】
（ソフトウェアパッケージ20）
図1のソフトウェアパッケージ20は，ソフトウェアのインストールに必要なデータを1つのまとめたものである。ソフトウェアパッケージ20はファイルなどに格納される。ソフトウェアパッケージ20は，ソフトウェアのインストールの処理単位となる。ソフトウェアパッケージ20のフォーマットの一例を図４に示す。ソフトウェアパッケージ20はソフトウェア名称4001，ソフトウェアバージョン4002，インストール用ファイルイメージ4003，処理定義4004，及び，依存関係定義リスト4005で構成される。
【００５０】
ソフトウェア名称4001はソフトウェアパッケージ20を一意に特定する文字列もしくはIDである。ソフトウェアバージョン4002は，ソフトウェアのバージョンを表すIDである。ソフトウェアバージョンは新旧を比較するための比較演算ができるものを用いる。例えば，ソフトウェアバージョン4002には整数値，もしくは実数値を用いる。インストール用ファイルイメージ4003は，ソフトウェアパッケージ20のインストールに必要な1つ以上のファイルイメージである。処理定義4004はソフトウェアパッケージ20をインストールする場合に実行されるインストールプログラム名が書かれている。
【００５１】
依存関係定義リスト4005は，ソフトウェアパッケージ20に関する依存関係定義4101〜4102のリストである。依存関係定義4101〜4102は，対象システム構成名称4201，依存先業務ホスト機能名称ラベル4202，依存ソフトウェア名称4203，依存ソフトウェアバージョン4204を含む。
【００５２】
対象システム構成名称は，依存関係定義4101〜4102が有効となるシステム構成を一意に特定する文字列，もしくはIDである。依存関係定義4101〜4102は，インストールの処理時にインストール指示者によって与えられるシステム構成名称10003(図10参照)と，対象システム構成名称4201が一致する場合にのみ有効となる。依存関係定義が無効である場合、すなわち、インストール指示者によって与えられたシステム構成名称10003と対象システム構成名称4201が一致しない場合には，該当する依存関係定義4101〜4102は使用されない。対象システム構成名称4201が空白である場合は，依存関係定義4101〜4102は常に有効になる。
【００５３】
依存ソフトウェア名称4203にはソフトウェアパッケージ20が機能上で依存する依存ソフトウェアのソフトウェア名称4001を記述する。依存ソフトウェアバージョン4204には，依存ソフトウェアに求められるソフトウェアバージョン4002が記述される。
【００５４】
依存先業務ホスト機能名称ラベル4202には，依存ソフトウェアをインストールすべき業務ホスト10に割り当てられている業務ホスト機能名称ラベル101を記述する。依存先業務ホスト機能名称ラベル4202が割り当てられている全ての業務ホストを依存ソフトウェアのインストール先の業務ホスト10とする。
【００５５】
（インストール済ソフトウェア一覧1004）
図1のインストール済ソフトウェア一覧1004は，ソフトウェア管理エージェント100が配置されている業務ホスト10でインストールされたソフトウェアパッケージ20の情報を記録している。
【００５６】
インストール済ソフトウェア一覧1004は，例えば図５に示すような構成をとる。
【００５７】
インストール済ソフトウェア一覧1004は，インストール済ソフトウェア情報のリストである。インストール済ソフトウェア情報は，ソフトウェア名称5001，ソフトウェアバージョン5002，ファイル名一覧5003，処理定義5004，依存関係定義リスト5005で構成される。これらの値には，それぞれ，インストールされたソフトウェアパッケージ20のソフトウェア名称4001，ソフトウェアバージョン4002，インストール用ファイルイメージ4003に含まれるファイル名一覧，処理定義4004，依存関係定義4005が記述される。
【００５８】
（インストール待ちソフトウェア一覧1008）
図1のインストール待ちソフトウェア一覧1008は，その業務ホスト10上で依存関係解決要求を受け付け，依存関係を他のソフトウェア管理エージェント100にて調査中のソフトウェアパッケージ20のリストである。インストール待ちソフトウェア一覧1008の構成は，インストール済ソフトウェア一覧1004と同一とすることができる。図1のインストール要求受付機能1001によって依存関係解決要求メッセージが受信され，同図1のソフトウェアパッケージ取得手段1005によってソフトウェアパッケージを取得されたソフトウェアパッケージ20の情報はインストール待ちソフトウェア一覧1008に記述される。そして、依存関係にある全てのソフトウェアパッケージ20について他の業務ホスト10へのインストール処理が終了した後に、その業務ホスト10はインストール実行要求メッセージの受信がされる。そして、依存関係の解決したソフトウェアパッケージ20のインストールに成功した場合に，インストール待ちソフトウェア情報1008に記述されたデータは，インストール済ソフトウェア一覧1004に移される。
【００５９】
(インストール処理手順)
以下では，図1のソフトウェア管理エージェント100による，ソフトウェアパッケージ20のインストール処理の概略を説明する。
【００６０】
ソフトウェアパッケージ20のインストール処理は，業務システムのソフトウェア管理者が行う。ソフトウェアパッケージ20のインストールは，業務システム内の業務ホスト10に対する業務ホスト機能名称ラベル101の割り当て，及び，インストール処理の実行、の２つのステップに分割される。以下では，各々のステップについて説明する。
【００６１】
（インストール手順−１  業務ホスト10に対する業務ホスト機能名称ラベル101の割り当て）
業務システム内で使用される各業務ホスト10に対する業務ホスト機能名称ラベル101の割り当てをソフトウェア管理者に実行させる。ソフトウェア管理者は，システム構成パターン表30を参照して，システム構成名称4201，及び，システム内で使用される業務ホスト機能名称ラベル301の一覧を取得する。ソフトウェア管理者は，業務システム内の全業務ホスト10に対して，それぞれ，業務ホスト機能名称ラベル101をシステム構成パターン表30の業務ホスト機能名称ラベル301から選択して割り当てる。前記割り当ては，例えば次のような方法によって行う。
【００６２】
（業務ホスト機能割り当て方法-1）
ソフトウェア管理者が個別の業務ホスト10上で，業務ホスト機能名称ラベル101の割り当てを指示するプログラムを実行する。プログラムはソフトウェア管理者に業務ホスト10に割り当てる業務ホスト機能名称ラベルを入力させ，格納されたデータを前記業務ホスト機能名称ラベル101に更新する。
【００６３】
（業務ホスト機能割り当て方法-2）
ソフトウェア管理者が個別の業務ホスト10に対して，業務ホスト機能名称ラベル101が格納されたデータを直接書き換える。
【００６４】
（業務ホスト機能割り当て方法-3）
外部記録装置2008に業務ホスト機能名称ラベルを記述したデータを記録し，外部記録装置2008から業務ホスト読取装置によって読み出されたデータを，業務ホスト内に格納されたデータに転送する。外部記録装置2008の例として，ドングル装置，USBメモリ，もしくは，バーコードなどの装置がある。
【００６５】
（インストール手順−２ インストール処理の実行）
まず，インストール処理の流れについて，概略を説明する。ソフトウェアインストール要求の流れの一例を図６，図８，図９に示す。
【００６６】
図６に示すようなパッケージ依存関係6100が定義されているとする。すなわち，ソフトウェアAは業務ホスト機能名称ラベル「機能B」を持つすべての業務ホスト10(6002-6003)にソフトウェアBがインストールされている必要があり，ソフトウェアBは業務ホスト機能名称ラベル「機能C」を持つすべての業務ホスト10(6004-6005)にソフトウェアCがインストールされている必要があるとする。
【００６７】
このときに，ソフトウェア管理者6000が業務ホスト10(6001)に対してソフトウェアAのインストールを要求したときに、上述したソフトウェアXインストール要求メッセージの伝播する様子を図６に示す。図６の業務ホスト6001，業務ホスト6002のソフトウェア管理エージェント6010,6011におけるメッセージの流れをシーケンス図に示したものをそれぞれ図８，図９に示す。
インストール処理は，依存性解決フェーズと，インストール実行フェーズの２つのフェーズに大別できる。それぞれのフェーズで，各ソフトウェア管理エージェントが他のソフトウェア管理エージェントに対してインストール要求メッセージを送信して，結果を集めて返信する処理を行う。
【００６８】
図８は，ソフトウェア管理エージェント6001が，ソフトウェア管理者6000から依存関係解決要求メッセージAを受信した場合の処理を示す。まず，ソフトウェア管理エージェント6010では、インストール対象のソフトウェアパッケージ20に書かれている依存関係定義リスト4005を参照して，インストール先として書かれている依存先業務ホスト機能名称ラベル4202に対応する業務ホスト10を取得する(ステップ8006のメッセージ)。この依存先業務ホスト機能名称ラベル4202に対応する業務ホスト10を取得するには、依存先業務ホスト機能名称ラベル4202と、メッセージAの転送を受けた各ソフトウェア管理エージェント100の保持する業務ホスト機能名称ラベル101とを比較し、一致した場合にその業務ホスト10のホスト名やホストIDを取得することで実現できる。図８の実施例では、ソフトウェア管理エージェント6011では業務ホスト機能が一致し、ソフトウェア管理エージェント6014では不一致であったとする。上記の処理によって取得した業務ホスト6002のソフトウェア管理エージェント6011に対して，依存関係解決要求メッセージBを送信する(ステップ8008のメッセージ)。この依存関係解決要求メッセージBは、上記の業務ホスト機能の比較処理で一致したと判断されて抽出された業務ホスト10のソフトウェア管理エージェント100の全てに送信され、それぞれ独立に依存関係の解消が図られる。また、多重依存がある場合には、それぞれ他のソフトウェア管理エージェント100との間で再帰的に依存関係を解消させる。このような多重依存関係についてのインストール処理も、後述のインストール実行フェーズで再帰的に実行される。依存関係解決要求メッセージBにかかる依存関係が解決された場合，ソフトウェア管理エージェント6011はソフトウェア管理エージェント6010にインストール可能メッセージを送信する（正常終了）。その後、インストール実行フェーズに入り、ソフトウェア管理エージェント6010のインストール要求手段1003はソフトウェア管理エージェント6011のインストール要求受付機能1001にインストール実行要求メッセージBを送信する。ソフトウェア管理エージェント6011のインストール管理機能1002により依存性解決要求メッセージBにかかるソフトウェアパッケージ20のインストール処理を実行し、その処理が完了した場合には、インストール可能メッセージをソフトウェア管理エージェント6010に送信する（正常終了）。ソフトウェア管理エージェント6010が、送信した全ての依存性解決要求メッセージBについて正常終了を確認した場合に，依存性解決要求メッセージAにかかるソフトウェアパッケージ20のインストールを実行し，終了する（ステップ8012）。
【００６９】
図９は，ソフトウェア管理エージェント6011が他のソフトウェア管理エージェント6010（図６を参照。図９には図示せず。）から依存関係解決メッセージAを受信した場合の処理を示す。この場合，ソフトウェア管理エージェント6011は図８のエージェントと同様の処理により依存性の解決を行う（ステップ9006，9008）。しかし，依存性が確認された場合にインストール実行要求を出さずに，一度正常終了を返す。ただし，インストール待ちソフトウェア一覧1008の情報は残り，インストール実行要求を待つ。次に，インストール実行要求メッセージAを他のソフトウェア管理エージェント6010から受信した場合に前記依存関係解決要求メッセージCを送信したソフトウェア管理エージェント6013に対してインストール実行要求メッセージCを送信する（ステップ9010）。ソフトウェア管理エージェント6013の処理によりインストール実行要求メッセージCに関するソフトウェアパッケージ20のインストールが実行される。ソフトウェア管理エージェント6011が正常にインストール実行要求メッセージCにかかるインストールが実行されたことを確認した後に，インストール実行要求メッセージBに関するソフトウェアパッケージ20のインストール処理を実行し，正常終了をソフトウェア管理エージェント6010に返す（ステップ9009）。複数の依存関係があった場合，他のソフトウェア管理エージェントから複数の依存関係解決要求メッセージを受信することがあるが，それらはすべて個別に処理する。また多重依存がある場合も図８において前述した方法と同様に、再帰的な依存性解決フェーズと再帰的なインストール実行フェーズの実行により処理する。ただし，インストール実行要求メッセージの受信後であって，正常終了を返信する間に依存関係解決要求メッセージを受信することはない。
【００７０】
図７に、本実施例の具体的なソフトウェアのインストール手順の一例を示す。インストール処理は図７のフローチャートに従って行う。以下のステップ7001〜ステップ7013は依存性解決フェーズ，ステップ7013〜ステップ7015はインストール実行フェーズである。
【００７１】
（ステップ  7001）
ソフトウェアをインストールする業務ホスト上で，ソフトウェア管理者に，新規のソフトウェア要求メッセージを作成させ，ソフトウェア管理エージェントにソフトウェアインストール要求を送信する。ソフトウェア要求メッセージの作成には，例えば，図１０に示される依存関係解決要求メッセージ10000に含まれる各項目を文字列として入力させるインターフェースを持ったプログラムを用いればよい。
【００７２】
ソフトウェア要求メッセージである依存関係解決要求メッセージ10000の一例の概要を図10に示す。要求ソフトウェア名称10001と，要求ソフトウェアバージョン10002は，それぞれ，インストールするソフトウェアパッケージ20のソフトウェア名称4001，ソフトウェアバージョン4002を記述する。システム構成名称10003には，(インストール手順−１)で参照したシステム構成パターン表30のシステム構成名称を指定する。要求先業務ホスト機能名称ラベル10004は，インストールを要求する業務ホスト10に割り当てられている業務ホスト機能名称ラベル101を表す。業務システム内で，業務ホスト機能名称ラベル101が，要求先業務ホスト機能名称ラベル10004に一致するすべての業務ホストに，要求ソフトウェア名称10001で表されるソフトウェアパッケージをインストールする必要があることを示す。要求先業務ホスト機能名称ラベル10004が空白の場合，依存関係解決要求メッセージを受信したホストのみがインストール先として扱われる。要求元業務ホスト機能名称ラベル10005は，依存関係解決要求メッセージの送信元のソフトウェア管理エージェント100が配置されている業務ホストに割り当てられた業務ホスト機能名称ラベル101を記述する。ソフトウェア管理者によって依存関係解決要求メッセージが作成される場合には，要求元業務ホスト機能名称ラベル10005は空白とする。ソフトウェア管理者による依存関係解決要求メッセージの送信は，ソフトウェア管理エージェントと通信を行うプログラムを用いるなどの方法で行う。
【００７３】
(ステップ 7002)
ソフトウェア管理エージェントは，受信した依存関係解決要求メッセージ10000に書かれた要求先業務ホスト機能名称ラベル10004が，前記ソフトウェア管理エージェント100の配置された業務ホスト10に割り当てられた業務ホスト機能名称ラベル101に一致するかどうかを確認する。一致しない場合，要求元の業務ホスト10に対して，インストール失敗メッセージを送信する。ただし，前記要求先業務ホスト機能名称ラベルが空白の場合は，すべての業務ホスト機能名称ラベルと一致するものとする。
【００７４】
(ステップ 7003)
ソフトウェア管理エージェント100は，インストール要求受付機能1001で前記依存関係解決要求メッセージ10000を受信する。そして，受信した依存関係解決要求メッセージ10000の要求元ホスト業務ホスト機能名称ラベル10005が空白であるか調査を行う。前記要求元ホスト業務ホスト機能名称ラベルが空白である場合，すなわち，ソフトウェア管理者から直接インストール要求を受けた場合，ソフトウェア管理エージェントは，受信した依存関係解決要求メッセージ10000の要求元業務ホスト機能名称ラベル10005をソフトウェア管理エージェント100が配置された業務ホスト10に割り当てられた業務ホスト機能名称ラベル101のデータに書き直し，機能対応ホスト問い合わせ手段1007を用いて要求先業務ホスト機能名称ラベル10004を持つ業務ホスト10の一覧を取得し，前記業務ホスト一覧に含まれる各業務ホスト10のソフトウェア管理エージェント100に対して受信した依存関係解決要求メッセージ10000を送信する。要求先業務ホスト機能名称ラベル10004が空白である場合，ステップ7003は行わない。ステップ7003の処理により，ソフトウェア管理者が1つのホストにインストール要求を出した場合に，同種のホストにリクエストを転送することが出来る。
【００７５】
(ステップ 7004)
図1のインストール管理機能1002は，依存関係解決要求メッセージ10000で示される要求ソフトウェア名称10001及び要求ソフトウェアバージョン10002で指定されるソフトウェアが，インストール待ち状態であるかどうか調査する。図1のインストール待ちソフトウェア一覧1008において，一覧中のソフトウェア情報に含まれるソフトウェア名称，ソフトウェアバージョンが，それぞれ要求ソフトウェア名称10001，及び要求ソフトウェアバージョン10002と一致する場合に，ソフトウェアがインストール待ち状態であると判断する。そのソフトウェアがインストール待ち状態である場合，依存関係がループしている状態であるので，その部分に関して依存関係は解消されており、これ以下のステップを実行せず，要求元のソフトウェア管理エージェント100に対してインストール可能メッセージを返信する。
【００７６】
(ステップ 7005)
インストール管理機能1002は，図１のインストール済ソフトウェア一覧1004を参照し，ステップ7004と同様の方法で，前記依存関係解決要求メッセージ10000で示される要求ソフトウェア名称10001及び要求ソフトウェアバージョン10002で示されるソフトウェアがインストール済状態であるかどうかを調査する。該当するソフトウェアがインストールされている場合には，前記インストール済ソフトウェア一覧1004から，該当するインストール済ソフトウェアの情報を取得する。
【００７７】
(ステップ 7006)
要求ソフトウェア名称10001で示されるソフトウェアが業務ホスト上にインストールされていない場合，インストール管理機能1002はソフトウェアパッケージ取得手段1005を用いて，前記要求ソフトウェア名称10001で示されるソフトウェアパッケージ20を取得する。ソフトウェアパッケージ取得手段1005が，要求ソフトウェア名称10001で示されるソフトウェアパッケージ20の取得に失敗した場合，ソフトウェア管理エージェントは，依存関係解決要求メッセージ10000の送信元のインストール管理エージェント100，もしくはソフトウェア管理者に対してインストール失敗メッセージを送信する。
【００７８】
（ステップ 7007）
ステップ7006において取得したソフトウェアパッケージ20の情報を，インストール待ちソフトウェア一覧1008に追加する。
【００７９】
(ステップ 7008)
ステップ7005で得られたインストール済ソフトウェア情報，もしくはソフトウェアパッケージから，依存関係定義一覧を取得する。依存関係定義一覧に含まれる各依存関係定義リスト4005の中から，依存関係解決要求メッセージ10000に含まれるシステム構成名称10003で示されるシステムにおいて有効な依存関係定義（4101-4102）の一覧を取得する。有効な依存関係定義とは，依存関係定義4101-4102の説明で前述したとおり，前記依存関係定義中の対象システム構成名称4201と，前記依存関係解決要求メッセージ10000に含まれるシステム構成名称10003が一致する依存関係定義を指す。
【００８０】
(ステップ 7009)
ステップ 7008で取得した，システムにおいて有効な依存関係定義（4101-4102）のそれぞれについて，依存先の業務ホストを決定する。以下では，前記の依存先の業務ホストを依存先ホストと呼ぶ。依存先ホストの決定は以下の手順に従って行う。
【００８１】
(ステップ 7009-1)
インストール管理機能1002が前記依存関係定義4101-4102から依存先業務ホスト機能名称ラベル4202を取得する。
【００８２】
（ステップ 7009-2）
ステップ7009-1で取得した依存先業務ホスト機能名称ラベル4202が空白であった場合，自ホストを依存先業務ホストとする。
【００８３】
(ステップ 7009-3)
機能名対応ホスト問い合わせ手段1007を用いて業務ホスト機能名称ラベル101がその依存先業務ホスト機能名称ラベル4202と一致している業務ホスト10の一覧を取得する。業務システム内に指定された業務ホスト機能名称ラベル101を持つ業務ホスト10が存在しない場合，機能対応ホスト問い合わせ手段1007は業務ホストが含まれない，空のリストを返す。一覧に含まれる全ての業務ホスト10を依存先ホストとする。
【００８４】
(ステップ 7010)
ステップ7009-3において得られた業務ホスト一覧に業務ホストが一台も含まれなかった場合，ソフトウェア管理エージェント100は，インストール要求元のソフトウェア管理エージェント100に対してインストール失敗メッセージを送信する。
【００８５】
（ステップ 7011）
ステップ7008で取得した，システムにおいて有効な各依存関係定義（4101-4102）で定義されたソフトウェアパッケージについて，ステップ7009で決定した1つ以上の依存先ホストに対して新規の依存関係解決要求メッセージ10000を作成する。そして，インストール要求手段1003を用いて前記依存先ホストに対してその新規に作成された依存関係解決要求メッセージ10000を送信し，依存性解決を要求する。前記依存関係解決要求メッセージ10000のシステム構成名称10003には，ステップ7002で受信したメッセージに含まれるシステム構成名10003を転記する。要求元業務ホスト機能名称ラベル10005には，前記ソフトウェア管理エージェント100が配置された業務ホスト10に割り当てられた業務ホスト機能名称ラベル101を記述する。要求ソフトウェア名称10001，要求ソフトウェアバージョン10002，及び，要求先業務ホスト機能名称ラベル10004には，それぞれ，前記依存関係定義4101-4102で定義されたソフトウェア名称4203，ソフトウェアバージョン4204，依存先業務ホスト機能名称ラベル4202を記述する。
【００８６】
（ステップ 7012）
要求元のソフトウェア管理エージェント100は、ステップ7003，及び，ステップ7011で送信された各インストール要求（依存関係解決要求メッセージ10000）に対して，要求先のソフトウェア管理エージェント100から結果が返信されるのを待つ。インストール要求先の業務ホスト10では，ステップ7002〜ステップ7012が再帰的に繰り返し実行され，その結果が前記要求先ソフトウェア管理エージェント100から返信される。前記インストール要求の全てに対してインストール可能メッセージが返信された場合に，要求先のソフトウェア管理エージェント100は要求元のソフトウェア管理エージェント100に対してインストール可能メッセージを返信する。1つ以上の要求に対してインストール失敗メッセージが返信された場合は，すべての要求に対して結果が返信されるのを待った後に，インストール失敗メッセージを返信する。
【００８７】
以上のステップで、図８、図９における依存性解決フェーズの処理が実現できる。
【００８８】
（ステップ7013）
ステップ7002で受信した依存関係解決要求メッセージ10000において，要求元業務ホスト機能名称ラベル10005が空白であった場合，すなわち，ソフトウェア管理者から直接インストール要求を受けた場合，ソフトウェア管理エージェント100は，ステップ7009で決定した依存先ホスト一覧に含まれる全業務ホスト10のソフトウェア管理エージェント100に対して，インストール実行要求メッセージを送信する。 
（ステップ 7014）
ソフトウェア管理エージェント100は，インストール要求受付機能1001によってインストール実行要求メッセージを受け取ると，インストール待ちソフトウェア一覧1004に登録されたソフトウェア情報からステップ7009と同一の方法で依存先ホストを決定し，前記依存先ホストに対してインストール実行要求メッセージを送信する。
【００８９】
（ステップ 7015）
インストール要求機能1003は，送信した各インストール実行要求メッセージに対して，要求先のソフトウェア管理エージェント100から結果が返信されるのを待つ。1つ以上の要求先ソフトウェア管理エージェント100からインストール失敗メッセージが返信された場合，ソフトウェア管理エージェントは全ての要求先ソフトウェア管理エージェント100から結果が返信されるのを待った後に，要求元ソフトウェア管理エージェント100にインストール失敗メッセージを返信する。
【００９０】
（ステップ 7016）
ステップ7015において，要求先の全てのソフトウェア管理エージェント100からインストール成功メッセージが返信された場合，要求元のソフトウェア管理エージェント100は，インストール待ちソフトウェア一覧1008に登録された業務ソフトウェアの一覧を取得し，前記ソフトウェア一覧に含まれる各ソフトウェアパッケージ20のインストール処理を実行する。インストール処理は，まず，前記ソフトウェアがインストール済ソフトウェア一覧1004に含まれるかどうかを調査する。インストール済ソフトウェア一覧に含まれる場合は実際のインストール処理を行わず，ステップ7016の正常終了処理を行う。前記ソフトウェアが未インストールであった場合には，ステップ7006で取得したソフトウェアパッケージ20について，前記ソフトウェアパッケージ20に含まれる処理定義4003に書かれたプログラムを実行して行う。インストール処理が正常終了した場合に，インストール管理機能1002は，前記インストール待ちソフトウェア一覧1008に記述されたソフトウェア情報を，前記インストール済ソフトウェア一覧1004に移動する。続いて，前記インストール実行要求メッセージの要求元ソフトウェア管理エージェント100に対してインストール成功メッセージを返信する。インストール処理プログラムが失敗した場合には，インストール失敗メッセージを返信する。
【００９１】
以上のステップで、図８、図９におけるインストール実行フェーズの処理が実現できる。
【００９２】
以下に，本実施例の効果を説明する。
【００９３】
まず，本実施例では，依存関係定義4101-4102に，インストール先の業務の機能を表す名称を使用しているため，個別のシステムに固有の情報（ホスト名，ホスト台数，ネットワークアドレスなど）に依存しない。そのため，一度記述された依存関係が，ホスト名，ホスト台数などの構成が異なる他のシステムにおいても再利用することが出来る。
【００９４】
本実施例では，システム全体の構成を表す情報として，システム構成パターン表30を用いているが，これも依存関係定義4101-4102と同様に業務の機能を表す文字列で，システムの構成要素を記述しているため，再利用が可能となる。
【００９５】
次に，本実施例で必要となる定義作業として，システム構成パターン表30の定義，ソフトウェアの依存関係定義4005，及び，各業務ホスト10に対する業務ホスト機能名称ラベル101の割り当ての3つが存在する。この中で，それぞれの作業で共通して把握しておかなければならないのは，業務ホスト機能名称ラベル101の値だけである。この3つの定義は，それぞれ，次のように分担して行うことにより，各作業の担当者が知っているべき知識を明確に分けることが出来るようになる。
【００９６】
前記システム構成パターン表30の定義は，主にシステム構築を行うシステム設計者が行う。システム設計者は，パフォーマンス，セキュリティなどを考慮し，過去の経験などを参考にして，各ホストにどのような役割分担をさせるべきであるかを決定する。システム設計者はおおよそのソフトウェアの名称を把握していることが望ましいが，各ソフトウェアの詳細な依存関係を把握する必要は無い。また，前述したとおり，個別のシステムのハードウェアなどの構成を詳細に検討して設計を行う必要は無い。
【００９７】
前記の依存関係定義4101-4102は，各ソフトウェア製品の作成者が行う。ソフトウェア製品の作成者は，作成したソフトウェアに関して詳細な依存関係の知識を有していると考えられる。その知識を元に依存関係を定義する。このとき，依存関係の定義者は，前記システム構成パターン表30を参照し，ソフトウェア製品が使われるべきホストの業務ホスト機能名称ラベルを把握しておく。ソフトウェア作成者はシステムのラベルを参照するだけでよく，対象とする製品が関わっていない部分に関して設計を行う必要は無い。
【００９８】
前記業務ホスト機能名称ラベル101の割り当てはソフトウェア管理者が行う。ソフトウェア管理者は，システムで利用できるハードウェアリソース（ホストなど）の一覧，及び，業務ホスト機能名称ラベル301とシステム構成名称を，システム構成パターン表30を参照して把握しておく必要があるが，その他の，システム構成を設計するための知識，詳細なソフトウェア間の依存関係に関する知識は必要ない。
【００９９】
最後に，インストールの実行時には，業務ホスト機能名称に対応する実ホストを自動的に取得し，インストール先のホストを決定するため，ソフトウェア管理者は個別のソフトウェアに対してインストール先を指定する必要が無くなる。
【０１００】
以上のように，再利用性の向上，作業分担の容易化，ソフトウェアインストール時の作業数削減を達成することが出来，ソフトウェア管理の容易化が実現できる。
【実施例２】
【０１０１】
実施例1において，インストール処理に関して，ステップ7009で依存先業務ホスト機能名称ラベル101を割り当てられた業務ホスト10を探し出す手順において，前記依存先業務ホスト機能名称ラベル4202に該当する業務ホスト10が存在しない場合にエラーを返さず，下記手順によって新規に依存先業務ホスト機能名称ラベル4202を業務ホスト機能名称ラベル101として割り当てられた業務ホスト10を動的に作成する。
【０１０２】
以下に実現手段の例を示す。
【０１０３】
ステップ7001を次のステップ7101のように変更する。
(ステップ 7101)
ソフトウェア要求メッセージのフォーマットを変更し，例えば図11のような内容を追加する。業務ホスト台数11001は，業務システム内における，特定の業務ホスト機能名称ラベルで表される業務ホストの台数を示す情報である。前記業務ホスト台数には，業務ホスト機能名称ラベル11101と，要求台数11102を記述する。業務ホスト機能名称ラベル11101は，システム構成パターン表30に含まれる業務ホスト機能名称ラベル301を記述する。要求台数11102は，インストール処理を行う対象となる業務システム内において，前記業務ホスト機能名称レベル11101で示される値を業務ホスト機能名称101として割り当てられている業務ホストの必要台数を記述する。業務ホスト台数11001は，業務システム内に，11101で示す業務ホスト機能名称を持つ業務ホストが11102で示す台数だけ必要であることを表す。
【０１０４】
ステップ7009を次のステップ7109のように変更する。
【０１０５】
(ステップ 7109-1)
インストール管理機能1002が依存関係定義4101-4102から依存先業務ホスト機能名称ラベル4202を取得する。
【０１０６】
（ステップ 7109-2）
ステップ7109-1で取得した依存先業務ホスト機能名称ラベル4202が空白であった場合，自ホストを依存先業務ホストとする。
【０１０７】
(ステップ 7109-3)
機能名対応ホスト問い合わせ手段1007を用いて，ステップ7109-1で取得した依存先業務ホスト機能名称ラベル4202と一致する業務ホスト機能名称ラベル101を持つ業務ホスト10の一覧を取得する。
【０１０８】
(ステップ7109-4)
ステップ7109-3で得られた業務ホストの一覧に含まれる業務ホストの台数が，依存関係解決要求メッセージに含まれる業務ホスト台数11001で指定された要求台数11102に足りない場合，機能対応ホスト問い合わせ手段1007を用いて，「機能未割り当て状態」の業務ホスト一覧を取得する。前記機能未割り当て状態の業務ホストの中から，ランダム，あるいは先着順などの事前に定めたポリシーに従って1つの業務ホスト10を選択する。ステップ7109-3で得られた業務ホストの台数と，機能未割り当て状態のホストの台数の合計数が前記要求台数に届かない場合は，要求元ソフトウェア管理エージェント100に対して，インストール失敗メッセージを返信する。必要な数の機能未割り当て状態のホストを取得できた場合，機能対応ホスト問い合わせ手段1007は，前記の選択された機能未割り当て状態の業務ホストに対して依存先業務ホスト機能名称ラベル4202をパラメータとして含んだ業務ホスト機能名称ラベル設定要求を出す。 
また，各ソフトウェア管理エージェント100は，送信する依存関係解決要求メッセージに，受信した依存関係解決要求メッセージに含まれる業務ホスト台数11001を転記して送信する。
【０１０９】
実施例２における効果を説明する。実施例１の(インストール手順−１)でソフトウェア管理者が全業務ホストに対して業務ホスト機能名称ラベルを割り当てていたが，全業務ホストのハードウェア性能が等しく，どの業務ホストにどの機能を割り当てるかを設計しなくても良い場合には処理が煩雑になる。実施例２では，業務ホストの割り当てが機械的作業で設計が不要な場合に，ソフトウェア管理者が業務ホストに業務ホスト機能名称ラベルを割り当てる作業を省き簡略化する。
【実施例３】
【０１１０】
実施例１、２のシステムにおいて，システム構成情報を含むソフトウェアパッケージを用意する。以下ではこれをシステムパッケージと呼ぶ。システムパッケージのソフトウェアパッケージの構成は，他のソフトウェアパッケージ20に対して拡張した情報を持つ。例えば，ソフトウェアパッケージ20にシステム構成名称と，前記ソフトウェアパッケージ自身がインストールされるべき業務ホストに割り当てられた業務ホスト機能名称ラベルを記述する。
【０１１１】
ソフトウェア管理者は，インストール時にシステムパッケージ20をインストールすることを指定して，依存関係解決要求メッセージを送信する。依存関係解決要求メッセージ中のシステム構成名称と業務ホスト機能名称ラベルを省略することが出来る。ソフトウェア管理エージェントは，システムパッケージのインストール要求を受けた場合に，システムパッケージを取得し，システム構成名称，及び，業務ホスト機能名称ラベルをシステムパッケージから取得して使用する。
【産業上の利用可能性】
【０１１２】
あらかじめソフトウェアパッケージをハードディスクに含めたホストを用意し，外部からのドングル，あるいはスイッチなどによりホストの機能を決定する仕組みを利用することで，１つの汎用的なサーバを用意し，使用する環境で即時にサーバの機能を指定して使用可能な状態にセットアップするような利用方法が考えられる。
【図面の簡単な説明】
【０１１３】
【図１】システム構成図
【図２】ハードウェア構成
【図３】業務システム例
【図４】ソフトウェアパッケージの構造
【図５】インストール待ちソフトウェア一覧，及びインストール済ソフトウェア一覧の構造
【図６】インストール処理の流れの概略
【図７】ソフトウェアインストール処理手順フローチャート
【図８】ソフトウェア管理者からインストール指示を受けたソフトウェア管理エージェントのメッセージ送受信のシーケンス図
【図９】他のソフトウェア管理エージェントからインストール指示を受けたソフトウェア管理エージェントのメッセージ送受信のシーケンス図
【図１０】依存関係解決要求メッセージの構造
【図１１】実施例２における依存関係解決要求メッセージの拡張部分の構造
【符号の説明】
【０１１４】
10            業務ホスト
100           ソフトウェア管理エージェント
1001          インストール要求受付機能
1002          インストール管理機能
1003          インストール要求手段
1004          インストール済ソフトウェア一覧
1005          ソフトウェアパッケージ取得手段
1006          機能名情報提供手段
1007          機能対応ホスト問い合わせ手段
1008          インストール待ちソフトウェア一覧
101           業務ホスト機能名称ラベル
20            ソフトウェアパッケージ
30            システム構成パターン表
2001          メモリ
2002          CPU
2003          ハードディスク
2004          表示装置
2005          入力装置
2006          ネットワーク通信装置
2007          外部記録媒体読取装置
2008          外部記録媒体
3000          業務システム例
3001-1〜3001-2    Webサーバ
3002-1〜3002-2    アプリケーションサーバ
3003          DBサーバ
4001          ソフトウェア名称
4002          ソフトウェアバージョン
4003          インストール用ファイルイメージ
4004          処理定義
4005          依存関係リスト
4101〜4102    依存関係定義
4201          対象システム構成名称
4202          依存先業務ホスト機能名称ラベル
4203          依存ソフトウェア名称
4204          依存ソフトウェアバージョン
5000          インストール済ソフトウェア情報
5001          ソフトウェア名称
5002          ソフトウェアバージョン
5003          ファイル名一覧
5004          処理定義
5005          依存関係定義リスト
10000         依存関係解決要求メッセージ
10001         要求ソフトウェア名称
10002         要求ソフトウェアバージョン
10003         システム構成名称
10004         要求先業務ホスト機能名称ラベル
10005         要求元業務ホスト機能名称ラベル
11001         業務ホスト台数
11101         業務ホスト機能名称ラベル
11102         要求台数
【図１】
2006099307.tif 000003
【図２】
2006099307.tif 000004
【図３】
2006099307.tif 000005
【図４】
2006099307.tif 000006
【図５】
2006099307.tif 000007
【図６】
2006099307.tif 000008
【図７】
2006099307.tif 000009
【図８】
2006099307.tif 000010
【図９】
2006099307.tif 000011
【図１０】
2006099307.tif 000012
【図１１】
2006099307.tif 000013