Job management device, control method for job management device, and program

The job management device efficiently manages job execution by using cache attributes to replace jobs with cached results, addressing inefficiencies in cache utilization due to external data updates.

JP2025140544APending Publication Date: 2025-09-29NEC CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024040011
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-14
Publication Date
2025-09-29

AI Technical Summary

Technical Problem

Existing information processing devices do not adequately manage job execution using a cache when data in a data storage unit is updated from outside the device, leading to potential inefficiencies and inappropriate cache utilization.

Method used

A job management device and method that includes a job management unit managing job networks with attributes indicating data update status and freshness conditions, allowing replacement of jobs with cache references when appropriate.

Benefits of technology

Enables efficient management of job execution by utilizing cache results, reducing external data access and improving processing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025140544000001_ABST
    Figure 2025140544000001_ABST
Patent Text Reader

Abstract

To provide a job management device, a control method for a job management device, and a program that can appropriately manage job execution using a cache.SOLUTION: A job management device comprises: job management means for managing a plurality of job networks, which are flows representing an execution order of one or more jobs, including jobs that have the same input parameters and processing based on the input parameters, and that produce the same output results even when executed repeatedly if conditions related to freshness are met: and a cache for storing the output results. When an attributes of a specific job to be executed is such that data updated from outside the job management device is not used, or if data is used but is updated periodically, and if output results of a past specific job that has the same input parameters and processing based on the input parameters and meets the freshness conditions are available in the cache, the job management means replaces the specific job with a reference process of the output results in the cache.SELECTED DRAWING: Figure 15
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a job management device, a control method for a job management device, and a program. [Background technology]

[0002] In the information processing device described in Patent Document 1, data used in a job is read from a data storage unit such as an external storage device and stored in a cache. Also, in this information processing device, if the data used in a job is already stored in the cache, the data is read from the cache without accessing the data storage unit. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2012-59204 Summary of the Invention [Problem to be solved by the invention]

[0004] In the information processing device described in Patent Document 1, for example, when data in a data storage unit is updated from outside the information processing device, it is necessary to manage whether or not data stored in a cache can be used instead of the data in the data storage unit. Patent Document 1 does not mention this point, and therefore the information processing device described in Patent Document 1 may not be able to appropriately manage job execution using a cache.

[0005] An object of the present disclosure is to provide a job management device, a control method for a job management device, and a program that solve the above-mentioned problems. [Means for solving the problem]

[0006] The job management device of the present disclosure is a job management device comprising: a job management means for managing multiple job networks, which are flows representing the execution order of one or more jobs, including jobs (hereinafter referred to in this paragraph as specific jobs) that have the same input parameters and processing based on the input parameters and that produce the same output result even when executed repeatedly if freshness conditions are met; and a cache for storing the output results, wherein the job network holds, as attributes, information indicating whether data updated from outside the job management device is used for the specific job, information indicating whether the updates are regular if used, and information indicating the freshness conditions, and when the attributes of the specific job (hereinafter referred to in this paragraph as the specific job) to be executed are that there is no use, or that there is use but the updates are regular, if the output results of a past specific job that has the same input parameters and processing based on the input parameters and meets the freshness conditions are in the cache, the job management means replaces the specific job with a reference process of the output results in the cache.

[0007] The control method for a job management device disclosed herein is a control method for a job management device that includes a job management means that manages multiple job networks, which are flows representing the execution order of one or more jobs, including jobs (hereinafter referred to in this paragraph as specific jobs) that have the same input parameters and processing based on the input parameters and that produce the same output result even when executed repeatedly if freshness conditions are met, and a cache that stores the output results, wherein the job network holds, as attributes, information indicating whether data updated from outside the job management device is used for the specific job, information indicating whether the updates are regular if used, and information indicating the freshness conditions, and when the attributes of the specific job (hereinafter referred to in this paragraph as the specific job) to be executed by the job management means are either not used or are used but are updated regularly, if the output results of a past specific job that has the same input parameters and processing based on the input parameters and meets the freshness conditions are in the cache, the specific job is replaced by a reference process of the output results in the cache.

[0008] The program disclosed herein is a program executed by a computer constituting a job management device having a job management means for managing multiple job networks, which are flows representing the execution order of one or more jobs, including jobs (hereinafter referred to in this paragraph as specific jobs) that have the same input parameters and processing based on the input parameters and that produce the same output result even when executed repeatedly if freshness conditions are met, and a cache for storing the output results, wherein the job network holds, as attributes, information indicating whether data updated from outside the job management device is used for the specific job, information indicating whether the updates are regular if used, and information indicating the freshness conditions, and the job management means causes the computer to execute a step of replacing the specific job with a reference process to the output result in the cache if the attributes of the specific job (hereinafter referred to in this paragraph as the specific job) to be executed are that there is no use, or that there is use but the updates are regular. [Effects of the Invention]

[0009] According to the job management device, the control method for the job management device, and the program of the present disclosure, it is possible to appropriately manage the execution of a job using a cache. [Brief explanation of the drawings]

