DE-112016007699-B4 - Provision of computing resources for a virtual machine designed to host a group of application programs assigned to a user
Abstract
Non-volatile, computer-readable storage medium, comprehensive executable instructions which, as a result of their execution by one or more processors of a computer system, cause the computer system to do at least the following: Sending, from a client device (102), a request to use a first application to a computing resource service provider (106) comprising one or more additional computer systems, wherein the request to use the first application causes the computing resource service provider (106) to determine computing resource requirements of the first application and to provide a first virtual machine, which is specifically adapted to run the first application, wherein the first virtual machine is configured at least partially based on the computing resource requirements of the first application; Receiving, at the client device (102), a first stream of display information from the first virtual machine, wherein the first virtual machine adapts an encoding of the first stream at least partially based on an application type of the first application and an available network bandwidth from the first virtual machine to the client device (102); Sending, from the client device (102), a request to use a second application to the compute resource service provider (106), wherein the request to use the second application causes the compute resource service provider (106) to provide a second virtual machine, which is specifically adapted to run the second application, wherein the second virtual machine is configured at least partially based on the compute resource requirements of the second application, wherein the compute resource requirements of the second application are different from the compute resource requirements of the first application; Received at the client device (102) a second stream of display information from the second virtual machine, wherein the second virtual machine encodes the second stream at least partially on The basis of an application type of the second application and an available network bandwidth from the second virtual machine to the client device (102) is adapted; and Merge, by the client device (102), the first stream of display information and the second stream of display information to create a merged user interface for the first application and the second application.
Inventors
- Nathan Bartholomew Thomas
- SHESHADRI SUPREETH KOUSHIK
- Yang Lin
Assignees
- AMAZON TECHNOLOGIES, INC.
Dates
- Publication Date
- 20260513
- Application Date
- 20161221
- Priority Date
- 20151228
Claims (20)
- Non-volatile, computer-readable storage medium comprising executable instructions which, as a result of their execution by one or more processors of a computer system, cause the computer system to do at least the following: Send, from a client device (102), a request to use a first application to a computing resource service provider (106) comprising one or more additional computer systems, wherein the request to use the first application causes the computing resource service provider (106) to determine computing resource requirements of the first application and to provide a first virtual machine, which is specifically adapted to execute the first application, wherein the first virtual machine is configured at least partially based on the computing resource requirements of the first application; Receive, at the client device (102), a first stream of display information from the first virtual machine, wherein the first virtual machine adapts an encoding of the first stream at least partially based on an application type of the first application and an available network bandwidth from the first virtual machine to the client device (102); Sending, from the client device (102), a request to use a second application to the compute resource service provider (106), wherein the request to use the second application causes the compute resource service provider (106) to provide a second virtual machine, which is specifically adapted to run the second application, wherein the second virtual machine is configured at least partially based on the compute resource requirements of the second application, the compute resource requirements of the second application being different from the compute resource requirements of the first application; Receiving, at the client device (102), a second stream of display information from the second virtual machine, wherein the second virtual machine adapts an encoding of the second stream at least partially based on an application type of the second application and available network bandwidth from the second virtual machine to the client device (102); and Combining, by the client device (102), the first stream of display information and the second stream of display information to create a combined user interface for the first application and the second application.
- Non-volatile, computer-readable storage medium according to Claim 1 , wherein the instructions further include instructions which, as a result of their execution by the one or more processors, cause the computer system to: specify at least one section of the first stream of display information that is not visible on the user interface; and send view window information to the compute resource service provider (106) describing the section of the first stream of display information.
- Non-volatile, computer-readable storage medium according to Claim 1 , wherein the instructions further include instructions which, as a result of their execution by the one or more processors, cause the computer system to: determine that the network connection to the compute resource service provider (106) has been interrupted; and as a result of the determination that the network connection to the compute resource service provider (106) has been interrupted, cause the compute resource service provider (106) to terminate the allocation of the virtual machine.
- Non-volatile, computer-readable storage medium according to Claim 1 , where the merged user interface is a first window that displays information from the first virtual machine displays, and includes a second window that shows display information from the second virtual machine.
- Non-volatile, computer-readable storage medium according to Claim 1 , wherein the instructions further include instructions which, as a result of their execution by the one or more processors, cause the computer system to: encode a user input from one or more devices connected to the computer system into an input stream; and transmit the input stream to the computing resource service provider (106).
- Non-volatile, computer-readable storage medium according to Claim 1 , where an application stream stitcher receives the first and second streams of display information and integrates them into the merged user interface.
- Non-volatile, computer-readable storage medium according to Claim 1 , wherein the first stream of display information includes audio information generated by the first application; the second stream of display information includes audio information generated by the second application; and the merged user interface includes audio information from both the first and second applications.
- A computer-implemented method comprising: Receiving, by a computing resource service provider (106) comprising one or more additional computer systems, one or more requests from a client device (102) for the use of a first application and a second application; Determining, by the computing resource service provider (106), in response to the one or more requests, computing resource requirements of the first application; Providing, by the computing resource service provider (106), to a first virtual machine, which is specifically adapted to execute the first application at least partially based on the computing resource requirements of the first application, wherein the first virtual machine provides a first stream of display information associated with the first application, and wherein the first virtual machine adapts an encoding of the first stream at least partially based on an application type of the first application and available network bandwidth from the first virtual machine to the client device (102); Provision, by the Computing Resource Service Provider (106), to a second virtual machine, which is specifically adapted to execute the second application at least partially based on the computing resource requirements of the second application, wherein the second virtual machine provides a second stream of display information associated with the second application, wherein the computing resource requirements of the second application differ from the computational resource requirements of the first application, and wherein the second virtual machine adapts an encoding of the second stream at least partially based on an application type of the second application and an available network bandwidth from the second virtual machine to the client device (102); Combine, by the Computing Resource Service Provider (106), the first and second streams of display information; and Transmit the combined streams of display information.
- Computer-implemented method according to Claim 8 , where a window manager provides viewport information.
- Computer-implemented method according to Claim 9 , furthermore comprehensively: Omission of data from at least one of the first or second streams of display information, at least partially based on the viewport information.
- Computer-implemented method according to Claim 8 , furthermore, encompassing: Discontinuing the provisioning of at least one of the first or second virtual machines, at least partially, on the basis of a determination that a network connection to the client device (102) has been lost.
- Computer-implemented method according to Claim 8 , furthermore comprising a transfer of data for a user interface comprising a first window at least partially based on the first stream of display information from the first virtual machine, and comprising a second window at least partially based on the second stream of display information from the second virtual machine.
- Computer-implemented method according to Claim 8 , furthermore encompassing: Receiving data indicative of user input from one or more devices connected to the client device (102).
- Computer-implemented method according to Claim 8 , where the first stream of display information is at least partially encoded based on an application type of the first application.
- System comprising: at least one processor, and memory comprising instructions which, in response to their execution by the at least one processor, cause the system to do at least the following: Receive, through a computing resource service provider (106) comprising one or more computer systems, one or more requests, from a client device (102) to use a first application and a second application; Determine, through the computing resource service provider (106), computing resource requirements of the first application; Configure, through the computing resource service provider (106), a first virtual machine, which is specifically adapted to run the first application, wherein the first virtual machine is configured according to the computing resource requirements of the first application, wherein the first virtual machine sends a first stream of display information associated with the first application to the client device (102), wherein the first virtual machine adapts an encoding of the first stream at least partially based on an application type of the first application and available network bandwidth from the first virtual machine to the client device (102); Configure, by the compute resource service provider (106), a second virtual machine, which is specifically adapted to run the second application, wherein the second virtual machine is configured according to the compute resource requirements of the second application and the compute resource requirements of the second application are different from the compute resource requirements of the first application, wherein the second virtual machine sends a second stream of display information associated with the second application to the client device (102), wherein the second virtual machine adapts an encoding of the second stream at least partially based on an application type of the second application and an available network bandwidth from the second virtual machine to the client device (102), and wherein the client device (102) combines the first and second streams of display information to generate a user interface.
- System according to Claim 15 , where a window manager on the client device (102) provides view window information.
- System according to Claim 16 , wherein the memory comprises instructions which, in response to their execution by the at least one processor, cause the system to at least the following: omit data from a stream, wherein the data is omitted at least partially based on the view window information.
- System according to Claim 15 , wherein the memory comprises instructions which, in response to their execution by the at least one processor, cause the system to at least the following: Discontinue the provision of at least one of the first or second virtual machines, at least partially, on the basis of a determination that a network connection to the client device (102) has been lost.
- System according Claim 15 , wherein the user interface includes a first window at least partially based on the first stream of display information from the first virtual machine, and a second window at least partially based on the second stream of display information from the second virtual machine.
- System according to Claim 15 , wherein the memory comprises instructions which, in response to their execution by the at least one processor, cause the system to at least the following: receive data indicative of user input from one or more devices connected to the client device (102).
Description
GENERAL STATE OF THE ART In a business environment, many employees need access to computing resources to perform their job duties. An administrative employee, for example, might need access to word processing, data processing, and database access capabilities. An engineer might require computer-aided drafting (CAD) applications and complex simulation software. Some companies provide computing resources to their employees by acquiring personal computers for each worker. Personal computers can be configured with varying amounts of memory, storage, and processing capabilities. Specifying the right configuration for each employee is a challenging problem. If an employee is provided with computing resources that significantly exceed their computing needs, the excess resources may be wasted. If an employee is provided with insufficient computing resources, their ability to perform their job duties may be impaired, and the computer system may require premature replacement or costly upgrades. Some companies have chosen to address these issues by obtaining computing resources from online service providers (OSPs) when needed. An OSP can provide computing services to employees via thin clients or terminals. While this model allows for some flexibility in adjusting the amount of computing resources provided, determining the optimal amount of computing resources to provide to each employee can still be challenging, and it remains subject to the problems discussed above, among others. US 2007/0174410 A1 Disclosure reveals a system for integrating remote windows from remote desktop environments into a local desktop environment. The system comprises a first virtual channel coupled to a remote desktop environment provided by a virtual machine, a second virtual channel coupled to the remote desktop environment, and a local agent coupled to the remote desktop environment via the first and second virtual channels. The first virtual channel transmits graphical data associated with a remote window provided by the remote desktop environment. The second virtual channel transmits window attribute data associated with the remote window provided by the remote desktop environment. The local agent controls the creation of a local window in the local desktop environment that corresponds to the remote window provided by the remote desktop environment, with the first local window displaying the graphical data transmitted by the first virtual channel according to the window attribute data transmitted by the second virtual channel. US 7,971,182 B1 This document discloses systems and methods for running an application in an application-specific runtime environment. The application-specific runtime environment is defined by an application environment specification, which includes a minimal or reduced set of software resources required to run the application. The application environment is created by determining software resource dependencies and is used to provide the application-specific runtime environment in real time in response to a request to run the application. By using the application-specific runtime environment, the application can run with fewer computing resources, such as memory. US 2014/0258155 A1 Disclosing systems and methods for accessing an application located in a program execution service's data center, the metadata associated with a user's computer device can be used to determine whether that device is authorized to access the application through a virtual desktop instance. At least a portion of the application can be executed by the virtual desktop instance and made available to the user. Applications can be purchased, licensed, or rented by a user. US 2015/0019733 A1 This reveals a process for managing remote computing sessions, aimed at executing and managing aspects of virtual instances running on computers in a data center on a Program Execution Service (PES) platform. A computing session can be established between the PES platform and a computer connected to the PES platform via a communication network. Data created by the user of the client computing device interacting with the virtual instance can be stored and, after an interruption of the The data can be used when rebuilding the remote computing session. The invention is defined in the independent claims. Additional features of the invention are set forth in the dependent claims. BRIEF DESCRIPTION OF THE DRAWINGS Various techniques are described with reference to the drawings, in which the following applies: 1 shows an illustrative example of an environment in which different embodiments can be carried out; 2 shows an illustrative example of a process which, as a result of its execution according to an embodiment, determines the computing resource requirements for a client at least partially based on a group of selected application programs; 3 shows an illustrative example of a process which, as a result of its execution according to an embodiment, assigns a ty