Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5566936B2 - Job execution system and program - Google Patents
[go: Go Back, main page]

JP5566936B2 - Job execution system and program - Google Patents

Job execution system and program Download PDF

Info

Publication number
JP5566936B2
JP5566936B2 JP2011068909A JP2011068909A JP5566936B2 JP 5566936 B2 JP5566936 B2 JP 5566936B2 JP 2011068909 A JP2011068909 A JP 2011068909A JP 2011068909 A JP2011068909 A JP 2011068909A JP 5566936 B2 JP5566936 B2 JP 5566936B2
Authority
JP
Japan
Prior art keywords
job
execution
instance
rollback
argument
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.)
Expired - Fee Related
Application number
JP2011068909A
Other languages
Japanese (ja)
Other versions
JP2012203732A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2011068909A priority Critical patent/JP5566936B2/en
Publication of JP2012203732A publication Critical patent/JP2012203732A/en
Application granted granted Critical
Publication of JP5566936B2 publication Critical patent/JP5566936B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明の実施形態は、ジョブ実行システム及びプログラムに関する。   Embodiments described herein relate generally to a job execution system and a program.

一般に、コンピュータが処理する仕事の単位をジョブと呼ぶ。例えばデータを収集する処理、収集したデータを分析してレポートを作成する処理、そのレポートを印刷する処理などがジョブの単位である。この例では、3種類のジョブの実行順序に依存関係があるため、依存関係に従ってジョブの実行順序を制御する必要がある。   In general, a unit of work processed by a computer is called a job. For example, the unit of job is a process of collecting data, a process of generating a report by analyzing the collected data, and a process of printing the report. In this example, since the execution order of the three types of jobs has a dependency relationship, it is necessary to control the job execution order according to the dependency relationship.

複数のジョブに依存関係がなければ、処理効率を上げるために各ジョブを並行して実行することもある。例えば、複数種類のデータを独立して収集する場合には、データリソースごとにデータ収集ジョブを並行して実行することがある。   If there is no dependency among a plurality of jobs, the jobs may be executed in parallel in order to increase processing efficiency. For example, when collecting multiple types of data independently, a data collection job may be executed in parallel for each data resource.

複数のコンピューティングリソース(CPU、データなど)と複数のジョブがある場合、使用するコンピューティングリソースとジョブの実行順序とを適切にスケジューリングする必要が生じる。通常は、限られたコンピューティングリソースを効率的に使用する制約の下で、ジョブの実行順序がスケジューリングされる。   When there are a plurality of computing resources (CPU, data, etc.) and a plurality of jobs, it is necessary to appropriately schedule the computing resources to be used and the job execution order. Normally, job execution order is scheduled under the constraint of efficiently using limited computing resources.

一般に、複数のジョブの実行順序をコンピュータに指示する技術としてジョブネットが用いられている。ジョブネットでは、依存関係のないジョブの「逐次実行」や、「並列実行」や、「条件分岐」などを定義できる。また、個々のジョブをロールバック可能に実装しておき、あるジョブの実行に失敗したら、やり直すなどの制御も実行されている。   In general, a job net is used as a technique for instructing a computer to execute a plurality of jobs. In a job net, you can define “sequential execution”, “parallel execution”, “conditional branching”, etc., for jobs without dependencies. In addition, control is performed such that an individual job is mounted so that it can be rolled back, and if a job fails to be executed, the job is retried.

図21及び図22はジョブネット定義情報の図表現とデータ構造の例を示す模式図であり、図23は条件分岐で2番目の条件にヒットした場合のジョブの実行例を示す模式図である。   21 and 22 are schematic diagrams showing examples of graphical representation and data structure of job net definition information, and FIG. 23 is a schematic diagram showing an example of job execution when the second condition is hit in a conditional branch. .

始めに、図22に示すジョブネット定義情報1に従い、先頭ジョブjob0が実行される。先頭ジョブjob0の実行が完了すると、第1〜第3ジョブjob1, job2, job3が並行して実行される。第1〜第3ジョブjob1, job2, job3の実行が完了すると、次の条件分岐に進む。   First, the head job job0 is executed in accordance with the job net definition information 1 shown in FIG. When the execution of the first job job0 is completed, the first to third jobs job1, job2, job3 are executed in parallel. When execution of the first to third jobs job1, job2, and job3 is completed, the process proceeds to the next conditional branch.

条件分岐では、条件にヒットしたジョブが選択的に実行される。図22に示すジョブネット定義情報1では、第2ジョブjob2の返却値が1の場合に第4ジョブjob4が実行され、第2ジョブjob2の返却値が2の場合に第5ジョブjob5が実行され、他の場合に第6ジョブjob6が実行される。   In conditional branching, a job that hits a condition is selectively executed. In the job net definition information 1 shown in FIG. 22, when the return value of the second job job2 is 1, the fourth job job4 is executed, and when the return value of the second job job2 is 2, the fifth job job5 is executed. In other cases, the sixth job job6 is executed.

この例では、第2ジョブjob2の返却値が2となり、第5ジョブjob5が実行されるとする。第5ジョブjob5の実行が完了すると、最終ジョブjob7が実行される。最終ジョブjob7の実行が完了すると、ジョブネット全体の実行が完了する。   In this example, it is assumed that the return value of the second job job2 is 2, and the fifth job job5 is executed. When the execution of the fifth job job5 is completed, the final job job7 is executed. When the execution of the final job job7 is completed, the execution of the entire job net is completed.

なお、第1〜第3ジョブjob1, job2, job3は、同一コンピュータリソース上で実行される場合に限らず、複数のコンピュータリソース上で並列に実行される場合もある。   The first to third jobs job1, job2, and job3 are not limited to being executed on the same computer resource, but may be executed in parallel on a plurality of computer resources.

また、上記の例では「逐次実行」、「並列実行」、「条件分岐」といった3種類の実行順序を表現するジョブネットを使っているが、必ずしもこれらに限定されるわけではない。例えば、「逐次実行」と「並列実行」の2種類だけであっても良いし、または、「逐次実行」/「並列実行」/「条件分岐」の他に、繰り返しループがあっても良い。   In the above example, a job net expressing three types of execution order such as “sequential execution”, “parallel execution”, and “conditional branch” is used, but the job net is not necessarily limited thereto. For example, there may be only two types of “sequential execution” and “parallel execution”, or there may be an iterative loop in addition to “sequential execution” / “parallel execution” / “conditional branch”.

このような並列/分散処理としては、ジョブネットなどで明示的に並列実行を指示する技術に加え、例えば、ロードバランサを用いた負荷分散技術や、MapReduceによる分散処理技術などを用いてもよい。   As such parallel / distributed processing, for example, a load distribution technology using a load balancer, a distributed processing technology using MapReduce, or the like may be used in addition to a technology that explicitly instructs parallel execution using a job net or the like.

一方、CPUの内部でも、命令列の並列処理が実行されている。例えば、投機実行により、先行命令が完了する前に、先行命令の結果を予測しながら後続命令を仮実行し、予測が異なっていたら後続命令をやり直すといったスケジューリングがなされている。   On the other hand, parallel processing of instruction sequences is also executed inside the CPU. For example, by speculative execution, before the preceding instruction is completed, the subsequent instruction is provisionally executed while predicting the result of the preceding instruction, and if the prediction is different, the subsequent instruction is redone.

特開平9−218861号公報JP-A-9-218861

以上説明したように、通常は、限られたコンピューティングリソースを効率的に使用する制約の下で、ジョブの実行順序がスケジューリングされている。   As described above, normally, the job execution order is scheduled under the constraint of efficiently using limited computing resources.

ここで、本発明者の検討によれば、仮想化技術やクラウドコンピューティング技術の普及により、余剰リソースを柔軟に使用できる環境になり得ると共に、余剰リソースを十分に用いて処理時間を短縮させるジョブ実行スケジューリングが要請される可能性がある。   Here, according to the study of the present inventor, with the widespread use of virtualization technology and cloud computing technology, it is possible to create an environment where surplus resources can be flexibly used, and jobs that sufficiently use surplus resources and reduce processing time Execution scheduling may be requested.

このようなジョブ実行スケジューリングにおいては、例えば、CPU/マシン語レベルの投機実行のように、ジョブネット実行時にも先読みしてジョブを実行し、ジョブネット全体(実行順序に制約のあるジョブの集まり)の処理にかかる時間を短縮できるとよい。   In such job execution scheduling, for example, a job is pre-read even when executing a job net, such as speculative execution at the CPU / machine language level, and the entire job net (a collection of jobs with restrictions on the execution order). It is desirable to reduce the time required for this process.

しかしながら、本発明者の検討によれば、ジョブネットの下でジョブを先読み実行するには、次の不都合がある。すなわち、前述したジョブネット定義情報では、ジョブ間の依存関係の有無を表現し切れない。このため、ジョブネット定義情報に基づくジョブスケジューリングでは、ジョブを先読み実行できるか否かを判断できない不都合がある。   However, according to the study of the present inventor, there are the following inconveniences when prefetching and executing a job under a job net. In other words, the above-described job net definition information cannot fully express the presence or absence of dependency between jobs. For this reason, in the job scheduling based on the job net definition information, it is not possible to determine whether or not the job can be read ahead.

本明細書に開示した実施形態は、ジョブを先読み実行できるか否かを判断でき、ジョブネット全体の実行にかかる時間を短縮し得るジョブ実行システム及びプログラムを提供することを目的とする。   An object of the embodiment disclosed in the present specification is to provide a job execution system and a program that can determine whether or not a job can be prefetched and reduce the time required to execute the entire job net.

実施形態のジョブ実行システムは、互いに通信可能なジョブ起動制御装置及びジョブ実行装置を備えている。   The job execution system according to the embodiment includes a job activation control device and a job execution device that can communicate with each other.

前記ジョブ起動制御装置の定義情報記憶手段は、前記各ジョブを識別するジョブIDが当該各ジョブの実行順序の順に配列して記述されており、前記各ジョブのうちの幾つかの各ジョブを分岐させて並列に実行する場合には当該幾つかの各ジョブのジョブIDに関連付けて前記分岐の条件が更に記述されているジョブネット定義情報を記憶する。   The definition information storage means of the job activation control device describes job IDs for identifying the jobs arranged in the order of execution of the jobs, and branches several jobs of the jobs. In the case of executing in parallel, the job net definition information further describing the branch condition is stored in association with the job IDs of the respective jobs.

前記ジョブ起動制御装置の依存内容記憶手段は、前記ジョブIDと、当該ジョブIDのジョブが依存する依存元のジョブを識別する依存元のジョブIDと、前記依存する内容が前記依存元のジョブの実行過程又は返却値である旨を示す依存内容と、を関連付けて記憶する。   The dependent content storage unit of the job activation control device includes the job ID, the dependent job ID for identifying the dependent job on which the job with the job ID depends, and the dependent content of the dependent job. Dependent content indicating that it is an execution process or a return value is stored in association with each other.

前記ジョブ起動制御装置のジョブ補正情報記憶手段は、前記ジョブIDと、当該ジョブIDのジョブのロールバックの可否を示すロールバック情報と、当該ジョブの引数補正の可否と引数のデフォルト値とを示す引数補正情報と、を関連付けて記憶する。   The job correction information storage unit of the job activation control device indicates the job ID, rollback information indicating whether or not the job of the job ID can be rolled back, whether or not argument correction of the job is possible, and a default value of the argument. The argument correction information is stored in association with each other.

前記ジョブ起動制御装置の実行状態記憶手段は、前記ジョブIDと、当該ジョブIDのジョブとして実行されたジョブインスタンスを識別するジョブインスタンスIDと、前記ジョブインスタンスの状態が実行中、完了又は失敗である旨を示す実行状態と、前記ジョブインスタンスの実行が前記実行順序通りの本実行か又は前記本実行の実行順序よりも先に実行された先読み実行かを示す実行種別と、前記実行状態が完了を示す場合のジョブインスタンスの返却値と、を関連付けて記憶する。   The execution status storage unit of the job activation control device includes the job ID, a job instance ID for identifying a job instance executed as a job of the job ID, and the status of the job instance is executing, completed or failed. An execution status indicating that the execution of the job instance is a main execution according to the execution order or a pre-read execution executed before the execution order of the main execution, and the execution state is completed. The return value of the job instance in the case of indicating is stored in association with each other.

前記ジョブ起動制御装置の第1の起動指示送信手段は、前記実行状態記憶手段内で本実行を示す実行種別と完了を示す実行状態との両者に関連付けられたジョブIDに一致する前記定義情報記憶手段内のジョブIDのうち、当該定義情報記憶手段内で最後の実行順序のジョブIDを抽出する。   The first activation instruction transmission unit of the job activation control device stores the definition information that matches the job ID associated with both the execution type indicating the main execution and the execution state indicating the completion in the execution state storage unit. Among the job IDs in the means, the job ID in the last execution order is extracted in the definition information storage means.

前記ジョブ起動制御装置の第1の起動指示送信手段は、この抽出したジョブIDの実行順序の次の実行順序に配列されたジョブIDを選択する。   The first activation instruction transmission unit of the job activation control device selects a job ID arranged in the execution order next to the execution order of the extracted job ID.

前記ジョブ起動制御装置の第1の起動指示送信手段は、この選択したジョブIDに一致する前記実行状態記憶手段内のジョブIDに対して先読み実行を示す実行種別と実行中を示す実行状態との両者が関連付けられていないとき、当該選択したジョブIDのジョブとして実行されるジョブインスタンスを識別するジョブインスタンスIDを指定する。   The first activation instruction transmission unit of the job activation control device includes an execution type indicating pre-read execution and an execution state indicating execution in progress for the job ID in the execution state storage unit that matches the selected job ID. When the two are not associated, a job instance ID for identifying a job instance to be executed as a job of the selected job ID is designated.

前記ジョブ起動制御装置の第1の起動指示送信手段は、当該選択したジョブID及び当該指定したジョブインスタンスIDを含む第1の起動指示を前記ジョブ実行装置に送信する。   The first activation instruction transmitting means of the job activation control apparatus transmits a first activation instruction including the selected job ID and the designated job instance ID to the job execution apparatus.

前記ジョブ起動制御装置は、前記第1の起動指示内のジョブインスタンスIDと、実行中を示す実行状態と、本実行を示す実行種別と、を当該第1の起動指示内のジョブIDに関連付けて前記実行状態記憶手段に書き込む。   The job activation control device associates a job instance ID in the first activation instruction, an execution state indicating execution, and an execution type indicating actual execution with the job ID in the first activation instruction. Write to the execution state storage means.

