# US 10,768,980 B2 · Automated execution of a batch job workflows

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,768,980 B2
- Document ID: US10768980B2
- Status: Granted
- Kind: B2
- Application number: 15/991,945
- Filed: 2018-05-29
- Published: 2019-12-05
- Granted: 2020-09-08
- Earliest claimed: 2018-05-29
- Assignees: American Express Travel Related Services Company, Inc.
- Applicants: American Express Travel Related Services Company, Inc.
- Inventors: Ashish Gupta; Prasanta Kumar Mishra
- Web page: https://patentgrep.com/patent/US10768980B2

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/466: {Transaction processing}
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 2209/484: Precedence
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for the automated execution of batch job workflows are provided. The system may generate a batch job workflow having one or more jobs with each job having one or more tasks. The system may retrieve scheduler data corresponding to each task and indicating job dependencies, task dependencies, and technology wrappers needed to execute each task. The system may generate a task schedule based on the scheduler data. The system may execute each task in accordance with the scheduler data by transmitting each task to a wrapper environment to invoke a technology wrapper. The technology wrapper may enable each task to be executed across systems of varying technologies.

## Claims

### Claim 1

A method, comprising:
generating, by a batch job execution platform, a batch job workflow, wherein the batch job workflow comprises a batch job having a first task and a second task, the first task and the second task not being dependent on one another;
retrieving, by the batch job execution platform and from an execution database, first scheduler data corresponding to the first task in the batch job and second scheduler data corresponding to the second task in the batch job, wherein each respective scheduler data comprises a batch job dependency, a task dependency, a system assignment, and a technology wrapper assignment, a respective system assignment indicating a corresponding system on which to execute the respective task, a respective technology wrapper assignment being based at least in part on the respective system assignment;
determining, by the batch job execution platform and based on first and second wrapper and system assignments, that the first and second wrapper and system assignments are different;
generating, by the batch job execution platform, a task schedule based on the first scheduler data and the second scheduler data;
invoking, by the batch job execution platform, a first technology wrapper by transmitting the first task to the first technology wrapper, wherein the first technology wrapper is invoked based on a first technology wrapper assignment and comprises first access credentials for executing the first task on a first system, the first system being based on the first system assignment;
invoking, by the batch job execution platform, a second technology wrapper by transmitting the second task to the second technology wrapper, wherein the second technology wrapper is invoked based on a second technology wrapper assignment and comprises second access credentials different than the first access credentials for executing the second task on a second system, the second system being based on the second system assignment; and
executing, by the batch job execution platform, the first task on the first system using the first technology wrapper in parallel with the second task on the second system using the second technology wrapper.

### Claim 2 (depends on 1)

The method of claim 1, further comprising receiving, by the batch job execution platform, first and second task execution results in response to the first and second tasks being executed.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
receiving, by the batch job execution platform, a job selection comprising the batch job;
retrieving, by the batch job execution platform from the execution database, configuration data corresponding to the batch job, wherein the configuration data comprises a user parameter;
receiving, by the batch job execution platform, a user parameter input in response to prompting a user terminal to input the user parameter; and
generating, by the batch job execution platform, the batch job workflow based on the job selection and the user parameter input.

### Claim 4 (depends on 3)

The method of claim 3, wherein the job selection is based on a user job authorization comprising data indicating at least one of jobs or batch job workflows that a user is authorized to execute.

### Claim 5 (depends on 3)

The method of claim 3, wherein the job selection comprises a job selection order, and wherein the task schedule is based on the job selection order.

### Claim 6

