# US 2023/0409386 A1 · Automatically orchestrating a computerized workflow

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

- Number: US 2023/0409386 A1
- Document ID: US20230409386A1
- Status: Published application
- Kind: A1
- Application number: 17/840,698
- Filed: 2022-06-15
- Published: 2023-12-21
- Earliest claimed: 2022-06-15
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Anton Zorin; Manish Kesarwani; Niels Dominic Pardon; Ritesh Kumar Gupta; Sameep Mehta
- Web page: https://patentgrep.com/patent/US20230409386A1

## CPC

- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- 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 9/485: {Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence)}
- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06N 7/01: Probabilistic graphical models, e.g. probabilistic networks
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

The method performs at the orchestration interface at which update information, including changes to tasks of a workflow, is received from a task manager system (TMS), where the workflow includes a set of tasks, inputs to the tasks, and outputs from the tasks. The inputs and outputs determine runtime dependencies between the tasks. Based on the update information received, the orchestration interface populates a topology of nodes and edges as a directed acyclic graph (DAG) that maps nodes to tasks and edges to runtime dependencies between tasks, based on node inputs and outputs. The orchestration interface instructs the execution of the tasks and handling dependencies by interacting with a task execution system (TES) and by traversing the DAG, the orchestration interface identifies tasks that depend on completed tasks as per the runtime dependencies and instructs the TES to execute the dependent tasks identified.

## Claims

### Claim 1

A computer-implemented method of automatically orchestrating a computerized workflow with an orchestration interface, the method comprising:
receiving, by one or more processors, update information of a workflow from a task manager system (TMS), wherein the update information is applied to a previous state of the workflow, which is managed by the TMS, and wherein the workflow is defined by a set of tasks, inputs to the tasks, and outputs from the tasks, and wherein said inputs and outputs determine runtime dependencies between the tasks;
populating, by the one or more processors, a topology of nodes and edges as a directed acyclic graph (DAG), wherein the nodes are mapped to the workflow tasks managed by the TMS and the edges capture the runtime dependencies between the tasks, as per said inputs to the tasks and outputs from the tasks;
identifying, by the one or more processors, a dependent task that depends on a completed task as per said runtime dependencies, based on traversing the nodes and edges of the DAG; and
orchestrating, by the one or more processors, the execution of the dependent task by interacting with a task execution system (TES) and instructing the TES to execute the dependent task that depends on the completed task identified by traversing the DAG.

### Claim 2 (depends on 1)

The method according to claim 1, wherein
populating, by the one or more processors, the topology comprises weaving in a new node in the DAG in which the new node corresponds to a new task to be created as per the update information received.

### Claim 3 (depends on 1)

The method according to claim 1, wherein
populating, by the one or more processors, the topology comprises re-weaving in an existing node in the DAG in which the existing node corresponds to an existing task to be updated as per the update information received.

### Claim 4 (depends on 1)

The method according to claim 1, wherein
populating, by the one or more processors, the topology comprises deleting a node from the DAG in which the deleted node corresponds to an existing task to be deleted as per the update information received.

### Claim 5 (depends on 1)

The method according to claim 1, wherein populating the topology further comprises:
checking, by the one or more processors, the runtime dependencies of tasks to be modified based on inputs to the tasks and outputs from the tasks to detect potential inconsistencies in the runtime dependencies.

### Claim 6 (depends on 5)

The method according to claim 5, wherein checking the runtime dependencies further comprises:
checking, by the one or more processors, for duplicated outputs of a new task to be created or an existing task to be updated, based on inputs to the tasks and output from the tasks of the workflow as per said update information and by traversing the topology of the DAG.

### Claim 7 (depends on 5)

The method according to claim 5, wherein populating the topology further comprises:
notifying, by the one or more processors, the TMS upon detecting an inconsistency in the runtime dependencies checked.

### Claim 8 (depends on 1)

The method according to claim 1, wherein populating the topology for a new task to be created as per the update information received, further comprises:
identifying, by the one or more processors, for said new task, one or more upstream tasks, on which said new task depends, by assessing inputs to said new task based on traversing the DAG that is updated per the update information received; and
weaving in a new node, corresponding to said new task, in the DAG, in accordance with outputs from the one or more upstream tasks identified.

### Claim 9 (depends on 1)

The method according to claim 1, wherein populating the topology includes, for an existing task to be updated as per the update information received:
identifying, by the one or more processors, one or more upstream tasks, on which said existing task depends, by assessing inputs to said existing task, and reweaving in an existing node of the DAG that corresponds to said existing task, in accordance with the one or more upstream tasks identified; and
identifying, by the one or more processors, one or more downstream tasks, which depend on said existing task to be updated, by assessing outputs from said existing task and reweaving in an existing node of the DAG that corresponds to said existing task in accordance with the one of more downstream tasks identified.