前記ジョブ起動制御装置の先読み候補選択手段は、前記実行状態記憶手段内で実行中又は完了を示す実行状態に関連付けられたジョブIDとは異なるジョブIDであり、且つ前記依存内容記憶手段内で前記実行過程である旨を示す依存内容に関連付けられていないジョブIDを先読み実行候補のジョブIDとして選択する。   The pre-reading candidate selection unit of the job activation control device is a job ID different from a job ID associated with an execution state indicating execution or completion in the execution state storage unit, and the dependency content storage unit includes the job ID. A job ID that is not associated with the dependency content indicating that it is an execution process is selected as a pre-read execution candidate job ID.

前記ジョブ起動制御装置の第2の起動指示送信手段は、前記選択された先読み実行候補のジョブIDのうち、前記ジョブ補正情報記憶手段内でロールバックの可を示すロールバック情報又は引数補正の可を示す引数補正情報に関連付けられたジョブIDを選択する。   The second activation instruction transmission unit of the job activation control device can perform rollback information or argument correction indicating that rollback is possible in the job correction information storage unit among the job IDs of the selected prefetch execution candidates. The job ID associated with the argument correction information indicating “” is selected.

前記ジョブ起動制御装置の第2の起動指示送信手段は、この選択したジョブIDに一致する前記定義情報記憶手段内のジョブIDのうちで最先の実行順序に配列されたジョブIDと、このジョブIDのジョブとして実行されるジョブインスタンスを識別するジョブインスタンスIDと、このジョブIDに一致する前記ジョブ補正情報記憶手段内のジョブIDに関連付けられた引数のデフォルト値と、を含む第2の起動指示を前記ジョブ実行装置に送信する。   The second activation instruction transmission unit of the job activation control device includes the job ID arranged in the earliest execution order among the job IDs in the definition information storage unit that match the selected job ID, and the job A second start instruction including a job instance ID for identifying a job instance to be executed as a job with an ID, and a default value of an argument associated with the job ID in the job correction information storage unit that matches the job ID Is transmitted to the job execution apparatus.

前記ジョブ起動制御装置は、前記第2の起動指示内のジョブインスタンスIDと、実行中を示す実行状態と、先読み実行を示す実行種別と、を当該第2の起動指示内のジョブIDに関連付けて前記実行状態記憶手段に書き込む。   The job activation control device associates the job instance ID in the second activation instruction, the execution state indicating execution, and the execution type indicating prefetch execution with the job ID in the second activation instruction. Write to the execution state storage means.

前記ジョブ起動制御装置は、前記ジョブ実行装置からジョブID、ジョブインスタンスID及び返却値を含む実行結果を受けると、この実行結果内のジョブID及びジョブインスタンスIDに関連付けて当該返却値を前記実行状態記憶手段に書き込むと共に、当該ジョブID及びジョブインスタンスIDに関連付けられた実行状態を完了に更新する。   When the job activation control device receives an execution result including a job ID, a job instance ID, and a return value from the job execution device, the job activation control device associates the return value with the job ID and job instance ID in the execution result. The execution state associated with the job ID and job instance ID is updated to completion while writing to the storage means.

前記ジョブ起動制御装置は、前記実行状態記憶手段内で本実行を示す実行種別と完了を示す実行状態との両者に関連付けられたジョブIDに一致する前記定義情報記憶手段内のジョブIDのうち、当該定義情報記憶手段内で最後の実行順序のジョブIDを抽出する。   The job activation control device includes a job ID in the definition information storage unit that matches a job ID associated with both an execution type indicating the main execution and an execution state indicating completion in the execution state storage unit. The job ID of the last execution order is extracted in the definition information storage unit.

前記ジョブ起動制御装置は、この抽出したジョブIDの実行順序の次の実行順序に配列されたジョブIDを選択し、当該次の実行順序のジョブIDに一致する前記実行状態記憶手段内のジョブIDに対して先読み実行を示す実行種別と完了を示す実行状態が関連付けられているとき、当該次の実行順序のジョブIDに一致する前記ジョブ補正情報記憶手段内のジョブIDに関連付けられた引数のデフォルト値と、当該先読み実行を示す実行種別に関連付けられた返却値とを比較し、両者が一致するか否かを判定する。   The job activation control apparatus selects a job ID arranged in the execution order next to the execution order of the extracted job ID, and matches the job ID in the next execution order with the job ID in the execution state storage unit Is associated with the job ID in the job correction information storage means that matches the job ID of the next execution order when the execution type indicating pre-reading execution and the execution state indicating completion are associated with The value is compared with the return value associated with the execution type indicating the pre-read execution, and it is determined whether or not they match.

前記ジョブ起動制御装置は、この判定の結果、両者が不一致のとき、前記判定に用いた引数のデフォルト値に前記ジョブ補正情報記憶手段内で関連付けられたロールバック情報がロールバックの可を示す一方、このロールバック情報に前記ジョブ補正情報記憶手段内で関連付けられた引数補正情報が引数補正の否を示す場合には、当該ロールバック情報に関連付けられたジョブIDと、このジョブIDに一致する前記実行状態記憶手段内のジョブIDに関連付けられたジョブインスタンスIDと、当該判定に用いた返却値を示す引数と、を含むロールバック要求を送出する。   In the job activation control device, when the result of this determination is that they do not match, the rollback information associated with the default value of the argument used for the determination in the job correction information storage means indicates whether rollback is possible. When the argument correction information associated with the rollback information in the job correction information storage means indicates argument correction or not, the job ID associated with the rollback information and the job ID that matches the job ID A rollback request including a job instance ID associated with the job ID in the execution state storage unit and an argument indicating a return value used for the determination is sent out.

前記ジョブ起動制御装置のロールバック指示送信手段は、前記送出されたロールバック要求をロールバック指示として前記ジョブ実行装置に送信する。   The rollback instruction transmission means of the job activation control apparatus transmits the sent rollback request to the job execution apparatus as a rollback instruction.

前記ジョブ実行装置のジョブ起動手段は、前記第1又は第2の起動指示を前記ジョブ起動制御装置から受信すると、当該起動指示内のジョブID及びジョブインスタンスIDに基づいて、ジョブを起動する。   When the job activation unit of the job execution device receives the first or second activation instruction from the job activation control device, the job activation unit activates a job based on the job ID and job instance ID in the activation instruction.

前記ジョブ実行装置は、前記起動されたジョブの実行結果を前記ジョブ起動制御装置に返信する。   The job execution device returns an execution result of the activated job to the job activation control device.

前記ジョブ実行装置のロールバック実行手段は、前記ロールバック指示を前記ジョブ起動制御装置から受信すると、当該ロールバック指示に基づいて、ジョブのロールバックを実行する。   When the rollback execution means of the job execution apparatus receives the rollback instruction from the job activation control apparatus, the rollback execution means executes a job rollback based on the rollback instruction.

前記ジョブ実行装置は、前記ロールバックによる再度の実行結果をジョブ起動制御装置に返信する。   The job execution device returns the execution result of the rollback again to the job activation control device.

各実施形態に共通の概要説明のためのジョブ依存関係情報の一例を示す模式図である。It is a schematic diagram which shows an example of the job dependence relationship information for outline description common to each embodiment. 各実施形態に共通の概要説明のためのジョブ先読み実行情報の一例を示す模式図である。It is a schematic diagram which shows an example of the job prefetch execution information for outline description common to each embodiment. 各実施形態に共通の概要説明のための先読み実行例を示すタイムチャートである。It is a time chart which shows the prefetch execution example for the outline | summary description common to each embodiment. 各実施形態に共通の概要説明のための先読み実行例を従来のジョブ実行例と比較して示すタイムチャートである。It is a time chart which shows the prefetch execution example for outline description common to each embodiment compared with the conventional job execution example. 第1の実施形態に係るジョブ実行システムの構成例を示す模式図である。It is a mimetic diagram showing an example of composition of a job execution system concerning a 1st embodiment. 同実施形態におけるジョブ依存関係情報の図表現の一例を示す模式図である。It is a schematic diagram which shows an example of the graphical representation of the job dependence information in the same embodiment. 同実施形態におけるジョブ依存関係情報のデータ構造の一例を示す模式図である。It is a schematic diagram which shows an example of the data structure of the job dependence information in the embodiment. 同実施形態におけるジョブ先読み実行情報のデータ構造の一例を示す模式図である。It is a schematic diagram which shows an example of the data structure of the job prefetch execution information in the same embodiment. 同実施形態におけるジョブ実行状態テーブルのデータ構造の一例を示す模式図である。It is a schematic diagram which shows an example of the data structure of the job execution state table in the same embodiment. 同実施形態における動作を説明するための模式図である。It is a schematic diagram for demonstrating the operation | movement in the embodiment. 同実施形態におけるジョブネット解析部とジョブ起動部によるジョブ起動の動作を説明するための模式図である。FIG. 6 is a schematic diagram for explaining a job activation operation by a job net analysis unit and a job activation unit in the embodiment. 同実施形態におけるジョブ先読み実行の動作を説明するための模式図である。It is a schematic diagram for demonstrating operation | movement of the job prefetch execution in the same embodiment. 同実施形態におけるステップST11の詳細動作を説明するためのフローチャートである。It is a flowchart for demonstrating the detailed operation | movement of step ST11 in the embodiment. 同実施形態におけるステップST11の詳細動作を説明するための模式図である。It is a schematic diagram for demonstrating the detailed operation | movement of step ST11 in the embodiment. 同実施形態におけるステップST11の詳細動作を説明するための模式図である。It is a schematic diagram for demonstrating the detailed operation | movement of step ST11 in the embodiment. 同実施形態における先読み実行したジョブの補正の動作を説明するためのフローチャートである。6 is a flowchart for explaining an operation of correcting a pre-executed job in the embodiment. 第2の実施形態に係るジョブ実行システムに用いられるジョブネット定義情報の図表現の一例を示す模式図である。It is a schematic diagram which shows an example of the graphical representation of the job net definition information used for the job execution system which concerns on 2nd Embodiment. 同実施形態におけるジョブ依存関係情報のデータ構造の一例を示す模式図である。It is a schematic diagram which shows an example of the data structure of the job dependence information in the embodiment. 同実施形態におけるジョブ先読み実行情報のデータ構造の一例を示す模式図である。It is a schematic diagram which shows an example of the data structure of the job prefetch execution information in the same embodiment. 同実施形態における先読み実行例を従来のジョブ実行例と比較して示すタイムチャートである。6 is a time chart showing a pre-read execution example in the embodiment in comparison with a conventional job execution example. 一般的なジョブネット定義情報の図表現の一例を示す模式図である。It is a schematic diagram which shows an example of the graphical representation of general job net definition information. 一般的なジョブネット定義情報のデータ構造の一例を示す模式図である。It is a schematic diagram which shows an example of the data structure of general job net definition information. 従来のジョブ実行例を示すタイムチャートである。It is a time chart which shows the example of conventional job execution.

以下、各実施形態について図面を用いて説明するが、その前に各実施形態に共通する概要を述べる。   Each embodiment will be described below with reference to the drawings, but before that, an outline common to each embodiment will be described.

共通する概要としては、ジョブ実行順序を定義するための情報として、図22に示したジョブネット定義情報1に加え、ジョブ先読み実行に関するジョブ依存関係情報及びジョブ先読み実行情報を用いている。図1及び図2にジョブ依存関係情報2及びジョブ先読み実行情報3の例を示す。   As a common outline, job dependency information related to job prefetch execution and job prefetch execution information are used in addition to the job net definition information 1 shown in FIG. 22 as information for defining the job execution order. FIG. 1 and FIG. 2 show examples of job dependency relationship information 2 and job prefetch execution information 3.

ジョブ依存関係情報2では、あるジョブの実行が他のジョブの実行結果に依存するか否かが定義される。図2に示す例では、第2ジョブjob2の実行は、先頭ジョブjob0の実行結果に依存する。これは、先頭ジョブjob0と、第2ジョブjob2が同じデータリソースにアクセスしていて、先頭ジョブjob0がそのデータを更新する可能性がある場合などが該当する。第3ジョブjob3の実行も先頭ジョブjob0の実行結果に依存するが、第3ジョブjob3は、先頭ジョブjob0の返却値のみに依存する。なお、上記の例ではjob0の実行結果およびjob3の返却値に依存しているが、必ずしもこれらへの依存に限定されるわけではない。例えば、「先頭ジョブjob0が1度以上実行された後でないと、別の第3ジョブjob3を実行できない」などの例も考えられる。また、ジョブ依存関係情報2は、ジョブ間依存関係グラフと呼んでもよい。   In the job dependency relationship information 2, it is defined whether or not execution of a certain job depends on the execution result of another job. In the example illustrated in FIG. 2, the execution of the second job job2 depends on the execution result of the top job job0. This is the case when the first job job0 and the second job job2 are accessing the same data resource, and there is a possibility that the first job job0 may update the data. The execution of the third job job3 also depends on the execution result of the top job job0, but the third job job3 depends only on the return value of the top job job0. In the above example, it depends on the execution result of job0 and the return value of job3, but it is not necessarily limited to these. For example, an example such as “a third job job3 cannot be executed unless the first job job0 is executed once or more” is also conceivable. Further, the job dependency relationship information 2 may be called an inter-job dependency graph.

ジョブ先読み実行情報3は、各ジョブを先読み実行できるか否かを判断するための情報が記述される。例えば、第4ジョブjob4はロールバック可能であり、第3ジョブjob3は補正可能である。補正可能な第3ジョブjob3は、具体的には引数のデフォルト値で実行し、引数値が変われば補正すればよい。   The job prefetch execution information 3 describes information for determining whether or not each job can be prefetched. For example, the fourth job job4 can be rolled back, and the third job job3 can be corrected. Specifically, the correctable third job job3 is executed with the default value of the argument, and may be corrected if the argument value changes.

ジョブ依存関係情報2とジョブ先読み実行情報3を用いて先読み実行例のタイムチャートを図3に示す。この例は、図23と同じく、条件分岐で2番目の条件にヒットした場合を示している。   FIG. 3 shows a time chart of a prefetch execution example using the job dependency relationship information 2 and the job prefetch execution information 3. In this example, as in FIG. 23, the second condition is hit in the conditional branch.

ジョブネット定義情報1に従い、最初に先頭ジョブjob0が実行される。この先頭ジョブjob0の実行と並行して、第1ジョブjob1と第3ジョブjob3も実行される。第1ジョブjob1と第3ジョブjob3は、先頭ジョブjob0からの返却値を使うが、返却値の代わりに引数のデフォルト値で実行しておき、返却値を受けた後に補正可能なためである。一方、第2ジョブjob2は、返却値以外にも先頭ジョブjob0の実行結果に依存するため、先頭ジョブjob0が完了するまで開始されない。   According to the job net definition information 1, the first job job0 is executed first. In parallel with the execution of the first job job0, the first job job1 and the third job job3 are also executed. This is because the first job job1 and the third job job3 use the return value from the first job job0, but can be corrected after receiving the return value by executing with the default value of the argument instead of the return value. On the other hand, since the second job job2 depends on the execution result of the top job job0 in addition to the return value, it is not started until the top job job0 is completed.

