IP Library › Granted Patent US 10,291,462
Granted Patent B1
US 10,291,462 · App. 15/397,331 · Granted May 14, 2019

Annotations for intelligent data replication and call routing in a hierarchical distributed system

Inventors: Roshan Joyce (Bangalore, IN); Tong Jiang (Fremont, CA)
Assignee: Juniper Networks, Inc.
H04L41/042H04L41/046H04L41/14H04L41/20H04L67/02H04L67/1095H04L41/044
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,291,462
App. No.
15/397,331
Granted
May 14, 2019
Kind
B1
Abstract

In general, techniques are described for providing data consistency for managed device data among network managers in a hierarchical and distributed network management system in which the network managers operate according to a microservices-based software architecture. For example, a method comprises receiving a data model for a network device, wherein the data model comprises an object and an annotation that indicates a type of scope for the object; and processing, based on the object and annotation, the data model to generate application code for a microservice application for a network manager for managing instances of the network device, wherein the application code, when compiled, and executed by the network manager, causes the network manager to replicate data associated with the object to one or more of a plurality of network managers of a distributed network managed system.

Claims (43)

1. A method comprising:

receiving, by a computing device, a data model for a network device, wherein the data model comprises an object and an annotation that indicates a type of scope for the object; and

processing, by the computing device based at least on the object and annotation, the data model to generate application code for a microservice application for a network manager for managing instances of the network device, wherein the application code, when compiled, and executed by the network manager, causes the network manager to replicate data associated with the object to one or more of a plurality of network managers of a distributed network management system for managing a network that includes at least one instance of the network device.

2. The method of claim 1 , wherein the annotation comprises at least one of an all-regions annotation, a central-and-one-region annotation, and a central-and-all-regions annotation.

3. The method of claim 1 , wherein the annotation comprises at least one of a strong-consistency annotation and an eventual-consistency annotation.

4. The method of claim 1 , wherein processing the data model to generate application code comprises generating server-side code that causes the network manager to invoke one or more application programming interface (API) calls including at least one of a create API, a read API, an update API, and a delete API for the data model.

5. The method of claim 1 , wherein processing the data model to generate application code comprises generating a client-side library that causes the network manager to invoke a method API on one or more of the plurality of network managers.

6. A method comprising:

receiving, by a microservice of a first network manager of a plurality of network managers of a distributed network management system for managing a network that includes at least one instance of a network device, a request for an object of a data model for the network device and stored by the first network manager, wherein the data model comprises the object and an annotation that indicates a type of scope for the object;

applying, by the microservice, an operation indicated by the request to the object;

replicating, by the microservice based at least in part on instructions generated based on the annotation, data associated with the object to a second network manager of the plurality of network managers to cause the second network manager to apply the operation to an object stored by the second network manager.

7. The method of claim 6 , wherein replicating data associated with the object comprises:

determining, by the first network manager and based on an attribute of the instance of the network device, a corresponding microservice application of the second network manager; and

invoking, by the first network manager, one or more application programming interface (API) calls for the corresponding microservice application.

8. The method of claim 6 , wherein replicating data associated with the object comprises:

if the annotation comprises the strong-consistency annotation, atomically replicating, by the first network manager, data associated with the object to the second network manager.

9. The method of claim 6 , wherein replicating data associated with the object comprises:

if the annotation comprises the eventual-consistency annotation, asynchronously replicating, by the first network manager, data associated with the object to the second network manager.

10. The method of claim 6 , wherein the request comprises an HyperText Transfer Protocol (HTTP) request.

11. The method of claim 6 , wherein the request comprises a request to one of create, read, update, and delete the object.

12. A computing device comprising:

one or more hardware-based processors, implemented using discrete logic circuitry, configured to:

receive a data model for a network device, wherein the data model comprises an object and an annotation that indicates a type of scope for the object; and

process, based at least on the object and annotation, the data model to generate application code for a microservice application for a network manager for managing instances of the network device, wherein the application code, when compiled, and executed by the network manager, causes the network manager to replicate data associated with the object to one or more of a plurality of network managers of a distributed network management system for managing a network that includes at least one instance of the network device.

13. The computing device of claim 12 , wherein the annotation comprises at least one of a central-only annotation, a one-region-only annotation, an all-regions annotation, a central-and-one-region annotation, and a central-and-all-regions annotation.

14. The computing device of claim 12 , wherein the annotation comprises at least one of a strong-consistency annotation and an eventual-consistency annotation.

15. The computing device of claim 12 , wherein, to process the data model to generate application code, the one or more hardware-based processors are configured to:

generate a server-side code that causes the network manager to invoke one or more application programming interface (API) calls including at least one of a create API, a read API, an update API, and a delete API for the data model.

16. The computing device of claim 12 , wherein, to process the data model to generate application code, the one or more hardware-based processors are configured to:

generate a client-side library that causes the network manager to invoke a method API on one or more of the plurality of network managers.

17. A computing device comprising a first network manager, the computing device comprising:

one or more hardware-based processors, implemented using discrete logic circuitry, configured to:

receive, by a microservice of the first network manager of a plurality of network managers of a distributed network management system for managing a network that includes at least one instance of a network device, a request for an object of a data model for the network device and stored by the first network manager, wherein the data model comprises the object and an annotation that indicates a type of scope for the object;

apply, by the microservice, an operation indicated by the request to the object;

replicate, by the microservice based at least in part on instructions generated based on the annotation, data associated with the object to a second network manager of the plurality of network managers to cause the second network manager to apply the operation to an object stored by the second network manager.

18. The computing device of claim 17 , wherein, to replicate the data, the one or more hardware-based processors are configured to:

determine, based on an attribute of the instance of the network device, a corresponding microservice application of the second network manager; and

invoke one or more application programming interface (API) calls for the corresponding microservice application.

19. The computing device of claim 17 , the one or more hardware-based processors further configured to:

if the annotation comprises the strong-consistency annotation, atomically replicate data associated with the object to the second network manager.

20. The computing device of claim 17 , the one or more hardware-based processors further configured to:

if the annotation comprises the eventual-consistency annotation, asynchronously replicate data associated with the object to the second network manager.

21. The computing device of claim 17 , wherein the request comprises an HyperText Transfer Protocol (HTTP) request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2017
From: JOYCE, ROSHAN; JIANG, TONG
To: JUNIPER NETWORKS, INC.
Reel/Frame 040829/0048 →
Cited By (3)
US 12,199,866 US 12,225,093 US 12,341,695