For a first-version product, Windows NT Server 4.0, Terminal Server Edition is pretty good. And now that Microsoft has changed Terminal Server's licensing structure to make the cost of client licenses more reasonable, Terminal Server has become an easy and fairly cost-effective way to supply terminal services to Win32 clients.
Like other first-version products, however, Terminal Server has shortcomings that can limit its usability. Citrix's MetaFrame, which uses the Independent Computing Architecture (ICA) display protocol, has addressed those shortcomings, but MetaFrame isn't cheap. (To read a comparison of the ICA and RDP display protocols, see Tim Reeser, "RDP or ICA," page 89.) The good news is that Service Pack 4 (SP4) for Terminal Server (a different service pack from SP4 for single-user NT) makes some changes to NT 4.0's Terminal Server, and Windows 2000 Server (Win2K Server) will make even more changes. Some of these changes will better integrate single-user NT with multiuser NT; other changes will create functionality currently unavailable with RDP, Terminal Server's display protocol.
In this article, I'll let you know what changes you can expect Terminal Server SP4 and Win2K Server to make to Terminal Server. Because SP4 for Terminal Server was not available when I wrote this article, I've based my discussion of Terminal Server SP4 on information I received from Terminal Server's lead developer and product manager. I've based my discussion of Win2K's changes to Terminal Server on information I obtained from Microsoft's tech reviewer for Win2K and from my observations of Win2K beta 3.
Changes in Terminal Server SP4
Out of the box, Terminal Server supports RDP, which is based on the T.120 protocol Microsoft developed for NetMeeting. Terminal Server SP4 includes basic bug fixes and changes to RDP. For example, Terminal Server with SP4 will be Y2K-compliant, will support the euro, and will fix some bugs the Terminal Server user community identified. A new API set adds new functionality. For example, you'll be able to use a locally connected printer without having to first share the printer from the local machine, then connect to it as a network connection. Local and remote sessions share a common Clipboard, so you can copy information between local and remote applications. Terminal Server SP4 will support session shadowing (Remote Control in NT 4.0's Terminal Server), so that an administrator can take over a user session and either view or manipulate the session. (An additional API, which Terminal Server SP4 doesn't use, passes information outside RDP.)
The ICA display protocol in MetaFrame has functionality that Terminal Server's RDP display protocol lacks. Although the gap between ICA and RDP was wider in NT 4.0's Terminal Server, a gap still exists in Terminal Server SP4 and Win2K Server. However, Terminal Server SP4 and Win2K Server add new features to Terminal Server that MetaFrame currently supports, as Table 1 shows.
Terminal Server in Win2K
Even with the changes Terminal Server SP4 will bring, Terminal Server is still a separate product from NT Server. However, in Win2K Server, Terminal Server will be a service, like DHCP, and thus not only part of the OS but subject to stopping and starting on demand. Let's look more closely at how Terminal Server in Win2K will differ from NT 4.0's Terminal Server.
Closer integration with the OS. In NT 4.0, Terminal Server is an add-on to the existing OS that makes NT multiuser-capable. Because Microsoft designed Win2K Server to support multiple users, multiuser capability is part of the OS kernel in the form of a service that you can start up or shut down, just as you do any other NT service. In Win2K Server, you can even toggle between the single-user and multiuser mode, although any changes you make to the OS or applications in one mode won't take effect in the other mode.
One advantage to integrating the single-user and multiuser modes in Win2K is that patches and fixes will apply to both modes. For example, Microsoft released SP4 for NT in Fall 1998, but if you wanted to also upgrade Terminal Server, you had to wait for the release of the special Terminal Server SP4, in March 1999. In Win2K, only one patch or service pack will be necessary to update both the OS and Terminal Server.
Kernel enhancements. In a single-user environment, all processes share one kernel memory area and namespace. In a multiuser environment such sharing isn't practical, because the needs of various OS users might conflict. Therefore, because the Windows kernel will be multisession-aware in Win2K, the kernel will support the kind of memory and process management that a multisession environment makes necessary. For example, Win2K will virtualize (i.e., place in virtual memory) part of the Win32 subsystem's kernel address space. In addition, Win2K will support multiple instances of Win32K (the kernel-mode device driver that manages graphical output), CSRSS (the user-mode portion of the Win32 subsystem), and Winlogon (which manages user access to the terminal server and network). Each session will have its own object space, and the system will support additional page table entries, which map physical memory addresses to virtual memory addresses. Finally, a global object space will exist to store objects that are not session-specific and that all sessions must access to run the OS. Processes that start in Session 0 (the console session the OS uses to administer the terminal server) will use the global namespace by default; processes that start in client sessions will use their own namespace to keep applications from interfering with one another.
Adjustable scheduling. One problem with a terminal server is that it needs to run on NT Server; however, NT Server optimizes the task scheduler to run server services, not personal applications. In Win2K Server, you'll be able to adjust the scheduler to optimize your computer for running applications—rather than background services. This capability will improve application performance in a terminal server environment. (When the Terminal Server service is running, Win2K sets the scheduler default to optimize application performance.) The only catch is that, when you adjust the scheduler to optimize application performance, the server will run server tasks less efficiently. Therefore, with Win2K, dedicating a terminal server to run server tasks and not requiring this server to perform other server functions is a good idea.
Additional administrative tools. Running a multiuser environment requires tools that a single-user environment doesn't need, or at least requires some additional functionality in existing tools. Microsoft changed User Manager for Domains in NT 4.0's Terminal Server to support a multiuser environment; Win2K will let you add Terminal Server tools to the Microsoft Management Console (MMC).
Improved clientside caching. Win2K changes the way RDP uses the clientside cache to reduce the amount of graphical instructions the protocol must download to PC clients to display the application interface. Reusing graphical information, rather than downloading fresh instructions, speeds screen updates and reduces network traffic.
To assist this functionality, the Win2K Terminal Server client supports caching that's persistent from session to session—instead of caching that is effective for only one session. The only problem with this kind of caching is that clientside improvements apply only to PC clients, because these clients have hard disks that can store the caching information from session to session. Some Windows-based terminals can support session-persistent caching, but the terminals need a place to store the cached information. Also in Win2K, the server side will include a kind of virtual video memory to store recently used output information. Theoretically, this memory helps CPU usage go down, therefore letting one terminal server serve more clients.
Load balancing. Microsoft is in the process of integrating load balancing for session logons to Win2K Server. This load balancing will not be the same load balancing MetaFrame supports, however. Rather than supporting failover or publishing from a server farm, Win2K Terminal Server load balancing will apply to logon sessions only, to connect users to the least busy terminal server.
A Work in Progress
MetaFrame won't become obsolete when Terminal Server SP4 and Win2K enhance Terminal Server, and Citrix is updating MetaFrame (for more information about the new MetaFrame version, see the sidebar "MetaFrame and NT Thin-Client Technology"). Even if you run Terminal Server SP4 and Win2K, you'll need MetaFrame for some functions. For example, Terminal Server SP4 and Win2K won't support sound or individually published applications. Nor will they support non-Windows clients unaided, or load balancing for anything other than session logons. Terminal Server is still a work in progress, but in Terminal Server SP4 and Win2K Server, Terminal Server is gaining features it needs to support clientside transparency. These changes have done a lot to make Terminal Server a more viable option for supporting multiuser NT, even if you don't use MetaFrame.
- "Terminal Server Grows Up" incorrectly states that Service Pack 4 (SP4) for Windows NT Server 4.0, Terminal Server Edition includes support for local printing and a shared Clipboard for local and remore sessions. To get Terminal Server support for local printing and a shared Clipboard, you need third-party software such as Citrix MetaFrame, or you need to wait for the release of Windows 2000 (Win2K).