CA2903992C

Application marketplace for virtual desktops

Abstract

Systems and methods are presented for accessing an application available from a data center of a program execution service. The metadata associated with a user computing device may be used to determine whether the user computing device is authorized to access the application through a virtual desktop instance. At least a portion of the application may be executed by the virtual desktop instance and provided to the user. Applications may be purchased, licensed, or rented by a user.

CA2903992C, drawing sheet 1
Sheet 1 of 14

Term

7.4 yearsleft in the term

Expires 4 March 2034.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

47 claims: 40 independent, 7 dependent

  1. 1
    EMBODIMENTS IN WHICH AN EXCLUSIVE PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:1. A method for accessing an application available from a data center of a program execution service, the method comprising: providing, by a Program Execution Service (PES) to a user computing device associated with a user of the PES, access to an application marketplace for searching for an application to be executed by a virtual desktop instance, wherein the PES includes a plurality of data centers, each data center including one or more physical computing systems configurable to execute one or more virtual desktop instances, each virtual desktop instance associated with a computing environment that includes an operating system configurable to execute one or more applications;receiving, by the application marketplace, a request from the user to access the application on the virtual desktop instance from the user computing device;determining an entity associated with the user, the entity being one of a plurality of separate entities with access to the PES, each of the plurality of separate entities associated with entity-specific resource placement rules specific to the entity;selecting a resource placement rule from the entity-specific resource placement rules of the entity based at least in part on an identification of a user-group of the user, the user-group being one of a plurality of usergroups of the entity and determined by a role of the users included in the user-group, wherein the resource placement rule specifies a maximum -61 CA 2903992 2019-06-03 percentage of users from the user-group that are permitted to access computing resources on a first set of computing systems that share a physical computing resource, wherein additional users from the usergroup access the computing resources on a second set of computing systems that do not share the physical computing resource to reduce an amount of application down-time for the entity by managing distribution of users from the entity among the one or more physical computing systems;determining, based at least in part on metadata associated with the user computing device and the resource placement rule, whether the user is authorized to access the application on the user computing device, wherein the metadata comprises authorization information indicative of whether the user is authorized to access the application;and in response to determining that the user is authorized to access the application on the user computing device: selecting the first set of computing systems to host the virtual desktop instance, the first set of computing systems hosted at a data center and selected based at least in part on the resource placement rule;determining whether the maximum percentage of users from the user-group specified in the resource placement rule are accessing the first set of computing systems;and in response to determining that the maximum percentage of users from the user-group are accessing the first set of computing systems: -62CA 2903992 2019-06-03 selecting the second set of computing systems to host the virtual desktop instance, the second set of computing systems also hosted at the data center and being accessed by less than the maximum percentage of users from the user-group, wherein users from other user-groups of the plurality of usergroups are permitted to continue to access the first set of computing systems;determining that an existing virtual desktop instance hosted by the second set of computing systems does not exist to satisfy the request from the user;instantiating the virtual desktop instance on a computing system from the second set of computing systems;configuring the application to be executed from the virtual desktop instance on the computing system from the second set of computing systems;in response to receiving a command to execute the application, causing the application to be executed from the virtual desktop instance on the computing system from the second set of computing systems;and providing, to the user computing device, access to at least a portion of the application from the virtual desktop instance on the computing system from the second set of computing systems. -63CA 2903992 2019-06-03
  2. 4
    The method of any one of claims 1 to 3, wherein providing access to at least a portion of the application comprises streaming the virtual desktop instance to the user computing device.
  3. 5
    The method of any one of claims 1 to 3, wherein providing access to at least a portion of the application comprises streaming a portion of the application to the user computing device.
  4. 6
    The method of any one of claims 1 to 5, further comprising sending a notification to the user at an expiration of an application rental period notifying the user of the expiration of the application rental period, the application rental period comprising a period of time during which the user is authorized to access the application.
  5. 7
    The method of any one of claims 1 to 5, wherein the metadata further comprises purchasing information indicative of whether the user has purchased, rented, or licensed the application from the application marketplace.
  6. 8
    The method of any one of claims 1 to 7, further comprising removing the portion of the application from the user computing device upon completion of a usage session for the application. -64CA 2903992 2019-06-03
  7. 9
    The method of any one of claims 1 to 8, wherein the authorization information comprises authorization information indicative of whether the user is authorized to access the application from the PES.
  8. 10
    The method of any one of claims 1 to 9, wherein the authorization information comprises authorization information indicative of whether the user is authorized to access the application from the user computing device.
  9. 11
    The method of any one of claims 1 to 10, further comprising accessing the metadata associated with the user computing device before determining, based at least in part on the metadata and the resource placement rule, whether the user is authorized to access the application.
  10. 12
    The method of any one of claims 1 to 11, wherein the first set of computing systems is further selected based at least in part on an amount of users accessing the data center hosting the first set of computing systems.
  11. 13
    The method of any one of claims 1 to 12, wherein the first set of computing systems is further selected based at least in part on an amount of users from the entity accessing the data center hosting the first set of computing systems.
  12. 14
    The method of any one of claims 1 to 13, wherein the PES is accessible by the user computing device via a network.
  13. 15
    The method of any one of claims 1 to 14, wherein different roles of the users are associated with different resource placement rules within the entity-specific resource placement rules.
  14. 16
    A non-transitory computer readable medium storing computer-executable instructions that, when executed, cause at least one processor associated with -65CA 2903992 2019-06-03 at least one data center of the PES of any one of claims 1 to 15 to perform the method of any one of claims 1 to 15.
  15. 17
    A system comprising:the non-transitory computer readable medium of claim 16;and at least one processor associated with at least one data center of the PES of any one of claims 1 to 15 and in communication with the non-transitory computer readable medium of claim 16 and configured to execute the computer executable instructions to cause the at least one processor to execute the method of any one of claims 1 to 15.
  16. 18
    A system for accessing an application available from a data center of a program execution service, the system comprising:a Program Execution Service (PES) comprising a number of data centers, each data center including one or more physical computing systems configurable to execute one or more virtual desktop instances, each virtual desktop instance associated with a computing environment that includes an operating system configurable to execute one or more applications, the PES including an application marketplace accessible to search for one or more of the virtual desktop instances or one or more applications, the PES further comprising: a data center computer programmed to: provide, to a user computing device associated with a user of the PES, access to the application marketplace for searching for an application to be executed by a virtual desktop instance;-66CA 2903992 2019-06-03 receive, by the application marketplace, a request from the user to access the application on the virtual desktop instance from the user computing device;determine an entity associated with the user, the entity being one of a plurality of separate entities with access to the PES, each of the plurality of separate entities associated with entityspecific resource placement rules specific to the entity;select a resource placement rule from the entity-specific resource placement rules of the entity based at least in part on an identification of a user-group of the user, the user-group being one of a plurality of user-groups of the entity and determined by a role of the users included in the user-group, wherein the resource placement rule specifies a maximum percentage of users from the user-group that are permitted to access computing resources on a first set of computing systems that share a physical computing resource, wherein additional users from the user-group access the computing resources on a second set of computing systems that do not share the physical computing resource to reduce an amount of application down-time for the entity by managing distribution of users from the entity among the one or more physical computing systems;determine, based at least in part on metadata associated with the user computing device and the resource placement rule, whether the user is authorized to access the application on the user computing device, wherein the metadata comprises -67CA 2903992 2019-06-03 information indicative of whether the user is authorized to access the application;and in response to determining that the user is authorized to access the application on the user computing device: select the first set of computing systems to host the virtual desktop instance, the first set of computing systems hosted at a data center and selected based at least in part on the resource placement rule;determine whether the maximum percentage of users from the user-group specified in the resource placement rule are accessing the first set of computing systems;and in response to determining that the maximum percentage of users from the user-group are accessing the first set of computing systems: select the second set of computing systems to host the virtual desktop instance, the second set of computing systems also hosted at the data center and being accessed by less than the maximum percentage of users from the user-group, wherein users from other user-groups of the plurality of usergroups are permitted to continue to access the first set of computing systems;-68CA 2903992 2019-06-03 determine that an existing virtual desktop instance hosted by the second set of computing systems does not exist to satisfy the request from the user;instantiate the virtual desktop instance on a computing system from the second set of computing systems;cause the application to be executed from the virtual desktop instance on the computing system from the second set of computing systems;and provide, to the user computing device, access to at least a portion of the application from the virtual desktop instance on the computing system from the second set of computing systems.
  17. 21
    The system of any one of claims 18 to 20, wherein to provide access to the portion of the application, the data center computer is programmed to stream the virtual desktop instance to the user computing device.
  18. 22
    The system of any one of claims 18 to 20, wherein to provide access to the portion of the application, the data center computer is programmed to stream the portion of the application to the user computing device. -69CA 2903992 2019-06-03
  19. 23
    The system of any one of claims 18 to 22, wherein the data center computer is further programmed to send a notification to the user at an expiration of an application rental period notifying the user of the expiration of the application rental period, the application rental period comprising a period of time during which the user is authorized to access the application.
  20. 24
    The system of any one of claims 18 to 22, wherein the metadata further comprises purchasing information indicative of whether the user has purchased, rented, or licensed the application from the application marketplace.
  21. 25
    The system of any one of claims 18 to 24, wherein the data center computer is further programmed to remove the portion of the application from the user computing device upon completion of a usage session for the application.
  22. 26
    The system any one of claims 18 to 25, wherein the information indicative of whether the user is authorized to access the application comprises information indicative of whether the user is authorized to access the application from the PES.
  23. 27
    The system any one of claims 18 to 26, wherein the information indicative of whether the user is authorized to access the application comprises information indicative of whether the user is authorized to access the application from the user computing device.
  24. 28
    The system of any one of claims 18 to 27, wherein the data center computer is further programmed to access the metadata associated with the user computing device before determining, based at least in part on the metadata -70CA 2903992 2019-06-03 and the resource placement rule, whether the user is authorized to access the application.
  25. 29
    The system of any one of claims 18 to 28, wherein the first set of computing systems is further selected based at least in part on an amount of users accessing the data center hosting the first set of computing systems.
  26. 30
    The system of any one of claims 18 to 29, wherein the first set of computing systems is further selected based at least in part on an amount of users from the entity accessing the data center hosting the first set of computing systems.
  27. 31
    The system of any one of claims 18 to 30, wherein the PES is accessible by the user computing device via a network.
  28. 32
    The system of any one of claims 18 to 31, wherein different roles of the users are associated with different resource placement rules within the entity-specific resource placement rules.
  29. 33
    A non-transitory physical computer storage medium storing computerexecutable instructions that, when executed, direct a computing system to perform a method for accessing an application available from a data center of a program execution service, the method comprising:providing, by a Program Execution Service (PES) to a user computing device associated with a user of the PES, access to an application marketplace for searching for an application to be executed by a virtual desktop instance, wherein the PES includes a plurality of data centers, each data center including one or more physical computing systems configurable to execute one or more virtual desktop instances, each virtual desktop instance associated with a computing environment that -71 CA 2903992 2019-06-03 includes an operating system configurable to execute one or more applications;receiving, by the application marketplace, a request from the user to access the application on the virtual desktop instance from the user computing device;determining an entity associated with the user, the entity being one of a plurality of separate entities with access to the PES, each of the plurality of separate entities associated with entity-specific resource placement rules specific to the entity;selecting a resource placement rule from the entity-specific resource placement rules of the entity based at least in part on an identification of a user-group of the user, the user-group being one of a plurality of usergroups of the entity and determined by a role of the users included in the user-group, wherein the resource placement rule specifies a maximum percentage of users from the user-group that are permitted to access computing resources on a first set of computing systems that share a physical computing resource, wherein additional users from the usergroup access the computing resources on a second set of computing systems that do not share the physical computing resource to reduce an amount of application down-time for the entity by managing distribution of users from the entity among the one or more physical computing systems;determining, based at least in part on metadata associated with the user computing device and the resource placement rule, whether the user is authorized to access the application on the user computing device, wherein the metadata comprises information indicative of whether the user is authorized to access the application;-72CA 2903992 2019-06-03 in response to determining that the user is authorized to access the application on the user computing device: selecting the first set of computing systems to host the virtual desktop instance, the first set of computing systems hosted at a data center and selected based at least in part on the resource placement rule;determining whether the maximum percentage of users from the user-group specified in the resource placement rule are accessing the first set of computing systems;and in response to determining that the maximum percentage of users from the user-group are accessing the first set of computing systems: selecting the second set of computing systems to host the virtual desktop instance, the second set of computing systems also hosted at the data center and being accessed by less than the maximum percentage of users from the user-group, wherein users from other user-groups of the plurality of usergroups are permitted to continue to access the first set of computing systems;determining that an existing virtual desktop instance hosted by the second set of computing systems does not exist to satisfy the request from the user;-73CA 2903992 2019-06-03 instantiating the virtual desktop instance on a computing system from the second set of computing systems;causing the application to be executed from the virtual desktop instance on the computing system from the second set of computing systems;and providing, to the user computing device, access to at least a portion of the application from the virtual desktop instance on the computing system from the second set of computing systems.
  30. 36
    The non-transitory physical computer storage of any one of claims 33 to 35, wherein providing access to at least a portion of the application comprises streaming a portion of the application to the user computing device.
  31. 37
    37 The non-transitory physical computer storage of any one of claims 33 to 35, wherein providing access to at least a portion of the application comprises streaming the virtual desktop instance to the user computing device.
  32. 38
    The non-transitory physical computer storage of any one of claims 33 to 37, wherein the method further comprises sending a notification to the user at an expiration of an application rental period notifying the user of the expiration of -74CA 2903992 2019-06-03 the application rental period, the application rental period comprising a period of time during which the user is authorized to access the application.
  33. 39
    The non-transitory physical computer storage of any one of claims 33 to 37, wherein the metadata further comprises purchasing information indicative of whether the user has purchased, rented, or licensed the application from the application marketplace.
  34. 40
    The non-transitory physical computer storage of any one of claims 33 to 39, further comprising removing the portion of the application from the user computing device upon completion of a usage session for the application.
  35. 41
    The non-transitory physical computer storage of any one of claims 33 to 40, wherein the information indicative of whether the user is authorized to access the application comprises information indicative of whether the user is authorized to access the application from the PES.
  36. 42
    The non-transitory physical computer storage of any one of claims 33 to 41, wherein the information indicative of whether the user is authorized to access the application comprises information indicative of whether the user is authorized to access the application from the user computing device.
  37. 43
    The non-transitory physical computer storage of any one of claims 33 to 42, further comprising accessing the metadata associated with the user computing device before determining, based at least in part on the metadata and the resource placement rule, whether the user is authorized to access the application.
  38. 44
    The non-transitory physical computer storage of any one of claims 33 to 43, wherein the first set of computing systems is further selected based at least in -75CA 2903992 2019-06-03 part on an amount of users accessing the data center hosting the first set of computing systems.
  39. 45
    The non-transitory physical computer storage of any one of claims 33 to 44, wherein the first set of computing systems is further selected based at least in part on an amount of users from the entity accessing the data center hosting the first set of computing systems.
  40. 46
    The non-transitory physical computer storage of any one of claims 33 to 45, wherein the PES is accessible by the user computing device via a network.
  41. 47
    The ηοη-transitory physical computer storage of any one of claims 33 to 46, wherein different roles of the users are associated with different resource placement rules within the entity-specific resource placement rules.
Independent claims41