### Claim 10 (depends on 1)

The method according to claim 1, wherein populating the topology further comprises:
determining, by the one or more processors, an existing task indicated for deletion as per the update information received;
determining, by the one or more processors, an absence of a downstream task that depends on said existing task indicated for deletion, by assessing outputs of said existing task to be deleted; and
deleting, by the one or more processors, a node of the DAG corresponding to said existing task to be deleted.

### Claim 11 (depends on 1)

The method according to claim 1, wherein orchestrating the execution of the tasks at the orchestration interface, further comprises:
iteratively determining, by the one or more processors, at the orchestration interface, runtime configurations of the dependent task identified, whereby the TES is subsequently instructed to execute the dependent task in accordance with the runtime configurations determined at the orchestration interface.

### Claim 12 (depends on 1)

The method according to claim 1, wherein orchestrating the execution of the tasks at the orchestration interface, further comprises:
receiving, by the one or more processors, status messages from the TES, the status messages including a status of execution of the task instructed to be performed at the TES; and
updating, by the one or more processors, attributes of the node of the DAG in accordance with said status, whereby the dependent task is identified based on the updated attributes.

### Claim 13 (depends on 12)

The method according to claim 12, wherein the dependent task is iteratively identified by:
identifying, by the one or more processors, a given node of the DAG that corresponds to a respective task successfully completed, based on the status messages received; and
identifying, by the one or more processors, downstream nodes of said given node, based on edges connecting said given node to the identified downstream nodes.

### Claim 14 (depends on 13)

The method according to claim 13, wherein the runtime configurations of the dependent tasks identified are determined by:
iteratively updating, by the one or more processors, runtime configurations of the dependent tasks corresponding to the downstream nodes identified.

### Claim 15 (depends on 13)

The method according to claim 13, wherein the runtime configurations of the dependent task identified further comprises:
identifying, by the one or more processors, a node in the DAG corresponding to a task requested to be started, and all upstream nodes; and
updating, by the one or more processors, the runtime configurations of the executions of all upstream tasks corresponding to the upstream nodes identified based on the edges of the DAG connected to the task requested to be started.

### Claim 16 (depends on 1)

The method according to claim 1, further comprising:
continually sending, by the one or more processors, update information from the TMS to the orchestration interface.

### Claim 17 (depends on 1)

The method according to claim 1, further comprising:
continually sending, by the one or more processors, status messages from the TES to the orchestration interface, including statuses of execution of the tasks instructed to be performed at the TES.

### Claim 18

A computerized system for automatically orchestrating a computerized workflow, the system comprising:
one or more computer processors;
at least one computer-readable storage medium;
program instructions stored on the at least one computer-readable storage medium, the computer system comprising:
a first interface means interfaceable with a task manager system (TMS);
a reception module configured to receive update information via the first interface means, wherein, in operation, the update information includes changes to a workflow of tasks managed by the TMS, and the workflow is defined by processes associated with inputs to the tasks, and outputs from the tasks, and said inputs and outputs determine runtime dependencies between the tasks:
a topological analysis module configured to determine and populate, a topology of nodes and edges as a directed acyclic graph (DAG), based on the update information received, wherein the nodes are mapped to correspond with the tasks managed by the TMS and the edges capture the runtime dependencies between the tasks, as per said inputs and outputs:
a second interface means interfaceable with a task execution system (TES); and
an orchestration module configured to orchestrate the execution of the tasks by interacting with the TES via the second interface means, iteratively identifying dependent tasks of completed tasks as per said runtime dependencies and instructing the TES to execute the dependent tasks identified.

### Claim 19 (depends on 18)

The computerized system according to claim 18, wherein the orchestration module includes the first interface means and the second interface means.

### Claim 20

A computer program product for automatically orchestrating a computerized workflow, the computer program product comprising: instructions executable by processing means to cause the latter to:
at least one computer readable storage medium and program instructions stored on the at least one computer readable storage medium, the program instructions comprising:
program instructions to access update information of a workflow received from a task manager system (TMS), wherein the update information captures changes to the workflow of tasks managed by the TMS, and wherein the workflow is defined by processes of a set of tasks, inputs to the tasks, and outputs from the tasks; and said inputs and outputs determine runtime dependencies between the tasks;
program instructions to populate a topology of nodes and edges as a directed acyclic graph (DAG), wherein the nodes are mapped to the workflow tasks managed by the TMS and the edges capture the runtime dependencies between the tasks, as per said inputs to the tasks and outputs from the tasks;
program instructions to identify a dependent task that depends on a completed task as per said runtime dependencies, based on traversing the nodes and edges of the DAG; and
orchestrate the execution of the task by interacting with a task execution system (TES) and instructing the TES to execute the dependent tasks that depends on the completed task identified by traversing the DAG.
