Information processing program, information processing method, and information processing device

The information processing device dynamically determines and restarts job flows from multiple starting points based on stored conditions, addressing the challenge of configuring a proper restart after errors, enhancing flexibility and efficiency.

JP7879448B2Active Publication Date: 2026-06-24FUJITSU LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
FUJITSU LTD
Filing Date
2022-12-26
Publication Date
2026-06-24

AI Technical Summary

Technical Problem

Existing systems struggle to properly configure a starting point for restarting a job flow after an error occurs, limiting flexibility and efficiency in handling job flow anomalies.

Method used

An information processing device that detects anomalies in a job flow, refers to a storage unit for conditions and job associations, and dynamically determines and restarts the job flow from multiple designated starting points based on stored conditions and job information.

Benefits of technology

Enables flexible and efficient restart of job flows by allowing multiple starting points based on anomaly types, reducing processing burden and time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007879448000001
    Figure 0007879448000001
  • Figure 0007879448000002
    Figure 0007879448000002
  • Figure 0007879448000003
    Figure 0007879448000003
Patent Text Reader

Abstract

To easily and appropriately set a job from which a job flow is to be restarted.SOLUTION: An information processing apparatus 100 detects an anomaly of a first job in a job group. The information processing apparatus 100 refers to a storage unit 122 to specify a condition to restart a job flow 121 associated with the first job, and determines whether the detected anomaly of the first job satisfies the specified condition. When determining that the condition is satisfied, the information processing apparatus 100 refers to the storage unit 122 to acquire information indicating one or more second jobs from which the job flow 121 associated with the first job is to be restarted. The information processing apparatus 100 restarts the job flow 121 from each of the second jobs, on the basis of the information indicating the one or more second jobs from which the job flow 121 is to be restarted.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing program, an information processing method, and an information processing apparatus.

Background Art

[0002] Conventionally, there is a system that executes a job group according to a job flow. When an abnormality occurs in any one of the jobs in the job group and any one of the jobs ends, the entire job flow also ends once. Therefore, it is desirable to restart the job flow.

[0003] As prior art, for example, when a new error of a job is detected and a plurality of recovery candidates are identified at the same time, there is one that executes the recovery process of the job based on the priority order. Also, for example, there is a technique for determining an abnormality of a target job based on a reference time or a reference time changed based on monitoring information obtained by monitoring a monitoring target associated with the target job. Also, for example, there is a technique for re-executing a job specified by the specified information of the job of the notification destination of an event corresponding to the specified information of the job of the notification source of the event. Also, for example, there is a technique for returning the state of the system to the state before the target job and the job having a dependency relationship when the target job is executed are executed.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Patent Document 2

Patent Document 3

Patent Document 4

Summary of the Invention

Problems to be Solved by the Invention

[0005] For example, if an error occurs in any job, one possible method is to restart the job flow from a pre-configured starting job, such as the job that caused the error, the job immediately preceding the job that caused the error, or the job at the beginning of the job flow. However, with the above method, it is difficult to properly configure the starting job for restarting the job flow. For example, it is not possible to set multiple jobs as the starting point for restarting a job flow.

[0006] In one aspect, the present invention aims to make it easier to properly configure the job that serves as the starting point for restarting a job flow. [Means for solving the problem]

[0007] According to one embodiment, an information processing program, information processing method, and information processing device are proposed that detect an anomaly in a first job of a group of jobs whose execution order is defined in a job flow, and refer to a storage unit that stores conditions for restarting the job flow and information indicating which job in the job group will be used as the starting point for restarting the job flow, in association with at least one of the jobs in the group, to determine whether the detected anomaly in the first job satisfies the conditions for restarting the job flow associated with the first job, and if it is determined that the detected anomaly in the first job satisfies the conditions for restarting the job flow associated with the first job, then refer to the storage unit and restart the job flow starting from the second job, based on the information indicating which job in the job flow will be used as the starting point for restarting the job flow associated with the first job. [Effects of the Invention]

[0008] According to one embodiment, it becomes easier to appropriately configure the job that serves as the starting point for restarting the job flow. [Brief explanation of the drawing]

[0009] [Figure 1] Figure 1 is an explanatory diagram showing one embodiment of the information processing method according to the embodiment. [Figure 2] Figure 2 is an explanatory diagram showing an example of the information processing system 200. [Figure 3] Figure 3 is a block diagram showing an example of the hardware configuration of the information processing device 100. [Figure 4] Figure 4 is a block diagram showing an example of the functional configuration of the information processing device 100. [Figure 5] Figure 5 is an explanatory diagram showing an example of job flow 500. [Figure 6] Figure 6 is an explanatory diagram showing an example of how to store job flow 500. [Figure 7] Figure 7 is an explanatory diagram showing an example of the contents stored in the restart information management table 700. [Figure 8] Figure 8 is an explanatory diagram showing an example of the contents stored in the execution history management table 800. [Figure 9] Figure 9 is an explanatory diagram illustrating an example of restarting job flow 500. [Figure 10] Figure 10 is a flowchart showing an example of a restart procedure. [Modes for carrying out the invention]

[0010] Embodiments of the information processing program, information processing method, and information processing apparatus according to the present invention will be described in detail below with reference to the drawings.

[0011] (An embodiment of the information processing method according to the embodiment) Figure 1 is an explanatory diagram showing one embodiment of the information processing method according to the embodiment. The information processing device 100 is a computer that starts a job flow. The information processing device 100 is, for example, a server or a PC (Personal Computer).

[0012] A job flow defines, for example, the execution order of a job group. A job flow indicates, for example, the data dependency relationships of a job group. Any job in the job group may be a job that uses the data output by each of the plurality of jobs. It is possible that the data output by any job in the job group is used by a plurality of jobs.

[0013] A job flow can be represented by a directed graph including, for example, nodes representing each job in a job group and directed edges connecting nodes representing each job of two different jobs in the job group. Specifically, a directed edge connects a node representing any job in the job group and a node representing another job that executes next after the any job and uses the data output by the any job.

[0014] Other jobs represented by nodes that can be reached by tracing a directed edge backward from a node representing a certain job are treated as jobs with an execution order ahead of the certain job. Other jobs represented by nodes that can be reached by tracing a directed edge in sequence from a node representing a certain job are treated as jobs with an execution order behind the certain job. Other jobs represented by nodes that cannot be reached by tracing a directed edge either in sequence or backward from a node representing a certain job are treated as jobs parallel to the certain job. A certain job and other jobs parallel to the certain job can be executed in parallel.

[0015] Starting means to initiate the execution of a job group whose execution order is defined in a job flow. Completing all jobs in the job group corresponds to completing the job flow. After starting to execute the job group according to the job flow, it is conceivable that an abnormality occurs in any job in the job group and the any job ends.

[0016] The anomalies may include, for example, errors due to timeouts, errors resulting from the environment in which the job is executed, errors resulting from the processing content of the job, or errors resulting from the processing content of other jobs with a higher execution order. If an anomaly occurs in any of the jobs in the job group and any of these jobs ends, the job flow will also end once.

[0017] Therefore, it is desirable to restart the job flow. At this time, the job group includes jobs waiting to be executed and jobs that have been executed. The executed jobs may be jobs that have been executed but are preferably re-executed in order to resolve the anomalies in any of the jobs. The executed jobs may be jobs that do not need to be re-executed. The executed jobs may be jobs that preferably should not be re-executed because an error may occur upon re-execution.

[0018] For example, depending on the type of anomaly that occurred in any of the jobs, which jobs are preferably re-executed may change. For example, when restarting the job flow, if the jobs that are preferably re-executed are not re-executed, it may be impossible to resolve the anomalies in any of the jobs. For example, when restarting the job flow, if jobs that do not need to be re-executed are re-executed, it may lead to an increase in the processing burden and processing time required to complete the job flow. Therefore, it is desirable to be able to flexibly change the job that serves as the starting point for restarting the job flow.

