WO2005045614A2 - Method and system for accessing and managing virtual machines - Google Patents

Method and system for accessing and managing virtual machines Download PDF

Info

Publication number
WO2005045614A2
WO2005045614A2 PCT/US2004/035379 US2004035379W WO2005045614A2 WO 2005045614 A2 WO2005045614 A2 WO 2005045614A2 US 2004035379 W US2004035379 W US 2004035379W WO 2005045614 A2 WO2005045614 A2 WO 2005045614A2
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machines
host
client
vir
virtual
Prior art date
Application number
PCT/US2004/035379
Other languages
French (fr)
Other versions
WO2005045614A3 (en
Inventor
John R. Sciandra
Brian Cottrell
John Sabean
Original Assignee
Sciandra John R
Brian Cottrell
John Sabean
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sciandra John R, Brian Cottrell, John Sabean filed Critical Sciandra John R
Priority to AU2004288532A priority Critical patent/AU2004288532B2/en
Priority to CA2543753A priority patent/CA2543753C/en
Priority to EP04796368A priority patent/EP1682978B1/en
Publication of WO2005045614A2 publication Critical patent/WO2005045614A2/en
Publication of WO2005045614A3 publication Critical patent/WO2005045614A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1036Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers

Definitions

  • This invention relates to the field of automated information processing
  • Virtual machines are computers that exist in software. They run in the
  • the host is usually able to sponsor several virtual machines
  • the virtual machine typically consists of a file that stores all of the data for the virtual machine, including the operating system, applications and data files.
  • An application residing on the sponsoring host will load the virtual machine file into the host's memory so that the virtual machine runs as an application on the host.
  • VNC VNC that permits a first (client) computer to operate a remote (server) computer
  • VNC remote control software is widely used for
  • This software provides a web-
  • Java client that can connect to a remote host with the server software installed. Once connected, a user has full desktop access.
  • the software does not allow multiple users to access their multiple hosts through a single IP address and a single port.
  • Virtual machines can run in persistent or non-persistent mode.
  • any changes the client makes while using the virtual machine are saved. This allows a client to interact with a virtual machine in the same way it would with a hardware-based computer. For example, a student using a virtual machine
  • running persistent mode might stop in the middle of a session, log off the computer, and
  • non-persistent mode the information and changes to the virtual machine are not stored in non- volatile memory and the virtual machine is returned to its original state at the end of a session.
  • training systems can be built with non-persistent mode
  • the present invention meets the above-identified needs by providing a system, method, and computer program product for providing multiple clients with efficient and effective remote access at a single IP address to one or more virtual machines over a network.
  • the invention permits the access of virtual machines running on host computers to be controlled so that the entire array of virtual machine hosts works in unison and provides a pool of available virtual machines to multiple simultaneous clients.
  • a load-balancing algorithm distributes the virtual
  • a method for allocating virtual machines among clients on a network in accordance with the invention includes providing one or more host servers, each of the host servers having one or more virtual machines available for allocation. Client requests for allocation of virtual machines are received and assigned, with the appropriate virtual machines being distributed among the host servers according to a load-balancing algorithm.
  • a computer program product in accordance with the invention includes
  • the control logic includes
  • server having a plurality of virtual machines available for allocation. Additional computer readable program code controls the receipt of client requests for allocation of virtual machines. Other computer readable program code assigns virtual machines to
  • a processor connects
  • the processor includes a port for receiving client
  • the processor has additional structure for distributing the allocated virtual machines among the host servers according to a load-balancing algorithm.
  • FIG. 1 is a system level view of an embodiment of the invention with principal components and their interaction;
  • FIG. 2 is a block diagram of a VAC in accordance with an embodiment of the invention, showing its primary components:
  • FIG. 3 is a block diagram of a VIR host array in accordance with an
  • FIG. 4 illustrates selected database structures within the VAC
  • Fig.5 illustrates additional selected memory structures within the VAC
  • FIG. 6 is a flow chart of a process in accordance with an embodiment of
  • Fig.7 illustrates the components of a message received at the VAC from
  • the present invention relates to a system, method, and computer program product for providing multiple clients with efficient and effective remote access to one or more virtual machines residing on multiple hosts.
  • the program allows multiple client computer -terminals to run one or more applications, herein referred to as modules, on virtual machines at a remote location.
  • modules are a plurality of interconnected hosts, each host being capable of providing a plurality of virtual machines.
  • Input signals received from a client are processed by web server software that provides required system identification and resource allocation functions.
  • VAC 22 virtual access core 22 and one or more virtual instruction routine (VIR) hosts 24 - 24.
  • VAC 22 is preferably implemented in software residing on server 21.
  • a VIR host can, for example, be a rack-mounted server
  • Each VIR host 24 communicates with VAC
  • Aplurality of client computers 30 connect to the VAC 22 by means of a network 28.
  • Each computer 30 may be a PC, located at any site accessible to network 28 such as a home, office, or classroom.
  • Network 28 may be a
  • Computers 30 have
  • Client computer 34 which may serve the function of either computer 30
  • client computer 34 is preferably used
  • the console provides a way to terminate client connections or virtual
  • VIR hosts and slots in use are VIR hosts and slots in use.
  • VAC 22 includes a web server 40, a VIR protocol
  • VNC proxy processor 50 a VNC processor 42, a VAC processor 44, a database storage device 48, and a VNC proxy processor 50.
  • Web Server 40 provides an interface to network 28 for communication
  • session identifier in session table 100 is used to uniquely
  • VIR protocol 42 is used for communication between system components.
  • An embodiment suitable for use in the invention includes the following commands: Ping — a keep alive function, preferably every ten seconds Ping reply - answer to ping request
  • Set type - refers to the element wishing to communicate using the VIR protocol as follows:
  • Vir.conf contains fields on performance and tuning of the VIR host such as how many VIR slots the VIR host will support.
  • Vir.conf fields are as follows: UNIQUE-ID - a unique identifier assigned to the host VSLOTS - a configurable number of VIR slots the host will support
  • Req module - web server request to retrieve and activate a specific virtual machine.
  • Diff module - check if a given session is already using a virtual machine before honoring a new request from the web server.
  • Module status - return the status of a virtual machine request to the web server: Module copying Booting
  • Module ready - return status to web server Module spin - return status to web server Module error — return "no slots left” status to web server Module update - return percentage of virtual machine copied into slot to web server
  • Database 48 is used for saving and accessing information about current
  • VNC processor 50 provides a conduit by which all client computers 30,
  • the proxy creates and monitors the routing information to ensure that the correct virtual machine in the correct VIR host is made available to the
  • each VIR host array 24 includes one or more VIR
  • Host 60a includes an Internet Protocol (IP) filter 62 that communicates
  • IP Internet Protocol
  • Virtual instruction routine 64 permits communication with IP filter 62, virtual machine server 66 and virtual machine store 70.
  • slots 68a - 68n are provided for receipt of virtual machines from virtual machine store 70 under the direction of the VIR client 64.
  • Each of the hosts 60b - 60n is configured similarly to host 60a.
  • Virtual machine store 70 is a repository of files, with each file containing a virtual machine accessible within system 20. Each virtual machine file contains all of the software necessary to permit a user of client computer 30, 32 or 34 to perform a
  • present invention might be created by a company to permit cleric/typists to telecommute
  • machine includes an operating system such as Windows 2000, an office applications package such as Microsoft Office, and all the standard templates, macros and other custom tools developed by the office for permitting clerk/typists to efficiently generate
  • each cleric/typist is presented with an identical desktop providing access to every office
  • the desktop seen by the user is a web browser
  • a “module,” as used herein, is a link to a virtual machine, or group of
  • Each module consists of a combination of data, virtual machines and access rules assigned to slots 68
  • VIR hosts 60 on one or more of the VIR hosts 60, and their assigned IP address.
  • IP address One example of a
  • module is the single virtual machine described above that presents a desktop to a telecommuter.
  • Another example, including a collection of virtual machines in a single module, is a training course for teaching a system administrator how to set up a mail server. Upon logging onto the system, the system administrator requests the mail server
  • training module which might include three virtual machines: (1) a virtual machine
  • FIGS.4 and 5 illustrate representative data structures in accordance with
  • structures 80, 82, 84 and 86 are stored in a memory 44a associated with VAC processor 44 and are populated by instructions from VAC processor 44 in accordance with
  • Structure 80 holds information on active modules.
  • Structure 82 holds the status of each VIR host and information on slots associated with that host.
  • Structure 84 contains information on the connection between a client and the VAC.
  • Structure 86 holds data regarding each individual session. These structures are populated as the VAC receives instructions from clients and VIR hosts. Database tables 90 through 106, as
  • Fig. 5 are stored in database storage device 48 and are also populated by
  • VAC processor 44 instructions from VAC processor 44 in accordance with requirements determined by the number and needs of users logged onto system 20 at any given time.
  • Structure 90 stores system default timeout value, used to determine when a virtual session should be terminated for inactivity.
  • Structure 92 stores network bridge
  • Structure 94 is used as authentication and identification by the system login scripts.
  • Structure 96 is the system log, used for auditing system events.
  • Structure 98 stores
  • Structure 100 stores session information used for tracking and managing of current sessions.
  • Structure 137 stores
  • Structure 104 stores user
  • Structure 106 holds information about registered VIR hosts.
  • the VAC searches both the memory structures and the
  • the VAC sends the requests to the selected VIR hosts with
  • the VIR host processes the VAC message by copying the virtual
  • the VJR host sends periodic status messages back to the VAC and to the VNC proxy.
  • the VAC sends this information to the VIR Host which then properly shuts down the session and performs housekeeping functions before making
  • a "host only" mode permits a virtual network
  • the host operating system must be configured to route the traffic or
  • a virtual machine network adapter utilizing a network access translator (NAT) is similar to the host only
  • a virtual adapter operating in "bridged" mode has direct access to the same physical adapter as the host operating system. This gives each virtual machine unrestricted access to the network and other virtual machines operating in the same mode on the same adapter.
  • the present invention permits traffic between virtual machines operating on the same host to be controlled by creating multiple-host only networks, giving each virtual machine its own host-only network.
  • the default setting prevents any virtual machine from communicating with the bridge.
  • Fig. 6 illustrates an embodiment of how the present invention is used to
  • VAC 20 is initialized.
  • Each VIR host array 24 is assigned a unique identifier, a maximum capacity of virtual hosts 60a - 60n, and the number of available slots 68a - 68n, all
  • VAC 22 registers the VIR hosts, and makes their resources available to system 20.
  • VAC 22 initiates continuous monitoring of a TCP/IP port for incoming from computers 30, 32 or 34.
  • Incoming information may include a request
  • information may include a request from a previously identified VIR host for processing of an instruction received from a currently registered client as illustrated by the cycle defined by steps 112, 114, 118 and 112.
  • VIR host array 24 Once the new VIR host has been registered on the VAC it becomes a part to the VIR host array, which serves as a pool of slots for virtual
  • modules e.g., log on and request access to
  • VAC 22 selects a VIR host based on a load-balancing algorithm to
  • a client may log on and be assigned VIR host 60a.
  • VAC 22 transmits information and instructions needed by VIR host 60a to copy
  • Virtual machine server 66 starts the associated virtual machines and VAC 22
  • VAC 22 issues one of these commands for each virtual machine associated with the module being initialized. The process continues to return to step 112 to detect registration requests from new VIR hosts throughout the time VAC 22 is active.
  • Instructions detected at step 118 include VIR host messages that have been received from a connected client and are waiting on a socket connection to be serviced sequentially for each VIR host.
  • the client shutdown step 122 is initiated when a client computer logs off
  • VAC 22 sends a signal to each
  • VIR host that has a module running associated with that client' s session. Each VIR host deactivates those virtual machines associated with that session, clears the access control list, and deletes the virtual machine from its assigned slot. This frees the slot on the
  • VIR host makes it available for a new client session.
  • the client transmits a three-part
  • Web server 40 identifies each registered client computer with a unique IP address for communication with VNC
  • VNC proxy 50 determines the correct virtual machine IP address on the
  • the VNC proxy then relays all VNC protocol data from the user's connection to the target virtual machine.
  • the VNC software receives the protocol data and operates in its normal way, with all proxying being transparent to the user.
  • Web server 40 uses an applet to send a request for the desired module
  • the VIR host scans for a marker, allowing the VIR host software to change the virtual machine's IP address to one specified by VAC 22.
  • the VIR host sends status messages to VAC 22 during the copying process.
  • VIR host establishes access controls for the virtual machines
  • Web server 40 monitors the status of the virtual
  • VNC Voice Call
  • proxy 50 relays action request 136 to the proper VIR host on a continuing basis

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

A Virtual Access Core (VAC) [Figure 1, element 22] manages and controls access to virtual machines. A Virtual Instruction Routine (VIR) protocol [Figure 1, element 26] is used by all components of the system to pass instructions and information about a Virtual Session. The VAC issues commands in the VIR protocol language causing virtual machines to start and stop. A VIR host [Figure 1, element 24] that hosts virtual machines responds to VAC commands. Web clients access the system via links, which a web server uses to send access requests to the VAC. The VAC responds by searching through process memory and database tables for information about free slots on a plurality of VIR hosts grouped into a Host Array. When one or more free slots have been identified, the VAC issues VIR Protocol commands instructing one or more VIR Hosts to load and start specific virtual machines in Specific Slots.

Description

METHOD AND SYSTEM FOR ACCESSING AND MANAGING VIRTUAL MACHINES
BACKGROUND OF THE INVENTION
[0001] This invention relates to the field of automated information processing,
and more specifically to a computer tool for providing computer clients a method and
system for accessing and managing virtual machines over a distributed network.
[0002] Virtual machines are computers that exist in software. They run in the
memory of another computer called a host computer, sharing the host's hardware and network connections. The host is usually able to sponsor several virtual machines
simultaneously, making ownership of multiple computers more economical. In many
cases, management of networks is made easier due to a decrease in hardware
requirements. The virtual machine typically consists of a file that stores all of the data for the virtual machine, including the operating system, applications and data files. An application residing on the sponsoring host will load the virtual machine file into the host's memory so that the virtual machine runs as an application on the host.
[0003] AT&T has developed and published an open-source software product
called VNC that permits a first (client) computer to operate a remote (server) computer
over a network. It does not matter whether the remote computer is real or virtual, or even whether the operating systems are compatible. Because of its ready availability, effectiveness and relatively simplicity, VNC remote control software is widely used for
connecting client computers with remote machines. This software provides a web-
based Java client that can connect to a remote host with the server software installed. Once connected, a user has full desktop access. The software, however, does not allow multiple users to access their multiple hosts through a single IP address and a single port.
[0004] Virtual machines can run in persistent or non-persistent mode. In
persistent mode, any changes the client makes while using the virtual machine are saved. This allows a client to interact with a virtual machine in the same way it would with a hardware-based computer. For example, a student using a virtual machine
running persistent mode might stop in the middle of a session, log off the computer, and
return later to pick up the instruction at the same point. In non-persistent mode, the information and changes to the virtual machine are not stored in non- volatile memory and the virtual machine is returned to its original state at the end of a session. The
advantage to non-persistent mode is that many clients can access the same virtual
machine either simultaneously or sequentially and have a clean, unchanged system at
each login. For example, training systems can be built with non-persistent mode,
allowing students the temporary use of a virtual machine to take the training. Upon completion of training, the system is automatically restored to its original state for the
next student.
[0005] The use of virtual machines is not without problems. Access and
management across a distributed network is not easily accomplished. Scalability is critical to successful operation in an enterprise environment. Accessing a virtual
machine directly on the host machine's console restricts the host to providing virtual machines for only a single client during each session.
[0006] In order to make such a system viable for multiple simultaneous clients,
remote access to the host must be accomplished. Additionally, networking issues must be resolved in order to provide security and isolation of each client session. Such a system must be scalable, having the ability to add additional supporting hosts on the fly.
SUMMARY OF THE INVENTION
[0007] The present invention meets the above-identified needs by providing a system, method, and computer program product for providing multiple clients with efficient and effective remote access at a single IP address to one or more virtual machines over a network. In particular, the invention permits the access of virtual machines running on host computers to be controlled so that the entire array of virtual machine hosts works in unison and provides a pool of available virtual machines to multiple simultaneous clients. A load-balancing algorithm distributes the virtual
machines among the hosts.
[0008] Accordingly, it is an object of the invention to provide virtual machines on more than one host server for allocation among clients. [0009] It is also an object to allocate virtual machines among the host servers
according to a load-balancing algorithm.
[0010] It is an additional object to allocate virtual machines assigned to each
user among the host servers according to a load-balancing algorithm. [0011] A method for allocating virtual machines among clients on a network in accordance with the invention includes providing one or more host servers, each of the host servers having one or more virtual machines available for allocation. Client requests for allocation of virtual machines are received and assigned, with the appropriate virtual machines being distributed among the host servers according to a load-balancing algorithm.
[0012] A computer program product in accordance with the invention includes
a computer usable medium residing on a computer and having control logic that permits
allocation of virtual machines among clients on a network. The control logic includes
computer readable program code for providing one or more host servers, with each host
server having a plurality of virtual machines available for allocation. Additional computer readable program code controls the receipt of client requests for allocation of virtual machines. Other computer readable program code assigns virtual machines to
clients, with the virtual machines being distributed among the host servers according
to a load-balancing algorithm.
[0013] A system for allocating virtual machines among clients on a network
includes client computers connected to the network and one or more host servers. Each
of the host servers has virtual machines available for allocation. A processor connects
the network and the host servers. The processor includes a port for receiving client
requests for allocation of virtual machines and for providing connectivity between
clients and allocated virtual machines. Also within the processor is an output connected
to the host servers. The processor has additional structure for distributing the allocated virtual machines among the host servers according to a load-balancing algorithm.
BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The features of the invention believed to be novel are set forth with particularity in the appended claims. The invention itself, however, both as to organization and method of operation, together with further objects and advantages thereof, may best be understood by reference to the following drawings in which like characters represent like parts throughout the drawings and in which:
[0015] Fig. 1 is a system level view of an embodiment of the invention with principal components and their interaction;
[0016] Fig. 2 is a block diagram of a VAC in accordance with an embodiment of the invention, showing its primary components:
[0017] Fig. 3 is a block diagram of a VIR host array in accordance with an
embodiment of the invention; [0018] Fig. 4 illustrates selected database structures within the VAC;
[0019] Fig.5 illustrates additional selected memory structures within the VAC;
[0020] Fig. 6 is a flow chart of a process in accordance with an embodiment of
the invention; and
[0021] Fig.7 illustrates the components of a message received at the VAC from
a client.
DETAILED DESCRIPTION OF THE INVENTION
[0022] The present invention relates to a system, method, and computer program product for providing multiple clients with efficient and effective remote access to one or more virtual machines residing on multiple hosts. In an embodiment of the invention, the program allows multiple client computer -terminals to run one or more applications, herein referred to as modules, on virtual machines at a remote location. At the remote location are a plurality of interconnected hosts, each host being capable of providing a plurality of virtual machines. Input signals received from a client are processed by web server software that provides required system identification and resource allocation functions.
[0023] Referring to Fig. 1, a system 20 for accessing and managing virtual
machines includes a server 21 having a virtual access core (VAC) 22 and one or more virtual instruction routine (VIR) hosts 24 - 24. VAC 22 is preferably implemented in software residing on server 21. A VIR host can, for example, be a rack-mounted server
with an entire rack comprising the array. Each VIR host 24 communicates with VAC
22 via a VIR protocol along apath.26. Aplurality of client computers 30 connect to the VAC 22 by means of a network 28. Each computer 30 may be a PC, located at any site accessible to network 28 such as a home, office, or classroom. Network 28 may be a
local area network or wide area network such as might be found in an office building
or campus, or it might be a distributed network such as the Internet. Computers 30 have
installed software suitable for communicating with the web server and utilizing the
applications that it provides, such as a Java Virtual Machine for running the VNC
Client. Additional client computers, such as computer 32, are connected to network 28
and may be provided with additional system privileges suitable for use by a session
instructor or moderator.
[0024] Client computer 34, which may serve the function of either computer 30
or 32, is connected directly to VAC 22. However, client computer 34 is preferably used
to manage the virtual sessions and provide a session moderator with a view into the
status of the overall system. Data elements are retrieved and presented to the moderator
on user ID, session number, virtual machines running and host array slots assigned to each session. The console provides a way to terminate client connections or virtual
machine sessions. It additionally provides a view of the overall host array ordered by
VIR hosts and slots in use.
[0025] Referring to Fig. 2, VAC 22 includes a web server 40, a VIR protocol
processor 42, a VAC processor 44, a database storage device 48, and a VNC proxy processor 50.
[0026] Web Server 40 provides an interface to network 28 for communication
with client computers 30 and 32. Software on the web server controls access to the system via a user table 104 (Fig. 5) and a session table 100. Once a session for a client
has been established, the session identifier in session table 100 is used to uniquely
identify the client within the system.
[0027] VIR protocol 42 is used for communication between system components.
An embodiment suitable for use in the invention includes the following commands: Ping — a keep alive function, preferably every ten seconds Ping reply - answer to ping request
Set type - refers to the element wishing to communicate using the VIR protocol as follows:
Web Server Virtual Machine Server Firewall
Set config - for type GSX, informs the VAC of information about specific VIR hosts by reading information set in "vir.conf ' on each VIR host. Vir.conf contains fields on performance and tuning of the VIR host such as how many VIR slots the VIR host will support. Vir.conf fields are as follows: UNIQUE-ID - a unique identifier assigned to the host VSLOTS - a configurable number of VIR slots the host will support
DB-IP - IP address of the VIR host VIRTTMPDIR - where the slots are located VIRTDIR - where the virtual machines are stored
DBNAME - name of the database used to connect to the VAC DBUSER - name of user to connect to the database on VAC DBPASS - connection password Spin virtual - instructs a VIR host to locate the virtual machine, copy it to a specific slot and instruct the virtual machine server to activate the virtual machine. Finally instruct the Network Bridge builder to use rules in table 92 to isolate network. Set unique - give each node in system a unique identifier: Web server GSX 1 GSX 2
Etc.
Req module - web server request to retrieve and activate a specific virtual machine.
Diff module - check if a given session is already using a virtual machine before honoring a new request from the web server. Module status - return the status of a virtual machine request to the web server: Module copying Booting
Running
Module ready - return status to web server Module spin - return status to web server Module error — return "no slots left" status to web server Module update - return percentage of virtual machine copied into slot to web server
Get IP - from VNC proxy to VAC
Logout - web server to VAC Kill virtual - VAC to VIR host
[0028] Database 48 is used for saving and accessing information about current
system status as resources are allocated among users logged into the system.
[0029] VNC processor 50 provides a conduit by which all client computers 30,
32, 34 can connect to virtual machines, described below, associated with their session
through a single IP address. The proxy creates and monitors the routing information to ensure that the correct virtual machine in the correct VIR host is made available to the
correct user throughout a session.
[0030] Referring to Fig. 3, each VIR host array 24 includes one or more VIR
hosts 60a - 60n. Host 60a includes an Internet Protocol (IP) filter 62 that communicates
with VAC 22. Virtual instruction routine 64 permits communication with IP filter 62, virtual machine server 66 and virtual machine store 70. A plurality of virtual machine
slots 68a - 68n are provided for receipt of virtual machines from virtual machine store 70 under the direction of the VIR client 64. Each of the hosts 60b - 60n is configured similarly to host 60a.
[0031] Virtual machine store 70 is a repository of files, with each file containing a virtual machine accessible within system 20. Each virtual machine file contains all of the software necessary to permit a user of client computer 30, 32 or 34 to perform a
task offered by the system. For example, a virtual machine suitable for use in the
present invention might be created by a company to permit cleric/typists to telecommute
between their individual homes and a central office. The file containing such a virtual
machine includes an operating system such as Windows 2000, an office applications package such as Microsoft Office, and all the standard templates, macros and other custom tools developed by the office for permitting clerk/typists to efficiently generate
products in accordance with office protocol and standards. By logging onto the system,
each cleric/typist is presented with an identical desktop providing access to every office
application in an identical format. The desktop seen by the user is a web browser
window that provides access to the virtual machine or machines located at the host
server. All generated work is saved on the central office server.
[0032] A "module," as used herein, is a link to a virtual machine, or group of
virtual machines, that is presented to a user who logs onto the system. Each module consists of a combination of data, virtual machines and access rules assigned to slots 68
on one or more of the VIR hosts 60, and their assigned IP address. One example of a
module is the single virtual machine described above that presents a desktop to a telecommuter. Another example, including a collection of virtual machines in a single module, is a training course for teaching a system administrator how to set up a mail server. Upon logging onto the system, the system administrator requests the mail server
training module, which might include three virtual machines: (1) a virtual machine
including course materials with text, illustrations, examples, exercises and testing materials; (2) a virtual machine emulating a mail server host on which the system
administrator practices setting up a mail server; and (3) a virtual machine emulating a
client connected to the host to which the system administrator practices sending email to confirm that the host has been set up correctly.
[0033] Efficiency of the system is enhanced if all modules accessible in the
system are stored in the Virtual machine store 70 of each VIR host 60a - 60n. In an
alternative embodiment, a single copy of each module could be stored in the system and copied as needed to the then-active VIR hosts. Considerations of efficiency also
suggest that a user will preferably be restricted to use of only a single module at a time,
but this is not a constraint imposed by the invention. As is obvious from the second
example above, it is likely that a user will have simultaneous access to more than one
virtual machine during a session.
[0034] Figs.4 and 5 illustrate representative data structures in accordance with
an embodiment of the invention. In the specific embodiment described herein, data
structures 80, 82, 84 and 86 are stored in a memory 44a associated with VAC processor 44 and are populated by instructions from VAC processor 44 in accordance with
requirements determined by the number and needs of users logged onto system 20 at
any given time. Structure 80 holds information on active modules. Structure 82 holds the status of each VIR host and information on slots associated with that host. Structure 84 contains information on the connection between a client and the VAC. Structure 86 holds data regarding each individual session. These structures are populated as the VAC receives instructions from clients and VIR hosts. Database tables 90 through 106, as
illustrated in Fig. 5, are stored in database storage device 48 and are also populated by
instructions from VAC processor 44 in accordance with requirements determined by the number and needs of users logged onto system 20 at any given time.
[0035] Structure 90 stores system default timeout value, used to determine when a virtual session should be terminated for inactivity. Structure 92 stores network bridge
builder rules in 'ebtables' used to isolate virtual machines into a virtual network.
Structure 94 is used as authentication and identification by the system login scripts. Structure 96 is the system log, used for auditing system events. Structure 98 stores
geometry for loading and display of the virtual machine. Structure 100 stores session information used for tracking and managing of current sessions. Structure 137 stores
information about the slot a session is currently using. Structure 104 stores user
information to permit login and auditing systems to authenticate and identify users.
Structure 106 holds information about registered VIR hosts.
[0036] During the process loop, messages arrive from the web server requesting
one or more virtual machines. The VAC searches both the memory structures and the
database to identify resources that are assigned to the session for which the web server has requested them. The VAC sends the requests to the selected VIR hosts with
instructions on which virtual machine image to load into a particular free slot on the
VIR host.
[0037] The VIR host processes the VAC message by copying the virtual
machine image into the assigned slot. During this copying process, the IP address of the virtual machine is changed to the IP address determined by the VAC. The VIR host then starts the virtual machine. As the virtual machine image is copied into its assigned slot and booted, the VJR host sends periodic status messages back to the VAC and to the VNC proxy.
[0038] Once the system is booted and running the client accesses the virtual machines through the VNC proxy and a web browser. When finished, the client sends
a message to the VAC notifying it to terminate the virtual machine and possibly the
client session as well. The VAC sends this information to the VIR Host which then properly shuts down the session and performs housekeeping functions before making
the slot available to the next student.
[0039] Prior art virtual machine hosting software such as VMWare (a
commercially available product of VMWare, Inc.) will typically create a virtual network
adapter for the virtual machine. Various options for implementing the network adapter have been developed, but none allow any control over traffic between virtual machines
operating on the same host. For example, a "host only" mode permits a virtual network
interface to be created on a host with all virtual machines having unrestricted access
with each other. The host operating system must be configured to route the traffic or
the virtual machines will be unable to connect to any other network. A virtual machine network adapter utilizing a network access translator (NAT) is similar to the host only
mode except that outbound traffic communicates to other networks through a physical
interface on the host. Alternatively, a virtual adapter operating in "bridged" mode has direct access to the same physical adapter as the host operating system. This gives each virtual machine unrestricted access to the network and other virtual machines operating in the same mode on the same adapter.
[0040] The present invention permits traffic between virtual machines operating on the same host to be controlled by creating multiple-host only networks, giving each virtual machine its own host-only network. A network bridge between interfaces on the
host computer puts each of the host-only networks on the same network as a selected
physical network interface, with the host operating system controlling traffic to and
from the bridge. By having the operating system perform this network bridging, as opposed to the virtual machine software, it is possible to apply access rules to control virtual machine access to the bridge. Rules for controlling what traffic is permitted to
and from the network bridge are defined in the "ebtables" utility in structure 92, to
ensure that virtual machines on the same host are effectively firewalled from each other
as well as from virtual machines running on other hosts.
[0041] To enable this setup, the default setting prevents any virtual machine from communicating with the bridge. As each virtual machine is initialized, a set of
default access rules are put in place to allow the virtual machine to communicate with
critical system components, namely: database, VAC, web server, and VNC proxy. The
virtual machine is then given permission to communicate with all other virtual machines associated with the running module.
[0042] Upon module termination, each of the rules added to the network bridge
must be removed, to ensure that the slot is ready for the next session.
[0043] Fig. 6 illustrates an embodiment of how the present invention is used to
permit users to access virtual machines over a distributed network. In step 110, VAC 20 is initialized. Each VIR host array 24 is assigned a unique identifier, a maximum capacity of virtual hosts 60a - 60n, and the number of available slots 68a - 68n, all
quantities being stored for access and use by VAC processor 44. VAC 22 then registers the VIR hosts, and makes their resources available to system 20.
[0044] In step 112, VAC 22 initiates continuous monitoring of a TCP/IP port for incoming from computers 30, 32 or 34. Incoming information may include a request
from a new VIR host for connection of an unregistered client 30, 32, 34 as illustrated
by the cycle defined by steps 112, 114, 116 and 112. Alternatively, incoming
information may include a request from a previously identified VIR host for processing of an instruction received from a currently registered client as illustrated by the cycle defined by steps 112, 114, 118 and 112.
[0045] If a new VIR host request is detected at step 114, the command "add vir"
is executed, specific memory structures are allotted at step 116, and the VIR host is
registered in VIR host array 24. Once the new VIR host has been registered on the VAC it becomes a part to the VIR host array, which serves as a pool of slots for virtual
machines. As clients 30, 32 and 34 access modules (e.g., log on and request access to
virtual machines), VAC 22 selects a VIR host based on a load-balancing algorithm to
optimize processing times. For example, a client may log on and be assigned VIR host 60a. VAC 22 transmits information and instructions needed by VIR host 60a to copy
appropriate virtual machines from the virtual machine store 66 into virtual machine slot
68a. Virtual machine server 66 starts the associated virtual machines and VAC 22
transmits information for associating the virtual machines with a specific client session
(session ID). VAC 22 issues one of these commands for each virtual machine associated with the module being initialized. The process continues to return to step 112 to detect registration requests from new VIR hosts throughout the time VAC 22 is active.
[0046] If no new VTR host request is detected at step 114, the system looks for
incoming instructions from previously registered VIR hosts at step 118. A lack of
incoming instructions causes the process to loop back to step 112. Instructions detected at step 118 include VIR host messages that have been received from a connected client and are waiting on a socket connection to be serviced sequentially for each VIR host.
[0047] The client shutdown step 122 is initiated when a client computer logs off
or otherwise indicates it has completed use of a module. VAC 22 sends a signal to each
VIR host that has a module running associated with that client' s session. Each VIR host deactivates those virtual machines associated with that session, clears the access control list, and deletes the virtual machine from its assigned slot. This frees the slot on the
VIR host and makes it available for a new client session.
[0048] Because the present invention allows for potentially hundreds of virtual
machines, a practical method of allowing client access to virtual machines through a
single IP address is required. To accomplish this, the client transmits a three-part
message 130, consisting of a session identifier 132, a module identifier 134 for the
requested module, and an action request 136 to web server 40. Web server 40 identifies each registered client computer with a unique IP address for communication with VNC
proxy 50. VNC proxy 50 determines the correct virtual machine IP address on the
inside of the network and connects to the VNC server on that host. The VNC proxy then relays all VNC protocol data from the user's connection to the target virtual machine. The VNC software receives the protocol data and operates in its normal way, with all proxying being transparent to the user.
[0049] Web server 40 uses an applet to send a request for the desired module
to virtual machine server 66, which copies those files comprising the associated virtual
machines from virtual machine store 70 to a directory associated with the specified slot
68. During this copying process, the VIR host scans for a marker, allowing the VIR host software to change the virtual machine's IP address to one specified by VAC 22.
The VIR host sends status messages to VAC 22 during the copying process. Once
copying is complete, the VIR host establishes access controls for the virtual machines
and initializes their boot processes. Web server 40 monitors the status of the virtual
machine copying process and the status of the virtual machine in the boot process. Once
the VIR host has reported to VAC 22 that the virtual machine has successfully booted, web server 40 connects the virtual machine and the client via VNC proxy 50. VNC
proxy 50 relays action request 136 to the proper VIR host on a continuing basis
throughout the session.
[0050] While the preferred forms and embodiments of the invention have been
illustrated and described, it will be apparent to those of ordinary skill in the art that
various changes and modifications may be made without deviating from the inventive concepts set forth above.

Claims

WHAT IS CLAIMED IS:
1. A method for allocating virtual machines among clients on a network, comprising the steps of:
(a) providing one or more host servers, each host server having a plurality of virtual machines available for allocation; (b) receiving client requests for allocation of virtual machines; and
(c) assigning virtual machines to clients, the virtual machines being distributed among the host servers according to a load-balancing algorithm.
2. The method of claim 1 wherein the step of receiving client requests further includes receiving the requests at a single IP address.
3. The method of claim 2 wherein the step of assigning virtual machines further includes assigning each virtual machine to only one client.
4. The method of claim 3 , and further comprising the step of associating each client with a unique session identifier.
5. The method of claim 4, and further comprising the step of maintaining client access to its assigned virtual machines for the duration of the session.
6. The method of claim 5, and further comprising the step of monitoring the network for receipt of data from additional clients.
7. The method of claim 6, wherein the step of assigning virtual machines to clients further includes copying a virtual machine file to a memory location assigned to a specific client.
8. A computer program product comprising a computer usable medium having control logic stored therein and residing on a server to permit allocating virtual machines among clients on a network, said control logic comprising:
(a) computer readable program code means for providing two or more host servers, each host server having a plurality of virtual machines available for allocation;
(b) computer readable program code means for receiving client requests for allocation of virtual machines; and
(c) computer readable program code means for assigning virtual machines to clients, the virtual machines being distributed among the host servers according to a load-balancing algorithm.
9. The computer program product of claim 8, wherein the means for receiving client requests further includes means for receiving the requests at a single IP address.
10. The computer program product of claim 9, and further comprising means for associating each client with a unique session identifier.
11. The computer program product of claim 10, and further comprising means for maintaining client access to its assigned virtual machines for the duration of the session.
12. The computer program product of claim 11, and further comprising means for monitoring the network for receipt of data from additional clients
13. The computer program product of claim 12, wherein the means for assigning virtual machines to clients further includes means for copying a virtual machine file to a memory location assigned to a specific client.
14. A system for allocating virtual machines among clients on a network, comprising:
(a) a plurality of client computers connected to the network;
(b) one or more host servers, each server having a plurality of virtual machines available for allocation; and (c) a processor connecting the network and the host servers, said processor including (i) a port for receiving client requests for allocation of virtual machines and for providing connectivity between clients and allocated virtual machines, (ii) an output connected to the host servers, and (iii) means for distributing the allocated virtual machines among the host servers according to a load-balancing algorithm.
15. The system of claim 14, wherein the server computer includes a directory containing a copy of the virtual machines that have been assigned to the client computer.
16. The system of claim 14, wherein the server computer includes a plurality of directories, each directory containing a copy of the virtual machines that have been assigned to a client computer and each client computer having access only to that directory.
PCT/US2004/035379 2003-10-28 2004-10-26 Method and system for accessing and managing virtual machines WO2005045614A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
AU2004288532A AU2004288532B2 (en) 2003-10-28 2004-10-26 Method and system for accessing and managing virtual machines
CA2543753A CA2543753C (en) 2003-10-28 2004-10-26 Method and system for accessing and managing virtual machines
EP04796368A EP1682978B1 (en) 2003-10-28 2004-10-26 Method and system for accessing and managing virtual machines

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/695,467 2003-10-28
US10/695,467 US7246174B2 (en) 2003-10-28 2003-10-28 Method and system for accessing and managing virtual machines

Publications (2)

Publication Number Publication Date
WO2005045614A2 true WO2005045614A2 (en) 2005-05-19
WO2005045614A3 WO2005045614A3 (en) 2007-01-11

Family

ID=34573217

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/035379 WO2005045614A2 (en) 2003-10-28 2004-10-26 Method and system for accessing and managing virtual machines

Country Status (5)

Country Link
US (1) US7246174B2 (en)
EP (1) EP1682978B1 (en)
AU (1) AU2004288532B2 (en)
CA (1) CA2543753C (en)
WO (1) WO2005045614A2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2414148A (en) * 2004-05-07 2005-11-16 Zeus Technology Ltd Managing the flow of data traffic
WO2007128761A2 (en) 2006-05-04 2007-11-15 Boehringer Ingelheim International Gmbh Uses of dpp-iv inhibitors
CN105187512A (en) * 2015-08-13 2015-12-23 航天恒星科技有限公司 Method and system for load balancing of virtual machine clusters
EP2983088A1 (en) * 2014-08-06 2016-02-10 Airbus Defence and Space GmbH Memory protection unit
JP6659004B1 (en) * 2018-06-13 2020-03-04 株式会社村田製作所 Wireless communication device
CN112328358A (en) * 2020-10-28 2021-02-05 惠州华阳通用电子有限公司 Dual-system starting method based on virtual machine and storage medium

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8046464B2 (en) * 2004-03-10 2011-10-25 The Boeing Company Quality of service resource management apparatus and method for middleware services
US7546631B1 (en) * 2004-04-30 2009-06-09 Sun Microsystems, Inc. Embedded management system for a physical device having virtual elements
US8762540B2 (en) * 2004-09-01 2014-06-24 Hewlett-Packard Development Company, L.P. Managing multiple remote computing sessions displayed on a client device
US8464250B1 (en) 2004-09-23 2013-06-11 Transcontinental Events, Llc System and method for on-demand cloning of virtual machines
US20060089992A1 (en) * 2004-10-26 2006-04-27 Blaho Bruce E Remote computing systems and methods for supporting multiple sessions
US20060184935A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method using virtual machines for decoupling software from users and services
US20060190532A1 (en) * 2005-02-23 2006-08-24 Kalyana Chadalavada Apparatus and methods for multiple user remote connections to an information handling system via a remote access controller
US7480773B1 (en) * 2005-05-02 2009-01-20 Sprint Communications Company L.P. Virtual machine use and optimization of hardware configurations
US8112748B2 (en) * 2005-09-01 2012-02-07 International Business Machines Corporation Method for operating software configured for internet access on a remote computer
US8180923B2 (en) * 2005-11-29 2012-05-15 Intel Corporation Network access control for many-core systems
JP2009525531A (en) * 2006-02-01 2009-07-09 エックス2 テクノロジーズ,インク. Computer service providing system and method
US20070214233A1 (en) * 2006-03-07 2007-09-13 Daryl Cromer System and method for implementing a hypervisor for server emulation
US8225314B2 (en) * 2006-03-31 2012-07-17 Intel Corporation Support for personal computing in a public computing infrastructure by using a single VM delta image for each VM base image utilized by a user
US8555274B1 (en) * 2006-03-31 2013-10-08 Vmware, Inc. Virtualized desktop allocation system using virtual infrastructure
US20070255798A1 (en) * 2006-04-26 2007-11-01 Sap Ag Brokered virtualized application execution
US8924524B2 (en) * 2009-07-27 2014-12-30 Vmware, Inc. Automated network configuration of virtual machines in a virtual lab data environment
US8141075B1 (en) * 2006-05-08 2012-03-20 Vmware, Inc. Rule engine for virtualized desktop allocation system
CN101083607B (en) * 2006-05-30 2010-12-08 倪海生 Internet accessing server for inside and outside network isolation and its processing method
JP4787684B2 (en) * 2006-06-15 2011-10-05 日本電気株式会社 Session management system, session management method, and program
GB0611911D0 (en) * 2006-06-15 2006-07-26 Miller Simon Wireless networking communication
US7912926B2 (en) * 2006-07-20 2011-03-22 Oracle America, Inc. Method and system for network configuration for containers
US8713202B2 (en) * 2006-07-20 2014-04-29 Oracle America, Inc. Method and system for network configuration for virtual machines
US20080127348A1 (en) * 2006-08-31 2008-05-29 Kenneth Largman Network computer system and method using thin user client and virtual machine to provide immunity to hacking, viruses and spy ware
US7849192B2 (en) * 2006-10-03 2010-12-07 Hob Gmbh & Co. Kg User-host-computer system with automatic allocation of user-sessions to virtualized blade-type-servers
US8589917B2 (en) * 2006-10-10 2013-11-19 International Business Machines Corporation Techniques for transferring information between virtual machines
US8725886B1 (en) * 2006-10-20 2014-05-13 Desktone, Inc. Provisioned virtual computing
JP4293234B2 (en) * 2006-12-05 2009-07-08 日本電気株式会社 Connection management method and connection management server in thin client
US9043391B2 (en) 2007-02-15 2015-05-26 Citrix Systems, Inc. Capturing and restoring session state of a machine without using memory images
US8176486B2 (en) * 2007-02-15 2012-05-08 Clearcube Technology, Inc. Maintaining a pool of free virtual machines on a server computer
US8356297B1 (en) * 2007-03-21 2013-01-15 Azul Systems, Inc. External data source redirection in segmented virtual machine
US7984483B2 (en) * 2007-04-25 2011-07-19 Acxess, Inc. System and method for working in a virtualized computing environment through secure access
US20120150992A1 (en) * 2007-09-10 2012-06-14 Stephen Mark Mays System and method for providing computer services
US9116734B1 (en) * 2011-01-14 2015-08-25 Dispersive Networks Inc. Dispersive storage area networks
US8667595B2 (en) * 2007-12-31 2014-03-04 Intel Corporation Method, apparatus and system for containing and localizing malware propagation
JP5029701B2 (en) * 2008-01-09 2012-09-19 富士通株式会社 Virtual machine execution program, user authentication program, and information processing apparatus
ITMI20080584A1 (en) * 2008-04-04 2009-10-05 Gambro Lundia Ab MEDICAL EQUIPMENT
US20100031253A1 (en) * 2008-07-29 2010-02-04 Electronic Data Systems Corporation System and method for a virtualization infrastructure management environment
US9665837B2 (en) * 2008-08-05 2017-05-30 International Business Machines Corporation Charging resource usage in a distributed computing environment
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
JP2010066931A (en) * 2008-09-09 2010-03-25 Fujitsu Ltd Information processor having load balancing function
US8239526B2 (en) 2008-11-14 2012-08-07 Oracle International Corporation System and method for performance data collection in a virtual environment
JP5398313B2 (en) * 2009-03-13 2014-01-29 キヤノン株式会社 Information processing apparatus, operation time calculation method, and program
US9043463B1 (en) * 2009-03-30 2015-05-26 Amazon Technologies, Inc. Providing extendible network capabilities for managed computer networks
JP4665040B2 (en) * 2009-04-28 2011-04-06 株式会社東芝 Computer and access control method
US9116724B2 (en) * 2009-05-15 2015-08-25 Red Hat, Inc. Stateless virtual machine
US20100306774A1 (en) * 2009-05-28 2010-12-02 Subash Kalbarga Instant-On Computing System
US8634437B2 (en) * 2009-07-01 2014-01-21 Riverbed Technology, Inc. Extended network protocols for communicating metadata with virtual machines
US8572609B2 (en) * 2009-07-01 2013-10-29 Riverbed Technology, Inc. Configuring bypass functionality of a network device based on the state of one or more hosted virtual machines
US8990433B2 (en) * 2009-07-01 2015-03-24 Riverbed Technology, Inc. Defining network traffic processing flows between virtual machines
US8954957B2 (en) * 2009-07-01 2015-02-10 Riverbed Technology, Inc. Network traffic processing according to network traffic rule criteria and transferring network traffic metadata in a network device that includes hosted virtual machines
US9529689B2 (en) 2009-11-30 2016-12-27 Red Hat, Inc. Monitoring cloud computing environments
GB2477092A (en) * 2010-01-20 2011-07-27 Nec Corp Selecting virtual machine host servers based on client device location
US20110213687A1 (en) * 2010-02-26 2011-09-01 James Michael Ferris Systems and methods for or a usage manager for cross-cloud appliances
US8572611B2 (en) * 2010-03-03 2013-10-29 International Business Machines Corporation Managing conflicts between multiple users accessing a computer system having shared resources assigned to one or more logical partitions and one or more appliance partitions
US8656297B2 (en) 2010-03-31 2014-02-18 Microsoft Corporation Enhanced virtualization system
US9183560B2 (en) 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
US8370899B2 (en) * 2010-08-11 2013-02-05 Emc Corporation Disposable browser for commercial banking
US8407804B2 (en) * 2010-09-13 2013-03-26 Sophos Plc System and method of whitelisting parent virtual images
US9460277B2 (en) * 2010-12-06 2016-10-04 International Business Machines Corporation Identity based auditing in a multi-product environment
US8607067B1 (en) 2011-03-01 2013-12-10 Amazon Technologies, Inc. Techniques for attesting to information
KR101747113B1 (en) * 2011-02-01 2017-06-15 삼성전자주식회사 The method for executing cloud computing
WO2012125392A1 (en) * 2011-03-11 2012-09-20 Skydesks, Incorporated Methods and systems for persistent virtual application hosting
ITRM20110433A1 (en) 2011-08-10 2013-02-11 Univ Calabria ENERGY SAVING SYSTEM IN THE COMPANY DATE CENTERS.
US9015823B2 (en) * 2011-11-15 2015-04-21 Nicira, Inc. Firewalls in logical networks
US9137210B1 (en) 2012-02-21 2015-09-15 Amazon Technologies, Inc. Remote browsing session management
US8839447B2 (en) * 2012-02-27 2014-09-16 Ca, Inc. System and method for virtual image security in a cloud environment
US20140019960A1 (en) * 2012-07-12 2014-01-16 Microsoft Corporation Systems and methods of creating custom virtual machines
US9160810B2 (en) * 2012-10-25 2015-10-13 Red Hat Israel, Ltd. Partitioning of a transmission control protocol window in a virtual system
US9740702B2 (en) 2012-12-21 2017-08-22 Commvault Systems, Inc. Systems and methods to identify unprotected virtual machines
US9378035B2 (en) 2012-12-28 2016-06-28 Commvault Systems, Inc. Systems and methods for repurposing virtual machines
US20140258238A1 (en) * 2013-03-05 2014-09-11 VCE Company LLC Method to embed snapshot management into virtual machine instances
US10541898B2 (en) 2013-03-15 2020-01-21 Brian Weinberg System and method for creating, deploying, and administering distinct virtual computer networks
CN104901923B (en) * 2014-03-04 2018-12-25 新华三技术有限公司 A kind of virtual machine access mechanism and method
US9800650B2 (en) 2014-03-10 2017-10-24 Vmware, Inc. Resource management for multiple desktop configurations for supporting virtual desktops of different user classes
US9819650B2 (en) * 2014-07-22 2017-11-14 Nanthealth, Inc. Homomorphic encryption in a healthcare network environment, system and methods
WO2016018414A1 (en) * 2014-07-31 2016-02-04 Hewlett-Packard Development Company, L.P. Display of multiple instances
CN104298559B (en) * 2014-09-30 2018-03-02 深信服科技股份有限公司 The method and device of physical host system virtualization
US20160105528A1 (en) * 2014-10-08 2016-04-14 Microsoft Corporation Client-assisted fulfillment of a resource request
US10021066B2 (en) * 2015-05-18 2018-07-10 Morgan Stanley Clustered server sharing
US10740129B2 (en) 2015-06-05 2020-08-11 International Business Machines Corporation Distinguishing portions of output from multiple hosts
US10084873B2 (en) 2015-06-19 2018-09-25 Commvault Systems, Inc. Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs
US9563514B2 (en) 2015-06-19 2017-02-07 Commvault Systems, Inc. Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US10853195B2 (en) 2017-03-31 2020-12-01 Commvault Systems, Inc. Granular restoration of virtual machine application data
CN111917689B (en) * 2019-05-08 2023-02-03 创升益世(东莞)智能自控有限公司 Virtual host system applied to industrial internet
US11656951B2 (en) 2020-10-28 2023-05-23 Commvault Systems, Inc. Data loss vulnerability detection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103882A1 (en) 2000-10-02 2002-08-01 Johnston Robin Andrew Courtland Method and system for hands-on e-learning

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5062037A (en) * 1988-10-24 1991-10-29 Ibm Corp. Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network
US5371852A (en) * 1992-10-14 1994-12-06 International Business Machines Corporation Method and apparatus for making a cluster of computers appear as a single host on a network
US6317775B1 (en) * 1995-11-03 2001-11-13 Cisco Technology, Inc. System for distributing load over multiple servers at an internet site
CA2206737C (en) * 1997-03-27 2000-12-05 Bull S.A. Computer network architecture
US6324177B1 (en) * 1997-05-02 2001-11-27 Cisco Technology Method and apparatus for managing connections based on a client IP address
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US7047415B2 (en) * 1997-09-22 2006-05-16 Dfs Linkages, Inc. System and method for widely witnessed proof of time
US6223202B1 (en) * 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US6704764B1 (en) * 1998-06-18 2004-03-09 Hewlett-Packard Development Company, L.P. Method and apparatus for a servlet server class
US6571274B1 (en) * 1998-11-05 2003-05-27 Beas Systems, Inc. Clustered enterprise Java™ in a secure distributed processing system
US6970913B1 (en) * 1999-07-02 2005-11-29 Cisco Technology, Inc. Load balancing using distributed forwarding agents with application based feedback for different virtual machines
US6854114B1 (en) * 1999-10-21 2005-02-08 Oracle International Corp. Using a virtual machine instance as the basic unit of user execution in a server environment
ES2249450T3 (en) * 2000-07-05 2006-04-01 ERNST & YOUNG LLP METHOD AND APPLIANCE TO PROVIDE INFORMATIC SERVICES.
EP1442372B1 (en) * 2001-11-07 2015-03-04 Sap Se Providing isolation through process attachable virtual machines
US7698360B2 (en) * 2002-02-26 2010-04-13 Novell, Inc. System and method for distance learning
US20050102670A1 (en) * 2003-10-21 2005-05-12 Bretl Robert F. Shared object memory with object management for multiple virtual machines

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020103882A1 (en) 2000-10-02 2002-08-01 Johnston Robin Andrew Courtland Method and system for hands-on e-learning

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2414148A (en) * 2004-05-07 2005-11-16 Zeus Technology Ltd Managing the flow of data traffic
WO2007128761A2 (en) 2006-05-04 2007-11-15 Boehringer Ingelheim International Gmbh Uses of dpp-iv inhibitors
EP2351568A2 (en) 2006-05-04 2011-08-03 Boehringer Ingelheim International GmbH Uses of dpp-iv inhibitors
EP2983088A1 (en) * 2014-08-06 2016-02-10 Airbus Defence and Space GmbH Memory protection unit
CN105187512A (en) * 2015-08-13 2015-12-23 航天恒星科技有限公司 Method and system for load balancing of virtual machine clusters
JP6659004B1 (en) * 2018-06-13 2020-03-04 株式会社村田製作所 Wireless communication device
CN112328358A (en) * 2020-10-28 2021-02-05 惠州华阳通用电子有限公司 Dual-system starting method based on virtual machine and storage medium

Also Published As

Publication number Publication date
AU2004288532B2 (en) 2011-05-19
AU2004288532A1 (en) 2005-05-19
US20050108709A1 (en) 2005-05-19
EP1682978A2 (en) 2006-07-26
US7246174B2 (en) 2007-07-17
WO2005045614A3 (en) 2007-01-11
EP1682978B1 (en) 2011-12-14
CA2543753A1 (en) 2005-05-19
CA2543753C (en) 2012-08-28
EP1682978A4 (en) 2008-03-26

Similar Documents

Publication Publication Date Title
CA2543753C (en) Method and system for accessing and managing virtual machines
US9747125B2 (en) Associating virtual machines on a server computer with particular users on an exclusive basis
US9110725B1 (en) User interface for dynamic environment using allocateable resources
US9329905B2 (en) Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine
US6597956B1 (en) Method and apparatus for controlling an extensible computing system
JP3696933B2 (en) Apparatus and method for associating network identities with locally defined identities in a computer network
US8032634B1 (en) Approach for allocating resources to an apparatus based on resource requirements
US8307362B1 (en) Resource allocation in a virtualized environment
US7703102B1 (en) Approach for allocating resources to an apparatus based on preemptable resource requirements
US7463648B1 (en) Approach for allocating resources to an apparatus based on optional resource requirements
US8179809B1 (en) Approach for allocating resources to an apparatus based on suspendable resource requirements
US6922724B1 (en) Method and apparatus for managing server load
US6785726B1 (en) Method and apparatus for delivering local and remote server events in a similar fashion
US6785713B1 (en) Method and apparatus for communicating among a network of servers utilizing a transport mechanism
US8234650B1 (en) Approach for allocating resources to an apparatus
US6789112B1 (en) Method and apparatus for administering a server having a subsystem in communication with an event channel
US20050080891A1 (en) Maintenance unit architecture for a scalable internet engine
US6934952B2 (en) Method and apparatus for managing multiple instances of server code on a machine
US20060085530A1 (en) Method and apparatus for configuring, monitoring and/or managing resource groups using web services
US20100042636A1 (en) Internet server system, method of creating virtual machine of the internet server and method of starting the same
US20060085668A1 (en) Method and apparatus for configuring, monitoring and/or managing resource groups
US7735095B2 (en) Network device drivers using a communication transport
WO2002039313A9 (en) A data model for automated server configuration
CA2409707A1 (en) A system and method for directing runtime data in a server network

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004288532

Country of ref document: AU

Ref document number: 2543753

Country of ref document: CA

ENP Entry into the national phase

Ref document number: 2004288532

Country of ref document: AU

Date of ref document: 20041026

Kind code of ref document: A

WWP Wipo information: published in national office

Ref document number: 2004288532

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 2004796368

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2004796368

Country of ref document: EP