(57)【要約】【課題】通信接続関係が複雑な場合でも、適切な順序で複数の機能部を起動又は停止させること。【解決手段】管理対象となる複数の機能部による通信履歴を収集する収集部と、前記収集された通信履歴から、前記複数の機能部間の通信接続関係を抽出する抽出部と、前記抽出された通信接続関係において閉路が存在しなくなるように前記抽出した通信接続関係の一部を除去する閉路除去部と、前記閉路除去部により一部が除去された通信接続関係に基づいて、前記複数の機能部に対して起動処理又は停止処理を行う際の、処理順序を決定する順序決定部と、を備えるシステム管理装置。【選択図】図１１
2014010772.tif 000002
【特許請求の範囲】
【請求項１】
管理対象となる複数の機能部による通信履歴を収集する収集部と、
前記収集された通信履歴から、前記複数の機能部間の通信接続関係を抽出する抽出部と、
前記抽出された通信接続関係において閉路が存在しなくなるように前記抽出した通信接続関係の一部を除去する閉路除去部と、
前記閉路除去部により一部が除去された通信接続関係に基づいて、前記複数の機能部に対して起動処理又は停止処理を行う際の、処理順序を決定する順序決定部と、
を備えるシステム管理装置。
【請求項２】
請求項１記載のシステム管理装置であって、
前記閉路除去部は、前記抽出した通信接続関係において各閉路を形成する通信リンクの中で、最も通信頻度が低い通信リンクを除外することを特徴とする、
システム管理装置。
【請求項３】
請求項１又は２記載のシステム管理装置であって、
前記複数の機能部は、仮想サーバを含み、
前記抽出部は、前記仮想サーバの通信部におけるポートの集中程度に基づいて、前記通信部を含む仮想サーバが送信先であるか送信元であるかを判別することを特徴とする、
システム管理装置。
【請求項４】
請求項１ないし３のいずれか１項記載のシステム管理装置であって、
前記複数の機能部を一括して起動又は停止させる際には、順序が先の機能部が全て起動又は停止を完了したことを確認してから、当該順序の機能部を起動又は停止させることを特徴とする、
システム管理装置。
【請求項５】
システム管理装置が、
管理対象となる複数の機能部による通信履歴を収集し、
前記収集された通信履歴から、前記複数の機能部間の通信接続関係を抽出し、
前記抽出した通信接続関係において閉路が存在しなくなるように前記抽出した通信接続関係の一部を除去し、
前記一部が除去された通信接続関係に基づいて、前記複数の機能部に対して起動処理又は停止処理を行う際の、処理順序を決定する、
システムの管理方法。
【請求項６】
システム管理装置に、
管理対象となる複数の機能部による通信履歴を収集させ、
前記収集された通信履歴から、前記複数の機能部間の通信接続関係を抽出させ、
前記抽出した通信接続関係において閉路が存在しなくなるように前記抽出した通信接続関係の一部を除去させ、
前記一部が除去された通信接続関係に基づいて、前記複数の機能部に対して起動処理又は停止処理を行う際の、処理順序を決定させる、
システムの管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム管理装置、システムの管理方法、及びシステムの管理プログラムに関する。
【背景技術】
【０００２】
Ｗｅｂサーバ、アプリケーションサーバ、データベースサーバ等、複数の機能部を備えるサーバ装置等において、複数の機能部を一括して起動又は停止させる場合がある。こうした機能部には、処理内容に依存関係が存在する場合があり、複数の機能部を一括して起動又は停止させる際には適切な順序で行う必要がある。適切でない順序で複数の機能部を起動又は停止させると、予期せぬエラーメッセージがモニターに出力されたり、起動された機能部が正常に機能しなかったりするからである。
【０００３】
これに関連し、互いに連携してサービスを提供する複数のアプリケーションが個別のサーバコンピュータに実装されたシステムを管理するためのアプリケーション管理プログラムが知られている。このアプリケーション管理プログラムは、処理の依頼関係に基づいて予め定義されたアプリケーションの起動順に従って、アプリケーションの起動処理又は停止処理を行うべき起動対象サーバコンピュータを選択する。また、このアプリケーション管理プログラムは、例えば、Ｗｅｂサーバ、アプリケーションサーバ、データベースサーバの順で、各アプリケーションの停止を指示するものとしている。
【０００４】
一方、通信メッセージから送信元／宛先アドレス、送信元／宛先ポート番号を抽出して相関関係の強いサーバ装置を特定し、特定されたサーバ装置で構成されるシステムを多階層システムとして特定する通信メッセージ分類プログラムが知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００６／０４３３２１号
【特許文献２】国際公開第２００９／０１１０６３号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記したアプリケーション管理プログラムでは、アプリケーションの起動順を予め定義する必要があり、処理の依頼関係等が不明である場合には、適切な順序で複数の機能部を起動又は停止させることができない。
【０００７】
上記した通信メッセージ分類プログラムでは、システムを多階層システムとして特定するため、階層構造が比較的単純なシステムについて、処理の依頼関係をある程度認識することは可能である。しかしながら、通信接続関係に閉路が存在するような複雑なネットワーク構成を有するシステムには対応することができない。
【０００８】
一つの側面では、本発明は、通信接続関係が複雑な場合でも、適切な順序で複数の機能部を起動又は停止させることを目的とする。
【課題を解決するための手段】
【０００９】
一態様のシステム管理装置は、管理対象となる複数の機能部による通信履歴を収集する収集部と、前記収集部によって収集された通信履歴から、前記複数の機能部間の通信接続関係を抽出する抽出部と、前記抽出部により抽出された通信接続関係において閉路が存在しなくなるように前記抽出した通信接続関係の一部を除去する閉路除去部と、前記閉路除去部により一部が除去された通信接続関係に基づいて、前記複数の機能部を一括して起動又は停止させる際の、起動又は停止させる順序を決定する順序決定部と、を備える。
【発明の効果】
【００１０】
一態様によれば、通信接続関係が複雑な場合でも、適切な順序で複数の機能部を起動又は停止させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例に係るサーバシステム１のシステム構成例である。
【図２】管理サーバ１００のハードウェア構成図である。
【図３】管理サーバ１００及び管理対象サーバ２００のネットワーク接続例である。
【図４】通信監視エージェント３００の機能構成例である。
【図５】通信履歴処理部３０４により生成される仮想サーバの通信履歴の一例である。
【図６】起動・停止制御部１５０の機能構成例である。
【図７】起動・停止制御部１５０により実行される全体的な処理の流れを示すフローチャートの一例である。
【図８】通信履歴受信部１５２、及び通信接続関係抽出部１５４による処理の流れを示すフローチャートの一例である。
【図９】通信接続関係抽出部１５４により生成されたグラフデータを模式的に示す図である。
【図１０】閉路除去部１５６による処理の流れを示すフローチャートの一例である。
【図１１】閉路除去部１５６による処理の流れを示すフローチャートの一例である。
【図１２】閉路除去後のグラフデータと、当該グラフデータの内容を表すテーブルデータを示す図である。
【図１３】順序決定部１５８による処理の流れを示すフローチャートの一例である。
【図１４】図１３に示す処理が行われるのに応じて閉路除去後のグラフデータとテーブルデータの内容が変化する様子を示す図である。
【図１５】図１３に示す処理が行われるのに応じて閉路除去後のグラフデータとテーブルデータの内容が変化する様子を示す図である。
【図１６】図１３に示す処理が行われるのに応じて閉路除去後のグラフデータとテーブルデータの内容が変化する様子を示す図である。
【図１７】図１３に示す処理が行われるのに応じて閉路除去後のグラフデータとテーブルデータの内容が変化する様子を示す図である。
【図１８】図１３に示す処理が行われるのに応じて閉路除去後のグラフデータとテーブルデータの内容が変化する様子を示す図である。
【図１９】図１３に示す処理が行われるのに応じて閉路除去後のグラフデータとテーブルデータの内容が変化する様子を示す図である。
【図２０】図１３に示す処理が行われるのに応じて閉路除去後のグラフデータとテーブルデータの内容が変化する様子を示す図である。
【図２１】図１３に示す処理が行われるのに応じて閉路除去後のグラフデータとテーブルデータの内容が変化する様子を示す図である。
【図２２】図１３に示す処理が行われるのに応じて閉路除去後のグラフデータとテーブルデータの内容が変化する様子を示す図である。
【図２３】全てのノードに番号Ｎが付与され、テーブルデータにおいて全てのノードがマスクされた様子を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００１３】
以下、図面を参照し、本発明のシステム管理装置、システムの管理方法、及びシステムの管理プログラムの実施例について説明する。
【００１４】
［全体構成］
図１は、本発明の一実施例に係るサーバシステム１のシステム構成例である。サーバシステム１は、管理サーバ１００と、管理対象サーバ２００とを備える。
【００１５】
管理サーバ１００は、管理対象サーバ２００と通信接続され、管理対象サーバ２００上で動作する仮想サーバ等の起動・停止制御を行う起動・停止制御部１５０を備える。起動・停止制御部１５０の具体的な処理内容については後述する。
【００１６】
管理対象サーバ２００は、例えば、クラウドサービスを提供するサーバである。管理対象サーバ２００上では、システム１（２２０）、システム２（２３０）、システム３（２４０）を制御するＶＭホスト２１０、システム４（２６０）、システム５（２７０）、システム６（２８０）を制御するＶＭホスト２５０等が動作する。
【００１７】
システム１（２２０）は、例えば、仮想サーバ２２０＃０、２２０＃１、２２０＃２、２２０＃３、…を含む。同様に、システム２（２３０）は、例えば、仮想サーバ２３０＃０、２３０＃１、２３０＃２、２３０＃３、…を含み、システム３（２４０）は、例えば、仮想サーバ２４０＃０、２４０＃１、２４０＃２、２４０＃３、…を含む。また、システム４（２６０）は、例えば、仮想サーバ２６０＃０、２６０＃１、２６０＃２、２６０＃３、…を含み、システム５（２７０）は、例えば、仮想サーバ２７０＃０、２７０＃１、２７０＃２、２７０＃３、…を含み、システム６（２８０）は、例えば、仮想サーバ２８０＃０、２８０＃１、２８０＃２、２８０＃３、…を含む。
【００１８】
各仮想サーバは、例えば、ＯＳ（オペレーティングシステム）やミドルウェアを備え、クラウドサービスを提供するためのＷｅｂサーバ、アプリケーションサーバ、データベースサーバ等として機能する。
【００１９】
また、各仮想サーバの通信履歴は、通信監視エージェント３００（「図中、「※」と表記した）によって収集される。通信監視エージェント３００が収集した各仮想サーバの通信履歴は、管理サーバ１００に送信される。詳しくは、後述する。
【００２０】
図２は、管理サーバ１００のハードウェア構成図である。管理サーバ１００は、例えば、ＣＰＵ（Central  Processing  Unit）１１０、ドライブ装置１１２、補助記憶装置１１６、メモリ装置１１８、グラフィック処理装置１２０、入力インターフェース１２２、及び通信インターフェース１２４を備える。これらの構成要素は、例えばバス１２６を介して接続されている。
【００２１】
ＣＰＵ１１０は、例えば、プログラムカウンタや命令デコーダ、各種演算器、ＬＳＵ（Load  Store  Unit）、汎用レジスタ等を有する演算処理装置としてのプロセッサである。
【００２２】
ドライブ装置１１２は、記憶媒体１１４からプログラムやデータを読み込み可能な装置である。プログラムを記録した記憶媒体１１４がドライブ装置１２に装着されると、プログラムが記憶媒体１１４からドライブ装置１１２を介して補助記憶装置１１６にインストールされる。記憶媒体１１４は、例えば、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型の記憶媒体である。また、補助記憶装置１１６は、例えば、ＨＤＤ（Hard  Disk  Drive）やフラッシュメモリである。
【００２３】
プログラムのインストールは、上記のように記憶媒体１１４を用いる他、通信インターフェース装置１２４がネットワーク１４０を介して他のコンピュータよりダウンロードし、補助記憶装置１１６にインストールすることによって行うこともできる。ネットワーク１４０は、インターネット、ＬＡＮ（Local  Area  Network）、無線ネットワーク等である。また、プログラムは、管理サーバ１００の出荷時に、予め補助記憶装置１１６やＲＯＭ（Read  Only  Memory）等に格納されていてもよい。
【００２４】
このようにしてインストール又は予め格納されたプログラムをＣＰＵ１１０が実行することにより、図２に示す態様の情報処理装置が、本実施例の管理サーバ１００として機能することができる。
【００２５】
メモリ装置１１８は、例えば、ＲＡＭ（Random  Access  Memory）やＥＥＰＲＯＭ（Electrically  Erasable  and  Programmable  Read  Only  Memory）である。
【００２６】
グラフィック処理装置１２０は、表示装置１３０に接続され、表示装置１３０が表示する画面を生成する。入力インターフェース１２２には、キーボード１３２やマウス１３４、その他の周辺機器が接続される。通信インターフェース１２４は、管理サーバ１００と管理対象サーバ２００等との間で行われる通信を制御する。
【００２７】
なお、管理対象サーバ２００のハードウェア構成は、図２に示す管理サーバ１００のハードウェア構成と同様であってもよいし、部分的に相違してもよい。
【００２８】
図３は、管理サーバ１００及び管理対象サーバ２００のネットワーク接続例である。図示するように、管理サーバ１００と管理対象サーバ２００は、ネットワーク１４０を介して接続され、管理対象サーバ２００は、インターネット等のネットワーク２９０を介して複数のユーザー端末４００に接続される。
【００２９】
ここで、通信監視エージェント３００は、例えば特許請求の範囲における「収集部」に対応し、管理サーバ１００及び通信エージェント３００は、例えば特許請求の範囲における「システム管理装置」に対応する。また、各仮想サーバは、例えば特許請求の範囲における「複数の機能部」に対応する。図１に示す構成は、管理対象となる複数の機能部がシステム管理装置によって管理される構成を例示したものに過ぎず、管理サーバ１００や管理対象サーバ２００の具体的態様については種々の変更・置換・削除等が許容される。例えば、管理サーバ１００は、管理対象サーバ２００のソフトウェア機能であってもよく、複数の機能部は、ハードウェア手段を含んでもよい。
【００３０】
［通信履歴］
通信監視エージェント３００は、監視を行っている仮想サーバの通信履歴を収集し、管理サーバ１００に送信する。
【００３１】
図４は、通信監視エージェント３００の機能構成例である。通信監視エージェント３００は、管理対象サーバ２００のＣＰＵがプログラムを実行することにより機能する機能ブロックであり、通信履歴収集部３０２と、通信履歴処理部３０４と、通信履歴送信部３０６とを備える。なお、これらの機能ブロックが明確に分離したプログラムによって実現される必要はなく、サブルーチンや関数として他のプログラムによって呼び出されるものであってもよい。
【００３２】
通信履歴収集部３０２は、例えば、監視対象とする仮想サーバが送受信するパケットをキャプチャし、ＩＰアドレス及びポート番号を取得する。通信履歴処理部３０４は、通信履歴収集部３０２が取得したＩＰアドレス及びポート番号が、自己側と相手先側を対応付けたテーブルデータ（通信履歴）を生成する。
【００３３】
図５は、通信履歴処理部３０４により生成される仮想サーバの通信履歴の一例である。仮想サーバの通信履歴は、例えば、自己のＩＰアドレス及びポート番号（図中、Local  Address）と、相手先のＩＰアドレス及びポート番号（図中、Foreign  Adress）との組み合わせにより表現される。
【００３４】
図中、「：」以降の数字がポート番号を示し、それ以前の数字がＩＰアドレスを示している。また、ＩＰアドレスが共に「127.0.0.1」すなわちループバックアドレスで示される（１）〜（６）の通信履歴は、自己が送信先であり且つ送信元である通信（自己→自己）を示している。
【００３５】
また、（７）〜（１８）の通信履歴からは、自己のポート番号が「23461」、及び「3501」に集中しているため、当該仮想サーバが受信側であることが判別される。受信側のポートは、接続の待ち受けをする性質上、ポート番号が固定されているためである。一方、当該仮想サーバに情報を送信した送信側の仮想サーバのポート番号には、予め定義されたポート番号の範囲のうち、その時点で使用されていないポート番号が順番に割り当てられるため、（７）〜（１８）の通信履歴における相手先のポート番号は、特定の番号に集中していない。
【００３６】
これに対し、（１９）〜（２２）の通信履歴からは、自己のポート番号が特定の番号に集中していないため、当該仮想サーバが送信側であることが判別される。
【００３７】
なお、通信監視エージェント３００が収集する通信履歴は、ある内容について複数回にわたって送受信が行われた通信セッションに関しても、最初の通信方向に１回の通信が行われたものとして保存される。
【００３８】
［起動・停止制御部］
以下、起動・停止制御部１５０の制御内容について説明する。図６は、起動・停止制御部１５０の機能構成例である。起動・停止制御部１５０は、ＣＰＵ１１０がプログラムを実行することにより機能する機能ブロックであり、通信履歴受信部１５２と、通信接続関係抽出部１５４と、閉路除去部１５６と、順序決定部１５８と、起動・停止実行部１６０とを備える。なお、これらの機能ブロックが明確に分離したプログラムによって実現される必要はなく、サブルーチンや関数として他のプログラムによって呼び出されるものであってもよい。
【００３９】
図７は、起動・停止制御部１５０により実行される全体的な処理の流れを示すフローチャートの一例である。本フローチャートは、例えば、管理サーバ１００が管理対象サーバ２００の各仮想サーバを一括して起動又は停止させる必要が生じたときに開始される。
【００４０】
管理サーバ１００が管理対象サーバ２００の各仮想サーバを一括して起動又は停止させる場面としては、例えば、各仮想サーバのメンテナンス等のために、管理者（人）が管理サーバ１００に対して所定のコマンドを入力した場面が想定される。
【００４１】
まず、通信接続関係抽出部１５４が、通信履歴受信部１５２が受信した通信履歴に基づき、仮想サーバ間の通信接続関係を抽出する（Ｓ４００）。
【００４２】
次に、閉路除去部１５６が、通信接続関係抽出部１５４により抽出された通信接続関係において閉路が存在しなくなるように、抽出された通信接続関係の一部を除去する処理を行う（Ｓ５００）。
【００４３】
次に、順序決定部１５８が、閉路除去部１５６により一部が除去された通信接続関係に基づいて、管理対象サーバ２００の各仮想サーバを一括して起動又は停止させる順序を決定する（Ｓ６００）。
【００４４】
そして、起動・停止実行部１６０が、順序決定部１５８により決定された順序に従って、管理対象サーバ２００の各仮想サーバを一括して起動又は停止させる処理を実行する（Ｓ７００）。
【００４５】
なお、図７に示す処理は、一括して起動又は停止させる処理の一環として連続して行われる必要はなく、例えばＳ４００〜Ｓ６００の処理が所望のタイミングで予め行われ、一括して起動又は停止させる必要が生じた際にＳ４０６の処理のみ行うものとしてもよい。
【００４６】
以下、図７に示す各ステップの処理について説明する。
【００４７】
〔通信接続関係の抽出〕
図８は、通信履歴受信部１５２、及び通信接続関係抽出部１５４による処理（図７におけるＳ４００の処理）の流れを示すフローチャートの一例である。
【００４８】
まず、通信履歴受信部１５２が、各通信監視エージェント３００から通信履歴を受信する（Ｓ４０２）。
【００４９】
次に、通信接続関係抽出部１５４が、受信した複数の通信履歴から、自己側と相手先側のＩＰアドレスが一致する通信履歴を除外する（Ｓ４０４）。
【００５０】
次に、通信接続関係抽出部１５４が、自己側のポート番号が一定回数*以上使用され、且つ相手先側のポート番号が不定である（例えば、使用回数が一定回数**未満である）通信履歴を抽出する（Ｓ４０６）。このように、通信接続関係抽出部１５４は、前述した通信履歴の性質（ポート番号の集中／分散）を利用して、各通信履歴について、自己側が受信側であるか送信側であるかを判別する。
【００５１】
係る処理によって、通信接続関係抽出部１５４は、各通信履歴から、自己側が送信先である通信履歴のみを抽出することができ、送信元と送信先の二箇所で収集された同一の通信履歴のうち一方のみを選択することができる。なお、上記一定回数*と一定回数**は異なってもよい。
【００５２】
次に、通信接続関係抽出部１５４が、ポート番号、及び送信元のＩＰアドレス毎に、通信回数を算出する（Ｓ４０８）。係る処理によって、送信先のポート番号と送信元のＩＰアドレスの組み合わせに対し、通信回数が付与されたデータが生成される。
【００５３】
そして、通信接続関係抽出部１５４は、送信先のポート番号をＩＰアドレス毎に集約し、送信先のＩＰアドレスと送信元のＩＰアドレスの組み合わせに対し、通信回数が付与されたデータ（グラフデータ）を生成する（Ｓ４１０）。
【００５４】
図９は、通信接続関係抽出部１５４により生成されたグラフデータを模式的に示す図である。図９において、Monitor、Gateway、Web、AP、DB等は、管理対象サーバ２００上で動作する各仮想サーバを、その機能に応じて模式的に示したものであり、管理対象サーバ２００内で行われる通信主体（ノード）を示している。なお、Monitorは、各仮想サーバの状態を監視する機能等を有する仮想サーバである。また、Gatewayは、プロトコル変換等の機能を有する仮想サーバであり、例えばクラウドサービスを受けるユーザーから受信したデータを各仮想サーバに転送する。また、Webは、ウエブサーバとして機能する仮想サーバであり、APは、アプリケーションサーバとして機能する仮想サーバであり、DBは、データベースサーバとして機能する仮想サーバである。
【００５５】
図９では、通信主体（ノード）である各仮想サーバに、Ａ〜Ｏのアルファベット符号を付した。図中、矢印は通信方向を示しており、図示を省略したが、各矢印について通信回数のデータが付与されている。
【００５６】
〔閉路の除去〕
閉路除去部１５６は、通信接続関係抽出部１５４により生成されたグラフデータに存在する閉路を抽出し、閉路が存在しなくなるように一部のリンクを除去する処理を行う。以下、通信主体のことを単にノードと称し、ノード間の通信を示す、方向及び通信回数付きの接続要素をリンクと称する。
【００５７】
閉路とは、あるノードから次ノードを辿って行った結果、ループ状に最初のノードに到達するような通信経路を意味する。このような閉路を除去するのは、閉路が存在すると主な通信方向を特定することができず、適正な起動・停止順序を自動的に決定することができないからである。
【００５８】
図１０、１１は、閉路除去部１５６による処理（図７におけるＳ５００の処理）の流れを示すフローチャートの一例である。
【００５９】
まず、閉路除去部１５６は、全てのノードを「Unvisited」にマークする（Ｓ５０２）。
【００６０】
次に、閉路除去部１５６は、「Unvisited」にマークされたノードを一つ選び、手続きＤＦＳ（図１１で示されるサブルーチン）を呼び出す（Ｓ５０４）。
【００６１】
手続きＤＦＳが終了すると、閉路除去部１５６は、「Unvisited」にマークされたノードが存在するか否かを判定し、存在する場合にはＳ５０２に戻り、存在しない場合には本フローチャートを終了する。
【００６２】
以下、図１１を用いて、手続きＤＦＳの処理内容について説明する。手続きＤＦＳが呼び出されると、閉路除去部１５６は、選択されたノードを「Visiting」にセットする（Ｓ５５０）。
【００６３】
次に、閉路除去部１５６は、次ノードのうち、状態がVisited以外のノードが存在しないか否か、すなわち、探索が終わっていない次ノードが存在するかどうかを判定する（Ｓ５５２）。次ノードとは、その時点で「選択」されているノードを発信元とした場合に発信先に該当するノードであり、該当するノードが複数存在する場合にはランダムに選択してよい。
【００６４】
探索が終わっていない次ノードが存在しない場合、閉路除去部１５６は、選択されたノードを「Visited」にセットする（Ｓ５５４）。次に、閉路除去部１５６は、呼び出し元へ戻る（Ｓ５５６）。
【００６５】
一方、閉路除去部１５６は、探索が終わっていない次ノードが存在する場合、次ノードを選択する（Ｓ５５８）。
【００６６】
次に、閉路除去部１５６は、当該次ノードが「Unvisited」にマークされているか否かを判定する（Ｓ５６０）。
【００６７】
次ノードが「Unvisited」にマークされている場合、閉路除去部１５６は、「Unvisited」にマークされたノードに対して、再帰的に手続きＤＦＳを呼び出す（Ｓ５６２）。これにより、閉路除去部１５６は、選択されたノードを接続元としてもつノードの探索を行う。
【００６８】
次に、閉路除去部１５６は、当該次ノードが「Visiting」にマークされているか否かを判定する（Ｓ５６４）。
【００６９】
次ノードが「Visiting」にマークされている場合、閉路除去部１５６は、「Visiting」にマークされたノード（先に選択されたノードと当該次ノードを含む）が形成する閉路を抽出し、閉路除去部１５６は、抽出した閉路を形成するリンクの中で、最も通信回数が少ないリンクをグラフデータから除去する（Ｓ５６６）。
【００７０】
そして、閉路除去部１５６は、グラフ中のすべての「Visiting」としてマークされたノードを「Unvisited」にマークし、一旦手続きＤＦＳを抜け、図１０で示されるサブルーチンに戻る。閉路を除去すると、グラフの状態が変化するためである。
【００７１】
係る処理によって、通信接続関係抽出部１５４により生成されたグラフデータにおいて、閉路が存在しなくなるように一部のリンクが除去されることになる。これによって、管理対象サーバ２００の各仮想サーバを一括して起動又は停止させる順序を決定するのに適した、閉路除去後のグラフデータを得ることができる。
【００７２】
図１２は、図９に示すグラフデータから閉路除去部１５６によって閉路が除去された、閉路除去後のグラフデータと、当該グラフデータの内容を表すテーブルデータを示す図である。図中、例えば、行ラベル「Ａ」、列ラベル「Ｃ」の欄に「１」が格納されているのは、ノードＡからノードＣに向けたリンクが存在することを示している。閉路除去部１５６は、図１２に示す形式のデータを、メモリ装置１１８等に格納しておく。
【００７３】
なお、閉路除去に関する処理の内容は上記に限定されず、例えば強連結成分分解等を用いて処理を行ってもよい。
【００７４】
〔順序決定〕
順序決定部１５８は、閉路除去後のグラフデータに基づき、管理対象サーバ２００の各仮想サーバを一括して起動又は停止させる順序を決定する。以下、管理対象サーバ２００の各仮想サーバを一括して停止させる順序を決定する処理について説明する。一括して起動させる順序については、その逆の順序とすればよい。
【００７５】
図１３は、順序決定部１５８による処理の流れを示すフローチャートの一例である。
【００７６】
まず、順序決定部１５８は、閉路除去後のグラフデータから、送信先となっていない全てのノードに番号Ｎを付与する（Ｓ６０２）。番号Ｎは、例えば、初期値１から順に、１ずつインクリメントされる番号である。送信先となっていないノードは、図１３に示すテーブルデータにおいて「１」が格納されていない列のラベルとなっているノードであるため、このテーブルデータを参照して判別することができる。
【００７７】
次に、順序決定部１５８は、番号Ｎを付与したノードと、番号Ｎが付与されたノードに接続されたリンクを、閉路除去後のグラフデータから除去する（Ｓ６０４）。ここで、除去されたノードとリンク、付与された番号に関するデータは、閉路除去後のグラフデータとは別のデータとしてメモリ装置１１８等に格納されてよい。また、順序決定部１５８は、除去されたことを示すフラグ等を閉路除去後のグラフデータに付与して、ノードや番号に関するデータを存置させ、「仮想的に」ノードやリンクを除去してもよい。
【００７８】
次に、順序決定部１５８は、全てのノードに番号が付与されているか否かを判定する（Ｓ６０６）。順序決定部１５８は、全てのノードに番号が付与されていない場合、番号をインクリメントして（Ｓ６０８）Ｓ６０２に戻り、全てのノードに番号が付与されている場合、本フローチャートを終了する。
【００７９】
図１４〜２２は、図１３に示す処理が行われるのに応じて閉路除去後のグラフデータとテーブルデータの内容が変化する様子を示す図である。
【００８０】
図１４は、図１２に示す閉路除去後のグラフデータ及びテーブルデータに対し、まずノードＡ、Ｂに番号「１」が付与された様子を示す図である。図示するように、テーブルデータの列ラベル「Ａ」、「Ｂ」の列には「１」が格納されていないため、ノードＡ、Ｂに番号「１」が付与されることになる。
【００８１】
図１５は、ノードＡ、Ｂ、及びこれらに接続されたリンクが、閉路除去後のグラフデータから除去された様子を示す図である。以降、除去されたノードＡ、Ｂは、テーブルデータにおいてマスクされる（図中、網掛けで示す）。
【００８２】
図１６は、図１５に示す閉路除去後のグラフデータ及びテーブルデータに対し、ノードＣ、Ｄ、Ｊに番号「２」が付与された様子を示す図である。図示するように、ノードＡ、Ｂがマスクされたテーブルデータにおいて、列ラベル「Ｃ」、「Ｄ」、「Ｊ」の列には「１」が格納されていないため、ノードＣ、Ｄ、Ｊに番号「２」が付与されることになる。
【００８３】
図１７は、ノードＣ、Ｄ、Ｊ及びこれらに接続されたリンクが、閉路除去後のグラフデータから除去された様子を示す図である。以降、除去されたノードＡ、Ｂ、Ｃ、Ｄ、Ｊは、テーブルデータにおいてマスクされる。
【００８４】
図１８は、図１７に示す閉路除去後のグラフデータ及びテーブルデータに対し、ノードＥ、Ｆ、Ｇ、Ｈに番号「３」が付与された様子を示す図である。図示するように、ノードＡ、Ｂ、Ｃ、Ｄ、Ｊがマスクされたテーブルデータにおいて、列ラベル「Ｅ」、「Ｆ」、「Ｇ」、「Ｈ」の列には「１」が格納されていないため、ノードＥ、Ｆ、Ｇ、Ｈに番号「３」が付与されることになる。
【００８５】
図１９は、ノードＥ、Ｆ、Ｇ、Ｈ及びこれらに接続されたリンクが、閉路除去後のグラフデータから除去された様子を示す図である。以降、除去されたノードＡ〜Ｈ、Ｊは、テーブルデータにおいてマスクされる。
【００８６】
図２０は、図１９に示す閉路除去後のグラフデータ及びテーブルデータに対し、ノードＫ、Ｌに番号「４」が付与された様子を示す図である。図示するように、ノードＡ〜Ｈ、Ｊがマスクされたテーブルデータにおいて、列ラベル「Ｋ」、「Ｌ」の列には「１」が格納されていないため、ノードＫ、Ｌに番号「４」が付与されることになる。
【００８７】
図２１は、ノードＫ、Ｌ及びこれらに接続されたリンクが、閉路除去後のグラフデータから除去された様子を示す図である。以降、除去されたノードＡ〜Ｈ、Ｊ〜Ｌは、テーブルデータにおいてマスクされる。
【００８８】
図２２は、図２１に示す閉路除去後のグラフデータ及びテーブルデータに対し、ノードＩ、Ｍ、Ｎに番号「５」が付与された様子を示す図である。図示するように、ノードＡ〜Ｈ、Ｊ〜Ｌがマスクされたテーブルデータにおいて、列ラベル「Ｉ」、「Ｍ」、「Ｎ」の列には「１」が格納されていないため、ノードＩ、Ｍ、Ｎに番号「５」が付与されることになる。
【００８９】
その後、最後に残ったノードＯに、番号「６」が付与される。
【００９０】
図２３は、全てのノードに番号Ｎが付与され、テーブルデータにおいて全てのノードがマスクされた様子を示す図である。
【００９１】
係る処理によって、適切な順序で仮想サーバが一括して起動又は停止されるため、予期せぬエラーメッセージが出力されたり、起動された機能部が正常に機能しなかったりすることを抑制することができる。
【００９２】
〔一括起動・停止の実行〕
起動・停止実行部１６０は、順序決定部１５８により決定された順序に従って、管理対象サーバ２００の各仮想サーバを一括して起動又は停止させる処理を実行する。図１３に示すように、送信「先」となっていないノードから順に小さい番号を付与する場合、決定される順序は停止順として用いられるべきものであり、起動順については番号が大きい順に行えばよい。この逆に、送信「元」となっていないノードから順に小さい番号を付与する場合、決定される順序は起動順として用いられるべきものであり、停止順については番号が大きい順に行えばよい。
【００９３】
起動・停止実行部１６０は、仮想サーバを一括して起動させる際には、同じ番号が付与された仮想サーバがすべて起動したことを確認してから、次の番号が付与された仮想サーバの起動に移行する。起動完了の監視方法としては、ＯＳの起動とサービスの起動にタイムラグがある可能性があるため、例えば、起動するべき仮想サーバのポート番号に対して接続確認を行う。
【００９４】
また、起動・停止実行部１６０は、仮想サーバを一括して停止させる際には、同じ番号が付与された仮想サーバがすべて停止したことを確認してから、次の番号が付与された仮想サーバの停止に移行する。停止完了の監視方法としては、例えば、例えば、管理対象サーバのＶＭホストの機能を用いて監視する方法が考えられる。
【００９５】
［まとめ］
以上説明した本発明の実施例である管理サーバ１００によれば、閉路除去部１５６が、グラフデータにおいて閉路が存在しなくなるように一部のリンクを除去し、閉路除去後のグラフデータに基づいて複数の機能部（仮想サーバ）を一括して起動又は停止させる。この結果、管理サーバ１００は、管理対象サーバ２００における通信接続関係が複雑な場合でも、適切な順序で複数の機能部を起動又は停止させることができる。
【００９６】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【００９７】
以上の説明に関し、さらに以下の項を開示する。
（付記１）
管理対象となる複数の機能部による通信履歴を収集する収集部と、
前記収集された通信履歴から、前記複数の機能部間の通信接続関係を抽出する抽出部と、
前記抽出された通信接続関係において閉路が存在しなくなるように前記抽出した通信接続関係の一部を除去する閉路除去部と、
前記閉路除去部により一部が除去された通信接続関係に基づいて、前記複数の機能部に対して起動処理又は停止処理を行う際の、処理順序を決定する順序決定部と、
を備えるシステム管理装置。
（付記２）
付記１記載のシステム管理装置であって、
前記閉路除去部は、前記抽出した通信接続関係において各閉路を形成する通信リンクの中で、最も通信頻度が低い通信リンクを除外することを特徴とする、
システム管理装置。
（付記３）
付記１又は２記載のシステム管理装置であって、
前記複数の機能部は、仮想サーバを含み、
前記抽出部は、前記仮想サーバの通信部におけるポートの集中程度に基づいて、前記通信部を含む仮想サーバが送信先であるか送信元であるかを判別することを特徴とする、
システム管理装置。
（付記４）
付記１ないし３のいずれか１項記載のシステム管理装置であって、
前記複数の機能部を一括して起動又は停止させる際には、順序が先の機能部が全て起動又は停止を完了したことを確認してから、当該順序の機能部を起動又は停止させることを特徴とする、
システム管理装置。
（付記５）
システム管理装置が、
管理対象となる複数の機能部による通信履歴を収集し、
前記収集された通信履歴から、前記複数の機能部間の通信接続関係を抽出し、
前記抽出した通信接続関係において閉路が存在しなくなるように前記抽出した通信接続関係の一部を除去し、
前記一部が除去された通信接続関係に基づいて、前記複数の機能部に対して起動処理又は停止処理を行う際の、処理順序を決定する、
システムの管理方法。
（付記６）
付記５記載のシステムの管理方法であって、
前記通信接続関係の一部を除去する処理において、前記抽出した通信接続関係において各閉路を形成する通信リンクの中で、最も通信頻度が低い通信リンクを除外することを特徴とする、
システムの管理方法。
（付記７）
付記５又は６記載のシステムの管理方法であって、
前記複数の機能部は、仮想サーバを含み、
前記通信接続関係を抽出する処理において、前記仮想サーバの通信部におけるポートの集中程度に基づいて、前記通信部を含む仮想サーバが送信先であるか送信元であるかを判別することを特徴とする、
システムの管理方法。
（付記８）
付記５ないし７のいずれか１項記載のシステムの管理方法であって、
前記複数の機能部を一括して起動又は停止させる際には、順序が先の機能部が全て起動又は停止を完了したことを確認してから、当該順序の機能部を起動又は停止させることを特徴とする、
システムの管理方法。
（付記９）
システム管理装置に、
管理対象となる複数の機能部による通信履歴を収集させ、
前記収集された通信履歴から、前記複数の機能部間の通信接続関係を抽出させ、
前記抽出した通信接続関係において閉路が存在しなくなるように前記抽出した通信接続関係の一部を除去させ、
前記一部が除去された通信接続関係に基づいて、前記複数の機能部に対して起動処理又は停止処理を行う際の、処理順序を決定させる、
システムの管理プログラム。
（付記１０）
付記９記載のシステムの管理プログラムであって、
前記通信接続関係の一部を除去させる処理において、前記抽出した通信接続関係において各閉路を形成する通信リンクの中で、最も通信頻度が低い通信リンクを除外させることを特徴とする、
システムの管理プログラム。
（付記１１）
付記９又は１０記載のシステムの管理プログラムであって、
前記複数の機能部は、仮想サーバを含み、
前記通信接続関係を抽出する処理において、前記仮想サーバの通信部におけるポートの集中程度に基づいて、前記通信部を含む仮想サーバが送信先であるか送信元であるかを判別させることを特徴とする、
システムの管理プログラム。
（付記１２）
付記９ないし１１のいずれか１項記載のシステムの管理方法であって、
前記複数の機能部を一括して起動又は停止させる際には、順序が先の機能部が全て起動又は停止を完了したことを確認してから、当該順序の機能部を起動又は停止させることを特徴とする、
システムの管理プログラム。
【符号の説明】
【００９８】
１      サーバシステム
１００  管理サーバ
１５０  起動・停止制御部
１５２  通信履歴受信部
１５４  通信接続関係抽出部
１５６  閉路除去部
１５８  順序決定部
１６０  起動・停止実行部
２００  管理対象サーバ
２２０＃０〜＃３、２３０＃０〜＃３、２４０＃０〜＃３、２６０＃０〜＃３、２７０＃０〜＃３、２８０＃０〜＃３  仮想サーバ
３００  通信監視エージェント
３０２  通信履歴収集部
３０４  通信履歴処理部
３０６  通信履歴送信部
【図１】
2014010772.tif 000003
【図２】
2014010772.tif 000004
【図３】
2014010772.tif 000005
【図４】
2014010772.tif 000006
【図５】
2014010772.tif 000007
【図６】
2014010772.tif 000008
【図７】
2014010772.tif 000009
【図８】
2014010772.tif 000010
【図９】
2014010772.tif 000011
【図１０】
2014010772.tif 000012
【図１１】
2014010772.tif 000013
【図１２】
2014010772.tif 000014
【図１３】
2014010772.tif 000015
【図１４】
2014010772.tif 000016
【図１５】
2014010772.tif 000017
【図１６】
2014010772.tif 000018
【図１７】
2014010772.tif 000019
【図１８】
2014010772.tif 000020
【図１９】
2014010772.tif 000021
【図２０】
2014010772.tif 000022
【図２１】
2014010772.tif 000023
【図２２】
2014010772.tif 000024
【図２３】
2014010772.tif 000025