(57)【要約】  更新制御装置（１０）は、取得部（１３）と分類部（１４）と更新処理部（１５）を有する。取得部（１３）は、複数の装置（１２）のそれぞれの構成要素を示す構成要素情報を取得する取得部を有する。分類部（１４）は、取得部（１３）により取得した前記複数の装置（１２）のそれぞれの構成要素情報の類似度を算出し、算出した類似度に基づいて、前記複数の装置（１２）を１又は複数の装置群に分類する。更新処理部（１５）は、分類部（１４）により同じ装置群に分類された装置（１２）に対して、共通したプログラムの更新方法を適用してシステムを更新する処理を実行する。
2013051142.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置のそれぞれの構成要素を示す構成要素情報を取得する取得部と、
前記取得部により取得した前記複数の装置のそれぞれの構成要素情報の類似度を算出し、算出した類似度に基づいて、前記複数の装置を１又は複数の装置群に分類する分類部と、
前記分類部により同じ装置群に分類された装置に対して、共通したプログラムの更新方法を適用してシステムを更新する処理を実行する更新処理部と、
を有することを特徴とする更新制御装置。
【請求項２】
前記分類部は、構成要素毎に、前記複数の装置の構成要素に関する情報に関して多数派と少数派を判別し、少数派とされた構成要素の数が所定の閾値以上の装置を例外的な設定がされた装置と特定して装置群に分類する
ことを特徴とする請求項１に記載の更新制御装置。
【請求項３】
前記分類部は、構成要素毎に、前記複数の装置の構成要素に関する情報に関して例外度合いを示す値を算出し、少数派とされた構成要素毎の例外度合いを示す値を加算した値が所定の閾値以上の装置を例外的な設定がされた装置と特定する
ことを特徴とする請求項２に記載の更新制御装置。
【請求項４】
前記更新処理部は、前記少数派とされた構成要素の数が少ない、または前記構成要素毎の例外度合いを示す値を加算した値が小さい装置から順にシステムを更新する処理を実行し、いずれかの装置のシステムの更新で異常が発生した場合、以降の装置のシステムの更新を中止する
ことを特徴とする請求項２または３に記載の更新制御装置。
【請求項５】
コンピュータに、
複数の装置のそれぞれの構成要素情報の類似度を算出し、算出した類似度に基づいて、前記複数の装置を１又は複数の装置群に分類し、
同じ装置群に分類された装置に対して、共通したプログラムの更新方法を適用してシステムを更新する処理を実行する
各処理を実行させることを特徴とする更新制御プログラム。
【請求項６】
コンピュータが、
複数の装置のそれぞれの構成要素情報の類似度を算出し、算出した類似度に基づいて、前記複数の装置を１又は複数の装置群に分類し、
同じ装置群に分類された装置に対して、共通したプログラムの更新方法を適用してシステムを更新する処理を実行する
各処理を実行することを特徴とする更新制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、更新制御装置、更新制御プログラム、および更新制御方法に関する。
【背景技術】
【０００２】
近年、大規模システムが運用されている。例えば、データセンタでは、多数の物理サーバによってシステムを運用したり、あるいは物理サーバ上で仮想マシン（Virtual  Machine）を動作させ、仮想マシンによってシステムを運用している。このような大規模システムは、各サーバのハードウェアや、サーバ上で動作する各種のソフトウェアなど多数の構成要素により構成される。【０００３】
大規模システムでは、修正プログラムの適用や設定変更などの運用管理オペレーションにおいて、管理者が同一の作業を多数のサーバに対して実行する状況が存在する。例えば、各サーバ上で動作する全てのＡｐａｃｈｅのバージョン２．４.ｘに対して修正プログラムを適用する場合がある。このような構成要素の変更の妥当性は、例えば、変更諮問委員会（ＣＡＢ：Change  Advisory  Board）により、確認、判定される。そして、実行が許可された物理サーバや仮想マシン、ソフトウェアなどの変更対象には、バッチ処理など修正プログラムの適用や設定変更が一連の流れで実行される半自動化された方法で変更が適用される。半自動化された方法で変更を適用する理由は、手動で変更を適用するのが時間、コストの点で非効率であるためである。【０００４】
なお、関連する先行技術として、次のような技術が提案されている。例えば、指定された情報処理装置と同一構成の情報処理装置をソフトウェアの更新の対象として選定し、選定された情報処理装置に修正ファイルを適用する技術が提案されている。また、例えば、構成要素と関係するノウハウをＣＭＤＢ（Configuration  Management  Database）に格納する。そして、新しい構成要素を追加するとき、追加する構成要素とＣＭＤＢに格納された各構成要素との類似性を判定し、類似性が高い構成要素のノウハウを追加する構成要素に関連づける技術が提案されている。このＣＭＤＢは、「構成管理データベース」とも呼ばれ、各サーバ装置の構成要素に関する情報を一元管理するデータベースである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１１９８４８号公報
【特許文献２】特開２００９−２４５０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、大規模システムでは、多数のベンダの機器が組み合わされており、各物理サーバや仮想マシン上で異なるアプリケーションや、同じアプリケーションであってもバージョンの異なるアプリケーションが運用される。また、大規模システムでは、新しいアプリケーションや修正プログラムが日々登場するため、システム状態が日々変化する。このため、管理者は、修正プログラムの適用など構成要素の変更前に、変更対象となる各物理サーバや仮想マシンの変更に関する制約を全て把握することが困難である。【０００７】
このため、大規模システムでは、各物理サーバや仮想マシンなどの変更対象に対して構成要素の変更作業を行ってみなければ制約がわからず、不意に構成要素の変更が失敗する場合があり、システムの変更作業の信頼性が低い、という問題がある。【０００８】
なお、先行技術は、同一構成あるいは構成要素の類似性が高いサーバ装置のシステムの変更作業を安定して行えるものの、構成要素の設定が異なるサーバ装置についてシステムの変更処理の信頼性を高めるものではない。【０００９】
また、変更対象として、物理サーバや仮想マシンを例にしたが、かかる問題は、ストレージ装置や、ルータなどのネットワーク機器などのシステムの変更作業についても同様に生ずる。【００１０】
１つの側面では、システムの変更作業の信頼性を高めることができる更新制御装置、更新制御プログラム、および更新制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の案では、更新制御装置は、複数の装置のそれぞれの構成要素を示す構成要素情報を取得する取得部を有する。更新制御装置は、前記取得部により取得した前記複数の装置のそれぞれの構成要素情報の類似度を算出し、算出した類似度に基づいて、前記複数の装置を１又は複数の装置群に分類する分類部を有する。更新制御装置は、前記分類部により同じ装置群に分類された装置に対して、共通したプログラムの更新方法を適用してシステムを更新する処理を実行する更新処理部を有する。
【発明の効果】
【００１２】
システムの変更作業の信頼性を高めることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、更新制御装置を含むシステムの全体構成を示す図である。
【図２】図２は、実施例２に係るシステムの機能的な構成の一例を示す図である。
【図３】図３は、各サーバ装置の構成の一例を示す図である。
【図４】図４は、第１テーブルのデータ構成の一例を示す図である。
【図５】図５は、サーバ装置の構成要素に関する情報と第１テーブルの各項目との対応関係を示す図である。
【図６】図６は、第２テーブルのデータ構成の一例を示す図である。
【図７】図７は、第３テーブルのデータ構成の一例を示す図である。
【図８】図８は、図７に示した修正プログラムを適用するワークフローの流れの一例を模式的に示した図である。
【図９】図９は、第４テーブルのデータ構成の一例を示す図である。
【図１０】図１０は、第５テーブルのデータ構成の一例を示す図である。
【図１１】図１１は、図４に示した構成要素の各情報の例外度合いを示す値としてＩ／Ｈを算出した結果の一例を示す図である。
【図１２】図１２は、図４に示した第１テーブルの構成要素に関する情報を多数派と少数派に判別した結果の一例を示す図である。
【図１３】図１３は、少数派とされた構成要素の種類および少数派とされた構成要素の数に応じてサーバ装置をツリー構造に分類した結果の一例を示す図である。
【図１４】図１４は、例外用のワークフローの流れを模式的に示した図である。
【図１５】図１５は、各ＶＭＭに対して実行されるワークフローおよびワークフローの処理順を模式的示した図である。
【図１６】図１６は、更新制御処理の手順を示すフローチャートである。
【図１７】図１７は、判別処理の手順を示すフローチャートである。
【図１８】図１８は、特定処理の手順を示すフローチャートである。
【図１９】図１９は、設定処理の手順を示すフローチャートである。
【図２０】図２０は、システム更新処理の手順を示すフローチャートである。
【図２１】図２１は、少数派とされた構成要素の種類および例外度合いの加算値に応じてサーバ装置をツリー構造に分類した結果の一例を示す図である。
【図２２】図２２は、例外度合いの加算値に応じて各サーバ装置を、３つのカテゴリに分類する場合の切り分け条件および実行するワークフローの定義の一例を示す図である。
【図２３】図２３は、少数派とされた構成要素の種類および例外度合いの加算値に応じてサーバ装置をツリー構造に分類した結果の一例を示す図である。
【図２４】図２４は、システムの更新の流れを模式的示した図である。
【図２５】図２５は、修正プログラムを適用するワークフローの流れの一例を模式的に示した一例を示す図である。
【図２６】図２６は、図２５から作成される例外用のワークフローの流れを模式的に示した図である。
【図２７】図２７は、更新制御プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明にかかる更新制御装置、更新制御プログラム、および更新制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１５】
実施例１に係る更新制御装置について説明する。図１は、更新制御装置を含むシステムの全体構成を示す図である。更新制御装置１０は、システムを更新する処理を制御する物理サーバであり、例えば、データセンサや各企業に設けられた管理用のサーバコンピュータである。更新制御装置１０は、ネットワーク１１を介してシステムの変更する対象となる各装置１２と互いに通信可能とする。装置１２は、例えば、サーバ装置やストレージ装置、ルータなどのネットワーク機器が挙げられる。かかるネットワーク１１の一態様としては、有線または無線を問わず、インターネット（Internet）、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の通信網が挙げられる。【００１６】
図１に示すように、更新制御装置１０は、取得部１３と、分類部１４と、更新処理部１５とを有する。【００１７】
取得部１３は、複数の装置１２のそれぞれの構成要素を示す構成要素情報を取得する。例えば、取得部１３は、複数の装置１２から所定の構成要素に関する情報を取得する。取得部１３は、例えば、更新制御装置１０が各装置１２に対して構成要素に関する情報の送信を要求し、各装置１２から構成要素に関する情報を受信することにより所定の構成要素に関する情報を取得してもよい。また、取得部１３は、各装置１２が所定のタイミング毎に構成要素に関する情報を更新制御装置１０へ送信し、更新制御装置１０が構成要素に関する情報を受信することにより取得してもよい。取得する構成要素に関する情報の一例としては、装置１２のハードウェアを示す情報や、装置１２で動作するソフトウェアを示す情報、ソフトウェアのバージョンの情報などが挙がられる。取得する構成要素に関する情報としては、システムの変更に制約となる可能性がある構成要素の情報とすることが好ましい。【００１８】
分類部１４は、装置１２を１又は複数の装置群に分類する。例えば、分類部１４は、取得部１３により取得した複数の装置１２のそれぞれの構成要素に関する情報の類似度を算出し、算出した類似度に基づいて、複数の装置１２を１又は複数の装置群に分類する。一例としては、分類部１４は、各装置１２の構成要素に関する情報を比較し、設定されている情報が少数のものを特定する。そして、分類部１４は、構成要素に設定されている情報が少数のものである装置１２を例外的な設定がされた装置１２と特定して装置群に分類する。【００１９】
ここで、大規模システムでは、システムの変更を行うために各装置１２に同一の作業を実行した場合、大多数の装置１２のシステムの変更が成功する。しかし、一部の装置１２については、構成要素に例外的な設定がされ、システムの変更の条件を満たしていないため、システムの変更が失敗する場合がある。【００２０】
更新処理部１５は、分類部により同じ装置群に分類された装置に対して、共通したプログラムの更新方法を適用してシステムを更新する処理を実行する。例えば、更新処理部１５は、各装置１２のうち、分類部１４により特定された例外的な設定がされた装置１２と他の装置１２で制御を変えてシステムを更新する処理を実行する。一例としては、更新処理部１５は、他の装置１２に対して、バッチ処理などにより半自動化された方法でシステムの変更を実行する。なお、他の装置１２が複数ある場合、例えば、何れか１つの装置１２で半自動化された方法によりシステムの変更を実行してシステムの変更に異常が発生しないことを確認した後に、残りの他の装置１２に対して連続的にシステムの変更を実行してもよい。これにより、構成要素に例外的な設定がなされていない他の装置１２については、管理者の手間や作業時間を抑えてシステムの変更を行うことができる。【００２１】
一方、更新処理部１５は、例外的な設定がされた装置１２に対して、他の装置１２のシステムを更新処理と比較して、システムの状態の確認を多く行いつつシステムの変更を実行する。システムの状態の確認を多く行う例としては、例えば、更新処理部１５は、システムを更新処理において、修正プログラムの適用や再起動などシステムを更新した際に異常が発生する可能性がある所定の処理が完了する毎に管理者に確認を要求しつつシステムの変更を実行する。あるいは、更新処理部１５は、システムを更新処理において、ログの出力や、システム更新前の状態のバックアップなどの所定の処理を追加してシステムの変更を実行する。すなわち、例外的な設定がされた装置１２には、管理者がシステムの状態の確認を行いつつシステムを更新処理が実行される。これにより、例外的な設定がされた装置１２については、慎重にシステムの変更が行われるため、システムの変更作業の信頼性を高めることができる。【００２２】
なお、図１の例では、機能的な構成を示したため、取得部１３、分類部１４、更新処理部１５を別に分けているが、例えば、１つのデバイスで構成してもよい。デバイスの一例としては、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などの電子回路が挙げられる。なお、デバイスとして、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路を採用することもできる。【００２３】
このように、更新制御装置１０は、複数の装置１２のそれぞれの構成要素を示す構成要素情報を取得する。また、更新制御装置１０は、取得した複数の装置１２のそれぞれの構成要素情報の類似度を算出し、算出した類似度に基づいて、複数の装置１２を１又は複数の装置群に分類する。また、更新制御装置１０は、同じ装置群に分類された装置に対して、共通したプログラムの更新方法を適用してシステムを更新する処理を実行する。これにより、更新制御装置１０によれば、管理者がシステムの変更に関する制約を全て把握していなくても、システムの変更に失敗が発生しやすい、構成要素に例外的な設定がされた装置１２について制御を変えてシステムの更新を行うことができる。このように、更新制御装置１０によれば、構成要素に例外的な設定がされた装置１２について、システムを更新する処理の制御を変えて、システムの更新を慎重に行うことにより、システムの変更作業の信頼性を高めることができる。
【実施例２】
【００２４】
実施例２について説明する。実施例２では、複数のサーバ装置３０でＶＭ（Virtual  Machine：仮想マシン）３２が動作し、各サーバ装置３０のシステムの変更を管理サーバ４０で制御するシステム２０について説明する。図２は、実施例２に係るシステムの機能的な構成の一例を示す図である。システム２０は、複数のサーバ装置３０と、管理サーバ４０とを有する。各サーバ装置３０と管理サーバ４０との間は、ネットワーク２１を介して通信可能に接続される。かかるネットワーク２１の一態様としては、有線または無線を問わず、インターネット、ＬＡＮやＶＰＮなどの任意の通信網が挙げられる。【００２５】
サーバ装置３０は、ＶＭ３２を動作させ、ＶＭ３２上でそれぞれシステムを運用している。管理サーバ４０は、各サーバ装置３０を管理しており、各サーバ装置３０のシステムの変更を制御する。なお、図２の例では、サーバ装置３０を３つ図示したが、サーバ装置３０の数は何れであってもよい。本実施例では、サーバ装置３０をサーバ装置３０ａ〜３０ｐの１６台とした場合を例にして説明する。【００２６】
図３は、各サーバ装置の構成の一例を示す図である。サーバ装置３０ａ〜３０ｐは、ＶＭＭ（Virtual  Machine  Monitor）３２上で１つまたは複数のＶＭ３２を動作させ、ＶＭ３２上で各種のアプリケーション３３を動作させており、各種のアプリケーション３３がテナント３４により利用される。テナント３４は、例えば、ユーザや業者などの一般の利用者、またはシステム２０の管理者である。【００２７】
ＶＭＭ３１は、コンピュータシステムの動作環境を仮想的に実現する仮想化ソフトウェアであり、ＶＭ３２を動作させる制御を行う。また、ＶＭＭ３１は、管理サーバ４０から受信したシステム更新の指示に応じて、システムを更新する制御を行う。また、ＶＭＭ３１は、管理サーバ４０から受信したマイグレーション指示に応じて、他のサーバ装置３０との間でのＶＭ３２のマイグレーションを行う。図３の例は、サーバ装置３０ａ〜３０ｐにＶＭＭ３１として「Ｘｅｎ」が動作していることを示す。各ＶＭＭ３１に記載された「ＶＭＭ１」〜「ＶＭＭ１６」は、ＶＭＭ３１を識別するＩＤを示している。また、各ＶＭＭ３１の「Ｘｅｎ」に並んで記載された数字は、仮想化ソフトウェアのバージョンを示している。図３の例は、サーバ装置３０ａでＶＭＭ３１としてバージョンが４．０のＸｅｎが動作していることを示す。【００２８】
ＶＭ３２は、ＶＭＭ３１によって提供された環境でテナント３４に提供される処理を担う仮想マシンである。ＶＭ３２は、仮想環境においてアプリケーション３３の処理を実行する。図３の例は、サーバ装置３０ａ〜３０ｐのＶＭＭ３１上でＶＭ３２が動作していることを示す。各ＶＭ３２の「ＣｅｎｔＯＳ」に並んで記載された数字は、クライアントＯＳのバージョンを示している。例えば、サーバ装置３０ａは、ＶＭ３２として、バージョンが４．０のクライアントＯＳとバージョンが４．５のクライアントＯＳが動作していることを示す。【００２９】
また、図３の例は、サーバ装置３０ａ〜３０ｐのＶＭ３２上でアプリケーション３３としてＡｐａｃｈｅやＭｙＳＱＬが動作していることを示す。各アプリケーション３３の「Ａｐａｃｈｅ」や「ＭｙＳＱＬ」に並んで記載された数字は、アプリケーション３３のバージョンを示している。例えば、サーバ装置３０ａは、バージョンが４．０のクライアントＯＳ上でアプリケーション３３としてＡｐａｃｈｅ２．４が動作し、バージョンが４．５のクライアントＯＳ上でアプリケーション３３としてＭｙＳＱＬ４．１が動作していることを示す。また、サーバ装置３０ａで動作するＡｐａｃｈｅおよびＭｙＳＱＬは、共に一般の利用者Ａにより利用されることを示す。【００３０】
図２の説明に戻り、管理サーバ４０は、通信制御Ｉ／Ｆ部４１と、記憶部４２と、制御部４３とを有する。【００３１】
通信制御Ｉ／Ｆ部４１は、少なくとも１つのポートを有し、各サーバ装置３０と管理サーバ４０との間の通信を制御するインタフェースである。通信制御Ｉ／Ｆ部４１は、各サーバ装置３０と各種情報を送受信する。例えば、通信制御Ｉ／Ｆ部４１は、各サーバ装置３０から構成要素に関する情報を受信する。また、通信制御Ｉ／Ｆ部４１は、各サーバ装置３０へシステムの変更を制御するための各種指示を送信する。【００３２】
記憶部４２は、各種情報を記憶する。例えば、記憶部４２は、第１テーブル４２ａ、第２テーブル４２ｂ、第３テーブル４２ｃ、第４テーブル４２ｄ、第５テーブル４２ｅを記憶する。第１テーブル４２ａの各データは、後述する取得部４３ａにより登録される。一方、第２テーブル４２ａ〜第５テーブル４２ｅの各データは、システム２０の管理者により、管理サーバ４０と通信可能とされたクライアントコンピュータなどの端末装置あるいは管理サーバ４０に設けられたマウス、キーボードなどの入力装置から登録される。記憶部４２のデバイスの一例としては、フラッシュメモリやＮＶＳＲＡＭ(Non  Volatile  Static  Random  Access  Memory)などのデータを書き換え可能な半導体メモリや、ハードディスク、光ディスクなどの記憶装置が挙げられる。【００３３】
第１テーブル４２ａは、各サーバ装置３０の構成要素に関する情報を管理するテーブルである。図４は、第１テーブルのデータ構成の一例を示す図である。図４に示すように、第１テーブル４２ａは、対象ＩＤ、対象種類、ＶＭ数、ＶＭ種類、アプリケーション数、アプリケーション種類、テナント数、テナント種類、テナントオーナの各項目を有する。図５は、サーバ装置の構成要素に関する情報と第１テーブルの各項目との対応関係を示す図である。対象ＩＤの項目は、サーバ装置３０で動作するＶＭＭ３１のＩＤを記憶する領域である。対象種類の項目は、サーバ装置３０で動作するＶＭＭ３１のソフトウェア名およびバージョンを記憶する領域である。ＶＭ数の項目は、ＶＭＭ３１上で動作するＶＭ３２の数を記憶する領域である。ＶＭ種類の項目は、ＶＭＭ３１上で動作するＶＭ３２のクライアントＯＳ名およびバージョンを記憶する領域である。アプリケーション数の項目は、ＶＭ３２上で動作するアプリケーション３３の数を記憶する領域である。アプリケーション種類の項目は、ＶＭ３２上で動作するアプリケーション３３のアプリケーション名およびバージョンを記憶する領域である。テナント数の項目は、ＶＭ３２のテナント３４の数を記憶する領域である。テナント種類の項目は、テナント３４が一般の利用者か管理者の何れかであるかの種類を記憶する領域である。テナントオーナの項目は、テナント３４を示す情報を記憶する領域である。【００３４】
図４および図５の例では、サーバ装置３０ｅは、ＶＭＭ３１のＩＤが「ＶＭＭ５」であり、ＶＭＭ３１が「Ｘｅｎ３．０」であることを示す。また、サーバ装置３０ｅは、ＶＭＭ３１上で動作するＶＭ３２の数が「２」であり、２つのＶＭ３２が「ＣｅｎｔＯＳ」のバージョン「４．０」と「４．５」であることを示す。また、サーバ装置３０ｅは、ＶＭ３２上で動作するアプリケーション３３の数が「２」であり、２つのアプリケーション３３が「Ａｐａｃｈｅ２．４」と「ＭｙＳＱＬ４．１」であることを示す。また、サーバ装置３０ｅは、テナント３４の数が「１」であり、テナント３４の種類が一般の利用者であり、テナント３４が「Ｅ」であることを示す。【００３５】
第２テーブル４２ｂは、登録されたワークフローを管理するテーブルである。図６は、第２テーブルのデータ構成の一例を示す図である。図６に示すように、第２テーブル４２ｂは、ワークフローＩＤ、内容の各項目を有する。ワークフローＩＤの項目は、ワークフローを識別する識別情報を記憶する領域である。内容の項目は、ワークフローの処理内容を示す情報を記憶する領域である。【００３６】
図６の例では、ワークフローＩＤが「ＷＦ−０１」のワークフローは、修正プログラムの適用であり、ワークフローＩＤが「ＷＦ−０２」のワークフローは、処理内容がマイグレーションであることを示す。【００３７】
第３テーブル４２ｃは、ワークフローの各処理を管理するテーブルである。図７は、第３テーブルのデータ構成の一例を示す図である。図７に示すように、第３テーブル４２ｃは、オペレーションＩＤ、内容、コマンド定義、成功時次処理、失敗時次処理の各項目を有する。オペレーションＩＤの項目は、ワークフローの各処理を識別するＩＤを記憶する領域である。図７の例では、オペレーションＩＤは、ワークフローのワークフローＩＤに「−枝番」を付加した番号とされている。内容の項目は、ワークフローの各処理の処理内容を示す情報を記憶する領域である。コマンド定義の項目は、ワークフローの各処理を実行するコマンドを記憶する領域である。成功時次処理の項目は、処理が成功した際に次に処理するオペレーションＩＤを記憶する領域である。失敗時次処理の項目は、処理が失敗した際に次に処理するオペレーションＩＤを記憶する領域である。【００３８】
図７の例は、図６のワークフローＩＤが「ＷＦ−０１」のワークフローの各処理の一例を示したものである。図７に示すワークフローは、修正プログラムを適用する各処理の流れを示したものである。図７の例では、オペレーションＩＤが「ＷＦ−０１−１」のレコードは、ワークフローを実行する際に最初に実行される開始の処理であり、次の処理が「ＷＦ−０１−２」であることを示す。オペレーションＩＤが「ＷＦ−０１−２」のレコードは、「ｓｓｈ  ＸＸＸＸ」のコマンドを実行してシステムを変更するサーバ装置３０へのログインを行い、次の処理が「ＷＦ−０１−３」であることを示す。なお、コマンドの「ＸＸＸＸ」は、変更対象に応じて変更される。オペレーションＩＤが「ＷＦ−０１−３」のレコードは、「ｖｍ−ｓｎａｐｓｈｏｔ」のコマンドを実行してＶＭ３２のバックアップを行い、次の処理が「ＷＦ−０１−４」であることを示す。オペレーションＩＤが「ＷＦ−０１−４」のレコードは、「ｐａｔｃｈ  ＹＹＹ」のコマンドを実行して修正プログラムの適用を行い、処理が成功した際の次の処理が「ＷＦ−０１−５」であり、処理が失敗した際の次の処理が「ＷＦ−０１−８」であることを示す。なお、コマンドの「ＹＹＹ」は、適用する修正プログラムに応じて変更される。オペレーションＩＤが「ＷＦ−０１−５」のレコードは、「ｓｈｕｔｄｏｗｎ  −ｒ」のコマンドを実行してサーバ装置３０の再起動を行い、次の処理が「ＷＦ−０１−６」であることを示す。オペレーションＩＤが「ＷＦ−０１−６」のレコードは、「ｈｔｔｐ：／／ｘｘｘ．．．」のコマンドを実行してサーバ装置３０の動作確認を行い、正常の場合は次の処理が「ＷＦ−０１−７」であり、異常の場合は次の処理が「ＷＦ−０１−８」であることを示す。なお、コマンドの「ｘｘｘ．．．」は、動作確認の内容に応じて変更される。オペレーションＩＤが「ＷＦ−０１−７」のレコードは、「ｅｘｉｔ」のコマンドを実行してサーバ装置３０からのログアウトを行い、次の処理が「ＷＦ−０１−１０」であることを示す。オペレーションＩＤが「ＷＦ−０１−８」のレコードは、「ｖｍ−ｒｅｖｅｒｔ」のコマンドを実行してバックアップしたＶＭ３２に戻す処理を行い、次の処理が「ＷＦ−０１−９」であることを示す。オペレーションＩＤが「ＷＦ−０１−９」のレコードは、「ｍａｉｌ」のコマンドを実行してメールで管理者へ異常が発生したことを報知し、次の処理が「ＷＦ−０１−１０」であることを示す。ペレーションＩＤが「ＷＦ−０１−１０」のレコードは、ワークフローの終了を示す。【００３９】
図８は、図７に示した修正プログラムを適用するワークフローの流れの一例を模式的に示した図である。図８の例では、ワークフローの各処理に、図７に示した各処理の対応するオペレーションＩＤを付している。図８に示すように、修正プログラムを適用するワークフローは、修正プログラムを正常に適用できる場合、「開始」、「ログイン」、「バックアップ」、「パッチ適用」、「再起動」、「動作確認」、「ログアウト」、「終了」の順に処理が流れる。一方、修正プログラムを適用するワークフローは、「パッチ適用」や「動作確認」で異常が検出された場合、「リストア」、「レポート」、「ログアウト」、「終了」の順に処理が流れる。【００４０】
第４テーブル４２ｄは、ワークフローの実行条件を管理するテーブルである。図９は、第４テーブルのデータ構成の一例を示す図である。図９に示すように、第４テーブル４２ｄは、インスタンスＩＤ、開始日時、実行ワークフロー、実行対象定義の各項目を有する。インスタンスＩＤの項目は、ワークフローを実行した際のワークフローのインスタンスのＩＤを記憶する領域である。開始日時の項目は、ワークフローを実行する開始日時を記憶する領域である。実行ワークフローの項目は、実行するワークフローのワークフローＩＤを記憶する領域である。実行対象定義の項目は、ワークフローの処理を行う処理対象の条件を記憶する領域である。【００４１】
図９の例では、ワークフローＩＤが「ＷＦ−０１」のワークフローは、日時が２０１１／４／１５  ３：００に実行され、実行する際のインスタンスのＩＤが「ＷＦ＿ｐａｔｃｈ＿２０１１０４１５」であることを示す。また、ワークフローＩＤが「ＷＦ−０１」のワークフローは、パッチ適用対象のアプリケーションが「Ａｐａｃｈｅ」であり、適用する修正プログラムが「ｐａｔｃｈ−０．５．１．２」であることを示す。また、ワークフローＩＤが「ＷＦ−０１」のワークフローは、適用対象サーバがサーバ装置３０ａ〜３０ｐであることを示す。【００４２】
第５テーブル４２ｅは、例外に該当する変更対象の制御条件を管理するテーブルである。図１０は、第５テーブルのデータ構成の一例を示す図である。図１０に示すように、第５テーブル４２ｅは、インスタンスＩＤ、制御条件の各項目を有する。インスタンスＩＤの項目は、制御条件に応じた制御を行うワークフローのインスタンスのＩＤを記憶する領域である。制御条件の項目は、例外的な設定がされた変更対象への制御条件を記憶する領域である。【００４３】
図１０の例では、インスタンスＩＤが「ＷＦ＿ｐａｔｃｈ＿２０１１０４１５」のワークフローは、例外に該当する変更対象に対してワークフローの処理をステップ実行することを示す。【００４４】
図２の説明に戻り、制御部４３は、例えば、内部メモリ等を有するＣＰＵなどの電子回路であり、取得部４３ａと、監視部４３ｂと、判別部４３ｃと、分類部４３ｄと、更新処理部４３ｅとを有する。【００４５】
取得部４３ａは、通信制御Ｉ／Ｆ部４１を介して各サーバ装置３０と通信を行い、各サーバ装置３０から構成要素に関する情報を取得する。取得部４３ａは、取得された構成要素に関する情報を記憶部４２の第１テーブル４２ａに格納する。取得部４３ａは、各サーバ装置３０からの構成要素に関する情報を、例えば、管理サーバ４０が各サーバ装置３０に対して構成要素に関する情報の送信を要求し、各サーバ装置３０から構成要素に関する情報を受信することにより取得してもよい。また、取得部４３ａは、各サーバ装置３０からの構成要素に関する情報を、各サーバ装置３０が所定のタイミング毎に構成要素に関する情報を管理サーバ４０へ送信し、管理サーバ４０が構成要素に関する情報を受信することにより取得してもよい。【００４６】
監視部４３ｂは、記憶部４２の第４テーブル４２ｄに記憶された各開始日時を周期的に監視し、開始日時のワークフローがあるか否かを判定する。監視部４３ｂは、開始日時と判定されたワークフローがある場合、判別部４３ｃへ通知する。【００４７】
判別部４３ｃは、記憶部４２の第４テーブル４２ｄの実行対象定義の項目から監視部４３ｂにより開始日時と判定されたワークフローの処理対象の条件を読み出す。判別部４３ｃは、第１テーブル４２ａから処理対象の条件を満たすサーバ装置３０を判別し、処理対象の条件を満たす各サーバ装置３０の構成要素に関する情報を読み出す。例えば、図９に示すワークフローＩＤが「ＷＦ−０１」のワークフローが開始日時と判定された場合、判別部４３ｃは、第１テーブル４２ａからサーバ装置３０ａ〜３０ｐの構成要素に関する情報を読み出す。【００４８】
分類部４３ｄは、判別部４３ｃにより読み出された各サーバ装置３０の構成要素に関する情報に関して、構成要素毎に多数派と少数派を判別する。この構成要素毎に多数派と少数派を判別は、例えば、以下の手法により行う。分類部４３ｄは、各サーバ装置３０の構成要素に関する情報に関して、まれな情報であるほど値が大きいものとして例外度合いを示す値を算出する。この例外度合いを示す値は、例えば、構成要素に関する情報の情報量Ｉと当該構成要素の平均情報量Ｈから以下のように算出する。ここで、構成要素に関する情報のサンプル数をｍとし、構成要素に特定の情報が設定された対象の個数をｎとした場合、各サーバ装置３０の構成要素に特定の情報が設定されている確率Ｐは、以下の（１）式から求まる。
Ｐ＝ｎ／ｍ      （１）【００４９】
この場合、特定の情報の情報量Ｉ、および平均情報量Ｈは、以下の（２）、（３）式から算出する。
【数１】
2013051142.tif 000003
【００５０】
例外度合いを示す値は、以下の（４）式に示すように、情報量Ｉを平均情報量Ｈで除算して算出する。
例外度合い＝Ｉ／Ｈ      （４）【００５１】
例えば、１００個のＶＭＭ３１のうち、１個のＶＭＭ３１がＸｅｎ４.０であり、９９個のＶＭＭ３１がＸｅｎ３．５であるものとする。この場合、ＶＭＭ３１がＸｅｎ４.０である情報量ＩXen4.0とＶＭＭ３１がＸｅｎ３．５である情報量ＩXen3.5と平均情報量Ｈは、以下の（５）〜（７）式のように算出される。
【数２】
2013051142.tif 000004
【００５２】
よって、Ｘｅｎ４．０についての例外度合いを示す値は、ＩXen4.0／Ｈ＝８２．２となる。一方、Ｘｅｎ３．５についての例外度合いを示す値は、ＩXen3.5／Ｈ＝０．１８となる。【００５３】
また、例えば、１００個のＶＭＭ３１にそれぞれ異なるＩＰアドレスが設定されていたとする。この場合、情報量Ｉと平均情報量Ｈは、以下の（８）、（９）式のように算出される。
【数３】
2013051142.tif 000005
【００５４】
よって、例外度合いを示す値は、Ｉ／Ｈ＝１となる。【００５５】
ここで、情報量Ｉは、構成要素に関する情報に関して同じものが少ないほど値が大きくなる。しかし、例えば、ＩＰアドレスのように構成要素に設定される情報がそれぞれ異なる場合、それぞれの情報がまれな情報であるとは言い難い。そこで、本実施では、例外度合いを示す値として、情報量Ｉを平均情報量Ｈで除算した値を求めている。これにより、平均情報量Ｈ以下の情報量Ｉの情報は、例外度合いを示す値が１以下となる。また、平均情報量Ｈよりも情報量Ｉが大きい情報は、例外度合いを示す値が１よりも大きくなる。よって、例外度合いを示す値が大きいほど、まれな情報と判別できる。なお、例外度合いを示す値として、Ｉ／Ｈの値を用いたが、この例示に限るものではなく、まれな情報であるほど大きな値となれば何れの演算法を用いてもよい。【００５６】
図１１は、図４に示した構成要素の各情報の例外度合いを示す値としてＩ／Ｈを算出した結果の一例を示す図である。なお、図１１の例では、構成要素の各情報毎に、対象種類、サンプル数ｍ、サンプル種類数、対象の個数ｎ、ｎ／ｍの値、情報量Ｉ、平均情報量Ｈも示している。【００５７】
図１１の例では、対象情報が「Ｘｅｎ３．０」は、対象種類が「Ｘｅｎ」であり、サンプル数ｍが「１６」であり、サンプル種類数が「３」であり、対象の個数ｎが「１」であることを示す。また、対象情報が「Ｘｅｎ３．０」は、ｎ／ｍの値が「０．０６」であり、情報量Ｉが「４．００」であり、平均情報量Ｈが「１．２０」であり、Ｉ／Ｈの値が「３．３４」であることを示す。【００５８】
分類部４３ｄは、Ｉ／Ｈの値に基づいて、構成要素に関する情報の多数派、少数派を判別する。例えば、分類部４３ｄは、所定の閾値を用いて多数派、少数派を判別する。本実施例では、Ｉ／Ｈの値が２．０以上である場合、少数派と判別し、Ｉ／Ｈの値が２．０より小さい場合、多数派と判別する。なお、多数派、少数派を判別する閾値は、この例示に限るものではなく、１以上であればよく、管理サーバ４０を利用する者が任意の値に設定して良い。また、多数派、少数派を判別は、例えば、ｋ−ｍｅａｎｓ法などによるクラスタリングや、決定木の手法を用いてもよい。【００５９】
図１１の例は、Ｉ／Ｈが２．０より小さい場合、多数派と判別し、Ｉ／Ｈが２．０以上を少数派と判別した結果を示す。図１１の例では、多数派とされた情報の対象情報、およびＩ／Ｈの領域にドットのパターンを付している。図１１の例では、「Ｘｅｎ３．０」は少数派と判別され、「Ｘｅｎ３．５」と「Ｘｅｎ４．０」は多数派と判別される。また、「ＶＭ数１」と「ＶＭ数４」は少数派と判別され、「ＶＭ数２」は多数派と判別される。また、「ＣｅｎｔＯＳ３．０」は少数派と判別され、「ＣｅｎｔＯＳ４．０」と「ＣｅｎｔＯＳ４．５」は多数派と判別される。また、「アプリケーション数１」と「アプリケーション数４」は少数派と判別され、「アプリケーション数２」は多数派と判別される。また、「Ａｐａｃｈｅ２．６」は少数派と判別され、「Ａｐａｃｈｅ２．４」は多数派と判別される。また、「ＭｙＳＱＬ５．１」と「ＶＭ管理」は少数派と判別され、「ＭｙＳＱＬ４．１」は多数派と判別される。また、「オーナ数２」は少数派と判別され、「オーナ数１」は多数派と判別される。また、「テナント管理」は少数派と判別され、「テナント一般」は多数派と判別される。また、テナント「Ａ」〜「Ｎ」および「管理者」は多数派と判別される。【００６０】
図１２は、図４に示した第１テーブルの構成要素に関する情報を多数派と少数派に判別した結果の一例を示す図である。図１２の例では、少数派とされた構成要素の領域にドットのパターンを付している。また、図１２の例では、「少数派の数」として、少数派とされた構成要素の数を示している。例えば、ＶＭＭ３１のＩＤが「ＶＭＭ２」、「ＶＭＭ３」のサーバ装置３０は、Ａｐａｃｈｅ２．４は少数派と判別されたため、アプリケーション種類の領域にドットのパターンが付されており、少数派の数が「１」となっている。【００６１】
分類部４３ｄは、サーバ装置３０毎に少数派とされた構成要素の数をカウントする。そして、分類部４３ｄは、少数派とされた構成要素の数に基づいて、例外的な設定がされたサーバ装置３０を特定する。例えば、分類部４３ｄは、所定の閾値を用いて例外的な設定がされたＶＭＭ３１を特定する。本実施例では、分類部４３ｄは、少数派とされた構成要素の数が３つ以上のサーバ装置３０を例外的な設定がされたサーバ装置３０と特定する。なお、例外的な設定がされたＶＭＭ３１を判別する閾値は、この例示に限るものではなく、管理サーバ４０を利用する者が任意の値に設定して良い。【００６２】
図１３は、少数派とされた構成要素の種類および少数派とされた構成要素の数に応じてサーバ装置をツリー構造に分類した結果の一例を示す図である。なお、図１３は、ＶＭＭ３１のＩＤでサーバ装置３０の分類結果を示している。図１３の例では、ＶＭＭ３１のＩＤが「ＶＭＭ１」、「ＶＭＭ６」、「ＶＭＭ７」、「ＶＭＭ８」、「ＶＭＭ９」、「ＶＭＭ１４」のサーバ装置３０は、少数派とされた構成要素が無いため、少数派とされた構成要素が「０」の位置に分類される。また、「ＶＭＭ４」、「ＶＭＭ１１」、「ＶＭＭ１２」のサーバ装置３０は、少数派とされた構成要素が共に「オーナ数２」であり、少数派とされた構成要素の数が１であるため、同じグループとして少数派の数が「１」の位置に分類される。また、「ＶＭＭ１０」のサーバ装置３０は、少数派とされた構成要素が「オーナ数２」と「ＣｅｎｔＯＳ３．０」であり、少数派とされた構成要素の数が２であるため、少数派の数が「２」の位置に分類される。また、「ＶＭＭ１０」のサーバ装置３０は、「ＶＭＭ４」、「ＶＭＭ１１」、「ＶＭＭ１２」のグループと少数派とされた構成要素の「オーナ数２」が共通するため、「ＶＭＭ４」、「ＶＭＭ１１」、「ＶＭＭ１２」のグループから分岐した構造で示されている。図１３の例では、ＶＭＭ３１のＩＤが「ＶＭＭ１３」、「ＶＭＭ１５」、「ＶＭＭ１６」のサーバ装置３０は、少数派とされた構成要素の数が３つ以上であるため、例外的な設定がされたサーバ装置３０と特定される。【００６３】
更新処理部４３ｅは、記憶部４２の第４テーブル４２ｄに記憶された実行ワークフローを参照し、監視部４３ｂにより開始日時と判定されたワークフローのインスタンスＩＤおよびワークフローＩＤを特定する。更新処理部４３ｅは、記憶部４２の第３テーブル４２ｃから特定したワークフローＩＤのワークフローの各処理を読み出す。更新処理部４３ｅは、第３テーブル４２ｃから読み出したワークフローの処理を、通常用のワークフローの処理とする。また、更新処理部４３ｅは、記憶部４２の第５テーブル４２ｅから、特定したインスタンスＩＤに対応する制御条件を読み出す。更新処理部４３ｅは、第５テーブル４２ｅから読み出した制御条件に応じて、通常用のワークフローの処理を更新して例外用のワークフローを作成する。例えば、特定したワークフローＩＤのワークフローが図８に示すワークフローであり、制御条件が図９のインスタンスＩＤが「ＷＦ＿ｐａｔｃｈ＿２０１１０４１５」の制御条件であるものとする。この場合、更新処理部４３ｅは、図８に示すワークフローの各処理に、管理者による確認処理を追加してステップ実行させる例外用のワークフローを作成する。図１４は、例外用のワークフローの流れを模式的に示した図である。図１４の例では、図９に示したワークフローの各処理に確認処理が追加されている。【００６４】
更新処理部４３ｅは、少数派とされた構成要素の数が少ない順にワークフローの処理順を決定する。なお、本実施例では、少数派とされた構成要素の数が同じ場合、ＶＭＭ３１のＩＤが小さいものから実行するものとするが、処理順の条件をさらに定めてもよい。更新処理部４３ｅは、決定した処理順に、例外的な設定ではないサーバ装置３０のＶＭＭ３１に対して、通常用のワークフローの処理を実行し、その後、例外的な設定がされたサーバ装置３０のＶＭＭ３１に対して、例外用のワークフローの処理を実行する。【００６５】
図１５は、各ＶＭＭに対して実行されるワークフローおよびワークフローの処理順を模式的示した図である。なお、図１５は、ＶＭＭ３１のＩＤでサーバ装置３０を示している。図１５の例は、ＩＤが「ＶＭＭ１」〜「ＶＭＭ１２」、「ＶＭＭ１４」のサーバ装置３０に対してワークフローＩＤが「ＷＦ−０１」のワークフローを通常用のワークフローとして実行することを示す。また、通常用のワークフローは、ＩＤが「ＶＭＭ１」、「ＶＭＭ６」〜「ＶＭＭ９」、「ＶＭＭ１４」のサーバ装置３０に対して順に実行される。その後、通常用のワークフローは、ＩＤが「ＶＭＭ５」、「ＶＭＭ４」、「ＶＭＭ１１」、「ＶＭＭ１２」、「ＶＭＭ２」、「ＶＭＭ３」のＶＭＭ３１に対して順に実行される。その後、通常用のワークフローは、ＩＤが「ＶＭＭ１０」のＶＭＭ３１に対して順に実行されることを示す。【００６６】
また、図１５の例は、ＩＤが「ＶＭＭ１３」、「ＶＭＭ１５」、「ＶＭＭ１６」のＶＭＭ３１に対して、通常用のワークフローの処理を更新した例外用のワークフローを実行することを示す。例外用のワークフローは、ＩＤが「ＶＭＭ１３」のＶＭＭ３１に対して実行され、その後、ＩＤが「ＶＭＭ１５」、「ＶＭＭ１６」のＶＭＭ３１に対して順に実行されることを示す。このように、例外的な設定ではないサーバ装置３０に通常用のワークフローの処理を実行し、例外的な設定のサーバ装置３０に例外用のワークフローの処理を実行してシステムの更新を慎重に行うことにより、システムの変更作業の信頼性を高めることができる。【００６７】
また、更新処理部４３ｅは、少数派とされた構成要素の数が少ない順に各サーバ装置３０のシステムを更新する処理を実行し、いずれかのサーバ装置３０のシステムの更新で異常が発生した場合、以降のサーバ装置３０のシステムの更新を中止する。少数派とされた構成要素の数が少ない順に各サーバ装置３０のシステムの更新を実行した場合、後でシステムの更新が実行されるサーバ装置３０ほど例外的な設定がされたサーバ装置３０である。そこで、いずれかのサーバ装置３０のシステムの更新で異常が発生した場合、以降のサーバ装置３０のシステムの更新を中止することにより、システムの更新で異常が発生するおそれがあるサーバ装置３０に対してシステムの更新が行われることを防止できる。【００６８】
次に、本実施例に係る管理サーバ４０がシステムの変更する変更対象のシステムの変更を制御する際の処理の流れを説明する。図１６は、更新制御処理の手順を示すフローチャートである。この更新制御処理は、例えば、監視部４３ｂにより、いずれかのワークフローが開始日時と判定されたタイミングで実行される。【００６９】
図１６に示すように、判別部４３ｃは、第４テーブル４２ｄから開始日時と判定されたワークフローの処理対象の条件を読み出し、第１テーブル４２ａから処理対象の条件を満たすサーバ装置３０の構成要素に関する情報を読み出す（ステップＳ１０）。分類部４３ｄは、読み出された各サーバ装置３０の構成要素に関する情報に関して、構成要素毎に比較して多数派と少数派を判別する判別処理を行う（ステップＳ１１）。【００７０】
図１７は、判別処理の手順を示すフローチャートである。分類部４３ｄは、各サーバ装置３０の構成要素に関する情報に関してそれぞれ例外度合いを示す値を算出する（ステップＳ２０）。そして、分類部４３ｄは、算出された例外度合いを示す値に基づいて、構成要素毎に情報の多数派、少数派を判別し（ステップＳ２１）、図１６のステップＳ１２へ移行する。【００７１】
分類部４３ｄは、構成要素毎に情報の多数派、少数派の判別結果に基づき、例外的な設定がされたサーバ装置３０を特定する特定処理を行う（ステップＳ１２）。図１８は、特定処理の手順を示すフローチャートである。分類部４３ｄは、サーバ装置３０毎に少数派とされた構成要素の数をカウントする（ステップＳ３０）。分類部４３ｄは、少数派とされた構成要素の数が所定の閾値以上のサーバ装置３０を例外的な設定がされたサーバ装置３０と特定し（ステップＳ３１）、図１６のステップＳ１３へ移行する。【００７２】
更新処理部４３ｅは、ワークフローの実行順およびワークフローの実行対象を設定する設定処理を行う（ステップＳ１３）。図１９は、設定処理の手順を示すフローチャートである。更新処理部４３ｅは、第３テーブル４２ｃから開始日時と判定されたワークフローのワークフローＩＤのワークフローの処理を読み出し、通常用のワークフローの処理とする（ステップＳ４０）。更新処理部４３ｅは、第５テーブル４２ｅから、開始日時と判定されたワークフローのインスタンスＩＤに対応する制御条件を読み出し、制御条件に応じて、通常用のワークフローの処理を更新して例外用のワークフローを作成する（ステップＳ４１）。更新処理部４３ｅは、例外的な設定がされたサーバ装置３０に対して例外用のワークフローを割り当て、例外的な設定がされていないサーバ装置３０に対して通常用のワークフローを割り当てる（ステップＳ４２）。更新処理部４３ｅは、少数派とされた構成要素の数が少ない順に各サーバ装置３０に対するワークフローの処理順を決定し（ステップＳ４３）、図１６のステップＳ１４へ移行する。【００７３】
更新処理部４３ｅは、決定された処理順にサーバ装置３０のＶＭＭ３１に対してワークフローの処理を実行してシステムを更新するシステム更新処理を行う（ステップＳ１４）。図２０は、システム更新処理の手順を示すフローチャートである。更新処理部４３ｅは、決定された処理順に、例外的な設定がされていないサーバ装置３０を選択する（ステップＳ５０）。更新処理部４３ｅは、選択したサーバ装置３０のＶＭＭ３１に対して、割り当てた通常のワークフローの各処理を実行してシステムの変更を行う（ステップＳ５１）。更新処理部４３ｅは、選択したサーバ装置３０のシステムの変更が成功したか否かを判定する（ステップＳ５２）。システムの変更が失敗した場合（ステップＳ５２否定）、管理者に対してシステムの変更が失敗したことの通知を行い（ステップＳ５３）、図１６の更新制御処理に戻って処理終了となる。一方、システムの変更が成功した場合（ステップＳ５２肯定）、更新処理部４３ｅは、例外的な設定がされていない全サーバ装置３０のシステムの変更が完了したか否かを判定する（ステップＳ５４）。全サーバ装置３０のシステムの変更が完了していない場合（ステップＳ５４否定）、ステップＳ５０へ移行する。一方、全サーバ装置３０のシステムの変更が完了した場合（ステップＳ５４肯定）、更新処理部４３ｅは、決定された処理順に、例外的な設定がされたサーバ装置３０を選択する（ステップＳ５５）。更新処理部４３ｅは、選択したサーバ装置３０のＶＭＭ３１に対して、割り当てた例外用のワークフローの各処理を実行してシステムの変更を行う（ステップＳ５６）。更新処理部４３ｅは、選択したサーバ装置３０のシステムの変更が成功したか否かを判定する（ステップＳ５７）。システムの変更が失敗した場合（ステップＳ５７否定）、ステップＳ５３へ移行して管理者に対してシステムの変更が失敗したことの通知を行い、図１６の更新制御処理に戻って処理終了となる。一方、システムの変更が成功した場合（ステップＳ５７肯定）、更新処理部４３ｅは、例外的な設定がされた全サーバ装置３０のシステムの変更が完了したか否かを判定する（ステップＳ５８）。全サーバ装置３０のシステムの変更が完了していない場合（ステップＳ５８否定）、ステップＳ５５へ移行する。一方、全サーバ装置３０のシステムの変更が完了した場合（ステップＳ５８肯定）、図１６の更新制御処理に戻って処理終了となる。【００７４】
このように、管理サーバ４０は、構成要素毎に、各サーバ装置３０の構成要素に関する情報に関して多数派と少数派を判別し、少数派とされた構成要素の数が所定の閾値以上のサーバ装置３０を例外的な設定がされたサーバ装置３０と特定する。よって、管理サーバ４０によれば、構成要素に関する情報が少数派である数が多く、例外的な設定が多いサーバ装置３０を例外的な設定がされたサーバ装置３０と特定できる。【００７５】
また、管理サーバ４０は、少数派とされた構成要素の数が少ない変更対象から順にシステムを更新する処理を実行する。よって、管理サーバ４０によれば、例外的な設定が少なく、安定してシステムを更新できるサーバ装置３０からシステムを更新できる。【００７６】
また、管理サーバ４０は、いずれかの管理サーバ４０のシステムの更新で異常が発生した場合、以降の変更対象のシステムの更新を中止する。よって、管理サーバ４０によれば、異常が発生した管理サーバ４０以上に例外的な設定が多く、システムの更新で異常が発生するおそれがあるサーバ装置３０に対してシステムの更新が行われることを防止できる。
【実施例３】
【００７７】
実施例３について説明する。実施例３では、構成要素毎の例外度合いを示す値を加算した値に基づいて例外的な設定がされた変更対象を特定する場合について説明する。実施例３に係るシステムの構成は、図２に示した実施例２に係るシステムと略同一であるため、異なる部分についてのみ説明する。【００７８】
分類部４３ｄは、実施例２と同様に、例外度合いを示す値を算出し、例外度合いを示す値に基づいて、構成要素に関する情報の多数派、少数派を判別する。そして、分類部４３ｄは、各サーバ装置３０毎に、少数派とされた構成要素毎の例外度合いを示す値を加算し、加算した値に基づいて、例外的な設定がされたサーバ装置３０を特定する。例えば、分類部４３ｄは、所定の閾値を用いて例外的な設定がされたＶＭＭ３１を特定する。本実施例では、分類部４３ｄは、少数派とされた構成要素毎の例外度合いの加算値が３以上のサーバ装置３０を例外的な設定がされたサーバ装置３０と特定する。なお、例外的な設定がされたＶＭＭ３１を判別する閾値は、この例示に限るものではなく、管理サーバ４０を利用する者が任意の値に設定して良い。【００７９】
図２１は、少数派とされた構成要素の種類および例外度合いの加算値に応じてサーバ装置をツリー構造に分類した結果の一例を示す図である。なお、図２１は、ＶＭＭ３１のＩＤでサーバ装置３０の分類結果を示している。また、図２１の例では、ＶＭＭ３１のＩＤが「ＶＭＭ１」、「ＶＭＭ６」、「ＶＭＭ７」、「ＶＭＭ８」、「ＶＭＭ９」、「ＶＭＭ１４」のサーバ装置３０は、少数派とされた構成要素が無いため、加算値が「０」の位置に分類される。また、「ＶＭＭ４」、「ＶＭＭ１１」、「ＶＭＭ１２」のサーバ装置３０は、少数派とされた構成要素が共に「オーナ数２」であり、「オーナ数２」のＩ／Ｈの値が２．４７であるため、同じグループとして加算値が「２」と「３」の間の位置に分類される。また、「ＶＭＭ１０」のサーバ装置３０は、少数派とされた構成要素が「オーナ数２」と「ＣｅｎｔＯＳ３．０」であり、それぞれのＩ／Ｈの値が２．４７と３．３４であり、加算値が５．８１であるため、加算値が「５」と「６」の間の位置に分類される。また、「ＶＭＭ１０」のサーバ装置３０は、「ＶＭＭ４」、「ＶＭＭ１１」、「ＶＭＭ１２」のグループと少数派とされた構成要素の「オーナ数２」が共通するため、「ＶＭＭ４」、「ＶＭＭ１１」、「ＶＭＭ１２」のグループから分岐した構造で示されている。図２１の例では、ＶＭＭ３１のＩＤが「ＶＭＭ１０」、「ＶＭＭ１３」、「ＶＭＭ１５」、「ＶＭＭ１６」のサーバ装置３０は、加算値が３以上であるため、例外的な設定がされたサーバ装置３０と特定される。【００８０】
更新処理部４３ｅは、少数派とされた構成要素毎の例外度合いの加算値が小さい順にワークフローの処理順を決定する。なお、本実施例では、加算値が同じ場合、ＶＭＭ３１のＩＤが小さいものから実行するものとするが、処理順の条件をさらに定めてもよい。更新処理部４３ｅは、決定した処理順に、例外的な設定ではないサーバ装置３０のＶＭＭ３１に対して、通常用のワークフローの処理を実行し、その後、例外的な設定がされたサーバ装置３０のＶＭＭ３１に対して、例外用のワークフローの処理を実行する。【００８１】
また、更新処理部４３ｅは、加算値が小さい順に各サーバ装置３０のシステムを更新する処理を実行し、いずれかのサーバ装置３０のシステムの更新で異常が発生した場合、以降のサーバ装置３０のシステムの更新を中止する。【００８２】
このように、管理サーバ４０は、構成要素毎に、各サーバ装置３０の構成要素に関する情報に関して例外度合いを示す値を算出する。この例外度合いを示す値は、まれな情報ほど値が大きい。そして、管理サーバ４０は、少数派とされた構成要素毎の例外度合いを示す値を加算した値が所定の閾値以上の変更対象を例外的な設定がされた変更対象と特定する。よって、管理サーバ４０によれば、構成要素に関する情報が１つのみが少数派であってもまれな情報であり、Ｉ／Ｈの値が大きい場合、例外的な設定がされたサーバ装置３０と特定できる。【００８３】
また、管理サーバ４０は、少数派とされた構成要素毎の例外度合いを示す値を加算した値が小さい変更対象から順にシステムを更新する処理を実行する。サーバ装置３０は、少数派とされた構成要素毎の例外度合いの加算値が大きいほど、例外的な設定がなされている。よって、管理サーバ４０によれば、例外的な設定が少なく、安定してシステムを更新できるサーバ装置３０からシステムを更新できる。【００８４】
また、管理サーバ４０は、いずれかの変更対象のシステムの更新で異常が発生した場合、以降の変更対象のシステムの更新を中止する。よって、管理サーバ４０によれば、異常が発生した管理サーバ４０以上に例外的な設定が多く、システムの更新で異常が発生するおそれがあるサーバ装置３０に対してシステムの更新が行われることを防止できる。
【実施例４】
【００８５】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。【００８６】
例えば、上記の実施例では、少数派とされた構成要素の数または例外度合いの加算値に応じてサーバ装置３０を、例外的ではないサーバ装置３０と例外的なサーバ装置３０の２つのカテゴリに分類する場合について説明したが、開示の装置はこれに限定されない。例えば、少数派とされた構成要素の数または例外度合いの加算値に応じて各サーバ装置３０を、３以上のカテゴリに分類してもよい。図２２は、例外度合いの加算値に応じて各サーバ装置を、３つのカテゴリに分類する場合の切り分け条件および実行するワークフローの定義の一例を示す図である。図２２の例では、例外度合いの加算値が３未満のサーバ装置３０は、ほぼ安全なものと分類し、通常用のワークフローでシステムの更新を行う。例外度合いの加算値が３以上かつ１０未満のサーバ装置３０は、要注意と分類し、管理者による目視の確認処理を追加した高信頼のワークフローでシステムの更新を行う。例外度合いの加算値が１０以上のサーバ装置３０は、危険と分類し、ドメインエキスパートなどの管理者に確認を行い、システムの更新を行なわない。【００８７】
図２３は、少数派とされた構成要素の種類および例外度合いの加算値に応じてサーバ装置をツリー構造に分類した結果の一例を示す図である。なお、図２３は、ＶＭＭ３１のＩＤでサーバ装置３０の分類結果を示している。図２３の例では、ＶＭＭ３１のＩＤが「ＶＭＭ１」〜「ＶＭＭ４」、「ＶＭＭ６」〜「ＶＭＭ９」、「ＶＭＭ１１」、「ＶＭＭ１２」、「ＶＭＭ１４」のサーバ装置３０は、加算値が３未満であるため、ほぼ安全と分類される。また、ＶＭＭ３１のＩＤが「ＶＭＭ５」、「ＶＭＭ１０」のサーバ装置３０は、加算値が３以上かつ１０未満であるため、要注意と分類される。また、ＶＭＭ３１のＩＤが「ＶＭＭ１３」、「ＶＭＭ１５」、「ＶＭＭ１６」のサーバ装置３０は、加算値が１０以上であるため、危険と分類される。【００８８】
このように、カテゴリ毎に制御を変えて各カテゴリに分類されたサーバ装置３０のシステムを更新する処理を実行することにより、システムの変更作業の信頼性を高めることができる。【００８９】
また、上記の実施例では、図６、図７に示すように、システムを更新するワークフローにおいて、サーバ装置３０の再起動を行うため、システムが一時的に停止する場合について説明したが、開示の装置はこれに限定されない。例えば、システムの更新を行うサーバ装置３０のＶＭ３２を他のサーバ装置３０に退避させた後に、システムの更新を行うものとしてもよい。図２４は、システムの更新の流れを模式的示した図である。図２４の例は、システムの更新を行うサーバ装置３０のＶＭ３２を他のサーバ装置３０の退避用のＶＭＭ３１にマイグレーションした後に、修正プログラムを適用し、退避させたＶＭ３２を元のサーバ装置３０に復帰させている。図２５は、修正プログラムを適用するワークフローの流れの一例を模式的に示した一例を示す図である。図２５に示すように、修正プログラムを適用するワークフローは、修正プログラムを正常に適用できる場合、「開始」、「ＶＭ退避」、「ＶＭＭ修正プログラム適用」、「ＶＭＭ再起動」、「動作確認」、「ＶＭ復帰」、「終了」の順に処理が流れる。一方、修正プログラムを適用するワークフローは、「ＶＭＭ修正プログラム適用」や「動作確認」で異常が検出された場合、「ＶＭＭリストア」、「ＶＭ復帰」、「レポート発行」、「終了」の順に処理が流れる。この図２５に示すワークフローに対して制御条件に応じた更新を行って例外用のワークフローを作成する。例えば、制御条件を各処理に確認処理の追加とした場合、ワークフローの各処理に確認処理を追加される。図２６は、図２５から作成される例外用のワークフローの流れを模式的に示した図である。図２６の例では、図２５に示したワークフローの各処理に確認処理を追加されている。【００９０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図２に示す取得部４３ａと、監視部４３ｂと、判別部４３ｃと、分類部４３ｄと、更新処理部４３ｅの各処理部が適宜統合されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【００９１】
［更新制御プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図２７は、更新制御プログラムを実行するコンピュータを示す図である。【００９２】
図２７に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＲＯＭ（Read  Only  Memory）３２０、ＨＤＤ（Hard  Disk  Drive）３３０、ＲＡＭ（Random  Access  Memory）３４０を有する。これら３００〜３４０の各部は、バス４００を介して接続される。ＨＤＤ３３０には、図２に示した第１テーブル４２ａ〜第５テーブル４２ｅの各々と同様の機能を有するテーブルが記憶される。【００９３】
ＲＯＭ３２０には上記実施例１の取得部１３、分類部１４、更新処理部１、または上記実施例２、３の取得部４３ａ、監視部４３ｂ、判別部４３ｃ、分類部４３ｄ、更新処理部４３ｅと同様の機能を発揮する更新制御プログラム３２０ａが予め記憶される。なお、更新制御プログラム３２０ａについては、適宜分離しても良い。【００９４】
そして、ＣＰＵ３１０が、更新制御プログラム３２０ａをＲＯＭ３２０から読み出して実行することで、実施例１〜３の各制御部と同様の動作を実行する。すなわち、更新制御プログラム３２０ａは、実施例１に示した取得部１３と、分類部１４と、更新処理部１５、あるいは実施例２に示した取得部４３ａと、監視部４３ｂと、判別部４３ｃと、分類部４３ｄと、更新処理部４３ｅと同様の動作を実行する。【００９５】
なお、上記した更新制御プログラム３２０ａについては、必ずしも最初からＨＤＤ３３０に記憶させることを要しない。【００９６】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。【００９７】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００９８】
１０    更新制御装置
１２    装置
１３    取得部
１４    分類部
１５    更新処理部
２０    システム
３０    サーバ装置
３１    ＶＭＭ
３２    ＶＭ
３３    アプリケーション
４０    管理サーバ
４２    記憶部
４３    制御部
４３ａ  取得部
４３ｂ  監視部
４３ｃ  判別部
４３ｄ  分類部
４３ｅ  更新処理部
【図１】
2013051142.tif 000006
【図２】
2013051142.tif 000007
【図３】
2013051142.tif 000008
【図４】
2013051142.tif 000009
【図５】
2013051142.tif 000010
【図６】
2013051142.tif 000011
【図７】
2013051142.tif 000012
【図８】
2013051142.tif 000013
【図９】
2013051142.tif 000014
【図１０】
2013051142.tif 000015
【図１１】
2013051142.tif 000016
【図１２】
2013051142.tif 000017
【図１３】
2013051142.tif 000018
【図１４】
2013051142.tif 000019
【図１５】
2013051142.tif 000020
【図１６】
2013051142.tif 000021
【図１７】
2013051142.tif 000022
【図１８】
2013051142.tif 000023
【図１９】
2013051142.tif 000024
【図２０】
2013051142.tif 000025
【図２１】
2013051142.tif 000026
【図２２】
2013051142.tif 000027
【図２３】
2013051142.tif 000028
【図２４】
2013051142.tif 000029
【図２５】
2013051142.tif 000030
【図２６】
2013051142.tif 000031
【図２７】
2013051142.tif 000032
【国際調査報告】
2013051142.tif 000033
2013051142.tif 000034