A couple of weeks ago, I talked about memory and how the way you connect to applications on a terminal server affects memory use on that server. I said that if you use published applications by making multiple connections to a server, you use more memory than if you connect to a published desktop and run the applications from there. Every time you make a new connection to the terminal server, the server sets aside a memory area for you and loads some standard files that the system requires to support the session, even if you're running only one application from that session.
However—and thanks very much to the readers who pointed this out—there's one caveat. If you use Citrix MetaFrame and publish applications using Seamless Windows, what I reported about memory use no longer holds true. The ICA clients that support Seamless Windows (Win32, Linux, and UNIX) also support session sharing. With session sharing, the first time you connect to an application running on a terminal session, you instantiate the session, load the profile, fire up winlogon.exe, and so on. When you connect to a second Seamless Windows-published application, the connection checks to see whether that application is available on the same server as the existing session (both installed and available to that user—you can't load balance servers with MetaFrame XP by permitting only a certain number of connections to a particular application). If the application is available, the ICA client connects to that terminal session and begins the second application using the resources of the existing session. As long as you publish applications using Seamless Windows, you'll start a new session when you connect to a new application only if the connection has to find the application on a different server, where it will instantiate a new session. So you can't run multiple published applications with less overhead on the farm than would be the case if the applications ran in, for instance, a 1024 x 768 window. The bottom line is that connecting to individual applications CAN use more memory than running applications from an individual desktop, but if you use Seamless Windows, it won't.
I also need to make a correction to another commentary. There's no legal way to license Windows 2000 Server Terminal Services on a per-user basis. Last week, I proposed that it might be possible to use a new product called ThinAnywhere to circumvent per-seat licensing by connecting a multi-use server to the terminal server and displaying terminal sessions on the ThinAnywhere server. This process seems to work, but it violates Microsoft's Terminal Services license agreement, which explicitly states that you must have enough licenses for all the people who use the terminal server, regardless of whether those people connect directly or via another server. It was a nice thought, but for the time being, we're stuck with a per-seat licensing model for inhouse Terminal Services licensing.