(57)【要約】【課題】稼働している複数のサーバ装置の数が、当該複数のサーバ装置に対するリクエストを処理するのに必要な数よりも多い場合に、当該複数のサーバ装置に接続しているクライアント装置の動作を妨げることなく、稼働するサーバ装置の数を減らすこと。【解決手段】情報処理装置は、複数のサーバ装置への外部からの接続の状況を監視し、接続の数が予め定められた数以下の場合に、複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、第１のサーバ装置への接続を第２のサーバ装置への接続に変更することを第１のサーバ装置に接続している第１のクライアント装置に指示する指示手段と、指示に応じて、第１のクライアント装置からの第１のサーバ装置への接続がなくなった場合に、第１のサーバ装置を停止させる停止手段と、を備える。【選択図】図４
2019061450.tif 000002
【特許請求の範囲】
【請求項１】
複数のサーバ装置への外部からの接続の状況を監視し、前記接続の数が予め定められた数以下の場合に、前記複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する指示手段と、
前記指示に応じて、前記第１のクライアント装置からの前記第１のサーバ装置への接続がなくなった場合に、前記第１のサーバ装置を停止させる停止手段と、
を備える情報処理装置。
【請求項２】
前記指示手段は、前記第２のサーバ装置に対して定められた優先度が前記第１のサーバ装置に対して定められた優先度よりも高い場合に限り、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを指示する、
請求項１に記載の情報処理装置。
【請求項３】
前記優先度は、接続の料金が低いサーバ装置ほど高く定められている、
請求項２に記載の情報処理装置。
【請求項４】
前記優先度は、処理速度が速いサーバ装置ほど高く定められている、
請求項２に記載の情報処理装置。
【請求項５】
前記優先度は、信頼性が高いサーバ装置ほど高く定められている、
請求項２に記載の情報処理装置。
【請求項６】
前記指示手段は、前記複数のサーバ装置のうち最も接続数が少ない第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する、
請求項１に記載の情報処理装置。
【請求項７】
前記指示手段は、前記第１のサーバ装置に接続している全てのクライアント装置を前記第２のサーバ装置に接続し得る場合に限り、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する、
請求項６に記載の情報処理装置。
【請求項８】
前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示した後に第２のクライアント装置から接続の要求を受けた場合には、前記複数のサーバ装置のうちの前記第１のサーバ装置ではないサーバ装置に前記第２のクライアント装置を接続するよう制御する制御手段を備える、
請求項１に記載の情報処理装置。
【請求項９】
前記指示手段は、前記複数のサーバ装置への外部からの接続を切断するイベントの回数が予め定められた条件を満たした場合に、前記複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する、
請求項１に記載の情報処理装置。
【請求項１０】
前記指示手段は、前記複数のサーバ装置への外部からの接続を切断するイベントの回数が予め定められた回数に達した場合に、前記複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する、
請求項９に記載の情報処理装置。
【請求項１１】
複数のサーバ装置へのクライアント装置からの接続の状況を監視し、前記接続の数が予め定められた数以下の場合に、前記複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続しているクライアント装置に指示する指示手段と、
前記指示に応じて、前記クライアント装置からの前記第１のサーバ装置への接続がなくなった場合に、前記第１のサーバ装置を停止させる停止手段と
を備える情報処理装置と、
前記指示手段からの指示を受け取ったならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更する接続手段を備える前記クライアント装置と、
を備える情報処理システム。
【請求項１２】
前記接続手段は、前記指示手段からの指示を受け取ったならば、前記第２のサーバ装置に接続し、前記第２のサーバ装置にルーティングを変更してから前記第１のサーバ装置との接続を切断する、
請求項１１に記載の情報処理システム。
【請求項１３】
コンピュータを、
複数のサーバ装置への外部からの接続の状況を監視し、前記接続の数が予め定められた数以下の場合に、前記複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する指示手段と、
前記指示に応じて、前記第１のクライアント装置からの前記第１のサーバ装置への接続がなくなった場合に、前記第１のサーバ装置を停止させる停止手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、ハードウェアに生成されている複数の仮想マシンを管理する管理処理をコンピュータに実行させる仮想マシン管理プログラムが開示されている。管理処理は，仮想マシンへのアクセスが第１の時間発生しない場合に，仮想マシンをサスペンド制御するサスペンド工程と、サスペンド中の仮想マシンへのアクセスが発生しないにもかかわらず、サスペンド中の仮想マシンを、所定のタイミングで、リジューム制御しリフレッシュ動作に要する第２の時間経過後にサスペンド制御するリフレッシュ工程と、サスペンド中の仮想マシンへのアクセスが発生した場合に、仮想マシンをリジューム制御して、仮想マシンをリジュームさせサスペンド中に保留になったリフレッシュ動作をアクセスの処理の前に実行させるリジューム工程と、を有する。
【０００３】
特許文献２には、クラウドコンピューティングで提供するクラウドサービスを、当該クラウドサービスの処理を実行するサーバリソースに再配置するクラウドサービス再配置システムが開示されている。クラウドサービス再配置システムは、各サーバリソースの処理動作を監視して当該サーバリソースの負荷情報を収集するサーバメータ手段と、予め各クラウドサービスに対して設定された当該クラウドサービスの提供に必要なサーバリソースの機能条件と価格条件および環境性能条件と評価条件ならびに各条件の優先度を少なくとも含むポリシー定義情報を記憶するポリシー定義情報記憶手段と、上記サーバメータ手段が収集した各サーバリソースの負荷情報と、上記ポリシー定義情報記憶手段が記憶したポリシー定義情報に含まれる各条件情報とを照合して、各条件を満足する全てのサーバリソースを抽出し、該抽出した全てのサーバリソースから、予め当該クラウドサービスに対して定められ上記ポリシー定義情報記憶手段で記憶した上記ポリシー定義情報における最も上記優先度の高い上記条件に関する評価が最も高いサーバリソースを特定するロケータ手段と、該ロケータ手段が特定したサーバリソースに、当該クラウドサービスを再配置するリロケーション手段とを有する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６０７０３５５号公報
【特許文献２】特許第５６００２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数のサーバ装置（仮想マシン又は物理マシン）を用いてクラウドコンピューティングサービスを提供する場合、各サーバ装置は予め定められた量の資源（ＣＰＵ、メモリ、ストレージなど）を有し、クライアント装置からのリクエストに応じて資源を使用したサービスを提供する。ここで、サーバ装置に接続するクライアント装置の数は経時的に変動するため、各サーバ装置における資源の使用量も経時的に変動する。そのため、全てのサーバ装置において使用されている資源の総量がサーバ装置の数を減らしても確保し得る状況が発生する場合がある。
【０００６】
上記の事情を鑑み、本発明は、稼働している複数のサーバ装置の数が、当該複数のサーバ装置に対するリクエストを処理するのに必要な数よりも多い場合に、当該複数のサーバ装置に接続しているクライアント装置の動作を妨げることなく、稼働するサーバ装置の数を減らすことを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に記載の情報処理装置は、複数のサーバ装置への外部からの接続の状況を監視し、前記接続の数が予め定められた数以下の場合に、前記複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する指示手段と、前記指示に応じて、前記第１のクライアント装置からの前記第１のサーバ装置への接続がなくなった場合に、前記第１のサーバ装置を停止させる停止手段と、を備える情報処理装置。
【０００８】
請求項２に記載の情報処理装置は、請求項１に記載の情報処理装置において、前記指示手段は、前記第２のサーバ装置に対して定められた優先度が前記第１のサーバ装置に対して定められた優先度よりも高い場合に限り、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを指示する。
【０００９】
請求項３に記載の情報処理装置は、請求項２に記載の情報処理装置において、前記優先度は、接続の料金が低いサーバ装置ほど高く定められている。
【００１０】
請求項４に記載の情報処理装置は、請求項２に記載の情報処理装置において、前記優先度は、処理速度が速いサーバ装置ほど高く定められている。
【００１１】
請求項５に記載の情報処理装置は、請求項２に記載の情報処理装置において、前記優先度は、信頼性が高いサーバ装置ほど高く定められている。
【００１２】
請求項６に記載の情報処理装置は、請求項１に記載の情報処理装置において、前記指示手段は、前記複数のサーバ装置のうち最も接続数が少ない第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する。
【００１３】
請求項７に記載の情報処理装置は、請求項６に記載の情報処理装置において、前記指示手段は、前記第１のサーバ装置に接続している全てのクライアント装置を前記第２のサーバ装置に接続し得る場合に限り、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する。
【００１４】
請求項８に記載の情報処理装置は、請求項１に記載の情報処理装置において、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示した後に第２のクライアント装置から接続の要求を受けた場合には、前記複数のサーバ装置のうちの前記第１のサーバ装置ではないサーバ装置に前記第２のクライアント装置を接続するよう制御する制御手段を備える。
【００１５】
請求項９に記載の情報処理装置は、請求項１に記載の情報処理装置において、前記指示手段は、前記複数のサーバ装置への外部からの接続を切断するイベントの回数が予め定められた条件を満たした場合に、前記複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する。
【００１６】
請求項１０に記載の情報処理装置は、請求項９に記載の情報処理装置において、前記指示手段は、前記複数のサーバ装置への外部からの接続を切断するイベントの回数が予め定められた回数に達した場合に、前記複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する。
【００１７】
請求項１１に記載の情報処理システムは、複数のサーバ装置へのクライアント装置からの接続の状況を監視し、前記接続の数が予め定められた数以下の場合に、前記複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続しているクライアント装置に指示する指示手段と、前記指示に応じて、前記クライアント装置からの前記第１のサーバ装置への接続がなくなった場合に、前記第１のサーバ装置を停止させる停止手段とを備える情報処理装置と、前記指示手段からの指示を受け取ったならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更する接続手段を備える前記クライアント装置と、を備える。
【００１８】
請求項１２に記載の情報処理システムは、請求項１１に記載の情報処理システムにおいて、前記接続手段は、前記指示手段からの指示を受け取ったならば、前記第２のサーバ装置に接続し、前記第２のサーバ装置にルーティングを変更してから前記第１のサーバ装置との接続を切断する。
【００１９】
請求項１３に記載のプログラムは、コンピュータを、複数のサーバ装置への外部からの接続の状況を監視し、前記接続の数が予め定められた数以下の場合に、前記複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、前記複数のサーバ装置のうちの第２のサーバ装置において確保し得るならば、前記第１のサーバ装置への接続を前記第２のサーバ装置への接続に変更することを前記第１のサーバ装置に接続している第１のクライアント装置に指示する指示手段と、前記指示に応じて、前記第１のクライアント装置からの前記第１のサーバ装置への接続がなくなった場合に、前記第１のサーバ装置を停止させる停止手段、として機能させる。
【発明の効果】
【００２０】
請求項１、１１、１３に係る発明によれば、稼働している複数のサーバ装置の数が、当該複数のサーバ装置に対するリクエストを処理するのに必要な数よりも多い場合に、当該複数のサーバ装置に接続しているクライアント装置の動作を妨げることなく、稼働するサーバ装置の数を減らすことができる。
請求項２に係る発明によれば、第１のサーバ装置よりも優先度の高いサーバ装置に接続を変更することができる。
請求項３に係る発明によれば、変更前と比べて接続の料金が低いサーバ装置に接続を変更することができる。
請求項４に係る発明によれば、変更前と比べて勝利速度が速いサーバ装置に接続を変更することができる。
請求項５に係る発明によれば、変更前と比べて信頼性が高いサーバ装置に接続を変更することができる。
請求項６に係る発明によれば、最も接続数が少ないサーバ装置を停止させることができる。
請求項７に係る発明によれば、クライアント装置の動作を妨げることなく、稼働するサーバ装置の数を減らすことができる。
請求項８に係る発明によれば、第２のクライアント装置がサーバ装置への接続に失敗することを防ぐことができる。
請求項９、１０に係る発明によれば、切断イベントが発生するたびに接続変更のための処理を行う場合と比べて当該処理の回数を減らすことができる。
請求項１２に係る発明によれば、第１のサーバ装置との接続を切断してから第２のサーバ装置に接続する場合と比べて、接続の変更に失敗する確率を下げることができる。
【図面の簡単な説明】
【００２１】
【図１】情報処理システム１の構成を示す図。
【図２】情報処理装置１０のハードウェア構成を示す図。
【図３】管理テーブルを示す図。
【図４】接続管理処理の流れ図。
【図５】接続先を変更する処理の流れ図。
【図６】接続先を変更する処理の流れ図。
【発明を実施するための形態】
【００２２】
本発明の実施形態の一例について説明する。
図１は、情報処理システム１の構成を示す図である。情報処理システム１は、情報処理装置１０と、複数のクライアント装置４０を備える。複数のクライアント装置４０の各々と情報処理装置１０とは、例えばＨＴＴＰ（Hypertext Transfer Protocol）、ＦＴＰ(File Transfer Protocol)などの通信プロトコルに従って、ネットワークＮＷを介して通信する。ネットワークＮＷは、公衆網でもよく、閉域網でもよい。情報処理装置１０は、ネットワークＮＷ上にＶＰＮ（Virtual Private Network）を構築してクラウドコンピューティングサービスを提供する。
【００２３】
図２は、情報処理装置１０のハードウェア構成を示す図である。情報処理装置１０は、制御部１１、記憶部１２、通信部１３を備える。制御部１１は、ＣＰＵ（Central Processing Unit）などの演算装置と、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などの記憶装置とを備える。ＲＯＭは、ハードウェアやＯＳ（Operating System）の起動の手順を記述したファームウェアを記憶する。ＲＡＭは、ＣＰＵが演算を実行する際のデータの記憶に用いられる。記憶部１２は、例えば半導体メモリやハードディスク記憶装置などを備え、ＯＳやアプリケーションプログラムなどのソフトウェアを記憶する。通信部１３は、他の電子機器との間で通信を行うための通信Ｉ／Ｆ（Interface）を備え、ネットワークＮＷに接続される。なお、クライアント装置４０も情報処理装置１０と同様のハードウェア構成を有するため、その説明は省略する。
【００２４】
制御部１１は、複数のＯＳを並行して実行することにより、情報処理装置１０を複数の仮想マシン（仮想的なコンピュータ）として動作させる。図１に示される管理装置２０及びサーバ装置３０Ａ、３０Ｂ、３０Ｃ、３０Ｄ、・・・の各々が、仮想マシンである。以下、サーバ装置３０Ａ、３０Ｂ、３０Ｃ、３０Ｄ、・・・を区別する必要のない場合には、これらをサーバ装置３０と総称する。複数のサーバ装置３０は、その全てが常時稼働しているとは限らず、状況に応じて管理装置２０からの指示により１台以上のサーバ装置３０が停止される場合がある。サーバ装置３０の停止に至る手続きについては、後述する。
【００２５】
クライアント装置４０Ａ、４０Ｂ、４０Ｃ、・・・は、ネットワークＮＷ経由で複数のサーバ装置３０のいずれかに接続してサービスの提供を受ける。以下、クライアント装置４０Ａ、４０Ｂ、４０Ｃ、・・・を区別する必要のない場合には、これらをクライアント装置４０と総称する。接続されたクライアント装置４０からのリクエストに応じてサーバ装置３０がアプリケーションプログラムを実行することにより、クライアント装置４０の利用者（以下、サービス利用者という。）にサービスが提供される。
【００２６】
情報処理装置１０を管理、運用する事業者（以下、サーバ管理者という。）と、アプリケーションプログラムを用いたサービスをサービス利用者に提供する事業者（以下、サービス提供者という。）とは、別々の事業者である。サービス提供者は、情報処理装置１０の資源の使用量に応じた料金（以下、サーバ料金という。）をサーバ管理者に支払う。なお、一般に、サーバ管理者は複数のサービス提供者と契約を結び、契約した複数のサービス提供者により情報処理装置１０が共同で使用され、各サービス提供者がサービスを提供するアプリケーションプログラムは１種類とは限らないが、ここでは、理解を容易にするため、サービス提供者は１社、アプリケーションプログラムは１種類と仮定する。
【００２７】
サービス利用者は、サービスの利用に対して予め定められた料金（以下、サービス料金という。）をサービス提供者に支払う。サービス料金とサーバ料金との間に直接の関係はない。
【００２８】
複数のサーバ装置３０の各々（前述のとおり、仮想マシンである）には、情報処理装置１０が備える資源（ＣＰＵ、メモリ、ストレージ、伝送路などのリソース）が割り当てられるが、割り当てられる資源の量（ＣＰＵ使用量、メモリ容量、ストレージ容量、帯域幅、最大接続数など）は全てのサーバ装置３０で同一とは限らない。ここでは、理解を容易にするために、割り当てられる資源の量がサーバ装置３０毎に異なっている場合を想定する。
【００２９】
クライアント装置４０からサーバ装置３０への接続が発生したならば、サーバ管理者がサービス提供者に課金する。以下、課金方式の一例を示す。１回の接続につき課金される料金を接続単価と呼ぶ。接続単価は、サーバ装置３０に割り当てられた資源の量に基づいて定められる。例えば、一般に、割り当てられた資源の量が多いサーバ装置３０ほど処理速度の速いサービスが提供されるから、接続単価が高く設定される。
【００３０】
記憶部１２に記憶されているアプリケーションプログラムは、全てのサーバ装置３０において実行可能である。つまり、複数のサーバ装置３０の各々が提供し得るサービスの内容に差異はない。ただし、サービスを提供する条件は、サーバ装置３０により異なる。例えば、上記のとおり接続単価がサーバ装置３０毎に定められているため、サービス利用者が同一のアプリケーションを利用しても、接続したサーバ装置３０によって課金される金額が異なる場合がある。また、割り当てられる資源の量が多いほど処理速度が速くなるため、サービス利用者が同一のアプリケーションを利用しても、接続したサーバ装置３０によって処理速度が異なる場合がある。
【００３１】
クライアント装置４０から接続のリクエストを受信すると、管理装置２０は、接続先として複数のサーバ装置３０のいずれかを選択し、リクエストの送信元のクライアント装置４０に対して、選択されたサーバ装置３０への接続を指示する。サーバ装置３０は、決められたアルゴリズム、例えば、接続単価、処理速度、割り当てられた資源の使用率などの指標を用いたアルゴリズムに従って選択される。このアルゴリズムの具体例の説明は割愛する。
【００３２】
図３は、管理テーブルを示す図である。管理装置２０は、管理テーブルを用いてクライアント装置４０からサーバ装置３０への接続の管理を行う。管理テーブルにおいては、各サーバ装置３０に対して、優先度、最大接続数、実接続数、計画接続数が関連付けられる。優先度とは、新たな接続先を選択する場合の選択の優先度を示す。本実施形態では、優先度の値が小さいほど優先度が高いことを示している。優先度が高いサーバ装置３０ほど、新たな接続先として優先的に選択される。
【００３３】
優先度は、サーバ管理者により設定される。サーバ管理者は、管理運用上又は技術上の理由から、優先的に接続させたいサーバ装置ほど高い優先度を設定する。具体的には、優先度は、接続単価に基づいて設定されてもよい。例えば、接続単価が低いサーバ装置３０ほど高い優先度が設定されてもよい。あるいは、優先度は、処理速度に基づいて設定されてもよい。例えば、処理速度が速いサーバ装置３０ほど高い優先度が設定されてもよい。
【００３４】
最大接続数は、サーバ装置３０に許される接続の数の最大値である。最大接続数は、サーバ装置３０に割り当てられた資源の量とは無関係に設定される。実接続数は、サーバ装置３０への実際の接続数である。計画接続数は、接続先の変更を計画する場合の変更後の接続数である。接続先の変更については、後述する。実接続数と計画接続数は、最大接続数を越えない値である。
【００３５】
図４は、接続管理処理の流れ図である。接続管理処理の手順を記述したプログラムが記憶部１２に記憶されており、情報処理装置１０の稼働中に制御部１１がこのプログラムに従って接続管理処理を実行する。以下の説明では、接続管理処理の実行の主体を管理装置２０とする。
【００３６】
ステップＳ１０１においては、管理装置２０が、管理テーブルを優先度の高い順にソートする。各サーバ装置３０の優先度がサーバ管理者により変更される場合があるから、管理テーブルにおいて各サーバ装置３０のレコードが優先度の高い順にソートされた状態が常に維持されるとは限らない。そのため、接続管理処理を実行する場合には、最初に管理テーブルを優先度の高い順にソートする処理が実行される。ソートが実行されると、レコード番号も昇順に更新される。なお、図３（ａ）は、ソートされた状態の管理テーブルを示している。
【００３７】
ステップＳ１０２においては、管理装置２０が、各サーバ装置３０における接続イベント又は切断イベントの有無を判定する。接続イベントとは、クライアント装置４０からサーバ装置３０への接続のリクエストである。切断イベントとは、クライアント装置４０からサーバ装置３０への接続を切断するリクエストである。接続イベント又は切断イベントが発生した場合に、サーバ装置３０は、管理装置２０に対して、接続イベント又は切断イベントが発生した旨を通知する。この通知があった場合には（ステップＳ１０２：ＹＥＳ）、管理装置２０はステップＳ１０３の処理に移行する。
【００３８】
ステップＳ１０３においては、管理装置２０が、管理テーブルの実接続数を更新する。具体的には、接続イベントの場合には、接続イベントを通知したサーバ装置３０の実接続数に１を加算する。切断イベントの場合には、切断イベントを通知したサーバ装置３０の実接続数から１を減算する。
【００３９】
ステップＳ１０４においては、管理装置２０は、イベントの種別が接続イベントであった場合には（ステップＳ１０４：ＮＯ）、ステップＳ１０２の処理に移行し、イベントの種別が切断イベントであった場合には（ステップＳ１０４：ＹＥＳ）、ステップＳ１０５の処理に移行する。上記のとおり、本実施形態では、イベントの種別が切断イベントであったことを契機としてステップＳ１０５以降の処理を実行するが、この構成は本発明の一例に過ぎない。別の例として、実接続数が最大接続数未満のサーバ装置３０が存在するならば、切断イベントが発生しなくてもステップＳ１０５以降の処理を実行するように構成されてもよい。また、最大接続数よりも小さい閾値をサーバ装置３０ごとに予め定めておき、実接続数が閾値以下のサーバ装置３０が存在するならば、切断イベントが発生しなくてもステップＳ１０５以降の処理を実行するように構成されてもよい。換言すれば、複数のサーバ装置への接続数が予め定められた数以下の場合にステップＳ１０５以降の処理が実行されればよい。
【００４０】
ステップＳ１０５においては、管理装置２０が、管理テーブルの実接続数を計画接続数の列にコピーする。
図３（ｂ）は、コピー後の管理テーブルを示す図である。
【００４１】
ステップＳ１０６においては、管理装置２０が、レコード番号ｎの初期値として、２を設定する。
【００４２】
ステップＳ１０７においては、管理装置２０が、管理テーブルのレコード番号がｎのサーバ装置３０の計画接続数ＮＡと、レコード番号が１からｎ−１までのサーバ装置３０のうち、計画接続数が０でないサーバ装置３０の空き接続数の総数ＮＢを算出する。空き接続数は、最大接続数から計画接続数を差し引いた値である。
【００４３】
ステップＳ１０８においては、管理装置２０が、ＮＡがＮＢよりも大きいか否かを判定し、ＮＡがＮＢよりも大きい場合には（ステップＳ１０８：ＹＥＳ）、ステップＳ１０９の処理に移行し、ＮＡがＮＢよりも大きくない場合には（ステップＳ１０８：ＮＯ）、ステップＳ１１０の処理に移行する。図３（ｂ）の例では、レコード番号が２のサーバ装置３０Ｂの計画接続数がＮＡ＝２５、レコード番号が１のサーバ装置３０Ａの空き接続数がＮＢ＝２０となり、ＮＡがＮＢよりも大きいから、ステップＳ１０９の処理に移行する。
【００４４】
ステップＳ１０９においては、管理装置２０が、レコード番号ｎに１を加算し、ステップＳ１０７の処理に移行する。図３（ｂ）の例では、ｎ＝２に１が加算されて、ｎ＝３となる。この場合、ステップＳ１０７において、レコード番号が３のサーバ装置３０Ｃの計画接続数がＮＡ＝３１、レコード番号が１から２のサーバ装置３０Ａ、３０Ｂの空き接続数の総数がＮＢ＝４５となり、ＮＡがＮＢよりも大きくないから、ステップＳ１１０の処理に移行する。
【００４５】
ステップＳ１１０においては、管理装置２０が、管理テーブルのレコード番号がｎのサーバ装置３０の計画接続数を、レコード番号が１からｎ−１までのサーバ装置３０のうち、計画接続数が０でないサーバ装置３０に移し替える。図３（ｂ）の例では、レコード番号が３のサーバ装置３０Ｃの計画接続数３１を、レコード番号が１から２までのサーバ装置３０Ａ、３０Ｂのうち、計画接続数が０でないレコード番号が１、２のサーバ装置３０Ａ、３０Ｂに移し替える。計画接続数の移し替えは、サーバ装置３０の優先度が高い順に行う。この例では、レコード番号が１のサーバ装置３０Ａは、優先度が１、空き接続数が２０であり、レコード番号が２のサーバ装置３０Ｂは、優先度が２、空き接続数が２５である。従って、レコード番号が３のサーバ装置３０Ｃの計画接続数３１のうちの２０をレコード番号が１のサーバ装置３０Ａに移し替え、残りの１１をレコード番号が２のサーバ装置３０Ｂに移し替える。
【００４６】
図３（ｃ）は、計画接続数の移し替え後の管理テーブルを示す図である。計画接続数の移し替えの結果、サーバ装置３０Ａ、３０Ｂ、３０Ｃの計画接続数は、それぞれ１００、３６、０に更新される。
【００４７】
ステップＳ１１１においては、管理装置２０が、管理テーブルのレコード数がレコード番号ｎの値より多いか否かを判定する。レコード数がｎより多い場合には（ステップＳ１１１：ＹＥＳ）、ステップＳ１０９の処理に移行し、レコード数がｎより多くない場合には（ステップＳ１１１：ＮＯ）、ステップＳ１１２の処理に移行する。
【００４８】
ステップＳ１１２においては、管理装置２０が、計画接続数が実接続数よりも少ないサーバ装置３０から、計画接続数が実接続数より多いサーバ装置３０へ接続を変更するための制御を行う。図３（ｃ）の例では、計画接続数が実接続数よりも少ないサーバ装置３０はサーバ装置３０Ｃであり、計画接続数が実接続数より多いサーバ装置３０はサーバ装置３０Ａ、３０Ｂである。管理装置２０は、サーバ装置３０Ｃに接続しているクライアント装置４０に対して、サーバ装置３０Ａ又は３０Ｂに接続を変更することを促す指示を、サーバ装置３０Ｃを介して送信する（指示手段の一例）。例えば、サーバ装置３０Ｃに接続している３１台のクライアント装置４０のうちの２０台に対して、サーバ装置３０Ａに接続を変更することを指示し、３１台のクライアント装置４０のうちの１１台に対して、サーバ装置３０Ｂに接続を変更することを指示する。
【００４９】
ステップＳ１１３においては、計画接続数が０のサーバ装置３０を停止させ（停止手段の一例）、ステップＳ１０２の処理に移行する。図３（ｃ）の例では、サーバ装置３０Ｃの計画接続数が０であるから、サーバ装置３０Ｃを停止させる。サーバ装置３０の停止とは、サーバ料金が発生しない状態又はサーバ料金が軽減される状態にサーバ装置３０を遷移させることを意味する。サーバ料金が発生しない状態又はサーバ料金が軽減される状態とは、実際には、サーバ管理者とサービス提供者との契約によって定義される。本実施形態では、サーバ装置３０は仮想マシンであるから、サーバ装置３０の停止とは、例えば、サーバ装置３０のＯＳを停止させ、サーバ装置３０に割り当てられた資源を解放することを意味する。
【００５０】
なお、サーバ装置３０Ｃへの接続をサーバ装置３０Ａ又は３０Ｂへの接続に変更することをクライアント装置４０に指示した後に他のクライアント装置４０から接続の要求を受けた場合には、サーバ装置３０Ｃではないサーバ装置３０Ａ又は３０Ｂに他のクライアント装置４０を接続するよう制御してもよい。
【００５１】
また、接続を変更する対象となるサーバ装置（上記の例では３０Ｃ）は、上記に限らない。たとえば、ステップＳ１０６、Ｓ１０９、Ｓ１１１の処理を省略し、単純に実接続数が最も少ないサーバ装置の実接続数をＮＡとし、その他のサーバ装置のうち計画接続数が０でないサーバ装置の空き接続数の総数ＮＢとし、ＮＡ＜ＮＢの場合にはＳ１１０に進み、そうでない場合はＳ１０２に戻るように制御してももちろん構わない。この構成の場合、実接続数が最も少ないサーバ装置に接続している全てのクライアント装置を他のサーバ装置に接続し得る場合に限り、接続の変更を指示するように制御してもよい。または、接続数を時系列で管理し、実接続数の減少の程度がもっとも大きいサーバ装置の実接続数をＮＡとし、その他のサーバ装置の空き接続数の総数をＮＢとしてもよい。
【００５２】
図５は、接続先を変更する処理の流れ図である（接続手段の一例）。ステップＳ２０１においては、クライアント装置４０が、接続変更の指示を受信する。この指示は、ステップＳ１１２において管理装置２０が送信した指示である。ステップＳ２０２においては、クライアント装置４０が、新たな接続先（この例では、サーバ装置３０Ａ又は３０Ｂ）に接続する。ステップＳ２０３においては、クライアント装置４０が、新たな接続先をリクエストの送信先とするように、ルーティングを変更する。ステップＳ２０４においては、クライアント装置４０が、従前の接続先であるサーバ装置３０Ｃへの接続を切断する。
【００５３】
以上のとおり、本実施形態は、複数のサーバ装置への接続数が予め定められた数以下の場合に、複数のサーバ装置のうちの第１のサーバ装置への接続数を、複数のサーバ装置のうちの第１のサーバ装置よりも予め定められた優先度が高い１台以上の第２のサーバ装置において確保し得るならば、第１のサーバ装置への接続を第２のサーバ装置への接続に変更することを第１のサーバ装置に接続しているクライアント装置に指示するように構成されている。ここで、第１のサーバ装置では、第１のサーバ装置が有する資源から、接続数に応じた資源が確保され、確保された資源を使用してアプリケーションプログラムが実行されている。従って、第１のサーバ装置への接続数と、第１のサーバ装置において使用されている資源の量との間には、相関関係がある。つまり、本実施形態で例示された情報処理装置１０は、複数のサーバ装置への外部からの接続の状況を監視し、接続の数が予め定められた数以下の場合に、複数のサーバ装置のうちの第１のサーバ装置において使用されている資源の量を、複数のサーバ装置のうちの第１のサーバ装置よりも予め定められた優先度が高い１台以上の第２のサーバ装置において確保し得るならば、第１のサーバ装置への接続を第２のサーバ装置への接続に変更することを第１のサーバ装置に接続しているクライアント装置に指示する指示手段を備える情報処理装置の一例である。
【００５４】
本実施形態によれば、複数のサーバ装置を備えるシステムへの接続の数が予め定められた数以下の場合に、稼働するサーバ装置の数が減らされる。稼働するサーバ装置の数が減らされることにより、サーバ管理者がサービス提供者に請求するサーバ料金が軽減される可能性がある。サーバ料金が軽減されると、サービス提供者がサービス利用者に請求するサービス料金も値下げされる可能性があり、サービス料金が値下げされるとサービス利用者の経済的負担が軽減される。
【００５５】
上記の実施形態を以下の変形例のように変形してもよい。また、複数の変形例を組み合わせてもよい。
【００５６】
＜変形例１＞
図６は、接続先を変更する処理の流れ図である。上記の実施形態（図５）では、クライアント装置４０が新たな接続先への接続後に従前の接続先との接続を切断する例を示したが、本変形例では、クライアント装置４０が接続変更の指示を受信したならば（ステップＳ３０１）、従前の接続先との接続を切断し（ステップＳ３０２）、新たな接続先に接続する（ステップＳ３０３）。
【００５７】
＜変形例２＞
上記の実施形態では、切断イベントが発生するたびに接続の変更のための処理を実行する例（図４参照）を示したが、切断イベントの回数を計測し、切断イベントの回数が予め定められた条件を満たした場合に接続の変更のための処理を実行するように構成されてもよい。例えば、切断イベントの回数が予め定められた回数に達した場合に接続の変更のための処理を実行するように構成されてもよい。空き接続数が増えた場合には、計画接続数の移し替えに成功する確率が高くなる。
【００５８】
＜変形例３＞
管理装置２０及びサーバ装置３０が物理マシン（物理的なコンピュータ）で構成されてもよい。この場合、サーバ装置３０によって信頼性が異なる場合がある。例えば、ハードウェアの構成、累積の稼働期間の長さなどによって、障害が発生する確率、障害の発生から復旧までの期間の長さなどが異なる場合がある。よって、サーバ装置３０が物理マシンで構成される場合には、優先度が信頼性に基づいて定められてもよい。例えば、信頼性が高いサーバ装置３０ほど高い優先度が設定されてもよい。サーバ装置３０が物理マシンである場合、サーバ装置３０の停止とは、例えば、サーバ装置３０への電力供給を停止することでもよく、サーバ装置３０の消費電力を低下させてＣＰＵを休止させることでもよい。
【００５９】
＜変形例４＞
コンピュータに上記の処理を実行させるためのプログラムは、例えば、光記録媒体、半導体メモリなどのコンピュータに読取り可能な記録媒体に持続的に記憶された状態で提供されてもよいし、インターネット等のネットワークを介して提供されてもよい。本発明に係るプログラムが記録媒体に持続的に記憶された状態で提供される場合、コンピュータが当該プログラムを記録媒体から読み取り用いる。また、本発明に係るプログラムがネットワークを介して提供される場合、コンピュータが当該プログラムを配信元の装置から受信して用いる。
【符号の説明】
【００６０】
１…情報処理システム、１０…情報処理装置、１１…制御部、１２…記憶部、１３…通信部、２０…管理装置、３０…サーバ装置、４０…クライアント装置
【図１】
2019061450.tif 000003
【図２】
2019061450.tif 000004
【図３】
2019061450.tif 000005
【図４】
2019061450.tif 000006
【図５】
2019061450.tif 000007
【図６】
2019061450.tif 000008