[0010] [Figure 1] 1 is a block diagram illustrating an example of the configuration of a job management device according to an embodiment of the present disclosure. [Figure 2] FIG. 1 is a diagram illustrating an example of a job network according to an embodiment of the present disclosure. [Figure 3] FIG. 1 is a diagram illustrating an example of a job network according to an embodiment of the present disclosure. [Figure 4] FIG. 1 is a diagram illustrating an example of a job network according to an embodiment of the present disclosure. [Figure 5]FIG. 10 is a diagram illustrating an example of attributes of a job network according to an embodiment of the present disclosure. [Figure 6] FIG. 10 is a diagram illustrating an example of execution time of each job according to an embodiment of the present disclosure. [Figure 7] FIG. 10 is a diagram illustrating an example of schedule information according to an embodiment of the present disclosure. [Figure 8] FIG. 1 illustrates an example of cache and queue operation according to an embodiment of the present disclosure. [Figure 9] 10 is a flowchart illustrating an example of the operation of a job management apparatus according to an embodiment of the present disclosure. [Figure 10] 10 is a flowchart illustrating an example of the operation of a job management apparatus according to an embodiment of the present disclosure. [Figure 11] FIG. 10 is a diagram illustrating an example of schedule information according to an embodiment of the present disclosure. [Figure 12] FIG. 1 illustrates an example of cache and queue operation according to an embodiment of the present disclosure. [Figure 13] FIG. 10 is a diagram illustrating an example of schedule information according to an embodiment of the present disclosure. [Figure 14] FIG. 1 illustrates an example of cache and queue operation according to an embodiment of the present disclosure. [Figure 15] 1 is a block diagram illustrating an example of the configuration of a job management device according to an embodiment of the present disclosure. [Figure 16] 10 is a flowchart illustrating an example of the operation of a job management apparatus according to an embodiment of the present disclosure. [Figure 17] FIG. 1 is a block diagram illustrating an example of a schematic configuration of a computer according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0011] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. In each drawing, the same or corresponding components are designated by the same reference numerals and their description will be omitted as appropriate. It should be noted that in this disclosure, the drawings may relate to one or more embodiments.

[0012] First Embodiment FIG. 1 is a block diagram illustrating an example configuration of a job management device according to an embodiment of the present disclosure. The job management device 1 illustrated in FIG. 1 can be configured using, for example, one or more computers. The job management device 1 includes the following functional blocks, which are configured by a combination of hardware such as a computer and software such as a program executed by the computer. Specifically, the job management device 1 includes a job management unit 100, a memory unit M1, and a communication unit 112. The job management unit 100 also includes a job network execution control unit 101, a predicted execution time estimation unit 102, an external data acquisition unit 103, an execution schedule setting unit 104, and a queue control unit 105. The memory unit M1 includes storage areas for job network definition information 106, job execution history information 107, schedule information 108, a cache 109, queue definition information 110, and a queue 111. In this embodiment, the job management device 1 is a device that manages processing related to jobs and job networks (such as operations such as execution, job input parameters via API (Application Programming Interface) confirmation, and process identity determination).

[0013] The job network execution control unit 101 executes jobs based on the job network definition stored in the job network definition information 106. If the job network includes a job (hereinafter referred to as a specific job) that has the same input parameters and processing and produces the same output result even when executed repeatedly within a certain period of time, the job network execution control unit 101 executes the specific job using, for example, the execution history (output result) of the specific job stored in the cache 109.

[0014] In this embodiment, as described above, a specific job is a job that has the same input parameters and processing, and that produces the same output results even if repeatedly executed within a certain period of time. Here, the certain period of time is a period during which the output result can be guaranteed to be fresh, and can be said to be a period during which a freshness condition (hereinafter also referred to as a freshness condition) can be satisfied. Therefore, a specific job can be described as a job that has the same input parameters and processing based on the input parameters, and that produces the same output results even if repeatedly executed if the freshness condition is satisfied. A job is a unit of processing executed by a computer, such as a job that performs business processing. The freshness condition is a condition under which the execution result of a job remains the same even if repeatedly executed if the freshness condition is satisfied. For example, if a job uses data that is periodically updated, the output result of the job will be different before and after the update time. In this case, repeated execution of the job across update times will not satisfy the freshness condition. Examples of specific jobs include a job that performs a process to acquire external data that is updated periodically, or a process that uses data from a product list as an input parameter to check and output the inventory quantity of a product that is updated daily.

[0015] In this embodiment, a job network is a flow that represents the execution order of one or more jobs, including at least one specific job. The job network also holds, as attributes, information indicating whether data updated from outside the job management device 1 is used for a specific job, information indicating whether updates are made periodically if data is used, and information indicating freshness conditions. Examples of job networks are shown in FIGS. 2 to 4, and an example of the attributes held by a job network is shown in FIG. 5. In the following, a job network is also referred to as a JNW.

[0016] 2 to 4 are diagrams illustrating an example of a job network according to an embodiment of the present disclosure. FIG. 5 is a diagram illustrating an example of attributes of a job network according to an embodiment of the present disclosure. JNW1 (job network 1) illustrated in FIG. 2 includes, in this order, a "get external data A" job F101 and a "JOB1" job F102. In this case, job F101 is a job that acquires external data A and is considered to be a specific job. JNW1 is defined by information indicating each input parameter and each processing content of jobs F101 and F102, as well as information indicating the execution order of jobs F101 and F102. JNW2 illustrated in FIG. 3 includes, in this order, a "JOB2-1" job F201, a "get external data A" job F202, and a "JOB2-2" job F203. In this case, job F202 is a job that acquires external data A and is considered to be the same specific job as job F101. JNW2 is defined by information indicating the input parameters and processing details of jobs F201 to F203, as well as information indicating the execution order of jobs F201 to F203. JNW3 shown in FIG. 4 includes a "JOB3-1" job F301, an "external data A acquisition" job F302, and a "JOB3-2" job F303, in that order. In this case, job F302 is a job that acquires external data A, and is the same specific job as jobs F101 and F202. JNW3 is defined by information indicating the input parameters and processing details of jobs F301 to F303, as well as information indicating the execution order of jobs F301 to F303.

[0017] The attributes held by JNWs 1 to 3 shown in FIG. 5 include information indicating whether data updated from outside the job management device 1 is used, information indicating whether updates are periodic if data is used, and information indicating freshness conditions, related to "external data A acquisition" jobs F101, F202, and F302. In the example shown in FIG. 5, the information indicating whether data updated from outside the job management device 1 is used ("Whether data updated from outside the job management device is used") is "Yes." The information indicating whether updates are periodic if data is used ("Is updated data updated periodically?") is "Periodic." The information indicating the freshness conditions ("Freshness conditions for job output results") is "Newer data after 6:00 PM the previous day." Note that the external data A acquisition jobs of each JNW have the same input parameters (e.g., a file listing products to be acquired), and are processes for acquiring external data A (e.g., sales data for the products listed) from an external database. External data A is updated by the external data source service 3, for example, at 18:00 every day. Therefore, if the input data is the same between 18:00 the previous day and 17:59 the current day, the same output result can be obtained. In this case, as shown in FIG. 5, the attribute of the external data A acquisition job uses data updated from outside the job management device 1, and data updates are performed periodically, so the freshness condition for the job output result is the newest data since 18:00 the previous day.

