TECHNICAL FIELD

The present disclosure relates to desktop virtualization, and more particularly, to deploying applications as they are used.

BACKGROUND

Traditionally, personal computers include combinations of operating systems, applications, and user settings, which are each managed individually by owners or administrators on an ongoing basis. However, many organizations are now using desktop virtualization to provide a more flexible option to address the varying needs of their users.

In desktop virtualization, a user's computing environment (e.g., operating system, applications, and/or user settings) may be separated from the user's physical computing device (e.g., smartphone, laptop, desktop computer). Using client-server technology, a “virtualized desktop” may be stored in and administered by a remote server, rather than in the local storage of the client computing device.

Managing custom images for a wide range of users and use cases is expensive and complex. Typically, organizations build a smaller number of images to reduce management and testing complexity, at the cost of over-installing applications (on those images) beyond the needs of any one user. This increases overall cost because the software must be licensed for all users that consume the image, even if they do not use the software. This also increases complexity and cost when an application needs to be updated for all users since more testing and downtime are required for deploying a large number of desktops.

SUMMARY

A virtual server includes at least one processor configured to create a single composited layered image comprising an operating system layer and an application shortcut that includes a representation of an application while not including the application, and provide the single composited layered image as a virtual session to a client computing device. The at least one processor may mount an application layer to the single composited layered image in response to a user of the client computing device interacting with the application shortcut, with the application layer including the application.

The application shortcut may include an application shortcut layer. The virtual session may include at least one of a virtual application and a virtual desktop.

The application shortcut may advantageously allow an application to deploy on-demand, as it is used, rather than built into images and/or deployed independent of usage. With the application shortcut, the user experiences what appears to be an installed, fully functional application. Instead, the user does not receive the application until the user attempts to use it which then causes the application to be instantly delivered to the user. When the application is a licensed application, no licensing costs are incurred when the shortcut application is deployed and unused since no application software is actually included as part of the application shortcut.

Mounting the application layer to the single composited layered image may seamlessly make the application available to the user.

The application shortcut may transfer control to the application in response to the user interacting with the application shortcut.

The user may interact with the application shortcut, for example, by requesting the application to be launched, with the request being intercepted by the application shortcut causing the at least one processor to mount the application layer so that the application is available to the user.

The user may interact with the application shortcut, for example, by requesting a file mapped to the application to be opened, with the request being intercepted by the application shortcut causing the at least one processor to mount the application layer so that the application is available to the user.

The application shortcut may include an icon and textual information representing the application.

The application shortcut may include a programs menu, file extension mapping and component object model (COM) objects representing the application.

The at least one processor may be further configured to apply a lease schedule to the application, with the lease schedule defining an amount of time the at least one processor is to create the single composited layered image to include the application layer a next time the user logs into the virtual server. After the lease schedule ends, the at least one processor may be further configured to revert to the application shortcut the next time the user logs into the virtual server.

The at least one processor may be further configured to provide the single composited layered image as a virtual session to a plurality of client computing devices, with the lease schedule limiting a total number of users of the application.

The at least one processor may be further configured to report on usage of the application each time the user logs into the virtual server. The at least one processor may be further configured to revert to the application shortcut a next time the user logs into the virtual server if the application is not being used by the user.

The at least one processor may be further configured, in response to the user interacting with the application shortcut, to compare a location of the client computing device to an application geo-location database before mounting the application layer to the single composited layered image, with the application geo-location database defining where the application can be accessed.

Another aspect is directed to a method for operating a virtual server comprising creating a single composited layered image comprising an operating system layer and an application shortcut that includes a representation of an application while not including the application, and providing the single composited layered image as a virtual session to a client computing device. An application layer is mounted to the single composited layered image in response to a user of the client computing device interacting with the application shortcut, with the application layer including the application.

Yet another aspect is directed to a non-transitory computer readable medium for operating a virtual server, and with the non-transitory computer readable medium having a plurality of computer executable instructions for causing the virtual server to perform steps as described above.