[0019] However, it is difficult to appropriately set the job that serves as the starting point for restarting the job flow. For example, in the case where an anomaly occurs in any of the jobs, there is a problem that the job that serves as the starting point for restarting the job flow cannot be switched according to the type of the anomaly.

[0020] In contrast, if an error occurs in a job, one possible approach is to restart the job flow from a pre-configured starting job, such as the job in question itself, another job executed immediately before it, or another job at the beginning of the job flow. Specifically, this approach utilizes job flow branching technology to control the job flow so that, when an error occurs in a job, it branches off from that job to a single other job that is earlier in the execution order, depending on the error code related to the error.

[0021] Even with the above method, it can be difficult to properly configure the job that will serve as the starting point for restarting the job flow. For example, with the above method, if an error occurs in any of the jobs, only one job can be configured as the starting point for restarting the job flow, and it is not possible to configure multiple jobs.

[0022] Furthermore, for example, if an error occurs in any job, it may be preferable for the job flow operator to address the error before restarting the job flow. On the other hand, with the above method, if an error occurs in any job, the other branching jobs will automatically start execution, so the job flow operator may not have any opportunity to address the error.

[0023] Therefore, this embodiment describes an information processing method that makes it easier to appropriately configure the job that serves as the starting point for restarting the job flow.

[0024] In Figure 1, the information processing device 100 stores a job flow 121. The job flow 121 defines, for example, the execution order of a group of jobs. In the example in Figure 1, the group of jobs specifically includes jobs 1 to 10. The job flow 121 shows, for example, the data dependencies of the group of jobs.

[0025] Job flow 121 is represented by a directed graph containing nodes 101 to 110, each representing a job from 1 to 10. Node 10i, representing job i, and node 10j, representing job j which will be executed after job i and utilizes the data output by job i, are connected by a directed edge. Thus, the directed edge indicates a data dependency.

[0026] The information processing device 100 executes a group of jobs according to the job flow 121. For example, the information processing device 100 executes job 1, job 2, job 3, and job 4 in order. For example, the information processing device 100 executes job 5 and job 6 in parallel. For example, after completing job 5 and job 6, the information processing device 100 executes job 7 and job 8 in order. For example, the information processing device 100 may execute jobs 1-4 and jobs 5-8 in parallel. For example, after completing job 4 and job 8, the information processing device 100 executes job 9 and job 10 in order.

[0027] The information processing device 100 has a storage unit 122. The storage unit 122 stores one or more combinations of a condition for restarting the job flow 121 and information indicating one or more jobs in the job group that will be the starting point for restarting the job flow 121, associated with at least one job in the job group. The condition is, for example, that some kind of abnormality has occurred in any of the jobs. The condition may also be, for example, that a specific type of abnormality has occurred in any of the jobs.

[0028] In the example shown in Figure 1, the information processing device 100 specifically stores in the storage unit 122 the conditions for restarting the job flow 121, associated with job 8, and information indicating jobs 5 and 6 from the job group that will be the starting point for restarting the job flow 121. The conditions are, for example, that some kind of abnormality has occurred in job 8. Alternatively, the conditions may be, for example, that a specific type of abnormality has occurred in job 8.

[0029] (1-1) The information processing device 100 detects an abnormality in the first job of the job group. The information processing device 100 may also identify the type of abnormality in the first job that occurred. Here, if the first job fails to execute due to an abnormality in the first job of the job group, the information processing device 100 will terminate without completing the job flow 121.

[0030] Therefore, if the information processing device 100 fails to execute the first job in the job group due to an abnormality in the first job, other jobs in the job group that are currently running may also fail to execute. Thus, an abnormality in the first job can cause abnormalities in other jobs. An abnormality in another job might be, for example, a forced execution failure caused by the abnormality in the first job.

[0031] In the example shown in Figure 1, the information processing device 100 specifically detects an anomaly in job 8 of the job group. The information processing device 100 may also specifically identify the type of anomaly that occurred in job 8. Here, the information processing device 100 assumes that when the anomaly occurred in job 8 of the job group, there were no other jobs running in the job group, and no anomalies occurred in the other jobs.

[0032] (1-2) The information processing device 100 refers to the storage unit 122 to identify the conditions for restarting the job flow 121 associated with the first job, and determines whether the detected abnormality in the first job satisfies the identified conditions. For example, if the conditions associated with the first job indicate that some kind of abnormality has occurred in the first job, the information processing device 100 determines that the detected abnormality in the first job satisfies the conditions associated with the first job.

[0033] For example, if the conditions associated with the first job indicate that a specific type of anomaly has occurred in the first job, the information processing device 100 determines that the conditions associated with the first job are satisfied if the identified type of anomaly in the first job is of that specific type. For example, if the conditions associated with the first job indicate that a specific type of anomaly has occurred in the first job, the information processing device 100 determines that the conditions associated with the first job are not satisfied if the identified type of anomaly in the first job is not of that specific type.

[0034] In the example shown in Figure 1, the information processing device 100 specifically determines that the detected abnormality in job 8 satisfies the conditions for restarting the job flow 121 associated with job 8. Based on this, the information processing device 100 can determine that it is preferable to use the information stored in the storage unit 122, associated with the first job, which indicates the job that will serve as the starting point for restarting the job flow 121.

[0035] (1-3) If the information processing device 100 determines that the conditions are met, it refers to the storage unit 122 and obtains information indicating one or more second jobs that will serve as the starting point for restarting the job flow 121 associated with the first job. Based on the information indicating one or more second jobs that will serve as the starting point for restarting the job flow 121, the information processing device 100 restarts the job flow 121, starting with each of the second jobs.

[0036] In the example shown in Figure 1, the information processing device 100, having determined that the conditions are met, refers to the storage unit 122 and obtains information indicating jobs 5 and 6, which are associated with job 8 and will be used as the starting point for restarting job flow 121. Specifically, the information processing device 100 restarts job flow 121, starting with jobs 5 and 6, based on the obtained information.

[0037] Specifically, when the information processing device 100 restarts the job flow 121, it starts with jobs 5 and 6 and then sequentially executes other jobs that are further down the execution order than jobs 5 and 6. Specifically, when the information processing device 100 restarts the job flow 121, it is preferable that it sequentially executes any other jobs that are running in parallel with the starting jobs 5 and 6 and have not yet been executed. Here, specifically, it is assumed that before restarting the job flow 121, the information processing device 100 has completed jobs 1 to 4 and is waiting to execute jobs 9 and 10.

[0038] More specifically, when the information processing device 100 restarts the job flow 121, it executes jobs 5 and 6 in parallel. More specifically, after completing jobs 5 and 6, the information processing device 100 executes jobs 7 and 8 in order. More specifically, after completing job 8, since job 4 has also been completed, the information processing device 100 executes jobs 9 and 10 in order.

[0039] This allows the information processing device 100 to appropriately control the job that will serve as the starting point for restarting the job flow 121. For example, if an abnormality occurs in any of the jobs, the information processing device 100 can switch the job that will serve as the starting point for restarting the job flow 121 depending on the type of abnormality. For example, if an abnormality occurs in any of the jobs, the information processing device 100 can set multiple jobs as the starting point for restarting the job flow 121. As a result, the information processing device 100 can efficiently restart the job flow 121 and reduce the processing burden and processing time required to complete all jobs in the job group.

[0040] This section describes a case where the information processing device 100 restarts the job flow 121 without waiting for an operation input from a user of the device if it determines that a condition is met, but it is not limited to this case. The user of the device is, for example, the operator or administrator of the job flow 121. For example, if the information processing device 100 determines that a condition is met, it may wait for a specific operation input from a user of the device before restarting the job flow 121. The specific operation input is, for example, an operation input indicating permission to restart the job flow 121. This makes it easier for the operator or administrator of the job flow 121 to deal with any abnormalities that have occurred in any job before the information processing device 100 restarts the job flow 121.

