IP Library Granted Patent US 11,588,721
Granted Patent B2
US 11,588,721 · App. 17/411,080 · Granted Feb 21, 2023

Measuring performance of virtual desktop event redirection

Inventors: Janani Karthikeyan (Tiruppur, IN); Lakshmi Gayatri Kundem (Bangalore, IN); Duraipandian Kuppuraman (Bangalore, IN); Srinivas Shyam Pinjala (Bangalore, IN)
Assignee: VMWARE, INC.
H04L43/50G06F9/45558G06K19/06037H04L43/045
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 11,588,721
App. No.
17/411,080
Granted
Feb 21, 2023
Kind
B2
Abstract

The disclosure provides an approach for measuring performance between a virtualized desktop infrastructure (VDI) client running on a client device and a remote computing device. Embodiments include generating, by a performance client on the client device, an event and storing a time associated with generating the event. Embodiments include transmitting, by the VDI client to the remote computing device, a message based on the OS event. Embodiments include determining, by a performance agent on the remote computing device, a time associated with receiving the message at the remote computing device and causing an indication of the time to be displayed in a virtual desktop screen. Embodiments include extracting, by the performance client, from the virtual desktop screen, the time, and determining a performance metric based on the extracted time and the time associated with receiving the message at the remote computing device.

Claims (54)

1. A method of measuring performance between a virtualized desktop infrastructure (VDI) client running on a client device and a remote computing device, wherein the remote computing device is connected to the VDI client through a network, the method comprising:

generating, by a performance client on the client device, an operating system (OS) event;

storing, by the performance client, a time associated with generating the OS event on the client device;

transmitting, by the VDI client to the remote computing device, a message based on the OS event;

determining, by a performance agent on the remote computing device, a time associated with receiving the message at the remote computing device;

generating, by the performance agent, a digital code representing the time associated with receiving the message at the remote computing device;

causing, by the performance agent, the digital code to be displayed in a virtual desktop screen;

reading, by the performance client, the digital code in an image of the virtual desktop screen to extract the time associated with receiving the message at the remote computing device from the digital code; and

determining, by the performance client, a performance metric based on the time associated with generating the OS event on the client device and the time associated with receiving the message at the remote computing device.

2. The method of claim 1 , wherein the digital code comprises a quick response (QR) code.

3. The method of claim 1 , further comprising performing one or more performance optimizations at the VDI client or the remote computing device based on the performance metric, wherein the one or more performance optimizations comprise one or more of:

batching, by the VDI client, a plurality of OS events for transmission to the remote computing device in a single message;

reducing a frame rate associated with transmitting the virtual desktop screen from the remote computing device to the VDI client; or

dropping, by the VDI client, one or more intermediate OS events occurring between a first OS event and a second OS event.

4. The method of claim 1 , wherein determining, by the performance client, the performance metric based on the time associated with generating the OS event on the client device and the time associated with receiving the message at the remote computing device comprises calculating a difference between the time associated with generating the OS event on the client device and the time associated with receiving the message at the remote computing device to determine a latency between the VDI client and the remote computing device.

5. The method of claim 1 , further comprising determining, by the performance client, an additional performance metric based on:

the time associated with generating the OS event on the client device; and

a time at which the digital code is visible in the virtual desktop screen at the client device.

6. The method of claim 1 , further comprising determining, by the performance client, an additional performance metric based on:

the time associated with receiving the message at the remote computing device or a time associated with causing, by the performance agent, the digital code to be displayed in the virtual desktop screen; and

a time at which the digital code is visible in the virtual desktop screen at the client device.

7. A system for measuring performance between a virtualized desktop infrastructure (VDI) client running on a client device and a remote computing device, wherein the remote computing device is connected to the VDI client through a network, the system comprising:

at least one memory; and

at least one processor coupled to the at least one memory, the at least one processor and the at least one memory configured to:

generate, by a performance client on the client device, an operating system (OS) event;

store, by the performance client, a time associated with generating the OS event on the client device;

transmit, by the VDI client to the remote computing device, a message based on the OS event;

determine, by a performance agent on the remote computing device, a time associated with receiving the message at the remote computing device;

generate, by the performance agent, a digital code representing the time associated with receiving the message at the remote computing device;

cause, by the performance agent, the digital code to be displayed in a virtual desktop screen;

read, by the performance client, the digital code in an image of the virtual desktop screen to extract the time associated with receiving the message at the remote computing device from the digital code; and

determine, by the performance client, a performance metric based on the time associated with generating the OS event on the client device and the time associated with receiving the message at the remote computing device.

8. The system of claim 7 , wherein the digital code comprises a quick response (QR) code.

9. The system of claim 7 , wherein the at least one processor and the at least one memory are further configured to perform one or more performance optimizations at the VDI client or the remote computing device based on the performance metric, and wherein the one or more performance optimizations comprise one or more of:

batching, by the VDI client, a plurality of OS events for transmission to the remote computing device in a single message;

reducing a frame rate associated with transmitting the virtual desktop screen from the remote computing device to the VDI client; or

dropping, by the VDI client, one or more intermediate OS events occurring between a first OS event and a second OS event.

10. The system of claim 7 , wherein determining, by the performance client, the performance metric based on the time associated with generating the OS event on the client device and the time associated with receiving the message at the remote computing device comprises calculating a difference between the time associated with generating the OS event on the client device and the time associated with receiving the message at the remote computing device to determine a latency between the VDI client and the remote computing device.

11. The system of claim 7 , wherein the at least one processor and the at least one memory are further configured to determine, by the performance client, an additional performance metric based on:

the time associated with generating the OS event on the client device; and

a time at which the digital code is visible in the virtual desktop screen at the client device.

12. The system of claim 7 , wherein the at least one processor and the at least one memory are further configured to determine, by the performance client, an additional performance metric based on:

the time associated with receiving the message at the remote computing device or a time associated with causing, by the performance agent, the digital code to be displayed in the virtual desktop screen; and

a time at which the digital code is visible in the virtual desktop screen at the client device.

13. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to:

generate, by a performance client on a client device, an operating system (OS) event;

store, by the performance client, a time associated with generating the OS event on the client device;

transmit, by a VDI client to a remote computing device, a message based on the OS event;

determine, by a performance agent on the remote computing device, a time associated with receiving the message at the remote computing device;

generate, by the performance agent, a digital code representing the time associated with receiving the message at the remote computing device;

cause, by the performance agent, the digital code to be displayed in a virtual desktop screen;

read, by the performance client, the digital code in an image of the virtual desktop screen to extract the time associated with receiving the message at the remote computing device from the digital code; and

determine, by the performance client, a performance metric based on the time associated with generating the OS event on the client device and the time associated with receiving the message at the remote computing device.

14. The non-transitory computer-readable medium of claim 13 , wherein the digital code comprises a quick response (QR) code.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2021
From: KARTHIKEYAN, JANANI; KUNDEM, LAKSHMI GAYATRI; KUPPURAMAN, DURAIPANDIAN; PINJALA, SRINIVAS SHYAM
To: VMWARE, INC.
Reel/Frame 057278/0709 →