IP Library Granted Patent US 10,073,709
Granted Patent B2
US 10,073,709 · App. 14/611,926 · Granted Sep 11, 2018

Session monitoring of virtual desktops in a virtual machine farm

Inventors: Artem Belkine (Renton, WA); Ido Ben-Shachar (Kirkland, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/45533G06F9/505G06F11/301G06F11/3409H04L67/08H04L67/14G06F9/452G06F2209/5016
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,073,709
App. No.
14/611,926
Granted
Sep 11, 2018
Kind
B2
Abstract

Disclosed are techniques for determining the status of virtual machine sessions on a computing device for a user by reading from a memory location written to by a program executing within a virtual machine. The memory location is preferably a registry key that contains the status of a remote user session operating on a guest operating system operational on the virtual machine, the virtual machine executing in a virtual environment comprising a plurality of virtual machines operating on a computing device.

Claims (31)

1. A method comprising:

writing, into a memory location by a host module operating on a computing device, information indicative of a status of a remote user session executing in conjunction with a guest operating system of a virtual machine, the virtual machine executing in a virtual environment comprising a plurality of virtual machines operating on the computing device;

when notifications indicative of a change to an asynchronous memory location are not available, polling, at one of a plurality of selectable rates, the status of the remote user session from the memory location by the host module, wherein the one selectable rate is selected based on a previous status of the remote user session written in the memory location, and wherein the status is usable to reconnect the remote user session;

when notifications indicative of a change to the asynchronous memory location are available, receiving information indicative of an updated status of the remote user session; and

updating a second computing device with the status of the user session.

2. The method of claim 1 , wherein the status of the remote user session is read from a registry key within the guest operating system.

3. The method of claim 1 , wherein the polling is performed by a virtualization manager program.

4. The method of claim 1 , further comprising tracking user sessions based on data received from the computing device.

5. The method of claim 4 , further comprising tracking a session state.

6. The method of claim 1 , wherein the host module is configured to operate in conjunction with a second operating system executing on the computing device.

7. A system adapted to connect a client computer to one of a plurality of virtual machines executing on one or more servers, comprising:

at least one computing device comprising a processor; and

at least one memory communicatively coupled to said at least one computing device when the system is operational, the memory having stored therein computer-executable instructions that when executed cause:

determining, by a host module, a current state of a user session operating on one of the virtual machines by polling a memory location at one of a plurality of selectable rates, wherein the one selectable rate is selected based on a previous status of the user session written in the memory location, and wherein the current state is usable to reconnect the user session;

reporting, by the host module, the determined current state to the one or more servers, wherein the current state is usable to connect remote computing devices with preexisting user sessions; and

reporting the current state by writing the current state to the memory location.

8. The system of claim 7 , wherein the memory location is a registry key within a guest operating system executing on the one virtual machine.

9. The system of claim 8 , wherein a virtualization manager comprises the host module, and wherein the virtualization manager is configured to poll values stored in the registry key.

10. The system of claim 7 , wherein the computer-executable instructions further cause tracking user sessions based on information received from the computing device hosting the virtual machine.

11. The system of claim 10 , wherein the information includes a session state.

12. The system of claim 11 , wherein the host module is configured to operate in a second operating system.

13. The system of claim 10 , wherein the user sessions are connected to a virtual machine using Remote Desktop Protocol (RDP).

14. A computer-readable storage device storing thereon computer executable instructions for enabling connection of a computer to one of a plurality of virtual machines executing on a plurality of servers, the computer-readable storage device storing thereon instructions for:

writing, into a memory location by a host module operating on a computing device, information indicative of a status of a remote user session executing in conjunction with a guest operating system of a virtual machine, the virtual machine executing in a virtual environment comprising a plurality of virtual machines operating on the computing device;

when notifications indicative of a change to an asynchronous memory location are not available, polling, at one of a plurality of selectable rates, the status of the remote user session from the memory location by the host module, wherein the one selectable rate is selected based on a previous status of the remote user session written in the memory location, and wherein the status is usable to reconnect the remote user session;

when notifications indicative of a change to the asynchronous memory location are available, receiving information indicative of an updated status of the remote user session; and

updating a second computing device with the status of the user session.

15. The computer-readable storage device of claim 14 , wherein the previous status is stored in memory location is a registry key within the guest operating system.

16. The computer-readable storage device of claim 15 , further comprising instructions for instantiating a virtualization manager program configured to poll values stored in the registry key.

17. The computer-readable storage device of claim 14 , further comprising instructions for reporting the status to a server configured to track user sessions based on the status.

18. The computer-readable storage device of claim 14 , further comprising instructions for instantiating a host module in a second operating system, the host module configured to read the status from a memory location within the guest operating system.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2015
From: BELKINE, ARTEM; BEN-SHACHAR, IDO
To: MICROSOFT CORPORATION
Reel/Frame 035107/0946 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 035108/0040 →
Continuity (2)
Continuation 12642638 · Dec 18, 2009
Related Publication 20150150007A1 · May 28, 2015