[0018] Information representing JNW1 to JNW3 shown in FIGS. 2 to 4 and attributes held by JNW1 to JNW3 shown in FIG. 5 are stored as job network definition information 106 in the storage unit M1.

[0019] The predicted execution time estimation unit 102 estimates the time required to execute a job from past results recorded in the job execution history information 107. FIG. 6 is a diagram illustrating an example of the execution time of each job according to an embodiment of the present disclosure. FIG. 6 illustrates an example of the predicted execution time calculated by the predicted execution time estimation unit 102 for the jobs of each JNW illustrated in FIGS. 2 to 4 from the past execution history stored in the job execution history information 107. For example, the execution time of the "Get external data A" job is 30 minutes, and the execution time of the "JOB1" job is 10 minutes. The job execution history information 107 includes, for example, the execution start date and time, execution end date and time, resource usage amount, and information indicating the storage location if the execution result is stored in the cache 109, for each executed job. The predicted execution time estimation unit 102 calculates, for example, the average value of the actual values ​​of one or more execution times of each job as the predicted time.

[0020] When there is an external data acquisition process in the job network, the external data acquisition unit 103 acquires data from the external data source service 3 via the communication unit 112 .

[0021] The execution schedule setting unit 104 cooperates with the job network execution control unit 101 to automatically set an execution schedule and rewrite the job network definition based on the job network definition and various attributes stored in the job network definition information 106. When automatically setting an execution schedule, the execution schedule setting unit 104 obtains the predicted execution time of each job using the predicted execution time estimation unit 102. Note that the execution schedule is not automatically set, and all or part of the execution schedule may follow a schedule set by the user.

[0022] Fig. 7 is a diagram illustrating an example of schedule information 108 according to an embodiment of the present disclosure. The schedule information 108 illustrated in Fig. 7 includes a schedule W101 of JNW1 illustrated in Fig. 2, a schedule W102 of JNW2 illustrated in Fig. 3, and a schedule W103 of JNW3 illustrated in Fig. 4, which are set by the execution schedule setting unit 104. In the schedule W101 of JNW1, the start time is set to 1:00, the execution time of the "acquire external data A" job is set to 1:00 to 1:30, the execution time of the "JOB1" job is set to 1:30 to 1:40, and the end time is set to 1:40.

[0023] In this embodiment, the execution schedule setting unit 104 rewrites the job network definition as follows. That is, when the attributes of a specific job to be executed (hereinafter referred to as the specific job) are such that data updated from outside the job management device 1 is not used, or if data is used but is updated periodically, the job network execution control unit 101 determines whether or not there are output results of a past specific job in the cache 109 that have the same input parameters and processing based on the input parameters and satisfy the freshness condition. If there are, the execution schedule setting unit 104 replaces the specific job with a reference process to the output results in the cache 109. Furthermore, when the attributes of the specific job are such that data updated from outside the job management device 1 is not used, or if data is used but is updated periodically, the input parameters and processing based on the input parameters are the same, and the output results of a past specific job that satisfy the freshness condition are not available in the cache 109, the job network execution control unit 101 determines whether or not there are requests for other specific jobs stored in the queue 111 that have the same input parameters and processing based on the input parameters and satisfy the freshness condition. If the job is stored, the execution schedule setting unit 104 replaces the specific job with a process of referring to the output result of another specific job stored in the cache 109. Details of these processes will be described later.

[0024] The queue control unit 105 creates a queue for each specific job in the queue 111 based on the queue definition stored in the queue definition information 110 and manages job requests to the queue for each specific job in the queue 111 .

[0025] The cache 109 stores the output results of each specific job for each specific job, as shown in Fig. 8, for example. Fig. 8 is a diagram showing an example of the operation of a cache and a queue according to an embodiment of the present disclosure. In the example shown in Fig. 8, a cache W104 is set in the cache 109 to store the output results of the external data A acquisition job of JNWs 1 to 3. The storage location of the output results of each specific job in the cache 109 is stored in the job execution history information 107.

[0026] The queue definition information 110 includes information defining each queue set for each specific job. For example, for a queue, a user specifies an attribute that sets the number of jobs that can be executed simultaneously to 1, and stores the attribute in the queue definition information 110. Based on the queue definition information 110, the queue control unit 105 creates a queue for each specific job within the queue 111.

[0027] The queue 111 includes a queue for each job for storing requests for a specific job in a pile and executing the requests in order from the top of the pile. In the example shown in Fig. 8, a queue W105 is set in the queue 111 for storing requests for an external data A acquisition job for JNWs 1 to 3.

[0028] The communication unit 112 communicates with the communication unit 203 of the user terminal 2 and the external data source service 3 .

[0029] The user terminal 2 is composed of an input unit 201, a display unit 202, and a communication unit 203. The input unit 201 is used by a user to input a job network definition, various attributes related to the job network definition, a queue definition, and queue attributes. The job management device 1 updates the job network definition information 106, queue definition information 110, etc. based on the input to the input unit 201. The display unit 202 acquires and displays the job network definition information 106 and queue definition information 110 managed by the job management device 1 via the communication unit 203. The communication unit 203 communicates with the communication unit 112 of the job management device 1.

[0030] External Data Source Services 3 are services or data sources that hold and manage external data.

