IP Library Granted Patent US 9,792,163
Granted Patent B1
US 9,792,163 · App. 15/195,503 · Granted Oct 17, 2017

Decentralized control plane for a computing system

Inventors: Georgios Chrysanthakopoulos (Seattle, WA); Pieter Noordhuis (Menlo Park, CA)
Assignee: VMware, Inc.
G06F9/541G06F9/4843
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 9,792,163
App. No.
15/195,503
Filed
Jun 28, 2016
Granted
Oct 17, 2017
Kind
B1
Examiner
RONI, SYED A
Art Unit
2194
USPC
719/328
Abstract

A method of implementing a control plane for services in a computer system includes: executing a service host process on a software platform of a host computer, the service host process including a framework that provides a plurality of functionalities; creating a service instance as an object in the service host process based on a specification of a service, the service instance including a representational state transfer (REST) application programming interface (API), the specification defining declared options for the service; selectively enabling one or more of the plurality of functionalities provided by the framework for use by the service instance based on the declared options for the service; and processing requests for the service through the REST API of the service instance, the service instance using one or more of the enabled functionalities provided by the framework in response to the requests.

Claims (39)

1. A method of implementing a control plane for services in a computer system, comprising:

executing a service host process on a software platform of a host computer, the service host process including a framework that provides a plurality of functionalities;

creating a service instance as an object in the service host process based on a specification of a service, the service instance including a representational state transfer (REST) application programming interface (API), the specification defining declared options for the service;

selectively enabling one or more of the plurality of functionalities provided by the framework for use by the service instance based on the declared options for the service; and

processing requests for the service through the REST API of the service instance, the service instance using one or more of the enabled functionalities provided by the framework in response to the requests.

2. The method of claim 1 , wherein the framework includes a pool of threads, and wherein the step of processing the requests includes scheduling handlers for the service instance to execute in the pool of threads.

3. The method of claim 2 , wherein a handler of the handlers inherits a functionality of the plurality of functionalities provided by the framework.

4. The method of claim 2 , wherein a handler of the handlers includes a functionality specified in the specification for the service.

5. The method of claim 1 , wherein the plurality of functionalities provided by the framework include at least one of persistence of state of the service, replication of the state of the service, and consensus and leader election during replication.

6. The method of claim 1 , wherein the framework manages a document store, the declared options include a persistence option, and an enabled functionality provided by the framework for use by the service instance includes a document in the document store that stores a state of the service.

7. The method of claim 6 , wherein the document includes a plurality of versions of the state of the service.

8. The method of claim 1 , wherein the service instance uses the one or more enabled functionalities provided by the framework through asynchronous operations.

9. The method of claim 1 , wherein the service instance includes a runtime context, and wherein the method further comprises:

pausing the service instance and paging out the runtime context from system memory of the host computer to persistent storage of the host computer; and

resuming the service instance and restoring the runtime context to the system memory from the persistent storage.

10. The method of claim 1 , wherein the framework includes a plurality of core service instances implementing a plurality of core services, each of the plurality of core service instances providing one or more of the plurality of functionalities provided by the framework.

11. The method of claim 1 , wherein the framework creates a plurality of utility service instances implementing a plurality of utility services for the service.

12. A computer system, comprising:

a hardware platform having a processor and memory;

a software platform executing on the hardware platform;

a service host process executing within the software platform, the service host process including a framework that provides a plurality of functionalities, the service host process configured to:

create a service instance as an object in the service host process based on a specification of a service, the service instance including a representational state transfer (REST) application programming interface (API), the specification defining declared options for the service;

selectively enable one or more of the plurality of functionalities provided by the framework for use by the service instance based on the declared options for the service; and

process requests for the service through the REST API of the service instance, the service instance using one or more of the enabled functionalities provided by the framework in response to the requests.

13. The computer system of claim 12 , wherein the framework includes a pool of threads, and wherein the service host process is configured to schedule handlers for the service instance to execute in the pool of threads.

14. The computer system of claim 13 , wherein a handler of the handlers inherits a functionality of the plurality of functionalities provided by the framework.

15. The computer system of claim 13 , wherein a handler of the handlers includes a functionality specified in the specification for the service.

16. The computer system of claim 12 , wherein the plurality of functionalities provided by the framework include at least one of persistence of state of the service, replication of the state of the service, and consensus and leader election during replication.

17. The computer system of claim 12 , wherein the framework manages a document store, the declared options include a persistence option, and an enabled functionality provided by the framework for use by the service instance includes a document in the document store that stores a state of the service.

18. The computer system of claim 17 , wherein the document includes a plurality of versions of the state of the service.

19. The computer system of claim 12 , wherein the framework includes a plurality of core service instances implementing a plurality of core services, each of the plurality of core service instances providing one or more of the plurality of functionalities provided by the framework.

20. The computer system of claim 12 , wherein the service instance includes a runtime context, and wherein the service host process is configured to:

pause the service instance and page out the runtime context from the memory to persistent storage; and

resume the service instance and restore the runtime context to the memory from the persistent storage.

21. A non-transitory computer readable medium comprising instructions, which when executed in a computer system, causes the computer system to carry out a method of implementing a control plane for services in a computer system, comprising:

executing a service host process on a software platform of a host computer, the service host process including a framework that provides a plurality of functionalities;

creating a service instance as an object in the service host process based on a specification of a service, the service instance including a representational state transfer (REST) application programming interface (API), the specification defining declared options for the service;

selectively enabling one or more of the plurality of functionalities provided by the framework for use by the service instance based on the declared options for the service; and

processing requests for the service through the REST API of the service instance, the service instance using one or more of the enabled functionalities provided by the framework in response to the requests.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2017
From: CHRYSANTHAKOPOULOS, GEORGIOS; NOORDHUIS, PIETER
To: VMWARE, INC.
Reel/Frame 041106/0981 →
Continuity (1)
Provisional Application 62355541 · Jun 28, 2016