[0041] This section describes the case where the information processing device 100 operates independently, but it is not limited to this. For example, the information processing device 100 may collaborate with other computers. Specifically, the information processing device 100 may not execute a group of jobs on its own, but rather control other computers that execute the group of jobs. For example, multiple computers may collaborate to realize the functions of the information processing device 100. Specifically, the functions of the information processing device 100 may be realized on the cloud. An example of the information processing device 100 collaborating with other computers will be described later using Figure 2.

[0042] (An example of information processing system 200) Next, using Figure 2, we will describe an example of an information processing system 200 to which the information processing device 100 shown in Figure 1 is applied.

[0043] Figure 2 is an explanatory diagram showing an example of an information processing system 200. In Figure 2, the information processing system 200 includes an information processing device 100, one or more job execution devices 201, and a client device 202.

[0044] In the information processing system 200, the information processing device 100 and the job execution device 201 are connected via a wired or wireless network 210. The network 210 can be, for example, a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet. Also in the information processing system 200, the information processing device 100 and the client device 202 are connected via a wired or wireless network 210.

[0045] The information processing device 100 is a computer that starts a job flow. The information processing device 100 stores the job flow. The information processing device 100 receives a start trigger to begin executing the group of jobs. For example, the information processing device 100 receives a request from the client device 202 to execute the group of jobs, as a start trigger to begin executing the group of jobs.

[0046] The information processing device 100 controls one or more job execution devices 201. For example, the information processing device 100 distributes a group of jobs to one or more job execution devices 201. For example, the information processing device 100 controls one or more job execution devices 201 to execute the jobs distributed to each job execution device 201 according to the job flow.

[0047] Specifically, the information processing device 100, upon receiving a start trigger, controls one or more job execution devices 201 to execute the jobs assigned to each job execution device 201, thereby starting a job flow.

[0048] The information processing device 100 has a storage unit that stores one or more combinations of conditions for restarting a job flow and information indicating one or more jobs in the job group that will be the starting point for restarting the job flow, associated with at least one job in the job group.

[0049] The information processing device 100 detects an anomaly in the first job executed by one of the job execution devices 201 in the job group. The information processing device 100 detects the anomaly in the first job, for example, by receiving a notification from one of the job execution devices 201 indicating the anomaly in the first job. The notification may include, for example, information indicating the type of anomaly in the first job. The information processing device 100 identifies, for example, the type of anomaly in the first job that occurred based on the notification.

[0050] For example, when the information processing device 100 detects an abnormality in the first job, it controls one or more job execution devices 201 to terminate abnormally without completing the job flow. The information processing device 100 refers to the storage unit to determine whether the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job. If the information processing device 100 determines that the conditions are met, it refers to the storage unit to identify one or more second jobs based on information indicating one or more second jobs that will serve as the starting point for restarting the job flow associated with the first job.

[0051] The information processing device 100 restarts the job flow starting from each of the one or more identified second jobs. The information processing device 100 controls one or more job execution devices 201 to execute all or part of the job group, starting from each of the one or more identified second jobs.

[0052] When the information processing device 100 completes all jobs in the job group and finishes the job flow, it sends a notification to the client device 202 indicating that all jobs in the job group have been completed and the job flow has been finished. The information processing device 100 is, for example, a server or a PC.

[0053] The job execution device 201 is a computer that executes one of the jobs in the job group. The job execution device 201 executes the job assigned to it according to the control of the information processing device 100. If the job to be executed after the job assigned to the job execution device 201 is assigned to another job execution device 201, the job execution device 201 transmits the data output by the job assigned to it to the other job execution device 201 to which the next job to be executed is assigned.

[0054] If an abnormality occurs in a job assigned to the job execution device 201, it generates a notification indicating the abnormality of the assigned job and sends it to the information processing device 100. The job execution device 201 may, for example, identify the type of abnormality in the assigned job, generate a notification indicating the abnormality of the assigned job that includes information indicating the type of abnormality of the identified job, and send it to the information processing device 100. The job execution device 201 is, for example, a server or a PC.

[0055] The client device 202 is a computer used by users of the information processing system 200. Users of the information processing system 200 are, for example, job flow operators or job flow administrators. The client device 202 generates a request to execute a group of jobs based on the operation input of the user of the information processing system 200, and sends it to the information processing device 100.

[0056] The client device 202 receives, for example, a notification from the information processing device 100 indicating that it has completed all jobs in the job group and completed the job flow. The client device 202 then outputs, for example, a notification indicating that it has completed all jobs in the job group and completed the job flow, so that it can be viewed by users of the information processing system 200. The information processing device 100 is, for example, a PC, a tablet terminal, or a smartphone.

[0057] This explanation describes a case where the information processing device 100 and the job execution device 201 are different devices, but this is not the only case. For example, the information processing device 100 may have the functionality of a job execution device 201 and may operate as a job execution device 201.

[0058] This explanation describes a case where the information processing device 100 and the client device 202 are different devices, but it is not limited to this case. For example, the information processing device 100 may have the functionality of a client device 202 and may operate as a client device 202.

[0059] (Example of hardware configuration of information processing device 100) Next, an example of the hardware configuration of the information processing device 100 will be described using Figure 3.

[0060] Figure 3 is a block diagram showing an example of the hardware configuration of the information processing device 100. In Figure 3, the information processing device 100 includes a CPU (Central Processing Unit) 301, memory 302, network interface 303, recording medium interface 304, and recording medium 305. Each component is connected by a bus 300.

[0061] Here, the CPU 301 is responsible for the overall control of the information processing device 100. The memory 302 includes, for example, ROM (Read Only Memory), RAM (Random Access Memory), and flash ROM. Specifically, for example, flash ROM and ROM store various programs, and RAM is used as the work area for the CPU 301. Programs stored in memory 302 are loaded into the CPU 301, causing the CPU 301 to execute the coded processes.

[0062] The network interface 303 is connected to network 210 via a communication line, and then connects to other computers via network 210. The network interface 303 manages the internal interface with network 210 and controls the input and output of data from other computers. The network interface 303 is, for example, a modem or a LAN adapter.

[0063] The recording medium interface (I / F) 304 controls the reading and writing of data to the recording medium 305 according to the control of the CPU 301. The recording medium interface (I / F) 304 is, for example, a disk drive, an SSD (Solid State Drive), or a USB (Universal Serial Bus) port. The recording medium 305 is a non-volatile memory that stores the data written under the control of the recording medium interface (I / F) 304. The recording medium 305 is, for example, a disk, semiconductor memory, or USB memory. The recording medium 305 may be detachable from the information processing device 100.

[0064] In addition to the components described above, the information processing device 100 may also have, for example, a keyboard, mouse, display, printer, scanner, microphone, speaker, etc. Furthermore, the information processing device 100 may have multiple recording medium interfaces 304 and recording mediums 305. Alternatively, the information processing device 100 may not have recording medium interfaces 304 and recording mediums 305.

[0065] (Example hardware configuration of job execution device 201) The hardware configuration example of the job execution device 201 is specifically the same as the hardware configuration example of the information processing device 100 shown in Figure 3, so a detailed explanation is omitted.

[0066] (Example hardware configuration for client device 202) The hardware configuration example for client device 202 is specifically the same as the hardware configuration example for information processing device 100 shown in Figure 3, so a detailed explanation is omitted.

[0067] The following explanation primarily describes the case where the information processing device 100 operates independently and executes a group of jobs.

[0068] (Example of the functional configuration of the information processing device 100) Next, an example of the functional configuration of the information processing device 100 will be described using Figure 4.

[0069] Figure 4 is a block diagram showing an example of the functional configuration of the information processing device 100. The information processing device 100 includes a storage unit 400, an acquisition unit 401, an execution unit 402, a detection unit 403, a determination unit 404, a startup unit 405, and an output unit 406.

