IP Library Granted Patent US 10,574,525
Granted Patent B2
US 10,574,525 · App. 15/199,212 · Granted Feb 25, 2020

Configuration agreement protocol method

Inventors: Sanjai Narain (Basking Ridge, NJ); Brian Coan (Basking Ridge, NJ); Jon Kirsch (Basking Ridge, NJ)
Assignee: Perspecta Labs Inc.
H04L41/0893H04L12/403H04L41/0813H04L41/0823H04L41/0873H04L63/20H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,574,525
App. No.
15/199,212
Granted
Feb 25, 2020
Kind
B2
Abstract

A first controller in a distributed network obtains, concurrently with a second controller in the distributed network, a system requirement and a message from a logical bus. The first controller and the second controller are communicatively coupled to the logical bus, and the first controller is communicatively coupled to a first portion of the network components and the second controller is communicatively coupled to a second portion. A processor associated with the first controller solves, concurrently with the second controller, the system requirement and the solving includes applying a solver to generate new configurations of the network components. The new configurations generated by the first controller are identical to the new configurations generated by the second controller. The first controller extracts configurations relevant to the first portion of the network components and applies the configurations to the first portion of the network components.

Claims (46)

1. A computer-implemented method comprising:

obtaining, by one or more processors of a first controller in a distributed network comprised of network components, concurrently with a second controller in the distributed network, a system requirement and a message from a logical bus, wherein the first controller and the second controller are communicatively coupled to the logical bus, and wherein the first controller is communicatively coupled to a first portion of the network components and the second controller is communicatively coupled to a second portion of the network components;

based on the message, solving, by the one or more processors of the first controller, concurrently with the second controller, the system requirement in a context of a current dynamic state of the network components, wherein the solving comprises applying a satisfiability modulo theories solver to generate new configurations of the network components, wherein the new configurations generated by the first controller are identical to the new configurations generated by the second controller, wherein the solving further comprises generating a reconfiguration order for configuring the network components with the new configurations, wherein following the reconfiguration order enables the first controller to maintain connectivity to the first portion of the network components when applying the new configurations, and wherein following the reconfiguration order enables the second controller to maintain connectivity to the second portion of the network components when applying the new configurations;

extracting, by the one or more processors of the first controller, configurations relevant to the first portion of the network components from the new configurations generated by the first controller;

extracting, by one or more processors of the second controller, configurations relevant to the second portion of the network components from the new configurations generated by the second controller, wherein the message causes the first controller and the second controller to wait a given interval before applying the configurations; and

applying, after the given interval and utilizing the reconfiguration order, by the one or more processors of the first controller, the configurations relevant to the first portion of the network components to the first portion of the network components, wherein the applying comprises applying the configurations to the first portion of the network components concurrently with the second controller applying, after the given interval and utilizing the reconfiguration order, configurations relevant to the second portion of the network components to the second portion of the network components, and wherein based on utilizing the reconfiguration order in the applying, each network component of the network components comprising the distributed system is provided with a consistent view of an order of events in the distributed system.

2. The method of claim 1 , further comprising:

obtaining, by the one or more processors of the first controller, based on the applying the configurations relevant to the first portion of the network components to the first portion of the network components, current configuration and state information from the first portion of the network components.

3. The method of claim 1 , wherein the solver is a deterministic solver.

4. The method of claim 2 , wherein the obtaining current configuration and state information from the first portion of the network components comprises obtaining an equivalent sequence of random bits to the sequence of random bits obtained by the second controller.

5. The method of claim 1 , further comprising:

obtaining, by the one or more processors of the first controller, current configuration and state information from the first portion of the network components and at least one message from the logical bus; and

converging, based on the applying the configurations to the first portion of the network components concurrently with the second controller applying configurations relevant to the second portion of the network components to the second portion of the network components, the network components to a configuration satisfying the system requirement.

6. The method of claim 1 , wherein the solving comprises:

computing, by the one or more processors of the first controller, a current dynamic state of all components as a constraint; and

forming, by the one or more processors of the first controller, a conjunction of the constraint with the system requirement and solving the system requirement based on the conjunction.

7. The method of claim 1 , further comprising:

obtaining, by one or more processors of a first controller from the logical bus, a message indicating that the second controller is inoperable;

extracting, by the one or more processors of the first controller, configurations relevant to the second portion of the network components; and

applying, by the one or more processors of the first controller, the configurations to the second portion of the network components.

8. A computer program product comprising:

a non-transitory computer readable storage medium readable by one or more processors and storing instructions for execution by the one or more processors for performing a method comprising:

obtaining, by one or more processors of a first controller in a distributed network comprised of network components, concurrently with a second controller in the distributed network, a system requirement and a message from a logical bus, wherein the first controller and the second controller are communicatively coupled to the logical bus, and wherein the first controller is communicatively coupled to a first portion of the network components and the second controller is communicatively coupled to a second portion of the network components;

