# US 2022/0035670 A1 · Orchestration of containerized applications

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

- Number: US 2022/0035670 A1
- Document ID: US20220035670A1
- Status: Published application
- Kind: A1
- Application number: 17/278,954
- Filed: 2019-08-30
- Published: 2022-02-03
- Earliest claimed: 2018-10-02
- Assignees: Siemens Aktiengesellschaft
- Applicants: Siemens Aktiengesellschaft
- Inventors: Ines Ugalde Diaz; Martin Sehr; Juan L. Aparicio Ojea; Michael Unkelbach
- Web page: https://patentgrep.com/patent/US20220035670A1

## CPC

- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/505: {considering the load}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06N 5/02: Knowledge representation; Symbolic representation
- G06F 2209/5019: Workload prediction
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A system and method are disclosed for orchestrating the execution of computing tasks. An orchestration engine can receive task requests over a network from a plurality of process engines. The process engines may correspond to respective edge or field devices that are remotely located as compared to the orchestration engine. Each task request may indicate at least one task requirement for executing a respective computing task. A plurality of computing instances that have available computing resources can be selected from a set of computing instances. A predicted runtime can be generated for each of the computing tasks. In an example, based on the predicted runtimes, task requirements, available computing resources, and associated network conditions, a schedule and allocation scheme are determined by the orchestration engine. The schedule and allocation scheme define when each of the plurality of computing tasks is performed, and which of the plurality of selected computing instances performs each of the plurality of computing tasks. The selected computing instances execute the plurality of computing tasks according to the schedule and allocation scheme.

## Claims

### Claim 1

A method for executing a plurality of computing tasks, the method comprising:
receiving, by an orchestration engine, task requests over a network from a plurality of process engines, each task request indicating at least one task requirement for executing a respective computing task of the plurality of computing tasks;
selecting a plurality of computing instances from a set of computing instances, the selected computing instances each having available computing resources;
generating a predicted runtime for each of the computing tasks;
based on the predicted runtimes, task requirements, and available computing resources, determining a schedule and allocation scheme, the schedule and allocation scheme defining when each of the plurality of computing tasks is performed, and which of the plurality of selected computing instances performs each of the plurality of computing tasks; and
executing, by the plurality of selected computing instances, the plurality of computing tasks according to the schedule and allocation scheme.

### Claim 2 (depends on 1)

The method as recited in claim 1, the method further comprising:
obtaining historical performance data associated with the computing tasks or the plurality of selected computing instances; and
generating the predicted runtimes for the computing tasks based on the historical performance data.

### Claim 3

The method as recited in any one of the preceding claims, the method further comprising:
collecting performance data associated with the network; and
generating the predicted runtimes for the computing tasks based on the performance data associated with the network.

### Claim 4

The method as recited in any one of the preceding claims, wherein generating the schedule and allocation scheme comprises performing a discrete stochastic optimization using the predicted runtimes, task requirements, and available computing resources as inputs to the discrete stochastic optimization.

### Claim 5 (depends on 4)

The method as recited in claim 4, the method further comprising:
performing the discrete stochastic optimization when each task is received.

### Claim 6 (depends on 1)

The method as recited in claim 1, the method further comprising:
comparing the predicted runtimes to respective predetermined thresholds;
when a predicted runtime is greater than its respective predetermined threshold, determining the process engine that originated the task request associated with the predicted runtime that is greater than its respective predetermined threshold; and
sending an alarm to the determined process engine.

### Claim 7 (depends on 1)

The method as recited in claim 1, the method further comprising:
comparing the predicted runtimes to respective predetermined thresholds; and
when at least one of the predicted runtimes is greater than its predetermined threshold, identifying additional computing resources.

### Claim 8 (depends on 1)

The method as recited in claim 1, wherein determining the schedule and allocation scheme further comprises:
based on the task requirements and performance of the network, generating a priority order for completing the task requests;
based on the priority order and the available computing resources, generating an optimization problem; and
solving the optimization problem so as to generate the schedule and allocation scheme as a result of the optimization problem.

### Claim 9

A system for executing computing tasks, the system comprising:
a process for executing modules; and
a memory for storing the modules comprising:
a data module configured to receive task requests over a network from a plurality of process engines, each task request indicating at least one task requirement for executing a respective computing task of the plurality of computing tasks;
an artificial intelligence module configured to generate a predicted runtime for each of the computing tasks;
an orchestrator module configured to select a plurality of computing instances from a set of computing instances, the selected computing instances each having available computing resources, wherein
the orchestrator module is further configured to, based on the predicted runtimes, task requirements, and available computing resources, determine a schedule and allocation scheme, the schedule and allocation scheme defining when each of the plurality of computing tasks is performed, and which of the plurality of selected computing instances performs each of the plurality of computing tasks.

### Claim 10 (depends on 9)

The system as recited in claim 9, the system further comprising the plurality of selected computing instances that are configured to execute the plurality of computing tasks according to the schedule and allocation scheme.

### Claim 11 (depends on 9)

The system as recited in claim 9, wherein the artificial intelligence module is further configured to:
obtain historical performance data associated with the computing tasks or the plurality of selected computing instances; and
generate the predicted runtimes for the computing tasks based on the historical performance data.

### Claim 12 (depends on 9)

The system as recited in claim 9, wherein the artificial intelligence module is further configured to:
collect performance data associated with the network; and
generate the predicted runtimes for the computing tasks based on the performance data associated with the network.

### Claim 13 (depends on 9)

The system as recited in claim 9, wherein the orchestrator module is further configured to perform a discrete stochastic optimization using the predicted runtimes, task requirements, and available computing resources as inputs to the discrete stochastic optimization, so as to generate the schedule and allocation scheme.

### Claim 14 (depends on 9)

The system as recited in claim 9, wherein the artificial intelligence module is further configured to:
compare the predicted runtimes to respective predetermined thresholds;
when a predicted runtime is greater than its respective predetermined threshold, determine the process engine that originated the task request associated with the predicted runtime that is greater than its respective predetermined threshold; and
send an alarm toward the determined process engine.

### Claim 15 (depends on 9)

The system as recited in claim 9, wherein the orchestrator module is further configured to:
based on the task requirements and performance of the network, generate a priority order for completing the task requests;
based on the priority order and the available computing resources, generate an optimization problem; and
solve the optimization problem so as to generate the schedule and allocation scheme as a result of the optimization problem.