さらに、条件分岐の選択肢に含まれる第5ジョブjob5も並行して実行される。条件分岐の選択肢の第4〜第6ジョブjob4, job5, job6は、ジョブネットが開始された直後には条件分岐の条件が定まっておらず、どのジョブを実行すべきか未確定である。しかし第5ジョブjob5はそれ以前のジョブに依存しないため、ジョブネット開始直後から投機的に実行される。第4及び第6ジョブjob4, job6は、個別に第1及び第2ジョブjob1, job2に依存しているため、最初の時点では実行されない。先頭ジョブjob0が完了すると第2ジョブjob2が開始され、第2ジョブjob2が完了すると第6ジョブjob6が開始される。   Further, the fifth job job5 included in the conditional branch option is also executed in parallel. Conditional branching options job4 to job6, job4, job5, and job6 have no conditional branching conditions immediately after the job net is started, and it is uncertain which job should be executed. However, since the fifth job job5 does not depend on the previous job, it is speculatively executed immediately after the start of the job net. Since the fourth and sixth jobs job4 and job6 are individually dependent on the first and second jobs job1 and job2, they are not executed at the first time point. When the first job job0 is completed, the second job job2 is started, and when the second job job2 is completed, the sixth job job6 is started.

先頭ジョブjob0が完了すると、先頭ジョブjob0の実行結果に応じて、先読み実行されていたジョブのロールバック又は補正を実行する。例えば、先頭ジョブjob0の実行結果が“1”の場合、引数のデフォルト値“0”で先読み実行された第1ジョブjob1がロールバックされて引数値“1”で再実行される。第3ジョブjob3は、引数のデフォルト値“1”で先読み実行されたので、この例では補正されない。   When the first job job0 is completed, rollback or correction of the job that has been pre-read is executed according to the execution result of the first job job0. For example, when the execution result of the first job “job0” is “1”, the first job job1 prefetched with the default value “0” of the argument is rolled back and reexecuted with the argument value “1”. Since the third job job3 is prefetched with the default value “1” of the argument, it is not corrected in this example.

第1〜第3ジョブjob1, job2, job3の実行が完了した時点で、条件分岐の条件が確定する。この例では2番目の条件がヒットし、第5ジョブjob5が実行されることになる。但し、第5ジョブjob5は先読み実行により完了している。よって、すぐに最終ジョブjob7が実行されることになる。   When the execution of the first to third jobs job1, job2, and job3 is completed, the condition branching condition is determined. In this example, the second condition is hit, and the fifth job job5 is executed. However, the fifth job job5 is completed by prefetching execution. Therefore, the final job job7 is immediately executed.

ここで、図23に示した従来のジョブ実行例のタイムチャートと、図3に示した先読み実行例のタイムチャートとを並べて図4(a)及び図4(b)に示す。   Here, the time chart of the conventional job execution example shown in FIG. 23 and the time chart of the prefetch execution example shown in FIG. 3 are shown side by side in FIG. 4 (a) and FIG. 4 (b).

先読み実行例の場合、ジョブネット全体の実行時間が、先頭ジョブjob0の実行時間と、第1ジョブjob1のロールバック及び再実行の時間と、最終ジョブjob7の実行時間との合計時間(tjob0+tjob1-rollback+tjob1+tjob7)となる。 In the prefetch execution example, the execution time of the entire job net is the total time of the execution time of the first job job0, the rollback and re-execution time of the first job job1, and the execution time of the final job job7 (t job0 + t job1-rollback + t job1 + t job7 ).

一方、従来の実行例の場合、ジョブネット全体の実行時間が、先頭ジョブjob0の実行時間と、第3、第5及び第7ジョブjob3, job5, job7の実行時間との合計時間(tjob0+tjob3+tjob5+tjob7)となる。 On the other hand, in the case of the conventional execution example, the execution time of the entire job net is the total time of the execution time of the first job job0 and the execution times of the third, fifth and seventh jobs job3, job5, job7 (t job0 + t job3 + tjob5 + tjob7 ).

従って、先読み実行例の場合、従来の実行例に比べ、両者の差分(tjob3+tjob5−(tjob1-rollback+tjob1))だけジョブネット全体の実行時間を短縮することができる。 Therefore, in the pre- read execution example, the execution time of the entire job net can be shortened by the difference between the two (t job3 + t job5- (t job1 -rollback + t job1 )).

<第1の実施形態>
図5は第1の実施形態に係るジョブ実行システムの構成例を示す模式図であり、図6乃至図9は同システムで用いられる情報の一例を示す模式図である。このジョブ実行システムは、互いに通信可能なジョブ起動制御装置10及びジョブ実行装置20を備えている。各装置10,20は、装置10,20毎に、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置10,20のコンピュータにインストールされ、対応する装置10,20の機能を実現させるためのプログラムが用いられる。
<First Embodiment>
FIG. 5 is a schematic diagram illustrating a configuration example of the job execution system according to the first embodiment, and FIGS. 6 to 9 are schematic diagrams illustrating an example of information used in the system. The job execution system includes a job activation control device 10 and a job execution device 20 that can communicate with each other. Each of the devices 10 and 20 can be implemented by either a hardware configuration or a combined configuration of hardware resources and software for each of the devices 10 and 20. As the software of the combined configuration, a program that is installed in advance on the computers of the corresponding apparatuses 10 and 20 from a network or a storage medium and that realizes the functions of the corresponding apparatuses 10 and 20 is used.

ここで、ジョブ起動制御装置10は、記憶部11及びジョブ起動制御部12を備えている。   Here, the job activation control device 10 includes a storage unit 11 and a job activation control unit 12.

記憶部11は、各部12〜14から読出/書込可能な記憶装置であり、例えば、ジョブネット定義情報1、ジョブ依存関係情報2、ジョブ先読み実行情報3及びジョブ実行状態テーブル4を記憶している。なお、各情報1〜3は、予めユーザによるジョブネットエディタ等のユーザ端末(図示せず)の操作に応じて、図示しないCPUにより書き込まれている。   The storage unit 11 is a storage device that can be read / written from each of the units 12 to 14. For example, the storage unit 11 stores job net definition information 1, job dependency relationship information 2, job prefetch execution information 3, and job execution state table 4. Yes. Each information 1 to 3 is written in advance by a CPU (not shown) in accordance with an operation of a user terminal (not shown) such as a job net editor by the user.

ジョブネット定義情報1は、例えば図22に示したように、各ジョブを識別するジョブIDが当該各ジョブの実行順序の順に配列して記述されており、各ジョブのうちの幾つかの各ジョブを分岐させて並列に実行する場合には当該幾つかの各ジョブのジョブIDに関連付けて分岐の条件が更に記述されている。   In the job net definition information 1, for example, as shown in FIG. 22, job IDs for identifying each job are described in the order of execution of each job. Are branched and executed in parallel, branch conditions are further described in association with the job IDs of the respective jobs.

ジョブ依存関係情報2は、ジョブIDと、当該ジョブIDのジョブが依存する依存元のジョブを識別する依存元のジョブIDと、当該依存する内容が当該依存元のジョブの実行過程又は返却値である旨を示す依存内容と、が関連付けて記述されている。   The job dependency relationship information 2 includes a job ID, a job ID of a dependency source that identifies a job of a dependency source on which the job of the job ID depends, and the content of the dependency is an execution process or a return value of the job of the dependency source. The dependency contents indicating that there is a description are described in association with each other.

ジョブ依存関係情報2の図表現とデータ構造の例を図6及び図7に示す。グラフ表記ではジョブ間の矢印で依存関係を表現し、システム内部では表形式で依存関係を格納する。   An example of the graphical representation and data structure of the job dependency relationship information 2 is shown in FIGS. In the graph notation, the dependency relationship is expressed by an arrow between jobs, and the dependency relationship is stored in a table format inside the system.

ジョブ依存関係情報2は、例えば、次の2通りの依存関係(2−1)〜(2−2)を定義している。   The job dependency relationship information 2 defines, for example, the following two dependency relationships (2-1) to (2-2).

(2−1)あるジョブの実行は別のジョブの実行過程に依存する。   (2-1) Execution of a certain job depends on the execution process of another job.

(2−2)あるジョブの実行は別のジョブの返却値のみに依存する。   (2-2) Execution of a certain job depends only on the return value of another job.

但し、ジョブ依存関係情報2は、これら2通りの依存関係(2−1)〜(2−2)に限定されるわけではない。   However, the job dependency relationship information 2 is not limited to these two types of dependency relationships (2-1) to (2-2).

図7の例では、第1ジョブjob1は先頭ジョブjob0の返却値のみに依存している。例えば先頭ジョブjob0が更新するデータリソースを第1ジョブjob1は参照しないが、先頭ジョブjob0の実行の結果得られる返却値を第1ジョブjob1が使う場合などが該当する。図表記では破線矢印、データ構造の表中では「返却値」として定義されている。第2ジョブjob2は先頭ジョブjob0の実行過程に依存している。例えば、先頭ジョブjob0があるデータリソースを更新し、第2ジョブjob2がそのデータリソースを参照する場合などが該当する。図表記では実線矢印、データ構造の表中では「実行過程」として定義されている。   In the example of FIG. 7, the first job job1 depends only on the return value of the first job job0. For example, the first job job1 does not refer to the data resource updated by the first job job0, but the first job job1 uses a return value obtained as a result of the execution of the first job job0. In the figure notation, it is defined as a broken line arrow, and “return value” in the data structure table. The second job job2 depends on the execution process of the first job job0. For example, the case where the data resource with the first job job0 is updated and the second job job2 refers to the data resource is applicable. In the figure notation, it is defined as a solid line arrow and “execution process” in the data structure table.

ジョブ先読み実行情報3は、図8に一例を示すように、ジョブIDと、当該ジョブIDのジョブのロールバックの可否及び負荷を示すロールバック情報と、当該ジョブの引数補正の可否及び負荷と引数のデフォルト値とを示す引数補正情報と、が関連付けて表形式で記述されている。なお、ロールバックの負荷と引数補正の負荷はそれぞれ省略してもよい。なお、ジョブ先読み実行情報3は、これらロールバック情報及び引数補正情報に限定されるわけではない。   As shown in FIG. 8, the job prefetch execution information 3 includes a job ID, rollback information indicating whether or not the job with the job ID can be rolled back, and load, and whether or not the argument correction for the job is possible and the load and argument. The argument correction information indicating the default value is described in a table format in association with each other. Note that the rollback load and the argument correction load may be omitted. The job prefetch execution information 3 is not limited to these rollback information and argument correction information.

図8の例では、第3ジョブjob3は実行を開始した後で不要になれば、実行結果をロールバックすることができる。それにかかる負荷は“40”である。ロールバックにおいては、負荷の単位をアプリケーションごとに決めてよく、また、値は定数でなく、関数でも構わない。また第3ジョブjob3はデフォルト値を引数として実行しておき、後から実際の引数値が変わったら実行結果を補正できる。それにかかる負荷は“10”である。引数補正の負荷の単位は、アプリケーションごとに決めてよく、また、値は定数でなく、関数でも構わない。   In the example of FIG. 8, if the third job job3 becomes unnecessary after the start of execution, the execution result can be rolled back. The load applied to it is “40”. In rollback, the unit of load may be determined for each application, and the value may not be a constant but a function. The third job job3 is executed with the default value as an argument, and the execution result can be corrected if the actual argument value changes later. The load applied to it is “10”. The unit of the argument correction load may be determined for each application, and the value may be a function instead of a constant.

ジョブ実行状態テーブル4は、図9に一例を示すように、ジョブIDと、当該ジョブIDのジョブとして実行されたジョブインスタンスを識別するジョブインスタンスIDと、ジョブインスタンスの状態が実行中、完了又は失敗である旨を示す実行状態と、ジョブインスタンスの実行が実行順序通りの本実行か又は本実行の実行順序よりも先に実行された先読み実行かを示す実行種別と、実行状態が完了を示す場合のジョブインスタンスの返却値と、が関連付けて表形式で記述されている。   As shown in an example in FIG. 9, the job execution state table 4 includes a job ID, a job instance ID for identifying a job instance executed as a job of the job ID, and the job instance state being executed, completed or failed. The execution status indicating that the job instance is executed, the execution type indicating whether the execution of the job instance is the main execution according to the execution order or the pre-read execution executed before the execution order of the main execution, and the execution state indicates completion The return values of the job instances are described in a table format in association with each other.

但し、ジョブ実行状態テーブル4は、(4−1)実際に実行されたジョブインスタンスのID、(4−2)ジョブの実行状態(実行中、完了、失敗など)、(4−3)ジョブネット定義情報1に基づく本実行か、ジョブ先読み実行かという区別、(4−4)ジョブ実行結果の返却値、といった4通りの情報に限定されるわけではない。   However, the job execution status table 4 includes (4-1) ID of actually executed job instance, (4-2) Job execution status (execution, completion, failure, etc.), (4-3) Job net It is not limited to four types of information such as the distinction between the main execution based on the definition information 1 and the job prefetching execution, and (4-4) the return value of the job execution result.

図9の例では、先頭ジョブjob0は本実行が完了し、その返却値は“3”である。第1〜第3ジョブjob1, job2, job3は本実行として実行中である。第5ジョブjob5は先読み実行として実行中である。第4、第6及び最終ジョブjob4, job6, job7は、開始されていない。   In the example of FIG. 9, the first job job0 has completed this execution, and its return value is “3”. The first to third jobs job1, job2, job3 are being executed as the main execution. The fifth job job5 is being executed as prefetching execution. The fourth, sixth, and final jobs job4, job6, and job7 are not started.

ジョブ起動制御部12は、ジョブ実行スケジューリングの中核を担うものであり、ジョブネット解析部13及びジョブ先読み実行解析部14を備えている。   The job activation control unit 12 plays a central role in job execution scheduling, and includes a job net analysis unit 13 and a job prefetch execution analysis unit 14.

ジョブネット解析部13は、以下の各機能(f13-1)〜(f13-6)をもっている。   The job net analysis unit 13 has the following functions (f13-1) to (f13-6).

