Method and system for simplifying distributed server management
First Claim
1. A method for receiving and executing a system call from a software application program on one of a plurality of servers, the method comprising the steps of:
- (a) providing a representation of a plurality of servers as a single virtual server, the representation of the single virtual server implemented by a virtual server client and a plurality of virtual server agents each running on a respective one of the plurality of servers;
(b) receiving, by the virtual server client, an abstract system call from a software application program; and
(c) instantiating in a thread-safe manner the abstract system call by;
identifying, by the virtual server client, a target server to receive the abstract system call, and identifying a corresponding virtual server agent associated with the target server;
transmitting the abstract system call to the identified agent for execution on the target server; and
receiving execution results from the agent.
9 Assignments
0 Petitions
Accused Products
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.
245 Citations
65 Claims
-
1. A method for receiving and executing a system call from a software application program on one of a plurality of servers, the method comprising the steps of:
-
(a) providing a representation of a plurality of servers as a single virtual server, the representation of the single virtual server implemented by a virtual server client and a plurality of virtual server agents each running on a respective one of the plurality of servers;
(b) receiving, by the virtual server client, an abstract system call from a software application program; and
(c) instantiating in a thread-safe manner the abstract system call by;
identifying, by the virtual server client, a target server to receive the abstract system call, and identifying a corresponding virtual server agent associated with the target server;
transmitting the abstract system call to the identified agent for execution on the target server; and
receiving execution results from the agent. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A virtual server, having a virtual server client and a virtual server agent, for representing a plurality of servers as an abstract model, wherein the virtual server comprises,
(a) a virtual server client receiver for receiving an abstract system call from a software application program; -
(b) a virtual server client instantiator, in communication with the virtual server client receiver, for instantiating the abstract system call in a thread-safe manner;
(c) a virtual server client transmitter, in communication with the virtual server client instantiator, for transmitting the abstract system call;
(d) a virtual server agent receiver for receiving the abstract system call from the virtual server client transmitter;
(e) a virtual server agent translator for translating the abstract system call to an operating system specific system call; and
(f) a target server executor for executing the operating system specific system call on a target server associated with the virtual server agent in a thread-safe manner. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A method for securely executing a system call on a remote computer, the method comprising the steps of:
-
(a) receiving, by a virtual server client running on a first computer, an abstract system call from an application called by an authenticated user;
(b) instantiating in a thread-safe manner the abstract system call by;
identifying, by the virtual server client, a virtual server agent running on a remote computer to receive the abstract system call;
(c) encrypting, by the virtual server client, the abstract system call;
(d) communicating the encrypted abstract system call to the virtual server agent;
(e) identifying, by the virtual server agent, the first computer and the authenticated user (f) decrypting, by the virtual server agent, the encrypted abstract system call;
(g) mapping the authenticated user to a local user on the remote computer;
(h) impersonating the authenticated user as the local user on the remote computer;
(i) authorizing the decrypted abstract system call for the local user based on at least one of role-based access control model and access control lists;
(j) translating the abstract system call to an operating system specific system call; and
(k) executing as the local user, by the virtual server agent, the operating system specific system call on the remote computer. - View Dependent Claims (49, 50, 51, 52, 53, 54, 55, 56)
-
-
57. A virtual server for securely executing a system call on a remote computer, the virtual server comprising:
-
(a) a virtual server client receiver running on a first computer for receiving an abstract system call from an application called by an authenticated user;
(b) a virtual server client instantiator, in communication with the virtual server client receiver, for instantiating the abstract system call in a thread-safe manner by identifying a virtual server agent running on a remote computer to receive the first abstract system call;
(c) a virtual server client encryptor, in communication with the virtual server client instantiator, for encrypting the abstract system call;
(d) a virtual server client transmitter for communicating the encrypted abstract system call to the virtual server agent;
(e) a virtual server agent identifier, in communication with the virtual server agent decryptor, for identifying the authenticated user and the first computer;
(f) a virtual server agent decryptor, in communication with the virtual server client transmitter, for decrypting the encrypted abstract system call;
(g) a virtual server agent mapper, in communication with the identifier and the decryptor, for mapping the authenticated user to a local user on the remote computer;
(h) a virtual server agent impersonator for impersonating the authenticated user as the local user on the remote computer;
(i) a virtual server agent authorizer, in communication with the virtual server agent impersonator, for authorizing the decrypted abstract system call for the local user based on at least one of role-based access control model and access control lists;
(j) a virtual server agent translator for translating the abstract system call to an operating system specific system call; and
(k) a virtual server agent executor, in communication with the virtual server agent authorizer, for executing the operating system specific system call as the local user on the remote computer. - View Dependent Claims (58, 59, 60, 61, 62, 63, 64, 65)
-
Specification