(57)【特許請求の範囲】
【請求項１】
対象のコンピュータシステムのマシン群に対してソフトウェアを配布して更新させる処理を行うソフトウェア配布システムであって、
前記マシン群は、スケールアウト構成に対応した第１及び第２のマシンを含み、前記第１のマシンの属性は、スケールアウトの実行／非実行に依らずに起動する状態となる稼動系であり、前記第２のマシンの属性は、スケールアウトの非実行時に停止する状態となりスケールアウトの実行時に起動する状態となる待機系であり、
前記ソフトウェア配布システムは、
前記マシン群に関する構成情報を管理する第１の処理部と、
前記マシン群に対するソフトウェアの配布を実行する第２の処理部と、
前記マシン群の起動や停止の状態を操作する第３の処理部と、を有し、
前記ソフトウェア配布システムは、
前記第１の処理部により、停止状態のマシンを含む前記マシン群について、スケールアウト構成に関する属性、状態、及びソフトウェア構成に関する情報を構成情報として管理し、
前記第２の処理部により前記ソフトウェアの配布を実行する際、前記構成情報に基づき各マシンの属性及び状態を判定し、
前記第２のマシンが停止状態の場合、前記第３の処理部により当該第２のマシンを起動して、前記第１の処理部により前記構成情報で停止状態から起動状態へ遷移させ、
前記第２の処理部により前記第１及び第２のマシンを含む各マシンに対して同じ時間で前記ソフトウェアのデータ情報を送信して各マシンのソフトウェアを更新させ、前記第１の処理部により当該更新の結果を前記構成情報に反映し、
前記構成情報に基づき各マシンの属性及び状態を判定し、前記第２のマシンが起動状態の場合、前記第３の処理部により当該マシンを停止して、前記第１の処理部により前記構成情報で起動状態から停止状態へ遷移させること、を特徴とするソフトウェア配布システム。
【請求項２】
請求項１記載のソフトウェア配布システムにおいて、
前記ソフトウェア配布システムは、
前記第１、第２、及び第３の処理部を備える配布マシンと、
前記構成情報を格納する格納部と、
前記対象のコンピュータシステムの各マシンに備えられ前記第１、第２、及び第３の処理部と連携するエージェント部と、を含んで成り、
前記各マシンのエージェント部は、当該マシンの起動や停止の状態に関する情報を前記配布マシンへ送信する機能と、前記配布マシンからの前記ソフトウェアの配布時に当該マシンへのインストールないし更新を行う機能と、前記配布の結果の情報を前記配布マシンへ送信する機能と、を有すること、を特徴とするソフトウェア配布システム。
【請求項３】
請求項１記載のソフトウェア配布システムにおいて、
前記マシンの起動状態として、第１の状態及び第２の状態を有し、
前記第１のマシンを、前記第１の状態になるように制御し、
前記第２のマシンを、スケールアウトの非実行時には停止状態、スケールアウトのＯＮ時には前記第１の状態となるように制御し、
前記配布の際、前記第１のマシンを前記第１の状態、前記第２のマシンを前記第２の状態になるように制御すること、を特徴とするソフトウェア配布システム。
【請求項４】
対象のコンピュータシステムのマシン群に対してソフトウェアを配布して更新させる処理を行うソフトウェア配布システムにおけるソフトウェア配布方法であって、
前記マシン群は、スケールアウト構成に対応した第１及び第２のマシンを含み、前記第１のマシンの属性は、スケールアウトの実行／非実行に依らずに起動する状態となる稼動系であり、前記第２のマシンの属性は、スケールアウトの非実行時に停止する状態となりスケールアウトの実行時に起動する状態となる待機系であり、
前記マシン群に対する前記ソフトウェアの配布を実行する処理の際、
前記マシン群の状態及びソフトウェア構成を含む構成情報の管理に基づいて、
前記停止状態の第２のマシンを起動させる処理ステップと、
前記第１のマシン及び前記起動された第２のマシンを含む各マシンに対して前記ソフトウェアのデータ情報を送信して各マシンのソフトウェアを更新させる処理ステップと、
前記更新後、前記起動された第２のマシンを停止させる処理ステップと、を有すること、を特徴とするソフトウェア配布方法。
【請求項５】
対象のコンピュータシステムのマシン群に対してソフトウェアを配布して更新させる処理を行うソフトウェア配布システムとしてコンピュータを機能させるプログラムであって、
前記マシン群は、スケールアウト構成に対応した第１及び第２のマシンを含み、前記第１のマシンの属性は、スケールアウトの実行／非実行に依らずに起動する状態となる稼動系であり、前記第２のマシンの属性は、スケールアウトの非実行時に停止する状態となりスケールアウトの実行時に起動する状態となる待機系であり、
前記マシン群に対するソフトウェアの配布を実行する処理の際、
前記マシン群の状態及びソフトウェア構成を含む構成情報の管理に基づいて、
前記停止状態の第２のマシンを起動させる処理ステップと、
前記第１のマシン及び前記起動された第２のマシンを含む各マシンに対して前記ソフトウェアのデータ情報を送信して各マシンのソフトウェアを更新させる処理ステップと、
前記更新後、前記起動された第２のマシンを停止させる処理ステップと、を実行すること、を特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア配布システム等の技術に関し、特に、コンピュータシステムのソフトウェア構成の変更（更新）において、スケールアウト構成を持つコンピュータシステム等（スケールアウト用のマシン等を含む）に対するソフトウェアの配布（更新）を可能とするシステム等に適用して有効な技術に関する。
【背景技術】
【０００２】
複数のマシンからなる分散／並列処理コンピュータシステム等において、コンピュータシステムを構成するマシンの台数を増やすことで、マシン群全体のパフォーマンスを向上させることができる。以下これを「スケールアウト」と呼ぶ。また説明上、スケールアウトを行う状態（スケールアウト実行時）を「ＯＮ」、行わない状態（スケールアウト非実行時）を「ＯＦＦ」とする。スケールアウトを行うために用意されたマシン（「待機系マシン」）は、例えば、コンピュータシステムで処理を行う量が一定基準を超えるとき（高負荷状態）などの条件に基づき、スケールアウトが行われる間（ＯＮ）のみ起動し、コンピュータシステムで処理を行う量が一定基準に戻ったとき（低負荷状態）などの条件に基づき、スケールアウトが行われない間（ＯＦＦ）には停止する。
【０００３】
一方、マシンにインストールされているＯＳやアプリケーションやその他のソフトウェア（以下「ソフトウェア」と総称する）は、例えばバグフィクスやセキュリティホール修正などが行われた最新バージョンのものがインストールされている必要がある。セキュリティホールが残っているバージョンのソフトウェアを使用したままとする場合、最悪その上で動作しているコンピュータシステムだけでなく、最新バージョンで動作しているコンピュータシステムにも支障をきたす恐れがある。そのため、マシンのソフトウェアについて、迅速に漏れなくバージョンアップ（更新）を行う必要がある。このソフトウェアの更新などの作業・処理をシステム化したものが、ソフトウェア配布システムである。即ち、配布側のシステムから配布対象のマシンに対して最新のソフトウェアなどを配布して自動的に更新させることができる。
【０００４】
先行技術例として、特開平４−２６８６４３号公報（特許文献１）などがある。特許文献１では、稼動系−待機系マシン間でのデータのバックアップ・同期について記載されている。具体的には、コールドスタンバイ系計算機システム（待機系マシン）を定期的に立ち上げ、オンライン系計算機システム（稼働系マシン）のバックアップ情報（バックアップ用の処理データ）により、コールドスタンバイ系計算機システム（待機系マシン）のデータを更新できるようにすることが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平４−２６８６４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来の一般的なソフトウェア配布システムでマシン群のソフトウェアの更新を行った場合、停止状態のマシンに対しては適用されず、更新漏れが発生してしまう。例えば従来のスケールアウト構成のコンピュータシステムにおける停止状態の待機系マシンでは更新漏れが発生してしまう。
【０００７】
上記の場合、更新漏れによりマシン群のソフトウェア構成に差異が生じるため、スケールアウト（ＯＮ）を行う場合、その前に、上記停止状態の待機系マシンを起動してソフトウェアの更新を行うことで、当該待機系マシンのソフトウェア構成を稼動系マシンと同一にする同期の手順を行う必要がある（ユーザによる操作等を必要とする）。この同期の手順が終わるまでは、次の手順であるスケールアウト（ＯＮ）を行うことはできない。
【０００８】
上記同期を実現する方式として、前記特許文献１のように、定期的に稼働系マシンからデータを取得（コピー）して待機系マシンに更新（反映）を行うことで、待機系マシンのソフトウェア構成を稼動系マシンと同期させる方式が挙げられる。
【０００９】
しかし、上記同期の方式を用いて稼動系−待機系マシン間のソフトウェア構成の同期を行った場合、スケールアウト（ＯＮ）時に、最新のデータ（即ち稼働系マシンのソフトウェア）と前回（最後）の同期時に取得したデータ（即ち待機系マシンのソフトウェア）とにおいて差異が発生する場合がある。言い換えれば、稼働系マシンのソフトウェアの更新の時点と稼働系マシンから待機系マシンへデータ（ソフトウェア）の同期を行う時点とで差異（ズレ）があり、前述のように停止状態のマシンには更新が適用されないため、上記のように稼働系−待機系マシン間でソフトウェア構成の差異がある時間が生じる（図７（ａ））。
【００１０】
上記の場合、スケールアウトを行う（ＯＮ）時に、上記差異が発生している時間と重なる可能性がある。その場合、稼働系−待機系のソフトウェア構成の差異による問題（前述したセキュリティ等の問題）があるため、待機系マシンのソフトウェア構成を最新（稼働系マシンと同一）にする作業が別途必要となる（ユーザによる操作等を必要とする）。このような作業及びその時間により、コンピュータシステムの過負荷状態が長期化してしまう問題がある。また前記特許文献１のような同期の方式によって、単純に稼働系のデータ（ソフトウェア）を待機系へコピーするだけでは、別マシン（待機系マシン）として稼動させるためのソフトウェア設定変更などが必要になる場合がある。
【００１１】
上述したように従来技術では、スケールアウト構成のコンピュータシステム（稼働系マシン及び待機系マシンを含む）に対するソフトウェアの配布（更新）を考えた場合、同期その他などによって各マシンのソフトウェア構成を最新（同一）にし問題無くスケールアウト（ＯＮ）を行うために要する時間（リードタイム）、及びユーザ（運用者等）による作業負担などが発生してしまう問題がある。
【００１２】
また、上記のスケールアウト（ＯＮ）時に、上記リードタイムが発生しないように回避する手段として、ユーザの手動操作によって、ソフトウェア配布前に対象マシンを起動したり、ソフトウェア配布後に対象マシンを停止したりすることが考えられる。しかし、その場合、ソフトウェア配布ごと及び対象マシンごとに個別の作業が必要であるため、ユーザの作業負担が大きくなる問題がある。
【００１３】
以上を鑑み、本発明の目的は、ソフトウェア配布（更新）の対象となるコンピュータシステムにおいてスケールアウト用の待機系マシン等がある場合においても、ユーザによる特別の作業負担などを必要とすることなく、またリードタイム無く又は少なく、適切にソフトウェア配布（更新）及びスケールアウトを行うことができるシステム等を提供することである。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明は、スケールアウト構成などのコンピュータシステム（マシン群）に対するソフトウェアの配布（更新）を行うソフトウェア配布システム、方法、及びプログラム等の技術であって、以下に示す構成を有することを特徴とする。
【００１５】
本発明のシステムは、最新のソフトウェアの配布（更新）時に、スケールアウト用の待機系マシン（ＯＦＦ時には停止状態、ＯＮ時には起動状態）等に対しても自動的に配布（更新）を可能とし、即ち稼働系−待機系マシン間でのソフトウェア構成を同一（最新）になるように維持可能とし、適切なスケールアウト（ＯＮ／ＯＦＦ）を可能とする。
【００１６】
本ソフトウェア配布システムは、例えば、対象のコンピュータシステムのマシン群に対してソフトウェアを配布して更新させる処理を行うソフトウェア配布システムである。対象のマシン群は、例えば、起動状態の第１のマシン（例えば稼働系マシン）、及び停止状態の第２のマシン（例えば待機系マシン）を含む。本ソフトウェア配布システムは、マシン群の状態及びソフトウェア構成を含む構成情報を管理する第１の手段と、マシン群に対するソフトウェアの配布を実行する第２の手段と、マシン群の起動や停止の状態を操作（制御）する第３の手段とを有する。本ソフトウェア配布システムは、第２の手段によりソフトウェアの配布を実行する際、構成情報に基づき、第３の手段により停止状態の第２のマシンを起動し、第１及び第２のマシンを含む各マシンに対してソフトウェアのデータ情報を送信して各マシンのソフトウェアを更新させ、更新後、第３の手段により当該起動状態の第２のマシンを停止させ、結果を第１の手段により構成情報に反映する処理を行う。
【００１７】
上記構成により、自動的に対象の各マシンのソフトウェアを同じ時間（概略同じタイミング）に更新することで、各マシンのソフトウェア構成を同一（最新）になるように維持可能であり、ユーザの作業負担及びリードタイムが無い又は少ない、適切なソフトウェア配布（更新）及びスケールアウトが実現される。
【発明の効果】
【００１８】
本発明によれば、ソフトウェア配布（更新）の対象となるコンピュータシステムにおいてスケールアウト用の待機系マシン等がある場合においても、ユーザによる特別の作業負担などを必要とすることなく、またリードタイム無く又は少なく、適切にソフトウェア配布（更新）及びスケールアウトを行うことができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施の形態のソフトウェア配布システムとその配布対象マシン等（管理対象）を含むコンピュータシステム全体の構成例を示す図である。
【図２】本ソフトウェア配布システムにおける構成情報格納部に格納されるマシン情報の詳細内容例を示す図である。
【図３】本ソフトウェア配布システムにおける構成情報格納部に格納されるソフトウェアインストール情報の詳細内容例を示す図である。
【図４】本ソフトウェア配布システムにおける、（ａ）配布前、（ｂ）配布後におけるソフトウェアインストール情報の変更箇所の例を示す図である。
【図５】本ソフトウェア配布システムにおけるソフトウェア配布処理（配布制御処理）のフローチャートである。
【図６】本ソフトウェア配布システムにおける、（ａ）稼働系マシンの遷移表、（ｂ）待機系マシンの遷移表を示す図である。
【図７】（ａ）従来技術例、（ｂ）本実施の形態のソフトウェア配布システムにおける、コンピュータシステムの各種マシンのソフトウェア配布（更新）及びスケールアウト等に関するタイミングや状態遷移の事例を模式的に示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施の形態によるソフトウェア配布システムについて図面を参照して詳細に説明する。なおソフトウェアの「配布」とは、「更新」の意味を含むものとする。
【００２１】
［概要］
本実施の形態のソフトウェア配布システム１０１（図１等）は、ソフトウェア１５０の配布・更新のために、スケールアウト用の待機系マシン１１２などを含む各マシン１１０の起動や停止などの状態を操作（制御）する手段（マシン操作部１０４、配布エージェント１２０等）を有する。また、各マシン１１０のソフトウェアのバージョンを含む構成に関する構成情報を管理し（配布制御部１０２、構成情報格納部１０５等）、停止状態の待機系マシン１１２などを含め、対象のコンピュータシステムの各マシン１１０のソフトウェア構成を常に把握する機能を有する。これにより、ソフトウェア１５０のバージョンアップ等に伴う配布の際には、起動が必要な停止状態の待機系マシン１１２を起動させ、そして、既存の起動している稼動系マシン１１１と、当該起動させた待機系マシン１１２とを含む各マシン１１０において、同じ時間にソフトウェア１５０（１５１，１５２）の更新を行うことができる。これにより、稼動系マシン１１１と待機系マシン１１２とでソフトウェア構成を常に差異無く維持可能とする。本システムでは、上記配布・更新に係わる制御を、ユーザ（運用者等）による特別の作業を必要無く自動的に実現する。本システムでは、スケールアウト（ＯＮ／ＯＦＦ）時、上記ソフトウェア構成に差異が無いため、リードタイムを無くす又は減少することができる。
【００２２】
［システム］
図１は、本発明の一実施の形態であるソフトウェア配布システム１０１と、その管理対象であるソフトウェア配布対象のマシン１１０等とを含むコンピュータシステム全体の構成例を示す。本コンピュータシステム全体において、ソフトウェア配布システム１０１を備えるマシン（ソフトウェア配布マシン）１００と、対象（ソフトウェア配布対象）のコンピュータシステムのマシン１１０（対象マシン（群））とを有し、これらはネットワーク等の手段を通じて接続される。またマシン１００（ソフトウェア配布システム１０１）は、構成情報格納部１０５を接続（または内蔵）する。対象のコンピュータシステムは、複数のマシン１１０として、１つ以上の稼働系マシン１１１、１つ以上の待機系マシン１１２を含む。また各マシン１１０（１１１，１１２）は、ソフトウェア配布システム１０１の一部である配布エージェント１２０（１２１，１２２）を備える。また各マシン１１０（１１１，１１２）は、スケールアウト構成に対応した負荷分散装置１３０と接続される。
【００２３】
マシン１００は、配布管理する対象のソフトウェア１５０（更新用のデータ情報など）を有する。対象の各マシン１１０（１１１，１１２）は、ソフトウェア１５０の配布管理に基づきインストールされるソフトウェア１５１，１５２を有する。構成情報格納部１０５は、データベースやストレージ等により構成され、格納する構成情報として、マシン情報２００（図２）、ソフトウェアインストール情報３００（図３，図４）などを有する。
【００２４】
ソフトウェア配布システム１０１は、コンポーネント（プログラムモジュール等）として、（１）配布制御部１０２、（２）配布実行部１０３、及び（３）マシン操作部１０４を有する。本実施の形態のソフトウェア配布システム１０１は、主にマシン１００上でのこれらコンポーネントによるプログラム処理などにより実現される。
【００２５】
配布制御部１０２は、スケールアウト構成に対応したマシン１１０へのソフトウェア配布を統括制御する機能を持ち、他の部位（１０３，１０４等）の制御や、構成情報格納部１０５に対する構成情報の管理（取得・更新など）の処理を行う。配布制御部１０２は、図５で示す配布制御処理のフローを実行することで上記制御を実現する。配布制御部１０２により、各マシン１１０の属性や状態、及びソフトウェア構成などについて常に把握し、構成情報格納部１０５の構成情報に管理する。
【００２６】
配布実行部１０３は、対象のマシン１１０（１１１，１１２）にインストールされている配布エージェント１２０（１２１，１２２）と連携し、ソフトウェア１５０（１５１，１５２）の配布を実行する処理を行う。配布実行部１０３は、配布制御部１０２に従い、対象のソフトウェア１５０（更新用のデータ情報など）を対象のマシン１１０の配布エージェント１２０へ送信する機能、及び、配布エージェント１２０により行った当該マシン１１０でのソフトウェアのインストールや更新などの実行の結果情報を受信（取得）し、配布制御部１０２に送信する機能、等を有する。
【００２７】
マシン操作部１０４は、配布エージェント１２０と連携して、ソフトウェア配布に係わる各マシン１１０の起動及び停止などの操作（制御）を、ネットワーク等を介して遠隔で行う機能を有する。これによる各マシン１１０の起動及び停止などの状態も把握される。
【００２８】
配布エージェント１２０（１２１，１２２）は、対象のマシン１１０（稼動系マシン１１１，待機系マシン１１２）に予めインストールされ、ソフトウェア配布システム１０１（配布実行部１０３やマシン操作部１０４）と連携する。配布エージェント１２０は、マシン１１０上でのプログラム処理などにより実現され、以下のような機能を有する。（１）マシン１１０の起動時、マシン操作部１０４へ、起動完了（状態）を示す情報を送信する（即ちマシン１１０の起動や停止の状態を把握する機能）。（２）ソフトウェア１５０の配布時、配布実行部１０３から受信したソフトウェア１５０（更新用のデータ情報など）を、当該マシン１１０にインストールないし更新する。（３）上記配布の実行の結果（更新完了など）の情報を、配布実行部１０３へ送信する（即ちマシン１１０のソフトウェア構成を把握する機能）。
【００２９】
また図１の例は、負荷分散装置１３０を使用するシステム構成の場合である。マシン１１０は例えばクライアント端末等に対してサービス処理を提供するサーバ装置などである。負荷分散装置１３０は、クライアント端末等からのマシン１１０に対するアクセスを、負荷やスケールアウトの状況などに応じて振り分けることで負荷分散する。
【００３０】
また図１の例では、簡単のため、マシン１１０として稼動系マシン１１１及び待機系マシン１１２を１台ずつ示している。即ち１台単位でのスケールアウト（ＯＮ／ＯＦＦ）を可能とする場合である。これに限らず、各マシン１１１，１１２を複数台として、複数台単位でのスケールアウトを可能としても構わない。
【００３１】
本ソフトウェア配布システム１０１は、上述したような機能（スケールアウト構成に対応したソフトウェア配布の機能）を備えることにより、各マシン１１０について、常時起動の稼働系マシン１１１か、通常（スケールアウトＯＦＦ時）は停止状態の待機系マシン１１２か等を把握し、またマシン１１０の起動や停止の自動操作（制御）を可能とする。
【００３２】
［構成管理情報］
ソフトウェア配布システム１０１が管理する構成情報格納部１０５に格納される構成情報の例として、図２に示すマシン情報２００、図３，図４に示すソフトウェアインストール情報３００を有する。
【００３３】
図２は、更新対象になるマシン１１０についてのマシン情報２００の詳細内容例を示す。図２のマシン情報２００では、（１）マシン識別子（ID）、（２）マシン名（mashine_name）、（３）属性（mashine_attribute）、（４）状態（status）、等を有する。（３）の属性は、（１）「通常」、（２）「待機」、等を有する。「通常」は、稼働系、即ち通常業務などでスケールアウト状態（ＯＮ／ＯＦＦ）に依らずに常時起動することを表す。「待機」は、待機系、即ちスケールアウト（ＯＮ）時のみ起動することを表す。（４）の状態は、現在のマシン１１０の稼働や停止等に関する状態を示し、本実施の形態では、（１）「起動Ａ」、（２）「起動Ｂ」、（３）「停止」、等を有する。「起動Ａ」（通常業務起動）は、通常業務などのために起動している状態を表す。「起動Ｂ」（メンテナンス起動）は、ソフトウェア配布を含むメンテナンスなどのために起動している状態を表す。「停止」は、停止している状態（例えば電源オフあるいはスリープ等の状態）を表す。
【００３４】
図３は、ソフトウェアインストール情報３００の詳細内容例を示す。図３のソフトウェアインストール情報３００では、（１）インストール済みソフトウェア情報（識別子）、（２）マシン識別子（mashine_ID）、（３）ソフトウェア名（software）、（４）バージョン情報（version）、等を有する。（１）は、マシンにインストール済みのソフトウェアに関する情報（識別子）である。（２）のマシン識別子は、マシン情報２００の（１）のマシン識別子と関連付けされるものである。
【００３５】
即ち、上記図２〜図３のような構成情報の管理により、対象のコンピュータシステムの各マシン１１０に備えるソフトウェア（１５１，１５２）のバージョンを含む構成が随時把握される。
【００３６】
図４は、図３のソフトウェアインストール情報３００における、ソフトウェア配布による内容の変更（更新）の例を示す。（ａ）は配布前、（ｂ）は配布後である。
【００３７】
まず（ａ）で、本例では、図１の稼働系マシン１１１はマシン識別子が“１”、待機系マシン１１２はマシン識別子が“２”である。稼働系マシン１１１及び待機系マシン１１２の各々は、ソフトウェア（software）として“Webサーバ_1”をインストールしており、そのバージョン（version）は“2.3”であるとする。
【００３８】
そして（ｂ）のように、本例では、ソフトウェアのバージョンアップ及び配布の実行により、上記各マシン１１０の“Webサーバ_1”のバージョンが“2.3”から“2.4”へ更新される場合を示している。配布実行部１０３等による配布の動作に伴い、ソフトウェアインストール情報３００のバージョンの値が図示の通り“2.3”から“2.4”に更新される。
【００３９】
［処理フロー］
次に図５を用いて、本ソフトウェア配布システム１０１におけるソフトウェア配布処理（配布制御処理）について各コンポーネントの動作とともに説明する（Ｓは処理ステップ等を示す）。
【００４０】
まずＳ５０１で、配布制御部１０２は、構成情報格納部１０５のソフトウェアインストール情報３００から、配布の対象になるマシン１１０のマシン情報２００を取得する。Ｓ５０２以下、Ｓ５１１までのループにおいて、上記取得した対象のマシン１１０の台数分の処理を同様に繰り返し行う。
【００４１】
Ｓ５０３では、配布制御部１０２は、マシン情報２００をもとに対象のマシン１１０の属性（attribute）及び状態（status）を調べて判定する。Ｓ５０３の判定では、当該マシン１１０の属性が「待機」、且つ状態が「停止」である場合（即ち停止状態の待機系マシン１１２の場合）、Ｓ５０４へ進み、当該マシン情報２００をマシン操作部１０４に渡す。
【００４２】
Ｓ５０４では、マシン操作部１０４により、当該マシン１１０（待機系マシン１１２）を起動させる。起動後、Ｓ５０５で、当該マシン１１０の状態を「停止」から「起動Ｂ」（メンテナンス起動）へ変更（遷移）させる。即ち配布制御部１０２は、構成情報格納部１０５のマシン情報２００における当該マシン１１０の状態を「起動Ｂ」に更新する。そして当該マシン情報２００を配布実行部１０３に渡し、Ｓ５０６へ進む。
【００４３】
上記Ｓ５０４のマシン操作部１０４によるマシン起動処理の内容例は以下である。まず、マシン操作部１０４は、配布制御部１０２から送信されたマシン情報２００を受信（取得）する。次に、マシン操作部１０４は、起動の対象のマシン１１０を起動（メンテナンス起動）させる。本実施の形態では、マシン１００のマシン操作部１０４から、対象のマシン１１０の配布エージェント１２０へ、起動（例えば電源オンあるいはスリープからの復帰など）の指示などを送信する。これに従い当該配布エージェント１２０により当該マシン１１０を起動させる。
【００４４】
そして、対象マシン１１０の配布エージェント１２０は、起動完了などのマシン操作の結果の情報を、マシン操作部１０４へ送信する。マシン操作部１０４は、当該マシン１１０の配布エージェント１２０から上記結果の情報を待ち受けて受信する。そしてマシン操作部１０４から配布制御部１０２へ結果を通知する（Ｓ５０５へつながる）。これにより、対象マシン１１０の「起動Ｂ」状態（即ちソフトウェア配布が可能な状態）等が確認される。
【００４５】
また、仮想環境上に対象マシン１１０が存在する場合、Ｓ５０４の処理は以下のような例としてもよい。この場合、マシン１１０の起動に配布エージェント１２０は必要無く、仮想環境を作成しているソフトウェアが提供するＡＰＩ（コマンド）によって（起動の）実現が可能である。
【００４６】
一方、前記Ｓ５０３の判定で、属性及び状態が、その他（「待機」且つ「停止」以外）の場合は、Ｓ５０６へ進み、当該マシン１１０のマシン情報２００を配布実行部１０３に渡す。
【００４７】
Ｓ５０６では、配布実行部１０３により対象マシン１１０に対するソフトウェア配布を実行する。即ち、配布マシン１００の配布実行部１０３から、ネットワーク等を介して、対象マシン１１０の配布エージェント１２０へ、対象のソフトウェア１５０（最新のバージョン）のインストール・更新用のデータ情報などを配布（送信）する。対象マシン１１０の配布エージェント１２０は、上記受信したデータ情報を用いて、当該マシン１１０の対象のソフトウェア（１５１，１５２）をインストール・更新する。そしてその更新完了などの配布実行の結果の情報を、配布マシン１００の配布実行部１０３へ送信する。なお上記は１台単位の配布実行処理の場合であるが、複数台ある場合は同様に複数台へ同時並行的に配布実行処理を行ってもよい。
【００４８】
上記Ｓ５０６の配布実行後、Ｓ５０７で、配布制御部１０２は、配布実行部１０３から受信した上記結果（更新完了など）の情報に従い、構成情報格納部１０５のソフトウェアインストール情報３００の内容を更新する。更新内容の例は前記図４の通りであり、例えば稼動系マシン１１１（「起動Ａ」状態）及び待機系マシン１１２（「起動Ｂ」状態）の双方のソフトウェアが同じ最新のバージョンに更新されることになる。
【００４９】
次に、Ｓ５０８で、配布制御部１０２は、マシン情報２００における対象のマシン１１０の状態（status）を判定する。当該マシン１１０の状態が「起動Ｂ」（メンテナンス起動）である場合（即ちＳ５０４で起動させた待機系マシン１１２の場合）、Ｓ５０９へ進み、マシン操作部１０４に当該マシン情報２００を渡す。
【００５０】
Ｓ５０９では、マシン操作部１０４により、当該マシン１１０を停止させる。この停止処理は、例えば前記Ｓ５０４と同様に配布エージェント１２０を用いて、停止の指示などを授受することによる。そして、Ｓ５０９の停止の結果をもとに、Ｓ５１０では、配布制御部１０２は、構成情報格納部１０５のマシン情報２００における当該マシン１１０の状態を「起動Ｂ」から「停止」へ更新する。
【００５１】
［事例］
図７は、（ａ）従来技術例（前述）、（ｂ）本実施の形態における、コンピュータシステムの各種マシンのソフトウェア配布及びスケールアウト等に関するタイミングや状態遷移の事例を模式的に示している。
【００５２】
（ａ）従来技術例において、最初、稼働系マシン（「起動」状態）及び待機系マシン（「停止」状態）は、同一のバージョン（ｖ１）のソフトウェア構成とし、またスケールアウトは行われていない（ＯＦＦ）状態とする。次にある時点（ｔ１）で、最新のバージョン（ｖ２）のソフトウェアの配布が各マシンに対して実行されたとする（ｔ１〜ｔ２）。この際、「起動」状態の稼働系マシンに対しては当該配布が適用されるが、「停止」状態の待機系マシンに対しては適用されない。稼働系マシンは、配布の終了の時点（ｔ２）から最新の構成（ｖ２）となるが、待機系マシンは、古い構成（ｖ１）のままである。
【００５３】
またその後ある時点（ｔ４）で、特許文献１等の技術により、定期的なタイミングでの同期が行われたとする（ｔ４〜ｔ５）。これにより、稼働系マシン（ｖ２）のデータを、「起動」状態にした待機系マシン（ｖ１）へコピー（反映）することで、待機系マシンのソフトウェア構成（ｖ１）が稼働系マシンと同じもの（ｖ２）に更新（同期）される。
【００５４】
上記例では、７０１のように、稼働系−待機系の両者のソフトウェア構成に差異（ズレ）がある時間（ｔ２〜ｔ４）が生じている。
【００５５】
また、上記時間（ｔ２〜ｔ４）中、ある時点（ｔ３）で、条件（コンピュータシステムの高負荷状態など）に基づきスケールアウト（ＯＮ）が行われた場合、上記ソフトウェア構成の差異があるため問題がある。よって、ユーザ手動操作などによって待機系マシンのソフトウェア構成（ｖ１）を最新化する作業が必要となる。
【００５６】
（ｂ）本実施の形態において、最初、稼働系マシン１１１及び待機系マシン１１２は、同一のバージョン（ｖ１）のソフトウェア構成とし、またスケールアウトは行われていない（ＯＦＦ）状態、即ち稼働系マシン１１１は「起動Ａ」状態、待機系マシン１１２は「停止」状態、とする。次にある時点（ｔ１）で、最新のバージョン（ｖ２）のソフトウェアの配布が各マシン１１０に対して実行されたとする。この際、前述の配布制御（図５）に従い、待機系マシン１１２はメンテナンス起動される（「停止」から「起動Ｂ」状態へ遷移）。稼働系マシン１１１は「起動Ａ」状態のままである。そして、両者（１１１，１１２）に対して、当該ソフトウェア（ｖ２）が配布・更新される（ｔ１〜ｔ２）。更新完了後（ｔ２）、稼働系マシン１１１については「起動Ａ」状態、待機系マシン１１２については「停止」状態へ戻る。
【００５７】
またその後ある時点（ｔ３）で、条件（コンピュータシステムの高負荷状態など）に基づきスケールアウト（ＯＮ）が行われた場合、待機系マシン１１２は「起動Ａ」状態へ遷移される。
【００５８】
上記（ｂ）では、（ａ）のような稼働系−待機系でソフトウェア構成の差異が生じる時間（７０１）が無いため、（ａ）のようなスケールアウト（ＯＮ／ＯＦＦ）に伴う問題が無い。
【００５９】
図６は、本実施の形態で、（ａ）稼働系マシンの遷移表、（ｂ）待機系マシンの遷移表を示す。遷移元の状態（status）と条件の場合に応じて、どの遷移先の状態に遷移するかについて例をまとめて記載している。例えば、（ａ）で、稼働系マシンについては、通常は常時起動しており、基本的に状態の遷移を行わない。また停止状態の場合も何らかの原因があると考え、ソフトウェア配布のときでも起動状態への遷移は行わない。また、（ｂ）で、待機系マシンについては、ソフトウェア配布中でのスケールアウト（ＯＮ／ＯＦＦ）は行わない。
【００６０】
［効果等］
以上説明したように、本実施の形態のソフトウェア配布システム１０１によれば、スケールアウト構成の待機系マシン１１２があるコンピュータシステム（マシン１１０）に対するソフトウェア１５０の配布においても、ユーザ（運用者等）による特別の作業負担（前述した例えば同期などの手順）及びリードタイムなど必要無く、適切にソフトウェア配布及びスケールアウトを行うことができる。
【００６１】
ユーザは、スケールアウト用のマシン等（稼動系か待機系か等）を意識する必要無く、例えば更新対象のソフトウェア１５０を選択する等の簡単な作業だけで、自動的・一括的に、対象のコンピュータシステムの必要なマシン１１０のすべて（停止状態の待機系マシン１１２を含む）に対して、ソフトウェア１５０の配布・更新を行うことができる。本ソフトウェア配布システム１０１では、スケールアウト構成のシステムを、他のシステム（非スケールアウト構成など）と同様に扱うことができ、スケールアウト実行時（ＯＮ）には、各マシン１１０のソフトウェア構成が同じに維持されているので、リードタイム無く即座に適切なスケールアウト（ＯＮ／ＯＦＦ）を行うことができる。
【００６２】
また本システムでは、「起動Ａ」，「起動Ｂ」のように、起動の種類を分けて管理している。これにより、待機系マシン１１２が稼動しているスケールアウト（ＯＮ）中においてソフトウェア配布を行った場合でも、待機系マシン１１２が配布前の状態に戻ることができる。
【００６３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【００６４】
本発明は、例えば企業の情報処理システム、クラウド環境におけるサーバシステムなど、所定のコンピュータシステムを運用する環境において、特にスケールアウト構成を持つ場合のソフトウェア更新に有効に利用可能である。
【符号の説明】
【００６５】
１００…マシン（ソフトウェア配布マシン）、１０１…ソフトウェア配布システム、１０２…配布制御部、１０３…配布実行部、１０４…マシン操作部、１０５…構成情報格納部、１１０…マシン（対象マシン（群））、１１１…稼動系マシン、１１２…待機系マシン、１２０（１２１，１２２）…配布エージェント、１３０…負荷分散装置、１５０，１５１，１５２…ソフトウェア、２００…マシン情報、３００…ソフトウェアインストール情報。
【図１】
0005319619.tif 000002
【図２】
0005319619.tif 000003
【図３】
0005319619.tif 000004
【図４】
0005319619.tif 000005
【図５】
0005319619.tif 000006
【図６】
0005319619.tif 000007
【図７】
0005319619.tif 000008