(f13-1) ジョブ実行状態テーブル4内で本実行を示す実行種別と完了を示す実行状態との両者に関連付けられたジョブIDに一致するジョブネット定義情報1内のジョブIDのうち、当該ジョブネット定義情報1内で最後の実行順序のジョブIDを抽出し、この抽出したジョブIDの実行順序の次の実行順序に配列されたジョブIDを選択し、この選択したジョブIDに一致するジョブ実行状態テーブル4内のジョブIDに対して先読み実行を示す実行種別と実行中を示す実行状態との両者が関連付けられていないとき、当該選択したジョブIDのジョブとして実行されるジョブインスタンスを識別するジョブインスタンスIDを指定し、当該選択したジョブID及び当該指定したジョブインスタンスIDを含む第1の起動指示をジョブ実行装置20に送信する第1の起動指示送信機能。   (f13-1) Of the job IDs in the job net definition information 1 that matches the job ID associated with both the execution type indicating the main execution and the execution state indicating completion in the job execution state table 4, the job The job ID of the last execution order in the net definition information 1 is extracted, the job ID arranged in the execution order next to the execution order of the extracted job ID is selected, and the job execution that matches the selected job ID A job that identifies a job instance to be executed as a job of the selected job ID when both the execution type indicating pre-read execution and the execution state indicating execution are not associated with the job ID in the state table 4 An instance ID is designated, and a first start instruction including the selected job ID and the designated job instance ID is sent to the job execution device. The first startup instruction transmission function for transmitting to 20.

(f13-2) 第1の起動指示内のジョブインスタンスIDと、実行中を示す実行状態と、本実行を示す実行種別と、を当該第1の起動指示内のジョブIDに関連付けてジョブ実行状態テーブル4に書き込む機能。   (f13-2) A job execution state in which the job instance ID in the first start instruction, the execution state indicating execution, and the execution type indicating main execution are associated with the job ID in the first start instruction Function to write to table 4.

(f13-3) ジョブ実行装置20からジョブID、ジョブインスタンスID及び返却値を含む実行結果を受けると、この実行結果内のジョブID及びジョブインスタンスIDに関連付けて当該返却値をジョブ実行状態テーブル4に書き込むと共に、当該ジョブID及びジョブインスタンスIDに関連付けられた実行状態を完了に更新する機能。   (f13-3) When an execution result including a job ID, job instance ID, and return value is received from the job execution device 20, the return value is associated with the job ID and job instance ID in the execution result and the job execution state table 4 And updating the execution state associated with the job ID and job instance ID to completion.

(f13-4) ジョブ実行状態テーブル4内で本実行を示す実行種別と完了を示す実行状態との両者に関連付けられたジョブIDに一致するジョブネット定義情報1内のジョブIDのうち、当該ジョブネット定義情報1内で最後の実行順序のジョブIDを抽出し、この抽出したジョブIDの実行順序の次の実行順序に配列されたジョブIDを選択し、当該次の実行順序のジョブIDに一致するジョブ実行状態テーブル4内のジョブIDに対して先読み実行を示す実行種別と完了を示す実行状態が関連付けられているとき、当該次の実行順序のジョブIDに一致するジョブ先読み実行情報3内のジョブIDに関連付けられた引数のデフォルト値と、当該先読み実行を示す実行種別に関連付けられた返却値とを比較し、両者が一致するか否かを判定する機能。   (f13-4) Of the job IDs in the job net definition information 1 that matches the job ID associated with both the execution type indicating the main execution and the execution state indicating completion in the job execution state table 4, the job The job ID of the last execution order is extracted from the net definition information 1, and the job ID arranged in the execution order next to the execution order of the extracted job ID is selected, and matches the job ID of the next execution order When an execution type indicating pre-reading execution and an execution state indicating completion are associated with the job ID in the job execution state table 4 to be executed, the job pre-reading execution information 3 in the job pre-reading execution information 3 that matches the job ID in the next execution order is associated. A function that compares the default value of the argument associated with the job ID with the return value associated with the execution type indicating the prefetch execution and determines whether or not they match. .

(f13-5) この判定の結果、両者が不一致のとき、当該判定に用いた引数のデフォルト値にジョブ先読み実行情報3内で関連付けられたロールバック情報がロールバックの可を示す一方、このロールバック情報にジョブ先読み実行情報3内で関連付けられた引数補正情報が引数補正の否を示す場合には、当該ロールバック情報に関連付けられたジョブIDと、このジョブIDに一致するジョブ実行状態テーブル4内のジョブIDに関連付けられたジョブインスタンスIDと、当該判定に用いた返却値を示す引数と、を含むロールバック要求をジョブ先読み実行解析部14に送出する機能。   (f13-5) If the result of this determination is that they do not match, the rollback information associated in the job prefetch execution information 3 with the default value of the argument used for the determination indicates that rollback is possible. When the argument correction information associated with the back information in the job prefetch execution information 3 indicates whether or not argument correction is performed, the job ID associated with the rollback information and the job execution state table 4 matching this job ID A function of sending a rollback request including a job instance ID associated with a job ID in the job and an argument indicating a return value used for the determination to the job prefetch execution analysis unit 14.

(f13-6) 判定の結果、両者が不一致のとき、当該判定に用いた引数のデフォルト値を含む引数補正情報が引数補正の可を示す場合には、当該引数補正情報に関連付けられたジョブIDと、このジョブIDに一致するジョブ実行状態テーブル4内のジョブIDに関連付けられたジョブインスタンスIDと、当該判定に用いた返却値を示す引数と、を含む補正要求をジョブ先読み実行解析部14に送出する機能。   (f13-6) As a result of determination, when the two do not match, and the argument correction information including the default value of the argument used for the determination indicates that argument correction is possible, the job ID associated with the argument correction information A correction request including a job instance ID associated with the job ID in the job execution state table 4 that matches the job ID and an argument indicating the return value used for the determination to the job prefetch execution analysis unit 14. Function to send out.

ジョブ先読み実行解析部14は、以下の各機能(f14-1)〜(f14-6)をもっている。   The job prefetch execution analysis unit 14 has the following functions (f14-1) to (f14-6).

(f14-1) ジョブ実行状態テーブル4内で実行中又は完了を示す実行状態に関連付けられたジョブIDとは異なるジョブIDであり、且つジョブ依存関係情報2内で実行過程である旨を示す依存内容に関連付けられていないジョブIDを先読み実行候補のジョブIDとして選択する先読み候補選択機能。   (f14-1) Dependence indicating that the job ID is different from the job ID associated with the execution state indicating execution or completion in the job execution state table 4 and that the job dependency information 2 indicates an execution process A prefetch candidate selection function that selects a job ID that is not associated with the content as a job ID of a prefetch execution candidate.

(f14-2) 選択された先読み実行候補のジョブIDのうち、ジョブ先読み実行情報3内でロールバックの可を示すロールバック情報又は引数補正の可を示す引数補正情報に関連付けられたジョブIDを選択し、この選択したジョブIDに一致するジョブネット定義情報1内のジョブIDのうちで最先の実行順序に配列されたジョブIDと、このジョブIDのジョブとして実行されるジョブインスタンスを識別するジョブインスタンスIDと、このジョブIDに一致するジョブ先読み実行情報3内のジョブIDに関連付けられた引数のデフォルト値と、を含む第2の起動指示をジョブ実行装置20に送信する第2の起動指示送信機能。   (f14-2) Among the job IDs of the selected prefetch execution candidates, the job ID associated with the rollback information indicating that rollback is possible or the argument correction information indicating that argument correction is possible in the job prefetch execution information 3 is The job ID selected in the job net definition information 1 that matches the selected job ID is identified in the earliest execution order, and the job instance to be executed as the job with this job ID is identified. A second start instruction for transmitting a second start instruction including a job instance ID and a default value of an argument associated with the job ID in the job prefetch execution information 3 that matches the job ID to the job execution apparatus 20 Send function.

(f14-3) 第2の起動指示内のジョブインスタンスIDと、実行中を示す実行状態と、先読み実行を示す実行種別と、を当該第2の起動指示内のジョブIDに関連付けてジョブ実行状態テーブル4に書き込む機能。   (f14-3) The job execution state in which the job instance ID in the second start instruction, the execution state indicating execution, and the execution type indicating pre-read execution are associated with the job ID in the second start instruction Function to write to table 4.

(f14-4) ジョブ実行装置j20からジョブID、ジョブインスタンスID及び返却値を含む実行結果を受けると、この実行結果内のジョブID及びジョブインスタンスIDに関連付けて当該返却値をジョブ実行状態テーブル4に書き込むと共に、当該ジョブID及びジョブインスタンスIDに関連付けられた実行状態を完了に更新する機能。   (f14-4) When an execution result including a job ID, job instance ID, and return value is received from the job execution device j20, the return value is associated with the job ID and job instance ID in the execution result and the job execution status table 4 And updating the execution state associated with the job ID and job instance ID to completion.

(f14-5) 送出されたロールバック要求をロールバック指示としてジョブ実行装置20に送信するロールバック指示送信機能。   (f14-5) A rollback instruction transmission function for transmitting the sent rollback request to the job execution apparatus 20 as a rollback instruction.

(f14-6) 送出された補正要求を補正指示としてジョブ実行装置20に送信する補正指示送信機能。   (f14-6) A correction instruction transmission function for transmitting the sent correction request to the job execution apparatus 20 as a correction instruction.

一方、ジョブ実行装置20は、記憶部21及びジョブ実行部22を備えている。   On the other hand, the job execution device 20 includes a storage unit 21 and a job execution unit 22.

記憶部21は、各ジョブに対応するジョブプログラムが予め記憶されている。各ジョブは、各ジョブに対応するジョブプログラムを実行するCPU(図示せず)の一機能からなり、起動指示を受けたCPUがジョブプログラムを実行することにより、実行される。   The storage unit 21 stores job programs corresponding to each job in advance. Each job has one function of a CPU (not shown) that executes a job program corresponding to each job, and is executed when the CPU that has received an activation instruction executes the job program.

ジョブ実行部22は、ジョブ起動部23及びジョブ実行結果補正部24を備えている。   The job execution unit 22 includes a job activation unit 23 and a job execution result correction unit 24.

ジョブ起動部23は、以下の各機能(f23-1)〜(f23-2)をもっている。   The job activation unit 23 has the following functions (f23-1) to (f23-2).

(f23-1) 第1又は第2の起動指示をジョブ起動制御装置10から受信すると、当該起動指示内のジョブID及びジョブインスタンスIDに基づいて、ジョブを起動するジョブ起動機能。   (f23-1) A job activation function that activates a job based on the job ID and job instance ID in the activation instruction when the first or second activation instruction is received from the job activation control device 10.

(f23-2) 起動されたジョブの実行結果をジョブ起動制御装置10に返信する機能。   (f23-2) A function of returning the execution result of the activated job to the job activation control device 10.

ジョブ実行結果補正部24は、以下の各機能(f24-1)〜(f24-4)をもっている。   The job execution result correction unit 24 has the following functions (f24-1) to (f24-4).

(f24-1) ロールバック指示をジョブ起動制御装置10から受信すると、当該ロールバック指示に基づいて、ジョブのロールバックを実行するロールバック実行機能。   (f24-1) A rollback execution function that, when receiving a rollback instruction from the job activation control device 10, executes a rollback of a job based on the rollback instruction.

(f24-2) ロールバックによる再度の実行結果をジョブ起動制御装置10に返信する機能。   (f24-2) A function of returning the execution result of the rollback again to the job activation control device 10.

(f24-3) ジョブ起動制御装置10から送信された補正指示を受けると、当該補正指示内のジョブID、ジョブインスタンスID及び引数に基づいて、ジョブの実行結果を補正するジョブ実行結果補正機能。   (f24-3) A job execution result correction function that, upon receiving a correction instruction transmitted from the job activation control device 10, corrects the job execution result based on the job ID, job instance ID, and argument in the correction instruction.

(f24-4) 補正された実行結果をジョブ起動制御装置10に返信する機能。   (f24-4) A function of returning the corrected execution result to the job activation control device 10.

次に、以上のように構成されたジョブ実行システムの動作について図10乃至図16を参照しながら説明する。なお、参照する図面においては、例えば図10に示すように、記憶部11,21の図示を省略している。   Next, the operation of the job execution system configured as described above will be described with reference to FIGS. In the drawings to be referred to, the storage units 11 and 21 are not shown, for example, as shown in FIG.

従来通り、ジョブネット定義情報1に沿ってジョブを実行するには、ジョブ起動制御部12のジョブネット解析部13と、ジョブ実行部22のジョブ起動部23だけがあればよい。先読み実行を行うためには、ジョブ起動制御部12のジョブ先読み実行解析部14と、ジョブ実行部22のジョブ実行結果補正部24が必要となる。   As in the past, in order to execute a job along the job net definition information 1, only the job net analysis unit 13 of the job activation control unit 12 and the job activation unit 23 of the job execution unit 22 need be provided. In order to perform prefetching, the job prefetching execution analysis unit 14 of the job activation control unit 12 and the job execution result correction unit 24 of the job execution unit 22 are required.

図11はジョブネット解析部13とジョブ起動部23によるジョブ起動の動作を説明するための模式図である。   FIG. 11 is a schematic diagram for explaining the job starting operation by the job net analyzing unit 13 and the job starting unit 23.

ジョブネット解析部13は、ジョブネット定義情報1を参照し、次に起動すべきジョブを選択する(ST1)。具体的にはジョブネット解析部13は、ジョブ実行状態テーブル4内で本実行を示す実行種別と完了を示す実行状態との両者に関連付けられたジョブIDに一致するジョブネット定義情報1内のジョブIDのうち、ジョブネット定義情報1内で最後の実行順序のジョブIDを抽出し、この抽出したジョブIDの実行順序の次の実行順序に配列されたジョブIDを選択する。   The job net analysis unit 13 refers to the job net definition information 1 and selects a job to be started next (ST1). Specifically, the job net analysis unit 13 matches the job ID in the job net definition information 1 that matches the job ID associated with both the execution type indicating the main execution and the execution state indicating the completion in the job execution state table 4. Among the IDs, the job ID of the last execution order is extracted in the job net definition information 1, and the job ID arranged in the execution order next to the execution order of the extracted job ID is selected.

ジョブネット解析部13は、ジョブ実行状態テーブル4を参照し、そのジョブの実行状態を確認する(ST2)。具体的にはジョブネット解析部13は、ステップST1で選択したジョブIDに一致するジョブ実行状態テーブル4内のジョブIDには実行中を示す実行状態が関連付けられていない旨を確認する。   The job net analysis unit 13 refers to the job execution state table 4 and confirms the execution state of the job (ST2). Specifically, the job net analysis unit 13 confirms that an execution state indicating that the job is being executed is not associated with the job ID in the job execution state table 4 that matches the job ID selected in step ST1.

