IP Library Granted Patent US 8,161,478
Granted Patent B2
US 8,161,478 · App. 12/118,697 · Granted Apr 17, 2012

Management of computer systems by using a hierarchy of autonomic management elements

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 8,161,478
App. No.
12/118,697
Granted
Apr 17, 2012
Kind
B2
Abstract

A method and system for managing a computing system by using a hierarchy of autonomic management elements are described. The autonomic management elements operate in a master-slave mode and negotiate a division of management responsibilities regarding various components of the computing system.

Claims (155)

1. A method for managing a computing system having hardware and software components, the method comprising:

arranging the hardware and software components of the computing system in a hierarchy of layers, comprising a lowest layer, a highest layer and one or more intermediate layers;

launching two or more autonomic management elements, each running in a different component of the computing system, comprising configuring said two or more autonomic management elements as masters or slaves depending on their respective positions in the hierarchy of layers, wherein a master controls management responsibilities of a slave;

negotiating a division of the management responsibilities between the two or more autonomic management elements, comprising:

for an autonomic management element:

determining a position of the layer in said hierarchy of layers occupied by a component in which the autonomic management element is running;

negotiating the division of the management responsibilities as a master with regard to autonomic management elements running in the components occupying layers above the layer occupied by the component in which the autonomic management element is running, comprising:

listening for a connection request from a slave for the autonomic management element;

assuming management responsibilities regarding the component in which the autonomic management element is running before arrival of the connection request;

communicating with the slave regarding the division of the management responsibilities after the arrival of the connection request; and

managing the hardware and software components of the computing system by the two or more autonomic management elements according to the division of the management responsibilities.

2. The method of claim 1 , wherein the launching further comprises:

configuring the autonomic management element running in the component occupying the lowest layer as the master for all other autonomic management elements;

configuring the autonomic management element running in the component occupying the highest layer as the slave for all other autonomic management elements; and

configuring the autonomic management element running in the component occupying the intermediate layer as the master for the autonomic management elements running in the components occupying layers above the intermediate layer, and as the slave for the autonomic management elements running in the components occupying layers below the intermediate layer.

3. The method of claim 1 , wherein the software components comprise an operating system or a hypervisor, one or more guest operating systems and software applications.

4. The method of claim 1 , wherein the communicating with the slave further comprises exchanging information including a unique token identifying a connection with the slave, the step being performed after the assuming the management responsibilities.

5. The method of claim 1 , further comprising maintaining a continuous communication between the master and the slave.

6. A method for managing a computing system having hardware and software components, the method comprising:

arranging the hardware and software components of the computing system in a hierarchy of layers, comprising a lowest layer, a highest layer and one or more intermediate layers;

launching two or more autonomic management elements, each running in a different component of the computing system, comprising configuring said two or more autonomic management elements as masters or slaves depending on their respective positions in the hierarchy of layers, wherein a master controls management responsibilities of a slave;

negotiating a division of the management responsibilities between the two or more autonomic management elements, comprising:

for an autonomic management element:

determining a position of the layer in said hierarchy of layers occupied by a component in which the autonomic management element is running;

negotiating the division of the management responsibilities as a slave with regard to autonomic management elements running in the components occupying layers below the layer occupied by the component in which the autonomic management element is running, comprising:

sending a connection request to a master for the autonomic management element;

assuming management responsibilities regarding the component in which the autonomic management element is running before the connection request is satisfied;

communicating with the master regarding the division of the management responsibilities after the connection request is satisfied; and

managing the hardware and software components of the computing system by the two or more autonomic management elements according to the division of the management responsibilities.

7. The method of claim 6 , wherein the launching further comprises:

configuring the autonomic management element running in the component occupying the lowest layer as the master for all other autonomic management elements;

configuring the autonomic management element running in the component occupying the highest layer as the slave for all other autonomic management elements; and

configuring the autonomic management element running in the component occupying the intermediate layer as the master for the autonomic management elements running in the components occupying layers above the intermediate layer, and as the slave for the autonomic management elements running in the components occupying layers below the intermediate layer.