A computer-based system for executing batch job workflows, comprising:
a processor and a tangible, non-transitory memory configured to communicate with the processor, the tangible, non-transitory memory having instructions stored thereon that, in response to execution by the processor, cause the processor to perform operations comprising:
generating, by the processor, a batch job workflow, wherein the batch job workflow comprises a batch job having a first task and a second task, the first task and the second task not being dependent on one another;
retrieving, by the processor and from an execution database, first scheduler data corresponding to the first task in the batch job and second scheduler data corresponding to the second task in the batch job, wherein each respective scheduler data comprises a batch job dependency, a task dependency, a system assignment, and a technology wrapper assignment, a respective system assignment indicating a corresponding system on which to execute the respective task, a respective technology wrapper assignment being based at least in part on the respective system assignment;
determining, by the processor and based on first and second wrapper and system assignments, that the first and second wrapper and system assignments are different;
generating, by the processor, a task schedule based on the first scheduler data and the second scheduler data;
invoking, by the processor, a first technology wrapper by transmitting the first task to the first technology wrapper, wherein the first technology wrapper is invoked based on a first technology wrapper assignment and comprises first access credentials for executing the first task on a first system, the first system based on the first system assignment;
invoking, by the processor, a second technology wrapper by transmitting the second task to the second technology wrapper, wherein the second technology wrapper is invoked based on a second technology wrapper assignment and comprises second access credentials different than the first access credentials for executing the second task on a second system, the second system based on the second system assignment; and
executing, by the processor, the first task on the first system using the first technology wrapper in parallel with the second task on the second system using the second technology wrapper.

### Claim 7 (depends on 6)

The computer-based system of claim 6, further comprising receiving, by the processor, first and second task execution results in response to the first and second tasks being executed.

### Claim 8 (depends on 6)

The computer-based system of claim 6, further comprising:
receiving, by the processor, a job selection comprising the batch job; retrieving, by the processor from the execution database, configuration data corresponding to the batch job, wherein the configuration data comprises a user parameter;
receiving, by the processor, a user parameter input in response to prompting a user terminal to input the user parameter; and
generating, by the processor, the batch job workflow based on the job selection and the user parameter input.

### Claim 9 (depends on 8)

The computer-based system of claim 8, wherein the job selection is based on a user job authorization comprising data indicating at least one of jobs or batch job workflows that a user is authorized to execute.

### Claim 10 (depends on 8)

The computer-based system of claim 8, wherein the job selection comprises a job selection order, and wherein the task schedule is based on the job selection order.

### Claim 11

An article of manufacture including a non-transitory, tangible computer readable storage medium having instructions stored thereon that, in response to execution by a computer-based system, cause the computer-based system to perform operations comprising:
generating, by the computer-based system, a batch job workflow, wherein the batch job workflow comprises a batch job having a first task and a second task, the first task and the second task not being dependent on one another;
retrieving, by the computer-based system and from an execution database, first scheduler data corresponding to the first task in the batch job and second scheduler data corresponding to the second task in the batch job, wherein each respective scheduler data comprises a batch job dependency, a task dependency, a system assignment, and a technology wrapper assignment, a respective system assignment indicating a corresponding system on which to execute the respective task, a respective technology wrapper assignment being based at least in part on the respective system assignment;
determining, by the computer-based system and based on first and second wrapper and system assignments, that the first and second wrapper and system assignments are different;
generating, by the computer-based system, a task schedule based on the first scheduler data and the second scheduler data;
invoking, by the computer-based system, a first technology wrapper by transmitting the first task to the first technology wrapper, wherein the first technology wrapper is invoked based on a first technology wrapper assignment and comprises first access credentials needed to execute the first task on a first system, the first system based on the first system assignment;
invoking, by the computer-based system, a second technology wrapper by transmitting the second task to the second technology wrapper, wherein the second technology wrapper is invoked based on a second technology wrapper assignment and comprises second access credentials different than the first access credentials for executing the second task on a second system, the second system based on the second system assignment; and
executing, by the computer-based system, the first task on the first system using the first technology wrapper in parallel with the second task on the second system using the second technology wrapper.

### Claim 12 (depends on 11)

The article of manufacture of claim 11, further comprising receiving, by the computer-based system, first and second task execution results in response to the first and second tasks being executed.

### Claim 13 (depends on 11)

The article of manufacture of claim 11, further comprising:
receiving, by the computer-based system, a job selection comprising the batch job;
retrieving, by the computer-based system from the execution database, configuration data corresponding to the batch job, wherein the configuration data comprises a user parameter;
receiving, by the computer-based system, a user parameter input in response to prompting a user terminal to input the user parameter; and
generating, by the computer-based system, the batch job workflow based on the job selection and the user parameter input.

### Claim 14 (depends on 13)

The article of manufacture of claim 13, wherein the job selection is based on a user job authorization comprising data indicating at least one of jobs or batch job workflows that a user is authorized to execute, and wherein the job selection comprises a job selection order and the task schedule is based on the job selection order.
