JP7471091B2 - JOB EXECUTION SUPPORT SYSTEM AND JOB EXECUTION SUPPORT METHOD - Google Patents

JOB EXECUTION SUPPORT SYSTEM AND JOB EXECUTION SUPPORT METHOD Download PDF

Info

Publication number
JP7471091B2
JP7471091B2 JP2020008278A JP2020008278A JP7471091B2 JP 7471091 B2 JP7471091 B2 JP 7471091B2 JP 2020008278 A JP2020008278 A JP 2020008278A JP 2020008278 A JP2020008278 A JP 2020008278A JP 7471091 B2 JP7471091 B2 JP 7471091B2
Authority
JP
Japan
Prior art keywords
job
program
data
execution
processing time
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
JP2020008278A
Other languages
Japanese (ja)
Other versions
JP2021117524A (en
JP2021117524A5 (en
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020008278A priority Critical patent/JP7471091B2/en
Publication of JP2021117524A publication Critical patent/JP2021117524A/en
Publication of JP2021117524A5 publication Critical patent/JP2021117524A5/ja
Application granted granted Critical
Publication of JP7471091B2 publication Critical patent/JP7471091B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、ジョブ実行支援システム、及びジョブ実行支援方法に関する。 The present invention relates to a job execution support system and a job execution support method.

クラウドコンピューティング環境を提供するパブリッククラウドのサービスが広く展開されている。パブリッククラウドのサービスの特徴の一つとして、使用するマシン(仮想マシン)のスペックやサービスの利用時間に応じて料金が設定されていることが挙げられる。したがって、ユーザが設定するクラウドのバッチジョブの構成はそのコストが抑えられるように、処理時間を短縮する等して最適化されていることが好ましい(例えば、より低スペックのマシンで短時間のバッチ処理を実現するようにする)。 Public cloud services that provide cloud computing environments are widely available. One of the features of public cloud services is that the fee is set according to the specifications of the machine (virtual machine) used and the duration of service use. Therefore, it is preferable that the configuration of cloud batch jobs set by the user is optimized to reduce processing time, etc., in order to keep costs down (for example, by achieving short batch processing times on machines with lower specifications).

この点、ジョブの運用を効率化する方法として、特許文献1には、情報を生成する前処理と、前処理により生成された情報を出力手段に出力させる後処理とを含むジョブを実行する際に出力手段の稼働率を従来に比して向上させる技術が開示されている。また、過剰なコストを防ぐためにクラウド・リソースの使用を最適化させるための技術が特許文献2に記載されている。 In this regard, as a method for improving the efficiency of job operations, Patent Document 1 discloses a technology for improving the operating rate of an output means compared to the conventional technology when executing a job that includes a pre-processing for generating information and a post-processing for outputting the information generated by the pre-processing to an output means. In addition, Patent Document 2 describes a technology for optimizing the use of cloud resources to prevent excessive costs.

特開2012-35587号公報JP 2012-35587 A 特開2014-501994号公報JP 2014-501994 A

ただ、特許文献1は、ジョブの稼働率の向上を目的としており、ジョブそのものの処理時間の短縮を目的としているわけではない。また、特許文献2は、ジョブの起動のタイミングを調節することでリソースへの負荷を軽減させるための構成を有するが、処理時間の効率化を第一義的な目的としているわけではない。このように、クラウドコンピューティングにおける最適化の検討は充分になされていないといえる。 However, Patent Document 1 aims to improve the operation rate of jobs, not to shorten the processing time of the jobs themselves. Furthermore, Patent Document 2 has a configuration for reducing the load on resources by adjusting the timing of job launch, but does not have the primary objective of improving the efficiency of processing time. In this way, it can be said that optimization in cloud computing has not been sufficiently considered.

本発明はこのような現状に鑑みてなされたものであり、その目的は、ジョブの実行を最適化することが可能なジョブ実行支援システム、及びジョブ実行支援方法を提供することにある。 The present invention was made in light of this current situation, and its purpose is to provide a job execution support system and a job execution support method that are capable of optimizing job execution.

上記課題を解決するための、本発明の一つは、所定のデータ項目を有するデータベースを記憶している記憶装置、及び、1又は複数の処理命令を実行するジョブを複数実行する処理対象プログラムにおける各前記ジョブが出力するデータ又は当該各ジョブに入力されるデータを特定することにより、前記データに基づく各前記ジョブ間の処理の依存関係を特定し、特定した依存関係に基づき、前記処理対象プログラムにおける各ジョブをグルーピングして、互いに並列して実行可能なジョブグループを作成する中間ファイル依存関係解析処理と、各ジョブのアクセス先の前記データベースのデータ項目、及び、当該データ項目に係るデータへのアクセス形態が登録、更新、削除、又は参照のいずれであるかを特定するアクセス先依存関係解析処理と、前記互いに並列して実行する各ジョブグループに属するジョブの、前記データベースに対するアクセス先を前記特定した各アクセス形態に基づき解析することにより、アクセス先の前記データベースは同一であるが前記データベースにおいてデータの登録、更新、又は削除によるアクセス先のデータ項目が重複しない、前記互いに並列して実行する第1のジョブグループ及び第2のジョブグループの組み合わせを特定した場合には、前記データベースを、前記第1のジョブグループのみがデータの登録、更新、又は削除によりアクセスするデータ項目を含む第1のデータベースと、前記第2のジョブグループのみがデータの登録、更新、又は削除によりアクセスするデータ項目を含む第2のデータベースとに分割するアクセス先依存関係解析処理と、前記処理対象プログラムに基づき、前記互いに並列して実行可能なジョブグループを並列して実行するジョブ実行処理と、を実行する演算装置を備えるジョブ実行支援システム、とする。 To solve the above problem, one aspect of the present invention includes a storage device that stores a database having predetermined data items, an intermediate file dependency analysis process that identifies data output by or input to each job in a process target program that executes a plurality of jobs that execute one or a plurality of processing instructions, thereby identifying processing dependencies between each of the jobs based on the data, and grouping each of the jobs in the process target program based on the identified dependencies to create job groups that can be executed in parallel with each other , an access destination dependency analysis process that identifies the data items in the database that are the access destination of each job, and whether the access form to the data related to the data items is registration, update, deletion, or reference, and an access destination to the database of jobs belonging to each of the job groups that are executed in parallel with each other based on the identified access forms. As a result, when a combination of a first job group and a second job group executed in parallel with each other is identified in which the databases to be accessed are the same but the data items to be accessed by registering, updating or deleting data in the database do not overlap, an access destination dependency analysis process divides the database into a first database including data items accessed by only the first job group by registering, updating or deleting data, and a second database including data items accessed by only the second job group by registering, updating or deleting data, and a job execution process that executes the job groups that can be executed in parallel with each other in parallel based on the program to be processed.

また、本発明の他の一つは、所定のデータ項目を有するデータベースを記憶している記憶装置を備える情報処理装置が、1又は複数の処理命令を実行するジョブを複数実行する処理対象プログラムにおける各前記ジョブが出力するデータ又は当該各ジョブに入力されるデータを特定することにより、前記データに基づく各前記ジョブ間の処理の依存関係を特定し、特定した依存関係に基づき、前記処理対象プログラムにおける各ジョブをグルーピングして、互いに並列して実行可能なジョブグループを作成する中間ファイル依存関係解析処理と、各ジョブのアクセス先の前記データベースのデータ項目、及び、当該データ項目に係るデータへのアクセス形態が登録、更新、削除、又は参照のいずれであるかを特定するアクセス先依存関係解析処理と、前記互いに並列して実行する各ジョブグループに属するジョブの、前記データベースに対するアクセス先を前記特定した各アクセス形態に基づき解析することにより、アクセス先の前記データベースは同一であるが前記データベースにおいてデータの登録、更新、又は削除によるアクセス先のデータ項目が重複しない、前記互いに並列して実行する第1のジョブグループ及び第2のジョブグループの組み合わせを特定した場合には、前記データベースを、前記第1のジョブグループのみがデータの登録、更新、又は削除によりアクセスするデータ項目を含む第1のデータベースと、前記第2のジョブグループのみがデータの登録、更新、又は削除によりアクセスするデータ項目を含む第2のデータベースとに分割するアクセス先依存関係解析処理と、前記処理対象プログラムに基づき、前記互いに並列して実行可能なジョブグループを並列して実行するジョブ実行処理と、を実行する、ジョブ実行支援方法、とする。
Another aspect of the present invention is an information processing device including a storage device storing a database having predetermined data items , the information processing device including a processing target program executing a plurality of jobs each executing one or a plurality of processing instructions, and an intermediate file dependency analysis process for identifying data output by each job in the processing target program or data input to each job, thereby identifying processing dependencies between each of the jobs based on the data, and grouping each job in the processing target program based on the identified dependencies to create job groups that can be executed in parallel with each other; an access destination dependency analysis process for identifying a data item in the database that is the access destination of each job, and whether the access form to the data related to the data item is registration, update, deletion, or reference; and an access destination dependency analysis process for identifying a data item in the database that is the access destination of each job, and whether the access form to the data related to the data item is registration, update, deletion, or reference. and when a combination of a first job group and a second job group executed in parallel with each other is identified in which the databases to be accessed are the same but the data items to be accessed by registering, updating or deleting data in the databases do not overlap, the method performs an access destination dependency analysis process to divide the databases into a first database including data items accessed only by the first job group by registering, updating or deleting data, and a second database including data items accessed only by the second job group by registering, updating or deleting data, and a job execution process to execute the job groups that can be executed in parallel with each other in parallel based on the program to be processed.

本発明によれば、ジョブの実行を最適化することができる。 The present invention allows for the optimization of job execution.

上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。 Problems, configurations, and advantages other than those described above will become clear from the description of the embodiments below.

本実施形態に係るジョブ実行支援システムの構成の一例を説明する図である。FIG. 1 is a diagram illustrating an example of a configuration of a job execution support system according to an embodiment of the present invention. 最適化プログラムの構成の一例を説明する図である。FIG. 10 is a diagram illustrating an example of a configuration of an optimization program. ジョブ実行支援処理の一例を説明するフローチャートである。11 is a flowchart illustrating an example of a job execution support process. 解析処理及びジョブ並列化処理の詳細を説明するフローチャートである。13 is a flowchart illustrating details of an analysis process and a job parallelization process. 中間ファイル解析テーブルの一例を説明する図である。FIG. 13 is a diagram illustrating an example of an intermediate file analysis table. 構造解析テーブルの一例並びに各ジョブの実行順序及び処理単位を説明する図である。11A and 11B are diagrams illustrating an example of a structure analysis table and an execution order and processing unit of each job. アクセス先依存関係解析処理により作成されるデータであるアクセス先解析テーブルの一例を示す図である。FIG. 13 is a diagram showing an example of an access destination analysis table which is data created by the access destination dependency analysis process. ジョブプログラムの例を示す図である。FIG. 4 is a diagram illustrating an example of a job program. ジョブグループ作成処理の詳細を説明するフローチャートである。13 is a flowchart illustrating details of a job group creation process. 後続ジョブ特定処理の詳細を説明するフローチャートである。10 is a flowchart illustrating details of a subsequent job specifying process. ジョブグループ作成処理により特定される、バッチ処理プログラム120におけるジョブグループの一例及び、対応する構造解析テーブルの一例を示す図である。11A and 11B are diagrams showing an example of a job group in the batch processing program 120 specified by the job group creation process, and an example of a corresponding structure analysis table. プログラム再構成処理の詳細を説明するフローチャートである。11 is a flowchart illustrating details of a program reconfiguration process. 稼働テスト処理の一例を説明するフローチャートである。11 is a flowchart illustrating an example of an operation test process. 初期学習処理の一例を説明するフローチャートである。11 is a flowchart illustrating an example of an initial learning process. 情報提示処理の詳細を説明するフローチャートである。13 is a flowchart illustrating details of an information presentation process. バッチ処理稼働状況画面の一例を示す図である。FIG. 13 illustrates an example of a batch processing operation status screen. 業務運用処理及び再学習処理の詳細を説明するフローチャートである。13 is a flowchart illustrating details of a business operation process and a relearning process.

以下、本発明の実施形態の一例を、図面を用いて説明する。 An example of an embodiment of the present invention is described below with reference to the drawings.

図1は、本実施形態に係るジョブ実行支援システムの構成の一例を説明する図である。 Figure 1 is a diagram illustrating an example of the configuration of a job execution support system according to this embodiment.

ジョブ実行支援システム1は、1又は複数のサービスプログラム104を記憶しているクラウドシステム10と、サービスプログラム104を実行するユーザが利用するユーザシステム50とを含んで構成されている。 The job execution support system 1 includes a cloud system 10 that stores one or more service programs 104, and a user system 50 that is used by a user who executes the service programs 104.

ユーザシステム50は、例えば、企業の事業所、又はデータセンター等に設けられる情報処理システムであり、サービスプログラム104を用いた所定の業務を行う。なお、ユーザシステム50にも、ローカル環境(オンプレミス環境)として、クラウドシステム10のサービスプログラム104と同等のプログラムが導入されている。 The user system 50 is, for example, an information processing system installed in a company's business premises or a data center, and performs a specified task using the service program 104. Note that a program equivalent to the service program 104 of the cloud system 10 is also installed in the user system 50 as a local environment (on-premise environment).

クラウドシステム10は、APサーバ100、DBサーバ200、及びWebサーバ300を含んで構成されている。クラウドシステム10は、例えば、所定のサービス業者によって管理される情報処理システムである。 The cloud system 10 includes an AP server 100, a DB server 200, and a Web server 300. The cloud system 10 is, for example, an information processing system managed by a specific service provider.

このうちAPサーバ100は、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ101と、CPU102と、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージ103と、DBサーバ200及びWebサーバ300と通信する通信装置108と備える。なお、不図示であるが、APサーバ100は、キーボードやタッチパネル等の入力装置や、ディスプレイやタッチパネル等の出力装置も備える。 Of these, the AP server 100 includes a memory 101 such as a RAM (Random Access Memory) or a ROM (Read Only Memory), a CPU 102, a storage 103 such as a HDD (Hard Disk Drive) or an SSD (Solid State Drive), and a communication device 108 that communicates with the DB server 200 and the Web server 300. Although not shown, the AP server 100 also includes input devices such as a keyboard and a touch panel, and output devices such as a display and a touch panel.

APサーバ100は、ストレージ103に、サービスプログラム104、バッチ処理プログラム120、管理プログラム125、及び最適化プログラム130を記憶している。 The AP server 100 stores a service program 104, a batch processing program 120, a management program 125, and an optimization program 130 in the storage 103.

サービスプログラム104は、クラウドシステム10がユーザシステム50に提供しているプログラム群であり、ユーザが各種の業務を行うために必要なプログラム(処理命令)で構成されている。サービスプログラム104は、APサーバ100が作成する仮想マシン(不図示)で実行される。クラウドシステム10は、仮想マシンのスペック(マシン性能)を定めたリストのうち、ユーザシステム50により指定されたスペックを有する仮想マシンでサービスプログラム104を実行する。 The service program 104 is a group of programs provided by the cloud system 10 to the user system 50, and is composed of programs (processing instructions) necessary for the user to perform various tasks. The service program 104 is executed on a virtual machine (not shown) created by the AP server 100. The cloud system 10 executes the service program 104 on a virtual machine having specifications specified by the user system 50 from a list that defines the virtual machine specifications (machine performance).

バッチ処理プログラム120(処理対象プログラム)は、ユーザの指定するタイミング(例えば、月ごと)で各サービスプログラム104を実行するために設けられる。具体的には、バッチ処理プログラム120は、1又は複数の処理命令(サービスプログラム104に対する処理命令)を含んで構成されている処理単位(以下、ジョブという)を、複数有している。 The batch processing program 120 (the program to be processed) is provided to execute each service program 104 at a timing specified by the user (e.g., monthly). Specifically, the batch processing program 120 has multiple processing units (hereinafter referred to as jobs) that include one or more processing commands (processing commands for the service programs 104).

なお、バッチ処理プログラム120は、例えば、ユーザシステム50にてオンプレミス環境で実行していた所定のプログラムをクラウドシステム10上にアップロードしたものでもよいし、当初からクラウドシステム10に記憶されていたものでもよい。 The batch processing program 120 may be, for example, a specific program that was executed in an on-premise environment in the user system 50 and uploaded to the cloud system 10, or may be a program that was originally stored in the cloud system 10.

バッチ処理プログラム120の各ジョブは、1もしくは複数のサービスプログラム104を実行する処理である実行部と、APサーバ100又はDBサーバ200に記憶されている1もしくは複数のテーブル(不図示)にアクセスする処理であるSQL部を含んで構成されている。なお、ここでのテーブルとは、データベース等のデータ群であり、本実施形態では、1又は複数のデータ項目(カラム)を有する1又は複数のレコードからなるデータベースであるものとする。 Each job of the batch processing program 120 is composed of an execution section which executes one or more service programs 104, and an SQL section which accesses one or more tables (not shown) stored in the AP server 100 or the DB server 200. Note that a table here is a data group such as a database, and in this embodiment, is a database consisting of one or more records having one or more data items (columns).

また、バッチ処理プログラム120は、各ジョブを時間的に並列して実行することが可能である(並列処理が可能である)。具体的には、バッチ処理プログラム120は、各ジョブ及びそれらの実行タイミングを定義した情報であるジョブ定義に基づき実行される。 The batch processing program 120 is also capable of executing each job in parallel over time (parallel processing is possible). Specifically, the batch processing program 120 is executed based on a job definition, which is information that defines each job and the timing of their execution.

なお、バッチ処理プログラム120の形式は特に限定されるものではなく、例えば、所定の言語または規則によって作成されるテキストファイルであるスクリプトであってもよいし、実行可能形式のプログラムであってもよい。 The format of the batch processing program 120 is not particularly limited, and may be, for example, a script, which is a text file created in a specific language or according to rules, or an executable program.

クラウドシステム10は、所定の精算時期が到来すると、クラウドシステム10で実行された各プログラム(バッチ処理プログラム120、サービスプログラム104)の実行時間(処理時間)及び、設定した仮想マシンのスペック等に基づき算出される所定の利用料金を、ユーザシステム50に対して請求する。 When the specified settlement time arrives, the cloud system 10 bills the user system 50 for a specified usage fee calculated based on the execution time (processing time) of each program (batch processing program 120, service program 104) executed in the cloud system 10 and the specifications of the configured virtual machine, etc.

次に、管理プログラム125は、バッチ処理プログラム120を実行する仮想マシンを構築する構築部と、その仮想マシンにおいてバッチ処理プログラム120を実行するジョ
ブ実行部とを備える。
Next, the management program 125 includes a construction unit that constructs a virtual machine that executes the batch processing program 120, and a job execution unit that executes the batch processing program 120 on the virtual machine.

最適化プログラム130は、バッチ処理プログラム120によるサービスプログラム104の実行を最適化するためのプログラム群である。すなわち、最適化プログラム130は、クラウドシステム10の利用料金を低減するように又はクラウドシステム10での処理時間を短縮するように、バッチ処理プログラム120を最適化する。これにより、例えば、ユーザシステム50においてバッチ処理を行っていたプログラムをパブリッククライドであるクラウドシステム10に移行する際に、その処理を最適化することができる。最適化プログラム130の詳細は後述する。 The optimization program 130 is a group of programs for optimizing the execution of the service program 104 by the batch processing program 120. That is, the optimization program 130 optimizes the batch processing program 120 so as to reduce the usage fee for the cloud system 10 or to shorten the processing time in the cloud system 10. This makes it possible to optimize the processing, for example, when a program that performed batch processing in the user system 50 is migrated to the cloud system 10, which is a public client. Details of the optimization program 130 will be described later.

次に、DBサーバ200は、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ206と、CPU207と、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージ201と、APサーバ100と通信する通信装置205とを備える。なお、不図示であるが、DBサーバ200は、キーボードやタッチパネル等の入力装置や、ディスプレイやタッチパネル等の出力装置を備えていてもよい。 Next, the DB server 200 includes a memory 206 such as a RAM (Random Access Memory) or a ROM (Read Only Memory), a CPU 207, a storage 201 such as a HDD (Hard Disk Drive) or an SSD (Solid State Drive), and a communication device 205 that communicates with the AP server 100. Although not shown, the DB server 200 may also include an input device such as a keyboard or a touch panel, and an output device such as a display or a touch panel.

DBサーバ200は、ストレージ201に、バッチ処理プログラム120の実行に必要なデータ及び前記のテーブル等を記憶するバッチ処理領域202と、最適化プログラム130が出力したデータ(例えば、最適化プログラム130によるバッチ処理プログラム120の解析結果のデータ)を記憶する分析結果格納領域203と、後述する処理時間予測モデルを記憶する予測モデル格納領域204とを記憶している。 The DB server 200 stores in the storage 201 a batch processing area 202 that stores data necessary for executing the batch processing program 120 and the above-mentioned tables, an analysis result storage area 203 that stores data output by the optimization program 130 (e.g., data on the analysis results of the batch processing program 120 by the optimization program 130), and a prediction model storage area 204 that stores a processing time prediction model described below.

Webサーバ300は、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ303と、CPU304と、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のストレージ301と、APサーバ100と通信する通信装置305とを備える。 The Web server 300 includes a memory 303 such as a RAM (Random Access Memory) or a ROM (Read Only Memory), a CPU 304, a storage 301 such as a HDD (Hard Disk Drive) or an SSD (Solid State Drive), and a communication device 305 that communicates with the AP server 100.

Webサーバ300は、ストレージ301に、最適化プログラム130によるバッチ処理プログラム120の解析結果の表示画面のデータ(見積提示画面データ302)を記憶する。なお、不図示であるが、Webサーバ300は、キーボードやタッチパネル等の入力装置や、ディスプレイやタッチパネル等の出力装置も備えていてもよい。 The Web server 300 stores in the storage 301 data (quote presentation screen data 302) of a display screen showing the analysis results of the batch processing program 120 by the optimization program 130. Although not shown, the Web server 300 may also include an input device such as a keyboard or a touch panel, and an output device such as a display or a touch panel.

APサーバ100、DBサーバ200、及びWebサーバ300の間は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、専用線等の有線又
は無線の通信ネットワーク5によって通信可能に接続される。また、ユーザシステム50及びクラウドシステム10の間も、同様の通信ネットワーク6によって通信可能に接続される。
The AP server 100, the DB server 200, and the Web server 300 are communicatively connected to each other via a wired or wireless communication network 5 such as a local area network (LAN), a wide area network (WAN), the Internet, a dedicated line, etc. The user system 50 and the cloud system 10 are also communicatively connected to each other via a similar communication network 6.

続いて、最適化プログラム130の詳細を説明する。 Next, we will explain the details of the optimization program 130.

<最適化プログラム>
図2は、最適化プログラム130の構成の一例を説明する図である。最適化プログラム130は、分析プログラム150、変換プログラム160、予測モデル学習プログラム170、及び情報提示プログラム180を有する。
<Optimization program>
2 is a diagram illustrating an example of the configuration of the optimization program 130. The optimization program 130 includes an analysis program 150, a conversion program 160, a prediction model learning program 170, and an information presentation program 180.

分析プログラム150は、バッチ処理プログラム120を解析する。具体的には、分析プログラム150は、中間ファイル依存関係解析部151、テーブル依存関係解析部152、及び構造解析部153を備える。 The analysis program 150 analyzes the batch processing program 120. Specifically, the analysis program 150 includes an intermediate file dependency analysis unit 151, a table dependency analysis unit 152, and a structure analysis unit 153.

中間ファイル依存関係解析部151は、1又は複数の処理命令を実行するジョブを複数
実行する処理対象プログラム(バッチ処理プログラム120)における各ジョブが出力するデータ又は当該各ジョブに入力されるデータ(以下、これらのデータ(を有するファイル)を中間ファイルという)を特定することにより、それらのデータに基づく各ジョブ間の処理の依存関係を特定し、特定した依存関係に基づき、処理対象プログラムにおける各ジョブのうち互いに並列して実行するジョブを特定する。
The intermediate file dependency analysis unit 151 identifies data output by each job in a target program (batch processing program 120) that executes multiple jobs that execute one or more processing instructions, or data input to each of the jobs (hereinafter, files containing such data will be referred to as intermediate files), and thereby identifies processing dependencies between each job based on that data, and identifies jobs in the target program that will be executed in parallel with each other, based on the identified dependencies.

なお、本実施形態では、各ジョブのうち少なくともいずれかは、所定のデータ群(テーブル)における一部(例えば、一部のカラム)又は全部のデータにアクセスするものである。 In this embodiment, at least one of the jobs accesses some (e.g., some columns) or all of the data in a specific data group (table).

また、管理プログラム125のジョブ実行部は、中間ファイル依存関係解析部151が特定したジョブを並列して実行する。 In addition, the job execution unit of the management program 125 executes the jobs identified by the intermediate file dependency analysis unit 151 in parallel.

テーブル依存関係解析部152は、中間ファイル依存関係解析部151で特定した、互いに並列して実行する各ジョブの、データ群(テーブル)に対するアクセス先を解析することにより、アクセス先のデータ群は同一であるがアクセス先のデータ群におけるデータ部分が重複しない、互いに並列して実行する第1のジョブ及び第2のジョブの組み合わせを特定した場合には、そのデータ群を、第1のジョブのみがアクセスするデータ部分を含む第1のデータ群と、第2のジョブのみがアクセスするデータ部分を含む第2のデータ群とに分割する。 The table dependency analysis unit 152 analyzes the access destinations of the data groups (tables) of each job identified by the intermediate file dependency analysis unit 151 and executed in parallel with each other, and when it identifies a combination of a first job and a second job that are executed in parallel with each other and that access the same data group but the data portions of the accessed data group do not overlap, it divides the data group into a first data group that includes a data portion accessed only by the first job, and a second data group that includes a data portion accessed only by the second job.

構造解析部153は、バッチ処理プログラム120における各ジョブの実行単位及び実行順序を特定する。 The structural analysis unit 153 identifies the execution unit and execution order of each job in the batch processing program 120.

次に、変換プログラム160は、バッチ処理プログラム120をテーブル依存関係解析部152の結果に基づき修正する。具体的には、変換プログラム160は、プログラム再構成部161を備える。 Next, the conversion program 160 modifies the batch processing program 120 based on the results of the table dependency analysis unit 152. Specifically, the conversion program 160 includes a program reconfiguration unit 161.

プログラム再構成部161は、テーブル依存関係解析部152で特定した第1のジョブが第1のデータ群にアクセスし、かつテーブル依存関係解析部152で特定した第2のジョブが第2のデータ群にアクセスするように、処理対象プログラム(バッチ処理プログラム120)を変更する。 The program reconfiguration unit 161 modifies the program to be processed (batch processing program 120) so that the first job identified by the table dependency analysis unit 152 accesses a first data group, and the second job identified by the table dependency analysis unit 152 accesses a second data group.

予測モデル学習プログラム170は、所定の学習済みモデルを用いて、バッチ処理プログラム120の将来の処理時間及び利用料金を予測する。具体的には、予測モデル学習プログラム170は、予測モデル作成部171、予測実行部172、及び学習部173を備える。 The prediction model learning program 170 uses a predetermined trained model to predict the future processing time and usage fee of the batch processing program 120. Specifically, the prediction model learning program 170 includes a prediction model creation unit 171, a prediction execution unit 172, and a learning unit 173.

予測モデル作成部171は、複数の実行環境の下で、管理プログラム125が特定した、互いに並列して実行可能なジョブを並列して実行することにより処理対象プログラム(バッチ処理プログラム120)の各処理時間を取得し、取得した各処理時間に基づき、バッチ処理プログラム120の処理時間と、バッチ処理プログラム120の実行環境との間の関係を記憶した情報(処理時間予測モデル)を作成する。 The prediction model creation unit 171 acquires each processing time of the program to be processed (batch processing program 120) by executing in parallel jobs that can be executed in parallel, identified by the management program 125, under multiple execution environments, and creates information (processing time prediction model) that stores the relationship between the processing time of the batch processing program 120 and the execution environment of the batch processing program 120 based on each acquired processing time.

なお、処理時間予測モデルは、例えば、プログラム、条件式、データベース等の形式の情報であって、その形式は特に限定されない。 The processing time prediction model is information in the form of, for example, a program, a conditional expression, a database, etc., and the format is not particularly limited.

また、実行環境とは、本実施形態では、例えば、バッチ処理プログラム120の実行タイミング(年、月、日等により指定)、仮想マシンのスペック、バッチ処理プログラム120に入力されるデータ(トランザクションデータ等)の内容又はデータ量等である。 In this embodiment, the execution environment refers to, for example, the execution timing of the batch processing program 120 (specified by year, month, day, etc.), the specifications of the virtual machine, the content or amount of data (transaction data, etc.) input to the batch processing program 120, etc.

予測実行部172は、ユーザ等により指定された実行環境を前記の情報(処理時間予測モデル)に入力することにより、当該実行環境下における処理対象プログラム(バッチ処理プログラム120)の処理時間を算出し、算出した処理時間と所定の関係を有する実行コストを算出する。 The prediction execution unit 172 inputs the execution environment specified by the user or the like into the above-mentioned information (processing time prediction model), calculates the processing time of the program to be processed (batch processing program 120) in that execution environment, and calculates an execution cost having a predetermined relationship with the calculated processing time.

学習部173は、予測モデル作成部171により作成した処理時間予測モデルに対して新たな教師データを入力することにより、処理時間予測モデルを更新する。 The learning unit 173 updates the processing time prediction model created by the prediction model creation unit 171 by inputting new training data into the processing time prediction model.

情報提示プログラム180は、予測モデル作成部171で作成した処理時間予測モデルによる推定結果を所定の画面に表示する。具体的には、情報提示プログラム180は、見積提示部181を備える。 The information presentation program 180 displays the estimation results based on the processing time prediction model created by the prediction model creation unit 171 on a specified screen. Specifically, the information presentation program 180 includes an estimate presentation unit 181.

見積提示部181は、予測実行部172が算出したコストの情報を表示する。 The estimate presentation unit 181 displays the cost information calculated by the prediction execution unit 172.

また、見積提示部181は、予測実行部172が算出したコストの情報と共に、予測実行部172で指定された実行環境の情報を表示する。 In addition, the estimate presentation unit 181 displays information about the execution environment specified by the prediction execution unit 172 along with information about the cost calculated by the prediction execution unit 172.

以上のプログラムは、APサーバ100のCPU102が、メモリ101又はストレージ103から読み出して実行される。なお、各プログラムは、APサーバ100が読み取り可能な記録媒体に記録されてもよい。 The above programs are read and executed by the CPU 102 of the AP server 100 from the memory 101 or storage 103. Each program may be recorded on a recording medium that is readable by the AP server 100.

続いて、ジョブ実行支援システム1で行われる処理について説明する。ジョブ実行支援システム1は、バッチ処理プログラム120を解析して必要に応じてその書き換えを行うと共に処理時間予測モデルを作成し、バッチ処理プログラム120のクラウドシステム10上での処理時間及び利用料金に関する予測を行う処理であるジョブ実行支援処理を実行する。 Next, we will explain the processing performed by the job execution support system 1. The job execution support system 1 executes a job execution support process, which is a process that analyzes the batch processing program 120, rewrites it as necessary, creates a processing time prediction model, and predicts the processing time and usage fee of the batch processing program 120 on the cloud system 10.

<ジョブ実行支援処理>
図3は、ジョブ実行支援処理の一例を説明するフローチャートである。ジョブ実行支援処理は、例えば、APサーバ100の起動後所定のタイミング(例えば、所定の時間間隔、所定の時刻)に、又は、APサーバ100にユーザシステム50から所定の入力があった場合に、開始される。
<Job Execution Support Processing>
3 is a flowchart illustrating an example of a job execution support process. The job execution support process is started, for example, at a predetermined timing (for example, at a predetermined time interval or at a predetermined time) after the AP server 100 is started, or when the AP server 100 receives a predetermined input from the user system 50.

まず、APサーバ100の分析プログラム150は、バッチ処理プログラム120の解析処理を実行する(ステップ201)。そして、APサーバ100の変換プログラム160は、解析処理の結果に基づき、バッチ処理プログラム120における各ジョブのうち並列して実行が可能なジョブを並列処理させるように、バッチ処理プログラム120を修正するジョブ並列化処理を実行する(ステップ202)。 First, the analysis program 150 of the AP server 100 executes an analysis process of the batch processing program 120 (step 201). Then, the conversion program 160 of the AP server 100 executes a job parallelization process to modify the batch processing program 120 based on the results of the analysis process so that jobs that can be executed in parallel among the jobs in the batch processing program 120 are processed in parallel (step 202).

解析処理及びジョブ並列化処理の詳細は後述する。 Details about the analysis process and job parallelization process will be described later.

APサーバ100の管理プログラム125は、ジョブ並列化処理により修正されたバッチ処理プログラム120を実行する稼動テスト処理を実行する(ステップ203)。これにより、仮想マシンのスペック(性能)が決定される。稼動テスト処理の詳細は後述する。 The management program 125 of the AP server 100 executes an operation test process to execute the batch processing program 120 modified by the job parallelization process (step 203). This determines the specifications (performance) of the virtual machine. The details of the operation test process will be described later.

APサーバ100の予測モデル学習プログラム170は、稼動テスト処理の結果に基づき処理時間予測モデルを新規作成する初期学習処理を実行する(ステップ204)。初期学習処理の詳細は後述する。 The prediction model learning program 170 of the AP server 100 executes an initial learning process to create a new processing time prediction model based on the results of the operation test process (step 204). The details of the initial learning process will be described later.

APサーバ100の情報提示プログラム180は、初期学習処理又は後述する再学習処理により作成された処理時間予測モデルに基づき、バッチ処理プログラム120の処理時間の将来の予測を行うと共に、バッチ処理プログラム120及びサービスプログラム104の利用に係る利用料金を予測する情報提示処理を実行する(ステップ205)。なお、この際、Webサーバ300又はユーザシステム50は、情報提示処理の結果を所定の画面に表示する。 The information presentation program 180 of the AP server 100 predicts the future processing time of the batch processing program 120 based on the processing time prediction model created by the initial learning process or the re-learning process described below, and also executes information presentation processing to predict the usage fees for the batch processing program 120 and the service program 104 (step 205). At this time, the Web server 300 or the user system 50 displays the results of the information presentation processing on a specified screen.

また、APサーバ100は、初期学習処理の実行後、ユーザの業務状況に応じて設定されたタイミング(例えば、所定の時間間隔、所定の時刻、ユーザ入力により指定されたタイミング)にて、バッチ処理プログラム120を随時実行する業務運用処理を実行する(ステップ206)。 After executing the initial learning process, the AP server 100 also executes a business operation process that executes the batch processing program 120 at any time, at a timing set according to the user's business situation (e.g., a specified time interval, a specified time, or a timing specified by user input) (step 206).

APサーバ100の予測モデル学習プログラム170は、業務運用処理の実行前のバッチ処理プログラム120の処理時間の予測値と、業務運用処理における実際の処理時間との乖離程度に応じて処理時間予測モデルの更新を行う、再学習処理を実行する(ステップ207)。 The prediction model learning program 170 of the AP server 100 executes a re-learning process to update the processing time prediction model depending on the degree of deviation between the predicted value of the processing time of the batch processing program 120 before execution of the business operation processing and the actual processing time in the business operation processing (step 207).

なお、業務運用処理及び学習処理の詳細は後述する。その後は、ステップ205以降の処理が繰り返される。なお、ステップ204、ステップ205、及びステップ207の各処理の実行は省略してもよい。 Details of the business operation process and the learning process will be described later. After that, the processes from step 205 onwards are repeated. Note that the execution of the processes of steps 204, 205 and 207 may be omitted.

続いて、ジョブ実行支援処理における各処理の詳細を説明する。 Next, we will explain the details of each process in the job execution support process.

<解析処理及びジョブ並列化処理>
図4は、解析処理及びジョブ並列化処理の詳細を説明するフローチャートである。
<Analysis processing and job parallel processing>
FIG. 4 is a flowchart illustrating the analysis process and the job parallelization process in detail.

まず、分析プログラム150は、バッチ処理プログラム120を読み込む(ステップ301)。 First, the analysis program 150 loads the batch processing program 120 (step 301).

すると、中間ファイル依存関係解析部151は、バッチ処理プログラム120で入出力される中間ファイルに基づく、各ジョブの依存関係を解析する中間ファイル依存関係解析処理を実行する(ステップ302)。 Then, the intermediate file dependency analysis unit 151 executes an intermediate file dependency analysis process to analyze the dependencies of each job based on the intermediate files input and output by the batch processing program 120 (step 302).

(中間ファイル解析テーブル)
ここで、図5は、中間ファイル依存関係解析処理により作成されるデータである中間ファイル解析テーブル500の一例を説明する図である。中間ファイル解析テーブル500は、各ジョブが出力する中間ファイル又は各ジョブに入力される中間ファイルを記憶したデータである。例えば、バッチ処理プログラム120のジョブ「JOB A」は中間ファイル
「FILE f1」を出力し(「OUT」)、「JOB B」がその中間ファイルを読み込む(「IN」)
。一方、ジョブ「JOB E」は、中間ファイル「FILE f2」及び「FILE f3」を読み込む(「IN」)。
(Intermediate file analysis table)
5 is a diagram for explaining an example of an intermediate file analysis table 500, which is data created by the intermediate file dependency analysis process. The intermediate file analysis table 500 is data that stores intermediate files output by each job or intermediate files input to each job. For example, a job "JOB A" of the batch processing program 120 outputs an intermediate file "FILE f1"("OUT"), and "JOB B" reads the intermediate file ("IN").
On the other hand, the job "JOB E" reads the intermediate files "FILE f2" and "FILE f3"("IN").

また、図4のステップ303に示すように、構造解析部153は、バッチ処理プログラム120の構造を解析する構造解析処理を実行する。解析の結果は、構造解析テーブルに記憶される。 Furthermore, as shown in step 303 of FIG. 4, the structure analysis unit 153 executes a structure analysis process to analyze the structure of the batch processing program 120. The results of the analysis are stored in a structure analysis table.

(構造解析テーブル)
図6は、構造解析テーブル550の一例並びに各ジョブの実行順序及び処理単位を説明する図である。構造解析テーブル550は、各ジョブ552の直前に実行されるジョブ5
54、及び、各ジョブ552の直後に実行されるジョブ556の組み合わせからなるデータである。同図の場合、バッチ処理プログラム120は、「JOB A」、「JOB B」、「JOB C」、・・・、「JOB G」の順序で各ジョブを実行する1つの処理単位557(ただし、以降の処理で複数のグループに分割される)からなる。
(Structural analysis table)
6 is a diagram illustrating an example of a structure analysis table 550 and an execution order and processing unit of each job.
5, and a job 556 to be executed immediately after each job 552. In the example shown in FIG. 5, the batch processing program 120 is made up of one processing unit 557 (which is divided into multiple groups in the subsequent processing) that executes each job in the order of "JOB A", "JOB B", "JOB C", ..., and "JOB G".

また、図4のステップ304に示すように、アクセス先依存関係解析部152は、各ジョブのSQL部がアクセスするテーブルを特定するアクセス先依存関係解析処理を実行し、その結果をアクセス先解析テーブルに記憶する。 Also, as shown in step 304 of FIG. 4, the access destination dependency analysis unit 152 executes an access destination dependency analysis process to identify the tables accessed by the SQL part of each job, and stores the results in the access destination analysis table.

(アクセス先解析テーブル)
図7は、アクセス先依存関係解析処理により作成されるデータであるアクセス先解析テーブル600の一例を示す図である。アクセス先解析テーブル600は、バッチ処理プログラム120におけるジョブを実現するプログラム(以下、ジョブプログラムという)を特定する情報が設定されるプログラム項目602、プログラム項目602に係るジョブを構成するジョブの識別子が設定されるジョブ項目604、ジョブ項目604に係るジョブがアクセスするテーブルの識別子が設定されるテーブル項目606、テーブル項目606に係るテーブルにおける具体的なアクセス先のデータ部分(例えば、テーブルにおけるカラム、レコード、又はその他の特定の領域)が設定されるカラム項目608、及び、ジョブ項目604に係るジョブによるカラム項目608に係るデータ部分へのアクセス形態(例えば、データの登録、更新、参照等)を特定する情報が設定されるアクセス項目610の各項目を有する1以上のレコードで構成されるテーブルである。
(Access destination analysis table)
7 is a diagram showing an example of an access destination analysis table 600, which is data created by the access destination dependency analysis process. The access destination analysis table 600 is a table consisting of one or more records having each of the following items: a program item 602 in which information specifying a program (hereinafter referred to as a job program) that realizes a job in the batch processing program 120 is set, a job item 604 in which an identifier of a job that constitutes a job related to the program item 602 is set, a table item 606 in which an identifier of a table accessed by a job related to the job item 604 is set, a column item 608 in which a specific data portion of the table related to the table item 606 (e.g., a column, record, or other specific area in a table) is set, and an access item 610 in which information specifying an access form (e.g., data registration, update, reference, etc.) to the data portion related to the column item 608 by the job related to the job item 604 is set.

同図の例では、「JOB C」を実現するバッチ処理プログラム120「job-c-3.xxx」は、テーブル「t2」におけるカラム「t21」「t22」「t23」に各データを登録しており(「INSERT」)、一方、「JOB D」を実現するバッチ処理プログラム120「job-d-1.xxx」は、
テーブル「t1」におけるカラム「t11」「t12」「t13」「t14」「t15」の各データを参照
している(「SELECT」)。
In the example of the figure, the batch processing program 120 "job-c-3.xxx" that realizes "JOB C" registers ("INSERT") each piece of data into columns "t21", "t22", and "t23" in table "t2". On the other hand, the batch processing program 120 "job-d-1.xxx" that realizes "JOB D"
It references the data in columns "t11", "t12", "t13", "t14", and "t15" in table "t1"("SELECT").

なお、図8は、ジョブプログラムの例を示す図である。この例では、ジョブプログラムは、所定のテーブルにおけるカラムの一部に、所定の値を登録している。 FIG. 8 shows an example of a job program. In this example, the job program registers a specific value in a part of a column in a specific table.

次に、図4のステップ305に示すように、中間ファイル依存関係解析部151は、中間ファイル依存関係特定処理及び構造解析処理の実行後、これらの処理結果(中間ファイル解析テーブル500及び構造解析テーブル550)に基づき、各ジョブをグルーピングしたジョブグループを作成するジョブグループ作成処理を実行する。ジョブグループ作成処理の詳細は後述する(ステップ305)。 Next, as shown in step 305 of FIG. 4, after executing the intermediate file dependency identification process and the structure analysis process, the intermediate file dependency analysis unit 151 executes a job group creation process to create job groups by grouping each job based on the results of these processes (intermediate file analysis table 500 and structure analysis table 550). The job group creation process will be described in detail later (step 305).

また、変換プログラム160のプログラム再構成部161は、テーブル依存関係特定処理の結果(アクセス先解析テーブル600)を用いることで、ジョブグループがアクセスしているテーブルに基づきバッチ処理プログラム120及びこれがアクセスする各テーブルを再構成するプログラム再構成処理を実行する(ステップ306)。プログラム再構成処理の詳細は後述する。 The program reconfiguration unit 161 of the conversion program 160 also uses the results of the table dependency determination process (access destination analysis table 600) to execute a program reconfiguration process to reconfigure the batch processing program 120 and each table it accesses based on the table being accessed by the job group (step 306). The program reconfiguration process will be described in detail later.

プログラム再構成部161は、ステップ306により再構成されたバッチ処理プログラム120による並列処理を実行するためのジョブ定義を作成する(ステップ307)。以上で解析処理及びジョブ並列化処理は終了する。 The program reconfiguration unit 161 creates a job definition for executing parallel processing by the batch processing program 120 reconfigured in step 306 (step 307). This completes the analysis process and job parallelization process.

<ジョブグループ作成処理>
図9は、ジョブグループ作成処理の詳細を説明するフローチャートである。中間ファイル依存関係解析部151は、中間ファイル依存関係解析処理の処理結果を取得する(ステ
ップ401)。具体的には、例えば、中間ファイル依存関係解析部151は、中間ファイル解析テーブル500を読み込む。
<Job group creation process>
9 is a flowchart for explaining the details of the job group creation process. The intermediate file dependency analysis unit 151 acquires the processing result of the intermediate file dependency analysis process (step 401). Specifically, for example, the intermediate file dependency analysis unit 151 reads the intermediate file analysis table 500.

中間ファイル依存関係解析部151は、ステップ401で読み込んだ処理結果に基づき、入力ファイルを有しないジョブを全て特定し(起点ジョブ集合)、特定した各ジョブを、各ジョブグループにおける起点のジョブ(以下、起点ジョブという)として記憶する(ステップ402)。 Based on the processing results read in step 401, the intermediate file dependency analysis unit 151 identifies all jobs that do not have input files (starting job set) and stores each identified job as a starting job in each job group (hereinafter referred to as a starting job) (step 402).

具体的には、例えば、中間ファイル依存関係解析部151は、中間ファイル解析テーブル500のうち、「IN」が設定されていないジョブのレコードを全て特定する。図5の中間ファイル解析テーブル500の例では、「JOB A」「JOB C」「JOB D」「JOB F」のレコードが特定される。 Specifically, for example, the intermediate file dependency analysis unit 151 identifies all records of jobs in which "IN" is not set in the intermediate file analysis table 500. In the example of the intermediate file analysis table 500 in FIG. 5, the records "JOB A", "JOB C", "JOB D", and "JOB F" are identified.

中間ファイル依存関係解析部151は、ステップ402で特定した各起点ジョブについて、当該起点ジョブとの関係で中間ファイルの入出力への依存関係がある他のジョブを全て特定し、特定した各ジョブ及び当該起点ジョブからなるジョブを1つのジョブグループとして特定する後続ジョブ特定処理を実行する(ステップ403)。後続ジョブ特定処理の詳細は後述する。 For each origin job identified in step 402, the intermediate file dependency analysis unit 151 identifies all other jobs that have dependencies on the input and output of intermediate files in relation to the origin job, and executes a subsequent job identification process to identify each of the identified jobs and the origin job as one job group (step 403). The subsequent job identification process will be described in detail later.

中間ファイル依存関係解析部151は、後続ジョブ特定処理で特定した各ジョブグループに基づき、複数のジョブグループに属するジョブを全て特定し、特定した各ジョブについて、そのジョブが属する複数のジョブグループを結合して1つのジョブグループとする(ステップ404)。 The intermediate file dependency analysis unit 151 identifies all jobs that belong to multiple job groups based on each job group identified in the subsequent job identification process, and for each identified job, combines the multiple job groups to which the job belongs into one job group (step 404).

中間ファイル依存関係解析部151は、構造解析処理により特定した各ジョブの実行順序に基づき、各ジョブグループの実行順序を特定する(ステップ405)。 The intermediate file dependency analysis unit 151 identifies the execution order of each job group based on the execution order of each job identified by the structural analysis process (step 405).

具体的には、例えば、中間ファイル依存関係解析部151は、構造解析テーブル550を参照しつつ、各ジョブグループの最初のジョブ(起点ジョブ)及び最後のジョブの先後関係を特定することで、各ジョブグループの実行順序を特定する。 Specifically, for example, the intermediate file dependency analysis unit 151 identifies the order of execution of each job group by referring to the structural analysis table 550 and identifying the precedence/sequence relationship between the first job (start job) and the last job of each job group.

ここで、後続ジョブ特定処理の詳細について説明する。 Here we explain the details of the subsequent job identification process.

<後続ジョブ特定処理>
図10は、後続ジョブ特定処理の詳細を説明するフローチャートである。まず、中間ファイル依存関係解析部151は、ステップ402で起点ジョブを特定できたか否かを判定する(ステップ501)。
<Subsequent job specific processing>
10 is a flowchart for explaining the details of the succeeding job identification process. First, the intermediate file dependency relationship analysis unit 151 judges whether or not the starting job has been identified in step 402 (step 501).

起点ジョブを特定できた場合は、中間ファイル依存関係解析部151は、次述するステップ502を実行し、起点ジョブを特定できなかった場合は、後続ジョブ特定処理は終了する。 If the starting job can be identified, the intermediate file dependency analysis unit 151 executes step 502 described below, and if the starting job cannot be identified, the subsequent job identification process ends.

図5の中間ファイル解析テーブル500の例では、起点ジョブの集合SJSに{ JOB A
、JOB C、JOB D、JOB F}の4つのジョブが含まれるためステップ502が実行される。
In the example of the intermediate file analysis table 500 in FIG. 5, the set SJS of source jobs includes {JOB A
, JOB C, JOB D, and JOB F}, step 502 is executed.

ステップ502において中間ファイル依存関係解析部151は、ステップ402で取得した起点ジョブ集合のうち一つの起点ジョブ選択し、選択した起点ジョブを含むジョブグループを新規作成する。 In step 502, the intermediate file dependency analysis unit 151 selects one origin job from the set of origin jobs obtained in step 402, and creates a new job group that includes the selected origin job.

図5の中間ファイル解析テーブル500の例では、選択した起点ジョブが「JOB A」で
あった場合、新たなジョブグループとして、「JG1=[JOB A]」が作成される。
In the example of the intermediate file analysis table 500 in FIG. 5, if the selected starting job is "JOB A", "JG1=[JOB A]" is created as a new job group.

中間ファイル依存関係解析部151は、ステップ502で作成したジョブグループ(以下、対象グループという)において、起点ジョブの実行以後に実行されるジョブ(後続ジョブ)の情報を格納するデータである後続ジョブ集合NJS及び、後続ジョブがアクセスする中間ファイルの情報を格納するデータである後続ファイル集合NFSをそれぞれ空集合として作成する(ステップ503)。 In the job group (hereinafter referred to as the target group) created in step 502, the intermediate file dependency analysis unit 151 creates a successor job set NJS, which is data that stores information about jobs (successor jobs) that are executed after the execution of the starting job, and a successor file set NFS, which is data that stores information about intermediate files accessed by the successor jobs, as empty sets (step 503).

中間ファイル依存関係解析部151は、ステップ502で選択した起点ジョブ(以下、選択ジョブという)が中間ファイルを出力しているか否かを判定する(ステップ504)。具体的には、中間ファイル依存関係解析部151は、構造解析テーブル550における選択ジョブのレコードに「OUT」が登録されているか否かを判定する。 The intermediate file dependency analysis unit 151 determines whether the origin job selected in step 502 (hereinafter referred to as the selected job) outputs an intermediate file (step 504). Specifically, the intermediate file dependency analysis unit 151 determines whether "OUT" is registered in the record of the selected job in the structure analysis table 550.

選択ジョブが中間ファイルを出力している場合は(ステップ504:YES)、中間ファイル依存関係解析部151は、次述するステップS505を実行し、選択ジョブが中間ファイルを出力していない場合は(ステップ504:NO)、中間ファイル依存関係解析部151は、後述するステップS506を実行する。 If the selected job outputs an intermediate file (step 504: YES), the intermediate file dependency analysis unit 151 executes step S505 described below. If the selected job does not output an intermediate file (step 504: NO), the intermediate file dependency analysis unit 151 executes step S506 described below.

図5の中間ファイル解析テーブル500の例では、「JOB A」は中間ファイル「FILE f1」を出力しているためステップ505が実行される。 In the example of intermediate file analysis table 500 in Figure 5, "JOB A" outputs intermediate file "FILE f1", so step 505 is executed.

ステップ505において中間ファイル依存関係解析部151は、選択ジョブが出力している中間ファイルを全て後続ファイル集合NFSの要素に追加する。 In step 505, the intermediate file dependency analysis unit 151 adds all intermediate files output by the selected job to the elements of the successor file set NFS.

図5の中間ファイル解析テーブル500の例では、後続ファイル集合NFS={FILE f1}となる。 In the example of the intermediate file analysis table 500 in FIG. 5, the successor file set NFS = {FILE f1}.

中間ファイル依存関係解析部151は、ステップ505で得られた後続ファイル集合NFSから中間ファイルを一つ取得する(ステップ507)。なお、中間ファイル依存関係解析部151は、取得した中間ファイルの情報を、(既に考慮済みとして)後続ファイル集合NFSから削除する。 The intermediate file dependency analysis unit 151 acquires one intermediate file from the successor file set NFS obtained in step 505 (step 507). The intermediate file dependency analysis unit 151 deletes the information about the acquired intermediate file from the successor file set NFS (as it has already been taken into account).

図5の中間ファイル解析テーブル500の例では、中間ファイル「FILE f1」が取得さ
れる結果、「後続ファイル集合NFS={}(空集合)」となる。
In the example of the intermediate file analysis table 500 in FIG. 5, the intermediate file "FILE f1" is acquired, resulting in "successor file set NFS={} (empty set)."

中間ファイル依存関係解析部151は、ステップ507で取得した中間ファイルを入力している全てのジョブを、後続ジョブ集合NJSの要素に追加する(ステップ508)。 The intermediate file dependency analysis unit 151 adds all jobs that input the intermediate file obtained in step 507 to the elements of the successor job set NJS (step 508).

図5の中間ファイル解析テーブル500の例では、先の中間ファイル「FILE f1」を入
力している「JOB B」が存在するため、「後続ジョブ集合NJS={JOB B}」となる。
In the example of the intermediate file analysis table 500 in FIG. 5, since there exists "JOB B" which has input the previous intermediate file "FILE f1", "successor job set NJS={JOB B}" is obtained.

中間ファイル依存関係解析部151は、ステップ508で取得した後続ジョブ集合NJSからジョブを一つ取得する(ステップ510)。なお、中間ファイル依存関係解析部151は、取得したジョブを、(既に考慮済みとして)後続ジョブ集合NJSから削除する。 The intermediate file dependency analysis unit 151 acquires one job from the subsequent job set NJS acquired in step 508 (step 510). The intermediate file dependency analysis unit 151 deletes the acquired job from the subsequent job set NJS (as it has already been considered).

図5の中間ファイル解析テーブル500の例では、「JOB B」が選択された結果、「後
続ジョブ集合NJS={}(空集合)」となる(ステップ511)。その後、追加されたジョブについてステップ504の処理を繰り返す。
5, as a result of "JOB B" being selected, "successor job set NJS={} (empty set)" is obtained (step 511). After that, the process of step 504 is repeated for the added job.

中間ファイル依存関係解析部151は、ステップ510で取得したジョブをステップ502で作成したジョブグループに追加する。 The intermediate file dependency analysis unit 151 adds the job obtained in step 510 to the job group created in step 502.

図5の中間ファイル解析テーブル500の例では、「ジョブグループ「JG1」=[JOB
A、JOB B]」となる。その後は、ステップ504以降の処理が繰り返される。
In the example of the intermediate file analysis table 500 in FIG. 5, “Job group “JG1”=[JOB
After that, the process from step 504 onwards is repeated.

ステップ506においては、中間ファイル依存関係解析部151は、以前にステップ505で取得した後続ファイル集合NFSに中間ファイルが存在するか否かを確認する。後続ファイル集合NFSに中間ファイルが存在する場合は(ステップ506:YES)、中間ファイル依存関係解析部151はステップ507以降の処理を実行し、後続ファイル集合NFSに中間ファイルが存在しない場合は(ステップ506:NO)、中間ファイル依存関係解析部151は次述するステップ509を実行する。 In step 506, the intermediate file dependency analysis unit 151 checks whether an intermediate file exists in the subsequent file set NFS previously acquired in step 505. If an intermediate file exists in the subsequent file set NFS (step 506: YES), the intermediate file dependency analysis unit 151 executes the processing from step 507 onwards, and if an intermediate file does not exist in the subsequent file set NFS (step 506: NO), the intermediate file dependency analysis unit 151 executes step 509 described below.

ステップ509において中間ファイル依存関係解析部151は、ステップ508で作成した後続ジョブ集合NJSの要素にジョブが含まれているか否かを確認する。後続ジョブ集合NJSの要素にジョブが含まれている場合は(ステップ509:YES)、中間ファイル依存関係解析部151はそのジョブについてステップ511を実行し、後続ジョブ集合NJSの要素にジョブが含まれていない場合は(ステップ509:NO)、中間ファイル依存関係解析部151はステップ501以降の処理を繰り返す。 In step 509, the intermediate file dependency analysis unit 151 checks whether the element of the succeeding job set NJS created in step 508 includes a job. If the element of the succeeding job set NJS includes a job (step 509: YES), the intermediate file dependency analysis unit 151 executes step 511 for that job, and if the element of the succeeding job set NJS does not include a job (step 509: NO), the intermediate file dependency analysis unit 151 repeats the processing from step 501 onwards.

図5の中間ファイル解析テーブル500の例では、後続ジョブ特定処理により、「JG1=[JOB A、JOB B、JOB E]、JG2=[JOB C]、JG3=[JOB D、JOB E]、JG4=[JOB
F、JOB G]」なる4つのジョブグループが得られる。そして、ステップ404にて、ジョブグループ「JG1」及び「JG3」が結合され、最終的に「JG1=[JOB A、JOB B、JOB D、JOB E]、JG2=[JOB C]、JG4=[JOB F、JOB G]」なる3つのジョブグループ
が抽出される。
In the example of the intermediate file analysis table 500 in FIG. 5, the succeeding job identification process results in the following: "JG1 = [JOB A, JOB B, JOB E], JG2 = [JOB C], JG3 = [JOB D, JOB E], JG4 = [JOB
Then, in step 404, job groups "JG1" and "JOB3" are combined, and finally three job groups "JG1 = [JOB A, JOB B, JOB D, JOB E], JG2 = [JOB C], JG4 = [JOB F, JOB G]" are extracted.

ここで、図11は、ジョブグループ作成処理により特定される、バッチ処理プログラム120におけるジョブグループの一例及び、対応する構造解析テーブル550の一例を示す図である。同図に示すように、バッチ処理プログラム120は、複数のジョブグループ558からなり、具体的には、「JOB A」、「JOB B」、「JOB D」、「JOB E」の順序で各ジョブが実行されるジョブグループ558aと、「JOB C」が実行されるジョブグループ
558bと、「JOB F」、「JOB G」の順序で各ジョブが実行されるジョブグループ558cとからなる。
11 is a diagram showing an example of a job group in the batch processing program 120 specified by the job group creation process, and an example of the corresponding structure analysis table 550. As shown in the diagram, the batch processing program 120 is made up of a plurality of job groups 558, specifically, a job group 558a in which jobs are executed in the order of "JOB A", "JOB B", "JOB D", and "JOB E", a job group 558b in which "JOB C" is executed, and a job group 558c in which jobs are executed in the order of "JOB F" and "JOB G".

このように、ジョブグループ作成処理は、中間ファイルの入出力に係る依存関係に基づき、互いに処理上独立しており並列処理が可能なジョブグループを特定することで、バッチ処理プログラム120の処理結果の整合性を保ちつつ、単にジョブの実行のタイミングを考慮した場合より細かな粒度で並列処理を実現することが可能となる。これにより、バッチ処理プログラム120の処理時間をより短縮させることができる。 In this way, the job group creation process identifies job groups that are independent of each other in terms of processing and can be processed in parallel based on dependencies related to the input and output of intermediate files, making it possible to achieve parallel processing at a finer granularity than when simply considering the timing of job execution while maintaining the consistency of the processing results of the batch processing program 120. This makes it possible to further shorten the processing time of the batch processing program 120.

<プログラム再構成処理>
図12は、プログラム再構成処理の詳細を説明するフローチャートである。
<Program Reconstruction Processing>
FIG. 12 is a flowchart illustrating the program reconfiguration process in detail.

まず、プログラム再構成部161は、ジョブグループ作成処理で決定した各ジョブグループに関して、アクセス先のテーブルが共通しているジョブグループの組を全て特定する(ステップ601)。なお、ここでの「アクセスする」とは、テーブルに対するデータの登録、更新、又は削除を指し、データの参照は含まないものとする。 First, for each job group determined in the job group creation process, the program reconfiguration unit 161 identifies all pairs of job groups that have a common table to be accessed (step 601). Note that "access" here refers to registering, updating, or deleting data in a table, and does not include referencing data.

アクセス先のテーブルが共通しているジョブグループの組がない場合は(ステップ60
1:NO)、プログラム再構成処理は終了し(ステップ606)、アクセス先のテーブルが共通しているジョブグループの組がある場合は(ステップ601:YES)、プログラム再構成部161は、次述するステップ602を実行する。
If there is no job group pair with a common access table (step 60
If there is a pair of job groups that share a common access table (step 601: YES), the program reconfiguration unit 161 executes step 602 described below.

図7のアクセス先解析テーブル600及び図11の構造解析テーブル550の例では、3つのジョブグループ「JG1=[JOB A、JOB B、JOB D、JOB E]」、「JG2=[JOB C]
」、「JG3=[JOB F、JOB G]」がある場合、テーブル「t2」をアクセス先としている
「JG1」及び「JG2」の組が特定される。
In the example of the access destination analysis table 600 in FIG. 7 and the structure analysis table 550 in FIG. 11, there are three job groups "JG1 = [JOB A, JOB B, JOB D, JOB E]" and "JG2 = [JOB C]
" and "JOB3 = [JOB F, JOB G]" are present, the pair of "JG1" and "JG2" that accesses table "t2" is identified.

ステップ602においてプログラム再構成部161は、ステップ601で特定したジョブグループの組(以下、競合ジョブグループという)のそれぞれについて、当該競合ジョブグループが、テーブル内の共通のカラムにアクセスしているか否か(すなわち、アクセス先のカラムが競合しているか否か)を判定する(ステップ602)。 In step 602, the program reconfiguration unit 161 determines, for each of the sets of job groups identified in step 601 (hereinafter referred to as competing job groups), whether the competing job groups are accessing a common column in a table (i.e., whether the accessed columns are in conflict) (step 602).

共通のカラムにアクセスしている競合ジョブグループがない場合は(ステップ602:NO)、プログラム再構成部161は、次述するステップ603~ステップ605の処理を実行する。他方、共通のカラムにアクセスしている競合ジョブグループがある場合は(ステップ602:YES)、プログラム再構成部161は、後述するステップ604の処理を実行する。 If there are no competing job groups accessing the common column (step 602: NO), the program reconfiguration unit 161 executes the processing of steps 603 to 605 described below. On the other hand, if there are competing job groups accessing the common column (step 602: YES), the program reconfiguration unit 161 executes the processing of step 604 described below.

図7のアクセス先解析テーブル600の例では、テーブル項目606及びアクセス項目610が参照される結果、「JOB C」を有するジョブグループ内のジョブプログラムであ
る「job-c-3.xxx」はテーブル「t2」にデータを登録し、「JOB E」を有する他のジョブグループ内のジョブプログラムである「job-e-5.xxx」もテーブル「t2」にデータを登録し
ていることが特定されるため(ステップ601)、ステップ602の処理が行われる。ステップ602においては、カラム項目608及びアクセス項目610が参照される結果、各競合ジョブグループ内のジョブプログラムである「job-c-3.xxx」及び「job-e-5.xxx」はデータを登録しているカラムが重複していないため(「t21」「t22」「t23」と「t24」「t25」)、ステップ603の処理が行われる。
7, as a result of referring to the table item 606 and the access item 610, it is determined that "job-c-3.xxx", which is a job program in a job group having "JOB C", has registered data in the table "t2", and "job-e-5.xxx", which is a job program in another job group having "JOB E", has also registered data in the table "t2" (step 601), so that the process of step 602 is performed. In step 602, as a result of referring to the column item 608 and the access item 610, it is determined that the columns in which the job programs "job-c-3.xxx" and "job-e-5.xxx" in each competing job group have registered data do not overlap ("t21", "t22", "t23" and "t24", "t25"), so that the process of step 603 is performed.

ステップ603において、プログラム再構成部161は、ステップ602にてアクセス先のテーブルが競合していると判定した全ての競合ジョブグループについて、その競合ジョブグループの共通のアクセス先のテーブルを複数のテーブルに分割する。 In step 603, for all competing job groups whose access destination tables are determined to be in conflict in step 602, the program reconfiguration unit 161 divides the common access destination table of the competing job groups into multiple tables.

具体的には、プログラム再構成部161は、テーブルの垂直分割を行う。例えば、プログラム再構成部161は、当該アクセス先のテーブルのうち、各競合ジョブグループがアクセスするカラムの部分を特定し、当該テーブルから当該カラムの部分を分離して新たなテーブルを作成する。 Specifically, the program reconfiguration unit 161 performs vertical partitioning of the table. For example, the program reconfiguration unit 161 identifies the portion of the column that is accessed by each competing job group in the table to be accessed, and separates the portion of the column from the table to create a new table.

図7のアクセス先解析テーブル600の例では、アクセス先のテーブル「t2」が、競合ジョブグループ内のジョブプログラム「job-c-3.xxx」がアクセスするカラムである「t21」「t22」「t23」を含むテーブル「t2A」と、他の競合ジョブグループ内のジョブプログ
ラム「job-e-5.xxx」がアクセスするカラムである「t24」「t25」を含むテーブル「t2B」とに分割される。
In the example of the access destination analysis table 600 in FIG. 7, the access destination table "t2" is divided into a table "t2A" that includes columns "t21,""t22," and "t23" that are accessed by a job program "job-c-3.xxx" in a competing job group, and a table "t2B" that includes columns "t24" and "t25" that are accessed by a job program "job-e-5.xxx" in another competing job group.

プログラム再構成部161は、各競合ジョブグループが、ステップ603で分割して作成した新たなテーブルにアクセスできるように、バッチ処理プログラム120を修正する、すなわち書き換える(ステップ605)。 The program reconfiguration unit 161 modifies, i.e., rewrites, the batch processing program 120 so that each competing job group can access the new table created by division in step 603 (step 605).

図7のアクセス先解析テーブル600の例では、カラム「t21」「t22」「t23」にアク
セスしていた「job-c-3.xxx」が、テーブル「t2」ではなくテーブル「t2A」をアクセス先とするようにし、カラム「t24」「t25」にアクセスしていた「job-e-5.xxx」が、テーブ
ル「t2」ではなく「t2B」を参照するように、バッチ処理プログラム120を書き換える
。その後、プログラム再構成処理は終了する(ステップ606)。
In the example of the access destination analysis table 600 in Fig. 7, the batch processing program 120 is rewritten so that "job-c-3.xxx", which has been accessing columns "t21", "t22", and "t23", accesses table "t2A" instead of table "t2", and "job-e-5.xxx", which has been accessing columns "t24" and "t25", references table "t2B" instead of table "t2". The program reconfiguration process then ends (step 606).

他方、ステップ604においてプログラム再構成部161は、アクセス先のテーブル及びカラムが競合している競合ジョブグループについて、それらの競合ジョブグループを結合することで新たなジョブグループを作成する。 On the other hand, in step 604, the program reconfiguration unit 161 creates a new job group by combining competing job groups whose accessed tables and columns conflict with each other.

この処理は、テーブル及びカラムが共に競合しているジョブグループは、それらの実行順序に依存関係があり並列処理が不可能であるがゆえに行われる。その後、プログラム再構成処理は終了する(ステップ606)。 This process is performed because job groups in which both tables and columns are in conflict have dependencies on their execution order, making parallel processing impossible. The program reconfiguration process then ends (step 606).

このように、各ジョブグループのアクセス先のテーブルを、その競合関係に基づき分割することで、処理上のボトルネックとなりやすい、各テーブルへのアクセス待ち時間(DB
I/O待ち時間)を低減又は解消することができる。これにより、バッチ処理プログラム120の処理時間の大幅な短縮効果が見込まれる。
In this way, by dividing the tables accessed by each job group based on their competitive relationships, the waiting time for accessing each table (DB
This is expected to have a significant effect in shortening the processing time of the batch processing program 120.

<稼動テスト処理>
図13は、稼働テスト処理の一例を説明するフローチャートである。なお、本処理は、ジョブ並列化処理の終了後にクラウドシステム10がユーザからの所定の入力を受け付けることによって開始してもよいし、クラウドシステム10が所定のタイミング(例えば、所定の時間間隔、所定の時刻)で自動的に実行してもよい。
<Operation test processing>
13 is a flowchart illustrating an example of an operation test process. Note that this process may be started by the cloud system 10 receiving a predetermined input from a user after the job parallelization process is completed, or may be automatically executed by the cloud system 10 at a predetermined timing (e.g., at a predetermined time interval or at a predetermined time).

まず、管理プログラム125は、オンプレミス環境で運用されていたユーザシステム50の環境と同等のシステムの環境を、クラウド上に構築する(ステップ701)。 First, the management program 125 creates a system environment on the cloud that is equivalent to the environment of the user system 50 that was operated in an on-premise environment (step 701).

具体的には、例えば、管理プログラム125は、ユーザシステム50に設定されている、バッチ処理プログラム120の実行に使用されている仮想マシンと同様のスペックを有する仮想マシンを、APサーバ100に作成する。 Specifically, for example, the management program 125 creates a virtual machine in the AP server 100 that has the same specifications as the virtual machine that is configured in the user system 50 and is used to execute the batch processing program 120.

管理プログラム125は、ステップ701で作成した仮想マシン上で、ジョブ並列化処理で作成したバッチ処理プログラム120を実行する。そして、管理プログラム125は、このバッチ処理プログラム120の実行に係る時間(処理時間)を取得すると共に、その利用料金を算出する(ステップ702)。 The management program 125 executes the batch processing program 120 created by the job parallelization process on the virtual machine created in step 701. The management program 125 then obtains the time (processing time) required for the execution of this batch processing program 120 and calculates the usage fee (step 702).

具体的には、まず、管理プログラム125は、所定の業務データ(例えば、過去の所定月のトランザクションデータ)をバッチ処理プログラム120に入力することにより、当該バッチ処理プログラム120を実行し、その処理時間を取得する。また、管理プログラム125は、予め記憶しておいた、クラウドシステム10の利用料金(コスト)とプログラムの処理時間との関係を記憶した料金テーブル(データベース)を参照することにより、処理時間に対応する利用料金を算出する。なお、管理プログラム125は、ユーザから、処理時間又は利用料金の入力を受け付けてもよい。 Specifically, first, the management program 125 executes the batch processing program 120 by inputting specified business data (e.g., transaction data from a specified past month) into the batch processing program 120, and obtains the processing time. The management program 125 also calculates the usage fee corresponding to the processing time by referring to a fee table (database) that stores the relationship between the usage fee (cost) of the cloud system 10 and the processing time of the program, which has been stored in advance. The management program 125 may also accept input of the processing time or usage fee from the user.

管理プログラム125は、ステップ701で作成した仮想マシンの性能を変更した上で、ステップ702と同様にバッチ処理プログラム120を再び実行する。管理プログラム125は、このバッチ処理プログラム120の実行に係る処理時間、及びその利用料金を算出する(ステップ703)。 The management program 125 changes the performance of the virtual machine created in step 701, and then executes the batch processing program 120 again, as in step 702. The management program 125 calculates the processing time required to execute this batch processing program 120, and the usage fee for it (step 703).

具体的には、例えば、管理プログラム125は、ステップ701で作成した仮想マシン
の性能を一段階上げる(例えば、メモリを所定値増加させる、CPUの性能を所定値上げる等)。なお、性能を下げるようにしてもよい。また、この場合、管理プログラム125が自動的に性能を変更してもよいし、管理プログラム125がユーザから性能の情報の入力を受け付けてもよい。
Specifically, for example, the management program 125 increases the performance of the virtual machine created in step 701 by one level (for example, by increasing the memory by a predetermined value, increasing the CPU performance by a predetermined value, etc.). Note that the performance may also be decreased. In this case, the management program 125 may automatically change the performance, or the management program 125 may receive performance information input from the user.

管理プログラム125は、ステップ702により算出された利用料金よりもステップ703により算出された利用料金が減少し、かつ、ステップ702により算出された処理時間よりもステップ703により算出された処理時間が短縮したか否かを判定する(ステップ704)。 The management program 125 determines whether the usage fee calculated in step 703 is less than the usage fee calculated in step 702 and whether the processing time calculated in step 703 is shorter than the processing time calculated in step 702 (step 704).

利用料金が低減しかつ処理時間が短縮した場合は(ステップ704:YES)、管理プログラム125は、仮想マシンをさらに異なる性能に変更して(さらに一段階性能を上げて)ステップ703を実行する。他方、利用料金が低減せず又は処理時間が短縮しなかった場合は(ステップ704:NO)、管理プログラム125は、次述するステップ705を実行する。 If the usage fee has been reduced and the processing time has been shortened (step 704: YES), the management program 125 changes the virtual machine to a different performance (further increasing the performance by one step) and executes step 703. On the other hand, if the usage fee has not been reduced or the processing time has not been shortened (step 704: NO), the management program 125 executes step 705, which will be described next.

ステップ705において管理プログラム125は、最後にステップ703で設定した性能の直前の性能を、最終的な仮想マシンの性能とする。これにより、稼動テスト処理は終了する。 In step 705, the management program 125 sets the performance immediately prior to the performance last set in step 703 as the final performance of the virtual machine. This ends the operation test process.

<初期学習処理>
図14は、初期学習処理の一例を説明するフローチャートである。まず、管理プログラム125は、稼動テスト処理にて設定した性能の仮想マシンにおいて、過去の所定期間の業務データ(例えば、過去の所定月のトランザクションデータ)を、ジョブ並列化処理で作成したバッチ処理プログラム120に入力することで、当該バッチ処理プログラム120を実行する。そして、管理プログラム125は、このバッチ処理プログラム120の処理時間及び利用料金を、稼動テスト処理と同様にして算出する(ステップ801)。管理プログラム125は、算出した処理時間及び利用料金を、分析結果格納領域203及び予測モデル格納領域204に格納する。
<Initial learning process>
14 is a flowchart for explaining an example of the initial learning process. First, the management program 125 executes the batch processing program 120 created in the job parallelization process by inputting business data from a predetermined period in the past (e.g., transaction data from a predetermined month in the past) into the batch processing program 120 created in the job parallelization process in a virtual machine with the performance set in the operation test process. Then, the management program 125 calculates the processing time and usage fee of this batch processing program 120 in the same manner as the operation test process (step 801). The management program 125 stores the calculated processing time and usage fee in the analysis result storage area 203 and the prediction model storage area 204.

なお、前記の稼動テスト処理においては、本処理と同様の業務データを用いてもよい。また、管理プログラム125は、ユーザから、処理時間又は利用料金の入力を受け付けてもよい。 In addition, the above-mentioned operation test process may use the same business data as in this process. In addition, the management program 125 may accept input of the processing time or usage fee from the user.

そして、予測モデル学習プログラム170の予測モデル作成部171は、バッチ処理プログラム120の実行環境(例えば、バッチ処理プログラム120の実行時期、ステップ801で使用した業務データの内容又はデータ量、仮想マシンのスペック)と、ステップ801で算出した処理時間との間の関係を学習し、その関係を処理時間予測モデルとして記憶する(ステップ802)。 Then, the prediction model creation unit 171 of the prediction model learning program 170 learns the relationship between the execution environment of the batch processing program 120 (e.g., the execution time of the batch processing program 120, the content or amount of business data used in step 801, the specifications of the virtual machine) and the processing time calculated in step 801, and stores the relationship as a processing time prediction model (step 802).

具体的には、例えば、予測モデル作成部171は、両者の関係を規定したプログラム、データベース、又は条件式等を作成する。 Specifically, for example, the prediction model creation unit 171 creates a program, database, or conditional expression that specifies the relationship between the two.

予測実行部172は、ステップ802で作成した処理時間予測モデルの予測精度を算出する(ステップ803)。 The prediction execution unit 172 calculates the prediction accuracy of the processing time prediction model created in step 802 (step 803).

具体的には、例えば、予測実行部172は、ステップ801で使用した、過去の所定期間における業務データを処理時間予測モデルに入力することにより、その期間におけるバッチ処理プログラム120の処理時間を算出する。また、予測実行部172は、前記の料金テーブルを用いることにより、算出された処理時間に対応する利用料金(コスト)を算
出する。そして、予測実行部172は、算出した処理時間及び利用料金と、実績値として予め蓄積している実際のバッチ処理プログラム120の処理時間及び実際に請求された利用料金とを比較し、処理時間及び利用料金に関する差分値(処理時間予測モデルによる算出結果と実績値との差)を算出する。以上で初期学習処理は終了する(ステップ804)。
Specifically, for example, the prediction execution unit 172 inputs the business data for a predetermined period in the past used in step 801 into the processing time prediction model, thereby calculating the processing time of the batch processing program 120 for that period. The prediction execution unit 172 also calculates the usage fee (cost) corresponding to the calculated processing time by using the fee table. The prediction execution unit 172 then compares the calculated processing time and usage fee with the actual processing time of the batch processing program 120 stored in advance as actual values and the usage fee actually charged, and calculates the difference value (the difference between the calculation result using the processing time prediction model and the actual value) for the processing time and usage fee. This ends the initial learning process (step 804).

<情報提示処理>
図15は、情報提示処理の詳細を説明するフローチャートである。まず、情報提示プログラム180の見積提示部181は、稼動テスト処理で設定した性能を、ユーザに提案する仮想マシンの性能(リソース案)として記憶する(ステップ901)。
<Information presentation processing>
15 is a flowchart for explaining the details of the information presentation process. First, the estimate presentation unit 181 of the information presentation program 180 stores the performance set in the operation test process as the performance (resource proposal) of the virtual machine to be proposed to the user (step 901).

見積提示部181は、処理時間予測モデルを用いて、将来の所定期間における、バッチ処理プログラム120の実行に係る利用料金を算出する(ステップ902)。 The estimate presentation unit 181 uses the processing time prediction model to calculate the usage fee for the execution of the batch processing program 120 for a specified future period (step 902).

具体的には、例えば、見積提示部181は、予測対象とする将来の所定期間の情報(例えば、今後3年間といった情報)を処理時間予測モデルに入力することにより、利用料金を算出する。なお、見積提示部181は、将来の所定期間に利用される業務データを入力することで利用料金を算出してもよい。 Specifically, for example, the estimate presenting unit 181 calculates the usage fee by inputting information on a predetermined future period to be predicted (e.g., information on the next three years) into the processing time prediction model. Note that the estimate presenting unit 181 may calculate the usage fee by inputting business data to be used in a predetermined future period.

見積提示部181は、ステップ902で算出した利用料金の信頼性の高さを示すパラメータ(信頼度)を算出する(ステップ903)。 The estimate presentation unit 181 calculates a parameter (reliability) indicating the reliability of the usage fee calculated in step 902 (step 903).

具体的には、例えば、見積提示部181は、ステップ902で指定された期間に対応する過去の期間(例えば、過去の同月)における処理時間予測モデルの予測精度(初期学習処理で算出した予測精度)を、信頼度として算出する。 Specifically, for example, the estimate presenting unit 181 calculates the prediction accuracy (prediction accuracy calculated in the initial learning process) of the processing time prediction model for a past period (e.g., the same past month) corresponding to the period specified in step 902 as the reliability.

見積提示部181は、バッチ処理プログラム120の情報、ステップ901で記憶した仮想マシンの性能(リソース案)、ステップ902で算出した利用料金の予測値、利用料金の実績値、及び、ステップ903で算出した信頼度等の情報を表示するための見積提示画面データ302を作成し、作成した見積提示画面データ302を、APサーバ100、Webサーバ300、又はユーザシステム50等の所定の画面に表示させる。 The quotation presentation unit 181 creates quotation presentation screen data 302 for displaying information such as the batch processing program 120 information, the virtual machine performance (resource plan) stored in step 901, the predicted usage fee calculated in step 902, the actual usage fee value, and the reliability calculated in step 903, and displays the created quotation presentation screen data 302 on a specified screen of the AP server 100, the Web server 300, or the user system 50, etc.

(見積提示画面)
ここで、図16は、見積提示画面の一例を示す図である。見積提示画面1000は、バッチ処理プログラム120の現在の実行状況の情報1012、及び最終実行時の情報1014を含むジョブ情報項目1010と、仮想マシンの性能1022、その仮想マシンの利用に係る利用料金の情報1024(例えば、単位時間当たりの単価)、及び、算出された今月の利用料金1026(前月との比較情報があってもよい)の情報を含むマシン情報項目1020と、過去の利用料金の実績値の変動1032、及び利用料金の予測値の変動1034の変動がグラフ表示されるコスト推移項目1030と、コスト推移項目1030と同様に処理時間の実績値及び算出結果が表示される処理時間推移項目1040とを有する。
(Quote presentation screen)
16 is a diagram showing an example of a quote presentation screen. The quote presentation screen 1000 has a job information item 1010 including information 1012 on the current execution status of the batch processing program 120 and information 1014 on the last execution time, a machine information item 1020 including information on the performance 1022 of a virtual machine, information 1024 on the usage fee related to the use of the virtual machine (e.g., unit price per unit time), and calculated usage fee 1026 for this month (comparison information with the previous month may also be included), a cost transition item 1030 in which fluctuations 1032 of the actual value of the usage fee in the past and fluctuations 1034 of the predicted value of the usage fee are displayed in graph form, and a processing time transition item 1040 in which the actual value and calculation result of the processing time are displayed similarly to the cost transition item 1030.

ユーザは、この見積提示画面1000を参照することにより、どのような仮想マシンの性能に基づいてバッチ処理プログラム120を利用すればどの程度利用料金及び処理時間が最適化されるかの予測の内容や、その予測の精度を知ることができる。 By referring to this quotation presentation screen 1000, the user can learn the details of the prediction regarding the extent to which usage fees and processing time can be optimized by using the batch processing program 120 based on the performance of the virtual machine, as well as the accuracy of the prediction.

<業務運用処理及び再学習処理>
図17は、業務運用処理及び再学習処理の詳細を説明するフローチャートである。
<Business operation processing and re-learning processing>
FIG. 17 is a flowchart illustrating the details of the business operation process and the relearning process.

まず、管理プログラム125は、業務運用に応じて、バッチ処理プログラム120を随時実行する(ステップ1001)。具体的には、例えば、管理プログラム125は、ユーザから指定されたタイミングで、又は、予め設定されたタイミングで(例えば、所定の時間間隔、所定の時刻)、所定のトランザクションデータの入力に基づきバッチ処理プログラム120を実行する。 First, the management program 125 executes the batch processing program 120 as needed in accordance with business operations (step 1001). Specifically, for example, the management program 125 executes the batch processing program 120 based on the input of specified transaction data at a timing specified by the user or at a preset timing (for example, at a specified time interval or at a specified time).

そして、管理プログラム125は、初期学習処理と同様に、バッチ処理プログラム120の処理時間及び利用料金を算出する(ステップ1002)。管理プログラム125は、算出した処理時間及び利用料金を、分析結果格納領域203及び予測モデル格納領域204に格納する。なお、管理プログラム125は、ユーザから、処理時間又は利用料金の入力を受け付けてもよい。 Then, the management program 125 calculates the processing time and usage fee of the batch processing program 120, similar to the initial learning process (step 1002). The management program 125 stores the calculated processing time and usage fee in the analysis result storage area 203 and the prediction model storage area 204. The management program 125 may also accept input of the processing time or usage fee from the user.

予測モデル学習プログラム170の学習部173は、ステップ1001及びステップ1002の結果を追加の教師データとして処理時間予測モデルに入力することにより、初期学習処理と同様にして処理時間予測モデルを学習する(ステップ1003)。また、予測実行部172は、初期学習処理と同様にして、処理時間予測モデルの予測精度を算出する。 The learning unit 173 of the prediction model learning program 170 learns the processing time prediction model in the same manner as the initial learning process by inputting the results of steps 1001 and 1002 into the processing time prediction model as additional training data (step 1003). In addition, the prediction execution unit 172 calculates the prediction accuracy of the processing time prediction model in the same manner as the initial learning process.

予測実行部172は、ステップ1003で算出した予測精度及びこれまでに算出した予測精度に基づき、処理時間予測モデルの予測精度が安定しているか否かを判定する(ステップ1004)。具体的には、予測実行部172は、これまでに算出した予測精度の時系列変動を解析し、予測精度が一定の値に収束しているか否かを判定する。 Based on the prediction accuracy calculated in step 1003 and the prediction accuracy calculated so far, the prediction execution unit 172 determines whether the prediction accuracy of the processing time prediction model is stable (step 1004). Specifically, the prediction execution unit 172 analyzes the time series fluctuation of the prediction accuracy calculated so far, and determines whether the prediction accuracy has converged to a certain value.

処理時間予測モデルの予測精度が安定していない場合は(ステップ1004:NO)、ステップ1001以降の処理が繰り返し行われ、処理時間予測モデルの予測精度が安定している場合は(ステップ1004:YES)、予測実行部172は、バッチ処理プログラム120についての処理時間予測モデルの学習をこれ以上行わないようにする(ステップ1005)。具体的には、例えば、予測実行部172は、所定の再学習フラグを「FALSE」に設定する。以上で業務運用処理及び再学習処理は終了する。 If the prediction accuracy of the processing time prediction model is not stable (step 1004: NO), the processing from step 1001 onwards is repeated, and if the prediction accuracy of the processing time prediction model is stable (step 1004: YES), the prediction execution unit 172 does not further train the processing time prediction model for the batch processing program 120 (step 1005). Specifically, for example, the prediction execution unit 172 sets a predetermined re-learning flag to "FALSE". This ends the business operation processing and re-learning processing.

以上に説明したように、本実施形態のジョブ実行支援システム1は、ジョブを複数有するバッチ処理プログラム120における各ジョブの中間ファイルを特定することにより、中間ファイルに基づく各ジョブ間の処理の依存関係を特定し、特定した依存関係に基づき、バッチ処理プログラム120における各ジョブのうち互いに並列して実行するジョブを特定し、特定したジョブを並列して実行する。 As described above, the job execution support system 1 of this embodiment identifies intermediate files for each job in a batch processing program 120 that has multiple jobs, identifies processing dependencies between each job based on the intermediate files, and based on the identified dependencies, identifies jobs in the batch processing program 120 that are to be executed in parallel with each other, and executes the identified jobs in parallel.

このように、バッチ処理プログラムにおける中間ファイルに着目してジョブ間の依存関係を特定し、これに基づく並列処理を構成することで、バッチ処理プログラム120の実行時間を短縮することができる。これにより、ジョブの実行を最適化することができる。 In this way, by focusing on intermediate files in the batch processing program to identify dependencies between jobs and configuring parallel processing based on this, the execution time of the batch processing program 120 can be reduced. This makes it possible to optimize job execution.

本発明は上記の実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。例えば、実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。 The present invention is not limited to the above-described embodiment, and includes various modified examples. For example, the above-described embodiment has been described in detail to clearly explain the present invention, and is not necessarily limited to having all of the configurations described. For example, it is possible to add, delete, or replace part of the configuration of the embodiment with other configurations.

例えば、本実施形態では、プログラム再構成処理において、カラムに基づくテーブルの垂直分割を行うものとしたが、他の分割方法が採用されてもよい。例えば、レコードに基づく水平分割、テーブル内の所定の区画に基づく分割等が行われてもよい。 For example, in this embodiment, the program reconfiguration process vertically divides the table based on columns, but other division methods may be used. For example, horizontal division based on records, division based on specific sections within the table, etc. may be used.

また、本実施形態では、テーブルはデータベースであるものとしたが、特にそのデータ
形式が限定されるものではなく、所定のデータ群を構成していればよい。
In addition, in this embodiment, the table is a database, but the data format is not particularly limited, and it is sufficient if the table constitutes a predetermined data group.

また、本実施形態では、バッチ処理プログラム120又はサービスプログラム104を実行するのは仮想マシンであるものとしたが、物理的な計算機としても同様である。 In addition, in this embodiment, the batch processing program 120 or the service program 104 is executed by a virtual machine, but it may also be executed by a physical computer.

また、本実施形態では、中間ファイルに基づくジョブグループの作成方法として後続ジョブ特定処理のフローを示したが、グルーピングの方法はここで示したフローに限らず、中間ファイルに基づくジョブ間の依存関係が特定できればどのような方法でもよい。 In addition, in this embodiment, the flow of the succeeding job identification process is shown as a method for creating a job group based on an intermediate file, but the grouping method is not limited to the flow shown here, and any method can be used as long as the dependencies between jobs based on intermediate files can be identified.

また、本実施形態では、稼動テスト処理において、オンプレミス運用時と同様の仮想マシンをクラウド上に作成してバッチ処理プログラム120の稼動テストを行うものとしたが、ローカル(ユーザシステム50)にて仮想マシンを作成してバッチ処理プログラム120の稼動テストを行うようにしてもよい。これにより、稼動テストに係るクラウドシステム10の利用料金を節約することができる。 In addition, in this embodiment, in the operation test process, a virtual machine similar to that used during on-premise operation is created on the cloud to perform an operation test of the batch processing program 120, but a virtual machine may also be created locally (on the user system 50) to perform an operation test of the batch processing program 120. This can reduce the usage fee for the cloud system 10 related to the operation test.

また、本実施形態では、処理時間予測モデルに使用する業務データとして各月のトランザクションデータを挙げたが、その他のデータ、例えば、各月の前後の月のトランザクションデータとの関係性を示すデータ、ユーザが設定した利用料金の料金プラン等のデータを用いてもよい。 In addition, in this embodiment, transaction data for each month is used as the business data to be used in the processing time prediction model, but other data, such as data showing the relationship between transaction data for each month and the month before and after, and data such as the fee plan for usage fees set by the user, may also be used.

また、本実施形態では、処理時間予測モデルの出力パラメータとして、処理時間に加えて又は処理時間に代えて、実行コストを設定してもよい(すなわち、料金テーブルを用いない)。 In addition, in this embodiment, the execution cost may be set as an output parameter of the processing time prediction model in addition to or instead of the processing time (i.e., a fee table is not used).

以上の本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のジョブ実行支援システム1において、前記各ジョブのうち少なくともいずれかは、所定のデータ群における一部のデータにアクセスするものであり、前記演算装置が、前記互いに並列して実行する各ジョブの、前記データ群に対するアクセス先を解析することにより、アクセス先の前記データ群は同一であるが前記アクセス先のデータ群におけるデータ部分が重複しない、前記互いに並列して実行する第1のジョブ及び第2のジョブの組み合わせを特定した場合には、前記データ群を、前記第1のジョブのみがアクセスするデータ部分を含む第1のデータ群と、前記第2のジョブのみがアクセスするデータ部分を含む第2のデータ群とに分割するアクセス先依存関係解析処理を実行する、としてもよい。 The above description of the present specification makes at least the following clear. That is, in the job execution support system 1 of this embodiment, at least one of the jobs accesses a portion of data in a predetermined data group, and when the arithmetic device analyzes the access destinations of the jobs executed in parallel to each other for the data group, and identifies a combination of a first job and a second job executed in parallel to each other in which the data group of the access destination is the same but the data portions of the data group of the access destination do not overlap, the arithmetic device may execute an access destination dependency analysis process that divides the data group into a first data group including a data portion accessed only by the first job and a second data group including a data portion accessed only by the second job.

このように、アクセス先のデータ群(テーブル)は競合するがそのデータ群における具体的なアクセス先(カラム等)が競合しないジョブ(ジョブグループ)の組がある場合は、そのテーブルを分割してそれぞれのジョブが異なるテーブルにアクセスするようにすることで、テーブルへのアクセスに係るボトルネックを解消し、バッチ処理プログラムの処理時間を効果的に低減することができる。 In this way, if there is a set of jobs (job groups) that conflict over the data groups (tables) they access but do not conflict over the specific access destinations (columns, etc.) within those data groups, you can split the tables so that each job accesses a different table, eliminating bottlenecks related to accessing the tables and effectively reducing the processing time of the batch processing program.

また、本実施形態のジョブ実行支援システム1において、前記演算装置が、前記特定した第1のジョブが前記第1のデータ群にアクセスし、かつ前記特定した第2のジョブが前記第2のデータ群にアクセスするように、前記処理対象プログラムを変更するプログラム再構成処理を実行する、としてもよい。 In addition, in the job execution support system 1 of this embodiment, the arithmetic device may execute a program reconfiguration process that changes the target program so that the identified first job accesses the first data group and the identified second job accesses the second data group.

このように、バッチ処理プログラム120において、各ジョブにおけるアクセス先の記述を書き換えることにより、各ジョブのアクセス先へのアクセス時間を短縮することができる。 In this way, by rewriting the description of the access destination for each job in the batch processing program 120, the access time to the access destination for each job can be reduced.

また、本実施形態のジョブ実行支援システム1において、前記演算装置が、複数の実行
環境の下で前記互いに並列して実行可能なジョブを並列して実行することにより前記処理対象プログラムの各処理時間を取得し、取得した各処理時間に基づき、前記処理対象プログラムの処理時間と、前記処理対象プログラムの実行環境との間の関係を記憶した情報を作成する予測モデル作成処理と、指定された実行環境を前記情報に入力することにより、当該実行環境下における前記処理対象プログラムの処理時間を算出し、算出した処理時間と所定の関係を有する実行コストを算出する予測実行処理と、前記算出したコストの情報を表示する見積提示処理とを実行する、としてもよい。
Furthermore, in the job execution support system 1 of this embodiment, the arithmetic device may execute in parallel jobs under a plurality of execution environments to acquire each processing time of the target program, and based on each acquired processing time, execute a prediction model creation process to create information storing a relationship between the processing time of the target program and the execution environment of the target program, a prediction execution process to input a specified execution environment into the information to calculate the processing time of the target program under that execution environment, and calculate an execution cost having a predetermined relationship with the calculated processing time, and an estimate presentation process to display information of the calculated cost.

このように、バッチ処理プログラム120の処理時間及びその実行環境に関する予測モデルを作成することで、ユーザ等が指定した実行環境の下でのバッチ処理プログラム120の処理時間を算出することができる。また、これにより、ユーザは、指定された実行環境の下でのバッチ処理プログラム120の実行コストを知ることができる。 In this way, by creating a prediction model for the processing time of the batch processing program 120 and its execution environment, it is possible to calculate the processing time of the batch processing program 120 in an execution environment specified by a user, etc. This also allows the user to know the execution cost of the batch processing program 120 in the specified execution environment.

また、本実施形態のジョブ実行支援システムにおいて、前記演算装置が、前記見積提示処理において、前記コストの情報と共に、前記指定された実行環境の情報を表示する、としてもよい。 In addition, in the job execution support system of this embodiment, the computing device may display information about the specified execution environment together with the cost information during the estimate presentation process.

これにより、ユーザは、バッチ処理プログラム120の適切な実行環境を知ることができる。 This allows the user to know the appropriate execution environment for the batch processing program 120.

以上のように、本実施形態のジョブ実行支援システム1によれば、ジョブの並列化等を行うことで、バッチ処理プログラム120に関して、オンプレミス(ユーザシステム50)での運用時よりも、クラウド上(クラウドシステム10)でのバッチ処理の処理時間の短縮が期待でき、クラウドシステム10の利用料(仮想マシンの利用料)を削減することができる。 As described above, according to the job execution support system 1 of this embodiment, by performing parallelization of jobs, etc., it is expected that the processing time of batch processing for the batch processing program 120 can be shortened on the cloud (cloud system 10) compared to when it is operated on-premise (user system 50), and the usage fee for the cloud system 10 (usage fee for virtual machine) can be reduced.

また、競合するテーブルや具体的なアクセス先に関する依存関係の解析を行うことで、ジョブの並列化による処理時間の削減効果を最大限発揮することができる。 In addition, by analyzing dependencies between conflicting tables and specific access destinations, you can maximize the effect of reducing processing time by parallelizing jobs.

また、処理時間予測モデルを用いることで、クラウドシステム10の運行コスト(利用料)を予測でき、企業においては予算確保が容易になる。 In addition, by using the processing time prediction model, the operating costs (usage fees) of the cloud system 10 can be predicted, making it easier for companies to secure budgets.

1 ジョブ実行支援システム、10 クラウドシステム、100 APサーバ、200 DBサーバ、300 Webサーバ 1 Job execution support system, 10 Cloud system, 100 AP server, 200 DB server, 300 Web server

Claims (6)

所定のデータ項目を有するデータベースを記憶している記憶装置、及び、
1又は複数の処理命令を実行するジョブを複数実行する処理対象プログラムにおける各前記ジョブが出力するデータ又は当該各ジョブに入力されるデータを特定することにより、前記データに基づく各前記ジョブ間の処理の依存関係を特定し、特定した依存関係に基づき、前記処理対象プログラムにおける各ジョブをグルーピングして、互いに並列して実行可能なジョブグループを作成する中間ファイル依存関係解析処理と、
各ジョブのアクセス先の前記データベースのデータ項目、及び、当該データ項目に係るデータへのアクセス形態が登録、更新、削除、又は参照のいずれであるかを特定するアクセス先依存関係解析処理と
前記互いに並列して実行する各ジョブグループに属するジョブの、前記データベースに対するアクセス先を前記特定した各アクセス形態に基づき解析することにより、アクセス先の前記データベースは同一であるが前記データベースにおいてデータの登録、更新、又は削除によるアクセス先のデータ項目が重複しない、前記互いに並列して実行する第1のジョブグループ及び第2のジョブグループの組み合わせを特定した場合には、前記データベースを、前記第1のジョブグループのみがデータの登録、更新、又は削除によりアクセスするデータ項目を含む第1のデータベースと、前記第2のジョブグループのみがデータの登録、更新、又は削除によりアクセスするデータ項目を含む第2のデータベースとに分割するアクセス先依存関係解析処理と、
前記処理対象プログラムに基づき、前記互いに並列して実行可能なジョブグループを並列して実行するジョブ実行処理と、
を実行する演算装置を備えるジョブ実行支援システム。
a storage device storing a database having predetermined data items; and
an intermediate file dependency analysis process for identifying data output by or input to each job in a process target program that executes a plurality of jobs that execute one or a plurality of processing instructions, thereby identifying dependency relationships between the jobs based on the data, and grouping the jobs in the process target program based on the identified dependency relationships to create job groups that can be executed in parallel with each other;
an access dependency analysis process for identifying the data items of the database accessed by each job and whether the access form to the data related to the data items is registration, update, deletion, or reference;
an access destination dependency relationship analysis process for, when a combination of the first job group and the second job group executed in parallel with each other is identified in which the databases to which the access destinations are the same but data items to which the access destinations are accessed by registering, updating, or deleting data in the databases do not overlap, dividing the databases into a first database including data items accessed only by the first job group by registering, updating, or deleting data, and a second database including data items accessed only by the second job group by registering, updating, or deleting data;
a job execution process for executing in parallel the job groups that can be executed in parallel with each other based on the program to be processed;
A job execution support system comprising a computing device that executes the above.
前記演算装置が、
前記特定した第1のジョブグループが前記第1のデータベースにアクセスし、かつ前記特定した第2のジョブグループが前記第2のデータベースにアクセスするように、前記処理対象プログラムを変更するプログラム再構成処理を実行する、
請求項に記載のジョブ実行支援システム。
The computing device,
executing a program reconfiguration process for modifying the processing target program so that the specified first job group accesses the first database and the specified second job group accesses the second database ;
The job execution support system according to claim 1 .
前記演算装置が、
複数の実行環境の下で、前記互いに並列して実行可能なジョブグループを並列して実行することにより前記処理対象プログラムの各処理時間を取得し、取得した各処理時間に基づき、前記処理対象プログラムの処理時間と、前記処理対象プログラムの実行環境との間の関係を学習したモデルを作成する予測モデル作成処理と、
指定された実行環境を前記モデルに入力することにより、当該実行環境下における前記処理対象プログラムの処理時間を算出し、算出した処理時間と所定の関係を有する実行コストを算出する予測実行処理と、
前記算出したコストの情報を表示する見積提示処理とを実行する、
請求項1に記載のジョブ実行支援システム。
The computing device,
a prediction model creation process for acquiring each processing time of the target program by executing the job groups that can be executed in parallel in a plurality of execution environments in parallel, and creating a model that learns the relationship between the processing time of the target program and the execution environment of the target program based on each acquired processing time;
a prediction execution process for inputting a specified execution environment into the model to calculate a processing time of the target program in the execution environment, and calculating an execution cost having a predetermined relationship with the calculated processing time;
and executing an estimate presentation process for displaying information on the calculated cost.
The job execution support system according to claim 1 .
前記演算装置が、前記見積提示処理において、前記コストの情報と共に、前記指定された実行環境の情報を表示する、
請求項に記載のジョブ実行支援システム。
the computing device displays information on the specified execution environment together with the cost information in the estimate presentation process.
The job execution support system according to claim 3 .
前記演算装置が、The computing device,
前記処理対象プログラムが実行される毎に、前記処理対象プログラムの実行環境及び処理時間を追加の教師データとして前記モデルに入力することにより、前記モデルを再学習する再学習処理を実行する、performing a re-learning process for re-learning the model by inputting an execution environment and a processing time of the program to be processed as additional training data every time the program to be processed is executed;
請求項3に記載のジョブ実行支援システム。The job execution support system according to claim 3 .
所定のデータ項目を有するデータベースを記憶している記憶装置を備える情報処理装置が、
1又は複数の処理命令を実行するジョブを複数実行する処理対象プログラムにおける各前記ジョブが出力するデータ又は当該各ジョブに入力されるデータを特定することにより、前記データに基づく各前記ジョブ間の処理の依存関係を特定し、特定した依存関係に基づき、前記処理対象プログラムにおける各ジョブをグルーピングして、互いに並列して実行可能なジョブグループを作成する中間ファイル依存関係解析処理と、
各ジョブのアクセス先の前記データベースのデータ項目、及び、当該データ項目に係るデータへのアクセス形態が登録、更新、削除、又は参照のいずれであるかを特定するアクセス先依存関係解析処理と、
前記互いに並列して実行する各ジョブグループに属するジョブの、前記データベースに対するアクセス先を前記特定した各アクセス形態に基づき解析することにより、アクセス先の前記データベースは同一であるが前記データベースにおいてデータの登録、更新、又は削除によるアクセス先のデータ項目が重複しない、前記互いに並列して実行する第1のジョブグループ及び第2のジョブグループの組み合わせを特定した場合には、前記データベースを、前記第1のジョブグループのみがデータの登録、更新、又は削除によりアクセスするデータ項目を含む第1のデータベースと、前記第2のジョブグループのみがデータの登録、更新、又は削除によりアクセスするデータ項目を含む第2のデータベースとに分割するアクセス先依存関係解析処理と、
前記処理対象プログラムに基づき、前記互いに並列して実行可能なジョブグループを並列して実行するジョブ実行処理と、を実行する、ジョブ実行支援方法。
An information processing device having a storage device storing a database having predetermined data items ,
an intermediate file dependency analysis process for identifying data output by or input to each job in a process target program that executes a plurality of jobs that execute one or a plurality of processing instructions, thereby identifying dependency relationships between the jobs based on the data, and grouping the jobs in the process target program based on the identified dependency relationships to create job groups that can be executed in parallel with each other;
an access dependency analysis process for identifying the data items of the database accessed by each job and whether the access form to the data related to the data items is registration, update, deletion, or reference;
an access destination dependency relationship analysis process for, when a combination of the first job group and the second job group executed in parallel with each other is identified in which the databases to which the access destinations are the same but data items to which the access destinations are accessed by registering, updating, or deleting data in the databases do not overlap, dividing the databases into a first database including data items accessed only by the first job group by registering, updating, or deleting data, and a second database including data items accessed only by the second job group by registering, updating, or deleting data;
a job execution process for executing in parallel the job groups that are executable in parallel with each other based on the program to be processed; and a job execution support method for executing the job execution process.
JP2020008278A 2020-01-22 2020-01-22 JOB EXECUTION SUPPORT SYSTEM AND JOB EXECUTION SUPPORT METHOD Active JP7471091B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020008278A JP7471091B2 (en) 2020-01-22 2020-01-22 JOB EXECUTION SUPPORT SYSTEM AND JOB EXECUTION SUPPORT METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020008278A JP7471091B2 (en) 2020-01-22 2020-01-22 JOB EXECUTION SUPPORT SYSTEM AND JOB EXECUTION SUPPORT METHOD

Publications (3)

Publication Number Publication Date
JP2021117524A JP2021117524A (en) 2021-08-10
JP2021117524A5 JP2021117524A5 (en) 2023-01-30
JP7471091B2 true JP7471091B2 (en) 2024-04-19

Family

ID=77175621

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020008278A Active JP7471091B2 (en) 2020-01-22 2020-01-22 JOB EXECUTION SUPPORT SYSTEM AND JOB EXECUTION SUPPORT METHOD

Country Status (1)

Country Link
JP (1) JP7471091B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2023210086A1 (en) * 2022-04-27 2023-11-02

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241642A (en) 2006-03-08 2007-09-20 Kubota Systems Inc Analysis method, analysis apparatus, and computer program
JP2008217766A (en) 2007-02-28 2008-09-18 Sap Ag Distribution of data and task instance in grid environment
WO2010098034A1 (en) 2009-02-24 2010-09-02 日本電気株式会社 Distributed database management system and distributed database management method
JP2016219068A (en) 2016-09-28 2016-12-22 富士通株式会社 Information processing apparatus, method, and program
JP2018072907A (en) 2016-10-25 2018-05-10 株式会社日立製作所 Information processing system
JP2018151803A (en) 2017-03-13 2018-09-27 日立オートモティブシステムズ株式会社 Inspection device of computer program, and on-vehicle device for inspecting computer program for vehicle control

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241642A (en) 2006-03-08 2007-09-20 Kubota Systems Inc Analysis method, analysis apparatus, and computer program
JP2008217766A (en) 2007-02-28 2008-09-18 Sap Ag Distribution of data and task instance in grid environment
WO2010098034A1 (en) 2009-02-24 2010-09-02 日本電気株式会社 Distributed database management system and distributed database management method
JP2016219068A (en) 2016-09-28 2016-12-22 富士通株式会社 Information processing apparatus, method, and program
JP2018072907A (en) 2016-10-25 2018-05-10 株式会社日立製作所 Information processing system
JP2018151803A (en) 2017-03-13 2018-09-27 日立オートモティブシステムズ株式会社 Inspection device of computer program, and on-vehicle device for inspecting computer program for vehicle control

Also Published As

Publication number Publication date
JP2021117524A (en) 2021-08-10

Similar Documents

Publication Publication Date Title
US11442764B2 (en) Optimizing the deployment of virtual resources and automating post-deployment actions in a cloud environment
CN108304201B (en) Object updating method, device and equipment
US8276112B2 (en) Performance-related decision support for model-driven engineering
US9058216B2 (en) Method for estimating job run time
Liu et al. Multi-objective scheduling of scientific workflows in multisite clouds
US10963232B2 (en) Constructing and enhancing a deployment pattern
US10373071B2 (en) Automated intelligent data navigation and prediction tool
US10685319B2 (en) Big data sourcing simulator
US11263562B1 (en) System and method for computer-assisted improvement of business intelligence exosystem
US10552771B2 (en) Analyzing data management-related and/or contract management-related operations of an organization
US11681930B2 (en) Method for configuring a matching component
US11698803B2 (en) System and methods for improved adoption of cloud container profiles
CN111919228A (en) Flexible energy information aggregation
JPWO2018066040A1 (en) Management computer and test environment determination method
KR101975272B1 (en) System and method for recommending component reuse based on collaboration dependency
US11599813B1 (en) Interactive workflow generation for machine learning lifecycle management
JP7471091B2 (en) JOB EXECUTION SUPPORT SYSTEM AND JOB EXECUTION SUPPORT METHOD
Ciavotta et al. Architectural design of cloud applications: A performance-aware cost minimization approach
JP6695847B2 (en) Software parts management system, computer
AU2019208236A1 (en) Data platform and analytics for predicting media metrics
KR20190143595A (en) Method and system for optimizing concurrent schedule
US11989517B2 (en) Conversational automated machine learning
JP6913071B2 (en) Test support method, test execution method, test support device and computer program
US20230052352A1 (en) Systems and methods for assigning attribution weights to nodes
Hidiroglu Context-aware load testing in continuous software engineering

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240313

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: 20240402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240409

R150 Certificate of patent or registration of utility model

Ref document number: 7471091

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150