そのジョブがまだ起動されていなければ、ジョブネット解析部13は、ジョブ起動部23にそのジョブの起動指示を送信すると共に(ST3)、起動指示を送信した旨をジョブ実行状態テーブル4に記録する。具体的にはジョブネット解析部13は、ステップST2の確認の後、ステップST1で選択したジョブIDのジョブとして実行されるジョブインスタンスを識別するジョブインスタンスIDを指定し、当該選択したジョブID及び当該指定したジョブインスタンスIDを含む第1の起動指示をジョブ実行装置20に送信する。また、ジョブネット解析部13は、第1の起動指示内のジョブインスタンスIDと、実行中を示す実行状態と、本実行を示す実行種別と、を当該第1の起動指示内のジョブIDに関連付けてジョブ実行状態テーブル4に書き込む。   If the job has not been activated yet, the job net analysis unit 13 transmits a job activation instruction to the job activation unit 23 (ST3) and records the fact that the activation instruction has been transmitted in the job execution state table 4. . Specifically, the job net analysis unit 13 specifies a job instance ID for identifying a job instance to be executed as a job having the job ID selected in step ST1 after the confirmation in step ST2, and selects the selected job ID and the job ID. A first activation instruction including the designated job instance ID is transmitted to the job execution apparatus 20. In addition, the job net analysis unit 13 associates the job instance ID in the first start instruction, the execution state indicating execution, and the execution type indicating main execution with the job ID in the first start instruction. To the job execution state table 4.

一方、ジョブ実行部22は、第1の起動指示をジョブ起動制御装置10から受信すると、第1の起動指示内のジョブID及びジョブインスタンスIDに基づいて、ジョブを起動する(ST4)。   On the other hand, when the job execution unit 22 receives the first activation instruction from the job activation control device 10, the job execution unit 22 activates the job based on the job ID and job instance ID in the first activation instruction (ST4).

ジョブの実行が完了すると、ジョブは、ジョブID、ジョブインスタンスID及び返却値を含む実行結果をジョブ実行部22に返す(ST5)。   When the job execution is completed, the job returns an execution result including the job ID, job instance ID, and return value to the job execution unit 22 (ST5).

ジョブ実行部22は、この実行結果をジョブネット解析部13に送信する(ST6)。   The job execution unit 22 transmits the execution result to the job net analysis unit 13 (ST6).

ジョブネット解析部13はジョブ実行状態テーブル4に実行結果を記録する(ST7)。具体的には、ジョブネット解析部13は、ジョブ実行装置20からジョブID、ジョブインスタンスID及び返却値を含む実行結果を受けると、この実行結果内のジョブID及びジョブインスタンスIDに関連付けて当該返却値をジョブ実行状態テーブル4に書き込むと共に、当該ジョブID及びジョブインスタンスIDに関連付けられた実行状態を完了に更新する。   The job net analysis unit 13 records the execution result in the job execution state table 4 (ST7). Specifically, when the job net analysis unit 13 receives an execution result including a job ID, job instance ID, and return value from the job execution apparatus 20, the job net analysis unit 13 associates the return result with the job ID and job instance ID in the execution result. The value is written in the job execution state table 4 and the execution state associated with the job ID and job instance ID is updated to complete.

図12はジョブ先読み実行解析部14とジョブ実行結果補正部24を追加したジョブ先読み実行の動作を説明するための模式図である。   FIG. 12 is a schematic diagram for explaining the operation of job prefetch execution with the job prefetch execution analysis unit 14 and the job execution result correction unit 24 added.

ジョブ先読み実行解析部14はジョブ実行状態テーブル4、ジョブ依存関係情報2、ジョブ先読み実行情報3を参照し、先読み実行できるジョブを抽出する(ST11)。例えば、ジョブ先読み実行解析部14は、ジョブ実行状態テーブル4内で実行中又は完了を示す実行状態に関連付けられたジョブIDとは異なるジョブIDであり、且つジョブ依存関係情報2内で実行過程である旨を示す依存内容に関連付けられていないジョブIDを先読み実行候補のジョブIDとして選択する。次に、ジョブ先読み実行解析部14は、当該選択した先読み実行候補のジョブIDのうち、ジョブ先読み実行情報4内でロールバックの可を示すロールバック情報又は引数補正の可を示す引数補正情報に関連付けられたジョブIDを選択し、この選択したジョブIDに一致するジョブネット定義情報1内のジョブIDのうちで最先の実行順序に配列されたジョブIDを抽出する。   The job prefetch execution analysis unit 14 refers to the job execution state table 4, the job dependency relationship information 2, and the job prefetch execution information 3, and extracts a job that can be prefetched (ST11). For example, the job prefetch execution analysis unit 14 has a job ID that is different from the job ID associated with the execution state indicating execution or completion in the job execution state table 4, and in the execution process within the job dependency relationship information 2. A job ID that is not associated with the dependency content indicating that it is present is selected as the job ID of the prefetch execution candidate. Next, the job prefetch execution analysis unit 14 uses the job ID of the selected prefetch execution candidate as rollback information indicating that rollback is possible in the job prefetch execution information 4 or argument correction information indicating that argument correction is possible. The associated job ID is selected, and the job ID arranged in the earliest execution order is extracted from the job IDs in the job net definition information 1 that match the selected job ID.

なお、具体例によるステップST11の詳細は後述する。   Details of step ST11 according to a specific example will be described later.

ジョブ先読み実行解析部14はジョブ実行状態テーブル4を参照し、先読み実行できるジョブの実行状態を確認する(ST12)。   The job prefetch execution analysis unit 14 refers to the job execution state table 4 and confirms the execution state of a job that can be prefetched (ST12).

そのジョブがまだ起動されていなければ、ジョブ先読み実行解析部14は、先読み実行するジョブの起動指示をジョブ起動部23に送信すると共に(ST13)、起動指示を送信した旨をジョブ実行状態テーブル4に記録する。記録の際には、正規の起動指示ではなく、先読み実行の起動指示であることを明示する。具体的には、ジョブ先読み実行解析部14は、ステップST12の確認の後、ステップST11で抽出したジョブIDと、このジョブIDのジョブとして実行されるジョブインスタンスを識別するジョブインスタンスIDと、このジョブIDに一致するジョブ先読み実行情報3内のジョブIDに関連付けられた引数のデフォルト値と、を含む第2の起動指示をジョブ実行装置20に送信する。また、ジョブ先読み実行解析部14は、第2の起動指示内のジョブインスタンスIDと、実行中を示す実行状態と、先読み実行を示す実行種別と、を当該第2の起動指示内のジョブIDに関連付けてジョブ実行状態テーブル4に書き込む。   If the job has not been started yet, the job prefetch execution analysis unit 14 transmits a start instruction for the job to be prefetched to the job starter 23 (ST13), and the job execution state table 4 indicates that the start instruction has been transmitted. To record. At the time of recording, it is clearly indicated that the pre-read execution instruction is not a normal start instruction. Specifically, the job prefetch execution analysis unit 14 confirms step ST12 and then extracts the job ID extracted in step ST11, the job instance ID for identifying the job instance to be executed as the job of this job ID, and the job A second start instruction including the default value of the argument associated with the job ID in the job prefetch execution information 3 that matches the ID is transmitted to the job execution apparatus 20. In addition, the job prefetch execution analysis unit 14 sets the job instance ID in the second start instruction, the execution state indicating the execution in progress, and the execution type indicating the prefetch execution as the job ID in the second start instruction. Correlate and write to the job execution state table 4.

一方、ジョブ実行部22は、第2の起動指示をジョブ起動制御装置10から受信すると、第2の起動指示内のジョブID、ジョブインスタンスID、及び引数のデフォルト値に基づいて、ジョブを起動する(ST14)。   On the other hand, when the job execution unit 22 receives the second activation instruction from the job activation control device 10, the job execution unit 22 activates the job based on the job ID, the job instance ID, and the default value of the argument in the second activation instruction. (ST14).

ジョブの実行が完了すると、ジョブは、ジョブID、ジョブインスタンスID及び返却値を含む実行結果をジョブ実行部22に返す(ST15)。   When the job execution is completed, the job returns an execution result including the job ID, job instance ID, and return value to the job execution unit 22 (ST15).

ジョブ実行部22は、この実行結果をジョブ先読み実行解析部14に送信する(ST16)。   The job execution unit 22 transmits the execution result to the job prefetch execution analysis unit 14 (ST16).

ジョブ先読み実行解析部14はジョブ実行状態テーブル4に実行結果を記録する(ST17)。具体的にはジョブ先読み実行解析部14は、ジョブ実行装置20からジョブID、ジョブインスタンスID及び返却値を含む実行結果を受けると、この実行結果内のジョブID及びジョブインスタンスIDに関連付けて当該返却値をジョブ実行状態テーブル4に書き込むと共に、当該ジョブID及びジョブインスタンスIDに関連付けられた実行状態を完了に更新する。なお、この実行結果の記録は、正規の実行結果ではなく、先読み実行の実行結果であることがステップST13の後に書き込まれた実行種別により明示されている。   The job prefetch execution analysis unit 14 records the execution result in the job execution state table 4 (ST17). Specifically, when the job prefetch execution analysis unit 14 receives an execution result including a job ID, job instance ID, and return value from the job execution device 20, the job prefetch execution analysis unit 14 associates the return result with the job ID and job instance ID in the execution result. The value is written in the job execution state table 4 and the execution state associated with the job ID and job instance ID is updated to complete. It should be noted that this execution result record is clearly indicated by the execution type written after step ST13, not the regular execution result but the pre-read execution result.

次に、前述したステップST11の詳細を図13乃至図15に沿って説明する。   Next, details of step ST11 described above will be described with reference to FIGS.

始めに、図13及び図14に示すように、ジョブ実行状態テーブル4を参照して、実行中または完了したジョブを抽出する(ST11−1)。この例では、先頭ジョブjob0が実行中である。   First, as shown in FIGS. 13 and 14, the job execution state table 4 is referred to extract a job being executed or completed (ST11-1). In this example, the first job job0 is being executed.

次に、ジョブ依存関係情報2を参照し、先読み実行可能なジョブの候補を抽出する(ST11−2)。この例では第1、第3及び第5ジョブjob1, job3, job5が先読み実行の候補となる。第2、第4、第6及び最終ジョブjob2, job4, job6, job7はまだ完了していない他ジョブjob1, job2, job5の実行過程に依存するため、先読み実行の候補とはならない。   Next, job dependency information 2 is referenced to extract job candidates that can be pre-read (ST11-2). In this example, the first, third, and fifth jobs job1, job3, and job5 are candidates for prefetching execution. The second, fourth, sixth, and final jobs job2, job4, job6, and job7 are not candidates for prefetching execution because they depend on the execution process of other jobs job1, job2, and job5 that have not been completed yet.

最後に、図15に示すように、ジョブ先読み実行情報3を参照し、先読み実行可否を決定し、先読み実行可のジョブを抽出する(ST11−3)。この例では、第1、第3及び第5ジョブjob1, job3, job5はすべて先読み実行可となる。例えば第3ジョブjob3はロールバックも補正も「可」なので、先読み実行できる。第1ジョブjob1はロールバックが「不可」、補正は「可」だが、ジョブネット定義情報1から第1ジョブjob1は並列実行の中にあり実行自体が取り消されることはないため、先読み実行可となる。   Finally, as shown in FIG. 15, the job pre-read execution information 3 is referred to determine whether pre-read execution is possible, and a pre-read executable job is extracted (ST11-3). In this example, the first, third, and fifth jobs job1, job3, and job5 are all prefetchable. For example, since the third job job3 is “possible” for both rollback and correction, it can be read ahead. The first job job1 is rollback “impossible” and correction is “possible”. However, since the first job job1 is in parallel execution from the job net definition information 1 and the execution itself is not canceled, the prefetch execution is possible. Become.

以上がステップST11の詳細な説明である。   The above is the detailed description of step ST11.

次に、図16は先読み実行したジョブの補正の動作を説明するための模式図である。補足すると、図11と図12で説明したジョブネット解析部13とジョブ先読み実行解析部14によるジョブ起動指示は、通常は独立して作用する。しかしジョブネット解析部13がジョブの起動指示を送信しようとしたときに、既にジョブ先読み実行解析部14から先読み実行の起動指示が送信されていた場合、ジョブ実行の補正が必要となる。その際のジョブネット解析部13とジョブ先読み実行解析部14の間のインタラクションについて図16を用いて説明する。   Next, FIG. 16 is a schematic diagram for explaining a correction operation for a job that has been pre-read. Supplementally, the job activation instruction by the job net analysis unit 13 and the job prefetch execution analysis unit 14 described with reference to FIGS. 11 and 12 normally operates independently. However, when the job net analysis unit 13 tries to transmit a job start instruction, if the job pre-read execution analysis unit 14 has already transmitted a pre-read execution start instruction, correction of job execution is required. The interaction between the job net analysis unit 13 and the job prefetch execution analysis unit 14 will be described with reference to FIG.

ジョブネット解析部13は、ステップST1と同様に、ジョブネット定義情報1を参照し、次に起動すべきジョブを選択する(ST21)。   As in step ST1, the job net analysis unit 13 refers to the job net definition information 1 and selects a job to be started next (ST21).

ジョブネット解析部13は、ステップST2と同様に、ジョブ実行状態テーブル4を参照し、そのジョブの実行状態を確認する(ST22)。   As in step ST2, the job net analysis unit 13 refers to the job execution state table 4 and confirms the execution state of the job (ST22).

ステップST22の結果、そのジョブが先読み実行されていた場合、ジョブネット解析部13は、ジョブ先読み実行解析部14にそのジョブの補正要求を出し(ST23)、そのジョブが本実行となった旨をジョブ実行状態テーブル4に記録する。   If the job is prefetched as a result of step ST22, the job net analysis unit 13 issues a correction request for the job to the job prefetch execution analysis unit 14 (ST23), indicating that the job has been executed. Record in the job execution state table 4.

