# US 2025/0086074 A1 · Building system with brokering architecture to provide bump-less failover and replay

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

- Number: US 2025/0086074 A1
- Document ID: US20250086074A1
- Status: Published application
- Kind: A1
- Application number: 18/882,675
- Filed: 2024-09-11
- Published: 2025-03-13
- Earliest claimed: 2023-09-12
- Assignees: Tyco Fire & Security GmbH
- Applicants: Tyco Fire & Security GmbH
- Inventors: Andrew J. Przybylski; Jon T. Mueller; John H. Burroughs
- Web page: https://patentgrep.com/patent/US20250086074A1

## CPC

- G06F 11/2023: {Failover techniques}
- G05B 13/021: {in which a variable is automatically adjusted to optimise the performance}
- G05B 15/02: electric
- G05B 23/0216: {Human interface functionality, e.g. monitoring system providing help to the user in the selection of tests or in its configuration}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G06F 8/61: Installation
- G06F 8/63: {Image based installation; Cloning; Build to order}
- G06F 11/2028: {eliminating a faulty processor or activating a spare}
- G06F 11/2038: {with a single idle spare processing component}
- G06F 11/2048: {where the redundant components share neither address space nor persistent storage}
- G06F 16/2322: {using timestamps}
- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- H03M 7/6011: {Encoder aspects}
- G06F 3/0655: {Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices}
- G06F 2201/805: Real-time
- H03M 7/3073: {Time}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- 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)
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

A distributed control system with bump-less failover and replay capability is disclosed. The distributed control system stores the state of each control application in a separate storage system. Each time the control applications runs it can store the results of the calculations required for a subsequent calculation. When a compute environment running the control applications fails another environment can begin performing the same operations. Replay capability is provided to facilitate the investigation of the control application's execution.

## Claims

### Claim 1

One or more memory devices having instructions stored thereon that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
operating a first isolated compute environment during a first time period to perform a first set of calculations related to control of a building and send results of the first set of calculations;
operating an additional plurality of isolated compute environments to, in combination, perform a second set of calculations related to the control of the building and send results of the second set of calculations;
operating a second isolated compute environment to store the results of the first set of calculations and the results of the second set of calculations; and
instructing a failover set of isolated compute environments from the additional plurality of isolated compute environments to perform the first set of calculations during a second time period in response to the first isolated compute environment encountering a failure when performing the first set of calculations during the first time period.

### Claim 2 (depends on 1)

The one or more memory devices of claim 1, wherein the second time period comprises a duration of at least one of:
the failure of the first isolated compute environment; or
a restart of the first isolated compute environment.

### Claim 3 (depends on 1)

The one or more memory devices of claim 1, wherein the first isolated compute environment and the failover set of isolated compute environments store the results of the first set of calculations and the results of the second set of calculations in the second isolated compute environment when performing the first set of calculations and the second set of calculations.

### Claim 4 (depends on 1)

The one or more memory devices of claim 1, wherein the second isolated compute environment is configured to store calculations inside the second isolated compute environment and inside a database management system, wherein the operations further comprise recreating the second isolated compute environment using the database management system in response to an outage of the second isolated compute environment.

### Claim 5 (depends on 1)

The one or more memory devices of claim 1, the operations further comprising:
operating the second isolated compute environment to receive measurements from an input-output module;
operating the first isolated compute environment to send commands to the input-output module to apply to the building; and
operating the first isolated compute environment to receive, from the input-output module, a third time period for which it was not applying the commands.

### Claim 6 (depends on 5)

The one or more memory devices of claim 5, the operations further comprising:
determining a first output of the input-output module at a start of the third time period; and
determining an initial action predicted to produce a second output that satisfies a similarity criterion with the first output when the initial action is performed by the input-output module.

### Claim 7 (depends on 1)

The one or more memory devices of claim 1, the operations further comprising predicting a fault in the first isolated compute environment.

### Claim 8

A method for providing disturbance-free control of a building after failure of a control device, the method comprising:
operating a first isolated compute environment during a first time period to perform a first set of calculations related to control of the building and send results of the first set of calculations;
operating an additional plurality of isolated compute environments to, in combination, perform a second set of calculations related to the control of the building and send results of the second set of calculations;
operating a second isolated compute environment to store the results of the first set of calculations and the results of the second set of calculations; and
instructing a failover set of isolated compute environments from the additional plurality of isolated compute environments to perform the first set of calculations during a second time period in response to the first isolated compute environment encountering a failure when performing the first set of calculations during the first time period.

### Claim 9 (depends on 8)

The method of claim 8, wherein the second time period comprises a duration of at least one of:
the failure of the first isolated compute environment; or
a restart of the first isolated compute environment.

### Claim 10 (depends on 8)

The method of claim 8, wherein the first isolated compute environment and the failover set of isolated compute environments store the results of the first set of calculations and the results of the second set of calculations in the second isolated compute environment when performing the first set of calculations and the second set of calculations.

### Claim 11 (depends on 8)

The method of claim 8, further comprising:
storing calculations inside a database management system; and
recreating data within the second isolated compute environment using the database management system in response to an outage of the second isolated compute environment.

### Claim 12 (depends on 8)

The method of claim 8, further comprising:
applying outputs to the building with an input-output module; and
determining a start of a third time period during which the input-output module was not applying the outputs.

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
determining a first output of the input-output module at the start of the third time period; and
determining an initial action predicted to produce a second output that satisfies a similarity criterion with the first output when the initial action is performed by the input-output module.

### Claim 14 (depends on 8)

The method of claim 8, further comprising predicting a fault in the first isolated compute environment.

### Claim 15

One or more memory devices having instructions stored thereon that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
controlling equipment of a building based on measurements received from sensors related to the building by executing a control or monitoring application and sending commands to actuators of the building within one or more isolated compute environments;
creating a second isolated compute environment representing at least a portion of the one or more isolated compute environments using images of the one or more isolated compute environments;
simulating an input-output module, the simulating comprising sending messages containing past measurements to the control or monitoring application operating in the second isolated compute environment when a simulated time of the control or monitoring application operating in the second isolated compute environment matches a time the past measurements occurred in the one or more isolated compute environments; and
executing a calculation of the second isolated compute environment when the simulated time of the control or monitoring application operating in the second isolated compute environment matches a calculation time the calculation was executed in the one or more isolated compute environments.

### Claim 16 (depends on 15)

The one or more memory devices of claim 15, the operations further comprising executing lines of code within the second isolated compute environment in sequence and showing results of executing the lines of code after an execution.

### Claim 17 (depends on 15)

The one or more memory devices of claim 15, wherein simulating the input-output module comprises sending the messages containing simulated measurements based on a statistical analysis of the past measurements.

### Claim 18 (depends on 15)

The one or more memory devices of claim 15, wherein the second isolated compute environment executes the control or monitoring application operating in the second isolated compute environment while the control or monitoring application operating in the one or more isolated compute environments continues to operate on the building.

### Claim 19 (depends on 15)

The one or more memory devices of claim 15, the operations further comprising comparing an output of the calculation of the second isolated compute environment with an output of the calculation executed in the one or more isolated compute environments and creating an indication of a difference based on the comparison.

### Claim 20 (depends on 15)

The one or more memory devices of claim 15, wherein a first portion of the one or more isolated compute environments run on a node of a cluster of computers and a second portion of the one or more isolated compute environments run on the input-output module.