[0070] The storage unit 400 is implemented by a storage area such as the memory 302 or recording medium 305 shown in Figure 3. The following description will focus on the case where the storage unit 400 is included in the information processing device 100, but is not limited to this case. For example, the storage unit 400 may be included in a device different from the information processing device 100, and the contents of the storage unit 400 may be accessible from the information processing device 100.

[0071] The acquisition unit 401 to the output unit 406 function as an example of a control unit. Specifically, the acquisition unit 401 to the output unit 406 realize their functions, for example, by having the CPU 301 execute a program stored in a storage area such as the memory 302 or recording medium 305 shown in Figure 3, or by using the network I / F 303. The processing results of each functional unit are stored in a storage area such as the memory 302 or recording medium 305 shown in Figure 3.

[0072] The storage unit 400 stores various information that is referenced or updated during the processing of each functional unit. For example, the storage unit 400 stores a job flow. A job flow defines, for example, the execution order of a group of jobs. A job flow indicates, for example, the data dependencies of a group of jobs. Any job in a group of jobs may be a job that utilizes data output by each of the other jobs in the group. Multiple jobs may utilize data output by any job in a group of jobs.

[0073] A job flow can be represented, for example, by a directed graph that includes nodes representing each job in a group of jobs and directed edges connecting the nodes representing two different jobs within the group. Specifically, a directed edge connects a node representing any job in the group to a node representing another job that is one execution step later than that job and utilizes the data output by that job. The storage unit 400 specifically stores the job flow using a job flow management table 600. An example of the job flow management table 600 will be described later with reference to Figure 6.

[0074] The storage unit 400 stores, for example, one or more combinations of a condition for restarting a job flow, associated with at least one job in the job group, and information indicating one or more jobs in the job group that will be the starting point for restarting the job flow. The condition may be, for example, that some kind of abnormality has occurred in any of the jobs. The condition may also be, for example, that a specific type of abnormality has occurred in any of the jobs. Specifically, the storage unit 400 uses the restart information management table 700 to store, for example, one or more combinations of a condition for restarting a job flow, associated with any of the jobs, and information indicating one or more jobs in the job group that will be the starting point for restarting the job flow. An example of the restart information management table 700 will be described in detail later with reference to Figure 7.

[0075] The storage unit 400 stores information representing the completion status of each job in the job group at the time the job flow terminates abnormally. Abnormal termination of a job flow means that the job flow has ended without completing. The completion status indicates whether the job is waiting to be executed, has completed normally, or has terminated abnormally. Abnormal termination of a job means that the job has ended without completing. Specifically, the storage unit 400 stores an execution history management table 800 that manages the completion status of each job in the job group. An example of the execution history management table 800 will be described later with reference to Figure 8.

[0076] For example, if a job flow terminates abnormally, the storage unit 400 may store information indicating the type of abnormality in any of the jobs that have terminated abnormally. Examples of abnormalities include timeout errors, errors caused by the environment in which the job is executed, errors caused by the processing content of the job, or errors caused by the processing content of other jobs that are ahead in the execution order. Specifically, the storage unit 400 stores information indicating the type of job abnormality in the execution history management table 800. An example of the execution history management table 800 will be described later with reference to Figure 8.

[0077] The acquisition unit 401 acquires various types of information used in the processing of each functional unit. The acquisition unit 401 stores the acquired information in the storage unit 400 or outputs it to each functional unit. The acquisition unit 401 may also output the information stored in the storage unit 400 to each functional unit. The acquisition unit 401 acquires various types of information, for example, based on operation input by a user of the device. A user of the device is, for example, a job flow operator or a job flow administrator. The acquisition unit 401 may also receive various types of information from a device other than the information processing device 100.

[0078] The acquisition unit 401 acquires, for example, a request to execute a group of jobs. Specifically, the acquisition unit 401 acquires the request by receiving input of a request to execute a group of jobs based on operation input from a user of its own device. Specifically, the acquisition unit 401 may acquire the request to execute a group of jobs by receiving it from another computer.

[0079] The acquisition unit 401 acquires information for detecting, for example, that a job flow has terminated abnormally. The acquisition unit 401 acquires, for example, a notification indicating that a job flow has terminated abnormally. The notification is issued, for example, by the information processing device 100 when a job flow terminates abnormally. The notification may also be issued, for example, by the execution unit 402.

[0080] The acquisition unit 401 acquires information to detect an anomaly in the first job of a job group, for example. Specifically, the acquisition unit 401 acquires information representing the completion status of each job in the job group at the time the job flow terminates abnormally. The completion status indicates whether the job is waiting to be executed, whether the job has completed normally, or whether the job has terminated abnormally. More specifically, the acquisition unit 401 acquires the execution history management table 800.

[0081] The acquisition unit 401 may receive a start trigger to initiate processing in any of the functional units. A start trigger may be, for example, a predetermined operation input by a user of the device. A start trigger may also be, for example, the receipt of predetermined information from another computer. A start trigger may also be, for example, the output of predetermined information by any of the functional units.

[0082] The acquisition unit 401 may, for example, receive a request to execute a group of jobs as a start trigger to begin processing in the execution unit 402. The acquisition unit 401 may, for example, receive information to detect that a job flow has terminated abnormally as a start trigger to begin processing in the detection unit 403. The acquisition unit 401 may, for example, receive information to detect an abnormality in the first job of a group of jobs as a start trigger to begin processing in the detection unit 403.

[0083] The execution unit 402 executes the job group sequentially according to the job flow. For example, if the execution unit 402 receives a request from the acquisition unit 401 to execute the job group, it executes the job group sequentially according to the job flow. In this way, the execution unit 402 can execute the job group and complete the job flow.

[0084] For example, if the job flow is restarted by the startup unit 405, the execution unit 402 executes all or part of the job group sequentially, starting from each of the two second jobs that serve as the starting point for restarting the job flow, according to the job flow. Specifically, the execution unit 402 executes other jobs that are executed later in the execution order than each of the starting second jobs.

[0085] In this process, the execution unit 402 specifically prevents the execution of other jobs that have already been executed, which are running in parallel with each of the starting second jobs. Specifically, the execution unit 402 executes other jobs that have not yet been executed, which are running in parallel with each of the starting second jobs, according to the job flow. As a result, the execution unit 402 can appropriately re-execute all or part of the job group and restart the job flow to complete it.

[0086] If any job terminates abnormally due to an error in any of the jobs, the execution unit 402 will terminate abnormally without completing the job flow. If there are any jobs running when the execution unit 402 terminates abnormally without completing the job flow, it will terminate those jobs abnormally as well. When the execution unit 402 terminates abnormally without completing the job flow, it will reflect the termination status of each job in the execution history management table 800. If any job terminates abnormally due to an error in any of the jobs, the execution unit 402 may also reflect information indicating the type of error in that job in the execution history management table 800.

[0087] As a result, if the execution unit 402 terminates abnormally without completing the job flow, it can retain the termination status of each job, which is useful when restarting the job flow, making it easier to determine how to restart the job flow. If an abnormality occurs in any of the jobs, the execution unit 402 can retain information indicating the type of abnormality in that job, making it easier to determine how to restart the job flow.

[0088] The detection unit 403 detects an anomaly in the first job of the job group. For example, the detection unit 403 detects an anomaly in the first job of the job group based on information for detecting an anomaly in the first job of the job group acquired by the acquisition unit 401. Specifically, the detection unit 403 determines that an anomaly has occurred in the first job if the first job has terminated abnormally, based on information representing the completion status of each job in the job group acquired by the acquisition unit 401, and detects the anomaly in the first job. This allows the detection unit 403 to obtain guidance for restarting the job flow.

[0089] When the detection unit 403 detects an abnormality in the first job, the determination unit 404 refers to the storage unit 400 to determine whether there is one or more conditions for restarting the job flow associated with the first job.

