Author's Note: The information in this article is based on information I’ve received from the various sessions and by talking with Citrix folks at the Tech Lab at Citrix iForum Global 2004. This information is not based on my own experience or testing, so it’s possible that I don’t have some of the details exactly right.
I announced yesterday that Citrix would be releasing MetaFrame Presentation Server 4 (MPS4) in early 2005 instead of Feature Release 1 for MPS 3. (In fact, I'm hearing that the concept of Feature Releases is going away all together.)
One of the show's technical sessions by Citrix employees Jim West and Gary Barton focused entirely on the new printing architecture. For MetaFrame Presentation Server 4, they said, “We took a wrecking ball to the way we do printing and rebuilt it from the ground up!” This is huge news and will make a lot of people happy.
Some people have cautioned that we must wait and see whether this new printing subsystem is actually any good before rejoicing. Others point out that a re-architected printing environment can’t possibly be any worse than the current printing environment, so it’s okay to get excited about it now. In this article, I'll share my understanding of what the new printing environment will look like.
Current Printing Problems and Limitations
If you're not familiar with any of the current printing issues in Citrix environments, take a look at Stefan Vermeulen's site www.printingsupport.com.
Citrix started out by talking about some of the current printing limitations. (All of these current limitations apply to both MetaFrame XP and MPS 3, since printing didn’t change between them.)
Current limitations include the fact that you cannot assign default printers to users, printer objects are often orphaned and left behind after users log off, and printing policies are not based on location or connection type. They also talked about the current printing scalability issues, namely that CPU utilization spikes as printer objects are built-up and torn down with each logon and logoff. Citrix even told us they understand that current printer names are too long and that users usually can’t tell one printer from another from within an ICA session.
To address all these issue, Citrix realized that they had to start with a clean slate.
The Printing Architecture of MetaFrame Presentation Server 4
To begin with, printing in MPS 4 is accomplished with its own isolated subsystem. A new print manager service (cpsvc.exe) will take care of the collection of random DLLs and executables responsible for the printing voodoo in MetaFrame XP and MPS 3. (In MPS 4, client printer mapping will still be it’s own virtual channel. It’s just that now that virtual channel will be managed by the print manager service instead of cdm.sys which is responsible for managing all the other virtual channels.)
This new print manager service will act as the central clearing house for all things printing. It will communicate with the server's spooler service, ICA clients, remote printer services, and other MPS 4 print manager services. What this effectively means is that applications will no longer submit their print jobs directly to the spooler. This will allow Citrix to step in and do what they need to do with the printouts. (This is similar to what ThinPrint and triCerat's Simplify Printing do today.)
The big key here is that the MetaFrame printing architecture is moving away from the current “universal driver” format and towards an EMF-based format. (Read the "Third Party Products" section at the end of this article for more information about EMF-based printing.) EMF-based printing has several advantages over univesal driver-based printing, including:
- Print jobs are not rendered on the server, decreasing CPU usage.
- EMF files are smaller, decreasing server processing requirements
- EMF files are the "native" format generated by Windows, which means they can be used on any printer.
- EMF files are the "internal" printing format used by Windows, meaning that you don't need printer-specific drivers installed on your servers.
In MPS 4, the new print manager service will also compress the print data stream before it hits the ICA virtual channel. (This is a departure from MetaFrame XP and MPS 3 where print data was compressed just like any other ICA data.) This should provide more flexibility and better compression ratios.
From the user standpoint, the naming structure of printer objects is being changed to be more user friendly. When printer objects are created based on client printers, the printer name will show up with the same name as it is on the client (with the exception of a “session xx” identifier tacked on to the end). This should lower user confusion because the important part of the name (the first part) will be the name the user is used to.
Also, MPS 4 printer objects will pull device-specific printer settings from the ICA client. This will include tray settings, finishing options, paper type, etc. If there is a server and client printer driver match, all client printer settings can be inherited by the server. If the client does not have the ability to save printer settings locally, they can be saved as a user profile on the server.
Finally, Citrix has created a new little client side EMF viewer application. This allows users to preview printouts locally on their client devices in the exact format that they’ll print.
From the configuration and management standpoint, all MPS 4 printing options will be configured via Citrix policies instead of at the farm level. This means that you’ll be able to granularly control which types of users and connections use which type of printer options.
Printing will also be more tightly integrate into Citrix’s Smooth Roaming initiative. Administrators will be able to create policies that define customized printer workspaces based on the type of connection.
From a security standpoint, the new printing architecture will change the way that printer objects are created on the Presentation Server. Printer ports will be created with the context of a session, meaning that they’ll be “private” to each session.
What does this mean to the "other" printing vendors?
This announcement obvious has the ability to impact ThinPrint, triCerat, UniPrint, and EOL. I think it's too early to tell how this will shake out (since I haven't played with the Citrix stuff yet), but you can bet that these companies will be watching carefully.