8. The method of claim 6 , wherein the software components comprise an operating system or a hypervisor, one or more guest operating systems and software applications.

9. The method of claim 6 , wherein communicating with the master further comprises exchanging information including a unique token identifying a connection with the master, the step being performed after the assuming the management responsibilities.

10. The method of claim 6 , further comprising maintaining a continuous communication between the master and the slave.

11. A method for managing a computing system having components including a hardware platform, an operating system and a software application, the method comprising:

arranging the components of the computing system in a hierarchy of layers, in which the hardware platform occupies a first lowest layer, the operating system occupies a second layer, and the software application occupies a third highest layer;

launching two autonomic management elements, respectively running in the hardware platform and in the operating system, comprising configuring an autonomic management element as a master or a slave depending on a respective position of the autonomic management element in the hierarchy of layers, wherein the master controls management responsibilities of the slave;

negotiating a division of the management responsibilities between the two autonomic management elements, comprising:

for an autonomic management element:

determining a position of the layer in said hierarchy of layers occupied by a component, in which the autonomic management element is running;

negotiating the division of the management responsibilities as the master, comprising:

listening for a connection request from the slave for the autonomic management element;

assuming management responsibilities regarding the component in which the autonomic management element is running before arrival of the connection request;

communicating with the slave regarding the division of the management responsibilities after the arrival of the connection request; and

managing the components of the computing system by the two autonomic management elements according to the division of the management responsibilities.

12. The method of claim 11 , wherein the configuring further comprises:

configuring the autonomic management element running in the hardware platform as the master for the other autonomic management element; and

configuring the autonomic management element running in the operating system as the slave for the other autonomic management element.

13. The method of claim 11 , wherein:

the operating system comprises a hypervisor;

the computing system further comprises a guest operating system occupying yet another layer between the second layer and the third layer, said yet another layer comprising yet another autonomic management element running in the guest operating system.

14. The method of claim 13 , wherein the configuring further comprises:

configuring the autonomic management element running in the hardware platform as the master for all other autonomic management elements;

configuring said yet another autonomic management element running in the guest operating system as the slave for all other autonomic management elements; and

configuring the autonomic management element running in the hypervisor as the master for the autonomic management element running in the guest operating system and as the slave for the autonomic management element running in the hardware platform.

15. The method of claim 11 , further comprising maintaining a continuous communication between the master and the slave.

16. A method for managing a computing system having components including a hardware platform, an operating system and a software application, the method comprising:

arranging the components of the computing system in a hierarchy of layers, in which the hardware platform occupies a first lowest layer, the operating system occupies a second layer, and the software application occupies a third highest layer;

launching two autonomic management elements, respectively running in the hardware platform, and in the operating system, comprising configuring an autonomic management element as a master or a slave depending on a respective position of the autonomic management element in the hierarchy of layers, wherein the master controls management responsibilities of the slave;

negotiating a division of the management responsibilities between the two autonomic management elements regarding selected components of the computing system, comprising:

for an autonomic element:

determining a position of the layer in said hierarchy of layers occupied by the component, in which the autonomic management element is running;

negotiating the division of the management responsibilities as the slave, comprising:

sending a connection request to the master for the autonomic management element;

assuming management responsibilities regarding the component in which the autonomic management element is running before the connection request is satisfied;

communicating with the master regarding the division of the management responsibilities after the connection request is satisfied; and

managing the components of the computing system by the two autonomic management elements according to the division of the management responsibilities.

17. The method of claim 16 , wherein the configuring further comprises:

configuring the autonomic management element running in the hardware platform as the master for the other autonomic management element; and

configuring the autonomic management element running in the operating system as the slave for the other autonomic management element.

18. The method of claim 16 , wherein:

the operating system comprises a hypervisor;

the computing system further comprises a guest operating system occupying yet another layer between the second layer and the third layer, said yet another layer comprising yet another autonomic management element running in the guest operating system.

19. The method of claim 18 , wherein the configuring further comprises:

configuring the autonomic management element running in the hardware platform as the master for all other autonomic management elements;

