Virtual Desktops are all the rage right now and there is a lot of discussion about where and how Virtual Desktops provide the right solution for the diffent types of users in your environment. Microsoft categorises the different types of users in your environment
- Mobile Knowledge workers
- Office Knowledge workers
- Task Workers
- Contractors or Offshore workers
- Access from Home
For more details on these types of users go to http://www.microsoft.com/virtualization/en/us/solution-desktop.aspx
During any Virtual Desktop conversation the scalability of Virtual desktop and Remote Desktop Services (artist formerly known as Terminal Services) is frequently dsicussed. There are many figures and test that suggest that Remote Desktop Services in Windows SErver 2008 R2 is significantly more scalable than running multiple Virtual desktops on the same hardware. Now we have a tool to test this for your situation called the Remote Desktop Load Simulation Tools
Remote Desktop Load Simulation Tools provide the ability to easily create and control simulated loads on a remote desktop server. The suite includes the following automation tools:
Test Control Infrastructure
- Test Controller - RDLoadSimulationController.exe
The RDLoadSimulationController tool is the central control point for the load simulation testing. It is typically installed on the test controller machine. RDLoadSimulationController controls all test parameters and defines the progression of the simulated user load. It also controls all custom actions that are executed at any point during the test process. It communicates with RDLoadSimulationClients and RDLoadSimulationServerAgent to synchronize and drive the client-server remote desktop automation. It commands the RDLoadSimulationClients to run scripts that load the remote desktop server at operator-specified intervals.
- Client Agent - RDLoadSimulationClient.exe
The RDLoadSimulationClient tool controls the client side of the load simulation testing. RDLoadSimulationClient is typically installed on the test client computers. RDLoadSimulationClient receives commands from RDLoadSimulationController to run scripts that load the remote desktop server at operator specified intervals. It executes custom commands received from the RDLoadSimulationController and also sends the status of the executing scripts to the RDLoadSimulationController. RDLoadSimulationClient also performs desktop management on the test client computers. It creates a new desktop for each script that it launches and provides the means to navigate between all desktops.
- Server Agent - RDLoadSimulationServerAgent.exe
The RDLoadSimulationServerAgent tool runs on the target Remote Desktop server. It runs custom commands that are sent to it by the RDLoadSimulationController. It is also used by RDLoadSimulationController for test synchronization.
The SwitchDesktop tool runs on the test client computers. It runs inside each new desktop that is created on the client. Its only function is to provide a way to switch back to the default desktop where the RDLoadSimulationClient is running.
Scenario execution tools
- Script automation tool - RemoteUIControl.dll
RemoteUIControl.dll is a COM based tool which provides functionality for driving the client side load simulation. It exposes functionality for creating RDP connections to the server, as well as sending keyboard input to the remote desktop session. It synchronizes executions based on drawing events in the applications that are running inside the remote desktop session.
RUIDCOM is a DCOM tool which is a wrapper around RemoteUIControl.dll. This tool exposes all the functionality of RemoteUIControl.dll. Test scripts use RUIDCOM instead of directly using RemoteUIControl.dll as it provides some extra functionality. RUIDCOM communicates with the RDLoadSimulationClient to report the status of a simulated user.
TSAccSessionAgent runs on the target remote desktop server. One instance of TSAccSessionAgent runs inside every remote desktop session that is created for a simulated test user. RemoteUIControl.dll on the client side communicates with TSAccSessionAgent to synchronize user input with drawing events in the applications that are running inside the remote desktop session.