(57)【要約】【課題】クライアント装置からの複数の処理要求を連続して受付けて処理する際に、処理要求を処理するために起動する仮想マシンの数を増減させる制御を実行する場合でも、ユーザからの処理要求を受付けてから必要な仮想マシンの数を確保する場合と比較して、仮想マシンの不要な増減処理を削減する。【解決手段】処理要求受付部３１は、画像形成装置２０からの複数の処理要求を連続的に受付ける。受信部３４は、処理要求を受付ける前に、その処理要求の処理負荷を予測可能な情報を画像形成装置２０から受信する。予測部３５は、受信部３４により受信された情報を用いて、その処理要求を処理するために必要な仮想マシンの必要数を順次予測する。オートスケール制御部３３は、実行待ちの処理要求の量に応じて起動する仮想マシンの数を増減させる制御を行う際に、予測部３５により予測された仮想マシンの必要数が確保されるように仮想マシンの数を制御する。【選択図】図３
2020038518.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置からの複数の処理要求を連続的に受付ける受付手段と、
前記受付手段により処理要求を受付ける前に、当該処理要求の処理負荷を予測可能な情報を前記クライアント装置から受信する受信手段と、
前記受信手段により受信された前記処理要求の処理負荷を予測可能な情報を用いて、当該処理要求を処理するために必要な仮想マシンの必要数を順次予測する予測手段と、
実行待ちの処理要求の量に応じて起動する仮想マシンの数を増減させる制御を行う際に、前記予測手段により予測された仮想マシンの必要数が確保されるように仮想マシンの数を制御する制御手段と、
を備えた情報処理装置。
【請求項２】
前記処理要求の処理負荷を予測可能な情報が、前記クライアント装置において処理要求の処理内容が確定する前に生成された情報である請求項１記載の情報処理装置。
【請求項３】
前記予測手段は、前記クライアント装置において処理要求の処理内容が確定する前に生成された情報が更新された場合、当該処理要求を処理するために必要な仮想マシンの必要数を再度予測する請求項２記載の情報処理装置。
【請求項４】
前記処理要求の処理負荷を予測可能な情報が、前記クライアント装置におけるユーザの操作内容を参照することにより生成された情報である請求項１から３のいずれか記載の情報処理装置。
【請求項５】
前記制御手段は、
仮想マシンの使用状況から起動中の未使用の仮想マシンの数である未使用数を算出する第１の算出手段と、
前記未使用数から前記予測手段により予測された必要数を減算することにより、当該処理要求を処理した場合に発生する仮想マシンの過不足数を算出する第２の算出手段とを備え、
前記過不足数により表された仮想マシンの過不足が解消されるように仮想マシンの数を制御することにより、前記予測手段により予測された仮想マシンの必要数が確保されるような仮想マシンの数の制御を実行する請求項１から４のいずれか記載の情報処理装置。
【請求項６】
前記制御手段は、前記未使用数が１以上であっても、前記過不足数が１より小さい場合には、仮想マシンの数を減じる制御を実行しない請求項５記載の情報処理装置。
【請求項７】
前記受信手段は、前記受付手段により受け付けた処理要求が、実行待ちの処理要求を格納する格納手段に格納される前に、当該処理要求の処理負荷を予測可能な情報を前記クライアント装置から受信する請求項１から６のいずれか記載の情報処理装置。
【請求項８】
クライアント装置からの複数の処理要求を連続的に受付ける受付ステップと、
前記受付ステップにおいて処理要求を受付ける前に、当該処理要求の処理負荷を予測可能な情報を前記クライアント装置から受信する受信ステップと、
前記受信ステップにおいて受信された前記処理要求の処理負荷を予測可能な情報を用いて、当該処理要求を処理するために必要な仮想マシンの必要数を順次予測する予測ステップと、
実行待ちの処理要求の量に応じて起動する仮想マシンの数を増減させる制御を行う際に、前記予測ステップにおいて予測された仮想マシンの必要数が確保されるように仮想マシンの数を制御する制御ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、情報処理装置と連携したデータ処理を行う処理提供装置に、データ処理が開始される前に資源の確保または解放の要求を送信することで、処理提供装置の応答性能を向上させるようにした情報処理システムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−０８７９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、クライアント装置からの複数の処理要求を連続して受付けて処理する際に、処理要求を処理するために起動する仮想マシンの数を増減させる制御を実行する場合でも、ユーザからの処理要求を受付けてから必要な仮想マシンの数を確保する場合と比較して、仮想マシンの不要な増減処理を削減することが可能な情報処理装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００５】
［情報処理装置］
請求項１に係る本発明は、クライアント装置からの複数の処理要求を連続的に受付ける受付手段と、
前記受付手段により処理要求を受付ける前に、当該処理要求の処理負荷を予測可能な情報を前記クライアント装置から受信する受信手段と、
前記受信手段により受信された前記処理要求の処理負荷を予測可能な情報を用いて、当該処理要求を処理するために必要な仮想マシンの必要数を順次予測する予測手段と、
実行待ちの処理要求の量に応じて起動する仮想マシンの数を増減させる制御を行う際に、前記予測手段により予測された仮想マシンの必要数が確保されるように仮想マシンの数を制御する制御手段とを備えた情報処理装置である。
【０００６】
請求項２に係る本発明は、前記処理要求の処理負荷を予測可能な情報が、前記クライアント装置において処理要求の処理内容が確定する前に生成された情報である請求項１記載の情報処理装置である。
【０００７】
請求項３に係る本発明は、前記予測手段が、前記クライアント装置において処理要求の処理内容が確定する前に生成された情報が更新された場合、当該処理要求を処理するために必要な仮想マシンの必要数を再度予測する請求項２記載の情報処理装置である。
【０００８】
請求項４に係る本発明は、前記処理要求の処理負荷を予測可能な情報が、前記クライアント装置におけるユーザの操作内容を参照することにより生成された情報である請求項１から３のいずれか記載の情報処理装置である。
【０００９】
請求項５に係る本発明は、前記制御手段が、
仮想マシンの使用状況から起動中の未使用の仮想マシンの数である未使用数を算出する第１の算出手段と、
前記未使用数から前記予測手段により予測された必要数を減算することにより、当該処理要求を処理した場合に発生する仮想マシンの過不足数を算出する第２の算出手段とを備え、
前記過不足数により表された仮想マシンの過不足が解消されるように仮想マシンの数を制御することにより、前記予測手段により予測された仮想マシンの必要数が確保されるような仮想マシンの数の制御を実行する請求項１から４のいずれか記載の情報処理装置である。
【００１０】
請求項６に係る本発明は、前記制御手段が、前記未使用数が１以上であっても、前記過不足数が１より小さい場合には、仮想マシンの数を減じる制御を実行しない請求項５記載の情報処理装置である。
【００１１】
請求項７に係る本発明は、前記受信手段が、前記受付手段により受け付けた処理要求が、実行待ちの処理要求を格納する格納手段に格納される前に、当該処理要求の処理負荷を予測可能な情報を前記クライアント装置から受信する請求項１から６のいずれか記載の情報処理装置である。
【００１２】
［プログラム］
請求項８に係る本発明は、クライアント装置からの複数の処理要求を連続的に受付ける受付ステップと、
前記受付ステップにおいて処理要求を受付ける前に、当該処理要求の処理負荷を予測可能な情報を前記クライアント装置から受信する受信ステップと、
前記受信ステップにおいて受信された前記処理要求の処理負荷を予測可能な情報を用いて、当該処理要求を処理するために必要な仮想マシンの必要数を順次予測する予測ステップと、
実行待ちの処理要求の量に応じて起動する仮想マシンの数を増減させる制御を行う際に、前記予測ステップにおいて予測された仮想マシンの必要数が確保されるように仮想マシンの数を制御する制御ステップとをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１３】
請求項１に係る本発明によれば、クライアント装置からの複数の処理要求を連続して受付けて処理する際に、処理要求を処理するために起動する仮想マシンの数を増減させる制御を実行する場合でも、ユーザからの処理要求を受付けてから必要な仮想マシンの数を確保する場合と比較して、仮想マシンの不要な増減処理を削減することが可能な情報処理装置を提供することができる。
【００１４】
請求項２に係る本発明によれば、クライアント装置において処理要求の処理内容が確定する前であっても、処理要求を処理するために必要な仮想マシンの必要数を予測することが可能な情報処理装置を提供することができる。
【００１５】
請求項３に係る本発明によれば、クライアント装置により処理要求の処理内容が変更された場合でも、変更された処理内容の処理要求を処理するために必要な仮想マシンの必要数を予測することが可能な情報処理装置を提供することができる。
【００１６】
請求項４に係る本発明によれば、クライアント装置におけるユーザの操作内容を参照するだけで、処理要求を処理するために必要な仮想マシンの必要数を予測することが可能な情報処理装置を提供することができる。
【００１７】
請求項５に係る本発明によれば、クライアント装置からの複数の処理要求を連続して受付けて処理する際に、処理要求を処理するために起動する仮想マシンの数を増減させる制御を実行する場合でも、ユーザからの処理要求を受付けてから必要な仮想マシンの数を確保する場合と比較して、仮想マシンの不要な増減処理を削減することが可能な情報処理装置を提供することができる。
【００１８】
請求項６に係る本発明によれば、起動中の未使用の仮想マシンが１つ以上ある場合でも、仮想マシンの数を減らすと今後受付けた処理要求を処理する際に仮想マシンの数が不足することが予測される場合には仮想マシンの数を減ずる制御が実行されないようにすることが可能な情報処理装置を提供することができる。
【００１９】
請求項７に係る本発明によれば、クライアント装置からの複数の処理要求を連続して受付けて処理する際に、処理要求を処理するために起動する仮想マシンの数を増減させる制御を実行する場合でも、ユーザからの処理要求を受付けてから必要な仮想マシンの数を確保する場合と比較して、仮想マシンの不要な増減処理を削減することが可能な情報処理装置を提供することができる。
【００２０】
請求項８に係る本発明によれば、クライアント装置からの複数の処理要求を連続して受付けて処理する際に、処理要求を処理するために起動する仮想マシンの数を増減させる制御を実行する場合でも、ユーザからの処理要求を受付けてから必要な仮想マシンの数を確保する場合と比較して、仮想マシンの不要な増減処理を削減することが可能なプログラムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態の情報処理システムのシステム構成を示す図である。
【図２】本発明の一実施形態におけるサービス提供装置１０のハードウェア構成を示すブロック図である。
【図３】本発明の一実施形態におけるサービス提供装置１０の機能構成を示すブロック図である。
【図４】オートスケール制御部３３の構成を説明するための図である。
【図５】サービス種類毎の仮想マシンの必要数の設定例を示す図である。
【図６】処理要求１、２、３についての仮想マシンの必要数を予測した場合を説明するための図である。
【図７】予測部３５において仮想マシンの必要数を算出する際に使用される計算式例を説明するための図である。
【図８】仮想マシン数増減制御部４３の動作を説明するための図である。
【図９】仮想マシン数増減制御部４３により行われる仮想マシン数の具体的な増減制御例を説明するための図である。
【図１０】本発明の一実施形態におけるサービス提供装置１０の動作を説明するためのフローチャートである。
【図１１】スケールイン、スケールアウトの具体例を説明するための図である。
【図１２】本発明の一実施形態におけるサービス提供装置１０における動作を説明するためのシーケンスチャートである。
【図１３】画像形成装置２０において、ユーザがあるサービスを利用するために操作パネル７１上において画像の選択を行っている様子を示す図である。
【発明を実施するための形態】
【００２２】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００２３】
図１は本発明の一実施形態の情報処理システムのシステム構成を示す図である。
【００２４】
本発明の一実施形態の情報処理システムは、図１に示されるように、サービス提供装置１０と、画像形成装置２０と、領収書保存サーバ６１、名刺管理サーバ６２、データ保存サーバ６３とが、インターネット等のネットワーク３０により相互に接続された構成となっている。
【００２５】
画像形成装置２０は、画像形成装置１０は、印刷（プリント）機能、スキャン機能、複写（コピー）機能、ファクシミリ機能等の複数の機能を有するいわゆる複合機と呼ばれる装置である。
【００２６】
そして、サービス提供装置１０は、画像形成装置２０において読み取られた文書画像等の各種画像データに対して、ＯＣＲ（Optical Character Reading：光学式文字読取り）処理、翻訳処理、保存処理等を行う各種サービスを提供している。そして、サービス提供装置１０は、他の事業会社により運営されている領収書保存サーバ６１、名刺管理サーバ６２、データ保存サーバ６３等の各種サーバ装置と連携して、様々なサービスの提供を行っている。
【００２７】
例えば、画像形成装置２０において領収書やレシート等の読み取った画像データをサービス提供装置１０に転送することにより、その画像データに各種処理を行った後に領収書保存サーバ６１に転送して格納することにより経費精算サービスが実現される。
【００２８】
また、例えば画像形成装置２０において名刺を読み取った画像データをサービス提供装置１０に転送することにより、その画像データに各種処理を行った後に名刺管理サーバ６２に転送して格納することにより名刺管理サービスが実現される。
【００２９】
このようなサービス提供装置１０のハードウェア構成を図２に示す。
【００３０】
サービス提供装置１０は、図２に示されるように、ＣＰＵ１１、メモリ１２、ハードディスクドライブ（ＨＤＤ）等の記憶装置１３、ネットワーク３０を介して外部の装置等との間でデータの送信及び受信を行う通信インタフェース（ＩＦ）１４、タッチパネル又は液晶ディスプレイ並びにキーボードを含むユーザインタフェース（ＵＩ）装置１５を有する。これらの構成要素は、制御バス１６を介して互いに接続されている。
【００３１】
ＣＰＵ１１は、メモリ１２または記憶装置１３に格納された制御プログラムに基づいて所定の処理を実行して、サービス提供装置１０の動作を制御する。なお、本実施形態では、ＣＰＵ１１は、メモリ１２または記憶装置１３内に格納された制御プログラムを読み出して実行するものとして説明するが、当該プログラムをＣＤ−ＲＯＭ等の記憶媒体に格納してＣＰＵ１１に提供することも可能である。
【００３２】
図３は、上記の制御プログラムが実行されることにより実現されるサービス提供装置１０の機能構成を示すブロック図である。
【００３３】
本実施形態におけるサービス提供装置１０は、図３に示されるように、処理要求受付部３１と、処理要求格納部３２と、オートスケール制御部３３と、受信部３４と、予測部３５と、処理実行部３６と、処理結果格納部３７と、処理結果送信部３８とを備えている。
【００３４】
ここで、処理実行部３６は、画像形成装置２０から送信されてくる処理要求を、起動された複数の仮想マシン５１によって処理理可能な処理手段である。
【００３５】
ここで、仮想マシンとは、１つの物理的コンピュータ内において仮想的（疑似的）に作り上げられた実行環境を意味する。このような仮想マシンを用いることにより、１つのコンピュータにより構成されたサーバや装置等の物理的マシン内において、複数の仮想マシンを構成して、それぞれの仮想マシンを並列処理させるようなことが可能となる。なお、この仮想マシンは、インスタンスと呼ばれる場合もある。
【００３６】
そして、この仮想マシンの起動数を、実行すべき処理の処理量に応じて制御する処理はオートスケールと呼ばれている。このオートスケールが行われることにより、仮想マシンの起動数と比較して、実行すべき処理の処理量が多い場合には仮想マシンの起動数が増加するような制御（スケールアウト）が行われ、仮想マシンの起動数と比較して、実行すべき処理の処理量が少ない場合には仮想マシンの起動数が減少するような制御（スケールイン）が行われる。
【００３７】
処理要求受付部３１は、クライアント装置である画像形成装置２０からの複数の処理要求を連続的に受付ける。
【００３８】
処理要求格納部３２は、処理要求受付部３１により受付けられた処理要求をキューとして一時的に格納する。処理実行部３６は、処理要求格納部３２に格納されている処理要求を取得して、取得した処理要求に基づく処理を実行する。
【００３９】
オートスケール制御部３３は、実行待ちの処理要求の量に応じて起動する仮想マシンの数を増減させる制御を行う際に、予測部３５により予測された仮想マシンの必要数が確保されるように、処理実行部３６において起動される仮想マシンの数を制御する。
【００４０】
受信部３４は、処理要求受付部３１により処理要求を受付ける前に、その処理要求の処理負荷を予測可能な情報を画像形成装置２０から受信する。受信部３４は、処理要求の処理負荷を予測可能な情報として、画像形成装置２０において処理要求の処理内容が確定する前に生成された情報を受信する。
【００４１】
具体的には、受信部３４は、処理要求の処理負荷を予測可能な情報として、画像形成装置２０におけるユーザの操作内容を参照することにより生成された情報を受信する。
【００４２】
ここで、ユーザの操作内容を参照することにより生成された情報としては、ユーザが処理を実行しようとするデータの種類に関する情報、そのユーザが処理を実行しようとするデータのデータ量に関する情報、そのユーザが実行しようとする処理内容の種類に関する情報を用いることができる。
【００４３】
さらに、受信部３４は、処理要求受付部３１により受け付けた処理要求が、実行待ちの処理要求を格納する処理要求格納部３２に格納される前に、その処理要求の処理負荷を予測可能な情報を画像形成装置２０から受信する。
【００４４】
予測部３５は、受信部３４により受信された処理要求の処理負荷を予測可能な情報を用いて、その処理要求を処理するために必要な仮想マシンの必要数を順次予測する。
【００４５】
なお、予測部３５は、画像形成装置２０において処理要求の処理内容が確定する前に生成された情報が更新された場合、その処理要求を処理するために必要な仮想マシンの必要数を再度予測する。
【００４６】
処理結果格納部３７は、処理実行部３６により処理が行われた後の処理結果を格納する。処理結果送信部３８は、処理結果格納部３７に格納された処理結果を、領収書保存サーバ６１、名刺管理サーバ６２、データ保存サーバ６３等の各種サーバに送信する。
【００４７】
次に、オートスケール制御部３３の構成について図４を参照して説明する。
【００４８】
オートスケール制御部３３は、図４に示されるように、未使用数算出部４１と、過不足数算出部４２と、仮想マシン数増減制御部４３とから構成されている。
【００４９】
未使用数算出部４１は、処理実行部３６における仮想マシン５１の使用状況から起動中の未使用の仮想マシンの数である未使用数を算出する。
【００５０】
過不足数算出部４２は、未使用数算出部４１により算出された未使用数から予測部３５により予測された必要数を減算することにより、その処理要求を処理した場合に発生する仮想マシンの過不足数を算出する。
【００５１】
仮想マシン数増減制御部４３は、過不足数算出部４２により算出された過不足数により表された仮想マシン５１の過不足が解消されるように処理実行部３６における仮想マシン５１の起動数を制御することにより、予測部３５により予測された仮想マシンの必要数が確保されるような仮想マシンの起動数の制御を実行する。
【００５２】
上述したような制御が行われることにより、オートスケール制御部３３は、未使用数が１以上であっても、過不足数が１より小さい場合には、仮想マシンの数を減じる制御を実行しないことになる。
【００５３】
次に、本実施形態の情報処理システムにおけるサービス提供装置１０の動作について図面を参照して詳細に説明する。
【００５４】
先ず、予測部３５が受信部３４により受信された情報に基づいて仮想マシンの必要数を予測する際の具体例を図５、図６、図７を参照して説明する。
【００５５】
先ず、画像形成装置２０において、ユーザが実行しようとする処理内容の種類、つまり実行しようとするサービス種類に基づいて、予測部３５が仮想マシンの必要数を予測する場合について説明する。
【００５６】
例えば、サービス種類毎の仮想マシンの必要数の設定例を図５に示す。図５では、領収書保存サービス、名刺管理サービス、データ記憶サービスというサービス種類に対して、それぞれ仮想マシンの必要数が、０．２５、１、０．５と設定されている場合が示されている。
【００５７】
このように設定されている場合、図６に示すような処理要求１、２、３についての仮想マシンの必要数を予測する場合、予測部３５は、各処理要求のサービス種類を参照して、それぞれの処理要求を処理するために必要な仮想マシンの必要数を、図５の設定内容を参照して予測する。
【００５８】
ただし、この場合は処理対象のデータ量や種類等については考慮されていないため、予測部３５は、図７に示すような計算式を用いて仮想マシンの必要数を算出するようにしても良い。
【００５９】
図７の示した計算式例では、サービス種類、ＭＩＭＥ（Multipurpose Internet Mail Extension）タイプ組み合わせ毎に、Ｘ（ＫＢ）のデータ量の場合の仮想マシンの必要数を算出するための計算式が示されている。ここで、ＭＩＭＥタイプとは、データファイルの種類を示す情報である。
【００６０】
そして、このように予測部３５により必要数が予測されると、オートスケール制御部３３における過不足数算出部４２では、未使用数算出部４１により算出された仮想マシンの未使用数から、予測部３５により予測された必要数を減算することにより過不足数を算出する。
【００６１】
ここで、過不足数が１より大きい場合には、仮想マシンの数が過剰であることを示し、マイナスの値の場合には、仮想マシンの数が不足していることを示している。
【００６２】
そのため、仮想マシン数増減制御部４３は、算出された過不足数を用いて、例えば、図８に示すような仮想マシンの起動数の増減制御を行う。
【００６３】
仮想マシン数増減制御部４３では、図８に示されるように、過不足数が１以上の場合にはスケールアウト、つまり仮想マシンの起動数を増加させる制御が行われる。具体的には、仮想マシン数増減制御部４３は、過不足数以下の最大の整数を増減数として、仮想マシンの起動数を増加させるような制御を実行する。
【００６４】
また、仮想マシン数増減制御部４３では、図８に示されるように、過不足数が０未満の場合にはスケールイン、つまり仮想マシンの起動数を減少させる制御が行われる。具体的には、仮想マシン数増減制御部４３は、過不足数の絶対値以上の最小の整数を増減数として、仮想マシンの起動数を減少させるような制御を実行する。
【００６５】
なお、過不足数が０以上１未満の場合には、仮想マシン数増減制御部４３は、仮想マシンの起動数を変化させずに現在の起動数を維持するような制御を行う。
【００６６】
このような設定の場合に行われる仮想マシンの具体的な増減制御例について図９を参照して説明する。
【００６７】
例えば、図９に示すように未使用数が２で必要数が１．７５の場合、過不足数算出部４２により算出される過不足数（未使用数-必要数）は、０．２５（＝２−１．７５）となる。そのため、仮想マシン数増減制御部４２は、現在の仮想マシンを維持するような制御を行う。
【００６８】
また、未使用数が３で必要数が１．７５の場合、過不足数算出部４２により算出される過不足数は、１．２５（３−１．７５）となる。つまり、過不足数が１以上であるため、仮想マシン数増減制御部４２は、現在の仮想マシンを１減じるようなスケールイン制御を行う。
【００６９】
さらに、未使用数が１で必要数が１．７５の場合、過不足数算出部４２により算出される過不足数は、−０．７５（１−１．７５）となる。つまり、過不足数が０未満であるため、仮想マシン数増減制御部４２は、現在の仮想マシンを１増加させるようなスケールアウト制御を行う。
【００７０】
次に、上記で説明したサービス提供装置１０の動作を図１０のフローチャートを参照して説明する。
【００７１】
先ず、受信部３４は、画像形成装置２０から、処理要求が確定する前の処理要求の内容を示す操作情報を受信する（ステップＳ１０１）。
【００７２】
すると、予測部３５は、受信部３４により受信された操作情報に基づいて、処理要求を処理するために必要となる仮想マシンの数を必要数として予測する（ステップＳ１０２）。
【００７３】
すると、オートスケール制御部３３の過不足数算出部４２は、未使用数算出部４１により算出された未使用数から、予測部３５により予測された必要数を減算して過不足数を算出する（ステップＳ１０３）。
【００７４】
そして、仮想マシン数増減制御部４３は、過不足数算出部４２により算出された過不足数が、０未満であるのか、０以上１未満であるのか、１以上であるのかを判定する（ステップＳ１０４）。
【００７５】
そして、ステップＳ１０４において過不足数が０未満であると判定された場合、仮想マシン数増減制御部４３は、ユーザが操作中の処理要求が確定して送信されてきた場合、仮想マシン数が不足すると判定して、仮想マシンの起動数を増加させるスケールアウト制御を実行する（ステップＳ１０５）。
【００７６】
また、ステップＳ１０４において過不足数が０以上１未満であると判定された場合、仮想マシン数増減制御部４３は、ユーザが操作中の処理要求が確定して送信されてきても、仮想マシン数が不足せずまた多過ぎもしないと判定して、仮想マシンの起動数を現状維持とする。
【００７７】
また、ステップＳ１０４において過不足数が１以上であると判定された場合、仮想マシン数増減制御部４３は、ユーザが操作中の処理要求が確定して送信されてきたとしても、仮想マシン数が多過ぎると判定する。そして、キュー（処理要求格納部３２）に格納されている処理要求の数が０で、かつ１００％空き状態の仮想マシンがある場合（ステップＳ１０６においてｙｅｓ）、仮想マシン数増減制御部４３は、仮想マシンの起動数を減少させるスケールイン制御を実行する（ステップＳ１０７）。
【００７８】
このようにして実行されるスケールイン、スケールアウトの具体例について図１１を参照して説明する。この図１１では、時刻経過とともに連続して処理要求を受信する場合について説明する。
【００７９】
先ず、時刻ｔ０において、起動中の仮想マシン数が１、未使用数が１で、必要数が１の場合、過不足数（未使用数−必要数）は０となる。そのため、仮想マシン数増減制御部４３では、増減数は０と判定されることになる。
【００８０】
そして、時刻ｔ１において、起動中の仮想マシン数が１、未使用数が１で、必要数が２に増加した場合、過不足数は−１（＝１−２）となる。そのため、仮想マシン数増減制御部４３では、増減数は−１と判定され、仮想マシンの起動数を１増加させるスケールアウト制御が行われる。
【００８１】
そして、時刻ｔ２において、スケールアウト制御が行われたことにより起動中の仮想マシン数が２、未使用数が１で、必要数が１．５となった場合、過不足数は０．５（＝２−１．５）となる。そのため、仮想マシン数増減制御部４３では、増減数は０と判定されることになる。
【００８２】
そして、時刻ｔ３において、起動中の仮想マシン数が２のままで、未使用数が１に減り、必要数が２に増加した場合、過不足数は−１（＝１−２）となる。そのため、仮想マシン数増減制御部４３では、増減数は−１と判定され、仮想マシンの起動数を１増加させるスケールアウト制御が行われる。
【００８３】
もし、時刻ｔ３において現在の起動中の仮想マシン数と、未使用の仮想マシン数である未使用数のみを参照してオートスケール制御が行われた場合、未使用数が１以上であるため仮想マシンの起動数を減らすスケールイン制御が行われてしまう。
【００８４】
しかし、時刻ｔ３ではまだ確定していない処理要求に基づく必要数が２であるため、過不足数が−１となり逆に起動数を増加させるようなスケールアウト制御が行われる。
【００８５】
そして、時刻ｔ４では、スケールアウト制御が行われたことにより起動中の仮想マシン数が３となり、未使用数が２で、必要数が１となった場合、過不足数は１（＝２−１）となる。そのため、仮想マシン数増減制御部４３では、増減数は−１と判定され、仮想マシンの起動数を１減少させるスケールイン制御が行われる。
【００８６】
その結果、時刻ｔ５では、スケールイン制御が行われたことにより起動中の仮想マシン数が２となり、未使用数が１で、必要数が１となった場合、過不足数は０（＝１−１）となる。そのため、仮想マシン数増減制御部４３では、増減数は０と判定されることになる。
【００８７】
最後に、時刻ｔ６において、起動中の仮想マシン数が２のままで、未使用数が１、必要数が０．５となった場合、過不足数は０．５（＝１−０．５）となる。そのため、仮想マシン数増減制御部４３では、増減数は０と判定されることになる。
【００８８】
次に、本実施形態のサービス提供装置１０における動作を図１２のシーケンスチャートを参照して説明する。
【００８９】
先ず、処理要求の確定前において画像形成装置２０からサービス提供装置１０に対して処理要求の内容に関する操作情報が送信されてくる（ステップＳ２０１）。
【００９０】
例えば、図１３に示すように、画像形成装置２０において、ユーザがあるサービスを利用するために操作パネル７１上において画像の選択を行っている場合、ユーザが利用しているサービスの内容や、現在選択中の画像データのデータ量、データ種類等の情報が操作情報としてサービス提供装置１０に送信される。
【００９１】
すると、サービス提供装置１０における予測部３５は、画像形成装置２０から受信した操作情報に基づいて、その処理要求が送信されてきた場合に必要となる仮想マシンの数を必要数として予測する（ステップＳ２０２）
【００９２】
そして、予測部３５において予測された必要数の情報はオートスケール制御部３３に送信される（ステップＳ２０３）。
【００９３】
オートスケール制御部３３では、処理要求格納部３２に格納されている処理要求のデータ量を取得して（ステップＳ２０４）、取得した処理要求のデータ量と予測部３５から受信した必要数の情報に基づいて、処理実行部３６における仮想マシンの起動数の増減制御を行う（ステップＳ２０５）。
【００９４】
その後、画像形成装置２０において処理要求の処理内容が確定して、画像形成装置２０からサービス提供装置１０に処理要求が送信されてくると（ステップＳ２０６）、その処理要求は処理要求格納部３２にキューとして格納される（ステップＳ２０７）。
【００９５】
すると、処理実行部３６は、処理要求格納部３２に格納されている処理要求を取得して（ステップＳ２０８）、取得した処理要求に基づく処理を実行する（ステップＳ２０９）。
【００９６】
そして、得られた処理結果は処理結果格納部３７に格納されて、処理結果送信部３８から各種サーバ装置に送信される。
【００９７】
[変形例]
上記実施形態では、サービス提供装置１０に対して処理要求を送信するクライアント装置が画像形成装置２０である場合を用いて説明したが、本発明はこのような場合に限定されるものではなく、スマートフォン、携帯電話端末、タブレット端末等の各種装置をクライアント装置として用いる場合でも同様に適用することが可能である。
【符号の説明】
【００９８】
１０    サービス提供装置
１１    ＣＰＵ
１２    メモリ
１３    記憶装置
１４    通信インタフェース（ＩＦ）
１５    ユーザインタフェース（ＵＩ）装置
１６    制御バス
２０    画像形成装置
３０    ネットワーク
３１    処理要求受付部
３２    処理要求格納部
３３    オートスケール制御部
３４    受信部
３５    予測部
３６    処理実行部
３７    処理結果格納部
３８    処理結果送信部
４１    未使用数算出部
４２    過不足数算出部
４３    仮想マシン数増減制御部
５１    仮想マシン
６１    領収書保存サーバ
６２    名刺管理サーバ
６３    データ保存サーバ
７１    操作パネル
【図１】
2020038518.tif 000003
【図２】
2020038518.tif 000004
【図３】
2020038518.tif 000005
【図４】
2020038518.tif 000006
【図５】
2020038518.tif 000007
【図６】
2020038518.tif 000008
【図７】
2020038518.tif 000009
【図８】
2020038518.tif 000010
【図９】
2020038518.tif 000011
【図１０】
2020038518.tif 000012
【図１１】
2020038518.tif 000013
【図１２】
2020038518.tif 000014
【図１３】
2020038518.tif 000015