IP Library Granted Patent US 9,794,110
Granted Patent B2
US 9,794,110 · App. 14/802,507 · Granted Oct 17, 2017

Method and system for simplifying distributed server management

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,794,110
App. No.
14/802,507
Granted
Oct 17, 2017
Kind
B2
Abstract

A method and system for managing a large number of servers and their server components distributed throughout a heterogeneous computing environment is provided. In one embodiment, an authenticated user, such as a IT system administrator, can securely and simultaneously control and configure multiple servers, supporting different operating systems, through a “virtual server.” A virtual server is an abstract model representing a collection of actual target servers. To represent multiple physical servers as one virtual server, abstract system calls that extend execution of operating-system-specific system calls to multiple servers, regardless of their supported operating systems, are used. A virtual server is implemented by a virtual server client and a collection of virtual server agents associated with a collection of actual servers.

Claims (66)

1. A method comprising:

initiating a system command from a graphical user interface of a virtual server management system interacting with a virtual server client and a plurality of virtual server agents, each virtual server agent running on a respective server;

translating the system command to an abstract system command that requests a service from an operating system of at least one of the plurality of servers;

receiving the abstract system command at the virtual server client; and

instantiating the abstract system command by:

identifying, by the virtual server client, a target server to receive the abstract system command and a corresponding virtual server agent associated with the target server,

transmitting the abstract system command to the virtual server agent for the identified target server for translation of the abstract system command into an operating-system-specific system command for execution on the target server,

executing the operating-system-specific system command under permissions determined as a function of the target server, and

receiving execution results from the virtual server agent.

2. The method of claim 1 , wherein instantiating the abstract system command under permissions determined as a function of the target server includes:

mapping a user identity for a user of the graphical user interface to an associated local user identity for the target server; and

executing the operating-system-specific system command using the local user identity on the target server.

3. The method of claim 2 , wherein instantiating the abstract system command further includes authorizing the abstract system command for the local user identity based on at least one of a role-based access control model and an access control list.

4. The method of claim 2 , wherein the mapping occurs as a function of the user identity, the target server, and a role associated with the user identity.

5. The method of claim 1 , wherein the target server is a first target server, the virtual server agent is a first virtual server agent, and the operating-system-specific command is a first operating-system-specific command and instantiating the abstract system command further includes:

identifying a second target server to receive the abstract system command and a corresponding second virtual server agent associated with the second target server;

transmitting the abstract system command to the corresponding second virtual server agent, the abstract system command being translated into second operating-system-specific commands appropriate for the second target server; and

receiving execution results from the first virtual server agent and from the second virtual server agent.

6. The method of claim 5 , wherein permissions used to execute the first operating-system: specific commands and the second operating-system: specific commands differ between the first target server and the second target server.

7. The method of claim 5 , wherein the first target server and the second target server have different operating systems.

8. A system comprising:

a plurality of servers, each server running a respective virtual server agent;

a virtual server management system interacting with a virtual server client, the virtual server management system initiating a system command from a graphical user interface and translating the system command to an abstract system command that requests a service from an operating system of at least one of the plurality of servers; and

a server running the virtual server client, the virtual server client being configured to:

receive the abstract system command, and

instantiate the abstract system command by:

identifying a target server to receive the abstract system command and a corresponding virtual server agent associated with the target server,

transmitting the abstract system command to the virtual server agent for the identified target server for translation of the abstract system command into an operating-system-specific system command for execution on the target server, and

receiving execution results from the virtual server agent,

wherein the operating-system-specific system command is executed on the target server under permissions determined as a function of the target server.

9. The system of claim 8 , wherein the system command is a first abstract system command and the virtual server client is further configured to:

receive a second abstract system command; and

aggregate the first abstract system command and the second abstract system command

into a high-level abstract system command.

10. The system of claim 8 , wherein the virtual server client is implemented by a network-aware code library.

11. The system of claim 8 , wherein identifying the target server includes identifying a target virtual server agent running on the target server to receive the abstract system command in response to a server identifier included in the abstract system command.

12. The system of claim 8 , wherein the target server is a first target server, the virtual server agent is a first virtual server agent, and the operating-system-specific command is a first operating-system-specific command and the virtual server client is further configured to instantiate the abstract system command by:

identifying a second target server to receive the abstract system command and a corresponding second virtual server agent associated with the second target server;

transmitting the abstract system command to the corresponding second virtual server agent, the abstract system command being translated into a second operating-system-specific command appropriate for the second target server; and

receiving execution results from the first virtual server agent and from the second virtual server agent.

13. The system of claim 12 , wherein permissions used to execute the first operating-system-specific command and the second operating-system-specific command differ between the first target server and the second target server.

14. The system of claim 8 , wherein at least two of the plurality of servers have different operating systems.

15. The system of claim 8 , wherein prior to transmitting the abstract system command, the virtual server client is further configured to specify at least one of priority of the abstract system command on the target server, CPU utilization of the abstract system command on the target server, and memory utilization of the abstract system command on the target server.

16. The system of claim 8 , wherein executing the operating-system-specific system command under permissions determined as a function of the target server includes:

mapping a user identity for a user of the graphical user interface to an associated local user identity for the target server; and

executing the operating-system-specific system command using the local user identity on the target server.

17. The method of claim 1 , wherein prior to transmitting the abstract system command, the method further comprises specifying at least one of priority of the abstract system command on the target server, CPU utilization of the abstract system command on the target server, and memory utilization of the abstract system command on the target server.

18. A virtual server comprising:

a virtual server management system;

a virtual server client; and

a plurality of servers each running a virtual server agent,

the virtual server management system including instructions that, when executed by at least one processor, cause the virtual server management system to perform operations including:

receiving, from a graphical user interface, a system command that requests a service from an operating system of at least one of the plurality of servers, and

translating the system command to an abstract system command; and

the virtual server client including instructions that, when executed by at least one processor cause the virtual server client to perform operations including:

receiving the abstract system command; and

instantiating the abstract system command by:

identifying a target server to receive the abstract system command and a corresponding virtual server agent associated with the target server,

transmitting the abstract system command to the virtual server agent for the identified target server for translation of the abstract system command into an operating-system-specific system command for execution on the target server,

executing the operating-system-specific system command under permissions determined as a function of the target server,

receiving execution results from the virtual server agent, and

providing the execution results to the virtual server management system.

19. The system of claim 18 , wherein executing the operating-system-specific system command under permissions determined as a function of the target server includes:

mapping a user identity for a user of the graphical user interface to an associated local user identity for the target server; and

executing the operating-system-specific system command using the local user identity on the target server.

20. The system of claim 18 , wherein prior to transmitting the abstract system command, the operations further include specifying at least one of priority of the abstract system command on the target server, CPU utilization of the abstract system command on the target server, and memory utilization of the abstract system command on the target server.

Assignments (12)
CHANGE OF NAME Recorded Jan 10, 2025
From: BLADELOGIC, INC.
To: BMC HELIX, INC.
Reel/Frame 069870/0796 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0189 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2015
From: KRAUS, THOMAS M.; MANWANI, VIJAY G.; MUDDANA, SEKHAR
To: BLADELOGIC, INC.
Reel/Frame 036118/0533 →