# US 2021/0243284 A1 · Distributed dynamic architecture for error correction

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

- Number: US 2021/0243284 A1
- Document ID: US20210243284A1
- Status: Published application
- Kind: A1
- Application number: 17/120,512
- Filed: 2020-12-14
- Published: 2021-08-05
- Earliest claimed: 2017-11-16
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Rita H. Wouhaybi; Robert Chavez; Mark Yarvis; John Vicente; Kirk Smith
- Web page: https://patentgrep.com/patent/US20210243284A1

## CPC

- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- G05B 19/042: using digital processors (G05B19/05 takes precedence)
- G05B 19/054: {Input/output}
- G05B 19/41835: {characterised by program execution}
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 11/2023: {Failover techniques}
- G06F 11/2033: {switching over of hardware resources}
- H04L 41/0668: by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
- H04L 41/082: the condition being updates or upgrades of network functionality
- H04L 41/0846: {based on copy from other elements}
- H04L 41/0895: Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
- H04L 67/04: specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/1048: {Departure or maintenance mechanisms}
- H04L 67/1051: {Group master selection mechanisms}
- H04L 67/12: specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L 67/125: involving control of end-device applications over a network
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 67/565: Conversion or adaptation of application format or content (adding application control or application functional data H04L67/561)
- G05B 2219/1105: I-O
- G05B 2219/1214: Real-time communication between plc, Ethernet for configuration, monitor
- G05B 2219/32043: Program, information flow
- G05B 2219/33112: Configuration software for network
- G06F 2201/805: Real-time
- G06F 2201/82: Solving problems relating to consistency
- G06F 2201/85: Active fault masking without idle spares
- Y02P 90/80: Management or planning
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02P: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS

## Abstract

Various systems and methods may be used to implement a software defined industrial system. For example, an orchestrated system of distributed nodes may run an application, including modules implemented on the distributed nodes. The orchestrated system may include an orchestration server, a first node executing a first module, and a second node executing a second module. In response to the second node failing, the second module may be redeployed to a replacement node (e.g., the first node or a different node). The replacement mode may be determined by the first node or another node, for example based on connections to or from the second node.

## Claims

### Claim 1

(canceled)

### Claim 2

An orchestrated system of distributed nodes running an application, the orchestrated system comprising:
a first node executing a first software component with a first output; and
a second node executing a second software component, the second software component using the first output as an input, and providing a second output to a third software component executing on a third node;
wherein, in response to detection of a failure of the second node, the first node and the third node are configured to coordinate to bypass the second node by using input state information stored at the first node and output state information stored at the third node to run the second software component at the first node or the third node.

### Claim 3 (depends on 2)

The orchestrated system of claim 2, wherein the failure of the second node is an error in the second. output.

### Claim 4 (depends on 2)

The orchestrated system of claim 2, wherein the third node includes a redundant second software component preconfigured to replace the second node.

### Claim 5 (depends on 4)

The orchestrated system of claim 4, wherein the redundant second software component is virtualized.

### Claim 6 (depends on 4)

The orchestrated system of claim 4, wherein the third node runs a virtualization of the second node, and wherein the redundant second software component is run in the virtualization of the second node.

### Claim 7 (depends on 2)

The orchestrated system of claim 2, wherein the second node is further configured to send parameters and state information about the second software component to the third node before the failure.

### Claim 8 (depends on 2)

The orchestrated system of claim 2, wherein in response to the third node failing, a redundant node is designated to replace the third node.

### Claim 9 (depends on 2)

The orchestrated system of claim 2, wherein the first node is configured to save a redundant state of the second software component when the first output is generated.

### Claim 10 (depends on 2)

The orchestrated system of claim 2, wherein when coordinating, the first node and the third node are configured to determine a set of nodes connected to the second node.

### Claim 11 (depends on 2)

The orchestrated system of claim 2, wherein the configuration of the first, second, and third software components on the first, second, and third nodes is initially generated by an orchestration server, and wherein the orchestration server is configured to be disconnected from the first node, the second node, and the third node during operation.

### Claim 12 (depends on 2)

The orchestrated system of claim 2, wherein the first node is selected as a leader node using a leader-election algorithm.

### Claim 13 (depends on 2)

The orchestrated system of claim 2, wherein a least one of the first, second, or third nodes is run as a virtual node.

### Claim 14

At least one non-transitory machine readable medium including instructions for orchestrating a system of distributed nodes running an application, which when executed by processing circuitry, cause the processing circuitry to:
execute a first software component with a first output at a first node;
execute a second software component at a second node, the second software component to use the first output as an input;
provide a second output, generated using the second software component, to a third software component executing on a third node;
in response to detection of a failure of the second node, bypass the second node, based on coordination between the first node and the third node, using input state information stored at the first node and output state information stored at the third node; and
run the second software component at the first node or the third node based on the coordination.

### Claim 15 (depends on 14)

The at least one machine readable medium of claim 14, wherein the failure of the second node is an error in the second output.

### Claim 16 (depends on 14)

The at least one machine readable medium of claim 14, wherein the third node includes a redundant second software component preconfigured to replace the second node.

### Claim 17 (depends on 16)

The at least one machine readable medium of claim 16, wherein the redundant second software component is virtualized.

### Claim 18 (depends on 16)

The at least one machine readable medium of claim 16, wherein the third node runs a virtualization of the second node, and wherein the redundant second software component is run in the virtualization of the second node.

### Claim 19 (depends on 14)

The at least one machine readable medium of claim 14, wherein the second node is further configured to send parameters and state information about the second software component to the third node before the failure.

### Claim 20 (depends on 14)

The at least one machine readable medium of claim 14, wherein in response to the third node failing, a redundant node is designated to replace the third node.

### Claim 21 (depends on 14)

The at least one machine readable medium of claim 14, wherein the first node is configured to save a redundant state of the second software component when the first output is generated.

### Claim 22 (depends on 14)

The at least one machine readable medium of claim 14, wherein the coordination includes a determination of a set of nodes connected to the second node.

### Claim 23 (depends on 14)

The at least one machine readable medium of claim 14, wherein the configuration of the first, second, and third software components on the first, second, and third nodes is initially generated by an orchestration server, and wherein the orchestration server is configured to be disconnected from the first node, the second node, and the third node during operation.

### Claim 24 (depends on 14)

The at least one machine readable medium of claim 14, wherein the first node is selected as a leader node using a leader-election algorithm.

### Claim 25 (depends on 14)

The at least one machine readable medium of claim 14, wherein at least one of the first, second, or third nodes is run as a virtual node.

### Claim 26

A method of running an application using distributed nodes of an orchestrated system, the method comprising:
executing a first software component on a first node, the first software component having a first output;
executing a second software component on a second node, the second software component using the first output as an input;
providing a second output from the second software component to a third software component executing on a third node;
in response to detection of a failure of the second node, bypassing the second node, based on coordination between the first node and the third node, using input state information stored at the first node and output state information stored at the third node; and
running the second software component at the first node or the third node based on the coordination.