configuring said yet another autonomic management element running in the guest operating system as the slave for all other autonomic management elements; and

configuring the autonomic management element running in the hypervisor as the master for the autonomic management element running in the guest operating system and as the slave for the autonomic management element running in the hardware platform.

20. The method of claim 16 , further comprising maintaining a continuous communication between the master and the slave.

21. A system for managing a computing system having hardware and software components arranged in a hierarchy of layers including a lowest layer, a highest layer and one or more intermediate layers, the system comprising:

a non-transitory computer-readable storage medium, having computer-readable instructions stored thereon for execution by a processor, forming:

two or more autonomic management elements, each autonomic management element being configured to run in a different component of the computing system, each autonomic management element comprising:

a Platform Mediation Service module, determining a position of a layer in said hierarchy of layers occupied by a component in which the autonomic management element is running, for configuring the autonomic management element as a master or a slave depending on a respective position of the autonomic management element in the hierarchy of layers, wherein the master controls management responsibilities of the slave;

a Mediation Service module negotiating a division of the management responsibilities between masters and slaves, comprising:

a Persistent Data Storage module storing information regarding the masters and the slaves;

an Auto-Discovery module connecting the slave to the master;

a Command Processor module processing commands from the master and the slave communicating with each other;

a Communication Protocols module supporting communication between the master and the slave;

a Registration Service module controlling access to registration information including contact information for masters and slaves for the autonomic management element;

a Configuration Service module providing resource configuration information including location of the autonomic management elements; and

a Delegation Service module providing information regarding the division of the management responsibilities between the masters and the slaves.

22. The system of claim 21 , further comprising a Heartbeat Module maintaining a continuous communication between the master and the slave.

23. A system for managing a computing system having components including a hardware platform, a hypervisor, a guest operating system and a software application, arranged in a hierarchy of layers, in which the hardware platform occupies a first lowest layer, the hypervisor occupies a second layer, the guest operating system occupies a third layer and the application occupies a fourth highest layer, the system comprising:

a non-transitory computer-readable storage medium, having computer-readable instructions stored thereon for execution by a processor, forming:

three autonomic management elements, respectively configured to run in the hardware platform, in the hypervisor and in the guest operating system, each autonomic management element comprising:

a Platform Mediation Service module, determining a position of a layer in said hierarchy of layers occupied by a component in which the autonomic management element is running, for configuring the autonomic management element as a master or a slave depending on a respective position of the autonomic management element in the hierarchy of layers, wherein the master controls management responsibilities of the slave;

a Mediation Service module negotiating a division of the management responsibilities between masters and slaves, comprising:

a Persistent Data Storage module storing information regarding the masters and the slaves;

an Auto-Discovery module connecting the slave to the master;

a Command Processor module processing commands from the master and the slave communicating with each other;

a Communication Protocols module supporting communication between the master and the slave;

a Registration Service module controlling access to registration information including contact information for masters and slaves for the autonomic management element;

a Configuration Service module providing resource configuration information including location of the autonomic management elements; and

a Delegation Service module providing information regarding the division of the management responsibilities between the masters and the slaves.

24. A system of claim 23 , further comprising a Heartbeat Module maintaining a continuous communication between the master and the slave.

25. A system for managing a computing system having hardware and software components, comprising:

a non-transitory computer-readable storage medium, having computer-readable instructions stored thereon for execution by a processor, causing the processor to:

arrange the hardware and software components of the computing system in a hierarchy of layers, comprising a lowest layer, a highest layer and one or more intermediate layers;

launch two or more autonomic management elements, each running in a different component of the computing system, comprising configuring the autonomic management elements as masters or slaves depending on their respective positions in the hierarchy of layers, wherein a master controls management responsibilities of a slave;

negotiate a division of the management responsibilities between the two or more autonomic management elements, comprising:

for an autonomic element:

determining a position of the layer in said hierarchy of layers occupied by a component in which the autonomic management element is running;

negotiating the division of the management responsibilities as a master with regard to the autonomic management elements running in the components occupying layers above the layer occupied by the component in which the autonomic management element is running, comprising:

listening for a connection request from a slave for the autonomic management element;

assuming management responsibilities regarding the component in which the autonomic management element is running before arrival of the connection request;

communicating with the slave regarding the division of the management responsibilities after the arrival of the connection request; and

manage the hardware and software components of the computing system by the two or more autonomic management elements according to the division of the management responsibilities.

26. The system of claim 25 , wherein the computer-readable instructions further cause the processor to:

configure the autonomic management element running in the component occupying the lowest layer as the master for all other autonomic management elements;

configure the autonomic management element running in the component occupying the highest layer as the slave for all other autonomic management elements; and

configure the autonomic management element running in the component occupying the intermediate layer as the master for the autonomic management elements running in the components occupying layers above the intermediate layer, and as the slave for the autonomic management elements running in the components occupying layers below the intermediate layer.

27. The system of claim 25 , wherein the software components comprise an operating system or a hypervisor, one or more guest operating systems and software applications.

28. The system of claim 25 , wherein the computer-readable instructions further cause the processor to exchange information including a unique token identifying a connection with the slave after the assuming the management responsibilities.

29. The system of claim 25 , wherein the computer-readable instructions further cause the processor to maintain a continuous communication between the master and the slave.

30. A system for managing a computing system having hardware and software components, comprising:

a non-transitory computer-readable storage medium, having computer-readable instructions stored thereon for execution by a processor, causing the processor to:

arrange the hardware and software components of the computing system in a hierarchy of layers, comprising a lowest layer, a highest layer and one or more intermediate layers;

launch two or more autonomic management elements, each being configured to run in a different component of the computing system, comprising configuring the autonomic management elements as masters or slaves depending on their respective positions in the hierarchy of layers, wherein a master controls management responsibilities of a slave;

negotiate a division of the management responsibilities between the two or more autonomic management elements, comprising:

for an autonomic element:

determining a position of the layer in said hierarchy of layers occupied by a component in which the autonomic management element is running;

negotiating the division of the management responsibilities as a slave with regard to autonomic management elements running in the components occupying layers below the layer occupied by the component in which the autonomic management element is running, comprising:

sending a connection request to a master for the autonomic management element;

assuming management responsibilities regarding the component in which the autonomic management element is running before the connection request is satisfied;

communicating with the master for the autonomic management element regarding the division of the management responsibilities after the connection request is satisfied; and

manage the hardware and software components of the computing system by the two or more autonomic management elements according to the division of the management responsibilities.

31. The system of claim 30 , wherein the computer-readable instructions further cause the processor to:

configure the autonomic management element running in the component occupying the lowest layer as the master for all other autonomic management elements;

configure the autonomic management element running in the component occupying the highest layer as the slave for all other autonomic management elements; and

configure the autonomic management element running in the component occupying the intermediate layer as the master for the autonomic management elements running in the components occupying layers above the intermediate layer, and as the slave for the autonomic management elements running in the components occupying layers below the intermediate layer.

32. The system of claim 30 , wherein the software components comprise an operating system or a hypervisor, one or more guest operating systems and software applications.

33. The system of claim 30 , wherein the computer-readable instructions further cause the processor to exchange information including a unique token identifying a connection with the master after the assuming the management responsibilities.

34. A system for managing a computing system having components including a hardware platform, an operating system and a software application, comprising:

a non-transitory computer-readable storage medium, having computer-readable instructions stored thereon for execution by a processor, causing the processor to:

arrange the components of the computing system in a hierarchy of layers, in which the hardware platform occupies a first lowest layer, the operating system occupies a second layer, and the software application occupies a third highest layer;

launch two autonomic management elements, configured to run in the hardware platform and in the operating system respectively, comprising configuring an autonomic management element as a master or a slave depending on a respective position of the autonomic management element in the hierarchy of layers;

negotiate a division of the management responsibilities between the two autonomic management elements, comprising:

for an autonomic element:

determining a position of the layer in said hierarchy of layers occupied by the component, in which the autonomic management element is running;

