IP Library Granted Patent US 11,720,309
Granted Patent B2
US 11,720,309 · App. 17/650,261 · Granted Aug 8, 2023

Feature-based flow control in remote computing environments

Inventors: Hui Zhang (Beijing, CN); Weigang Huang (Beijing, CN); Kun Shi (Beijing, CN); Jinxing Hu (Beijing, CN); Hui Yuan (Beijing, CN)
Assignee: VMWARE, INC.
G06F3/1285G06F3/1203G06F3/1224G06F3/1253G06F3/1268G06F3/1296G06F9/452
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,720,309
App. No.
17/650,261
Granted
Aug 8, 2023
Kind
B2
Abstract

The disclosure provides an approach for print redirection in a remote computing environment. Embodiments include receiving, on a remote device, a request to perform a printing task using a printing device associated with a client device. Embodiments include determining, on the remote device, that data associated with the request to perform the printing task exceeds a size threshold. Embodiments include generating, on the remote device, a plurality of data slices based on the data, wherein each respective data slice of the plurality of data slices comprises a respective subset of the data that does not exceed the size threshold. Embodiments include transmitting, from the remote device to the client device, the plurality of data slices as separate transmissions in separate time intervals along with information that allows the data to be reconstructed from the plurality of data slices for performing the printing task on the client device.

Claims (49)

1. A method of print redirection in a remote computing environment, the method comprising:

receiving, on a remote device that is remote from a client device, a request to perform a printing task using a printing device associated with the client device;

determining, on the remote device, that data associated with the request to perform the printing task exceeds a size threshold, wherein the size threshold is determined based on a configured transmission rate limit for printing tasks;

generating, on the remote device, a plurality of data slices based on the data, wherein each respective data slice of the plurality of data slices comprises a respective subset of the data that does not exceed the size threshold; and

transmitting, from the remote device to the client device, the plurality of data slices as separate transmissions in separate consecutive time intervals along with information that allows the data to be reconstructed from the plurality of data slices for performing the printing task on the client device, wherein each of the separate consecutive time intervals has a length that is based on the configured transmission rate limit for printing tasks.

2. The method of claim 1 , wherein the information that allows the data to be reconstructed from the plurality of data slices for printing on the client device comprises:

ordering values indicating an order of the plurality of slices; and

an identifier that is common to the plurality of data slices.

3. The method of claim 1 , further comprising determining the size threshold based on input received via a user interface.

4. The method of claim 1 , wherein:

the remote device comprises a virtual desktop infrastructure (VDI) agent;

the client device comprises a VDI client; and

the request to perform the printing task is generated by a virtual desktop associated with the VDI agent.

5. The method of claim 4 , wherein the plurality of data slices comprise a plurality of protocol data units (PDUs) generated by the VDI agent or a component associated with the VDI agent, and wherein the plurality of data slices are transmitted from the remote device to the client device via a virtual channel.

6. The method of claim 1 , wherein the length of each of the separate consecutive time intervals is determined based further on a size of a respective data slice of the plurality of data slices.

7. The method of claim 1 , wherein only one of the plurality of data slices is transmitted during each respective time interval of the separate consecutive time intervals.

8. A system for print redirection in a remote computing environment, 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:

receive, on a remote device that is remote from a client device, a request to perform a printing task using a printing device associated with the client device;

determine, on the remote device, that data associated with the request to perform the printing task exceeds a size threshold, wherein the size threshold is determined based on a configured transmission rate limit for printing tasks;

generate, on the remote device, a plurality of data slices based on the data, wherein each respective data slice of the plurality of data slices comprises a respective subset of the data that does not exceed the size threshold; and

transmit, from the remote device to the client device, the plurality of data slices as separate transmissions in separate consecutive time intervals along with information that allows the data to be reconstructed from the plurality of data slices for performing the printing task on the client device, wherein each of the separate consecutive time intervals has a length that is based on the configured transmission rate limit for printing tasks.

9. The system of claim 8 , wherein the information that allows the data to be reconstructed from the plurality of data slices for printing on the client device comprises:

ordering values indicating an order of the plurality of slices; and

an identifier that is common to the plurality of data slices.

10. The system of claim 8 , wherein the at least one processor and the at least one memory are further configured to determine the size threshold based on input received via a user interface.

11. The system of claim 8 , wherein:

the remote device comprises a virtual desktop infrastructure (VDI) agent;

the client device comprises a VDI client; and

the request to perform the printing task is generated by a virtual desktop associated with the VDI agent.

12. The system of claim 11 , wherein the plurality of data slices comprise a plurality of protocol data units (PDUs) generated by the VDI agent or a component associated with the VDI agent, and wherein the plurality of data slices are transmitted from the remote device to the client device via a virtual channel.

13. The system of claim 8 , wherein the length of each of the separate consecutive time intervals is determined based further on a size of a respective data slice of the plurality of data slices.

14. The system of claim 8 , wherein only one of the plurality of data slices is transmitted during each respective time interval of the separate consecutive time intervals.

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

receive, on a remote device that is remote from a client device, a request to perform a printing task using a printing device associated with the client device;

determine, on the remote device, that data associated with the request to perform the printing task exceeds a size threshold, wherein the size threshold is determined based on a configured transmission rate limit for printing tasks;

generate, on the remote device, a plurality of data slices based on the data, wherein each respective data slice of the plurality of data slices comprises a respective subset of the data that does not exceed the size threshold; and

transmit, from the remote device to the client device, the plurality of data slices as separate transmissions in separate consecutive time intervals along with information that allows the data to be reconstructed from the plurality of data slices for performing the printing task on the client device, wherein each of the separate consecutive time intervals has a length that is based on the configured transmission rate limit for printing tasks.

16. The non-transitory computer-readable medium of claim 15 , wherein the information that allows the data to be reconstructed from the plurality of data slices for printing on the client device comprises:

ordering values indicating an order of the plurality of slices; and

an identifier that is common to the plurality of data slices.

17. The non-transitory computer-readable medium of claim 15 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to determine the size threshold based on input received via a user interface.

18. The non-transitory computer-readable medium of claim 15 , wherein:

the remote device comprises a virtual desktop infrastructure (VDI) agent;

the client device comprises a VDI client; and

the request to perform the printing task is generated by a virtual desktop associated with the VDI agent.

19. The non-transitory computer-readable medium of claim 18 , wherein the plurality of data slices comprise a plurality of protocol data units (PDUs) generated by the VDI agent or a component associated with the VDI agent, and wherein the plurality of data slices are transmitted from the remote device to the client device via a virtual channel.

20. The non-transitory computer-readable medium of claim 15 , wherein the length of each of the separate consecutive time intervals is determined based further on a size of a respective data slice of the plurality of data slices.

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 Feb 8, 2022
From: ZHANG, HUI; HUANG, WEIGANG; SHI, KUN; HU, JINXING; YUAN, HUI
To: VMWARE, INC.
Reel/Frame 058921/0570 →