(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、情報処理装置と連携したデータ処理を行う処理提供装置に、データ処理が開始される前に資源の確保または解放の要求を送信することで、処理提供装置の応答性能を向上させることを目的とする。
【課題を解決するための手段】
【0005】
請求項1に係る情報処理装置は、データ処理の負荷に応じて異なる量の資源を利用する処理提供装置と通信する通信手段と、前記データを前記処理提供装置に送信する前の自装置の処理の段階に応じた複数の時点で、前記処理提供装置が該データの処理に利用する資源の量を算出する算出手段と、
前記資源の量が算出される度に、前記算出された量に応じた前記資源を確保するための要求を、前記通信手段を介して前記処理提供装置に送信する送信手段とを有する。
【0006】
請求項2に係る情報処理装置は、請求項1に記載の構成において、前記送信手段は、前記資源の量が算出される度に、前記資源の確保または解放の要求を前記処理提供装置に送信することを特徴とする。
【0007】
請求項3に係る情報処理装置は、請求項2に記載の構成において、前記算出手段は、前記データ処理の指示が受け付けられると、当該データ処理に応じて、前記資源の量を算出することを特徴とする。
【0008】
請求項4に係る情報処理装置は、請求項2または3に記載の構成において、前記データ処理についてのパラメータの設定が受け付けられると、当該パラメータに応じて、前記資源の量を算出することを特徴とする。
【0009】
請求項5に係る情報処理装置は、請求項2ないし4のいずれか1項に記載の構成において、前記データ処理の対象となるデータを取得する取得手段と、前記取得手段が前記データを取得するのを終える前に、前記データの量を予測する予測手段とを有し、前記算出手
段は、前記予測手段により前記データの量が予測されると、当該データの量に応じて、前記資源の量を算出することを特徴とする。
【0010】
請求項6に係る情報処理装置は、請求項2ないし4のいずれか1項に記載の構成において、前記データ処理の対象となるデータを取得する取得手段を有し、前記算出手段は、前記取得手段により取得されているデータの量が決められた値を超える度に、当該決められた値に応じて、前記資源の量を算出することを特徴とする。
【0011】
請求項7に係る情報処理装置は、請求項2ないし4のいずれか1項に記載の構成において、前記データ処理の対象となるデータを取得する取得手段を有し、前記算出手段は、前記取得手段により前記データが取得されると、当該データの量に応じて、前記資源の量を算出することを特徴とする。
【0012】
請求項8に係る情報処理装置は、請求項1ないし7のいずれか1項に記載の構成において、前記資源
を確保するための要求が前記送信手段により送信された後に、前記データ処理の開始を妨げる事象の発生を検知する検知手段を有し、前記送信手段は、前記検知手段により前記事象の発生が検知されると、前記資源の解放の要求を、前記処理提供装置に送信することを特徴とする。
【0013】
請求項9に係る情報処理装置は、請求項1ないし7のいずれか1項に記載の構成において、前記資源
を確保するための要求が前記送信手段により送信された後に、前記データ処理を開始させるための操作が中止されたことを検知する検知手段を有し、前記送信手段は、前記データ処理を開始させるための操作が中止されたことが検知されると、前記資源の解放の要求を、前記処理提供装置に送信することを特徴とする。
【0014】
請求項10に係る情報処理装置は、請求項1ないし9のいずれか1項に記載の構成において、前記通信手段は、前記資源
を確保するための要求に対する応答として、前記資源が確保されたか否かを示す情報を、前記処理提供装置から取得し、前記送信手段は、前記通信手段により取得された情報が、前記資源が確保されていないことを示している場合、前記資源
を確保するための要求を、前記処理提供装置に再び送信することを特徴とする。
【0015】
請求項11に係る情報処理装置は、請求項1ないし9のいずれか1項に記載の構成において、前記通信手段は、前記資源
を確保するための要求に対する応答として、前記資源が確保されない場合には、利用されていない資源の量を示す情報を、前記処理提供装置から取得し、前記送信手段は、前記通信手段により取得された情報により示された前記資源の量が、自装置が前記データ処理を与えた場合に利用される資源の下限量以上である場合、当該情報により示された量の前記資源
を確保するための要求を、前記処理提供装置に送信することを特徴とする。
【0016】
請求項12に係る情報処理装置は、請求項1ないし11のいずれか1項に記載の構成において、前記算出手段は、前記データ処理についてのパラメータの設定が受け付けられた第1時点で、当該パラメータに応じて前記資源の第1量を算出し、前記データ処理の対象となるデータの取得が開始された後、前記データの取得を終える前の第2時点で、前記データの予測量に応じて前記資源の第2量を算出し、前記送信手段は、前記第1量の算出に応じて、前記第1量に応じた前記資源を確保するための第1要求を、前記通信手段を介して前記処理提供装置に送信し、前記第2量の算出に応じて、前記第2量に応じた前記資源を確保するための第2要求を、前記通信手段を介して前記処理提供装置に送信することを特徴とする。
請求項
13に係る情報処理システムは、情報処理装置と、データ処理の負荷に応じて異なる量の資源を利用する処理提供装置とを有し、前記情報処理装置は、前記処理提供装置と通信する第1の通信手段と、前記データを前記処理提供装置に送信する前の自装置の処理の段階に応じた複数の時点で、前記処理提供装置が該データの処理に利用する資源の量を算出する算出手段と、
前記資源の量が算出される度に、前記算出された量に応じた前記資源を確保するための要求を、前記
第1の通信手段を介して、前記処理提供装置に送信する送信手段とを有し、前記処理提供装置は、前記情報処理装置と通信する第2の通信手段と、利用される前記資源の量を管理する管理手段であって、前記情報処理装置により送信された要求に応じて、前記データ処理が開始される前に、前記資源を確保または解放する管理手段とを有する。
【0017】
請求項
14に係るプログラムは、コンピュータに、データ処理の負荷に応じて異なる量の資源を利用する処理提供装置と通信するステップと、前記データを前記処理提供装置に送信する前の自装置の処理の段階に応じた複数の時点で、前記処理提供装置が該データの処理に利用する資源の量を算出するステップと、
前記資源の量が算出される度に、前記算出された量に応じた前記資源を確保するための要求を、前記処理提供装置に送信するステップとを実行させる。
【発明の効果】
【0018】
請求項1、
13、および
14に係る発明によれば、情報処理装置と連携したデータ処理を行う処理提供装置に、データ処理が開始される前に資源の確保または解放の要求を送信することで、処理提供装置の応答性能を向上させることができる。
請求項2に係る発明によれば、資源の量が算出される度に、処理提供装置により資源が確保され、または解放される。
請求項3に係る発明によれば、サービスの利用の開始の指示が受け付けられると、処理提供装置により資源が確保され、または解放される。
請求項4に係る発明によれば、データ処理についてのパラメータの設定が受け付けられると、処理提供装置により資源が確保され、または解放される。
請求項5に係る発明によれば、データ処理の対象となるデータの量が予測されると、処理提供装置により資源が確保され、または解放される。
請求項6に係る発明によれば、データ処理の対象となるデータの量が決められた値を超える度に、処理提供装置により資源が確保され、または解放される。
請求項7に係る発明によれば、データ処理の対象となるデータが取得されると、処理提供装置により資源が確保され、または解放される。
請求項8に係る発明によれば、データ処理の開始を妨げる事象の発生が検知されると、処理提供装置により資源が解放される。
請求項9に係る発明によれば、データ処理を開始させるための操作が中止されたことが検知されると、処理提供装置により資源が解放される。
請求項10に係る発明によれば、資源の確保の要求が、資源が確保されるまで処理提供装置に送信される。
請求項11に係る発明によれば、自装置がデータ処理を与えた場合に利用される資源の下限量以上の量の資源が、処理提供装置により確保される。
【発明を実施するための形態】
【0020】
図1は、本発明の一実施形態に係る画像処理システム(情報処理システムの一例)の全体構成を説明する図である。画像処理システムは、画像データに関する各種のデータ処理(例えば、画像データの差分の検出、画像データに基づく情報の集計、および画像データの形式の変換など)を行うためのシステムである。画像処理システムは、画像形成装置1(情報処理装置の一例)とサービス提供装置2とを有する。画像形成装置1は、複写機、プリンタ、スキャナ、およびファクシミリなどとして機能する装置である。サービス提供装置2は、サービスを提供するサーバ装置である。本発明において、サービスは1以上の機能を組み合わせることにより提供される。本実施形態において、サービス提供装置2は、サービスの一例としてクラウドサービスを提供する。クラウドサービスとは、データの保存またはデータ形式の変換などの各種の情報処理を行うコンピュータ資源を、通信回線を介して提供するサービスである。サービス提供装置2は、画像データに関する各種のデータ処理を画像形成装置1に代わって行う。サービス提供装置2は、クラウドサービスにおけるデータ処理の負荷に応じて異なる量のコンピュータリソースを利用する。コンピュータリソースとは、サービス提供装置2がクラウドサービスを提供するために用いる物理的または仮想的なコンピュータ資源であって、例えば、仮想化技術を用いることによりサービス提供装置2の内部に設けられた仮想マシンをいう。
図1において、サービス提供装置2には、複数台の仮想マシン20が仮想的に設けられている。サービス提供装置2は、クラウドサービスにおける処理の負荷に応じて異なる台数の仮想マシン20を利用する。
【0021】
画像形成装置1とサービス提供装置2とは、インターネットなどの通信回線Nを介して相互に接続されている。画像処理システムにおいて、画像形成装置1は、仮想マシン20の確保または解放の要求をサービス提供装置2に送信する(
図1(a))。仮想マシン20の確保または解放の要求とは、サービス提供装置2に仮想マシン20を確保させ、または解放させることの要求をいう。サービス提供装置2は、画像形成装置1から送信された要求に応じて、仮想マシン20を確保または解放する(
図1(b))。画像形成装置1は、仮想マシン20の確保または解放がされた後に、画像データをサービス提供装置2に送信する(
図1(c))。画像形成装置1は、例えば、原稿を光学的に読み取ることにより取得された画像データをサービス提供装置2に送信する。サービス提供装置2は、クラウドサービスにおける情報処理が行われた画像データを画像形成装置1に送信する(
図1(d))。
【0022】
図1において、仮想マシン20が確保される場合には、確保を要求するユーザに対して1台あたり何円、または1台あたり何円/時間という形で課金が行われる。確保される仮想マシン20が多くなるほどユーザが負担する費用は多くなり、また場合によって確保している時間によってもユーザが負担する費用が多くなる。
【0023】
画像形成装置1から仮想マシン20の確保の要求を受信したサービス提供装置2は、当該要求により指定された台数の仮想マシン20の確保を開始する。この仮想マシン20の確保には時間が掛かる。例えば仮想マシン20が1台も確保されていない状態から確保する場合、仮想マシン20の台数に関わらず、仮想マシン20が確保されていない状態から仮想マシン20を確保するのに必要な初期化などの処理の時間をx1(秒)、1台の仮想マシン20を確保するために要する時間をt1(秒/台)、確保する仮想マシン20の台数をp(台)とすると、x1+t1×p(秒)の時間が掛かる。
【0024】
また、既に確保された仮想マシン20の台数の追加を行う場合、仮想マシン20を確保している状態から仮想マシン20を確保するのに必要な初期化などの処理の時間をx2(秒)、追加する仮想マシン20の台数をq(台)とすると、x2+t1×q(秒)の時間が掛かる。
【0025】
また、既に確保された仮想マシン20を解放する場合、仮想マシン20が確保されてい
る状態から仮想マシン20を解放するのに必要な初期化などの処理の時間をx3(秒)、1台の仮想マシン20を解放するために要する時間をt2(秒/台)、解放する仮想マシン20の台数をr(台)とすると、x3+t2×r(秒)の時間が掛かる。
【0026】
仮想マシン20が確保されていない状態から仮想マシン20を確保するよりも、既に確保された仮想マシン20に台数を追加する方が必要な処理が少なくなり、また、新たに仮想マシン20を確保するよりも既に確保した仮想マシン20を解放する方が処理が少なくなる事が多い。つまりx1>x2>x3であることが多い。
【0027】
さらに1台あたりの仮想マシン20を確保するよりも、1台あたりの仮想マシン20を解放する方が処理が少なくなる事が多い。つまりt1>t2であることが多い。
【0028】
図2は、画像処理システムの機能的構成を示すブロック図である。画像形成装置1は、通信手段11と、取得手段12と、予測手段13と、算出手段14と、送信手段15とを有する。通信手段11は、サービス提供装置2と通信する。取得手段12は、クラウドサービスにおける情報処理の対象となる画像データを取得する。予測手段13は、取得手段12が画像データを取得するのを終える前に、画像データの量を予測する。算出手段14は、サービス提供装置2が画像データの処理に利用する仮想マシン20の台数を算出する。算出手段14は、画像データをサービス提供装置2に送信する前の、画像形成装置1における処理の段階に応じた複数の時点で、仮想マシン20の台数を算出する。算出手段14は、予測手段13により画像データの量が予測される場合、当該画像データの量に応じて、仮想マシン20の台数を算出する。算出手段14は、また、予測手段13により画像データの量が予測されない場合、取得手段12により取得されている画像データの量が決められた値を超える度に、当該決められた値に応じて、仮想マシン20の台数を算出する。送信手段15は、算出手段14により算出された台数に応じて、仮想マシン20の確保または解放の要求を、サービス提供装置2に送信する。送信手段15は、仮想マシン20の確保または解放の要求を、通信手段11を介して送信する。通信手段11は、また、取得手段12により取得された画像データを、仮想マシン20の確保または解放の要求が送信された後に、サービス提供装置2に送信する。
【0029】
サービス提供装置2は、通信手段21と管理手段22とを有する。通信手段21は、画像形成装置1と通信する。管理手段22は、クラウドサービスにおける情報処理に利用される仮想マシン20の台数を管理する。管理手段22は、クラウドサービスにおける処理が開始される前に、仮想マシン20を確保または解放する。
【0030】
図3は、画像形成装置1のハードウェア構成を示すブロック図である。同図に示したように、画像形成装置1は、制御部101と、記憶部102と、操作部103と、表示部104と、画像読取部105と、画像形成部106と、通信部107と、画像処理部108とを備える。また、画像形成装置1の各部は、バス109に接続されており、このバス109を介して各種データの授受を行う。
【0031】
制御部101は、画像形成装置1の各部の動作を制御する手段である。制御部101は、CPU(Central Processing Unit)などの演算処理装置と、ROM(Read Only Memory)、RAM(Random Access Memory)などの記録媒体(主記憶装置)とを備える。CPUは、ROMに記憶されている制御プログラムを読み出し、RAMを作業エリアにして制御プログラムを実行する。制御部101は、このように制御プログラムを実行することにより、用紙に画像を形成すること、文書を読み取って文書の画像データを生成すること、通信回線Nを介して他の装置と通信を行うことなどを実現する。
【0032】
記憶部102は、データを記憶する手段である。記憶部102は、ハードディスク、フ
ラッシュメモリなどの記録媒体(補助記憶装置)を備え、通信部107で受信したデータや画像形成装置1で生成されたデータなどを記憶する。また、記憶部102は、いわゆるメモリーカードやUSB(Universal Serial Bus)メモリなどの着脱可能な記録媒体(リムーバブルメディア)と、その記録媒体にデータを読み書きする手段とを含んでもよい。
【0033】
操作部103は、ユーザの操作を受け付ける手段である。操作部103は、操作子(ボタン、キーなど)を備え、押下された操作子に応じた制御信号を制御部101に供給する。また、操作部103は、表示部104と、表示部104の表示面に重ねて設けられたセンサとを備え、押圧した位置に応じた制御信号を制御部101に供給するタッチパネルによって構成されてもよい。
【0034】
表示部104は、情報を表示する手段である。表示装置として例えば液晶ディスプレイを有している。表示部104は、制御部101の制御の下、画像形成装置1を操作するためのメニュー画面や画像形成装置1に関するデータなどを表示する。
【0035】
画像読取部105は、原稿を読み取って画像データに変換する手段である。画像読取部105は、原稿を光学的に読み取り、読み取った原稿の画像を表す画像データを生成する画像読取装置を備えている。画像読取部105は、生成した画像データを画像処理部108に供給する。本実施形態において、画像読取部105は、画像形成装置1の図示しない自動原稿送り機構を構成する原稿トレイに積載された複数枚の原稿から画像を順次読み取るための構成を備える。
【0036】
画像形成部106は、画像を形成する手段である。画像形成部106は、電子写真方式によって紙などの記録媒体にトナー像を形成する画像形成機構を具備している。なお、画像形成機構は、電子写真方式に限らず、インクジェット方式などの他の記録方式が用いられてもよい。
【0037】
通信部107は、データを送受信する手段である。通信部107は、通信回線Nに接続されており、通信回線Nに接続されている他の装置と通信を行う通信インターフェースとして機能する。
【0038】
画像処理部108は、画像データに対して画像処理を実行する手段である。ここでいう画像処理とは、例えば、色補正や階調補正である。画像処理部108は、画像処理が施された画像データを画像形成部106に供給する。
【0039】
図3において、プログラムを実行している制御部101は、予測手段13、算出手段14、および送信手段15の一例である。プログラムを実行している制御部101により制御されている画像読取部105は、取得手段12の一例である。プログラムを実行している制御部101により制御されている通信部107は、通信手段11の一例である。
【0040】
図4は、サービス提供装置2のハードウェア構成を示すブロック図である。同図に示したように、サービス提供装置2は、制御部201と、記憶部202と、通信部203とを備えるコンピュータである。また、サービス提供装置2の各部は、バス204に接続されており、このバス204を介して各種データの授受を行う。
【0041】
制御部201は、サービス提供装置2の各部の動作を制御する手段である。制御部201は、CPUなどの演算処理装置と、ROM、RAMなどの記録媒体(主記憶装置)とを備える。記憶部202は、データを記憶する手段である。記憶部102は、ハードディスク、フラッシュメモリなどの記録媒体(補助記憶装置)を備え、通信部203で受信したデータを記憶する。通信部203は、データを送受信する手段である。通信部203は、
通信回線Nに接続されており、通信回線Nに接続されている他の装置と通信を行う通信インターフェースとして機能する。なお、サービス提供装置2は、必ずしも物理的に1台のコンピュータでなくてもよく、複数台のコンピュータを組み合わせることにより構成されてもよい。
図4において、プログラムを実施している制御部201は、管理手段22の一例である。プログラムを実行している制御部201により制御されている通信部203は、通信手段21の一例である。
【0042】
図5は、画像形成装置1が行う処理を示すフローチャートである。ステップSA1において、制御部101は、クラウドサービスの利用を開始させるための指示(以下、「サービス開始指示」という)の入力を受け付ける。サービス開始指示は、ユーザが操作部103を操作することにより入力される。表示部104には、例えば、利用可能な複数のクラウドサービスが表示され、ユーザはこの中から利用するクラウドサービスを選択する。ステップSA2において、制御部101は、ユーザにより指定されたクラウドサービスを提供するサービス提供装置2を特定する。具体的には、制御部101は、記憶部102に記憶された、クラウドサービスの種類とサービス提供装置2のURL(Uniform Resource Locator)との対応を示すデータ(以下、「URLデータ」という)に基づいて、ユーザにより指定されたクラウドサービスを提供するサービス提供装置2のURLを特定する。制御部101は、特定されたサービス提供装置2のURLをRAMに記憶する。
【0043】
図6は、URLデータの一例を示す図である。URLデータは、「クラウドサービス」および「送信先」の要素を含む。「クラウドサービス」は、クラウドサービスの種類を表す。
図6のURLデータにおいては、クラウドサービスA、B、およびCがクラウドサービスとして示されている。クラウドサービスA、B、およびCは、それぞれ異なるサービス提供装置2により提供される。「送信先」は、サービス提供装置2のURLを示す。クラウドサービスA、B、およびCを提供するサービス提供装置2のURLは、「http://aaa/tenantA/resource」、「http://bbb/tenantB/resource」、および「http://ccc/tenantC/resource」である。
【0044】
再び
図5を参照する。ステップSA3において、制御部101は、仮想マシン20の確保の要求(以下、「確保要求」という)を、サービス提供装置2に送信する。確保要求の送信先は、RAMに記憶されたサービス提供装置2のURLにより示される。確保要求には、確保して欲しい仮想マシン20の台数を示す情報が含まれる。ステップSA3においては、サービスが選択された段階なので、最低限必要な台数(例えば1台)の仮想マシン20の確保要求がサービス提供装置2に送信される。制御部101は、クラウドサービスが対応するプロトコル(例えば、HTTP REST APIまたはSOAP(Simple Object Access Protocol)など)に従って、確保要求を送信する。制御部101は、確保の要求をした仮想マシン20の台数(以下、「通知済台数」という)をRAMに記憶する。
【0045】
図7は、確保要求の一例を示す図である。
図7は、HTTP REST APIに従って送信されるXML(Extensible Markup Language)形式の確保要求を示す。
図7に示す通り、確保要求には、仮想マシン20の確保の要求であることを示す情報(第3行目の<record name="addRequest">)と、確保の要求をする仮想マシン20の台数(第6行目の<string name="value">1</string>)とが含まれる。
図7に示す確保要求の例では、1台の仮想マシン20の確保が要求されている。
【0046】
再び
図5を参照する。ステップSA4において、制御部101は、カラースキャンの有無、画像の解像度、および原稿のサイズなどの画像の読み取りに関する各種パラメータの設定を受け付ける。各種パラメータは、ユーザが操作部103を操作することにより設定される。制御部101は、設定された各種パラメータをRAMに記憶する。ステップSA5において、制御部101は、ユーザによる各種パラメータの設定が終了したか否かを判
断する。具体的には、ユーザにより操作部103が操作され、各種パラメータの設定を終了するための指示が入力されたか否かを判断する。各種パラメータの設定が終了したと判断された場合(SA5:YES)、制御部101は、処理をステップSA6に移行する。各種パラメータの設定が終了していないと判断された場合(SA5:NO)、制御部101は、処理をステップSA4に移行する。
【0047】
ステップSA6において、制御部101は、サービス提供装置2において利用されることが予想される仮想マシン20の台数(以下、「予想台数」という)を、設定された各種パラメータに応じて算出する。具体的には、制御部101は、記憶部102に記憶された、各種パラメータに応じて予想台数を算出するためのデータ(以下、「台数算出データDp」という)に基づいて、予想台数を算出する。制御部101は、算出された仮想マシン20の予想台数をRAMに記憶する。
【0048】
図8は、台数算出データDpの一例を示す図である。
図8(A)は、各クラウドサービスにおいて用いられるパラメータを示している。この例では、クラウドサービスAからクラウドサービスCにおいて用いられるパラメータが示されている。
図8(A)において「カラー」、「解像度」、および「原稿サイズ」は、画像読み取りの際の色数、画像の解像度、および原稿のサイズをそれぞれ示している。
図8(A)において、各サービスには異なるパラメータが用いられている。なお、あるサービスについて、カラー、解像度、および原稿サイズのパラメータのすべてが用いられていなくてもよい。例えば、アンケートの集計などが行われるクラウドサービスであって、カラースキャンが行われることがないクラウドサービスにおいては、カラーのパラメータは用いられなくてもよい。
【0049】
図8(A)では、カラーのパラメータについて、クラウドサービスAおよびCには、カラーC1およびC2がそれぞれ用いられている。一方で、カラーのパラメータは、クラウドサービスBでは用いられていない。解像度のパラメータについて、クラウドサービスAおよびBには、解像度R1およびR2がそれぞれ用いられている。一方で、解像度のパラメータは、クラウドサービスCでは用いられていない。原稿サイズのパラメータについて、クラウドサービスA、B、およびCには、原稿サイズS1、S2、およびS3がそれぞれ用いられている。
【0050】
図8(B)から
図8(D)は、仮想マシン20の台数を算出するための式を
図8(A)に示したパラメータ毎に示している。
図8(B)は、カラーのパラメータについて、仮想マシン20の台数を算出するための式を示す。
図8(B)では、カラースキャンの有無に応じて仮想マシン20の台数が算出される。
図8(B)は、カラーにした際の処理負荷がC2よりもC1の方がより高い場合の例を示している。
図8(B)では、カラーC1において、カラースキャンが行われるときには仮想マシン20の台数が1台と算出され、白黒スキャンが行われるときには仮想マシン20の台数が0.2台と算出される。また、カラーC2おいて、カラースキャンが行われるときには仮想マシン20の台数が0.4台と算出され、白黒スキャンが行われる場合には仮想マシン20の台数が0.2台と算出される。例えば、カラーC1が用いられているクラウドサービスAについて、カラースキャンが有りに設定された場合、仮想マシン20の台数は1台と算出される。
【0051】
図8(C)は、解像度のパラメータについて、仮想マシン20の台数を算出するための式を示す。
図8(C)では、解像度100dpi(dots per inch)あたりの仮想マシン20の台数が規定されている。
図8(C)では、解像度R1の場合は、100dpiあたり0.5台、解像度R2の場合は、100dpiあたり0.2台の割合で算出される。例えば、解像度R1が用いられているクラウドサービスAについて、解像度が400dpiに設定された場合、仮想マシン20の台数は2台と算出される。
【0052】
図8(D)は、原稿サイズのパラメータについて、仮想マシン20の台数を算出するための式を示す。
図8(D)では、原稿のサイズに応じて仮想マシン20の台数が算出される。
図8(D)では、原稿サイズS1において、原稿のサイズがA3の場合には仮想マシン20の台数が0.4台と算出され、原稿のサイズがA4の場合には仮想マシン20の台数が0.2台と算出される。また、原稿サイズS2において、原稿のサイズがA3の場合には仮想マシン20の台数が0.2台と算出され、原稿のサイズがA4の場合には仮想マシン20の台数が0.2台と算出される。さらに、原稿サイズS3において、原稿のサイズがA3の場合には仮想マシン20の台数が0.6台と算出され、原稿のサイズがA4の場合には仮想マシン20の台数が0.3台と算出される。例えば、原稿サイズS1が用いられているクラウドサービスAについて、原稿のサイズがA3に設定された場合、仮想マシン20の台数は0.4台と算出される。
【0053】
図8において、あるクラウドサービスが利用される場合の予想台数は、各パラメータについて算出された仮想マシン20の台数を加算することにより算出される。例えば、クラウドサービスAが利用される場合の予想台数は、カラーC1、解像度R1、および原稿サイズS1について算出された仮想マシン20の台数を加算することにより算出される。なお、算出された予想台数のうち小数点以下の値は切り上げられる。より具体的な例として、クラウドサービスAが利用される場合において、ユーザによりカラースキャンが有りと設定され、解像度が400dpiに設定され、且つ、原稿のサイズがA3と設定されたとき、予想台数は3.4台(小数点以下を切り上げて4台)と算出される。別の例で、クラウドサービスBが利用される場合の予想台数は、解像度R2および原稿サイズS2について算出された仮想マシン20の台数を加算することにより算出される。より具体的な例として、クラウドサービスBが利用される場合において、解像度が300dpiに設定され、且つ、原稿のサイズがA4と設定されたとき、予想台数は0.8台(小数点以下を切り上げて1台)と算出される。
【0054】
再び
図5を参照する。ステップSA7において、制御部101は、ステップSA6において算出された予想台数と通知済台数との差(以下、「変動数N1」という)を算出する。具体的には、制御部101は、予想台数と通知済台数とをRAMから読み出して、変動数N1を算出する。例えば、予想台数が4台であり、通知済台数が1台である場合、変動数N1は3台と算出される。別の例で、予想台数と通知済台数とがともに1台である場合、変動数N1は0台と算出される。制御部101は、算出された変動数N1を、RAMに記憶する。ステップSA8において、制御部101は、再び、確保要求をサービス提供装置2に送信する。具体的には、制御部101は、RAMから変動数N1を読み出して、変動数N1が示す台数の確保要求をサービス提供装置2に送信する。変動数N1が0台である場合には、制御部101は、確保要求を送信しない。ステップSA9において、制御部101は、RAMに記憶された通知済台数を更新する。具体的には、制御部101は、通知済台数を、ステップSA6において算出された予想台数に更新する。
【0055】
ステップSA10において、制御部101は、画像の読み取りを開始させるための指示(以下、「読み取り開始指示」という)の入力を受け付ける。読み取り開始指示は、ユーザが操作部103を操作することにより入力される。ステップSA11において、制御部101は、画像の読み取りを開始する。具体的には、原稿トレイには予め複数枚の原稿が積み重ねられており、制御部101は、これらの原稿から順次画像を読み取る。制御部101は、読み取られた画像の画像データをRAMに記憶する。ステップSA12において、制御部101は、画像形成装置1の図示しない自動原稿送り機構を構成する原稿トレイに積み重ねられたすべての原稿から取得される画像データの量(以下、「画像データの総量」という)を予測するための予測式が記憶されているか否かを判断する。具体的には、制御部101は、記憶部102に記憶された、予測式を示すデータ(以下、「予測式データ」という)に基づいて、利用が開始されるクラウドサービスについて予測式が記憶され
ているか否かを判断する。予測式が記憶されていると判断された場合(SA12:YES)、制御部101は、処理をステップSA13に移行する。予測式が記憶されていないと判断された場合(SA12:NO)、制御部101は、処理をステップSA14に移行する。ステップSA13において、制御部101は、画像データの総量を、予測式を用いて予測する。制御部101は、予測された画像データの総量をRAMに記憶する。
【0056】
図9は、予測式データの一例を示す図である。予測式データは、各クラウドサービスについて、予測式の有無、および予測式を示す。
図9に示す予測式データの例では、クラウドサービスAおよびBに関して予測式が記憶されており、また、クラウドサービスCに関して予測式が記憶されていない。
図9に示す例で、クラウドサービスAは、変更前の原稿と変更後の原稿との画像データの差分を検出するための情報処理を行うクラウドサービスである。クラウドサービスAについては、変更前の原稿から読み取られた画像の画像データの量を2倍することにより、画像データの総量が予測される。なお、この例で、変更前の原稿は、変更後の原稿よりも前に画像が読み取られる。クラウドサービスAについて予測式が用いられる場合、制御部101は、画像読取部105により読み取られている原稿が、変更前の原稿から変更後の原稿に切り替わるタイミングを検知して、変更前の原稿から読み取られた画像の画像データの量を取得する。変更前の原稿から変更後の原稿に切り替わるタイミングは、例えば、予め変更前の原稿の枚数を入力した後で変更後の原稿を原稿トレイに積載してタッチパネルのボタンを押した事で検知される。別の例で、変更前の原稿から変更後の原稿に切り替わるタイミングは、既に読み取られた画像と、新たに読み取られた画像とが類似する度合いが決められた閾値を超えたことにより検知される。クラウドサービスAについて予測式が用いられる例として、変更前の原稿から読み取られた画像の画像データの量が2MB(メガバイト)である場合、画像データの総量は4MBであると予測される。
【0057】
図9に示す例で、クラウドサービスBは、複数枚の原稿のサイズが同じであることが前提とされるクラウドサービス(例えば、アンケートの集計などの情報処理を行うクラウドサービス)である。クラウドサービスBについては、1枚目の原稿から読み取られた画像の画像データの量に、画像形成装置1の図示しない自動原稿送り機構を構成する原稿トレイに積載された原稿の枚数を乗じることにより、画像データの総量が予測される。なお、画像読取部105は、原稿トレイに積載された原稿の枚数を検知するセンサを備えており、制御部101は、画像の読み取りが開始される前に当該センサにより原稿の枚数を取得している。クラウドサービスBについて予測式が用いられる例として、1枚目の原稿から読み取られた画像の画像データの量が0.05MBであり、原稿トレイに積載された原稿の枚数が30枚である場合、画像データの総量は1.5MBであると予測される。
【0058】
再び
図5を参照する。ステップSA14において、制御部101は、読み取り中の原稿について、既に読み取られた画像の画像データの積算量をRAMに記憶する。なお、ステップSA14の処理が行われる場合には、以下に示すステップSA15からSA17の処理は、画像データの積算量が決められた量増える度に行われる。
【0059】
ステップSA15において、制御部101は、ステップSA13またはSA14においてRAMに記憶された画像データの総量または画像データの積算量と、予め決められた画像データの量(以下、「画像データ量D1」という)との差または割合に応じた数(以下、「変動数N2」という)を算出する。画像データ量D1は、クラウドサービスの種類ごとに予め記憶部102に記憶されている。なお、この画像データ量D1は、過去にクラウドサービスが利用されたときの画像データの量の履歴に応じて更新されてもよい。制御部101は、算出された変動数N2をRAMに記憶する。
【0060】
ステップSA16において、制御部101は、確保要求または仮想マシン20の解放の
要求(以下、「解放要求」という)をサービス提供装置2に送信する。具体的には、制御部101は、クラウドサービスが対応するプロトコルに従って、確保要求または解放要求を送信する。解放要求には、解放して欲しい仮想マシン20の台数を示す情報が含まれる。制御部101は、RAMに記憶された変動数N2が正である場合には、変動数N2が示す台数の確保要求をサービス提供装置2に送信する。一方、RAMに記憶された変動数N2が負である場合には、変動数N2が示す台数(ここでは、変動数N2が示す台数の絶対値)の解放要求をサービス提供装置2に送信する。変動数N2が0台である場合には、制御部101は、確保要求および解放要求を送信しない。なお、上述のステップSA14の処理が行われた場合には、制御部101は、変動数N2が負であっても解放要求を送信しない。すなわち、ステップSA14の処理が行われた場合には、制御部101は、変動数N2が正になると、当該変動数N2が示す台数の確保要求をサービス提供装置2に送信する。
【0061】
図10は、解放要求の一例を示す図である。
図10は、XML形成の解放要求を示す。
図10に示す通り、解放要求には、仮想マシン20の解放の要求であることを示す情報(第3行目の<record name="delRequest">)と、解放の要求をする仮想マシン20の台数(第6行目の<string name="value">1</string>)とが含まれる。
図10に示す解放要求の例では、1台の仮想マシン20の解放が要求されている。
【0062】
再び
図5を参照する。ステップSA17において、制御部101は、RAMに記憶された通知済台数を更新する。具体的には、制御部101は、RAMに記憶された通知済台数の値に変動数N2を加えた値を、新たな通知済台数としてRAMに記憶する。なお、ステップSA17の処理は、ステップSA16において、確保要求または解放要求が送信された場合に行われる。ステップSA18において、制御部101は、原稿トレイに積載されたすべての原稿について画像の読み取りを終了する。ステップSA19において、制御部101は、RAMに記憶された各種パラメータおよび画像データをサービス提供装置2に送信する。サービス提供装置2は、画像形成装置1から各種パラメータおよび画像データを取得すると、クラウドサービスにおける処理を開始する。
【0063】
以上の処理により、画像形成装置1からサービス提供装置2に画像データが送信される前に、サービス提供装置2に対して確保要求または解放要求が送信される。また、確保要求または解放要求は、画像形成装置1における処理の進捗が異なる複数のタイミング(すなわち、サービス開始指示の入力を受け付けた後、各種パラメータの設定が終了した後、および、画像データの量が予測された後(または画像データの量が決められた量増えた後))で送信される。したがって、サービス提供装置2に送信される確保要求または解放要求の確度は、クラウドサービスの処理の開始が近づくに連れて高くなる。それにより、画像データの処理に不要な仮想マシン20の確保を避け、ユーザによる不要な費用の負担が低減される。また、サービス提供装置2が、画像形成装置1から画像データを取得した後に仮想マシン20の確保を開始した場合に比べて、仮想マシン20の確保に掛かる時間が短縮される。
【0064】
図11は、サービス提供装置2が行う処理を示すフローチャートである。以下の処理は、サービス提供装置2に確保要求または解放要求が送信されたことを契機として開始される。ステップSB1において、制御部201は、画像形成装置1から送信された要求が確保要求および解放要求のいずれであるかを判断する。送信された要求が確保要求であると判断された場合、制御部201は、処理をステップSB2に移行する。送信された要求が解放要求であると判断された場合、制御部201は、処理をステップSB8に移行する。
【0065】
ステップSB2において、制御部201は、仮想マシン20の台数の上限(以下、「上限台数Vmax」という)を取得する。具体的には、制御部201は、記憶部202に記
憶された、上限台数Vmaxを示すデータ(以下、「上限台数データ」という)に基づいて、上限台数Vmaxを取得する。制御部201は、取得した上限台数VmaxをRAMに記憶する。
【0066】
図12は、上限台数データの一例を示す図である。
図12は、クラウドサービスを利用する顧客のサービス毎の上限台数を示している。
図12において、事業者A、D、およびEは、それぞれクラウドサービスA、D、およびEをクラウドサービスとして提供する事業者である。この例で、サービス提供装置2は、クラウドサービスA、D、およびEを提供する。
図12に示す上限台数データにおいて、クラウドサービスA、D、およびEを利用する顧客の上限台数Vmaxは、それぞれ10台、5台、2台である。
図12に示す上限台数データが用いられる場合、制御部201は、確保要求が送信されたクラウドサービスを提供する事業者について、上限台数Vmaxを取得する。確保要求が送信されたクラウドサービスは、画像形成装置1との通信において用いられているURLに応じて特定される。なお、クラウドサービスを利用する顧客の上限台数は、顧客毎に異なっていてもよい。この場合、上限台数データは、顧客毎に上限台数を示す。そして、制御部201は、確保要求の送信元である画像形成装置1のIPアドレス等から顧客を特定し、当該顧客について上限台数Vmaxを取得する。
【0067】
再び
図11を参照する。ステップSB3において、制御部201は、確保要求が送信されたクラウドサービスを提供する事業者について、確保されている仮想マシン20の台数(以下、「確保台数Vop」という)を取得する。例えば、OpenStackなどのクラウド基盤ソフトウェア(仮想マシン20およびストレージなどのサーバ装置の基盤を管理するためのソフトウェア)がサービス提供装置2にインストールされている場合、制御部201は、確保されている仮想マシン20の一覧を取得するためのコマンドを用いて、確保台数Vopを取得する。
【0068】
図13は、制御部201が確保台数Vopを取得するのに用いるコマンドの一例を示す図である。
図13では、確保台数Vopを取得するコマンドとして「nova list」が用いられている。
図13では、また、ID「266ec61b-79c7-41cb-ac74-5bed831c5c28」と「223ec6db-fdaf-fdaa-ggrg-fdjkaaf67d8a」により識別される仮想マシン20が一覧に示されており、確保台数Vopは2台である。
【0069】
再び
図11を参照する。ステップSB4において、制御部201は、確保台数Vopと、確保要求に含まれた仮想マシン20の台数(以下、「要求台数Vre」という)との和が、上限台数Vmax以下であるか否かを判断する。確保台数Vopと要求台数Vreとの和が上限台数Vmax以下であると判断された場合(SB4:YES)、制御部201は、処理をステップSB5に移行する。確保台数Vopと要求台数Vreとの和が上限台数Vmaxより大きいと判断された場合(SB4:NO)、制御部201は、処理をステップSB7に移行する。
【0070】
ステップSB5において、制御部201は、要求台数Vreの仮想マシン20を確保する。ステップSB6において、制御部201は、確保要求に対する応答として、仮想マシン20が確保されたことを画像形成装置1に通知する。ステップSB7において、制御部201は、確保要求に対する応答として、仮想マシン20が確保されていないこと画像形成装置1に通知する。
【0071】
図14は、画像形成装置1からの要求に対するサービス提供装置2の応答の一例を示す図である。この例で、サービス提供装置2の応答はXML形式であり、仮想マシン20が確保されていないことが示されている。
【0072】
再び
図11を参照する。ステップSB8において、制御部201は、解放要求により示された台数の仮想マシン20を解放する。ステップSB9において、制御部201は、解放要求に対する応答として、仮想マシン20が解放されたことを画像形成装置1に通知する。
【0073】
以上の処理により、サービス提供装置2においては、クラウドサービスの処理が開始される前に、仮想マシン20が確保または解放される。したがって、画像形成装置1が画像データをサービス提供装置2に送信してからクラウドサービスにおける情報処理が行われた画像データを取得するまでの時間が短縮される。
【0074】
本発明は、上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下で説明する変形例のうち、2つ以上のものが組み合わされて用いられてもよい。
【0075】
(1)変形例1
予想台数が算出されるタイミングは、実施形態に記載されたタイミングに限らない。予想台数は、例えば、原稿トレイに積み重ねられたすべての原稿から画像データが読み取られ、画像データの総量が確定した後に算出されてもよい。具体的な例として、上述のステップSA14の処理が行われた場合において、確定した画像データの総量に応じて予想台数が算出されてもよい。この場合、確定した画像データの総量に応じて算出された予想台数と通知済台数との差(以下、「変動数N3」という)が制御部101により算出され、変動数N3が示す台数の確保要求または解放要求がサービス提供装置2に送信されてもよい。制御部101は、変動数N3が正である場合には、変動数N3が示す台数の確保要求をサービス提供装置2に送信する。一方、変動数N3が負である場合には、変動数N3が示す台数(ここでは、変動数N3が示す台数の絶対値)の解放要求をサービス提供装置2に送信する。
【0076】
(2)変形例2
画像形成装置1がサービス提供装置2に解放要求を送信するタイミングは、実施形態に記載されたタイミングに限らない。画像形成装置1は、例えば、原稿から画像を読み取っているときの紙詰まり、または画像読取部105の故障など、クラウドサービスにおける処理の開始を妨げる事象が発生した場合に、解放要求を送信してもよい。この場合、制御部101は、自動原稿送り機構および画像読取部105などの画像形成装置1の各部からエラーを示す信号を取得することにより、当該事象の発生を検知する。なお、制御部101は、SNMP(Simple Network Management Protocol) Notificationを利用して、当該事象の発生を検知してもよい。別の例で、画像形成装置1は、クラウドサービスの利用を開始させるための操作が中止された場合に、解放要求を送信してもよい。この場合、制御部101は、各種パラメータの設定を受け付ける画面において、ユーザが、クラウドサービスの利用をキャンセルするための指示を入力したこと、ログアウトしたこと、または、当該画面を決められた時間操作していないことなどにより、当該事象の発生を検知する。
【0077】
図15は、変形例2に係る画像形成装置1の機能的構成を示すブロック図である。
図15において、画像形成装置1は、
図2に示した構成に加えて検知手段16を有する。この例で、検知手段16は、確保要求がサービス提供装置2に送信された後に、クラウドサービスにおける処理の開始を妨げる事象の発生を検知する。送信手段15は、検知手段16により事象の発生が検知されると、解放要求をサービス提供装置2に送信する。変形例2について、プログラムを実行している制御部101は、検知手段16の一例である。なお、検知手段16は、確保要求がサービス提供装置2に送信された後に、クラウドサービスの利用を開始させるための操作が中止されたことを検知してもよい。
【0078】
(3)変形例3
確保要求に対する応答として仮想マシン20が確保されたか否かを示す情報をサービス提供装置2から取得した画像形成装置1は、当該情報が、仮想マシン20が確保されていないことを示している場合には、確保要求を再びサービス提供装置2に送信してもよい。この場合、画像形成装置1は、確保要求に対する応答として仮想マシン20が確保されたことを示す情報をサービス提供装置2から取得した場合に、各種パラメータおよび画像データをサービス提供装置2に送信する。なお、画像形成装置1は、仮想マシン20が確保されたことを示す情報を取得するまで、確保要求を繰り返し送信してもよい。
【0079】
(4)変形例4
サービス提供装置2は、確保要求に対する応答として仮想マシン20が確保されていないこと画像形成装置1に通知する場合に、利用されていない仮想マシン20の台数(すなわち、上限台数Vmaxを超えない限度で、未だ確保されていない仮想マシン20の台数)を示す情報を画像形成装置1に通知してもよい。利用されていない仮想マシン20の台数は、上限台数Vmaxと確保台数Vopとの差により算出される。この場合、利用されていない仮想マシン20の台数が、画像形成装置1がクラウドサービスに処理を与えた場合に利用される仮想マシン20の台数の下限量以上である場合、画像形成装置1は、当該利用されていない仮想マシン20の台数の確保要求をサービス提供装置2に送信してもよい。
【0080】
(5)変形例5
サービス提供装置2が提供するサービスは、クラウドサービスに限らない。サービス提供装置2は、オンプレミスのサーバサービス、またはプリントサービスなどを提供してもよい。
【0081】
(6)変形例6
ステップSA13において予測された画像データの総量、またはステップSA14においてRAMに記憶された画像データの積算量に応じて予想台数が算出されてもよい。この場合、ステップSA15において、制御部101は、ステップSA13またはステップSA14において算出された予想台数と通知済台数との差を変動数N2として算出してもよい。変形例6のステップSA13において、制御部101は、例えば、記憶部102に記憶された、画像データの総量に応じて予想台数を算出するためのデータ(以下、「台数算出データDi」という)に基づいて、予想台数を算出する。また、変形例6のステップSA14において、制御部101は、画像データの積算量が決められた量(例えば1MB)増える度に、決められた割合(例えば、画像データの量が1MBにつき0.7台の割合)で予想台数を算出する。なお、算出された予想台数のうち小数点以下の値は切り上げられる。制御部101は、算出された予想台数をRAMに上書きする。
【0082】
図16は、台数算出データDiの一例を示す図である。
図16の台数算出データDiは、画像データの総量を予測するための予測式が記憶されたクラウドサービス毎に、予想台数を算出するための式を示す。
図16の例で、クラウドサービスAについては、画像データの量が1MBにつき0.5台の割合で予想台数が算出される。例えば、クラウドサービスAについて予測された画像データの総量が4MBである場合、予想台数は2台と算出される。また、クラウドサービスBについては、画像データの量が1MBにつき1台の割合で予想台数が算出される。例えば、クラウドサービスBについて予測された画像データの総量が1.5MBである場合、予想台数は1.5台(小数点以下を切り上げて2台)と算出される。
【0083】
(7)その他の変形例
ステップSA3の確保要求において確保が要求される仮想マシン20の台数は、クラウ
ドサービスの種類またはサービス提供装置2により異なってもよい。例えば、あるサービス提供装置2には1台の仮想マシン20の確保が要求され、他のサービス提供装置2には複数台の仮想マシン20の確保が要求されてもよい。
ステップSA4において、設定が受け付けられる各種パラメータは、実施形態に記載されたパラメータに限らない。
ステップSA6において、仮想マシン20の台数を算出するために用いられる式は、実施形態に記載された式に限らない。また、ステップSA6において算出された予想台数のうち、少数点以下の端数は切り上げられる場合に限らない。例えば、少数点以下の端数は四捨五入されてもよい。
ステップSA8においてサービス提供装置2に送信される要求は、確保要求に限らない。例えば、RAMに記憶された変動数N1が負である場合には、変動数N1が示す台数(ここでは、変動数N1が示す台数の絶対値)の解放要求がサービス提供装置2に送信されてもよい。
【0084】
ステップSA13において画像データの総量を予測するのに用いられる予測式は、実施形態に記載された予測式に限らない。画像データの総量が予測される式であれば、いかなる予測式が用いられてもよい。
ステップSA13の処理は行われなくてもよい。この場合、ステップSA12は省略され、利用が開始されるクラウドサービスについてステップSA14の処理が行われる。また、ステップSA14の処理は行われなくてもよい。この場合、ステップSA12は省略され、利用が開始されるクラウドサービスについてステップSA13の処理が行われる。
【0085】
確保要求または解放要求が送信されるタイミングは、実施形態に記載されたタイミングに限らない。確保要求または解放要求は、画像形成装置1の処理の進捗におけるいかなるタイミングで送信されてもよい。
【0086】
情報処理装置は、画像形成装置1に限らない。情報処理装置は、クライアント装置として機能する他の装置(例えば、パーソナルコンピュータなど)であってもよい。
クラウドサービスにおける処理の対象となる画像データは、複数枚の原稿から読み取られた画像の画像データに限らない。1枚の原稿から読み取られた画像の画像データに対して、クラウドサービスにおける処理が行われてもよい。また、クラウドサービスにおける処理の対象となるデータは、画像データに限らない。
画像形成装置1が画像データを取得する方法は、画像読取部105により原稿を読み取る方法に限らない。画像形成装置1は、ネットワークを介して他の情報処理装置から画像データを取得してもよい。また、画像形成装置1は、USBメモリなどの着脱可能な記録媒体から画像データを取得してもよい。
【0087】
コンピュータリソースは、仮想マシン20に限らない。例えば、サービス提供装置2が複数台のコンピュータを組み合わせることにより構成されている場合、物理的なコンピュータがコンピュータリソースとして扱われてもよい。この場合、確保要求においては決められた台数のコンピュータの確保が要求され、解放要求においては決められた台数のコンピュータの解放が要求される。また、サービス提供装置2が確保・解放するコンピュータリソースは、仮想マシンや物理マシンの台数に限らず、メモリやHDDの容量、CPUのコア数や使用時間であってもよい。
【0088】
画像処理システムにおいて用いられる各装置のハードウェア構成は、
図3および
図4に示した構成に限らない。各装置は、
図5および
図11に示した各ステップの処理を実行できれば、どのようなハードウェア構成であってもよい。
【0089】
実施形態において、画像形成装置1およびサービス提供装置2によって実行されるプロ
グラムは、磁気記録媒体(磁気テープ、磁気ディスク(HDD、FD(Flexible Disk))など)、光記録媒体(光ディスク(CD(Compact Disk)、DVD(Digital Versatile Disk))など)、光磁気記録媒体、半導体メモリ(フラッシュROMなど)などのコンピュータが読み取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットなどのネットワーク経由でダウンロードされてもよい。