[0090] If the determination unit 404 determines that one or more conditions exist, it refers to the storage unit 400 to determine whether the abnormality in the first job detected by the detection unit 403 satisfies any of the conditions for restarting the job flow associated with the first job. For example, the determination unit 404 refers to the storage unit 400 to identify one or more conditions associated with the first job that restart the job flow. For example, if the first condition among the one or more identified conditions indicates that some kind of abnormality has occurred in the first job, the determination unit 404 determines that the abnormality in the first job detected by the detection unit 403 satisfies the first condition.

[0091] The determination unit 404, for example, if the first condition among the one or more identified conditions indicates that a specific type of abnormality has occurred in the first job, refers to the storage unit 400 to identify the type of abnormality in the first job. The determination unit 404 determines, for example, that the first condition is met if the identified type matches the specific type indicated by the first condition. The determination unit 404 determines, for example, that the first condition is not met if the identified type does not match the specific type indicated by the first condition.

[0092] This allows the determination unit 404 to decide whether or not to restart the job flow. Based on whether or not one or more conditions for restarting the job flow associated with the first job are met, the determination unit 404 can flexibly change the second job that will be used as the starting point for restarting the job flow.

[0093] The startup unit 405 restarts the job flow if the determination unit 404 determines that any of the conditions are met. The startup unit 405, for example, refers to the storage unit 400 and obtains information indicating one or more second jobs that are associated with the first job and combined with any of the conditions that the determination unit 404 determined to be met, to serve as the starting point for restarting the job flow. The startup unit 405, for example, restarts the job flow starting from each of the one or more second jobs based on the obtained information.

[0094] Specifically, the startup unit 405 controls the execution unit 402 to execute, in accordance with the job flow, each of the one or more second jobs starting from the second job, other jobs that are executed later in the execution order than the said second job, and other unexecuted jobs that run in parallel with the said second job. More specifically, the startup unit 405 sets the execution unit 402 to start from each of the one or more second jobs.

[0095] As a result, the startup unit 405 can properly set the job that will serve as the starting point for restarting the job flow, properly complete the group of jobs, and properly complete the job flow. Furthermore, the startup unit 405 can make it easier for the execution unit 402 to complete the job flow. For example, the startup unit 405 can avoid having the execution unit 402 execute all of the job group, thereby reducing the processing load and processing time.

[0096] If the determination unit 404 determines that there are no conditions for restarting the job flow associated with the first job, the startup unit 405 restarts the job flow starting from one of the pre-configured jobs. The pre-configured jobs are the first job, the job immediately preceding the first job, and the job at the beginning of the job flow.

[0097] Specifically, the startup unit 405 controls the execution unit 402 to execute, starting with one of the pre-configured jobs according to the job flow, other jobs that are executed later in the execution order than that job, and other unexecuted jobs that run in parallel with that job.

[0098] As a result, the startup unit 405 can restart the job flow, complete the group of jobs, and complete the job flow even if no job is set as the starting point for restarting the job flow. Furthermore, the startup unit 405 can make it easier for the execution unit 402 to complete the job flow. For example, the startup unit 405 can avoid having the execution unit 402 execute all of the job group, thereby reducing the processing load and processing time.

[0099] If the determination unit 404 determines that none of the conditions are met, the startup unit 405 restarts the job flow starting from one of the pre-configured jobs. The pre-configured jobs are the first job, the job immediately preceding the first job, or the job at the beginning of the job flow.

[0100] Specifically, the startup unit 405 controls the execution unit 402 to execute, starting with one of the pre-configured jobs according to the job flow, other jobs that are executed later in the execution order than that job, and other unexecuted jobs that run in parallel with that job.

[0101] As a result, the startup unit 405 can restart the job flow, complete the group of jobs, and complete the job flow even if no job is set as the starting point for restarting the job flow. Furthermore, the startup unit 405 can make it easier for the execution unit 402 to complete the job flow. For example, the startup unit 405 can avoid having the execution unit 402 execute all of the job group, thereby reducing the processing load and processing time.

[0102] The output unit 406 outputs the processing result of at least one of the functional units. The output format can be, for example, display on a screen, print to a printer, transmit to an external device via the network interface 303, or store in a storage area such as the memory 302 or recording medium 305. This allows the output unit 406 to notify the user of the device of the processing result of at least one of the functional units, thereby improving the usability of the information processing device 100.

[0103] The output unit 406 outputs, for example, a notification indicating that the job flow has been completed, which can be viewed by the user of the device. This allows the user of the device to be aware that the job flow has been completed.

[0104] (Example of operation of the information processing device 100) Next, we will explain an example of the operation of the information processing device 100 using Figures 5 to 9. First, we will explain an example of how the information processing device 100 stores the job flow 500 using the job flow management table 600, using Figures 5 and 6.

[0105] Figure 5 is an explanatory diagram showing an example of job flow 500. As shown in Figure 5, job flow 500 defines the execution order of a group of jobs. In the example in Figure 5, the group of jobs specifically includes jobs 1 to 10. Job flow 500 shows the data dependencies of the job group.

[0106] Specifically, the job flow 500 is represented by a directed graph containing nodes 501 to 510, each representing a job from 1 to 10. Node 50i, representing job i, and node 50j, representing job j which will be executed after job i and utilizes the data output by job i, are connected by a directed edge. Therefore, the directed edge indicates a data dependency. Next, we will move on to the explanation of Figure 6.

[0107] Figure 6 is an explanatory diagram showing an example of how a job flow 500 is stored. In Figure 6, the information processing device 100 stores the job flow 500 using a job flow management table 600. The job flow management table 600 is implemented, for example, by a storage area such as the memory 302 or recording medium 305 of the information processing device 100 shown in Figure 3.

[0108] As shown in Figure 6, the job flow management table 600 has fields for job flow name, job ID, job name, preceding job ID, and succeeding job ID. By setting information in each field for each job, the job flow management table 600 stores job-related information as record 600-a, where a is an arbitrary integer.

[0109] The Job Flow Name field is set to the job flow name assigned to the job flow that defines the execution order of the job group. For example, the Job Flow Name field is set to "Job Flow A" as the job flow name assigned to job flow 500.

[0110] The Job ID field is set to the Job ID that identifies one of the jobs in the above job group. For example, the Job ID that identifies job i in the job group whose execution order is defined in Job Flow 500 is i. The Job Name field is set to the Job Name assigned to one of the jobs identified by the above Job ID. For example, the Job Name assigned to job i is job i.

[0111] The Preceding Job ID field is set to the Preceding Job ID, which identifies another job that will be executed one step before any of the jobs identified by the above Job ID. The Successor Job ID field is set to the Successor Job ID, which identifies another job that will be executed one step after any of the jobs identified by the above Job ID.

[0112] Next, using Figure 7, an example of the contents of the restart information management table 700, which corresponds to the job flow 500 and is stored in the information processing device 100, will be explained. The restart information management table 700 is implemented, for example, by a storage area such as the memory 302 or recording medium 305 of the information processing device 100 shown in Figure 3.

[0113] Figure 7 is an explanatory diagram showing an example of the contents stored in the restart information management table 700. As shown in Figure 7, the restart information management table 700 has fields for job flow name, job ID, job name, restart condition, and restart point. The restart information management table 700 stores restart information as record 700-b by setting information in each field for each job. b is an arbitrary integer. Also, for example, there may be multiple restart entries for a single job.

[0114] The Job Flow Name field is set to the job flow name assigned to the job flow that defines the execution order of the job group. For example, the Job Flow Name field is set to "Job Flow A" as the job flow name assigned to job flow 500.

[0115] The Job ID field is set to the Job ID that identifies one of the jobs in the above job group. For example, the Job ID that identifies job i in the job group whose execution order is defined in Job Flow 500 is i. The Job Name field is set to the Job Name assigned to one of the jobs identified by the above Job ID. For example, the Job Name assigned to job i is job i.

[0116] The restart condition field contains the conditions for restarting the job flow when any of the jobs identified by the above job ID terminate abnormally, by referring to the restart information. If there are no conditions for restarting the job flow, the restart condition field is set to "n / a".

