(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本発明の一実施形態に係るサービス提供システムの装置構成を示す概略構成図である。
図1に示すように、サービス提供システム1は、処理時間推定装置100と、処理サーバ装置200と、第一通信ネットワーク300とを備える。
【0012】
また、処理サーバ装置200と処理時間推定装置100とは、第一通信ネットワーク300を介して通信接続する。処理時間推定装置100とクライアントシステム910とは、第二通信ネットワーク920を介して通信接続する。
サービス提供システム1が備える処理サーバ装置200の数は、1つ以上であればよい。処理時間推定装置100に通信接続するクライアントシステム910の数も1つ以上であればよい。
【0013】
サービス提供システム1は、データ処理サービスを提供するシステムである。
処理時間推定装置100は、サービス提供システム1における窓口として機能する。具体的には、処理時間推定装置100は、クライアントシステム910からサービス提供要求及び処理対象のデータを受信し、処理サーバ装置200に処理を振り分ける。
また、処理時間推定装置100は、データ処理サービスの予約を受け付ける。予約を受ける際、処理時間推定装置100が予約対象のデータ処理に要する処理時間を推定することで、処理結果回答期限から逆算して処理開始期限を算出することが可能になり、処理のスケジューリングを行うことが可能になる。
処理時間推定装置100は、例えばワークステーション(Workstation)等のコンピュータを用いて構成される。
【0014】
図2は、処理時間推定装置100の機能構成を示す概略ブロック図である。
図2に示すように、処理時間推定装置100は、通信部110と、表示部120と、操作入力部130と、記憶部180と、制御部190とを備える。制御部190は、期限情報取得部191と、データ内容係数取得部192と、処理アルゴリズム係数取得部193と、処理時間要素推定部194と、処理時間推定部195と、処理開始期限決定部196と、処理予約受付部197とを備える。
【0015】
通信部110は、他の機器と通信を行う。特に通信部110は、第二通信ネットワーク920を介してクライアントシステム910と通信接続する。通信部110は、クライアントシステム910からデータ処理要求を受信し、要求に対する回答として処理結果を送信する。また、通信部110は、クライアントシステム910との通信にて、データ処理サービスの予約を受ける。予約に際し、通信部110は、データ処理に要する処理時間の推定値、及び、処理開始期限のうち何れか一方又は両方をクライアントシステム910へ送信する。
【0016】
また、通信部110は、第一通信ネットワーク300を介して処理サーバ装置200と通信接続する。通信部110は、処理サーバ装置200へデータ処理要求を送信し、要求に対する回答として処理結果を受信する。処理サーバ装置200が複数ある場合、通信部110は、処理時間推定装置100が決定した送信先の処理サーバ装置200へデータ処理要求を送信して処理結果を受信する。
【0017】
表示部120は、例えば液晶パネル又はLED(Light Emitting Diode、発光ダイオード)パネル等の表示画面を備え、各種画像を表示する。
操作入力部130は、例えばキーボード及びマウス等の入力デバイスを備え、ユーザ操作を受ける。
記憶部180は、各種データを記憶する。記憶部180は、処理時間推定装置100が備える記憶デバイスを用いて構成される。
【0018】
制御部190は、処理時間推定装置100の各部を制御して各種処理を行う。制御部190は、処理時間推定装置100が備えるCPU(Central Processing Unit、中央処理装置)が記憶部180からプログラムを読み出して実行することで構成される。
期限情報取得部191は、期限情報を取得する。ここでいう期限情報は、通信部110がクライアントシステム910から受信するデータ処理要求に対する処理結果の出力予定期限を示す情報である。以下では、データ処理要求を単に処理要求とも称する。
【0019】
通信部110がクライアントシステム910から出力予定期限の情報を受信し、期限情報取得部191がクライアントシステム910からの受信データから出力予定期限の情報を抽出するようにしてもよい。この場合、クライアントシステム910が、出力予定期限の情報をデータ処理サービスの予約の情報に含めて送信するようにしてもよいし、別々に送信するようにしてもよい。
処理結果の出力予定期限が毎月同じ日時に定められている場合、記憶部180が出力予定期限の日時を記憶しておき、期限情報取得部191が記憶部180からその日時を読み出すようにしてもよい。
【0020】
データ内容係数取得部192は、データ内容係数を取得する。ここでいうデータ内容係数は、処理要求における処理対象データの内容に応じた係数である。データ内容係数として、処理の難易度に基づく指標値を用いるようにしてもよい。例えば、データ内容係数として、データの内容から推定される処理の難易度に応じて決定される、標準の難易度の場合に対する処理時間の比の推定値を用いることができる。
【0021】
例えば、クライアントシステム910のユーザであるサービス利用者が、予測される処理の難易度に基づいてデータ内容係数の値を決定し、決定された値をクライアントシステム910が処理時間推定装置100へ送信するようにしてもよい。データ内容係数取得部192は、クライアントシステム910からの受信データから、データ内容係数(の値)を抽出する。
【0022】
また、予約段階で処理対象データが得られている場合、通信部110が処理対象データを受信すると、処理時間推定装置100の管理者が処理対象データを参照してデータ内容係数を決定し、記憶部180が処理対象データ毎にデータ内容係数を記憶しておくようにしてもよい。そして、処理時間推定装置100が処理時間を算出する際に、データ内容係数取得部192が処理時間算出対象のデータに応じたデータ内容係数を記憶部180から読み出すようにしてもよい。
あるいはデータ内容係数取得部192が、処理対象データの分散又は標準偏差など予め定められた指標値に基づいて、データ内容係数を自動的に算出するようにしてもよい。あるいは処理時間推定装置100又は他の装置が、機械学習を行ってデータ内容係数値を算出し、データ内容係数取得部192が、機械学習の結果得られたデータ内容係数値を取得するようにしてもよい。この場合、処理時間推定装置100又は他の装置が、例えば
[処理時間]=[係数1]*データ1+[係数2]*データ2+…
のような回帰式を、重回帰分析のように機械学習で生成するようにしてもよい。
【0023】
処理アルゴリズム係数取得部193は、処理アルゴリズム係数を取得する。ここでいう処理アルゴリズム係数は、処理要求に対する処理アルゴリズムに応じた係数である。
例えば、処理アルゴリズム毎に処理アルゴリズム係数が予め定められ、記憶部180が予め処理アルゴリズム毎に処理アルゴリズム係数を記憶しておくようにしてもよい。そして、処理時間推定装置100が処理時間を算出する際に、処理アルゴリズム係数取得部193が、適用予定の処理アルゴリズムに応じた処理アルゴリズム係数を記憶部180から読み出すようにしてもよい。あるいは処理時間推定装置100又は他の装置が、機械学習を行って処理アルゴリズム係数値を算出し、処理アルゴリズム係数取得部193が、機械学習の結果得られた処理アルゴリズム係数値を取得するようにしてもよい。
適用予定の処理アルゴリズムは、例えば処理時間推定装置100の管理者が操作入力部130からのユーザ操作にて指定する。あるいは、処理アルゴリズム係数取得部193が、処理対象データに基づいて自動的に、適用予定の処理アルゴリズムを決定するようにしてもよい。
【0024】
処理時間要素推定部194は、予約登録を要求されている処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び1回あたりの処理時間を推定する。ここでいう処理対象データ量は、処理対象データのデータ量である。ここでいう1回あたりの処理は、機械学習にて1つの解を求める処理である。ここでいう処理の繰り返しは、機械学習にて1つの解を求める処理を、判定基準を満たす解を得られるまで繰り返すことである。以下では、処理の繰り返し回数と1回あたりの処理時間とを総称して処理時間要素と表記する。
【0025】
例えば処理時間要素推定部194は、過去のデータ処理それぞれにおける処理対象データ量、処理の繰り返し回数、及び、1回あたりの処理時間を示すデータを学習用データとして取得する。そして、処理時間要素推定部194は、今回の処理要求(予約登録を求められている処理要求)に対して処理サーバ装置200が機械学習でデータ処理を行う場合の、処理の繰り返し回数及び1回あたりの処理時間を、機械学習で算出する。
【0026】
例えば処理時間要素推定部194は、機械学習にて、処理対象データ量の入力を受けて処理の繰り返し回数を出力する関数、及び、処理対象データ量の入力を受けて1回あたりの処理時間を出力する関数を算出する。そして、処理時間要素推定部194は、予約登録を求められている処理要求における処理対象データ量を、得られた関数に入力して、処理の繰り返し回数及び1回あたりの処理時間を算出する。
例えば記憶部180が、過去のデータ処理におけるデータを学習用データとして予め記憶しておく。そして、処理時間要素推定部194は、記憶部180から学習用データを読み出して使用する。
【0027】
処理時間要素推定部194が、処理対象データ量に加えてデータ内容係数に基づいて、処理の繰り返し回数及び1回あたりの処理時間のうち少なくともいずれか一方を推定するようにしてもよい。
例えば処理時間要素推定部194は、過去のデータ処理それぞれにおける処理対象データ量、データ内容係数、処理の繰り返し回数、及び、1回あたりの処理時間を示すデータを学習用データとして取得する。
【0028】
この場合、例えば処理時間要素推定部194は、機械学習にて、処理対象データ量及びデータ内容係数の入力を受けて処理の繰り返し回数を出力する関数、及び、処理対象データ量及びデータ内容係数の入力を受けて1回あたりの処理時間を出力する関数を算出する。処理時間要素推定部194は、予約登録を要求されている処理要求における処理対象データ量、及び、予約登録を要求されている処理要求に対してデータ内容係数取得部192が取得したデータ内容係数を、得られた各関数に入力して、処理の繰り返し回数及び1回あたりの処理時間を算出する。
【0029】
処理時間要素推定部194が、処理対象データ量に加えて処理アルゴリズム係数に基づいて、処理の繰り返し回数及び1回あたりの処理時間のうち少なくともいずれか一方を推定するようにしてもよい。
例えば処理時間要素推定部194は、過去のデータ処理それぞれにおける処理対象データ量、処理アルゴリズム係数、処理の繰り返し回数、及び、1回あたりの処理時間を示すデータを学習用データとして取得する。
【0030】
この場合、例えば処理時間要素推定部194は、機械学習にて、処理対象データ量及び処理アルゴリズム係数の入力を受けて処理の繰り返し回数を出力する関数、及び、処理対象データ量及び処理アルゴリズム係数の入力を受けて1回あたりの処理時間を出力する関数を算出する。処理時間要素推定部194は、予約登録を要求されている処理要求における処理対象データ量、及び、予約登録を要求されている処理要求に対して処理アルゴリズム係数取得部193が取得した処理アルゴリズム係数を、得られた各関数に入力して、処理の繰り返し回数及び1回あたりの処理時間を算出する。
【0031】
処理時間要素推定部194が、処理対象データ量に加えてデータ内容係数及び処理アルゴリズム係数に基づいて、処理の繰り返し回数及び1回あたりの処理時間のうち少なくともいずれか一方を推定するようにしてもよい。
例えば処理時間要素推定部194は、過去のデータ処理それぞれにおける処理対象データ量、データ内容係数、処理アルゴリズム係数、処理の繰り返し回数、及び、1回あたりの処理時間を示すデータを学習用データとして取得する。
【0032】
この場合、例えば処理時間要素推定部194は、機械学習にて、処理対象データ量、データ内容係数及び処理アルゴリズム係数の入力を受けて処理の繰り返し回数を出力する関数、及び、処理対象データ量、データ内容係数及び処理アルゴリズム係数の入力を受けて1回あたりの処理時間を出力する関数を算出する。処理時間要素推定部194は、予約登録を要求されている処理要求における処理対象データ量、予約登録を要求されている処理要求に対してデータ内容係数取得部192が取得したデータ内容係数、及び、予約登録を要求されている処理要求に対して処理アルゴリズム係数取得部193が取得した処理アルゴリズム係数を、得られた各関数に入力して、処理の繰り返し回数及び1回あたりの処理時間を算出する。
【0033】
処理時間要素推定部194が機械学習に用いるアルゴリズムは、特定のアルゴリズムに限定されない。例えば、処理時間要素推定部194が、ニューラルネットワーク、又は、一般化線形回帰のアルゴリズムを用いて機械学習を行うようにしてもよいが、これらに限らない。
【0034】
処理時間推定部195は、処理時間要素推定部194が算出した処理の繰り返し回数、及び1回あたりの処理時間に基づいて、要求される処理(予約登録を要求されている処理要求における処理)の実行時間を推定する。
例えば処理時間推定部195は、処理の繰り返し回数と1回あたりの処理時間とを乗算した積に、データ転送時間及びデータ変換時間など機械学習の実行以外の時間を加算した時間を実行時間として算出する。
機械学習の実行以外の時間は、例えば処理時間推定部195が、処理対象データ量に所定の係数を乗算して算出する。
【0035】
処理開始期限決定部196は、予約登録を要求されている処理要求に対する処理結果の出力予定期限、及び、処理時間推定部195が推定した実行時間に基づいて、処理開始期限を決定する。
例えば、処理開始期限決定部196は、出力予定期限から実行時間だけ遡った時期を処理開始期限に決定する。あるいは処理開始期限決定部196が、出力予定期限から実行時間だけ遡った時期から、さらに所定の余裕分の期間だけ遡った時期を処理開始時期に決定するようにしてもよい。
【0036】
処理予約受付部197は、処理要求期限が処理開始期限又はそれ以前の処理予約を受け付ける。この点について
図3を参照して説明する。
図3は、クライアントシステム910が表示する処理予約登録画面の例を示す図である。
図3の例で、クライアントシステム910は、納品期限欄と、推定処理時間欄と、処理開始期限欄と、処理要求期限欄と、予約登録ボタンと、キャンセルボタンとを含む処理予約登録画面を表示している。
【0037】
納品期限欄は、データ処理要求に対する処理結果の回答予定期限の表示欄である。この回答予定期限を納品期限とも称する。
推定処理時間欄は、処理時間推定部195が推定した処理実行時間推定値の表示欄である。
処理開始期限欄は、処理開始期限決定部196が決定した処理開始期限の表示欄である。
【0038】
処理要求期限欄は、処理要求期限の入力欄である。サービス利用者は、処理要求期限を処理開始期限またはそれ以前の時期に決定する。例えば、処理要求期限から処理開始期限までの期間に応じてサービス利用料金が異なる場合、サービス利用者は、処理対象データを料金が安い期間中に準備可能であれば、その期間中の処理要求期限を設定し、設定した期限までに処理を要求することで安い料金の適用を受けられる。
【0039】
ここで、サービス提供者が、サービス利用者からの処理要求に対し、クラウドで仮想マシンを提供している事業者から仮想マシンを借りて処理を行う場合を考える。
例えばクラウドで仮想マシンを提供している事業者が複数ある場合、事業者毎に料金が異なることが考えられる。このような場合、スケジュールに余裕がないと、料金の安い事業者の仮想マシンが使用中で借りられず、料金の高い事業者の仮想マシンを借りる必要が生じることが考えられる。これに対し、スケジュールに余裕を持って仮想マシンを借りることができれば、料金の安い事業者の仮想マシンを予約するか、あるいは、料金の安い事業者の仮想マシンに空きがあるときに、その仮想マシンを借りて処理を行うことができる。サービス提供者は、このような仮想マシンの利用料金の違いを、サービス利用者に対する料金に反映させることができる。
サービス提供者が、事業者にバッチ処理でサービス提供を依頼する場合も同様である。
【0040】
予約登録ボタンは、処理要求期限欄に入力された処理要求期限にてデータ処理の予約を行うためのボタンアイコンである。
サービス利用者が処理要求期限を入力して予約登録ボタンを操作(例えばマウスクリック)すると、クライアントシステム910は、処理要求期限の情報を含む予約要求を処理時間推定装置100へ送信する。処理時間推定装置100の通信部110がこの予約要求を受信すると、処理予約受付部197は、処理要求期限が処理開始期限またはそれ以前の時期になっているか否かを判定する。
【0041】
処理要求期限が処理開始期限またはそれ以前の時期になっている場合、処理予約受付部197は、予約を受け付ける。この場合、処理予約受付部197は、予約要求元及び処理要求期限など予約に関する情報を記憶部180に記憶させることで、予約を登録する。
処理要求期限が処理開始期限より後の時期になっている場合、処理予約受付部197は、予約を受け付けない。この場合、処理予約受付部197は、通信部110を介してクライアントシステム910へ、予約を受け付けなかった旨の通知を送信して予約のやり直しを促す。
キャンセルボタンは、処理予約を中止するためのボタンアイコンである。サービス利用者がキャンセルボタンを操作(例えばマウスクリック)すると、クライアントシステム910は処理予約登録画面の表示を終了して前画面へ戻る。
【0042】
処理予約受付部197が、処理開始期限決定部196が決定した処理開始期限を処理要求期限として自動的に予約を登録するようにしてもよい。この場合、処理予約受付部197が通信部110を介してクライアントシステム910へ登録内容を送信し、クライアントシステム910が登録内容を表示することでサービス利用者に通知するようにしてもよい。
【0043】
処理サーバ装置200は、サービス提供システム1が提供するデータ処理サービスにおけるデータ処理を実行する。処理サーバ装置200は、例えばメインフレーム(Mainframe)又はワークステーション等のコンピュータを用いて構成される。
処理サーバ装置200が実行するデータ処理の分野及び内容は特定の分野及び内容に限定されない。
例えば、医療分野において、処理サーバ装置200がカルテ又はレセプト情報から薬剤の使用状況を抽出して薬剤の消費量あるいは在庫状況を予測するようにしてもよい。あるいは、製造分野において、処理サーバ装置200が工場の生産管理情報から材料の使用量を抽出して在庫状況を予測する、あるいは、発注タイミングを提案するようにしてもよい。
【0044】
クライアントシステム910は、サービス提供システム1に対してサービス提供を要求する。具体的には、クライアントシステム910はデータ処理要求を処理時間推定装置100に送信し、要求に対する応答にて処理結果を受信する。クライアントシステム910は、例えばパソコン(Personal Computer;PC)又はワークステーション等のコンピュータを用いて構成される。
【0045】
第一通信ネットワーク300は、処理時間推定装置100と処理サーバ装置200との通信を仲介する通信ネットワークである。
第二通信ネットワーク920は、処理時間推定装置100とクライアントシステム910との通信を仲介する通信ネットワークである。
第一通信ネットワーク300、第二通信ネットワーク920の種類はいずれも特定の種類に限定されない。一例として、第一通信ネットワーク300はサービス提供システム1専用のLAN(Local Area Network)であってもよく、第二通信ネットワーク920はインターネット(Internet)であってもよいが、これらに限定されない。
また、第一通信ネットワーク300及び第二通信ネットワーク920が1つの通信ネットワークとして構成されていてもよい。
【0046】
次に、
図4〜
図7を参照してサービス提供システム1の動作について説明する。
図4は、処理サーバ装置200がデータ処理要求に対して行う処理の手順の例を示すフローチャートである。処理サーバ装置200は、処理時間推定装置100からデータ処理要求を受信すると
図4の処理を開始する。
【0047】
(ステップS111)
処理サーバ装置200は、処理対象データを取得する。具体的には、処理サーバ装置200は、処理対象データを含むデータ処理要求を処理時間推定装置100から受信する。そして、処理サーバ装置200は、受信したデータ処理要求から処理対象データを読み出す。
ステップS111の後、ステップS112へ進む。
【0048】
(ステップS112)
処理サーバ装置200は、処理対象データに対して前処理を行う。例えば、処理サーバ装置200は、処理対象データを処理し易いデータ形式に変換する。
ステップS112の後、ステップS113へ進む。
【0049】
(ステップS113)
処理サーバ装置200は、機械学習にてデータ処理を行う。
ステップS113の後、ステップS114へ進む。
(ステップS114)
処理サーバ装置200は、ステップS113でのデータ処理の結果を処理時間推定装置100へ通知(送信)する。
ステップS114の後、
図4の処理を終了する。
【0050】
図5は、処理サーバ装置200がデータ処理を行う手順の例を示すフローチャートである。
図5の処理で、処理サーバ装置200は、機械学習にてデータ処理を行う。
処理サーバ装置200は、
図4のステップS113で
図5の処理を行う。
(ステップS121)
処理サーバ装置200は、モデル構築用データセット、及び、モデル検証用データセットを決定する。具体的には、処理サーバ装置200は、処理対象データをモデル構築用データセットとモデル検証用データセットとに分割する。
【0051】
例えば、処理サーバ装置200は、処理対象データとして、説明変数値及び目的変数値を示す複数の学習用データ(学習用データセット)を取得する。そして、処理サーバ装置200は、取得した学習用データセットのうち、例えば1割のデータなど幾つかのデータを検証用データセットに決定し、残りのデータをモデル構築用データセットに決定する。
ここでいう目的変数は、データ処理における取得対象の値を示す変数、すなわち、データ処理結果を示す変数である。ここでいう説明変数は、データ処理結果を算出する元となる値を示す変数である。
ステップS121の後、ステップS122へ進む。
【0052】
(ステップS122)
処理サーバ装置200は、解探索のステップ幅など機械学習における各種パラメータの値を初期設置する。ここでのパラメータ値の初期設定方法は、特定の方法に限定されない。例えば、処理サーバ装置200が、パラメータの初期設定値をランダムに決定するようにしてもよいし、予め定められている値に決定するようにしてもよいし、前回の学習結果に基づいて決定するようにしてもよい。
ステップS122の後、ステップS123へ進む。
【0053】
(ステップS123)
処理サーバ装置200は、モデル構築用データセットを用いて機械学習アルゴリズムを実行し、学習結果を取得する。例えば、処理サーバ装置200は、説明変数値の入力を受けて目的変数値を出力する関数を学習結果として算出する。
ステップS123の後、ステップS124へ進む。
【0054】
(ステップS124)
処理サーバ装置200は、ステップS123で得られた学習結果を、モデル検証用データセットを用いて評価する。
例えば、処理サーバ装置200は、学習結果として得られた関数にモデル検証用データに含まれる説明変数値を入力し、得られた目的変数値とモデル検証用データに含まれる説明変数値との差の大きさ(差の絶対値)を算出する。処理サーバ装置200は、モデル検証用データセットに含まれるモデルデータの各々について、かかる差の大きさを算出し、得られた差の大きさ平均値を、学習結果の評価値として算出する。
【0055】
(ステップS125)
処理サーバ装置200は、ステップS124で得られた評価値に基づいて合否の判定を行う。具体的には、処理サーバ装置200は、ステップS124で得られた評価値と閾値とを比較する。評価値が閾値以下である場合、処理サーバ装置200は、学習結果を合格と評価する。一方、評価値が閾値より大きい場合、処理サーバ装置200は、学習結果を不合格と評価する。
【0056】
ステップS125で学習結果を合格と評価した場合(ステップS125:YES)、
図5の処理を終了し、
図4の処理へ戻る。
一方、ステップS125で学習結果を不合格と評価した場合(ステップS125:NO)、ステップS131へ進む。
【0057】
(ステップS131)
処理サーバ装置200は、機械学習における各種パラメータの値を更新する。
ステップS131の後、ステップS123へ戻る。
ステップS121からS125までの一連の処理、ステップS131からS125までの一連の処理は、それぞれ機械学習における一回の処理の例に該当する。
処理サーバ装置200が
図5の処理に用いる学習アルゴリズムは特定のアルゴリズムに限定されず、
図5のように学習結果を評価して処理を繰り返すことが可能なものであればよい。
【0058】
図6は、データ処理の予約の処理手順の第一例を示す図である。
図6は、データ処理の予約に成功する場合の処理手順の例を示す。
図6の処理で、クライアントシステム910は、予約の登録を要求するユーザ操作を受け(シーケンスS211)、時期情報要求を処理時間推定装置100へ送信する(シーケンスS212)。ここでいう時期情報要求は、
図3に例示される処理予約登録画面に表示する情報の要求である。
【0059】
処理時間推定装置100では、通信部110が時期情報要求を受信すると、期限情報取得部191が期限情報を取得する(シーケンスS221)。上述したように期限情報は、データ処理要求に対する処理結果の出力予定期限を示す情報である。
また、処理時間要素推定部194及び処理時間推定部195は、データ処理に要する処理時間を上記のように機械学習にて算出する(シーケンスS222)。通信部110が、予約対象のデータ処理におけるデータ量の情報を含む時期情報予約を受信し、処理時間要素推定部194がこのデータ量の情報に基づいて処理時間要素を算出するようにしてもよい。あるいは、処理時間要素推定部194が、過去のデータ処理におけるデータ量に基づいて予約対象のデータ処理におけるデータ量を推定するようにしてもよい。
【0060】
次に、処理開始期限決定部196が、上記のように出力予定期限及び処理時間に基づいて処理開始期限を決定する(シーケンスS223)。
そして、通信部110が、時期情報要求に対する回答として処理時間及び処理開始期限を示す情報をクライアントシステム910へ送信する(シーケンスS224)。クライアントシステム910が出力予定期限を記憶していない場合、通信部110はさらに期限情報(出力予定期限を示す情報)をクライアントシステム910へ送信する。
【0061】
処理時間推定装置100からの回答(時期情報)を受信したクライアントシステム910は、
図3に例示される処理登録画面を表示し(シーケンスS231)、処理要求期限の入力を受け付ける(シーケンスS232)。そして、クライアントシステム910は、処理要求期限を示す情報を含む予約登録要求を処理時間推定装置100へ送信する(シーケンスS233)。
【0062】
処理時間推定装置100では、通信部110が予約登録要求を受信すると、処理予約受付部197が、予約の可否を判定する(シーケンスS241)。処理予約受付部197は、予約登録要求から処理要求期限を読み出し、処理開始期限と比較する。処理要求期限が処理開始期限またはそれ以前である場合、処理予約受付部197は予約可能と判定する。一方、処理要求期限が処理開始期限よりも後である場合、処理予約受付部197は予約不可と判定する。
図6の例では、処理時間推定装置100は予約可能と判定している。
【0063】
シーケンスS241で予約可能と判定した処理予約受付部197は、予約登録を行う(シーケンスS242)。上記のように処理予約受付部197は、予約要求元及び処理要求期限など予約に関する情報を記憶部180に記憶させることで、予約を登録する。
予約登録を完了すると、処理予約受付部197は、通信部110を介して予約登録元のクライアントシステム910へ、予約登録完了通知を送信する(シーケンスS243)。
予約登録完了通知を受信したクライアントシステム910は、予約登録が完了した旨を表示する(シーケンスS251)。
シーケンスS251の後、
図6の処理を終了する。この場合、処理時間推定装置100、クライアントシステム910共に、データ処理の予約の処理を終了する。
【0064】
図7は、データ処理の予約の処理手順の第二例を示す図である。
図7は、データ処理の予約に失敗する場合の処理手順の例を示す。
図7のシーケンスS311〜S333は、
図6のシーケンスS211〜S233と同様である。
シーケンスS333でクライアントシステム910が送信した予約登録要求を通信部110が受信すると、処理予約受付部197が、予約の可否を判定する(シーケンスS341)。処理予約受付部197が予約の可否を判定する方法は、
図6のシーケンスS241の場合と同様である。シーケンスS341で処理予約受付部197は、シーケンスS241の場合とは異なり予約不可と判定している。
【0065】
この場合、処理予約受付部197は、予約通知を行わず、通信部110を介してクライアントシステム910へ、予約拒否通知を送信する(シーケンスS342)。
予約拒否通知を受信したクライアントシステム910は、予約に失敗した旨、及び、処理要求期限を入力し直すよう促す通知を表示する(シーケンスS351)。
シーケンスS351の後、
図7の処理を終了する。この場合、サービス利用者が処理要求期限を入力し直して予約登録ボタンを操作すると、処理時間推定装置100及びクライアントシステム910は、
図6のシーケンスS241及び
図7のシーケンスS341に例示される予約可否の判定、およびその後の処理を行う。
【0066】
以上のように、処理時間要素推定部194は、処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び1回あたりの処理時間を推定する。処理時間推定部195は、処理の繰り返し回数及び1回あたりの処理時間に基づいて、要求される処理の実行時間を推定する。
これにより、処理時間推定装置100では、処理時間(要求される処理の実行時間)の推定精度が高まることが期待される。特に、処理時間推定部195が、処理の繰り返し回数及び1回あたりの処理時間に基づくことで、処理の繰り返し回数及び1回あたりの処理時間の傾向を反映させて処理時間を推定することができる。この点で、処理時間推定装置100によれば、単に処理対象データに基づく場合と比較して処理時間の推定精度が高まることが期待される。
【0067】
期限情報取得部191は、処理要求に対する処理結果の出力予定期限を示す期限情報を取得する。処理開始期限決定部196は、処理結果の出力予定期限、及び、推定された実行時間に基づいて、処理開始期限を決定する。
これにより、処理時間推定装置100は、処理結果の出力予定期限に間に合わせるための処理開始期限を提示することができる。この処理開始期限に基づいてスケジューリングを行うことで、出力予定期限までに処理結果を得られるようにスケジューリングを行うことができる。
【0068】
また、処理予約受付部197は、処理要求期限が処理開始期限又はそれ以前の処理予約を受け付ける。
これにより、処理時間推定装置100は、処理結果の出力予定期限に間に合わせるように処理予約を登録することができる。
【0069】
また、データ内容係数取得部192は、処理要求における処理対象データの内容に応じたデータ内容係数を取得する。処理時間要素推定部194は、処理対象データ量に加えて、データ内容係数に基づいて、処理の繰り返し回数及び1回あたりの処理時間のうち少なくともいずれか一方を推定する。
これにより、処理時間推定装置100は、処理時間の推定にデータの内容を反映させることができる。この点で、処理時間推定装置100によれば、処理時間の推定精度が高まることが期待される。
【0070】
また、処理アルゴリズム係数取得部193は、処理要求に対する処理アルゴリズムに応じた処理アルゴリズム係数を取得する。処理時間要素推定部194は、処理時間要素推定部は、処理対象データ量に加えて処理アルゴリズム係数に基づいて、処理の繰り返し回数及び1回あたりの処理時間のうち少なくともいずれか一方を推定する。
これにより、処理時間推定装置100は、処理アルゴリズムに応じた処理時間を推定することができる。この点で、処理時間推定装置100によれば、処理時間の推定精度が高まることが期待される。
【0071】
次に、
図8を参照して本発明の最小構成について説明する。
図8は、本発明に係る処理時間推定装置の最小構成の例を示す図である。
図8に示す処理時間推定装置10は、処理時間要素推定部11と、処理時間推定部12とを備える。
かかる構成にて、処理時間要素推定部11は、処理要求における処理対象データ量に基づいて、処理の繰り返し回数及び1回あたりの処理時間を推定する。処理時間推定部12は、処理の繰り返し回数及び1回あたりの処理時間に基づいて、要求される処理の実行時間を推定する。
【0072】
これにより、処理時間推定装置10では、処理時間(要求される処理の実行時間)の推定精度が高まることが期待される。特に、処理時間推定部12が、処理の繰り返し回数及び1回あたりの処理時間に基づくことで、処理の繰り返し回数及び1回あたりの処理時間の傾向を反映させて処理時間を推定することができる。この点で、処理時間推定装置10によれば、単に処理対象データに基づく場合と比較して処理時間の推定精度が高まることが期待される。
【0073】
なお、処理時間推定装置100の全部または一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0074】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。