IP Library › Granted Patent US 10,678,569
Granted Patent B2
US 10,678,569 · App. 15/911,387 · Granted Jun 9, 2020

Enhanced virtual desktop infrastructures

Inventors: Rabindra Mukraj (Scarsdale, NY); Ralph Maese (Nanuet, NY); Michael J. Strein (Bohemia, NY); Benjamin H. Kepler (Palisades, NY)
Assignee: Disney Enterprises, Inc.
G06F9/452G06F13/102H04L12/1845H04L41/22H04L63/0428H04L67/42H04L2212/00
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,678,569
App. No.
15/911,387
Granted
Jun 9, 2020
Kind
B2
Abstract

Performing an operation comprising providing, by a virtual desktop infrastructure (VDI) client, access to an application executing on a host system to a first client system via a network, receiving, from the first client system, at least one internet protocol (IP) packet specifying attributes of an input provided by an input/output (I/O) device of the client system, receiving a timestamp from a time source, and storing the attributes of the input and the timestamp as metadata of a first image corresponding to a first frame of a video output of the application.

Claims (67)

1. A method, comprising:

providing, by a virtual desktop infrastructure (VDI) host and to a first client system via a network, access to an application executing on a host system;

receiving, from the first client system, at least one internet protocol (IP) packet specifying attributes of a first input to the application, wherein the first input is provided by an input/output (I/O) device of the first client system;

receiving, from a time source, a first timestamp to associate with the first input; and

storing the attributes of the first input and the first timestamp as metadata of a first image comprising a first frame of a video output of the application, wherein the first frame corresponds to the first timestamp.

2. The method of claim 1 , further comprising:

compressing a second image comprising a second frame of the video output of the application;

encrypting the compressed second image and data describing an I/O state of the application;

generating, based on a modified IP protocol, one or more IP packets encapsulating the encrypted compressed second image and data describing the I/O state of the application;

transmitting the one or more IP packets to the first client system via the network; and

storing (i) a second timestamp received from the time source to associate with the second frame and (ii) the data describing the I/O state of the application as metadata of the second image.

3. The method of claim 1 , wherein access to the application is provided to a plurality of client systems including the first client system, the method further comprising:

upon determining the plurality of client systems are connected to a same local area network (LAN), transmitting the one or more IP packets as a multicast stream; and

upon determining the plurality of client systems are not connected to the same LAN, transmitting, to each client system, the one or more IP packets as a respective uniform datagram protocol (UDP) unicast stream of a plurality of synchronized UDP streams.

4. The method of claim 1 , wherein access to the application is provided to a plurality of client systems including the first client system, the method further comprising:

determining, by an arbitration manager of the VDI host, that a second client system of the plurality of client systems controls inputs to the application;

receiving, by the VDI host from the second client system, at least one IP packet encapsulating an indication of a second input provided by an I/O device of the second client system;

extracting, by the VDI host from the at least one IP packet received from the second client system, the indication of the second input; and

storing (i) a second timestamp received from the time source to associate with the second input and (ii) the indication of the second input.

5. The method of claim 4 , wherein the VDI host receives the at least one IP packet from the second client system as a UDP unicast stream, wherein the indication of the second input is encrypted, the method further comprising decrypting the indication of the second input.

6. The method of claim 1 , wherein the attributes of the first input comprise at least one of: (i) a type of the I/O device, (ii) a type of the first input, or (iii) a location on the video output of the application where the first input is received.

7. The method of claim 1 , wherein the first input comprises one or more of: (i) mouse input, (ii) keystroke input, (iii) speech input, or (iv) biometric input.

8. A non-transitory computer-readable medium having computer-readable program code embodied therewith, the computer-readable program code executable by a processor to perform an operation comprising:

providing, by a virtual desktop infrastructure (VDI) host and to a first client system via a network, access to an application executing on a host system;

receiving, from the first client system, at least one internet protocol (IP) packet specifying attributes of a first input to the application, wherein the first input is provided by an input/output (I/O) device of the first client system;

receiving, from a time source, a first timestamp to associate with the first input; and

storing the attributes of the first input and the first timestamp as metadata of a first image comprising a first frame of a video output of the application, wherein the first frame corresponds to the first timestamp.

9. The non-transitory computer-readable medium of claim 8 , the operation further comprising:

compressing a second image comprising a second frame of the video output of the application;

encrypting the compressed second image and data describing an I/O state of the application;

generating, based on a modified IP protocol, one or more IP packets encapsulating the encrypted compressed second image and data describing the I/O state of the application;

transmitting the one or more IP packets to the first client system via the network; and