具体的にはステップST22の結果、ステップST21で選択したジョブIDに一致するジョブ実行状態テーブル4内のジョブIDに対して先読み実行を示す実行種別と完了を示す実行状態が関連付けられているとき、ジョブネット解析部13は、当該選択したジョブIDに一致するジョブ先読み実行情報3内のジョブIDに関連付けられた引数のデフォルト値と、当該先読み実行を示す実行種別に関連付けられた返却値とを比較し、両者が一致するか否かを判定する。ジョブネット解析部13は、この判定の結果、両者が不一致のとき、当該判定に用いた引数のデフォルト値を含む引数補正情報が引数補正の可を示す場合には、当該引数補正情報に関連付けられたジョブIDと、このジョブIDに一致するジョブ実行状態テーブル内のジョブIDに関連付けられたジョブインスタンスIDと、当該判定に用いた返却値を示す引数と、を含む補正要求をジョブ先読み実行解析部14に送出する。また、ジョブネット解析部13は、補正要求内のジョブインスタンスIDと、実行中を示す実行状態と、本実行を示す実行種別と、を当該補正要求内のジョブIDに関連付けてジョブ実行状態テーブル4に書き込む。   Specifically, as a result of step ST22, when the job type in the job execution state table 4 matching the job ID selected in step ST21 is associated with the execution type indicating pre-read execution and the execution state indicating completion, The job net analysis unit 13 compares the default value of the argument associated with the job ID in the job prefetch execution information 3 that matches the selected job ID and the return value associated with the execution type indicating the prefetch execution. Then, it is determined whether or not they match. If the result of this determination shows that the two do not match and the argument correction information including the default value of the argument used for the determination indicates that argument correction is possible, the job net analysis unit 13 is associated with the argument correction information. A job prefetch execution analysis unit including a correction request including the job ID, the job instance ID associated with the job ID in the job execution state table matching the job ID, and an argument indicating the return value used for the determination. 14 to send. In addition, the job net analysis unit 13 associates the job instance ID in the correction request, the execution state indicating execution, and the execution type indicating main execution with the job ID in the correction request, and executes the job execution state table 4. Write to.

ジョブ先読み実行解析部14は、ステップST23で受けた補正要求を補正指示としてジョブ実行結果補正部24に送信する(ST24)。   The job prefetch execution analysis unit 14 transmits the correction request received in step ST23 to the job execution result correction unit 24 as a correction instruction (ST24).

ジョブ実行結果補正部24は、送信された補正指示を受けると、当該補正指示内のジョブID、ジョブインスタンスID及び引数に基づいて、ジョブの実行結果を補正する(ST25)。   Upon receiving the transmitted correction instruction, the job execution result correction unit 24 corrects the job execution result based on the job ID, job instance ID, and argument in the correction instruction (ST25).

ジョブの実行結果の補正が完了すると、ジョブは、補正された実行結果をジョブ実行結果補正部24に返す(ST26)。   When the correction of the job execution result is completed, the job returns the corrected execution result to the job execution result correction unit 24 (ST26).

ジョブ実行結果補正部24は、実行結果をジョブ先読み実行解析部14に送信する(ST27)。   The job execution result correction unit 24 transmits the execution result to the job prefetch execution analysis unit 14 (ST27).

ジョブ先読み実行解析部14はジョブ実行状態テーブル4に実行結果を記録する(ST28)。   The job prefetch execution analysis unit 14 records the execution result in the job execution state table 4 (ST28).

前述したステップST25におけるジョブ実行の補正では、引数のデフォルト値で先読み実行されていたジョブに対して、その引数値を実際に確定した値に置き換える。引数値をデフォルト値から実際に確定した値に置き換える方法は、個々のジョブの実装に依存する。例えば、引数のデフォルト値をそのままDBに格納しているだけのジョブであれば、DBの値を実際に確定した値に置き換えるだけで済む場合もある。引数のデフォルト値に基づいて計算処理をしているジョブであれば、確定した引数の値に基づいて再計算が必要になる場合もある。   In the job execution correction in step ST25 described above, the argument value is replaced with an actually determined value for a job that has been pre-read with the default value of the argument. The method of replacing the argument value with the actual value from the default value depends on the implementation of the individual job. For example, in the case of a job in which the default value of an argument is simply stored in the DB, it may be sufficient to replace the DB value with an actually determined value. If the job is a calculation process based on the default value of the argument, recalculation may be necessary based on the determined argument value.

なお、補正指示に代えて、ロールバック指示を送信する場合は、前述したステップST23乃至ST28は、以下のステップST23’〜ST28’のように実行される。   When transmitting a rollback instruction instead of the correction instruction, the above-described steps ST23 to ST28 are executed as in the following steps ST23 'to ST28'.

ステップST22の結果、そのジョブが先読み実行されていた場合、ジョブネット解析部13は、ジョブ先読み実行解析部14にそのジョブのロールバック要求を送出し(ST23’)、そのジョブが本実行となった旨をジョブ実行状態テーブル4に記録する。具体的にはジョブネット解析部13は、前述した判定を実行し、この判定の結果、当該判定に用いた引数のデフォルト値にジョブ先読み実行情報3内で関連付けられたロールバック情報がロールバックの可を示す一方、このロールバック情報にジョブ先読み実行情報3内で関連付けられた引数補正情報が引数補正の否を示す場合には、当該ロールバック情報に関連付けられたジョブIDと、このジョブIDに一致するジョブ実行状態テーブル4内のジョブIDに関連付けられたジョブインスタンスIDと、当該判定に用いた返却値を示す引数と、を含むロールバック要求をジョブ先読み実行解析部14に送出する(ST23’)。また、ジョブネット解析部13は、ロールバック要求内のジョブインスタンスIDと、実行中を示す実行状態と、本実行を示す実行種別と、を当該ロールバック要求内のジョブIDに関連付けてジョブ実行状態テーブル4に書き込む。   If the job is prefetched as a result of step ST22, the job net analysis unit 13 sends a rollback request for the job to the job prefetch execution analysis unit 14 (ST23 '), and the job is actually executed. Is recorded in the job execution state table 4. Specifically, the job net analysis unit 13 executes the above-described determination. As a result of the determination, the rollback information associated with the default value of the argument used for the determination in the job prefetch execution information 3 is the rollback. On the other hand, if the argument correction information associated with this rollback information in the job prefetch execution information 3 indicates whether or not argument correction is possible, the job ID associated with the rollback information and the job ID A rollback request including the job instance ID associated with the job ID in the matching job execution state table 4 and the argument indicating the return value used for the determination is sent to the job prefetch execution analysis unit 14 (ST23 ′). ). In addition, the job net analysis unit 13 associates the job instance ID in the rollback request, the execution state indicating execution, and the execution type indicating main execution with the job ID in the rollback request, and executes the job execution state. Write to Table 4.

ジョブ先読み実行解析部14は、ステップST23’で受けたロールバック要求をロールバック指示としてジョブ実行結果補正部24に送信する(ST24’)。   The job prefetch execution analysis unit 14 transmits the rollback request received in step ST23 'to the job execution result correction unit 24 as a rollback instruction (ST24').