negotiating the division of the management responsibilities as the master, comprising:

listening for a connection request from the slave for the autonomic management element;

assuming management responsibilities regarding the component in which the autonomic management element is running before arrival of the connection request;

communicating with the slave regarding the division of the management responsibilities after the arrival of the connection request; and

manage the components of the computing system by the two autonomic management elements according to the division of the management responsibilities.

Assignments (18)
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS - REEL/FRAME 066615-0824 Recorded Aug 22, 2025
From: JEFFERIES FINANCE LLC
To: SNOW SOFTWARE, INC.
Reel/Frame 072527/0879 →
MERGER Recorded Nov 22, 2024
From: SNOW SOFTWARE US, INC.
To: FLEXERA SOFTWARE LLC
Reel/Frame 069373/0957 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Apr 18, 2024
From: JEFFERIES FINANCE LLC
To: SNOW SOFTWARE, INC.
Reel/Frame 067165/0214 →
PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Feb 16, 2024
From: SNOW SOFTWARE, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 066615/0824 →
PATENT SECURITY AGREEMENT (SECOND LIEN) Recorded Feb 16, 2024
From: SNOW SOFTWARE, INC.
To: JEFFERIES FINANCE LLC, AS SECOND LIEN COLLATERAL AGENT
Reel/Frame 066619/0340 →
RELEASE OF SECURITY INTEREST Recorded Feb 15, 2024
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: SNOW SOFTWARE, INC.
Reel/Frame 066471/0027 →
RELEASE OF SECURITY INTEREST Recorded Jul 8, 2021
From: OBSIDIAN AGENCY SERVICES, INC.
To: EMBOTICS CORPORATION
Reel/Frame 056792/0547 →
PATENT SECURITY AGREEMENT Recorded Jul 7, 2021
From: SNOW SOFTWARE, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 056784/0335 →
CHANGE OF NAME Recorded Jul 2, 2021
From: EMBOTICS CORPORATION
To: EMBOTICS ULC
Reel/Frame 056745/0413 →
AMALGAMATION Recorded Jul 2, 2021
From: EMBOTICS CORPORATION; KEYSTRIKE CANADA INC.
To: EMBOTICS CORPORATION
Reel/Frame 056756/0440 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2021
From: EMBOTICS ULC
To: SNOW SOFTWARE, INC.
Reel/Frame 056746/0317 →
SECURITY INTEREST Recorded Dec 12, 2019
From: EMBOTICS CORPORATION
To: OBSIDIAN AGENCY SERVICES, INC., AS COLLATERAL AGENT
Reel/Frame 051262/0731 →
CHANGE OF NAME Recorded Dec 11, 2019
From: 1229377 B.C. LTD
To: EMBOTICS CORPORATION
Reel/Frame 051256/0529 →
RELEASE OF SECURITY INTEREST Recorded Dec 11, 2019
From: CANADIAN IMPERIAL BANK OF COMMERCE
To: EMBOTICS CORPORATION
Reel/Frame 051247/0045 →
MERGER AND CHANGE OF NAME Recorded Dec 11, 2019
From: EMBOTICS CORPORATION; 1229377 B.C. LTD.
To: 1229377 B.C. LTD
Reel/Frame 051256/0371 →
SECURITY INTEREST Recorded Dec 12, 2018
From: EMBOTICS CORPORATION
To: CANADIAN IMPERIAL BANK OF COMMERCE
Reel/Frame 047750/0272 →
CHANGE OF ADDRESS Recorded Jan 19, 2017
From: EMBOTICS CORPORATION
To: EMBOTICS CORPORATION
Reel/Frame 041420/0583 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR ADDRESS PREVIOUSLY RECORDED ON REEL 025711 FRAME 0741. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECTION OF THE ASSIGNOR ADDRESS FROM "511 LEGGET DRIVE" TO "411 LEGGET DRIVE". Recorded Jul 30, 2012
From: EMBOTICS CORPORATION
To: EMBOTICS CORPORATION
Reel/Frame 028680/0752 →