[0031] Next, an example of the operation of the job management device 1 will be described with reference to the flowcharts shown in FIGS. 9 and 10. The flowchart shown in FIG. 9 and the flowchart shown in FIG. 10 are connected to each other by connectors C1 and C2. FIGS. 11 and 13 are diagrams illustrating an example of schedule information according to an embodiment of the present disclosure. FIGS. 12 and 14 are diagrams illustrating an example of the operation of a cache and a queue according to an embodiment of the present disclosure. The processes illustrated in FIGS. 9 and 10 are executed by the job network execution control unit 101, the predicted execution time estimation unit 102, the external data acquisition unit 103, the execution schedule setting unit 104, and the queue control unit 105 in the job management unit 100 working together. Therefore, each process will be described assuming that the job management unit 100 is the entity that executes the process. The following description will be given assuming that JNWs 1 to 3 described with reference to FIGS. 2 to 6 are the JNWs to be processed. FIGS. 7 and 8 illustrate the states of JNW 1 during or after the processes shown in FIGS. 9 and 10. Figures 11 and 12 show the state of JNW2 during or after the processing of Figures 9 and 10. Figures 13 and 14 show the state of JNW3 during or after the processing of Figures 9 and 10.

[0032] First, the overall flow of the process shown in Fig. 9 and Fig. 10 will be described. The process shown in Fig. 9 and Fig. 10 is executed when each job is executed based on a JNW. In the process shown in Fig. 9 and Fig. 10, first, the job management means 100 identifies a JNW including a job that has the same input parameters and produces the same output result even if it is repeatedly executed within a certain period of time (hereinafter referred to as a "specific job" in Fig. 9 and Fig. 10) (step S101). Next, the job management means 100 determines whether or not "data updated from outside the job management device 1 is not used in processing the specific job" included in the JNW identified in step S101 (step S102). If "data updated from outside the job management device 1 is not used in processing the specific job" is false (step S102: FALSE (false)), the job management means 100 determines whether or not the data used by the specific job is updated periodically (step S103). If the job is not periodic (step S103: NO), the job management means 100 places the specific job in a queue created for the specific job (step S104), calculates an execution schedule (step S105), and terminates the processing shown in Figures 9 and 10.

[0033] On the other hand, if the determination in step S102 is true that "data updated from outside the job management device 1 is not used in processing the specific job" (step S102: TRUE), or if the determination in step S103 is periodic (step S103: YES), step S106 is executed. That is, the job management means 100 refers to the execution history of the specific job that satisfies the freshness condition regarding the output result of the specific job (step S106). Next, the job management means 100 determines whether "the referenced past specific job does not have an execution history with the same input parameters and processing" (step S107). If "the referenced past specific job does not have an execution history with the same input parameters and processing" is false (step S107: FALSE), the job management means 100 replaces the processing of the specific job with processing that references the cache (step S108). In step S108, the job management means 100 replaces, for example, the specific job that acquires external data A with a process that references the execution result of another specific job (the acquisition result of external data A) in the cache 109. After step S108, the job management means 100 then executes the processes of steps S104 and S105 described above, and ends the process shown in FIGS. 9 and 10.

[0034] Furthermore, in step S107, if the determination that "the referenced past specific job does not have an execution history with the same input parameters and processing" is true (step S107: TRUE), the job management unit 100 references the queue that stores the specific job and determines whether or not the specific job is in the queue (step S109 in FIG. 10). If the specific job is in the queue (step S109: YES), the job management unit 100 determines whether or not "a specific job with the same input parameters and processing has been submitted to the queue" (step S110). If the determination that "a specific job with the same input parameters and processing has not been submitted to the queue" is false (step S110: FALSE), the job management unit 100 replaces the processing of the specific job with a process that references the cache of the specific job at the top of the queue (step S111).

[0035] Also, if there is no specific job in the queue (step S109: NO), if "a specific job with the same input parameters and processing has not been submitted to the queue" is true (step S110: TRUE), or after step S111, the job management means 100 executes the processing of steps S104 and S105 described above, and terminates the processing shown in Figures 9 and 10.

[0036] 9 and 10, the processes of steps S101 to S103 are processes in which the job management device 1 (job management means 100) determines whether or not it is possible to grasp the timing at which the output result of a specific job is updated. Furthermore, the processes of steps S106 to S108 are processes in which the job management device 1 (job management means 100) replaces the processing content of the specific job so that it refers to the cache if there is an output result of the specific job that satisfies the freshness condition. Furthermore, the processes of steps S109 to S111 are processes in which the job management device 1 (job management means 100) replaces the processing content of the specific job so that it refers to the output result of the specific job at the top of the queue if there is no cache and the specific job is in a dedicated queue.

[0037] The following describes the process flow for the cases of JNW1 to 3. In the following description, the entity that executes the process within the job management means 100 will be clearly indicated as appropriate.

[0038] First, the execution of JNW1 will be described. As shown in FIG. 11, JNW1 starts execution at 01:00. In JNW1, the external data A acquisition job F101 is executed first. The condition branch determination process for the execution process of the external data A acquisition job F101 is performed by the job network execution control unit 101. From the job attributes, the external data A acquisition job F101 is a process in which data updated from outside the job management device 1 is used in the processing of a specific job, and the data to be used is updated periodically. In other words, the external data A acquisition job F101 uses data updated from outside the job management device 1 (step S102: FALSE), but the data to be used is updated periodically (step S103: YES). In this case, the external data A acquisition job F101 is a job in which the output result (cache) of the specific job can be used.

[0039] Next, the job network execution control unit 101 determines whether there is a job output result (cache) for which the external data A acquisition job F101 satisfies the freshness condition (steps S106 to S107). If it does (step S107: FALSE), it replaces it with a process that uses the job output result (cache 109) (step S108). If it does not (step S107: TRUE), it considers whether the job output result (cache) in the queue can be used (steps S109 to S111). To make these determinations, the job network execution control unit 101 refers to job execution history information 107 that satisfies the freshness condition for the job output result. The freshness condition for the job output result is new data since 18:00 of the previous day, as shown in FIG. 5.

