(57)【特許請求の範囲】
【請求項１】
クライアントと、前記クライアントにサービスを提供するサーバと、前記クライアント及び前記サーバと接続される管理サーバとを備えるサーバ構成管理システムであって、
前記システムは、さらに、前記サーバの起動又は停止等の運用を変更する運用サーバを備え、
前記運用サーバは、前記サーバが起動しているか否かを示す運用情報を保持し、
前記クライアントは、通信制御部を介して、前記サーバに前記サービスの提供を要求し、
前記通信制御部は、前記クライアントからの要求を、前記サーバに送信し、
前記サーバは、
前記サーバが提供するサービスの情報を含む構成情報を保持し、
前記クライアントからの要求に従って、前記クライアントに前記サービスを提供し、
前記クライアントは、
前記サービスが提供される際のサービス品質を示す品質情報を測定し、
前記測定された品質情報を、前記管理サーバに送信し、
前記管理サーバは、
前記サーバから、前記構成情報を取得し、
前記運用サーバから、前記運用情報を取得し、
前記サービスを提供するよう前記サーバに要求し、
前記サービスが提供される際のサービス品質を示す品質情報を測定し、
前記クライアントから送信された品質情報と、前記サーバから取得した構成情報と、前記管理サーバによって測定された品質情報と、前記運用サーバから取得した運用情報と、管理者によって与えられた選択基準とに基づいて、前記クライアントへのサービスの提供に適する前記サーバを選択し、
前記選択されたサーバを示す情報を、前記通信制御部に送信することを特徴とするサーバ構成管理システム。
【請求項２】
前記管理サーバは、前記サービスの提供により発生する料金を示す課金情報を、保持し、
前記クライアントから送信された品質情報と、前記サーバから取得した構成情報と、前記課金情報と、前記管理サーバによって測定された品質情報と、前記運用サーバから取得した運用情報と、前記与えられた選択基準とに基づいて、前記クライアントへのサービスの提供に適する前記サーバを選択することを特徴とする請求項１に記載のサーバ構成管理システム。
【請求項３】
前記管理サーバは、
前記クライアントから送信された品質情報と、前記サーバから取得した構成情報と、前記課金情報と、前記管理サーバによって測定された品質情報と、前記運用サーバから取得した運用情報と、前記与えられた選択基準とに基づいて、起動又は停止すべき前記サーバを選択し、
前記運用サーバに、前記選択されたサーバの起動又は停止を指示することを特徴とする請求項２に記載のサーバ構成管理システム。
【請求項４】
前記システムは、データを格納する複数のストレージを備え、
前記各サーバは、前記複数のストレージにアクセスでき、
前記管理サーバは、
前記クライアントから送信された品質情報と、前記サーバから取得した構成情報と、前記課金情報と、前記管理サーバによって測定された品質情報と、前記運用サーバから取得した運用情報と、前記与えられた選択基準とに基づいて、前記ストレージに格納されたデータのうち、他の前記ストレージに移動すべきデータを選択し、
前記運用サーバに、前記選択されたデータの移動を指示することを特徴とする請求項２又は３のいずれかに記載のサーバ構成管理システム。
【請求項５】
前記サーバは、前記クライアントからの要求に従って、前記サービスを提供する際に、使用されるシステム内のリソースの情報を測定し、
前記測定されたリソースの情報を前記クライアントに送信し、
前記クライアントは、前記クライアントによって測定された品質情報に、前記サーバから送信されたリソースの情報を加えることを特徴とする請求項１から４のいずれかに記載のサーバ構成管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ及びクライアントを含むシステムを管理する、サーバ構成管理システムに関する。
【背景技術】
【０００２】
従来の情報システムは、ＷＥＢサーバ又はアプリケーションサーバを一つのデータセンタ内に設置し、組織などの内部ネットワーク（イントラネット）を介して、端末から利用するのが一般的であった。近年、サーバ又は仮想サーバを用いて実現されたＷＥＢサーバ又はアプリケーションサーバを、データセンタ内部に多数設置し、インターネットなどのネットワークを介して遠隔地から利用する情報システムが一般的になっている。
【０００３】
近年の情報システムにおいて、同じサービスを提供するＷＥＢサーバ又はアプリケーションサーバへ多量のアクセスがある場合、一般的に、負荷分散の機構がネットワーク上に設置される。そして、これによって、複数のＷＥＢサーバ又はアプリケーションサーバが、複数の端末から来る複数のリクエストを処理するように負荷を分散する。
【０００４】
これまで、サービスを提供するためのサーバ（サービス提供サーバ）を複数備えたサービス提供サイトが、端末からの求めに応じてサービスを提供するネットワークにおいて、サービス提供サーバの負荷を分散する装置が提案されている（例えば、特許文献１参照）。
【０００５】
特許文献１に示された装置は、各サービス提供サーバの負荷状況を検出する負荷分散処理部と、サービス提供サーバの各ＩＰアドレスをサービス提供サイトのドメイン名に対応させて記憶するデータベースとを備える。
【０００６】
また、特許文献１に示された装置は、ＩＰアドレス通知手段を持つ。ＩＰアドレス通知手段によって、特許文献１に示された装置は、端末からドメイン名を指定されてサービス情報の提供をリクエストされると、前述の負荷分散処理部によって検出された各サービス提供サーバの負荷状況に基づいて、負荷がより軽いサービス提供サーバのＩＰアドレスを取得する。そして、取得されたサービス提供サーバのＩＰアドレスを当該端末に通知する。
【０００７】
また、運用方針及び負荷状況に基づいて仮想サーバのスケールアップ又はスケールアウトを動的に行なうリソース調整システムが提案されている（例えば、特許文献２参照）。特許文献２に示されたリソース調整装置は、複数のサーバから各仮想サーバの負荷状況を収集し、ある仮想サーバの高負荷状態を検出すると、高負荷状態にある仮想サーバと同じアプリケーションを提供する仮想サーバ群に、所属しない仮想サーバから削減可能な総リソース量を、現在の負荷状況に基づいて算出する。
【０００８】
さらに、特許文献２に示されたリソース調整装置は、仮想サーバ群のリソース配分がスケールアップ又はスケールアウトのいずれであるかを判定し、スケールアップの場合にリソースを集中的に投下する仮想サーバがいずれであるかに基づいて、合計の追加リソース量が、他の仮想サーバ群から、削減可能な総リソース量となるように、仮想サーバ群に所属する複数の仮想サーバへ追加するリソース量の配分を決定した後、仮想サーバの再配置と、リソースの削減及び追加を指示する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００―２９３４９６号公報
【特許文献２】特開２０１０―０３３２９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
近年、ＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）、ＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）と呼ばれるような、クラウド基盤を提供するサービスが普及している。これまでＷＡＮ又はＬＡＮに構成されたイントラネット上で提供されていた情報システムを、前述のクラウド基盤提供サービスを利用して、構築する例が増えている。
【００１１】
クラウド基盤提供サービスを利用して情報システムを構築する場合、情報システムの利用者は、クラウド基盤提供サービスが提供する、サーバ、仮想サーバ、ネットワーク、及び、ストレージ等のサービス提供品質を吟味し、その全部又は一部を利用することによって、情報システムを構築する。しかし、クラウド基盤提供サービスが提供するサーバ、仮想サーバ、ネットワーク、及び、ストレージの性能は、他のユーザの利用状況などによって変化することが多い。そのため、情報システムを利用する利用者が、一定のサービス提供品質を維持しながら利用しようとしても、利用者の体感品質が悪化する可能性がある。
【００１２】
また、クラウド基盤提供サービスの利用料は、サービス提供ベンダの競争などが原因で、一定ではない。一度、あるクラウド基盤提供サービスを利用して情報システムを構築したとしても、任意の時間が経過すると、別のクラウド基盤提供サービスを利用して情報システムを構成したほうが、利用者の利用料を低減できる場合がある。
【００１３】
このように、動的にサービス品質及び利用量が変動する情報システムを構築する際に、その時々に応じて、利用者のサービスを利用する品質（レスポンスタイムなどの利用者のサービス利用の体感品質、情報システムのセキュリティ、情報システムの可用性、及び、信頼性等）を維持又は向上させながら、情報システムの利用料を維持又は低減させることができる情報システムの構築法が求められている。
【００１４】
前述の特許文献１に開示された技術は、複数のサーバ間の負荷分散を、負荷状況に従って制御することが出来るが、利用者の体感品質、セキュリティ、可用性、及び、信頼性等を維持又は向上させながら、情報システムの利用量を維持又は低減させるように負荷分散装置を構成することは不可能であった。
【００１５】
また、前述の特許文献２に開示された技術は、運用方針及び負荷状況に基づいて仮想サーバのスケールアップ又はスケールアウトを動的に行ない、仮想サーバを利用した情報システムのリソースを調整できるが、動的に変更する利用者の体感品質及び情報システムの利用量の試算結果を利用して、情報システムの構成を管理できない。
【００１６】
本発明は、前述した問題を解決すべくなされたものであり、本発明の目的は、動的にサービス品質及び利用量が変動する情報システムを構築するための基盤を利用し、情報システムを構築する際に、その時々に応じて、利用者のサービスを利用する品質（レスポンスタイムなどの利用者のサービス利用の体感品質、情報システムのセキュリティ、情報システムの可用性、及び、信頼性等）を維持又は向上させながら、情報システムの利用量を維持又は低減させるサーバ管理のシステムを提供することである。
【課題を解決するための手段】
【００１７】
本発明の代表的な一形態によると、クライアントと、前記クライアントにサービスを提供するサーバと、前記クライアント及び前記サーバと接続される管理サーバとを備えるサーバ構成管理システムであって、前記システムは、さらに、前記サーバの起動又は停止等の運用を変更する運用サーバを備え、前記運用サーバは、前記サーバが起動しているか否かを示す運用情報を保持し、前記クライアントは、通信制御部を介して、前記サーバに前記サービスの提供を要求し、前記通信制御部は、前記クライアントからの要求を、前記サーバに送信し、前記サーバは、前記サーバが提供するサービスの情報を含む構成情報を保持し、前記クライアントからの要求に従って、前記クライアントに前記サービスを提供し、前記クライアントは、前記サービスが提供される際のサービス品質を示す品質情報を測定し、前記測定された品質情報を、前記管理サーバに送信し、前記管理サーバは、前記サーバから、前記構成情報を取得し、前記運用サーバから、前記運用情報を取得し、前記サービスを提供するよう前記サーバに要求し、前記サービスが提供される際のサービス品質を示す品質情報を測定し、前記クライアントから送信された品質情報と、前記サーバから取得した構成情報と、前記管理サーバによって測定された品質情報と、前記運用サーバから取得した運用情報と、管理者によって与えられた選択基準とに基づいて、前記クライアントへのサービスの提供に適する前記サーバを選択し、前記選択されたサーバを示す情報を、前記通信制御部に送信する。
【発明の効果】
【００１８】
本発明の一実施形態によると、クラウド基盤提供サービスのような動的にサービス品質等が変動する情報システムにおいて、利用者のサービスを利用する品質を維持又は向上させながら、情報システムの利用料を維持又は低減させることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態のサーバ構成管理システムの構成を示すブロック図である。
【図２】本発明の第１の実施形態のクライアントのハードウェア構成を示すブロック図である。
【図３】本発明の第１の実施形態のサーバのハードウェア構成を示すブロック図である。
【図４】本発明の第１の実施形態のクライアントから送られたリクエストに、サーバが行う処理を示すシーケンス図である。
【図５】本発明の第１の実施形態の測定結果の具体例を示す説明図である。
【図６】本発明の第１の実施形態のクライアントへの性能測定部の登録と、登録結果の管理サーバへの送信との手順を示すシーケンス図である。
【図７】本発明の第２の実施形態のサーバ構成管理システムの構成を示すブロック図である。
【図８】本発明の第２の実施形態の、サーバと仮想サーバとを示すブロック図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について図面を用いて説明する。各図面において、同一の符号が付されている要素は同一の機能を有する。
【００２１】
（第１の実施形態）
（構成）
図１は、本発明の第１の実施形態のサーバ構成管理システムの構成を示すブロック図である。
【００２２】
本実施形態のサーバ構成管理システムは、クライアント１００、管理サーバ２００、運用サーバ３００、及び、複数のデータセンタ４００（４００−１、４００−２）を備え、各々の要素は、ネットワーク６００を介して接続される。
【００２３】
クライアント１００は、本実施形態のサーバ構成管理システムに含まれるデータセンタ４００を利用する利用者が使用する端末である。クライアント１００は、内部に性能測定部１２０、ストレージ１４０、通信制御部１１０−１、及び、通信プログラム１３０を備える。図１に示すクライアント１００は一つであるが、本実施形態のサーバ構成管理システムには、複数のクライアント１００が備わってよい。
【００２４】
通信制御部１１０−１は、利用者が、クライアント１００上で動作するアプリケーションを介して送信するリクエストを、各サーバ４２０に振り分ける機能を持つ。通信制御部１１０−１は、例えば、クライアント１００からアクセスする速度が最も早いサーバ４２０を選択することによって、サーバ４２０へのアクセス性能を向上させる。また、例えば、動作していないサーバ４２０には、クライアント１００からのリクエストを割り振らないことによって、サーバ４２０群の冗長性を確保する。
【００２５】
通信制御部１１０−１は、管理サーバ２００に備わる通信制御部１１０−２、データセンタ４００−１に備わる通信制御部１１０−３、及び、データセンタ４００−２に備わる通信制御部１１０−４と同じ通信制御部１１０である。通信制御部１１０によるリクエストのサーバ４２０への振り分け方法、すなわち、サーバ４２０の選択方法は、後述する。
【００２６】
ストレージ１４０は、データを格納する装置であり、測定結果１４１を格納する。性能測定部１２０は、サーバ４２０との通信の性能を示す情報を収集するためのプログラムである。通信プログラム１３０は、クライアント１００からサーバ４２０へ送信されるリクエストを、通信制御部１１０に送るためのプログラムである。なお、通信制御部１１０−１は、プログラムによってクライアント１００の内部に実装されてもよいし、物理的な装置によってクライアント１００の外部に実装されてもよい。
【００２７】
管理サーバ２００は、通信制御部１１０−２、サービス性能集計部２２０、構成管理部２３０、及び、ストレージ２４０を備える。管理サーバ２００は、クライアント１００がサーバ４２０を効率よく利用できるように、クライアント１００若しくはデータセンタ４００における通信制御部１１０、又は、運用サーバ３００に、選択すべきサーバ４２０を指示する。
【００２８】
通信制御部１１０−２は、前述の通り、通信制御部１１０−１と同じ機能を持つ。ストレージ２４０は、データを格納する装置であり、測定情報２４１、構成情報２４２、課金情報２４３、及び、テスト情報２４４を保持する。
【００２９】
サービス性能集計部２２０は、クライアント１００から送られるサーバ４２０との通信に関する性能を示す情報を収集するためのプログラムである。構成管理部２３０は、サーバ４２０から送られる、サーバ４２０への通信及びサーバ４２０に関する情報を収集し、サーバ４２０を選択するための処理を行うためのプログラムである。通信制御部１１０−２は、プログラムによって管理サーバ２００の内部に実装されてもよいし、物理的な装置によって管理サーバ２００の外部に実装されてもよい。
【００３０】
運用サーバ３００は、サーバ４２０、及び、サーバ４２０が提供するサービスを管理するためのサーバである。図１に示す運用サーバ３００は、管理サーバ２００と異なる装置によって実装されるが、本実施形態の運用サーバ３００の機能は、管理サーバ２００に実装されてもよい。
【００３１】
データセンタ４００は、通信制御部１１０−３、サーバ４２０、及び、ストレージ４４０を備える。図１に示すサーバ構成管理システムは、二つのデータセンタ４００−１、４００−２を備えるが、本実施形態のサーバ構成管理システムは、いくつのデータセンタ４００を備えてもよい。
【００３２】
通信制御部１１０−３及び１１０−４は、通信制御部１１０−１及び１１０−２と同じ機能を持つ。サーバ４２０は、データセンタ４００に複数備わり、管理サーバ２００によって管理される。図１に示すデータセンタ４００−１は、二つのサーバ４２０−１、４２０−２を備え、データセンタ４００−２は、二つのサ−バ４２０−３、４２０−４を備える。なお、本実施形態のデータセンタ４００は、いくつのサーバ４２０を備えてもよい。
【００３３】
ストレージ４４０（４４０−１、４４０−２）は、データを格納するための装置である。サーバ４２０は、クライアント１００にサービスを提供するため、アプリケーションを実行し、アプリケーションの必要に応じて、データをストレージ４４０から取得する。
【００３４】
図１に示す通信制御部１１０−１及び通信制御部１１０−２は、クライアント１００及び管理サーバ２００に各々実装されているが、クライアント１００及び管理サーバ２００とネットワーク６００との間に備わる装置として、各々接続されてもよい。また、通信制御部１１０−１〜１１０−４は、一つの通信制御部１１０に集約されてもよい。
【００３５】
図２は、本発明の第１の実施形態のクライアント１００のハードウェア構成を示すブロック図である。
【００３６】
図１と図２とに示すクライアント１００は、同一であるが、図２は、クライアント１００の物理的な構成を示す。クライアント１００は、ＣＰＵ１０１、メモリ１０２、ストレージ１４０、ＮＩＣ（ネットワークインターフェースカード）１０３、及び、入出力装置１０４を備える。クライアント１００のそれぞれの要素は、バスによって接続される。
【００３７】
ＣＰＵ１０１が、ストレージ１４０に保存されたプログラムをメモリ１０２にロードし、ロードされたプログラムを実行することによって、性能測定部１２０及び通信プログラム１３０の機能が実現される。ＮＩＣ１０３は、メモリ１０２において処理されるプログラムが要求する通信をネットワーク６００へ送信し、ネットワーク６００からクライアント１００あてに送られた処理結果を受信する。入出力装置１０４は、処理結果を画面に表示するための装置であり、また、外部デバイスと通信するための装置である。
【００３８】
利用者は、クライアント１００を利用して、後述するサーバ４２０にリクエストを送信する。そして利用者は、クライアント１００を介して、各サーバ４２０から処理結果を受信する。この際、リクエストを送信するサーバ４２０を特定するため、通信プログラム１３０は、いずれかの通信制御部１１０にリクエストを送信する。
【００３９】
ここで、サーバ４２０の物理的な構成を説明する。
【００４０】
図３は、本発明の第１の実施形態のサーバ４２０のハードウェア構成を示すブロック図である。
【００４１】
サーバ４２０は、内部にＣＰＵ４２４、メモリ４２６、ストレージ４２５、ＮＩＣ４２８、及び、入出力装置４２７を備え、それぞれの要素がバスによって接続される。ストレージ４２５は、サーバ４２０内部に備わるストレージであり、図１に示すストレージ４４０は、サーバ４２０外部に備わるストレージである。
【００４２】
サーバ４２０は、ＮＩＣ４２８によってネットワーク６００と接続される。サーバ４２０の機能は、ストレージ４２５又は図示しない外部ストレージ４４０に保存されたプログラムをメモリ４２６にロードし、ＣＰＵ４２４によって実行することによって、実現される。アプリケーション４２９は、ＣＰＵ４２４によってメモリ４２６にロードされ、実行されるプログラムである。
【００４３】
ＮＩＣ４２８は、メモリ４２６において処理されるプログラムがリクエストする通信をネットワーク６００へ送信し、そのリクエストに対応する処理結果を受信する。入出力装置４２７は、処理結果を画面に表示するための装置であり、また、外部デバイスと通信するための装置である。
【００４４】
なお、管理サーバ２００及び運用サーバ３００のハードウェア構成は、図２に示すクライアント１００のハードウェア構成と同じく、一般的なサーバと同じである。また、クライアント１００、管理サーバ２００、運用サーバ３００は、すべて又は一部を仮想化され、一つ又は複数の計算機によって実装されてもよい。
【００４５】
（通信制御部１１０）
ここで、通信制御部１１０の機能を説明する。クライアント１００上の通信プログラム１３０（例えば、ＷＥＢブラウザなど、サーバ４２０へアクセスするためのプログラム）が、ある同一機能によって冗長化された複数のサーバ４２０へリクエストを送信するものとする。
【００４６】
通信制御部１１０は、このリクエストを通信プログラム１３０から受信するようにあらかじめネットワーク管理者によって構成される。通信制御部１１０は、クライアント１００に備わるプログラムがリクエストしたアクセス先（複数のサーバ４２０）の中から適切なサーバ４２０を選択し、選択したサーバ４２０にリクエストされた処理を割り振る。
【００４７】
通信制御部１１０は、リクエストをサーバ４２０へ割り振る方法に、サーバ４２０を選択する各種の方法を用いる。例えば、サーバ４２０を順番に選択するラウンドロビン方法、又は、接続されているコネクションが最小である接続方法を用いる。
【００４８】
リクエストの振り分けに利用されるサーバ４２０の候補は、通信制御部１１０によって管理される。通信制御部１１０は、管理サーバ２００から送信されたサーバ４２０を選択するためのサーバ４２０とサーバ４２０への経路を、ストレージ１４０、又は、通信制御部１１０の内部に保持する。
【００４９】
（運用サーバ３００）
さらに、運用サーバ３００の機能を説明する。運用サーバ３００は、サービスを管理するためのサーバである。運用サーバ３００は、サーバ４２０を含むデータセンタ４００及びネットワーク６００のリソース（例えば、サーバ４２０、サーバ４２０に備わるＣＰＵ４２４若しくはストレージ４２５等、又は、ネットワーク６００に備わる回線等）の利用状況及び稼動状況を示す運用情報を取得し、運用情報に基づいて、リソースの起動又は停止等をする。
【００５０】
例えば運用情報が、リソースがあらかじめ規定された数より多く利用されていることを示す場合、又は、あらかじめ規定された数のサーバ４２０が停止していることを示す場合、運用サーバ３００は、データセンタ４００において新たなサーバ４２０を起動させ、サーバ４２０の量を増やす。これによって、運用サーバ３００は、リソース量を調整する。
【００５１】
さらに運用サーバ３００は、リソースがあらかじめ規定された数より利用されていない場合、データセンタ４００において稼働する一部のサーバ４２０を終了させ、稼働するサーバ４２０の量を減らすことによって、電力などのコストを削減したり、サーバ４２０を稼動させるための課金量を減らしたりする。そして、これによって、運用サーバ３００は、リソース量を調整する。
【００５２】
さらに運用サーバ３００は、稼動するサーバ４２０の数の増減のみならず、サーバ４２０として利用する、ストレージの量、利用するＤＢ又はＤＢ用のサーバ４２０の数、サーバ４２０のスケールアップ（低い性能のサーバ４２０を高い性能のサーバ４２０に変更する）などの方法によって、リソース量を調整する。
【００５３】
また、運用サーバ３００は、データセンタ４００に備わるストレージ４２５及び４４０のバックアップ方法、バックアップの指示、多重化又は並列化を指示する。具体的には、ストレージ４４０間のデータの移動を指示する。
【００５４】
また、運用サーバ３００は、データセンタ４００において起動するサーバ４２０、仮想サーバのイメージ（サーバテンプレート）の変更及び管理を行う。また、データセンタ４００において動作するサーバ４２０（仮想サーバを含む）の状況を、データセンタ４００の管理ＡＰＩから取得する。
【００５５】
（クライアント１００とサーバ４２０との通信）
図４は、本発明の第１の実施形態のクライアント１００から送られたリクエストに、サーバ４２０が行う処理を示すシーケンス図である。
【００５６】
まず利用者は、特定のサービスを利用する要求を、クライアント１００に入力する（８００）。例えば、サーバ４２０が一般的なＷＥＢアプリケーションを保持する場合、クライアント１００上の通信プログラム１３０は、ＷＥＢブラウザである。この時利用者は、ブラウザ画面を起動させ、キーボードによって文字を入力したり、又は、マウスによってブラウザ画面上のボタンをクリックするなどの操作によって、利用要求をクライアント１００に入力する。
【００５７】
シーケンス８００の後、クライアント１００上の通信プログラム１３０は、通信制御部１１０にサーバ４２０へ送るべきリクエストを送信する（８０１）。通信制御部１１０は、仮想的なサーバ４２０の構成を管理している。このため、シーケンス８０１において通信制御部１１０は、自身が管理する仮想的なサーバ４２０へのリクエストを受信することができる。
【００５８】
さらに通信制御部１１０は、事前に定められた方法（後述）を用いて、リクエストを送信する宛先となるサーバ４２０を選択し、選択されたサーバ４２０にリクエストを送信する（８０２）。
【００５９】
以下、シーケンス８０２において、通信制御部１１０−１がサーバ４２０−１を選択した場合を説明する。
【００６０】
受信されたリクエストがサーバ４２０−１によって処理された後、サーバ４２０−１は、サーバ４２０−１による処理結果に、測定用の情報を付加する（８０３）。付加される測定用の情報とは、サーバ４２０−１が保持する情報である。
【００６１】
測定用の情報には、サーバ４２０−１を一意に示すサーバＩＤ、サーバ４２０−１までの経路を示す経路情報、サーバ４２０−１がリクエストを処理するために要する時間を示す処理時間、リクエストを処理した時刻を示す処理時刻、ネットワーク６００におけるスループット、リクエストに関する利用者認証情報、及び、サーバ４２０−１において発生したエラー等を示す情報などが含まれる。
【００６２】
シーケンス８０３の後、処理結果と測定用の情報とは、通信制御部１１０−１へ返信される（８０４）。通信制御部１１０−１は、クライアント１００へ処理結果と測定用の情報とを送信する（８０５）。
【００６３】
クライアント１００は、処理結果と測定用の情報とを受信した後、処理結果を画面に表示するなど、リクエストに対応する処理を行う。また性能測定部１２０は、サーバ４２０−１からクライアント１００までの経路情報、エラー情報、検証用情報、クライアント１００の情報、サーバ４２０−１にリクエストしたサービス名、アクセスしたＵＲＩ、受信したデータ量、処理時間、及び、タイムスタンプ（クライアント１００が処理を開始又は終了した時刻）などをさらに測定する。そして、クライアント１００によって測定された情報に、サーバ４２０−１から送られた測定用の情報を付加する。そして、クライアント１００によって測定された情報と、サーバ４２０−１から送られた測定用の情報とを含む測定用の情報を、測定結果１４１に格納する（８０６）。
【００６４】
ここで、測定用の情報に付加される、前述の処理時間は、サーバ４２０−１における処理時間と、クライアント１００において利用者がリクエストを送ってからその処理結果が表示されるまでの時間の両方の時間を含む。測定結果１４１の具体例は、図５において後述する。
【００６５】
性能測定部１２０によって格納された測定結果１４１は、管理者による指示若しくは管理サーバ２００からの収集指示を受信した場合、格納された情報の量があらかじめ定められた量以上となった場合、又は、あらかじめ定められた時刻となった場合などに、性能測定部１２０によって、管理サーバ２００へ送信される（８０７）。そして、性能測定部１２０によって送信された測定結果１４１は、ストレージ２４０に保持される測定情報２４１に、サービス性能集計部２２０によって格納される。
【００６６】
なお、シーケンス８０７のタイミングは、前述の他に、クライアント１００が起動若しくは終了する場合、通信プログラム１３０が起動若しくは終了する場合、又は、通信プログラム１３０があらかじめ定められた時間だけ動作した場合などでもよい。
【００６７】
また、サーバ４２０から測定用の情報が送信されない場合も、クライアント１００は、シーケンス８０６において自らが測定した測定用の情報を測定結果１４１に格納することができる。
【００６８】
管理サーバ２００は、シーケンス８０７の後、あらかじめ定められた方法によって、ストレージ２４０に保持される複数の情報のうち一部または全体に基づいて、クライアント１００によって特定のサービスが複数のサーバ４２０にリクエストされた場合における、最適なサーバ４２０を選択する（８０８）。そして、通信制御部１１０、運用サーバ３００、又は、データセンタ４００に備わる管理装置に、特定のサービスと、特定のサービスに対して選択されたサーバ４２０とを示す情報を送信する（８０９）。
【００６９】
シーケンス８０８及びシーケンス８０９によって、クライアント１００が、特定のサービスをリクエストする際、通信制御部１１０、運用サーバ３００、又は、データセンタ４００に備わる図示しない管理装置は、最適なサーバ４２０にリクエストを送信することができる。
【００７０】
前述の図４に示す処理を、管理サーバ２００が管理する複数のクライアント１００が行うことによって、あるサーバ４２０によって提供されるサービスをクライアント１００が利用する場合の条件、すなわち、測定結果１４１が、測定情報２４１に集積される。管理サーバ２００は、後述する方法によって、この測定情報２４１を利用し、通信制御部１１０を制御する。
【００７１】
通信制御部１１０は、リクエスト送信（８０２）、処理結果の返信（８０５）といった、リクエストの中継（リダイレクト）処理において、あらかじめ定められた方法によって中継（リダイレクト）する対象のサーバ４２０を決定する。通信制御部１１０は、サーバ４２０を決定する際に、決定されたサーバ４２０の応答状況、又は、負荷状況などの状態に従って、例えば、クライアント１００に「現在混雑しています」など、サーバ４２０を選択した結果、サーバ４２０の状況、又は、リクエストの処理状況などのステータスをクライアント１００に返信してもよい。
【００７２】
通信制御部１１０によって送られたステータスは、性能測定部１２０によって、測定結果１４１に含まれるステータス７１０に格納される。
【００７３】
また、複数のサーバ４２０のうち、提供するサービスの情報を、管理サーバ２００に登録されていないサーバ４２０は、シーケンス８００の処理の前に、アプリケーション４２９によって、サーバ４２０が提供するサービスの情報を管理サーバ２００に送信する（８１０）。管理サーバ２００は、アプリケーション４２９によって送信されたサービスの情報を、構成情報２４２に格納する（８２０）。
【００７４】
管理サーバ２００に備わる構成管理部２３０は、構成情報２４２を参照することによって、通信制御部１１０、運用サーバ３００、並びに、データセンタ４００に備わる図示しない管理装置に、構成を指示する。データセンタ４００に備わる図示しない管理装置は、データセンタ４００に備わるサーバ４２０及びストレージ４４０を、管理する装置である。
【００７５】
構成情報２４２は、具体的には、管理サーバ２００が管理するサーバ４２０がどのサービスを提供するかを示す情報を保持する。すなわち、前述のデータセンタ４００に備わる管理装置によって、複数のサーバ４２０が、同一のサービスを提供するサーバ群Ａとして利用者に利用されるように構成されている場合、構成情報２４２は、複数のサーバ４２０が、どのサーバ群Ａに対応するかを示す情報（対応情報）を保持する。
【００７６】
この対応情報は、サーバ４２０に関する情報が変更された際、通信制御部１１０のいずれかが起動した際、又は、あらかじめ定められた時間若しくは通信制御部１１０が起動してからあらかじめ定められた時間が経過した際に、起動した通信制御部１１０と管理サーバ２００に備わる構成管理部２３０とが、お互いに通信することによって、共有される。
【００７７】
なお、構成情報２４２には、サーバ４２０を起動するための性能（例えば、ＯＳの種類、リソース量など）、起動するＯＳ、アプリケーションのイメージ、又は、利用するストレージ４４０に含まれるデータの内容なども含まれる。これらの情報も、サーバ４２０から管理サーバ２００へシーケンス８１０において送られる。
【００７８】
いずれかの通信制御部１１０において、管理サーバ２００によって提供された対応情報と相違する内容が検出された場合、例えば、サーバ４２０が特定のサービスを提供しないことによって、通信を中継したサーバ４２０からエラー応答が返答された場合、通信制御部１１０は、構成管理部２３０に対応情報の取得を指示する。
【００７９】
そして、構成管理部２３０は、エラーが発生しているサーバ４２０の状況を運用サーバ３００、又は、データセンタ４００に備わる図示しない管理装置に問い合わせ、サーバ４２０の状況を取得する。そして、構成管理部２３０は、取得した結果を構成情報２４２に格納し、対応情報の取得を指示した通信制御部１１０に、対応情報を送信する。
【００８０】
シーケンス８２０の後、構成情報２４２が更新された管理サーバ２００は、情報が変更されたサーバ４２０に、一意なＩＤを割り当てる。そして管理サーバ２００は、割り当てたＩＤを示す情報を、情報が変更されたサーバ４２０に送信する（８３０）。送信されたＩＤは、サーバ４２０によって保持され、クライアント１００から送られたリクエストを処理する際、すなわち、シーケンス８０３において、アプリケーション４２９によって処理結果に付加される。
【００８１】
なお、管理サーバ２００は、あらかじめ課金情報２４３を保持する。課金情報２４３は、サーバ４２０、ストレージ４４０、又は、ネットワーク６００におけるリソースを利用するために必要な料金を示す情報を含む。また、課金情報２４３は、人件費、電力、及び、保守料なども含む。
【００８２】
課金情報２４３に含まれる情報は、例えば、サーバ４２０−１に備わるＣＰＵ４２４を利用するために必要な、１時間あたりの料金である。また、例えば、クライアント１００とデータセンタ４００−１とを接続するネットワーク６００を使用するための１時間あたりの料金である。
【００８３】
課金情報２４３は、あらかじめ管理者によって管理サーバ２００に入力される。また、サーバ４２０が各々の課金情報２４３を保持する場合は、図４に示すシーケンス８１０において、サーバ４２０の情報とともに、管理サーバ２００に送信されてもよい。
【００８４】
（サーバ４２０の選択方法）
ここで、前述した通信制御部１１０によるサーバ４２０を選択する方法について説明する。通信制御部１１０は、以下に示す手順によって、サーバ４２０を選択する。
【００８５】
複数のサーバ４２０が提供するサービスと、サーバ４２０との対応を示す情報は、図４に示すシーケンス８１０〜シーケンス８３０における手順によって、管理サーバ２００の構成情報２４２に格納される。また、この構成情報２４２には、前述のとおり、サーバ４２０を起動するための性能（例えば、ＯＳの種類、リソース量など）、起動するＯＳ、アプリケーションのイメージ、又は、利用するストレージ４４０に含まれるデータの内容なども含まれる。
【００８６】
管理サーバ２００は、構成情報２４２を用いることによって、サーバ４２０（仮想サーバを含む）のうち、特定のサービスを提供する複数のサーバ４２０を選択する。そして、管理サーバ２００は、複数のサーバ４２０のうち、システムとして利用できるサーバリソースの構成（例えば、サーバ４２０の種別又は数）を決定する。
【００８７】
また管理サーバ２００は、サービス性能集計部２２０を用いて、データセンタ４００に備わるサーバ４２０、及び、データセンタ４００に備わるリソースについて、性能をテストする。管理サーバ２００は、性能のテストにおいて、サービスを実際にサーバ４２０に要求し、かつ、利用する。実際にサービスを利用することによって、レスポンス性能、データ転送のスループット、及び、前述した測定結果１４１と同じ項目を含む測定情報を取得する。さらに管理サーバ２００は、取得された情報をテスト情報２４４に格納する。
【００８８】
なお、運用サーバ３００が、サーバ４２０等の性能をテストしてもよい。この場合、運用サーバ３００によって、サーバ４２０等のテスト結果が管理サーバ２００に送られ、テスト情報２４４に格納される。
【００８９】
また、前述の通り、運用サーバ３００は、サーバ４２０を含むデータセンタ４００及びネットワーク６００の運用情報を取得している。このため、管理サーバ２００は、運用サーバ３００からサーバ４２０等の運用情報を取得し、ストレージ２４０の運用情報２４５に格納する。そして、取得した運用情報２４５に従って、サーバリソースの構成を決定してもよい。
【００９０】
例えば、取得した運用情報２４５が、サービスを提供可能なサーバ４２０が停止していることを示す場合、管理サーバ２００は、サービスを提供可能な別のサーバ４２０をサーバリソースの構成に決定してもよい。
【００９１】
さらに構成管理部２３０は、前述の決定されたサーバリソースの構成によって、利用者が特定のサービスを利用する際、提供されることが期待されるサービス品質を算出する。提供されることが期待されるサービス品質は、決定されたサーバリソースの構成によってサービスを提供した場合における、決定されたサーバリソースのパターンごとに、測定情報２４１とテスト情報２４４とに基づいて、算出される。
【００９２】
構成管理部２３０は、測定情報２４１及びテスト情報２４４に格納される情報に基づいて、提供されることが期待されるサービス品質を、例えば次のように算出する。構成管理部２３０は、測定情報２４１及びテスト情報２４４に格納されるネットワーク６００の遅延と、サーバ４２０による処理時間とを加算することによって、サーバ４２０のレスポンス性能を算出する。
【００９３】
また、構成管理部２３０は、測定情報２４１及びテスト情報２４４に格納される、ネットワーク６００における通信スループット（単位時間あたりに通信されるデータ量）によって、送受信することが予想されるデータ量を除算することによって、サーバ４２０の通信完了までの時間を算出する。
【００９４】
また、構成管理部２３０は、測定情報２４１及びテスト情報２４４に格納されるいくつかのサーバ４２０における処理時間を合計することによって、サーバ４２０が処理を完了するまでの処理時間を算出する。これらの構成管理部２３０によって算出された情報を、サーバリソースの構成のパターンごとに求めることによって、構成管理部２３０は、利用者へ提供できるサービス品質を算出する。
【００９５】
また、構成管理部２３０は、前述したサーバリソースの構成によって、利用者がサービスを利用する場合に、必要となることが予想される利用コストを算出する。利用コストとは、管理サーバ２００が管理の対象とするデータセンタ４００が、所属する情報システムにおいて、発生する費用の総計である。利用コストとは、例えば、サーバ利用料、人件費、電力、ハードウェアコスト、通信費、ストレージ利用料、及び、保守料などである。
【００９６】
構成管理部２３０は、測定情報２４１とテスト情報２４４と課金情報２４３とを用いて、決定されたサーバリソースによって特定のサービスを提供した場合の、サーバリソースのパターンごとに、必要となることが予想される利用コストを算出する。
【００９７】
例えば、測定情報２４１、テスト情報２４４及び課金情報２４３など、ストレージ２４０に格納される情報に基づいて、構成管理部２３０は、必要となることが予想される利用コストを以下のように算出する。ストレージ２４０に格納される情報のうち、サーバ４２０における処理量、ＣＰＵ４２４、又は、メモリ４２６若しくはストレージ４４０の容量に対する課金料率に基づいて、クライアント１００へ提供されるサービスに関する処理の利用コストを算出する。
【００９８】
また、構成管理部２３０は、前述のように算出されたサーバ４２０の通信完了時間と、ストレージ２４０に格納される情報のうちの経路情報と、課金情報２４３とに基づいて、通信に対する利用コストを算出する。さらに構成管理部２３０は、これらの算出された利用コストの情報を、利用するサーバリソースのパターンごとに取得し、利用者へ提供する総コストを算出する。
【００９９】
次に、前述のように算出されたサービス品質と利用コストとを、サーバリソースのパターンごとに取得し、あらかじめ定められたポリシー（例えば、「利用コストが最低である」、「あるサービス品質ができる限り高く、かつ、利用コストが最低の場合と比較し１．３倍以内である」、「すべてのサービス品質が定められた範囲内である」、又は、「あるサービス品質が最も高い」など）に従って、特定のサービスを提供するために最適なシステムの構成が抽出される。
【０１００】
システムの構成とは、特定のサービスを提供するために、いずれのサーバ４２０、ストレージ４４０、又は、ネットワーク６００を用いるかを示す情報である。
【０１０１】
構成管理部２３０は、さらに、抽出されたシステムの構成が、あらかじめ定められた禁止又は制限事項に抵触しないか否かを判定する。禁止又は制限事項に抵触しない場合、構成管理部２３０は、通信制御部１１０、データセンタ４００に備わる図示しない管理装置、及び、運用サーバ３００に、特定のサービスをクライアント１００へ提供するために、抽出されたシステムの構成を選択すべき旨を、管理命令に含めて送信する。
【０１０２】
なお、抽出されたシステムの構成が複数ある場合、構成管理部２３０は、抽出されたシステムの複数の構成を画面等に表示させることによって、管理者等に最適なシステムの構成を選択させる。抽出されたシステムの構成が一つであり、かつ、管理サーバ２００に、あらかじめ管理者によってシステムの構成を自動的に選択することが設定されている場合、管理サーバ２００は、自動的に抽出されたシステムの構成を通信制御部１１０等に送信してよい。
【０１０３】
また、停止しているサーバ４２０を含むシステムの構成が選択された場合、管理サーバ２００は、停止しているサーバ４２０を起動する旨を含んだ管理命令を、運用サーバ３００に送ってもよい。さらに、管理サーバは、ストレージ２４０に保持されるデータを用いて、データセンタ４００に備わるリソースの運用（停止又は縮退など）を、変更する指示を管理サーバ２００に送信してもよい。
【０１０４】
通信制御部１１０等は、管理サーバ２００に備わる構成管理部２３０から管理命令を受信した後、送信された管理命令に含まれる情報に従って、クライアント１００から送られたリクエストを、抽出されたシステムの構成に送信するように、通信制御部１１０等の内部の設定を変更する。
【０１０５】
また、データセンタ４００に備わる図示しない管理装置、又は、運用サーバ３００は、管理命令を受信した後、送信された管理命令に含まれる情報に従って、自身の管理するサーバ４２０について、起動若しくは縮退の指示、ストレージ４４０に含まれるデータの移動、又は、ストレージ４４０の冗長化の構成変更の命令等を、サーバ４２０及びストレージ４４０に送信する。また、データセンタ４００に備わる図示しない管理装置、又は、運用サーバ３００は、構成変更の命令等を、自らが管理するストレージシステムに送信してもよい。
【０１０６】
なお、管理サーバ２００は、複数の指示を同時に通信制御部１１０等に送信してもよい。例えば、管理サーバ２００は、サーバ４２０の縮退の指示と、ストレージに含まれるデータの移動とを、同時に運用サーバ３００に指示してもよい。
【０１０７】
前述のように、管理サーバ２００が、通信制御部１１０、運用サーバ３００、及び、データセンタ４００に備わる管理装置に、通信制御方法の変更、すなわち、選択するサーバ４２０の変更、サーバ４２０（仮想サーバを含む）の起動若しくは縮退、又は、ストレージ４４０に含まれるデータの移動若しくは冗長化構成の変更の指示を送信した後、サーバ４２０を含むシステムの構成若しくはストレージ４４０に含まれるデータが変化するため、性能測定部１２０によって測定される性能の測定結果１４１は変化する。
【０１０８】
管理サーバ２００は、上記指示を送信した後、通常より高頻度で、性能測定部１２０によって測定される性能測定結果１４１を、クライアント１００から受信する。また、通常より高頻度で、構成管理部２３０によってテスト情報２４４を更新する。
【０１０９】
システム構成又はストレージ４４０に含まれるデータの変化による性能測定結果１４１の受信結果である測定情報２４１と、テスト情報２４４との更新によって、前述の禁止又は制限事項に抵触しないか否かを高頻度で判定する。禁止又は制限事項によっては、システム構成又はストレージ４４０に含まれるデータの変更によって、性能の測定情報２４１と、テスト情報２４４との変化及び禁止又は制限事項への抵触が発生し、システム構成又はストレージ４４０に含まれるデータの内容の変更が繰り返される。
【０１１０】
構成管理部２３０は、システム構成又はストレージ４４０に含まれるデータの内容の変更の履歴を内部に保持しており、繰り返し、同様のシステム構成又はストレージ４４０の内容の変更の指示が繰り返されたり、禁止又は制限事項への抵触などが起こることが判定されると、保持されたシステム構成又はストレージ４４０に含まれるデータの内容の変更を制限する。
【０１１１】
（測定結果１４１）
測定結果１４１は、前述の通り、クライアント１００に備わる性能測定部１２０によって、ストレージ１４０内に格納される測定結果である。測定結果１４１は、クライアント１００が特定のサービスをサーバ４２０から提供される際の、サービスの提供の品質を示す情報である。すなわち、クライアント１００が、あるサーバ４２０からサービスを提供される際に、クライアント１００を用いる利用者が得られるサービスの品質を示す。
【０１１２】
図５は、本発明の第１の実施形態の測定結果１４１の具体例を示す説明図である。
【０１１３】
測定結果１４１に含まれる各項目の例を、図５において示す。測定結果１４１は、ＩＤ７０１、サービス名７０２、ＵＲＩ７０３、処理時間７０４、タイムスタンプ７０５、サーバＩＤ７０６、経路情報７０７、エラー７０８、検証用情報７０９、及び、ステータス７１０の各項目の情報を、ＩＤ７０１ごとに保持し、ストレージ１４０に性能測定部１２０によって格納される。
【０１１４】
ＩＤ７０１は、性能測定部１２０が定める一意なＩＤである。ＩＤ７０１は、クライアント１００からサーバ４２０へ送られるリクエスト毎に定められてもよいし、一定時間毎に定められてもよい。一定時間毎にＩＤを付与する場合、性能測定部１２０は、一定時間に測定された測定結果１４１を集計する。
【０１１５】
また、ＩＤ７０１の値に、クライアント１００を特定するアドレス（ＩＰアドレス、ＭＡＣアドレス）やコンピューター名等の情報を含めてもよい。性能測定部１２０は、測定結果１４１を取得した後、このＩＤ７０１を一意に定め、定めたＩＤに対応させて、各項目をストレージ１４０に格納する。
【０１１６】
サービス名７０２は、利用者が利用するためにサーバ４２０が提供する、ＷＥＢサービスなどのサービス名である。ＵＲＩ７０３は、ネットワーク６００に備わる、サービスを利用するためのリソースを示す識別子である。
【０１１７】
処理時間７０４は、サーバ４２０が、リクエストを受信してから、リクエストに対応する処理結果を送信するまでの処理時間、又は、クライアント１００がリクエストを送信してから、リクエストに対応する処理結果を受信するまでの処理時間のいずれの処理時間でもよい。また、両方の処理時間が別々の列に格納されてもよい。
【０１１８】
タイムスタンプ７０５は、利用者がサーバ４２０から提供されたサービスを利用した時刻である。また、タイムスタンプ７０５は、利用者がサーバ４２０にリクエストを送信した時刻でもよい。
【０１１９】
サーバＩＤ７０６は、クライアント１００によって送信されたリクエストを、処理したサーバ４２０を一意に示す識別子である。サーバＩＤ７０６は、サーバ構成管理システムの管理者によって、利用者が利用するサーバ４２０に、あらかじめ一意に付与されるものである。
【０１２０】
経路情報７０７は、クライアント１００によってリクエストが送信されてから、送信されたリクエストに対応する処理結果をクライアント１００が受信するまでに使われるネットワークの経路の情報である。エラー７０８は、クライアント１００によってリクエストがサーバ４２０に送信された際、サーバ４２０又はネットワーク６００の経路上において発生したエラーの情報である。
【０１２１】
検証用情報７０９は、処理時間７０４以外に利用者がサービスを利用した際に体感品質を左右するような情報を記載する。検証用情報７０９は、例えば、サーバ４２０において動作するアプリケーション又はＷＥＢアプリケーションのサーバが記録した処理の時刻、及び、処理内容のトレース情報である。
【０１２２】
また、例えば、検証用情報７０９は、利用者がサーバ４２０からサービスを提供されるのを待つ間に、クライアント１００において利用者によって繰り返し実行された要求の数であってもよい。繰り返し実行された要求の数は、利用者が体感する、サービスの提供の遅さを示すためである。
【０１２３】
ステータス７１０は、前述した通信制御部１１０によるサーバ４２０の選択結果、サーバ４２０による処理結果、又は、サーバ４２０の状況などを示す。例えば、サーバ４２０のハードウェアの障害によって、処理が不可であるなどの状況を示す。
【０１２４】
なお、図５に示す測定結果１４１は具体例であり、図５に示される項目以外にも、図４において前述した項目を含んでもよい。前述の図４に示すシーケンス８０３及びシーケンス８０６において、サーバ４２０及びクライアント１００によって情報を付加されることによって、測定結果１４１には、サーバ４２０、クライアント１００、及び、サーバ４２０とクライアント１００との間の経路の品質を示す情報が格納される。
【０１２５】
（性能測定部１２０の起動）
ここで、性能測定部１２０をクライアント１００において動作させるために、通信プログラム１３０を動作させる手順について説明する。
【０１２６】
図６は、本発明の第１の実施形態のクライアント１００への性能測定部１２０の登録と、登録結果の管理サーバ２００への送信との手順を示すシーケンス図である。
【０１２７】
利用者が、性能測定部１２０が稼働していない、又は、性能測定部１２０が導入されていないクライアント１００を介してサーバ４２０を利用しようとした場合、クライアント１００は、サーバ４２０からの指示によって、性能測定部１２０を稼働させるためのプログラムをダウンロードする。
【０１２８】
まず利用者は、性能測定部１２０が稼働していないクライアント１００に、利用要求を送信する（９００）。そして、クライアント１００は、通信制御部１１０にリクエストを送信する（９０１）。
【０１２９】
通信制御部１１０は、リクエストを受信した後、図４のシーケンス８０８及びシーケンス８０９に示す方法によって、複数のサーバ４２０のうち一つのサーバ４２０を処理サーバとして選択する。そして、選択されたサーバ４２０にリクエストを送信する（９０２）。
【０１３０】
サーバ４２０は、通信制御部１１０からリクエストを受信した後、測定用の通信プログラム１３０がクライアント１００において、稼働しているか否かを判定する（９０３）。
【０１３１】
サーバ４２０はシーケンス９０３において、例えば、クライアント１００において、通信プログラム１３０がＷＥＢブラウザのプラグインとして稼働しているか否かによって判定してもよい。また、例えば、サーバ４２０に備わるアプリケーション４２９が、シーケンス９０２において受信したリクエストに性能測定部１２０によって作成された情報が含まれているか否かによって、サーバ４２０はシーケンス９０３において判定してもよい。
【０１３２】
なお、シーケンス９０３における判定は図６に示されないが、サーバ４２０は、クライアント１００の通信プログラム１３０と通信することによって、シーケンス９０３において判定する。
【０１３３】
シーケンス９０３におけるサーバ４２０が、クライアント１００において性能測定部１２０を稼働させることが必要であると判定した場合、サーバ４２０は、性能測定部１２０を稼働させるために必要なプログラム及び通信プログラム１３０のプラグイン等をダウンロードするよう、通信制御部１１０を介して、クライアント１００に指示する（９０４、９０５）。
【０１３４】
クライアント１００は、プラグイン等をダウンロードするようサーバ４２０から指示を受信した後、プラグイン等を提供するサーバ４２０から、プラグイン等をダウンロードする（９０６）。すなわち、クライアント１００は、性能測定部１２０を稼働させるために必要なプログラム、又は、通信プログラム１３０のプラグイン等をダウンロードするため、サーバ４２０の指示によって、性能測定部１２０を稼働させるために必要なプログラム、又は、通信プログラム１３０のプラグイン等のダウンロードを、特定のサーバ４２０に要求する。そしてクライアント１００は、ダウンロードしたプログラム等を、自らにインストールする。
【０１３５】
クライアント１００にインストールされたプログラム、又は、通信プログラム１３０のプラグインは、クライアント１００において起動した後、クライアント１００に関する情報を管理サーバ２００に送信する（９０７）。
【０１３６】
管理サーバ２００は、クライアント１００から送信された情報を受信した後、管理サーバ２００が管理する管理テーブルにクライアント１００に関する情報を登録する。そして、登録したクライアント１００に関する情報に、情報を一意に示すＩＤを付与するとともに、付与したＩＤをクライアント１００に送信する（９０８）。
【０１３７】
図４及び図６に示したように、クライアント１００において性能測定部１２０が稼働することによって、サーバ４２０を利用する際の性能を示す測定結果１４１がクライアント１００に蓄積され、蓄積された測定結果１４１が、管理サーバ２００に送信される。さらに、管理サーバ２００は、送信された測定結果１４１とあわせて、管理サーバ２００に保存されている構成情報２４２、課金情報２４３、及び、テスト情報２４４を用い、通信制御部１１０、運用サーバ３００、及び、データセンタ４００の図示しない管理装置に、通信制御方法の変更（すなわち、選択するサーバ４２０の変更）、サーバ４２０（仮想サーバを含む）の起動若しくは縮退、又は、ストレージ４４０の内容の移動若しくは冗長化構成の変更を指示する。
【０１３８】
この指示によって、管理サーバ２００が管理するサーバ４２０及び通信制御部１１０の設定が変更され、クライアント１００を利用する利用者は、サービス利用の体感品質、セキュリティの向上、並びに、サーバ構成管理システムの可用性及び信頼性を向上させることができる。また、情報システム管理者は、サーバ構成管理システムの利用料を低減させることができる。
【０１３９】
具体的には、管理サーバ２００からの指示に従い、クライアント１００からのリクエストをあらかじめ定められた方法によって、自身の管理するサーバ４２０へ中継（リダイレクト）する。通信制御部１１０−３は、自身が設置されたデータセンタ４００内部のサーバ４２０以外へリクエストを中継（リダイレクト）してもよい。
【０１４０】
（第２の実施形態）
図７は、本発明の第２の実施形態のサーバ構成管理システムの構成を示すブロック図である。
【０１４１】
第２の実施形態のサーバ構成管理システムは、図１に示す第１の実施形態のサーバ構成管理システムと同様の構成であり、利用者は、同様の効果を得られる。しかし、第２の実施形態のデータセンタ４００−１及び４００−２は、サーバ４２０（４２０−１、４２０−３）の他に、仮想サーバ４３１（４３１−１、４３１−３）を備える。仮想サーバ４３１−１及び４３１−３は、各々サーバ４２０−２及びサーバ４２０−４に実装されてもよいし、複数のサーバ４２０によって実装されてもよい。
【０１４２】
図８は、本発明の第２の実施形態の、サーバ４２０−２と仮想サーバ４３１とを示すブロック図である。
【０１４３】
サーバ４２０−２は、内部にＣＰＵ４３４、メモリ４３６、ストレージ４３５、ＮＩＣ４３８、及び、入出力装置４３７を備え、それぞれのハードウェアがバスによって接続される。サーバ４２０−２は、ＮＩＣ４３８を介して、ネットワーク６００に接続される。
【０１４４】
ＣＰＵ４３４は、ストレージ４３５又は図示しない外部ストレージに格納されたプログラムをメモリ４３６にロードし、ＣＰＵ４３４上で実行することによって、機能を実現する。ＮＩＣ４３８は、メモリ４３６上で処理されるプログラムが要求する通信内容をネットワーク６００へ送信し、処理結果を受信する。入出力装置４３７は、処理結果を画面へ出力し、又は、外部デバイスと通信する。
【０１４５】
サーバ４２０−２は、メモリ４３６上に、仮想サーバ４３１−１及び４３１−２を実装する。仮想サーバ４３１−１及び４３１−２は、仮想化プログラム（ハイパバイザ）４３３によって、メモリ４３６上に読み込まれる。仮想サーバ４３１−１及び４３１−２は、他のサーバ４２０、又は、ネットワーク６００に接続されたクライアント１００若しくは管理サーバ２００等から、一般的なサーバ４２０と同じく扱われる。
【０１４６】
メモリ４３６は、ストレージ４４０に格納されたＷＥＢアプリケーションなどのアプリケーション４３９が処理される。また、アプリケーション４３９と同様のアプリケーションが、仮想サーバ４３１上の図示しない仮想的なメモリ（実際にはメモリ４３６）上において処理される。
【０１４７】
図８に示す構成を採ることによって、仮想サーバ４３１は、サーバ４２０と同じく、アプリケーション４３９を処理することができる。仮想サーバ４３１は、一般的にサーバ４３０より低コストで構築できるため、低コストで第１の実施形態と同じ効果を奏するサーバ構成管理システムを構築することができる。
【０１４８】
以上の第１及び第２の実施形態に示すサーバ構成管理システムによれば、クラウド基盤を提供するサービスのように、動的にサービス品質及び利用コストが変動する情報システムを構築するための基盤を利用する際に、その時々に応じて利用者に提供されるサービスの品質（レスポンスタイムなどの利用者のサービス利用の体感品質、情報システムのセキュリティ、情報システムの可用性、信頼性等）を維持又は向上させながら、情報システムの利用料を維持又は低減させることができる。
【０１４９】
また、管理サーバ２００が、通信制御部１１０等を制御することによって、利用者が利用できるサーバ４２０を制御でき、例えば、通信料が高いサーバ４２０、又は、ＣＰＵ４２４若しくはメモリ４２６の使用料が高いサーバ４２０を利用することを避けることができる。このため、管理サーバ２００は、本実施形態のサーバ構成管理システムは、動的に、利用者のサービスを利用する品質を維持又は向上させながら、情報システムの利用料を維持又は低減させることができる。
【０１５０】
さらに、管理サーバ２００が、データセンタ４００に備わり、かつ、データセンタ４００を管理する、図示しない管理装置、通信制御部１１０等、及び、運用サーバ３００へ、サーバ４２０の縮退又は起動を指示することによって、管理サーバ２００は、利用者が利用できるサーバ４２０又はリソース量を制御でき、例えば、通信料が高いサーバ４２０、又は、ＣＰＵ４２４若しくはメモリ４２６の使用料が高いサーバ４２０を起動する時間を少なくしたり、通信料、又は、ＣＰＵ４２４若しくはメモリ４２６の使用料が安いサーバ４２０が起動する時間を多くすることができる。このため、管理サーバ２００は、動的に、利用者のサービスを利用する品質を維持又は向上させながら、情報システムの利用料を維持又は低減させることができる。
【０１５１】
また、管理サーバ２００が、データセンタ４００を管理する図示しない管理装置又は運用サーバ３００へストレージ４４０の内容の移動、ストレージ４４０の冗長構成の変更を指示することによって、利用者が利用するストレージの量又は通信料を少なくすることが出来るため、動的に、利用者のサービスを利用する品質を維持又は向上させながら、情報システムの利用料を維持又は低減させることができる。
【０１５２】
また、クライアントがサーバ４２０からサービスを提供される際の品質情報を測定し、それらの品質情報の測定結果を管理サーバが蓄積することによって、実測値を用いてサーバ４２０を選択することができる。
【符号の説明】
【０１５３】
１００  クライアント
１０１  ＣＰＵ
１０２  メモリ
１０３  ＮＩＣ（ネットワークインターフェースカード）
１０４  入出力装置
１１０  通信制御部
１２０  性能測定部
１３０  通信プログラム
１４０  ストレージ
１４１  測定結果
２００  管理サーバ
２２０  サービス性能集計部
２３０  構成管理部
２４０  ストレージ
２４１  測定情報
２４２  構成情報
２４３  課金情報
２４４  テスト情報
２４５  運用情報
３００  運用サーバ
４００  データセンタ
４２０（４２０−１〜４）  サーバ
４２４  ＣＰＵ
４２５  ストレージ
４２６  メモリ
４２７  入出力装置
４２８  ＮＩＣ
４２９  アプリケーション
４３１（４３１−１、４３１−２）  仮想サーバ
４３３  仮想化プログラム（ハイパバイザ）
４３９  アプリケーション
６００  ネットワーク
７０１  ＩＤ
７０２  サービス名
７０３  ＵＲＩ
７０４  処理時間
７０５  タイムスタンプ
７０６  サーバＩＤ
７０７  経路情報
７０８  エラー
７０９  検証用情報
７１０  ステータス
【図１】
0005531278.tif 000002
【図２】
0005531278.tif 000003
【図３】
0005531278.tif 000004
【図４】
0005531278.tif 000005
【図５】
0005531278.tif 000006
【図６】
0005531278.tif 000007
【図７】
0005531278.tif 000008
【図８】
0005531278.tif 000009