I have lately dropped here and there comments about Citrix Universal Printer Server code name "Phaser" and actually some Citrix guys make fun of me because I'm so persistent with that topic since 2009! Why 2009? Well at iForum 2009 in Las Vegas, Citrix developer Gary showed the first bits (really just some command line exe) of project Phaser. Since then I keep telling Citrix to get it out of the door every time I have a chance. Now it seems it will finally happen after three years!
Citrix Universal Print Driver
By now, everyone should know about the Citrix Universal Printer Driver (UPD) that is based on Windows Enhanced MetaFile (EMF). Citrix introduced UPD based on EMF with Presentation Server 4.0 The keyword "Windows" should tell you that Enhanced Metafile only supports Windows platforms.
Citrix uses EMF for automatic client printer mappings and should be the first choice with Windows clients. The reason is that with that technology actually no native or 3rd party printer driver is needed on the XenApp Server. In addition the client side installed printer driver is used by the client side EMF component of the ICA Client. The beauty of that is that users can leverage all functions the local printer driver has instead of a subset with a Universal Driver based on a printer model like Citrix UPD version 2 (Color Laser Printer).
Citrix has even further optimized the architecture and released the printing optimization pack (project Laser) for XenApp 6.0. With the optimization pack and its new Citrix policies the print out speed even over WAN works very well and therefore it's part of my Ten printing rules with Citrix or RDS.
Network printer and print server
Beside Client printer companies most often use network printers that are managed by a Print Server. Why Print Server? With Windows Server 2000, Microsoft introduced Point-to-Print (P2P) that makes adding a network printer on a client device very easy and therefore user friendly. P2P automatically sends the printer driver down to the client, installs the driver and adds the printer object. The same process happens on a XenApp server if network printers are mapped for users. Until now Citrix only offers Citrix policies to connect network printers but the mapping is done by Point-to-Print. Basically you can do the same with a script or with Microsoft group policy (Windows-Settings).
The problem here is that the print server is often not managed by the XenApp Team. Now if the printer drivers on the print server are not tested at least with Citrix StressPrinters the installed drivers can have a very bad affect on the XenApp Server or even the whole Farm! A "bad" printer driver can cause a Blue Screen of Death (BSOD) – a server crash, spooler crash, no- or slow logons even with Windows Server 2008 R2 SP1.
What is Citrix Universal Print Server?
The Universal Print Server helps with the P2P "dilemma" and introduces the EMF functionality to the print server as the client! That means, again, no native or 3rd party printer driver must be installed on the XenApp server for any printer on the Windows print server! In many environments that should help reduce the installation of printer drivers on the XenApp server dramatically. Having only the Citrix EMF would keep the XenApp farm stable and help with user logon times. Actually, that is something many customers are waiting for and the reason I kept persisted on asking Citrix about it.
The Universal Print Server (UPS) architecture
Let's keep it simple and just get the main architecture behind UPS. Take some time for a close look on the following image.
On the right side you have the Microsoft print server and on the left a Windows Client that could be XenApp, XenDesktop VM etc. At the moment Windows Server 2008 x86 is supported as print server and an x64 version is planned. XenApp 6.5 and XenDesktop 5.5 are right now supported with the Community Technology Preview release of UPS.
As you can see the client is communicating through a Web Service installed on the print server. Simple Object Access Protocol (SOAP) is used for enumeration etc. whereas the Citrix Common Gateway Protocol (CGP) is used for the bulk of print data. CGP is old and used in other places like for session reliability (XTE service) or the secure gateway service. Both can be encrypted using SSL and accelerated and/or optimized by Citrix Branch Repeater even though EMF within CGP is already highly optimized.
Deployment of UPS infrastructure
The deployment is straight forward and not much to configure. Installing the server component adds two Windows services (UPS and CGP). XenApp 6.5 or XenDesktop 5.5 Citrix policies will be updated (UPS configuration) and the Citrix print service (cpsvc.exe) as well to "know" about UPS network printer.
After the installation you configure the UPS policies which is basically just enable UPS or enable UPS with native fallback in case UPS is not available (not installed). Use Microsoft group policies for P2P restrictions to just allow UPS enabled print server.
Project Taser or UPS Version 2.0
Citrix is already working to extend the universal print server to the next level. To name two but most important features:
1. Enable SSL for CGP and SOAP through UI
2. Extend enumeration of printer driver capabilities and make them available to the UPS Client.
Now point two is different from what you know from UPD (EMF). When mapped by EMF the printer properties have an option to open the native client side printer driver properties to change all available option. This is done through ICA (just a trigger). Of couse this is not possible with the print server. Therefore with UPS 1.0 you only get the basic functions of the printer driver and that will be extended with UPS 2.0!
Finally! What else can I say? Citrix delivers the UPS to minimize the installation of printer drivers on XenApp server and therefore also administrator headaches. Same for streamed XenApp server or pooled VM's that require printer drivers before putting them into production.
I hope Citrix will support XenApp 6.0 with the final release because I would hate to use it in an unsupported way (yes, it works). Citrix said they have barley tested with XenApp 6.0 but I think we all would be happy to help with that. UPS 2.0 sounds even better but we have to wait again...