(57)【要約】【課題】データ処理において利用される資源を有効に活用する。【解決手段】サービス提供装置２は、複数台の仮想マシン２０をコンピュータリソースとして有する。サービス提供装置２は、複数台の仮想マシン２０をリソースプール２００に蓄えている。サービス提供装置２は、決められた条件に従って、各クラウドサービスにおいて利用される仮想マシン２０をリソースプール２００から確保する。サービス提供装置２は、各クラウドサービスについて確保された仮想マシン２０を利用して、当該クラウドサービスを提供する。サービス提供装置２は、また、決められた別の条件に従って、各クラウドサービスについて確保された仮想マシン２０をリソースプール２００に解放する。【選択図】図２
2015087936.tif 000002
【特許請求の範囲】
【請求項１】
データ処理の負荷に応じて異なる量が利用される資源を蓄えたリソースプールを管理する管理手段と、
前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値以上であって、且つ、当該資源に対する前記データ処理の負荷が予め決められた第１の値以上である場合、当該データ処理に利用される新たな資源を、前記管理手段を介して前記リソースプールから確保する確保手段と
を有する情報処理装置。
【請求項２】
前記確保手段は、前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値を下回り、且つ、当該資源に対する前記データ処理の負荷が前記第１の値よりも小さい第２の値以上である場合、当該データ処理に利用される新たな資源を、前記管理手段を介して前記リソースプールから確保する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記データ処理が増えるか否かを判定する判定手段を有し、
前記確保手段は、前記判定手段により前記データ処理が増えると判定された場合、新たな資源を確保する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記確保手段は、複数のデータ処理のうち前記閾値が小さいデータ処理から順に、新たな資源を確保する
ことを特徴とする請求項１ないし３のいずれか１項に記載の情報処理装置。
【請求項５】
前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値を下回り、且つ、当該資源に対する前記データ処理の負荷が予め決められた第３の値を下回る場合、当該データ処理について確保された前記資源の少なくとも一部を、前記管理手段を介して前記リソースプールに解放する解放手段
を有することを特徴とする請求項１ないし４のいずれか１項に記載の情報処理装置。
【請求項６】
前記確保手段は、前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値を下回り、且つ、当該資源に対する前記データ処理の負荷が前記第３の値以上である場合、少なくとも単位数量の資源を前記リソースプールから確保する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記データ処理が増えるか否かを判定する判定手段を有し、
前記解放手段は、前記判定手段により前記データ処理が増えないと判定された場合、前記資源を解放する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記解放手段は、前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値以上であり、且つ、当該資源に対する前記データ処理の負荷が前記第１の値を下回る場合、利用し終えた前記資源を前記リソースプールに解放する
ことを特徴とする請求項５ないし７のいずれか１項に記載の情報処理装置。
【請求項９】
前記判定手段は、前記データ処理に利用された資源の量の履歴に基づいて、前記データ処理が増えるか否かを判定する
ことを特徴とする請求項３または７に記載の情報処理装置。
【請求項１０】
前記判定手段は、前記データ処理の対象となるデータを送信する外部装置からの通知に基づいて、前記データ処理が増えるか否かを判定する
ことを特徴とする請求項３または７に記載の情報処理装置。
【請求項１１】
サーバ装置とクライアント装置とを有し、
前記サーバ装置は、
データ処理の負荷に応じて異なる量が利用される資源を蓄えたリソースプールを管理する管理手段と、
前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値以上であって、且つ、当該資源に対する前記データ処理の負荷が予め決められた第１の値以上である場合、当該データ処理に利用される新たな資源を、前記管理手段を介して前記リソースプールから確保する確保手段と
を有し、
前記クライアント装置は、
前記サーバ装置と通信する通信手段であって、前記データ処理の対象となるデータを前記サーバ装置に送信する通信手段
を有する情報処理システム。
【請求項１２】
前記クライアント装置は、
前記資源の確保または解放の要求を、前記通信手段を介して前記サーバ装置に送信する送信手段
を有し、
前記サーバ装置は、
前記送信手段により送信された要求に基づいて、前記データ処理が増えるか否かを判定する判定手段を有し、
前記確保手段は、前記判定手段により前記データ処理が増えると判定された場合、新たな資源を確保する
ことを特徴とする請求項１１に記載の情報処理システム。
【請求項１３】
コンピュータに、
データ処理の負荷に応じて異なる量が利用される資源を蓄えたリソースプールを管理するステップと、
前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値以上であって、且つ、当該資源に対する前記データ処理の負荷が予め決められた第１の値以上である場合、当該データ処理に利用される新たな資源を、前記リソースプールから確保するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システムおよびプログラムに関する。
【背景技術】
【０００２】
データの保存またはデータ形式の変換などの各種の情報処理を、クライアント装置に代わってサーバ装置が行うクラウドサービスが知られている。特許文献１には、サービスの負荷変動に応じて余剰リソースをサービスに割り当てるプロビジョニングに関して、予めプロビジョニング途中の中間ステージに複数のリソースを割り当てておき、プロビジョニングの要求が生じた場合に最も適切な中間ステージからプロビジョニングを行う技術が記載されている。特許文献２には、ストレージリソースの使用量を制御するシステムにおいて、仮想サーバで実行されるアプリケーションの入出力特性に基づいて、ストレージリソースの使用量を予測する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１３３６５４号公報
【特許文献２】特開２０１２−１３３６２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、データ処理において利用される資源を有効に活用することを目的とする。
【課題を解決するための手段】
【０００５】
請求項１に係る情報処理装置は、データ処理の負荷に応じて異なる量が利用される資源を蓄えたリソースプールを管理する管理手段と、前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値以上であって、且つ、当該資源に対する前記データ処理の負荷が予め決められた第１の値以上である場合、当該データ処理に利用される新たな資源を、前記管理手段を介して前記リソースプールから確保する確保手段とを有する。
【０００６】
請求項２に係る情報処理装置は、請求項１に記載の構成において、前記確保手段は、前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値を下回り、且つ、当該資源に対する前記データ処理の負荷が前記第１の値よりも小さい第２の値以上である場合、当該データ処理に利用される新たな資源を、前記管理手段を介して前記リソースプールから確保することを特徴とする。
【０００７】
請求項３に係る情報処理装置は、請求項１または２に記載の構成において、前記データ処理が増えるか否かを判定する判定手段を有し、前記確保手段は、前記判定手段により前記データ処理が増えると判定された場合、新たな資源を確保することを特徴とする。
【０００８】
請求項４に係る情報処理装置は、請求項１ないし３のいずれか１項に記載の構成において、前記確保手段は、複数のデータ処理のうち前記閾値が小さいデータ処理から順に、新たな資源を確保することを特徴とする。
【０００９】
請求項５に係る情報処理装置は、請求項１ないし４のいずれか１項に記載の構成において、前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値を下回り、且つ、当該資源に対する前記データ処理の負荷が予め決められた第３の値を下回る場合、当該データ処理について確保された前記資源の少なくとも一部を、前記管理手段を介して前記リソースプールに解放する解放手段を有することを特徴とする。
【００１０】
請求項６に係る情報処理装置は、請求項５に記載の構成において、前記確保手段は、前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値を下回り、且つ、当該資源に対する前記データ処理の負荷が前記第３の値以上である場合、少なくとも単位数量の資源を前記リソースプールから確保することを特徴とする。
【００１１】
請求項７に係る情報処理装置は、請求項５に記載の構成において、前記データ処理が増えるか否かを判定する判定手段を有し、前記解放手段は、前記判定手段により前記データ処理が増えないと判定された場合、前記資源を解放することを特徴とする。
【００１２】
請求項８に係る情報処理装置は、請求項５ないし７のいずれか１項に記載の構成において、前記解放手段は、前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値以上であり、且つ、当該資源に対する前記データ処理の負荷が前記第１の値を下回る場合、利用し終えた前記資源を前記リソースプールに解放することを特徴とする。
【００１３】
請求項９に係る情報処理装置は、請求項３または７に記載の構成において、前記判定手段は、前記データ処理に利用された資源の量の履歴に基づいて、前記データ処理が増えるか否かを判定することを特徴とする。
【００１４】
請求項１０に係る情報処理装置は、請求項３または７に記載の構成において、前記判定手段は、前記データ処理の対象となるデータを送信する外部装置からの通知に基づいて、前記データ処理が増えるか否かを判定することを特徴とする。
【００１５】
請求項１１に係る情報処理システムは、サーバ装置とクライアント装置とを有し、前記サーバ装置は、データ処理の負荷に応じて異なる量が利用される資源を蓄えたリソースプールを管理する管理手段と、前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値以上であって、且つ、当該資源に対する前記データ処理の負荷が予め決められた第１の値以上である場合、当該データ処理に利用される新たな資源を、前記管理手段を介して前記リソースプールから確保する確保手段とを有し、前記クライアント装置は、前記サーバ装置と通信する通信手段であって、前記データ処理の対象となるデータを前記サーバ装置に送信する通信手段を有する。
【００１６】
請求項１２に係る情報処理システムは、請求項１１に記載の構成において、前記クライアント装置は、前記資源の確保または解放の要求を、前記通信手段を介して前記サーバ装置に送信する送信手段を有し、前記サーバ装置は、前記送信手段により送信された要求に基づいて、前記データ処理が増えるか否かを判定する判定手段を有し、前記確保手段は、前記判定手段により前記データ処理が増えると判定された場合、新たな資源を確保することを特徴とする。
【００１７】
請求項１３に係るプログラムは、コンピュータに、データ処理の負荷に応じて異なる量が利用される資源を蓄えたリソースプールを管理するステップと、前記データ処理に利用されている資源の量が、当該データ処理について予め設定された閾値以上であって、且つ、当該資源に対する前記データ処理の負荷が予め決められた第１の値以上である場合、当該データ処理に利用される新たな資源を、前記リソースプールから確保するステップとを実行させる。
【発明の効果】
【００１８】
請求項１、１１、および１３に係る発明によれば、データ処理の負荷が第１の値以上でない場合に新たな資源が確保されるのに比べて、資源が有効に活用される。
請求項２に係る発明によれば、利用されている資源の量が閾値を下回っている場合に、当該資源の量が閾値以上である場合よりも資源が確保されやすくなる。
請求項３に係る発明によれば、データ処理が増えると判定されていない場合に新たな資源が確保されるのに比べて、資源が有効に活用される。
請求項４に係る発明によれば、閾値が小さいデータ処理ほど新たな資源が確保される確率が高くなる。
請求項５に係る発明によれば、データ処理の負荷が第３の値を下回っている場合に資源が解放されないのに比べて、資源が有効に活用される。
請求項６に係る発明によれば、データ処理の負荷が第３の値以上である場合に資源が確保されないのに比べて、データ処理に掛かる時間が短縮される。
請求項７に係る発明によれば、データ処理が増えないと判定された場合に資源が解放されないのに比べて、資源が有効に活用される。
請求項８に係る発明によれば、利用し終えた資源が解放されない場合に比べて、資源が有効に活用される。
請求項９に係る発明によれば、利用された資源の量の履歴に基づいて、資源が確保または解放される。
請求項１０に係る発明によれば、外部装置からの通知に基づいて、資源が確保または解放される。
請求項１２に係る発明によれば、クライアント装置から送信された要求に基づいて、資源が確保または解放される。
【図面の簡単な説明】
【００１９】
【図１】画像処理システムの全体構成を説明する図
【図２】サービス提供装置のコンピュータリソースを説明する図
【図３】サービス提供装置の機能的構成を示すブロック図
【図４】サービス提供装置のハードウェア構成を示すブロック図
【図５】サービス提供装置が仮想マシンを確保する処理を示すフローチャート
【図６】稼働状況管理データを例示する図
【図７】利用履歴データを例示する図
【図８】サービス提供装置が仮想マシンを解放する処理を主として示すフローチャート
【図９】画像形成装置とサービス提供装置の動作の概略を示す図
【図１０】画像処理システムの機能的構成を示すブロック図
【図１１】画像形成装置のハードウェア構成を示すブロック図
【図１２Ａ】画像形成装置が行う処理を示すフローチャート
【図１２Ｂ】画像形成装置が行う処理を示すフローチャート
【図１３】ＵＲＬデータの一例を示す図
【図１４】確保要求の一例を示す図
【図１５】台数算出データＤｐの一例を示す図
【図１６】予測式データの一例を示す図
【図１７】解放要求の一例を示す図
【図１８】サービス提供装置が仮想マシンを確保する処理を示すフローチャート
【図１９】サービス提供装置が仮想マシンを解放する処理を主として示すフローチャート
【図２０】画像形成装置の機能的構成を示すブロック図
【図２１】台数算出データＤｉの一例を示す図
【発明を実施するための形態】
【００２０】
図１は、本発明の一実施形態に係る画像処理システム（情報処理システムの一例）の全体構成を説明する図である。画像処理システムは、画像データに関する各種の情報処理（例えば、画像データの差分の検出、画像データに基づく情報の集計、および画像データの形式の変換など）を行うためのシステムである。画像処理システムは、画像形成装置１とサービス提供装置２（情報処理装置の一例）とを有する。画像形成装置１は、複写機、プリンタ、スキャナ、およびファクシミリなどとして機能するクライアント装置である。サービス提供装置２は、サービスを提供するサーバ装置である。本発明において、サービスは１以上の機能を組み合わせることにより提供される。本実施形態において、サービス提供装置２は、サービスの一例としてクラウドサービスを提供する。クラウドサービスとは、データの保存またはデータ形式の変換などの各種の情報処理を行うコンピュータ資源を、通信回線を介して提供するサービスである。サービス提供装置２は、画像データに関する各種の情報処理を画像形成装置１に代わって行う。サービス提供装置２は、各種の情報処理を行うためのコンピュータリソースを有する。画像形成装置１とサービス提供装置２とは、インターネットなどの通信回線Ｎを介して相互に接続されている。
【００２１】
図２は、サービス提供装置２のコンピュータリソースを説明する図である。コンピュータリソースとは、サービス提供装置２がクラウドサービスを提供するために用いる物理的または仮想的なコンピュータ資源をいう。図２に示す例で、サービス提供装置２は、複数台の仮想マシン２０をコンピュータリソースとして有する。仮想マシン２０は、仮想化技術を用いることによりサービス提供装置２の内部に設けられたマシンである。サービス提供装置２は、複数台の仮想マシン２０をリソースプール２００に蓄えている。図２に示す例で、サービス提供装置２を管理する業者（以下、「管理業者」という）とクラウドサービスを提供する業者（以下、「提供業者」という）とは異なる業者である。サービス提供装置２は、各提供業者において利用される仮想マシン２０をリソースプール２００から確保する。サービス提供装置２は、各提供業者について確保された仮想マシン２０を利用して、当該クラウドサービスを提供する。図２に示す例では、サービス提供装置２は、リソースプール２００に蓄えられた仮想マシン２０の中から５台の仮想マシン２０を提供業者Ａについて確保しており、３台の仮想マシン２０をクラウド提供業者Ｂについて確保している。サービス提供装置２は、クラウドサービスにおける処理の負荷に応じて異なる台数の仮想マシン２０を利用する。サービス提供装置２は、また、各提供業者について確保された仮想マシン２０をリソースプール２００に解放する。図２に示す例で、管理業者にとっては、仮想マシン２０を運用するコストの観点から、確保される仮想マシン２０の台数が抑制されることが好ましい。一方、提供業者にとっては、クラウドサービスを利用するユーザの要求に応じて即座にクラウドサービスが提供されることが望ましいため、確保される仮想マシン２０の台数は多い方がよい。そのため、一般に、管理業者は提供業者に対して、常時稼働することが可能な仮想マシン２０の台数に応じて決められた額の課金を行い、この台数を超えて稼働された仮想マシン２０の台数分を稼働時間に応じて課金するなどの２段階の課金を実施する。
【００２２】
図３は、サービス提供装置２の機能的構成を示すブロック図である。サービス提供装置２は、管理手段２１と、判定手段２２と、確保手段２３と、解放手段２４とを有する。管理手段２１は、リソースプール２００を管理する。判定手段２２は、クラウドサービスにおける処理が増えるか否かを判定する。確保手段２３は、利用されている仮想マシン２０の台数（以下、「稼働台数」という）が決められた条件を満たす場合に、新たな仮想マシン２０を、管理手段２１を介してリソースプール２００から確保する。確保手段２３は、また、判定手段２２によりクラウドサービスの処理が増えると判定された場合、新たな仮想マシン２０を確保する。解放手段２４は、仮想マシン２０の稼働台数が決められた別の条件を満たす場合に、確保された仮想マシン２０の少なくとも一部を、管理手段２１を介してリソースプール２００に解放する。解放手段２４は、また、判定手段２２により、クラウドサービスにおける処理が増えないと判定された場合、仮想マシン２０を解放する。
【００２３】
図４は、サービス提供装置２のハードウェア構成を示すブロック図である。同図に示したように、サービス提供装置２は、制御部２０１と、記憶部２０２と、通信部２０３とを備えるコンピュータである。また、サービス提供装置２の各部は、バス２０４に接続されており、このバス２０４を介して各種データの授受を行う。
【００２４】
制御部２０１は、サービス提供装置２の各部の動作を制御する手段である。制御部２０１は、ＣＰＵ（Central Processing Unit）などの演算処理装置と、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などの記録媒体（主記憶装置）とを備える。記憶部２０２は、データを記憶する手段である。記憶部２０２は、ハードディスク、フラッシュメモリなどの記録媒体（補助記憶装置）を備え、通信部２０３で受信したデータを記憶する。通信部２０３は、データを送受信する手段である。通信部２０３は、通信回線Ｎに接続されており、通信回線Ｎに接続されている他の装置と通信を行う通信インターフェースとして機能する。なお、サービス提供装置２は、必ずしも物理的に１台のコンピュータでなくてもよく、複数台のコンピュータを組み合わせることにより構成されてもよい。図４において、プログラムを実行している制御部２０１は、管理手段２１、判定手段２２、確保手段２３、および解放手段２４の一例である。
【００２５】
次に、画像処理システムにおいて行われる処理を具体的に説明する。なお、以下で説明する複数の実施形態のうち、異なる実施形態において行われる処理は組み合わされて行われてもよい。
【００２６】
（第１実施形態）
図５は、サービス提供装置２が仮想マシン２０を確保する処理を示すフローチャートである。図５に示す処理は、例えば、予め決められた周期で繰り返し実行される。ステップＳＡ１において、制御部２０１は、複数の提供業者の中から一の提供業者を選択する。各提供業者には、仮想マシン２０の台数に関して閾値Ｔｍが予め設定され、記憶部２０２に記憶されている。閾値Ｔｍは、例えば、管理業者が、提供業者との間で、確保することを約束した仮想マシン２０の台数を示す。制御部２０１は、予め決められた順番、例えば閾値Ｔｍが小さい提供業者から順に一の提供業者を選択する。
【００２７】
ステップＳＡ２において、制御部２０１は、選択された一の提供業者（以下、「被選択業者」という）について、仮想マシン２０の稼働台数を特定する。仮想マシン２０の稼働台数は、例えば、仮想マシン２０の稼働の状況を提供業者毎に管理するためのデータ（以下、「稼働状況管理データ」という）により示される。稼働状況管理データは、ＲＡＭに記憶されており、制御部２０１は、仮想マシン２０の稼働の状況に応じて当該稼働状況管理データを更新している。
【００２８】
図６は、稼働状況管理データを例示する図である。稼働状況管理データは、各提供業者について、稼働台数と稼働している仮想マシン２０におけるＣＰＵ負荷とを示す。図６の稼働状況管理データにおいては、提供業者Ａ、Ｂ、およびＣの稼働台数は、それぞれ３台、１台、および２台である。また、図６の例で、提供業者Ａ、Ｂ、およびＣのＣＰＵ負荷は、それぞれ８０％、６０％、および１０％である。なお、図６におけるＣＰＵ負荷は、稼働している仮想マシン２０におけるＣＰＵ負荷の平均値を示す。
【００２９】
再び図５を参照する。ステップＳＡ３において、制御部２０１は、被選択業者について、処理が増えると予想されるか否かを判断する。具体的には、制御部２０１は、ステップＳＡ２において特定された稼働台数と、過去に利用された仮想マシン２０の台数を示すデータ（以下、「利用履歴データ」という）とに基づいて、被選択業者の処理の増減を予想する。利用履歴データは、記憶部２０２に記憶されており、制御部２０１は、決められたタイミングで当該利用履歴データを更新している。被選択業者の処理が増えると予想される場合（ＳＡ３：ＹＥＳ）、制御部２０１は、処理をステップＳＡ４に移行する。被選択業者の処理が増えると予想されない場合（ＳＡ３：ＮＯ）、制御部２０１は、処理をステップＳＡ８に移行する。
【００３０】
図７は、利用履歴データを例示する図である。利用履歴データは、各提供業者について、過去に利用された仮想マシン２０の台数の平均値（以下、「平均台数」という）を時間帯別に示す。図７に示す利用履歴データでは、７時から２３時までの１時間おきに平均台数が示されている。例えば、提供業者Ａの７時における平均台数は２台である。別の例で、提供業者Ｃの２３時における平均台数は１台である。図７に示す利用履歴データを用いて被選択業者の処理の増減が予想される場合、制御部２０１は、ステップＳＡ２において特定された稼働台数（以下、「稼働台数Ｎ１」という）と、図５の処理が開始された時刻の次の時刻における平均台数（以下、「平均台数Ｎ２」という）とを比較する。その結果、稼働台数Ｎ１が平均台数Ｎ２よりも小さい場合には、制御部２０１は、被選択業者の処理が増えると予想する。一方、稼働台数Ｎ１が平均台数Ｎ２以上である場合には、制御部２０１は、被選択業者の処理は増えないと予想する。例えば、図５に示す処理が９時３０分に開始され、被選択業者が提供業者Ａである場合、平均台数Ｎ２は１０時の８台である。したがって、制御部２０１は、稼働台数Ｎ１が８台よりも小さい場合には提供業者Ａの処理が増えると予想し、稼働台数Ｎ１が８台以上である場合には提供業者Ａの処理は増えないと予想する。
【００３１】
再び図５を参照する。ステップＳＡ４において、制御部２０１は、ステップＳＡ２において特定された仮想マシン２０の稼働台数が閾値Ｔｍ以上であるか否かを判断する。稼働台数が閾値Ｔｍ以上であると判断された場合（ＳＡ４：ＹＥＳ）、制御部２０１は、処理をステップＳＡ５に移行する。稼働台数が閾値Ｔｍを下回ると判断された場合（ＳＡ４：ＮＯ）、制御部２０１は、処理をステップＳＡ６に移行する。
【００３２】
ステップＳＡ５において、制御部２０１は、被選択業者のＣＰＵ負荷が予め決められた閾値Ｔｈ１（第１の値の一例）以上であるか否かを判断する。被選択業者のＣＰＵ負荷は、上述の稼働状況管理データにより示されており、閾値Ｔｈ１は、記憶部２０２に記憶されている。ＣＰＵ負荷が閾値Ｔｈ１以上であると判断された場合（ＳＡ５：ＹＥＳ）、制御部２０１は、処理をステップＳＡ７に移行する。ＣＰＵ負荷が閾値Ｔｈ１を下回ると判断された場合（ＳＡ５：ＮＯ）、制御部２０１は、処理をステップＳＡ８に移行する。
【００３３】
ステップＳＡ６において、制御部２０１は、被選択業者のＣＰＵ負荷が閾値Ｔｈ２（第２の値の一例）以上であるか否かを判断する。閾値Ｔｈ２は、閾値Ｔｈ１よりも小さい値である。ＣＰＵ負荷が閾値Ｔｈ２以上であると判断された場合（ＳＡ６：ＹＥＳ）、制御部２０１は、処理をステップＳＡ７に移行する。ＣＰＵ負荷が閾値Ｔｈ２を下回ると判断された場合（ＳＡ６：ＮＯ）、制御部２０１は、処理をステップＳＡ８に移行する。
【００３４】
ステップＳＡ７において、制御部２０１は、被選択業者について、リソースプール２００に蓄えられた仮想マシン２０の中から決められた台数（例えば１台）の新たな仮想マシン２０を確保する。ステップＳＡ８において、制御部２０１は、全ての提供業者が選択されたか否かを判断する。全ての提供業者が選択されたと判断された場合（ＳＡ８：ＹＥＳ）、制御部２０１は、処理を終了する。全ての提供業者が選択されていないと判断された場合（ＳＡ８：ＮＯ）、制御部２０１は、処理をステップＳＡ１に移行し、残りの提供業者についてステップＳＡ１からステップＳＡ７の処理を行う。
【００３５】
以上の処理により、稼働台数が閾値Ｔｍ以上である場合には、稼働台数が閾値Ｔｍを下回る場合に比べてＣＰＵ負荷の判断がされるときの閾値が大きいので、慎重に仮想マシン２０が確保される。そのため、管理業者にとっては確保される仮想マシン２０の台数が抑制され、且つ、提供業者にとっては課金が増えることが抑制される。また、稼働台数が閾値Ｔｍを下回る場合には、稼働台数が閾値Ｔｍ以上である場合に比べてＣＰＵ負荷の判断がされるときの閾値が小さいので、素早く仮想マシン２０が確保される。そのため、提供業者にとってはユーザの要求に応じて即座にクラウドサービスが提供される。
【００３６】
図８は、サービス提供装置２が仮想マシン２０を解放する処理を主として示すフローチャートである。以下の処理は、確保されたいずれかの仮想マシン２０における情報処理が終了したことを契機として開始され、当該仮想マシン２０が確保された提供業者（以下、「特定業者」という）について行われる。なお、各仮想マシン２０における情報処理の進捗は、制御部２０１により監視されている。ステップＳＢ１において、制御部２０１は、特定業者について、仮想マシン２０の稼働台数を特定する。具体的には、制御部２０１は、上述の稼働状況管理データに応じて、仮想マシン２０の稼働台数を特定する。ステップＳＢ２において、制御部２０１は、ステップＳＢ１において特定された仮想マシン２０の稼働台数が閾値Ｔｍを下回るか否かを判断する。稼働台数が閾値Ｔｍ以上であると判断された場合（ＳＢ２：ＮＯ）、制御部２０１は、処理をステップＳＢ３に移行する。稼働台数が閾値Ｔｍを下回ると判断された場合（ＳＢ２：ＹＥＳ）、制御部２０１は、処理をステップＳＢ４に移行する。
【００３７】
ステップＳＢ３において、制御部２０１は、特定業者のＣＰＵ負荷が閾値Ｔｈ１を下回るか否かを判断する。ＣＰＵ負荷が閾値Ｔｈ１を下回ると判断された場合（ＳＢ３：ＹＥＳ）、制御部２０１は、処理をステップＳＢ７に移行する。ＣＰＵ負荷が閾値Ｔｈ１以上であると判断された場合（ＳＢ３：ＮＯ）、制御部２０１は、処理を終了する。
【００３８】
ステップＳＢ４において、制御部２０１は、特定業者のＣＰＵ負荷が閾値Ｔｈ３（第３の値の一例）を下回るか否かを判断する。閾値Ｔｈ３は、閾値Ｔｈ１よりも小さい値である。ＣＰＵ負荷が閾値Ｔｈ３以上であると判断された場合（ＳＢ４：ＮＯ）、制御部２０１は、処理をステップＳＢ５に移行する。ＣＰＵ負荷が閾値Ｔｈ３を下回ると判断された場合（ＳＢ４：ＹＥＳ）、制御部２０１は、処理をステップＳＢ６に移行する。
【００３９】
ステップＳＢ５において、制御部２０１は、特定業者について、リソースプール２００に蓄えられた仮想マシン２０の中から新たな仮想マシン２０を確保する。具体的には、制御部２０１は、少なくとも１台の仮想マシン２０であって、確保された仮想マシン２０の台数が閾値Ｔｍを超えない範囲の台数の仮想マシン２０を確保する。
【００４０】
ステップＳＢ６において、制御部２０１は、特定業者について、処理が増えると予想されるか否かを判断する。具体的には、制御部２０１は、ステップＳＢ１において特定された稼働台数と、上述の利用履歴データとに基づいて、上述のステップＳＡ３の同様の方法により、特定業者の処理の増減を予想する。特定業者の処理が増えないと予想される場合（ＳＢ６：ＮＯ）、制御部２０１は、処理をステップＳＢ７に移行する。特定業者の処理が増えると予想される場合（ＳＢ６：ＹＥＳ）、制御部２０１は、処理を終了する。
【００４１】
ステップＳＢ７において、制御部２０１は、特定業者について確保された仮想マシン２０をリソースプール２００に解放する。具体的には、制御部２０１は、特定業者について確保された仮想マシン２０の中から決められた台数（例えば１台）の仮想マシン２０をリソースプール２００に解放する。なお、ステップＳＢ３においてＣＰＵ負荷が閾値Ｔｈ１を下回ると判断されている場合（ＳＢ３：ＹＥＳ）には、制御部２０１は、情報処理が終了した仮想マシン２０（すなわち稼働されていない仮想マシン２０）をリソースプール２００に解放する。
【００４２】
以上の処理により、稼働台数が閾値Ｔｍを下回っている場合には、稼働台数が閾値Ｔｍ以上である場合に比べてＣＰＵ負荷が判断されるときの閾値が小さいので、慎重に仮想マシン２０がリソースプール２００に解放される。そのため、管理業者にとっては確保される仮想マシン２０の台数が抑制される。また、稼働台数が閾値Ｔｍ以上である場合には、稼働台数が閾値Ｔｍを下回っている場合に比べてＣＰＵ負荷が判断されるときの閾値が大きいので、素早く仮想マシン２０がリソースプール２００に解放される。そのため、管理業者にとっては確保される仮想マシン２０の台数が抑制され、且つ、提供業者にとっては課金が増えることが抑制される。
【００４３】
（第２実施形態）
第２実施形態において、サービス提供装置２は、画像形成装置１からの通知に応じて、仮想マシン２０を確保または解放する。具体的には、サービス提供装置２は、画像形成装置１から送信された、仮想マシン２０の確保または解放の要求に応じて、仮想マシン２０を確保または解放する。仮想マシン２０の確保または解放の要求とは、サービス提供装置２に仮想マシン２０を確保させ、または解放させることの要求をいう。以下では、仮想マシン２０の確保の要求を「確保要求」と表現し、仮想マシン２０の解放の要求を「解放要求」と表現する。
【００４４】
図９は、第２実施形態における画像形成装置１とサービス提供装置２の動作の概略を示す図である。なお、図９は、説明の便宜上１台の画像形成装置１を示しているが、複数台の画像形成装置１が画像処理システムにおいて利用されてもよい。第２実施形態において、画像形成装置１は、確保要求または解放要求をサービス提供装置２に送信する（図９（ａ））。サービス提供装置２は、画像形成装置１からの確保要求または解放要求に応じて、仮想マシン２０を確保または解放する（図９（ｂ））。画像形成装置１は、仮想マシン２０の確保または解放がされた後に、画像データをサービス提供装置２に送信する（図９（ｃ））。画像形成装置１は、例えば、原稿を光学的に読み取ることにより取得された画像データをサービス提供装置２に送信する。サービス提供装置２は、クラウドサービスにおける情報処理が行われた画像データを画像形成装置１に送信する（図９（ｄ））。
【００４５】
画像形成装置１から仮想マシン２０の確保の要求を受信したサービス提供装置２は、当該要求により指定された台数の仮想マシン２０の確保を開始する。この仮想マシン２０の確保には時間が掛かる。例えば仮想マシン２０が1台も確保されていない状態から確保する場合、仮想マシン２０の台数に関わらず、仮想マシン２０が確保されていない状態から仮想マシン２０を確保するのに必要な初期化などの処理の時間をｘ１(秒)、1台の仮想マシン２０を確保するために要する時間をｔ１(秒／台)、確保する仮想マシン２０の台数をｐ（台）とすると、ｘ１＋ｔ１×ｐ(秒)の時間が掛かる。
【００４６】
また、既に確保された仮想マシン２０の台数の追加を行う場合、仮想マシン２０を確保している状態から仮想マシン２０を確保するのに必要な初期化などの処理の時間をｘ２（秒）、追加する仮想マシン２０の台数をｑ（台)とすると、ｘ２＋ｔ１×ｑ（秒）の時間が掛かる。
【００４７】
また、既に確保された仮想マシン２０を解放する場合、仮想マシン２０が確保されている状態から仮想マシン２０を解放するのに必要な初期化などの処理の時間をｘ３（秒）、1台の仮想マシン２０を解放するために要する時間をｔ２（秒／台）、解放する仮想マシン２０の台数をｒ（台）とすると、ｘ３＋ｔ２×ｒ（秒）の時間が掛かる。
【００４８】
仮想マシン２０が確保されていない状態から仮想マシン２０を確保するよりも、既に確保された仮想マシン２０に台数を追加する方が必要な処理が少なくなり、また、新たに仮想マシン２０を確保するよりも既に確保した仮想マシン２０を解放する方が処理が少なくなる事が多い。つまりｘ１＞ｘ２＞ｘ３であることが多い。
【００４９】
さらに1台あたりの仮想マシン２０を確保するよりも、1台あたりの仮想マシン２０を解放する方が処理が少なくなる事が多い。つまりｔ１＞ｔ２であることが多い。
【００５０】
以下では、まず、画像形成装置１が、確保要求または解放要求をサービス提供装置２に送信するための構成と処理について説明し、その後でサービス提供装置２が仮想マシン２０を確保または解放する処理について説明する。
【００５１】
図１０は、画像処理システムの機能的構成を示すブロック図である。画像形成装置１は、通信手段１１と、取得手段１２と、予測手段１３と、算出手段１４と、送信手段１５とを有する。通信手段１１は、サービス提供装置２と通信する。取得手段１２は、クラウドサービスにおける情報処理の対象となる画像データを取得する。予測手段１３は、取得手段１２が画像データを取得するのを終える前に、画像データの量を予測する。算出手段１４は、サービス提供装置２が画像データの処理に利用する仮想マシン２０の台数を算出する。算出手段１４は、画像データをサービス提供装置２に送信する前の、画像形成装置１における処理の段階に応じた複数の時点で、仮想マシン２０の台数を算出する。算出手段１４は、仮想マシン２０の台数を算出する。送信手段１５は、算出手段１４により算出された台数に応じて、確保要求または解放要求を、通信手段１１を介してサービス提供装置２に送信する。通信手段１１は、また、取得手段１２により取得された画像データを、確保要求または解放要求が送信された後に、サービス提供装置２に送信する。
【００５２】
サービス提供装置２は、図３に示した構成に加えて通信手段２５を有する。通信手段２５は、画像形成装置１と通信する。判定手段２２は、画像形成装置１から送信された確保要求または解放要求に応じて、クラウドサービスの処理が増えるか否かを判定する。第２実施形態において、プログラムを実施している制御部２０１により制御されている通信部２０３は、通信手段２５の一例である。
【００５３】
図１１は、画像形成装置１のハードウェア構成を示すブロック図である。同図に示したように、画像形成装置１は、制御部１０１と、記憶部１０２と、操作部１０３と、表示部１０４と、画像読取部１０５と、画像形成部１０６と、通信部１０７と、画像処理部１０８とを備える。また、画像形成装置１の各部は、バス１０９に接続されており、このバス１０９を介して各種データの授受を行う。
【００５４】
制御部１０１は、画像形成装置１の各部の動作を制御する手段である。制御部１０１は、ＣＰＵなどの演算処理装置と、ＲＯＭ、ＲＡＭなどの記録媒体（主記憶装置）とを備える。ＣＰＵは、ＲＯＭに記憶されている制御プログラムを読み出し、ＲＡＭを作業エリアにして制御プログラムを実行する。制御部１０１は、このように制御プログラムを実行することにより、用紙に画像を形成すること、文書を読み取って文書の画像データを生成すること、通信回線Ｎを介して他の装置と通信を行うことなどを実現する。
【００５５】
記憶部１０２は、データを記憶する手段である。記憶部１０２は、ハードディスク、フラッシュメモリなどの記録媒体（補助記憶装置）を備え、通信部１０７で受信したデータや画像形成装置１で生成されたデータなどを記憶する。また、記憶部１０２は、いわゆるメモリーカードやＵＳＢ（Universal Serial Bus）メモリなどの着脱可能な記録媒体（リムーバブルメディア）と、その記録媒体にデータを読み書きする手段とを含んでもよい。
【００５６】
操作部１０３は、ユーザの操作を受け付ける手段である。操作部１０３は、操作子（ボタン、キーなど）を備え、押下された操作子に応じた制御信号を制御部１０１に供給する。また、操作部１０３は、表示部１０４と、表示部１０４の表示面に重ねて設けられたセンサとを備え、押圧した位置に応じた制御信号を制御部１０１に供給するタッチパネルによって構成されてもよい。
【００５７】
表示部１０４は、情報を表示する手段である。表示装置として例えば液晶ディスプレイを有している。表示部１０４は、制御部１０１の制御の下、画像形成装置１を操作するためのメニュー画面や画像形成装置１に関するデータなどを表示する。
【００５８】
画像読取部１０５は、原稿を読み取って画像データに変換する手段である。画像読取部１０５は、原稿を光学的に読み取り、読み取った原稿の画像を表す画像データを生成する画像読取装置を備えている。画像読取部１０５は、生成した画像データを画像処理部１０８に供給する。本実施形態において、画像読取部１０５は、画像形成装置１の図示しない自動原稿送り機構を構成する原稿トレイに積載された複数枚の原稿から画像を順次読み取るための構成を備える。
【００５９】
画像形成部１０６は、画像を形成する手段である。画像形成部１０６は、電子写真方式によって紙などの記録媒体にトナー像を形成する画像形成機構を具備している。なお、画像形成機構は、電子写真方式に限らず、インクジェット方式などの他の記録方式が用いられてもよい。
【００６０】
通信部１０７は、データを送受信する手段である。通信部１０７は、通信回線Ｎに接続されており、通信回線Ｎに接続されている他の装置と通信を行う通信インターフェースとして機能する。
【００６１】
画像処理部１０８は、画像データに対して画像処理を実行する手段である。ここでいう画像処理とは、例えば、色補正や階調補正である。画像処理部１０８は、画像処理が施された画像データを画像形成部１０６に供給する。
【００６２】
図１１において、プログラムを実行している制御部１０１は、予測手段１３、算出手段１４、および送信手段１５の一例である。プログラムを実行している制御部１０１により制御されている画像読取部１０５は、取得手段１２の一例である。プログラムを実行している制御部１０１により制御されている通信部１０７は、通信手段１１の一例である。
【００６３】
図１２（図１２Ａおよび図１２Ｂ）は、画像形成装置１が行う処理を示すフローチャートである。ステップＳＣ１において、制御部１０１は、クラウドサービスの利用を開始させるための指示（以下、「サービス開始指示」という）の入力を受け付ける。サービス開始指示は、ユーザが操作部１０３を操作することにより入力される。表示部１０４には、例えば、利用可能な複数のクラウドサービスと、各クラウドサービスを提供する提供業者とが表示され、ユーザはこの中から利用するクラウドサービスと、当該クラウドサービスを提供する一の提供業者とを選択する。ステップＳＣ２において、制御部１０１は、ユーザにより指定されたクラウドサービスを提供するサービス提供装置２を特定する。具体的には、制御部１０１は、記憶部１０２に記憶された、クラウドサービスの種類および提供業者と、サービス提供装置２のＵＲＬ（Uniform Resource Locator）との対応を示すデータ（以下、「ＵＲＬデータ」という）に基づいて、ユーザにより指定されたクラウドサービスを提供するサービス提供装置２のＵＲＬを特定する。制御部１０１は、特定されたサービス提供装置２のＵＲＬをＲＡＭに記憶する。
【００６４】
図１３は、ＵＲＬデータの一例を示す図である。ＵＲＬデータは、クラウドサービスの種類および提供業者ごとに、サービス提供装置のＵＲＬを示す。図１３では、クラウドサービス１、２、および３がクラウドサービスとして示されており、また、提供業者Ａ、Ｂ、およびＣが提供業者として示されている。例えば、提供業者Ａが提供するクラウドサービス１のＵＲＬは、「http://001/tenantA/resource」である。別の例で、提供業者Ｃが提供するクラウドサービス３のＵＲＬは、「http://003/tenantC/resource」である。
【００６５】
再び図１２Ａを参照する。ステップＳＣ３において、制御部１０１は、確保要求をサービス提供装置２に送信する。確保要求の送信先は、ＲＡＭに記憶されたサービス提供装置２のＵＲＬにより示される。確保要求には、確保して欲しい仮想マシン２０の台数を示す情報が含まれる。ステップＳＣ３においては、サービスが選択された段階なので、最低限必要な台数（例えば１台）の仮想マシン２０の確保要求がサービス提供装置２に送信される。確保要求制御部１０１は、クラウドサービスが対応するプロトコル（例えば、HTTP REST APIまたはSOAP(Simple Object Access Protocol)など）に従って、確保要求を送信する。制御部１０１は、確保の要求をした仮想マシン２０の台数（以下、「通知済台数」という）をＲＡＭに記憶する。
【００６６】
なお、図１２に示すフローチャートにおいて、確保要求または解放要求が送信される場合、制御部１０１は、当該確保要求または解放要求の確度をサービス提供装置２に送信する。ステップＳＣ３において、制御部１０１は、確度「１」をサービス提供装置２に送信する。この確度は、クラウドサービスの処理の開始が近づくに連れて（すなわち図１２に示す処理が進むに連れて）高くなる。
【００６７】
図１４は、確保要求の一例を示す図である。図１４は、HTTP REST APIに従って送信されるＸＭＬ（Extensible Markup Language)形式の確保要求を示す。図１４に示す通り、確保要求には、確保要求であることを示す情報（第３行目の<record name="addRequest">）と、確保を要求する仮想マシン２０の台数（第６行目の<string name="value">1</string>）とが含まれる。図１４に示す確保要求の例では、１台の仮想マシン２０の確保が要求されている。
【００６８】
再び図１２Ａを参照する。ステップＳＣ４において、制御部１０１は、カラースキャンの有無、画像の解像度、および原稿のサイズなどの画像の読み取りに関する各種パラメータの設定を受け付ける。各種パラメータは、ユーザが操作部１０３を操作することにより設定される。制御部１０１は、設定された各種パラメータをＲＡＭに記憶する。ステップＳＣ５において、制御部１０１は、ユーザによる各種パラメータの設定が終了したか否かを判断する。具体的には、ユーザにより操作部１０３が操作され、各種パラメータの設定を終了するための指示が入力されたか否かを判断する。各種パラメータの設定が終了したと判断された場合（ＳＣ５：ＹＥＳ）、制御部１０１は、処理をステップＳＣ６に移行する。各種パラメータの設定が終了していないと判断された場合（ＳＣ５：ＮＯ）、制御部１０１は、処理をステップＳＣ４に移行する。
【００６９】
ステップＳＣ６において、制御部１０１は、サービス提供装置２において利用されることが予想される仮想マシン２０の台数（以下、「予想台数」という）を、設定された各種パラメータに応じて算出する。具体的には、制御部１０１は、記憶部１０２に記憶された、各種パラメータに応じて予想台数を算出するためのデータ（以下、「台数算出データＤｐ」という）に基づいて、予想台数を算出する。制御部１０１は、算出された仮想マシン２０の予想台数をＲＡＭに記憶する。
【００７０】
図１５は、台数算出データＤｐの一例を示す図である。図１５（ａ）は、各クラウドサービスにおいて用いられるパラメータを示している。この例では、クラウドサービス１からクラウドサービス３において用いられるパラメータが示されている。図１５（ａ）において「カラー」、「解像度」、および「原稿サイズ」は、画像読み取りの際の色数、画像の解像度、および原稿のサイズをそれぞれ示している。図１５（ａ）において、各クラウドサービスには異なるパラメータが用いられている。なお、あるクラウドサービスについて、カラー、解像度、および原稿サイズのパラメータのすべてが用いられていなくてもよい。例えば、アンケートの集計などが行われるクラウドサービスであって、カラースキャンが行われることがないクラウドサービスにおいては、カラーのパラメータは用いられなくてもよい。
【００７１】
図１５（ａ）では、カラーのパラメータについて、クラウドサービス１および３には、カラーＣ１およびＣ２がそれぞれ用いられている。一方で、カラーのパラメータは、クラウドサービス２では用いられていない。解像度のパラメータについて、クラウドサービス１および２には、解像度Ｒ１およびＲ２がそれぞれ用いられている。一方で、解像度のパラメータは、クラウドサービス３では用いられていない。原稿サイズのパラメータについて、クラウドサービス１、２、および３には、原稿サイズＳ１、Ｓ２、およびＳ３がそれぞれ用いられている。
【００７２】
図１５（ｂ）から図１５（ｄ）は、仮想マシン２０の台数を算出するための式を図１５（ａ）に示したパラメータ毎に示している。図１５（ｂ）は、カラーのパラメータについて、仮想マシン２０の台数を算出するための式を示す。図１５（ｂ）では、カラースキャンの有無に応じて仮想マシン２０の台数が算出される。図１５（ｂ）は、カラーにした際の処理負荷がＣ２よりもＣ１の方がより高い場合の例を示している。図１５（ｂ）では、カラーＣ１において、カラースキャンが行われるときには仮想マシン２０の台数が１台と算出され、白黒スキャンが行われるときには仮想マシン２０の台数が０．２台と算出される。また、カラーＣ２おいて、カラースキャンが行われるときには仮想マシン２０の台数が０．４台と算出され、白黒スキャンが行われる場合には仮想マシン２０の台数が０．２台と算出される。例えば、カラーＣ１が用いられているクラウドサービス１について、カラースキャンが有りに設定された場合、仮想マシン２０の台数は１台と算出される。
【００７３】
図１５（ｃ）は、解像度のパラメータについて、仮想マシン２０の台数を算出するための式を示す。図１５（ｃ）では、解像度１００ｄｐｉ（dots per inch）あたりの仮想マシン２０の台数が規定されている。図１５（ｃ）では、解像度Ｒ１の場合は、１００ｄｐｉあたり０．５台、解像度Ｒ２の場合は、１００ｄｐｉあたり０．２台の割合で算出される。例えば、解像度Ｒ１が用いられているクラウドサービス１について、解像度が４００ｄｐｉに設定された場合、仮想マシン２０の台数は２台と算出される。
【００７４】
図１５（ｄ）は、原稿サイズのパラメータについて、仮想マシン２０の台数を算出するための式を示す。図１５（ｄ）では、原稿のサイズに応じて仮想マシン２０の台数が算出される。図１５（ｄ）では、原稿サイズＳ１において、原稿のサイズがＡ３の場合には仮想マシン２０の台数が０．４台と算出され、原稿のサイズがＡ４の場合には仮想マシン２０の台数が０．２台と算出される。また、原稿サイズＳ２において、原稿のサイズがＡ３の場合には仮想マシン２０の台数が０．２台と算出され、原稿のサイズがＡ４の場合には仮想マシン２０の台数が０．２台と算出される。さらに、原稿サイズＳ３において、原稿のサイズがＡ３の場合には仮想マシン２０の台数が０．６台と算出され、原稿のサイズがＡ４の場合には仮想マシン２０の台数が０．３台と算出される。例えば、原稿サイズＳ１が用いられているクラウドサービス１について、原稿のサイズがＡ３に設定された場合、仮想マシン２０の台数は０．４台と算出される。
【００７５】
図１５において、あるクラウドサービスが利用される場合の予想台数は、各パラメータについて算出された仮想マシン２０の台数を加算することにより算出される。例えば、クラウドサービス１が利用される場合の予想台数は、カラーＣ１、解像度Ｒ１、および原稿サイズＳ１について算出された仮想マシン２０の台数を加算することにより算出される。なお、算出された予想台数のうち小数点以下の値は切り上げられる。より具体的な例として、クラウドサービス１が利用される場合において、ユーザによりカラースキャンが有りと設定され、解像度が４００ｄｐｉに設定され、且つ、原稿のサイズがＡ３と設定されたとき、予想台数は３．４台（小数点以下を切り上げて４台）と算出される。別の例で、クラウドサービス２が利用される場合の予想台数は、解像度Ｒ２および原稿サイズＳ２について算出された仮想マシン２０の台数を加算することにより算出される。より具体的な例として、クラウドサービス２が利用される場合において、解像度が３００ｄｐｉに設定され、且つ、原稿のサイズがＡ４と設定されたとき、予想台数は０．８台（小数点以下を切り上げて１台）と算出される。
【００７６】
再び図１２Ａを参照する。ステップＳＣ７において、制御部１０１は、ステップＳＣ６において算出された予想台数と通知済台数との差（以下、「変動数Ｍ１」という）を算出する。具体的には、制御部１０１は、予想台数と通知済台数とをＲＡＭから読み出して、変動数Ｍ１を算出する。例えば、予想台数が４台であり、通知済台数が１台である場合、変動数Ｍ１は３台と算出される。別の例で、予想台数と通知済台数とがともに１台である場合、変動数Ｍ１は０台と算出される。制御部１０１は、算出された変動数Ｍ１を、ＲＡＭに記憶する。ステップＳＣ８において、制御部１０１は、再び、確保要求をサービス提供装置２に送信する。具体的には、制御部１０１は、ＲＡＭから変動数Ｍ１を読み出して、変動数Ｍ１が示す台数の確保要求をサービス提供装置２に送信する。制御部１０１は、また、確度「２」をサービス提供装置２に送信する。変動数Ｍ１が０台である場合には、制御部１０１は、確保要求を送信しない。なお、ステップＳＣ８において確保要求が送信されない場合においても、確保要求の確度は送信されてもよい。ステップＳＣ９において、制御部１０１は、ＲＡＭに記憶された通知済台数を更新する。具体的には、制御部１０１は、通知済台数を、ステップＳＣ６において算出された予想台数に更新する。
【００７７】
ステップＳＣ１０において、制御部１０１は、画像の読み取りを開始させるための指示（以下、「読み取り開始指示」という）の入力を受け付ける。読み取り開始指示は、ユーザが操作部１０３を操作することにより入力される。ステップＳＣ１１において、制御部１０１は、画像の読み取りを開始する。具体的には、画像形成装置１の自動原稿送り機構を構成する原稿トレイには予め複数枚の原稿が積み重ねられており、制御部１０１は、これらの原稿から順次画像を読み取る。制御部１０１は、読み取られた画像の画像データをＲＡＭに記憶する。
【００７８】
次に図１２Ｂを参照する。ステップＳＣ１２において、制御部１０１は、画像形成装置１の自動原稿送り機構を構成する原稿トレイに積み重ねられたすべての原稿から取得される画像データの量（以下、「画像データの総量」という）を予測するための予測式が記憶されているか否かを判断する。具体的には、制御部１０１は、記憶部１０２に記憶された、予測式を示すデータ（以下、「予測式データ」という）に基づいて、利用が開始されるクラウドサービスについて予測式が記憶されているか否かを判断する。予測式が記憶されていると判断された場合（ＳＣ１２：ＹＥＳ）、制御部１０１は、処理をステップＳＣ１３に移行する。予測式が記憶されていないと判断された場合（ＳＣ１２：ＮＯ）、制御部１０１は、処理をステップＳＣ１４に移行する。ステップＳＣ１３において、制御部１０１は、画像データの総量を、予測式を用いて予測する。制御部１０１は、予測された画像データの総量をＲＡＭに記憶する。
【００７９】
図１６は、予測式データの一例を示す図である。予測式データは、各クラウドサービスについて、予測式の有無、および予測式を示す。図１６に示す予測式データの例では、クラウドサービス１および２に関して予測式が記憶されており、また、クラウドサービス３に関して予測式が記憶されていない。図１６に示す例で、クラウドサービス１は、変更前の原稿と変更後の原稿との画像データの差分を検出するための情報処理を行うクラウドサービスである。クラウドサービス１については、変更前の原稿から読み取られた画像の画像データの量を２倍することにより、画像データの総量が予測される。なお、この例で、変更前の原稿は、変更後の原稿よりも前に画像が読み取られる。クラウドサービス１について予測式が用いられる場合、制御部１０１は、画像読取部１０５により読み取られている原稿が、変更前の原稿から変更後の原稿に切り替わるタイミングを検知して、変更前の原稿から読み取られた画像の画像データの量を取得する。変更前の原稿から変更後の原稿に切り替わるタイミングは、例えば、予め変更前の原稿の枚数を入力した後で変更後の原稿を原稿トレイに積載してタッチパネルのボタンを押した事で検知される。別の例で、変更前の原稿から変更後の原稿に切り替わるタイミングは、既に読み取られた画像と、新たに読み取られた画像とが類似する度合いが決められた閾値を超えたことにより検知される。クラウドサービス１について予測式が用いられる例として、変更前の原稿から読み取られた画像の画像データの量が２ＭＢ（メガバイト）である場合、画像データの総量は４ＭＢであると予測される。
【００８０】
図１６に示す例で、クラウドサービス２は、複数枚の原稿のサイズが同じであることが前提とされるクラウドサービス（例えば、アンケートの集計などの情報処理を行うクラウドサービス）である。クラウドサービス２については、１枚目の原稿から読み取られた画像の画像データの量に、画像形成装置１の自動原稿送り機構を構成する原稿トレイに積載された原稿の枚数を乗じることにより、画像データの総量が予測される。なお、画像読取部１０５は、原稿トレイに積載された原稿の枚数を検知するセンサを備えており、制御部１０１は、画像の読み取りが開始される前に当該センサにより原稿の枚数を取得している。クラウドサービス２について予測式が用いられる例として、１枚目の原稿から読み取られた画像の画像データの量が０．０５ＭＢであり、原稿トレイに積載された原稿の枚数が３０枚である場合、画像データの総量は１．５ＭＢであると予測される。
【００８１】
再び図１２Ｂを参照する。ステップＳＣ１４において、制御部１０１は、読み取り中の原稿について、既に読み取られた画像の画像データの積算量をＲＡＭに記憶する。なお、ステップＳＣ１４の処理が行われる場合には、以下に示すステップＳＣ１５からＳＣ１７の処理は、画像データの積算量が決められた量増える度に行われる。
【００８２】
ステップＳＣ１５において、制御部１０１は、ステップＳＣ１３またはＳＣ１４においてＲＡＭに記憶された画像データの総量または画像データの積算量と、予め決められた画像データの量（以下、「画像データ量Ｄ１」という）との差または割合に応じた数（以下、「変動数Ｍ２」という）を算出する。画像データ量Ｄ１は、クラウドサービスの種類ごとに予め記憶部１０２に記憶されている。なお、この画像データ量Ｄ１は、過去にクラウドサービスが利用されたときの画像データの量の履歴に応じて更新されてもよい。制御部１０１は、算出された変動数Ｍ２をＲＡＭに記憶する。
【００８３】
ステップＳＣ１６において、制御部１０１は、確保要求または解放要求をサービス提供装置２に送信する。具体的には、制御部１０１は、クラウドサービスが対応するプロトコルに従って、確保要求または解放要求を送信する。解放要求には、解放して欲しい仮想マシン２０の台数を示す情報が含まれる。制御部１０１は、ＲＡＭに記憶された変動数Ｍ２が正である場合には、変動数Ｍ２が示す台数の確保要求をサービス提供装置２に送信する。一方、ＲＡＭに記憶された変動数Ｍ２が負である場合には、変動数Ｍ２が示す台数（ここでは、変動数Ｍ２が示す台数の絶対値）の解放要求をサービス提供装置２に送信する。制御部１０１は、また、確度「３」をサービス提供装置２に送信する。変動数Ｍ２が０台である場合には、制御部１０１は、確保要求および解放要求を送信しない。なお、上述のステップＳＣ１４の処理が行われた場合には、制御部１０１は、変動数Ｍ２が負であっても解放要求を送信しない。すなわち、ステップＳＣ１４の処理が行われた場合には、制御部１０１は、変動数Ｍ２が正になると、当該変動数Ｍ２が示す台数の確保要求をサービス提供装置２に送信する。ステップＳＣ１６において確保要求および解放要求が送信されない場合においても、確保要求または解放要求の確度は送信されてもよい。
【００８４】
図１７は、解放要求の一例を示す図である。図１７は、ＸＭＬ形成の解放要求を示す。図１７に示す通り、解放要求には、解放要求であることを示す情報（第３行目の<record name="delRequest">）と、解放を要求する仮想マシン２０の台数（第６行目の<string name="value">1</string>）とが含まれる。図１７に示す解放要求の例では、１台の仮想マシン２０の解放が要求されている。
【００８５】
再び図１２Ｂを参照する。ステップＳＣ１７において、制御部１０１は、ＲＡＭに記憶された通知済台数を更新する。具体的には、制御部１０１は、ＲＡＭに記憶された通知済台数の値に変動数Ｍ２を加えた値を、新たな通知済台数としてＲＡＭに記憶する。なお、ステップＳＣ１７の処理は、ステップＳＣ１６において、確保要求または解放要求が送信された場合に行われる。ステップＳＣ１８において、制御部１０１は、原稿トレイに積載されたすべての原稿について画像の読み取りを終了する。原稿トレイに積載されたすべての原稿について画像の読み取りが終了すると、画像データの総量は確定する。ステップＳＣ１９において、制御部１０１は、ステップＳＣ１８において確定した画像データの総量と、画像データ量Ｄ１との差または割合に応じた数（以下、「変動数Ｍ３」という）を算出する。制御部１０１は、算出された変動数Ｍ３をＲＡＭに記憶する。
【００８６】
ステップＳＣ２０において、制御部１０１は、確保要求または解放要求をサービス提供装置２に送信する。具体的には、制御部１０１は、ＲＡＭに記憶された変動数Ｍ３が正である場合には、変動数Ｍ３が示す台数の確保要求をサービス提供装置２に送信する。一方、ＲＡＭに記憶された変動数Ｍ３が負である場合には、変動数Ｍ３が示す台数（ここでは、変動数Ｍ３が示す台数の絶対値）の解放要求をサービス提供装置２に送信する。制御部１０１は、また、確度「４」をサービス提供装置２に送信する。変動数Ｍ３が０台である場合には、制御部１０１は、確保要求および解放要求を送信しない。なお、ステップＳＣ２０において確保要求および解放要求が送信されない場合においても、確保要求または解放要求の確度は送信されてもよい。ステップＳＣ２１において、制御部１０１は、ＲＡＭに記憶された各種パラメータおよび画像データをサービス提供装置２に送信する。
【００８７】
以上の処理により、画像形成装置１からサービス提供装置２に画像データが送信される前に、サービス提供装置２に対して確保要求または解放要求が送信される。また、確保要求または解放要求は、画像形成装置１における処理の進捗が異なる複数のタイミング（すなわち、サービス開始指示の入力を受け付けた後、各種パラメータの設定が終了した後、画像データの総量が予測された後（または画像データの積算量が決められた量増えた後）、および画像データの総量が確定した後）で送信される。それにより、画像データの処理に不要な仮想マシン２０が確保されることが回避される。また、サービス提供装置２が、画像形成装置１から画像データを取得した後に仮想マシン２０の確保を開始した場合に比べて、仮想マシン２０の確保に掛かる時間が短縮される。次に、サービス提供装置２が、画像形成装置１からの確保要求または解放要求に応じて、仮想マシン２０を確保または解放する処理について説明する。
【００８８】
図１８は、サービス提供装置２が仮想マシン２０を確保する処理を示すフローチャートである。以下の処理は、例えば、予め決められた周期で繰り返し実行される。ステップＳＤ１において、制御部２０１は、ステップＳＡ１と同様の処理を行う。ステップＳＤ２において、制御部２０１は、画像形成装置１から、被選択業者について確保要求が取得されたか否かを判断する。具体的には、制御部２０１は、図１８に示す処理が開始された時刻よりも前の決められた時間内に確保要求が取得されたか否かを判断する。画像形成装置１から確保要求または解放要求が取得されたことは、被選択業者について、処理が増えると予想されることを表し、確保要求および解放要求が取得されていないことは、被選択業者について、処理が増えないと予想されることを表す。確保要求が取得されたと判断された場合（ＳＤ２：ＹＥＳ）、制御部２０１は、処理をステップＳＤ４に移行する。確保要求が取得されていないと判断された場合（ＳＤ２：ＮＯ）、制御部２０１は、処理をステップＳＤ３に移行する。
【００８９】
ステップＳＤ３において、制御部２０１は、画像形成装置１から、被選択業者について解放要求が取得されたか否かを判断する。具体的には、制御部２０１は、図１８に示す処理が開始された時刻よりも前の決められた時間内に解放要求が取得されたか否かを判断する。解放要求が取得されたと判断された場合（ＳＤ３：ＹＥＳ）、制御部２０１は、処理をステップＳＤ４に移行する。解放要求が取得されていないと判断された場合（ＳＤ３：ＮＯ）、制御部２０１は、処理をステップＳＤ１０に移行する。
【００９０】
ステップＳＤ４において、制御部２０１は、確保要求または解放要求の確度が予め決められた値よりも高いか否かを判断する。なお、確保要求または解放要求の確度が複数回取得された場合には、最後に取得された確保要求または解放要求の確度についてステップＳＤ４の判断がされる。確保要求または解放要求の確度が予め決められた値よりも高いことは、当該確度が予め決められた値よりも低いことに比べて、クラウドサービスの処理が増えると予想される度合いが高いことを表す。上述した確度の例では、確保要求または解放要求の確度が、例えば「２」よりも高いか否かが判断される。確保要求または解放要求の確度が予め決められた値よりも高いと判断された場合（ＳＤ４：ＹＥＳ）、制御部２０１は、処理をステップＳＤ５に移行する。確保要求または解放要求の確度が予め決められた値以下であると判断された場合（ＳＤ４：ＮＯ）、制御部２０１は、処理をステップＳＤ１０に移行する。ステップＳＤ５において、制御部２０１は、ステップＳＡ２と同様の処理を行う。ステップＳＤ６からステップＳＤ１０において、制御部２０１は、ステップＳＡ４からステップＳＡ８と同様の処理を行う。
【００９１】
以上の処理により、稼働台数が閾値Ｔｍ以上である場合には、稼働台数が閾値Ｔｍを下回る場合に比べて慎重に仮想マシン２０が確保される。そのため、管理業者にとっては確保される仮想マシン２０の台数が抑制され、且つ、提供業者にとっては課金が増えることが抑制される。また、稼働台数が閾値Ｔｍを下回る場合には、稼働台数が閾値Ｔｍ以上である場合に比べて素早く仮想マシン２０が確保される。そのため、提供業者にとってはユーザの要求に応じて即座にクラウドサービスが提供される。
【００９２】
図１９は、サービス提供装置２が仮想マシン２０を解放する処理を主として示すフローチャートである。以下の処理は、確保されたいずれかの仮想マシン２０における情報処理が終了したことを契機として開始され、特定業者について行われる。ステップＳＥ１からステップＳＥ５において、制御部２０１は、ステップＳＢ１からステップＳＢ５と同様の処理を行う。ステップＳＥ６において、制御部２０１は、画像形成装置１から、特定業者について確保要求が取得されたか否かを判断する。具体的には、制御部２０１は、図１９に示す処理が開始された時刻よりも前の決められた時間内に確保要求が取得されたか否かを判断する。確保要求が取得されていないと判断された場合（ＳＥ６：ＮＯ）、制御部２０１は、処理をステップＳＥ７に移行する。確保要求が取得されたと判断された場合（ＳＥ６：ＹＥＳ）、制御部２０１は、処理を終了する。
【００９３】
ステップＳＥ７において、制御部２０１は、画像形成装置１から、特定業者について解放要求が取得されたか否かを判断する。具体的には、制御部２０１は、図１９に示す処理が開始された時刻よりも前の決められた時間内に解放要求が取得されたか否かを判断する。解放要求が取得されていないと判断された場合（ＳＥ７：ＮＯ）、制御部２０１は、処理をステップＳＥ８に移行する。解放要求が取得されたと判断された場合（ＳＥ７：ＹＥＳ）、制御部２０１は、処理を終了する。ステップＳＥ８において、制御部２０１は、ステップＳＢ７と同様の処理を行う。
【００９４】
以上の処理により、稼働台数が閾値Ｔｍを下回っている場合には、稼働台数が閾値Ｔｍ以上である場合に比べて慎重に仮想マシン２０がリソースプール２００に解放される。そのため、管理業者にとっては確保される仮想マシン２０の台数が抑制され、且つ、提供業者にとってはユーザの要求に応じて即座にクラウドサービが提供される。また、稼働台数が閾値Ｔｍ以上である場合には、稼働台数が閾値Ｔｍを下回っている場合に比べて素早く仮想マシン２０がリソースプール２００に解放される。そのため、管理業者にとっては確保される仮想マシン２０の台数が抑制され、且つ、提供業者にとっては課金が増えることが抑制される。
【００９５】
本発明は、上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下で説明する変形例のうち、２つ以上のものが組み合わされて用いられてもよい。
【００９６】
（１）変形例１
サービス提供装置２が提供するサービスは、クラウドサービスに限らない。サービス提供装置２は、オンプレミスのサーバサービス、またはプリントサービスなどを提供してもよい。
【００９７】
（２）変形例２
コンピュータリソースは、仮想マシン２０に限らない。例えば、サービス提供装置２が複数台のコンピュータを組み合わせることにより構成されている場合、物理的なコンピュータがコンピュータリソースとして扱われてもよい。また、サービス提供装置２が確保・解放するコンピュータリソースは、仮想マシンや物理マシンの台数に限らず、メモリやＨＤＤの容量、ＣＰＵのコア数や使用時間であってもよい。
【００９８】
（３）変形例３
サービス提供装置２が提供するクラウドサービスは、一のクラウドサービスに限らない。サービス提供装置２は、複数の種類のクラウドサービスを提供してもよい。また、サービス提供装置２が仮想マシン２０を確保する提供業者は、複数の提供業者に限らない。サービス提供装置２は、一の提供業者について仮想マシン２０を確保してもよい。
【００９９】
（４）変形例４
画像形成装置１がサービス提供装置２に解放要求を送信するタイミングは、実施形態に記載されたタイミングに限らない。画像形成装置１は、例えば、原稿から画像を読み取っているときの紙詰まり、または画像読取部１０５の故障など、クラウドサービスにおける処理の開始を妨げる事象が発生した場合に、解放要求を送信してもよい。この場合、制御部１０１は、自動原稿送り機構および画像読取部１０５などの画像形成装置１の各部からエラーを示す信号を取得することにより、当該事象の発生を検知する。なお、制御部１０１は、例えば、SNMP(Simple Network Management Protocol) Notificationを利用して、当該事象の発生を検知してもよい。別の例で、画像形成装置１は、クラウドサービスの利用を開始させるための操作が中止された場合に、解放要求を送信してもよい。この場合、制御部１０１は、各種パラメータの設定を受け付ける画面において、ユーザが、クラウドサービスの利用をキャンセルするための指示を入力したこと、ログアウトしたこと、または、当該画面を決められた時間操作していないことなどにより、当該事象の発生を検知する。変形例４における解放要求が送信される場合、制御部１０１は、解放要求の確度として、ステップＳＤ４における決められた値以下の確度をサービス提供装置２に送信する。例えば、決められた値が確度「２」である場合には、制御部１０１は、「２」以下の確度をサービス提供装置２に送信する。なお、変形例４における解放要求が取得された場合、ステップＳＥ７において、制御部２０１は、処理をステップＳＥ８に移行してもよい。
【０１００】
図２０は、変形例４に係る画像形成装置１の機能的構成を示すブロック図である。図２０において、画像形成装置１は、図１０に示した構成に加えて検知手段１６を有する。検知手段１６は、確保要求がサービス提供装置２に送信された後に、クラウドサービスにおける処理の開始を妨げる事象の発生を検知する。送信手段１５は、検知手段１６により事象の発生が検知されると、通信手段１１を介して、解放要求をサービス提供装置２に送信する。変形例４について、プログラムを実行している制御部１０１は、検知手段１６の一例である。なお、検知手段１６は、確保要求がサービス提供装置２に送信された後に、クラウドサービスの利用を開始させるための操作が中止されたことを検知してもよい。
【０１０１】
（５）変形例５
画像処理システムにおいて用いられる各装置のハードウェア構成は、図４および図１１に示した構成に限らない。各装置は、実施形態に示した各ステップの処理を実行できれば、どのようなハードウェア構成であってもよい。
クライアント装置は、画像形成装置１に限らない。クライアント装置は、例えば、パーソナルコンピュータなどの他の装置であってもよい。
【０１０２】
（６）変形例６
ステップＳＣ１３において予測された画像データの総量、またはステップＳＣ１４においてＲＡＭに記憶された画像データの積算量に応じて予想台数が算出されてもよい。この場合、ステップＳＣ１５において、制御部１０１は、ステップＳＣ１３またはステップＳＣ１４において算出された予想台数と通知済台数との差を変動数Ｍ２として算出してもよい。変形例６のステップＳＣ１３において、制御部１０１は、例えば、記憶部１０２に記憶された、画像データの総量に応じて予想台数を算出するためのデータ（以下、「台数算出データＤｉ」という）に基づいて、予想台数を算出する。また、変形例６のステップＳＣ１４において、制御部１０１は、画像データの積算量が決められた量（例えば１ＭＢ）増える度に、決められた割合（例えば、画像データの量が１ＭＢにつき０．７台の割合）で予想台数を算出する。なお、算出された予想台数のうち小数点以下の値は切り上げられる。制御部１０１は、算出された予想台数をＲＡＭに上書きする。
【０１０３】
図２１は、台数算出データＤｉの一例を示す図である。図２１の台数算出データＤｉは、画像データの総量を予測するための予測式が記憶されたクラウドサービスごとに、予想台数を算出するための式を示す。なお、算出された予想台数のうち小数点以下の値は切り上げられる。図２１の例で、クラウドサービス１については、画像データの量が１ＭＢにつき０．５台の割合で予想台数が算出される。例えば、クラウドサービス１について予測された画像データの総量が４ＭＢである場合、予想台数は２台と算出される。また、クラウドサービス２については、画像データの量が１ＭＢにつき１台の割合で予想台数が算出される。例えば、クラウドサービス２について予測された画像データの総量が１．５ＭＢである場合、予想台数は１．５台（小数点以下を切り上げて２台）と算出される。
【０１０４】
ステップＳＣ１８において確定した画像データの総量に応じて予想台数が算出されてもよい。この場合、ステップＳＣ１９において、制御部１０１は、ステップＳＣ１８において算出された予想台数と通知済台数との差を変動数Ｍ３として算出してもよい。変形例６のステップＳＣ１８において、制御部１０１は、例えば、上述の台数算出データＤｉに基づいて、予想台数を算出する。制御部１０１は、算出された予想台数をＲＡＭに上書きする。
【０１０５】
（７）その他の変形例
図５または図１８に示す処理が開始されるタイミングは、実施形態に記載されたタイミングに限らない。図５または図１８に示す処理は、サービス提供装置２が提供する複数のクラウドサービスのうちのいずれかのクラウドサービスについて、確保要求が取得されたことを契機として開始されてもよい。この場合、ステップＳＤ２の処理は、行われなくてもよい。
図８または図１９に示す処理が開始されるタイミングは、実施形態に記載されたタイミングに限らない。図８または図１９に示す処理は、例えば、予め定められた周期で繰り返し実行されてもよい。この場合、図８に示す処理は、図５に示す処理よりも頻繁に行われる。
【０１０６】
ステップＳＡ３において被選択業者の処理の増減を予測するのに用いられる利用履歴データは、実施形態に記載されたデータに限らない。利用履歴データは、例えば、１時間よりも短い間隔で平均台数を示していてもよい。別の例で、利用履歴データは、曜日毎または月日毎に記憶されていてもよい。
また、ステップＳＡ３において被選択業者の処理の増減を予測する方法は、実施形態に記載された方法に限らない。例えば、稼働台数Ｎ１が平均台数Ｎ２よりも小さく、且つ、稼働台数Ｎ１と平均台数Ｎ２との差が閾値Ｔｄ以上である場合に、被選択業者の処理が増えると予想されてもよい。
被選択業者の処理の増減を予測する方法は、稼働台数が閾値Ｔｍ以上である場合（ステップＳＡ４：ＹＥＳ）と、稼働台数が閾値Ｔｍを下回る場合（ステップＳＡ４：ＮＯ）とで異なっていてもよい。この場合、ステップＳＡ３の処理は、ステップＳＡ４とステップＳＡ５の間、およびステップＳＡ４とステップＳＡ６の間に行われてもよい。例えば、上述の閾値Ｔｄが用いられる場合、ステップＳＡ４が「ＹＥＳ」のときには、稼働台数Ｎ１と平均台数Ｎ２との差が閾値Ｔｄ１以上であるか否かが判断され、ステップＳＡ４が「ＮＯ」のときには、稼働台数Ｎ１と平均台数Ｎ２との差が閾値Ｔｄ２（＜Ｔｄ１）以上であるか否かが判断されてもよい。
【０１０７】
ステップＳＡ３の処理は、行われなくてもよい。
ステップＳＡ５においてＣＰＵ負荷が閾値Ｔｈ１以上であると判断された場合（ＳＡ５：ＹＥＳ）、必ずしも仮想マシン２０が確保されなくてもよい。例えば、提供業者が利用することができる仮想マシン２０の台数の上限（以下、「上限台数」という）が各提供業者について予め設定されており、稼働台数が被選択業者について設定された上限台数を超えていない場合に仮想マシン２０が確保されてもよい。この場合、ステップＳＡ５とステップＳＡ７との間において、稼働台数が被選択業者の上限台数を超えていないかどうかが判断される。
また、ある提供業者については閾値Ｔｍを上回る台数の仮想マシン２０が確保されないようにするために、当該提供業者についてはステップＳＡ５の処理が行われないようにしてもよい。
ステップＳＡ７において確保される仮想マシン２０の台数は、１台に限らない。例えば、複数台の仮想マシン２０が確保されてもよい。
ステップＳＢ３で用いられる閾値Ｔｈ１は、ステップＳＡ５で用いられる閾値Ｔｈ１と異なっていてもよい。
ステップＳＢ５の処理は、行われなくてもよい。この場合、特定業者のＣＰＵ負荷が閾値Ｔｈ３以上であると判断されると（ＳＢ４：ＮＯ）、制御部２０１は、処理を終了する。
【０１０８】
ステップＳＣ３の確保要求において確保が要求される仮想マシン２０の台数は、クラウドサービスの種類、提供業者、またはサービス提供装置２により異なってもよい。例えば、あるサービス提供装置２には１台の仮想マシン２０の確保が要求され、他のサービス提供装置２には複数台の仮想マシン２０の確保が要求されてもよい。
ステップＳＣ４において、設定が受け付けられる各種パラメータは、実施形態に記載されたパラメータに限らない。
【０１０９】
ステップＳＣ６において、仮想マシン２０の台数を算出するために用いられる式は、実施形態に記載された式に限らない。また、ステップＳＣ６において算出された予想台数のうち、少数点以下の端数は切り上げられる場合に限らない。例えば、少数点以下の端数は四捨五入されてもよい。
ステップＳＣ８においてサービス提供装置２に送信される要求は、確保要求に限らない。例えば、ＲＡＭに記憶された変動数Ｍ１が負である場合には、変動数Ｍ１が示す台数（ここでは、変動数Ｍ１が示す台数の絶対値）の解放要求がサービス提供装置２に送信されてもよい。
【０１１０】
ステップＳＣ１３において画像データの総量を予測するのに用いられる予測式は、実施形態に記載された予測式に限らない。画像データの総量が予測される式であれば、いかなる予測式が用いられてもよい。
【０１１１】
ステップＳＣ１３の処理は行われなくてもよい。この場合、ステップＳＣ１２は省略され、利用が開始されるクラウドサービスについてステップＳＣ１４の処理が行われる。また、ステップＳＣ１４の処理は行われなくてもよい。この場合、ステップＳＣ１２は省略され、利用が開始されるクラウドサービスについてステップＳＣ１３の処理が行われる。
【０１１２】
確保要求または解放要求が送信されるタイミングは、実施形態に記載されたタイミングに限らない。確保要求または解放要求は、画像形成装置１の処理の進捗におけるいかなるタイミングで送信されてもよい。
【０１１３】
ステップＳＤ４の処理が行われるときの決められた値は、実施形態に記載された値に限らない。例えば、確保要求または解放要求の確度が、「３」よりも高いか否かが判断されてもよい。
【０１１４】
クラウドサービスにおける処理の対象となる画像データは、複数枚の原稿から読み取られた画像の画像データに限らない。１枚の原稿から読み取られた画像の画像データに対して、クラウドサービスにおける処理が行われてもよい。また、クラウドサービスにおける処理の対象となるデータは、画像データに限らない。
画像形成装置１が画像データを取得する方法は、画像読取部１０５により原稿を読み取る方法に限らない。画像形成装置１は、ネットワークを介して他の情報処理装置から画像データを取得してもよい。また、画像形成装置１は、ＵＳＢメモリなどの着脱可能な記録媒体から画像データを取得してもよい。
【０１１５】
実施形態において、画像形成装置１およびサービス提供装置２によって実行されるプログラムは、磁気記録媒体（磁気テープ、磁気ディスク（ＨＤＤ、ＦＤ（Flexible Disk））など）、光記録媒体（光ディスク（ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk））など）、光磁気記録媒体、半導体メモリ（フラッシュＲＯＭなど）などのコンピュータが読み取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットなどのネットワーク経由でダウンロードされてもよい。
【符号の説明】
【０１１６】
１…画像形成装置、１１…通信手段、１２…取得手段、１３…予測手段、１４…算出手段、１５…送信手段、１６…検知手段、１０１…制御部、１０２…記憶部、１０３…操作部、１０４…表示部、１０５…画像読取部、１０６…画像形成部、１０７…通信部、１０８…画像処理部、１０９…バス、２…サービス提供装置、２１…管理手段、２２…判定手段、２３…確保手段、２４…解放手段、２５…通信手段、２０１…制御部、２０２…記憶部、２０３…通信部、２０４…バス、２０…仮想マシン、２００…リソースプール
【図１】
2015087936.tif 000003
【図２】
2015087936.tif 000004
【図３】
2015087936.tif 000005
【図４】
2015087936.tif 000006
【図５】
2015087936.tif 000007
【図６】
2015087936.tif 000008
【図７】
2015087936.tif 000009
【図８】
2015087936.tif 000010
【図９】
2015087936.tif 000011
【図１０】
2015087936.tif 000012
【図１１】
2015087936.tif 000013
【図１２Ａ】
2015087936.tif 000014
【図１２Ｂ】
2015087936.tif 000015
【図１３】
2015087936.tif 000016
【図１４】
2015087936.tif 000017
【図１５】
2015087936.tif 000018
【図１６】
2015087936.tif 000019
【図１７】
2015087936.tif 000020
【図１８】
2015087936.tif 000021
【図１９】
2015087936.tif 000022
【図２０】
2015087936.tif 000023
【図２１】
2015087936.tif 000024