[0040] The job network execution control unit 101 searches the job execution history information 107 for an execution history of a job that has the same input parameters and processing as the external data A acquisition job F101. As can be seen from the cache W104 shown in Figure 8 for the external data A acquisition jobs of JNW1 to JNW3, there is no execution history that satisfies the conditions, so it considers whether the output result (cache) of the job at the top of the queue can be used.

[0041] Next, the job network execution control unit 101 determines whether the output result (cache) of the job at the top of the queue can be used (steps S109 to S111). If this is the case (step S109: YES → step S110: FALSE), the process is replaced with a process that references the output result (cache) of the job at the top of the queue (step S111). If this is not the case (step S109: NO or step S110: TRUE), the process of acquiring external data A from the external database continues. To make this determination, the job network execution control unit 101 references the queue that stores the job and determines whether there is a job in the queue using the queue control unit 105 (steps S109 to S110). Since there is no job in the queue W105 for the external data A acquisition job (FIG. 8), the job network execution control unit 101 submits the external data A acquisition job to the queue W105 for the external data A acquisition job while still performing the process of acquiring external data from the external database (step S109: NO → step S104). That is, in this case, the external data acquisition unit 103 is used to acquire external data A from an external database corresponding to the external data source service 3. The predicted execution time estimation unit 102 adds up the execution times of the jobs in the JNW1 to calculate the execution schedule W101 (FIG. 7) (step S105).

[0042] Next, the execution of JNW2 will be described. JNW2 starts execution at 01:00. In JNW2, JOB2-1 job F201 is executed first, and then external data A acquisition job F202 is executed. The job network execution control unit 101 performs the condition branch judgment process for the execution process of external data A acquisition job F202.

[0043] First, regarding the processing of the external data A acquisition job F202, it is determined whether the job management device 1 is able to grasp the timing at which the job output results are updated. The determination proceeds in the same manner as for JNW1, and since it is true, the external data A acquisition job F202 is a job for which the job output results (cache) are available (step S102: FALSE → step S103: YES).

[0044] Next, the external data A acquisition job F202 determines whether there is a job output result (cache) available that satisfies the freshness condition. The determination proceeds in the same manner as for JNW1. As can be seen from the execution history of the external data A acquisition job for JNWs 1 to 3 (cache W104 in FIG. 12), there is no execution history that satisfies the freshness condition for the job output result. Therefore, it is examined whether the output result (cache) of the job at the top of the queue can be used (step S107: TRUE → steps S109 to S110). The job network execution control unit 101 determines whether a job with the same input parameters and processing is stored in the queue that will store the next job (steps S109 to S110). The job network execution control unit 101 references the queue W105 (FIG. 12) that stores jobs, and determines using the queue control unit 105 whether a job exists in the queue. Since a job exists in the queue W105 (FIG. 12) for the external data A acquisition job, it determines using the queue control unit 105 whether a job with the same input parameters and processing has been submitted next (step S110). Because the job network execution control unit 101 has submitted the external data A acquisition job F101, which has the same input parameters and processing as the external data A acquisition job F202, it replaces the job with a process that references the output result (cache W104) of the first job in the external data A acquisition job queue W105 (external data A acquisition job F101), and submits it to the queue (step S110: FALSE → step S104). The predicted execution time estimation unit 102 adds up the execution times of each job in JNW2 to calculate the execution schedule W102 (FIG. 11). Compared to the execution schedule W102 (W102A) for acquiring external data A from an external database corresponding to external data source service 3, the execution schedule W102 (W102B) has an execution time that is 10 minutes shorter, and no load is generated on the external database in JNW2.

[0045] Finally, JNW3 will be described. JNW3 starts execution at 02:30. In JNW3, JOB3-1 job F301 is executed first, followed by external data A acquisition job F302 (schedule W103 in FIG. 13). The condition branch determination process for the execution process of external data A acquisition job F302 is performed by the job network execution control unit 101. First, it is determined whether the processing of external data A acquisition job F302 falls under the case where the job management device 1 can grasp the timing at which the job output results are updated. The determination proceeds in the same way as for JNW1 and 2, and since it is determined to be true, external data A acquisition job F302 is a job for which the job output results (cache) can be used.

[0046] Next, it is determined whether there are any available job output results (cache) that satisfy the freshness condition for the external data A acquisition job F302. The job execution history information 107 that satisfies the freshness condition for the job output results is referenced. The freshness condition for the job output results is new data after 18:00 of the previous day, as shown in FIG. 5. The job execution history information 107 is searched for execution histories of jobs that have the same input parameters and processing as the external data A acquisition job F302. As can be seen from the execution histories (cache W104) of the external data A acquisition jobs of JNW1 to JNW3 (FIG. 14), there are execution histories of the external data A acquisition job F101 of JNW1 and the external data A acquisition job F202 of JNW2 that satisfy the condition. Therefore, the process of acquiring external data A is replaced with a process that references the output result of the external data A acquisition job F101 of JNW1 (step S108).

[0047] The predicted execution time estimation unit 102 adds up the execution times of each job in JNW3 to calculate the execution schedule W103 (FIG. 13). Compared to the execution schedule W103 (W103A) for acquiring external data A from an external database corresponding to external data source service 3, the execution schedule W103 (W103B) has an execution time that is 30 minutes shorter, and no load is placed on the external database in JNW3.

[0048] As described above, the job management device 1 of this embodiment includes a job management unit 100 and a cache 109. The job management unit 100 manages multiple job networks, which are flows representing the execution order of one or more jobs, including specific jobs, which are jobs that have the same input parameters and processing based on the input parameters and that produce the same output results even when repeatedly executed if a freshness condition is met. The cache 109 stores the output results of the specific jobs. Here, the job network stores, as attributes, information indicating whether or not data updated from outside the job management device 1 is used for the specific jobs, information indicating whether the data is updated periodically if used, and information indicating the freshness condition. If the attributes of the specific job to be executed (the specific job) indicate that the data is not used or that the data is used but updated periodically, and if the output results of a previous specific job that has the same input parameters and processing based on the input parameters and satisfies the freshness condition are stored in the cache, the job management unit 100 replaces the specific job with a reference process to the output results in the cache. This configuration enables appropriate management of job execution using a cache.