storing (i) a second timestamp received from the time source to associate with the second frame and (ii) the data describing the I/O state of the application as metadata of the second image.

10. The non-transitory computer-readable medium of claim 8 , wherein access to the application is provided to a plurality of client systems including the first client system, the operation further comprising:

upon determining the plurality of client systems are connected to a same local area network (LAN), transmitting the one or more IP packets as a multicast stream; and

upon determining the plurality of client systems are not connected to the same LAN, transmitting, to each client system, the one or more IP packets as a respective uniform datagram protocol (UDP) unicast stream of a plurality of synchronized UDP streams.

11. The non-transitory computer-readable medium of claim 8 , wherein access to the application is provided to a plurality of client systems including the first client system, the operation further comprising:

determining, by an arbitration manager of the VDI host, that a second client system of the plurality of client systems controls inputs to the application;

receiving, by the VDI host from the second client system, at least one IP packet encapsulating an indication of a second input provided by an I/O device of the second client system;

extracting, by the VDI host from the at least one IP packet received from the second client system, the indication of the second input; and

storing (i) a second timestamp received from the time source to associate with the second input and (ii) the indication of the second input.

12. The non-transitory computer-readable medium of claim 11 , wherein the VDI host receives the at least one IP packet from the second client system as a UDP unicast stream, wherein the indication of the second input is encrypted, the operation further comprising decrypting the indication of the second input.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the attributes of the first input comprise at least one of: (i) a type of the I/O device, (ii) a type of the first input, or (iii) a location on the video output of the application where the first input is received.

14. The non-transitory computer-readable medium of claim 8 , wherein the first input comprises one or more of: (i) mouse input, (ii) keystroke input, (iii) speech input, or (iv) biometric input.

15. A system, comprising

a computer processor; and

a memory containing a program which, when executed by the computer processor, performs an operation comprising:

providing, by a virtual desktop infrastructure (VDI) host and to a first client system via a network, access to an application executing on a host system;

receiving, from the first client system, at least one internet protocol (IP) packet specifying attributes of a first input to the application, wherein the first input is provided by an input/output (I/O) device of the first client system;

receiving, from a time source, a first timestamp to associate with the first input; and

storing the attributes of the first input and the first timestamp as metadata of a first image comprising a first frame of a video output of the application, wherein the first frame corresponds to the first timestamp.

16. The system of claim 15 , the operation further comprising:

compressing a second image comprising a second frame of the video output of the application;

encrypting the compressed second image and data describing an I/O state of the application;

generating, based on a modified IP protocol, one or more IP packets encapsulating the encrypted compressed second image and data describing the I/O state of the application;

transmitting the one or more IP packets to the first client system via the network; and

storing (i) a second timestamp received from the time source to associate with the second frame and (ii) the data describing the I/O state of the application as metadata of the second image.

17. The system of claim 15 , wherein access to the application is provided to a plurality of client systems including the first client system, the operation further comprising:

upon determining the plurality of client systems are connected to a same local area network (LAN), transmitting the one or more IP packets as a multicast stream; and

upon determining the plurality of client systems are not connected to the same LAN, transmitting, to each client system, the one or more IP packets as a respective uniform datagram protocol (UDP) unicast stream of a plurality of synchronized UDP streams.

18. The system of claim 15 , wherein access to the application is provided to a plurality of client systems including the first client system, the operation further comprising:

determining, by an arbitration manager of the VDI host, that a second client system of the plurality of client systems controls inputs to the application;

receiving, by the VDI host from the second client system, at least one IP packet encapsulating an indication of a second input provided by an I/O device of the second client system;

extracting, by the VDI host from the at least one IP packet received from the second client system, the indication of the second input; and

storing (i) a second timestamp received from the time source to associate with the second input and (ii) the indication of the second input.

19. The system of claim 18 , wherein the VDI host receives the at least one IP packet from the second client system as a UDP unicast stream, wherein the indication of the second input is encrypted, the operation further comprising decrypting the indication of the second input.

20. The system of claim 15 , wherein the attributes of the first input comprise at least one of: (i) a type of the I/O device, (ii) a type of the first input, or (iii) location on the video output of the application where the first input is received, wherein the first input comprises one or more of: (i) mouse input, (ii) keystroke input, (iii) speech input, or (iv) biometric input.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2018
From: MUKRAJ, RABINDRA; MAESE, RALPH; STREIN, MICHAEL J.; KEPLER, BENJAMIN H.
To: DISNEY ENTERPRISES, INC.
Reel/Frame 045104/0333 →
Continuity (1)
Related Publication 20190272185A1 · Sep 5, 2019