JP6686602B2 - 制御方法、制御プログラムおよび制御装置 - Google Patents

制御方法、制御プログラムおよび制御装置 Download PDF

Info

Publication number
JP6686602B2
JP6686602B2 JP2016060915A JP2016060915A JP6686602B2 JP 6686602 B2 JP6686602 B2 JP 6686602B2 JP 2016060915 A JP2016060915 A JP 2016060915A JP 2016060915 A JP2016060915 A JP 2016060915A JP 6686602 B2 JP6686602 B2 JP 6686602B2
Authority
JP
Japan
Prior art keywords
job
data
systems
processing
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016060915A
Other languages
English (en)
Other versions
JP2017174235A (ja
Inventor
大貴 吉川
大貴 吉川
雅広 福田
雅広 福田
正太郎 岡田
正太郎 岡田
清志 ▲高▼下
清志 ▲高▼下
崇 池▲崎▼
崇 池▲崎▼
雅志 加藤
雅志 加藤
栄一 樋口
栄一 樋口
純 池島
純 池島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016060915A priority Critical patent/JP6686602B2/ja
Priority to US15/464,878 priority patent/US10248458B2/en
Publication of JP2017174235A publication Critical patent/JP2017174235A/ja
Application granted granted Critical
Publication of JP6686602B2 publication Critical patent/JP6686602B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、制御方法、制御プログラムおよび制御装置に関する
システム運用者が複数の情報処理システムを運用している中で、情報処理システムの動作によってデータベースに記憶されるデータに対して、情報処理装置が処理を行い、処理結果をさらにデータベース等に記憶する処理が行われている。例えば、それぞれが業務システム、あるいは基幹系システムなどと呼ばれる複数の情報処理システムそれぞれに対してデータベース(Database、DB)が設けられる。製造業であれば、例えば、在庫管理システム、出荷管理システム、生産管理システムといった複数の基幹系システムを運用しており、それぞれについて、データベースが設けられる。
情報処理装置は、設定されたタイミング(日時)に、データベースからデータを一括して読み出し(データの入力)、読み出したデータを用いた処理を一括して実行して、実行の結果生成されたデータをデータベース、あるいは他の記憶部に一括して記憶する(データの出力)。このとき、データの入力として複数のデータベースからデータの読み出しが行われうる。以降では、上述したような、設定されたタイミングで一括して実行される、データ入出力およびデータに対する処理の実行を含む情報処理装置の処理を「ジョブ」と記載する。なお、このようなジョブは、データベースに対するバッチ処理と言い換えることも可能である。
ジョブは1つの情報処理システム内で完結する場合もあるが、複数の情報処理システム間で連携して(複数の情報処理システム間に跨って)行われる場合もある。例えば、在庫管理システムが備えるデータベースと出荷管理システムが備えるデータベースとからデータを読み出して処理し、処理結果を生産管理システムが備えるデータベースに記憶させるような場合、複数の情報処理システム間で連携してジョブが行われることになる。
特開平10−11406号公報
情報処理システムの運用、データの処理に用いられる情報処理装置(ハードウェア資源)は、一態様としては、システム利用者の所有する設備で賄われる(オンプレミス)。また、一態様としては、システム利用者が、データセンタ事業者による情報処理装置(情報処理資源)の提供サービス(クラウドサービスなどと呼ばれる)を利用する場合もある。
クラウドサービスを利用する場合には、複数の情報処理システムについて、それぞれ異なるクラウドサービスが利用されることも考えられる。複数の情報処理システムそれぞれで異なるクラウドサービスが利用される態様では、複数の情報処理システムのすべてがオンプレミス環境や単一のクラウドサービスで運用されている場合と比較すると、複数の情報処理システムが連携して行われるジョブを実行した際のデータの転送時間が長期化することが多い。例えば、いずれかのクラウドサービスが備える情報処理装置によりジョブが実行され、ジョブ実行の際に、データの入力として複数のデータベースからデータの読み出し、すなわちデータ転送が行われるとする。複数のデータベースがそれぞれ異なるクラウドサービスに配置されていると、ジョブを実行する情報処理装置と異なるクラウドサービスのデータベースからのデータ転送は、クラウドサービス間でのデータの転送となる。クラウドサービス間でのデータの転送は、オンプレミス環境内や単一のクラウドサービスのネットワーク内と比較して転送速度が低下する。
そのため、ジョブの実行に要する時間全体を、データに対する処理の時間と、データの入出力に要する時間とに分けた場合に、時間全体に対するデータの入出力に要する時間の割合が多くなる。つまり、データに対する処理の時間が短いとしても、データの入出力に要する時間が長くなることで、ジョブの実行に要する時間の長期化や、ジョブの実行遅延を招くおそれがある。
上記の問題に対する対策として、ジョブを実行する情報処理装置、すなわちジョブの実行に利用するクラウドサービスを状況に応じて選択することが考えられる。より具体的には、例えば、ジョブを実行した際のデータの入出力が最大となるクラウドサービスの情報処理装置でジョブを実行させることで、データの入出力時間を低減させることが考えられる。ジョブを実行する情報処理装置を決定するためには、ジョブの実行における入出力データのデータ量を、ジョブの実行前に確認(評価)しておくことが必要である。
しかしながら、ジョブの実行において参照されるデータは、各々の情報処理システムの運用の中で、例えば、先行する他のジョブの実行に伴い更新されうる。データの更新により、事前にデータ量を評価した時点と、ジョブを実行する時点では、データの状況(データ量)に乖離が生じる可能性がある。そのため、評価結果に基づいて決定した情報処理装置でのジョブの実行が、実行時点での最適解とはならないおそれがある。
一方、上述したデータ量の乖離を抑止するために、データ量の評価の頻度を高くすると、データ量の評価にも処理負荷が発生するために、そもそもの目的であるジョブの実行以外に多くの処理負荷を割くこととなってしまう。
1つの側面によれば、ジョブの実行時間短縮のためのデータ量の評価タイミングの適正化を図ることを目的とする。
1つの態様では、複数のシステムのうち、いずれかのシステムにジョブを実行させる制御を行なう制御装置における制御方法において、前記制御装置が、前記複数のシステムに関する過去のジョブの実行履歴を参照して、第1のジョブの実行開始タイミングに先行し、前記第1のジョブが参照するデータ格納領域に対する更なる更新処理が実行されない期間を特定し、前記複数のシステムの中から前記第1のジョブを実行させるシステムを選択する際に利用する、前記データ格納領域から前記第1のジョブが参照するデータ量の評価タイミングが、特定した前記期間に含まれるように制御する。
1つの側面によれば、ジョブの実行時間短縮のためのデータ量の評価タイミングの適正化を図ることができる。
本実施例におけるシステム構成の一例を示す。 クライアント装置1の機能ブロック図を示す。 クラウド環境の機能ブロック図を示す。 制御装置60の機能ブロック図を示す。 ジョブ定義情報記憶部621に記憶されるデータの一例を示す。 テーブル更新情報記憶部622に記憶される情報の一例を示す。 入力データ管理情報記憶部623が記憶するデータの一例を示す。 本実施例におけるデータ量評価処理、および評価結果に基づく処理実行サーバの決定処理を説明するフローチャートを示す。 問合せ文の一例を示す。 稼動履歴情報記憶部624に記憶される情報の一例を示す。 本実施例におけるテスト運用時の動作を説明するフローチャートを示す。 採取情報記憶部625に記憶されるデータの一例を示す。 テスト運用時の、処理実行サーバを決定する処理を説明するフローチャートを示す。 本番運用時の処理のフローチャートを示す。 本実施例におけるハードウェア構成の一例を示す。
本発明を実施する実施例について、図面とともに説明をする。
〔全体構成〕
図1は、本実施例におけるシステム構成の一例を示す図である。クライアント装置1は、ネットワーク5を経由して、クラウド環境2、3、4のそれぞれに接続可能である。クライアント装置1は、例えば、Personal Computer(PC)や、スマートフォン、Personal Digital Assistant(PDA)などのコンピュータである。システムの利用者、運用者は、クライアント装置1を用いて、後述する処理実行サーバ、DBサーバ、あるいは制御装置60にアクセスし、ジョブの実行を制御することができる。
クラウド環境2、3、4のそれぞれは、複数の情報処理装置を備えており、クラウド環境2、3、4のそれぞれが備える情報処理装置を用いたクラウドサービスが提供される。本実施例では、クラウド環境2において、クラウドサービス#Aが提供されている。また、クラウド環境3において、クラウドサービス#Bが提供されている。また、クラウド環境4において、クラウドサービス#Cが提供されている。
クラウド環境2、3、4のそれぞれは、情報処理システムの運用に用いられる情報処理装置を備える。例えば、クラウド環境2は、ジョブを実行する処理実行サーバ20−1、20−2と、データを格納するデータベースを動作させるためのDBサーバ21とを含む。また、クラウド環境3は、処理実行サーバ30−1、30−2と、DBサーバ31とを含む。また、クラウド環境4は、処理実行サーバ40−1、40−2と、DBサーバ41とを含む。処理実行サーバ、DBサーバのそれぞれは、例えばサーバ装置などのコンピュータである。なお、図1では、各クラウド環境について、2台の処理実行サーバと、1台のDBサーバを図示しているが、処理実行サーバ、DBサーバのそれぞれは、1台であっても、複数台であっても良い。
情報処理システムの運用者、利用者は、例えば、クライアント装置1を用いて、クラウド環境2にアクセスし、クラウドサービス#Aを利用することができる。例えば、クラウド環境2において、処理実行サーバ20−1、20−2と、DBサーバ21とを用いて、所望の情報処理システムを運用、利用することができる。また、DBサーバ21は、情報処理システムがアクセス可能な、Structured Query Language(SQL)をサポートするデータベースを起動し、データベースの制御を実行することが可能である。クラウドサービス#Aと同様に、情報処理システムの運用者、利用者は、クライアント装置1を用いて、クラウド環境3、4にアクセスし、クラウドサービス#B、#Cを利用して所望の情報処理システムやデータベースを運用、利用することもできる。
さらに、図1の態様では、クラウドサービス#Aは、制御装置60を含む。制御装置60は、クラウドサービス#A〜#Cにおけるジョブの実行を制御する情報処理装置である。なお、制御装置60は、クラウドサービス#A以外のクラウドサービスに配備されても良いし、クラウドサービス#A〜#C以外のオンプレミス環境に配備されていても良い。いずれの場合でも、制御装置60が、ネットワーク5を介して、クライアント装置1やクラウドサービス#A〜#Cに接続可能であれば、本実施例を実現することが可能である。また、本実施例では、1台の制御装置60がクラウドサービス#A〜#Cにおけるジョブの実行を制御する態様であるが、複数台の制御装置60でジョブの実行制御が行われることとしても良い。
〔クライアント装置〕
図2は、クライアント装置1の機能ブロック図である。
入力部101は、利用者からの操作入力を受け付ける。入力部101は、例えば、キーボードやマウス等のハードウェアを用いることができる。
表示部102は、例えば、液晶ディスプレイであり、ジョブの実行結果や、上述した情報処理システムのデータベースに記憶されたデータを表示することができる。
通信部103は、有線または無線で、他の情報処理装置との通信を実行する。通信部103は、例えば、クライアント装置1が備えるネットワークアダプタやNIC(Network Interface Controller)等の通信デバイスである。
記憶部104は、例えば、クライアント装置1が備える、メモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の記憶媒体を用いて実現される。記憶部104は、データベース等から取得した各種のデータを記憶することが可能である。
〔クラウドサービス〕
図3は、クラウド環境の機能ブロック図である。図3では、クラウド環境2について図示をしているが、クラウド環境3、4についても同様の構成であって構わない。
まず、処理実行サーバ20−1、20−2は、処理実行部201と、記憶部202と、通信部203とを備える。
処理実行部201は、制御装置60による制御に基づいて、ジョブを実行する。処理実行部201は、例えば、処理実行サーバであるサーバ装置が備えるプロセッサがプログラムを実行することにより実現される。ここで、プロセッサは、Central Processing Unit(CPU)やMicro Processing Unit(MPU)、Application Specific Integrated Circuit(ASIC)等のハードウェア回路の総称である。なお、プログラムは、記憶部202に記憶され、処理実行の際に読み出されることとしてもよいし、他の情報処理装置や記憶装置から受信することとしても良い。
記憶部202は、ハードウェアとしては、例えば、処理実行サーバであるサーバ装置が備える、メモリ、HDD、SSD等の記憶媒体である。記憶部202は、処理実行サーバがジョブの実行において取得、生成する種々のデータを記憶することができる。また、記憶部202は、上述のように、ジョブの実行に必要なプログラムを記憶することができる。
通信部203は、DBサーバ21、クライアント装置1、あるいは他のクラウドサービスが備える情報処理装置とのデータの送受信を実行する。通信部203は、例えば、処理実行サーバであるサーバ装置が備えるネットワークアダプタNIC等の通信デバイスである。
次に、DBサーバ21は、制御部211と、記憶部212と、通信部213とを備える。
制御部211は、記憶部212の記憶領域を用いて実現されるデータベースの制御を実行する。制御部211は、例えば、DBサーバであるサーバ装置が備えるプロセッサがプログラムを実行することにより実現される。プログラムは、DBサーバであるサーバ装置が備えるメモリや記憶装置等に格納され、処理実行の際に読み出されることとしてもよいし、他の情報処理装置や記憶装置から受信することとしても良い。
記憶部212は、データベースを実現するための記憶領域を有する。記憶部212は、ハードウェアとしては、例えば、DBサーバであるサーバ装置が備える、メモリ、HDD、SSD等の記憶媒体である。また、記憶部212は、DBサーバ21をデータベース制御システム(Database Management System、DBMS)として機能させるためのプログラムを記憶することができる。
通信部213は、処理実行サーバ20−1、20−2、クライアント装置1、あるいは他のクラウドサービスが備える情報処理装置とのデータの送受信を実行する。通信部202は、例えば、処理実行サーバであるサーバ装置が備えるネットワークアダプタやNIC等の通信デバイスである。
〔制御装置〕
図4は、制御装置60の機能ブロック図である。制御装置60は、入力部601、表示部602、通信部603を備える。また、制御装置60は、制御部610、記憶部620を備える。
入力部601は、利用者からの操作入力を受け付ける。入力部101は、例えば、キーボードやマウス等のハードウェアを用いることができる。
表示部602、例えば、液晶ディスプレイであり、ジョブの実行結果や、上述した情報処理システムのデータベースに記憶されたデータを出力することができる。なお、入力部601、表示部602について、クライアント装置1を用いて利用者が制御装置60の遠隔操作を行い、入力部101、表示部102で代替させることも可能である。
通信部603は、有線または無線で、他の情報処理装置との通信を実行する。通信部103は、例えば、制御装置60が備えるネットワークアダプタやNIC等の通信デバイスである。
制御部610は、データ取得部611と、実行サーバ決定部612と、実行制御部613と、スケジューリング部614と、を備える。例えば、DBサーバであるサーバ装置が備える、メモリ、HDD、SSD等の記憶媒体である。
データ取得部611は、本実施例において各ジョブを実行する処理実行サーバの決定に利用する情報の取得を実行する。
実行サーバ決定部612は、データ取得部611により取得された情報に基づいて、各ジョブを実行する処理実行サーバを決定する。
実行制御部613は、処理実行サーバによるジョブの実行を制御する。また、スケジューリング部614は、複数のジョブが実行される際の、各ジョブの実行開始タイミングや、実行順序を決定する。実行制御部613、スケジューリング部614は、ジョブ管理システムなどと呼ばれるソフトウェアの機能の一部である。
記憶部620は、ハードウェアとしては、例えば、処理実行サーバであるサーバ装置が備える、メモリ、HDD、SSD等の記憶媒体である。記憶部620は、クラウドサービス#A〜#Cで実行される各ジョブの制御に利用される情報を記憶する。記憶部620は、ジョブ定義情報記憶部621、テーブル更新情報記憶部622、入力データ管理情報記憶部623、稼動履歴情報記憶部624、採取情報記憶部625、トレースログ記憶部626を含む。記憶部620が含むそれぞれの記憶部については、詳細を後述する。また、記憶部620は、制御装置60が、後述する本実施例の各種の処理を行うためのプログラムを記憶することができる。
制御部610は、例えば、制御装置60である情報処理装置が備えるプロセッサが、記憶部620に記憶されたプログラムを実行することにより実現される。
〔ジョブ定義情報〕
図5は、本実施例のジョブ定義情報記憶部621に記憶されるデータの一例を示す図である。ジョブ定義情報記憶部621には、クラウドサービス#A〜#Cで実行される各ジョブについての定義情報が記憶される。例えば、ジョブ定義情報記憶部621は、図5に示すように、ジョブ名6211、起動時刻6212、ジョブ情報6213、実行サーバ情報6214、対象フラグ6215を記憶する。
ジョブ名6211は、制御対象の複数のジョブそれぞれを識別可能とする情報である。図5では、ジョブ名として、Job−AA〜Job−EEと記載しているが、ジョブ名6211の具体的なデータ形式は1つの態様には限定されず、各々のジョブが一意に識別可能な態様であれば、図5と異なる態様でも良い。
起動時刻6212は、ジョブが起動(実行開始)する時刻を示す情報である。なお、各ジョブの起動時刻は、例えば制御装置60のスケジューリング部614が実行する処理により、予め設定されているものとする。例えば、図5では、ジョブ名がJob−AAのジョブが、時刻17:30:00に実行されることが示されている。また、ジョブ名がJob−BBのジョブが、時刻19:00:00に実行されることが示されている。また、ジョブ名がJob−CCのジョブが、時刻21:00:00に実行されることが示されている。また、ジョブ名がJob−DDのジョブが、時刻22:30:00:00に実行されることが示されている。また、ジョブ名がJob−EEのジョブが、時刻0:00:00に実行されることが示されている。したがって、本実施例におけるジョブは、起動時刻6212に設定された時刻にバッチ処理を実行すると言うこともできる。
なお、図5において各ジョブは、日毎に起動時刻6212に示されるスケジュールにより実行される想定であるが、ジョブの中には、日によって実行の有無や、スケジューリングされる起動時刻が変動するジョブも存在する。日によって実行の有無や、スケジューリングされる起動時刻が変動するジョブが存在する場合は、例えば、ジョブを起動する日(曜日や日付など)と、各日の起動時刻とが定義されることとしても良い。
ジョブ情報6213は、図1に示したいずれかの処理実行サーバがジョブを実行する際に起動する実行ファイルを特定する情報である。ジョブ情報6213としては、例えば、制御装置60や処理実行サーバの記憶部における、実行ファイルの格納先のパスが記憶される。ジョブの実行ファイルは、ジョブを実行する際に、制御装置60から、ジョブを実行する処理実行サーバに送信されることとしても良い。また、ジョブを実行する処理実行サーバが決定されている場合は、ジョブの実行に先立って、ジョブを実行する処理実行サーバに送信され、ジョブを実行する処理実行サーバの記憶部に記憶されることとしても良い。
実行サーバ情報6214は、ジョブをどの処理実行サーバ(クラウドサービス)で実行させるかを示す情報である。後述の処理実行サーバを決定する処理により、ジョブに対して処理実行サーバが決定された場合、実行サーバ情報6214の値に、決定された処理実行サーバを特定する情報が記憶される。
例えば図5では、ジョブ名がJob−AAのジョブを、hostA1という処理実行サーバで実行することが示されている。本実施例では、図5に示すhostA1は、図1の処理実行サーバ20−1の識別子であることとする。また、図5においては図示されていないが、hostA2は処理実行サーバ20−2の識別子であることとする。
同様に、例えば、hostB1、hostB2は、それぞれ処理実行サーバ30−1、30−2の識別子であることとする。また、例えば、hostC1、hostC2は、それぞれ処理実行サーバ40−1、40−2の識別子であることとする。なお、上述した処理実行サーバの識別の態様は一例であり、各々の処理実行サーバが一意に識別可能な態様であれば、図5と異なる態様でも良い。
対象フラグ6215は、ジョブについて、ジョブを実行する処理実行サーバを本番運用で決定する対象であるか否かを示す情報である。対象フラグ6215の意義については詳細を後述するが、本実施例で説明するジョブには、本番運用で処理実行サーバを決定する必要があるジョブと、本番運用に先立って実行されるテスト運用で処理実行サーバが決定されるジョブとが存在する。ジョブについて、対象フラグ6215の値がOFFであれば、ジョブを実行する処理実行サーバがテスト運用で決定されたことを示す。また、対象フラグ6215の値がONであれば、本番運用で処理実行サーバを決定する必要があることを示す。
なお、図5の実行サーバ情報6214に示される処理実行サーバは、本実施例の処理実行サーバ決定処理を実行することで決定されるが、処理実行サーバ決定処理については、本実施例で後述する。
〔テーブル更新情報〕
図6は、テーブル更新情報記憶部622に記憶される情報の一例を示す図である。テーブル更新情報記憶部622は、例えば、図6に示すように、ジョブ名6221、起動予定時刻6222、データテーブルID(identifier)6223、アクセス種別6224、更新フラグ6225の情報を記憶する。
ジョブ名6221は、制御対象の複数のジョブそれぞれを識別可能とする情報である。ジョブ名6221は、例えば、図5で示したジョブ名6211と同様の態様であっても良い。
起動時刻6222は、ジョブが起動(実行開始)する時刻を示す情報であり、図5で示した起動時刻6212と同等の情報である。
データテーブルID6223は、各ジョブが実行された際にアクセスすることとなるデータベースのデータテーブルを識別する情報である。データテーブルに対するアクセスは2種類あり、1つはジョブに対するデータの入力であり、もう1つはジョブからのデータの出力である。データテーブルに対するアクセスが、データの入力と出力のどちらであるかは、アクセス種別6224の情報で示される。図6では、アクセス種別6224の値は、データテーブルに対するアクセスがデータの入力である場合は「INPUT」、データテーブルに対するアクセスがデータの入力である場合は「OUTPUT」となる。
更新フラグ6225は、ジョブの実行によってデータベースのデータテーブルにアクセスが発生した場合、データテーブルに含まれるデータに更新が発生するか否かを示す情報である。データの更新は、例えばデータテーブルに含まれるレコードデータの増減や、データ項目の値の更新などであり、データテーブルのデータサイズが変動する要因である。データテーブルに対するアクセスによってデータテーブルに含まれるデータに更新が発生する(データテーブルのデータサイズが変動しうる)場合、更新フラグ6225の値は「ON」となる。一方、データテーブルに対するアクセスによってデータテーブルに含まれるデータに更新が発生しない(データテーブルのデータサイズが変動しない)場合、更新フラグ6225の値は「OFF」となる。なお、更新フラグ6225は、データテーブルに含まれるデータに更新が発生するか否かを単純に示す情報ではなく、データテーブルに含まれるデータに、データ量の変動を伴う更新が発生するか否かを示す情報であっても良い。また、データ量の変動を伴う更新であるか否かは、更新前のデータ量と更新後のデータ量との差分の絶対値が、所定の閾値を超えるか否かによって決定されることとしても良い。
図6を例にして説明すると、例えば、ジョブ名がJob−AAのジョブが実行されると、データテーブルIDがA−1のデータテーブルと、データテーブルIDがA−2のデータテーブルとにアクセスが発生する。なお、以降の説明では、例えば、ジョブ名がJob−AAのジョブを「Job−AAのジョブ」、データテーブルIDがA−1のデータテーブルを「データテーブルA−1」と記載する場合がある。
データテーブルA−1のデータは、Job−AAのジョブに対する入力データ(ジョブ実行の際にジョブが参照するデータ)である。また、データテーブルA−2のデータテーブルには、ジョブが実行された結果、データが出力される。データの出力によって、データテーブルA−2のデータテーブルではデータの更新が発生するため、更新フラグ6225の値はONとなっている。なお、入力データを含むデータテーブルA−1は更新フラグ6225の値がOFFとなっているが、これは入力データについては、ジョブは参照を行うのみであり、データの更新が行われないためである。そのため、図6では、入力データ(アクセス種別6224の値がINPUTのデータ)については、一律で、更新フラグ6225の値がOFFとなっている。なお、上記の通り、入力データ(アクセス種別6224がINPUTのデータ)についてはデータの更新が行われないため、更新フラグ6225の値を省略することとしても良い。なお、図6ではJob−DDのジョブについて、アクセス種別6224がOUTPUTである、すなわち出力データであるデータテーブルA−2についても、更新フラグ6225はOFFとなっている。例えば、Job−DDのジョブがデータ更新を実行しない、または、データの更新を行った場合でも、データテーブルのデータサイズが変動しないジョブであるためである。
〔入力データ管理情報〕
図7に入力データ管理情報記憶部623が記憶するデータの一例を示す。入力データ管理情報記憶部623は、制御対象の各ジョブの入力データのデータサイズを特定するための情報を記憶する。入力データ管理情報記憶部623は、例えば、図7に示すように、ジョブ名6231、入力データテーブルID6232、データサイズ(1レコードあたり)6233、レコード数6234、入力データ量6235の情報を記憶する。
ジョブ名6231は、制御対象の複数のジョブそれぞれを識別可能とする情報である。ジョブ名6231は、例えば、図5で示したジョブ名6211と同様の態様であっても良い。
入力データテーブルID6232は、ジョブに対する入力データを含むデータテーブルを識別する情報である。なお、図7において各ジョブに対応する入力データテーブルID6232は、図6のデータテーブルID6223に含まれるデータテーブルIDのうち、アクセス種別6224がINPUTのデータテーブルIDである。
データサイズ(1レコードあたり)6233は、入力データのレコード1件あたりのデータサイズを示す情報である。図7では、データサイズの単位をキロバイト(KB)としているが、データサイズの単位は他の単位であっても良い。
レコード数6234は、ジョブ実行の際に入力データとして抽出されるレコードの件数を示す情報である。
入力データ量6235は、ジョブに対する入力データのデータサイズである。図7では、入力データ量の単位をメガバイト(MB)としているが、入力データ量の単位は他の単位であっても良い。
〔データ量の評価と処理実行サーバの決定〕
図8は、本実施例におけるデータ量評価処理、および評価結果に基づく処理実行サーバの決定処理を説明するフローチャートである。なお、本実施例において図8で説明する処理は、制御装置60によるジョブ実行管理の本番運用の際に実行されることとする。本実施例では、本番運用に先立って実施されるテスト運用の際にも、制御装置60が処理実行サーバ決定のための処理を実行するが、テスト運用時に実行される処理については後述する。
なお、以降の説明では、図8のフローチャートに示されるデータ量評価処理、および評価結果に基づく処理実行サーバの決定処理について、図5等に示すJob−EEのジョブを例にして説明する場合がある。
まず、ステップS801では、データ取得部611が、例えばテーブル更新情報記憶部622に記憶された情報を参照し、処理実行サーバを決定するジョブに先行して実行され、処理実行サーバを決定するジョブに対する入力データのデータ量が変動しうる更新処理を実行するジョブを特定する。そして、データ取得部611は、特定したジョブの実行が終了したか否かを監視する処理を開始する。以降の説明では、上述した処理実行サーバを決定するジョブに先行して実行され、処理実行サーバを決定するジョブに対する入力データのデータ量が変動しうる更新処理(データ出力)を実行するジョブを「監視対象ジョブ」と記載する。
監視対象ジョブは、処理実行サーバを決定するジョブ1つに対して、複数存在しうる。例えば、図6に示す情報を参照すると、Job−EEのジョブに対しては、データテーブルA−2とデータテーブルB−2が入力データとなる。データテーブルA−2はJob−AAのジョブ実行時のデータの出力先であり、出力データにおける更新フラグ6225の値はONである。また、データテーブルB−2はJob−BBのジョブ実行時のデータの出力先であり、出力データにおける更新フラグ6225の値はONである。したがって、監視対象ジョブは、Job−AAのジョブとJob−BBのジョブとなる。なお、データテーブルA−2はJob−DDのジョブ実行時のデータの出力先でもあるが、図5において、Job−DDのジョブが実行された際のデータテーブルA−2へのデータ出力について、更新フラグ6225の値はOFFである。Job−DDのジョブは、データ出力の際にデータテーブルに含まれるデータに更新が発生しない(データテーブルのデータサイズが変動しない)ため、監視対象ジョブとしなくて良い。
ステップS802において、データ取得部611は、ステップS801で特定された監視対象ジョブの動作状況を監視し、監視対象ジョブとして特定されたジョブの全てが終了したか否かを判定する。例えば、データ取得部611は、稼動履歴情報記憶部624に記憶される情報を参照して、監視対象ジョブが終了したか否かを判定することができる。監視対象ジョブが終了したか否かの判定処理については、稼動履歴情報記憶部624に記憶される情報の説明とともに、詳細を後述する。
監視対象ジョブの全てが終了していない場合(ステップS802、NO)、データ取得部611は、終了していない監視対象ジョブについて、引き続き監視処理を実行する。なお、監視対象ジョブの一部について実行の終了が判定された場合には、データ取得部611は実行終了と判定されたジョブについては監視処理を終了することとしても良い。
一方、監視対象ジョブの全てが終了した場合(ステップS802、YES)、ステップS803の処理が実行される。なお、監視対象ジョブの全てが終了したことにより、以降、処理実行サーバを決定するジョブに対する入力データのデータ量は変動しないこととなる。したがって、監視対象ジョブの全てが終了した後に、データ取得部611が、処理実行サーバを決定するジョブに対する入力データのデータ量評価を行うことで、ジョブ実行時と同等の評価結果を取得することができる。
ステップS803では、データ取得部611が、データ量の評価を行う際に問合せ文を発行させる処理実行サーバの処理負荷をモニタリングする。そして、処理実行サーバの処理負荷が、設定された条件を満たすか否かを判定する。
ここで、上述した問合せ文は、例えば、処理実行サーバを決定するジョブが入力データとして読み出すデータを記憶したデータテーブルを指定するSQLの問合せ文、例えばSELECT文である。
処理実行サーバの処理負荷を判定する条件は、一例では、処理実行サーバの処理負荷が予め設定した基準値以下であることである。例えば、処理実行サーバのCPU使用率や、通信帯域の使用率について閾値が設定され、使用率が閾値以下であるか否かに基づいて、データ取得部611が判定を行うこととしても良い。具体的な閾値は適宜変更可能であり、また、データ取得部611は、使用率が閾値以下であるか否かではなく、使用率が閾値未満であるか否かに基づいて決定することとしても良い。
処理実行サーバでは、ジョブの実行などに伴う処理負荷が発生している。例えば、図6を参照しながら説明すると、前述のとおり、Job−EEのジョブに対応する監視対象ジョブは、Job−AAのジョブとJob−BBのジョブである。そして、Job−AAのジョブとJob−BBのジョブの実行終了以降に入力データのデータ量評価を行うことで、ジョブ実行時と同等の評価結果を取得することができる。ただし、図6のように、Job−AAのジョブとJob−BBのジョブの実行予定時刻から、Job−EEのジョブの起動予定時刻の間には、Job−CCのジョブとJob−DDのジョブの実行が予定されている。Job−CCのジョブとJob−DDのジョブが実行されることでJob−EEのジョブの入力データとなるデータテーブルは更新されない(データ量は変動しない)。ただし、ジョブが実行されることにより、ジョブを実行した処理実行サーバでは処理負荷が発生する。したがって、例えば、Job−CCのジョブを実行する処理実行サーバとJob−DDのジョブを実行する処理実行サーバとには、ジョブの実行に伴う処理負荷が発生することとなる。なお、Job−CCのジョブを実行する処理実行サーバとJob−DDのジョブを実行する処理実行サーバが同じであることもあり得る。
図8の説明に戻る。ステップS803で、設定された条件を満たさないと判定された場合(ステップS803、NO)、データ取得部611は、ステップS803の処理を継続し、問合せ文の送信タイミングの待ち合わせを行う。
一方、ステップS803で、設定された条件を満たすと判定された場合(ステップS803、YES)、データ量評価を行うための問合せ文の発行処理を行う(ステップS804)。より具体的には、データ取得部611は、データ量評価を行うための問合せ文の発行要求を、処理実行サーバを決定するジョブが入力データの読み出しを行うDBサーバと同一のクラウドサービスに属する処理実行サーバに送信する。そして、問合せ文の発行要求を受信した処理実行サーバは、DBサーバに対して問合せ文を発行する。なお、ステップS803において処理実行サーバの処理負荷を閾値で判定することに加えて、所定のタイミングが到来しても設定された条件を満たすと判定されない場合はステップS804の処理を実行するという追加の設定がされていても良い。この追加の設定は、処理実行サーバの処理負荷が閾値を上回り続けることにより、ステップS804の処理がジョブの実行開始までに実行されないことを防止するための設定である。所定の時間は、例えば、入力データのデータ量を得る(算出する)ために要する処理時間等を、ジョブの実行開始タイミングから逆算して決定することとしても良い。
図9は、問合せ文の一例を示す図である。図9の問合せ文901、902はともにSELECT文である。
問合せ文901は、テーブル名が「table_A−2」のデータテーブルからデータ列名「clumn_1」のデータ列のデータの値が「XXX」であるレコードを指定する問い合わせ文である。ここで、「table_A−2」はデータテーブルA−2のデータテーブル名であるとする。すなわち、問合せ文901はデータテーブルA−2のデータを指定する問い合わせ文である。問合せ文902は、テーブル名が「table_B−2」のデータテーブルからデータ列名「clumn_2」のデータ列のデータの値が「YYY」以上であるレコードを指定する問い合わせ文である。ここで、「table_B−2」はデータテーブルB−2のデータテーブル名であるとする。すなわち、問合せ文901はデータテーブルB−2のデータを指定する問い合わせ文である。
ジョブ実行時のデータ入力の際に発行される問合せ文は、例えば、ジョブの実行に伴い発行されるSQLの問合せ文についてのログ情報(トレースログ)から取得することができる。トレースログは、例えば、ジョブの実行時に、DBMSに備えられるログ出力機能(SQLトレース機能などと呼ばれる)を有効化することにより取得することができ、トレースログ記憶部626に記憶される。データ取得部611は、データ取得部611は、Job−EEのジョブに対するデータ入力の際に発行された問合せ文のトレースログから、発行された問合せ文を特定し、特定した問合せ文をステップS804において発行することで、ステップS804の時点での入力データやトレースログを取得することができる。
図8の説明に戻る。データ取得部611は、SELECT文を発行した結果抽出されたデータのレコード数を取得して、取得したレコード数を入力データ管理情報記憶部623に記憶する(ステップS805)。データ取得部611は、例えば、トレースログを参照して、抽出されたデータのレコード数を取得することができる。トレースログには、例えば、問合せ文を発行した結果、データベースで入出力が行われたレコードの件数を示す情報が含まれる。
ここで、図7に示すように、各ジョブの入力データについては、データサイズ(1レコードあたり)6233として、レコード1件分のデータサイズが入力データ管理情報記憶部623に記憶されている。したがって、データ取得部611は、レコード1件分のデータサイズに抽出されたデータのレコード数を乗算することで、入力データのデータ量を算出することができる。データ取得部611は、算出されたデータ量を入力データ管理情報記憶部623に記憶する。
前述のように、設定された条件の一例は、処理実行サーバの処理負荷が予め設定した基準値以下であることである。問合せ文の宛先となる処理実行サーバの処理負荷が低いタイミングで問合せ文を送信することで、処理実行サーバの処理への影響を低減し、データ量評価の処理を実行した場合でも、実行されている他のジョブの実行遅延が低減される。
ステップS806において、実行サーバ決定部612は、入力データ管理情報記憶部623に記憶された情報に基づいて、ジョブを実行する処理実行サーバを決定する。具体的には、例えば、データ取得部611は、入力データに対応するデータテーブルを含むデータベースが稼動するクラウドサービスのうち、入力データのデータ量が最も多いクラウドサービスが備える処理実行サーバを、ジョブを処理するサーバとして決定する。
Job−EEのジョブを例として説明する。図7より、入力データであるデータテーブルA−2のデータ量は80MBであり、もう1つの入力データであるデータテーブルB−2のデータ量は420MBである。すなわち、データテーブルB−2のデータ量がデータテーブルA−2のデータ量よりも大きい。したがって、実行サーバ決定部612は、入力データのデータ量の評価の結果、Job−EEのジョブをクラウドサービス#Bが備える処理実行サーバで実行することを決定する。
実行サーバ決定部612は、ステップS806での決定結果に従って、ジョブ定義情報記憶部621に記憶された実行サーバ情報6214を更新する(ステップS807)。
以上の処理により、図5に示すように、Job−EEのジョブについての処理実行サーバが決定される。ステップS806とステップS807の処理の結果、Job−EEのジョブは、入力データのデータ量が最も大きい、クラウドサービス#Bが備える処理実行サーバ(hostB1の処理実行サーバ)で実行されるように実行サーバ情報6214が更新される。したがって、クラウドサービス間のデータの転送を考慮して、ジョブに対する処理実行サーバの適正化を図ることができる。
〔稼動履歴情報〕
図10は稼動履歴情報記憶部624に記憶される情報の一例を示す図である。稼動履歴情報記憶部624に記憶される情報は、ジョブの実行ログに相当する情報である。稼動履歴情報記憶部624は、例えば図10に示すように、ジョブ名6241、開始時刻6242、終了時刻6243、状態情報6244を記憶する。
ジョブ名6241は、制御対象の複数のジョブそれぞれを識別可能とする情報である。ジョブ名6241は、例えば、図5で示したジョブ名6211と同様の態様であっても良い。
開始時刻6242は、各ジョブが実際に実行された時刻を示す情報である。なお、実際のシステム運用においては、ジョブの実行開始が、定義された起動時刻や、予め特定した起動予定時刻に対して前後することがある。そのため、開始時刻6242は、図5の起動時刻6212や図6の起動予定時刻6222と異なる場合がある。
終了時刻6243は、ジョブが実行終了した時刻を示す情報である。
状態情報6244は、ジョブが実行終了した際の状態(ステータス)を示す情報である。例えば、図10に示すように、状態情報6244の値が「正常終了」となった場合は、ジョブが正常に動作して終了したことを示す。なお、図10の態様の他に、稼動履歴情報記憶部624が、例えば、ジョブを実行した際の戻り値などの情報を記憶することで、ジョブが実行終了した際の状態を特定できるようにしても良い。なお、ジョブの戻り値とは、ジョブが処理を終了した際に、処理の結果として呼び出し元(制御装置60)に送信するデータであり、ジョブが正常に終了したか否かといった、ジョブが実行終了した際の状態を示す情報を含む。そこで、稼動履歴情報記憶部624には、状態情報6244に代えてジョブの戻り値が記憶されることとしても良いし、ジョブの戻り値に基づいて、状態情報6244の値が導出されることとしても良い。また、稼動履歴情報記憶部624に状態情報6244とジョブの戻り値の双方が記憶されることとしても良い。
図10に示す種々の情報は、例えば、図1に示した処理実行サーバのそれぞれでジョブが実行されることに応じて、稼動履歴情報記憶部624に記憶される。例えば、開始時刻6242に記憶される時刻は、制御装置60が、ジョブの実行開始要求を、ジョブを実行する処理実行サーバに送信した時刻であっても良い。また、ジョブの実行開始要求を受信した処理実行サーバが、制御装置60に対して、ジョブの実行開始を通知する応答を送信する場合、開始時刻6242に記憶される時刻は、制御装置60が応答を受信した時刻や、応答に含まれるジョブの実行開始時刻などでも良い。
また例えば、終了時刻6243に記憶される時刻は、制御装置60が、ジョブの実行終了に伴う応答を、ジョブを実行した処理実行サーバから受信した時刻であっても良い。また、終了時刻6243に記憶される時刻は、処理実行サーバジョブの実行終了を通知する応答を制御装置60に送信した時刻であっても良いし、応答の中に含まれるジョブの実行終了時刻であっても良い。
〔ステップS802の説明〕
図8に示したステップS802の処理において、データ取得部611は、例えば、稼動履歴情報記憶部624を参照することで、各ジョブの実行状況を監視することができる。例えば、データ取得部611は、前述の監視対象ジョブについての、終了時刻6243と状態情報6244とが稼動履歴情報記憶部624に記憶されたことを検知した場合、監視対象ジョブが終了したと判定することとしても良い。そして、前述のステップS802の処理で説明したように、監視対象ジョブの全てについて実行終了が検知された場合、データ取得部611は、ステップS803の処理を開始することとしても良い。
〔テスト運用時の処理〕
以上で説明したように、本実施例では、ジョブに対する入力データのデータ量を評価する際にも、評価のための処理負荷によるジョブの実行遅延が低減できるようにしている。
ただし、ジョブの中には、本番運用に先立って処理実行サーバを決定可能なジョブも存在しうる。そこで、本番運用で実行されるジョブのうち、本番運用に先立って処理実行サーバを決定可能なジョブについては処理実行サーバを事前に決定しておくことが考えられる。一部のジョブについては本番運用に先立って処理実行サーバを決定しておくことで、本番運用の際に、データ量の評価、および処理実行サーバの決定が必要となるジョブの数を削減することができる。
そして、本番運用の際に処理実行サーバの決定が必要なジョブの数を削減することで、本番運用におけるジョブの入出力データ量の評価、および処理実行サーバの決定の処理負荷をさらに低減することができる。以降の実施例では、本番運用に先立って実施されるテスト運用の結果に基づいて、処理実行サーバを決定する一連の処理について説明する。
〔テスト運用時のデータ採取〕
図11は、本実施例におけるテスト運用時の動作を説明するフローチャートである。本実施例では、本番運用に先立ってテスト運用を実行し、複数のジョブのそれぞれに関する情報を取得する。
テスト運用が実行されると、まず、ステップS1101で、データ取得部611が、テスト運用が初回の実行であるか否かを判定する。テスト運用が初回の実行である初回であると判定された場合(ステップS1101、YES)、ステップS1102の処理が実行される。
ステップS1102において、データ取得部611は、採取情報を取得する。そして、データ取得部611は、採取情報を採取情報記憶部625に保存する(ステップS1103)。採取情報の詳細は図12を用いて説明する。
〔採取情報〕
図12は、本実施例の採取情報記憶部625に記憶されるデータの一例を示す図である。例えば、採取情報記憶部625は、図12に示すように、ジョブ名6251、データテーブルID6252、アクセス種別6253、データ量変動フラグ6254、大小関係情報6255、を記憶する。
ジョブ名6251は、制御対象の複数のジョブそれぞれを識別可能とする情報である。ジョブ名6251は、例えば、図5で示したジョブ名6211と同様の態様であっても良い。
データテーブルID6252は、ジョブが実行される際にアクセスされるデータテーブルを特定するための情報である。例えば、図6で示したデータテーブルID6223と同様の態様であっても良い。データテーブルに対するアクセスが、データの入力と出力のどちらであるかは、アクセス種別6253の情報で示される。なお、アクセス種別6253は、例えば、図6で示したアクセス種別6224と同様の態様であっても良い。
データ量変動フラグ6254は、ジョブ実行サーバがジョブを複数回、それぞれ異なるマスタデータで実行した際に、入力データのレコード数が変動するか否かを示す情報である。データ量変動フラグ6254については詳細を後述する。
大小関係情報6255は、各ジョブについて、入力データのデータ量と出力データのデータ量とでどちらが大きいかを示す情報である。なお、入力データが複数のクラウドサービスから入力される場合、データ取得部611は、入力データ量が最大であるクラウドサービスからの入力データ量を出力データのデータ量と比較する。図6では、大小関係情報の値がINPUTの場合は入力データのデータ量が大きく、大小関係情報の値がOUTPUTの場合は出力データが大きいことを示している。
図12に示すデータの取得方法の一例について説明する。
まず、データテーブルID6252、アクセス種別6253は、データ取得部611が、前述のトレースログを解析して取得することができる。
トレースログには、発行した問合せ文の内容が含まれる。例えば、SELECT文は、指定されたデータテーブルからデータを取得する問合せ文である。データ取得部611は、あるデータテーブルを指定するSELECT文が発行されている場合、指定されたデータテーブルを、ジョブの入力データが記憶されたデータテーブルであると判定する。また、例えば、UPDATE文、INSERT文、DELETE文はそれぞれ、データテーブルに対するデータ(データの値)の更新、データの追加、データの削除を行うための問合せ文である。データ取得部611は、UPDATE文、INSERT文、DELETE文のいずれかに、あるデータテーブルが指定されている場合、指定されたデータテーブルを、ジョブの出力データが記憶されたデータテーブルであると判定する。そして、データ取得部611は、問合せ文において指定されたデータテーブルのデータテーブルIDをデータテーブルID6252として、入力データ(INPUT)であるか出力データ(OUTPUT)であるかの判定結果をアクセス種別6253として、採取情報記憶部625に記憶する。
入力データと出力データの大小関係は、例えば、データ取得部611が、データ入出力時のネットワークの通信データ量のモニタリング結果を取得し、モニタリング結果に示される入力データのデータ量と出力データのデータ量を比較することで特定できる。なお、
通信データ量のモニタリングについては、制御装置60が実行することとしても良いし、通信データ量のモニタリング機能を有する他の情報処理装置(図示せず)からモニタリング結果を制御装置60が取得することとしても良い。
入力データのデータ量が変動すると、出力データのデータ量も変動する。ただし、データ量が変動した場合でも、ジョブについて定義された処理の内容が変更されない限り入力データと出力データの間の大小関係は変化しないことを利用して、データ取得部611は、入力データと出力データの間の大小関係を特定する。
入力データのデータ量が出力データのデータ量よりも大きい場合、データ取得部611は、モニタリング対象のジョブのジョブ名6251に対応する大小関係情報6255の値としてINPUTを記憶する。入力データのデータ量が出力データのデータ量よりも小さい場合、データ取得部611は、モニタリング対象のジョブのジョブ名6251に対応する大小関係情報6255の値としてOUTPUTを記憶する。なお、後述するステップS1105の処理のために、データ取得部611は、モニタリング結果に示される入力データのデータ量と出力データのデータ量をメモリ等に保存しておく。
ステップS1102、およびステップS1103の処理により、採取情報記憶部625には、図12に示される採取情報のうち、データテーブルID6252、アクセス種別6253、大小関係情報6255が記憶されることとなる。
ステップS1103を実行後、ステップS1104の処理が実行される。ステップS1104では、データ取得部611は、問合せ文において指定されたデータテーブルのデータテーブルIDをデータテーブルID6223として入力データ管理情報記憶部622に保存する。さらにデータ取得部611は、入力データ(INPUT)であるか出力データ(OUTPUT)であるかの判定結果をアクセス種別6224として、入力データ管理情報記憶部622に記憶する。ステップS1104の処理により、入力データ管理情報記憶部622には、図6に示すデータテーブルID6223とアクセス種別6224とが記憶されることとなる。
ステップS1104の処理を行い、テスト運用が初回の場合の処理は終了する。
一旦、ステップS1101の説明に戻り、2回目(または2回目以降)のテスト運用時の処理について説明する。なお、2回目のテスト運用は、後述するレコード数の変動有無の判定のために、クラウドサービス#A〜#Cのデータベースのそれぞれについて、初回のテスト運用とは異なるマスタデータを適用して実行される。後述するテスト運用が初回の実行である初回であると判定された場合(ステップS1101、NO)、ステップS1105の処理が実行される。
ステップS1105の説明の前に、データ量変動フラグ6254の詳細について説明する。データ量変動フラグ6254は、ジョブ実行サーバがジョブを複数回、それぞれ異なるマスタデータで実行した際に、入力データのレコード数、すなわちデータ量が変動するか否かを示す情報である。
ここで、異なるマスタデータとは、例えば、ある日付におけるデータベースのデータと、同じデータベースの異なる日付(例えば翌日)のデータである。図6では、入力データのレコード数が変動する場合、データ量変動フラグの値はONとなる。一方、入力データのレコード数が変動しない場合にはOFFとなる。
入力データのレコード数が変動しないデータとは、例えば人事系のシステムの従業員データなどである。これは、例えば、会社の従業員数は、(特定の節目を除いて)一日で大きく変動することがないことによるものである。一方、入力データのレコード数が変動するデータとは、例えば、1日ごとの売上げデータなどの、日によってレコード数の変動が予想されるデータである。
データ取得部611は、入力データのレコード数の変動有無を、例えば、前述したデータ入出力時のネットワークの通信データ量のモニタリング結果に基づいて判定することができる。データ取得部611は、モニタリング結果(2回目のテスト運用時のモニタリング結果)から、入力データのデータ量を取得する。さらに、データ取得部611は、初回のテスト運用時に保存していた入力データのデータ量を参照する。そして、データ取得部611は、初回のテスト運用時の入力データ量と、2回目のテスト運用時の入力データ量とを比較し、データ量の変動有無を判定する。なお、入力データのレコード数の変動の有無については、例えば、変動するデータ量に所定の閾値を設定し、データ量の変動が閾値以上、またはそれを超えるか否かに基づいて判断することとしても良い。
ステップS1106で、データ取得部611は、採取情報記憶部625に記憶された情報の更新を行う。具体的には、データ取得部611は、入力データのレコード数の変動の有無の判定結果を、データ量変動フラグ6254として採取情報記憶部625に記憶する。以上により、初回のテスト運用実行時に取得された情報も含めて、採取情報記憶部625には、図12に示す種々の情報が採取情報として記憶されることとなる。
また、前述したトレースログには、問合せ文を発行した結果、データベースで入出力が行われたレコードの件数を示す情報が含まれる。データ取得部611は、レコードの件数と、データ入出力時のネットワークの通信データ量のモニタリング結果を取得して、モニタリング結果に示されるデータ量と、トレースログに含まれるレコードの件数とに基づいて、データの入出力におけるレコード1件あたりのデータサイズを算出できる。
データ取得部611は、取得した入力データのレコード数をレコード数6234として入力データ管理情報記憶部623に記憶する。また、データ取得部611は、算出した入力データのレコード1件あたりのデータサイズをデータサイズ(1レコードあたり)6233として入力データ管理情報記憶部623に記憶する。また、データ取得部611は、入力データのレコード1件あたりのデータサイズにレコード数を乗算した値を、入力データ量6235として入力データ管理情報記憶部623に記憶する。したがって、図7に示すような情報が入力データ管理情報623に記憶される。
〔テスト運用時の処理実行サーバ決定処理〕
図13は、テスト運用時に、各ジョブについて、ジョブを実行する処理実行サーバ(クラウドサービス)を決定する処理を説明するフローチャートである。
まず、ステップS1301では、実行サーバ決定部612がいずれかのジョブを選択する。選択の順序については1つの態様には限定されず、最終的に制御対象の全てのジョブに対して、ジョブを実行する処理実行サーバが決定されるように選択されれば良い。
次に、実行サーバ決定部612は、ステップS1301で選択されたジョブについて、複数のクラウドサービスに対してデータの入出力を実行するか否かを判定する(ステップS1302)。なお、以降では、説明の便宜上、ステップS1301で選択されたジョブを「選択ジョブ」と記載する。
具体的には、実行サーバ決定部612は、テーブル更新情報記憶部622に記憶された、選択ジョブのジョブ名と関連付けられたデータテーブルID6223の値を参照する。このとき、選択ジョブのジョブ名と関連付けられたデータテーブルID6223の値は複数存在しうる。
実行サーバ決定部612は、参照するデータテーブルID6223の値が複数であり、かつ、複数のクラウドサービスのデータテーブルを示す場合、選択ジョブは複数のクラウドサービスに対してデータの入出力を実行するジョブであると判定する。例えば、図6の場合では、Job−CCのジョブは、データテーブルB−1とデータテーブルA−4のデータが入力され、データテーブルC−1にデータが出力される。すなわち、Job−CCのジョブは、クラウドサービス#A、#B、#Cという、複数のクラウドサービスに対してデータの入出力を実行するジョブである。
一方、例えば、図6において、Job−AAのジョブは、データテーブルA−1のデータが入力され、データテーブルA−2にデータが出力される。すなわち、Job−AAのジョブにおけるデータの入出力は、クラウドサービス#Aのみについて実行されることが分かる。したがって、Job−AAのジョブは、複数のクラウドサービスに対してデータの入出力を実行するジョブではない。
選択ジョブが複数のクラウドサービスに対してデータの入出力を実行するジョブでないと判定された場合(ステップS1302、NO)、ステップS1305の処理が実行される。一方、選択ジョブが複数のクラウドサービスに対してデータの入出力を実行するジョブであると判定された場合(ステップS1302、YES)、ステップS1303の処理が実行される。
ステップS1303では、実行サーバ決定部612が、選択ジョブについて、入力データと出力データのどちらのデータ量が多いかを判定する。例えば、実行サーバ決定部612は、採取情報記憶部625に記憶された、選択ジョブのジョブ名と関連付けられた大小関係情報6255の値に基づいて、入力データと出力データのどちらのデータ量が多いかを判定することができる。
入力データのデータ量が出力データのデータ量より小さいと判定された場合(ステップS1303、NO)、ステップS1305の処理が実行される。一方、入力データのデータ量が出力データのデータ量より大きいと判定された場合(ステップS1303、YES)、ステップS1304の処理が実行される。
ステップS1304では、実行サーバ決定部612が、選択ジョブの入力データのレコード数が変動するか否かを判定する。実行サーバ決定部612は、例えば、採取情報記憶部625に記憶された、選択ジョブのジョブ名と関連付けられたデータ量変動フラグ6254がONであるか否かに基づいて、選択ジョブの入力データのレコード数が変動するか否かを判定することができる。例えば、図12では、Job−DDのジョブは、入力データであるデータテーブルB−3とデータテーブルC−2について、データ量変動フラグはともにOFFである。一方、例えば、ジョブ−EEのジョブは、入力データであるデータテーブルA−2とデータテーブルB−2について、データ量変動フラグはともにONである。
選択ジョブのデータ量変動フラグがONである場合(ステップS1304、YES)、実行サーバ決定部612は、ジョブ定義情報記憶部621に記憶される、選択ジョブについての対象フラグ6215をONにして、ステップS1307の処理を実行する。なお、ステップS1304で選択ジョブのレコード変数フラグがONである場合に対象フラグ6215をONにするのは、選択ジョブにおいて、データ量が最大となる入力データが本番運用において変わりうるためである。対象フラグ6215をONにすることで、実行サーバ決定部612は、選択ジョブの処理実行サーバが本番運用時に決定されるように設定する。
一方、選択ジョブのデータ量変動フラグがOFFである場合(ステップS1304、NO)、ステップS1305の処理が実行される。
ステップS1305では、実行サーバ決定部612が、選択ジョブを実行する処理実行サーバ(クラウドサービス)を決定する。なお、実行サーバ決定部612は、処理実行サーバを決定した後、ジョブ定義情報記憶部621に記憶される、選択ジョブについての対象フラグ6215をOFFにする。対象フラグ6215がOFFとされるのは、選択ジョブの処理実行サーバをこのテスト運用で決定することができるためである。処理実行サーバは下記のルールに従って決定される。
ルール1:選択ジョブが複数のクラウドサービスに対してデータの入出力を実行するジョブでない場合(入出力するクラウドサービスが1つの場合)は、選択ジョブがデータの入出力を行うクラウドサービスの処理実行サーバが選択ジョブを実行する。
ルール2:選択ジョブにデータの入力を行うクラウドサービスが1つであり、データの出力を行うクラウドサービスと異なる場合は、データ量のより大きいクラウドサービス(入力側または出力側)の処理実行サーバが選択ジョブを実行する。
ルール3:選択ジョブにデータの入力を行うクラウドサービスが複数であり、選択ジョブにおける処理がデータのマージ処理である場合、選択ジョブがデータの出力を行うクラウドサービス処理実行サーバが選択ジョブを実行する。
ルール4:選択ジョブにデータの入力を行うクラウドサービスが複数であり、選択ジョブにおける処理がデータの集計処理である場合、データ量変動フラグがOFFである場合、入力データ量の最も大きいクラウドサービスの処理実行サーバが選択ジョブを実行する。
ルール5:上記ルール4においてデータ量変動フラグがONである場合、本番運用時の選択ジョブ実行の都度、動的に処理実行サーバが決定される。
それぞれのルールの設定根拠について説明する。まず、ルール1について、データの入出力が1つのクラウドサービスで完結する場合には、データの入出力の発生するクラウドサービスの処理実行サーバでジョブを実行させることにより、データ転送時間の短縮を行うことができる。
例えば図12を参照すると、Job−AAのジョブにおけるデータの入出力は、クラウドサービス#Aのみについて実行される。したがって、例えば選択ジョブがJob−AAのジョブである場合、Job−AAのジョブはクラウドサービス#Aの処理実行サーバで実行されるように決定される。
ルール2は、入力データのデータ量と出力データのデータ量とを比較し、よりデータ量の大きいクラウドサービスの処理実行サーバにジョブを実行させるものである。入力データと出力データのうち、よりデータ量の大きい側のデータ転送時間について短縮を図ることができる。
例えば図12を参照すると、Job−BBのジョブに対する入力データは、クラウドサービス#Aのデータベースに含まれるデータテーブルA−3である。また、Job−BBのジョブの出力データの出力先は、クラウドサービス#Bのデータベースに含まれるデータテーブルB−2である。さらに、ジョブ名Job−BBについて、大小関係情報6255の値はOUTPUTとなっており、出力データのデータ量は入力データのデータ量よりも大きくなる。したがって、例えば選択ジョブがJob−BBのジョブである場合、Job−BBのジョブはクラウドサービス#Bの処理実行サーバで実行されるように決定される。
ルール3は、選択ジョブにおける処理がデータのマージ処理の場合のルールである。選択ジョブにデータの入力を行うクラウドサービスが複数である場合、選択ジョブにおいて実行される処理は、データのマージ処理かデータの集計処理のいずれかとなる。データのマージ処理とは、複数のデータベースそれぞれから読み出したレコードを統合して新たなレコードを生成する処理である(なお、集計処理についてはルール4の説明において後述する)。マージ処理において、入力データのそれぞれと、生成された新たなレコード、すなわち出力データとでデータ量を比較した場合、レコードのデータ列が多くなることなどにより、出力データは個々の入力データよりもデータ量が大きくなる。入力データのデータ量が変動しても、入力データと出力データの大小関係は変わらない。この場合、出力データの出力先となるクラウドサービスの処理実行サーバでジョブを実行することで、データ量が最も大きいデータ転送の転送時間の短縮を図る。
例えば図12を参照すると、Job−CCのジョブは、データテーブルB−1とデータテーブルA−4のデータが入力され、データテーブルC−1にデータが出力される。さらに、ジョブ名Job−CCについて、大小関係情報6255の値はOUTPUTとなっており、出力データのデータ量は入力データのデータ量よりも大きくなる。ここで、実行サーバ決定部612は、大小関係情報6255の値がOUTPUTであることから、Job−CCのジョブはマージ処理を実行するジョブと判定することができる。したがって、例えば選択ジョブがJob−CCのジョブである場合、ルール3に基づいて、Job−CCのジョブはクラウドサービス#Cの処理実行サーバで実行されるように決定される。
ルール4は、選択ジョブにおける処理が、上述したデータの集計処理の場合のルールである。集計処理は、例えば、日毎や月毎の受注データ等を集計し、集計結果のデータを生成する処理である。集計処理において、入力データのそれぞれと、生成された新たなレコード、すなわち出力データとでデータ量を比較した場合、データの集計によりレコード数が減少することなどにより、出力データは個々の入力データよりもデータ量が小さくなる。入力データのデータ量が変動しても、入力データと出力データの大小関係は変わらない。この場合、入力データのうち、データ量が最も大きい入力データの入力元となるクラウドサービスの処理実行サーバでジョブを実行することで、データ量が最も大きいデータ転送の転送時間の短縮を図る。なお、ルール4のケースでは、入力データのデータ量は変動しないので、本番運用に先立ってデータ量が最も大きい入力データの入力元となるクラウドサービスを特定しておくことができる。
例えば図12を参照すると、Job−DDのジョブは、データテーブルB−3とデータテーブルC−2のデータが入力され、データテーブルA−2にデータが出力される。ジョブ名Job−DDについて、大小関係情報6255の値はINPUTとなっており、入力データのデータ量は出力データのデータ量よりも大きくなる。ここで、実行サーバ決定部612は、大小関係情報6255の値がINPUTであることから、Job−CCのジョブは集計処理を実行するジョブと判定することができる。さらに、図7に示した入力データ管理情報記憶部623に記憶された情報を参照すると、データテーブルB−3のデータとデータテーブルC−2のデータはともに、データ量変動フラグ6254の値はOFFであり、データ量の変動がないデータである。データテーブルB−3のデータ量は120MBであり、データテーブルC−2のデータ量は250である。すなわち、データテーブルC−2のデータ量がデータテーブルB−3のデータ量よりも大きい。したがって、例えば選択ジョブがJob−DDのジョブである場合、ルール4に基づいて、Job−DDのジョブはクラウドサービス#Cの処理実行サーバで実行されるように決定される。
ルール5の場合は、図8を用いて説明した本番運用時の処理により、処理実行サーバが決定される。
例えば図12を参照すると、Job−EEのジョブは、データテーブルA−2とデータテーブルB−2のデータが入力され、データテーブルC−3にデータが出力される。ジョブ名Job−EEについて、大小関係情報6255の値はINPUTとなっており、入力データのデータ量は出力データのデータ量よりも大きくなる。さらに、図7に示した入力データ管理情報記憶部623に記憶された情報を参照すると、データテーブルA−2のデータとデータテーブルB−2のデータはともに、データ量変動フラグ6254の値はONであり、データ量の変動があるデータである。したがって、Job−EEのジョブについて、入力データ量の最も大きいクラウドサービスは変わりうるので、前述の通り、Job−EEのジョブを実行する処理実行サーバは、図8に示した本番運用時の処理により決定される。
以上のように、ルール1〜ルール4のいずれかに該当するジョブについては、実行サーバ決定部612が、本番運用に先立って処理実行サーバを決めておくことができる。
図13の説明に戻る。ステップS1305の処理で選択ジョブを実行する処理実行サーバが決定された後、実行サーバ決定部612は、選択ジョブについて決定した処理実行サーバを示す情報をジョブ定義情報記憶部621に記憶する(ステップS1306)。ステップS1306の処理実行後、ステップS1307の処理が実行される。
ステップS1307では、実行サーバ決定部612は、全てのジョブについて処理実行サーバが決定されたか否かを判定する。言い換えれば、実行サーバ決定部612は、ステップS1301において未選択のジョブがあるか否かを判定する。未選択のジョブがある場合(ステップS1307、NO)、実行サーバ決定部612は、ステップS1301に戻り、未選択のジョブのいずれかを選択して、選択したジョブについてステップS1302以降の処理を繰り返す。未選択のジョブがない場合(ステップS1307、YES)、実行サーバ決定部612は、図13に示す一連の処理を終了する。
以上の処理により、本番運用時に実行されるジョブの一部については、本番運用に先立って、ジョブを実行する処理実行サーバを決定しておくことができる。したがって、本番運用時には、テスト運用の結果から処理実行サーバを決定できなかったジョブ、いわゆる上述したルール5に該当するジョブについてのみ、実行サーバ決定部612が処理実行サーバの決定を行えば良い。これにより、本番運用時の入出力データの評価、および処理実行サーバの決定に要する処理負荷を低減することができる。
例えば本実施例の場合(図12の状況)では、Job−AA、Job−BB、Job−CC、Job−DDについては、本番運用に先立って、図10の実行サーバ情報6214に示されるように、ジョブを実行する処理実行サーバを決定しておくことができる。そして、本番運用の際には、Job−EEのジョブについて、処理実行サーバを決定する処理を行えば良い。したがって、本番運用の際に処理実行サーバの決定が必要なジョブの数を削減され、本番運用におけるジョブの入出力データ量の評価、および処理実行サーバの決定の処理負荷を低減することができる。
〔本番運用〕
これまでの説明を踏まえ、再度、本番運用時の処理について説明する。
図14は、制御装置60が実行する本番運用時の処理のフローチャートである。なお、図14に示す一連の処理は、制御対象の各ジョブについて実行される。
制御装置60は、クラウドサービス#A〜#Cのそれぞれで稼動している情報処理システムにおけるオンライン業務の締め時間の到来を検知する(ステップS1401)。言い換えれば、本番運用時は、クラウドサービス#A〜#Cのそれぞれで稼動している情報処理システムにおけるオンライン業務の締め時間が到来した後に開始される。クラウドサービス#A〜#Cのそれぞれでは、オンライン業務が実行されることとする。
ここで本実施例におけるオンライン業務と締め時間について説明すると、オンライン業務では、処理に応じてデータベースに記憶されるデータを逐次更新する態様のリアルタイム処理が行われる。リアルタイム処理により、データベースに記憶されたデータ、すなわち、各ジョブに対する入力データとなりうるデータには更新が発生する。ただし、オンライン業務には締め時間が設定されており、締め時間以降は、各ジョブの処理で参照されるデータベースに記憶されたデータの更新は行われない。一例として日毎のオンライン業務を例に挙げると、リアルタイム処理の受付け可能時間が午前8時から午後5時である場合、締め時間は午後5時となり、以降はリアルタイム処理によるデータベースに記憶されたデータの更新は翌日の午前8時まで行われない。または、処理の要求は常時受け付けるが、締め時間である午後5時以降に受け付けた要求に応じた処理は、翌日の午前8時以降に行われる対応でも良い。本実施例の説明においては、オンライン業務の締め時間は午後5時に設定されていることとし、図5に示すように、各ジョブはいずれも午後5時以降に処理が行われることとする。したがって、各ジョブの実行を締め時間以降に処理実行サーバが実行するようにすることで、リアルタイム処理によるデータの更新の影響については排除することができる。
オンライン業務の締め時間が到来した後、制御装置60は、ジョブ定義情報記憶部621に定義情報が記憶されている各ジョブについて、テスト運用時に処理実行サーバが決定済みであるか否かを判定する(ステップS1401)。例えば、制御装置60は、ジョブ定義情報記憶部621に記憶された、各ジョブのジョブ名6211に対応する対象フラグ6215の値を参照して、処理実行サーバが決定済みであるか否かを判定することができる。各ジョブのジョブ名6211に対応する対象フラグ6215の値がOFFであれば処理実行サーバは決定済み(テスト運用時の決定結果を適用)であり、対象フラグ6215の値がONであれば処理実行サーバは未確定である。
ステップS1402においてテスト運用時に処理実行サーバが決定済みであると判定された場合、制御装置60はステップS1404の処理を実行する。一方、ステップS1402においてテスト運用時に処理実行サーバが未決定であると判定された場合、制御装置60はステップS1403の処理を実行する。
ステップS1403では、制御装置60が、処理実行サーバが未決定であるジョブについて、ジョブを実行する処理実行サーバを決定する。このステップS1403の処理は、図8を用いて説明した、処理実行サーバの決定処理である。ステップS1403の処理を実行後、制御装置60はステップS1404の処理を実行する。
ステップS1404において、制御装置60は、ジョブ定義情報記憶部621に記憶された情報に基づいて、ジョブを実行する。ここで、ジョブ定義情報記憶部621には、テスト運用時またはステップS1403の処理により決定された処理実行サーバの識別情報が記憶されている。したがって、制御装置60は、実行しようとするジョブのジョブ名6211と対応付けてジョブ定義情報記憶部621に記憶された実行サーバ情報6214に示される処理実行サーバに、ジョブの実行要求を送信する。そして、要求を受信した処理実行サーバがジョブを実行することとなる。
ジョブの実行終了後、制御装置60は、実行したジョブについて、次回起動日時を決定する(ステップS1405)。図5において各ジョブは、日毎に起動時刻6222に示されるスケジュールにより実行される想定であるが、ステップS1405の処理は日によって実行の有無や、スケジューリングされる起動時刻が変動するジョブが存在する場合のための考慮である。
ステップS1405の実行後、制御装置60は図14に示す一連の処理を終了し、図14に示す一連の処理は、再度(例えば翌日)オンライン業務の締め時間が到来した場合に実行される。
〔ハードウェア構成〕
図15は、本実施例におけるクライアント装置1のハードウェア構成の一例である。なお、図15では、クライアント装置1のハードウェア構成の一例を示すが、後述のように、処理実行サーバ、DBサーバ、制御装置60についても同様の構成が採用可能である。
クライアント装置1は、例えば、それぞれがバス1501で相互に接続された、CPU1502、メモリ1503、記憶装置1504、NIC1505、媒体読取装置1506、入力装置1507、表示装置1508、を備える情報処理装置である。
CPU1502は、端末装置1における種々の動作制御を行う。メモリ1503、記憶装置1504は、本実施例で説明した各種の処理を実行するプログラムや、各種の処理に利用される種々のデータを記憶する。記憶装置1504は、例えば、HDDや、SSD等の記憶媒体である。
CPU1502は、メモリ1503あるいは記憶装置1504に記憶されたプログラムを読み出して処理、制御を実行することで、図3に示す制御部200および制御部200に含まれる各機能部が実現されても良い。また、メモリ1503、記憶装置1504のそれぞれは、図3に記載した記憶部300として機能することができる。
NIC1505は、有線または無線のネットワークを介したデータの送受信に用いられるハードウェアである。NIC1505は、CPU1502の制御の下で、通信部104として機能することができる。
媒体読取装置1506は、記録媒体からデータを読み取るための装置であり、例えば、CD−ROMやDVD−ROM等のディスク媒体に記憶されたデータを読み取るディスクドライブや、メモリカードに記憶されたデータを読み取るカードスロット等である。前述した記憶部300に記憶されるデータの一部または全部は、媒体読取装置1506を用いて読み取り可能な記録媒体に記憶されることとしても良い。
入力装置1507は、端末装置1のユーザからの入力や指定を受け付ける装置である。入力装置1507の例としては、例えばキーボードやマウス、タッチパッドが挙げられる。表示装置1508は、CPU1502の制御の下で、種々の情報の表示を行う。表示装置1508は、例えば液晶ディスプレイである。なお、クライアント装置1が、例えばスマートフォンやPDA、タブレットPCである場合には、入力装置1507の機能と表示装置1508の機能とを備えるタッチパネルを用いることとしても良い。
本実施例の処理実行サーバ、DBサーバ、制御装置60については、図15と同様のハードウェア構成のコンピュータを用いることが可能であるため、説明を省略する。ただし、CPU、メモリ、記憶装置、NIC、媒体読取装置、入力装置、出力装置の具体的なハードウェア(型式や性能等)は、クライアント装置1、処理実行サーバ、DBサーバ、制御装置60のそれぞれで異なって構わない。例えば、処理実行サーバには、クライアント装置1よりも演算能力が高いCPU、より大容量のメモリが搭載されることとしても良い。また、DBサーバには、記憶領域の確保のために、クライアント装置1や処理実行サーバよりも大容量の記憶装置が搭載される、あるいは、データを記憶可能なストレージシステムに接続されることとしても良い。
1 クライアント装置
2、3、4 クラウド環境
5 ネットワーク
20−1、20−2、30−1、30−2、40−1、40−2 処理実行サーバ
21、31、41 DBサーバ
60 制御装置
1501 バス
1502 CPU
1503 メモリ
1504 記憶装置
1505 NIC
1506 媒体読取装置
1507 入力装置
1508 表示装置

Claims (11)

  1. 複数のシステムのうち、いずれかのシステムにジョブを実行させる制御を行なう制御装置における制御方法において、
    前記制御装置が、
    前記複数のシステムに関する過去のジョブの実行履歴を参照して、第1のジョブの実行開始タイミングに先行し、前記第1のジョブが参照するデータ格納領域に対する更なる更新処理が実行されない期間を特定し、
    前記複数のシステムの中から前記第1のジョブを実行させるシステムを選択する際に利用する、前記データ格納領域から前記第1のジョブが参照するデータ量の評価タイミングが、特定した前記期間に含まれるように制御する、
    ことを特徴とする制御方法。
  2. 前記制御装置が、
    前記実行履歴に基づいて、前記第1のジョブが参照するデータ格納領域に対する更新処理を実行する、前記第1のジョブと異なる1以上のジョブを特定し、
    特定した前記1以上のジョブの動作を監視した結果、前記1以上のジョブの全てが終了したことを検知した場合、検知後から前記第1のジョブの実行タイミングまでの期間を、前記更なる更新処理が実行されない期間と特定する、
    ことを特徴とする請求項1記載の制御方法。
  3. 前記制御装置が、
    前記複数のシステムのうちの、前記異なる1以上のジョブを実行するシステムに関する処理負荷を監視し、
    特定した前記期間のうち、前記処理負荷が所定の基準以下のタイミングを前記評価タイミングとして決定する、
    ことを特徴とする請求項2記載の制御方法。
  4. 前記複数のシステムのそれぞれが記憶部を備え、
    前記制御装置が、
    前記第1のジョブが前記複数のシステムのうちの少なくとも2以上のシステムの前記記憶部に格納されたデータを参照するジョブである場合、前記2以上のシステムの前記記憶部それぞれから前記第1のジョブが参照するデータのデータ量を取得し、
    前記2以上のシステムのうち、前記第1のジョブが参照するデータ量が最も大きいシステムを、前記第1のジョブを実行させるシステムとして選択する、
    ことを特徴とする請求項1〜3のいずれか1項に記載の制御方法。
  5. 前記制御装置が、
    前記評価タイミングは、前記更新処理を実行する第2のジョブの全てが終了した後である、
    ことを特徴とする請求項4記載の制御方法。
  6. 前記第1のジョブが、前記複数のシステムのうちの少なくとも2以上のシステムの前記記憶部からデータを参照して処理を実行するジョブであって、参照した前記データについての集計処理を行うジョブである、
    ことを特徴とする請求項4または5のいずれか1項に記載の制御方法。
  7. 前記複数のシステムを用いて、前記第1のジョブと、前記1以上のジョブを含む複数のジョブを実行するテスト運用が実行され、
    前記制御装置が、
    前記複数のジョブのうち、前記複数のシステムのうちの少なくとも2以上のシステムの記憶部からデータを参照して処理を実行するジョブであって、参照した前記データを統合する処理を行うジョブを特定し、
    特定した前記統合する処理を行うジョブを、前記テスト運用の後に実行される本番運用において、前記統合する処理の結果データを記憶する前記記憶部を備えるシステムで実行させるように制御する、
    ことを特徴とする請求項2または3のいずれか1項に記載の制御方法。
  8. 前記更なる更新処理が実行されない期間の特定と、前記データ量の評価と、前記第1のジョブを実行させるシステムの選択とが、前記本番運用において実行されることを特徴とする請求項7記載の制御方法。
  9. 前記複数のシステムが、それぞれ異なるクラウド環境であり、
    前記複数のジョブは、それぞれについて設定された実行開始タイミングに応じたバッチ処理を実行することを特徴とする請求項1〜8のいずれか1項に記載の制御方法。
  10. 複数のシステムのうち、いずれかのシステムにジョブを実行させる制御を行なう制御装置に、
    前記複数のシステムに関する過去のジョブの実行履歴を参照して、第1のジョブの実行開始タイミングに先行し、前記第1のジョブが参照するデータ格納領域に対する更なる更新処理が実行されない期間を特定し、
    前記複数のシステムの中から前記第1のジョブを実行させるシステムを選択する際に利用する、前記データ格納領域から前記第1のジョブが参照するデータ量の評価タイミングが、特定した前記期間に含まれるように制御する、
    処理を実行させることを特徴とする制御プログラム。
  11. 複数のシステムのうち、いずれかのシステムにジョブを実行させる制御を行なう制御装置であって、
    前記複数のシステムに関する過去のジョブの実行履歴を参照して、第1のジョブの実行開始タイミングに先行し、前記第1のジョブが参照するデータ格納領域に対する更なる更
    新処理が実行されない期間を特定する特定部と、
    前記複数のシステムの中から前記第1のジョブを実行させるシステムを選択する際に利用する、前記データ格納領域から前記第1のジョブが参照するデータ量の評価タイミングが、特定した前記期間に含まれるように制御する制御部と、
    を備えることを特徴とする制御装置。

JP2016060915A 2016-03-24 2016-03-24 制御方法、制御プログラムおよび制御装置 Active JP6686602B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016060915A JP6686602B2 (ja) 2016-03-24 2016-03-24 制御方法、制御プログラムおよび制御装置
US15/464,878 US10248458B2 (en) 2016-03-24 2017-03-21 Control method, non-transitory computer-readable storage medium, and control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016060915A JP6686602B2 (ja) 2016-03-24 2016-03-24 制御方法、制御プログラムおよび制御装置

Publications (2)

Publication Number Publication Date
JP2017174235A JP2017174235A (ja) 2017-09-28
JP6686602B2 true JP6686602B2 (ja) 2020-04-22

Family

ID=59898920

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016060915A Active JP6686602B2 (ja) 2016-03-24 2016-03-24 制御方法、制御プログラムおよび制御装置

Country Status (2)

Country Link
US (1) US10248458B2 (ja)
JP (1) JP6686602B2 (ja)

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09282288A (ja) * 1996-04-09 1997-10-31 Fujitsu Ltd 複数計算機運用システム
JPH1011406A (ja) 1996-06-25 1998-01-16 Hitachi Ltd 資源の分散環境におけるジョブ実行方法
US6546402B1 (en) * 2000-06-05 2003-04-08 International Business Machines Corporation System and method for asynchronous view maintenance
JP4087097B2 (ja) * 2001-11-12 2008-05-14 株式会社日立製作所 データベース管理システム情報を考慮したデータ再配置方法およびデータ再配置を行う計算機システム
US20030135353A1 (en) * 2002-01-11 2003-07-17 Mcnc User-executable method for complex model data analysis and associated system, computer device, and computer software program product
US6859859B2 (en) * 2002-08-08 2005-02-22 Hitachi Global Storage Technologies Netherlands, B.V. Method and system for efficiently calculating and storing expected access time information for DASD
JP2004302751A (ja) * 2003-03-31 2004-10-28 Hitachi Ltd 計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システム
US7529728B2 (en) * 2003-09-23 2009-05-05 Salesforce.Com, Inc. Query optimization in a multi-tenant database system
US7363324B2 (en) * 2004-12-17 2008-04-22 International Business Machines Corporation Method, system and program for prioritizing maintenance of database tables
JP4711824B2 (ja) * 2005-12-26 2011-06-29 富士通株式会社 業務管理者端末、環境管理局端末、ネットワーク事業者端末、業務遂行者端末、業務管理者端末の制御方法、環境管理局端末の制御方法、ネットワーク事業者端末の制御方法および業務遂行者プログラム
JP2007183883A (ja) * 2006-01-10 2007-07-19 Fujitsu Ltd 資源計画作成プログラム、該プログラムを記録した記録媒体、資源計画作成装置、および資源計画作成方法
JP2007249491A (ja) * 2006-03-15 2007-09-27 Fujitsu Ltd マルチサーバ環境においてバッチジョブを分散させるプログラム、装置、および方法
US7552121B2 (en) * 2006-06-22 2009-06-23 International Business Machines Corporation Autonomic lock escalation in an SQL environment
US7716425B1 (en) * 2006-09-27 2010-05-11 Hewlett-Packard Development Company, L.P. Prefetching data in distributed storage systems
JP2008134705A (ja) * 2006-11-27 2008-06-12 Hitachi Ltd データ処理方法及びデータ分析装置
JP2009230581A (ja) * 2008-03-24 2009-10-08 Nippon Telegr & Teleph Corp <Ntt> バッチジョブ制御システム、管理ノード、およびバッチジョブ制御方法
JP5021018B2 (ja) * 2009-11-30 2012-09-05 株式会社日立製作所 データ配置方法及びデータ管理システム
US10838957B2 (en) * 2010-06-17 2020-11-17 Microsoft Technology Licensing, Llc Slicing relational queries using spool operators
JP5373870B2 (ja) * 2010-10-25 2013-12-18 株式会社三菱東京Ufj銀行 予測装置、予測方法、及び、プログラム
US9262477B1 (en) * 2012-06-21 2016-02-16 Pivotal Software, Inc. Accuracy testing of query optimizers
US10242052B2 (en) * 2012-07-24 2019-03-26 Unisys Corporation Relational database tree engine implementing map-reduce query handling
JP6029951B2 (ja) * 2012-11-27 2016-11-24 株式会社日立製作所 時系列データベースの設定自動生成方法、設定自動生成システム並びに監視サーバ
US9110949B2 (en) * 2013-02-11 2015-08-18 Oracle International Corporation Generating estimates for query optimization
US9412066B1 (en) * 2013-03-11 2016-08-09 Symantec Corporation Systems and methods for predicting optimum run times for software samples
JP6260130B2 (ja) * 2013-07-25 2018-01-17 富士通株式会社 ジョブ遅延検知方法、情報処理装置、およびプログラム
JP6229733B2 (ja) * 2013-11-21 2017-11-15 富士通株式会社 情報処理装置、方法、プログラム及び記録媒体
US9645891B2 (en) * 2014-12-04 2017-05-09 Commvault Systems, Inc. Opportunistic execution of secondary copy operations
US10073421B2 (en) * 2015-11-17 2018-09-11 Rockwell Automation Technologies, Inc. Predictive monitoring and diagnostics systems and methods

Also Published As

Publication number Publication date
US20170277563A1 (en) 2017-09-28
JP2017174235A (ja) 2017-09-28
US10248458B2 (en) 2019-04-02

Similar Documents

Publication Publication Date Title
US9852196B2 (en) ETL tool interface for remote mainframes
US10572156B2 (en) Capacity forecasting based on capacity policies and transactions
JP2007042034A (ja) 計算機システム、管理計算機及び論理記憶領域の管理方法
WO2014054230A1 (ja) 情報システム構築装置、情報システム構築方法および記憶媒体
WO2014061229A1 (ja) 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム
CN109960212B (zh) 任务发送方法和装置
US20150332280A1 (en) Compliant auditing architecture
US11044319B2 (en) Equipment analysis support apparatus, equipment analysis support method, and equipment analysis system
JPWO2014054232A1 (ja) 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム
JP6094594B2 (ja) 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム
CN115080557A (zh) 数据处理方法、数据查询方法、服务器、设备及存储介质
JP6686602B2 (ja) 制御方法、制御プログラムおよび制御装置
KR20200051835A (ko) 데이터 분석 시스템에서의 메모리 할당
JP6098685B2 (ja) ワークフローシステム、ワークフローシステムの制御方法およびプログラム、ワークフローサーバ、ワークフローサーバの制御方法およびプログラム
JP2021189743A (ja) データ分析支援装置、及びデータ分析支援方法
JP5615431B2 (ja) インパクト分析方法、インパクト分析装置及び記憶媒体
JP6259547B2 (ja) 管理システム、及び、管理方法
US20120198373A1 (en) Focus-Driven User Interface
KR102546847B1 (ko) Erp의 커스터마이징 자동화 처리 및 커스터마이징된 erp 솔루션의 제공 방법, 장치 및 시스템
CN114637736B (zh) 一种数据库拆分方法和装置
US20200334124A1 (en) Adaptive pre-processor
WO2015193988A1 (ja) 計算機システム
US20200233641A1 (en) Global number range generation
JP2015106329A (ja) 運用作業の履歴を検索する情報処理装置、情報処理システム、運用作業履歴検索方法及びそのためのプログラム
JP2020166504A (ja) データ提供システムおよびデータアクセス方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20160401

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20180528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200316

R150 Certificate of patent or registration of utility model

Ref document number: 6686602

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150