(57)【特許請求の範囲】
【請求項１】
複数のシステムのうち、いずれかのシステムにジョブを実行させる制御を行なう制御装置における制御方法において、
前記制御装置が、
前記複数のシステムに関する過去のジョブの実行履歴を参照して、第１のジョブの実行開始タイミングに先行し、前記第１のジョブが参照するデータ格納領域に対する更なる更新処理が実行されない期間を特定し、
前記複数のシステムの中から前記第１のジョブを実行させるシステムを選択する際に利用する、前記データ格納領域から前記第１のジョブが参照するデータ量の評価タイミングが、特定した前記期間に含まれるように制御する、
ことを特徴とする制御方法。
【請求項２】
前記制御装置が、
前記実行履歴に基づいて、前記第１のジョブが参照するデータ格納領域に対する更新処理を実行する、前記第１のジョブと異なる１以上のジョブを特定し、
特定した前記１以上のジョブの動作を監視した結果、前記１以上のジョブの全てが終了したことを検知した場合、検知後から前記第１のジョブの実行タイミングまでの期間を、前記更なる更新処理が実行されない期間と特定する、
ことを特徴とする請求項１記載の制御方法。
【請求項３】
前記制御装置が、
前記複数のシステムのうちの、前記異なる１以上のジョブを実行するシステムに関する処理負荷を監視し、
特定した前記期間のうち、前記処理負荷が所定の基準以下のタイミングを前記評価タイミングとして決定する、
ことを特徴とする請求項２記載の制御方法。
【請求項４】
前記複数のシステムのそれぞれが記憶部を備え、
前記制御装置が、
前記第１のジョブが前記複数のシステムのうちの少なくとも２以上のシステムの前記記憶部に格納されたデータを参照するジョブである場合、前記２以上のシステムの前記記憶部それぞれから前記第１のジョブが参照するデータのデータ量を取得し、
前記２以上のシステムのうち、前記第１のジョブが参照するデータ量が最も大きいシステムを、前記第１のジョブを実行させるシステムとして選択する、
ことを特徴とする請求項１〜３のいずれか１項に記載の制御方法。
【請求項５】
前記制御装置が、
前記評価タイミングは、前記更新処理を実行する第２のジョブの全てが終了した後である、
ことを特徴とする請求項４記載の制御方法。
【請求項６】
前記第１のジョブが、前記複数のシステムのうちの少なくとも２以上のシステムの前記記憶部からデータを参照して処理を実行するジョブであって、参照した前記データについての集計処理を行うジョブである、
ことを特徴とする請求項４または５のいずれか１項に記載の制御方法。
【請求項７】
前記複数のシステムを用いて、前記第１のジョブと、前記１以上のジョブを含む複数のジョブを実行するテスト運用が実行され、
前記制御装置が、
前記複数のジョブのうち、前記複数のシステムのうちの少なくとも２以上のシステムの記憶部からデータを参照して処理を実行するジョブであって、参照した前記データを統合する処理を行うジョブを特定し、
特定した前記統合する処理を行うジョブを、前記テスト運用の後に実行される本番運用において、前記統合する処理の結果データを記憶する前記記憶部を備えるシステムで実行させるように制御する、
ことを特徴とする請求項２または３のいずれか１項に記載の制御方法。
【請求項８】
前記更なる更新処理が実行されない期間の特定と、前記データ量の評価と、前記第１のジョブを実行させるシステムの選択とが、前記本番運用において実行されることを特徴とする請求項７記載の制御方法。
【請求項９】
前記複数のシステムが、それぞれ異なるクラウド環境であり、
前記複数のジョブは、それぞれについて設定された実行開始タイミングに応じたバッチ処理を実行することを特徴とする請求項１〜８のいずれか１項に記載の制御方法。
【請求項１０】
複数のシステムのうち、いずれかのシステムにジョブを実行させる制御を行なう制御装置に、
前記複数のシステムに関する過去のジョブの実行履歴を参照して、第１のジョブの実行開始タイミングに先行し、前記第１のジョブが参照するデータ格納領域に対する更なる更新処理が実行されない期間を特定し、
前記複数のシステムの中から前記第１のジョブを実行させるシステムを選択する際に利用する、前記データ格納領域から前記第１のジョブが参照するデータ量の評価タイミングが、特定した前記期間に含まれるように制御する、
処理を実行させることを特徴とする制御プログラム。
【請求項１１】
複数のシステムのうち、いずれかのシステムにジョブを実行させる制御を行なう制御装置であって、
前記複数のシステムに関する過去のジョブの実行履歴を参照して、第１のジョブの実行開始タイミングに先行し、前記第１のジョブが参照するデータ格納領域に対する更なる更
新処理が実行されない期間を特定する特定部と、
前記複数のシステムの中から前記第１のジョブを実行させるシステムを選択する際に利用する、前記データ格納領域から前記第１のジョブが参照するデータ量の評価タイミングが、特定した前記期間に含まれるように制御する制御部と、
を備えることを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御方法、制御プログラムおよび制御装置に関する
【背景技術】
【０００２】
システム運用者が複数の情報処理システムを運用している中で、情報処理システムの動作によってデータベースに記憶されるデータに対して、情報処理装置が処理を行い、処理結果をさらにデータベース等に記憶する処理が行われている。例えば、それぞれが業務システム、あるいは基幹系システムなどと呼ばれる複数の情報処理システムそれぞれに対してデータベース（Database、ＤＢ）が設けられる。製造業であれば、例えば、在庫管理システム、出荷管理システム、生産管理システムといった複数の基幹系システムを運用しており、それぞれについて、データベースが設けられる。
【０００３】
情報処理装置は、設定されたタイミング（日時）に、データベースからデータを一括して読み出し（データの入力）、読み出したデータを用いた処理を一括して実行して、実行の結果生成されたデータをデータベース、あるいは他の記憶部に一括して記憶する（データの出力）。このとき、データの入力として複数のデータベースからデータの読み出しが行われうる。以降では、上述したような、設定されたタイミングで一括して実行される、データ入出力およびデータに対する処理の実行を含む情報処理装置の処理を「ジョブ」と記載する。なお、このようなジョブは、データベースに対するバッチ処理と言い換えることも可能である。
【０００４】
ジョブは１つの情報処理システム内で完結する場合もあるが、複数の情報処理システム間で連携して（複数の情報処理システム間に跨って）行われる場合もある。例えば、在庫管理システムが備えるデータベースと出荷管理システムが備えるデータベースとからデータを読み出して処理し、処理結果を生産管理システムが備えるデータベースに記憶させるような場合、複数の情報処理システム間で連携してジョブが行われることになる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１１４０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
情報処理システムの運用、データの処理に用いられる情報処理装置（ハードウェア資源）は、一態様としては、システム利用者の所有する設備で賄われる（オンプレミス）。また、一態様としては、システム利用者が、データセンタ事業者による情報処理装置（情報処理資源）の提供サービス（クラウドサービスなどと呼ばれる）を利用する場合もある。
【０００７】
クラウドサービスを利用する場合には、複数の情報処理システムについて、それぞれ異なるクラウドサービスが利用されることも考えられる。複数の情報処理システムそれぞれで異なるクラウドサービスが利用される態様では、複数の情報処理システムのすべてがオンプレミス環境や単一のクラウドサービスで運用されている場合と比較すると、複数の情報処理システムが連携して行われるジョブを実行した際のデータの転送時間が長期化することが多い。例えば、いずれかのクラウドサービスが備える情報処理装置によりジョブが実行され、ジョブ実行の際に、データの入力として複数のデータベースからデータの読み出し、すなわちデータ転送が行われるとする。複数のデータベースがそれぞれ異なるクラウドサービスに配置されていると、ジョブを実行する情報処理装置と異なるクラウドサービスのデータベースからのデータ転送は、クラウドサービス間でのデータの転送となる。クラウドサービス間でのデータの転送は、オンプレミス環境内や単一のクラウドサービスのネットワーク内と比較して転送速度が低下する。
【０００８】
そのため、ジョブの実行に要する時間全体を、データに対する処理の時間と、データの入出力に要する時間とに分けた場合に、時間全体に対するデータの入出力に要する時間の割合が多くなる。つまり、データに対する処理の時間が短いとしても、データの入出力に要する時間が長くなることで、ジョブの実行に要する時間の長期化や、ジョブの実行遅延を招くおそれがある。
【０００９】
上記の問題に対する対策として、ジョブを実行する情報処理装置、すなわちジョブの実行に利用するクラウドサービスを状況に応じて選択することが考えられる。より具体的には、例えば、ジョブを実行した際のデータの入出力が最大となるクラウドサービスの情報処理装置でジョブを実行させることで、データの入出力時間を低減させることが考えられる。ジョブを実行する情報処理装置を決定するためには、ジョブの実行における入出力データのデータ量を、ジョブの実行前に確認（評価）しておくことが必要である。
【００１０】
しかしながら、ジョブの実行において参照されるデータは、各々の情報処理システムの運用の中で、例えば、先行する他のジョブの実行に伴い更新されうる。データの更新により、事前にデータ量を評価した時点と、ジョブを実行する時点では、データの状況（データ量）に乖離が生じる可能性がある。そのため、評価結果に基づいて決定した情報処理装置でのジョブの実行が、実行時点での最適解とはならないおそれがある。
【００１１】
一方、上述したデータ量の乖離を抑止するために、データ量の評価の頻度を高くすると、データ量の評価にも処理負荷が発生するために、そもそもの目的であるジョブの実行以外に多くの処理負荷を割くこととなってしまう。
【００１２】
１つの側面によれば、ジョブの実行時間短縮のためのデータ量の評価タイミングの適正化を図ることを目的とする。
【課題を解決するための手段】
【００１３】
１つの態様では、複数のシステムのうち、いずれかのシステムにジョブを実行させる制御を行なう制御装置における制御方法において、前記制御装置が、前記複数のシステムに関する過去のジョブの実行履歴を参照して、第１のジョブの実行開始タイミングに先行し、前記第１のジョブが参照するデータ格納領域に対する更なる更新処理が実行されない期間を特定し、前記複数のシステムの中から前記第１のジョブを実行させるシステムを選択する際に利用する、前記データ格納領域から前記第１のジョブが参照するデータ量の評価タイミングが、特定した前記期間に含まれるように制御する。
【発明の効果】
【００１４】
１つの側面によれば、ジョブの実行時間短縮のためのデータ量の評価タイミングの適正化を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】本実施例におけるシステム構成の一例を示す。
【図２】クライアント装置１の機能ブロック図を示す。
【図３】クラウド環境の機能ブロック図を示す。
【図４】制御装置６０の機能ブロック図を示す。
【図５】ジョブ定義情報記憶部６２１に記憶されるデータの一例を示す。
【図６】テーブル更新情報記憶部６２２に記憶される情報の一例を示す。
【図７】入力データ管理情報記憶部６２３が記憶するデータの一例を示す。
【図８】本実施例におけるデータ量評価処理、および評価結果に基づく処理実行サーバの決定処理を説明するフローチャートを示す。
【図９】問合せ文の一例を示す。
【図１０】稼動履歴情報記憶部６２４に記憶される情報の一例を示す。
【図１１】本実施例におけるテスト運用時の動作を説明するフローチャートを示す。
【図１２】採取情報記憶部６２５に記憶されるデータの一例を示す。
【図１３】テスト運用時の、処理実行サーバを決定する処理を説明するフローチャートを示す。
【図１４】本番運用時の処理のフローチャートを示す。
【図１５】本実施例におけるハードウェア構成の一例を示す。
【発明を実施するための最良の形態】
【００１６】
本発明を実施する実施例について、図面とともに説明をする。
【００１７】
〔全体構成〕
図１は、本実施例におけるシステム構成の一例を示す図である。クライアント装置１は、ネットワーク５を経由して、クラウド環境２、３、４のそれぞれに接続可能である。クライアント装置１は、例えば、Personal Computer（ＰＣ）や、スマートフォン、Personal Digital Assistant（ＰＤＡ）などのコンピュータである。システムの利用者、運用者は、クライアント装置１を用いて、後述する処理実行サーバ、ＤＢサーバ、あるいは制御装置６０にアクセスし、ジョブの実行を制御することができる。
【００１８】
クラウド環境２、３、４のそれぞれは、複数の情報処理装置を備えており、クラウド環境２、３、４のそれぞれが備える情報処理装置を用いたクラウドサービスが提供される。本実施例では、クラウド環境２において、クラウドサービス＃Ａが提供されている。また、クラウド環境３において、クラウドサービス＃Ｂが提供されている。また、クラウド環境４において、クラウドサービス＃Ｃが提供されている。
【００１９】
クラウド環境２、３、４のそれぞれは、情報処理システムの運用に用いられる情報処理装置を備える。例えば、クラウド環境２は、ジョブを実行する処理実行サーバ２０−１、２０−２と、データを格納するデータベースを動作させるためのＤＢサーバ２１とを含む。また、クラウド環境３は、処理実行サーバ３０−１、３０−２と、ＤＢサーバ３１とを含む。また、クラウド環境４は、処理実行サーバ４０−１、４０−２と、ＤＢサーバ４１とを含む。処理実行サーバ、ＤＢサーバのそれぞれは、例えばサーバ装置などのコンピュータである。なお、図１では、各クラウド環境について、２台の処理実行サーバと、１台のＤＢサーバを図示しているが、処理実行サーバ、ＤＢサーバのそれぞれは、１台であっても、複数台であっても良い。
【００２０】
情報処理システムの運用者、利用者は、例えば、クライアント装置１を用いて、クラウド環境２にアクセスし、クラウドサービス＃Ａを利用することができる。例えば、クラウド環境２において、処理実行サーバ２０−１、２０−２と、ＤＢサーバ２１とを用いて、所望の情報処理システムを運用、利用することができる。また、ＤＢサーバ２１は、情報処理システムがアクセス可能な、Structured Query Language（ＳＱＬ）をサポートするデータベースを起動し、データベースの制御を実行することが可能である。クラウドサービス＃Ａと同様に、情報処理システムの運用者、利用者は、クライアント装置１を用いて、クラウド環境３、４にアクセスし、クラウドサービス＃Ｂ、＃Ｃを利用して所望の情報処理システムやデータベースを運用、利用することもできる。
【００２１】
さらに、図１の態様では、クラウドサービス＃Ａは、制御装置６０を含む。制御装置６０は、クラウドサービス＃Ａ〜＃Ｃにおけるジョブの実行を制御する情報処理装置である。なお、制御装置６０は、クラウドサービス＃Ａ以外のクラウドサービスに配備されても良いし、クラウドサービス＃Ａ〜＃Ｃ以外のオンプレミス環境に配備されていても良い。いずれの場合でも、制御装置６０が、ネットワーク５を介して、クライアント装置１やクラウドサービス＃Ａ〜＃Ｃに接続可能であれば、本実施例を実現することが可能である。また、本実施例では、１台の制御装置６０がクラウドサービス＃Ａ〜＃Ｃにおけるジョブの実行を制御する態様であるが、複数台の制御装置６０でジョブの実行制御が行われることとしても良い。
【００２２】
〔クライアント装置〕
図２は、クライアント装置１の機能ブロック図である。
【００２３】
入力部１０１は、利用者からの操作入力を受け付ける。入力部１０１は、例えば、キーボードやマウス等のハードウェアを用いることができる。
【００２４】
表示部１０２は、例えば、液晶ディスプレイであり、ジョブの実行結果や、上述した情報処理システムのデータベースに記憶されたデータを表示することができる。
【００２５】
通信部１０３は、有線または無線で、他の情報処理装置との通信を実行する。通信部１０３は、例えば、クライアント装置１が備えるネットワークアダプタやＮＩＣ（Network Interface Controller）等の通信デバイスである。
【００２６】
記憶部１０４は、例えば、クライアント装置１が備える、メモリ、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）等の記憶媒体を用いて実現される。記憶部１０４は、データベース等から取得した各種のデータを記憶することが可能である。
【００２７】
〔クラウドサービス〕
図３は、クラウド環境の機能ブロック図である。図３では、クラウド環境２について図示をしているが、クラウド環境３、４についても同様の構成であって構わない。
【００２８】
まず、処理実行サーバ２０−１、２０−２は、処理実行部２０１と、記憶部２０２と、通信部２０３とを備える。
【００２９】
処理実行部２０１は、制御装置６０による制御に基づいて、ジョブを実行する。処理実行部２０１は、例えば、処理実行サーバであるサーバ装置が備えるプロセッサがプログラムを実行することにより実現される。ここで、プロセッサは、Central Processing Unit（ＣＰＵ）やMicro Processing Unit（ＭＰＵ）、Application Specific Integrated Circuit（ＡＳＩＣ）等のハードウェア回路の総称である。なお、プログラムは、記憶部２０２に記憶され、処理実行の際に読み出されることとしてもよいし、他の情報処理装置や記憶装置から受信することとしても良い。
【００３０】
記憶部２０２は、ハードウェアとしては、例えば、処理実行サーバであるサーバ装置が備える、メモリ、ＨＤＤ、ＳＳＤ等の記憶媒体である。記憶部２０２は、処理実行サーバがジョブの実行において取得、生成する種々のデータを記憶することができる。また、記憶部２０２は、上述のように、ジョブの実行に必要なプログラムを記憶することができる。
【００３１】
通信部２０３は、ＤＢサーバ２１、クライアント装置１、あるいは他のクラウドサービスが備える情報処理装置とのデータの送受信を実行する。通信部２０３は、例えば、処理実行サーバであるサーバ装置が備えるネットワークアダプタＮＩＣ等の通信デバイスである。
【００３２】
次に、ＤＢサーバ２１は、制御部２１１と、記憶部２１２と、通信部２１３とを備える。
【００３３】
制御部２１１は、記憶部２１２の記憶領域を用いて実現されるデータベースの制御を実行する。制御部２１１は、例えば、ＤＢサーバであるサーバ装置が備えるプロセッサがプログラムを実行することにより実現される。プログラムは、ＤＢサーバであるサーバ装置が備えるメモリや記憶装置等に格納され、処理実行の際に読み出されることとしてもよいし、他の情報処理装置や記憶装置から受信することとしても良い。
【００３４】
記憶部２１２は、データベースを実現するための記憶領域を有する。記憶部２１２は、ハードウェアとしては、例えば、ＤＢサーバであるサーバ装置が備える、メモリ、ＨＤＤ、ＳＳＤ等の記憶媒体である。また、記憶部２１２は、ＤＢサーバ２１をデータベース制御システム（Database Management System、ＤＢＭＳ）として機能させるためのプログラムを記憶することができる。
【００３５】
通信部２１３は、処理実行サーバ２０−１、２０−２、クライアント装置１、あるいは他のクラウドサービスが備える情報処理装置とのデータの送受信を実行する。通信部２０２は、例えば、処理実行サーバであるサーバ装置が備えるネットワークアダプタやＮＩＣ等の通信デバイスである。
【００３６】
〔制御装置〕
図４は、制御装置６０の機能ブロック図である。制御装置６０は、入力部６０１、表示部６０２、通信部６０３を備える。また、制御装置６０は、制御部６１０、記憶部６２０を備える。
【００３７】
入力部６０１は、利用者からの操作入力を受け付ける。入力部１０１は、例えば、キーボードやマウス等のハードウェアを用いることができる。
【００３８】
表示部６０２、例えば、液晶ディスプレイであり、ジョブの実行結果や、上述した情報処理システムのデータベースに記憶されたデータを出力することができる。なお、入力部６０１、表示部６０２について、クライアント装置１を用いて利用者が制御装置６０の遠隔操作を行い、入力部１０１、表示部１０２で代替させることも可能である。
【００３９】
通信部６０３は、有線または無線で、他の情報処理装置との通信を実行する。通信部１０３は、例えば、制御装置６０が備えるネットワークアダプタやＮＩＣ等の通信デバイスである。
【００４０】
制御部６１０は、データ取得部６１１と、実行サーバ決定部６１２と、実行制御部６１３と、スケジューリング部６１４と、を備える。例えば、ＤＢサーバであるサーバ装置が備える、メモリ、ＨＤＤ、ＳＳＤ等の記憶媒体である。
【００４１】
データ取得部６１１は、本実施例において各ジョブを実行する処理実行サーバの決定に利用する情報の取得を実行する。
【００４２】
実行サーバ決定部６１２は、データ取得部６１１により取得された情報に基づいて、各ジョブを実行する処理実行サーバを決定する。
【００４３】
実行制御部６１３は、処理実行サーバによるジョブの実行を制御する。また、スケジューリング部６１４は、複数のジョブが実行される際の、各ジョブの実行開始タイミングや、実行順序を決定する。実行制御部６１３、スケジューリング部６１４は、ジョブ管理システムなどと呼ばれるソフトウェアの機能の一部である。
【００４４】
記憶部６２０は、ハードウェアとしては、例えば、処理実行サーバであるサーバ装置が備える、メモリ、ＨＤＤ、ＳＳＤ等の記憶媒体である。記憶部６２０は、クラウドサービス＃Ａ〜＃Ｃで実行される各ジョブの制御に利用される情報を記憶する。記憶部６２０は、ジョブ定義情報記憶部６２１、テーブル更新情報記憶部６２２、入力データ管理情報記憶部６２３、稼動履歴情報記憶部６２４、採取情報記憶部６２５、トレースログ記憶部６２６を含む。記憶部６２０が含むそれぞれの記憶部については、詳細を後述する。また、記憶部６２０は、制御装置６０が、後述する本実施例の各種の処理を行うためのプログラムを記憶することができる。
【００４５】
制御部６１０は、例えば、制御装置６０である情報処理装置が備えるプロセッサが、記憶部６２０に記憶されたプログラムを実行することにより実現される。
【００４６】
〔ジョブ定義情報〕
図５は、本実施例のジョブ定義情報記憶部６２１に記憶されるデータの一例を示す図である。ジョブ定義情報記憶部６２１には、クラウドサービス＃Ａ〜＃Ｃで実行される各ジョブについての定義情報が記憶される。例えば、ジョブ定義情報記憶部６２１は、図５に示すように、ジョブ名６２１１、起動時刻６２１２、ジョブ情報６２１３、実行サーバ情報６２１４、対象フラグ６２１５を記憶する。
【００４７】
ジョブ名６２１１は、制御対象の複数のジョブそれぞれを識別可能とする情報である。図５では、ジョブ名として、Ｊｏｂ−ＡＡ〜Ｊｏｂ−ＥＥと記載しているが、ジョブ名６２１１の具体的なデータ形式は１つの態様には限定されず、各々のジョブが一意に識別可能な態様であれば、図５と異なる態様でも良い。
【００４８】
起動時刻６２１２は、ジョブが起動（実行開始）する時刻を示す情報である。なお、各ジョブの起動時刻は、例えば制御装置６０のスケジューリング部６１４が実行する処理により、予め設定されているものとする。例えば、図５では、ジョブ名がＪｏｂ−ＡＡのジョブが、時刻１７：３０：００に実行されることが示されている。また、ジョブ名がＪｏｂ−ＢＢのジョブが、時刻１９：００：００に実行されることが示されている。また、ジョブ名がＪｏｂ−ＣＣのジョブが、時刻２１：００：００に実行されることが示されている。また、ジョブ名がＪｏｂ−ＤＤのジョブが、時刻２２：３０：００：００に実行されることが示されている。また、ジョブ名がＪｏｂ−ＥＥのジョブが、時刻０：００：００に実行されることが示されている。したがって、本実施例におけるジョブは、起動時刻６２１２に設定された時刻にバッチ処理を実行すると言うこともできる。
【００４９】
なお、図５において各ジョブは、日毎に起動時刻６２１２に示されるスケジュールにより実行される想定であるが、ジョブの中には、日によって実行の有無や、スケジューリングされる起動時刻が変動するジョブも存在する。日によって実行の有無や、スケジューリングされる起動時刻が変動するジョブが存在する場合は、例えば、ジョブを起動する日（曜日や日付など）と、各日の起動時刻とが定義されることとしても良い。
【００５０】
ジョブ情報６２１３は、図１に示したいずれかの処理実行サーバがジョブを実行する際に起動する実行ファイルを特定する情報である。ジョブ情報６２１３としては、例えば、制御装置６０や処理実行サーバの記憶部における、実行ファイルの格納先のパスが記憶される。ジョブの実行ファイルは、ジョブを実行する際に、制御装置６０から、ジョブを実行する処理実行サーバに送信されることとしても良い。また、ジョブを実行する処理実行サーバが決定されている場合は、ジョブの実行に先立って、ジョブを実行する処理実行サーバに送信され、ジョブを実行する処理実行サーバの記憶部に記憶されることとしても良い。
【００５１】
実行サーバ情報６２１４は、ジョブをどの処理実行サーバ（クラウドサービス）で実行させるかを示す情報である。後述の処理実行サーバを決定する処理により、ジョブに対して処理実行サーバが決定された場合、実行サーバ情報６２１４の値に、決定された処理実行サーバを特定する情報が記憶される。
【００５２】
例えば図５では、ジョブ名がＪｏｂ−ＡＡのジョブを、ｈｏｓｔＡ１という処理実行サーバで実行することが示されている。本実施例では、図５に示すｈｏｓｔＡ１は、図１の処理実行サーバ２０−１の識別子であることとする。また、図５においては図示されていないが、ｈｏｓｔＡ２は処理実行サーバ２０−２の識別子であることとする。
【００５３】
同様に、例えば、ｈｏｓｔＢ１、ｈｏｓｔＢ２は、それぞれ処理実行サーバ３０−１、３０−２の識別子であることとする。また、例えば、ｈｏｓｔＣ１、ｈｏｓｔＣ２は、それぞれ処理実行サーバ４０−１、４０−２の識別子であることとする。なお、上述した処理実行サーバの識別の態様は一例であり、各々の処理実行サーバが一意に識別可能な態様であれば、図５と異なる態様でも良い。
【００５４】
対象フラグ６２１５は、ジョブについて、ジョブを実行する処理実行サーバを本番運用で決定する対象であるか否かを示す情報である。対象フラグ６２１５の意義については詳細を後述するが、本実施例で説明するジョブには、本番運用で処理実行サーバを決定する必要があるジョブと、本番運用に先立って実行されるテスト運用で処理実行サーバが決定されるジョブとが存在する。ジョブについて、対象フラグ６２１５の値がＯＦＦであれば、ジョブを実行する処理実行サーバがテスト運用で決定されたことを示す。また、対象フラグ６２１５の値がＯＮであれば、本番運用で処理実行サーバを決定する必要があることを示す。
【００５５】
なお、図５の実行サーバ情報６２１４に示される処理実行サーバは、本実施例の処理実行サーバ決定処理を実行することで決定されるが、処理実行サーバ決定処理については、本実施例で後述する。
【００５６】
〔テーブル更新情報〕
図６は、テーブル更新情報記憶部６２２に記憶される情報の一例を示す図である。テーブル更新情報記憶部６２２は、例えば、図６に示すように、ジョブ名６２２１、起動予定時刻６２２２、データテーブルＩＤ（identifier）６２２３、アクセス種別６２２４、更新フラグ６２２５の情報を記憶する。
【００５７】
ジョブ名６２２１は、制御対象の複数のジョブそれぞれを識別可能とする情報である。ジョブ名６２２１は、例えば、図５で示したジョブ名６２１１と同様の態様であっても良い。
【００５８】
起動時刻６２２２は、ジョブが起動（実行開始）する時刻を示す情報であり、図５で示した起動時刻６２１２と同等の情報である。
【００５９】
データテーブルＩＤ６２２３は、各ジョブが実行された際にアクセスすることとなるデータベースのデータテーブルを識別する情報である。データテーブルに対するアクセスは２種類あり、１つはジョブに対するデータの入力であり、もう１つはジョブからのデータの出力である。データテーブルに対するアクセスが、データの入力と出力のどちらであるかは、アクセス種別６２２４の情報で示される。図６では、アクセス種別６２２４の値は、データテーブルに対するアクセスがデータの入力である場合は「ＩＮＰＵＴ」、データテーブルに対するアクセスがデータの入力である場合は「ＯＵＴＰＵＴ」となる。
【００６０】
更新フラグ６２２５は、ジョブの実行によってデータベースのデータテーブルにアクセスが発生した場合、データテーブルに含まれるデータに更新が発生するか否かを示す情報である。データの更新は、例えばデータテーブルに含まれるレコードデータの増減や、データ項目の値の更新などであり、データテーブルのデータサイズが変動する要因である。データテーブルに対するアクセスによってデータテーブルに含まれるデータに更新が発生する（データテーブルのデータサイズが変動しうる）場合、更新フラグ６２２５の値は「ＯＮ」となる。一方、データテーブルに対するアクセスによってデータテーブルに含まれるデータに更新が発生しない（データテーブルのデータサイズが変動しない）場合、更新フラグ６２２５の値は「ＯＦＦ」となる。なお、更新フラグ６２２５は、データテーブルに含まれるデータに更新が発生するか否かを単純に示す情報ではなく、データテーブルに含まれるデータに、データ量の変動を伴う更新が発生するか否かを示す情報であっても良い。また、データ量の変動を伴う更新であるか否かは、更新前のデータ量と更新後のデータ量との差分の絶対値が、所定の閾値を超えるか否かによって決定されることとしても良い。
【００６１】
図６を例にして説明すると、例えば、ジョブ名がＪｏｂ−ＡＡのジョブが実行されると、データテーブルＩＤがＡ−１のデータテーブルと、データテーブルＩＤがＡ−２のデータテーブルとにアクセスが発生する。なお、以降の説明では、例えば、ジョブ名がＪｏｂ−ＡＡのジョブを「Ｊｏｂ−ＡＡのジョブ」、データテーブルＩＤがＡ−１のデータテーブルを「データテーブルＡ−１」と記載する場合がある。
【００６２】
データテーブルＡ−１のデータは、Ｊｏｂ−ＡＡのジョブに対する入力データ（ジョブ実行の際にジョブが参照するデータ）である。また、データテーブルＡ−２のデータテーブルには、ジョブが実行された結果、データが出力される。データの出力によって、データテーブルＡ−２のデータテーブルではデータの更新が発生するため、更新フラグ６２２５の値はＯＮとなっている。なお、入力データを含むデータテーブルＡ−１は更新フラグ６２２５の値がＯＦＦとなっているが、これは入力データについては、ジョブは参照を行うのみであり、データの更新が行われないためである。そのため、図６では、入力データ（アクセス種別６２２４の値がＩＮＰＵＴのデータ）については、一律で、更新フラグ６２２５の値がＯＦＦとなっている。なお、上記の通り、入力データ（アクセス種別６２２４がＩＮＰＵＴのデータ）についてはデータの更新が行われないため、更新フラグ６２２５の値を省略することとしても良い。なお、図６ではＪｏｂ−ＤＤのジョブについて、アクセス種別６２２４がＯＵＴＰＵＴである、すなわち出力データであるデータテーブルＡ−２についても、更新フラグ６２２５はＯＦＦとなっている。例えば、Ｊｏｂ−ＤＤのジョブがデータ更新を実行しない、または、データの更新を行った場合でも、データテーブルのデータサイズが変動しないジョブであるためである。
【００６３】
〔入力データ管理情報〕
図７に入力データ管理情報記憶部６２３が記憶するデータの一例を示す。入力データ管理情報記憶部６２３は、制御対象の各ジョブの入力データのデータサイズを特定するための情報を記憶する。入力データ管理情報記憶部６２３は、例えば、図７に示すように、ジョブ名６２３１、入力データテーブルＩＤ６２３２、データサイズ（１レコードあたり）６２３３、レコード数６２３４、入力データ量６２３５の情報を記憶する。
【００６４】
ジョブ名６２３１は、制御対象の複数のジョブそれぞれを識別可能とする情報である。ジョブ名６２３１は、例えば、図５で示したジョブ名６２１１と同様の態様であっても良い。
【００６５】
入力データテーブルＩＤ６２３２は、ジョブに対する入力データを含むデータテーブルを識別する情報である。なお、図７において各ジョブに対応する入力データテーブルＩＤ６２３２は、図６のデータテーブルＩＤ６２２３に含まれるデータテーブルＩＤのうち、アクセス種別６２２４がＩＮＰＵＴのデータテーブルＩＤである。
【００６６】
データサイズ（１レコードあたり）６２３３は、入力データのレコード１件あたりのデータサイズを示す情報である。図７では、データサイズの単位をキロバイト（ＫＢ）としているが、データサイズの単位は他の単位であっても良い。
【００６７】
レコード数６２３４は、ジョブ実行の際に入力データとして抽出されるレコードの件数を示す情報である。
【００６８】
入力データ量６２３５は、ジョブに対する入力データのデータサイズである。図７では、入力データ量の単位をメガバイト（ＭＢ）としているが、入力データ量の単位は他の単位であっても良い。
【００６９】
〔データ量の評価と処理実行サーバの決定〕
図８は、本実施例におけるデータ量評価処理、および評価結果に基づく処理実行サーバの決定処理を説明するフローチャートである。なお、本実施例において図８で説明する処理は、制御装置６０によるジョブ実行管理の本番運用の際に実行されることとする。本実施例では、本番運用に先立って実施されるテスト運用の際にも、制御装置６０が処理実行サーバ決定のための処理を実行するが、テスト運用時に実行される処理については後述する。
【００７０】
なお、以降の説明では、図８のフローチャートに示されるデータ量評価処理、および評価結果に基づく処理実行サーバの決定処理について、図５等に示すＪｏｂ−ＥＥのジョブを例にして説明する場合がある。
【００７１】
まず、ステップＳ８０１では、データ取得部６１１が、例えばテーブル更新情報記憶部６２２に記憶された情報を参照し、処理実行サーバを決定するジョブに先行して実行され、処理実行サーバを決定するジョブに対する入力データのデータ量が変動しうる更新処理を実行するジョブを特定する。そして、データ取得部６１１は、特定したジョブの実行が終了したか否かを監視する処理を開始する。以降の説明では、上述した処理実行サーバを決定するジョブに先行して実行され、処理実行サーバを決定するジョブに対する入力データのデータ量が変動しうる更新処理（データ出力）を実行するジョブを「監視対象ジョブ」と記載する。
【００７２】
監視対象ジョブは、処理実行サーバを決定するジョブ１つに対して、複数存在しうる。例えば、図６に示す情報を参照すると、Ｊｏｂ−ＥＥのジョブに対しては、データテーブルＡ−２とデータテーブルＢ−２が入力データとなる。データテーブルＡ−２はＪｏｂ−ＡＡのジョブ実行時のデータの出力先であり、出力データにおける更新フラグ６２２５の値はＯＮである。また、データテーブルＢ−２はＪｏｂ−ＢＢのジョブ実行時のデータの出力先であり、出力データにおける更新フラグ６２２５の値はＯＮである。したがって、監視対象ジョブは、Ｊｏｂ−ＡＡのジョブとＪｏｂ−ＢＢのジョブとなる。なお、データテーブルＡ−２はＪｏｂ−ＤＤのジョブ実行時のデータの出力先でもあるが、図５において、Ｊｏｂ−ＤＤのジョブが実行された際のデータテーブルＡ−２へのデータ出力について、更新フラグ６２２５の値はＯＦＦである。Ｊｏｂ−ＤＤのジョブは、データ出力の際にデータテーブルに含まれるデータに更新が発生しない（データテーブルのデータサイズが変動しない）ため、監視対象ジョブとしなくて良い。
【００７３】
ステップＳ８０２において、データ取得部６１１は、ステップＳ８０１で特定された監視対象ジョブの動作状況を監視し、監視対象ジョブとして特定されたジョブの全てが終了したか否かを判定する。例えば、データ取得部６１１は、稼動履歴情報記憶部６２４に記憶される情報を参照して、監視対象ジョブが終了したか否かを判定することができる。監視対象ジョブが終了したか否かの判定処理については、稼動履歴情報記憶部６２４に記憶される情報の説明とともに、詳細を後述する。
【００７４】
監視対象ジョブの全てが終了していない場合（ステップＳ８０２、ＮＯ）、データ取得部６１１は、終了していない監視対象ジョブについて、引き続き監視処理を実行する。なお、監視対象ジョブの一部について実行の終了が判定された場合には、データ取得部６１１は実行終了と判定されたジョブについては監視処理を終了することとしても良い。
【００７５】
一方、監視対象ジョブの全てが終了した場合（ステップＳ８０２、ＹＥＳ）、ステップＳ８０３の処理が実行される。なお、監視対象ジョブの全てが終了したことにより、以降、処理実行サーバを決定するジョブに対する入力データのデータ量は変動しないこととなる。したがって、監視対象ジョブの全てが終了した後に、データ取得部６１１が、処理実行サーバを決定するジョブに対する入力データのデータ量評価を行うことで、ジョブ実行時と同等の評価結果を取得することができる。
【００７６】
ステップＳ８０３では、データ取得部６１１が、データ量の評価を行う際に問合せ文を発行させる処理実行サーバの処理負荷をモニタリングする。そして、処理実行サーバの処理負荷が、設定された条件を満たすか否かを判定する。
【００７７】
ここで、上述した問合せ文は、例えば、処理実行サーバを決定するジョブが入力データとして読み出すデータを記憶したデータテーブルを指定するＳＱＬの問合せ文、例えばＳＥＬＥＣＴ文である。
【００７８】
処理実行サーバの処理負荷を判定する条件は、一例では、処理実行サーバの処理負荷が予め設定した基準値以下であることである。例えば、処理実行サーバのＣＰＵ使用率や、通信帯域の使用率について閾値が設定され、使用率が閾値以下であるか否かに基づいて、データ取得部６１１が判定を行うこととしても良い。具体的な閾値は適宜変更可能であり、また、データ取得部６１１は、使用率が閾値以下であるか否かではなく、使用率が閾値未満であるか否かに基づいて決定することとしても良い。
【００７９】
処理実行サーバでは、ジョブの実行などに伴う処理負荷が発生している。例えば、図６を参照しながら説明すると、前述のとおり、Ｊｏｂ−ＥＥのジョブに対応する監視対象ジョブは、Ｊｏｂ−ＡＡのジョブとＪｏｂ−ＢＢのジョブである。そして、Ｊｏｂ−ＡＡのジョブとＪｏｂ−ＢＢのジョブの実行終了以降に入力データのデータ量評価を行うことで、ジョブ実行時と同等の評価結果を取得することができる。ただし、図６のように、Ｊｏｂ−ＡＡのジョブとＪｏｂ−ＢＢのジョブの実行予定時刻から、Ｊｏｂ−ＥＥのジョブの起動予定時刻の間には、Ｊｏｂ−ＣＣのジョブとＪｏｂ−ＤＤのジョブの実行が予定されている。Ｊｏｂ−ＣＣのジョブとＪｏｂ−ＤＤのジョブが実行されることでＪｏｂ−ＥＥのジョブの入力データとなるデータテーブルは更新されない（データ量は変動しない）。ただし、ジョブが実行されることにより、ジョブを実行した処理実行サーバでは処理負荷が発生する。したがって、例えば、Ｊｏｂ−ＣＣのジョブを実行する処理実行サーバとＪｏｂ−ＤＤのジョブを実行する処理実行サーバとには、ジョブの実行に伴う処理負荷が発生することとなる。なお、Ｊｏｂ−ＣＣのジョブを実行する処理実行サーバとＪｏｂ−ＤＤのジョブを実行する処理実行サーバが同じであることもあり得る。
【００８０】
図８の説明に戻る。ステップＳ８０３で、設定された条件を満たさないと判定された場合（ステップＳ８０３、ＮＯ）、データ取得部６１１は、ステップＳ８０３の処理を継続し、問合せ文の送信タイミングの待ち合わせを行う。
【００８１】
一方、ステップＳ８０３で、設定された条件を満たすと判定された場合（ステップＳ８０３、ＹＥＳ）、データ量評価を行うための問合せ文の発行処理を行う（ステップＳ８０４）。より具体的には、データ取得部６１１は、データ量評価を行うための問合せ文の発行要求を、処理実行サーバを決定するジョブが入力データの読み出しを行うＤＢサーバと同一のクラウドサービスに属する処理実行サーバに送信する。そして、問合せ文の発行要求を受信した処理実行サーバは、ＤＢサーバに対して問合せ文を発行する。なお、ステップＳ８０３において処理実行サーバの処理負荷を閾値で判定することに加えて、所定のタイミングが到来しても設定された条件を満たすと判定されない場合はステップＳ８０４の処理を実行するという追加の設定がされていても良い。この追加の設定は、処理実行サーバの処理負荷が閾値を上回り続けることにより、ステップS８０４の処理がジョブの実行開始までに実行されないことを防止するための設定である。所定の時間は、例えば、入力データのデータ量を得る（算出する）ために要する処理時間等を、ジョブの実行開始タイミングから逆算して決定することとしても良い。
【００８２】
図９は、問合せ文の一例を示す図である。図９の問合せ文９０１、９０２はともにＳＥＬＥＣＴ文である。
【００８３】
問合せ文９０１は、テーブル名が「ｔａｂｌｅ＿Ａ−２」のデータテーブルからデータ列名「ｃｌｕｍｎ＿１」のデータ列のデータの値が「ＸＸＸ」であるレコードを指定する問い合わせ文である。ここで、「ｔａｂｌｅ＿Ａ−２」はデータテーブルＡ−２のデータテーブル名であるとする。すなわち、問合せ文９０１はデータテーブルＡ−２のデータを指定する問い合わせ文である。問合せ文９０２は、テーブル名が「ｔａｂｌｅ＿Ｂ−２」のデータテーブルからデータ列名「ｃｌｕｍｎ＿２」のデータ列のデータの値が「ＹＹＹ」以上であるレコードを指定する問い合わせ文である。ここで、「ｔａｂｌｅ＿Ｂ−２」はデータテーブルＢ−２のデータテーブル名であるとする。すなわち、問合せ文９０１はデータテーブルＢ−２のデータを指定する問い合わせ文である。
【００８４】
ジョブ実行時のデータ入力の際に発行される問合せ文は、例えば、ジョブの実行に伴い発行されるＳＱＬの問合せ文についてのログ情報（トレースログ）から取得することができる。トレースログは、例えば、ジョブの実行時に、ＤＢＭＳに備えられるログ出力機能（ＳＱＬトレース機能などと呼ばれる）を有効化することにより取得することができ、トレースログ記憶部６２６に記憶される。データ取得部６１１は、データ取得部６１１は、Ｊｏｂ−ＥＥのジョブに対するデータ入力の際に発行された問合せ文のトレースログから、発行された問合せ文を特定し、特定した問合せ文をステップＳ８０４において発行することで、ステップＳ８０４の時点での入力データやトレースログを取得することができる。
【００８５】
図８の説明に戻る。データ取得部６１１は、ＳＥＬＥＣＴ文を発行した結果抽出されたデータのレコード数を取得して、取得したレコード数を入力データ管理情報記憶部６２３に記憶する（ステップＳ８０５）。データ取得部６１１は、例えば、トレースログを参照して、抽出されたデータのレコード数を取得することができる。トレースログには、例えば、問合せ文を発行した結果、データベースで入出力が行われたレコードの件数を示す情報が含まれる。
【００８６】
ここで、図７に示すように、各ジョブの入力データについては、データサイズ（１レコードあたり）６２３３として、レコード１件分のデータサイズが入力データ管理情報記憶部６２３に記憶されている。したがって、データ取得部６１１は、レコード１件分のデータサイズに抽出されたデータのレコード数を乗算することで、入力データのデータ量を算出することができる。データ取得部６１１は、算出されたデータ量を入力データ管理情報記憶部６２３に記憶する。
【００８７】
前述のように、設定された条件の一例は、処理実行サーバの処理負荷が予め設定した基準値以下であることである。問合せ文の宛先となる処理実行サーバの処理負荷が低いタイミングで問合せ文を送信することで、処理実行サーバの処理への影響を低減し、データ量評価の処理を実行した場合でも、実行されている他のジョブの実行遅延が低減される。
【００８８】
ステップＳ８０６において、実行サーバ決定部６１２は、入力データ管理情報記憶部６２３に記憶された情報に基づいて、ジョブを実行する処理実行サーバを決定する。具体的には、例えば、データ取得部６１１は、入力データに対応するデータテーブルを含むデータベースが稼動するクラウドサービスのうち、入力データのデータ量が最も多いクラウドサービスが備える処理実行サーバを、ジョブを処理するサーバとして決定する。
【００８９】
Ｊｏｂ−ＥＥのジョブを例として説明する。図７より、入力データであるデータテーブルＡ−２のデータ量は８０ＭＢであり、もう1つの入力データであるデータテーブルＢ−２のデータ量は４２０ＭＢである。すなわち、データテーブルＢ−２のデータ量がデータテーブルＡ−２のデータ量よりも大きい。したがって、実行サーバ決定部６１２は、入力データのデータ量の評価の結果、Ｊｏｂ−ＥＥのジョブをクラウドサービス＃Ｂが備える処理実行サーバで実行することを決定する。
【００９０】
実行サーバ決定部６１２は、ステップＳ８０６での決定結果に従って、ジョブ定義情報記憶部６２１に記憶された実行サーバ情報６２１４を更新する（ステップＳ８０７）。
【００９１】
以上の処理により、図５に示すように、Ｊｏｂ−ＥＥのジョブについての処理実行サーバが決定される。ステップＳ８０６とステップＳ８０７の処理の結果、Ｊｏｂ−ＥＥのジョブは、入力データのデータ量が最も大きい、クラウドサービス＃Ｂが備える処理実行サーバ（ｈｏｓｔＢ１の処理実行サーバ）で実行されるように実行サーバ情報６２１４が更新される。したがって、クラウドサービス間のデータの転送を考慮して、ジョブに対する処理実行サーバの適正化を図ることができる。
【００９２】
〔稼動履歴情報〕
図１０は稼動履歴情報記憶部６２４に記憶される情報の一例を示す図である。稼動履歴情報記憶部６２４に記憶される情報は、ジョブの実行ログに相当する情報である。稼動履歴情報記憶部６２４は、例えば図１０に示すように、ジョブ名６２４１、開始時刻６２４２、終了時刻６２４３、状態情報６２４４を記憶する。
【００９３】
ジョブ名６２４１は、制御対象の複数のジョブそれぞれを識別可能とする情報である。ジョブ名６２４１は、例えば、図５で示したジョブ名６２１１と同様の態様であっても良い。
【００９４】
開始時刻６２４２は、各ジョブが実際に実行された時刻を示す情報である。なお、実際のシステム運用においては、ジョブの実行開始が、定義された起動時刻や、予め特定した起動予定時刻に対して前後することがある。そのため、開始時刻６２４２は、図５の起動時刻６２１２や図６の起動予定時刻６２２２と異なる場合がある。
【００９５】
終了時刻６２４３は、ジョブが実行終了した時刻を示す情報である。
【００９６】
状態情報６２４４は、ジョブが実行終了した際の状態（ステータス）を示す情報である。例えば、図１０に示すように、状態情報６２４４の値が「正常終了」となった場合は、ジョブが正常に動作して終了したことを示す。なお、図１０の態様の他に、稼動履歴情報記憶部６２４が、例えば、ジョブを実行した際の戻り値などの情報を記憶することで、ジョブが実行終了した際の状態を特定できるようにしても良い。なお、ジョブの戻り値とは、ジョブが処理を終了した際に、処理の結果として呼び出し元（制御装置６０）に送信するデータであり、ジョブが正常に終了したか否かといった、ジョブが実行終了した際の状態を示す情報を含む。そこで、稼動履歴情報記憶部６２４には、状態情報６２４４に代えてジョブの戻り値が記憶されることとしても良いし、ジョブの戻り値に基づいて、状態情報６２４４の値が導出されることとしても良い。また、稼動履歴情報記憶部６２４に状態情報６２４４とジョブの戻り値の双方が記憶されることとしても良い。
【００９７】
図１０に示す種々の情報は、例えば、図１に示した処理実行サーバのそれぞれでジョブが実行されることに応じて、稼動履歴情報記憶部６２４に記憶される。例えば、開始時刻６２４２に記憶される時刻は、制御装置６０が、ジョブの実行開始要求を、ジョブを実行する処理実行サーバに送信した時刻であっても良い。また、ジョブの実行開始要求を受信した処理実行サーバが、制御装置６０に対して、ジョブの実行開始を通知する応答を送信する場合、開始時刻６２４２に記憶される時刻は、制御装置６０が応答を受信した時刻や、応答に含まれるジョブの実行開始時刻などでも良い。
【００９８】
また例えば、終了時刻６２４３に記憶される時刻は、制御装置６０が、ジョブの実行終了に伴う応答を、ジョブを実行した処理実行サーバから受信した時刻であっても良い。また、終了時刻６２４３に記憶される時刻は、処理実行サーバジョブの実行終了を通知する応答を制御装置６０に送信した時刻であっても良いし、応答の中に含まれるジョブの実行終了時刻であっても良い。
【００９９】
〔ステップＳ８０２の説明〕
図８に示したステップＳ８０２の処理において、データ取得部６１１は、例えば、稼動履歴情報記憶部６２４を参照することで、各ジョブの実行状況を監視することができる。例えば、データ取得部６１１は、前述の監視対象ジョブについての、終了時刻６２４３と状態情報６２４４とが稼動履歴情報記憶部６２４に記憶されたことを検知した場合、監視対象ジョブが終了したと判定することとしても良い。そして、前述のステップＳ８０２の処理で説明したように、監視対象ジョブの全てについて実行終了が検知された場合、データ取得部６１１は、ステップＳ８０３の処理を開始することとしても良い。
【０１００】
〔テスト運用時の処理〕
以上で説明したように、本実施例では、ジョブに対する入力データのデータ量を評価する際にも、評価のための処理負荷によるジョブの実行遅延が低減できるようにしている。
【０１０１】
ただし、ジョブの中には、本番運用に先立って処理実行サーバを決定可能なジョブも存在しうる。そこで、本番運用で実行されるジョブのうち、本番運用に先立って処理実行サーバを決定可能なジョブについては処理実行サーバを事前に決定しておくことが考えられる。一部のジョブについては本番運用に先立って処理実行サーバを決定しておくことで、本番運用の際に、データ量の評価、および処理実行サーバの決定が必要となるジョブの数を削減することができる。
【０１０２】
そして、本番運用の際に処理実行サーバの決定が必要なジョブの数を削減することで、本番運用におけるジョブの入出力データ量の評価、および処理実行サーバの決定の処理負荷をさらに低減することができる。以降の実施例では、本番運用に先立って実施されるテスト運用の結果に基づいて、処理実行サーバを決定する一連の処理について説明する。
【０１０３】
〔テスト運用時のデータ採取〕
図１１は、本実施例におけるテスト運用時の動作を説明するフローチャートである。本実施例では、本番運用に先立ってテスト運用を実行し、複数のジョブのそれぞれに関する情報を取得する。
【０１０４】
テスト運用が実行されると、まず、ステップＳ１１０１で、データ取得部６１１が、テスト運用が初回の実行であるか否かを判定する。テスト運用が初回の実行である初回であると判定された場合（ステップＳ１１０１、ＹＥＳ）、ステップＳ１１０２の処理が実行される。
【０１０５】
ステップＳ１１０２において、データ取得部６１１は、採取情報を取得する。そして、データ取得部６１１は、採取情報を採取情報記憶部６２５に保存する（ステップＳ１１０３）。採取情報の詳細は図１２を用いて説明する。
【０１０６】
〔採取情報〕
図１２は、本実施例の採取情報記憶部６２５に記憶されるデータの一例を示す図である。例えば、採取情報記憶部６２５は、図１２に示すように、ジョブ名６２５１、データテーブルＩＤ６２５２、アクセス種別６２５３、データ量変動フラグ６２５４、大小関係情報６２５５、を記憶する。
【０１０７】
ジョブ名６２５１は、制御対象の複数のジョブそれぞれを識別可能とする情報である。ジョブ名６２５１は、例えば、図５で示したジョブ名６２１１と同様の態様であっても良い。
【０１０８】
データテーブルＩＤ６２５２は、ジョブが実行される際にアクセスされるデータテーブルを特定するための情報である。例えば、図６で示したデータテーブルＩＤ６２２３と同様の態様であっても良い。データテーブルに対するアクセスが、データの入力と出力のどちらであるかは、アクセス種別６２５３の情報で示される。なお、アクセス種別６２５３は、例えば、図６で示したアクセス種別６２２４と同様の態様であっても良い。
【０１０９】
データ量変動フラグ６２５４は、ジョブ実行サーバがジョブを複数回、それぞれ異なるマスタデータで実行した際に、入力データのレコード数が変動するか否かを示す情報である。データ量変動フラグ６２５４については詳細を後述する。
【０１１０】
大小関係情報６２５５は、各ジョブについて、入力データのデータ量と出力データのデータ量とでどちらが大きいかを示す情報である。なお、入力データが複数のクラウドサービスから入力される場合、データ取得部６１１は、入力データ量が最大であるクラウドサービスからの入力データ量を出力データのデータ量と比較する。図６では、大小関係情報の値がＩＮＰＵＴの場合は入力データのデータ量が大きく、大小関係情報の値がＯＵＴＰＵＴの場合は出力データが大きいことを示している。
【０１１１】
図１２に示すデータの取得方法の一例について説明する。
【０１１２】
まず、データテーブルＩＤ６２５２、アクセス種別６２５３は、データ取得部６１１が、前述のトレースログを解析して取得することができる。
【０１１３】
トレースログには、発行した問合せ文の内容が含まれる。例えば、ＳＥＬＥＣＴ文は、指定されたデータテーブルからデータを取得する問合せ文である。データ取得部６１１は、あるデータテーブルを指定するＳＥＬＥＣＴ文が発行されている場合、指定されたデータテーブルを、ジョブの入力データが記憶されたデータテーブルであると判定する。また、例えば、ＵＰＤＡＴＥ文、ＩＮＳＥＲＴ文、ＤＥＬＥＴＥ文はそれぞれ、データテーブルに対するデータ（データの値）の更新、データの追加、データの削除を行うための問合せ文である。データ取得部６１１は、ＵＰＤＡＴＥ文、ＩＮＳＥＲＴ文、ＤＥＬＥＴＥ文のいずれかに、あるデータテーブルが指定されている場合、指定されたデータテーブルを、ジョブの出力データが記憶されたデータテーブルであると判定する。そして、データ取得部６１１は、問合せ文において指定されたデータテーブルのデータテーブルＩＤをデータテーブルＩＤ６２５２として、入力データ（ＩＮＰＵＴ）であるか出力データ（ＯＵＴＰＵＴ）であるかの判定結果をアクセス種別６２５３として、採取情報記憶部６２５に記憶する。
【０１１４】
入力データと出力データの大小関係は、例えば、データ取得部６１１が、データ入出力時のネットワークの通信データ量のモニタリング結果を取得し、モニタリング結果に示される入力データのデータ量と出力データのデータ量を比較することで特定できる。なお、
通信データ量のモニタリングについては、制御装置６０が実行することとしても良いし、通信データ量のモニタリング機能を有する他の情報処理装置（図示せず）からモニタリング結果を制御装置６０が取得することとしても良い。
【０１１５】
入力データのデータ量が変動すると、出力データのデータ量も変動する。ただし、データ量が変動した場合でも、ジョブについて定義された処理の内容が変更されない限り入力データと出力データの間の大小関係は変化しないことを利用して、データ取得部６１１は、入力データと出力データの間の大小関係を特定する。
【０１１６】
入力データのデータ量が出力データのデータ量よりも大きい場合、データ取得部６１１は、モニタリング対象のジョブのジョブ名６２５１に対応する大小関係情報６２５５の値としてＩＮＰＵＴを記憶する。入力データのデータ量が出力データのデータ量よりも小さい場合、データ取得部６１１は、モニタリング対象のジョブのジョブ名６２５１に対応する大小関係情報６２５５の値としてＯＵＴＰＵＴを記憶する。なお、後述するステップＳ１１０５の処理のために、データ取得部６１１は、モニタリング結果に示される入力データのデータ量と出力データのデータ量をメモリ等に保存しておく。
【０１１７】
ステップＳ１１０２、およびステップＳ１１０３の処理により、採取情報記憶部６２５には、図１２に示される採取情報のうち、データテーブルＩＤ６２５２、アクセス種別６２５３、大小関係情報６２５５が記憶されることとなる。
【０１１８】
ステップＳ１１０３を実行後、ステップＳ１１０４の処理が実行される。ステップＳ１１０４では、データ取得部６１１は、問合せ文において指定されたデータテーブルのデータテーブルＩＤをデータテーブルＩＤ６２２３として入力データ管理情報記憶部６２２に保存する。さらにデータ取得部６１１は、入力データ（ＩＮＰＵＴ）であるか出力データ（ＯＵＴＰＵＴ）であるかの判定結果をアクセス種別６２２４として、入力データ管理情報記憶部６２２に記憶する。ステップＳ１１０４の処理により、入力データ管理情報記憶部６２２には、図６に示すデータテーブルＩＤ６２２３とアクセス種別６２２４とが記憶されることとなる。
【０１１９】
ステップＳ１１０４の処理を行い、テスト運用が初回の場合の処理は終了する。
【０１２０】
一旦、ステップＳ１１０１の説明に戻り、２回目（または２回目以降）のテスト運用時の処理について説明する。なお、２回目のテスト運用は、後述するレコード数の変動有無の判定のために、クラウドサービス＃Ａ〜＃Ｃのデータベースのそれぞれについて、初回のテスト運用とは異なるマスタデータを適用して実行される。後述するテスト運用が初回の実行である初回であると判定された場合（ステップＳ１１０１、ＮＯ）、ステップＳ１１０５の処理が実行される。
【０１２１】
ステップＳ１１０５の説明の前に、データ量変動フラグ６２５４の詳細について説明する。データ量変動フラグ６２５４は、ジョブ実行サーバがジョブを複数回、それぞれ異なるマスタデータで実行した際に、入力データのレコード数、すなわちデータ量が変動するか否かを示す情報である。
【０１２２】
ここで、異なるマスタデータとは、例えば、ある日付におけるデータベースのデータと、同じデータベースの異なる日付（例えば翌日）のデータである。図６では、入力データのレコード数が変動する場合、データ量変動フラグの値はＯＮとなる。一方、入力データのレコード数が変動しない場合にはＯＦＦとなる。
【０１２３】
入力データのレコード数が変動しないデータとは、例えば人事系のシステムの従業員データなどである。これは、例えば、会社の従業員数は、（特定の節目を除いて）一日で大きく変動することがないことによるものである。一方、入力データのレコード数が変動するデータとは、例えば、１日ごとの売上げデータなどの、日によってレコード数の変動が予想されるデータである。
【０１２４】
データ取得部６１１は、入力データのレコード数の変動有無を、例えば、前述したデータ入出力時のネットワークの通信データ量のモニタリング結果に基づいて判定することができる。データ取得部６１１は、モニタリング結果（２回目のテスト運用時のモニタリング結果）から、入力データのデータ量を取得する。さらに、データ取得部６１１は、初回のテスト運用時に保存していた入力データのデータ量を参照する。そして、データ取得部６１１は、初回のテスト運用時の入力データ量と、２回目のテスト運用時の入力データ量とを比較し、データ量の変動有無を判定する。なお、入力データのレコード数の変動の有無については、例えば、変動するデータ量に所定の閾値を設定し、データ量の変動が閾値以上、またはそれを超えるか否かに基づいて判断することとしても良い。
【０１２５】
ステップＳ１１０６で、データ取得部６１１は、採取情報記憶部６２５に記憶された情報の更新を行う。具体的には、データ取得部６１１は、入力データのレコード数の変動の有無の判定結果を、データ量変動フラグ６２５４として採取情報記憶部６２５に記憶する。以上により、初回のテスト運用実行時に取得された情報も含めて、採取情報記憶部６２５には、図１２に示す種々の情報が採取情報として記憶されることとなる。
【０１２６】
また、前述したトレースログには、問合せ文を発行した結果、データベースで入出力が行われたレコードの件数を示す情報が含まれる。データ取得部６１１は、レコードの件数と、データ入出力時のネットワークの通信データ量のモニタリング結果を取得して、モニタリング結果に示されるデータ量と、トレースログに含まれるレコードの件数とに基づいて、データの入出力におけるレコード１件あたりのデータサイズを算出できる。
【０１２７】
データ取得部６１１は、取得した入力データのレコード数をレコード数６２３４として入力データ管理情報記憶部６２３に記憶する。また、データ取得部６１１は、算出した入力データのレコード１件あたりのデータサイズをデータサイズ（１レコードあたり）６２３３として入力データ管理情報記憶部６２３に記憶する。また、データ取得部６１１は、入力データのレコード１件あたりのデータサイズにレコード数を乗算した値を、入力データ量６２３５として入力データ管理情報記憶部６２３に記憶する。したがって、図７に示すような情報が入力データ管理情報６２３に記憶される。
【０１２８】
〔テスト運用時の処理実行サーバ決定処理〕
図１３は、テスト運用時に、各ジョブについて、ジョブを実行する処理実行サーバ（クラウドサービス）を決定する処理を説明するフローチャートである。
【０１２９】
まず、ステップＳ１３０１では、実行サーバ決定部６１２がいずれかのジョブを選択する。選択の順序については１つの態様には限定されず、最終的に制御対象の全てのジョブに対して、ジョブを実行する処理実行サーバが決定されるように選択されれば良い。
【０１３０】
次に、実行サーバ決定部６１２は、ステップＳ１３０１で選択されたジョブについて、複数のクラウドサービスに対してデータの入出力を実行するか否かを判定する（ステップＳ１３０２）。なお、以降では、説明の便宜上、ステップＳ１３０１で選択されたジョブを「選択ジョブ」と記載する。
【０１３１】
具体的には、実行サーバ決定部６１２は、テーブル更新情報記憶部６２２に記憶された、選択ジョブのジョブ名と関連付けられたデータテーブルＩＤ６２２３の値を参照する。このとき、選択ジョブのジョブ名と関連付けられたデータテーブルＩＤ６２２３の値は複数存在しうる。
【０１３２】
実行サーバ決定部６１２は、参照するデータテーブルＩＤ６２２３の値が複数であり、かつ、複数のクラウドサービスのデータテーブルを示す場合、選択ジョブは複数のクラウドサービスに対してデータの入出力を実行するジョブであると判定する。例えば、図６の場合では、Ｊｏｂ−ＣＣのジョブは、データテーブルＢ−１とデータテーブルＡ−４のデータが入力され、データテーブルＣ−１にデータが出力される。すなわち、Ｊｏｂ−ＣＣのジョブは、クラウドサービス＃Ａ、＃Ｂ、＃Ｃという、複数のクラウドサービスに対してデータの入出力を実行するジョブである。
【０１３３】
一方、例えば、図６において、Ｊｏｂ−ＡＡのジョブは、データテーブルＡ−１のデータが入力され、データテーブルＡ−２にデータが出力される。すなわち、Ｊｏｂ−ＡＡのジョブにおけるデータの入出力は、クラウドサービス＃Ａのみについて実行されることが分かる。したがって、Ｊｏｂ−ＡＡのジョブは、複数のクラウドサービスに対してデータの入出力を実行するジョブではない。
【０１３４】
選択ジョブが複数のクラウドサービスに対してデータの入出力を実行するジョブでないと判定された場合（ステップＳ１３０２、ＮＯ）、ステップＳ１３０５の処理が実行される。一方、選択ジョブが複数のクラウドサービスに対してデータの入出力を実行するジョブであると判定された場合（ステップＳ１３０２、ＹＥＳ）、ステップＳ１３０３の処理が実行される。
【０１３５】
ステップＳ１３０３では、実行サーバ決定部６１２が、選択ジョブについて、入力データと出力データのどちらのデータ量が多いかを判定する。例えば、実行サーバ決定部６１２は、採取情報記憶部６２５に記憶された、選択ジョブのジョブ名と関連付けられた大小関係情報６２５５の値に基づいて、入力データと出力データのどちらのデータ量が多いかを判定することができる。
【０１３６】
入力データのデータ量が出力データのデータ量より小さいと判定された場合（ステップＳ１３０３、ＮＯ）、ステップＳ１３０５の処理が実行される。一方、入力データのデータ量が出力データのデータ量より大きいと判定された場合（ステップＳ１３０３、ＹＥＳ）、ステップＳ１３０４の処理が実行される。
【０１３７】
ステップＳ１３０４では、実行サーバ決定部６１２が、選択ジョブの入力データのレコード数が変動するか否かを判定する。実行サーバ決定部６１２は、例えば、採取情報記憶部６２５に記憶された、選択ジョブのジョブ名と関連付けられたデータ量変動フラグ６２５４がＯＮであるか否かに基づいて、選択ジョブの入力データのレコード数が変動するか否かを判定することができる。例えば、図１２では、Ｊｏｂ−ＤＤのジョブは、入力データであるデータテーブルＢ−３とデータテーブルＣ−２について、データ量変動フラグはともにＯＦＦである。一方、例えば、ジョブ−ＥＥのジョブは、入力データであるデータテーブルＡ−２とデータテーブルＢ−２について、データ量変動フラグはともにＯＮである。
【０１３８】
選択ジョブのデータ量変動フラグがＯＮである場合（ステップＳ１３０４、ＹＥＳ）、実行サーバ決定部６１２は、ジョブ定義情報記憶部６２１に記憶される、選択ジョブについての対象フラグ６２１５をＯＮにして、ステップＳ１３０７の処理を実行する。なお、ステップＳ１３０４で選択ジョブのレコード変数フラグがＯＮである場合に対象フラグ６２１５をＯＮにするのは、選択ジョブにおいて、データ量が最大となる入力データが本番運用において変わりうるためである。対象フラグ６２１５をＯＮにすることで、実行サーバ決定部６１２は、選択ジョブの処理実行サーバが本番運用時に決定されるように設定する。
【０１３９】
一方、選択ジョブのデータ量変動フラグがＯＦＦである場合（ステップＳ１３０４、ＮＯ）、ステップＳ１３０５の処理が実行される。
【０１４０】
ステップＳ１３０５では、実行サーバ決定部６１２が、選択ジョブを実行する処理実行サーバ（クラウドサービス）を決定する。なお、実行サーバ決定部６１２は、処理実行サーバを決定した後、ジョブ定義情報記憶部６２１に記憶される、選択ジョブについての対象フラグ６２１５をＯＦＦにする。対象フラグ６２１５がＯＦＦとされるのは、選択ジョブの処理実行サーバをこのテスト運用で決定することができるためである。処理実行サーバは下記のルールに従って決定される。
ルール１：選択ジョブが複数のクラウドサービスに対してデータの入出力を実行するジョブでない場合（入出力するクラウドサービスが１つの場合）は、選択ジョブがデータの入出力を行うクラウドサービスの処理実行サーバが選択ジョブを実行する。
ルール２：選択ジョブにデータの入力を行うクラウドサービスが１つであり、データの出力を行うクラウドサービスと異なる場合は、データ量のより大きいクラウドサービス（入力側または出力側）の処理実行サーバが選択ジョブを実行する。
ルール３：選択ジョブにデータの入力を行うクラウドサービスが複数であり、選択ジョブにおける処理がデータのマージ処理である場合、選択ジョブがデータの出力を行うクラウドサービス処理実行サーバが選択ジョブを実行する。
ルール４：選択ジョブにデータの入力を行うクラウドサービスが複数であり、選択ジョブにおける処理がデータの集計処理である場合、データ量変動フラグがＯＦＦである場合、入力データ量の最も大きいクラウドサービスの処理実行サーバが選択ジョブを実行する。
ルール５：上記ルール４においてデータ量変動フラグがＯＮである場合、本番運用時の選択ジョブ実行の都度、動的に処理実行サーバが決定される。
【０１４１】
それぞれのルールの設定根拠について説明する。まず、ルール１について、データの入出力が１つのクラウドサービスで完結する場合には、データの入出力の発生するクラウドサービスの処理実行サーバでジョブを実行させることにより、データ転送時間の短縮を行うことができる。
【０１４２】
例えば図１２を参照すると、Ｊｏｂ−ＡＡのジョブにおけるデータの入出力は、クラウドサービス＃Ａのみについて実行される。したがって、例えば選択ジョブがＪｏｂ−ＡＡのジョブである場合、Ｊｏｂ−ＡＡのジョブはクラウドサービス＃Ａの処理実行サーバで実行されるように決定される。
【０１４３】
ルール２は、入力データのデータ量と出力データのデータ量とを比較し、よりデータ量の大きいクラウドサービスの処理実行サーバにジョブを実行させるものである。入力データと出力データのうち、よりデータ量の大きい側のデータ転送時間について短縮を図ることができる。
【０１４４】
例えば図１２を参照すると、Ｊｏｂ−ＢＢのジョブに対する入力データは、クラウドサービス＃Ａのデータベースに含まれるデータテーブルＡ−３である。また、Ｊｏｂ−ＢＢのジョブの出力データの出力先は、クラウドサービス＃Ｂのデータベースに含まれるデータテーブルＢ−２である。さらに、ジョブ名Ｊｏｂ−ＢＢについて、大小関係情報６２５５の値はＯＵＴＰＵＴとなっており、出力データのデータ量は入力データのデータ量よりも大きくなる。したがって、例えば選択ジョブがＪｏｂ−ＢＢのジョブである場合、Ｊｏｂ−ＢＢのジョブはクラウドサービス＃Ｂの処理実行サーバで実行されるように決定される。
【０１４５】
ルール３は、選択ジョブにおける処理がデータのマージ処理の場合のルールである。選択ジョブにデータの入力を行うクラウドサービスが複数である場合、選択ジョブにおいて実行される処理は、データのマージ処理かデータの集計処理のいずれかとなる。データのマージ処理とは、複数のデータベースそれぞれから読み出したレコードを統合して新たなレコードを生成する処理である（なお、集計処理についてはルール４の説明において後述する）。マージ処理において、入力データのそれぞれと、生成された新たなレコード、すなわち出力データとでデータ量を比較した場合、レコードのデータ列が多くなることなどにより、出力データは個々の入力データよりもデータ量が大きくなる。入力データのデータ量が変動しても、入力データと出力データの大小関係は変わらない。この場合、出力データの出力先となるクラウドサービスの処理実行サーバでジョブを実行することで、データ量が最も大きいデータ転送の転送時間の短縮を図る。
【０１４６】
例えば図１２を参照すると、Ｊｏｂ−ＣＣのジョブは、データテーブルＢ−１とデータテーブルＡ−４のデータが入力され、データテーブルＣ−１にデータが出力される。さらに、ジョブ名Ｊｏｂ−ＣＣについて、大小関係情報６２５５の値はＯＵＴＰＵＴとなっており、出力データのデータ量は入力データのデータ量よりも大きくなる。ここで、実行サーバ決定部６１２は、大小関係情報６２５５の値がＯＵＴＰＵＴであることから、Ｊｏｂ−ＣＣのジョブはマージ処理を実行するジョブと判定することができる。したがって、例えば選択ジョブがＪｏｂ−ＣＣのジョブである場合、ルール３に基づいて、Ｊｏｂ−ＣＣのジョブはクラウドサービス＃Ｃの処理実行サーバで実行されるように決定される。
【０１４７】
ルール４は、選択ジョブにおける処理が、上述したデータの集計処理の場合のルールである。集計処理は、例えば、日毎や月毎の受注データ等を集計し、集計結果のデータを生成する処理である。集計処理において、入力データのそれぞれと、生成された新たなレコード、すなわち出力データとでデータ量を比較した場合、データの集計によりレコード数が減少することなどにより、出力データは個々の入力データよりもデータ量が小さくなる。入力データのデータ量が変動しても、入力データと出力データの大小関係は変わらない。この場合、入力データのうち、データ量が最も大きい入力データの入力元となるクラウドサービスの処理実行サーバでジョブを実行することで、データ量が最も大きいデータ転送の転送時間の短縮を図る。なお、ルール４のケースでは、入力データのデータ量は変動しないので、本番運用に先立ってデータ量が最も大きい入力データの入力元となるクラウドサービスを特定しておくことができる。
【０１４８】
例えば図１２を参照すると、Ｊｏｂ−ＤＤのジョブは、データテーブルＢ−３とデータテーブルＣ−２のデータが入力され、データテーブルＡ−２にデータが出力される。ジョブ名Ｊｏｂ−ＤＤについて、大小関係情報６２５５の値はＩＮＰＵＴとなっており、入力データのデータ量は出力データのデータ量よりも大きくなる。ここで、実行サーバ決定部６１２は、大小関係情報６２５５の値がＩＮＰＵＴであることから、Ｊｏｂ−ＣＣのジョブは集計処理を実行するジョブと判定することができる。さらに、図７に示した入力データ管理情報記憶部６２３に記憶された情報を参照すると、データテーブルＢ−３のデータとデータテーブルＣ−２のデータはともに、データ量変動フラグ６２５４の値はＯＦＦであり、データ量の変動がないデータである。データテーブルＢ−３のデータ量は１２０ＭＢであり、データテーブルＣ−２のデータ量は２５０である。すなわち、データテーブルＣ−２のデータ量がデータテーブルＢ−３のデータ量よりも大きい。したがって、例えば選択ジョブがＪｏｂ−ＤＤのジョブである場合、ルール４に基づいて、Ｊｏｂ−ＤＤのジョブはクラウドサービス＃Ｃの処理実行サーバで実行されるように決定される。
【０１４９】
ルール５の場合は、図８を用いて説明した本番運用時の処理により、処理実行サーバが決定される。
【０１５０】
例えば図１２を参照すると、Ｊｏｂ−ＥＥのジョブは、データテーブルＡ−２とデータテーブルＢ−２のデータが入力され、データテーブルＣ−３にデータが出力される。ジョブ名Ｊｏｂ−ＥＥについて、大小関係情報６２５５の値はＩＮＰＵＴとなっており、入力データのデータ量は出力データのデータ量よりも大きくなる。さらに、図７に示した入力データ管理情報記憶部６２３に記憶された情報を参照すると、データテーブルＡ−２のデータとデータテーブルＢ−２のデータはともに、データ量変動フラグ６２５４の値はＯＮであり、データ量の変動があるデータである。したがって、Ｊｏｂ−ＥＥのジョブについて、入力データ量の最も大きいクラウドサービスは変わりうるので、前述の通り、Ｊｏｂ−ＥＥのジョブを実行する処理実行サーバは、図８に示した本番運用時の処理により決定される。
【０１５１】
以上のように、ルール１〜ルール４のいずれかに該当するジョブについては、実行サーバ決定部６１２が、本番運用に先立って処理実行サーバを決めておくことができる。
【０１５２】
図１３の説明に戻る。ステップＳ１３０５の処理で選択ジョブを実行する処理実行サーバが決定された後、実行サーバ決定部６１２は、選択ジョブについて決定した処理実行サーバを示す情報をジョブ定義情報記憶部６２１に記憶する（ステップＳ１３０６）。ステップＳ１３０６の処理実行後、ステップＳ１３０７の処理が実行される。
【０１５３】
ステップＳ１３０７では、実行サーバ決定部６１２は、全てのジョブについて処理実行サーバが決定されたか否かを判定する。言い換えれば、実行サーバ決定部６１２は、ステップＳ１３０１において未選択のジョブがあるか否かを判定する。未選択のジョブがある場合（ステップＳ１３０７、ＮＯ）、実行サーバ決定部６１２は、ステップＳ１３０１に戻り、未選択のジョブのいずれかを選択して、選択したジョブについてステップＳ１３０２以降の処理を繰り返す。未選択のジョブがない場合（ステップＳ１３０７、ＹＥＳ）、実行サーバ決定部６１２は、図１３に示す一連の処理を終了する。
【０１５４】
以上の処理により、本番運用時に実行されるジョブの一部については、本番運用に先立って、ジョブを実行する処理実行サーバを決定しておくことができる。したがって、本番運用時には、テスト運用の結果から処理実行サーバを決定できなかったジョブ、いわゆる上述したルール５に該当するジョブについてのみ、実行サーバ決定部６１２が処理実行サーバの決定を行えば良い。これにより、本番運用時の入出力データの評価、および処理実行サーバの決定に要する処理負荷を低減することができる。
【０１５５】
例えば本実施例の場合（図１２の状況）では、Ｊｏｂ−ＡＡ、Ｊｏｂ−ＢＢ、Ｊｏｂ−ＣＣ、Ｊｏｂ−ＤＤについては、本番運用に先立って、図１０の実行サーバ情報６２１４に示されるように、ジョブを実行する処理実行サーバを決定しておくことができる。そして、本番運用の際には、Ｊｏｂ−ＥＥのジョブについて、処理実行サーバを決定する処理を行えば良い。したがって、本番運用の際に処理実行サーバの決定が必要なジョブの数を削減され、本番運用におけるジョブの入出力データ量の評価、および処理実行サーバの決定の処理負荷を低減することができる。
【０１５６】
〔本番運用〕
これまでの説明を踏まえ、再度、本番運用時の処理について説明する。
【０１５７】
図１４は、制御装置６０が実行する本番運用時の処理のフローチャートである。なお、図１４に示す一連の処理は、制御対象の各ジョブについて実行される。
【０１５８】
制御装置６０は、クラウドサービス＃Ａ〜＃Ｃのそれぞれで稼動している情報処理システムにおけるオンライン業務の締め時間の到来を検知する（ステップＳ１４０１）。言い換えれば、本番運用時は、クラウドサービス＃Ａ〜＃Ｃのそれぞれで稼動している情報処理システムにおけるオンライン業務の締め時間が到来した後に開始される。クラウドサービス＃Ａ〜＃Ｃのそれぞれでは、オンライン業務が実行されることとする。
【０１５９】
ここで本実施例におけるオンライン業務と締め時間について説明すると、オンライン業務では、処理に応じてデータベースに記憶されるデータを逐次更新する態様のリアルタイム処理が行われる。リアルタイム処理により、データベースに記憶されたデータ、すなわち、各ジョブに対する入力データとなりうるデータには更新が発生する。ただし、オンライン業務には締め時間が設定されており、締め時間以降は、各ジョブの処理で参照されるデータベースに記憶されたデータの更新は行われない。一例として日毎のオンライン業務を例に挙げると、リアルタイム処理の受付け可能時間が午前８時から午後５時である場合、締め時間は午後５時となり、以降はリアルタイム処理によるデータベースに記憶されたデータの更新は翌日の午前８時まで行われない。または、処理の要求は常時受け付けるが、締め時間である午後５時以降に受け付けた要求に応じた処理は、翌日の午前８時以降に行われる対応でも良い。本実施例の説明においては、オンライン業務の締め時間は午後５時に設定されていることとし、図５に示すように、各ジョブはいずれも午後５時以降に処理が行われることとする。したがって、各ジョブの実行を締め時間以降に処理実行サーバが実行するようにすることで、リアルタイム処理によるデータの更新の影響については排除することができる。
【０１６０】
オンライン業務の締め時間が到来した後、制御装置６０は、ジョブ定義情報記憶部６２１に定義情報が記憶されている各ジョブについて、テスト運用時に処理実行サーバが決定済みであるか否かを判定する（ステップＳ１４０１）。例えば、制御装置６０は、ジョブ定義情報記憶部６２１に記憶された、各ジョブのジョブ名６２１１に対応する対象フラグ６２１５の値を参照して、処理実行サーバが決定済みであるか否かを判定することができる。各ジョブのジョブ名６２１１に対応する対象フラグ６２１５の値がＯＦＦであれば処理実行サーバは決定済み（テスト運用時の決定結果を適用）であり、対象フラグ６２１５の値がＯＮであれば処理実行サーバは未確定である。
【０１６１】
ステップＳ１４０２においてテスト運用時に処理実行サーバが決定済みであると判定された場合、制御装置６０はステップＳ１４０４の処理を実行する。一方、ステップＳ１４０２においてテスト運用時に処理実行サーバが未決定であると判定された場合、制御装置６０はステップＳ１４０３の処理を実行する。
【０１６２】
ステップＳ１４０３では、制御装置６０が、処理実行サーバが未決定であるジョブについて、ジョブを実行する処理実行サーバを決定する。このステップＳ１４０３の処理は、図８を用いて説明した、処理実行サーバの決定処理である。ステップＳ１４０３の処理を実行後、制御装置６０はステップＳ１４０４の処理を実行する。
【０１６３】
ステップＳ１４０４において、制御装置６０は、ジョブ定義情報記憶部６２１に記憶された情報に基づいて、ジョブを実行する。ここで、ジョブ定義情報記憶部６２１には、テスト運用時またはステップＳ１４０３の処理により決定された処理実行サーバの識別情報が記憶されている。したがって、制御装置６０は、実行しようとするジョブのジョブ名６２１１と対応付けてジョブ定義情報記憶部６２１に記憶された実行サーバ情報６２１４に示される処理実行サーバに、ジョブの実行要求を送信する。そして、要求を受信した処理実行サーバがジョブを実行することとなる。
【０１６４】
ジョブの実行終了後、制御装置６０は、実行したジョブについて、次回起動日時を決定する（ステップＳ１４０５）。図５において各ジョブは、日毎に起動時刻６２２２に示されるスケジュールにより実行される想定であるが、ステップＳ１４０５の処理は日によって実行の有無や、スケジューリングされる起動時刻が変動するジョブが存在する場合のための考慮である。
【０１６５】
ステップＳ１４０５の実行後、制御装置６０は図１４に示す一連の処理を終了し、図１４に示す一連の処理は、再度（例えば翌日）オンライン業務の締め時間が到来した場合に実行される。
【０１６６】
〔ハードウェア構成〕
図１５は、本実施例におけるクライアント装置１のハードウェア構成の一例である。なお、図１５では、クライアント装置１のハードウェア構成の一例を示すが、後述のように、処理実行サーバ、ＤＢサーバ、制御装置６０についても同様の構成が採用可能である。
【０１６７】
クライアント装置１は、例えば、それぞれがバス１５０１で相互に接続された、ＣＰＵ１５０２、メモリ１５０３、記憶装置１５０４、ＮＩＣ１５０５、媒体読取装置１５０６、入力装置１５０７、表示装置１５０８、を備える情報処理装置である。
【０１６８】
ＣＰＵ１５０２は、端末装置１における種々の動作制御を行う。メモリ１５０３、記憶装置１５０４は、本実施例で説明した各種の処理を実行するプログラムや、各種の処理に利用される種々のデータを記憶する。記憶装置１５０４は、例えば、ＨＤＤや、ＳＳＤ等の記憶媒体である。
【０１６９】
ＣＰＵ１５０２は、メモリ１５０３あるいは記憶装置１５０４に記憶されたプログラムを読み出して処理、制御を実行することで、図３に示す制御部２００および制御部２００に含まれる各機能部が実現されても良い。また、メモリ１５０３、記憶装置１５０４のそれぞれは、図３に記載した記憶部３００として機能することができる。
【０１７０】
ＮＩＣ１５０５は、有線または無線のネットワークを介したデータの送受信に用いられるハードウェアである。ＮＩＣ１５０５は、ＣＰＵ１５０２の制御の下で、通信部１０４として機能することができる。
【０１７１】
媒体読取装置１５０６は、記録媒体からデータを読み取るための装置であり、例えば、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のディスク媒体に記憶されたデータを読み取るディスクドライブや、メモリカードに記憶されたデータを読み取るカードスロット等である。前述した記憶部３００に記憶されるデータの一部または全部は、媒体読取装置１５０６を用いて読み取り可能な記録媒体に記憶されることとしても良い。
【０１７２】
入力装置１５０７は、端末装置１のユーザからの入力や指定を受け付ける装置である。入力装置１５０７の例としては、例えばキーボードやマウス、タッチパッドが挙げられる。表示装置１５０８は、ＣＰＵ１５０２の制御の下で、種々の情報の表示を行う。表示装置１５０８は、例えば液晶ディスプレイである。なお、クライアント装置１が、例えばスマートフォンやＰＤＡ、タブレットＰＣである場合には、入力装置１５０７の機能と表示装置１５０８の機能とを備えるタッチパネルを用いることとしても良い。
【０１７３】
本実施例の処理実行サーバ、ＤＢサーバ、制御装置６０については、図１５と同様のハードウェア構成のコンピュータを用いることが可能であるため、説明を省略する。ただし、ＣＰＵ、メモリ、記憶装置、ＮＩＣ、媒体読取装置、入力装置、出力装置の具体的なハードウェア（型式や性能等）は、クライアント装置１、処理実行サーバ、ＤＢサーバ、制御装置６０のそれぞれで異なって構わない。例えば、処理実行サーバには、クライアント装置１よりも演算能力が高いＣＰＵ、より大容量のメモリが搭載されることとしても良い。また、ＤＢサーバには、記憶領域の確保のために、クライアント装置１や処理実行サーバよりも大容量の記憶装置が搭載される、あるいは、データを記憶可能なストレージシステムに接続されることとしても良い。
【符号の説明】
【０１７４】
１                クライアント装置
２、３、４        クラウド環境
５                ネットワーク
２０−１、２０−２、３０−１、３０−２、４０−１、４０−２  処理実行サーバ
２１、３１、４１  ＤＢサーバ
６０              制御装置
１５０１          バス
１５０２          ＣＰＵ
１５０３          メモリ
１５０４          記憶装置
１５０５          ＮＩＣ
１５０６          媒体読取装置
１５０７          入力装置
１５０８          表示装置
【図１】
0006686602.tif 000002
【図２】
0006686602.tif 000003
【図３】
0006686602.tif 000004
【図４】
0006686602.tif 000005
【図５】
0006686602.tif 000006
【図６】
0006686602.tif 000007
【図７】
0006686602.tif 000008
【図８】
0006686602.tif 000009
【図９】
0006686602.tif 000010
【図１０】
0006686602.tif 000011
【図１１】
0006686602.tif 000012
【図１２】
0006686602.tif 000013
【図１３】
0006686602.tif 000014
【図１４】
0006686602.tif 000015
【図１５】
0006686602.tif 000016