based on the message, solving, by the one or more processors of the first controller, concurrently with the second controller, the system requirement in a context of a current dynamic state of the network components, wherein the solving comprises applying a satisfiability modulo theories solver to generate new configurations of the network components, wherein the new configurations generated by the first controller are identical to the new configurations generated by the second controller;

extracting, by the one or more processors of the first controller, configurations relevant to the first portion of the network components from the new configurations generated by the first controller;

extracting, by one or more processors of the second controller, configurations relevant to the second portion of the network components from the new configurations generated by the second controller, wherein the message causes the first controller and the second controller to wait a given interval before applying the configurations; and

applying, after the given interval and utilizing the reconfiguration order, by the one or more processors of the first controller, the configurations relevant to the first portion of the network components to the first portion of the network components, wherein the applying comprises applying the configurations to the first portion of the network components concurrently with the second controller applying, after the given interval and utilizing the reconfiguration order, configurations relevant to the second portion of the network components to the second portion of the network components, and wherein based on utilizing the reconfiguration order in the applying, each network component of the network components comprising the distributed system is provided with a consistent view of an order of events in the distributed system.

9. The computer program product of claim 8 , the method further comprising:

obtaining, by the one or more processors of the first controller, based on the applying the configurations relevant to the first portion of the network components to the first portion of the network components, current configuration and state information from the first portion of the network components.

10. The computer program product of claim 8 , wherein the solver is a deterministic solver.

11. The computer program product of claim 9 , wherein the obtaining current configuration and state information from the first portion of the network components comprises obtaining an equivalent sequence of random bits to the sequence of random bits obtained by the second controller.

12. The computer program product of claim 8 further comprising:

obtaining, by the one or more processors of the first controller, current configuration and state information from the first portion of the network components and at least one message from the logical bus; and

converging, based on the applying the configurations to the first portion of the network components concurrently with the second controller applying configurations relevant to the second portion of the network components to the second portion of the network components, the network components to a configuration satisfying the system requirement.

13. The computer program product of claim 8 , wherein the solving comprises:

computing, by the one or more processors of the first controller, a current dynamic state of all components as a constraint; and

forming, by the one or more processors of the first controller, a conjunction of the constraint with the system requirement and solving the system requirement based on the conjunction.

14. A system comprising:

a memory;

one or more processors in a distributed network comprised of network components in communication with the memory, comprising one or more processors of a first controller and one or more processors of a second controller; and

program instructions executable by the one or more processors via the memory to perform a method, the method comprising:

obtaining, by the one or more processors of the first controller, concurrently with a second controller in the distributed network, a system requirement and a message from a logical bus, wherein the first controller and the second controller are communicatively coupled to the logical bus, and wherein the first controller is communicatively coupled to a first portion of the network components and the second controller is communicatively coupled to a second portion of the network components;

based on the message, solving, by the one or more processors of the first controller, concurrently with the second controller, the system requirement in a context of a current dynamic state of the network components, wherein the solving comprises applying a satisfiability modulo theories solver to generate new configurations of the network components, wherein the new configurations generated by the first controller are identical to the new configurations generated by the second controller;

extracting, by the one or more processors of the first controller, configurations relevant to the first portion of the network components from the new configurations generated by the first controller;

extracting, by the one or more processors of the second controller, configurations relevant to the second portion of the network components from the new configurations generated by the second controller, wherein the message causes the first controller and the second controller to wait a given interval before applying the configurations; and

applying, after the given interval and utilizing the reconfiguration order, by the one or more processors of the first controller, the configurations relevant to the first portion of the network components to the first portion of the network components, wherein the applying comprises applying the configurations to the first portion of the network components concurrently with the second controller applying, after the given interval and utilizing the reconfiguration order, configurations relevant to the second portion of the network components to the second portion of the network components, and wherein based on utilizing the reconfiguration order in the applying, each network component of the network components comprising the distributed system is provided with a consistent view of an order of events in the distributed system.

Assignments (4)
FIRST LIEN SECURITY AGREEMENT Recorded May 6, 2021
From: PERSPECTA LABS INC.; PERSPECTA ENGINEERING INC.; PERSPECTA SERVICES & SOLUTIONS INC.; KNIGHT POINT SYSTEMS, LLC; DHPC TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 056168/0001 →
SECOND LIEN SECURITY AGREEMENT Recorded May 6, 2021
From: PERSPECTA LABS INC.; PERSPECTA ENGINEERING INC.; PERSPECTA SERVICES & SOLUTIONS INC.; KNIGHT POINT SYSTEMS, LLC; DHPC TECHNOLOGIES, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 056168/0378 →
CHANGE OF NAME Recorded Jan 15, 2019
From: VENCORE LABS, INC.
To: PERSPECTA LABS INC.
Reel/Frame 048602/0956 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2016
From: NARAIN, SANJAI; COAN, BRIAN; KIRSCH, JON
To: VENCORE LABS, INC.
Reel/Frame 040280/0542 →
Continuity (2)
Provisional Application 62188354 · Jul 2, 2015
Related Publication 20170005870A1 · Jan 5, 2017