(57)【要約】【課題】仮想マシンをサーバとしてサービスを提供するシステムにおいて、仮想マシンを増加させた際に、増加した仮想マシンが稼働するまでに要する時間に基づく不具合の発生を抑制する。【解決手段】実行サーバ２００に処理を実行させる要求を保持する要求保持部１３０と、要求保持部１３０に保持された要求を実行サーバ２００へ送信する送受信部１１０と、実行サーバ２００の情報を管理し、実行サーバ２００が実行中の要求に対する処理の負荷と要求保持部１３０に保持されている要求に対する処理が実行される場合に予想される実行サーバ２００における処理の負荷とに基づく実行サーバ２００の状態が、予め定められた特定の条件を満足する場合に、実行サーバ２００の資源を増加させる実行サーバ管理部１６０と、を備える。【選択図】図２
2018041190.tif 000002
【特許請求の範囲】
【請求項１】
サーバに処理を実行させる要求を保持する要求保持部と、
前記要求保持部に保持された前記要求を前記サーバへ送信する送信部と、
前記サーバの情報を管理し、当該サーバが実行中の前記要求に対する処理の負荷と前記要求保持部に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷とに基づく当該サーバの状態が、予め定められた特定の条件を満足する場合に、前記サーバの資源を増加させるサーバ管理部と、
を備えることを特徴とする、情報処理装置。
【請求項２】
前記サーバは、仮想サーバであり、前記サーバ管理部は、前記仮想サーバのインスタンスを増加させることを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
前記サーバ管理部は、前記サーバが実行中の前記要求に対する処理の負荷と前記要求保持部に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷の合計が予め定められた値よりも大きい場合に、前記サーバの資源を増加させることを特徴とする、請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記サーバ管理部は、前記サーバが実行中の前記要求に対する処理の負荷と前記要求保持部に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷に基づく当該サーバの状態が、前記特定の条件とは異なる予め定められた準備依頼条件を満足する場合に、前記サーバの資源を増加するための準備を依頼することを特徴とする、請求項１乃至請求項３に記載の情報処理装置。
【請求項５】
前記サーバ管理部は、前記サーバが実行中の前記要求に対する処理の負荷と前記要求保持部に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷に基づく当該サーバの状態が、前記準備依頼条件を満足した後、前記特定の条件および当該準備依頼条件とは異なる予め定められた破棄条件を満足する場合に、前記資源を増加するための準備の依頼の破棄を依頼することを特徴とする、請求項４に記載の情報処理装置。
【請求項６】
要求をサーバへ送信し、当該要求に対する処理をサーバに実行させる制御方法であって、
サーバに処理を実行させる要求を記憶手段に保持するステップと、
当該サーバが実行中の前記要求に対する処理の負荷と前記記憶手段に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷とに基づく当該サーバの状態が、予め定められた特定の条件を満足する場合に、前記サーバの資源を増加させるステップと、
前記記憶手段に保持された前記要求を前記サーバへ送信するステップと、
を含むことを特徴とする、制御方法。
【請求項７】
コンピュータを、
サーバに処理を実行させる要求を保持する要求保持手段と、
前記要求保持手段に保持された前記要求を前記サーバへ送信する送信手段と、
前記サーバの情報を管理し、当該サーバが実行中の前記要求に対する処理の負荷と前記要求保持手段に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷とに基づく当該サーバの状態が、予め定められた特定の条件を満足する場合に、前記サーバの資源を増加させるサーバ管理手段として、
機能させることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法およびプログラムに関する。
【背景技術】
【０００２】
ネットワーク上に設定された仮想マシン（仮想サーバ）をサーバとして用い、サービスを提供するシステムが実現されている。この種のシステムにおいて、処理の量に応じて仮想マシンを増加（スケールアウト）させたり、減少（スケールイン）させたりする制御が行われる場合がある。特許文献１には、システムの負荷に応じて仮想マシンを増減させる従来技術が開示されている。同文献に記載された情報処理装置は、監視部、制御部および記憶部を備え、監視部は、管理対象のシステムの負荷をモニタし、制御部は、システムに対して過去に起動指示を行い、かつ、起動処理中である仮想マシンの状況、および、負荷のモニタ結果に応じて、システムにおける仮想マシンの起動指示と起動処理中である仮想マシンの停止指示を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１９４９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
仮想マシンをサーバとしてサービスを提供するシステムでは、システムの負荷が増大すると、仮想マシンを増加させて対応することが行われる。しかし、仮想マシンを増加させる操作を完了して追加された仮想マシンによる処理の実行が可能となる（追加された仮想マシンが稼働する）までには、時間を要する。そのため、負荷が増大した際、増加した仮想マシンが稼働するまでの間に、エラーや遅延等の不具合が発生する可能性があった。
【０００５】
本発明の目的は、仮想マシンをサーバとしてサービスを提供するシステムにおいて、仮想マシンを増加させた際に、増加した仮想マシンが稼働するまでに要する時間に基づく不具合の発生を抑制することにある。
【課題を解決するための手段】
【０００６】
本発明の請求項１に係る情報処理装置は、
サーバに処理を実行させる要求を保持する要求保持部と、
前記要求保持部に保持された前記要求を前記サーバへ送信する送信部と、
前記サーバの情報を管理し、当該サーバが実行中の前記要求に対する処理の負荷と前記要求保持部に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷とに基づく当該サーバの状態が、予め定められた特定の条件を満足する場合に、前記サーバの資源を増加させるサーバ管理部と、
を備えることを特徴とする、情報処理装置である。
請求項２に係る情報処理装置は、
前記サーバが、仮想サーバであり、前記サーバ管理部は、前記仮想サーバのインスタンスを増加させることを特徴とする、請求項１に記載の情報処理装置である。
請求項３に係る情報処理装置は、
前記サーバ管理部が、前記サーバが実行中の前記要求に対する処理の負荷と前記要求保持部に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷の合計が予め定められた値よりも大きい場合に、前記サーバの資源を増加させることを特徴とする、請求項１または請求項２に記載の情報処理装置である。
請求項４に係る情報処理装置は、
前記サーバ管理部が、前記サーバが実行中の前記要求に対する処理の負荷と前記要求保持部に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷に基づく当該サーバの状態が、前記特定の条件とは異なる予め定められた準備依頼条件を満足する場合に、前記サーバの資源を増加するための準備を依頼することを特徴とする、請求項１乃至請求項３に記載の情報処理装置である。
請求項５に係る情報処理装置は、
前記サーバ管理部が、前記サーバが実行中の前記要求に対する処理の負荷と前記要求保持部に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷に基づく当該サーバの状態が、前記準備依頼条件を満足した後、前記特定の条件および当該準備依頼条件とは異なる予め定められた破棄条件を満足する場合に、前記資源を増加するための準備の依頼の破棄を依頼することを特徴とする、請求項４に記載の情報処理装置である。
請求項６に係る方法は、
要求をサーバへ送信し、当該要求に対する処理をサーバに実行させる制御方法であって、
サーバに処理を実行させる要求を記憶手段に保持するステップと、
当該サーバが実行中の前記要求に対する処理の負荷と前記記憶手段に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷とに基づく当該サーバの状態が、予め定められた特定の条件を満足する場合に、前記サーバの資源を増加させるステップと、
前記記憶手段に保持された前記要求を前記サーバへ送信するステップと、
を含むことを特徴とする、制御方法である。
請求項７に係るプログラムは、
コンピュータを、
サーバに処理を実行させる要求を保持する要求保持手段と、
前記要求保持手段に保持された前記要求を前記サーバへ送信する送信手段と、
前記サーバの情報を管理し、当該サーバが実行中の前記要求に対する処理の負荷と前記要求保持手段に保持されている要求に対する処理が実行される場合に予想される当該サーバにおける処理の負荷とに基づく当該サーバの状態が、予め定められた特定の条件を満足する場合に、前記サーバの資源を増加させるサーバ管理手段として、
機能させることを特徴とする、プログラムである。
【発明の効果】
【０００７】
請求項１の発明によれば、サーバの負荷が増大して資源の増加が必要になってから資源を増加する構成と比較して、エラーや遅延が生じることなくサーバの処理を実行することができる。
請求項２の発明によれば、仮想サーバの負荷が増大してインスタンスの増加が必要になってからインスタンスを増加する構成と比較して、エラーや遅延が生じることなくサーバの処理を実行することができる。
請求項３の発明によれば、仮想サーバの負荷が増大して資源の増加が必要になってから資源を増加する構成と比較して、保持している要求を実行する際に対応するように資源の増加を依頼することにより、エラーや遅延が生じることなくサーバの処理を実行することができる。
請求項４の発明によれば、仮想サーバの負荷が増大して資源の増加が必要になってから資源を増加する構成と比較して、資源の増加が必要になる前に予め準備を依頼することにより、速やかに資源を増加させることを可能とし、エラーや遅延が生じることなくサーバの処理を実行することができる。
請求項５の発明によれば、仮想サーバの負荷が減少して資源を増加する必要がなくなった場合に、資源の増加の準備を破棄することで、無駄な資源の準備を抑制することができる。
請求項６の発明によれば、要求をサーバへ送信し、当該要求に対する処理をサーバに実行させる制御方法において、サーバの負荷が増大して資源の増加が必要になってから資源を増加する構成と比較して、エラーや遅延が生じることなくサーバの処理を実行することができる。
請求項７の発明によれば、コンピュータを制御するプログラムにおいて、サーバの負荷が増大して資源の増加が必要になってから資源を増加する構成と比較して、エラーや遅延が生じることなくサーバの処理を実行することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態が適用される情報処理システムの構成例を示す図である。
【図２】管理サーバの機能構成を示す図である。
【図３】管理サーバの動作を示すフローチャートである。
【図４】管理サーバの動作を示すフローチャートである。
【図５】管理サーバを実現するコンピュータ（情報処理装置）のハードウェア構成例を示す図である。
【発明を実施するための形態】
【０００９】
＜本実施形態が適用される情報処理システムの構成＞
図１は、本実施形態が適用される情報処理システムの構成例を示す図である。図１に示すように、本実施形態による情報処理システム１０は、管理サーバ１００と、実行サーバ２００と、クライアント３００とを備える。管理サーバ１００と実行サーバ２００とは、ネットワーク２０を介して接続されている。また、図示の構成において、クライアント３００は、ネットワーク２０を介さずに管理サーバ１００と接続されているが、ネットワーク２０を介して接続してもよい。また、図示の構成において、サービスＡ、サービスＢ、サービスＣをそれぞれ提供する３種類の実行サーバ２００が示されているが、実行サーバ２００の数は利用するサービスに応じて設定され、図示の３種類に限定されない。また、図１には、クライアント３００が１台のみ記載されているが、実際のシステムにおいては複数台のクライアント３００が管理サーバ１００に接続されてもよい。
【００１０】
ネットワーク２０は、管理サーバ１００と実行サーバ２００との間で情報通信を行えるものであれば特に限定されず、例えばインターネットやＬＡＮ（Local Area Network）等としてよい。情報通信に用いられる通信回線は、有線であっても無線であっても良い。また、複数のネットワークや通信回線を介して管理サーバ１００と実行サーバ２００とを接続しても良い。特に図示しないが、ネットワーク２０には、ネットワークや通信回線を接続するためのゲートウェイやハブ、無線ＬＡＮにおけるアクセスポイント等の中継装置が適宜設けられる。なお、詳しくは後述するが、本実施形態において、実行サーバ２００は、仮想マシンにより実現される。したがって、実際には、実行サーバ２００が物理的にネットワーク２０に接続されるのではなく、実行サーバ２００が構築されている物理的なサーバマシンがネットワーク２０に接続されている。
【００１１】
管理サーバ１００とクライアント３００とは、図１に示すように、ネットワークを介さずに直接接続してもよいし、ネットワーク２０を介して接続してもよい。また、管理サーバ１００と実行サーバ２００とが接続されたネットワーク２０とは異なるネットワークを介して接続してもよい。具体的な構成の一例としては、管理サーバ１００とクライアント３００とがＬＡＮにより接続され、管理サーバ１００と実行サーバ２００とがインターネットにより接続される構成が考えられる。
【００１２】
管理サーバ１００は、コンピュータにより実現される。管理サーバ１００は、クライアント３００から要求（リクエスト）を受け付けて、要求に応じた処理を実行する実行サーバ２００へ送信する。そして、実行サーバ２００から返送された応答（レスポンス）を受け付けて、クライアント３００へ送信する。本実施形態の管理サーバ１００は、クライアント３００から受け付けた要求に応じて、複数の実行サーバ２００にアクセスし、処理を実行させることがある。すなわち、受け付けた要求が、複数の処理の実行を要する要求であって、要求された複数の処理が個別の実行サーバ２００により実行される処理である場合、管理サーバ１００は、各処理を実行する実行サーバ２００にアクセスして処理を実行させる。複数の実行サーバ２００に処理を実行させる場合、各処理を順次実行させてもよいし、並列実行が可能な複数の処理に関しては、並列に実行させてもよい。
【００１３】
具体例として、文字が書かれた画像データに対して、光学的文字認識処理（ＯＣＲ；Optical Character Recognition/Reader）を行い、画像変換処理を行い、ネットワーク上の記憶装置に格納する処理（格納処理）を要求する場合を考える。ここで、光学的文字認識処理、画像変換処理、格納処理の各々は、別個の実行サーバ２００により実行される処理であるものとする。この場合、この要求を受け付けた管理サーバ１００は、まず、光学的文字認識処理を実行する実行サーバ２００にアクセスして画像データを送り、光学的文字認識処理を実行させる。そして、実行サーバ２００から光学的文字認識処理の処理結果を受け取ると、次に管理サーバ１００は、画像変換処理を実行する実行サーバ２００にアクセスして画像データを送り、画像変換処理を実行させる。そして、実行サーバ２００から画像変換処理の処理結果を受け取ると、次に管理サーバ１００は、格納処理を実行する実行サーバ２００にアクセスし、光学的文字認識処理および画像変換処理の処理結果を記憶装置に格納させる。なお、上記の具体例において、例えば、光学的文字認識処理と画像変換処理とが互いに独立した処理である場合、画像変換処理を先に実行させてもよいし、これらの処理を並列に実行してもよい。
【００１４】
実行サーバ２００は、ネットワーク２０に接続されたコンピュータ上に構築された仮想マシンにより実現される。一つの実行サーバ２００は、１台のコンピュータ上に構築した仮想マシンであってもよいし、複数のコンピュータに機能を分散させて構築した仮想マシンであってもよい。また、１台のコンピュータ上に複数の実行サーバ２００を構築し、複数のサービスを提供する構成としてもよい。サービスの提供における実行サーバ２００の性能（処理能力や記憶容量など）は、サービスの提供者や仮想マシンの提供者により予め設定される。そして、処理を実行する資源としての実行サーバ２００として動作する仮想マシンのインスタンスを増やしたり減らしたりすることにより、サービスの実行能力が変更される。管理サーバ１００から利用可能な実行サーバ２００のインスタンスの数および増減は、実行サーバ２００の管理サイトにより管理される。図１に示す例では、サービスＡ、サービスＢ、サービスＣをそれぞれ提供する３種類の実行サーバ２００が示されており、以下、これらを区別する場合は、提供されるサービスの符号を添え字として用い、実行サーバ２００Ａ、実行サーバ２００Ｂ、実行サーバ２００Ｃ等と記載する。
【００１５】
クライアント３００は、実行サーバ２００により提供されるサービスの利用者が使用する端末装置であり、パーソナルコンピュータ、携帯情報端末、プリンタ複合機、その他の種々の情報処理装置により実現される。
【００１６】
＜管理サーバの機能構成＞
図２は、管理サーバ１００の機能構成を示す図である。図２に示すように、管理サーバ１００は、送受信部１１０と、要求管理部１２０と、要求保持部１３０と、応答保持部１４０と、応答管理部１５０と、実行サーバ管理部１６０とを備える。送受信部１１０は、ネットワーク・インターフェイス（図示せず）を介して実行サーバ２００およびクライアント３００とデータ交換を行う。
【００１７】
要求管理部１２０は、送受信部１１０がクライアント３００から受信した要求を受け付け、要求保持部１３０に保持させる。要求保持部１３０は、送信先の実行サーバ２００ごとに設けられたキューである。図２に示す例では、図１に示した実行サーバ２００Ａ、２００Ｂ、２００Ｃに対応して、サービスＡ用のキュー１３１Ａ、サービスＢ用のキュー１３１Ｂ、サービスＣ用のキュー１３１Ｃが記載されている（以下、各キュー１３１Ａ、１３１Ｂ、１３１Ｃを区別しないときは、単にキュー１３１と記載する）。したがって、要求管理部１２０は、例えば、実行サーバ２００Ａにより提供されるサービスの要求を受け付けると、順次、要求保持部１３０のキュー１３１Ａに保持させる。要求保持部１３０のキュー１３１Ａ、１３１Ｂ、１３１Ｃに保持された要求は、各々保持された順に、送受信部１１０により、対応する実行サーバ２００Ａ、２００Ｂ、２００Ｃへ送信される。
【００１８】
また、要求管理部１２０が受け付けた要求が、一つの実行サーバ２００（例えば、実行サーバ２００Ａ）による処理結果に対して他の実行サーバ２００（例えば、実行サーバ２００Ｂ）による処理の実行を要求するものである場合を考える。この場合、要求管理部１２０は、実行サーバ２００Ａから返送された処理結果を新たな要求として、キュー１３１Ｂに保持させる。このようにして、一つの要求に対する複数の実行サーバ２００による処理が順次実行される。
【００１９】
要求保持部１３０は、上述したように、要求の送信先である実行サーバ２００ごとに設けられたキュー１３１である。本実施形態では、クライアント３００から受け付けた要求を要求保持部１３０に一時的に保持させた後、送信先の実行サーバ２００ごとに順次送信する。このように、実行サーバ２００へ送る要求を一時的に保持することにより、本実施形態は、受け付けた要求の量が増加したときに、直ちに実行サーバ２００の処理能力を超えてしまう事態が発生することを回避する。また、本実施形態は、要求保持部１３０に保持された要求の量を監視することにより、現在の実行サーバ２００の負荷だけでなく、これから実行サーバ２００へ依頼する要求の量に基づいて予想される実行サーバ２００の負荷に基づき、実行サーバ２００のインスタンスの増加を依頼する。本実施形態における実行サーバ２００のインスタンスの増加を依頼する機能の詳細については後述する。
【００２０】
応答保持部１４０は、送受信部１１０が実行サーバ２００から受信した応答（処理結果）を保持するキューである。応答保持部１４０のキューは、上述した要求保持部１３０のキューと異なり、実行サーバ２００ごとに設けられるのではなく単一である。すなわち、送受信部１１０により受信した応答は、いずれの実行サーバ２００から送信されたかに関わらず、受信した順番に応答保持部１４０に保持される。
【００２１】
応答管理部１５０は、応答保持部１４０に保持された応答を順次読み出し、処理する。ここでは、応答が要求を発行したクライアント３００に返送されるべきものであるならば、応答管理部１５０は、送受信部１１０により、その応答をクライアント３００へ返送させる。また、応答が次の実行サーバ２００による処理の対象であるならば、応答管理部１５０は、その応答を要求管理部１２０に渡し、要求管理部１２０が、その要求を、次の処理を行う実行サーバ２００に対応する要求保持部１３０のキュー１３１Ａ、１３１Ｂ、１３１Ｃに保持させる。
【００２２】
本実施形態は、応答管理部１５０が応答保持部１４０を管理することにより、実行サーバ２００の動作状況を把握する。すなわち、応答管理部１５０は、要求管理部１２０から実行サーバ２００へ送った要求の情報を取得し、実行サーバ２００へ送った要求と実行サーバ２００から受け取った応答との対応関係に基づいて、実行サーバ２００における要求の実行状況を把握する。また、実行サーバ２００のインスタンスの増減を行った場合は、実行サーバ２００の動作状況を把握することにより、インスタンスの増減に基づく処理能力の変化（インスタンスを増加または減少した後の処理能力）を認識する。
【００２３】
実行サーバ管理部１６０は、各実行サーバ２００のサービスの提供における性能の情報を管理する。実行サーバ２００は、仮想マシンのインスタンスとして構成されるため、インスタンスを増減することにより性能が変更する。そこで、実行サーバ管理部１６０は、各サービスの実行サーバ２００ごとに、インスタンス単位の性能の情報と、稼働しているインスタンスの数とを管理する。なお、インスタンス単位の性能の情報は、例えば予め、各実行サーバ２００のサービスの提供者や仮想マシンの提供者から取得し、管理サーバ１００の記憶装置（図示せず）に保持しておく。
【００２４】
また、実行サーバ管理部１６０は、各実行サーバ２００の負荷に応じて、実行サーバ２００のインスタンスを増加（スケールアウト）、減少（スケールイン）させる。このインスタンスの増減は、実行サーバ２００のオートスケール機能を利用して行ってもよいし、実行サーバ２００の管理サイトに依頼して行ってもよい。実行サーバ２００のオートスケール機能を利用する場合、実行サーバ管理部１６０は、オートスケール機能によりインスタンスの増加または減少を実行させるコマンドを、実行サーバ２００に送信する。以下、具体的な手法に関わらず、実行サーバ２００のインスタンスの増加（または減少）を実行させるための操作を行うことを、実行サーバ２００のインスタンスの増加（または減少）を依頼する等と記載する。
【００２５】
さらに、実行サーバ管理部１６０は、実行サーバ２００のインスタンスの負荷が増大する可能性が高いとして予め定められた条件を満たす場合に、実行サーバ２００のインスタンスを増加させる操作の準備を行うように、実行サーバ２００の管理サイトに依頼（準備依頼）する。準備依頼は、実際に増加することが必要になったときに、追加されたインスタンスが直ちに稼働できるように予め準備するように、実行サーバ２００の管理サイトに依頼するものである。具体的にどのような準備をするかは、実行サーバ２００の管理サイトに任されており、サービス内容等に応じて実行サーバ２００ごとに定めてよい。また、実際にインスタンスを増加させる依頼が行われたときに、直ちに稼働できるサーバであれば、事前の準備のための操作は特に行う必要はない。
【００２６】
＜実行サーバのインスタンスの増減の依頼＞
上述したように、実行サーバ管理部１６０は、現在の実行サーバ２００の負荷およびこれから実行サーバ２００へ依頼する要求の量に基づいて予想される実行サーバ２００の負荷に基づいて、実行サーバ２００に対し、インスタンスの増加を依頼する。現在の実行サーバ２００の負荷とは、実行サーバ２００が処理を実行中の要求を処理するために要する負荷（以下、現在負荷と呼ぶ）である。これから実行サーバ２００へ依頼する要求の量に基づいて予想される実行サーバ２００の負荷とは、要求保持部１３０において該当する実行サーバ２００用のキュー１３１に保持されている要求を処理するために要する負荷（以下、予想負荷と呼ぶ）である。本実施形態において、実行サーバ管理部１６０は、現在負荷と予想負荷を加算した負荷（以下、合計負荷と呼ぶ）の、実行サーバ２００において同時に実行可能な処理の量（以下、同時処理能力と呼ぶ）に対する割合に基づいて、インスタンスの増減を依頼する。
【００２７】
具体的な例を挙げて説明する。ある実行サーバ２００において、「要求ａ」、「要求ｂ」、「要求ｃ」の３種類の要求に対する処理を実行可能であるとする。そして、実行サーバ２００の同時処理能力を１００とすると、「要求ａ」に対する処理を実行するのに要する実行サーバ２００の同時処理能力は２０であるものとする。これは、「要求ａ」に対する処理を実行する際に、実行サーバ２００の同時処理能力の２０％が使用されることを意味する。同様に、「要求ｂ」に対する処理を実行するのに要する実行サーバ２００の同時処理能力は１０、「要求ｃ」に対する処理を実行するのに要する実行サーバ２００の同時処理能力は５であるものとする。
【００２８】
また、一例として、実行サーバ２００のインスタンスの増減に関する規則を、次のように設定する。
（１）稼働中の実行サーバ２００のインスタンスの全てにおいて、合計負荷が、１００％を超えたときは、インスタンスを１つ増加させる。
（２）稼働中の実行サーバ２００のインスタンスの数をＮ（Ｎは２以上）としたとき、合計負荷が、（Ｎ−２）台のインスタンスで１００％であり、１台のインスタンスで０％であり、残りの１台のインスタンスで８０％を下回ったときは、インスタンスを１つ減少させる。
（３）稼働中の実行サーバ２００のインスタンスの数をＭ（Ｍは１以上）としたとき、合計負荷が、（Ｍ−１）台のインスタンスで１００％であり、１台のインスタンスで８０％以上となったときは、インスタンスを増加するための準備依頼を行う。
【００２９】
簡単のために稼働中のインスタンスを１台として、負荷の計算例を示す。第１の計算例として、実行サーバ２００において、１個の「要求ａ」に対する処理、２個の「要求ｂ」に対する処理、３個の「要求ｃ」に対する処理が実行されているものとする。そして、要求保持部１３０のキュー１３１に、１個の「要求ｂ」が保持されているものとする。この場合、上記の各要求における負荷（要求に対する処理を実行するのに要する同時処理能力）に基づき、合計負荷は、
２０×１＋１０×２＋５×３＋１０×１＝６５
である。合計負荷が６５なので、上記の規則に基づき、インスタンスの増減に関する操作は行われない。
【００３０】
第２の計算例として、実行サーバ２００において、１個の「要求ａ」に対する処理、２個の「要求ｂ」に対する処理、６個の「要求ｃ」に対する処理が実行されているものとする。そして、要求保持部１３０のキュー１３１に、１個の「要求ｂ」が保持されているものとする。この場合、合計負荷は、
２０×１＋１０×２＋５×６＋１０×１＝８０
である。合計負荷が８０なので、上記の規則に基づき、実行サーバ管理部１６０は、実行サーバ２００の管理サイトにインスタンスを増加させるための準備依頼を行う。
【００３１】
第３の計算例として、実行サーバ２００において、２個の「要求ａ」に対する処理、３個の「要求ｂ」に対する処理、５個の「要求ｃ」に対する処理が実行されているものとする。そして、要求保持部１３０のキュー１３１に、１個の「要求ｂ」が保持されているものとする。この場合、合計負荷は、
２０×２＋１０×３＋５×５＋１０×１＝１０５
である。合計負荷が１０５で、１００を上回ったので、上記の規則に基づき、実行サーバ管理部１６０は、実行サーバ２００の管理サイトにインスタンスの増加を依頼する。
【００３２】
第４の計算例では、既にインスタンスの増加が１回行われており、２台のインスタンスが稼働中である場合について例示する。２台のインスタンスのうち、１台のインスタンスでは処理が実行されておらず、負荷が０％であるものとする。また、残りの１台のインスタンスにおいて、２個の「要求ａ」に対する処理、３個の「要求ｂ」に対する処理、３個の「要求ｃ」に対する処理が実行されており、要求保持部１３０のキュー１３１には新規の要求が保持されていないものとする。そして、実行サーバ２００において実行されていた処理のうち、１個の「要求ｂ」に対する処理が完了し、処理結果の応答が返送されて応答保持部１４０に保持されたものとする。この場合、合計負荷は、
２０×２＋１０×３＋５×３−１０×１＝７５
である。合計負荷が７５で、８０を下回ったので、上記の規則に基づき、実行サーバ管理部１６０は、実行サーバ２００の管理サイトにインスタンスの減少を依頼する。
【００３３】
ここで、上記の第３の計算例を参照すると、現在負荷は、９５（＝２０×２＋１０×３＋５×５）であり、まだ、実行サーバ２００の同時処理能力の１００％に達していない。しかし、これから要求保持部１３０に保持されている要求が実行されると実行サーバ２００の同時処理能力の１００％を超えるため、実行サーバ管理部１６０は、この時点で実行サーバ２００のインスタンスの増加を依頼する。これにより、実際に要求保持部１３０に保持されている要求が実行サーバ２００に送られて処理が実行される時点ではインスタンスが増加されており、エラーや遅延が生じることなく処理が実行される。
【００３４】
また、上記の第２の計算例を参照すると、実行サーバ管理部１６０は、合計負荷が８０に達した時点で、実行サーバ２００のインスタンスを増加するための準備を依頼する。これにより、インスタンスの増加に時間を要するサービスが行われる実行サーバ２００においては、予めインスタンスの増加の準備を行っておき、この後に要求が増えてインスタンスの増加が必要となった際に、直ちに追加のインスタンスを稼働して対応することが可能となる。
【００３５】
なお、上記のインスタンスの増減に関する各規則、各要求の負荷や計算例に示す数値などは、全て例示であり、上記の具体的な内容や値に限定されるものではない。実行サーバ２００が要求に対する処理を実行する際の負荷は、実際のシステムにおいて具体的に特定される。また、インスタンスの増減に関する規則は、少なくともインスタンスを増加する依頼を行うための基準として現在負荷と予想負荷とを考慮するものであればよく、具体的には、実行サーバ２００の仕様や情報処理システム１０の運用の態様等に応じて設定される。
【００３６】
＜管理サーバの動作＞
図３、４は、管理サーバ１００の動作を示すフローチャートである。図３に示すように、管理サーバ１００において、送受信部１１０を介して要求管理部１２０が、クライアント３００から要求を受け付けると（ステップ３０１）、受け付けた要求の内容に基づき、その要求を処理するサービス（実行サーバ２００）を決定する（ステップ３０２）。
【００３７】
次に、実行サーバ管理部１６０が、ステップ３０２で決定された実行サーバ２００の性能の情報を記憶装置から読み出して取得し（ステップ３０３）、インスタンスの増加の準備依頼を行う条件（準備依頼条件）を満足するか否かを判断する（ステップ３０４）。準備依頼条件としては、例えば、上述した合計負荷に基づく規則（規則（３）参照）等が設定される。準備依頼条件を満足しない場合（ステップ３０４でＮｏ）、要求管理部１２０による要求の実行依頼が行われる（ステップ３１１）。
【００３８】
一方、準備依頼条件を満足する場合（ステップ３０４でＹｅｓ）、次に実行サーバ管理部１６０は、既に準備依頼を行っているか否かを判断する（ステップ３０５）。まだ準備依頼が行われていない場合（ステップ３０５でＮｏ）、実行サーバ管理部１６０は、実行サーバ２００の管理サイトに対して準備依頼を実行する（ステップ３０６）。そして、要求管理部１２０による要求の実行依頼が行われる（ステップ３１１）。
【００３９】
これに対し、既に準備依頼が行われている場合（ステップ３０５でＹｅｓ）、次に実行サーバ管理部１６０は、準備依頼を破棄する条件（破棄条件）を満足するか否かを判断する（図４、ステップ３０７）。例えば、準備依頼条件を満足しなくなったときは、破棄条件を満足すると設定することができる。この場合、上述した合計負荷に基づく規則（３）を準備依頼条件とすると、合計負荷が８０％を下回ったとき、破棄条件を満足することになる。破棄条件を満足した場合（ステップ３０７でＹｅｓ）、実行サーバ管理部１６０は、実行サーバ２００の管理サイトに対して準備依頼の破棄を依頼する（ステップ３１０）。そして、要求管理部１２０による要求の実行依頼が行われる（ステップ３１１）。なお、ここでは、準備依頼条件を満足しなくなったときに破棄条件を満足することとしたが、準備依頼条件とは別に破棄条件を設定しても良い。
【００４０】
一方、破棄条件を満足しない場合（ステップ３０７でＮｏ）、上記の破棄条件の例では、準備依頼条件を満足した状態が継続している場合、次に実行サーバ管理部１６０は、実行サーバ２００のインスタンスを増加させるための条件（増加条件）を満足するか否かを判定する（ステップ３０８）。増加条件としては、例えば、上述した合計負荷に基づく規則（規則（１）参照）等が設定される。増加条件を満足しない場合（ステップ３０８でＮｏ）、要求管理部１２０による要求の実行依頼が行われる（ステップ３１１）。
【００４１】
一方、増加条件を満足する場合（ステップ３０８でＹｅｓ）、実行サーバ管理部１６０は、実行サーバ２００のインスタンスの増加を依頼する（ステップ３０９）。そして、要求管理部１２０による要求の実行依頼が行われる（ステップ３１１）。
【００４２】
ステップ３１１において、要求管理部１２０は、要求に対する処理を実行する実行サーバ２００に対応する要求保持部１３０のキュー１３１に要求を保持させる。そして、キュー１３１に保持されている要求を、順次、実行サーバ２００へ送る。要求が実行サーバ２００へ送られると、ステップ３１１におけるその要求に対する実行依頼が完了する。
【００４３】
ステップ３１１における要求の実行依頼が完了すると、次に、実行サーバ管理部１６０は、実行サーバ２００のインスタンスを減少させるための条件（減少条件）を満足するか否かを判定する（ステップ３１２）。減少条件としては、例えば、上述した合計負荷に基づく規則（規則（２）参照）等が設定される。減少条件を満足する場合（ステップ３１２でＹｅｓ）、実行サーバ管理部１６０が実行サーバ２００のインスタンスの減少を依頼する（ステップ３１３）。そして、この要求に関する処理が終了する。一方、減少条件を満足しない場合（ステップ３１２でＮｏ）、インスタンスを減少させる必要がないので、そのままこの要求に関する処理が終了する。
【００４４】
以上、本実施形態の管理サーバ１００による実行サーバ２００の制御方法について説明したが、上記の手順は例示に過ぎない。本実施形態は、管理サーバ１００が実行サーバ２００において実行中の要求および要求保持部１３０に保持されている要求に基づいて実行サーバ２００のインスタンスの増加や増加の準備を依頼するものであればよく、具体的な動作は、図３、４に示す手順に限定されるものではない。
【００４５】
＜管理サーバ１００のハードウェア構成例＞
図５は、管理サーバ１００を実現するコンピュータ（情報処理装置）のハードウェア構成例を示す図である。図５に示すように、管理サーバ１００は、制御手段および演算手段であるＣＰＵ（Central Processing Unit）１０１と、ＲＡＭ１０２およびＲＯＭ１０３と、外部記憶装置１０４と、ネットワーク・インターフェイス部１０５とを備える。ＣＰＵ１０１は、ＲＯＭ１０３に格納されているプログラムを実行することにより、要求管理部１２０、応答管理部１５０および実行サーバ管理部１６０の機能を実現する。ＲＡＭ１０２は、ＣＰＵ２０１による制御や演算処理において作業メモリとして用いられるとともに、要求保持部１３０（キュー１３１）および応答保持部１４０として機能する。ＲＯＭ１０３は、ＣＰＵ１０１が実行するプログラムや制御において用いられる各種のデータを格納している。外部記憶装置１０４は、例えば磁気ディスク装置や、データの読み書きが可能で不揮発性の半導体メモリで実現され、ＲＡＭ１０２に展開されてＣＰＵ１０１により実行されるプログラムや、ＣＰＵ１０１による演算処理の結果を格納する。ネットワーク・インターフェイス部１０５は、ネットワーク２０に接続して、実行サーバ２００やクライアント３００との間でデータの送受信を行う。なお、図５に示す構成例は、管理サーバ１００をコンピュータで実現するハードウェア構成の一例に過ぎない。管理サーバ１００の具体的構成は、本実施形態の機能を実現し得るものであれば、図５に示す構成例に限定されない。
【符号の説明】
【００４６】
１０…情報処理システム、２０…ネットワーク、１００…管理サーバ、１１０…送受信部、１２０…要求管理部、１３０…要求保持部、１４０…応答保持部、１５０…応答管理部、１６０…実行サーバ管理部
【図１】
2018041190.tif 000003
【図２】
2018041190.tif 000004
【図３】
2018041190.tif 000005
【図４】
2018041190.tif 000006
【図５】
2018041190.tif 000007