[0117] The restart condition field is set to an exit code that represents the type of anomaly that occurs in one of the jobs identified by the job ID, as a condition for restarting the job flow. The set exit code indicates that if the type of anomaly that occurs in one of the jobs identified by the job ID matches the specific type represented by that exit code, the job flow will be restarted by referring to the restart information.

[0118] The restart point field is set to indicate one or more jobs that will serve as the starting point for restarting the above job flow. If "n / a" is set in the restart condition field and there are no one or more jobs that will serve as the starting point for restarting the above job flow, then "n / a" will also be set in the restart point field. The restart point field is set to indicate one or more jobs that will serve as the starting point for restarting the above job flow, and the job names assigned to each of those one or more jobs will be set in the restart point field.

[0119] Here, assume that the information processing device 100 started executing each job in the job group in order according to the job flow 500. Assume that an error occurred in one of the jobs in the job group, causing the executing job to terminate abnormally and the job flow 500 to terminate abnormally. The information processing device 100 stores in the execution history management table 800 execution history information that represents the completion status of each job in the job group and the completion code of each job in the job group at the time the job flow 500 terminated abnormally.

[0120] Next, using Figure 8, an example of the contents of the execution history management table 800, in which the information processing device 100 stores execution history information representing the completion status of each job in the job group, will be described. The execution history management table 800 is implemented, for example, by a storage area such as the memory 302 or recording medium 305 of the information processing device 100 shown in Figure 3.

[0121] Figure 8 is an explanatory diagram showing an example of the contents stored in the execution history management table 800. As shown in Figure 8, the execution history management table 800 has fields for job flow name, job ID, job name, job status, and job exit code. The execution history information is stored as record 800-c in the execution history management table 800 by setting information in each field for each job. c is an arbitrary integer.

[0122] The Job Flow Name field is set to the job flow name assigned to the job flow that defines the execution order of the job group. For example, the Job Flow Name field is set to "Job Flow A" as the job flow name assigned to job flow 500.

[0123] The Job ID field is set to the Job ID that identifies one of the jobs in the above job group. For example, the Job ID that identifies job i in the job group whose execution order is defined in Job Flow 500 is i. The Job Name field is set to the Job Name assigned to one of the jobs identified by the above Job ID. For example, the Job Name assigned to job i is job i.

[0124] The job status field is set to a status that indicates the completion status of one of the jobs identified by the above job ID. The status indicates whether one of the jobs identified by the above job ID terminated abnormally, one of the jobs identified by the above job ID terminated normally, or one of the jobs identified by the above job ID is waiting to run.

[0125] The job exit code field is set to the exit code of one of the jobs identified by the above job ID. For example, if the value of the exit code is 0, it indicates that no abnormalities occurred in one of the jobs identified by the above job ID and that one of the jobs identified by the above job ID completed successfully.

[0126] The exit code, for example, if the value is 1 or greater, indicates that an error occurred in one of the jobs identified by the above job ID, and that one of the jobs identified by the above job ID terminated abnormally. The exit code, for example, is "n / a" if one of the jobs identified by the above job ID is waiting to be executed.

[0127] Next, using Figure 9, we will explain an example of how the information processing device 100 restarts the job flow 500 by referring to the restart information management table 700 and the execution history management table 800.

[0128] Figure 9 is an explanatory diagram illustrating an example of restarting job flow 500. In Figure 9, the information processing device 100, upon abnormal termination of job flow 500, refers to the execution history management table 800 to identify one or more jobs from the group that terminated abnormally. In the example in Figure 9, the information processing device 100 specifically refers to the "Job Status" field in each record 800-i of the execution history management table 800 to identify the abnormally terminated jobs 4 and 8.

[0129] The information processing device 100 refers to the execution history management table 800 to identify the exit code of the job that terminated abnormally. In the example in Figure 9, the information processing device 100 specifically refers to the "Job Exit Code" field in record 800-4, which corresponds to the abnormally terminated job 4, in the execution history management table 800, to identify the exit code "1" corresponding to job 4. Similarly, the information processing device 100 specifically refers to the "Job Exit Code" field in record 800-8, which corresponds to the abnormally terminated job 8, in the execution history management table 800, to identify the exit code "2" corresponding to job 8.

[0130] Before restarting the job flow 500, the information processing device 100 may output information indicating one or more jobs that terminated abnormally, and the exit code of each abnormally terminated job, so that the operator of the job flow 500 can refer to it. The information processing device 100 restarts the job flow 500 after receiving specific operation input from the operator of the job flow 500.

[0131] Here, assume that the information processing device 100 has received a specific operation input from the operator of the job flow 500. Because the information processing device 100 has received a specific operation input from the operator of the job flow 500, it restarts the job flow 500 as shown in (9-1) to (9-5) below.

[0132] (9-1) The information processing device 100 refers to the "restart condition" field in the record 700-i corresponding to each of the one or more jobs that terminated abnormally in the restart information management table 700, and identifies one or more conditions corresponding to the job.

[0133] In the example shown in Figure 9, the information processing device 100 specifically reads records 700-4 and 700-5 from the restart information management table 700, which correspond to the abnormally terminated job 4. Specifically, the information processing device 100 refers to the "restart condition" field in the read records 700-4 and 700-5 to identify two conditions corresponding to the abnormally terminated job 4. More specifically, the information processing device 100 identifies the conditions "Code≦1" and "Code≧2" that correspond to the abnormally terminated job 4.

[0134] Similarly, the information processing device 100 specifically reads records 700-9 and 700-10 from the restart information management table 700, which correspond to the abnormally terminated job 8. Specifically, the information processing device 100 refers to the "restart condition" field in the read records 700-9 and 700-10 to identify two conditions corresponding to the abnormally terminated job 8. More specifically, the information processing device 100 identifies the conditions "Code≦1" and "Code≧2" that correspond to the abnormally terminated job 8.

[0135] (9-2) The information processing device 100 determines whether the exit code identified for each of the one or more abnormally terminated jobs satisfies at least one of the one or more conditions corresponding to the identified job. The information processing device 100 refers to the restart information management table 700 and identifies one or more jobs that will serve as the starting point for restarting the job flow 500, combined with the conditions that the abnormally terminated job was determined to satisfy. The information processing device 100 registers the combinations of each of the one or more abnormally terminated jobs and the one or more jobs that will serve as the starting point for restarting the job flow 500 identified for that job in a list.

[0136] In the example shown in Figure 9, the information processing device 100 specifically determines that the exit code "1" identified for the abnormally terminated job 4 satisfies the condition "Code ≤ 1" corresponding to the identified job 4. Specifically, the information processing device 100 identifies a job 1 that will serve as the starting point for restarting the job flow 500, which is combined with the condition "Code ≤ 1" that it determined to satisfy for the abnormally terminated job 4. Specifically, the information processing device 100 registers the combination of the abnormally terminated job 4 and the job 1 that will serve as the starting point for restarting the job flow 500 identified for the abnormally terminated job 4 in a list.

[0137] Specifically, the information processing device 100 determines that the exit code "2" identified for the abnormally terminated job 8 satisfies the condition "Code≧2" corresponding to the identified job 8. Specifically, the information processing device 100 identifies a job 7 that will serve as the starting point for restarting the job flow 500, which is combined with the condition "Code≧2" that it determined to satisfy for the abnormally terminated job 8. Specifically, the information processing device 100 registers the combination of the abnormally terminated job 8 and the job 7 that will serve as the starting point for restarting the job flow 500 identified for the abnormally terminated job 8 in a list.

[0138] (9-3) Here, it is possible that there is no condition corresponding to one or more of the jobs that terminated abnormally. In this case, the information processing device 100 identifies a predetermined job from among the jobs in question, the job executed immediately before any of those jobs, or the first job in the job flow 500, as the starting point for restarting the job flow 500. The information processing device 100 registers the combination of any of those jobs and the identified predetermined job in a list.