ジョブ実行結果補正部24は、送信されたロールバック指示を受けると、当該ロールバック指示に基づいて、ジョブのロールバックを実行する(ST25’)。   Upon receiving the transmitted rollback instruction, the job execution result correcting unit 24 executes a rollback of the job based on the rollback instruction (ST25 ').

ジョブのロールバックによる再実行が完了すると、ジョブは、ジョブID、ジョブインスタンスID及び返却値を含む実行結果をジョブ実行結果補正部24に返す(ST26’)。   When the re-execution by the rollback of the job is completed, the job returns an execution result including the job ID, job instance ID, and return value to the job execution result correction unit 24 (ST26 ').

ジョブ実行結果補正部24は、この実行結果をジョブ先読み実行解析部14に送信する(ST27’)。   The job execution result correction unit 24 transmits the execution result to the job prefetch execution analysis unit 14 (ST27 ').

ジョブ先読み実行解析部14はジョブ実行状態テーブル4に実行結果を記録する(ST28’)。   The job prefetch execution analysis unit 14 records the execution result in the job execution state table 4 (ST28 ').

上述したように本実施形態によれば、ジョブ先読み実行解析部14が、ジョブ実行状態テーブル4内で実行中又は完了を示す実行状態に関連付けられたジョブIDとは異なるジョブIDであり、且つジョブ依存関係情報2内で実行過程である旨を示す依存内容に関連付けられていないジョブIDを先読み実行候補として選択し、先読み実行候補のジョブIDのうち、ジョブ先読み実行情報3内でロールバックの可又は引数補正の可に関連付けられたジョブIDを選択し、この選択したジョブIDのうちで最先のジョブIDと、ジョブインスタンスIDと、引数のデフォルト値と、を含む第2の起動指示をジョブ実行装置20に送信する構成により、ジョブネット実行時にジョブ間の依存関係を考慮してジョブを先読み実行し、余剰リソースを有効活用してジョブネット全体(実行順序に制約のあるジョブの集まり)の実行にかかる時間を短縮することができる。   As described above, according to the present embodiment, the job prefetch execution analysis unit 14 has a job ID different from the job ID associated with the execution state indicating execution or completion in the job execution state table 4, and the job A job ID that is not associated with the dependency content indicating that it is an execution process in the dependency information 2 is selected as a prefetch execution candidate, and rollback is possible in the job prefetch execution information 3 among the job IDs of the prefetch execution candidates. Alternatively, a job ID associated with the possibility of argument correction is selected, and a second start instruction including the earliest job ID, job instance ID, and default value of the argument among the selected job IDs is set as the job. With the configuration of transmitting to the execution device 20, the job is pre-read and executed in consideration of the dependency between jobs when executing the job net, and the surplus resources are allocated. It is possible to reduce the time required for execution of the entire job net (a collection of in execution order constrained jobs) and efficient use.

<第2の実施形態>
次に、第2の実施形態に係るジョブ実行システムについて説明する。
<Second Embodiment>
Next, a job execution system according to the second embodiment will be described.

第2の実施形態は、第1の実施形態の具体例であり、「多数のデータを正常/異常に仕分けして、正常なデータと異常なデータを別々に処理する」という業務を用いて、ジョブ先読み実行によりジョブネット全体の処理時間が短くなる例を示している。   The second embodiment is a specific example of the first embodiment, and uses a task of “sorting a lot of data into normal / abnormal and processing normal data and abnormal data separately”, An example in which the processing time of the entire job net is shortened by job pre-read execution is shown.

図17乃至図19にこの例のジョブネット定義情報1、ジョブ依存関係情報2、ジョブ先読み実行情報3を示す。この例では、ジョブ依存関係情報2とジョブ先読み実行情報3をシステム開発時に開発者が設定し、ジョブネット定義情報1はシステム運用時にシステム運用担当部門が随時、作成/更新するという運用を想定している。   17 to 19 show the job net definition information 1, job dependency relationship information 2, and job prefetch execution information 3 in this example. In this example, it is assumed that the developer sets job dependency information 2 and job prefetch execution information 3 during system development, and job net definition information 1 is created / updated as needed by the system operation department during system operation. ing.

ジョブネット定義情報1には、図17に示すように、「多数のデータを正常/異常に仕分けして、正常なデータと異常なデータを別々に処理」する一連のジョブの定義が記述されている。最初に先頭ジョブjob0により、処理対象の全データを正常データと異常データに仕分ける。この先頭ジョブjob0の実行結果として、正常データ一覧と異常データ一覧が出力される。   In the job net definition information 1, as shown in FIG. 17, a series of job definitions for “separating a large number of data into normal / abnormal and processing normal data and abnormal data separately” are described. Yes. First, all data to be processed is classified into normal data and abnormal data by the head job job0. As the execution result of the first job job0, a normal data list and an abnormal data list are output.

次に、正常データ一覧内の正常データ数と異常データ一覧内の異常データ数とを合わせた全データに占める異常データ数の割合に応じて条件分岐される。異常データ数が全データの5%以内であれば、第1及び第2ジョブjob1, job2からなる通常の処理に進む。異常データの割合が5%を超えていたら、第3ジョブjob3の例外処理に進む。   Next, conditional branching is performed according to the ratio of the number of abnormal data in all data including the number of normal data in the normal data list and the number of abnormal data in the abnormal data list. If the number of abnormal data is within 5% of the total data, the process proceeds to normal processing including the first and second jobs job1 and job2. If the percentage of abnormal data exceeds 5%, the process proceeds to exception processing for the third job job3.

通常の処理では、第1ジョブjob1による正常データの処理と、第2ジョブjob2による異常データの処理とを並行して実行する。   In normal processing, normal data processing by the first job job1 and abnormal data processing by the second job job2 are executed in parallel.

ジョブ依存関係情報2には、図18に示すように、第1〜第3ジョブjob1, job2, job3が、先頭ジョブjob0の返却値に依存することが記述されている。   As shown in FIG. 18, the job dependency relationship information 2 describes that the first to third jobs job1, job2, job3 depend on the return value of the first job job0.

ジョブ先読み実行情報3には、図19に示すように、第2〜第3ジョブjob2, job3がロールバックと引数補正の両方とも不可であることが記述されている。すなわち、第2〜第3ジョブjob2, job3は、先読み実行できない処理である。   As shown in FIG. 19, the job prefetch execution information 3 describes that the second to third jobs job2 and job3 cannot perform both rollback and argument correction. That is, the second to third jobs job2 and job3 are processes that cannot be prefetched.

ジョブの実行例を図20に示す。この例は異常データの割合が5%以下で、第1及び第2ジョブjob1, job2を通常通りに処理する場合である。   An example of job execution is shown in FIG. In this example, the ratio of abnormal data is 5% or less, and the first and second jobs job1 and job2 are processed as usual.

左側の図20(a)はジョブネット定義情報1に従った従来のジョブ実行例を示し、右側の図20(b)はジョブ依存関係情報2を考慮した先読み実行例を示している。   20A on the left side shows a conventional job execution example according to the job net definition information 1, and FIG. 20B on the right side shows an example of prefetching execution considering the job dependency information 2.

従来のジョブ実行例では、最初に先頭ジョブjob0で正常/異常データを仕分ける。次に第1ジョブjob1による正常データの処理と、第2ジョブjob2による異常データの処理とを並行して実行する。この場合、先頭ジョブjob0の実行と第1ジョブjob1の実行が「逐次並行」でなされ、これがジョブネット全体の実行時間(tjob0+tjob1)となる。 In the conventional job execution example, normal / abnormal data is first sorted by the first job job0. Next, normal data processing by the first job job1 and abnormal data processing by the second job job2 are executed in parallel. In this case, the execution of the first job job0 and the execution of the first job job1 are performed in “sequential parallel”, and this is the execution time (t job0 + t job1 ) of the entire job net.

右側の先読み実行例では、先頭ジョブjob0の仕分け処理と並行して、第1ジョブjob1による正常データの処理を開始する。引数のデフォルト値として全データを受け取り、全データを対象に第1ジョブjob1を実行する。その後、先頭ジョブjob0の仕分け処理が完了した時点で、第1ジョブjob1の補正処理と第2ジョブjob2の異常データ処理を実行する。このため、先読み実行例におけるジョブネット全体の実行時間は、先頭ジョブjob0の実行時間と、第2ジョブjob2の実行時間との合計時間(tjob0+tjob2)となる。 In the prefetch execution example on the right side, normal data processing by the first job job1 is started in parallel with the sorting processing of the first job job0. All data is received as the default value of the argument, and the first job job1 is executed for all data. Thereafter, when the sorting process of the first job job0 is completed, the correction process of the first job job1 and the abnormal data process of the second job job2 are executed. For this reason, the execution time of the entire job net in the prefetch execution example is the total time (t job0 + t job2 ) of the execution time of the first job job0 and the execution time of the second job job2.

ここで、先読み実行例では異常データの割合が少なく、第1ジョブjob1の補正処理や第2ジョブjob2の異常データ処理が短い。そのため、先読み実行例の実行時間は、従来の実行例の実行時間に比べ、両者の差分(tjob1−tjob2)だけジョブネット全体の実行時間を短縮することができる。 Here, in the prefetch execution example, the ratio of abnormal data is small, and the correction process for the first job job1 and the abnormal data process for the second job job2 are short. Therefore, the execution time of the prefetch execution example can shorten the execution time of the entire job net by the difference (t job1 −t job2 ) between the execution times of the conventional execution examples.

上述したように本実施形態によれば、第1の実施形態のジョブを具体化した構成においても、第1の実施形態と同様の効果を得ることができる。   As described above, according to the present embodiment, the same effect as that of the first embodiment can be obtained even in the configuration in which the job of the first embodiment is embodied.

以上説明した各実施形態によれば、ジョブネット定義情報1に加え、ジョブ依存関係情報2及びジョブ先読み実行情報3を備えた構成により、ジョブを先読み実行できるか否かを判断でき、ジョブネット全体の実行にかかる時間を短縮することができる。   According to each of the embodiments described above, it is possible to determine whether or not a job can be prefetched by the configuration including the job dependency information 2 and the job prefetch execution information 3 in addition to the job net definition information 1, and the entire job net. It is possible to reduce the time required for execution.

なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。   Note that the methods described in the above embodiments are, as programs that can be executed by a computer, magnetic disks (floppy (registered trademark) disks, hard disks, etc.), optical disks (CD-ROMs, DVDs, etc.), magneto-optical disks. (MO), stored in a storage medium such as a semiconductor memory, and distributed.

また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。   In addition, as long as the storage medium can store a program and can be read by a computer, the storage format may be any form.

また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。   In addition, an OS (operating system) running on a computer based on an instruction of a program installed in the computer from a storage medium, MW (middleware) such as database management software, network software, and the like realize the above-described embodiment. A part of each process may be executed.

さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。   Furthermore, the storage medium in each embodiment is not limited to a medium independent of a computer, but also includes a storage medium in which a program transmitted via a LAN, the Internet, or the like is downloaded and stored or temporarily stored.

また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。   Further, the number of storage media is not limited to one, and the case where the processing in each of the above embodiments is executed from a plurality of media is also included in the storage media in the present invention, and the media configuration may be any configuration.

なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。   The computer in each embodiment executes each process in each of the above embodiments based on a program stored in a storage medium, and a single device such as a personal computer or a plurality of devices are connected to a network. Any configuration of the system or the like may be used.

また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。   In addition, the computer in each embodiment is not limited to a personal computer, and includes an arithmetic processing device, a microcomputer, and the like included in an information processing device, and is a generic term for devices and devices that can realize the functions of the present invention by a program. Yes.

なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   In addition, although some embodiment of this invention was described, these embodiment is shown as an example and is not intending limiting the range of invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.

1…ジョブネット定義情報、2…ジョブ依存関係情報、3…ジョブ先読み実行情報、4…ジョブネット定義情報、10…ジョブ起動制御装置、11,21…記憶部、12…ジョブ起動制御部、13…ジョブネット解析部、14…ジョブ先読み実行解析部、20…ジョブ実行装置、22…ジョブ実行部、23…ジョブ起動部、24…ジョブ実行結果補正部。   DESCRIPTION OF SYMBOLS 1 ... Job net definition information, 2 ... Job dependence information, 3 ... Job prefetch execution information, 4 ... Job net definition information, 10 ... Job start control device, 11, 21 ... Storage part, 12 ... Job start control part, 13 ... Job net analysis unit 14. Job prefetch execution analysis unit 20 Job execution device 22 Job execution unit 23 Job start unit 24 Job execution result correction unit

Claims (3)

互いに通信可能なジョブ起動制御装置及びジョブ実行装置を備えたジョブ実行システムであって、
前記ジョブ起動制御装置は、
前記各ジョブを識別するジョブIDが当該各ジョブの実行順序の順に配列して記述されており、前記各ジョブの実行順序を定義するジョブネット定義情報を記憶する定義情報記憶手段と、
前記各ジョブの間での依存関係を記憶する依存内容記憶手段と、
前記ジョブIDと、当該ジョブIDのジョブのロールバックの可否を示すロールバック情報と、当該ジョブの引数補正の可否と引数のデフォルト値とを示す引数補正情報と、を関連付けて記憶するジョブ補正情報記憶手段と、
前記ジョブIDと、当該ジョブIDのジョブとして実行されたジョブインスタンスを識別するジョブインスタンスIDと、前記ジョブインスタンスの状態が実行中、完了又は失敗である旨を示す実行状態と、前記ジョブインスタンスの実行が前記実行順序通りの本実行か又は前記本実行の実行順序よりも先に実行された先読み実行かを示す実行種別と、前記実行状態が完了を示す場合のジョブインスタンスの返却値と、を関連付けて記憶する実行状態記憶手段と、
前記実行状態記憶手段内で本実行を示す実行種別と完了を示す実行状態との両者に関連付けられたジョブIDに一致する前記定義情報記憶手段内のジョブIDのうち、当該定義情報記憶手段内で最後の実行順序のジョブIDを抽出し、この抽出したジョブIDの実行順序の次の実行順序に配列されたジョブIDを選択し、この選択したジョブIDに一致する前記実行状態記憶手段内のジョブIDに対して先読み実行を示す実行種別と実行中を示す実行状態との両者が関連付けられていないとき、当該選択したジョブIDのジョブとして実行されるジョブインスタンスを識別するジョブインスタンスIDを指定し、当該選択したジョブID及び当該指定したジョブインスタンスIDを含む第1の起動指示を前記ジョブ実行装置に送信する第1の起動指示送信手段と、
前記第1の起動指示内のジョブインスタンスIDと、実行中を示す実行状態と、本実行を示す実行種別と、を当該第1の起動指示内のジョブIDに関連付けて前記実行状態記憶手段に書き込む手段と、
前記実行状態記憶手段内で実行中又は完了を示す実行状態に関連付けられたジョブIDとは異なるジョブIDであり、且つ前記依存内容記憶手段内で前記実行過程である旨を示す依存内容に関連付けられていないジョブIDを先読み実行候補のジョブIDとして選択する先読み候補選択手段と、
前記選択された先読み実行候補のジョブIDのうち、前記ジョブ補正情報記憶手段内でロールバックの可を示すロールバック情報又は引数補正の可を示す引数補正情報に関連付けられたジョブIDを選択し、この選択したジョブIDに一致する前記定義情報記憶手段内のジョブIDのうちで最先の実行順序に配列されたジョブIDと、このジョブIDのジョブとして実行されるジョブインスタンスを識別するジョブインスタンスIDと、このジョブIDに一致する前記ジョブ補正情報記憶手段内のジョブIDに関連付けられた引数のデフォルト値と、を含む第2の起動指示を前記ジョブ実行装置に送信する第2の起動指示送信手段と、
前記第2の起動指示内のジョブインスタンスIDと、実行中を示す実行状態と、先読み実行を示す実行種別と、を当該第2の起動指示内のジョブIDに関連付けて前記実行状態記憶手段に書き込む手段と、
前記ジョブ実行装置からジョブID、ジョブインスタンスID及び返却値を含む実行結果を受けると、この実行結果内のジョブID及びジョブインスタンスIDに関連付けて当該返却値を前記実行状態記憶手段に書き込むと共に、当該ジョブID及びジョブインスタンスIDに関連付けられた実行状態を完了に更新する手段と、
前記実行状態記憶手段内で本実行を示す実行種別と完了を示す実行状態との両者に関連付けられたジョブIDに一致する前記定義情報記憶手段内のジョブIDのうち、当該定義情報記憶手段内で最後の実行順序のジョブIDを抽出し、この抽出したジョブIDの実行順序の次の実行順序に配列されたジョブIDを選択し、当該次の実行順序のジョブIDに一致する前記実行状態記憶手段内のジョブIDに対して先読み実行を示す実行種別と完了を示す実行状態が関連付けられているとき、当該次の実行順序のジョブIDに一致する前記ジョブ補正情報記憶手段内のジョブIDに関連付けられた引数のデフォルト値と、当該先読み実行を示す実行種別に関連付けられた返却値とを比較し、両者が一致するか否かを判定する手段と、
この判定の結果、両者が不一致のとき、前記判定に用いた引数のデフォルト値に前記ジョブ補正情報記憶手段内で関連付けられたロールバック情報がロールバックの可を示す一方、このロールバック情報に前記ジョブ補正情報記憶手段内で関連付けられた引数補正情報が引数補正の否を示す場合には、当該ロールバック情報に関連付けられたジョブIDと、このジョブIDに一致する前記実行状態記憶手段内のジョブIDに関連付けられたジョブインスタンスIDと、当該判定に用いた返却値を示す引数と、を含むロールバック要求を送出する手段と、
前記送出されたロールバック要求をロールバック指示として前記ジョブ実行装置に送信するロールバック指示送信手段と、
を備え、
前記ジョブ実行装置は、
前記第1又は第2の起動指示を前記ジョブ起動制御装置から受信すると、当該起動指示内のジョブID及びジョブインスタンスIDに基づいて、ジョブを起動するジョブ起動手段と、
前記起動されたジョブの実行結果を前記ジョブ起動制御装置に返信する手段と、
前記ロールバック指示を前記ジョブ起動制御装置から受信すると、当該ロールバック指示に基づいて、ジョブのロールバックを実行するロールバック実行手段と、
前記ロールバックによる再度の実行結果をジョブ起動制御装置に返信する手段と、
を備えたことを特徴とするジョブ実行システム。
A job execution system including a job activation control device and a job execution device that can communicate with each other,
The job activation control device
Definition information storage means for storing job net definition information defining job execution order for each job, in which job IDs for identifying each job are described in the order of execution of the jobs;
Dependency content storage means for storing dependency relationships between the jobs;
Job correction information that associates and stores the job ID, rollback information indicating whether or not the job with the job ID can be rolled back, and argument correction information indicating whether or not argument correction of the job is possible and a default value of the argument. Storage means;
The job ID, a job instance ID for identifying a job instance executed as a job of the job ID, an execution state indicating that the state of the job instance is being executed, completed or failed, and execution of the job instance Is associated with the execution type indicating whether the execution is in accordance with the execution order or the pre-read execution executed before the execution order of the main execution and the return value of the job instance when the execution state indicates completion Execution state storage means for storing
Among the job IDs in the definition information storage unit that match the job IDs associated with both the execution type indicating the main execution and the execution state indicating completion in the execution state storage unit, in the definition information storage unit The job ID in the last execution order is extracted, the job ID arranged in the execution order next to the execution order of the extracted job ID is selected, and the job in the execution state storage unit that matches the selected job ID Specifying a job instance ID for identifying a job instance to be executed as a job of the selected job ID when both the execution type indicating pre-read execution and the execution state indicating execution are not associated with the ID, A first start instruction including the selected job ID and the specified job instance ID is transmitted to the job execution apparatus. And the dynamic instruction transmission means,
The job instance ID in the first start instruction, the execution state indicating execution, and the execution type indicating main execution are written in the execution state storage unit in association with the job ID in the first start instruction. Means,
The job ID is different from the job ID associated with the execution state indicating execution or completion in the execution state storage unit, and is associated with the dependency content indicating the execution process in the dependency content storage unit. Prefetch candidate selection means for selecting a job ID that has not been used as a job ID of a prefetch execution candidate;
Among the selected prefetch execution candidate job IDs, select a job ID associated with rollback information indicating whether rollback is possible or argument correction information indicating whether argument correction is possible in the job correction information storage unit, Among the job IDs in the definition information storage means matching the selected job ID, the job ID arranged in the earliest execution order and the job instance ID for identifying the job instance executed as the job of this job ID And a second start instruction transmitting means for transmitting to the job execution apparatus a second start instruction including a default value of an argument associated with the job ID in the job correction information storage means matching the job ID When,
The job instance ID in the second start instruction, the execution state indicating execution, and the execution type indicating pre-read execution are written in the execution state storage unit in association with the job ID in the second start instruction. Means,
Upon receiving an execution result including a job ID, job instance ID, and return value from the job execution device, the return value is written in the execution state storage means in association with the job ID and job instance ID in the execution result, and Means for updating the execution state associated with the job ID and job instance ID to complete;
Among the job IDs in the definition information storage unit that match the job IDs associated with both the execution type indicating the main execution and the execution state indicating completion in the execution state storage unit, in the definition information storage unit The execution status storage unit that extracts the job ID of the last execution order, selects the job ID arranged in the execution order next to the execution order of the extracted job ID, and matches the job ID of the next execution order Is associated with the job ID in the job correction information storage unit that matches the job ID of the next execution order. Means for comparing the default value of the argument and the return value associated with the execution type indicating the prefetch execution, and determining whether or not both match,
As a result of the determination, when the two do not match, the rollback information associated with the default value of the argument used for the determination in the job correction information storage means indicates that rollback is possible, while the rollback information If the argument correction information associated in the job correction information storage means indicates argument correction or not, the job ID associated with the rollback information and the job in the execution state storage means that matches this job ID Means for sending a rollback request including a job instance ID associated with the ID and an argument indicating a return value used for the determination;
Rollback instruction transmission means for transmitting the sent rollback request to the job execution apparatus as a rollback instruction;
With
The job execution device includes:
Job starting means for starting a job based on the job ID and job instance ID in the start instruction when the first or second start instruction is received from the job start control device;
Means for returning the execution result of the activated job to the job activation control device;
When the rollback instruction is received from the job activation control device, rollback execution means for executing a rollback of the job based on the rollback instruction;
Means for returning the execution result of the rollback again to the job activation control device;
A job execution system comprising:
請求項1に記載のジョブ実行システムにおいて、
前記ジョブ起動制御装置は、
前記判定の結果、両者が不一致のとき、前記判定に用いた引数のデフォルト値を含む引数補正情報が引数補正の可を示す場合には、当該引数補正情報に関連付けられたジョブIDと、このジョブIDに一致する前記実行状態記憶手段内のジョブIDに関連付けられたジョブインスタンスIDと、当該判定に用いた返却値を示す引数と、を含む補正要求を送出する手段と、
前記送出された補正要求を補正指示として前記ジョブ実行装置に送信する補正指示送信手段と、
を更に備え、
前記ジョブ実行装置は、
前記送信された補正指示を受けると、当該補正指示内のジョブID、ジョブインスタンスID及び引数に基づいて、ジョブの実行結果を補正するジョブ実行結果補正手段と、
前記補正された実行結果を前記ジョブ起動制御装置に返信する手段と、
を更に備えたことを特徴とするジョブ実行システム。
The job execution system according to claim 1,
The job activation control device
As a result of the determination, if the two do not match, if the argument correction information including the default value of the argument used for the determination indicates that argument correction is possible, the job ID associated with the argument correction information and this job Means for sending a correction request including a job instance ID associated with the job ID in the execution state storage means matching the ID, and an argument indicating a return value used for the determination;
Correction instruction transmission means for transmitting the sent correction request to the job execution apparatus as a correction instruction;
Further comprising
The job execution device includes:
Job execution result correction means for correcting the job execution result based on the job ID, job instance ID, and argument in the correction instruction when receiving the transmitted correction instruction;
Means for returning the corrected execution result to the job activation control device;
A job execution system further comprising:
ジョブ実行装置に通信可能であり、且つ定義情報記憶手段、依存内容記憶手段、ジョブ補正情報記憶手段及び実行状態記憶手段を備えたジョブ起動制御装置に用いられるプログラムであって、
前記ジョブ起動制御装置を、
前記各ジョブを識別するジョブIDが当該各ジョブの実行順序の順に配列して記述されており、前記各ジョブのうちの幾つかの各ジョブを分岐させて並列に実行する場合には当該幾つかの各ジョブのジョブIDに関連付けて前記分岐の条件が更に記述されているジョブネット定義情報を前記定義情報記憶手段に書き込む手段、
前記ジョブIDと、当該ジョブIDのジョブが依存する依存元のジョブを識別する依存元のジョブIDと、前記依存する内容が前記依存元のジョブの実行過程又は返却値である旨を示す依存内容と、を関連付けて前記依存内容記憶手段に書き込む手段、
前記ジョブIDと、当該ジョブIDのジョブのロールバックの可否を示すロールバック情報と、当該ジョブの引数補正の可否と引数のデフォルト値とを示す引数補正情報と、を関連付けて前記ジョブ補正情報記憶手段に書き込む手段、
前記ジョブIDと、当該ジョブIDのジョブとして実行されたジョブインスタンスを識別するジョブインスタンスIDと、前記ジョブインスタンスの状態が実行中、完了又は失敗である旨を示す実行状態と、前記ジョブインスタンスの実行が前記実行順序通りの本実行か又は前記本実行の実行順序よりも先に実行された先読み実行かを示す実行種別と、前記実行状態が完了を示す場合のジョブインスタンスの返却値と、を関連付けて前記実行状態記憶手段に書き込む手段、
前記実行状態記憶手段内で本実行を示す実行種別と完了を示す実行状態との両者に関連付けられたジョブIDに一致する前記定義情報記憶手段内のジョブIDのうち、当該定義情報記憶手段内で最後の実行順序のジョブIDを抽出し、この抽出したジョブIDの実行順序の次の実行順序に配列されたジョブIDを選択し、この選択したジョブIDに一致する前記実行状態記憶手段内のジョブIDに対して先読み実行を示す実行種別と実行中を示す実行状態との両者が関連付けられていないとき、当該選択したジョブIDのジョブとして実行されるジョブインスタンスを識別するジョブインスタンスIDを指定し、当該選択したジョブID及び当該指定したジョブインスタンスIDを含む第1の起動指示を前記ジョブ実行装置に送信する第1の起動指示送信手段、
前記第1の起動指示内のジョブインスタンスIDと、実行中を示す実行状態と、本実行を示す実行種別と、を当該第1の起動指示内のジョブIDに関連付けて前記実行状態記憶手段に書き込む手段、
前記実行状態記憶手段内で実行中又は完了を示す実行状態に関連付けられたジョブIDとは異なるジョブIDであり、且つ前記依存内容記憶手段内で前記実行過程である旨を示す依存内容に関連付けられていないジョブIDを先読み実行候補のジョブIDとして選択する先読み候補選択手段、
前記選択された先読み実行候補のジョブIDのうち、前記ジョブ補正情報記憶手段内でロールバックの可を示すロールバック情報又は引数補正の可を示す引数補正情報に関連付けられたジョブIDを選択し、この選択したジョブIDに一致する前記定義情報記憶手段内のジョブIDのうちで最先の実行順序に配列されたジョブIDと、このジョブIDのジョブとして実行されるジョブインスタンスを識別するジョブインスタンスIDと、このジョブIDに一致する前記ジョブ補正情報記憶手段内のジョブIDに関連付けられた引数のデフォルト値と、を含む第2の起動指示を前記ジョブ実行装置に送信する第2の起動指示送信手段、
前記第2の起動指示内のジョブインスタンスIDと、実行中を示す実行状態と、先読み実行を示す実行種別と、を当該第2の起動指示内のジョブIDに関連付けて前記実行状態記憶手段に書き込む手段、
前記ジョブ実行装置からジョブID、ジョブインスタンスID及び返却値を含む実行結果を受けると、この実行結果内のジョブID及びジョブインスタンスIDに関連付けて当該返却値を前記実行状態記憶手段に書き込むと共に、当該ジョブID及びジョブインスタンスIDに関連付けられた実行状態を完了に更新する手段、
前記実行状態記憶手段内で本実行を示す実行種別と完了を示す実行状態との両者に関連付けられたジョブIDに一致する前記定義情報記憶手段内のジョブIDのうち、当該定義情報記憶手段内で最後の実行順序のジョブIDを抽出し、この抽出したジョブIDの実行順序の次の実行順序に配列されたジョブIDを選択し、当該次の実行順序のジョブIDに一致する前記実行状態記憶手段内のジョブIDに対して先読み実行を示す実行種別と完了を示す実行状態が関連付けられているとき、当該次の実行順序のジョブIDに一致する前記ジョブ補正情報記憶手段内のジョブIDに関連付けられた引数のデフォルト値と、当該先読み実行を示す実行種別に関連付けられた返却値とを比較し、両者が一致するか否かを判定する手段、
この判定の結果、両者が不一致のとき、前記判定に用いた引数のデフォルト値に前記ジョブ補正情報記憶手段内で関連付けられたロールバック情報がロールバックの可を示す一方、このロールバック情報に前記ジョブ補正情報記憶手段内で関連付けられた引数補正情報が引数補正の否を示す場合には、当該ロールバック情報に関連付けられたジョブIDと、このジョブIDに一致する前記実行状態記憶手段内のジョブIDに関連付けられたジョブインスタンスIDと、当該判定に用いた返却値を示す引数と、を含むロールバック要求を送出する手段、
前記送出されたロールバック要求をロールバック指示として前記ジョブ実行装置に送信するロールバック指示送信手段、
として機能させ、
前記ジョブ実行装置としては、
前記第1又は第2の起動指示を前記ジョブ起動制御装置から受信すると、当該起動指示内のジョブID及びジョブインスタンスIDに基づいて、ジョブを起動して当該ジョブの実行結果を前記ジョブ起動制御装置に返信し、
前記ロールバック指示を前記ジョブ起動制御装置から受信すると、当該ロールバック指示に基づいて、ジョブのロールバックを実行し、当該ロールバックによる再度の実行結果をジョブ起動制御装置に返信するプログラム。
A program that is communicable with a job execution device and that is used in a job activation control device that includes definition information storage means, dependency content storage means, job correction information storage means, and execution state storage means,
The job activation control device;
Job IDs for identifying the respective jobs are described in the order of execution of the respective jobs, and in the case where some of the jobs are branched and executed in parallel, Means for writing job net definition information further describing the branching condition in association with the job ID of each job in the definition information storage means;
Dependent content indicating that the job ID, the dependent job ID for identifying the dependent job on which the job with the job ID depends, and that the dependent content is an execution process or a return value of the dependent job And means for writing to the dependence content storage means in association with each other,
The job correction information is stored in association with the job ID, rollback information indicating whether or not the job with the job ID can be rolled back, and argument correction information indicating whether or not argument correction of the job is possible and a default value of the argument. Means to write means,
The job ID, a job instance ID for identifying a job instance executed as a job of the job ID, an execution state indicating that the state of the job instance is being executed, completed or failed, and execution of the job instance Is associated with the execution type indicating whether the execution is in accordance with the execution order or the pre-read execution executed before the execution order of the main execution and the return value of the job instance when the execution state indicates completion Means for writing to the execution state storage means,
Among the job IDs in the definition information storage unit that match the job IDs associated with both the execution type indicating the main execution and the execution state indicating completion in the execution state storage unit, in the definition information storage unit The job ID in the last execution order is extracted, the job ID arranged in the execution order next to the execution order of the extracted job ID is selected, and the job in the execution state storage unit that matches the selected job ID Specifying a job instance ID for identifying a job instance to be executed as a job of the selected job ID when both the execution type indicating pre-read execution and the execution state indicating execution are not associated with the ID, A first start instruction including the selected job ID and the specified job instance ID is transmitted to the job execution apparatus. Dynamic instruction transmission means,
The job instance ID in the first start instruction, the execution state indicating execution, and the execution type indicating main execution are written in the execution state storage unit in association with the job ID in the first start instruction. means,
The job ID is different from the job ID associated with the execution state indicating execution or completion in the execution state storage unit, and is associated with the dependency content indicating the execution process in the dependency content storage unit. Prefetch candidate selection means for selecting a job ID that has not been used as a prefetch execution candidate job ID;
Among the selected prefetch execution candidate job IDs, select a job ID associated with rollback information indicating whether rollback is possible or argument correction information indicating whether argument correction is possible in the job correction information storage unit, Among the job IDs in the definition information storage means matching the selected job ID, the job ID arranged in the earliest execution order and the job instance ID for identifying the job instance executed as the job of this job ID And a second start instruction transmitting means for transmitting to the job execution apparatus a second start instruction including a default value of an argument associated with the job ID in the job correction information storage means matching the job ID ,
The job instance ID in the second start instruction, the execution state indicating execution, and the execution type indicating pre-read execution are written in the execution state storage unit in association with the job ID in the second start instruction. means,
Upon receiving an execution result including a job ID, job instance ID, and return value from the job execution device, the return value is written in the execution state storage means in association with the job ID and job instance ID in the execution result, and Means for updating the execution state associated with the job ID and job instance ID to completion,
Among the job IDs in the definition information storage unit that match the job IDs associated with both the execution type indicating the main execution and the execution state indicating completion in the execution state storage unit, in the definition information storage unit The execution status storage unit that extracts the job ID of the last execution order, selects the job ID arranged in the execution order next to the execution order of the extracted job ID, and matches the job ID of the next execution order Is associated with the job ID in the job correction information storage unit that matches the job ID of the next execution order. Means for comparing the default value of the argument and the return value associated with the execution type indicating the pre-read execution, and determining whether or not both match,
As a result of the determination, when the two do not match, the rollback information associated with the default value of the argument used for the determination in the job correction information storage means indicates that rollback is possible, while the rollback information If the argument correction information associated in the job correction information storage means indicates argument correction or not, the job ID associated with the rollback information and the job in the execution state storage means that matches this job ID Means for sending a rollback request including a job instance ID associated with the ID and an argument indicating a return value used for the determination;
Rollback instruction transmission means for transmitting the sent rollback request to the job execution apparatus as a rollback instruction;
Function as
As the job execution device,
When the first or second activation instruction is received from the job activation control device, the job is activated based on the job ID and job instance ID in the activation instruction, and the execution result of the job is displayed on the job activation control device. Reply to
A program that, when receiving the rollback instruction from the job activation control apparatus, executes a rollback of the job based on the rollback instruction, and returns the execution result of the rollback again to the job activation control apparatus.
JP2011068909A 2011-03-25 2011-03-25 Job execution system and program Expired - Fee Related JP5566936B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011068909A JP5566936B2 (en) 2011-03-25 2011-03-25 Job execution system and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011068909A JP5566936B2 (en) 2011-03-25 2011-03-25 Job execution system and program

Publications (2)

Publication Number Publication Date
JP2012203732A JP2012203732A (en) 2012-10-22
JP5566936B2 true JP5566936B2 (en) 2014-08-06

Family

ID=47184660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011068909A Expired - Fee Related JP5566936B2 (en) 2011-03-25 2011-03-25 Job execution system and program

Country Status (1)

Country Link
JP (1) JP5566936B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017068877A (en) * 2017-01-20 2017-04-06 株式会社三菱東京Ufj銀行 Job net management system and program
JP6302103B2 (en) * 2017-01-20 2018-03-28 株式会社三菱東京Ufj銀行 Job net management apparatus and program

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844574A (en) * 1994-07-29 1996-02-16 Nec Corp Job operation management device
JP5444900B2 (en) * 2009-07-10 2014-03-19 日本電気株式会社 Job execution management system, job execution management method, job execution management program
JP2011053995A (en) * 2009-09-03 2011-03-17 Hitachi Ltd Data processing control method and computer system

Also Published As

Publication number Publication date
JP2012203732A (en) 2012-10-22

Similar Documents

Publication Publication Date Title
JP4764472B2 (en) Database management method, database management program, and database management apparatus
JP5971420B2 (en) State restoration program, apparatus, and support method
US8990786B2 (en) Program optimizing apparatus, program optimizing method, and program optimizing article of manufacture
US10719336B1 (en) Dependency version conflict auto-resolution
JP6796717B2 (en) Branch target buffer compression
WO2016016975A1 (en) Development assistance system
US10496617B2 (en) Container repository optimization
US10719322B2 (en) Techniques for facilitating cracking and fusion within a same instruction group
US20150178062A1 (en) Automated computer application update analysis
CN106897123B (en) Database operation method and device
EP3396560B1 (en) Database operating method and device
WO2017041639A1 (en) Database operating method and device
JP5566936B2 (en) Job execution system and program
US20110289192A1 (en) Controlling a running application for live scene graph editing
US20080082982A1 (en) Method, system and computer program for translating resource relationship requirements for jobs into queries on a relational database
JP4830164B2 (en) Information processing apparatus and vector type information processing apparatus
JP2007532990A (en) Method and structure for explicit software control of thread execution including helper subthreads
US11868791B2 (en) Method and system for determining the next state of application upgrades using a device emulation system of a customer environment
CN106503027A (en) Database operation method and device
US20130305219A1 (en) Apparatus and method for providing custom software, and method for software customization
JP6688433B2 (en) Computer system
JP2012128581A (en) Communication code generation apparatus, function utilization computer, function disclosure computer, computer system, communication code generation method and program
JP7474779B2 (en) Instruction Sequencing
JP7145094B2 (en) Control device, computer program and information processing method
JP2010026695A (en) Business process execution method, business process execution device and business process execution program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131015

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140514

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140618

R150 Certificate of patent or registration of utility model

Ref document number: 5566936

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees