Universal Print Server—a collection of free components available for your XenApp and XenDesktop environments—is a great enhancement to your Citrix XenApp or XenDesktop farms. If it is not already being leveraged in your environment you should definitely look into it. Particularly customers that are using network printers that are generated within their user sessions should explore the possibilities presented by this software.
If you’ve read my first blog post you can think of this as a logical follow up. Once an organization has selected a printer for their Citrix XenApp or XenDesktop environment this is one example of what comes next. Customers running Citrix sessions across what is called a thinwire (high latency, low bandwidth) connection especially should take note. The enhancements provided by the universal print server will improve the performance and reliability of your Citrix farm.
There are two components to universal printing; firstly the Universal Print Server, which is installed on top of Windows Server running the Print Server role, and secondly the Universal Print Client. Collectively both components are commonly and rather generically referred to as Universal Print Server.
The client software is installed on the target devices where your users run their Windows sessions which is usually a XenApp server or a XenDesktop virtual desktop. The universal print functionality supersedes the traditional communication between a network printer in a user’s Citrix session and the print server. The client device is in no way involved with universal printing—the print job’s genesis is entirely within the user’s Windows session using the Citrix Universal Print Driver.
From the perspective of the client’s session and the print server universal printing is still a Windows function however transparent enhancements to existing system are made by altering the way things work internally. These internal enhancements are not available in the native Windows Print Provider and include things like caching for fonts and image data, advanced data compression algorithms, and support for QoS (Quality of Service) network traffic management. Before universal printing was introduced user’s network printer sessions would operate using the native Windows Print Provider functionality and only locally redirected client device printers would see the advantages Citrix software brings to customer’s application presentation environments. The redirected print devices could leverage the ICA (Independent Computing Architecture) protocol for enhancement however network print connections were found themselves outside of this framework and what Microsoft offered natively through the Windows operating system is all there was.
Universal Print Client
In order for these enhancements to be leveraged for printing the Citrix software must insert itself somewhere into the network printing process. This begins at the user’s session where Windows has the Universal Print Client installed to facilitate communication and the print device itself which uses the Universal Print Driver to use those channels. The Universal Print Driver sends print commands and print stream data to the print server using two distinct communications routes:
- Print command data is sent using SOAP over HTTPS on TCP port 8080.
- Print stream data in an XPS/EMF format over CGP/SSL on TCP port 7229.
The application software running in the user’s Windows session interfaces with the universal print driver like it would any other print driver and Citrix software takes over from there. The universal print driver will not leverage the capabilities of the universal print client software unless directed to do so. As an administrator it is important to know that a Group Policy setting is needed in order to enable the universal printing features, there are many resource available on the configuration of these policy settings already available on the Internet. One nice side-effect of using this system is the fact that we’re using the universal print driver, this eliminates many of the issues administrators have seen in the past with print spooler crashes and elongated session start-up times.
Universal Print Server
With the Universal Print Server software installed on your Print Server and hopefully no firewalls in the way the universal print client should be able successfully deliver its data to the Universal Print Server. For administrators it is important to note that the Universal Print Server’s web server will be listening on TCP ports 8080 and 7229. The universal print server software will process the received print job and send the data to the print queue using Windows native processes over TCP/RPC. Once the print job has is in the hands of the Windows network print service the print process looks like any other network printer scenario. At this point the manufactures print drive—which is only installed on the printer server not in any of our application servers or desktops—is used to send the print job to the printer.
On the universal print server looking at the list of listening TCP ports and the processes that are using them there will be TCP port 8080 and 7229 listening from the process XTE.exe (extensible transformation service) which will be familiar to seasoned Citrix administrators. This is the actual web server (Apache) listening for communications and sending them along to appropriate services on our Universal Print Server. So if we tie the entire process of printing using Universal Print Server together we get the following diagram.
This diagram show how the Universal Print Server software catches the print job in the client session, sends it across the network using customized protocols, and then returns the job to the control of Windows on the server. This insertion ultimately gives Citrix the ability to enhance something in a way that other platforms do not.
This technology fills covers a gap in Citrix’s XenApp and XenDesktop products that have been with us for a very long time. I have personally seen that the compression enhancement alone is worth the effort, with thinwire print times sped up by 50%.
- With Universal Print Server administrators can optimize and management print traffic that Windows doesn’t natively allow for. This means less bandwidth utilization and better performance for users especially in branch offices with more restrictive network resources.
- The connection between the user session to the print server and ultimately back to the printer is independent from the client device. So in situations where the print device is not supported by the client device software there is a way to leverage these enhancements.
- The use of the Universal Print Driver removes the concerns over vendor provided print driver stability and its impact of your application servers and desktops.
 Citrix is commonly understood to mean Citrix XenApp and/or Citrix XenDesktop user environments. For example, when a user is said to have ‘logged onto Citrix’ they’re actually logging on to a Windows desktop or application session that is facilitated by Citrix’s XenApp or XenDesktop application software.
 Citrix’s eDoc on the installation and configuration of Universal Print Server: http://support.citrix.com/proddocs/topic/xenapp65-admin/ps-printing-universal-network.html.