[0049] Furthermore, it is possible to deal with the case where the specific job and the past specific job belong to different job networks.

[0050] The job management device 1 also includes a queue 111 for storing requests for a specific job in a stacked manner and executing them in order from the top where the request was first accumulated. The job management means 100 performs the following process when the attributes of the specific job are such that there is no use as described above, or if there is use as described above, the requests are updated periodically, the input parameters and the processing based on the input parameters are the same, and there are no output results of a past specific job in the cache 109 that satisfy the freshness conditions. That is, if a request for another specific job that has the same input parameters and the processing based on the input parameters and that satisfies the freshness conditions is stored in the queue 111, the job management means 100 replaces the specific job with a reference process to the output results of the other specific job in the cache.

[0051] Furthermore, it is possible to deal with the case where the specific job and another specific job belong to different job networks.

[0052] The queue 111 (queue W105) is created for each specific job that has the same input parameters, the same processing based on the input parameters, and the same attributes.

[0053] Furthermore, the job management means 100 replaces the request stored at the top of the queue 111 in the cache 109 with a reference process to the output result of another specific job corresponding to the request.

[0054] Furthermore, the condition regarding freshness is, for example, a condition that restricts the date and time.

[0055] The specific job also includes, for example, a process of acquiring data that is updated externally.

[0056] In this embodiment, the identity of a specific job is confirmed based on the input parameters and the content of the processing, not on the output results. This is to avoid the possibility that the output results may accidentally be the same, and the identity of the job is confirmed by checking that the input and processing are the same, rather than by determining that the output results are the same.

[0057] Furthermore, according to this embodiment, job output results (cache) can be used across multiple job networks. By replacing job execution processing with processing that references the cache, it is possible to improve efficiency by shortening the execution time of the JNW (for jobs that reference external data, the load on the external database can be reduced, etc.).

[0058] Furthermore, according to this embodiment, when a job is executed simultaneously on multiple job networks, the use of a queue allows jobs that are queued after the job at the top of the queue to be replaced with processing that references the output results (cache) of the job at the top. Therefore, even in this case, it is possible to improve efficiency by shortening the execution time of the JNW (for jobs that reference external data, the load on the external database can be reduced, etc.).

[0059] Although the above description has been given of a case where there are three job networks, the present invention can also be applied to a case where there are two job networks or four or more job networks.

[0060] Second Embodiment The job management device 400 shown in FIG. 15 includes a job management unit 401 and a cache 402. The job management unit 401 manages multiple job networks, which are flows representing the execution order of one or more jobs, including specific jobs, which are jobs that have the same input parameters and processing based on the input parameters and that produce the same output results even when executed repeatedly if a freshness condition is met. The cache 402 stores the output results of the specific jobs. Here, the job network holds, as attributes for the specific jobs, information indicating whether data updated from outside the job management device 400 is used, information indicating whether the data is updated periodically if used, and information indicating the freshness condition. If the attributes of the specific job to be executed (the specific job) are either not used or used but updated periodically, and if the output results of a previous specific job that has the same input parameters and processing based on the input parameters and satisfies the freshness condition are available in the cache 402, the job management unit 401 replaces the specific job with a reference process for the output results in the cache 402. According to this job management device 400, it is possible to appropriately manage the execution of a job using a cache.

[0061] Third Embodiment The control method of a job management device shown in Figure 16 is a control method of a job management device that includes a job management means that manages multiple job networks, which are flows that represent the execution order of one or more jobs, including specific jobs that have the same input parameters and processing based on the input parameters and that produce the same output results even when executed repeatedly if freshness conditions are met, and a cache that stores the output results. In the control method of the job management device, the job network holds, as attributes, information indicating whether data updated from outside the job management device is used for a specific job, information indicating whether updates are made periodically if data is used, and information indicating freshness conditions. In the control method for the job management device, when the attributes of a specific job to be executed (the specific job) are such that there is no use of data updated from outside the job management device, or if there is use but the updates are periodic, and if there is an output result of a past specific job in the cache that has the same input parameters and processing based on the input parameters and satisfies the freshness condition, the job management means replaces the specific job with a reference process to the output result in the cache. Note that a specific job is a job that has the same input parameters and processing based on the input parameters and satisfies the freshness condition, and will produce the same output result even if executed repeatedly. According to this method for controlling a job management device, it is possible to appropriately manage the execution of a job using a cache.

[0062] <Computer configuration> 17 is a block diagram showing a schematic configuration example of a computer according to an embodiment of the present disclosure. The computer 700 includes a CPU (Central Processing Unit) 710, a main memory device 720, an auxiliary memory device 730, and an interface 740. A non-volatile memory medium 750, for example, is connected to the interface 740. The job management device 1 described above is implemented in the computer 700. The operations of the above-described processing units are stored in the auxiliary memory device 730 in the form of a program. The CPU 710 reads the program from the auxiliary memory device 730, loads it into the main memory device 720, and executes the above-described processing in accordance with the program. The CPU 710 also allocates storage areas in the main memory device 720 corresponding to the above-described storage units in accordance with the program.

[0063] The program may be for realizing some of the functions to be performed by the computer 700. For example, the program may be combined with other programs already stored in the auxiliary storage device 730 or other programs implemented in other devices to perform the functions. In other embodiments, the computer may include a custom LSI (Large Scale Integrated Circuit) such as a PLD (Programmable Logic Device) in addition to or instead of the above configuration. Examples of PLDs include PAL (Programmable Array Logic), GAL (Generic Array Logic), CPLD (Complex Programmable Logic Device), and FPGA (Field Programmable Gate Array). In this case, some or all of the functions realized by the CPU 710 may be realized by the integrated circuit.

