IP Library Granted Patent US 10,152,290
Granted Patent B1
US 10,152,290 · App. 15/700,277 · Granted Dec 11, 2018

Universal printing using remote application servers

Inventors: Alexander Khalyapin (Moscow, RU); Nikolay Dobrovolskiy (Moscow, RU); Serguei M. Beloussov (Costa Del Sol, SG)
Assignee: Parallels International GmbH
G06F3/1296G06F3/1204G06F3/1226G06F3/1232G06F3/1236G06F3/1256G06F3/1288G06F9/45533
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,152,290
App. No.
15/700,277
Granted
Dec 11, 2018
Kind
B1
Abstract

Disclosed are systems and methods for managing a print job in a virtual environment. The described technique includes associating a physical printer with a chosen virtual printer which may be used by the user in the remote application to execute. A remote application server can receive from a remote application a request to choose a virtual printer in a remote session established between the client device and a remote application server. A tag associated with the print job that indicates one or more parameters of the virtual printer is determined, as well as a location of the client device. The technique includes selecting a physical printer from a plurality of available printers in the remote session based on the determined location and the determined tag of the virtual printer. An association with the virtual printer is generated and saved, and may be used for a subsequent print job.

Claims (56)

1. A method for managing by an application server a print job in a virtual environment, the method comprises:

receiving, by the application server, a request from a client device to choose a virtual printer in a remote session established between the client device and the application server;

determining a tag associated with the virtual printer, wherein the tag indicates one or more capabilities that an available printer requires to execute a printing job of the virtual printer;

determining a location of the client device;

selecting a physical printer from a plurality of available printers in the remote session based on the determined location and the determined tag of the virtual printer;

generating an association between the selected physical printer and the virtual printer for use with a printing job, wherein the association is generated by:

saving a reference to the selected physical printer in a driver-specific portion of a device-mode data structure associated with the virtual printer, and

creating in the remote session a printer device context associated with the virtual printer and based on the device-mode data structure; and

transmitting the print job for printing based on the generated association.

2. The method of claim 1 , further comprising:

generating a list of the available printers across a plurality of sites;

assigning one or more tags to each of the available printers, wherein the tags indicate capabilities of the respective printer.

3. The method of claim 1 , further comprising:

assigning a universal printer tag to each of the available printers.

4. The method of claim 1 , wherein determining the location of the client device further comprises determining the location based on a network address of the client device.

5. The method of claim 1 , further comprising:

in response to moving the client device from a first location to a second location, choosing a different printer based on the second location of the client device.

6. The method of claim 1 , wherein the plurality of available printers are communicatively connected to the client device through at least one of a local connection to the client device, to a network connection to a print service of the application server, and through a cloud connection.

7. A system for managing a print job in a virtual environment, the system comprises:

a memory device storing a list of available printers across a plurality of sites;

a processor configured to:

receive, from a client device, a request to choose a virtual printer in a remote session established between the client device and an application server;

determine a tag associated with the virtual printer, wherein the tag indicates one or more capabilities that an available printer requires to execute a printing job of the virtual printer;

determine a location of the client device;

select a physical printer from the plurality of available printers in the remote session based on the determined location and the determined tag of the virtual printer,

generate an association between the selected physical printer and the virtual printer for use with a printing job, wherein the association is generated by:

saving a reference to the selected physical printer in a driver-specific portion of a device-mode data structure associated with the virtual printer, and

creating in the remote session a printer device context associated with the virtual printer and based on the device-mode data structure; and

transmit the print job for printing based on the generated association.

8. The system of claim 7 , wherein the processor is further configured to:

generate the list of the available printers across a plurality of sites;

assign one or more tags to each of the available printers, wherein the tags indicate capabilities of the respective printer.

9. The system of claim 7 , wherein the processor is further configured to:

assign a universal printer tag to each of the available printers.

10. The system of claim 7 , wherein the processor configured to determine the location of the client device is further configured to determine the location based on a network address of the client device.

11. The system of claim 7 , wherein the processor is further configured to:

in response to moving the client device from a first location to a second location, choose a different printer based on the second location of the client device.

12. The system of claim 7 , wherein the plurality of available printers are communicatively connected to the client device through at least one of a local connection to the client device, to a network connection to a print service of the application server, and through a cloud connection.

13. A non-transitory computer readable medium comprising computer executable instructions for managing a print job in a virtual environment, including instructions for:

receiving, from a client device, a request to choose a virtual printer in a remote session established between the client device and an application server;

determining a tag associated with the virtual printer, wherein the tag indicates one or more capabilities that an available printer requires to execute a printing job of the virtual printer;

determining a location of the client device;

selecting a printer from a plurality of available printers in the remote session based on the determined location and the determined tag of the virtual printer;

generating an association between the selected physical printer and the virtual printer for use with a printing job, wherein the association is generated by:

saving a reference to the selected physical printer in a driver-specific portion of a device-mode data structure associated with the virtual printer, and

creating in the remote session a printer device context associated with the virtual printer and based on the device-mode data structure; and

transmitting the print job for printing based on the generated association.

14. The non-transitory computer readable medium of claim 13 , further comprising instructions for:

generating a list of the available printers across a plurality of sites;

assigning one or more tags to each of the available printers, wherein the tags indicate capabilities of the respective printer.

15. The non-transitory computer readable medium of claim 13 , further comprising instructions for:

assigning a universal printer tag to each of the available printers.

16. The non-transitory computer readable medium of claim 13 , wherein instructions for determining the location of the client device further comprises instructions for determining the location based on a network address of the client device.

17. The non-transitory computer readable medium of claim 13 , further comprising instructions for:

in response to moving the client device from a first location to a second location, choosing a different printer based on the second location of the client device.

18. The non-transitory computer readable medium of claim 13 , wherein the plurality of available printers are communicatively connected to the client device through at least one of a local connection to the client device, to a network connection to a print service of the application server, and through a cloud connection.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2017
From: KHALYAPIN, ALEXANDER; DOBROVOLSKIY, NIKOLAY; BELOUSSOV, SERGUEI M
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 043542/0014 →