[0139] (9-4) Here, it is possible that among the one or more jobs that terminated abnormally, none of the one or more conditions corresponding to any of the jobs are met. In this case, the information processing device 100 identifies a predetermined job from among the jobs in question, the job executed immediately before any of the jobs in question, or the first job in the job flow 500, as the starting point for restarting the job flow 500. The information processing device 100 registers the combination of any of the jobs in question and the identified predetermined job in a list.

[0140] (9-5) The information processing device 100 restarts the job flow 500 starting from each job registered in the list, which will be used as the starting point for restarting the job flow 500, in order to prevent duplicate execution of the same job. In the example in Figure 9, the information processing device 100 specifically restarts the job flow 500 starting from jobs 1 and 7 registered in the list, which will be used as the starting points for restarting the job flow 500.

[0141] This allows the information processing device 100 to appropriately control the job that will serve as the starting point for restarting the job flow 500. For example, if an abnormality occurs in any of the jobs, the information processing device 100 can switch the job that will serve as the starting point for restarting the job flow 500, depending on the type of abnormality.

[0142] The information processing device 100 can, for example, set up multiple jobs as a starting point for restarting the job flow in the event of an abnormality in any of the jobs. Therefore, the information processing device 100 can efficiently restart the job flow 500, thereby reducing the processing burden and processing time required to complete all jobs in the job group.

[0143] The information processing device 100 can restart the job flow 500 after waiting for a specific operation input from a user of its device. Therefore, before the information processing device 100 restarts the job flow 500, it makes it easier for the operator or administrator of the job flow 500 to deal with any abnormalities that occur in any of the jobs.

[0144] This description explains the case in which the information processing device 100 restarts the job flow 500 after receiving specific operational input from the operator of the job flow 500, but it is not limited to this case. For example, the information processing device 100 may restart the job flow 500 without receiving specific operational input from the operator of the job flow 500. In this case, the information processing device 100 does not need to output information indicating one or more abnormally terminated jobs and the exit code of each abnormally terminated job in a way that is accessible to the operator of the job flow 500.

[0145] (Examples of applications of the information processing device 100) Next, we will describe an example of the application of the information processing device 100. The information processing device 100 can be applied, for example, to the job flow of a large-scale system in the field of data utilization, where data from dozens or more business systems is collected, processed, and integrated. This allows the information processing device 100 to flexibly restart the job flow of the large-scale system. As a result, the information processing device 100 can improve the recovery speed in the event of a failure in the large-scale system, improve the stability of the large-scale system, or reduce the operating costs of the large-scale system.

[0146] (Restart procedure) Next, using Figure 10, an example of a restart process procedure executed by the information processing device 100 in response to an abnormal termination of a job flow will be described. The restart process is implemented, for example, by the CPU 301 shown in Figure 3, storage areas such as memory 302 and recording medium 305, and network I / F 303.

[0147] Figure 10 is a flowchart illustrating an example of a restart procedure. In Figure 10, the information processing device 100 refers to the execution history management table 800 and identifies one or more jobs that have terminated abnormally based on the job status (step S1001). The information processing device 100 then outputs the one or more abnormally terminated jobs so that users of the device can refer to them, and waits until it receives a specific operation input from a user of the device (step S1002).

[0148] Next, the information processing device 100 selects one or more jobs from the identified jobs that have not yet been processed (step S1003). Then, the information processing device 100 refers to the restart information management table 700 to obtain one or more restart information corresponding to the selected job, and refers to the execution history management table 800 to obtain execution history information corresponding to the selected job (step S1004).

[0149] Next, the information processing device 100 determines whether or not one or more conditions corresponding to the selected job exist based on the acquired restart information (step S1005). If one or more conditions do not exist (step S1005: No), the information processing device 100 proceeds to step S1008. On the other hand, if one or more conditions exist (step S1005: Yes), the information processing device 100 proceeds to step S1006.

[0150] In step S1006, the information processing device 100 determines whether the exit code indicated by the acquired execution history information matches any of the exit codes indicated by at least one of the acquired restart pieces of restart information (step S1006). If they do not match (step S1006: No), the information processing device 100 proceeds to step S1008. On the other hand, if they do match (step S1006: Yes), the information processing device 100 proceeds to step S1007.

[0151] In step S1007, the information processing device 100 identifies one or more jobs that serve as the starting point indicated by any restart information with a matching exit code, and registers them in a list in association with the selected job (step S1007).

[0152] Next, the information processing device 100 determines whether or not there are any jobs that have not yet been processed (step S1008). If there are jobs that have not yet been processed (step S1008: Yes), the information processing device 100 proceeds to the process in step S1003. On the other hand, if there are no jobs that have not yet been processed (step S1008: No), the information processing device 100 proceeds to the process in step S1009.

[0153] In step S1009, the information processing device 100 determines whether there are any unregistered jobs among the one or more jobs that terminated abnormally that are not associated with one or more starting jobs in the list (step S1009). If there are no unregistered jobs (step S1009: No), the information processing device 100 proceeds to the process in step S1011. On the other hand, if there are unregistered jobs (step S1009: Yes), the information processing device 100 proceeds to the process in step S1010.

[0154] In step S1010, the information processing device 100 registers a predetermined starting job in a list for each unregistered job, associating it with the unregistered job (step S1010). The predetermined job may be, for example, the unregistered job that serves as the starting point, the job executed immediately before the unregistered job, or the first job in a job flow that is executed earlier in the execution order than the unregistered job. The information processing device 100 then proceeds to the processing in step S1011.

[0155] In step S1011, the information processing device 100 restarts the job flow starting from each of the one or more starting jobs registered in the list, so as not to execute the same job multiple times (step S1011). Then, the information processing device 100 finishes the restart process. As a result, the information processing device 100 can restart the job flow.

[0156] Here, the information processing device 100 may perform some of the steps in Figure 10 in a different order. For example, the order of steps S1005 and S1006 can be changed. For example, step S1002 may be performed after step S1008. Also, the information processing device 100 may omit some of the steps in Figure 10. For example, step S1002 can be omitted.

[0157] As explained above, the information processing device 100 can detect an anomaly in the first job of a group of jobs whose execution order is defined in the job flow. The information processing device 100 can store in the storage unit 400 the conditions for restarting the job flow, associated with at least one of the jobs in the job group, and information indicating which job in the job group will be used as the starting point for restarting the job flow. The information processing device 100 can refer to the storage unit 400 to determine whether the detected anomaly in the first job satisfies the conditions for restarting the job flow associated with the first job. If the information processing device 100 determines that the conditions are met, it can refer to the storage unit 400 and restart the job flow starting from the second job, based on the information indicating the second job that will be used as the starting point for restarting the job flow associated with the first job. This allows the information processing device 100 to appropriately restart the job flow. The information processing device 100 can flexibly control the starting point for restarting the job flow.

[0158] According to the information processing device 100, the storage unit 400 can store in association with the first job the conditions for restarting the job flow, and information indicating multiple jobs from the job group that will serve as the starting point for restarting the job flow. According to the information processing device 100, if it determines that the conditions are met, it can restart the job flow starting from each of the multiple jobs based on the information indicating multiple jobs that will serve as the starting point for restarting the job flow associated with the first job. The information processing device 100 can set multiple starting points for restarting the job flow.

[0159] According to the information processing device 100, the storage unit 400 can store conditions representing the type of anomaly in the first job. According to the information processing device 100, by referring to the storage unit 400, it can determine whether the detected type of anomaly in the first job matches the type of anomaly in the first job represented by the conditions for restarting the job flow associated with the first job. According to the information processing device 100, if they match, it can determine that the detected anomaly in the first job satisfies the conditions for restarting the job flow associated with the first job. This allows the information processing device 100 to flexibly control the starting point for restarting the job flow according to the type of anomaly in the first job.

[0160] According to the information processing device 100, when an abnormality is detected in the first job, it can refer to the storage unit 400 to determine whether or not there are conditions for restarting the job flow associated with the first job. According to the information processing device 100, if it determines that there are no conditions, it can restart the job flow starting from one of the pre-configured jobs among the first job, the job immediately preceding the first job, and the job at the beginning of the job flow. In this way, the information processing device 100 can restart the job flow even if no conditions are set.