[0064] Examples of auxiliary storage device 730 include a hard disk drive (HDD), a solid state drive (SSD), a magnetic disk, a magneto-optical disk, a compact disc read-only memory (CD-ROM), a digital versatile disc read-only memory (DVD-ROM), and semiconductor memory. Auxiliary storage device 730 may be internal media directly connected to the bus of computer 700, or may be external media connected to computer 700 via interface 740 or a communication line. Furthermore, if this program is distributed to computer 700 via a communication line, computer 700 that receives the program may load the program into main storage device 720 and execute the above-described processing. In at least one embodiment, auxiliary storage device 730 is a non-transitory tangible storage medium.

[0065] Although the present disclosure has been described above with reference to the embodiments, the present disclosure is not limited to the above-described embodiments. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present disclosure within the scope of the present disclosure. Each embodiment can be combined with other embodiments as appropriate. Furthermore, part or all of the programs executed by the computer in the above-described embodiments can be distributed via a computer-readable recording medium or a communication line.

[0066] Some or all of the above embodiments can be described as, but are not limited to, the following supplementary notes.

[0067] (Appendix 1) a job management means for managing a plurality of job networks, which are flows representing the order of execution of one or more jobs, including jobs (hereinafter referred to as specific jobs) that have the same input parameters and processing based on the input parameters, and that produce the same output results even when repeatedly executed if freshness conditions are met; a cache for storing the output results; A job management device comprising: the job network holds, as attributes for the specific job, information indicating whether data updated from outside the job management device is used, information indicating whether the data is updated periodically if it is used, and information indicating the freshness conditions; The job management means If the attribute of the specific job to be executed (hereinafter referred to as the specific job) is that it is not used or that it is used but is updated periodically, and if the input parameters and the processing based on the input parameters are the same and the output result of the past specific job that satisfies the freshness condition is in the cache, the specific job is replaced with a reference process of the output result in the cache. Job management device.

[0068] (Appendix 2) The specific job and the past specific job belong to different job networks. 2. The job management device according to claim 1.

[0069] (Appendix 3) a queue for storing requests for the specific job in a pile and executing the requests in order from the top of the pile, The job management means When the attribute of the specific job is that the job is not used, or that the job is used but is updated periodically, the input parameters and the processing based on the input parameters are the same, and the output result of the specific job in the past that satisfies the freshness condition is not in the cache, If a request for another specific job that has the same input parameters and processing based on the input parameters and satisfies the freshness condition is stored in the queue, the specific job is replaced with a reference processing of the output result of the other specific job in the cache. 3. The job management device according to claim 1 or 2.

[0070] (Appendix 4) The specific job and the other specific job belong to different job networks. 4. The job management device according to claim 3.

[0071] (Appendix 5) The queue is created for each specific job having the same input parameters, the same processing based on the input parameters, and the same attributes. 5. The job management device according to claim 3 or 4.

[0072] (Appendix 6) The job management means replaces the request stored at the head of the queue in the cache with a reference process of the output result of the other specific job corresponding to the request. 6. A job management device according to any one of appendices 3 to 5.

[0073] (Appendix 7) The freshness condition is a condition that restricts the date and time 7. A job management device according to any one of appendices 1 to 6.

[0074] (Appendix 8) The specific job includes a process for acquiring data updated outside the job management device. 8. A job management device according to any one of appendices 1 to 7.

[0075] (Appendix 9) a job management means for managing a plurality of job networks, which are flows representing the order of execution of one or more jobs, including jobs (hereinafter referred to as specific jobs) that have the same input parameters and processing based on the input parameters, and that produce the same output results even when repeatedly executed if freshness conditions are met; a cache for storing the output results; A method for controlling a job management apparatus comprising: the job network holds, as attributes for the specific job, information indicating whether data updated from outside the job management device is used, information indicating whether the data is updated periodically if it is used, and information indicating the freshness conditions; The job management means If the attribute of the specific job to be executed (hereinafter referred to as the specific job) is that it is not used or that it is used but is updated periodically, and if the input parameters and the processing based on the input parameters are the same and the output result of the past specific job that satisfies the freshness condition is in the cache, the specific job is replaced with a reference process of the output result in the cache. A method for controlling a job management device.

[0076] (Appendix 10) The specific job and the past specific job belong to different job networks. A method for controlling a job management device according to claim 9.

[0077] (Appendix 11) the job management device, a queue for storing requests for the specific job in a pile and executing the requests in order from the top of the pile, The job management means When the attribute of the specific job is that the job is not used, or that the job is used but is updated periodically, the input parameters and the processing based on the input parameters are the same, and the output result of the specific job in the past that satisfies the freshness condition is not in the cache, If a request for another specific job that has the same input parameters and processing based on the input parameters and satisfies the freshness condition is stored in the queue, the specific job is replaced with a reference processing of the output result of the other specific job in the cache. A method for controlling a job management device according to claim 9 or 10.

[0078] (Appendix 12) The specific job and the other specific job belong to different job networks. 12. A method for controlling a job management device according to claim 11.

[0079] (Appendix 13) The queue is created for each specific job having the same input parameters, the same processing based on the input parameters, and the same attributes. 13. A method for controlling a job management device according to claim 11 or 12.

[0080] (Appendix 14) The job management means replaces the request stored at the head of the queue in the cache with a reference process of the output result of the other specific job corresponding to the request. A method for controlling a job management device according to any one of Supplementary Notes 11 to 13.

[0081] (Appendix 15) The freshness condition is a condition that restricts the date and time A method for controlling a job management device according to any one of Supplementary Notes 9 to 14.

[0082] (Appendix 16) The specific job includes a process for acquiring data updated outside the job management device. A method for controlling a job management device according to any one of appendices 9 to 15.

