The Terminal Server component of Windows Server 2003 allows remote client devices to access and use Windows server desktops and applications. These client devices can be Windows, Macintosh, or Linux workstations, as well as wireless devices, laptops, set top boxes, network appliances, and X-Boxes. They access the server via a TCP/IP connection over the Internet, LAN, or a WAN network.
When Terminal Server is enabled on a Windows 2003 server, users can connect to virtual "desktops" on the server. A user's applications are executed on the server instead of on the client device, and the virtual desktop is transmitted across the network to the client device. Conceptually, this design is similar to remote control-type applications, such as PCAnywhere, CarbonCopy, and VNC.
However, unlike third-party remote control applications, a Windows 2003 server running Terminal Server uses a specially-modified kernel to allow many users to connect to the server simultaneously—each running his own unique virtual desktop. A single server can support dozens or even hundreds of users. Load-balancing techniques allow a group of servers to provide virtual desktops to thousands of simultaneous users.
"Remote" applications running on Windows 2003 Terminal Server virtual desktops have the ability to access and integrate with applications running locally on users' client devices. These local and remote applications can share disk drives, serial ports, printers, audio, and the Windows clipboard.
In some environments, administrators configure their users' workstations so that users access some applications locally and some remotely (from Terminal Servers). Other administrators choose to fully centralize end-user management by configuring their users' client devices to access all of their applications via remote Terminal Servers. The users still see a Start Menu and a desktop on their screens—but the desktop is running on a remote Terminal Server instead of the local client device. This architecture is commonly referred to as "Server-Based Computing."
Server-Based Computing Components
In order to understand how server-based computing works, you must be familiar with the three main components that make up all server-based computing environments:
- A multi-user operating system.
- A remote presentation protocol.
- Client software and devices.
Let's examine each of these components.
Component 1. A Multi-user Operating System
Servers that power Windows server-based computing environments rely on a service (hosted by the Windows Server operating system) that allows multiple simultaneous users to connect and run applications and virtual desktops independent of each other. Whereas standard Windows servers allow multiple users to simultaneously connect to resources (such as files, printers, and services), only one user can be interactively logged onto the server console at a time. A multi-user operating system allows multiple users to connect and run interactive sessions (such as remote control sessions) on the server, independent of what any other user is doing. In the Microsoft world, this multi-user operating system is called "Terminal Server."
Back in the Windows NT 4.0 days, the Terminal Server version of the Windows operating system was separate from the rest of the Windows Server family. It required different media, service packs, and hotfixes. Beginning with Windows 2000 Server, the services and operating system components required for a multi-user Terminal Server environment have been included as part of the standard server product, allowing selection of the multi-user Terminal Server components during Windows configuration, just as any other available service. In Windows Server 2003 environments, Terminal Server capabilities are also built-in to the regular product.
In Windows Server 2003, there are "technically" two different versions of the Terminal Server components, and it's important that you don't confuse the two. The first (and the "real" Terminal Server that we care about in this book) is the Terminal Server component that is enabled via the Control Panel (Control Panel | Add or Remove Programs | Add/Remove Windows Components | Terminal Server) or via the "Manage Your Server" application (Add or remove a role | Terminal Server). This is the real Terminal Server option that you would enable to allow multiple users to remotely run sessions on your server.
The "other" Terminal Server option in Windows Server 2003 is called Remote Desktop, and is enabled or disabled via the My Computer properties screen. (Right-click My Computer | Properties | Remote Tab | Remote Desktop) Remote Desktop is a watered-down version of the real Terminal Server. It allows only a maximum of two concurrent remote user sessions. Its primary purpose is remote administration, allowing administrators to access and control servers from remote locations. (No more PCAnywhere on your servers!)
If you're familiar with Terminal Services on Windows 2000 Server, the Terminal Server component of Windows Server 2003 is the equivalent of Windows 2000 Terminal Services in application mode, and 2003's Remote Desktop is comparable to 2000's Terminal Services in administration mode.
Throughout this book, we'll use the terms "Terminal Server" and "Terminal Server 2003" interchangeably. Both expressions refer to "Microsoft Windows Server 2003 with the (real) Terminal Server component installed." They do not mean "Windows Server 2003 with the Remote Desktop option enabled."
Chapter 2 will provide more detail about the architecture of a Terminal Server and how the various components are installed and configured.
Component 2. A Remote Presentation Protocol
Now that we have a server that will allow multiple users to connect concurrently and execute applications, we need a way to for users to receive the virtual desktop they are running on the server and to send information back and forth between their client and the server. This is where the Remote Desktop Protocol (RDP) comes in. This RDP protocol, which runs on top of TCP/IP, acts as a conduit for transmitting this data between the client and the server. Updates from the user's session on the server (such as screen changes, sound, or print jobs) are sent from the server to the client. In turn, the client sends key strokes and mouse input from the client device to the session on the server via the RDP protocol.
Component 3. Client Devices and Client Software
In order to connect to the Terminal Server that hosts their sessions, users need client software loaded on their client devices. For Terminal Server 2003, this client software is known as the Microsoft Remote Desktop Connection Client, or simply "RDC Client."
For years, Microsoft called this an "RDP Client," not an RDC Client. If people look at you funny when you say "RDC," gently suggest they go to the Start Menu of a Windows XP system and see for themselves. Or, pretend that you're old-school and say "RDP Client."
Chapter 10 details the exact use of this client and how it operates and interacts with the server. For now, it's important to know that in order for users to access and use a Terminal Server session, they need some version of this client installed on their client device. There are several versions available from Microsoft, as well as third-party and open source versions.