[0161] According to the information processing device 100, if it determines that the conditions are not met, it can restart the job flow starting from one of the pre-configured jobs among the first job, the job immediately preceding the first job, and the job at the beginning of the job flow. This allows the information processing device 100 to restart the job flow even if the abnormality of the first job does not meet the configured conditions.

[0162] According to the information processing device 100, if it determines that the conditions are met, it can wait until it receives a predetermined operation input from the user. According to the information processing device 100, it can wait until it receives a predetermined operation input from the user and then restart the job flow. This allows the information processing device 100 to create an opportunity for the user to deal with any abnormalities in the first job.

[0163] The information processing method described in this embodiment can be implemented by executing a pre-prepared program on a computer such as a PC or workstation. The information processing program described in this embodiment is recorded on a computer-readable recording medium and executed by being read from the recording medium by the computer. The recording medium can be a hard disk, flexible disk, CD (Compact Disc)-ROM, MO (Magneto Optical Disc), DVD (Digital Versatile Disc), etc. Furthermore, the information processing program described in this embodiment may be distributed via a network such as the Internet.

[0164] With regard to the embodiments described above, the following additional information is disclosed.

[0165] (Note 1) An anomaly is detected in the first job of a group of jobs whose execution order is defined in the job flow. The system refers to a storage unit that stores conditions for restarting the job flow, associated with at least one of the jobs in the job group, and information indicating the job in the job group that will be the starting point for restarting the job flow, and determines whether the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job. If it is determined that the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job, the system refers to the storage unit and, based on information indicating the second job that will be the starting point for restarting the job flow associated with the first job, restarts the job flow starting from the second job. An information processing program characterized by having a computer perform the processing.

[0166] (Note 2) The storage unit stores, in association with the first job, the conditions for restarting the job flow and information indicating multiple jobs from the job group that will serve as the starting point for restarting the job flow. The aforementioned restart process is: The information processing program according to Appendix 1, characterized in that, if it is determined that the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job, it refers to the storage unit and restarts the job flow starting from each of the multiple jobs based on information indicating multiple jobs that serve as the starting point for restarting the job flow associated with the first job.

[0167] (Note 3) The above conditions represent the type of abnormality of the first job, The process for making the determination is as follows: The information processing program according to Appendix 1 or 2, characterized in that, by referring to the storage unit, if the type of abnormality of the first job detected matches the type of abnormality of the first job represented by the condition for restarting the job flow associated with the first job, it is determined that the detected abnormality of the first job satisfies the condition for restarting the job flow associated with the first job.

[0168] (Note 4) The information processing program according to Note 1 or 2, characterized in that when an abnormality in the first job is detected, the program refers to the storage unit and determines that there are no conditions for restarting the job flow associated with the first job, it restarts the job flow starting from one of the jobs pre-configured among the first job, the job immediately preceding the first job, and the job at the beginning of the job flow.

[0169] (Note 5) The information processing program according to Note 1 or 2, characterized in that when an abnormality in the first job is detected, the program refers to the storage unit and determines that the detected abnormality in the first job does not satisfy the conditions for restarting the job flow associated with the first job, restarts the job flow starting from one of the jobs pre-configured among the first job, the job immediately preceding the first job, and the job at the beginning of the job flow.

[0170] (Note 6) The restart process described above is: The information processing program according to Appendix 1 or 2, characterized in that, if it is determined that the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job, it waits until it receives a predetermined operation input from the user, then refers to the storage unit and restarts the job flow starting from the second job based on information indicating the second job that will be the starting point for restarting the job flow associated with the first job.

[0171] (Note 7) An anomaly is detected in the first job of a group of jobs whose execution order is defined in the job flow. The system refers to a storage unit that stores conditions for restarting the job flow, associated with at least one of the jobs in the job group, and information indicating the job in the job group that will be the starting point for restarting the job flow, and determines whether the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job. If it is determined that the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job, the system refers to the storage unit and, based on information indicating the second job that will be the starting point for restarting the job flow associated with the first job, restarts the job flow starting from the second job. An information processing method characterized in that the processing is performed by a computer.

[0172] (Note 8) An anomaly is detected in the first job of a group of jobs whose execution order is defined in the job flow. The system refers to a storage unit that stores conditions for restarting the job flow, associated with at least one of the jobs in the job group, and information indicating the job in the job group that will be the starting point for restarting the job flow, and determines whether the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job. If it is determined that the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job, the system refers to the storage unit and, based on information indicating the second job that will be the starting point for restarting the job flow associated with the first job, restarts the job flow starting from the second job. An information processing device characterized by having a control unit. [Explanation of symbols]

[0173] Nodes 101-110, 501-510 100 Information Processing Devices 121,500 job flows 122,400 storage unit 200 Information Processing Systems 201 Job Execution Unit 202 Client Devices 210 Network 300 bus 301 CPU 302 memory 303 Network I / F 304 Recording medium interface 305 Recording media 401 Acquisition Department 402 Execution Department 403 Detection Unit 404 Judgment section 405 Starting part 406 Output section 600 Job Flow Management Table 700 Restart Information Management Table 900 Execution History Management Table

Claims

1. The job flow detects an anomaly in the first job of a group of jobs whose execution order is defined, The system refers to a storage unit that stores conditions for restarting the job flow, associated with at least one of the jobs in the job group, and information indicating the job in the job group that will be the starting point for restarting the job flow, and determines whether the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job. If it is determined that the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job, the system refers to the storage unit and, based on information indicating the second job that will be the starting point for restarting the job flow associated with the first job, restarts the job flow starting from the second job. An information processing program characterized by having a computer perform the processing.

2. The storage unit stores, in association with the first job, the conditions for restarting the job flow and information indicating multiple jobs from the job group that will serve as the starting point for restarting the job flow. The aforementioned restart process is: The information processing program according to claim 1, characterized in that, if it is determined that the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job, it refers to the storage unit and restarts the job flow starting from each of the multiple jobs based on information indicating a plurality of jobs that will serve as the starting point for restarting the job flow associated with the first job.

3. The above conditions represent the type of abnormality of the first job, The process for making the determination is as follows: The information processing program according to claim 1 or 2, characterized in that, by referring to the storage unit, if the type of abnormality of the first job detected matches the type of abnormality of the first job represented by the condition for restarting the job flow associated with the first job, it is determined that the detected abnormality of the first job satisfies the condition for restarting the job flow associated with the first job.

4. The aforementioned restart process is: The information processing program according to claim 1 or 2, characterized in that, if it is determined that the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job, it waits until it receives a predetermined operation input from the user, then refers to the storage unit and restarts the job flow starting from the second job based on information indicating the second job which will be the starting point for restarting the job flow associated with the first job.

5. The job flow detects an anomaly in the first job of a group of jobs whose execution order is defined, The system refers to a storage unit that stores conditions for restarting the job flow, associated with at least one of the jobs in the job group, and information indicating the job in the job group that will be the starting point for restarting the job flow, and determines whether the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job. If it is determined that the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job, the system refers to the storage unit and, based on information indicating the second job that will be the starting point for restarting the job flow associated with the first job, restarts the job flow starting from the second job. An information processing method characterized in that the processing is performed by a computer.

6. The job flow detects an anomaly in the first job of a group of jobs whose execution order is defined, The system refers to a storage unit that stores conditions for restarting the job flow, associated with at least one of the jobs in the job group, and information indicating the job in the job group that will be the starting point for restarting the job flow, and determines whether the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job. If it is determined that the detected abnormality in the first job satisfies the conditions for restarting the job flow associated with the first job, the system refers to the storage unit and, based on information indicating the second job that will be the starting point for restarting the job flow associated with the first job, restarts the job flow starting from the second job. An information processing device characterized by having a control unit.