[0083] (Appendix 17) a job management means for managing a plurality of job networks, which are flows representing the order of execution of one or more jobs, including jobs (hereinafter referred to as specific jobs) that have the same input parameters and processing based on the input parameters, and that produce the same output results even when repeatedly executed if freshness conditions are met; a cache for storing the output results; A program executed by a computer constituting a job management device comprising: the job network holds, as attributes for the specific job, information indicating whether data updated from outside the job management device is used, information indicating whether the data is updated periodically if it is used, and information indicating the freshness conditions; The job management means If the attribute of the specific job to be executed (hereinafter referred to as the specific job) is that it is not used or that it is used but is updated periodically, and if the input parameters and the processing based on the input parameters are the same and the output result of the past specific job that satisfies the freshness condition is in the cache, the specific job is replaced with a reference process of the output result in the cache. A program that causes the computer to execute steps.

[0084] (Appendix 18) The specific job and the past specific job belong to different job networks. 17. The program described in Appendix 17.

[0085] (Appendix 19) the job management device, a queue for storing requests for the specific job in a pile and executing the requests in order from the top of the pile, The job management means When the attribute of the specific job is that the job is not used, or that the job is used but is updated periodically, the input parameters and the processing based on the input parameters are the same, and the output result of the specific job in the past that satisfies the freshness condition is not in the cache, If a request for another specific job that has the same input parameters and processing based on the input parameters and satisfies the freshness condition is stored in the queue, the specific job is replaced with a reference processing of the output result of the other specific job in the cache. 19. The program of claim 17 or 18.

[0086] (Appendix 20) The specific job and the other specific job belong to different job networks. 19. The program described in Appendix 19.

[0087] (Appendix 21) The queue is created for each specific job having the same input parameters, the same processing based on the input parameters, and the same attributes. 21. The program of claim 19 or 20.

[0088] (Appendix 22) The job management means replaces the request stored at the head of the queue in the cache with a reference process of the output result of the other specific job corresponding to the request. A program according to any one of appendices 19 to 21.

[0089] (Appendix 23) The freshness condition is a condition that restricts the date and time A program according to any one of appendices 17 to 22.

[0090] (Appendix 24) The specific job includes a process for acquiring data updated outside the job management device. A program according to any one of appendices 17 to 23. [Explanation of symbols]

[0091] 1. Job management device 2. User terminal 3. External Data Source Services 100 Job Management Method 109 Cache 111 queue

Claims

1. a job management means for managing a plurality of job networks, each of which is a flow representing an execution order of one or more jobs, including a job (hereinafter referred to as a specific job) that has the same input parameters and processing based on the input parameters, and that produces the same output result even when repeatedly executed if a freshness condition is satisfied; a cache for storing the output results; A job management device comprising: the job network holds, as attributes for the specific job, information indicating whether data updated from outside the job management device is used, information indicating whether the data is updated periodically if it is used, and information indicating the freshness conditions; The job management means If the attribute of the specific job to be executed (hereinafter referred to as the specific job) is that it is not used or that it is used but is updated periodically, and if the input parameters and the processing based on the input parameters are the same and the output result of the past specific job that satisfies the freshness condition is in the cache, the specific job is replaced with a reference process of the output result in the cache. Job management device.

2. The specific job and the past specific job belong to different job networks. The job management device according to claim 1 .

3. a queue for storing requests for the specific job in a pile and executing the requests in order from the top of the pile, The job management means When the attribute of the specific job is that the job is not used, or that the job is used but is updated periodically, the input parameters and the processing based on the input parameters are the same, and the output result of the specific job in the past that satisfies the freshness condition is not in the cache, If a request for another specific job that has the same input parameters and processing based on the input parameters and satisfies the freshness condition is stored in the queue, the specific job is replaced with a reference processing of the output result of the other specific job in the cache. The job management device according to claim 2 .

4. The specific job and the other specific job belong to different job networks. The job management device according to claim 3 .

5. The queue is created for each specific job having the same input parameters, the same processing based on the input parameters, and the same attributes. The job management device according to claim 4 .

6. The job management means replaces the request stored at the head of the queue in the cache with a reference process of the output result of the other specific job corresponding to the request. The job management device according to claim 5 .

7. The freshness condition is a condition that restricts the date and time The job management device according to claim 6.

8. The specific job includes a process for acquiring data updated outside the job management device. The job management device according to claim 7 .

9. a job management means for managing a plurality of job networks, each of which is a flow representing an execution order of one or more jobs, including a job (hereinafter referred to as a specific job) that has the same input parameters and processing based on the input parameters, and that produces the same output result even when repeatedly executed if a freshness condition is satisfied; a cache for storing the output results; A method for controlling a job management apparatus comprising: the job network holds, as attributes for the specific job, information indicating whether data updated from outside the job management device is used, information indicating whether the data is updated periodically if it is used, and information indicating the freshness conditions; The job management means If the attribute of the specific job to be executed (hereinafter referred to as the specific job) is that it is not used or that it is used but is updated periodically, and if the input parameters and the processing based on the input parameters are the same and the output result of the past specific job that satisfies the freshness condition is in the cache, the specific job is replaced with a reference process of the output result in the cache. A method for controlling a job management device.

10. a job management means for managing a plurality of job networks, each of which is a flow representing an execution order of one or more jobs, including a job (hereinafter referred to as a specific job) that has the same input parameters and processing based on the input parameters, and that produces the same output result even when repeatedly executed if a freshness condition is satisfied; a cache for storing the output results; A program executed by a computer constituting a job management device comprising: the job network holds, as attributes for the specific job, information indicating whether data updated from outside the job management device is used, information indicating whether the data is updated periodically if it is used, and information indicating the freshness conditions; The job management means If the attribute of the specific job to be executed (hereinafter referred to as the specific job) is that it is not used or that it is used but is updated periodically, and if the input parameters and the processing based on the input parameters are the same and the output result of the past specific job that satisfies the freshness condition is in the cache, the specific job is replaced with a reference process of the output result in the cache. A program that causes the computer to execute steps.

Citation Information

Patent Citations

  • Information processing apparatus, information processing method and computer program

    JP2012059204A